conductor-oss 0.35.0 → 0.36.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.
- package/package.json +5 -5
- package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/build-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/react-loadable-manifest.json +16 -14
- package/web/.next/standalone/packages/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/15.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/1547.js +1 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/2089.js +3 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/3540.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/3803.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/3998.js +1 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{9039.js → 4345.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/5538.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/5827.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/7023.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/7467.js +1 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/8851.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/9455.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/middleware-build-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/next-font-manifest.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/pages/500.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/{3838.43d4c06d3215ad8a.js → 3838.fa83b58e4005fc8b.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/4443.57db70380cc86187.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/4535.f3b367624173d083.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/4590.1af116855eacf0a6.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/4997-e3e9080c83bf41f1.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/6267-881308cd835d7000.js +5 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/6529-a5011115abc93722.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/7175.14c79b4f1c868118.js +3 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{7865.07472b61729561eb.js → 7865.a99fea0e127969e4.js} +1 -1
- package/web/.next/{static/chunks/8510-e81891003d3ad82d.js → standalone/packages/web/.next/static/chunks/8510-f77a35d91845de08.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/{6267.13f3222151b29c47.js → 8648.dad57806cb9b381a.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/9450-294d54fd5e76a9fe.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/9703-e437e3bfbf296214.js +2 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/9739.54221051c12a448b.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/connect/page-4c5d7b4eee4c92aa.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/{layout-206453a2b80d9508.js → layout-e91bd3dceaca3a2c.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/page-9ab36db7326f4364.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/sessions/[id]/page-a11bba53afca0210.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/ca465714-4d31bfa1a1fb3e89.js +3 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/webpack-05b7a023cd8e53f7.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/css/6ef2fa08dd043252.css +1 -0
- package/web/.next/static/chunks/{3838.43d4c06d3215ad8a.js → 3838.fa83b58e4005fc8b.js} +1 -1
- package/web/.next/static/chunks/4443.57db70380cc86187.js +1 -0
- package/web/.next/static/chunks/4535.f3b367624173d083.js +1 -0
- package/web/.next/static/chunks/4590.1af116855eacf0a6.js +1 -0
- package/web/.next/static/chunks/4997-e3e9080c83bf41f1.js +1 -0
- package/web/.next/static/chunks/6267-881308cd835d7000.js +5 -0
- package/web/.next/static/chunks/6529-a5011115abc93722.js +1 -0
- package/web/.next/static/chunks/7175.14c79b4f1c868118.js +3 -0
- package/web/.next/static/chunks/{7865.07472b61729561eb.js → 7865.a99fea0e127969e4.js} +1 -1
- package/web/.next/{standalone/packages/web/.next/static/chunks/8510-e81891003d3ad82d.js → static/chunks/8510-f77a35d91845de08.js} +1 -1
- package/web/.next/static/chunks/{6267.13f3222151b29c47.js → 8648.dad57806cb9b381a.js} +1 -1
- package/web/.next/static/chunks/9450-294d54fd5e76a9fe.js +1 -0
- package/web/.next/static/chunks/9703-e437e3bfbf296214.js +2 -0
- package/web/.next/static/chunks/9739.54221051c12a448b.js +1 -0
- package/web/.next/static/chunks/app/bridge/connect/page-4c5d7b4eee4c92aa.js +1 -0
- package/web/.next/static/chunks/app/{layout-206453a2b80d9508.js → layout-e91bd3dceaca3a2c.js} +1 -1
- package/web/.next/static/chunks/app/page-9ab36db7326f4364.js +1 -0
- package/web/.next/static/chunks/app/sessions/[id]/page-a11bba53afca0210.js +1 -0
- package/web/.next/static/chunks/ca465714-4d31bfa1a1fb3e89.js +3 -0
- package/web/.next/static/chunks/webpack-05b7a023cd8e53f7.js +1 -0
- package/web/.next/static/css/6ef2fa08dd043252.css +1 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/1603.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/3979.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/5694.js +0 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/7672.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/3285.c2ac95fcff2bc28f.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/3816-2bc42b289190ba69.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/4443.ebc7fae0d2c5e91d.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/4535.bd6377f18f4a51d5.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/4997-f297bb4a54382c67.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/5971-ec1429f46e2b9f42.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/7175.0fe5febb816790b3.js +0 -3
- package/web/.next/standalone/packages/web/.next/static/chunks/7720-f8fad1acac794e8d.js +0 -2
- package/web/.next/standalone/packages/web/.next/static/chunks/9450-35c367faf559f770.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/9739.2a985335dfd530d7.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/connect/page-f6799fa1b17350be.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/page-564cedc0aaab4614.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/sessions/[id]/page-97c444aff130c9a2.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/webpack-cce1e4a5cfe2a9d0.js +0 -1
- package/web/.next/static/chunks/3285.c2ac95fcff2bc28f.js +0 -1
- package/web/.next/static/chunks/3816-2bc42b289190ba69.js +0 -1
- package/web/.next/static/chunks/4443.ebc7fae0d2c5e91d.js +0 -1
- package/web/.next/static/chunks/4535.bd6377f18f4a51d5.js +0 -1
- package/web/.next/static/chunks/4997-f297bb4a54382c67.js +0 -1
- package/web/.next/static/chunks/5971-ec1429f46e2b9f42.js +0 -1
- package/web/.next/static/chunks/7175.0fe5febb816790b3.js +0 -3
- package/web/.next/static/chunks/7720-f8fad1acac794e8d.js +0 -2
- package/web/.next/static/chunks/9450-35c367faf559f770.js +0 -1
- package/web/.next/static/chunks/9739.2a985335dfd530d7.js +0 -1
- package/web/.next/static/chunks/app/bridge/connect/page-f6799fa1b17350be.js +0 -1
- package/web/.next/static/chunks/app/page-564cedc0aaab4614.js +0 -1
- package/web/.next/static/chunks/app/sessions/[id]/page-97c444aff130c9a2.js +0 -1
- package/web/.next/static/chunks/webpack-cce1e4a5cfe2a9d0.js +0 -1
- /package/web/.next/standalone/packages/web/.next/static/{otFNkUpZUAcPnUttHAVyi → PQz_YcrtYD37nK7N3nyMO}/_buildManifest.js +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{otFNkUpZUAcPnUttHAVyi → PQz_YcrtYD37nK7N3nyMO}/_ssgManifest.js +0 -0
- /package/web/.next/static/{otFNkUpZUAcPnUttHAVyi → PQz_YcrtYD37nK7N3nyMO}/_buildManifest.js +0 -0
- /package/web/.next/static/{otFNkUpZUAcPnUttHAVyi → PQz_YcrtYD37nK7N3nyMO}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974,9847],{12529:(e,t,n)=>{Promise.resolve().then(n.bind(n,60594))},33866:(e,t,n)=>{"use strict";n.d(t,{BO:()=>l,h7:()=>i,pN:()=>a});var r=n(5739);let a=[{name:"codex",label:"Codex",description:"OpenAI Codex CLI",homepage:"https://github.com/openai/codex",iconUrl:"https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/openai.svg",installHint:"npm install -g @openai/codex",installUrl:"https://github.com/openai/codex",setupUrl:"https://chatgpt.com/codex"},{name:"gemini",label:"Gemini",description:"Google Gemini CLI",homepage:"https://ai.google.dev/gemini-api/docs",iconUrl:"https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/googlegemini.svg",installHint:"npm install -g @google/gemini-cli",installUrl:"https://ai.google.dev/gemini-api/docs",setupUrl:"https://aistudio.google.com/"},{name:"qwen-code",label:"Qwen Code",description:"Qwen Code CLI",homepage:"https://qwenlm.github.io/announcements/",iconUrl:null,installHint:"npm install -g @qwen-code/qwen-code@latest",installUrl:"https://qwenlm.github.io/announcements/",setupUrl:"https://chat.qwen.ai/"},{name:"droid",label:"Droid",description:"Factory Droid CLI",homepage:"https://github.com/Factory-AI/factory",iconUrl:"https://raw.githubusercontent.com/Factory-AI/factory/main/docs/images/droid_logo_cli.png",installHint:"npm install -g @factory/cli",installUrl:"https://github.com/Factory-AI/factory"},{name:"claude-code",label:"Claude Code",description:"Claude Code CLI",homepage:"https://www.anthropic.com/claude",iconUrl:"https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/claude.svg",installHint:"npm install -g @anthropic-ai/claude-code",installUrl:"https://www.anthropic.com/claude-code",setupUrl:"https://claude.ai/"},{name:"amp",label:"Amp",description:"Amp Code CLI",homepage:"https://www.ampcode.com",iconUrl:"https://ampcode.com/amp-mark-color.svg",installHint:"npm install -g @sourcegraph/amp",installUrl:"https://www.ampcode.com"},{name:"opencode",label:"OpenCode",description:"OpenCode CLI",homepage:"https://opencode.ai",iconUrl:null,installHint:"npm install -g opencode-ai",installUrl:"https://opencode.ai"},{name:"github-copilot",label:"GitHub Copilot",description:"GitHub Copilot CLI",homepage:"https://docs.github.com/copilot/how-tos/copilot-cli",iconUrl:"https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/githubcopilot.svg",installHint:"npm install -g @github/copilot",installUrl:"https://docs.github.com/copilot/how-tos/copilot-cli",setupUrl:"https://github.com/settings/copilot"},{name:"cursor-cli",label:"Cursor Agent",description:"Cursor Agent CLI",homepage:"https://www.cursor.com",iconUrl:"https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/cursor.svg",installHint:"npm install -g cursor-agent"},{name:"ccr",label:"CCR",description:"Claude Code Router",homepage:"https://www.npmjs.com/package/@musistudio/claude-code-router",iconUrl:"https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/claude.svg",installHint:"npm install -g @musistudio/claude-code-router",installUrl:"https://www.npmjs.com/package/@musistudio/claude-code-router"}],l=a.map(e=>e.name),s=new Map(a.map(e=>[(0,r.q)(e.name),e]));function i(e){return s.get((0,r.q)(e))??null}},51164:(e,t,n)=>{"use strict";n.d(t,{v:()=>c});var r=n(76196);let a=["pro","max","api"],l=["chatgpt","api"],s=["default"],i=["oauth","api"],o=["oauth","api"];function d(e,t,n){return"string"==typeof e&&t.includes(e)?e:n}function c(e){let t=!e||"object"!=typeof e||Array.isArray(e)?{}:{...e},n=(0,r.Zp)();return{amp:d(t.amp,s,n.amp),claudeCode:d(t.claudeCode,a,n.claudeCode),codex:d(t.codex,l,n.codex),cursorCli:d(t.cursorCli,s,n.cursorCli),droid:d(t.droid,s,n.droid),gemini:d(t.gemini,i,n.gemini),githubCopilot:d(t.githubCopilot,s,n.githubCopilot),opencode:d(t.opencode,s,n.opencode),qwenCode:d(t.qwenCode,o,n.qwenCode),ccr:d(t.ccr,s,n.ccr)}}},60594:(e,t,n)=>{"use strict";n.d(t,{default:()=>eb});var r=n(54568),a=n(42925),l=n(79748),s=n(7620),i=n(40448);n(76196);var o=n(52353),d=n(20487),c=n(50549),u=n(57917),p=n(21048),x=n(55341),m=n(30824),h=n(34737),g=n(20670),f=n(58299),v=n(84736),b=n(7086),w=n(54299),j=n(34041),k=n(34309),y=n(63253),N=n(20732),C=n(36645),A=n(45894),S=n(5739),I=n(33866),E=n(35821),M=n(95106),L=n(53649),$=n(86011),U=n(31404),P=n(10926);let O=new Map,B=new Map;function q(e){let t=B.get(e);return t||(t={agents:[],loading:!0,lastFetchedAt:0,inFlight:null,retryTimeout:null},B.set(e,t)),t}function F(e){let t=O.get(e);return t||(t=new Set,O.set(e,t)),t}function _(e){for(let t of F(e))t()}function T(e){let t=q(e);return t.agents.length>0&&Date.now()-t.lastFetchedAt<3e4}function D(e,t){let n=q(e);null===n.retryTimeout&&(n.retryTimeout=window.setTimeout(()=>{q(e).retryTimeout=null,R(e,t,!0)},1e4))}async function R(e,t,n=!1){let r=q(e);if(!n&&T(e)){r.loading&&(r.loading=!1,_(e));return}return r.inFlight||(r.loading=!0,_(e),r.inFlight=(async()=>{try{var n;let a=await fetch((0,U.S)("/api/agents",t),{cache:"no-store"});if(!a.ok)throw Error(`Failed to fetch agents: ${a.status}`);let l=(n=await a.json(),Array.isArray(n)?n:n&&"object"==typeof n&&"agents"in n&&Array.isArray(n.agents)?n.agents:[]);l.length>0?(r.agents=l,r.lastFetchedAt=Date.now(),null!==r.retryTimeout&&(window.clearTimeout(r.retryTimeout),r.retryTimeout=null)):D(e,t)}catch{D(e,t)}finally{r.loading=!1,r.inFlight=null,_(e)}})()),r.inFlight}var W=n(46012),H=n(862),z=n(84169),G=n(39702),V=n(86181),Z=n(90124),J=n(85905),X=n(84527),K=n(15115);function Q(e){return e.map(e=>(0,P.C0)(e)).filter(e=>null!==e)}var Y=n(67506),ee=n(76050),et=n(51164),en=n(88272);let er="claude-code",ea="conductor-board-dispatcher-panel-width";function el(e){let t=e?.trim();return t&&t.length>0?t:null}function es(e,t){return Math.min(Math.min(720,Math.max(320,Math.floor(.55*(Number.isFinite(t)&&t>0?t:720)))),Math.max(320,Math.round(e)))}let ei=(0,a.default)(()=>Promise.all([n.e(4997),n.e(9505)]).then(n.bind(n,4997)).then(e=>e.SessionDetail),{loadableGenerated:{webpack:()=>[4997]},loading:()=>(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-[13px] text-[var(--vk-text-muted)]",children:"Loading session..."})}),eo=(0,a.default)(()=>Promise.all([n.e(9450),n.e(9167)]).then(n.bind(n,29450)).then(e=>e.WorkspaceSidebarPanel),{loadableGenerated:{webpack:()=>[29450]},loading:()=>(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-[13px] text-[var(--vk-text-muted)]",children:"Loading workspace panel..."})}),ed=(0,a.default)(()=>n.e(7865).then(n.bind(n,47865)).then(e=>e.WorkspaceOverview),{loadableGenerated:{webpack:()=>[47865]},loading:()=>(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-[13px] text-[var(--vk-text-muted)]",children:"Loading workspace..."})}),ec=(0,a.default)(()=>n.e(9739).then(n.bind(n,79739)).then(e=>e.WorkspaceKanban),{loadableGenerated:{webpack:()=>[79739]},loading:()=>(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-[13px] text-[var(--vk-text-muted)]",children:"Loading board..."})}),eu=(0,a.default)(()=>Promise.all([n.e(9526),n.e(1924),n.e(7175),n.e(9123)]).then(n.bind(n,56086)).then(e=>e.ProjectDispatcherPanel),{loadableGenerated:{webpack:()=>[56086]},loading:()=>(0,r.jsx)("div",{className:"flex h-full items-center justify-center text-[13px] text-[var(--vk-text-muted)]",children:"Loading dispatcher..."})}),ep=(0,a.default)(()=>Promise.all([n.e(3470),n.e(524),n.e(474)]).then(n.bind(n,90474)).then(e=>e.NewWorkspaceDialog),{loadableGenerated:{webpack:()=>[90474]},loading:()=>null}),ex=(0,a.default)(()=>Promise.all([n.e(3470),n.e(524),n.e(474)]).then(n.bind(n,90474)).then(e=>e.SettingsDialog),{loadableGenerated:{webpack:()=>[90474]},loading:()=>null});function em(e){let t=(0,I.h7)(e);return t?.label?t.label:e.split(/[-_\s]+/g).filter(Boolean).map(e=>e[0]?.toUpperCase()+e.slice(1)).join(" ")}function eh(e){return e.issueId?.trim()||e.taskRef?.trim()||e.id}function eg(e){let[t]=e.split(" - ");return(t??e).trim()}function ef(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:{...e}}function ev(e,t){let n=ef(e),r=ef(n.notifications),a=r.soundFile,l="string"==typeof n.codingAgent&&n.codingAgent.trim().length>0?n.codingAgent.trim():t,s="string"==typeof n.ide&&n.ide.trim().length>0?n.ide.trim():"vscode",i="string"==typeof n.markdownEditor&&n.markdownEditor.trim().length>0?n.markdownEditor.trim():"obsidian",o="string"==typeof n.markdownEditorPath?n.markdownEditorPath.trim():"";return{onboardingAcknowledged:!0===n.onboardingAcknowledged,codingAgent:l,ide:s,markdownEditor:i,markdownEditorPath:o,modelAccess:(0,et.v)(n.modelAccess),notifications:{soundEnabled:!1!==r.soundEnabled,soundFile:null===a?null:"string"==typeof a&&a.trim().length>0?a.trim():"abstract-sound-4"}}}function eb({requiresPairedDeviceScope:e=!1}){let t=(0,l.useRouter)(),n=(0,l.usePathname)(),a=(0,l.useSearchParams)(),i=(0,s.useMemo)(()=>el(a.get("project")),[a]),o=(0,s.useMemo)(()=>el(a.get("session")),[a]),d=(0,s.useMemo)(()=>"board"===a.get("view")?"board":"direct",[a]),c=(0,s.useMemo)(()=>el(a.get("bridge")),[a]),[u,p]=(0,s.useState)(c??""),h=(0,P.C0)(u),g=(0,s.useMemo)(()=>(0,P.DW)(o)?.bridgeId??null,[o]),v=c??g,b=h??g,[w,j]=(0,s.useState)([]),[k,y]=(0,s.useState)("loading"),N=(0,Y.y)(),C=(0,s.useMemo)(()=>w.filter(e=>e.connected),[w]),A=(0,s.useMemo)(()=>C.map(e=>e.bridgeId),[C]),O=(0,s.useMemo)(()=>(function({requiresPairedDeviceScope:e,effectiveBridgeId:t,connectedBridgeIds:n,bridgeInventoryStatus:r}){if(!e)return!1;let a=(0,P.C0)(t);return!!a&&("loading"===r||"ready"===r&&!Q(n).includes(a))})({requiresPairedDeviceScope:e,effectiveBridgeId:b,connectedBridgeIds:A,bridgeInventoryStatus:k}),[k,A,b,e]);(0,s.useMemo)(()=>(function({requiresPairedDeviceScope:e,effectiveBridgeId:t,connectedBridgeIds:n,bridgeInventoryStatus:r}){if(!e)return!0;let a=(0,P.C0)(t);return!!a&&"ready"===r&&Q(n).includes(a)})({requiresPairedDeviceScope:e,effectiveBridgeId:b,connectedBridgeIds:A,bridgeInventoryStatus:k}),[k,A,b,e]);let B=(0,s.useMemo)(()=>!e||!!b,[b,e]),{projects:_,loading:D,error:Z,refresh:J}=(0,L.U)(b,{enabled:B}),{agents:eh}=function(e,t){let n=t?.enabled??!0,r=(0,P.C0)(e)??"local",[a,l]=(0,s.useState)({agents:[],loading:n});return(0,s.useEffect)(()=>{if(!n)return void l({agents:[],loading:!1});let t=()=>{let e;return l({agents:(e=q(r)).agents,loading:e.loading})};F(r).add(t),t(),R(r,e);let a=()=>{T(r)||R(r,e,!0)},s=()=>{"visible"!==document.visibilityState||T(r)||R(r,e,!0)};return window.addEventListener("focus",a),document.addEventListener("visibilitychange",s),()=>{F(r).delete(t),window.removeEventListener("focus",a),document.removeEventListener("visibilitychange",s)}},[e,n,r]),n?a:{agents:[],loading:!1}}(b,{enabled:B}),{mobileSidebarOpen:eg,desktopSidebarOpen:ef,toggleSidebar:ej,closeSidebarOnMobile:ek,syncSidebarForViewport:ey}=(0,W.T)({initialDesktopOpen:!1}),eN=eg||ef,eC=!o||eN,{sessions:eA,loading:eS,error:eI,refresh:eE}=(0,M.t)(i,{enabled:eC&&B,bridgeId:b}),[eM,eL]=(0,s.useState)(""),[e$,eU]=(0,s.useState)(""),[eP,eO]=(0,s.useState)((0,en.Z3)()),[eB,eq]=(0,s.useState)(!1),[eF,e_]=(0,s.useState)(null),[eT,eD]=(0,s.useState)(!1),[eR,eW]=(0,s.useState)(!1),[eH,ez]=(0,s.useState)(null),[eG,eV]=(0,s.useState)(null),[eZ,eJ]=(0,s.useState)(!0),[eX,eK]=(0,s.useState)(!1),[eQ,eY]=(0,s.useState)(null),[e0,e1]=(0,s.useState)(!1),[e4,e2]=(0,s.useState)(!1),[e3,e5]=(0,s.useState)(()=>o?[o]:[]),[e9,e6]=(0,s.useState)(!1),[e7,e8]=(0,s.useState)(!1),[te,tt]=(0,s.useState)(()=>o?"chat":"board"),[tn,tr]=(0,s.useState)(!1),[ta,tl]=(0,s.useState)(405),[ts,ti]=(0,s.useState)(!1),to=(0,s.useRef)(null),td=(0,s.useRef)(i);(0,s.useEffect)(()=>{let e="function"==typeof window.matchMedia?window.matchMedia("(pointer: coarse)"):null,t=()=>{e6((0,V.k$)())};return t(),window.addEventListener("resize",t),e?.addEventListener?.("change",t),()=>{window.removeEventListener("resize",t),e?.removeEventListener?.("change",t)}},[]),(0,s.useEffect)(()=>{let e="function"==typeof window.matchMedia?window.matchMedia("(min-width: 1280px)"):null,t=()=>{e8(e?.matches??window.innerWidth>=1280)};return t(),window.addEventListener("resize",t),e?.addEventListener?.("change",t),()=>{window.removeEventListener("resize",t),e?.removeEventListener?.("change",t)}},[]),(0,s.useEffect)(()=>{if("board"!==d||null===i){td.current=i,tt("board");return}let e=td.current!==i;(td.current=i,o)?tt("chat"):e&&tt("board")},[i,o,d]),(0,s.useEffect)(()=>{try{let e=window.localStorage.getItem(ea),t=e?Number.parseInt(e,10):NaN;Number.isFinite(t)&&tl(es(t,window.innerWidth))}catch{}let e=()=>{tl(e=>es(e,window.innerWidth))};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[]),(0,s.useEffect)(()=>{if(!ts)return;let e=e=>{let t=window.innerWidth;tl(es(t-e.clientX,t))},t=()=>{ti(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),document.body.style.userSelect="none",document.body.style.cursor="col-resize",()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t),document.body.style.userSelect="",document.body.style.cursor="";try{window.localStorage.setItem(ea,String(ta))}catch{}}},[ts,ta]),(0,s.useEffect)(()=>{if(!N){j([]),y("ready"),e&&t.replace("/bridge/connect");return}let n=!1,r=O?4e3:15e3;async function a(){try{let e=await fetch("/api/bridge/devices",{cache:"no-store"});if(!e.ok)throw Error(`Failed to fetch bridges: ${e.status}`);let t=await e.json().catch(()=>null);n||(j((0,K.oH)(t?.devices).map(e=>({bridgeId:e.device_id,hostname:e.last_status?.hostname??e.hostname,os:`${e.last_status?.os??`${e.os}/${e.arch}`}${(0,K.wj)(e.last_status?.version)}`,capabilities:[],connected:e.connected,status:e.connected?"connected":"offline",connectedAt:"",lastSeenAt:""}))),y("ready"))}catch{n||(j([]),y("error"))}}a();let l=window.setInterval(()=>{a()},r);return()=>{n=!0,window.clearInterval(l)}},[N,O,e,t]),(0,s.useEffect)(()=>{let t=function({requiresPairedDeviceScope:e,requestedBridgeId:t,selectedBridgeId:n,connectedBridgeIds:r}){let a=(0,P.C0)(t),l=(0,P.C0)(n),s=Q(r);return e?a||(0===s.length?"":l&&s.includes(l)?l:s[0]??""):l&&s.includes(l)?l:""}({requiresPairedDeviceScope:e,requestedBridgeId:v,selectedBridgeId:u,connectedBridgeIds:A});t!==u&&p(t)},[A,v,e,u]),(0,s.useEffect)(()=>{!e||b||"ready"!==k||C.length>0||t.replace("/bridge/connect")},[k,C.length,b,e,t]),(0,s.useEffect)(()=>{p(c??"")},[c]);let tc=(0,s.useMemo)(()=>new Map(eA.map(e=>[e.id,e])),[eA]),{session:tu,loading:tp,error:tx}=(0,E.w)(o,null,{enabled:!!o&&B,bridgeId:b}),tm=eF??Z??eI??tx??eQ,th=(0,s.useMemo)(()=>{let e=new Map;for(let t of eA){let n=e.get(t.projectId);n?n.push(t):e.set(t.projectId,[t])}return e},[eA]),tg=(0,s.useCallback)((e,r="push")=>{let l=new URLSearchParams(a.toString()),s=(e,t)=>{let n="string"==typeof t?t.trim():"";n.length>0?l.set(e,n):l.delete(e)};"projectId"in e&&s("project",e.projectId),"sessionId"in e&&s("session",e.sessionId),"workspaceView"in e&&("board"===e.workspaceView?l.set("view","board"):l.delete("view")),"tab"in e&&(e.tab&&"dispatcher"!==e.tab?l.set("tab",e.tab):l.delete("tab")),"bridgeId"in e&&s("bridge",e.bridgeId),l.has("project")||l.delete("view"),l.has("session")||l.delete("tab");let i=l.toString(),o=i.length>0?`${n}?${i}`:n;"replace"===r?t.replace(o,{scroll:!1}):t.push(o,{scroll:!1})},[n,t,a]);(0,s.useEffect)(()=>{let e=(0,P.C0)(u);(c??null)!==e&&tg({bridgeId:e},"replace")},[c,tg,u]),(0,s.useEffect)(()=>{if(!D&&!Z){if(0===_.length){null!==i&&tg({projectId:null,workspaceView:null},"replace");return}null===i||_.some(e=>e.id===i)||tg({projectId:o?null:_[0]?.id??null,workspaceView:o?null:d},"replace")}},[Z,D,tg,_,i,o,d]),(0,s.useEffect)(()=>{if(o){if(eC){if(eS||eI)return;eA.some(e=>e.id===o)||tg({sessionId:null,tab:null},"replace");return}!tp&&(tu||tg({sessionId:null,tab:null},"replace"))}},[eA,tg,eC,o,tp,tu,eI,eS]),(0,s.useEffect)(()=>{o?e5(e=>[o,...e.filter(e=>e!==o)].slice(0,1)):e5([])},[o]),(0,s.useEffect)(()=>{o&&to.current&&to.current!==o&&(to.current=null)},[o]),(0,s.useEffect)(()=>{o&&eC&&!eS&&!eI&&e5(e=>e.filter(e=>e===o||tc.has(e)))},[eC,o,tc,eI,eS]);let tf=(0,s.useMemo)(()=>tu,[tu]),tv=(0,s.useMemo)(()=>_.find(e=>e.id===i)??null,[_,i]),tb=(0,s.useMemo)(()=>i?th.get(i)??[]:[],[i,th]),tw=(0,s.useMemo)(()=>tf??(o?tc.get(o)??null:null),[tf,o,tc]),tj=(0,s.useMemo)(()=>{let e=a.get("tab");return"overview"!==e&&"preview"!==e&&"diff"!==e&&"dispatcher"!==e&&"terminal"===(0,ee.tK)(tw)},[tw,a]),tk=!!o&&tj&&e9,ty=(0,s.useMemo)(()=>tf?[tf.projectId,tf.branch].filter(Boolean).join(" \xb7 "):tv?[tv.id,tv.defaultBranch||"main"].filter(Boolean).join(" \xb7 "):"All Projects",[tv,tf]),tN=(0,s.useMemo)(()=>b?w.find(e=>e.bridgeId===b)??null:null,[w,b]),tC=tN?`Device \xb7 ${tN.hostname}`:O?"Device \xb7 Reconnecting":e?"Scope \xb7 Paired device required":"Scope \xb7 Local backend",tA=tN?`Showing projects and sessions from ${tN.hostname}.`:O?"Waiting for the selected laptop to reconnect before loading dashboard data.":e?"Hosted dashboard access must target a connected laptop.":"Showing projects and sessions from the local backend because no paired laptop is selected.",tS=tN?"border-[rgba(24,197,143,0.35)] bg-[rgba(24,197,143,0.12)] text-[var(--vk-green)]":O?"border-[color:color-mix(in_srgb,var(--vk-accent)_30%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-accent)_12%,transparent)] text-[var(--vk-accent)]":e?"border-[rgba(255,143,122,0.24)] bg-[rgba(255,143,122,0.08)] text-[var(--vk-red)]":"border-[var(--vk-border)] bg-[var(--vk-bg-main)] text-[var(--vk-text-muted)]",tI=(0,s.useMemo)(()=>{let e=Array.isArray(eh)?eh:[],t=new Set;for(let e of I.pN)t.add(e.name);for(let n of e)n.name&&t.add(n.name);for(let e of _)e.agent&&t.add(e.agent);return eG?.codingAgent&&t.add(eG.codingAgent),e$&&t.add(e$),0===t.size&&t.add(eG?.codingAgent||er),[...t]},[eh,eG?.codingAgent,_,e$]),tE=(0,s.useMemo)(()=>{let e={};for(let t of I.pN)e[(0,S.q)(t.name)]={name:t.name,ready:!1,installed:!1,configured:!1,homepage:t.homepage,description:t.description,installHint:t.installHint??null,installUrl:t.installUrl??t.homepage??null,setupUrl:t.setupUrl??t.homepage??null};for(let t of Array.isArray(eh)?eh:[]){if(!t.name)continue;let n=(0,S.q)(t.name),r=(0,I.h7)(t.name);e[(0,S.q)(t.name)]={name:r?.name??t.name,ready:!0===t.ready,installed:!1!==t.installed,configured:!0===t.configured,homepage:"string"==typeof t.homepage?t.homepage:r?.homepage??e[n]?.homepage??null,description:"string"==typeof t.description?t.description:r?.description??e[n]?.description??null,installHint:"string"==typeof t.installHint?t.installHint:r?.installHint??e[n]?.installHint??null,installUrl:"string"==typeof t.installUrl?t.installUrl:r?.installUrl??e[n]?.installUrl??null,setupUrl:"string"==typeof t.setupUrl?t.setupUrl:r?.setupUrl??e[n]?.setupUrl??null}}return e},[eh]),tM=(0,s.useMemo)(()=>{let e={};for(let t of Array.isArray(eh)?eh:[])t.name&&t.runtimeModelCatalog&&(e[(0,S.q)(t.name)]=t.runtimeModelCatalog);return e},[eh]),tL=(0,s.useCallback)(e=>{let t=tE[(0,S.q)(e)],n=(0,I.h7)(e),r=t?.installed?t?.setupUrl??n?.setupUrl??t?.homepage??n?.homepage:t?.installUrl??n?.installUrl??t?.setupUrl??n?.setupUrl??t?.homepage??n?.homepage;r&&window.open(r,"_blank","noopener,noreferrer")},[tE]);async function t$(t,n){eK(!0),eY(null);try{if(e&&!b)throw Error("Pair or reconnect a laptop before saving preferences.");let r=await fetch((0,U.S)("/api/preferences",b),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),a=await r.json().catch(()=>null);if(!r.ok)throw Error(a?.error??a?.reason??`Failed to save preferences: ${r.status}`);let l=ev(a?.preferences,t.codingAgent||er);return eV(l),eU(l.codingAgent),n?.closeDialog!==!1&&e1(!1),!0}catch(e){return eY(e instanceof Error?e.message:"Failed to save preferences"),!1}finally{eK(!1)}}(0,s.useEffect)(()=>{let e=!1;return async function(){if(!B){e||(eV(null),eY(null),eJ(!1));return}eJ(!0);try{let t=await fetch((0,U.S)("/api/preferences",b)),n=await t.json().catch(()=>null);if(!t.ok)throw Error(n?.error??n?.reason??`Failed to load preferences: ${t.status}`);if(e)return;let r=ev(n?.preferences,er);eV(r),eY(null)}catch(t){if(e)return;eV(ev(null,er)),eY(t instanceof Error?t.message:"Failed to load preferences")}finally{e||eJ(!1)}}(),()=>{e=!0}},[b,B]),(0,s.useEffect)(()=>{eG&&(e$||eU(eG.codingAgent))},[eG,e$]),(0,s.useEffect)(()=>{if(!eZ){if(!eG||e&&!b)return void e1(!1);eG.onboardingAcknowledged||e1(!0)}},[b,eG,eZ,e]),(0,s.useEffect)(()=>{if(0!==tI.length&&(!e$||!tI.includes(e$))){let e=eG?.codingAgent||er;eU(tI.includes(e)?e:tI[0]??er)}},[tI,eG?.codingAgent,e$]),(0,s.useEffect)(()=>{let e=e$||tv?.agent||eG?.codingAgent||er,t=tv&&(0,S.q)(tv.agent)===(0,S.q)(e)?tv.agentModel:null,n=tv&&(0,S.q)(tv.agent)===(0,S.q)(e)?tv.agentReasoningEffort:null;eO((0,en.c0)(e,eG?.modelAccess??(0,et.v)(null),tM,t,n))},[eG?.modelAccess,eG?.codingAgent,tM,e$,tv]);let tU=(0,s.useCallback)(()=>{e&&!b?e_("Pair or reconnect a laptop before adding a workspace."):(ez(null),e_(null),eD(!0),ey())},[b,e,ey]);(0,s.useEffect)(()=>{e4&&!e0&&(e2(!1),tU())},[e4,e0]);let tP=(0,s.useCallback)(async t=>{let n=eM.trim(),r=(0,en.xb)(eP),a=(0,en.aB)(eP),l=t?.bridgeId??b??null;if(e&&!l)return e_("Pair or reconnect a laptop before launching an agent session."),!1;let s=t?.projectId??i??_[0]?.id;if(!s)return e_("No project is configured in conductor.yaml"),!1;let o=e$||er,d=tE[(0,S.q)(o)]??null;if(d&&!d.ready)return e_(d.installed?`${em(o)} is not ready yet. Finish setup or authentication and try again.`:`${em(o)} is not installed on this machine yet. Open setup and try again.`),tL(o),!1;eq(!0),e_(null);try{let e=await fetch((0,U.S)("/api/sessions",l),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:s,prompt:n,...t?.issueId?.trim()?{issueId:t.issueId.trim()}:{},agent:o,...t?.branch?{branch:t.branch}:{},...t?.baseBranch?{baseBranch:t.baseBranch}:{},..."boolean"==typeof t?.useWorktree?{useWorktree:t.useWorktree}:{},...t?.permissionMode?{permissionMode:t.permissionMode}:{},...r?{model:r}:{},...a?{reasoningEffort:a}:{},...t?.attachments&&t.attachments.length>0?{attachments:t.attachments}:{}})}),i=await e.json().catch(()=>null);if(!e.ok)throw Error(i?.error??`Failed to create workspace: ${e.status}`);if(!i?.session?.id)throw Error("Session created but response is missing session id");return eL(""),ey(),to.current=i.session.id,await eE(),tg({projectId:s,sessionId:i.session.id,tab:null,bridgeId:l},"push"),!0}catch(e){return e_(e instanceof Error?e.message:"Failed to create workspace"),!1}finally{eq(!1)}},[tE,eP,tg,tL,_,eM,eE,e$,b,i,e,ey]),tO=(0,s.useCallback)(async e=>{(await (0,X.J)(e,{bridgeId:b}),o===e)?tg({projectId:null,sessionId:null,workspaceView:null,tab:null},"replace"):b&&eE()},[b,tg,eE,o]),tB=(0,s.useCallback)(async t=>{if(e&&!b)return void ez("Pair or reconnect a laptop before adding a workspace.");eW(!0),ez(null);try{let e=await fetch((0,U.S)("/api/workspaces",b),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await e.json().catch(()=>null);if(!e.ok)throw Error(n?.error??`Failed to add workspace: ${e.status}`);let r=n?.project?.id;if(!r)throw Error("Workspace created but response is missing project id");await J(),eL(""),ey(),eD(!1),tg({projectId:r,sessionId:null,workspaceView:"direct",tab:null,bridgeId:b??null},"push")}catch(e){ez(e instanceof Error?e.message:"Failed to add workspace")}finally{eW(!1)}},[b,tg,J,e,ey]),tq=!eZ&&!!eG&&(!e||!!b)&&!eG.onboardingAcknowledged,tF=eG??ev(null,e$||er),t_=e$||tF.codingAgent||er,tT=i??tu?.projectId??null;(0,$.Q)({enabled:!eZ,projectId:tT,preferences:tF.notifications,bridgeId:b});let tD=(0,s.useCallback)(e=>{tg({projectId:e,sessionId:null,workspaceView:e?d:null,tab:null},"push"),eU(eG?.codingAgent||er),tt("board"),ek()},[ek,tg,eG?.codingAgent,d]),tR=(0,s.useCallback)((e,t)=>{var n,r;let a,l=tc.get(e)??null;tg((n=i??null,r=t?.tab,a={projectId:l?.projectId??n??null,sessionId:e,tab:r??(0,ee.tK)(l)},"board"===d?{...a,workspaceView:"direct"}:a),"push"),ek()},[ek,tg,i,tc,d]),tW=(0,s.useCallback)(()=>{e&&!b?t.push("/bridge/connect"):e1(!0)},[b,e,t]),tH=(0,s.useCallback)(()=>{eR||eD(!1)},[eR]),tz=(0,s.useCallback)(()=>{eX||tq||(e1(!1),eY(null))},[tq,eX]),tG=(0,s.useCallback)(()=>{tr(e=>!e)},[]),tV=(0,s.useCallback)(async e=>{let t=encodeURIComponent(e),n=await fetch((0,U.S)(`/api/repositories/${t}`,b),{method:"DELETE"});(404===n.status||405===n.status)&&(n=await fetch((0,U.S)(`/api/repositories?id=${t}`,b),{method:"DELETE"}));let r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error??`Failed to unlink project (${n.status})`);await J()},[b,J]),tZ=(0,s.useMemo)(()=>eN?(0,r.jsx)(eo,{projects:_,selectedProjectId:i,onSelectProject:tD,onUnlinkProject:tV,sessions:eA,selectedSessionId:o,onSelectSession:tR,onArchiveSession:tO,onCreateWorkspace:tU}):null,[eA,tO,tD,tR,tV,tU,_,i,o,eN]),tJ=(0,s.useMemo)(()=>{let t=tv?(0,r.jsxs)("div",{className:"inline-flex w-fit rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] p-px",children:[(0,r.jsx)("button",{type:"button",onClick:()=>tg({projectId:tv.id,workspaceView:"direct"},"replace"),className:`min-h-[31px] rounded-[2px] px-3 text-[13px] ${"direct"===d?"bg-[var(--vk-bg-hover)] text-[var(--vk-text-normal)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"}`,children:"Direct launch"}),(0,r.jsx)("button",{type:"button",onClick:()=>tg({projectId:tv.id,workspaceView:"board"},"replace"),className:`min-h-[31px] rounded-[2px] px-3 text-[13px] ${"board"===d?"bg-[var(--vk-bg-hover)] text-[var(--vk-text-normal)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"}`,children:"Board view"})]}):null;return"board"===d?(0,r.jsx)(ec,{projectId:i,bridgeId:b,defaultAgent:t_,agentOptions:tI,projectSessions:tb,projectLabel:tv?.id??i,headerAccessory:t,onOpenSession:tR}):(0,r.jsx)(ew,{prompt:eM,setPrompt:eL,selectedAgent:t_,setSelectedAgent:eU,agentStates:tE,modelSelection:eP,setModelSelection:eO,modelAccess:tF.modelAccess,runtimeModelCatalogs:tM,agentOptions:tI,projects:_,bridges:w,selectedBridgeId:u,setSelectedBridgeId:p,requiresPairedDeviceScope:e,selectedProjectId:i,onSelectProject:tD,projectLabel:i??"All projects",hasProject:_.length>0,creating:eB,error:tm,onOpenAddWorkspace:tU,onOpenAgentSetup:tL,onCreate:tP})},[tI,tE,w,eB,tP,eP,tL,tU,_,tb,tv,o,tR,eM,t_,tF.modelAccess,e,tM,u,i,eL,tm,d,tg]),tX=(0,s.useMemo)(()=>{if(!tv)return tJ;if("board"===d){let e={"--dispatcher-panel-width":`${ta}px`},t=!e7,n=!t||"board"===te,a=!t||"chat"===te,l=e7&&tn&&null===o,s=o?"Chat":"Dispatcher",i=null!==o||!tn;return(0,r.jsxs)("div",{style:e,className:"relative flex h-full min-h-0 flex-1 flex-col overflow-hidden",children:[t?(0,r.jsx)("div",{className:"border-b border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-3 py-2 xl:hidden",children:(0,r.jsxs)("div",{className:"inline-flex w-full rounded-[6px] border border-[var(--vk-border)] p-1",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>tt("board"),"aria-pressed":"board"===te,className:`inline-flex min-h-[34px] flex-1 items-center justify-center gap-1.5 rounded-[4px] px-3 text-[12px] font-medium transition-colors ${"board"===te?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"}`,children:[(0,r.jsx)(x.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,r.jsx)("span",{children:"Board"})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>tt("chat"),"aria-pressed":"chat"===te,className:`inline-flex min-h-[34px] flex-1 items-center justify-center gap-1.5 rounded-[4px] px-3 text-[12px] font-medium transition-colors ${"chat"===te?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"}`,children:[(0,r.jsx)(m.A,{className:"h-3.5 w-3.5 shrink-0"}),(0,r.jsx)("span",{children:s})]})]})}):null,(0,r.jsxs)("div",{className:"relative flex min-h-0 flex-1 flex-col overflow-hidden xl:flex-row",children:[(0,r.jsx)("div",{className:`${n?"block":"hidden"} min-h-0 min-w-0 flex-1 overflow-hidden xl:block`,children:tJ}),i?(0,r.jsx)("div",{className:"absolute bottom-0 right-[var(--dispatcher-panel-width)] top-0 z-20 hidden w-2 translate-x-1/2 cursor-col-resize xl:block",onMouseDown:e=>{e.preventDefault(),ti(!0)},"aria-hidden":"true",children:(0,r.jsx)("div",{className:"mx-auto h-full w-px bg-transparent transition-colors hover:bg-[var(--vk-border)]"})}):null,(0,r.jsx)("div",{className:`${a?"flex":"hidden xl:flex"} ${l?"flex-1 min-h-0 xl:h-auto xl:max-h-none xl:w-[56px] xl:flex-none xl:min-h-0":"flex-1 min-h-[min(360px,50dvh)] xl:w-[var(--dispatcher-panel-width)] xl:flex-none xl:min-h-0"} flex-col overflow-hidden border-t border-[var(--vk-border)] bg-[var(--vk-bg-panel)] xl:border-l xl:border-t-0`,children:o?tw?(0,r.jsx)(ei,{sessionId:o,initialSession:tw,bridgeId:b,active:!0,suppressPreviewAutoOpen:to.current===o,immersiveMobileMode:tk},o):(0,r.jsx)("div",{className:"flex h-full items-center justify-center bg-[var(--vk-bg-panel)] text-[13px] text-[var(--vk-text-muted)]",children:"Loading session workspace..."}):(0,r.jsx)(eu,{projectId:tv.id,bridgeId:b,defaultAgent:t_,modelAccess:tF.modelAccess,runtimeModelCatalogs:tM,collapsed:l,onToggleCollapsed:tG})})]})]})}return(0,r.jsxs)("div",{className:"flex h-full min-h-0 flex-col overflow-hidden",children:[(0,r.jsx)("div",{className:"border-b border-[var(--vk-border)] bg-[var(--vk-bg-panel)]/70 px-3 py-3 sm:px-4",children:(0,r.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("p",{className:"text-[11px] uppercase tracking-[0.12em] text-[var(--vk-text-muted)]",children:"Project Workspace"}),(0,r.jsxs)("p",{className:"mt-1 truncate text-[14px] text-[var(--vk-text-strong)]",children:[tv.id," \xb7 ",tv.defaultBranch||"main"]})]}),(0,r.jsxs)("div",{className:"inline-flex w-fit rounded-[6px] border border-[var(--vk-border)] p-1",children:[(0,r.jsx)("button",{type:"button",onClick:()=>tg({projectId:tv.id,workspaceView:"direct"},"replace"),className:`min-h-[32px] rounded-[4px] px-3 text-[13px] ${"direct"===d?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"}`,children:"Direct launch"}),(0,r.jsx)("button",{type:"button",onClick:()=>tg({projectId:tv.id,workspaceView:"board"},"replace"),className:"min-h-[32px] rounded-[4px] px-3 text-[13px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]",children:"Board view"})]})]})}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:tJ})]})},[te,tn,ta,tw,b,tG,tg,t_,tv,tb,o,e7,tJ,d]),tK=(0,s.useMemo)(()=>O?(0,r.jsx)("div",{className:"flex h-full min-h-0 flex-1 items-center justify-center bg-[var(--vk-bg-main)] px-4",children:(0,r.jsxs)("div",{className:"w-full max-w-md rounded-[12px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-5 py-5 text-center shadow-[0_18px_50px_rgba(0,0,0,0.18)]",children:[(0,r.jsx)("div",{className:"mx-auto flex h-11 w-11 items-center justify-center rounded-full border border-[color:color-mix(in_srgb,var(--vk-accent)_30%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-accent)_12%,transparent)] text-[var(--vk-accent)]",children:(0,r.jsx)(f.A,{className:"h-5 w-5 animate-spin"})}),(0,r.jsx)("h2",{className:"mt-4 text-[18px] font-medium text-[var(--vk-text-strong)]",children:"Reconnecting paired laptop"}),(0,r.jsx)("p",{className:"mt-2 text-[14px] leading-6 text-[var(--vk-text-muted)]",children:"Waiting for the selected laptop to report online before loading its projects and sessions."})]})}):o&&("board"!==d||null===i)?(0,r.jsx)("div",{className:"relative min-h-0 h-full min-w-0 flex-1 overflow-hidden",children:e3.map(e=>{let t=e===o,n=t?tf:tc.get(e)??null;return(0,r.jsx)("div",{"aria-hidden":!t,className:t?"relative h-full min-w-0":"pointer-events-none absolute inset-0 overflow-hidden invisible",children:(0,r.jsx)(ei,{sessionId:e,initialSession:n,bridgeId:b,active:t,suppressPreviewAutoOpen:t&&to.current===e,immersiveMobileMode:t&&tk,onOpenSidebar:ej})},e)})}):null!==i?(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:tX}):(0,r.jsx)("div",{className:"flex h-full min-h-0 w-full flex-1 overflow-hidden",children:(0,r.jsx)(ed,{projects:_,sessions:eA,onCreateWorkspace:tU,onSelectSession:tR})}),[eA,e3,tX,tf,o,tR,tU,_,i,tc,O,ej,d]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(H.G,{mobileSidebarOpen:eg,desktopSidebarOpen:ef,onToggleSidebar:ej,hideMobileSidebarToggle:tk,sidebar:tZ,children:[tk?null:(0,r.jsx)(z.V,{title:ty,onOpenPreferences:tW,rightContent:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:`inline-flex items-center rounded-full border px-2 py-0.5 text-[11px] font-medium ${tS}`,title:tA,children:tC}),(0,r.jsx)(G.J,{})]})}),(0,r.jsx)("div",{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden ${tk?"bg-[#060404]":""}`,children:tK})]}),eT?(0,r.jsx)(ep,{open:eT,onClose:tH,onCreate:tB,creating:eR,error:eH,defaultAgent:t_,agentOptions:tI,modelAccess:tF.modelAccess,runtimeModelCatalogs:tM,bridgeId:b}):null,e0||tq?(0,r.jsx)(ex,{open:e0,mode:tq?"onboarding":"settings",creating:eX,error:eQ,current:tF,projectCount:_.length,agentOptions:tI,agentStates:tE,runtimeModelCatalogs:tM,onRepositoriesChanged:J,onOnboardingComplete:({needsProject:e})=>{e&&e2(!0)},onOpenAgentSetup:tL,onClose:tz,onSave:t$,bridgeId:b}):null]})}c.A,u.A,p.A,x.A,m.A,h.A,g.A,g.A,u.A,[{id:"vscode",label:"VS Code"},{id:"vscode-insiders",label:"VS Code Insiders"},{id:"cursor",label:"Cursor"},{id:"windsurf",label:"Windsurf"},{id:"intellij-idea",label:"IntelliJ IDEA"},{id:"zed",label:"Zed"},{id:"xcode",label:"Xcode"},{id:"antigravity",label:"Antigravity"},{id:"custom",label:"Custom"}].filter(e=>"custom"!==e.id),c.A,o.mWn,d.$$9,o.i4$,c.A;let ew=(0,s.memo)(function({prompt:e,setPrompt:t,selectedAgent:n,setSelectedAgent:a,agentStates:l,modelSelection:o,setModelSelection:d,modelAccess:c,runtimeModelCatalogs:u,agentOptions:p,projects:x,bridges:m,selectedBridgeId:E,setSelectedBridgeId:M,requiresPairedDeviceScope:L,selectedProjectId:$,onSelectProject:P,projectLabel:O,hasProject:B,creating:q,error:F,onOpenAddWorkspace:_,onOpenAgentSetup:T,onCreate:D}){let R=(0,s.useMemo)(()=>{let e=new Map(I.BO.map((e,t)=>[e,t]));return[...p].sort((t,n)=>{let r=e.get((0,S.q)(t))??Number.MAX_SAFE_INTEGER,a=e.get((0,S.q)(n))??Number.MAX_SAFE_INTEGER;return r!==a?r-a:em(t).localeCompare(em(n))})},[p]),W=em(n),H=l[(0,S.q)(n)]??null,z=(0,s.useMemo)(()=>[...x].sort((e,t)=>e.id.localeCompare(t.id)),[x]),G=$??z[0]?.id??null,V=(0,s.useMemo)(()=>z.find(e=>e.id===G)??null,[G,z]),X=(0,s.useMemo)(()=>m.filter(e=>e.connected),[m]),K=(0,s.useMemo)(()=>!E||X.some(e=>e.bridgeId===E),[X,E]),[Q,Y]=(0,s.useState)([]),[ee,et]=(0,s.useState)(!1),[er,ea]=(0,s.useState)(""),[el,es]=(0,s.useState)(""),[ei,eo]=(0,s.useState)([]),[ed,ec]=(0,s.useState)(!1),[eu,ep]=(0,s.useState)(!1),[ex,ef]=(0,s.useState)(!1),[ev,eb]=(0,s.useState)(!1),[ew,ej]=(0,s.useState)("default"),[ek,ey]=(0,s.useState)([]),[eN,eC]=(0,s.useState)(!1),[eA,eS]=(0,s.useState)(null);(0,s.useEffect)(()=>{if(!V){Y([]),ea(""),et(!1);return}Y([]),ea(V.defaultBranch.trim()||"main"),et(!1)},[V]),(0,s.useEffect)(()=>{if(!G){eo([]),es(""),ec(!1);return}eo([]),es(""),ec(!1)},[G]);let eI=(0,s.useCallback)(async()=>{if(!V)return;let e=V.defaultBranch.trim()||"main";if(!V.path?.trim()){Y([e]),ea(t=>t.trim().length>0?t:e);return}et(!0);try{let t=new URLSearchParams({path:V.path}),n=await fetch((0,U.S)(`/api/workspaces/branches?${t.toString()}`,E)),r=await n.json().catch(()=>null),a=Array.isArray(r?.branches)?r.branches.filter(e=>"string"==typeof e&&e.trim().length>0):[],l="string"==typeof r?.defaultBranch&&r.defaultBranch.trim().length>0?r.defaultBranch.trim():e,s=a.length>0?a:[l];Y(s),ea(e=>e.trim().length>0&&s.includes(e)?e:l)}catch{Y([e]),ea(e)}finally{et(!1)}},[E,V]),eE=(0,s.useCallback)(async()=>{if(G){ec(!0);try{let e=await fetch((0,U.S)(`/api/boards?projectId=${encodeURIComponent(G)}`,E)),t=await e.json().catch(()=>null);if(!e.ok)throw Error(t?.error??`Failed to load tasks: ${e.status}`);let n=(Array.isArray(t?.columns)?t.columns:[]).flatMap(e=>Array.isArray(e.tasks)?e.tasks:[]),r=new Set,a=n.filter(e=>{let t=eh(e);return!(!t||r.has(t))&&(r.add(t),!0)});eo(a),es(e=>a.some(t=>eh(t)===e)?e:"")}catch{eo([]),es("")}finally{ec(!1)}}},[G,E]);(0,s.useEffect)(()=>{!ex||ee||Q.length>0||eI()},[ee,ex,Q.length,eI]),(0,s.useEffect)(()=>{!eu||ed||ei.length>0||eE()},[ei.length,eE,ed,eu]);let eM=(0,s.useMemo)(()=>(0,en.Ik)(n,c,u),[c,u,n]),eL=(0,s.useMemo)(()=>ei.find(e=>eh(e)===el)??null,[ei,el]),e$=(0,en.xb)(o)??"",eU=(0,s.useMemo)(()=>{let e=new Set,t=[],r=e$.trim();for(let n of eM)e.has(n.id)||(e.add(n.id),t.push(n));return r&&!e.has(r)&&(e.add(r),t.unshift({id:r,label:function(e,t){let n=t.trim(),r=(0,S.q)(e);if(!n)return n;if("claude-code"===r){let e=n.toLowerCase();if("opus"===e)return"Claude Opus";if("sonnet"===e)return"Claude Sonnet";if("haiku"===e)return"Claude Haiku";let t=e.match(/^claude-(sonnet|opus|haiku)-(\d+)-(\d+)(?:-\d{8})?$/);if(t){let e=t[1];return`Claude ${e[0]?.toUpperCase()+e.slice(1)} ${t[2]}.${t[3]}`}}return n.split(/[-_]+/g).filter(Boolean).map(e=>"gpt"===e.toLowerCase()?"GPT":/^\d+(?:\.\d+)?$/.test(e)?e:e[0]?.toUpperCase()+e.slice(1)).join("-")}(n,r),description:"Current selected model.",access:[]})),t},[eM,n,e$]),eP=(0,s.useMemo)(()=>!H||H.ready||e$?e$?eU.find(e=>e.id===e$)?.label??e$:"Default":"Setup required",[eU,H,e$]),eO=(0,s.useMemo)(()=>(0,en.iL)(n,c,u,e$),[c,u,n,e$]),eB=(0,en.aB)(o)??"",eq=(0,s.useMemo)(()=>{let e=eO.find(e=>e.id===eB);return e?e.label:eB||(eO[0]?.label??"Default")},[eO,eB]),eF="z-50 min-w-[240px] max-w-[calc(100vw-32px)] rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] p-2 shadow-[0_18px_50px_rgba(0,0,0,0.35)] sm:max-w-none",e_=`${eF} max-h-[min(360px,50vh)] overflow-y-auto`,eT="flex min-h-[44px] cursor-default items-center gap-2 rounded-[3px] px-3 py-2 text-[14px] leading-[21px] text-[var(--vk-text-normal)] outline-none hover:bg-[var(--vk-bg-hover)] focus:bg-[var(--vk-bg-hover)] sm:min-h-[36px]",eD=[{id:"default",label:"Default",icon:g.A},{id:"auto",label:"Auto",icon:v.A},{id:"ask",label:"Ask",icon:b.A},{id:"plan",label:"Plan",icon:w.A}],eR=eD.find(e=>e.id===ew)??eD[0],eW="launchpad-attachment-input",eH=q||eN,ez=e=>{let t=e.repo?.trim();if(t){let e=t.split("/").filter(Boolean),n=e[e.length-1]?.replace(/\.git$/i,"");if(n)return n}return e.id},eG=V?ez(V):null,eV=V?`${eG} \xb7 ${er||V.defaultBranch||"main"}`:B?O:"Select project",eZ=eL?.taskRef?.trim()||eL?.issueId?.trim()||eL?.id||"Link task",eJ=eL?eg(eL.text):"Choose a task, bug, or issue from this project's board",eX=V?.id??G??null,eK=(0,s.useCallback)(e=>{let t=Array.from(e.currentTarget.files??[]);if(e.currentTarget.value="",!t.length)return;let n=new Set(ek.map(e=>`${e.name}:${e.size}:${e.lastModified}`)),r=t.filter(e=>!n.has(`${e.name}:${e.size}:${e.lastModified}`));r.length>0&&ey(e=>[...e,...r]),eS(null)},[ek]),eQ=(0,s.useCallback)(e=>{ey(t=>t.filter((t,n)=>n!==e))},[]),eY=(0,s.useCallback)(async()=>{let e;if(eS(null),!eX||!V)return D({projectId:eX??void 0,...ev?{baseBranch:er||V?.defaultBranch||void 0}:{branch:er||V?.defaultBranch||void 0},issueId:el.trim()||void 0,bridgeId:E||void 0,useWorktree:ev,permissionMode:ew});eC(!0),eS(null);try{ek.length>0&&(e=await (0,J.P)({files:ek,projectId:V.id,taskRef:el.trim()||void 0,bridgeId:E||void 0}))}catch(e){return eS(e instanceof Error?e.message:"Failed to upload attachment"),!1}finally{eC(!1)}let t=await D({projectId:eX??void 0,...ev?{baseBranch:er||V.defaultBranch||void 0}:{branch:er||V.defaultBranch||void 0},issueId:el.trim()||void 0,bridgeId:E||void 0,useWorktree:ev,permissionMode:ew,...e&&e.length>0?{attachments:e}:{}});return t&&(ey([]),eS(null)),t},[el,eX,D,ew,er,V,V?.defaultBranch,E,ek,ev]);return(0,s.useEffect)(()=>{ey([]),eS(null)},[eX]),(0,r.jsx)("section",{className:"flex h-full min-h-0 items-start justify-center overflow-auto bg-[var(--vk-bg-main)] px-3 py-4 sm:items-center sm:px-6 sm:py-6",children:(0,r.jsxs)("div",{className:"w-full max-w-[768px]",children:[(0,r.jsx)("h1",{className:"pb-4 text-center text-[30px] font-medium leading-[34px] tracking-[-0.7px] text-[var(--vk-text-strong)] sm:text-[36px] sm:leading-[40px] sm:tracking-[-0.9px]",children:"What would you like to work on?"}),E?null:(0,r.jsxs)("div",{className:"mb-4 flex items-start gap-2 rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-3 py-2 text-[12px] leading-[18px] text-[var(--vk-text-muted)]",children:[(0,r.jsx)(h.A,{className:"mt-0.5 h-[14px] w-[14px] shrink-0"}),(0,r.jsx)("span",{children:L?"Pair or reconnect a laptop to browse workspaces and launch coding agents from the web dashboard.":"Showing projects and sessions from the local backend. Pair a laptop and select it here to browse that device instead."})]}),(0,r.jsxs)("div",{className:"mx-auto w-full rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] p-px",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-b border-[var(--vk-border)] px-2 pb-[9px] pt-2",children:[(0,r.jsx)(Z.N,{seed:{label:n},className:"h-[25px] w-[25px] border-none bg-transparent"}),(0,r.jsxs)(i.bL,{children:[(0,r.jsx)(i.l9,{asChild:!0,children:(0,r.jsxs)("button",{type:"button",className:"inline-flex h-[31px] max-w-[70vw] items-center rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-[9px] py-[5px] text-[14px] leading-[21px] text-[var(--vk-text-normal)] outline-none hover:bg-[var(--vk-bg-hover)] data-[state=open]:bg-[var(--vk-bg-hover)] sm:max-w-none","aria-label":"Select agent",children:[(0,r.jsx)("span",{className:"truncate pr-1",children:W}),(0,r.jsx)(j.A,{className:"h-3 w-3 text-[var(--vk-text-muted)]"})]})}),(0,r.jsx)(i.ZL,{children:(0,r.jsxs)(i.UC,{align:"start",sideOffset:6,className:e_,children:[(0,r.jsx)("p",{className:"px-3 pb-1 text-[14px] font-semibold leading-[21px] text-[var(--vk-text-muted)]",children:"Agents"}),R.map(e=>{let t=e===n,s=l[(0,S.q)(e)]??null;return(0,r.jsxs)(i.q7,{onSelect:()=>a(e),className:eT,children:[(0,r.jsx)(Z.N,{seed:{label:e},className:"h-6 w-6 border-none bg-transparent"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{children:em(e)}),s?.ready?null:(0,r.jsx)("div",{className:"truncate text-[12px] leading-[16px] text-[var(--vk-text-muted)]",children:s?.installed?"Setup required":"Not installed"})]}),(0,r.jsx)("span",{className:"ml-auto inline-flex h-4 w-4 items-center justify-center text-[var(--vk-text-strong)]",children:t?(0,r.jsx)(k.A,{className:"h-4 w-4"}):null})]},e)})]})})]}),(0,r.jsxs)(i.bL,{onOpenChange:ep,children:[(0,r.jsx)(i.l9,{asChild:!0,children:(0,r.jsxs)("button",{type:"button",disabled:!G,className:"ml-auto flex h-[31px] min-w-[220px] items-center rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-[9px] py-[5px] text-left disabled:cursor-not-allowed disabled:opacity-50 sm:ml-0 sm:w-[286px]","aria-label":"Link task",children:[(0,r.jsx)("span",{className:"pr-2 text-[12px] uppercase tracking-[0.08em] text-[var(--vk-text-muted)]",children:"Task"}),(0,r.jsx)("span",{className:"min-w-0 flex-1 truncate text-[14px] leading-[21px] text-[var(--vk-text-normal)]",children:eZ}),(0,r.jsx)(j.A,{className:"h-3 w-3 text-[var(--vk-text-muted)]"})]})}),(0,r.jsx)(i.ZL,{children:(0,r.jsxs)(i.UC,{align:"end",side:"bottom",sideOffset:6,className:e_,children:[(0,r.jsx)("p",{className:"px-3 pb-1 text-[14px] font-semibold leading-[21px] text-[var(--vk-text-muted)]",children:"Link task"}),(0,r.jsx)("p",{className:"px-3 pb-2 text-[12px] leading-[16px] text-[var(--text-faint)]",children:eJ}),(0,r.jsxs)(i.q7,{onSelect:()=>es(""),className:eT,children:[(0,r.jsx)("span",{children:"No linked task"}),(0,r.jsx)("span",{className:"ml-auto inline-flex h-4 w-4 items-center justify-center text-[var(--vk-text-strong)]",children:el?null:(0,r.jsx)(k.A,{className:"h-4 w-4"})})]}),ed?(0,r.jsx)("div",{className:"px-3 py-2 text-[12px] leading-[18px] text-[var(--vk-text-muted)]",children:"Loading board tasks..."}):ei.length>0?ei.map(e=>{let t=eh(e),n=eg(e.text),a=[e.type,e.priority].filter(Boolean).join(" \xb7 ");return(0,r.jsxs)(i.q7,{onSelect:()=>es(t),className:`${eT} min-w-[320px] items-start`,children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"truncate",children:e.taskRef?.trim()||n}),(0,r.jsxs)("div",{className:"truncate text-[12px] leading-[16px] text-[var(--text-faint)]",children:[e.taskRef?.trim()?n:t,a?` \xb7 ${a}`:""]})]}),(0,r.jsx)("span",{className:"ml-auto inline-flex h-4 w-4 items-center justify-center text-[var(--vk-text-strong)]",children:el===t?(0,r.jsx)(k.A,{className:"h-4 w-4"}):null})]},t)}):(0,r.jsx)("div",{className:"px-3 py-2 text-[12px] leading-[18px] text-[var(--vk-text-muted)]",children:"No existing tasks were found for this project."})]})})]})]}),(0,r.jsx)("div",{className:"rounded-[3.5px]",children:(0,r.jsxs)("div",{className:"flex flex-col gap-3 p-2",children:[(0,r.jsxs)("div",{className:"relative w-full",children:[(0,r.jsx)("textarea",{value:e,onChange:e=>t(e.target.value),placeholder:"Optional launch prompt. Leave empty to open the native CLI.",rows:1,className:"min-h-[24px] w-full resize-none bg-transparent pr-16 text-[16px] leading-[24px] text-[var(--vk-text-normal)] outline-none placeholder:text-[var(--vk-text-muted)]"}),(0,r.jsxs)("label",{htmlFor:eW,className:`absolute right-[18px] top-0 inline-flex h-[24px] w-[24px] items-center justify-center rounded-[4px] ${eX?"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]":"cursor-not-allowed opacity-50"}`,children:[(0,r.jsx)("input",{id:eW,type:"file",accept:"*/*",multiple:!0,onChange:eK,disabled:!eX||eH,className:"hidden"}),(0,r.jsx)(y.A,{className:"h-[14px] w-[14px]"})]}),(0,r.jsx)("button",{type:"button","aria-label":"Preview",className:"absolute right-0 top-0 inline-flex h-[24px] w-[24px] items-center justify-center rounded-[4px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]",children:(0,r.jsx)(N.A,{className:"h-[14px] w-[14px]"})})]}),ek.length>0?(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:ek.map((e,t)=>(0,r.jsxs)("span",{className:"inline-flex max-w-full items-center gap-1 rounded-[999px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-2 py-1 text-[11px] text-[var(--vk-text-muted)]",children:[(0,r.jsx)("span",{className:"max-w-[160px] truncate",title:e.name,children:e.name}),(0,r.jsx)("button",{type:"button","aria-label":`Remove attachment ${e.name}`,onClick:()=>eQ(t),className:"inline-flex h-[14px] w-[14px] items-center justify-center rounded-full text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]",children:(0,r.jsx)(C.A,{className:"h-3 w-3"})})]},`${e.name}-${e.size}-${e.lastModified}-${t}`))}):null,(0,r.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-end sm:justify-between",children:[(0,r.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-x-1 gap-y-2",children:[(0,r.jsxs)(i.bL,{children:[(0,r.jsx)(i.l9,{asChild:!0,children:(0,r.jsx)("button",{type:"button",className:"inline-flex h-[29px] w-[29px] items-center justify-center rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]","aria-label":"Select workspace or project",children:(0,r.jsx)(g.A,{className:"h-[15px] w-[15px]"})})}),(0,r.jsx)(i.ZL,{children:(0,r.jsxs)(i.UC,{align:"start",sideOffset:6,className:e_,children:[(0,r.jsx)("p",{className:"px-3 pb-1 text-[14px] font-semibold leading-[21px] text-[var(--vk-text-muted)]",children:"Projects"}),z.map(e=>{let t=ez(e),n=e.id!==t?e.id:e.path?.trim()||e.repo?.trim()||null;return(0,r.jsxs)(i.q7,{onSelect:()=>P(e.id),className:`${eT} min-w-[280px] items-start`,children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"truncate",children:t}),n?(0,r.jsx)("div",{className:"truncate text-[12px] leading-[16px] text-[var(--text-faint)]",children:n}):null]}),(0,r.jsx)("span",{className:"ml-auto inline-flex h-4 w-4 items-center justify-center text-[var(--vk-text-strong)]",children:e.id===G?(0,r.jsx)(k.A,{className:"h-4 w-4"}):null})]},e.id)}),(0,r.jsx)(i.wv,{className:"my-1 h-px bg-[var(--vk-border)]"}),(0,r.jsxs)(i.q7,{onSelect:_,className:eT,children:[(0,r.jsx)(A.A,{className:"h-4 w-4"}),(0,r.jsx)("span",{children:"Add Workspace"})]})]})})]}),eO.length>0?(0,r.jsxs)(i.bL,{children:[(0,r.jsx)(i.l9,{asChild:!0,children:(0,r.jsxs)("button",{type:"button","aria-label":"Select reasoning effort",className:"inline-flex h-[29px] items-center gap-[4px] rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-[9px] py-[5px] text-[14px] leading-[21px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:cursor-not-allowed disabled:opacity-60",children:[(0,r.jsx)("span",{children:eq}),(0,r.jsx)(j.A,{className:"h-[10px] w-[10px] text-[var(--vk-text-muted)]"})]})}),(0,r.jsx)(i.ZL,{children:(0,r.jsxs)(i.UC,{align:"start",sideOffset:6,className:eF,children:[(0,r.jsx)("p",{className:"px-3 pb-1 text-[14px] font-semibold leading-[21px] text-[var(--vk-text-muted)]",children:"Reasoning"}),eO.map(e=>(0,r.jsxs)(i.q7,{onSelect:()=>d({...o,reasoningEffort:e.id}),className:eT,children:[(0,r.jsx)("span",{children:e.label}),(0,r.jsx)("span",{className:"ml-auto inline-flex h-4 w-4 items-center justify-center text-[var(--vk-text-strong)]",children:eB===e.id?(0,r.jsx)(k.A,{className:"h-4 w-4"}):null})]},e.id))]})})]}):null,(0,r.jsxs)(i.bL,{children:[(0,r.jsx)(i.l9,{asChild:!0,children:(0,r.jsxs)("button",{type:"button",className:"inline-flex h-[29px] items-center gap-[4px] rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-[9px] py-[5px] text-[14px] leading-[21px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)] disabled:cursor-not-allowed disabled:opacity-60",children:[(0,r.jsx)("span",{children:eP}),(0,r.jsx)(j.A,{className:"h-[10px] w-[10px] text-[var(--vk-text-muted)]"})]})}),(0,r.jsx)(i.ZL,{children:(0,r.jsxs)(i.UC,{align:"start",sideOffset:6,className:eF,children:[(0,r.jsx)("p",{className:"px-3 pb-1 text-[14px] font-semibold leading-[21px] text-[var(--vk-text-muted)]",children:"Model"}),(0,r.jsxs)(i.q7,{onSelect:()=>d((0,en.c0)(n,c,u,V?.agentModel,V?.agentReasoningEffort)),className:eT,children:[(0,r.jsx)("span",{children:"Default"}),(0,r.jsx)("span",{className:"ml-auto inline-flex h-4 w-4 items-center justify-center text-[var(--vk-text-strong)]",children:e$?null:(0,r.jsx)(k.A,{className:"h-4 w-4"})})]}),eU.map(e=>(0,r.jsxs)(i.q7,{onSelect:()=>{var t;let r;return t=e.id,r=(0,en.iL)(n,c,u,t),void d({catalogModel:t,customModel:"",reasoningEffort:r.some(e=>e.id===o.reasoningEffort)?o.reasoningEffort:(0,en.YS)(n,c,u,t)})},className:eT,children:[(0,r.jsx)("span",{children:e.label}),(0,r.jsx)("span",{className:"ml-auto inline-flex h-4 w-4 items-center justify-center text-[var(--vk-text-strong)]",children:e$===e.id?(0,r.jsx)(k.A,{className:"h-4 w-4"}):null})]},e.id)),0===eU.length?(0,r.jsx)("div",{className:"px-3 py-2 text-[12px] leading-[18px] text-[var(--vk-text-muted)]",children:"Models will appear here after the selected agent is installed and its runtime catalog is detected."}):null,H&&!H.ready?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.wv,{className:"my-1 h-px bg-[var(--vk-border)]"}),(0,r.jsx)("button",{type:"button",onClick:()=>T(n),className:"flex w-full items-center rounded-[3px] px-3 py-2 text-left text-[13px] text-[var(--vk-orange)] transition hover:bg-[var(--vk-bg-hover)]",children:H.installed?"Open setup":"Open install guide"})]}):null]})})]}),(0,r.jsxs)(i.bL,{children:[(0,r.jsx)(i.l9,{asChild:!0,children:(0,r.jsxs)("button",{type:"button",className:"inline-flex h-[29px] items-center gap-[4px] rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-[9px] py-[5px] text-[14px] leading-[21px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",children:[(0,r.jsx)("span",{children:eR.label}),(0,r.jsx)(j.A,{className:"h-[10px] w-[10px] text-[var(--vk-text-muted)]"})]})}),(0,r.jsx)(i.ZL,{children:(0,r.jsxs)(i.UC,{align:"start",sideOffset:6,className:eF,children:[(0,r.jsx)("p",{className:"px-3 pb-1 text-[14px] font-semibold leading-[21px] text-[var(--vk-text-muted)]",children:"Permissions"}),eD.map(({id:e,label:t,icon:n})=>(0,r.jsxs)(i.q7,{onSelect:()=>ej(e),className:eT,children:[(0,r.jsx)(n,{className:"h-4 w-4"}),(0,r.jsx)("span",{children:t}),(0,r.jsx)("span",{className:"ml-auto inline-flex h-4 w-4 items-center justify-center text-[var(--vk-text-strong)]",children:ew===e?(0,r.jsx)(k.A,{className:"h-4 w-4"}):null})]},e))]})})]}),X.length>0?(0,r.jsxs)("label",{className:"inline-flex h-[29px] max-w-[260px] items-center gap-[6px] rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-[9px] py-[5px] text-[14px] leading-[21px] text-[var(--vk-text-normal)]",children:[(0,r.jsx)(h.A,{className:"h-[14px] w-[14px] text-[var(--vk-text-muted)]"}),(0,r.jsxs)("select",{value:E,onChange:e=>M(e.target.value),className:"min-w-0 flex-1 bg-transparent text-[14px] text-[var(--vk-text-normal)] outline-none",children:[L?null:(0,r.jsx)("option",{value:"",children:"Local backend"}),X.map(e=>(0,r.jsxs)("option",{value:e.bridgeId,children:[e.hostname," \xb7 ",e.os]},e.bridgeId))]})]}):(0,r.jsxs)("div",{className:"inline-flex h-[29px] items-center gap-[6px] rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-[9px] py-[5px] text-[14px] leading-[21px] text-[var(--vk-text-muted)]",children:[(0,r.jsx)(h.A,{className:"h-[14px] w-[14px]"}),(0,r.jsx)("span",{children:E&&!K?"Waiting for selected device":L?"No device connected":"Local backend"})]}),(0,r.jsxs)(i.bL,{onOpenChange:ef,children:[(0,r.jsx)(i.l9,{asChild:!0,children:(0,r.jsx)("button",{type:"button",disabled:!V,className:"inline-flex min-h-[29px] max-w-[320px] items-center justify-center truncate text-[14px] leading-[21px] text-[var(--vk-text-normal)] hover:text-[var(--vk-text-strong)] disabled:cursor-not-allowed disabled:opacity-50",children:eV})}),(0,r.jsx)(i.ZL,{children:(0,r.jsxs)(i.UC,{align:"start",side:"bottom",sideOffset:6,avoidCollisions:!1,className:e_,children:[(0,r.jsx)("p",{className:"px-3 pb-1 text-[14px] font-semibold leading-[21px] text-[var(--vk-text-muted)]",children:"Branch"}),eG?(0,r.jsx)("p",{className:"px-3 pb-2 text-[12px] leading-[16px] text-[var(--text-faint)]",children:eG}):null,ee?(0,r.jsx)("div",{className:"px-3 py-2 text-[14px] leading-[21px] text-[var(--vk-text-muted)]",children:"Loading branches..."}):Q.map(e=>(0,r.jsxs)(i.q7,{onSelect:()=>ea(e),className:eT,children:[(0,r.jsx)("span",{children:e}),(0,r.jsx)("span",{className:"ml-auto inline-flex h-4 w-4 items-center justify-center text-[var(--vk-text-strong)]",children:er===e?(0,r.jsx)(k.A,{className:"h-4 w-4"}):null})]},e))]})})]})]}),(0,r.jsx)("div",{className:"flex w-full justify-end sm:w-auto",children:(0,r.jsx)("button",{type:"button",onClick:eY,disabled:eH||!G,className:"inline-flex min-h-[29px] items-center justify-center rounded-[3px] bg-[var(--vk-bg-hover)] px-[8px] py-[6.5px] text-[16px] leading-[16px] text-[var(--vk-text-strong)] transition-colors hover:bg-[var(--vk-bg-active)] disabled:cursor-not-allowed disabled:opacity-50",children:eH?(0,r.jsx)(f.A,{className:"h-4 w-4 animate-spin"}):"Launch"})})]}),H&&!H.ready?(0,r.jsx)("div",{className:"rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-3 py-2 text-[13px] text-[var(--vk-text-normal)]",children:(0,r.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("p",{className:"text-[13px] text-[var(--vk-text-strong)]",children:[W," is not ready on this machine."]}),(0,r.jsx)("p",{className:"pt-0.5 text-[12px] text-[var(--vk-text-muted)]",children:H.installed?"Finish login or local setup to load models and start streaming sessions.":"Install the CLI first, then its models and authentication state will appear here."})]}),(0,r.jsx)("button",{type:"button",onClick:()=>T(n),className:"inline-flex h-[29px] items-center justify-center rounded-[3px] border border-[var(--vk-border)] px-3 text-[12px] text-[var(--vk-orange)] hover:bg-[var(--vk-bg-hover)]",children:H.installed?"Open setup":"Open install"})]})}):null,(0,r.jsxs)("label",{className:"flex items-start gap-2 rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-2 py-2 text-[13px] text-[var(--vk-text-normal)]",children:[(0,r.jsx)("input",{type:"checkbox",checked:ev,onChange:e=>eb(e.target.checked),className:"mt-0.5 h-4 w-4 rounded border border-[var(--vk-border)] bg-transparent accent-[var(--vk-orange)]"}),(0,r.jsxs)("span",{children:["Use worktree isolation",(0,r.jsx)("span",{className:"block text-[11px] text-[var(--vk-text-muted)]",children:"If unchecked, the session runs directly on the selected branch in the local repo."})]})]})]})})]}),F&&(0,r.jsx)("p",{className:"pt-2 text-[12px] text-[var(--status-error)]",children:F}),eA&&(0,r.jsx)("p",{className:"pt-2 text-[12px] text-[var(--status-error)]",children:eA})]})})})},85905:(e,t,n)=>{"use strict";n.d(t,{P:()=>l});var r=n(31404);function a(e){return e&&"object"==typeof e?e:null}async function l({files:e,projectId:t,taskRef:n,bridgeId:s,preferAbsolute:i=!0}){if(!e.length)return[];let o=t.trim();if(!o)throw Error("Project id is required to upload attachments");let d=new FormData;d.append("projectId",o);let c=n?.trim();for(let t of(c&&d.append("taskRef",c),e))d.append("files",t);let u=await fetch((0,r.S)("/api/attachments",s),{method:"POST",body:d}),p=await u.json().catch(()=>null);if(!u.ok){let t=1===e.length?e[0]?.name??"attachment":`${e.length} attachments`;throw Error(p?.error??`Failed to upload ${t}`)}let x=(Array.isArray(p?.files)?p.files:p?[p]:[]).map(e=>(function(e,t){let n=a(e);if(!n)return null;let r=a(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,i)).filter(e=>!!e);if(0===x.length)throw Error("Attachment upload succeeded but did not return a usable file path");return x}},88272:(e,t,n)=>{"use strict";n.d(t,{c0:()=>p,Z3:()=>l,Ik:()=>o,iL:()=>d,YS:()=>c,ZA:()=>u,xb:()=>x,aB:()=>m});var r=n(76196),a=n(5739);function l(){return{catalogModel:"",customModel:"",reasoningEffort:""}}function s(e,t){return t[(0,a.q)(e)]??null}function i(e){if(!e)return[];let t=[],n=new Set;for(let r of Object.values(e.modelsByAccess))if(Array.isArray(r))for(let e of r)!e?.id||n.has(e.id)||(n.add(e.id),t.push(e));return t}function o(e,t,n){let a=s(e,n),l=(0,r.Tk)(e,t),o=a&&l?a.modelsByAccess[l]??[]:[],d=i(a);if(d.length>0){let e=[],t=new Set;for(let n of[...o,...d])!n?.id||t.has(n.id)||(t.add(n.id),e.push(n));return e}return(0,r.d8)(e,t)}function d(e,t,n,a){let l=s(e,n),i=(0,r.Tk)(e,t);if(l){if(!l)return[];let e=a?.trim();return e&&l.reasoningOptionsByModel?.[e]?.length?l.reasoningOptionsByModel[e]??[]:i?l.reasoningOptionsByAccess?.[i]??[]:[]}return(0,r.u6)(e,t)}function c(e,t,n,a){let l=s(e,n),i=(0,r.Tk)(e,t);return l?function(e,t,n){if(!e)return null;let r=t?.trim();return r&&e.defaultReasoningByModel?.[r]?e.defaultReasoningByModel[r]??null:n?e.defaultReasoningByAccess?.[n]??null:null}(l,a,i)??"":(0,r.DZ)(e,t)??""}function u(e,t){let n=s(e,t),a=n?.customModelPlaceholder.trim();if(a)return a;let l=(0,r.yM)(e)?.label??"agent";return`Enter exact ${l} model id`}function p(e,t,n,a,l){let u=a?.trim()??"",p=l?.trim().toLowerCase()??"",x=s(e,n),m=o(e,t,n),h=function(e,t,n){let a=s(e,n),l=(0,r.Tk)(e,t);if(a)return(a&&l?a.defaultModelByAccess[l]??null:null)??i(a)[0]?.id??"";return(0,r.O$)(e,t)??""}(e,t,n),g=i(x).length>0,f=r=>{let a=d(e,t,n,r);return p.length>0&&a.some(e=>e.id===p)?p:c(e,t,n,r)};if(u.length>0){if(m.some(e=>e.id===u))return{catalogModel:u,customModel:"",reasoningEffort:f(u)};if(!g)return{catalogModel:h,customModel:u,reasoningEffort:f(u)}}return{catalogModel:h,customModel:"",reasoningEffort:f(h)}}function x(e){let t=e.customModel.trim();if(t.length>0)return t;let n=e.catalogModel.trim();return n.length>0?n:void 0}function m(e){let t=e.reasoningEffort.trim().toLowerCase();return t.length>0?t:void 0}}},e=>{e.O(0,[3036,691,3357,5587,3051,1257,6343,9703,6529,587,1968,7358],()=>e(e.s=12529)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[824],{18510:(e,t,n)=>{"use strict";n.d(t,{J:()=>s,s:()=>r});var i=n(10926);function s(e){let t=(0,i.C0)(e);if(!t)return"/";let n=new URLSearchParams;return n.set("bridge",t),`/?${n.toString()}`}function r(e,t={}){let n,s=e.trim(),d=(0,i.DW)(s)?s:(n=(0,i.C0)(t.bridgeId))?(0,i.Bp)(n,s):s,l=new URLSearchParams,o=t.tab?.trim();o&&l.set("tab",o);let a=l.toString(),c=`/sessions/${encodeURIComponent(d)}`;return a.length>0?`${c}?${a}`:c}},39337:(e,t,n)=>{"use strict";n.d(t,{default:()=>w});var i=n(54568),s=n(7620),r=n(79748),d=n(46012),l=n(862),o=n(84169),a=n(39702),c=n(29450),u=n(4997),b=n(86181),g=n(53649),m=n(86011),p=n(59207),h=n(35821),f=n(95106),S=n(10926),I=n(18510),j=n(84527),v=n(76050);function w({requiresPairedDeviceScope:e=!1}){let t=(0,r.useParams)(),n=(0,r.useRouter)(),x=(0,r.useSearchParams)(),M=(0,s.useMemo)(()=>(0,S.DW)(t.id)?.bridgeId??null,[t.id]),E=(0,s.useMemo)(()=>(0,S.C0)(x.get("bridge")??x.get("bridgeId")),[x]),k=M??E,C=(0,s.useMemo)(()=>k&&!M?(0,S.Bp)(k,t.id):t.id,[t.id,k,M]),P=!e||!!k,{session:$}=(0,h.w)(C,null,{bridgeId:k,enabled:P}),L=$?.bridgeId??k,{projects:N}=(0,g.U)(L,{enabled:!e||!!L}),{preferences:O,loading:R}=(0,p.g)(L,{enabled:!e||!!L}),{mobileSidebarOpen:U,desktopSidebarOpen:_,toggleSidebar:D,closeSidebarOnMobile:J}=(0,d.T)({initialDesktopOpen:!1}),W=U||_,{sessions:y,refresh:B}=(0,f.t)(void 0,{enabled:W&&(!e||!!L),bridgeId:L}),[K,T]=(0,s.useState)(null),[z,A]=(0,s.useState)(!1),G=(0,s.useMemo)(()=>{let e=x.get("tab");return"dispatcher"!==e&&("terminal"===e?"terminal"===(0,v.tK)($):null===e&&"terminal"===(0,v.tK)($))},[$,x])&&z,Q=$?.projectId??null;(0,m.Q)({enabled:!R&&null!==Q,projectId:Q,preferences:O?.notifications??null,bridgeId:L});let V=(0,s.useMemo)(()=>$?[$.projectId,$.branch].filter(Boolean).join(" \xb7 "):K||"Session",[$,K]),q=(0,s.useMemo)(()=>(0,I.J)(L),[L]);async function F(e){(await (0,j.J)(e,{bridgeId:L}),e===C)?n.replace(q):L&&B()}return((0,s.useEffect)(()=>{if(C===t.id)return;let e=new URLSearchParams(x.toString());e.delete("bridge"),e.delete("bridgeId");let i=e.toString(),s=`/sessions/${encodeURIComponent(C)}${i.length>0?`?${i}`:""}`;n.replace(s,{scroll:!1})},[C,t.id,n,x]),(0,s.useEffect)(()=>{$?.projectId?T($.projectId):!K&&N.length>0&&T(N[0]?.id??null)},[$?.projectId,N,K]),(0,s.useEffect)(()=>{let e="function"==typeof window.matchMedia?window.matchMedia("(pointer: coarse)"):null,t=()=>{A((0,b.k$)())};return t(),window.addEventListener("resize",t),e?.addEventListener?.("change",t),()=>{window.removeEventListener("resize",t),e?.removeEventListener?.("change",t)}},[]),t.id)?(0,i.jsxs)(l.G,{mobileSidebarOpen:U,desktopSidebarOpen:_,onToggleSidebar:D,hideMobileSidebarToggle:G,sidebar:W?(0,i.jsx)(c.WorkspaceSidebarPanel,{projects:N,selectedProjectId:K,onSelectProject:e=>{null===e?n.push(q):T(e)},sessions:y,selectedSessionId:C,onSelectSession:(e,t)=>{let i=y.find(t=>t.id===e)??null;n.push((0,I.s)(e,{bridgeId:L,tab:t?.tab??(0,v.tK)(i)})),J()},onArchiveSession:F,onCreateWorkspace:()=>{n.push(q)}}):null,children:[G?null:(0,i.jsx)(o.V,{title:V,rightContent:(0,i.jsx)(a.J,{})}),(0,i.jsx)("div",{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden ${G?"bg-[#060404]":""}`,children:(0,i.jsx)(u.SessionDetail,{sessionId:C,initialSession:$,bridgeId:L,immersiveMobileMode:G,onOpenSidebar:D},C)})]}):(0,i.jsx)("div",{className:"flex h-dvh min-h-[100dvh] items-center justify-center",children:(0,i.jsx)("span",{className:"text-[13px] text-[var(--text-muted)]",children:"No session ID provided"})})}},69755:(e,t,n)=>{Promise.resolve().then(n.bind(n,39337))}},e=>{e.O(0,[3357,5587,3051,1257,9151,9703,6529,4997,9450,587,1968,7358],()=>e(e.s=69755)),_N_E=e.O()}]);
|