neural-loom 0.2.60 → 0.2.61
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 +3 -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 +2 -2
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +18 -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/configs/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/configs/route/build-manifest.json +9 -0
- package/.next/server/app/api/configs/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/configs/route.js +6 -0
- package/.next/server/app/api/configs/route.js.map +5 -0
- package/.next/server/app/api/configs/route.js.nft.json +1 -0
- package/.next/server/app/api/configs/route_client-reference-manifest.js +3 -0
- 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 +2 -2
- package/.next/server/app/api/sessions/inject/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/input/route.js +2 -2
- package/.next/server/app/api/sessions/input/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/launch/route.js +2 -2
- package/.next/server/app/api/sessions/launch/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +2 -2
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/scope/route.js +2 -2
- package/.next/server/app/api/sessions/scope/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/start/route.js +2 -2
- package/.next/server/app/api/sessions/start/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/stats/route.js +2 -2
- package/.next/server/app/api/sessions/stats/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/stop/route.js +2 -2
- package/.next/server/app/api/sessions/stop/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/upload-image/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/sessions/upload-image/route/build-manifest.json +9 -0
- package/.next/server/app/api/sessions/upload-image/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/sessions/upload-image/route.js +7 -0
- package/.next/server/app/api/sessions/upload-image/route.js.map +5 -0
- package/.next/server/app/api/sessions/upload-image/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/upload-image/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/sql/connections/route.js.nft.json +1 -1
- package/.next/server/app/api/sql/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/sql/query/route.js.nft.json +1 -1
- package/.next/server/app/api/sql/schema/route.js.nft.json +1 -1
- package/.next/server/app/api/telemetry/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/telemetry/route/build-manifest.json +9 -0
- package/.next/server/app/api/telemetry/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/telemetry/route.js +6 -0
- package/.next/server/app/api/telemetry/route.js.map +5 -0
- package/.next/server/app/api/telemetry/route.js.nft.json +1 -0
- package/.next/server/app/api/telemetry/route_client-reference-manifest.js +3 -0
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- 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 +2 -2
- package/.next/server/app/page/react-loadable-manifest.json +5 -5
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +3 -0
- package/.next/server/chunks/[root-of-the-server]__0.ptwor._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0.ptwor._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__00-sqou._.js +15 -0
- package/.next/server/chunks/{[root-of-the-server]__0thsozo._.js.map → [root-of-the-server]__00-sqou._.js.map} +1 -1
- package/.next/server/chunks/[root-of-the-server]__00l5btc._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__00l5btc._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__01621nz._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__01621nz._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__06men8g._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__06men8g._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__08r0s-s._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__08r0s-s._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__097vtn1._.js +15 -0
- package/.next/server/chunks/{[root-of-the-server]__0em6a~~._.js.map → [root-of-the-server]__097vtn1._.js.map} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0_v2.a8._.js +15 -0
- package/.next/server/chunks/[root-of-the-server]__0_v2.a8._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0co.g5k._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0co.g5k._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0e03ite._.js +15 -0
- package/.next/server/chunks/{[root-of-the-server]__10wwca8._.js.map → [root-of-the-server]__0e03ite._.js.map} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0fxtx7z._.js +15 -0
- package/.next/server/chunks/[root-of-the-server]__0fxtx7z._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0h.~hv6._.js +15 -0
- package/.next/server/chunks/{[root-of-the-server]__0s0is_9._.js.map → [root-of-the-server]__0h.~hv6._.js.map} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0li1h1u._.js +33 -0
- package/.next/server/chunks/[root-of-the-server]__0li1h1u._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0s1axek._.js +15 -0
- package/.next/server/chunks/{[root-of-the-server]__0i~01cv._.js.map → [root-of-the-server]__0s1axek._.js.map} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0tq0maq._.js +15 -0
- package/.next/server/chunks/{[root-of-the-server]__0_o7_jj._.js.map → [root-of-the-server]__0tq0maq._.js.map} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0viil6b._.js +15 -0
- package/.next/server/chunks/{[root-of-the-server]__07zx04e._.js.map → [root-of-the-server]__0viil6b._.js.map} +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_configs_route_actions_087k_4j.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_configs_route_actions_087k_4j.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_sessions_upload-image_route_actions_09tfn3a.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_sessions_upload-image_route_actions_09tfn3a.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_telemetry_route_actions_0.yo5qr.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_telemetry_route_actions_0.yo5qr.js.map +1 -0
- package/.next/server/chunks/ssr/_0t7oqy6._.js +1 -1
- package/.next/server/chunks/ssr/_0t7oqy6._.js.map +1 -1
- 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/07lj0adi0kt5p.css +1 -0
- package/.next/static/chunks/0xhaghhxllgzs.js +1 -0
- package/.next/static/chunks/128c-kly7grxg.js +4 -0
- package/.next/static/chunks/{0y~7jjqbr14.5.js → 15_baizhaiq8c.js} +10 -7
- package/.next/static/chunks/15sigqif_v.mu.js +1 -0
- package/.next/static/chunks/17ud2wmsyqknc.js +11 -0
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/.next/types/routes.d.ts +4 -1
- package/.next/types/validator.ts +27 -0
- package/bin/cli.js +4 -4
- package/bin/fix-pwa-ubuntu.sh +50 -0
- package/package.json +1 -1
- package/src/app/api/configs/route.ts +40 -0
- package/src/app/api/sessions/launch/route.ts +3 -3
- package/src/app/api/sessions/route.ts +2 -2
- package/src/app/api/sessions/start/route.ts +2 -2
- package/src/app/api/sessions/upload-image/route.ts +57 -0
- package/src/app/api/sql/connections/route.ts +9 -6
- package/src/app/api/sql/mcp/route.ts +3 -2
- package/src/app/api/sql/query/route.ts +3 -2
- package/src/app/api/sql/schema/route.ts +3 -2
- package/src/app/api/telemetry/route.ts +18 -0
- package/src/app/components/AiderWizard.tsx +46 -2
- package/src/app/components/ClaudeWizard.tsx +30 -0
- package/src/app/components/IdeLayout.tsx +566 -70
- package/src/app/components/TerminalConsole.tsx +54 -0
- package/src/app/page.module.css +8 -2
- package/src/app/page.tsx +534 -401
- package/src/lib/agents/AgentRunner.ts +88 -5
- package/src/lib/agents/AiderRunner.ts +4 -18
- package/src/lib/agents/ClaudeRunner.ts +16 -26
- package/src/lib/agents/DockerRunner.ts +16 -26
- package/src/lib/agents/MockRunner.ts +4 -16
- package/src/lib/agents/SSHRunner.ts +16 -26
- package/src/lib/agents/SessionConfig.ts +79 -0
- package/src/lib/agents/SessionManager.ts +16 -16
- package/src/lib/agents/SessionPersister.ts +13 -9
- package/src/lib/agents/ShellRunner.ts +14 -21
- package/src/lib/agents/WebSocketServer.ts +2 -2
- package/.next/server/chunks/[root-of-the-server]__01.zh3b._.js +0 -15
- package/.next/server/chunks/[root-of-the-server]__01.zh3b._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__07zx04e._.js +0 -15
- package/.next/server/chunks/[root-of-the-server]__0_o7_jj._.js +0 -15
- package/.next/server/chunks/[root-of-the-server]__0d0pykb._.js +0 -33
- package/.next/server/chunks/[root-of-the-server]__0d0pykb._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0em6a~~._.js +0 -15
- package/.next/server/chunks/[root-of-the-server]__0i~01cv._.js +0 -15
- package/.next/server/chunks/[root-of-the-server]__0s0is_9._.js +0 -15
- package/.next/server/chunks/[root-of-the-server]__0thsozo._.js +0 -15
- package/.next/server/chunks/[root-of-the-server]__10wwca8._.js +0 -15
- package/.next/static/chunks/076_b43_kienv.js +0 -1
- package/.next/static/chunks/07r_au7dcyu8l.js +0 -11
- package/.next/static/chunks/0hoyc~vbuqe0t.css +0 -1
- package/.next/static/chunks/0k2co3uj4w81_.js +0 -1
- package/.next/static/chunks/0sqeixl35qoac.js +0 -1
- /package/.next/static/{PdRX_M_W5hqhNmHxYt-oH → b48zoI5QUg8m7v1asTiCM}/_buildManifest.js +0 -0
- /package/.next/static/{PdRX_M_W5hqhNmHxYt-oH → b48zoI5QUg8m7v1asTiCM}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{PdRX_M_W5hqhNmHxYt-oH → b48zoI5QUg8m7v1asTiCM}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/.next/server/chunks/_next-internal_server_app_api_telemetry_route_actions_0.yo5qr.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -8,6 +8,6 @@ ${a.message}`)}},Y=async()=>{if(u.trim()&&i){x(!0),z(null),B(null);try{let b=awa
|
|
|
8
8
|
background-color: rgba(255, 255, 255, 0.03) !important;
|
|
9
9
|
outline: 1px dashed rgba(255, 255, 255, 0.2);
|
|
10
10
|
}
|
|
11
|
-
`,document.head.appendChild(a)}let i=a=>"mock"===a?"🧪":a.includes("-docker")?"🐳":a.includes("-ssh")?"🌐":"💻",j=(0,d.default)(async()=>{},{loadableGenerated:{modules:[37314]},ssr:!1,loading:()=>(0,b.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,b.jsx)("span",{children:"Initializing terminal emulator..."})})}),k=(0,d.default)(async()=>{},{loadableGenerated:{modules:[1985]},ssr:!1,loading:()=>(0,b.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,b.jsx)("span",{style:{color:"var(--muted)"},children:"Initializing prompt editor..."})})}),l=(0,d.default)(async()=>{},{loadableGenerated:{modules:[99026]},ssr:!1}),m=(0,d.default)(async()=>{},{loadableGenerated:{modules:[9949]},ssr:!1}),n=(0,d.default)(async()=>{},{loadableGenerated:{modules:[20032]},ssr:!1}),o=(0,d.default)(async()=>{},{loadableGenerated:{modules:[97722]},ssr:!1});a.s(["default",0,function(){let[a,d]=(0,c.useState)([]),[f,h]=(0,c.useState)(null),[p,q]=(0,c.useState)(!1),[r,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(!1),[z,A]=(0,c.useState)(!1),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(3001),[F,G]=(0,c.useState)("0.2.19"),[H,I]=(0,c.useState)(null),J=a.filter(a=>"workspace-terminal"!==a.id),K=a.find(a=>a.id===f),L=J.some(a=>("claude-docker"===a.type||"aider-docker"===a.type)&&"running"===a.status),M=J.some(a=>"claude-ssh"===a.type&&"running"===a.status),N=async()=>{try{let a=await fetch("/api/sessions"),b=await a.json();b.sessions&&d(b.sessions),b.wsPort&&E(b.wsPort),b.originalCwd&&C(b.originalCwd),b.version&&G(b.version)}catch(a){console.error("Failed to fetch sessions:",a)}},O=async()=>{try{let a=await fetch("/api/recents");if(a.ok){let b=await a.json();b.success&&b.recents&&b.recents.lastSession&&I(b.recents.lastSession)}}catch(a){console.error("Failed to fetch recents:",a)}};(0,c.useEffect)(()=>{(async()=>{await N(),await O()})(),"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").then(a=>console.log("Service Worker registered:",a.scope)).catch(a=>console.error("Service Worker registration failed:",a));let a=setInterval(N,4e3);return()=>clearInterval(a)},[]);let P=async(a,b,c,d)=>{q(!0);try{let e=b;e||("claude"===a?e="Claude Local":"claude-docker"===a?e="Claude Docker":"claude-ssh"===a?e="Claude SSH":"aider"===a?e="Aider Local":"aider-docker"===a?e="Aider Docker":"mock"===a&&(e="Mock Session"));let f={type:a,name:e,workspaceRoot:c,scopedDirs:d};if(("aider"===a||"aider-docker"===a)&&!c)try{let a=await fetch("/api/context/aider");if(a.ok){let b=await a.json();b.success&&b.config&&(f.workspaceRoot=b.config.workspaceRoot,f.scopedDirs=b.config.scopedDirs)}}catch(a){console.error("Failed to load aider configuration before launch:",a)}let g=await fetch("/api/sessions/launch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)}),i=await g.json();i.success&&(await N(),h(i.session.id),I({type:a,name:e,workspaceRoot:c,scopedDirs:d}))}catch(a){console.error("Failed to launch session:",a)}finally{q(!1)}},Q=async(a,b=!1)=>{try{let c=await fetch("/api/sessions/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,delete:b})});(await c.json()).success&&(b&&f===a&&h(null),await N())}catch(a){console.error("Failed to stop session:",a)}};return(0,b.jsxs)("div",{className:`${e.default.container} ${K?e.default.containerActive:""}`,children:[(0,b.jsxs)("header",{className:e.default.header,children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1.5rem"},children:[(0,b.jsx)("img",{src:"/logo.png",alt:"NeuralLoom Logo",style:{width:"160px",height:"160px",borderRadius:"16px",objectFit:"contain"}}),(0,b.jsxs)("div",{className:e.default.logoArea,children:[(0,b.jsx)("h1",{className:e.default.title,style:{margin:0,lineHeight:1.1},children:"NeuralLoom"}),(0,b.jsx)("span",{className:e.default.subtitle,children:"Unified AI Orchestrator & Context Bridge"})]})]}),(0,b.jsxs)("div",{className:e.default.statusIndicator,children:[(0,b.jsx)("span",{className:e.default.pulseDot}),(0,b.jsx)("span",{children:"Orchestrator Online"})]})]}),K?(0,b.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:(0,b.jsx)(o,{sessionId:K.id,workspaceRoot:K.workspaceRoot||"",scopedDirs:K.scopedDirs||[],onClose:()=>h(null),sessions:a,onSwitchSession:a=>h(a),onRefreshSessions:N,wsPort:D})}):(0,b.jsxs)("div",{className:e.default.dashboardGrid,children:[(0,b.jsxs)("main",{className:e.default.mainPanel,children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Active AI Agents"}),0===J.length?(0,b.jsxs)("div",{className:"card",style:{padding:"3rem 1.5rem",textAlign:"center"},children:[(0,b.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,b.jsxs)("div",{style:{display:"flex",gap:"1rem",justifyContent:"center",flexWrap:"wrap"},children:[H&&(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>{P(H.type,H.name,H.workspaceRoot,H.scopedDirs)},disabled:p,style:{background:"linear-gradient(135deg, hsl(38, 92%, 50%) 0%, hsl(0, 84%, 60%) 100%)",border:"none",maxWidth:"200px"},title:`Re-launch: ${H.name||H.type}`,children:"⚡ Re-launch Last Session"}),(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>{A(!1),y(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",border:"none",maxWidth:"200px"},children:"Launch Claude PTY"}),(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>{w(!1),u(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",border:"none",maxWidth:"200px"},children:"Launch Aider PTY"})]}),(0,b.jsxs)("div",{style:{marginTop:"1.5rem",fontSize:"0.75rem",color:"var(--muted)"},children:["Want to verify layout features first?"," ",(0,b.jsx)("span",{onClick:()=>P("mock"),style:{color:"var(--primary)",cursor:"pointer",textDecoration:"underline"},children:"Start simulated sandbox session"})]})]}):(0,b.jsx)("div",{className:e.default.agentGrid,children:J.map(a=>(0,b.jsxs)("div",{className:`${e.default.agentCard} card ${f===a.id?e.default.activeBorder:""}`,children:[(0,b.jsxs)("div",{className:e.default.agentHeader,children:[(0,b.jsx)("span",{className:e.default.agentName,children:a.name}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.35rem",alignItems:"center"},children:["running"===a.status&&a.agentState&&(0,b.jsxs)("span",{className:`${e.default.agentStateBadge} ${e.default["state-"+a.agentState]}`,children:["thinking"===a.agentState&&`${i(a.type)} 💭 thinking`,"needs-input"===a.agentState&&`${i(a.type)} ⚠️ needs input`,"complete"===a.agentState&&`${i(a.type)} ✅ complete`,"idle"===a.agentState&&`${i(a.type)} 💤 idle`]}),(0,b.jsx)("span",{className:`${e.default.agentBadge} ${"stopped"===a.status?e.default.stoppedBadge:""}`,children:a.status})]})]}),(0,b.jsxs)("div",{className:e.default.cardBody,children:[(0,b.jsxs)("p",{style:{fontSize:"0.825rem",color:"var(--muted)"},children:["ID: ",(0,b.jsx)("code",{style:{fontSize:"0.75rem"},children:a.id.substring(0,8)}),(0,b.jsx)("br",{}),"Type: ","claude"===a.type?"Claude Local PTY":"claude-docker"===a.type?"Claude Docker PTY":"claude-ssh"===a.type?"Claude SSH PTY":"aider"===a.type?"Aider Local PTY":"aider-docker"===a.type?"Aider Docker PTY":"mock"===a.type?"Simulated Mock PTY":"Unknown PTY",(0,b.jsx)("br",{}),"Logs: ",a.logsCount," captured lines"]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"1rem"},children:["running"===a.status?(0,b.jsx)("button",{onClick:()=>Q(a.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,b.jsx)("button",{onClick:()=>Q(a.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,b.jsx)("button",{onClick:()=>h(a.id),style:{flex:2,padding:"0.4rem 0.6rem",borderRadius:"6px",border:"none",backgroundColor:f===a.id?"var(--border-focus)":"var(--primary)",fontSize:"0.75rem",fontWeight:600,color:"#fff"},children:f===a.id?"Connected":"Open Session"})]})]})]},a.id))})]}),f&&"workspace-terminal"!==f&&(0,b.jsxs)("section",{className:"card",style:{display:"flex",flexDirection:"column",border:"1px solid var(--border-focus)"},children:[(0,b.jsxs)("div",{className:e.default.agentHeader,style:{justifyContent:"space-between",background:"rgba(109, 40, 217, 0.08)"},children:[(0,b.jsxs)("span",{style:{fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem"},children:["🖥️ Console Bridge — ",a.find(a=>a.id===f)?.name]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[a.find(a=>a.id===f)?.status==="stopped"&&(0,b.jsx)("button",{onClick:async()=>{try{let a=await fetch("/api/sessions/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f})});if(a.ok)await N();else{let b=await a.json();alert(b.error||"Failed to restart session.")}}catch(a){console.error("Failed to restart session:",a),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,b.jsx)("button",{onClick:()=>h(null),style:{border:"none",background:"none",color:"var(--muted)",cursor:"pointer",fontSize:"0.75rem"},children:"Close Panel ✖"})]})]}),(0,b.jsx)(j,{sessionId:f,wsPort:D})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Workspace Shell Terminal"}),(0,b.jsxs)("div",{className:"card",style:{display:"flex",flexDirection:"column",border:"1px solid var(--border)",padding:0},children:[(0,b.jsxs)("div",{className:e.default.agentHeader,style:{justifyContent:"space-between",background:"rgba(255, 255, 255, 0.02)"},children:[(0,b.jsxs)("span",{style:{fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem",fontSize:"0.85rem"},children:["💻 Local Workspace Shell (CWD: ",B||"root",")"]}),(0,b.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--muted)"},children:"Pre-configured environment"})]}),(0,b.jsx)(j,{sessionId:"workspace-terminal",height:"300px",wsPort:D})]})]}),(0,b.jsxs)("section",{style:{marginTop:"2rem"},children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Shared Context Hub & Slash Commands"}),(0,b.jsxs)("div",{className:e.default.contextList,children:[(0,b.jsxs)("div",{className:`${e.default.contextItem} card`,children:[(0,b.jsxs)("div",{className:e.default.contextMeta,children:[(0,b.jsx)("span",{className:e.default.contextTitle,children:"Staged Context & System Rules (/ccc)"}),(0,b.jsx)("span",{className:e.default.contextDetails,children:"Compiles AGENTS.md guidelines and project files folder hierarchy map."})]}),(0,b.jsx)("button",{onClick:async()=>{f&&await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,command:"/ccc"})})},disabled:!f,style:{padding:"0.4rem 0.8rem",borderRadius:"6px",border:"1px solid var(--primary)",backgroundColor:"transparent",color:"var(--primary)",fontSize:"0.75rem",fontWeight:600,opacity:f?1:.5,cursor:f?"pointer":"not-allowed"},children:"🚀 Mount Context (/ccc)"})]}),(0,b.jsxs)("div",{className:`${e.default.contextItem} card`,children:[(0,b.jsxs)("div",{className:e.default.contextMeta,children:[(0,b.jsx)("span",{className:e.default.contextTitle,children:"Staged Developer Prompt (/ccp)"}),(0,b.jsx)("span",{className:e.default.contextDetails,children:"Executes instructions written in .ai/neural-loom/cprompt.md."})]}),(0,b.jsx)("button",{onClick:async()=>{f&&await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,command:"/ccp"})})},disabled:!f,style:{padding:"0.4rem 0.8rem",borderRadius:"6px",border:"1px solid var(--success)",backgroundColor:"transparent",color:"var(--success)",fontSize:"0.75rem",fontWeight:600,opacity:f?1:.5,cursor:f?"pointer":"not-allowed"},children:"⚡ Trigger Prompt (/ccp)"})]})]}),(0,b.jsx)(k,{})]}),(0,b.jsxs)("section",{style:{marginTop:"2rem"},children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Built-in Database Explorer & SQL Client"}),(0,b.jsx)("div",{className:"card",style:{padding:0,overflow:"hidden",height:"480px",border:"1px solid var(--border)"},children:(0,b.jsx)(g,{workspaceRoot:B||""})})]})]}),(0,b.jsxs)("aside",{className:e.default.sidePanel,children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Execution Environments"}),(0,b.jsxs)("div",{className:e.default.envGrid,children:[(0,b.jsxs)("div",{className:e.default.envRow,children:[(0,b.jsx)("span",{className:e.default.envName,children:"💻 Local host OS"}),(0,b.jsx)("span",{className:e.default.envStatus,style:{color:"var(--success)"},children:"Active"})]}),(0,b.jsxs)("div",{className:e.default.envRow,style:{opacity:L?1:.6},children:[(0,b.jsx)("span",{className:e.default.envName,children:"🐳 Docker Sandbox"}),(0,b.jsx)("span",{className:e.default.envStatus,style:{color:L?"var(--success)":"var(--muted)"},children:L?"Active":"Not Mounted"})]}),(0,b.jsxs)("div",{className:e.default.envRow,style:{opacity:M?1:.6},children:[(0,b.jsx)("span",{className:e.default.envName,children:"🌐 Remote VM (SSH)"}),(0,b.jsx)("span",{className:e.default.envStatus,style:{color:M?"var(--success)":"var(--muted)"},children:M?"Active":"Disconnected"})]})]})]}),(0,b.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:[(0,b.jsxs)("button",{className:e.default.quickLaunchBtn,onClick:()=>{A(!1),y(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",border:"none"},children:[(0,b.jsx)("span",{children:"🤖"}),(0,b.jsx)("span",{children:"Launch Claude PTY"})]}),(0,b.jsxs)("button",{className:e.default.quickLaunchBtn,onClick:()=>{A(!0),y(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(170, 72%, 40%) 0%, hsl(195, 100%, 40%) 100%)",border:"none"},children:[(0,b.jsx)("span",{children:"🐳"}),(0,b.jsx)("span",{children:"Launch Docker PTY"})]}),(0,b.jsxs)("button",{className:e.default.quickLaunchBtn,onClick:()=>s(!0),disabled:p,style:{background:"linear-gradient(135deg, hsl(38, 92%, 50%) 0%, hsl(0, 84%, 60%) 100%)",border:"none"},children:[(0,b.jsx)("span",{children:"🌐"}),(0,b.jsx)("span",{children:"Launch SSH PTY"})]}),(0,b.jsxs)("button",{className:e.default.quickLaunchBtn,onClick:()=>{w(!1),u(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",border:"none"},children:[(0,b.jsx)("span",{children:"🐍"}),(0,b.jsx)("span",{children:"Launch Aider PTY"})]}),(0,b.jsxs)("button",{className:e.default.quickLaunchBtn,onClick:()=>{w(!0),u(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(195, 100%, 40%) 0%, hsl(262, 80%, 55%) 100%)",border:"none"},children:[(0,b.jsx)("span",{children:"🐳"}),(0,b.jsx)("span",{children:"Launch Aider Docker"})]})]}),(0,b.jsxs)("section",{className:"card",style:{padding:"1.5rem",display:"flex",flexDirection:"column",gap:"0.75rem"},children:[(0,b.jsx)("h3",{style:{fontSize:"1rem",fontWeight:700},children:"Quick Actions"}),(0,b.jsxs)("ul",{style:{listStyle:"none",fontSize:"0.875rem",display:"flex",flexDirection:"column",gap:"0.5rem",color:"var(--muted)"},children:[(0,b.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,b.jsx)("span",{children:"Configure global API Keys"}),(0,b.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]}),(0,b.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,b.jsx)("span",{children:"Edit rules templates"}),(0,b.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]}),(0,b.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,b.jsx)("span",{children:"Inspect process locks"}),(0,b.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]})]}),(0,b.jsxs)("div",{style:{marginTop:"1.2rem",textAlign:"center",fontSize:"0.72rem",color:"var(--muted)"},children:["Need to troubleshoot?"," ",(0,b.jsx)("span",{onClick:()=>P("mock"),style:{color:"var(--primary)",cursor:"pointer",textDecoration:"underline"},children:"Launch simulated playground sandbox"})]})]})]})]}),(0,b.jsxs)("footer",{className:e.default.footer,children:[(0,b.jsxs)("span",{children:["NeuralLoom v",F," — Experimental AI Orchestrator Bridge"]}),(0,b.jsxs)("span",{children:["Directory: ",B||"Loading..."]})]}),r&&(0,b.jsx)(l,{onClose:()=>s(!1),onConfirmLaunch:()=>{s(!1),P("claude-ssh")}}),t&&(0,b.jsx)(m,{onClose:()=>u(!1),isDocker:v,onConfirmLaunch:()=>{u(!1),P(v?"aider-docker":"aider")}}),x&&(0,b.jsx)(n,{onClose:()=>y(!1),isDocker:z,onConfirmLaunch:(a,b,c)=>{y(!1),P(z?"claude-docker":"claude",a,b,c)}})]})}],40777)}];
|
|
11
|
+
`,document.head.appendChild(a)}let i=a=>"mock"===a?"🧪":a.includes("-docker")?"🐳":a.includes("-ssh")?"🌐":"💻",j=(0,d.default)(async()=>{},{loadableGenerated:{modules:[37314]},ssr:!1,loading:()=>(0,b.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,b.jsx)("span",{children:"Initializing terminal emulator..."})})}),k=(0,d.default)(async()=>{},{loadableGenerated:{modules:[1985]},ssr:!1,loading:()=>(0,b.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,b.jsx)("span",{style:{color:"var(--muted)"},children:"Initializing prompt editor..."})})}),l=(0,d.default)(async()=>{},{loadableGenerated:{modules:[99026]},ssr:!1}),m=(0,d.default)(async()=>{},{loadableGenerated:{modules:[9949]},ssr:!1}),n=(0,d.default)(async()=>{},{loadableGenerated:{modules:[20032]},ssr:!1}),o=(0,d.default)(async()=>{},{loadableGenerated:{modules:[97722]},ssr:!1});a.s(["default",0,function(){let[a,d]=(0,c.useState)([]),[f,h]=(0,c.useState)(null),[p,q]=(0,c.useState)(!1),[r,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(!1),[z,A]=(0,c.useState)(!1),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(9601),[F,G]=(0,c.useState)("0.2.19"),[H,I]=(0,c.useState)(null),[J,K]=(0,c.useState)([]),L=a.filter(a=>"workspace-terminal"!==a.id),M=a.find(a=>a.id===f),N=L.some(a=>("claude-docker"===a.type||"aider-docker"===a.type)&&"running"===a.status),O=L.some(a=>"claude-ssh"===a.type&&"running"===a.status),P=async()=>{try{let a=await fetch("/api/sessions"),b=await a.json();b.sessions&&d(b.sessions),b.wsPort&&E(b.wsPort),b.originalCwd&&C(b.originalCwd),b.version&&G(b.version)}catch(a){console.error("Failed to fetch sessions:",a)}},Q=async()=>{try{let a=await fetch("/api/recents");if(a.ok){let b=await a.json();b.success&&b.recents&&b.recents.lastSession&&I(b.recents.lastSession)}}catch(a){console.error("Failed to fetch recents:",a)}},R=async()=>{try{let a=await fetch("/api/configs");if(a.ok){let b=await a.json();b.configs&&K(b.configs)}}catch(a){console.error("Failed to fetch configs:",a)}};(0,c.useEffect)(()=>{(async()=>{await P(),await Q(),await R()})(),"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").then(a=>console.log("Service Worker registered:",a.scope)).catch(a=>console.error("Service Worker registration failed:",a));let a=setInterval(P,4e3);return()=>clearInterval(a)},[]);let S=async(a,b,c,d)=>{q(!0);try{let e=b;e||("claude"===a?e="Claude Local":"claude-docker"===a?e="Claude Docker":"claude-ssh"===a?e="Claude SSH":"aider"===a?e="Aider Local":"aider-docker"===a?e="Aider Docker":"mock"===a&&(e="Mock Session"));let f={type:a,name:e,workspaceRoot:c,scopedDirs:d};if(("aider"===a||"aider-docker"===a)&&!c)try{let a=await fetch("/api/context/aider");if(a.ok){let b=await a.json();b.success&&b.config&&(f.workspaceRoot=b.config.workspaceRoot,f.scopedDirs=b.config.scopedDirs)}}catch(a){console.error("Failed to load aider configuration before launch:",a)}let g=await fetch("/api/sessions/launch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)}),i=await g.json();i.success&&(await P(),await R(),h(i.session.id),I({type:a,name:e,workspaceRoot:c,scopedDirs:d}))}catch(a){console.error("Failed to launch session:",a)}finally{q(!1)}},T=async a=>{q(!0);try{let b=await fetch("/api/sessions/launch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:a.type,name:a.name,workspaceRoot:a.workspaceRoot,scopedDirs:a.scopedDirs})}),c=await b.json();c.success?(await P(),h(c.session.id)):alert(c.error||"Failed to launch configuration.")}catch(a){console.error(a),alert("Network error: failed to launch configuration.")}finally{q(!1)}},U=async a=>{if(window.confirm("Are you sure you want to delete this configuration template?"))try{(await fetch("/api/configs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",id:a})})).ok?await R():alert("Failed to delete configuration template.")}catch(a){console.error(a),alert("Network error: failed to delete configuration template.")}},V=async(a,b=!1)=>{try{let c=await fetch("/api/sessions/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a,delete:b})});(await c.json()).success&&(b&&f===a&&h(null),await P())}catch(a){console.error("Failed to stop session:",a)}};return(0,b.jsxs)("div",{className:`${e.default.container} ${M?e.default.containerActive:""}`,children:[(0,b.jsxs)("header",{className:e.default.header,children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1.5rem"},children:[(0,b.jsx)("img",{src:"/logo.png",alt:"NeuralLoom Logo",style:{width:"160px",height:"160px",borderRadius:"16px",objectFit:"contain"}}),(0,b.jsxs)("div",{className:e.default.logoArea,children:[(0,b.jsx)("h1",{className:e.default.title,style:{margin:0,lineHeight:1.1},children:"NeuralLoom"}),(0,b.jsx)("span",{className:e.default.subtitle,children:"Unified AI Orchestrator & Context Bridge"})]})]}),(0,b.jsxs)("div",{className:e.default.statusIndicator,children:[(0,b.jsx)("span",{className:e.default.pulseDot}),(0,b.jsx)("span",{children:"Orchestrator Online"})]})]}),M?(0,b.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:(0,b.jsx)(o,{sessionId:M.id,workspaceRoot:M.workspaceRoot||"",scopedDirs:M.scopedDirs||[],onClose:()=>h(null),sessions:a,onSwitchSession:a=>h(a),onRefreshSessions:P,wsPort:D})}):(0,b.jsxs)("div",{className:e.default.dashboardGrid,children:[(0,b.jsxs)("div",{className:e.default.mainPanel,children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Built-in Database Explorer & SQL Client"}),(0,b.jsx)("div",{className:"card",style:{padding:0,overflow:"hidden",height:"450px",border:"1px solid var(--border)"},children:(0,b.jsx)(g,{workspaceRoot:B||""})})]}),(0,b.jsxs)("section",{style:{marginTop:"1.5rem"},children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Shared Context Hub & Slash Commands"}),(0,b.jsxs)("div",{className:e.default.contextList,children:[(0,b.jsxs)("div",{className:`${e.default.contextItem} card`,children:[(0,b.jsxs)("div",{className:e.default.contextMeta,children:[(0,b.jsx)("span",{className:e.default.contextTitle,children:"Staged Context & System Rules (/ccc)"}),(0,b.jsx)("span",{className:e.default.contextDetails,children:"Compiles AGENTS.md guidelines and files map."})]}),(0,b.jsx)("button",{onClick:async()=>{f&&await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,command:"/ccc"})})},disabled:!f,style:{padding:"0.4rem 0.8rem",borderRadius:"6px",border:"1px solid var(--primary)",backgroundColor:"transparent",color:"var(--primary)",fontSize:"0.75rem",fontWeight:600,opacity:f?1:.5,cursor:f?"pointer":"not-allowed"},children:"🚀 Mount (/ccc)"})]}),(0,b.jsxs)("div",{className:`${e.default.contextItem} card`,children:[(0,b.jsxs)("div",{className:e.default.contextMeta,children:[(0,b.jsx)("span",{className:e.default.contextTitle,children:"Staged Developer Prompt (/ccp)"}),(0,b.jsx)("span",{className:e.default.contextDetails,children:"Executes prompt in .ai/neural-loom/cprompt.md."})]}),(0,b.jsx)("button",{onClick:async()=>{f&&await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,command:"/ccp"})})},disabled:!f,style:{padding:"0.4rem 0.8rem",borderRadius:"6px",border:"1px solid var(--success)",backgroundColor:"transparent",color:"var(--success)",fontSize:"0.75rem",fontWeight:600,opacity:f?1:.5,cursor:f?"pointer":"not-allowed"},children:"⚡ Run (/ccp)"})]})]}),(0,b.jsx)(k,{})]})]}),(0,b.jsxs)("div",{className:e.default.mainPanel,children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Active AI Agents"}),0===L.length?(0,b.jsxs)("div",{className:"card",style:{padding:"3rem 1.5rem",textAlign:"center"},children:[(0,b.jsx)("p",{style:{color:"var(--muted)",marginBottom:"1.5rem"},children:"No active agent sessions. Launch a Claude or Aider agent session to begin."}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.75rem",flexDirection:"column"},children:[H&&(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>{S(H.type,H.name,H.workspaceRoot,H.scopedDirs)},disabled:p,style:{background:"linear-gradient(135deg, hsl(38, 92%, 50%) 0%, hsl(0, 84%, 60%) 100%)",border:"none"},title:`Re-launch: ${H.name||H.type}`,children:"⚡ Re-launch Last Session"}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>{A(!1),y(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",border:"none",flex:1},children:"Launch Claude"}),(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>{w(!1),u(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",border:"none",flex:1},children:"Launch Aider"})]})]}),(0,b.jsxs)("div",{style:{marginTop:"1.5rem",fontSize:"0.75rem",color:"var(--muted)"},children:["Need a simulator?"," ",(0,b.jsx)("span",{onClick:()=>S("mock"),style:{color:"var(--primary)",cursor:"pointer",textDecoration:"underline"},children:"Start mock playground"})]})]}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:L.map(a=>(0,b.jsxs)("div",{className:`${e.default.agentCard} card ${f===a.id?e.default.activeBorder:""}`,children:[(0,b.jsxs)("div",{className:e.default.agentHeader,children:[(0,b.jsx)("span",{className:e.default.agentName,children:a.name}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.35rem",alignItems:"center"},children:["running"===a.status&&a.agentState&&(0,b.jsxs)("span",{className:`${e.default.agentStateBadge} ${e.default["state-"+a.agentState]}`,children:["thinking"===a.agentState&&`${i(a.type)} 💭`,"needs-input"===a.agentState&&`${i(a.type)} ⚠️`,"complete"===a.agentState&&`${i(a.type)} ✅`,"idle"===a.agentState&&`${i(a.type)} 💤`]}),(0,b.jsx)("span",{className:`${e.default.agentBadge} ${"stopped"===a.status?e.default.stoppedBadge:""}`,children:a.status})]})]}),(0,b.jsxs)("div",{className:e.default.cardBody,style:{padding:"1rem"},children:[(0,b.jsxs)("p",{style:{fontSize:"0.8rem",color:"var(--muted)",margin:0},children:["ID: ",(0,b.jsx)("code",{style:{fontSize:"0.72rem"},children:a.id.substring(0,8)})," | Type: ",a.type,(0,b.jsx)("br",{}),"Logs: ",a.logsCount," lines"]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.75rem"},children:["running"===a.status?(0,b.jsx)("button",{onClick:()=>V(a.id,!1),style:{flex:1,padding:"0.35rem",borderRadius:"6px",border:"1px solid var(--danger)",backgroundColor:"transparent",fontSize:"0.75rem",color:"var(--danger)",cursor:"pointer"},children:"Stop"}):(0,b.jsx)("button",{onClick:()=>V(a.id,!0),style:{flex:1,padding:"0.35rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"transparent",fontSize:"0.75rem",color:"var(--muted)",cursor:"pointer"},children:"Delete"}),(0,b.jsx)("button",{onClick:()=>h(a.id),style:{flex:2,padding:"0.35rem",borderRadius:"6px",border:"none",backgroundColor:f===a.id?"var(--border-focus)":"var(--primary)",fontSize:"0.75rem",fontWeight:600,color:"#fff",cursor:"pointer"},children:f===a.id?"Connected":"Open Console"})]})]})]},a.id))})]}),f&&"workspace-terminal"!==f&&(0,b.jsxs)("section",{className:"card",style:{display:"flex",flexDirection:"column",border:"1px solid var(--border-focus)",marginTop:"1rem"},children:[(0,b.jsxs)("div",{className:e.default.agentHeader,style:{justifyContent:"space-between",background:"rgba(109, 40, 217, 0.08)",padding:"0.5rem 1rem"},children:[(0,b.jsxs)("span",{style:{fontWeight:600,fontSize:"0.85rem",display:"flex",alignItems:"center",gap:"0.5rem"},children:["🖥️ Console — ",a.find(a=>a.id===f)?.name]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[a.find(a=>a.id===f)?.status==="stopped"&&(0,b.jsx)("button",{onClick:async()=>{try{let b=a.find(a=>a.id===f),c=b&&("claude"===b.type||"claude-docker"===b.type||"claude-ssh"===b.type),d=!1;c&&(d=window.confirm("Would you like to resume your previous Claude session?"));let e=await fetch("/api/sessions/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,resume:d})});if(e.ok)await P();else{let a=await e.json();alert(a.error||"Failed to restart session.")}}catch(a){console.error("Failed to restart session:",a)}},style:{padding:"0.15rem 0.4rem",borderRadius:"4px",border:"1px solid #eab308",backgroundColor:"rgba(234, 179, 8, 0.15)",color:"#eab308",fontSize:"0.65rem",fontWeight:600,cursor:"pointer"},children:"⚡ Restart"}),(0,b.jsx)("button",{onClick:()=>h(null),style:{border:"none",background:"none",color:"var(--muted)",cursor:"pointer",fontSize:"0.75rem"},children:"✖"})]})]}),(0,b.jsx)(j,{sessionId:f,wsPort:D})]})]}),(0,b.jsxs)("div",{className:e.default.sidePanel,children:[(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Execution Environments"}),(0,b.jsxs)("div",{className:e.default.envGrid,children:[(0,b.jsxs)("div",{className:e.default.envRow,style:{padding:"0.5rem 0.75rem"},children:[(0,b.jsx)("span",{className:e.default.envName,children:"💻 Local Host"}),(0,b.jsx)("span",{className:e.default.envStatus,style:{color:"var(--success)"},children:"Active"})]}),(0,b.jsxs)("div",{className:e.default.envRow,style:{opacity:N?1:.6,padding:"0.5rem 0.75rem"},children:[(0,b.jsx)("span",{className:e.default.envName,children:"🐳 Docker Sandbox"}),(0,b.jsx)("span",{className:e.default.envStatus,style:{color:N?"var(--success)":"var(--muted)"},children:N?"Active":"Not Mounted"})]}),(0,b.jsxs)("div",{className:e.default.envRow,style:{opacity:O?1:.6,padding:"0.5rem 0.75rem"},children:[(0,b.jsx)("span",{className:e.default.envName,children:"🌐 Remote VM (SSH)"}),(0,b.jsx)("span",{className:e.default.envStatus,style:{color:O?"var(--success)":"var(--muted)"},children:O?"Active":"Offline"})]})]})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Saved Configurations"}),(0,b.jsx)("div",{className:"card",style:{padding:"1rem",display:"flex",flexDirection:"column",gap:"0.75rem"},children:0===J.length?(0,b.jsx)("p",{style:{color:"var(--muted)",fontSize:"0.8rem",textAlign:"center",margin:"1rem 0"},children:"No configuration templates saved yet. Save a template from the Claude/Aider launch wizards."}):(0,b.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem",maxHeight:"200px",overflowY:"auto"},children:J.map(a=>(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",background:"rgba(255, 255, 255, 0.02)",padding:"0.5rem",borderRadius:"6px",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"0.15rem",minWidth:0},children:[(0,b.jsx)("span",{style:{fontSize:"0.8rem",fontWeight:600,color:"var(--foreground)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:a.name}),(0,b.jsx)("span",{style:{fontSize:"0.65rem",color:"var(--muted)",textTransform:"uppercase"},children:a.type})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.25rem"},children:[(0,b.jsx)("button",{onClick:()=>T(a),disabled:p,style:{padding:"0.2rem 0.4rem",borderRadius:"4px",backgroundColor:"var(--primary)",color:"#fff",border:"none",fontSize:"0.7rem",cursor:"pointer"},children:"Launch"}),(0,b.jsx)("button",{onClick:()=>U(a.id),style:{padding:"0.2rem 0.4rem",borderRadius:"4px",backgroundColor:"transparent",color:"var(--danger)",border:"1px solid var(--danger)",fontSize:"0.7rem",cursor:"pointer"},children:"Delete"})]})]},a.id))})})]}),(0,b.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"},children:[(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>{A(!1),y(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",border:"none",padding:"0.6rem",fontSize:"0.8rem",flex:1},children:"🤖 Claude Local"}),(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>{A(!0),y(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(170, 72%, 40%) 0%, hsl(195, 100%, 40%) 100%)",border:"none",padding:"0.6rem",fontSize:"0.8rem",flex:1},children:"🐳 Claude Docker"})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>{w(!1),u(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",border:"none",padding:"0.6rem",fontSize:"0.8rem",flex:1},children:"🐍 Aider Local"}),(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>{w(!0),u(!0)},disabled:p,style:{background:"linear-gradient(135deg, hsl(195, 100%, 40%) 0%, hsl(262, 80%, 55%) 100%)",border:"none",padding:"0.6rem",fontSize:"0.8rem",flex:1},children:"🐳 Aider Docker"})]}),(0,b.jsx)("button",{className:e.default.quickLaunchBtn,onClick:()=>s(!0),disabled:p,style:{background:"linear-gradient(135deg, hsl(38, 92%, 50%) 0%, hsl(0, 84%, 60%) 100%)",border:"none",padding:"0.6rem",fontSize:"0.8rem"},children:"🌐 Connect Remote SSH"})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:e.default.sectionTitle,children:"Workspace Terminal"}),(0,b.jsxs)("div",{className:"card",style:{display:"flex",flexDirection:"column",border:"1px solid var(--border)",padding:0},children:[(0,b.jsx)("div",{className:e.default.agentHeader,style:{justifyContent:"space-between",background:"rgba(255, 255, 255, 0.02)",padding:"0.4rem 0.75rem"},children:(0,b.jsxs)("span",{style:{fontWeight:600,fontSize:"0.75rem"},children:["💻 Local Shell (CWD: ",B.split(/[/\\]/).pop()||"root",")"]})}),(0,b.jsx)(j,{sessionId:"workspace-terminal",height:"180px",wsPort:D})]})]}),(0,b.jsxs)("section",{className:"card",style:{padding:"1rem",display:"flex",flexDirection:"column",gap:"0.5rem"},children:[(0,b.jsx)("h3",{style:{fontSize:"0.9rem",fontWeight:700,margin:0},children:"Quick Actions"}),(0,b.jsxs)("ul",{style:{listStyle:"none",fontSize:"0.75rem",display:"flex",flexDirection:"column",gap:"0.35rem",color:"var(--muted)",padding:0,margin:0},children:[(0,b.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,b.jsx)("span",{children:"Configure API Keys"}),(0,b.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]}),(0,b.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,b.jsx)("span",{children:"Edit rules templates"}),(0,b.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]}),(0,b.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,b.jsx)("span",{children:"Inspect process locks"}),(0,b.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]})]})]})]})]}),(0,b.jsxs)("footer",{className:e.default.footer,children:[(0,b.jsxs)("span",{children:["NeuralLoom v",F," — Experimental AI Orchestrator Bridge"]}),(0,b.jsxs)("span",{children:["Directory: ",B||"Loading..."]})]}),r&&(0,b.jsx)(l,{onClose:()=>s(!1),onConfirmLaunch:()=>{s(!1),S("claude-ssh")}}),t&&(0,b.jsx)(m,{onClose:()=>u(!1),isDocker:v,onConfirmLaunch:(a,b,c)=>{u(!1),S(v?"aider-docker":"aider",a,b,c)}}),x&&(0,b.jsx)(n,{onClose:()=>y(!1),isDocker:z,onConfirmLaunch:(a,b,c)=>{y(!1),S(z?"claude-docker":"claude",a,b,c)}})]})}],40777)}];
|
|
12
12
|
|
|
13
13
|
//# sourceMappingURL=_0t7oqy6._.js.map
|