speckit-assistant 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -0
- package/.next/app-build-manifest.json +71 -0
- package/.next/app-path-routes-manifest.json +10 -0
- package/.next/build-manifest.json +33 -0
- package/.next/cache/.previewinfo +1 -0
- package/.next/cache/.rscinfo +1 -0
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/1.pack +0 -0
- package/.next/cache/webpack/client-production/10.pack +0 -0
- package/.next/cache/webpack/client-production/11.pack +0 -0
- package/.next/cache/webpack/client-production/12.pack +0 -0
- package/.next/cache/webpack/client-production/13.pack +0 -0
- package/.next/cache/webpack/client-production/14.pack +0 -0
- package/.next/cache/webpack/client-production/15.pack +0 -0
- package/.next/cache/webpack/client-production/16.pack +0 -0
- package/.next/cache/webpack/client-production/17.pack +0 -0
- package/.next/cache/webpack/client-production/18.pack +0 -0
- package/.next/cache/webpack/client-production/19.pack +0 -0
- package/.next/cache/webpack/client-production/2.pack +0 -0
- package/.next/cache/webpack/client-production/20.pack +0 -0
- package/.next/cache/webpack/client-production/21.pack +0 -0
- package/.next/cache/webpack/client-production/22.pack +0 -0
- package/.next/cache/webpack/client-production/3.pack +0 -0
- package/.next/cache/webpack/client-production/4.pack +0 -0
- package/.next/cache/webpack/client-production/5.pack +0 -0
- package/.next/cache/webpack/client-production/6.pack +0 -0
- package/.next/cache/webpack/client-production/7.pack +0 -0
- package/.next/cache/webpack/client-production/8.pack +0 -0
- package/.next/cache/webpack/client-production/9.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/1.pack +0 -0
- package/.next/cache/webpack/server-production/10.pack +0 -0
- package/.next/cache/webpack/server-production/11.pack +0 -0
- package/.next/cache/webpack/server-production/12.pack +0 -0
- package/.next/cache/webpack/server-production/13.pack +0 -0
- package/.next/cache/webpack/server-production/14.pack +0 -0
- package/.next/cache/webpack/server-production/15.pack +0 -0
- package/.next/cache/webpack/server-production/16.pack +0 -0
- package/.next/cache/webpack/server-production/17.pack +0 -0
- package/.next/cache/webpack/server-production/18.pack +0 -0
- package/.next/cache/webpack/server-production/19.pack +0 -0
- package/.next/cache/webpack/server-production/2.pack +0 -0
- package/.next/cache/webpack/server-production/20.pack +0 -0
- package/.next/cache/webpack/server-production/3.pack +0 -0
- package/.next/cache/webpack/server-production/4.pack +0 -0
- package/.next/cache/webpack/server-production/5.pack +0 -0
- package/.next/cache/webpack/server-production/6.pack +0 -0
- package/.next/cache/webpack/server-production/7.pack +0 -0
- package/.next/cache/webpack/server-production/8.pack +0 -0
- package/.next/cache/webpack/server-production/9.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +58 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +61 -0
- package/.next/react-loadable-manifest.json +1 -0
- package/.next/required-server-files.json +320 -0
- package/.next/routes-manifest.json +53 -0
- package/.next/server/app/_not-found/page.js +2 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +8 -0
- package/.next/server/app/_not-found.rsc +15 -0
- package/.next/server/app/api/feature/route.js +1 -0
- package/.next/server/app/api/feature/route.js.nft.json +1 -0
- package/.next/server/app/api/feature/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/file/route.js +1 -0
- package/.next/server/app/api/file/route.js.nft.json +1 -0
- package/.next/server/app/api/file/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/phase/route.js +4 -0
- package/.next/server/app/api/phase/route.js.nft.json +1 -0
- package/.next/server/app/api/phase/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/state/route.js +1 -0
- package/.next/server/app/api/state/route.js.nft.json +1 -0
- package/.next/server/app/api/state/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/state/watch/route.js +4 -0
- package/.next/server/app/api/state/watch/route.js.nft.json +1 -0
- package/.next/server/app/api/state/watch/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/task/route.js +1 -0
- package/.next/server/app/api/task/route.js.nft.json +1 -0
- package/.next/server/app/api/task/route_client-reference-manifest.js +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +7 -0
- package/.next/server/app/index.rsc +20 -0
- package/.next/server/app/page.js +14 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +10 -0
- package/.next/server/chunks/355.js +22 -0
- package/.next/server/chunks/6.js +9 -0
- package/.next/server/chunks/607.js +6 -0
- package/.next/server/chunks/643.js +1 -0
- package/.next/server/chunks/897.js +9 -0
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages/_app.js +1 -0
- package/.next/server/pages/_app.js.nft.json +1 -0
- package/.next/server/pages/_document.js +1 -0
- package/.next/server/pages/_document.js.nft.json +1 -0
- package/.next/server/pages/_error.js +19 -0
- package/.next/server/pages/_error.js.nft.json +1 -0
- package/.next/server/pages-manifest.json +6 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/chunks/590-a6568595ecd2a994.js +1 -0
- package/.next/static/chunks/8381d2c4-9707dccab70b742b.js +1 -0
- package/.next/static/chunks/920-f9bfc1b0d0402c3e.js +1 -0
- package/.next/static/chunks/acfafb44-8249079a6627ac92.js +1 -0
- package/.next/static/chunks/app/_not-found/page-be798b363e27e8c5.js +1 -0
- package/.next/static/chunks/app/api/feature/route-bb3c1a82e892ab58.js +1 -0
- package/.next/static/chunks/app/api/file/route-bb3c1a82e892ab58.js +1 -0
- package/.next/static/chunks/app/api/phase/route-bb3c1a82e892ab58.js +1 -0
- package/.next/static/chunks/app/api/state/route-bb3c1a82e892ab58.js +1 -0
- package/.next/static/chunks/app/api/state/watch/route-bb3c1a82e892ab58.js +1 -0
- package/.next/static/chunks/app/api/task/route-bb3c1a82e892ab58.js +1 -0
- package/.next/static/chunks/app/layout-3226c76a5f7f74bc.js +1 -0
- package/.next/static/chunks/app/page-8a5248f7704cde29.js +1 -0
- package/.next/static/chunks/framework-20dd4f6054cc5446.js +1 -0
- package/.next/static/chunks/main-91029f76ac1b7110.js +1 -0
- package/.next/static/chunks/main-app-b9ad56d6b1dfa941.js +1 -0
- package/.next/static/chunks/pages/_app-aa33dc41c3472021.js +1 -0
- package/.next/static/chunks/pages/_error-78b0b3b591df0e73.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-c460f8e58a9e9eff.js +1 -0
- package/.next/static/css/008a05b0ad6b854a.css +31 -0
- package/.next/static/css/6fd2e11db3a59771.css +3 -0
- package/.next/static/fWuQ3yoHovA7Cre6u89W7/_buildManifest.js +1 -0
- package/.next/static/fWuQ3yoHovA7Cre6u89W7/_ssgManifest.js +1 -0
- package/.next/trace +3 -0
- package/.next/types/app/api/feature/route.ts +347 -0
- package/.next/types/app/api/file/route.ts +347 -0
- package/.next/types/app/api/phase/route.ts +347 -0
- package/.next/types/app/api/state/route.ts +347 -0
- package/.next/types/app/api/state/watch/route.ts +347 -0
- package/.next/types/app/api/task/route.ts +347 -0
- package/.next/types/app/layout.ts +84 -0
- package/.next/types/app/page.ts +84 -0
- package/.next/types/cache-life.d.ts +141 -0
- package/.next/types/package.json +1 -0
- package/.next/types/routes.d.ts +78 -0
- package/.next/types/validator.ts +124 -0
- package/LICENSE +21 -0
- package/README.md +284 -0
- package/bin/adapters/di.js +9 -0
- package/bin/adapters/primary/api/utils.js +57 -0
- package/bin/adapters/secondary/agent/ProcessAgentRunner.js +161 -0
- package/bin/adapters/secondary/fs/FSWorkspaceRepository.js +283 -0
- package/bin/app/api/feature/route.js +35 -0
- package/bin/app/api/file/route.js +36 -0
- package/bin/app/api/phase/route.js +55 -0
- package/bin/app/api/state/route.js +28 -0
- package/bin/app/api/state/watch/route.js +92 -0
- package/bin/app/api/task/route.js +20 -0
- package/bin/bin/cli.js +317 -0
- package/bin/cli.js +85 -0
- package/bin/domain/models/types.js +2 -0
- package/bin/domain/ports/in/WorkflowUseCases.js +2 -0
- package/bin/domain/ports/out/AgentRunnerPort.js +2 -0
- package/bin/domain/ports/out/WorkspaceRepositoryPort.js +2 -0
- package/bin/domain/services/WorkflowService.js +174 -0
- package/next.config.ts +13 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{694:(e,t,n)=>{Promise.resolve().then(n.bind(n,6925))},6925:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Z});var a=n(8886),i=n(9398),s=n(7603),r=n(5106),c=n(2852),l=n(509),o=n(8053),d=n(8725);let x={specification:"Specification",clarification:"Clarification",planning:"Planning",checklist:"Checklist",analyze:"Analysis",tasks:"Tasks",taskstoissues:"Tasks to Issues",implementation:"Implementation",completed:"Completed"},h=e=>{let{state:t,onRunPhase:n,onApprovePhase:h,onDiscardPhase:p,onSelectFeature:b,onDeleteFeature:u,onSelectPhaseFile:m,onCardDrop:g}=e,[f,z]=i.useState(null),k=e=>{e.preventDefault()},v=()=>{z(null)},j=(e,t)=>{if(t)return(0,a.jsxs)("span",{className:"flex items-center gap-1 text-[10px] font-semibold text-red-500 bg-red-500/10 px-1.5 py-0.5 rounded border border-red-500/20",children:[(0,a.jsx)(s.A,{size:10}),"STALE"]});switch(e){case"running":return(0,a.jsx)("span",{className:"flex items-center gap-1 text-[10px] font-semibold text-blue-500 bg-blue-500/10 px-1.5 py-0.5 rounded border border-blue-500/20 animate-pulse",children:"RUNNING"});case"awaiting_review":return(0,a.jsx)("span",{className:"flex items-center gap-1 text-[10px] font-semibold text-amber-500 bg-amber-500/10 px-1.5 py-0.5 rounded border border-amber-500/20",children:"REVIEW"});case"approved":return(0,a.jsx)("span",{className:"flex items-center gap-1 text-[10px] font-semibold text-green-500 bg-green-500/10 px-1.5 py-0.5 rounded border border-green-500/20",children:"APPROVED"});default:return(0,a.jsx)("span",{className:"text-[10px] font-semibold text-zinc-400 bg-zinc-100 dark:bg-zinc-900 px-1.5 py-0.5 rounded border border-zinc-200 dark:border-zinc-800",children:"IDLE"})}};return(0,a.jsxs)("div",{className:"flex flex-col h-full bg-white dark:bg-black overflow-y-auto",children:[(0,a.jsxs)("div",{className:"mx-6 my-4 p-4 border border-zinc-200 dark:border-zinc-800 rounded-lg bg-zinc-50 dark:bg-zinc-950 flex flex-col md:flex-row md:items-center justify-between gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("h2",{className:"text-sm font-bold text-zinc-900 dark:text-zinc-100",children:"Project Constitution"}),j(t.constitutionPhase.status,t.constitutionPhase.stale)]}),(0,a.jsx)("p",{className:"text-xs text-zinc-500 mt-1",children:"Governing principles and rules that guide all subsequent planning and implementation."})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("button",{onClick:()=>m(t.constitutionPhase.filePath),disabled:!t.constitutionPhase.filePath,className:"px-3 py-1.5 border border-zinc-200 dark:border-zinc-800 hover:bg-zinc-100 dark:hover:bg-zinc-900 rounded text-xs transition disabled:opacity-50",children:"View Constitution"}),"approved"!==t.constitutionPhase.status?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{onClick:()=>n("constitution",null),disabled:"running"===t.constitutionPhase.status,className:"flex items-center gap-1 px-3 py-1.5 bg-black dark:bg-white text-white dark:text-black rounded text-xs font-semibold hover:opacity-90 transition disabled:opacity-50",children:[(0,a.jsx)(r.A,{size:10,fill:"currentColor"})," Run"]}),"awaiting_review"===t.constitutionPhase.status&&(0,a.jsxs)("button",{onClick:()=>h("constitution",null),className:"flex items-center gap-1 px-3 py-1.5 bg-green-650 hover:bg-green-700 text-white rounded text-xs font-semibold transition",children:[(0,a.jsx)(c.A,{size:10})," Approve"]})]}):(0,a.jsxs)("button",{onClick:()=>p("constitution",null),className:"flex items-center gap-1 px-3 py-1.5 border border-zinc-200 dark:border-zinc-800 hover:bg-zinc-100 dark:hover:bg-zinc-900 rounded text-xs transition",children:[(0,a.jsx)(l.A,{size:10})," Discard"]})]})]}),(0,a.jsx)("div",{className:"flex-1 flex gap-4 px-6 pb-6 overflow-x-auto min-h-0",children:["specification","clarification","planning","checklist","analyze","tasks","taskstoissues","implementation","completed"].map(e=>{let i=t.features.filter(t=>(e=>{for(let t of e.phases)if("approved"!==t.status)return t.phase;return"completed"})(t)===e);return(0,a.jsxs)("div",{onDragOver:k,onDragEnter:t=>{t.preventDefault(),z(e)},onDragLeave:v,onDrop:t=>((e,t)=>{e.preventDefault(),z(null);let n=e.dataTransfer.getData("text/plain");n&&(null==g||g(n,t))})(t,e),className:"flex flex-col flex-shrink-0 w-72 h-full border rounded-lg overflow-hidden transition-all duration-200 ".concat(f===e?"border-dashed border-zinc-400 dark:border-zinc-500 bg-zinc-100/70 dark:bg-zinc-900/40 ring-1 ring-zinc-400 dark:ring-zinc-500":"border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-950/20"),children:[(0,a.jsxs)("div",{className:"flex justify-between items-center px-3.5 py-3 border-b border-zinc-200 dark:border-zinc-800 bg-zinc-100 dark:bg-zinc-950/70",children:[(0,a.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-zinc-500",children:x[e]}),(0,a.jsx)("span",{className:"text-xs text-zinc-400 bg-zinc-200 dark:bg-zinc-900 px-1.5 py-0.5 rounded-full font-semibold",children:i.length})]}),(0,a.jsx)("div",{className:"flex-1 p-3 overflow-y-auto space-y-3",style:{scrollbarWidth:"thin"},children:0===i.length?(0,a.jsx)("div",{className:"flex items-center justify-center h-24 border border-dashed border-zinc-200 dark:border-zinc-800 rounded bg-white dark:bg-black/10 text-xs text-zinc-400",children:"No features in this phase"}):i.map(i=>{let s=(e=>{let t=e.phases.find(e=>"tasks"===e.phase);if(!(null==t?void 0:t.content))return null;let n=[...t.content.matchAll(/^\s*(?:[-*]|\d+\.)\s+\[( |x|X)\]/gm)];return 0===n.length?null:{done:n.filter(e=>"x"===e[1].toLowerCase()).length,total:n.length}})(i),x="completed"===e?i.phases[i.phases.length-1]:i.phases.find(t=>t.phase===e),g=t.activeFeatureName===i.name;return(0,a.jsxs)("div",{draggable:!0,onDragStart:e=>((e,t)=>{e.dataTransfer.setData("text/plain",t),e.dataTransfer.effectAllowed="move"})(e,i.name),onClick:()=>b(i.name),className:"p-3.5 border rounded-lg bg-white dark:bg-black transition-all cursor-pointer group flex flex-col justify-between hover:shadow-sm active:scale-[0.98] ".concat(g?"border-black dark:border-white ring-1 ring-black dark:ring-white shadow-sm":"border-zinc-200 dark:border-zinc-850 hover:border-zinc-350 dark:hover:border-zinc-700"),children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex justify-between items-start gap-2",children:[(0,a.jsx)("span",{className:"text-xs font-bold text-zinc-850 dark:text-zinc-100 truncate group-hover:text-black dark:group-hover:text-white",children:i.name}),(0,a.jsx)("button",{onClick:e=>{e.stopPropagation(),u(i.name)},className:"text-zinc-400 hover:text-red-500 p-0.5 hover:bg-zinc-100 dark:hover:bg-zinc-900 rounded opacity-0 group-hover:opacity-100 transition",children:(0,a.jsx)(o.A,{size:12})})]}),"completed"!==e&&(0,a.jsxs)("div",{className:"flex justify-between items-center mt-3",children:[j(x.status,x.stale),s&&(0,a.jsxs)("span",{className:"text-[10px] font-mono text-zinc-400 bg-zinc-100 dark:bg-zinc-900 px-1 py-0.5 rounded",children:[s.done,"/",s.total," Tasks"]})]})]}),(0,a.jsxs)("div",{className:"mt-4 pt-3 border-t border-zinc-100 dark:border-zinc-900 flex justify-end items-center gap-1.5",children:[(0,a.jsx)("button",{onClick:e=>{e.stopPropagation(),m(x.filePath)},disabled:!x.filePath,className:"mr-auto text-[10px] hover:underline text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200 disabled:opacity-0",children:"Open File"}),"completed"!==e?"approved"!==x.status?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),n(e,i.name)},disabled:"running"===x.status,className:"flex items-center gap-0.5 p-1 px-2 border border-zinc-200 dark:border-zinc-800 hover:bg-zinc-50 dark:hover:bg-zinc-900 text-[10px] font-semibold rounded transition",children:[(0,a.jsx)(r.A,{size:8,fill:"currentColor"})," Run"]}),"awaiting_review"===x.status&&(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),h(e,i.name)},className:"flex items-center gap-0.5 p-1 px-2 bg-green-500 hover:bg-green-600 text-white text-[10px] font-semibold rounded transition",children:[(0,a.jsx)(c.A,{size:8})," Approve"]})]}):(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),p(e,i.name)},className:"flex items-center gap-0.5 p-1 px-2 border border-zinc-200 dark:border-zinc-800 hover:bg-zinc-50 dark:hover:bg-zinc-900 text-[10px] font-semibold rounded text-zinc-500 hover:text-zinc-700 transition",children:[(0,a.jsx)(l.A,{size:8})," Reset"]}):(0,a.jsxs)("span",{className:"flex items-center gap-0.5 text-green-500 font-bold text-[10px] uppercase",children:[(0,a.jsx)(d.A,{size:10})," Complete"]})]})]},i.name)})})]},e)})})]})};var p=n(5014),b=n(4201);n(9516);var u=n(7570);let m={idle:"#71717a",running:"#3b82f6",awaiting_review:"#f59e0b",approved:"#10b981"},g={idle:"Idle",running:"Running",awaiting_review:"Review",approved:"Approved"},f={constitution:"Constitution",specification:"Spec",clarification:"Clarify",planning:"Plan",checklist:"Checklist",analyze:"Analysis",tasks:"Tasks",taskstoissues:"Issues",implementation:"Implementation"},z={constitution:e=>{let{data:t}=e,n=m[t.status],i="running"===t.status;return(0,a.jsxs)("div",{className:"bg-white dark:bg-black rounded-lg border px-3 py-2 text-center select-none shadow-sm min-w-[150px] transition-all",style:{borderColor:t.stale?"#ef4444":n,borderStyle:t.stale?"dashed":"solid",borderWidth:"2px"},children:[(0,a.jsx)("div",{className:"text-xs font-bold text-zinc-950 dark:text-zinc-50 tracking-wide mb-1",children:"Constitution"}),(0,a.jsx)("div",{className:"flex items-center justify-center gap-1 text-[10px] font-semibold",style:{color:n,animation:i?"pulse 1.2s ease-in-out infinite":"none"},children:(0,a.jsx)("span",{children:g[t.status]})}),t.filePath&&(0,a.jsxs)("button",{onClick:e=>{var n;e.stopPropagation(),null==(n=t.onOpenFile)||n.call(t,t.filePath)},className:"mt-2 flex items-center justify-center gap-1 mx-auto text-[9px] font-medium text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200 transition",children:[(0,a.jsx)(u.A,{size:10})," Open File"]}),(0,a.jsx)(p.h7,{type:"source",position:b.yX.Bottom,id:"bottom",className:"w-2 h-2 bg-zinc-400 dark:bg-zinc-650 border-0"})]})},phase:e=>{let{data:t}=e,n=m[t.status],i="running"===t.status;return(0,a.jsxs)("div",{className:"bg-white dark:bg-black rounded-lg border px-3 py-2 select-none shadow-sm min-w-[140px] transition-all ".concat(t.isActive?"border-black dark:border-white ring-1 ring-black dark:ring-white":""),style:{borderColor:t.stale?"#ef4444":n,borderStyle:t.stale?"dashed":"solid",borderWidth:t.isActive?"2px":"1.5px"},children:[t.isFirst&&(0,a.jsx)(p.h7,{type:"target",position:b.yX.Top,id:"top",className:"w-2 h-2 bg-zinc-400 dark:bg-zinc-650 border-0"}),!t.isFirst&&(0,a.jsx)(p.h7,{type:"target",position:b.yX.Left,id:"left",className:"w-2 h-2 bg-zinc-400 dark:bg-zinc-650 border-0"}),(0,a.jsx)("div",{className:"text-xs font-bold text-zinc-950 dark:text-zinc-50 mb-1",children:t.label}),(0,a.jsxs)("div",{className:"flex items-center gap-1 text-[10px] font-semibold",style:{color:n,animation:i?"pulse 1.2s ease-in-out infinite":"none"},children:[(0,a.jsx)("span",{children:g[t.status]}),t.stale&&(0,a.jsxs)("span",{className:"flex items-center gap-0.5 text-red-500 text-[8px] font-bold",children:[(0,a.jsx)(s.A,{size:8})," STALE"]})]}),t.taskProgress&&t.taskProgress.total>0&&(0,a.jsxs)("div",{className:"mt-2 space-y-1",children:["implementation"===t.phase&&(0,a.jsx)("div",{className:"h-1 bg-zinc-100 dark:bg-zinc-900 rounded-full overflow-hidden",children:(0,a.jsx)("div",{className:"h-full rounded-full transition-all duration-300",style:{width:"".concat(Math.round(t.taskProgress.done/t.taskProgress.total*100),"%"),backgroundColor:t.taskProgress.done===t.taskProgress.total?"#10b981":"#3b82f6"}})}),(0,a.jsx)("div",{className:"text-[9px] text-zinc-400 dark:text-zinc-500 font-mono",children:"implementation"===t.phase?"".concat(t.taskProgress.done,"/").concat(t.taskProgress.total," tasks"):"".concat(t.taskProgress.total," task").concat(1!==t.taskProgress.total?"s":"")})]}),t.filePath&&(0,a.jsxs)("button",{onClick:e=>{var n;e.stopPropagation(),null==(n=t.onOpenFile)||n.call(t,t.filePath)},className:"mt-2 flex items-center gap-1 text-[9px] font-medium text-zinc-500 hover:text-zinc-850 dark:hover:text-zinc-200 transition",children:[(0,a.jsx)(u.A,{size:10})," Open File"]}),!t.isLast&&(0,a.jsx)(p.h7,{type:"source",position:b.yX.Right,id:"right",className:"w-2 h-2 bg-zinc-400 dark:bg-zinc-650 border-0"})]})}},k=e=>{let{state:t,onSelectFeature:n,onSelectPhaseFile:s}=e,{nodes:r,edges:c}=(0,i.useMemo)(()=>{var e,n;let a=[],i=[],r=t.features.find(e=>e.name===t.activeFeatureName),c="approved"===t.constitutionPhase.status?null!=(e=null==r?void 0:r.phases.find(e=>"approved"!==e.status))?e:null:t.constitutionPhase;return a.push({id:"constitution",type:"constitution",position:{x:735,y:15},data:{status:t.constitutionPhase.status,stale:null!=(n=t.constitutionPhase.stale)&&n,filePath:t.constitutionPhase.filePath,onOpenFile:s},style:{width:160}}),t.features.forEach((e,n)=>{let r=175+130*n,l=e.phases.find(e=>"tasks"===e.phase),o=null;if(null==l?void 0:l.content){let e=[...l.content.matchAll(/^\s*(?:[-*]|\d+\.)\s+\[( |x|X)\]/gm)];e.length>0&&(o={done:e.filter(e=>"x"===e[1].toLowerCase()).length,total:e.length})}e.phases.forEach((n,l)=>{var d;let x="".concat(e.name,"::").concat(n.phase),h=0===l,p=l===e.phases.length-1,b=(null==c?void 0:c.phase)===n.phase&&e.name===t.activeFeatureName,u="tasks"===n.phase||"implementation"===n.phase;a.push({id:x,type:"phase",position:{x:210*l,y:r},data:{label:f[n.phase],phase:n.phase,status:n.status,stale:null!=(d=n.stale)&&d,filePath:n.filePath,featureName:e.name,isFirst:h,isLast:p,isActive:b,taskProgress:u?o:null,onOpenFile:s},style:{width:160}});let g={stroke:m[n.status]||"#71717a",strokeWidth:"approved"===n.status?2:1.5,strokeDasharray:"awaiting_review"===n.status?"5 3":void 0},z="running"===n.status||"awaiting_review"===n.status;if(h&&i.push({id:"constitution--\x3e".concat(x),source:"constitution",sourceHandle:"bottom",target:x,targetHandle:"top",type:"smoothstep",animated:z,style:g}),!h){let t="".concat(e.name,"::").concat(e.phases[l-1].phase);i.push({id:"".concat(t,"--\x3e").concat(x),source:t,sourceHandle:"right",target:x,targetHandle:"left",type:"smoothstep",animated:z,style:g})}}),a.push({id:"".concat(e.name,"::label"),type:"default",position:{x:-140,y:r+37.5-10},data:{label:e.name},style:{background:"transparent",border:"none",fontSize:"11px",color:"#888",fontWeight:600,width:120,textAlign:"right",boxShadow:"none",pointerEvents:"none"},selectable:!1,draggable:!1})}),{nodes:a,edges:i}},[t,s]);return(0,a.jsx)("div",{className:"w-full h-full bg-zinc-50 dark:bg-black",children:(0,a.jsxs)(p.Gc,{nodes:r,edges:c,nodeTypes:z,onNodeClick:(e,t)=>{t.id.includes("::")&&n(t.id.split("::")[0])},fitView:!0,minZoom:.5,maxZoom:1.5,children:[(0,a.jsx)(p.VS,{gap:16,size:1,color:"#e4e4e7",className:"dark:opacity-10"}),(0,a.jsx)(p.H2,{showInteractive:!1,className:"border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-zinc-950 rounded shadow-md"})]})})};var v=n(3383),j=n(3353),N=n(4172),y=n(8317),w=n(47),C=n(1269),P=n(4727),S=n(496),A=n(6930),T=n(4140),O=n(7613),F=n(2768),E=n(6337);let I=[{phase:"constitution",label:"Constitution",file:"constitution.md",defaultPath:()=>".specify/memory/constitution.md"},{phase:"specification",label:"Spec",file:"spec.md",defaultPath:e=>"specs/".concat(e,"/spec.md")},{phase:"clarification",label:"Clarification",file:"clarification.md",defaultPath:e=>"specs/".concat(e,"/clarification.md")},{phase:"planning",label:"Planning",file:"plan.md",defaultPath:e=>"specs/".concat(e,"/plan.md")},{phase:"checklist",label:"Checklist",file:"checklist.md",defaultPath:e=>"specs/".concat(e,"/checklist.md")},{phase:"analyze",label:"Analysis",file:"analysis.md",defaultPath:e=>"specs/".concat(e,"/analysis.md")},{phase:"tasks",label:"Tasks",file:"tasks.md",defaultPath:e=>"specs/".concat(e,"/tasks.md")}],L=e=>{let{filePath:t,initialContent:n,onSave:s,onToggleTask:r,state:c,isMaximized:l=!1,onToggleMaximize:o,onSelectFile:d}=e,[x,h]=(0,i.useState)(""),[p,b]=(0,i.useState)("split"),[u,m]=(0,i.useState)(!1),[g,f]=(0,i.useState)(!1),z=(0,i.useRef)(null),k=(0,i.useRef)(null),L=e=>{let t=k.current;if(!t)return;let n=t.selectionStart,a=t.selectionEnd,i=t.value,s=i.substring(n,a),r="",c=0,l=0;switch(e){case"bold":r="**".concat(s||"bold text","**"),c=2,l=r.length-2;break;case"italic":r="*".concat(s||"italic text","*"),c=1,l=r.length-1;break;case"heading":let o=0===n||"\n"===i.charAt(n-1);r="".concat(o?"":"\n","### ").concat(s||"Heading"),c=o?4:5,l=r.length;break;case"link":r="[".concat(s||"link text","](https://example.com)"),c=1,l=(s||"link text").length+1;break;case"code":r="\n```\n".concat(s||"code here","\n```\n"),c=5,l=r.length-5;break;case"table":c=2,l=(r="\n| Header 1 | Header 2 |\n| -------- | -------- |\n| Cell 1 | Cell 2 |\n").length-1;break;case"checkbox":let d=0===n||"\n"===i.charAt(n-1);r="".concat(d?"":"\n","- [ ] ").concat(s||"New Task"),c=d?6:7,l=r.length}h(i.substring(0,n)+r+i.substring(a)),setTimeout(()=>{t.focus(),t.setSelectionRange(n+c,n+l)},50)};(0,i.useEffect)(()=>{n!==z.current&&(n===x?f(!1):x===z.current||null===z.current?(h(n||""),f(!1)):f(!0),z.current=n)},[n,x]);let R=async()=>{if(t){m(!0);try{await s(x)}finally{m(!1)}}},D=e=>{let t=[],n=e,i=0;for(;n.length>0;){let e=n.match(/^([^\*]*)\*\*([^\*]+)\*\*(.*)/),s=n.match(/^([^`]*)`([^`]+)`(.*)/);if(s&&(!e||s[1].length<e[1].length))s[1]&&t.push((0,a.jsx)("span",{children:s[1]},i++)),t.push((0,a.jsx)("code",{className:"px-1 py-0.5 bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded font-mono text-xs text-red-500 dark:text-red-400",children:s[2]},i++)),n=s[3];else if(e)e[1]&&t.push((0,a.jsx)("span",{children:e[1]},i++)),t.push((0,a.jsx)("strong",{className:"font-semibold text-zinc-900 dark:text-zinc-100",children:e[2]},i++)),n=e[3];else{t.push((0,a.jsx)("span",{children:n},i++));break}}return t.length>0?t:[e]};return(0,a.jsxs)("div",{className:"flex flex-col h-full border border-zinc-200 dark:border-zinc-800 bg-white dark:bg-black rounded-lg overflow-hidden",children:[c&&d&&(0,a.jsx)("div",{className:"flex items-center border-b border-zinc-200 dark:border-zinc-800 bg-zinc-50/50 dark:bg-zinc-950/30 overflow-x-auto scrollbar-none shrink-0",children:I.map(e=>{let n=(e=>{if("constitution"===e.phase){var t;return(null==c||null==(t=c.constitutionPhase)?void 0:t.filePath)||".specify/memory/constitution.md"}if(!(null==c?void 0:c.activeFeatureName))return null;let n=c.features.find(e=>e.name===c.activeFeatureName),a=null==n?void 0:n.phases.find(t=>t.phase===e.phase);return(null==a?void 0:a.filePath)||e.defaultPath(c.activeFeatureName)})(e),i="constitution"!==e.phase&&!(null==c?void 0:c.activeFeatureName),s=(e=>{if("constitution"===e){var t;return(null==c||null==(t=c.constitutionPhase)?void 0:t.status)||"idle"}if(!(null==c?void 0:c.activeFeatureName))return"idle";let n=c.features.find(e=>e.name===c.activeFeatureName),a=null==n?void 0:n.phases.find(t=>t.phase===e);return(null==a?void 0:a.status)||"idle"})(e.phase),r=!i&&n&&t&&(n.replace(/\\/g,"/").toLowerCase()===t.replace(/\\/g,"/").toLowerCase()||t.replace(/\\/g,"/").toLowerCase().endsWith(n.replace(/\\/g,"/").toLowerCase())||n.replace(/\\/g,"/").toLowerCase().endsWith(t.replace(/\\/g,"/").toLowerCase())),l="bg-zinc-300 dark:bg-zinc-700";return"approved"===s&&(l="bg-emerald-500"),"awaiting_review"===s&&(l="bg-amber-500"),"running"===s&&(l="bg-blue-500 animate-pulse"),(0,a.jsxs)("button",{disabled:i,onClick:()=>n&&d(n),className:"flex items-center gap-2 px-4 py-2.5 text-xs font-medium border-b-2 transition shrink-0 ".concat(i?"text-zinc-300 dark:text-zinc-800 cursor-not-allowed border-transparent":r?"text-black dark:text-white border-black dark:border-white bg-white dark:bg-zinc-900/50":"text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-300 border-transparent hover:bg-zinc-100/30 dark:hover:bg-zinc-900/30"),children:[(0,a.jsx)("span",{className:"w-1.5 h-1.5 rounded-full ".concat(l)}),(0,a.jsx)("span",{children:e.label})]},e.phase)})}),t?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex justify-between items-center px-4 py-2.5 border-b border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-950/50 shrink-0",children:[(0,a.jsx)("span",{className:"text-xs font-mono text-zinc-500 truncate max-w-[200px] sm:max-w-md",children:t.split("/").pop()}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsxs)("div",{className:"flex items-center bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded p-0.5",children:[(0,a.jsxs)("button",{onClick:()=>b("edit"),className:"p-1.5 rounded transition text-xs flex items-center gap-1 ".concat("edit"===p?"bg-white dark:bg-zinc-800 text-zinc-850 dark:text-zinc-50 shadow-sm":"text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200"),children:[(0,a.jsx)(v.A,{size:12}),(0,a.jsx)("span",{className:"hidden sm:inline",children:"Edit"})]}),(0,a.jsxs)("button",{onClick:()=>b("preview"),className:"p-1.5 rounded transition text-xs flex items-center gap-1 ".concat("preview"===p?"bg-white dark:bg-zinc-800 text-zinc-850 dark:text-zinc-50 shadow-sm":"text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200"),children:[(0,a.jsx)(j.A,{size:12}),(0,a.jsx)("span",{className:"hidden sm:inline",children:"Preview"})]}),(0,a.jsxs)("button",{onClick:()=>b("split"),className:"p-1.5 rounded transition text-xs flex items-center gap-1 ".concat("split"===p?"bg-white dark:bg-zinc-800 text-zinc-850 dark:text-zinc-50 shadow-sm":"text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200"),children:[(0,a.jsx)(N.A,{size:12}),(0,a.jsx)("span",{className:"hidden sm:inline",children:"Split"})]})]}),(0,a.jsxs)("button",{onClick:R,disabled:u,className:"flex items-center gap-1 px-3 py-1.5 bg-black dark:bg-white text-white dark:text-black rounded text-xs font-medium hover:bg-zinc-800 dark:hover:bg-zinc-100 transition disabled:opacity-50",children:[(0,a.jsx)(y.A,{size:12}),(0,a.jsx)("span",{children:u?"Saving...":"Save"})]}),o&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"w-px h-5 bg-zinc-200 dark:bg-zinc-800 mx-1"}),(0,a.jsx)("button",{onClick:o,className:"p-1.5 rounded text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200 hover:bg-zinc-100 dark:hover:bg-zinc-900 transition",title:l?"Restore Layout":"Maximize Editor",children:l?(0,a.jsx)(w.A,{size:12}):(0,a.jsx)(C.A,{size:12})})]})]})]}),("edit"===p||"split"===p)&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 px-4 py-1.5 border-b border-zinc-200 dark:border-zinc-800 bg-zinc-50/35 dark:bg-zinc-950/20 overflow-x-auto scrollbar-none shrink-0",children:[(0,a.jsx)("button",{onClick:()=>L("bold"),className:"p-1 hover:bg-zinc-200 dark:hover:bg-zinc-800 rounded text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition",title:"Bold",children:(0,a.jsx)(P.A,{size:13})}),(0,a.jsx)("button",{onClick:()=>L("italic"),className:"p-1 hover:bg-zinc-200 dark:hover:bg-zinc-800 rounded text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition",title:"Italic",children:(0,a.jsx)(S.A,{size:13})}),(0,a.jsx)("button",{onClick:()=>L("heading"),className:"p-1 hover:bg-zinc-200 dark:hover:bg-zinc-800 rounded text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition",title:"Heading",children:(0,a.jsx)(A.A,{size:13})}),(0,a.jsx)("div",{className:"w-px h-4 bg-zinc-200 dark:bg-zinc-800 mx-1"}),(0,a.jsx)("button",{onClick:()=>L("link"),className:"p-1 hover:bg-zinc-200 dark:hover:bg-zinc-800 rounded text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition",title:"Insert Link",children:(0,a.jsx)(T.A,{size:13})}),(0,a.jsx)("button",{onClick:()=>L("code"),className:"p-1 hover:bg-zinc-200 dark:hover:bg-zinc-800 rounded text-zinc-650 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition",title:"Insert Code Block",children:(0,a.jsx)(O.A,{size:13})}),(0,a.jsx)("button",{onClick:()=>L("table"),className:"p-1 hover:bg-zinc-200 dark:hover:bg-zinc-800 rounded text-zinc-650 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition",title:"Insert Table",children:(0,a.jsx)(F.A,{size:13})}),(0,a.jsx)("button",{onClick:()=>L("checkbox"),className:"p-1 hover:bg-zinc-200 dark:hover:bg-zinc-800 rounded text-zinc-650 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition",title:"Add Task",children:(0,a.jsx)(E.A,{size:13})})]}),g&&(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 bg-amber-50 dark:bg-amber-950/20 border-b border-amber-200 dark:border-amber-900/50 text-xs text-amber-800 dark:text-amber-300 transition-all shrink-0",children:[(0,a.jsx)("div",{className:"flex items-center gap-1.5 font-medium",children:(0,a.jsx)("span",{children:"⚠️ External changes detected. The file on disk has been modified."})}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("button",{onClick:()=>{h(n||""),f(!1)},className:"px-2 py-1 bg-amber-600 dark:bg-amber-700 text-white rounded hover:bg-amber-700 dark:hover:bg-amber-600 transition font-semibold",children:"Reload from disk"}),(0,a.jsx)("button",{onClick:()=>{f(!1)},className:"px-2 py-1 bg-zinc-200 dark:bg-zinc-800 text-zinc-700 dark:text-zinc-300 rounded hover:bg-zinc-300 dark:hover:bg-zinc-750 transition font-semibold",children:"Keep my changes"})]})]}),(0,a.jsxs)("div",{className:"flex-1 flex overflow-hidden min-h-0",children:[("edit"===p||"split"===p)&&(0,a.jsx)("textarea",{ref:k,value:x,onChange:e=>h(e.target.value),className:"flex-1 p-4 bg-transparent resize-none border-0 outline-none focus:ring-0 text-zinc-800 dark:text-zinc-100 font-mono text-xs leading-relaxed ".concat("split"===p?"border-r border-zinc-200 dark:border-zinc-800":""),placeholder:"Write markdown here..."}),("preview"===p||"split"===p)&&(0,a.jsx)("div",{className:"flex-1 p-5 overflow-y-auto bg-transparent prose dark:prose-invert max-w-none",children:(()=>{if(!x)return(0,a.jsx)("p",{className:"text-zinc-400 italic text-sm",children:"No content to display."});let e=x.split("\n"),t=!1,n=[],s=[];for(let c=0;c<e.length;c++){let l=e[c];if(l.trim().startsWith("```")){t?(t=!1,s.push((0,a.jsx)("pre",{className:"p-3 bg-zinc-50 dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-800 rounded font-mono text-xs overflow-x-auto text-zinc-800 dark:text-zinc-200 my-3",children:(0,a.jsx)("code",{children:n.join("\n")})},"code-".concat(c))),n=[]):t=!0;continue}if(t){n.push(l);continue}if(l.trim().startsWith("|")&&c+1<e.length&&e[c+1].trim().match(/^\|?\s*(:?-+:?\s*\|?)+$/)){let t=l.split("|").map(e=>e.trim()).filter((e,t,n)=>(0!==t||""!==e)&&(t!==n.length-1||""!==e)),n=[],i=c;for(c+=2;c<e.length&&e[c].trim().startsWith("|");){let t=e[c].split("|").map(e=>e.trim()).filter((e,t,n)=>(0!==t||""!==e)&&(t!==n.length-1||""!==e));n.push(t),c++}c--,s.push((0,a.jsx)("div",{className:"overflow-x-auto my-4",children:(0,a.jsxs)("table",{className:"min-w-full border-collapse border border-zinc-200 dark:border-zinc-800 text-sm",children:[(0,a.jsx)("thead",{className:"bg-zinc-50 dark:bg-zinc-900/50",children:(0,a.jsx)("tr",{children:t.map((e,t)=>(0,a.jsx)("th",{className:"border border-zinc-200 dark:border-zinc-800 px-4 py-2 text-left font-bold text-zinc-900 dark:text-zinc-100",children:D(e)},t))})}),(0,a.jsx)("tbody",{children:n.map((e,t)=>(0,a.jsx)("tr",{className:"hover:bg-zinc-50/50 dark:hover:bg-zinc-900/10 odd:bg-zinc-50/10 dark:odd:bg-zinc-950/10",children:e.map((e,t)=>(0,a.jsx)("td",{className:"border border-zinc-200 dark:border-zinc-800 px-4 py-2 text-zinc-700 dark:text-zinc-350",children:D(e)},t))},t))})]})},"table-".concat(i)));continue}let o=l.match(/^(\s*(?:[-*]|\d+\.)\s+\[)( |x|X)(\])(.*)/);if(o){let e="x"===o[2].toLowerCase(),t=o[4],n=l.search(/\S/);s.push((0,a.jsxs)("div",{className:"flex items-start gap-2.5 py-1",style:{paddingLeft:"".concat(12*n,"px")},children:[(0,a.jsx)("input",{type:"checkbox",checked:e,onChange:e=>null==r?void 0:r(c,e.target.checked),className:"mt-1 w-4 h-4 rounded border-zinc-300 dark:border-zinc-700 bg-transparent text-black dark:text-white focus:ring-0 cursor-pointer"}),(0,a.jsx)("span",{className:"text-sm leading-relaxed ".concat(e?"line-through text-zinc-400 dark:text-zinc-500":"text-zinc-800 dark:text-zinc-200"),children:D(t)})]},c));continue}let d=l.match(/^(#{1,6})\s+(.*)/);if(d){let e=d[1].length,t=d[2],n=["","text-2xl font-bold border-b border-zinc-200 dark:border-zinc-850 pb-1 mt-6 mb-3 text-zinc-900 dark:text-zinc-100","text-xl font-bold mt-5 mb-2.5 text-zinc-900 dark:text-zinc-100","text-lg font-semibold mt-4 mb-2 text-zinc-800 dark:text-zinc-200","text-base font-semibold mt-3 mb-2 text-zinc-800 dark:text-zinc-200","text-sm font-semibold mt-2.5 mb-1.5 text-zinc-850 dark:text-zinc-250","text-xs font-semibold mt-2 mb-1 text-zinc-900 dark:text-zinc-300"];s.push(i.createElement("h".concat(e),{key:c,className:n[e]},D(t)));continue}let x=l.match(/^>\s+\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\](.*)/i);if(x){let e=x[1].toUpperCase(),t=x[2],n={NOTE:"bg-zinc-50 dark:bg-zinc-950 border-blue-500 text-zinc-800 dark:text-zinc-200",TIP:"bg-zinc-50 dark:bg-zinc-950 border-green-500 text-zinc-800 dark:text-zinc-200",IMPORTANT:"bg-zinc-50 dark:bg-zinc-950 border-purple-500 text-zinc-800 dark:text-zinc-200",WARNING:"bg-zinc-50 dark:bg-zinc-950 border-amber-500 text-zinc-800 dark:text-zinc-200",CAUTION:"bg-zinc-50 dark:bg-zinc-950 border-red-500 text-zinc-800 dark:text-zinc-200"};s.push((0,a.jsxs)("div",{className:"p-3.5 border-l-4 my-3 rounded-r text-sm font-medium ".concat(n[e]),children:[(0,a.jsx)("div",{className:"font-bold text-xs tracking-wider mb-1 text-zinc-400",children:e}),(0,a.jsx)("div",{children:D(t)})]},c));continue}if(l.startsWith(">")){s.push((0,a.jsx)("blockquote",{className:"border-l-4 border-zinc-200 dark:border-zinc-800 pl-4 py-1.5 my-3 text-zinc-500 italic text-sm",children:D(l.substring(1).trim())},c));continue}if("---"===l.trim()){s.push((0,a.jsx)("hr",{className:"my-6 border-zinc-200 dark:border-zinc-800"},c));continue}if(l.trim().startsWith("- ")||l.trim().startsWith("* ")){let e=l.trim().substring(2);s.push((0,a.jsx)("li",{className:"ml-4 list-disc text-sm leading-relaxed text-zinc-700 dark:text-zinc-300 my-0.5",children:D(e)},c));continue}if(""===l.trim()){s.push((0,a.jsx)("div",{className:"h-2"},c));continue}s.push((0,a.jsx)("p",{className:"text-sm leading-relaxed text-zinc-700 dark:text-zinc-300 my-1",children:D(l)},c))}return(0,a.jsx)("div",{className:"space-y-1",children:s})})()})]})]}):(0,a.jsx)("div",{className:"flex-1 flex flex-col items-center justify-center p-8 text-zinc-400 bg-zinc-50 dark:bg-zinc-950/10",children:(0,a.jsx)("p",{className:"text-sm",children:"Select a tab or a phase to start editing or viewing markdown."})})]})};var R=n(7004);let D=e=>{let{logs:t,onClear:n}=e,s=(0,i.useRef)(null);return(0,i.useEffect)(()=>{s.current&&(s.current.scrollTop=s.current.scrollHeight)},[t]),(0,a.jsxs)("div",{className:"flex flex-col h-full bg-black border-t border-zinc-800 text-zinc-300 font-mono text-xs",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center px-4 py-2 border-b border-zinc-900 bg-zinc-950",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(R.A,{size:14,className:"text-zinc-500"}),(0,a.jsx)("span",{className:"font-semibold tracking-wider text-zinc-400",children:"CONSOLE OUTPUT"})]}),(0,a.jsx)("button",{onClick:n,title:"Clear console",className:"p-1 hover:bg-zinc-800 rounded transition text-zinc-500 hover:text-zinc-300",children:(0,a.jsx)(o.A,{size:14})})]}),(0,a.jsx)("div",{ref:s,className:"flex-1 p-4 overflow-y-auto whitespace-pre-wrap selection:bg-zinc-800",style:{scrollbarWidth:"thin"},children:t||(0,a.jsx)("span",{className:"text-zinc-600",children:"// Terminal logs will stream here..."})})]})};var W=n(3781),J=n(451),_=n(3541),G=n(9597),H=n(6714),M=n(2084),U=n(9756),X=n(4807),V=n(779),K=n(9136),B=n(1240);let q={constitution:"Constitution",specification:"Specification",clarification:"Clarification",planning:"Planning",checklist:"Checklist",analyze:"Analysis",tasks:"Tasks",taskstoissues:"Tasks to Issues",implementation:"Implementation"};function Z(){let[e,t]=(0,i.useState)(null),[n,s]=(0,i.useState)(""),[c,l]=(0,i.useState)(null),[o,d]=(0,i.useState)("kanban"),[x,p]=(0,i.useState)("dark"),[b,u]=(0,i.useState)({agentType:"claude",customCommand:"",agentPath:""}),[m,g]=(0,i.useState)(""),[f,z]=(0,i.useState)(""),[v,j]=(0,i.useState)(!1),[N,y]=(0,i.useState)(!1),[w,C]=(0,i.useState)(!1),[P,S]=(0,i.useState)(!1),[A,T]=(0,i.useState)(!1),O=()=>{T(e=>{let t=!e;return localStorage.setItem("isSidebarCollapsed",String(t)),t})};(0,i.useEffect)(()=>{"true"===localStorage.getItem("isSidebarCollapsed")&&T(!0)},[]);let F=i.useRef(c);(0,i.useEffect)(()=>{F.current=c},[c]),(0,i.useEffect)(()=>{E(),window.document.documentElement.classList.add("dark");let e=new EventSource("/api/state/watch");return e.addEventListener("update",e=>{let n=JSON.parse(e.data),a=n.state||n,i=n.changedFile||null;t(a),F.current&&i&&F.current.path.replace(/\\/g,"/")===i.replace(/\\/g,"/")&&$(F.current.path)}),()=>{e.close()}},[]);let E=async()=>{try{let e=await fetch("/api/state"),n=await e.json();t(n)}catch(e){console.error("Failed to fetch state:",e)}},I=async e=>{try{let n=await fetch("/api/state",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({activeFeatureName:e})}),a=await n.json();t(a);let i=a.features.find(t=>t.name===e),s=null==i?void 0:i.phases.find(e=>"specification"===e.phase);(null==s?void 0:s.filePath)?$(s.filePath):l(null)}catch(e){console.error(e)}},R=async e=>{if(e.preventDefault(),f.trim())try{let e=await fetch("/api/feature",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.trim()})}),n=await e.json();t(n),z("");let a="specs/".concat(f.trim(),"/spec.md");l({path:a,content:""})}catch(e){console.error(e)}},Z=async n=>{if(confirm('Are you sure you want to delete feature "'.concat(n,'"?')))try{let a=await fetch("/api/feature",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:n})}),i=await a.json();t(i),(null==e?void 0:e.activeFeatureName)===n&&l(null)}catch(e){console.error(e)}},$=async e=>{try{let t=await fetch("/api/file?path=".concat(encodeURIComponent(e))),n=await t.json();l(n)}catch(e){console.error(e)}},Q=async e=>{if(c)try{let n=await fetch("/api/file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:c.path,content:e})}),a=await n.json();l({path:c.path,content:e}),a.state&&t(a.state)}catch(e){console.error(e)}},Y=async(n,a)=>{if(null==e?void 0:e.activeFeatureName)try{let i=await fetch("/api/task",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({featureName:e.activeFeatureName,lineIndex:n,checked:a})}),s=await i.json();t(s);let r=s.features.find(e=>e.name===s.activeFeatureName),l=null==r?void 0:r.phases.find(e=>"tasks"===e.phase);(null==l?void 0:l.filePath)&&(null==c?void 0:c.path)===l.filePath&&$(l.filePath)}catch(e){console.error(e)}},ee=async(n,a)=>{s(""),j(!0),C(!0);try{var i;let r=null==(i=(await fetch("/api/phase",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"run",phase:n,featureName:a||(null==e?void 0:e.activeFeatureName),agentConfig:b,prompt:m})})).body)?void 0:i.getReader();if(!r)return void j(!1);let c=new TextDecoder,l="";for(;;){let{value:e,done:i}=await r.read();if(i)break;let o=(l+=c.decode(e)).split("\n\n");for(let e of(l=o.pop()||"",o))if(e.startsWith("event: log")){let t=e.split("\n").find(e=>e.startsWith("data: "));if(t){let e=JSON.parse(t.substring(6));s(t=>t+e.text)}}else if(e.startsWith("event: done")){let i=e.split("\n").find(e=>e.startsWith("data: "));if(i){let e=JSON.parse(i.substring(6));t(e.state);let s=a||e.state.activeFeatureName,r=e.state.features.find(e=>e.name===s),c=null==r?void 0:r.phases.find(e=>e.phase===n);(null==c?void 0:c.filePath)&&$(c.filePath)}j(!1),g("")}else if(e.startsWith("event: error")){let t=e.split("\n").find(e=>e.startsWith("data: "));if(t){let e=JSON.parse(t.substring(6));s(t=>t+"\nError: ".concat(e.message,"\n"))}j(!1)}}E()}catch(e){s(t=>t+"\nExecution failed: ".concat(e.message,"\n")),j(!1)}},et=async(n,a)=>{try{let i=await fetch("/api/phase",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"approve",phase:n,featureName:a||(null==e?void 0:e.activeFeatureName)})}),s=await i.json();t(s)}catch(e){console.error(e)}},en=async(n,a)=>{try{let i=await fetch("/api/phase",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"discard",phase:n,featureName:a||(null==e?void 0:e.activeFeatureName)})}),s=await i.json();t(s),(null==c?void 0:c.path)&&c.path.includes(n)&&l(null)}catch(e){console.error(e)}},ea=async(n,a)=>{if(!e)return;let i=e.features.find(e=>e.name===n);if(!i)return;let s=["specification","clarification","planning","checklist","analyze","tasks","taskstoissues","implementation"],r=(()=>{for(let e of i.phases)if("approved"!==e.status)return e.phase;return"completed"})();if(r===a)return;let o="completed"===r?s.length:s.indexOf(r),d="completed"===a?s.length:s.indexOf(a);if(e.activeFeatureName!==n&&await I(n),d>o){for(let e=o;e<d;e++){let a=s[e],i=await fetch("/api/phase",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"approve",phase:a,featureName:n})});t(await i.json())}"completed"!==a&&ee(a,n)}else{let e=await fetch("/api/phase",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"discard",phase:a,featureName:n})});t(await e.json()),(null==c?void 0:c.path)&&c.path.includes(a)&&l(null)}},ei=(()=>{if(!e||"approved"!==e.constitutionPhase.status)return{phase:"constitution",label:"Constitution"};let t=e.features.find(t=>t.name===e.activeFeatureName);if(!t)return{phase:"specification",label:"Specification"};for(let e of t.phases)if("approved"!==e.status)return{phase:e.phase,label:q[e.phase]};return{phase:"specification",label:"Specification"}})();return(0,a.jsxs)("div",{className:"flex flex-col h-screen bg-white dark:bg-black text-zinc-900 dark:text-zinc-50 overflow-hidden font-sans",children:[(0,a.jsxs)("header",{className:"flex justify-between items-center px-6 py-4 border-b border-zinc-200 dark:border-zinc-800 bg-white dark:bg-black z-10 shrink-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"text-xl",children:"\uD83C\uDF31"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Spec Kit Assistant"}),(0,a.jsxs)("p",{className:"text-[10px] text-zinc-400 font-mono",children:["WORKSPACE: ",e?"ACTIVE":"CONNECTING..."]})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-lg p-0.5",children:[(0,a.jsxs)("button",{onClick:()=>d("kanban"),className:"p-1.5 rounded-md transition text-xs flex items-center gap-1.5 ".concat("kanban"===o?"bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-50 shadow-sm":"text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200"),children:[(0,a.jsx)(W.A,{size:13}),(0,a.jsx)("span",{children:"Kanban"})]}),(0,a.jsxs)("button",{onClick:()=>d("dag"),className:"p-1.5 rounded-md transition text-xs flex items-center gap-1.5 ".concat("dag"===o?"bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-50 shadow-sm":"text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200"),children:[(0,a.jsx)(J.A,{size:13}),(0,a.jsx)("span",{children:"DAG Map"})]})]}),(0,a.jsx)("button",{onClick:()=>y(!N),className:"p-2 border border-zinc-200 dark:border-zinc-800 rounded-lg transition hover:bg-zinc-100 dark:hover:bg-zinc-900 ".concat(N?"bg-zinc-100 dark:bg-zinc-900 text-zinc-900 dark:text-zinc-50":"text-zinc-500"),title:"Configure AI Agent",children:(0,a.jsx)(_.A,{size:14})}),(0,a.jsx)("button",{onClick:()=>{let e=window.document.documentElement;"light"===x?(e.classList.add("dark"),p("dark")):(e.classList.remove("dark"),p("light"))},className:"p-2 border border-zinc-200 dark:border-zinc-800 rounded-lg text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-100 transition hover:bg-zinc-100 dark:hover:bg-zinc-900",children:"light"===x?(0,a.jsx)(G.A,{size:14}):(0,a.jsx)(H.A,{size:14})})]})]}),(0,a.jsxs)("div",{className:"flex-1 flex overflow-hidden min-h-0",children:[(0,a.jsx)("aside",{className:"border-r border-zinc-200 dark:border-zinc-800 bg-zinc-50/50 dark:bg-zinc-950/20 flex flex-col shrink-0 transition-all duration-300 ".concat(A?"w-12 items-center justify-between py-4":"w-64"),children:A?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{onClick:O,className:"p-1.5 hover:bg-zinc-150 dark:hover:bg-zinc-900 rounded text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200 transition",title:"Expand Sidebar",children:(0,a.jsx)(M.A,{size:16})}),(0,a.jsxs)("div",{onClick:O,className:"relative group cursor-pointer p-2 rounded hover:bg-zinc-150 dark:hover:bg-zinc-900 transition text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200",title:"Click to view Features list",children:[(0,a.jsx)(U.A,{size:18}),(null==e?void 0:e.features)&&e.features.length>0&&(0,a.jsx)("span",{className:"absolute -top-1 -right-1 bg-black dark:bg-white text-white dark:text-black text-[9px] w-4 h-4 rounded-full flex items-center justify-center font-bold",children:e.features.length})]}),(0,a.jsx)("div",{onClick:O,className:"group cursor-pointer p-2 rounded hover:bg-zinc-150 dark:hover:bg-zinc-900 transition text-zinc-400 hover:text-zinc-800 dark:hover:text-zinc-200",title:"Trigger Agent: ".concat(ei.label),children:(0,a.jsx)(X.A,{size:16})})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-zinc-200 dark:border-zinc-800 shrink-0",children:[(0,a.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-wider text-zinc-400",children:"Features Manager"}),(0,a.jsx)("button",{onClick:O,className:"p-1 hover:bg-zinc-150 dark:hover:bg-zinc-900 rounded text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-200 transition",title:"Collapse Sidebar",children:(0,a.jsx)(V.A,{size:14})})]}),(0,a.jsx)("form",{onSubmit:R,className:"p-4 border-b border-zinc-200 dark:border-zinc-800 shrink-0",children:(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("input",{type:"text",placeholder:"New feature name...",value:f,onChange:e=>z(e.target.value),className:"flex-1 px-3 py-1.5 bg-white dark:bg-black border border-zinc-200 dark:border-zinc-800 rounded-md text-xs outline-none focus:border-zinc-400 dark:focus:border-zinc-650"}),(0,a.jsx)("button",{type:"submit",className:"p-2 bg-black dark:bg-white text-white dark:text-black rounded-md hover:opacity-90 transition",children:(0,a.jsx)(K.A,{size:12})})]})}),(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto p-3 space-y-1",style:{scrollbarWidth:"thin"},children:[(0,a.jsx)("div",{className:"px-2 py-1 text-[10px] font-bold uppercase tracking-wider text-zinc-400",children:"Features"}),null==e?void 0:e.features.map(t=>{let n=e.activeFeatureName===t.name;return(0,a.jsxs)("div",{onClick:()=>I(t.name),className:"group flex items-center justify-between px-2.5 py-2 rounded-md text-xs font-medium cursor-pointer transition ".concat(n?"bg-zinc-100 dark:bg-zinc-900 text-zinc-950 dark:text-zinc-50":"text-zinc-500 hover:bg-zinc-50 dark:hover:bg-zinc-950"),children:[(0,a.jsx)("span",{className:"truncate",children:t.name}),(0,a.jsx)("button",{onClick:e=>{e.stopPropagation(),Z(t.name)},className:"p-1 hover:bg-zinc-200 dark:hover:bg-zinc-800 rounded text-zinc-400 hover:text-red-500 transition opacity-0 group-hover:opacity-100",children:(0,a.jsx)(B.A,{size:10})})]},t.name)}),(null==e?void 0:e.features.length)===0&&(0,a.jsx)("p",{className:"text-xs text-zinc-400 italic p-2",children:"No features created yet."})]}),(0,a.jsxs)("div",{className:"p-4 border-t border-zinc-200 dark:border-zinc-800 bg-white dark:bg-black shrink-0",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-1",children:[(0,a.jsxs)("span",{className:"text-[10px] font-bold uppercase tracking-wider text-zinc-400",children:["Trigger Agent: ",ei.label]}),(0,a.jsx)(X.A,{size:10,className:"text-zinc-400"})]}),(0,a.jsx)("textarea",{placeholder:"Refinements or prompts...",value:m,onChange:e=>g(e.target.value),disabled:v||!e,className:"w-full h-16 p-2 text-xs bg-zinc-50 dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-800 rounded-md outline-none resize-none disabled:opacity-50"}),(0,a.jsxs)("button",{onClick:()=>ee(ei.phase,null),disabled:v||!e,className:"w-full mt-2 py-1.5 bg-black dark:bg-white text-white dark:text-black rounded-md text-xs font-semibold hover:opacity-90 transition flex items-center justify-center gap-1 disabled:opacity-50",children:[(0,a.jsx)(r.A,{size:10,fill:"currentColor"})," Run ",ei.label]})]})]})}),(0,a.jsxs)("main",{className:"flex-1 flex flex-col min-w-0 overflow-hidden bg-white dark:bg-black relative",children:[N&&(0,a.jsxs)("div",{className:"absolute top-0 left-0 right-0 border-b border-zinc-200 dark:border-zinc-800 bg-white dark:bg-black p-4 z-20 shadow-md",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-3",children:[(0,a.jsx)("h3",{className:"text-xs font-bold uppercase tracking-wider text-zinc-500",children:"AI Agent Config"}),(0,a.jsx)("button",{onClick:()=>y(!1),className:"p-1 hover:bg-zinc-100 dark:hover:bg-zinc-900 rounded",children:(0,a.jsx)(B.A,{size:12})})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-[10px] font-bold text-zinc-400 uppercase mb-1",children:"Agent CLI"}),(0,a.jsxs)("select",{value:b.agentType,onChange:e=>u({...b,agentType:e.target.value}),className:"w-full px-3 py-1.5 text-xs bg-zinc-50 dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-800 rounded-md outline-none",children:[(0,a.jsx)("option",{value:"claude",children:"Claude CLI (Anthropic)"}),(0,a.jsx)("option",{value:"gemini",children:"Gemini CLI (Google)"}),(0,a.jsx)("option",{value:"copilot",children:"GitHub Copilot (ghcs)"}),(0,a.jsx)("option",{value:"openai",children:"OpenAI Codex"}),(0,a.jsx)("option",{value:"custom",children:"Custom Command"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-[10px] font-bold text-zinc-400 uppercase mb-1",children:"Custom Binary Path (Optional)"}),(0,a.jsx)("input",{type:"text",placeholder:"e.g. /usr/local/bin/claude",value:b.agentPath||"",onChange:e=>u({...b,agentPath:e.target.value}),className:"w-full px-3 py-1.5 text-xs bg-zinc-50 dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-800 rounded-md outline-none"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-[10px] font-bold text-zinc-400 uppercase mb-1",children:"Custom Spawn Shell Command"}),(0,a.jsx)("input",{type:"text",placeholder:"e.g. my-agent {{prompt}}",value:b.customCommand||"",disabled:"custom"!==b.agentType,onChange:e=>u({...b,customCommand:e.target.value}),className:"w-full px-3 py-1.5 text-xs bg-zinc-50 dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-800 rounded-md outline-none disabled:opacity-50"})]})]})]}),(0,a.jsxs)("div",{className:"flex-1 flex flex-col min-h-0",children:[!(P&&!w)&&(0,a.jsx)("div",{className:"flex-1 min-h-[50%] relative",children:e?"kanban"===o?(0,a.jsx)(h,{state:e,onRunPhase:ee,onApprovePhase:et,onDiscardPhase:en,onSelectFeature:I,onDeleteFeature:Z,onSelectPhaseFile:$,onCardDrop:ea}):(0,a.jsx)(k,{state:e,onSelectFeature:I,onSelectPhaseFile:$}):(0,a.jsx)("div",{className:"flex items-center justify-center h-full text-zinc-400 text-xs",children:"Loading Spec-Driven Development workspace state..."})}),(0,a.jsxs)("div",{className:"flex flex-col min-h-0 bg-white dark:bg-black transition-all duration-300 ".concat(P&&!w?"flex-1 h-full":"h-[40%] border-t border-zinc-200 dark:border-zinc-800"),children:[(0,a.jsx)("div",{className:"flex justify-between items-center px-4 py-2 border-b border-zinc-150 dark:border-zinc-900 bg-zinc-50/70 dark:bg-zinc-950/20 shrink-0",children:(0,a.jsxs)("div",{className:"flex gap-4",children:[(0,a.jsx)("button",{onClick:()=>C(!1),className:"text-xs font-bold tracking-wide transition pb-1 border-b-2 ".concat(w?"text-zinc-400 border-transparent":"text-black dark:text-white border-black dark:border-white"),children:"MARKDOWN EDITOR"}),(0,a.jsxs)("button",{onClick:()=>C(!0),className:"text-xs font-bold tracking-wide transition pb-1 border-b-2 ".concat(w?"text-black dark:text-white border-black dark:border-white":"text-zinc-400 border-transparent"),children:["AGENT RUN CONSOLE ",v&&(0,a.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-blue-500 animate-pulse ml-1"})]})]})}),(0,a.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:w?(0,a.jsx)(D,{logs:n,onClear:()=>s("")}):(0,a.jsx)("div",{className:"h-full p-3 bg-white dark:bg-black",children:(0,a.jsx)(L,{filePath:(null==c?void 0:c.path)||null,initialContent:(null==c?void 0:c.content)||null,onSave:Q,onToggleTask:Y,state:e,isMaximized:P,onToggleMaximize:()=>S(!P),onSelectFile:$})})})]})]})]})]})]})}}},e=>{e.O(0,[63,314,590,480,920,358],()=>e(e.s=694)),_N_E=e.O()}]);
|