neural-loom 0.2.48 → 0.2.49
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 -1
- package/.next/app-path-routes-manifest.json +4 -0
- package/.next/build-manifest.json +3 -3
- package/.next/cache/.previewinfo +1 -1
- package/.next/cache/.rscinfo +1 -1
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/diagnostics/route-bundle-stats.json +1 -1
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +24 -0
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/context/aider/route.js.nft.json +1 -1
- package/.next/server/app/api/context/claude/route.js.nft.json +1 -1
- package/.next/server/app/api/context/route.js.nft.json +1 -1
- package/.next/server/app/api/context/ssh/route.js.nft.json +1 -1
- package/.next/server/app/api/recents/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/inject/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/input/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/launch/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/scope/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/start/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/stats/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/stop/route.js.nft.json +1 -1
- package/.next/server/app/api/sql/connections/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/sql/connections/route/build-manifest.json +9 -0
- package/.next/server/app/api/sql/connections/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/sql/connections/route.js +6 -0
- package/.next/server/app/api/sql/connections/route.js.map +5 -0
- package/.next/server/app/api/sql/connections/route.js.nft.json +1 -0
- package/.next/server/app/api/sql/connections/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/sql/mcp/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/sql/mcp/route/build-manifest.json +9 -0
- package/.next/server/app/api/sql/mcp/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/sql/mcp/route.js +6 -0
- package/.next/server/app/api/sql/mcp/route.js.map +5 -0
- package/.next/server/app/api/sql/mcp/route.js.nft.json +1 -0
- package/.next/server/app/api/sql/mcp/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/sql/query/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/sql/query/route/build-manifest.json +9 -0
- package/.next/server/app/api/sql/query/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/sql/query/route.js +6 -0
- package/.next/server/app/api/sql/query/route.js.map +5 -0
- package/.next/server/app/api/sql/query/route.js.nft.json +1 -0
- package/.next/server/app/api/sql/query/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/sql/schema/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/sql/schema/route/build-manifest.json +9 -0
- package/.next/server/app/api/sql/schema/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/sql/schema/route.js +6 -0
- package/.next/server/app/api/sql/schema/route.js.map +5 -0
- package/.next/server/app/api/sql/schema/route.js.nft.json +1 -0
- package/.next/server/app/api/sql/schema/route_client-reference-manifest.js +3 -0
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +4 -0
- package/.next/server/chunks/[root-of-the-server]__0.ptwor._.js +86 -0
- package/.next/server/chunks/[root-of-the-server]__0.ptwor._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__00l5btc._.js +74 -0
- package/.next/server/chunks/[root-of-the-server]__00l5btc._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__06men8g._.js +74 -0
- package/.next/server/chunks/[root-of-the-server]__06men8g._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0_o7_jj._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0_o7_jj._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0co.g5k._.js +74 -0
- package/.next/server/chunks/[root-of-the-server]__0co.g5k._.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_sql_connections_route_actions_11cib8~.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_sql_connections_route_actions_11cib8~.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_sql_mcp_route_actions_0wihfps.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_sql_mcp_route_actions_0wihfps.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_sql_query_route_actions_11x3q3c.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_sql_query_route_actions_11x3q3c.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_sql_schema_route_actions_015okwb.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_sql_schema_route_actions_015okwb.js.map +1 -0
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/03f4bqk_d65hs.js +6 -0
- package/.next/static/chunks/{15zf~gqr_i8s1.js → 0~6gm~u8rgtpd.js} +1 -1
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/.next/types/routes.d.ts +5 -1
- package/.next/types/validator.ts +36 -0
- package/bin/cli.js +76 -0
- package/package.json +2 -2
- package/src/app/api/sql/connections/route.ts +60 -0
- package/src/app/api/sql/mcp/route.ts +27 -0
- package/src/app/api/sql/query/route.ts +56 -0
- package/src/app/api/sql/schema/route.ts +42 -0
- package/src/app/components/DbExplorer.tsx +1279 -0
- package/src/app/components/IdeLayout.tsx +27 -1
- package/src/lib/sql/ConnectionManager.ts +207 -0
- package/src/lib/sql/DbAdapter.ts +62 -0
- package/src/lib/sql/McpServer.ts +278 -0
- package/src/lib/sql/adapters/MysqlAdapter.ts +120 -0
- package/src/lib/sql/adapters/PostgresAdapter.ts +139 -0
- package/src/lib/sql/adapters/SqliteAdapter.ts +111 -0
- package/.next/static/chunks/0bclk7hf35ac4.js +0 -1
- /package/.next/static/{V3HKuGO63wx4G9xwdUktP → BoncS4SNz6CDpSdR8oY-K}/_buildManifest.js +0 -0
- /package/.next/static/{V3HKuGO63wx4G9xwdUktP → BoncS4SNz6CDpSdR8oY-K}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{V3HKuGO63wx4G9xwdUktP → BoncS4SNz6CDpSdR8oY-K}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,3839,e=>{"use strict";var t=e.i(43476),r=e.i(71645),o=e.i(5991),n=e.i(54370);function i({content:e}){let o=(0,r.useMemo)(()=>{if(!e)return[];let t=e.split("\n"),r=[],o=null;for(let e=0;e<t.length;e++){let n=t[e];if(o&&"code"===o.type){n.trim().startsWith("```")?(r.push(o),o=null):o.content.push(n);continue}if(o&&"table"===o.type)if(n.trim().startsWith("|")){o.content.push(n);continue}else r.push(o),o=null;let i=n.trim();if(i.startsWith("```")){o&&r.push(o),o={type:"code",language:i.substring(3).trim(),content:[]};continue}if(/^(\s*[-*_]\s*){3,}$/.test(i)){o&&r.push(o),r.push({type:"hr"}),o=null;continue}let l=n.match(/^(#{1,6})\s+(.*)$/);if(l){o&&r.push(o),r.push({type:"h",level:l[1].length,content:l[2]}),o=null;continue}let a=n.match(/^>\s*(.*)$/);if(a){if(o)if("blockquote"===o.type){o.content.push(a[1]);continue}else r.push(o);o={type:"blockquote",content:[a[1]]};continue}let s=n.match(/^([-*+])\s+(.*)$/);if(s){if(o)if("ul"===o.type){o.content.push(s[2]);continue}else r.push(o);o={type:"ul",content:[s[2]]};continue}let d=n.match(/^(\d+)\.\s+(.*)$/);if(d){if(o)if("ol"===o.type){o.content.push(d[2]);continue}else r.push(o);o={type:"ol",content:[d[2]]};continue}if(i.startsWith("|")){o&&r.push(o),o={type:"table",content:[n]};continue}if(""===i){o&&(r.push(o),o=null);continue}o?"p"===o.type?o.content=o.content+" "+i:(r.push(o),o={type:"p",content:i}):o={type:"p",content:i}}return o&&r.push(o),r},[e]),n=0;function R(e){return function e(r){if(!r)return[];let o=r.match(/`(.*?)`/),i=r.match(/\*\*(.*?)\*\*/),l=r.match(/\*(.*?)\*/),a=r.match(/\[(.*?)\]\((.*?)\)/),s=[o?{index:o.index,type:"code",match:o}:null,i?{index:i.index,type:"bold",match:i}:null,l?{index:l.index,type:"italic",match:l}:null,a?{index:a.index,type:"link",match:a}:null].filter(Boolean);if(0===s.length)return[r];s.sort((e,t)=>e.index-t.index);let d=s[0],c=r.substring(0,d.index),p=d.match[0],u=r.substring(d.index+p.length),m=[];c&&m.push(c);let h=`inline-${d.type}-${n++}`;return"code"===d.type?m.push((0,t.jsx)("code",{style:x,children:d.match[1]},h)):"bold"===d.type?m.push((0,t.jsx)("strong",{style:{fontWeight:700,color:"var(--foreground)"},children:e(d.match[1])},h)):"italic"===d.type?m.push((0,t.jsx)("em",{style:{fontStyle:"italic"},children:e(d.match[1])},h)):"link"===d.type&&m.push((0,t.jsx)("a",{href:d.match[2],target:"_blank",rel:"noopener noreferrer",style:y,children:e(d.match[1])},h)),[...m,...e(u)]}(e)}return(0,t.jsx)("div",{style:a,children:o.map((e,r)=>{let o=`block-${e.type}-${r}`;switch(e.type){case"h":{let r=R(e.content);switch(e.level){case 1:return(0,t.jsx)("h1",{style:d,children:r},o);case 2:return(0,t.jsx)("h2",{style:c,children:r},o);case 3:return(0,t.jsx)("h3",{style:p,children:r},o);default:return(0,t.jsx)("h4",{style:u,children:r},o)}}case"code":{let r=e.content.join("\n");return(0,t.jsx)(l,{code:r,language:e.language||""},o)}case"blockquote":return(0,t.jsx)("blockquote",{style:k,children:e.content&&e.content.map((e,r)=>(0,t.jsx)("p",{style:{margin:"0.25rem 0"},children:R(e)},r))},o);case"ul":return(0,t.jsx)("ul",{style:m,children:e.content&&e.content.map((e,r)=>(0,t.jsxs)("li",{style:f,children:[(0,t.jsx)("span",{style:{marginRight:"0.5rem",color:"var(--accent)"},children:"•"}),(0,t.jsx)("div",{style:{flex:1},children:R(e)})]},r))},o);case"ol":return(0,t.jsx)("ol",{style:h,children:e.content&&e.content.map((e,r)=>(0,t.jsxs)("li",{style:f,children:[(0,t.jsxs)("span",{style:{marginRight:"0.5rem",color:"var(--accent)",fontWeight:600},children:[r+1,"."]}),(0,t.jsx)("div",{style:{flex:1},children:R(e)})]},r))},o);case"table":return function(e,r){let o=e.map(e=>e.split("|").map(e=>e.trim()).filter((e,t,r)=>t>0&&t<r.length-1));if(0===o.length)return null;let n=o[0],i=o.slice(1).filter(e=>!e.every(e=>e.startsWith("-")||""===e));return(0,t.jsx)("div",{style:b,children:(0,t.jsxs)("table",{style:v,children:[(0,t.jsx)("thead",{children:(0,t.jsx)("tr",{children:n.map((e,r)=>(0,t.jsx)("th",{style:j,children:R(e)},r))})}),(0,t.jsx)("tbody",{children:i.map((e,r)=>(0,t.jsx)("tr",{style:r%2==0?w:S,children:e.map((e,r)=>(0,t.jsx)("td",{style:C,children:R(e)},r))},r))})]})},r)}(e.content,o);case"hr":return(0,t.jsx)("hr",{style:g},o);case"p":return(0,t.jsx)("p",{style:s,children:R(e.content)},o);default:return null}})})}function l({code:e,language:o}){let[n,i]=(0,r.useState)(!1);return(0,t.jsxs)("div",{style:R,children:[(0,t.jsxs)("div",{style:T,children:[(0,t.jsx)("span",{children:o||"code"}),(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(e),i(!0),setTimeout(()=>i(!1),2e3)},style:I,children:n?"Copied! ✓":"Copy"})]}),(0,t.jsx)("pre",{style:z,children:(0,t.jsx)("code",{children:e})})]})}let a={fontFamily:"var(--font-sans), sans-serif",color:"var(--foreground)",lineHeight:1.6,padding:"1.5rem",overflowY:"auto",height:"100%",backgroundColor:"#080c14",borderLeft:"1px solid var(--border)"},s={fontSize:"0.875rem",marginBottom:"1rem",color:"var(--foreground-muted, #94a3b8)"},d={fontSize:"1.5rem",fontWeight:700,margin:"1.5rem 0 1rem 0",paddingBottom:"0.3rem",borderBottom:"1px solid var(--border)",color:"var(--foreground)",background:"linear-gradient(135deg, #fff 0%, #a855f7 100%)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},c={fontSize:"1.25rem",fontWeight:650,margin:"1.25rem 0 0.85rem 0",paddingBottom:"0.25rem",borderBottom:"1px solid var(--border)",color:"var(--foreground)"},p={fontSize:"1.05rem",fontWeight:600,margin:"1rem 0 0.75rem 0",color:"var(--foreground)"},u={fontSize:"0.925rem",fontWeight:600,margin:"0.85rem 0 0.5rem 0",color:"var(--foreground)"},m={listStyleType:"none",padding:0,margin:"0 0 1rem 0"},h={listStyleType:"none",padding:0,margin:"0 0 1rem 0"},f={display:"flex",alignItems:"flex-start",fontSize:"0.875rem",marginBottom:"0.375rem",color:"var(--foreground-muted, #94a3b8)"},g={border:"none",height:"1px",background:"linear-gradient(90deg, var(--border) 0%, rgba(255,255,255,0.05) 100%)",margin:"1.5rem 0"},x={fontFamily:"var(--font-mono), monospace",fontSize:"0.85em",backgroundColor:"rgba(255, 255, 255, 0.06)",border:"1px solid rgba(255, 255, 255, 0.08)",borderRadius:"4px",padding:"0.1rem 0.3rem",color:"#f87171"},y={color:"#60a5fa",textDecoration:"underline",fontWeight:500},b={width:"100%",overflowX:"auto",margin:"1rem 0",borderRadius:"8px",border:"1px solid var(--border)",backgroundColor:"rgba(255, 255, 255, 0.01)"},v={width:"100%",borderCollapse:"collapse",fontSize:"0.85rem"},j={backgroundColor:"rgba(255, 255, 255, 0.03)",borderBottom:"2px solid var(--border)",padding:"0.5rem 0.75rem",fontWeight:700,textAlign:"left",color:"var(--foreground)"},C={borderBottom:"1px solid var(--border)",padding:"0.5rem 0.75rem",color:"var(--foreground-muted, #94a3b8)"},w={backgroundColor:"rgba(255, 255, 255, 0.01)"},S={backgroundColor:"transparent"},k={borderLeft:"4px solid #a855f7",backgroundColor:"rgba(168, 85, 247, 0.03)",padding:"0.5rem 1rem",margin:"1rem 0",borderRadius:"4px",fontStyle:"italic",color:"var(--muted)"},R={margin:"1rem 0",borderRadius:"8px",border:"1px solid var(--border)",backgroundColor:"#05070a",overflow:"hidden"},T={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"0.35rem 0.75rem",backgroundColor:"rgba(255, 255, 255, 0.02)",borderBottom:"1px solid var(--border)",fontSize:"0.7rem",color:"var(--muted)",textTransform:"uppercase",fontFamily:"var(--font-mono), monospace"},z={margin:0,padding:"1rem",overflowX:"auto",fontSize:"0.8rem",fontFamily:"var(--font-mono), monospace",lineHeight:1.5,color:"#e2e8f0"},I={background:"none",border:"1px solid var(--border)",borderRadius:"4px",padding:"2px 6px",color:"var(--muted)",cursor:"pointer",fontSize:"0.65rem",transition:"all 0.1s ease"};function P({workspaceRoot:e}){let[o,n]=(0,r.useState)({global:[],workspace:[]}),[i,l]=(0,r.useState)(null),[a,s]=(0,r.useState)(!0),[d,c]=(0,r.useState)([]),[p,u]=(0,r.useState)(null),[m,h]=(0,r.useState)({}),[f,g]=(0,r.useState)(!1),[x,y]=(0,r.useState)("SELECT * FROM sqlite_master;"),[b,v]=(0,r.useState)(!1),[j,C]=(0,r.useState)(null),[w,S]=(0,r.useState)(null),[k,R]=(0,r.useState)(!1),[T,z]=(0,r.useState)(!1),[I,L]=(0,r.useState)({id:"",name:"",type:"sqlite",filepath:"./dev.db",host:"localhost",port:5432,database:"postgres",username:"postgres",password:"",ssl:!1,readOnly:!0}),[O,F]=(0,r.useState)(!1),[B,D]=(0,r.useState)(null),E=async()=>{try{let t=await fetch(`/api/sql/connections?root=${encodeURIComponent(e)}`);if(t.ok){let e=await t.json();e.success&&(n({global:e.global||[],workspace:e.workspace||[]}),l(e.activeId),s(e.isActiveGlobal))}}catch(e){console.error("Failed to load connection profiles:",e)}},M=async()=>{if(!i)return void c([]);g(!0);try{let t=await fetch(`/api/sql/schema?action=list_tables&root=${encodeURIComponent(e)}`);if(t.ok){let e=await t.json();e.success?(c(e.tables||[]),C(null)):C(e.error||"Failed to load database schema.")}else{let e=await t.json();C(e.error||"Failed to load database schema.")}}catch(e){console.error("Failed to load schema:",e)}finally{g(!1)}},N=async t=>{if(m[t])return void u(p===t?null:t);try{let r=await fetch(`/api/sql/schema?action=describe_table&table=${encodeURIComponent(t)}&root=${encodeURIComponent(e)}`);if(r.ok){let e=await r.json();e.success&&(h(r=>({...r,[t]:e.columns})),u(t))}}catch(e){console.error(`Failed to load columns for table ${t}:`,e)}};(0,r.useEffect)(()=>{E()},[e]),(0,r.useEffect)(()=>{M(),S(null),u(null),h({});let e=a?o.global.find(e=>e.id===i):o.workspace.find(e=>e.id===i);e&&("sqlite"===e.type?y("SELECT name, type FROM sqlite_master WHERE type='table';"):y("SELECT * FROM information_schema.tables LIMIT 10;"))},[i,a,o.global.length,o.workspace.length]);let A=async(t,r)=>{try{(await fetch("/api/sql/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set_active",profileId:t,isGlobal:r,root:e})})).ok&&(l(t),s(r))}catch(e){console.error("Failed to set active profile:",e)}},$=async()=>{D(null);try{let t=await fetch("/api/sql/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"test",profile:I,root:e})}),r=await t.json();r.success?D({success:!0,message:"Connection test successful!"}):D({success:!1,message:r.error||"Connection test failed."})}catch(e){D({success:!1,message:e.message||"Failed to make test query."})}},U=async t=>{if(t.preventDefault(),!I.name||!I.type)return;F(!0);let r=I.id||`profile_${Math.random().toString(36).substring(7)}`,o={...I,id:r,name:I.name,type:I.type};try{(await fetch("/api/sql/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"save",profile:o,isGlobal:T,root:e})})).ok&&(await E(),R(!1),i||A(r,T))}catch(e){console.error("Failed to save profile:",e)}finally{F(!1)}},q=async(t,r)=>{if(confirm("Are you sure you want to delete this connection profile?"))try{(await fetch("/api/sql/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",profileId:t,isGlobal:r,root:e})})).ok&&(await E(),i===t&&l(null))}catch(e){console.error("Failed to delete connection profile:",e)}},H=async()=>{if(x.trim()&&i){v(!0),C(null),S(null);try{let t=await fetch("/api/sql/query",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sql:x.trim(),root:e})}),r=await t.json();t.ok&&r.success?(S({rows:r.rows||[],fields:r.fields||[],durationMs:r.durationMs||0,affectedRows:r.affectedRows}),(x.toLowerCase().includes("create table")||x.toLowerCase().includes("drop table")||x.toLowerCase().includes("alter table"))&&M()):C(r.error||"Failed to execute query.")}catch(e){C(e.message||"An unexpected error occurred during execution.")}finally{v(!1)}}},J=a?o.global.find(e=>e.id===i):o.workspace.find(e=>e.id===i);return(0,t.jsxs)("div",{style:W.container,children:[(0,t.jsxs)("div",{style:W.sidebar,children:[(0,t.jsxs)("div",{style:W.section,children:[(0,t.jsxs)("div",{style:W.sectionHeader,children:[(0,t.jsx)("span",{style:W.sectionTitle,children:"Connections"}),(0,t.jsx)("button",{style:W.addBtn,onClick:()=>{D(null),L({id:"",name:"",type:"sqlite",filepath:"./dev.db",host:"localhost",port:5432,database:"postgres",username:"postgres",password:"",ssl:!1,readOnly:!0}),z(!1),R(!0)},title:"Add Database Connection Profile",children:"➕ Add"})]}),(0,t.jsxs)("div",{style:W.profileList,children:[0===o.global.length&&0===o.workspace.length&&(0,t.jsx)("div",{style:W.emptyText,children:"No connections configured. Add one to start."}),o.workspace.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:W.groupHeader,children:"WORKSPACE CONNECTIONS"}),o.workspace.map(e=>(0,t.jsxs)("div",{style:{...W.profileItem,...i===e.id&&!a?W.profileItemActive:{}},onClick:()=>A(e.id,!1),children:[(0,t.jsxs)("div",{style:W.profileMeta,children:[(0,t.jsxs)("span",{style:W.profileName,children:["📁 ",e.name]}),(0,t.jsx)("span",{style:W.profileType,children:e.type})]}),(0,t.jsx)("button",{style:W.deleteProfileBtn,onClick:t=>{t.stopPropagation(),q(e.id,!1)},children:"✖"})]},e.id))]}),o.global.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:W.groupHeader,children:"GLOBAL CONNECTIONS"}),o.global.map(e=>(0,t.jsxs)("div",{style:{...W.profileItem,...i===e.id&&a?W.profileItemActive:{}},onClick:()=>A(e.id,!0),children:[(0,t.jsxs)("div",{style:W.profileMeta,children:[(0,t.jsxs)("span",{style:W.profileName,children:["🌐 ",e.name]}),(0,t.jsx)("span",{style:W.profileType,children:e.type})]}),(0,t.jsx)("button",{style:W.deleteProfileBtn,onClick:t=>{t.stopPropagation(),q(e.id,!0)},children:"✖"})]},e.id))]})]})]}),(0,t.jsxs)("div",{style:{...W.section,flex:1,borderTop:"1px solid var(--border)"},children:[(0,t.jsxs)("div",{style:W.sectionHeader,children:[(0,t.jsx)("span",{style:W.sectionTitle,children:"Schema Tables"}),f&&(0,t.jsx)("span",{style:W.spinnerMini})]}),(0,t.jsxs)("div",{style:W.tableList,children:[!i&&(0,t.jsx)("div",{style:W.emptyText,children:"Select an active connection to view tables."}),i&&0===d.length&&!f&&(0,t.jsx)("div",{style:W.emptyText,children:"No tables found in database schema."}),d.map(e=>(0,t.jsxs)("div",{style:W.tableTreeItem,children:[(0,t.jsxs)("div",{style:W.tableRow,onClick:()=>N(e.name),children:[(0,t.jsx)("span",{style:W.tableIcon,children:"view"===e.type?"👁️":"📊"}),(0,t.jsx)("span",{style:W.tableName,children:e.name}),(0,t.jsx)("span",{style:W.tableChevron,children:p===e.name?"▼":"▶"})]}),p===e.name&&m[e.name]&&(0,t.jsx)("div",{style:W.columnList,children:m[e.name].map(e=>(0,t.jsxs)("div",{style:W.columnItem,children:[(0,t.jsx)("span",{style:W.columnIcon,children:e.isPrimaryKey?"🔑":e.isForeignKey?"🔗":"▫"}),(0,t.jsx)("span",{style:W.columnName,title:e.type,children:e.name}),(0,t.jsx)("span",{style:W.columnType,children:e.type.toLowerCase().substring(0,12)})]},e.name))})]},e.name))]})]})]}),(0,t.jsxs)("div",{style:W.mainContent,children:[(0,t.jsxs)("div",{style:W.statusBar,children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,t.jsx)("span",{style:W.statusLabel,children:"Active Connection:"}),J?(0,t.jsxs)("span",{style:W.statusValue,children:[a?"🌐":"📁"," ",J.name," (",J.type,")",J.readOnly&&(0,t.jsx)("span",{style:W.readOnlyBadge,children:"Read-Only"})]}):(0,t.jsx)("span",{style:{...W.statusValue,color:"var(--danger)"},children:"No Connection Selected"})]}),(0,t.jsx)("button",{style:{...W.runBtn,opacity:!i||b?.6:1,cursor:!i||b?"not-allowed":"pointer"},onClick:H,disabled:!i||b,children:b?"⌛ Running...":"⚡ Execute Query (F5)"})]}),(0,t.jsx)("div",{style:W.editorArea,children:(0,t.jsx)("textarea",{style:W.textarea,value:x,onChange:e=>y(e.target.value),placeholder:"Write your SQL query script here...",onKeyDown:e=>{("F5"===e.key||e.ctrlKey&&"Enter"===e.key)&&(e.preventDefault(),H())}})}),(0,t.jsxs)("div",{style:W.resultsArea,children:[j&&(0,t.jsxs)("div",{style:W.errorContainer,children:[(0,t.jsx)("h4",{style:{margin:"0 0 0.5rem 0",color:"var(--danger)"},children:"⚠️ Execution Error"}),(0,t.jsx)("pre",{style:W.errorText,children:j}),j.includes("not installed")&&(0,t.jsxs)("div",{style:W.driverPrompt,children:[(0,t.jsx)("p",{style:{margin:"0 0 0.5rem 0"},children:"To resolve this, run this installer command in your workspace terminal:"}),(0,t.jsx)("code",{style:W.driverCode,children:J?.type==="sqlite"?"npm install better-sqlite3":J?.type==="postgres"?"npm install pg":"npm install mysql2"})]})]}),w&&(0,t.jsxs)("div",{style:W.resultsWrapper,children:[(0,t.jsxs)("div",{style:W.resultsMeta,children:[(0,t.jsxs)("span",{children:["Query completed."," ",void 0!==w.affectedRows?`Affected rows: ${w.affectedRows}`:`Returned ${w.rows.length} rows`]}),(0,t.jsxs)("span",{children:["Duration: ",w.durationMs,"ms"]})]}),w.rows.length>0?(0,t.jsx)("div",{style:W.tableContainer,children:(0,t.jsxs)("table",{style:W.table,children:[(0,t.jsx)("thead",{children:(0,t.jsx)("tr",{children:w.fields.map(e=>(0,t.jsx)("th",{style:W.th,children:e},e))})}),(0,t.jsx)("tbody",{children:w.rows.map((e,r)=>(0,t.jsx)("tr",{style:r%2==0?W.trEven:W.trOdd,children:w.fields.map(r=>(0,t.jsx)("td",{style:W.td,children:null===e[r]?"NULL":"object"==typeof e[r]?JSON.stringify(e[r]):String(e[r])},r))},r))})]})}):void 0===w.affectedRows&&(0,t.jsx)("div",{style:W.emptyResults,children:"Query executed successfully, but returned 0 results."})]}),!j&&!w&&!b&&(0,t.jsx)("div",{style:W.emptyResults,children:"Write a query script and click Execute to view table records."}),b&&(0,t.jsxs)("div",{style:W.loadingWrapper,children:[(0,t.jsx)("span",{style:W.spinnerLarge}),(0,t.jsx)("span",{style:{color:"var(--muted)"},children:"Running database statement..."})]})]})]}),k&&(0,t.jsx)("div",{style:W.modalOverlay,children:(0,t.jsxs)("div",{style:W.modalContent,children:[(0,t.jsxs)("h3",{style:{margin:"0 0 1rem 0",display:"flex",justifyContent:"space-between"},children:[(0,t.jsx)("span",{children:"🔌 Add Database Profile"}),(0,t.jsx)("span",{style:{cursor:"pointer"},onClick:()=>R(!1),children:"✖"})]}),(0,t.jsxs)("form",{onSubmit:U,children:[(0,t.jsxs)("div",{style:W.formRow,children:[(0,t.jsx)("label",{style:W.label,children:"Profile Name"}),(0,t.jsx)("input",{style:W.input,type:"text",required:!0,value:I.name,onChange:e=>L(t=>({...t,name:e.target.value})),placeholder:"e.g. Local Postgres, Dev SQLite"})]}),(0,t.jsxs)("div",{style:W.formRow,children:[(0,t.jsx)("label",{style:W.label,children:"Scope Level"}),(0,t.jsxs)("div",{style:{display:"flex",gap:"1rem"},children:[(0,t.jsxs)("label",{style:{cursor:"pointer",display:"flex",alignItems:"center",gap:"0.25rem"},children:[(0,t.jsx)("input",{type:"radio",checked:!T,onChange:()=>z(!1)}),"Workspace Local"]}),(0,t.jsxs)("label",{style:{cursor:"pointer",display:"flex",alignItems:"center",gap:"0.25rem"},children:[(0,t.jsx)("input",{type:"radio",checked:T,onChange:()=>z(!0)}),"Global User Profile"]})]})]}),(0,t.jsxs)("div",{style:W.formRow,children:[(0,t.jsx)("label",{style:W.label,children:"Database Type"}),(0,t.jsxs)("select",{style:W.select,value:I.type,onChange:e=>L(t=>({...t,type:e.target.value,filepath:"sqlite"===e.target.value?"./dev.db":void 0})),children:[(0,t.jsx)("option",{value:"sqlite",children:"SQLite (Local File)"}),(0,t.jsx)("option",{value:"postgres",children:"PostgreSQL"}),(0,t.jsx)("option",{value:"mysql",children:"MySQL"})]})]}),"sqlite"===I.type?(0,t.jsxs)("div",{style:W.formRow,children:[(0,t.jsx)("label",{style:W.label,children:"Database File Path"}),(0,t.jsx)("input",{style:W.input,type:"text",required:!0,value:I.filepath||"",onChange:e=>L(t=>({...t,filepath:e.target.value})),placeholder:"Relative (e.g. ./data/dev.db) or Absolute path"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{display:"flex",gap:"1rem"},children:[(0,t.jsxs)("div",{style:{...W.formRow,flex:3},children:[(0,t.jsx)("label",{style:W.label,children:"Host IP Address"}),(0,t.jsx)("input",{style:W.input,type:"text",required:!0,value:I.host||"",onChange:e=>L(t=>({...t,host:e.target.value})),placeholder:"localhost or IP"})]}),(0,t.jsxs)("div",{style:{...W.formRow,flex:1},children:[(0,t.jsx)("label",{style:W.label,children:"Port"}),(0,t.jsx)("input",{style:W.input,type:"number",required:!0,value:I.port||0,onChange:e=>L(t=>({...t,port:parseInt(e.target.value)}))})]})]}),(0,t.jsxs)("div",{style:W.formRow,children:[(0,t.jsx)("label",{style:W.label,children:"Database Name"}),(0,t.jsx)("input",{style:W.input,type:"text",required:!0,value:I.database||"",onChange:e=>L(t=>({...t,database:e.target.value}))})]}),(0,t.jsxs)("div",{style:{display:"flex",gap:"1rem"},children:[(0,t.jsxs)("div",{style:{...W.formRow,flex:1},children:[(0,t.jsx)("label",{style:W.label,children:"Username"}),(0,t.jsx)("input",{style:W.input,type:"text",required:!0,value:I.username||"",onChange:e=>L(t=>({...t,username:e.target.value}))})]}),(0,t.jsxs)("div",{style:{...W.formRow,flex:1},children:[(0,t.jsx)("label",{style:W.label,children:"Password"}),(0,t.jsx)("input",{style:W.input,type:"password",value:I.password||"",onChange:e=>L(t=>({...t,password:e.target.value}))})]})]}),"postgres"===I.type&&(0,t.jsx)("div",{style:W.formRow,children:(0,t.jsxs)("label",{style:{cursor:"pointer",display:"flex",alignItems:"center",gap:"0.25rem"},children:[(0,t.jsx)("input",{type:"checkbox",checked:!!I.ssl,onChange:e=>L(t=>({...t,ssl:e.target.checked}))}),"Require SSL Secure Connection"]})})]}),(0,t.jsx)("div",{style:W.formRow,children:(0,t.jsxs)("label",{style:{cursor:"pointer",display:"flex",alignItems:"center",gap:"0.25rem"},children:[(0,t.jsx)("input",{type:"checkbox",checked:!!I.readOnly,onChange:e=>L(t=>({...t,readOnly:e.target.checked}))}),"Enforce Read-Only Connection (Disable mutations)"]})}),B&&(0,t.jsx)("div",{style:{...W.testResult,backgroundColor:B.success?"rgba(16, 185, 129, 0.12)":"rgba(239, 68, 68, 0.12)",border:B.success?"1px solid var(--success)":"1px solid var(--danger)",color:B.success?"var(--success)":"var(--danger)"},children:B.message}),(0,t.jsxs)("div",{style:W.modalFooter,children:[(0,t.jsx)("button",{type:"button",style:W.testBtn,onClick:$,children:"🔍 Test Connection"}),(0,t.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,t.jsx)("button",{type:"button",style:W.cancelBtn,onClick:()=>R(!1),children:"Cancel"}),(0,t.jsx)("button",{type:"submit",style:W.saveBtn,disabled:O,children:O?"Saving...":"Save Profile"})]})]})]})]})})]})}let W={container:{display:"flex",height:"100%",width:"100%",backgroundColor:"#05070a",color:"#cbd5e1",fontSize:"0.875rem",minHeight:0},sidebar:{width:"280px",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",minHeight:0,backgroundColor:"rgba(10, 15, 24, 0.4)",flexShrink:0},section:{display:"flex",flexDirection:"column",padding:"1rem",minHeight:0},sectionHeader:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.75rem"},sectionTitle:{fontWeight:700,letterSpacing:"0.05em",textTransform:"uppercase",fontSize:"0.75rem",color:"var(--muted)"},addBtn:{padding:"0.2rem 0.5rem",borderRadius:"4px",border:"1px solid var(--primary)",backgroundColor:"transparent",color:"var(--primary)",fontSize:"0.7rem",fontWeight:600,cursor:"pointer"},profileList:{display:"flex",flexDirection:"column",gap:"0.4rem",overflowY:"auto",maxHeight:"220px"},groupHeader:{fontSize:"0.65rem",fontWeight:600,color:"var(--muted)",marginTop:"0.5rem",marginBottom:"0.2rem",letterSpacing:"0.05em"},profileItem:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"0.5rem 0.6rem",borderRadius:"6px",backgroundColor:"rgba(255, 255, 255, 0.02)",border:"1px solid var(--border)",cursor:"pointer",transition:"all 0.2s ease"},profileItemActive:{backgroundColor:"rgba(109, 40, 217, 0.08)",border:"1px solid var(--border-focus)",boxShadow:"0 0 10px rgba(109, 40, 217, 0.1)"},profileMeta:{display:"flex",flexDirection:"column",gap:"0.15rem",flex:1,minWidth:0},profileName:{fontWeight:600,fontSize:"0.8rem",color:"#fff",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},profileType:{fontSize:"0.7rem",color:"var(--muted)",textTransform:"uppercase"},deleteProfileBtn:{background:"none",border:"none",color:"rgba(239, 68, 68, 0.4)",cursor:"pointer",fontSize:"0.75rem",padding:"0.25rem"},tableList:{display:"flex",flexDirection:"column",gap:"0.25rem",overflowY:"auto",flex:1,minHeight:0},emptyText:{fontSize:"0.75rem",color:"var(--muted)",textAlign:"center",padding:"1rem 0"},tableTreeItem:{display:"flex",flexDirection:"column"},tableRow:{display:"flex",alignItems:"center",padding:"0.35rem 0.5rem",borderRadius:"4px",cursor:"pointer",userSelect:"none",transition:"background 0.2s ease"},tableIcon:{marginRight:"0.4rem",fontSize:"0.9rem"},tableName:{flex:1,fontSize:"0.8rem",color:"#e2e8f0",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},tableChevron:{fontSize:"0.6rem",color:"var(--muted)",marginLeft:"0.25rem"},columnList:{display:"flex",flexDirection:"column",gap:"0.2rem",paddingLeft:"1.5rem",marginTop:"0.15rem",borderLeft:"1px dashed rgba(255,255,255,0.06)",marginLeft:"0.8rem",marginBottom:"0.25rem"},columnItem:{display:"flex",alignItems:"center",padding:"0.15rem 0.25rem",fontSize:"0.75rem"},columnIcon:{marginRight:"0.3rem",fontSize:"0.7rem"},columnName:{flex:1,color:"var(--muted)",overflow:"hidden",textOverflow:"ellipsis"},columnType:{fontSize:"0.65rem",color:"rgba(109, 40, 217, 0.75)",fontFamily:"monospace",paddingLeft:"0.5rem"},mainContent:{flex:1,display:"flex",flexDirection:"column",minHeight:0,backgroundColor:"#05070a"},statusBar:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"0.75rem 1rem",borderBottom:"1px solid var(--border)",backgroundColor:"rgba(15, 23, 42, 0.3)",flexShrink:0},statusLabel:{fontSize:"0.75rem",color:"var(--muted)"},statusValue:{fontSize:"0.8rem",fontWeight:600,color:"#fff",display:"flex",alignItems:"center",gap:"0.4rem"},readOnlyBadge:{padding:"0.1rem 0.4rem",borderRadius:"4px",backgroundColor:"rgba(234, 179, 8, 0.12)",color:"#eab308",fontSize:"0.65rem",fontWeight:700,border:"1px solid rgba(234, 179, 8, 0.2)"},runBtn:{padding:"0.4rem 0.9rem",borderRadius:"6px",border:"none",backgroundColor:"var(--primary)",color:"#fff",fontSize:"0.8rem",fontWeight:600,transition:"all 0.2s ease"},editorArea:{height:"180px",borderBottom:"1px solid var(--border)",position:"relative",flexShrink:0},textarea:{width:"100%",height:"100%",backgroundColor:"#080c14",border:"none",resize:"none",color:"#e2e8f0",fontFamily:"monospace",fontSize:"0.85rem",padding:"1rem",outline:"none",lineHeight:"1.4"},resultsArea:{flex:1,display:"flex",flexDirection:"column",minHeight:0,padding:"1rem"},errorContainer:{padding:"1rem",borderRadius:"8px",backgroundColor:"rgba(239, 68, 68, 0.08)",border:"1px solid rgba(239, 68, 68, 0.2)",overflowY:"auto"},errorText:{margin:0,fontFamily:"monospace",fontSize:"0.8rem",color:"#f87171",whiteSpace:"pre-wrap"},driverPrompt:{marginTop:"1rem",padding:"0.75rem",borderRadius:"6px",backgroundColor:"rgba(0, 0, 0, 0.3)",border:"1px solid var(--border)"},driverCode:{display:"block",padding:"0.5rem",backgroundColor:"#090d16",borderRadius:"4px",fontFamily:"monospace",fontSize:"0.8rem",color:"var(--primary)",border:"1px solid var(--border)"},resultsWrapper:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},resultsMeta:{display:"flex",justifyContent:"space-between",fontSize:"0.75rem",color:"var(--muted)",marginBottom:"0.5rem"},tableContainer:{flex:1,overflow:"auto",border:"1px solid var(--border)",borderRadius:"6px"},table:{width:"100%",borderCollapse:"collapse",fontFamily:"monospace",fontSize:"0.8rem"},th:{padding:"0.5rem 0.75rem",textAlign:"left",backgroundColor:"#0f172a",borderBottom:"1px solid var(--border)",color:"#94a3b8",fontWeight:600,position:"sticky",top:0,zIndex:1},td:{padding:"0.4rem 0.75rem",borderBottom:"1px solid rgba(255, 255, 255, 0.03)",color:"#cbd5e1",whiteSpace:"nowrap"},trEven:{backgroundColor:"transparent"},trOdd:{backgroundColor:"rgba(255, 255, 255, 0.01)"},emptyResults:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--muted)",fontSize:"0.8rem",textAlign:"center"},loadingWrapper:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"1rem"},spinnerLarge:{width:"24px",height:"24px",border:"3px solid rgba(109, 40, 217, 0.15)",borderTop:"3px solid var(--primary)",borderRadius:"50%",animation:"spin 1s linear infinite"},spinnerMini:{width:"12px",height:"12px",border:"2px solid rgba(255, 255, 255, 0.1)",borderTop:"2px solid var(--muted)",borderRadius:"50%",animation:"spin 1s linear infinite"},modalOverlay:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.7)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:999},modalContent:{width:"480px",backgroundColor:"#0d131f",borderRadius:"12px",border:"1px solid var(--border-focus)",padding:"1.5rem",boxShadow:"0 4px 24px rgba(0, 0, 0, 0.5)"},formRow:{display:"flex",flexDirection:"column",gap:"0.35rem",marginBottom:"1rem"},label:{fontSize:"0.75rem",fontWeight:600,color:"var(--muted)"},input:{padding:"0.5rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"#070a12",color:"#fff",outline:"none",fontSize:"0.8rem"},select:{padding:"0.5rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"#070a12",color:"#fff",outline:"none",fontSize:"0.8rem"},testResult:{padding:"0.5rem",borderRadius:"6px",fontSize:"0.75rem",marginBottom:"1rem"},modalFooter:{display:"flex",justifyContent:"space-between",marginTop:"1.5rem"},testBtn:{padding:"0.4rem 0.75rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"transparent",color:"var(--muted)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},cancelBtn:{padding:"0.4rem 0.75rem",borderRadius:"6px",border:"none",backgroundColor:"transparent",color:"var(--muted)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},saveBtn:{padding:"0.4rem 0.75rem",borderRadius:"6px",border:"none",backgroundColor:"var(--primary)",color:"#fff",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"}};if("u">typeof document){let e=document.createElement("style");e.innerHTML=`
|
|
2
|
+
@keyframes spin {
|
|
3
|
+
0% { transform: rotate(0deg); }
|
|
4
|
+
100% { transform: rotate(360deg); }
|
|
5
|
+
}
|
|
6
|
+
`,document.head.appendChild(e)}let L={display:"flex",width:"100%",height:"100%",flex:1,minHeight:0,backgroundColor:"#05070a",border:"1px solid var(--border)",borderRadius:"12px",overflow:"hidden",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.6)"},O={width:"50px",backgroundColor:"#030406",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",justifyContent:"space-between",alignItems:"center",padding:"0.75rem 0"},F={display:"flex",flexDirection:"column",width:"100%",gap:"0.5rem"},B={width:"100%",height:"45px",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",fontSize:"1.25rem",transition:"all 0.15s ease"},D={width:"300px",backgroundColor:"#080c14",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",overflow:"hidden"},E={padding:"0.75rem 1rem",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",background:"rgba(255,255,255,0.02)"},M={flex:1,overflowY:"auto",padding:"0.75rem 0"},N={padding:"0.25rem 1rem",fontSize:"0.75rem",fontWeight:700,color:"var(--muted)",display:"flex",alignItems:"center",justifyContent:"space-between",textTransform:"uppercase",letterSpacing:"0.05em"},A={fontSize:"0.6rem",backgroundColor:"rgba(59, 130, 246, 0.1)",color:"#3b82f6",padding:"0.1rem 0.3rem",borderRadius:"3px",textTransform:"none",letterSpacing:"normal"},$={fontSize:"0.75rem",fontWeight:600,color:"var(--foreground)"},U={flex:1,display:"flex",flexDirection:"column",overflow:"hidden",backgroundColor:"#0b101b"},q={flex:1,display:"flex",flexDirection:"column",borderBottom:"1px solid var(--border)",overflow:"hidden"},H={height:"35px",backgroundColor:"#05070a",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",paddingRight:"0.75rem"},J={display:"flex",height:"100%",overflowX:"auto"},V={padding:"0 1rem",height:"100%",display:"flex",alignItems:"center",gap:"0.75rem",fontSize:"0.75rem",borderRight:"1px solid var(--border)",borderBottom:"2px solid transparent",cursor:"pointer",transition:"all 0.15s ease",maxWidth:"150px"},K={fontSize:"0.65rem",color:"var(--muted)",cursor:"pointer",padding:"2px"},_={color:"var(--primary)",fontSize:"0.65rem",marginLeft:"2px"},G={padding:"0.25rem 0.5rem",borderRadius:"4px",border:"1px solid var(--border-focus)",backgroundColor:"rgba(16, 185, 129, 0.15)",color:"var(--success)",fontSize:"0.7rem",fontWeight:600},Q={flex:1,position:"relative",overflow:"hidden"},Y={width:"100%",height:"100%",backgroundColor:"#0b101b",border:"none",outline:"none",color:"#e2e8f0",fontFamily:"var(--font-mono), monospace",fontSize:"0.85rem",padding:"1rem",resize:"none",lineHeight:1.5},X={display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",color:"var(--muted)",textAlign:"center",padding:"2rem"},Z={flex:1.4,backgroundColor:"#05070a",display:"flex",flexDirection:"column",overflow:"hidden"},ee={padding:"0.5rem 1rem",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",backgroundColor:"rgba(255,255,255,0.01)"},et={padding:"0.3rem 0.6rem",borderRadius:"4px",border:"1px solid var(--primary)",backgroundColor:"transparent",color:"var(--primary)",fontSize:"0.7rem",fontWeight:600,cursor:"pointer"},er={padding:"0.3rem 0.6rem",borderRadius:"4px",border:"1px solid var(--success)",backgroundColor:"transparent",color:"var(--success)",fontSize:"0.7rem",fontWeight:600,cursor:"pointer"},eo={flex:1,overflow:"hidden"};function en({node:e,onSelect:o,onCreate:n,onRename:i,onDelete:l,isReadOnly:a=!1}){let[s,d]=(0,r.useState)(!1),[c,p]=(0,r.useState)(!1),u="directory"===e.type,m={padding:"0.25rem 0.5rem",display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:"0.8rem",fontFamily:"var(--font-mono), monospace",cursor:"pointer",color:"var(--foreground)",borderRadius:"4px",transition:"background 0.1s ease",userSelect:"none",backgroundColor:c?"rgba(255, 255, 255, 0.05)":"transparent",minWidth:0,width:"100%"},h={display:"flex",alignItems:"center",gap:"0.375rem",flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},f={display:c?"flex":"none",alignItems:"center",gap:"0.25rem",paddingLeft:"0.5rem",flexShrink:0},g={background:"none",border:"none",padding:"2px 4px",cursor:"pointer",fontSize:"0.75rem",color:"var(--muted)",borderRadius:"3px",transition:"all 0.1s ease"},x=(e,t)=>{e.stopPropagation(),t()};return u?(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{onClick:()=>d(!s),style:m,onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),children:[(0,t.jsxs)("div",{style:h,children:[(0,t.jsx)("span",{style:{color:"#eab308"},children:s?"📂":"📁"}),(0,t.jsx)("span",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]}),!a&&(0,t.jsxs)("div",{style:f,children:[(0,t.jsx)("button",{onClick:t=>x(t,()=>n(e.path,"file")),style:g,title:"New File inside...",onMouseEnter:e=>e.currentTarget.style.color="var(--success)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:"📄+"}),(0,t.jsx)("button",{onClick:t=>x(t,()=>n(e.path,"directory")),style:g,title:"New Folder inside...",onMouseEnter:e=>e.currentTarget.style.color="var(--success)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:"📁+"}),(0,t.jsx)("button",{onClick:t=>x(t,()=>i(e.path)),style:g,title:"Rename...",onMouseEnter:e=>e.currentTarget.style.color="var(--primary)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:"✏️"}),(0,t.jsx)("button",{onClick:t=>x(t,()=>l(e.path)),style:g,title:"Delete Folder",onMouseEnter:e=>e.currentTarget.style.color="var(--danger)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:"🗑️"})]})]}),s&&e.children&&(0,t.jsx)("div",{style:{paddingLeft:"10px",borderLeft:"1px solid rgba(255, 255, 255, 0.05)",marginLeft:"8px"},children:e.children.map(e=>(0,t.jsx)(en,{node:e,onSelect:o,onCreate:n,onRename:i,onDelete:l,isReadOnly:a},e.path))})]}):(0,t.jsxs)("div",{onClick:()=>o(e.path),style:m,onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),children:[(0,t.jsxs)("div",{style:h,children:[(0,t.jsx)("span",{style:{color:"#3b82f6"},children:"📄"}),(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]}),!a&&(0,t.jsxs)("div",{style:f,children:[(0,t.jsx)("button",{onClick:t=>x(t,()=>i(e.path)),style:g,title:"Rename...",onMouseEnter:e=>e.currentTarget.style.color="var(--primary)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:"✏️"}),(0,t.jsx)("button",{onClick:t=>x(t,()=>l(e.path)),style:g,title:"Delete File",onMouseEnter:e=>e.currentTarget.style.color="var(--danger)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:"🗑️"})]})]})}let ei={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0,0,0,0.7)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3,backdropFilter:"blur(4px)"},el={width:"420px",backgroundColor:"#080c14",border:"1px solid var(--border)",borderRadius:"12px",padding:"1.5rem",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.8)"},ea={width:"100%",backgroundColor:"#05070a",border:"1px solid var(--border)",borderRadius:"6px",padding:"0.5rem 0.75rem",color:"#e2e8f0",fontSize:"0.85rem",outline:"none",marginBottom:"1.5rem",fontFamily:"var(--font-mono), monospace"},es={display:"flex",justifyContent:"flex-end",gap:"0.75rem"},ed={backgroundColor:"transparent",border:"1px solid var(--border)",color:"var(--foreground)",padding:"0.5rem 1rem",borderRadius:"6px",fontSize:"0.8rem",fontWeight:600,cursor:"pointer"},ec={backgroundColor:"var(--primary)",border:"none",color:"#ffffff",padding:"0.5rem 1rem",borderRadius:"6px",fontSize:"0.8rem",fontWeight:600,cursor:"pointer"},ep={background:"none",border:"none",color:"var(--muted)",cursor:"pointer",fontSize:"0.8rem",padding:"4px",borderRadius:"3px",transition:"all 0.1s ease"},eu={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0,0,0,0.5)",display:"flex",alignItems:"flex-start",justifyContent:"center",zIndex:1100,paddingTop:"5vh",backdropFilter:"blur(2px)"},em={width:"600px",backgroundColor:"#080c14",border:"1px solid var(--border)",borderRadius:"8px",boxShadow:"0 10px 25px -5px rgba(0, 0, 0, 0.8)",display:"flex",flexDirection:"column",overflow:"hidden"},eh={width:"100%",backgroundColor:"#05070a",border:"none",borderBottom:"1px solid var(--border)",padding:"0.75rem 1rem",color:"#e2e8f0",fontSize:"0.9rem",outline:"none",fontFamily:"var(--font-mono), monospace"},ef={maxHeight:"300px",overflowY:"auto",padding:"0.25rem 0"},eg={display:"flex",alignItems:"center",padding:"0.5rem 1rem",cursor:"pointer",transition:"all 0.1s ease",justifyContent:"space-between"},ex={backgroundColor:"rgba(255,255,255,0.02)",border:"1px solid var(--border)",borderRadius:"6px",padding:"0.5rem 0.75rem",display:"flex",flexDirection:"column",gap:"0.25rem"},ey={fontSize:"0.6rem",color:"var(--muted)",textTransform:"uppercase"},eb={fontSize:"1.1rem",fontWeight:700,fontFamily:"var(--font-mono)"},ev={width:"100%",height:"6px",backgroundColor:"rgba(255,255,255,0.05)",borderRadius:"3px",overflow:"hidden"},ej={height:"100%",borderRadius:"3px",transition:"width 0.5s ease-out"},eC={padding:"0.35rem 1rem",borderBottom:"1px solid var(--border)",backgroundColor:"#030406",display:"flex",alignItems:"center",gap:"0.75rem",flexWrap:"nowrap",overflowX:"auto"},ew={padding:"0.15rem 0.45rem",borderRadius:"4px",border:"1px solid var(--border)",backgroundColor:"rgba(255,255,255,0.02)",color:"var(--muted)",fontSize:"0.7rem",fontFamily:"var(--font-mono)",fontWeight:600,cursor:"pointer",transition:"all 0.1s ease"},eS={backgroundColor:"#05070a",borderBottom:"1px solid var(--border)",padding:"0.25rem 0.75rem 0 0.75rem",display:"flex",alignItems:"center",justifyContent:"space-between"},ek={padding:"0.35rem 0.75rem",borderRadius:"6px 6px 0 0",border:"1px solid var(--border)",borderBottom:"none",display:"flex",alignItems:"center",gap:"0.5rem",cursor:"pointer",transition:"all 0.15s ease"},eR={display:"flex",alignItems:"center",backgroundColor:"rgba(0, 0, 0, 0.3)",border:"1px solid var(--border)",borderRadius:"6px",padding:"2px",marginRight:"0.5rem"},eT={padding:"0.2rem 0.5rem",borderRadius:"4px",border:"1px solid transparent",fontSize:"0.65rem",fontWeight:600,cursor:"pointer",transition:"all 0.15s ease",display:"flex",alignItems:"center",gap:"3px"};function ez({file:e,isStaged:o,onAction:n,onSelect:i,onIgnore:l,onDiscard:a}){let[s,d]=(0,r.useState)(!1),c="#eab308",p=o?e.indexStatus||"M":e.worktreeStatus||"M";return("??"===p||"?"===p)&&(c="#10b981"),"A"===p&&(c="#10b981"),"D"===p&&(c="#ef4444"),(0,t.jsxs)("div",{onClick:()=>i(e),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0.35rem 0.5rem",borderRadius:"4px",backgroundColor:"rgba(255,255,255,0.02)",cursor:"pointer",fontSize:"0.75rem",fontFamily:"var(--font-mono)",position:"relative"},children:[(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,marginRight:"0.5rem"},title:e.relativePath,children:e.name}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.35rem"},children:[s&&(0,t.jsxs)("div",{style:{display:"flex",gap:"0.25rem"},children:[!o&&l&&(0,t.jsx)("button",{onClick:t=>{t.stopPropagation(),l(e.relativePath)},title:"Add to .gitignore",style:{background:"none",border:"none",cursor:"pointer",fontSize:"0.65rem",color:"var(--muted)",padding:"1px 4px",borderRadius:"3px",backgroundColor:"rgba(255,255,255,0.05)"},onMouseEnter:e=>e.currentTarget.style.color="var(--danger)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:"🚫"}),!o&&a&&(0,t.jsx)("button",{onClick:t=>{t.stopPropagation(),a(e.relativePath)},title:"Discard changes",style:{background:"none",border:"none",cursor:"pointer",fontSize:"0.65rem",color:"var(--muted)",padding:"1px 4px",borderRadius:"3px",backgroundColor:"rgba(255,255,255,0.05)"},onMouseEnter:e=>e.currentTarget.style.color="var(--danger)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:"🗑️"}),(0,t.jsx)("button",{onClick:t=>{t.stopPropagation(),n(e.relativePath)},title:o?"Unstage Change":"Stage Change",style:{background:"none",border:"none",cursor:"pointer",fontSize:"0.65rem",color:"var(--muted)",padding:"1px 4px",borderRadius:"3px",backgroundColor:"rgba(255,255,255,0.05)"},onMouseEnter:e=>e.currentTarget.style.color="var(--foreground)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:o?"➖":"➕"})]}),(0,t.jsx)("span",{style:{fontSize:"0.6rem",padding:"0.1rem 0.3rem",borderRadius:"3px",backgroundColor:c+"22",color:c,fontWeight:700,width:"1.2rem",display:"inline-block",textAlign:"center"},children:p.substring(0,1)})]})]})}function eI({url:e}){let[o,n]=(0,r.useState)(e),[i,l]=(0,r.useState)(e),[a,s]=(0,r.useState)(0);(0,r.useEffect)(()=>{n(e),l(e)},[e]);let d=()=>{let e=o.trim();e&&!/^https?:\/\//i.test(e)&&(e="http://"+e),n(e),l(e)};return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",width:"100%",height:"100%",backgroundColor:"#0b101b"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",padding:"0.5rem",backgroundColor:"#05070a",borderBottom:"1px solid var(--border)"},children:[(0,t.jsx)("button",{onClick:()=>{s(e=>e+1)},title:"Hard Reload Frame",style:{background:"none",border:"1px solid var(--border)",borderRadius:"4px",color:"var(--muted)",cursor:"pointer",fontSize:"0.85rem",padding:"0.25rem 0.5rem",display:"flex",alignItems:"center",backgroundColor:"rgba(255,255,255,0.02)"},onMouseEnter:e=>e.currentTarget.style.color="var(--foreground)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:"🔄"}),(0,t.jsx)("input",{type:"text",value:o,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"===e.key&&d()},style:{flex:1,backgroundColor:"#080c14",border:"1px solid var(--border)",borderRadius:"4px",padding:"0.25rem 0.75rem",color:"#ffffff",fontSize:"0.8rem",outline:"none",fontFamily:"var(--font-mono), monospace"}}),(0,t.jsx)("button",{onClick:d,title:"Go to URL",style:{background:"none",border:"1px solid var(--border)",borderRadius:"4px",color:"var(--primary)",cursor:"pointer",fontSize:"0.8rem",padding:"0.25rem 0.5rem",display:"flex",alignItems:"center",backgroundColor:"rgba(255,255,255,0.02)"},children:"➔"}),(0,t.jsx)("button",{onClick:()=>{window.open(i,"_blank")},title:"Open in External Browser",style:{background:"none",border:"1px solid var(--border)",borderRadius:"4px",color:"var(--muted)",cursor:"pointer",fontSize:"0.85rem",padding:"0.25rem 0.5rem",display:"flex",alignItems:"center",backgroundColor:"rgba(255,255,255,0.02)"},onMouseEnter:e=>e.currentTarget.style.color="var(--foreground)",onMouseLeave:e=>e.currentTarget.style.color="var(--muted)",children:"🌐"})]}),(0,t.jsx)("div",{style:{flex:1,position:"relative",width:"100%",height:"100%",backgroundColor:"#ffffff"},children:(0,t.jsx)("iframe",{src:i,style:{width:"100%",height:"100%",border:"none",backgroundColor:"#ffffff"},sandbox:"allow-scripts allow-same-origin allow-popups allow-forms"},a)})]})}function eP({content:e,filePath:r}){let o=e.split(/\r?\n/),n=0,i=0,l=0,a=0,s=o.map(e=>{let t="normal",r=e,o=null,s=null;if(e.startsWith("diff --git")||e.startsWith("index ")||e.startsWith("--- ")||e.startsWith("+++ "))t="header";else if(e.startsWith("@@")){t="hunk";let r=e.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/);r&&(n=parseInt(r[1],10),i=parseInt(r[2],10))}else e.startsWith("+")?(t="addition",r=e.substring(1),s=i++,l++):e.startsWith("-")?(t="deletion",r=e.substring(1),o=n++,a++):(t="normal",e.startsWith(" ")&&(r=e.substring(1)),n>0&&(o=n++),i>0&&(s=i++));return{type:t,content:r,oldNum:o,newNum:s,raw:e}});return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",backgroundColor:"#0b101b"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0.5rem 1rem",backgroundColor:"#05070a",borderBottom:"1px solid var(--border)"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,t.jsx)("span",{style:{fontSize:"1rem"},children:"📄"}),(0,t.jsx)("span",{style:{fontWeight:600,fontSize:"0.85rem",color:"var(--foreground)",fontFamily:"var(--font-mono)"},children:r})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",fontSize:"0.75rem"},children:[l>0&&(0,t.jsxs)("span",{style:{color:"#4ade80",backgroundColor:"rgba(74, 222, 128, 0.1)",padding:"0.15rem 0.4rem",borderRadius:"4px",fontWeight:600},children:["+",l," lines"]}),a>0&&(0,t.jsxs)("span",{style:{color:"#f87171",backgroundColor:"rgba(248, 113, 113, 0.1)",padding:"0.15rem 0.4rem",borderRadius:"4px",fontWeight:600},children:["-",a," lines"]}),(0,t.jsxs)("span",{style:{color:"var(--muted)"},children:[s.length," lines in diff"]})]})]}),(0,t.jsx)("div",{style:{flex:1,overflow:"auto",padding:"0.5rem 0"},children:(0,t.jsx)("table",{style:{width:"100%",borderCollapse:"collapse",fontFamily:"var(--font-mono), monospace",fontSize:"0.8rem",lineHeight:1.5},children:(0,t.jsx)("tbody",{children:s.map((e,r)=>{if("header"===e.type)return(0,t.jsx)("tr",{style:{backgroundColor:"rgba(255,255,255,0.02)"},children:(0,t.jsx)("td",{colSpan:4,style:{color:"var(--muted)",padding:"0.25rem 1rem",fontSize:"0.75rem",borderBottom:"1px solid rgba(255,255,255,0.03)"},children:e.raw})},r);if("hunk"===e.type)return(0,t.jsxs)("tr",{style:{backgroundColor:"rgba(96, 165, 250, 0.05)"},children:[(0,t.jsx)("td",{colSpan:2,style:{width:"80px",textAlign:"center",color:"rgba(96, 165, 250, 0.6)",borderRight:"1px solid rgba(96, 165, 250, 0.15)",userSelect:"none",padding:"0.25rem 0",fontSize:"0.7rem"},children:"@@"}),(0,t.jsx)("td",{style:{width:"25px",borderRight:"1px solid rgba(255, 255, 255, 0.05)"}}),(0,t.jsx)("td",{style:{color:"#60a5fa",padding:"0.25rem 1rem",fontStyle:"italic",fontSize:"0.75rem"},children:e.raw})]},r);let o="transparent",n="var(--foreground)",i=" ",l="transparent";return"addition"===e.type?(o="rgba(74, 222, 128, 0.08)",n="#4ade80",i="+",l="rgba(74, 222, 128, 0.4)"):"deletion"===e.type&&(o="rgba(248, 113, 113, 0.08)",n="#f87171",i="-",l="rgba(248, 113, 113, 0.4)"),(0,t.jsxs)("tr",{style:{backgroundColor:o},children:[(0,t.jsx)("td",{style:{width:"40px",textAlign:"right",paddingRight:"0.75rem",color:"var(--muted)",opacity:e.oldNum?.6:.2,userSelect:"none",borderRight:"1px solid rgba(255, 255, 255, 0.05)",fontSize:"0.75rem"},children:e.oldNum||""}),(0,t.jsx)("td",{style:{width:"40px",textAlign:"right",paddingRight:"0.75rem",color:"var(--muted)",opacity:e.newNum?.6:.2,userSelect:"none",borderRight:"1px solid rgba(255, 255, 255, 0.05)",fontSize:"0.75rem"},children:e.newNum||""}),(0,t.jsx)("td",{style:{width:"25px",textAlign:"center",color:l,userSelect:"none",fontWeight:"bold",fontSize:"0.85rem",borderRight:"1px solid rgba(255, 255, 255, 0.05)"},children:i}),(0,t.jsx)("td",{style:{paddingLeft:"0.75rem",color:n,whiteSpace:"pre-wrap",wordBreak:"break-all"},children:e.content})]},r)})})})})]})}let eW={width:"100%",minHeight:"60px",backgroundColor:"#05070a",border:"1px solid var(--border)",borderRadius:"6px",padding:"0.5rem",color:"#e2e8f0",fontSize:"0.75rem",resize:"vertical",outline:"none",fontFamily:"var(--font-sans), sans-serif"},eL={width:"100%",padding:"0.35rem",backgroundColor:"var(--primary)",border:"none",color:"#ffffff",borderRadius:"6px",fontSize:"0.75rem",fontWeight:600,cursor:"pointer",transition:"opacity 0.1s ease"},eO={background:"none",border:"1px solid var(--border)",borderRadius:"4px",padding:"2px 5px",cursor:"pointer",fontSize:"0.7rem",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(255,255,255,0.02)"},eF={background:"none",border:"none",cursor:"pointer",fontSize:"0.65rem",color:"var(--muted)",padding:"2px 4px",borderRadius:"3px",display:"flex",alignItems:"center",justifyContent:"center"};e.s(["default",0,function({sessionId:e,workspaceRoot:l,scopedDirs:a,onClose:s,sessions:d,onSwitchSession:c,onRefreshSessions:p,wsPort:u=3001}){let m=JSON.stringify(a),h=d.find(t=>t.id===e),[f,g]=(0,r.useState)(null),[x,y]=(0,r.useState)([]),[b,v]=(0,r.useState)(!1),j=async t=>{try{let r=await fetch("/api/sessions/scope",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:e,path:t,action:"add"})});if(r.ok)p&&p();else{let e=await r.json();alert(e.error||"Failed to add scoped folder.")}}catch(e){console.error(e),alert("Network error: failed to add scoped folder.")}},C=async t=>{try{let r=await fetch("/api/sessions/scope",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:e,path:t,action:"remove"})});if(r.ok)p&&p();else{let e=await r.json();alert(e.error||"Failed to remove scoped folder.")}}catch(e){console.error(e),alert("Network error: failed to remove scoped folder.")}},[w,S]=(0,r.useState)({}),[k,R]=(0,r.useState)({}),T=w[e]||[],z=k[e]||null,I=(0,r.useCallback)(t=>{S(r=>{let o=r[e]||[],n="function"==typeof t?t(o):t;return{...r,[e]:n}})},[e]),W=(0,r.useCallback)(t=>{R(r=>({...r,[e]:t}))},[e]),[eB,eD]=(0,r.useState)("edit"),[eE,eM]=(0,r.useState)(!0),[eN,eA]=(0,r.useState)("explorer"),[e$,eU]=(0,r.useState)("http://localhost:3000"),[eq,eH]=(0,r.useState)(!1),[eJ,eV]=(0,r.useState)(300),[eK,e_]=(0,r.useState)(!1),[eG,eQ]=(0,r.useState)(380),[eY,eX]=(0,r.useState)(!1),eZ=(0,r.useCallback)(e=>{e.preventDefault(),e_(!0)},[]),e0=(0,r.useCallback)(e=>{e.preventDefault(),eX(!0)},[]);(0,r.useEffect)(()=>{let e=e=>{if(eK){let t=document.getElementById("loom-ide-container");if(t){let r=t.getBoundingClientRect(),o=e.clientX-r.left-50;o>150&&o<600&&eV(o)}}if(eY){let t=document.getElementById("loom-ide-container");if(t){let r=t.getBoundingClientRect(),o=r.bottom-e.clientY;o>100&&o<r.height-150&&eQ(o)}}},t=()=>{e_(!1),eX(!1)};return(eK||eY)&&(window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),document.body.style.cursor=eK?"col-resize":"row-resize",document.body.style.userSelect="none"),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t),document.body.style.cursor="",document.body.style.userSelect=""}},[eK,eY]);let[e5,e1]=(0,r.useState)([]),[e2,e7]=(0,r.useState)(!1),[e8,e6]=(0,r.useState)(!1),[e4,e3]=(0,r.useState)(""),[e9,te]=(0,r.useState)({ahead:0,behind:0}),[tt,tr]=(0,r.useState)(""),[to,tn]=(0,r.useState)(null),[ti,tl]=(0,r.useState)(null),[ta,ts]=(0,r.useState)(""),[td,tc]=(0,r.useState)([]),[tp,tu]=(0,r.useState)(""),[tm,th]=(0,r.useState)(""),[tf,tg]=(0,r.useState)(null),tx=(0,r.useCallback)(async()=>{await new Promise(e=>setTimeout(e,0)),e6(!0);try{let e=await fetch(`/api/git?action=status&root=${encodeURIComponent(l)}`);if(e.ok){let t=await e.json();t.success&&(e7(t.isGit),e1(t.files||[]),e3(t.branch||""),te({ahead:t.ahead||0,behind:t.behind||0}))}}catch(e){console.error("Failed to load git status:",e)}finally{e6(!1)}},[l]);(0,r.useEffect)(()=>{setTimeout(()=>{tx()},0);let e=setInterval(tx,5e3);return()=>clearInterval(e)},[tx]);let ty=async e=>{try{(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stage",file:e,rootPath:l})})).ok&&await tx()}catch(e){console.error(e)}},tb=async e=>{try{(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"ignore",file:e,rootPath:l})})).ok&&await tx()}catch(e){console.error(e)}},tv=async e=>{if(confirm(`Are you sure you want to discard changes in "${e}"? This action cannot be undone.`))try{(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"discard",file:e,rootPath:l})})).ok&&await tx()}catch(e){console.error(e)}},tj=async()=>{try{(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stage",rootPath:l})})).ok&&await tx()}catch(e){console.error(e)}},tC=async e=>{try{(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"unstage",file:e,rootPath:l})})).ok&&await tx()}catch(e){console.error(e)}},tw=async()=>{try{(await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"unstage",rootPath:l})})).ok&&await tx()}catch(e){console.error(e)}},tS=async()=>{if(tt.trim())try{let e=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"commit",message:tt,rootPath:l})});if(e.ok)tr(""),await tx();else{let t=await e.json();alert(t.error||"Git commit failed")}}catch(e){console.error(e)}},tk=async()=>{try{let e=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"pull",rootPath:l})});if(e.ok){let t=await e.json();alert(t.output||"Git pull completed successfully."),await tx()}else{let t=await e.json();alert(t.error||"Git pull failed")}}catch(e){console.error(e)}},tR=async()=>{try{let e=await fetch("/api/git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"push",rootPath:l})});if(e.ok){let t=await e.json();alert(t.output||"Git push completed successfully."),await tx()}else{let t=await e.json();alert(t.error||"Git push failed")}}catch(e){console.error(e)}},tT=async e=>{try{let t=await fetch(`/api/git?action=diff&file=${encodeURIComponent(e.relativePath)}&root=${encodeURIComponent(l)}`);if(t.ok){let r=await t.json();if(r.success){let t=`diff:${e.relativePath}`;T.some(e=>e.path===t)||I(o=>[...o,{name:`Diff: ${e.name}`,path:t,content:r.diff,isModified:!1}]),W(t)}}}catch(e){console.error(e)}};(0,r.useEffect)(()=>{let t=async()=>{try{let t=await fetch(`/api/sessions?id=${e}`);if(t.ok){let e=await t.json();tn(e)}}catch(e){console.error("Failed to fetch session status:",e)}};t();let r=setInterval(t,3e3);return()=>clearInterval(r)},[e]),(0,r.useEffect)(()=>{let t=async()=>{try{let t=await fetch(`/api/sessions/stats?id=${e}`);if(t.ok){let e=await t.json();tl(e)}}catch(e){console.error("Failed to fetch container/process stats:",e)}};t();let r=setInterval(t,3e3);return()=>clearInterval(r)},[e]),(0,r.useEffect)(()=>{let e=localStorage.getItem("neural_loom_custom_commands");if(e)try{let t=JSON.parse(e);setTimeout(()=>{tc(t)},0)}catch{}},[]);let tz=e=>{tc(e),localStorage.setItem("neural_loom_custom_commands",JSON.stringify(e))},tI=async t=>{try{await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,command:t})})}catch(e){console.error("Failed to inject command:",e)}},tP=to?.type?.includes("aider"),[tW,tL]=(0,r.useState)({type:null,targetPath:null,inputValue:"",error:null}),[tO,tF]=(0,r.useState)(!1),[tB,tD]=(0,r.useState)(""),[tE,tM]=(0,r.useState)([]),[tN,tA]=(0,r.useState)(0),t$=(0,r.useCallback)(async()=>{await new Promise(e=>setTimeout(e,0)),eH(!0);try{let e=a&&a.length>0?`&scoped=${encodeURIComponent(a.join(","))}`:"",t=await fetch(`/api/files?action=list&root=${encodeURIComponent(l)}${e}`);if(t.ok){let e=await t.json();e.success&&(g(e.workspace),y(e.scoped||[]))}}catch(e){console.error("Failed to load file explorer:",e)}finally{eH(!1)}},[l,m]);(0,r.useEffect)(()=>{t$();let e=setInterval(()=>{t$()},3e3);return()=>clearInterval(e)},[t$]);let tU=(e,t)=>{tL({type:"file"===t?"create-file":"create-folder",targetPath:e,inputValue:"",error:null})},tq=e=>{let t=e.split(/[/\\]/).pop()||"";tL({type:"rename",targetPath:e,inputValue:t,error:null})},tH=e=>{tL({type:"delete",targetPath:e,inputValue:"",error:null})},tJ=async e=>{if(e&&e.preventDefault(),tW.type&&tW.targetPath){tL(e=>({...e,error:null}));try{if("create-file"===tW.type||"create-folder"===tW.type){if(!tW.inputValue.trim())return void tL(e=>({...e,error:"Name cannot be empty"}));let e=`${tW.targetPath}/${tW.inputValue.trim()}`,t="create-file"===tW.type?"file":"directory",r=await fetch("/api/files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"create",path:e,type:t})});if(r.ok){let o=await r.json();o.success?(tL({type:null,targetPath:null,inputValue:"",error:null}),await t$(),"file"===t&&await tK(e)):tL(e=>({...e,error:o.error||"Failed to create item"}))}else{let e=await r.json();tL(t=>({...t,error:e.error||"Failed to create item"}))}}if("rename"===tW.type){if(!tW.inputValue.trim())return void tL(e=>({...e,error:"Name cannot be empty"}));let e=tW.targetPath.replace(/\\/g,"/"),t=e.substring(0,e.lastIndexOf("/")),r=t?`${t}/${tW.inputValue.trim()}`:tW.inputValue.trim(),o=await fetch("/api/files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"rename",oldPath:tW.targetPath,newPath:r})});if(o.ok){let e=await o.json();e.success?(I(e=>e.map(e=>e.path===tW.targetPath?{...e,path:r,name:tW.inputValue.trim()}:e)),z===tW.targetPath&&W(r),tL({type:null,targetPath:null,inputValue:"",error:null}),await t$()):tL(t=>({...t,error:e.error||"Failed to rename item"}))}else{let e=await o.json();tL(t=>({...t,error:e.error||"Failed to rename item"}))}}if("delete"===tW.type){let e=await fetch("/api/files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",path:tW.targetPath})});if(e.ok){let t=await e.json();t.success?(t_(tW.targetPath),tL({type:null,targetPath:null,inputValue:"",error:null}),await t$()):tL(e=>({...e,error:t.error||"Failed to delete item"}))}else{let t=await e.json();tL(e=>({...e,error:t.error||"Failed to delete item"}))}}}catch(e){console.error("File operation failed:",e),tL(e=>({...e,error:"An unexpected error occurred"}))}}},tV=(0,r.useCallback)(async()=>{try{let e=a&&a.length>0?`&scoped=${encodeURIComponent(a.join(","))}`:"",t=await fetch(`/api/files?action=flat_list&root=${encodeURIComponent(l)}${e}`);if(t.ok){let e=await t.json();e.success&&e.files&&tM(e.files)}}catch(e){console.error("Failed to load flat files list:",e)}},[l,m]);(0,r.useEffect)(()=>{tO&&setTimeout(()=>{tD(""),tA(0),tV()},0)},[tO,tV]);let tK=async e=>{if(T.find(t=>t.path===e))return void W(e);try{let t=await fetch(`/api/files?action=read&path=${encodeURIComponent(e)}`);if(t.ok){let r=await t.json();if(r.success){let t={name:e.split(/[/\\]/).pop()||"Untitled",path:e,content:r.content,isModified:!1};I([...T,t]),W(e)}}}catch(t){console.error(`Failed to read file ${e}:`,t)}},t_=e=>{let t=T.filter(t=>t.path!==e);I(t),z===e&&W(t.length>0?t[t.length-1].path:null)},tG=e=>{let t=e.trim();if(!t)return;let r=`browser:${t}`;T.find(e=>e.path===r)||I(e=>[...e,{name:`Browser: ${t.replace(/^https?:\/\//,"")}`,path:r,content:t,isModified:!1}]),W(r)},tQ=T.find(e=>e.path===z),tY=!!tQ&&tQ.path.toLowerCase().endsWith(".md"),tX=tY?eB:"edit",tZ=e5.filter(e=>e.indexStatus&&" "!==e.indexStatus&&"?"!==e.indexStatus),t0=e5.filter(e=>e.worktreeStatus&&" "!==e.worktreeStatus||"??"===e.status),t5=e=>{z&&I(T.map(t=>t.path===z?{...t,content:e,isModified:!0}:t))},t1=(0,r.useCallback)(async()=>{if(!(!tQ||tQ.path.startsWith("diff:")||tQ.path.startsWith("browser:")))try{(await fetch("/api/files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"write",path:tQ.path,content:tQ.content})})).ok&&I(e=>e.map(e=>e.path===z?{...e,isModified:!1}:e))}catch(e){console.error(`Failed to save file ${tQ.path}:`,e)}},[tQ,z,I]);(0,r.useEffect)(()=>{let e=e=>{(e.ctrlKey||e.metaKey)&&"s"===e.key&&(e.preventDefault(),t1()),(e.ctrlKey||e.metaKey)&&"p"===e.key&&(e.preventDefault(),tF(e=>!e))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t1]);let t2=tE.filter(e=>e.name.toLowerCase().includes(tB.toLowerCase())||e.relativePath.toLowerCase().includes(tB.toLowerCase())).slice(0,10);return(0,t.jsxs)("div",{id:"loom-ide-container",style:L,children:[(0,t.jsxs)("div",{style:O,children:[(0,t.jsxs)("div",{style:F,children:[(0,t.jsx)("div",{onClick:()=>{"explorer"===eN?eM(!eE):(eA("explorer"),eM(!0))},style:{...B,backgroundColor:"explorer"===eN&&eE?"rgba(255,255,255,0.08)":"transparent",borderLeft:"explorer"===eN&&eE?"2px solid var(--primary)":"2px solid transparent"},title:"File Explorer (Ctrl+P to search files)",children:"📁"}),(0,t.jsx)("div",{onClick:()=>{"git"===eN?eM(!eE):(eA("git"),eM(!0))},style:{...B,backgroundColor:"git"===eN&&eE?"rgba(255,255,255,0.08)":"transparent",borderLeft:"git"===eN&&eE?"2px solid var(--primary)":"2px solid transparent"},title:"Source Control (Git Changes)",children:"🌿"}),(0,t.jsx)("div",{onClick:()=>{"analytics"===eN?eM(!eE):(eA("analytics"),eM(!0))},style:{...B,backgroundColor:"analytics"===eN&&eE?"rgba(255,255,255,0.08)":"transparent",borderLeft:"analytics"===eN&&eE?"2px solid var(--primary)":"2px solid transparent"},title:"Token Usage & Cost Analytics",children:"📊"}),(0,t.jsx)("div",{onClick:()=>{"auditor"===eN?eM(!eE):(eA("auditor"),eM(!0))},style:{...B,backgroundColor:"auditor"===eN&&eE?"rgba(255,255,255,0.08)":"transparent",borderLeft:"auditor"===eN&&eE?"2px solid var(--primary)":"2px solid transparent"},title:"Session Log Auditor & Search",children:"🔍"}),(0,t.jsx)("div",{onClick:()=>{"browser"===eN?eM(!eE):(eA("browser"),eM(!0))},style:{...B,backgroundColor:"browser"===eN&&eE?"rgba(255,255,255,0.08)":"transparent",borderLeft:"browser"===eN&&eE?"2px solid var(--primary)":"2px solid transparent"},title:"Local Web Browser Test Preview",children:"🌐"}),(0,t.jsx)("div",{onClick:()=>{"database"===eN?eM(!eE):(eA("database"),eM(!0))},style:{...B,backgroundColor:"database"===eN&&eE?"rgba(255,255,255,0.08)":"transparent",borderLeft:"database"===eN&&eE?"2px solid var(--primary)":"2px solid transparent"},title:"Database Explorer & SQL Client",children:"🗄️"})]}),(0,t.jsx)("div",{onClick:s,style:{...B,color:"var(--danger)",fontSize:"1rem"},title:"Exit Session Layout",children:"✖"})]}),eE&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{...D,width:`${eJ}px`,borderRight:"none"},children:[(0,t.jsxs)("div",{style:E,children:[(0,t.jsxs)("span",{style:{fontWeight:700,fontSize:"0.75rem",textTransform:"uppercase",letterSpacing:"0.05em"},children:["explorer"===eN&&"Workspace Explorer","git"===eN&&"Source Control","analytics"===eN&&"Telemetry & Cost","auditor"===eN&&"Session Auditor","browser"===eN&&"Browser Preview","database"===eN&&"Database Explorer"]}),"explorer"===eN&&(0,t.jsxs)("div",{style:{display:"flex",gap:"0.25rem"},children:[f&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:()=>tU(f.path,"file"),style:ep,title:"New File at Root...",children:"📄+"}),(0,t.jsx)("button",{onClick:()=>tU(f.path,"directory"),style:ep,title:"New Folder at Root...",children:"📁+"})]}),(0,t.jsx)("button",{onClick:t$,disabled:eq,style:ep,title:"Refresh tree",children:"🔄"})]}),"git"===eN&&(0,t.jsx)("button",{onClick:tx,disabled:e8,style:ep,title:"Refresh git status",children:"🔄"})]}),(0,t.jsxs)("div",{style:M,children:["explorer"===eN&&(0,t.jsxs)(t.Fragment,{children:[f?(0,t.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,t.jsxs)("div",{style:N,children:["💼 ",f.name," ",(0,t.jsx)("span",{style:A,title:f.path,children:"root"})]}),(0,t.jsx)("div",{style:{padding:"0.25rem 0.5rem"},children:f.tree.map(e=>(0,t.jsx)(en,{node:e,onSelect:tK,onCreate:tU,onRename:tq,onDelete:tH,isReadOnly:!1},e.path))})]}):(0,t.jsx)("div",{style:{padding:"1rem",color:"var(--muted)",fontSize:"0.8rem"},children:"Scanning Workspace directory..."}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{...N,borderTop:"1px solid var(--border)",paddingTop:"1rem"},children:[(0,t.jsxs)("span",{children:["🔍 Scoped Folders (",x.length,")"]}),(0,t.jsx)("button",{onClick:()=>v(!0),style:ep,title:"Add Scoped Folder...",children:"➕"})]}),x.length>0?x.map(e=>(0,t.jsxs)("div",{style:{marginTop:"0.75rem",padding:"0 0.5rem"},children:[(0,t.jsxs)("div",{style:{...$,display:"flex",gap:"0.25rem",color:"#a855f7",fontSize:"0.75rem",fontWeight:700,padding:"0.25rem",justifyContent:"space-between",alignItems:"center"},title:e.path,children:[(0,t.jsxs)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:["🔗 ",e.name,"/"]}),(0,t.jsx)("button",{onClick:()=>C(e.path),style:{background:"none",border:"none",color:"var(--danger)",cursor:"pointer",fontSize:"0.75rem",padding:"0 0.25rem"},title:"Remove Scoped Folder",children:"✖"})]}),(0,t.jsx)("div",{style:{paddingLeft:"0.25rem"},children:e.tree.map(e=>(0,t.jsx)(en,{node:e,onSelect:tK,onCreate:tU,onRename:tq,onDelete:tH,isReadOnly:!0},e.path))})]},e.path)):(0,t.jsx)("div",{style:{padding:"0.5rem 1rem",color:"var(--muted)",fontSize:"0.75rem",fontStyle:"italic"},children:"No extra scoped folders. Click [+] to mount a folder."})]})]}),"git"===eN&&(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,t.jsxs)("div",{style:{padding:"0.5rem 1rem",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",backgroundColor:"rgba(255,255,255,0.01)",flexShrink:0},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.4rem",fontSize:"0.75rem",fontWeight:600,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",flex:1},children:[(0,t.jsx)("span",{style:{color:"var(--primary)",flexShrink:0},children:"🌿"}),(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e4,children:e2?e4||"HEAD detached":"No Repository"})]}),e2&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.35rem",flexShrink:0},children:[e9.ahead>0&&(0,t.jsxs)("span",{style:{fontSize:"0.65rem",color:"#10b981",fontWeight:700},title:"Commits ahead of remote",children:["↑",e9.ahead]}),e9.behind>0&&(0,t.jsxs)("span",{style:{fontSize:"0.65rem",color:"#ef4444",fontWeight:700},title:"Commits behind remote",children:["↓",e9.behind]}),(0,t.jsx)("button",{onClick:tk,title:"Pull changes",style:eO,onMouseEnter:e=>e.currentTarget.style.backgroundColor="rgba(255,255,255,0.08)",onMouseLeave:e=>e.currentTarget.style.backgroundColor="rgba(255,255,255,0.02)",children:"📥"}),(0,t.jsx)("button",{onClick:tR,title:"Push commits",style:eO,onMouseEnter:e=>e.currentTarget.style.backgroundColor="rgba(255,255,255,0.08)",onMouseLeave:e=>e.currentTarget.style.backgroundColor="rgba(255,255,255,0.02)",children:"📤"})]})]}),e2?(0,t.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:"0.5rem 1rem",display:"flex",flexDirection:"column",gap:"1rem"},children:[(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"0.4rem"},children:[(0,t.jsx)("textarea",{value:tt,onChange:e=>tr(e.target.value),placeholder:"Commit message (Ctrl+Enter to commit)...",style:eW,onKeyDown:e=>{"Enter"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),tS())}}),(0,t.jsx)("button",{onClick:tS,disabled:0===e5.length,style:{...eL,opacity:e5.length>0?1:.5,cursor:e5.length>0?"pointer":"not-allowed"},children:"✓ Commit"})]}),tZ.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.35rem"},children:[(0,t.jsxs)("span",{style:{fontSize:"0.7rem",fontWeight:700,textTransform:"uppercase",color:"var(--muted)"},children:["Staged Changes (",tZ.length,")"]}),(0,t.jsx)("button",{onClick:()=>tw(),title:"Unstage All",style:eF,children:"➖"})]}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.25rem"},children:tZ.map(e=>(0,t.jsx)(ez,{file:e,isStaged:!0,onAction:tC,onSelect:tT},e.relativePath))})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.35rem"},children:[(0,t.jsxs)("span",{style:{fontSize:"0.7rem",fontWeight:700,textTransform:"uppercase",color:"var(--muted)"},children:["Changes (",t0.length,")"]}),t0.length>0&&(0,t.jsx)("button",{onClick:()=>tj(),title:"Stage All",style:eF,children:"➕"})]}),0===t0.length&&0===tZ.length?(0,t.jsx)("div",{style:{color:"var(--success)",fontSize:"0.75rem",padding:"0.5rem 0"},children:"✔ Workspace clean."}):0===t0.length?(0,t.jsx)("div",{style:{color:"var(--muted)",fontSize:"0.7rem",fontStyle:"italic",padding:"0.25rem 0"},children:"No unstaged changes."}):(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.25rem"},children:t0.map(e=>(0,t.jsx)(ez,{file:e,isStaged:!1,onAction:ty,onSelect:tT,onIgnore:tb,onDiscard:tv},e.relativePath))})]})]}):(0,t.jsx)("div",{style:{padding:"1rem",color:"var(--muted)",fontSize:"0.75rem",fontStyle:"italic"},children:"Not a git repository."})]}),"browser"===eN&&(0,t.jsxs)("div",{style:{padding:"1rem",display:"flex",flexDirection:"column",gap:"1rem"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{style:{fontSize:"0.7rem",fontWeight:700,textTransform:"uppercase",color:"var(--muted)",display:"block",marginBottom:"0.4rem"},children:"Url Address"}),(0,t.jsxs)("div",{style:{display:"flex",gap:"0.25rem"},children:[(0,t.jsx)("input",{type:"text",value:e$,onChange:e=>eU(e.target.value),placeholder:"http://localhost:3000",style:{flex:1,backgroundColor:"#05070a",border:"1px solid var(--border)",borderRadius:"4px",padding:"0.35rem 0.5rem",color:"#ffffff",fontSize:"0.75rem",outline:"none"},onKeyDown:e=>{"Enter"===e.key&&tG(e$)}}),(0,t.jsx)("button",{onClick:()=>tG(e$),style:{backgroundColor:"var(--primary)",border:"none",color:"#ffffff",padding:"0.35rem 0.75rem",borderRadius:"4px",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},children:"Go"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{style:{fontSize:"0.7rem",fontWeight:700,textTransform:"uppercase",color:"var(--muted)",display:"block",marginBottom:"0.5rem"},children:"Quick Launch Ports"}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.35rem"},children:[{label:"Next.js App (3000)",url:"http://localhost:3000"},{label:"WebSocket Gateway (3001)",url:"http://localhost:3001"},{label:"Vite Server (5173)",url:"http://localhost:5173"}].map((e,r)=>(0,t.jsxs)("div",{onClick:()=>{eU(e.url),tG(e.url)},style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0.5rem 0.75rem",borderRadius:"4px",backgroundColor:"rgba(255,255,255,0.02)",border:"1px solid var(--border)",cursor:"pointer",fontSize:"0.75rem",transition:"all 0.15s ease"},onMouseEnter:e=>e.currentTarget.style.backgroundColor="rgba(255,255,255,0.06)",onMouseLeave:e=>e.currentTarget.style.backgroundColor="rgba(255,255,255,0.02)",children:[(0,t.jsx)("span",{style:{color:"var(--foreground)"},children:e.label}),(0,t.jsx)("span",{style:{color:"var(--primary)",fontSize:"0.8rem"},children:"🌐➔"})]},r))})]}),(0,t.jsxs)("div",{style:{marginTop:"auto",padding:"0.5rem",borderRadius:"6px",backgroundColor:"rgba(234, 179, 8, 0.05)",border:"1px solid rgba(234, 179, 8, 0.15)",fontSize:"0.65rem",color:"var(--muted)",lineHeight:"1.4"},children:[(0,t.jsx)("span",{style:{color:"#eab308",fontWeight:700},children:"⚠️ Iframe CSP Note"}),": Some public websites (e.g. Google, GitHub) block loading inside frames via security headers. Use this tab primarily to preview and debug local development webservers."]})]}),"analytics"===eN&&(0,t.jsxs)("div",{style:{padding:"0.5rem 1rem",display:"flex",flexDirection:"column",gap:"1.25rem"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:"0.75rem",fontWeight:700,textTransform:"uppercase",color:"var(--muted)",marginBottom:"0.5rem"},children:"Token Usage"}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.5rem"},children:[(0,t.jsxs)("div",{style:ex,children:[(0,t.jsx)("div",{style:ey,children:"Input"}),(0,t.jsx)("div",{style:eb,children:(to?.tokenUsage?.input??0).toLocaleString()})]}),(0,t.jsxs)("div",{style:ex,children:[(0,t.jsx)("div",{style:ey,children:"Output"}),(0,t.jsx)("div",{style:eb,children:(to?.tokenUsage?.output??0).toLocaleString()})]}),(0,t.jsxs)("div",{style:{...ex,gridColumn:"span 2"},children:[(0,t.jsx)("div",{style:ey,children:"Cost"}),(0,t.jsxs)("div",{style:{...eb,color:"#10b981",fontSize:"1.25rem"},children:["$",(to?.tokenUsage?.cost??0).toFixed(4)]})]})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:"0.75rem",fontWeight:700,textTransform:"uppercase",color:"var(--muted)",marginBottom:"0.5rem"},children:"Resource Telemetry"}),(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"0.7rem",marginBottom:"0.25rem"},children:[(0,t.jsx)("span",{children:"CPU Usage"}),(0,t.jsx)("span",{style:{fontWeight:600,color:"var(--primary)"},children:ti?.cpu??"0.0%"})]}),(0,t.jsx)("div",{style:ev,children:(0,t.jsx)("div",{style:{...ej,width:ti?.cpu||"0%",backgroundColor:"var(--primary)"}})})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"0.7rem",marginBottom:"0.25rem"},children:[(0,t.jsx)("span",{children:"Memory Usage"}),(0,t.jsx)("span",{style:{fontWeight:600,color:"#eab308"},children:ti?.memory??"0.0MiB"})]}),(0,t.jsx)("div",{style:ev,children:(0,t.jsx)("div",{style:{...ej,width:ti?.memoryPercent||"0%",backgroundColor:"#eab308"}})})]}),(0,t.jsx)("div",{style:{fontSize:"0.6rem",color:"var(--muted)",marginTop:"0.25rem",fontStyle:"italic"},children:ti?.type?.includes("docker")?"🐳 Docker container statistics":"💻 Local process statistics"})]})]})]}),"auditor"===eN&&(0,t.jsxs)("div",{style:{padding:"0.5rem 1rem",display:"flex",flexDirection:"column",gap:"1rem",height:"100%"},children:[(0,t.jsxs)("div",{style:{display:"flex",gap:"0.25rem"},children:[(0,t.jsx)("input",{type:"text",placeholder:"Search logs...",value:ta,onChange:e=>ts(e.target.value),style:{flex:1,backgroundColor:"#05070a",border:"1px solid var(--border)",borderRadius:"4px",padding:"0.25rem 0.5rem",color:"#ffffff",fontSize:"0.75rem",outline:"none"}}),(0,t.jsx)("button",{onClick:()=>{if(!to?.logs)return;let t=new Blob([to.logs.join("").replace(/\x1b\[[0-9;]*m/g,"")],{type:"text/plain;charset=utf-8"}),r=URL.createObjectURL(t),o=document.createElement("a");o.href=r,o.download=`session-${e}-logs.txt`,o.click(),URL.revokeObjectURL(r)},style:{backgroundColor:"rgba(59, 130, 246, 0.15)",border:"1px solid #3b82f6",color:"#3b82f6",padding:"0.25rem 0.5rem",borderRadius:"4px",fontSize:"0.7rem",fontWeight:600,cursor:"pointer"},children:"Export"})]}),(0,t.jsx)("div",{style:{height:"220px",overflowY:"auto",backgroundColor:"#05070a",border:"1px solid var(--border)",borderRadius:"6px",padding:"0.5rem",fontFamily:"var(--font-mono)",fontSize:"0.7rem",lineHeight:"1.4",whiteSpace:"pre-wrap",color:"#cbd5e1"},children:(()=>{if(!to?.logs||0===to.logs.length)return(0,t.jsx)("div",{style:{color:"var(--muted)",fontStyle:"italic",textAlign:"center"},children:"No logs captured."});let e=to.logs.join("").replace(/\x1b\[[0-9;]*m/g,"").split(/\r?\n/),r=ta.trim()?e.filter(e=>e.toLowerCase().includes(ta.toLowerCase())):e;return 0===r.length?(0,t.jsx)("div",{style:{color:"var(--muted)",fontStyle:"italic",textAlign:"center"},children:"No matches."}):r.map((e,r)=>{if(!ta.trim())return(0,t.jsx)("div",{children:e},r);let o=e.split(RegExp(`(${ta})`,"gi"));return(0,t.jsx)("div",{children:o.map((e,r)=>e.toLowerCase()===ta.toLowerCase()?(0,t.jsx)("span",{style:{backgroundColor:"#eab308",color:"#000000",fontWeight:600},children:e},r):e)},r)})})()}),(0,t.jsxs)("div",{style:{borderTop:"1px solid var(--border)",paddingTop:"0.75rem"},children:[(0,t.jsx)("div",{style:{fontSize:"0.75rem",fontWeight:700,color:"var(--muted)",marginBottom:"0.5rem"},children:"Custom Buttons"}),(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"0.35rem"},children:[(0,t.jsx)("input",{type:"text",placeholder:"Button Name (e.g. /undo)",value:tp,onChange:e=>tu(e.target.value),style:{backgroundColor:"#05070a",border:"1px solid var(--border)",borderRadius:"4px",padding:"0.25rem 0.5rem",color:"#ffffff",fontSize:"0.7rem",outline:"none"}}),(0,t.jsx)("input",{type:"text",placeholder:"Injection Command",value:tm,onChange:e=>th(e.target.value),style:{backgroundColor:"#05070a",border:"1px solid var(--border)",borderRadius:"4px",padding:"0.25rem 0.5rem",color:"#ffffff",fontSize:"0.7rem",outline:"none"}}),(0,t.jsx)("button",{onClick:()=>{tp.trim()&&tm.trim()&&(tz([...td,{name:tp.trim(),command:tm.trim()}]),tu(""),th(""))},style:{backgroundColor:"rgba(168, 85, 247, 0.15)",border:"1px solid #a855f7",color:"#c084fc",padding:"0.3rem",borderRadius:"4px",fontSize:"0.7rem",fontWeight:600,cursor:"pointer"},children:"+ Add Button"}),td.length>0&&(0,t.jsx)("div",{style:{marginTop:"0.25rem",maxHeight:"60px",overflowY:"auto"},children:td.map((e,r)=>(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:"0.65rem",backgroundColor:"rgba(255,255,255,0.02)",padding:"0.1rem 0.25rem",borderRadius:"3px",marginTop:"0.15rem"},children:[(0,t.jsx)("span",{style:{color:"#c084fc"},children:e.name}),(0,t.jsx)("span",{onClick:()=>{tz(td.filter((e,t)=>t!==r))},style:{color:"var(--danger)",cursor:"pointer"},children:"✖"})]},r))})]})]})]}),"database"===eN&&(0,t.jsx)(P,{workspaceRoot:l})]})]}),(0,t.jsx)("div",{onMouseDown:eZ,style:{width:"4px",cursor:"col-resize",backgroundColor:eK?"var(--primary)":"var(--border)",transition:"background-color 0.15s ease",zIndex:10,alignSelf:"stretch"},onMouseEnter:e=>{eK||(e.currentTarget.style.backgroundColor="var(--border-focus)")},onMouseLeave:e=>{eK||(e.currentTarget.style.backgroundColor="var(--border)")},title:"Drag to resize sidebar"})]}),(0,t.jsxs)("div",{style:U,children:[(0,t.jsx)("div",{style:eS,children:(0,t.jsx)("div",{style:{display:"flex",gap:"0.25rem",overflowX:"auto"},children:d.map(r=>{let o=r.id===e,n="running"===r.status?"#10b981":"rgba(255,255,255,0.2)";return(0,t.jsxs)("div",{onClick:()=>{tf===r.id&&tg(null),c(r.id)},style:{...ek,backgroundColor:o?"#0b101b":"rgba(8,12,20,0.6)",borderColor:o?"var(--border-focus)":"var(--border)",color:o?"var(--foreground)":"var(--muted)"},children:[(0,t.jsx)("span",{style:{width:"6px",height:"6px",borderRadius:"50%",backgroundColor:n,display:"inline-block"}}),(0,t.jsx)("span",{style:{fontSize:"0.75rem",fontWeight:o?600:500},children:r.name}),(0,t.jsx)("span",{style:{fontSize:"0.6rem",color:"var(--muted)",backgroundColor:"rgba(255,255,255,0.05)",padding:"1px 4px",borderRadius:"3px"},children:r.type.replace("claude-","").replace("aider-","")})]},r.id)})})}),(0,t.jsxs)("div",{style:{...q,borderBottom:"none"},children:[(0,t.jsxs)("div",{style:H,children:[(0,t.jsx)("div",{style:J,children:T.map(e=>(0,t.jsxs)("div",{style:{...V,backgroundColor:z===e.path?"#0b101b":"rgba(8,12,20,0.4)",borderColor:z===e.path?"var(--border-focus)":"transparent",color:z===e.path?"var(--foreground)":"var(--muted)"},onClick:()=>W(e.path),children:[(0,t.jsxs)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.name," ",e.isModified&&(0,t.jsx)("span",{style:_,children:"●"})]}),(0,t.jsx)("span",{onClick:t=>{t.stopPropagation(),t_(e.path)},style:K,children:"✖"})]},e.path))}),tQ&&!tQ.path.startsWith("diff:")&&!tQ.path.startsWith("browser:")&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem"},children:[tY&&(0,t.jsxs)("div",{style:eR,children:[(0,t.jsx)("button",{onClick:()=>eD("edit"),style:{...eT,backgroundColor:"edit"===tX?"rgba(255,255,255,0.08)":"transparent",color:"edit"===tX?"var(--foreground)":"var(--muted)",borderColor:"edit"===tX?"var(--border-focus)":"transparent"},title:"Edit file",children:"✏️ Edit"}),(0,t.jsx)("button",{onClick:()=>eD("split"),style:{...eT,backgroundColor:"split"===tX?"rgba(255,255,255,0.08)":"transparent",color:"split"===tX?"var(--foreground)":"var(--muted)",borderColor:"split"===tX?"var(--border-focus)":"transparent"},title:"Split editor & preview",children:"🥞 Split"}),(0,t.jsx)("button",{onClick:()=>eD("preview"),style:{...eT,backgroundColor:"preview"===tX?"rgba(255,255,255,0.08)":"transparent",color:"preview"===tX?"var(--foreground)":"var(--muted)",borderColor:"preview"===tX?"var(--border-focus)":"transparent"},title:"Preview rendered document",children:"👁️ Preview"})]}),(0,t.jsx)("button",{onClick:t1,disabled:!tQ.isModified,style:{...G,opacity:tQ.isModified?1:.5,cursor:tQ.isModified?"pointer":"not-allowed"},children:"💾 Save (Ctrl+S)"})]})]}),(0,t.jsx)("div",{style:Q,children:tQ?tQ.path.startsWith("browser:")?(0,t.jsx)(eI,{url:tQ.content}):tQ.path.startsWith("diff:")?(0,t.jsx)(eP,{content:tQ.content,filePath:tQ.path.substring(5)}):tY?"preview"===tX?(0,t.jsx)("div",{style:{height:"100%",overflow:"hidden"},children:(0,t.jsx)(i,{content:tQ.content})}):"split"===tX?(0,t.jsxs)("div",{style:{display:"flex",width:"100%",height:"100%",overflow:"hidden"},children:[(0,t.jsx)("div",{style:{flex:1,height:"100%"},children:(0,t.jsx)("textarea",{value:tQ.content,onChange:e=>t5(e.target.value),style:Y,spellCheck:!1})}),(0,t.jsx)("div",{style:{flex:1,height:"100%",overflow:"hidden"},children:(0,t.jsx)(i,{content:tQ.content})})]}):(0,t.jsx)("textarea",{value:tQ.content,onChange:e=>t5(e.target.value),style:Y,spellCheck:!1}):(0,t.jsx)("textarea",{value:tQ.content,onChange:e=>t5(e.target.value),style:Y,spellCheck:!1}):(0,t.jsxs)("div",{style:X,children:[(0,t.jsx)("div",{style:{fontSize:"2rem",marginBottom:"1rem"},children:"💻"}),(0,t.jsx)("h4",{style:{margin:0,fontWeight:600},children:"NeuralLoom Workspace Editor"}),(0,t.jsx)("p",{style:{margin:"0.5rem 0 0 0",color:"var(--muted)",fontSize:"0.8rem"},children:"Select files from the left explorer panel to view and edit. Use Ctrl+S to save changes."}),(0,t.jsxs)("p",{style:{margin:"0.5rem 0 0 0",color:"var(--muted)",fontSize:"0.75rem",fontStyle:"italic"},children:["Press ",(0,t.jsx)("kbd",{style:{background:"rgba(255,255,255,0.1)",padding:"2px 4px",borderRadius:"3px"},children:"Ctrl+P"})," to search files."]})]})})]}),(0,t.jsx)("div",{onMouseDown:e0,style:{height:"4px",cursor:"row-resize",backgroundColor:eY?"var(--primary)":"var(--border)",transition:"background-color 0.15s ease",zIndex:10,width:"100%"},onMouseEnter:e=>{eY||(e.currentTarget.style.backgroundColor="var(--border-focus)")},onMouseLeave:e=>{eY||(e.currentTarget.style.backgroundColor="var(--border)")},title:"Drag to resize console"}),(0,t.jsxs)("div",{style:{...Z,flex:"none",height:`${eG}px`},children:[(0,t.jsxs)("div",{style:ee,children:[(0,t.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"0.5rem",fontWeight:600,fontSize:"0.8rem"},children:["🖥️ Session Console Bridge ",tf&&"(Split View Active)"]}),(0,t.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[h?.status==="stopped"&&(0,t.jsx)("button",{onClick:async()=>{try{let t=await fetch("/api/sessions/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})});if(t.ok)p&&p();else{let e=await t.json();alert(e.error||"Failed to restart session.")}}catch(e){console.error("Failed to restart session:",e),alert("Network error: failed to restart session.")}},style:{padding:"0.3rem 0.6rem",borderRadius:"4px",border:"1px solid #eab308",backgroundColor:"rgba(234, 179, 8, 0.15)",color:"#eab308",fontSize:"0.7rem",fontWeight:600,cursor:"pointer",boxShadow:"0 0 8px rgba(234, 179, 8, 0.2)"},title:"Restart the stopped session process runner",children:"⚡ Restart Session"}),(0,t.jsxs)("select",{onChange:e=>{tg(e.target.value||null)},value:tf||"",style:{backgroundColor:"#080c14",border:"1px solid var(--border)",borderRadius:"4px",padding:"0.2rem 0.5rem",color:"var(--foreground)",fontSize:"0.7rem",outline:"none",cursor:"pointer"},children:[(0,t.jsx)("option",{value:"",children:"🖥️ Single Terminal"}),d.filter(t=>t.id!==e&&"running"===t.status).map(e=>(0,t.jsxs)("option",{value:e.id,children:["🖥️|🖥️ Split: ",e.name]},e.id))]}),(0,t.jsx)("button",{onClick:async()=>{await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,command:"/ccc"})})},style:et,children:"🚀 Mount Context (/ccc)"}),(0,t.jsx)("button",{onClick:async()=>{await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,command:"/ccp"})})},style:er,children:"⚡ Trigger Prompt (/ccp)"})]})]}),(0,t.jsxs)("div",{style:eC,children:[(0,t.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--muted)",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:700},children:"Quick Commands:"}),(0,t.jsxs)("div",{style:{display:"flex",gap:"0.35rem",flexWrap:"wrap",alignItems:"center"},children:[tP?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:()=>tI("/undo"),style:ew,title:"Aider: undo last commit",children:"/undo"}),(0,t.jsx)("button",{onClick:()=>tI("/diff"),style:ew,title:"Aider: show git diff",children:"/diff"}),(0,t.jsx)("button",{onClick:()=>tI("/commit"),style:ew,title:"Aider: commit edits",children:"/commit"}),(0,t.jsx)("button",{onClick:()=>tI("/test"),style:ew,title:"Aider: run tests",children:"/test"}),(0,t.jsx)("button",{onClick:()=>tI("/clear"),style:ew,title:"Clear terminal screen",children:"/clear"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:()=>tI("/compact"),style:ew,title:"Claude Code: compact history",children:"/compact"}),(0,t.jsx)("button",{onClick:()=>tI("/history"),style:ew,title:"Claude Code: view history",children:"/history"}),(0,t.jsx)("button",{onClick:()=>tI("/reset"),style:ew,title:"Claude Code: reset conversation",children:"/reset"}),(0,t.jsx)("button",{onClick:()=>tI("/help"),style:ew,title:"Claude Code: show help",children:"/help"})]}),td.map((e,r)=>(0,t.jsx)("button",{onClick:()=>tI(e.command),style:{...ew,borderColor:"rgba(168, 85, 247, 0.4)",color:"#c084fc"},title:`Inject command: ${e.command}`,children:e.name},r))]})]}),(0,t.jsxs)("div",{style:{...eo,display:"flex",width:"100%"},children:[(0,t.jsx)("div",{style:{flex:1,height:"100%",borderRight:tf?"1px solid var(--border)":"none",overflow:"hidden"},children:(0,t.jsx)(o.default,{sessionId:e,height:"100%",wsPort:u})}),tf&&(0,t.jsxs)("div",{style:{flex:1,height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:[(0,t.jsxs)("div",{style:{padding:"0.25rem 0.5rem",backgroundColor:"#030406",fontSize:"0.7rem",borderBottom:"1px solid var(--border)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsxs)("span",{style:{color:"#a855f7",fontWeight:600},children:["🔗 Focused PTY Connection: ",d.find(e=>e.id===tf)?.name]}),(0,t.jsx)("button",{onClick:()=>tg(null),style:{background:"none",border:"none",color:"var(--danger)",cursor:"pointer",fontSize:"0.7rem"},children:"Close Split ✖"})]}),(0,t.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,t.jsx)(o.default,{sessionId:tf,height:"100%",wsPort:u})})]})]})]})]}),tW.type&&(0,t.jsx)("div",{style:ei,children:(0,t.jsxs)("div",{style:el,children:[(0,t.jsxs)("h3",{style:{margin:"0 0 1rem 0",fontSize:"1rem",fontWeight:600},children:["create-file"===tW.type&&"Create New File","create-folder"===tW.type&&"Create New Folder","rename"===tW.type&&"Rename Item","delete"===tW.type&&"Confirm Deletion"]}),tW.error&&(0,t.jsxs)("div",{style:{color:"var(--danger)",fontSize:"0.8rem",marginBottom:"1rem"},children:["⚠️ ",tW.error]}),"delete"!==tW.type?(0,t.jsxs)("form",{onSubmit:tJ,children:[(0,t.jsxs)("div",{style:{marginBottom:"0.5rem",fontSize:"0.75rem",color:"var(--muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:tW.targetPath||"",children:["Target: ",tW.targetPath]}),(0,t.jsx)("input",{type:"text",value:tW.inputValue,onChange:e=>tL({...tW,inputValue:e.target.value}),style:ea,autoFocus:!0,placeholder:"rename"===tW.type?"Enter new name":"Enter name"}),(0,t.jsxs)("div",{style:es,children:[(0,t.jsx)("button",{type:"button",onClick:()=>tL({type:null,targetPath:null,inputValue:"",error:null}),style:ed,children:"Cancel"}),(0,t.jsx)("button",{type:"submit",style:ec,children:"Submit"})]})]}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{fontSize:"0.85rem",marginBottom:"1.5rem",color:"var(--muted)",overflowWrap:"break-word"},children:["Are you sure you want to delete this item? This action is permanent.",(0,t.jsx)("div",{style:{marginTop:"0.5rem",color:"#e2e8f0",fontFamily:"var(--font-mono)",fontSize:"0.75rem",background:"rgba(255,255,255,0.05)",padding:"0.5rem",borderRadius:"4px"},children:tW.targetPath})]}),(0,t.jsxs)("div",{style:es,children:[(0,t.jsx)("button",{type:"button",onClick:()=>tL({type:null,targetPath:null,inputValue:"",error:null}),style:ed,children:"Cancel"}),(0,t.jsx)("button",{onClick:()=>tJ(),style:{...ec,backgroundColor:"var(--danger)"},children:"Delete Permanently"})]})]})]})}),tO&&(0,t.jsx)("div",{style:eu,onClick:()=>tF(!1),children:(0,t.jsxs)("div",{style:em,onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("input",{type:"text",value:tB,onChange:e=>{tD(e.target.value),tA(0)},onKeyDown:e=>{"ArrowDown"===e.key?(e.preventDefault(),tA(e=>(e+1)%Math.max(1,t2.length))):"ArrowUp"===e.key?(e.preventDefault(),tA(e=>(e-1+t2.length)%Math.max(1,t2.length))):"Enter"===e.key?(e.preventDefault(),t2[tN]&&(tK(t2[tN].path),tF(!1))):"Escape"===e.key&&(e.preventDefault(),tF(!1))},placeholder:"Search files by name or path...",style:eh,autoFocus:!0}),(0,t.jsx)("div",{style:ef,children:t2.length>0?t2.map((e,r)=>(0,t.jsxs)("div",{onClick:()=>{tK(e.path),tF(!1)},style:{...eg,backgroundColor:r===tN?"rgba(168, 85, 247, 0.15)":"transparent",borderLeft:r===tN?"3px solid var(--primary)":"3px solid transparent"},children:[(0,t.jsx)("span",{style:{fontSize:"0.85rem",fontWeight:600},children:e.name}),(0,t.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--muted)",marginLeft:"0.5rem",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.relativePath})]},e.path)):(0,t.jsx)("div",{style:{padding:"0.75rem 1rem",color:"var(--muted)",fontSize:"0.8rem",textAlign:"center"},children:"No matching files found"})}),(0,t.jsx)("div",{style:{padding:"0.5rem 1rem",borderTop:"1px solid var(--border)",fontSize:"0.65rem",color:"var(--muted)",textAlign:"right"},children:"Use ↑↓ to navigate, Enter to select, Esc to close"})]})}),b&&(0,t.jsx)(n.default,{title:"Add Scoped Directory",initialPath:l,onClose:()=>v(!1),onSelect:e=>{j(e),v(!1)}})]})}],3839)},97722,e=>{e.n(e.i(3839))}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67585,(e,a,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"BailoutToCSR",{enumerable:!0,get:function(){return n}});let t=e.r(32061);function n({reason:e,children:a}){if("u"<typeof window)throw Object.defineProperty(new t.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}},9885,(e,a,s)=>{"use strict";function t(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"encodeURIPath",{enumerable:!0,get:function(){return t}})},52157,(e,a,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"PreloadChunks",{enumerable:!0,get:function(){return i}});let t=e.r(43476),n=e.r(74080),r=e.r(63599),l=e.r(9885),o=e.r(43369);function i({moduleIds:e}){if("u">typeof window)return null;let a=r.workAsyncStorage.getStore();if(void 0===a)return null;let s=[];if(a.reactLoadableManifest&&e){let t=a.reactLoadableManifest;for(let a of e){if(!t[a])continue;let e=t[a].files;s.push(...e)}}if(0===s.length)return null;let d=(0,o.getAssetTokenQuery)();return(0,t.jsx)(t.Fragment,{children:s.map(e=>{let s=`${a.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${d}`;return e.endsWith(".css")?(0,t.jsx)("link",{precedence:"dynamic",href:s,rel:"stylesheet",as:"style",nonce:a.nonce},e):((0,n.preload)(s,{as:"script",fetchPriority:"low",nonce:a.nonce}),null)})})}},69093,(e,a,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return d}});let t=e.r(43476),n=e.r(71645),r=e.r(67585),l=e.r(52157);function o(e){return{default:e&&"default"in e?e.default:e}}let i={loader:()=>Promise.resolve(o(()=>null)),loading:null,ssr:!0},d=function(e){let a={...i,...e},s=(0,n.lazy)(()=>a.loader().then(o)),d=a.loading;function c(e){let o=d?(0,t.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,i=!a.ssr||!!a.loading,c=i?n.Suspense:n.Fragment,u=a.ssr?(0,t.jsxs)(t.Fragment,{children:["u"<typeof window?(0,t.jsx)(l.PreloadChunks,{moduleIds:a.modules}):null,(0,t.jsx)(s,{...e})]}):(0,t.jsx)(r.BailoutToCSR,{reason:"next/dynamic",children:(0,t.jsx)(s,{...e})});return(0,t.jsx)(c,{...i?{fallback:o}:{},children:u})}return c.displayName="LoadableComponent",c}},70703,(e,a,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return n}});let t=e.r(55682)._(e.r(69093));function n(e,a){let s={};"function"==typeof e&&(s.loader=e);let n={...s,...a};return(0,t.default)({...n,modules:n.loadableGenerated?.modules})}("function"==typeof s.default||"object"==typeof s.default&&null!==s.default)&&void 0===s.default.__esModule&&(Object.defineProperty(s.default,"__esModule",{value:!0}),Object.assign(s.default,s),a.exports=s.default)},20897,e=>{e.v({activeBorder:"page-module___8aEwW__activeBorder",agentBadge:"page-module___8aEwW__agentBadge",agentCard:"page-module___8aEwW__agentCard",agentGrid:"page-module___8aEwW__agentGrid",agentHeader:"page-module___8aEwW__agentHeader",agentName:"page-module___8aEwW__agentName",ansiCyan:"page-module___8aEwW__ansiCyan",ansiGreen:"page-module___8aEwW__ansiGreen",ansiMagenta:"page-module___8aEwW__ansiMagenta",ansiRed:"page-module___8aEwW__ansiRed",ansiYellow:"page-module___8aEwW__ansiYellow",cardBody:"page-module___8aEwW__cardBody",container:"page-module___8aEwW__container",containerActive:"page-module___8aEwW__containerActive",contextDetails:"page-module___8aEwW__contextDetails",contextItem:"page-module___8aEwW__contextItem",contextList:"page-module___8aEwW__contextList",contextMeta:"page-module___8aEwW__contextMeta",contextTitle:"page-module___8aEwW__contextTitle",dashboardGrid:"page-module___8aEwW__dashboardGrid",envGrid:"page-module___8aEwW__envGrid",envName:"page-module___8aEwW__envName",envRow:"page-module___8aEwW__envRow",envStatus:"page-module___8aEwW__envStatus",footer:"page-module___8aEwW__footer",header:"page-module___8aEwW__header",logoArea:"page-module___8aEwW__logoArea",mainPanel:"page-module___8aEwW__mainPanel",pulse:"page-module___8aEwW__pulse",pulseDot:"page-module___8aEwW__pulseDot",quickLaunchBtn:"page-module___8aEwW__quickLaunchBtn",sectionTitle:"page-module___8aEwW__sectionTitle",sidePanel:"page-module___8aEwW__sidePanel",statusIndicator:"page-module___8aEwW__statusIndicator",stoppedBadge:"page-module___8aEwW__stoppedBadge",subtitle:"page-module___8aEwW__subtitle",terminalContainer:"page-module___8aEwW__terminalContainer",terminalInput:"page-module___8aEwW__terminalInput",terminalInputArea:"page-module___8aEwW__terminalInputArea",terminalLine:"page-module___8aEwW__terminalLine",terminalSendBtn:"page-module___8aEwW__terminalSendBtn",title:"page-module___8aEwW__title"})},52683,e=>{"use strict";var a=e.i(43476),s=e.i(71645),t=e.i(70703),n=e.i(20897);let r=(0,t.default)(()=>e.A(33779),{loadableGenerated:{modules:[37314]},ssr:!1,loading:()=>(0,a.jsx)("div",{style:{height:"400px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#05070a",color:"var(--muted)",border:"1px solid var(--border)",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px"},children:(0,a.jsx)("span",{children:"Initializing terminal emulator..."})})}),l=(0,t.default)(()=>e.A(39429),{loadableGenerated:{modules:[1985]},ssr:!1,loading:()=>(0,a.jsx)("div",{style:{height:"280px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"var(--card)",border:"1px solid var(--border)",borderRadius:"12px",marginTop:"1.5rem"},children:(0,a.jsx)("span",{style:{color:"var(--muted)"},children:"Initializing prompt editor..."})})}),o=(0,t.default)(()=>e.A(56915),{loadableGenerated:{modules:[99026]},ssr:!1}),i=(0,t.default)(()=>e.A(78716),{loadableGenerated:{modules:[9949]},ssr:!1}),d=(0,t.default)(()=>e.A(33789),{loadableGenerated:{modules:[20032]},ssr:!1}),c=(0,t.default)(()=>e.A(78003),{loadableGenerated:{modules:[97722]},ssr:!1});e.s(["default",0,function(){let[e,t]=(0,s.useState)([]),[u,p]=(0,s.useState)(null),[m,h]=(0,s.useState)(!1),[f,_]=(0,s.useState)(!1),[g,x]=(0,s.useState)(!1),[j,y]=(0,s.useState)(!1),[b,v]=(0,s.useState)(!1),[k,w]=(0,s.useState)(!1),[C,S]=(0,s.useState)(""),[N,W]=(0,s.useState)(3001),[P,E]=(0,s.useState)("0.2.19"),[T,L]=(0,s.useState)(null),R=e.filter(e=>"workspace-terminal"!==e.id),A=e.find(e=>e.id===u),D=R.some(e=>("claude-docker"===e.type||"aider-docker"===e.type)&&"running"===e.status),B=R.some(e=>"claude-ssh"===e.type&&"running"===e.status),I=async()=>{try{let e=await fetch("/api/sessions"),a=await e.json();a.sessions&&t(a.sessions),a.wsPort&&W(a.wsPort),a.originalCwd&&S(a.originalCwd),a.version&&E(a.version)}catch(e){console.error("Failed to fetch sessions:",e)}},O=async()=>{try{let e=await fetch("/api/recents");if(e.ok){let a=await e.json();a.success&&a.recents&&a.recents.lastSession&&L(a.recents.lastSession)}}catch(e){console.error("Failed to fetch recents:",e)}};(0,s.useEffect)(()=>{(async()=>{await I(),await O()})(),"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").then(e=>console.log("Service Worker registered:",e.scope)).catch(e=>console.error("Service Worker registration failed:",e));let e=setInterval(I,4e3);return()=>clearInterval(e)},[]);let z=async(e,a,s,t)=>{h(!0);try{let n=a;n||("claude"===e?n="Claude Local":"claude-docker"===e?n="Claude Docker":"claude-ssh"===e?n="Claude SSH":"aider"===e?n="Aider Local":"aider-docker"===e?n="Aider Docker":"mock"===e&&(n="Mock Session"));let r={type:e,name:n,workspaceRoot:s,scopedDirs:t};if(("aider"===e||"aider-docker"===e)&&!s)try{let e=await fetch("/api/context/aider");if(e.ok){let a=await e.json();a.success&&a.config&&(r.workspaceRoot=a.config.workspaceRoot,r.scopedDirs=a.config.scopedDirs)}}catch(e){console.error("Failed to load aider configuration before launch:",e)}let l=await fetch("/api/sessions/launch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),o=await l.json();o.success&&(await I(),p(o.session.id),L({type:e,name:n,workspaceRoot:s,scopedDirs:t}))}catch(e){console.error("Failed to launch session:",e)}finally{h(!1)}},M=async(e,a=!1)=>{try{let s=await fetch("/api/sessions/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,delete:a})});(await s.json()).success&&(a&&u===e&&p(null),await I())}catch(e){console.error("Failed to stop session:",e)}};return(0,a.jsxs)("div",{className:`${n.default.container} ${A?n.default.containerActive:""}`,children:[(0,a.jsxs)("header",{className:n.default.header,children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1.5rem"},children:[(0,a.jsx)("img",{src:"/logo.png",alt:"NeuralLoom Logo",style:{width:"160px",height:"160px",borderRadius:"16px",objectFit:"contain"}}),(0,a.jsxs)("div",{className:n.default.logoArea,children:[(0,a.jsx)("h1",{className:n.default.title,style:{margin:0,lineHeight:1.1},children:"NeuralLoom"}),(0,a.jsx)("span",{className:n.default.subtitle,children:"Unified AI Orchestrator & Context Bridge"})]})]}),(0,a.jsxs)("div",{className:n.default.statusIndicator,children:[(0,a.jsx)("span",{className:n.default.pulseDot}),(0,a.jsx)("span",{children:"Orchestrator Online"})]})]}),A?(0,a.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:(0,a.jsx)(c,{sessionId:A.id,workspaceRoot:A.workspaceRoot||"",scopedDirs:A.scopedDirs||[],onClose:()=>p(null),sessions:e,onSwitchSession:e=>p(e),onRefreshSessions:I,wsPort:N})}):(0,a.jsxs)("div",{className:n.default.dashboardGrid,children:[(0,a.jsxs)("main",{className:n.default.mainPanel,children:[(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{className:n.default.sectionTitle,children:"Active AI Agents"}),0===R.length?(0,a.jsxs)("div",{className:"card",style:{padding:"3rem 1.5rem",textAlign:"center"},children:[(0,a.jsx)("p",{style:{color:"var(--muted)",marginBottom:"1.5rem"},children:"No active agent sessions in this workspace. Launch a Claude or Aider agent session to begin."}),(0,a.jsxs)("div",{style:{display:"flex",gap:"1rem",justifyContent:"center",flexWrap:"wrap"},children:[T&&(0,a.jsx)("button",{className:n.default.quickLaunchBtn,onClick:()=>{z(T.type,T.name,T.workspaceRoot,T.scopedDirs)},disabled:m,style:{background:"linear-gradient(135deg, hsl(38, 92%, 50%) 0%, hsl(0, 84%, 60%) 100%)",border:"none",maxWidth:"200px"},title:`Re-launch: ${T.name||T.type}`,children:"⚡ Re-launch Last Session"}),(0,a.jsx)("button",{className:n.default.quickLaunchBtn,onClick:()=>{w(!1),v(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",border:"none",maxWidth:"200px"},children:"Launch Claude PTY"}),(0,a.jsx)("button",{className:n.default.quickLaunchBtn,onClick:()=>{y(!1),x(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",border:"none",maxWidth:"200px"},children:"Launch Aider PTY"})]}),(0,a.jsxs)("div",{style:{marginTop:"1.5rem",fontSize:"0.75rem",color:"var(--muted)"},children:["Want to verify layout features first?"," ",(0,a.jsx)("span",{onClick:()=>z("mock"),style:{color:"var(--primary)",cursor:"pointer",textDecoration:"underline"},children:"Start simulated sandbox session"})]})]}):(0,a.jsx)("div",{className:n.default.agentGrid,children:R.map(e=>(0,a.jsxs)("div",{className:`${n.default.agentCard} card ${u===e.id?n.default.activeBorder:""}`,children:[(0,a.jsxs)("div",{className:n.default.agentHeader,children:[(0,a.jsx)("span",{className:n.default.agentName,children:e.name}),(0,a.jsx)("span",{className:`${n.default.agentBadge} ${"stopped"===e.status?n.default.stoppedBadge:""}`,children:e.status})]}),(0,a.jsxs)("div",{className:n.default.cardBody,children:[(0,a.jsxs)("p",{style:{fontSize:"0.825rem",color:"var(--muted)"},children:["ID: ",(0,a.jsx)("code",{style:{fontSize:"0.75rem"},children:e.id.substring(0,8)}),(0,a.jsx)("br",{}),"Type: ","claude"===e.type?"Claude Local PTY":"claude-docker"===e.type?"Claude Docker PTY":"claude-ssh"===e.type?"Claude SSH PTY":"aider"===e.type?"Aider Local PTY":"aider-docker"===e.type?"Aider Docker PTY":"mock"===e.type?"Simulated Mock PTY":"Unknown PTY",(0,a.jsx)("br",{}),"Logs: ",e.logsCount," captured lines"]}),(0,a.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"1rem"},children:["running"===e.status?(0,a.jsx)("button",{onClick:()=>M(e.id,!1),style:{flex:1,padding:"0.4rem 0.6rem",borderRadius:"6px",border:"1px solid var(--danger)",backgroundColor:"transparent",fontSize:"0.75rem",fontWeight:600,color:"var(--danger)"},children:"Stop"}):(0,a.jsx)("button",{onClick:()=>M(e.id,!0),style:{flex:1,padding:"0.4rem 0.6rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"transparent",fontSize:"0.75rem",fontWeight:600,color:"var(--muted)"},children:"Delete"}),(0,a.jsx)("button",{onClick:()=>p(e.id),style:{flex:2,padding:"0.4rem 0.6rem",borderRadius:"6px",border:"none",backgroundColor:u===e.id?"var(--border-focus)":"var(--primary)",fontSize:"0.75rem",fontWeight:600,color:"#fff"},children:u===e.id?"Connected":"Open Session"})]})]})]},e.id))})]}),u&&"workspace-terminal"!==u&&(0,a.jsxs)("section",{className:"card",style:{display:"flex",flexDirection:"column",border:"1px solid var(--border-focus)"},children:[(0,a.jsxs)("div",{className:n.default.agentHeader,style:{justifyContent:"space-between",background:"rgba(109, 40, 217, 0.08)"},children:[(0,a.jsxs)("span",{style:{fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem"},children:["🖥️ Console Bridge — ",e.find(e=>e.id===u)?.name]}),(0,a.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[e.find(e=>e.id===u)?.status==="stopped"&&(0,a.jsx)("button",{onClick:async()=>{try{let e=await fetch("/api/sessions/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:u})});if(e.ok)await I();else{let a=await e.json();alert(a.error||"Failed to restart session.")}}catch(e){console.error("Failed to restart session:",e),alert("Network error: failed to restart session.")}},style:{padding:"0.2rem 0.5rem",borderRadius:"4px",border:"1px solid #eab308",backgroundColor:"rgba(234, 179, 8, 0.15)",color:"#eab308",fontSize:"0.7rem",fontWeight:600,cursor:"pointer",boxShadow:"0 0 8px rgba(234, 179, 8, 0.2)"},title:"Restart the stopped session process runner",children:"⚡ Restart Session"}),(0,a.jsx)("button",{onClick:()=>p(null),style:{border:"none",background:"none",color:"var(--muted)",cursor:"pointer",fontSize:"0.75rem"},children:"Close Panel ✖"})]})]}),(0,a.jsx)(r,{sessionId:u,wsPort:N})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{className:n.default.sectionTitle,children:"Workspace Shell Terminal"}),(0,a.jsxs)("div",{className:"card",style:{display:"flex",flexDirection:"column",border:"1px solid var(--border)",padding:0},children:[(0,a.jsxs)("div",{className:n.default.agentHeader,style:{justifyContent:"space-between",background:"rgba(255, 255, 255, 0.02)"},children:[(0,a.jsxs)("span",{style:{fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem",fontSize:"0.85rem"},children:["💻 Local Workspace Shell (CWD: ",C||"root",")"]}),(0,a.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--muted)"},children:"Pre-configured environment"})]}),(0,a.jsx)(r,{sessionId:"workspace-terminal",height:"300px",wsPort:N})]})]}),(0,a.jsxs)("section",{style:{marginTop:"2rem"},children:[(0,a.jsx)("h2",{className:n.default.sectionTitle,children:"Shared Context Hub & Slash Commands"}),(0,a.jsxs)("div",{className:n.default.contextList,children:[(0,a.jsxs)("div",{className:`${n.default.contextItem} card`,children:[(0,a.jsxs)("div",{className:n.default.contextMeta,children:[(0,a.jsx)("span",{className:n.default.contextTitle,children:"Staged Context & System Rules (/ccc)"}),(0,a.jsx)("span",{className:n.default.contextDetails,children:"Compiles AGENTS.md guidelines and project files folder hierarchy map."})]}),(0,a.jsx)("button",{onClick:async()=>{u&&await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:u,command:"/ccc"})})},disabled:!u,style:{padding:"0.4rem 0.8rem",borderRadius:"6px",border:"1px solid var(--primary)",backgroundColor:"transparent",color:"var(--primary)",fontSize:"0.75rem",fontWeight:600,opacity:u?1:.5,cursor:u?"pointer":"not-allowed"},children:"🚀 Mount Context (/ccc)"})]}),(0,a.jsxs)("div",{className:`${n.default.contextItem} card`,children:[(0,a.jsxs)("div",{className:n.default.contextMeta,children:[(0,a.jsx)("span",{className:n.default.contextTitle,children:"Staged Developer Prompt (/ccp)"}),(0,a.jsx)("span",{className:n.default.contextDetails,children:"Executes instructions written in .ai/neural-loom/cprompt.md."})]}),(0,a.jsx)("button",{onClick:async()=>{u&&await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:u,command:"/ccp"})})},disabled:!u,style:{padding:"0.4rem 0.8rem",borderRadius:"6px",border:"1px solid var(--success)",backgroundColor:"transparent",color:"var(--success)",fontSize:"0.75rem",fontWeight:600,opacity:u?1:.5,cursor:u?"pointer":"not-allowed"},children:"⚡ Trigger Prompt (/ccp)"})]})]}),(0,a.jsx)(l,{})]})]}),(0,a.jsxs)("aside",{className:n.default.sidePanel,children:[(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{className:n.default.sectionTitle,children:"Execution Environments"}),(0,a.jsxs)("div",{className:n.default.envGrid,children:[(0,a.jsxs)("div",{className:n.default.envRow,children:[(0,a.jsx)("span",{className:n.default.envName,children:"💻 Local host OS"}),(0,a.jsx)("span",{className:n.default.envStatus,style:{color:"var(--success)"},children:"Active"})]}),(0,a.jsxs)("div",{className:n.default.envRow,style:{opacity:D?1:.6},children:[(0,a.jsx)("span",{className:n.default.envName,children:"🐳 Docker Sandbox"}),(0,a.jsx)("span",{className:n.default.envStatus,style:{color:D?"var(--success)":"var(--muted)"},children:D?"Active":"Not Mounted"})]}),(0,a.jsxs)("div",{className:n.default.envRow,style:{opacity:B?1:.6},children:[(0,a.jsx)("span",{className:n.default.envName,children:"🌐 Remote VM (SSH)"}),(0,a.jsx)("span",{className:n.default.envStatus,style:{color:B?"var(--success)":"var(--muted)"},children:B?"Active":"Disconnected"})]})]})]}),(0,a.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:[(0,a.jsxs)("button",{className:n.default.quickLaunchBtn,onClick:()=>{w(!1),v(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",border:"none"},children:[(0,a.jsx)("span",{children:"🤖"}),(0,a.jsx)("span",{children:"Launch Claude PTY"})]}),(0,a.jsxs)("button",{className:n.default.quickLaunchBtn,onClick:()=>{w(!0),v(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(170, 72%, 40%) 0%, hsl(195, 100%, 40%) 100%)",border:"none"},children:[(0,a.jsx)("span",{children:"🐳"}),(0,a.jsx)("span",{children:"Launch Docker PTY"})]}),(0,a.jsxs)("button",{className:n.default.quickLaunchBtn,onClick:()=>_(!0),disabled:m,style:{background:"linear-gradient(135deg, hsl(38, 92%, 50%) 0%, hsl(0, 84%, 60%) 100%)",border:"none"},children:[(0,a.jsx)("span",{children:"🌐"}),(0,a.jsx)("span",{children:"Launch SSH PTY"})]}),(0,a.jsxs)("button",{className:n.default.quickLaunchBtn,onClick:()=>{y(!1),x(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",border:"none"},children:[(0,a.jsx)("span",{children:"🐍"}),(0,a.jsx)("span",{children:"Launch Aider PTY"})]}),(0,a.jsxs)("button",{className:n.default.quickLaunchBtn,onClick:()=>{y(!0),x(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(195, 100%, 40%) 0%, hsl(262, 80%, 55%) 100%)",border:"none"},children:[(0,a.jsx)("span",{children:"🐳"}),(0,a.jsx)("span",{children:"Launch Aider Docker"})]})]}),(0,a.jsxs)("section",{className:"card",style:{padding:"1.5rem",display:"flex",flexDirection:"column",gap:"0.75rem"},children:[(0,a.jsx)("h3",{style:{fontSize:"1rem",fontWeight:700},children:"Quick Actions"}),(0,a.jsxs)("ul",{style:{listStyle:"none",fontSize:"0.875rem",display:"flex",flexDirection:"column",gap:"0.5rem",color:"var(--muted)"},children:[(0,a.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,a.jsx)("span",{children:"Configure global API Keys"}),(0,a.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]}),(0,a.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,a.jsx)("span",{children:"Edit rules templates"}),(0,a.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]}),(0,a.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,a.jsx)("span",{children:"Inspect process locks"}),(0,a.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]})]}),(0,a.jsxs)("div",{style:{marginTop:"1.2rem",textAlign:"center",fontSize:"0.72rem",color:"var(--muted)"},children:["Need to troubleshoot?"," ",(0,a.jsx)("span",{onClick:()=>z("mock"),style:{color:"var(--primary)",cursor:"pointer",textDecoration:"underline"},children:"Launch simulated playground sandbox"})]})]})]})]}),(0,a.jsxs)("footer",{className:n.default.footer,children:[(0,a.jsxs)("span",{children:["NeuralLoom v",P," — Experimental AI Orchestrator Bridge"]}),(0,a.jsxs)("span",{children:["Directory: ",C||"Loading..."]})]}),f&&(0,a.jsx)(o,{onClose:()=>_(!1),onConfirmLaunch:()=>{_(!1),z("claude-ssh")}}),g&&(0,a.jsx)(i,{onClose:()=>x(!1),isDocker:j,onConfirmLaunch:()=>{x(!1),z(j?"aider-docker":"aider")}}),b&&(0,a.jsx)(d,{onClose:()=>v(!1),isDocker:k,onConfirmLaunch:(e,a,s)=>{v(!1),z(k?"claude-docker":"claude",e,a,s)}})]})}])},33779,e=>{e.v(a=>Promise.all(["static/chunks/03g6xpslyid3~.js","static/chunks/070hz362~_h8n.js","static/chunks/0ga14ztvrhau2.css"].map(a=>e.l(a))).then(()=>a(37314)))},39429,e=>{e.v(a=>Promise.all(["static/chunks/16w4~t4h7gk13.js"].map(a=>e.l(a))).then(()=>a(1985)))},56915,e=>{e.v(a=>Promise.all(["static/chunks/0lnobx4eh3~-_.js"].map(a=>e.l(a))).then(()=>a(99026)))},78716,e=>{e.v(a=>Promise.all(["static/chunks/0k2co3uj4w81_.js"].map(a=>e.l(a))).then(()=>a(9949)))},33789,e=>{e.v(a=>Promise.all(["static/chunks/076_b43_kienv.js"].map(a=>e.l(a))).then(()=>a(20032)))},78003,e=>{e.v(a=>Promise.all(["static/chunks/0eidfx-s54367.js","static/chunks/070hz362~_h8n.js","static/chunks/0bclk7hf35ac4.js","static/chunks/0ga14ztvrhau2.css"].map(a=>e.l(a))).then(()=>a(97722)))}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67585,(e,a,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"BailoutToCSR",{enumerable:!0,get:function(){return n}});let t=e.r(32061);function n({reason:e,children:a}){if("u"<typeof window)throw Object.defineProperty(new t.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}},9885,(e,a,s)=>{"use strict";function t(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"encodeURIPath",{enumerable:!0,get:function(){return t}})},52157,(e,a,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"PreloadChunks",{enumerable:!0,get:function(){return i}});let t=e.r(43476),n=e.r(74080),r=e.r(63599),l=e.r(9885),o=e.r(43369);function i({moduleIds:e}){if("u">typeof window)return null;let a=r.workAsyncStorage.getStore();if(void 0===a)return null;let s=[];if(a.reactLoadableManifest&&e){let t=a.reactLoadableManifest;for(let a of e){if(!t[a])continue;let e=t[a].files;s.push(...e)}}if(0===s.length)return null;let d=(0,o.getAssetTokenQuery)();return(0,t.jsx)(t.Fragment,{children:s.map(e=>{let s=`${a.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${d}`;return e.endsWith(".css")?(0,t.jsx)("link",{precedence:"dynamic",href:s,rel:"stylesheet",as:"style",nonce:a.nonce},e):((0,n.preload)(s,{as:"script",fetchPriority:"low",nonce:a.nonce}),null)})})}},69093,(e,a,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return d}});let t=e.r(43476),n=e.r(71645),r=e.r(67585),l=e.r(52157);function o(e){return{default:e&&"default"in e?e.default:e}}let i={loader:()=>Promise.resolve(o(()=>null)),loading:null,ssr:!0},d=function(e){let a={...i,...e},s=(0,n.lazy)(()=>a.loader().then(o)),d=a.loading;function c(e){let o=d?(0,t.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,i=!a.ssr||!!a.loading,c=i?n.Suspense:n.Fragment,u=a.ssr?(0,t.jsxs)(t.Fragment,{children:["u"<typeof window?(0,t.jsx)(l.PreloadChunks,{moduleIds:a.modules}):null,(0,t.jsx)(s,{...e})]}):(0,t.jsx)(r.BailoutToCSR,{reason:"next/dynamic",children:(0,t.jsx)(s,{...e})});return(0,t.jsx)(c,{...i?{fallback:o}:{},children:u})}return c.displayName="LoadableComponent",c}},70703,(e,a,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return n}});let t=e.r(55682)._(e.r(69093));function n(e,a){let s={};"function"==typeof e&&(s.loader=e);let n={...s,...a};return(0,t.default)({...n,modules:n.loadableGenerated?.modules})}("function"==typeof s.default||"object"==typeof s.default&&null!==s.default)&&void 0===s.default.__esModule&&(Object.defineProperty(s.default,"__esModule",{value:!0}),Object.assign(s.default,s),a.exports=s.default)},20897,e=>{e.v({activeBorder:"page-module___8aEwW__activeBorder",agentBadge:"page-module___8aEwW__agentBadge",agentCard:"page-module___8aEwW__agentCard",agentGrid:"page-module___8aEwW__agentGrid",agentHeader:"page-module___8aEwW__agentHeader",agentName:"page-module___8aEwW__agentName",ansiCyan:"page-module___8aEwW__ansiCyan",ansiGreen:"page-module___8aEwW__ansiGreen",ansiMagenta:"page-module___8aEwW__ansiMagenta",ansiRed:"page-module___8aEwW__ansiRed",ansiYellow:"page-module___8aEwW__ansiYellow",cardBody:"page-module___8aEwW__cardBody",container:"page-module___8aEwW__container",containerActive:"page-module___8aEwW__containerActive",contextDetails:"page-module___8aEwW__contextDetails",contextItem:"page-module___8aEwW__contextItem",contextList:"page-module___8aEwW__contextList",contextMeta:"page-module___8aEwW__contextMeta",contextTitle:"page-module___8aEwW__contextTitle",dashboardGrid:"page-module___8aEwW__dashboardGrid",envGrid:"page-module___8aEwW__envGrid",envName:"page-module___8aEwW__envName",envRow:"page-module___8aEwW__envRow",envStatus:"page-module___8aEwW__envStatus",footer:"page-module___8aEwW__footer",header:"page-module___8aEwW__header",logoArea:"page-module___8aEwW__logoArea",mainPanel:"page-module___8aEwW__mainPanel",pulse:"page-module___8aEwW__pulse",pulseDot:"page-module___8aEwW__pulseDot",quickLaunchBtn:"page-module___8aEwW__quickLaunchBtn",sectionTitle:"page-module___8aEwW__sectionTitle",sidePanel:"page-module___8aEwW__sidePanel",statusIndicator:"page-module___8aEwW__statusIndicator",stoppedBadge:"page-module___8aEwW__stoppedBadge",subtitle:"page-module___8aEwW__subtitle",terminalContainer:"page-module___8aEwW__terminalContainer",terminalInput:"page-module___8aEwW__terminalInput",terminalInputArea:"page-module___8aEwW__terminalInputArea",terminalLine:"page-module___8aEwW__terminalLine",terminalSendBtn:"page-module___8aEwW__terminalSendBtn",title:"page-module___8aEwW__title"})},52683,e=>{"use strict";var a=e.i(43476),s=e.i(71645),t=e.i(70703),n=e.i(20897);let r=(0,t.default)(()=>e.A(33779),{loadableGenerated:{modules:[37314]},ssr:!1,loading:()=>(0,a.jsx)("div",{style:{height:"400px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#05070a",color:"var(--muted)",border:"1px solid var(--border)",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px"},children:(0,a.jsx)("span",{children:"Initializing terminal emulator..."})})}),l=(0,t.default)(()=>e.A(39429),{loadableGenerated:{modules:[1985]},ssr:!1,loading:()=>(0,a.jsx)("div",{style:{height:"280px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"var(--card)",border:"1px solid var(--border)",borderRadius:"12px",marginTop:"1.5rem"},children:(0,a.jsx)("span",{style:{color:"var(--muted)"},children:"Initializing prompt editor..."})})}),o=(0,t.default)(()=>e.A(56915),{loadableGenerated:{modules:[99026]},ssr:!1}),i=(0,t.default)(()=>e.A(78716),{loadableGenerated:{modules:[9949]},ssr:!1}),d=(0,t.default)(()=>e.A(33789),{loadableGenerated:{modules:[20032]},ssr:!1}),c=(0,t.default)(()=>e.A(78003),{loadableGenerated:{modules:[97722]},ssr:!1});e.s(["default",0,function(){let[e,t]=(0,s.useState)([]),[u,p]=(0,s.useState)(null),[m,h]=(0,s.useState)(!1),[f,_]=(0,s.useState)(!1),[g,x]=(0,s.useState)(!1),[j,y]=(0,s.useState)(!1),[b,v]=(0,s.useState)(!1),[k,w]=(0,s.useState)(!1),[C,S]=(0,s.useState)(""),[N,W]=(0,s.useState)(3001),[P,E]=(0,s.useState)("0.2.19"),[T,L]=(0,s.useState)(null),R=e.filter(e=>"workspace-terminal"!==e.id),A=e.find(e=>e.id===u),D=R.some(e=>("claude-docker"===e.type||"aider-docker"===e.type)&&"running"===e.status),B=R.some(e=>"claude-ssh"===e.type&&"running"===e.status),I=async()=>{try{let e=await fetch("/api/sessions"),a=await e.json();a.sessions&&t(a.sessions),a.wsPort&&W(a.wsPort),a.originalCwd&&S(a.originalCwd),a.version&&E(a.version)}catch(e){console.error("Failed to fetch sessions:",e)}},O=async()=>{try{let e=await fetch("/api/recents");if(e.ok){let a=await e.json();a.success&&a.recents&&a.recents.lastSession&&L(a.recents.lastSession)}}catch(e){console.error("Failed to fetch recents:",e)}};(0,s.useEffect)(()=>{(async()=>{await I(),await O()})(),"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").then(e=>console.log("Service Worker registered:",e.scope)).catch(e=>console.error("Service Worker registration failed:",e));let e=setInterval(I,4e3);return()=>clearInterval(e)},[]);let z=async(e,a,s,t)=>{h(!0);try{let n=a;n||("claude"===e?n="Claude Local":"claude-docker"===e?n="Claude Docker":"claude-ssh"===e?n="Claude SSH":"aider"===e?n="Aider Local":"aider-docker"===e?n="Aider Docker":"mock"===e&&(n="Mock Session"));let r={type:e,name:n,workspaceRoot:s,scopedDirs:t};if(("aider"===e||"aider-docker"===e)&&!s)try{let e=await fetch("/api/context/aider");if(e.ok){let a=await e.json();a.success&&a.config&&(r.workspaceRoot=a.config.workspaceRoot,r.scopedDirs=a.config.scopedDirs)}}catch(e){console.error("Failed to load aider configuration before launch:",e)}let l=await fetch("/api/sessions/launch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),o=await l.json();o.success&&(await I(),p(o.session.id),L({type:e,name:n,workspaceRoot:s,scopedDirs:t}))}catch(e){console.error("Failed to launch session:",e)}finally{h(!1)}},M=async(e,a=!1)=>{try{let s=await fetch("/api/sessions/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,delete:a})});(await s.json()).success&&(a&&u===e&&p(null),await I())}catch(e){console.error("Failed to stop session:",e)}};return(0,a.jsxs)("div",{className:`${n.default.container} ${A?n.default.containerActive:""}`,children:[(0,a.jsxs)("header",{className:n.default.header,children:[(0,a.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1.5rem"},children:[(0,a.jsx)("img",{src:"/logo.png",alt:"NeuralLoom Logo",style:{width:"160px",height:"160px",borderRadius:"16px",objectFit:"contain"}}),(0,a.jsxs)("div",{className:n.default.logoArea,children:[(0,a.jsx)("h1",{className:n.default.title,style:{margin:0,lineHeight:1.1},children:"NeuralLoom"}),(0,a.jsx)("span",{className:n.default.subtitle,children:"Unified AI Orchestrator & Context Bridge"})]})]}),(0,a.jsxs)("div",{className:n.default.statusIndicator,children:[(0,a.jsx)("span",{className:n.default.pulseDot}),(0,a.jsx)("span",{children:"Orchestrator Online"})]})]}),A?(0,a.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:(0,a.jsx)(c,{sessionId:A.id,workspaceRoot:A.workspaceRoot||"",scopedDirs:A.scopedDirs||[],onClose:()=>p(null),sessions:e,onSwitchSession:e=>p(e),onRefreshSessions:I,wsPort:N})}):(0,a.jsxs)("div",{className:n.default.dashboardGrid,children:[(0,a.jsxs)("main",{className:n.default.mainPanel,children:[(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{className:n.default.sectionTitle,children:"Active AI Agents"}),0===R.length?(0,a.jsxs)("div",{className:"card",style:{padding:"3rem 1.5rem",textAlign:"center"},children:[(0,a.jsx)("p",{style:{color:"var(--muted)",marginBottom:"1.5rem"},children:"No active agent sessions in this workspace. Launch a Claude or Aider agent session to begin."}),(0,a.jsxs)("div",{style:{display:"flex",gap:"1rem",justifyContent:"center",flexWrap:"wrap"},children:[T&&(0,a.jsx)("button",{className:n.default.quickLaunchBtn,onClick:()=>{z(T.type,T.name,T.workspaceRoot,T.scopedDirs)},disabled:m,style:{background:"linear-gradient(135deg, hsl(38, 92%, 50%) 0%, hsl(0, 84%, 60%) 100%)",border:"none",maxWidth:"200px"},title:`Re-launch: ${T.name||T.type}`,children:"⚡ Re-launch Last Session"}),(0,a.jsx)("button",{className:n.default.quickLaunchBtn,onClick:()=>{w(!1),v(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",border:"none",maxWidth:"200px"},children:"Launch Claude PTY"}),(0,a.jsx)("button",{className:n.default.quickLaunchBtn,onClick:()=>{y(!1),x(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",border:"none",maxWidth:"200px"},children:"Launch Aider PTY"})]}),(0,a.jsxs)("div",{style:{marginTop:"1.5rem",fontSize:"0.75rem",color:"var(--muted)"},children:["Want to verify layout features first?"," ",(0,a.jsx)("span",{onClick:()=>z("mock"),style:{color:"var(--primary)",cursor:"pointer",textDecoration:"underline"},children:"Start simulated sandbox session"})]})]}):(0,a.jsx)("div",{className:n.default.agentGrid,children:R.map(e=>(0,a.jsxs)("div",{className:`${n.default.agentCard} card ${u===e.id?n.default.activeBorder:""}`,children:[(0,a.jsxs)("div",{className:n.default.agentHeader,children:[(0,a.jsx)("span",{className:n.default.agentName,children:e.name}),(0,a.jsx)("span",{className:`${n.default.agentBadge} ${"stopped"===e.status?n.default.stoppedBadge:""}`,children:e.status})]}),(0,a.jsxs)("div",{className:n.default.cardBody,children:[(0,a.jsxs)("p",{style:{fontSize:"0.825rem",color:"var(--muted)"},children:["ID: ",(0,a.jsx)("code",{style:{fontSize:"0.75rem"},children:e.id.substring(0,8)}),(0,a.jsx)("br",{}),"Type: ","claude"===e.type?"Claude Local PTY":"claude-docker"===e.type?"Claude Docker PTY":"claude-ssh"===e.type?"Claude SSH PTY":"aider"===e.type?"Aider Local PTY":"aider-docker"===e.type?"Aider Docker PTY":"mock"===e.type?"Simulated Mock PTY":"Unknown PTY",(0,a.jsx)("br",{}),"Logs: ",e.logsCount," captured lines"]}),(0,a.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"1rem"},children:["running"===e.status?(0,a.jsx)("button",{onClick:()=>M(e.id,!1),style:{flex:1,padding:"0.4rem 0.6rem",borderRadius:"6px",border:"1px solid var(--danger)",backgroundColor:"transparent",fontSize:"0.75rem",fontWeight:600,color:"var(--danger)"},children:"Stop"}):(0,a.jsx)("button",{onClick:()=>M(e.id,!0),style:{flex:1,padding:"0.4rem 0.6rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"transparent",fontSize:"0.75rem",fontWeight:600,color:"var(--muted)"},children:"Delete"}),(0,a.jsx)("button",{onClick:()=>p(e.id),style:{flex:2,padding:"0.4rem 0.6rem",borderRadius:"6px",border:"none",backgroundColor:u===e.id?"var(--border-focus)":"var(--primary)",fontSize:"0.75rem",fontWeight:600,color:"#fff"},children:u===e.id?"Connected":"Open Session"})]})]})]},e.id))})]}),u&&"workspace-terminal"!==u&&(0,a.jsxs)("section",{className:"card",style:{display:"flex",flexDirection:"column",border:"1px solid var(--border-focus)"},children:[(0,a.jsxs)("div",{className:n.default.agentHeader,style:{justifyContent:"space-between",background:"rgba(109, 40, 217, 0.08)"},children:[(0,a.jsxs)("span",{style:{fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem"},children:["🖥️ Console Bridge — ",e.find(e=>e.id===u)?.name]}),(0,a.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[e.find(e=>e.id===u)?.status==="stopped"&&(0,a.jsx)("button",{onClick:async()=>{try{let e=await fetch("/api/sessions/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:u})});if(e.ok)await I();else{let a=await e.json();alert(a.error||"Failed to restart session.")}}catch(e){console.error("Failed to restart session:",e),alert("Network error: failed to restart session.")}},style:{padding:"0.2rem 0.5rem",borderRadius:"4px",border:"1px solid #eab308",backgroundColor:"rgba(234, 179, 8, 0.15)",color:"#eab308",fontSize:"0.7rem",fontWeight:600,cursor:"pointer",boxShadow:"0 0 8px rgba(234, 179, 8, 0.2)"},title:"Restart the stopped session process runner",children:"⚡ Restart Session"}),(0,a.jsx)("button",{onClick:()=>p(null),style:{border:"none",background:"none",color:"var(--muted)",cursor:"pointer",fontSize:"0.75rem"},children:"Close Panel ✖"})]})]}),(0,a.jsx)(r,{sessionId:u,wsPort:N})]}),(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{className:n.default.sectionTitle,children:"Workspace Shell Terminal"}),(0,a.jsxs)("div",{className:"card",style:{display:"flex",flexDirection:"column",border:"1px solid var(--border)",padding:0},children:[(0,a.jsxs)("div",{className:n.default.agentHeader,style:{justifyContent:"space-between",background:"rgba(255, 255, 255, 0.02)"},children:[(0,a.jsxs)("span",{style:{fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem",fontSize:"0.85rem"},children:["💻 Local Workspace Shell (CWD: ",C||"root",")"]}),(0,a.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--muted)"},children:"Pre-configured environment"})]}),(0,a.jsx)(r,{sessionId:"workspace-terminal",height:"300px",wsPort:N})]})]}),(0,a.jsxs)("section",{style:{marginTop:"2rem"},children:[(0,a.jsx)("h2",{className:n.default.sectionTitle,children:"Shared Context Hub & Slash Commands"}),(0,a.jsxs)("div",{className:n.default.contextList,children:[(0,a.jsxs)("div",{className:`${n.default.contextItem} card`,children:[(0,a.jsxs)("div",{className:n.default.contextMeta,children:[(0,a.jsx)("span",{className:n.default.contextTitle,children:"Staged Context & System Rules (/ccc)"}),(0,a.jsx)("span",{className:n.default.contextDetails,children:"Compiles AGENTS.md guidelines and project files folder hierarchy map."})]}),(0,a.jsx)("button",{onClick:async()=>{u&&await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:u,command:"/ccc"})})},disabled:!u,style:{padding:"0.4rem 0.8rem",borderRadius:"6px",border:"1px solid var(--primary)",backgroundColor:"transparent",color:"var(--primary)",fontSize:"0.75rem",fontWeight:600,opacity:u?1:.5,cursor:u?"pointer":"not-allowed"},children:"🚀 Mount Context (/ccc)"})]}),(0,a.jsxs)("div",{className:`${n.default.contextItem} card`,children:[(0,a.jsxs)("div",{className:n.default.contextMeta,children:[(0,a.jsx)("span",{className:n.default.contextTitle,children:"Staged Developer Prompt (/ccp)"}),(0,a.jsx)("span",{className:n.default.contextDetails,children:"Executes instructions written in .ai/neural-loom/cprompt.md."})]}),(0,a.jsx)("button",{onClick:async()=>{u&&await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:u,command:"/ccp"})})},disabled:!u,style:{padding:"0.4rem 0.8rem",borderRadius:"6px",border:"1px solid var(--success)",backgroundColor:"transparent",color:"var(--success)",fontSize:"0.75rem",fontWeight:600,opacity:u?1:.5,cursor:u?"pointer":"not-allowed"},children:"⚡ Trigger Prompt (/ccp)"})]})]}),(0,a.jsx)(l,{})]})]}),(0,a.jsxs)("aside",{className:n.default.sidePanel,children:[(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{className:n.default.sectionTitle,children:"Execution Environments"}),(0,a.jsxs)("div",{className:n.default.envGrid,children:[(0,a.jsxs)("div",{className:n.default.envRow,children:[(0,a.jsx)("span",{className:n.default.envName,children:"💻 Local host OS"}),(0,a.jsx)("span",{className:n.default.envStatus,style:{color:"var(--success)"},children:"Active"})]}),(0,a.jsxs)("div",{className:n.default.envRow,style:{opacity:D?1:.6},children:[(0,a.jsx)("span",{className:n.default.envName,children:"🐳 Docker Sandbox"}),(0,a.jsx)("span",{className:n.default.envStatus,style:{color:D?"var(--success)":"var(--muted)"},children:D?"Active":"Not Mounted"})]}),(0,a.jsxs)("div",{className:n.default.envRow,style:{opacity:B?1:.6},children:[(0,a.jsx)("span",{className:n.default.envName,children:"🌐 Remote VM (SSH)"}),(0,a.jsx)("span",{className:n.default.envStatus,style:{color:B?"var(--success)":"var(--muted)"},children:B?"Active":"Disconnected"})]})]})]}),(0,a.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:[(0,a.jsxs)("button",{className:n.default.quickLaunchBtn,onClick:()=>{w(!1),v(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",border:"none"},children:[(0,a.jsx)("span",{children:"🤖"}),(0,a.jsx)("span",{children:"Launch Claude PTY"})]}),(0,a.jsxs)("button",{className:n.default.quickLaunchBtn,onClick:()=>{w(!0),v(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(170, 72%, 40%) 0%, hsl(195, 100%, 40%) 100%)",border:"none"},children:[(0,a.jsx)("span",{children:"🐳"}),(0,a.jsx)("span",{children:"Launch Docker PTY"})]}),(0,a.jsxs)("button",{className:n.default.quickLaunchBtn,onClick:()=>_(!0),disabled:m,style:{background:"linear-gradient(135deg, hsl(38, 92%, 50%) 0%, hsl(0, 84%, 60%) 100%)",border:"none"},children:[(0,a.jsx)("span",{children:"🌐"}),(0,a.jsx)("span",{children:"Launch SSH PTY"})]}),(0,a.jsxs)("button",{className:n.default.quickLaunchBtn,onClick:()=>{y(!1),x(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",border:"none"},children:[(0,a.jsx)("span",{children:"🐍"}),(0,a.jsx)("span",{children:"Launch Aider PTY"})]}),(0,a.jsxs)("button",{className:n.default.quickLaunchBtn,onClick:()=>{y(!0),x(!0)},disabled:m,style:{background:"linear-gradient(135deg, hsl(195, 100%, 40%) 0%, hsl(262, 80%, 55%) 100%)",border:"none"},children:[(0,a.jsx)("span",{children:"🐳"}),(0,a.jsx)("span",{children:"Launch Aider Docker"})]})]}),(0,a.jsxs)("section",{className:"card",style:{padding:"1.5rem",display:"flex",flexDirection:"column",gap:"0.75rem"},children:[(0,a.jsx)("h3",{style:{fontSize:"1rem",fontWeight:700},children:"Quick Actions"}),(0,a.jsxs)("ul",{style:{listStyle:"none",fontSize:"0.875rem",display:"flex",flexDirection:"column",gap:"0.5rem",color:"var(--muted)"},children:[(0,a.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,a.jsx)("span",{children:"Configure global API Keys"}),(0,a.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]}),(0,a.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,a.jsx)("span",{children:"Edit rules templates"}),(0,a.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]}),(0,a.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,a.jsx)("span",{children:"Inspect process locks"}),(0,a.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]})]}),(0,a.jsxs)("div",{style:{marginTop:"1.2rem",textAlign:"center",fontSize:"0.72rem",color:"var(--muted)"},children:["Need to troubleshoot?"," ",(0,a.jsx)("span",{onClick:()=>z("mock"),style:{color:"var(--primary)",cursor:"pointer",textDecoration:"underline"},children:"Launch simulated playground sandbox"})]})]})]})]}),(0,a.jsxs)("footer",{className:n.default.footer,children:[(0,a.jsxs)("span",{children:["NeuralLoom v",P," — Experimental AI Orchestrator Bridge"]}),(0,a.jsxs)("span",{children:["Directory: ",C||"Loading..."]})]}),f&&(0,a.jsx)(o,{onClose:()=>_(!1),onConfirmLaunch:()=>{_(!1),z("claude-ssh")}}),g&&(0,a.jsx)(i,{onClose:()=>x(!1),isDocker:j,onConfirmLaunch:()=>{x(!1),z(j?"aider-docker":"aider")}}),b&&(0,a.jsx)(d,{onClose:()=>v(!1),isDocker:k,onConfirmLaunch:(e,a,s)=>{v(!1),z(k?"claude-docker":"claude",e,a,s)}})]})}])},33779,e=>{e.v(a=>Promise.all(["static/chunks/03g6xpslyid3~.js","static/chunks/070hz362~_h8n.js","static/chunks/0ga14ztvrhau2.css"].map(a=>e.l(a))).then(()=>a(37314)))},39429,e=>{e.v(a=>Promise.all(["static/chunks/16w4~t4h7gk13.js"].map(a=>e.l(a))).then(()=>a(1985)))},56915,e=>{e.v(a=>Promise.all(["static/chunks/0lnobx4eh3~-_.js"].map(a=>e.l(a))).then(()=>a(99026)))},78716,e=>{e.v(a=>Promise.all(["static/chunks/0k2co3uj4w81_.js"].map(a=>e.l(a))).then(()=>a(9949)))},33789,e=>{e.v(a=>Promise.all(["static/chunks/076_b43_kienv.js"].map(a=>e.l(a))).then(()=>a(20032)))},78003,e=>{e.v(a=>Promise.all(["static/chunks/0eidfx-s54367.js","static/chunks/070hz362~_h8n.js","static/chunks/03f4bqk_d65hs.js","static/chunks/0ga14ztvrhau2.css"].map(a=>e.l(a))).then(()=>a(97722)))}]);
|
package/.next/trace
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":211,"timestamp":41957197071,"id":4,"parentId":1,"tags":{},"startTime":1781521341396,"traceId":"ed5f6425c49aa8c3"},{"name":"load-custom-routes","duration":342,"timestamp":41957197389,"id":5,"parentId":1,"tags":{},"startTime":1781521341397,"traceId":"ed5f6425c49aa8c3"},{"name":"create-dist-dir","duration":631,"timestamp":41957197760,"id":6,"parentId":1,"tags":{},"startTime":1781521341397,"traceId":"ed5f6425c49aa8c3"},{"name":"clean","duration":567,"timestamp":41957199250,"id":7,"parentId":1,"tags":{},"startTime":1781521341399,"traceId":"ed5f6425c49aa8c3"},{"name":"discover-routes","duration":5804,"timestamp":41957222377,"id":8,"parentId":1,"tags":{},"startTime":1781521341422,"traceId":"ed5f6425c49aa8c3"},{"name":"create-root-mapping","duration":60,"timestamp":41957228227,"id":9,"parentId":1,"tags":{},"startTime":1781521341428,"traceId":"ed5f6425c49aa8c3"},{"name":"generate-route-types","duration":17236,"timestamp":41957229440,"id":10,"parentId":1,"tags":{},"startTime":1781521341429,"traceId":"ed5f6425c49aa8c3"},{"name":"public-dir-conflict-check","duration":85,"timestamp":41957246799,"id":11,"parentId":1,"tags":{},"startTime":1781521341446,"traceId":"ed5f6425c49aa8c3"},{"name":"generate-routes-manifest","duration":2159,"timestamp":41957246981,"id":12,"parentId":1,"tags":{},"startTime":1781521341446,"traceId":"ed5f6425c49aa8c3"},{"name":"run-turbopack","duration":2400498,"timestamp":41957255227,"id":14,"parentId":1,"tags":{},"startTime":1781521341455,"traceId":"ed5f6425c49aa8c3"},{"name":"turbopack-build-events","duration":60,"timestamp":41957547531,"id":15,"parentId":1,"tags":{},"startTime":1781521341747,"traceId":"ed5f6425c49aa8c3"},{"name":"run-typescript","duration":3994132,"timestamp":41959664799,"id":16,"parentId":1,"tags":{},"startTime":1781521343864,"traceId":"ed5f6425c49aa8c3"},{"name":"generate-required-server-files","duration":1361,"timestamp":41963659923,"id":18,"parentId":1,"tags":{},"startTime":1781521347859,"traceId":"ed5f6425c49aa8c3"},{"name":"check-static-error-page","duration":7160,"timestamp":41963780909,"id":20,"parentId":19,"tags":{},"startTime":1781521347980,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":533233,"timestamp":41963793325,"id":40,"parentId":22,"tags":{},"startTime":1781521347993,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":542636,"timestamp":41963784049,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1781521347983,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":673873,"timestamp":41963793576,"id":43,"parentId":25,"tags":{},"startTime":1781521347993,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":682618,"timestamp":41963784903,"id":25,"parentId":19,"tags":{"page":"/api/context"},"startTime":1781521347984,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":677777,"timestamp":41963793027,"id":39,"parentId":21,"tags":{},"startTime":1781521347992,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":688302,"timestamp":41963782547,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1781521347982,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":681837,"timestamp":41963794003,"id":46,"parentId":28,"tags":{},"startTime":1781521347993,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":690374,"timestamp":41963785514,"id":28,"parentId":19,"tags":{"page":"/api/git"},"startTime":1781521347985,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":688587,"timestamp":41963793797,"id":45,"parentId":27,"tags":{},"startTime":1781521347993,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":697148,"timestamp":41963785294,"id":27,"parentId":19,"tags":{"page":"/api/files"},"startTime":1781521347985,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":690035,"timestamp":41963793622,"id":44,"parentId":26,"tags":{},"startTime":1781521347993,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":698591,"timestamp":41963785105,"id":26,"parentId":19,"tags":{"page":"/api/context/ssh"},"startTime":1781521347984,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":691999,"timestamp":41963794101,"id":47,"parentId":29,"tags":{},"startTime":1781521347993,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":700428,"timestamp":41963785731,"id":29,"parentId":19,"tags":{"page":"/api/recents"},"startTime":1781521347985,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":692457,"timestamp":41963794479,"id":49,"parentId":31,"tags":{},"startTime":1781521347994,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":700813,"timestamp":41963786166,"id":31,"parentId":19,"tags":{"page":"/api/sessions/input"},"startTime":1781521347986,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":689350,"timestamp":41963798003,"id":56,"parentId":38,"tags":{},"startTime":1781521347997,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":699597,"timestamp":41963787787,"id":38,"parentId":19,"tags":{"page":"/"},"startTime":1781521347987,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":694742,"timestamp":41963793524,"id":42,"parentId":24,"tags":{},"startTime":1781521347993,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":703646,"timestamp":41963784652,"id":24,"parentId":19,"tags":{"page":"/api/context/claude"},"startTime":1781521347984,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":694919,"timestamp":41963793448,"id":41,"parentId":23,"tags":{},"startTime":1781521347993,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":703986,"timestamp":41963784393,"id":23,"parentId":19,"tags":{"page":"/api/context/aider"},"startTime":1781521347984,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":696476,"timestamp":41963794722,"id":53,"parentId":35,"tags":{},"startTime":1781521347994,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":704244,"timestamp":41963786990,"id":35,"parentId":19,"tags":{"page":"/api/sessions/start"},"startTime":1781521347986,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":698931,"timestamp":41963794343,"id":48,"parentId":30,"tags":{},"startTime":1781521347994,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":707370,"timestamp":41963785945,"id":30,"parentId":19,"tags":{"page":"/api/sessions/inject"},"startTime":1781521347985,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":700548,"timestamp":41963794605,"id":51,"parentId":33,"tags":{},"startTime":1781521347994,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":708657,"timestamp":41963786531,"id":33,"parentId":19,"tags":{"page":"/api/sessions"},"startTime":1781521347986,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":700707,"timestamp":41963794802,"id":55,"parentId":37,"tags":{},"startTime":1781521347994,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":707939,"timestamp":41963787606,"id":37,"parentId":19,"tags":{"page":"/api/sessions/stop"},"startTime":1781521347987,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":708869,"timestamp":41963794758,"id":54,"parentId":36,"tags":{},"startTime":1781521347994,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":716280,"timestamp":41963787386,"id":36,"parentId":19,"tags":{"page":"/api/sessions/stats"},"startTime":1781521347987,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":712721,"timestamp":41963794673,"id":52,"parentId":34,"tags":{},"startTime":1781521347994,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":720721,"timestamp":41963786714,"id":34,"parentId":19,"tags":{"page":"/api/sessions/scope"},"startTime":1781521347986,"traceId":"ed5f6425c49aa8c3"},{"name":"is-page-static","duration":713183,"timestamp":41963794550,"id":50,"parentId":32,"tags":{},"startTime":1781521347994,"traceId":"ed5f6425c49aa8c3"},{"name":"check-page","duration":721402,"timestamp":41963786354,"id":32,"parentId":19,"tags":{"page":"/api/sessions/launch"},"startTime":1781521347986,"traceId":"ed5f6425c49aa8c3"},{"name":"static-check","duration":727416,"timestamp":41963780366,"id":19,"parentId":1,"tags":{},"startTime":1781521347980,"traceId":"ed5f6425c49aa8c3"},{"name":"write-routes-manifest","duration":1011,"timestamp":41964508971,"id":58,"parentId":1,"tags":{},"startTime":1781521348708,"traceId":"ed5f6425c49aa8c3"},{"name":"load-dotenv","duration":45,"timestamp":41964530870,"id":61,"parentId":60,"tags":{},"startTime":1781521348730,"traceId":"ed5f6425c49aa8c3"},{"name":"run-export-path-map","duration":531,"timestamp":41964536764,"id":62,"parentId":60,"tags":{},"startTime":1781521348736,"traceId":"ed5f6425c49aa8c3"},{"name":"next-export","duration":637497,"timestamp":41964529306,"id":60,"parentId":1,"tags":{},"startTime":1781521348729,"traceId":"ed5f6425c49aa8c3"},{"name":"move-exported-app-not-found-","duration":3476,"timestamp":41965168474,"id":63,"parentId":59,"tags":{},"startTime":1781521349368,"traceId":"ed5f6425c49aa8c3"},{"name":"move-exported-app-global-error-","duration":2075,"timestamp":41965172108,"id":64,"parentId":59,"tags":{},"startTime":1781521349372,"traceId":"ed5f6425c49aa8c3"},{"name":"static-generation","duration":663703,"timestamp":41964514721,"id":59,"parentId":1,"tags":{},"startTime":1781521348714,"traceId":"ed5f6425c49aa8c3"},{"name":"write-routes-manifest","duration":1151,"timestamp":41965178561,"id":65,"parentId":1,"tags":{},"startTime":1781521349378,"traceId":"ed5f6425c49aa8c3"},{"name":"print-tree-view","duration":4735,"timestamp":41965197347,"id":66,"parentId":1,"tags":{},"startTime":1781521349397,"traceId":"ed5f6425c49aa8c3"},{"name":"write-route-bundle-stats","duration":11187,"timestamp":41965202119,"id":67,"parentId":1,"tags":{},"startTime":1781521349402,"traceId":"ed5f6425c49aa8c3"},{"name":"telemetry-flush","duration":166644,"timestamp":41965213339,"id":68,"parentId":1,"tags":{},"startTime":1781521349413,"traceId":"ed5f6425c49aa8c3"},{"name":"next-build","duration":8232285,"timestamp":41957147721,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1781521341347,"traceId":"ed5f6425c49aa8c3"}]
|
|
1
|
+
[{"name":"generate-buildid","duration":204,"timestamp":101660272230,"id":4,"parentId":1,"tags":{},"startTime":1781581043065,"traceId":"b5d2378e0f84a25f"},{"name":"load-custom-routes","duration":333,"timestamp":101660272541,"id":5,"parentId":1,"tags":{},"startTime":1781581043066,"traceId":"b5d2378e0f84a25f"},{"name":"create-dist-dir","duration":693,"timestamp":101660272905,"id":6,"parentId":1,"tags":{},"startTime":1781581043066,"traceId":"b5d2378e0f84a25f"},{"name":"clean","duration":490,"timestamp":101660274388,"id":7,"parentId":1,"tags":{},"startTime":1781581043068,"traceId":"b5d2378e0f84a25f"},{"name":"discover-routes","duration":5931,"timestamp":101660298062,"id":8,"parentId":1,"tags":{},"startTime":1781581043091,"traceId":"b5d2378e0f84a25f"},{"name":"create-root-mapping","duration":56,"timestamp":101660304035,"id":9,"parentId":1,"tags":{},"startTime":1781581043097,"traceId":"b5d2378e0f84a25f"},{"name":"generate-route-types","duration":17144,"timestamp":101660305386,"id":10,"parentId":1,"tags":{},"startTime":1781581043099,"traceId":"b5d2378e0f84a25f"},{"name":"public-dir-conflict-check","duration":85,"timestamp":101660322657,"id":11,"parentId":1,"tags":{},"startTime":1781581043116,"traceId":"b5d2378e0f84a25f"},{"name":"generate-routes-manifest","duration":2263,"timestamp":101660322837,"id":12,"parentId":1,"tags":{},"startTime":1781581043116,"traceId":"b5d2378e0f84a25f"},{"name":"run-turbopack","duration":2708649,"timestamp":101660333048,"id":14,"parentId":1,"tags":{},"startTime":1781581043126,"traceId":"b5d2378e0f84a25f"},{"name":"turbopack-build-events","duration":72,"timestamp":101660716387,"id":15,"parentId":1,"tags":{},"startTime":1781581043510,"traceId":"b5d2378e0f84a25f"},{"name":"run-typescript","duration":4272171,"timestamp":101663053353,"id":16,"parentId":1,"tags":{},"startTime":1781581045847,"traceId":"b5d2378e0f84a25f"},{"name":"generate-required-server-files","duration":1353,"timestamp":101667326493,"id":18,"parentId":1,"tags":{},"startTime":1781581050120,"traceId":"b5d2378e0f84a25f"},{"name":"check-static-error-page","duration":8199,"timestamp":101667477416,"id":20,"parentId":19,"tags":{},"startTime":1781581050271,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":577192,"timestamp":101667491407,"id":44,"parentId":22,"tags":{},"startTime":1781581050285,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":588154,"timestamp":101667480566,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1781581050274,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":725042,"timestamp":101667491506,"id":46,"parentId":24,"tags":{},"startTime":1781581050285,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":735413,"timestamp":101667481219,"id":24,"parentId":19,"tags":{"page":"/api/context/claude"},"startTime":1781581050274,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":730452,"timestamp":101667492185,"id":52,"parentId":30,"tags":{},"startTime":1781581050285,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":740086,"timestamp":101667482605,"id":30,"parentId":19,"tags":{"page":"/api/sessions/inject"},"startTime":1781581050276,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":739771,"timestamp":101667491465,"id":45,"parentId":23,"tags":{},"startTime":1781581050285,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":750332,"timestamp":101667480958,"id":23,"parentId":19,"tags":{"page":"/api/context/aider"},"startTime":1781581050274,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":743917,"timestamp":101667491746,"id":49,"parentId":27,"tags":{},"startTime":1781581050285,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":753848,"timestamp":101667481872,"id":27,"parentId":19,"tags":{"page":"/api/files"},"startTime":1781581050275,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":744513,"timestamp":101667491549,"id":47,"parentId":25,"tags":{},"startTime":1781581050285,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":754621,"timestamp":101667481479,"id":25,"parentId":19,"tags":{"page":"/api/context"},"startTime":1781581050275,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":746839,"timestamp":101667491592,"id":48,"parentId":26,"tags":{},"startTime":1781581050285,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":756803,"timestamp":101667481679,"id":26,"parentId":19,"tags":{"page":"/api/context/ssh"},"startTime":1781581050275,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":749844,"timestamp":101667491980,"id":51,"parentId":29,"tags":{},"startTime":1781581050285,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":759478,"timestamp":101667482394,"id":29,"parentId":19,"tags":{"page":"/api/recents"},"startTime":1781581050276,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":751643,"timestamp":101667492854,"id":61,"parentId":39,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":759756,"timestamp":101667484801,"id":39,"parentId":19,"tags":{"page":"/api/sql/mcp"},"startTime":1781581050278,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":757563,"timestamp":101667492929,"id":63,"parentId":41,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":765388,"timestamp":101667485153,"id":41,"parentId":19,"tags":{"page":"/api/sql/schema"},"startTime":1781581050278,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":759559,"timestamp":101667492309,"id":53,"parentId":31,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":769090,"timestamp":101667482828,"id":31,"parentId":19,"tags":{"page":"/api/sessions/input"},"startTime":1781581050276,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":759577,"timestamp":101667492725,"id":58,"parentId":36,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":768156,"timestamp":101667484180,"id":36,"parentId":19,"tags":{"page":"/api/sessions/stats"},"startTime":1781581050277,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":761732,"timestamp":101667496680,"id":64,"parentId":42,"tags":{},"startTime":1781581050290,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":773136,"timestamp":101667485318,"id":42,"parentId":19,"tags":{"page":"/"},"startTime":1781581050279,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":768129,"timestamp":101667492817,"id":60,"parentId":38,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":776370,"timestamp":101667484630,"id":38,"parentId":19,"tags":{"page":"/api/sql/connections"},"startTime":1781581050278,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":768480,"timestamp":101667492650,"id":57,"parentId":35,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":777397,"timestamp":101667483762,"id":35,"parentId":19,"tags":{"page":"/api/sessions/start"},"startTime":1781581050277,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":774396,"timestamp":101667492893,"id":62,"parentId":40,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":782368,"timestamp":101667484975,"id":40,"parentId":19,"tags":{"page":"/api/sql/query"},"startTime":1781581050278,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":776379,"timestamp":101667491203,"id":43,"parentId":21,"tags":{},"startTime":1781581050284,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":788652,"timestamp":101667478968,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1781581050272,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":776633,"timestamp":101667492378,"id":54,"parentId":32,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":786037,"timestamp":101667483039,"id":32,"parentId":19,"tags":{"page":"/api/sessions/launch"},"startTime":1781581050276,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":776733,"timestamp":101667492433,"id":55,"parentId":33,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":785951,"timestamp":101667483232,"id":33,"parentId":19,"tags":{"page":"/api/sessions"},"startTime":1781581050276,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":778800,"timestamp":101667492491,"id":56,"parentId":34,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":787860,"timestamp":101667483463,"id":34,"parentId":19,"tags":{"page":"/api/sessions/scope"},"startTime":1781581050277,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":779512,"timestamp":101667491871,"id":50,"parentId":28,"tags":{},"startTime":1781581050285,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":789234,"timestamp":101667482161,"id":28,"parentId":19,"tags":{"page":"/api/git"},"startTime":1781581050275,"traceId":"b5d2378e0f84a25f"},{"name":"is-page-static","duration":784808,"timestamp":101667492773,"id":59,"parentId":37,"tags":{},"startTime":1781581050286,"traceId":"b5d2378e0f84a25f"},{"name":"check-page","duration":793207,"timestamp":101667484410,"id":37,"parentId":19,"tags":{"page":"/api/sessions/stop"},"startTime":1781581050278,"traceId":"b5d2378e0f84a25f"},{"name":"static-check","duration":800781,"timestamp":101667476861,"id":19,"parentId":1,"tags":{},"startTime":1781581050270,"traceId":"b5d2378e0f84a25f"},{"name":"write-routes-manifest","duration":904,"timestamp":101668278924,"id":66,"parentId":1,"tags":{},"startTime":1781581051072,"traceId":"b5d2378e0f84a25f"},{"name":"load-dotenv","duration":35,"timestamp":101668297159,"id":69,"parentId":68,"tags":{},"startTime":1781581051090,"traceId":"b5d2378e0f84a25f"},{"name":"run-export-path-map","duration":361,"timestamp":101668301958,"id":70,"parentId":68,"tags":{},"startTime":1781581051095,"traceId":"b5d2378e0f84a25f"},{"name":"next-export","duration":642431,"timestamp":101668296308,"id":68,"parentId":1,"tags":{},"startTime":1781581051090,"traceId":"b5d2378e0f84a25f"},{"name":"move-exported-app-not-found-","duration":1969,"timestamp":101668940336,"id":71,"parentId":67,"tags":{},"startTime":1781581051734,"traceId":"b5d2378e0f84a25f"},{"name":"move-exported-app-global-error-","duration":1438,"timestamp":101668942416,"id":72,"parentId":67,"tags":{},"startTime":1781581051736,"traceId":"b5d2378e0f84a25f"},{"name":"static-generation","duration":661424,"timestamp":101668285427,"id":67,"parentId":1,"tags":{},"startTime":1781581051079,"traceId":"b5d2378e0f84a25f"},{"name":"write-routes-manifest","duration":847,"timestamp":101668946956,"id":73,"parentId":1,"tags":{},"startTime":1781581051740,"traceId":"b5d2378e0f84a25f"},{"name":"print-tree-view","duration":4358,"timestamp":101668963737,"id":74,"parentId":1,"tags":{},"startTime":1781581051757,"traceId":"b5d2378e0f84a25f"},{"name":"write-route-bundle-stats","duration":11186,"timestamp":101668968129,"id":75,"parentId":1,"tags":{},"startTime":1781581051761,"traceId":"b5d2378e0f84a25f"},{"name":"telemetry-flush","duration":196909,"timestamp":101668979352,"id":76,"parentId":1,"tags":{},"startTime":1781581051773,"traceId":"b5d2378e0f84a25f"},{"name":"next-build","duration":8952303,"timestamp":101660223981,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1781581043017,"traceId":"b5d2378e0f84a25f"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":2708649,"timestamp":101660333048,"id":14,"parentId":1,"tags":{},"startTime":1781581043126,"traceId":"b5d2378e0f84a25f"},{"name":"turbopack-build-events","duration":72,"timestamp":101660716387,"id":15,"parentId":1,"tags":{},"startTime":1781581043510,"traceId":"b5d2378e0f84a25f"},{"name":"run-typescript","duration":4272171,"timestamp":101663053353,"id":16,"parentId":1,"tags":{},"startTime":1781581045847,"traceId":"b5d2378e0f84a25f"},{"name":"static-check","duration":800781,"timestamp":101667476861,"id":19,"parentId":1,"tags":{},"startTime":1781581050270,"traceId":"b5d2378e0f84a25f"},{"name":"static-generation","duration":661424,"timestamp":101668285427,"id":67,"parentId":1,"tags":{},"startTime":1781581051079,"traceId":"b5d2378e0f84a25f"},{"name":"telemetry-flush","duration":196909,"timestamp":101668979352,"id":76,"parentId":1,"tags":{},"startTime":1781581051773,"traceId":"b5d2378e0f84a25f"},{"name":"next-build","duration":8952303,"timestamp":101660223981,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1781581043017,"traceId":"b5d2378e0f84a25f"}]
|
package/.next/types/routes.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Do not edit this file manually
|
|
3
3
|
|
|
4
4
|
type AppRoutes = "/"
|
|
5
|
-
type AppRouteHandlerRoutes = "/api/context" | "/api/context/aider" | "/api/context/claude" | "/api/context/ssh" | "/api/files" | "/api/git" | "/api/recents" | "/api/sessions" | "/api/sessions/inject" | "/api/sessions/input" | "/api/sessions/launch" | "/api/sessions/scope" | "/api/sessions/start" | "/api/sessions/stats" | "/api/sessions/stop"
|
|
5
|
+
type AppRouteHandlerRoutes = "/api/context" | "/api/context/aider" | "/api/context/claude" | "/api/context/ssh" | "/api/files" | "/api/git" | "/api/recents" | "/api/sessions" | "/api/sessions/inject" | "/api/sessions/input" | "/api/sessions/launch" | "/api/sessions/scope" | "/api/sessions/start" | "/api/sessions/stats" | "/api/sessions/stop" | "/api/sql/connections" | "/api/sql/mcp" | "/api/sql/query" | "/api/sql/schema"
|
|
6
6
|
type PageRoutes = never
|
|
7
7
|
type LayoutRoutes = "/"
|
|
8
8
|
type RedirectRoutes = never
|
|
@@ -27,6 +27,10 @@ interface ParamMap {
|
|
|
27
27
|
"/api/sessions/start": {}
|
|
28
28
|
"/api/sessions/stats": {}
|
|
29
29
|
"/api/sessions/stop": {}
|
|
30
|
+
"/api/sql/connections": {}
|
|
31
|
+
"/api/sql/mcp": {}
|
|
32
|
+
"/api/sql/query": {}
|
|
33
|
+
"/api/sql/schema": {}
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
|
package/.next/types/validator.ts
CHANGED
|
@@ -191,6 +191,42 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
191
191
|
type __Unused = __Check
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
+
// Validate ../../src/app/api/sql/connections/route.ts
|
|
195
|
+
{
|
|
196
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sql/connections">> = Specific
|
|
197
|
+
const handler = {} as typeof import("../../src/app/api/sql/connections/route.js")
|
|
198
|
+
type __Check = __IsExpected<typeof handler>
|
|
199
|
+
// @ts-ignore
|
|
200
|
+
type __Unused = __Check
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Validate ../../src/app/api/sql/mcp/route.ts
|
|
204
|
+
{
|
|
205
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sql/mcp">> = Specific
|
|
206
|
+
const handler = {} as typeof import("../../src/app/api/sql/mcp/route.js")
|
|
207
|
+
type __Check = __IsExpected<typeof handler>
|
|
208
|
+
// @ts-ignore
|
|
209
|
+
type __Unused = __Check
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Validate ../../src/app/api/sql/query/route.ts
|
|
213
|
+
{
|
|
214
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sql/query">> = Specific
|
|
215
|
+
const handler = {} as typeof import("../../src/app/api/sql/query/route.js")
|
|
216
|
+
type __Check = __IsExpected<typeof handler>
|
|
217
|
+
// @ts-ignore
|
|
218
|
+
type __Unused = __Check
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Validate ../../src/app/api/sql/schema/route.ts
|
|
222
|
+
{
|
|
223
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/sql/schema">> = Specific
|
|
224
|
+
const handler = {} as typeof import("../../src/app/api/sql/schema/route.js")
|
|
225
|
+
type __Check = __IsExpected<typeof handler>
|
|
226
|
+
// @ts-ignore
|
|
227
|
+
type __Unused = __Check
|
|
228
|
+
}
|
|
229
|
+
|
|
194
230
|
|
|
195
231
|
|
|
196
232
|
|