bit-office 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/index.js +5247 -1840
  2. package/dist/index.js.map +1 -1
  3. package/dist/web/404.html +60 -50
  4. package/dist/web/_next/static/chunks/262.c930af897fc1ae41.js +1 -0
  5. package/dist/web/_next/static/chunks/27.d81804d60bc0f4f0.js +1 -0
  6. package/dist/web/_next/static/chunks/276-7203e26618727a54.js +1 -0
  7. package/dist/web/_next/static/chunks/29.5e4e3e30b02d00ad.js +1 -0
  8. package/dist/web/_next/static/chunks/290.247befe60cb2d28d.js +1 -0
  9. package/dist/web/_next/static/chunks/293.e3a551b691c61d55.js +1 -0
  10. package/dist/web/_next/static/chunks/297.2c14111a5babdc3f.js +1 -0
  11. package/dist/web/_next/static/chunks/336.8eafff71d277c552.js +1 -0
  12. package/dist/web/_next/static/chunks/337.d02d761d8479a26b.js +1 -0
  13. package/dist/web/_next/static/chunks/363.e8a82fede2ce0268.js +1 -0
  14. package/dist/web/_next/static/chunks/368.17f62d3909ec67e9.js +1 -0
  15. package/dist/web/_next/static/chunks/484.9bea1cffd0a0c25d.js +1 -0
  16. package/dist/web/_next/static/chunks/606.64076fb5c9a76eb8.js +1 -0
  17. package/dist/web/_next/static/chunks/611.a9c4df24fea6fe06.js +1 -0
  18. package/dist/web/_next/static/chunks/689-57cf7e431c713dac.js +1 -0
  19. package/dist/web/_next/static/chunks/729.f8f9847d2d765724.js +1 -0
  20. package/dist/web/_next/static/chunks/73.84b7325688d17248.js +1 -0
  21. package/dist/web/_next/static/chunks/757.704acf1f09ac05cb.js +1 -0
  22. package/dist/web/_next/static/chunks/767-52fa35b605461336.js +1 -0
  23. package/dist/web/_next/static/chunks/794.4c6f7ebfcb65fff9.js +1 -0
  24. package/dist/web/_next/static/chunks/810.39f7a3b8c687a8e4.js +1 -0
  25. package/dist/web/_next/static/chunks/849.04bc4b508495ab91.js +1 -0
  26. package/dist/web/_next/static/chunks/853.1223037341c73df9.js +1 -0
  27. package/dist/web/_next/static/chunks/88.219a7fc3735b6d2b.js +1 -0
  28. package/dist/web/_next/static/chunks/880.0799bc27d833d679.js +1 -0
  29. package/dist/web/_next/static/chunks/883.9832cb2358508994.js +1 -0
  30. package/dist/web/_next/static/chunks/895.b20c839956b4d7fa.js +1 -0
  31. package/dist/web/_next/static/chunks/913.d5d32ae6956a650a.js +1 -0
  32. package/dist/web/_next/static/chunks/955.8d32a077607d5dd4.js +1 -0
  33. package/dist/web/_next/static/chunks/999.59e64ccb62c7e043.js +1 -0
  34. package/dist/web/_next/static/chunks/app/_not-found/page-fc90e6f750996b0a.js +1 -0
  35. package/dist/web/_next/static/chunks/app/join/{page-7e3ac640395d940a.js → page-98fb24f2e87aa173.js} +1 -1
  36. package/dist/web/_next/static/chunks/app/layout-a57e585fdbd6e50f.js +1 -0
  37. package/dist/web/_next/static/chunks/app/not-found-fc90e6f750996b0a.js +1 -0
  38. package/dist/web/_next/static/chunks/app/office/page-7e64f4657627f13b.js +1 -0
  39. package/dist/web/_next/static/chunks/app/pair/page-67f86e4adcdf34ea.js +1 -0
  40. package/dist/web/_next/static/chunks/webpack-ecac0d5245a37138.js +1 -0
  41. package/dist/web/_next/static/css/7a1e811bf3f4909f.css +3 -0
  42. package/dist/web/index.html +60 -50
  43. package/dist/web/index.txt +73 -65
  44. package/dist/web/join.html +60 -50
  45. package/dist/web/join.txt +74 -66
  46. package/dist/web/manifest.json +1 -1
  47. package/dist/web/office.html +61 -50
  48. package/dist/web/office.txt +74 -66
  49. package/dist/web/offices/cute-whimsical.jpeg +0 -0
  50. package/dist/web/offices/cute-whimsical.zip +0 -0
  51. package/dist/web/offices/cyberpunk.jpeg +0 -0
  52. package/dist/web/offices/cyberpunk.zip +0 -0
  53. package/dist/web/offices/darkLegend.jpeg +0 -0
  54. package/dist/web/offices/darkLegend.zip +0 -0
  55. package/dist/web/offices/easternFantasy.jpeg +0 -0
  56. package/dist/web/offices/easternFantasy.zip +0 -0
  57. package/dist/web/offices/gothic.jpeg +0 -0
  58. package/dist/web/offices/gothic.zip +0 -0
  59. package/dist/web/offices/historical.jpeg +0 -0
  60. package/dist/web/offices/historical.zip +0 -0
  61. package/dist/web/offices/index.json +26 -25
  62. package/dist/web/offices/modern-cozy.jpeg +0 -0
  63. package/dist/web/offices/modern-cozy.jpg +0 -0
  64. package/dist/web/offices/modern-cozy.zip +0 -0
  65. package/dist/web/offices/mythological.jpeg +0 -0
  66. package/dist/web/offices/mythological.zip +0 -0
  67. package/dist/web/offices/nostalgic.jpeg +0 -0
  68. package/dist/web/offices/nostalgic.zip +0 -0
  69. package/dist/web/offices/postApocalyptic.jpeg +0 -0
  70. package/dist/web/offices/postApocalyptic.zip +0 -0
  71. package/dist/web/offices/sifi.jpeg +0 -0
  72. package/dist/web/offices/sifi.zip +0 -0
  73. package/dist/web/offices/westernFantasy.jpeg +0 -0
  74. package/dist/web/offices/westernFantasy.zip +0 -0
  75. package/dist/web/pair.html +60 -50
  76. package/dist/web/pair.txt +74 -66
  77. package/dist/web/sw.js +1 -1
  78. package/dist/web/workbox-a92c5218.js +1 -0
  79. package/package.json +2 -2
  80. package/dist/web/_next/static/chunks/29.a4a95a903c8b8e7b.js +0 -1
  81. package/dist/web/_next/static/chunks/290.345f536a557e23ec.js +0 -1
  82. package/dist/web/_next/static/chunks/336.033a979c6c5fe642.js +0 -1
  83. package/dist/web/_next/static/chunks/368.61fa3954c03d8818.js +0 -1
  84. package/dist/web/_next/static/chunks/632.d16ffbb5e23a43f2.js +0 -1
  85. package/dist/web/_next/static/chunks/757.a611f4691f6b1582.js +0 -1
  86. package/dist/web/_next/static/chunks/810.44213c6355518b0b.js +0 -1
  87. package/dist/web/_next/static/chunks/880.614e72604eb723a3.js +0 -1
  88. package/dist/web/_next/static/chunks/989-6be071435f8fdadf.js +0 -1
  89. package/dist/web/_next/static/chunks/app/_not-found/page-182ed2c105839b2a.js +0 -1
  90. package/dist/web/_next/static/chunks/app/layout-72c65340fbaef4c0.js +0 -1
  91. package/dist/web/_next/static/chunks/app/office/page-358079be75bf327f.js +0 -1
  92. package/dist/web/_next/static/chunks/app/pair/page-c47333f71aa3f4ef.js +0 -1
  93. package/dist/web/_next/static/chunks/webpack-1c3347ded5c6a52b.js +0 -1
  94. package/dist/web/offices/Nostalgic.jpeg +0 -0
  95. package/dist/web/offices/Nostalgic.zip +0 -0
  96. package/dist/web/offices/modernCozy.jpeg +0 -0
  97. package/dist/web/offices/modernCozy.zip +0 -0
  98. package/dist/web/workbox-5194662c.js +0 -1
  99. /package/dist/web/_next/static/{0Clbb0V7-cqhwpr3pjKk1 → 30c0_3N7JM7PsUvSPrOdD}/_buildManifest.js +0 -0
  100. /package/dist/web/_next/static/{0Clbb0V7-cqhwpr3pjKk1 → 30c0_3N7JM7PsUvSPrOdD}/_ssgManifest.js +0 -0
  101. /package/dist/web/_next/static/chunks/{325ca9c7-f84e7e4973790fdf.js → 325ca9c7.f84e7e4973790fdf.js} +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[149,823],{138:(e,t,n)=>{"use strict";n.d(t,{Pp:()=>l,hK:()=>v,sX:()=>o});var r=n(9576),a=n(7877);let o=new Map,l=new Map,i=!!window.__TAURI_INTERNALS__,s="office-chat-history";function c(e){let t=Date.now()-6048e5;return e.filter(e=>e.timestamp>=t)}let d=null,u=null;function p(){d=null;let e=u;if(u=null,e)try{let t=[];for(let[,n]of e){if(n.isExternal||n.agentId.startsWith("reviewer-"))continue;let e=c(n.messages);(e.length>0||n.name!==n.agentId)&&t.push({agentId:n.agentId,name:n.name,role:n.role,palette:n.palette,personality:n.personality,backend:n.backend,isTeamLead:n.isTeamLead,teamId:n.teamId,messages:e.map(e=>{let{_accumulatedText:t,...n}=e;return n})})}localStorage.setItem(s,JSON.stringify(t)),m=null}catch(e){}}function g(e){u=e,d||(d=setTimeout(p,2e3))}let m=null;function f(){return m||(m=function(){try{let e=localStorage.getItem(s);if(!e)return new Map;let t=JSON.parse(e),n=new Map;for(let e of t)e.messages=c(e.messages),n.set(e.agentId,e);return n}catch(e){return new Map}}())}window.addEventListener("beforeunload",p);let h="office-team-messages";function b(e){try{let t=e.slice(-200);localStorage.setItem(h,JSON.stringify(t))}catch(e){}}let y="office-team-phase";function x(e){try{let t={};for(let[n,r]of e)t[n]=r;localStorage.setItem(y,JSON.stringify(t))}catch(e){}}function k(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return{agentId:e,name:t,role:n,status:"idle",currentTaskId:null,currentPrompt:null,awaitingApproval:!1,pendingApproval:null,messages:[],lastLogLine:null,tokenUsage:{inputTokens:0,outputTokens:0}}}let v=(0,r.v)((e,t)=>({agents:new Map,agentDefs:[],teamMessages:[],teamPhases:new Map,role:"owner",suggestions:[],projectList:[],viewingProjectId:null,viewingProjectEvents:[],viewingProjectName:null,pendingPreviewUrl:null,agencyAgentsResult:null,configResult:null,configData:null,detectedBackends:[],availableSkills:[],connected:!1,hydrated:!1,agentLogLines:new Map,visibleMessageCount:new Map,consumePreviewUrl:()=>{let n=t().pendingPreviewUrl;return n&&e({pendingPreviewUrl:null}),n},setConnected:t=>e({connected:t}),setRole:t=>e({role:t}),hydrate:()=>{if(t().hydrated)return;let n=f(),r=function(){try{let e=localStorage.getItem(h);return e?JSON.parse(e):[]}catch(e){return[]}}(),a=function(){try{let e=localStorage.getItem(y);if(!e)return new Map;let t=JSON.parse(e);return new Map(Object.entries(t))}catch(e){return new Map}}();if(0===n.size&&0===r.length&&0===a.size)return void e({hydrated:!0,teamMessages:r,teamPhases:a});e(e=>{let t=new Map(e.agents);for(let[e,r]of n)t.has(e)||t.set(e,{...k(e,r.name,r.role),palette:r.palette,personality:r.personality,backend:r.backend,isTeamLead:r.isTeamLead,teamId:r.teamId,messages:r.messages});return{agents:t,teamMessages:r,teamPhases:a,hydrated:!0}})},getAgent:e=>{var n;return null!=(n=t().agents.get(e))?n:k(e)},getVisibleMessages:e=>{var n;let r=t().agents.get(e);if(!r)return[];let a=null!=(n=t().visibleMessageCount.get(e))?n:20,o=r.messages;return o.length<=a?o:o.slice(-a)},loadMoreMessages:t=>{e(e=>{var n;let r=new Map(e.visibleMessageCount),a=null!=(n=r.get(t))?n:20;return r.set(t,a+20),{visibleMessageCount:r}})},removeAgent:t=>{e(e=>{let n=new Map(e.agents);n.delete(t),m=null;let r=new Map(e.visibleMessageCount);return r.delete(t),{agents:n,visibleMessageCount:r}})},clearTeamMessages:()=>{b([]),x(new Map),e({teamMessages:[],teamPhases:new Map})},clearViewingProject:()=>{e({viewingProjectId:null,viewingProjectEvents:[],viewingProjectName:null})},addUserMessage:(t,n,r)=>{e(e=>{var a;let o=new Map(e.agents),l=null!=(a=o.get(t))?a:k(t);return o.set(t,{...l,messages:[...l.messages,{id:n,role:"user",text:r,timestamp:Date.now()}]}),g(o),{agents:o}})},handleEvent:t=>{e(e=>{var r,s,c,d,u,p,h,y,v,S,E,w,T,C,A,I,D,j,M,R,P,O,L,_,W,F,Y,N,H,U,B,G,z,K,V,X,J,$,q,Z,Q,ee,et,en,er,ea,eo;let el=new Map(e.agents);switch(t.type){case"AGENTS_SYNC":{let e=new Set(t.agentIds);for(let t of el.keys())e.has(t)||el.delete(t);break}case"AGENT_CREATED":{(void 0!==t.lastMergeCommit||void 0!==t.pendingMerge)&&console.log("[Store DEBUG] AGENT_CREATED: agentId=".concat(t.agentId," pendingMerge=").concat(t.pendingMerge," lastMergeCommit=").concat(t.lastMergeCommit," lastMergeMessage=").concat(t.lastMergeMessage));let e=el.get(t.agentId);if(e)el.set(t.agentId,{...e,name:t.name,role:t.role,palette:null!=(r=t.palette)?r:e.palette,personality:null!=(s=t.personality)?s:e.personality,backend:null!=(c=t.backend)?c:e.backend,isTeamLead:null!=(d=t.isTeamLead)?d:e.isTeamLead,teamId:null!=(u=t.teamId)?u:e.teamId,isExternal:null!=(p=t.isExternal)?p:e.isExternal,pid:null!=(h=t.pid)?h:e.pid,cwd:null!=(y=t.cwd)?y:e.cwd,workDir:null!=(v=t.workDir)?v:e.workDir,startedAt:null!=(S=t.startedAt)?S:e.startedAt,autoMerge:null!=(E=t.autoMerge)?E:e.autoMerge,pendingMerge:null!=(w=t.pendingMerge)?w:e.pendingMerge,lastMergeCommit:void 0!==t.lastMergeCommit?t.lastMergeCommit:e.lastMergeCommit,lastMergeMessage:void 0!==t.lastMergeMessage?t.lastMergeMessage:e.lastMergeMessage,undoCount:null!=(T=t.undoCount)?T:e.undoCount});else{let e=t.isExternal?void 0:f().get(t.agentId),n=k(t.agentId,t.name,t.role);n.palette=null!=(C=t.palette)?C:null==e?void 0:e.palette,n.personality=null!=(A=t.personality)?A:null==e?void 0:e.personality,n.backend=null!=(I=t.backend)?I:null==e?void 0:e.backend,n.isTeamLead=null!=(D=t.isTeamLead)?D:null==e?void 0:e.isTeamLead,n.teamId=null!=(j=t.teamId)?j:null==e?void 0:e.teamId,n.isExternal=t.isExternal,n.pid=t.pid,n.cwd=t.cwd,n.workDir=t.workDir,n.startedAt=t.startedAt,n.autoMerge=t.autoMerge,n.pendingMerge=t.pendingMerge,n.lastMergeCommit=t.lastMergeCommit,n.lastMergeMessage=t.lastMergeMessage,n.undoCount=t.undoCount,e&&(n.messages=e.messages),el.set(t.agentId,n)}if(!t.isExternal&&!t.agentId.startsWith("reviewer-")){let n=el.get(t.agentId);(null==e?void 0:e.isTeamLead)&&!(null==n?void 0:n.isTeamLead)&&(console.warn("[Store] isTeamLead LOST for ".concat(t.agentId,"! event.isTeamLead=").concat(t.isTeamLead,", existing=").concat(e.isTeamLead)),console.trace()),g(el)}break}case"AGENT_FIRED":{el.delete(t.agentId),t.agentId,m=null,g(el);let n=new Map(e.teamPhases);for(let[e,r]of n)r.leadAgentId===t.agentId&&n.delete(e);if(n.size!==e.teamPhases.size)return x(n),{agents:el,teamPhases:n};break}case"AGENT_STATUS":{let e=null!=(M=el.get(t.agentId))?M:k(t.agentId);el.set(t.agentId,{...e,status:t.status});break}case"TASK_STARTED":{let n=null!=(R=el.get(t.agentId))?R:k(t.agentId),r=t.taskId+"-stream",a=n.messages.some(e=>e.id===r),o=n.messages.map(e=>e.id.endsWith("-stream")&&e.id!==r?{...e,id:e.id.replace("-stream","-streamed")}:e),l=o.some(e=>e.id===t.taskId)?o:[...o,{id:t.taskId,role:"user",text:t.prompt,timestamp:Date.now()}],i=new Map(e.agentLogLines);return i.delete(t.agentId),el.set(t.agentId,{...n,status:"working",currentTaskId:t.taskId,currentPrompt:t.prompt,awaitingApproval:!1,pendingApproval:null,lastLogLine:null,messages:a?l:[...l,{id:r,role:"agent",text:"",timestamp:Date.now()}]}),{agents:el,agentLogLines:i}}case"APPROVAL_NEEDED":{let e=null!=(P=el.get(t.agentId))?P:k(t.agentId);el.set(t.agentId,{...e,status:"waiting_approval",pendingApproval:{approvalId:t.approvalId,title:t.title,summary:t.summary,riskLevel:t.riskLevel}});break}case"TASK_DONE":{let r=null!=(O=el.get(t.agentId))?O:k(t.agentId),a=t.taskId+"-reply";if(r.messages.some(e=>e.id===a))break;let o=!1;if(r.isTeamLead){for(let[,n]of e.teamPhases)if(n.leadAgentId===t.agentId){o=["create","design","complete"].includes(n.phase);break}}let l=null!=(L=r._tokenBaseline)?L:{inputTokens:0,outputTokens:0},s=r.tokenUsage.inputTokens>l.inputTokens||r.tokenUsage.outputTokens>l.outputTokens?r.tokenUsage:t.result.tokenUsage?{inputTokens:r.tokenUsage.inputTokens+t.result.tokenUsage.inputTokens,outputTokens:r.tokenUsage.outputTokens+t.result.tokenUsage.outputTokens}:r.tokenUsage;if(r.isTeamLead&&!t.isFinalResult&&!o){let n=t.taskId+"-stream",a=r.messages.find(e=>e.id===n)?r.messages.map(e=>e.id===n?{...e,id:n.replace("-stream","-streamed")}:e):r.messages,o=new Map(e.agentLogLines);return o.set(t.agentId,null!=(F=null==(_=t.result.summary)?void 0:_.slice(0,100))?F:"Coordinating team..."),el.set(t.agentId,{...r,status:"working",currentTaskId:null,pendingApproval:null,lastLogLine:null!=(Y=null==(W=t.result.summary)?void 0:W.slice(0,100))?Y:"Coordinating team...",messages:a,tokenUsage:s,_tokenBaseline:s}),{agents:el,agentLogLines:o}}let c=t.taskId+"-stream",d=r.messages.find(e=>e.id===c),u=d?Date.now()-d.timestamp:void 0,p=null!=(N=null==d?void 0:d._accumulatedText)?N:"",m=t.result.fullOutput||t.result.summary,f=p.length>m.length?p:m,h=!r.isTeamLead&&!r.teamId,b=h&&/\[PLAN\]/i.test(f),y=h&&!b&&/(?:需要.*(?:批准|审批|确认|允许)|(?:ask|need|request).*(?:approv|permiss|confirm)|before.*(?:proceed|continu)|destructive|请.*(?:手动|批准|确认)|sandbox.*(?:限制|restrict|block))/i.test(f),x=[...r.messages.filter(e=>e.id!==c),{id:a,role:"agent",text:f,timestamp:Date.now(),result:t.result,isFinalResult:t.isFinalResult,durationMs:u}],v=new Map(e.agentLogLines);return v.delete(t.agentId),el.set(t.agentId,{...r,status:"done",currentTaskId:null,awaitingApproval:b||y,pendingApproval:null,lastLogLine:null,messages:x,tokenUsage:s,_tokenBaseline:s}),g(el),ea=r.name,eo=f.slice(0,200),i&&("undefined"!=typeof document&&document.hasFocus()||(n.e(293).then(n.bind(n,5293)).then(e=>{let{invoke:t}=e;t("bounce_dock").catch(()=>{})}).catch(()=>{}),n.e(363).then(n.bind(n,4363)).then(async e=>{let{sendNotification:t,isPermissionGranted:n,requestPermission:r}=e,a=await n();a||(a=await r()==="granted"),a&&t({title:"".concat(ea," — Task Complete"),body:eo.slice(0,200)})}).catch(()=>{}))),{agents:el,agentLogLines:v}}case"TASK_FAILED":{let n=null!=(H=el.get(t.agentId))?H:k(t.agentId),r=t.taskId+"-error";if(n.messages.some(e=>e.id===r))break;let a="Task cancelled by user"===t.error?"Current task has been cancelled. Tell me continue to pick up where I left off, or start something entirely new.":t.error,o=t.taskId+"-stream",l=n.messages.map(e=>e.id===o?{...e,id:o.replace("-stream","-streamed")}:e),i=new Map(e.agentLogLines);return i.delete(t.agentId),el.set(t.agentId,{...n,status:"error",currentTaskId:null,awaitingApproval:!1,pendingApproval:null,lastLogLine:null,messages:[...l,{id:r,role:"system",text:a,timestamp:Date.now()}]}),g(el),{agents:el,agentLogLines:i}}case"TASK_DELEGATED":{let e=el.get(t.fromAgentId),n=el.get(t.toAgentId),r=t.taskId+"-delegate";e&&!e.messages.some(e=>e.id===r)&&el.set(t.fromAgentId,{...e,messages:[...e.messages,{id:r,role:"system",text:"Delegated to ".concat(null!=(U=null==n?void 0:n.name)?U:t.toAgentId,": ").concat(t.prompt),timestamp:Date.now()}]});let a=t.taskId+"-received",o=null!=(B=el.get(t.toAgentId))?B:k(t.toAgentId);o.messages.some(e=>e.id===a)||el.set(t.toAgentId,{...o,messages:[...o.messages,{id:a,role:"user",text:"[From ".concat(null!=(G=null==e?void 0:e.name)?G:t.fromAgentId,"] ").concat(t.prompt),timestamp:Date.now()}]}),g(el);break}case"LOG_APPEND":{let n=el.get(t.agentId);if(!n||!t.chunk)break;let r=new Map(e.agentLogLines);if(r.set(t.agentId,t.chunk),t.chunk.startsWith("\uD83D\uDCAD "))return{agents:e.agents,agentLogLines:r};let a=n.currentTaskId?n.currentTaskId+"-stream":null,o=n.messages.length>0?n.messages[n.messages.length-1]:null;if(a&&(null==o?void 0:o.id)===a){let e=null!=(z=o._accumulatedText)?z:"",r=e?e+"\n"+t.chunk:t.chunk,a=[...n.messages];a[a.length-1]={...o,text:r,timestamp:Date.now(),_accumulatedText:r},el.set(t.agentId,{...n,messages:a})}else if(n.isExternal){let e=Date.now();if(o&&"agent"===o.role&&e-o.timestamp<1e4){let r=o.text,a=r?r+"\n"+t.chunk:t.chunk,l=[...n.messages];l[l.length-1]={...o,text:a,timestamp:e},el.set(t.agentId,{...n,messages:l})}else el.set(t.agentId,{...n,messages:[...n.messages,{id:"ext-log-".concat(e),role:"agent",text:t.chunk,timestamp:e}]})}return{agents:el,agentLogLines:r}}case"TOOL_ACTIVITY":if(el.get(t.agentId)){let n=new Map(e.agentLogLines);return n.set(t.agentId,t.text),{agents:el,agentLogLines:n}}break;case"TASK_RESULT_RETURNED":{let e=el.get(t.toAgentId);if(e){let n=el.get(t.fromAgentId),r=t.taskId+"-result-return";if(!e.messages.some(e=>e.id===r)){let a=t.success?"completed":"failed";el.set(t.toAgentId,{...e,messages:[...e.messages,{id:r,role:"system",text:"Result from ".concat(null!=(K=null==n?void 0:n.name)?K:t.fromAgentId," (").concat(a,"): ").concat(t.summary.slice(0,500)),timestamp:Date.now()}]})}}break}case"TEAM_CHAT":{let n=el.get(t.fromAgentId),r=t.toAgentId?el.get(t.toAgentId):void 0,a={id:"tc-".concat(t.timestamp,"-").concat(t.fromAgentId,"-").concat(t.messageType,"-").concat(null!=(V=t.toAgentId)?V:""),fromAgentId:t.fromAgentId,fromAgentName:null!=(X=null==n?void 0:n.name)?X:t.fromAgentId,toAgentId:t.toAgentId,toAgentName:null!=(J=null==r?void 0:r.name)?J:t.toAgentId,message:t.message,messageType:t.messageType,timestamp:t.timestamp};if(e.teamMessages.some(e=>e.id===a.id))break;let o=[...e.teamMessages,a];if(b(o),"warning"===t.messageType&&n){let e="warn-".concat(t.timestamp,"-").concat(t.fromAgentId);n.messages.some(t=>t.id===e)||el.set(t.fromAgentId,{...n,messages:[...n.messages,{id:e,role:"system",text:t.message,timestamp:t.timestamp}]})}return{agents:el,teamMessages:o}}case"TASK_QUEUED":{let e=null!=($=el.get(t.agentId))?$:k(t.agentId),n=t.taskId+"-queued";e.messages.some(e=>e.id===n)||el.set(t.agentId,{...e,messages:[...e.messages,{id:n,role:"system",text:"Task queued (position #".concat(t.position,"): ").concat(t.prompt.slice(0,100)),timestamp:Date.now()}]});break}case"TOKEN_UPDATE":{let e=null!=(q=el.get(t.agentId))?q:k(t.agentId),n=null!=(Z=e._tokenBaseline)?Z:{inputTokens:0,outputTokens:0};el.set(t.agentId,{...e,tokenUsage:{inputTokens:n.inputTokens+t.inputTokens,outputTokens:n.outputTokens+t.outputTokens}});break}case"AGENT_DEFS":return{agents:el,agentDefs:t.agents};case"SKILL_LIST":return{agents:el,availableSkills:t.skills};case"TEAM_PHASE":{let n=new Map(e.teamPhases);return n.set(t.teamId,{phase:t.phase,leadAgentId:t.leadAgentId}),x(n),{agents:el,teamPhases:n}}case"SUGGESTION":{let n=[...e.suggestions,{text:t.text,author:t.author,timestamp:t.timestamp}];return n.length>50&&n.shift(),{agents:el,suggestions:n}}case"PREVIEW_READY":return{agents:el,pendingPreviewUrl:(0,a.$5)(t.url)};case"FOLDER_PICKED":{let e=o.get(t.requestId);e&&(e(t.path),o.delete(t.requestId));break}case"IMAGE_UPLOADED":{let e=l.get(t.requestId);e&&(e(t.path),l.delete(t.requestId));break}case"AGENCY_AGENTS_UPDATED":return{agents:el,agencyAgentsResult:{success:t.success,message:t.message,count:t.count}};case"BACKENDS_AVAILABLE":return{agents:el,detectedBackends:t.backends};case"CONFIG_LOADED":return{agents:el,configData:{telegramBotToken:t.telegramBotToken,telegramAllowedUsers:t.telegramAllowedUsers,telegramConnected:t.telegramConnected,worktreeEnabled:t.worktreeEnabled,autoMergeEnabled:t.autoMergeEnabled,tunnelBaseUrl:t.tunnelBaseUrl,tunnelToken:t.tunnelToken,tunnelRunning:t.tunnelRunning}};case"CONFIG_SAVED":return{agents:el,configResult:{success:t.success,message:t.message,telegramConnected:t.telegramConnected,tunnelRunning:t.tunnelRunning}};case"PROJECT_LIST":return{agents:el,projectList:t.projects};case"WORKTREE_READY":{let e=el.get(t.agentId);e&&el.set(t.agentId,{...e,pendingMerge:!0});break}case"WORKTREE_MERGED":{console.log("[Store DEBUG] WORKTREE_MERGED: agentId=".concat(t.agentId," success=").concat(t.success," commitHash=").concat(t.commitHash," commitMessage=").concat(t.commitMessage));let e=el.get(t.agentId);e&&el.set(t.agentId,{...e,pendingMerge:!t.success&&e.pendingMerge,lastMergeCommit:t.success&&null!=(Q=t.commitHash)?Q:e.lastMergeCommit,lastMergeMessage:t.success&&null!=(ee=t.commitMessage)?ee:e.lastMergeMessage,undoCount:null!=(en=t.undoCount)?en:t.success?(null!=(et=e.undoCount)?et:0)+1:e.undoCount});break}case"WORKTREE_REVERTED":{let e=el.get(t.agentId);e&&0===t.commitsAhead&&el.set(t.agentId,{...e,pendingMerge:!1});break}case"AUTO_MERGE_UPDATED":{let e=el.get(t.agentId);e&&el.set(t.agentId,{...e,autoMerge:t.autoMerge,lastMergeCommit:void 0!==t.lastMergeCommit?t.lastMergeCommit:e.lastMergeCommit,lastMergeMessage:void 0!==t.lastMergeMessage?t.lastMergeMessage:e.lastMergeMessage,undoCount:null!=(er=t.undoCount)?er:e.undoCount});break}case"PROJECT_DATA":return{agents:el,viewingProjectId:t.projectId,viewingProjectName:t.name,viewingProjectEvents:t.events}}return{agents:el}})}}))},370:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(206),a=n(1406),o=n(2727),l=n(8688),i=n(9385);let s=(0,l.F)("inline-flex items-center justify-center gap-1 whitespace-nowrap font-mono text-term transition-all duration-fast shrink-0 cursor-pointer disabled:opacity-40 disabled:pointer-events-none focus-visible:outline-1 focus-visible:outline-ring focus-visible:outline-offset-2",{variants:{variant:{ghost:"border border-border bg-transparent text-foreground hover:border-term-text-bright hover:text-term-text-bright hover:shadow-sm hover:-translate-y-px active:opacity-85 active:translate-y-0 active:shadow-none",primary:"border border-sem-green text-sem-green hover:bg-sem-green/10 hover:shadow-sm hover:-translate-y-px active:opacity-85 active:translate-y-0",danger:"border border-sem-red text-sem-red hover:bg-sem-red/10 hover:shadow-sm hover:-translate-y-px active:opacity-85 active:translate-y-0",success:"border border-sem-green text-sem-green hover:bg-sem-green/10 hover:shadow-sm hover:-translate-y-px active:opacity-85 active:translate-y-0",warning:"border border-sem-yellow text-sem-yellow hover:bg-sem-yellow/10 hover:shadow-sm hover:-translate-y-px active:opacity-85 active:translate-y-0",dim:"border border-border text-muted-foreground hover:text-foreground hover:border-term-text-bright hover:shadow-sm hover:-translate-y-px active:opacity-85 active:translate-y-0"},size:{default:"px-3.5 py-1.5 leading-5",sm:"px-2.5 py-1 text-[11px] leading-4",icon:"h-8 w-8 p-0"}},defaultVariants:{variant:"ghost",size:"default"}}),c=a.forwardRef((e,t)=>{let{className:n,variant:a,size:l,asChild:c=!1,...d}=e,u=c?o.DX:"button";return(0,r.jsx)(u,{className:(0,i.cn)(s({variant:a,size:l,className:n})),ref:t,...d})});c.displayName="Button";let d=(0,a.forwardRef)(function(e,t){let{variant:n="ghost",size:a="default",className:o,...l}=e;return(0,r.jsx)(c,{ref:t,variant:n,size:a,className:(0,i.cn)(o),...l})})},693:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>en});var r=n(206),a=n(1406),o=n(4717),l=n(138),i=n(5192),s=n(5149),c=n(2001),d=n(5195),u=n(2243);class p{pushUndo(e){this.undoStack.push(e),this.undoStack.length>u.k2&&this.undoStack.shift()}popUndo(){return this.undoStack.pop()||null}pushRedo(e){this.redoStack.push(e),this.redoStack.length>u.k2&&this.redoStack.shift()}popRedo(){return this.redoStack.pop()||null}clearRedo(){this.redoStack=[]}clearSelection(){this.selectedFurnitureUid=null}clearGhost(){this.ghostCol=-1,this.ghostRow=-1,this.ghostValid=!1}startDrag(e,t,n,r,a){this.dragUid=e,this.dragStartCol=t,this.dragStartRow=n,this.dragOffsetCol=r,this.dragOffsetRow=a,this.isDragMoving=!1}clearDrag(){this.dragUid=null,this.isDragMoving=!1}reset(){this.activeTool=d.VF.SELECT,this.selectedFurnitureUid=null,this.ghostCol=-1,this.ghostRow=-1,this.ghostValid=!1,this.isDragging=!1,this.wallDragAdding=null,this.undoStack=[],this.redoStack=[],this.isDirty=!1,this.dragUid=null,this.isDragMoving=!1}constructor(){this.isEditMode=!1,this.activeTool=d.VF.SELECT,this.selectedTileType=d.nb.FLOOR_1,this.selectedFurnitureType="desk",this.floorColor={...u.Pk},this.wallColor={...u.fS},this.wallDragAdding=null,this.pickedFurnitureColor=null,this.ghostCol=-1,this.ghostRow=-1,this.ghostValid=!1,this.selectedFurnitureUid=null,this.isDragging=!1,this.undoStack=[],this.redoStack=[],this.isDirty=!1,this.dragUid=null,this.dragStartCol=0,this.dragStartRow=0,this.dragOffsetCol=0,this.dragOffsetRow=0,this.isDragMoving=!1}}var g=n(1204),m=n(9892);let f=null;function h(e,t,n,r){let a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"sine",o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:.15,l=e.createOscillator(),i=e.createGain();l.type=a,l.frequency.setValueAtTime(t,n),i.gain.setValueAtTime(0,n),i.gain.linearRampToValueAtTime(o,n+.02),i.gain.exponentialRampToValueAtTime(.001,n+r),l.connect(i).connect(e.destination),l.start(n),l.stop(n+r)}let b={taskStart:function(e){let t=e.currentTime;[523.25,659.25,783.99].forEach((n,r)=>h(e,n,t+.08*r,.18,"triangle",.12))},taskDone:function(e){let t=e.currentTime;[523.25,659.25,783.99,1046.5].forEach((n,r)=>h(e,n,t+.06*r,.35,"sine",.1)),h(e,1318.5,t+.28,.25,"sine",.06)},taskFailed:function(e){let t=e.currentTime;[440,370,311].forEach((n,r)=>h(e,n,t+.12*r,.25,"sawtooth",.08))},approval:function(e){let t=e.currentTime;h(e,880,t,.15,"sine",.12),h(e,1108.73,t+.18,.2,"sine",.1)},notification:function(e){let t=e.currentTime;h(e,1046.5,t,.12,"sine",.13),h(e,1318.5,t+.1,.18,"sine",.09)},delegation:function(e){let t=e.currentTime;h(e,698.46,t,.08,"square",.07),h(e,880,t+.07,.1,"square",.06)}};function y(e){try{let t=(f&&"closed"!==f.state||(f=new AudioContext),"suspended"===f.state&&f.resume().catch(()=>{}),f);b[e](t)}catch(e){}}var x=n(4932);let k={external:x.KE,team:x.O2,normal:x.Y0};function v(e){if(e.isExternal){var t;return{label:"".concat(null!=(t=e.pid)?t:"?"),color:k.external}}return{label:e.name.split(/[\s(]/)[0],color:e.teamId?k.team:k.normal}}function S(e){return e.pendingApproval?"permission":"working"===e.status?"working":"done"===e.status||"error"===e.status?"waiting":null}var E=n(7821),w=n(7877),T=n(786),C=n(1310),A=n(370);function I(e){let{message:t,onConfirm:n,onCancel:a}=e;return(0,r.jsx)(C.A,{open:!0,onClose:a,maxWidth:380,title:"Confirm",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(A.A,{variant:"dim",onClick:a,children:"No"}),(0,r.jsx)(A.A,{variant:"danger",onClick:n,children:"Yes"})]}),children:(0,r.jsx)("div",{style:{textAlign:"center",lineHeight:1.6},children:t})})}var D=n(7580),j=n(5282);let M=(0,j.default)(()=>n.e(368).then(n.bind(n,368)),{loadableGenerated:{webpack:()=>[368]},ssr:!1}),R=(0,j.default)(()=>n.e(810).then(n.bind(n,9810)),{loadableGenerated:{webpack:()=>[9810]},ssr:!1});(0,j.default)(()=>Promise.all([n.e(767),n.e(290)]).then(n.bind(n,9290)),{loadableGenerated:{webpack:()=>[9290]},ssr:!1});let P=(0,j.default)(()=>n.e(29).then(n.bind(n,6029)),{loadableGenerated:{webpack:()=>[6029]},ssr:!1}),O=(0,j.default)(()=>Promise.all([n.e(767),n.e(757)]).then(n.bind(n,3757)),{loadableGenerated:{webpack:()=>[3757]},ssr:!1}),L=(0,j.default)(()=>n.e(336).then(n.bind(n,336)),{loadableGenerated:{webpack:()=>[336]},ssr:!1}),_=(0,j.default)(()=>Promise.all([n.e(712),n.e(27)]).then(n.bind(n,3027)),{loadableGenerated:{webpack:()=>[3027]},ssr:!1}),W=(0,j.default)(()=>n.e(73).then(n.bind(n,73)),{loadableGenerated:{webpack:()=>[73]},ssr:!1}),F=(0,j.default)(()=>n.e(849).then(n.bind(n,849)),{loadableGenerated:{webpack:()=>[849]},ssr:!1}),Y=(0,j.default)(()=>n.e(913).then(n.bind(n,6913)),{loadableGenerated:{webpack:()=>[6913]},ssr:!1}),N=(0,j.default)(()=>n.e(606).then(n.bind(n,606)),{loadableGenerated:{webpack:()=>[606]},ssr:!1}),H=(0,j.default)(()=>n.e(606).then(n.bind(n,606)).then(e=>({default:e.ConfettiOverlay})),{loadableGenerated:{webpack:()=>[606]},ssr:!1}),U=(0,j.default)(()=>Promise.resolve().then(n.bind(n,7580)),{loadableGenerated:{webpack:()=>[7580]},ssr:!1}),B=(0,j.default)(()=>n.e(883).then(n.bind(n,883)),{loadableGenerated:{webpack:()=>[883]},ssr:!1}),G=(0,j.default)(()=>n.e(794).then(n.bind(n,8794)),{loadableGenerated:{webpack:()=>[8794]},ssr:!1}),z=(0,j.default)(()=>n.e(297).then(n.bind(n,3297)),{loadableGenerated:{webpack:()=>[3297]},ssr:!1}),K=(0,j.default)(()=>n.e(895).then(n.bind(n,5895)),{loadableGenerated:{webpack:()=>[5895]},ssr:!1}),V=(0,j.default)(()=>n.e(262).then(n.bind(n,262)),{loadableGenerated:{webpack:()=>[262]},ssr:!1}),X=(0,j.default)(()=>n.e(999).then(n.bind(n,7999)),{loadableGenerated:{webpack:()=>[7999]},ssr:!1}),J=(0,j.default)(()=>Promise.all([n.e(767),n.e(853)]).then(n.bind(n,6853)),{loadableGenerated:{webpack:()=>[6853]},ssr:!1}),$=(0,j.default)(()=>n.e(337).then(n.bind(n,3337)),{loadableGenerated:{webpack:()=>[3337]},ssr:!1}),q=(0,j.default)(()=>n.e(729).then(n.bind(n,9729)),{loadableGenerated:{webpack:()=>[9729]},ssr:!1}),Z=(0,j.default)(()=>n.e(611).then(n.bind(n,3611)),{loadableGenerated:{webpack:()=>[3611]},ssr:!1});function Q(e){let{onLoadMore:t}=e,n=(0,a.useRef)(null),o=(0,a.useRef)(t);return o.current=t,(0,a.useEffect)(()=>{let e=n.current;if(!e)return;let t=new IntersectionObserver(e=>{let[t]=e;t.isIntersecting&&o.current()},{threshold:0,rootMargin:"100px 0px 0px 0px"});return t.observe(e),()=>t.disconnect()},[]),(0,r.jsx)("div",{ref:n,style:{height:1,flexShrink:0}})}let ee=new Set,et=new Map;function en(){var e;let t=(0,o.useRouter)(),f=(0,l.hK)(e=>e.agents),h=(0,l.hK)(e=>e.connected),b=(0,l.hK)(e=>e.teamMessages),k=(0,l.hK)(e=>e.teamPhases),C=(0,l.hK)(e=>e.agentDefs),A=(0,l.hK)(e=>e.role),j=(0,l.hK)(e=>e.suggestions),en=(0,l.hK)(e=>e.detectedBackends),er=(0,l.hK)(e=>e.agentLogLines);(0,l.hK)(e=>e.visibleMessageCount);let{addUserMessage:ea,clearTeamMessages:eo,setRole:el,getVisibleMessages:ei,loadMoreMessages:es}=l.hK.getState(),[ec,ed]=(0,a.useState)(null),[eu,ep]=(0,a.useState)(null),[eg,em]=(0,a.useState)({}),[ef,eh]=(0,a.useState)(!1),[eb,ey]=(0,a.useState)(null),[ex,ek]=(0,a.useState)(!1),{confirm:ev,modal:eS}=function(){let[e,t]=(0,a.useState)(null),n=(0,a.useCallback)(e=>new Promise(n=>{t({message:e,resolve:n})}),[]),o=(0,a.useCallback)(()=>{null==e||e.resolve(!0),t(null)},[e]),l=(0,a.useCallback)(()=>{null==e||e.resolve(!1),t(null)},[e]);return{confirm:n,modal:e?(0,r.jsx)(I,{message:e.message,onConfirm:o,onCancel:l}):null}}(),[eE,ew]=(0,a.useState)(!1),[eT,eC]=(0,a.useState)(!1),[eA,eI]=(0,a.useState)(!1),[eD,ej]=(0,a.useState)(null),[eM,eR]=(0,a.useState)(!1),[eP,eO]=(0,a.useState)(!1),[eL,e_]=(0,a.useState)("agents"),[eW,eF]=(0,a.useState)(""),[eY,eN]=(0,a.useState)([]),eH=(0,a.useRef)(new Map),eU=(0,a.useRef)(0),eB=(0,a.useRef)(null),[eG,ez]=(0,a.useState)(!1),[eK,eV]=(0,a.useState)(!1),[eX,eJ]=(0,a.useState)(!1),[e$,eq]=(0,a.useState)(!1),[eZ,eQ]=(0,a.useState)(!1),[e0,e1]=(0,a.useState)(null),[e2,e8]=(0,a.useState)(!1),[e3,e6]=(0,a.useState)(!1),[e4,e5]=(0,a.useState)(!1),[e9,e7]=(0,a.useState)(!1),te=new URLSearchParams(window.location.search).has("test");(0,a.useEffect)(()=>{e7(new URLSearchParams(window.location.search).has("demo"))},[]);let[tt,tn]=(0,a.useState)(1),[tr,ta]=(0,a.useState)(!0),[,to]=(0,a.useState)(0),tl=(0,a.useRef)(new p),ti=(0,a.useRef)(null),[ts,tc]=(0,a.useState)(null),td=(0,a.useRef)(1),tu=(0,a.useRef)({x:0,y:0}),[tp,tg]=(0,a.useState)(!1),[tm,tf]=(0,a.useState)("office");(0,x.c8)(tm),(0,a.useEffect)(()=>{let e=localStorage.getItem("open-office-theme");e&&x.aD[e]&&tf(e)},[]),(0,a.useEffect)(()=>{(0,x.c8)(tm),localStorage.setItem("open-office-theme",tm)},[tm]),(0,a.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key&&(e.preventDefault(),eQ(e=>!e))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]);let th=(0,a.useRef)(new Set),tb=(0,a.useRef)(new Map),ty=(0,a.useRef)(new Map),tx=(0,a.useRef)(0);(0,a.useEffect)(()=>{if(!ts)return;let e=l.hK.getState();for(let[r,a]of e.agents){var t,n;let{label:o,color:l}=v(a);ts.addAgent(r,{name:a.name,label:o,labelColor:l,isExternal:!!a.isExternal,palette:a.palette}),ts.updateAgent(r,a.status,S(a),!!a.teamId),th.current.add(r),tb.current.set(r,a.messages.length),ty.current.set(r,null!=(n=null!=(t=e.agentLogLines.get(r))?t:a.lastLogLine)?n:null)}return tx.current=e.teamMessages.length,()=>{th.current.clear(),tb.current.clear(),ty.current.clear(),tx.current=0}},[ts]),(0,a.useEffect)(()=>{if(ts)return l.hK.subscribe(e=>{let t=new Set(e.agents.keys());for(let[t,a]of e.agents){var n,r;if(!th.current.has(t)){let{label:e,color:n}=v(a);ts.addAgent(t,{name:a.name,label:e,labelColor:n,isExternal:!!a.isExternal,palette:a.palette}),th.current.add(t)}ts.updateAgent(t,a.status,S(a),!!a.teamId);let o=null!=(n=tb.current.get(t))?n:0,l=a.messages.length;if(l>o){let e=a.messages[l-1];e&&"user"!==e.role&&ts.showSpeechBubble(t,e.text)}tb.current.set(t,l);let i=ty.current.get(t),s=null!=(r=e.agentLogLines.get(t))?r:a.lastLogLine;s&&s!==i&&ts.showSpeechBubble(t,s),ty.current.set(t,s)}let a=tx.current;if(e.teamMessages.length>a)for(let t=a;t<e.teamMessages.length;t++){let n=e.teamMessages[t],r=n.toAgentName,a=r?"".concat(r,": ").concat(n.message):n.message;ts.showSpeechBubble(n.fromAgentId,a)}for(let n of(tx.current=e.teamMessages.length,th.current))t.has(n)||(ts.removeAgent(n),th.current.delete(n),tb.current.delete(n),ty.current.delete(n))})},[ts]),(0,a.useEffect)(()=>{null==ts||ts.selectAgent(ec)},[ts,ec]);let tk=(0,l.hK)(e=>e.pendingPreviewUrl);(0,a.useEffect)(()=>{tk&&eu&&(ep(tk),l.hK.getState().consumePreviewUrl())},[tk,eu]),(0,a.useEffect)(()=>{try{let e=localStorage.getItem("office-sound-enabled");null!==e&&ta(JSON.parse(e))}catch(e){}},[]);let tv=(0,a.useRef)(new Map),tS=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(tr)return l.hK.subscribe(e=>{let t=tv.current,n=new Map;for(let[r,a]of e.agents){let e=a.status;n.set(r,e);let o=t.get(r);if(o!==e&&void 0!==o)switch(e){case"working":"working"!==o&&y("taskStart");break;case"done":y("taskDone");break;case"error":"done"!==o&&y("taskFailed");break;case"waiting_approval":y("approval")}}let r=e.teamMessages;if(r.length>0){let e=r[r.length-1];"delegation"===e.messageType&&e.id!==tS.current&&Date.now()-e.timestamp<2e3&&(tS.current=e.id,y("delegation"))}tv.current=n})},[tr]),(0,a.useEffect)(()=>{let e;if(!window.__TAURI_INTERNALS__)return;let t=/\.(png|jpe?g|gif|webp|svg|bmp|ico)$/i;return Promise.all([n.e(955).then(n.bind(n,7955)),n.e(293).then(n.bind(n,5293))]).then(n=>{let[{getCurrentWebview:r},{convertFileSrc:a}]=n;r().onDragDropEvent(e=>{var n;if("drop"!==e.payload.type||!(null==(n=e.payload.paths)?void 0:n.length))return;let r=e.payload.paths,o=r.filter(e=>t.test(e)),l=r.filter(e=>!t.test(e));for(let e of o)fetch(a(e)).then(e=>e.blob()).then(t=>{let n=e.split("/").pop()||"image.png",r=new File([t],n,{type:t.type||"image/png"}),a=new FileReader;a.onload=()=>{let e=a.result,t=e.split(",")[1],r=n.split(".").pop()||"png",o="image-".concat(Date.now(),".").concat(r);eN(n=>[...n,{name:o,dataUrl:e,base64:t}])},a.readAsDataURL(r)}).catch(()=>{});l.length>0&&eF(e=>{let t=l.join(" ");return e?e+" "+t:t})}).then(t=>{e=t})}).catch(()=>{}),()=>{null==e||e()}},[]);let tE=(0,l.hK)(e=>e.hydrated),tw=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(tE){if(null===tw.current){let e=new Set;for(let[,t]of f)for(let n of t.messages)(n.result||n.isFinalResult)&&e.add(n.id);tw.current=e;return}for(let[,e]of f){let t=e.messages;if(0===t.length)continue;let n=t[t.length-1];if(!n.result||tw.current.has(n.id))continue;tw.current.add(n.id);let r=n.result;if(0===r.changedFiles.length&&"unknown"===r.testResult&&!r.previewUrl&&!r.previewCmd&&!r.previewPath||e.teamId&&!e.isTeamLead||e.isTeamLead&&!n.isFinalResult)continue;let a={previewUrl:r.previewUrl,previewPath:r.previewPath,previewCmd:r.previewCmd,previewPort:r.previewPort,projectDir:r.projectDir,entryFile:r.entryFile},o=(0,w.P9)({previewUrl:r.previewUrl,previewCmd:r.previewCmd,previewPort:r.previewPort,previewPath:r.previewPath,entryFile:r.entryFile}),l=!o&&(0,w.iv)({previewPath:r.previewPath,previewCmd:r.previewCmd,previewPort:r.previewPort,projectDir:r.projectDir,entryFile:r.entryFile});(o||l)&&(ey(a),em({}),eh(!1)),ek(!0),setTimeout(()=>ek(!1),3e3)}}},[tE,f]);let{handleTileClick:tT,handleRightClick:tC,handleDeleteSelected:tA,handleRotateSelected:tI,handleDragStart:tD,handleDragMove:tj,handleDragEnd:tM,updateGhost:tR,handleUndo:tP,handleRedo:tO,handleImportLayout:tL,handleSelectedFurnitureColorChange:t_}=function(e,t,n){let r=(0,a.useRef)(null),o=(0,a.useCallback)(()=>{var e,n;return null!=(n=null==(e=t.current)?void 0:e.layout)?n:null},[t]),l=(0,a.useCallback)(a=>{let o=t.current;o&&(o.setLayout(a),e.current.isDirty=!0,n(),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{try{localStorage.setItem("office-layout",JSON.stringify(a))}catch(e){}},u.e7))},[t,e,n]),i=(0,a.useCallback)((t,r)=>{var a,i,s,u;let p=e.current,f=o();if(!f)return;let h=p.activeTool;if(t<0||t>=f.cols||r<0||r>=f.rows){let e=null;if(r<0?e="up":r>=f.rows?e="down":t<0?e="left":t>=f.cols&&(e="right"),e){p.pushUndo(f),p.clearRedo();let t=(0,g.vk)(f,e);t&&l(t.layout)}return}switch(h){case d.VF.TILE_PAINT:p.pushUndo(f),p.clearRedo(),l((0,g.FH)(f,t,r,p.selectedTileType,p.floorColor));break;case d.VF.WALL_PAINT:{p.pushUndo(f),p.clearRedo();let e=r*f.cols+t;f.tiles[e]===d.nb.WALL?l((0,g.FH)(f,t,r,d.nb.FLOOR_1,p.floorColor)):l((0,g.FH)(f,t,r,d.nb.WALL,p.wallColor));break}case d.VF.ERASE:{p.pushUndo(f),p.clearRedo();let e=(0,g.iH)(f,t,r),n=f;e&&(n=(0,g.PT)(n,e.uid)),l(n=(0,g.FH)(n,t,r,d.nb.VOID));break}case d.VF.FURNITURE_PLACE:if(p.selectedFurnitureType){let e=(0,m.Um)(p.selectedFurnitureType);if(e){let n=e.canPlaceOnWalls?(0,g.si)(p.selectedFurnitureType,r):r;if((0,g.Ii)(f,p.selectedFurnitureType,t,n)){p.pushUndo(f),p.clearRedo();let e={uid:"f-".concat((0,c.Ak)(6)),type:p.selectedFurnitureType,col:t,row:n,...p.pickedFurnitureColor?{color:p.pickedFurnitureColor}:{}};l((0,g.qZ)(f,e))}}}break;case d.VF.SELECT:{let e=(0,g.iH)(f,t,r);p.selectedFurnitureUid=null!=(a=null==e?void 0:e.uid)?a:null,n();break}case d.VF.EYEDROPPER:{let e=r*f.cols+t,a=f.tiles[e];if(void 0!==a&&a!==d.nb.WALL&&a!==d.nb.VOID){p.selectedTileType=a;let t=null==(i=f.tileColors)?void 0:i[e];t&&(p.floorColor={...t}),p.activeTool=d.VF.TILE_PAINT}else if(a===d.nb.WALL){let t=null==(s=f.tileColors)?void 0:s[e];t&&(p.wallColor={...t}),p.activeTool=d.VF.WALL_PAINT}n();break}case d.VF.FURNITURE_PICK:{let e=(0,g.iH)(f,t,r);e&&(p.selectedFurnitureType=e.type,p.pickedFurnitureColor=null!=(u=e.color)?u:null,p.activeTool=d.VF.FURNITURE_PLACE,n())}}},[e,o,l,n]),s=(0,a.useCallback)((t,n)=>{let r=o();if(!r||t<0||t>=r.cols||n<0||n>=r.rows)return;let a=e.current;a.pushUndo(r),a.clearRedo();let i=(0,g.iH)(r,t,n),s=r;i&&(s=(0,g.PT)(s,i.uid)),l(s=(0,g.FH)(s,t,n,d.nb.VOID))},[e,o,l]),p=(0,a.useCallback)(()=>{let t=e.current,r=o();r&&t.selectedFurnitureUid&&(t.pushUndo(r),t.clearRedo(),l((0,g.PT)(r,t.selectedFurnitureUid)),t.selectedFurnitureUid=null,n())},[e,o,l,n]),f=(0,a.useCallback)(()=>{let t=e.current,n=o();if(!n||!t.selectedFurnitureUid)return;let r=n.furniture.find(e=>e.uid===t.selectedFurnitureUid);r&&(0,m.ZZ)(r.type)&&(t.pushUndo(n),t.clearRedo(),l((0,g.WC)(n,t.selectedFurnitureUid)))},[e,o,l]),h=(0,a.useCallback)((t,n)=>{let r=e.current,a=o();if(!a)return;let l=(0,g.iH)(a,t,n);l&&(r.selectedFurnitureUid=l.uid,r.startDrag(l.uid,t,n,t-l.col,n-l.row),r.pushUndo(a),r.clearRedo())},[e,o]),b=(0,a.useCallback)((t,n)=>{let r=e.current;if(!r.dragUid)return;r.isDragMoving=!0;let a=o();if(!a)return;let l=t-r.dragOffsetCol,i=n-r.dragOffsetRow,s=a.furniture.find(e=>e.uid===r.dragUid);s&&((0,m.Um)(s.type),r.ghostCol=l,r.ghostRow=i,r.ghostValid=(0,g.Ii)(a,s.type,l,i,r.dragUid))},[e,o]),y=(0,a.useCallback)((t,n)=>{let r=e.current;if(!r.dragUid)return;let a=r.dragUid,i=r.isDragMoving;if(r.clearDrag(),r.clearGhost(),!i)return;let s=o();if(!s)return;let c=t-r.dragOffsetCol,d=n-r.dragOffsetRow;l((0,g.iZ)(s,a,c,d))},[e,o,l]),x=(0,a.useCallback)((t,n)=>{let r=e.current;if(!r.dragUid)if(r.activeTool===d.VF.FURNITURE_PLACE&&r.selectedFurnitureType){let e=o();if(!e)return;let a=(0,m.Um)(r.selectedFurnitureType);if(!a)return;let l=a.canPlaceOnWalls?(0,g.si)(r.selectedFurnitureType,n):n;r.ghostCol=t,r.ghostRow=l,r.ghostValid=(0,g.Ii)(e,r.selectedFurnitureType,t,l)}else r.ghostCol=t,r.ghostRow=n,r.ghostValid=!1},[e,o]),k=(0,a.useCallback)(()=>{let t=e.current,n=o();if(!n)return;let r=t.popUndo();r&&(t.pushRedo(n),l(r))},[e,o,l]),v=(0,a.useCallback)(()=>{let t=e.current,n=o();if(!n)return;let r=t.popRedo();r&&(t.pushUndo(n),l(r))},[e,o,l]);return{handleTileClick:i,handleRightClick:s,handleDeleteSelected:p,handleRotateSelected:f,handleDragStart:h,handleDragMove:b,handleDragEnd:y,updateGhost:x,handleUndo:k,handleRedo:v,handleImportLayout:(0,a.useCallback)(t=>{let n=e.current,r=o();r&&(n.pushUndo(r),n.clearRedo()),l(t)},[e,o,l]),handleSelectedFurnitureColorChange:(0,a.useCallback)(t=>{let n=e.current,r=o();if(!r||!n.selectedFurnitureUid)return;n.pushUndo(r),n.clearRedo();let a=r.furniture.map(e=>e.uid===n.selectedFurnitureUid?{...e,color:null!=t?t:void 0}:e);l({...r,furniture:a})},[e,o,l])}}(tl,ti,(0,a.useCallback)(()=>{to(e=>e+1)},[])),tW=(0,a.useCallback)(e=>{let t=document.querySelector("canvas");if(!(null==t?void 0:t.parentElement))return;let n=t.parentElement.clientWidth,r=t.parentElement.clientHeight,a=e.cols*u.dn,o=e.rows*u.dn;td.current=Math.max(u.DH,Math.min(n/a,r/o,u.ZV)),tu.current={x:0,y:0}},[td,tu]),tF=(0,a.useCallback)((e,t)=>{let n=ti.current;n&&(n.setBackgroundImage(t),tL(e),tn(e.cols/e.rows),requestAnimationFrame(()=>requestAnimationFrame(()=>tW(e))))},[ti,tL,tW]),tY=(0,a.useCallback)(()=>{ez(e=>{let t=!e;return t||tl.current.reset(),t})},[]);!function(e){let{editMode:t,editorRef:n,onUndo:r,onRedo:o,onDeleteSelected:l,onRotateSelected:i,onExitEditMode:s}=e;(0,a.useEffect)(()=>{if(!t)return;let e=e=>{let t=e.ctrlKey||e.metaKey;if(t&&"z"===e.key&&!e.shiftKey){e.preventDefault(),r();return}if(t&&"y"===e.key||t&&"z"===e.key&&e.shiftKey){e.preventDefault(),o();return}if("Delete"===e.key||"Backspace"===e.key){n.current.selectedFurnitureUid&&(e.preventDefault(),l());return}if("r"===e.key||"R"===e.key){n.current.selectedFurnitureUid&&(e.preventDefault(),i());return}if("Escape"===e.key)return void(n.current.selectedFurnitureUid?n.current.selectedFurnitureUid=null:s());let a={1:d.VF.SELECT,2:d.VF.TILE_PAINT,3:d.VF.WALL_PAINT,4:d.VF.ERASE,5:d.VF.FURNITURE_PLACE,6:d.VF.EYEDROPPER};if(a[e.key]){n.current.activeTool=a[e.key],n.current.selectedFurnitureUid=null;return}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t,n,r,o,l,i,s])}({editMode:eG,editorRef:tl,onUndo:tP,onRedo:tO,onDeleteSelected:tA,onRotateSelected:tI,onExitEditMode:tY});let tN=(0,a.useCallback)(async()=>{let e=ti.current;if(e)try{let{loadDefaultOffice:t}=await Promise.all([n.e(712),n.e(27)]).then(n.bind(n,3027)),r=await t();r&&(e.setBackgroundImage(r.backgroundImage),tL(r.layout),e1(r.officeId),tn(r.layout.cols/r.layout.rows),requestAnimationFrame(()=>requestAnimationFrame(()=>tW(r.layout))))}catch(e){console.warn("[OfficePage] Failed to load default office zip:",e)}tg(!0)},[]),tH=(0,a.useCallback)(e=>{tc(e)},[]);(0,a.useEffect)(()=>{let e,r=(0,s.getConnection)();if(!r||!r.sessionToken){if(r&&!r.sessionToken){let{clearConnection:e}=n(5149);e()}t.push("/pair");return}return(async()=>{var e;if(el(null!=(e=r.role)?e:"owner"),l.hK.getState().hydrate(),"ably"===r.mode)return(0,i.Ng)(r);let t="3000"===window.location.port||"3002"===window.location.port;if(!t)try{let e=await fetch("".concat(window.location.origin,"/connect"),{signal:AbortSignal.timeout(500)});if(e.ok){let t=await e.json(),a={...r,wsUrl:window.location.origin.replace(/^http/,"ws"),sessionToken:t.sessionToken},{saveConnection:o}=await Promise.resolve().then(n.bind(n,5149));return o(a),(0,i.Ng)(a)}}catch(e){}for(let e of t?[9099,9090,9091]:[9090,9091,9099])try{let t=await fetch("http://localhost:".concat(e,"/connect"),{signal:AbortSignal.timeout(1e3)});if(!t.ok)continue;let a=await t.json(),o={...r,wsUrl:"ws://localhost:".concat(e),sessionToken:a.sessionToken},{saveConnection:l}=await Promise.resolve().then(n.bind(n,5149));return l(o),(0,i.Ng)(o)}catch(e){}return(0,i.Ng)(r)})().then(t=>{e=t}),()=>{null==e||e()}},[t,el]);let tU=ec?f.get(ec):null;(null==tU?void 0:tU.status)==="working"||null==tU||tU.status;let tB=null!=(e=null==tU?void 0:tU.messages.length)?e:0,tG=(0,a.useRef)(!0),tz=(0,a.useRef)(!1),tK=(0,a.useRef)(eW);(0,a.useEffect)(()=>{tK.current&&!eW&&(tG.current=!0),tK.current=eW},[eW]),(0,a.useEffect)(()=>{let e=eB.current;if(!e)return;let t=e.parentElement;if(!t)return;let n=()=>{tz.current||(tG.current=t.scrollHeight-t.scrollTop-t.clientHeight<=80)};return t.addEventListener("scroll",n,{passive:!0}),()=>t.removeEventListener("scroll",n)},[ec]),(0,a.useEffect)(()=>{let e=eB.current;if(!e)return;let t=e.parentElement;if(!t)return;let n=new ResizeObserver(()=>{tz.current=!0,tG.current&&(t.scrollTop=t.scrollHeight),requestAnimationFrame(()=>{tz.current=!1})});return n.observe(t),()=>n.disconnect()},[ec]),(0,a.useLayoutEffect)(()=>{let e=eB.current,t=null==e?void 0:e.parentElement;t&&tG.current&&(t.scrollTop=t.scrollHeight)},[ec,tB]),(0,a.useEffect)(()=>{let e=eB.current;if(!e)return;let t=e.parentElement;if(!t)return;let n=0,r=new MutationObserver(()=>{n||(n=requestAnimationFrame(()=>{n=0,tG.current&&(t.scrollTop=t.scrollHeight)}))});return r.observe(t,{childList:!0,subtree:!0,characterData:!0}),()=>r.disconnect()},[ec]),(0,a.useEffect)(()=>{if(ec)return;let e=Array.from(f.values()).find(e=>e.isTeamLead);e&&(ed(e.agentId),eR(!0))},[f,ec]);let tV=(0,a.useCallback)(e=>{ed(e),eR(!0);let t=f.get(e);t&&(t.isExternal?e_("external"):t.teamId?e_("team"):e_("agents"))},[f]),tX=(0,a.useCallback)((e,t,n)=>{let r=Array.from(f.values()).filter(t=>t.name===e.name||t.name.match(new RegExp("^".concat(e.name," \\d+$")))),a=0===r.length?e.name:"".concat(e.name," ").concat(r.length+1),o="agent-".concat((0,c.Ak)(6));(0,i.S8)({type:"CREATE_AGENT",agentId:o,name:a,role:e.skills?"".concat(e.role," — ").concat(e.skills):e.role,palette:e.palette,personality:e.personality,backend:t,workDir:n,skillFiles:e.skillFiles}),n&&et.set(o,n),ed(o),eR(!0),e_("agents"),ew(!1)},[f]),tJ=(0,a.useCallback)((e,t,n,r)=>{(0,i.S8)({type:"CREATE_TEAM",leadId:e,memberIds:t,backends:n,workDir:r}),eC(!1),e_("team"),ed(null),eR(!1),eO(!0)},[]),t$=(0,a.useCallback)(e=>{(0,i.S8)({type:"SAVE_AGENT_DEF",agent:e}),eI(!1),ej(null),ew(!0)},[]),tq=(0,a.useCallback)(e=>{(0,i.S8)({type:"DELETE_AGENT_DEF",agentDefId:e})},[]),tZ=(0,a.useCallback)(async e=>{let t=f.get(e);if(null==t?void 0:t.isExternal){if(!await ev("Kill external process ".concat(t.name,"? (PID ").concat(t.pid,")")))return;(0,i.S8)({type:"KILL_EXTERNAL",agentId:e})}else{var n;if(!await ev("Fire ".concat(null!=(n=null==t?void 0:t.name)?n:e,"?")))return;(0,i.S8)({type:"FIRE_AGENT",agentId:e})}ec===e&&(ed(null),eR(!1))},[ec,f,ev]),tQ=(0,a.useMemo)(()=>{for(let e of f.values())if(e.teamId)return!0;return!1},[f]),t0=Array.from(f.values()).some(e=>!!e.teamId&&("working"===e.status||"waiting_approval"===e.status)),t1=(0,a.useCallback)(()=>{for(let e of((0,i.S8)({type:"STOP_TEAM"}),Array.from(f.values()).filter(e=>!!e.teamId)))(0,i.S8)({type:"CANCEL_TASK",agentId:e.agentId,taskId:""})},[f]),t2=(0,a.useCallback)(async()=>{let e=Array.from(f.values()).filter(e=>!!e.teamId);if(0===e.length)return;let t="Fire the entire team (".concat(e.length," agents)?");if(await ev(t)){for(let t of((0,i.S8)({type:"FIRE_TEAM"}),e))(0,i.S8)({type:"FIRE_AGENT",agentId:t.agentId});eo(),ed(null),eR(!1),eO(!1)}},[f,eo,ev]),t8=(0,a.useCallback)((e,t)=>{if(!e.type.startsWith("image/"))return;let n=new FileReader;n.onload=()=>{let r=n.result,a=r.split(",")[1],o=e.name.split(".").pop()||"png",l={name:"image-".concat((0,c.Ak)(6),".").concat(o),dataUrl:r,base64:a};t?nL(e=>{let n=new Map(e);return n.set(t,[...n.get(t)||[],l]),n}):eN(e=>[...e,l])},n.readAsDataURL(e)},[]),t3=(0,a.useCallback)(e=>{var t;let n=null==(t=e.clipboardData)?void 0:t.items;if(n){for(let t of n)if(t.type.startsWith("image/")){e.preventDefault();let n=t.getAsFile();n&&t8(n);return}}},[t8]),t6=(0,a.useCallback)((e,t)=>{var n;let r=null==(n=t.clipboardData)?void 0:n.items;if(r){for(let n of r)if(n.type.startsWith("image/")){t.preventDefault();let r=n.getAsFile();r&&t8(r,e);return}}},[t8]),t4=(0,a.useCallback)(e=>{var t,n;let r=null==(t=e.clipboardData)?void 0:t.getData("text/plain");if(r){let t=r.split("\n");if(t.length>3||r.length>200){e.preventDefault(),eU.current++;let a=t.length>1?"+".concat(t.length," lines"):"".concat(r.length," chars"),o="[Pasted text #".concat(eU.current," ").concat(a,"]");eH.current.set(o,r);let l=null!=(n=e.currentTarget.selectionStart)?n:eW.length;eF(e=>e.slice(0,l)+o+e.slice(l))}}},[eW]),[t5,t9]=(0,a.useState)(new Map),t7=(0,a.useCallback)((e,t)=>{var n,r;let a=null==(n=t.clipboardData)?void 0:n.getData("text/plain");if(a){let n=a.split("\n");if(n.length>3||a.length>200){t.preventDefault(),eU.current++;let o=n.length>1?"+".concat(n.length," lines"):"".concat(a.length," chars"),l="[Pasted text #".concat(eU.current," ").concat(o,"]");eH.current.set(l,a);let i=t.currentTarget,s=t5.get(e)||"",c=null!=(r=i.selectionStart)?r:s.length;t9(t=>{let n=new Map(t);return n.set(e,s.slice(0,c)+l+s.slice(c)),n})}}},[t5]),ne=(0,a.useCallback)(e=>{var t;let n=null==(t=e.dataTransfer)?void 0:t.files;if(n)for(let t of n)t.type.startsWith("image/")&&(e.preventDefault(),t8(t))},[t8]),nt=(0,a.useCallback)((e,t)=>{var n;let r=null==(n=t.dataTransfer)?void 0:n.files;if(r)for(let n of r)n.type.startsWith("image/")&&(t.preventDefault(),t8(n,e))},[t8]),nn=(0,a.useCallback)(async e=>{if(0===e.length)return[];let t=e.map(e=>new Promise(t=>{let n=(0,c.Ak)(6);l.Pp.set(n,t),(0,i.S8)({type:"UPLOAD_IMAGE",requestId:n,data:e.base64,filename:e.name}),setTimeout(()=>{l.Pp.delete(n),t("")},5e3)}));return(await Promise.all(t)).filter(e=>!!e)},[]),nr=(0,a.useCallback)(async()=>{if(!ec||!eW.trim()&&0===eY.length)return;let e=f.get(ec);if(null==e?void 0:e.isExternal)return;let t=await nn(eY),n=eW.trim();for(let[e,t]of eH.current)n=n.replace(e,t);t.length>0&&(n+=(n?"\n\n":"")+t.map(e=>"[Attached image: ".concat(e,"]")).join("\n")),n=n.trim();let r=(0,c.Ak)();ea(ec,r,n);let a=et.get(ec);(0,i.S8)({type:"RUN_TASK",agentId:ec,taskId:r,prompt:n,repoPath:a,name:null==e?void 0:e.name,role:null==e?void 0:e.role,personality:null==e?void 0:e.personality}),eF(""),eN([]),eH.current.clear()},[ec,eW,eY,ea,f,nn]),na=(0,a.useCallback)(()=>{ec&&(0,i.S8)({type:"CANCEL_TASK",agentId:ec,taskId:""})},[ec]),no=(0,a.useCallback)(e=>{for(let[,t]of k)if(t.leadAgentId===e)return t.phase;return null},[k]);ec&&no(ec);let nl=(0,a.useCallback)(()=>{ec&&(0,i.S8)({type:"APPROVE_PLAN",agentId:ec})},[ec]),ni=(0,a.useCallback)(()=>{if(!ec)return;let e=f.get(ec);(0,i.S8)({type:"END_PROJECT",agentId:ec,name:null==e?void 0:e.name,role:null==e?void 0:e.role,personality:null==e?void 0:e.personality,backend:null==e?void 0:e.backend}),eo()},[ec,f,eo]),ns=(0,a.useCallback)((e,t)=>{(0,i.S8)({type:"APPROVAL_DECISION",approvalId:e,decision:t})},[]);(0,a.useCallback)(e=>{td.current=Math.max(u.DH,Math.min(u.ZV,e)),to(e=>e+1)},[]);let nc=Array.from(f.values()),nd=nc.filter(e=>!!e.teamId),nu=nc.filter(e=>!e.teamId&&!e.isExternal&&!e.agentId.startsWith("reviewer-")),np=nc.filter(e=>!!e.isExternal),ng=tl.current,[nm,nf]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=window.matchMedia("(max-width: 768px)");nf(e.matches);let t=e=>nf(e.matches);return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let nh="owner"===A,nb="collaborator"===A,ny="spectator"===A,[nx,nk]=(0,a.useState)(""),[nv,nS]=(0,a.useState)(null),nE=(0,a.useCallback)(()=>{nx.trim()&&((0,i.S8)({type:"SUGGEST",text:nx.trim()}),nk(""))},[nx]),[nw,nT]=(0,a.useState)(!1),[nC,nA]=(0,a.useState)(!1),[nI,nD]=(0,a.useState)(!1),[nj,nM]=(0,a.useState)([]),[nR,nP]=(0,a.useState)(0),[nO,nL]=(0,a.useState)(new Map),[n_,nW]=(0,a.useState)(!0),[nF,nY]=(0,a.useState)(null),nN=(0,a.useRef)(!1),[nH,nU]=(0,a.useState)(null),nB=("agents"===eL?nu:"team"===eL?nd:np).map(e=>e.agentId).filter(e=>!ee.has(e)).join(",");(0,a.useEffect)(()=>{nC&&nM(nB?nB.split(","):[])},[nC,nB]),(0,a.useEffect)(()=>{nC&&nP(0)},[nC,eL]);let nG=(0,a.useCallback)((e,t,n)=>{var r;if(nN.current||nF)return;nN.current=!0;let a=f.get(e),o="reviewer-".concat((0,c.Ak)(6));ee.add(o),nY({reviewerAgentId:o,sourceAgentId:e}),(0,i.S8)({type:"REQUEST_REVIEW",reviewerAgentId:o,sourceAgentId:e,changedFiles:t.changedFiles,projectDir:t.projectDir,entryFile:t.entryFile,summary:t.summary,backend:null!=(r=null!=n?n:null==a?void 0:a.backend)?r:"claude"})},[f,nF]);(0,a.useEffect)(()=>{if(!nF||null!==nH)return;let{reviewerAgentId:e}=nF,t=f.get(e);if(!t||"done"!==t.status&&"idle"!==t.status&&"error"!==t.status)return;let n=t.messages.filter(e=>"agent"===e.role&&e.text);"error"===t.status&&0===n.length?nU(t.messages.filter(e=>"system"===e.role&&e.text).map(e=>e.text).join("\n")||"(Review failed — reviewer encountered an error)"):n.length>0&&nU(n[n.length-1].text||"(No issues found)")},[f,nF,nH]);let nz=(0,a.useCallback)(e=>{var t,n;if(!nF)return;let{reviewerAgentId:r,sourceAgentId:a}=nF,o=f.get(r),l=null!=nH?nH:(null==o?void 0:o.messages.filter(e=>"agent"===e.role&&e.text).map(e=>e.text).join("\n\n"))||null;if(!l)return;let s=f.get(a),d=null!=(n=null!=(t=null==s?void 0:s.cwd)?t:null==s?void 0:s.workDir)?n:"",u="fix-".concat((0,c.Ak)(6)),p=(e=>{let t=e.match(/VERDICT[\s:].*/i);if(t){let n=e.indexOf(t[0]);return e.slice(n).trim()}let n=e.match(/ISSUES[\s:].*/i);if(n){let t=e.indexOf(n[0]);return e.slice(t).trim()}return e.length>1e3?e.slice(-1e3).trim():e})(l),g=["A code review found issues. Fix ONLY CRITICAL items (bugs, crashes, security).","IGNORE SUGGESTION items. Make minimum changes — do NOT rewrite or restructure."];e&&g.push("","User instructions: ".concat(e)),g.push("","Review findings:",p);let m=g.join("\n");ea(a,u,e?"[Review] ".concat(e):"[Review] Apply critical fixes"),(0,i.S8)({type:"RUN_TASK",agentId:a,taskId:u,prompt:m,repoPath:d||void 0}),(0,i.S8)({type:"FIRE_AGENT",agentId:r}),ee.delete(r),nY(null),nU(null),nN.current=!1},[nF,nH,f,ea]),nK=(0,a.useCallback)(()=>{if(!nF)return;let{reviewerAgentId:e}=nF;(0,i.S8)({type:"FIRE_AGENT",agentId:e}),ee.delete(e),nY(null),nU(null),nN.current=!1},[nF]);(0,a.useEffect)(()=>{if(0!==ee.size)for(let e of ee){if((null==nF?void 0:nF.reviewerAgentId)===e)continue;let t=f.get(e);if(t&&("done"===t.status||"idle"===t.status||"error"===t.status)&&t.messages.length>1){let t=setTimeout(()=>{(0,i.S8)({type:"FIRE_AGENT",agentId:e}),ee.delete(e)},12e4);return()=>clearTimeout(t)}}},[f,nF]);let nV=(0,a.useCallback)(e=>{var t,n;let r=f.get(e);if(!r)return null;let a=ei(e);return{agentId:e,name:r.name,role:r.role,backend:r.backend,status:r.status,messages:r.messages,visibleMessages:a,hasMoreMessages:a.length<r.messages.length,tokenUsage:r.tokenUsage,lastLogLine:null!=(n=null!=(t=er.get(r.agentId))?t:r.lastLogLine)?n:null,busy:null===nH,reviewDone:null!==nH,reviewResultText:null!=nH?nH:void 0}},[f,ei,nH]),nX=(0,a.useRef)(nC);(0,a.useEffect)(()=>{if(nX.current===nC)return;nX.current=nC,nC&&nP(0);let e=setTimeout(()=>{var e;null==(e=eB.current)||e.scrollIntoView({block:"end",behavior:"instant"}),tG.current=!0},350);return()=>clearTimeout(e)},[nC]);let nJ=(0,a.useCallback)(async e=>{try{var t,r;let{getGatewayHttpUrl:a}=await Promise.resolve().then(n.bind(n,5149)),o=a(),l=window.prompt("Enter your pair code to create a share link:");if(!l)return;let i=await fetch("".concat(o,"/share/create"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:l.trim(),role:e})});if(i.ok){let e=await i.json(),n="".concat(window.location.origin,"/join?token=").concat(e.token,"&gateway=").concat(encodeURIComponent(o));nS(n),null==(t=navigator.clipboard)||t.writeText(n).catch(()=>{})}else{let e=await i.json().catch(()=>({}));alert(null!=(r=e.error)?r:"Failed to create share link")}}catch(e){console.error("[Share] Failed to create share link:",e)}nT(!1)},[]),n$=eM&&null!==ec;return(0,r.jsxs)("div",{style:{height:"100vh",width:"100vw",position:"relative",overflow:"hidden",display:"flex",backgroundColor:x.lr},children:[(0,r.jsx)(Z,{}),n_&&!nC&&(0,r.jsxs)("div",{style:{flex:1,position:"relative",minWidth:0,display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",marginRight:"calc(min(40vw, 800px) + 30px)"},children:[(0,r.jsx)("div",{style:{position:"absolute",inset:0,zIndex:5,backgroundColor:x.lr,animation:"scene-overlay-fadeout 2s ease-out 0.1s forwards",pointerEvents:"none"}}),(0,r.jsxs)("div",{style:{width:"min(100%, calc(100vh * ".concat(tt,"))"),height:"min(100%, calc(100vw / ".concat(tt,"))"),aspectRatio:"".concat(tt),position:"relative",maxHeight:"100vh"},children:[(0,r.jsx)(M,{onAdapterReady:tH,onAgentClick:tV,editMode:eG,editorRef:tl,officeStateRef:ti,zoomRef:td,panRef:tu,onTileClick:tT,onTileRightClick:tC,onGhostMove:tR,onDragStart:tD,onDragMove:tj,onDragEnd:tM,onDeleteBtnClick:tA,onRotateBtnClick:tI,onAssetsLoaded:tN}),(0,r.jsx)(F,{visible:!tp}),(0,r.jsx)("div",{style:{position:"absolute",top:0,left:0,right:0,zIndex:10,padding:"10px 16px",display:"flex",alignItems:"center",gap:12,background:"linear-gradient(to bottom, var(--term-bg) 0%, transparent 100%)",pointerEvents:"none"},children:(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,pointerEvents:"auto"},children:[(0,r.jsx)("h1",{className:"px-font",style:{fontSize:12,margin:0,color:"#e8b040",textShadow:"2px 2px 0px rgba(0,0,0,0.8), 0 0 12px rgba(200,155,48,0.3)",letterSpacing:"0.05em"},children:"Open Office"}),(0,r.jsxs)("span",{title:T.Z?"Web UI v".concat(T.h,"\nBuild ").concat(T.Z):"Web UI v".concat(T.h),style:{fontSize:9,color:"rgba(232, 220, 184, 0.4)",fontFamily:"monospace",letterSpacing:"0.04em",userSelect:"text"},children:["v",T.h]}),(0,r.jsx)("span",{style:{fontSize:10,padding:"3px 7px",border:"1px solid ".concat(h?"".concat(x.$C,"40"):"".concat(x.v_,"40")),backgroundColor:h?"".concat(x.$C,"15"):"".concat(x.v_,"15"),color:h?x.$C:x.v_,fontFamily:"monospace",letterSpacing:"0.05em"},children:h?"● ONLINE":"● OFFLINE"}),eG&&(0,r.jsx)("span",{style:{fontSize:10,padding:"3px 7px",border:"1px solid #5a3a10",backgroundColor:"#1a0e00",color:"#e8b040",fontFamily:"monospace"},children:"EDIT MODE"}),ny&&(0,r.jsx)("span",{style:{fontSize:10,padding:"3px 7px",border:"1px solid #3b82f6",backgroundColor:"#1a2744",color:"#7ab8f5",fontFamily:"monospace",letterSpacing:"0.05em"},children:"WATCHING"}),nb&&(0,r.jsx)("span",{style:{fontSize:10,padding:"3px 7px",border:"1px solid #a855f7",backgroundColor:"#2d1a44",color:"#c084fc",fontFamily:"monospace",letterSpacing:"0.05em"},children:"COLLABORATOR"}),nh&&(0,r.jsxs)("div",{style:{position:"relative"},children:[(0,r.jsx)("span",{onClick:()=>nT(!nw),style:{fontSize:10,padding:"3px 7px",cursor:"pointer",border:"1px solid #a855f760",backgroundColor:nw?"#a855f720":"transparent",color:"#c084fc",fontFamily:"monospace",letterSpacing:"0.05em"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#a855f720"},onMouseLeave:e=>{nw||(e.currentTarget.style.backgroundColor="transparent")},children:"SHARE"}),nw&&(0,r.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,marginTop:4,zIndex:50,backgroundColor:x.gc,border:"1px solid ".concat(x.KD),display:"flex",flexDirection:"column",minWidth:160},children:[(0,r.jsx)("button",{onClick:()=>nJ("collaborator"),style:{padding:"8px 12px",border:"none",backgroundColor:"transparent",color:"#c084fc",fontSize:12,cursor:"pointer",textAlign:"left",fontFamily:"monospace"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#a855f720"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="transparent"},children:"Collaborator link"}),(0,r.jsx)("button",{onClick:()=>nJ("spectator"),style:{padding:"8px 12px",border:"none",backgroundColor:"transparent",color:"#7ab8f5",fontSize:12,cursor:"pointer",textAlign:"left",fontFamily:"monospace"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#3b82f620"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="transparent"},children:"Spectator link"})]})]})]})}),eG&&(0,r.jsx)(R,{activeTool:ng.activeTool,selectedTileType:ng.selectedTileType,selectedFurnitureType:ng.selectedFurnitureType,selectedFurnitureUid:ng.selectedFurnitureUid,selectedFurnitureColor:(()=>{var e;if(!ng.selectedFurnitureUid||!ti.current)return null;let t=ti.current.layout.furniture.find(e=>e.uid===ng.selectedFurnitureUid);return null!=(e=null==t?void 0:t.color)?e:null})(),floorColor:ng.floorColor,wallColor:ng.wallColor,onToolChange:e=>{ng.activeTool=e,ng.clearSelection(),to(e=>e+1)},onTileTypeChange:e=>{ng.selectedTileType=e,to(e=>e+1)},onFloorColorChange:e=>{ng.floorColor=e,to(e=>e+1)},onWallColorChange:e=>{ng.wallColor=e,to(e=>e+1)},onSelectedFurnitureColorChange:t_,onFurnitureTypeChange:e=>{ng.selectedFurnitureType=e,ng.activeTool=d.VF.FURNITURE_PLACE,to(e=>e+1)}}),!nm&&(0,r.jsx)(O,{editMode:eG,onToggleEditMode:tY,onOpenSettings:()=>eV(!0),onOpenHistory:()=>eJ(!0),onOpenOfficeSwitcher:()=>eq(!0),showEditorControls:e2,testActive:e3,onToggleTest:te?()=>{let e=ti.current;e&&(e.hasTestCharacters()?(e.clearTestCharacters(),e6(!1)):(e.spawnTestCharacters(),e6(!0)))}:void 0}),b.length>0&&(0,r.jsx)(G,{messages:b,agents:f,assetsReady:tp})]})]}),!nm&&(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",{className:"term-dotgrid".concat(nI?" console-transitioning":""),style:{position:"fixed",right:0,top:0,width:nC?"100vw":"min(40vw, 800px)",minWidth:260,height:"100vh",backgroundColor:x.gc,border:"none",borderLeft:"none",boxShadow:nC?"none":"-4px 0 12px -2px rgba(0,0,0,0.5), -1px 0 0 rgba(0,0,0,0.5), inset 1px 0 0 rgba(255,255,255,0.04)",display:"flex",flexDirection:"row",overflow:"visible",transition:"width 0.3s ease",willChange:"width",zIndex:10},children:[(0,r.jsxs)("div",{style:{position:"absolute",left:nC?0:void 0,right:nC?void 0:"100%",top:"50%",transform:"translateY(-50%)",zIndex:30,display:"flex",flexDirection:"column",alignItems:nC?"flex-start":"flex-end",gap:2,transition:"opacity 0.15s ease",opacity:nC||n_?1:0,pointerEvents:nC||n_?"auto":"none"},children:[[{key:"agents",label:"Agents"},{key:"team",label:"Team"},{key:"external",label:"Ext"}].map(e=>{let t=eL===e.key,n=x.DM;return(0,r.jsx)("button",{onClick:()=>{e_(e.key);let t="agents"===e.key?nu:"team"===e.key?nd:np;t.length>0&&(ed(t[0].agentId),eR(!0))},style:{writingMode:"vertical-lr",textOrientation:"mixed",padding:"0 5px",height:72,border:"none",cursor:"pointer",background:t?n+"20":x.gc+"80",borderRadius:nC?"0 6px 6px 0":"6px 0 0 6px",borderTop:"1px solid ".concat(t?n+"60":x.JH),borderBottom:"1px solid ".concat(t?n+"60":x.JH),borderLeft:nC?"none":"1px solid ".concat(t?n+"60":x.JH),borderRight:nC?"1px solid ".concat(t?n+"60":x.JH):"none",color:t?n:x.Y0,fontSize:13,fontFamily:x.Rw,fontWeight:600,letterSpacing:"0.1em",boxShadow:t?"0 2px 8px ".concat(n,"15, inset 0 -4px 8px ").concat(n,"08"):"2px 0 8px rgba(0,0,0,0.4)",transition:"all 0.15s"},onMouseEnter:e=>{t||(e.currentTarget.style.color=n)},onMouseLeave:e=>{t||(e.currentTarget.style.color=x.Y0)},children:e.label},e.key)}),(0,r.jsx)("button",{onClick:()=>{nD(!0),nC?(nA(!1),setTimeout(()=>{nW(!0),nD(!1)},350)):(nW(!1),requestAnimationFrame(()=>nA(!0)),setTimeout(()=>nD(!1),350))},style:{width:28,height:40,border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",padding:0,marginTop:4,background:x.gc+"80",borderRadius:nC?"0 10px 10px 0":"10px 0 0 10px",borderTop:"1px solid ".concat(x.DM,"40"),borderBottom:"1px solid ".concat(x.DM,"40"),borderLeft:nC?"none":"1px solid ".concat(x.DM,"40"),borderRight:nC?"1px solid ".concat(x.DM,"40"):"none",boxShadow:"-2px 0 8px rgba(0,0,0,0.3)",color:x.DM,fontSize:14},onMouseEnter:e=>{e.currentTarget.style.background=x.nY,e.currentTarget.style.color=x.DM},onMouseLeave:e=>{e.currentTarget.style.background=x.gc+"80",e.currentTarget.style.color=x.DM},title:nC?"Back to Office":"Console Mode",children:(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",style:{transform:nC?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.3s ease"},children:(0,r.jsx)("path",{d:"M9 2L4 7L9 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:3,marginTop:8,alignItems:"center",marginLeft:6*!!nC},children:Object.entries(x.aD).filter(e=>{let[t]=e;return!["gruvbox","nord","dracula","slate"].includes(t)}).map(e=>{let[t,n]=e;return(0,r.jsx)("button",{onClick:()=>tf(t),title:n.name,style:{width:10,height:10,borderRadius:"50%",padding:0,border:tm===t?"2px solid ".concat(n.accent):"1px solid #444",backgroundColor:n.accent,cursor:"pointer",opacity:tm===t?1:.4,transition:"all 0.15s",boxShadow:tm===t?"0 0 6px ".concat(n.accent,"60"):"none"},onMouseEnter:e=>{e.currentTarget.style.opacity="1"},onMouseLeave:e=>{tm!==t&&(e.currentTarget.style.opacity="0.4")}},t)})})]}),(0,r.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0,paddingLeft:nC?36:void 0},children:(()=>{let e=("agents"===eL?nu:"team"===eL?nd:np).filter(e=>!ee.has(e.agentId)),t=e.some(e=>e.agentId===ec);return(0,r.jsxs)(r.Fragment,{children:[!nC&&(0,r.jsxs)("div",{onWheel:e=>{Math.abs(e.deltaY)>Math.abs(e.deltaX)&&(e.currentTarget.scrollLeft+=e.deltaY)},onMouseDown:e=>{if(e.target.closest("button"))return;let t=e.currentTarget,n=e.clientX,r=t.scrollLeft;t.style.cursor="grabbing",t.style.userSelect="none";let a=e=>{t.scrollLeft=r-(e.clientX-n)},o=()=>{t.style.cursor="",t.style.userSelect="",document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",o)};document.addEventListener("mousemove",a),document.addEventListener("mouseup",o)},style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",minHeight:64,borderBottom:"1px solid ".concat(x.JH),background:x.gc,overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none",cursor:"grab"},children:[0===e.length&&"external"===eL&&(0,r.jsx)("div",{style:{padding:"12px 10px",color:x.Y0,fontSize:x.Z8,fontFamily:x.Rw},children:"No external agents detected"}),e.map((e,t)=>{var n,a,o,l,i,s;let c=ec===e.agentId,d=f.get(e.agentId),u=null!=(o=null!=(a=null==d?void 0:d.status)?a:e.status)?o:"idle",p=null!=(l=(0,E.DY)()[u])?l:(0,E.DY)().idle,g="working"===u,m="waiting_approval"===u,h=!!(null==d?void 0:d.isTeamLead),b=g?x.DM:m?x.O2:"error"===u?x.v_:"done"===u?x.$C:x.KD;return(0,r.jsxs)("button",{onClick:()=>{ed(e.agentId),eR(!0)},title:"".concat(e.name," - ").concat(p.label),style:{display:"flex",flexDirection:"row",alignItems:"center",padding:"6px 12px 6px 6px",gap:10,border:"1px solid ".concat(c?x.DM:x.JH),cursor:"pointer",backgroundColor:c?"".concat(x.DM,"12"):"transparent",borderRadius:6,flexShrink:0,position:"relative",transition:"all 0.2s ease",outline:"none"},onMouseEnter:e=>{c||(e.currentTarget.style.backgroundColor="".concat(x.DM,"0a"),e.currentTarget.style.borderColor=x.KD)},onMouseLeave:e=>{c||(e.currentTarget.style.backgroundColor="transparent",e.currentTarget.style.borderColor=x.JH)},children:[(0,r.jsxs)("div",{style:{position:"relative",width:34,height:40,overflow:"hidden",borderRadius:4,flexShrink:0,border:"2px solid ".concat(b),boxShadow:g?"0 0 6px ".concat(x.DM,"30"):m?"0 0 6px ".concat(x.O2,"25"):"none",transition:"border-color 0.3s ease, box-shadow 0.3s ease"},children:[(0,r.jsx)("div",{style:{marginTop:-1,marginLeft:1},children:(0,r.jsx)(W,{palette:null!=(i=e.palette)?i:0,zoom:2,ready:tp})}),g&&(0,r.jsx)("span",{style:{position:"absolute",top:2,right:2,width:6,height:6,borderRadius:"50%",backgroundColor:x.DM,boxShadow:"0 0 4px ".concat(x.DM),animation:"px-pulse-gold 1.5s ease infinite"}})]}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,r.jsx)("span",{style:{fontSize:11,fontWeight:600,color:c?x.oj:x.lR,fontFamily:x.Rw,maxWidth:80,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",letterSpacing:"-0.01em"},children:e.name}),h&&(0,r.jsx)("span",{style:{fontSize:8,fontFamily:x.Rw,color:x.O2,fontWeight:700,padding:"0 3px",lineHeight:"14px",border:"1px solid ".concat(x.O2,"40"),borderRadius:3,flexShrink:0},children:"LEAD"})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5},children:[((null==d?void 0:d.backend)||e.backend)&&(0,r.jsx)("span",{style:{fontSize:9,color:x.Y0,fontFamily:x.Rw,maxWidth:70,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:null!=(s=null==(n=E.GN.find(t=>t.id===((null==d?void 0:d.backend)||e.backend)))?void 0:n.name)?s:(null==d?void 0:d.backend)||e.backend}),(0,r.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",backgroundColor:p.color,flexShrink:0,boxShadow:g?"0 0 4px ".concat(p.color,"80"):"none"}})]})]})]},e.agentId)}),nh&&"agents"===eL&&(0,r.jsxs)("button",{onClick:()=>ew(!0),title:"Hire Agent",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:"6px 16px",height:52,flexShrink:0,border:"1px solid ".concat(x.DM,"50"),cursor:"pointer",backgroundColor:"".concat(x.DM,"12"),color:"".concat(x.DM,"cc"),fontSize:11,fontFamily:x.Rw,fontWeight:500,borderRadius:6,transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="".concat(x.DM,"25"),e.currentTarget.style.borderColor="".concat(x.DM,"90"),e.currentTarget.style.color=x.DM},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="".concat(x.DM,"12"),e.currentTarget.style.borderColor="".concat(x.DM,"50"),e.currentTarget.style.color="".concat(x.DM,"cc")},children:[(0,r.jsx)("span",{style:{fontSize:15,lineHeight:1},children:"+"})," hire"]}),nh&&"team"===eL&&!tQ&&(0,r.jsxs)("button",{onClick:()=>eC(!0),title:"Hire Team",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:"6px 16px",height:52,flexShrink:0,border:"1px solid ".concat(x.DM,"50"),cursor:"pointer",backgroundColor:"".concat(x.DM,"12"),color:"".concat(x.DM,"cc"),fontSize:11,fontFamily:x.Rw,fontWeight:500,borderRadius:6,transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="".concat(x.DM,"25"),e.currentTarget.style.borderColor="".concat(x.DM,"90"),e.currentTarget.style.color=x.DM},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="".concat(x.DM,"12"),e.currentTarget.style.borderColor="".concat(x.DM,"50"),e.currentTarget.style.color="".concat(x.DM,"cc")},children:[(0,r.jsx)("span",{style:{fontSize:15,lineHeight:1},children:"+"})," hire team"]}),nh&&"team"===eL&&tQ&&t0&&(0,r.jsx)("button",{onClick:t1,title:"Stop Team Work",style:{display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,padding:"6px 14px",height:52,border:"1px solid ".concat(x.O2,"60"),cursor:"pointer",backgroundColor:"".concat(x.O2,"10"),color:x.O2,fontSize:10,fontFamily:x.Rw,borderRadius:6,transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="".concat(x.O2,"20")},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="".concat(x.O2,"10")},children:"stop"}),nh&&"team"===eL&&tQ&&(0,r.jsx)("button",{onClick:t2,title:"Fire Team",style:{display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,padding:"6px 14px",height:52,border:"1px solid ".concat(x.v_,"30"),cursor:"pointer",backgroundColor:"transparent",color:x.v_,fontSize:10,fontFamily:x.Rw,borderRadius:6,transition:"all 0.2s ease",opacity:.7},onMouseEnter:e=>{e.currentTarget.style.opacity="1",e.currentTarget.style.backgroundColor="".concat(x.v_,"12")},onMouseLeave:e=>{e.currentTarget.style.opacity="0.7",e.currentTarget.style.backgroundColor="transparent"},children:"fire"})]}),!nC&&!t&&e.length>0&&(()=>{let t=e[0];return setTimeout(()=>{ed(t.agentId),eR(!0)},0),null})(),nC?(0,r.jsx)($,{openPanes:nj.filter(t=>e.some(e=>e.agentId===t)),getAgentData:e=>{var t,n,r;let a=f.get(e);if(!a)return null;let o=ei(e);return{agentId:e,name:a.name,role:a.role,backend:a.backend,status:a.status,cwd:a.cwd,workDir:a.workDir,messages:a.messages,visibleMessages:o,hasMoreMessages:o.length<a.messages.length,tokenUsage:a.tokenUsage,isTeamLead:a.isTeamLead,isTeamMember:!!a.teamId&&!a.isTeamLead,isExternal:!!a.isExternal,teamId:a.teamId,teamPhase:a.isTeamLead?no(e):null,pendingApproval:null!=(t=a.pendingApproval)?t:null,awaitingApproval:a.awaitingApproval,lastLogLine:null!=(r=null!=(n=er.get(a.agentId))?n:a.lastLogLine)?r:null,busy:"working"===a.status||"waiting_approval"===a.status,pid:a.pid,autoMerge:a.autoMerge,pendingMerge:a.pendingMerge,lastMergeCommit:a.lastMergeCommit,lastMergeMessage:a.lastMergeMessage,undoCount:a.undoCount}},paneOffset:nR,onPaneOffsetChange:nP,panePrompts:t5,onPanePromptChange:(e,t)=>t9(n=>{let r=new Map(n);return r.set(e,t),r}),isOwner:nh,isCollaborator:nb,isSpectator:ny,panePendingImages:nO,onPanePendingImagesChange:(e,t)=>nL(n=>{let r=new Map(n);return r.set(e,t),r}),suggestions:j,suggestText:nx,onSuggestTextChange:nk,onSubmit:async e=>{var t;let n=(null==(t=t5.get(e))?void 0:t.trim())||"",r=nO.get(e)||[];if(!n&&0===r.length)return;let a=f.get(e);if(!a||a.isExternal)return;let o=await nn(r),l=n;for(let[e,t]of eH.current)l=l.replace(e,t);if(o.length>0&&(l+=(l?"\n\n":"")+o.map(e=>"[Attached image: ".concat(e,"]")).join("\n")),!(l=l.trim()))return;let s="task-"+Date.now().toString(36);ea(e,s,l),(0,i.S8)({type:"RUN_TASK",agentId:e,taskId:s,prompt:l,repoPath:et.get(e)}),t9(t=>{let n=new Map(t);return n.set(e,""),n}),nL(t=>{let n=new Map(t);return n.delete(e),n}),eH.current.clear()},onCancel:e=>(0,i.S8)({type:"CANCEL_TASK",agentId:e,taskId:""}),onFire:tZ,onApproval:ns,onApprovePlan:e=>(0,i.S8)({type:"APPROVE_PLAN",agentId:e}),onQuickApprove:e=>{if(!f.get(e))return;let t="task-"+Date.now().toString(36);ea(e,t,"yes"),(0,i.S8)({type:"RUN_TASK",agentId:e,taskId:t,prompt:"yes",repoPath:et.get(e)})},onEndProject:e=>{let t=f.get(e);(0,i.S8)({type:"END_PROJECT",agentId:e,name:null==t?void 0:t.name,role:null==t?void 0:t.role,personality:null==t?void 0:t.personality,backend:null==t?void 0:t.backend}),eo()},onSuggest:nE,onPreview:ep,onReview:(e,t,n)=>nG(e,t,n),detectedBackends:en,onLoadMore:e=>es(e),onPasteImage:t6,onPasteText:t7,onDropImage:nt,reviewOverlay:nF,getReviewerData:nV,onReviewerLoadMore:e=>es(e),onApplyReviewFixes:nz,onDismissReview:nK,onMerge:e=>(0,i.S8)({type:"MERGE_WORKTREE",agentId:e}),onRevert:e=>(0,i.S8)({type:"REVERT_WORKTREE",agentId:e}),onUndoMerge:async e=>{var t,n;let r=f.get(e),a=null!=(n=null==r||null==(t=r.lastMergeCommit)?void 0:t.slice(0,7))?n:"???",o=(null==r?void 0:r.lastMergeMessage)||"merge commit";await ev("Undo merge ".concat(a,'?\n"').concat(o,'"\n\nThis will remove the merge commit from main.'))&&(0,i.S8)({type:"UNDO_MERGE",agentId:e})},scrollFrozen:nI,agentMeta:e.map(e=>{var t,n;return{agentId:e.agentId,name:e.name,palette:null!=(n=e.palette)?n:0,isTeamLead:!!(null==(t=f.get(e.agentId))?void 0:t.isTeamLead)}}),assetsReady:tp,showHireButton:nh&&("agents"===eL||"team"===eL&&!tQ),hireLabel:"team"===eL?"hire team":"hire",onHire:()=>"team"===eL?eC(!0):ew(!0),showTeamControls:nh&&"team"===eL&&tQ,teamBusy:t0,onStopTeam:t1,onFireTeam:t2}):ec&&t?(()=>{var e,t,n;let a=f.get(ec);if(!a)return null;let o=ei(ec),l=!!a.teamId&&!a.isTeamLead,s="working"===a.status||"waiting_approval"===a.status;return(0,r.jsx)(J,{agentId:ec,name:a.name,role:a.role,backend:a.backend,status:a.status,cwd:a.cwd,workDir:a.workDir,messages:a.messages,visibleMessages:o,hasMoreMessages:o.length<a.messages.length,tokenUsage:a.tokenUsage,isTeamLead:a.isTeamLead,isTeamMember:l,isExternal:!!a.isExternal,teamId:a.teamId,teamPhase:a.isTeamLead?no(ec):null,pendingApproval:null!=(e=a.pendingApproval)?e:null,awaitingApproval:a.awaitingApproval,lastLogLine:null!=(n=null!=(t=er.get(a.agentId))?t:a.lastLogLine)?n:null,busy:s,pid:a.pid,isOwner:nh,isCollaborator:nb,isSpectator:ny,prompt:eW,onPromptChange:eF,pendingImages:eY,onPendingImagesChange:eN,suggestions:j,suggestText:nx,onSuggestTextChange:nk,onSubmit:nr,onCancel:na,onFire:tZ,onApproval:ns,onApprovePlan:nl,onQuickApprove:()=>{if(!ec)return;let e="task-"+Date.now().toString(36);ea(ec,e,"yes"),(0,i.S8)({type:"RUN_TASK",agentId:ec,taskId:e,prompt:"yes",repoPath:et.get(ec)})},onEndProject:ni,onSuggest:nE,onPreview:ep,autoMerge:a.autoMerge,pendingMerge:a.pendingMerge,lastMergeCommit:a.lastMergeCommit,lastMergeMessage:a.lastMergeMessage,undoCount:a.undoCount,onMerge:()=>(0,i.S8)({type:"MERGE_WORKTREE",agentId:ec}),onRevert:()=>(0,i.S8)({type:"REVERT_WORKTREE",agentId:ec}),onUndoMerge:async()=>{var e,t;let n=f.get(ec),r=null!=(t=null==n||null==(e=n.lastMergeCommit)?void 0:e.slice(0,7))?t:"???",a=(null==n?void 0:n.lastMergeMessage)||"merge commit";await ev("Undo merge ".concat(r,'?\n"').concat(a,'"\n\nThis will remove the merge commit from main.'))&&(0,i.S8)({type:"UNDO_MERGE",agentId:ec})},onReview:(e,t)=>nG(ec,e,t),detectedBackends:en,onLoadMore:()=>es(ec),onPasteImage:t3,onPasteText:t4,onDropImage:ne,reviewerOverlay:(null==nF?void 0:nF.sourceAgentId)===ec?nV(nF.reviewerAgentId):null,onReviewerLoadMore:(null==nF?void 0:nF.sourceAgentId)===ec?()=>es(nF.reviewerAgentId):void 0,onApplyReviewFixes:(null==nF?void 0:nF.sourceAgentId)===ec?nz:void 0,onDismissReview:(null==nF?void 0:nF.sourceAgentId)===ec?nK:void 0,scrollFrozen:nI},ec)})():(0,r.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"#3a3a3a",fontFamily:x.Rw,fontSize:x.Z8},children:e.length>0?"Select an agent":""}),"team"===eL&&b.length>0&&(0,r.jsx)(z,{messages:b,agents:f,assetsReady:tp,onClear:eo})]})})()})]})}),nm&&nc.length>0&&!n$&&!eP&&(0,r.jsxs)("div",{style:{position:"absolute",bottom:0,left:0,right:0,zIndex:20,padding:"8px 12px",display:"flex",alignItems:"center",gap:8,background:"linear-gradient(to top, var(--term-bg) 0%, color-mix(in srgb, var(--term-bg) 70%, transparent) 80%, transparent 100%)",overflowX:"auto"},children:[nh&&(0,r.jsx)("button",{onClick:()=>ew(!0),style:{width:44,height:44,flexShrink:0,border:"1px solid ".concat(x.DM,"60"),backgroundColor:"".concat(x.DM,"1e"),color:x.DM,fontSize:22,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:"+"}),(0,r.jsx)("button",{onClick:()=>eO(!0),style:{width:44,height:44,flexShrink:0,border:"1px solid ".concat(x.O2,"70"),backgroundColor:"".concat(x.O2,"20"),color:x.O2,fontSize:11,fontWeight:700,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontFamily:"monospace"},children:"Team"}),nc.map(e=>{var t,n;let a=null!=(t=(0,E.DY)()[e.status])?t:(0,E.DY)().idle;return(0,r.jsxs)("button",{onClick:()=>{ed(e.agentId),eR(!0)},style:{position:"relative",flexShrink:0,width:44,height:44,border:ec===e.agentId?"1px solid ".concat(x.O2):"1px solid ".concat(x.JH),backgroundColor:x.gc,cursor:"pointer",padding:0,display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:[(0,r.jsx)(W,{palette:null!=(n=e.palette)?n:0,zoom:1,ready:tp}),(0,r.jsx)("span",{style:{position:"absolute",bottom:2,right:2,width:6,height:6,backgroundColor:a.color,border:"1px solid ".concat(x.gc)}})]},e.agentId)})]}),nm&&n$&&(()=>{var e,t;let n=ec?f.get(ec):null;if(!n)return null;let a=null!=(e=(0,E.DY)()[n.status])?e:(0,E.DY)().idle,o="working"===n.status||"waiting_approval"===n.status,l=!!n.teamId&&!n.isTeamLead;return(0,r.jsxs)("div",{style:{position:"absolute",inset:0,zIndex:30,backgroundColor:x.lr,display:"flex",flexDirection:"column"},children:[(0,r.jsxs)("div",{onClick:()=>eR(!1),style:{padding:"12px 14px",borderBottom:"1px solid ".concat(x.JH),display:"flex",alignItems:"center",gap:10,flexShrink:0,backgroundColor:x.gc,cursor:"pointer"},children:[(0,r.jsx)("span",{style:{fontSize:15,color:x.Y0,marginRight:4},children:"←"}),(0,r.jsx)(W,{palette:null!=(t=n.palette)?t:0,zoom:2,ready:tp}),(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsxs)("div",{style:{fontSize:13,fontWeight:700,color:x.oj,display:"flex",alignItems:"center",gap:4},children:[n.name,n.isTeamLead&&(0,r.jsx)("span",{style:{fontSize:9,padding:"1px 4px",backgroundColor:"".concat(x.O2,"28"),color:x.O2,border:"1px solid ".concat(x.O2,"60"),fontFamily:"monospace"},children:"LEAD"}),l&&(0,r.jsx)("span",{style:{fontSize:9,padding:"1px 4px",backgroundColor:"".concat(x.O2,"20"),color:x.O2,border:"1px solid ".concat(x.O2,"50"),fontFamily:"monospace"},children:"TEAM"}),n.tokenUsage.inputTokens>0&&(0,r.jsx)(D.TokenBadge,{inputTokens:n.tokenUsage.inputTokens,outputTokens:n.tokenUsage.outputTokens})]}),(0,r.jsx)("div",{style:{fontSize:11,color:x.Y0},children:n.role})]}),(0,r.jsx)("span",{style:{fontSize:10,padding:"2px 6px",backgroundColor:a.color+"18",color:a.color,border:"1px solid ".concat(a.color,"40"),flexShrink:0,fontFamily:"monospace"},children:a.label})]}),(0,r.jsxs)("div",{"data-scrollbar":!0,style:{flex:1,overflowY:"auto",padding:"8px 10px",display:"flex",flexDirection:"column"},children:[n.isTeamLead&&(()=>{let e=no(n.agentId);if(!e)return null;let t={create:{color:x.KE,icon:"\uD83D\uDCAC",hint:"Define the project"},design:{color:x.O2,icon:"\uD83D\uDCCB",hint:"Review the plan"},execute:{color:x.O2,icon:"⚡",hint:"Team is building"},complete:{color:x.$C,icon:"✓",hint:"Review results"}}[e];return t?(0,r.jsxs)("div",{style:{padding:"5px 8px",marginBottom:8,backgroundColor:t.color+"10",backdropFilter:"blur(6px)",WebkitBackdropFilter:"blur(6px)",border:"1px solid ".concat(t.color,"30"),display:"flex",alignItems:"center",gap:6,fontSize:11,fontFamily:"monospace"},children:[(0,r.jsx)("span",{children:t.icon}),(0,r.jsx)("span",{style:{color:t.color,fontWeight:700,textTransform:"uppercase",fontSize:9,letterSpacing:"0.05em"},children:e}),(0,r.jsx)("span",{style:{color:x.Y0},children:t.hint})]}):null})(),0===n.messages.length&&(0,r.jsx)("div",{style:{textAlign:"center",color:x.Y0,padding:20,fontSize:13,fontFamily:"monospace"},children:l?"This agent is managed by the Team Lead":"Send a message to get started"}),(()=>{let e=ei(n.agentId),t=e.length<n.messages.length;return(0,r.jsxs)(r.Fragment,{children:[t&&(0,r.jsx)(Q,{onLoadMore:()=>es(n.agentId)}),e.map(e=>(0,r.jsx)(U,{msg:e,agentName:n.name,onPreview:ep,isTeamLead:n.isTeamLead,isTeamMember:l,teamPhase:n.isTeamLead?no(n.agentId):null},e.id))]})})(),n.pendingApproval&&(0,r.jsxs)("div",{style:{marginBottom:8,padding:12,backgroundColor:x.nY,border:"1px solid ".concat(x.O2)},children:[(0,r.jsxs)("div",{style:{fontSize:12,fontWeight:"bold",color:x.O2,marginBottom:6,fontFamily:"monospace"},children:["▲ ",n.pendingApproval.title]}),(0,r.jsx)("div",{style:{fontSize:13,color:x.lR,marginBottom:10,lineHeight:1.5},children:n.pendingApproval.summary}),(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("button",{onClick:()=>ns(n.pendingApproval.approvalId,"yes"),style:{flex:1,padding:"8px",border:"1px solid ".concat(x.$C),backgroundColor:x.gc,color:x.$C,cursor:"pointer",fontWeight:"bold",fontSize:12,fontFamily:"monospace"},children:"▶ Approve"}),(0,r.jsx)("button",{onClick:()=>ns(n.pendingApproval.approvalId,"no"),style:{flex:1,padding:"8px",border:"1px solid ".concat(x.v_),backgroundColor:x.gc,color:x.v_,cursor:"pointer",fontWeight:"bold",fontSize:12,fontFamily:"monospace"},children:"✕ Reject"})]})]}),(0,r.jsx)("div",{ref:eB})]}),!ny&&j.length>0&&(0,r.jsxs)("div",{"data-scrollbar":!0,style:{padding:"6px 10px",borderTop:"1px solid #152515",backgroundColor:x.lr,maxHeight:80,overflowY:"auto"},children:[(0,r.jsx)("div",{style:{fontSize:10,color:"#a855f7",fontFamily:"monospace",marginBottom:4,letterSpacing:"0.05em"},children:"SUGGESTIONS"}),j.slice(-5).map((e,t)=>(0,r.jsxs)("div",{style:{fontSize:11,color:"#c084fc",marginBottom:2,lineHeight:1.3},children:[(0,r.jsxs)("span",{style:{color:"#7c3aed",fontWeight:600},children:[e.author,":"]})," ",e.text]},t))]}),(()=>{let e=n.isTeamLead?no(n.agentId):null;return ny?(0,r.jsx)("div",{style:{padding:"8px 10px",borderTop:"1px solid #152515",backgroundColor:"#182844",flexShrink:0,fontSize:12,color:"#7ab8f5",fontFamily:"monospace",textAlign:"center"},children:"Watching — read-only mode"}):nb?(0,r.jsx)("div",{style:{padding:"8px 10px",borderTop:"1px solid #152515",backgroundColor:x.nY,flexShrink:0},children:(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("input",{value:nx,onChange:e=>nk(e.target.value),onKeyDown:e=>(0,w.$$)(e)&&nE(),placeholder:"Share an idea...",maxLength:500,style:{flex:1,padding:"9px 12px",border:"1px solid #7c3aed40",backgroundColor:x.lr,color:"#c084fc",fontSize:14,outline:"none"}}),(0,r.jsx)("button",{onClick:nE,disabled:!nx.trim(),style:{padding:"9px 14px",border:"none",backgroundColor:nx.trim()?"#a855f7":x.gc,color:nx.trim()?"#fff":"#5a4838",fontSize:13,cursor:nx.trim()?"pointer":"default",fontWeight:700,fontFamily:"monospace"},children:"Suggest"})]})}):(0,r.jsx)("div",{style:{padding:"8px 10px",borderTop:"1px solid #152515",backgroundColor:x.nY,flexShrink:0},children:l?(0,r.jsx)("div",{style:{textAlign:"center",color:"#5a4838",fontSize:12,padding:"8px 0",fontFamily:"monospace"},children:"Tasks are assigned by the Team Lead"}):"execute"===e&&o?(0,r.jsx)("button",{onClick:async()=>{await ev("Cancel current work?")&&na()},style:{width:"100%",padding:"9px 16px",border:"1px solid ".concat(x.v_),backgroundColor:x.gc,color:x.v_,fontSize:13,cursor:"pointer",fontFamily:"monospace"},children:"✕ Cancel current work"}):"execute"!==e||o?"design"!==e||o?"complete"!==e||o?o?(0,r.jsx)("button",{onClick:async()=>{await ev("Cancel current work?")&&na()},style:{width:"100%",padding:"9px 16px",border:"1px solid ".concat(x.v_),backgroundColor:x.gc,color:x.v_,fontSize:13,cursor:"pointer",fontFamily:"monospace"},children:"✕ Cancel current work"}):(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("input",{value:eW,onPaste:t4,onChange:e=>eF(e.target.value),onKeyDown:e=>(0,w.$$)(e)&&nr(),placeholder:"Send a message...",style:{flex:1,padding:"9px 12px",border:"1px solid ".concat(x.KD),backgroundColor:x.lr,color:"#eddcb8",fontSize:14,outline:"none"},autoFocus:!0}),(0,r.jsx)("button",{onClick:nr,disabled:!eW.trim()&&0===eY.length,style:{padding:"9px 14px",border:"none",backgroundColor:eW.trim()||eY.length>0?x.DM:x.gc,color:eW.trim()||eY.length>0?x.lr:x.Y0,fontSize:13,cursor:eW.trim()||eY.length>0?"pointer":"default",fontWeight:700,fontFamily:"monospace"},children:"Send"})]}):(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("input",{value:eW,onPaste:t4,onChange:e=>eF(e.target.value),onKeyDown:e=>(0,w.$$)(e)&&nr(),placeholder:"Request changes...",style:{flex:1,padding:"9px 12px",border:"1px solid ".concat(x.KD),backgroundColor:x.lr,color:"#eddcb8",fontSize:14,outline:"none"}}),(0,r.jsx)("button",{onClick:nr,disabled:!eW.trim()&&0===eY.length,style:{padding:"9px 14px",border:"none",backgroundColor:eW.trim()||eY.length>0?x.O2:x.nY,color:eW.trim()||eY.length>0?x.lr:x.Y0,fontSize:13,cursor:eW.trim()||eY.length>0?"pointer":"default",fontWeight:700,fontFamily:"monospace"},children:"Send"})]}),(0,r.jsx)("button",{onClick:async()=>{await ev("End this project and start a new one?")&&ni()},style:{width:"100%",padding:"9px 16px",border:"1px solid ".concat(x.O2),backgroundColor:x.gc,color:x.O2,fontSize:13,cursor:"pointer",fontWeight:700,fontFamily:"monospace"},children:"Close Project"})]}):(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,r.jsx)("button",{onClick:nl,style:{width:"100%",padding:"9px 16px",border:"1px solid ".concat(x.$C),backgroundColor:x.gc,color:x.$C,fontSize:13,cursor:"pointer",fontWeight:700,fontFamily:"monospace"},children:"▶ Approve Plan"}),(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("input",{value:eW,onPaste:t4,onChange:e=>eF(e.target.value),onKeyDown:e=>(0,w.$$)(e)&&nr(),placeholder:"Or give feedback...",style:{flex:1,padding:"9px 12px",border:"1px solid ".concat(x.KD),backgroundColor:x.lr,color:"#eddcb8",fontSize:14,outline:"none"}}),(0,r.jsx)("button",{onClick:nr,disabled:!eW.trim()&&0===eY.length,style:{padding:"9px 14px",border:"none",backgroundColor:eW.trim()||eY.length>0?x.DM:x.gc,color:eW.trim()||eY.length>0?x.lr:x.Y0,fontSize:13,cursor:eW.trim()||eY.length>0?"pointer":"default",fontWeight:700,fontFamily:"monospace"},children:"Send"})]})]}):(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,r.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,r.jsx)("input",{value:eW,onPaste:t4,onChange:e=>eF(e.target.value),onKeyDown:e=>(0,w.$$)(e)&&nr(),placeholder:"Send a message...",style:{flex:1,padding:"9px 12px",border:"1px solid ".concat(x.JH),backgroundColor:x.lr,color:x.oj,fontSize:14,outline:"none"}}),(0,r.jsx)("button",{onClick:nr,disabled:!eW.trim()&&0===eY.length,style:{padding:"9px 14px",border:"none",backgroundColor:eW.trim()||eY.length>0?x.O2:x.nY,color:eW.trim()||eY.length>0?x.lr:x.Y0,fontSize:13,cursor:eW.trim()||eY.length>0?"pointer":"default",fontWeight:700,fontFamily:"monospace"},children:"Send"})]}),(0,r.jsx)("button",{onClick:async()=>{await ev("End this project and start a new one?")&&ni()},style:{width:"100%",padding:"9px 16px",border:"1px solid ".concat(x.O2),backgroundColor:x.gc,color:x.O2,fontSize:13,cursor:"pointer",fontWeight:700,fontFamily:"monospace"},children:"Close Project"})]})})})()]})})(),nm&&eP&&(0,r.jsxs)("div",{style:{position:"absolute",inset:0,zIndex:30,backgroundColor:x.lr,display:"flex",flexDirection:"column"},children:[(0,r.jsxs)("div",{onClick:()=>eO(!1),style:{padding:"12px 14px",borderBottom:"1px solid #152515",display:"flex",alignItems:"center",gap:10,flexShrink:0,backgroundColor:x.gc,cursor:"pointer"},children:[(0,r.jsx)("span",{style:{fontSize:15,color:x.Y0,marginRight:4},children:"←"}),(0,r.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"#eddcb8"},children:"Team Chat"}),(0,r.jsxs)("span",{style:{fontSize:11,color:x.Y0,fontFamily:"monospace"},children:[b.length," messages"]})]}),(0,r.jsx)(B,{messages:b,agents:f,assetsReady:tp})]}),eE&&(0,r.jsx)(V,{agentDefs:C,onHire:tX,onCreate:()=>{ew(!1),ej(null),eI(!0)},onEdit:e=>{ew(!1),ej(e),eI(!0)},onDelete:tq,onClose:()=>ew(!1),assetsReady:tp,detectedBackends:en}),eT&&(0,r.jsx)(X,{agentDefs:C,onCreateTeam:tJ,onClose:()=>eC(!1),assetsReady:tp,detectedBackends:en}),eA&&(0,r.jsx)(K,{onSave:t$,onClose:()=>{eI(!1),ej(null)},assetsReady:tp,editAgent:eD,sendCommand:i.S8}),ti.current&&(0,r.jsx)(P,{isOpen:eK,onClose:()=>eV(!1),layout:ti.current.layout,onImportLayout:tL,onImportRoomZip:tF,soundEnabled:tr,onSoundEnabledChange:ta}),(0,r.jsx)(_,{isOpen:e$,onClose:()=>eq(!1),onSelect:(e,t)=>{tg(!1),tF(e,t);try{let e=localStorage.getItem("office-selected-id");e&&e1(e)}catch(e){}setTimeout(()=>tg(!0),800)},currentOfficeId:e0}),(0,r.jsx)(L,{isOpen:eX,onClose:()=>eJ(!1),onPreview:(e,t)=>{let n=(0,w.vG)(e);n&&ep(n),t&&Object.keys(t).length>0&&(em(t),eh(!0))}}),eu&&(0,r.jsx)(Y,{url:eu,savedRatings:eg,submitted:ef,onRate:e=>{em(e),eh(!0),(0,i.S8)({type:"RATE_PROJECT",ratings:e})},onClose:()=>ep(null)}),ex&&(0,r.jsx)(H,{}),eb&&(0,r.jsx)(N,{previewUrl:eb.previewUrl,previewPath:eb.previewPath,previewCmd:eb.previewCmd,previewPort:eb.previewPort,projectDir:eb.projectDir,entryFile:eb.entryFile,onPreview:e=>{ep(e),ey(null),ek(!1)},onDismiss:()=>{ey(null),ek(!1)}}),nv&&(0,r.jsx)("div",{style:{position:"fixed",inset:0,zIndex:100,backgroundColor:"rgba(0,0,0,0.6)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>nS(null),children:(0,r.jsxs)("div",{style:{backgroundColor:x.gc,border:"1px solid ".concat(x.KD),padding:24,maxWidth:420,width:"90%"},onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("div",{style:{fontSize:15,fontWeight:700,color:"#eddcb8",marginBottom:12},children:"Share Link Created"}),(0,r.jsx)("div",{style:{fontSize:12,color:x.Y0,marginBottom:8},children:"Link copied to clipboard!"}),(0,r.jsx)("input",{readOnly:!0,value:nv,style:{width:"100%",padding:"8px 10px",border:"1px solid ".concat(x.KD),backgroundColor:x.lr,color:"#eddcb8",fontSize:12,fontFamily:"monospace",outline:"none"},onFocus:e=>e.target.select()}),(0,r.jsx)("button",{onClick:()=>nS(null),style:{marginTop:12,padding:"8px 20px",border:"none",backgroundColor:x.DM,color:x.lr,fontSize:13,cursor:"pointer",fontWeight:700,fontFamily:"monospace"},children:"OK"})]})}),eS,(0,r.jsx)(q,{open:eZ,onClose:()=>eQ(!1),currentTheme:tm,onThemeChange:e=>tf(e),onOpenSettings:()=>eV(!0),onOpenHistory:()=>eJ(!0),onHire:()=>ew(!0)}),e9&&!e4&&(0,r.jsx)("button",{onClick:()=>{e5(!0),function(e){let t=l.hK,n=e=>t.getState().handleEvent(e),r=[],a=(e,t)=>r.push(setTimeout(t,e)),o="demo-leader",i="demo-dev",s="demo-reviewer",c="demo-team",d=Date.now(),u=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"status",a=arguments.length>3?arguments[3]:void 0;return n({type:"TEAM_CHAT",fromAgentId:e,toAgentId:a,message:t,messageType:r,timestamp:d++})},p=(e,t)=>n({type:"LOG_APPEND",agentId:e,taskId:"demo-task",stream:"stdout",chunk:t});n({type:"AGENT_CREATED",agentId:o,name:"Ash (Leader)",role:"Team Leader",teamId:c,isTeamLead:!0,palette:0,isExternal:!1}),n({type:"AGENT_CREATED",agentId:i,name:"Leo",role:"Developer",teamId:c,palette:1,isExternal:!1}),n({type:"AGENT_CREATED",agentId:s,name:"Mae",role:"Code Reviewer",teamId:c,palette:2,isExternal:!1}),a(500,()=>{n({type:"AGENT_STATUS",agentId:o,status:"working"}),n({type:"AGENT_STATUS",agentId:i,status:"working"}),n({type:"AGENT_STATUS",agentId:s,status:"working"})}),a(2e3,()=>u(o,"Alright team! Let's build a space shooter game with PixiJS.")),a(5e3,()=>u(o,"Build the complete game — player controls, enemies, scoring, and sound effects.","delegation",i)),a(8e3,()=>u(o,"Stand by to review Leo's code when he's done.","delegation",s)),a(11e3,()=>p(i,"Setting up project structure")),a(14e3,()=>p(i,"Building player ship and controls")),a(17e3,()=>p(i,"Adding enemy waves and collision")),a(2e4,()=>p(i,"Implementing score system and UI")),a(23e3,()=>{p(i,"Build passed. All files verified."),u(i,"Space shooter complete — 5 enemy types, power-ups, and high score system.","result")}),a(26e3,()=>p(s,"Checking file structure")),a(29e3,()=>p(s,"Reading game logic and collision detection")),a(32e3,()=>u(s,"VERDICT: PASS — Clean code, smooth gameplay loop, all features working.","result")),a(35e3,()=>u(o,"Great work everyone! The space shooter is ready to ship.","result")),a(39e3,()=>{n({type:"AGENT_FIRED",agentId:o}),n({type:"AGENT_FIRED",agentId:i}),n({type:"AGENT_FIRED",agentId:s}),t.setState({teamMessages:[]}),e()})}(()=>e5(!1))},style:{position:"fixed",bottom:16,left:16,zIndex:50,background:"".concat(x.DM,"26"),border:"1px solid ".concat(x.DM,"66"),color:x.DM,padding:"6px 14px",cursor:"pointer",fontSize:11,fontFamily:"monospace",fontWeight:600},children:"Run Demo"})]})}},786:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a,h:()=>r});let r="0.1.77",a="2026-03-24T21:51:27.647Z"},1204:(e,t,n)=>{"use strict";n.d(t,{FH:()=>i,Ii:()=>g,PT:()=>c,WC:()=>u,iH:()=>f,iZ:()=>d,qZ:()=>s,si:()=>p,vk:()=>m});var r=n(5195),a=n(2243),o=n(9892),l=n(9631);function i(e,t,n,o,l){let i=n*e.cols+t;if(i<0||i>=e.tiles.length)return e;let s=e.tileColors||Array(e.tiles.length).fill(null),c=null!=l?l:o===r.nb.WALL||o===r.nb.VOID?null:{...a.ql};if(e.tiles[i]===o){let t=s[i];if(null===c&&null===t||c&&t&&c.h===t.h&&c.s===t.s&&c.b===t.b&&c.c===t.c&&!!c.colorize==!!t.colorize)return e}let d=[...e.tiles];d[i]=o;let u=[...s];return u[i]=c,{...e,tiles:d,tileColors:u}}function s(e,t){return g(e,t.type,t.col,t.row)?{...e,furniture:[...e.furniture,t]}:e}function c(e,t){let n=e.furniture.filter(e=>e.uid!==t);return n.length===e.furniture.length?e:{...e,furniture:n}}function d(e,t,n,r){let a=e.furniture.find(e=>e.uid===t);return a&&g(e,a.type,n,r,t)?{...e,furniture:e.furniture.map(e=>e.uid===t?{...e,col:n,row:r}:e)}:e}function u(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"cw",r=e.furniture.find(e=>e.uid===t);if(!r)return e;let a=(0,o.UV)(r.type,n);return a?{...e,furniture:e.furniture.map(e=>e.uid===t?{...e,type:a}:e)}:e}function p(e,t){let n=(0,o.Um)(e);return(null==n?void 0:n.canPlaceOnWalls)?t-(n.footprintH-1):t}function g(e,t,n,a,i){let s=(0,o.Um)(t);if(!s)return!1;if(s.canPlaceOnWalls){let t=a+s.footprintH-1;if(n<0||n+s.footprintW>e.cols||t<0||t>=e.rows)return!1}else if(n<0||a<0||n+s.footprintW>e.cols||a+s.footprintH>e.rows)return!1;let c=s.backgroundTiles||0;for(let t=0;t<s.footprintH;t++)if(!(t<c)&&!(a+t<0)&&(!s.canPlaceOnWalls||!(t<s.footprintH-1)))for(let o=0;o<s.footprintW;o++){let l=(a+t)*e.cols+(n+o),i=e.tiles[l];if(s.canPlaceOnWalls){if(i!==r.nb.WALL)return!1}else if(i===r.nb.VOID||i===r.nb.WALL)return!1}let d=(0,l.Pg)(e.furniture,i),u=null;if(s.canPlaceOnSurfaces)for(let t of(u=new Set,e.furniture)){if(t.uid===i)continue;let e=(0,o.Um)(t.type);if(e&&e.isDesk)for(let n=0;n<e.footprintH;n++)for(let r=0;r<e.footprintW;r++)u.add("".concat(t.col+r,",").concat(t.row+n))}let p=s.backgroundTiles||0;for(let e=0;e<s.footprintH;e++)if(!(e<p)&&!(a+e<0))for(let t=0;t<s.footprintW;t++){let r="".concat(n+t,",").concat(a+e);if(d.has(r)&&!(null==u?void 0:u.has(r)))return!1}return!0}function m(e,t){let{cols:n,rows:a,tiles:o,furniture:l,tileColors:i}=e,s=i||Array(o.length).fill(null),c=n,d=a,u=0,p=0;if("right"===t?c=n+1:"left"===t?(c=n+1,u=1):"down"===t?d=a+1:"up"===t&&(d=a+1,p=1),c>r.Tj||d>r.pX)return null;let g=Array(c*d).fill(r.nb.VOID),m=Array(c*d).fill(null);for(let e=0;e<a;e++)for(let t=0;t<n;t++){let r=e*n+t,a=(e+p)*c+(t+u);g[a]=o[r],m[a]=s[r]}let f=l.map(e=>({...e,col:e.col+u,row:e.row+p}));return{layout:{...e,cols:c,rows:d,tiles:g,tileColors:m,furniture:f},shift:{col:u,row:p}}}function f(e,t,n){for(let r of e.furniture){let e=(0,o.Um)(r.type);if(e){for(let a=0;a<e.footprintH;a++)for(let o=0;o<e.footprintW;o++)if(r.col+o===t&&r.row+a===n)return r}}return null}},1310:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(206),a=n(1406),o=n(8568),l=n(9385);let i=o.bL;o.l9;let s=o.ZL;o.bm;let c=a.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)(o.hJ,{ref:t,className:(0,l.cn)("fixed inset-0 z-[10000] bg-black/65","data-[state=open]:animate-in data-[state=open]:fade-in-0","data-[state=closed]:animate-out data-[state=closed]:fade-out-0",n),...a})});c.displayName=o.hJ.displayName;let d=a.forwardRef((e,t)=>{let{className:n,children:a,maxWidth:i,zIndex:d,style:u,...p}=e,g=null!=d?d:1e4;return(0,r.jsxs)(s,{children:[(0,r.jsx)(c,{style:{zIndex:g}}),(0,r.jsx)(o.UC,{ref:t,className:(0,l.cn)("fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2","w-[90%] max-w-[520px] max-h-[90vh]","bg-term-panel border border-[rgba(212,168,96,0.18)]","flex flex-col overflow-hidden","font-mono text-term text-foreground","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-[0.97] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-[0.97]",n),style:{zIndex:g+1,...i?{maxWidth:i}:{},...u,boxShadow:"inset 0 1px 0 rgba(212,168,96,0.06), 0 0 20px rgba(212,168,96,0.05), 0 0 40px rgba(212,168,96,0.02), 0 8px 32px rgba(0,0,0,0.55), 0 20px 60px rgba(0,0,0,0.4)"},...p,children:a})]})});d.displayName=o.UC.displayName;let u=e=>{let{className:t,...n}=e;return(0,r.jsx)("div",{className:(0,l.cn)("px-4 py-3 flex items-center justify-between shrink-0","font-mono text-term text-term-text-bright","shadow-[0_3px_6px_-2px_rgba(0,0,0,0.4),inset_0_-1px_0_var(--separator-groove-dark),var(--highlight-top)]",t),...n})};u.displayName="DialogHeader";let p=e=>{let{className:t,...n}=e;return(0,r.jsx)("div",{className:(0,l.cn)("p-4 overflow-y-auto flex-1 min-h-0","font-mono text-term text-foreground leading-[1.7]",t),...n})};p.displayName="DialogBody";let g=e=>{let{className:t,...n}=e;return(0,r.jsx)("div",{className:(0,l.cn)("px-4 py-3 flex items-center justify-center gap-2 shrink-0","shadow-[0_-3px_6px_-2px_rgba(0,0,0,0.35),inset_0_1px_0_var(--separator-groove-light)]",t),...n})};g.displayName="DialogFooter";let m=a.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)(o.hE,{ref:t,className:(0,l.cn)("font-mono text-term text-term-text-bright",n),...a})});m.displayName=o.hE.displayName;let f=a.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,r.jsx)(o.VY,{ref:t,className:(0,l.cn)("text-term text-muted-foreground",n),...a})});function h(e){let{open:t,onClose:n,maxWidth:o,zIndex:s,title:c,children:h,footer:b,className:y}=e,x=(0,a.useCallback)(e=>{e||n()},[n]);return(0,r.jsx)(i,{open:t,onOpenChange:x,children:(0,r.jsxs)(d,{maxWidth:o,className:(0,l.cn)(y),zIndex:null!=s?s:void 0,children:[c&&(0,r.jsxs)(u,{children:[(0,r.jsx)(m,{children:c}),(0,r.jsx)("button",{className:"px-2 py-0.5 border border-border bg-transparent text-muted-foreground font-mono text-term cursor-pointer leading-none transition-colors duration-fast hover:text-foreground hover:border-term-text-bright",onClick:n,"aria-label":"Close",children:"\xd7"})]}),(0,r.jsx)(f,{className:"sr-only",children:c?"".concat(c," dialog"):"Dialog"}),(0,r.jsx)(p,{children:h}),b&&(0,r.jsx)(g,{children:b})]})})}f.displayName=o.VY.displayName},1661:(e,t,n)=>{"use strict";n.d(t,{LN:()=>a,Zg:()=>o,fu:()=>s});let r=new Map;function a(e,t,n){let a=r.get(e);if(a)return a;let o=n.colorize?function(e,t){let{h:n,s:r,b:a,c:o}=t,i=[];for(let t of e){let e=[];for(let i of t){if(""===i){e.push("");continue}let t=parseInt(i.slice(1,3),16),s=(.299*t+.587*parseInt(i.slice(3,5),16)+.114*parseInt(i.slice(5,7),16))/255;0!==o&&(s=.5+(100+o)/100*(s-.5)),0!==a&&(s+=a/200);let c=l(n,r/100,s=Math.max(0,Math.min(1,s)));e.push(c)}i.push(e)}return i}(t,n):s(t,n);return r.set(e,o),o}function o(){r.clear()}function l(e,t,n){let r=(1-Math.abs(2*n-1))*t,a=e/60,o=r*(1-Math.abs(a%2-1)),l=0,s=0,c=0;a<1?(l=r,s=o,c=0):a<2?(l=o,s=r,c=0):a<3?(l=0,s=r,c=o):a<4?(l=0,s=o,c=r):a<5?(l=o,s=0,c=r):(l=r,s=0,c=o);let d=n-r/2,u=Math.round((l+d)*255),p=Math.round((s+d)*255),g=Math.round((c+d)*255);return"#".concat(i(u).toString(16).padStart(2,"0")).concat(i(p).toString(16).padStart(2,"0")).concat(i(g).toString(16).padStart(2,"0")).toUpperCase()}function i(e){return Math.max(0,Math.min(255,e))}function s(e,t){let{h:n,s:r,b:a,c:o}=t,i=[];for(let t of e){let e=[];for(let i of t){if(""===i){e.push("");continue}let t=parseInt(i.slice(1,3),16),[s,c,d]=function(e,t,n){let r=e/255,a=t/255,o=n/255,l=Math.max(r,a,o),i=Math.min(r,a,o),s=(l+i)/2;if(l===i)return[0,0,s];let c=l-i;return[l===r?((a-o)/c+6*(a<o))*60:l===a?((o-r)/c+2)*60:((r-a)/c+4)*60,s>.5?c/(2-l-i):c/(l+i),s]}(t,parseInt(i.slice(3,5),16),parseInt(i.slice(5,7),16)),u=((s+n)%360+360)%360,p=Math.max(0,Math.min(1,c+r/100)),g=d;0!==o&&(g=.5+(100+o)/100*(g-.5)),0!==a&&(g+=a/200);let m=l(u,p,g=Math.max(0,Math.min(1,g)));e.push(m)}i.push(e)}return i}},2243:(e,t,n)=>{"use strict";n.d(t,{$L:()=>G,AL:()=>K,BD:()=>en,BZ:()=>b,DH:()=>ea,F2:()=>M,Ii:()=>ee,Jk:()=>ec,M1:()=>y,M_:()=>es,Mo:()=>J,Nd:()=>T,Ns:()=>eb,O1:()=>R,O9:()=>el,Ot:()=>f,PA:()=>B,Pk:()=>ev,R_:()=>Y,Rb:()=>g,S3:()=>d,SS:()=>N,Sg:()=>j,TE:()=>Z,Tj:()=>l,W3:()=>x,W7:()=>L,WJ:()=>I,WK:()=>ei,Wn:()=>A,Ww:()=>h,XE:()=>s,Xo:()=>ef,YK:()=>o,YX:()=>F,ZV:()=>eo,Zz:()=>et,dn:()=>r,e7:()=>ek,eR:()=>er,fJ:()=>V,fS:()=>eS,gB:()=>S,gD:()=>q,gi:()=>C,hI:()=>E,he:()=>m,i:()=>X,iE:()=>D,ic:()=>ep,k2:()=>ex,k8:()=>p,l0:()=>W,lO:()=>eu,lY:()=>c,n6:()=>_,nW:()=>ed,o3:()=>ey,oj:()=>Q,ou:()=>eh,p7:()=>em,pX:()=>i,pr:()=>$,q3:()=>z,qD:()=>O,ql:()=>eE,qt:()=>eg,v3:()=>U,vU:()=>v,wN:()=>k,wh:()=>a,wj:()=>u,y9:()=>P,zY:()=>H,zw:()=>w});let r=16,a=21,o=21,l=64,i=64,s=48,c=.15,d=.3,u=2,p=20,g=3,m=6,f=120,h=240,b=.3,y=6,x=16,k=24,v=30,S=180,E=.3,w="#ccffcc",T=.6,C=.5,A=.33,I=.66,D=6,j=.5,M=.001,R=1,P=.5,O=.5,L=.25,_=[4,3],W=6,F=3,Y=.45,N=1.5,H=.5,U=.5,B=10,G=28,z="#808080",K="rgba(255,255,255,0.12)",V="rgba(255,255,255,0.08)",X=[2,2],J="rgba(60, 130, 220, 0.25)",$="rgba(60, 130, 220, 0.5)",q="rgba(255, 255, 255, 0.06)",Z="#00ff00",Q="#ff0000",ee="#007fd4",et="rgba(200, 50, 50, 0.85)",en="rgba(50, 120, 200, 0.85)",er=!1,ea=.25,eo=10,el=.1,ei=2,es=.3,ec=8,ed=.5,eu=30,ep=6,eg=45,em=271,ef=3,eh=2,eb=8,ey=24,ex=50,ek=500,ev={h:35,s:30,b:15,c:0},eS={h:240,s:25,b:0,c:0},eE={h:0,s:0,b:0,c:0}},2988:(e,t,n)=>{"use strict";n.d(t,{$D:()=>g,Cr:()=>J,Ih:()=>$,L$:()=>s,SJ:()=>c,US:()=>o,VQ:()=>f,WN:()=>l,Zc:()=>p,bn:()=>K,iK:()=>i,j9:()=>m,mY:()=>u,mr:()=>d});var r=n(5195),a=n(1661);let o=(()=>{let e="#8B6914",t="#A07828",n="#B8922E",r="#6B4E0A",a=[];a.push(Array(32).fill("")),a.push(["",...Array(30).fill(e),""]);for(let r=0;r<4;r++)a.push(["",e,...Array(28).fill(r<1?t:n),e,""]);a.push(["",r,...Array(28).fill(e),r,""]);for(let t=0;t<6;t++)a.push(["",e,...Array(28).fill(n),e,""]);a.push(["",e,...Array(28).fill(t),e,""]);for(let t=0;t<6;t++)a.push(["",e,...Array(28).fill(n),e,""]);a.push(["",r,...Array(28).fill(e),r,""]);for(let r=0;r<4;r++)a.push(["",e,...Array(28).fill(r>2?t:n),e,""]);a.push(["",...Array(30).fill(e),""]);for(let e=0;e<4;e++){let e=Array(32).fill("");e[1]=r,e[2]=r,e[29]=r,e[30]=r,a.push(e)}return a.push(Array(32).fill("")),a.push(Array(32).fill("")),a})(),l=(()=>{let e="#3D8B37",t="#2D6B27",n="#6B4E0A",r="#B85C3A",a="#8B4422";return[["","","","","","",e,e,"","","","","","","",""],["","","","","",e,e,e,e,"","","","","","",""],["","","","",e,e,t,e,e,e,"","","","","",""],["","","",e,e,t,e,e,t,e,e,"","","","",""],["","",e,e,e,e,e,e,e,e,e,e,"","","",""],["",e,e,t,e,e,e,e,e,e,t,e,e,"","",""],["",e,e,e,e,t,e,e,t,e,e,e,e,"","",""],["","",e,e,e,e,e,e,e,e,e,e,"","","",""],["","","",e,e,e,t,e,e,e,e,"","","","",""],["","","","",e,e,e,e,e,e,"","","","","",""],["","","","","",e,e,e,e,"","","","","","",""],["","","","","","",n,n,"","","","","","","",""],["","","","","","",n,n,"","","","","","","",""],["","","","","","",n,n,"","","","","","","",""],["","","","","",a,a,a,a,a,"","","","","",""],["","","","",a,r,r,r,r,r,a,"","","","",""],["","","","",a,r,r,r,r,r,a,"","","","",""],["","","","",a,r,r,r,r,r,a,"","","","",""],["","","","",a,r,r,r,r,r,a,"","","","",""],["","","","",a,r,r,r,r,r,a,"","","","",""],["","","","",a,r,r,r,r,r,a,"","","","",""],["","","","","",a,r,r,r,a,"","","","","",""],["","","","","","",a,a,a,"","","","","","",""],["","","","","","","","","","","","","","","",""]]})(),i=(()=>{let e="#8B6914",t="#6B4E0A",n="#CC4444",r="#4477AA",a="#44AA66",o="#CCAA33",l="#9955AA";return[["",e,e,e,e,e,e,e,e,e,e,e,e,e,e,""],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,n,n,r,r,a,a,o,o,n,n,r,r,t,e],[e,t,n,n,r,r,a,a,o,o,n,n,r,r,t,e],[e,t,n,n,r,r,a,a,o,o,n,n,r,r,t,e],[e,t,n,n,r,r,a,a,o,o,n,n,r,r,t,e],[e,t,n,n,r,r,a,a,o,o,n,n,r,r,t,e],[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,l,l,o,o,r,r,a,a,l,l,n,n,t,e],[e,t,l,l,o,o,r,r,a,a,l,l,n,n,t,e],[e,t,l,l,o,o,r,r,a,a,l,l,n,n,t,e],[e,t,l,l,o,o,r,r,a,a,l,l,n,n,t,e],[e,t,l,l,o,o,r,r,a,a,l,l,n,n,t,e],[e,t,l,l,o,o,r,r,a,a,l,l,n,n,t,e],[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,a,a,n,n,l,l,r,r,o,o,a,a,t,e],[e,t,a,a,n,n,l,l,r,r,o,o,a,a,t,e],[e,t,a,a,n,n,l,l,r,r,o,o,a,a,t,e],[e,t,a,a,n,n,l,l,r,r,o,o,a,a,t,e],[e,t,a,a,n,n,l,l,r,r,o,o,a,a,t,e],[e,t,a,a,n,n,l,l,r,r,o,o,a,a,t,e],[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e],[e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e],["",e,e,e,e,e,e,e,e,e,e,e,e,e,e,""]]})(),s=(()=>{let e="#CCDDEE",t="#88BBDD",n="#999999",r="#666666";return[["","","","","","","","","","","","","","","",""],["","","","","",n,n,n,n,n,n,"","","","",""],["","","","",n,t,t,t,t,t,t,n,"","","",""],["","","","",n,t,t,t,t,t,t,n,"","","",""],["","","","",n,t,t,t,t,t,t,n,"","","",""],["","","","",n,t,t,t,t,t,t,n,"","","",""],["","","","",n,t,t,t,t,t,t,n,"","","",""],["","","","","",n,n,n,n,n,n,"","","","",""],["","","","","",n,e,e,e,e,n,"","","","",""],["","","","","",n,e,e,e,e,n,"","","","",""],["","","","","",n,e,e,e,e,n,"","","","",""],["","","","","",n,e,e,e,e,n,"","","","",""],["","","","","",n,e,e,e,e,n,"","","","",""],["","","","",n,n,e,e,e,e,n,n,"","","",""],["","","","",n,e,e,e,e,e,e,n,"","","",""],["","","","",n,e,e,e,e,e,e,n,"","","",""],["","","","",n,n,n,n,n,n,n,n,"","","",""],["","","","","",n,r,r,r,r,n,"","","","",""],["","","","","",n,r,r,r,r,n,"","","","",""],["","","","","",n,r,r,r,r,n,"","","","",""],["","","","",n,n,r,r,r,r,n,n,"","","",""],["","","","",n,r,r,r,r,r,r,n,"","","",""],["","","","",n,n,n,n,n,n,n,n,"","","",""],["","","","","","","","","","","","","","","",""]]})(),c=(()=>{let e="#AAAAAA",t="#EEEEFF",n="#CC4444",r="#4477AA";return[["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],["",e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e,""],["",e,t,t,n,n,n,t,t,t,t,t,r,r,r,r,t,t,t,t,t,t,t,n,t,t,t,t,t,t,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,r,r,t,t,n,t,t,t,t,t,t,e,""],["",e,t,t,t,t,n,n,n,n,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,r,r,t,t,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,r,r,r,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,n,n,n,t,t,t,t,t,t,t,e,""],["",e,t,n,n,t,t,t,t,t,t,t,t,t,t,t,r,r,t,t,t,t,t,t,t,t,t,t,t,t,e,""],["",e,t,t,t,t,t,t,r,r,r,t,t,t,t,t,t,t,t,t,t,t,t,t,n,n,n,n,t,t,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e,""],["",e,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,e,""],["",e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,""],["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]]})(),d=(()=>{let e="#8B6914",t="#6B4E0A",n="#5C3D0A",r="#A07828";return[["","","","","",t,t,t,t,t,t,"","","","",""],["","","","",t,n,n,n,n,n,n,t,"","","",""],["","","","",t,n,r,r,r,r,n,t,"","","",""],["","","","",t,n,r,r,r,r,n,t,"","","",""],["","","","",t,n,r,r,r,r,n,t,"","","",""],["","","","",t,n,r,r,r,r,n,t,"","","",""],["","","","",t,n,r,r,r,r,n,t,"","","",""],["","","","",t,n,r,r,r,r,n,t,"","","",""],["","","","",t,n,r,r,r,r,n,t,"","","",""],["","","","",t,n,n,n,n,n,n,t,"","","",""],["","","","","",t,t,t,t,t,t,"","","","",""],["","","","","","",t,e,e,t,"","","","","",""],["","","","","","",t,e,e,t,"","","","","",""],["","","","","",t,t,t,t,t,t,"","","","",""],["","","","","",t,"","","","",t,"","","","",""],["","","","","",t,"","","","",t,"","","","",""]]})(),u=(()=>{let e="#555555",t="#3A3A5C",n="#6688CC",r="#444444";return[["","","",e,e,e,e,e,e,e,e,e,e,"","",""],["","","",e,t,t,t,t,t,t,t,t,e,"","",""],["","","",e,t,n,n,n,n,n,n,t,e,"","",""],["","","",e,t,n,n,n,n,n,n,t,e,"","",""],["","","",e,t,n,n,n,n,n,n,t,e,"","",""],["","","",e,t,n,n,n,n,n,n,t,e,"","",""],["","","",e,t,n,n,n,n,n,n,t,e,"","",""],["","","",e,t,n,n,n,n,n,n,t,e,"","",""],["","","",e,t,t,t,t,t,t,t,t,e,"","",""],["","","",e,e,e,e,e,e,e,e,e,e,"","",""],["","","","","","","",r,r,"","","","","","",""],["","","","","","","",r,r,"","","","","","",""],["","","","","","",r,r,r,r,"","","","","",""],["","","","","",r,r,r,r,r,r,"","","","",""],["","","","","",r,r,r,r,r,r,"","","","",""],["","","","","","","","","","","","","","","",""]]})(),p=(()=>{let e="#FFDD55",t="#FFEE88",n="#888888",r="#555555",a="#FFFFCC";return[["","","","","","","","","","","","","","","",""],["","","","","","",a,a,a,a,"","","","","",""],["","","","","",a,e,e,e,e,a,"","","","",""],["","","","",a,e,e,t,t,e,e,a,"","","",""],["","","","",e,e,t,t,t,t,e,e,"","","",""],["","","","",e,e,t,t,t,t,e,e,"","","",""],["","","","","",e,e,e,e,e,e,"","","","",""],["","","","","","",n,n,n,n,"","","","","",""],["","","","","","","",n,n,"","","","","","",""],["","","","","","","",n,n,"","","","","","",""],["","","","","","","",n,n,"","","","","","",""],["","","","","","","",n,n,"","","","","","",""],["","","","","","",n,n,n,n,"","","","","",""],["","","","","",r,r,r,r,r,r,"","","","",""],["","","","","",r,r,r,r,r,r,"","","","",""],["","","","","","","","","","","","","","","",""]]})(),g=(()=>{let e="#555566",t="#EEEEFF",n="#CCA700";return[["","","",e,e,e,e,e,"","",""],["","",e,t,t,t,t,t,e,"",""],["",e,t,t,t,t,t,t,t,e,""],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,n,t,n,t,n,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],["",e,t,t,t,t,t,t,t,e,""],["","",e,e,e,e,e,e,e,"",""],["","","","",e,e,e,"","","",""],["","","","","",e,"","","","",""],["","","","","","","","","","",""]]})(),m=(()=>{let e="#555566",t="#EEEEFF",n="#D4A017",r="#F5C842";return[["","","",e,e,e,e,e,"","",""],["","",e,t,t,t,r,t,e,"",""],["",e,t,t,t,r,r,t,t,e,""],[e,t,t,t,r,r,t,t,t,t,e],[e,t,t,r,r,r,r,r,t,t,e],[e,t,t,t,t,n,n,t,t,t,e],[e,t,t,t,n,n,t,t,t,t,e],[e,t,t,n,n,t,t,t,t,t,e],["",e,t,t,n,t,t,t,t,e,""],["","",e,e,e,e,e,e,e,"",""],["","","","",e,e,e,"","","",""],["","","","","",e,"","","","",""],["","","","","","","","","","",""]]})(),f=(()=>{let e="#555566",t="#EEEEFF",n="#44BB66";return[["","","",e,e,e,e,e,"","",""],["","",e,t,t,t,t,t,e,"",""],["",e,t,t,t,t,t,t,t,e,""],[e,t,t,t,t,t,t,t,n,t,e],[e,t,t,t,t,t,t,n,t,t,e],[e,t,t,n,t,t,n,t,t,t,e],[e,t,t,t,n,n,t,t,t,t,e],[e,t,t,t,t,t,t,t,t,t,e],["",e,t,t,t,t,t,t,t,e,""],["","",e,e,e,e,e,e,e,"",""],["","","","",e,e,e,"","","",""],["","","","","",e,"","","","",""],["","","","","","","","","","",""]]})(),h=[{skin:"#FFCC99",shirt:"#4488CC",pants:"#334466",hair:"#553322",shoes:"#222222"},{skin:"#FFCC99",shirt:"#CC4444",pants:"#333333",hair:"#FFD700",shoes:"#222222"},{skin:"#DEB887",shirt:"#44AA66",pants:"#334444",hair:"#222222",shoes:"#333333"},{skin:"#FFCC99",shirt:"#AA55CC",pants:"#443355",hair:"#AA4422",shoes:"#222222"},{skin:"#DEB887",shirt:"#CCAA33",pants:"#444433",hair:"#553322",shoes:"#333333"},{skin:"#FFCC99",shirt:"#FF8844",pants:"#443322",hair:"#111111",shoes:"#222222"}],b="hair",y="skin",x="shirt",k="pants",v="shoes",S="#FFFFFF";function E(e,t){return e.map(e=>e.map(e=>""===e?"":e===S?S:e===b?t.hair:e===y?t.skin:e===x?t.shirt:e===k?t.pants:e===v?t.shoes:e))}let w=[["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,S,y,y,S,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,"","","","",k,k,"","","",""],["","","","",k,k,"","","","",k,k,"","","",""],["","","","",v,v,"","","","","",v,v,"","",""],["","","","",v,v,"","","","","",v,v,"","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],T=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,S,y,y,S,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],C=[["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,S,y,y,S,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","",v,v,"","","","","","",k,k,"","",""],["","","",v,v,"","","","","","",k,k,"","",""],["","","","","","","","","","",v,v,"","","",""],["","","","","","","","","","",v,v,"","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],A=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,S,y,y,S,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","",y,y,x,x,x,x,x,x,y,y,"","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],I=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,S,y,y,S,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,y,"","",""],["","","","",y,x,x,x,x,x,x,"",y,"","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],D=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,S,y,y,S,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],j=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,S,y,y,S,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],M=[["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","",k,k,"","","","",k,k,"","","",""],["","","","",k,k,"","","","",k,k,"","","",""],["","","",v,v,"","","","","","",v,v,"","",""],["","","",v,v,"","","","","","",v,v,"","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],R=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],P=[["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","",v,v,"","","","","","",k,k,"","",""],["","","",v,v,"","","","","","",k,k,"","",""],["","","","","","","","","","",v,v,"","","",""],["","","","","","","","","","",v,v,"","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],O=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","",y,y,x,x,x,x,x,x,y,y,"","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],L=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,y,"","",""],["","","","",y,x,x,x,x,x,x,"",y,"","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],_=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],W=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","",b,b,b,b,"","","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",b,b,b,b,b,b,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","",y,y,y,y,y,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",x,x,x,x,x,x,x,x,"","","",""],["","","","",y,x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,k,k,k,k,"","","","",""],["","","","","",k,k,"","",k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],F=[["","","","","","","","","","","","","","","",""],["","","","","","","",b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,S,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","","","",x,x,x,"","","","","",""],["","","","","","",x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","",y,x,x,x,x,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","","","",k,k,"","","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","",k,k,"","","",k,k,"","","",""],["","","","","",k,k,"","","",k,k,"","","",""],["","","","","",v,v,"","","","",v,v,"","",""],["","","","","",v,v,"","","","",v,v,"","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],Y=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","",b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,S,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","","","",x,x,x,"","","","","",""],["","","","","","",x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","",y,x,x,x,x,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","","","",k,k,"","","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,"",k,k,"","","","",""],["","","","","","",k,k,"",k,k,"","","","",""],["","","","","","",k,k,"",k,k,"","","","",""],["","","","","","",v,v,"",v,v,"","","","",""],["","","","","","",v,v,"",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],N=[["","","","","","","","","","","","","","","",""],["","","","","","","",b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,S,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","","","",x,x,x,"","","","","",""],["","","","","","",x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","",y,x,x,x,x,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","","","",k,k,"","","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","","","",k,k,k,"","","","",""],["","","","","","","","",k,k,k,"","","","",""],["","","","","",v,v,"","",v,v,"","","","",""],["","","","","",v,v,"","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],H=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","",b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,S,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","","","",x,x,x,"","","","","",""],["","","","","","",x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,y,"","","",""],["","","","","",x,x,x,x,x,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","","","",k,k,"","","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,"",k,k,"","","","",""],["","","","","","",v,v,"",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],U=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","",b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,S,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","","","",x,x,x,"","","","","",""],["","","","","","",x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"",y,"","",""],["","","","","",x,x,x,x,x,"","",y,"","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","","","",k,k,"","","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,"",k,k,"","","","",""],["","","","","","",v,v,"",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],B=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","",b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,S,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","","","",x,x,x,"","","","","",""],["","","","","","",x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","",y,x,x,x,x,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","","","",k,k,"","","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,"",k,k,"","","","",""],["","","","","","",v,v,"",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],G=[["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","",b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",b,b,b,b,b,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,S,y,"","","","",""],["","","","","","",y,y,y,y,y,"","","","",""],["","","","","","",y,y,y,y,"","","","","",""],["","","","","","","",x,x,x,"","","","","",""],["","","","","","",x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","",x,x,x,x,x,x,"","","","",""],["","","","","",y,x,x,x,x,y,"","","","",""],["","","","","","",x,x,x,x,"","","","","",""],["","","","","","","",k,k,"","","","","","",""],["","","","","","",k,k,k,k,"","","","","",""],["","","","","","",k,k,"",k,k,"","","","",""],["","","","","","",v,v,"",v,v,"","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""],["","","","","","","","","","","","","","","",""]],z=null;function K(e){z=e,X.clear()}function V(e){return e.map(e=>[...e].reverse())}let X=new Map;function J(e){return z?z[e%z.length].down[1]:null}function $(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o="".concat(e,":").concat(n),l=X.get(o);if(l)return l;if(z){let n=z[e%z.length],a=n.down,o=n.up,l=n.right;t={walk:{[r.OP.DOWN]:[a[0],a[1],a[2],a[1]],[r.OP.UP]:[o[0],o[1],o[2],o[1]],[r.OP.RIGHT]:[l[0],l[1],l[2],l[1]],[r.OP.LEFT]:[V(l[0]),V(l[1]),V(l[2]),V(l[1])]},typing:{[r.OP.DOWN]:[a[3],a[4]],[r.OP.UP]:[o[3],o[4]],[r.OP.RIGHT]:[l[3],l[4]],[r.OP.LEFT]:[V(l[3]),V(l[4])]},reading:{[r.OP.DOWN]:[a[5],a[6]],[r.OP.UP]:[o[5],o[6]],[r.OP.RIGHT]:[l[5],l[6]],[r.OP.LEFT]:[V(l[5]),V(l[6])]}}}else{let n=h[e%h.length],a=e=>E(e,n),o=e=>E(e.map(e=>[...e].reverse()),n);t={walk:{[r.OP.DOWN]:[a(w),a(T),a(C),a(T)],[r.OP.UP]:[a(M),a(R),a(P),a(R)],[r.OP.RIGHT]:[a(F),a(Y),a(N),a(Y)],[r.OP.LEFT]:[o(F),o(Y),o(N),o(Y)]},typing:{[r.OP.DOWN]:[a(A),a(I)],[r.OP.UP]:[a(O),a(L)],[r.OP.RIGHT]:[a(H),a(U)],[r.OP.LEFT]:[o(H),o(U)]},reading:{[r.OP.DOWN]:[a(D),a(j)],[r.OP.UP]:[a(_),a(W)],[r.OP.RIGHT]:[a(B),a(G)],[r.OP.LEFT]:[o(B),o(G)]}}}return 0!==n&&(t=function(e,t){let n={h:t,s:0,b:0,c:0},o=e=>(0,a.fu)(e,n),l=e=>[o(e[0]),o(e[1]),o(e[2]),o(e[3])],i=e=>[o(e[0]),o(e[1])];return{walk:{[r.OP.DOWN]:l(e.walk[r.OP.DOWN]),[r.OP.UP]:l(e.walk[r.OP.UP]),[r.OP.RIGHT]:l(e.walk[r.OP.RIGHT]),[r.OP.LEFT]:l(e.walk[r.OP.LEFT])},typing:{[r.OP.DOWN]:i(e.typing[r.OP.DOWN]),[r.OP.UP]:i(e.typing[r.OP.UP]),[r.OP.RIGHT]:i(e.typing[r.OP.RIGHT]),[r.OP.LEFT]:i(e.typing[r.OP.LEFT])},reading:{[r.OP.DOWN]:i(e.reading[r.OP.DOWN]),[r.OP.UP]:i(e.reading[r.OP.UP]),[r.OP.RIGHT]:i(e.reading[r.OP.RIGHT]),[r.OP.LEFT]:i(e.reading[r.OP.LEFT])}}}(t,n)),X.set(o,t),t}},3423:(e,t,n)=>{Promise.resolve().then(n.bind(n,693))},4296:(e,t,n)=>{"use strict";n.d(t,{F:()=>f,Q:()=>u});var r=n(2988),a=n(4777),o=n(5055);let l=["down","up","right"];function i(e){return new Promise((t,n)=>{let r=new Image;r.crossOrigin="anonymous",r.onload=()=>t(r),r.onerror=t=>n(Error("Failed to load image: ".concat(e," — ").concat(t))),r.src=e})}function s(e,t,n,r,a){let o=document.createElement("canvas");o.width=r,o.height=a;let l=o.getContext("2d"),i=e.naturalWidth,s=e.naturalHeight,c=Math.max(0,t),d=Math.max(0,n),u=Math.min(t+r,i)-c,p=Math.min(n+a,s)-d;u>0&&p>0&&l.drawImage(e,c,d,u,p,c-t,d-n,u,p);let{data:g}=l.getImageData(0,0,r,a),m=[];for(let e=0;e<a;e++){let t=[];for(let n=0;n<r;n++){let a=(e*r+n)*4,o=g[a],l=g[a+1],i=g[a+2];g[a+3]<128?t.push(""):t.push("#".concat(o.toString(16).padStart(2,"0")).concat(l.toString(16).padStart(2,"0")).concat(i.toString(16).padStart(2,"0")).toUpperCase())}m.push(t)}return m}async function c(){let e=[];for(let t=0;t<6;t++){let n=await i("/assets/characters/char_".concat(t,".png")),r={down:[],up:[],right:[]};for(let e=0;e<l.length;e++){let t=l[e],a=32*e,o=[];for(let e=0;e<7;e++){let t=16*e;o.push(s(n,t,a,16,32))}r[t]=o}e.push(r)}return e}async function d(){let e=await i("/assets/walls.png"),t=[];for(let n=0;n<16;n++){let r=n%4*16,a=32*Math.floor(n/4);t.push(s(e,r,a,16,32))}return t}let u=[{id:"ASSET_4",label:"Wooden Counter",srcX:128,srcY:0,srcW:48,srcH:32,footprintW:3,footprintH:2,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_7",label:"White Counter",srcX:80,srcY:23,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_15",label:"Plastic Counter",srcX:128,srcY:64,srcW:48,srcH:32,footprintW:3,footprintH:2,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_NEW_106",label:"Wooden Table",srcX:16,srcY:-9,srcW:48,srcH:32,footprintW:3,footprintH:2,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_27_A",label:"Large Table",srcX:0,srcY:544,srcW:32,srcH:64,footprintW:2,footprintH:4,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_46",label:"Vertical Table",srcX:16,srcY:288,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!0,category:"desks"},{id:"ASSET_NEW_112",label:"Coffee Table",srcX:96,srcY:512,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!0,category:"desks",backgroundTiles:1},{id:"ASSET_50_0_0",label:"Wood Coffee Table",srcX:64,srcY:299,srcW:32,srcH:16,footprintW:2,footprintH:1,isDesk:!0,category:"desks"},{id:"ASSET_17",label:"Wooden Bookshelf",srcX:128,srcY:512,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_18",label:"Full Bookshelf",srcX:160,srcY:512,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_27_B_A_A",label:"Bookshelf Tall",srcX:128,srcY:183,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_27_B_A_B_A",label:"Full Bookshelf Tall",srcX:144,srcY:183,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_27_B_A_B_B_A",label:"Cabinet Tall",srcX:160,srcY:183,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_28",label:"White Bookshelf",srcX:192,srcY:184,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_41_0_1",label:"Fridge",srcX:208,srcY:264,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_139",label:"Crates",srcX:224,srcY:447,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"storage",backgroundTiles:1},{id:"ASSET_32",label:"Chair Front",srcX:0,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_38",label:"Chair Back",srcX:16,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_33",label:"Chair Right",srcX:32,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_34",label:"Chair Left",srcX:48,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_35",label:"Office Chair Front",srcX:64,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_39",label:"Office Chair Back",srcX:80,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_36",label:"Office Chair Right",srcX:96,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_37",label:"Office Chair Left",srcX:112,srcY:258,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_49",label:"Stool",srcX:0,srcY:290,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"chairs"},{id:"ASSET_NEW_110",label:"Large Chair Right",srcX:192,srcY:512,srcW:16,srcH:48,footprintW:1,footprintH:3,isDesk:!1,category:"chairs"},{id:"ASSET_NEW_111",label:"Large Chair Left",srcX:208,srcY:512,srcW:16,srcH:48,footprintW:1,footprintH:3,isDesk:!1,category:"chairs"},{id:"ASSET_90",label:"Computer + Coffee",srcX:192,srcY:358,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_74",label:"CRT Monitor Off",srcX:128,srcY:360,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0},{id:"ASSET_76",label:"CRT Monitor On",srcX:160,srcY:360,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0},{id:"ASSET_78",label:"Monitor Off",srcX:192,srcY:359,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0},{id:"ASSET_79",label:"Monitor On",srcX:224,srcY:359,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0},{id:"ASSET_107",label:"Laptop Off",srcX:128,srcY:384,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_108",label:"Laptop On",srcX:144,srcY:384,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_99",label:"Laptop Left",srcX:177,srcY:386,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_109",label:"Laptop Back",srcX:192,srcY:386,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_61",label:"Telephone",srcX:192,srcY:304,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_123",label:"Server",srcX:131,srcY:417,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_126",label:"Printer",srcX:216,srcY:423,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"electronics",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_63",label:"Wood Window",srcX:32,srcY:319,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_64",label:"White Window",srcX:64,srcY:319,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_80",label:"Small Window Wood",srcX:80,srcY:351,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_81",label:"Small Window White",srcX:96,srcY:351,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_83",label:"Clock White",srcX:0,srcY:360,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_84",label:"Clock Color",srcX:15,srcY:352,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_101",label:"Painting",srcX:0,srcY:384,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_102",label:"Painting 2",srcX:32,srcY:384,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_103",label:"Small Painting",srcX:64,srcY:384,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_118",label:"Chart 1",srcX:32,srcY:415,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_122",label:"Chalkboard",srcX:0,srcY:415,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_134",label:"Chart 2",srcX:0,srcY:448,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"wall",canPlaceOnWalls:!0},{id:"ASSET_140",label:"White Plant",srcX:32,srcY:448,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"decor",backgroundTiles:1},{id:"ASSET_141",label:"White Plant 2",srcX:32,srcY:448,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"decor",backgroundTiles:1},{id:"ASSET_142",label:"Plant",srcX:32,srcY:448,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"decor",backgroundTiles:1},{id:"ASSET_143",label:"Plant 2",srcX:32,srcY:448,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"decor",backgroundTiles:1},{id:"ASSET_72",label:"Red Book",srcX:163,srcY:336,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"decor",canPlaceOnSurfaces:!0},{id:"ASSET_100",label:"Paper",srcX:240,srcY:384,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"decor",canPlaceOnSurfaces:!0,backgroundTiles:1},{id:"ASSET_40",label:"Vending Machine",srcX:224,srcY:264,srcW:32,srcH:32,footprintW:2,footprintH:2,isDesk:!1,category:"misc",backgroundTiles:1},{id:"ASSET_42",label:"Water Cooler",srcX:142,srcY:264,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"misc",backgroundTiles:1},{id:"ASSET_44",label:"Bin",srcX:128,srcY:278,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"misc"},{id:"ASSET_51",label:"Coffee Mug",srcX:225,srcY:299,srcW:16,srcH:16,footprintW:1,footprintH:1,isDesk:!1,category:"misc",canPlaceOnSurfaces:!0},{id:"ASSET_55",label:"Coffee Machine",srcX:161,srcY:309,srcW:16,srcH:32,footprintW:1,footprintH:2,isDesk:!1,category:"misc",canPlaceOnSurfaces:!0,backgroundTiles:1}],p={ASSET_17:{fill:"#8B6914",edge:"#5B4910"},ASSET_18:{fill:"#7B5910",edge:"#4B3908"},ASSET_27_A:{fill:"#D4C090",edge:"#B8A070"},ASSET_NEW_106:{fill:"#C8B480",edge:"#A89460"},ASSET_NEW_110:{fill:"#9B5050",edge:"#6B3030"},ASSET_NEW_111:{fill:"#9B5050",edge:"#6B3030"},ASSET_NEW_112:{fill:"#D4C090",edge:"#B8A070"}};async function g(){let e=new Map,t=null;try{t=await i("/Office%20Tileset/Office%20Tileset%20All%2016x16.png?v=".concat(Date.now())),console.log("[tileset] loaded ".concat(t.naturalWidth,"\xd7").concat(t.naturalHeight))}catch(e){console.warn("[tileset] tileset image not found, using fallback sprites only")}for(let n of u){if(t){let r=s(t,n.srcX,n.srcY,n.srcW,n.srcH);if(!function(e){for(let t of e)for(let e of t)if(""!==e)return!1;return!0}(r)){e.set(n.id,r);continue}console.warn("[tileset] empty sprite: ".concat(n.id," at (").concat(n.srcX,",").concat(n.srcY,") ").concat(n.srcW,"\xd7").concat(n.srcH))}let r=p[n.id];r&&e.set(n.id,function(e,t,n,r){let a=[];for(let o=0;o<t;o++){let l=[];for(let a=0;a<e;a++)0===a||a===e-1||0===o||o===t-1?l.push(r):l.push(n);a.push(l)}return a}(n.srcW,n.srcH,r.fill,r.edge))}return{sprites:e}}async function m(){try{let e=await fetch("/pixel-agents-layout.json");if(!e.ok)return null;let t=await e.json();if(t&&1===t.version&&Array.isArray(t.tiles))return t;return null}catch(e){return null}}async function f(){let[e,t,n,l]=await Promise.all([c(),d(),g(),m()]),i=function(){let e=[],t=[{base:"#C8B896",accent:"#B8A886"},{base:"#D4C4A0",accent:"#C4B490"},{base:"#B0A888",accent:"#A09878"},{base:"#A89078",accent:"#988068"},{base:"#C0B898",accent:"#B0A888"},{base:"#B8A890",accent:"#A89880"},{base:"#D0C0A0",accent:"#C0B090"}];for(let n=0;n<7;n++){let{base:r,accent:a}=t[n],o=[];for(let e=0;e<16;e++){let t=[];for(let n=0;n<16;n++){let o=(n+e)%4==0||(3*n+7*e)%11==0;t.push(o?a:r)}o.push(t)}e.push(o)}return e}();return(0,r.bn)(e),(0,o.ZZ)(t),(0,a.Di)(i),{characters:e,walls:t,floors:i,tilesetSprites:n.sprites,layout:l}}},4777:(e,t,n)=>{"use strict";n.d(t,{$0:()=>c,Di:()=>s,QQ:()=>d,To:()=>u,ty:()=>i});var r=n(1661),a=n(2243);let o=Array.from({length:a.dn},()=>Array(a.dn).fill(a.q3)),l=[],i="#3A3A5C";function s(e){l=e,(0,r.Zg)()}function c(){return!0}function d(){return l.length>0?l.length:1}function u(e,t){let n="floor-".concat(e,"-").concat(t.h,"-").concat(t.s,"-").concat(t.b,"-").concat(t.c),a=function(e){let t=e-1;return t<0?null:t<l.length?l[t]:0===l.length&&e>=1?o:null}(e);return a?(0,r.LN)(n,a,{...t,colorize:!0}):Array.from({length:16},()=>Array(16).fill("#FF00FF"))}},4932:(e,t,n)=>{"use strict";n.d(t,{$C:()=>h,DM:()=>l,Ec:()=>d,JH:()=>f,KD:()=>m,KE:()=>x,O2:()=>b,Rw:()=>r,Y0:()=>i,Z8:()=>a,aD:()=>o,c8:()=>v,cO:()=>k,gc:()=>p,lR:()=>s,lr:()=>u,nY:()=>g,oj:()=>c,v_:()=>y});let r="'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace",a=12,o={"green-hacker":{name:"Green Hacker",accent:"#18ff62",accentRgb:"24,255,98",dim:"#5a7a5a",text:"#9aba9a",textBright:"#c8e0c0",bg:"#050808",panel:"#0c1210",surface:"#0a0e0a",hover:"#0e1a0e",border:"#1a2a1a",borderDim:"#152515",codeBg:"#060810",codeText:"#6a8a6a",scrollThumb:"#1a3a1a",green:"#18ff62",yellow:"#e8c840",red:"#ff6b6b",blue:"#5aacff",purple:"#c084fc",cyan:"#40e8d0"},catppuccin:{name:"Catppuccin",accent:"#89b4fa",accentRgb:"137,180,250",dim:"#6c7086",text:"#bac2de",textBright:"#cdd6f4",bg:"#1e1e2e",panel:"#181825",surface:"#313244",hover:"#45475a",border:"#45475a",borderDim:"#313244",codeBg:"#181825",codeText:"#a6adc8",scrollThumb:"#45475a",clean:!0,green:"#a6e3a1",yellow:"#f9e2af",red:"#f38ba8",blue:"#89b4fa",purple:"#cba6f7",cyan:"#94e2d5"},"tokyo-night":{name:"Tokyo Night",accent:"#7aa2f7",accentRgb:"122,162,247",dim:"#565f89",text:"#a9b1d6",textBright:"#c0caf5",bg:"#0f111a",panel:"#0b0d14",surface:"#16161e",hover:"#1a1b26",border:"#2a2f3a",borderDim:"#1a1b26",codeBg:"#0b0d14",codeText:"#9aa5ce",scrollThumb:"#2a2f3a",clean:!0,green:"#9ece6a",yellow:"#e0af68",red:"#f7768e",blue:"#7aa2f7",purple:"#bb9af7",cyan:"#7dcfff"},gruvbox:{name:"Gruvbox",accent:"#fabd2f",accentRgb:"250,189,47",dim:"#a89984",text:"#d5c4a1",textBright:"#ebdbb2",bg:"#282828",panel:"#1f1f1f",surface:"#3c3836",hover:"#504945",border:"#504945",borderDim:"#3c3836",codeBg:"#1f1f1f",codeText:"#a89984",scrollThumb:"#504945",clean:!0,green:"#b8bb26",yellow:"#fabd2f",red:"#fb4934",blue:"#83a598",purple:"#d3869b",cyan:"#83a598"},nord:{name:"Nord",accent:"#88c0d0",accentRgb:"136,192,208",dim:"#616e88",text:"#d8dee9",textBright:"#eceff4",bg:"#2e3440",panel:"#272c36",surface:"#3b4252",hover:"#434c5e",border:"#4c566a",borderDim:"#3b4252",codeBg:"#272c36",codeText:"#81a1c1",scrollThumb:"#4c566a",clean:!0,green:"#a3be8c",yellow:"#ebcb8b",red:"#bf616a",blue:"#5e81ac",purple:"#b48ead",cyan:"#88c0d0"},dracula:{name:"Dracula",accent:"#bd93f9",accentRgb:"189,147,249",dim:"#7a84b0",text:"#c0c8e8",textBright:"#f8f8f2",bg:"#282a36",panel:"#232530",surface:"#44475a",hover:"#4d5066",border:"#6272a4",borderDim:"#44475a",codeBg:"#232530",codeText:"#6272a4",scrollThumb:"#6272a4",clean:!0,green:"#50fa7b",yellow:"#f1fa8c",red:"#ff5555",blue:"#8be9fd",purple:"#bd93f9",cyan:"#8be9fd"},monokai:{name:"Monokai",accent:"#a6e22e",accentRgb:"166,226,46",dim:"#7a8a48",text:"#c8d888",textBright:"#e8f0c8",bg:"#1a1c14",panel:"#22241a",surface:"#282a20",hover:"#343828",border:"#3e4430",borderDim:"#343828",codeBg:"#181a12",codeText:"#7a9040",scrollThumb:"#3e4430",clean:!0,green:"#a6e22e",yellow:"#e6db74",red:"#f92672",blue:"#66d9ef",purple:"#ae81ff",cyan:"#66d9ef"},kanagawa:{name:"Kanagawa",accent:"#C0A36E",accentRgb:"192,163,110",dim:"#625e5a",text:"#c8c093",textBright:"#DCD7BA",bg:"#12120f",panel:"#161613",surface:"#1D1C19",hover:"#282727",border:"#393836",borderDim:"#282727",codeBg:"#0d0c0c",codeText:"#87a987",scrollThumb:"#393836",clean:!0,green:"#87a987",yellow:"#c4b28a",red:"#c4746e",blue:"#8ba4b0",purple:"#a292a3",cyan:"#8ea4a2"},everforest:{name:"Everforest",accent:"#a7c080",accentRgb:"167,192,128",dim:"#7a8478",text:"#d3c6aa",textBright:"#e5dfc9",bg:"#272e34",panel:"#232a30",surface:"#2d353b",hover:"#343f44",border:"#3d484d",borderDim:"#343f44",codeBg:"#232a30",codeText:"#7fbbb3",scrollThumb:"#3d484d",clean:!0,green:"#a7c080",yellow:"#dbbc7f",red:"#e67e80",blue:"#7fbbb3",purple:"#d699b6",cyan:"#83c092"},office:{name:"Office",accent:"#c8a464",accentRgb:"200,164,100",dim:"#6e6050",text:"#b8ae9e",textBright:"#dcd4c6",bg:"#111010",panel:"#171514",surface:"#1e1b18",hover:"#262220",border:"#302b26",borderDim:"#231f1a",codeBg:"#13110e",codeText:"#907850",scrollThumb:"#342e26",clean:!0,green:"#7ab87a",yellow:"#d4a850",red:"#c06050",blue:"#6a9ec0",purple:"#a888b8",cyan:"#70b0a8"},"black-metal":{name:"Black Metal",accent:"#dd9999",accentRgb:"221,153,153",dim:"#486e6f",text:"#c1c1c1",textBright:"#e0e0e0",bg:"#000000",panel:"#0a0a0a",surface:"#141414",hover:"#1c1c1c",border:"#2a2a2a",borderDim:"#1a1a1a",codeBg:"#080808",codeText:"#a06666",scrollThumb:"#2a2a2a",clean:!0,green:"#486e6f",yellow:"#a06666",red:"#dd9999",blue:"#888888",purple:"#999999",cyan:"#aaaaaa"},"atom-one-dark":{name:"Atom One Dark",accent:"#61afef",accentRgb:"97,175,239",dim:"#5c6370",text:"#abb2bf",textBright:"#d7dae0",bg:"#21252b",panel:"#1e2227",surface:"#282c34",hover:"#323844",border:"#3e4451",borderDim:"#282c34",codeBg:"#1e2227",codeText:"#98c379",scrollThumb:"#3e4451",clean:!0,green:"#98c379",yellow:"#e5c07b",red:"#e06c75",blue:"#61afef",purple:"#c678dd",cyan:"#56b6c2"},owl:{name:"Owl",accent:"#da5b2c",accentRgb:"218,91,44",dim:"#5d595b",text:"#dedede",textBright:"#ffffff",bg:"#2f2b2c",panel:"#292526",surface:"#383434",hover:"#433e3f",border:"#4a4546",borderDim:"#383434",codeBg:"#292526",codeText:"#b1b1b1",scrollThumb:"#4a4546",clean:!0,green:"#989898",yellow:"#cacaca",red:"#da5b2c",blue:"#656565",purple:"#b1b1b1",cyan:"#7f7f7f"},vague:{name:"Vague",accent:"#aeaed1",accentRgb:"174,174,209",dim:"#606079",text:"#cdcdcd",textBright:"#d7d7d7",bg:"#141415",panel:"#111112",surface:"#1e1e24",hover:"#252530",border:"#2e2e3a",borderDim:"#1e1e24",codeBg:"#111112",codeText:"#8ba9c1",scrollThumb:"#2e2e3a",clean:!0,green:"#7fa563",yellow:"#f3be7c",red:"#d8647e",blue:"#6e94b2",purple:"#bb9dbd",cyan:"#aeaed1"},"iceberg-dark":{name:"Iceberg Dark",accent:"#84a0c6",accentRgb:"132,160,198",dim:"#6b7089",text:"#c6c8d1",textBright:"#d2d4de",bg:"#161821",panel:"#12141b",surface:"#1e2132",hover:"#272b3d",border:"#333648",borderDim:"#1e2132",codeBg:"#12141b",codeText:"#89b8c2",scrollThumb:"#333648",clean:!0,green:"#b4be82",yellow:"#e2a478",red:"#e27878",blue:"#84a0c6",purple:"#a093c7",cyan:"#89b8c2"},slate:{name:"Slate",accent:"#6aaddf",accentRgb:"106,173,223",dim:"#606878",text:"#c0c8d4",textBright:"#d8dce4",bg:"#1e2228",panel:"#232830",surface:"#282e36",hover:"#303840",border:"#384048",borderDim:"#303840",codeBg:"#1c2026",codeText:"#70a0c8",scrollThumb:"#384450",clean:!0,green:"#48cc6a",yellow:"#e8b040",red:"#e04848",blue:"#6aaddf",purple:"#a78bfa",cyan:"#5ec4d0"},"amber-noir":{name:"Amber Noir",accent:"#e8b040",accentRgb:"232,176,64",dim:"#6a5c40",text:"#c4b894",textBright:"#e0d8c4",bg:"#0c0a08",panel:"#100e0a",surface:"#181410",hover:"#201c16",border:"#2c2618",borderDim:"#1c1810",codeBg:"#0a0908",codeText:"#a08848",scrollThumb:"#302818",clean:!0,green:"#8aac5a",yellow:"#e8b040",red:"#c85a4a",blue:"#6498b8",purple:"#a07cc0",cyan:"#5aaa98"}},l="#c8a464",i="#6e6050",s="#b8ae9e",c="#dcd4c6",d="#c06050",u="#111010",p="#171514",g="#1e1b18",m="#302b26",f="#231f1a",h="#7ab87a",b="#d4a850",y="#c06050",x="#6a9ec0",k="#a888b8";function v(e){var t;let n=null!=(t=o[e])?t:o.office;if(l=n.accent,i=n.dim,s=n.text,c=n.textBright,d=n.red,u=n.bg,p=n.panel,g=n.surface,n.hover,m=n.border,f=n.borderDim,n.clean||n.accentRgb,n.clean||"0 0 6px ".concat(n.accent,"15, inset 0 0 6px ").concat(n.accent,"08"),n.clean||"0 0 12px ".concat(n.accent,"30, 0 0 4px ").concat(n.accent,"20"),h=n.green,b=n.yellow,y=n.red,x=n.blue,k=n.purple,n.cyan,"undefined"!=typeof document){let e=document.documentElement.style;e.setProperty("--term-bg",n.bg),e.setProperty("--term-panel",n.panel),e.setProperty("--term-card",n.surface),e.setProperty("--term-surface",n.surface),e.setProperty("--term-border",n.border),e.setProperty("--term-border-dim",n.borderDim),e.setProperty("--term-green",n.accent),e.setProperty("--term-green-dim",n.dim),e.setProperty("--term-text",n.text),e.setProperty("--term-text-bright",n.textBright),e.setProperty("--term-accent-rgb",n.accentRgb),e.setProperty("--term-code-bg",n.codeBg),e.setProperty("--term-code-text",n.codeText),e.setProperty("--term-scroll-thumb",n.scrollThumb),e.setProperty("--term-clean",n.clean?"1":"0"),e.setProperty("--term-sem-green",n.green),e.setProperty("--term-sem-yellow",n.yellow),e.setProperty("--term-sem-red",n.red),e.setProperty("--term-sem-blue",n.blue),e.setProperty("--term-sem-purple",n.purple),e.setProperty("--term-sem-cyan",n.cyan),n.clean?document.documentElement.classList.add("term-clean"):document.documentElement.classList.remove("term-clean")}}},5055:(e,t,n)=>{"use strict";n.d(t,{BN:()=>i,ZZ:()=>l,og:()=>c,vb:()=>s});var r=n(5195),a=n(1661);let o=null;function l(e){o=e}function i(){return null!==o}function s(e,t,n){if(!o)return[];let l=e.length,i=l>0?e[0].length:0,s=null!=n?n:i,c=[];for(let n=0;n<l;n++)for(let l=0;l<i;l++){if(e[n][l]!==r.nb.WALL)continue;let i=n*s+l,d=null==t?void 0:t[i],u=d?function(e,t,n,l){if(!o)return null;let i=n.length,s=i>0?n[0].length:0,c=0;t>0&&n[t-1][e]===r.nb.WALL&&(c|=1),e<s-1&&n[t][e+1]===r.nb.WALL&&(c|=2),t<i-1&&n[t+1][e]===r.nb.WALL&&(c|=4),e>0&&n[t][e-1]===r.nb.WALL&&(c|=8);let d=o[c];if(!d)return null;let u="wall-".concat(c,"-").concat(l.h,"-").concat(l.s,"-").concat(l.b,"-").concat(l.c);return{sprite:(0,a.LN)(u,d,{...l,colorize:!0}),offsetY:r.dn-d.length}}(l,n,e,d):function(e,t,n){if(!o)return null;let a=n.length,l=a>0?n[0].length:0,i=0;t>0&&n[t-1][e]===r.nb.WALL&&(i|=1),e<l-1&&n[t][e+1]===r.nb.WALL&&(i|=2),t<a-1&&n[t+1][e]===r.nb.WALL&&(i|=4),e>0&&n[t][e-1]===r.nb.WALL&&(i|=8);let s=o[i];return s?{sprite:s,offsetY:r.dn-s.length}:null}(l,n,e);u&&c.push({sprite:u.sprite,x:l*r.dn,y:n*r.dn+u.offsetY,zY:(n+1)*r.dn})}return c}function c(e){let{h:t,s:n,b:r,c:a}=e,o=.5;0!==a&&(o=.5+(100+a)/100*(o-.5)),0!==r&&(o+=r/200);let l=n/100*(1-Math.abs(2*(o=Math.max(0,Math.min(1,o)))-1)),i=t/60,s=l*(1-Math.abs(i%2-1)),c=0,d=0,u=0;i<1?(c=l,d=s,u=0):i<2?(c=s,d=l,u=0):i<3?(c=0,d=l,u=s):i<4?(c=0,d=s,u=l):i<5?(c=s,d=0,u=l):(c=l,d=0,u=s);let p=o-l/2,g=e=>Math.max(0,Math.min(255,Math.round((e+p)*255)));return"#".concat(g(c).toString(16).padStart(2,"0")).concat(g(d).toString(16).padStart(2,"0")).concat(g(u).toString(16).padStart(2,"0"))}},5149:(e,t,n)=>{"use strict";n.r(t),n.d(t,{clearConnection:()=>l,getConnection:()=>o,getGatewayHttpUrl:()=>i,saveConnection:()=>a});let r="office_connection";function a(e){sessionStorage.setItem(r,JSON.stringify(e)),"owner"!==e.role&&e.role||localStorage.setItem(r,JSON.stringify(e))}function o(){var e;let t=null!=(e=sessionStorage.getItem(r))?e:localStorage.getItem(r);if(!t)return null;try{return JSON.parse(t)}catch(e){return null}}function l(){sessionStorage.removeItem(r),localStorage.removeItem(r)}function i(){let e=o();return(null==e?void 0:e.wsUrl)?e.wsUrl.replace(/^ws(s?):\/\//,"http$1://"):window.location.origin}},5192:(e,t,n)=>{"use strict";n.d(t,{Ng:()=>h,J0:()=>g,S8:()=>b});var r=n(7334),a=n(138);let o=null,l=null,i=null,s=null,c=2e3;function d(){l&&(clearTimeout(l),l=null),o&&(o.onopen=null,o.onmessage=null,o.onclose=null,o.onerror=null,o.close(),o=null)}function u(e){if(!o||o.readyState!==WebSocket.OPEN)return void console.warn("[WS] Not connected, dropping command:",e.type);console.log("[WS] Sending command:",e.type,e),o.send(JSON.stringify(e))}let p=null;function g(e){p=e}let m=null,f=0;function h(e){y();let t=++f;if("ws"===e.mode&&e.wsUrl){var u,g;m="ws",u=e.wsUrl,g=e.sessionToken,d(),i=u,s=null!=g?g:null,c=2e3,function e(){if(!i)return;let t=new WebSocket(i);t.onopen=()=>{console.log("[WS] Connected"),c=2e3,t.readyState===WebSocket.OPEN&&s&&t.send(JSON.stringify({type:"AUTH",sessionToken:s})),a.hK.getState().setConnected(!0),t.readyState===WebSocket.OPEN&&t.send(JSON.stringify({type:"PING"}))},t.onmessage=e=>{try{let t=JSON.parse(e.data);if("AUTH_FAILED"===t.type){console.log("[WS] AUTH_FAILED — clearing connection and redirecting to /pair"),d(),i=null;let{clearConnection:e}=n(5149);e(),window.location.href="/pair";return}let o=r.Cq.parse(t);a.hK.getState().handleEvent(o)}catch(e){console.error("[WS] Invalid event:",e)}},t.onclose=()=>{console.log("[WS] Disconnected"),a.hK.getState().setConnected(!1),o===t&&i&&(o=null,console.log("[WS] Reconnecting in ".concat(c,"ms...")),l=setTimeout(e,c),c=Math.min(1.5*c,3e4))},t.onerror=()=>{},o=t}()}else"ably"===e.mode&&(m="ably",p?p.connect(e.machineId,e.sessionToken).catch(console.error):console.error("[Connection] Ably transport not registered"));return()=>{f===t&&y()}}function b(e){"ws"===m?u(e):"ably"===m?null==p||p.send(e):(console.warn("[Connection] No active transport, attempting WS fallback"),u(e))}function y(){"ws"===m?(i=null,d()):"ably"===m&&(null==p||p.disconnect()),m=null}},5195:(e,t,n)=>{"use strict";n.d(t,{JM:()=>i,Lp:()=>o,OP:()=>l,Pz:()=>r.BZ,Tj:()=>r.Tj,VF:()=>s,YK:()=>r.YK,dn:()=>r.dn,nb:()=>a,pX:()=>r.pX,wh:()=>r.wh});var r=n(2243);let a={WALL:0,FLOOR_1:1,FLOOR_2:2,FLOOR_3:3,FLOOR_4:4,FLOOR_5:5,FLOOR_6:6,FLOOR_7:7,VOID:8},o={IDLE:"idle",WALK:"walk",TYPE:"type"},l={DOWN:0,LEFT:1,RIGHT:2,UP:3},i={DESK:"desk",BOOKSHELF:"bookshelf",PLANT:"plant",COOLER:"cooler",WHITEBOARD:"whiteboard",CHAIR:"chair",PC:"pc",LAMP:"lamp",TS_DESK_WOOD:"ts-desk-wood",TS_DESK_GRAY:"ts-desk-gray",TS_TABLE_LONG:"ts-table-long",TS_BOOKSHELF:"ts-bookshelf",TS_CABINET:"ts-cabinet",TS_BOOKSHELF_COLOR:"ts-bookshelf-color",TS_COUCH_RED:"ts-couch-red",TS_COUCH_BLUE:"ts-couch-blue",TS_CHAIR_GREEN:"ts-chair-green",TS_CHAIR_OFFICE:"ts-chair-office",TS_COMPUTER:"ts-computer",TS_LAPTOP:"ts-laptop",TS_MONITOR:"ts-monitor",TS_PHONE:"ts-phone",TS_PLANT:"ts-plant",TS_PLANT_TALL:"ts-plant-tall",TS_PAINTING:"ts-painting",TS_FRAME_SMALL:"ts-frame-small",TS_CLOCK:"ts-clock",TS_COOLER:"ts-cooler",TS_BOXES:"ts-boxes",TS_WHITEBOARD:"ts-whiteboard"},s={SELECT:"select",TILE_PAINT:"tile_paint",WALL_PAINT:"wall_paint",ERASE:"erase",FURNITURE_PLACE:"furniture_place",FURNITURE_PICK:"furniture_pick",EYEDROPPER:"eyedropper"}},7334:(e,t,n)=>{"use strict";n.d(t,{Cq:()=>eS});var r=n(6353);let a=r.k5(["idle","working","waiting_approval","done","error"]),o=r.k5(["low","med","high"]),l=r.k5(["yes","no"]),i=r.k5(["create","design","execute","complete"]);r.k5(["owner","collaborator","spectator"]);let s=r.Ik({type:r.eu("RUN_TASK"),agentId:r.Yj(),taskId:r.Yj(),prompt:r.Yj(),repoPath:r.Yj().optional(),name:r.Yj().optional(),role:r.Yj().optional(),personality:r.Yj().optional(),backend:r.Yj().optional(),teamId:r.Yj().optional()}),c=r.Ik({type:r.eu("APPROVAL_DECISION"),approvalId:r.Yj(),decision:l}),d=r.Ik({type:r.eu("CANCEL_TASK"),agentId:r.Yj(),taskId:r.Yj()}),u=r.Ik({type:r.eu("PING")}),p=r.Ik({type:r.eu("CREATE_AGENT"),agentId:r.Yj(),name:r.Yj(),role:r.Yj(),palette:r.ai().optional(),personality:r.Yj().optional(),backend:r.Yj().optional(),teamId:r.Yj().optional(),workDir:r.Yj().optional(),skillFiles:r.YO(r.Yj()).optional()}),g=r.Ik({type:r.eu("FIRE_AGENT"),agentId:r.Yj()}),m=r.Ik({type:r.eu("OPEN_FILE"),path:r.Yj()}),f=r.Ik({type:r.eu("CREATE_TEAM"),leadId:r.Yj(),memberIds:r.YO(r.Yj()),backends:r.g1(r.Yj(),r.Yj()).optional(),workDir:r.Yj().optional()}),h=r.Ik({type:r.eu("SERVE_PREVIEW"),filePath:r.Yj().optional(),previewCmd:r.Yj().optional(),previewPort:r.ai().optional(),cwd:r.Yj().optional()}),b=r.Ik({type:r.eu("STOP_TEAM")}),y=r.Ik({type:r.eu("FIRE_TEAM")}),x=r.Ik({type:r.eu("KILL_EXTERNAL"),agentId:r.Yj()}),k=r.Ik({type:r.eu("APPROVE_PLAN"),agentId:r.Yj()}),v=r.Ik({type:r.eu("END_PROJECT"),agentId:r.Yj(),name:r.Yj().optional(),role:r.Yj().optional(),personality:r.Yj().optional(),backend:r.Yj().optional()}),S=r.Ik({type:r.eu("SAVE_AGENT_DEF"),agent:r.Ik({id:r.Yj(),name:r.Yj(),role:r.Yj(),skills:r.Yj(),personality:r.Yj(),palette:r.ai(),isBuiltin:r.zM(),teamRole:r.k5(["dev","reviewer","leader"]),skillFiles:r.YO(r.Yj()).optional()})}),E=r.Ik({type:r.eu("LIST_SKILLS")}),w=r.Ik({type:r.eu("SAVE_SKILL"),name:r.Yj(),content:r.Yj()}),T=r.Ik({type:r.eu("DELETE_SKILL"),name:r.Yj()}),C=r.Ik({type:r.eu("DELETE_AGENT_DEF"),agentDefId:r.Yj()}),A=r.Ik({type:r.eu("PICK_FOLDER"),requestId:r.Yj()}),I=r.Ik({type:r.eu("UPLOAD_IMAGE"),requestId:r.Yj(),data:r.Yj(),filename:r.Yj()}),D=r.Ik({type:r.eu("SUGGEST"),text:r.Yj().max(500),author:r.Yj().max(30).optional()}),j=r.Ik({type:r.eu("RATE_PROJECT"),projectId:r.Yj().optional(),ratings:r.g1(r.Yj(),r.ai().min(1).max(5))}),M=r.Ik({type:r.eu("LIST_PROJECTS")}),R=r.Ik({type:r.eu("LOAD_PROJECT"),projectId:r.Yj()}),P=r.Ik({type:r.eu("UPDATE_AGENCY_AGENTS")}),O=r.Ik({type:r.eu("GET_CONFIG")}),L=r.Ik({type:r.eu("SAVE_CONFIG"),telegramBotToken:r.Yj().optional(),telegramAllowedUsers:r.YO(r.Yj()).optional(),worktreeEnabled:r.zM().optional(),autoMergeEnabled:r.zM().optional(),tunnelToken:r.Yj().optional(),tunnelBaseUrl:r.Yj().optional()}),_=r.Ik({type:r.eu("MERGE_WORKTREE"),agentId:r.Yj()}),W=r.Ik({type:r.eu("UNDO_MERGE"),agentId:r.Yj()}),F=r.Ik({type:r.eu("REVERT_WORKTREE"),agentId:r.Yj()}),Y=r.Ik({type:r.eu("TOGGLE_AUTO_MERGE"),agentId:r.Yj(),autoMerge:r.zM()}),N=r.Ik({type:r.eu("REQUEST_REVIEW"),reviewerAgentId:r.Yj(),sourceAgentId:r.Yj(),changedFiles:r.YO(r.Yj()),projectDir:r.Yj().optional(),entryFile:r.Yj().optional(),summary:r.Yj().optional(),backend:r.Yj().optional()});r.gM("type",[s,c,d,u,p,g,m,f,h,b,y,x,k,v,S,C,A,I,D,j,M,R,P,N,_,W,F,Y,O,L,E,w,T]);let H=r.Ik({type:r.eu("AGENT_STATUS"),agentId:r.Yj(),status:a,details:r.Yj().optional()}),U=r.Ik({type:r.eu("TASK_STARTED"),agentId:r.Yj(),taskId:r.Yj(),prompt:r.Yj()}),B=r.Ik({type:r.eu("LOG_APPEND"),agentId:r.Yj(),taskId:r.Yj(),stream:r.k5(["stdout","stderr"]),chunk:r.Yj()}),G=r.Ik({type:r.eu("APPROVAL_NEEDED"),approvalId:r.Yj(),agentId:r.Yj(),taskId:r.Yj(),title:r.Yj(),summary:r.Yj(),riskLevel:o}),z=r.Ik({inputTokens:r.ai(),outputTokens:r.ai()}),K=r.Ik({summary:r.Yj(),fullOutput:r.Yj().optional(),changedFiles:r.YO(r.Yj()),diffStat:r.Yj(),testResult:r.k5(["passed","failed","unknown"]),nextSuggestion:r.Yj().optional(),previewUrl:r.Yj().optional(),previewPath:r.Yj().optional(),entryFile:r.Yj().optional(),projectDir:r.Yj().optional(),previewCmd:r.Yj().optional(),previewPort:r.ai().optional(),tokenUsage:z.optional()}),V=r.Ik({type:r.eu("TASK_DONE"),agentId:r.Yj(),taskId:r.Yj(),result:K,isFinalResult:r.zM().optional()}),X=r.Ik({type:r.eu("TASK_FAILED"),agentId:r.Yj(),taskId:r.Yj(),error:r.Yj()}),J=r.Ik({type:r.eu("TASK_DELEGATED"),fromAgentId:r.Yj(),toAgentId:r.Yj(),taskId:r.Yj(),prompt:r.Yj()}),$=r.Ik({type:r.eu("AGENT_CREATED"),agentId:r.Yj(),name:r.Yj(),role:r.Yj(),palette:r.ai().optional(),personality:r.Yj().optional(),backend:r.Yj().optional(),isTeamLead:r.zM().optional(),teamId:r.Yj().optional(),isExternal:r.zM().optional(),pid:r.ai().optional(),cwd:r.Yj().optional(),workDir:r.Yj().optional(),startedAt:r.ai().optional(),autoMerge:r.zM().optional(),pendingMerge:r.zM().optional(),lastMergeCommit:r.Yj().nullable().optional(),lastMergeMessage:r.Yj().nullable().optional(),undoCount:r.ai().optional()}),q=r.Ik({type:r.eu("AGENT_FIRED"),agentId:r.Yj()}),Z=r.Ik({type:r.eu("TASK_RESULT_RETURNED"),fromAgentId:r.Yj(),toAgentId:r.Yj(),taskId:r.Yj(),summary:r.Yj(),success:r.zM()}),Q=r.Ik({type:r.eu("TEAM_CHAT"),fromAgentId:r.Yj(),toAgentId:r.Yj().optional(),message:r.Yj(),messageType:r.k5(["delegation","result","status","warning"]),taskId:r.Yj().optional(),timestamp:r.ai()}),ee=r.Ik({type:r.eu("TASK_QUEUED"),agentId:r.Yj(),taskId:r.Yj(),prompt:r.Yj(),position:r.ai()}),et=r.Ik({type:r.eu("TOKEN_UPDATE"),agentId:r.Yj(),inputTokens:r.ai(),outputTokens:r.ai()}),en=r.Ik({type:r.eu("TOOL_ACTIVITY"),agentId:r.Yj(),text:r.Yj()}),er=r.Ik({type:r.eu("TEAM_PHASE"),teamId:r.Yj(),phase:i,leadAgentId:r.Yj()}),ea=r.Ik({type:r.eu("SUGGESTION"),text:r.Yj(),author:r.Yj(),timestamp:r.ai()}),eo=r.Ik({type:r.eu("AGENT_DEFS"),agents:r.YO(r.Ik({id:r.Yj(),name:r.Yj(),role:r.Yj(),skills:r.Yj(),personality:r.Yj(),palette:r.ai(),isBuiltin:r.zM(),teamRole:r.k5(["dev","reviewer","leader"]),skillFiles:r.YO(r.Yj()).optional()}))}),el=r.Ik({type:r.eu("SKILL_LIST"),skills:r.YO(r.Ik({name:r.Yj(),title:r.Yj(),isFolder:r.zM()}))}),ei=r.Ik({type:r.eu("AGENTS_SYNC"),agentIds:r.YO(r.Yj())}),es=r.Ik({entryFile:r.Yj().optional(),projectDir:r.Yj().optional(),previewCmd:r.Yj().optional(),previewPort:r.ai().optional()}).optional(),ec=r.Ik({type:r.eu("PROJECT_LIST"),projects:r.YO(r.Ik({id:r.Yj(),name:r.Yj(),startedAt:r.ai(),endedAt:r.ai(),agentNames:r.YO(r.Yj()),eventCount:r.ai(),preview:es,tokenUsage:r.Ik({inputTokens:r.ai(),outputTokens:r.ai()}).optional(),ratings:r.g1(r.Yj(),r.ai()).optional()}))}),ed=r.Ik({type:r.eu("PROJECT_DATA"),projectId:r.Yj(),name:r.Yj(),startedAt:r.ai(),endedAt:r.ai(),events:r.YO(r.bz())}),eu=r.Ik({type:r.eu("PREVIEW_READY"),url:r.Yj()}),ep=r.Ik({type:r.eu("FOLDER_PICKED"),requestId:r.Yj(),path:r.Yj()}),eg=r.Ik({type:r.eu("IMAGE_UPLOADED"),requestId:r.Yj(),path:r.Yj()}),em=r.Ik({type:r.eu("AGENCY_AGENTS_UPDATED"),success:r.zM(),message:r.Yj(),count:r.ai().optional()}),ef=r.Ik({type:r.eu("WORKTREE_READY"),agentId:r.Yj(),taskId:r.Yj(),branch:r.Yj()}),eh=r.Ik({type:r.eu("WORKTREE_MERGED"),agentId:r.Yj(),branch:r.Yj(),success:r.zM(),commitHash:r.Yj().optional(),commitMessage:r.Yj().optional(),undoCount:r.ai().optional()}),eb=r.Ik({type:r.eu("WORKTREE_REVERTED"),agentId:r.Yj(),success:r.zM(),commitId:r.Yj().optional(),commitsAhead:r.ai(),message:r.Yj().optional()}),ey=r.Ik({type:r.eu("AUTO_MERGE_UPDATED"),agentId:r.Yj(),autoMerge:r.zM(),lastMergeCommit:r.Yj().nullable().optional(),lastMergeMessage:r.Yj().nullable().optional(),undoCount:r.ai().optional()}),ex=r.Ik({type:r.eu("BACKENDS_AVAILABLE"),backends:r.YO(r.Yj())}),ek=r.Ik({type:r.eu("CONFIG_LOADED"),telegramBotToken:r.Yj().optional(),telegramAllowedUsers:r.YO(r.Yj()).optional(),telegramConnected:r.zM().optional(),worktreeEnabled:r.zM().optional(),autoMergeEnabled:r.zM().optional(),tunnelBaseUrl:r.Yj().optional(),tunnelToken:r.Yj().optional(),tunnelRunning:r.zM().optional()}),ev=r.Ik({type:r.eu("CONFIG_SAVED"),success:r.zM(),message:r.Yj(),telegramConnected:r.zM().optional(),tunnelRunning:r.zM().optional()}),eS=r.gM("type",[ei,H,U,B,G,V,X,J,$,q,Z,Q,ee,et,en,er,eo,ea,ec,ed,eu,ep,eg,em,ex,ek,ev,ef,eh,eb,ey,el]);[{palette:0,name:"Alex",role:"Frontend Developer",description:"UI, React/Vue/Next.js, CSS, accessibility",personality:"Detail-oriented and user-centric. Focuses on performance, accessibility, and pixel-perfect implementation."},{palette:1,name:"Mia",role:"Backend Architect",description:"APIs, databases, system design, cloud",personality:"Strategic and security-focused. Designs for scale, reliability, and maintainability."},{palette:2,name:"Leo",role:"Rapid Prototyper",description:"MVP, proof-of-concept, fast iteration",personality:"Speed-focused and pragmatic. Ships working prototypes fast, iterates based on feedback."},{palette:5,name:"Marcus",role:"Team Lead",description:"Creative direction, planning, delegation",personality:"Strong product intuition, communicates with clarity and vision. Focuses on the big picture and keeps the team aligned.",isLeader:!0},{palette:4,name:"Nova",role:"UX Architect",description:"UX foundations, CSS systems, layout, component architecture",personality:"Systematic and developer-empathetic. Bridges design vision and implementation with clear, buildable structures."}].findIndex(e=>e.isLeader)},7580:(e,t,n)=>{"use strict";n.r(t),n.d(t,{SysMsg:()=>f,TokenBadge:()=>u,default:()=>k});var r=n(206),a=n(1406),o=n(461),l=n(1852),i=n(5192),s=n(4932),c=n(7877),d=n(7821);function u(e){let{inputTokens:t,outputTokens:n}=e;return 0===t&&0===n?null:(0,r.jsxs)("span",{style:{fontSize:s.Z8,padding:"1px 4px",color:s.lR,fontFamily:s.Rw,whiteSpace:"nowrap",opacity:.55,fontVariantNumeric:"tabular-nums"},title:"Input: ".concat(t.toLocaleString()," / Output: ").concat(n.toLocaleString()),children:["↑",(0,c.ap)(t)," ","↓",(0,c.ap)(n)]})}function p(e){let{text:t}=e;return(0,r.jsx)(r.Fragment,{children:t.split("\n").map((e,t)=>{let n="inherit",a="transparent";return e.startsWith("+")?(n=s.$C,a="".concat(s.$C,"08")):e.startsWith("-")?(n=s.v_,a="".concat(s.v_,"08")):e.startsWith("@@")&&(n=s.Y0),(0,r.jsx)("span",{style:{display:"block",color:n,backgroundColor:a,padding:"0 6px",margin:"0 -6px",borderRadius:1},children:e},t)})})}let g={p(e){let{children:t}=e;return(0,r.jsx)("div",{style:{marginBottom:8},children:t})},pre(e){let{children:t}=e;return(0,r.jsx)("div",{style:{overflowX:"auto",margin:"8px 0",WebkitOverflowScrolling:"touch"},children:t})},code(e){var t,n;let{className:a,children:o,...l}=e,c=String(o).replace(/\n$/,""),d=null!=(t=null==a?void 0:a.replace("language-",""))?t:"",u=(null==a?void 0:a.includes("language-"))||c.includes("\n"),g="diff"===d,m=c.match(/^open\s+(\/\S+)/),f=m?null:c.match(/^(\/[\w./-]+\.\w+)$/),h=null!=(n=null==m?void 0:m[1])?n:null==f?void 0:f[1];return h?(0,r.jsx)("pre",{onClick:()=>(0,i.S8)({type:"OPEN_FILE",path:h}),style:{padding:"8px 10px",cursor:"pointer",display:"flex",alignItems:"center",gap:6,whiteSpace:"pre-wrap",wordBreak:"break-all"},title:"Click to open",children:(0,r.jsx)("code",{...l,children:c})}):u?(0,r.jsxs)("pre",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",position:"relative"},children:[d&&(0,r.jsx)("span",{style:{position:"absolute",top:-1,right:6,fontSize:s.Z8,color:s.Y0,fontFamily:"inherit",letterSpacing:"0.04em",userSelect:"none",pointerEvents:"none"},children:d}),(0,r.jsx)("code",{...l,children:g?(0,r.jsx)(p,{text:c}):o})]}):(0,r.jsx)("code",{...l,children:o})},table(e){let{children:t}=e;return(0,r.jsx)("div",{style:{overflowX:"auto",margin:"8px 0",WebkitOverflowScrolling:"touch"},children:(0,r.jsx)("table",{style:{borderCollapse:"collapse",width:"100%"},children:t})})},a(e){let{href:t,children:n}=e;return(0,r.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",style:{wordBreak:"break-all"},children:n})}},m=(0,a.memo)(function(e){let{text:t}=e;return(0,r.jsx)(o.oz,{urlTransform:e=>e,remarkPlugins:[l.A],components:g,children:t.replace(/(https?:\/\/[^\s)>\]]+)/g,"[$1]($1)")})});function f(e){let{ts:t,tag:n,text:o,firstLine:l,isLong:i,isError:c}=e,[d,u]=(0,a.useState)(!1),p=c?s.Ec:s.Y0;return(0,r.jsxs)("div",{className:"term-msg",style:{marginBottom:2,fontSize:s.Z8,fontFamily:s.Rw,lineHeight:1.7,color:s.Y0,padding:"1px 0"},children:[(0,r.jsx)("span",{className:"term-ts",style:{color:s.Y0,marginRight:6},children:t}),i&&(0,r.jsx)("span",{onClick:()=>u(!d),style:{color:c?s.Ec:s.Y0,cursor:"pointer",marginRight:4},children:d?"▾":"▸"}),(0,r.jsx)("span",{style:{color:c?s.Ec:s.Y0,marginRight:6},children:n}),(0,r.jsx)("span",{style:{color:p,wordBreak:"break-word"},className:"chat-markdown",children:i&&!d?(0,r.jsx)("span",{children:l}):(0,r.jsx)(m,{text:o})})]})}function h(e){let{result:t,onReview:n,detectedBackends:o}=e,[l,i]=(0,a.useState)(!1),c=(0,a.useRef)(null);return(0,a.useEffect)(()=>{if(!l)return;let e=e=>{c.current&&!c.current.contains(e.target)&&i(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[l]),(0,r.jsxs)("div",{ref:c,style:{position:"relative",display:"inline-block"},children:[(0,r.jsxs)("button",{className:"term-btn",onClick:()=>i(!l),style:x,onMouseEnter:e=>{e.currentTarget.style.borderColor=s.cO},onMouseLeave:e=>{e.currentTarget.style.borderColor="".concat(s.cO,"55")},children:["review ",l?"▴":"▾"]}),l&&(0,r.jsxs)("div",{style:{position:"absolute",bottom:"100%",left:0,marginBottom:4,zIndex:50,backgroundColor:s.gc,border:"1px solid ".concat(s.KD),minWidth:150,boxShadow:"0 4px 12px rgba(0,0,0,0.4)"},children:[(0,r.jsx)("div",{style:{padding:"4px 8px",color:s.Y0,fontFamily:s.Rw,fontSize:s.Z8,letterSpacing:"0.05em",borderBottom:"1px solid ".concat(s.KD)},children:"SELECT AI"}),d.GN.map(e=>{let a=0===o.length||o.includes(e.id);return(0,r.jsxs)("button",{disabled:!a,onClick:()=>{a&&(i(!1),n(t,e.id))},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 10px",border:"none",cursor:a?"pointer":"not-allowed",backgroundColor:"transparent",textAlign:"left",fontFamily:s.Rw,fontSize:s.Z8,color:a?s.lR:s.Y0,opacity:a?1:.4},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=s.nY},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="transparent"},children:[(0,r.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",backgroundColor:a?s.$C:s.Y0,flexShrink:0}}),(0,r.jsx)("span",{children:e.name})]},e.id)})]})]})}let b={color:s.lR,cursor:"pointer",border:"1px solid ".concat(s.Y0),padding:"3px 10px",fontSize:s.Z8,fontFamily:s.Rw,backgroundColor:"transparent",transition:"border-color 0.15s ease, color 0.15s ease",display:"inline-block",verticalAlign:"middle",letterSpacing:"0.02em",borderRadius:4},y={...b,color:s.KE,border:"1px solid ".concat(s.KE,"55")},x={...b,color:s.cO,border:"1px solid ".concat(s.cO,"55")},k=(0,a.memo)(function(e){var t,n,a,o,l,d,u,p,g,b,x;let{msg:k,agentName:v,onPreview:S,onReview:E,isTeamLead:w,isTeamMember:T,teamPhase:C,detectedBackends:A}=e,I=new Date(k.timestamp).toLocaleTimeString("en-GB",{hour:"2-digit",minute:"2-digit",second:"2-digit"}),D={marginBottom:4,fontSize:s.Z8,fontFamily:s.Rw,lineHeight:1.7};if("user"===k.role)return k.text.startsWith("[From ")&&k.text.length>80?(0,r.jsx)(f,{ts:I,tag:"task",text:k.text,firstLine:k.text.slice(0,80)+"...",isLong:!0}):(0,r.jsxs)("div",{className:"term-msg",style:{...D,marginTop:12,marginBottom:8,borderLeft:"2px solid ".concat(s.KD),padding:"6px 12px"},children:[(0,r.jsx)("span",{className:"term-ts",style:{color:s.Y0,marginRight:6},children:I}),(0,r.jsx)("span",{style:{color:s.DM,opacity:.7},children:"> "}),(0,r.jsx)("span",{style:{color:s.lR,wordBreak:"break-word"},children:(0,c.cE)(k.text)})]});if("system"===k.role){let e=k.text.startsWith("Delegated to "),t=k.text.startsWith("Result from "),n=k.text.startsWith("Task queued "),a=/^(ERROR|error|Error)[:\s]|not found\b|failed\b|limit\b|denied\b/i.test(k.text)&&!e&&!t&&!n,o=k.text.length>80,l=o?k.text.slice(0,80)+"...":k.text;return(0,r.jsx)(f,{ts:I,tag:e?"delegate":t?"result":n?"queued":a?"error":"sys",text:k.text,firstLine:l,isLong:o,isError:a})}let j=k.id.endsWith("-stream"),M=!!((null==(t=k.result)?void 0:t.fullOutput)&&k.result.fullOutput!==k.text&&k.result.fullOutput.length>k.text.length+20),R=k.text.match(/\[PLAN\]([\s\S]*?)\[\/PLAN\]/i),P=null==R||null==(n=R[1])?void 0:n.trim(),O=P?k.text.replace(/\[PLAN\][\s\S]*?\[\/PLAN\]/i,"").trim():null,L=M&&null!=(o=null==(a=k.result)?void 0:a.fullOutput)?o:k.text;if(j)return k.text?(0,r.jsxs)("div",{style:{...D,padding:"2px 0"},children:[(0,r.jsx)("span",{className:"term-ts",style:{color:s.Y0,marginRight:6},children:I}),(0,r.jsx)("span",{style:{color:s.Y0},children:null!=v?v:"agent"}),(0,r.jsx)("div",{style:{marginTop:2,color:s.lR,wordBreak:"break-word"},className:"chat-markdown",children:(0,r.jsx)(m,{text:k.text})})]}):(0,r.jsxs)("div",{style:{...D,padding:"2px 0"},children:[(0,r.jsx)("span",{className:"term-ts",style:{color:s.Y0,marginRight:6},children:I}),(0,r.jsx)("span",{style:{color:s.Y0},children:null!=v?v:"agent"}),(0,r.jsx)("span",{style:{color:s.Y0,marginLeft:8},className:"working-dots",children:(0,r.jsx)("span",{className:"working-dots-mid"})})]});if(w&&k.isFinalResult&&k.result){let e=k.result,t=e.summary.replace(/ENTRY_FILE:\s*.+/gi,"").replace(/PROJECT_DIR:\s*.+/gi,"").replace(/SUMMARY:\s*/gi,"").trim(),n=null!=(g=e.entryFile)?g:null==(d=e.summary.match(/ENTRY_FILE:\s*(.+)/i))||null==(l=d[1])?void 0:l.trim(),a=null!=(b=e.projectDir)?b:null==(p=e.summary.match(/PROJECT_DIR:\s*(.+)/i))||null==(u=p[1])?void 0:u.trim(),o=null!=(x=e.changedFiles)?x:[];return(0,r.jsxs)("div",{className:"term-msg",style:{...D,marginTop:10,borderTop:"1px solid ".concat(s.JH),paddingTop:10},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:6},children:[(0,r.jsx)("span",{className:"term-ts",style:{color:s.Y0},children:I}),(0,r.jsx)("span",{style:{color:s.$C},children:"done"}),k.durationMs&&k.durationMs>1e3&&(0,r.jsx)("span",{style:{color:s.Y0,fontFamily:s.Rw},children:(0,c.a3)(k.durationMs)})]}),(0,r.jsx)("div",{style:{color:s.lR,wordBreak:"break-word"},className:"chat-markdown",children:(0,r.jsx)(m,{text:t||"completed."})}),(a||n)&&(0,r.jsxs)("div",{style:{color:s.Y0,marginTop:4,display:"flex",gap:8,alignItems:"center"},children:[a&&(0,r.jsx)("span",{className:"term-path-scroll",children:a}),n&&(0,r.jsx)("span",{onClick:()=>(0,i.S8)({type:"OPEN_FILE",path:n}),style:{cursor:"pointer",color:s.DM},children:n})]}),o.length>0&&(0,r.jsxs)("div",{style:{color:s.Y0,marginTop:2},children:[o.length," files changed"]}),(0,r.jsxs)("div",{style:{display:"flex",gap:4,marginTop:8},children:[(0,c.P9)(e)&&S&&(0,r.jsx)("button",{className:"term-btn",onClick:()=>{let t=(0,c.iv)(e);t&&(0,i.S8)(t);let n=(0,c.vG)(e);n&&S(n)},style:y,onMouseEnter:e=>{e.currentTarget.style.borderColor=s.KE},onMouseLeave:e=>{e.currentTarget.style.borderColor="".concat(s.KE,"55")},children:"preview"}),!(0,c.P9)(e)&&(0,c.iv)(e)&&(0,r.jsx)("button",{className:"term-btn",onClick:()=>{let t=(0,c.iv)(e);t&&(0,i.S8)(t)},style:y,onMouseEnter:e=>{e.currentTarget.style.borderColor=s.KE},onMouseLeave:e=>{e.currentTarget.style.borderColor="".concat(s.KE,"55")},children:"launch"})]})]})}return(0,r.jsxs)("div",{className:"term-msg",style:{...D,paddingTop:8,marginTop:6},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:4},children:[(0,r.jsx)("span",{className:"term-ts",style:{color:s.Y0},children:I}),(0,r.jsx)("span",{style:{color:s.Y0},children:null!=v?v:"agent"})]}),(0,r.jsxs)("div",{style:{color:s.lR,wordBreak:"break-word"},className:"chat-markdown",children:[P?(0,r.jsxs)(r.Fragment,{children:[O&&(0,r.jsx)("div",{className:"chat-markdown",children:(0,r.jsx)(m,{text:O})}),(0,r.jsxs)("div",{style:{marginTop:6,paddingLeft:12,borderLeft:"2px solid ".concat(s.KD)},children:[(0,r.jsx)("div",{style:{color:s.Y0,marginBottom:4,letterSpacing:"0.04em"},children:"PLAN"}),(0,r.jsx)("div",{className:"chat-markdown",children:(0,r.jsx)(m,{text:P})})]})]}):(0,r.jsx)(m,{text:L}),k.result&&k.result.changedFiles.length>0&&!P&&(0,r.jsxs)("div",{style:{color:s.Y0,marginTop:4},children:[k.result.changedFiles.length," files: ",k.result.changedFiles.slice(0,3).join(", "),k.result.changedFiles.length>3?" +".concat(k.result.changedFiles.length-3):""]}),k.result&&!T&&!w&&((0,c.P9)(k.result)||E&&k.result.changedFiles.length>0)&&(0,r.jsxs)("div",{style:{display:"flex",gap:4,marginTop:8,alignItems:"center"},children:[(0,c.P9)(k.result)&&S&&(0,r.jsx)("button",{className:"term-btn",onClick:()=>{let e=k.result,t=(0,c.iv)(e);t&&(0,i.S8)(t);let n=(0,c.vG)(e);n&&S(n)},style:y,onMouseEnter:e=>{e.currentTarget.style.borderColor=s.KE},onMouseLeave:e=>{e.currentTarget.style.borderColor="".concat(s.KE,"55")},children:"preview"}),E&&k.result.changedFiles.length>0&&(0,r.jsx)(h,{result:k.result,onReview:E,detectedBackends:null!=A?A:[]})]}),k.durationMs&&k.durationMs>1e3&&(0,r.jsx)("div",{style:{color:s.Y0,marginTop:4,fontFamily:s.Rw},children:(0,c.a3)(k.durationMs)})]})]})})},7821:(e,t,n)=>{"use strict";n.d(t,{DY:()=>a,GN:()=>l,OG:()=>o,P5:()=>c,YY:()=>s,eU:()=>i,os:()=>d,yh:()=>u});var r=n(4932);function a(){return{idle:{color:r.Y0,label:"Idle"},working:{color:r.KE,label:"Working..."},waiting_approval:{color:r.O2,label:"Needs Approval"},done:{color:r.$C,label:"Done"},error:{color:r.v_,label:"Error"}}}a();let o=[{key:"creativity",label:"Creativity",icon:"✦"},{key:"visual",label:"Visual",icon:"◈"},{key:"interaction",label:"Interaction",icon:"⚡"},{key:"completeness",label:"Completeness",icon:"●"},{key:"engagement",label:"Engagement",icon:"♥"}],l=[{id:"claude",name:"Claude",color:"#d97706"},{id:"codex",name:"Codex",color:"#a855f7"},{id:"gemini",name:"Gemini",color:"#3b82f6"},{id:"aider",name:"Aider",color:"#22c55e"},{id:"opencode",name:"OpenCode",color:"#06b6d4"}],i=[{label:"Friendly & Casual",value:"You speak in a friendly, casual, encouraging, and natural tone."},{label:"Professional & Concise",value:"You speak formally, professionally, in an organized and concise manner."},{label:"Aggressive & Fast",value:"You are aggressive, action-first, always pursuing speed and efficiency."},{label:"Patient Mentor",value:"You teach patiently, explain the reasoning, and guide like a mentor."}],s=[{category:"academic",label:"Academic",subcategories:[{name:"_root",label:"Academic",agents:[{name:"Anthropologist",desc:"Expert in cultural systems, rituals, kinship, belief systems, and ethnographic method"},{name:"Geographer",desc:"Expert in physical and human geography, climate systems, cartography, and spatial analysis"},{name:"Historian",desc:"Expert in historical analysis, periodization, material culture, and historiography"},{name:"Narratologist",desc:"Expert in narrative theory, story structure, character arcs, and literary analysis"},{name:"Psychologist",desc:"Expert in human behavior, personality theory, motivation, and cognitive patterns"}]}]},{category:"design",label:"Design",subcategories:[{name:"_root",label:"Design",agents:[{name:"Brand Guardian",desc:"Expert brand strategist specializing in brand identity development, consistency"},{name:"Image Prompt Engineer",desc:"Expert photography prompt engineer for crafting detailed AI image generation prompts"},{name:"Inclusive Visuals Specialist",desc:"Representation expert defeating systemic AI biases for culturally accurate visuals"},{name:"UI Designer",desc:"Expert UI designer specializing in visual design systems, component libraries"},{name:"UX Architect",desc:"Technical architecture and UX specialist providing developers with solid foundations"},{name:"UX Researcher",desc:"Expert user experience researcher in user behavior analysis, usability testing"},{name:"Visual Storyteller",desc:"Expert visual communication specialist creating compelling visual narratives"},{name:"Whimsy Injector",desc:"Expert creative specialist adding personality, delight, and playful elements to brands"}]}]},{category:"engineering",label:"Engineering",subcategories:[{name:"_root",label:"Engineering",agents:[{name:"AI Data Remediation Engineer",desc:"Specialist in self-healing data pipelines using air-gapped local SLMs and semantic clustering"},{name:"AI Engineer",desc:"Expert AI/ML engineer in machine learning model development, deployment, integration"},{name:"Autonomous Optimization Architect",desc:"Intelligent system governor that shadow-tests APIs for performance optimization"},{name:"Backend Architect",desc:"Senior backend architect in scalable system design, database architecture, APIs"},{name:"Data Engineer",desc:"Expert data engineer building reliable data pipelines, lakehouse architectures"},{name:"Database Optimizer",desc:"Expert database specialist in schema design, query optimization, indexing strategies"},{name:"DevOps Automator",desc:"Expert DevOps engineer in infrastructure automation, CI/CD pipeline development"},{name:"Embedded Firmware Engineer",desc:"Specialist in bare-metal and RTOS firmware - ESP32/ESP-IDF, PlatformIO, Arduino, ARM"},{name:"Feishu Integration Developer",desc:"Full-stack integration expert for the Feishu (Lark) Open Platform"},{name:"Frontend Developer",desc:"Expert frontend developer in modern web technologies, React/Vue/Angular frameworks"},{name:"Git Workflow Master",desc:"Expert in Git workflows, branching strategies, and version control best practices"},{name:"Incident Response Commander",desc:"Expert incident commander in production incident management, structured response"},{name:"Mobile App Builder",desc:"Specialized mobile app developer with native iOS/Android and cross-platform expertise"},{name:"Rapid Prototyper",desc:"Specialized in ultra-fast proof-of-concept development and MVP creation"},{name:"Security Engineer",desc:"Expert application security engineer in threat modeling, vulnerability assessment"},{name:"Senior Developer",desc:"Premium implementation specialist - Laravel/Livewire/FluxUI, advanced CSS, Three.js"},{name:"Software Architect",desc:"Expert software architect in system design, domain-driven design, architectural patterns"},{name:"Solidity Smart Contract Engineer",desc:"Expert Solidity developer in EVM smart contract architecture, gas optimization"},{name:"SRE (Site Reliability Engineer)",desc:"Expert site reliability engineer in SLOs, error budgets, observability, chaos engineering"},{name:"Technical Writer",desc:"Expert technical writer in developer documentation, API references, README files"},{name:"Threat Detection Engineer",desc:"Expert detection engineer in SIEM rule development, MITRE ATT&CK coverage mapping"},{name:"WeChat Mini Program Developer",desc:"Expert WeChat Mini Program developer in WXML/WXSS/WXS, WeChat API integration"}]}]},{category:"game-development",label:"Game Dev",subcategories:[{name:"_root",label:"Cross-Engine",agents:[{name:"Game Audio Engineer",desc:"Interactive audio specialist - FMOD/Wwise integration, adaptive music, spatial audio"},{name:"Game Designer",desc:"Systems and mechanics architect - GDD authorship, player psychology, economy balancing"},{name:"Level Designer",desc:"Spatial storytelling and flow specialist - layout theory, pacing, encounter design"},{name:"Narrative Designer",desc:"Story systems and dialogue architect - branching dialogue, lore, environmental storytelling"},{name:"Technical Artist",desc:"Art-to-engine pipeline specialist - shaders, VFX systems, LOD pipelines, performance"}]},{name:"blender",label:"Blender",agents:[{name:"Blender Add-on Engineer",desc:"Blender tooling specialist - Python add-ons, asset validators, exporters, pipeline automation"}]},{name:"godot",label:"Godot",agents:[{name:"Godot Gameplay Scripter",desc:"Composition and signal integrity specialist - GDScript 2.0, C# integration, node-based arch"},{name:"Godot Multiplayer Engineer",desc:"Godot 4 networking specialist - MultiplayerAPI, scene replication, ENet/WebRTC transport"},{name:"Godot Shader Developer",desc:"Godot 4 visual effects specialist - Godot Shading Language (GLSL-like), VisualShader editor"}]},{name:"roblox-studio",label:"Roblox Studio",agents:[{name:"Roblox Avatar Creator",desc:"Roblox UGC and avatar pipeline specialist - avatar system, UGC item creation, accessories"},{name:"Roblox Experience Designer",desc:"Roblox platform UX and monetization specialist - engagement loops, DataStore-driven progress"},{name:"Roblox Systems Scripter",desc:"Roblox platform engineering specialist - Luau, client-server security, RemoteEvents"}]},{name:"unity",label:"Unity",agents:[{name:"Unity Architect",desc:"Data-driven modularity specialist - ScriptableObjects, decoupled systems, clean architecture"},{name:"Unity Editor Tool Developer",desc:"Unity editor automation specialist - custom EditorWindows, PropertyDrawers, AssetPostprocess"},{name:"Unity Multiplayer Engineer",desc:"Networked gameplay specialist - Netcode for GameObjects, Unity Gaming Services (Relay/Lobby)"},{name:"Unity Shader Graph Artist",desc:"Visual effects and material specialist - Unity Shader Graph, HLSL, URP/HDRP rendering"}]},{name:"unreal-engine",label:"Unreal Engine",agents:[{name:"Unreal Multiplayer Architect",desc:"Unreal Engine networking specialist - Actor replication, GameMode/GameState architecture"},{name:"Unreal Systems Engineer",desc:"Performance and hybrid architecture specialist - C++/Blueprint continuum, Nanite, Lumen"},{name:"Unreal Technical Artist",desc:"Unreal Engine visual pipeline specialist - Material Editor, Niagara VFX, Procedural Content"},{name:"Unreal World Builder",desc:"Open-world and environment specialist - UE5 World Partition, Landscape, procedural foliage"}]}]},{category:"marketing",label:"Marketing",subcategories:[{name:"_root",label:"Marketing",agents:[{name:"AI Citation Strategist",desc:"Expert in AI recommendation engine optimization (AEO/GEO) — audits brand visibility"},{name:"App Store Optimizer",desc:"Expert app store marketing specialist focused on ASO, conversion rate optimization"},{name:"Baidu SEO Specialist",desc:"Expert Baidu search optimization specialist for Chinese search engine ranking"},{name:"Bilibili Content Strategist",desc:"Expert Bilibili marketing specialist focused on UP主 growth, danmaku culture mastery"},{name:"Book Co-Author",desc:"Strategic thought-leadership book collaborator for founders, experts, and operators"},{name:"Carousel Growth Engine",desc:"Autonomous TikTok and Instagram carousel generation specialist via URL analysis"},{name:"China E-Commerce Operator",desc:"Expert China e-commerce specialist covering Taobao, Tmall, Pinduoduo, JD ecosystems"},{name:"Content Creator",desc:"Expert content strategist and creator for multi-platform campaigns, editorial calendars"},{name:"Cross-Border E-Commerce Specialist",desc:"Full-funnel cross-border e-commerce strategist covering Amazon, Shopee, Lazada, AliExpress"},{name:"Douyin Strategist",desc:"Short-video marketing expert specializing in the Douyin platform, recommendation algo"},{name:"Growth Hacker",desc:"Expert growth strategist in rapid user acquisition through data-driven experimentation"},{name:"Instagram Curator",desc:"Expert Instagram marketing specialist in visual storytelling, community building"},{name:"Kuaishou Strategist",desc:"Expert Kuaishou marketing strategist for short-video content in China's lower-tier cities"},{name:"LinkedIn Content Creator",desc:"Expert LinkedIn content strategist focused on thought leadership, personal brand building"},{name:"Livestream Commerce Coach",desc:"Veteran livestream e-commerce coach specializing in host training, live room operations"},{name:"Podcast Strategist",desc:"Content strategy and operations expert for the Chinese podcast market"},{name:"Private Domain Operator",desc:"Expert in building enterprise WeChat (WeCom) private domain ecosystems, SCRM"},{name:"Reddit Community Builder",desc:"Expert Reddit marketing specialist in authentic community engagement, value-driven content"},{name:"SEO Specialist",desc:"Expert search engine optimization strategist in technical SEO, content optimization"},{name:"Short-Video Editing Coach",desc:"Hands-on short-video editing coach covering full post-production pipeline, CapCut mastery"},{name:"Social Media Strategist",desc:"Expert social media strategist for LinkedIn, Twitter, and professional platforms"},{name:"TikTok Strategist",desc:"Expert TikTok marketing specialist in viral content creation, algorithm optimization"},{name:"Twitter Engager",desc:"Expert Twitter marketing specialist in real-time engagement, thought leadership"},{name:"WeChat Official Account Manager",desc:"Expert WeChat Official Account strategist in content marketing, subscriber engagement"},{name:"Weibo Strategist",desc:"Full-spectrum operations expert for Sina Weibo, trending topic mechanics, SuperFans"},{name:"Xiaohongshu Specialist",desc:"Expert Xiaohongshu marketing specialist in lifestyle content, trend-driven strategies"},{name:"Zhihu Strategist",desc:"Expert Zhihu marketing specialist in thought leadership, community credibility"}]}]},{category:"paid-media",label:"Paid Media",subcategories:[{name:"_root",label:"Paid Media",agents:[{name:"Paid Media Auditor",desc:"Comprehensive paid media auditor evaluating Google Ads, Microsoft Ads, Meta accounts"},{name:"Ad Creative Strategist",desc:"Paid media creative specialist in ad copywriting, RSA optimization, asset group design"},{name:"Paid Social Strategist",desc:"Cross-platform paid social advertising specialist covering Meta, LinkedIn, TikTok"},{name:"PPC Campaign Strategist",desc:"Senior paid media strategist in large-scale search, shopping, and performance max campaigns"},{name:"Programmatic & Display Buyer",desc:"Display advertising and programmatic media buying specialist covering managed placements"},{name:"Search Query Analyst",desc:"Specialist in search term analysis, negative keyword architecture, query-to-intent mapping"},{name:"Tracking & Measurement Specialist",desc:"Expert in conversion tracking architecture, tag management, attribution modeling"}]}]},{category:"product",label:"Product",subcategories:[{name:"_root",label:"Product",agents:[{name:"Behavioral Nudge Engine",desc:"Behavioral psychology specialist adapting software interaction cadences for user engagement"},{name:"Feedback Synthesizer",desc:"Expert in collecting, analyzing, and synthesizing user feedback from multiple channels"},{name:"Product Manager",desc:"Holistic product leader owning full product lifecycle — discovery through go-to-market"},{name:"Sprint Prioritizer",desc:"Expert product manager in agile sprint planning, feature prioritization, resource allocation"},{name:"Trend Researcher",desc:"Expert market intelligence analyst in emerging trends, competitive analysis"}]}]},{category:"project-management",label:"Project Mgmt",subcategories:[{name:"_root",label:"Project Mgmt",agents:[{name:"Experiment Tracker",desc:"Expert project manager in experiment design, execution tracking, data-driven decisions"},{name:"Jira Workflow Steward",desc:"Expert delivery operations specialist enforcing Jira-linked Git workflows, traceable commits"},{name:"Project Shepherd",desc:"Expert project manager in cross-functional project coordination, timeline management"},{name:"Studio Operations",desc:"Expert operations manager in day-to-day studio efficiency, process optimization"},{name:"Studio Producer",desc:"Senior strategic leader in high-level creative and technical project orchestration"},{name:"Senior Project Manager",desc:"Converts specs to tasks, remembers previous projects. Focused on realistic scope"}]}]},{category:"sales",label:"Sales",subcategories:[{name:"_root",label:"Sales",agents:[{name:"Account Strategist",desc:"Expert post-sale account strategist in land-and-expand execution, stakeholder mapping"},{name:"Sales Coach",desc:"Expert sales coaching specialist in rep development, pipeline review, call coaching"},{name:"Deal Strategist",desc:"Senior deal strategist in MEDDPICC qualification, competitive positioning, win planning"},{name:"Discovery Coach",desc:"Coaches sales teams on elite discovery methodology — question design, gap quantification"},{name:"Sales Engineer",desc:"Senior pre-sales engineer in technical discovery, demo engineering, POC scoping"},{name:"Outbound Strategist",desc:"Signal-based outbound specialist designing multi-channel prospecting sequences, ICP"},{name:"Pipeline Analyst",desc:"Revenue operations analyst in pipeline health diagnostics, deal velocity analysis"},{name:"Proposal Strategist",desc:"Strategic proposal architect transforming RFPs into compelling win narratives"}]}]},{category:"spatial-computing",label:"Spatial Computing",subcategories:[{name:"_root",label:"Spatial Computing",agents:[{name:"macOS Spatial/Metal Engineer",desc:"Native Swift and Metal specialist building high-performance 3D rendering systems"},{name:"Terminal Integration Specialist",desc:"Terminal emulation, text rendering optimization, SwiftTerm integration for modern Swift"},{name:"visionOS Spatial Engineer",desc:"Native visionOS spatial computing, SwiftUI volumetric interfaces, Liquid Glass design"},{name:"XR Cockpit Interaction Specialist",desc:"Specialist in designing immersive cockpit-based control systems for XR environments"},{name:"XR Immersive Developer",desc:"Expert WebXR and immersive technology developer in browser-based AR/VR/XR applications"},{name:"XR Interface Architect",desc:"Spatial interaction designer and interface strategist for immersive AR/VR/XR environments"}]}]},{category:"specialized",label:"Specialized",subcategories:[{name:"_root",label:"Specialized",agents:[{name:"Accounts Payable Agent",desc:"Autonomous payment processing specialist executing vendor payments, contractor invoices"},{name:"Agentic Identity & Trust Architect",desc:"Designs identity, authentication, and trust verification systems for autonomous AI agents"},{name:"Agents Orchestrator",desc:"Autonomous pipeline manager orchestrating the entire development workflow"},{name:"Automation Governance Architect",desc:"Governance-first architect for business automations (n8n-first) auditing value and risk"},{name:"Blockchain Security Auditor",desc:"Expert smart contract security auditor in vulnerability detection, formal verification"},{name:"Compliance Auditor",desc:"Expert technical compliance auditor in SOC 2, ISO 27001, HIPAA, PCI-DSS audits"},{name:"Corporate Training Designer",desc:"Expert in enterprise training system design and curriculum development"},{name:"Cultural Intelligence Strategist",desc:"CQ specialist detecting invisible exclusion, researching global context for inclusive software"},{name:"Data Consolidation Agent",desc:"AI agent consolidating extracted sales data into live reporting dashboards"},{name:"Developer Advocate",desc:"Expert developer advocate building developer communities, creating technical content"},{name:"Document Generator",desc:"Expert document creation specialist generating professional PDF, PPTX, DOCX, XLSX files"},{name:"French Consulting Market Navigator",desc:"Navigate the French ESN/SI freelance ecosystem — margin models, platform mechanics"},{name:"Government Digital Presales Consultant",desc:"Presales expert for China's government digital transformation market (ToG)"},{name:"Healthcare Marketing Compliance Specialist",desc:"Expert in healthcare marketing compliance in China, Advertising Law, Medical Advertising"},{name:"Identity Graph Operator",desc:"Operates a shared identity graph that multiple AI agents resolve against"},{name:"Korean Business Navigator",desc:"Korean business culture for foreign professionals — decision process, nunchi reading"},{name:"LSP/Index Engineer",desc:"Language Server Protocol specialist building unified code intelligence systems"},{name:"MCP Builder",desc:"Expert Model Context Protocol developer who designs, builds, and tests MCP servers"},{name:"Model QA Specialist",desc:"Independent model QA expert auditing ML and statistical models end-to-end"},{name:"Recruitment Specialist",desc:"Expert recruitment operations and talent acquisition specialist"},{name:"Report Distribution Agent",desc:"AI agent automating distribution of consolidated sales reports to representatives"},{name:"Sales Data Extraction Agent",desc:"AI agent specialized in monitoring Excel files and extracting key sales metrics"},{name:"Salesforce Architect",desc:"Solution architecture for Salesforce platform — multi-cloud design, integration patterns"},{name:"Study Abroad Advisor",desc:"Full-spectrum study abroad planning expert covering US, UK, Canada, Australia, Europe"},{name:"Supply Chain Strategist",desc:"Expert supply chain management and procurement strategy specialist"},{name:"Workflow Architect",desc:"Workflow design specialist mapping complete workflow trees for every system and journey"},{name:"ZK Steward",desc:"Knowledge-base steward in the spirit of Niklas Luhmann's Zettelkasten"}]}]},{category:"support",label:"Support & Ops",subcategories:[{name:"_root",label:"Support & Ops",agents:[{name:"Analytics Reporter",desc:"Expert data analyst transforming raw data into actionable business insights, dashboards"},{name:"Executive Summary Generator",desc:"Consultant-grade AI specialist communicating like a senior strategy consultant"},{name:"Finance Tracker",desc:"Expert financial analyst in financial planning, budget management, cash flow optimization"},{name:"Infrastructure Maintainer",desc:"Expert infrastructure specialist in system reliability, performance optimization"},{name:"Legal Compliance Checker",desc:"Expert legal and compliance specialist ensuring business operations meet regulations"},{name:"Support Responder",desc:"Expert customer support specialist delivering exceptional service, issue resolution"}]}]},{category:"testing",label:"Testing & QA",subcategories:[{name:"_root",label:"Testing & QA",agents:[{name:"Accessibility Auditor",desc:"Expert accessibility specialist auditing interfaces against WCAG standards"},{name:"API Tester",desc:"Expert API testing specialist in comprehensive API validation, performance testing"},{name:"Evidence Collector",desc:"Screenshot-obsessed, fantasy-allergic QA specialist - finds 3-5 issues, requires visual proof"},{name:"Performance Benchmarker",desc:"Expert performance testing specialist in measuring, analyzing, and improving systems"},{name:"Reality Checker",desc:"Stops fantasy approvals, evidence-based certification - defaults to NEEDS WORK"},{name:"Test Results Analyzer",desc:"Expert test analysis specialist in comprehensive test result evaluation, quality metrics"},{name:"Tool Evaluator",desc:"Expert technology assessment specialist evaluating, testing, and recommending tools"},{name:"Workflow Optimizer",desc:"Expert process improvement specialist analyzing, optimizing, and automating workflows"}]}]}],c=new Map;for(let e of s)for(let t of e.subcategories)for(let e of t.agents)c.set(e.name,e.desc);let d=s.flatMap(e=>e.subcategories.flatMap(e=>e.agents.map(e=>e.name))),u={};for(let e of s)for(let t of e.subcategories)for(let e of t.agents)u[e.name]=e.desc.split(/[,/]/).map(e=>e.trim()).filter(e=>e.length>2&&e.length<30).slice(0,8)},7877:(e,t,n)=>{"use strict";n.d(t,{$$:()=>i,$5:()=>u,P9:()=>g,a3:()=>y,ap:()=>h,cE:()=>function e(t){let n;if("string"!=typeof t)return Array.isArray(t)?t.map((t,n)=>"string"==typeof t?e(t):t):t;let o=[];for(s.lastIndex=0;null!==(n=s.exec(t));)o.push({start:n.index,end:n.index+n[0].length,url:n[0],type:"url"});for(c.lastIndex=0;null!==(n=c.exec(t));){let e=n[1],t=n.index+n[0].indexOf(e);o.some(e=>t>=e.start&&t<e.end)||o.push({start:t,end:t+e.length,url:e,type:"file"})}if(0===o.length)return t;o.sort((e,t)=>e.start-t.start);let i=[],d=0;for(let e of o)e.start>d&&i.push(t.slice(d,e.start)),"url"===e.type?i.push(r.createElement("a",{key:e.start,href:e.url,target:"_blank",rel:"noopener noreferrer",style:{color:l.lR}},e.url)):i.push(r.createElement("span",{key:e.start,onClick:()=>(0,a.S8)({type:"OPEN_FILE",path:e.url}),style:{color:l.lR,cursor:"pointer"},title:"Click to open"},e.url)),d=e.end;return d<t.length&&i.push(t.slice(d)),i},iv:()=>f,vG:()=>p});var r=n(1406),a=n(5192),o=n(5149),l=n(4932);function i(e){return"Enter"===e.key&&!e.shiftKey&&!e.ctrlKey&&!e.nativeEvent.isComposing&&229!==e.keyCode}let s=/https?:\/\/[^\s)>\]]+/g,c=/(?:^|\s)(\/[\w./-]+\.\w+)/g;function d(){return(0,o.getGatewayHttpUrl)().replace(/\/$/,"")}function u(e){let t=d();return/^https?:\/\/(?:localhost|127\.0\.0\.1):9198(?:\/|$|\?|#)/.test(e)?e.replace(/^https?:\/\/(?:localhost|127\.0\.0\.1):9198/,"".concat(t,"/preview-app")):/^https?:\/\/(?:localhost|127\.0\.0\.1):9199(?:\/|$|\?|#)/.test(e)?e.replace(/^https?:\/\/(?:localhost|127\.0\.0\.1):9199/,"".concat(t,"/preview-static")):e}function p(e){let t=d();return e.previewUrl?u(e.previewUrl):e.previewCmd&&e.previewPort?"".concat(t,"/preview-app"):e.previewPath?"".concat(t,"/preview-static/").concat(e.previewPath.split("/").pop()):e.entryFile&&/\.html?$/i.test(e.entryFile)?"".concat(t,"/preview-static/").concat(e.entryFile.split("/").pop()):void 0}function g(e){return!!(e.previewUrl||e.previewCmd&&e.previewPort||e.previewPath||e.entryFile&&/\.html?$/i.test(e.entryFile))}function m(e){if(e)return e.replace(/\*\*/g,"").replace(/`/g,"").replace(/^_+|_+$/g,"").trim()||void 0}function f(e){let t=m(e.previewCmd),n=m(e.entryFile),r=m(e.previewPath);return t&&e.previewPort?{type:"SERVE_PREVIEW",previewCmd:t,previewPort:e.previewPort,cwd:e.projectDir}:r?{type:"SERVE_PREVIEW",filePath:r}:n&&/\.html?$/i.test(n)&&e.projectDir?{type:"SERVE_PREVIEW",filePath:e.projectDir+"/"+n}:t?{type:"SERVE_PREVIEW",previewCmd:t,cwd:e.projectDir}:n&&!/\.html?$/i.test(n)?{type:"SERVE_PREVIEW",previewCmd:n,cwd:e.projectDir}:null}function h(e){return e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"k":String(e)}let b=["Brewed","Crafted","Forged","Compiled","Shipped","Deployed","Hacked","Rendered","Built","Cooked"];function y(e){let t=b[Math.floor(e/1e3)%b.length],n=Math.floor(e/1e3);if(n<60)return"".concat(t," in ").concat(n,"s");let r=Math.floor(n/60);return"".concat(t," for ").concat(r,"m ").concat(n%60,"s")}},9385:(e,t,n)=>{"use strict";n.d(t,{cn:()=>o});var r=n(5230),a=n(2501);function o(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,a.QP)((0,r.$)(t))}},9631:(e,t,n)=>{"use strict";n.d(t,{AI:()=>s,CW:()=>d,Co:()=>i,MB:()=>l,Pg:()=>c,kr:()=>u});var r=n(5195),a=n(9892),o=n(1661);function l(e){let t=[];for(let n=0;n<e.rows;n++){let r=[];for(let t=0;t<e.cols;t++)r.push(e.tiles[n*e.cols+t]);t.push(r)}return t}function i(e){let t=new Map;for(let n of e){let e=(0,a.Um)(n.type);if(!e||!e.isDesk)continue;let o=n.row*r.dn+e.sprite.length;for(let r=0;r<e.footprintH;r++)for(let a=0;a<e.footprintW;a++){let e="".concat(n.col+a,",").concat(n.row+r),l=t.get(e);(void 0===l||o>l)&&t.set(e,o)}}let n=[];for(let l of e){let e=(0,a.Um)(l.type);if(!e||l.uid.startsWith("obj-"))continue;let i=l.col*r.dn,s=l.row*r.dn,c=s+e.sprite.length;if(e.backgroundTiles&&e.backgroundTiles>=e.footprintH?c=s:"chairs"===e.category&&(c="back"===e.orientation?(l.row+1)*r.dn+1:(l.row+e.footprintH)*r.dn),e.canPlaceOnSurfaces)for(let n=0;n<e.footprintH;n++)for(let r=0;r<e.footprintW;r++){let e=t.get("".concat(l.col+r,",").concat(l.row+n));void 0!==e&&e+.5>c&&(c=e+.5)}let d=e.sprite;if(l.color){let{h:t,s:n,b:r,c:a}=l.color;d=(0,o.LN)("furn-".concat(l.type,"-").concat(t,"-").concat(n,"-").concat(r,"-").concat(a,"-").concat(+!!l.color.colorize),e.sprite,l.color)}n.push({sprite:d,x:i,y:s,zY:c})}return n}function s(e,t){let n=new Set;for(let r of e){let e=(0,a.Um)(r.type);if(!e)continue;let o=e.backgroundTiles||0;for(let a=0;a<e.footprintH;a++)if(!(a<o))for(let o=0;o<e.footprintW;o++){let e="".concat(r.col+o,",").concat(r.row+a);t&&t.has(e)||n.add(e)}}return n}function c(e,t){return s(t?e.filter(e=>e.uid!==t):e)}function d(e){let t=new Map,n=new Map;for(let t of e){let e=(0,a.Um)(t.type);if(e&&e.isDesk)for(let r=0;r<e.footprintH;r++)for(let a=0;a<e.footprintW;a++)n.set("".concat(t.col+a,",").concat(t.row+r),t)}let o=new Map;for(let t of e){let e=(0,a.Um)(t.type);if(e&&"chairs"===e.category)for(let n=0;n<e.footprintH;n++)for(let a=0;a<e.footprintW;a++){let l="".concat(t.col+a,",").concat(t.row+n),i=e.orientation?function(e){switch(e){case"front":default:return r.OP.DOWN;case"back":return r.OP.UP;case"left":return r.OP.LEFT;case"right":return r.OP.RIGHT}}(e.orientation):r.OP.DOWN;o.set(l,{item:t,facing:i})}}let l=new Set,i=new Set;for(let[e,a]of n){if(i.has(a.uid))continue;let[n,s]=e.split(","),c=parseInt(n),d=parseInt(s),u=null;for(let e=1;e<=3&&!u;e++)for(let t of[{dc:0,dr:-e,facingDesk:r.OP.DOWN},{dc:0,dr:e,facingDesk:r.OP.UP},{dc:-e,dr:0,facingDesk:r.OP.RIGHT},{dc:e,dr:0,facingDesk:r.OP.LEFT}]){let n="".concat(c+t.dc,",").concat(d+t.dr),r=o.get(n);if(r&&!l.has(n)){u={key:n,item:r.item,facing:r.facing,facingDesk:t.facingDesk,dist:e};break}}u?(l.add(u.key),t.set(u.item.uid,{uid:u.item.uid,seatCol:u.item.col,seatRow:u.item.row,facingDir:u.facingDesk,assigned:!1})):t.set(a.uid,{uid:a.uid,seatCol:c,seatRow:d,facingDir:r.OP.DOWN,assigned:!1}),i.add(a.uid)}for(let[e,n]of o)l.has(e)||t.set(n.item.uid+":rest",{uid:n.item.uid+":rest",seatCol:n.item.col,seatRow:n.item.row,facingDir:n.facing,assigned:!1,isRest:!0});return t}function u(){let e=r.wh,t=r.YK,n=r.nb.WALL,a=r.nb.FLOOR_1;r.nb.VOID;let o=[],l=[],i={h:195,s:10,b:18,c:0};for(let r=0;r<t;r++)for(let s=0;s<e;s++){let c=0===r||r===t-1||0===s||s===e-1?n:a;o.push(c),l.push(c===a?i:null)}let s=[],c=0,d=[3,7,11,15];for(let e of[2,6,10,14])for(let t of d)c++,s.push({uid:"desk-".concat(c),type:r.JM.DESK,col:t,row:e}),s.push({uid:"ch-".concat(c),type:r.JM.CHAIR,col:t,row:e+2});return s.push({uid:"plant-1",type:r.JM.PLANT,col:1,row:1}),s.push({uid:"plant-2",type:r.JM.PLANT,col:19,row:1}),s.push({uid:"plant-3",type:r.JM.PLANT,col:1,row:19}),s.push({uid:"plant-4",type:r.JM.PLANT,col:19,row:19}),s.push({uid:"shelf-1",type:r.JM.BOOKSHELF,col:1,row:9}),s.push({uid:"shelf-2",type:r.JM.BOOKSHELF,col:19,row:9}),s.push({uid:"cooler-1",type:r.JM.COOLER,col:10,row:19}),s.push({uid:"wb-1",type:r.JM.WHITEBOARD,col:9,row:1}),{version:1,cols:e,rows:t,tiles:o,tileColors:l,furniture:s}}},9892:(e,t,n)=>{"use strict";n.d(t,{F$:()=>y,UV:()=>f,Um:()=>g,ZZ:()=>h,Ze:()=>x,Zl:()=>b,ar:()=>p,hS:()=>l,xr:()=>m});var r=n(5195),a=n(2988),o=n(4296);let l=[{type:r.JM.DESK,label:"Desk",footprintW:2,footprintH:2,sprite:a.US,isDesk:!0,category:"desks"},{type:r.JM.BOOKSHELF,label:"Bookshelf",footprintW:1,footprintH:2,sprite:a.iK,isDesk:!1,category:"storage"},{type:r.JM.PLANT,label:"Plant",footprintW:1,footprintH:1,sprite:a.WN,isDesk:!1,category:"decor"},{type:r.JM.COOLER,label:"Cooler",footprintW:1,footprintH:1,sprite:a.L$,isDesk:!1,category:"misc"},{type:r.JM.WHITEBOARD,label:"Whiteboard",footprintW:2,footprintH:1,sprite:a.SJ,isDesk:!1,category:"decor"},{type:r.JM.CHAIR,label:"Chair",footprintW:1,footprintH:1,sprite:a.mr,isDesk:!1,category:"chairs"},{type:r.JM.PC,label:"PC",footprintW:1,footprintH:1,sprite:a.mY,isDesk:!1,category:"electronics"},{type:r.JM.LAMP,label:"Lamp",footprintW:1,footprintH:1,sprite:a.Zc,isDesk:!1,category:"decor"}],i=[{id:"desks",label:"Desks"},{id:"chairs",label:"Chairs"},{id:"storage",label:"Storage"},{id:"electronics",label:"Tech"},{id:"decor",label:"Decor"},{id:"wall",label:"Wall"},{id:"misc",label:"Misc"}],s=new Map,c=new Map,d=new Map,u=new Map;function p(e){for(let r of o.Q){var t,n;let a=e.get(r.id);if(!a)continue;let o=l.findIndex(e=>e.type===r.id),i=(t=r,n=a,{type:t.id,label:t.label,footprintW:t.footprintW,footprintH:t.footprintH,sprite:n,isDesk:t.isDesk,category:t.category,canPlaceOnSurfaces:t.canPlaceOnSurfaces,backgroundTiles:t.backgroundTiles,canPlaceOnWalls:t.canPlaceOnWalls,...t.orientation?{orientation:t.orientation}:{}});o>=0?l[o]=i:l.push(i)}let r=new Map;for(let e of o.Q)if(e.groupId&&e.orientation){if(e.state&&"off"!==e.state)continue;let t=r.get(e.groupId);t||(t=new Map,r.set(e.groupId,t)),t.set(e.orientation,e.id)}let a=["front","right","back","left"];for(let e of r.values()){if(e.size<2)continue;let t=a.filter(t=>e.has(t));if(t.length<2)continue;let n={};for(let r of t)n[r]=e.get(r);let r={orientations:t,members:n};for(let e of Object.values(n))s.set(e,r)}let i=new Map;for(let e of o.Q)if(e.groupId&&e.state){let t="".concat(e.groupId,"|").concat(e.orientation||""),n=i.get(t);n||(n=new Map,i.set(t,n)),n.set(e.state,e.id)}for(let e of i.values()){let t=e.get("on"),n=e.get("off");t&&n&&(c.set(t,n),c.set(n,t),d.set(n,t),u.set(t,n))}for(let e of o.Q)if(e.groupId&&e.orientation&&"on"===e.state){let t=c.get(e.id);if(t){let e=s.get(t);if(e){let t={};for(let n of e.orientations){let r=e.members[n],a=c.get(r);t[n]=null!=a?a:r}let n={orientations:e.orientations,members:t};for(let e of Object.values(t))s.has(e)||s.set(e,n)}}}}function g(e){return l.find(t=>t.type===e)}function m(e){var t;return null!=(t=d.get(e))?t:e}function f(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"cw",n=s.get(e);if(!n)return null;let r=n.orientations.map(e=>n.members[e]),a=r.indexOf(e);if(-1===a)return null;let o=(a+("cw"===t?1:-1)+r.length)%r.length;return r[o]}function h(e){return s.has(e)}function b(e){return l.filter(t=>t.category===e)}function y(e){for(let[n,r]of e){let e=l.findIndex(e=>e.type===n);var t=r.tag;let a=(null!=t?t:"").toLowerCase().trim();"desk"===a||"table"===a||"chair"===a||"seat"===a||a.includes("sofa")||a.includes("couch");let o={type:n,label:r.label,footprintW:r.footprintW,footprintH:r.footprintH,sprite:r.sprite,isDesk:!1,category:"decor"};e>=0?l[e]=o:l.push(o)}}function x(){let e=new Set;for(let t of l)t.category&&e.add(t.category);return i.filter(t=>e.has(t.id))}}},e=>{e.O(0,[276,689,235,388,358],()=>e(e.s=3423)),_N_E=e.O()}]);