@overlordai/server 1.0.67 → 1.0.69

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 (101) hide show
  1. package/dist/adapters/lark/lark.controller.d.ts.map +1 -1
  2. package/dist/adapters/lark/lark.controller.js +0 -3
  3. package/dist/adapters/lark/lark.controller.js.map +1 -1
  4. package/dist/database/repositories/bot.repository.d.ts +3 -2
  5. package/dist/database/repositories/bot.repository.d.ts.map +1 -1
  6. package/dist/database/repositories/bot.repository.js +2 -2
  7. package/dist/database/repositories/bot.repository.js.map +1 -1
  8. package/dist/dispatcher/pty-relay.service.d.ts.map +1 -1
  9. package/dist/dispatcher/pty-relay.service.js +19 -0
  10. package/dist/dispatcher/pty-relay.service.js.map +1 -1
  11. package/dist/web/admin/admin-bot.controller.d.ts +3 -3
  12. package/package.json +4 -4
  13. package/public/assets/{AccessTokensPage-DcOzH6vQ.js → AccessTokensPage-iDZ6rZhl.js} +1 -1
  14. package/public/assets/AdminPage-CIVF_6oN.js +1 -0
  15. package/public/assets/{ApiReferencePage-Cn1nZmYJ.js → ApiReferencePage-DdBJhmX5.js} +1 -1
  16. package/public/assets/ArchitecturePage-BWQACk_w.js +47 -0
  17. package/public/assets/{AuditLogPage-CkE1EJZh.js → AuditLogPage-DTZL5_x5.js} +2 -2
  18. package/public/assets/{BindPlatformPage-DYNztOnJ.js → BindPlatformPage-DR0wVGmo.js} +1 -1
  19. package/public/assets/BotIntegrationPage-BsClXkLN.js +1 -0
  20. package/public/assets/BotManage-CNZfkmIJ.js +6 -0
  21. package/public/assets/BotSetupPage-Bcfnysyl.js +33 -0
  22. package/public/assets/ChangelogPage-DpiKKuMW.js +1 -0
  23. package/public/assets/{CliReferencePage-DyfbBqGH.js → CliReferencePage-3PUTVc7V.js} +1 -1
  24. package/public/assets/DeploymentPage-CKZ4SJGu.js +34 -0
  25. package/public/assets/DevWorkflowPage-3C2oScnn.js +6 -0
  26. package/public/assets/{DeveloperManage-DgwZWjLh.js → DeveloperManage-wTnur24N.js} +2 -2
  27. package/public/assets/DeveloperSetupPage-BMm9F-Bb.js +4 -0
  28. package/public/assets/DocsLayout-Db02r7be.js +41 -0
  29. package/public/assets/DocsPrimitives-DS0DquzY.js +1 -0
  30. package/public/assets/{EditProjectPage-DjGCEool.js → EditProjectPage-f_umSRE8.js} +1 -1
  31. package/public/assets/{EmptyState-C7-kuf8X.js → EmptyState-CF1knXIb.js} +1 -1
  32. package/public/assets/EnvVariablesPage-BG-6sXnf.js +1 -0
  33. package/public/assets/{HomePage-CWYmPB1e.js → HomePage-Dx-CsXKm.js} +1 -1
  34. package/public/assets/InfoRow-DSmNnnLr.js +1 -0
  35. package/public/assets/InstallationPage-BNHwwjLf.js +7 -0
  36. package/public/assets/{LandingPage-ZuEWmIZL.js → LandingPage-D58CYxTa.js} +8 -18
  37. package/public/assets/LocalDevelopmentPage-CyUsNaWH.js +11 -0
  38. package/public/assets/{LoginPage-ZN3nJzEX.js → LoginPage-BkBq-gI2.js} +1 -1
  39. package/public/assets/{MetricBar-CH5ccxZr.js → MetricBar-CTJw2-TT.js} +1 -1
  40. package/public/assets/{NotFoundPage-DkoNgmQ4.js → NotFoundPage-DQOZcvon.js} +1 -1
  41. package/public/assets/{OnboardingGuide-dk4OyOgV.js → OnboardingGuide-CsX3AAYe.js} +1 -1
  42. package/public/assets/PermissionsPage-DV1jB5wk.js +1 -0
  43. package/public/assets/PipelineConfigPage-DWTyDQIr.js +28 -0
  44. package/public/assets/{PipelineEditorPage-CtUnQDef.js → PipelineEditorPage-D3LWtMr2.js} +1 -1
  45. package/public/assets/{ProfilePage-B0CWDm55.js → ProfilePage-BcJ4dzzZ.js} +1 -1
  46. package/public/assets/{ProjectDetailPage-BbOgUrnR.js → ProjectDetailPage-CfnwUUSo.js} +3 -3
  47. package/public/assets/{ProjectListPage-CtGknAYM.js → ProjectListPage-CNotLnBe.js} +1 -1
  48. package/public/assets/{PtyTerminal-C28RQ62I.js → PtyTerminal-BIf7o9cl.js} +12 -7
  49. package/public/assets/{QuickAuth-8eT76fKz.js → QuickAuth-C2UsxqX9.js} +1 -1
  50. package/public/assets/{RemoveMemberConfirmDialog-Ctyx8n2a.js → RemoveMemberConfirmDialog-BX3zkPVv.js} +1 -1
  51. package/public/assets/{Select-8MUED_Fj.js → Select-BaCTjbpe.js} +1 -1
  52. package/public/assets/{SettingsPage-CXDXq71S.js → SettingsPage-DwbzfiSN.js} +1 -1
  53. package/public/assets/{Skeleton-B0x9oN6a.js → Skeleton-wnwOeI39.js} +1 -1
  54. package/public/assets/SkillPage-BLEt2rMu.js +1 -0
  55. package/public/assets/TaskDetailPage-DtwpHF_O.js +21 -0
  56. package/public/assets/{TaskListPage-DMYTWhw_.js → TaskListPage-sy7iLza2.js} +1 -1
  57. package/public/assets/{TaskStatusBadge-yU5DIpkP.js → TaskStatusBadge-Cf0DzE71.js} +1 -1
  58. package/public/assets/TerminalHomePage-BTqi9Axa.js +11 -0
  59. package/public/assets/{TokenManage-NYgoI8yJ.js → TokenManage-DWMXnCDJ.js} +1 -1
  60. package/public/assets/{TotpSetupPage-lw418pBO.js → TotpSetupPage-DHdTMjpN.js} +1 -1
  61. package/public/assets/{WorkerDetailPage-CF7FWzQn.js → WorkerDetailPage-YJUVETFW.js} +1 -1
  62. package/public/assets/WorkerListPage-B-D7X_b1.js +1 -0
  63. package/public/assets/WorkerOperationsPage-BBxYUgIw.js +1 -0
  64. package/public/assets/{WorkerSetupGuidePage-dRLxcC1D.js → WorkerSetupGuidePage-ChzKuXQZ.js} +2 -7
  65. package/public/assets/WorkerSetupPage-B4jlXCjH.js +5 -0
  66. package/public/assets/{arrow-left-D3hlGpFa.js → arrow-left-CclYAeLg.js} +1 -1
  67. package/public/assets/{arrow-right-DbRiIkn5.js → arrow-right-BVGnZmSj.js} +1 -1
  68. package/public/assets/{bot-DJcm4TDu.js → bot-D9xi44vN.js} +1 -1
  69. package/public/assets/{chevron-right-Cz1_0u26.js → chevron-right-BagQ0WTS.js} +1 -1
  70. package/public/assets/{copy-BSpogfAn.js → copy-CFKtBHG3.js} +1 -1
  71. package/public/assets/download-CTnOMUpx.js +6 -0
  72. package/public/assets/{external-link-BYnHDfTq.js → external-link-Bdlp6eLv.js} +1 -1
  73. package/public/assets/index-CVFlBK8x.css +1 -0
  74. package/public/assets/index-uDLAla67.js +225 -0
  75. package/public/assets/{key-B7y18xnM.js → key-9SBu60Mo.js} +1 -1
  76. package/public/assets/{loader-circle-j2WCDelv.js → loader-circle-C3TDU6pb.js} +1 -1
  77. package/public/assets/message-square-CqYt8K2i.js +6 -0
  78. package/public/assets/{pencil-CkuHyqYU.js → pencil-CrcM0dgK.js} +1 -1
  79. package/public/assets/{plus-DETa4kg0.js → plus-DnDLd-iP.js} +1 -1
  80. package/public/assets/{rotate-ccw-oPqSTHU8.js → rotate-ccw-BS27hgv2.js} +1 -1
  81. package/public/assets/{scroll-text--ZQgIRbt.js → scroll-text-BLE2ARXF.js} +1 -1
  82. package/public/assets/{settings-COdENdI-.js → settings-pymAAKeG.js} +1 -1
  83. package/public/assets/{status-colors-C_xltR1x.js → status-colors-BcGt1oBU.js} +1 -1
  84. package/public/assets/{task-constants-BisV3uAk.js → task-constants-G2j8o2ma.js} +1 -1
  85. package/public/assets/{trash-2-BLxwKGg4.js → trash-2-BmckJ_Dj.js} +1 -1
  86. package/public/assets/{useFetch-CKA2R0HW.js → useFetch-DPbqlqsl.js} +1 -1
  87. package/public/assets/{users-Cm06VaAm.js → users-DFQbCvYm.js} +1 -1
  88. package/public/assets/{wifi-CoOrgHWP.js → wifi-DrZKx701.js} +1 -1
  89. package/public/assets/workflow-DTNRYvFx.js +11 -0
  90. package/public/assets/{zap-CZBm69SW.js → zap-D3sq7Jac.js} +1 -1
  91. package/public/index.html +2 -2
  92. package/public/sw.js +1 -1
  93. package/public/assets/AdminPage-DjzkTi-Z.js +0 -1
  94. package/public/assets/BotManage-B4YAKqEk.js +0 -6
  95. package/public/assets/InfoRow-DGZv5P3m.js +0 -1
  96. package/public/assets/SkillPage-CeTlmMdA.js +0 -1
  97. package/public/assets/TaskDetailPage-jyeOPtsb.js +0 -31
  98. package/public/assets/TerminalHomePage-D3Z-uJUx.js +0 -16
  99. package/public/assets/WorkerListPage-Dd6P84ye.js +0 -6
  100. package/public/assets/index-C5ry7bCb.js +0 -225
  101. package/public/assets/index-DBZN6iTO.css +0 -1
@@ -1,7 +1,7 @@
1
- import{c as F,a as D,j as e,s as U,v as E,e as R,u as q,h as K,r as x,P as A,n as B,y as H,g as v}from"./index-C5ry7bCb.js";import{U as J,A as V,R as z}from"./RemoveMemberConfirmDialog-Ctyx8n2a.js";import{b as I}from"./date-BdNtiQTP.js";import{t as G}from"./status-colors-C_xltR1x.js";import{I as o}from"./InfoRow-DGZv5P3m.js";import{u as Q}from"./useFetch-CKA2R0HW.js";import{P as X}from"./pencil-CkuHyqYU.js";import{T as Y}from"./trash-2-BLxwKGg4.js";import{P as Z}from"./plus-DETa4kg0.js";import"./Select-8MUED_Fj.js";/**
1
+ import{c as F,a as D,j as e,s as U,v as E,e as R,u as q,h as K,r as x,y as A,n as z,z as B,g as v}from"./index-uDLAla67.js";import{U as H,A as J,R as V}from"./RemoveMemberConfirmDialog-BX3zkPVv.js";import{b as I}from"./date-BdNtiQTP.js";import{t as G}from"./status-colors-BcGt1oBU.js";import{I as o}from"./InfoRow-DSmNnnLr.js";import{u as Q}from"./useFetch-DPbqlqsl.js";import{P as X}from"./pencil-CrcM0dgK.js";import{T as Y}from"./trash-2-BmckJ_Dj.js";import{P as Z}from"./plus-DnDLd-iP.js";import"./Select-BaCTjbpe.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
- */const ee=F("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);function te({isOpen:n,onClose:l,onConfirm:t,projectName:m,loading:p}){const{t:j}=D();return e.jsx(U,{isOpen:n,onClose:l,onConfirm:t,title:`> ${j("projects.delete_project")}`,message:j("projects.delete_project_confirm",{name:m}),confirmLabel:j("projects.delete_project"),confirmVariant:"danger",isLoading:p})}function me(){const{key:n}=E(),l=R(),{t}=D(),m=q(r=>r.user),p=K(),[j,f]=x.useState(!1),[P,w]=x.useState(!1),[$,_]=x.useState(!1),[c,N]=x.useState(null),[L,k]=x.useState(!1),{data:a,loading:S,error:C,refetch:y}=Q(async()=>{if(!n)throw new Error("Missing project key");const[r,g,u]=await Promise.all([v.get(`web/projects/${n}`).json(),v.get(`web/projects/${n}/members`).json().catch(()=>[]),v.get("web/tasks",{searchParams:{projectKey:n,limit:"20"}}).json().then(O=>O.data).catch(()=>[])]);let b=null;if(r.pipeline)try{b=JSON.parse(r.pipeline)}catch{}return{project:r,members:g,tasks:u,pipelineConfig:b}},[n]),s=(a==null?void 0:a.project)??null,h=(a==null?void 0:a.members)??[],M=(a==null?void 0:a.tasks)??[],d=(a==null?void 0:a.pipelineConfig)??null,i=p||h.some(r=>r.developerId===(m==null?void 0:m.id)&&r.role===A.MAINTAINER);B(x.useMemo(()=>s?e.jsxs(e.Fragment,{children:[i&&e.jsxs("button",{onClick:()=>l(`/projects/${s.key}/edit`),className:"flex items-center gap-1.5 rounded-[4px] border border-[var(--border)] bg-transparent px-3 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[e.jsx(X,{className:"h-3 w-3"}),t("common.edit")]}),p&&e.jsxs("button",{onClick:()=>f(!0),className:"flex items-center gap-1.5 rounded-[4px] border border-[var(--destructive)] bg-transparent px-3 py-1.5 text-xs text-[var(--destructive)] hover:bg-[var(--destructive)] hover:text-white",children:[e.jsx(Y,{className:"h-3 w-3"}),t("common.delete")]})]}):null,[s,i,p,l,t]));async function W(){if(s){w(!0);try{await v.delete(`admin/projects/${s.key}`),l("/projects")}catch{}finally{w(!1),f(!1)}}}async function T(){if(!(!s||!c)){k(!0);try{await v.delete(`web/projects/${s.key}/members`,{searchParams:{developerId:String(c.developerId)}}),await y()}catch{}finally{k(!1),N(null)}}}return S?e.jsx("div",{className:"flex justify-center py-20",children:e.jsx("div",{className:"h-6 w-6 animate-spin rounded-full border-2 border-[var(--border)] border-t-[var(--accent)]"})}):C?e.jsxs("div",{className:"mx-auto max-w-4xl px-4 md:px-6 py-8 text-center",children:[e.jsx("p",{className:"text-sm text-[var(--destructive)]",children:C}),e.jsx("button",{onClick:()=>y(),className:"mt-4 rounded-[4px] border border-[var(--border)] bg-transparent px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:t("common.retry")})]}):s?e.jsxs("div",{className:"mx-auto max-w-6xl px-4 md:px-6 py-8",children:[e.jsxs("div",{className:"mb-2 text-xs text-[var(--text-muted)]",children:[e.jsx("span",{className:"cursor-pointer hover:text-[var(--text-secondary)]",onClick:()=>l("/projects"),children:t("projects.title")})," / ",e.jsx("span",{className:"text-[var(--text-secondary)]",children:s.key})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-[1fr_340px]",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("section",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5",children:[e.jsx("h2",{className:"mb-4 text-sm font-semibold text-[var(--accent)]",children:t("projects.project_info")}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.key"),value:s.key}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.name"),value:s.name}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.repo_url"),value:s.repoUrl,href:s.repoUrl}),s.sshUrl&&e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.ssh_url"),value:s.sshUrl}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.git_platform"),value:s.gitPlatform}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.default_branch"),value:s.defaultBranch}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.agent_type"),value:s.agentType}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.max_turns"),value:String(s.maxTurns)}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.allowed_tools"),value:s.allowedTools??"all"}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.default_project"),value:s.isDefault?"yes":"no"})]})]}),e.jsxs("section",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("h2",{className:"text-sm font-semibold text-[var(--accent)]",children:t("projects.members")}),i&&e.jsxs("button",{onClick:()=>_(!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(Z,{className:"h-3.5 w-3.5"}),t("projects.add_member")]})]}),h.length===0?e.jsxs("div",{className:"flex flex-col items-center gap-3 py-6",children:[e.jsx("span",{className:"text-xl font-bold text-[var(--border)]",children:"[ ]"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:t("projects.no_members_yet")})]}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-row)]",children:[e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.name")}),e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.role")}),e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.added_at")}),i&&e.jsx("th",{className:"pb-2 text-right text-xs font-medium text-[var(--text-muted)]",children:t("common.actions")})]})}),e.jsx("tbody",{children:h.map(r=>e.jsxs("tr",{className:"border-b border-[var(--border-row)] last:border-b-0",children:[e.jsx("td",{className:"py-2.5 text-sm text-[var(--text-primary)]",children:r.developerName??`#${r.developerId}`}),e.jsx("td",{className:"py-2.5 text-sm",style:{color:r.role===A.MAINTAINER?"var(--warning)":"var(--text-secondary)"},children:r.role}),e.jsx("td",{className:"py-2.5 text-sm text-[var(--text-secondary)]",children:I(r.createdAt)}),i&&e.jsx("td",{className:"py-2.5 text-right",children:e.jsx("button",{onClick:()=>N(r),className:"text-[var(--destructive)] hover:underline","aria-label":t("projects.remove_member"),children:e.jsx(J,{className:"h-3.5 w-3.5"})})})]},r.developerId))})]})})]}),e.jsxs("section",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5",children:[e.jsx("h2",{className:"mb-4 text-sm font-semibold text-[var(--accent)]",children:t("projects.recent_tasks")}),M.length===0?e.jsxs("div",{className:"flex flex-col items-center gap-3 py-6",children:[e.jsx("span",{className:"text-xl font-bold text-[var(--border)]",children:"[ ]"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:t("projects.no_tasks_for_project")})]}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-row)]",children:[e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.id")}),e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.description")}),e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.status")}),e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.created")})]})}),e.jsx("tbody",{children:M.map(r=>e.jsxs("tr",{className:"cursor-pointer border-b border-[var(--border-row)] last:border-b-0 hover:bg-[var(--bg-input)]",onClick:()=>l(`/tasks/${r.id}`),children:[e.jsxs("td",{className:"py-2.5 text-sm text-[var(--text-secondary)]",children:["#",r.id]}),e.jsx("td",{className:"max-w-xs truncate py-2.5 text-sm text-[var(--text-primary)]",children:r.description}),e.jsx("td",{className:"py-2.5 text-sm",style:{color:G[r.status]},children:r.status}),e.jsx("td",{className:"py-2.5 text-sm text-[var(--text-secondary)]",children:I(r.createdAt)})]},r.id))})]})})]})]}),e.jsx("div",{children:e.jsxs("section",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5",children:[e.jsx("h2",{className:"mb-4 text-[13px] font-medium text-[var(--accent)]",children:t("projects.pipeline")}),e.jsx("div",{className:"mb-3 h-px bg-[var(--border)]"}),d!=null&&d.stages&&d.stages.length>0?e.jsx("div",{className:"flex flex-col items-center",children:d.stages.map((r,g)=>{var u,b;return e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex items-center justify-between rounded-[4px] bg-[var(--bg-input)] px-3 py-2.5 cursor-pointer hover:bg-[var(--bg-secondary)]",style:{borderLeft:"3px solid var(--accent)"},onClick:()=>l(`/projects/${s.key}/pipeline`),children:[e.jsxs("div",{className:"flex flex-col gap-0.5 min-w-0",children:[e.jsx("span",{className:"text-xs font-medium text-[var(--text-primary)]",children:r.label??r.name}),r.prompt&&e.jsxs("span",{className:"text-[11px] text-[var(--text-muted)] truncate",children:["// ",r.prompt.split(`
7
- `)[0].slice(0,40)]})]}),e.jsx("div",{className:"flex items-center gap-2 shrink-0",children:r.requireConfirm&&e.jsx("span",{className:"rounded-[4px] px-2 py-0.5 text-[11px] font-medium text-[var(--warning)]",style:{backgroundColor:"rgba(245,158,11,0.12)"},children:t("projects.confirm_label")})})]}),((u=r.onFailure)==null?void 0:u.goto)&&e.jsxs("div",{className:"flex items-center justify-center gap-1.5 py-1",children:[e.jsx(H,{className:"h-3 w-3 text-[var(--warning)]"}),e.jsxs("span",{className:"text-[11px] text-[var(--warning)]",children:["onFailure.goto: ",r.onFailure.goto,", maxLoops: ",r.onFailure.maxLoops]})]}),g<d.stages.length-1&&!((b=r.onFailure)!=null&&b.goto)&&e.jsx("div",{className:"flex justify-center py-1",children:e.jsx(ee,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"})})]},r.name)})}):e.jsx("div",{className:"py-6 text-center text-xs text-[var(--text-muted)]",children:t("projects.no_pipeline_configured")}),i&&e.jsx("button",{onClick:()=>l(`/projects/${s.key}/pipeline`),className:"mt-3 flex w-full items-center justify-center gap-1.5 py-2 text-xs text-[var(--accent)] hover:text-[var(--accent)]",children:t("projects.add_stage")})]})})]}),e.jsx(te,{isOpen:j,onClose:()=>f(!1),onConfirm:W,projectName:s.name,loading:P}),e.jsx(V,{isOpen:$,onClose:()=>_(!1),projectKey:s.key,existingMemberIds:h.map(r=>r.developerId),onAdded:y}),e.jsx(z,{isOpen:!!c,onClose:()=>N(null),onConfirm:T,memberName:c?c.developerName??`#${c.developerId}`:"",loading:L})]}):e.jsxs("div",{className:"mx-auto max-w-4xl px-4 md:px-6 py-8 text-center",children:[e.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:t("projects.project_not_found")}),e.jsx("button",{onClick:()=>l("/projects"),className:"mt-4 rounded-[4px] border border-[var(--border)] bg-transparent px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:t("projects.back_to_projects")})]})}export{me as default};
6
+ */const ee=F("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);function te({isOpen:n,onClose:l,onConfirm:t,projectName:m,loading:p}){const{t:j}=D();return e.jsx(U,{isOpen:n,onClose:l,onConfirm:t,title:`> ${j("projects.delete_project")}`,message:j("projects.delete_project_confirm",{name:m}),confirmLabel:j("projects.delete_project"),confirmVariant:"danger",isLoading:p})}function me(){const{key:n}=E(),l=R(),{t}=D(),m=q(r=>r.user),p=K(),[j,f]=x.useState(!1),[P,w]=x.useState(!1),[$,_]=x.useState(!1),[c,N]=x.useState(null),[L,k]=x.useState(!1),{data:a,loading:S,error:C,refetch:y}=Q(async()=>{if(!n)throw new Error("Missing project key");const[r,g,u]=await Promise.all([v.get(`web/projects/${n}`).json(),v.get(`web/projects/${n}/members`).json().catch(()=>[]),v.get("web/tasks",{searchParams:{projectKey:n,limit:"20"}}).json().then(O=>O.data).catch(()=>[])]);let b=null;if(r.pipeline)try{b=JSON.parse(r.pipeline)}catch{}return{project:r,members:g,tasks:u,pipelineConfig:b}},[n]),s=(a==null?void 0:a.project)??null,h=(a==null?void 0:a.members)??[],M=(a==null?void 0:a.tasks)??[],d=(a==null?void 0:a.pipelineConfig)??null,i=p||h.some(r=>r.developerId===(m==null?void 0:m.id)&&r.role===A.MAINTAINER);z(x.useMemo(()=>s?e.jsxs(e.Fragment,{children:[i&&e.jsxs("button",{onClick:()=>l(`/projects/${s.key}/edit`),className:"flex items-center gap-1.5 rounded-[4px] border border-[var(--border)] bg-transparent px-3 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:[e.jsx(X,{className:"h-3 w-3"}),t("common.edit")]}),p&&e.jsxs("button",{onClick:()=>f(!0),className:"flex items-center gap-1.5 rounded-[4px] border border-[var(--destructive)] bg-transparent px-3 py-1.5 text-xs text-[var(--destructive)] hover:bg-[var(--destructive)] hover:text-white",children:[e.jsx(Y,{className:"h-3 w-3"}),t("common.delete")]})]}):null,[s,i,p,l,t]));async function W(){if(s){w(!0);try{await v.delete(`admin/projects/${s.key}`),l("/projects")}catch{}finally{w(!1),f(!1)}}}async function T(){if(!(!s||!c)){k(!0);try{await v.delete(`web/projects/${s.key}/members`,{searchParams:{developerId:String(c.developerId)}}),await y()}catch{}finally{k(!1),N(null)}}}return S?e.jsx("div",{className:"flex justify-center py-20",children:e.jsx("div",{className:"h-6 w-6 animate-spin rounded-full border-2 border-[var(--border)] border-t-[var(--accent)]"})}):C?e.jsxs("div",{className:"mx-auto max-w-4xl px-4 md:px-6 py-8 text-center",children:[e.jsx("p",{className:"text-sm text-[var(--destructive)]",children:C}),e.jsx("button",{onClick:()=>y(),className:"mt-4 rounded-[4px] border border-[var(--border)] bg-transparent px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:t("common.retry")})]}):s?e.jsxs("div",{className:"mx-auto max-w-6xl px-4 md:px-6 py-8",children:[e.jsxs("div",{className:"mb-2 text-xs text-[var(--text-muted)]",children:[e.jsx("span",{className:"cursor-pointer hover:text-[var(--text-secondary)]",onClick:()=>l("/projects"),children:t("projects.title")})," / ",e.jsx("span",{className:"text-[var(--text-secondary)]",children:s.key})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-[1fr_340px]",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("section",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5",children:[e.jsx("h2",{className:"mb-4 text-sm font-semibold text-[var(--accent)]",children:t("projects.project_info")}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.key"),value:s.key}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.name"),value:s.name}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.repo_url"),value:s.repoUrl,href:s.repoUrl}),s.sshUrl&&e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.ssh_url"),value:s.sshUrl}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.git_platform"),value:s.gitPlatform}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.default_branch"),value:s.defaultBranch}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.agent_type"),value:s.agentType}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.max_turns"),value:String(s.maxTurns)}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.allowed_tools"),value:s.allowedTools??"all"}),e.jsx(o,{variant:"fixed-label",labelWidth:"w-32",label:t("projects.default_project"),value:s.isDefault?"yes":"no"})]})]}),e.jsxs("section",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("h2",{className:"text-sm font-semibold text-[var(--accent)]",children:t("projects.members")}),i&&e.jsxs("button",{onClick:()=>_(!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(Z,{className:"h-3.5 w-3.5"}),t("projects.add_member")]})]}),h.length===0?e.jsxs("div",{className:"flex flex-col items-center gap-3 py-6",children:[e.jsx("span",{className:"text-xl font-bold text-[var(--border)]",children:"[ ]"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:t("projects.no_members_yet")})]}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-row)]",children:[e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.name")}),e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.role")}),e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.added_at")}),i&&e.jsx("th",{className:"pb-2 text-right text-xs font-medium text-[var(--text-muted)]",children:t("common.actions")})]})}),e.jsx("tbody",{children:h.map(r=>e.jsxs("tr",{className:"border-b border-[var(--border-row)] last:border-b-0",children:[e.jsx("td",{className:"py-2.5 text-sm text-[var(--text-primary)]",children:r.developerName??`#${r.developerId}`}),e.jsx("td",{className:"py-2.5 text-sm",style:{color:r.role===A.MAINTAINER?"var(--warning)":"var(--text-secondary)"},children:r.role}),e.jsx("td",{className:"py-2.5 text-sm text-[var(--text-secondary)]",children:I(r.createdAt)}),i&&e.jsx("td",{className:"py-2.5 text-right",children:e.jsx("button",{onClick:()=>N(r),className:"text-[var(--destructive)] hover:underline","aria-label":t("projects.remove_member"),children:e.jsx(H,{className:"h-3.5 w-3.5"})})})]},r.developerId))})]})})]}),e.jsxs("section",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5",children:[e.jsx("h2",{className:"mb-4 text-sm font-semibold text-[var(--accent)]",children:t("projects.recent_tasks")}),M.length===0?e.jsxs("div",{className:"flex flex-col items-center gap-3 py-6",children:[e.jsx("span",{className:"text-xl font-bold text-[var(--border)]",children:"[ ]"}),e.jsx("span",{className:"text-xs text-[var(--text-muted)]",children:t("projects.no_tasks_for_project")})]}):e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-[var(--border-row)]",children:[e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.id")}),e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.description")}),e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.status")}),e.jsx("th",{className:"pb-2 text-left text-xs font-medium text-[var(--text-muted)]",children:t("projects.created")})]})}),e.jsx("tbody",{children:M.map(r=>e.jsxs("tr",{className:"cursor-pointer border-b border-[var(--border-row)] last:border-b-0 hover:bg-[var(--bg-input)]",onClick:()=>l(`/tasks/${r.id}`),children:[e.jsxs("td",{className:"py-2.5 text-sm text-[var(--text-secondary)]",children:["#",r.id]}),e.jsx("td",{className:"max-w-xs truncate py-2.5 text-sm text-[var(--text-primary)]",children:r.description}),e.jsx("td",{className:"py-2.5 text-sm",style:{color:G[r.status]},children:r.status}),e.jsx("td",{className:"py-2.5 text-sm text-[var(--text-secondary)]",children:I(r.createdAt)})]},r.id))})]})})]})]}),e.jsx("div",{children:e.jsxs("section",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5",children:[e.jsx("h2",{className:"mb-4 text-[13px] font-medium text-[var(--accent)]",children:t("projects.pipeline")}),e.jsx("div",{className:"mb-3 h-px bg-[var(--border)]"}),d!=null&&d.stages&&d.stages.length>0?e.jsx("div",{className:"flex flex-col items-center",children:d.stages.map((r,g)=>{var u,b;return e.jsxs("div",{className:"w-full",children:[e.jsxs("div",{className:"flex items-center justify-between rounded-[4px] bg-[var(--bg-input)] px-3 py-2.5 cursor-pointer hover:bg-[var(--bg-secondary)]",style:{borderLeft:"3px solid var(--accent)"},onClick:()=>l(`/projects/${s.key}/pipeline`),children:[e.jsxs("div",{className:"flex flex-col gap-0.5 min-w-0",children:[e.jsx("span",{className:"text-xs font-medium text-[var(--text-primary)]",children:r.label??r.name}),r.prompt&&e.jsxs("span",{className:"text-[11px] text-[var(--text-muted)] truncate",children:["// ",r.prompt.split(`
7
+ `)[0].slice(0,40)]})]}),e.jsx("div",{className:"flex items-center gap-2 shrink-0",children:r.requireConfirm&&e.jsx("span",{className:"rounded-[4px] px-2 py-0.5 text-[11px] font-medium text-[var(--warning)]",style:{backgroundColor:"rgba(245,158,11,0.12)"},children:t("projects.confirm_label")})})]}),((u=r.onFailure)==null?void 0:u.goto)&&e.jsxs("div",{className:"flex items-center justify-center gap-1.5 py-1",children:[e.jsx(B,{className:"h-3 w-3 text-[var(--warning)]"}),e.jsxs("span",{className:"text-[11px] text-[var(--warning)]",children:["onFailure.goto: ",r.onFailure.goto,", maxLoops: ",r.onFailure.maxLoops]})]}),g<d.stages.length-1&&!((b=r.onFailure)!=null&&b.goto)&&e.jsx("div",{className:"flex justify-center py-1",children:e.jsx(ee,{className:"h-3.5 w-3.5 text-[var(--text-muted)]"})})]},r.name)})}):e.jsx("div",{className:"py-6 text-center text-xs text-[var(--text-muted)]",children:t("projects.no_pipeline_configured")}),i&&e.jsx("button",{onClick:()=>l(`/projects/${s.key}/pipeline`),className:"mt-3 flex w-full items-center justify-center gap-1.5 py-2 text-xs text-[var(--accent)] hover:text-[var(--accent)]",children:t("projects.add_stage")})]})})]}),e.jsx(te,{isOpen:j,onClose:()=>f(!1),onConfirm:W,projectName:s.name,loading:P}),e.jsx(J,{isOpen:$,onClose:()=>_(!1),projectKey:s.key,existingMemberIds:h.map(r=>r.developerId),onAdded:y}),e.jsx(V,{isOpen:!!c,onClose:()=>N(null),onConfirm:T,memberName:c?c.developerName??`#${c.developerId}`:"",loading:L})]}):e.jsxs("div",{className:"mx-auto max-w-4xl px-4 md:px-6 py-8 text-center",children:[e.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:t("projects.project_not_found")}),e.jsx("button",{onClick:()=>l("/projects"),className:"mt-4 rounded-[4px] border border-[var(--border)] bg-transparent px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)]",children:t("projects.back_to_projects")})]})}export{me as default};
@@ -1,4 +1,4 @@
1
- import{c as R,a as z,r as o,G as u,A as x,j as e,g as E,e as G,n as I}from"./index-C5ry7bCb.js";import{S as A}from"./Select-8MUED_Fj.js";import{E as M}from"./EmptyState-C7-kuf8X.js";import{T as D}from"./Skeleton-B0x9oN6a.js";import{t as H}from"./date-BdNtiQTP.js";import{u as O}from"./useFetch-CKA2R0HW.js";import{P as J}from"./plus-DETa4kg0.js";/**
1
+ import{c as R,a as z,r as o,G as u,A as x,j as e,g as E,e as G,n as I}from"./index-uDLAla67.js";import{S as A}from"./Select-BaCTjbpe.js";import{E as M}from"./EmptyState-CF1knXIb.js";import{T as D}from"./Skeleton-wnwOeI39.js";import{t as H}from"./date-BdNtiQTP.js";import{u as O}from"./useFetch-DPbqlqsl.js";import{P as J}from"./plus-DnDLd-iP.js";/**
2
2
  * @license lucide-react v0.469.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.