@tt-a1i/hive 1.7.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/README.en.md +73 -11
- package/README.md +41 -8
- package/dist/src/cli/hive-remote.d.ts +46 -0
- package/dist/src/cli/hive-remote.js +257 -0
- package/dist/src/cli/hive-update.js +7 -2
- package/dist/src/cli/hive.d.ts +6 -0
- package/dist/src/cli/hive.js +64 -0
- package/dist/src/cli/team.d.ts +22 -0
- package/dist/src/cli/team.js +255 -5
- package/dist/src/server/agent-command-resolver.js +10 -3
- package/dist/src/server/agent-exit-classification.d.ts +6 -0
- package/dist/src/server/agent-exit-classification.js +6 -0
- package/dist/src/server/agent-manager-support.d.ts +2 -1
- package/dist/src/server/agent-manager-support.js +59 -15
- package/dist/src/server/agent-manager.d.ts +3 -0
- package/dist/src/server/agent-manager.js +22 -7
- package/dist/src/server/agent-run-bootstrap.d.ts +14 -0
- package/dist/src/server/agent-run-bootstrap.js +11 -4
- package/dist/src/server/agent-run-exit-handler.js +14 -8
- package/dist/src/server/agent-run-starter.d.ts +3 -1
- package/dist/src/server/agent-run-starter.js +22 -5
- package/dist/src/server/agent-run-sync.js +13 -5
- package/dist/src/server/agent-runtime-types.d.ts +1 -0
- package/dist/src/server/agent-runtime.d.ts +2 -1
- package/dist/src/server/agent-runtime.js +9 -2
- package/dist/src/server/agent-startup-instructions.d.ts +2 -1
- package/dist/src/server/agent-startup-instructions.js +8 -4
- package/dist/src/server/agent-stdin-dispatcher.d.ts +4 -2
- package/dist/src/server/agent-stdin-dispatcher.js +35 -3
- package/dist/src/server/command-preset-defaults.d.ts +6 -1
- package/dist/src/server/command-preset-defaults.js +56 -0
- package/dist/src/server/fs-browse.d.ts +2 -0
- package/dist/src/server/fs-browse.js +165 -31
- package/dist/src/server/fs-pick-folder.js +6 -69
- package/dist/src/server/fs-sandbox.d.ts +5 -3
- package/dist/src/server/fs-sandbox.js +5 -3
- package/dist/src/server/hive-team-guidance.js +18 -6
- package/dist/src/server/machine-name.d.ts +2 -0
- package/dist/src/server/machine-name.js +13 -0
- package/dist/src/server/open-target-commands.d.ts +1 -0
- package/dist/src/server/open-target-commands.js +4 -1
- package/dist/src/server/orchestrator-autostart.js +1 -1
- package/dist/src/server/platform-path.d.ts +1 -0
- package/dist/src/server/platform-path.js +14 -1
- package/dist/src/server/post-start-input-writer.js +50 -13
- package/dist/src/server/preset-launch-support.js +1 -0
- package/dist/src/server/recovery-summary.d.ts +2 -1
- package/dist/src/server/recovery-summary.js +2 -1
- package/dist/src/server/remote-audit-store.d.ts +51 -0
- package/dist/src/server/remote-audit-store.js +108 -0
- package/dist/src/server/remote-config-keys.d.ts +17 -0
- package/dist/src/server/remote-config-keys.js +27 -0
- package/dist/src/server/remote-control-constants.d.ts +30 -0
- package/dist/src/server/remote-control-constants.js +29 -0
- package/dist/src/server/remote-device-session.d.ts +40 -0
- package/dist/src/server/remote-device-session.js +22 -0
- package/dist/src/server/remote-device-store.d.ts +36 -0
- package/dist/src/server/remote-device-store.js +67 -0
- package/dist/src/server/remote-frame-bridge.d.ts +102 -0
- package/dist/src/server/remote-frame-bridge.js +791 -0
- package/dist/src/server/remote-gateway-client.d.ts +14 -0
- package/dist/src/server/remote-gateway-client.js +36 -0
- package/dist/src/server/remote-loopback-auth.d.ts +6 -0
- package/dist/src/server/remote-loopback-auth.js +112 -0
- package/dist/src/server/remote-pairing-tunnel.d.ts +59 -0
- package/dist/src/server/remote-pairing-tunnel.js +146 -0
- package/dist/src/server/remote-pairing.d.ts +58 -0
- package/dist/src/server/remote-pairing.js +237 -0
- package/dist/src/server/remote-tunnel.d.ts +113 -0
- package/dist/src/server/remote-tunnel.js +514 -0
- package/dist/src/server/restart-policy-support.d.ts +4 -1
- package/dist/src/server/restart-policy-support.js +3 -1
- package/dist/src/server/restart-policy.d.ts +1 -1
- package/dist/src/server/restart-policy.js +19 -3
- package/dist/src/server/route-types.d.ts +1 -1
- package/dist/src/server/routes-dispatches.js +1 -1
- package/dist/src/server/routes-fs.js +3 -3
- package/dist/src/server/routes-marketplace.js +2 -2
- package/dist/src/server/routes-open-workspace.js +1 -1
- package/dist/src/server/routes-remote.d.ts +2 -0
- package/dist/src/server/routes-remote.js +166 -0
- package/dist/src/server/routes-runtime.js +6 -6
- package/dist/src/server/routes-settings.js +16 -16
- package/dist/src/server/routes-tasks.js +2 -2
- package/dist/src/server/routes-team-memory.d.ts +2 -0
- package/dist/src/server/routes-team-memory.js +154 -0
- package/dist/src/server/routes-team-recall.d.ts +2 -0
- package/dist/src/server/routes-team-recall.js +119 -0
- package/dist/src/server/routes-team.js +31 -9
- package/dist/src/server/routes-ui.js +11 -1
- package/dist/src/server/routes-workflow-schedules.js +3 -3
- package/dist/src/server/routes-workflows.js +5 -5
- package/dist/src/server/routes-workspace-memory-dreams.d.ts +2 -0
- package/dist/src/server/routes-workspace-memory-dreams.js +105 -0
- package/dist/src/server/routes-workspace-memory.d.ts +2 -0
- package/dist/src/server/routes-workspace-memory.js +215 -0
- package/dist/src/server/routes-workspaces.js +9 -9
- package/dist/src/server/routes.js +10 -0
- package/dist/src/server/runtime-database.d.ts +1 -0
- package/dist/src/server/runtime-database.js +27 -2
- package/dist/src/server/runtime-restart-policy.d.ts +3 -1
- package/dist/src/server/runtime-restart-policy.js +2 -1
- package/dist/src/server/runtime-store-contract.d.ts +37 -0
- package/dist/src/server/runtime-store-dream.d.ts +23 -0
- package/dist/src/server/runtime-store-dream.js +16 -0
- package/dist/src/server/runtime-store-helpers.d.ts +20 -0
- package/dist/src/server/runtime-store-helpers.js +81 -7
- package/dist/src/server/runtime-store-memory.d.ts +33 -0
- package/dist/src/server/runtime-store-memory.js +37 -0
- package/dist/src/server/runtime-store-remote.d.ts +5 -0
- package/dist/src/server/runtime-store-remote.js +45 -0
- package/dist/src/server/runtime-store-workflows.js +2 -0
- package/dist/src/server/runtime-store.js +14 -3
- package/dist/src/server/session-capture-claude.d.ts +1 -1
- package/dist/src/server/session-capture-claude.js +7 -4
- package/dist/src/server/session-capture-codex.js +4 -5
- package/dist/src/server/session-capture-gemini.js +4 -5
- package/dist/src/server/session-capture-opencode.d.ts +4 -4
- package/dist/src/server/session-capture-opencode.js +20 -12
- package/dist/src/server/session-capture-qwen.d.ts +5 -0
- package/dist/src/server/session-capture-qwen.js +104 -0
- package/dist/src/server/session-capture.d.ts +17 -0
- package/dist/src/server/session-capture.js +16 -0
- package/dist/src/server/sqlite-schema-v23.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v23.js +43 -0
- package/dist/src/server/sqlite-schema-v24.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v24.js +34 -0
- package/dist/src/server/sqlite-schema-v25.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v25.js +127 -0
- package/dist/src/server/sqlite-schema-v26.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v26.js +56 -0
- package/dist/src/server/sqlite-schema-v27.d.ts +6 -0
- package/dist/src/server/sqlite-schema-v27.js +92 -0
- package/dist/src/server/sqlite-schema-v28.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v28.js +19 -0
- package/dist/src/server/sqlite-schema-v29.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v29.js +27 -0
- package/dist/src/server/sqlite-schema-v30.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v30.js +27 -0
- package/dist/src/server/sqlite-schema-v31.d.ts +2 -0
- package/dist/src/server/sqlite-schema-v31.js +30 -0
- package/dist/src/server/sqlite-schema.d.ts +1 -1
- package/dist/src/server/sqlite-schema.js +49 -1
- package/dist/src/server/startup-command-parser.js +5 -1
- package/dist/src/server/tasks-file-watcher.d.ts +2 -0
- package/dist/src/server/tasks-file-watcher.js +15 -6
- package/dist/src/server/tasks-file.js +30 -5
- package/dist/src/server/tasks-websocket-server.js +4 -0
- package/dist/src/server/team-authz.d.ts +1 -1
- package/dist/src/server/team-authz.js +13 -1
- package/dist/src/server/team-list-enrichment.js +3 -1
- package/dist/src/server/team-memory-digest.d.ts +52 -0
- package/dist/src/server/team-memory-digest.js +200 -0
- package/dist/src/server/team-memory-dream-applier.d.ts +5 -0
- package/dist/src/server/team-memory-dream-applier.js +234 -0
- package/dist/src/server/team-memory-dream-http-serializers.d.ts +13 -0
- package/dist/src/server/team-memory-dream-http-serializers.js +12 -0
- package/dist/src/server/team-memory-dream-ops.d.ts +40 -0
- package/dist/src/server/team-memory-dream-ops.js +153 -0
- package/dist/src/server/team-memory-dream-reverter.d.ts +22 -0
- package/dist/src/server/team-memory-dream-reverter.js +221 -0
- package/dist/src/server/team-memory-dream-run-store.d.ts +23 -0
- package/dist/src/server/team-memory-dream-run-store.js +211 -0
- package/dist/src/server/team-memory-dream-runner.d.ts +37 -0
- package/dist/src/server/team-memory-dream-runner.js +178 -0
- package/dist/src/server/team-memory-dream-scheduler.d.ts +32 -0
- package/dist/src/server/team-memory-dream-scheduler.js +115 -0
- package/dist/src/server/team-memory-dream-store.d.ts +19 -0
- package/dist/src/server/team-memory-dream-store.js +16 -0
- package/dist/src/server/team-memory-dream-types.d.ts +104 -0
- package/dist/src/server/team-memory-dream-types.js +23 -0
- package/dist/src/server/team-memory-export.d.ts +22 -0
- package/dist/src/server/team-memory-export.js +220 -0
- package/dist/src/server/team-memory-feature.d.ts +12 -0
- package/dist/src/server/team-memory-feature.js +12 -0
- package/dist/src/server/team-memory-http-serializers.d.ts +102 -0
- package/dist/src/server/team-memory-http-serializers.js +46 -0
- package/dist/src/server/team-memory-injection.d.ts +31 -0
- package/dist/src/server/team-memory-injection.js +49 -0
- package/dist/src/server/team-memory-store.d.ts +116 -0
- package/dist/src/server/team-memory-store.js +513 -0
- package/dist/src/server/team-operations.d.ts +5 -1
- package/dist/src/server/team-operations.js +46 -16
- package/dist/src/server/team-recall-store.d.ts +38 -0
- package/dist/src/server/team-recall-store.js +205 -0
- package/dist/src/server/terminal-input-profile.d.ts +1 -1
- package/dist/src/server/terminal-input-profile.js +18 -0
- package/dist/src/server/terminal-ws-server.js +6 -0
- package/dist/src/server/ui-auth-helpers.d.ts +1 -1
- package/dist/src/server/ui-auth-helpers.js +7 -1
- package/dist/src/server/ui-auth.d.ts +3 -0
- package/dist/src/server/ui-auth.js +21 -1
- package/dist/src/server/workflow-cli-policy.d.ts +2 -3
- package/dist/src/server/workflow-cli-policy.js +3 -3
- package/dist/src/server/workflow-runner.d.ts +1 -0
- package/dist/src/server/workflow-runner.js +9 -4
- package/dist/src/server/workspace-path-validation.js +6 -2
- package/dist/src/server/workspace-store.d.ts +1 -1
- package/dist/src/server/workspace-store.js +35 -9
- package/dist/src/shared/fs-browse.d.ts +1 -0
- package/dist/src/shared/fs-browse.js +1 -0
- package/dist/src/shared/path-input.d.ts +12 -0
- package/dist/src/shared/path-input.js +22 -0
- package/dist/src/shared/remote-bridge-routing.d.ts +19 -0
- package/dist/src/shared/remote-bridge-routing.js +141 -0
- package/dist/src/shared/remote-crypto.d.ts +138 -0
- package/dist/src/shared/remote-crypto.js +427 -0
- package/dist/src/shared/remote-pairing-code.d.ts +7 -0
- package/dist/src/shared/remote-pairing-code.js +47 -0
- package/dist/src/shared/remote-protocol.d.ts +160 -0
- package/dist/src/shared/remote-protocol.js +526 -0
- package/dist/src/shared/team-memory.d.ts +11 -0
- package/dist/src/shared/team-memory.js +10 -0
- package/dist/src/shared/team-recall.d.ts +1 -0
- package/dist/src/shared/team-recall.js +1 -0
- package/dist/src/shared/types.d.ts +4 -5
- package/package.json +12 -5
- package/scripts/postinstall-native-artifacts.mjs +113 -0
- package/web/dist/assets/AddWorkerDialog-CbV75qUX.js +2 -0
- package/web/dist/assets/AddWorkspaceFlow-CwV-7wPx.js +1 -0
- package/web/dist/assets/FirstRunWizard-a6PWIK3x.js +1 -0
- package/web/dist/assets/MarketplaceDrawer-Dd8WIA8T.js +67 -0
- package/web/dist/assets/TaskGraphDrawer-Bk5WFIk_.js +1 -0
- package/web/dist/assets/{WhatsNewDialog-CHkZeINH.js → WhatsNewDialog-C2VZaip0.js} +1 -1
- package/web/dist/assets/WorkerModal-DucW-9YT.js +1 -0
- package/web/dist/assets/WorkflowsDrawer-Bjf4olbR.js +1 -0
- package/web/dist/assets/WorkspaceMemoryDrawer-DglCy_5f.js +1 -0
- package/web/dist/assets/WorkspaceTaskDrawer-BIWwISvA.js +1 -0
- package/web/dist/assets/index-BAiLYajK.css +1 -0
- package/web/dist/assets/index-BV2k9Dts.js +73 -0
- package/web/dist/assets/search-Bk2HQvO7.js +1 -0
- package/web/dist/assets/square-terminal-D93m9hfY.js +1 -0
- package/web/dist/cli-icons/agy.png +0 -0
- package/web/dist/cli-icons/cursor.ico +0 -0
- package/web/dist/cli-icons/grok.ico +0 -0
- package/web/dist/cli-icons/qwen.png +0 -0
- package/web/dist/index.html +8 -3
- package/web/dist/sw.js +1 -1
- package/scripts/fix-runtime-artifacts.mjs +0 -33
- package/web/dist/assets/AddWorkerDialog-BRUxpa3f.js +0 -2
- package/web/dist/assets/AddWorkspaceDialog-D56x5JCb.js +0 -1
- package/web/dist/assets/FirstRunWizard-BFVaMIsE.js +0 -1
- package/web/dist/assets/MarketplaceDrawer-DeEZ35dN.js +0 -76
- package/web/dist/assets/WorkerModal-BBCuMLIa.js +0 -1
- package/web/dist/assets/WorkspaceTaskDrawer-CpZHAcj1.js +0 -1
- package/web/dist/assets/WorkspaceTerminalPanels-7If2mDyp.js +0 -1
- package/web/dist/assets/WorkspaceTerminalPanels-DDGTF8rc.css +0 -1
- package/web/dist/assets/index-5zh61jMg.css +0 -1
- package/web/dist/assets/index-CxNL0O-C.js +0 -73
- package/web/dist/assets/path-join-7MR1s7b1.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as E,_ as R,y as X,j as k,u as F,z as Z}from"./index-CxNL0O-C.js";const z="hive:terminal-visible-resize",Q=e=>new CustomEvent(z,{detail:{runId:e}}),ee=()=>typeof navigator>"u"?!1:/Mac|iPhone|iPad/.test(navigator.platform),_={killToLineStart:"",lineStart:"",lineEnd:"",killWordBack:"\x1B",wordBack:"\x1Bb",wordForward:"\x1Bf",shiftEnter:"\x1B[13;2u"},te=(e,n={})=>{const t=n.isMac??ee();if(e.key==="Enter"&&e.shiftKey)return e.type==="keypress"?{kind:"send",bytes:_.shiftEnter}:{kind:"block"};if(!t&&e.type==="keydown"&&e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey&&(e.key==="c"||e.key==="C")&&n.hasSelection)return{kind:"copy"};if(!t||e.type!=="keydown")return{kind:"passthrough"};const o=e.metaKey&&!e.ctrlKey&&!e.altKey&&!e.shiftKey,r=e.altKey&&!e.metaKey&&!e.ctrlKey;if(o)switch(e.key){case"Backspace":return{kind:"send",bytes:_.killToLineStart};case"ArrowLeft":return{kind:"send",bytes:_.lineStart};case"ArrowRight":return{kind:"send",bytes:_.lineEnd};case"k":case"K":return{kind:"clear"}}if(r)switch(e.key){case"Backspace":return{kind:"send",bytes:_.killWordBack};case"ArrowLeft":return{kind:"send",bytes:_.wordBack};case"ArrowRight":return{kind:"send",bytes:_.wordForward}}return{kind:"passthrough"}},H=(e,n={})=>{const t=new URL(e,window.location.href);t.protocol=t.protocol==="https:"?"wss:":"ws:";for(const[o,r]of Object.entries(n))r!==void 0&&t.searchParams.set(o,String(r));return t.toString()},ne=({initialSize:e,onError:n,onExit:t,onOutput:o,onRestore:r,runId:c})=>{const s=crypto.randomUUID(),a={...e,clientId:s},d=new WebSocket(H(`/ws/terminal/${c}/io`,a)),l=new WebSocket(H(`/ws/terminal/${c}/control`,a));let g=!1;const f=[];let h=null;const b=()=>{!h||l.readyState!==l.OPEN||(l.send(JSON.stringify({type:"resize",...h})),h=null)};return d.onmessage=p=>{const w=typeof p.data=="string"?p.data:"",m=v=>{l.readyState===l.OPEN&&l.send(JSON.stringify({type:"output_ack",bytes:v}))};if(!g){f.push({chunk:w,acknowledge:m});return}o(w,m)},l.onopen=()=>{b()},l.onmessage=p=>{const w=JSON.parse(String(p.data));if(w.type==="exit"&&t(w.code),w.type==="error"&&n(w.message),w.type==="restore"){r(w.snapshot),g=!0,l.readyState===l.OPEN&&l.send(JSON.stringify({type:"restore_complete"}));for(const m of f.splice(0))o(m.chunk,m.acknowledge)}},{dispose(){d.close(),l.close()},resize(p,w,m,v){h={cols:p,rows:w},m!==void 0&&(h.pixelWidth=m),v!==void 0&&(h.pixelHeight=v),b()},sendBinaryInput(p){if(d.readyState!==d.OPEN)return;const w=new Uint8Array(p.length);for(let m=0;m<p.length;m++)w[m]=p.charCodeAt(m)&255;d.send(w)},sendInput(p){d.readyState===d.OPEN&&d.send(p)}}},re=16,oe=.3,se=(e,n)=>{const t=n==="up"?"A":"B";return e?`\x1BO${t}`:`\x1B[${t}`},ie=(e,n,t)=>n==="opencode"?t==="up"?"\x1B[5~":"\x1B[6~":se(e.modes?.applicationCursorKeysMode,t),ae=(e,n="default")=>{let t=0;return o=>{if(e.buffer?.active?.type!=="alternate")return t=0,{handled:!1,input:null};if(n!=="opencode"&&e.modes?.mouseTrackingMode&&e.modes.mouseTrackingMode!=="none")return t=0,{handled:!1,input:null};if(o.deltaY===0||o.shiftKey)return{handled:!1,input:null};let r=o.deltaY;return o.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(r/=re,Math.abs(o.deltaY)<50&&(r*=oe),t+=r,r=Math.trunc(t),t%=1):t=0,r===0?{handled:!0,input:null}:{handled:!0,input:ie(e,n,r<0?"up":"down")}}},ce=({element:e,profile:n="default",sendInput:t,terminal:o})=>{const r=ae(o,n),c=a=>{const{handled:d,input:l}=r(a);return d?(a.preventDefault(),a.stopPropagation(),l&&t(l),!1):!0};if(typeof o.attachCustomWheelEventHandler=="function")return o.attachCustomWheelEventHandler(c),()=>{};const s=a=>{c(a)||a.stopImmediatePropagation()};return e.addEventListener("wheel",s,{capture:!0,passive:!1}),()=>e.removeEventListener("wheel",s,{capture:!0})},le=new RegExp("\x1B\\[M([\\s\\S])([\\s\\S])([\\s\\S])","g"),de=(e,n,t,o)=>{const r=n.charCodeAt(0)-32,c=t.charCodeAt(0)-32,s=o.charCodeAt(0)-32;if(r<0||c<1||s<1)return e;const d=(r&3)===3&&(r&32)===0&&(r&64)===0?"m":"M";return`\x1B[<${r};${c};${s}${d}`},ue=(e,n)=>{if(n!=="opencode")return{binary:!0,chunk:e};const t=e.replace(le,de);return{binary:t===e,chunk:t}},fe=(e,n="default")=>{const t=E.useRef(null),[o,r]=E.useState(null),[c,s]=E.useState("connecting");return E.useEffect(()=>{if(!t.current)return;let a=!1,d,l,g,f,h,b,p,w,m,v,S=null,P,L;const O={current:!1};return Promise.all([R(()=>import("./xterm-B-qIQCd3.js"),[]),R(()=>import("./addon-fit-DX4qG4td.js"),[]),R(()=>import("./addon-unicode11-Bt8F3D7-.js"),[]),R(()=>import("./addon-clipboard-wHJhZAA4.js"),[])]).then(([$,j,U,Y])=>{if(a||!t.current)return;const W=typeof window<"u"?getComputedStyle(document.documentElement):null,q=W?.getPropertyValue("--bg-crust").trim()||"#0e0e0e",J=W?.getPropertyValue("--text-primary").trim()||"#ebebeb",u=new $.Terminal({allowProposedApi:!0,convertEol:!1,fontFamily:"'DM Mono', ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:13,letterSpacing:0,lineHeight:1,scrollback:1e4,theme:{background:q,foreground:J}}),M=new j.FitAddon;if(u.loadAddon(M),u.loadAddon(new U.Unicode11Addon),u.unicode.activeVersion="11",u.loadAddon(new Y.ClipboardAddon),u.open(t.current),M.fit(),b=u,p=M,v=ce({element:t.current,profile:n,sendInput:i=>h?.sendInput(i),terminal:u}),S=t.current.querySelector(".xterm-helper-textarea"),S){const i=S;P=()=>{O.current=!0},L=y=>{const T=y.data;T&&h?.sendInput(T),i.value="",setTimeout(()=>{O.current=!1},0)},S.addEventListener("compositionstart",P,{capture:!0}),S.addEventListener("compositionend",L,{capture:!0})}typeof u.attachCustomKeyEventHandler=="function"&&u.attachCustomKeyEventHandler(i=>{const y=te(i,{hasSelection:u.hasSelection()});switch(y.kind){case"send":return i.preventDefault(),h?.sendInput(y.bytes),!1;case"clear":return i.preventDefault(),u.clear(),!1;case"copy":{i.preventDefault();const T=u.getSelection();return T&&navigator.clipboard?.writeText(T).catch(()=>{}),u.clearSelection(),!1}case"block":return!1;case"passthrough":return!0}});const G=()=>{const i=t.current;return i?.isConnected?!i.closest('[data-terminal-host-parked="true"]'):!1},N=()=>{if(!t.current)return{};const i=t.current.clientWidth,y=t.current.clientHeight,T={};return y>0&&(T.pixelHeight=y),i>0&&(T.pixelWidth=i),T},I=()=>{if(!t.current||!G())return;p?.fit();const{pixelHeight:i,pixelWidth:y}=N();h?.resize(b?.cols??80,b?.rows??24,y,i)},K=()=>{m&&window.clearTimeout(m),m=window.setTimeout(()=>{m=void 0,I()},50)};R(()=>import("./addon-web-links-DIbG5aQx.js"),[]).then(i=>{a||b!==u||u.loadAddon(new i.WebLinksAddon)}).catch(()=>{}),R(()=>import("./addon-webgl-DCtw1yLn.js"),[]).then(i=>{if(!(a||b!==u))try{const y=new i.WebglAddon;y.onContextLoss(()=>y.dispose()),u.loadAddon(y),K()}catch{}}).catch(()=>{}),h=ne({initialSize:{cols:u.cols,rows:u.rows,...N()},onError(i){r(i)},onExit(){s("stopped")},onOutput(i,y){u.write(i,()=>y(new TextEncoder().encode(i).byteLength))},onRestore(i){u.write(i)},runId:e}),f=u.onData(i=>{O.current||h?.sendInput(i)}),typeof u.onBinary=="function"&&(g=u.onBinary(i=>{const y=ue(i,n);y.binary?h?.sendBinaryInput(y.chunk):h?.sendInput(y.chunk)})),s("running"),I(),typeof ResizeObserver<"u"&&t.current&&(w=new ResizeObserver(K),w.observe(t.current)),d=i=>{i.detail?.runId===e&&I()},l=()=>I(),window.addEventListener(z,d),window.addEventListener("resize",l)}),()=>{a=!0,d&&window.removeEventListener(z,d),l&&window.removeEventListener("resize",l),w?.disconnect(),m&&window.clearTimeout(m),v?.(),S&&P&&S.removeEventListener("compositionstart",P,{capture:!0}),S&&L&&S.removeEventListener("compositionend",L,{capture:!0}),g?.dispose(),f?.dispose(),h?.dispose(),b?.dispose(),p?.dispose()}},[e,n]),{containerRef:t,error:o,status:c}},pe={connecting:"terminal.statusConnecting",running:"terminal.statusRunning",stopped:"common.stopped"},D="hive-terminal-parking-lot",me=500,he=e=>[`worker-pty-${e}`,`orch-pty-${e}`,`shell-pty-${e}`],ye=e=>{const n=Array.from(document.querySelectorAll("[data-pty-slot]")).filter(t=>t.id===e);return n[n.length-1]??null},we=()=>{let e=document.getElementById(D);return e||(e=document.createElement("div"),e.id=D,e.hidden=!0,e.style.display="none",(document.body??document.documentElement).appendChild(e)),e},B=()=>{const e=document.getElementById(D);e&&e.childElementCount===0&&e.remove()},C=new Set;let x,A;const V=()=>{for(const e of C)e()},Ee=()=>{x?.disconnect(),x=void 0,A!==void 0&&(window.clearInterval(A),A=void 0)},ge=()=>{if(x||A!==void 0)return;const e=document.body??document.documentElement;if(typeof MutationObserver<"u"&&e){x=new MutationObserver(V),x.observe(e,{attributeFilter:["data-pty-slot","id"],attributes:!0,childList:!0,subtree:!0});return}A=window.setInterval(V,100)},be=e=>(C.add(e),ge(),()=>{C.delete(e),C.size===0&&Ee()}),Se=[50,150,300],Te=e=>{const n=[],t=[],o=()=>window.dispatchEvent(Q(e)),r=(c,s)=>{const a=window.setTimeout(()=>{const d=t.indexOf(a);d>=0&&t.splice(d,1),s()},c);t.push(a)};if(typeof window.requestAnimationFrame=="function"){const c=window.requestAnimationFrame(()=>{o();const s=window.requestAnimationFrame(o);n.push(s)});n.push(c)}else r(0,o);for(const c of Se)r(c,o);return()=>{for(const c of n)window.cancelAnimationFrame?.(c);for(const c of t)window.clearTimeout(c);n.length=0,t.length=0}},ve=e=>{const[n,t]=E.useState(null);return E.useEffect(()=>{const o=he(e),r=()=>{for(const s of o){const a=ye(s);if(a)return a}return null},c=()=>{const s=r();t(a=>a===s?a:s)};return c(),be(c)},[e]),n},_e=(e,n)=>{const[t,o]=E.useState(!1),[r,c]=E.useState(null),s=E.useRef(void 0),a=E.useRef(null),d=E.useRef(void 0),l=E.useCallback(()=>{s.current!==void 0&&(window.clearTimeout(s.current),s.current=void 0)},[]),g=E.useCallback(()=>{d.current?.(),d.current=void 0},[]);return E.useLayoutEffect(()=>{const f=document.createElement("div");return f.dataset.terminalHostRunId=e,f.dataset.terminalHostParked="false",f.className="h-full min-h-0 w-full min-w-0",a.current=f,c(f),()=>{l(),g(),f.remove(),a.current=null,B()}},[l,g,e]),E.useLayoutEffect(()=>{if(n){l(),o(!0);return}if(!(!t||s.current!==void 0))return s.current=window.setTimeout(()=>{s.current=void 0,o(!1)},me),l},[t,l,n]),E.useLayoutEffect(()=>{const f=a.current;if(!f)return;if(!t){g(),f.remove(),f.dataset.terminalHostParked="false",B();return}const h=n??we();if(f.parentElement===h)return;const b=f.parentElement!==null,p=document.activeElement;n||g(),!n&&p instanceof HTMLElement&&f.contains(p)&&p.blur(),f.dataset.terminalHostParked=n?"false":"true",h.appendChild(f),B(),n&&b&&(g(),d.current=Te(e))},[t,g,e,n]),t?r:null},ke=({inputProfile:e="default",runId:n,title:t})=>{const o=ve(n),r=_e(n,o);return r?X.createPortal(k.jsx(Re,{inputProfile:e,runId:n,title:t}),r):null},Re=({inputProfile:e,runId:n,title:t})=>{const{t:o}=F(),{containerRef:r,error:c,status:s}=fe(n,e),a=pe[s];return k.jsxs("div",{className:"flex h-full min-h-0 w-full min-w-0 flex-col overflow-hidden",children:[k.jsx("p",{className:"sr-only",children:a?o(a):s}),c?k.jsx("p",{role:"alert",className:"mono shrink-0 break-words px-3 py-2 text-xs",style:{background:"color-mix(in oklab, var(--status-red) 12%, transparent)",borderBottom:"1px solid color-mix(in oklab, var(--status-red) 30%, transparent)",color:"var(--status-red)"},children:c}):null,k.jsx("div",{"data-testid":`terminal-${n}`,ref:r,className:"bg-crust h-full min-h-0 w-full min-w-0 flex-1 overflow-hidden"})]})},Ae=({hidden:e=!1,optimisticRuns:n=[],terminalRuns:t,workspaceId:o})=>{const{t:r}=F(),c=Z(t,n,o);return k.jsx("section",{hidden:e,"aria-hidden":e||void 0,"aria-label":r("terminalPanels.aria"),children:c.map(s=>k.jsx(ke,{inputProfile:s.terminal_input_profile??"default",runId:s.run_id,title:`${s.agent_name} (${s.status})`},s.run_id))})};export{Ae as WorkspaceTerminalPanels};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--container-5xl:64rem;--text-xs:11px;--text-xs--line-height:calc(1 / .75);--text-sm:12px;--text-sm--line-height:calc(1.25 / .875);--text-base:13px;--text-base--line-height: 1.5 ;--text-lg:16px;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:20px;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:24px;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-border:#1d1d1d;--color-accent:#3358d4;--color-status-red:#d4544f}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-4{inset:calc(var(--spacing) * 4)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-8{top:calc(var(--spacing) * 8)}.top-20{top:calc(var(--spacing) * 20)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-8{bottom:calc(var(--spacing) * 8)}.left-0{left:calc(var(--spacing) * 0)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-2{margin-right:calc(var(--spacing) * -2)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-7{margin-left:calc(var(--spacing) * 7)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-2{height:calc(var(--spacing) * 2)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-24{height:calc(var(--spacing) * 24)}.h-\[16px\]{height:16px}.h-\[18px\]{height:18px}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[calc\(100vh-32px\)\]{max-height:calc(100vh - 32px)}.max-h-\[calc\(100vh-64px\)\]{max-height:calc(100vh - 64px)}.max-h-screen{max-height:100vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-\[78px\]{min-height:78px}.min-h-\[200px\]{min-height:200px}.min-h-\[360px\]{min-height:360px}.w-1{width:calc(var(--spacing) * 1)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-24{width:calc(var(--spacing) * 24)}.w-72{width:calc(var(--spacing) * 72)}.w-\[18px\]{width:18px}.w-\[280px\]{width:280px}.w-\[360px\]{width:360px}.w-\[380px\]{width:380px}.w-\[420px\]{width:420px}.w-\[440px\]{width:440px}.w-\[480px\]{width:480px}.w-\[560px\]{width:560px}.w-\[760px\]{width:760px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[200px\]{max-width:200px}.max-w-\[380px\]{max-width:380px}.max-w-\[400px\]{max-width:400px}.max-w-\[480px\]{max-width:480px}.max-w-\[calc\(100vw-32px\)\]{max-width:calc(100vw - 32px)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-\[16px\]{min-width:16px}.min-w-\[260px\]{min-width:260px}.min-w-\[480px\]{min-width:480px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-y-1{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--border-bright\)\]{border-color:var(--border-bright)}.border-accent{border-color:var(--color-accent)}.border-border{border-color:var(--color-border)}.bg-\[var\(--bg-0\)\]{background-color:var(--bg-0)}.bg-\[var\(--bg-1\)\]{background-color:var(--bg-1)}.bg-accent{background-color:var(--color-accent)}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-transparent{background-color:#0000}.object-cover{object-fit:cover}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_28px_90px_-42px_rgba\(0\,0\,0\,0\.8\)\]{--tw-shadow:0 28px 90px -42px var(--tw-shadow-color,#000c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background\,border-color\,transform\]{transition-property:background,border-color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-columns\]{transition-property:grid-template-columns;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-open\:rotate-0:is(:where(.group):is([open],:popover-open,:open) *){rotate:0deg}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing) * 0)}.focus-within\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\:ring-\[var\(--ring-focus\)\]:focus-within{--tw-ring-color:var(--ring-focus)}.focus-within\:outline-none:focus-within{--tw-outline-style:none;outline-style:none}@media(hover:hover){.hover\:bg-\[var\(--bg-0\)\]:hover{background-color:var(--bg-0)}.hover\:text-status-red:hover{color:var(--color-status-red)}.hover\:opacity-80:hover{opacity:.8}}.focus\:border-\[var\(--accent\)\]:focus{border-color:var(--accent)}.focus\:opacity-100:focus{opacity:1}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline:focus-visible,.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-\[var\(--accent\)\]:focus-visible{outline-color:var(--accent)}.active\:translate-y-px:active{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:48rem){.md\:inset-8{inset:calc(var(--spacing) * 8)}}@media(min-width:64rem){.lg\:inset-16{inset:calc(var(--spacing) * 16)}}}:root{--bg-0:#171717;--bg-1:#1b1b1b;--bg-2:#1d1d1d;--bg-3:#222;--bg-crust:#0e0e0e;--bg-overlay:#000000b8;--bg-elevated:#222;--charcoal-775:#1c1e21;--charcoal-750:#212327;--charcoal-700:#272a2e;--charcoal-650:#2c3034;--charcoal-600:#3b3e45;--background-dimmed:var(--bg-1);--background-bright:var(--bg-2);--grid-dimmed:var(--border);--grid-bright:var(--border-bright);--border:#1d1d1d;--border-bright:#484848;--text-primary:#ebebeb;--text-secondary:#b3b3b3;--text-tertiary:#9c9c9c;--text-light:#9c9c9c;--text-extra-light:#6f6f6f;--text-inverted:#1b1b1b;--text-danger:var(--status-red);--accent:#3358d4;--accent-hover:#5072dd;--status-green:#54a271;--status-orange:#e67333;--status-red:#d4544f;--status-blue:#3358d4;--status-purple:#8551c0;--status-gold:#ffeb38;--icon-xs:12px;--icon-sm:14px;--icon-md:16px;--icon-lg:20px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-modal:cubic-bezier(.32, .72, 0, 1);--ease-overshoot:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.1s;--dur-base:.15s;--dur-slow:.28s;--ring-focus:#5e6ad273;--shadow-tint:41 47 61;--shadow-elev-2:0 4px 12px rgba(var(--shadow-tint), .4), 0 1px 2px rgba(var(--shadow-tint), .3);--shadow-card:0 0 0 1px rgba(var(--shadow-tint), .12);--shadow-card-hover:0 0 0 1px var(--accent)}@supports (color:color-mix(in lab,red,red)){:root{--shadow-card-hover:0 0 0 1px color-mix(in oklab, var(--accent) 35%, transparent)}}:root{color-scheme:dark}::selection{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){::selection{background:color-mix(in oklab,var(--accent) 22%,transparent)}}::selection{color:var(--text-primary)}html,body{background:var(--bg-0);height:100%;color:var(--text-primary);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;caret-color:var(--accent);margin:0;padding:0;font-family:Inter,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#root{height:100%}.mono{font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.bg-0{background:var(--bg-0)}.bg-1{background:var(--bg-1)}.bg-2{background:var(--bg-2)}.bg-3{background:var(--bg-3)}.bg-crust{background:var(--bg-crust)}.text-pri{color:var(--text-primary)}.text-sec{color:var(--text-secondary)}.text-ter{color:var(--text-tertiary)}.border-d{border-color:var(--border)}.border-b1{border-color:var(--border-bright)}.accent{color:var(--accent)}.bg-accent{background:var(--accent)}.scroll-y{overflow-y:auto}.scroll-y::-webkit-scrollbar{width:8px;height:8px}.input::-webkit-scrollbar{width:8px;height:8px}.xterm-viewport::-webkit-scrollbar{width:8px;height:8px}.scroll-y::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:4px}.input::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:4px}.xterm-viewport::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:4px}.scroll-y::-webkit-scrollbar-thumb:hover{background:var(--border-bright)}.input::-webkit-scrollbar-thumb:hover{background:var(--border-bright)}.xterm-viewport::-webkit-scrollbar-thumb:hover{background:var(--border-bright)}.scroll-y::-webkit-scrollbar-track{background:0 0}.input::-webkit-scrollbar-track{background:0 0}.xterm-viewport::-webkit-scrollbar-track{background:0 0}.scroll-y,.input,.xterm-viewport{scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent}.xterm.focus{box-shadow:inset 0 0 0 1px var(--accent)}@supports (color:color-mix(in lab,red,red)){.xterm.focus{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--accent) 35%,transparent)}}.ws-row{transition:background var(--dur-fast) ease,color var(--dur-fast) ease;cursor:pointer;border-radius:4px;margin:0 6px;position:relative}.ws-row:hover{background:#ffffff0d}.ws-row.active{background:#ffffff12}.ws-row-delete:hover{background:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.ws-row-delete:hover{background:color-mix(in oklab,var(--status-red) 18%,transparent)}}.ws-row-delete:hover{box-shadow:inset 0 0 0 1px var(--status-red)}@supports (color:color-mix(in lab,red,red)){.ws-row-delete:hover{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--status-red) 50%,var(--border-bright))}}.ws-add{transition:background var(--dur-fast) ease,border-color var(--dur-fast) ease,color var(--dur-fast) ease;background:0 0}.ws-add:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.ws-add:hover{background:color-mix(in oklab,var(--accent) 6%,transparent)}}.ws-add:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.ws-add:hover{border-color:color-mix(in oklab,var(--accent) 50%,var(--border-bright))}}.ws-add:hover{color:var(--text-primary)}.workspace-sidebar{container:ws-sidebar/inline-size}@container ws-sidebar (max-width:140px){.ws-add__label{display:none}.ws-add{padding-left:8px;padding-right:8px}}@container ws-sidebar (max-width:96px){.ws-row{display:none}.ws-avatar-cell{display:flex}.ws-sidebar-title__text,.ws-sidebar-count,.ws-row-delete{display:none}.ws-empty{flex-direction:column;justify-content:flex-start;align-items:center;padding-left:0;padding-right:0;display:flex}.ws-empty__wide{display:none}.ws-empty .ws-empty__compact{width:32px;height:32px;padding:0;display:flex}.ws-add--inline{border-radius:4px;width:32px;height:32px;margin-top:6px;margin-left:auto;margin-right:auto;padding:0}}.ws-sidebar-footer{margin-top:auto}@container ws-sidebar (max-width:140px){.ws-sidebar-footer__label{display:none}}@container ws-sidebar (max-width:96px){.ws-sidebar-footer__link{justify-content:center;padding-left:0;padding-right:0}.ws-sidebar-footer__dismiss{display:none}}.ws-collapse-toggle{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast) ease,color var(--dur-fast) ease,border-color var(--dur-fast) ease;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ws-collapse-toggle:hover{background:var(--bg-2);color:var(--text-primary)}@container ws-sidebar (max-width:96px){.ws-sidebar-header{justify-content:center;padding-left:0;padding-right:0}.ws-sidebar-title{display:none}.ws-collapse-toggle{border-color:var(--border);background:var(--bg-1);border-radius:8px;width:32px;height:32px}.ws-collapse-toggle:hover{background:var(--bg-2);border-color:var(--border-bright);color:var(--text-primary)}}.workspace-sidebar-resizer{z-index:20;cursor:col-resize;touch-action:none;border:0;outline:none;width:8px;height:100%;margin:0;position:absolute;top:0;right:-4px}.workspace-sidebar-resizer:before{content:"";width:1px;transition:background var(--dur-fast) ease,box-shadow var(--dur-fast) ease;background:0 0;position:absolute;top:0;bottom:0;left:3px}.workspace-sidebar-resizer:hover:before,.workspace-sidebar-resizer:focus-visible:before,.workspace-sidebar-resizer[data-resizing=true]:before{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.workspace-sidebar-resizer:hover:before,.workspace-sidebar-resizer:focus-visible:before,.workspace-sidebar-resizer[data-resizing=true]:before{background:color-mix(in oklab,var(--accent) 68%,var(--border-bright))}}.workspace-sidebar-resizer:hover:before,.workspace-sidebar-resizer:focus-visible:before,.workspace-sidebar-resizer[data-resizing=true]:before{box-shadow:0 0 0 2px var(--accent)}@supports (color:color-mix(in lab,red,red)){.workspace-sidebar-resizer:hover:before,.workspace-sidebar-resizer:focus-visible:before,.workspace-sidebar-resizer[data-resizing=true]:before{box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 12%,transparent)}}.dot{vertical-align:middle;border-radius:50%;width:7px;height:7px;display:inline-block}.pulse-green{background:var(--status-green);animation:1.6s ease-in-out infinite hive-pulse}.pulse-orange{background:var(--status-orange);animation:1.6s ease-in-out infinite hive-pulse}@keyframes hive-pulse{0%,to{opacity:1}50%{opacity:.45}}.status-dot{vertical-align:middle;width:8px;height:8px;transition:background var(--dur-base) ease;border-radius:50%;flex-shrink:0;display:inline-block}.status-dot--working{background:var(--status-green);animation:1.8s ease-in-out infinite hive-ripple-green}.status-dot--idle{background:var(--text-tertiary);box-shadow:0 0 0 2px var(--text-tertiary)}@supports (color:color-mix(in lab,red,red)){.status-dot--idle{box-shadow:0 0 0 2px color-mix(in oklab,var(--text-tertiary) 18%,transparent)}}.status-dot--queued{background:var(--status-orange);animation:1.8s ease-in-out infinite hive-ripple-orange}.status-dot--stopped{background:var(--status-red);box-shadow:0 0 0 2px var(--status-red)}@supports (color:color-mix(in lab,red,red)){.status-dot--stopped{box-shadow:0 0 0 2px color-mix(in oklab,var(--status-red) 22%,transparent)}}.status-dot--stopped{opacity:.85}@keyframes hive-ripple-green{0%,to{box-shadow:0 0 0 3px color-mix(in oklab,var(--status-green) 22%,transparent)}50%{box-shadow:0 0 0 7px color-mix(in oklab,var(--status-green) 6%,transparent)}}@keyframes hive-ripple-orange{0%,to{box-shadow:0 0 0 3px color-mix(in oklab,var(--status-orange) 22%,transparent)}50%{box-shadow:0 0 0 7px color-mix(in oklab,var(--status-orange) 6%,transparent)}}@media(prefers-reduced-motion:reduce){.status-dot--working,.status-dot--queued{animation:none}}.pill{letter-spacing:.1px;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.pill--green{color:var(--status-green)}@supports (color:color-mix(in lab,red,red)){.pill--green{color:color-mix(in oklab,var(--status-green) 55%,white)}}.pill--green{background:var(--status-green)}@supports (color:color-mix(in lab,red,red)){.pill--green{background:color-mix(in oklab,var(--status-green) 14%,transparent)}}.pill--green{border-color:var(--status-green)}@supports (color:color-mix(in lab,red,red)){.pill--green{border-color:color-mix(in oklab,var(--status-green) 28%,transparent)}}.pill--orange{color:var(--status-orange)}@supports (color:color-mix(in lab,red,red)){.pill--orange{color:color-mix(in oklab,var(--status-orange) 65%,white)}}.pill--orange{background:var(--status-orange)}@supports (color:color-mix(in lab,red,red)){.pill--orange{background:color-mix(in oklab,var(--status-orange) 12%,transparent)}}.pill--orange{border-color:var(--status-orange)}@supports (color:color-mix(in lab,red,red)){.pill--orange{border-color:color-mix(in oklab,var(--status-orange) 28%,transparent)}}.pill--red{color:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.pill--red{color:color-mix(in oklab,var(--status-red) 50%,white)}}.pill--red{background:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.pill--red{background:color-mix(in oklab,var(--status-red) 14%,transparent)}}.pill--red{border-color:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.pill--red{border-color:color-mix(in oklab,var(--status-red) 30%,transparent)}}.pill--neutral{color:var(--text-secondary);background:var(--bg-3);border-color:var(--border)}.pill--ghost{color:var(--text-tertiary);background:0 0;border-color:#0000;padding-left:0;padding-right:0}.icon-btn{height:28px;color:var(--text-secondary);border:1px solid var(--border-bright);background:var(--bg-2);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;transition:background .1s,border-color .1s,color .1s;display:inline-flex}.icon-btn:hover{background:var(--bg-3);color:var(--text-primary)}.icon-btn:active{background:var(--bg-3)}.icon-btn:focus-visible{box-shadow:0 0 0 3px var(--accent);outline:none}@supports (color:color-mix(in lab,red,red)){.icon-btn:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 30%,transparent)}}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.icon-btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.icon-btn--danger{color:var(--status-red);border-color:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.icon-btn--danger{border-color:color-mix(in oklab,var(--status-red) 30%,var(--border-bright))}}.icon-btn--danger:hover{background:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.icon-btn--danger:hover{background:color-mix(in oklab,var(--status-red) 14%,transparent)}}.icon-btn--danger:hover{border-color:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.icon-btn--danger:hover{border-color:color-mix(in oklab,var(--status-red) 40%,transparent)}}.icon-btn--danger:hover{color:var(--status-red)}.icon-btn--danger-solid{background:var(--status-red);color:#fff;border-color:var(--status-red)}.icon-btn--danger-solid:hover{background:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.icon-btn--danger-solid:hover{background:color-mix(in oklab,var(--status-red) 88%,#000)}}.icon-btn--danger-solid:hover{border-color:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.icon-btn--danger-solid:hover{border-color:color-mix(in oklab,var(--status-red) 88%,#000)}}.icon-btn--danger-solid:hover{color:#fff}.icon-btn--tertiary{background:var(--charcoal-700);border-color:#0000}.icon-btn--tertiary:hover{background:var(--charcoal-600);border-color:#0000}.icon-btn--ghost{box-shadow:none;color:var(--text-tertiary);background:0 0;border-color:#0000}.icon-btn--ghost:hover{background:var(--charcoal-700);color:var(--text-primary);box-shadow:none;border-color:#0000}.icon-btn--link{box-shadow:none;color:var(--text-secondary);background:0 0;border-color:#0000;padding-left:2px;padding-right:2px}.icon-btn--link:hover{color:var(--text-primary);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;transition:border-color .1s,background .1s;position:relative}.card--interactive{cursor:pointer}.card--interactive:hover{border-color:var(--border-bright)}.selectable-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;cursor:pointer;transition:border-color var(--dur-fast) ease,background var(--dur-fast) ease,box-shadow var(--dur-fast) ease;position:relative}.selectable-card--dashed{border-style:dashed;border-color:var(--border-bright)}.selectable-card:hover:not([aria-pressed=true]){border-color:var(--border-bright);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.selectable-card:hover:not([aria-pressed=true]){background:color-mix(in oklab,var(--accent) 3%,var(--bg-2))}}.selectable-card:focus-visible{box-shadow:0 0 0 3px var(--accent);outline:none}@supports (color:color-mix(in lab,red,red)){.selectable-card:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 30%,transparent)}}.selectable-card[aria-pressed=true]{border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.selectable-card[aria-pressed=true]{background:color-mix(in oklab,var(--accent) 14%,var(--bg-2))}}.role-badge{letter-spacing:.3px;text-transform:uppercase;white-space:nowrap;border-radius:3px;flex-shrink:0;padding:1px 6px;font-size:11px;font-weight:500;display:inline-block}.role-badge--coder{background:var(--status-blue)}@supports (color:color-mix(in lab,red,red)){.role-badge--coder{background:color-mix(in oklab,var(--status-blue) 22%,var(--bg-2))}}.role-badge--coder{color:var(--status-blue)}.role-badge--tester{background:var(--status-orange)}@supports (color:color-mix(in lab,red,red)){.role-badge--tester{background:color-mix(in oklab,var(--status-orange) 22%,var(--bg-2))}}.role-badge--tester{color:var(--status-orange)}.role-badge--reviewer{background:var(--status-purple)}@supports (color:color-mix(in lab,red,red)){.role-badge--reviewer{background:color-mix(in oklab,var(--status-purple) 22%,var(--bg-2))}}.role-badge--reviewer{color:var(--status-purple)}.role-badge--orch,.role-badge--custom{background:var(--bg-3);color:var(--text-secondary)}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.drawer{transition:transform .25s ease-out;transform:translate(100%)}.drawer.open{transform:translate(0)}.task-dialog__content{overflow:hidden}.task-progress-thin{background:var(--bg-3);border-radius:999px;height:2px;overflow:hidden}.task-progress-thin>span{border-radius:inherit;background:var(--accent);height:100%;transition:width .15s;display:block}.task-drawer__header{flex-shrink:0;align-items:center;gap:12px;padding:14px 16px 12px;display:flex}.task-drawer__progress{margin:0 16px 8px}.task-list{flex-direction:column;gap:2px;display:flex}.task-node{position:relative}.task-row{min-width:0;transition:background-color var(--dur-fast) ease;border-radius:6px;align-items:flex-start;gap:12px;padding:8px 10px 8px 12px;display:flex;position:relative}.task-row:before{content:"";width:2px;transition:background-color var(--dur-fast) ease;background:0 0;border-radius:999px;position:absolute;top:8px;bottom:8px;left:0}.task-row:hover{background:var(--bg-2)}.task-row:hover:before,.task-row:focus-within:before{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.task-row:hover:before,.task-row:focus-within:before{background:color-mix(in oklab,var(--accent) 60%,transparent)}}.task-row__indicator{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-top:2px;display:inline-flex}.task-row__title{word-break:break-word;font-size:14px;line-height:1.4}.task-row__checkbox-cell{cursor:pointer;flex-shrink:0;align-items:flex-start;display:inline-flex}.task-row__input{width:100%;color:var(--text-primary);background:0 0;border:none;outline:none;padding:0;font-family:inherit;font-size:14px;line-height:1.4}.task-row__input::placeholder{color:var(--text-tertiary)}.task-row__actions{opacity:0;transition:opacity var(--dur-fast) ease;align-items:center;gap:2px;margin-left:4px;display:inline-flex}.task-row:hover .task-row__actions,.task-row:focus-within .task-row__actions{opacity:1}.task-row__action{width:22px;height:22px;color:var(--text-tertiary);cursor:pointer;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.task-row__action:hover{background:var(--bg-3);color:var(--text-primary)}.task-row__action--danger:hover{background:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.task-row__action--danger:hover{background:color-mix(in oklab,var(--status-red) 18%,transparent)}}.task-row__action--danger:hover{color:var(--status-red)}.task-row--child-input{cursor:default}.task-row--child-input:hover{background:var(--bg-2)}.task-children{margin-left:22px;padding-left:14px;position:relative}.task-children:before{content:"";background:var(--border-bright);width:1px;position:absolute;top:4px;bottom:8px;left:0}.task-status-open{color:var(--text-tertiary);background:var(--bg-3)}.task-status-done{color:var(--status-green);background:var(--status-green)}@supports (color:color-mix(in lab,red,red)){.task-status-done{background:color-mix(in oklab,var(--status-green) 13%,transparent)}}.task-owner{height:20px;color:var(--owner-tone,var(--status-blue));border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.task-owner{color:color-mix(in oklab,var(--owner-tone,var(--status-blue)) 35%,white)}}.task-owner{background:var(--owner-tone,var(--status-blue))}@supports (color:color-mix(in lab,red,red)){.task-owner{background:color-mix(in oklab,var(--owner-tone,var(--status-blue)) 16%,transparent)}}.task-owner{border:1px solid var(--owner-tone,var(--status-blue))}@supports (color:color-mix(in lab,red,red)){.task-owner{border:1px solid color-mix(in oklab,var(--owner-tone,var(--status-blue)) 30%,transparent)}}.task-mention{border:1px solid var(--status-blue);align-items:center;height:20px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.task-mention{border:1px solid color-mix(in oklab,var(--status-blue) 28%,transparent)}}.task-mention{color:var(--status-blue);border-radius:999px;padding:0 8px}@supports (color:color-mix(in lab,red,red)){.task-mention{color:color-mix(in oklab,var(--status-blue) 30%,white)}}.task-mention{background:var(--status-blue)}@supports (color:color-mix(in lab,red,red)){.task-mention{background:color-mix(in oklab,var(--status-blue) 14%,transparent)}}.task-mention{font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.task-child-count{height:18px;color:var(--text-tertiary);background:var(--bg-3);border-radius:999px;align-items:center;gap:1px;padding:0 6px 0 4px;font-size:11px;display:inline-flex}.task-add-toggle{text-align:left;width:100%;color:var(--text-tertiary);cursor:pointer;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease;border-radius:6px;align-items:center;gap:12px;padding:8px 10px 8px 12px;font-size:13px;display:flex}.task-add-toggle:hover{background:var(--bg-2);color:var(--text-secondary)}.task-add-toggle__icon{border:1px dashed var(--border-bright);width:20px;height:20px;color:var(--text-tertiary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.task-add-toggle--primary{background:var(--bg-2);border:1px solid var(--border-bright);width:auto;min-width:200px;color:var(--text-primary);justify-content:center;padding:9px 16px}.task-add-toggle--primary:hover{background:var(--bg-3);color:var(--text-primary);border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.task-add-toggle--primary:hover{border-color:color-mix(in oklab,var(--accent) 55%,var(--border-bright))}}.task-add-toggle--primary .task-add-toggle__icon{border-style:solid;border-color:var(--accent);width:18px;height:18px}@supports (color:color-mix(in lab,red,red)){.task-add-toggle--primary .task-add-toggle__icon{border-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.task-add-toggle--primary .task-add-toggle__icon{color:var(--accent)}.task-add-input{background:var(--bg-2);border-radius:6px;align-items:center;gap:12px;padding:8px 10px 8px 12px;display:flex}.task-add-input__icon{background:var(--bg-3);width:20px;height:20px;color:var(--text-secondary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.task-add-input__field{min-width:0;color:var(--text-primary);background:0 0;outline:none;flex:1;font-size:14px}.task-add-input__field::placeholder{color:var(--text-tertiary)}.task-completed-toggle{text-align:left;text-transform:uppercase;letter-spacing:.04em;width:100%;color:var(--text-tertiary);cursor:pointer;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;display:flex}.task-completed-toggle:hover{background:var(--bg-2);color:var(--text-secondary)}.task-row__deep-marker{text-align:center;width:16px;color:var(--text-tertiary);flex-shrink:0;font-size:12px;line-height:20px}.task-children--deep{margin-left:0;padding-left:8px}.task-children--deep:before{display:none}.task-row__collapse{width:18px;height:18px;color:var(--text-tertiary);cursor:pointer;transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.task-row__collapse:hover{background:var(--bg-3);color:var(--text-secondary)}.task-owner--clickable{cursor:pointer;font:inherit;font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.task-owner--clickable:hover{filter:brightness(1.1)}.task-owner--clickable:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@keyframes worker-card-highlight{0%{box-shadow:0 0 0 2px var(--accent),0 0 18px 4px color-mix(in oklab,var(--accent) 40%,transparent)}to{box-shadow:0 0 #0000,0 0 #0000}}.worker-card-shell--highlight{animation:1s ease-out worker-card-highlight}.drawer--stale,.task-dialog--stale{filter:saturate(.35)brightness(.85)}.drawer--stale .task-status-done,.drawer--stale .task-status-open,.task-dialog--stale .task-status-done,.task-dialog--stale .task-status-open{filter:saturate(1.6)brightness(1.15)}.modal-backdrop,.app-overlay{background:var(--bg-overlay)}.elev-1{box-shadow:0 2px 6px rgba(var(--shadow-tint),.36)}.elev-2{box-shadow:0 12px 28px rgba(var(--shadow-tint),.46),0 4px 10px rgba(var(--shadow-tint),.36)}.input{width:100%;color:var(--text-primary);background:var(--bg-1);border:1px solid var(--border);border-radius:4px;outline:none;padding:8px 12px;font-size:13px;transition:border-color .1s,box-shadow .1s;display:block}.input::placeholder{color:var(--text-tertiary);font-weight:500}.input:hover:not(:focus){border-color:var(--border-bright)}.input:focus-visible{border-color:var(--accent);box-shadow:none}.input--readonly{background:var(--bg-0);color:var(--text-secondary);cursor:default}.input--error{border-color:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.input--error{border-color:color-mix(in oklab,var(--status-red) 50%,var(--border-bright))}}.input--error:hover:not(:focus){border-color:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.input--error:hover:not(:focus){border-color:color-mix(in oklab,var(--status-red) 65%,var(--border-bright))}}.input--error:focus-visible{border-color:var(--status-red);box-shadow:none}@keyframes dialog-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes dialog-pop-in{0%{opacity:0;transform:translate(-50%,-50%)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes dialog-pop-out{0%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%,-50%)}}@keyframes dialog-scale-pop-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-scale-pop-out{0%{opacity:1}to{opacity:0}}@keyframes drawer-pop-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes drawer-pop-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(24px)}}.app-overlay[data-state=open]{animation:dialog-overlay-in .18s var(--ease-out)}.app-overlay[data-state=closed]{animation:dialog-overlay-out .14s var(--ease-in)}.dialog-pop[data-state=open]{animation:dialog-pop-in .3s var(--ease-out) both}.dialog-pop[data-state=closed]{animation:dialog-pop-out .14s var(--ease-in) both}.dialog-scale-pop[data-state=open]{animation:dialog-scale-pop-in .3s var(--ease-out) both}.dialog-scale-pop[data-state=closed]{animation:dialog-scale-pop-out .14s var(--ease-in) both}.drawer-pop[data-state=open]{animation:drawer-pop-in .22s var(--ease-modal) both}.drawer-pop[data-state=closed]{animation:drawer-pop-out .16s var(--ease-in) both}@media(prefers-reduced-motion:reduce){.app-overlay[data-state=open],.app-overlay[data-state=closed],.dialog-pop[data-state=open],.dialog-pop[data-state=closed],.dialog-scale-pop[data-state=open],.dialog-scale-pop[data-state=closed],.drawer-pop[data-state=open],.drawer-pop[data-state=closed]{animation:none}}.tooltip{z-index:70;color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border-bright);box-shadow:var(--shadow-elev-2);border-radius:4px;max-width:260px;padding:4px 8px;font-size:11px;font-weight:500;line-height:1.4;animation:.1s dialog-overlay-in}.toast-progress-bar{opacity:.5;transform-origin:0;pointer-events:none;height:2px;animation:linear forwards toast-progress;position:absolute;bottom:0;left:0;right:0}.toast:hover .toast-progress-bar{animation-play-state:paused}@keyframes toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.toast-progress-bar{opacity:0;animation:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-pop{animation:toast-in .32s var(--ease-overshoot)}@media(prefers-reduced-motion:reduce){.toast-pop{animation:none}}.float-action{border:1px solid var(--border-bright);background:var(--bg-1);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast) ease,color var(--dur-fast) ease,border-color var(--dur-fast) ease;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.float-action:hover{background:var(--bg-2)}@supports (color:color-mix(in lab,red,red)){.float-action:hover{background:color-mix(in oklab,var(--bg-2) 85%,transparent)}}.float-action:hover{border-color:var(--border-bright);color:var(--text-primary)}.float-action:active{background:var(--bg-3)}@supports (color:color-mix(in lab,red,red)){.float-action:active{background:color-mix(in oklab,var(--bg-3) 90%,transparent)}}.float-action:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent);outline:none}@supports (color:color-mix(in lab,red,red)){.float-action:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 30%,transparent)}}.float-action:disabled{opacity:.5;cursor:not-allowed}.float-action[data-variant=primary]{background:var(--accent);color:#fff;border-color:var(--accent)}.float-action[data-variant=primary]:hover{background:var(--accent-hover)}.float-action[data-variant=danger]{color:var(--status-red)}.float-action[data-variant=danger]:hover{background:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.float-action[data-variant=danger]:hover{background:color-mix(in oklab,var(--status-red) 18%,transparent)}}.float-action[data-variant=danger]:hover{border-color:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.float-action[data-variant=danger]:hover{border-color:color-mix(in oklab,var(--status-red) 50%,var(--border-bright))}}.float-action[data-variant=danger]:hover{color:var(--status-red)}.float-action-divider{background:var(--border-bright);width:1px;height:18px;margin:0 4px}@supports (color:color-mix(in lab,red,red)){.float-action-divider{background:color-mix(in oklab,var(--border-bright) 80%,transparent)}}.worker-card-grid{grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:10px;display:grid}.worker-card-shell{position:relative}.worker-card-shell[data-status=stopped] .worker-card{opacity:.65;filter:saturate(.6);transition:opacity var(--dur-fast) ease,filter var(--dur-fast) ease}.worker-card-shell[data-status=stopped]:hover .worker-card,.worker-card-shell[data-status=stopped]:focus-within .worker-card{opacity:1;filter:none}.worker-card__status{align-self:flex-start}.worker-card-shell:hover .worker-card__actions,.worker-card-shell:focus-within .worker-card__actions{opacity:1;pointer-events:auto;transform:translateY(0)}.worker-card__actions{opacity:0;transition:opacity var(--dur-fast) ease,transform var(--dur-fast) ease;pointer-events:none;z-index:2;align-items:center;gap:4px;display:flex;position:absolute;top:8px;right:8px;transform:translateY(-2px)}.worker-card__action{border:1px solid var(--border-bright);background:var(--bg-2);width:24px;height:24px;color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast) ease,border-color var(--dur-fast) ease,color var(--dur-fast) ease;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.worker-card__action:hover{background:var(--bg-3);border-color:var(--text-tertiary);color:var(--text-primary)}.worker-card__action:active{background:var(--charcoal-700)}.worker-card__action:disabled{opacity:.5;cursor:not-allowed}.worker-card__action[data-variant=primary]{background:var(--accent);border-color:var(--accent);color:#fff}.worker-card__action[data-variant=primary]:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.worker-card__action[data-variant=danger]:hover{background:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.worker-card__action[data-variant=danger]:hover{background:color-mix(in oklab,var(--status-red) 14%,transparent)}}.worker-card__action[data-variant=danger]:hover{border-color:var(--status-red)}@supports (color:color-mix(in lab,red,red)){.worker-card__action[data-variant=danger]:hover{border-color:color-mix(in oklab,var(--status-red) 40%,var(--border-bright))}}.worker-card__action[data-variant=danger]:hover{color:var(--status-red)}.modal-resize-handle{cursor:ew-resize;z-index:6;-webkit-user-select:none;user-select:none;touch-action:none;outline:none;width:8px;position:absolute;top:0;bottom:0}.modal-resize-handle--left{left:-4px}.modal-resize-handle--right{right:-4px}.modal-resize-handle:before{content:"";width:1px;transition:background var(--dur-fast) ease,box-shadow var(--dur-fast) ease;background:0 0;position:absolute;top:0;bottom:0}.modal-resize-handle--left:before{left:4px}.modal-resize-handle--right:before{right:4px}.modal-resize-handle:hover:before,.modal-resize-handle[data-resizing]:before{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.modal-resize-handle:hover:before,.modal-resize-handle[data-resizing]:before{background:color-mix(in oklab,var(--accent) 68%,var(--border-bright))}}.modal-resize-handle:hover:before,.modal-resize-handle[data-resizing]:before{box-shadow:0 0 0 2px var(--accent)}@supports (color:color-mix(in lab,red,red)){.modal-resize-handle:hover:before,.modal-resize-handle[data-resizing]:before{box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 12%,transparent)}}.pane-splitter{cursor:col-resize;z-index:5;-webkit-user-select:none;user-select:none;touch-action:none;background:0 0;outline:none;width:8px;position:absolute;top:0;bottom:0}.pane-splitter:before{content:"";width:1px;transition:background var(--dur-fast) ease,box-shadow var(--dur-fast) ease;background:0 0;position:absolute;top:0;bottom:0;left:3px}.pane-splitter:hover:before,.pane-splitter:focus-visible:before,.pane-splitter[data-dragging]:before{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.pane-splitter:hover:before,.pane-splitter:focus-visible:before,.pane-splitter[data-dragging]:before{background:color-mix(in oklab,var(--accent) 68%,var(--border-bright))}}.pane-splitter:hover:before,.pane-splitter:focus-visible:before,.pane-splitter[data-dragging]:before{box-shadow:0 0 0 2px var(--accent)}@supports (color:color-mix(in lab,red,red)){.pane-splitter:hover:before,.pane-splitter:focus-visible:before,.pane-splitter[data-dragging]:before{box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 12%,transparent)}}.cli-select{background:var(--bg-1);border:1px solid var(--border);border-radius:4px;align-items:center;transition:border-color .1s,box-shadow .1s;display:flex;position:relative}.cli-select:hover{border-color:var(--border-bright)}.cli-select:focus-within{border-color:var(--accent);box-shadow:none}.cli-select__leading{color:var(--text-tertiary);pointer-events:none;position:absolute;left:10px}.cli-select__trailing{color:var(--text-secondary);pointer-events:none;transition:transform var(--dur-fast) ease;position:absolute;right:10px}.cli-select:focus-within .cli-select__trailing{transform:translateY(1px)}.cli-select__field{appearance:none;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:0;outline:none;padding:8px 32px;font-family:inherit;font-size:13px;font-weight:500}.cli-select__field:disabled{color:var(--text-tertiary);cursor:not-allowed}.cli-select__field option{background:var(--bg-elevated);color:var(--text-primary)}.cli-select__field--button{cursor:pointer;justify-content:flex-start;align-items:center;display:inline-flex}.cli-select__menu{z-index:60;background:var(--bg-elevated);border:1px solid var(--border-bright);box-shadow:var(--shadow-elev-2);max-height:240px;animation:dialog-scale-pop-in .12s var(--ease-out) both;transform-origin:top;border-radius:4px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.cli-select__option{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;transition:background var(--dur-fast) ease;background:0 0;border-radius:4px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.cli-select__option:hover,.cli-select__option:focus-visible{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.cli-select__option:hover,.cli-select__option:focus-visible{background:color-mix(in oklab,var(--accent) 16%,transparent)}}.cli-select__option:hover,.cli-select__option:focus-visible{outline:none}.cli-select__option[aria-selected=true]{color:var(--accent)}.cli-select__check{color:var(--accent);flex-shrink:0}.open-workspace{--open-workspace-radius:7px}.open-workspace__main,.open-workspace__chevron{border:1px solid var(--border);background:linear-gradient(180deg,oklab(100% 0 5.96046e-8/.03),transparent),var(--bg-1);height:28px;color:var(--text-secondary);transition:background var(--dur-fast) ease,border-color var(--dur-fast) ease,color var(--dur-fast) ease,transform var(--dur-fast) ease}.open-workspace__main{border-radius:var(--open-workspace-radius) 0 0 var(--open-workspace-radius);border-right:0;align-items:center;gap:7px;min-width:82px;padding:0 9px 0 8px;font-size:12px;font-weight:600;display:flex}.open-workspace__chevron{border-radius:0 var(--open-workspace-radius) var(--open-workspace-radius) 0;width:28px;box-shadow:inset 1px 0 0 var(--border);justify-content:center;align-items:center;padding:0;display:flex}.open-workspace__main:hover:not(:disabled),.open-workspace__chevron:hover:not(:disabled),.open-workspace__main[aria-expanded=true],.open-workspace__chevron[aria-expanded=true]{background:linear-gradient(180deg,oklab(100% 0 5.96046e-8/.05),transparent),var(--accent)}@supports (color:color-mix(in lab,red,red)){.open-workspace__main:hover:not(:disabled),.open-workspace__chevron:hover:not(:disabled),.open-workspace__main[aria-expanded=true],.open-workspace__chevron[aria-expanded=true]{background:linear-gradient(180deg,oklab(100% 0 5.96046e-8/.05),transparent),color-mix(in oklab,var(--accent) 8%,var(--bg-1))}}.open-workspace__main:hover:not(:disabled),.open-workspace__chevron:hover:not(:disabled),.open-workspace__main[aria-expanded=true],.open-workspace__chevron[aria-expanded=true]{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.open-workspace__main:hover:not(:disabled),.open-workspace__chevron:hover:not(:disabled),.open-workspace__main[aria-expanded=true],.open-workspace__chevron[aria-expanded=true]{border-color:color-mix(in oklab,var(--accent) 38%,var(--border))}}.open-workspace__main:hover:not(:disabled),.open-workspace__chevron:hover:not(:disabled),.open-workspace__main[aria-expanded=true],.open-workspace__chevron[aria-expanded=true]{color:var(--text-primary)}.open-workspace__main:active:not(:disabled),.open-workspace__chevron:active:not(:disabled){transform:translateY(1px)}.open-workspace__main:focus-visible,.open-workspace__chevron:focus-visible{z-index:1;outline:1px solid var(--accent);outline-offset:2px}.open-workspace__main:disabled,.open-workspace__chevron:disabled{cursor:not-allowed;opacity:.48}.open-workspace__trigger-icon{flex:0 0 16px;place-items:center;width:16px;height:16px;display:grid}.open-workspace__trigger-img{object-fit:contain;transform-origin:50%;width:15px;height:15px}.open-workspace__menu{z-index:50;border:1px solid var(--border-bright);background:linear-gradient(180deg,oklab(100% 0 5.96046e-8/.03),transparent 48px),var(--bg-elevated);transform-origin:100% 0;width:244px;max-height:min(360px,100vh - 72px);animation:dialog-scale-pop-in .12s var(--ease-out) both;border-radius:9px;padding:6px;position:absolute;top:34px;right:0;overflow-y:auto}.open-workspace__option{cursor:pointer;width:100%;min-height:38px;color:var(--text-primary);text-align:left;transition:background var(--dur-fast) ease,border-color var(--dur-fast) ease,color var(--dur-fast) ease;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:10px;padding:6px 8px;font-size:13px;font-weight:500;line-height:1.2;display:flex}.open-workspace__option:hover,.open-workspace__option:focus-visible{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.open-workspace__option:hover,.open-workspace__option:focus-visible{background:color-mix(in oklab,var(--accent) 8%,var(--bg-2))}}.open-workspace__option:hover,.open-workspace__option:focus-visible{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.open-workspace__option:hover,.open-workspace__option:focus-visible{border-color:color-mix(in oklab,var(--accent) 26%,transparent)}}.open-workspace__option:hover,.open-workspace__option:focus-visible{outline:none}.open-workspace__option[data-selected=true]{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.open-workspace__option[data-selected=true]{background:color-mix(in oklab,var(--accent) 12%,var(--bg-2))}}.open-workspace__option[data-selected=true]{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.open-workspace__option[data-selected=true]{border-color:color-mix(in oklab,var(--accent) 48%,var(--border-bright))}}.open-workspace__option[data-selected=true]{color:var(--text-primary)}.open-workspace__option-icon{background:linear-gradient(180deg,oklab(100% 0 5.96046e-8/.05),transparent),var(--bg-0);border-radius:6px;flex:0 0 24px;place-items:center;width:24px;height:24px;display:grid}@supports (color:color-mix(in lab,red,red)){.open-workspace__option-icon{background:linear-gradient(180deg,oklab(100% 0 5.96046e-8/.05),transparent),color-mix(in oklab,var(--bg-0) 60%,var(--bg-2))}}.open-workspace__option-icon{box-shadow:inset 0 0 0 1px var(--border)}@supports (color:color-mix(in lab,red,red)){.open-workspace__option-icon{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--border) 70%,transparent)}}.open-workspace__option-img{object-fit:contain;transform-origin:50%;width:17px;height:17px}.open-workspace__check{width:18px;height:18px;color:var(--accent);flex:0 0 18px;place-items:center;display:grid}.marketplace-browse-btn:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.marketplace-browse-btn:hover{background:color-mix(in oklab,var(--accent) 12%,var(--bg-0))}}.marketplace-browse-btn:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.marketplace-browse-btn:hover{border-color:color-mix(in oklab,var(--accent) 50%,var(--border-bright))}}.marketplace-browse-btn:hover{color:var(--text-primary)}.marketplace-card[data-selected=true]{border-color:var(--accent)}.marketplace-card:not([data-selected=true]):hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.marketplace-card:not([data-selected=true]):hover{background:color-mix(in oklab,var(--accent) 6%,var(--bg-2))}}.marketplace-card:not([data-selected=true]):hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.marketplace-card:not([data-selected=true]):hover{border-color:color-mix(in oklab,var(--accent) 35%,var(--border-bright))}}.marketplace-card:not([data-selected=true]):active{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.marketplace-card:not([data-selected=true]):active{background:color-mix(in oklab,var(--accent) 10%,var(--bg-2))}}.marketplace-prose{color:var(--text-primary);font-size:12px;line-height:1.6}.marketplace-prose>*+*{margin-top:8px}.marketplace-prose h1,.marketplace-prose h2,.marketplace-prose h3,.marketplace-prose h4{color:var(--text-primary);font-weight:600;line-height:1.3}.marketplace-prose h1{margin-top:12px;font-size:15px}.marketplace-prose h2{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:10px;font-size:13px}.marketplace-prose h3{color:var(--text-secondary);margin-top:10px;font-size:12px}.marketplace-prose h4{color:var(--text-secondary);font-size:12px}.marketplace-prose p{color:var(--text-primary)}.marketplace-prose ul,.marketplace-prose ol{padding-left:18px}.marketplace-prose ul{list-style:outside}.marketplace-prose ol{list-style:decimal}.marketplace-prose li+li{margin-top:2px}.marketplace-prose li{color:var(--text-primary)}.marketplace-prose strong{color:var(--text-primary);font-weight:600}.marketplace-prose em{color:var(--text-secondary);font-style:italic}.marketplace-prose code{background:var(--bg-3);color:var(--text-secondary);border-radius:3px;padding:1px 4px;font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.marketplace-prose pre{background:var(--bg-1);border:1px solid var(--border);border-radius:4px;padding:8px 10px;font-family:DM Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;overflow-x:auto}.marketplace-prose pre code{color:var(--text-primary);background:0 0;padding:0}.marketplace-prose blockquote{border-left:2px solid var(--border-bright);color:var(--text-secondary);margin:8px 0;padding-left:10px}.marketplace-prose a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.marketplace-prose a:hover{color:var(--accent-hover)}.marketplace-prose hr{border:none;border-top:1px solid var(--border);margin:12px 0}.marketplace-prose table{border-collapse:collapse;font-size:11px}.marketplace-prose th,.marketplace-prose td{border:1px solid var(--border);padding:4px 8px}.marketplace-prose th{background:var(--bg-2);color:var(--text-secondary)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|