@overlordai/server 1.0.139 → 1.0.141

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 (235) hide show
  1. package/database/migrations/010-plan-review-mode.sql +11 -0
  2. package/database/migrations/012-schema-index-fixes.sql +72 -0
  3. package/dist/adapters/adapter.module.d.ts.map +1 -1
  4. package/dist/adapters/adapter.module.js +3 -0
  5. package/dist/adapters/adapter.module.js.map +1 -1
  6. package/dist/adapters/command-parser.utils.d.ts +11 -0
  7. package/dist/adapters/command-parser.utils.d.ts.map +1 -1
  8. package/dist/adapters/command-parser.utils.js +58 -1
  9. package/dist/adapters/command-parser.utils.js.map +1 -1
  10. package/dist/adapters/help-text.d.ts.map +1 -1
  11. package/dist/adapters/help-text.js +8 -6
  12. package/dist/adapters/help-text.js.map +1 -1
  13. package/dist/adapters/lark/lark-message.parser.d.ts +7 -7
  14. package/dist/adapters/lark/lark-message.parser.d.ts.map +1 -1
  15. package/dist/adapters/lark/lark-message.parser.js +11 -7
  16. package/dist/adapters/lark/lark-message.parser.js.map +1 -1
  17. package/dist/adapters/lark/lark.adapter.d.ts +3 -1
  18. package/dist/adapters/lark/lark.adapter.d.ts.map +1 -1
  19. package/dist/adapters/lark/lark.adapter.js +28 -12
  20. package/dist/adapters/lark/lark.adapter.js.map +1 -1
  21. package/dist/adapters/nlu.service.d.ts +20 -0
  22. package/dist/adapters/nlu.service.d.ts.map +1 -0
  23. package/dist/adapters/nlu.service.js +231 -0
  24. package/dist/adapters/nlu.service.js.map +1 -0
  25. package/dist/adapters/slack/slack-message.parser.d.ts.map +1 -1
  26. package/dist/adapters/slack/slack-message.parser.js +4 -0
  27. package/dist/adapters/slack/slack-message.parser.js.map +1 -1
  28. package/dist/adapters/slack/slack.adapter.d.ts +3 -1
  29. package/dist/adapters/slack/slack.adapter.d.ts.map +1 -1
  30. package/dist/adapters/slack/slack.adapter.js +43 -14
  31. package/dist/adapters/slack/slack.adapter.js.map +1 -1
  32. package/dist/adapters/slack/slack.controller.js +8 -8
  33. package/dist/adapters/slack/slack.controller.js.map +1 -1
  34. package/dist/common/project-validation.d.ts +13 -3
  35. package/dist/common/project-validation.d.ts.map +1 -1
  36. package/dist/common/project-validation.js +21 -5
  37. package/dist/common/project-validation.js.map +1 -1
  38. package/dist/database/migration-runner.d.ts.map +1 -1
  39. package/dist/database/migration-runner.js +10 -1
  40. package/dist/database/migration-runner.js.map +1 -1
  41. package/dist/database/repositories/project.repository.d.ts +2 -0
  42. package/dist/database/repositories/project.repository.d.ts.map +1 -1
  43. package/dist/database/repositories/project.repository.js +13 -0
  44. package/dist/database/repositories/project.repository.js.map +1 -1
  45. package/dist/database/repositories/task.repository.d.ts +11 -2
  46. package/dist/database/repositories/task.repository.d.ts.map +1 -1
  47. package/dist/database/repositories/task.repository.js +64 -8
  48. package/dist/database/repositories/task.repository.js.map +1 -1
  49. package/dist/dispatcher/dispatcher.service.d.ts +2 -0
  50. package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
  51. package/dist/dispatcher/dispatcher.service.js +79 -0
  52. package/dist/dispatcher/dispatcher.service.js.map +1 -1
  53. package/dist/dispatcher/scheduler.service.d.ts.map +1 -1
  54. package/dist/dispatcher/scheduler.service.js +3 -0
  55. package/dist/dispatcher/scheduler.service.js.map +1 -1
  56. package/dist/dispatcher/task-creation.service.d.ts +13 -2
  57. package/dist/dispatcher/task-creation.service.d.ts.map +1 -1
  58. package/dist/dispatcher/task-creation.service.js +207 -21
  59. package/dist/dispatcher/task-creation.service.js.map +1 -1
  60. package/dist/dispatcher/task-lifecycle.service.d.ts +5 -1
  61. package/dist/dispatcher/task-lifecycle.service.d.ts.map +1 -1
  62. package/dist/dispatcher/task-lifecycle.service.js +231 -1
  63. package/dist/dispatcher/task-lifecycle.service.js.map +1 -1
  64. package/dist/events/event-types.d.ts +8 -0
  65. package/dist/events/event-types.d.ts.map +1 -1
  66. package/dist/events/event-types.js +1 -0
  67. package/dist/events/event-types.js.map +1 -1
  68. package/dist/notifier/notification-consumer.d.ts.map +1 -1
  69. package/dist/notifier/notification-consumer.js +5 -0
  70. package/dist/notifier/notification-consumer.js.map +1 -1
  71. package/dist/notifier/notification-event-listener.d.ts +2 -1
  72. package/dist/notifier/notification-event-listener.d.ts.map +1 -1
  73. package/dist/notifier/notification-event-listener.js +14 -0
  74. package/dist/notifier/notification-event-listener.js.map +1 -1
  75. package/dist/notifier/notifier.service.d.ts +1 -0
  76. package/dist/notifier/notifier.service.d.ts.map +1 -1
  77. package/dist/notifier/notifier.service.js +8 -0
  78. package/dist/notifier/notifier.service.js.map +1 -1
  79. package/dist/notifier/template.service.d.ts +4 -0
  80. package/dist/notifier/template.service.d.ts.map +1 -1
  81. package/dist/notifier/template.service.js +32 -0
  82. package/dist/notifier/template.service.js.map +1 -1
  83. package/dist/web/admin/admin-project.controller.d.ts.map +1 -1
  84. package/dist/web/admin/admin-project.controller.js +15 -0
  85. package/dist/web/admin/admin-project.controller.js.map +1 -1
  86. package/dist/web/dashboard.service.js +3 -3
  87. package/dist/web/frame-handlers/index.d.ts +1 -0
  88. package/dist/web/frame-handlers/index.d.ts.map +1 -1
  89. package/dist/web/frame-handlers/index.js +3 -1
  90. package/dist/web/frame-handlers/index.js.map +1 -1
  91. package/dist/web/frame-handlers/progress.handler.d.ts.map +1 -1
  92. package/dist/web/frame-handlers/progress.handler.js +18 -0
  93. package/dist/web/frame-handlers/progress.handler.js.map +1 -1
  94. package/dist/web/frame-handlers/review-report.handler.d.ts +15 -0
  95. package/dist/web/frame-handlers/review-report.handler.d.ts.map +1 -0
  96. package/dist/web/frame-handlers/review-report.handler.js +140 -0
  97. package/dist/web/frame-handlers/review-report.handler.js.map +1 -0
  98. package/dist/web/frame-handlers/stage-confirm.handler.d.ts +3 -1
  99. package/dist/web/frame-handlers/stage-confirm.handler.d.ts.map +1 -1
  100. package/dist/web/frame-handlers/stage-confirm.handler.js +18 -4
  101. package/dist/web/frame-handlers/stage-confirm.handler.js.map +1 -1
  102. package/dist/web/project.controller.js +1 -1
  103. package/dist/web/project.controller.js.map +1 -1
  104. package/dist/web/task.controller.d.ts +116 -2
  105. package/dist/web/task.controller.d.ts.map +1 -1
  106. package/dist/web/task.controller.js +172 -8
  107. package/dist/web/task.controller.js.map +1 -1
  108. package/dist/web/web-event.service.d.ts +2 -1
  109. package/dist/web/web-event.service.d.ts.map +1 -1
  110. package/dist/web/web-event.service.js +13 -0
  111. package/dist/web/web-event.service.js.map +1 -1
  112. package/dist/web/worker-channel.gateway.d.ts +2 -1
  113. package/dist/web/worker-channel.gateway.d.ts.map +1 -1
  114. package/dist/web/worker-channel.gateway.js +6 -3
  115. package/dist/web/worker-channel.gateway.js.map +1 -1
  116. package/package.json +4 -4
  117. package/public/assets/AccessTokensPage-wTxicSeE.js +1 -0
  118. package/public/assets/AdminPage-CBovEOm4.js +1 -0
  119. package/public/assets/{AgentCliPage-BR2YXUlN.js → AgentCliPage-DfqlFdFN.js} +1 -1
  120. package/public/assets/{ApiReferencePage-CWGvx9sZ.js → ApiReferencePage-7TUHB8sC.js} +1 -1
  121. package/public/assets/{ArchitecturePage-CVipZPS8.js → ArchitecturePage-CycvJ1HW.js} +1 -1
  122. package/public/assets/AuditLogPage-CqqCDd8o.js +1 -0
  123. package/public/assets/{BindPlatformPage-BDisYk6H.js → BindPlatformPage-BV5wNIi2.js} +1 -1
  124. package/public/assets/{BotIntegrationPage-DoqcdqwE.js → BotIntegrationPage-B2bQytks.js} +1 -1
  125. package/public/assets/{BotManage-DRo01WBu.js → BotManage-BBBrqdT_.js} +2 -2
  126. package/public/assets/{BotSetupPage-nornZgmt.js → BotSetupPage-DdDPniAd.js} +1 -1
  127. package/public/assets/{ChangelogPage-Bd5TviZ8.js → ChangelogPage-D5YE3BFH.js} +1 -1
  128. package/public/assets/CliReferencePage-yJgtPpFn.js +17 -0
  129. package/public/assets/ConfirmStageDialog-BOGr-qSN.js +12 -0
  130. package/public/assets/{DeploymentPage-3YMjpAFo.js → DeploymentPage-C0CXq8yl.js} +1 -1
  131. package/public/assets/{DevWorkflowPage-DFQTZVP9.js → DevWorkflowPage-I4Io3nYz.js} +1 -1
  132. package/public/assets/{DeveloperManage-BnMIj_g_.js → DeveloperManage-Cy0LRyHh.js} +2 -2
  133. package/public/assets/{DeveloperSetupPage-Cw4nLpIm.js → DeveloperSetupPage-DzGCH2XG.js} +1 -1
  134. package/public/assets/{DocsIndexPage-cK28EfKj.js → DocsIndexPage-PIEcc9gX.js} +2 -2
  135. package/public/assets/DocsLayout-ChIliA9A.js +1 -0
  136. package/public/assets/{DocsPrimitives-2csfHzW_.js → DocsPrimitives-BMgSDhur.js} +1 -1
  137. package/public/assets/EditProjectPage-D0rfXGZR.js +2 -0
  138. package/public/assets/{EmptyState-ADwWEXdn.js → EmptyState-Di2nOiOt.js} +1 -1
  139. package/public/assets/{EnvVariablesPage-D7HonzNe.js → EnvVariablesPage-EmfRwttc.js} +1 -1
  140. package/public/assets/HomePage-CeOmNhkc.js +1 -0
  141. package/public/assets/{InfoRow-CmtJW4M9.js → InfoRow-5vQ-_wWv.js} +1 -1
  142. package/public/assets/{InstallationPage-CJ-YdcrX.js → InstallationPage-CUbe1AD-.js} +1 -1
  143. package/public/assets/{LandingPage-CWdPeZv-.js → LandingPage-DSHGbkXw.js} +7 -12
  144. package/public/assets/{LocalDevelopmentPage-BDl2Ktyc.js → LocalDevelopmentPage-fialPCnX.js} +1 -1
  145. package/public/assets/{LoginPage-DgF9ENzx.js → LoginPage-C4oz9yjV.js} +1 -1
  146. package/public/assets/{MetricBar-DoUTAkIk.js → MetricBar-ByQYVWVi.js} +1 -1
  147. package/public/assets/{NotFoundPage-BUrnSFza.js → NotFoundPage-BeayCSH7.js} +1 -1
  148. package/public/assets/{OnboardingGuide-E87DHNsp.js → OnboardingGuide-CqcX04SL.js} +1 -1
  149. package/public/assets/{PermissionsPage-DKhdHNDg.js → PermissionsPage-Bb2CYzMf.js} +1 -1
  150. package/public/assets/{PipelineConfigPage-Dn-fh0Ia.js → PipelineConfigPage-DwY__0Ag.js} +2 -2
  151. package/public/assets/PipelineEditorPage-FkckQpQX.js +3 -0
  152. package/public/assets/PlanPage-BOzGJd2h.js +1 -0
  153. package/public/assets/ProfilePage-CT_kk3a8.js +1 -0
  154. package/public/assets/ProjectDetailPage-B-t7L84T.js +7 -0
  155. package/public/assets/ProjectListPage-C2uStUVE.js +6 -0
  156. package/public/assets/PtyTerminal-BYXg_ahq.js +38 -0
  157. package/public/assets/QuickAuth-CohuPihd.js +1 -0
  158. package/public/assets/{RemoveMemberConfirmDialog-Brv6Th8M.js → RemoveMemberConfirmDialog-DLq9g7Td.js} +1 -1
  159. package/public/assets/ReviewAggregatePage-dWQb52Df.js +11 -0
  160. package/public/assets/ReviewPage-DtdWSBgK.js +1 -0
  161. package/public/assets/Select-BAl7H-Y0.js +1 -0
  162. package/public/assets/{SettingsPage-CZwwUAeC.js → SettingsPage-qCfF6rzU.js} +1 -1
  163. package/public/assets/{Skeleton-DQWHHk9G.js → Skeleton-DA5o8Wqi.js} +1 -1
  164. package/public/assets/{SkillPage-CKbqXAb6.js → SkillPage-C6p0dXbu.js} +1 -1
  165. package/public/assets/TaskDetailPage-D4sGfico.js +21 -0
  166. package/public/assets/TaskGuidePage-COT0chCI.js +19 -0
  167. package/public/assets/TaskListPage-Bvq5ow7r.js +1 -0
  168. package/public/assets/{TaskStatusBadge-Cd9AKReP.js → TaskStatusBadge-BdNFkrjU.js} +1 -1
  169. package/public/assets/TerminalHomePage-XJ5daAJC.js +6 -0
  170. package/public/assets/TokenManage-JLFD8xAN.js +1 -0
  171. package/public/assets/{Tooltip-1tjISJAN.js → Tooltip-Bl8LCgWr.js} +1 -1
  172. package/public/assets/{TotpSetupPage-Dme4c3tv.js → TotpSetupPage-BGE6pDdn.js} +1 -1
  173. package/public/assets/{WorkerDetailPage-CgXIs1_M.js → WorkerDetailPage-Dd-IbO6r.js} +1 -1
  174. package/public/assets/{WorkerListPage-CM1GqeN7.js → WorkerListPage-e4P55nJc.js} +2 -2
  175. package/public/assets/{WorkerOperationsPage-uArfsFAY.js → WorkerOperationsPage-ioBw_i1j.js} +1 -1
  176. package/public/assets/WorkerSetupGuidePage-CRicnVVm.js +1 -0
  177. package/public/assets/{WorkerSetupPage-DTQvCeTf.js → WorkerSetupPage-DXOlNqUZ.js} +1 -1
  178. package/public/assets/{agent-type-options-l4HLs4lb.js → agent-type-options-BVIYXf2V.js} +1 -1
  179. package/public/assets/{arrow-left-D2z6WXle.js → arrow-left-CTo0KHGY.js} +1 -1
  180. package/public/assets/{arrow-right-BBWwGkdK.js → arrow-right-C9oQyTKw.js} +1 -1
  181. package/public/assets/{bot-haRrziLf.js → bot-B301pflD.js} +1 -1
  182. package/public/assets/chevron-down-B0Leook1.js +6 -0
  183. package/public/assets/{chevron-left-B11s6IVD.js → chevron-left-59qctCaF.js} +1 -1
  184. package/public/assets/{chevron-right-CxMAZVfy.js → chevron-right-XfJqITCa.js} +1 -1
  185. package/public/assets/chevron-up-BW2PVBfH.js +6 -0
  186. package/public/assets/{copy-CukaPL3b.js → copy-DEWCNXDf.js} +1 -1
  187. package/public/assets/{download-CtBIkCC6.js → download-7d5kMwpH.js} +1 -1
  188. package/public/assets/{external-link-BYaw3Ovt.js → external-link-DjBNV7ga.js} +1 -1
  189. package/public/assets/{file-text-CwpyLWx2.js → file-text-DHEz_RFq.js} +1 -1
  190. package/public/assets/{git-fork-DjDcRdWO.js → git-fork-cRLOBM6a.js} +1 -1
  191. package/public/assets/index-eKvCyU64.js +252 -0
  192. package/public/assets/index-kJfGgL_V.css +1 -0
  193. package/public/assets/{key-D-EBAM_S.js → key-D5BbAzTj.js} +1 -1
  194. package/public/assets/{loader-circle-PEOtoIoF.js → loader-circle-B_f_h4fq.js} +1 -1
  195. package/public/assets/{pencil-BObnoNZc.js → pencil-CTTWvWuS.js} +1 -1
  196. package/public/assets/play-Cqf1Kvc7.js +6 -0
  197. package/public/assets/{plus-JnJTWOh0.js → plus-DwBKB0x6.js} +1 -1
  198. package/public/assets/{rotate-ccw-9hl77Xny.js → rotate-ccw-CZR8KOZn.js} +1 -1
  199. package/public/assets/{scroll-text-w6v00sw0.js → scroll-text-BeQeZkLb.js} +1 -1
  200. package/public/assets/{settings-DqX6KTB6.js → settings-CsdOqob5.js} +1 -1
  201. package/public/assets/skip-forward-BqiRx2ZQ.js +6 -0
  202. package/public/assets/status-colors-yfNzOmz-.js +1 -0
  203. package/public/assets/task-constants-BWLt-ivk.js +1 -0
  204. package/public/assets/task.store-BDZwafPm.js +1 -0
  205. package/public/assets/{trash-2-BH7Uy_FR.js → trash-2-CXPG2vQr.js} +1 -1
  206. package/public/assets/{useFetch-C6aoI2YR.js → useFetch-CVFGit7a.js} +1 -1
  207. package/public/assets/{users-N89uFOml.js → users-DmefWRaM.js} +1 -1
  208. package/public/assets/{wifi-B0GLkoI5.js → wifi-BJIfMBKB.js} +1 -1
  209. package/public/assets/{workflow-CPFrQB2p.js → workflow-CuZasRLA.js} +1 -1
  210. package/public/index.html +2 -2
  211. package/public/sw.js +1 -1
  212. package/public/assets/AccessTokensPage-DMsQKvGG.js +0 -1
  213. package/public/assets/AdminPage-DqZMqDDh.js +0 -1
  214. package/public/assets/AuditLogPage-CCUK_lWo.js +0 -1
  215. package/public/assets/CliReferencePage-C6NT0ynG.js +0 -16
  216. package/public/assets/DocsLayout-BVtSzaqN.js +0 -1
  217. package/public/assets/EditProjectPage-D4LeLkUK.js +0 -2
  218. package/public/assets/HomePage-CFVWSe09.js +0 -1
  219. package/public/assets/MobileTerminalShell-BSE0-T35.js +0 -49
  220. package/public/assets/PipelineEditorPage-DY945ZLB.js +0 -3
  221. package/public/assets/ProfilePage-wMwqf3xq.js +0 -1
  222. package/public/assets/ProjectDetailPage-Czbvi0xm.js +0 -7
  223. package/public/assets/ProjectListPage-qT9qvnxf.js +0 -6
  224. package/public/assets/QuickAuth-BsMxofrA.js +0 -1
  225. package/public/assets/Select-BfjWmQST.js +0 -6
  226. package/public/assets/TaskDetailPage-CskFoYAc.js +0 -26
  227. package/public/assets/TaskListPage-T7DWBtM3.js +0 -1
  228. package/public/assets/TerminalHomePage-ClJFAaTn.js +0 -11
  229. package/public/assets/TokenManage-Cj9UuqyE.js +0 -1
  230. package/public/assets/WorkerSetupGuidePage-CyW_9sIh.js +0 -6
  231. package/public/assets/index-BUjb3VF-.css +0 -1
  232. package/public/assets/index-GPUbNOkg.js +0 -242
  233. package/public/assets/status-colors-C_RhLQKM.js +0 -1
  234. package/public/assets/task-constants-LNckgIqT.js +0 -1
  235. /package/public/assets/{MobileTerminalShell-6GBZ9nXN.css → PtyTerminal-6GBZ9nXN.css} +0 -0
@@ -0,0 +1,6 @@
1
+ import{c as I,a as E,r as o,G as x,Q as z,j as e,h as P,f as H,w as M}from"./index-eKvCyU64.js";import{S as U}from"./Select-BAl7H-Y0.js";import{a as R}from"./agent-type-options-BVIYXf2V.js";import{E as D}from"./EmptyState-Di2nOiOt.js";import{T as J}from"./Skeleton-DA5o8Wqi.js";import{t as O}from"./date-RFA7-ZGs.js";import{u as q}from"./useFetch-CVFGit7a.js";import{P as W}from"./plus-DwBKB0x6.js";import{A as $}from"./arrow-left-CTo0KHGY.js";import"./chevron-down-B0Leook1.js";/**
2
+ * @license lucide-react v0.469.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const K=I("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),m={width:"100%",padding:"0.5rem 0.75rem",backgroundColor:"var(--bg-input)",border:"1px solid var(--border)",borderRadius:"4px",color:"var(--text-primary)",fontSize:"0.75rem",fontFamily:"'JetBrains Mono', monospace",outline:"none",boxSizing:"border-box"},i={display:"block",color:"var(--text-secondary)",fontSize:"0.7rem",marginBottom:"0.25rem",fontFamily:"'JetBrains Mono', monospace"};function Q({isOpen:l,onClose:a,onCreated:j}){const{t}=E(),d=R(r=>r),[c,u]=o.useState(""),[s,b]=o.useState(""),[n,y]=o.useState(""),[f,C]=o.useState(""),[_,k]=o.useState("main"),[N,S]=o.useState(x.GITHUB),[B,T]=o.useState(z.CLAUDE),[p,w]=o.useState(!1),[F,v]=o.useState("");o.useEffect(()=>{l&&A()},[l]);function A(){u(""),b(""),y(""),C(""),k("main"),S(x.GITHUB),T(z.CLAUDE),v("")}function g(){A(),a()}async function L(r){r.preventDefault(),v(""),w(!0);try{const h=await P.post("admin/projects",{json:{name:c,key:s,repoUrl:n,sshUrl:f||void 0,defaultBranch:_,gitPlatform:N,agentType:B}}).json();j(h),g()}catch(h){const G=h instanceof Error?h.message:t("projects.failed_to_create_project");v(G)}finally{w(!1)}}return l?e.jsx("div",{onClick:g,style:{position:"fixed",inset:0,zIndex:50,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"var(--modal-backdrop, rgba(12,12,12,0.6))",padding:"1rem"},children:e.jsxs("div",{onClick:r=>r.stopPropagation(),style:{width:"100%",maxWidth:"480px",backgroundColor:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:"4px",padding:"1.5rem",fontFamily:"'JetBrains Mono', monospace"},children:[e.jsxs("div",{style:{marginBottom:"1.25rem"},children:[e.jsxs("div",{style:{color:"var(--accent)",fontSize:"0.875rem",fontWeight:600},children:["> ",t("projects.create_project")]}),e.jsx("div",{style:{color:"var(--text-muted)",fontSize:"0.7rem",marginTop:"0.25rem"},children:t("projects.add_project_desc")})]}),F&&e.jsx("div",{style:{marginBottom:"1rem",padding:"0.5rem 0.75rem",borderRadius:"4px",backgroundColor:"rgba(239, 68, 68, 0.1)",border:"1px solid rgba(239, 68, 68, 0.3)",color:"var(--destructive)",fontSize:"0.7rem"},children:F}),e.jsxs("form",{onSubmit:L,style:{display:"flex",flexDirection:"column",gap:"0.875rem"},children:[e.jsxs("div",{children:[e.jsx("label",{style:i,children:t("projects.project_name")}),e.jsx("input",{type:"text",value:c,onChange:r=>u(r.target.value),placeholder:t("projects.project_name_placeholder"),required:!0,autoFocus:!0,style:m,onFocus:r=>r.target.style.borderColor="var(--accent)",onBlur:r=>r.target.style.borderColor="var(--border)"})]}),e.jsxs("div",{children:[e.jsx("label",{style:i,children:t("projects.project_key")}),e.jsx("input",{type:"text",value:s,onChange:r=>b(r.target.value.toLowerCase().replace(/[^a-z0-9-]/g,"")),placeholder:t("projects.project_key_placeholder"),required:!0,style:m,onFocus:r=>r.target.style.borderColor="var(--accent)",onBlur:r=>r.target.style.borderColor="var(--border)"}),e.jsx("div",{style:{color:"var(--text-muted)",fontSize:"0.65rem",marginTop:"0.25rem"},children:t("projects.project_key_hint")})]}),e.jsxs("div",{children:[e.jsx("label",{style:i,children:t("projects.repo_url")}),e.jsx("input",{type:"text",value:n,onChange:r=>y(r.target.value),placeholder:t("projects.repo_url_placeholder"),required:!0,style:m,onFocus:r=>r.target.style.borderColor="var(--accent)",onBlur:r=>r.target.style.borderColor="var(--border)"})]}),e.jsxs("div",{children:[e.jsx("label",{style:i,children:t("projects.ssh_url")}),e.jsx("input",{type:"text",value:f,onChange:r=>C(r.target.value),placeholder:t("projects.ssh_url_placeholder"),style:m,onFocus:r=>r.target.style.borderColor="var(--accent)",onBlur:r=>r.target.style.borderColor="var(--border)"}),e.jsx("div",{style:{color:"var(--text-muted)",fontSize:"0.65rem",marginTop:"0.25rem"},children:t("projects.ssh_url_hint")})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:[e.jsxs("div",{children:[e.jsx("label",{style:i,children:t("projects.default_branch")}),e.jsx("input",{type:"text",value:_,onChange:r=>k(r.target.value),placeholder:t("projects.main"),style:m,onFocus:r=>r.target.style.borderColor="var(--accent)",onBlur:r=>r.target.style.borderColor="var(--border)"})]}),e.jsxs("div",{children:[e.jsx("label",{style:i,children:t("projects.git_platform")}),e.jsx(U,{value:N,onChange:r=>S(r),options:[{value:x.GITHUB,label:t("projects.github")},{value:x.GITLAB,label:t("projects.gitlab")},{value:x.GITEA,label:t("projects.gitea")}]})]}),e.jsxs("div",{children:[e.jsx("label",{style:i,children:t("projects.agent_type")}),e.jsx(U,{value:B,onChange:r=>T(r),options:d})]})]}),e.jsxs("div",{style:{display:"flex",gap:"0.75rem",marginTop:"0.5rem"},children:[e.jsx("button",{type:"button",onClick:g,disabled:p,style:{flex:1,padding:"0.5rem",backgroundColor:"transparent",border:"1px solid var(--border)",borderRadius:"4px",fontSize:"0.75rem",fontFamily:"'JetBrains Mono', monospace",cursor:"pointer",transition:"color 0.15s, border-color 0.15s"},className:"text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:border-[var(--text-muted)]",children:t("common.cancel")}),e.jsx("button",{type:"submit",disabled:p||!c||!s||!n,style:{flex:1,padding:"0.5rem",backgroundColor:"var(--accent)",color:"#0C0C0C",border:"none",borderRadius:"4px",fontSize:"0.75rem",fontWeight:600,fontFamily:"'JetBrains Mono', monospace",cursor:p||!c||!s||!n?"not-allowed":"pointer",opacity:p||!c||!s||!n?.7:1},children:t(p?"common.creating":"common.create")})]})]})]})}):null}function ne(){const l=H(),{t:a}=E(),[j,t]=o.useState(!1),{data:d,loading:c,refetch:u}=q(()=>P.get("web/projects").json(),[]);return M(o.useMemo(()=>e.jsxs("button",{onClick:()=>t(!0),className:"flex items-center gap-1.5 rounded-[4px] bg-[var(--accent)] px-3 py-1.5 text-xs font-medium text-black",children:[e.jsx(W,{className:"h-3.5 w-3.5"}),a("projects.create_project")]}),[a])),e.jsxs("div",{className:"mx-auto max-w-5xl",children:[e.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--border)] bg-[var(--bg-primary)] px-4 py-3 shrink-0 md:hidden",children:[e.jsx("button",{onClick:()=>l("/dashboard"),className:"shrink-0 text-[var(--text-muted)]",children:e.jsx($,{className:"h-4 w-4"})}),e.jsx("span",{className:"truncate text-sm font-medium text-[var(--text-primary)]",children:a("projects.title")})]}),e.jsxs("div",{className:"px-4 md:px-6 py-8",children:[c?e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4",children:e.jsx(J,{rows:4})}):!d||d.length===0?e.jsx(D,{icon:K,title:a("projects.no_projects_yet"),description:a("projects.create_first_project"),actionLabel:a("projects.create_project"),onAction:()=>t(!0)}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex flex-col gap-2 md:hidden",children:d.map(s=>e.jsxs("div",{onClick:()=>l(`/projects/${s.key}`),className:"cursor-pointer rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-3 transition-colors active:bg-[var(--bg-input)]",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("span",{className:"text-xs font-medium text-[var(--accent)]",children:s.key}),e.jsxs("span",{className:"text-[11px] text-[var(--text-muted)]",children:[s.taskCount??0," tasks"]})]}),e.jsx("span",{className:"mt-1 block text-[11px] text-[var(--text-primary)]",children:s.name}),e.jsx("span",{className:"mt-0.5 block text-[11px] text-[var(--text-muted)]",children:s.agentType})]},s.key))}),e.jsxs("div",{className:"hidden md:block rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:[e.jsxs("div",{className:"grid grid-cols-[36px_90px_1fr_120px_60px_80px] gap-3 border-b border-[var(--border-row)] px-4 py-2.5 text-xs font-medium text-[var(--text-muted)]",children:[e.jsx("span",{children:"#"}),e.jsx("span",{children:a("projects.key")}),e.jsx("span",{children:a("projects.name")}),e.jsx("span",{children:a("projects.members")}),e.jsx("span",{children:a("projects.tasks_count")}),e.jsx("span",{children:a("projects.last_activity")})]}),d.map((s,b)=>e.jsxs("div",{onClick:()=>l(`/projects/${s.key}`),className:"grid cursor-pointer grid-cols-[36px_90px_1fr_120px_60px_80px] gap-3 border-b border-[var(--border-row)] px-4 py-3 last:border-b-0 hover:bg-[var(--bg-input)] transition-colors items-center",children:[e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:b+1}),e.jsx("span",{className:"truncate text-xs text-[var(--accent)]",children:s.key}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"block truncate text-xs text-[var(--text-primary)]",children:s.name}),e.jsxs("span",{className:"block truncate text-[11px] text-[var(--text-muted)]",children:[s.agentType," · ",s.repoUrl.replace(/^https?:\/\//,"").split("/").slice(-2).join("/")]})]}),e.jsx("div",{className:"flex items-center",children:e.jsxs("div",{className:"flex -space-x-1.5",children:[(s.members??[]).map(n=>e.jsx("div",{className:"flex h-6 w-6 items-center justify-center rounded-full border-2 border-[var(--bg-card)] bg-[var(--accent)]/20 text-[11px] font-bold text-[var(--accent)]",title:n.name,children:n.name.charAt(0).toUpperCase()},n.id)),(s.memberCount??0)>5&&e.jsxs("div",{className:"flex h-6 w-6 items-center justify-center rounded-full border-2 border-[var(--bg-card)] bg-[var(--bg-input)] text-[11px] text-[var(--text-muted)]",children:["+",s.memberCount-5]})]})}),e.jsx("span",{className:"text-xs text-[var(--text-secondary)]",children:s.taskCount??0}),e.jsx("span",{className:"text-[11px] text-[var(--text-muted)]",children:O(s.lastActivity??null)})]},s.key))]})]}),e.jsx(Q,{isOpen:j,onClose:()=>t(!1),onCreated:u})]})]})}export{ne as default};