conductor-oss 0.53.13 → 0.53.14

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 (87) 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 +5 -5
  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 +11 -11
  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 +5 -5
  44. package/web/.next/standalone/packages/web/.next/server/chunks/2089.js +3 -3
  45. package/web/.next/standalone/packages/web/.next/server/chunks/406.js +1 -1
  46. package/web/.next/standalone/packages/web/.next/server/chunks/5168.js +1 -0
  47. package/web/.next/standalone/packages/web/.next/server/chunks/5850.js +1 -0
  48. package/web/.next/standalone/packages/web/.next/server/chunks/5979.js +1 -0
  49. package/web/.next/standalone/packages/web/.next/server/chunks/9455.js +1 -1
  50. package/web/.next/standalone/packages/web/.next/server/middleware-build-manifest.js +1 -1
  51. package/web/.next/standalone/packages/web/.next/server/middleware-react-loadable-manifest.js +1 -1
  52. package/web/.next/standalone/packages/web/.next/server/pages/500.html +1 -1
  53. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
  54. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +1 -1
  55. package/web/.next/standalone/packages/web/.next/static/chunks/{4997-c79d84ebc09b7c8e.js → 1827-e7929a373255aa43.js} +1 -1
  56. package/web/.next/standalone/packages/web/.next/static/chunks/4443.68f2d108206f7a05.js +1 -0
  57. package/web/.next/standalone/packages/web/.next/static/chunks/6736.1797f8c95f3d6737.js +1 -0
  58. package/web/.next/{static/chunks/8510-06220bbac56ef89c.js → standalone/packages/web/.next/static/chunks/8510-c62227925b011cdc.js} +1 -1
  59. package/web/.next/standalone/packages/web/.next/static/chunks/9542-194b28288bb36c05.js +3 -0
  60. package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-709ce6ae6d755b5c.js +1 -0
  61. package/web/.next/{static/chunks/app/page-809480e7cb5d2181.js → standalone/packages/web/.next/static/chunks/app/page-12cbcde60dae07c5.js} +1 -1
  62. package/web/.next/standalone/packages/web/.next/static/chunks/app/sessions/[id]/{page-32c2d13d7e046547.js → page-04c4aa7a26653631.js} +1 -1
  63. package/web/.next/standalone/packages/web/.next/static/chunks/{webpack-15fe30f28b920208.js → webpack-115d4785d48d2644.js} +1 -1
  64. package/web/.next/static/chunks/{4997-c79d84ebc09b7c8e.js → 1827-e7929a373255aa43.js} +1 -1
  65. package/web/.next/static/chunks/4443.68f2d108206f7a05.js +1 -0
  66. package/web/.next/static/chunks/6736.1797f8c95f3d6737.js +1 -0
  67. package/web/.next/{standalone/packages/web/.next/static/chunks/8510-06220bbac56ef89c.js → static/chunks/8510-c62227925b011cdc.js} +1 -1
  68. package/web/.next/static/chunks/9542-194b28288bb36c05.js +3 -0
  69. package/web/.next/static/chunks/app/layout-709ce6ae6d755b5c.js +1 -0
  70. package/web/.next/{standalone/packages/web/.next/static/chunks/app/page-809480e7cb5d2181.js → static/chunks/app/page-12cbcde60dae07c5.js} +1 -1
  71. package/web/.next/static/chunks/app/sessions/[id]/{page-32c2d13d7e046547.js → page-04c4aa7a26653631.js} +1 -1
  72. package/web/.next/static/chunks/{webpack-15fe30f28b920208.js → webpack-115d4785d48d2644.js} +1 -1
  73. package/web/.next/standalone/packages/web/.next/server/chunks/3812.js +0 -1
  74. package/web/.next/standalone/packages/web/.next/server/chunks/7023.js +0 -1
  75. package/web/.next/standalone/packages/web/.next/server/chunks/9765.js +0 -1
  76. package/web/.next/standalone/packages/web/.next/static/chunks/2942.95605b69394c0085.js +0 -1
  77. package/web/.next/standalone/packages/web/.next/static/chunks/4443.ce75f110abab27ee.js +0 -1
  78. package/web/.next/standalone/packages/web/.next/static/chunks/9542-574bc67ece70d8b2.js +0 -3
  79. package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-b921aa1902fa3c22.js +0 -1
  80. package/web/.next/static/chunks/2942.95605b69394c0085.js +0 -1
  81. package/web/.next/static/chunks/4443.ce75f110abab27ee.js +0 -1
  82. package/web/.next/static/chunks/9542-574bc67ece70d8b2.js +0 -3
  83. package/web/.next/static/chunks/app/layout-b921aa1902fa3c22.js +0 -1
  84. /package/web/.next/standalone/packages/web/.next/static/{MPIcJ64jLVnch4KO-ZSqI → 1FF6avQ07L-sEwfxyHc2H}/_buildManifest.js +0 -0
  85. /package/web/.next/standalone/packages/web/.next/static/{MPIcJ64jLVnch4KO-ZSqI → 1FF6avQ07L-sEwfxyHc2H}/_ssgManifest.js +0 -0
  86. /package/web/.next/static/{MPIcJ64jLVnch4KO-ZSqI → 1FF6avQ07L-sEwfxyHc2H}/_buildManifest.js +0 -0
  87. /package/web/.next/static/{MPIcJ64jLVnch4KO-ZSqI → 1FF6avQ07L-sEwfxyHc2H}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2942],{24849:(e,c,a)=>{a.d(c,{a:()=>d});var r=a(5974);let d=(0,r.createServerReference)("00f17ace4781a7c856d2016a186f253d9d0e46aa49",r.callServer,void 0,r.findSourceMapURL,"createOrReadKeylessAction")},92942:(e,c,a)=>{a.r(c),a.d(c,{createOrReadKeylessAction:()=>s.a,deleteKeylessAction:()=>t,detectKeylessEnvDriftAction:()=>r.A,syncKeylessConfigAction:()=>l});var r=a(48572),d=a(5974);let t=(0,d.createServerReference)("00e6563dffdcdc047a51d0e3d32a0ab0150c7aa6e0",d.callServer,void 0,d.findSourceMapURL,"deleteKeylessAction");var s=a(24849);let l=(0,d.createServerReference)("40bb4710890e1814d5f3796b505eac0c9f09369e47",d.callServer,void 0,d.findSourceMapURL,"syncKeylessConfigAction")}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4443],{24849:(e,l,a)=>{a.d(l,{a:()=>n});var s=a(5974);let n=(0,s.createServerReference)("00f17ace4781a7c856d2016a186f253d9d0e46aa49",s.callServer,void 0,s.findSourceMapURL,"createOrReadKeylessAction")},34443:(e,l,a)=>{a.r(l),a.d(l,{KeylessCreatorOrReader:()=>r});var s=a(79748),n=a(7620),t=a(24849);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}}}]);
@@ -1,3 +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:()=>P});var r=n(54568),l=n(58299),a=n(63253),i=n(13454);let s=(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"}]]),o=(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 c=n(60527),u=n(14796),d=n(36645),h=n(82797),m=n(7620),f=n(76081),p=n(85905),w=n(31404);let b=new Set(["queued","spawning","running","working","needs_input","stuck"]),x=new Set(["done","needs_input","stuck","errored","terminated","killed"]);var g=n(63680);function y(e){return"127.0.0.1"===e||"localhost"===e||"::1"===e}function v(e){return e.length>1&&e.endsWith("/")?e.replace(/\/+$/,""):e}function k(e){return e.startsWith("/api/sessions/")&&e.includes("/terminal/ttyd")}function j(e,t){let n=t?.trim();if(!n)return e;try{let t=new URL(e);if(!k(t.pathname))return e;return t.searchParams.set("bridgeId",n),t.toString()}catch{return e}}async function N(e,t){let n=await fetch((0,w.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);y(n.hostname)&&!y(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=g.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 N(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:j(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&&k(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=v(a.pathname.slice(0,-3))),a.pathname=v(a.pathname),a.hash="",a.toString()}catch{return null}}(l.ttydHttpUrl,l.ttydWsUrl,n,r);return a?{terminalUrl:j(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 S(e){if(!e)return null;try{let t=new URL(e);return t.searchParams.delete("token"),t.hash="",t.toString()}catch{return e}}var R=n(86181);let C=new Set(["archived","killed","terminated","restored"]),E=[0,50,150,400,1e3];async function L(e,t,n){let r=await fetch((0,w.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 A(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 T(e){let{sessionId:t,projectId:n,bridgeId:i,sessionState:g,runtimeMode:y,pendingInsert:v,immersiveMobileMode:k=!1,panelVisible:j=!0,onPendingInsertConsumed:N}=e,T=(0,m.useRef)(null),P=(0,m.useRef)(null),I=(0,m.useRef)(0),M=(0,m.useRef)(0),$=(0,m.useRef)(null),_=(0,m.useRef)(null),z=(0,m.useRef)([]),W=(0,m.useRef)(!1),F=(0,m.useRef)(null),D=(0,m.useRef)(0),O=(0,m.useMemo)(()=>g.trim().toLowerCase(),[g]),H=y?.trim().toLowerCase()??null,q="ttyd"===H,B=q?!C.has(O):b.has(O),V=!q&&!k&&x.has(O),[K,J]=(0,m.useState)(null),[X,G]=(0,m.useState)(null),[Q,Y]=(0,m.useState)(B),[Z,ee]=(0,m.useState)(null),[et,en]=(0,m.useState)(!1),[er,el]=(0,m.useState)(0),[ea,ei]=(0,m.useState)(""),[es,eo]=(0,m.useState)(!1),[ec,eu]=(0,m.useState)(null),[ed,eh]=(0,m.useState)(null),[em,ef]=(0,m.useState)(null),[ep,ew]=(0,m.useState)(!1),[eb,ex]=(0,m.useState)(!1),eg=(0,m.useRef)(null),ey=(0,m.useRef)(!1),ev=(0,m.useRef)(0),ek=(0,m.useRef)(null),ej=(0,m.useRef)(null),eN=(0,m.useCallback)(()=>{for(let e of z.current)window.clearTimeout(e);z.current=[]},[]),eU=(0,m.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=ek.current;a&&a.w===r&&a.h===l||(ek.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))},[]),eS=(0,m.useCallback)(()=>{if(_.current?.contentWindow)for(let e of(eN(),E))z.current.push(window.setTimeout(()=>{eU()},e))},[eN,eU]),eR=(0,m.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}}(X);e&&A(_.current,e)},[X]);(0,m.useEffect)(()=>{eg.current=K},[K]),(0,m.useEffect)(()=>{W.current=et},[et]),(0,m.useEffect)(()=>{I.current=0,M.current=0,J(null),G(null),Y(B),ee(null),en(!1),el(0),ei(""),eo(!1),eu(null),eh(null),ef(null),ew(!1),ey.current=!1,W.current=!1,F.current=null,D.current=0,ev.current=0,ek.current=null,eN()},[eN,B,t]),(0,m.useEffect)(()=>{ek.current=null},[K]),(0,m.useEffect)(()=>()=>eN(),[eN]),(0,m.useEffect)(()=>{if(!B){Y(!1),ee(null);return}let e=!1,n=null,r=null,l=new AbortController;return(!eg.current||ey.current)&&Y(!0),ee(null),U(t,{signal:l.signal,bridgeId:i}).then(t=>{if(!e){if(M.current=0,t.interactive&&t.terminalUrl){var n,l,a;let e,i,s=ey.current||(n=eg.current,l=t.terminalUrl,e=S(n),i=S(l),!e||e!==i);ey.current=!1,G(t.terminalUrl);let o=!s&&eg.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"),c=new URL(t).searchParams.get("token");return o!==c}catch{return!1}}(eg.current,t.terminalUrl);if(s||!eg.current)eg.current||en(!1),J(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&&A(t,e)}}ee(null);let c="number"!=typeof(a=t.expiresInSeconds)||!Number.isFinite(a)||a<=0?null:1e3*Math.max(5,a-10);null!==c&&(r=window.setTimeout(()=>{el(e=>e+1)},c));return}eg.current||(J(null),G(null),en(!1)),ee(t.reason??"Live ttyd terminal is unavailable.")}}).catch(t=>{if(e||t instanceof DOMException&&"AbortError"===t.name)return;let r=!!eg.current;r||(J(null),G(null),en(!1)),ee(t instanceof Error?t.message:"Failed to resolve ttyd terminal.");let l=M.current,a=r?5e3:Math.min(4e3,500*2**l);M.current=r?0:Math.min(l+1,3),n=window.setTimeout(()=>{el(e=>e+1)},a)}).finally(()=>{e||Y(!1)}),()=>{e=!0,l.abort(),null!==n&&window.clearTimeout(n),null!==r&&window.clearTimeout(r)}},[i,er,B,t]),(0,m.useEffect)(()=>{let e=ej.current;ej.current=j,j&&!1===e&&(ek.current=null,ev.current=window.Date.now()+120,requestAnimationFrame(()=>{requestAnimationFrame(()=>{eR(),eS()})}))},[j,eS,eR]);let eC=(0,m.useCallback)(()=>{if(!B)return;let e=window.Date.now();if(e-D.current<1500)return;D.current=e;let t=null===F.current?0:e-F.current;F.current=null,eR(),eS(),t>=3e5&&W.current&&eg.current&&(ey.current=!0,el(e=>e+1))},[B,eS,eR]);(0,m.useEffect)(()=>{if("u"<typeof document)return;let e=()=>{if("hidden"===document.visibilityState){F.current=window.Date.now(),ev.current=window.Date.now()+250;return}"visible"===document.visibilityState&&(ev.current=window.Date.now()+100,eC())},t=()=>{eC()},n=()=>{el(e=>e+1)};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)}},[eC]),(0,m.useEffect)(()=>{if(!v||v.nonce<=I.current)return;I.current=v.nonce;let e=v.inlineText.trim();if(0===e.length)return;let n=!1;return L(t,`${e} `,i).then(()=>{n||(eh(null),N?.())}).catch(e=>{n||eh(e instanceof Error?e.message:"Failed to queue terminal input.")}),()=>{n=!0}},[i,N,v,t]),(0,m.useEffect)(()=>{et&&eR()},[et,eR]),(0,m.useEffect)(()=>{if(!B||!K||et)return;let e=window.setTimeout(()=>{W.current||ee("The terminal view did not finish loading in time. Try reload or open in a new tab.")},25e3);return()=>window.clearTimeout(e)},[B,et,K]);let eE=(0,m.useCallback)(async()=>{let e=ea.trim();if(0!==e.length&&!es){eo(!0),eu(null);try{let n=await fetch((0,w.S)(`/api/sessions/${encodeURIComponent(t)}/actions`,i),{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})`)}ei(""),T.current?.focus()}catch(e){eu(e instanceof Error?e.message:"Failed to send message")}finally{eo(!1)}}},[i,ea,es,t]),eL=(0,m.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&await L(t,e,i)}catch{}},[i,t]),eA=(0,m.useCallback)(()=>{P.current?.click()},[]),eT=(0,m.useCallback)(async e=>{let{files:r}=e.target;if(e.target.value="",r&&0!==r.length){ef(null),ew(!0);try{for(let e of(await (0,p.P)({files:Array.from(r),projectId:n,taskRef:t,bridgeId:i})))await L(t,`\r
2
- [attached file: ${e}]\r
3
- `,i)}catch(e){ef(e instanceof Error?e.message:"Failed to upload attachment.")}finally{ew(!1)}}},[i,n,t]),eP=(0,m.useCallback)(async()=>{await L(t,"\x03",i)},[i,t]),eI=(0,m.useCallback)(()=>{let e=$.current;if(!e)return;let t=window.visualViewport;if(!t)return;let{usableHeight:n,keyboardVisible:r}=(0,R.wP)(window.innerHeight,t.height,t.offsetTop,e.getBoundingClientRect().top);if(!r){e.style.height="100%",ex(!1);return}if(n<=0){e.style.height="100%";return}e.style.height=`${Math.max(0,Math.round(n))}px`,ex(!0)},[]);(0,m.useEffect)(()=>{let e=$.current;if(!e)return;let t=null,n=()=>{if(!j||window.Date.now()<ev.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()<ev.current)return;let n=e.getBoundingClientRect();n.height<10||n.width<10||(eI(),eU())},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")}},[eI,B,eU,j,K]),(0,m.useEffect)(()=>{},[Z,B,et,H,ec,ed,Q,t,K,X,q]);let eM=(0,m.useCallback)(()=>{ee(null),M.current=0,ey.current=!0,el(e=>e+1)},[]),e$=B?"Connecting live terminal":V?"Session is waiting for input":"Live terminal is not active",e_=Z??(B?"Reconnecting to the existing ttyd terminal.":q?"This ttyd terminal is no longer attached. It only closes after an explicit kill or archive.":V?"Send a follow-up below to relaunch the agent in a fresh ttyd terminal.":`Session status is \`${O}\`. Interactive ttyd terminals only run while the agent is active.`),ez=X??K??void 0;return(0,r.jsxs)("div",{className:k?"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-10 flex items-center gap-2 sm:right-3 sm:top-3",children:[(0,r.jsx)("input",{ref:P,type:"file",multiple:!0,accept:"*/*",className:"sr-only",tabIndex:-1,"aria-hidden":!0,onChange:e=>void eT(e)}),(0,r.jsx)(f.$,{type:"button",size:"icon",variant:"ghost",disabled:!B||!K||ep,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:eA,"aria-label":"Attach photos or files",children:ep?(0,r.jsx)(l.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(a.A,{className:"h-3.5 w-3.5"})}),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:eL,"aria-label":"Paste from clipboard",children:(0,r.jsx)(s,{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:eP,"aria-label":"Soft stop (Ctrl+C)",children:(0,r.jsx)(o,{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:eM,"aria-label":"Reload ttyd terminal",children:Q?(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:k?"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:B&&K?(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:[et?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:K,className:"block h-full min-h-0 w-full flex-1 border-0 bg-[#060404]",allow:"clipboard-read; clipboard-write",loading:"eager",onError:()=>{ee("Failed to load the terminal frame. Try reload or open in a new tab.")},onLoad:()=>{en(!0),ee(null),eI(),eR(),eS()}},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:Z?(0,r.jsx)(u.A,{className:"h-4 w-4"}):(0,r.jsx)(l.A,{className:`h-4 w-4 ${Q?"animate-spin":""}`})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-[14px] font-medium",children:e$}),(0,r.jsx)("div",{className:"mt-1 text-[12px] leading-5 text-[#a79c94]",children:e_}),ez?(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)("a",{href:ez,target:"_blank",rel:"noreferrer",className:"text-[12px] text-[#d7c6b7] underline underline-offset-4",children:"Open the ttyd terminal directly"})}):null]})]})})})}),!V&&(ed||em)?(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:[ed?(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:ed}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>eh(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,em?(0,r.jsxs)("div",{className:`flex items-center gap-1.5 ${ed?"mt-2":""}`,children:[(0,r.jsx)(u.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:em}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>ef(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null]}):null,V?(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:[ed?(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:ed}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>eh(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,em?(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:em}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>ef(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,ec?(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:ec}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>eu(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),eE()},className:"flex items-center gap-2 px-2 py-2 lg:px-3",children:[(0,r.jsx)("input",{ref:T,type:"text",value:ea,onChange:e=>ei(e.target.value),placeholder:"Send a follow-up message…",enterKeyHint:"done",disabled:es,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:es||0===ea.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:es?(0,r.jsx)(l.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(h.A,{className:"h-3.5 w-3.5"})})]})]}):null]})}let P=(0,m.memo)(function(e){return(0,r.jsx)(T,{...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&&(e.panelVisible??!0)===(t.panelVisible??!0)&&((n=e.pendingInsert)===(r=t.pendingInsert)||!!n&&!!r&&n.nonce===r.nonce&&n.inlineText===r.inlineText)})},63253:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(13454).A)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]])},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 c=new FormData;c.append("projectId",o);let u=n?.trim();for(let t of(u&&c.append("taskRef",u),e))c.append("files",t);let d=await fetch((0,r.S)("/api/attachments",i),{method:"POST",body:c}),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],{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:()=>i});var o=t(54568),n=t(7620);let s=(0,n.createContext)({theme:"dark",toggleTheme:()=>{}});function d(e){let r=document.documentElement;r.classList.remove("dark","light"),r.classList.add(e)}function i({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),d(e);return}d("dark")},[]);let l=(0,n.useCallback)(()=>{t(e=>{let r="dark"===e?"light":"dark";return localStorage.setItem("conductor-theme",r),d(r),r})},[]);return(0,o.jsx)(s.Provider,{value:{theme:r,toggleTheme:l},children:e})}},48572:(e,r,t)=>{"use strict";t.d(r,{A:()=>n});var o=t(5974);let n=(0,o.createServerReference)("0097b82b6df85d12cd66e33c6760bc4f8241d701b6",o.callServer,void 0,o.findSourceMapURL,"detectKeylessEnvDriftAction")},74471:()=>{},83172:(e,r,t)=>{"use strict";t.d(r,{y:()=>n});var o=t(5974);let n=(0,o.createServerReference)("0022b4cd035ed4439822570dd25fd0573e79cb97d8",o.callServer,void 0,o.findSourceMapURL,"invalidateCacheAction")},92690:(e,r,t)=>{"use strict";t.d(r,{TooltipProvider:()=>i});var o=t(54568),n=t(97257),s=t(7620),d=t(46916);let i=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,d.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([[2942],{24849:(e,c,a)=>{a.d(c,{a:()=>d});var r=a(5974);let d=(0,r.createServerReference)("00f17ace4781a7c856d2016a186f253d9d0e46aa49",r.callServer,void 0,r.findSourceMapURL,"createOrReadKeylessAction")},92942:(e,c,a)=>{a.r(c),a.d(c,{createOrReadKeylessAction:()=>s.a,deleteKeylessAction:()=>t,detectKeylessEnvDriftAction:()=>r.A,syncKeylessConfigAction:()=>l});var r=a(48572),d=a(5974);let t=(0,d.createServerReference)("00e6563dffdcdc047a51d0e3d32a0ab0150c7aa6e0",d.callServer,void 0,d.findSourceMapURL,"deleteKeylessAction");var s=a(24849);let l=(0,d.createServerReference)("40bb4710890e1814d5f3796b505eac0c9f09369e47",d.callServer,void 0,d.findSourceMapURL,"syncKeylessConfigAction")}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4443],{24849:(e,l,a)=>{a.d(l,{a:()=>n});var s=a(5974);let n=(0,s.createServerReference)("00f17ace4781a7c856d2016a186f253d9d0e46aa49",s.callServer,void 0,s.findSourceMapURL,"createOrReadKeylessAction")},34443:(e,l,a)=>{a.r(l),a.d(l,{KeylessCreatorOrReader:()=>r});var s=a(79748),n=a(7620),t=a(24849);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}}}]);
@@ -1,3 +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:()=>P});var r=n(54568),l=n(58299),a=n(63253),i=n(13454);let s=(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"}]]),o=(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 c=n(60527),u=n(14796),d=n(36645),h=n(82797),m=n(7620),f=n(76081),p=n(85905),w=n(31404);let b=new Set(["queued","spawning","running","working","needs_input","stuck"]),x=new Set(["done","needs_input","stuck","errored","terminated","killed"]);var g=n(63680);function y(e){return"127.0.0.1"===e||"localhost"===e||"::1"===e}function v(e){return e.length>1&&e.endsWith("/")?e.replace(/\/+$/,""):e}function k(e){return e.startsWith("/api/sessions/")&&e.includes("/terminal/ttyd")}function j(e,t){let n=t?.trim();if(!n)return e;try{let t=new URL(e);if(!k(t.pathname))return e;return t.searchParams.set("bridgeId",n),t.toString()}catch{return e}}async function N(e,t){let n=await fetch((0,w.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);y(n.hostname)&&!y(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=g.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 N(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:j(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&&k(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=v(a.pathname.slice(0,-3))),a.pathname=v(a.pathname),a.hash="",a.toString()}catch{return null}}(l.ttydHttpUrl,l.ttydWsUrl,n,r);return a?{terminalUrl:j(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 S(e){if(!e)return null;try{let t=new URL(e);return t.searchParams.delete("token"),t.hash="",t.toString()}catch{return e}}var R=n(86181);let C=new Set(["archived","killed","terminated","restored"]),E=[0,50,150,400,1e3];async function L(e,t,n){let r=await fetch((0,w.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 A(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 T(e){let{sessionId:t,projectId:n,bridgeId:i,sessionState:g,runtimeMode:y,pendingInsert:v,immersiveMobileMode:k=!1,panelVisible:j=!0,onPendingInsertConsumed:N}=e,T=(0,m.useRef)(null),P=(0,m.useRef)(null),I=(0,m.useRef)(0),M=(0,m.useRef)(0),$=(0,m.useRef)(null),_=(0,m.useRef)(null),z=(0,m.useRef)([]),W=(0,m.useRef)(!1),F=(0,m.useRef)(null),D=(0,m.useRef)(0),O=(0,m.useMemo)(()=>g.trim().toLowerCase(),[g]),H=y?.trim().toLowerCase()??null,q="ttyd"===H,B=q?!C.has(O):b.has(O),V=!q&&!k&&x.has(O),[K,J]=(0,m.useState)(null),[X,G]=(0,m.useState)(null),[Q,Y]=(0,m.useState)(B),[Z,ee]=(0,m.useState)(null),[et,en]=(0,m.useState)(!1),[er,el]=(0,m.useState)(0),[ea,ei]=(0,m.useState)(""),[es,eo]=(0,m.useState)(!1),[ec,eu]=(0,m.useState)(null),[ed,eh]=(0,m.useState)(null),[em,ef]=(0,m.useState)(null),[ep,ew]=(0,m.useState)(!1),[eb,ex]=(0,m.useState)(!1),eg=(0,m.useRef)(null),ey=(0,m.useRef)(!1),ev=(0,m.useRef)(0),ek=(0,m.useRef)(null),ej=(0,m.useRef)(null),eN=(0,m.useCallback)(()=>{for(let e of z.current)window.clearTimeout(e);z.current=[]},[]),eU=(0,m.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=ek.current;a&&a.w===r&&a.h===l||(ek.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))},[]),eS=(0,m.useCallback)(()=>{if(_.current?.contentWindow)for(let e of(eN(),E))z.current.push(window.setTimeout(()=>{eU()},e))},[eN,eU]),eR=(0,m.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}}(X);e&&A(_.current,e)},[X]);(0,m.useEffect)(()=>{eg.current=K},[K]),(0,m.useEffect)(()=>{W.current=et},[et]),(0,m.useEffect)(()=>{I.current=0,M.current=0,J(null),G(null),Y(B),ee(null),en(!1),el(0),ei(""),eo(!1),eu(null),eh(null),ef(null),ew(!1),ey.current=!1,W.current=!1,F.current=null,D.current=0,ev.current=0,ek.current=null,eN()},[eN,B,t]),(0,m.useEffect)(()=>{ek.current=null},[K]),(0,m.useEffect)(()=>()=>eN(),[eN]),(0,m.useEffect)(()=>{if(!B){Y(!1),ee(null);return}let e=!1,n=null,r=null,l=new AbortController;return(!eg.current||ey.current)&&Y(!0),ee(null),U(t,{signal:l.signal,bridgeId:i}).then(t=>{if(!e){if(M.current=0,t.interactive&&t.terminalUrl){var n,l,a;let e,i,s=ey.current||(n=eg.current,l=t.terminalUrl,e=S(n),i=S(l),!e||e!==i);ey.current=!1,G(t.terminalUrl);let o=!s&&eg.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"),c=new URL(t).searchParams.get("token");return o!==c}catch{return!1}}(eg.current,t.terminalUrl);if(s||!eg.current)eg.current||en(!1),J(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&&A(t,e)}}ee(null);let c="number"!=typeof(a=t.expiresInSeconds)||!Number.isFinite(a)||a<=0?null:1e3*Math.max(5,a-10);null!==c&&(r=window.setTimeout(()=>{el(e=>e+1)},c));return}eg.current||(J(null),G(null),en(!1)),ee(t.reason??"Live ttyd terminal is unavailable.")}}).catch(t=>{if(e||t instanceof DOMException&&"AbortError"===t.name)return;let r=!!eg.current;r||(J(null),G(null),en(!1)),ee(t instanceof Error?t.message:"Failed to resolve ttyd terminal.");let l=M.current,a=r?5e3:Math.min(4e3,500*2**l);M.current=r?0:Math.min(l+1,3),n=window.setTimeout(()=>{el(e=>e+1)},a)}).finally(()=>{e||Y(!1)}),()=>{e=!0,l.abort(),null!==n&&window.clearTimeout(n),null!==r&&window.clearTimeout(r)}},[i,er,B,t]),(0,m.useEffect)(()=>{let e=ej.current;ej.current=j,j&&!1===e&&(ek.current=null,ev.current=window.Date.now()+120,requestAnimationFrame(()=>{requestAnimationFrame(()=>{eR(),eS()})}))},[j,eS,eR]);let eC=(0,m.useCallback)(()=>{if(!B)return;let e=window.Date.now();if(e-D.current<1500)return;D.current=e;let t=null===F.current?0:e-F.current;F.current=null,eR(),eS(),t>=3e5&&W.current&&eg.current&&(ey.current=!0,el(e=>e+1))},[B,eS,eR]);(0,m.useEffect)(()=>{if("u"<typeof document)return;let e=()=>{if("hidden"===document.visibilityState){F.current=window.Date.now(),ev.current=window.Date.now()+250;return}"visible"===document.visibilityState&&(ev.current=window.Date.now()+100,eC())},t=()=>{eC()},n=()=>{el(e=>e+1)};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)}},[eC]),(0,m.useEffect)(()=>{if(!v||v.nonce<=I.current)return;I.current=v.nonce;let e=v.inlineText.trim();if(0===e.length)return;let n=!1;return L(t,`${e} `,i).then(()=>{n||(eh(null),N?.())}).catch(e=>{n||eh(e instanceof Error?e.message:"Failed to queue terminal input.")}),()=>{n=!0}},[i,N,v,t]),(0,m.useEffect)(()=>{et&&eR()},[et,eR]),(0,m.useEffect)(()=>{if(!B||!K||et)return;let e=window.setTimeout(()=>{W.current||ee("The terminal view did not finish loading in time. Try reload or open in a new tab.")},25e3);return()=>window.clearTimeout(e)},[B,et,K]);let eE=(0,m.useCallback)(async()=>{let e=ea.trim();if(0!==e.length&&!es){eo(!0),eu(null);try{let n=await fetch((0,w.S)(`/api/sessions/${encodeURIComponent(t)}/actions`,i),{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})`)}ei(""),T.current?.focus()}catch(e){eu(e instanceof Error?e.message:"Failed to send message")}finally{eo(!1)}}},[i,ea,es,t]),eL=(0,m.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&await L(t,e,i)}catch{}},[i,t]),eA=(0,m.useCallback)(()=>{P.current?.click()},[]),eT=(0,m.useCallback)(async e=>{let{files:r}=e.target;if(e.target.value="",r&&0!==r.length){ef(null),ew(!0);try{for(let e of(await (0,p.P)({files:Array.from(r),projectId:n,taskRef:t,bridgeId:i})))await L(t,`\r
2
- [attached file: ${e}]\r
3
- `,i)}catch(e){ef(e instanceof Error?e.message:"Failed to upload attachment.")}finally{ew(!1)}}},[i,n,t]),eP=(0,m.useCallback)(async()=>{await L(t,"\x03",i)},[i,t]),eI=(0,m.useCallback)(()=>{let e=$.current;if(!e)return;let t=window.visualViewport;if(!t)return;let{usableHeight:n,keyboardVisible:r}=(0,R.wP)(window.innerHeight,t.height,t.offsetTop,e.getBoundingClientRect().top);if(!r){e.style.height="100%",ex(!1);return}if(n<=0){e.style.height="100%";return}e.style.height=`${Math.max(0,Math.round(n))}px`,ex(!0)},[]);(0,m.useEffect)(()=>{let e=$.current;if(!e)return;let t=null,n=()=>{if(!j||window.Date.now()<ev.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()<ev.current)return;let n=e.getBoundingClientRect();n.height<10||n.width<10||(eI(),eU())},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")}},[eI,B,eU,j,K]),(0,m.useEffect)(()=>{},[Z,B,et,H,ec,ed,Q,t,K,X,q]);let eM=(0,m.useCallback)(()=>{ee(null),M.current=0,ey.current=!0,el(e=>e+1)},[]),e$=B?"Connecting live terminal":V?"Session is waiting for input":"Live terminal is not active",e_=Z??(B?"Reconnecting to the existing ttyd terminal.":q?"This ttyd terminal is no longer attached. It only closes after an explicit kill or archive.":V?"Send a follow-up below to relaunch the agent in a fresh ttyd terminal.":`Session status is \`${O}\`. Interactive ttyd terminals only run while the agent is active.`),ez=X??K??void 0;return(0,r.jsxs)("div",{className:k?"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-10 flex items-center gap-2 sm:right-3 sm:top-3",children:[(0,r.jsx)("input",{ref:P,type:"file",multiple:!0,accept:"*/*",className:"sr-only",tabIndex:-1,"aria-hidden":!0,onChange:e=>void eT(e)}),(0,r.jsx)(f.$,{type:"button",size:"icon",variant:"ghost",disabled:!B||!K||ep,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:eA,"aria-label":"Attach photos or files",children:ep?(0,r.jsx)(l.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(a.A,{className:"h-3.5 w-3.5"})}),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:eL,"aria-label":"Paste from clipboard",children:(0,r.jsx)(s,{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:eP,"aria-label":"Soft stop (Ctrl+C)",children:(0,r.jsx)(o,{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:eM,"aria-label":"Reload ttyd terminal",children:Q?(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:k?"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:B&&K?(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:[et?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:K,className:"block h-full min-h-0 w-full flex-1 border-0 bg-[#060404]",allow:"clipboard-read; clipboard-write",loading:"eager",onError:()=>{ee("Failed to load the terminal frame. Try reload or open in a new tab.")},onLoad:()=>{en(!0),ee(null),eI(),eR(),eS()}},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:Z?(0,r.jsx)(u.A,{className:"h-4 w-4"}):(0,r.jsx)(l.A,{className:`h-4 w-4 ${Q?"animate-spin":""}`})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-[14px] font-medium",children:e$}),(0,r.jsx)("div",{className:"mt-1 text-[12px] leading-5 text-[#a79c94]",children:e_}),ez?(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)("a",{href:ez,target:"_blank",rel:"noreferrer",className:"text-[12px] text-[#d7c6b7] underline underline-offset-4",children:"Open the ttyd terminal directly"})}):null]})]})})})}),!V&&(ed||em)?(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:[ed?(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:ed}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>eh(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,em?(0,r.jsxs)("div",{className:`flex items-center gap-1.5 ${ed?"mt-2":""}`,children:[(0,r.jsx)(u.A,{className:"h-3 w-3 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:em}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>ef(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null]}):null,V?(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:[ed?(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:ed}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>eh(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,em?(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:em}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>ef(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,ec?(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:ec}),(0,r.jsx)("button",{type:"button",className:"ml-auto shrink-0 text-[#8e847d] hover:text-[#c9c0b7]",onClick:()=>eu(null),children:(0,r.jsx)(d.A,{className:"h-3 w-3"})})]}):null,(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault(),eE()},className:"flex items-center gap-2 px-2 py-2 lg:px-3",children:[(0,r.jsx)("input",{ref:T,type:"text",value:ea,onChange:e=>ei(e.target.value),placeholder:"Send a follow-up message…",enterKeyHint:"done",disabled:es,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:es||0===ea.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:es?(0,r.jsx)(l.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(h.A,{className:"h-3.5 w-3.5"})})]})]}):null]})}let P=(0,m.memo)(function(e){return(0,r.jsx)(T,{...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&&(e.panelVisible??!0)===(t.panelVisible??!0)&&((n=e.pendingInsert)===(r=t.pendingInsert)||!!n&&!!r&&n.nonce===r.nonce&&n.inlineText===r.inlineText)})},63253:(e,t,n)=>{n.d(t,{A:()=>r});let r=(0,n(13454).A)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]])},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 c=new FormData;c.append("projectId",o);let u=n?.trim();for(let t of(u&&c.append("taskRef",u),e))c.append("files",t);let d=await fetch((0,r.S)("/api/attachments",i),{method:"POST",body:c}),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],{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:()=>i});var o=t(54568),n=t(7620);let s=(0,n.createContext)({theme:"dark",toggleTheme:()=>{}});function d(e){let r=document.documentElement;r.classList.remove("dark","light"),r.classList.add(e)}function i({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),d(e);return}d("dark")},[]);let l=(0,n.useCallback)(()=>{t(e=>{let r="dark"===e?"light":"dark";return localStorage.setItem("conductor-theme",r),d(r),r})},[]);return(0,o.jsx)(s.Provider,{value:{theme:r,toggleTheme:l},children:e})}},48572:(e,r,t)=>{"use strict";t.d(r,{A:()=>n});var o=t(5974);let n=(0,o.createServerReference)("0097b82b6df85d12cd66e33c6760bc4f8241d701b6",o.callServer,void 0,o.findSourceMapURL,"detectKeylessEnvDriftAction")},74471:()=>{},83172:(e,r,t)=>{"use strict";t.d(r,{y:()=>n});var o=t(5974);let n=(0,o.createServerReference)("0022b4cd035ed4439822570dd25fd0573e79cb97d8",o.callServer,void 0,o.findSourceMapURL,"invalidateCacheAction")},92690:(e,r,t)=>{"use strict";t.d(r,{TooltipProvider:()=>i});var o=t(54568),n=t(97257),s=t(7620),d=t(46916);let i=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,d.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()}]);