conductor-oss 0.56.0 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/package.json +5 -5
  2. package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
  3. package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +1 -1
  4. package/web/.next/standalone/packages/web/.next/build-manifest.json +3 -3
  5. package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
  6. package/web/.next/standalone/packages/web/.next/react-loadable-manifest.json +4 -4
  7. package/web/.next/standalone/packages/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +1 -1
  9. package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  10. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js +1 -1
  17. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js +1 -1
  20. package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js.nft.json +1 -1
  21. package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page_client-reference-manifest.js +1 -1
  22. package/web/.next/standalone/packages/web/.next/server/app/page.js +1 -1
  23. package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
  24. package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
  25. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js +1 -1
  26. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  27. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  28. package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js +1 -1
  29. package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js.nft.json +1 -1
  30. package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page_client-reference-manifest.js +1 -1
  31. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js +1 -1
  32. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
  33. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
  34. package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js +1 -1
  35. package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js.nft.json +1 -1
  36. package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page_client-reference-manifest.js +1 -1
  37. package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js +1 -1
  38. package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js.nft.json +1 -1
  39. package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page_client-reference-manifest.js +1 -1
  40. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js +1 -1
  41. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
  42. package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
  43. package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +1 -1
  44. package/web/.next/standalone/packages/web/.next/server/chunks/1375.js +1 -0
  45. package/web/.next/standalone/packages/web/.next/server/chunks/1989.js +1 -0
  46. package/web/.next/standalone/packages/web/.next/server/chunks/2089.js +3 -3
  47. package/web/.next/standalone/packages/web/.next/server/chunks/3364.js +1 -1
  48. package/web/.next/standalone/packages/web/.next/server/chunks/9455.js +1 -1
  49. package/web/.next/standalone/packages/web/.next/server/middleware-build-manifest.js +1 -1
  50. package/web/.next/standalone/packages/web/.next/server/middleware-react-loadable-manifest.js +1 -1
  51. package/web/.next/standalone/packages/web/.next/server/pages/500.html +1 -1
  52. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
  53. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +1 -1
  54. package/web/.next/standalone/packages/web/.next/static/chunks/4443.dda0426fdba73321.js +1 -0
  55. package/web/.next/standalone/packages/web/.next/static/chunks/7611.e41fdb3134887d76.js +1 -0
  56. package/web/.next/standalone/packages/web/.next/static/chunks/{8510-e9cbd21afe11204b.js → 8510-cceb88b11c23d839.js} +1 -1
  57. package/web/.next/standalone/packages/web/.next/static/chunks/883-ad6886260b32bbf6.js +3 -0
  58. package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-e4973df05d64e1e3.js +1 -0
  59. package/web/.next/standalone/packages/web/.next/static/chunks/{webpack-5e318031611b2e10.js → webpack-9c22de248dd68981.js} +1 -1
  60. package/web/.next/standalone/packages/web/.next/static/css/{0ac01f481461c4c7.css → d31189a7bb85881e.css} +1 -1
  61. package/web/.next/static/chunks/4443.dda0426fdba73321.js +1 -0
  62. package/web/.next/static/chunks/7611.e41fdb3134887d76.js +1 -0
  63. package/web/.next/static/chunks/{8510-e9cbd21afe11204b.js → 8510-cceb88b11c23d839.js} +1 -1
  64. package/web/.next/static/chunks/883-ad6886260b32bbf6.js +3 -0
  65. package/web/.next/static/chunks/app/layout-e4973df05d64e1e3.js +1 -0
  66. package/web/.next/static/chunks/{webpack-5e318031611b2e10.js → webpack-9c22de248dd68981.js} +1 -1
  67. package/web/.next/static/css/{0ac01f481461c4c7.css → d31189a7bb85881e.css} +1 -1
  68. package/web/.next/standalone/packages/web/.next/server/chunks/1203.js +0 -1
  69. package/web/.next/standalone/packages/web/.next/server/chunks/5474.js +0 -1
  70. package/web/.next/standalone/packages/web/.next/static/chunks/4443.55cef42633623977.js +0 -1
  71. package/web/.next/standalone/packages/web/.next/static/chunks/7533.e9a95492b11b1dfc.js +0 -1
  72. package/web/.next/standalone/packages/web/.next/static/chunks/883-59786d724f807f7a.js +0 -3
  73. package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-29093e5a0f5ca5de.js +0 -1
  74. package/web/.next/static/chunks/4443.55cef42633623977.js +0 -1
  75. package/web/.next/static/chunks/7533.e9a95492b11b1dfc.js +0 -1
  76. package/web/.next/static/chunks/883-59786d724f807f7a.js +0 -3
  77. package/web/.next/static/chunks/app/layout-29093e5a0f5ca5de.js +0 -1
  78. /package/web/.next/standalone/packages/web/.next/static/{g1oDEOImo8BIRRBUjtBHv → PWDnetuxPxtH-yxFZlb7m}/_buildManifest.js +0 -0
  79. /package/web/.next/standalone/packages/web/.next/static/{g1oDEOImo8BIRRBUjtBHv → PWDnetuxPxtH-yxFZlb7m}/_ssgManifest.js +0 -0
  80. /package/web/.next/static/{g1oDEOImo8BIRRBUjtBHv → PWDnetuxPxtH-yxFZlb7m}/_buildManifest.js +0 -0
  81. /package/web/.next/static/{g1oDEOImo8BIRRBUjtBHv → PWDnetuxPxtH-yxFZlb7m}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4443],{34443:(e,l,a)=>{a.r(l),a.d(l,{KeylessCreatorOrReader:()=>r});var s=a(79748),n=a(7620),t=a(70574);let r=e=>{var l;let{children:a}=e,r=(null==(l=(0,s.useSelectedLayoutSegments)()[0])?void 0:l.startsWith("/_not-found"))||!1,[i,u]=n.useActionState(t.a,null);return((0,n.useEffect)(()=>{r||n.startTransition(()=>{u()})},[r]),n.isValidElement(a))?n.cloneElement(a,{key:null==i?void 0:i.publishableKey,publishableKey:null==i?void 0:i.publishableKey,__internal_keyless_claimKeylessApplicationUrl:null==i?void 0:i.claimUrl,__internal_keyless_copyInstanceKeysUrl:null==i?void 0:i.apiKeysUrl,__internal_bypassMissingPublishableKey:!0}):a}},70574:(e,l,a)=>{a.d(l,{a:()=>n});var s=a(5974);let n=(0,s.createServerReference)("00abb7d147d449594a929da345ab9c43be9d3fda1d",s.callServer,void 0,s.findSourceMapURL,"createOrReadKeylessAction")}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7533],{59914:(e,a,c)=>{c.r(a),c.d(a,{createOrReadKeylessAction:()=>s.a,deleteKeylessAction:()=>d,detectKeylessEnvDriftAction:()=>t.A,syncKeylessConfigAction:()=>l});var r=c(5974);let d=(0,r.createServerReference)("00861ee42a2c7e7a1d291bfd05ca0f13ea70366a3a",r.callServer,void 0,r.findSourceMapURL,"deleteKeylessAction");var t=c(28802),s=c(70574);let l=(0,r.createServerReference)("401ee1204809d2cf49f57469ed949006a57dae89b9",r.callServer,void 0,r.findSourceMapURL,"syncKeylessConfigAction")},70574:(e,a,c)=>{c.d(a,{a:()=>d});var r=c(5974);let d=(0,r.createServerReference)("00abb7d147d449594a929da345ab9c43be9d3fda1d",r.callServer,void 0,r.findSourceMapURL,"createOrReadKeylessAction")}}]);
@@ -1,3 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[883],{883:(e,t,n)=>{n.r(t),n.d(t,{SessionTerminal:()=>I});var r=n(54568),l=n(58299),a=n(13454);let i=(0,a.A)("file-up",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]);var s=n(26083);let o=(0,a.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"}]]),u=(0,a.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 c=n(60527),d=n(14796),h=n(36645),m=n(82797),f=n(7620),p=n(76081),w=n(85905),b=n(31404);let x=new Set(["queued","spawning","running","working","needs_input","stuck"]),g=new Set(["done","needs_input","stuck","errored","terminated","killed"]);var y=n(63680);function v(e){return"127.0.0.1"===e||"localhost"===e||"::1"===e}function k(e){return e.length>1&&e.endsWith("/")?e.replace(/\/+$/,""):e}function j(e){return e.startsWith("/api/sessions/")&&e.includes("/terminal/ttyd")}function N(e,t){let n=t?.trim();if(!n)return e;try{let t=new URL(e);if(!j(t.pathname))return e;return t.searchParams.set("bridgeId",n),t.toString()}catch{return e}}async function R(e,t){let n=await fetch((0,b.S)(`/api/sessions/${encodeURIComponent(e)}/terminal/token`,t?.bridgeId),{cache:"no-store",credentials:"same-origin",signal:t?.signal}),r=await n.json().catch(()=>null),l="string"==typeof r?.ttydHttpUrl&&r.ttydHttpUrl.trim().length>0?r.ttydHttpUrl.trim():null,a="string"==typeof r?.ttydWsUrl&&r.ttydWsUrl.trim().length>0?r.ttydWsUrl.trim():null,i="string"==typeof r?.tunnelUrl&&r.tunnelUrl.trim().length>0?r.tunnelUrl.trim():null,s=(()=>{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})();return 401===n.status||403===n.status?{interactive:!1,ttydHttpUrl:null,ttydWsUrl:null,tunnelUrl:null,reason:r?.error??"Terminal access denied"}:n.ok?{interactive:!0,ttydHttpUrl:l,ttydWsUrl:a,tunnelUrl:i,expiresInSeconds:s}:{interactive:!1,ttydHttpUrl:null,ttydWsUrl:null,tunnelUrl:null,reason:r?.error??"Terminal unavailable"}}async function U(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);v(n.hostname)&&!v(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=y.env.NEXT_PUBLIC_CONDUCTOR_BACKEND_URL?.trim();if(t)return t;let{protocol:n,hostname:r,origin:l,port:a}=window.location;return"3000"===a||"4747"===a?`${n}//${r}:4749`:l}(),r=window.location.origin,l=await R(e,t);if(!l.interactive)return{terminalUrl:null,interactive:!1,reason:l.reason,expiresInSeconds:null,tunnelUrl:null};if(l.tunnelUrl)try{let e=new URL(l.tunnelUrl),r=new URL(l.ttydHttpUrl??l.ttydWsUrl??"",n).searchParams.get("token");return r&&e.searchParams.set("token",r),{terminalUrl:N(e.toString(),t?.bridgeId),interactive:!0,reason:null,expiresInSeconds:l.expiresInSeconds,tunnelUrl:l.tunnelUrl}}catch{}let a=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&&j(e)?r:n,a=new URL(l,t);return"ws:"===a.protocol&&(a.protocol="http:"),"wss:"===a.protocol&&(a.protocol="https:"),"/ws"===a.pathname?a.pathname="/":a.pathname.endsWith("/ws")&&(a.pathname=k(a.pathname.slice(0,-3))),a.pathname=k(a.pathname),a.hash="",a.toString()}catch{return null}}(l.ttydHttpUrl,l.ttydWsUrl,n,r);return a?{terminalUrl:N(a,t?.bridgeId),interactive:!0,reason:null,expiresInSeconds:l.expiresInSeconds,tunnelUrl:l.tunnelUrl}:{terminalUrl:null,interactive:!1,reason:"Failed to resolve the ttyd terminal URL."}}function C(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 E=new Set(["archived","killed","terminated","restored"]),L=[0,50,150,400,1e3];async function A(e,t,n){let r=await fetch((0,b.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 T(e,t){let n;if(e&&t&&null!==e.contentWindow){try{n=new URL(e.src).origin}catch{n=window.location.origin}n&&"null"!==n&&e.contentWindow.postMessage({type:"conductor-ttyd-auth-token",token:t},n)}}function P(e){let{sessionId:t,projectId:n,bridgeId:a,sessionState:y,runtimeMode:v,pendingInsert:k,immersiveMobileMode:j=!1,panelVisible:N=!0,onPendingInsertConsumed:R}=e,P=(0,f.useRef)(null),I=(0,f.useRef)(null),M=(0,f.useRef)(0),z=(0,f.useRef)(0),$=(0,f.useRef)(null),_=(0,f.useRef)(null),D=(0,f.useRef)([]),F=(0,f.useRef)(!1),W=(0,f.useRef)(null),O=(0,f.useRef)(0),q=(0,f.useRef)(Date.now()),H=(0,f.useRef)(null),B=(0,f.useRef)(null),V=(0,f.useRef)(0),K=(0,f.useRef)(0),J=(0,f.useRef)(0),X=(0,f.useRef)(0),G=(0,f.useRef)(0),Q=(0,f.useMemo)(()=>y.trim().toLowerCase(),[y]),Y=v?.trim().toLowerCase()??null,Z="ttyd"===Y,ee=Z?!E.has(Q):x.has(Q),et=!Z&&!j&&g.has(Q),en=(0,f.useRef)(ee);en.current=ee;let er=(0,f.useRef)(null),el=(0,f.useRef)(null),[ea,ei]=(0,f.useState)(null),[es,eo]=(0,f.useState)(null),[eu,ec]=(0,f.useState)(ee),[ed,eh]=(0,f.useState)(null),[em,ef]=(0,f.useState)(!1),[ep,ew]=(0,f.useState)(0),[eb,ex]=(0,f.useState)(""),[eg,ey]=(0,f.useState)(!1),[ev,ek]=(0,f.useState)(null),[ej,eN]=(0,f.useState)(null),[eR,eU]=(0,f.useState)(null),[eC,eS]=(0,f.useState)(!1),[eE,eL]=(0,f.useState)(!1),eA=(0,f.useRef)(null),eT=(0,f.useRef)(!1),eP=(0,f.useRef)(0),eI=(0,f.useRef)(null),eM=(0,f.useRef)(null),ez=(0,f.useCallback)(()=>{for(let e of D.current)window.clearTimeout(e);D.current=[]},[]),e$=(0,f.useCallback)(()=>{let e=_.current,t=$.current;if(!e?.contentWindow||!t)return;let n=t.getBoundingClientRect(),r=Math.round(n.width),l=Math.round(n.height);if(r<10||l<10)return;let a=eI.current;a&&a.w===r&&a.h===l||(eI.current={w:r,h:l},function(e){let t;if(e?.contentWindow){try{t=new URL(e.src).origin}catch{t=window.location.origin}if(t&&"null"!==t)try{e.contentWindow.postMessage({type:"conductor-terminal-resize"},t)}catch{}}}(e))},[]),e_=(0,f.useCallback)(()=>{if(_.current?.contentWindow)for(let e of(ez(),L))D.current.push(window.setTimeout(()=>{e$()},e))},[ez,e$]),eD=(0,f.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}}(es);e&&T(_.current,e)},[es]),eF=(0,f.useCallback)(e=>{if(!ee)return;let t=window.Date.now();e?.force!==!0&&t-O.current<1500||(O.current=t,e?.resetResizeCache&&(eI.current=null,eP.current=t+120),e?.syncCurrentToken!==!1&&(eD(),e_()),e?.resolveConnection?(J.current+=1,ew(e=>e+1)):K.current+=1)},[ee,e_,eD]);(0,f.useEffect)(()=>{eA.current=ea},[ea]),(0,f.useEffect)(()=>{F.current=em},[em]),(0,f.useEffect)(()=>{M.current=0,z.current=0,ei(null),eo(null),ec(ee),eh(null),ef(!1),ew(0),ex(""),ey(!1),ek(null),eN(null),eU(null),eS(!1),eT.current=!1,F.current=!1,W.current=null,O.current=0,eP.current=0,eI.current=null,H.current=null,B.current=null,V.current=0,K.current=0,J.current=0,X.current=0,G.current=0,q.current=Date.now(),ez()},[ez,t]),(0,f.useEffect)(()=>{E.has(Q)&&(ei(null),eo(null),ef(!1),eh(null),eT.current=!1)},[Q,t]),(0,f.useEffect)(()=>{eI.current=null},[ea]),(0,f.useEffect)(()=>()=>ez(),[ez]),(0,f.useEffect)(()=>{let e=el.current;el.current=ee,ee||!0!==e||(er.current?.abort(),ec(!1),eh(null)),ee&&!1===e&&ew(e=>e+1)},[ee]),(0,f.useEffect)(()=>{if(!en.current)return void ec(!1);let e=!1,n=null,r=null,l=new AbortController;return er.current=l,(!eA.current||eT.current)&&ec(!0),eh(null),U(t,{signal:l.signal,bridgeId:a}).then(t=>{if(!e&&en.current){if(z.current=0,t.interactive&&t.terminalUrl){var n,l,a;let e,i,s=eT.current||(n=eA.current,l=t.terminalUrl,e=C(n),i=C(l),!e||e!==i);eT.current=!1,eo(t.terminalUrl);let o=!s&&eA.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),a=new URLSearchParams(r.searchParams);l.delete("token"),a.delete("token");let i=l.toString(),s=a.toString();if(i!==s)return!1;let o=new URL(e).searchParams.get("token"),u=new URL(t).searchParams.get("token");return o!==u}catch{return!1}}(eA.current,t.terminalUrl);if(s||!eA.current)eA.current||ef(!1),ei(t.terminalUrl);else if(o){let e=(()=>{try{return new URL(t.terminalUrl).searchParams.get("token")}catch{return null}})();if(e){let t=_.current;t&&T(t,e)}}eh(null);let u="number"!=typeof(a=t.expiresInSeconds)||!Number.isFinite(a)||a<=0?null:1e3*Math.max(5,a-30);null!==u&&(r=window.setTimeout(()=>{ew(e=>e+1)},u));return}en.current&&(eA.current||(ei(null),eo(null),ef(!1)),eh(t.reason??"Live ttyd terminal is unavailable."))}}).catch(t=>{if(e||!en.current||t instanceof DOMException&&"AbortError"===t.name)return;let r=!!eA.current;r||(ei(null),eo(null),ef(!1)),eh(t instanceof Error?t.message:"Failed to resolve ttyd terminal.");let l=z.current,a=r?5e3:Math.min(4e3,500*2**l);z.current=r?0:Math.min(l+1,3),n=window.setTimeout(()=>{ew(e=>e+1)},a)}).finally(()=>{!e&&en.current&&ec(!1)}),()=>{e=!0,l.abort(),er.current===l&&(er.current=null),null!==n&&window.clearTimeout(n),null!==r&&window.clearTimeout(r)}},[a,ep,t]),(0,f.useEffect)(()=>{let e=eM.current;if(eM.current=N,!N)return;let t=0,n=0;return!1===e&&(eF({resetResizeCache:!0,resolveConnection:!1}),t=requestAnimationFrame(()=>{n=requestAnimationFrame(()=>{eI.current=null,e_(),e$()})})),()=>{cancelAnimationFrame(t),cancelAnimationFrame(n)}},[e$,N,eF,e_]);let eW=(0,f.useCallback)(()=>{if(!ee)return;let e=window.Date.now(),t=null===W.current?0:e-W.current;W.current=null,eF({force:t>0,resetResizeCache:t>0,resolveConnection:!1})},[ee,eF]);(0,f.useEffect)(()=>{if("u"<typeof document)return;let e=()=>{if("hidden"===document.visibilityState){W.current=window.Date.now(),eP.current=window.Date.now()+320;return}"visible"===document.visibilityState&&(eP.current=window.Date.now()+200,eW())},t=()=>{eW()},n=()=>{eW()};return document.addEventListener("visibilitychange",e),window.addEventListener("pageshow",t),window.addEventListener("online",n),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("pageshow",t),window.removeEventListener("online",n)}},[eW]),(0,f.useEffect)(()=>{if(!N||!ee)return;let e=()=>{eP.current=window.Date.now()+120,eI.current=null,e_(),requestAnimationFrame(()=>{e$()})};return window.addEventListener("focus",e),()=>{window.removeEventListener("focus",e)}},[ee,e$,N,e_]),(0,f.useEffect)(()=>{let e=e=>{e.data&&"object"==typeof e.data&&"conductor-ttyd-auth-token-request"===e.data.type&&e.source===_.current?.contentWindow&&(X.current+=1,eF({force:!0,resetResizeCache:!0,resolveConnection:!0}))};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[eF]),(0,f.useEffect)(()=>{if(!k||k.nonce<=M.current)return;M.current=k.nonce;let e=k.inlineText.trim();if(0===e.length)return;let n=!1;return A(t,`${e} `,a).then(()=>{n||(eN(null),R?.())}).catch(e=>{n||eN(e instanceof Error?e.message:"Failed to queue terminal input.")}),()=>{n=!0}},[a,R,k,t]),(0,f.useEffect)(()=>{em&&eD()},[em,eD]),(0,f.useEffect)(()=>{if(!ee||!ea||em)return;let e=window.setTimeout(()=>{F.current||eh("The terminal view did not finish loading in time. Try reload or open in a new tab.")},25e3);return()=>window.clearTimeout(e)},[ee,em,ea]);let eO=(0,f.useCallback)(async()=>{let e=eb.trim();if(0!==e.length&&!eg){ey(!0),ek(null);try{let n=await fetch((0,b.S)(`/api/sessions/${encodeURIComponent(t)}/actions`,a),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"send",message:e})});if(!n.ok){let e=await n.json().catch(()=>null);throw Error(e?.error??`Failed to send message (${n.status})`)}ex(""),P.current?.focus()}catch(e){ek(e instanceof Error?e.message:"Failed to send message")}finally{ey(!1)}}},[a,eb,eg,t]),eq=(0,f.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&await A(t,e,a)}catch{}},[a,t]),eH=(0,f.useCallback)(()=>{I.current?.click()},[]),eB=(0,f.useCallback)(async e=>{let{files:r}=e.target;if(e.target.value="",r&&0!==r.length){eU(null),eS(!0);try{for(let e of(await (0,w.P)({files:Array.from(r),projectId:n,taskRef:t,bridgeId:a})))await A(t,`\r
2
- [attached file: ${e}]\r
3
- `,a)}catch(e){eU(e instanceof Error?e.message:"Failed to upload attachment.")}finally{eS(!1)}}},[a,n,t]),eV=(0,f.useCallback)(async()=>{await A(t,"\x03",a)},[a,t]),eK=(0,f.useCallback)(()=>{let e=$.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.height="100%",eL(!1);return}if(n<=0){e.style.height="100%";return}e.style.height=`${Math.max(0,Math.round(n))}px`,eL(!0)},[]);(0,f.useEffect)(()=>{let e=$.current;if(!e)return;let t=null,n=()=>{if(!N||window.Date.now()<eP.current)return;let n=e.getBoundingClientRect();n.height<10||n.width<10||(null!==t&&(window.clearTimeout(t),t=null),t=window.setTimeout(()=>{if(t=null,window.Date.now()<eP.current)return;let n=e.getBoundingClientRect();n.height<10||n.width<10||(eK(),e$())},150))};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")}},[eK,ee,e$,N,ea]),(0,f.useEffect)(()=>{},[ed,ee,em,Y,ev,ej,eu,t,ea,es,Z]);let eJ=(0,f.useCallback)(()=>{G.current+=1,eh(null),z.current=0,eT.current=!0,ew(e=>e+1)},[]),eX=ee?"Connecting live terminal":et?"Session is waiting for input":"Live terminal is not active",eG=ed??(ee?"Reconnecting to the existing ttyd terminal.":Z?"This ttyd terminal is no longer attached. It only closes after an explicit kill or archive.":et?"Send a follow-up below to relaunch the agent in a fresh ttyd terminal.":`Session status is \`${Q}\`. Interactive ttyd terminals only run while the agent is active.`),eQ=es??ea??void 0;return(0,r.jsxs)("div",{className:j?"group/terminal relative flex min-h-0 min-w-0 w-full flex-1 flex-col overflow-hidden bg-[#060404]":"group/terminal relative flex 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-20 flex items-center gap-2 sm:right-3 sm:top-3",children:[(0,r.jsx)("input",{ref:I,type:"file",multiple:!0,accept:"*/*",className:"sr-only",tabIndex:-1,"aria-hidden":!0,onChange:e=>void eB(e)}),(0,r.jsx)(p.$,{type:"button",size:"icon",variant:"ghost",disabled:!ee||!ea||eC,className:"h-9 w-9 rounded-full border border-white/10 bg-[#141010]/92 text-[#c9c0b7] backdrop-blur-sm hover:bg-[#201818] disabled:opacity-40 sm:h-7 sm:w-7",onClick:eH,"aria-label":"Attach photos or files",children:eC?(0,r.jsx)(l.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(i,{className:"h-3.5 w-3.5"})}),eQ?(0,r.jsx)(p.$,{asChild:!0,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",children:(0,r.jsx)("a",{href:eQ,target:"_blank",rel:"noreferrer","aria-label":"Open terminal in new tab",children:(0,r.jsx)(s.A,{className:"h-3.5 w-3.5"})})}):null,window.matchMedia?.("(pointer: coarse)").matches?(0,r.jsx)(p.$,{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:eq,"aria-label":"Paste from clipboard",children:(0,r.jsx)(o,{className:"h-3.5 w-3.5"})}):null,(0,r.jsx)(p.$,{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:eV,"aria-label":"Soft stop (Ctrl+C)",children:(0,r.jsx)(u,{className:"h-3.5 w-3.5"})}),(0,r.jsx)(p.$,{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:eJ,"aria-label":"Reload ttyd terminal",children:eu?(0,r.jsx)(l.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:j?"min-h-0 min-w-0 h-0 flex-1 overflow-hidden px-0 pb-[env(safe-area-inset-bottom)] pt-0 w-full":"min-h-0 min-w-0 h-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:ee&&ea?(0,r.jsxs)("div",{ref:$,className:"relative flex h-full min-h-0 w-full flex-1 flex-col overflow-hidden rounded-[10px] bg-[#060404] pb-[env(safe-area-inset-bottom)]",children:[em?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)(l.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,r.jsx)("span",{children:"Loading ttyd terminal…"})]})}),(0,r.jsx)("iframe",{ref:_,title:`ttyd terminal for ${t}`,src:ea,className:"block h-full min-h-0 w-full flex-1 border-0 bg-[#060404]",allow:"clipboard-read; clipboard-write",loading:"eager",onError:()=>{eh("Failed to load the terminal frame. Try reload or open in a new tab.")},onLoad:()=>{let e=Date.now();V.current+=1,B.current=e,null===H.current&&(H.current=e),ef(!0),eh(null),eK(),eD(),e_()}},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:ed?(0,r.jsx)(d.A,{className:"h-4 w-4"}):(0,r.jsx)(l.A,{className:`h-4 w-4 ${eu?"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:eG}),eQ?(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)("a",{href:eQ,target:"_blank",rel:"noreferrer",className:"text-[12px] text-[#d7c6b7] underline underline-offset-4",children:"Open the ttyd terminal directly"})}):null]})]})})})}),!et&&(ej||eR)?(0,r.jsxs)("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:[ej?(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)(d.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:ej}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>eN(null),children:(0,r.jsx)(h.A,{className:"h-3 w-3"})})]}):null,eR?(0,r.jsxs)("div",{className:`flex items-center gap-1.5 ${ej?"mt-2":""}`,children:[(0,r.jsx)(d.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:eR}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>eU(null),children:(0,r.jsx)(h.A,{className:"h-3 w-3"})})]}):null]}):null,et?(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:[ej?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pt-1.5 text-[11px] text-[#ffb39e]",children:[(0,r.jsx)(d.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:ej}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>eN(null),children:(0,r.jsx)(h.A,{className:"h-3 w-3"})})]}):null,eR?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pt-1.5 text-[11px] text-[#ffb39e]",children:[(0,r.jsx)(d.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:eR}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>eU(null),children:(0,r.jsx)(h.A,{className:"h-3 w-3"})})]}):null,ev?(0,r.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pt-1.5 text-[11px] text-[#ff8f7a]",children:[(0,r.jsx)(d.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:ev}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>ek(null),children:(0,r.jsx)(h.A,{className:"h-3 w-3"})})]}):null,(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),eO()},className:"flex items-center gap-2 px-2 py-2 lg:px-3",children:[(0,r.jsx)("input",{ref:P,type:"text",value:eb,onChange:e=>ex(e.target.value),placeholder:"Send a follow-up message…",enterKeyHint:"done",disabled:eg,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)(p.$,{type:"submit",size:"icon",variant:"ghost",disabled:eg||0===eb.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:eg?(0,r.jsx)(l.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(m.A,{className:"h-3.5 w-3.5"})})]})]}):null]})}let I=(0,f.memo)(function(e){return(0,r.jsx)(P,{...e})},function(e,t){var n,r;let l=e.panelVisible??!0,a=t.panelVisible??!0;return e.sessionId===t.sessionId&&e.projectId===t.projectId&&e.bridgeId===t.bridgeId&&l===a&&((n=e.pendingInsert)===(r=t.pendingInsert)||!!n&&!!r&&n.nonce===r.nonce&&n.inlineText===r.inlineText)&&(!l&&!a||e.sessionState===t.sessionState&&e.runtimeMode===t.runtimeMode&&e.immersiveMobileMode===t.immersiveMobileMode)})},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"}]])},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"}]])},85905:(e,t,n)=>{n.d(t,{P:()=>a});var r=n(31404);function l(e){return e&&"object"==typeof e?e:null}async function a({files:e,projectId:t,taskRef:n,bridgeId:i,preferAbsolute:s=!0}){if(!e.length)return[];let o=t.trim();if(!o)throw Error("Project id is required to upload attachments");let u=new FormData;u.append("projectId",o);let c=n?.trim();for(let t of(c&&u.append("taskRef",c),e))u.append("files",t);let d=await fetch((0,r.S)("/api/attachments",i),{method:"POST",body:u}),h=await d.json().catch(()=>null);if(!d.ok){let t=1===e.length?e[0]?.name??"attachment":`${e.length} attachments`;throw Error(h?.error??`Failed to upload ${t}`)}let m=(Array.isArray(h?.files)?h.files:h?[h]:[]).map(e=>(function(e,t){let n=l(e);if(!n)return null;let r=l(n.attachment);for(let e of t?[n.absolutePath,n.path,n.filePath,r?.absolutePath,r?.path,r?.filePath]:[n.path,n.absolutePath,n.filePath,r?.path,r?.absolutePath,r?.filePath])if("string"==typeof e&&e.trim().length>0)return e.trim();return null})(e,s)).filter(e=>!!e);if(0===m.length)throw Error("Attachment upload succeeded but did not return a usable file path");return m}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{28802:(e,r,t)=>{"use strict";t.d(r,{A:()=>n});var o=t(5974);let n=(0,o.createServerReference)("00935baf0c72da79b54ac2d3fb52570b11526d0773",o.callServer,void 0,o.findSourceMapURL,"detectKeylessEnvDriftAction")},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})}},57633:(e,r,t)=>{"use strict";t.d(r,{y:()=>n});var o=t(5974);let n=(0,o.createServerReference)("002ba39cbc683394dea028086fa16f4b383f0c08b2",o.callServer,void 0,o.findSourceMapURL,"invalidateCacheAction")},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()}]);