conductor-oss 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/README.md +173 -134
  2. package/dist/backend.d.ts.map +1 -1
  3. package/dist/backend.js +18 -2
  4. package/dist/backend.js.map +1 -1
  5. package/dist/commands/dashboard.d.ts.map +1 -1
  6. package/dist/commands/dashboard.js +13 -7
  7. package/dist/commands/dashboard.js.map +1 -1
  8. package/node_modules/@conductor-oss/core/dist/config.d.ts.map +1 -1
  9. package/node_modules/@conductor-oss/core/dist/config.js +6 -1
  10. package/node_modules/@conductor-oss/core/dist/config.js.map +1 -1
  11. package/package.json +8 -6
  12. package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
  13. package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +2 -0
  14. package/web/.next/standalone/packages/web/.next/build-manifest.json +7 -7
  15. package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
  16. package/web/.next/standalone/packages/web/.next/routes-manifest.json +44 -1
  17. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page/build-manifest.json +5 -5
  18. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  19. package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +2 -2
  20. package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +7 -7
  21. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  22. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  23. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  24. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  25. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  26. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/build-manifest.json +5 -5
  27. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
  28. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js +2 -2
  29. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  30. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  31. package/web/.next/standalone/packages/web/.next/server/app/_not-found.html +1 -1
  32. package/web/.next/standalone/packages/web/.next/server/app/_not-found.rsc +11 -11
  33. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  34. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  35. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  36. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  37. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  38. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  39. package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js +2 -2
  40. package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js.nft.json +1 -1
  41. package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js +2 -2
  42. package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.nft.json +1 -1
  43. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js +2 -2
  44. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js.nft.json +1 -1
  45. package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js +2 -2
  46. package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js.nft.json +1 -1
  47. package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js +2 -2
  48. package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js.nft.json +1 -1
  49. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js +2 -2
  50. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js.nft.json +1 -1
  51. package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js +2 -2
  52. package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.nft.json +1 -1
  53. package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js +2 -2
  54. package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js.nft.json +1 -1
  55. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js +2 -2
  56. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js.nft.json +1 -1
  57. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js +2 -2
  58. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js.nft.json +1 -1
  59. package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js +2 -2
  60. package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js.nft.json +1 -1
  61. package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js +2 -2
  62. package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js.nft.json +1 -1
  63. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js +2 -2
  64. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js.nft.json +1 -1
  65. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js +2 -2
  66. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js.nft.json +1 -1
  67. package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js +2 -2
  68. package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js.nft.json +1 -1
  69. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js +2 -2
  70. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js.nft.json +1 -1
  71. package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js +2 -2
  72. package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js.nft.json +1 -1
  73. package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js +2 -2
  74. package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js.nft.json +1 -1
  75. package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js +2 -2
  76. package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js.nft.json +1 -1
  77. package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js +2 -2
  78. package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.nft.json +1 -1
  79. package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route.js +2 -2
  80. package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route.js.nft.json +1 -1
  81. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js +2 -2
  82. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  83. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js +2 -2
  84. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.nft.json +1 -1
  85. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js +2 -2
  86. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js.nft.json +1 -1
  87. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js +2 -2
  88. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
  89. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js +2 -2
  90. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js.nft.json +1 -1
  91. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js +2 -2
  92. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js.nft.json +1 -1
  93. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js +2 -2
  94. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js.nft.json +1 -1
  95. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js +2 -2
  96. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js.nft.json +1 -1
  97. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js +2 -2
  98. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js.nft.json +1 -1
  99. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js +2 -2
  100. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js.nft.json +1 -1
  101. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js +2 -2
  102. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js.nft.json +1 -1
  103. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js +2 -2
  104. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js.nft.json +1 -1
  105. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js +2 -2
  106. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
  107. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js +2 -2
  108. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js.nft.json +1 -1
  109. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js +2 -2
  110. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js.nft.json +1 -1
  111. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js +1 -1
  112. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js.nft.json +1 -1
  113. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js +1 -1
  114. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js.nft.json +1 -1
  115. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js +1 -1
  116. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js.nft.json +1 -1
  117. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js +2 -2
  118. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
  119. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js +2 -2
  120. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  121. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js +2 -2
  122. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
  123. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route/app-paths-manifest.json +3 -0
  124. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route/build-manifest.json +11 -0
  125. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route/server-reference-manifest.json +4 -0
  126. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route.js +10 -0
  127. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route.js.map +5 -0
  128. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route.js.nft.json +1 -0
  129. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route_client-reference-manifest.js +2 -0
  130. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route/app-paths-manifest.json +3 -0
  131. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route/build-manifest.json +11 -0
  132. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route/server-reference-manifest.json +4 -0
  133. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route.js +10 -0
  134. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route.js.map +5 -0
  135. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route.js.nft.json +1 -0
  136. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route_client-reference-manifest.js +2 -0
  137. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js +2 -2
  138. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  139. package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js +2 -2
  140. package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.nft.json +1 -1
  141. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js +2 -2
  142. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js.nft.json +1 -1
  143. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +2 -2
  144. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  145. package/web/.next/standalone/packages/web/.next/server/app/page/build-manifest.json +5 -5
  146. package/web/.next/standalone/packages/web/.next/server/app/page/react-loadable-manifest.json +4 -4
  147. package/web/.next/standalone/packages/web/.next/server/app/page/server-reference-manifest.json +7 -7
  148. package/web/.next/standalone/packages/web/.next/server/app/page.js +2 -2
  149. package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
  150. package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
  151. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/build-manifest.json +5 -5
  152. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/server-reference-manifest.json +7 -7
  153. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js +2 -2
  154. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  155. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  156. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/build-manifest.json +5 -5
  157. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/server-reference-manifest.json +7 -7
  158. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
  159. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
  160. package/web/.next/standalone/packages/web/.next/server/app/unlock/page/build-manifest.json +5 -5
  161. package/web/.next/standalone/packages/web/.next/server/app/unlock/page/server-reference-manifest.json +14 -14
  162. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
  163. package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
  164. package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +2 -0
  165. package/web/.next/standalone/packages/web/.next/server/chunks/26076_server_app_api_sessions_[id]_terminal_connection_route_actions_46c114ee.js +3 -0
  166. package/web/.next/standalone/packages/web/.next/server/chunks/26076_server_app_api_sessions_[id]_terminal_snapshot_route_actions_cfb4de43.js +3 -0
  167. package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_restore_route_actions_41a4c356.js +1 -1
  168. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__b716459f._.js → [root-of-the-server]__08556fc3._.js} +2 -2
  169. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__624bcdc9._.js → [root-of-the-server]__0e496df1._.js} +2 -2
  170. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__9bf61231._.js → [root-of-the-server]__115b433b._.js} +2 -2
  171. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__70929198._.js → [root-of-the-server]__120a0868._.js} +2 -2
  172. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__17d710ef._.js → [root-of-the-server]__1a623333._.js} +2 -2
  173. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__262e987e._.js +1 -1
  174. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__31053ac2._.js → [root-of-the-server]__2713bac9._.js} +2 -2
  175. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__8c576b6a._.js → [root-of-the-server]__2798ac7c._.js} +2 -2
  176. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__747e6415._.js → [root-of-the-server]__27b2bd14._.js} +2 -2
  177. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__a4b1a94c._.js → [root-of-the-server]__29d94573._.js} +2 -2
  178. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__732fc06e._.js → [root-of-the-server]__2b59cba9._.js} +2 -2
  179. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2ce39d51._.js +1 -1
  180. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__3e507276._.js → [root-of-the-server]__2fea4a4c._.js} +2 -2
  181. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__59635ca5._.js → [root-of-the-server]__36559d88._.js} +2 -2
  182. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__f0ec1021._.js → [root-of-the-server]__4117784b._.js} +2 -2
  183. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__543bc377._.js → [root-of-the-server]__43b35d39._.js} +2 -2
  184. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__ba70a88e._.js → [root-of-the-server]__444bf146._.js} +2 -2
  185. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__fd0a681b._.js → [root-of-the-server]__45483f4b._.js} +2 -2
  186. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__98f4a7bd._.js → [root-of-the-server]__4644a89e._.js} +2 -2
  187. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4c78886c._.js +3 -0
  188. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__e7aaee2d._.js → [root-of-the-server]__4cea5dca._.js} +2 -2
  189. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__33494588._.js → [root-of-the-server]__575c7392._.js} +2 -2
  190. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__eae97345._.js → [root-of-the-server]__57605af7._.js} +2 -2
  191. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__be233a9f._.js → [root-of-the-server]__57c8ca1a._.js} +2 -2
  192. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5e2b35cd._.js +3 -0
  193. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__8ace49d1._.js → [root-of-the-server]__5f5433df._.js} +2 -2
  194. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6313c91e._.js +3 -3
  195. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__3dc4c761._.js → [root-of-the-server]__6a8b5dc7._.js} +2 -2
  196. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__3318d8a1._.js → [root-of-the-server]__717081d9._.js} +2 -2
  197. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__ae73aa49._.js → [root-of-the-server]__75668566._.js} +2 -2
  198. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__b4039db5._.js → [root-of-the-server]__7a6210dc._.js} +2 -2
  199. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__34e636e5._.js → [root-of-the-server]__7ca5b93b._.js} +2 -2
  200. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__b53b70e7._.js → [root-of-the-server]__8462ddf1._.js} +2 -2
  201. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__3937a996._.js → [root-of-the-server]__9e363e9c._.js} +2 -2
  202. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__4c5f7cab._.js → [root-of-the-server]__a0467c5b._.js} +2 -2
  203. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__9576223c._.js → [root-of-the-server]__a8d68307._.js} +2 -2
  204. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__82e86bb6._.js → [root-of-the-server]__ac79a67b._.js} +2 -2
  205. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__bcd0c846._.js → [root-of-the-server]__af5be1d9._.js} +2 -2
  206. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b3cd93ca._.js +3 -0
  207. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__540ebc7f._.js → [root-of-the-server]__b7314f2a._.js} +2 -2
  208. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__bb2675cd._.js → [root-of-the-server]__bcbc6330._.js} +2 -2
  209. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__fe4c1384._.js → [root-of-the-server]__bfbdd808._.js} +2 -2
  210. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__b00db558._.js → [root-of-the-server]__c205eff4._.js} +2 -2
  211. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__c455995a._.js → [root-of-the-server]__c39ceb71._.js} +2 -2
  212. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c9cb9ac6._.js +3 -0
  213. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cff9ddef._.js +1 -1
  214. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__7c87a52f._.js → [root-of-the-server]__d65b8403._.js} +2 -2
  215. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__eb6e6bb9._.js → [root-of-the-server]__d7b9cb55._.js} +2 -2
  216. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__53daf5c6._.js → [root-of-the-server]__df103a4a._.js} +2 -2
  217. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ea845f9f._.js +1 -1
  218. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__8ee7749b._.js → [root-of-the-server]__f5a16619._.js} +2 -2
  219. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__9940de77._.js → [root-of-the-server]__f62d8a1f._.js} +2 -2
  220. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__5df70a62._.js → [root-of-the-server]__f7c7ed71._.js} +2 -2
  221. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__520aa408._.js → [root-of-the-server]__fa5bbdc8._.js} +2 -2
  222. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__e385846c._.js → [root-of-the-server]__fed9223f._.js} +2 -2
  223. package/web/.next/standalone/packages/web/.next/server/chunks/_2c837d66._.js +5 -5
  224. package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_eaad1f33.js +1 -1
  225. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__000b8c99._.js +1 -1
  226. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__4f387f9d._.js → [root-of-the-server]__10a850c6._.js} +2 -2
  227. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__7829c78d._.js → [root-of-the-server]__17f5cb6a._.js} +2 -2
  228. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__29d8d063._.js +1 -1
  229. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__99387ae7._.js → [root-of-the-server]__6647f7ec._.js} +2 -2
  230. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__7bb2062e._.js +3 -0
  231. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__a509d17d._.js → [root-of-the-server]__9f45b36b._.js} +2 -2
  232. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__bc8d015f._.js → [root-of-the-server]__f8f50c0b._.js} +2 -2
  233. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_0e1412de._.js +1 -1
  234. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{_a4a4deb7._.js → _1f11ad88._.js} +2 -2
  235. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_1fc34e32._.js +3 -0
  236. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_230c0c14._.js +4 -4
  237. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_4a52b10d._.js +3 -0
  238. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{_b6d31783._.js → _532f707d._.js} +3 -3
  239. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_69e05fca._.js +1 -1
  240. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_6cfd06c2._.js +1 -1
  241. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_80efe193._.js +1 -1
  242. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b214b154._.js +1 -1
  243. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b8358e63._.js +3 -0
  244. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_c0f0e227._.js +1 -1
  245. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{_8982bbf3._.js → _de3b7194._.js} +2 -2
  246. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_f36ddaa9._.js +1 -1
  247. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_226037d7._.js +3 -0
  248. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{node_modules_@clerk_nextjs_dist_esm_app-router_743f164d._.js → node_modules_@clerk_nextjs_dist_esm_app-router_aed062ea._.js} +2 -2
  249. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@radix-ui_d03fdd57._.js +3 -0
  250. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@xterm_addon-fit_lib_addon-fit_mjs_9b7cb17b._.js +3 -0
  251. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@xterm_addon-search_lib_addon-search_mjs_8d69d9d7._.js +11 -0
  252. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@xterm_xterm_lib_xterm_mjs_a1a7b9e9._.js +20 -0
  253. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_afb6e107._.js +3 -0
  254. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_refresh-cw_50f1c1e7.js +3 -0
  255. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_dist_2df23979._.js +1 -1
  256. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_cd51dad4.js +2 -2
  257. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_board_WorkspaceKanban_tsx_735b7999._.js +1 -1
  258. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_sessions_SessionDetail_tsx_5fcad270._.js +6 -0
  259. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_features_dashboard_DashboardClient_tsx_81ae42b0._.js +1 -1
  260. package/web/.next/standalone/packages/web/.next/server/functions-config-manifest.json +3 -1
  261. package/web/.next/standalone/packages/web/.next/server/middleware-build-manifest.js +5 -5
  262. package/web/.next/standalone/packages/web/.next/server/pages/404.html +1 -1
  263. package/web/.next/standalone/packages/web/.next/server/pages/500.html +2 -2
  264. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
  265. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +15 -15
  266. package/web/.next/standalone/packages/web/.next/static/chunks/0cdc18649f440c71.js +1 -0
  267. package/web/.next/standalone/packages/web/.next/static/chunks/0f7eb6d5a59ee3ae.js +1 -0
  268. package/web/.next/standalone/packages/web/.next/static/chunks/12d33f33839d69eb.js +1 -0
  269. package/web/.next/standalone/packages/web/.next/static/chunks/146ec959503d40d4.js +1 -0
  270. package/web/.next/standalone/packages/web/.next/static/chunks/1fabe72716ad1fda.css +3 -0
  271. package/web/.next/standalone/packages/web/.next/static/chunks/2d61dae0bfb5ab41.js +1 -0
  272. package/web/.next/standalone/packages/web/.next/static/chunks/{c4c79d5d0b280aeb.js → 2f236954d6a65e12.js} +1 -1
  273. package/web/.next/standalone/packages/web/.next/static/chunks/3cdf839644f79d43.js +18 -0
  274. package/web/.next/standalone/packages/web/.next/static/chunks/3e3880b9a3d2d1d5.js +6 -0
  275. package/web/.next/{static/chunks/dfa8ef24e636ca14.js → standalone/packages/web/.next/static/chunks/486ac8976a12f1e5.js} +1 -1
  276. package/web/.next/standalone/packages/web/.next/static/chunks/6850a6cda159c98d.js +1 -0
  277. package/web/.next/{static/chunks/06bdd070b8d25946.js → standalone/packages/web/.next/static/chunks/69be39811437728d.js} +1 -1
  278. package/web/.next/standalone/packages/web/.next/static/chunks/6cec31da5f555e99.js +1 -0
  279. package/web/.next/standalone/packages/web/.next/static/chunks/70d1e7a526f0f4e2.js +9 -0
  280. package/web/.next/standalone/packages/web/.next/static/chunks/{ba2aa8b54e912820.js → 723acbe92d3f9e7e.js} +1 -1
  281. package/web/.next/standalone/packages/web/.next/static/chunks/739c6f71243d76d8.js +1 -0
  282. package/web/.next/standalone/packages/web/.next/static/chunks/a6ec1ab37eb7b410.js +1 -0
  283. package/web/.next/standalone/packages/web/.next/static/chunks/af8bfb72187b7cbf.js +1 -0
  284. package/web/.next/standalone/packages/web/.next/static/chunks/c993a1a4204fce88.js +4 -0
  285. package/web/.next/standalone/packages/web/.next/static/chunks/ca3e38b4495a3d39.js +1 -0
  286. package/web/.next/standalone/packages/web/.next/static/chunks/{45bd2451c2b0790c.js → caf02f8136b16992.js} +2 -2
  287. package/web/.next/standalone/packages/web/.next/static/chunks/d4269c59429734ad.js +1 -0
  288. package/web/.next/{static/chunks/28eac764d6544827.js → standalone/packages/web/.next/static/chunks/e5bcec03f80af56a.js} +1 -1
  289. package/web/.next/standalone/packages/web/.next/static/chunks/{turbopack-49f4119854e8206e.js → turbopack-26870d017b23fcf0.js} +1 -1
  290. package/web/.next/standalone/packages/web/next.config.ts +16 -0
  291. package/web/.next/standalone/packages/web/package.json +3 -1
  292. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/terminal/connection/route.ts +64 -0
  293. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/terminal/snapshot/route.ts +14 -0
  294. package/web/.next/standalone/packages/web/src/app/globals.css +12 -4
  295. package/web/.next/standalone/packages/web/src/components/Dashboard.tsx +1 -5
  296. package/web/.next/standalone/packages/web/src/components/TerminalView.tsx +528 -100
  297. package/web/.next/standalone/packages/web/src/components/board/WorkspaceKanban.tsx +3 -3
  298. package/web/.next/standalone/packages/web/src/components/layout/AppShell.tsx +3 -3
  299. package/web/.next/standalone/packages/web/src/components/layout/Sidebar.tsx +29 -18
  300. package/web/.next/standalone/packages/web/src/components/layout/TopBar.tsx +3 -3
  301. package/web/.next/standalone/packages/web/src/components/sessions/ChatPanel.tsx +61 -5
  302. package/web/.next/standalone/packages/web/src/components/sessions/SessionDetail.tsx +99 -46
  303. package/web/.next/standalone/packages/web/src/components/sessions/SessionPreview.tsx +231 -233
  304. package/web/.next/standalone/packages/web/src/components/sessions/SessionTerminal.tsx +1212 -0
  305. package/web/.next/standalone/packages/web/src/components/sessions/terminalInsert.ts +6 -0
  306. package/web/.next/standalone/packages/web/src/components/terminal/xtermTheme.ts +70 -0
  307. package/web/.next/standalone/packages/web/src/components/ui/Tabs.tsx +2 -2
  308. package/web/.next/standalone/packages/web/src/features/dashboard/DashboardClient.tsx +10 -12
  309. package/web/.next/standalone/packages/web/src/features/sessions/SessionPageClient.tsx +2 -2
  310. package/web/.next/standalone/packages/web/src/lib/devPreviewBrowser.ts +15 -3
  311. package/web/.next/static/chunks/0cdc18649f440c71.js +1 -0
  312. package/web/.next/static/chunks/0f7eb6d5a59ee3ae.js +1 -0
  313. package/web/.next/static/chunks/12d33f33839d69eb.js +1 -0
  314. package/web/.next/static/chunks/146ec959503d40d4.js +1 -0
  315. package/web/.next/static/chunks/1fabe72716ad1fda.css +3 -0
  316. package/web/.next/static/chunks/2d61dae0bfb5ab41.js +1 -0
  317. package/web/.next/static/chunks/{c4c79d5d0b280aeb.js → 2f236954d6a65e12.js} +1 -1
  318. package/web/.next/static/chunks/3cdf839644f79d43.js +18 -0
  319. package/web/.next/static/chunks/3e3880b9a3d2d1d5.js +6 -0
  320. package/web/.next/{standalone/packages/web/.next/static/chunks/dfa8ef24e636ca14.js → static/chunks/486ac8976a12f1e5.js} +1 -1
  321. package/web/.next/static/chunks/6850a6cda159c98d.js +1 -0
  322. package/web/.next/{standalone/packages/web/.next/static/chunks/06bdd070b8d25946.js → static/chunks/69be39811437728d.js} +1 -1
  323. package/web/.next/static/chunks/6cec31da5f555e99.js +1 -0
  324. package/web/.next/static/chunks/70d1e7a526f0f4e2.js +9 -0
  325. package/web/.next/static/chunks/{ba2aa8b54e912820.js → 723acbe92d3f9e7e.js} +1 -1
  326. package/web/.next/static/chunks/739c6f71243d76d8.js +1 -0
  327. package/web/.next/static/chunks/a6ec1ab37eb7b410.js +1 -0
  328. package/web/.next/static/chunks/af8bfb72187b7cbf.js +1 -0
  329. package/web/.next/static/chunks/c993a1a4204fce88.js +4 -0
  330. package/web/.next/static/chunks/ca3e38b4495a3d39.js +1 -0
  331. package/web/.next/static/chunks/{45bd2451c2b0790c.js → caf02f8136b16992.js} +2 -2
  332. package/web/.next/static/chunks/d4269c59429734ad.js +1 -0
  333. package/web/.next/{standalone/packages/web/.next/static/chunks/28eac764d6544827.js → static/chunks/e5bcec03f80af56a.js} +1 -1
  334. package/web/.next/static/chunks/{turbopack-49f4119854e8206e.js → turbopack-26870d017b23fcf0.js} +1 -1
  335. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__29091976._.js +0 -3
  336. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__784e6aef._.js +0 -3
  337. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__b388693f._.js +0 -3
  338. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__d1efcbf0._.js +0 -3
  339. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_e1c18705._.js +0 -3
  340. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_2a090a71._.js +0 -3
  341. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@radix-ui_02f0d3f0._.js +0 -3
  342. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_message-square_2e76b8d9.js +0 -3
  343. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_ui_Tooltip_tsx_6becc8ca._.js +0 -3
  344. package/web/.next/standalone/packages/web/.next/static/chunks/07f3b9a104ce0ff4.js +0 -1
  345. package/web/.next/standalone/packages/web/.next/static/chunks/1004422d31074d62.js +0 -1
  346. package/web/.next/standalone/packages/web/.next/static/chunks/25afa19789883705.js +0 -6
  347. package/web/.next/standalone/packages/web/.next/static/chunks/2bc11b604b131190.js +0 -1
  348. package/web/.next/standalone/packages/web/.next/static/chunks/30ababddac1b82dc.js +0 -1
  349. package/web/.next/standalone/packages/web/.next/static/chunks/64f0033534ca1ad3.css +0 -3
  350. package/web/.next/standalone/packages/web/.next/static/chunks/902a6ba5837e1e57.js +0 -1
  351. package/web/.next/standalone/packages/web/.next/static/chunks/a28bcda8dd6b68ee.js +0 -1
  352. package/web/.next/standalone/packages/web/.next/static/chunks/aabc80195233b4da.js +0 -1
  353. package/web/.next/standalone/packages/web/.next/static/chunks/b6069d0eb07a978f.js +0 -1
  354. package/web/.next/standalone/packages/web/.next/static/chunks/c2caa064748bb0b5.js +0 -1
  355. package/web/.next/standalone/packages/web/.next/static/chunks/c5f8e486166298c2.js +0 -1
  356. package/web/.next/standalone/packages/web/.next/static/chunks/d6a81d2f8b98b4be.js +0 -1
  357. package/web/.next/standalone/packages/web/.next/static/chunks/e9d0e95bbaa0f4fb.js +0 -1
  358. package/web/.next/standalone/packages/web/.next/static/chunks/ebaa0c535c4135f1.js +0 -1
  359. package/web/.next/static/chunks/07f3b9a104ce0ff4.js +0 -1
  360. package/web/.next/static/chunks/1004422d31074d62.js +0 -1
  361. package/web/.next/static/chunks/25afa19789883705.js +0 -6
  362. package/web/.next/static/chunks/2bc11b604b131190.js +0 -1
  363. package/web/.next/static/chunks/30ababddac1b82dc.js +0 -1
  364. package/web/.next/static/chunks/64f0033534ca1ad3.css +0 -3
  365. package/web/.next/static/chunks/902a6ba5837e1e57.js +0 -1
  366. package/web/.next/static/chunks/a28bcda8dd6b68ee.js +0 -1
  367. package/web/.next/static/chunks/aabc80195233b4da.js +0 -1
  368. package/web/.next/static/chunks/b6069d0eb07a978f.js +0 -1
  369. package/web/.next/static/chunks/c2caa064748bb0b5.js +0 -1
  370. package/web/.next/static/chunks/c5f8e486166298c2.js +0 -1
  371. package/web/.next/static/chunks/d6a81d2f8b98b4be.js +0 -1
  372. package/web/.next/static/chunks/e9d0e95bbaa0f4fb.js +0 -1
  373. package/web/.next/static/chunks/ebaa0c535c4135f1.js +0 -1
  374. /package/web/.next/standalone/packages/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → 0erIuL9LSGhZ5_YeWB5Mc}/_buildManifest.js +0 -0
  375. /package/web/.next/standalone/packages/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → 0erIuL9LSGhZ5_YeWB5Mc}/_clientMiddlewareManifest.json +0 -0
  376. /package/web/.next/standalone/packages/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → 0erIuL9LSGhZ5_YeWB5Mc}/_ssgManifest.js +0 -0
  377. /package/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → 0erIuL9LSGhZ5_YeWB5Mc}/_buildManifest.js +0 -0
  378. /package/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → 0erIuL9LSGhZ5_YeWB5Mc}/_clientMiddlewareManifest.json +0 -0
  379. /package/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → 0erIuL9LSGhZ5_YeWB5Mc}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[6599,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(70106);let f=(0,e.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var g=a.i(96221),h=a.i(63588);let i=(0,e.default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);var j=a.i(15618),k=a.i(69520),l=a.i(87532),m=a.i(52806);function n(a){return!a||"object"!=typeof a||Array.isArray(a)?{}:{...a}}var o=a.i(26006),p=a.i(9341);let q={intake:"#3c83f6",ready:"#f59f0a",dispatching:"#fb923c",inProgress:"#f59f0a",needsInput:"#eab308",blocked:"#d53946",errored:"#ef4444",review:"#895af6",merge:"#06b6d4",done:"#21c45d",cancelled:"#6b7280"},r={intake:"To do",ready:"Ready",dispatching:"Dispatching",inProgress:"In progress",needsInput:"Needs input",blocked:"Blocked",errored:"Errored",review:"In review",merge:"Merge",done:"Done",cancelled:"Cancelled"},s={obsidian:"Obsidian",vscode:"VS Code",notion:"Notion",typora:"Typora",logseq:"Logseq",custom:"your editor"};function t(a){return["intake","ready","dispatching","inProgress","needsInput","blocked","errored","review","merge","done","cancelled"].includes(a)?a:"intake"}function u(a){let[b,...c]=a.split(" - ");return{title:(b??a).trim(),description:c.join(" - ").trim()}}function v(a){return a.split(/[-_\s]+/g).filter(Boolean).map(a=>a[0]?.toUpperCase()+a.slice(1)).join(" ")}function w({attachment:a,onOpen:c,opening:d=!1}){return(0,b.jsxs)("button",{type:"button",onClick:c,disabled:d,className:"inline-flex max-w-full items-center gap-1 rounded-[3px] bg-[color:#292929] px-2 py-1 text-[11px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)] disabled:opacity-60",title:a,"aria-label":`Open ${a}`,children:[d?(0,b.jsx)(g.Loader2,{className:"h-3 w-3 shrink-0 animate-spin"}):(0,b.jsx)(f,{className:"h-3 w-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a})]})}function x(a,b){if(!a||a.projectId!==b.projectId||a.repository!==b.repository||a.boardPath!==b.boardPath||a.workspacePath!==b.workspacePath||a.watcherHint!==b.watcherHint||a.primaryRoles.length!==b.primaryRoles.length||a.columns.length!==b.columns.length)return!1;for(let c=0;c<a.primaryRoles.length;c+=1)if(a.primaryRoles[c]!==b.primaryRoles[c])return!1;for(let c=0;c<a.columns.length;c+=1){let d=a.columns[c],e=b.columns[c];if(d.role!==e.role||d.heading!==e.heading||d.tasks.length!==e.tasks.length)return!1;for(let a=0;a<d.tasks.length;a+=1){let b=d.tasks[a],c=e.tasks[a];if(b.id!==c.id||b.text!==c.text||b.checked!==c.checked||b.agent!==c.agent||b.project!==c.project||b.type!==c.type||b.priority!==c.priority||b.taskRef!==c.taskRef||b.attemptRef!==c.attemptRef||b.issueId!==c.issueId||b.githubItemId!==c.githubItemId||b.notes!==c.notes||b.commentCount!==c.commentCount||b.comments.length!==c.comments.length||b.attachments.length!==c.attachments.length)return!1;for(let a=0;a<b.attachments.length;a+=1)if(b.attachments[a]!==c.attachments[a])return!1;for(let a=0;a<b.comments.length;a+=1)if(JSON.stringify(b.comments[a])!==JSON.stringify(c.comments[a]))return!1}}let c=a.githubProject??null,d=b.githubProject??null;if(JSON.stringify(c)!==JSON.stringify(d))return!1;let e=a.recentActions??[],f=b.recentActions??[];if(e.length!==f.length)return!1;for(let a=0;a<e.length;a+=1)if(JSON.stringify(e[a])!==JSON.stringify(f[a]))return!1;let g=a.recentWebhookDeliveries??[],h=b.recentWebhookDeliveries??[];if(g.length!==h.length)return!1;for(let a=0;a<g.length;a+=1)if(JSON.stringify(g[a])!==JSON.stringify(h[a]))return!1;return!0}function y(a){return{...a,repository:a.repository??null,githubProject:a.githubProject??null,recentActions:Array.isArray(a.recentActions)?a.recentActions:[],recentWebhookDeliveries:Array.isArray(a.recentWebhookDeliveries)?a.recentWebhookDeliveries:[],columns:Array.isArray(a.columns)?a.columns.map(a=>({...a,tasks:Array.isArray(a.tasks)?a.tasks.map(a=>({...a,issueId:a.issueId??null,githubItemId:a.githubItemId??null,attachments:Array.isArray(a.attachments)?a.attachments:[],notes:a.notes??null,commentCount:"number"==typeof a.commentCount?a.commentCount:Array.isArray(a.comments)?a.comments.length:0,comments:Array.isArray(a.comments)?a.comments:[]})):[]})):[]}}function z(a){return a.branch?.trim()||a.summary?.trim()||a.id.slice(0,8)}function A(a){return a.issueId?.trim()||a.taskRef?.trim()||a.id}function B(a){let b=a.metadata?.agent;return"string"==typeof b&&b.trim().length>0?b.trim():null}function C(a){let b=a.trim().toLowerCase();return"working"===b||"running"===b?"Running":"done"===b?"Done":"killed"===b?"Interrupted":"errored"===b?"Errored":"archived"===b?"Archived":a.split(/[-_\s]+/g).filter(Boolean).map(a=>a[0]?.toUpperCase()+a.slice(1)).join(" ")}function D(a){let b=a.trim().toLowerCase();return"working"===b||"running"===b?"border-[rgba(60,131,246,0.35)] bg-[rgba(60,131,246,0.12)] text-[#8db8ff]":"done"===b?"border-[rgba(84,176,79,0.35)] bg-[rgba(84,176,79,0.12)] text-[var(--vk-green)]":"killed"===b||"archived"===b?"border-[rgba(143,143,143,0.35)] bg-[rgba(143,143,143,0.10)] text-[var(--vk-text-muted)]":"errored"===b?"border-[rgba(210,81,81,0.35)] bg-[rgba(210,81,81,0.12)] text-[var(--vk-red)]":"border-[var(--vk-border)] bg-[rgba(255,255,255,0.03)] text-[var(--vk-text-muted)]"}function E(a){if(!a?.id)return"No GitHub Project linked";let b="number"==typeof a.number?`#${a.number}`:"Project";return`${b} ${a.title?.trim()||"Untitled"}`.trim()}function F(a){let b=Date.parse(a);return Number.isNaN(b)?a:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(b))}function G(a,b){if(!a)return null;for(let c of a.columns){let a=c.tasks.find(a=>a.id===b);if(a)return{task:a,role:c.role}}return null}function H(a,b,c){if(c){if(a.id===c&&b.id!==c)return -1;if(b.id===c&&a.id!==c)return 1}let d=a.lastActivityAt?Date.parse(a.lastActivityAt):0;return(b.lastActivityAt?Date.parse(b.lastActivityAt):0)-d}function I({projectId:a,defaultAgent:e,agentOptions:I}){var J;let K=(0,d.useRouter)(),{preferences:L}=function(){let[a,b]=(0,c.useState)(null),[d,e]=(0,c.useState)(!0),[f,g]=(0,c.useState)(null),h=(0,c.useRef)(!1),i=(0,c.useCallback)(async()=>{try{var a;let c,d,e,f=await fetch("/api/preferences"),h=await f.json().catch(()=>null);if(!f.ok)throw Error(h?.error??`Failed to load preferences: ${f.status}`);b((a=h?.preferences,c=n(a),e=(d=n(c.notifications)).soundFile,{onboardingAcknowledged:!0===c.onboardingAcknowledged,codingAgent:"string"==typeof c.codingAgent&&c.codingAgent.trim().length>0?c.codingAgent.trim():"claude-code",ide:"string"==typeof c.ide&&c.ide.trim().length>0?c.ide.trim():"vscode",markdownEditor:"string"==typeof c.markdownEditor&&c.markdownEditor.trim().length>0?c.markdownEditor.trim():"obsidian",markdownEditorPath:"string"==typeof c.markdownEditorPath?c.markdownEditorPath.trim():"",notifications:{soundEnabled:!1!==d.soundEnabled,soundFile:null===e?null:"string"==typeof e&&e.trim().length>0?e.trim():"abstract-sound-4"}})),g(null)}catch(a){b(null),g(a instanceof Error?a.message:"Failed to load preferences")}finally{e(!1)}},[]);return(0,c.useEffect)(()=>{h.current||(h.current=!0,i())},[i]),{preferences:a,loading:d,error:f,refresh:i}}(),[M,N]=(0,c.useState)(null),[O,P]=(0,c.useState)(!1),[Q,R]=(0,c.useState)(null),[S,T]=(0,c.useState)(""),[U,V]=(0,c.useState)("active"),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)("intake"),[$,_]=(0,c.useState)(""),[aa,ab]=(0,c.useState)(""),[ac,ad]=(0,c.useState)(e),[ae,af]=(0,c.useState)("feature"),[ag,ah]=(0,c.useState)("normal"),[ai,aj]=(0,c.useState)(""),[ak,al]=(0,c.useState)([]),[am,an]=(0,c.useState)(""),[ao,ap]=(0,c.useState)([]),[aq,ar]=(0,c.useState)(!1),[as,at]=(0,c.useState)(null),[au,av]=(0,c.useState)(null),[aw,ax]=(0,c.useState)([]),[ay,az]=(0,c.useState)(!1),[aA,aB]=(0,c.useState)(null),[aC,aD]=(0,c.useState)([]),[aE,aF]=(0,c.useState)(null),[aG,aH]=(0,c.useState)("intake"),[aI,aJ]=(0,c.useState)(""),[aK,aL]=(0,c.useState)(""),[aM,aN]=(0,c.useState)(e),[aO,aP]=(0,c.useState)("feature"),[aQ,aR]=(0,c.useState)("normal"),[aS,aT]=(0,c.useState)(""),[aU,aV]=(0,c.useState)(""),[aW,aX]=(0,c.useState)(""),[aY,aZ]=(0,c.useState)(!1),[a$,a_]=(0,c.useState)(null),[a0,a1]=(0,c.useState)(""),[a2,a3]=(0,c.useState)(!1),[a4,a5]=(0,c.useState)(null),[a6,a7]=(0,c.useState)(null),[a8,a9]=(0,c.useState)(!1),[ba,bb]=(0,c.useState)(!1),[bc,bd]=(0,c.useState)(!1),[be,bf]=(0,c.useState)(null),[bg,bh]=(0,c.useState)(null),[bi,bj]=(0,c.useState)(""),bk=(0,c.useRef)(!1),bl=(0,c.useRef)(!1),bm="obsidian"===(J=L?.markdownEditor?.trim()||"obsidian")||"vscode"===J||"typora"===J||"logseq"===J?`Open in ${s[J]??"your editor"}`:"Open file",bn=(0,c.useMemo)(()=>{let a=[...new Set(I.filter(Boolean))];return a.includes(e)||a.unshift(e),a},[I,e]);(0,c.useEffect)(()=>{bn.includes(ac)||ad(bn[0]??e)},[ac,e,bn]),(0,c.useEffect)(()=>{bn.includes(aM)||aN(bn[0]??e)},[e,aM,bn]),(0,c.useEffect)(()=>{if(!W&&!aE||!a)return;let b=!1;return(async()=>{ar(!0),at(null);try{let c=await fetch(`/api/context-files?projectId=${encodeURIComponent(a)}`),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to load context files: ${c.status}`);if(b)return;let e=Array.isArray(d?.files)?d.files:[];ap(e)}catch(a){if(b)return;ap([]),at(a instanceof Error?a.message:"Failed to load context files")}finally{b||ar(!1)}})(),()=>{b=!0}},[W,aE,a]),(0,c.useEffect)(()=>{if(!a||!W&&!aE)return;let b=!1;return(async()=>{try{let c=await fetch(`/api/sessions?project=${encodeURIComponent(a)}`),d=await c.json().catch(()=>null);if(!c.ok)throw Error(`Failed to load sessions: ${c.status}`);if(b)return;let e=Array.isArray(d)?d:Array.isArray(d?.sessions)?d.sessions:[];aD(e)}catch{b||aD([])}})(),()=>{b=!0}},[W,aE,a]),(0,c.useEffect)(()=>{bk.current=!1,a9(!1),bf(null),bh(null),bj("")},[a]);let bo=(0,c.useCallback)(async b=>{if(!a){N(null),R(null),P(!1),bk.current=!1;return}if(!bl.current){bl.current=!0,b?.silent||P(!0);try{let b=await fetch(`/api/boards?projectId=${encodeURIComponent(a)}`),c=await b.json().catch(()=>null);if(!b.ok)throw Error(c?.error??`Failed to load board: ${b.status}`);let d=y(c);bk.current=!0,N(a=>x(a,d)?a:d),R(null)}catch(a){b?.silent&&bk.current||(N(null),R(a instanceof Error?a.message:"Failed to load board"))}finally{b?.silent||P(!1),bl.current=!1}}},[a]);(0,c.useEffect)(()=>{bo({silent:!1})},[bo]);let bp=(0,c.useCallback)(async()=>{if(!a){bh(null),bf(null);return}bb(!0),bf(null);try{let b=await fetch(`/api/github/projects?projectId=${encodeURIComponent(a)}`),c=await b.json().catch(()=>null);if(!b.ok)throw Error(c?.error??`Failed to load GitHub Projects (${b.status})`);let d={...c,projects:Array.isArray(c.projects)?c.projects:[]};bh(d),bj(d.linkedProject?.id?.trim()||d.projects[0]?.id?.trim()||"")}catch(a){bf(a instanceof Error?a.message:"Failed to load GitHub Projects"),bh(null),bj("")}finally{bb(!1)}},[a]);(0,c.useEffect)(()=>{if(!a)return;let b=()=>{("u"<typeof document||"hidden"!==document.visibilityState)&&bo({silent:!0})},c=null,d=()=>{let a="visible"===document.visibilityState?1e4:3e4;c=window.setTimeout(()=>{b(),d()},a)};d(),window.addEventListener("focus",b);let e=()=>{"visible"===document.visibilityState&&b()};return document.addEventListener("visibilitychange",e),()=>{null!=c&&window.clearTimeout(c),window.removeEventListener("focus",b),document.removeEventListener("visibilitychange",e)}},[bo,a]),(0,c.useEffect)(()=>{if(a)return(0,p.subscribeToSnapshotEvents)(()=>{bo({silent:!0})})},[bo,a]),(0,c.useEffect)(()=>{a8&&a&&bp()},[bp,a,a8]);let bq=(0,c.useMemo)(()=>{let a=S.trim().toLowerCase(),b=M?.columns??[],c="all"===U?null:new Set("backlog"===U?["intake","ready"]:"cancelled"===U?["cancelled"]:["intake","ready","dispatching","inProgress","needsInput","blocked","errored","review","merge"]);return b.filter(a=>!c||c.has(a.role)).map(b=>a?{...b,tasks:b.tasks.filter(b=>{let c=b.comments.map(a=>`${a.author} ${a.body}`).join(" ");return`${b.text} ${b.agent??""} ${b.type??""} ${b.priority??""} ${b.issueId??""} ${b.notes??""} ${b.attachments.join(" ")} ${c}`.toLowerCase().includes(a)})}:b)},[M?.columns,S,U]),br=(0,c.useMemo)(()=>{let a=am.trim().toLowerCase();return a?ao.filter(b=>`${b.path} ${b.name} ${b.source??""}`.toLowerCase().includes(a)):ao},[ao,am]),bs=(0,c.useMemo)(()=>{if(!aE)return aC;let a=G(M,aE.task.id)??aE,b=A(a.task);return[...aC].sort((c,d)=>{let e=c.id===a.task.attemptRef||c.issueId?.trim()===b;return e!==(d.id===a.task.attemptRef||d.issueId?.trim()===b)?e?-1:1:H(c,d,a.task.attemptRef)})},[M,aE,aC]),bt=(0,c.useMemo)(()=>aE?G(M,aE.task.id)??aE:null,[M,aE]);function bu(a){Z(a),X(!0),aB(null),aj(""),an(""),al([]),ax([])}let bv=(0,c.useCallback)(async b=>{if(a){av(b),aE?a_(null):W?aB(null):R(null);try{let c=await fetch("/api/context-files/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,path:b})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to open context file: ${c.status}`)}catch(a){var c;c=a instanceof Error?a.message:"Failed to open context file",aE?a_(c):W?aB(c):R(c)}finally{av(a=>a===b?null:a)}}},[W,aE,a]);async function bw(){if(a&&$.trim()){az(!0),aB(null);try{let b=[];if(aw.length>0){let c=new FormData;for(let b of(c.append("projectId",a),aw))c.append("files",b);let d=await fetch("/api/attachments",{method:"POST",body:c}),e=await d.json().catch(()=>null);if(!d.ok)throw Error(e?.error??`Upload failed: ${d.status}`);b=(e?.files??[]).map(a=>a.path?.trim()).filter(a=>!!a)}let c=[...new Set([...ak,...b])],d=await fetch("/api/boards",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,title:$.trim(),description:aa.trim()||void 0,contextNotes:ai.trim()||void 0,attachments:c.length>0?c:void 0,agent:ac,role:Y,type:ae.trim()||void 0,priority:ag.trim()||void 0})}),e=await d.json().catch(()=>null);if(!d.ok)throw Error(e?.error??`Failed to create task: ${d.status}`);N(a=>{if(!e||!("columns"in e))return a;let b=y(e);return{...a??b,...b}}),_(""),ab(""),af("feature"),ah("normal"),aj(""),al([]),an(""),ax([]),X(!1)}catch(a){aB(a instanceof Error?a.message:"Failed to create task")}finally{az(!1)}}}let bx=(0,c.useRef)(!1);async function by(b){if(a&&!bx.current){bx.current=!0;try{let c=await fetch("/api/boards",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,...b})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to update board: ${c.status}`);let e=y(d);N(a=>x(a,e)?a:e),R(null)}finally{bx.current=!1}}}async function bz(b){if(a&&!bc){bd(!0),bf(null);try{let c=await fetch("/api/github/projects",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,link:b?.id?b:null})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to update GitHub Project link (${c.status})`);N(a=>a?{...a,githubProject:d?.githubProject??null}:a),await bp()}catch(a){bf(a instanceof Error?a.message:"Failed to update GitHub Project link")}finally{bd(!1)}}}async function bA(b){if(a&&!bc){bd(!0),bf(null);try{let c=await fetch("/api/github/projects/sync",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,direction:b})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to ${b} GitHub Project (${c.status})`);if(d?.board){let a=y(d.board);N(b=>x(b,a)?b:a)}else await bo({silent:!0});await bp()}catch(a){bf(a instanceof Error?a.message:`Failed to ${b} GitHub Project`)}finally{bd(!1)}}}function bB(){aY||a2||(aF(null),a_(null),a1(""),a5(null))}async function bC(){if(bt&&aI.trim()){aZ(!0),a_(null);try{await by({taskId:bt.task.id,role:aG,title:aI.trim(),description:aK,contextNotes:aU.trim()||"",issueId:aS.trim()||"",agent:aM,type:aO,priority:aQ,attemptRef:aW,taskRef:aW?bt.task.taskRef??bt.task.id:bt.task.taskRef??""}),aF(null)}catch(a){a_(a instanceof Error?a.message:"Failed to update task")}finally{aZ(!1)}}}async function bD(){if(a&&bt&&a0.trim()){a3(!0),a5(null);try{let b=await fetch("/api/boards/comments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,taskId:bt.task.id,body:a0.trim()})}),c=await b.json().catch(()=>null);if(!b.ok)throw Error(c?.error??`Failed to add comment: ${b.status}`);let d=y(c);N(a=>x(a,d)?a:d),a1("")}catch(a){a5(a instanceof Error?a.message:"Failed to add comment")}finally{a3(!1)}}}return a?(0,b.jsxs)("section",{className:"flex h-full min-h-0 flex-col",children:[(0,b.jsxs)("header",{className:"border-b border-[var(--vk-border)] px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"inline-flex rounded-[3px] border border-[var(--vk-border)] p-px",children:[["active","Active"],["all","All"],["backlog","Backlog"],["cancelled","Cancelled"]].map(([a,c])=>(0,b.jsx)("button",{type:"button",onClick:()=>V(a),className:(0,o.cn)("px-3 py-1 text-[13px]",U===a?"rounded-[2px] bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"),children:c},a))}),(0,b.jsxs)("div",{className:"ml-auto flex w-full min-w-0 flex-wrap items-center gap-2 sm:w-auto sm:min-w-[220px] sm:flex-nowrap sm:flex-none",children:[(0,b.jsxs)("label",{className:"flex h-[31px] min-w-0 flex-1 items-center rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 sm:min-w-[200px] sm:w-[240px] sm:flex-none",children:[(0,b.jsx)(l.Search,{className:"h-3.5 w-3.5 text-[var(--vk-text-muted)]"}),(0,b.jsx)("input",{value:S,onChange:a=>T(a.target.value),placeholder:"Search tasks...",className:"ml-2 w-full bg-transparent text-[14px] text-[var(--vk-text-normal)] outline-none placeholder:text-[var(--vk-text-muted)]"})]}),(0,b.jsxs)("button",{type:"button",onClick:()=>bu("intake"),className:"inline-flex h-[31px] w-full items-center justify-center gap-1 rounded-[3px] bg-[var(--vk-bg-active)] px-3 text-[14px] text-[var(--vk-text-strong)] hover:bg-[var(--vk-bg-hover)] sm:w-auto",children:[(0,b.jsx)("span",{children:"New Issue"}),(0,b.jsx)(j.Plus,{className:"h-3.5 w-3.5"})]})]})]}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>a9(a=>!a),className:"inline-flex h-[31px] items-center gap-2 rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",children:[(0,b.jsx)("span",{children:"GitHub Project"}),(0,b.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:M?.githubProject?.id?E(M.githubProject):"Connect"})]}),M?.githubProject?.url?(0,b.jsxs)("a",{href:M.githubProject.url,target:"_blank",rel:"noreferrer",className:"inline-flex h-[31px] items-center gap-1 rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",children:[(0,b.jsx)("span",{children:"Open Project"}),(0,b.jsx)(f,{className:"h-3.5 w-3.5"})]}):null]}),a8&&(0,b.jsxs)("div",{className:"mt-3 rounded-[6px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("label",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Linked project"}),(0,b.jsxs)("select",{value:bi,onChange:a=>bj(a.target.value),disabled:ba||bc,className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:[(0,b.jsx)("option",{value:"",children:ba?"Loading GitHub Projects...":"Select a GitHub Project"}),(bg?.projects??[]).map(a=>(0,b.jsx)("option",{value:a.id??"",children:E(a)},a.id??"unknown"))]})]}),(0,b.jsx)("button",{type:"button",disabled:!bi||ba||bc,onClick:()=>{bz(bg?.projects.find(a=>a.id===bi)??null)},className:"inline-flex h-9 items-center rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:bc?(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}):"Connect"}),(0,b.jsx)("button",{type:"button",disabled:!M?.githubProject?.id||bc,onClick:()=>void bz(null),className:"inline-flex h-9 items-center rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:"Disconnect"}),(0,b.jsxs)("button",{type:"button",disabled:!M?.githubProject?.id||bc,onClick:()=>void bA("pull"),className:"inline-flex h-9 items-center gap-2 rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:[bc?(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(k.RefreshCw,{className:"h-4 w-4"}),"Pull"]}),(0,b.jsx)("button",{type:"button",disabled:!M?.githubProject?.id||bc,onClick:()=>void bA("push"),className:"inline-flex h-9 items-center rounded-[3px] bg-[var(--vk-bg-active)] px-3 text-[13px] text-[var(--vk-text-strong)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:"Push"})]}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-[12px] text-[var(--vk-text-muted)]",children:[(0,b.jsxs)("span",{children:["Repository:"," ",M?.repository?.trim()||bg?.repository?.trim()||"Not configured"]}),bg?.ownerLogin?(0,b.jsxs)("span",{children:["Owner: ",bg.ownerLogin]}):null]}),be&&(0,b.jsx)("p",{className:"mt-2 text-[12px] text-[var(--vk-red)]",children:be}),(M?.recentWebhookDeliveries?.length??0)>0&&(0,b.jsxs)("div",{className:"mt-3 rounded-[6px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] p-3",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-2",children:[(0,b.jsx)("h3",{className:"text-[12px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Webhook diagnostics"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:(M?.recentWebhookDeliveries??[]).length})]}),(0,b.jsx)("div",{className:"space-y-2",children:(M?.recentWebhookDeliveries??[]).slice(0,6).map(a=>{var c;let d,e;return(0,b.jsxs)("div",{className:"rounded-[4px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] p-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:`inline-flex h-5 items-center rounded-[3px] border px-2 text-[10px] ${"synced"===(d=a.status.trim().toLowerCase())?"border-[rgba(84,176,79,0.35)] bg-[rgba(84,176,79,0.12)] text-[var(--vk-green)]":"failed"===d?"border-[rgba(210,81,81,0.35)] bg-[rgba(210,81,81,0.12)] text-[var(--vk-red)]":"border-[var(--vk-border)] bg-[rgba(255,255,255,0.03)] text-[var(--vk-text-muted)]"}`,children:"synced"===(e=(c=a.status).trim().toLowerCase())?"Synced":"failed"===e?"Failed":"skipped"===e?"Skipped":c}),(0,b.jsxs)("span",{className:"text-[12px] text-[var(--vk-text-normal)]",children:[a.event,a.action?` / ${a.action}`:""]}),(0,b.jsx)("span",{className:"ml-auto text-[11px] text-[var(--vk-text-muted)]",children:F(a.timestamp)})]}),(0,b.jsx)("p",{className:"mt-1 text-[12px] text-[var(--vk-text-muted)]",children:a.detail}),a.repository?(0,b.jsxs)("p",{className:"mt-1 text-[11px] text-[var(--vk-text-muted)]",children:["Repo: ",a.repository]}):null]},a.id)})})]})]}),M?.watcherHint&&(0,b.jsx)("p",{className:"pt-2 text-[12px] text-[var(--vk-text-muted)]",children:M.watcherHint}),(M?.recentActions?.length??0)>0&&(0,b.jsxs)("div",{className:"mt-3 rounded-[6px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] p-3",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-2",children:[(0,b.jsx)("h3",{className:"text-[12px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Recent activity"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:(M?.recentActions??[]).length})]}),(0,b.jsx)("div",{className:"space-y-2",children:(M?.recentActions??[]).slice(0,6).map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 text-[12px]",children:[(0,b.jsx)("span",{className:"rounded-[3px] bg-[color:#292929] px-2 py-0.5 text-[11px] text-[var(--vk-text-muted)]",children:a.source}),(0,b.jsx)("span",{className:"text-[var(--vk-text-normal)]",children:a.action}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--vk-text-muted)]",title:a.detail,children:a.detail}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:F(a.timestamp)})]},a.id))})]})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-auto p-4",children:O?(0,b.jsxs)("div",{className:"flex h-full items-center justify-center text-[var(--vk-text-muted)]",children:[(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}),(0,b.jsx)("span",{className:"ml-2 text-[14px]",children:"Loading board..."})]}):Q?(0,b.jsx)("div",{className:"rounded-[4px] border border-[color:color-mix(in_srgb,var(--vk-red)_55%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-red)_12%,transparent)] px-3 py-2 text-[13px] text-[var(--vk-red)]",children:Q}):(0,b.jsx)("div",{className:"flex min-w-0 flex-col gap-3 rounded-[4px] border border-[var(--vk-border)] lg:grid lg:gap-0",style:{gridTemplateColumns:`repeat(${Math.max(bq.length,1)}, minmax(240px, 1fr))`},children:bq.map((a,c)=>(0,b.jsxs)("article",{className:(0,o.cn)("flex min-h-[320px] flex-col border-b border-[var(--vk-border)] bg-[var(--vk-bg-panel)] lg:min-h-[540px] lg:border-b-0 lg:border-r",c===bq.length-1&&"border-b-0 lg:border-r-0"),children:[(0,b.jsxs)("header",{className:"flex h-[41px] items-center border-b border-[var(--vk-border)] px-2",children:[(0,b.jsx)("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:q[a.role]}}),(0,b.jsx)("span",{className:"ml-2 text-[14px] text-[var(--vk-text-normal)]",children:a.heading||r[a.role]}),(0,b.jsx)("button",{type:"button",onClick:()=>bu(a.role),className:"ml-auto inline-flex h-6 w-6 items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]","aria-label":`Add task to ${a.heading}`,children:(0,b.jsx)(j.Plus,{className:"h-3.5 w-3.5"})})]}),(0,b.jsxs)("div",{className:(0,o.cn)("flex-1 space-y-2 overflow-y-auto p-2",a6?.role===a.role&&"bg-[rgba(255,255,255,0.02)]"),onDragOver:a=>{a6&&a.preventDefault()},onDrop:b=>{b.preventDefault(),a6&&a6.role!==a.role&&(by({taskId:a6.taskId,role:a.role}).catch(a=>{R(a instanceof Error?a.message:"Failed to move task")}),a7(null))},children:[0===a.tasks.length&&(0,b.jsx)("div",{className:"rounded-[3px] border border-dashed border-[var(--vk-border)] px-2 py-2 text-[13px] text-[var(--vk-text-muted)]",children:"No tasks"}),a.tasks.map(c=>{let{title:d,description:g}=u(c.text),j=A(c),k=function(a,b){let c=b?.trim();if(!a||!c||!/^\d+$/.test(c))return null;let[d,e]=a.trim().replace(/^https?:\/\/github\.com\//,"").replace(/^git@github\.com:/,"").replace(/^ssh:\/\/git@github\.com\//,"").replace(/\.git$/,"").replace(/\/+$/,"").split("/");return d&&e?`https://github.com/${d}/${e}/issues/${c}`:null}(M?.repository,c.issueId),l=aC.filter(a=>a.id===c.attemptRef||a.issueId?.trim()===j).sort((a,b)=>H(a,b,c.attemptRef??null)),n=c.attemptRef?l.find(a=>a.id===c.attemptRef)??null:l[0]??null,p=c.attemptRef&&!l.some(a=>a.id===c.attemptRef)?c.attemptRef:null;return(0,b.jsxs)("div",{draggable:!0,onDragStart:()=>a7({taskId:c.id,role:a.role}),onDragEnd:()=>a7(null),className:(0,o.cn)("rounded-[3px] border border-[var(--vk-border)] bg-[color:#212121] p-2",a6?.taskId===c.id&&"opacity-60"),children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)("p",{className:"min-w-0 flex-1 font-mono text-[12px] text-[var(--vk-text-muted)]",children:c.taskRef?.trim()||(c.id.length>12?`TASK-${c.id.split("-")[0]?.toUpperCase()??c.id.toUpperCase()}`:c.id)}),(0,b.jsx)("button",{type:"button",onClick:()=>(function(a,b){let{title:c,description:d}=u(a.text);aF({task:a,role:b}),aH(b),aJ(c),aL(d),aN(a.agent??bn[0]??e),aP(a.type??"feature"),aR(a.priority??"normal"),aT(a.issueId??""),aV(a.notes??""),aX(a.attemptRef??""),a_(null),a1(""),a5(null)})(c,a.role),className:"inline-flex h-6 w-6 items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)]","aria-label":"Edit task",title:"Edit task",children:(0,b.jsx)(i,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)("p",{className:"pt-1 text-[15px] leading-[22px] text-[var(--vk-text-normal)]",children:d}),g&&(0,b.jsx)("p",{className:"pt-1 text-[13px] leading-[20px] text-[var(--vk-text-muted)]",children:g}),c.notes&&(0,b.jsx)("p",{className:"pt-2 text-[12px] leading-[18px] text-[var(--vk-text-muted)]",children:c.notes}),c.commentCount>0&&(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-1 text-[11px] text-[var(--vk-text-muted)]",children:[(0,b.jsx)(h.MessageSquare,{className:"h-3.5 w-3.5"}),(0,b.jsxs)("span",{children:[c.commentCount," comment",1===c.commentCount?"":"s"]})]}),(c.issueId||c.attachments.length>0)&&(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5",children:[c.issueId?k?(0,b.jsxs)("a",{href:k,target:"_blank",rel:"noreferrer",className:"inline-flex h-5 items-center gap-1 rounded-[3px] border border-[var(--vk-border)] px-2 text-[11px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]",children:[(0,b.jsxs)("span",{children:["Issue #",c.issueId]}),(0,b.jsx)(f,{className:"h-3 w-3"})]}):(0,b.jsxs)("span",{className:"inline-flex h-5 items-center rounded-[3px] border border-[var(--vk-border)] px-2 text-[11px] text-[var(--vk-text-muted)]",children:["Issue ",c.issueId]}):null,c.attachments.map(a=>(0,b.jsx)(w,{attachment:a,opening:au===a,onOpen:()=>void bv(a)},`${c.id}-${a}`))]}),(l.length>0||p)&&(0,b.jsxs)("div",{className:"mt-3 rounded-[4px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] p-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Runs"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:l.length+ +!!p})]}),(0,b.jsxs)("div",{className:"mt-2 space-y-1.5",children:[n?(0,b.jsxs)("button",{type:"button",onClick:()=>K.push(`/sessions/${encodeURIComponent(n.id)}?tab=chat`),className:"flex w-full items-center justify-between gap-2 rounded-[3px] border border-[rgba(255,255,255,0.05)] bg-[rgba(255,255,255,0.03)] px-2 py-1.5 text-left hover:bg-[var(--vk-bg-hover)]",title:n.id,children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[B(n)?(0,b.jsx)(m.AgentTileIcon,{seed:{label:B(n)},className:"h-5 w-5"}):null,(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-[12px] text-[var(--vk-text-normal)]",children:z(n)}),(0,b.jsx)("div",{className:"truncate text-[11px] text-[var(--vk-text-muted)]",children:"Primary run"})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)("span",{className:`inline-flex h-5 items-center rounded-[3px] border px-2 text-[10px] ${D(n.status)}`,children:C(n.status)}),(0,b.jsx)(f,{className:"h-3 w-3 text-[var(--vk-text-muted)]"})]})]}):null,l.filter(a=>a.id!==n?.id).map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>K.push(`/sessions/${encodeURIComponent(a.id)}?tab=chat`),className:"flex w-full items-center justify-between gap-2 rounded-[3px] px-2 py-1.5 text-left hover:bg-[var(--vk-bg-hover)]",title:a.id,children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[B(a)?(0,b.jsx)(m.AgentTileIcon,{seed:{label:B(a)},className:"h-5 w-5"}):null,(0,b.jsx)("span",{className:"truncate text-[12px] text-[var(--vk-text-normal)]",children:z(a)})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)("span",{className:`inline-flex h-5 items-center rounded-[3px] border px-2 text-[10px] ${D(a.status)}`,children:C(a.status)}),(0,b.jsx)(f,{className:"h-3 w-3 text-[var(--vk-text-muted)]"})]})]},a.id)),p?(0,b.jsxs)("button",{type:"button",onClick:()=>K.push(`/sessions/${encodeURIComponent(p)}?tab=chat`),className:"flex w-full items-center justify-between gap-2 rounded-[3px] px-2 py-1.5 text-left hover:bg-[var(--vk-bg-hover)]",title:p,children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-[12px] text-[var(--vk-text-normal)]",children:p}),(0,b.jsx)("div",{className:"truncate text-[11px] text-[var(--vk-text-muted)]",children:"Primary run"})]}),(0,b.jsx)(f,{className:"h-3 w-3 shrink-0 text-[var(--vk-text-muted)]"})]}):null]})]}),(0,b.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-2",children:[(0,b.jsx)("div",{className:"flex min-w-0 items-center gap-1.5",children:c.agent?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.AgentTileIcon,{seed:{label:c.agent},className:"h-6 w-6"}),(0,b.jsx)("span",{className:"truncate text-[12px] text-[var(--vk-text-muted)]",children:v(c.agent)})]}):(0,b.jsx)("span",{className:"text-[12px] text-[var(--vk-text-muted)]",children:"No agent"})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[c.type&&(0,b.jsx)("span",{className:"inline-flex h-5 items-center rounded-[3px] bg-[color:#292929] px-2 text-[11px] text-[var(--vk-text-muted)]",children:c.type}),c.priority&&(0,b.jsx)("span",{className:"inline-flex h-5 items-center rounded-[3px] bg-[color:#292929] px-2 text-[11px] text-[var(--vk-text-muted)]",children:c.priority})]})]})]},`${a.role}-${c.id}`)})]})]},a.role))})}),bt&&(0,b.jsx)("div",{className:"fixed inset-0 z-[75] flex items-start justify-center overflow-y-auto bg-black/60 px-3 py-3 sm:items-center sm:py-0",onClick:bB,children:(0,b.jsxs)("div",{className:"flex max-h-[calc(100dvh-1.5rem)] w-full max-w-[560px] flex-col overflow-hidden rounded-[6px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)]",onClick:a=>a.stopPropagation(),role:"dialog","aria-modal":"true",children:[(0,b.jsxs)("header",{className:"border-b border-[var(--vk-border)] px-4 py-3",children:[(0,b.jsx)("h2",{className:"text-[18px] text-[var(--vk-text-strong)]",children:"Edit Board Task"}),(0,b.jsx)("p",{className:"pt-1 text-[12px] text-[var(--vk-text-muted)]",children:"Move the card, update the task, and link the latest session run."})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 space-y-3 overflow-y-auto px-4 py-4",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Title"}),(0,b.jsx)("input",{value:aI,onChange:a=>aJ(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Description"}),(0,b.jsx)("textarea",{value:aK,onChange:a=>aL(a.target.value),rows:3,className:"w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 py-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Column"}),(0,b.jsx)("select",{value:aG,onChange:a=>aH(t(a.target.value)),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:M?.columns.map(a=>(0,b.jsx)("option",{value:a.role,className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:a.heading||r[a.role]},a.role))})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Agent"}),(0,b.jsx)("select",{value:aM,onChange:a=>aN(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:bn.map(a=>(0,b.jsx)("option",{value:a,className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:v(a)},a))})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Type"}),(0,b.jsx)("input",{value:aO,onChange:a=>aP(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Priority"}),(0,b.jsx)("input",{value:aQ,onChange:a=>aR(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"GitHub issue id (optional)"}),(0,b.jsx)("input",{value:aS,onChange:a=>aT(a.target.value),placeholder:"123",className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Notes"}),(0,b.jsx)("textarea",{value:aU,onChange:a=>aV(a.target.value),rows:3,className:"w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 py-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),bt.task.attachments.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Attachments"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:bt.task.attachments.map(a=>(0,b.jsx)(w,{attachment:a,opening:au===a,onOpen:()=>void bv(a)},a))})]}),(0,b.jsxs)("div",{className:"rounded-[4px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] p-3",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-[12px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Comments"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:bt.task.commentCount})]}),(0,b.jsx)("div",{className:"space-y-2",children:bt.task.comments.length>0?bt.task.comments.map(a=>(0,b.jsxs)("div",{className:"rounded-[4px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[12px] text-[var(--vk-text-normal)]",children:a.author}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:F(a.timestamp)})]}),(0,b.jsx)("p",{className:"pt-1 whitespace-pre-wrap text-[13px] leading-[20px] text-[var(--vk-text-muted)]",children:a.body})]},a.id)):(0,b.jsx)("p",{className:"text-[12px] text-[var(--vk-text-muted)]",children:"No comments yet."})}),(0,b.jsxs)("label",{className:"mt-3 block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Add comment"}),(0,b.jsx)("textarea",{value:a0,onChange:a=>a1(a.target.value),rows:3,placeholder:"Share status, request input, or leave implementation notes.",className:"w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 py-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),a4&&(0,b.jsx)("p",{className:"mt-2 text-[12px] text-[var(--vk-red)]",children:a4}),(0,b.jsx)("div",{className:"mt-3 flex justify-end",children:(0,b.jsxs)("button",{type:"button",onClick:()=>void bD(),disabled:!a0.trim()||a2,className:"inline-flex h-9 items-center gap-2 rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:[a2?(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(h.MessageSquare,{className:"h-4 w-4"}),"Post comment"]})})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Primary linked run"}),(0,b.jsxs)("select",{value:aW,onChange:a=>aX(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:[(0,b.jsx)("option",{value:"",className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:"No linked session"}),bs.map(a=>(0,b.jsxs)("option",{value:a.id,className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:[z(a)," · ",a.status]},a.id))]})]}),a$&&(0,b.jsx)("p",{className:"text-[12px] text-[var(--vk-red)]",children:a$})]}),(0,b.jsxs)("footer",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-[var(--vk-border)] px-4 py-3",children:[(0,b.jsx)("button",{type:"button",onClick:bB,disabled:aY||a2,className:"inline-flex h-9 items-center rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:"Cancel"}),(0,b.jsx)("button",{type:"button",onClick:()=>void bC(),disabled:!aI.trim()||aY,className:"inline-flex h-9 items-center rounded-[3px] bg-[var(--vk-bg-active)] px-3 text-[13px] text-[var(--vk-text-strong)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:aY?(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}):"Save Task"})]})]})}),W&&(0,b.jsx)("div",{className:"fixed inset-0 z-[75] flex items-start justify-center overflow-y-auto bg-black/60 px-3 py-3 sm:items-center sm:py-0",onClick:()=>!ay&&X(!1),children:(0,b.jsxs)("div",{className:"flex max-h-[calc(100dvh-1.5rem)] w-full max-w-[560px] flex-col overflow-hidden rounded-[6px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)]",onClick:a=>a.stopPropagation(),role:"dialog","aria-modal":"true",children:[(0,b.jsxs)("header",{className:"border-b border-[var(--vk-border)] px-4 py-3",children:[(0,b.jsx)("h2",{className:"text-[18px] text-[var(--vk-text-strong)]",children:"Create Board Task"}),(0,b.jsx)("p",{className:"pt-1 text-[12px] text-[var(--vk-text-muted)]",children:"Add a task card with project and agent tags for Obsidian + conductor watcher."})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 space-y-3 overflow-y-auto px-4 py-4",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Title"}),(0,b.jsx)("input",{value:$,onChange:a=>_(a.target.value),placeholder:"Review payment flow regression",className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Description (optional)"}),(0,b.jsx)("textarea",{value:aa,onChange:a=>ab(a.target.value),rows:3,placeholder:"Investigate failing specs and propose a safe fix.",className:"w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 py-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Context notes (optional)"}),(0,b.jsx)("textarea",{value:ai,onChange:a=>aj(a.target.value),rows:2,placeholder:"Anything the agent should prioritize or avoid for this task.",className:"w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 py-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Agent"}),(0,b.jsx)("select",{value:ac,onChange:a=>ad(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:bn.map(a=>(0,b.jsx)("option",{value:a,className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:v(a)},a))})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Column"}),(0,b.jsx)("select",{value:Y,onChange:a=>Z(t(a.target.value)),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:bq.map(a=>(0,b.jsx)("option",{value:a.role,className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:a.heading||r[a.role]},a.role))})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Type"}),(0,b.jsx)("input",{value:ae,onChange:a=>af(a.target.value),placeholder:"feature",className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Priority"}),(0,b.jsx)("input",{value:ag,onChange:a=>ah(a.target.value),placeholder:"normal",className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]})]}),(0,b.jsxs)("div",{className:"rounded-[4px] border border-[var(--vk-border)] p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("p",{className:"text-[12px] text-[var(--vk-text-muted)]",children:"Context attachments"}),(0,b.jsxs)("p",{className:"text-[12px] text-[var(--vk-text-muted)]",children:[ak.length," selected",aw.length>0?` \xb7 ${aw.length} upload(s)`:""]})]}),(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsxs)("label",{className:"inline-flex cursor-pointer items-center rounded-[3px] border border-[var(--vk-border)] px-2 py-1 text-[12px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",children:[(0,b.jsx)("input",{type:"file",multiple:!0,className:"hidden",onChange:a=>{let b=Array.from(a.target.files??[]);0!==b.length&&(ax(a=>{let c=[...a];for(let a of b)c.some(b=>b.name===a.name&&b.size===a.size&&b.lastModified===a.lastModified)||c.push(a);return c}),a.currentTarget.value="")}}),"Upload files/images"]})}),aw.length>0&&(0,b.jsx)("div",{className:"mt-2 flex flex-wrap gap-1",children:aw.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{ax(b=>b.filter(b=>b.name!==a.name||b.size!==a.size||b.lastModified!==a.lastModified))},className:"inline-flex items-center gap-1 rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-hover)] px-2 py-1 text-[11px] text-[var(--vk-text-normal)]",title:"Remove upload",children:[(0,b.jsx)("span",{className:"truncate max-w-[220px]",children:a.name}),(0,b.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:"×"})]},`${a.name}-${a.size}-${a.lastModified}`))}),(0,b.jsxs)("label",{className:"mt-3 block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Select existing context"}),(0,b.jsx)("input",{value:am,onChange:a=>an(a.target.value),placeholder:"Search context files...",className:"h-8 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[13px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsx)("div",{className:"mt-2 max-h-[180px] overflow-auto rounded-[3px] border border-[var(--vk-border)]",children:aq?(0,b.jsxs)("div",{className:"flex items-center gap-2 px-2 py-2 text-[12px] text-[var(--vk-text-muted)]",children:[(0,b.jsx)(g.Loader2,{className:"h-3.5 w-3.5 animate-spin"}),(0,b.jsx)("span",{children:"Loading context files..."})]}):as?(0,b.jsx)("p",{className:"px-2 py-2 text-[12px] text-[var(--vk-red)]",children:as}):0===br.length?(0,b.jsx)("p",{className:"px-2 py-2 text-[12px] text-[var(--vk-text-muted)]",children:"No context files found."}):(0,b.jsx)("ul",{className:"divide-y divide-[var(--vk-border)]",children:br.map(a=>{var c;let d=ak.includes(a.path);return(0,b.jsx)("li",{className:"px-2 py-1.5",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsxs)("label",{className:"flex min-w-0 flex-1 cursor-pointer items-start gap-2 text-[12px] text-[var(--vk-text-normal)]",children:[(0,b.jsx)("input",{type:"checkbox",checked:d,onChange:()=>{var b;return b=a.path,void al(a=>a.includes(b)?a.filter(a=>a!==b):[...a,b])},className:"mt-0.5 h-3.5 w-3.5 rounded border-[var(--vk-border)] bg-transparent"}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"block truncate",children:a.path}),(0,b.jsxs)("span",{className:"block text-[11px] text-[var(--vk-text-muted)]",children:[a.kind,a.source?` \xb7 ${a.source}`:"",a.sizeBytes?` \xb7 ${!(c=a.sizeBytes)||c<=0?"":c<1024?`${c} B`:c<1048576?`${(c/1024).toFixed(1)} KB`:`${(c/1048576).toFixed(1)} MB`}`:""]})]})]}),(0,b.jsxs)("button",{type:"button",onClick:()=>void bv(a.path),disabled:au===a.path,className:"inline-flex h-7 shrink-0 items-center gap-1 rounded-[3px] border border-[var(--vk-border)] px-2 text-[11px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)] disabled:opacity-60",title:`${bm}: ${a.path}`,"aria-label":`${bm}: ${a.path}`,children:[au===a.path?(0,b.jsx)(g.Loader2,{className:"h-3 w-3 animate-spin"}):(0,b.jsx)(f,{className:"h-3 w-3"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:bm})]})]})},a.path)})})})]}),aA&&(0,b.jsx)("p",{className:"text-[12px] text-[var(--vk-red)]",children:aA})]}),(0,b.jsxs)("footer",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-[var(--vk-border)] px-4 py-3",children:[(0,b.jsx)("button",{type:"button",onClick:()=>X(!1),disabled:ay,className:"inline-flex h-9 items-center rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:"Cancel"}),(0,b.jsx)("button",{type:"button",onClick:()=>void bw(),disabled:!$.trim()||ay,className:"inline-flex h-9 items-center rounded-[3px] bg-[var(--vk-bg-active)] px-3 text-[13px] text-[var(--vk-text-strong)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:ay?(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}):"Create Task"})]})]})})]}):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-[14px] text-[var(--vk-text-muted)]",children:"Select a workspace to view its Kanban board."})}a.s(["WorkspaceKanban",()=>I],6599)},4180,a=>{a.n(a.i(6599))}];
1
+ module.exports=[6599,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(70106);let f=(0,e.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var g=a.i(96221);let h=(0,e.default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]),i=(0,e.default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);var j=a.i(15618),k=a.i(69520),l=a.i(87532),m=a.i(52806);function n(a){return!a||"object"!=typeof a||Array.isArray(a)?{}:{...a}}var o=a.i(26006),p=a.i(9341);let q={intake:"#3c83f6",ready:"#f59f0a",dispatching:"#fb923c",inProgress:"#f59f0a",needsInput:"#eab308",blocked:"#d53946",errored:"#ef4444",review:"#895af6",merge:"#06b6d4",done:"#21c45d",cancelled:"#6b7280"},r={intake:"To do",ready:"Ready",dispatching:"Dispatching",inProgress:"In progress",needsInput:"Needs input",blocked:"Blocked",errored:"Errored",review:"In review",merge:"Merge",done:"Done",cancelled:"Cancelled"},s={obsidian:"Obsidian",vscode:"VS Code",notion:"Notion",typora:"Typora",logseq:"Logseq",custom:"your editor"};function t(a){return["intake","ready","dispatching","inProgress","needsInput","blocked","errored","review","merge","done","cancelled"].includes(a)?a:"intake"}function u(a){let[b,...c]=a.split(" - ");return{title:(b??a).trim(),description:c.join(" - ").trim()}}function v(a){return a.split(/[-_\s]+/g).filter(Boolean).map(a=>a[0]?.toUpperCase()+a.slice(1)).join(" ")}function w({attachment:a,onOpen:c,opening:d=!1}){return(0,b.jsxs)("button",{type:"button",onClick:c,disabled:d,className:"inline-flex max-w-full items-center gap-1 rounded-[3px] bg-[color:#292929] px-2 py-1 text-[11px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)] disabled:opacity-60",title:a,"aria-label":`Open ${a}`,children:[d?(0,b.jsx)(g.Loader2,{className:"h-3 w-3 shrink-0 animate-spin"}):(0,b.jsx)(f,{className:"h-3 w-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a})]})}function x(a,b){if(!a||a.projectId!==b.projectId||a.repository!==b.repository||a.boardPath!==b.boardPath||a.workspacePath!==b.workspacePath||a.watcherHint!==b.watcherHint||a.primaryRoles.length!==b.primaryRoles.length||a.columns.length!==b.columns.length)return!1;for(let c=0;c<a.primaryRoles.length;c+=1)if(a.primaryRoles[c]!==b.primaryRoles[c])return!1;for(let c=0;c<a.columns.length;c+=1){let d=a.columns[c],e=b.columns[c];if(d.role!==e.role||d.heading!==e.heading||d.tasks.length!==e.tasks.length)return!1;for(let a=0;a<d.tasks.length;a+=1){let b=d.tasks[a],c=e.tasks[a];if(b.id!==c.id||b.text!==c.text||b.checked!==c.checked||b.agent!==c.agent||b.project!==c.project||b.type!==c.type||b.priority!==c.priority||b.taskRef!==c.taskRef||b.attemptRef!==c.attemptRef||b.issueId!==c.issueId||b.githubItemId!==c.githubItemId||b.notes!==c.notes||b.commentCount!==c.commentCount||b.comments.length!==c.comments.length||b.attachments.length!==c.attachments.length)return!1;for(let a=0;a<b.attachments.length;a+=1)if(b.attachments[a]!==c.attachments[a])return!1;for(let a=0;a<b.comments.length;a+=1)if(JSON.stringify(b.comments[a])!==JSON.stringify(c.comments[a]))return!1}}let c=a.githubProject??null,d=b.githubProject??null;if(JSON.stringify(c)!==JSON.stringify(d))return!1;let e=a.recentActions??[],f=b.recentActions??[];if(e.length!==f.length)return!1;for(let a=0;a<e.length;a+=1)if(JSON.stringify(e[a])!==JSON.stringify(f[a]))return!1;let g=a.recentWebhookDeliveries??[],h=b.recentWebhookDeliveries??[];if(g.length!==h.length)return!1;for(let a=0;a<g.length;a+=1)if(JSON.stringify(g[a])!==JSON.stringify(h[a]))return!1;return!0}function y(a){return{...a,repository:a.repository??null,githubProject:a.githubProject??null,recentActions:Array.isArray(a.recentActions)?a.recentActions:[],recentWebhookDeliveries:Array.isArray(a.recentWebhookDeliveries)?a.recentWebhookDeliveries:[],columns:Array.isArray(a.columns)?a.columns.map(a=>({...a,tasks:Array.isArray(a.tasks)?a.tasks.map(a=>({...a,issueId:a.issueId??null,githubItemId:a.githubItemId??null,attachments:Array.isArray(a.attachments)?a.attachments:[],notes:a.notes??null,commentCount:"number"==typeof a.commentCount?a.commentCount:Array.isArray(a.comments)?a.comments.length:0,comments:Array.isArray(a.comments)?a.comments:[]})):[]})):[]}}function z(a){return a.branch?.trim()||a.summary?.trim()||a.id.slice(0,8)}function A(a){return a.issueId?.trim()||a.taskRef?.trim()||a.id}function B(a){let b=a.metadata?.agent;return"string"==typeof b&&b.trim().length>0?b.trim():null}function C(a){let b=a.trim().toLowerCase();return"working"===b||"running"===b?"Running":"done"===b?"Done":"killed"===b?"Interrupted":"errored"===b?"Errored":"archived"===b?"Archived":a.split(/[-_\s]+/g).filter(Boolean).map(a=>a[0]?.toUpperCase()+a.slice(1)).join(" ")}function D(a){let b=a.trim().toLowerCase();return"working"===b||"running"===b?"border-[rgba(60,131,246,0.35)] bg-[rgba(60,131,246,0.12)] text-[#8db8ff]":"done"===b?"border-[rgba(84,176,79,0.35)] bg-[rgba(84,176,79,0.12)] text-[var(--vk-green)]":"killed"===b||"archived"===b?"border-[rgba(143,143,143,0.35)] bg-[rgba(143,143,143,0.10)] text-[var(--vk-text-muted)]":"errored"===b?"border-[rgba(210,81,81,0.35)] bg-[rgba(210,81,81,0.12)] text-[var(--vk-red)]":"border-[var(--vk-border)] bg-[rgba(255,255,255,0.03)] text-[var(--vk-text-muted)]"}function E(a){if(!a?.id)return"No GitHub Project linked";let b="number"==typeof a.number?`#${a.number}`:"Project";return`${b} ${a.title?.trim()||"Untitled"}`.trim()}function F(a){let b=Date.parse(a);return Number.isNaN(b)?a:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(b))}function G(a,b){if(!a)return null;for(let c of a.columns){let a=c.tasks.find(a=>a.id===b);if(a)return{task:a,role:c.role}}return null}function H(a,b,c){if(c){if(a.id===c&&b.id!==c)return -1;if(b.id===c&&a.id!==c)return 1}let d=a.lastActivityAt?Date.parse(a.lastActivityAt):0;return(b.lastActivityAt?Date.parse(b.lastActivityAt):0)-d}function I({projectId:a,defaultAgent:e,agentOptions:I}){var J;let K=(0,d.useRouter)(),{preferences:L}=function(){let[a,b]=(0,c.useState)(null),[d,e]=(0,c.useState)(!0),[f,g]=(0,c.useState)(null),h=(0,c.useRef)(!1),i=(0,c.useCallback)(async()=>{try{var a;let c,d,e,f=await fetch("/api/preferences"),h=await f.json().catch(()=>null);if(!f.ok)throw Error(h?.error??`Failed to load preferences: ${f.status}`);b((a=h?.preferences,c=n(a),e=(d=n(c.notifications)).soundFile,{onboardingAcknowledged:!0===c.onboardingAcknowledged,codingAgent:"string"==typeof c.codingAgent&&c.codingAgent.trim().length>0?c.codingAgent.trim():"claude-code",ide:"string"==typeof c.ide&&c.ide.trim().length>0?c.ide.trim():"vscode",markdownEditor:"string"==typeof c.markdownEditor&&c.markdownEditor.trim().length>0?c.markdownEditor.trim():"obsidian",markdownEditorPath:"string"==typeof c.markdownEditorPath?c.markdownEditorPath.trim():"",notifications:{soundEnabled:!1!==d.soundEnabled,soundFile:null===e?null:"string"==typeof e&&e.trim().length>0?e.trim():"abstract-sound-4"}})),g(null)}catch(a){b(null),g(a instanceof Error?a.message:"Failed to load preferences")}finally{e(!1)}},[]);return(0,c.useEffect)(()=>{h.current||(h.current=!0,i())},[i]),{preferences:a,loading:d,error:f,refresh:i}}(),[M,N]=(0,c.useState)(null),[O,P]=(0,c.useState)(!1),[Q,R]=(0,c.useState)(null),[S,T]=(0,c.useState)(""),[U,V]=(0,c.useState)("active"),[W,X]=(0,c.useState)(!1),[Y,Z]=(0,c.useState)("intake"),[$,_]=(0,c.useState)(""),[aa,ab]=(0,c.useState)(""),[ac,ad]=(0,c.useState)(e),[ae,af]=(0,c.useState)("feature"),[ag,ah]=(0,c.useState)("normal"),[ai,aj]=(0,c.useState)(""),[ak,al]=(0,c.useState)([]),[am,an]=(0,c.useState)(""),[ao,ap]=(0,c.useState)([]),[aq,ar]=(0,c.useState)(!1),[as,at]=(0,c.useState)(null),[au,av]=(0,c.useState)(null),[aw,ax]=(0,c.useState)([]),[ay,az]=(0,c.useState)(!1),[aA,aB]=(0,c.useState)(null),[aC,aD]=(0,c.useState)([]),[aE,aF]=(0,c.useState)(null),[aG,aH]=(0,c.useState)("intake"),[aI,aJ]=(0,c.useState)(""),[aK,aL]=(0,c.useState)(""),[aM,aN]=(0,c.useState)(e),[aO,aP]=(0,c.useState)("feature"),[aQ,aR]=(0,c.useState)("normal"),[aS,aT]=(0,c.useState)(""),[aU,aV]=(0,c.useState)(""),[aW,aX]=(0,c.useState)(""),[aY,aZ]=(0,c.useState)(!1),[a$,a_]=(0,c.useState)(null),[a0,a1]=(0,c.useState)(""),[a2,a3]=(0,c.useState)(!1),[a4,a5]=(0,c.useState)(null),[a6,a7]=(0,c.useState)(null),[a8,a9]=(0,c.useState)(!1),[ba,bb]=(0,c.useState)(!1),[bc,bd]=(0,c.useState)(!1),[be,bf]=(0,c.useState)(null),[bg,bh]=(0,c.useState)(null),[bi,bj]=(0,c.useState)(""),bk=(0,c.useRef)(!1),bl=(0,c.useRef)(!1),bm="obsidian"===(J=L?.markdownEditor?.trim()||"obsidian")||"vscode"===J||"typora"===J||"logseq"===J?`Open in ${s[J]??"your editor"}`:"Open file",bn=(0,c.useMemo)(()=>{let a=[...new Set(I.filter(Boolean))];return a.includes(e)||a.unshift(e),a},[I,e]);(0,c.useEffect)(()=>{bn.includes(ac)||ad(bn[0]??e)},[ac,e,bn]),(0,c.useEffect)(()=>{bn.includes(aM)||aN(bn[0]??e)},[e,aM,bn]),(0,c.useEffect)(()=>{if(!W&&!aE||!a)return;let b=!1;return(async()=>{ar(!0),at(null);try{let c=await fetch(`/api/context-files?projectId=${encodeURIComponent(a)}`),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to load context files: ${c.status}`);if(b)return;let e=Array.isArray(d?.files)?d.files:[];ap(e)}catch(a){if(b)return;ap([]),at(a instanceof Error?a.message:"Failed to load context files")}finally{b||ar(!1)}})(),()=>{b=!0}},[W,aE,a]),(0,c.useEffect)(()=>{if(!a||!W&&!aE)return;let b=!1;return(async()=>{try{let c=await fetch(`/api/sessions?project=${encodeURIComponent(a)}`),d=await c.json().catch(()=>null);if(!c.ok)throw Error(`Failed to load sessions: ${c.status}`);if(b)return;let e=Array.isArray(d)?d:Array.isArray(d?.sessions)?d.sessions:[];aD(e)}catch{b||aD([])}})(),()=>{b=!0}},[W,aE,a]),(0,c.useEffect)(()=>{bk.current=!1,a9(!1),bf(null),bh(null),bj("")},[a]);let bo=(0,c.useCallback)(async b=>{if(!a){N(null),R(null),P(!1),bk.current=!1;return}if(!bl.current){bl.current=!0,b?.silent||P(!0);try{let b=await fetch(`/api/boards?projectId=${encodeURIComponent(a)}`),c=await b.json().catch(()=>null);if(!b.ok)throw Error(c?.error??`Failed to load board: ${b.status}`);let d=y(c);bk.current=!0,N(a=>x(a,d)?a:d),R(null)}catch(a){b?.silent&&bk.current||(N(null),R(a instanceof Error?a.message:"Failed to load board"))}finally{b?.silent||P(!1),bl.current=!1}}},[a]);(0,c.useEffect)(()=>{bo({silent:!1})},[bo]);let bp=(0,c.useCallback)(async()=>{if(!a){bh(null),bf(null);return}bb(!0),bf(null);try{let b=await fetch(`/api/github/projects?projectId=${encodeURIComponent(a)}`),c=await b.json().catch(()=>null);if(!b.ok)throw Error(c?.error??`Failed to load GitHub Projects (${b.status})`);let d={...c,projects:Array.isArray(c.projects)?c.projects:[]};bh(d),bj(d.linkedProject?.id?.trim()||d.projects[0]?.id?.trim()||"")}catch(a){bf(a instanceof Error?a.message:"Failed to load GitHub Projects"),bh(null),bj("")}finally{bb(!1)}},[a]);(0,c.useEffect)(()=>{if(!a)return;let b=()=>{("u"<typeof document||"hidden"!==document.visibilityState)&&bo({silent:!0})},c=null,d=()=>{let a="visible"===document.visibilityState?1e4:3e4;c=window.setTimeout(()=>{b(),d()},a)};d(),window.addEventListener("focus",b);let e=()=>{"visible"===document.visibilityState&&b()};return document.addEventListener("visibilitychange",e),()=>{null!=c&&window.clearTimeout(c),window.removeEventListener("focus",b),document.removeEventListener("visibilitychange",e)}},[bo,a]),(0,c.useEffect)(()=>{if(a)return(0,p.subscribeToSnapshotEvents)(()=>{bo({silent:!0})})},[bo,a]),(0,c.useEffect)(()=>{a8&&a&&bp()},[bp,a,a8]);let bq=(0,c.useMemo)(()=>{let a=S.trim().toLowerCase(),b=M?.columns??[],c="all"===U?null:new Set("backlog"===U?["intake","ready"]:"cancelled"===U?["cancelled"]:["intake","ready","dispatching","inProgress","needsInput","blocked","errored","review","merge"]);return b.filter(a=>!c||c.has(a.role)).map(b=>a?{...b,tasks:b.tasks.filter(b=>{let c=b.comments.map(a=>`${a.author} ${a.body}`).join(" ");return`${b.text} ${b.agent??""} ${b.type??""} ${b.priority??""} ${b.issueId??""} ${b.notes??""} ${b.attachments.join(" ")} ${c}`.toLowerCase().includes(a)})}:b)},[M?.columns,S,U]),br=(0,c.useMemo)(()=>{let a=am.trim().toLowerCase();return a?ao.filter(b=>`${b.path} ${b.name} ${b.source??""}`.toLowerCase().includes(a)):ao},[ao,am]),bs=(0,c.useMemo)(()=>{if(!aE)return aC;let a=G(M,aE.task.id)??aE,b=A(a.task);return[...aC].sort((c,d)=>{let e=c.id===a.task.attemptRef||c.issueId?.trim()===b;return e!==(d.id===a.task.attemptRef||d.issueId?.trim()===b)?e?-1:1:H(c,d,a.task.attemptRef)})},[M,aE,aC]),bt=(0,c.useMemo)(()=>aE?G(M,aE.task.id)??aE:null,[M,aE]);function bu(a){Z(a),X(!0),aB(null),aj(""),an(""),al([]),ax([])}let bv=(0,c.useCallback)(async b=>{if(a){av(b),aE?a_(null):W?aB(null):R(null);try{let c=await fetch("/api/context-files/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,path:b})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to open context file: ${c.status}`)}catch(a){var c;c=a instanceof Error?a.message:"Failed to open context file",aE?a_(c):W?aB(c):R(c)}finally{av(a=>a===b?null:a)}}},[W,aE,a]);async function bw(){if(a&&$.trim()){az(!0),aB(null);try{let b=[];if(aw.length>0){let c=new FormData;for(let b of(c.append("projectId",a),aw))c.append("files",b);let d=await fetch("/api/attachments",{method:"POST",body:c}),e=await d.json().catch(()=>null);if(!d.ok)throw Error(e?.error??`Upload failed: ${d.status}`);b=(e?.files??[]).map(a=>a.path?.trim()).filter(a=>!!a)}let c=[...new Set([...ak,...b])],d=await fetch("/api/boards",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,title:$.trim(),description:aa.trim()||void 0,contextNotes:ai.trim()||void 0,attachments:c.length>0?c:void 0,agent:ac,role:Y,type:ae.trim()||void 0,priority:ag.trim()||void 0})}),e=await d.json().catch(()=>null);if(!d.ok)throw Error(e?.error??`Failed to create task: ${d.status}`);N(a=>{if(!e||!("columns"in e))return a;let b=y(e);return{...a??b,...b}}),_(""),ab(""),af("feature"),ah("normal"),aj(""),al([]),an(""),ax([]),X(!1)}catch(a){aB(a instanceof Error?a.message:"Failed to create task")}finally{az(!1)}}}let bx=(0,c.useRef)(!1);async function by(b){if(a&&!bx.current){bx.current=!0;try{let c=await fetch("/api/boards",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,...b})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to update board: ${c.status}`);let e=y(d);N(a=>x(a,e)?a:e),R(null)}finally{bx.current=!1}}}async function bz(b){if(a&&!bc){bd(!0),bf(null);try{let c=await fetch("/api/github/projects",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,link:b?.id?b:null})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to update GitHub Project link (${c.status})`);N(a=>a?{...a,githubProject:d?.githubProject??null}:a),await bp()}catch(a){bf(a instanceof Error?a.message:"Failed to update GitHub Project link")}finally{bd(!1)}}}async function bA(b){if(a&&!bc){bd(!0),bf(null);try{let c=await fetch("/api/github/projects/sync",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,direction:b})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to ${b} GitHub Project (${c.status})`);if(d?.board){let a=y(d.board);N(b=>x(b,a)?b:a)}else await bo({silent:!0});await bp()}catch(a){bf(a instanceof Error?a.message:`Failed to ${b} GitHub Project`)}finally{bd(!1)}}}function bB(){aY||a2||(aF(null),a_(null),a1(""),a5(null))}async function bC(){if(bt&&aI.trim()){aZ(!0),a_(null);try{await by({taskId:bt.task.id,role:aG,title:aI.trim(),description:aK,contextNotes:aU.trim()||"",issueId:aS.trim()||"",agent:aM,type:aO,priority:aQ,attemptRef:aW,taskRef:aW?bt.task.taskRef??bt.task.id:bt.task.taskRef??""}),aF(null)}catch(a){a_(a instanceof Error?a.message:"Failed to update task")}finally{aZ(!1)}}}async function bD(){if(a&&bt&&a0.trim()){a3(!0),a5(null);try{let b=await fetch("/api/boards/comments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,taskId:bt.task.id,body:a0.trim()})}),c=await b.json().catch(()=>null);if(!b.ok)throw Error(c?.error??`Failed to add comment: ${b.status}`);let d=y(c);N(a=>x(a,d)?a:d),a1("")}catch(a){a5(a instanceof Error?a.message:"Failed to add comment")}finally{a3(!1)}}}return a?(0,b.jsxs)("section",{className:"flex h-full min-h-0 flex-col",children:[(0,b.jsxs)("header",{className:"border-b border-[var(--vk-border)] px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"inline-flex rounded-[3px] border border-[var(--vk-border)] p-px",children:[["active","Active"],["all","All"],["backlog","Backlog"],["cancelled","Cancelled"]].map(([a,c])=>(0,b.jsx)("button",{type:"button",onClick:()=>V(a),className:(0,o.cn)("px-3 py-1 text-[13px]",U===a?"rounded-[2px] bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"),children:c},a))}),(0,b.jsxs)("div",{className:"ml-auto flex w-full min-w-0 flex-wrap items-center gap-2 sm:w-auto sm:min-w-[220px] sm:flex-nowrap sm:flex-none",children:[(0,b.jsxs)("label",{className:"flex h-[31px] min-w-0 flex-1 items-center rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 sm:min-w-[200px] sm:w-[240px] sm:flex-none",children:[(0,b.jsx)(l.Search,{className:"h-3.5 w-3.5 text-[var(--vk-text-muted)]"}),(0,b.jsx)("input",{value:S,onChange:a=>T(a.target.value),placeholder:"Search tasks...",className:"ml-2 w-full bg-transparent text-[14px] text-[var(--vk-text-normal)] outline-none placeholder:text-[var(--vk-text-muted)]"})]}),(0,b.jsxs)("button",{type:"button",onClick:()=>bu("intake"),className:"inline-flex h-[31px] w-full items-center justify-center gap-1 rounded-[3px] bg-[var(--vk-bg-active)] px-3 text-[14px] text-[var(--vk-text-strong)] hover:bg-[var(--vk-bg-hover)] sm:w-auto",children:[(0,b.jsx)("span",{children:"New Issue"}),(0,b.jsx)(j.Plus,{className:"h-3.5 w-3.5"})]})]})]}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>a9(a=>!a),className:"inline-flex h-[31px] items-center gap-2 rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",children:[(0,b.jsx)("span",{children:"GitHub Project"}),(0,b.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:M?.githubProject?.id?E(M.githubProject):"Connect"})]}),M?.githubProject?.url?(0,b.jsxs)("a",{href:M.githubProject.url,target:"_blank",rel:"noreferrer",className:"inline-flex h-[31px] items-center gap-1 rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",children:[(0,b.jsx)("span",{children:"Open Project"}),(0,b.jsx)(f,{className:"h-3.5 w-3.5"})]}):null]}),a8&&(0,b.jsxs)("div",{className:"mt-3 rounded-[6px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("label",{className:"min-w-0 flex-1",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Linked project"}),(0,b.jsxs)("select",{value:bi,onChange:a=>bj(a.target.value),disabled:ba||bc,className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:[(0,b.jsx)("option",{value:"",children:ba?"Loading GitHub Projects...":"Select a GitHub Project"}),(bg?.projects??[]).map(a=>(0,b.jsx)("option",{value:a.id??"",children:E(a)},a.id??"unknown"))]})]}),(0,b.jsx)("button",{type:"button",disabled:!bi||ba||bc,onClick:()=>{bz(bg?.projects.find(a=>a.id===bi)??null)},className:"inline-flex h-9 items-center rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:bc?(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}):"Connect"}),(0,b.jsx)("button",{type:"button",disabled:!M?.githubProject?.id||bc,onClick:()=>void bz(null),className:"inline-flex h-9 items-center rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:"Disconnect"}),(0,b.jsxs)("button",{type:"button",disabled:!M?.githubProject?.id||bc,onClick:()=>void bA("pull"),className:"inline-flex h-9 items-center gap-2 rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:[bc?(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(k.RefreshCw,{className:"h-4 w-4"}),"Pull"]}),(0,b.jsx)("button",{type:"button",disabled:!M?.githubProject?.id||bc,onClick:()=>void bA("push"),className:"inline-flex h-9 items-center rounded-[3px] bg-[var(--vk-bg-active)] px-3 text-[13px] text-[var(--vk-text-strong)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:"Push"})]}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-[12px] text-[var(--vk-text-muted)]",children:[(0,b.jsxs)("span",{children:["Repository:"," ",M?.repository?.trim()||bg?.repository?.trim()||"Not configured"]}),bg?.ownerLogin?(0,b.jsxs)("span",{children:["Owner: ",bg.ownerLogin]}):null]}),be&&(0,b.jsx)("p",{className:"mt-2 text-[12px] text-[var(--vk-red)]",children:be}),(M?.recentWebhookDeliveries?.length??0)>0&&(0,b.jsxs)("div",{className:"mt-3 rounded-[6px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] p-3",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-2",children:[(0,b.jsx)("h3",{className:"text-[12px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Webhook diagnostics"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:(M?.recentWebhookDeliveries??[]).length})]}),(0,b.jsx)("div",{className:"space-y-2",children:(M?.recentWebhookDeliveries??[]).slice(0,6).map(a=>{var c;let d,e;return(0,b.jsxs)("div",{className:"rounded-[4px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] p-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:`inline-flex h-5 items-center rounded-[3px] border px-2 text-[10px] ${"synced"===(d=a.status.trim().toLowerCase())?"border-[rgba(84,176,79,0.35)] bg-[rgba(84,176,79,0.12)] text-[var(--vk-green)]":"failed"===d?"border-[rgba(210,81,81,0.35)] bg-[rgba(210,81,81,0.12)] text-[var(--vk-red)]":"border-[var(--vk-border)] bg-[rgba(255,255,255,0.03)] text-[var(--vk-text-muted)]"}`,children:"synced"===(e=(c=a.status).trim().toLowerCase())?"Synced":"failed"===e?"Failed":"skipped"===e?"Skipped":c}),(0,b.jsxs)("span",{className:"text-[12px] text-[var(--vk-text-normal)]",children:[a.event,a.action?` / ${a.action}`:""]}),(0,b.jsx)("span",{className:"ml-auto text-[11px] text-[var(--vk-text-muted)]",children:F(a.timestamp)})]}),(0,b.jsx)("p",{className:"mt-1 text-[12px] text-[var(--vk-text-muted)]",children:a.detail}),a.repository?(0,b.jsxs)("p",{className:"mt-1 text-[11px] text-[var(--vk-text-muted)]",children:["Repo: ",a.repository]}):null]},a.id)})})]})]}),M?.watcherHint&&(0,b.jsx)("p",{className:"pt-2 text-[12px] text-[var(--vk-text-muted)]",children:M.watcherHint}),(M?.recentActions?.length??0)>0&&(0,b.jsxs)("div",{className:"mt-3 rounded-[6px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] p-3",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-2",children:[(0,b.jsx)("h3",{className:"text-[12px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Recent activity"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:(M?.recentActions??[]).length})]}),(0,b.jsx)("div",{className:"space-y-2",children:(M?.recentActions??[]).slice(0,6).map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 text-[12px]",children:[(0,b.jsx)("span",{className:"rounded-[3px] bg-[color:#292929] px-2 py-0.5 text-[11px] text-[var(--vk-text-muted)]",children:a.source}),(0,b.jsx)("span",{className:"text-[var(--vk-text-normal)]",children:a.action}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--vk-text-muted)]",title:a.detail,children:a.detail}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:F(a.timestamp)})]},a.id))})]})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-auto p-4",children:O?(0,b.jsxs)("div",{className:"flex h-full items-center justify-center text-[var(--vk-text-muted)]",children:[(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}),(0,b.jsx)("span",{className:"ml-2 text-[14px]",children:"Loading board..."})]}):Q?(0,b.jsx)("div",{className:"rounded-[4px] border border-[color:color-mix(in_srgb,var(--vk-red)_55%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-red)_12%,transparent)] px-3 py-2 text-[13px] text-[var(--vk-red)]",children:Q}):(0,b.jsx)("div",{className:"flex min-w-0 flex-col gap-3 rounded-[4px] border border-[var(--vk-border)] lg:grid lg:gap-0",style:{gridTemplateColumns:`repeat(${Math.max(bq.length,1)}, minmax(240px, 1fr))`},children:bq.map((a,c)=>(0,b.jsxs)("article",{className:(0,o.cn)("flex min-h-[320px] flex-col border-b border-[var(--vk-border)] bg-[var(--vk-bg-panel)] lg:min-h-[540px] lg:border-b-0 lg:border-r",c===bq.length-1&&"border-b-0 lg:border-r-0"),children:[(0,b.jsxs)("header",{className:"flex h-[41px] items-center border-b border-[var(--vk-border)] px-2",children:[(0,b.jsx)("span",{className:"h-2 w-2 rounded-full",style:{backgroundColor:q[a.role]}}),(0,b.jsx)("span",{className:"ml-2 text-[14px] text-[var(--vk-text-normal)]",children:a.heading||r[a.role]}),(0,b.jsx)("button",{type:"button",onClick:()=>bu(a.role),className:"ml-auto inline-flex h-6 w-6 items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]","aria-label":`Add task to ${a.heading}`,children:(0,b.jsx)(j.Plus,{className:"h-3.5 w-3.5"})})]}),(0,b.jsxs)("div",{className:(0,o.cn)("flex-1 space-y-2 overflow-y-auto p-2",a6?.role===a.role&&"bg-[rgba(255,255,255,0.02)]"),onDragOver:a=>{a6&&a.preventDefault()},onDrop:b=>{b.preventDefault(),a6&&a6.role!==a.role&&(by({taskId:a6.taskId,role:a.role}).catch(a=>{R(a instanceof Error?a.message:"Failed to move task")}),a7(null))},children:[0===a.tasks.length&&(0,b.jsx)("div",{className:"rounded-[3px] border border-dashed border-[var(--vk-border)] px-2 py-2 text-[13px] text-[var(--vk-text-muted)]",children:"No tasks"}),a.tasks.map(c=>{let{title:d,description:g}=u(c.text),j=A(c),k=function(a,b){let c=b?.trim();if(!a||!c||!/^\d+$/.test(c))return null;let[d,e]=a.trim().replace(/^https?:\/\/github\.com\//,"").replace(/^git@github\.com:/,"").replace(/^ssh:\/\/git@github\.com\//,"").replace(/\.git$/,"").replace(/\/+$/,"").split("/");return d&&e?`https://github.com/${d}/${e}/issues/${c}`:null}(M?.repository,c.issueId),l=aC.filter(a=>a.id===c.attemptRef||a.issueId?.trim()===j).sort((a,b)=>H(a,b,c.attemptRef??null)),n=c.attemptRef?l.find(a=>a.id===c.attemptRef)??null:l[0]??null,p=c.attemptRef&&!l.some(a=>a.id===c.attemptRef)?c.attemptRef:null;return(0,b.jsxs)("div",{draggable:!0,onDragStart:()=>a7({taskId:c.id,role:a.role}),onDragEnd:()=>a7(null),className:(0,o.cn)("rounded-[3px] border border-[var(--vk-border)] bg-[color:#212121] p-2",a6?.taskId===c.id&&"opacity-60"),children:[(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)("p",{className:"min-w-0 flex-1 font-mono text-[12px] text-[var(--vk-text-muted)]",children:c.taskRef?.trim()||(c.id.length>12?`TASK-${c.id.split("-")[0]?.toUpperCase()??c.id.toUpperCase()}`:c.id)}),(0,b.jsx)("button",{type:"button",onClick:()=>(function(a,b){let{title:c,description:d}=u(a.text);aF({task:a,role:b}),aH(b),aJ(c),aL(d),aN(a.agent??bn[0]??e),aP(a.type??"feature"),aR(a.priority??"normal"),aT(a.issueId??""),aV(a.notes??""),aX(a.attemptRef??""),a_(null),a1(""),a5(null)})(c,a.role),className:"inline-flex h-6 w-6 items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)]","aria-label":"Edit task",title:"Edit task",children:(0,b.jsx)(i,{className:"h-3.5 w-3.5"})})]}),(0,b.jsx)("p",{className:"pt-1 text-[15px] leading-[22px] text-[var(--vk-text-normal)]",children:d}),g&&(0,b.jsx)("p",{className:"pt-1 text-[13px] leading-[20px] text-[var(--vk-text-muted)]",children:g}),c.notes&&(0,b.jsx)("p",{className:"pt-2 text-[12px] leading-[18px] text-[var(--vk-text-muted)]",children:c.notes}),c.commentCount>0&&(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-1 text-[11px] text-[var(--vk-text-muted)]",children:[(0,b.jsx)(h,{className:"h-3.5 w-3.5"}),(0,b.jsxs)("span",{children:[c.commentCount," comment",1===c.commentCount?"":"s"]})]}),(c.issueId||c.attachments.length>0)&&(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5",children:[c.issueId?k?(0,b.jsxs)("a",{href:k,target:"_blank",rel:"noreferrer",className:"inline-flex h-5 items-center gap-1 rounded-[3px] border border-[var(--vk-border)] px-2 text-[11px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]",children:[(0,b.jsxs)("span",{children:["Issue #",c.issueId]}),(0,b.jsx)(f,{className:"h-3 w-3"})]}):(0,b.jsxs)("span",{className:"inline-flex h-5 items-center rounded-[3px] border border-[var(--vk-border)] px-2 text-[11px] text-[var(--vk-text-muted)]",children:["Issue ",c.issueId]}):null,c.attachments.map(a=>(0,b.jsx)(w,{attachment:a,opening:au===a,onOpen:()=>void bv(a)},`${c.id}-${a}`))]}),(l.length>0||p)&&(0,b.jsxs)("div",{className:"mt-3 rounded-[4px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] p-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Runs"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:l.length+ +!!p})]}),(0,b.jsxs)("div",{className:"mt-2 space-y-1.5",children:[n?(0,b.jsxs)("button",{type:"button",onClick:()=>K.push(`/sessions/${encodeURIComponent(n.id)}`),className:"flex w-full items-center justify-between gap-2 rounded-[3px] border border-[rgba(255,255,255,0.05)] bg-[rgba(255,255,255,0.03)] px-2 py-1.5 text-left hover:bg-[var(--vk-bg-hover)]",title:n.id,children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[B(n)?(0,b.jsx)(m.AgentTileIcon,{seed:{label:B(n)},className:"h-5 w-5"}):null,(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-[12px] text-[var(--vk-text-normal)]",children:z(n)}),(0,b.jsx)("div",{className:"truncate text-[11px] text-[var(--vk-text-muted)]",children:"Primary run"})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)("span",{className:`inline-flex h-5 items-center rounded-[3px] border px-2 text-[10px] ${D(n.status)}`,children:C(n.status)}),(0,b.jsx)(f,{className:"h-3 w-3 text-[var(--vk-text-muted)]"})]})]}):null,l.filter(a=>a.id!==n?.id).map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>K.push(`/sessions/${encodeURIComponent(a.id)}`),className:"flex w-full items-center justify-between gap-2 rounded-[3px] px-2 py-1.5 text-left hover:bg-[var(--vk-bg-hover)]",title:a.id,children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[B(a)?(0,b.jsx)(m.AgentTileIcon,{seed:{label:B(a)},className:"h-5 w-5"}):null,(0,b.jsx)("span",{className:"truncate text-[12px] text-[var(--vk-text-normal)]",children:z(a)})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)("span",{className:`inline-flex h-5 items-center rounded-[3px] border px-2 text-[10px] ${D(a.status)}`,children:C(a.status)}),(0,b.jsx)(f,{className:"h-3 w-3 text-[var(--vk-text-muted)]"})]})]},a.id)),p?(0,b.jsxs)("button",{type:"button",onClick:()=>K.push(`/sessions/${encodeURIComponent(p)}`),className:"flex w-full items-center justify-between gap-2 rounded-[3px] px-2 py-1.5 text-left hover:bg-[var(--vk-bg-hover)]",title:p,children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-[12px] text-[var(--vk-text-normal)]",children:p}),(0,b.jsx)("div",{className:"truncate text-[11px] text-[var(--vk-text-muted)]",children:"Primary run"})]}),(0,b.jsx)(f,{className:"h-3 w-3 shrink-0 text-[var(--vk-text-muted)]"})]}):null]})]}),(0,b.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-2",children:[(0,b.jsx)("div",{className:"flex min-w-0 items-center gap-1.5",children:c.agent?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.AgentTileIcon,{seed:{label:c.agent},className:"h-6 w-6"}),(0,b.jsx)("span",{className:"truncate text-[12px] text-[var(--vk-text-muted)]",children:v(c.agent)})]}):(0,b.jsx)("span",{className:"text-[12px] text-[var(--vk-text-muted)]",children:"No agent"})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[c.type&&(0,b.jsx)("span",{className:"inline-flex h-5 items-center rounded-[3px] bg-[color:#292929] px-2 text-[11px] text-[var(--vk-text-muted)]",children:c.type}),c.priority&&(0,b.jsx)("span",{className:"inline-flex h-5 items-center rounded-[3px] bg-[color:#292929] px-2 text-[11px] text-[var(--vk-text-muted)]",children:c.priority})]})]})]},`${a.role}-${c.id}`)})]})]},a.role))})}),bt&&(0,b.jsx)("div",{className:"fixed inset-0 z-[75] flex items-start justify-center overflow-y-auto bg-black/60 px-3 py-3 sm:items-center sm:py-0",onClick:bB,children:(0,b.jsxs)("div",{className:"flex max-h-[calc(100dvh-1.5rem)] w-full max-w-[560px] flex-col overflow-hidden rounded-[6px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)]",onClick:a=>a.stopPropagation(),role:"dialog","aria-modal":"true",children:[(0,b.jsxs)("header",{className:"border-b border-[var(--vk-border)] px-4 py-3",children:[(0,b.jsx)("h2",{className:"text-[18px] text-[var(--vk-text-strong)]",children:"Edit Board Task"}),(0,b.jsx)("p",{className:"pt-1 text-[12px] text-[var(--vk-text-muted)]",children:"Move the card, update the task, and link the latest session run."})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 space-y-3 overflow-y-auto px-4 py-4",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Title"}),(0,b.jsx)("input",{value:aI,onChange:a=>aJ(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Description"}),(0,b.jsx)("textarea",{value:aK,onChange:a=>aL(a.target.value),rows:3,className:"w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 py-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Column"}),(0,b.jsx)("select",{value:aG,onChange:a=>aH(t(a.target.value)),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:M?.columns.map(a=>(0,b.jsx)("option",{value:a.role,className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:a.heading||r[a.role]},a.role))})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Agent"}),(0,b.jsx)("select",{value:aM,onChange:a=>aN(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:bn.map(a=>(0,b.jsx)("option",{value:a,className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:v(a)},a))})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Type"}),(0,b.jsx)("input",{value:aO,onChange:a=>aP(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Priority"}),(0,b.jsx)("input",{value:aQ,onChange:a=>aR(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"GitHub issue id (optional)"}),(0,b.jsx)("input",{value:aS,onChange:a=>aT(a.target.value),placeholder:"123",className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Notes"}),(0,b.jsx)("textarea",{value:aU,onChange:a=>aV(a.target.value),rows:3,className:"w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 py-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),bt.task.attachments.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Attachments"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:bt.task.attachments.map(a=>(0,b.jsx)(w,{attachment:a,opening:au===a,onOpen:()=>void bv(a)},a))})]}),(0,b.jsxs)("div",{className:"rounded-[4px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] p-3",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-[12px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Comments"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:bt.task.commentCount})]}),(0,b.jsx)("div",{className:"space-y-2",children:bt.task.comments.length>0?bt.task.comments.map(a=>(0,b.jsxs)("div",{className:"rounded-[4px] border border-[var(--vk-border)] bg-[rgba(255,255,255,0.02)] px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[12px] text-[var(--vk-text-normal)]",children:a.author}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--vk-text-muted)]",children:F(a.timestamp)})]}),(0,b.jsx)("p",{className:"pt-1 whitespace-pre-wrap text-[13px] leading-[20px] text-[var(--vk-text-muted)]",children:a.body})]},a.id)):(0,b.jsx)("p",{className:"text-[12px] text-[var(--vk-text-muted)]",children:"No comments yet."})}),(0,b.jsxs)("label",{className:"mt-3 block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Add comment"}),(0,b.jsx)("textarea",{value:a0,onChange:a=>a1(a.target.value),rows:3,placeholder:"Share status, request input, or leave implementation notes.",className:"w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 py-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),a4&&(0,b.jsx)("p",{className:"mt-2 text-[12px] text-[var(--vk-red)]",children:a4}),(0,b.jsx)("div",{className:"mt-3 flex justify-end",children:(0,b.jsxs)("button",{type:"button",onClick:()=>void bD(),disabled:!a0.trim()||a2,className:"inline-flex h-9 items-center gap-2 rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:[a2?(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(h,{className:"h-4 w-4"}),"Post comment"]})})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Primary linked run"}),(0,b.jsxs)("select",{value:aW,onChange:a=>aX(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:[(0,b.jsx)("option",{value:"",className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:"No linked session"}),bs.map(a=>(0,b.jsxs)("option",{value:a.id,className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:[z(a)," · ",a.status]},a.id))]})]}),a$&&(0,b.jsx)("p",{className:"text-[12px] text-[var(--vk-red)]",children:a$})]}),(0,b.jsxs)("footer",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-[var(--vk-border)] px-4 py-3",children:[(0,b.jsx)("button",{type:"button",onClick:bB,disabled:aY||a2,className:"inline-flex h-9 items-center rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:"Cancel"}),(0,b.jsx)("button",{type:"button",onClick:()=>void bC(),disabled:!aI.trim()||aY,className:"inline-flex h-9 items-center rounded-[3px] bg-[var(--vk-bg-active)] px-3 text-[13px] text-[var(--vk-text-strong)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:aY?(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}):"Save Task"})]})]})}),W&&(0,b.jsx)("div",{className:"fixed inset-0 z-[75] flex items-start justify-center overflow-y-auto bg-black/60 px-3 py-3 sm:items-center sm:py-0",onClick:()=>!ay&&X(!1),children:(0,b.jsxs)("div",{className:"flex max-h-[calc(100dvh-1.5rem)] w-full max-w-[560px] flex-col overflow-hidden rounded-[6px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)]",onClick:a=>a.stopPropagation(),role:"dialog","aria-modal":"true",children:[(0,b.jsxs)("header",{className:"border-b border-[var(--vk-border)] px-4 py-3",children:[(0,b.jsx)("h2",{className:"text-[18px] text-[var(--vk-text-strong)]",children:"Create Board Task"}),(0,b.jsx)("p",{className:"pt-1 text-[12px] text-[var(--vk-text-muted)]",children:"Add a task card with project and agent tags for Obsidian + conductor watcher."})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 space-y-3 overflow-y-auto px-4 py-4",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Title"}),(0,b.jsx)("input",{value:$,onChange:a=>_(a.target.value),placeholder:"Review payment flow regression",className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Description (optional)"}),(0,b.jsx)("textarea",{value:aa,onChange:a=>ab(a.target.value),rows:3,placeholder:"Investigate failing specs and propose a safe fix.",className:"w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 py-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Context notes (optional)"}),(0,b.jsx)("textarea",{value:ai,onChange:a=>aj(a.target.value),rows:2,placeholder:"Anything the agent should prioritize or avoid for this task.",className:"w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 py-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Agent"}),(0,b.jsx)("select",{value:ac,onChange:a=>ad(a.target.value),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:bn.map(a=>(0,b.jsx)("option",{value:a,className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:v(a)},a))})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Column"}),(0,b.jsx)("select",{value:Y,onChange:a=>Z(t(a.target.value)),className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]",children:bq.map(a=>(0,b.jsx)("option",{value:a.role,className:"bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)]",children:a.heading||r[a.role]},a.role))})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Type"}),(0,b.jsx)("input",{value:ae,onChange:a=>af(a.target.value),placeholder:"feature",className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Priority"}),(0,b.jsx)("input",{value:ag,onChange:a=>ah(a.target.value),placeholder:"normal",className:"h-9 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[14px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]})]}),(0,b.jsxs)("div",{className:"rounded-[4px] border border-[var(--vk-border)] p-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("p",{className:"text-[12px] text-[var(--vk-text-muted)]",children:"Context attachments"}),(0,b.jsxs)("p",{className:"text-[12px] text-[var(--vk-text-muted)]",children:[ak.length," selected",aw.length>0?` \xb7 ${aw.length} upload(s)`:""]})]}),(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsxs)("label",{className:"inline-flex cursor-pointer items-center rounded-[3px] border border-[var(--vk-border)] px-2 py-1 text-[12px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",children:[(0,b.jsx)("input",{type:"file",multiple:!0,className:"hidden",onChange:a=>{let b=Array.from(a.target.files??[]);0!==b.length&&(ax(a=>{let c=[...a];for(let a of b)c.some(b=>b.name===a.name&&b.size===a.size&&b.lastModified===a.lastModified)||c.push(a);return c}),a.currentTarget.value="")}}),"Upload files/images"]})}),aw.length>0&&(0,b.jsx)("div",{className:"mt-2 flex flex-wrap gap-1",children:aw.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{ax(b=>b.filter(b=>b.name!==a.name||b.size!==a.size||b.lastModified!==a.lastModified))},className:"inline-flex items-center gap-1 rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-hover)] px-2 py-1 text-[11px] text-[var(--vk-text-normal)]",title:"Remove upload",children:[(0,b.jsx)("span",{className:"truncate max-w-[220px]",children:a.name}),(0,b.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:"×"})]},`${a.name}-${a.size}-${a.lastModified}`))}),(0,b.jsxs)("label",{className:"mt-3 block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[12px] text-[var(--vk-text-muted)]",children:"Select existing context"}),(0,b.jsx)("input",{value:am,onChange:a=>an(a.target.value),placeholder:"Search context files...",className:"h-8 w-full rounded-[3px] border border-[var(--vk-border)] bg-transparent px-2 text-[13px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"})]}),(0,b.jsx)("div",{className:"mt-2 max-h-[180px] overflow-auto rounded-[3px] border border-[var(--vk-border)]",children:aq?(0,b.jsxs)("div",{className:"flex items-center gap-2 px-2 py-2 text-[12px] text-[var(--vk-text-muted)]",children:[(0,b.jsx)(g.Loader2,{className:"h-3.5 w-3.5 animate-spin"}),(0,b.jsx)("span",{children:"Loading context files..."})]}):as?(0,b.jsx)("p",{className:"px-2 py-2 text-[12px] text-[var(--vk-red)]",children:as}):0===br.length?(0,b.jsx)("p",{className:"px-2 py-2 text-[12px] text-[var(--vk-text-muted)]",children:"No context files found."}):(0,b.jsx)("ul",{className:"divide-y divide-[var(--vk-border)]",children:br.map(a=>{var c;let d=ak.includes(a.path);return(0,b.jsx)("li",{className:"px-2 py-1.5",children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsxs)("label",{className:"flex min-w-0 flex-1 cursor-pointer items-start gap-2 text-[12px] text-[var(--vk-text-normal)]",children:[(0,b.jsx)("input",{type:"checkbox",checked:d,onChange:()=>{var b;return b=a.path,void al(a=>a.includes(b)?a.filter(a=>a!==b):[...a,b])},className:"mt-0.5 h-3.5 w-3.5 rounded border-[var(--vk-border)] bg-transparent"}),(0,b.jsxs)("span",{className:"min-w-0",children:[(0,b.jsx)("span",{className:"block truncate",children:a.path}),(0,b.jsxs)("span",{className:"block text-[11px] text-[var(--vk-text-muted)]",children:[a.kind,a.source?` \xb7 ${a.source}`:"",a.sizeBytes?` \xb7 ${!(c=a.sizeBytes)||c<=0?"":c<1024?`${c} B`:c<1048576?`${(c/1024).toFixed(1)} KB`:`${(c/1048576).toFixed(1)} MB`}`:""]})]})]}),(0,b.jsxs)("button",{type:"button",onClick:()=>void bv(a.path),disabled:au===a.path,className:"inline-flex h-7 shrink-0 items-center gap-1 rounded-[3px] border border-[var(--vk-border)] px-2 text-[11px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)] disabled:opacity-60",title:`${bm}: ${a.path}`,"aria-label":`${bm}: ${a.path}`,children:[au===a.path?(0,b.jsx)(g.Loader2,{className:"h-3 w-3 animate-spin"}):(0,b.jsx)(f,{className:"h-3 w-3"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:bm})]})]})},a.path)})})})]}),aA&&(0,b.jsx)("p",{className:"text-[12px] text-[var(--vk-red)]",children:aA})]}),(0,b.jsxs)("footer",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-[var(--vk-border)] px-4 py-3",children:[(0,b.jsx)("button",{type:"button",onClick:()=>X(!1),disabled:ay,className:"inline-flex h-9 items-center rounded-[3px] border border-[var(--vk-border)] px-3 text-[13px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:"Cancel"}),(0,b.jsx)("button",{type:"button",onClick:()=>void bw(),disabled:!$.trim()||ay,className:"inline-flex h-9 items-center rounded-[3px] bg-[var(--vk-bg-active)] px-3 text-[13px] text-[var(--vk-text-strong)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-50",children:ay?(0,b.jsx)(g.Loader2,{className:"h-4 w-4 animate-spin"}):"Create Task"})]})]})})]}):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-[14px] text-[var(--vk-text-muted)]",children:"Select a workspace to view its Kanban board."})}a.s(["WorkspaceKanban",()=>I],6599)},4180,a=>{a.n(a.i(6599))}];
2
2
 
3
3
  //# sourceMappingURL=packages_web_src_components_board_WorkspaceKanban_tsx_735b7999._.js.map