@overlordai/server 1.0.155 → 1.0.156
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.
- package/dist/dispatcher/dedup.service.d.ts +1 -0
- package/dist/dispatcher/dedup.service.d.ts.map +1 -1
- package/dist/dispatcher/dedup.service.js +15 -2
- package/dist/dispatcher/dedup.service.js.map +1 -1
- package/package.json +4 -4
- package/public/assets/{AccessTokensPage-BXA1_VCq.js → AccessTokensPage-EcufMrqQ.js} +1 -1
- package/public/assets/{AdminPage-7yOqUUTe.js → AdminPage-CQJEunib.js} +1 -1
- package/public/assets/{AgentCliPage-Bm-F3jFK.js → AgentCliPage-CHXKAezy.js} +1 -1
- package/public/assets/{ApiReferencePage-C64FX9LI.js → ApiReferencePage-m8Y8Jmsp.js} +1 -1
- package/public/assets/{ArchitecturePage-Cnw1gdwf.js → ArchitecturePage-BJ6PBd-x.js} +1 -1
- package/public/assets/{AuditLogPage-4EIxv0de.js → AuditLogPage-CCL1RS9j.js} +1 -1
- package/public/assets/{AutomationCreatePage-BnNbgVLp.js → AutomationCreatePage-CErECT2L.js} +1 -1
- package/public/assets/{AutomationDetailPage-Cfh080WI.js → AutomationDetailPage-DIOtceFT.js} +1 -1
- package/public/assets/{AutomationEditPage-5x0iAqBw.js → AutomationEditPage-CzWiCiMb.js} +1 -1
- package/public/assets/{AutomationListPage-ClpMg9LH.js → AutomationListPage-DGhPivoQ.js} +1 -1
- package/public/assets/{AutomationRunDetailPage-kJFqJVup.js → AutomationRunDetailPage-JWEh3Dmw.js} +1 -1
- package/public/assets/{BindPlatformPage-Gyn6rEdN.js → BindPlatformPage-B7lTBiP1.js} +1 -1
- package/public/assets/{BotIntegrationPage-CR1En2mF.js → BotIntegrationPage-DM9tuM8c.js} +1 -1
- package/public/assets/{BotManage-CCKVNTiM.js → BotManage-DJUPDyQX.js} +1 -1
- package/public/assets/{BotSetupPage-DYXahL1K.js → BotSetupPage-DIwse0bQ.js} +1 -1
- package/public/assets/{ChangelogPage-B4y9PKNr.js → ChangelogPage-CNR3BRon.js} +1 -1
- package/public/assets/{CliReferencePage-DMn74aJi.js → CliReferencePage-Di_w2Vr7.js} +1 -1
- package/public/assets/{ConfirmStageDialog-JkHyx3fw.js → ConfirmStageDialog-CmoZUlat.js} +1 -1
- package/public/assets/{DeploymentPage-BryipyKH.js → DeploymentPage-Cak7ckNj.js} +1 -1
- package/public/assets/{DevWorkflowPage-BN4eNkZ-.js → DevWorkflowPage-3ad7P1Yf.js} +1 -1
- package/public/assets/{DeveloperManage-PQlwFLHp.js → DeveloperManage-CCi1fODM.js} +1 -1
- package/public/assets/{DeveloperSetupPage-FeS5IvR5.js → DeveloperSetupPage-DNZVMyVV.js} +1 -1
- package/public/assets/{DocsIndexPage-B5FOHFU8.js → DocsIndexPage-BlfaO_-d.js} +1 -1
- package/public/assets/{DocsLayout-CP3dgoNJ.js → DocsLayout-SX_0PRjZ.js} +1 -1
- package/public/assets/{DocsPrimitives-Bv7R1z-x.js → DocsPrimitives-D8VRK-kO.js} +1 -1
- package/public/assets/{EditProjectPage-BGQgUEMO.js → EditProjectPage-DjGSIgrd.js} +1 -1
- package/public/assets/{EmptyState-Dlw8DXoS.js → EmptyState-DfpjyUvi.js} +1 -1
- package/public/assets/{EnvVariablesPage-HQuALoL0.js → EnvVariablesPage-B3eYwD_j.js} +1 -1
- package/public/assets/{HomePage-E6R1UYzd.js → HomePage-C0HQQFes.js} +1 -1
- package/public/assets/{InfoRow-PAm6OD0r.js → InfoRow-Czt7UG6F.js} +1 -1
- package/public/assets/{InstallationPage-_TkNduF2.js → InstallationPage-CchbXhv7.js} +1 -1
- package/public/assets/{LandingPage-Du_zyv0G.js → LandingPage-1mLfr329.js} +1 -1
- package/public/assets/{LocalDevelopmentPage-BBylZjJl.js → LocalDevelopmentPage-2L-RG5HP.js} +1 -1
- package/public/assets/{LoginPage-BnCxxVUr.js → LoginPage-DpjMyWqA.js} +1 -1
- package/public/assets/{MetricBar-CEJOwoO6.js → MetricBar-8evw4w8G.js} +1 -1
- package/public/assets/{MultiSelect-BN3ZeneX.js → MultiSelect-DSTlA0Vg.js} +1 -1
- package/public/assets/{NotFoundPage-BPeTD-BH.js → NotFoundPage-BP5L7fcf.js} +1 -1
- package/public/assets/{OnboardingGuide-km4jEWoE.js → OnboardingGuide-P_OoFtBB.js} +1 -1
- package/public/assets/{PermissionsPage-D4KRpio2.js → PermissionsPage-D6Jom6dW.js} +1 -1
- package/public/assets/{PipelineConfigPage-BMJC5bBm.js → PipelineConfigPage-VnRP0w6T.js} +1 -1
- package/public/assets/{PipelineEditorPage-DuVVWFpY.js → PipelineEditorPage-C8sNHbO8.js} +1 -1
- package/public/assets/{PlanPage-C10eKc1o.js → PlanPage-BdWAVFdJ.js} +1 -1
- package/public/assets/{ProfilePage-CTwDz0iE.js → ProfilePage-CVd2fAku.js} +1 -1
- package/public/assets/{ProjectDetailPage-Bdh0Owyc.js → ProjectDetailPage-Dw-_MliO.js} +1 -1
- package/public/assets/{ProjectListPage-DOuKMd33.js → ProjectListPage-D6pQCP2I.js} +1 -1
- package/public/assets/{PtyTerminal-DR7t6lKq.js → PtyTerminal-Bm1ilY94.js} +1 -1
- package/public/assets/{QuickAuth-IGWNKr5J.js → QuickAuth-5w49sX_9.js} +1 -1
- package/public/assets/{RemoveMemberConfirmDialog-BjmljBNo.js → RemoveMemberConfirmDialog-CGrZxV6w.js} +1 -1
- package/public/assets/{ReviewAggregatePage-BulnH3e4.js → ReviewAggregatePage-C_pr-cTO.js} +1 -1
- package/public/assets/{ReviewPage-TUmUl54F.js → ReviewPage-ZTr6dy1H.js} +1 -1
- package/public/assets/{Select-ZRV-96wd.js → Select-C3Kl_xvq.js} +1 -1
- package/public/assets/{SettingsPage-CzDQBnnO.js → SettingsPage-Bg7ml4s_.js} +1 -1
- package/public/assets/{Skeleton-Ibfop_C_.js → Skeleton-D4hIl9Le.js} +1 -1
- package/public/assets/{SkillPage-CZHskqEL.js → SkillPage-8aoKox7Z.js} +1 -1
- package/public/assets/{TaskDetailPage-DEO3bKeb.js → TaskDetailPage-C5iTgTAq.js} +2 -2
- package/public/assets/{TaskGuidePage-DhHPc9rU.js → TaskGuidePage-CEt8MnwI.js} +1 -1
- package/public/assets/{TaskListPage-CsfovBa0.js → TaskListPage-Cxjb5OL5.js} +1 -1
- package/public/assets/{TaskStatusBadge-BEP7iIji.js → TaskStatusBadge-n1Lmch1t.js} +1 -1
- package/public/assets/TerminalHomePage-D0z7AQrJ.js +6 -0
- package/public/assets/{TokenManage-Bl2EDsUf.js → TokenManage-WCmQaUoy.js} +1 -1
- package/public/assets/{Tooltip-UN2a6oLr.js → Tooltip-BztbRI3_.js} +1 -1
- package/public/assets/{TotpSetupPage-Cd6vK9QH.js → TotpSetupPage-ff5437-N.js} +1 -1
- package/public/assets/{WorkerDetailPage-CfvhC7b1.js → WorkerDetailPage-owp96p2u.js} +1 -1
- package/public/assets/{WorkerListPage-CD6kiLqL.js → WorkerListPage-CoI6nhvb.js} +1 -1
- package/public/assets/{WorkerOperationsPage-SxSg0Trc.js → WorkerOperationsPage-SPY7c7XX.js} +1 -1
- package/public/assets/{WorkerSetupGuidePage-DEg3NRgy.js → WorkerSetupGuidePage-DDuxh9Sc.js} +1 -1
- package/public/assets/{WorkerSetupPage-D3TZfdgu.js → WorkerSetupPage-BDgTvKs2.js} +1 -1
- package/public/assets/{agent-type-options-D7fqFcGk.js → agent-type-options-p1tH-Kcc.js} +1 -1
- package/public/assets/{arrow-left-B1mCk_qj.js → arrow-left-IMmiqNmm.js} +1 -1
- package/public/assets/{arrow-right-C8s53CLG.js → arrow-right-BOZCuyZB.js} +1 -1
- package/public/assets/{bot-CzLFCLZZ.js → bot-C4hSv-gW.js} +1 -1
- package/public/assets/{chevron-down-D7BGO3m7.js → chevron-down-CbnHKl5e.js} +1 -1
- package/public/assets/{chevron-left-BE8Q-xOd.js → chevron-left-CPLnASn1.js} +1 -1
- package/public/assets/{chevron-right-DDD7tmjh.js → chevron-right-Dz6bwKdg.js} +1 -1
- package/public/assets/{chevron-up-OnanTZeg.js → chevron-up-D7WFayA3.js} +1 -1
- package/public/assets/{circle-alert-DUNqrccV.js → circle-alert-Bc0_GlfI.js} +1 -1
- package/public/assets/{clock-DbIwbPMD.js → clock-D1JApOFi.js} +1 -1
- package/public/assets/{copy-BEHh73E0.js → copy-BG1gOxig.js} +1 -1
- package/public/assets/{download-CCv-DQno.js → download-5p6GuALo.js} +1 -1
- package/public/assets/{external-link-iW49-1O8.js → external-link-Beu7KLy4.js} +1 -1
- package/public/assets/{git-fork-CPi2HXkl.js → git-fork-BQcDVpFH.js} +1 -1
- package/public/assets/{index-C55BV6IU.js → index-C7ov95n_.js} +2 -2
- package/public/assets/{key-C0eEzddZ.js → key-BE9Gsqm_.js} +1 -1
- package/public/assets/{loader-circle-C9W7Kkmp.js → loader-circle-yXvWCaBR.js} +1 -1
- package/public/assets/{pencil-DM4WiydP.js → pencil-DzahKM5O.js} +1 -1
- package/public/assets/{play-XIAOKPOe.js → play-8EsQZf8O.js} +1 -1
- package/public/assets/{plus-aPE7t69K.js → plus-mUwKUEYN.js} +1 -1
- package/public/assets/{rotate-ccw-B1NZ8hui.js → rotate-ccw-Da2N8-_y.js} +1 -1
- package/public/assets/{scroll-text-C6aPaLdU.js → scroll-text-DstzkbI6.js} +1 -1
- package/public/assets/{settings-DU4r9yO_.js → settings-D9sT0Wup.js} +1 -1
- package/public/assets/{skip-forward-BFFIAkmw.js → skip-forward-DP8t4aLx.js} +1 -1
- package/public/assets/{status-colors-CKaMKK3r.js → status-colors-CydKgJJI.js} +1 -1
- package/public/assets/{task-constants-iMyT85iC.js → task-constants-Bz3M3E7B.js} +1 -1
- package/public/assets/{task.store-BmQY3VtF.js → task.store-IrYERfeU.js} +1 -1
- package/public/assets/{timer-Y3xtDXXc.js → timer-DFL8-1C4.js} +1 -1
- package/public/assets/{trash-2-CqjHsIl5.js → trash-2-C_Q58aM2.js} +1 -1
- package/public/assets/{useFetch-D6eIscLa.js → useFetch-6TTZQjqE.js} +1 -1
- package/public/assets/{users-yPg1FtvE.js → users-2CfRzYZU.js} +1 -1
- package/public/assets/{wifi-NKRWjZy9.js → wifi-YQ5JgVLZ.js} +1 -1
- package/public/assets/{workflow-DesQkcwb.js → workflow-DstMM8ES.js} +1 -1
- package/public/assets/{zap-srWWfcFf.js → zap-Bq9h_pSQ.js} +1 -1
- package/public/index.html +1 -1
- package/public/sw.js +1 -1
- package/public/assets/TerminalHomePage-DTWM1EQJ.js +0 -6
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as g,r as p,j as e,$ as P,A as I,f as M,h as S,t as y}from"./index-
|
|
1
|
+
import{a as g,r as p,j as e,$ as P,A as I,f as M,h as S,t as y}from"./index-C7ov95n_.js";import{S as C}from"./Select-C3Kl_xvq.js";import"./chevron-down-CbnHKl5e.js";const O={stages:[]};function q(){return{name:"",prompt:""}}function b({children:t}){return e.jsx("label",{className:"mb-1 block font-mono text-[11px] text-[var(--text-secondary)]",children:t})}function j({value:t,onChange:o,placeholder:a,type:r="text",className:c=""}){return e.jsx("input",{type:r,value:t,onChange:s=>o(s.target.value),placeholder:a,className:`w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-primary)] px-2.5 py-1.5 font-mono text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:border-[var(--accent)] focus:outline-none ${c}`})}function J({checked:t,onChange:o}){return e.jsx("button",{type:"button",role:"switch","aria-checked":t,onClick:()=>o(!t),className:`relative inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border border-[var(--border)] transition-colors ${t?"bg-[var(--accent)]":"bg-[var(--bg-primary)]"}`,children:e.jsx("span",{className:`inline-block h-3.5 w-3.5 rounded-full bg-white shadow transition-transform ${t?"translate-x-[18px]":"translate-x-[2px]"}`})})}function N({value:t,onChange:o,placeholder:a,rows:r=4}){return e.jsx("textarea",{value:t,onChange:c=>o(c.target.value),placeholder:a,rows:r,className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-primary)] px-2.5 py-1.5 font-mono text-xs leading-relaxed text-[var(--text-primary)] placeholder:text-[var(--text-muted)] focus:border-[var(--accent)] focus:outline-none"})}function T({stage:t,index:o,selected:a,onSelect:r,onDelete:c}){const{t:s}=g(),i=t.prompt?P(t.prompt,60):"";return e.jsxs("div",{role:"button",tabIndex:0,onClick:r,onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),r())},className:`group relative flex w-full items-start gap-3 rounded-[4px] border px-4 py-3 text-left transition-colors ${a?"border-[var(--accent)] bg-[var(--bg-card)]":"border-[var(--border)] bg-[var(--bg-card)] hover:border-[var(--text-muted)]"}`,style:{borderLeftWidth:3,borderLeftColor:"var(--accent)"},children:[e.jsx("span",{className:"mt-0.5 shrink-0 font-mono text-[11px] text-[var(--text-muted)]",children:String(o+1).padStart(2,"0")}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"truncate font-mono text-xs font-bold text-[var(--text-primary)]",children:t.name||"unnamed"}),t.label&&e.jsx("span",{className:"truncate font-mono text-[11px] text-[var(--text-muted)]",children:t.label})]}),i&&e.jsxs("div",{className:"mt-0.5 truncate font-mono text-[11px] text-[var(--text-muted)]",children:["// ",i]}),e.jsxs("div",{className:"mt-1 flex items-center gap-2 font-mono text-[11px] text-[var(--text-muted)]",children:[t.gate&&e.jsx("span",{children:"gate"}),t.requireConfirm&&e.jsx("span",{children:"confirm"}),t.timeout!=null&&e.jsxs("span",{children:["timeout:",t.timeout,"s"]})]})]}),e.jsx("button",{type:"button",onClick:d=>{d.stopPropagation(),c()},className:"mt-0.5 shrink-0 rounded-[4px] p-0.5 text-[var(--text-muted)] opacity-0 transition-opacity hover:text-[var(--destructive)] group-hover:opacity-100","aria-label":s("pipeline.delete_stage"),children:e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("polyline",{points:"3 6 5 6 21 6"}),e.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})]})}function _({stage:t,onChange:o,allStageNames:a}){const{t:r}=g(),c=p.useMemo(()=>{const s=[{value:"",label:"-- select --"}];for(const i of a)i&&i!==t.name&&s.push({value:i,label:i});return s},[a,t.name]);return e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"font-mono text-sm font-semibold text-[var(--accent)]",children:r("pipeline.stage_properties")}),e.jsx("p",{className:"font-mono text-[11px] text-[var(--text-muted)]",children:r("pipeline.editing",{name:t.name||r("pipeline.unnamed")})}),e.jsxs("div",{children:[e.jsxs(b,{children:[r("pipeline.name")," *"]}),e.jsx(j,{value:t.name,onChange:s=>o({name:s}),placeholder:r("pipeline.stage_name")})]}),e.jsxs("div",{children:[e.jsx(b,{children:"label"}),e.jsx(j,{value:t.label??"",onChange:s=>o({label:s||void 0}),placeholder:"optional display label"})]}),e.jsxs("div",{children:[e.jsx(b,{children:"prompt *"}),e.jsx(N,{value:t.prompt,onChange:s=>o({prompt:s}),placeholder:"instructions for the agent...",rows:8})]}),e.jsxs("div",{children:[e.jsx(b,{children:"gate"}),e.jsx(j,{value:t.gate??"",onChange:s=>o({gate:s||void 0}),placeholder:"Pass condition, e.g.: no P1-P3 issues"})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(b,{children:r("pipeline.confirm_required")}),e.jsx(J,{checked:t.requireConfirm??!1,onChange:s=>o({requireConfirm:s})})]}),e.jsxs("div",{children:[e.jsx(b,{children:r("pipeline.timeout")}),e.jsx(j,{type:"number",value:String(t.timeout??""),onChange:s=>o({timeout:s?parseInt(s,10):void 0}),placeholder:"600"})]}),e.jsxs("div",{className:"border-t border-[var(--border)] pt-3",children:[e.jsx("p",{className:"mb-3 font-mono text-[11px] text-[var(--text-muted)]",children:r("pipeline.on_failure_section")}),e.jsxs("div",{className:"mb-3",children:[e.jsx(b,{children:r("pipeline.on_failure")}),e.jsx(C,{value:t.onFailure?"goto":"stop",onChange:s=>{o(s==="stop"?{onFailure:void 0}:{onFailure:{goto:"",maxLoops:3}})},options:[{value:"stop",label:r("pipeline.stop")},{value:"goto",label:r("pipeline.goto_stage")}]})]}),t.onFailure&&e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx(b,{children:r("pipeline.goto")}),e.jsx(C,{value:t.onFailure.goto,onChange:s=>{var i;return o({onFailure:{goto:s,maxLoops:((i=t.onFailure)==null?void 0:i.maxLoops)??3}})},options:c})]}),e.jsxs("div",{children:[e.jsx(b,{children:r("pipeline.max_loops")}),e.jsx(j,{type:"number",value:String(t.onFailure.maxLoops),onChange:s=>{var i;return o({onFailure:{goto:((i=t.onFailure)==null?void 0:i.goto)??"",maxLoops:s?parseInt(s,10):3}})},placeholder:"3"})]})]})]}),e.jsxs("div",{className:"border-t border-[var(--border)] pt-3",children:[e.jsx("h4",{className:"mb-2 font-mono text-xs font-semibold text-[var(--accent)]",children:"params"}),e.jsx(N,{value:t.params?Object.entries(t.params).map(([s,i])=>`${s}=${i}`).join(`
|
|
2
2
|
`):"",onChange:s=>{if(!s.trim()){o({params:void 0});return}const i={};s.split(`
|
|
3
3
|
`).forEach(d=>{const l=d.indexOf("=");l>0&&(i[d.slice(0,l).trim()]=d.slice(l+1).trim())}),o({params:i})},placeholder:"KEY=value (one per line)",rows:3})]})]})}function D({value:t,onChange:o}){const[a,r]=p.useState(t.trim().length>0);return p.useEffect(()=>{!a&&t.trim().length>0&&r(!0)},[t,a]),e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:[e.jsxs("button",{type:"button",onClick:()=>r(c=>!c),className:"flex w-full items-center justify-between px-4 py-3 text-left font-mono text-xs font-semibold text-[var(--accent)]",children:[e.jsx("span",{children:"preamble"}),e.jsx("span",{className:"text-[11px] text-[var(--text-muted)]",children:a?"[-]":"[+]"})]}),a&&e.jsx("div",{className:"border-t border-[var(--border)] px-4 py-3",children:e.jsx(N,{value:t,onChange:o,placeholder:"Global pre-prompt injected before all stages",rows:4})})]})}function A({value:t,onChange:o}){const{t:a}=g(),[r,c]=p.useState(null),[s,i]=p.useState(!1),d=p.useMemo(()=>t??O,[t]),l=d.stages,h=r!=null?l[r]??null:null,f=p.useMemo(()=>l.map(n=>n.name),[l]),v=p.useCallback(n=>{o({...d,stages:n})},[o,d]),F=p.useCallback(()=>{const n=[...l,q()];v(n),c(n.length-1)},[l,v]),E=p.useCallback(n=>{const x=l.filter((m,u)=>u!==n);v(x),r===n?c(x.length>0?Math.min(n,x.length-1):null):r!=null&&r>n&&c(r-1)},[l,r,v]),w=p.useCallback((n,x)=>{const m=l.map((u,L)=>L===n?{...u,...x}:u);v(m)},[l,v]),k=p.useCallback((n,x)=>{const m=x==="up"?n-1:n+1;if(m<0||m>=l.length)return;const u=[...l];[u[n],u[m]]=[u[m],u[n]],v(u),r===n?c(m):r===m&&c(n)},[l,r,v]),$=p.useMemo(()=>JSON.stringify(d,null,2),[d]);return e.jsxs("div",{className:"flex flex-col gap-0",children:[e.jsx("div",{className:"mb-4 flex items-center gap-2",children:e.jsxs("button",{type:"button",onClick:()=>i(n=>!n),className:`rounded-[4px] border px-2 py-1 font-mono text-[11px] transition-colors ${s?"border-[var(--accent)] text-[var(--accent)]":"border-[var(--border)] text-[var(--text-muted)] hover:text-[var(--text-primary)]"}`,children:[a("pipeline.json_toggle")," ⇅"]})}),s&&e.jsx("pre",{className:"mb-4 max-h-[400px] overflow-auto rounded-[4px] border border-[var(--border)] bg-[var(--bg-primary)] p-3 font-mono text-[11px] leading-relaxed text-[var(--text-primary)]",children:$}),e.jsx("div",{className:"mb-4",children:e.jsx(D,{value:d.preamble??"",onChange:n=>o({...d,preamble:n||void 0})})}),e.jsxs("div",{className:"flex gap-6",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[l.map((n,x)=>{var m;return e.jsxs("div",{children:[e.jsx(T,{stage:n,index:x,selected:r===x,onSelect:()=>c(x),onDelete:()=>E(x)}),x<l.length-1&&e.jsxs("div",{className:"flex items-center justify-center gap-2 py-2",children:[e.jsx("div",{className:"h-6 w-px bg-[var(--border)]"}),e.jsx("span",{className:"text-[11px] text-[var(--text-muted)]",children:"▼"}),e.jsx("div",{className:"h-6 w-px bg-[var(--border)]"})]}),((m=n.onFailure)==null?void 0:m.goto)&&e.jsx("div",{className:"flex items-center justify-center gap-1.5 py-1",children:e.jsxs("span",{className:"text-[11px] text-[var(--warning)]",children:["↺ loop → ",n.onFailure.goto," (max ",n.onFailure.maxLoops,")"]})})]},`${x}-${n.name}`)}),r!=null&&l.length>1&&e.jsxs("div",{className:"flex items-center gap-1 pl-7 pt-2",children:[e.jsxs("button",{type:"button",disabled:r===0,onClick:()=>k(r,"up"),className:"rounded-[4px] border border-[var(--border)] px-2 py-0.5 font-mono text-[11px] text-[var(--text-muted)] transition-colors hover:text-[var(--text-primary)] disabled:opacity-30",children:["▲ ",a("pipeline.up")]}),e.jsxs("button",{type:"button",disabled:r===l.length-1,onClick:()=>k(r,"down"),className:"rounded-[4px] border border-[var(--border)] px-2 py-0.5 font-mono text-[11px] text-[var(--text-muted)] transition-colors hover:text-[var(--text-primary)] disabled:opacity-30",children:["▼ ",a("pipeline.down")]})]}),e.jsx("div",{className:"flex items-center justify-center py-3",children:e.jsxs("button",{type:"button",onClick:F,className:"flex items-center gap-1.5 rounded-[4px] border border-dashed border-[var(--border)] px-4 py-2 font-mono text-xs text-[var(--accent)] transition-colors hover:border-[var(--accent)] hover:bg-[var(--bg-secondary)]",children:[e.jsx("span",{className:"text-sm leading-none",children:"+"})," ",a("pipeline.add_stage")]})}),h&&e.jsxs("div",{className:"mt-4 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4 lg:hidden",children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[e.jsx("span",{className:"font-mono text-xs font-semibold text-[var(--accent)]",children:a("pipeline.stage_properties")}),e.jsx("button",{type:"button",onClick:()=>c(null),className:"rounded-[4px] border border-[var(--border)] px-2 py-1 font-mono text-[11px] text-[var(--text-muted)]",children:"x"})]}),e.jsx(_,{stage:h,onChange:n=>w(r,n),allStageNames:f})]})]}),e.jsx("div",{className:"hidden w-[360px] shrink-0 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5 lg:block",style:{alignSelf:"flex-start",position:"sticky",top:0},children:h?e.jsx(_,{stage:h,onChange:n=>w(r,n),allStageNames:f}):e.jsx("div",{className:"flex min-h-[200px] items-center justify-center",children:e.jsx("p",{className:"font-mono text-xs text-[var(--text-muted)]",children:a("pipeline.select_stage")})})})]})]})}function V(){const{key:t}=I(),o=M(),{t:a}=g(),[r,c]=p.useState(null),[s,i]=p.useState(!0),[d,l]=p.useState(!1);p.useEffect(()=>{t&&S.get(`web/projects/${t}`).json().then(f=>{if(f.pipeline)try{c(JSON.parse(f.pipeline))}catch{c(null)}}).catch(()=>y.error(a("pipeline.failed_to_load_project"))).finally(()=>i(!1))},[t,a]);const h=p.useCallback(async()=>{if(t){l(!0);try{await S.put(`web/projects/${t}`,{json:{pipeline:r?JSON.stringify(r):null}}),y.success(a("pipeline.saved"))}catch{y.error(a("pipeline.failed_to_save"))}finally{l(!1)}}},[t,r,a]);return s?e.jsx("div",{className:"flex h-full items-center justify-center font-mono",children:e.jsx("p",{className:"text-sm text-[var(--text-muted)]",children:a("pipeline.loading_pipeline")})}):e.jsxs("div",{className:"flex h-full flex-col font-mono lowercase",children:[e.jsxs("div",{className:"flex flex-col gap-3 border-b border-[var(--border)] px-4 md:px-8 py-5 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx("span",{className:"text-base font-medium text-[var(--text-primary)] shrink-0",children:a("pipeline.title")}),e.jsx("span",{className:"text-sm text-[var(--text-muted)] truncate",children:a("pipeline.subtitle",{key:t??""})})]}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[e.jsx("button",{type:"button",onClick:h,disabled:d,className:"rounded-[4px] bg-[var(--accent)] px-4 py-1.5 text-xs font-bold text-black disabled:opacity-50",children:a(d?"common.saving":"pipeline.save")}),e.jsx("button",{type:"button",onClick:()=>o(`/projects/${t}`),className:"rounded-[4px] border border-[var(--border)] px-4 py-1.5 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",children:a("pipeline.cancel")})]})]}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto p-4 md:p-8",children:e.jsx(A,{value:r,onChange:c})})]})}export{V as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as Q,a as H,k as J,r,h as j,o as s,t as M,w as V,j as t,K as Z,l as z,G as W}from"./index-
|
|
1
|
+
import{f as Q,a as H,k as J,r,h as j,o as s,t as M,w as V,j as t,K as Z,l as z,G as W}from"./index-C7ov95n_.js";import{E as X}from"./EmptyState-DfpjyUvi.js";import{T as Y}from"./Skeleton-D4hIl9Le.js";import{f as ee}from"./date-CmcdoD87.js";import{S as te}from"./Select-C3Kl_xvq.js";import{P as re}from"./plus-mUwKUEYN.js";import{E as se}from"./external-link-Beu7KLy4.js";import{C as ae}from"./chevron-left-CPLnASn1.js";import{C as oe}from"./chevron-right-Dz6bwKdg.js";import"./chevron-down-CbnHKl5e.js";const ne=[s.QUEUED,s.ASSIGNED,s.RUNNING,s.SUSPENDED],ce=20;function ie(n,a){if(!n)return null;const v=n.repoUrl.replace(/\.git$/,"").replace(/\/+$/,""),c=a.split("/").map(encodeURIComponent).join("/");return n.gitPlatform===W.GITLAB?`${v}/-/tree/${c}/docs/specs`:`${v}/tree/${c}/docs/specs`}function le(n){switch(n){case s.RUNNING:return"bg-[var(--accent)]";case s.QUEUED:return"bg-[var(--warning)]";case s.ASSIGNED:return"bg-[var(--info)]";case s.SUSPENDED:return"bg-[var(--warning)]";case s.COMPLETED:return"bg-[var(--accent)]";case s.FAILED:return"bg-[var(--destructive)]";case s.CANCELLED:return"bg-[#525252]";default:return"bg-[#525252]"}}function je(){const n=Q(),{t:a}=H(),v=J(e=>e.taskSeq),[c,G]=r.useState("in_progress"),[y,w]=r.useState([]),[k,D]=r.useState(!0),[u,P]=r.useState(void 0),[g,N]=r.useState(void 0),[p,E]=r.useState([]),[h,T]=r.useState({}),[i,R]=r.useState([]),[x,L]=r.useState(""),[m,U]=r.useState(""),[S,_]=r.useState(!1),O=r.useMemo(()=>{const e={};for(const o of i)e[o.key]=o;return e},[i]);r.useEffect(()=>{let e=!1;return j.get("web/projects").json().then(o=>{e||R(o)}).catch(()=>{}),()=>{e=!0}},[]),r.useEffect(()=>{i.length>0&&!x&&L(i[0].key)},[i]);const A=r.useCallback(async e=>{D(!0);try{const o=new URLSearchParams({taskMode:"plan",limit:String(ce)});c==="in_progress"?o.set("status",ne.join(",")):o.set("status",s.COMPLETED+","+s.FAILED+","+s.CANCELLED),e&&o.set("cursor",e);const b=await j.get(`web/tasks?${o}`).json(),f=b.data??[];w(f),P(b.nextCursor);const l=f.filter(d=>d.status===s.COMPLETED).map(d=>d.id);if(l.length>0){const d={};await Promise.all(l.map(async C=>{try{const F=await j.get(`web/tasks?${new URLSearchParams({sourceTaskId:String(C),limit:"100"})}`).json();d[C]=(F.data??[]).length}catch{d[C]=0}})),T(d)}else T({})}catch{w([]),P(void 0)}finally{D(!1)}},[c]);r.useEffect(()=>{A(g)},[A,g,v]),r.useEffect(()=>{N(void 0),E([])},[c]);const K=r.useCallback(()=>{u&&(E(e=>[...e,g??""]),N(u))},[u,g]),B=r.useCallback(()=>{p.length!==0&&(N(p.at(-1)||void 0),E(e=>e.slice(0,-1)))},[p]),q=p.length+1,$=r.useCallback(async()=>{if(!x||!m.trim()){M.error("project and description are required.");return}_(!0);try{const e=await j.post("web/tasks",{json:{projectKey:x,description:m.trim(),taskMode:"plan"}}).json();U(""),n(`/tasks/${e.task.id}`)}catch(e){const o=e instanceof Error?e.message:String(e);M.error(o)}finally{_(!1)}},[x,m,n]),I=r.useMemo(()=>i.map(e=>({value:e.key,label:e.name})),[i]);return V(null),t.jsxs("div",{className:"mx-auto max-w-6xl px-2 py-4 md:px-4 md:py-6 font-mono",children:[t.jsx("h1",{className:"sr-only",children:a("plan.title")}),t.jsxs("div",{className:"mb-6 flex flex-col gap-2 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-3 md:flex-row md:items-center md:gap-3",children:[t.jsx(te,{value:x,onChange:L,options:I.length>0?I:[{value:"",label:"loading..."}],className:"md:w-44 shrink-0"}),t.jsx("input",{type:"text",placeholder:a("plan.description_placeholder"),value:m,onChange:e=>U(e.target.value),onKeyDown:e=>{e.key==="Enter"&&!S&&$()},className:"flex-1 rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] outline-none focus:border-[var(--accent)]"}),t.jsxs("button",{onClick:$,disabled:S||!x||!m.trim(),className:"flex shrink-0 items-center gap-1.5 rounded-[4px] bg-[var(--accent)] px-4 py-2 text-xs font-mono text-black transition-opacity hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed",children:[t.jsx(re,{className:"h-3.5 w-3.5"}),a(S?"common.creating":"plan.create")]})]}),t.jsx("div",{className:"mb-4 flex items-center gap-1 overflow-x-auto pb-1 no-scrollbar",children:["in_progress","completed"].map(e=>t.jsx("button",{onClick:()=>G(e),className:`shrink-0 rounded-[4px] px-3 py-2 h-8 text-xs transition-colors ${c===e?"text-[var(--accent)] bg-[var(--bg-input)]":"text-[var(--text-muted)] bg-[var(--bg-card)] hover:text-[var(--text-secondary)]"}`,children:a(e==="in_progress"?"review.in_progress":"tasks.tab_completed")},e))}),t.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:[k&&y.length===0&&t.jsx("div",{className:"p-4",children:t.jsx(Y,{rows:4})}),!k&&y.length===0&&t.jsx(X,{icon:Z,title:a("plan.no_plans"),description:a("plan.description_placeholder")}),y.map(e=>t.jsxs("div",{onClick:()=>n(`/tasks/${e.id}`),className:"flex cursor-pointer items-center gap-3 border-b border-[var(--border)] px-4 py-3 last:border-b-0 hover:bg-[var(--bg-input)] transition-colors",children:[t.jsx("span",{className:`h-2 w-2 shrink-0 rounded-full ${le(e.status)}`}),t.jsxs("span",{className:"flex-1 truncate text-xs text-[var(--text-primary)] preserve-case",children:["#",e.id," ",z(e)]}),e.status===s.COMPLETED&&h[e.id]!=null&&h[e.id]>0&&t.jsxs("span",{className:"shrink-0 rounded-[4px] px-2 py-0.5 text-[10px] font-bold",style:{color:"#3b82f6",backgroundColor:"rgba(59,130,246,0.12)"},title:`${h[e.id]} downstream task(s)`,children:[h[e.id]," tasks"]}),e.status===s.COMPLETED&&(()=>{const o=O[e.projectKey];if(!o)return null;let b="main";if(e.configSnapshot)try{const l=JSON.parse(e.configSnapshot);l.defaultBranch&&(b=l.defaultBranch)}catch{}const f=ie(o,b);return f?t.jsxs("a",{href:f,target:"_blank",rel:"noopener noreferrer",onClick:l=>l.stopPropagation(),className:"shrink-0 flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2 py-0.5 text-[10px] text-[var(--text-muted)] hover:text-[var(--info)] hover:border-[var(--info)] transition-colors",title:a("plan.view_spec"),children:[t.jsx(se,{className:"h-2.5 w-2.5"}),a("plan.view_spec")]}):null})(),t.jsx("span",{className:"shrink-0 rounded-[4px] border border-[var(--border)] px-2 py-0.5 text-[11px] text-[var(--text-muted)]",children:e.projectKey}),t.jsx("span",{className:"shrink-0 text-[11px] text-[var(--text-muted)]",children:e.status.toLowerCase()}),t.jsx("span",{className:"shrink-0 text-[11px] text-[var(--text-muted)]",children:ee(e.createdAt)})]},e.id))]}),(p.length>0||u)&&t.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[t.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["// page ",q]}),t.jsxs("div",{className:"flex gap-2",children:[t.jsxs("button",{onClick:B,disabled:p.length===0,className:"flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2.5 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--accent)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:[t.jsx(ae,{className:"h-3.5 w-3.5"}),a("tasks.prev")]}),t.jsxs("button",{onClick:K,disabled:!u,className:"flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2.5 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--accent)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:[a("common.next"),t.jsx(oe,{className:"h-3.5 w-3.5"})]})]})]})]})}export{je as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as A,u as F,f as T,r as s,j as e,L as z,a5 as I,a6 as $,s as K,h as p,t as c}from"./index-
|
|
1
|
+
import{a as A,u as F,f as T,r as s,j as e,L as z,a5 as I,a6 as $,s as K,h as p,t as c}from"./index-C7ov95n_.js";import{v as M}from"./password-CHk45-jw.js";import{I as o}from"./InfoRow-Czt7UG6F.js";import{u as V}from"./useFetch-6TTZQjqE.js";function Q(){var y,k,C,P;const{t:r}=A(),{logout:L}=F(),E=T(),[S,m]=s.useState(!1),{data:t,loading:U,refetch:D}=V(()=>p.get("web/profile").json(),[]),[x,u]=s.useState(""),[d,b]=s.useState(""),[f,v]=s.useState(""),[g,h]=s.useState(!1),[j,n]=s.useState(""),[i,_]=s.useState(""),[w,N]=s.useState(!1);async function O(){if(n(""),!x){n(r("profile.current_password_required"));return}if(!d){n(r("profile.new_password_required"));return}const a=M(d);if(a){n(r(a));return}if(d!==f){n(r("profile.passwords_do_not_match"));return}try{h(!0),await p.put("web/profile/password",{json:{currentPassword:x,newPassword:d}}),c.success(r("profile.password_changed")),u(""),b(""),v("")}catch(l){const q=l instanceof Error?l.message:r("profile.failed_to_change_password");n(q)}finally{h(!1)}}async function R(){if(!i||i.length!==6){c.error(r("profile.totp_code_required"));return}try{N(!0),await p.post("web/profile/totp/regenerate",{json:{code:i}}),c.success(r("profile.two_fa_regenerated")),_(""),D()}catch(a){const l=a instanceof Error?a.message:r("profile.totp_code_invalid");c.error(l)}finally{N(!1)}}return U?e.jsx("div",{className:"flex justify-center py-20",children:e.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-[var(--border)] border-t-[var(--accent)]"})}):e.jsxs("div",{className:"mx-auto max-w-xl space-y-8 px-4 md:px-6 py-8 font-mono lowercase",children:[e.jsxs("h1",{className:"text-lg text-[var(--text-primary)]",children:[r("profile.title")," ",e.jsx("span",{className:"text-[var(--text-muted)]",children:r("profile.personal_settings")})]}),e.jsxs("section",{className:"rounded-[4px] bg-[var(--bg-card)] border border-[var(--border)] p-5",children:[e.jsx("h2",{className:"mb-4 text-sm font-semibold text-[var(--accent)]",children:r("profile.profile_info")}),t?e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{variant:"fixed-label",label:r("profile.username"),value:t.name}),e.jsx(o,{variant:"fixed-label",label:r("common.role"),value:t.role}),e.jsx(o,{variant:"fixed-label",label:r("profile.git_name"),value:t.gitName||r("common.not_set")}),e.jsx(o,{variant:"fixed-label",label:r("profile.git_email"),value:t.gitEmail||r("common.not_set")}),e.jsx(o,{variant:"fixed-label",label:r("profile.status"),value:t.status}),e.jsx(o,{variant:"fixed-label",label:r("profile.created_at"),value:new Date(t.createdAt).toLocaleDateString()})]}):e.jsx("p",{className:"text-sm text-[var(--text-secondary)]",children:r("profile.unable_to_load_profile")})]}),e.jsxs("section",{className:"rounded-[4px] bg-[var(--bg-card)] border border-[var(--border)] p-5",children:[e.jsx("h2",{className:"mb-4 text-sm font-semibold text-[var(--accent)]",children:r("profile.platform_accounts")}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{variant:"fixed-label",label:"lark",value:(y=t==null?void 0:t.platformUids)!=null&&y.lark?`${t.platformUids.lark.slice(0,12)}... ✓`:r("profile.not_linked")}),e.jsx(o,{variant:"fixed-label",label:"slack",value:(k=t==null?void 0:t.platformUids)!=null&&k.slack?`${t.platformUids.slack.slice(0,12)}... ✓`:r("profile.not_linked")})]}),(!((C=t==null?void 0:t.platformUids)!=null&&C.lark)||!((P=t==null?void 0:t.platformUids)!=null&&P.slack))&&e.jsx("p",{className:"mt-3 text-xs text-[var(--text-muted)]",children:r("profile.bind_hint")})]}),e.jsxs("section",{className:"rounded-[4px] bg-[var(--bg-card)] border border-[var(--border)] p-5",children:[e.jsx("h2",{className:"mb-4 text-sm font-semibold text-[var(--accent)]",children:r("profile.change_password")}),e.jsxs("div",{className:"space-y-4",children:[j&&e.jsx("div",{className:"rounded-[4px] border border-[var(--destructive)] bg-[var(--bg-input)] px-3 py-2 text-sm text-[var(--destructive)]",children:j}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-xs text-[var(--text-secondary)]",children:r("profile.current_password")}),e.jsx("input",{type:"password",value:x,onChange:a=>u(a.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-[var(--accent)]"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-xs text-[var(--text-secondary)]",children:r("profile.new_password")}),e.jsx("input",{type:"password",value:d,onChange:a=>b(a.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-[var(--accent)]"}),e.jsx("p",{className:"mt-1 text-xs text-[var(--text-muted)]",children:r("profile.password_hint_10_20")})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-xs text-[var(--text-secondary)]",children:r("profile.confirm_password")}),e.jsx("input",{type:"password",value:f,onChange:a=>v(a.target.value),className:"w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-[var(--accent)]"})]}),e.jsx("div",{className:"flex justify-end",children:e.jsx("button",{onClick:O,disabled:g,className:"rounded-[4px] bg-[var(--accent)] px-4 py-2 text-xs font-medium text-black disabled:opacity-50",children:r(g?"common.updating":"profile.update_password")})})]})]}),e.jsxs("section",{className:"rounded-[4px] bg-[var(--bg-card)] border border-[var(--border)] p-5",children:[e.jsx("h2",{className:"mb-4 text-sm font-semibold text-[var(--accent)]",children:r("profile.two_factor_auth")}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex items-center gap-2 text-sm",children:t!=null&&t.totpEnabled?e.jsxs("span",{className:"text-[var(--accent)]",children:["● ",r("profile.two_fa_enabled")]}):e.jsxs("span",{className:"text-[var(--text-muted)]",children:["● ",r("profile.two_fa_not_setup")]})}),(t==null?void 0:t.totpEnabled)&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:r("profile.regenerate_2fa_warning")}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-xs text-[var(--text-secondary)]",children:r("profile.current_totp_code")}),e.jsx("input",{type:"text",inputMode:"numeric",maxLength:6,placeholder:r("profile.totp_code_placeholder"),value:i,onChange:a=>{const l=a.target.value.replace(/\D/g,"").slice(0,6);_(l)},className:"w-full max-w-xs rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-[var(--accent)] font-mono tracking-widest"})]}),e.jsx("div",{className:"flex justify-end",children:e.jsx("button",{onClick:R,disabled:w||i.length!==6,className:"rounded-[4px] border border-[var(--warning)] bg-transparent px-4 py-2 text-xs font-medium text-[var(--warning)] hover:bg-[var(--warning)] hover:text-black disabled:opacity-50 transition-colors",children:r(w?"profile.regenerating":"profile.regenerate_2fa")})})]})]})]}),e.jsxs(z,{to:"/access-tokens",className:"flex items-center gap-3 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4 transition-colors hover:border-[var(--accent)]",children:[e.jsx(I,{size:16,className:"text-[var(--accent)]"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-[var(--text-primary)]",children:r("profile.access_tokens")}),e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:r("profile.access_tokens_desc")})]})]}),e.jsxs("button",{onClick:()=>m(!0),className:"flex w-full items-center gap-3 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4 transition-colors hover:border-[var(--destructive)] text-left",children:[e.jsx($,{size:16,className:"text-[var(--destructive)]"}),e.jsx("span",{className:"text-sm text-[var(--destructive)]",children:r("common.log_out")})]}),e.jsxs("div",{className:"pt-2 pb-4 text-center text-xs text-[var(--text-muted)]",children:["overlord v","1.0.156"]}),e.jsx(K,{isOpen:S,onClose:()=>m(!1),onConfirm:()=>{L(),E("/login")},title:r("common.logout_title"),message:r("common.logout_message"),confirmLabel:r("common.logout"),confirmVariant:"warning"})]})}export{Q as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as R,a as $,j as e,s as q,A as K,f as B,u as H,i as J,r as x,Y as k,w as V,l as D,Z as Y,h}from"./index-
|
|
1
|
+
import{c as R,a as $,j as e,s as q,A as K,f as B,u as H,i as J,r as x,Y as k,w as V,l as D,Z as Y,h}from"./index-C7ov95n_.js";import{U as P,A as Z,R as z}from"./RemoveMemberConfirmDialog-CGrZxV6w.js";import{T as G}from"./Tooltip-BztbRI3_.js";import{c as _}from"./date-CmcdoD87.js";import{t as T}from"./status-colors-CydKgJJI.js";import{I as o}from"./InfoRow-Czt7UG6F.js";import{u as Q}from"./useFetch-6TTZQjqE.js";import{P as X}from"./pencil-DzahKM5O.js";import{T as ee}from"./trash-2-C_Q58aM2.js";import{A as te}from"./arrow-left-IMmiqNmm.js";import{P as re}from"./plus-mUwKUEYN.js";import"./Select-C3Kl_xvq.js";import"./chevron-down-CbnHKl5e.js";/**
|
|
2
2
|
* @license lucide-react v0.469.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as I,a as P,v as R,r as o,G as x,O as z,j as e,h as E,f as H,w as M}from"./index-
|
|
1
|
+
import{c as I,a as P,v as R,r as o,G as x,O as z,j as e,h as E,f as H,w as M}from"./index-C7ov95n_.js";import{S as U}from"./Select-C3Kl_xvq.js";import{a as D}from"./agent-type-options-p1tH-Kcc.js";import{E as J}from"./EmptyState-DfpjyUvi.js";import{T as O}from"./Skeleton-D4hIl9Le.js";import{t as q}from"./date-CmcdoD87.js";import{u as W}from"./useFetch-6TTZQjqE.js";import{P as $}from"./plus-mUwKUEYN.js";import{A as K}from"./arrow-left-IMmiqNmm.js";import"./chevron-down-CbnHKl5e.js";/**
|
|
2
2
|
* @license lucide-react v0.469.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Xr=Object.defineProperty;var jr=(e,t,i)=>t in e?Xr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var Oe=(e,t,i)=>jr(e,typeof t!="symbol"?t+"":t,i);import{r as Z,u as Gr,h as Jr,j as Mt}from"./index-
|
|
1
|
+
var Xr=Object.defineProperty;var jr=(e,t,i)=>t in e?Xr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var Oe=(e,t,i)=>jr(e,typeof t!="symbol"?t+"":t,i);import{r as Z,u as Gr,h as Jr,j as Mt}from"./index-C7ov95n_.js";/**
|
|
2
2
|
* Copyright (c) 2014-2024 The xterm.js authors. All rights reserved.
|
|
3
3
|
* @license MIT
|
|
4
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as h,r as s,h as b,a7 as v,j as e,C as j}from"./index-
|
|
1
|
+
import{a as h,r as s,h as b,a7 as v,j as e,C as j}from"./index-C7ov95n_.js";import{C as f}from"./copy-BG1gOxig.js";function y({mode:l}){const{t:o}=h(),[n,d]=s.useState([]),[x,c]=s.useState(null),[u,i]=s.useState(!1);s.useEffect(()=>{b.get("web/profile/tokens").json().then(t=>{const r=t.filter(m=>m.status===v.ACTIVE);d(r),r.length>0&&c(r[0].id)}).catch(()=>{})},[]);const a=l==="cli"?"ov login --token <your-token>":'curl -H "authorization: bearer <your-token>" http://localhost:9000/api/web/tasks',p=s.useCallback(()=>{navigator.clipboard.writeText(a),i(!0),setTimeout(()=>i(!1),2e3)},[a]);return n.length===0?null:e.jsxs("div",{className:"mb-8 rounded-[4px] border border-[var(--accent)]/20 bg-[var(--bg-card)] p-4",children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:o("docs.quick_start_with_token")}),e.jsx("select",{value:x??"",onChange:t=>c(Number(t.target.value)),className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-primary)] px-2 py-1 text-xs text-[var(--text-primary)]",children:n.map(t=>e.jsx("option",{value:t.id,children:t.label},t.id))})]}),e.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-[4px] bg-[var(--bg-primary)] px-3 py-2",children:[e.jsx("code",{className:"text-xs text-[var(--accent)] break-all",children:a}),e.jsx("button",{onClick:p,className:"shrink-0 text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",children:u?e.jsx(j,{size:14}):e.jsx(f,{size:14})})]}),e.jsx("p",{className:"mt-2 text-[11px] text-[var(--text-muted)]",children:o("docs.replace_token_hint")})]})}export{y as Q};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as R,a as _,v as w,r as a,Y as c,j as e,X as C,h as g,s as D}from"./index-
|
|
1
|
+
import{c as R,a as _,v as w,r as a,Y as c,j as e,X as C,h as g,s as D}from"./index-C7ov95n_.js";import{S as N}from"./Select-C3Kl_xvq.js";/**
|
|
2
2
|
* @license lucide-react v0.469.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as de,A as xe,f as me,a as B,k as pe,r as n,h as L,j as e,L as ue,Q as H,V as ve,t as f,o as v,b as be,O as ge,X as he}from"./index-
|
|
1
|
+
import{c as de,A as xe,f as me,a as B,k as pe,r as n,h as L,j as e,L as ue,Q as H,V as ve,t as f,o as v,b as be,O as ge,X as he}from"./index-C7ov95n_.js";import{P as fe}from"./PtyTerminal-Bm1ilY94.js";import{T as je}from"./Skeleton-D4hIl9Le.js";import{f as Ne,b as we}from"./date-CmcdoD87.js";import{a as ye}from"./agent-type-options-p1tH-Kcc.js";import{T as G,g as Q}from"./task-constants-Bz3M3E7B.js";import{A as ke}from"./arrow-left-IMmiqNmm.js";import{L as Se}from"./loader-circle-yXvWCaBR.js";import{P as z}from"./play-8EsQZf8O.js";import{S as Ce}from"./skip-forward-DP8t4aLx.js";import{R as Te}from"./rotate-ccw-Da2N8-_y.js";import{C as Ae}from"./chevron-up-D7WFayA3.js";import{C as Ee}from"./chevron-down-CbnHKl5e.js";import{C as Re}from"./circle-alert-Bc0_GlfI.js";/**
|
|
2
2
|
* @license lucide-react v0.469.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as y,k as G,r as a,w as K,j as e,h as N,f as S,o as p,E,l as F,X as T,H as B,t as w,O as H}from"./index-C55BV6IU.js";import{E as D}from"./EmptyState-Dlw8DXoS.js";import{T as L}from"./Skeleton-Ibfop_C_.js";import{S as k}from"./Select-ZRV-96wd.js";import{f as P}from"./date-CmcdoD87.js";import{T as A}from"./Tooltip-UN2a6oLr.js";import{a as q}from"./agent-type-options-D7fqFcGk.js";import{g as z}from"./task-constants-iMyT85iC.js";import{P as R}from"./play-XIAOKPOe.js";import{C as Q}from"./chevron-left-BE8Q-xOd.js";import{C as X}from"./chevron-right-DDD7tmjh.js";import"./chevron-down-D7BGO3m7.js";function $(){const[t,n]=a.useState(void 0),[s,i]=a.useState(void 0),[x,o]=a.useState([]),u=a.useRef(void 0),g=a.useRef(void 0);u.current=t,g.current=s;const m=a.useCallback(d=>{n(d)},[]),h=a.useCallback(()=>{const d=u.current;d&&(o(j=>[...j,g.current??""]),i(d))},[]),b=a.useRef([]);b.current=x;const l=a.useCallback(()=>{const d=b.current;d.length!==0&&(i(d.at(-1)||void 0),o(d.slice(0,-1)))},[]),r=x.length+1,c=x.length>0;return{cursor:s,setNextCursor:m,goNext:h,goPrev:l,pageNumber:r,hasPrev:c,hasNext:!!t}}const I=20;function Z(t){switch(t){case p.RUNNING:return"bg-[var(--accent)]";case p.QUEUED:return"bg-[var(--warning)]";case p.ASSIGNED:return"bg-[var(--info)]";case p.SUSPENDED:return"bg-[var(--warning)]";case p.COMPLETED:return"bg-[var(--accent)]";case p.FAILED:return"bg-[var(--destructive)]";case p.CANCELLED:return"bg-[#525252]";default:return"bg-[#525252]"}}const J=q(z);function V({taskId:t,onClose:n,onLaunched:s}){const{t:i}=y(),[x,o]=a.useState([H.CLAUDE]),[u,g]=a.useState(""),[m,h]=a.useState(!1);function b(r){o(c=>c.includes(r)?c.filter(f=>f!==r):[...c,r])}async function l(){if(x.length===0){w.error("select at least one review agent.");return}h(!0);try{await N.post(`web/tasks/${t}/review`,{json:{agentTypes:x,description:u.trim()||void 0}}),w.success("review launched"),s(),n()}catch(r){const c=r instanceof Error?r.message:String(r);w.error(c)}finally{h(!1)}}return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",children:e.jsxs("div",{className:"w-full max-w-sm rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5 font-mono",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("span",{className:"text-sm font-bold text-[var(--text-primary)]",children:i("review.launch")}),e.jsx("button",{onClick:n,className:"text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",children:e.jsx(T,{className:"h-4 w-4"})})]}),e.jsxs("p",{className:"mb-3 text-[11px] text-[var(--text-muted)]",children:["task #",t," — ",i("review.select_agents")]}),e.jsx("div",{className:"mb-4 flex flex-col gap-2",children:J.map(r=>e.jsxs("label",{className:"flex cursor-pointer items-center gap-2.5 rounded-[4px] border border-[var(--border)] px-3 py-2 text-xs hover:bg-[var(--bg-input)] transition-colors",children:[e.jsx("input",{type:"checkbox",checked:x.includes(r.value),onChange:()=>b(r.value),className:"h-3.5 w-3.5 accent-[var(--accent)]"}),e.jsx("span",{className:"text-[var(--text-primary)]",children:r.label})]},r.value))}),e.jsx("textarea",{value:u,onChange:r=>g(r.target.value),placeholder:i("review.description_placeholder"),rows:3,className:"mb-4 w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] outline-none focus:border-[var(--accent)] resize-none"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("button",{onClick:l,disabled:m||x.length===0,className:"flex flex-1 items-center justify-center gap-1.5 rounded-[4px] bg-[var(--accent)] px-4 py-2 text-xs font-bold text-black disabled:opacity-40 disabled:cursor-not-allowed",children:[e.jsx(R,{className:"h-3 w-3"}),i(m?"common.processing":"review.launch")]}),e.jsx("button",{onClick:n,className:"rounded-[4px] border border-[var(--border)] px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",children:i("common.cancel")})]})]})})}function _({pag:t}){const{t:n}=y();return!t.hasPrev&&!t.hasNext?null:e.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["// page ",t.pageNumber]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("button",{onClick:t.goPrev,disabled:!t.hasPrev,className:"flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2.5 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--accent)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:[e.jsx(Q,{className:"h-3.5 w-3.5"}),n("tasks.prev")]}),e.jsxs("button",{onClick:t.goNext,disabled:!t.hasNext,className:"flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2.5 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--accent)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:[n("common.next"),e.jsx(X,{className:"h-3.5 w-3.5"})]})]})]})}function W({onRefresh:t,projectFilter:n,developerFilter:s}){const{t:i}=y(),x=S(),[o,u]=a.useState([]),[g,m]=a.useState(!0),[h,b]=a.useState(null),l=$(),r=a.useCallback(async c=>{m(!0);try{const f=new Date(Date.now()-6048e5).toISOString(),d=new URLSearchParams({status:p.COMPLETED,taskMode:"develop",reviewStatus:"null",completedAfter:f,limit:String(I)});n&&d.set("projectKey",n),s&&d.set("developerId",s),c&&d.set("cursor",c);const j=await N.get(`web/tasks?${d}`).json();u(j.data??[]),l.setNextCursor(j.nextCursor)}catch{u([]),l.setNextCursor(void 0)}finally{m(!1)}},[n,s]);return a.useEffect(()=>{r(l.cursor)},[r,l.cursor]),g&&o.length===0?e.jsx("div",{className:"p-4",children:e.jsx(L,{rows:4})}):!g&&o.length===0&&!l.hasPrev?e.jsx(D,{icon:E,title:i("review.no_reviews"),description:i("review.pending")}):e.jsxs(e.Fragment,{children:[o.length>0&&e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:o.map(c=>e.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--border)] px-4 py-3 last:border-b-0",children:[e.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--accent)]"}),e.jsx(A,{content:c.description,className:"flex-1 min-w-0",children:e.jsxs("span",{className:"cursor-pointer truncate text-xs text-[var(--text-primary)] hover:text-[var(--accent)] transition-colors block preserve-case",onClick:()=>x(`/tasks/${c.id}`),children:["#",c.id," ",F(c)]})}),e.jsx("span",{className:"shrink-0 rounded-[4px] border border-[var(--border)] px-2 py-0.5 text-[11px] text-[var(--text-muted)]",children:c.projectKey}),e.jsx("span",{className:"shrink-0 text-[11px] text-[var(--text-muted)]",children:P(c.completedAt??c.createdAt)}),e.jsxs("button",{onClick:async()=>{try{await N.post(`web/tasks/${c.id}/review-status`,{json:{reviewStatus:"dismissed"}}),r(l.cursor)}catch(f){let d="Failed to dismiss";try{if(f instanceof B){const j=await f.response.json();d=(j==null?void 0:j.message)??d}else f instanceof Error&&(d=f.message)}catch{}w.error(d)}},className:"shrink-0 flex items-center gap-1.5 rounded-[4px] px-3 py-1.5 text-[11px] font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",children:[e.jsx(T,{className:"h-3 w-3"}),"Dismiss"]}),e.jsxs("button",{onClick:()=>b(c.id),className:"shrink-0 flex items-center gap-1.5 rounded-[4px] px-3 py-1.5 text-[11px] font-medium text-[var(--accent)]",style:{backgroundColor:"rgba(34,197,94,0.12)"},children:[e.jsx(R,{className:"h-3 w-3"}),e.jsx("span",{className:"hidden md:inline",children:i("review.launch_short")})]})]},c.id))}),e.jsx(_,{pag:l}),h!==null&&e.jsx(V,{taskId:h,onClose:()=>b(null),onLaunched:()=>{t(),r(l.cursor)}})]})}function Y(t){const n=new Map;for(const s of t){const i=s.sourceTaskId??s.id;n.has(i)||n.set(i,[]),n.get(i).push(s)}return Array.from(n.entries()).map(([s,i])=>({sourceTaskId:s,tasks:i}))}function ee({group:t,onClick:n}){const s=t.tasks[0],i=t.tasks.every(o=>o.status===p.COMPLETED||o.status===p.FAILED||o.status===p.CANCELLED),x=s==null?void 0:s.sourceCommitSha;return e.jsxs("div",{onClick:n,className:"flex cursor-pointer items-center gap-3 border-b border-[var(--border)] px-4 py-3 last:border-b-0 hover:bg-[var(--bg-input)] transition-colors",children:[e.jsx("span",{className:`h-2 w-2 shrink-0 rounded-full ${i?"bg-[var(--accent)]":"bg-[var(--warning)]"}`}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[e.jsx(A,{content:(s==null?void 0:s.sourceTaskDescription)??(s==null?void 0:s.description),className:"truncate",children:e.jsxs("span",{className:"truncate text-xs text-[var(--text-primary)]",children:["source #",t.sourceTaskId]})}),x&&e.jsxs("span",{className:"shrink-0 font-mono text-[11px] text-[var(--accent)]",children:["@",x.slice(0,7)]})]}),e.jsxs("span",{className:"text-[11px] text-[var(--text-muted)]",children:[t.tasks.length," ",t.tasks.length===1?"agent":"agents"," · ",t.tasks.map(o=>(o.agentType??"claude").toLowerCase()).join(", ")]})]}),s&&e.jsx("span",{className:"shrink-0 rounded-[4px] border border-[var(--border)] px-2 py-0.5 text-[11px] text-[var(--text-muted)]",children:s.projectKey}),s&&e.jsx("span",{className:"shrink-0 text-[11px] text-[var(--text-muted)]",children:P(s.createdAt)}),e.jsx("div",{className:"flex shrink-0 items-center gap-1",children:t.tasks.map(o=>e.jsx("span",{className:`h-2 w-2 rounded-full ${Z(o.status)}`,title:o.status.toLowerCase()},o.id))})]})}function C({mode:t,projectFilter:n,developerFilter:s}){const{t:i}=y(),x=S(),[o,u]=a.useState([]),[g,m]=a.useState(!0),h=$(),b=a.useCallback(async l=>{m(!0);try{const r=new URLSearchParams({taskMode:"review",limit:String(I),groupBySource:"true"});t==="in_progress"?r.set("status",[p.QUEUED,p.ASSIGNED,p.RUNNING,p.SUSPENDED].join(",")):r.set("status",[p.COMPLETED,p.FAILED,p.CANCELLED].join(",")),n&&r.set("projectKey",n),s&&r.set("sourceDeveloperId",s),l&&r.set("cursor",l);const c=await N.get(`web/tasks?${r}`).json();u(Y(c.data??[])),h.setNextCursor(c.nextCursor??void 0)}catch{u([]),h.setNextCursor(void 0)}finally{m(!1)}},[t,n,s]);return a.useEffect(()=>{b(h.cursor)},[b,h.cursor]),g&&o.length===0?e.jsx("div",{className:"p-4",children:e.jsx(L,{rows:4})}):!g&&o.length===0&&!h.hasPrev?e.jsx(D,{icon:E,title:i("review.no_reviews")}):e.jsxs(e.Fragment,{children:[o.length>0&&e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:o.map(l=>e.jsx(ee,{group:l,onClick:()=>x(`/review/${l.sourceTaskId}`)},l.sourceTaskId))}),e.jsx(_,{pag:h})]})}function pe(){const{t}=y(),n=G(v=>v.taskSeq),[s,i]=a.useState("pending"),[x,o]=a.useState(0),[u,g]=a.useState(""),[m,h]=a.useState(""),[b,l]=a.useState([]),[r,c]=a.useState([]);K(null);const f=a.useCallback(()=>o(v=>v+1),[]);a.useEffect(()=>{let v=!1;return(async()=>{try{const[U,M]=await Promise.all([N.get("web/projects").json(),N.get("web/projects/-/developers").json()]);if(v)return;l(U),c(M)}catch{}})(),()=>{v=!0}},[]);const d=a.useMemo(()=>[{value:"",label:t("tasks.filter_project")},...b.map(v=>({value:v.key,label:v.name}))],[b,t]),j=a.useMemo(()=>[{value:"",label:t("tasks.filter_developer")},...r.map(v=>({value:String(v.id),label:v.name}))],[r,t]),O=[{key:"pending",label:t("review.pending")},{key:"in_progress",label:t("review.in_progress")},{key:"history",label:t("review.history")}];return e.jsxs("div",{className:"mx-auto max-w-6xl px-2 py-4 md:px-4 md:py-6 font-mono",children:[e.jsx("h1",{className:"sr-only",children:t("review.title")}),e.jsxs("div",{className:"mb-4 flex flex-col gap-3 md:gap-4 md:flex-row md:items-center",children:[e.jsx("div",{className:"flex items-center gap-1 overflow-x-auto pb-1 md:pb-0 no-scrollbar",children:O.map(v=>e.jsx("button",{onClick:()=>i(v.key),className:`shrink-0 rounded-[4px] px-3 py-2 h-8 text-xs transition-colors ${s===v.key?"text-[var(--accent)] bg-[var(--bg-input)]":"text-[var(--text-muted)] bg-[var(--bg-card)] hover:text-[var(--text-secondary)]"}`,children:v.label},v.key))}),e.jsxs("div",{className:"flex flex-col gap-2 md:ml-auto md:flex-row md:items-center",children:[e.jsx(k,{value:u,onChange:g,options:d,className:"md:w-40"}),e.jsx(k,{value:m,onChange:h,options:j,className:"md:w-40"})]})]}),s==="pending"&&e.jsx(W,{onRefresh:f,projectFilter:u,developerFilter:m},`pending-${x}-${n}-${u}-${m}`),s==="in_progress"&&e.jsx(C,{mode:"in_progress",projectFilter:u,developerFilter:m},`inprogress-${x}-${n}-${u}-${m}`),s==="history"&&e.jsx(C,{mode:"history",projectFilter:u,developerFilter:m},`history-${x}-${n}-${u}-${m}`)]})}export{pe as default};
|
|
1
|
+
import{a as y,k as G,r as a,w as K,j as e,h as N,f as S,o as p,E,l as F,X as T,H as B,t as w,O as H}from"./index-C7ov95n_.js";import{E as D}from"./EmptyState-DfpjyUvi.js";import{T as L}from"./Skeleton-D4hIl9Le.js";import{S as k}from"./Select-C3Kl_xvq.js";import{f as P}from"./date-CmcdoD87.js";import{T as A}from"./Tooltip-BztbRI3_.js";import{a as q}from"./agent-type-options-p1tH-Kcc.js";import{g as z}from"./task-constants-Bz3M3E7B.js";import{P as R}from"./play-8EsQZf8O.js";import{C as Q}from"./chevron-left-CPLnASn1.js";import{C as X}from"./chevron-right-Dz6bwKdg.js";import"./chevron-down-CbnHKl5e.js";function $(){const[t,n]=a.useState(void 0),[s,i]=a.useState(void 0),[x,o]=a.useState([]),u=a.useRef(void 0),g=a.useRef(void 0);u.current=t,g.current=s;const m=a.useCallback(d=>{n(d)},[]),h=a.useCallback(()=>{const d=u.current;d&&(o(j=>[...j,g.current??""]),i(d))},[]),b=a.useRef([]);b.current=x;const l=a.useCallback(()=>{const d=b.current;d.length!==0&&(i(d.at(-1)||void 0),o(d.slice(0,-1)))},[]),r=x.length+1,c=x.length>0;return{cursor:s,setNextCursor:m,goNext:h,goPrev:l,pageNumber:r,hasPrev:c,hasNext:!!t}}const I=20;function Z(t){switch(t){case p.RUNNING:return"bg-[var(--accent)]";case p.QUEUED:return"bg-[var(--warning)]";case p.ASSIGNED:return"bg-[var(--info)]";case p.SUSPENDED:return"bg-[var(--warning)]";case p.COMPLETED:return"bg-[var(--accent)]";case p.FAILED:return"bg-[var(--destructive)]";case p.CANCELLED:return"bg-[#525252]";default:return"bg-[#525252]"}}const J=q(z);function V({taskId:t,onClose:n,onLaunched:s}){const{t:i}=y(),[x,o]=a.useState([H.CLAUDE]),[u,g]=a.useState(""),[m,h]=a.useState(!1);function b(r){o(c=>c.includes(r)?c.filter(f=>f!==r):[...c,r])}async function l(){if(x.length===0){w.error("select at least one review agent.");return}h(!0);try{await N.post(`web/tasks/${t}/review`,{json:{agentTypes:x,description:u.trim()||void 0}}),w.success("review launched"),s(),n()}catch(r){const c=r instanceof Error?r.message:String(r);w.error(c)}finally{h(!1)}}return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",children:e.jsxs("div",{className:"w-full max-w-sm rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-5 font-mono",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsx("span",{className:"text-sm font-bold text-[var(--text-primary)]",children:i("review.launch")}),e.jsx("button",{onClick:n,className:"text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",children:e.jsx(T,{className:"h-4 w-4"})})]}),e.jsxs("p",{className:"mb-3 text-[11px] text-[var(--text-muted)]",children:["task #",t," — ",i("review.select_agents")]}),e.jsx("div",{className:"mb-4 flex flex-col gap-2",children:J.map(r=>e.jsxs("label",{className:"flex cursor-pointer items-center gap-2.5 rounded-[4px] border border-[var(--border)] px-3 py-2 text-xs hover:bg-[var(--bg-input)] transition-colors",children:[e.jsx("input",{type:"checkbox",checked:x.includes(r.value),onChange:()=>b(r.value),className:"h-3.5 w-3.5 accent-[var(--accent)]"}),e.jsx("span",{className:"text-[var(--text-primary)]",children:r.label})]},r.value))}),e.jsx("textarea",{value:u,onChange:r=>g(r.target.value),placeholder:i("review.description_placeholder"),rows:3,className:"mb-4 w-full rounded-[4px] border border-[var(--border)] bg-[var(--bg-input)] px-3 py-2 text-xs text-[var(--text-primary)] placeholder:text-[var(--text-muted)] outline-none focus:border-[var(--accent)] resize-none"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("button",{onClick:l,disabled:m||x.length===0,className:"flex flex-1 items-center justify-center gap-1.5 rounded-[4px] bg-[var(--accent)] px-4 py-2 text-xs font-bold text-black disabled:opacity-40 disabled:cursor-not-allowed",children:[e.jsx(R,{className:"h-3 w-3"}),i(m?"common.processing":"review.launch")]}),e.jsx("button",{onClick:n,className:"rounded-[4px] border border-[var(--border)] px-4 py-2 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] transition-colors",children:i("common.cancel")})]})]})})}function _({pag:t}){const{t:n}=y();return!t.hasPrev&&!t.hasNext?null:e.jsxs("div",{className:"mt-6 flex items-center justify-between",children:[e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["// page ",t.pageNumber]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("button",{onClick:t.goPrev,disabled:!t.hasPrev,className:"flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2.5 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--accent)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:[e.jsx(Q,{className:"h-3.5 w-3.5"}),n("tasks.prev")]}),e.jsxs("button",{onClick:t.goNext,disabled:!t.hasNext,className:"flex items-center gap-1 rounded-[4px] border border-[var(--border)] px-2.5 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] hover:border-[var(--accent)] disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:[n("common.next"),e.jsx(X,{className:"h-3.5 w-3.5"})]})]})]})}function W({onRefresh:t,projectFilter:n,developerFilter:s}){const{t:i}=y(),x=S(),[o,u]=a.useState([]),[g,m]=a.useState(!0),[h,b]=a.useState(null),l=$(),r=a.useCallback(async c=>{m(!0);try{const f=new Date(Date.now()-6048e5).toISOString(),d=new URLSearchParams({status:p.COMPLETED,taskMode:"develop",reviewStatus:"null",completedAfter:f,limit:String(I)});n&&d.set("projectKey",n),s&&d.set("developerId",s),c&&d.set("cursor",c);const j=await N.get(`web/tasks?${d}`).json();u(j.data??[]),l.setNextCursor(j.nextCursor)}catch{u([]),l.setNextCursor(void 0)}finally{m(!1)}},[n,s]);return a.useEffect(()=>{r(l.cursor)},[r,l.cursor]),g&&o.length===0?e.jsx("div",{className:"p-4",children:e.jsx(L,{rows:4})}):!g&&o.length===0&&!l.hasPrev?e.jsx(D,{icon:E,title:i("review.no_reviews"),description:i("review.pending")}):e.jsxs(e.Fragment,{children:[o.length>0&&e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:o.map(c=>e.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--border)] px-4 py-3 last:border-b-0",children:[e.jsx("span",{className:"h-2 w-2 shrink-0 rounded-full bg-[var(--accent)]"}),e.jsx(A,{content:c.description,className:"flex-1 min-w-0",children:e.jsxs("span",{className:"cursor-pointer truncate text-xs text-[var(--text-primary)] hover:text-[var(--accent)] transition-colors block preserve-case",onClick:()=>x(`/tasks/${c.id}`),children:["#",c.id," ",F(c)]})}),e.jsx("span",{className:"shrink-0 rounded-[4px] border border-[var(--border)] px-2 py-0.5 text-[11px] text-[var(--text-muted)]",children:c.projectKey}),e.jsx("span",{className:"shrink-0 text-[11px] text-[var(--text-muted)]",children:P(c.completedAt??c.createdAt)}),e.jsxs("button",{onClick:async()=>{try{await N.post(`web/tasks/${c.id}/review-status`,{json:{reviewStatus:"dismissed"}}),r(l.cursor)}catch(f){let d="Failed to dismiss";try{if(f instanceof B){const j=await f.response.json();d=(j==null?void 0:j.message)??d}else f instanceof Error&&(d=f.message)}catch{}w.error(d)}},className:"shrink-0 flex items-center gap-1.5 rounded-[4px] px-3 py-1.5 text-[11px] font-medium text-[var(--text-muted)] hover:text-[var(--text-primary)] transition-colors",children:[e.jsx(T,{className:"h-3 w-3"}),"Dismiss"]}),e.jsxs("button",{onClick:()=>b(c.id),className:"shrink-0 flex items-center gap-1.5 rounded-[4px] px-3 py-1.5 text-[11px] font-medium text-[var(--accent)]",style:{backgroundColor:"rgba(34,197,94,0.12)"},children:[e.jsx(R,{className:"h-3 w-3"}),e.jsx("span",{className:"hidden md:inline",children:i("review.launch_short")})]})]},c.id))}),e.jsx(_,{pag:l}),h!==null&&e.jsx(V,{taskId:h,onClose:()=>b(null),onLaunched:()=>{t(),r(l.cursor)}})]})}function Y(t){const n=new Map;for(const s of t){const i=s.sourceTaskId??s.id;n.has(i)||n.set(i,[]),n.get(i).push(s)}return Array.from(n.entries()).map(([s,i])=>({sourceTaskId:s,tasks:i}))}function ee({group:t,onClick:n}){const s=t.tasks[0],i=t.tasks.every(o=>o.status===p.COMPLETED||o.status===p.FAILED||o.status===p.CANCELLED),x=s==null?void 0:s.sourceCommitSha;return e.jsxs("div",{onClick:n,className:"flex cursor-pointer items-center gap-3 border-b border-[var(--border)] px-4 py-3 last:border-b-0 hover:bg-[var(--bg-input)] transition-colors",children:[e.jsx("span",{className:`h-2 w-2 shrink-0 rounded-full ${i?"bg-[var(--accent)]":"bg-[var(--warning)]"}`}),e.jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[e.jsx(A,{content:(s==null?void 0:s.sourceTaskDescription)??(s==null?void 0:s.description),className:"truncate",children:e.jsxs("span",{className:"truncate text-xs text-[var(--text-primary)]",children:["source #",t.sourceTaskId]})}),x&&e.jsxs("span",{className:"shrink-0 font-mono text-[11px] text-[var(--accent)]",children:["@",x.slice(0,7)]})]}),e.jsxs("span",{className:"text-[11px] text-[var(--text-muted)]",children:[t.tasks.length," ",t.tasks.length===1?"agent":"agents"," · ",t.tasks.map(o=>(o.agentType??"claude").toLowerCase()).join(", ")]})]}),s&&e.jsx("span",{className:"shrink-0 rounded-[4px] border border-[var(--border)] px-2 py-0.5 text-[11px] text-[var(--text-muted)]",children:s.projectKey}),s&&e.jsx("span",{className:"shrink-0 text-[11px] text-[var(--text-muted)]",children:P(s.createdAt)}),e.jsx("div",{className:"flex shrink-0 items-center gap-1",children:t.tasks.map(o=>e.jsx("span",{className:`h-2 w-2 rounded-full ${Z(o.status)}`,title:o.status.toLowerCase()},o.id))})]})}function C({mode:t,projectFilter:n,developerFilter:s}){const{t:i}=y(),x=S(),[o,u]=a.useState([]),[g,m]=a.useState(!0),h=$(),b=a.useCallback(async l=>{m(!0);try{const r=new URLSearchParams({taskMode:"review",limit:String(I),groupBySource:"true"});t==="in_progress"?r.set("status",[p.QUEUED,p.ASSIGNED,p.RUNNING,p.SUSPENDED].join(",")):r.set("status",[p.COMPLETED,p.FAILED,p.CANCELLED].join(",")),n&&r.set("projectKey",n),s&&r.set("sourceDeveloperId",s),l&&r.set("cursor",l);const c=await N.get(`web/tasks?${r}`).json();u(Y(c.data??[])),h.setNextCursor(c.nextCursor??void 0)}catch{u([]),h.setNextCursor(void 0)}finally{m(!1)}},[t,n,s]);return a.useEffect(()=>{b(h.cursor)},[b,h.cursor]),g&&o.length===0?e.jsx("div",{className:"p-4",children:e.jsx(L,{rows:4})}):!g&&o.length===0&&!h.hasPrev?e.jsx(D,{icon:E,title:i("review.no_reviews")}):e.jsxs(e.Fragment,{children:[o.length>0&&e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)]",children:o.map(l=>e.jsx(ee,{group:l,onClick:()=>x(`/review/${l.sourceTaskId}`)},l.sourceTaskId))}),e.jsx(_,{pag:h})]})}function pe(){const{t}=y(),n=G(v=>v.taskSeq),[s,i]=a.useState("pending"),[x,o]=a.useState(0),[u,g]=a.useState(""),[m,h]=a.useState(""),[b,l]=a.useState([]),[r,c]=a.useState([]);K(null);const f=a.useCallback(()=>o(v=>v+1),[]);a.useEffect(()=>{let v=!1;return(async()=>{try{const[U,M]=await Promise.all([N.get("web/projects").json(),N.get("web/projects/-/developers").json()]);if(v)return;l(U),c(M)}catch{}})(),()=>{v=!0}},[]);const d=a.useMemo(()=>[{value:"",label:t("tasks.filter_project")},...b.map(v=>({value:v.key,label:v.name}))],[b,t]),j=a.useMemo(()=>[{value:"",label:t("tasks.filter_developer")},...r.map(v=>({value:String(v.id),label:v.name}))],[r,t]),O=[{key:"pending",label:t("review.pending")},{key:"in_progress",label:t("review.in_progress")},{key:"history",label:t("review.history")}];return e.jsxs("div",{className:"mx-auto max-w-6xl px-2 py-4 md:px-4 md:py-6 font-mono",children:[e.jsx("h1",{className:"sr-only",children:t("review.title")}),e.jsxs("div",{className:"mb-4 flex flex-col gap-3 md:gap-4 md:flex-row md:items-center",children:[e.jsx("div",{className:"flex items-center gap-1 overflow-x-auto pb-1 md:pb-0 no-scrollbar",children:O.map(v=>e.jsx("button",{onClick:()=>i(v.key),className:`shrink-0 rounded-[4px] px-3 py-2 h-8 text-xs transition-colors ${s===v.key?"text-[var(--accent)] bg-[var(--bg-input)]":"text-[var(--text-muted)] bg-[var(--bg-card)] hover:text-[var(--text-secondary)]"}`,children:v.label},v.key))}),e.jsxs("div",{className:"flex flex-col gap-2 md:ml-auto md:flex-row md:items-center",children:[e.jsx(k,{value:u,onChange:g,options:d,className:"md:w-40"}),e.jsx(k,{value:m,onChange:h,options:j,className:"md:w-40"})]})]}),s==="pending"&&e.jsx(W,{onRefresh:f,projectFilter:u,developerFilter:m},`pending-${x}-${n}-${u}-${m}`),s==="in_progress"&&e.jsx(C,{mode:"in_progress",projectFilter:u,developerFilter:m},`inprogress-${x}-${n}-${u}-${m}`),s==="history"&&e.jsx(C,{mode:"history",projectFilter:u,developerFilter:m},`history-${x}-${n}-${u}-${m}`)]})}export{pe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l,j as t}from"./index-
|
|
1
|
+
import{r as l,j as t}from"./index-C7ov95n_.js";import{C as f}from"./chevron-down-CbnHKl5e.js";function h({value:r,onChange:x,options:c,placeholder:u,disabled:n=!1,className:m=""}){var i;const[a,o]=l.useState(!1),s=l.useRef(null),d=((i=c.find(e=>e.value===r))==null?void 0:i.label)??u??"";return l.useEffect(()=>{function e(v){s.current&&!s.current.contains(v.target)&&o(!1)}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),t.jsxs("div",{ref:s,className:`relative ${m}`,children:[t.jsxs("button",{type:"button",disabled:n,onClick:()=>!n&&o(!a),"aria-expanded":a,"aria-haspopup":"listbox",className:`flex w-full items-center justify-between rounded-[4px] border bg-[var(--bg-input)] px-3 py-2 font-mono text-xs outline-none transition-colors ${a?"border-[var(--accent)] text-[var(--text-primary)]":"border-[var(--border)] text-[var(--text-primary)] hover:border-[var(--text-muted)]"} ${n?"cursor-not-allowed opacity-50":"cursor-pointer"}`,children:[t.jsx("span",{className:r?"":"text-[var(--text-muted)]",children:d}),t.jsx(f,{size:12,className:`ml-2 shrink-0 text-[var(--text-muted)] transition-transform ${a?"rotate-180":""}`})]}),a&&t.jsx("div",{role:"listbox",className:"absolute right-0 z-50 mt-1 max-h-48 min-w-full w-max max-w-[calc(100vw-2rem)] overflow-auto rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] py-1 shadow-lg",children:c.map(e=>t.jsxs("button",{type:"button",role:"option","aria-selected":e.value===r,onClick:()=>{x(e.value),o(!1)},className:`flex w-full items-center px-3 py-1.5 text-left font-mono text-xs transition-colors ${e.value===r?"bg-[var(--accent)]/10 text-[var(--accent)]":"text-[var(--text-secondary)] hover:bg-[var(--bg-input)] hover:text-[var(--text-primary)]"}`,children:[e.value===r&&t.jsx("span",{className:"mr-2 text-[var(--accent)]",children:">"}),e.label]},e.value))})]})}export{h as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./index-
|
|
1
|
+
import{j as e}from"./index-C7ov95n_.js";const n="rounded-[4px] bg-[var(--border)] animate-pulse";function c({rows:r=5}){const a=[[60,200,80,120],[60,160,100,80],[60,220,70,140],[60,180,90,100],[60,190,110,90]];return e.jsx("div",{className:"flex flex-col gap-3",children:Array.from({length:r}).map((s,l)=>{const t=a[l%a.length];return e.jsx("div",{className:"flex gap-4",children:t.map((i,o)=>e.jsx("div",{className:n,style:{width:i,height:12}},o))},l)})})}function m({cards:r=4}){return e.jsx("div",{className:"grid grid-cols-2 gap-3",children:Array.from({length:r}).map((a,s)=>e.jsx("div",{className:`${n} h-20`},s))})}export{m as C,c as T};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t,j as e}from"./index-
|
|
1
|
+
import{a as t,j as e}from"./index-C7ov95n_.js";import{I as c,C as r}from"./DocsPrimitives-D8VRK-kO.js";import{E as n}from"./external-link-Beu7KLy4.js";import"./copy-BG1gOxig.js";const o=[{action:"create tasks",desc:"describe what you want done, overlord dispatches to a worker"},{action:"list & monitor tasks",desc:"check status, read execution logs, track progress"},{action:"cancel & retry tasks",desc:"manage task lifecycle"},{action:"confirm pipeline stages",desc:"approve or provide input for suspended stages"},{action:"manage projects",desc:"list projects, view members"},{action:"check cluster health",desc:"see worker status, online workers, queue depth"},{action:"search",desc:"find tasks, projects, and workers by keyword"},{action:"read notifications",desc:"check and clear your notification inbox"}],d=['create a task in project "frontend" to fix the login page styling',"what tasks are running right now?","show me the logs for task 42","how many workers are online?","cancel task 15"],i=[{name:"claude code",url:"https://claude.com/claude-code"},{name:"cursor",url:"https://cursor.com/cli"},{name:"windsurf",url:"https://windsurf.com"},{name:"codex",url:"https://openai.com/codex"}];function u(){t();const a=typeof window<"u"?window.location.origin:"https://your-server";return e.jsxs("div",{className:"mx-auto max-w-4xl px-4 md:px-6 py-8 font-mono lowercase",children:[e.jsx("div",{className:"mb-8",children:e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"// use overlord from your ai coding assistant — claude code, cursor, windsurf, codex, and more. install the skill and your assistant can create tasks, monitor execution, and manage your fleet."})}),e.jsxs("div",{className:"mb-8 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4 space-y-3",children:[e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"// install"}),e.jsx(c,{code:"npx skills add overlord-run/skill"})]}),e.jsxs("div",{className:"mb-8 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4 space-y-3",children:[e.jsx("p",{className:"text-xs text-[var(--text-muted)]",children:"// configure — set these environment variables"}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between rounded-[4px] bg-[var(--bg-primary)] px-3 py-2 overflow-x-auto",children:[e.jsxs("code",{className:"text-xs text-[var(--text-primary)] whitespace-nowrap",children:[e.jsx("span",{className:"text-[var(--text-muted)]",children:"export "}),"OVERLORD_SERVER=",e.jsx("span",{className:"text-[var(--accent)]",children:a})]}),e.jsx(r,{text:`export OVERLORD_SERVER=${a}`})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-[4px] bg-[var(--bg-primary)] px-3 py-2 overflow-x-auto",children:[e.jsxs("code",{className:"text-xs text-[var(--text-primary)] whitespace-nowrap",children:[e.jsx("span",{className:"text-[var(--text-muted)]",children:"export "}),"OVERLORD_TOKEN=",e.jsx("span",{className:"text-[var(--text-secondary)]",children:"your-token"})]}),e.jsx(r,{text:"export OVERLORD_TOKEN=your-token"})]})]}),e.jsxs("p",{className:"text-[11px] text-[var(--text-muted)]",children:["// create a token at ",e.jsx("a",{href:"/access-tokens",className:"text-[var(--accent)] hover:underline",children:"/access-tokens"})]})]}),e.jsxs("div",{className:"mb-8",children:[e.jsx("h2",{className:"mb-4 text-sm text-[var(--accent)]",children:"> capabilities"}),e.jsx("div",{className:"space-y-2",children:o.map(s=>e.jsxs("div",{className:"flex items-start gap-3 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] px-4 py-3",children:[e.jsx("span",{className:"shrink-0 text-xs font-medium text-[var(--text-primary)]",children:s.action}),e.jsxs("span",{className:"text-xs text-[var(--text-muted)]",children:["// ",s.desc]})]},s.action))})]}),e.jsxs("div",{className:"mb-8",children:[e.jsx("h2",{className:"mb-4 text-sm text-[var(--accent)]",children:"> example usage"}),e.jsxs("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4 space-y-2",children:[e.jsx("p",{className:"mb-3 text-xs text-[var(--text-muted)]",children:"// just ask your ai agent naturally"}),d.map(s=>e.jsx("div",{className:"rounded-[4px] bg-[var(--bg-primary)] px-3 py-2",children:e.jsxs("code",{className:"text-xs text-[var(--text-secondary)]",children:[e.jsx("span",{className:"text-[var(--accent)]",children:"> "}),s]})},s))]})]}),e.jsxs("div",{className:"mb-8",children:[e.jsx("h2",{className:"mb-4 text-sm text-[var(--accent)]",children:"> compatible tools"}),e.jsx("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4",children:i.map(s=>e.jsxs("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-1.5 rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] px-3 py-2.5 text-xs text-[var(--text-primary)] transition-colors hover:border-[var(--accent)]",children:[s.name,e.jsx(n,{className:"h-3 w-3 text-[var(--text-muted)]"})]},s.name))}),e.jsx("p",{className:"mt-2 text-[11px] text-[var(--text-muted)]",children:"// and any ai coding assistant that supports the skills protocol"})]}),e.jsx("div",{className:"rounded-[4px] border border-[var(--border)] bg-[var(--bg-card)] p-4",children:e.jsxs("p",{className:"text-xs text-[var(--text-muted)]",children:["// open source:"," ",e.jsx("a",{href:"https://github.com/overlord-run/skill",target:"_blank",rel:"noopener noreferrer",className:"text-[var(--accent)] hover:underline",children:"github.com/overlord-run/skill"})]})})]})}export{u as default};
|