cubefarm 0.3.4 → 0.3.6
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/dist/assets/{ToyWorld-CM2m1Ytr.js → ToyWorld-C1nzIgVK.js} +2 -2
- package/dist/assets/{index-BCFM-9fU.js → index-CvwxmawV.js} +2 -2
- package/dist/assets/{rapier-BLchqNuA.js → rapier-DS9bMu-p.js} +1 -1
- package/dist/index.html +1 -1
- package/dist-server/index.js +107 -27
- package/dist-server/index.js.map +3 -3
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ToyWorld-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ToyWorld-C1nzIgVK.js","assets/rapier-DS9bMu-p.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var u=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),d=o(((e,t)=>{t.exports=u()})),f=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var j=/\/+/g;function M(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function N(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ee(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,ee(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+M(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(j,`$&/`)+`/`),ee(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(j,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+M(a,u),c+=ee(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+M(a,u++),c+=ee(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return ee(N(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return ee(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function te(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var ne=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function re(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,ne)}catch(e){ne(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function ie(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else re(ie.bind(null,e))}var ae={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!k(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=ae,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=ie,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return D(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)E.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=k,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:te}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=re,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.0`})),p=o(((e,t)=>{t.exports=f()})),m=o((e=>{var t=p();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`),o=Symbol.for(`react.recoverable`),s=Symbol.for(`react.optimistic_key`);function c(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:r===s?s:``+r,children:e,containerInfo:t,implementation:n}}var l=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function u(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.browser=function(e){return{$$typeof:o,_reason:e}},e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return c(e,t,null,r)},e.flushSync=function(e){var t=l.T,n=i.p;try{if(l.T=null,i.p=2,e)return e()}finally{l.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=u(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=u(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??i.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=u(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=u(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return l.H.useFormState(e,t,n)},e.useFormStatus=function(){return l.H.useHostTransitionStatus()},e.version=`19.3.0`})),h=o(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=m()})),g=o((e=>{var t=d(),n=p(),r=h();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){for(var t=e,n=t;n&&!n.alternate;)t=n,t.flags&4098&&(e=t.return),n=t.return;for(;t.return;)t=t.return;return t.tag===3?e:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function f(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=f(e),t!==null)return t;e=e.sibling}return null}function m(e,t,n,r,i,a){for(;e!==null;){if((e.tag===5||e.tag===27||e.tag===6)&&n(e,r,i,a)||(e.tag!==22||e.memoizedState===null)&&(t||e.tag!==5&&e.tag!==27)&&m(e.child,t,n,r,i,a))return!0;e=e.sibling}return!1}function g(e){for(e=e.return;e!==null;){if(e.tag===3||e.tag===5||e.tag===27)return e;e=e.return}return null}function _(e){var t=!1;for(e=e.return;e!==null&&(e.tag===4&&(t=!0),e.tag!==3&&e.tag!==5&&e.tag!==27);)e=e.return;return t}function v(e){var t=[null,null],n=g(e);return n===null||y(t,e,n.child,{foundSelf:!1}),t}function y(e,t,n,r){for(;n!==null;){if(n===t)r.foundSelf=!0;else if(n.tag===5||n.tag===27||n.tag===6){if(r.foundSelf)return e[1]=n,!0;e[0]=n}else if((n.tag!==22||n.memoizedState===null)&&y(e,t,n.child,r))return!0;n=n.sibling}return!1}function b(e){switch(e.tag){case 5:case 27:case 6:return e.stateNode;case 3:return e.stateNode.containerInfo;default:throw Error(i(559))}}var x=null,S=null;function C(e,t,n){return e===n||e===t&&(x=e,!0)}function w(e,t,n){return e===n?(S=e,!1):e===t&&(S!==null&&(x=e),!0)}function T(e){if(e===null)return null;do e=e===null?null:e.return;while(e&&e.tag!==5&&e.tag!==27&&e.tag!==3);return e||null}function E(e,t,n){for(var r=0,i=e;i;i=n(i))r++;i=0;for(var a=t;a;a=n(a))i++;for(;0<r-i;)e=n(e),r--;for(;0<i-r;)t=n(t),i--;for(;r--;){if(e===t||t!==null&&e===t.alternate)return e;e=n(e),t=n(t)}return null}var D=Object.assign,O=Symbol.for(`react.element`),k=Symbol.for(`react.transitional.element`),A=Symbol.for(`react.portal`),j=Symbol.for(`react.fragment`),M=Symbol.for(`react.strict_mode`),N=Symbol.for(`react.profiler`),ee=Symbol.for(`react.consumer`),P=Symbol.for(`react.context`),te=Symbol.for(`react.forward_ref`),ne=Symbol.for(`react.suspense`),re=Symbol.for(`react.suspense_list`),ie=Symbol.for(`react.memo`),ae=Symbol.for(`react.lazy`),oe=Symbol.for(`react.activity`),se=Symbol.for(`react.legacy_hidden`),ce=Symbol.for(`react.memo_cache_sentinel`),le=Symbol.for(`react.view_transition`),ue=Symbol.for(`react.recoverable`),de=Symbol.iterator;function fe(e){return typeof e!=`object`||!e?null:(e=de&&e[de]||e[`@@iterator`],typeof e==`function`?e:null)}var pe=Symbol.for(`react.client.reference`);function me(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===pe?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case j:return`Fragment`;case N:return`Profiler`;case M:return`StrictMode`;case ne:return`Suspense`;case re:return`SuspenseList`;case oe:return`Activity`;case le:return`ViewTransition`}if(typeof e==`object`)switch(e.$$typeof){case A:return`Portal`;case P:return e.displayName||`Context`;case ee:return(e._context.displayName||`Context`)+`.Consumer`;case te:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ie:return t=e.displayName||null,t===null?me(e.type)||`Memo`:t;case ae:t=e._payload,e=e._init;try{return me(e(t))}catch{}}return null}var he=Array.isArray,F=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ge=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,_e={pending:!1,data:null,method:null,action:null},ve=[],ye=-1;function be(e){return{current:e}}function xe(e){0>ye||(e.current=ve[ye],ve[ye]=null,ye--)}function Se(e,t){ye++,ve[ye]=e.current,e.current=t}var Ce=be(null),we=be(null),Te=be(null),Ee=be(null);function De(e,t){switch(Se(Te,t),Se(we,e),Se(Ce,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?vp(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=vp(t),e=yp(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}xe(Ce),Se(Ce,e)}function Oe(){xe(Ce),xe(we),xe(Te)}function ke(e){var t=e.memoizedState;t!==null&&(hh._currentValue=t.memoizedState,Se(Ee,e)),t=Ce.current;var n=yp(t,e.type);t!==n&&(Se(we,e),Se(Ce,n))}function Ae(e){we.current===e&&(xe(Ce),xe(we)),Ee.current===e&&(xe(Ee),hh._currentValue=_e)}var je,Me;function I(e){if(je===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);je=t&&t[1]||``,Me=-1<e.stack.indexOf(`
|
|
3
3
|
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
4
4
|
`+je+e+Me}var Ne=!1;function Pe(e,t){if(!e||Ne)return``;Ne=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}n=!1;try{var i=Object.getOwnPropertyDescriptor(e.prototype,`props`);Object.defineProperty(e.prototype,"props",{configurable:!0,set:function(){throw Error()}}),n=!0,new e}finally{n&&(i===void 0?delete e.prototype.props:Object.defineProperty(e.prototype,"props",i))}}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
|
|
@@ -4281,7 +4281,7 @@ No matching component was found for:
|
|
|
4281
4281
|
gl_FragColor = vec4(color, opacity);
|
|
4282
4282
|
#include <tonemapping_fragment>
|
|
4283
4283
|
#include <${parseInt(`186`.replace(/\D+/g,``))>=154?`colorspace_fragment`:`encodings_fragment`}>
|
|
4284
|
-
}`);function jy({color:e=`black`,opacity:t=1,transparent:n=!1,screenspace:r=!1,toneMapped:i=!0,polygonOffset:a=!1,polygonOffsetFactor:o=0,renderOrder:s=0,thickness:c=.05,angle:l=Math.PI,clippingPlanes:u,...d}){let f=v.useRef(null),[p]=v.useState(()=>new Ay({side:1})),{gl:m}=W_(),h=m.getDrawingBufferSize(new B);v.useMemo(()=>xv({OutlinesMaterial:Ay}),[]);let g=v.useRef(0),_=v.useRef(null);return v.useLayoutEffect(()=>{let e=f.current;if(!e)return;let t=e.parent;if(t&&t.geometry&&(g.current!==l||_.current!==t.geometry)){g.current=l,_.current=t.geometry;let n=e.children?.[0];n&&(l&&n.geometry.dispose(),e.remove(n)),t.skeleton?(n=new ro,n.material=p,n.bind(t.skeleton,t.bindMatrix),e.add(n)):t.isInstancedMesh?(n=new vo(t.geometry,p,t.count),n.instanceMatrix=t.instanceMatrix,e.add(n)):(n=new Ga,n.material=p,e.add(n)),n.geometry=l?Dy(t.geometry,l):t.geometry,n.morphTargetInfluences=t.morphTargetInfluences,n.morphTargetDictionary=t.morphTargetDictionary}}),v.useLayoutEffect(()=>{let l=f.current;if(!l)return;let d=l.children[0];if(d){d.renderOrder=s;let f=l.parent;j_(d,{morphTargetInfluences:f.morphTargetInfluences,morphTargetDictionary:f.morphTargetDictionary}),j_(d.material,{transparent:n,thickness:c,color:e,opacity:t,size:h,screenspace:r,toneMapped:i,polygonOffset:a,polygonOffsetFactor:o,clippingPlanes:u,clipping:u&&u.length>0})}}),v.useEffect(()=>()=>{let e=f.current;if(!e)return;let t=e.children[0];t&&(l&&t.geometry.dispose(),e.remove(t))},[]),v.createElement(`group`,xy({ref:f},d))}var My=`modulepreload`,Ny=function(e){return`/`+e},Py={},Fy=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Ny(t,n),t=s(t),t in Py)return;Py[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:My,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Iy=(0,v.createContext)(null);function Ly({iterations:e=10,ms:t=250,threshold:n=.75,step:r=.1,factor:i=.5,flipflops:a=1/0,bounds:o=e=>e>100?[60,100]:[40,60],onIncline:s,onDecline:c,onChange:l,onFallback:u,children:d}){let[f,p]=(0,v.useState)(()=>({fps:0,index:0,factor:i,flipped:0,refreshrate:0,fallback:!1,frames:[],averages:[],subscriptions:new Map,subscribe:e=>{let t=Symbol();return f.subscriptions.set(t,e.current),()=>void f.subscriptions.delete(t)}})),m=0;return G_(()=>{let{frames:i,averages:d}=f;if(!f.fallback&&d.length<e){i.push(performance.now());let p=i[i.length-1]-i[0];if(p>=t){if(f.fps=Math.round(i.length/p*1e3*1)/1,f.refreshrate=Math.max(f.refreshrate,f.fps),d[f.index++%e]=f.fps,d.length===e){let[t,i]=o(f.refreshrate),p=d.filter(e=>e>=i),h=d.filter(e=>e<t);p.length>e*n&&(f.factor=Math.min(1,f.factor+r),f.flipped++,s&&s(f),f.subscriptions.forEach(e=>e.onIncline&&e.onIncline(f))),h.length>e*n&&(f.factor=Math.max(0,f.factor-r),f.flipped++,c&&c(f),f.subscriptions.forEach(e=>e.onDecline&&e.onDecline(f))),m!==f.factor&&(m=f.factor,l&&l(f),f.subscriptions.forEach(e=>e.onChange&&e.onChange(f))),f.flipped>a&&!f.fallback&&(f.fallback=!0,u&&u(f),f.subscriptions.forEach(e=>e.onFallback&&e.onFallback(f))),f.averages=[]}f.frames=[]}}}),v.createElement(Iy.Provider,{value:f},d)}function Ry(e,t){let n=new Set;for(let r of(e??``).matchAll(/\b(?:depends\s+on|blocked\s+by)\s*:?\s*((?:#\d+(?:\s*(?:,|and|&)\s*)?)+)/gi))for(let e of r[1].matchAll(/#(\d+)/g))t.has(Number(e[1]))&&n.add(Number(e[1]));return[...n]}var zy=`cubefarm:audio`;function By(){try{let e=JSON.parse(localStorage.getItem(zy)??`null`),t=Number(e?.volume);return{volume:Number.isFinite(t)?Math.max(0,Math.min(100,Math.round(t))):70,muted:e?.muted===!0}}catch{return{volume:70,muted:!1}}}var Vy=By(),Hy=new Set,Uy=null,Wy=null,Gy=!1,Ky=()=>Vy.muted?0:(Vy.volume/100)**2;function qy(){if(!Gy)return null;try{if(!Uy){let e=window.AudioContext??window.webkitAudioContext;if(!e)return null;Uy=new e,Wy=Uy.createGain(),Wy.gain.value=Ky(),Wy.connect(Uy.destination)}return Uy.state===`suspended`&&Uy.resume().catch(()=>void 0),Uy.state===`running`&&Wy?{ctx:Uy,out:Wy}:null}catch{return null}}function Jy(){Gy=!0,qy()}for(let e of[`pointerdown`,`keydown`])window.addEventListener(e,Jy,{once:!0,capture:!0});var Yy=()=>Vy;function Xy(e){return Hy.add(e),()=>void Hy.delete(e)}function Zy(e){Vy={...Vy,...e,volume:Math.max(0,Math.min(100,Math.round(e.volume??Vy.volume)))};try{localStorage.setItem(zy,JSON.stringify(Vy))}catch{}if(Uy&&Wy)try{Wy.gain.cancelScheduledValues(Uy.currentTime),Wy.gain.setTargetAtTime(Ky(),Uy.currentTime,.015)}catch{}for(let e of Hy)e()}var Qy=()=>Zy({muted:!Vy.muted});function $y({freq:e,to:t,type:n=`sine`,at:r=0,dur:i,peak:a,attack:o=.015}){let s=qy();if(s)try{let c=s.ctx.currentTime+r,l=s.ctx.createOscillator(),u=s.ctx.createGain();l.type=n,l.frequency.setValueAtTime(e,c),t&&l.frequency.exponentialRampToValueAtTime(t,c+i),u.gain.setValueAtTime(1e-4,c),u.gain.exponentialRampToValueAtTime(a,c+o),u.gain.exponentialRampToValueAtTime(1e-4,c+i),l.connect(u).connect(s.out),l.start(c),l.stop(c+i+.05)}catch{}}var eb=null;function tb({at:e=0,dur:t,peak:n,filter:r=`lowpass`,freq:i,to:a,q:o=1,attack:s=.005}){let c=qy();if(c)try{if(!eb||eb.sampleRate!==c.ctx.sampleRate){eb=c.ctx.createBuffer(1,c.ctx.sampleRate*2,c.ctx.sampleRate);let e=eb.getChannelData(0);for(let t=0;t<e.length;t++)e[t]=Math.random()*2-1}let l=c.ctx.currentTime+e,u=c.ctx.createBufferSource();u.buffer=eb;let d=c.ctx.createBiquadFilter();d.type=r,d.Q.value=o,d.frequency.setValueAtTime(i,l),a&&d.frequency.exponentialRampToValueAtTime(a,l+t);let f=c.ctx.createGain();f.gain.setValueAtTime(1e-4,l),f.gain.exponentialRampToValueAtTime(n,l+s),f.gain.exponentialRampToValueAtTime(1e-4,l+t),u.connect(d).connect(f).connect(c.out),u.start(l,Math.random()),u.stop(l+t+.05)}catch{}}var nb=-1/0;function rb(){performance.now()-nb<800||(nb=performance.now(),[1046.5,1568].forEach((e,t)=>$y({freq:e,type:`triangle`,at:t*.11,dur:.18,peak:.12})))}function ib(){$y({freq:660,to:1320,type:`square`,dur:.12,peak:.035}),$y({freq:1320,to:990,type:`triangle`,at:.12,dur:.1,peak:.08}),$y({freq:1760,type:`triangle`,at:.24,dur:.18,peak:.07})}function ab(){[880,1318.5].forEach((e,t)=>$y({freq:e,at:t*.16,dur:1.1,peak:.18,attack:.02}))}function ob(e=.75){tb({dur:e,peak:.1,filter:`bandpass`,freq:220,to:900,q:.8,attack:e*.45}),$y({freq:70,to:55,dur:e,peak:.05,attack:e*.4})}function sb(){tb({dur:.09,peak:.1,filter:`bandpass`,freq:2600,to:900,q:1.4,attack:.003}),$y({freq:520,to:190,type:`triangle`,dur:.08,peak:.07,attack:.004})}function cb(){$y({freq:520,to:330,dur:.16,peak:.13,attack:.008}),$y({freq:1040,to:660,type:`triangle`,dur:.07,peak:.025,attack:.004})}function lb(){tb({dur:.28,peak:.07,filter:`bandpass`,freq:350,to:2400,q:2.2,attack:.05}),$y({freq:220,to:660,type:`triangle`,dur:.24,peak:.035,attack:.03}),tb({at:.24,dur:.05,peak:.05,filter:`bandpass`,freq:1800,q:1.5,attack:.002})}function ub(e=!1){tb({dur:e?.09:.12,peak:e?.07:.045,freq:(e?700:480)*(.9+Math.random()*.2),q:.7})}var db=0;function fb(e,t,n){let r=Math.floor(e/Math.PI);t&&r!==db&&ub(n),db=r}function pb(){tb({dur:.3,peak:.14,filter:`bandpass`,freq:5200,to:2600,q:.8,attack:.03}),tb({at:.18,dur:.9,peak:.05,filter:`bandpass`,freq:900,to:1500,q:.5,attack:.2}),[784,988,1318.5].forEach((e,t)=>$y({freq:e,type:`triangle`,at:.2+t*.08,dur:.3,peak:.06}))}var mb={error:{rank:5,play:()=>[0,.2].forEach(e=>$y({freq:110,type:`sawtooth`,at:e,dur:.16,peak:.035,attack:.02}))},qaFailed:{rank:4,play:()=>{$y({freq:392,to:370,type:`triangle`,dur:.26,peak:.12}),$y({freq:311,to:196,type:`triangle`,at:.26,dur:.55,peak:.12})}},ready:{rank:3,play:()=>[784,988,1175,1568].forEach((e,t)=>$y({freq:e,type:`triangle`,at:t*.07,dur:.28,peak:.09}))},merged:{rank:2,play:()=>{tb({dur:.07,peak:.16,filter:`bandpass`,freq:1400,q:1.2,attack:.002}),$y({freq:523,to:1046,type:`square`,at:.04,dur:.12,peak:.04}),[1046.5,1318.5,1568].forEach(e=>$y({freq:e,type:`triangle`,at:.14,dur:.5,peak:.05})),tb({at:.12,dur:.6,peak:.03,filter:`bandpass`,freq:2500,q:.6,attack:.08})}},welcome:{rank:1,play:()=>[659,784,1046.5].forEach((e,t)=>$y({freq:e,type:`sine`,at:t*.12,dur:t===2?.5:.2,peak:.12}))}},hb=150,gb=1e3,_b=null,vb=null,yb=0,bb=-1/0,xb=(e,t)=>e&&mb[e].rank>=mb[t].rank?e:t;function Sb(e){let t=performance.now();t-bb<gb&&mb[e].rank<=yb&&!_b||(_b=xb(_b,e),!vb&&(vb=setTimeout(Cb,Math.max(hb,bb+gb-t))))}function Cb(){vb=null;let e=_b;_b=null,e&&(bb=performance.now(),yb=mb[e].rank,mb[e].play())}var wb=1,Tb=`cubefarm:view`;function Eb(){try{let e=JSON.parse(localStorage.getItem(Tb)??`null`);return e&&[e.floor,e.x,e.z,e.yaw,e.pitch].every(Number.isFinite)?e:null}catch{return null}}function Db(e){try{localStorage.setItem(Tb,JSON.stringify(e))}catch{}}var Ob=600,q=Ty((e,t)=>({connected:!1,loaded:!1,user:null,ghReady:!0,demo:!1,workspaceRoot:``,settings:{sessionLimit:0,defaultModel:`claude-opus-5-5`,defaultEffort:`medium`,runtime:`terminal`,defaultCli:`claude`,hiring:`approve`,teamCap:6,ceoHeartbeatMin:60,managerName:``,companyName:``,projectsDir:``,setupDone:!0,tutorialStep:-1,pacingSessions:3},clis:[],repos:[],agents:{},logs:{},screens:{},qa:{},requests:[],ceo:{queue:[],job:null,lastReviewAt:null,nextReviewAt:null},messages:[],phoneReadAt:0,usage:{state:`normal`,until:null},restarting:!1,floor:Eb()?.floor??0,travel:null,overlay:null,focus:null,locked:!1,started:!1,toasts:[],held:null,chargeAt:null,apply(n){let r=t().loaded;switch(n.type){case`snapshot`:{let r=n.data,i={},a={},o={};for(let{log:e,...t}of r.agents)i[t.id]=t,a[t.id]=e,t.screenshotAt&&(o[t.id]=t.screenshotAt);let s={};for(let e of r.qa)s[kb(e.repoId,e.prNumber)]=e;let c=r.repos.some(e=>e.floor===t().floor);e({loaded:!0,user:r.user,ghReady:r.ghReady,ghError:r.ghError,demo:r.demo,workspaceRoot:r.workspaceRoot,settings:r.settings,repos:r.repos.sort((e,t)=>e.floor-t.floor),agents:i,logs:a,screens:o,qa:s,requests:r.requests,ceo:r.ceo,messages:r.messages,phoneReadAt:r.phoneReadAt,officeCommit:r.officeCommit,officeUpdate:r.officeUpdate,usage:r.usage,clis:r.clis??[],restarting:!1,floor:c?t().floor:0});break}case`repo`:{let i=t().repos.find(e=>e.id===n.repo.id),a=new Set(i?.pulls.filter(e=>e.state===`OPEN`).map(e=>e.number));r&&n.repo.pulls.some(e=>e.state===`MERGED`&&a.has(e.number))&&Sb(`merged`);let o=t().repos.filter(e=>e.id!==n.repo.id);o.push(n.repo),e({repos:o.sort((e,t)=>e.floor-t.floor)});break}case`repoRemoved`:{let r=t().repos.filter(e=>e.id!==n.repoId);e({repos:r,floor:t().floor>r.length?0:t().floor});break}case`agent`:{let i=t().agents[n.agent.id];r&&!i&&n.agent.role!==`ceo`&&Sb(`welcome`),r&&i&&i.status!==`error`&&n.agent.status===`error`&&Sb(`error`),e({agents:{...t().agents,[n.agent.id]:n.agent}});break}case`agentRemoved`:{let{[n.agentId]:r,...i}=t().agents;e({agents:i});break}case`log`:{let r=(t().logs[n.agentId]??[]).concat(n.lines);e({logs:{...t().logs,[n.agentId]:r.length>Ob?r.slice(-600):r}});break}case`screen`:{let r=t().agents[n.agentId];e({screens:{...t().screens,[n.agentId]:n.at},agents:r?{...t().agents,[n.agentId]:{...r,hasScreenshot:!0,screenshotAt:n.at,browserUrl:n.url??r.browserUrl}}:t().agents});break}case`qa`:{let i=t().qa[kb(n.qa.repoId,n.qa.prNumber)]?.status,a=e=>e===`failed`||e===`needs-human`;r&&n.qa.status===`passed`&&i!==`passed`&&Sb(`ready`),r&&a(n.qa.status)&&!a(i)&&Sb(`qaFailed`),e({qa:{...t().qa,[kb(n.qa.repoId,n.qa.prNumber)]:n.qa}});break}case`qaRemoved`:{let{[kb(n.repoId,n.prNumber)]:r,...i}=t().qa;e({qa:i});break}case`settings`:e({settings:n.settings});break;case`clis`:e({clis:n.clis});break;case`request`:{let i=t().requests.find(e=>e.id===n.request.id);r&&n.request.kind===`hire`&&n.request.status===`approved`&&i?.status===`pending`&&Sb(`welcome`);let a=t().requests.filter(e=>e.id!==n.request.id);a.push(n.request),e({requests:a.sort((e,t)=>e.createdAt-t.createdAt)});break}case`ceo`:e({ceo:n.ceo});break;case`message`:{e({messages:[...t().messages.slice(-199),n.message]});let r=t().overlay,i=r?.kind===`phone`&&(r.tab??`chat`)===`chat`;if(n.message.from===`ceo`&&!i){rb();let e=t().agents.ceo?.name??`CEO`,r=n.message.text.replace(/\s+/g,` `);t().pushToast(`info`,`📱 ${e}: ${r.length>110?`${r.slice(0,109)}…`:r}`)}break}case`phoneRead`:e({phoneReadAt:Math.max(t().phoneReadAt,n.at)});break;case`toast`:t().pushToast(n.level,n.text);break;case`officeUpdate`:e({officeUpdate:n.officeUpdate});break;case`usage`:e({usage:n.usage})}},setConnected:t=>e({connected:t}),setRestarting:t=>e({restarting:t}),setOfficeUpdate:t=>e({officeUpdate:t}),openOverlay(t){e(t?{overlay:t,focus:null,held:null,chargeAt:null}:{overlay:t}),t&&document.pointerLockElement&&document.exitPointerLock()},setFocus:n=>{let r=t().focus;(r?.id!==n?.id||r?.label!==n?.label)&&e({focus:n})},setHeld:t=>e({held:t,chargeAt:null}),setCharge:t=>e({chargeAt:t}),setLocked:t=>e({locked:t}),start:()=>e({started:!0}),goToFloor(n){if(n===t().floor||t().travel){e({overlay:null});return}e({overlay:null,held:null,chargeAt:null,travel:{to:n,phase:`closing`}})},finishTravel(n){let r=t().travel;r&&e(n===`arrived`?{floor:r.to,travel:{...r,phase:`opening`}}:{travel:null})},pushToast(n,r){let i=wb++;e({toasts:[...t().toasts.slice(-4),{id:i,level:n,text:r}]}),setTimeout(()=>t().dismissToast(i),n===`error`?9e3:5e3)},dismissToast:n=>e({toasts:t().toasts.filter(e=>e.id!==n)})})),kb=(e,t)=>`${e}#${t}`,Ab=(e,t)=>e.find(e=>e.floor===t)??null,jb=(e,t)=>Object.values(e).filter(e=>e.repoId===t).sort((e,t)=>e.role===t.role?e.desk-t.desk:e.role===`dev`?-1:1),Mb=e=>e?.kind===`kanban`||e?.kind===`terminal`||e?.kind===`manager`,Nb=e=>e.status===`preparing`||e.status===`working`,Pb=(e,t)=>e.filter(e=>e.from===`ceo`&&!e.requestId&&e.at>t).length,Fb=e=>e.filter(e=>e.status===`pending`);function Ib(){let e=q(e=>e.requests),t=q(e=>e.messages),n=q(e=>e.phoneReadAt);return Fb(e).length+Pb(t,n)}function Lb(e,t,n){let r=e.pulls.filter(e=>e.state===`OPEN`),i=new Map(t.map(e=>[e.id,e])),a=t.filter(e=>e.role===`dev`),o=(e,t)=>a.find(t=>t.prNumber===e)??a.find(e=>e.branch&&e.branch===t),s=[];for(let e of a){if(e.issueNumber==null||e.task!==`issue`||e.status===`idle`||e.prNumber!=null&&r.some(t=>t.number===e.prNumber))continue;let t=e.status===`preparing`?`setting up`:e.status===`working`?`working`:e.status===`error`?`needs help`:e.status===`stopped`?`stopped`:`finished · no PR`;s.push({key:`a-${e.id}`,number:e.issueNumber,title:e.issueTitle??``,agent:e,note:t,tone:e.status===`error`?`bad`:e.status===`stopped`||e.status===`done`?`warn`:void 0})}let c=[],l=[];for(let t of r){let r=n[kb(e.id,t.number)],a=(r?.devAgentId?i.get(r.devAgentId):void 0)??o(t.number,t.headRefName),s=r?.qaAgentId?i.get(r.qaAgentId):void 0,u={key:`pr-${t.number}`,number:t.number,prNumber:t.number,title:t.title,url:t.url,qa:r};if(r?.status===`passed`){l.push({...u,agent:a,note:r.mergeNote?`QA ✓ · ${r.mergeNote}`:t.mergeable===`CONFLICTING`?`QA ✓ · conflicts`:t.checks===`failing`?`QA ✓ · CI failing`:e.autoMerge&&t.checks===`pending`?`QA ✓ · waiting for checks`:`✅ QA passed`,tone:t.mergeable===`CONFLICTING`||t.checks===`failing`?`warn`:`good`});continue}let d=r?.status;c.push({...u,agent:d===`testing`?s:a,note:d===`queued`?`waiting for QA${r&&r.round>1?` · round ${r.round}`:``}`:d===`testing`?`🔍 testing · round ${r.round}`:d===`failed`?`❌ failed · back to dev`:d===`fixing`?`🔧 fixing · round ${r.round}`:d===`needs-human`?`⚠️ needs you`:t.isDraft?`draft`:`not tested yet`,tone:d===`failed`||d===`needs-human`?`bad`:d===`fixing`||!d?`warn`:void 0})}let u=new Set([...s.map(e=>e.number),...r.flatMap(e=>e.closesIssues)]),d=new Set(e.issues.map(e=>e.number));return{backlog:e.issues.filter(e=>!u.has(e.number)).map(e=>{let t=Ry(e.body,d),n=e.labels.map(e=>e.replace(/^swarm:/i,`🎯 `)).slice(0,2).join(`, `);return{key:`i-${e.number}`,number:e.number,title:e.title,url:e.url,note:t.length?`⏳ after #${t.join(`, #`)}`:n||void 0}}),progress:s,qa:c,ready:l,merged:e.pulls.filter(e=>e.state===`MERGED`).sort((e,t)=>(t.mergedAt??``).localeCompare(e.mergedAt??``)).map(e=>({key:`m-${e.number}`,number:e.number,prNumber:e.number,title:e.title,url:e.url,agent:o(e.number,e.headRefName)}))}}var Rb=1.75,zb=new URLSearchParams(window.location.search).has(`stats`);function Bb(e){return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)}function Vb(){return(0,v.useSyncExternalStore)(Bb,()=>document.hidden)}function Hb(){let e=q(e=>Mb(e.overlay)),t=Vb();return e||t}function Ub({paused:e}){let t=W_(e=>e.size),n=W_(e=>e.viewport.dpr),r=W_(e=>e.advance),i=W_(e=>e.clock),a=(0,v.useRef)({size:t,dpr:n});return(0,v.useEffect)(()=>{let o=a.current.size!==t||a.current.dpr!==n;a.current={size:t,dpr:n},e&&o&&r(i.elapsedTime)},[e,t,n,r,i]),null}function Wb(e){let t=e>130?144:e>100?120:60;return[Math.round(t*.6),Math.round(t*.9)]}function Gb({onChange:e}){let t=({factor:t})=>e(Math.round((1+.75*t)*100)/100);return(0,K.jsx)(Ly,{factor:1,step:.25,bounds:Wb,onIncline:t,onDecline:t})}var Kb=null,qb=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:String(e);function Jb({paused:e}){let t=W_(e=>e.gl),n=(0,v.useRef)({start:0,prev:0,frames:0});return(0,v.useEffect)(()=>{n.current.start=0},[e]),G_(()=>{let e=performance.now(),r=n.current;(!r.start||e-r.prev>1e3)&&(r.start=e,r.frames=0),r.prev=e,r.frames++;let i=e-r.start;if(i<500||!Kb)return;let{calls:a,triangles:o}=t.info.render,s=r.frames*1e3/i;Kb.textContent=`${Math.round(s)} fps · ${(i/r.frames).toFixed(1)} ms · ${a} calls · ${qb(o)} tris · dpr ${t.getPixelRatio().toFixed(2)}`,r.start=e,r.frames=0}),null}function Yb(){let e=Hb();return(0,K.jsxs)(`div`,{className:`stats`,"aria-hidden":`true`,children:[(0,K.jsx)(`span`,{ref:e=>{Kb=e},hidden:e,children:`measuring…`}),e&&(0,K.jsx)(`span`,{children:`⏸ 3D view paused`})]})}var Xb=3.6,Zb=1.65,Qb=.3,$b={doorHalf:1.2,cabinHalf:1.5,depth:2.6,doorHeight:2.5},ex={x:0,z:10.4,yaw:0},tx=(e,t,n,r,i)=>({minX:e-n/2,maxX:e+n/2,minZ:t-r/2,maxZ:t+r/2,h:i}),nx={desk:.78,seated:1.3,board:3.45,couch:.95,coffeeTable:.5,kitchen:2,cooler:1.5,bookshelf:2.2,cabinet:2.1,reception:1.13,glass:2.8};function rx(){let e=.4,{doorHalf:t,cabinHalf:n,depth:r}=$b;return[{minX:-16.4,maxX:16.4,minZ:-12.4,maxZ:-12},{minX:-16.4,maxX:-16,minZ:-12,maxZ:12},{minX:16,maxX:16.4,minZ:-12,maxZ:12},{minX:-16,maxX:-t,minZ:12,maxZ:12.4},{minX:t,maxX:16,minZ:12,maxZ:12.4},{minX:-n-e,maxX:-n,minZ:12,maxZ:12+r},{minX:n,maxX:n+e,minZ:12,maxZ:12+r},{minX:-n,maxX:n,minZ:12+r,maxZ:12+r+e}]}var ix=()=>({minX:-$b.doorHalf,maxX:$b.doorHalf,minZ:12,maxZ:12.4}),ax=[-10.5,-3.5,3.5,10.5],ox=[-6.2,-1.6,3],sx=ax.length*ox.length,cx={w:1.9,d:.95,h:.74};function lx(e){let t=ox.length-1-Math.floor(e/ax.length)%ox.length;return{x:ax[e%ax.length],z:ox[t]}}var ux={w:12,h:3,y:.45,z:-11.94},dx={x:-13.7,y:2.25,w:3.2,h:1.8,bezel:.09,depth:.12},fx={officeX:-10,lobbyX:-12.9,w:1.3,d:.3,h:1.85},px=e=>tx(e,12-fx.d/2,fx.w,fx.d,fx.h),mx={x:14,stations:[-5.2,-2,1.2]},hx=-Math.PI/2,gx=e=>({x:mx.x,z:mx.stations[e%mx.stations.length]});function _x(){let e=rx();for(let t=0;t<sx;t++){let{x:n,z:r}=lx(t);e.push(tx(n,r,cx.w+.1,cx.d+.1,nx.desk)),e.push(tx(n,r+.8,.7,.6,nx.seated))}for(let t of mx.stations)e.push(tx(mx.x,t,cx.d+.1,cx.w+.1,nx.desk)),e.push(tx(mx.x-.8,t,.6,.7,nx.seated));e.push(tx(0,-11.75,ux.w+.4,.5,nx.board));let t=dx;return e.push(tx(t.x,-12+t.depth/2,t.w+t.bezel*2,t.depth,t.y+t.h/2+t.bezel)),e.push(tx(-15.1,6.5,1.1,3.2,nx.couch)),e.push(tx(-13.4,6.5,.9,1.4,nx.coffeeTable)),e.push(px(fx.officeX)),e.push(tx(15.55,7.4,.9,5,nx.kitchen)),e.push(tx(15.5,-9.5,.7,.7,nx.cooler)),e}var vx={minX:-16,maxX:-6.5,minZ:-12,maxZ:-3.5,doorMinX:-11,doorMaxX:-9.2},yx={x:-11.2,z:-8.6,w:2.6,d:1.1},bx={x:3,z:-3.5,w:5,d:1.2},xx={minX:6.5,maxX:16,minZ:-12,maxZ:-3.5,doorMinX:8.2,doorMaxX:10},Sx={x:12,z:-7.4},Cx={x:14.6,seats:[6.6,7.9,9.2,10.4]},wx=Math.PI/2;function Tx(){let e=rx(),t=vx,n=.12;e.push({minX:t.maxX-n,maxX:t.maxX+n,minZ:t.minZ,maxZ:t.maxZ,h:nx.glass}),e.push({minX:t.minX,maxX:t.doorMinX,minZ:t.maxZ-n,maxZ:t.maxZ+n,h:nx.glass}),e.push({minX:t.doorMaxX,maxX:t.maxX,minZ:t.maxZ-n,maxZ:t.maxZ+n,h:nx.glass});let r=xx;e.push({minX:r.minX-n,maxX:r.minX+n,minZ:r.minZ,maxZ:r.maxZ,h:nx.glass}),e.push({minX:r.minX,maxX:r.doorMinX,minZ:r.maxZ-n,maxZ:r.maxZ+n,h:nx.glass}),e.push({minX:r.doorMaxX,maxX:r.maxX,minZ:r.maxZ-n,maxZ:r.maxZ+n,h:nx.glass}),e.push(tx(Sx.x,Sx.z,cx.w+.1,cx.d+.1,nx.desk)),e.push(tx(Sx.x,Sx.z+.8,.7,.6,nx.seated));for(let t of Cx.seats)e.push(tx(Cx.x,t,.7,.7,nx.seated));return e.push(tx(yx.x,yx.z,yx.w,yx.d,nx.desk)),e.push(tx(yx.x,yx.z-1.1,.8,.8,nx.seated)),e.push(tx(-15.6,-8,.8,5,nx.bookshelf)),e.push(px(fx.lobbyX)),e.push(tx(bx.x,bx.z,bx.w,bx.d,nx.reception)),e.push(tx(11.5,4,3.2,1,nx.couch)),e.push(tx(11.5,6.2,1.6,.9,nx.coffeeTable)),e.push(tx(12,-11.45,4.4,1.1,nx.cabinet)),e}function Ex(e,t,n,r=Qb){for(let i=0;i<2;i++)for(let i of n){let n=i.minX-r,a=i.maxX+r,o=i.minZ-r,s=i.maxZ+r;if(e<=n||e>=a||t<=o||t>=s)continue;let c=[n-e,a-e,o-t,s-t],l=c.map(Math.abs),u=l.indexOf(Math.min(...l));u<2?e+=c[u]:t+=c[u]}return{x:e,z:t}}var Dx=[`#ffffff`,`#ffd166`,`#ef476f`,`#06d6a0`,`#118ab2`,`#2b2d42`],Ox=[`quiff`,`afro`,`bun`,`curls`],kx={feminine:[[`long`,4],[`ponytail`,3],[`bun`,3],[`curls`,2],[`afro`,2],[`sidePart`,2],[`buzz`,1]],masculine:[[`crop`,2],[`quiff`,3],[`sidePart`,3],[`buzz`,2],[`bald`,2],[`curls`,2],[`afro`,2],[`long`,1],[`ponytail`,1],[`bun`,1]]};function Ax(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function jx(e){let t=e;return()=>{t=t+1831565813|0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}function Mx(e,t){let n=e*t.reduce((e,[,t])=>e+t,0);for(let[e,r]of t)if((n-=r)<0)return e;return t[t.length-1][0]}function Nx(e){let t=jx(Ax(e.id)),[n,r,i,a,o,s,c,l,u]=Array.from({length:9},t),d=e.role===`dev`,f=e.look===`masculine`,p=Mx(n,kx[e.look]),m=f?Mx(r,[[`none`,5],[`stubble`,2],[`beard`,2],[`moustache`,1]]):`none`,h=e.role===`qa`?`none`:Mx(i,[[`none`,6],[`round`,2],[`square`,2]]),g=d&&p!==`afro`&&a<.3;return{hair:p,facialHair:m,glasses:h,headphones:g,headwear:d&&!g&&!Ox.includes(p)?Mx(o,[[`none`,7],[`beanie`,1],[`cap`,1]]):`none`,outfit:d?Mx(s,[[`tee`,1],[`hoodie`,1],[`stripe`,1],[`sweater`,1]]):`tee`,height:+(.94+c*.12).toFixed(3),shoulders:+(.92+l*.16).toFixed(3),accent:Math.floor(u*Dx.length)}}function Px(e,t=!1){let n=e[0].index!==null,r=new Set(Object.keys(e[0].attributes)),i=new Set(Object.keys(e[0].morphAttributes)),a={},o={},s=e[0].morphTargetsRelative,c=new W,l=0;for(let u=0;u<e.length;++u){let d=e[u],f=0;if(n!==(d.index!==null))return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.`),null;for(let e in d.attributes){if(!r.has(e))return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. All geometries must have compatible attributes; make sure "`+e+`" attribute exists among all geometries, or in none of them.`),null;a[e]===void 0&&(a[e]=[]),a[e].push(d.attributes[e]),f++}if(f!==r.size)return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. Make sure all geometries have the same number of attributes.`),null;if(s!==d.morphTargetsRelative)return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. .morphTargetsRelative must be consistent throughout all geometries.`),null;for(let e in d.morphAttributes){if(!i.has(e))return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. .morphAttributes must be consistent throughout all geometries.`),null;o[e]===void 0&&(o[e]=[]),o[e].push(d.morphAttributes[e])}if(t){let e;if(n)e=d.index.count;else if(d.attributes.position!==void 0)e=d.attributes.position.count;else return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. The geometry must have either an index or a position attribute`),null;c.addGroup(l,e,u),l+=e}}if(n){let t=0,n=[];for(let r=0;r<e.length;++r){let i=e[r].index;for(let e=0;e<i.count;++e)n.push(i.getX(e)+t);t+=e[r].attributes.position.count}c.setIndex(n)}for(let e in a){let t=Fx(a[e]);if(!t)return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the `+e+` attribute.`),null;c.setAttribute(e,t)}for(let e in o){let t=o[e][0].length;if(t!==0){c.morphAttributes=c.morphAttributes||{},c.morphAttributes[e]=[];for(let n=0;n<t;++n){let t=[];for(let r=0;r<o[e].length;++r)t.push(o[e][r][n]);let r=Fx(t);if(!r)return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the `+e+` morphAttribute.`),null;c.morphAttributes[e].push(r)}}}return c}function Fx(e){let t,n,r,i=-1,a=0;for(let o=0;o<e.length;++o){let s=e[o];if(t===void 0&&(t=s.array.constructor),t!==s.array.constructor)return console.error(`THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.`),null;if(n===void 0&&(n=s.itemSize),n!==s.itemSize)return console.error(`THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.`),null;if(r===void 0&&(r=s.normalized),r!==s.normalized)return console.error(`THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.`),null;if(i===-1&&(i=s.gpuType),i!==s.gpuType)return console.error(`THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes.`),null;a+=s.count*n}let o=new t(a),s=new Pi(o,n,r),c=0;for(let t=0;t<e.length;++t){let r=e[t];if(r.isInterleavedBufferAttribute){let e=c/n;for(let t=0,i=r.count;t<i;t++)for(let i=0;i<n;i++){let n=r.getComponent(t,i);s.setComponent(t+e,i,n)}}else o.set(r.array,c);c+=r.count*n}return i!==void 0&&(s.gpuType=i),s}var Ix=new fr,Lx=new zn,Rx=new Sr;function zx(e,{at:t=[0,0,0],rot:n=[0,0,0],scale:r=[1,1,1]}={}){return Lx.setFromEuler(Rx.set(...n)),e.applyMatrix4(Ix.compose(new V(...t),Lx,new V(...r))),e}function Bx(...e){e.some(e=>!e.index)&&(e=e.map(e=>e.index?e.toNonIndexed():e));let t=Px(e);if(!t)throw Error(`could not merge character geometry`);return e.forEach(e=>e.dispose()),t}var Vx=(e,t=14,n=10)=>new al(e,t,n),Hx=(e,t,n=6,r=12)=>new ws(e,t,n,r),Ux=(e,t,n)=>new Cs(e,t,n),Wx=()=>zx(new al(.215,24,16,0,Math.PI*2,0,1.75),{at:[0,.02,.01],rot:[.55,0,0]});function Gx(e,t,n){let r=[];for(let i=0;i<e;i++){let a=1-2*(i+.5)/e,o=Math.sqrt(1-a*a),s=i*2.39996,c=new V(Math.cos(s)*o,a,Math.sin(s)*o).multiplyScalar(t);n(c)&&r.push(c)}return r}function Kx(e){switch(e){case`crop`:return Wx();case`long`:return Bx(Wx(),zx(Vx(.215,20,14),{at:[0,-.1,.07],scale:[1.05,1.25,.8]}));case`ponytail`:{let e={at:[0,.08,.2],rot:[.45,0,0]},t=zx(Hx(.075,.24,6,10),{at:[0,-.17,.04]});return Bx(Wx(),zx(Vx(.085,12,10),e),zx(t,e))}case`bun`:return Bx(Wx(),zx(Vx(.1,14,10),{at:[0,.18,.12]}));case`quiff`:{let e=[-.09,-.045,0,.045,.09].map((e,t)=>zx(new Ds(.058,.19+t%2*.04,8),{at:[e,.2-Math.abs(e)*.45,-.09+Math.abs(e)*.35],rot:[-.75,0,-e*3]}));return e.push(zx(Vx(.1,14,10),{at:[0,.17,-.1],scale:[1.4,.7,1]})),Bx(Wx(),...e)}case`afro`:{let e=new V(0,.1,.06),t=Gx(26,.235,e=>e.z>-.08&&e.y>-.15).map(t=>zx(Vx(.075,10,8),{at:[e.x+t.x,e.y+t.y,e.z+t.z]}));return Bx(zx(Vx(.245,22,16),{at:[e.x,e.y,e.z]}),...t)}case`sidePart`:return Bx(Wx(),zx(Vx(.12,16,10),{at:[.05,.16,-.1],rot:[.3,0,-.35],scale:[1.35,.5,.9]}),zx(Vx(.07,12,8),{at:[-.08,.2,-.04],scale:[1,.6,1.2]}));case`buzz`:return zx(new al(.205,24,14,0,Math.PI*2,0,1.6),{at:[0,.015,.012],rot:[.5,0,0]});case`bald`:return new al(.208,24,6,-.3,Math.PI+.6,1.2,.58);case`curls`:{let e=Gx(60,.2,e=>e.y>.02&&e.y+e.z*.9>-.02).map(e=>zx(Vx(.055,8,6),{at:[e.x*1.02,e.y+.03,e.z*1.02+.01]}));return Bx(Wx(),...e)}}}function qx(e,t,n,r,i){let a=e.toNonIndexed(),o=a.attributes,s=[],c=o.position;for(let e=0;e<c.count;e+=3){let a=(c.getX(e)+c.getX(e+1)+c.getX(e+2))/3,o=(c.getY(e)+c.getY(e+1)+c.getY(e+2))/3;(c.getZ(e)+c.getZ(e+1)+c.getZ(e+2))/3<0&&((a-t)/r)**2+((o-n)/i)**2<1||s.push(e,e+1,e+2)}let l=new W;for(let e of[`position`,`normal`,`uv`]){let t=o[e],n=new Float32Array(s.length*t.itemSize);s.forEach((e,r)=>{for(let i=0;i<t.itemSize;i++)n[r*t.itemSize+i]=t.array[e*t.itemSize+i]}),l.setAttribute(e,new Pi(n,t.itemSize))}return e.dispose(),a.dispose(),l}var Jx=(e,t)=>qx(new al(e,28,12,Math.PI-.15,Math.PI+.3,t,Math.PI-t),0,-.088,.07,.048),Yx=()=>Bx(...[-1,1].map(e=>zx(Hx(.022,.05,4,8),{at:[e*.036,-.052,-.197],rot:[.25,0,e*1.2],scale:[1,1,.7]})));function Xx(e){switch(e){case`none`:return null;case`stubble`:return Jx(.203,2);case`moustache`:return Yx();case`beard`:return Bx(zx(Jx(.212,1.95),{at:[0,.012,-.004],scale:[1.03,1.12,1.04]}),...[-1,1].map(e=>zx(Hx(.028,.09,4,8),{at:[e*.188,-.07,-.035],rot:[0,0,e*.25]})),Yx())}}function Zx(e,t=-.215){if(e===`none`)return null;let n=e===`round`?[-.075,.075].map(e=>zx(new sl(.047,.01,6,20),{at:[e,.02,t]})):[-.078,.078].flatMap(e=>[zx(Ux(.1,.018,.016),{at:[e,.058,t]}),zx(Ux(.1,.014,.016),{at:[e,-.02,t]}),zx(Ux(.014,.09,.016),{at:[e-.045,.02,t]}),zx(Ux(.014,.09,.016),{at:[e+.045,.02,t]})]),r=[-1,1].map(e=>zx(Ux(.012,.012,.19),{at:[e*.172,.035,-.11],rot:[0,e*.4,0]}));return Bx(...n,zx(Ux(.05,.012,.012),{at:[0,.03,t]}),...r)}function Qx(){let e=zx(new sl(.245,.018,6,28,Math.PI),{at:[0,0,.01]}),t=[-1,1].map(e=>zx(new Es(.072,.072,.055,18),{at:[e*.235,-.01,.01],rot:[0,0,Math.PI/2]})),n=[-1,1].map(e=>zx(new Es(.052,.052,.012,18),{at:[e*.266,-.01,.01],rot:[0,0,Math.PI/2]}));return{shell:Bx(e,...t),covers:Bx(...n)}}function $x(e){switch(e){case`none`:return null;case`beanie`:{let e=.228,t=1.42,n={at:[0,.035,.02],rot:[.35,0,0]};return Bx(zx(new al(e,24,12,0,Math.PI*2,0,t),n),zx(zx(new sl(e*Math.sin(t),.03,8,28),{at:[0,e*Math.cos(t),0],rot:[Math.PI/2,0,0]}),n),zx(Vx(.06,12,8),{at:[0,.035+.258*Math.cos(.35),.02+.258*Math.sin(.35)]}))}case`cap`:{let e=.224,t=1.35,n={at:[0,.02,.015],rot:[.18,0,0]};return Bx(zx(new al(e,24,12,0,Math.PI*2,0,t),n),zx(zx(new Es(.14,.14,.014,24,1,!1,Math.PI/2,Math.PI),{at:[0,e*Math.cos(t),-.13],rot:[-.08,0,0],scale:[1,1,.9]}),n),zx(Vx(.022,8,6),{at:[0,.02+e*Math.cos(.18),.015+e*Math.sin(.18)]}))}}}function eS(e){switch(e){case`tee`:return{main:null,trim:null};case`stripe`:return{main:null,trim:new Es(.204,.204,.075,28,1,!0).translate(0,.32,0)};case`hoodie`:return{main:Bx(zx(new sl(.12,.055,10,24),{at:[0,.5,.03],rot:[Math.PI/2-.35,0,0],scale:[1.05,1.15,1]}),zx(Vx(.11,16,10),{at:[0,.5,.12],scale:[1.05,.9,.55]}),zx(Ux(.22,.1,.02),{at:[0,.14,-.196]})),trim:Bx(...[-1,1].flatMap(e=>[zx(Hx(.01,.11,3,6),{at:[e*.045,.39,-.196],rot:[-.25,0,e*.08]}),zx(Vx(.016,8,6),{at:[e*.05,.32,-.208]})]))};case`sweater`:{let e=[-.12,-.06,0,.06,.12].map(e=>{let t=-Math.sqrt(.2*.2-e*e)-.004;return zx(Ux(.04,.04,.012),{at:[e,.33,t],rot:[0,-Math.asin(e/.2),Math.PI/4]})});return{main:null,trim:Bx(zx(new sl(.105,.045,10,24),{at:[0,.505,-.01],rot:[Math.PI/2,0,0]}),new Es(.206,.206,.05,28,1,!0).translate(0,.2,0),...e)}}}}function tS(e,t){return Object.fromEntries(e.map(e=>[e,t(e)]))}var nS={legs:Bx(...[-.11,.11].flatMap(e=>[zx(Hx(.08,.26),{at:[e,.5,-.17],rot:[Math.PI/2,0,0]}),zx(Hx(.07,.3),{at:[e,.27,-.36]})])),shoes:Bx(...[-.11,.11].map(e=>zx(Ux(.13,.09,.22),{at:[e,.05,-.42]}))),torso:Hx(.2,.24,8,16),collar:new sl(.1,.03,8,20),sleeve:Hx(.065,.36,6,12),hand:Vx(.07,14,10),head:Vx(.2,24,18),ears:Bx(...[-.2,.2].map(e=>zx(Vx(.05,10,8),{at:[e,-.01,0]}))),eyes:Bx(...[-.07,.07].map(e=>zx(Vx(.03,10,8),{at:[e,.02,-.18]}))),nose:Vx(.028,10,8),mouth:new sl(.045,.011,6,16,Math.PI),lashes:Bx(...[-1,1].map(e=>zx(Ux(.035,.008,.008),{at:[e*.1,.045,-.172],rot:[0,0,e*-.6]}))),cheeks:Bx(...[-1,1].map(e=>zx(Vx(.03,10,8),{at:[e*.115,-.045,-.165],scale:[1,.6,.3]}))),hairClip:Ux(.07,.035,.035),shirtFront:Ux(.11,.22,.02),tie:Ux(.045,.2,.012),tieKnot:Ux(.06,.04,.02),coatOpening:Ux(.06,.3,.02),badge:Ux(.07,.05,.015),inspectorGlasses:Zx(`round`,-.2),hair:tS([`crop`,`long`,`ponytail`,`bun`,`quiff`,`afro`,`sidePart`,`buzz`,`bald`,`curls`],Kx),facialHair:tS([`none`,`stubble`,`beard`,`moustache`],Xx),glasses:tS([`none`,`round`,`square`],e=>Zx(e)),headphones:Qx(),headwear:tS([`none`,`beanie`,`cap`],$x),outfit:tS([`tee`,`hoodie`,`stripe`,`sweater`],eS)},rS=new ao(new Uint8Array([110,190,255]),3,1,ye);rS.minFilter=D,rS.magFilter=D,rS.generateMipmaps=!1,rS.needsUpdate=!0;var iS=new Map;function aS(e,t={}){let n=`${e}|${t.emissive??``}|${t.emissiveIntensity??``}|${t.opacity??``}`,r=iS.get(n);return r||(r=new Dl({color:e,gradientMap:rS,emissive:t.emissive??`#000000`,emissiveIntensity:t.emissiveIntensity??1,transparent:t.transparent??(t.opacity!==void 0&&t.opacity<1),opacity:t.opacity??1}),iS.set(n,r)),r}function oS(e,t){let n=`map|${e}`,r=iS.get(n);return r||(r=new Dl({map:t,gradientMap:rS}),iS.set(n,r)),r}function sS(e){let t=`glow|${e}`,n=iS.get(t);return n||(n=new Na({color:e,toneMapped:!1}),iS.set(t,n)),n}var cS=new Tl({color:`#bfe8ff`,transparent:!0,opacity:.22,roughness:.05,metalness:0,depthWrite:!1,side:2});function lS(e,t){let n=new H(e),r={h:0,s:0,l:0};return n.getHSL(r),n.setHSL(r.h,r.s,Math.max(0,Math.min(1,r.l+t))),`#${n.getHexString()}`}function uS(e,t,n){return`#${new H(e).lerp(new H(t),n).getHexString()}`}var dS=`"JetBrains Mono", Consolas, "Cascadia Mono", monospace`,fS=`Fredoka, "Segoe UI", system-ui, sans-serif`;function pS(e,t,n,r,i,a){e.beginPath(),e.roundRect(t,n,r,i,a)}function mS(e,t,n,r){let i=t.split(/\s+/),a=[],o=``;for(let t of i){let i=o?`${o} ${t}`:t;if(e.measureText(i).width<=n)o=i;else if(o&&a.push(o),o=t,a.length===r)break}if(a.length<r&&o&&a.push(o),a.length===r&&i.join(` `).length>a.join(` `).length){let t=a[r-1];for(;t.length>1&&e.measureText(`${t}…`).width>n;)t=t.slice(0,-1);a[r-1]=`${t}…`}return a}var hS={bg:`#1b1b29`,bar:`#2a2a3d`,text:`#e8e8f2`,tool:`#8be9fd`,result:`#8d8da8`,system:`#bd93f9`,error:`#ff6b6b`,manager:`#ffb86c`,done:`#50fa7b`,thinking:`#f1fa8c`},gS=[`·`,`✢`,`✳`,`✶`,`✻`,`✽`,`✻`,`✶`,`✳`,`✢`],_S=[`Crafting`,`Pondering`,`Tinkering`,`Brewing`,`Noodling`,`Scheming`,`Assembling`,`Percolating`];function vS(e){return e?e.startsWith(`mcp__playwright__`)?`Browsing`:e===`Bash`||e===`PowerShell`?`Running`:e===`Edit`||e===`Write`||e===`MultiEdit`?`Editing`:e===`Read`||e===`Grep`||e===`Glob`?`Reading`:e===`WebFetch`||e===`WebSearch`?`Researching`:e:``}function yS(e,t,n,r,i,a,o,s,c){e.fillStyle=hS.bg,e.fillRect(0,0,t,n),e.fillStyle=hS.bar,e.fillRect(0,0,t,30),[`#ff5f57`,`#febc2e`,`#28c840`].forEach((t,n)=>{e.fillStyle=t,e.beginPath(),e.arc(18+n*20,15,6,0,Math.PI*2),e.fill()}),e.fillStyle=`#b8b8cc`,e.font=`600 14px ${dS}`,e.textBaseline=`middle`;let l=r.status===`idle`?`idle`:r.role===`ceo`?(r.issueTitle??`running the company`).toLowerCase():r.task===`qa`?`QA of PR #${r.prNumber}`:r.task===`fix`?`fixing PR #${r.prNumber}`:r.issueNumber?`issue #${r.issueNumber}`:`idle`,u=r.role===`qa`?`qa-lab`:r.role===`ceo`?`hq`:`swarm`,d=`${r.name.toLowerCase()}@${u} — ${l} — ${c}`;e.fillText(d,84,16);let f=o?Math.round(t*.56):t;if(r.status===`idle`&&i.length<=1){bS(e,0,30,t,n-30,r,s);return}e.font=`14px ${dS}`;let p=e.measureText(`M`).width,m=Math.max(10,Math.floor((f-20)/p)),h=r.status===`working`||r.status===`preparing`?28:8,g=Math.floor((n-30-10-h)/17),_=[];for(let e=i.length-1;e>=0&&_.length<g;e--){let t=i[e],n=[],r=t.text||` `;for(let e=0;e<r.length;e+=m)n.push(r.slice(e,e+m));for(let e=n.length-1;e>=0&&_.length<g;e--)_.unshift({text:n[e],kind:t.kind})}let v=48.5;for(let t of _)t.kind===`tool`&&t.text.startsWith(`⏺`)?(e.fillStyle=hS.done,e.fillText(`⏺`,10,v),e.fillStyle=hS.tool,e.fillText(t.text.slice(1),10+p,v)):t.kind===`text`&&t.text.startsWith(`●`)?(e.fillStyle=`#ffffff`,e.fillText(`●`,10,v),e.fillStyle=hS.text,e.fillText(t.text.slice(1),10+p,v)):(e.fillStyle=hS[t.kind]??hS.text,e.fillText(t.text,10,v)),v+=17;if(r.status===`working`||r.status===`preparing`){let t=Math.floor(s/120)%gS.length,i=r.status===`preparing`?`Setting up worktree`:vS(r.currentTool)||_S[Math.floor(s/6e3)%_S.length],a=r.startedAt?Math.floor((Date.now()-r.startedAt)/1e3):0,o=Math.floor(a/60);e.fillStyle=`#ff9e64`,e.font=`600 14px ${dS}`,e.fillText(`${gS[t]} ${i}… (${o}m ${a%60}s)`,10,n-14)}o&&xS(e,f,30,t-f,n-30,r.browserUrl,a)}function bS(e,t,n,r,i,a,o){let s=o/1e3,c=e.createLinearGradient(t,n,t+r,n+i);c.addColorStop(0,`#26264a`),c.addColorStop(1,`#3b2a55`),e.fillStyle=c,e.fillRect(t,n,r,i);let l=t+r/2+Math.sin(s*.7)*r*.25,u=n+i/2+Math.cos(s*.9)*i*.18;e.textAlign=`center`,e.font=`64px ${fS}`,e.fillText(`✻`,l,u-20),e.fillStyle=`#ffd6a5`,e.font=`600 26px ${fS}`,e.fillText(`${a.name} is free`,l,u+34),e.fillStyle=`#b8b8dd`,e.font=`18px ${fS}`,e.fillText(a.role===`qa`?`waiting for a PR to test…`:a.role===`ceo`?`thinking about the company…`:`waiting for an issue…`,l,u+62),e.textAlign=`left`}function xS(e,t,n,r,i,a,o){e.fillStyle=`#e9ecf2`,e.fillRect(t,n,r,i),e.fillStyle=`#d5d9e2`,e.fillRect(t,n,r,34),pS(e,t+10,n+6,r-20,22,11),e.fillStyle=`#ffffff`,e.fill(),e.fillStyle=`#4a5160`,e.font=`13px ${fS}`,e.textBaseline=`middle`;let s=(a??`about:blank`).replace(/^https?:\/\//,``);e.fillText(`🔒 ${s.length>42?`${s.slice(0,41)}…`:s}`,t+20,n+18);let c={x:t+4,y:n+38,w:r-8,h:i-42};if(o&&o.complete&&o.naturalWidth>0){let t=Math.min(c.w/o.naturalWidth,c.h/o.naturalHeight),n=o.naturalWidth*t,r=o.naturalHeight*t;e.drawImage(o,c.x+(c.w-n)/2,c.y,n,r)}else e.fillStyle=`#9aa1b2`,e.textAlign=`center`,e.font=`16px ${fS}`,e.fillText(`🌐 loading page…`,c.x+c.w/2,c.y+c.h/2),e.textAlign=`left`}var SS=[{key:`backlog`,title:`📋 Backlog`,chip:`#ffd166`,note:`#fff3b0`},{key:`progress`,title:`🔨 In progress`,chip:`#4cc9f0`,note:`#cfeefd`},{key:`qa`,title:`🔍 In QA`,chip:`#ff9f68`,note:`#ffe3cf`},{key:`ready`,title:`✅ Ready to merge`,chip:`#80ed99`,note:`#d8f9df`},{key:`merged`,title:`🎉 Merged`,chip:`#c77dff`,note:`#eadcff`}],CS={warn:`#ffd8a8`,bad:`#ffc9c9`,good:`#d8f9df`};function wS(e,t,n,r,i){e.fillStyle=`#fbfbf8`,e.fillRect(0,0,t,n),e.fillStyle=`rgba(120,140,170,0.05)`;for(let r=0;r<6;r++)e.fillRect(r*431%t,r*97%n,260,40);e.textBaseline=`middle`,e.fillStyle=`#2d3142`,e.font=`700 46px ${fS}`,e.fillText(r.fullName,40,48),e.font=`500 26px ${fS}`,e.fillStyle=`#6c7086`;let a=r.lastSync?`synced ${new Date(r.lastSync).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}`:`syncing…`;e.textAlign=`right`,e.fillText(`${r.autoAssign?`⚡ auto-assign on · `:``}${a}`,t-40,50),e.textAlign=`left`;let o=(t-80)/SS.length;SS.forEach((t,r)=>{let a=40+r*o,s=i[t.key];pS(e,a+8,96,o-16,52,26),e.fillStyle=t.chip,e.fill(),e.fillStyle=`#1f2233`,e.font=`600 30px ${fS}`,e.fillText(`${t.title} ${s.length}`,a+30,123),r>0&&(e.strokeStyle=`#d9dbe3`,e.lineWidth=3,e.beginPath(),e.moveTo(a,96),e.lineTo(a,n-30),e.stroke());let c=(o-48)/2,l=Math.floor((n-96-70)/116)*2,u=s.length>l?s.slice(0,l-1):s;if(u.forEach((n,r)=>{TS(e,a+16+r%2*(c+16),164+Math.floor(r/2)*116,c,104,n,n.tone?CS[n.tone]:t.note)}),s.length>u.length){e.fillStyle=`#6c7086`,e.font=`600 26px ${fS}`;let t=u.length;e.fillText(`+${s.length-u.length} more`,a+30+t%2*(c+16),164+Math.floor(t/2)*116+52)}s.length===0&&(e.fillStyle=`#b4b7c5`,e.font=`italic 500 26px ${fS}`,e.fillText(t.key===`backlog`?`no open issues`:`nothing here yet`,a+30,206))})}function TS(e,t,n,r,i,a,o){let s=(a.number*37%7-3)*.006;e.save(),e.translate(t+r/2,n+i/2),e.rotate(s),e.translate(-r/2,-i/2),e.fillStyle=`rgba(0,0,0,0.12)`,e.fillRect(4,6,r,i),e.fillStyle=o,e.fillRect(0,0,r,i),e.fillStyle=`rgba(0,0,0,0.06)`,e.fillRect(0,0,r,10),e.fillStyle=`#2d3142`,e.font=`700 22px ${fS}`,e.textBaseline=`top`,e.fillText(`${a.prNumber?`PR `:``}#${a.number}`,14,12),e.font=`500 19px ${fS}`,mS(e,a.title,r-28,2).forEach((t,n)=>e.fillText(t,14,38+n*21)),e.textBaseline=`middle`,a.agent&&(e.fillStyle=a.agent.color,e.beginPath(),e.arc(22,i-15,8,0,Math.PI*2),e.fill(),e.fillStyle=`#2d3142`,e.font=`600 17px ${fS}`,e.fillText(a.agent.name,36,i-14)),a.note&&(e.font=`500 16px ${fS}`,e.fillStyle=`#5c6078`,e.textAlign=`right`,e.fillText(a.note,r-12,i-14),e.textAlign=`left`),e.restore(),e.textBaseline=`middle`}function ES(e,t,n,r){e.clearRect(0,0,t,n);let i=r.status===`working`?r.currentTool?.startsWith(`mcp__playwright`)?`🌐`:r.currentTool===`Bash`||r.currentTool===`PowerShell`?`▶️`:r.currentTool?`⌨️`:`💭`:r.status===`preparing`?`📦`:r.status===`done`?`✅`:r.status===`error`?`❗`:r.status===`stopped`?`⏸️`:r.role===`qa`?`🧪`:r.role===`ceo`?`🏛️`:`☕`;pS(e,4,4,t-8,n-8,(n-8)/2),e.fillStyle=`rgba(255,255,255,0.94)`,e.fill(),e.lineWidth=6,e.strokeStyle=r.color,e.stroke(),e.textBaseline=`middle`,e.font=`38px ${fS}`,e.fillText(i,22,n/2+2),e.fillStyle=`#23263a`,e.font=`700 40px ${fS}`;let a=r.status!==`idle`,o=r.role===`ceo`?`${r.name} · CEO`:r.role===`qa`?a&&r.prNumber?`${r.name} · QA PR #${r.prNumber}`:`${r.name} · ${r.title||`QA`}`:a&&r.task===`fix`&&r.prNumber?`${r.name} · 🔧 PR #${r.prNumber}`:a&&r.task===`qa`&&r.prNumber?`${r.name} · 🧪 PR #${r.prNumber}`:a&&r.issueNumber?`${r.name} · #${r.issueNumber}`:r.title?`${r.name} · ${r.title}`:r.name;for(;o.length>4&&e.measureText(o).width>t-96;)o=`${o.slice(0,-2)}…`;e.fillText(o,78,n/2+2)}function DS(e,t,n,r,i,a,o){e.clearRect(0,0,t,n),pS(e,4,4,t-8,n-8,28),e.fillStyle=`rgba(255,255,255,0.95)`,e.fill(),e.lineWidth=6,e.strokeStyle=o,e.setLineDash([14,8]),e.stroke(),e.setLineDash([]),e.textBaseline=`middle`,e.font=`44px ${fS}`,e.fillText(`📄`,20,n/2+2);let s=(t,n)=>{let r=t;for(;r.length>4&&e.measureText(r).width>n;)r=`${r.slice(0,-2)}…`;return r};e.fillStyle=`#23263a`,e.font=`700 40px ${fS}`,e.fillText(s(`${r} · candidate`,t-100),80,n*.36),e.fillStyle=`#5c6078`,e.font=`600 28px ${fS}`,e.fillText(s(`${i}${a?` · floor ${a}`:``}`,t-100),80,n*.72)}function OS(e,t,n,r,i,a=`#ffffff`){pS(e,0,0,t,n,28),e.fillStyle=i,e.fill(),e.textAlign=`center`,e.textBaseline=`middle`;let o=r.reduce((e,t)=>e+t.size*1.25,0),s=n/2-o/2;for(let n of r){s+=n.size*1.25/2,e.fillStyle=n.color??a,e.font=`${n.weight??700} ${n.size}px ${fS}`;let r=n.text;for(;r.length>3&&e.measureText(r).width>t-40;)r=`${r.slice(0,-2)}…`;e.fillText(r,t/2,s),s+=n.size*1.25/2}e.textAlign=`left`}function kS(e,t,n,r){let i=e.createLinearGradient(0,0,0,n);i.addColorStop(0,`#74c0fc`),i.addColorStop(.7,`#c5e8ff`),i.addColorStop(1,`#e6f6ff`),e.fillStyle=i,e.fillRect(0,0,t,n),e.fillStyle=`rgba(255,255,255,0.9)`;for(let i=0;i<6;i++){let a=(r*131+i*223)%t+20,o=40+(r*17+i*53)%(n*.35);for(let t=0;t<4;t++)e.beginPath(),e.arc(a+t*22,o+t%2*6,18+t%3*6,0,Math.PI*2),e.fill()}let a=[`#8aa4c8`,`#9fb6d6`,`#7d95bb`,`#a8bddb`],o=0,s=0;for(;o<t;){let t=40+(r+s*37)%70,i=n*(.18+(r*7+s*29)%30/100);e.fillStyle=a[s%a.length],e.fillRect(o,n-i,t-4,i),e.fillStyle=`rgba(255,255,230,0.55)`;for(let r=n-i+10;r<n-10;r+=16)for(let n=o+6;n<o+t-12;n+=12)(n+r+s)%3&&e.fillRect(n,r,5,7);o+=t,s++}}var AS=[{status:`preparing`,label:`Checking out the code`},{status:`installing`,label:`Installing dependencies`},{status:`starting`,label:`Starting the app`}],jS={unconfigured:{text:`NOT SET UP`,bg:`#5c6078`},stopped:{text:`STOPPED`,bg:`#5c6078`},preparing:{text:`STARTING`,bg:`#f4a261`},installing:{text:`STARTING`,bg:`#f4a261`},starting:{text:`STARTING`,bg:`#f4a261`},running:{text:`● LIVE`,bg:`#ef233c`},error:{text:`ERROR`,bg:`#e63946`}};function MS(e,t,n){let r=t;for(;r.length>2&&e.measureText(r).width>n;)r=`${r.slice(0,-2)}…`;return r}function NS(e,t,n,r){let i=r.preview;e.fillStyle=hS.bg,e.fillRect(0,0,t,n),e.textBaseline=`middle`,e.textAlign=`left`,e.fillStyle=hS.bar,e.fillRect(0,0,t,118),e.fillStyle=r.color,e.fillRect(0,112,t,6),e.font=`700 34px ${fS}`;let a=`FLOOR ${r.floor}`,o=e.measureText(a).width+44;pS(e,40,30,o,54,27),e.fillStyle=r.color,e.fill(),e.fillStyle=`#ffffff`,e.fillText(a,62,58);let s=jS[i.status];e.font=`700 38px ${fS}`;let c=e.measureText(s.text).width+52;pS(e,t-40-c,28,c,58,29),e.fillStyle=s.bg,e.fill(),e.fillStyle=`#ffffff`,e.textAlign=`center`,e.fillText(s.text,t-40-c/2,58),e.textAlign=`left`,e.font=`700 50px ${fS}`;let l=40+o+26;e.fillText(MS(e,r.name,t-40-c-26-l),l,58);let u=(n,r,i,a,o=700)=>{e.font=`${o} ${i}px ${fS}`,e.fillStyle=a,e.textAlign=`center`,e.fillText(MS(e,n,t-100),t/2,r),e.textAlign=`left`},d=(e,t=`#8d8da8`)=>u(e,n-50,32,t,600),f=118+(n-118-100)/2,p=i.ref??`the app`;if(i.status===`stopped`){let n=f-70;e.fillStyle=r.color,e.beginPath(),e.arc(t/2,n,84,0,Math.PI*2),e.fill(),e.fillStyle=`#ffffff`,e.beginPath(),e.moveTo(t/2-26,n-42),e.lineTo(t/2-26,n+42),e.lineTo(t/2+44,n),e.closePath(),e.fill(),u(`Press E to open the app`,f+80,70,`#ffffff`),d(`The app isn't running. Start it from the viewer.`)}else if(i.status===`unconfigured`)u(`⚙️`,f-90,110,`#ffffff`,400),u(`No run command yet.`,f+40,66,`#ffffff`),u(`Set one in the manager's console.`,f+120,44,`#b8b8cc`,600),d(`Press E to open the app`);else if(i.status===`error`){let n=(i.error??``).split(/\r?\n/).find(e=>e.trim())?.trim()||`The app stopped unexpectedly.`;e.fillStyle=`#e63946`,e.fillRect(0,f-120,t,130),e.font=`700 44px ${fS}`,e.fillStyle=`#ffffff`,e.fillText(MS(e,`⚠ ${n}`,t-100),50,f-55),u(`The app couldn't start.`,f+90,52,`#ffffff`),d(`Press E to see the log and try again`,`#ffb4ba`)}else if(i.status!==`running`){let n=Math.max(0,AS.findIndex(e=>e.status===i.status));u(`Getting ${p} ready…`,198,46,`#b8b8cc`,600),u(`${AS[n].label}…`,f-20,72,`#ffffff`);let r=(t-200-18*(AS.length-1))/AS.length;AS.forEach((t,i)=>{let a=100+i*(r+18),o=f+90;pS(e,a,o,r,34,17),e.fillStyle=i<n?hS.done:i===n?`#f4a261`:`#3a3a52`,e.fill(),e.font=`600 28px ${fS}`,e.fillStyle=i<=n?hS.text:`#6c6c88`,e.textAlign=`center`,e.fillText(`${i<n?`✓ `:``}${t.label}`,a+r/2,o+70),e.textAlign=`left`}),d(`Step ${n+1} of ${AS.length} · press E to watch`)}else{let n=r.shot?t*.5:t-112;e.font=`600 34px ${fS}`,e.fillStyle=`#b8b8cc`,e.fillText(`Serving at`,56,190),e.font=`700 50px ${dS}`,e.fillStyle=hS.tool,e.fillText(MS(e,(i.url??``).replace(/^https?:\/\//,``).replace(/\/$/,``),n),56,258),e.font=`700 42px ${fS}`;let a=e.measureText(p).width+48;if(pS(e,56,326,a,64,32),e.fillStyle=r.color,e.fill(),e.fillStyle=`#ffffff`,e.fillText(p,80,359),i.commit&&(e.font=`600 42px ${dS}`,e.fillStyle=hS.thinking,e.fillText(i.commit,56+a+24,359)),i.startedAt&&(e.font=`500 32px ${fS}`,e.fillStyle=`#8d8da8`,e.fillText(`up since ${new Date(i.startedAt).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}`,56,448)),r.shot){let i=t-n-56-70,a=Math.round(i*.5625),o=t-40-i;e.fillStyle=`#3a3a52`,e.fillRect(o-6,162,i+12,a+12);let s=r.shot,c=Math.max(i/s.width,a/s.height);e.drawImage(s,0,0,i/c,a/c,o,168,i,a),e.font=`500 26px ${fS}`,e.fillStyle=`#8d8da8`,e.fillText(MS(e,r.shotBy?`latest from ${r.shotBy}'s browser`:`latest agent screenshot`,i),o,168+a+36)}d(`Press E to open the app`,hS.done)}}var PS=new Map;function FS(e,t=3.2){let n=(0,v.useRef)(null),r=e?`${e.id}|${e.label}`:``;return(0,v.useEffect)(()=>{let r=n.current;if(r&&e)return PS.set(r,{...e,range:t}),()=>{PS.delete(r)}},[r,t]),n}function IS(e,t,n,r){let i=(0,v.useMemo)(()=>{let n=document.createElement(`canvas`);n.width=e,n.height=t;let r=new vs(n);return r.colorSpace=xt,r.anisotropy=8,r},[e,t]);return(0,v.useEffect)(()=>{let r=i.image.getContext(`2d`);r.clearRect(0,0,e,t),n(r),i.needsUpdate=!0;let a=!0;return document.fonts?.ready.then(()=>{a&&(r.clearRect(0,0,e,t),n(r),i.needsUpdate=!0)}),()=>{a=!1}},[i,...r]),(0,v.useEffect)(()=>()=>i.dispose(),[i]),i}var LS={gapMs:2e3,ms:1500},RS={ball:2.5,dart:3};function zS(e,t){let n=e&&typeof e==`object`?e.toy:void 0;return n===`dart`?`dart`:typeof n==`string`&&t.includes(n)?`ball`:null}function BS(e,t,n){return e!==null&&!n&&t>=RS[e]}var VS=(e,t,n=LS.gapMs)=>e===void 0||t-e>=n,HS=e=>e*e*(3-2*e);function US(e){return!(e>=0)||e>=LS.ms?0:e<120?HS(e/120):e<850?1:1-HS((e-850)/(LS.ms-850))}function WS(e){return!(e>=0)||e>=400?0:e<70?HS(e/70):1-HS((e-70)/330)}var GS=(e,t,n)=>Math.min(n,Math.max(t,e));function KS(e,t,n=1.1,r=.5){if(e===0&&t===0)return{head:0,twist:0};let i=Math.atan2(-e,-t),a=GS(i,-n,n);return{head:a,twist:GS(i-a,-r,r)}}var qS=[],JS=1,YS=new Set,XS=new Map,ZS=new Map,QS=0;function $S(e,t){let n={id:e,obj:t,key:JS++};qS=[...qS,n];for(let e of YS)e();return()=>{qS=qS.filter(e=>e!==n);for(let e of YS)e()}}var eC=()=>qS;function tC(e){return YS.add(e),()=>void YS.delete(e)}function nC(e,t){let n=XS.get(e);return n||XS.set(e,n=new Set),n.add(t),()=>{n.delete(t),n.size||XS.delete(e)}}function rC(e,t=performance.now()){if(!VS(ZS.get(e),t))return!1;ZS.set(e,t),QS++;for(let t of XS.get(e)??[])t();return!0}var iC=()=>QS,aC=1.16,oC=`#1f1d2b`;function sC(e,t,n,r){let i=n-8-34;e.lineWidth=8,e.lineJoin=`round`,e.strokeStyle=oC,e.fillStyle=`#ffffff`,e.beginPath(),e.roundRect(8,8,t-16,i-8,40),e.fill(),e.stroke(),e.beginPath(),e.moveTo(62,i-6),e.lineTo(28,n-8),e.lineTo(104,i-6),e.fill(),e.beginPath(),e.moveTo(62,i),e.lineTo(28,n-8),e.lineTo(104,i),e.stroke(),e.fillStyle=`#e63946`,e.font=`700 ${r.length>2?84:100}px ${fS}`,e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(r,t/2,(8+i)/2+4)}function cC({text:e,since:t}){let n=(0,v.useRef)(null),r=IS(256,176,t=>sC(t,256,176,e),[e]);return G_(()=>{if(!n.current)return;let e=performance.now()-t,r=LS.ms-e,i=e<90?.3+e/90*.9:e<170?1.2-(e-90)/80*.2:r<150?Math.max(.01,r/150):1;n.current.scale.setScalar(i)}),(0,K.jsx)(Oy,{position:[.18,1.45,0],children:(0,K.jsx)(`group`,{ref:n,scale:.3,children:(0,K.jsxs)(`mesh`,{position:[.195,.156,0],renderOrder:2,children:[(0,K.jsx)(`planeGeometry`,{args:[.5,.344]}),(0,K.jsx)(`meshBasicMaterial`,{map:r,transparent:!0,toneMapped:!1,depthWrite:!1})]})})})}function lC(e,t){let n=W_(e=>e.camera),r=(0,v.useRef)(-1/0),[i,a]=(0,v.useState)(null),o=(0,v.useMemo)(()=>({w:0,flinch:0,headYaw:0,headPitch:0,twist:0}),[]),s=(0,v.useMemo)(()=>new V,[]);return(0,v.useEffect)(()=>{let n=t.current;return n?$S(e,n):void 0},[e,t]),(0,v.useEffect)(()=>nC(e,()=>{let e=performance.now();r.current=e,cb(),a({text:Math.random()<.65?`hey!`:`!`,since:e})}),[e]),(0,v.useEffect)(()=>{if(!i)return;let e=setTimeout(()=>a(null),LS.ms);return()=>clearTimeout(e)},[i]),{pose:e=>{let i=e-r.current;o.w=US(i),o.flinch=WS(i);let a=t.current;if(o.w===0||!a)return o.w=o.flinch=o.headYaw=o.headPitch=o.twist=0,o;a.worldToLocal(s.copy(n.position));let c=KS(s.x,s.z);return o.headYaw=c.head,o.twist=c.twist,o.headPitch=Math.min(.45,Math.max(-.3,Math.atan2(s.y-aC,Math.hypot(s.x,s.z)))),o},bubble:i&&(0,K.jsx)(cC,{text:i.text,since:i.since},i.since)}}var uC={pitch:-.34,yaw:.26},dC={typing:{l:uC,r:uC,lean:.1,headPitch:-.02,headYaw:0,type:1,mouse:0},browsing:{l:uC,r:{pitch:-.4,yaw:-.22},lean:.06,headPitch:.05,headYaw:.04,type:.25,mouse:1},thinking:{l:uC,r:{pitch:.55,yaw:.95},lean:.02,headPitch:.1,headYaw:-.12,type:.3,mouse:0},relaxed:{l:{pitch:-.9,yaw:.35},r:{pitch:-.9,yaw:.35},lean:-.1,headPitch:.06,headYaw:0,type:0,mouse:0},cheer:{l:{pitch:1.45,yaw:-.35},r:{pitch:1.45,yaw:-.35},lean:-.05,headPitch:.2,headYaw:0,type:0,mouse:0},slump:{l:{pitch:-1.35,yaw:-.15},r:{pitch:-1.35,yaw:-.15},lean:.25,headPitch:-.45,headYaw:0,type:0,mouse:0}},fC=e=>({...e,l:{...e.l},r:{...e.r}}),pC=`#1f1d2b`,mC=[`#1f1d2b`,`#7f5539`,`#1f1d2b`,`#c1121f`,`#355070`,`#1f1d2b`];function hC({agent:e}){let t=(0,v.useRef)(null),n=(0,v.useRef)(null),r=(0,v.useRef)(null),i=(0,v.useRef)(null),a=(0,v.useRef)(fC(dC.relaxed)),o=(0,v.useRef)(Math.random()*100),s=(0,v.useRef)({name:null,at:0}),c=(0,v.useMemo)(()=>Nx(e),[e.id,e.look,e.role]),l=(0,v.useRef)(null),u=lC(e.id,l);e.currentTool&&(s.current={name:e.currentTool,at:performance.now()}),G_((l,d)=>{let f=performance.now(),p=f/1e3+o.current,m=e.status===`working`||e.status===`preparing`,h=e.status===`done`&&e.endedAt!=null&&Date.now()-e.endedAt<7e3,g=f-s.current.at,_=s.current.name?.startsWith(`mcp__playwright`)&&g<4e3,v=m?e.status===`preparing`?`typing`:_?`browsing`:!e.currentTool&&g>2500?`thinking`:`typing`:e.status===`error`?`slump`:h?`cheer`:`relaxed`,y=dC[v],b=a.current,x=1-Math.exp(-d*5);for(let e of[`l`,`r`])b[e].pitch+=(y[e].pitch-b[e].pitch)*x,b[e].yaw+=(y[e].yaw-b[e].yaw)*x;for(let e of[`lean`,`headPitch`,`headYaw`,`type`,`mouse`])b[e]+=(y[e]-b[e])*x;let S=Math.sin(p*.8)+Math.sin(p*2.1)*.6>-.35?1:.15,C=b.type*S*.1,w=e.status===`preparing`?10:19,T=Math.max(0,Math.sin(p*w))*C,E=Math.max(0,Math.sin(p*w+2.4))*C*(1-b.mouse),D=Math.sin(p*3.1)*.05*b.type,O=Math.sin(p*2.7+1)*.05*b.type,k=Math.sin(p*1.9)*.06*b.mouse,A=(Math.sin(p*5.3)>.93?.04:0)*b.mouse,j=h?Math.sin(p*9)*.35:0,M=-(c.height-1)*.55,N=u.pose(f),ee=N.flinch*.55;if(r.current&&i.current&&(r.current.rotation.set(b.l.pitch+M+T+ee,-(b.l.yaw+D)+j,0),i.current.rotation.set(b.r.pitch+M+E-A+ee,b.r.yaw+O*(1-b.mouse)+k-j,0)),t.current&&(t.current.rotation.x=-b.lean+Math.sin(p*1.6)*.015+(m?Math.sin(p*9)*.006*S:0)+N.flinch*.2,t.current.rotation.y=N.twist*N.w),n.current){let t=m&&Math.sin(p*.55+2)>.92?-.22:0,r=e.status===`preparing`?Math.sin(p*1.3)*.5:Math.sin(p*.4)*.08,i=b.headPitch+t+(m?Math.sin(p*4.5)*.02*S:0),a=r+b.headYaw;n.current.rotation.set(i+(N.headPitch-i)*N.w,a+(N.headYaw-a)*N.w,(v===`thinking`?.12:0)*(1-N.w))}});let d=aS(e.skin),f=e.role===`qa`,p=e.role===`ceo`,m=e.look===`feminine`,h=e.status===`working`||e.status===`preparing`,g=aS(f?`#f8f9fa`:p?`#2b2d42`:e.color),_=aS(c.hair===`buzz`?uS(e.hair,e.skin,.35):e.hair),y=aS(pC),b=Dx[c.accent],x=e.status===`error`,S=nS.hair[c.hair],C=nS.facialHair[c.facialHair],w=nS.glasses[c.glasses],T=nS.headwear[c.headwear],E=nS.outfit[c.outfit],D=c.hair!==`buzz`&&c.hair!==`bald`,O=m&&c.headwear===`none`&&[`long`,`ponytail`,`bun`,`sidePart`,`curls`].includes(c.hair),k=c.headphones&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`mesh`,{geometry:nS.headphones.shell,material:aS(`#2b2d42`),castShadow:!0}),(0,K.jsx)(`mesh`,{geometry:nS.headphones.covers,material:aS(lS(e.color,.12))})]});return(0,K.jsxs)(`group`,{ref:l,children:[u.bubble,(0,K.jsx)(`mesh`,{geometry:nS.legs,material:aS(`#3d4a6b`),castShadow:!0,children:(0,K.jsx)(jy,{thickness:.012,color:pC,angle:0})}),(0,K.jsx)(`mesh`,{geometry:nS.shoes,material:y,castShadow:!0}),(0,K.jsxs)(`group`,{ref:t,position:[0,.5,-(c.height-1)*.25],scale:c.height,children:[(0,K.jsxs)(`group`,{scale:[c.shoulders,1,1],children:[(0,K.jsx)(`mesh`,{position:[0,.3,0],geometry:nS.torso,material:g,castShadow:!0,children:(0,K.jsx)(jy,{thickness:.015,color:pC,angle:0})}),c.outfit!==`sweater`&&(0,K.jsx)(`mesh`,{position:[0,.5,-.02],rotation:[Math.PI/2,0,0],geometry:nS.collar,material:aS(p?`#f8f9fa`:lS(e.color,-.15))}),E.main&&(0,K.jsx)(`mesh`,{geometry:E.main,material:aS(lS(e.color,-.08)),castShadow:!0}),E.trim&&(0,K.jsx)(`mesh`,{geometry:E.trim,material:aS(c.outfit===`stripe`?b:c.outfit===`hoodie`?`#f8f9fa`:lS(e.color,-.14))}),p&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`mesh`,{position:[0,.36,-.192],geometry:nS.shirtFront,material:aS(`#f8f9fa`)}),(0,K.jsx)(`mesh`,{position:[0,.33,-.206],geometry:nS.tie,material:aS(e.color)}),(0,K.jsx)(`mesh`,{position:[0,.445,-.206],geometry:nS.tieKnot,material:aS(lS(e.color,-.2))})]}),f&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`mesh`,{position:[0,.27,-.196],geometry:nS.coatOpening,material:aS(e.color)}),(0,K.jsx)(`mesh`,{position:[.1,.38,-.19],rotation:[.1,0,0],geometry:nS.badge,material:aS(`#ffd166`)})]}),!h&&k&&(0,K.jsx)(`group`,{position:[0,.49,-.09],rotation:[Math.PI/2-.5,0,0],scale:.74,children:k})]}),[{ref:r,x:-.25},{ref:i,x:.25}].map(({ref:e,x:t})=>(0,K.jsxs)(`group`,{ref:e,position:[t*c.shoulders,.44,0],children:[(0,K.jsx)(`mesh`,{position:[0,0,-.24],rotation:[Math.PI/2,0,0],geometry:nS.sleeve,material:g,castShadow:!0,children:(0,K.jsx)(jy,{thickness:.012,color:pC,angle:0})}),(0,K.jsx)(`mesh`,{position:[0,0,-.5],geometry:nS.hand,material:d,castShadow:!0})]},t)),(0,K.jsxs)(`group`,{ref:n,position:[0,.66,0],children:[(0,K.jsx)(`mesh`,{geometry:nS.head,material:d,castShadow:!0,children:(0,K.jsx)(jy,{thickness:.015,color:pC,angle:0})}),S&&(0,K.jsx)(`mesh`,{geometry:S,material:_,castShadow:D,children:D&&(0,K.jsx)(jy,{thickness:.012,color:pC,angle:0})}),(0,K.jsx)(`mesh`,{geometry:nS.ears,material:d}),(0,K.jsx)(`mesh`,{geometry:nS.eyes,material:y}),(0,K.jsx)(`mesh`,{position:[0,-.02,-.2],geometry:nS.nose,material:aS(lS(e.skin,-.08))}),(0,K.jsx)(`mesh`,{position:[0,x?-.1:-.075,-.175],rotation:[.25,0,x?0:Math.PI],geometry:nS.mouth,material:y}),C&&(0,K.jsx)(`mesh`,{geometry:C,material:aS(c.facialHair===`stubble`?uS(e.skin,e.hair,.3):e.hair)}),m&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`mesh`,{geometry:nS.lashes,material:y}),(0,K.jsx)(`mesh`,{geometry:nS.cheeks,material:aS(`#ff9aa2`)})]}),O&&(0,K.jsx)(`mesh`,{position:[.15,.13,-.08],rotation:[0,0,.5],geometry:nS.hairClip,material:aS(f?`#ff9f68`:lS(e.color,.15))}),f&&(0,K.jsx)(`mesh`,{geometry:nS.inspectorGlasses,material:y}),w&&(0,K.jsx)(`mesh`,{geometry:w,material:aS(mC[c.accent])}),T&&(0,K.jsx)(`mesh`,{geometry:T,material:aS(c.accent===0?lS(e.color,-.2):b),castShadow:!0,children:(0,K.jsx)(jy,{thickness:.012,color:pC,angle:0})}),h&&k]})]})]})}var gC=`#1f1d2b`;function J({size:e,position:t,rotation:n,color:r,outline:i=!1,shadow:a=!0,children:o}){return(0,K.jsxs)(`mesh`,{position:t,rotation:n,castShadow:a,receiveShadow:!0,material:aS(r),children:[(0,K.jsx)(`boxGeometry`,{args:e}),i&&(0,K.jsx)(jy,{thickness:.018,color:gC}),o]})}function _C({r:e,rTop:t,h:n,position:r,rotation:i,color:a,outline:o=!1,shadow:s=!0,seg:c=20}){return(0,K.jsxs)(`mesh`,{position:r,rotation:i,castShadow:s,receiveShadow:!0,material:aS(a),children:[(0,K.jsx)(`cylinderGeometry`,{args:[t??e,e,n,c]}),o&&(0,K.jsx)(jy,{thickness:.018,color:gC})]})}function vC({r:e,position:t,scale:n,color:r,outline:i=!1,shadow:a=!0}){return(0,K.jsxs)(`mesh`,{position:t,scale:n,castShadow:a,material:aS(r),children:[(0,K.jsx)(`sphereGeometry`,{args:[e,20,14]}),i&&(0,K.jsx)(jy,{thickness:.018,color:gC})]})}var yC={w:1,h:.6,px:896,py:538},bC=`#f1d19b`;function xC(e,t){let n=W_(e=>e.camera),{canvas:r,tex:i}=(0,v.useMemo)(()=>{let e=document.createElement(`canvas`);e.width=yC.px,e.height=yC.py;let t=new vs(e);return t.colorSpace=xt,t.anisotropy=8,{canvas:e,tex:t}},[]);(0,v.useEffect)(()=>()=>i.dispose(),[i]);let a=(0,v.useRef)(!0),o=(0,v.useRef)(0),s=(0,v.useRef)(null),c=(0,v.useRef)(e);c.current=e,(0,v.useEffect)(()=>{a.current=!0},[e]),(0,v.useEffect)(()=>q.subscribe((t,n)=>{if(t.logs[e.id]!==n.logs[e.id]&&(a.current=!0),t.screens[e.id]!==n.screens[e.id]){let n=new Image;n.onload=()=>{s.current=n,a.current=!0},n.src=`/api/agents/${e.id}/screen?t=${t.screens[e.id]}`}}),[e.id]),(0,v.useEffect)(()=>{let t=q.getState().screens[e.id];if(!t)return;let n=new Image;n.onload=()=>{s.current=n,a.current=!0},n.src=`/api/agents/${e.id}/screen?t=${t}`},[e.id]),(0,v.useEffect)(()=>{document.fonts?.ready.then(()=>a.current=!0)},[]);let l=(0,v.useMemo)(()=>new V,[]);return G_(()=>{let e=performance.now(),u=c.current,d=u.status===`working`||u.status===`preparing`||u.status===`idle`&&(q.getState().logs[u.id]?.length??0)<=1;if(!a.current&&!(d&&e-o.current>200))return;if(t.current){t.current.getWorldPosition(l);let r=l.distanceTo(n.position);if(r>16&&o.current!==0||r>8&&e-o.current<900)return}if(e-o.current<120)return;o.current=e,a.current=!1;let f=q.getState().logs[u.id]??[],p=u.screenshotAt!=null&&Date.now()-u.screenshotAt<12e4,m=u.hasScreenshot&&u.status!==`idle`&&(u.currentTool?.startsWith(`mcp__playwright`)||p||u.status===`done`),h=q.getState().settings,g=u.role!==`ceo`&&h.runtime===`terminal`?u.cli||h.defaultCli:`claude`;yS(r.getContext(`2d`),yC.px,yC.py,u,f,s.current,!!m,e,g),i.needsUpdate=!0}),i}function SC({agent:e}){let t=IS(512,96,t=>ES(t,512,96,e),[e.name,e.status,e.issueNumber,e.currentTool,e.color]);return(0,K.jsx)(Oy,{position:[0,1.98,-.32],children:(0,K.jsxs)(`mesh`,{children:[(0,K.jsx)(`planeGeometry`,{args:[1.15,.216]}),(0,K.jsx)(`meshBasicMaterial`,{map:t,transparent:!0,toneMapped:!1,depthWrite:!1})]})})}var CC={y:1.31,z:-.3,tilt:-.06},wC=`#2b2d42`,TC=`#3d4152`;function EC({accent:e,children:t}){return(0,K.jsxs)(`group`,{children:[(0,K.jsx)(_C,{r:.17,rTop:.15,h:.025,position:[0,.782,CC.z-.04],color:TC,outline:!0}),(0,K.jsx)(J,{size:[.07,.36,.05],position:[0,.95,CC.z-.07],color:TC,outline:!0}),(0,K.jsxs)(`group`,{position:[0,CC.y,CC.z],rotation:[CC.tilt,0,0],children:[(0,K.jsx)(J,{size:[yC.w+.07,yC.h+.07,.05],color:wC,outline:!0}),(0,K.jsx)(J,{size:[.6,.36,.07],position:[0,0,-.055],color:TC}),t,(0,K.jsx)(`mesh`,{position:[0,0,-.091],rotation:[0,Math.PI,0],material:sS(e),children:(0,K.jsx)(`circleGeometry`,{args:[.06,24]})}),(0,K.jsx)(`mesh`,{position:[yC.w/2-.02,-yC.h/2-.018,.026],material:sS(`#7CFFB2`),children:(0,K.jsx)(`circleGeometry`,{args:[.008,10]})})]})]})}function DC({agent:e,accent:t}){let n=(0,v.useRef)(null),r=xC(e,n);return(0,K.jsx)(EC,{accent:t,children:(0,K.jsxs)(`mesh`,{ref:n,position:[0,0,.026],children:[(0,K.jsx)(`planeGeometry`,{args:[yC.w,yC.h]}),(0,K.jsx)(`meshBasicMaterial`,{map:r,toneMapped:!1})]})})}function OC({accent:e,qa:t}){let n=IS(640,384,e=>{e.fillStyle=`#151621`,e.fillRect(0,0,640,384),OS(e,640,384,[{text:t?`🔍`:`🪑`,size:70},{text:t?`QA STATION`:`VACANT`,size:70,color:`#ffd6a5`},{text:t?`press E or click to hire a tester`:`press E or click to hire an agent`,size:36,color:`#a9adc6`,weight:500}],`rgba(0,0,0,0)`)},[t]);return(0,K.jsx)(EC,{accent:e,children:(0,K.jsxs)(`mesh`,{position:[0,0,.026],children:[(0,K.jsx)(`planeGeometry`,{args:[yC.w,yC.h]}),(0,K.jsx)(`meshBasicMaterial`,{map:n,toneMapped:!1})]})})}function kC(){let e=IS(512,176,e=>{e.fillStyle=`#d7dbe3`,e.fillRect(0,0,512,176),[14,13,12,11].forEach((t,n)=>{let r=(496-(t-1)*5)/t;for(let i=0;i<t;i++)e.fillStyle=n===0&&(i===0||i===t-1)?`#ffb4a2`:`#ffffff`,e.beginPath(),e.roundRect(8+i*(r+5),8+n*34,r,28,6),e.fill()}),e.fillStyle=`#ffffff`,e.beginPath(),e.roundRect(130,144,252,26,6),e.fill()},[]);return(0,K.jsxs)(`group`,{position:[0,.77,.27],children:[(0,K.jsx)(J,{size:[.52,.03,.18],position:[0,.015,0],color:`#c3c8d3`,outline:!0}),(0,K.jsxs)(`mesh`,{position:[0,.031,0],rotation:[-Math.PI/2,0,0],children:[(0,K.jsx)(`planeGeometry`,{args:[.5,.17]}),(0,K.jsx)(`meshToonMaterial`,{map:e})]}),(0,K.jsx)(`mesh`,{position:[.46,.002,.02],rotation:[-Math.PI/2,0,0],material:aS(`#3d4152`),children:(0,K.jsx)(`planeGeometry`,{args:[.24,.2]})}),(0,K.jsx)(`mesh`,{position:[.46,.022,.02],scale:[.75,.5,1],material:aS(`#f4f4f8`),castShadow:!0,children:(0,K.jsx)(`sphereGeometry`,{args:[.05,14,10]})})]})}var AC=`#dfe7ef`,jC=`#ff9f68`;function MC({agent:e,accent:t,repoId:n,position:r,role:i=`dev`,rotationY:a=0}){let o=i===`qa`,s=FS(e?{id:`agent-${e.id}`,label:e.role===`ceo`?`Open ${e.name}'s desk (CEO) · P texts them from anywhere`:`View ${e.name}'s ${o?`test run`:`terminal`}`,action:{kind:`terminal`,agentId:e.id}}:{id:`vacant-${i}-${n}-${r.join()}`,label:o?`Hire a QA tester for this station`:`Hire an agent for this desk`,action:{kind:`hire`,repoId:n,role:i}},3.6),c=e?lS(e.color,.1):`#ffffff`,l=o?AC:bC,u=o?jC:t;return(0,K.jsxs)(`group`,{ref:s,position:r,rotation:[0,a,0],children:[(0,K.jsx)(J,{size:[1.9,.06,.95],position:[0,.74,0],color:l,outline:!0}),[[-.88,-.42],[.88,-.42],[-.88,.42],[.88,.42]].map(([e,t])=>(0,K.jsx)(J,{size:[.06,.71,.06],position:[e,.355,t],color:`#5c677d`},`${e}${t}`)),(0,K.jsx)(J,{size:[1.76,.4,.03],position:[0,.5,-.44],color:lS(l,-.08)}),e?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(DC,{agent:e,accent:t}),(0,K.jsx)(kC,{}),(0,K.jsx)(_C,{r:.045,h:.1,position:[.76,.82,.02],color:c,outline:!0}),(0,K.jsx)(SC,{agent:e})]}):(0,K.jsx)(OC,{accent:t,qa:o}),o?(0,K.jsxs)(`group`,{position:[-.72,.77,-.2],children:[(0,K.jsx)(J,{size:[.3,.05,.1],position:[0,.06,0],color:`#adb5bd`,outline:!0}),[`#ff6b6b`,`#4cc9f0`,`#80ed99`].map((e,t)=>(0,K.jsx)(_C,{r:.022,h:.16,position:[-.09+t*.09,.1,0],color:e,outline:!0},e))]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(_C,{r:.06,rTop:.07,h:.09,position:[-.76,.815,-.22],color:`#e07a5f`,outline:!0}),(0,K.jsx)(vC,{r:.09,position:[-.76,.92,-.22],color:`#52b788`,outline:!0})]}),(0,K.jsxs)(`group`,{position:[0,0,e?.8:.6],children:[(0,K.jsx)(J,{size:[.52,.08,.5],position:[0,.44,0],color:u,outline:!0}),(0,K.jsx)(J,{size:[.48,.42,.07],position:[0,.72,.28],color:u,outline:!0}),(0,K.jsx)(_C,{r:.035,h:.36,position:[0,.22,0],color:`#444a5c`}),(0,K.jsx)(_C,{r:.26,h:.04,position:[0,.03,0],color:`#444a5c`}),e&&(0,K.jsx)(hC,{agent:e})]})]})}var NC=`#b9c2cf`;function PC({floorLabel:e,accent:t}){let n=W_(e=>e.camera),r=(0,v.useRef)(null),i=(0,v.useRef)(null),a=(0,v.useRef)(0),{doorHalf:o,cabinHalf:s,depth:c,doorHeight:l}=$b,u=12.15,d=FS({id:`elevator`,label:`Use the elevator`,action:{kind:`elevator`}},3.5),f=FS({id:`elevator-panel`,label:`Choose a floor`,action:{kind:`elevator`}},2.5),p=IS(512,128,t=>OS(t,512,128,[{text:e,size:56,color:`#7CFFB2`}],`#15151f`),[e]);return G_((e,t)=>{let s=q.getState().travel,c=n.position.x,l=n.position.z-u,d=Math.hypot(c,l)<2.8,f=s?.phase===`closing`?0:d||s?.phase===`opening`?1:0;a.current+=(f-a.current)*(1-Math.exp(-t*5));let p=a.current*o*.98;r.current&&(r.current.position.x=-o/2-p),i.current&&(i.current.position.x=o/2+p)}),(0,K.jsxs)(`group`,{children:[(0,K.jsxs)(`group`,{ref:d,children:[(0,K.jsx)(J,{size:[.22,l+.1,.36],position:[-o-.05,(l+.1)/2,12],color:NC,outline:!0}),(0,K.jsx)(J,{size:[.22,l+.1,.36],position:[o+.05,(l+.1)/2,12],color:NC,outline:!0}),(0,K.jsx)(J,{size:[o*2+.32,.22,.36],position:[0,l+.08,12],color:NC,outline:!0}),(0,K.jsx)(`mesh`,{ref:r,position:[-o/2,l/2,u],material:aS(`#d9dee6`),castShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[o,l,.06]})}),(0,K.jsx)(`mesh`,{ref:i,position:[o/2,l/2,u],material:aS(`#d9dee6`),castShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[o,l,.06]})})]}),(0,K.jsxs)(`mesh`,{position:[0,l+.55,11.97],rotation:[0,Math.PI,0],children:[(0,K.jsx)(`planeGeometry`,{args:[1.6,.4]}),(0,K.jsx)(`meshBasicMaterial`,{map:p,toneMapped:!1})]}),(0,K.jsxs)(`group`,{position:[o+.55,1.2,11.97],rotation:[0,Math.PI,0],children:[(0,K.jsx)(J,{size:[.22,.4,.04],position:[0,0,0],color:NC,outline:!0}),(0,K.jsx)(`mesh`,{position:[0,.08,.025],material:sS(t),children:(0,K.jsx)(`circleGeometry`,{args:[.05,20]})}),(0,K.jsx)(`mesh`,{position:[0,-.08,.025],material:sS(`#ffffff`),children:(0,K.jsx)(`circleGeometry`,{args:[.05,20]})})]}),(0,K.jsxs)(`group`,{position:[0,0,12],children:[(0,K.jsx)(`mesh`,{position:[0,.01,c/2],rotation:[-Math.PI/2,0,0],receiveShadow:!0,material:aS(`#8d7b68`),children:(0,K.jsx)(`planeGeometry`,{args:[s*2,c]})}),(0,K.jsx)(`mesh`,{position:[0,l+.2,c/2],rotation:[Math.PI/2,0,0],material:aS(`#f1f3f5`),children:(0,K.jsx)(`planeGeometry`,{args:[s*2,c]})}),(0,K.jsx)(`mesh`,{position:[0,l+.18,c/2],rotation:[Math.PI/2,0,0],material:sS(`#fff6d6`),children:(0,K.jsx)(`circleGeometry`,{args:[.45,32]})}),[-1,1].map(e=>(0,K.jsx)(`mesh`,{position:[e*(s+.05),Xb/2,c/2],material:aS(`#c8ced8`),children:(0,K.jsx)(`boxGeometry`,{args:[.1,Xb,c]})},e)),(0,K.jsx)(`mesh`,{position:[0,Xb/2,c+.05],material:aS(`#c8ced8`),children:(0,K.jsx)(`boxGeometry`,{args:[s*2+.2,Xb,.1]})}),(0,K.jsx)(J,{size:[s*2-.2,.05,.08],position:[0,.95,c-.05],color:`#e9c46a`,outline:!0}),(0,K.jsxs)(`group`,{ref:f,position:[s-.02,1.25,.9],rotation:[0,-Math.PI/2,0],children:[(0,K.jsx)(J,{size:[.36,.7,.04],position:[0,0,0],color:NC,outline:!0}),[.22,.08,-.06,-.2].map((e,n)=>(0,K.jsx)(`mesh`,{position:[0,e,.025],material:sS(n===0?t:`#fdfdfd`),children:(0,K.jsx)(`circleGeometry`,{args:[.04,16]})},e))]})]})]})}var FC=[1280,720],IC=`#2b2d42`,LC=uS(`#7CFFB2`,`#fbf3e4`,.35),RC={running:`#7CFFB2`,error:`#ff6b6b`,preparing:`#ffd166`,installing:`#ffd166`,starting:`#ffd166`};function zC(e){return q(t=>{let n=null,r=0;for(let i of e){let e=t.screens[i.id];e&&e>r&&(r=e,n=i)}return n?`${n.id}|${r}|${n.name}`:null})}function BC({repo:e,agents:t}){let n=e.preview,r=n.status===`running`,i=e.fullName.split(`/`)[1]??e.fullName,a=zC(t),[o,s]=(0,v.useState)(null);(0,v.useEffect)(()=>{if(!r||!a)return s(null);let[e,t,n]=a.split(`|`),i=!0,o=new Image;return o.onload=()=>i&&s({img:o,by:n}),o.src=`/api/agents/${e}/screen?t=${t}`,()=>{i=!1,o.onload=null}},[r,a]);let c=IS(FC[0],FC[1],t=>NS(t,FC[0],FC[1],{floor:e.floor,name:i,color:e.color,preview:n,shot:o?.img??null,shotBy:o?.by??null}),[e.floor,i,e.color,n.status,n.url,n.ref,n.commit,n.startedAt,n.error,o]),l=FS({id:`app-${e.id}`,label:`Open the app`,action:{kind:`app`,repoId:e.id}},6),u=dx,d=u.w+u.bezel*2,f=u.h+u.bezel*2;return(0,K.jsxs)(`group`,{ref:l,position:[u.x,u.y,-12],children:[r&&(0,K.jsx)(`mesh`,{position:[0,0,.012],material:sS(LC),children:(0,K.jsx)(`planeGeometry`,{args:[d+.18,f+.18]})}),(0,K.jsx)(J,{size:[d,f,u.depth],position:[0,0,u.depth/2],color:IC,outline:!0,shadow:!1}),(0,K.jsxs)(`mesh`,{position:[0,0,u.depth+.002],children:[(0,K.jsx)(`planeGeometry`,{args:[u.w,u.h]}),(0,K.jsx)(`meshBasicMaterial`,{map:c,toneMapped:!1})]}),(0,K.jsx)(`mesh`,{position:[u.w/2-.04,-u.h/2-u.bezel/2,u.depth+.002],material:sS(RC[n.status]??`#6c7086`),children:(0,K.jsx)(`circleGeometry`,{args:[.022,12]})})]})}function VC({repo:e,agents:t}){let n=q(e=>e.qa),r=(0,v.useMemo)(()=>Lb(e,t,n),[e,t,n]),i=(0,v.useMemo)(()=>JSON.stringify([e.fullName,e.autoAssign,e.lastSync?Math.floor(e.lastSync/6e4):0,...Object.values(r).map(e=>e.map(e=>[e.key,e.title,e.note,e.agent?.name,e.agent?.color,e.tone]))]),[r,e]),a=Math.round(2560*ux.h/ux.w),o=IS(2560,a,t=>wS(t,2560,a,e,r),[i]),s=FS({id:`board-${e.id}`,label:`Open the Kanban board`,action:{kind:`kanban`,repoId:e.id}},7),c=ux.y+ux.h/2;return(0,K.jsxs)(`group`,{ref:s,position:[0,0,ux.z],children:[(0,K.jsx)(J,{size:[ux.w+.24,ux.h+.24,.06],position:[0,c,.03],color:`#aab4c3`,outline:!0,shadow:!1}),(0,K.jsxs)(`mesh`,{position:[0,c,.065],children:[(0,K.jsx)(`planeGeometry`,{args:[ux.w,ux.h]}),(0,K.jsx)(`meshBasicMaterial`,{map:o,toneMapped:!1})]}),(0,K.jsx)(J,{size:[3.2,.05,.16],position:[3.5,ux.y-.12,.1],color:`#aab4c3`,outline:!0}),[`#e63946`,`#1d3557`,`#2a9d8f`].map((e,t)=>(0,K.jsx)(_C,{r:.018,h:.16,position:[2.6+t*.22,ux.y-.075,.12],rotation:[0,0,Math.PI/2],color:e},e))]})}function HC({position:e,scale:t=1,pot:n=`#e07a5f`}){return(0,K.jsxs)(`group`,{position:e,scale:t,children:[(0,K.jsx)(_C,{r:.22,rTop:.28,h:.5,position:[0,.25,0],color:n,outline:!0}),(0,K.jsx)(vC,{r:.36,position:[0,.8,0],color:`#52b788`,outline:!0}),(0,K.jsx)(vC,{r:.28,position:[.2,1.05,.08],color:`#40916c`,outline:!0}),(0,K.jsx)(vC,{r:.25,position:[-.18,1.12,-.05],color:`#74c69d`,outline:!0}),(0,K.jsx)(vC,{r:.2,position:[.02,1.35,0],color:`#52b788`,outline:!0})]})}function UC({position:e}){return(0,K.jsxs)(`group`,{position:e,children:[(0,K.jsx)(J,{size:[.45,1,.45],position:[0,.5,0],color:`#f1f3f5`,outline:!0}),(0,K.jsx)(_C,{r:.18,h:.5,position:[0,1.25,0],color:`#8ecae6`,outline:!0}),(0,K.jsx)(J,{size:[.08,.06,.06],position:[0,.8,-.24],color:`#457b9d`})]})}function WC({position:e,rotationY:t=0,color:n=`#6c63ff`}){let r=lS(n,-.12);return(0,K.jsxs)(`group`,{position:e,rotation:[0,t,0],children:[(0,K.jsx)(J,{size:[3,.42,1],position:[0,.25,0],color:n,outline:!0}),(0,K.jsx)(J,{size:[3,.6,.25],position:[0,.7,.38],color:r,outline:!0}),(0,K.jsx)(J,{size:[.25,.55,1],position:[-1.5,.45,0],color:r,outline:!0}),(0,K.jsx)(J,{size:[.25,.55,1],position:[1.5,.45,0],color:r,outline:!0}),(0,K.jsx)(J,{size:[.5,.4,.14],position:[-.9,.62,.22],color:`#ffd166`,outline:!0}),(0,K.jsx)(J,{size:[.5,.4,.14],position:[.9,.62,.22],color:`#ef476f`,outline:!0})]})}function GC({position:e,rotationY:t=0}){return(0,K.jsxs)(`group`,{position:e,rotation:[0,t,0],children:[(0,K.jsx)(J,{size:[1.3,.08,.8],position:[0,.42,0],color:`#f1d19b`,outline:!0}),(0,K.jsx)(J,{size:[1.1,.38,.6],position:[0,.2,0],color:`#c9a26b`}),(0,K.jsx)(_C,{r:.05,h:.1,position:[.3,.51,.1],color:`#ffffff`,outline:!0}),(0,K.jsx)(J,{size:[.3,.04,.22],position:[-.25,.48,-.05],color:`#4cc9f0`,outline:!0})]})}function KC({position:e}){let t=(0,v.useRef)(null);return G_(()=>{if(!t.current)return;let e=performance.now()/1e3;t.current.children.forEach((t,n)=>{let r=(e*.4+n/3)%1;t.position.y=r*.4,t.scale.setScalar(.5+r),t.material.opacity=.5*(1-r)})}),(0,K.jsxs)(`group`,{position:e,children:[(0,K.jsx)(J,{size:[.8,.9,4],position:[0,.45,0],color:`#8ecae6`,outline:!0}),(0,K.jsx)(J,{size:[.9,.06,4.1],position:[-.02,.93,0],color:`#f8f9fa`,outline:!0}),(0,K.jsx)(J,{size:[.45,.55,.4],position:[.05,1.24,-1.1],color:`#343a40`,outline:!0}),(0,K.jsx)(J,{size:[.3,.12,.3],position:[-.1,1.1,-1.1],color:`#495057`}),(0,K.jsx)(`mesh`,{position:[-.2,1.35,-1.1],rotation:[0,-Math.PI/2,0],material:sS(`#ff6b6b`),children:(0,K.jsx)(`circleGeometry`,{args:[.03,12]})}),(0,K.jsx)(_C,{r:.05,h:.1,position:[-.15,1.01,-1.1],color:`#ffffff`,outline:!0}),(0,K.jsx)(`group`,{ref:t,position:[-.15,1.1,-1.1],children:[0,1,2].map(e=>(0,K.jsxs)(`mesh`,{children:[(0,K.jsx)(`sphereGeometry`,{args:[.03,8,6]}),(0,K.jsx)(`meshBasicMaterial`,{color:`#ffffff`,transparent:!0,opacity:.4,depthWrite:!1})]},e))}),(0,K.jsx)(_C,{r:.2,rTop:.24,h:.1,position:[0,1.01,.6],color:`#f4a261`,outline:!0}),(0,K.jsx)(vC,{r:.07,position:[.05,1.1,.55],color:`#e63946`}),(0,K.jsx)(vC,{r:.07,position:[-.06,1.1,.66],color:`#ffd166`}),(0,K.jsx)(vC,{r:.07,position:[.07,1.1,.7],color:`#80ed99`}),(0,K.jsx)(_C,{r:.1,rTop:.07,h:.25,position:[0,1.08,1.4],color:`#ced4da`,outline:!0}),(0,K.jsx)(J,{size:[.8,2,.8],position:[0,1,2.45],color:`#f1f3f5`,outline:!0}),(0,K.jsx)(J,{size:[.04,.5,.05],position:[-.42,1.3,2.2],color:`#adb5bd`})]})}function qC({position:e,size:t,color:n}){return(0,K.jsx)(`mesh`,{position:e,rotation:[-Math.PI/2,0,0],receiveShadow:!0,material:aS(n),children:(0,K.jsx)(`planeGeometry`,{args:t})})}function JC({position:e,rotationY:t=0}){let n=(0,v.useRef)(null),r=(0,v.useRef)(null);return G_(()=>{let e=new Date,t=e.getMinutes()+e.getSeconds()/60,i=e.getHours()%12+t/60;r.current&&(r.current.rotation.z=-(t/60)*Math.PI*2),n.current&&(n.current.rotation.z=-(i/12)*Math.PI*2)}),(0,K.jsxs)(`group`,{position:e,rotation:[0,t,0],children:[(0,K.jsx)(_C,{r:.36,h:.06,rotation:[Math.PI/2,0,0],color:`#ffffff`,outline:!0,shadow:!1}),(0,K.jsx)(`group`,{ref:n,position:[0,0,.04],children:(0,K.jsx)(`mesh`,{position:[0,.1,0],material:aS(`#1f1d2b`),children:(0,K.jsx)(`boxGeometry`,{args:[.035,.2,.01]})})}),(0,K.jsx)(`group`,{ref:r,position:[0,0,.045],children:(0,K.jsx)(`mesh`,{position:[0,.14,0],material:aS(`#e63946`),children:(0,K.jsx)(`boxGeometry`,{args:[.025,.28,.01]})})})]})}function YC({position:e,rotationY:t=0}){let n=[`#e63946`,`#457b9d`,`#2a9d8f`,`#f4a261`,`#9b5de5`,`#ffbe0b`,`#06d6a0`];return(0,K.jsxs)(`group`,{position:e,rotation:[0,t,0],children:[(0,K.jsx)(J,{size:[4.8,2.2,.6],position:[0,1.1,0],color:`#b08968`,outline:!0}),[.35,.95,1.55].map((e,t)=>(0,K.jsxs)(`group`,{children:[(0,K.jsx)(J,{size:[4.6,.04,.55],position:[0,e-.25,.04],color:`#9c6644`,shadow:!1}),Array.from({length:14},(r,i)=>(0,K.jsx)(J,{size:[.14+i*t%3*.03,.34+(i+t)%4*.04,.4],position:[-2.1+i*.3,e-.05,.08],color:n[(i+t*3)%n.length],shadow:!1},i))]},e))]})}function XC({from:e,to:t,height:n=2.8}){let r=t[0]-e[0],i=t[1]-e[1],a=Math.hypot(r,i),o=(e[0]+t[0])/2,s=(e[1]+t[1])/2,c=-Math.atan2(i,r);return(0,K.jsxs)(`group`,{position:[o,0,s],rotation:[0,c,0],children:[(0,K.jsx)(`mesh`,{position:[0,n/2,0],material:cS,children:(0,K.jsx)(`boxGeometry`,{args:[a,n,.04]})}),(0,K.jsx)(J,{size:[a,.08,.1],position:[0,n,0],color:`#8d99ae`,shadow:!1}),(0,K.jsx)(J,{size:[a,.08,.1],position:[0,.04,0],color:`#8d99ae`,shadow:!1}),(0,K.jsx)(J,{size:[.08,n,.1],position:[-a/2,n/2,0],color:`#8d99ae`,shadow:!1}),(0,K.jsx)(J,{size:[.08,n,.1],position:[a/2,n/2,0],color:`#8d99ae`,shadow:!1})]})}var ZC=`#fbf3e4`;function QC({position:e,rotationY:t,width:n,seed:r}){let i=IS(512,256,e=>kS(e,512,256,r),[r]),a=1.8;return(0,K.jsxs)(`group`,{position:e,rotation:[0,t,0],children:[(0,K.jsxs)(`mesh`,{position:[0,0,.01],children:[(0,K.jsx)(`planeGeometry`,{args:[n,a]}),(0,K.jsx)(`meshBasicMaterial`,{map:i,toneMapped:!1})]}),(0,K.jsx)(J,{size:[n+.16,.1,.1],position:[0,a/2,.04],color:`#ffffff`,outline:!0,shadow:!1}),(0,K.jsx)(J,{size:[n+.16,.14,.18],position:[0,-1.8/2,.06],color:`#ffffff`,outline:!0,shadow:!1}),[-n/2,0,n/2].map(e=>(0,K.jsx)(J,{size:[.08,a,.1],position:[e,0,.04],color:`#ffffff`,shadow:!1},e))]})}function $C({position:e}){return(0,K.jsxs)(`group`,{position:e,children:[(0,K.jsx)(J,{size:[1.4,.06,.5],position:[0,0,0],color:`#e9ecef`,shadow:!1}),(0,K.jsx)(`mesh`,{position:[0,-.035,0],rotation:[Math.PI/2,0,0],material:sS(`#fffbe8`),children:(0,K.jsx)(`planeGeometry`,{args:[1.25,.38]})})]})}function ew({accent:e,floorColor:t,westWindows:n=[-8,0,8],eastWindows:r=[-8,0],seed:i=1}){let a=aS(ZC),o=.3,{doorHalf:s,doorHeight:c}=$b,l=(0,v.useMemo)(()=>{let e=[];for(let t=-12;t<=12;t+=6)for(let n=-8;n<=8;n+=5.5)e.push([t,Xb-.04,n]);return e},[]),u=(0,v.useMemo)(()=>{let e=document.createElement(`canvas`);e.width=e.height=512;let n=e.getContext(`2d`);for(let e=0;e<8;e++){let r=e*173%512;for(let i=-r;i<512;i+=256){let a=(e*7+Math.floor((i+r)/256)*3)%5*.012-.024;n.fillStyle=lS(t,a),n.fillRect(i,e*64,256,64),n.fillStyle=lS(t,-.1),n.fillRect(i,e*64,3,64),n.fillStyle=lS(t,a-.035);for(let t=0;t<3;t++)n.fillRect(i+30+t*70,e*64+18+t*12,60,2)}n.fillStyle=lS(t,-.12),n.fillRect(0,e*64,512,3)}let r=new vs(e);return r.colorSpace=xt,r.wrapS=r.wrapT=w,r.repeat.set(8,6),r.anisotropy=8,r},[t]),d=16-s;return(0,K.jsxs)(`group`,{children:[(0,K.jsxs)(`mesh`,{rotation:[-Math.PI/2,0,0],receiveShadow:!0,children:[(0,K.jsx)(`planeGeometry`,{args:[32,24]}),(0,K.jsx)(`meshToonMaterial`,{map:u})]}),(0,K.jsx)(`mesh`,{rotation:[Math.PI/2,0,0],position:[0,Xb,0],material:aS(`#f3efe6`),children:(0,K.jsx)(`planeGeometry`,{args:[32,24]})}),l.map(e=>(0,K.jsx)($C,{position:e},e.join())),(0,K.jsx)(`mesh`,{position:[0,Xb/2,-12-o/2],material:a,receiveShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[32.6,Xb,o]})}),(0,K.jsx)(`mesh`,{position:[-16-o/2,Xb/2,0],material:a,receiveShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[o,Xb,24]})}),(0,K.jsx)(`mesh`,{position:[16.15,Xb/2,0],material:a,receiveShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[o,Xb,24]})}),[-1,1].map(e=>(0,K.jsx)(`mesh`,{position:[e*(s+d/2),Xb/2,12.15],material:a,receiveShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[d,Xb,o]})},e)),(0,K.jsx)(`mesh`,{position:[0,(Xb+c)/2,12.15],material:a,children:(0,K.jsx)(`boxGeometry`,{args:[s*2,Xb-c,o]})}),[{p:[0,0,-11.98],r:0,w:32},{p:[-15.98,0,0],r:Math.PI/2,w:24},{p:[15.98,0,0],r:-Math.PI/2,w:24},{p:[-(s+d/2),0,11.98],r:Math.PI,w:d},{p:[s+d/2,0,11.98],r:Math.PI,w:d}].map(({p:t,r:n,w:r},i)=>(0,K.jsxs)(`group`,{position:[t[0],0,t[2]],rotation:[0,n,0],children:[(0,K.jsx)(`mesh`,{position:[0,.06,0],material:aS(lS(e,-.2)),children:(0,K.jsx)(`boxGeometry`,{args:[r,.12,.04]})}),(0,K.jsx)(`mesh`,{position:[0,.95,0],material:aS(e),children:(0,K.jsx)(`boxGeometry`,{args:[r,.12,.03]})})]},i)),n.map((e,t)=>(0,K.jsx)(QC,{position:[-15.98,1.95,e],rotationY:Math.PI/2,width:5.5,seed:i*3+t},`w${e}`)),r.map((e,t)=>(0,K.jsx)(QC,{position:[15.98,1.95,e],rotationY:-Math.PI/2,width:5.5,seed:i*5+t+7},`e${e}`))]})}function tw(){return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`hemisphereLight`,{args:[`#fffaf0`,`#a48a6a`,.95]}),(0,K.jsx)(`ambientLight`,{intensity:.18}),(0,K.jsx)(`directionalLight`,{position:[9,14,7],intensity:1.55,castShadow:!0,"shadow-mapSize":[2048,2048],"shadow-camera-left":-18,"shadow-camera-right":18,"shadow-camera-top":14,"shadow-camera-bottom":-14,"shadow-camera-near":1,"shadow-camera-far":40,"shadow-bias":-6e-4,"shadow-normalBias":.03})]})}var nw=[{id:`blaster-orange`,body:`#ff8c1a`,trim:`#3a86ff`,foam:`#3a86ff`},{id:`blaster-blue`,body:`#3a86ff`,trim:`#ff8c1a`,foam:`#ff8c1a`}],rw=e=>nw.some(t=>t.id===e),iw={mag:12,gapMs:250,reloadMs:1e3};function aw(e,t){return e.reloadAt===null||t-e.reloadAt<iw.reloadMs?e:{ammo:iw.mag,reloadAt:null}}function ow(e,t){let n=aw(e,t);return n.reloadAt===null?null:Math.min(1,Math.max(0,(t-n.reloadAt)/iw.reloadMs))}function sw(e,t,n){let r=aw(e,n);return r.reloadAt!==null||r.ammo<=0||n-t<iw.gapMs?null:{ammo:r.ammo-1,reloadAt:null}}function cw(e,t){let n=aw(e,t);return n.reloadAt!==null||n.ammo>=iw.mag?null:{ammo:n.ammo,reloadAt:t}}function lw(e,t){return`Darts ${aw(e,t).ammo}/${iw.mag}`}var uw={maxAngle:28*Math.PI/180,minSpeed:6};function dw(e,t){let n=Math.hypot(e.x,e.y,e.z);return n<uw.minSpeed?!1:-(e.x*t.x+e.y*t.y+e.z*t.z)/n>=Math.cos(uw.maxAngle)}function fw(e,t=40,n=1){let r=e.length+n-t;return r<=0?[]:[...e].sort((e,t)=>e.born-t.born).slice(0,r)}var pw=.2,mw=null;function hw(e){mw=e}var gw=()=>mw?.count()??0,_w=()=>mw?.stuck()??0,vw=()=>(mw?.loose()??[]).filter(e=>e.y<pw),yw=e=>mw?.remove(e)??!1,bw={reach:.1,animMs:350},xw=e=>e!==`charging`,Sw=(e,t,n,r)=>Math.hypot(n.x-e,n.z-t)<=r;function Cw(e,t,n,r,i){return xw(e)?r.filter(e=>Sw(t,n,e,i+bw.reach)):[]}var ww=0,Tw=(e=1)=>void(ww+=e),Ew=()=>ww,Dw=null,Ow=null,kw=null;function Aw(e){Dw=e}function jw(e){Ow=e}function Mw(e){kw=e}function Nw(){let{held:e,chargeAt:t}=q.getState(),n=null;try{n=kw?kw():null}catch{}let r={held:e,charging:t!==null,hoop:Ow?Ow():null,roomba:n,darts:gw(),dartsStuck:_w(),reactions:iC(),vacuumed:Ew()};try{if(Dw)return{...Dw(),...r}}catch{}return{balls:[],bodies:0,...r}}typeof window<`u`&&!Object.getOwnPropertyDescriptor(window,`__swarmToys`)&&Object.defineProperty(window,"__swarmToys",{get:Nw,enumerable:!1,configurable:!1});var Pw=!1;function Fw(e){Pw||(Pw=!0,console.warn(`Office toys are switched off: the physics engine failed to load.`,e))}var Iw=()=>null,Lw=(0,v.lazy)(async()=>{try{let[e,t]=await Promise.all([Fy(()=>import(`./ToyWorld-CM2m1Ytr.js`),__vite__mapDeps([0,1])),Fy(()=>import(`./rapier-BLchqNuA.js`).then(e=>e.o),[])]);return await t.init(),e}catch(e){return Fw(e),{default:Iw}}}),Rw=class extends v.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e){console.error(`Office toys stopped on this floor after an error (the next floor gets fresh ones):`,e)}render(){return this.state.failed?null:this.props.children}},zw=(0,v.memo)(function({floor:e}){return Pw?null:(0,K.jsx)(Rw,{children:(0,K.jsx)(v.Suspense,{fallback:null,children:(0,K.jsx)(Lw,{floor:e})})})});function Bw({position:e,size:t,px:n,draw:r,deps:i,rotationY:a=Math.PI}){let o=IS(n[0],n[1],r,i);return(0,K.jsxs)(`mesh`,{position:e,rotation:[0,a,0],children:[(0,K.jsx)(`planeGeometry`,{args:t}),(0,K.jsx)(`meshBasicMaterial`,{map:o,transparent:!0,toneMapped:!1})]})}function Vw({repo:e}){let t=q(e=>e.agents),n=(0,v.useMemo)(()=>jb(t,e.id),[t,e.id]),r=(0,v.useMemo)(()=>new Map(n.filter(e=>e.role===`dev`).map(e=>[e.desk,e])),[n]),i=(0,v.useMemo)(()=>new Map(n.filter(e=>e.role===`qa`).map(e=>[e.desk,e])),[n]),a=n.filter(e=>e.status===`working`||e.status===`preparing`).length,o=q(e=>e.qa),s=Object.values(o).filter(t=>t.repoId===e.id&&t.status!==`passed`).length,c=Object.values(o).filter(t=>t.repoId===e.id&&t.status===`passed`).length,l=e.fullName.split(`/`)[1]??e.fullName,u=lS(e.color,.24);return(0,K.jsxs)(`group`,{children:[(0,K.jsx)(ew,{accent:e.color,floorColor:`#d9b48a`,seed:e.floor}),ox.map(e=>(0,K.jsx)(qC,{position:[0,.004,e+.35],size:[24.4,2.9],color:u},e)),Array.from({length:sx},(t,n)=>{let{x:i,z:a}=lx(n);return(0,K.jsx)(MC,{agent:r.get(n)??null,accent:e.color,repoId:e.id,position:[i,0,a]},n)}),(0,K.jsx)(qC,{position:[mx.x-.4,.005,-2],size:[3.4,10.4],color:`#ffd8bf`}),mx.stations.map((t,n)=>{let{x:r,z:a}=gx(n);return(0,K.jsx)(MC,{role:`qa`,rotationY:hx,agent:i.get(n)??null,accent:e.color,repoId:e.id,position:[r,0,a]},`qa${n}`)}),(0,K.jsx)(Bw,{position:[15.97,3.2,-2],rotationY:-Math.PI/2,size:[3.2,.55],px:[768,132],draw:e=>OS(e,768,132,[{text:`🔍 QA LAB · ${s} in testing`,size:56}],`#ff9f68`),deps:[s]}),(0,K.jsx)(VC,{repo:e,agents:n}),(0,K.jsx)(BC,{repo:e,agents:n}),(0,K.jsx)(PC,{floorLabel:`▲ ${e.floor} · ${l}`,accent:e.color}),(0,K.jsx)(zw,{floor:`office`}),(0,K.jsx)(Bw,{position:[-4.6,1.95,11.97],size:[4.2,1.3],px:[1024,317],draw:t=>OS(t,1024,317,[{text:`FLOOR ${e.floor}`,size:58,color:`rgba(255,255,255,0.85)`,weight:600},{text:e.fullName,size:74},{text:e.description||`no description`,size:36,weight:500,color:`rgba(255,255,255,0.85)`}],e.color),deps:[e.floor,e.fullName,e.description,e.color]}),(0,K.jsx)(Bw,{position:[4.6,1.95,11.97],size:[4.2,1.3],px:[1024,317],draw:t=>OS(t,1024,317,[{text:`👩💻 ${n.length} on the team`,size:54,color:`#2d3142`},{text:`⚙️ ${a} busy · 🔍 ${s} in QA · ✅ ${c} to merge`,size:46,color:`#2d3142`,weight:600},{text:`📋 ${e.issues.length} open issue${e.issues.length===1?``:`s`}${e.autoAssign?` · ⚡ auto`:``}`,size:44,color:`#5c6078`,weight:500}],`#fffdf5`),deps:[n.length,a,s,c,e.issues.length,e.autoAssign]}),(0,K.jsx)(HC,{position:[-7.1,0,-11.3]}),(0,K.jsx)(HC,{position:[7.1,0,-11.3]}),(0,K.jsx)(HC,{position:[-15.3,0,11.2],scale:1.2}),(0,K.jsx)(HC,{position:[-11,0,-11.3],scale:1.1}),(0,K.jsx)(HC,{position:[15.3,0,11.3],scale:.9,pot:`#8338ec`}),(0,K.jsx)(WC,{position:[-15.1,0,6.5],rotationY:-Math.PI/2,color:lS(e.color,-.05)}),(0,K.jsx)(GC,{position:[-13.4,0,6.5],rotationY:Math.PI/2}),(0,K.jsx)(KC,{position:[15.55,0,7]}),(0,K.jsx)(UC,{position:[15.5,0,-9.5]}),(0,K.jsx)(JC,{position:[-10,2.75,-11.95]}),(0,K.jsx)(Bw,{position:[10,2.2,-11.97],rotationY:0,size:[2.2,1.4],px:[512,326],draw:e=>OS(e,512,326,[{text:`🚀`,size:90},{text:`SHIP IT`,size:64},{text:`small PRs, happy reviewers`,size:26,weight:500}],`#3a86ff`),deps:[]})]})}var Hw=`#ff8a5b`,Uw=`#9b5de5`;function Ww(){let e=q(e=>e.repos),t=q(e=>e.agents),n=q(e=>e.settings),r=q(e=>e.qa),i=q(e=>e.requests);return(0,v.useMemo)(()=>{let a=Object.values(t),o=a.filter(e=>e.status===`working`||e.status===`preparing`).length,s=e.reduce((e,t)=>e+t.pulls.filter(e=>e.state===`OPEN`).length,0),c=e.reduce((e,t)=>e+t.pulls.filter(e=>e.state===`MERGED`).length,0),l=e.reduce((e,t)=>e+t.issues.length,0),u=e.map(e=>({floor:e.floor,name:e.fullName,color:e.color,team:a.filter(t=>t.repoId===e.id).length,working:a.filter(t=>t.repoId===e.id&&(t.status===`working`||t.status===`preparing`)).length,prs:e.pulls.filter(e=>e.state===`OPEN`).length})),d=Object.values(r),f=d.filter(e=>e.status!==`passed`).length,p=d.filter(e=>e.status===`passed`).length,m=Fb(i).length;return{repos:e.length,agents:a.length,working:o,openPrs:s,inQa:f,readyToMerge:p,merged:c,issues:l,floors:u,max:n.sessionLimit,pending:m}},[e,t,n,r,i])}function Gw(){let e=Ww(),t=FS({id:`manager-console`,label:`Open the manager's console`,action:{kind:`manager`}},3.2),n=IS(1024,640,t=>{let n=t.createLinearGradient(0,0,1024,640);n.addColorStop(0,`#20224a`),n.addColorStop(1,`#3a1f4d`),t.fillStyle=n,t.fillRect(0,0,1024,640),t.fillStyle=`#ffd6a5`,t.font=`700 54px ${fS}`,t.textBaseline=`middle`,t.fillText(`✻ Manager Console`,50,70),[[`Floors (repos)`,`${e.repos}`],[`Agents on staff`,`${e.agents}`],[`Sessions running`,e.max?`${e.working} / ${e.max}`:`${e.working}`],[`Open issues`,`${e.issues}`],[`PRs in QA / ready to merge`,`${e.inQa} / ${e.readyToMerge}`],[`📄 Hiring decisions waiting`,`${e.pending}`]].forEach(([e,n],r)=>{let i=150+r*68;pS(t,50,i-30,924,60,16),t.fillStyle=`rgba(255,255,255,0.07)`,t.fill(),t.fillStyle=`#c9c9ee`,t.font=`500 34px ${fS}`,t.fillText(e,76,i),t.fillStyle=`#ffffff`,t.font=`700 38px ${fS}`,t.textAlign=`right`,t.fillText(n,948,i),t.textAlign=`left`}),t.fillStyle=`#7CFFB2`,t.font=`600 32px ${fS}`,t.fillText(`Press E or click to manage floors, team & issues`,50,592)},[e]);return(0,K.jsxs)(`group`,{ref:t,position:[yx.x,0,yx.z],children:[(0,K.jsx)(J,{size:[yx.w,.08,yx.d],position:[0,.76,0],color:`#8d5a3b`,outline:!0}),(0,K.jsx)(J,{size:[yx.w-.1,.72,.06],position:[0,.37,-yx.d/2+.05],color:`#6f4530`}),(0,K.jsx)(J,{size:[.08,.72,yx.d-.1],position:[-yx.w/2+.08,.37,0],color:`#6f4530`}),(0,K.jsx)(J,{size:[.08,.72,yx.d-.1],position:[yx.w/2-.08,.37,0],color:`#6f4530`}),(0,K.jsx)(J,{size:[.1,.34,.1],position:[0,.97,-.15],color:`#adb5bd`}),(0,K.jsx)(J,{size:[.4,.03,.26],position:[0,.815,-.15],color:`#adb5bd`,outline:!0}),(0,K.jsx)(J,{size:[1.42,.92,.06],position:[0,1.55,-.18],color:`#343a40`,outline:!0}),(0,K.jsxs)(`mesh`,{position:[0,1.55,-.145],children:[(0,K.jsx)(`planeGeometry`,{args:[1.34,.84]}),(0,K.jsx)(`meshBasicMaterial`,{map:n,toneMapped:!1})]}),(0,K.jsx)(J,{size:[.5,.025,.16],position:[0,.815,.25],color:`#f4f4f8`,outline:!0}),(0,K.jsx)(_C,{r:.05,h:.11,position:[.9,.855,.1],color:`#ffd166`,outline:!0}),(0,K.jsx)(J,{size:[.3,.2,.03],position:[-.95,.9,-.1],rotation:[-.3,.3,0],color:`#e9c46a`,outline:!0}),(0,K.jsxs)(`group`,{position:[0,0,-1.1],children:[(0,K.jsx)(J,{size:[.64,.12,.6],position:[0,.48,0],color:`#2b2d42`,outline:!0}),(0,K.jsx)(J,{size:[.62,.8,.12],position:[0,.95,-.3],color:`#2b2d42`,outline:!0}),(0,K.jsx)(_C,{r:.04,h:.4,position:[0,.22,0],color:`#6c757d`}),(0,K.jsx)(_C,{r:.3,h:.04,position:[0,.03,0],color:`#6c757d`})]})]})}function Kw(){let e=Ww(),t=FS({id:`directory`,label:`Floor directory — take the elevator`,action:{kind:`elevator`}},4),n=IS(768,560,t=>{pS(t,0,0,768,560,30),t.fillStyle=`#23263a`,t.fill(),t.fillStyle=`#ffd6a5`,t.font=`700 46px ${fS}`,t.textBaseline=`middle`,t.fillText(`Directory`,36,52);let n=[...e.floors].sort((e,t)=>t.floor-e.floor).slice(0,7);n.forEach((e,n)=>{let r=118+n*58;t.fillStyle=e.color,pS(t,36,r-22,54,44,12),t.fill(),t.fillStyle=`#1f2233`,t.font=`700 30px ${fS}`,t.textAlign=`center`,t.fillText(String(e.floor),63,r+1),t.textAlign=`left`,t.fillStyle=`#ffffff`,t.font=`600 28px ${fS}`;let i=e.name.length>24?`${e.name.slice(0,23)}…`:e.name;t.fillText(i,108,r),t.fillStyle=`#a9adc6`,t.font=`500 24px ${fS}`,t.textAlign=`right`,t.fillText(`${e.working}/${e.team} busy · ${e.prs} PR`,740,r),t.textAlign=`left`});let r=118+n.length*58;t.fillStyle=Hw,pS(t,36,r-22,54,44,12),t.fill(),t.fillStyle=`#1f2233`,t.font=`700 30px ${fS}`,t.textAlign=`center`,t.fillText(`G`,63,r+1),t.textAlign=`left`,t.fillStyle=`#ffffff`,t.font=`600 28px ${fS}`,t.fillText(`Lobby & manager's office`,108,r),e.floors.length===0&&(t.fillStyle=`#a9adc6`,t.font=`500 26px ${fS}`,t.fillText(`No floors yet: connect a repo in the`,36,r+80),t.fillText(`manager's office (back left corner).`,36,r+116))},[e]);return(0,K.jsx)(`group`,{ref:t,position:[4.4,1.75,11.97],rotation:[0,Math.PI,0],children:(0,K.jsxs)(`mesh`,{children:[(0,K.jsx)(`planeGeometry`,{args:[2.6,1.9]}),(0,K.jsx)(`meshBasicMaterial`,{map:n,transparent:!0,toneMapped:!1})]})})}function qw(){let e=Ww(),t=IS(512,160,t=>OS(t,512,160,[{text:`🏆 ${e.merged} PRs merged`,size:50,color:`#2d3142`}],`#ffe8a3`),[e.merged]),n=Math.min(8,e.merged);return(0,K.jsxs)(`group`,{position:[12,0,-11.45],children:[(0,K.jsx)(J,{size:[4.4,2.1,1],position:[0,1.05,0],color:`#b08968`,outline:!0}),(0,K.jsx)(J,{size:[4.1,1.2,.8],position:[0,1.2,.12],color:`#fdf6e3`,shadow:!1}),(0,K.jsx)(J,{size:[4.1,.04,.8],position:[0,1.2,.12],color:`#b08968`,shadow:!1}),Array.from({length:n},(e,t)=>(0,K.jsxs)(`group`,{position:[-1.7+t%4*1.1,t<4?.62:1.22,.2],children:[(0,K.jsx)(_C,{r:.08,rTop:.16,h:.22,position:[0,.2,0],color:`#ffd43b`,outline:!0}),(0,K.jsx)(_C,{r:.03,h:.1,position:[0,.05,0],color:`#ffd43b`}),(0,K.jsx)(J,{size:[.2,.04,.2],position:[0,.01,0],color:`#495057`})]},t)),(0,K.jsxs)(`mesh`,{position:[0,2.45,.02],children:[(0,K.jsx)(`planeGeometry`,{args:[2.4,.75]}),(0,K.jsx)(`meshBasicMaterial`,{map:t,transparent:!0,toneMapped:!1})]})]})}function Jw(){let e=q(e=>e.agents.ceo),t=q(e=>e.ceo),n=Fb(q(e=>e.requests)).length,r=e?.status===`working`?t.job?.label??`Working`:`Free for a chat (press P)`,i=t.queue.length?`${t.queue[0].label}${t.queue.length>1?` (+${t.queue.length-1})`:``}`:`nothing queued`;return(0,K.jsx)(Bw,{position:[15.97,2.05,Sx.z],rotationY:-Math.PI/2,size:[3.4,1.9],px:[816,456],draw:t=>OS(t,816,456,[{text:`🧠 ${e?.name??`CEO`}'s board`,size:54},{text:`Now: ${r}`,size:36,weight:600},{text:`Next: ${i}`,size:32,weight:500,color:`rgba(255,255,255,0.8)`},{text:n?`📄 ${n} candidate${n===1?``:`s`} waiting for you`:`📄 no candidates waiting`,size:34,weight:600,color:n?`#ffe066`:`#ffffff`}],`#3c2a63`),deps:[e?.name,r,i,n]})}function Yw(){let e=xx,t=q(e=>e.agents.ceo);return(0,K.jsxs)(`group`,{children:[(0,K.jsx)(qC,{position:[(e.minX+e.maxX)/2,.005,(e.minZ+e.maxZ)/2],size:[e.maxX-e.minX,e.maxZ-e.minZ],color:`#e6dcff`}),(0,K.jsx)(XC,{from:[e.minX,e.minZ],to:[e.minX,e.maxZ]}),(0,K.jsx)(XC,{from:[e.minX,e.maxZ],to:[e.doorMinX,e.maxZ]}),(0,K.jsx)(XC,{from:[e.doorMaxX,e.maxZ],to:[e.maxX,e.maxZ]}),(0,K.jsx)(J,{size:[e.doorMaxX-e.doorMinX,.5,.1],position:[(e.doorMinX+e.doorMaxX)/2,2.55,e.maxZ],color:`#8d99ae`}),(0,K.jsx)(Bw,{position:[(e.doorMinX+e.doorMaxX)/2,3.1,e.maxZ+.06],rotationY:0,size:[3.4,.5],px:[816,120],draw:e=>OS(e,816,120,[{text:`CEO${t?` · ${t.name}`:``}`,size:52}],Uw),deps:[t?.name]}),t&&(0,K.jsx)(MC,{agent:t,accent:Uw,repoId:``,position:[Sx.x,0,Sx.z]}),(0,K.jsx)(Jw,{}),(0,K.jsx)(HC,{position:[e.maxX-.7,0,e.maxZ-.7],scale:1.1,pot:Uw}),(0,K.jsx)(HC,{position:[e.minX+.6,0,e.maxZ-.6],scale:.9})]})}function Xw(e){return{id:e.id,name:e.name,repoId:e.repoId,role:e.role,title:e.title,specialty:e.specialty,brief:e.brief,hiredBy:`ceo`,look:e.look,task:null,desk:0,color:e.color,hair:e.hair,skin:e.skin,model:e.model,effort:e.effort,cli:``,terminal:!1,status:`idle`,issueNumber:null,issueTitle:null,branch:null,prNumber:null,prUrl:null,currentTool:null,startedAt:null,endedAt:null,costUsd:0,turns:0,browserUrl:null,hasScreenshot:!1,screenshotAt:null,lastError:null}}function Zw({req:e}){let t=q(t=>t.repos.find(t=>t.id===e.repoId)?.floor??null),n=IS(512,128,n=>DS(n,512,128,e.name,e.title,t,e.color),[e.name,e.title,t,e.color]);return(0,K.jsx)(Oy,{position:[0,1.95,-.1],children:(0,K.jsxs)(`mesh`,{children:[(0,K.jsx)(`planeGeometry`,{args:[1.15,.29]}),(0,K.jsx)(`meshBasicMaterial`,{map:n,transparent:!0,toneMapped:!1,depthWrite:!1})]})})}function Qw({z:e,req:t}){let n=FS(t?{id:`candidate-${t.id}`,label:`Read ${t.name}'s resume (${t.title})`,action:{kind:`phone`,tab:`hires`,requestId:t.id}}:null,3.2),r=(0,v.useMemo)(()=>t?Xw(t):null,[t]),i=`#06d6a0`;return(0,K.jsxs)(`group`,{ref:n,position:[Cx.x,0,e],rotation:[0,wx,0],children:[(0,K.jsx)(J,{size:[.52,.08,.5],position:[0,.44,0],color:i,outline:!0}),(0,K.jsx)(J,{size:[.48,.42,.07],position:[0,.72,.28],color:i,outline:!0}),[[-.22,-.2],[.22,-.2],[-.22,.2],[.22,.2]].map(([e,t])=>(0,K.jsx)(J,{size:[.05,.42,.05],position:[e,.2,t],color:`#444a5c`},`${e}${t}`)),r&&(0,K.jsx)(hC,{agent:r}),t&&(0,K.jsx)(Zw,{req:t})]})}function $w(){let e=q(e=>e.requests),t=(0,v.useMemo)(()=>Fb(e).filter(e=>e.kind===`hire`),[e]),n=t.length;return(0,K.jsxs)(`group`,{children:[Cx.seats.map((e,n)=>(0,K.jsx)(Qw,{z:e,req:t[n]??null},e)),(0,K.jsx)(Bw,{position:[15.97,2.5,(Cx.seats[0]+Cx.seats[Cx.seats.length-1])/2],rotationY:-Math.PI/2,size:[3.6,.62],px:[864,150],draw:e=>OS(e,864,150,[{text:n?`🪑 Waiting room · ${n} candidate${n===1?``:`s`}${n>Cx.seats.length?` (${n-Cx.seats.length} more outside)`:``}`:`🪑 Waiting room`,size:50}],`#06a77d`),deps:[n]})]})}function eT(){let e=vx,t=q(e=>e.user),n=q(e=>e.settings.managerName),r=q(e=>e.settings.companyName),i=n||t;return(0,K.jsxs)(`group`,{children:[(0,K.jsx)(ew,{accent:Hw,floorColor:`#e2c7a3`,westWindows:[1.5,8],eastWindows:[-2,6],seed:0}),(0,K.jsx)(qC,{position:[3,.004,3],size:[14,9],color:`#ffd6a5`}),(0,K.jsx)(qC,{position:[(e.minX+e.maxX)/2,.005,(e.minZ+e.maxZ)/2],size:[e.maxX-e.minX,e.maxZ-e.minZ],color:`#cde7e1`}),(0,K.jsx)(XC,{from:[e.maxX,e.minZ],to:[e.maxX,e.maxZ]}),(0,K.jsx)(XC,{from:[e.minX,e.maxZ],to:[e.doorMinX,e.maxZ]}),(0,K.jsx)(XC,{from:[e.doorMaxX,e.maxZ],to:[e.maxX,e.maxZ]}),(0,K.jsx)(J,{size:[e.doorMaxX-e.doorMinX,.5,.1],position:[(e.doorMinX+e.doorMaxX)/2,2.55,e.maxZ],color:`#8d99ae`}),(0,K.jsx)(Bw,{position:[(e.doorMinX+e.doorMaxX)/2,3.1,e.maxZ+.06],rotationY:0,size:[3.4,.5],px:[816,120],draw:e=>OS(e,816,120,[{text:`MANAGER${i?` · ${i}`:``}`,size:52}],`#2b2d42`),deps:[i]}),(0,K.jsx)(Gw,{}),(0,K.jsx)(YC,{position:[-15.6,0,-8],rotationY:Math.PI/2}),(0,K.jsx)(HC,{position:[e.maxX-.6,0,e.minZ+.6],scale:1.1,pot:`#3a86ff`}),(0,K.jsx)(HC,{position:[e.minX+.6,0,e.maxZ-.6],scale:.9}),(0,K.jsx)(Bw,{position:[yx.x,2.3,-11.97],rotationY:0,size:[2.4,1.2],px:[512,256],draw:e=>OS(e,512,256,[{text:`⭐`,size:70},{text:`World’s Best`,size:44,weight:600},{text:`Agent Wrangler`,size:50}],`#9b5de5`),deps:[]}),(0,K.jsxs)(`group`,{position:[bx.x,0,bx.z],children:[(0,K.jsx)(J,{size:[bx.w,1.05,bx.d],position:[0,.525,0],color:`#ffffff`,outline:!0}),(0,K.jsx)(J,{size:[bx.w+.1,.08,bx.d+.1],position:[0,1.09,0],color:Hw,outline:!0}),(0,K.jsx)(J,{size:[bx.w-.4,.3,.02],position:[0,.6,bx.d/2+.01],color:lS(Hw,.15),shadow:!1}),(0,K.jsxs)(`group`,{position:[0,1.13,-.1],children:[(0,K.jsx)(_C,{r:.2,rTop:.16,h:.4,position:[0,.2,0],color:`#e9ecef`,outline:!0}),(0,K.jsx)(vC,{r:.22,position:[0,.58,0],color:`#f8f9fa`,outline:!0}),(0,K.jsx)(`mesh`,{position:[-.08,.6,.2],material:sS(`#4cc9f0`),children:(0,K.jsx)(`sphereGeometry`,{args:[.035,10,8]})}),(0,K.jsx)(`mesh`,{position:[.08,.6,.2],material:sS(`#4cc9f0`),children:(0,K.jsx)(`sphereGeometry`,{args:[.035,10,8]})}),(0,K.jsx)(_C,{r:.012,h:.2,position:[0,.88,0],color:`#adb5bd`}),(0,K.jsx)(`mesh`,{position:[0,.99,0],material:sS(Hw),children:(0,K.jsx)(`sphereGeometry`,{args:[.045,10,8]})})]})]}),(0,K.jsx)(Bw,{position:[3,2.25,-11.97],rotationY:0,size:[7,1.6],px:[1400,320],draw:e=>OS(e,1400,320,[{text:`✻ ${r||`cubefarm`}`,size:120},{text:r?`powered by a team of AI coding agents`:`a team of AI coding agents`,size:48,weight:500}],Hw),deps:[r]}),(0,K.jsx)(Yw,{}),(0,K.jsx)($w,{}),(0,K.jsx)(PC,{floorLabel:`▲ G · Lobby`,accent:Hw}),(0,K.jsx)(zw,{floor:`lobby`}),(0,K.jsx)(Kw,{}),(0,K.jsx)(qw,{}),(0,K.jsx)(JC,{position:[8.4,2.8,-11.95]}),(0,K.jsx)(WC,{position:[11.5,0,4],rotationY:Math.PI,color:`#4cc9f0`}),(0,K.jsx)(GC,{position:[11.5,0,6.2]}),(0,K.jsx)(HC,{position:[15.3,0,11.3],scale:1.2}),(0,K.jsx)(HC,{position:[-15.3,0,11.3],scale:1.2,pot:`#06d6a0`}),(0,K.jsx)(HC,{position:[-3,0,11.4]}),(0,K.jsx)(HC,{position:[3,0,-11.3],scale:.8})]})}async function tT(e,t,n){let r=await fetch(t,{method:e,headers:n===void 0?void 0:{"Content-Type":`application/json`},body:n===void 0?void 0:JSON.stringify(n)}),i=await r.json().catch(()=>({}));if(!r.ok){let e=i.error??`${r.status} ${r.statusText}`;throw q.getState().pushToast(`error`,e),Error(e)}return i}var nT=e=>`/api/repos/${encodeURIComponent(e)}`,Y={githubRepos:e=>tT(`GET`,`/api/github/repos${e?`?owner=${encodeURIComponent(e)}`:``}`),connectRepo:(e,t={})=>tT(`POST`,`/api/repos`,{fullName:e,...t}),createRepo:e=>tT(`POST`,`/api/repos/new`,e),folders:e=>tT(`GET`,`/api/folders${e?`?dir=${encodeURIComponent(e)}`:``}`),connectFolder:(e,t={})=>tT(`POST`,`/api/folders/connect`,{path:e,...t}),publishFolder:e=>tT(`POST`,`/api/folders/publish`,e),setup:e=>tT(`POST`,`/api/setup`,e),updateRepo:(e,t)=>tT(`PATCH`,nT(e),t),startPreview:(e,t)=>tT(`POST`,`${nT(e)}/preview`,t?{pr:t}:{}),stopPreview:e=>tT(`DELETE`,`${nT(e)}/preview`),disconnectRepo:e=>tT(`DELETE`,nT(e)),syncRepo:e=>tT(`POST`,`${nT(e)}/sync`),syncFolder:e=>tT(`POST`,`${nT(e)}/sync-folder`),createIssue:(e,t,n,r,i)=>tT(`POST`,`${nT(e)}/issues`,{title:t,body:n,assignTo:r,specialty:i}),planFloor:(e,t)=>tT(`POST`,`${nT(e)}/plan`,{mission:t}),onboardFloor:e=>tT(`POST`,`${nT(e)}/onboard`),mergePull:(e,t,n=`squash`)=>tT(`POST`,`${nT(e)}/pulls/${t}/merge`,{method:n}),closePull:(e,t)=>tT(`POST`,`${nT(e)}/pulls/${t}/close`),sendToQa:(e,t)=>tT(`POST`,`${nT(e)}/pulls/${t}/qa`),hireAgent:(e,t={})=>tT(`POST`,`${nT(e)}/agents`,t),updateAgent:(e,t)=>tT(`PATCH`,`/api/agents/${e}`,t),fireAgent:e=>tT(`DELETE`,`/api/agents/${e}`),assign:(e,t,n)=>tT(`POST`,`/api/agents/${e}/assign`,{issueNumber:t,note:n}),stop:e=>tT(`POST`,`/api/agents/${e}/stop`),reset:e=>tT(`POST`,`/api/agents/${e}/reset`),message:(e,t)=>tT(`POST`,`/api/agents/${e}/message`,{text:t}),updateSettings:e=>tT(`PATCH`,`/api/settings`,e),updateOffice:async e=>{let t=await tT(`POST`,`/api/office/update`,{action:e});return q.getState().setOfficeUpdate(t),t},messageCeo:e=>tT(`POST`,`/api/ceo/message`,{text:e}),ceoReview:()=>tT(`POST`,`/api/ceo/review`),phoneRead:e=>tT(`POST`,`/api/phone/read`,{at:e}),approveRequest:(e,t={})=>tT(`POST`,`/api/requests/${e}/approve`,t),rejectRequest:(e,t)=>tT(`POST`,`/api/requests/${e}/reject`,{note:t})},rT=.0022,iT=.2;function aT(){return{skip:3,avg:0,pending:null,dropped:0,skipped:0}}function oT(e){e.skip=3,e.avg=0,e.pending=null}var sT=(e,t)=>Math.max(Math.abs(e),Math.abs(t));function cT(e,t,n){return e.avg+=(sT(t,n)-e.avg)*iT,[t,n]}function lT(e,t,n,r){if(!Number.isFinite(t)||!Number.isFinite(n))return null;if(e.skip>0)return e.skip--,e.skipped++,null;let i=sT(t,n);if(i>1e3)return e.dropped++,null;let a=e.pending;if(e.pending=null,a){if(r-a.t<=50&&i>=sT(a.dx,a.dy)*.25)return cT(e,a.dx,a.dy),cT(e,a.dx+t,a.dy+n);e.dropped++}return i>250||i>=48&&i>8*e.avg?(e.pending={dx:t,dy:n,t:r},null):cT(e,t,n)}var uT=.25,dT=`cubefarm:look`,fT={sensitivity:1,invertY:!1,grabOnClose:!0},pT=e=>Math.min(3,Math.max(uT,e));function mT(){try{let e=JSON.parse(localStorage.getItem(dT)??`null`);return{sensitivity:typeof e?.sensitivity==`number`&&Number.isFinite(e.sensitivity)?pT(e.sensitivity):fT.sensitivity,invertY:e?.invertY===!0,grabOnClose:e?.grabOnClose!==!1}}catch{return{...fT}}}var hT=Ty((e,t)=>({...mT(),set:n=>{e({...n,...n.sensitivity===void 0?{}:{sensitivity:pT(n.sensitivity)}});let{sensitivity:r,invertY:i,grabOnClose:a}=t();try{localStorage.setItem(dT,JSON.stringify({sensitivity:r,invertY:i,grabOnClose:a}))}catch{}}})),gT=Ty(()=>({ask:null}));function _T(e){return new Promise(t=>{gT.getState().ask?.resolve(!1),gT.setState({ask:{...e,resolve:t}})})}var vT=()=>gT.getState().ask!==null,yT=e=>gT.subscribe((t,n)=>e(t.ask!==null,n.ask!==null));function bT(e){let t=gT.getState().ask;t&&(gT.setState({ask:null}),t.resolve(e))}function xT(){let e=gT(e=>e.ask);if((0,v.useEffect)(()=>{if(!e)return;let t=e=>{(e.key===`Escape`||e.key===`Enter`)&&(e.preventDefault(),e.stopImmediatePropagation(),bT(e.key===`Enter`))};return window.addEventListener(`keydown`,t,!0),()=>window.removeEventListener(`keydown`,t,!0)},[e]),!e)return null;let t=e.tone??`good`;return(0,K.jsx)(`div`,{className:`confirm-overlay`,onMouseDown:e=>e.target===e.currentTarget&&bT(!1),children:(0,K.jsxs)(`div`,{className:`confirm confirm-${t}`,role:`alertdialog`,"aria-modal":`true`,"aria-label":e.title,children:[(0,K.jsx)(`div`,{className:`confirm-icon`,children:e.icon??(t===`danger`?`⚠️`:t===`warn`?`🤔`:`✨`)}),(0,K.jsx)(`h3`,{children:e.title}),e.body&&(0,K.jsx)(`div`,{className:`confirm-body`,children:e.body}),(0,K.jsxs)(`div`,{className:`confirm-actions`,children:[(0,K.jsx)(`button`,{className:`btn btn-ghost`,onClick:()=>bT(!1),children:e.cancel??`Cancel`}),(0,K.jsx)(`button`,{className:`btn ${t===`danger`?`btn-bad`:t===`warn`?`btn-warn`:`btn-good`}`,onClick:()=>bT(!0),autoFocus:!0,children:e.confirm??`OK`})]}),(0,K.jsxs)(`div`,{className:`confirm-keys muted small`,children:[(0,K.jsx)(`kbd`,{children:`Enter`}),` `,e.confirm??`OK`,` · `,(0,K.jsx)(`kbd`,{children:`Esc`}),` `,e.cancel??`Cancel`]})]})})}var ST=()=>{let e=q.getState().held;return e?.kind===`blaster`?e:null},CT={at:-1/0},wT=new Map,TT=[];function ET(){wT.clear(),TT=[]}function DT(e){q.getState().setHeld({kind:`blaster`,id:e,ammo:wT.get(e)??iw.mag,reloadAt:null})}q.subscribe((e,t)=>{let n=t.held;n?.kind!==`blaster`||e.held?.kind===`blaster`&&e.held.id===n.id||wT.set(n.id,aw(n,performance.now()).ammo)});function OT(){let e=q.getState(),t=ST();if(!t||e.travel)return;let n=performance.now(),r=sw(t,CT.at,n);if(!r){let e=aw(t,n);e.reloadAt===null&&e.ammo===0&&$y({freq:1400,to:900,type:`square`,dur:.03,peak:.03,attack:.002});return}CT.at=n,TT.length<iw.mag&&TT.push(t.id),e.setHeld({...t,...r}),sb()}function kT(){let e=ST();if(!e)return;let t=cw(e,performance.now());t&&(q.getState().setHeld({...e,...t}),tb({dur:.08,peak:.06,filter:`bandpass`,freq:900,q:2}),tb({at:.75,dur:.07,peak:.08,filter:`bandpass`,freq:1500,q:2}),setTimeout(()=>{let n=ST();n&&n.id===e.id&&n.reloadAt===t.reloadAt&&q.getState().setHeld({...n,...aw(n,performance.now())})},iw.reloadMs+20))}function AT(){return TT.shift()??null}var jT={tap:150,full:1e3},MT=e=>Math.min(1,Math.max(0,(e-jT.tap)/(jT.full-jT.tap))),NT={x:0,z:0},PT=null;function FT(){let e=q.getState();if(e.held?.kind===`blaster`)return OT();e.held&&e.chargeAt===null&&e.setCharge(performance.now())}function IT(){let e=q.getState();if(!e.held||e.chargeAt===null)return;let t=MT(performance.now()-e.chargeAt);PT={id:e.held.id,power:t,at:performance.now()},tb({dur:.14+t*.08,peak:.03+t*.05,filter:`bandpass`,freq:500,to:1500+t*900,q:.9}),e.setHeld(null)}function LT(){let e=q.getState();e.held&&e.setHeld(null)}function RT(e){let t=PT;return!t||t.id!==e||performance.now()-t.at>500?null:(PT=null,t.power)}function zT(e,t){return(e.overlay&&!t.overlay||e.confirm&&!t.confirm)&&!t.overlay&&!t.confirm}function BT(e,t,n){return n.enabled&&n.started&&zT(e,t)}function VT(e,t){let n=(n,r)=>{zT(n,r)&&(t(),BT(n,r,{started:q.getState().started,enabled:hT.getState().grabOnClose})&&e())},r=q.subscribe((e,t)=>{if(e.overlay===t.overlay)return;let r=vT();n({overlay:!!t.overlay,confirm:r},{overlay:!!e.overlay,confirm:r})}),i=yT((e,t)=>{let r=!!q.getState().overlay;e!==t&&n({overlay:r,confirm:t},{overlay:r,confirm:e})});return()=>{r(),i()}}var HT=new Map;function UT(e,t){return HT.set(e,t),()=>{HT.get(e)===t&&HT.delete(e)}}function WT(e){HT.get(e)?.()}var GT=null,KT=400,qT=0,JT=[`mousedown`,`mouseup`,`click`,`dblclick`],YT=()=>{qT=performance.now()+KT};function XT(){let e=q.getState();if(!GT||e.overlay||!e.started||vT())return;let t=GT;ZT(t,{unadjustedMovement:!0})?.catch?.(e=>{e instanceof DOMException&&e.name===`NotSupportedError`&&ZT(t)?.catch?.(()=>void 0)})}function ZT(e,t){try{return e.requestPointerLock?.(t)}catch{return}}var QT={dropped:0,skipped:0};window.__swarmLook=QT;function $T(e,t=`key`){let n=q.getState();if(qT=performance.now()+KT,e.action.kind===`pickup`&&rw(e.action.toyId)){DT(e.action.toyId);return}if(e.action.kind===`pickup`){n.setHeld({kind:`ball`,id:e.action.toyId});return}if(e.action.kind===`poke`){WT(e.action.toyId);return}if(e.action.kind===`hire`){let{repoId:r,role:i}=e.action,a=()=>Y.hireAgent(r,{role:i}).then(()=>n.pushToast(`success`,i===`qa`?`New QA tester hired! They will take the next free station in the QA lab.`:`New teammate hired! They will sit at the next free desk.`)).catch(()=>void 0);if(t===`key`){a();return}document.pointerLockElement&&document.exitPointerLock(),_T({icon:i===`qa`?`🔍`:`🪑`,title:i===`qa`?`Hire a QA tester for this station?`:`Hire an agent for this desk?`,confirm:`Hire`}).then(e=>{e&&a()});return}n.openOverlay(e.action)}var eE=e=>{let t=e.target;return!!t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable)};function tE({colliders:e,floor:t}){let{camera:n,gl:r}=W_(),i=(0,v.useRef)(new Set),a=(0,v.useRef)({yaw:ex.yaw,pitch:-.05}),o=(0,v.useRef)(0),s=(0,v.useMemo)(()=>new nf,[]),c=(0,v.useMemo)(()=>new B(0,0),[]),l=(0,v.useRef)(0),u=(0,v.useMemo)(aT,[]),d=(0,v.useRef)(!1);(0,v.useEffect)(()=>{let e=d.current?null:Eb();if(d.current=!0,e&&e.floor===t){n.position.set(e.x,Zb,e.z),a.current={yaw:e.yaw,pitch:e.pitch};return}n.position.set(ex.x,Zb,ex.z),a.current={yaw:ex.yaw,pitch:-.05}},[t,n]);let f=(0,v.useRef)(0);return(0,v.useEffect)(()=>{},[n]),(0,v.useEffect)(()=>{GT=r.domElement;let e=e=>{if(e.button!==0)return;if(document.pointerLockElement!==r.domElement)return XT();let t=q.getState();!t.started||t.overlay||t.travel||vT()||(t.held?FT():t.focus&&$T(t.focus,`click`))},t=e=>{e.button===0&&IT()},n=e=>{performance.now()>=qT||(e.stopPropagation(),e.preventDefault())},o=()=>{oT(u);let e=document.pointerLockElement===r.domElement;e||LT(),q.getState().setLocked(e)},s=e=>{if(document.pointerLockElement!==r.domElement||!document.hasFocus())return;let t=lT(u,e.movementX,e.movementY,e.timeStamp);if(QT.dropped=u.dropped,QT.skipped=u.skipped,!t)return;let{sensitivity:n,invertY:i}=hT.getState(),o=rT*n;a.current.yaw-=t[0]*o,a.current.pitch=Math.max(-1.35,Math.min(1.35,a.current.pitch-t[1]*o*(i?-1:1)))},c=e=>{if(eE(e))return;let t=q.getState();e.code===`KeyM`&&!e.repeat&&!vT()&&(Qy(),t.pushToast(`info`,Yy().muted?`🔇 Sound off (M to turn it back on)`:`🔊 Sound on`)),!(t.overlay||!t.started||vT())&&(i.current.add(e.code),e.code===`KeyE`&&!e.repeat&&t.focus&&$T(t.focus),e.code===`KeyF`&&!e.repeat&&!t.travel&&FT(),e.code===`KeyG`&&!e.repeat&<(),e.code===`KeyR`&&!e.repeat&&!t.travel&&kT(),e.code===`KeyH`&&t.openOverlay({kind:`help`}),e.code===`KeyP`&&(e.preventDefault(),t.openOverlay({kind:`phone`,tab:Fb(t.requests).length&&!Pb(t.messages,t.phoneReadAt)?`hires`:`chat`})))},l=e=>{i.current.delete(e.code),e.code===`KeyF`&&IT()},d=()=>{i.current.clear(),q.getState().setCharge(null)};r.domElement.addEventListener(`mousedown`,e),window.addEventListener(`mouseup`,t);for(let e of JT)window.addEventListener(e,n,!0);document.addEventListener(`pointerlockchange`,o),document.addEventListener(`mousemove`,s),window.addEventListener(`keydown`,c),window.addEventListener(`keyup`,l),window.addEventListener(`blur`,d);let f=VT(XT,YT);return()=>{f(),r.domElement.removeEventListener(`mousedown`,e),window.removeEventListener(`mouseup`,t);for(let e of JT)window.removeEventListener(e,n,!0);document.removeEventListener(`pointerlockchange`,o),document.removeEventListener(`mousemove`,s),window.removeEventListener(`keydown`,c),window.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,d)}},[r,u]),G_((t,r)=>{let u=Math.min(r,.05),d=q.getState();(d.overlay||vT())&&i.current.clear();let p=i.current,m=(p.has(`KeyW`)||p.has(`ArrowUp`)?1:0)-(p.has(`KeyS`)||p.has(`ArrowDown`)?1:0),h=(p.has(`KeyD`)||p.has(`ArrowRight`)?1:0)-(p.has(`KeyA`)||p.has(`ArrowLeft`)?1:0),g=p.has(`ShiftLeft`)||p.has(`ShiftRight`)?6.5:3.6,{yaw:_,pitch:v}=a.current,y=!1;if(NT.x=0,NT.z=0,(m||h)&&!d.travel){let t=Math.hypot(m,h),r=Math.sin(_),i=Math.cos(_),a=(-r*m+i*h)/t*g*u,o=(-i*m-r*h)/t*g*u,s=Ex(n.position.x+a,n.position.z+o,e);u>0&&(NT.x=(s.x-n.position.x)/u,NT.z=(s.z-n.position.z)/u),n.position.x=s.x,n.position.z=s.z,y=!0}o.current+=y?u*g*2.2:0,n.position.y=Zb+(y?Math.sin(o.current)*.035:0),fb(o.current,y,g>5),n.rotation.set(v,_,0,`YXZ`);let b=performance.now();if(d.started&&!d.travel&&b-f.current>1e3&&(f.current=b,Db({floor:d.floor,x:n.position.x,z:n.position.z,yaw:_,pitch:v})),++l.current%3!=0)return;if(d.overlay||d.travel||vT()){d.focus&&d.setFocus(null);return}s.setFromCamera(c,n),s.far=8;let x=[...PS.keys()],S=s.intersectObjects(x,!0),C=null;for(let e of S){let t=e.object;for(;t&&!PS.has(t);)t=t.parent;if(!t)continue;let n=PS.get(t);e.distance<=n.range&&(C={id:n.id,label:n.label,action:n.action});break}d.setFocus(C)}),null}function nE(){let e=q(e=>e.travel),t=q(e=>e.finishTravel);return(0,v.useEffect)(()=>{if(!e)return;e.phase===`closing`&&ob(.75);let n=setTimeout(()=>{e.phase===`closing`?(t(`arrived`),ab()):t(`done`)},e.phase===`closing`?750:650);return()=>clearTimeout(n)},[e,t]),null}function rE(){let e=q(e=>e.floor),t=q(e=>e.repos),n=e===0?null:Ab(t,e),r=!!n,i=(0,v.useMemo)(()=>r?_x():Tx(),[r]),a=Hb(),[o,s]=(0,v.useState)(Rb);return(0,K.jsxs)(by,{shadows:!0,frameloop:a?`never`:`always`,dpr:[1,o],camera:{fov:72,near:.05,far:90,position:[0,1.65,10]},gl:{antialias:!0,powerPreference:`high-performance`},onCreated:({gl:e})=>{e.toneMapping=4,e.toneMappingExposure=1,e.shadowMap.type=2},children:[(0,K.jsx)(`color`,{attach:`background`,args:[`#bfe3ff`]}),(0,K.jsx)(`fog`,{attach:`fog`,args:[`#f3ece2`,30,70]}),(0,K.jsx)(tw,{}),(0,K.jsx)(v.Suspense,{fallback:null,children:n?(0,K.jsx)(Vw,{repo:n},n.id):(0,K.jsx)(eT,{})}),(0,K.jsx)(tE,{colliders:i,floor:e}),(0,K.jsx)(nE,{}),(0,K.jsx)(Ub,{paused:a}),(0,K.jsx)(Gb,{onChange:s}),zb&&(0,K.jsx)(Jb,{paused:a})]})}function iE({held:e}){let t=(0,v.useRef)(null),n=e.reloadAt!==null;(0,v.useEffect)(()=>{if(!n)return;let r=0,i=()=>{let n=ow(e,performance.now());t.current&&(t.current.style.transform=`scaleX(${n??1})`),n!==null&&(r=requestAnimationFrame(i))};return i(),()=>cancelAnimationFrame(r)},[e,n]);let r=e.ammo===0&&!n;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`hud-hint hud-held`,children:[(0,K.jsx)(`kbd`,{children:`Click`}),` / `,(0,K.jsx)(`kbd`,{children:`F`}),` fire · `,(0,K.jsx)(`kbd`,{children:`R`}),` reload · `,(0,K.jsx)(`kbd`,{children:`G`}),` drop`]}),(0,K.jsxs)(`div`,{className:`hud-ammo ${r?`hud-ammo-empty`:``}`,children:[(0,K.jsxs)(`span`,{className:`hud-ammo-count`,children:[`🎯 `,lw(e,performance.now())]}),n&&(0,K.jsx)(`div`,{className:`hud-ammo-bar`,children:(0,K.jsx)(`div`,{ref:t,className:`hud-ammo-fill`})}),n&&(0,K.jsx)(`span`,{className:`hud-ammo-note`,children:`Reloading…`}),r&&(0,K.jsx)(`span`,{className:`hud-ammo-note`,children:`Empty: R to reload`})]})]})}function aE({at:e}){let t=(0,v.useRef)(null),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let r=0,i=()=>{let a=performance.now()-e,o=MT(a);t.current&&(t.current.className=`charge ${a>jT.tap?`charge-on`:``} ${o>=1?`charge-full`:``}`),n.current&&(n.current.style.transform=`scaleX(${o})`),o<1&&(r=requestAnimationFrame(i))};return i(),()=>cancelAnimationFrame(r)},[e]),(0,K.jsx)(`div`,{ref:t,className:`charge`,children:(0,K.jsx)(`div`,{ref:n,className:`charge-fill`})})}function oE(){let e=q(e=>e.held),t=q(e=>e.chargeAt);return e?e.kind===`blaster`?(0,K.jsx)(iE,{held:e}):(0,K.jsxs)(K.Fragment,{children:[t!==null&&(0,K.jsx)(aE,{at:t}),(0,K.jsxs)(`div`,{className:`hud-hint hud-held`,children:[(0,K.jsx)(`kbd`,{children:`Click`}),` / `,(0,K.jsx)(`kbd`,{children:`F`}),` throw · hold to charge · `,(0,K.jsx)(`kbd`,{children:`G`}),` drop`]})]}):null}var sE=[`tool`,`text`,`thinking`,`error`,`done`,`manager`],cE=e=>e.status===`working`||e.status===`preparing`,lE=`cubefarm:workers`;function uE(e){for(let t=e.length-1;t>=Math.max(0,e.length-80);t--){let n=e[t];if(!sE.includes(n.kind)||!n.text.trim())continue;let r=n.text.trim().replace(/^[⏺●✻✔⎿▶]\s*/u,``).replace(/^Manager:\s*/,`you: `);return{text:n.kind===`thinking`?`thinking…`:r,kind:n.kind,t:n.t}}return null}function dE(e){return e.role===`ceo`?e.issueTitle:e.task===`qa`?`QA · PR #${e.prNumber}`:e.task===`fix`?`fixing PR #${e.prNumber}`:e.issueNumber?`#${e.issueNumber}`:null}function fE(e,t){let n=Math.max(0,Math.round((t-e)/1e3));return n<60?`${n}s`:n<3600?`${Math.round(n/60)}m`:`${Math.round(n/3600)}h`}function pE({a:e,now:t}){let n=q(e=>e.openOverlay),r=uE(q(t=>t.logs[e.id])??[]),i=r&&(!e.startedAt||r.t>=e.startedAt)?r:null,a=dE(e);return(0,K.jsxs)(`button`,{className:`wk-row`,onClick:()=>n({kind:`terminal`,agentId:e.id}),title:`Watch ${e.name}'s screen`,children:[(0,K.jsx)(`span`,{className:`wk-dot`,style:{background:e.color}}),(0,K.jsxs)(`span`,{className:`wk-main`,children:[(0,K.jsxs)(`span`,{className:`wk-name`,children:[e.name,a&&(0,K.jsx)(`span`,{className:`wk-task`,children:a})]}),(0,K.jsxs)(`span`,{className:`wk-line`,children:[(0,K.jsx)(`span`,{className:`wk-last wk-last-${i?.kind??`none`}`,title:i?.text,children:e.status===`preparing`?`setting up the worktree…`:i?.text??(e.issueTitle?`working on ${e.issueTitle}`:`starting…`)}),i&&e.status!==`preparing`&&(0,K.jsx)(`span`,{className:`wk-ago`,children:fE(i.t,t)})]})]})]})}function mE(){try{return new Set(JSON.parse(localStorage.getItem(`${lE}:collapsed`)??`[]`))}catch{return new Set}}function hE(){let e=q(e=>e.floor),t=q(e=>e.repos),n=q(e=>e.agents),r=q(e=>e.started),[i,a]=(0,v.useState)(()=>{try{return localStorage.getItem(lE)!==`closed`}catch{return!0}}),[o,s]=(0,v.useState)(mE),[c,l]=(0,v.useState)(Date.now());(0,v.useEffect)(()=>{let e=setInterval(()=>l(Date.now()),5e3);return()=>clearInterval(e)},[]);let u=e=>s(t=>{let n=new Set(t);n.delete(e)||n.add(e);try{localStorage.setItem(`${lE}:collapsed`,JSON.stringify([...n]))}catch{}return n}),d=()=>a(e=>{try{localStorage.setItem(lE,e?`closed`:`open`)}catch{}return!e});if((0,v.useEffect)(()=>{let e=e=>{e.code!==`Tab`||e.repeat||e.altKey||e.ctrlKey||e.metaKey||q.getState().overlay||e.target?.closest?.(`input, textarea, select, [contenteditable="true"]`)||(e.preventDefault(),d())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),!r)return null;let f=n.ceo,p=[...t].sort((t,n)=>t.floor===e?-1:n.floor===e?1:t.floor-n.floor),m=[...f&&cE(f)?[{key:`hq`,label:`HQ`,title:`The CEO, in the lobby`,color:f.color,list:[f]}]:[],...p.map(e=>({key:e.id,label:`${e.floor} · ${e.fullName.split(`/`)[1]}`,title:`Floor ${e.floor}: ${e.fullName}`,color:e.color,list:jb(n,e.id).filter(cE)}))].filter(e=>e.list.length>0),h=m.reduce((e,t)=>e+t.list.length,0);return(0,K.jsxs)(`div`,{className:`workers ${i?``:`workers-closed`}`,children:[(0,K.jsxs)(`button`,{className:`wk-head`,onClick:d,title:i?`Hide the list (Tab)`:`Show who is working (Tab)`,children:[(0,K.jsxs)(`span`,{children:[`Working `,(0,K.jsx)(`b`,{children:h})]}),(0,K.jsxs)(`span`,{className:`wk-chevron`,children:[(0,K.jsx)(`kbd`,{children:`Tab`}),` `,i?`▾`:`▸`]})]}),i&&(0,K.jsxs)(`div`,{className:`wk-list`,children:[h===0&&(0,K.jsx)(`div`,{className:`wk-empty`,children:`Nobody is working right now.`}),m.map(e=>{let t=o.has(e.key);return(0,K.jsxs)(`div`,{className:`wk-group`,children:[(0,K.jsxs)(`button`,{className:`wk-group-head`,onClick:()=>u(e.key),title:`${e.title} · click to ${t?`expand`:`collapse`}`,children:[(0,K.jsx)(`span`,{className:`wk-group-arrow`,children:t?`▸`:`▾`}),(0,K.jsx)(`span`,{className:`wk-swatch`,style:{background:e.color}}),(0,K.jsx)(`span`,{className:`wk-group-name`,children:e.label}),(0,K.jsx)(`span`,{className:`wk-group-count`,children:e.list.length})]}),!t&&e.list.map(e=>(0,K.jsx)(pE,{a:e,now:c},e.id))]},e.key)})]})]})}var gE=12e5,_E=(e,t)=>`${e} ${t}${e===1?``:`s`}`;function vE(e){switch(e.state){case`none`:return`Up to date`;case`available`:return e.behind>0?`${_E(e.behind,`update`)} ready`:`An update is ready`;case`waiting`:case`draining`:return e.running>0?`Waiting for ${_E(e.running,`session`)} to finish`:`Updating shortly…`;case`updating`:return`Updating…`;case`failed`:return`Last update failed: ${e.detail||`unknown error`}`}}function yE(e){return e?e.state===`updating`?`⟳ Updating the office…`:e.state!==`waiting`&&e.state!==`draining`?null:e.running>0?`⟳ Updating the office after ${_E(e.running,`session`)} finish${e.running===1?`es`:``}`:`⟳ Updating the office shortly`:null}var bE=e=>e.state===`draining`&&e.drainingSince?e.drainingSince+gE:null,xE=e=>e.launcher&&e.behind>0&&(e.state===`available`||e.state===`waiting`||e.state===`failed`),SE=e=>e.launcher&&(e.state===`available`||e.state===`waiting`||e.state===`draining`),CE=e=>e?.state===`draining`||e?.state===`updating`;function wE(e,t,n){return!!e&&!!t&&e!==t&&n!==t}function TE(){let e=q(e=>e.restarting?`⟳ Office restarting…`:yE(e.officeUpdate)),t=q(e=>e.overlay),n=q(e=>e.openOverlay);return!e||t?.kind===`manager`?null:(0,K.jsx)(`button`,{className:`office-chip`,onClick:()=>n({kind:`manager`,tab:`floors`}),title:`The office is updating itself. Open the manager's console`,children:e})}function EE(){let e=Ib(),t=q(e=>e.started),n=q(e=>e.overlay),r=q(e=>e.openOverlay),i=q(e=>e.agents.ceo);if(!t||n?.kind===`phone`)return null;let a=i?.status===`working`;return(0,K.jsxs)(`button`,{className:`phone-btn ${e?`phone-btn-ring`:``}`,onClick:()=>r({kind:`phone`}),title:`Your phone (P)`,children:[(0,K.jsx)(`span`,{className:`phone-btn-icon`,children:`📱`}),e>0&&(0,K.jsx)(`span`,{className:`badge phone-btn-badge`,children:e}),(0,K.jsxs)(`span`,{className:`phone-btn-label`,children:[(0,K.jsx)(`kbd`,{children:`P`}),` `,e?`${e} waiting`:a?`${i.name} is working`:`Phone`]})]})}function DE(){let e=q(e=>e.floor),t=q(e=>e.repos),n=q(e=>e.agents),r=q(e=>e.settings),i=q(e=>e.connected),a=q(e=>e.restarting),o=q(e=>e.demo),s=q(e=>e.user),c=q(e=>e.ghReady),l=q(e=>e.ghError),u=q(e=>e.focus),d=q(e=>e.held),f=q(e=>e.overlay),p=q(e=>e.locked),m=q(e=>e.started),h=q(e=>e.travel),g=q(e=>e.toasts),_=q(e=>e.dismissToast),y=e===0?null:Ab(t,e),b=(0,v.useMemo)(()=>Object.values(n).filter(e=>e.status===`working`||e.status===`preparing`).length,[n]),x=y?Object.values(n).filter(e=>e.repoId===y.id):[],S=q(e=>e.qa),C=y?Object.values(S).filter(e=>e.repoId===y.id):[];return(0,K.jsxs)(`div`,{className:`hud`,children:[(0,K.jsxs)(`div`,{className:`hud-floor`,style:{"--accent":y?.color??`#ff8a5b`},children:[(0,K.jsx)(`div`,{className:`floor-num`,children:y?y.floor:`G`}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`floor-name`,children:y?y.fullName:`${r.companyName||`cubefarm`} · Lobby`}),(0,K.jsx)(`div`,{className:`floor-sub`,children:y?`${x.length} agents · ${x.filter(e=>e.status===`working`||e.status===`preparing`).length} working · ${C.filter(e=>e.status!==`passed`).length} in QA · ${C.filter(e=>e.status===`passed`).length} ready to merge`:`${t.length} floor${t.length===1?``:`s`} connected`})]})]}),(0,K.jsxs)(`div`,{className:`hud-status`,children:[o&&(0,K.jsx)(`span`,{className:`pill pill-demo`,children:`DEMO`}),(0,K.jsx)(`span`,{className:`pill ${i?`pill-ok`:a?`pill-demo`:`pill-bad`}`,children:i?`● live`:a?`○ restarting`:`○ reconnecting`}),(0,K.jsxs)(`span`,{className:`pill`,children:[`⚙️ `,r.sessionLimit?`${b}/${r.sessionLimit}`:b,` sessions`]}),s&&(0,K.jsxs)(`span`,{className:`pill`,children:[`🐙 `,s]})]}),(0,K.jsx)(hE,{}),(0,K.jsx)(TE,{}),!c&&l&&(0,K.jsxs)(`div`,{className:`hud-banner`,children:[`⚠️ `,l]}),m&&!f&&!h&&(0,K.jsx)(`div`,{className:`crosshair ${u?`crosshair-hot`:``}`}),m&&!f&&u&&(0,K.jsxs)(`div`,{className:`hud-hint`,children:[(0,K.jsx)(`kbd`,{children:`E`}),` `,!d&&(0,K.jsxs)(K.Fragment,{children:[`/ `,(0,K.jsx)(`kbd`,{children:`Click`}),` `]}),u.label]}),m&&!f&&!h&&(0,K.jsx)(oE,{}),m&&!f&&!p&&!h&&(0,K.jsx)(`div`,{className:`hud-resume`,children:`Click to look around`}),m&&!(r.setupDone&&r.tutorialStep>=0)&&(0,K.jsxs)(`div`,{className:`hud-help`,children:[(0,K.jsx)(`kbd`,{children:`WASD`}),` move · `,(0,K.jsx)(`kbd`,{children:`Shift`}),` run · `,(0,K.jsx)(`kbd`,{children:`E`}),` / `,(0,K.jsx)(`kbd`,{children:`Click`}),` interact · `,(0,K.jsx)(`kbd`,{children:`P`}),` phone · `,(0,K.jsx)(`kbd`,{children:`Tab`}),` workers · `,(0,K.jsx)(`kbd`,{children:`H`}),` help · `,(0,K.jsx)(`kbd`,{children:`Esc`}),` free mouse`]}),(0,K.jsx)(`div`,{className:`fade ${h?.phase===`closing`?`fade-in`:``}`,children:h&&(0,K.jsx)(`div`,{className:`fade-label`,children:h.to===0?`Lobby`:`Floor ${h.to}`})}),(0,K.jsx)(EE,{}),(0,K.jsx)(`div`,{className:`toasts`,children:g.map(e=>(0,K.jsx)(`div`,{className:`toast toast-${e.level}`,onClick:()=>_(e.id),children:e.text},e.id))})]})}var OE={unconfigured:`not set up`,stopped:`stopped`,preparing:`checking out`,installing:`installing`,starting:`starting`,running:`running`,error:`error`},kE=[`preparing`,`installing`,`starting`,`running`],AE=[{status:`preparing`,label:`Check out the code`},{status:`installing`,label:`Install dependencies`},{status:`starting`,label:`Start the app`}],jE=`desktop`,ME=12e3;function NE({status:e}){return(0,K.jsx)(`span`,{className:`status status-${e}`,children:OE[e]})}var PE=e=>Object.entries(e).map(([e,t])=>`${e}=${t}`).join(`
|
|
4284
|
+
}`);function jy({color:e=`black`,opacity:t=1,transparent:n=!1,screenspace:r=!1,toneMapped:i=!0,polygonOffset:a=!1,polygonOffsetFactor:o=0,renderOrder:s=0,thickness:c=.05,angle:l=Math.PI,clippingPlanes:u,...d}){let f=v.useRef(null),[p]=v.useState(()=>new Ay({side:1})),{gl:m}=W_(),h=m.getDrawingBufferSize(new B);v.useMemo(()=>xv({OutlinesMaterial:Ay}),[]);let g=v.useRef(0),_=v.useRef(null);return v.useLayoutEffect(()=>{let e=f.current;if(!e)return;let t=e.parent;if(t&&t.geometry&&(g.current!==l||_.current!==t.geometry)){g.current=l,_.current=t.geometry;let n=e.children?.[0];n&&(l&&n.geometry.dispose(),e.remove(n)),t.skeleton?(n=new ro,n.material=p,n.bind(t.skeleton,t.bindMatrix),e.add(n)):t.isInstancedMesh?(n=new vo(t.geometry,p,t.count),n.instanceMatrix=t.instanceMatrix,e.add(n)):(n=new Ga,n.material=p,e.add(n)),n.geometry=l?Dy(t.geometry,l):t.geometry,n.morphTargetInfluences=t.morphTargetInfluences,n.morphTargetDictionary=t.morphTargetDictionary}}),v.useLayoutEffect(()=>{let l=f.current;if(!l)return;let d=l.children[0];if(d){d.renderOrder=s;let f=l.parent;j_(d,{morphTargetInfluences:f.morphTargetInfluences,morphTargetDictionary:f.morphTargetDictionary}),j_(d.material,{transparent:n,thickness:c,color:e,opacity:t,size:h,screenspace:r,toneMapped:i,polygonOffset:a,polygonOffsetFactor:o,clippingPlanes:u,clipping:u&&u.length>0})}}),v.useEffect(()=>()=>{let e=f.current;if(!e)return;let t=e.children[0];t&&(l&&t.geometry.dispose(),e.remove(t))},[]),v.createElement(`group`,xy({ref:f},d))}var My=`modulepreload`,Ny=function(e){return`/`+e},Py={},Fy=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Ny(t,n),t=s(t),t in Py)return;Py[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:My,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Iy=(0,v.createContext)(null);function Ly({iterations:e=10,ms:t=250,threshold:n=.75,step:r=.1,factor:i=.5,flipflops:a=1/0,bounds:o=e=>e>100?[60,100]:[40,60],onIncline:s,onDecline:c,onChange:l,onFallback:u,children:d}){let[f,p]=(0,v.useState)(()=>({fps:0,index:0,factor:i,flipped:0,refreshrate:0,fallback:!1,frames:[],averages:[],subscriptions:new Map,subscribe:e=>{let t=Symbol();return f.subscriptions.set(t,e.current),()=>void f.subscriptions.delete(t)}})),m=0;return G_(()=>{let{frames:i,averages:d}=f;if(!f.fallback&&d.length<e){i.push(performance.now());let p=i[i.length-1]-i[0];if(p>=t){if(f.fps=Math.round(i.length/p*1e3*1)/1,f.refreshrate=Math.max(f.refreshrate,f.fps),d[f.index++%e]=f.fps,d.length===e){let[t,i]=o(f.refreshrate),p=d.filter(e=>e>=i),h=d.filter(e=>e<t);p.length>e*n&&(f.factor=Math.min(1,f.factor+r),f.flipped++,s&&s(f),f.subscriptions.forEach(e=>e.onIncline&&e.onIncline(f))),h.length>e*n&&(f.factor=Math.max(0,f.factor-r),f.flipped++,c&&c(f),f.subscriptions.forEach(e=>e.onDecline&&e.onDecline(f))),m!==f.factor&&(m=f.factor,l&&l(f),f.subscriptions.forEach(e=>e.onChange&&e.onChange(f))),f.flipped>a&&!f.fallback&&(f.fallback=!0,u&&u(f),f.subscriptions.forEach(e=>e.onFallback&&e.onFallback(f))),f.averages=[]}f.frames=[]}}}),v.createElement(Iy.Provider,{value:f},d)}function Ry(e,t){let n=new Set;for(let r of(e??``).matchAll(/\b(?:depends\s+on|blocked\s+by)\s*:?\s*((?:#\d+(?:\s*(?:,|and|&)\s*)?)+)/gi))for(let e of r[1].matchAll(/#(\d+)/g))t.has(Number(e[1]))&&n.add(Number(e[1]));return[...n]}var zy=`cubefarm:audio`;function By(){try{let e=JSON.parse(localStorage.getItem(zy)??`null`),t=Number(e?.volume);return{volume:Number.isFinite(t)?Math.max(0,Math.min(100,Math.round(t))):70,muted:e?.muted===!0}}catch{return{volume:70,muted:!1}}}var Vy=By(),Hy=new Set,Uy=null,Wy=null,Gy=!1,Ky=()=>Vy.muted?0:(Vy.volume/100)**2;function qy(){if(!Gy)return null;try{if(!Uy){let e=window.AudioContext??window.webkitAudioContext;if(!e)return null;Uy=new e,Wy=Uy.createGain(),Wy.gain.value=Ky(),Wy.connect(Uy.destination)}return Uy.state===`suspended`&&Uy.resume().catch(()=>void 0),Uy.state===`running`&&Wy?{ctx:Uy,out:Wy}:null}catch{return null}}function Jy(){Gy=!0,qy()}for(let e of[`pointerdown`,`keydown`])window.addEventListener(e,Jy,{once:!0,capture:!0});var Yy=()=>Vy;function Xy(e){return Hy.add(e),()=>void Hy.delete(e)}function Zy(e){Vy={...Vy,...e,volume:Math.max(0,Math.min(100,Math.round(e.volume??Vy.volume)))};try{localStorage.setItem(zy,JSON.stringify(Vy))}catch{}if(Uy&&Wy)try{Wy.gain.cancelScheduledValues(Uy.currentTime),Wy.gain.setTargetAtTime(Ky(),Uy.currentTime,.015)}catch{}for(let e of Hy)e()}var Qy=()=>Zy({muted:!Vy.muted});function $y({freq:e,to:t,type:n=`sine`,at:r=0,dur:i,peak:a,attack:o=.015}){let s=qy();if(s)try{let c=s.ctx.currentTime+r,l=s.ctx.createOscillator(),u=s.ctx.createGain();l.type=n,l.frequency.setValueAtTime(e,c),t&&l.frequency.exponentialRampToValueAtTime(t,c+i),u.gain.setValueAtTime(1e-4,c),u.gain.exponentialRampToValueAtTime(a,c+o),u.gain.exponentialRampToValueAtTime(1e-4,c+i),l.connect(u).connect(s.out),l.start(c),l.stop(c+i+.05)}catch{}}var eb=null;function tb({at:e=0,dur:t,peak:n,filter:r=`lowpass`,freq:i,to:a,q:o=1,attack:s=.005}){let c=qy();if(c)try{if(!eb||eb.sampleRate!==c.ctx.sampleRate){eb=c.ctx.createBuffer(1,c.ctx.sampleRate*2,c.ctx.sampleRate);let e=eb.getChannelData(0);for(let t=0;t<e.length;t++)e[t]=Math.random()*2-1}let l=c.ctx.currentTime+e,u=c.ctx.createBufferSource();u.buffer=eb;let d=c.ctx.createBiquadFilter();d.type=r,d.Q.value=o,d.frequency.setValueAtTime(i,l),a&&d.frequency.exponentialRampToValueAtTime(a,l+t);let f=c.ctx.createGain();f.gain.setValueAtTime(1e-4,l),f.gain.exponentialRampToValueAtTime(n,l+s),f.gain.exponentialRampToValueAtTime(1e-4,l+t),u.connect(d).connect(f).connect(c.out),u.start(l,Math.random()),u.stop(l+t+.05)}catch{}}var nb=-1/0;function rb(){performance.now()-nb<800||(nb=performance.now(),[1046.5,1568].forEach((e,t)=>$y({freq:e,type:`triangle`,at:t*.11,dur:.18,peak:.12})))}function ib(){$y({freq:660,to:1320,type:`square`,dur:.12,peak:.035}),$y({freq:1320,to:990,type:`triangle`,at:.12,dur:.1,peak:.08}),$y({freq:1760,type:`triangle`,at:.24,dur:.18,peak:.07})}function ab(){[880,1318.5].forEach((e,t)=>$y({freq:e,at:t*.16,dur:1.1,peak:.18,attack:.02}))}function ob(e=.75){tb({dur:e,peak:.1,filter:`bandpass`,freq:220,to:900,q:.8,attack:e*.45}),$y({freq:70,to:55,dur:e,peak:.05,attack:e*.4})}function sb(){tb({dur:.09,peak:.1,filter:`bandpass`,freq:2600,to:900,q:1.4,attack:.003}),$y({freq:520,to:190,type:`triangle`,dur:.08,peak:.07,attack:.004})}function cb(){$y({freq:520,to:330,dur:.16,peak:.13,attack:.008}),$y({freq:1040,to:660,type:`triangle`,dur:.07,peak:.025,attack:.004})}function lb(){tb({dur:.28,peak:.07,filter:`bandpass`,freq:350,to:2400,q:2.2,attack:.05}),$y({freq:220,to:660,type:`triangle`,dur:.24,peak:.035,attack:.03}),tb({at:.24,dur:.05,peak:.05,filter:`bandpass`,freq:1800,q:1.5,attack:.002})}function ub(e=!1){tb({dur:e?.09:.12,peak:e?.07:.045,freq:(e?700:480)*(.9+Math.random()*.2),q:.7})}var db=0;function fb(e,t,n){let r=Math.floor(e/Math.PI);t&&r!==db&&ub(n),db=r}function pb(){tb({dur:.3,peak:.14,filter:`bandpass`,freq:5200,to:2600,q:.8,attack:.03}),tb({at:.18,dur:.9,peak:.05,filter:`bandpass`,freq:900,to:1500,q:.5,attack:.2}),[784,988,1318.5].forEach((e,t)=>$y({freq:e,type:`triangle`,at:.2+t*.08,dur:.3,peak:.06}))}var mb={error:{rank:5,play:()=>[0,.2].forEach(e=>$y({freq:110,type:`sawtooth`,at:e,dur:.16,peak:.035,attack:.02}))},qaFailed:{rank:4,play:()=>{$y({freq:392,to:370,type:`triangle`,dur:.26,peak:.12}),$y({freq:311,to:196,type:`triangle`,at:.26,dur:.55,peak:.12})}},ready:{rank:3,play:()=>[784,988,1175,1568].forEach((e,t)=>$y({freq:e,type:`triangle`,at:t*.07,dur:.28,peak:.09}))},merged:{rank:2,play:()=>{tb({dur:.07,peak:.16,filter:`bandpass`,freq:1400,q:1.2,attack:.002}),$y({freq:523,to:1046,type:`square`,at:.04,dur:.12,peak:.04}),[1046.5,1318.5,1568].forEach(e=>$y({freq:e,type:`triangle`,at:.14,dur:.5,peak:.05})),tb({at:.12,dur:.6,peak:.03,filter:`bandpass`,freq:2500,q:.6,attack:.08})}},welcome:{rank:1,play:()=>[659,784,1046.5].forEach((e,t)=>$y({freq:e,type:`sine`,at:t*.12,dur:t===2?.5:.2,peak:.12}))}},hb=150,gb=1e3,_b=null,vb=null,yb=0,bb=-1/0,xb=(e,t)=>e&&mb[e].rank>=mb[t].rank?e:t;function Sb(e){let t=performance.now();t-bb<gb&&mb[e].rank<=yb&&!_b||(_b=xb(_b,e),!vb&&(vb=setTimeout(Cb,Math.max(hb,bb+gb-t))))}function Cb(){vb=null;let e=_b;_b=null,e&&(bb=performance.now(),yb=mb[e].rank,mb[e].play())}var wb=1,Tb=`cubefarm:view`;function Eb(){try{let e=JSON.parse(localStorage.getItem(Tb)??`null`);return e&&[e.floor,e.x,e.z,e.yaw,e.pitch].every(Number.isFinite)?e:null}catch{return null}}function Db(e){try{localStorage.setItem(Tb,JSON.stringify(e))}catch{}}var Ob=600,q=Ty((e,t)=>({connected:!1,loaded:!1,user:null,ghReady:!0,demo:!1,workspaceRoot:``,settings:{sessionLimit:0,defaultModel:`claude-opus-5-5`,defaultEffort:`medium`,runtime:`terminal`,defaultCli:`claude`,hiring:`approve`,teamCap:6,ceoHeartbeatMin:60,managerName:``,companyName:``,projectsDir:``,setupDone:!0,tutorialStep:-1,pacingSessions:3},clis:[],repos:[],agents:{},logs:{},screens:{},qa:{},requests:[],ceo:{queue:[],job:null,lastReviewAt:null,nextReviewAt:null},messages:[],phoneReadAt:0,usage:{state:`normal`,until:null},restarting:!1,floor:Eb()?.floor??0,travel:null,overlay:null,focus:null,locked:!1,started:!1,toasts:[],held:null,chargeAt:null,apply(n){let r=t().loaded;switch(n.type){case`snapshot`:{let r=n.data,i={},a={},o={};for(let{log:e,...t}of r.agents)i[t.id]=t,a[t.id]=e,t.screenshotAt&&(o[t.id]=t.screenshotAt);let s={};for(let e of r.qa)s[kb(e.repoId,e.prNumber)]=e;let c=r.repos.some(e=>e.floor===t().floor);e({loaded:!0,user:r.user,ghReady:r.ghReady,ghError:r.ghError,demo:r.demo,workspaceRoot:r.workspaceRoot,settings:r.settings,repos:r.repos.sort((e,t)=>e.floor-t.floor),agents:i,logs:a,screens:o,qa:s,requests:r.requests,ceo:r.ceo,messages:r.messages,phoneReadAt:r.phoneReadAt,officeCommit:r.officeCommit,officeUpdate:r.officeUpdate,usage:r.usage,clis:r.clis??[],restarting:!1,floor:c?t().floor:0});break}case`repo`:{let i=t().repos.find(e=>e.id===n.repo.id),a=new Set(i?.pulls.filter(e=>e.state===`OPEN`).map(e=>e.number));r&&n.repo.pulls.some(e=>e.state===`MERGED`&&a.has(e.number))&&Sb(`merged`);let o=t().repos.filter(e=>e.id!==n.repo.id);o.push(n.repo),e({repos:o.sort((e,t)=>e.floor-t.floor)});break}case`repoRemoved`:{let r=t().repos.filter(e=>e.id!==n.repoId);e({repos:r,floor:t().floor>r.length?0:t().floor});break}case`agent`:{let i=t().agents[n.agent.id];r&&!i&&n.agent.role!==`ceo`&&Sb(`welcome`),r&&i&&i.status!==`error`&&n.agent.status===`error`&&Sb(`error`),e({agents:{...t().agents,[n.agent.id]:n.agent}});break}case`agentRemoved`:{let{[n.agentId]:r,...i}=t().agents;e({agents:i});break}case`log`:{let r=(t().logs[n.agentId]??[]).concat(n.lines);e({logs:{...t().logs,[n.agentId]:r.length>Ob?r.slice(-600):r}});break}case`screen`:{let r=t().agents[n.agentId];e({screens:{...t().screens,[n.agentId]:n.at},agents:r?{...t().agents,[n.agentId]:{...r,hasScreenshot:!0,screenshotAt:n.at,browserUrl:n.url??r.browserUrl}}:t().agents});break}case`qa`:{let i=t().qa[kb(n.qa.repoId,n.qa.prNumber)]?.status,a=e=>e===`failed`||e===`needs-human`;r&&n.qa.status===`passed`&&i!==`passed`&&Sb(`ready`),r&&a(n.qa.status)&&!a(i)&&Sb(`qaFailed`),e({qa:{...t().qa,[kb(n.qa.repoId,n.qa.prNumber)]:n.qa}});break}case`qaRemoved`:{let{[kb(n.repoId,n.prNumber)]:r,...i}=t().qa;e({qa:i});break}case`settings`:e({settings:n.settings});break;case`clis`:e({clis:n.clis});break;case`request`:{let i=t().requests.find(e=>e.id===n.request.id);r&&n.request.kind===`hire`&&n.request.status===`approved`&&i?.status===`pending`&&Sb(`welcome`);let a=t().requests.filter(e=>e.id!==n.request.id);a.push(n.request),e({requests:a.sort((e,t)=>e.createdAt-t.createdAt)});break}case`ceo`:e({ceo:n.ceo});break;case`message`:{e({messages:[...t().messages.slice(-199),n.message]});let r=t().overlay,i=r?.kind===`phone`&&(r.tab??`chat`)===`chat`;if(n.message.from===`ceo`&&!i){rb();let e=t().agents.ceo?.name??`CEO`,r=n.message.text.replace(/\s+/g,` `);t().pushToast(`info`,`📱 ${e}: ${r.length>110?`${r.slice(0,109)}…`:r}`)}break}case`phoneRead`:e({phoneReadAt:Math.max(t().phoneReadAt,n.at)});break;case`toast`:t().pushToast(n.level,n.text);break;case`officeUpdate`:e({officeUpdate:n.officeUpdate});break;case`usage`:e({usage:n.usage})}},setConnected:t=>e({connected:t}),setRestarting:t=>e({restarting:t}),setOfficeUpdate:t=>e({officeUpdate:t}),openOverlay(t){e(t?{overlay:t,focus:null,held:null,chargeAt:null}:{overlay:t}),t&&document.pointerLockElement&&document.exitPointerLock()},setFocus:n=>{let r=t().focus;(r?.id!==n?.id||r?.label!==n?.label)&&e({focus:n})},setHeld:t=>e({held:t,chargeAt:null}),setCharge:t=>e({chargeAt:t}),setLocked:t=>e({locked:t}),start:()=>e({started:!0}),goToFloor(n){if(n===t().floor||t().travel){e({overlay:null});return}e({overlay:null,held:null,chargeAt:null,travel:{to:n,phase:`closing`}})},finishTravel(n){let r=t().travel;r&&e(n===`arrived`?{floor:r.to,travel:{...r,phase:`opening`}}:{travel:null})},pushToast(n,r){let i=wb++;e({toasts:[...t().toasts.slice(-4),{id:i,level:n,text:r}]}),setTimeout(()=>t().dismissToast(i),n===`error`?9e3:5e3)},dismissToast:n=>e({toasts:t().toasts.filter(e=>e.id!==n)})})),kb=(e,t)=>`${e}#${t}`,Ab=(e,t)=>e.find(e=>e.floor===t)??null,jb=(e,t)=>Object.values(e).filter(e=>e.repoId===t).sort((e,t)=>e.role===t.role?e.desk-t.desk:e.role===`dev`?-1:1),Mb=e=>e?.kind===`kanban`||e?.kind===`terminal`||e?.kind===`manager`,Nb=e=>e.status===`preparing`||e.status===`working`,Pb=(e,t)=>e.filter(e=>e.from===`ceo`&&!e.requestId&&e.at>t).length,Fb=e=>e.filter(e=>e.status===`pending`);function Ib(){let e=q(e=>e.requests),t=q(e=>e.messages),n=q(e=>e.phoneReadAt);return Fb(e).length+Pb(t,n)}function Lb(e,t,n){let r=e.pulls.filter(e=>e.state===`OPEN`),i=new Map(t.map(e=>[e.id,e])),a=t.filter(e=>e.role===`dev`),o=(e,t)=>a.find(t=>t.prNumber===e)??a.find(e=>e.branch&&e.branch===t),s=[];for(let e of a){if(e.issueNumber==null||e.task!==`issue`||e.status===`idle`||e.prNumber!=null&&r.some(t=>t.number===e.prNumber))continue;let t=e.status===`preparing`?`setting up`:e.status===`working`?`working`:e.status===`error`?`needs help`:e.status===`stopped`?`stopped`:`finished · no PR`;s.push({key:`a-${e.id}`,number:e.issueNumber,title:e.issueTitle??``,agent:e,note:t,tone:e.status===`error`?`bad`:e.status===`stopped`||e.status===`done`?`warn`:void 0})}let c=[],l=[];for(let t of r){let r=n[kb(e.id,t.number)],a=(r?.devAgentId?i.get(r.devAgentId):void 0)??o(t.number,t.headRefName),s=r?.qaAgentId?i.get(r.qaAgentId):void 0,u={key:`pr-${t.number}`,number:t.number,prNumber:t.number,title:t.title,url:t.url,qa:r};if(r?.status===`passed`){l.push({...u,agent:a,note:r.mergeNote?`QA ✓ · ${r.mergeNote}`:t.mergeable===`CONFLICTING`?`QA ✓ · conflicts`:t.checks===`failing`?`QA ✓ · CI failing`:e.autoMerge&&t.checks===`pending`?`QA ✓ · waiting for checks`:`✅ QA passed`,tone:t.mergeable===`CONFLICTING`||t.checks===`failing`?`warn`:`good`});continue}let d=r?.status;c.push({...u,agent:d===`testing`?s:a,note:d===`queued`?`waiting for QA${r&&r.round>1?` · round ${r.round}`:``}`:d===`testing`?`🔍 testing · round ${r.round}`:d===`failed`?`❌ failed · back to dev`:d===`fixing`?`🔧 fixing · round ${r.round}`:d===`needs-human`?`⚠️ needs you${r.mergeNote?` · ${r.mergeNote}`:``}`:t.isDraft?`draft`:`not tested yet`,tone:d===`failed`||d===`needs-human`?`bad`:d===`fixing`||!d?`warn`:void 0})}let u=new Set([...s.map(e=>e.number),...r.flatMap(e=>e.closesIssues)]),d=new Set(e.issues.map(e=>e.number));return{backlog:e.issues.filter(e=>!u.has(e.number)).map(e=>{let t=Ry(e.body,d),n=e.labels.map(e=>e.replace(/^swarm:/i,`🎯 `)).slice(0,2).join(`, `);return{key:`i-${e.number}`,number:e.number,title:e.title,url:e.url,note:t.length?`⏳ after #${t.join(`, #`)}`:n||void 0}}),progress:s,qa:c,ready:l,merged:e.pulls.filter(e=>e.state===`MERGED`).sort((e,t)=>(t.mergedAt??``).localeCompare(e.mergedAt??``)).map(e=>({key:`m-${e.number}`,number:e.number,prNumber:e.number,title:e.title,url:e.url,agent:o(e.number,e.headRefName)}))}}var Rb=1.75,zb=new URLSearchParams(window.location.search).has(`stats`);function Bb(e){return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)}function Vb(){return(0,v.useSyncExternalStore)(Bb,()=>document.hidden)}function Hb(){let e=q(e=>Mb(e.overlay)),t=Vb();return e||t}function Ub({paused:e}){let t=W_(e=>e.size),n=W_(e=>e.viewport.dpr),r=W_(e=>e.advance),i=W_(e=>e.clock),a=(0,v.useRef)({size:t,dpr:n});return(0,v.useEffect)(()=>{let o=a.current.size!==t||a.current.dpr!==n;a.current={size:t,dpr:n},e&&o&&r(i.elapsedTime)},[e,t,n,r,i]),null}function Wb(e){let t=e>130?144:e>100?120:60;return[Math.round(t*.6),Math.round(t*.9)]}function Gb({onChange:e}){let t=({factor:t})=>e(Math.round((1+.75*t)*100)/100);return(0,K.jsx)(Ly,{factor:1,step:.25,bounds:Wb,onIncline:t,onDecline:t})}var Kb=null,qb=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:String(e);function Jb({paused:e}){let t=W_(e=>e.gl),n=(0,v.useRef)({start:0,prev:0,frames:0});return(0,v.useEffect)(()=>{n.current.start=0},[e]),G_(()=>{let e=performance.now(),r=n.current;(!r.start||e-r.prev>1e3)&&(r.start=e,r.frames=0),r.prev=e,r.frames++;let i=e-r.start;if(i<500||!Kb)return;let{calls:a,triangles:o}=t.info.render,s=r.frames*1e3/i;Kb.textContent=`${Math.round(s)} fps · ${(i/r.frames).toFixed(1)} ms · ${a} calls · ${qb(o)} tris · dpr ${t.getPixelRatio().toFixed(2)}`,r.start=e,r.frames=0}),null}function Yb(){let e=Hb();return(0,K.jsxs)(`div`,{className:`stats`,"aria-hidden":`true`,children:[(0,K.jsx)(`span`,{ref:e=>{Kb=e},hidden:e,children:`measuring…`}),e&&(0,K.jsx)(`span`,{children:`⏸ 3D view paused`})]})}var Xb=3.6,Zb=1.65,Qb=.3,$b={doorHalf:1.2,cabinHalf:1.5,depth:2.6,doorHeight:2.5},ex={x:0,z:10.4,yaw:0},tx=(e,t,n,r,i)=>({minX:e-n/2,maxX:e+n/2,minZ:t-r/2,maxZ:t+r/2,h:i}),nx={desk:.78,seated:1.3,board:3.45,couch:.95,coffeeTable:.5,kitchen:2,cooler:1.5,bookshelf:2.2,cabinet:2.1,reception:1.13,glass:2.8};function rx(){let e=.4,{doorHalf:t,cabinHalf:n,depth:r}=$b;return[{minX:-16.4,maxX:16.4,minZ:-12.4,maxZ:-12},{minX:-16.4,maxX:-16,minZ:-12,maxZ:12},{minX:16,maxX:16.4,minZ:-12,maxZ:12},{minX:-16,maxX:-t,minZ:12,maxZ:12.4},{minX:t,maxX:16,minZ:12,maxZ:12.4},{minX:-n-e,maxX:-n,minZ:12,maxZ:12+r},{minX:n,maxX:n+e,minZ:12,maxZ:12+r},{minX:-n,maxX:n,minZ:12+r,maxZ:12+r+e}]}var ix=()=>({minX:-$b.doorHalf,maxX:$b.doorHalf,minZ:12,maxZ:12.4}),ax=[-10.5,-3.5,3.5,10.5],ox=[-6.2,-1.6,3],sx=ax.length*ox.length,cx={w:1.9,d:.95,h:.74};function lx(e){let t=ox.length-1-Math.floor(e/ax.length)%ox.length;return{x:ax[e%ax.length],z:ox[t]}}var ux={w:12,h:3,y:.45,z:-11.94},dx={x:-13.7,y:2.25,w:3.2,h:1.8,bezel:.09,depth:.12},fx={officeX:-10,lobbyX:-12.9,w:1.3,d:.3,h:1.85},px=e=>tx(e,12-fx.d/2,fx.w,fx.d,fx.h),mx={x:14,stations:[-5.2,-2,1.2]},hx=-Math.PI/2,gx=e=>({x:mx.x,z:mx.stations[e%mx.stations.length]});function _x(){let e=rx();for(let t=0;t<sx;t++){let{x:n,z:r}=lx(t);e.push(tx(n,r,cx.w+.1,cx.d+.1,nx.desk)),e.push(tx(n,r+.8,.7,.6,nx.seated))}for(let t of mx.stations)e.push(tx(mx.x,t,cx.d+.1,cx.w+.1,nx.desk)),e.push(tx(mx.x-.8,t,.6,.7,nx.seated));e.push(tx(0,-11.75,ux.w+.4,.5,nx.board));let t=dx;return e.push(tx(t.x,-12+t.depth/2,t.w+t.bezel*2,t.depth,t.y+t.h/2+t.bezel)),e.push(tx(-15.1,6.5,1.1,3.2,nx.couch)),e.push(tx(-13.4,6.5,.9,1.4,nx.coffeeTable)),e.push(px(fx.officeX)),e.push(tx(15.55,7.4,.9,5,nx.kitchen)),e.push(tx(15.5,-9.5,.7,.7,nx.cooler)),e}var vx={minX:-16,maxX:-6.5,minZ:-12,maxZ:-3.5,doorMinX:-11,doorMaxX:-9.2},yx={x:-11.2,z:-8.6,w:2.6,d:1.1},bx={x:3,z:-3.5,w:5,d:1.2},xx={minX:6.5,maxX:16,minZ:-12,maxZ:-3.5,doorMinX:8.2,doorMaxX:10},Sx={x:12,z:-7.4},Cx={x:14.6,seats:[6.6,7.9,9.2,10.4]},wx=Math.PI/2;function Tx(){let e=rx(),t=vx,n=.12;e.push({minX:t.maxX-n,maxX:t.maxX+n,minZ:t.minZ,maxZ:t.maxZ,h:nx.glass}),e.push({minX:t.minX,maxX:t.doorMinX,minZ:t.maxZ-n,maxZ:t.maxZ+n,h:nx.glass}),e.push({minX:t.doorMaxX,maxX:t.maxX,minZ:t.maxZ-n,maxZ:t.maxZ+n,h:nx.glass});let r=xx;e.push({minX:r.minX-n,maxX:r.minX+n,minZ:r.minZ,maxZ:r.maxZ,h:nx.glass}),e.push({minX:r.minX,maxX:r.doorMinX,minZ:r.maxZ-n,maxZ:r.maxZ+n,h:nx.glass}),e.push({minX:r.doorMaxX,maxX:r.maxX,minZ:r.maxZ-n,maxZ:r.maxZ+n,h:nx.glass}),e.push(tx(Sx.x,Sx.z,cx.w+.1,cx.d+.1,nx.desk)),e.push(tx(Sx.x,Sx.z+.8,.7,.6,nx.seated));for(let t of Cx.seats)e.push(tx(Cx.x,t,.7,.7,nx.seated));return e.push(tx(yx.x,yx.z,yx.w,yx.d,nx.desk)),e.push(tx(yx.x,yx.z-1.1,.8,.8,nx.seated)),e.push(tx(-15.6,-8,.8,5,nx.bookshelf)),e.push(px(fx.lobbyX)),e.push(tx(bx.x,bx.z,bx.w,bx.d,nx.reception)),e.push(tx(11.5,4,3.2,1,nx.couch)),e.push(tx(11.5,6.2,1.6,.9,nx.coffeeTable)),e.push(tx(12,-11.45,4.4,1.1,nx.cabinet)),e}function Ex(e,t,n,r=Qb){for(let i=0;i<2;i++)for(let i of n){let n=i.minX-r,a=i.maxX+r,o=i.minZ-r,s=i.maxZ+r;if(e<=n||e>=a||t<=o||t>=s)continue;let c=[n-e,a-e,o-t,s-t],l=c.map(Math.abs),u=l.indexOf(Math.min(...l));u<2?e+=c[u]:t+=c[u]}return{x:e,z:t}}var Dx=[`#ffffff`,`#ffd166`,`#ef476f`,`#06d6a0`,`#118ab2`,`#2b2d42`],Ox=[`quiff`,`afro`,`bun`,`curls`],kx={feminine:[[`long`,4],[`ponytail`,3],[`bun`,3],[`curls`,2],[`afro`,2],[`sidePart`,2],[`buzz`,1]],masculine:[[`crop`,2],[`quiff`,3],[`sidePart`,3],[`buzz`,2],[`bald`,2],[`curls`,2],[`afro`,2],[`long`,1],[`ponytail`,1],[`bun`,1]]};function Ax(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function jx(e){let t=e;return()=>{t=t+1831565813|0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}function Mx(e,t){let n=e*t.reduce((e,[,t])=>e+t,0);for(let[e,r]of t)if((n-=r)<0)return e;return t[t.length-1][0]}function Nx(e){let t=jx(Ax(e.id)),[n,r,i,a,o,s,c,l,u]=Array.from({length:9},t),d=e.role===`dev`,f=e.look===`masculine`,p=Mx(n,kx[e.look]),m=f?Mx(r,[[`none`,5],[`stubble`,2],[`beard`,2],[`moustache`,1]]):`none`,h=e.role===`qa`?`none`:Mx(i,[[`none`,6],[`round`,2],[`square`,2]]),g=d&&p!==`afro`&&a<.3;return{hair:p,facialHair:m,glasses:h,headphones:g,headwear:d&&!g&&!Ox.includes(p)?Mx(o,[[`none`,7],[`beanie`,1],[`cap`,1]]):`none`,outfit:d?Mx(s,[[`tee`,1],[`hoodie`,1],[`stripe`,1],[`sweater`,1]]):`tee`,height:+(.94+c*.12).toFixed(3),shoulders:+(.92+l*.16).toFixed(3),accent:Math.floor(u*Dx.length)}}function Px(e,t=!1){let n=e[0].index!==null,r=new Set(Object.keys(e[0].attributes)),i=new Set(Object.keys(e[0].morphAttributes)),a={},o={},s=e[0].morphTargetsRelative,c=new W,l=0;for(let u=0;u<e.length;++u){let d=e[u],f=0;if(n!==(d.index!==null))return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.`),null;for(let e in d.attributes){if(!r.has(e))return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. All geometries must have compatible attributes; make sure "`+e+`" attribute exists among all geometries, or in none of them.`),null;a[e]===void 0&&(a[e]=[]),a[e].push(d.attributes[e]),f++}if(f!==r.size)return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. Make sure all geometries have the same number of attributes.`),null;if(s!==d.morphTargetsRelative)return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. .morphTargetsRelative must be consistent throughout all geometries.`),null;for(let e in d.morphAttributes){if(!i.has(e))return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. .morphAttributes must be consistent throughout all geometries.`),null;o[e]===void 0&&(o[e]=[]),o[e].push(d.morphAttributes[e])}if(t){let e;if(n)e=d.index.count;else if(d.attributes.position!==void 0)e=d.attributes.position.count;else return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index `+u+`. The geometry must have either an index or a position attribute`),null;c.addGroup(l,e,u),l+=e}}if(n){let t=0,n=[];for(let r=0;r<e.length;++r){let i=e[r].index;for(let e=0;e<i.count;++e)n.push(i.getX(e)+t);t+=e[r].attributes.position.count}c.setIndex(n)}for(let e in a){let t=Fx(a[e]);if(!t)return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the `+e+` attribute.`),null;c.setAttribute(e,t)}for(let e in o){let t=o[e][0].length;if(t!==0){c.morphAttributes=c.morphAttributes||{},c.morphAttributes[e]=[];for(let n=0;n<t;++n){let t=[];for(let r=0;r<o[e].length;++r)t.push(o[e][r][n]);let r=Fx(t);if(!r)return console.error(`THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the `+e+` morphAttribute.`),null;c.morphAttributes[e].push(r)}}}return c}function Fx(e){let t,n,r,i=-1,a=0;for(let o=0;o<e.length;++o){let s=e[o];if(t===void 0&&(t=s.array.constructor),t!==s.array.constructor)return console.error(`THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.`),null;if(n===void 0&&(n=s.itemSize),n!==s.itemSize)return console.error(`THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.`),null;if(r===void 0&&(r=s.normalized),r!==s.normalized)return console.error(`THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.`),null;if(i===-1&&(i=s.gpuType),i!==s.gpuType)return console.error(`THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes.`),null;a+=s.count*n}let o=new t(a),s=new Pi(o,n,r),c=0;for(let t=0;t<e.length;++t){let r=e[t];if(r.isInterleavedBufferAttribute){let e=c/n;for(let t=0,i=r.count;t<i;t++)for(let i=0;i<n;i++){let n=r.getComponent(t,i);s.setComponent(t+e,i,n)}}else o.set(r.array,c);c+=r.count*n}return i!==void 0&&(s.gpuType=i),s}var Ix=new fr,Lx=new zn,Rx=new Sr;function zx(e,{at:t=[0,0,0],rot:n=[0,0,0],scale:r=[1,1,1]}={}){return Lx.setFromEuler(Rx.set(...n)),e.applyMatrix4(Ix.compose(new V(...t),Lx,new V(...r))),e}function Bx(...e){e.some(e=>!e.index)&&(e=e.map(e=>e.index?e.toNonIndexed():e));let t=Px(e);if(!t)throw Error(`could not merge character geometry`);return e.forEach(e=>e.dispose()),t}var Vx=(e,t=14,n=10)=>new al(e,t,n),Hx=(e,t,n=6,r=12)=>new ws(e,t,n,r),Ux=(e,t,n)=>new Cs(e,t,n),Wx=()=>zx(new al(.215,24,16,0,Math.PI*2,0,1.75),{at:[0,.02,.01],rot:[.55,0,0]});function Gx(e,t,n){let r=[];for(let i=0;i<e;i++){let a=1-2*(i+.5)/e,o=Math.sqrt(1-a*a),s=i*2.39996,c=new V(Math.cos(s)*o,a,Math.sin(s)*o).multiplyScalar(t);n(c)&&r.push(c)}return r}function Kx(e){switch(e){case`crop`:return Wx();case`long`:return Bx(Wx(),zx(Vx(.215,20,14),{at:[0,-.1,.07],scale:[1.05,1.25,.8]}));case`ponytail`:{let e={at:[0,.08,.2],rot:[.45,0,0]},t=zx(Hx(.075,.24,6,10),{at:[0,-.17,.04]});return Bx(Wx(),zx(Vx(.085,12,10),e),zx(t,e))}case`bun`:return Bx(Wx(),zx(Vx(.1,14,10),{at:[0,.18,.12]}));case`quiff`:{let e=[-.09,-.045,0,.045,.09].map((e,t)=>zx(new Ds(.058,.19+t%2*.04,8),{at:[e,.2-Math.abs(e)*.45,-.09+Math.abs(e)*.35],rot:[-.75,0,-e*3]}));return e.push(zx(Vx(.1,14,10),{at:[0,.17,-.1],scale:[1.4,.7,1]})),Bx(Wx(),...e)}case`afro`:{let e=new V(0,.1,.06),t=Gx(26,.235,e=>e.z>-.08&&e.y>-.15).map(t=>zx(Vx(.075,10,8),{at:[e.x+t.x,e.y+t.y,e.z+t.z]}));return Bx(zx(Vx(.245,22,16),{at:[e.x,e.y,e.z]}),...t)}case`sidePart`:return Bx(Wx(),zx(Vx(.12,16,10),{at:[.05,.16,-.1],rot:[.3,0,-.35],scale:[1.35,.5,.9]}),zx(Vx(.07,12,8),{at:[-.08,.2,-.04],scale:[1,.6,1.2]}));case`buzz`:return zx(new al(.205,24,14,0,Math.PI*2,0,1.6),{at:[0,.015,.012],rot:[.5,0,0]});case`bald`:return new al(.208,24,6,-.3,Math.PI+.6,1.2,.58);case`curls`:{let e=Gx(60,.2,e=>e.y>.02&&e.y+e.z*.9>-.02).map(e=>zx(Vx(.055,8,6),{at:[e.x*1.02,e.y+.03,e.z*1.02+.01]}));return Bx(Wx(),...e)}}}function qx(e,t,n,r,i){let a=e.toNonIndexed(),o=a.attributes,s=[],c=o.position;for(let e=0;e<c.count;e+=3){let a=(c.getX(e)+c.getX(e+1)+c.getX(e+2))/3,o=(c.getY(e)+c.getY(e+1)+c.getY(e+2))/3;(c.getZ(e)+c.getZ(e+1)+c.getZ(e+2))/3<0&&((a-t)/r)**2+((o-n)/i)**2<1||s.push(e,e+1,e+2)}let l=new W;for(let e of[`position`,`normal`,`uv`]){let t=o[e],n=new Float32Array(s.length*t.itemSize);s.forEach((e,r)=>{for(let i=0;i<t.itemSize;i++)n[r*t.itemSize+i]=t.array[e*t.itemSize+i]}),l.setAttribute(e,new Pi(n,t.itemSize))}return e.dispose(),a.dispose(),l}var Jx=(e,t)=>qx(new al(e,28,12,Math.PI-.15,Math.PI+.3,t,Math.PI-t),0,-.088,.07,.048),Yx=()=>Bx(...[-1,1].map(e=>zx(Hx(.022,.05,4,8),{at:[e*.036,-.052,-.197],rot:[.25,0,e*1.2],scale:[1,1,.7]})));function Xx(e){switch(e){case`none`:return null;case`stubble`:return Jx(.203,2);case`moustache`:return Yx();case`beard`:return Bx(zx(Jx(.212,1.95),{at:[0,.012,-.004],scale:[1.03,1.12,1.04]}),...[-1,1].map(e=>zx(Hx(.028,.09,4,8),{at:[e*.188,-.07,-.035],rot:[0,0,e*.25]})),Yx())}}function Zx(e,t=-.215){if(e===`none`)return null;let n=e===`round`?[-.075,.075].map(e=>zx(new sl(.047,.01,6,20),{at:[e,.02,t]})):[-.078,.078].flatMap(e=>[zx(Ux(.1,.018,.016),{at:[e,.058,t]}),zx(Ux(.1,.014,.016),{at:[e,-.02,t]}),zx(Ux(.014,.09,.016),{at:[e-.045,.02,t]}),zx(Ux(.014,.09,.016),{at:[e+.045,.02,t]})]),r=[-1,1].map(e=>zx(Ux(.012,.012,.19),{at:[e*.172,.035,-.11],rot:[0,e*.4,0]}));return Bx(...n,zx(Ux(.05,.012,.012),{at:[0,.03,t]}),...r)}function Qx(){let e=zx(new sl(.245,.018,6,28,Math.PI),{at:[0,0,.01]}),t=[-1,1].map(e=>zx(new Es(.072,.072,.055,18),{at:[e*.235,-.01,.01],rot:[0,0,Math.PI/2]})),n=[-1,1].map(e=>zx(new Es(.052,.052,.012,18),{at:[e*.266,-.01,.01],rot:[0,0,Math.PI/2]}));return{shell:Bx(e,...t),covers:Bx(...n)}}function $x(e){switch(e){case`none`:return null;case`beanie`:{let e=.228,t=1.42,n={at:[0,.035,.02],rot:[.35,0,0]};return Bx(zx(new al(e,24,12,0,Math.PI*2,0,t),n),zx(zx(new sl(e*Math.sin(t),.03,8,28),{at:[0,e*Math.cos(t),0],rot:[Math.PI/2,0,0]}),n),zx(Vx(.06,12,8),{at:[0,.035+.258*Math.cos(.35),.02+.258*Math.sin(.35)]}))}case`cap`:{let e=.224,t=1.35,n={at:[0,.02,.015],rot:[.18,0,0]};return Bx(zx(new al(e,24,12,0,Math.PI*2,0,t),n),zx(zx(new Es(.14,.14,.014,24,1,!1,Math.PI/2,Math.PI),{at:[0,e*Math.cos(t),-.13],rot:[-.08,0,0],scale:[1,1,.9]}),n),zx(Vx(.022,8,6),{at:[0,.02+e*Math.cos(.18),.015+e*Math.sin(.18)]}))}}}function eS(e){switch(e){case`tee`:return{main:null,trim:null};case`stripe`:return{main:null,trim:new Es(.204,.204,.075,28,1,!0).translate(0,.32,0)};case`hoodie`:return{main:Bx(zx(new sl(.12,.055,10,24),{at:[0,.5,.03],rot:[Math.PI/2-.35,0,0],scale:[1.05,1.15,1]}),zx(Vx(.11,16,10),{at:[0,.5,.12],scale:[1.05,.9,.55]}),zx(Ux(.22,.1,.02),{at:[0,.14,-.196]})),trim:Bx(...[-1,1].flatMap(e=>[zx(Hx(.01,.11,3,6),{at:[e*.045,.39,-.196],rot:[-.25,0,e*.08]}),zx(Vx(.016,8,6),{at:[e*.05,.32,-.208]})]))};case`sweater`:{let e=[-.12,-.06,0,.06,.12].map(e=>{let t=-Math.sqrt(.2*.2-e*e)-.004;return zx(Ux(.04,.04,.012),{at:[e,.33,t],rot:[0,-Math.asin(e/.2),Math.PI/4]})});return{main:null,trim:Bx(zx(new sl(.105,.045,10,24),{at:[0,.505,-.01],rot:[Math.PI/2,0,0]}),new Es(.206,.206,.05,28,1,!0).translate(0,.2,0),...e)}}}}function tS(e,t){return Object.fromEntries(e.map(e=>[e,t(e)]))}var nS={legs:Bx(...[-.11,.11].flatMap(e=>[zx(Hx(.08,.26),{at:[e,.5,-.17],rot:[Math.PI/2,0,0]}),zx(Hx(.07,.3),{at:[e,.27,-.36]})])),shoes:Bx(...[-.11,.11].map(e=>zx(Ux(.13,.09,.22),{at:[e,.05,-.42]}))),torso:Hx(.2,.24,8,16),collar:new sl(.1,.03,8,20),sleeve:Hx(.065,.36,6,12),hand:Vx(.07,14,10),head:Vx(.2,24,18),ears:Bx(...[-.2,.2].map(e=>zx(Vx(.05,10,8),{at:[e,-.01,0]}))),eyes:Bx(...[-.07,.07].map(e=>zx(Vx(.03,10,8),{at:[e,.02,-.18]}))),nose:Vx(.028,10,8),mouth:new sl(.045,.011,6,16,Math.PI),lashes:Bx(...[-1,1].map(e=>zx(Ux(.035,.008,.008),{at:[e*.1,.045,-.172],rot:[0,0,e*-.6]}))),cheeks:Bx(...[-1,1].map(e=>zx(Vx(.03,10,8),{at:[e*.115,-.045,-.165],scale:[1,.6,.3]}))),hairClip:Ux(.07,.035,.035),shirtFront:Ux(.11,.22,.02),tie:Ux(.045,.2,.012),tieKnot:Ux(.06,.04,.02),coatOpening:Ux(.06,.3,.02),badge:Ux(.07,.05,.015),inspectorGlasses:Zx(`round`,-.2),hair:tS([`crop`,`long`,`ponytail`,`bun`,`quiff`,`afro`,`sidePart`,`buzz`,`bald`,`curls`],Kx),facialHair:tS([`none`,`stubble`,`beard`,`moustache`],Xx),glasses:tS([`none`,`round`,`square`],e=>Zx(e)),headphones:Qx(),headwear:tS([`none`,`beanie`,`cap`],$x),outfit:tS([`tee`,`hoodie`,`stripe`,`sweater`],eS)},rS=new ao(new Uint8Array([110,190,255]),3,1,ye);rS.minFilter=D,rS.magFilter=D,rS.generateMipmaps=!1,rS.needsUpdate=!0;var iS=new Map;function aS(e,t={}){let n=`${e}|${t.emissive??``}|${t.emissiveIntensity??``}|${t.opacity??``}`,r=iS.get(n);return r||(r=new Dl({color:e,gradientMap:rS,emissive:t.emissive??`#000000`,emissiveIntensity:t.emissiveIntensity??1,transparent:t.transparent??(t.opacity!==void 0&&t.opacity<1),opacity:t.opacity??1}),iS.set(n,r)),r}function oS(e,t){let n=`map|${e}`,r=iS.get(n);return r||(r=new Dl({map:t,gradientMap:rS}),iS.set(n,r)),r}function sS(e){let t=`glow|${e}`,n=iS.get(t);return n||(n=new Na({color:e,toneMapped:!1}),iS.set(t,n)),n}var cS=new Tl({color:`#bfe8ff`,transparent:!0,opacity:.22,roughness:.05,metalness:0,depthWrite:!1,side:2});function lS(e,t){let n=new H(e),r={h:0,s:0,l:0};return n.getHSL(r),n.setHSL(r.h,r.s,Math.max(0,Math.min(1,r.l+t))),`#${n.getHexString()}`}function uS(e,t,n){return`#${new H(e).lerp(new H(t),n).getHexString()}`}var dS=`"JetBrains Mono", Consolas, "Cascadia Mono", monospace`,fS=`Fredoka, "Segoe UI", system-ui, sans-serif`;function pS(e,t,n,r,i,a){e.beginPath(),e.roundRect(t,n,r,i,a)}function mS(e,t,n,r){let i=t.split(/\s+/),a=[],o=``;for(let t of i){let i=o?`${o} ${t}`:t;if(e.measureText(i).width<=n)o=i;else if(o&&a.push(o),o=t,a.length===r)break}if(a.length<r&&o&&a.push(o),a.length===r&&i.join(` `).length>a.join(` `).length){let t=a[r-1];for(;t.length>1&&e.measureText(`${t}…`).width>n;)t=t.slice(0,-1);a[r-1]=`${t}…`}return a}var hS={bg:`#1b1b29`,bar:`#2a2a3d`,text:`#e8e8f2`,tool:`#8be9fd`,result:`#8d8da8`,system:`#bd93f9`,error:`#ff6b6b`,manager:`#ffb86c`,done:`#50fa7b`,thinking:`#f1fa8c`},gS=[`·`,`✢`,`✳`,`✶`,`✻`,`✽`,`✻`,`✶`,`✳`,`✢`],_S=[`Crafting`,`Pondering`,`Tinkering`,`Brewing`,`Noodling`,`Scheming`,`Assembling`,`Percolating`];function vS(e){return e?e.startsWith(`mcp__playwright__`)?`Browsing`:e===`Bash`||e===`PowerShell`?`Running`:e===`Edit`||e===`Write`||e===`MultiEdit`?`Editing`:e===`Read`||e===`Grep`||e===`Glob`?`Reading`:e===`WebFetch`||e===`WebSearch`?`Researching`:e:``}function yS(e,t,n,r,i,a,o,s,c){e.fillStyle=hS.bg,e.fillRect(0,0,t,n),e.fillStyle=hS.bar,e.fillRect(0,0,t,30),[`#ff5f57`,`#febc2e`,`#28c840`].forEach((t,n)=>{e.fillStyle=t,e.beginPath(),e.arc(18+n*20,15,6,0,Math.PI*2),e.fill()}),e.fillStyle=`#b8b8cc`,e.font=`600 14px ${dS}`,e.textBaseline=`middle`;let l=r.status===`idle`?`idle`:r.role===`ceo`?(r.issueTitle??`running the company`).toLowerCase():r.task===`qa`?`QA of PR #${r.prNumber}`:r.task===`fix`?`fixing PR #${r.prNumber}`:r.issueNumber?`issue #${r.issueNumber}`:`idle`,u=r.role===`qa`?`qa-lab`:r.role===`ceo`?`hq`:`swarm`,d=`${r.name.toLowerCase()}@${u} — ${l} — ${c}`;e.fillText(d,84,16);let f=o?Math.round(t*.56):t;if(r.status===`idle`&&i.length<=1){bS(e,0,30,t,n-30,r,s);return}e.font=`14px ${dS}`;let p=e.measureText(`M`).width,m=Math.max(10,Math.floor((f-20)/p)),h=r.status===`working`||r.status===`preparing`?28:8,g=Math.floor((n-30-10-h)/17),_=[];for(let e=i.length-1;e>=0&&_.length<g;e--){let t=i[e],n=[],r=t.text||` `;for(let e=0;e<r.length;e+=m)n.push(r.slice(e,e+m));for(let e=n.length-1;e>=0&&_.length<g;e--)_.unshift({text:n[e],kind:t.kind})}let v=48.5;for(let t of _)t.kind===`tool`&&t.text.startsWith(`⏺`)?(e.fillStyle=hS.done,e.fillText(`⏺`,10,v),e.fillStyle=hS.tool,e.fillText(t.text.slice(1),10+p,v)):t.kind===`text`&&t.text.startsWith(`●`)?(e.fillStyle=`#ffffff`,e.fillText(`●`,10,v),e.fillStyle=hS.text,e.fillText(t.text.slice(1),10+p,v)):(e.fillStyle=hS[t.kind]??hS.text,e.fillText(t.text,10,v)),v+=17;if(r.status===`working`||r.status===`preparing`){let t=Math.floor(s/120)%gS.length,i=r.status===`preparing`?`Setting up worktree`:vS(r.currentTool)||_S[Math.floor(s/6e3)%_S.length],a=r.startedAt?Math.floor((Date.now()-r.startedAt)/1e3):0,o=Math.floor(a/60);e.fillStyle=`#ff9e64`,e.font=`600 14px ${dS}`,e.fillText(`${gS[t]} ${i}… (${o}m ${a%60}s)`,10,n-14)}o&&xS(e,f,30,t-f,n-30,r.browserUrl,a)}function bS(e,t,n,r,i,a,o){let s=o/1e3,c=e.createLinearGradient(t,n,t+r,n+i);c.addColorStop(0,`#26264a`),c.addColorStop(1,`#3b2a55`),e.fillStyle=c,e.fillRect(t,n,r,i);let l=t+r/2+Math.sin(s*.7)*r*.25,u=n+i/2+Math.cos(s*.9)*i*.18;e.textAlign=`center`,e.font=`64px ${fS}`,e.fillText(`✻`,l,u-20),e.fillStyle=`#ffd6a5`,e.font=`600 26px ${fS}`,e.fillText(`${a.name} is free`,l,u+34),e.fillStyle=`#b8b8dd`,e.font=`18px ${fS}`,e.fillText(a.role===`qa`?`waiting for a PR to test…`:a.role===`ceo`?`thinking about the company…`:`waiting for an issue…`,l,u+62),e.textAlign=`left`}function xS(e,t,n,r,i,a,o){e.fillStyle=`#e9ecf2`,e.fillRect(t,n,r,i),e.fillStyle=`#d5d9e2`,e.fillRect(t,n,r,34),pS(e,t+10,n+6,r-20,22,11),e.fillStyle=`#ffffff`,e.fill(),e.fillStyle=`#4a5160`,e.font=`13px ${fS}`,e.textBaseline=`middle`;let s=(a??`about:blank`).replace(/^https?:\/\//,``);e.fillText(`🔒 ${s.length>42?`${s.slice(0,41)}…`:s}`,t+20,n+18);let c={x:t+4,y:n+38,w:r-8,h:i-42};if(o&&o.complete&&o.naturalWidth>0){let t=Math.min(c.w/o.naturalWidth,c.h/o.naturalHeight),n=o.naturalWidth*t,r=o.naturalHeight*t;e.drawImage(o,c.x+(c.w-n)/2,c.y,n,r)}else e.fillStyle=`#9aa1b2`,e.textAlign=`center`,e.font=`16px ${fS}`,e.fillText(`🌐 loading page…`,c.x+c.w/2,c.y+c.h/2),e.textAlign=`left`}var SS=[{key:`backlog`,title:`📋 Backlog`,chip:`#ffd166`,note:`#fff3b0`},{key:`progress`,title:`🔨 In progress`,chip:`#4cc9f0`,note:`#cfeefd`},{key:`qa`,title:`🔍 In QA`,chip:`#ff9f68`,note:`#ffe3cf`},{key:`ready`,title:`✅ Ready to merge`,chip:`#80ed99`,note:`#d8f9df`},{key:`merged`,title:`🎉 Merged`,chip:`#c77dff`,note:`#eadcff`}],CS={warn:`#ffd8a8`,bad:`#ffc9c9`,good:`#d8f9df`};function wS(e,t,n,r,i){e.fillStyle=`#fbfbf8`,e.fillRect(0,0,t,n),e.fillStyle=`rgba(120,140,170,0.05)`;for(let r=0;r<6;r++)e.fillRect(r*431%t,r*97%n,260,40);e.textBaseline=`middle`,e.fillStyle=`#2d3142`,e.font=`700 46px ${fS}`,e.fillText(r.fullName,40,48),e.font=`500 26px ${fS}`,e.fillStyle=`#6c7086`;let a=r.lastSync?`synced ${new Date(r.lastSync).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}`:`syncing…`;e.textAlign=`right`,e.fillText(`${r.autoAssign?`⚡ auto-assign on · `:``}${a}`,t-40,50),e.textAlign=`left`;let o=(t-80)/SS.length;SS.forEach((t,r)=>{let a=40+r*o,s=i[t.key];pS(e,a+8,96,o-16,52,26),e.fillStyle=t.chip,e.fill(),e.fillStyle=`#1f2233`,e.font=`600 30px ${fS}`,e.fillText(`${t.title} ${s.length}`,a+30,123),r>0&&(e.strokeStyle=`#d9dbe3`,e.lineWidth=3,e.beginPath(),e.moveTo(a,96),e.lineTo(a,n-30),e.stroke());let c=(o-48)/2,l=Math.floor((n-96-70)/116)*2,u=s.length>l?s.slice(0,l-1):s;if(u.forEach((n,r)=>{TS(e,a+16+r%2*(c+16),164+Math.floor(r/2)*116,c,104,n,n.tone?CS[n.tone]:t.note)}),s.length>u.length){e.fillStyle=`#6c7086`,e.font=`600 26px ${fS}`;let t=u.length;e.fillText(`+${s.length-u.length} more`,a+30+t%2*(c+16),164+Math.floor(t/2)*116+52)}s.length===0&&(e.fillStyle=`#b4b7c5`,e.font=`italic 500 26px ${fS}`,e.fillText(t.key===`backlog`?`no open issues`:`nothing here yet`,a+30,206))})}function TS(e,t,n,r,i,a,o){let s=(a.number*37%7-3)*.006;e.save(),e.translate(t+r/2,n+i/2),e.rotate(s),e.translate(-r/2,-i/2),e.fillStyle=`rgba(0,0,0,0.12)`,e.fillRect(4,6,r,i),e.fillStyle=o,e.fillRect(0,0,r,i),e.fillStyle=`rgba(0,0,0,0.06)`,e.fillRect(0,0,r,10),e.fillStyle=`#2d3142`,e.font=`700 22px ${fS}`,e.textBaseline=`top`,e.fillText(`${a.prNumber?`PR `:``}#${a.number}`,14,12),e.font=`500 19px ${fS}`,mS(e,a.title,r-28,2).forEach((t,n)=>e.fillText(t,14,38+n*21)),e.textBaseline=`middle`,a.agent&&(e.fillStyle=a.agent.color,e.beginPath(),e.arc(22,i-15,8,0,Math.PI*2),e.fill(),e.fillStyle=`#2d3142`,e.font=`600 17px ${fS}`,e.fillText(a.agent.name,36,i-14)),a.note&&(e.font=`500 16px ${fS}`,e.fillStyle=`#5c6078`,e.textAlign=`right`,e.fillText(a.note,r-12,i-14),e.textAlign=`left`),e.restore(),e.textBaseline=`middle`}function ES(e,t,n,r){e.clearRect(0,0,t,n);let i=r.status===`working`?r.currentTool?.startsWith(`mcp__playwright`)?`🌐`:r.currentTool===`Bash`||r.currentTool===`PowerShell`?`▶️`:r.currentTool?`⌨️`:`💭`:r.status===`preparing`?`📦`:r.status===`done`?`✅`:r.status===`error`?`❗`:r.status===`stopped`?`⏸️`:r.role===`qa`?`🧪`:r.role===`ceo`?`🏛️`:`☕`;pS(e,4,4,t-8,n-8,(n-8)/2),e.fillStyle=`rgba(255,255,255,0.94)`,e.fill(),e.lineWidth=6,e.strokeStyle=r.color,e.stroke(),e.textBaseline=`middle`,e.font=`38px ${fS}`,e.fillText(i,22,n/2+2),e.fillStyle=`#23263a`,e.font=`700 40px ${fS}`;let a=r.status!==`idle`,o=r.role===`ceo`?`${r.name} · CEO`:r.role===`qa`?a&&r.prNumber?`${r.name} · QA PR #${r.prNumber}`:`${r.name} · ${r.title||`QA`}`:a&&r.task===`fix`&&r.prNumber?`${r.name} · 🔧 PR #${r.prNumber}`:a&&r.task===`qa`&&r.prNumber?`${r.name} · 🧪 PR #${r.prNumber}`:a&&r.issueNumber?`${r.name} · #${r.issueNumber}`:r.title?`${r.name} · ${r.title}`:r.name;for(;o.length>4&&e.measureText(o).width>t-96;)o=`${o.slice(0,-2)}…`;e.fillText(o,78,n/2+2)}function DS(e,t,n,r,i,a,o){e.clearRect(0,0,t,n),pS(e,4,4,t-8,n-8,28),e.fillStyle=`rgba(255,255,255,0.95)`,e.fill(),e.lineWidth=6,e.strokeStyle=o,e.setLineDash([14,8]),e.stroke(),e.setLineDash([]),e.textBaseline=`middle`,e.font=`44px ${fS}`,e.fillText(`📄`,20,n/2+2);let s=(t,n)=>{let r=t;for(;r.length>4&&e.measureText(r).width>n;)r=`${r.slice(0,-2)}…`;return r};e.fillStyle=`#23263a`,e.font=`700 40px ${fS}`,e.fillText(s(`${r} · candidate`,t-100),80,n*.36),e.fillStyle=`#5c6078`,e.font=`600 28px ${fS}`,e.fillText(s(`${i}${a?` · floor ${a}`:``}`,t-100),80,n*.72)}function OS(e,t,n,r,i,a=`#ffffff`){pS(e,0,0,t,n,28),e.fillStyle=i,e.fill(),e.textAlign=`center`,e.textBaseline=`middle`;let o=r.reduce((e,t)=>e+t.size*1.25,0),s=n/2-o/2;for(let n of r){s+=n.size*1.25/2,e.fillStyle=n.color??a,e.font=`${n.weight??700} ${n.size}px ${fS}`;let r=n.text;for(;r.length>3&&e.measureText(r).width>t-40;)r=`${r.slice(0,-2)}…`;e.fillText(r,t/2,s),s+=n.size*1.25/2}e.textAlign=`left`}function kS(e,t,n,r){let i=e.createLinearGradient(0,0,0,n);i.addColorStop(0,`#74c0fc`),i.addColorStop(.7,`#c5e8ff`),i.addColorStop(1,`#e6f6ff`),e.fillStyle=i,e.fillRect(0,0,t,n),e.fillStyle=`rgba(255,255,255,0.9)`;for(let i=0;i<6;i++){let a=(r*131+i*223)%t+20,o=40+(r*17+i*53)%(n*.35);for(let t=0;t<4;t++)e.beginPath(),e.arc(a+t*22,o+t%2*6,18+t%3*6,0,Math.PI*2),e.fill()}let a=[`#8aa4c8`,`#9fb6d6`,`#7d95bb`,`#a8bddb`],o=0,s=0;for(;o<t;){let t=40+(r+s*37)%70,i=n*(.18+(r*7+s*29)%30/100);e.fillStyle=a[s%a.length],e.fillRect(o,n-i,t-4,i),e.fillStyle=`rgba(255,255,230,0.55)`;for(let r=n-i+10;r<n-10;r+=16)for(let n=o+6;n<o+t-12;n+=12)(n+r+s)%3&&e.fillRect(n,r,5,7);o+=t,s++}}var AS=[{status:`preparing`,label:`Checking out the code`},{status:`installing`,label:`Installing dependencies`},{status:`starting`,label:`Starting the app`}],jS={unconfigured:{text:`NOT SET UP`,bg:`#5c6078`},stopped:{text:`STOPPED`,bg:`#5c6078`},preparing:{text:`STARTING`,bg:`#f4a261`},installing:{text:`STARTING`,bg:`#f4a261`},starting:{text:`STARTING`,bg:`#f4a261`},running:{text:`● LIVE`,bg:`#ef233c`},error:{text:`ERROR`,bg:`#e63946`}};function MS(e,t,n){let r=t;for(;r.length>2&&e.measureText(r).width>n;)r=`${r.slice(0,-2)}…`;return r}function NS(e,t,n,r){let i=r.preview;e.fillStyle=hS.bg,e.fillRect(0,0,t,n),e.textBaseline=`middle`,e.textAlign=`left`,e.fillStyle=hS.bar,e.fillRect(0,0,t,118),e.fillStyle=r.color,e.fillRect(0,112,t,6),e.font=`700 34px ${fS}`;let a=`FLOOR ${r.floor}`,o=e.measureText(a).width+44;pS(e,40,30,o,54,27),e.fillStyle=r.color,e.fill(),e.fillStyle=`#ffffff`,e.fillText(a,62,58);let s=jS[i.status];e.font=`700 38px ${fS}`;let c=e.measureText(s.text).width+52;pS(e,t-40-c,28,c,58,29),e.fillStyle=s.bg,e.fill(),e.fillStyle=`#ffffff`,e.textAlign=`center`,e.fillText(s.text,t-40-c/2,58),e.textAlign=`left`,e.font=`700 50px ${fS}`;let l=40+o+26;e.fillText(MS(e,r.name,t-40-c-26-l),l,58);let u=(n,r,i,a,o=700)=>{e.font=`${o} ${i}px ${fS}`,e.fillStyle=a,e.textAlign=`center`,e.fillText(MS(e,n,t-100),t/2,r),e.textAlign=`left`},d=(e,t=`#8d8da8`)=>u(e,n-50,32,t,600),f=118+(n-118-100)/2,p=i.ref??`the app`;if(i.status===`stopped`){let n=f-70;e.fillStyle=r.color,e.beginPath(),e.arc(t/2,n,84,0,Math.PI*2),e.fill(),e.fillStyle=`#ffffff`,e.beginPath(),e.moveTo(t/2-26,n-42),e.lineTo(t/2-26,n+42),e.lineTo(t/2+44,n),e.closePath(),e.fill(),u(`Press E to open the app`,f+80,70,`#ffffff`),d(`The app isn't running. Start it from the viewer.`)}else if(i.status===`unconfigured`)u(`⚙️`,f-90,110,`#ffffff`,400),u(`No run command yet.`,f+40,66,`#ffffff`),u(`Set one in the manager's console.`,f+120,44,`#b8b8cc`,600),d(`Press E to open the app`);else if(i.status===`error`){let n=(i.error??``).split(/\r?\n/).find(e=>e.trim())?.trim()||`The app stopped unexpectedly.`;e.fillStyle=`#e63946`,e.fillRect(0,f-120,t,130),e.font=`700 44px ${fS}`,e.fillStyle=`#ffffff`,e.fillText(MS(e,`⚠ ${n}`,t-100),50,f-55),u(`The app couldn't start.`,f+90,52,`#ffffff`),d(`Press E to see the log and try again`,`#ffb4ba`)}else if(i.status!==`running`){let n=Math.max(0,AS.findIndex(e=>e.status===i.status));u(`Getting ${p} ready…`,198,46,`#b8b8cc`,600),u(`${AS[n].label}…`,f-20,72,`#ffffff`);let r=(t-200-18*(AS.length-1))/AS.length;AS.forEach((t,i)=>{let a=100+i*(r+18),o=f+90;pS(e,a,o,r,34,17),e.fillStyle=i<n?hS.done:i===n?`#f4a261`:`#3a3a52`,e.fill(),e.font=`600 28px ${fS}`,e.fillStyle=i<=n?hS.text:`#6c6c88`,e.textAlign=`center`,e.fillText(`${i<n?`✓ `:``}${t.label}`,a+r/2,o+70),e.textAlign=`left`}),d(`Step ${n+1} of ${AS.length} · press E to watch`)}else{let n=r.shot?t*.5:t-112;e.font=`600 34px ${fS}`,e.fillStyle=`#b8b8cc`,e.fillText(`Serving at`,56,190),e.font=`700 50px ${dS}`,e.fillStyle=hS.tool,e.fillText(MS(e,(i.url??``).replace(/^https?:\/\//,``).replace(/\/$/,``),n),56,258),e.font=`700 42px ${fS}`;let a=e.measureText(p).width+48;if(pS(e,56,326,a,64,32),e.fillStyle=r.color,e.fill(),e.fillStyle=`#ffffff`,e.fillText(p,80,359),i.commit&&(e.font=`600 42px ${dS}`,e.fillStyle=hS.thinking,e.fillText(i.commit,56+a+24,359)),i.startedAt&&(e.font=`500 32px ${fS}`,e.fillStyle=`#8d8da8`,e.fillText(`up since ${new Date(i.startedAt).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}`,56,448)),r.shot){let i=t-n-56-70,a=Math.round(i*.5625),o=t-40-i;e.fillStyle=`#3a3a52`,e.fillRect(o-6,162,i+12,a+12);let s=r.shot,c=Math.max(i/s.width,a/s.height);e.drawImage(s,0,0,i/c,a/c,o,168,i,a),e.font=`500 26px ${fS}`,e.fillStyle=`#8d8da8`,e.fillText(MS(e,r.shotBy?`latest from ${r.shotBy}'s browser`:`latest agent screenshot`,i),o,168+a+36)}d(`Press E to open the app`,hS.done)}}var PS=new Map;function FS(e,t=3.2){let n=(0,v.useRef)(null),r=e?`${e.id}|${e.label}`:``;return(0,v.useEffect)(()=>{let r=n.current;if(r&&e)return PS.set(r,{...e,range:t}),()=>{PS.delete(r)}},[r,t]),n}function IS(e,t,n,r){let i=(0,v.useMemo)(()=>{let n=document.createElement(`canvas`);n.width=e,n.height=t;let r=new vs(n);return r.colorSpace=xt,r.anisotropy=8,r},[e,t]);return(0,v.useEffect)(()=>{let r=i.image.getContext(`2d`);r.clearRect(0,0,e,t),n(r),i.needsUpdate=!0;let a=!0;return document.fonts?.ready.then(()=>{a&&(r.clearRect(0,0,e,t),n(r),i.needsUpdate=!0)}),()=>{a=!1}},[i,...r]),(0,v.useEffect)(()=>()=>i.dispose(),[i]),i}var LS={gapMs:2e3,ms:1500},RS={ball:2.5,dart:3};function zS(e,t){let n=e&&typeof e==`object`?e.toy:void 0;return n===`dart`?`dart`:typeof n==`string`&&t.includes(n)?`ball`:null}function BS(e,t,n){return e!==null&&!n&&t>=RS[e]}var VS=(e,t,n=LS.gapMs)=>e===void 0||t-e>=n,HS=e=>e*e*(3-2*e);function US(e){return!(e>=0)||e>=LS.ms?0:e<120?HS(e/120):e<850?1:1-HS((e-850)/(LS.ms-850))}function WS(e){return!(e>=0)||e>=400?0:e<70?HS(e/70):1-HS((e-70)/330)}var GS=(e,t,n)=>Math.min(n,Math.max(t,e));function KS(e,t,n=1.1,r=.5){if(e===0&&t===0)return{head:0,twist:0};let i=Math.atan2(-e,-t),a=GS(i,-n,n);return{head:a,twist:GS(i-a,-r,r)}}var qS=[],JS=1,YS=new Set,XS=new Map,ZS=new Map,QS=0;function $S(e,t){let n={id:e,obj:t,key:JS++};qS=[...qS,n];for(let e of YS)e();return()=>{qS=qS.filter(e=>e!==n);for(let e of YS)e()}}var eC=()=>qS;function tC(e){return YS.add(e),()=>void YS.delete(e)}function nC(e,t){let n=XS.get(e);return n||XS.set(e,n=new Set),n.add(t),()=>{n.delete(t),n.size||XS.delete(e)}}function rC(e,t=performance.now()){if(!VS(ZS.get(e),t))return!1;ZS.set(e,t),QS++;for(let t of XS.get(e)??[])t();return!0}var iC=()=>QS,aC=1.16,oC=`#1f1d2b`;function sC(e,t,n,r){let i=n-8-34;e.lineWidth=8,e.lineJoin=`round`,e.strokeStyle=oC,e.fillStyle=`#ffffff`,e.beginPath(),e.roundRect(8,8,t-16,i-8,40),e.fill(),e.stroke(),e.beginPath(),e.moveTo(62,i-6),e.lineTo(28,n-8),e.lineTo(104,i-6),e.fill(),e.beginPath(),e.moveTo(62,i),e.lineTo(28,n-8),e.lineTo(104,i),e.stroke(),e.fillStyle=`#e63946`,e.font=`700 ${r.length>2?84:100}px ${fS}`,e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(r,t/2,(8+i)/2+4)}function cC({text:e,since:t}){let n=(0,v.useRef)(null),r=IS(256,176,t=>sC(t,256,176,e),[e]);return G_(()=>{if(!n.current)return;let e=performance.now()-t,r=LS.ms-e,i=e<90?.3+e/90*.9:e<170?1.2-(e-90)/80*.2:r<150?Math.max(.01,r/150):1;n.current.scale.setScalar(i)}),(0,K.jsx)(Oy,{position:[.18,1.45,0],children:(0,K.jsx)(`group`,{ref:n,scale:.3,children:(0,K.jsxs)(`mesh`,{position:[.195,.156,0],renderOrder:2,children:[(0,K.jsx)(`planeGeometry`,{args:[.5,.344]}),(0,K.jsx)(`meshBasicMaterial`,{map:r,transparent:!0,toneMapped:!1,depthWrite:!1})]})})})}function lC(e,t){let n=W_(e=>e.camera),r=(0,v.useRef)(-1/0),[i,a]=(0,v.useState)(null),o=(0,v.useMemo)(()=>({w:0,flinch:0,headYaw:0,headPitch:0,twist:0}),[]),s=(0,v.useMemo)(()=>new V,[]);return(0,v.useEffect)(()=>{let n=t.current;return n?$S(e,n):void 0},[e,t]),(0,v.useEffect)(()=>nC(e,()=>{let e=performance.now();r.current=e,cb(),a({text:Math.random()<.65?`hey!`:`!`,since:e})}),[e]),(0,v.useEffect)(()=>{if(!i)return;let e=setTimeout(()=>a(null),LS.ms);return()=>clearTimeout(e)},[i]),{pose:e=>{let i=e-r.current;o.w=US(i),o.flinch=WS(i);let a=t.current;if(o.w===0||!a)return o.w=o.flinch=o.headYaw=o.headPitch=o.twist=0,o;a.worldToLocal(s.copy(n.position));let c=KS(s.x,s.z);return o.headYaw=c.head,o.twist=c.twist,o.headPitch=Math.min(.45,Math.max(-.3,Math.atan2(s.y-aC,Math.hypot(s.x,s.z)))),o},bubble:i&&(0,K.jsx)(cC,{text:i.text,since:i.since},i.since)}}var uC={pitch:-.34,yaw:.26},dC={typing:{l:uC,r:uC,lean:.1,headPitch:-.02,headYaw:0,type:1,mouse:0},browsing:{l:uC,r:{pitch:-.4,yaw:-.22},lean:.06,headPitch:.05,headYaw:.04,type:.25,mouse:1},thinking:{l:uC,r:{pitch:.55,yaw:.95},lean:.02,headPitch:.1,headYaw:-.12,type:.3,mouse:0},relaxed:{l:{pitch:-.9,yaw:.35},r:{pitch:-.9,yaw:.35},lean:-.1,headPitch:.06,headYaw:0,type:0,mouse:0},cheer:{l:{pitch:1.45,yaw:-.35},r:{pitch:1.45,yaw:-.35},lean:-.05,headPitch:.2,headYaw:0,type:0,mouse:0},slump:{l:{pitch:-1.35,yaw:-.15},r:{pitch:-1.35,yaw:-.15},lean:.25,headPitch:-.45,headYaw:0,type:0,mouse:0}},fC=e=>({...e,l:{...e.l},r:{...e.r}}),pC=`#1f1d2b`,mC=[`#1f1d2b`,`#7f5539`,`#1f1d2b`,`#c1121f`,`#355070`,`#1f1d2b`];function hC({agent:e}){let t=(0,v.useRef)(null),n=(0,v.useRef)(null),r=(0,v.useRef)(null),i=(0,v.useRef)(null),a=(0,v.useRef)(fC(dC.relaxed)),o=(0,v.useRef)(Math.random()*100),s=(0,v.useRef)({name:null,at:0}),c=(0,v.useMemo)(()=>Nx(e),[e.id,e.look,e.role]),l=(0,v.useRef)(null),u=lC(e.id,l);e.currentTool&&(s.current={name:e.currentTool,at:performance.now()}),G_((l,d)=>{let f=performance.now(),p=f/1e3+o.current,m=e.status===`working`||e.status===`preparing`,h=e.status===`done`&&e.endedAt!=null&&Date.now()-e.endedAt<7e3,g=f-s.current.at,_=s.current.name?.startsWith(`mcp__playwright`)&&g<4e3,v=m?e.status===`preparing`?`typing`:_?`browsing`:!e.currentTool&&g>2500?`thinking`:`typing`:e.status===`error`?`slump`:h?`cheer`:`relaxed`,y=dC[v],b=a.current,x=1-Math.exp(-d*5);for(let e of[`l`,`r`])b[e].pitch+=(y[e].pitch-b[e].pitch)*x,b[e].yaw+=(y[e].yaw-b[e].yaw)*x;for(let e of[`lean`,`headPitch`,`headYaw`,`type`,`mouse`])b[e]+=(y[e]-b[e])*x;let S=Math.sin(p*.8)+Math.sin(p*2.1)*.6>-.35?1:.15,C=b.type*S*.1,w=e.status===`preparing`?10:19,T=Math.max(0,Math.sin(p*w))*C,E=Math.max(0,Math.sin(p*w+2.4))*C*(1-b.mouse),D=Math.sin(p*3.1)*.05*b.type,O=Math.sin(p*2.7+1)*.05*b.type,k=Math.sin(p*1.9)*.06*b.mouse,A=(Math.sin(p*5.3)>.93?.04:0)*b.mouse,j=h?Math.sin(p*9)*.35:0,M=-(c.height-1)*.55,N=u.pose(f),ee=N.flinch*.55;if(r.current&&i.current&&(r.current.rotation.set(b.l.pitch+M+T+ee,-(b.l.yaw+D)+j,0),i.current.rotation.set(b.r.pitch+M+E-A+ee,b.r.yaw+O*(1-b.mouse)+k-j,0)),t.current&&(t.current.rotation.x=-b.lean+Math.sin(p*1.6)*.015+(m?Math.sin(p*9)*.006*S:0)+N.flinch*.2,t.current.rotation.y=N.twist*N.w),n.current){let t=m&&Math.sin(p*.55+2)>.92?-.22:0,r=e.status===`preparing`?Math.sin(p*1.3)*.5:Math.sin(p*.4)*.08,i=b.headPitch+t+(m?Math.sin(p*4.5)*.02*S:0),a=r+b.headYaw;n.current.rotation.set(i+(N.headPitch-i)*N.w,a+(N.headYaw-a)*N.w,(v===`thinking`?.12:0)*(1-N.w))}});let d=aS(e.skin),f=e.role===`qa`,p=e.role===`ceo`,m=e.look===`feminine`,h=e.status===`working`||e.status===`preparing`,g=aS(f?`#f8f9fa`:p?`#2b2d42`:e.color),_=aS(c.hair===`buzz`?uS(e.hair,e.skin,.35):e.hair),y=aS(pC),b=Dx[c.accent],x=e.status===`error`,S=nS.hair[c.hair],C=nS.facialHair[c.facialHair],w=nS.glasses[c.glasses],T=nS.headwear[c.headwear],E=nS.outfit[c.outfit],D=c.hair!==`buzz`&&c.hair!==`bald`,O=m&&c.headwear===`none`&&[`long`,`ponytail`,`bun`,`sidePart`,`curls`].includes(c.hair),k=c.headphones&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`mesh`,{geometry:nS.headphones.shell,material:aS(`#2b2d42`),castShadow:!0}),(0,K.jsx)(`mesh`,{geometry:nS.headphones.covers,material:aS(lS(e.color,.12))})]});return(0,K.jsxs)(`group`,{ref:l,children:[u.bubble,(0,K.jsx)(`mesh`,{geometry:nS.legs,material:aS(`#3d4a6b`),castShadow:!0,children:(0,K.jsx)(jy,{thickness:.012,color:pC,angle:0})}),(0,K.jsx)(`mesh`,{geometry:nS.shoes,material:y,castShadow:!0}),(0,K.jsxs)(`group`,{ref:t,position:[0,.5,-(c.height-1)*.25],scale:c.height,children:[(0,K.jsxs)(`group`,{scale:[c.shoulders,1,1],children:[(0,K.jsx)(`mesh`,{position:[0,.3,0],geometry:nS.torso,material:g,castShadow:!0,children:(0,K.jsx)(jy,{thickness:.015,color:pC,angle:0})}),c.outfit!==`sweater`&&(0,K.jsx)(`mesh`,{position:[0,.5,-.02],rotation:[Math.PI/2,0,0],geometry:nS.collar,material:aS(p?`#f8f9fa`:lS(e.color,-.15))}),E.main&&(0,K.jsx)(`mesh`,{geometry:E.main,material:aS(lS(e.color,-.08)),castShadow:!0}),E.trim&&(0,K.jsx)(`mesh`,{geometry:E.trim,material:aS(c.outfit===`stripe`?b:c.outfit===`hoodie`?`#f8f9fa`:lS(e.color,-.14))}),p&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`mesh`,{position:[0,.36,-.192],geometry:nS.shirtFront,material:aS(`#f8f9fa`)}),(0,K.jsx)(`mesh`,{position:[0,.33,-.206],geometry:nS.tie,material:aS(e.color)}),(0,K.jsx)(`mesh`,{position:[0,.445,-.206],geometry:nS.tieKnot,material:aS(lS(e.color,-.2))})]}),f&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`mesh`,{position:[0,.27,-.196],geometry:nS.coatOpening,material:aS(e.color)}),(0,K.jsx)(`mesh`,{position:[.1,.38,-.19],rotation:[.1,0,0],geometry:nS.badge,material:aS(`#ffd166`)})]}),!h&&k&&(0,K.jsx)(`group`,{position:[0,.49,-.09],rotation:[Math.PI/2-.5,0,0],scale:.74,children:k})]}),[{ref:r,x:-.25},{ref:i,x:.25}].map(({ref:e,x:t})=>(0,K.jsxs)(`group`,{ref:e,position:[t*c.shoulders,.44,0],children:[(0,K.jsx)(`mesh`,{position:[0,0,-.24],rotation:[Math.PI/2,0,0],geometry:nS.sleeve,material:g,castShadow:!0,children:(0,K.jsx)(jy,{thickness:.012,color:pC,angle:0})}),(0,K.jsx)(`mesh`,{position:[0,0,-.5],geometry:nS.hand,material:d,castShadow:!0})]},t)),(0,K.jsxs)(`group`,{ref:n,position:[0,.66,0],children:[(0,K.jsx)(`mesh`,{geometry:nS.head,material:d,castShadow:!0,children:(0,K.jsx)(jy,{thickness:.015,color:pC,angle:0})}),S&&(0,K.jsx)(`mesh`,{geometry:S,material:_,castShadow:D,children:D&&(0,K.jsx)(jy,{thickness:.012,color:pC,angle:0})}),(0,K.jsx)(`mesh`,{geometry:nS.ears,material:d}),(0,K.jsx)(`mesh`,{geometry:nS.eyes,material:y}),(0,K.jsx)(`mesh`,{position:[0,-.02,-.2],geometry:nS.nose,material:aS(lS(e.skin,-.08))}),(0,K.jsx)(`mesh`,{position:[0,x?-.1:-.075,-.175],rotation:[.25,0,x?0:Math.PI],geometry:nS.mouth,material:y}),C&&(0,K.jsx)(`mesh`,{geometry:C,material:aS(c.facialHair===`stubble`?uS(e.skin,e.hair,.3):e.hair)}),m&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`mesh`,{geometry:nS.lashes,material:y}),(0,K.jsx)(`mesh`,{geometry:nS.cheeks,material:aS(`#ff9aa2`)})]}),O&&(0,K.jsx)(`mesh`,{position:[.15,.13,-.08],rotation:[0,0,.5],geometry:nS.hairClip,material:aS(f?`#ff9f68`:lS(e.color,.15))}),f&&(0,K.jsx)(`mesh`,{geometry:nS.inspectorGlasses,material:y}),w&&(0,K.jsx)(`mesh`,{geometry:w,material:aS(mC[c.accent])}),T&&(0,K.jsx)(`mesh`,{geometry:T,material:aS(c.accent===0?lS(e.color,-.2):b),castShadow:!0,children:(0,K.jsx)(jy,{thickness:.012,color:pC,angle:0})}),h&&k]})]})]})}var gC=`#1f1d2b`;function J({size:e,position:t,rotation:n,color:r,outline:i=!1,shadow:a=!0,children:o}){return(0,K.jsxs)(`mesh`,{position:t,rotation:n,castShadow:a,receiveShadow:!0,material:aS(r),children:[(0,K.jsx)(`boxGeometry`,{args:e}),i&&(0,K.jsx)(jy,{thickness:.018,color:gC}),o]})}function _C({r:e,rTop:t,h:n,position:r,rotation:i,color:a,outline:o=!1,shadow:s=!0,seg:c=20}){return(0,K.jsxs)(`mesh`,{position:r,rotation:i,castShadow:s,receiveShadow:!0,material:aS(a),children:[(0,K.jsx)(`cylinderGeometry`,{args:[t??e,e,n,c]}),o&&(0,K.jsx)(jy,{thickness:.018,color:gC})]})}function vC({r:e,position:t,scale:n,color:r,outline:i=!1,shadow:a=!0}){return(0,K.jsxs)(`mesh`,{position:t,scale:n,castShadow:a,material:aS(r),children:[(0,K.jsx)(`sphereGeometry`,{args:[e,20,14]}),i&&(0,K.jsx)(jy,{thickness:.018,color:gC})]})}var yC={w:1,h:.6,px:896,py:538},bC=`#f1d19b`;function xC(e,t){let n=W_(e=>e.camera),{canvas:r,tex:i}=(0,v.useMemo)(()=>{let e=document.createElement(`canvas`);e.width=yC.px,e.height=yC.py;let t=new vs(e);return t.colorSpace=xt,t.anisotropy=8,{canvas:e,tex:t}},[]);(0,v.useEffect)(()=>()=>i.dispose(),[i]);let a=(0,v.useRef)(!0),o=(0,v.useRef)(0),s=(0,v.useRef)(null),c=(0,v.useRef)(e);c.current=e,(0,v.useEffect)(()=>{a.current=!0},[e]),(0,v.useEffect)(()=>q.subscribe((t,n)=>{if(t.logs[e.id]!==n.logs[e.id]&&(a.current=!0),t.screens[e.id]!==n.screens[e.id]){let n=new Image;n.onload=()=>{s.current=n,a.current=!0},n.src=`/api/agents/${e.id}/screen?t=${t.screens[e.id]}`}}),[e.id]),(0,v.useEffect)(()=>{let t=q.getState().screens[e.id];if(!t)return;let n=new Image;n.onload=()=>{s.current=n,a.current=!0},n.src=`/api/agents/${e.id}/screen?t=${t}`},[e.id]),(0,v.useEffect)(()=>{document.fonts?.ready.then(()=>a.current=!0)},[]);let l=(0,v.useMemo)(()=>new V,[]);return G_(()=>{let e=performance.now(),u=c.current,d=u.status===`working`||u.status===`preparing`||u.status===`idle`&&(q.getState().logs[u.id]?.length??0)<=1;if(!a.current&&!(d&&e-o.current>200))return;if(t.current){t.current.getWorldPosition(l);let r=l.distanceTo(n.position);if(r>16&&o.current!==0||r>8&&e-o.current<900)return}if(e-o.current<120)return;o.current=e,a.current=!1;let f=q.getState().logs[u.id]??[],p=u.screenshotAt!=null&&Date.now()-u.screenshotAt<12e4,m=u.hasScreenshot&&u.status!==`idle`&&(u.currentTool?.startsWith(`mcp__playwright`)||p||u.status===`done`),h=q.getState().settings,g=u.role!==`ceo`&&h.runtime===`terminal`?u.cli||h.defaultCli:`claude`;yS(r.getContext(`2d`),yC.px,yC.py,u,f,s.current,!!m,e,g),i.needsUpdate=!0}),i}function SC({agent:e}){let t=IS(512,96,t=>ES(t,512,96,e),[e.name,e.status,e.issueNumber,e.currentTool,e.color]);return(0,K.jsx)(Oy,{position:[0,1.98,-.32],children:(0,K.jsxs)(`mesh`,{children:[(0,K.jsx)(`planeGeometry`,{args:[1.15,.216]}),(0,K.jsx)(`meshBasicMaterial`,{map:t,transparent:!0,toneMapped:!1,depthWrite:!1})]})})}var CC={y:1.31,z:-.3,tilt:-.06},wC=`#2b2d42`,TC=`#3d4152`;function EC({accent:e,children:t}){return(0,K.jsxs)(`group`,{children:[(0,K.jsx)(_C,{r:.17,rTop:.15,h:.025,position:[0,.782,CC.z-.04],color:TC,outline:!0}),(0,K.jsx)(J,{size:[.07,.36,.05],position:[0,.95,CC.z-.07],color:TC,outline:!0}),(0,K.jsxs)(`group`,{position:[0,CC.y,CC.z],rotation:[CC.tilt,0,0],children:[(0,K.jsx)(J,{size:[yC.w+.07,yC.h+.07,.05],color:wC,outline:!0}),(0,K.jsx)(J,{size:[.6,.36,.07],position:[0,0,-.055],color:TC}),t,(0,K.jsx)(`mesh`,{position:[0,0,-.091],rotation:[0,Math.PI,0],material:sS(e),children:(0,K.jsx)(`circleGeometry`,{args:[.06,24]})}),(0,K.jsx)(`mesh`,{position:[yC.w/2-.02,-yC.h/2-.018,.026],material:sS(`#7CFFB2`),children:(0,K.jsx)(`circleGeometry`,{args:[.008,10]})})]})]})}function DC({agent:e,accent:t}){let n=(0,v.useRef)(null),r=xC(e,n);return(0,K.jsx)(EC,{accent:t,children:(0,K.jsxs)(`mesh`,{ref:n,position:[0,0,.026],children:[(0,K.jsx)(`planeGeometry`,{args:[yC.w,yC.h]}),(0,K.jsx)(`meshBasicMaterial`,{map:r,toneMapped:!1})]})})}function OC({accent:e,qa:t}){let n=IS(640,384,e=>{e.fillStyle=`#151621`,e.fillRect(0,0,640,384),OS(e,640,384,[{text:t?`🔍`:`🪑`,size:70},{text:t?`QA STATION`:`VACANT`,size:70,color:`#ffd6a5`},{text:t?`press E or click to hire a tester`:`press E or click to hire an agent`,size:36,color:`#a9adc6`,weight:500}],`rgba(0,0,0,0)`)},[t]);return(0,K.jsx)(EC,{accent:e,children:(0,K.jsxs)(`mesh`,{position:[0,0,.026],children:[(0,K.jsx)(`planeGeometry`,{args:[yC.w,yC.h]}),(0,K.jsx)(`meshBasicMaterial`,{map:n,toneMapped:!1})]})})}function kC(){let e=IS(512,176,e=>{e.fillStyle=`#d7dbe3`,e.fillRect(0,0,512,176),[14,13,12,11].forEach((t,n)=>{let r=(496-(t-1)*5)/t;for(let i=0;i<t;i++)e.fillStyle=n===0&&(i===0||i===t-1)?`#ffb4a2`:`#ffffff`,e.beginPath(),e.roundRect(8+i*(r+5),8+n*34,r,28,6),e.fill()}),e.fillStyle=`#ffffff`,e.beginPath(),e.roundRect(130,144,252,26,6),e.fill()},[]);return(0,K.jsxs)(`group`,{position:[0,.77,.27],children:[(0,K.jsx)(J,{size:[.52,.03,.18],position:[0,.015,0],color:`#c3c8d3`,outline:!0}),(0,K.jsxs)(`mesh`,{position:[0,.031,0],rotation:[-Math.PI/2,0,0],children:[(0,K.jsx)(`planeGeometry`,{args:[.5,.17]}),(0,K.jsx)(`meshToonMaterial`,{map:e})]}),(0,K.jsx)(`mesh`,{position:[.46,.002,.02],rotation:[-Math.PI/2,0,0],material:aS(`#3d4152`),children:(0,K.jsx)(`planeGeometry`,{args:[.24,.2]})}),(0,K.jsx)(`mesh`,{position:[.46,.022,.02],scale:[.75,.5,1],material:aS(`#f4f4f8`),castShadow:!0,children:(0,K.jsx)(`sphereGeometry`,{args:[.05,14,10]})})]})}var AC=`#dfe7ef`,jC=`#ff9f68`;function MC({agent:e,accent:t,repoId:n,position:r,role:i=`dev`,rotationY:a=0}){let o=i===`qa`,s=FS(e?{id:`agent-${e.id}`,label:e.role===`ceo`?`Open ${e.name}'s desk (CEO) · P texts them from anywhere`:`View ${e.name}'s ${o?`test run`:`terminal`}`,action:{kind:`terminal`,agentId:e.id}}:{id:`vacant-${i}-${n}-${r.join()}`,label:o?`Hire a QA tester for this station`:`Hire an agent for this desk`,action:{kind:`hire`,repoId:n,role:i}},3.6),c=e?lS(e.color,.1):`#ffffff`,l=o?AC:bC,u=o?jC:t;return(0,K.jsxs)(`group`,{ref:s,position:r,rotation:[0,a,0],children:[(0,K.jsx)(J,{size:[1.9,.06,.95],position:[0,.74,0],color:l,outline:!0}),[[-.88,-.42],[.88,-.42],[-.88,.42],[.88,.42]].map(([e,t])=>(0,K.jsx)(J,{size:[.06,.71,.06],position:[e,.355,t],color:`#5c677d`},`${e}${t}`)),(0,K.jsx)(J,{size:[1.76,.4,.03],position:[0,.5,-.44],color:lS(l,-.08)}),e?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(DC,{agent:e,accent:t}),(0,K.jsx)(kC,{}),(0,K.jsx)(_C,{r:.045,h:.1,position:[.76,.82,.02],color:c,outline:!0}),(0,K.jsx)(SC,{agent:e})]}):(0,K.jsx)(OC,{accent:t,qa:o}),o?(0,K.jsxs)(`group`,{position:[-.72,.77,-.2],children:[(0,K.jsx)(J,{size:[.3,.05,.1],position:[0,.06,0],color:`#adb5bd`,outline:!0}),[`#ff6b6b`,`#4cc9f0`,`#80ed99`].map((e,t)=>(0,K.jsx)(_C,{r:.022,h:.16,position:[-.09+t*.09,.1,0],color:e,outline:!0},e))]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(_C,{r:.06,rTop:.07,h:.09,position:[-.76,.815,-.22],color:`#e07a5f`,outline:!0}),(0,K.jsx)(vC,{r:.09,position:[-.76,.92,-.22],color:`#52b788`,outline:!0})]}),(0,K.jsxs)(`group`,{position:[0,0,e?.8:.6],children:[(0,K.jsx)(J,{size:[.52,.08,.5],position:[0,.44,0],color:u,outline:!0}),(0,K.jsx)(J,{size:[.48,.42,.07],position:[0,.72,.28],color:u,outline:!0}),(0,K.jsx)(_C,{r:.035,h:.36,position:[0,.22,0],color:`#444a5c`}),(0,K.jsx)(_C,{r:.26,h:.04,position:[0,.03,0],color:`#444a5c`}),e&&(0,K.jsx)(hC,{agent:e})]})]})}var NC=`#b9c2cf`;function PC({floorLabel:e,accent:t}){let n=W_(e=>e.camera),r=(0,v.useRef)(null),i=(0,v.useRef)(null),a=(0,v.useRef)(0),{doorHalf:o,cabinHalf:s,depth:c,doorHeight:l}=$b,u=12.15,d=FS({id:`elevator`,label:`Use the elevator`,action:{kind:`elevator`}},3.5),f=FS({id:`elevator-panel`,label:`Choose a floor`,action:{kind:`elevator`}},2.5),p=IS(512,128,t=>OS(t,512,128,[{text:e,size:56,color:`#7CFFB2`}],`#15151f`),[e]);return G_((e,t)=>{let s=q.getState().travel,c=n.position.x,l=n.position.z-u,d=Math.hypot(c,l)<2.8,f=s?.phase===`closing`?0:d||s?.phase===`opening`?1:0;a.current+=(f-a.current)*(1-Math.exp(-t*5));let p=a.current*o*.98;r.current&&(r.current.position.x=-o/2-p),i.current&&(i.current.position.x=o/2+p)}),(0,K.jsxs)(`group`,{children:[(0,K.jsxs)(`group`,{ref:d,children:[(0,K.jsx)(J,{size:[.22,l+.1,.36],position:[-o-.05,(l+.1)/2,12],color:NC,outline:!0}),(0,K.jsx)(J,{size:[.22,l+.1,.36],position:[o+.05,(l+.1)/2,12],color:NC,outline:!0}),(0,K.jsx)(J,{size:[o*2+.32,.22,.36],position:[0,l+.08,12],color:NC,outline:!0}),(0,K.jsx)(`mesh`,{ref:r,position:[-o/2,l/2,u],material:aS(`#d9dee6`),castShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[o,l,.06]})}),(0,K.jsx)(`mesh`,{ref:i,position:[o/2,l/2,u],material:aS(`#d9dee6`),castShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[o,l,.06]})})]}),(0,K.jsxs)(`mesh`,{position:[0,l+.55,11.97],rotation:[0,Math.PI,0],children:[(0,K.jsx)(`planeGeometry`,{args:[1.6,.4]}),(0,K.jsx)(`meshBasicMaterial`,{map:p,toneMapped:!1})]}),(0,K.jsxs)(`group`,{position:[o+.55,1.2,11.97],rotation:[0,Math.PI,0],children:[(0,K.jsx)(J,{size:[.22,.4,.04],position:[0,0,0],color:NC,outline:!0}),(0,K.jsx)(`mesh`,{position:[0,.08,.025],material:sS(t),children:(0,K.jsx)(`circleGeometry`,{args:[.05,20]})}),(0,K.jsx)(`mesh`,{position:[0,-.08,.025],material:sS(`#ffffff`),children:(0,K.jsx)(`circleGeometry`,{args:[.05,20]})})]}),(0,K.jsxs)(`group`,{position:[0,0,12],children:[(0,K.jsx)(`mesh`,{position:[0,.01,c/2],rotation:[-Math.PI/2,0,0],receiveShadow:!0,material:aS(`#8d7b68`),children:(0,K.jsx)(`planeGeometry`,{args:[s*2,c]})}),(0,K.jsx)(`mesh`,{position:[0,l+.2,c/2],rotation:[Math.PI/2,0,0],material:aS(`#f1f3f5`),children:(0,K.jsx)(`planeGeometry`,{args:[s*2,c]})}),(0,K.jsx)(`mesh`,{position:[0,l+.18,c/2],rotation:[Math.PI/2,0,0],material:sS(`#fff6d6`),children:(0,K.jsx)(`circleGeometry`,{args:[.45,32]})}),[-1,1].map(e=>(0,K.jsx)(`mesh`,{position:[e*(s+.05),Xb/2,(c+.05)/2],material:aS(`#c8ced8`),children:(0,K.jsx)(`boxGeometry`,{args:[.1,Xb,c-.05]})},e)),(0,K.jsx)(`mesh`,{position:[0,Xb/2,c+.05],material:aS(`#c8ced8`),children:(0,K.jsx)(`boxGeometry`,{args:[s*2+.2,Xb,.1]})}),(0,K.jsx)(J,{size:[s*2-.2,.05,.08],position:[0,.95,c-.05],color:`#e9c46a`,outline:!0}),(0,K.jsxs)(`group`,{ref:f,position:[s-.02,1.25,.9],rotation:[0,-Math.PI/2,0],children:[(0,K.jsx)(J,{size:[.36,.7,.04],position:[0,0,0],color:NC,outline:!0}),[.22,.08,-.06,-.2].map((e,n)=>(0,K.jsx)(`mesh`,{position:[0,e,.025],material:sS(n===0?t:`#fdfdfd`),children:(0,K.jsx)(`circleGeometry`,{args:[.04,16]})},e))]})]})]})}var FC=[1280,720],IC=`#2b2d42`,LC=uS(`#7CFFB2`,`#fbf3e4`,.35),RC={running:`#7CFFB2`,error:`#ff6b6b`,preparing:`#ffd166`,installing:`#ffd166`,starting:`#ffd166`};function zC(e){return q(t=>{let n=null,r=0;for(let i of e){let e=t.screens[i.id];e&&e>r&&(r=e,n=i)}return n?`${n.id}|${r}|${n.name}`:null})}function BC({repo:e,agents:t}){let n=e.preview,r=n.status===`running`,i=e.fullName.split(`/`)[1]??e.fullName,a=zC(t),[o,s]=(0,v.useState)(null);(0,v.useEffect)(()=>{if(!r||!a)return s(null);let[e,t,n]=a.split(`|`),i=!0,o=new Image;return o.onload=()=>i&&s({img:o,by:n}),o.src=`/api/agents/${e}/screen?t=${t}`,()=>{i=!1,o.onload=null}},[r,a]);let c=IS(FC[0],FC[1],t=>NS(t,FC[0],FC[1],{floor:e.floor,name:i,color:e.color,preview:n,shot:o?.img??null,shotBy:o?.by??null}),[e.floor,i,e.color,n.status,n.url,n.ref,n.commit,n.startedAt,n.error,o]),l=FS({id:`app-${e.id}`,label:`Open the app`,action:{kind:`app`,repoId:e.id}},6),u=dx,d=u.w+u.bezel*2,f=u.h+u.bezel*2;return(0,K.jsxs)(`group`,{ref:l,position:[u.x,u.y,-12],children:[r&&(0,K.jsx)(`mesh`,{position:[0,0,.012],material:sS(LC),children:(0,K.jsx)(`planeGeometry`,{args:[d+.18,f+.18]})}),(0,K.jsx)(J,{size:[d,f,u.depth],position:[0,0,u.depth/2],color:IC,outline:!0,shadow:!1}),(0,K.jsxs)(`mesh`,{position:[0,0,u.depth+.002],children:[(0,K.jsx)(`planeGeometry`,{args:[u.w,u.h]}),(0,K.jsx)(`meshBasicMaterial`,{map:c,toneMapped:!1})]}),(0,K.jsx)(`mesh`,{position:[u.w/2-.04,-u.h/2-u.bezel/2,u.depth+.002],material:sS(RC[n.status]??`#6c7086`),children:(0,K.jsx)(`circleGeometry`,{args:[.022,12]})})]})}function VC({repo:e,agents:t}){let n=q(e=>e.qa),r=(0,v.useMemo)(()=>Lb(e,t,n),[e,t,n]),i=(0,v.useMemo)(()=>JSON.stringify([e.fullName,e.autoAssign,e.lastSync?Math.floor(e.lastSync/6e4):0,...Object.values(r).map(e=>e.map(e=>[e.key,e.title,e.note,e.agent?.name,e.agent?.color,e.tone]))]),[r,e]),a=Math.round(2560*ux.h/ux.w),o=IS(2560,a,t=>wS(t,2560,a,e,r),[i]),s=FS({id:`board-${e.id}`,label:`Open the Kanban board`,action:{kind:`kanban`,repoId:e.id}},7),c=ux.y+ux.h/2;return(0,K.jsxs)(`group`,{ref:s,position:[0,0,ux.z],children:[(0,K.jsx)(J,{size:[ux.w+.24,ux.h+.24,.06],position:[0,c,.03],color:`#aab4c3`,outline:!0,shadow:!1}),(0,K.jsxs)(`mesh`,{position:[0,c,.065],children:[(0,K.jsx)(`planeGeometry`,{args:[ux.w,ux.h]}),(0,K.jsx)(`meshBasicMaterial`,{map:o,toneMapped:!1})]}),(0,K.jsx)(J,{size:[3.2,.05,.16],position:[3.5,ux.y-.12,.1],color:`#aab4c3`,outline:!0}),[`#e63946`,`#1d3557`,`#2a9d8f`].map((e,t)=>(0,K.jsx)(_C,{r:.018,h:.16,position:[2.6+t*.22,ux.y-.075,.12],rotation:[0,0,Math.PI/2],color:e},e))]})}function HC({position:e,scale:t=1,pot:n=`#e07a5f`}){return(0,K.jsxs)(`group`,{position:e,scale:t,children:[(0,K.jsx)(_C,{r:.22,rTop:.28,h:.5,position:[0,.25,0],color:n,outline:!0}),(0,K.jsx)(vC,{r:.36,position:[0,.8,0],color:`#52b788`,outline:!0}),(0,K.jsx)(vC,{r:.28,position:[.2,1.05,.08],color:`#40916c`,outline:!0}),(0,K.jsx)(vC,{r:.25,position:[-.18,1.12,-.05],color:`#74c69d`,outline:!0}),(0,K.jsx)(vC,{r:.2,position:[.02,1.35,0],color:`#52b788`,outline:!0})]})}function UC({position:e}){return(0,K.jsxs)(`group`,{position:e,children:[(0,K.jsx)(J,{size:[.45,1,.45],position:[0,.5,0],color:`#f1f3f5`,outline:!0}),(0,K.jsx)(_C,{r:.18,h:.5,position:[0,1.25,0],color:`#8ecae6`,outline:!0}),(0,K.jsx)(J,{size:[.08,.06,.06],position:[0,.8,-.24],color:`#457b9d`})]})}function WC({position:e,rotationY:t=0,color:n=`#6c63ff`}){let r=lS(n,-.12);return(0,K.jsxs)(`group`,{position:e,rotation:[0,t,0],children:[(0,K.jsx)(J,{size:[3,.42,1],position:[0,.25,0],color:n,outline:!0}),(0,K.jsx)(J,{size:[3,.6,.25],position:[0,.7,.38],color:r,outline:!0}),(0,K.jsx)(J,{size:[.25,.55,1],position:[-1.5,.45,0],color:r,outline:!0}),(0,K.jsx)(J,{size:[.25,.55,1],position:[1.5,.45,0],color:r,outline:!0}),(0,K.jsx)(J,{size:[.5,.4,.14],position:[-.9,.62,.22],color:`#ffd166`,outline:!0}),(0,K.jsx)(J,{size:[.5,.4,.14],position:[.9,.62,.22],color:`#ef476f`,outline:!0})]})}function GC({position:e,rotationY:t=0}){return(0,K.jsxs)(`group`,{position:e,rotation:[0,t,0],children:[(0,K.jsx)(J,{size:[1.3,.08,.8],position:[0,.42,0],color:`#f1d19b`,outline:!0}),(0,K.jsx)(J,{size:[1.1,.38,.6],position:[0,.2,0],color:`#c9a26b`}),(0,K.jsx)(_C,{r:.05,h:.1,position:[.3,.51,.1],color:`#ffffff`,outline:!0}),(0,K.jsx)(J,{size:[.3,.04,.22],position:[-.25,.48,-.05],color:`#4cc9f0`,outline:!0})]})}function KC({position:e}){let t=(0,v.useRef)(null);return G_(()=>{if(!t.current)return;let e=performance.now()/1e3;t.current.children.forEach((t,n)=>{let r=(e*.4+n/3)%1;t.position.y=r*.4,t.scale.setScalar(.5+r),t.material.opacity=.5*(1-r)})}),(0,K.jsxs)(`group`,{position:e,children:[(0,K.jsx)(J,{size:[.8,.9,4],position:[0,.45,0],color:`#8ecae6`,outline:!0}),(0,K.jsx)(J,{size:[.9,.06,4.1],position:[-.02,.93,0],color:`#f8f9fa`,outline:!0}),(0,K.jsx)(J,{size:[.45,.55,.4],position:[.05,1.24,-1.1],color:`#343a40`,outline:!0}),(0,K.jsx)(J,{size:[.3,.12,.3],position:[-.1,1.1,-1.1],color:`#495057`}),(0,K.jsx)(`mesh`,{position:[-.2,1.35,-1.1],rotation:[0,-Math.PI/2,0],material:sS(`#ff6b6b`),children:(0,K.jsx)(`circleGeometry`,{args:[.03,12]})}),(0,K.jsx)(_C,{r:.05,h:.1,position:[-.15,1.01,-1.1],color:`#ffffff`,outline:!0}),(0,K.jsx)(`group`,{ref:t,position:[-.15,1.1,-1.1],children:[0,1,2].map(e=>(0,K.jsxs)(`mesh`,{children:[(0,K.jsx)(`sphereGeometry`,{args:[.03,8,6]}),(0,K.jsx)(`meshBasicMaterial`,{color:`#ffffff`,transparent:!0,opacity:.4,depthWrite:!1})]},e))}),(0,K.jsx)(_C,{r:.2,rTop:.24,h:.1,position:[0,1.01,.6],color:`#f4a261`,outline:!0}),(0,K.jsx)(vC,{r:.07,position:[.05,1.1,.55],color:`#e63946`}),(0,K.jsx)(vC,{r:.07,position:[-.06,1.1,.66],color:`#ffd166`}),(0,K.jsx)(vC,{r:.07,position:[.07,1.1,.7],color:`#80ed99`}),(0,K.jsx)(_C,{r:.1,rTop:.07,h:.25,position:[0,1.08,1.4],color:`#ced4da`,outline:!0}),(0,K.jsx)(J,{size:[.8,2,.8],position:[0,1,2.45],color:`#f1f3f5`,outline:!0}),(0,K.jsx)(J,{size:[.04,.5,.05],position:[-.42,1.3,2.2],color:`#adb5bd`})]})}function qC({position:e,size:t,color:n}){return(0,K.jsx)(`mesh`,{position:e,rotation:[-Math.PI/2,0,0],receiveShadow:!0,material:aS(n),children:(0,K.jsx)(`planeGeometry`,{args:t})})}function JC({position:e,rotationY:t=0}){let n=(0,v.useRef)(null),r=(0,v.useRef)(null);return G_(()=>{let e=new Date,t=e.getMinutes()+e.getSeconds()/60,i=e.getHours()%12+t/60;r.current&&(r.current.rotation.z=-(t/60)*Math.PI*2),n.current&&(n.current.rotation.z=-(i/12)*Math.PI*2)}),(0,K.jsxs)(`group`,{position:e,rotation:[0,t,0],children:[(0,K.jsx)(_C,{r:.36,h:.06,rotation:[Math.PI/2,0,0],color:`#ffffff`,outline:!0,shadow:!1}),(0,K.jsx)(`group`,{ref:n,position:[0,0,.04],children:(0,K.jsx)(`mesh`,{position:[0,.1,0],material:aS(`#1f1d2b`),children:(0,K.jsx)(`boxGeometry`,{args:[.035,.2,.01]})})}),(0,K.jsx)(`group`,{ref:r,position:[0,0,.045],children:(0,K.jsx)(`mesh`,{position:[0,.14,0],material:aS(`#e63946`),children:(0,K.jsx)(`boxGeometry`,{args:[.025,.28,.01]})})})]})}function YC({position:e,rotationY:t=0}){let n=[`#e63946`,`#457b9d`,`#2a9d8f`,`#f4a261`,`#9b5de5`,`#ffbe0b`,`#06d6a0`];return(0,K.jsxs)(`group`,{position:e,rotation:[0,t,0],children:[(0,K.jsx)(J,{size:[4.8,2.2,.6],position:[0,1.1,0],color:`#b08968`,outline:!0}),[.35,.95,1.55].map((e,t)=>(0,K.jsxs)(`group`,{children:[(0,K.jsx)(J,{size:[4.6,.04,.55],position:[0,e-.25,.04],color:`#9c6644`,shadow:!1}),Array.from({length:14},(r,i)=>(0,K.jsx)(J,{size:[.14+i*t%3*.03,.34+(i+t)%4*.04,.4],position:[-2.1+i*.3,e-.05,.08],color:n[(i+t*3)%n.length],shadow:!1},i))]},e))]})}function XC({from:e,to:t,height:n=2.8}){let r=t[0]-e[0],i=t[1]-e[1],a=Math.hypot(r,i),o=(e[0]+t[0])/2,s=(e[1]+t[1])/2,c=-Math.atan2(i,r);return(0,K.jsxs)(`group`,{position:[o,0,s],rotation:[0,c,0],children:[(0,K.jsx)(`mesh`,{position:[0,n/2,0],material:cS,children:(0,K.jsx)(`boxGeometry`,{args:[a,n,.04]})}),(0,K.jsx)(J,{size:[a,.08,.1],position:[0,n,0],color:`#8d99ae`,shadow:!1}),(0,K.jsx)(J,{size:[a,.08,.1],position:[0,.04,0],color:`#8d99ae`,shadow:!1}),(0,K.jsx)(J,{size:[.08,n,.1],position:[-a/2,n/2,0],color:`#8d99ae`,shadow:!1}),(0,K.jsx)(J,{size:[.08,n,.1],position:[a/2,n/2,0],color:`#8d99ae`,shadow:!1})]})}var ZC=`#fbf3e4`;function QC({position:e,rotationY:t,width:n,seed:r}){let i=IS(512,256,e=>kS(e,512,256,r),[r]),a=1.8;return(0,K.jsxs)(`group`,{position:e,rotation:[0,t,0],children:[(0,K.jsxs)(`mesh`,{position:[0,0,.01],children:[(0,K.jsx)(`planeGeometry`,{args:[n,a]}),(0,K.jsx)(`meshBasicMaterial`,{map:i,toneMapped:!1})]}),(0,K.jsx)(J,{size:[n+.16,.1,.1],position:[0,a/2,.04],color:`#ffffff`,outline:!0,shadow:!1}),(0,K.jsx)(J,{size:[n+.16,.14,.18],position:[0,-1.8/2,.06],color:`#ffffff`,outline:!0,shadow:!1}),[-n/2,0,n/2].map(e=>(0,K.jsx)(J,{size:[.08,a,.1],position:[e,0,.04],color:`#ffffff`,shadow:!1},e))]})}function $C({position:e}){return(0,K.jsxs)(`group`,{position:e,children:[(0,K.jsx)(J,{size:[1.4,.06,.5],position:[0,0,0],color:`#e9ecef`,shadow:!1}),(0,K.jsx)(`mesh`,{position:[0,-.035,0],rotation:[Math.PI/2,0,0],material:sS(`#fffbe8`),children:(0,K.jsx)(`planeGeometry`,{args:[1.25,.38]})})]})}function ew({accent:e,floorColor:t,westWindows:n=[-8,0,8],eastWindows:r=[-8,0],seed:i=1}){let a=aS(ZC),o=.3,{doorHalf:s,doorHeight:c}=$b,l=(0,v.useMemo)(()=>{let e=[];for(let t=-12;t<=12;t+=6)for(let n=-8;n<=8;n+=5.5)e.push([t,Xb-.04,n]);return e},[]),u=(0,v.useMemo)(()=>{let e=document.createElement(`canvas`);e.width=e.height=512;let n=e.getContext(`2d`);for(let e=0;e<8;e++){let r=e*173%512;for(let i=-r;i<512;i+=256){let a=(e*7+Math.floor((i+r)/256)*3)%5*.012-.024;n.fillStyle=lS(t,a),n.fillRect(i,e*64,256,64),n.fillStyle=lS(t,-.1),n.fillRect(i,e*64,3,64),n.fillStyle=lS(t,a-.035);for(let t=0;t<3;t++)n.fillRect(i+30+t*70,e*64+18+t*12,60,2)}n.fillStyle=lS(t,-.12),n.fillRect(0,e*64,512,3)}let r=new vs(e);return r.colorSpace=xt,r.wrapS=r.wrapT=w,r.repeat.set(8,6),r.anisotropy=8,r},[t]),d=16-s;return(0,K.jsxs)(`group`,{children:[(0,K.jsxs)(`mesh`,{rotation:[-Math.PI/2,0,0],receiveShadow:!0,children:[(0,K.jsx)(`planeGeometry`,{args:[32,24]}),(0,K.jsx)(`meshToonMaterial`,{map:u})]}),(0,K.jsx)(`mesh`,{rotation:[Math.PI/2,0,0],position:[0,Xb,0],material:aS(`#f3efe6`),children:(0,K.jsx)(`planeGeometry`,{args:[32,24]})}),l.map(e=>(0,K.jsx)($C,{position:e},e.join())),(0,K.jsx)(`mesh`,{position:[0,Xb/2,-12-o/2],material:a,receiveShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[32.6,Xb,o]})}),(0,K.jsx)(`mesh`,{position:[-16-o/2,Xb/2,0],material:a,receiveShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[o,Xb,24]})}),(0,K.jsx)(`mesh`,{position:[16.15,Xb/2,0],material:a,receiveShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[o,Xb,24]})}),[-1,1].map(e=>(0,K.jsx)(`mesh`,{position:[e*(s+d/2),Xb/2,12.15],material:a,receiveShadow:!0,children:(0,K.jsx)(`boxGeometry`,{args:[d,Xb,o]})},e)),(0,K.jsx)(`mesh`,{position:[0,(Xb+c)/2,12.15],material:a,children:(0,K.jsx)(`boxGeometry`,{args:[s*2,Xb-c,o]})}),[{p:[0,0,-11.98],r:0,w:32},{p:[-15.98,0,0],r:Math.PI/2,w:24},{p:[15.98,0,0],r:-Math.PI/2,w:24},{p:[-(s+d/2),0,11.98],r:Math.PI,w:d},{p:[s+d/2,0,11.98],r:Math.PI,w:d}].map(({p:t,r:n,w:r},i)=>(0,K.jsxs)(`group`,{position:[t[0],0,t[2]],rotation:[0,n,0],children:[(0,K.jsx)(`mesh`,{position:[0,.06,0],material:aS(lS(e,-.2)),children:(0,K.jsx)(`boxGeometry`,{args:[r,.12,.04]})}),(0,K.jsx)(`mesh`,{position:[0,.95,0],material:aS(e),children:(0,K.jsx)(`boxGeometry`,{args:[r,.12,.03]})})]},i)),n.map((e,t)=>(0,K.jsx)(QC,{position:[-15.98,1.95,e],rotationY:Math.PI/2,width:5.5,seed:i*3+t},`w${e}`)),r.map((e,t)=>(0,K.jsx)(QC,{position:[15.98,1.95,e],rotationY:-Math.PI/2,width:5.5,seed:i*5+t+7},`e${e}`))]})}function tw(){return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`hemisphereLight`,{args:[`#fffaf0`,`#a48a6a`,.95]}),(0,K.jsx)(`ambientLight`,{intensity:.18}),(0,K.jsx)(`directionalLight`,{position:[9,14,7],intensity:1.55,castShadow:!0,"shadow-mapSize":[2048,2048],"shadow-camera-left":-18,"shadow-camera-right":18,"shadow-camera-top":14,"shadow-camera-bottom":-14,"shadow-camera-near":1,"shadow-camera-far":40,"shadow-bias":-6e-4,"shadow-normalBias":.03})]})}var nw=[{id:`blaster-orange`,body:`#ff8c1a`,trim:`#3a86ff`,foam:`#3a86ff`},{id:`blaster-blue`,body:`#3a86ff`,trim:`#ff8c1a`,foam:`#ff8c1a`}],rw=e=>nw.some(t=>t.id===e),iw={mag:12,gapMs:250,reloadMs:1e3};function aw(e,t){return e.reloadAt===null||t-e.reloadAt<iw.reloadMs?e:{ammo:iw.mag,reloadAt:null}}function ow(e,t){let n=aw(e,t);return n.reloadAt===null?null:Math.min(1,Math.max(0,(t-n.reloadAt)/iw.reloadMs))}function sw(e,t,n){let r=aw(e,n);return r.reloadAt!==null||r.ammo<=0||n-t<iw.gapMs?null:{ammo:r.ammo-1,reloadAt:null}}function cw(e,t){let n=aw(e,t);return n.reloadAt!==null||n.ammo>=iw.mag?null:{ammo:n.ammo,reloadAt:t}}function lw(e,t){return`Darts ${aw(e,t).ammo}/${iw.mag}`}var uw={maxAngle:28*Math.PI/180,minSpeed:6};function dw(e,t){let n=Math.hypot(e.x,e.y,e.z);return n<uw.minSpeed?!1:-(e.x*t.x+e.y*t.y+e.z*t.z)/n>=Math.cos(uw.maxAngle)}function fw(e,t=40,n=1){let r=e.length+n-t;return r<=0?[]:[...e].sort((e,t)=>e.born-t.born).slice(0,r)}var pw=.2,mw=null;function hw(e){mw=e}var gw=()=>mw?.count()??0,_w=()=>mw?.stuck()??0,vw=()=>(mw?.loose()??[]).filter(e=>e.y<pw),yw=e=>mw?.remove(e)??!1,bw={reach:.1,animMs:350},xw=e=>e!==`charging`,Sw=(e,t,n,r)=>Math.hypot(n.x-e,n.z-t)<=r;function Cw(e,t,n,r,i){return xw(e)?r.filter(e=>Sw(t,n,e,i+bw.reach)):[]}var ww=0,Tw=(e=1)=>void(ww+=e),Ew=()=>ww,Dw=null,Ow=null,kw=null;function Aw(e){Dw=e}function jw(e){Ow=e}function Mw(e){kw=e}function Nw(){let{held:e,chargeAt:t}=q.getState(),n=null;try{n=kw?kw():null}catch{}let r={held:e,charging:t!==null,hoop:Ow?Ow():null,roomba:n,darts:gw(),dartsStuck:_w(),reactions:iC(),vacuumed:Ew()};try{if(Dw)return{...Dw(),...r}}catch{}return{balls:[],bodies:0,...r}}typeof window<`u`&&!Object.getOwnPropertyDescriptor(window,`__swarmToys`)&&Object.defineProperty(window,"__swarmToys",{get:Nw,enumerable:!1,configurable:!1});var Pw=!1;function Fw(e){Pw||(Pw=!0,console.warn(`Office toys are switched off: the physics engine failed to load.`,e))}var Iw=()=>null,Lw=(0,v.lazy)(async()=>{try{let[e,t]=await Promise.all([Fy(()=>import(`./ToyWorld-C1nzIgVK.js`),__vite__mapDeps([0,1])),Fy(()=>import(`./rapier-DS9bMu-p.js`).then(e=>e.o),[])]);return await t.init(),e}catch(e){return Fw(e),{default:Iw}}}),Rw=class extends v.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e){console.error(`Office toys stopped on this floor after an error (the next floor gets fresh ones):`,e)}render(){return this.state.failed?null:this.props.children}},zw=(0,v.memo)(function({floor:e}){return Pw?null:(0,K.jsx)(Rw,{children:(0,K.jsx)(v.Suspense,{fallback:null,children:(0,K.jsx)(Lw,{floor:e})})})});function Bw({position:e,size:t,px:n,draw:r,deps:i,rotationY:a=Math.PI}){let o=IS(n[0],n[1],r,i);return(0,K.jsxs)(`mesh`,{position:e,rotation:[0,a,0],children:[(0,K.jsx)(`planeGeometry`,{args:t}),(0,K.jsx)(`meshBasicMaterial`,{map:o,transparent:!0,toneMapped:!1})]})}function Vw({repo:e}){let t=q(e=>e.agents),n=(0,v.useMemo)(()=>jb(t,e.id),[t,e.id]),r=(0,v.useMemo)(()=>new Map(n.filter(e=>e.role===`dev`).map(e=>[e.desk,e])),[n]),i=(0,v.useMemo)(()=>new Map(n.filter(e=>e.role===`qa`).map(e=>[e.desk,e])),[n]),a=n.filter(e=>e.status===`working`||e.status===`preparing`).length,o=q(e=>e.qa),s=Object.values(o).filter(t=>t.repoId===e.id&&t.status!==`passed`).length,c=Object.values(o).filter(t=>t.repoId===e.id&&t.status===`passed`).length,l=e.fullName.split(`/`)[1]??e.fullName,u=lS(e.color,.24);return(0,K.jsxs)(`group`,{children:[(0,K.jsx)(ew,{accent:e.color,floorColor:`#d9b48a`,seed:e.floor}),ox.map(e=>(0,K.jsx)(qC,{position:[0,.004,e+.35],size:[24.4,2.9],color:u},e)),Array.from({length:sx},(t,n)=>{let{x:i,z:a}=lx(n);return(0,K.jsx)(MC,{agent:r.get(n)??null,accent:e.color,repoId:e.id,position:[i,0,a]},n)}),(0,K.jsx)(qC,{position:[mx.x-.4,.005,-2],size:[3.4,10.4],color:`#ffd8bf`}),mx.stations.map((t,n)=>{let{x:r,z:a}=gx(n);return(0,K.jsx)(MC,{role:`qa`,rotationY:hx,agent:i.get(n)??null,accent:e.color,repoId:e.id,position:[r,0,a]},`qa${n}`)}),(0,K.jsx)(Bw,{position:[15.97,3.2,-2],rotationY:-Math.PI/2,size:[3.2,.55],px:[768,132],draw:e=>OS(e,768,132,[{text:`🔍 QA LAB · ${s} in testing`,size:56}],`#ff9f68`),deps:[s]}),(0,K.jsx)(VC,{repo:e,agents:n}),(0,K.jsx)(BC,{repo:e,agents:n}),(0,K.jsx)(PC,{floorLabel:`▲ ${e.floor} · ${l}`,accent:e.color}),(0,K.jsx)(zw,{floor:`office`}),(0,K.jsx)(Bw,{position:[-4.6,1.95,11.97],size:[4.2,1.3],px:[1024,317],draw:t=>OS(t,1024,317,[{text:`FLOOR ${e.floor}`,size:58,color:`rgba(255,255,255,0.85)`,weight:600},{text:e.fullName,size:74},{text:e.description||`no description`,size:36,weight:500,color:`rgba(255,255,255,0.85)`}],e.color),deps:[e.floor,e.fullName,e.description,e.color]}),(0,K.jsx)(Bw,{position:[4.6,1.95,11.97],size:[4.2,1.3],px:[1024,317],draw:t=>OS(t,1024,317,[{text:`👩💻 ${n.length} on the team`,size:54,color:`#2d3142`},{text:`⚙️ ${a} busy · 🔍 ${s} in QA · ✅ ${c} to merge`,size:46,color:`#2d3142`,weight:600},{text:`📋 ${e.issues.length} open issue${e.issues.length===1?``:`s`}${e.autoAssign?` · ⚡ auto`:``}`,size:44,color:`#5c6078`,weight:500}],`#fffdf5`),deps:[n.length,a,s,c,e.issues.length,e.autoAssign]}),(0,K.jsx)(HC,{position:[-7.1,0,-11.3]}),(0,K.jsx)(HC,{position:[7.1,0,-11.3]}),(0,K.jsx)(HC,{position:[-15.3,0,11.2],scale:1.2}),(0,K.jsx)(HC,{position:[-11,0,-11.3],scale:1.1}),(0,K.jsx)(HC,{position:[15.3,0,11.3],scale:.9,pot:`#8338ec`}),(0,K.jsx)(WC,{position:[-15.1,0,6.5],rotationY:-Math.PI/2,color:lS(e.color,-.05)}),(0,K.jsx)(GC,{position:[-13.4,0,6.5],rotationY:Math.PI/2}),(0,K.jsx)(KC,{position:[15.55,0,7]}),(0,K.jsx)(UC,{position:[15.5,0,-9.5]}),(0,K.jsx)(JC,{position:[-10,2.75,-11.95]}),(0,K.jsx)(Bw,{position:[10,2.2,-11.97],rotationY:0,size:[2.2,1.4],px:[512,326],draw:e=>OS(e,512,326,[{text:`🚀`,size:90},{text:`SHIP IT`,size:64},{text:`small PRs, happy reviewers`,size:26,weight:500}],`#3a86ff`),deps:[]})]})}var Hw=`#ff8a5b`,Uw=`#9b5de5`;function Ww(){let e=q(e=>e.repos),t=q(e=>e.agents),n=q(e=>e.settings),r=q(e=>e.qa),i=q(e=>e.requests);return(0,v.useMemo)(()=>{let a=Object.values(t),o=a.filter(e=>e.status===`working`||e.status===`preparing`).length,s=e.reduce((e,t)=>e+t.pulls.filter(e=>e.state===`OPEN`).length,0),c=e.reduce((e,t)=>e+t.pulls.filter(e=>e.state===`MERGED`).length,0),l=e.reduce((e,t)=>e+t.issues.length,0),u=e.map(e=>({floor:e.floor,name:e.fullName,color:e.color,team:a.filter(t=>t.repoId===e.id).length,working:a.filter(t=>t.repoId===e.id&&(t.status===`working`||t.status===`preparing`)).length,prs:e.pulls.filter(e=>e.state===`OPEN`).length})),d=Object.values(r),f=d.filter(e=>e.status!==`passed`).length,p=d.filter(e=>e.status===`passed`).length,m=Fb(i).length;return{repos:e.length,agents:a.length,working:o,openPrs:s,inQa:f,readyToMerge:p,merged:c,issues:l,floors:u,max:n.sessionLimit,pending:m}},[e,t,n,r,i])}function Gw(){let e=Ww(),t=FS({id:`manager-console`,label:`Open the manager's console`,action:{kind:`manager`}},3.2),n=IS(1024,640,t=>{let n=t.createLinearGradient(0,0,1024,640);n.addColorStop(0,`#20224a`),n.addColorStop(1,`#3a1f4d`),t.fillStyle=n,t.fillRect(0,0,1024,640),t.fillStyle=`#ffd6a5`,t.font=`700 54px ${fS}`,t.textBaseline=`middle`,t.fillText(`✻ Manager Console`,50,70),[[`Floors (repos)`,`${e.repos}`],[`Agents on staff`,`${e.agents}`],[`Sessions running`,e.max?`${e.working} / ${e.max}`:`${e.working}`],[`Open issues`,`${e.issues}`],[`PRs in QA / ready to merge`,`${e.inQa} / ${e.readyToMerge}`],[`📄 Hiring decisions waiting`,`${e.pending}`]].forEach(([e,n],r)=>{let i=150+r*68;pS(t,50,i-30,924,60,16),t.fillStyle=`rgba(255,255,255,0.07)`,t.fill(),t.fillStyle=`#c9c9ee`,t.font=`500 34px ${fS}`,t.fillText(e,76,i),t.fillStyle=`#ffffff`,t.font=`700 38px ${fS}`,t.textAlign=`right`,t.fillText(n,948,i),t.textAlign=`left`}),t.fillStyle=`#7CFFB2`,t.font=`600 32px ${fS}`,t.fillText(`Press E or click to manage floors, team & issues`,50,592)},[e]);return(0,K.jsxs)(`group`,{ref:t,position:[yx.x,0,yx.z],children:[(0,K.jsx)(J,{size:[yx.w,.08,yx.d],position:[0,.76,0],color:`#8d5a3b`,outline:!0}),(0,K.jsx)(J,{size:[yx.w-.1,.72,.06],position:[0,.37,-yx.d/2+.05],color:`#6f4530`}),(0,K.jsx)(J,{size:[.08,.72,yx.d-.1],position:[-yx.w/2+.08,.37,0],color:`#6f4530`}),(0,K.jsx)(J,{size:[.08,.72,yx.d-.1],position:[yx.w/2-.08,.37,0],color:`#6f4530`}),(0,K.jsx)(J,{size:[.1,.34,.1],position:[0,.97,-.15],color:`#adb5bd`}),(0,K.jsx)(J,{size:[.4,.03,.26],position:[0,.815,-.15],color:`#adb5bd`,outline:!0}),(0,K.jsx)(J,{size:[1.42,.92,.06],position:[0,1.55,-.18],color:`#343a40`,outline:!0}),(0,K.jsxs)(`mesh`,{position:[0,1.55,-.145],children:[(0,K.jsx)(`planeGeometry`,{args:[1.34,.84]}),(0,K.jsx)(`meshBasicMaterial`,{map:n,toneMapped:!1})]}),(0,K.jsx)(J,{size:[.5,.025,.16],position:[0,.815,.25],color:`#f4f4f8`,outline:!0}),(0,K.jsx)(_C,{r:.05,h:.11,position:[.9,.855,.1],color:`#ffd166`,outline:!0}),(0,K.jsx)(J,{size:[.3,.2,.03],position:[-.95,.9,-.1],rotation:[-.3,.3,0],color:`#e9c46a`,outline:!0}),(0,K.jsxs)(`group`,{position:[0,0,-1.1],children:[(0,K.jsx)(J,{size:[.64,.12,.6],position:[0,.48,0],color:`#2b2d42`,outline:!0}),(0,K.jsx)(J,{size:[.62,.8,.12],position:[0,.95,-.3],color:`#2b2d42`,outline:!0}),(0,K.jsx)(_C,{r:.04,h:.4,position:[0,.22,0],color:`#6c757d`}),(0,K.jsx)(_C,{r:.3,h:.04,position:[0,.03,0],color:`#6c757d`})]})]})}function Kw(){let e=Ww(),t=FS({id:`directory`,label:`Floor directory — take the elevator`,action:{kind:`elevator`}},4),n=IS(768,560,t=>{pS(t,0,0,768,560,30),t.fillStyle=`#23263a`,t.fill(),t.fillStyle=`#ffd6a5`,t.font=`700 46px ${fS}`,t.textBaseline=`middle`,t.fillText(`Directory`,36,52);let n=[...e.floors].sort((e,t)=>t.floor-e.floor).slice(0,7);n.forEach((e,n)=>{let r=118+n*58;t.fillStyle=e.color,pS(t,36,r-22,54,44,12),t.fill(),t.fillStyle=`#1f2233`,t.font=`700 30px ${fS}`,t.textAlign=`center`,t.fillText(String(e.floor),63,r+1),t.textAlign=`left`,t.fillStyle=`#ffffff`,t.font=`600 28px ${fS}`;let i=e.name.length>24?`${e.name.slice(0,23)}…`:e.name;t.fillText(i,108,r),t.fillStyle=`#a9adc6`,t.font=`500 24px ${fS}`,t.textAlign=`right`,t.fillText(`${e.working}/${e.team} busy · ${e.prs} PR`,740,r),t.textAlign=`left`});let r=118+n.length*58;t.fillStyle=Hw,pS(t,36,r-22,54,44,12),t.fill(),t.fillStyle=`#1f2233`,t.font=`700 30px ${fS}`,t.textAlign=`center`,t.fillText(`G`,63,r+1),t.textAlign=`left`,t.fillStyle=`#ffffff`,t.font=`600 28px ${fS}`,t.fillText(`Lobby & manager's office`,108,r),e.floors.length===0&&(t.fillStyle=`#a9adc6`,t.font=`500 26px ${fS}`,t.fillText(`No floors yet: connect a repo in the`,36,r+80),t.fillText(`manager's office (back left corner).`,36,r+116))},[e]);return(0,K.jsx)(`group`,{ref:t,position:[4.4,1.75,11.97],rotation:[0,Math.PI,0],children:(0,K.jsxs)(`mesh`,{children:[(0,K.jsx)(`planeGeometry`,{args:[2.6,1.9]}),(0,K.jsx)(`meshBasicMaterial`,{map:n,transparent:!0,toneMapped:!1})]})})}function qw(){let e=Ww(),t=IS(512,160,t=>OS(t,512,160,[{text:`🏆 ${e.merged} PRs merged`,size:50,color:`#2d3142`}],`#ffe8a3`),[e.merged]),n=Math.min(8,e.merged);return(0,K.jsxs)(`group`,{position:[12,0,-11.45],children:[(0,K.jsx)(J,{size:[4.4,2.1,1],position:[0,1.05,0],color:`#b08968`,outline:!0}),(0,K.jsx)(J,{size:[4.1,1.2,.8],position:[0,1.2,.12],color:`#fdf6e3`,shadow:!1}),(0,K.jsx)(J,{size:[4.1,.04,.8],position:[0,1.2,.12],color:`#b08968`,shadow:!1}),Array.from({length:n},(e,t)=>(0,K.jsxs)(`group`,{position:[-1.7+t%4*1.1,t<4?.62:1.22,.2],children:[(0,K.jsx)(_C,{r:.08,rTop:.16,h:.22,position:[0,.2,0],color:`#ffd43b`,outline:!0}),(0,K.jsx)(_C,{r:.03,h:.1,position:[0,.05,0],color:`#ffd43b`}),(0,K.jsx)(J,{size:[.2,.04,.2],position:[0,.01,0],color:`#495057`})]},t)),(0,K.jsxs)(`mesh`,{position:[0,2.45,.02],children:[(0,K.jsx)(`planeGeometry`,{args:[2.4,.75]}),(0,K.jsx)(`meshBasicMaterial`,{map:t,transparent:!0,toneMapped:!1})]})]})}function Jw(){let e=q(e=>e.agents.ceo),t=q(e=>e.ceo),n=Fb(q(e=>e.requests)).length,r=e?.status===`working`?t.job?.label??`Working`:`Free for a chat (press P)`,i=t.queue.length?`${t.queue[0].label}${t.queue.length>1?` (+${t.queue.length-1})`:``}`:`nothing queued`;return(0,K.jsx)(Bw,{position:[15.97,2.05,Sx.z],rotationY:-Math.PI/2,size:[3.4,1.9],px:[816,456],draw:t=>OS(t,816,456,[{text:`🧠 ${e?.name??`CEO`}'s board`,size:54},{text:`Now: ${r}`,size:36,weight:600},{text:`Next: ${i}`,size:32,weight:500,color:`rgba(255,255,255,0.8)`},{text:n?`📄 ${n} candidate${n===1?``:`s`} waiting for you`:`📄 no candidates waiting`,size:34,weight:600,color:n?`#ffe066`:`#ffffff`}],`#3c2a63`),deps:[e?.name,r,i,n]})}function Yw(){let e=xx,t=q(e=>e.agents.ceo);return(0,K.jsxs)(`group`,{children:[(0,K.jsx)(qC,{position:[(e.minX+e.maxX)/2,.005,(e.minZ+e.maxZ)/2],size:[e.maxX-e.minX,e.maxZ-e.minZ],color:`#e6dcff`}),(0,K.jsx)(XC,{from:[e.minX,e.minZ],to:[e.minX,e.maxZ]}),(0,K.jsx)(XC,{from:[e.minX,e.maxZ],to:[e.doorMinX,e.maxZ]}),(0,K.jsx)(XC,{from:[e.doorMaxX,e.maxZ],to:[e.maxX,e.maxZ]}),(0,K.jsx)(J,{size:[e.doorMaxX-e.doorMinX,.5,.1],position:[(e.doorMinX+e.doorMaxX)/2,2.55,e.maxZ],color:`#8d99ae`}),(0,K.jsx)(Bw,{position:[(e.doorMinX+e.doorMaxX)/2,3.1,e.maxZ+.06],rotationY:0,size:[3.4,.5],px:[816,120],draw:e=>OS(e,816,120,[{text:`CEO${t?` · ${t.name}`:``}`,size:52}],Uw),deps:[t?.name]}),t&&(0,K.jsx)(MC,{agent:t,accent:Uw,repoId:``,position:[Sx.x,0,Sx.z]}),(0,K.jsx)(Jw,{}),(0,K.jsx)(HC,{position:[e.maxX-.7,0,e.maxZ-.7],scale:1.1,pot:Uw}),(0,K.jsx)(HC,{position:[e.minX+.6,0,e.maxZ-.6],scale:.9})]})}function Xw(e){return{id:e.id,name:e.name,repoId:e.repoId,role:e.role,title:e.title,specialty:e.specialty,brief:e.brief,hiredBy:`ceo`,look:e.look,task:null,desk:0,color:e.color,hair:e.hair,skin:e.skin,model:e.model,effort:e.effort,cli:``,terminal:!1,status:`idle`,issueNumber:null,issueTitle:null,branch:null,prNumber:null,prUrl:null,currentTool:null,startedAt:null,endedAt:null,costUsd:0,turns:0,browserUrl:null,hasScreenshot:!1,screenshotAt:null,lastError:null}}function Zw({req:e}){let t=q(t=>t.repos.find(t=>t.id===e.repoId)?.floor??null),n=IS(512,128,n=>DS(n,512,128,e.name,e.title,t,e.color),[e.name,e.title,t,e.color]);return(0,K.jsx)(Oy,{position:[0,1.95,-.1],children:(0,K.jsxs)(`mesh`,{children:[(0,K.jsx)(`planeGeometry`,{args:[1.15,.29]}),(0,K.jsx)(`meshBasicMaterial`,{map:n,transparent:!0,toneMapped:!1,depthWrite:!1})]})})}function Qw({z:e,req:t}){let n=FS(t?{id:`candidate-${t.id}`,label:`Read ${t.name}'s resume (${t.title})`,action:{kind:`phone`,tab:`hires`,requestId:t.id}}:null,3.2),r=(0,v.useMemo)(()=>t?Xw(t):null,[t]),i=`#06d6a0`;return(0,K.jsxs)(`group`,{ref:n,position:[Cx.x,0,e],rotation:[0,wx,0],children:[(0,K.jsx)(J,{size:[.52,.08,.5],position:[0,.44,0],color:i,outline:!0}),(0,K.jsx)(J,{size:[.48,.42,.07],position:[0,.72,.28],color:i,outline:!0}),[[-.22,-.2],[.22,-.2],[-.22,.2],[.22,.2]].map(([e,t])=>(0,K.jsx)(J,{size:[.05,.42,.05],position:[e,.2,t],color:`#444a5c`},`${e}${t}`)),r&&(0,K.jsx)(hC,{agent:r}),t&&(0,K.jsx)(Zw,{req:t})]})}function $w(){let e=q(e=>e.requests),t=(0,v.useMemo)(()=>Fb(e).filter(e=>e.kind===`hire`),[e]),n=t.length;return(0,K.jsxs)(`group`,{children:[Cx.seats.map((e,n)=>(0,K.jsx)(Qw,{z:e,req:t[n]??null},e)),(0,K.jsx)(Bw,{position:[15.97,2.5,(Cx.seats[0]+Cx.seats[Cx.seats.length-1])/2],rotationY:-Math.PI/2,size:[3.6,.62],px:[864,150],draw:e=>OS(e,864,150,[{text:n?`🪑 Waiting room · ${n} candidate${n===1?``:`s`}${n>Cx.seats.length?` (${n-Cx.seats.length} more outside)`:``}`:`🪑 Waiting room`,size:50}],`#06a77d`),deps:[n]})]})}function eT(){let e=vx,t=q(e=>e.user),n=q(e=>e.settings.managerName),r=q(e=>e.settings.companyName),i=n||t;return(0,K.jsxs)(`group`,{children:[(0,K.jsx)(ew,{accent:Hw,floorColor:`#e2c7a3`,westWindows:[1.5,8],eastWindows:[-2.5,3.6],seed:0}),(0,K.jsx)(qC,{position:[3,.004,3],size:[14,9],color:`#ffd6a5`}),(0,K.jsx)(qC,{position:[(e.minX+e.maxX)/2,.005,(e.minZ+e.maxZ)/2],size:[e.maxX-e.minX,e.maxZ-e.minZ],color:`#cde7e1`}),(0,K.jsx)(XC,{from:[e.maxX,e.minZ],to:[e.maxX,e.maxZ]}),(0,K.jsx)(XC,{from:[e.minX,e.maxZ],to:[e.doorMinX,e.maxZ]}),(0,K.jsx)(XC,{from:[e.doorMaxX,e.maxZ],to:[e.maxX,e.maxZ]}),(0,K.jsx)(J,{size:[e.doorMaxX-e.doorMinX,.5,.1],position:[(e.doorMinX+e.doorMaxX)/2,2.55,e.maxZ],color:`#8d99ae`}),(0,K.jsx)(Bw,{position:[(e.doorMinX+e.doorMaxX)/2,3.1,e.maxZ+.06],rotationY:0,size:[3.4,.5],px:[816,120],draw:e=>OS(e,816,120,[{text:`MANAGER${i?` · ${i}`:``}`,size:52}],`#2b2d42`),deps:[i]}),(0,K.jsx)(Gw,{}),(0,K.jsx)(YC,{position:[-15.6,0,-8],rotationY:Math.PI/2}),(0,K.jsx)(HC,{position:[e.maxX-.6,0,e.minZ+.6],scale:1.1,pot:`#3a86ff`}),(0,K.jsx)(HC,{position:[e.minX+.6,0,e.maxZ-.6],scale:.9}),(0,K.jsx)(Bw,{position:[yx.x,2.3,-11.97],rotationY:0,size:[2.4,1.2],px:[512,256],draw:e=>OS(e,512,256,[{text:`⭐`,size:70},{text:`World’s Best`,size:44,weight:600},{text:`Agent Wrangler`,size:50}],`#9b5de5`),deps:[]}),(0,K.jsxs)(`group`,{position:[bx.x,0,bx.z],children:[(0,K.jsx)(J,{size:[bx.w,1.05,bx.d],position:[0,.525,0],color:`#ffffff`,outline:!0}),(0,K.jsx)(J,{size:[bx.w+.1,.08,bx.d+.1],position:[0,1.09,0],color:Hw,outline:!0}),(0,K.jsx)(J,{size:[bx.w-.4,.3,.02],position:[0,.6,bx.d/2+.01],color:lS(Hw,.15),shadow:!1}),(0,K.jsxs)(`group`,{position:[0,1.13,-.1],children:[(0,K.jsx)(_C,{r:.2,rTop:.16,h:.4,position:[0,.2,0],color:`#e9ecef`,outline:!0}),(0,K.jsx)(vC,{r:.22,position:[0,.58,0],color:`#f8f9fa`,outline:!0}),(0,K.jsx)(`mesh`,{position:[-.08,.6,.2],material:sS(`#4cc9f0`),children:(0,K.jsx)(`sphereGeometry`,{args:[.035,10,8]})}),(0,K.jsx)(`mesh`,{position:[.08,.6,.2],material:sS(`#4cc9f0`),children:(0,K.jsx)(`sphereGeometry`,{args:[.035,10,8]})}),(0,K.jsx)(_C,{r:.012,h:.2,position:[0,.88,0],color:`#adb5bd`}),(0,K.jsx)(`mesh`,{position:[0,.99,0],material:sS(Hw),children:(0,K.jsx)(`sphereGeometry`,{args:[.045,10,8]})})]})]}),(0,K.jsx)(Bw,{position:[3,2.25,-11.97],rotationY:0,size:[7,1.6],px:[1400,320],draw:e=>OS(e,1400,320,[{text:`✻ ${r||`cubefarm`}`,size:120},{text:r?`powered by a team of AI coding agents`:`a team of AI coding agents`,size:48,weight:500}],Hw),deps:[r]}),(0,K.jsx)(Yw,{}),(0,K.jsx)($w,{}),(0,K.jsx)(PC,{floorLabel:`▲ G · Lobby`,accent:Hw}),(0,K.jsx)(zw,{floor:`lobby`}),(0,K.jsx)(Kw,{}),(0,K.jsx)(qw,{}),(0,K.jsx)(JC,{position:[8.4,2.8,-11.95]}),(0,K.jsx)(WC,{position:[11.5,0,4],rotationY:Math.PI,color:`#4cc9f0`}),(0,K.jsx)(GC,{position:[11.5,0,6.2]}),(0,K.jsx)(HC,{position:[15.3,0,11.3],scale:1.2}),(0,K.jsx)(HC,{position:[-15.3,0,11.3],scale:1.2,pot:`#06d6a0`}),(0,K.jsx)(HC,{position:[-3,0,11.4]}),(0,K.jsx)(HC,{position:[3,0,-11.3],scale:.8})]})}async function tT(e,t,n){let r=await fetch(t,{method:e,headers:n===void 0?void 0:{"Content-Type":`application/json`},body:n===void 0?void 0:JSON.stringify(n)}),i=await r.json().catch(()=>({}));if(!r.ok){let e=i.error??`${r.status} ${r.statusText}`;throw q.getState().pushToast(`error`,e),Error(e)}return i}var nT=e=>`/api/repos/${encodeURIComponent(e)}`,Y={githubRepos:e=>tT(`GET`,`/api/github/repos${e?`?owner=${encodeURIComponent(e)}`:``}`),connectRepo:(e,t={})=>tT(`POST`,`/api/repos`,{fullName:e,...t}),createRepo:e=>tT(`POST`,`/api/repos/new`,e),folders:e=>tT(`GET`,`/api/folders${e?`?dir=${encodeURIComponent(e)}`:``}`),connectFolder:(e,t={})=>tT(`POST`,`/api/folders/connect`,{path:e,...t}),publishFolder:e=>tT(`POST`,`/api/folders/publish`,e),setup:e=>tT(`POST`,`/api/setup`,e),updateRepo:(e,t)=>tT(`PATCH`,nT(e),t),startPreview:(e,t)=>tT(`POST`,`${nT(e)}/preview`,t?{pr:t}:{}),stopPreview:e=>tT(`DELETE`,`${nT(e)}/preview`),disconnectRepo:e=>tT(`DELETE`,nT(e)),syncRepo:e=>tT(`POST`,`${nT(e)}/sync`),syncFolder:e=>tT(`POST`,`${nT(e)}/sync-folder`),createIssue:(e,t,n,r,i)=>tT(`POST`,`${nT(e)}/issues`,{title:t,body:n,assignTo:r,specialty:i}),planFloor:(e,t)=>tT(`POST`,`${nT(e)}/plan`,{mission:t}),onboardFloor:e=>tT(`POST`,`${nT(e)}/onboard`),mergePull:(e,t,n=`squash`)=>tT(`POST`,`${nT(e)}/pulls/${t}/merge`,{method:n}),closePull:(e,t)=>tT(`POST`,`${nT(e)}/pulls/${t}/close`),sendToQa:(e,t)=>tT(`POST`,`${nT(e)}/pulls/${t}/qa`),hireAgent:(e,t={})=>tT(`POST`,`${nT(e)}/agents`,t),updateAgent:(e,t)=>tT(`PATCH`,`/api/agents/${e}`,t),fireAgent:e=>tT(`DELETE`,`/api/agents/${e}`),assign:(e,t,n)=>tT(`POST`,`/api/agents/${e}/assign`,{issueNumber:t,note:n}),stop:e=>tT(`POST`,`/api/agents/${e}/stop`),reset:e=>tT(`POST`,`/api/agents/${e}/reset`),message:(e,t)=>tT(`POST`,`/api/agents/${e}/message`,{text:t}),updateSettings:e=>tT(`PATCH`,`/api/settings`,e),updateOffice:async e=>{let t=await tT(`POST`,`/api/office/update`,{action:e});return q.getState().setOfficeUpdate(t),t},messageCeo:e=>tT(`POST`,`/api/ceo/message`,{text:e}),ceoReview:()=>tT(`POST`,`/api/ceo/review`),phoneRead:e=>tT(`POST`,`/api/phone/read`,{at:e}),approveRequest:(e,t={})=>tT(`POST`,`/api/requests/${e}/approve`,t),rejectRequest:(e,t)=>tT(`POST`,`/api/requests/${e}/reject`,{note:t})},rT=.0022,iT=.2;function aT(){return{skip:3,avg:0,pending:null,dropped:0,skipped:0}}function oT(e){e.skip=3,e.avg=0,e.pending=null}var sT=(e,t)=>Math.max(Math.abs(e),Math.abs(t));function cT(e,t,n){return e.avg+=(sT(t,n)-e.avg)*iT,[t,n]}function lT(e,t,n,r){if(!Number.isFinite(t)||!Number.isFinite(n))return null;if(e.skip>0)return e.skip--,e.skipped++,null;let i=sT(t,n);if(i>1e3)return e.dropped++,null;let a=e.pending;if(e.pending=null,a){if(r-a.t<=50&&i>=sT(a.dx,a.dy)*.25)return cT(e,a.dx,a.dy),cT(e,a.dx+t,a.dy+n);e.dropped++}return i>250||i>=48&&i>8*e.avg?(e.pending={dx:t,dy:n,t:r},null):cT(e,t,n)}var uT=.25,dT=`cubefarm:look`,fT={sensitivity:1,invertY:!1,grabOnClose:!0},pT=e=>Math.min(3,Math.max(uT,e));function mT(){try{let e=JSON.parse(localStorage.getItem(dT)??`null`);return{sensitivity:typeof e?.sensitivity==`number`&&Number.isFinite(e.sensitivity)?pT(e.sensitivity):fT.sensitivity,invertY:e?.invertY===!0,grabOnClose:e?.grabOnClose!==!1}}catch{return{...fT}}}var hT=Ty((e,t)=>({...mT(),set:n=>{e({...n,...n.sensitivity===void 0?{}:{sensitivity:pT(n.sensitivity)}});let{sensitivity:r,invertY:i,grabOnClose:a}=t();try{localStorage.setItem(dT,JSON.stringify({sensitivity:r,invertY:i,grabOnClose:a}))}catch{}}})),gT=Ty(()=>({ask:null}));function _T(e){return new Promise(t=>{gT.getState().ask?.resolve(!1),gT.setState({ask:{...e,resolve:t}})})}var vT=()=>gT.getState().ask!==null,yT=e=>gT.subscribe((t,n)=>e(t.ask!==null,n.ask!==null));function bT(e){let t=gT.getState().ask;t&&(gT.setState({ask:null}),t.resolve(e))}function xT(){let e=gT(e=>e.ask);if((0,v.useEffect)(()=>{if(!e)return;let t=e=>{(e.key===`Escape`||e.key===`Enter`)&&(e.preventDefault(),e.stopImmediatePropagation(),bT(e.key===`Enter`))};return window.addEventListener(`keydown`,t,!0),()=>window.removeEventListener(`keydown`,t,!0)},[e]),!e)return null;let t=e.tone??`good`;return(0,K.jsx)(`div`,{className:`confirm-overlay`,onMouseDown:e=>e.target===e.currentTarget&&bT(!1),children:(0,K.jsxs)(`div`,{className:`confirm confirm-${t}`,role:`alertdialog`,"aria-modal":`true`,"aria-label":e.title,children:[(0,K.jsx)(`div`,{className:`confirm-icon`,children:e.icon??(t===`danger`?`⚠️`:t===`warn`?`🤔`:`✨`)}),(0,K.jsx)(`h3`,{children:e.title}),e.body&&(0,K.jsx)(`div`,{className:`confirm-body`,children:e.body}),(0,K.jsxs)(`div`,{className:`confirm-actions`,children:[(0,K.jsx)(`button`,{className:`btn btn-ghost`,onClick:()=>bT(!1),children:e.cancel??`Cancel`}),(0,K.jsx)(`button`,{className:`btn ${t===`danger`?`btn-bad`:t===`warn`?`btn-warn`:`btn-good`}`,onClick:()=>bT(!0),autoFocus:!0,children:e.confirm??`OK`})]}),(0,K.jsxs)(`div`,{className:`confirm-keys muted small`,children:[(0,K.jsx)(`kbd`,{children:`Enter`}),` `,e.confirm??`OK`,` · `,(0,K.jsx)(`kbd`,{children:`Esc`}),` `,e.cancel??`Cancel`]})]})})}var ST=()=>{let e=q.getState().held;return e?.kind===`blaster`?e:null},CT={at:-1/0},wT=new Map,TT=[];function ET(){wT.clear(),TT=[]}function DT(e){q.getState().setHeld({kind:`blaster`,id:e,ammo:wT.get(e)??iw.mag,reloadAt:null})}q.subscribe((e,t)=>{let n=t.held;n?.kind!==`blaster`||e.held?.kind===`blaster`&&e.held.id===n.id||wT.set(n.id,aw(n,performance.now()).ammo)});function OT(){let e=q.getState(),t=ST();if(!t||e.travel)return;let n=performance.now(),r=sw(t,CT.at,n);if(!r){let e=aw(t,n);e.reloadAt===null&&e.ammo===0&&$y({freq:1400,to:900,type:`square`,dur:.03,peak:.03,attack:.002});return}CT.at=n,TT.length<iw.mag&&TT.push(t.id),e.setHeld({...t,...r}),sb()}function kT(){let e=ST();if(!e)return;let t=cw(e,performance.now());t&&(q.getState().setHeld({...e,...t}),tb({dur:.08,peak:.06,filter:`bandpass`,freq:900,q:2}),tb({at:.75,dur:.07,peak:.08,filter:`bandpass`,freq:1500,q:2}),setTimeout(()=>{let n=ST();n&&n.id===e.id&&n.reloadAt===t.reloadAt&&q.getState().setHeld({...n,...aw(n,performance.now())})},iw.reloadMs+20))}function AT(){return TT.shift()??null}var jT={tap:150,full:1e3},MT=e=>Math.min(1,Math.max(0,(e-jT.tap)/(jT.full-jT.tap))),NT={x:0,z:0},PT=null;function FT(){let e=q.getState();if(e.held?.kind===`blaster`)return OT();e.held&&e.chargeAt===null&&e.setCharge(performance.now())}function IT(){let e=q.getState();if(!e.held||e.chargeAt===null)return;let t=MT(performance.now()-e.chargeAt);PT={id:e.held.id,power:t,at:performance.now()},tb({dur:.14+t*.08,peak:.03+t*.05,filter:`bandpass`,freq:500,to:1500+t*900,q:.9}),e.setHeld(null)}function LT(){let e=q.getState();e.held&&e.setHeld(null)}function RT(e){let t=PT;return!t||t.id!==e||performance.now()-t.at>500?null:(PT=null,t.power)}function zT(e,t){return(e.overlay&&!t.overlay||e.confirm&&!t.confirm)&&!t.overlay&&!t.confirm}function BT(e,t,n){return n.enabled&&n.started&&zT(e,t)}function VT(e,t){let n=(n,r)=>{zT(n,r)&&(t(),BT(n,r,{started:q.getState().started,enabled:hT.getState().grabOnClose})&&e())},r=q.subscribe((e,t)=>{if(e.overlay===t.overlay)return;let r=vT();n({overlay:!!t.overlay,confirm:r},{overlay:!!e.overlay,confirm:r})}),i=yT((e,t)=>{let r=!!q.getState().overlay;e!==t&&n({overlay:r,confirm:t},{overlay:r,confirm:e})});return()=>{r(),i()}}var HT=new Map;function UT(e,t){return HT.set(e,t),()=>{HT.get(e)===t&&HT.delete(e)}}function WT(e){HT.get(e)?.()}var GT=null,KT=400,qT=0,JT=[`mousedown`,`mouseup`,`click`,`dblclick`],YT=()=>{qT=performance.now()+KT};function XT(){let e=q.getState();if(!GT||e.overlay||!e.started||vT())return;let t=GT;ZT(t,{unadjustedMovement:!0})?.catch?.(e=>{e instanceof DOMException&&e.name===`NotSupportedError`&&ZT(t)?.catch?.(()=>void 0)})}function ZT(e,t){try{return e.requestPointerLock?.(t)}catch{return}}var QT={dropped:0,skipped:0};window.__swarmLook=QT;function $T(e,t=`key`){let n=q.getState();if(qT=performance.now()+KT,e.action.kind===`pickup`&&rw(e.action.toyId)){DT(e.action.toyId);return}if(e.action.kind===`pickup`){n.setHeld({kind:`ball`,id:e.action.toyId});return}if(e.action.kind===`poke`){WT(e.action.toyId);return}if(e.action.kind===`hire`){let{repoId:r,role:i}=e.action,a=()=>Y.hireAgent(r,{role:i}).then(()=>n.pushToast(`success`,i===`qa`?`New QA tester hired! They will take the next free station in the QA lab.`:`New teammate hired! They will sit at the next free desk.`)).catch(()=>void 0);if(t===`key`){a();return}document.pointerLockElement&&document.exitPointerLock(),_T({icon:i===`qa`?`🔍`:`🪑`,title:i===`qa`?`Hire a QA tester for this station?`:`Hire an agent for this desk?`,confirm:`Hire`}).then(e=>{e&&a()});return}n.openOverlay(e.action)}var eE=e=>{let t=e.target;return!!t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName===`SELECT`||t.isContentEditable)};function tE({colliders:e,floor:t}){let{camera:n,gl:r}=W_(),i=(0,v.useRef)(new Set),a=(0,v.useRef)({yaw:ex.yaw,pitch:-.05}),o=(0,v.useRef)(0),s=(0,v.useMemo)(()=>new nf,[]),c=(0,v.useMemo)(()=>new B(0,0),[]),l=(0,v.useRef)(0),u=(0,v.useMemo)(aT,[]),d=(0,v.useRef)(!1);(0,v.useEffect)(()=>{let e=d.current?null:Eb();if(d.current=!0,e&&e.floor===t){n.position.set(e.x,Zb,e.z),a.current={yaw:e.yaw,pitch:e.pitch};return}n.position.set(ex.x,Zb,ex.z),a.current={yaw:ex.yaw,pitch:-.05}},[t,n]);let f=(0,v.useRef)(0);return(0,v.useEffect)(()=>{},[n]),(0,v.useEffect)(()=>{GT=r.domElement;let e=e=>{if(e.button!==0)return;if(document.pointerLockElement!==r.domElement)return XT();let t=q.getState();!t.started||t.overlay||t.travel||vT()||(t.held?FT():t.focus&&$T(t.focus,`click`))},t=e=>{e.button===0&&IT()},n=e=>{performance.now()>=qT||(e.stopPropagation(),e.preventDefault())},o=()=>{oT(u);let e=document.pointerLockElement===r.domElement;e||LT(),q.getState().setLocked(e)},s=e=>{if(document.pointerLockElement!==r.domElement||!document.hasFocus())return;let t=lT(u,e.movementX,e.movementY,e.timeStamp);if(QT.dropped=u.dropped,QT.skipped=u.skipped,!t)return;let{sensitivity:n,invertY:i}=hT.getState(),o=rT*n;a.current.yaw-=t[0]*o,a.current.pitch=Math.max(-1.35,Math.min(1.35,a.current.pitch-t[1]*o*(i?-1:1)))},c=e=>{if(eE(e))return;let t=q.getState();e.code===`KeyM`&&!e.repeat&&!vT()&&(Qy(),t.pushToast(`info`,Yy().muted?`🔇 Sound off (M to turn it back on)`:`🔊 Sound on`)),!(t.overlay||!t.started||vT())&&(i.current.add(e.code),e.code===`KeyE`&&!e.repeat&&t.focus&&$T(t.focus),e.code===`KeyF`&&!e.repeat&&!t.travel&&FT(),e.code===`KeyG`&&!e.repeat&<(),e.code===`KeyR`&&!e.repeat&&!t.travel&&kT(),e.code===`KeyH`&&t.openOverlay({kind:`help`}),e.code===`KeyP`&&(e.preventDefault(),t.openOverlay({kind:`phone`,tab:Fb(t.requests).length&&!Pb(t.messages,t.phoneReadAt)?`hires`:`chat`})))},l=e=>{i.current.delete(e.code),e.code===`KeyF`&&IT()},d=()=>{i.current.clear(),q.getState().setCharge(null)};r.domElement.addEventListener(`mousedown`,e),window.addEventListener(`mouseup`,t);for(let e of JT)window.addEventListener(e,n,!0);document.addEventListener(`pointerlockchange`,o),document.addEventListener(`mousemove`,s),window.addEventListener(`keydown`,c),window.addEventListener(`keyup`,l),window.addEventListener(`blur`,d);let f=VT(XT,YT);return()=>{f(),r.domElement.removeEventListener(`mousedown`,e),window.removeEventListener(`mouseup`,t);for(let e of JT)window.removeEventListener(e,n,!0);document.removeEventListener(`pointerlockchange`,o),document.removeEventListener(`mousemove`,s),window.removeEventListener(`keydown`,c),window.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,d)}},[r,u]),G_((t,r)=>{let u=Math.min(r,.05),d=q.getState();(d.overlay||vT())&&i.current.clear();let p=i.current,m=(p.has(`KeyW`)||p.has(`ArrowUp`)?1:0)-(p.has(`KeyS`)||p.has(`ArrowDown`)?1:0),h=(p.has(`KeyD`)||p.has(`ArrowRight`)?1:0)-(p.has(`KeyA`)||p.has(`ArrowLeft`)?1:0),g=p.has(`ShiftLeft`)||p.has(`ShiftRight`)?6.5:3.6,{yaw:_,pitch:v}=a.current,y=!1;if(NT.x=0,NT.z=0,(m||h)&&!d.travel){let t=Math.hypot(m,h),r=Math.sin(_),i=Math.cos(_),a=(-r*m+i*h)/t*g*u,o=(-i*m-r*h)/t*g*u,s=Ex(n.position.x+a,n.position.z+o,e);u>0&&(NT.x=(s.x-n.position.x)/u,NT.z=(s.z-n.position.z)/u),n.position.x=s.x,n.position.z=s.z,y=!0}o.current+=y?u*g*2.2:0,n.position.y=Zb+(y?Math.sin(o.current)*.035:0),fb(o.current,y,g>5),n.rotation.set(v,_,0,`YXZ`);let b=performance.now();if(d.started&&!d.travel&&b-f.current>1e3&&(f.current=b,Db({floor:d.floor,x:n.position.x,z:n.position.z,yaw:_,pitch:v})),++l.current%3!=0)return;if(d.overlay||d.travel||vT()){d.focus&&d.setFocus(null);return}s.setFromCamera(c,n),s.far=8;let x=[...PS.keys()],S=s.intersectObjects(x,!0),C=null;for(let e of S){let t=e.object;for(;t&&!PS.has(t);)t=t.parent;if(!t)continue;let n=PS.get(t);e.distance<=n.range&&(C={id:n.id,label:n.label,action:n.action});break}d.setFocus(C)}),null}function nE(){let e=q(e=>e.travel),t=q(e=>e.finishTravel);return(0,v.useEffect)(()=>{if(!e)return;e.phase===`closing`&&ob(.75);let n=setTimeout(()=>{e.phase===`closing`?(t(`arrived`),ab()):t(`done`)},e.phase===`closing`?750:650);return()=>clearTimeout(n)},[e,t]),null}function rE(){let e=q(e=>e.floor),t=q(e=>e.repos),n=e===0?null:Ab(t,e),r=!!n,i=(0,v.useMemo)(()=>r?_x():Tx(),[r]),a=Hb(),[o,s]=(0,v.useState)(Rb);return(0,K.jsxs)(by,{shadows:!0,frameloop:a?`never`:`always`,dpr:[1,o],camera:{fov:72,near:.05,far:90,position:[0,1.65,10]},gl:{antialias:!0,powerPreference:`high-performance`},onCreated:({gl:e})=>{e.toneMapping=4,e.toneMappingExposure=1,e.shadowMap.type=2},children:[(0,K.jsx)(`color`,{attach:`background`,args:[`#bfe3ff`]}),(0,K.jsx)(`fog`,{attach:`fog`,args:[`#f3ece2`,30,70]}),(0,K.jsx)(tw,{}),(0,K.jsx)(v.Suspense,{fallback:null,children:n?(0,K.jsx)(Vw,{repo:n},n.id):(0,K.jsx)(eT,{})}),(0,K.jsx)(tE,{colliders:i,floor:e}),(0,K.jsx)(nE,{}),(0,K.jsx)(Ub,{paused:a}),(0,K.jsx)(Gb,{onChange:s}),zb&&(0,K.jsx)(Jb,{paused:a})]})}function iE({held:e}){let t=(0,v.useRef)(null),n=e.reloadAt!==null;(0,v.useEffect)(()=>{if(!n)return;let r=0,i=()=>{let n=ow(e,performance.now());t.current&&(t.current.style.transform=`scaleX(${n??1})`),n!==null&&(r=requestAnimationFrame(i))};return i(),()=>cancelAnimationFrame(r)},[e,n]);let r=e.ammo===0&&!n;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`hud-hint hud-held`,children:[(0,K.jsx)(`kbd`,{children:`Click`}),` / `,(0,K.jsx)(`kbd`,{children:`F`}),` fire · `,(0,K.jsx)(`kbd`,{children:`R`}),` reload · `,(0,K.jsx)(`kbd`,{children:`G`}),` drop`]}),(0,K.jsxs)(`div`,{className:`hud-ammo ${r?`hud-ammo-empty`:``}`,children:[(0,K.jsxs)(`span`,{className:`hud-ammo-count`,children:[`🎯 `,lw(e,performance.now())]}),n&&(0,K.jsx)(`div`,{className:`hud-ammo-bar`,children:(0,K.jsx)(`div`,{ref:t,className:`hud-ammo-fill`})}),n&&(0,K.jsx)(`span`,{className:`hud-ammo-note`,children:`Reloading…`}),r&&(0,K.jsx)(`span`,{className:`hud-ammo-note`,children:`Empty: R to reload`})]})]})}function aE({at:e}){let t=(0,v.useRef)(null),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let r=0,i=()=>{let a=performance.now()-e,o=MT(a);t.current&&(t.current.className=`charge ${a>jT.tap?`charge-on`:``} ${o>=1?`charge-full`:``}`),n.current&&(n.current.style.transform=`scaleX(${o})`),o<1&&(r=requestAnimationFrame(i))};return i(),()=>cancelAnimationFrame(r)},[e]),(0,K.jsx)(`div`,{ref:t,className:`charge`,children:(0,K.jsx)(`div`,{ref:n,className:`charge-fill`})})}function oE(){let e=q(e=>e.held),t=q(e=>e.chargeAt);return e?e.kind===`blaster`?(0,K.jsx)(iE,{held:e}):(0,K.jsxs)(K.Fragment,{children:[t!==null&&(0,K.jsx)(aE,{at:t}),(0,K.jsxs)(`div`,{className:`hud-hint hud-held`,children:[(0,K.jsx)(`kbd`,{children:`Click`}),` / `,(0,K.jsx)(`kbd`,{children:`F`}),` throw · hold to charge · `,(0,K.jsx)(`kbd`,{children:`G`}),` drop`]})]}):null}var sE=[`tool`,`text`,`thinking`,`error`,`done`,`manager`],cE=e=>e.status===`working`||e.status===`preparing`,lE=`cubefarm:workers`;function uE(e){for(let t=e.length-1;t>=Math.max(0,e.length-80);t--){let n=e[t];if(!sE.includes(n.kind)||!n.text.trim())continue;let r=n.text.trim().replace(/^[⏺●✻✔⎿▶]\s*/u,``).replace(/^Manager:\s*/,`you: `);return{text:n.kind===`thinking`?`thinking…`:r,kind:n.kind,t:n.t}}return null}function dE(e){return e.role===`ceo`?e.issueTitle:e.task===`qa`?`QA · PR #${e.prNumber}`:e.task===`fix`?`fixing PR #${e.prNumber}`:e.issueNumber?`#${e.issueNumber}`:null}function fE(e,t){let n=Math.max(0,Math.round((t-e)/1e3));return n<60?`${n}s`:n<3600?`${Math.round(n/60)}m`:`${Math.round(n/3600)}h`}function pE({a:e,now:t}){let n=q(e=>e.openOverlay),r=uE(q(t=>t.logs[e.id])??[]),i=r&&(!e.startedAt||r.t>=e.startedAt)?r:null,a=dE(e);return(0,K.jsxs)(`button`,{className:`wk-row`,onClick:()=>n({kind:`terminal`,agentId:e.id}),title:`Watch ${e.name}'s screen`,children:[(0,K.jsx)(`span`,{className:`wk-dot`,style:{background:e.color}}),(0,K.jsxs)(`span`,{className:`wk-main`,children:[(0,K.jsxs)(`span`,{className:`wk-name`,children:[e.name,a&&(0,K.jsx)(`span`,{className:`wk-task`,children:a})]}),(0,K.jsxs)(`span`,{className:`wk-line`,children:[(0,K.jsx)(`span`,{className:`wk-last wk-last-${i?.kind??`none`}`,title:i?.text,children:e.status===`preparing`?`setting up the worktree…`:i?.text??(e.issueTitle?`working on ${e.issueTitle}`:`starting…`)}),i&&e.status!==`preparing`&&(0,K.jsx)(`span`,{className:`wk-ago`,children:fE(i.t,t)})]})]})]})}function mE(){try{return new Set(JSON.parse(localStorage.getItem(`${lE}:collapsed`)??`[]`))}catch{return new Set}}function hE(){let e=q(e=>e.floor),t=q(e=>e.repos),n=q(e=>e.agents),r=q(e=>e.started),[i,a]=(0,v.useState)(()=>{try{return localStorage.getItem(lE)!==`closed`}catch{return!0}}),[o,s]=(0,v.useState)(mE),[c,l]=(0,v.useState)(Date.now());(0,v.useEffect)(()=>{let e=setInterval(()=>l(Date.now()),5e3);return()=>clearInterval(e)},[]);let u=e=>s(t=>{let n=new Set(t);n.delete(e)||n.add(e);try{localStorage.setItem(`${lE}:collapsed`,JSON.stringify([...n]))}catch{}return n}),d=()=>a(e=>{try{localStorage.setItem(lE,e?`closed`:`open`)}catch{}return!e});if((0,v.useEffect)(()=>{let e=e=>{e.code!==`Tab`||e.repeat||e.altKey||e.ctrlKey||e.metaKey||q.getState().overlay||e.target?.closest?.(`input, textarea, select, [contenteditable="true"]`)||(e.preventDefault(),d())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),!r)return null;let f=n.ceo,p=[...t].sort((t,n)=>t.floor===e?-1:n.floor===e?1:t.floor-n.floor),m=[...f&&cE(f)?[{key:`hq`,label:`HQ`,title:`The CEO, in the lobby`,color:f.color,list:[f]}]:[],...p.map(e=>({key:e.id,label:`${e.floor} · ${e.fullName.split(`/`)[1]}`,title:`Floor ${e.floor}: ${e.fullName}`,color:e.color,list:jb(n,e.id).filter(cE)}))].filter(e=>e.list.length>0),h=m.reduce((e,t)=>e+t.list.length,0);return(0,K.jsxs)(`div`,{className:`workers ${i?``:`workers-closed`}`,children:[(0,K.jsxs)(`button`,{className:`wk-head`,onClick:d,title:i?`Hide the list (Tab)`:`Show who is working (Tab)`,children:[(0,K.jsxs)(`span`,{children:[`Working `,(0,K.jsx)(`b`,{children:h})]}),(0,K.jsxs)(`span`,{className:`wk-chevron`,children:[(0,K.jsx)(`kbd`,{children:`Tab`}),` `,i?`▾`:`▸`]})]}),i&&(0,K.jsxs)(`div`,{className:`wk-list`,children:[h===0&&(0,K.jsx)(`div`,{className:`wk-empty`,children:`Nobody is working right now.`}),m.map(e=>{let t=o.has(e.key);return(0,K.jsxs)(`div`,{className:`wk-group`,children:[(0,K.jsxs)(`button`,{className:`wk-group-head`,onClick:()=>u(e.key),title:`${e.title} · click to ${t?`expand`:`collapse`}`,children:[(0,K.jsx)(`span`,{className:`wk-group-arrow`,children:t?`▸`:`▾`}),(0,K.jsx)(`span`,{className:`wk-swatch`,style:{background:e.color}}),(0,K.jsx)(`span`,{className:`wk-group-name`,children:e.label}),(0,K.jsx)(`span`,{className:`wk-group-count`,children:e.list.length})]}),!t&&e.list.map(e=>(0,K.jsx)(pE,{a:e,now:c},e.id))]},e.key)})]})]})}var gE=12e5,_E=(e,t)=>`${e} ${t}${e===1?``:`s`}`;function vE(e){switch(e.state){case`none`:return`Up to date`;case`available`:return e.behind>0?`${_E(e.behind,`update`)} ready`:`An update is ready`;case`waiting`:case`draining`:return e.running>0?`Waiting for ${_E(e.running,`session`)} to finish`:`Updating shortly…`;case`updating`:return`Updating…`;case`failed`:return`Last update failed: ${e.detail||`unknown error`}`}}function yE(e){return e?e.state===`updating`?`⟳ Updating the office…`:e.state!==`waiting`&&e.state!==`draining`?null:e.running>0?`⟳ Updating the office after ${_E(e.running,`session`)} finish${e.running===1?`es`:``}`:`⟳ Updating the office shortly`:null}var bE=e=>e.state===`draining`&&e.drainingSince?e.drainingSince+gE:null,xE=e=>e.launcher&&e.behind>0&&(e.state===`available`||e.state===`waiting`||e.state===`failed`),SE=e=>e.launcher&&(e.state===`available`||e.state===`waiting`||e.state===`draining`),CE=e=>e?.state===`draining`||e?.state===`updating`;function wE(e,t,n){return!!e&&!!t&&e!==t&&n!==t}function TE(){let e=q(e=>e.restarting?`⟳ Office restarting…`:yE(e.officeUpdate)),t=q(e=>e.overlay),n=q(e=>e.openOverlay);return!e||t?.kind===`manager`?null:(0,K.jsx)(`button`,{className:`office-chip`,onClick:()=>n({kind:`manager`,tab:`floors`}),title:`The office is updating itself. Open the manager's console`,children:e})}function EE(){let e=Ib(),t=q(e=>e.started),n=q(e=>e.overlay),r=q(e=>e.openOverlay),i=q(e=>e.agents.ceo);if(!t||n?.kind===`phone`)return null;let a=i?.status===`working`;return(0,K.jsxs)(`button`,{className:`phone-btn ${e?`phone-btn-ring`:``}`,onClick:()=>r({kind:`phone`}),title:`Your phone (P)`,children:[(0,K.jsx)(`span`,{className:`phone-btn-icon`,children:`📱`}),e>0&&(0,K.jsx)(`span`,{className:`badge phone-btn-badge`,children:e}),(0,K.jsxs)(`span`,{className:`phone-btn-label`,children:[(0,K.jsx)(`kbd`,{children:`P`}),` `,e?`${e} waiting`:a?`${i.name} is working`:`Phone`]})]})}function DE(){let e=q(e=>e.floor),t=q(e=>e.repos),n=q(e=>e.agents),r=q(e=>e.settings),i=q(e=>e.connected),a=q(e=>e.restarting),o=q(e=>e.demo),s=q(e=>e.user),c=q(e=>e.ghReady),l=q(e=>e.ghError),u=q(e=>e.focus),d=q(e=>e.held),f=q(e=>e.overlay),p=q(e=>e.locked),m=q(e=>e.started),h=q(e=>e.travel),g=q(e=>e.toasts),_=q(e=>e.dismissToast),y=e===0?null:Ab(t,e),b=(0,v.useMemo)(()=>Object.values(n).filter(e=>e.status===`working`||e.status===`preparing`).length,[n]),x=y?Object.values(n).filter(e=>e.repoId===y.id):[],S=q(e=>e.qa),C=y?Object.values(S).filter(e=>e.repoId===y.id):[];return(0,K.jsxs)(`div`,{className:`hud`,children:[(0,K.jsxs)(`div`,{className:`hud-floor`,style:{"--accent":y?.color??`#ff8a5b`},children:[(0,K.jsx)(`div`,{className:`floor-num`,children:y?y.floor:`G`}),(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`floor-name`,children:y?y.fullName:`${r.companyName||`cubefarm`} · Lobby`}),(0,K.jsx)(`div`,{className:`floor-sub`,children:y?`${x.length} agents · ${x.filter(e=>e.status===`working`||e.status===`preparing`).length} working · ${C.filter(e=>e.status!==`passed`).length} in QA · ${C.filter(e=>e.status===`passed`).length} ready to merge`:`${t.length} floor${t.length===1?``:`s`} connected`})]})]}),(0,K.jsxs)(`div`,{className:`hud-status`,children:[o&&(0,K.jsx)(`span`,{className:`pill pill-demo`,children:`DEMO`}),(0,K.jsx)(`span`,{className:`pill ${i?`pill-ok`:a?`pill-demo`:`pill-bad`}`,children:i?`● live`:a?`○ restarting`:`○ reconnecting`}),(0,K.jsxs)(`span`,{className:`pill`,children:[`⚙️ `,r.sessionLimit?`${b}/${r.sessionLimit}`:b,` sessions`]}),s&&(0,K.jsxs)(`span`,{className:`pill`,children:[`🐙 `,s]})]}),(0,K.jsx)(hE,{}),(0,K.jsx)(TE,{}),!c&&l&&(0,K.jsxs)(`div`,{className:`hud-banner`,children:[`⚠️ `,l]}),m&&!f&&!h&&(0,K.jsx)(`div`,{className:`crosshair ${u?`crosshair-hot`:``}`}),m&&!f&&u&&(0,K.jsxs)(`div`,{className:`hud-hint`,children:[(0,K.jsx)(`kbd`,{children:`E`}),` `,!d&&(0,K.jsxs)(K.Fragment,{children:[`/ `,(0,K.jsx)(`kbd`,{children:`Click`}),` `]}),u.label]}),m&&!f&&!h&&(0,K.jsx)(oE,{}),m&&!f&&!p&&!h&&(0,K.jsx)(`div`,{className:`hud-resume`,children:`Click to look around`}),m&&!(r.setupDone&&r.tutorialStep>=0)&&(0,K.jsxs)(`div`,{className:`hud-help`,children:[(0,K.jsx)(`kbd`,{children:`WASD`}),` move · `,(0,K.jsx)(`kbd`,{children:`Shift`}),` run · `,(0,K.jsx)(`kbd`,{children:`E`}),` / `,(0,K.jsx)(`kbd`,{children:`Click`}),` interact · `,(0,K.jsx)(`kbd`,{children:`P`}),` phone · `,(0,K.jsx)(`kbd`,{children:`Tab`}),` workers · `,(0,K.jsx)(`kbd`,{children:`H`}),` help · `,(0,K.jsx)(`kbd`,{children:`Esc`}),` free mouse`]}),(0,K.jsx)(`div`,{className:`fade ${h?.phase===`closing`?`fade-in`:``}`,children:h&&(0,K.jsx)(`div`,{className:`fade-label`,children:h.to===0?`Lobby`:`Floor ${h.to}`})}),(0,K.jsx)(EE,{}),(0,K.jsx)(`div`,{className:`toasts`,children:g.map(e=>(0,K.jsx)(`div`,{className:`toast toast-${e.level}`,onClick:()=>_(e.id),children:e.text},e.id))})]})}var OE={unconfigured:`not set up`,stopped:`stopped`,preparing:`checking out`,installing:`installing`,starting:`starting`,running:`running`,error:`error`},kE=[`preparing`,`installing`,`starting`,`running`],AE=[{status:`preparing`,label:`Check out the code`},{status:`installing`,label:`Install dependencies`},{status:`starting`,label:`Start the app`}],jE=`desktop`,ME=12e3;function NE({status:e}){return(0,K.jsx)(`span`,{className:`status status-${e}`,children:OE[e]})}var PE=e=>Object.entries(e).map(([e,t])=>`${e}=${t}`).join(`
|
|
4285
4285
|
`);function FE(e){let t={},n=e.split(/\r?\n/);for(let e=0;e<n.length;e++){let r=n[e].trim();if(!r||r.startsWith(`#`))continue;let i=r.indexOf(`=`),a=i>0?r.slice(0,i).trim():``;if(!a)return{env:t,error:`Line ${e+1}: write it as KEY=value.`};if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(a))return{env:t,error:`Line ${e+1}: “${a}” is not a valid variable name.`};t[a]=r.slice(i+1).trim()}return{env:t,error:null}}function IE({repo:e,saveLabel:t=`Save`,onSaved:n}){let r={command:e.previewConfig.command??``,env:PE(e.previewConfig.env)},[i,a]=(0,v.useState)(r.command),[o,s]=(0,v.useState)(r.env),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(null);(0,v.useEffect)(()=>{a(r.command),s(r.env)},[r.command,r.env]);let f=i.trim()!==r.command||o.trim()!==r.env,p=e.preview.status===`unconfigured`;return(0,K.jsxs)(`form`,{className:`preview-form`,onSubmit:async t=>{t.preventDefault();let r=FE(o);if(r.error)return d(r.error);d(null),l(!0);try{await Y.updateRepo(e.id,{previewCommand:i.trim()||null,previewEnv:r.env}),n?.()}catch(e){d(e.message)}finally{l(!1)}},children:[(0,K.jsxs)(`label`,{className:`field`,children:[(0,K.jsx)(`span`,{children:`Run command`}),(0,K.jsx)(`input`,{value:i,onChange:e=>a(e.target.value),placeholder:p?`e.g. python -m http.server {port}`:`Auto-detected: npm run dev, else npm start, else npm run preview`,spellCheck:!1})]}),(0,K.jsxs)(`label`,{className:`field`,children:[(0,K.jsx)(`span`,{children:`Environment (KEY=value, one per line)`}),(0,K.jsx)(`textarea`,{value:o,onChange:e=>s(e.target.value),rows:3,placeholder:`API_URL=http://localhost:{port}/api
|
|
4286
4286
|
DATA_DIR={tmp}`,spellCheck:!1})]}),(0,K.jsxs)(`p`,{className:`muted small`,children:[`Runs from the repo root in the floor's own preview worktree. `,(0,K.jsx)(`code`,{children:`{port}`}),` is this floor's port (`,e.preview.port,`) and `,(0,K.jsx)(`code`,{children:`PORT`}),` is always set;`,` `,(0,K.jsx)(`code`,{children:`{tmp}`}),` is a scratch folder.`,!p&&` Leave the command empty to use the auto-detected npm script.`]}),u&&(0,K.jsxs)(`div`,{className:`term-error`,children:[`⚠️ `,u]}),(0,K.jsxs)(`div`,{className:`row`,children:[(0,K.jsx)(`button`,{className:`btn btn-small btn-good`,disabled:c||!f&&!n||p&&!i.trim(),children:c?`Saving…`:t}),f&&(0,K.jsx)(`button`,{type:`button`,className:`btn btn-small btn-ghost`,onClick:()=>{a(r.command),s(r.env),d(null)},children:`Undo changes`})]})]})}function LE({repoId:e}){let t=q(t=>t.repos.find(t=>t.id===e)),n=t?.preview,[r,i]=(0,v.useState)(n?.pr??null),[a,o]=(0,v.useState)(jE),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(0),[d,f]=(0,v.useState)(!1),[p,m]=(0,v.useState)(!1),[h,g]=(0,v.useState)(!1),_=(0,v.useRef)(null);(0,v.useEffect)(()=>{n&&kE.includes(n.status)&&i(n.pr)},[n?.pr,n?.startedAt]);let y=`${n?.url}|${n?.startedAt}|${l}`;if((0,v.useEffect)(()=>{if(f(!1),m(!1),n?.status!==`running`)return;let e=setTimeout(()=>m(!0),ME);return()=>clearTimeout(e)},[y,n?.status]),(0,v.useEffect)(()=>{_.current?.querySelector(`select, button`)?.focus()},[]),!t||!n)return(0,K.jsx)(xJ,{title:`App`,children:(0,K.jsx)(`p`,{className:`muted`,children:`This floor no longer exists.`})});let b=async e=>{c(!0);try{await e()}catch{}finally{c(!1)}},x=(e=r)=>b(()=>Y.startPreview(t.id,e??void 0)),S=()=>b(()=>Y.stopPreview(t.id)),C=e=>{jE=e,o(e)},w=kE.includes(n.status),T=t.pulls.filter(e=>e.state===`OPEN`),E=e=>e?`PR #${e}`:t.defaultBranch,D=t.fullName.split(`/`)[1];return(0,K.jsxs)(xJ,{wide:!0,className:`panel-app`,accent:t.color,title:(0,K.jsxs)(`span`,{className:`app-title`,children:[(0,K.jsxs)(`span`,{className:`app-title-name`,children:[`🖥️ `,D]}),(0,K.jsx)(NE,{status:n.status}),n.ref&&n.status!==`stopped`&&n.status!==`unconfigured`&&(0,K.jsxs)(`span`,{className:`muted small app-title-ref`,children:[n.ref,n.commit?` · ${n.commit}`:``]})]}),children:[(0,K.jsxs)(`div`,{className:`app-toolbar`,ref:_,role:`toolbar`,"aria-label":`App controls`,children:[(0,K.jsxs)(`select`,{className:`app-ref`,"aria-label":`Version to run`,value:r??``,disabled:s,onChange:e=>{let t=e.target.value?Number(e.target.value):null;i(t),w&&x(t)},children:[(0,K.jsx)(`option`,{value:``,children:t.defaultBranch}),T.map(e=>(0,K.jsxs)(`option`,{value:e.number,children:[`#`,e.number,` `,e.title]},e.number)),r&&!T.some(e=>e.number===r)&&(0,K.jsxs)(`option`,{value:r,children:[`PR #`,r,` (no longer open)`]})]}),w?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`button`,{className:`btn btn-small`,disabled:s,onClick:()=>void x(),title:`Restart on ${E(r)}`,children:`↻ Restart`}),(0,K.jsx)(`button`,{className:`btn btn-small btn-bad`,disabled:s,onClick:()=>void S(),children:`■ Stop`})]}):(0,K.jsx)(`button`,{className:`btn btn-small btn-good`,disabled:s||n.status===`unconfigured`,onClick:()=>void x(),children:`▶ Start`}),(0,K.jsx)(`button`,{className:`btn btn-small`,disabled:n.status!==`running`,onClick:()=>u(e=>e+1),title:`Reload the app`,children:`⟳ Reload`}),(0,K.jsxs)(`div`,{className:`seg`,role:`group`,"aria-label":`Viewport width`,children:[(0,K.jsx)(`button`,{className:`seg-btn ${a===`desktop`?`seg-on`:``}`,"aria-pressed":a===`desktop`,onClick:()=>C(`desktop`),children:`🖥 Desktop`}),(0,K.jsx)(`button`,{className:`seg-btn ${a===`phone`?`seg-on`:``}`,"aria-pressed":a===`phone`,onClick:()=>C(`phone`),title:`390px wide`,children:`📱 Phone`})]}),(0,K.jsx)(`span`,{className:`spacer`}),n.url?(0,K.jsx)(`a`,{className:`btn btn-small`,href:n.url,target:`_blank`,rel:`noreferrer`,children:`Open in new tab ↗`}):(0,K.jsx)(`button`,{className:`btn btn-small`,disabled:!0,children:`Open in new tab ↗`})]}),n.status===`running`&&n.url?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`app-stage ${a===`phone`?`app-stage-phone`:``}`,children:[(0,K.jsx)(`iframe`,{className:`app-frame`,src:n.url,title:`${D} app (${E(n.pr)})`,sandbox:`allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox allow-modals allow-downloads allow-pointer-lock`,allow:`clipboard-read; clipboard-write; fullscreen; autoplay`,onLoad:()=>f(!0),onError:()=>m(!0)},y),p&&!d&&(0,K.jsxs)(`div`,{className:`app-frame-hint`,role:`status`,children:[(0,K.jsx)(`b`,{children:`The app isn't showing up here.`}),` It may refuse to be shown inside another page (X-Frame-Options or a CSP frame-ancestors rule).`,` `,(0,K.jsx)(`a`,{href:n.url,target:`_blank`,rel:`noreferrer`,children:`Open it in a new tab ↗`})]})]}),(0,K.jsxs)(`p`,{className:`muted small app-foot`,children:[`Blank, or “refused to connect”? The app may block being framed: use `,(0,K.jsx)(`b`,{children:`Open in new tab`}),`. Keys typed in the app stay in the app, so `,(0,K.jsx)(`kbd`,{children:`Esc`}),` only closes this panel when focus is outside it; `,(0,K.jsx)(`b`,{children:`✕`}),` always does.`]})]}):w?(0,K.jsxs)(`div`,{className:`app-state`,role:`status`,children:[(0,K.jsx)(`div`,{className:`app-state-icon app-spin`,children:`⚙️`}),(0,K.jsxs)(`h3`,{children:[`Getting `,E(n.pr),` ready…`]}),(0,K.jsx)(`ol`,{className:`app-steps`,children:AE.map((e,t)=>{let r=AE.findIndex(e=>e.status===n.status);return(0,K.jsxs)(`li`,{className:t<r?`app-step-done`:t===r?`app-step-now`:``,children:[t<r?`✓`:t===r?`●`:`○`,` `,e.label,e.status===`starting`?` on port ${n.port}`:``]},e.status)})}),n.logTail.length>0&&(0,K.jsx)(`pre`,{className:`term app-log`,children:n.logTail.slice(-8).join(`
|
|
4287
4287
|
`)})]}):n.status===`error`?(0,K.jsxs)(`div`,{className:`app-state app-state-left`,children:[(0,K.jsx)(`h3`,{children:`⚠️ The app didn't run`}),(0,K.jsx)(`div`,{className:`term-error`,children:n.error??`The app stopped unexpectedly.`}),(0,K.jsx)(`pre`,{className:`term app-log`,"aria-label":`Last output`,children:n.logTail.length?n.logTail.join(`
|