@mndrk/agx 1.4.43 → 1.4.44
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/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-build-manifest.json +42 -42
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-path-routes-manifest.json +6 -6
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/build-manifest.json +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/prerender-manifest.json +21 -21
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/audit/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/[...nextauth]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/daemon-secret/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/device/code/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/device/token/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/domains/[id]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/domains/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/stream/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/stage-prompts/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/heartbeat/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/stream/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/nodes/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/[id]/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/workflows/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/callback/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device/page.js +5 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device.html +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/auth/device.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/dashboard.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/login.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/tasks/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/workflow/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app-paths-manifest.json +6 -6
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/2298.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/6317.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/functions-config-manifest.json +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/404.html +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/500.html +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages-manifest.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/2456-55b0941a94896404.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/device/page-63dcc7be20bbbe4a.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/dashboard/{page-161065be9ecc1540.js → page-f12cc2e8800728f7.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/tasks/page-5813cf2efcd8d555.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/page-42969463f06ac3e8.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/worker/index.js +2 -13
- package/package.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/2456-aba70fd10dd45071.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/auth/device/page-661b89cbe5f932b2.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/[slug]/tasks/page-1c83613d7bdd6e4d.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/app/projects/page-daef2760bde2a1c2.js +0 -1
- /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{bsp4ZPG83wIKKMbsnaGtA → 5Vyx3pPHVcvXeMq70wCFL}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{bsp4ZPG83wIKKMbsnaGtA → 5Vyx3pPHVcvXeMq70wCFL}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2456],{2325:(e,t,r)=>{r.d(t,{Tw:()=>n,ls:()=>i,mP:()=>m,ou:()=>u});var a=r(2115);let s={ideation:"\uD83D\uDCA1",planning:"\uD83D\uDCCB",execution:"\uD83D\uDCBB",verification:"\uD83E\uDDEA",done:"✅",coding:"\uD83D\uDCBB",qa:"\uD83E\uDDEA",acceptance:"✓",pr:"\uD83D\uDD00",pr_review:"\uD83D\uDC40",merge:"\uD83D\uDE80"},o={ideation:"var(--warning)",planning:"var(--info)",execution:"var(--primary)",verification:"var(--accent)",done:"var(--success)",coding:"var(--primary)",qa:"var(--accent)",acceptance:"#8b5cf6",pr:"#f97316",pr_review:"#ef4444",merge:"#22c55e"},n=["ideation","planning","execution","verification","done"],i={ideation:{icon:"\uD83D\uDCA1",label:"Ideation",color:"var(--warning)"},planning:{icon:"\uD83D\uDCCB",label:"Planning",color:"var(--info)"},execution:{icon:"\uD83D\uDCBB",label:"Execution",color:"var(--primary)"},verification:{icon:"\uD83E\uDDEA",label:"Verification",color:"var(--accent)"},done:{icon:"✅",label:"Done",color:"var(--success)"}},l="00000000-0000-0000-0000-000000000001",d=[{id:"00000000-0000-0000-0001-000000000001",workflow_id:l,name:"ideation",label:"Ideation",prompt:"Research and scope this. Define approach, estimate effort, list unknowns.",provider:null,model:null,position:0,node_type:"step",created_at:new Date(0).toISOString(),updated_at:new Date(0).toISOString()},{id:"00000000-0000-0000-0001-000000000002",workflow_id:l,name:"planning",label:"Planning",prompt:"Create detailed plan with tasks, milestones, and dependencies.",provider:null,model:null,position:1,node_type:"step",created_at:new Date(0).toISOString(),updated_at:new Date(0).toISOString()},{id:"00000000-0000-0000-0001-000000000003",workflow_id:l,name:"execution",label:"Execution",prompt:"Implement based on the plan. Write clean, tested code.",provider:null,model:null,position:2,node_type:"step",created_at:new Date(0).toISOString(),updated_at:new Date(0).toISOString()},{id:"00000000-0000-0000-0001-000000000004",workflow_id:l,name:"verification",label:"Verification",prompt:"Test thoroughly. Find edge cases. Fix bugs. Verify it works.",provider:null,model:null,position:3,node_type:"gate",created_at:new Date(0).toISOString(),updated_at:new Date(0).toISOString()},{id:"00000000-0000-0000-0001-000000000009",workflow_id:l,name:"done",label:"Done",prompt:"Task completed and shipped.",provider:null,model:null,position:4,node_type:"terminal",created_at:new Date(0).toISOString(),updated_at:new Date(0).toISOString()}],c=[{id:"fallback-ideation-planning",workflow_id:l,from_node:"ideation",to_node:"planning",condition:"done",priority:0,created_at:new Date(0).toISOString()},{id:"fallback-planning-execution",workflow_id:l,from_node:"planning",to_node:"execution",condition:"done",priority:0,created_at:new Date(0).toISOString()},{id:"fallback-execution-verification",workflow_id:l,from_node:"execution",to_node:"verification",condition:"done",priority:0,created_at:new Date(0).toISOString()},{id:"fallback-verification-done",workflow_id:l,from_node:"verification",to_node:"done",condition:"done",priority:0,created_at:new Date(0).toISOString()},{id:"fallback-verification-execution",workflow_id:l,from_node:"verification",to_node:"execution",condition:"failed",priority:1,created_at:new Date(0).toISOString()}],u="00000000-0000-0000-0000-000000000001";function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.workflowId||u,[r,m]=(0,a.useState)(null),[x,p]=(0,a.useState)(!0),[h,v]=(0,a.useState)(null),f=(0,a.useCallback)(async()=>{p(!0),v(null);try{var e;let r=await fetch("/api/workflows/".concat(t));if(!r.ok)throw Error("Failed to fetch workflow: ".concat(r.statusText));let a=await r.json(),s=null!=(e=a.workflow)?e:a,o=Array.isArray(s.nodes)?s.nodes:[];Array.isArray(s.transitions)&&s.transitions,o&&0!==o.length||t!==l?m(s):m({...s,nodes:d,transitions:c})}catch(e){console.error("Error fetching workflow:",e),v(e instanceof Error?e:Error(String(e)))}finally{p(!1)}},[t]);(0,a.useEffect)(()=>{f()},[f]);let g=(0,a.useMemo)(()=>{var e;return(null==r||null==(e=r.nodes)?void 0:e.length)?r.nodes.slice().sort((e,t)=>e.position-t.position).map(e=>e.name):[...n]},[r]),b=(0,a.useMemo)(()=>{var e;if(!(null==r||null==(e=r.nodes)?void 0:e.length))return i;let t={};for(let e of r.nodes)t[e.name]={icon:s[e.name]||"\uD83D\uDCCC",label:e.label||e.name.charAt(0).toUpperCase()+e.name.slice(1),color:o[e.name]||"var(--primary)"};return t},[r]),j=(0,a.useMemo)(()=>(null==r?void 0:r.transitions)||[],[r]),N=(0,a.useCallback)((e,t)=>{var a;if(e===t)return!0;if(!(null==r||null==(a=r.nodes)?void 0:a.length)){let r=n.indexOf(e),a=n.indexOf(t);return a<r||a===r+1}let s=g.indexOf(e),o=g.indexOf(t);return!!(o<s||j.some(r=>r.from_node===e&&r.to_node===t))||o===s+1},[r,g,j]);return{workflow:r,stages:g,stageConfig:b,transitions:j,isLoading:x,error:h,refetch:f,isValidTransition:N}}},5826:(e,t,r)=>{r.d(t,{A:()=>O});var a=r(5155),s=r(2115),o=r(4357);function n(e){let{comments:t,onAddComment:r,onDeleteComment:o}=e,[n,i]=(0,s.useState)(""),[l,d]=(0,s.useState)(!1),[c,u]=(0,s.useState)(!1),[m,x]=(0,s.useState)(null),p=async e=>{if(e.preventDefault(),n.trim()&&!c){u(!0);try{await r(n),i(""),d(!1)}finally{u(!1)}}},h=async e=>{if(o&&!m&&confirm("Are you sure you want to delete this comment?")){x(e);try{await o(e)}catch(e){console.error("Failed to delete comment:",e)}finally{x(null)}}};return(0,a.jsxs)("div",{className:"space-y-4",children:[l?(0,a.jsxs)("form",{onSubmit:p,className:"space-y-3 animate-fade-in-up",children:[(0,a.jsx)("textarea",{value:n,onChange:e=>i(e.target.value),placeholder:"Add context, decisions, or guidance...",className:"input resize-none h-24 focus:ring-2 focus:ring-[var(--primary)]/20",autoFocus:!0,disabled:c}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("button",{type:"submit",disabled:!n.trim()||c,className:"btn-primary px-4 py-2 flex items-center gap-2",children:c?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"spinner w-4 h-4 border-2 border-white/20 border-t-white"}),"Adding..."]}):"Add Comment"}),(0,a.jsx)("button",{type:"button",onClick:()=>{d(!1),i("")},disabled:c,className:"btn-ghost px-4 py-2",children:"Cancel"})]})]}):(0,a.jsx)("button",{onClick:()=>d(!0),className:"w-full py-3 border-2 border-dashed border-[var(--card-border)] rounded-xl text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:border-[var(--primary)] hover:bg-[var(--primary-muted)] transition-all duration-200 text-sm font-medium focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2",children:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:[(0,a.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})}),"Add comment"]})}),0===t.length?(0,a.jsxs)("div",{className:"text-center py-12 animate-fade-in",children:[(0,a.jsx)("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-xl bg-[var(--background)] border border-[var(--card-border)] mb-3",children:(0,a.jsx)("span",{className:"text-xl opacity-50",children:"\uD83D\uDCDD"})}),(0,a.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm",children:"No comments yet"}),(0,a.jsx)("p",{className:"text-[var(--muted-foreground)] text-xs mt-1",children:"Add context and guidance for this task"})]}):(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("div",{className:"timeline-line"}),(0,a.jsx)("div",{className:"space-y-4",children:t.map((e,t)=>(0,a.jsxs)("div",{className:"timeline-item relative pl-7 animate-fade-in-up",style:{animationDelay:"".concat(50*t,"ms")},children:[(0,a.jsx)("div",{className:"timeline-dot"}),(0,a.jsxs)("div",{className:"card p-4 hover:border-[var(--primary)]/30 group",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-xs text-[var(--muted-foreground)] tabular-nums",children:new Date(e.created_at).toLocaleString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}),e.author_type&&(0,a.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-[var(--muted-foreground)]",children:e.author_type})]}),o&&"user"===e.author_type&&(0,a.jsx)("button",{onClick:()=>h(e.id),disabled:m===e.id,className:"opacity-0 group-hover:opacity-100 transition-opacity text-[var(--muted-foreground)] hover:text-[var(--destructive)] p-1 rounded",title:"Delete comment",children:m===e.id?(0,a.jsx)("span",{className:"spinner w-3 h-3 border-2 border-current border-t-transparent"}):(0,a.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})})})]}),(0,a.jsx)("p",{className:"text-sm whitespace-pre-wrap leading-relaxed",children:e.content})]})]},e.id))})]})]})}var i=r(577);let l={30:"#94a3b8",31:"#f87171",32:"#4ade80",33:"#facc15",34:"#60a5fa",35:"#c084fc",36:"#22d3ee",37:"#e2e8f0",90:"#64748b",91:"#ef4444",92:"#22c55e",93:"#eab308",94:"#3b82f6",95:"#a855f7",96:"#06b6d4",97:"#f8fafc"},d=/\u001b\[([0-9;]*)m/g,c=/(^|\s)\[((?:\d{1,3};)*\d{1,3})m(\s|$)/g;function u(e){return Math.max(0,Math.min(255,e))}function m(e){let{taskId:t,status:r}=e,[o,n]=(0,s.useState)(!1),[m,x]=(0,s.useState)(!1),{output:p,isLoading:h,isStreaming:v}=(0,i.zH)(t,{enabled:o,tail:500,maxChars:2e5}),f=(0,s.useRef)(null);(0,s.useEffect)(()=>{o&&f.current&&(f.current.scrollTop=f.current.scrollHeight)},[p,o]);let g=p||(h?"Loading logs...":"in_progress"===r?"Waiting for live output...":"No output yet."),b=(0,s.useMemo)(()=>o?function(e){if(!e)return[];let t=e.replace(c,(e,t,r,a)=>t&&a?" ":t||a||""),r=[],a={},s=0;for(let e of t.matchAll(d)){var o;let n=null!=(o=e.index)?o:0;if(n>s){let e=t.slice(s,n);r.push({text:e,style:Object.keys(a).length?{...a}:void 0})}a=function(e,t){let r={...e},a=(t||"0").split(";").map(e=>Number.parseInt(e,10)).filter(e=>Number.isFinite(e));for(let e=0;e<a.length;e+=1){let t=a[e];if(0===t){delete r.color,delete r.fontStyle,delete r.fontWeight,delete r.textDecoration;continue}if(1===t){r.fontWeight=700;continue}if(3===t){r.fontStyle="italic";continue}if(4===t){r.textDecoration="underline";continue}if(22===t){delete r.fontWeight;continue}if(23===t){delete r.fontStyle;continue}if(24===t){delete r.textDecoration;continue}if(39===t){delete r.color;continue}if(38===t){let t=a[e+1];if(5===t&&Number.isFinite(a[e+2]))r.color=function(e){let t=Math.max(0,Math.min(255,e));if(t<16)return l[[30,31,32,33,34,35,36,37,90,91,92,93,94,95,96,97][t]]||"#e2e8f0";if(t>=232){let e=Math.round((t-232)/23*255);return"rgb(".concat(e,", ").concat(e,", ").concat(e,")")}let r=t-16,a=Math.floor(r/36),s=Math.floor(r%36/6),o=e=>0===e?0:40*e+55;return"rgb(".concat(o(a),", ").concat(o(s),", ").concat(o(r%6),")")}(a[e+2]),e+=2;else if(2===t&&Number.isFinite(a[e+2])&&Number.isFinite(a[e+3])&&Number.isFinite(a[e+4])){let t=u(a[e+2]),s=u(a[e+3]),o=u(a[e+4]);r.color="rgb(".concat(t,", ").concat(s,", ").concat(o,")"),e+=4}continue}l[t]&&(r.color=l[t])}return r}(a,e[1]||"0"),s=n+e[0].length}return s<t.length&&r.push({text:t.slice(s),style:Object.keys(a).length?{...a}:void 0}),function(e){if(!e.length)return e;let t=[];for(let r of e){if(!r.text)continue;let e=t[t.length-1],a=!!e&&JSON.stringify(e.style||null)===JSON.stringify(r.style||null);e&&a?e.text+=r.text:t.push({text:r.text,style:r.style?{...r.style}:void 0})}return t}(r)}(g):[],[g,o]);return(0,a.jsxs)("div",{className:"border-t border-[var(--card-border)] pt-8",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>n(e=>!e),className:"w-full flex items-center justify-between text-xs font-semibold uppercase tracking-wider text-[var(--muted-foreground)]","aria-expanded":o,children:[(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{children:"Terminal Stream"}),v&&(0,a.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full bg-emerald-500/15 text-emerald-400 border border-emerald-500/30",children:"Live"})]}),(0,a.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:o?"Collapse":"Expand"})]}),o&&(0,a.jsxs)("div",{className:"mt-4 rounded-xl border border-[var(--card-border)] bg-[#0b0f14] shadow-inner transition-all duration-300 ease-in-out",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-white/10 text-[10px] uppercase tracking-widest text-white/60",children:[(0,a.jsx)("span",{children:"Run Log"}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"font-mono text-[10px]",children:v?"Streaming":"Idle"}),(0,a.jsx)("button",{onClick:()=>x(!m),className:"hover:text-white transition-colors p-1",title:m?"Collapse View":"Expand View",children:m?(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M8 3v3a2 2 0 0 1-2 2H3"}),(0,a.jsx)("path",{d:"M21 8h-3a2 2 0 0 1-2-2V3"}),(0,a.jsx)("path",{d:"M3 16h3a2 2 0 0 1 2 2v3"}),(0,a.jsx)("path",{d:"M16 21v-3a2 2 0 0 1 2-2h3"})]}):(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M15 3h6v6"}),(0,a.jsx)("path",{d:"M9 21H3v-6"}),(0,a.jsx)("path",{d:"M21 3l-7 7"}),(0,a.jsx)("path",{d:"M3 21l7-7"})]})})]})]}),(0,a.jsx)("div",{ref:f,className:"".concat(m?"max-h-[70vh]":"max-h-64"," overflow-y-auto px-3 py-3 font-mono text-xs text-slate-200 whitespace-pre-wrap leading-relaxed transition-all duration-300 ease-in-out"),children:b.map((e,t)=>(0,a.jsx)("span",{style:e.style,children:e.text},"".concat(t,"-").concat(e.text.length)))})]})]})}let x={task:{label:"This Task",icon:"\uD83D\uDCCC",color:"var(--primary)",bgColor:"var(--primary-muted)",description:"Specific to this task only"},project:{label:"Project",icon:"\uD83D\uDCC1",color:"var(--accent)",bgColor:"var(--accent-muted)",description:"Applies to the whole project"},global:{label:"Playbook",icon:"\uD83D\uDCD6",color:"var(--warning)",bgColor:"var(--warning-muted)",description:"Universal best practices"}};function p(e){var t,r;let{learnings:o,taskId:n,projectContext:i,onAddLearning:l,compact:d=!1}=e,[c,u]=(0,s.useState)(!1),[m,p]=(0,s.useState)(""),[h,v]=(0,s.useState)("task"),[f,g]=(0,s.useState)(!1),b=(null==i?void 0:i.project)?[i.project.id,i.project.slug].filter(Boolean):[],j=(null==i||null==(t=i.project)?void 0:t.name)||(null==i||null==(r=i.project)?void 0:r.slug)||"Project",N=async e=>{if(e.preventDefault(),m.trim()&&!f){g(!0);try{let e="project"===h?b[0]:void 0;await l(m,h,e),p(""),u(!1)}finally{g(!1)}}},y=o.filter(e=>"task"===e.scope&&e.scope_id===n),w=b.length?o.filter(e=>"project"===e.scope&&e.scope_id&&b.includes(e.scope_id)):[],k=o.filter(e=>"global"===e.scope),_=(e,t,r)=>{let s=x[e];return(0,a.jsxs)("div",{className:d?"mb-4":"mb-6",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 ".concat(d?"mb-2":"mb-3"),children:[(0,a.jsx)("span",{className:"w-5 h-5 rounded-lg flex items-center justify-center text-xs",style:{backgroundColor:s.bgColor},children:s.icon}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-xs font-semibold",style:{color:s.color},children:r||s.label}),!d&&(0,a.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)]",children:s.description})]})]}),0===t.length?(0,a.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] py-2 text-center bg-[var(--background)] rounded-lg border border-dashed border-[var(--card-border)]",children:"No learnings yet"}):(0,a.jsx)("ul",{className:"space-y-1.5",children:t.map((e,t)=>(0,a.jsx)("li",{className:"text-xs bg-[var(--background)] rounded-lg ".concat(d?"p-2":"p-3"," border border-[var(--card-border)]\n hover:border-[color-mix(in_srgb,var(--primary)_30%,var(--card-border))] \n transition-colors animate-fade-in-up"),style:{animationDelay:"".concat(30*t,"ms")},children:e.content},e.id))})]})};return(0,a.jsxs)("div",{children:[!d&&(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,a.jsx)("span",{className:"text-lg",children:"\uD83D\uDCA1"}),(0,a.jsx)("h3",{className:"text-lg font-semibold",children:"Learnings"}),(0,a.jsx)("span",{className:"text-xs text-[var(--muted-foreground)] bg-[var(--muted)] px-2 py-0.5 rounded-full",children:o.length})]}),c?(0,a.jsxs)("form",{onSubmit:N,className:"".concat(d?"mb-3":"mb-5"," space-y-2 animate-fade-in-up"),children:[(0,a.jsx)("textarea",{value:m,onChange:e=>p(e.target.value),placeholder:"What did you learn?",className:"input resize-none ".concat(d?"h-16 text-xs":"h-20 text-sm"),autoFocus:!0,disabled:f}),(0,a.jsx)("div",{className:"flex gap-1",children:["task","project","global"].map(e=>{let t=x[e],r=h===e,s="project"===e&&0===b.length;return(0,a.jsxs)("button",{type:"button",onClick:()=>v(e),disabled:s,className:"\n flex-1 flex items-center justify-center gap-1 px-1.5 py-1 text-[10px] font-medium rounded-lg\n transition-all duration-200\n ".concat(r?"text-white shadow-md":"bg-[var(--background)] text-[var(--muted-foreground)] hover:text-[var(--foreground)]","\n ").concat(s?"opacity-40 cursor-not-allowed":"","\n "),style:r?{backgroundColor:t.color,boxShadow:"0 2px 8px -2px ".concat(t.color,"60")}:void 0,children:[(0,a.jsx)("span",{children:t.icon}),!d&&(0,a.jsx)("span",{children:t.label})]},e)})}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("button",{type:"submit",disabled:!m.trim()||f,className:"btn-primary px-2 py-1 text-xs flex items-center gap-1.5",children:f?"...":"Add"}),(0,a.jsx)("button",{type:"button",onClick:()=>{u(!1),p("")},disabled:f,className:"btn-ghost px-2 py-1 text-xs",children:"Cancel"})]})]}):(0,a.jsx)("button",{onClick:()=>u(!0),className:"w-full ".concat(d?"py-2 mb-3":"py-3 mb-5"," border-2 border-dashed border-[var(--card-border)] rounded-xl \n text-[var(--muted-foreground)] hover:text-[var(--foreground)] \n hover:border-[var(--primary)] hover:bg-[var(--primary-muted)]\n transition-all duration-200 text-xs font-medium"),children:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:[(0,a.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})}),"Add learning"]})}),_("task",y),b.length>0&&_("project",w,"Project: ".concat(j)),_("global",k,"Global Playbook")]})}let h=[{id:"ideation",icon:"\uD83D\uDCA1",label:"Ideation",prompt:"Research and scope. Define approach, estimate effort.",color:"var(--warning)"},{id:"planning",icon:"\uD83D\uDCCB",label:"Planning",prompt:"Create detailed plan with tasks, milestones, and dependencies.",color:"var(--info)"},{id:"coding",icon:"\uD83D\uDCBB",label:"Coding",prompt:"Write clean, tested code based on plan.",color:"var(--primary)"},{id:"qa",icon:"\uD83E\uDDEA",label:"QA",prompt:"Test thoroughly. Find edge cases. Fix bugs.",color:"var(--accent)"},{id:"acceptance",icon:"✓",label:"Acceptance",prompt:"Demo to user. Get sign-off. Address feedback.",color:"#8b5cf6"},{id:"pr",icon:"\uD83D\uDD00",label:"PR",prompt:"Create and review pull request. Ensure all checks pass and merge.",color:"#f97316"},{id:"pr_review",icon:"\uD83D\uDC40",label:"PR Review",prompt:"Review the PR. Verify code quality and functionality. Approve or request changes.",color:"#ef4444"},{id:"merge",icon:"\uD83D\uDE80",label:"Merge",prompt:"Merge the PR and verify deployment.",color:"#22c55e"},{id:"done",icon:"✅",label:"Done",prompt:"Task finished and shipped.",color:"var(--success)"}];function v(e){let{currentStage:t,onStageChange:r,readonly:s,size:o="md",stageDecisions:n,stages:i}=e,l=i||h,d=t?l.findIndex(e=>e.id===t):-1;return(0,a.jsx)("div",{className:"flex items-center gap-1 flex-wrap",role:"tablist","aria-label":"Task stages",children:l.map((e,i)=>{let c=e.id===t,u=d>i,m=!s&&r,x=null==n?void 0:n[e.id],p=["".concat(e.label,": ").concat(e.prompt||"")];return(null==x?void 0:x.decision)&&p.push("Decision: ".concat(x.decision)),(null==x?void 0:x.rationale)&&p.push("Rationale: ".concat(x.rationale)),(0,a.jsxs)("button",{onClick:()=>m&&r(e.id),disabled:s,title:p.join(" | "),role:"tab","aria-selected":c,"aria-disabled":s,className:"\n group relative flex items-center gap-1.5 rounded-lg font-medium\n transition-all duration-200 select-none\n focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2\n ".concat("sm"===o?"px-2 py-1 text-[10px]":"px-3 py-1.5 text-xs","\n ").concat(c?"text-white shadow-md":u?"bg-[var(--success-muted)] text-[var(--success)]":d<i&&-1!==d?"bg-[var(--background)] text-[var(--muted-foreground)] opacity-50":"bg-[var(--background)] text-[var(--muted-foreground)]","\n ").concat(m&&!c?"hover:bg-[var(--card-border)] hover:text-[var(--foreground)] cursor-pointer":"","\n ").concat(s?"cursor-default":"","\n "),style:c?{backgroundColor:e.color,boxShadow:"0 4px 14px -3px ".concat(e.color,"40")}:void 0,children:[(0,a.jsx)("span",{className:"".concat("sm"===o?"text-xs":"text-sm"," ").concat(c?"":"opacity-80"),children:e.icon}),(0,a.jsx)("span",{className:"hidden lg:inline",children:e.label}),i<l.length-1&&(0,a.jsx)("span",{className:"\n absolute -right-1 top-1/2 -translate-y-1/2 w-2 h-0.5 \n ".concat(u||c?"bg-[var(--success)]":"bg-[var(--card-border)]","\n transition-colors duration-300 hidden lg:block\n ")}),(0,a.jsx)("span",{className:"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 text-[10px] font-normal whitespace-nowrap bg-[var(--card-bg)] text-[var(--foreground)] border border-[var(--card-border)] rounded-md shadow-lg opacity-0 group-hover:opacity-100 pointer-events-none transition-opacity duration-200 lg:hidden z-50",children:e.label})]},e.id)})})}var f=r(8661),g=r.n(f),b=r(154),j=r(758),N=r(7004),y=r(6135),w=r(5226);let k=e=>{let{editor:t}=e;return t?(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1 p-2 border-b border-[var(--card-border)] mb-2 sticky top-0 bg-[var(--card-bg)] z-10 opacity-90 backdrop-blur-sm",children:[(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleBold().run(),disabled:!t.can().chain().focus().toggleBold().run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("bold")?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"Bold",children:(0,a.jsx)("span",{className:"font-bold font-serif",children:"B"})}),(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleItalic().run(),disabled:!t.can().chain().focus().toggleItalic().run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("italic")?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"Italic",children:(0,a.jsx)("span",{className:"italic font-serif",children:"I"})}),(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleStrike().run(),disabled:!t.can().chain().focus().toggleStrike().run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("strike")?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"Strike",children:(0,a.jsx)("span",{className:"line-through font-serif",children:"S"})}),(0,a.jsx)("div",{className:"w-px h-4 bg-[var(--card-border)] mx-1"}),(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleCode().run(),disabled:!t.can().chain().focus().toggleCode().run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("code")?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"Code",children:(0,a.jsx)("span",{className:"font-mono text-xs",children:"<>"})}),(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleCodeBlock().run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("codeBlock")?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"Code Block",children:(0,a.jsx)("span",{className:"font-mono text-xs",children:"CB"})}),(0,a.jsx)("div",{className:"w-px h-4 bg-[var(--card-border)] mx-1"}),(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleHeading({level:1}).run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("heading",{level:1})?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"H1",children:(0,a.jsx)("span",{className:"font-bold text-xs",children:"H1"})}),(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleHeading({level:2}).run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("heading",{level:2})?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"H2",children:(0,a.jsx)("span",{className:"font-bold text-xs",children:"H2"})}),(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleHeading({level:3}).run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("heading",{level:3})?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"H3",children:(0,a.jsx)("span",{className:"font-bold text-xs",children:"H3"})}),(0,a.jsx)("div",{className:"w-px h-4 bg-[var(--card-border)] mx-1"}),(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleBulletList().run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("bulletList")?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"Bullet List",children:(0,a.jsx)("span",{className:"text-xs",children:"• List"})}),(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleOrderedList().run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("orderedList")?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"Ordered List",children:(0,a.jsx)("span",{className:"text-xs",children:"1. List"})}),(0,a.jsx)("button",{onClick:()=>t.chain().focus().toggleBlockquote().run(),className:"p-1.5 rounded hover:bg-[var(--muted)] ".concat(t.isActive("blockquote")?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--muted-foreground)]"),title:"Quote",children:(0,a.jsx)("span",{className:"text-xs serif italic",children:'""'})})]}):null};function _(e){let{content:t,editable:r=!0,onChange:o,onBlur:n,placeholder:i="Add a description..."}=e,l=(0,b.hG)({extensions:[j.A,y.Ay.configure({openOnClick:!1}),N.A.configure({placeholder:i,emptyEditorClass:"is-editor-empty before:content-[attr(data-placeholder)] before:text-[var(--muted-foreground)] before:float-left before:pointer-events-none before:h-0"}),w.o.configure({html:!1,transformPastedText:!0,transformCopiedText:!0})],immediatelyRender:!1,content:t,editable:r,editorProps:{attributes:{class:"prose prose-sm max-w-none focus:outline-none min-h-[100px] text-[var(--foreground)]"}},onUpdate:e=>{let{editor:t}=e;null==o||o(t.storage.markdown.getMarkdown())},onBlur:()=>{null==n||n()}});return(0,s.useEffect)(()=>{l&&t!==l.storage.markdown.getMarkdown()&&!l.isFocused&&l.commands.setContent(t)},[t,l]),(0,a.jsxs)("div",{className:"jsx-cdf669dd826a0677 relative group",children:[r&&(0,a.jsx)(k,{editor:l}),(0,a.jsx)(b.$Z,{editor:l,className:"rich-text-editor"}),(0,a.jsx)(g(),{id:"cdf669dd826a0677",children:".rich-text-editor .ProseMirror{min-height:100px;outline:none}.rich-text-editor .ProseMirror p{margin-bottom:.75em;line-height:1.6}.rich-text-editor .ProseMirror h1{font-size:1.5em;font-weight:700;margin-top:1em;margin-bottom:.5em}.rich-text-editor .ProseMirror h2{font-size:1.25em;font-weight:600;margin-top:1em;margin-bottom:.5em}.rich-text-editor .ProseMirror h3{font-size:1.1em;font-weight:600;margin-top:1em;margin-bottom:.5em}.rich-text-editor .ProseMirror ul{list-style-type:disc;padding-left:1.5em;margin-bottom:.75em}.rich-text-editor .ProseMirror ol{list-style-type:decimal;padding-left:1.5em;margin-bottom:.75em}.rich-text-editor .ProseMirror blockquote{border-left:3px solid var(--card-border);padding-left:1em;font-style:italic;color:var(--muted-foreground)}.rich-text-editor .ProseMirror pre{background:var(--muted);padding:.75em;border-radius:var(--radius-sm);font-family:monospace;overflow-x:auto;margin-bottom:.75em}.rich-text-editor .ProseMirror code{background:var(--muted);padding:.2em .4em;border-radius:var(--radius-sm);font-family:monospace;font-size:.85em}.rich-text-editor .ProseMirror a{color:var(--primary);text-decoration:underline}"})]})}var C=r(91),S=r(2619),D=r.n(S);function A(e){var t,r,s;let{projectContext:o,fallbackProjectSlug:n}=e,i=(null==o?void 0:o.project)||null,l=null!=(t=null==o?void 0:o.repos)?t:[],d=null!=(r=null==o?void 0:o.learnings)?r:[],c=(s=null==i?void 0:i.metadata)&&"object"==typeof s?Object.entries(s).filter(e=>{let[t]=e;return!!t}):[];if(!i)return(0,a.jsxs)("div",{className:"p-4 rounded-2xl border border-dashed border-[var(--card-border)] bg-[var(--card-bg)]/60 space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Project Context"}),(0,a.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:n?'Task is tagged with "'.concat(n,'" but no structured project context is available yet.'):"This task is not connected to a project. Link it to unlock repo maps, CI/CD notes, and project learnings."})]}),(0,a.jsx)(D(),{href:"/projects",className:"inline-flex items-center justify-center text-xs font-semibold px-3 py-1.5 rounded-full border border-[var(--card-border)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-colors",children:"Manage Projects"})]});let u=d.slice(0,3),m=d.length-u.length;return(0,a.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Project Context"}),(0,a.jsx)("h3",{className:"text-base font-semibold leading-tight mt-1",children:i.name}),(0,a.jsx)("p",{className:"text-[11px] uppercase tracking-wide text-[var(--muted-foreground)]",children:i.slug})]}),(0,a.jsx)(D(),{href:"/projects",className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-colors",children:"View"})]}),i.description&&(0,a.jsx)("p",{className:"text-sm text-[var(--foreground)] whitespace-pre-line",children:i.description}),i.ci_cd_info&&(0,a.jsxs)("div",{className:"text-xs space-y-1",children:[(0,a.jsx)("p",{className:"font-semibold text-[var(--muted-foreground)] uppercase tracking-wide",children:"CI / CD"}),(0,a.jsx)("p",{className:"text-[var(--foreground)] text-sm",children:i.ci_cd_info})]}),c.length>0&&(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)] mb-2",children:"Metadata"}),(0,a.jsx)("dl",{className:"space-y-1.5",children:c.map(e=>{let[t,r]=e;return(0,a.jsxs)("div",{className:"flex items-start justify-between gap-2 text-xs",children:[(0,a.jsx)("dt",{className:"font-semibold text-[var(--foreground)]",children:t}),(0,a.jsx)("dd",{className:"text-[var(--muted-foreground)] text-right max-w-[160px]",children:"string"==typeof r?r:JSON.stringify(r)})]},t)})})]}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Repository Map"}),(0,a.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:l.length?"".concat(l.length," connected"):"None"})]}),0===l.length?(0,a.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Add repositories to help agents navigate local and remote paths."}):(0,a.jsx)("ul",{className:"space-y-2",children:l.map(e=>(0,a.jsxs)("li",{className:"p-2 rounded-xl border border-[var(--card-border)] bg-[var(--background)] space-y-1 text-xs",children:[(0,a.jsx)("p",{className:"font-semibold text-[var(--foreground)]",children:e.name}),e.path&&(0,a.jsxs)("p",{className:"text-[var(--muted-foreground)]",children:["Path: ",e.path]}),e.git_url&&(0,a.jsxs)("p",{className:"text-[var(--muted-foreground)] break-all",children:["Repo: ",(0,a.jsx)("span",{className:"text-[var(--primary)]",children:e.git_url})]}),e.notes&&(0,a.jsxs)("p",{className:"text-[var(--muted-foreground)]",children:["Notes: ",e.notes]})]},e.id||e.name))})]}),d.length>0&&(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)] mb-2",children:"Project Learnings"}),(0,a.jsx)("ul",{className:"space-y-1 text-xs text-[var(--foreground)]",children:u.map((e,t)=>(0,a.jsxs)("li",{className:"leading-relaxed",children:["• ",e]},"".concat(e,"-").concat(t)))}),m>0&&(0,a.jsxs)("p",{className:"text-[11px] text-[var(--muted-foreground)] mt-1",children:["+",m," more learnings in the panel below"]})]})]})}var M=r(8545);let L={queued:{label:"Queued",color:"var(--status-queued)",bgColor:"var(--status-queued-bg)"},in_progress:{label:"In Progress",color:"var(--status-in-progress)",bgColor:"var(--status-in-progress-bg)"},blocked:{label:"Blocked",color:"var(--status-blocked)",bgColor:"var(--status-blocked-bg)"},completed:{label:"Completed",color:"var(--status-completed)",bgColor:"var(--status-completed-bg)"},failed:{label:"Failed",color:"var(--status-failed)",bgColor:"var(--status-failed-bg)"}},P=["queued","in_progress","blocked","completed","failed"];function I(e){if(!e)return"N/A";let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function T(e){let t=(e.log_type||"output").toLowerCase();return"output"===t?e.content||"":"[".concat(t,"] ").concat(e.content||"")}function O(e){var t,r,i,l,d,c,u,x,f,g,b,j;let{task:N,comments:y,learnings:w,projectContext:k,projects:S,stage_config:D,stages:O,isDraft:F=!1,isCreating:B=!1,onClose:R,onAddComment:q,onDeleteComment:H,onAddLearning:W,onUpdate:z,onDelete:V}=e,{providers:U}=(0,M.u)(),{projects:Q}=(0,C.Y)(),G=S||Q,Y=O||h,[J,$]=(0,s.useState)(!1),[Z,K]=(0,s.useState)(!1),[X,ee]=(0,s.useState)(!1),[et,er]=(0,s.useState)(""),[ea,es]=(0,s.useState)(null),[eo,en]=(0,s.useState)(!1),[ei,el]=(0,s.useState)(N.provider||""),[ed,ec]=(0,s.useState)(N.model||""),[eu,em]=(0,s.useState)(null!=(d=N.swarm)&&d),[ex,ep]=(0,s.useState)([]),[eh,ev]=(0,s.useState)("gemini"),[ef,eg]=(0,s.useState)(""),[eb,ej]=(0,s.useState)(!1),[eN,ey]=(0,s.useState)(null),ew=N.resolved_provider||(null==D?void 0:D.provider)||"gemini",ek=N.resolved_model||(null==D?void 0:D.model)||"",e_=null!=(u=null!=(c=N.swarm)?c:null==D?void 0:D.swarm)&&u;N.resolved_swarm_models||null==D||D.swarm_models;let eC=null!=(x=null!=k?k:N.project_context)?x:null,eS=null!=(g=null!=(f=null==eC||null==(t=eC.project)?void 0:t.slug)?f:N.project)?g:null,[eD,eA]=(0,s.useState)(N.title||""),[eM,eL]=(0,s.useState)(""),eP=e=>{let t=e.match(/^---\n[\s\S]*?\n---\n([\s\S]*)$/);return t?t[1]:e};(0,s.useEffect)(()=>{var e;el(N.provider||""),ec(N.model||""),em(null!=(e=N.swarm)&&e),ep(Array.isArray(N.swarm_models)?N.swarm_models.filter(e=>e&&"string"==typeof e.provider&&"string"==typeof e.model).map(e=>({provider:e.provider.trim(),model:e.model.trim()})).filter(e=>e.provider&&e.model):[])},[N.provider,N.model,N.swarm,N.swarm_models,N.id]),(0,s.useEffect)(()=>{eA(N.title||"")},[N.title,N.id]),(0,s.useEffect)(()=>{var e;eL(null!=(e=N.description)?e:eP(N.content||""))},[N.content,N.description,N.id]),(0,s.useEffect)(()=>{let e=!1;if("failed"!==N.status){er(""),es(null),en(!1);return}return(async()=>{en(!0),es(null);try{let t=await fetch("/api/tasks/".concat(N.id,"/logs?tail=200")),r=await t.json().catch(()=>({}));if(!t.ok)throw Error((null==r?void 0:r.error)||"Failed to load logs (".concat(t.status,")"));let a=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e4,r=Array.isArray(e)?e:[];if(!r.length)return"";let a=r.slice().sort((e,t)=>e.created_at===t.created_at?e.id.localeCompare(t.id):e.created_at.localeCompare(t.created_at)),s=a.filter(e=>"error"===(e.log_type||"").toLowerCase()),o=a.filter(e=>{let t=String(e.content||"");return t.includes("[execution/")&&(t.includes("stderr_tail:")||t.includes("stdout_tail:")||t.includes(" phase error")||t.includes(" error=")||t.includes(" exit="))}),n=(s.length>0?s.slice(-8):o.length>0?o.slice(-4):a.slice(-12)).map(T).join("\n");return n?n.length>t?n.slice(-t):n:""}((null==r?void 0:r.logs)||[]);e||er(a)}catch(t){e||es(t instanceof Error?t.message:String(t))}finally{e||en(!1)}})(),()=>{e=!0}},[N.id,N.status]);let eI=async()=>{ee(!0);try{await (null==V?void 0:V())}finally{ee(!1),K(!1)}},eT=(0,o.YQ)(async e=>{var t;F||e===(null!=(t=N.description)?t:eP(N.content||""))||await z({description:e})},1e3),eO=(0,o.YQ)(async e=>{if(!F&&e!==(N.title||"")){ej(!0);try{await z({title:e})}finally{ej(!1)}}},1e3),eE=(0,o.YQ)(async e=>{ej(!0),ey(null);try{await z(e)}catch(e){ey(e instanceof Error?e.message:"Failed to update settings")}finally{ej(!1)}},1e3),eF=async e=>{let t="done"===e?"completed":"ideation"===e?"queued":"in_progress";if(F)return void await z({stage:e,status:t});await z({stage:e,status:t})},eB=async e=>{if(!e)return void await z({project:null,project_id:null});let t=G.find(t=>t.id===e);t&&await z({project:t.slug,project_id:t.id})},eR=async()=>{try{await eH("queued")}catch(e){console.error("Failed to retry task",e)}},eq=async()=>{try{await eH("queued")}catch(e){console.error("Failed to unblock task",e)}},eH=async e=>{let t={status:e};"queued"===e&&(t.started_at=null,t.completed_at=null,t.error=void 0),"completed"!==e&&"failed"!==e&&"blocked"!==e||N.completed_at||(t.completed_at=new Date().toISOString()),await z(t)};L[N.status||"queued"];let eW=N.stage_decisions||{},ez=N.stage?eW[N.stage]:void 0,eV=function(e,t){if(!e||"object"!=typeof e)return null;let r=Object.entries(e).filter(e=>{let[,r]=e;return!!(r&&t(r))}).sort((e,t)=>{var r,a;let s=Date.parse((null==(r=e[1])?void 0:r.decided_at)||""),o=Date.parse((null==(a=t[1])?void 0:a.decided_at)||"");return(Number.isNaN(o)?0:o)-(Number.isNaN(s)?0:s)});if(!r.length)return null;let[a,s]=r[0];return{stage:a,decision:s}}(eW,e=>"failed"===e.decision),eU=Object.entries(eW).filter(e=>{let[,t]=e;return(null==t?void 0:t.decision)==="blocked"}).sort((e,t)=>{var r,a;let s=Date.parse((null==(r=e[1])?void 0:r.decided_at)||""),o=Date.parse((null==(a=t[1])?void 0:a.decided_at)||"");return(Number.isNaN(o)?0:o)-(Number.isNaN(s)?0:s)})[0],eQ=(null==ez?void 0:ez.decision)==="blocked"?N.stage:null==eU?void 0:eU[0],eG=eQ&&eW[eQ]?eW[eQ]:void 0,eY=null==eG?void 0:eG.rationale,eJ="string"==typeof N.error&&N.error.trim()?N.error.trim():((null==eV||null==(r=eV.decision)?void 0:r.rationale)||(null==eV||null==(i=eV.decision)?void 0:i.final_result)||"").trim()||"Task marked failed.";return(0,a.jsx)("div",{className:"modal-backdrop",onClick:e=>e.target===e.currentTarget&&R(),children:(0,a.jsxs)("div",{className:"bg-[var(--card-bg)] w-full max-w-[1200px] h-[90vh] rounded-xl shadow-2xl overflow-hidden flex flex-col animate-scale-in border border-[var(--card-border)] m-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-6 py-4 border-b border-[var(--card-border)] bg-[var(--card-bg)]",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"text-[var(--muted-foreground)] font-mono text-sm",children:F?"New Task":N.slug||N.id.slice(0,6)}),!F&&(0,a.jsx)(v,{currentStage:N.stage,onStageChange:eF,stageDecisions:N.stage_decisions,stages:Y})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[F&&(0,a.jsx)("button",{onClick:()=>{var e,t;if(!eM.trim())return;let r="done"===N.stage?"completed":"ideation"===N.stage?"queued":"in_progress";z({title:eD,description:eM,stage:N.stage,status:r,project:null!=(e=N.project)?e:null,project_id:null!=(t=N.project_id)?t:null,provider:ei||void 0,model:ed||void 0,swarm:eu,swarm_models:eu?ex:[]})},disabled:B||!eM.trim(),className:"btn-primary px-4 py-2 rounded-md text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed",children:B?"Creating...":"Create Task"}),!F&&eb&&(0,a.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] animate-pulse flex items-center gap-1 mr-2",children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--primary)]"}),"Saving..."]}),!F&&V&&(0,a.jsx)("button",{onClick:()=>K(!0),className:"btn-ghost p-2 rounded hover:bg-[var(--destructive-muted)] hover:text-[var(--destructive)]",title:"Delete Task",children:(0,a.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})})}),(0,a.jsx)("button",{onClick:R,className:"btn-ghost p-2 rounded",title:"Close (Esc)",children:(0,a.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]}),Z&&(0,a.jsx)("div",{className:"absolute inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 rounded-xl animate-fade-in",children:(0,a.jsxs)("div",{className:"modal-content p-6 max-w-sm mx-4 animate-scale-in bg-[var(--card-bg)]",children:[(0,a.jsx)("h3",{className:"text-lg font-bold mb-2",children:"Delete Task?"}),(0,a.jsxs)("p",{className:"text-[var(--muted-foreground)] text-sm mb-6",children:["Are you sure you want to delete ",(0,a.jsx)("strong",{className:"text-[var(--foreground)]",children:N.slug||N.id.slice(0,6)}),"? This cannot be undone."]}),(0,a.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,a.jsx)("button",{onClick:()=>K(!1),disabled:X,className:"btn-ghost",children:"Cancel"}),(0,a.jsx)("button",{onClick:eI,disabled:X,className:"btn-destructive px-4 py-2 rounded-md",children:X?"Deleting...":"Delete"})]})]})}),(0,a.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[(0,a.jsx)("div",{className:"flex-1 overflow-y-auto scrollbar-thin",children:(0,a.jsxs)("div",{className:"max-w-3xl mx-auto p-8",children:[!F&&"failed"===N.status&&(0,a.jsxs)("div",{className:"mb-8 p-4 rounded-lg bg-[var(--status-failed-bg)] border border-[var(--status-failed)] text-[var(--status-failed)]",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,a.jsx)("span",{className:"font-bold text-sm uppercase tracking-wider",children:"Task Execution Failed"})]}),(0,a.jsx)("button",{onClick:eR,className:"btn-ghost px-3 py-1 text-xs font-bold bg-white/20 rounded hover:bg-white/30 transition-colors uppercase",children:"Retry Task"})]}),(0,a.jsx)("p",{className:"text-sm font-medium",children:eJ}),(0,a.jsxs)("div",{className:"mt-3 text-xs rounded-md border border-[var(--status-failed)]/40 bg-white/50 p-3",children:[(0,a.jsx)("h4",{className:"font-semibold uppercase tracking-wider mb-2",children:"Failure Metadata"}),(0,a.jsxs)("div",{className:"grid grid-cols-[140px_1fr] gap-x-3 gap-y-1.5",children:[(0,a.jsx)("span",{className:"opacity-70",children:"Stage"}),(0,a.jsx)("span",{className:"font-medium",children:N.stage||(null==eV?void 0:eV.stage)||"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"Exit Code"}),(0,a.jsx)("span",{className:"font-mono",children:null!=(b=N.exit_code)?b:"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"PID"}),(0,a.jsx)("span",{className:"font-mono",children:null!=(j=N.pid)?j:"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"Completed At"}),(0,a.jsx)("span",{className:"font-medium",children:I(N.completed_at)}),(null==eV?void 0:eV.decision)&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"opacity-70",children:"Decision"}),(0,a.jsx)("span",{className:"font-medium",children:eV.decision.decision}),(0,a.jsx)("span",{className:"opacity-70",children:"Rationale"}),(0,a.jsx)("span",{className:"font-medium break-words",children:eV.decision.rationale||"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"Final Result"}),(0,a.jsx)("span",{className:"font-medium break-words",children:eV.decision.final_result||"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"Decided At"}),(0,a.jsx)("span",{className:"font-medium",children:I(eV.decision.decided_at)})]})]})]}),(eo||et||ea)&&(0,a.jsxs)("details",{className:"mt-3",open:!0,children:[(0,a.jsx)("summary",{className:"cursor-pointer select-none text-xs font-semibold uppercase tracking-wider opacity-90",children:"Error Details"}),(0,a.jsxs)("div",{className:"mt-2 rounded-md border border-[var(--status-failed)]/40 bg-[#0b0f14] text-slate-200",children:[(0,a.jsxs)("div",{className:"px-3 py-2 border-b border-white/10 text-[10px] uppercase tracking-widest text-white/60 flex items-center justify-between",children:[(0,a.jsx)("span",{children:"Log Excerpt"}),(0,a.jsx)("span",{className:"font-mono",children:eo?"Loading...":ea?"Unavailable":"Ready"})]}),(0,a.jsx)("pre",{className:"px-3 py-3 text-xs font-mono whitespace-pre-wrap max-h-64 overflow-y-auto",children:ea?"Failed to load error details: ".concat(ea):et||"No error logs found."})]})]})]}),!F&&"blocked"===N.status&&(0,a.jsxs)("div",{className:"mb-8 p-4 rounded-lg bg-[var(--status-blocked-bg)] border border-[var(--status-blocked)] text-[var(--status-blocked)]",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"})}),(0,a.jsx)("span",{className:"font-bold text-sm uppercase tracking-wider",children:"Task Blocked"})]}),(0,a.jsx)("button",{onClick:eq,className:"btn-ghost px-3 py-1 text-xs font-bold bg-white/20 rounded hover:bg-white/30 transition-colors uppercase",children:"Unblock Task"})]}),(0,a.jsx)("p",{className:"text-sm opacity-90 pl-7 mb-4",children:eY||"Task is blocked and requires manual intervention."}),(0,a.jsxs)("div",{className:"ml-7 text-xs rounded-md border border-[var(--status-blocked)]/40 bg-white/50 p-3",children:[(0,a.jsx)("h4",{className:"font-semibold uppercase tracking-wider mb-2",children:"Blocked Metadata"}),(0,a.jsxs)("div",{className:"grid grid-cols-[140px_1fr] gap-x-3 gap-y-1.5",children:[(0,a.jsx)("span",{className:"opacity-70",children:"Decision Stage"}),(0,a.jsx)("span",{className:"font-medium",children:eQ||N.stage||"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"Decision"}),(0,a.jsx)("span",{className:"font-medium",children:(null==eG?void 0:eG.decision)||"blocked"}),(0,a.jsx)("span",{className:"opacity-70",children:"Final Result"}),(0,a.jsx)("span",{className:"font-medium break-words",children:(null==eG?void 0:eG.final_result)||"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"Rationale"}),(0,a.jsx)("span",{className:"font-medium break-words",children:(null==eG?void 0:eG.rationale)||"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"Decided At"}),(0,a.jsx)("span",{className:"font-medium",children:I(null==eG?void 0:eG.decided_at)}),(0,a.jsx)("span",{className:"opacity-70",children:"Workflow ID"}),(0,a.jsx)("span",{className:"font-mono break-all",children:N.workflow_id||"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"Workflow Run ID"}),(0,a.jsx)("span",{className:"font-mono break-all",children:N.workflow_run_id||"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"Orchestration Status"}),(0,a.jsx)("span",{className:"font-medium",children:N.orchestration_status||"N/A"}),(0,a.jsx)("span",{className:"opacity-70",children:"Last Orchestration Update"}),(0,a.jsx)("span",{className:"font-medium",children:I(N.last_orchestration_update)}),(0,a.jsx)("span",{className:"opacity-70",children:"Started At"}),(0,a.jsx)("span",{className:"font-medium",children:I(N.started_at)}),(0,a.jsx)("span",{className:"opacity-70",children:"Completed At"}),(0,a.jsx)("span",{className:"font-medium",children:I(N.completed_at)})]})]})]}),(0,a.jsx)("input",{type:"text",value:eD,onChange:e=>{var t;eA(t=e.target.value),F||eO(t)},placeholder:"Task title...",className:"w-full text-2xl font-bold bg-transparent border-none outline-none text-[var(--foreground)] placeholder:text-[var(--muted-foreground)]/50 mb-4"}),(0,a.jsx)("div",{className:"mb-12 min-h-[150px]",children:(0,a.jsx)(_,{content:eM,onChange:e=>{eL(e),F||eT(e)},placeholder:F?"Describe the task...":"Add more detail to this task..."})}),!F&&(0,a.jsx)(m,{taskId:N.id,status:N.status}),!F&&N.history&&N.history.length>0&&(0,a.jsxs)("div",{className:"mt-12 border-t border-[var(--card-border)] pt-8",children:[(0,a.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--muted-foreground)] mb-4",children:"Execution History"}),(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full text-sm text-left",children:[(0,a.jsx)("thead",{className:"text-xs text-[var(--muted-foreground)] border-b border-[var(--card-border)]",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"py-2 pr-4 font-medium",children:"Started"}),(0,a.jsx)("th",{className:"py-2 pr-4 font-medium",children:"Duration"}),(0,a.jsx)("th",{className:"py-2 pr-4 font-medium",children:"PID"}),(0,a.jsx)("th",{className:"py-2 pr-4 font-medium",children:"Exit Code"})]})}),(0,a.jsx)("tbody",{className:"divide-y divide-[var(--card-border)]",children:N.history.map(e=>{var t,r;return(0,a.jsxs)("tr",{className:"hover:bg-[var(--muted)]/20 transition-colors",children:[(0,a.jsx)("td",{className:"py-2 pr-4 font-mono text-xs opacity-80",children:e.started_at?new Date(e.started_at).toLocaleString():"N/A"}),(0,a.jsx)("td",{className:"py-2 pr-4 font-mono text-xs opacity-80",children:e.started_at&&e.completed_at?function(e,t){let r=t.getTime()-e.getTime();if(r<1e3)return"".concat(r,"ms");let a=Math.floor(r/1e3);if(a<60)return"".concat(a,"s");let s=Math.floor(a/60);return"".concat(s,"m ").concat(a%60,"s")}(new Date(e.started_at),new Date(e.completed_at)):"-"}),(0,a.jsx)("td",{className:"py-2 pr-4 font-mono text-xs opacity-80",children:null!=(t=e.pid)?t:"-"}),(0,a.jsx)("td",{className:"py-2 pr-4",children:(0,a.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium border ".concat(0===e.exit_code?"bg-[var(--status-completed-bg)] text-[var(--status-completed)] border-[var(--status-completed)]/20":"bg-[var(--status-failed-bg)] text-[var(--status-failed)] border-[var(--status-failed)]/20"),children:null!=(r=e.exit_code)?r:"-"})})]},e.id)})})]})})]}),!F&&(0,a.jsxs)("div",{className:"border-t border-[var(--card-border)] pt-8",children:[(0,a.jsxs)("h3",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--muted-foreground)] mb-6 flex items-center justify-between",children:[(0,a.jsx)("span",{children:"Comments"}),(0,a.jsx)("span",{className:"text-[10px] bg-[var(--muted)] px-2 py-0.5 rounded-full",children:y.length})]}),(0,a.jsx)(n,{comments:y,onAddComment:q,onDeleteComment:H})]})]})}),(0,a.jsxs)("div",{className:"w-80 border-l border-[var(--card-border)] bg-[var(--muted)]/20 overflow-y-auto scrollbar-thin p-6 flex flex-col gap-8 flex-shrink-0",children:[(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:"Stage"}),(0,a.jsx)("select",{value:N.stage,onChange:e=>eF(e.target.value),className:"text-sm font-medium bg-[var(--card-bg)] border border-[var(--card-border)] rounded px-2 py-1 focus:border-[var(--primary)] outline-none transition-colors cursor-pointer",children:Y.map(e=>(0,a.jsx)("option",{value:e.id,children:e.label},e.id))})]}),!F&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:"Status"}),(0,a.jsx)("select",{value:N.status||"queued",onChange:e=>eH(e.target.value),className:"text-sm font-medium bg-[var(--card-bg)] border border-[var(--card-border)] rounded px-2 py-1 focus:border-[var(--primary)] outline-none transition-colors cursor-pointer",children:P.map(e=>(0,a.jsx)("option",{value:e,children:L[e].label},e))})]}),(0,a.jsx)(E,{label:"ID",value:N.id}),N.slug&&(0,a.jsx)(E,{label:"Slug",value:N.slug,truncate:!0})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:"Project"}),(0,a.jsxs)("select",{value:N.project_id||(null==(l=G.find(e=>e.slug===N.project))?void 0:l.id)||"",onChange:e=>eB(e.target.value),className:"text-sm font-medium bg-[var(--card-bg)] border border-[var(--card-border)] rounded px-2 py-1 focus:border-[var(--primary)] outline-none transition-colors cursor-pointer max-w-[150px] truncate",children:[(0,a.jsx)("option",{value:"",children:"None"}),G.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),!F&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:"Provider"}),(0,a.jsx)("span",{className:"text-sm font-medium",children:e_?"Swarm":ew||"Default"})]}),void 0!==N.pid&&null!==N.pid&&(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:"PID"}),(0,a.jsx)("span",{className:"text-sm font-mono font-medium",title:"Process ID",children:N.pid})]}),void 0!==N.exit_code&&null!==N.exit_code&&(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:"Exit Code"}),(0,a.jsx)("span",{className:"text-sm font-mono font-medium ".concat(0===N.exit_code?"text-[var(--status-completed)]":"text-[var(--status-failed)]"),children:N.exit_code})]})]})]}),(0,a.jsx)("div",{className:"w-full h-px bg-[var(--card-border)]"}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("div",{className:"flex items-center justify-between",children:(0,a.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Execution"})}),(0,a.jsxs)("div",{className:"flex items-center justify-between bg-[var(--card-bg)] p-2 rounded border border-[var(--card-border)]",children:[(0,a.jsx)("span",{className:"text-sm font-medium",children:"Swarm Mode"}),(0,a.jsx)("button",{onClick:()=>(e=>{em(e);let t={swarm:e};e?t.swarm_models=ex:(t.provider=ei,t.model=ed),z(t)})(!eu),className:"w-10 h-5 rounded-full transition-colors relative ".concat(eu?"bg-[var(--primary)]":"bg-[var(--muted-foreground)]/30"),children:(0,a.jsx)("span",{className:"absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ".concat(eu?"translate-x-5":"translate-x-0")})})]}),eu?(0,a.jsxs)("div",{className:"space-y-3 animate-fade-in",children:[(0,a.jsx)("label",{className:"block text-xs text-[var(--muted-foreground)]",children:"Swarm Models"}),(0,a.jsxs)("div",{className:"grid gap-2",children:[(0,a.jsxs)("div",{className:"grid grid-cols-[1fr_1.2fr_auto] gap-2",children:[(0,a.jsx)("select",{value:eh,onChange:e=>ev(e.target.value),className:"text-sm bg-[var(--card-bg)] border border-[var(--card-border)] rounded px-2 py-1.5 focus:border-[var(--primary)] outline-none transition-colors appearance-none",children:U.map(e=>(0,a.jsx)("option",{value:e.id,children:e.label},e.id))}),(0,a.jsx)("input",{value:ef,onChange:e=>eg(e.target.value),placeholder:"model name",className:"text-sm bg-[var(--card-bg)] border border-[var(--card-border)] rounded px-2 py-1.5 focus:border-[var(--primary)] outline-none transition-colors"}),(0,a.jsx)("button",{type:"button",onClick:()=>{let e=ef.trim();if(!e)return;let t={provider:eh,model:e};if(ex.some(e=>e.provider.toLowerCase()===t.provider.toLowerCase()&&e.model.toLowerCase()===t.model.toLowerCase()))return;let r=[...ex,t];if(ep(r),eg(""),F)return void z({swarm_models:r});eu&&eE({swarm_models:r})},className:"px-3 py-1.5 text-xs font-semibold rounded-md bg-[var(--card-bg)] border border-[var(--card-border)] hover:border-[var(--muted-foreground)]",children:"Add"})]}),ex.length>0&&(0,a.jsx)("div",{className:"space-y-1",children:ex.map((e,t)=>(0,a.jsxs)("div",{className:"flex items-center justify-between px-2 py-1.5 rounded text-sm border bg-[var(--card-bg)] border-[var(--card-border)]",children:[(0,a.jsxs)("span",{className:"truncate",children:[(0,a.jsx)("span",{className:"text-[var(--muted-foreground)]",children:e.provider}),(0,a.jsx)("span",{className:"mx-1",children:"\xb7"}),(0,a.jsx)("span",{children:e.model})]}),(0,a.jsx)("button",{type:"button",onClick:()=>(e=>{let t=ex.filter((t,r)=>r!==e);if(ep(t),F)return void z({swarm_models:t});eu&&eE({swarm_models:t})})(t),className:"text-xs text-[var(--destructive)] hover:underline",children:"Remove"})]},"".concat(e.provider,"-").concat(e.model,"-").concat(t)))})]})]}):(0,a.jsxs)("div",{className:"space-y-3 animate-fade-in",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-xs text-[var(--muted-foreground)] mb-1.5",children:"Provider"}),(0,a.jsxs)("select",{value:ei,onChange:e=>(e=>{if(el(e),F)return void z({provider:e});z({provider:e})})(e.target.value),className:"w-full text-sm bg-[var(--card-bg)] border border-[var(--card-border)] rounded px-2 py-1.5 focus:border-[var(--primary)] outline-none transition-colors appearance-none",children:[(0,a.jsxs)("option",{value:"",children:["Default (",ew,")"]}),U.map(e=>(0,a.jsx)("option",{value:e.id,children:e.label},e.id))]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-xs text-[var(--muted-foreground)] mb-1.5",children:"Model"}),(0,a.jsx)("input",{value:ed,onChange:e=>(e=>{if(ec(e),F)return void z({model:e});eE({model:e})})(e.target.value),placeholder:"Default (".concat(ek||"unspecified",")"),className:"w-full text-sm bg-[var(--card-bg)] border border-[var(--card-border)] rounded px-2 py-1.5 focus:border-[var(--primary)] outline-none transition-colors"})]})]}),eN&&(0,a.jsx)("p",{className:"text-xs text-[var(--destructive)]",children:eN})]}),!F&&(0,a.jsx)("div",{className:"w-full h-px bg-[var(--card-border)]"}),!F&&(0,a.jsx)(A,{projectContext:eC,fallbackProjectSlug:eS}),!F&&(0,a.jsx)("div",{className:"w-full h-px bg-[var(--card-border)]"}),!F&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("button",{onClick:()=>$(!J),className:"w-full flex items-center justify-between p-3 rounded-lg border transition-all duration-200 ".concat(J?"bg-[var(--primary-muted)] border-[var(--primary)] text-[var(--primary)]":"bg-[var(--card-bg)] border-[var(--card-border)] hover:border-[var(--muted-foreground)]"),children:[(0,a.jsx)("span",{className:"text-sm font-medium",children:"Learnings"}),(0,a.jsx)("span",{className:"text-xs bg-[var(--background)] px-2 py-0.5 rounded-full border border-[var(--card-border)]",children:w.length})]}),J&&(0,a.jsx)("div",{className:"mt-4 animate-fade-in-up",children:(0,a.jsx)(p,{learnings:w,taskId:N.id,projectContext:eC,onAddLearning:W,compact:!0})})]}),!F&&(0,a.jsx)("div",{className:"mt-auto text-xs text-[var(--muted-foreground)]",children:(0,a.jsxs)("p",{children:["Created ",new Date(N.created_at||Date.now()).toLocaleDateString()]})})]})]})]})})}function E(e){let{label:t,value:r,truncate:o,mono:n=!0}=e,[i,l]=(0,s.useState)(!1);return(0,a.jsxs)("div",{className:"flex items-center justify-between group h-7",children:[(0,a.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:t}),(0,a.jsxs)("button",{onClick:()=>{navigator.clipboard.writeText(r),l(!0),setTimeout(()=>l(!1),2e3)},className:"text-sm ".concat(n?"font-mono":""," flex items-center gap-1.5 hover:bg-[var(--primary-muted)] hover:text-[var(--primary)] px-1.5 py-0.5 -mr-1.5 rounded transition-all"),title:"Click to copy",children:[(0,a.jsx)("span",{className:"".concat(o?"max-w-[140px] truncate":""," ").concat(i?"opacity-50":""),children:o&&r.length>20?r.slice(0,8)+"..."+r.slice(-8):r}),i?(0,a.jsx)("span",{className:"text-[10px] uppercase font-bold tracking-wider text-[var(--primary)] animate-scale-in",children:"Copied"}):(0,a.jsx)("svg",{className:"w-3.5 h-3.5 opacity-0 group-hover:opacity-60 transition-opacity",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})]})]})}},8545:(e,t,r)=>{r.d(t,{u:()=>o});var a=r(2115);let s=[{id:"gemini",label:"Gemini"},{id:"claude",label:"Claude"},{id:"ollama",label:"Ollama"},{id:"codex",label:"Codex"}];function o(){let[e,t]=(0,a.useState)(s),[r,o]=(0,a.useState)(!0);(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let r=await fetch("/api/providers"),a=await r.json().catch(()=>({}));if(!r.ok)throw Error((null==a?void 0:a.error)||"HTTP ".concat(r.status));let s=(Array.isArray(null==a?void 0:a.providers)?a.providers:[]).filter(e=>e&&"string"==typeof e.id&&"string"==typeof e.label).map(e=>({id:e.id,label:e.label}));!e&&s.length>0&&t(s)}catch(e){}finally{e||o(!1)}})(),()=>{e=!0}},[]);let n=(0,a.useMemo)(()=>e.map(e=>e.id),[e]);return{providers:e,providerIds:n,loading:r}}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8008],{63:(e,t,r)=>{"use strict";var s=r(7260);r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}}),r.o(s,"useSearchParams")&&r.d(t,{useSearchParams:function(){return s.useSearchParams}})},926:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{callServer:function(){return s.callServer},createServerReference:function(){return c.createServerReference},findSourceMapURL:function(){return n.findSourceMapURL}});let s=r(1209),n=r(5153),c=r(7197)},5109:(e,t,r)=>{Promise.resolve().then(r.bind(r,8166))},8166:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var s=r(5155),n=r(2115),c=r(63),a=r(926);let l=(0,a.createServerReference)("405453999efc2dbfd85b5ad79799f73e78f809ce5b",a.callServer,void 0,a.findSourceMapURL,"approveDeviceCode");function o(){let e=(0,c.useSearchParams)(),t=(0,c.useRouter)(),r=e.get("user_code")||"",[a,o]=(0,n.useState)(r),[u,i]=(0,n.useState)(!1),[d,f]=(0,n.useState)(null),[x,h]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(x){let e=setTimeout(()=>{t.push("/projects")},3e3);return()=>clearTimeout(e)}},[x,t]);let m=async e=>{e.preventDefault(),i(!0),f(null);try{let e=await l(a);if(!e.success)throw Error(e.error);h(!0)}catch(e){f(e.message)}finally{i(!1)}};return x?(0,s.jsx)("div",{className:"flex flex-col items-center justify-center min-h-screen bg-neutral-900 text-white p-4",children:(0,s.jsxs)("div",{className:"max-w-md w-full bg-neutral-800 p-8 rounded-xl shadow-2xl text-center",children:[(0,s.jsx)("h1",{className:"text-3xl font-bold mb-4 text-green-400",children:"Success!"}),(0,s.jsx)("p",{className:"text-gray-300 mb-2",children:"You have successfully authenticated your device."}),(0,s.jsx)("p",{className:"text-gray-400 text-sm mb-6 italic",children:"Redirecting to projects in a few seconds..."}),(0,s.jsx)("button",{onClick:()=>t.push("/projects"),className:"w-full py-3 px-4 bg-white text-black font-semibold rounded-lg hover:bg-gray-200 transition-colors",children:"Go to Projects"})]})}):(0,s.jsx)("div",{className:"flex flex-col items-center justify-center min-h-screen bg-neutral-900 text-white p-4",children:(0,s.jsxs)("div",{className:"max-w-md w-full bg-neutral-800 p-8 rounded-xl shadow-2xl",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold mb-6 text-center",children:"Connect Device"}),(0,s.jsx)("p",{className:"text-gray-400 mb-8 text-center text-sm",children:"Enter the code displayed on your device to authorize it."}),(0,s.jsxs)("form",{onSubmit:m,className:"space-y-6",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{htmlFor:"code",className:"block text-sm font-medium text-gray-400 mb-2",children:"Device Code"}),(0,s.jsx)("input",{type:"text",id:"code",value:a,onChange:e=>o(e.target.value.toUpperCase()),placeholder:"BCDF-XXXX",className:"w-full px-4 py-3 bg-neutral-900 border border-neutral-700 rounded-lg text-white placeholder-neutral-600 focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-center tracking-widest text-lg uppercase",required:!0})]}),d&&(0,s.jsx)("div",{className:"p-3 bg-red-900/50 border border-red-800 rounded-lg text-red-200 text-center text-sm",children:d}),(0,s.jsx)("button",{type:"submit",disabled:u,className:"w-full py-3 px-4 bg-white text-black font-semibold rounded-lg hover:bg-gray-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-white transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:u?"Verifying...":"Authorize Device"})]})]})})}function u(){return(0,s.jsx)(n.Suspense,{fallback:(0,s.jsx)("div",{children:"Loading..."}),children:(0,s.jsx)(o,{})})}}},e=>{e.O(0,[8441,1255,7358],()=>e(e.s=5109)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4382],{1986:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>c});var l=s(5155),a=s(2115),o=s(577),r=s(2888),n=s(5826),i=s(91),d=s(2325);function c(e){let{params:t}=e,{slug:s}=(0,a.use)(t),{tasks:c,isLoading:u,fetchTask:p,updateTask:m,deleteTask:x,createTask:g}=(0,o.si)({realtime:!0,project:s}),{projects:v}=(0,i.Y)(),{workflow:b,stages:f,stageConfig:h}=(0,d.mP)(),[j,y]=(0,a.useState)(null),[N,k]=(0,a.useState)(""),{comments:C,addComment:w,deleteComment:D}=(0,o.LU)((null==j?void 0:j.id)||null),{learnings:_,addLearning:q}=(0,o.dF)((null==j?void 0:j.id)||void 0),A=(0,a.useMemo)(()=>f.map(e=>{var t;let s=h[e],l=null==b||null==(t=b.nodes)?void 0:t.find(t=>t.name===e);return{id:e,label:(null==s?void 0:s.label)||e,icon:(null==s?void 0:s.icon)||"\uD83D\uDCCC",color:(null==s?void 0:s.color)||"var(--primary)",prompt:(null==l?void 0:l.prompt)||void 0}}),[f,h,b]),P=(0,a.useMemo)(()=>{if(!N)return c;let e=N.toLowerCase();return c.filter(t=>{var s,l;return(null==(s=t.title)?void 0:s.toLowerCase().includes(e))||(null==(l=t.description)?void 0:l.toLowerCase().includes(e))||t.id.toLowerCase().includes(e)})},[c,N]),L=(0,a.useCallback)(async e=>{try{let t=await p(e.id);y(t)}catch(t){console.error("Failed to load task details:",t),y(e)}},[p]),E=async e=>{j&&(y(t=>t?{...t,...e}:null),await m(j.id,e))},F=async e=>{j&&await w(e)},R=async(e,t,s)=>{var l,a;let o=(null==j||null==(a=j.project_context)||null==(l=a.project)?void 0:l.id)||(null==j?void 0:j.project_id)||(null==j?void 0:j.project)||void 0,r=null!=s?s:"global"===t?void 0:"task"===t?null==j?void 0:j.id:o;await q(e,t,r)};return(0,l.jsxs)("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[(0,l.jsx)("div",{className:"flex items-center gap-4 mb-6",children:(0,l.jsxs)("div",{className:"relative max-w-md w-full",children:[(0,l.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:(0,l.jsx)("span",{className:"text-gray-400",children:"\uD83D\uDD0D"})}),(0,l.jsx)("input",{type:"text",placeholder:"Search project tasks...",className:"input pl-10 w-full",value:N,onChange:e=>k(e.target.value)})]})}),(0,l.jsx)("div",{className:"flex-1 overflow-y-auto min-h-0 bg-[var(--card-bg)] rounded-xl border border-[var(--card-border)]",children:u?(0,l.jsx)("div",{className:"p-8 text-center text-[var(--muted-foreground)]",children:"Loading tasks..."}):0===c.length?(0,l.jsx)("div",{className:"p-12 text-center",children:(0,l.jsx)("p",{className:"text-[var(--muted-foreground)] mb-4",children:"No tasks found for this project."})}):(0,l.jsx)(r.A,{tasks:P,onSelectTask:L})}),j&&(0,l.jsx)(n.A,{task:j,comments:j?C:[],learnings:_,projectContext:j.project_context,projects:v,stages:A,onClose:()=>y(null),onAddComment:F,onDeleteComment:D,onAddLearning:R,onUpdate:E,onDelete:async()=>{await x(j.id),y(null)}})]})}},2888:(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var l=s(5155);let a={queued:{className:"badge-status-queued",label:"Queued",dotColor:"bg-[var(--status-queued)]"},in_progress:{className:"badge-status-in_progress",label:"In Progress",dotColor:"bg-[var(--status-in-progress)]"},blocked:{className:"badge-status-blocked",label:"Blocked",dotColor:"bg-[var(--status-blocked)]"},completed:{className:"badge-status-completed",label:"Completed",dotColor:"bg-[var(--status-completed)]"},failed:{className:"badge-status-failed",label:"Failed",dotColor:"bg-[var(--status-failed)]"}},o={ideation:{icon:"\uD83D\uDCA1",label:"Ideation",prompt:"Research and scope. Define approach, estimate effort."},planning:{icon:"\uD83D\uDCCB",label:"Planning",prompt:"Create detailed plan with tasks, milestones, and dependencies."},execution:{icon:"\uD83D\uDCBB",label:"Execution",prompt:"Implement based on all the context/history/research/plan. Write clean, tested code."},verification:{icon:"\uD83E\uDDEA",label:"Verification",prompt:"Test thoroughly. Find edge cases. Fix bugs. Verify requirements are met."},coding:{icon:"\uD83D\uDCBB",label:"Coding",prompt:"Write clean, tested code based on plan."},qa:{icon:"\uD83E\uDDEA",label:"QA",prompt:"Test thoroughly. Find edge cases. Fix bugs."},acceptance:{icon:"✓",label:"Acceptance",prompt:"Demo to user. Get sign-off. Address feedback."},pr:{icon:"\uD83D\uDD00",label:"PR",prompt:"Create and review pull request. Ensure all checks pass and merge."},pr_review:{icon:"\uD83D\uDC40",label:"PR Review",prompt:"Review the PR. Verify code quality and functionality. Approve or request changes."},merge:{icon:"\uD83D\uDE80",label:"Merge",prompt:"Merge the PR and verify deployment."},done:{icon:"✅",label:"Done",prompt:"Task finished and shipped."}};function r(e){let{task:t,onClick:s,compact:r=!1}=e,n=a[t.status||"queued"],i=t.stage?o[t.stage]:null;return(0,l.jsxs)("div",{onClick:s,role:"button",tabIndex:0,onKeyDown:e=>"Enter"===e.key&&(null==s?void 0:s()),className:"group relative flex items-center gap-2 p-1.5 rounded-md \n hover:bg-[var(--item-hover-bg)] transition-colors cursor-pointer\n focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2\n ".concat("failed"===t.status?"bg-[var(--status-failed-bg)]":""),children:[(0,l.jsx)("div",{className:"w-2 h-2 rounded-full flex-shrink-0 ".concat(n.dotColor),title:n.label}),(0,l.jsxs)("div",{className:"flex-1 min-w-0 flex items-baseline gap-2",children:[(0,l.jsx)("h3",{className:"text-sm text-[var(--foreground)] truncate leading-tight\n ".concat("completed"===t.status?"text-[var(--muted-foreground)] line-through":"","\n "),children:t.title||"Untitled Task"}),(0,l.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap",children:[void 0!==t.priority&&(0,l.jsxs)("span",{className:0===t.priority?"text-[var(--primary)] font-bold":"",children:["P",t.priority]}),t.project&&(0,l.jsx)("span",{className:"max-w-[80px] truncate",children:t.project})]})]}),(0,l.jsx)("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:"failed"===t.status?(0,l.jsx)("span",{className:"text-[10px] text-[var(--status-failed)] font-bold",children:"FAILED"}):i&&(0,l.jsx)("span",{className:"text-[10px] opacity-40",children:i.icon})})]})}let n={in_progress:{title:"In Progress",icon:"\uD83D\uDD04",color:"var(--status-in-progress)",description:"Currently being worked on by the daemon"},blocked:{title:"Blocked",icon:"\uD83D\uDEA7",color:"var(--status-blocked)",description:"Waiting for input or resolution"},queued:{title:"Queued",icon:"\uD83D\uDCCB",color:"var(--status-queued)",description:"Ready to be picked up"},completed:{title:"Completed",icon:"✅",color:"var(--status-completed)",description:"Successfully finished"}};function i(e){let{tasks:t,onSelectTask:s}=e;if(0===t.length)return(0,l.jsxs)("div",{className:"text-center py-20 animate-fade-in",children:[(0,l.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-[var(--card-bg)] border border-[var(--card-border)] mb-4",children:(0,l.jsx)("span",{className:"text-3xl",children:"\uD83D\uDCCB"})}),(0,l.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No tasks yet"}),(0,l.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm max-w-md mx-auto",children:"Create your first task to get started. Tasks will appear here organized by status."})]});let a=t.filter(e=>"in_progress"===e.status),o=t.filter(e=>"queued"===e.status),i=t.filter(e=>"blocked"===e.status),d=t.filter(e=>"completed"===e.status||"failed"===e.status),c=(e,t)=>{if(0===t.length)return null;let a=n[e];return(0,l.jsxs)("section",{className:"mb-8 animate-fade-in-up",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg",style:{backgroundColor:"color-mix(in srgb, ".concat(a.color," 10%, transparent)")},children:[(0,l.jsx)("span",{className:"text-lg",children:a.icon}),(0,l.jsx)("h3",{className:"text-sm font-semibold",style:{color:a.color},children:a.title}),(0,l.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:"color-mix(in srgb, ".concat(a.color," 15%, transparent)"),color:a.color},children:t.length})]}),(0,l.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:a.description})]}),(0,l.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:t.map((e,t)=>(0,l.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:"".concat(50*t,"ms")},children:(0,l.jsx)(r,{task:e,onClick:()=>null==s?void 0:s(e)})},e.id))})]})};return(0,l.jsxs)("div",{children:[c("in_progress",a),c("blocked",i),c("queued",o),c("completed",d)]})}},9263:(e,t,s)=>{Promise.resolve().then(s.bind(s,1986))}},e=>{e.O(0,[5004,277,2619,650,9719,2456,8441,1255,7358],()=>e(e.s=9263)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[893],{63:(e,r,t)=>{"use strict";var s=t(7260);t.o(s,"usePathname")&&t.d(r,{usePathname:function(){return s.usePathname}}),t.o(s,"useRouter")&&t.d(r,{useRouter:function(){return s.useRouter}}),t.o(s,"useSearchParams")&&t.d(r,{useSearchParams:function(){return s.useSearchParams}})},1460:(e,r,t)=>{"use strict";t.d(r,{A:()=>m});var s=t(5155),a=t(2619),n=t.n(a),l=t(63),o=t(4647),i=t(91),d=t(2115);function c(e){let{children:r,fullWidth:t=!1,noFooter:a=!1}=e;(0,l.usePathname)(),(0,l.useRouter)();let c=(0,l.useSearchParams)(),{user:u,loading:m,signOut:x}=(0,o.A)(),{projects:p,isLoading:h}=(0,i.Y)(),b=null==c?void 0:c.get("project");return(0,d.useMemo)(()=>b?p.find(e=>e.slug===b):null,[p,b]),(0,s.jsxs)("div",{className:"h-screen flex flex-col overflow-hidden",children:[(0,s.jsx)("nav",{className:"flex-shrink-0 border-b border-[var(--card-border)] bg-[var(--card-bg)]/80 backdrop-blur-lg z-30",children:(0,s.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,s.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,s.jsx)("div",{className:"flex items-center gap-8",children:(0,s.jsxs)(n(),{href:"/",className:"flex items-center gap-3 group",children:[(0,s.jsx)("div",{className:"w-8 h-8 rounded-lg bg-gradient-to-br from-[var(--primary)] to-[var(--accent)] flex items-center justify-center text-white font-bold text-sm shadow-lg shadow-[var(--primary)]/20 group-hover:shadow-[var(--primary)]/40 transition-shadow",children:"A"}),(0,s.jsx)("span",{className:"text-lg font-bold tracking-tight gradient-text hidden sm:block",children:"AGX Board"})]})}),(0,s.jsx)("div",{className:"flex items-center gap-3",children:(0,s.jsx)(n(),{href:"/settings",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Settings"})})]})})}),(0,s.jsx)("main",{className:"flex-1 min-h-0 flex flex-col ".concat(t?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"),children:r}),!a&&(0,s.jsx)("footer",{className:"flex-shrink-0 border-t border-[var(--card-border)] bg-[var(--card-bg)]/50 py-4",children:(0,s.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,s.jsx)("span",{children:"AGX Board • Autonomous Agent Orchestration"}),(0,s.jsx)("span",{className:"hidden sm:inline",children:"Built with Next.js + Db"})]})})]})}function u(e){return(0,s.jsx)(d.Suspense,{fallback:(0,s.jsx)("div",{className:"h-screen flex items-center justify-center bg-[var(--background)]",children:(0,s.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}),children:(0,s.jsx)(c,{...e})})}function m(e){let{children:r,fullWidth:t=!1,noFooter:a=!1}=e;return(0,s.jsx)(u,{fullWidth:t,noFooter:a,children:r})}},2888:(e,r,t)=>{"use strict";t.d(r,{A:()=>i});var s=t(5155);let a={queued:{className:"badge-status-queued",label:"Queued",dotColor:"bg-[var(--status-queued)]"},in_progress:{className:"badge-status-in_progress",label:"In Progress",dotColor:"bg-[var(--status-in-progress)]"},blocked:{className:"badge-status-blocked",label:"Blocked",dotColor:"bg-[var(--status-blocked)]"},completed:{className:"badge-status-completed",label:"Completed",dotColor:"bg-[var(--status-completed)]"},failed:{className:"badge-status-failed",label:"Failed",dotColor:"bg-[var(--status-failed)]"}},n={ideation:{icon:"\uD83D\uDCA1",label:"Ideation",prompt:"Research and scope. Define approach, estimate effort."},planning:{icon:"\uD83D\uDCCB",label:"Planning",prompt:"Create detailed plan with tasks, milestones, and dependencies."},execution:{icon:"\uD83D\uDCBB",label:"Execution",prompt:"Implement based on all the context/history/research/plan. Write clean, tested code."},verification:{icon:"\uD83E\uDDEA",label:"Verification",prompt:"Test thoroughly. Find edge cases. Fix bugs. Verify requirements are met."},coding:{icon:"\uD83D\uDCBB",label:"Coding",prompt:"Write clean, tested code based on plan."},qa:{icon:"\uD83E\uDDEA",label:"QA",prompt:"Test thoroughly. Find edge cases. Fix bugs."},acceptance:{icon:"✓",label:"Acceptance",prompt:"Demo to user. Get sign-off. Address feedback."},pr:{icon:"\uD83D\uDD00",label:"PR",prompt:"Create and review pull request. Ensure all checks pass and merge."},pr_review:{icon:"\uD83D\uDC40",label:"PR Review",prompt:"Review the PR. Verify code quality and functionality. Approve or request changes."},merge:{icon:"\uD83D\uDE80",label:"Merge",prompt:"Merge the PR and verify deployment."},done:{icon:"✅",label:"Done",prompt:"Task finished and shipped."}};function l(e){let{task:r,onClick:t,compact:l=!1}=e,o=a[r.status||"queued"],i=r.stage?n[r.stage]:null;return(0,s.jsxs)("div",{onClick:t,role:"button",tabIndex:0,onKeyDown:e=>"Enter"===e.key&&(null==t?void 0:t()),className:"group relative flex items-center gap-2 p-1.5 rounded-md \n hover:bg-[var(--item-hover-bg)] transition-colors cursor-pointer\n focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2\n ".concat("failed"===r.status?"bg-[var(--status-failed-bg)]":""),children:[(0,s.jsx)("div",{className:"w-2 h-2 rounded-full flex-shrink-0 ".concat(o.dotColor),title:o.label}),(0,s.jsxs)("div",{className:"flex-1 min-w-0 flex items-baseline gap-2",children:[(0,s.jsx)("h3",{className:"text-sm text-[var(--foreground)] truncate leading-tight\n ".concat("completed"===r.status?"text-[var(--muted-foreground)] line-through":"","\n "),children:r.title||"Untitled Task"}),(0,s.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap",children:[void 0!==r.priority&&(0,s.jsxs)("span",{className:0===r.priority?"text-[var(--primary)] font-bold":"",children:["P",r.priority]}),r.project&&(0,s.jsx)("span",{className:"max-w-[80px] truncate",children:r.project})]})]}),(0,s.jsx)("div",{className:"flex items-center gap-1.5 flex-shrink-0",children:"failed"===r.status?(0,s.jsx)("span",{className:"text-[10px] text-[var(--status-failed)] font-bold",children:"FAILED"}):i&&(0,s.jsx)("span",{className:"text-[10px] opacity-40",children:i.icon})})]})}let o={in_progress:{title:"In Progress",icon:"\uD83D\uDD04",color:"var(--status-in-progress)",description:"Currently being worked on by the daemon"},blocked:{title:"Blocked",icon:"\uD83D\uDEA7",color:"var(--status-blocked)",description:"Waiting for input or resolution"},queued:{title:"Queued",icon:"\uD83D\uDCCB",color:"var(--status-queued)",description:"Ready to be picked up"},completed:{title:"Completed",icon:"✅",color:"var(--status-completed)",description:"Successfully finished"}};function i(e){let{tasks:r,onSelectTask:t}=e;if(0===r.length)return(0,s.jsxs)("div",{className:"text-center py-20 animate-fade-in",children:[(0,s.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-[var(--card-bg)] border border-[var(--card-border)] mb-4",children:(0,s.jsx)("span",{className:"text-3xl",children:"\uD83D\uDCCB"})}),(0,s.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No tasks yet"}),(0,s.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm max-w-md mx-auto",children:"Create your first task to get started. Tasks will appear here organized by status."})]});let a=r.filter(e=>"in_progress"===e.status),n=r.filter(e=>"queued"===e.status),i=r.filter(e=>"blocked"===e.status),d=r.filter(e=>"completed"===e.status||"failed"===e.status),c=(e,r)=>{if(0===r.length)return null;let a=o[e];return(0,s.jsxs)("section",{className:"mb-8 animate-fade-in-up",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg",style:{backgroundColor:"color-mix(in srgb, ".concat(a.color," 10%, transparent)")},children:[(0,s.jsx)("span",{className:"text-lg",children:a.icon}),(0,s.jsx)("h3",{className:"text-sm font-semibold",style:{color:a.color},children:a.title}),(0,s.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:"color-mix(in srgb, ".concat(a.color," 15%, transparent)"),color:a.color},children:r.length})]}),(0,s.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:a.description})]}),(0,s.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:r.map((e,r)=>(0,s.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:"".concat(50*r,"ms")},children:(0,s.jsx)(l,{task:e,onClick:()=>null==t?void 0:t(e)})},e.id))})]})};return(0,s.jsxs)("div",{children:[c("in_progress",a),c("blocked",i),c("queued",n),c("completed",d)]})}},4647:(e,r,t)=>{"use strict";t.d(r,{A:()=>d,AuthProvider:()=>i});var s=t(5155),a=t(2115),n=t(1483),l=t(5704);let o=(0,a.createContext)({user:null,loading:!0,signOut:async()=>{}});function i(e){let{children:r}=e,t="1"===l.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,[i,d]=(0,a.useState)(null),[c,u]=(0,a.useState)(!0);(0,a.useEffect)(()=>{if(t){d({id:l.env.NEXT_PUBLIC_AGX_BOARD_USER_ID||"00000000-0000-0000-0000-000000000001",email:l.env.NEXT_PUBLIC_AGX_BOARD_USER_EMAIL||"local@agx.board",user_metadata:{name:l.env.NEXT_PUBLIC_AGX_BOARD_USER_NAME||"Local Board User",full_name:l.env.NEXT_PUBLIC_AGX_BOARD_USER_NAME||"Local Board User"},app_metadata:{},aud:"authenticated",created_at:new Date().toISOString()}),u(!1);return}let e=(0,n.O)();e.auth.getSession().then(e=>{var r,t;d(null!=(t=null==(r=e.data.session)?void 0:r.user)?t:null),u(!1)});let{data:{subscription:r}}=e.auth.onAuthStateChange((e,r)=>{var t;d(null!=(t=null==r?void 0:r.user)?t:null),u(!1)});return()=>r.unsubscribe()},[t]);let m=async()=>{if(t)return;let e=(0,n.O)();await e.auth.signOut(),d(null)};return(0,s.jsx)(o.Provider,{value:{user:i,loading:c,signOut:m},children:r})}function d(){return(0,a.useContext)(o)}},7966:(e,r,t)=>{Promise.resolve().then(t.bind(t,9842))},9842:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>x});var s=t(5155),a=t(2115),n=t(63),l=t(1460);function o(e){var r;let{project:t,onEdit:a,onDelete:n,onClick:l,onManageTasks:o}=e,i=t.repos&&t.repos.length>0;return(0,s.jsxs)("div",{onClick:()=>null==l?void 0:l(t),className:"p-5 rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] shadow-sm space-y-4 transition-all\n ".concat(l?"cursor-pointer hover:border-[var(--primary)] hover:shadow-md active:scale-[0.99]":""),children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-lg font-semibold",children:t.name}),(0,s.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] tracking-wide uppercase",children:t.slug})]}),(0,s.jsxs)("div",{className:"flex flex-col items-end gap-2",children:[(0,s.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--muted-foreground)]",children:["Updated ",new Date(t.updated_at).toLocaleDateString()]}),(a||n||o)&&(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[o&&(0,s.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),o(t)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] bg-[var(--background)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all",children:"Tasks"}),a&&(0,s.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),a(t)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all bg-[var(--background)]",children:"Edit"}),n&&(0,s.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),n(t)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] text-[var(--destructive)] hover:border-[var(--destructive)] transition-all bg-[var(--background)]",children:"Delete"})]})]})]}),t.description&&(0,s.jsx)("p",{className:"text-sm text-[var(--foreground)] line-clamp-2",children:t.description}),t.ci_cd_info&&(0,s.jsxs)("div",{className:"text-sm",children:[(0,s.jsx)("p",{className:"text-[var(--muted-foreground)] text-[12px] uppercase tracking-wide",children:"CI / CD"}),(0,s.jsx)("p",{className:"text-[14px] text-[var(--accent)] font-medium truncate",children:t.ci_cd_info})]}),t.metadata&&Object.keys(t.metadata).length>0&&(0,s.jsxs)("div",{className:"p-3 rounded-lg bg-[var(--muted)]/20 border border-dashed border-[var(--card-border)] space-y-1",children:[(0,s.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Metadata"}),(0,s.jsx)("div",{className:"space-y-1",children:Object.entries(null!=(r=t.metadata)?r:{}).filter(e=>{let[r]=e;return"undefined"!==r&&""!==r}).map(e=>{let[r,t]=e;return(0,s.jsxs)("div",{className:"text-[12px] text-[var(--muted-foreground)] flex justify-between",children:[(0,s.jsx)("span",{className:"font-semibold",children:r}),(0,s.jsx)("span",{className:"truncate text-right",children:"string"==typeof t?t:JSON.stringify(t)})]},r)})})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-[12px] uppercase tracking-wider text-[var(--muted-foreground)]",children:"Repositories"}),(0,s.jsx)("span",{className:"text-[12px] text-[var(--muted-foreground)]",children:i?"".concat(t.repos.length," connected"):"Unlinked"})]}),i?(0,s.jsxs)("div",{className:"mt-3 space-y-2",children:[t.repos.slice(0,2).map(e=>(0,s.jsxs)("div",{className:"p-2 rounded-lg border border-[var(--card-border)] bg-[var(--background)] text-[11px]",children:[(0,s.jsx)("div",{className:"font-semibold truncate",children:e.name}),e.path&&(0,s.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] truncate",children:e.path})]},e.id)),t.repos.length>2&&(0,s.jsxs)("p",{className:"text-[10px] text-center text-[var(--muted-foreground)]",children:["+ ",t.repos.length-2," more"]})]}):(0,s.jsx)("p",{className:"mt-3 text-[12px] text-[var(--muted-foreground)]",children:"No repositories added yet."})]})]})}var i=t(2888),d=t(577),c=t(91);let u={name:"",description:""},m={name:"",path:"",notes:""};function x(){let e=(0,n.useRouter)(),{projects:r,isLoading:t,error:i,refetch:d,createProject:x,updateProject:p,deleteProject:v}=(0,c.Y)(),f=function(){let[e,r]=(0,a.useState)(u),[t,s]=(0,a.useState)([m]),[n,l]=(0,a.useState)(!1),[o,i]=(0,a.useState)(null),d=(0,a.useCallback)((e,r,t)=>{s(s=>s.map((s,a)=>a===e?{...s,[r]:t}:s))},[]),c=(0,a.useCallback)(()=>{s(e=>[...e,{...m}])},[]),x=(0,a.useCallback)(e=>{s(r=>r.filter((r,t)=>t!==e))},[]),p=(0,a.useCallback)(()=>{r(u),s([m]),i(null)},[]),h=(0,a.useCallback)(e=>{r({name:e.name||"",description:e.description||""}),e.repos&&e.repos.length>0?s(e.repos.map(e=>({name:e.name||"",path:e.path||"",notes:e.notes||""}))):s([m]),i(null)},[]);return{form:e,setForm:r,repos:t,handleRepoChange:d,addRepo:c,removeRepo:x,resetForm:p,hydrateFromProject:h,isSubmitting:n,setIsSubmitting:l,formError:o,setFormError:i}}(),[g,j]=(0,a.useState)(null),[N,y]=(0,a.useState)(!1),[k,w]=(0,a.useState)(null),{form:C,repos:_,handleRepoChange:R,addRepo:A,removeRepo:P,resetForm:S,hydrateFromProject:D,isSubmitting:E,setIsSubmitting:L,formError:B,setFormError:I,setForm:O}=f,T=()=>{j(null),S(),y(!0)},F=e=>{j(e),D(e),y(!0)},U=(0,a.useCallback)(r=>{r.slug&&e.push("/projects/".concat(r.slug))},[e]),q=(0,a.useCallback)(e=>{w(e)},[]),M=(0,a.useCallback)(()=>{w(null)},[]),X=()=>{S(),y(!1),j(null)},G=async()=>{if(!C.name.trim())return void I("Project name is required");let e=_.find(e=>e.name.trim()&&!e.path.trim());if(e)return void I('Local path is required for repository "'.concat(e.name,'"'));I(null),L(!0);let r=function(e,r){let t=r.filter(e=>e.name.trim()&&e.path.trim()).map(e=>({name:e.name.trim(),path:e.path.trim(),notes:e.notes.trim()||void 0}));return{name:e.name.trim(),description:e.description.trim()||void 0,repos:t.length?t:void 0}}(C,_);try{g?await p(g.id,r):await x(r),X()}catch(e){I(e instanceof Error?e.message:"Failed to save project")}finally{L(!1)}},W=async e=>{if(window.confirm('Delete project "'.concat(e.name,'"? This cannot be undone.')))try{await v(e.id)}catch(e){alert(e instanceof Error?e.message:"Failed to delete project")}};return(0,s.jsx)(l.A,{children:(0,s.jsxs)("div",{className:"max-w-7xl mx-auto w-full flex flex-col min-h-full",children:[(0,s.jsxs)("header",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4 py-8",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Projects"}),(0,s.jsx)("p",{className:"text-[var(--muted-foreground)] mt-1",children:"Manage your projects and their repository contexts."})]}),(0,s.jsxs)("div",{className:"flex gap-3",children:[(0,s.jsx)("button",{onClick:d,className:"px-4 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] hover:border-[var(--primary)] transition-all text-sm font-medium",children:"Refresh"}),(0,s.jsx)("button",{onClick:T,className:"btn-primary px-6 py-2 shadow-lg shadow-[var(--primary)]/20",children:"+ New Project"})]})]}),t?(0,s.jsx)("div",{className:"flex-1 flex items-center justify-center py-20",children:(0,s.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,s.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,s.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] animate-pulse",children:"Loading projects..."})]})}):0===r.length?(0,s.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-20 animate-fade-in",children:[(0,s.jsx)("div",{className:"w-24 h-24 rounded-3xl bg-[var(--card-bg)] border border-[var(--card-border)] flex items-center justify-center text-4xl mb-6 shadow-xl",children:"\uD83D\uDCC2"}),(0,s.jsx)("h2",{className:"text-2xl font-bold mb-2",children:"You have no projects"}),(0,s.jsx)("p",{className:"text-[var(--muted-foreground)] text-center max-w-sm mb-8 leading-relaxed",children:"Create your first project to start organizing your tasks and connecting your repositories."}),(0,s.jsx)("button",{onClick:T,className:"btn-primary px-8 py-3 text-lg shadow-xl shadow-[var(--primary)]/20",children:"Create a Project"})]}):(0,s.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 pb-20",children:r.map(e=>(0,s.jsx)(o,{project:e,onEdit:F,onDelete:W,onManageTasks:q,onClick:U},e.id))}),(0,s.jsx)(h,{isOpen:N,onClose:X,onSubmit:G,editingProject:g,form:C,repos:_,isSubmitting:E,formError:B,onFieldChange:(e,r)=>O(t=>({...t,[e]:r})),onRepoChange:R,onAddRepo:A,onRemoveRepo:P}),k&&(0,s.jsx)(b,{project:k,onClose:M})]})})}function p(e){let{form:r,repos:t,isSubmitting:a,onFieldChange:n,onRepoChange:l,onAddRepo:o,onRemoveRepo:i}=e;return(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsx)("div",{className:"grid gap-4",children:(0,s.jsxs)("label",{className:"space-y-1.5 block",children:[(0,s.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,s.jsx)("input",{value:r.name,onChange:e=>n("name",e.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:a})]})}),(0,s.jsxs)("label",{className:"space-y-1.5 block",children:[(0,s.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,s.jsx)("textarea",{value:r.description,onChange:e=>n("description",e.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:a})]}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,s.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Repositories"}),(0,s.jsx)("button",{type:"button",onClick:o,className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:a,children:"+ Add Repository"})]}),(0,s.jsx)("div",{className:"space-y-4",children:t.map((e,r)=>(0,s.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsxs)("span",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Repo #",r+1]}),t.length>1&&(0,s.jsx)("button",{type:"button",onClick:()=>i(r),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:a,children:"Remove"})]}),(0,s.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,s.jsx)("input",{value:e.name,onChange:e=>l(r,"name",e.target.value),placeholder:"Name (e.g. Frontend)",className:"input text-sm",disabled:a}),(0,s.jsx)("input",{value:e.path,onChange:e=>l(r,"path",e.target.value),placeholder:"Local path (mandatory)",className:"input text-sm",disabled:a}),(0,s.jsx)("div",{className:"md:col-span-2",children:(0,s.jsx)("input",{value:e.notes,onChange:e=>l(r,"notes",e.target.value),placeholder:"Notes/Instructions",className:"input text-sm w-full",disabled:a})})]})]},r))})]})]})}function h(e){let{isOpen:r,onClose:t,onSubmit:a,editingProject:n,form:l,repos:o,isSubmitting:i,formError:d,onFieldChange:c,onRepoChange:u,onAddRepo:m,onRemoveRepo:x}=e;return r?(0,s.jsx)("div",{className:"modal-backdrop p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&t(),children:(0,s.jsxs)("div",{className:"modal-content w-full max-w-4xl bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,s.jsxs)("div",{className:"px-8 py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-xl font-bold",children:n?"Edit Project":"Create New Project"}),(0,s.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:n?"Update your project settings and repositories.":"Define a new project and connect repositories."})]}),(0,s.jsx)("button",{onClick:t,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,s.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto p-8",children:[(0,s.jsx)(p,{form:l,repos:o,isSubmitting:i,onFieldChange:c,onRepoChange:u,onAddRepo:m,onRemoveRepo:x}),d&&(0,s.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:d})]}),(0,s.jsxs)("div",{className:"px-8 py-6 border-t border-[var(--card-border)] flex items-center justify-end gap-3 flex-shrink-0",children:[(0,s.jsx)("button",{onClick:t,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Cancel"}),(0,s.jsx)("button",{onClick:a,disabled:i,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:i?(0,s.jsxs)("span",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):n?"Save Changes":"Create Project"})]})]})}):null}function b(e){let{project:r,onClose:t}=e,{tasks:a,isLoading:n}=(0,d.si)({project:r.slug});return(0,s.jsx)("div",{className:"modal-backdrop p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&t(),children:(0,s.jsxs)("div",{className:"modal-content w-full max-w-5xl bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,s.jsxs)("div",{className:"px-8 py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("h2",{className:"text-xl font-bold",children:["Tasks for ",r.name]}),(0,s.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:"Viewing all tasks associated with this project."})]}),(0,s.jsx)("button",{onClick:t,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,s.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,s.jsx)("div",{className:"flex-1 overflow-y-auto p-8",children:n?(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-20",children:[(0,s.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full mb-4"}),(0,s.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading project tasks..."})]}):(0,s.jsx)(i.A,{tasks:a})}),(0,s.jsx)("div",{className:"px-8 py-6 border-t border-[var(--card-border)] flex justify-end flex-shrink-0",children:(0,s.jsx)("button",{onClick:t,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Close"})})]})})}}},e=>{e.O(0,[2619,9719,8441,1255,7358],()=>e(e.s=7966)),_N_E=e.O()}]);
|
|
File without changes
|