conductor-oss 0.47.1 → 0.47.2
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/package.json +5 -5
- package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +5 -5
- package/web/.next/standalone/packages/web/.next/build-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/react-loadable-manifest.json +4 -4
- package/web/.next/standalone/packages/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +5 -5
- package/web/.next/standalone/packages/web/.next/server/chunks/2089.js +3 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/406.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/4961.js +1 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/8554.js +1 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/9455.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/middleware-build-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/next-font-manifest.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/pages/500.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/1254.82607a9f7834419b.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{4443.71683cc75a4c887e.js → 4443.fa15b1e0eecedcf9.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/{8510-094f0e8dcd9a19f6.js → 8510-fcec71d54329c2c1.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/9542-d0618e0c5cc2cb34.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-8bbef88f241abf1b.js +1 -0
- package/web/.next/{static/chunks/webpack-611ecbe0b35b5256.js → standalone/packages/web/.next/static/chunks/webpack-15f2d60691dfaaf7.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/css/{4b74a7f24cd27587.css → fac4f14c7e867f28.css} +1 -1
- package/web/.next/static/chunks/1254.82607a9f7834419b.js +1 -0
- package/web/.next/static/chunks/{4443.71683cc75a4c887e.js → 4443.fa15b1e0eecedcf9.js} +1 -1
- package/web/.next/static/chunks/{8510-094f0e8dcd9a19f6.js → 8510-fcec71d54329c2c1.js} +1 -1
- package/web/.next/static/chunks/9542-d0618e0c5cc2cb34.js +1 -0
- package/web/.next/static/chunks/app/layout-8bbef88f241abf1b.js +1 -0
- package/web/.next/{standalone/packages/web/.next/static/chunks/webpack-611ecbe0b35b5256.js → static/chunks/webpack-15f2d60691dfaaf7.js} +1 -1
- package/web/.next/static/css/{4b74a7f24cd27587.css → fac4f14c7e867f28.css} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/663.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/9116.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/5150.620f939e63f37829.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/9542-b0f5a33491e78411.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-48413658d36cdb60.js +0 -1
- package/web/.next/static/chunks/5150.620f939e63f37829.js +0 -1
- package/web/.next/static/chunks/9542-b0f5a33491e78411.js +0 -1
- package/web/.next/static/chunks/app/layout-48413658d36cdb60.js +0 -1
- /package/web/.next/standalone/packages/web/.next/static/{ZkSMQwORzG-jlq7_xxbcZ → MznEMaOSBv_hr1wLP5Hgh}/_buildManifest.js +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{ZkSMQwORzG-jlq7_xxbcZ → MznEMaOSBv_hr1wLP5Hgh}/_ssgManifest.js +0 -0
- /package/web/.next/static/{ZkSMQwORzG-jlq7_xxbcZ → MznEMaOSBv_hr1wLP5Hgh}/_buildManifest.js +0 -0
- /package/web/.next/static/{ZkSMQwORzG-jlq7_xxbcZ → MznEMaOSBv_hr1wLP5Hgh}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9542],{14796:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(13454).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},39542:(e,t,n)=>{n.r(t),n.d(t,{SessionTerminal:()=>C});var r=n(54568),l=n(26083),i=n(13454);let a=(0,i.A)("clipboard",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]]),s=(0,i.A)("square-stop",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]);var o=n(58299),c=n(60527),u=n(14796),d=n(36645),m=n(82797),h=n(7620),f=n(76081),p=n(31404);let w=new Set(["queued","spawning","running","working","needs_input","stuck"]),x=new Set(["done","needs_input","stuck","errored","terminated","killed"]);var b=n(63680);function g(e){return"127.0.0.1"===e||"localhost"===e||"::1"===e}function y(e){return e.length>1&&e.endsWith("/")?e.replace(/\/+$/,""):e}function v(e){return e.startsWith("/api/sessions/")&&e.includes("/terminal/ttyd")}async function k(e,t){let n=await fetch((0,p.S)(`/api/sessions/${encodeURIComponent(e)}/terminal/token`,t?.bridgeId),{cache:"no-store",signal:t?.signal}),r=await n.json().catch(()=>null),l="string"==typeof r?.ttydHttpUrl&&r.ttydHttpUrl.trim().length>0?r.ttydHttpUrl.trim():null,i="string"==typeof r?.ttydWsUrl&&r.ttydWsUrl.trim().length>0?r.ttydWsUrl.trim():null,a=(()=>{let e=r?.expiresInSeconds;if("number"==typeof e&&Number.isFinite(e))return Math.max(0,Math.floor(e));if("string"==typeof e){let t=Number.parseInt(e.trim(),10);if(Number.isFinite(t))return Math.max(0,t)}return null})();if(401===n.status||403===n.status)return{interactive:!1,ttydHttpUrl:null,ttydWsUrl:null,reason:r?.error??"Terminal access denied"};if(!n.ok)throw Error(r?.error??`Failed to resolve terminal token: ${n.status}`);return{interactive:!0,ttydHttpUrl:l,ttydWsUrl:i,expiresInSeconds:a}}async function j(e,t){let n=function(){let e=function(){if("u"<typeof document)return null;let e=document.querySelector('meta[name="conductor-backend-url"]'),t=e?.content?.trim();if(!t)return null;try{let e=window.location.origin,n=new URL(t,e);if("http:"!==n.protocol&&"https:"!==n.protocol)return null;{let e=new URL(window.location.origin);g(n.hostname)&&!g(e.hostname)&&(n.hostname=e.hostname,"https:"===e.protocol&&"http:"===n.protocol&&(n.protocol="https:"))}return n.toString()}catch{return null}}();if(e)return e;let t=b.env.NEXT_PUBLIC_CONDUCTOR_BACKEND_URL?.trim();if(t)return t;let{protocol:n,hostname:r,origin:l,port:i}=window.location;return"3000"===i||"4747"===i?`${n}//${r}:4749`:l}(),r=window.location.origin,l=await k(e,t);if(!l.interactive)return{terminalUrl:null,interactive:!1,reason:l.reason,expiresInSeconds:null};let i=function(e,t,n,r){let l=e??t;if(!l)return null;try{let e=(()=>{try{return new URL(l,r).pathname}catch{return null}})(),t=e&&v(e)?r:n,i=new URL(l,t);return"ws:"===i.protocol&&(i.protocol="http:"),"wss:"===i.protocol&&(i.protocol="https:"),"/ws"===i.pathname?i.pathname="/":i.pathname.endsWith("/ws")&&(i.pathname=y(i.pathname.slice(0,-3))),i.pathname=y(i.pathname),i.hash="",i.toString()}catch{return null}}(l.ttydHttpUrl,l.ttydWsUrl,n,r);return i?{terminalUrl:function(e,t){let n=t?.trim();if(!n)return e;try{let t=new URL(e);if(!v(t.pathname))return e;return t.searchParams.set("bridgeId",n),t.toString()}catch{return e}}(i,t?.bridgeId),interactive:!0,reason:null,expiresInSeconds:l.expiresInSeconds}:{terminalUrl:null,interactive:!1,reason:"Failed to resolve the ttyd terminal URL."}}function N(e){if(!e)return null;try{let t=new URL(e);return t.searchParams.delete("token"),t.hash="",t.toString()}catch{return e}}var S=n(86181);let U=new Set(["archived","killed","terminated","restored"]);async function L(e,t,n){let r=await fetch((0,p.S)(`/api/sessions/${encodeURIComponent(e)}/keys`,n),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keys:t})});if(!r.ok){let e=await r.json().catch(()=>null);throw Error(e?.error??`Failed to queue terminal input (${r.status})`)}}function E(e,t){if(!e||!t||null===e.contentWindow)return;let n="*";try{n=new URL(e.src).origin}catch{}e.contentWindow.postMessage({type:"conductor-ttyd-auth-token",token:t},n)}function R(e){let{sessionId:t,bridgeId:n,sessionState:i,runtimeMode:b,pendingInsert:g,immersiveMobileMode:y=!1,onPendingInsertConsumed:v}=e,k=(0,h.useRef)(null),R=(0,h.useRef)(0),C=(0,h.useRef)(0),A=(0,h.useRef)(null),I=(0,h.useRef)(!1),T=(0,h.useRef)(null),M=(0,h.useRef)(0),_=(0,h.useMemo)(()=>i.trim().toLowerCase(),[i]),P=b?.trim().toLowerCase()??null,$="ttyd"===P,z=$?!U.has(_):w.has(_),O=!$&&!y&&x.has(_),[F,W]=(0,h.useState)(null),[q,D]=(0,h.useState)(null),[H,B]=(0,h.useState)(z),[K,V]=(0,h.useState)(null),[J,X]=(0,h.useState)(!1),[G,Q]=(0,h.useState)(0),[Y,Z]=(0,h.useState)(""),[ee,et]=(0,h.useState)(!1),[en,er]=(0,h.useState)(null),[el,ei]=(0,h.useState)(null),[ea,es]=(0,h.useState)(!1),eo=(0,h.useRef)(null),ec=(0,h.useRef)(!1),eu=(0,h.useCallback)(()=>{let e=function(e){if(!e)return null;try{let t=new URL(e).searchParams.get("token")?.trim();return t&&t.length>0?t:null}catch{return null}}(q);e&&E(A.current?.querySelector("iframe"),e)},[q]);(0,h.useEffect)(()=>{eo.current=F},[F]),(0,h.useEffect)(()=>{I.current=J},[J]),(0,h.useEffect)(()=>{R.current=0,C.current=0,W(null),D(null),B(z),V(null),X(!1),Q(0),Z(""),et(!1),er(null),ei(null),ec.current=!1,I.current=!1,T.current=null,M.current=0},[z,t]),(0,h.useEffect)(()=>{if(!z){B(!1),V(null);return}let e=!1,r=null,l=null,i=new AbortController;return B(!0),V(null),j(t,{signal:i.signal,bridgeId:n}).then(t=>{if(!e){if(C.current=0,t.interactive&&t.terminalUrl){var n,r,i;let e,a,s=ec.current||(n=eo.current,r=t.terminalUrl,e=N(n),a=N(r),!e||e!==a);ec.current=!1,D(t.terminalUrl);let o=!s&&eo.current&&function(e,t){if(!e)return!1;try{let n=new URL(e),r=new URL(t);if(n.origin!==r.origin||n.pathname!==r.pathname)return!1;let l=new URLSearchParams(n.searchParams),i=new URLSearchParams(r.searchParams);l.delete("token"),i.delete("token");let a=l.toString(),s=i.toString();if(a!==s)return!1;let o=new URL(e).searchParams.get("token"),c=new URL(t).searchParams.get("token");return o!==c}catch{return!1}}(eo.current,t.terminalUrl);if(s||!eo.current)eo.current||X(!1),W(t.terminalUrl);else if(o){let e=(()=>{try{return new URL(t.terminalUrl).searchParams.get("token")}catch{return null}})();if(e){let t=A.current?.querySelector("iframe");t&&E(t,e)}}V(null);let c="number"!=typeof(i=t.expiresInSeconds)||!Number.isFinite(i)||i<=0?null:1e3*Math.max(5,i-10);null!==c&&(l=window.setTimeout(()=>{Q(e=>e+1)},c));return}eo.current||(W(null),D(null),X(!1)),V(t.reason??"Live ttyd terminal is unavailable.")}}).catch(t=>{if(e||t instanceof DOMException&&"AbortError"===t.name)return;let n=!!eo.current;n||(W(null),D(null),X(!1)),V(t instanceof Error?t.message:"Failed to resolve ttyd terminal.");let l=C.current,i=n?5e3:Math.min(4e3,500*2**l);C.current=n?0:Math.min(l+1,3),r=window.setTimeout(()=>{Q(e=>e+1)},i)}).finally(()=>{e||B(!1)}),()=>{e=!0,i.abort(),null!==r&&window.clearTimeout(r),null!==l&&window.clearTimeout(l)}},[n,G,z,t]);let ed=(0,h.useCallback)(()=>{if(!z)return;let e=window.Date.now();if(e-M.current<1500)return;M.current=e;let t=null===T.current?0:e-T.current;T.current=null,eu(),t>=3e5&&I.current&&eo.current&&(ec.current=!0),Q(e=>e+1)},[z,eu]);(0,h.useEffect)(()=>{if("u"<typeof document)return;let e=()=>{if("hidden"===document.visibilityState){T.current=window.Date.now();return}"visible"===document.visibilityState&&ed()},t=()=>{ed()};return document.addEventListener("visibilitychange",e),window.addEventListener("focus",t),window.addEventListener("pageshow",t),window.addEventListener("online",t),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",t),window.removeEventListener("pageshow",t),window.removeEventListener("online",t)}},[ed]),(0,h.useEffect)(()=>{if(!g||g.nonce<=R.current)return;R.current=g.nonce;let e=g.inlineText.trim();if(0===e.length)return;let r=!1;return L(t,`${e} `,n).then(()=>{r||(ei(null),v?.())}).catch(e=>{r||ei(e instanceof Error?e.message:"Failed to queue terminal input.")}),()=>{r=!0}},[n,v,g,t]),(0,h.useEffect)(()=>{J&&eu()},[J,eu]);let em=(0,h.useCallback)(async()=>{let e=Y.trim();if(0!==e.length&&!ee){et(!0),er(null);try{let r=await fetch((0,p.S)(`/api/sessions/${encodeURIComponent(t)}/actions`,n),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"send",message:e})});if(!r.ok){let e=await r.json().catch(()=>null);throw Error(e?.error??`Failed to send message (${r.status})`)}Z(""),k.current?.focus()}catch(e){er(e instanceof Error?e.message:"Failed to send message")}finally{et(!1)}}},[n,Y,ee,t]),eh=(0,h.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&await L(t,e,n)}catch{}},[n,t]),ef=(0,h.useCallback)(async()=>{await L(t,"\x03",n)},[n,t]),ep=(0,h.useCallback)(()=>{let e=A.current;if(!e)return;let t=window.visualViewport;if(!t)return;let{usableHeight:n,keyboardVisible:r}=(0,S.wP)(window.innerHeight,t.height,t.offsetTop,e.getBoundingClientRect().top);if(!r){e.style.removeProperty("height"),es(!1);return}n<=0?e.style.removeProperty("height"):(e.style.height=`${Math.max(0,Math.round(n))}px`,es(!0))},[]);(0,h.useEffect)(()=>{let e=A.current;if(!e)return;let t=null,n=()=>{null===t&&(t=window.setTimeout(()=>{t=null,ep()},16))};n();let r="u"<typeof ResizeObserver?null:new ResizeObserver(()=>{n()}),l=window.visualViewport;return r?.observe(e),window.addEventListener("resize",n),l?.addEventListener("resize",n),l?.addEventListener("scroll",n),()=>{r?.disconnect(),window.removeEventListener("resize",n),l?.removeEventListener("resize",n),l?.removeEventListener("scroll",n),null!==t&&window.clearTimeout(t),e.style.removeProperty("height")}},[ep,z,F]),(0,h.useEffect)(()=>{},[K,z,J,P,en,el,H,t,F,q,$]);let ew=(0,h.useCallback)(()=>{V(null),C.current=0,ec.current=!0,Q(e=>e+1)},[]),ex=z?"Connecting live terminal":O?"Session is waiting for input":"Live terminal is not active",eb=K??(z?"Reconnecting to the existing ttyd terminal.":$?"This ttyd terminal is no longer attached. It only closes after an explicit kill or archive.":O?"Send a follow-up below to relaunch the agent in a fresh ttyd terminal.":`Session status is \`${_}\`. Interactive ttyd terminals only run while the agent is active.`),eg=q??F??void 0;return(0,r.jsxs)("div",{className:y?"group/terminal relative flex h-full min-h-0 min-w-0 w-full flex-1 flex-col overflow-hidden bg-[#060404]":"group/terminal relative flex h-full min-h-0 min-w-0 w-full flex-1 flex-col overflow-hidden rounded-none border-0 bg-[#060404] lg:rounded-[14px] lg:border lg:border-white/10 lg:shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]",children:[(0,r.jsxs)("div",{className:"absolute right-2 top-2 z-10 flex items-center gap-2 sm:right-3 sm:top-3",children:[eg?(0,r.jsx)("a",{href:eg,target:"_blank",rel:"noreferrer",className:"inline-flex h-9 w-9 items-center justify-center rounded-full border border-white/10 bg-[#141010]/92 text-[#c9c0b7] backdrop-blur-sm transition hover:bg-[#201818] sm:h-7 sm:w-7","aria-label":"Open ttyd terminal in a new tab",children:(0,r.jsx)(l.A,{className:"h-3.5 w-3.5"})}):null,window.matchMedia?.("(pointer: coarse)").matches?(0,r.jsx)(f.$,{type:"button",size:"icon",variant:"ghost",className:"h-9 w-9 rounded-full border border-white/10 bg-[#141010]/92 text-[#c9c0b7] backdrop-blur-sm hover:bg-[#201818] sm:h-7 sm:w-7",onClick:eh,"aria-label":"Paste from clipboard",children:(0,r.jsx)(a,{className:"h-3.5 w-3.5"})}):null,(0,r.jsx)(f.$,{type:"button",size:"icon",variant:"ghost",className:"h-9 w-9 rounded-full border border-white/10 bg-[#141010]/92 text-[#c9c0b7] backdrop-blur-sm hover:bg-[#201818] sm:h-7 sm:w-7",onClick:ef,"aria-label":"Soft stop (Ctrl+C)",children:(0,r.jsx)(s,{className:"h-3.5 w-3.5"})}),(0,r.jsx)(f.$,{type:"button",size:"icon",variant:"ghost",className:"h-9 w-9 rounded-full border border-white/10 bg-[#141010]/92 text-[#c9c0b7] backdrop-blur-sm hover:bg-[#201818] sm:h-7 sm:w-7",onClick:ew,"aria-label":"Reload ttyd terminal",children:H?(0,r.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(c.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)("div",{className:y?"min-h-0 min-w-0 flex-1 overflow-hidden px-0 pb-0 pt-0 w-full":"min-h-0 min-w-0 flex-1 overflow-hidden px-0.5 pb-0 pt-0.5 lg:px-1.5 lg:pb-1 lg:pt-3 w-full",children:z&&F?(0,r.jsxs)("div",{ref:A,className:"relative h-full w-full overflow-hidden rounded-[10px] bg-[#060404]",children:[J?null:(0,r.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-[#060404]",children:(0,r.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-white/10 bg-[#141010]/92 px-3 py-2 text-[12px] text-[#c9c0b7] backdrop-blur-sm",children:[(0,r.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,r.jsx)("span",{children:"Loading ttyd terminal…"})]})}),(0,r.jsx)("iframe",{title:`ttyd terminal for ${t}`,src:F,className:"h-full w-full border-0 bg-[#060404]",allow:"clipboard-read; clipboard-write",loading:"eager",onLoad:()=>{X(!0),V(null),ep(),eu()}},t)]}):(0,r.jsx)("div",{className:"flex h-full items-center justify-center p-4",children:(0,r.jsx)("div",{className:"max-w-lg rounded-[16px] border border-white/10 bg-[#141010]/92 p-5 text-[#efe8e1] shadow-[0_24px_48px_rgba(0,0,0,0.34)]",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("div",{className:"mt-0.5 rounded-full border border-white/10 bg-[#201818] p-2 text-[#c9c0b7]",children:K?(0,r.jsx)(u.A,{className:"h-4 w-4"}):(0,r.jsx)(o.A,{className:`h-4 w-4 ${H?"animate-spin":""}`})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-[14px] font-medium",children:ex}),(0,r.jsx)("div",{className:"mt-1 text-[12px] leading-5 text-[#a79c94]",children:eb}),eg?(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)("a",{href:eg,target:"_blank",rel:"noreferrer",className:"text-[12px] text-[#d7c6b7] underline underline-offset-4",children:"Open the ttyd terminal directly"})}):null]})]})})})}),!O&&el?(0,r.jsx)("div",{className:"absolute inset-x-0 bottom-0 z-10 border-t border-white/12 bg-[#161212] px-3 py-2 text-[11px] text-[#ffb39e] backdrop-blur-sm [padding-bottom:env(safe-area-inset-bottom)]",children:(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(u.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:el}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>ei(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]})}):null,O?(0,r.jsxs)("div",{className:"absolute inset-x-0 bottom-0 z-10 border-t border-white/12 bg-[#161212] backdrop-blur-sm [padding-bottom:env(safe-area-inset-bottom)]",children:[el?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pt-1.5 text-[11px] text-[#ffb39e]",children:[(0,r.jsx)(u.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:el}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>ei(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,en?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pt-1.5 text-[11px] text-[#ff8f7a]",children:[(0,r.jsx)(u.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:en}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>er(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),em()},className:"flex items-center gap-2 px-2 py-2 lg:px-3",children:[(0,r.jsx)("input",{ref:k,type:"text",value:Y,onChange:e=>Z(e.target.value),placeholder:"Send a follow-up message…",enterKeyHint:"done",disabled:ee,className:"h-8 min-w-0 flex-1 rounded-md border border-white/10 bg-[#0c0808] px-2.5 text-[12px] text-[#efe8e1] outline-none placeholder:text-[#7d746e] focus:border-white/20 disabled:opacity-50",onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.currentTarget.blur())}}),(0,r.jsx)(f.$,{type:"submit",size:"icon",variant:"ghost",disabled:ee||0===Y.trim().length,className:"h-8 w-8 shrink-0 rounded-md border border-white/10 bg-[#0c0808] text-[#c9c0b7] hover:bg-[#201818] disabled:opacity-30","aria-label":"Send message",children:ee?(0,r.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(m.A,{className:"h-3.5 w-3.5"})})]})]}):null]})}let C=(0,h.memo)(function(e){return(0,r.jsx)(R,{...e})},function(e,t){var n,r;return e.sessionId===t.sessionId&&e.projectId===t.projectId&&e.bridgeId===t.bridgeId&&e.sessionState===t.sessionState&&e.runtimeMode===t.runtimeMode&&e.immersiveMobileMode===t.immersiveMobileMode&&((n=e.pendingInsert)===(r=t.pendingInsert)||!!n&&!!r&&n.nonce===r.nonce&&n.inlineText===r.inlineText)})},82797:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(13454).A)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])}}]);
|
package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-48413658d36cdb60.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{32262:(e,r,t)=>{"use strict";t.d(r,{A:()=>n});var o=t(5974);let n=(0,o.createServerReference)("001269ac15bfaf449b67604771f1b1dc5499559317",o.callServer,void 0,o.findSourceMapURL,"detectKeylessEnvDriftAction")},35963:(e,r,t)=>{"use strict";t.d(r,{y:()=>n});var o=t(5974);let n=(0,o.createServerReference)("0072b0584b54221357a3b966b4928ca181601cd394",o.callServer,void 0,o.findSourceMapURL,"invalidateCacheAction")},46916:(e,r,t)=>{"use strict";t.d(r,{cn:()=>s});var o=t(9917),n=t(2809);function s(...e){return(0,n.QP)((0,o.$)(e))}},48204:(e,r,t)=>{"use strict";t.d(r,{ThemeProvider:()=>a});var o=t(54568),n=t(7620);let s=(0,n.createContext)({theme:"dark",toggleTheme:()=>{}});function i(e){let r=document.documentElement;r.classList.remove("dark","light"),r.classList.add(e)}function a({children:e}){let[r,t]=(0,n.useState)("dark");(0,n.useEffect)(()=>{let e=localStorage.getItem("conductor-theme");if("light"===e||"dark"===e){t(e),i(e);return}i("dark")},[]);let d=(0,n.useCallback)(()=>{t(e=>{let r="dark"===e?"light":"dark";return localStorage.setItem("conductor-theme",r),i(r),r})},[]);return(0,o.jsx)(s.Provider,{value:{theme:r,toggleTheme:d},children:e})}},74471:()=>{},92690:(e,r,t)=>{"use strict";t.d(r,{TooltipProvider:()=>a});var o=t(54568),n=t(97257),s=t(7620),i=t(46916);let a=n.Kq;n.bL,n.l9,(0,s.forwardRef)(({className:e,sideOffset:r=8,...t},s)=>(0,o.jsx)(n.ZL,{children:(0,o.jsx)(n.UC,{ref:s,sideOffset:r,className:(0,i.cn)("z-50 rounded-[var(--radius-xs)] border border-[var(--border-strong)] bg-[var(--bg-panel)] px-2 py-1.5","text-[11px] text-[var(--text-normal)] shadow-[var(--shadow-soft)]","animate-in fade-in-0 zoom-in-95",e),...t})})).displayName="TooltipContent"},98709:(e,r,t)=>{Promise.resolve().then(t.bind(t,37204)),Promise.resolve().then(t.bind(t,36727)),Promise.resolve().then(t.bind(t,76940)),Promise.resolve().then(t.bind(t,48914)),Promise.resolve().then(t.bind(t,30679)),Promise.resolve().then(t.bind(t,62520)),Promise.resolve().then(t.bind(t,93603)),Promise.resolve().then(t.t.bind(t,48477,23)),Promise.resolve().then(t.t.bind(t,91745,23)),Promise.resolve().then(t.t.bind(t,79584,23)),Promise.resolve().then(t.t.bind(t,84978,23)),Promise.resolve().then(t.t.bind(t,74471,23)),Promise.resolve().then(t.bind(t,48204)),Promise.resolve().then(t.bind(t,92690))}},e=>{e.O(0,[9271,9306,3357,524,3051,8510,587,1968,7358],()=>e(e.s=98709)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5150],{35561:(e,c,r)=>{r.d(c,{a:()=>d});var a=r(5974);let d=(0,a.createServerReference)("007741a002b0f30cebd1ce888fa69595df91e64baf",a.callServer,void 0,a.findSourceMapURL,"createOrReadKeylessAction")},85150:(e,c,r)=>{r.r(c),r.d(c,{createOrReadKeylessAction:()=>d.a,deleteKeylessAction:()=>s,detectKeylessEnvDriftAction:()=>a.A,syncKeylessConfigAction:()=>t});var a=r(32262),d=r(35561),f=r(5974);let s=(0,f.createServerReference)("00aa6a64d96969635df255fba689562932d2d836d1",f.callServer,void 0,f.findSourceMapURL,"deleteKeylessAction"),t=(0,f.createServerReference)("40182f81e3d28647e67ffca40824a5b3d5e8feec07",f.callServer,void 0,f.findSourceMapURL,"syncKeylessConfigAction")}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9542],{14796:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(13454).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},39542:(e,t,n)=>{n.r(t),n.d(t,{SessionTerminal:()=>C});var r=n(54568),l=n(26083),i=n(13454);let a=(0,i.A)("clipboard",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]]),s=(0,i.A)("square-stop",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]);var o=n(58299),c=n(60527),u=n(14796),d=n(36645),m=n(82797),h=n(7620),f=n(76081),p=n(31404);let w=new Set(["queued","spawning","running","working","needs_input","stuck"]),x=new Set(["done","needs_input","stuck","errored","terminated","killed"]);var b=n(63680);function g(e){return"127.0.0.1"===e||"localhost"===e||"::1"===e}function y(e){return e.length>1&&e.endsWith("/")?e.replace(/\/+$/,""):e}function v(e){return e.startsWith("/api/sessions/")&&e.includes("/terminal/ttyd")}async function k(e,t){let n=await fetch((0,p.S)(`/api/sessions/${encodeURIComponent(e)}/terminal/token`,t?.bridgeId),{cache:"no-store",signal:t?.signal}),r=await n.json().catch(()=>null),l="string"==typeof r?.ttydHttpUrl&&r.ttydHttpUrl.trim().length>0?r.ttydHttpUrl.trim():null,i="string"==typeof r?.ttydWsUrl&&r.ttydWsUrl.trim().length>0?r.ttydWsUrl.trim():null,a=(()=>{let e=r?.expiresInSeconds;if("number"==typeof e&&Number.isFinite(e))return Math.max(0,Math.floor(e));if("string"==typeof e){let t=Number.parseInt(e.trim(),10);if(Number.isFinite(t))return Math.max(0,t)}return null})();if(401===n.status||403===n.status)return{interactive:!1,ttydHttpUrl:null,ttydWsUrl:null,reason:r?.error??"Terminal access denied"};if(!n.ok)throw Error(r?.error??`Failed to resolve terminal token: ${n.status}`);return{interactive:!0,ttydHttpUrl:l,ttydWsUrl:i,expiresInSeconds:a}}async function j(e,t){let n=function(){let e=function(){if("u"<typeof document)return null;let e=document.querySelector('meta[name="conductor-backend-url"]'),t=e?.content?.trim();if(!t)return null;try{let e=window.location.origin,n=new URL(t,e);if("http:"!==n.protocol&&"https:"!==n.protocol)return null;{let e=new URL(window.location.origin);g(n.hostname)&&!g(e.hostname)&&(n.hostname=e.hostname,"https:"===e.protocol&&"http:"===n.protocol&&(n.protocol="https:"))}return n.toString()}catch{return null}}();if(e)return e;let t=b.env.NEXT_PUBLIC_CONDUCTOR_BACKEND_URL?.trim();if(t)return t;let{protocol:n,hostname:r,origin:l,port:i}=window.location;return"3000"===i||"4747"===i?`${n}//${r}:4749`:l}(),r=window.location.origin,l=await k(e,t);if(!l.interactive)return{terminalUrl:null,interactive:!1,reason:l.reason,expiresInSeconds:null};let i=function(e,t,n,r){let l=e??t;if(!l)return null;try{let e=(()=>{try{return new URL(l,r).pathname}catch{return null}})(),t=e&&v(e)?r:n,i=new URL(l,t);return"ws:"===i.protocol&&(i.protocol="http:"),"wss:"===i.protocol&&(i.protocol="https:"),"/ws"===i.pathname?i.pathname="/":i.pathname.endsWith("/ws")&&(i.pathname=y(i.pathname.slice(0,-3))),i.pathname=y(i.pathname),i.hash="",i.toString()}catch{return null}}(l.ttydHttpUrl,l.ttydWsUrl,n,r);return i?{terminalUrl:function(e,t){let n=t?.trim();if(!n)return e;try{let t=new URL(e);if(!v(t.pathname))return e;return t.searchParams.set("bridgeId",n),t.toString()}catch{return e}}(i,t?.bridgeId),interactive:!0,reason:null,expiresInSeconds:l.expiresInSeconds}:{terminalUrl:null,interactive:!1,reason:"Failed to resolve the ttyd terminal URL."}}function N(e){if(!e)return null;try{let t=new URL(e);return t.searchParams.delete("token"),t.hash="",t.toString()}catch{return e}}var S=n(86181);let U=new Set(["archived","killed","terminated","restored"]);async function L(e,t,n){let r=await fetch((0,p.S)(`/api/sessions/${encodeURIComponent(e)}/keys`,n),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keys:t})});if(!r.ok){let e=await r.json().catch(()=>null);throw Error(e?.error??`Failed to queue terminal input (${r.status})`)}}function E(e,t){if(!e||!t||null===e.contentWindow)return;let n="*";try{n=new URL(e.src).origin}catch{}e.contentWindow.postMessage({type:"conductor-ttyd-auth-token",token:t},n)}function R(e){let{sessionId:t,bridgeId:n,sessionState:i,runtimeMode:b,pendingInsert:g,immersiveMobileMode:y=!1,onPendingInsertConsumed:v}=e,k=(0,h.useRef)(null),R=(0,h.useRef)(0),C=(0,h.useRef)(0),A=(0,h.useRef)(null),I=(0,h.useRef)(!1),T=(0,h.useRef)(null),M=(0,h.useRef)(0),_=(0,h.useMemo)(()=>i.trim().toLowerCase(),[i]),P=b?.trim().toLowerCase()??null,$="ttyd"===P,z=$?!U.has(_):w.has(_),O=!$&&!y&&x.has(_),[F,W]=(0,h.useState)(null),[q,D]=(0,h.useState)(null),[H,B]=(0,h.useState)(z),[K,V]=(0,h.useState)(null),[J,X]=(0,h.useState)(!1),[G,Q]=(0,h.useState)(0),[Y,Z]=(0,h.useState)(""),[ee,et]=(0,h.useState)(!1),[en,er]=(0,h.useState)(null),[el,ei]=(0,h.useState)(null),[ea,es]=(0,h.useState)(!1),eo=(0,h.useRef)(null),ec=(0,h.useRef)(!1),eu=(0,h.useCallback)(()=>{let e=function(e){if(!e)return null;try{let t=new URL(e).searchParams.get("token")?.trim();return t&&t.length>0?t:null}catch{return null}}(q);e&&E(A.current?.querySelector("iframe"),e)},[q]);(0,h.useEffect)(()=>{eo.current=F},[F]),(0,h.useEffect)(()=>{I.current=J},[J]),(0,h.useEffect)(()=>{R.current=0,C.current=0,W(null),D(null),B(z),V(null),X(!1),Q(0),Z(""),et(!1),er(null),ei(null),ec.current=!1,I.current=!1,T.current=null,M.current=0},[z,t]),(0,h.useEffect)(()=>{if(!z){B(!1),V(null);return}let e=!1,r=null,l=null,i=new AbortController;return B(!0),V(null),j(t,{signal:i.signal,bridgeId:n}).then(t=>{if(!e){if(C.current=0,t.interactive&&t.terminalUrl){var n,r,i;let e,a,s=ec.current||(n=eo.current,r=t.terminalUrl,e=N(n),a=N(r),!e||e!==a);ec.current=!1,D(t.terminalUrl);let o=!s&&eo.current&&function(e,t){if(!e)return!1;try{let n=new URL(e),r=new URL(t);if(n.origin!==r.origin||n.pathname!==r.pathname)return!1;let l=new URLSearchParams(n.searchParams),i=new URLSearchParams(r.searchParams);l.delete("token"),i.delete("token");let a=l.toString(),s=i.toString();if(a!==s)return!1;let o=new URL(e).searchParams.get("token"),c=new URL(t).searchParams.get("token");return o!==c}catch{return!1}}(eo.current,t.terminalUrl);if(s||!eo.current)eo.current||X(!1),W(t.terminalUrl);else if(o){let e=(()=>{try{return new URL(t.terminalUrl).searchParams.get("token")}catch{return null}})();if(e){let t=A.current?.querySelector("iframe");t&&E(t,e)}}V(null);let c="number"!=typeof(i=t.expiresInSeconds)||!Number.isFinite(i)||i<=0?null:1e3*Math.max(5,i-10);null!==c&&(l=window.setTimeout(()=>{Q(e=>e+1)},c));return}eo.current||(W(null),D(null),X(!1)),V(t.reason??"Live ttyd terminal is unavailable.")}}).catch(t=>{if(e||t instanceof DOMException&&"AbortError"===t.name)return;let n=!!eo.current;n||(W(null),D(null),X(!1)),V(t instanceof Error?t.message:"Failed to resolve ttyd terminal.");let l=C.current,i=n?5e3:Math.min(4e3,500*2**l);C.current=n?0:Math.min(l+1,3),r=window.setTimeout(()=>{Q(e=>e+1)},i)}).finally(()=>{e||B(!1)}),()=>{e=!0,i.abort(),null!==r&&window.clearTimeout(r),null!==l&&window.clearTimeout(l)}},[n,G,z,t]);let ed=(0,h.useCallback)(()=>{if(!z)return;let e=window.Date.now();if(e-M.current<1500)return;M.current=e;let t=null===T.current?0:e-T.current;T.current=null,eu(),t>=3e5&&I.current&&eo.current&&(ec.current=!0),Q(e=>e+1)},[z,eu]);(0,h.useEffect)(()=>{if("u"<typeof document)return;let e=()=>{if("hidden"===document.visibilityState){T.current=window.Date.now();return}"visible"===document.visibilityState&&ed()},t=()=>{ed()};return document.addEventListener("visibilitychange",e),window.addEventListener("focus",t),window.addEventListener("pageshow",t),window.addEventListener("online",t),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",t),window.removeEventListener("pageshow",t),window.removeEventListener("online",t)}},[ed]),(0,h.useEffect)(()=>{if(!g||g.nonce<=R.current)return;R.current=g.nonce;let e=g.inlineText.trim();if(0===e.length)return;let r=!1;return L(t,`${e} `,n).then(()=>{r||(ei(null),v?.())}).catch(e=>{r||ei(e instanceof Error?e.message:"Failed to queue terminal input.")}),()=>{r=!0}},[n,v,g,t]),(0,h.useEffect)(()=>{J&&eu()},[J,eu]);let em=(0,h.useCallback)(async()=>{let e=Y.trim();if(0!==e.length&&!ee){et(!0),er(null);try{let r=await fetch((0,p.S)(`/api/sessions/${encodeURIComponent(t)}/actions`,n),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"send",message:e})});if(!r.ok){let e=await r.json().catch(()=>null);throw Error(e?.error??`Failed to send message (${r.status})`)}Z(""),k.current?.focus()}catch(e){er(e instanceof Error?e.message:"Failed to send message")}finally{et(!1)}}},[n,Y,ee,t]),eh=(0,h.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&await L(t,e,n)}catch{}},[n,t]),ef=(0,h.useCallback)(async()=>{await L(t,"\x03",n)},[n,t]),ep=(0,h.useCallback)(()=>{let e=A.current;if(!e)return;let t=window.visualViewport;if(!t)return;let{usableHeight:n,keyboardVisible:r}=(0,S.wP)(window.innerHeight,t.height,t.offsetTop,e.getBoundingClientRect().top);if(!r){e.style.removeProperty("height"),es(!1);return}n<=0?e.style.removeProperty("height"):(e.style.height=`${Math.max(0,Math.round(n))}px`,es(!0))},[]);(0,h.useEffect)(()=>{let e=A.current;if(!e)return;let t=null,n=()=>{null===t&&(t=window.setTimeout(()=>{t=null,ep()},16))};n();let r="u"<typeof ResizeObserver?null:new ResizeObserver(()=>{n()}),l=window.visualViewport;return r?.observe(e),window.addEventListener("resize",n),l?.addEventListener("resize",n),l?.addEventListener("scroll",n),()=>{r?.disconnect(),window.removeEventListener("resize",n),l?.removeEventListener("resize",n),l?.removeEventListener("scroll",n),null!==t&&window.clearTimeout(t),e.style.removeProperty("height")}},[ep,z,F]),(0,h.useEffect)(()=>{},[K,z,J,P,en,el,H,t,F,q,$]);let ew=(0,h.useCallback)(()=>{V(null),C.current=0,ec.current=!0,Q(e=>e+1)},[]),ex=z?"Connecting live terminal":O?"Session is waiting for input":"Live terminal is not active",eb=K??(z?"Reconnecting to the existing ttyd terminal.":$?"This ttyd terminal is no longer attached. It only closes after an explicit kill or archive.":O?"Send a follow-up below to relaunch the agent in a fresh ttyd terminal.":`Session status is \`${_}\`. Interactive ttyd terminals only run while the agent is active.`),eg=q??F??void 0;return(0,r.jsxs)("div",{className:y?"group/terminal relative flex h-full min-h-0 min-w-0 w-full flex-1 flex-col overflow-hidden bg-[#060404]":"group/terminal relative flex h-full min-h-0 min-w-0 w-full flex-1 flex-col overflow-hidden rounded-none border-0 bg-[#060404] lg:rounded-[14px] lg:border lg:border-white/10 lg:shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]",children:[(0,r.jsxs)("div",{className:"absolute right-2 top-2 z-10 flex items-center gap-2 sm:right-3 sm:top-3",children:[eg?(0,r.jsx)("a",{href:eg,target:"_blank",rel:"noreferrer",className:"inline-flex h-9 w-9 items-center justify-center rounded-full border border-white/10 bg-[#141010]/92 text-[#c9c0b7] backdrop-blur-sm transition hover:bg-[#201818] sm:h-7 sm:w-7","aria-label":"Open ttyd terminal in a new tab",children:(0,r.jsx)(l.A,{className:"h-3.5 w-3.5"})}):null,window.matchMedia?.("(pointer: coarse)").matches?(0,r.jsx)(f.$,{type:"button",size:"icon",variant:"ghost",className:"h-9 w-9 rounded-full border border-white/10 bg-[#141010]/92 text-[#c9c0b7] backdrop-blur-sm hover:bg-[#201818] sm:h-7 sm:w-7",onClick:eh,"aria-label":"Paste from clipboard",children:(0,r.jsx)(a,{className:"h-3.5 w-3.5"})}):null,(0,r.jsx)(f.$,{type:"button",size:"icon",variant:"ghost",className:"h-9 w-9 rounded-full border border-white/10 bg-[#141010]/92 text-[#c9c0b7] backdrop-blur-sm hover:bg-[#201818] sm:h-7 sm:w-7",onClick:ef,"aria-label":"Soft stop (Ctrl+C)",children:(0,r.jsx)(s,{className:"h-3.5 w-3.5"})}),(0,r.jsx)(f.$,{type:"button",size:"icon",variant:"ghost",className:"h-9 w-9 rounded-full border border-white/10 bg-[#141010]/92 text-[#c9c0b7] backdrop-blur-sm hover:bg-[#201818] sm:h-7 sm:w-7",onClick:ew,"aria-label":"Reload ttyd terminal",children:H?(0,r.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(c.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)("div",{className:y?"min-h-0 min-w-0 flex-1 overflow-hidden px-0 pb-0 pt-0 w-full":"min-h-0 min-w-0 flex-1 overflow-hidden px-0.5 pb-0 pt-0.5 lg:px-1.5 lg:pb-1 lg:pt-3 w-full",children:z&&F?(0,r.jsxs)("div",{ref:A,className:"relative h-full w-full overflow-hidden rounded-[10px] bg-[#060404]",children:[J?null:(0,r.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-[#060404]",children:(0,r.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-white/10 bg-[#141010]/92 px-3 py-2 text-[12px] text-[#c9c0b7] backdrop-blur-sm",children:[(0,r.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,r.jsx)("span",{children:"Loading ttyd terminal…"})]})}),(0,r.jsx)("iframe",{title:`ttyd terminal for ${t}`,src:F,className:"h-full w-full border-0 bg-[#060404]",allow:"clipboard-read; clipboard-write",loading:"eager",onLoad:()=>{X(!0),V(null),ep(),eu()}},t)]}):(0,r.jsx)("div",{className:"flex h-full items-center justify-center p-4",children:(0,r.jsx)("div",{className:"max-w-lg rounded-[16px] border border-white/10 bg-[#141010]/92 p-5 text-[#efe8e1] shadow-[0_24px_48px_rgba(0,0,0,0.34)]",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("div",{className:"mt-0.5 rounded-full border border-white/10 bg-[#201818] p-2 text-[#c9c0b7]",children:K?(0,r.jsx)(u.A,{className:"h-4 w-4"}):(0,r.jsx)(o.A,{className:`h-4 w-4 ${H?"animate-spin":""}`})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-[14px] font-medium",children:ex}),(0,r.jsx)("div",{className:"mt-1 text-[12px] leading-5 text-[#a79c94]",children:eb}),eg?(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)("a",{href:eg,target:"_blank",rel:"noreferrer",className:"text-[12px] text-[#d7c6b7] underline underline-offset-4",children:"Open the ttyd terminal directly"})}):null]})]})})})}),!O&&el?(0,r.jsx)("div",{className:"absolute inset-x-0 bottom-0 z-10 border-t border-white/12 bg-[#161212] px-3 py-2 text-[11px] text-[#ffb39e] backdrop-blur-sm [padding-bottom:env(safe-area-inset-bottom)]",children:(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(u.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:el}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>ei(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]})}):null,O?(0,r.jsxs)("div",{className:"absolute inset-x-0 bottom-0 z-10 border-t border-white/12 bg-[#161212] backdrop-blur-sm [padding-bottom:env(safe-area-inset-bottom)]",children:[el?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pt-1.5 text-[11px] text-[#ffb39e]",children:[(0,r.jsx)(u.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:el}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>ei(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,en?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pt-1.5 text-[11px] text-[#ff8f7a]",children:[(0,r.jsx)(u.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:en}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>er(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),em()},className:"flex items-center gap-2 px-2 py-2 lg:px-3",children:[(0,r.jsx)("input",{ref:k,type:"text",value:Y,onChange:e=>Z(e.target.value),placeholder:"Send a follow-up message…",enterKeyHint:"done",disabled:ee,className:"h-8 min-w-0 flex-1 rounded-md border border-white/10 bg-[#0c0808] px-2.5 text-[12px] text-[#efe8e1] outline-none placeholder:text-[#7d746e] focus:border-white/20 disabled:opacity-50",onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.currentTarget.blur())}}),(0,r.jsx)(f.$,{type:"submit",size:"icon",variant:"ghost",disabled:ee||0===Y.trim().length,className:"h-8 w-8 shrink-0 rounded-md border border-white/10 bg-[#0c0808] text-[#c9c0b7] hover:bg-[#201818] disabled:opacity-30","aria-label":"Send message",children:ee?(0,r.jsx)(o.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(m.A,{className:"h-3.5 w-3.5"})})]})]}):null]})}let C=(0,h.memo)(function(e){return(0,r.jsx)(R,{...e})},function(e,t){var n,r;return e.sessionId===t.sessionId&&e.projectId===t.projectId&&e.bridgeId===t.bridgeId&&e.sessionState===t.sessionState&&e.runtimeMode===t.runtimeMode&&e.immersiveMobileMode===t.immersiveMobileMode&&((n=e.pendingInsert)===(r=t.pendingInsert)||!!n&&!!r&&n.nonce===r.nonce&&n.inlineText===r.inlineText)})},82797:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(13454).A)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{32262:(e,r,t)=>{"use strict";t.d(r,{A:()=>n});var o=t(5974);let n=(0,o.createServerReference)("001269ac15bfaf449b67604771f1b1dc5499559317",o.callServer,void 0,o.findSourceMapURL,"detectKeylessEnvDriftAction")},35963:(e,r,t)=>{"use strict";t.d(r,{y:()=>n});var o=t(5974);let n=(0,o.createServerReference)("0072b0584b54221357a3b966b4928ca181601cd394",o.callServer,void 0,o.findSourceMapURL,"invalidateCacheAction")},46916:(e,r,t)=>{"use strict";t.d(r,{cn:()=>s});var o=t(9917),n=t(2809);function s(...e){return(0,n.QP)((0,o.$)(e))}},48204:(e,r,t)=>{"use strict";t.d(r,{ThemeProvider:()=>a});var o=t(54568),n=t(7620);let s=(0,n.createContext)({theme:"dark",toggleTheme:()=>{}});function i(e){let r=document.documentElement;r.classList.remove("dark","light"),r.classList.add(e)}function a({children:e}){let[r,t]=(0,n.useState)("dark");(0,n.useEffect)(()=>{let e=localStorage.getItem("conductor-theme");if("light"===e||"dark"===e){t(e),i(e);return}i("dark")},[]);let d=(0,n.useCallback)(()=>{t(e=>{let r="dark"===e?"light":"dark";return localStorage.setItem("conductor-theme",r),i(r),r})},[]);return(0,o.jsx)(s.Provider,{value:{theme:r,toggleTheme:d},children:e})}},74471:()=>{},92690:(e,r,t)=>{"use strict";t.d(r,{TooltipProvider:()=>a});var o=t(54568),n=t(97257),s=t(7620),i=t(46916);let a=n.Kq;n.bL,n.l9,(0,s.forwardRef)(({className:e,sideOffset:r=8,...t},s)=>(0,o.jsx)(n.ZL,{children:(0,o.jsx)(n.UC,{ref:s,sideOffset:r,className:(0,i.cn)("z-50 rounded-[var(--radius-xs)] border border-[var(--border-strong)] bg-[var(--bg-panel)] px-2 py-1.5","text-[11px] text-[var(--text-normal)] shadow-[var(--shadow-soft)]","animate-in fade-in-0 zoom-in-95",e),...t})})).displayName="TooltipContent"},98709:(e,r,t)=>{Promise.resolve().then(t.bind(t,37204)),Promise.resolve().then(t.bind(t,36727)),Promise.resolve().then(t.bind(t,76940)),Promise.resolve().then(t.bind(t,48914)),Promise.resolve().then(t.bind(t,30679)),Promise.resolve().then(t.bind(t,62520)),Promise.resolve().then(t.bind(t,93603)),Promise.resolve().then(t.t.bind(t,48477,23)),Promise.resolve().then(t.t.bind(t,91745,23)),Promise.resolve().then(t.t.bind(t,79584,23)),Promise.resolve().then(t.t.bind(t,84978,23)),Promise.resolve().then(t.t.bind(t,74471,23)),Promise.resolve().then(t.bind(t,48204)),Promise.resolve().then(t.bind(t,92690))}},e=>{e.O(0,[9271,9306,3357,524,3051,8510,587,1968,7358],()=>e(e.s=98709)),_N_E=e.O()}]);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|