@vheins/local-memory-mcp 0.14.0 → 0.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -81,8 +81,8 @@ function loadServerInstructions() {
|
|
|
81
81
|
// src/mcp/capabilities.ts
|
|
82
82
|
var __dirname2 = path2.dirname(fileURLToPath2(import.meta.url));
|
|
83
83
|
var pkgVersion = "0.1.0";
|
|
84
|
-
if ("0.14.
|
|
85
|
-
pkgVersion = "0.14.
|
|
84
|
+
if ("0.14.2") {
|
|
85
|
+
pkgVersion = "0.14.2";
|
|
86
86
|
} else {
|
|
87
87
|
let searchDir = __dirname2;
|
|
88
88
|
for (let i = 0; i < 5; i++) {
|
|
@@ -83,5 +83,5 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
83
83
|
opacity: ${s-u*t}
|
|
84
84
|
`}}var dS={memories:`title,type,content,importance
|
|
85
85
|
Example Memory,fact,This is an example memory content,3`,tasks:`task_code,title,phase,description,status,priority
|
|
86
|
-
TSK-001,Example Task,Phase 1,Example task description,backlog,3`};function fS(e){let t=M(null),n=M([]),r=M([]),i=M(``),a=M(``),o=M(!1),s=M(!1);function c(){t.set(null),n.set([]),r.set([]),i.set(``),a.set(``),o.set(!1)}function l(){s.set(!1),c(),e.onClose&&e.onClose()}function u(){s.set(!0)}function d(e){let t=e.split(/\r?\n/).filter(e=>e.trim()!==``);if(t.length===0)return{headers:[],rows:[]};let n=e=>{let t=[],n=``,r=!1;for(let i=0;i<e.length;i++){let a=e[i];a===`"`&&e[i+1]===`"`?(n+=`"`,i++):a===`"`?r=!r:a===`,`&&!r?(t.push(n.trim()),n=``):n+=a}return t.push(n.trim()),t},r=n(t[0]).filter(e=>e!==``);return{headers:r,rows:t.slice(1).map(n).map(e=>{let t={};return r.forEach((n,r)=>{let i=n.toLowerCase().replace(/[^a-z0-9_]/g,`_`);t[i]=e[r]}),t})}}function f(e){if(a.set(``),!e.name.endsWith(`.csv`)){a.set(`Please select a valid .csv file.`);return}t.set(e),i.set(e.name);let o=new FileReader;o.onload=e=>{let t=e.target?.result,i=d(t);r.set(i.headers),n.set(i.rows),i.rows.length===0&&a.set(`CSV file appears to be empty or missing headers.`)},o.readAsText(e)}function p(e){let t=e.target.files?.[0];t&&f(t)}function m(e){e.preventDefault();let t=e.dataTransfer?.files?.[0];t&&f(t)}function h(){let t=dS[e.importTarget],n=new Blob([t],{type:`text/csv;charset=utf-8;`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.setAttribute(`href`,r),i.setAttribute(`download`,`example_${e.importTarget}.csv`),i.style.visibility=`hidden`,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function g(){let t=[];if(n.subscribe(e=>t=e)(),a.set(``),t.length===0){a.set(`No data to import.`);return}o.set(!0);try{let n=0;n=e.importTarget===`memories`?(await Z.bulkImportMemories(e.repo,t)).count:(await Z.bulkImportTasks(e.repo,t)).count,alert(`Imported ${n} ${e.importTarget} successfully.`),e.onSuccess&&e.onSuccess(),l()}catch(e){a.set(e instanceof Error?e.message:`Import failed`)}finally{o.set(!1)}}return{file:t,csvData:n,headers:r,fileName:i,errorMsg:a,isSubmitting:o,isOpen:s,open:u,close:l,handleFileSelect:p,handleFileDrop:m,downloadExample:h,handleImport:g,setFile:e=>t.set(e),setCsvData:e=>n.set(e)}}var pS=K(`<div class="drop-zone svelte-lenod"><div class="drop-zone-content svelte-lenod"><div style="color: var(--color-text-muted)" class="svelte-lenod"><!></div> <p class="svelte-lenod">Drag and drop your <strong class="svelte-lenod">.csv</strong> file here</p> <span class="text-xs text-slate-500 mb-4 svelte-lenod">or click to browse from your computer</span> <label class="btn btn-primary btn-md cursor-pointer svelte-lenod">Select CSV File <input type="file" accept=".csv" class="hidden svelte-lenod"/></label></div></div> <div class="mt-6 flex flex-col items-center svelte-lenod"><p class="text-[0.8rem] text-slate-400 mb-2 svelte-lenod">Need a starting point?</p> <button class="btn btn-ghost btn-sm svelte-lenod"><!> </button></div>`,1),mS=K(`<th class="svelte-lenod"> </th>`),hS=K(`<td class="svelte-lenod"> </td>`),gS=K(`<tr class="svelte-lenod"></tr>`),_S=K(`<div class="file-info flex items-center justify-between p-3 bg-blue-500/5 border border-blue-500/20 rounded-lg mb-4 svelte-lenod"><div class="flex items-center gap-3 svelte-lenod"><div style="color: #0ea5e9; display: flex;" class="svelte-lenod"><!></div> <div class="svelte-lenod"><div class="text-sm font-semibold svelte-lenod"> </div> <div class="text-[0.7rem] text-slate-400 svelte-lenod"> </div></div></div> <button class="btn btn-ghost btn-sm text-red-500 svelte-lenod">Change File</button></div> <div class="preview-container svelte-lenod"><div class="preview-header svelte-lenod"><span class="svelte-lenod">Data Preview (First 5 rows)</span></div> <div class="table-wrapper svelte-lenod"><table class="svelte-lenod"><thead class="svelte-lenod"><tr class="svelte-lenod"></tr></thead><tbody class="svelte-lenod"></tbody></table></div></div>`,1),vS=K(`<div class="error-msg flex items-center gap-2 svelte-lenod"><!> <span class="svelte-lenod"> </span></div>`),yS=K(`<div class="spinner svelte-lenod"></div> Importing...`,1),bS=K(`<!> Start Import`,1),xS=K(`<div class="modal-backdrop svelte-lenod"><div class="modal-content svelte-lenod"><div class="modal-header svelte-lenod"><div class="flex items-center gap-2 svelte-lenod"><div class="header-icon svelte-lenod" style="color: #0ea5e9"><!></div> <h3 class="svelte-lenod"> </h3></div> <button class="btn btn-ghost btn-sm close-btn svelte-lenod"><!></button></div> <div class="modal-body svelte-lenod"><div class="p-6 svelte-lenod"><!> <!></div></div> <div class="modal-footer svelte-lenod"><button class="btn btn-ghost svelte-lenod">Cancel</button> <button class="btn btn-primary svelte-lenod"><!></button></div></div></div>`);function SS(e,t){We(t,!1);let n=()=>P(H(d),`$file`,l),r=()=>P(H(f),`$csvData`,l),i=()=>P(H(p),`$headers`,l),a=()=>P(H(m),`$fileName`,l),o=()=>P(H(h),`$errorMsg`,l),s=()=>P(H(g),`$isSubmitting`,l),c=()=>P(H(_),`$composableIsOpen`,l),[l,u]=pt(),d=F(),f=F(),p=F(),m=F(),h=F(),g=F(),_=F(),v=F(),y=F(),b=F(),x=F(),S=F(),C=F(),w=F(),T=F(),E=F(),D=F(),O=F(),k=F(),ee=F(),te=ka(t,`repo`,8),ne=ka(t,`importTarget`,8,`memories`),re=ka(t,`isOpen`,12,!1),ie=Na(),ae=F();function oe(e){I(ae,fS({repo:te(),importTarget:e,onSuccess:()=>ie(`success`),onClose:()=>{re(!1),ie(`close`)}}))}oe(ne()),B(()=>W(ne()),()=>{ne()&&oe(ne())}),B(()=>(H(ae),W(re())),()=>{H(ae).isOpen.set(re())}),B(()=>H(ae),()=>{dt(I(d,H(ae).file),`$file`,l)}),B(()=>H(ae),()=>{dt(I(f,H(ae).csvData),`$csvData`,l)}),B(()=>H(ae),()=>{dt(I(p,H(ae).headers),`$headers`,l)}),B(()=>H(ae),()=>{dt(I(m,H(ae).fileName),`$fileName`,l)}),B(()=>H(ae),()=>{dt(I(h,H(ae).errorMsg),`$errorMsg`,l)}),B(()=>H(ae),()=>{dt(I(g,H(ae).isSubmitting),`$isSubmitting`,l)}),B(()=>H(ae),()=>{dt(I(_,H(ae).isOpen),`$composableIsOpen`,l)}),B(()=>H(ae),()=>{I(v,H(ae).close)}),B(()=>H(ae),()=>{I(y,H(ae).handleFileSelect)}),B(()=>H(ae),()=>{I(b,H(ae).handleFileDrop)}),B(()=>H(ae),()=>{I(x,H(ae).downloadExample)}),B(()=>H(ae),()=>{I(S,H(ae).handleImport)}),B(()=>H(ae),()=>{I(C,H(ae).setFile)}),B(()=>H(ae),()=>{I(w,H(ae).setCsvData)}),B(()=>n(),()=>{I(T,n())}),B(()=>r(),()=>{I(E,r())}),B(()=>i(),()=>{I(D,i())}),B(()=>a(),()=>{I(O,a())}),B(()=>o(),()=>{I(k,o())}),B(()=>s(),()=>{I(ee,s())}),Un(),Ea();var se=li(),ce=R(se),le=e=>{var n=xS(),r=L(n),i=L(r),a=L(i),o=L(a);Q(L(o),{name:`upload-cloud`,size:18}),A(o);var s=z(o,2),c=L(s);A(s),A(a);var l=z(a,2);Q(L(l),{name:`x`,size:18,strokeWidth:2}),A(l),A(i);var u=z(i,2),d=L(u),f=L(d),p=e=>{var n=pS(),r=R(n),i=L(r),a=L(i);Q(L(a),{name:`file-up`,size:48,strokeWidth:1}),A(a);var o=z(a,6),s=z(L(o));A(o),A(i),A(r);var c=z(r,2),l=z(L(c),2),u=L(l);Q(u,{name:`download`,size:14,className:`mr-2`});var d=z(u);A(l),A(c),V(()=>J(d,` Download Example ${ne()===`memories`?`Memories`:`Tasks`} CSV`)),G(`change`,s,function(...e){H(y)?.apply(this,e)}),G(`dragover`,r,Ta(function(e){Oa.call(this,t,e)})),G(`drop`,r,function(...e){H(b)?.apply(this,e)}),G(`click`,l,function(...e){H(x)?.apply(this,e)}),q(e,n)},m=e=>{var t=_S(),n=R(t),r=L(n),i=L(r);Q(L(i),{name:`file-type-2`,size:24}),A(i);var a=z(i,2),o=L(a),s=L(o,!0);A(o);var c=z(o,2),l=L(c);A(c),A(a),A(r);var u=z(r,2);A(n);var d=z(n,2),f=z(L(d),2),p=L(f),m=L(p),h=L(m);X(h,5,()=>H(D),e=>e,(e,t)=>{var n=mS(),r=L(n,!0);A(n),V(()=>J(r,H(t))),q(e,n)}),A(h),A(m);var g=z(m);X(g,7,()=>(H(E),U(()=>H(E).slice(0,5))),(e,t)=>`${t}-${JSON.stringify(e)}`,(e,t)=>{var n=gS();X(n,5,()=>H(D),e=>e,(e,n)=>{var r=hS(),i=L(r,!0);A(r),V(e=>J(i,e),[()=>(H(t),H(n),U(()=>H(t)[H(n).toLowerCase().replace(/[^a-z0-9_]/g,`_`)]||``))]),q(e,r)}),A(n),q(e,n)}),A(g),A(p),A(f),A(d),V(()=>{J(s,H(O)),J(l,`${(H(E),U(()=>H(E).length))??``} rows found`)}),G(`click`,u,()=>{H(C)(null),H(w)([])}),q(e,t)};Y(f,e=>{H(T)?e(m,-1):e(p)});var h=z(f,2),g=e=>{var t=vS(),n=L(t);Q(n,{name:`alert-circle`,size:16});var r=z(n,2),i=L(r,!0);A(r),A(t),V(()=>J(i,H(k))),q(e,t)};Y(h,e=>{H(k)&&e(g)}),A(d),A(u);var _=z(u,2),te=L(_),re=z(te,2),ie=L(re),ae=e=>{var t=yS();j(),q(e,t)},oe=e=>{var t=bS();Q(R(t),{name:`check`,size:16,className:`mr-2`}),j(),q(e,t)};Y(ie,e=>{H(ee)?e(ae):e(oe,-1)}),A(re),A(_),A(r),A(n),V(()=>{J(c,`Bulk Import ${ne()===`memories`?`Memories`:`Tasks`}`),te.disabled=H(ee),re.disabled=(H(ee),H(E),U(()=>H(ee)||H(E).length===0))}),G(`click`,l,function(...e){H(v)?.apply(this,e)}),G(`click`,te,function(...e){H(v)?.apply(this,e)}),G(`click`,re,function(...e){H(S)?.apply(this,e)}),Pi(3,r,()=>uS,()=>({duration:200,start:.95})),G(`click`,r,wa(function(e){Oa.call(this,t,e)})),Pi(3,n,()=>lS,()=>({duration:200})),G(`click`,n,function(...e){H(v)?.apply(this,e)}),q(e,n)};Y(ce,e=>{c()&&e(le)}),q(e,se),Ge(),u()}var CS=K(`<option> </option>`),wS=K(`<option> </option>`),TS=K(`<div class="modal-backdrop svelte-l0ytfo" role="button" tabindex="-1" aria-label="Close modal"></div> <div class="modal-panel animate-fade-in svelte-l0ytfo" role="dialog" aria-modal="true" aria-labelledby="modal-title" tabindex="-1"><div class="modal-header svelte-l0ytfo"><div class="modal-header-icon svelte-l0ytfo"><!></div> <div><div id="modal-title" class="modal-title svelte-l0ytfo">New Task</div> <div class="modal-subtitle svelte-l0ytfo">Add a task to the current repository</div></div> <button class="modal-close-btn svelte-l0ytfo" aria-label="Close"><!></button></div> <div class="modal-body svelte-l0ytfo"><div class="field-grid-2 svelte-l0ytfo"><div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_code">Task Code <span class="required svelte-l0ytfo">*</span></label> <input id="new_task_code" class="form-input" placeholder="TASK-001"/></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_phase">Phase</label> <input id="new_task_phase" class="form-input" placeholder="Implementation"/></div></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_title">Title <span class="required svelte-l0ytfo">*</span> <span class="field-hint svelte-l0ytfo"> </span></label> <input id="new_task_title" class="form-input" placeholder="Short, descriptive task title" maxlength="80"/></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_description">Description</label> <textarea id="new_task_description" class="form-textarea modal-textarea svelte-l0ytfo" placeholder="What needs to be done? Include context, acceptance criteria, etc." rows="4"></textarea></div> <div class="field-grid-2 svelte-l0ytfo"><div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_status">Status</label> <select id="new_task_status" class="form-select"></select></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_priority">Priority</label> <select id="new_task_priority" class="form-select"></select></div></div></div> <div class="modal-footer svelte-l0ytfo"><button class="btn btn-ghost">Cancel</button> <button class="btn btn-primary modal-save-btn svelte-l0ytfo"><!> Create Task</button></div></div>`,1);function ES(e,t){We(t,!1);let n=ka(t,`open`,8,!1),r=ka(t,`newTask`,12),i=ka(t,`onClose`,8,()=>{}),a=ka(t,`onSave`,8,()=>{});function o(e){e.key===`Escape`&&i()()}Ea();var s=li();G(`keydown`,hn,o);var c=R(s),l=e=>{var t=TS(),n=R(t),o=z(n,2),s=L(o),c=L(s);Q(L(c),{name:`clipboard-list`,size:14,strokeWidth:2.2}),A(c);var l=z(c,4);Q(L(l),{name:`x`,size:14,strokeWidth:2.5}),A(l),A(s);var u=z(s,2),d=L(u),f=L(d),p=z(L(f),2);ca(p),A(f);var m=z(f,2),h=z(L(m),2);ca(h),A(m),A(d);var g=z(d,2),_=L(g),v=z(L(_),3),y=L(v);A(v),A(_);var b=z(_,2);ca(b),A(g);var x=z(g,2),S=z(L(x),2);On(S),A(x);var C=z(x,2),w=L(C),T=z(L(w),2);X(T,4,()=>[`backlog`,`pending`,`in_progress`],e=>e,(e,t)=>{var n=CS(),r=L(n,!0);A(n);var i={};V(e=>{J(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>(W(_l),U(()=>_l(t)))]),q(e,n)}),A(T),A(w);var E=z(w,2),D=z(L(E),2);X(D,4,()=>[1,2,3,4,5],e=>e,(e,t)=>{var n=wS(),r=L(n,!0);A(n);var i={};V(e=>{J(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>(W(vl),U(()=>vl(t)))]),q(e,n)}),A(D),A(E),A(C),A(u);var O=z(u,2),k=L(O),ee=z(k,2);Q(L(ee),{name:`plus`,size:13,strokeWidth:2.5}),j(),A(ee),A(O),A(o),V(()=>{J(y,`${(W(r()),U(()=>(r().title??``).length))??``}/80`),ee.disabled=(W(r()),U(()=>!r().task_code||!r().title))}),G(`click`,n,function(...e){i()?.apply(this,e)}),G(`keydown`,n,e=>e.key===`Escape`&&i()()),G(`click`,l,function(...e){i()?.apply(this,e)}),va(p,()=>r().task_code,e=>(r(r().task_code=e,!0),cr(()=>{}))),va(h,()=>r().phase,e=>(r(r().phase=e,!0),cr(()=>{}))),va(b,()=>r().title,e=>(r(r().title=e,!0),cr(()=>{}))),va(S,()=>r().description,e=>(r(r().description=e,!0),cr(()=>{}))),Zi(T,()=>r().status,e=>(r(r().status=e,!0),cr(()=>{}))),Zi(D,()=>r().priority,e=>(r(r().priority=e,!0),cr(()=>{}))),G(`click`,k,function(...e){i()?.apply(this,e)}),G(`click`,ee,function(...e){a()?.apply(this,e)}),q(e,t)};Y(c,e=>{n()&&e(l)}),q(e,s),Ge()}var DS=K(`<span class="ref-total-badge svelte-w0wd5z"> </span>`),OS=K(`<button class="ref-clear-btn svelte-w0wd5z"><!></button>`),kS=K(`<button><!> <span> </span> <span class="ref-cat-count svelte-w0wd5z"> </span></button>`),AS=K(`<div style="padding:40px;text-align:center;"><div class="skeleton" style="height:60px;border-radius:12px;margin-bottom:10px;"></div> <div class="skeleton" style="height:60px;border-radius:12px;margin-bottom:10px;"></div> <div class="skeleton" style="height:60px;border-radius:12px;"></div></div>`),jS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),MS=K(`<code class="ref-param-tag svelte-w0wd5z"> </code>`),NS=K(`<code class="ref-param-tag ref-param-more svelte-w0wd5z"> </code>`),PS=K(`<div class="ref-params svelte-w0wd5z"><!> <!></div>`),FS=K(`<div class="ref-card ref-card-tool animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-tool svelte-w0wd5z"><!> Tool</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!> <!></div>`),IS=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Tools</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),LS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),RS=K(`<div class="ref-card ref-card-prompt animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-prompt svelte-w0wd5z"><!> Prompt</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!></div>`),zS=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Prompts</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),BS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),VS=K(`<div class="ref-params svelte-w0wd5z"><code class="ref-param-tag svelte-w0wd5z" style="background:var(--color-bg);border:1px solid var(--color-border);"> </code></div>`),HS=K(`<div class="ref-card ref-card-resource animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-resource svelte-w0wd5z"><!> Resource</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!> <!></div>`),US=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Resources</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),WS=K(`<div style="text-align:center;padding:48px 16px;color:var(--color-text-muted);"><!> <div style="font-size:0.82rem;margin-top:10px;"> </div></div>`),GS=K(`<a target="_blank" rel="noopener noreferrer" class="eco-card animate-fade-in svelte-w0wd5z"><div class="eco-card-icon svelte-w0wd5z"><!></div> <div class="eco-card-body svelte-w0wd5z"><div class="eco-card-name svelte-w0wd5z"> </div> <div class="eco-card-desc svelte-w0wd5z"> </div></div> <div class="eco-card-link svelte-w0wd5z"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></div></a>`),KS=K(`<div class="eco-section svelte-w0wd5z"><div class="ref-section-header svelte-w0wd5z"><!> <span>Ecosystem</span></div> <div class="eco-grid svelte-w0wd5z"></div></div>`),qS=K(`<!> <!> <!> <!> <!>`,1),JS=K(`<div class="animate-fade-in"><div class="glass card" style="margin-bottom:16px;padding:14px 18px;"><div class="ref-header svelte-w0wd5z"><div class="flex items-center gap-2"><!> <span style="font-size:0.9rem;font-weight:800;color:var(--color-text);letter-spacing:-0.02em;">MCP Reference</span> <!></div> <div class="ref-search-wrap svelte-w0wd5z"><span class="ref-search-icon svelte-w0wd5z"><!></span> <input class="form-input ref-search-input svelte-w0wd5z" type="text" placeholder="Search tools & prompts…"/> <!></div></div></div> <div class="ref-body svelte-w0wd5z"><div class="glass ref-sidebar svelte-w0wd5z"><div class="ref-sidebar-label svelte-w0wd5z">Category</div> <!></div> <div class="ref-main svelte-w0wd5z"><!></div></div></div>`);function YS(e,t){We(t,!1);let n=()=>P(p(),`$appState`,o),r=()=>P(m(),`$filteredTools`,o),i=()=>P(h(),`$filteredPrompts`,o),a=()=>P(_(),`$filteredResources`,o),[o,s]=pt(),c=F(),l=F(),u=F(),d=F(),f=ka(t,`handler`,8),p=ka(t,`appState`,8),m=ka(t,`filteredTools`,8),h=ka(t,`filteredPrompts`,8),_=ka(t,`filteredResources`,8);function v(e){return[{id:`all`,icon:`layers`,label:`All`,count:(e.capabilities?.tools?.length||0)+(e.capabilities?.prompts?.length||0)+(e.capabilities?.resources?.length||0)+y.length},{id:`tools`,icon:`tool`,label:`Tools`,count:e.capabilities?.tools?.length||0},{id:`prompts`,icon:`sparkle`,label:`Prompts`,count:e.capabilities?.prompts?.length||0},{id:`resources`,icon:`database`,label:`Resources`,count:e.capabilities?.resources?.length||0},{id:`ecosystem`,icon:`zap`,label:`Ecosystem`,count:y.length}]}let y=[{name:`Docubook`,description:`AI-powered documentation generator that turns your codebase into beautiful, searchable docs.`,url:`https://www.docubook.pro/`,icon:`book-open`}];function b(e,t,n){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f().openReferenceDrawer(t,n))}B(()=>n(),()=>{I(c,n())}),B(()=>r(),()=>{I(l,r())}),B(()=>i(),()=>{I(u,i())}),B(()=>a(),()=>{I(d,a())}),Un(),Ea();var x=JS(),S=L(x),C=L(S),w=L(C),T=L(w);Q(T,{name:`book-open`,size:15,strokeWidth:1.75});var E=z(T,4),D=e=>{var t=DS(),n=L(t);A(t),V(()=>J(n,`${(H(c),U(()=>(H(c).capabilities.tools?.length||0)+(H(c).capabilities.prompts?.length||0)))??``} items`)),q(e,t)};Y(E,e=>{H(c),U(()=>H(c).capabilities)&&e(D)}),A(w);var O=z(w,2),k=L(O);Q(L(k),{name:`search`,size:12,strokeWidth:2}),A(k);var ee=z(k,2);ca(ee);var te=z(ee,2),ne=e=>{var t=OS();Q(L(t),{name:`x`,size:11,strokeWidth:2.5}),A(t),G(`click`,t,()=>f().setReferenceSearch(``)),q(e,t)};Y(te,e=>{H(c),U(()=>H(c).referenceSearch)&&e(ne)}),A(O),A(C),A(S);var re=z(S,2),ie=L(re);X(z(L(ie),2),1,()=>(H(c),U(()=>v(H(c)))),e=>e.id,(e,t)=>{var n=kS();let r;var i=L(n);Q(i,{get name(){return H(t),U(()=>H(t).icon)},size:13,strokeWidth:1.75});var a=z(i,2),o=L(a,!0);A(a);var s=z(a,2),l=L(s,!0);A(s),A(n),V(()=>{r=Ki(n,1,`ref-cat-btn svelte-w0wd5z`,null,r,{active:H(c).referenceFilter===H(t).id}),J(o,(H(t),U(()=>H(t).label))),J(l,(H(t),U(()=>H(t).count)))}),G(`click`,n,()=>f().setReferenceFilter(H(t).id)),q(e,n)}),A(ie);var ae=z(ie,2),oe=L(ae),se=e=>{q(e,AS())},ce=e=>{var t=qS(),n=R(t),r=e=>{var t=IS(),n=R(t),r=L(n);Q(r,{name:`tool`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);A(i),A(n);var o=z(n,2);X(o,5,()=>H(l),e=>e.data.name,(e,t)=>{var n=FS(),r=L(n),i=L(r);Q(L(i),{name:`tool`,size:10,strokeWidth:2}),j(),A(i),A(r);var a=z(r,2),o=L(a,!0);A(a);var s=z(a,2),c=e=>{var n=jS(),r=L(n,!0);A(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)});var l=z(s,2),u=e=>{var n=PS(),r=L(n);X(r,1,()=>(H(t),U(()=>Object.entries(H(t).data.inputSchema.properties).slice(0,4))),([e])=>e,(e,t)=>{var n=Jt(()=>g(H(t),1));let r=()=>H(n)[0];var i=MS(),a=L(i,!0);A(i),V(()=>J(a,r())),q(e,i)});var i=z(r,2),a=e=>{var n=NS(),r=L(n);A(n),V(e=>J(r,`+${e??``}`),[()=>(H(t),U(()=>Object.keys(H(t).data.inputSchema.properties).length-4))]),q(e,n)},o=Jt(()=>(H(t),U(()=>Object.keys(H(t).data.inputSchema.properties).length>4)));Y(i,e=>{H(o)&&e(a)}),A(n),q(e,n)};Y(l,e=>{H(t),U(()=>H(t)?.data?.inputSchema?.properties)&&e(u)}),A(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Tool`)))),G(`click`,n,()=>f().openReferenceDrawer(`tool`,H(t).data)),G(`keydown`,n,e=>b(e,`tool`,H(t).data)),q(e,n)}),A(o),V(()=>J(a,(H(l),U(()=>H(l).length)))),q(e,t)};Y(n,e=>{H(l),U(()=>H(l).length>0)&&e(r)});var i=z(n,2),a=e=>{var t=zS(),n=R(t),r=L(n);Q(r,{name:`sparkle`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);A(i),A(n);var o=z(n,2);X(o,5,()=>H(u),e=>e.data.name,(e,t)=>{var n=RS(),r=L(n),i=L(r);Q(L(i),{name:`sparkle`,size:10,strokeWidth:2}),j(),A(i),A(r);var a=z(r,2),o=L(a,!0);A(a);var s=z(a,2),c=e=>{var n=LS(),r=L(n,!0);A(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)}),A(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Prompt`)))),G(`click`,n,()=>f().openReferenceDrawer(`prompt`,H(t).data)),G(`keydown`,n,e=>b(e,`prompt`,H(t).data)),q(e,n)}),A(o),V(()=>{Ji(n,`margin-top:${(H(l),U(()=>H(l).length>0?`20px`:`0`))??``}`),J(a,(H(u),U(()=>H(u).length)))}),q(e,t)};Y(i,e=>{H(u),U(()=>H(u).length>0)&&e(a)});var o=z(i,2),s=e=>{var t=US(),n=R(t),r=L(n);Q(r,{name:`database`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);A(i),A(n);var o=z(n,2);X(o,5,()=>H(d),e=>e.data.uri||e.data.name,(e,t)=>{var n=HS(),r=L(n),i=L(r);Q(L(i),{name:`database`,size:10,strokeWidth:2}),j(),A(i),A(r);var a=z(r,2),o=L(a,!0);A(a);var s=z(a,2),c=e=>{var n=BS(),r=L(n,!0);A(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)});var l=z(s,2),u=e=>{var n=VS(),r=L(n),i=L(r,!0);A(r),A(n),V(()=>J(i,(H(t),U(()=>H(t).data.uri)))),q(e,n)};Y(l,e=>{H(t),U(()=>H(t)?.data?.uri)&&e(u)}),A(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Resource`)))),G(`click`,n,()=>f().openReferenceDrawer(`resource`,H(t).data)),G(`keydown`,n,e=>b(e,`resource`,H(t).data)),q(e,n)}),A(o),V(()=>{Ji(n,`margin-top:${(H(l),H(u),U(()=>H(l).length>0||H(u).length>0?`20px`:`0`))??``}`),J(a,(H(d),U(()=>H(d).length)))}),q(e,t)};Y(o,e=>{H(d),U(()=>H(d).length>0)&&e(s)});var p=z(o,2),m=e=>{var t=WS(),n=L(t);Q(n,{name:`search`,size:28,strokeWidth:1.25});var r=z(n,2),i=L(r);A(r),A(t),V(()=>J(i,`No results for "${(H(c),U(()=>H(c).referenceSearch))??``}"`)),q(e,t)};Y(p,e=>{H(l),H(u),H(d),H(c),U(()=>H(l).length===0&&H(u).length===0&&H(d).length===0&&H(c).referenceFilter!==`ecosystem`)&&e(m)});var h=z(p,2),_=e=>{var t=KS(),n=L(t);Q(L(n),{name:`zap`,size:13,strokeWidth:1.75}),j(2),A(n);var r=z(n,2);X(r,5,()=>y,e=>e.name,(e,t)=>{var n=GS(),r=L(n);Q(L(r),{get name(){return H(t),U(()=>H(t).icon)},size:18,strokeWidth:1.5}),A(r);var i=z(r,2),a=L(i),o=L(a,!0);A(a);var s=z(a,2),c=L(s,!0);A(s),A(i),j(2),A(n),V(()=>{fa(n,`href`,(H(t),U(()=>H(t).url))),J(o,(H(t),U(()=>H(t).name))),J(c,(H(t),U(()=>H(t).description)))}),q(e,n)}),A(r),A(t),q(e,t)};Y(h,e=>{H(c),U(()=>H(c).referenceFilter===`all`||H(c).referenceFilter===`ecosystem`)&&e(_)}),q(e,t)};Y(oe,e=>{H(c),U(()=>!H(c).capabilities)?e(se):e(ce,-1)}),A(ae),A(re),A(x),va(ee,()=>n().referenceSearch,e=>ht(p(),U(n).referenceSearch=e,U(n))),q(e,x),Ge(),s()}var XS=K(`<div class="popup-load-more svelte-x7gsaf"><!> <span class="svelte-x7gsaf">Loading older...</span></div>`),ZS=K(`<div class="popup-empty svelte-x7gsaf"><!> <div class="svelte-x7gsaf">No activity yet</div> <div class="svelte-x7gsaf">Events appear here as they happen.</div></div>`),QS=K(`<div class="popup-action-sub svelte-x7gsaf"> </div>`),$S=K(`<button class="popup-read-more svelte-x7gsaf"> </button>`),eC=K(`<div class="popup-bubble-row popup-bubble-left svelte-x7gsaf"><div class="popup-bubble-wrap svelte-x7gsaf"><div class="popup-chat-bubble popup-chat-bubble-mcp svelte-x7gsaf"><div class="popup-mcp-sender svelte-x7gsaf">MCP</div> <div class="popup-markdown svelte-x7gsaf"><!></div> <!></div></div></div>`),tC=K(`<div class="popup-bubble-row popup-bubble-right svelte-x7gsaf"><div class="popup-bubble-wrap svelte-x7gsaf"><div class="popup-chat-bubble popup-chat-bubble-action svelte-x7gsaf"><div class="popup-action-badge svelte-x7gsaf"><!> <span class="svelte-x7gsaf"> </span></div> <div class="popup-action-main svelte-x7gsaf"> </div> <!></div></div></div> <!>`,1),nC=K(`<div class="popup-date-header svelte-x7gsaf"><span class="svelte-x7gsaf"> </span></div> <!>`,1),rC=K(`<div class="chat-backdrop svelte-x7gsaf" role="button" tabindex="-1" aria-label="Close"></div> <div class="chat-popup animate-fade-in-scale svelte-x7gsaf"><div class="chat-popup-header svelte-x7gsaf"><div class="chat-popup-title svelte-x7gsaf"><div class="chat-popup-avatar svelte-x7gsaf"><!></div> <div class="svelte-x7gsaf"><div class="chat-popup-name svelte-x7gsaf">Recent Activity</div> <div class="chat-popup-status svelte-x7gsaf"> </div></div></div> <button class="chat-popup-close svelte-x7gsaf" title="Close" aria-label="Close"><!></button></div> <div class="chat-popup-body svelte-x7gsaf"><!> <!></div> <div class="chat-popup-footer svelte-x7gsaf"><div class="chat-input-row svelte-x7gsaf"><input type="text" placeholder="Create a backlog task..." class="svelte-x7gsaf"/> <button class="chat-send-btn svelte-x7gsaf"><!></button></div></div></div>`,1),iC=K(`<button class="chat-fab svelte-x7gsaf" title="Open activity chat" aria-label="Open activity chat"><!></button>`);function aC(e,t){We(t,!1);let n=()=>P(y,`$raPage`,c),r=()=>P(b,`$handlerState`,c),i=()=>P(v,`$raStore`,c),a=()=>P(Ba,`$currentRepo`,c),o=()=>P(so,`$recentActionsTotalItems`,c),s=()=>P(_,`$groupedActions`,c),[c,l]=pt(),u=ka(t,`onRefresh`,8,()=>{}),d=F(!1),f=F(``),p=F(!1),m=F();async function h(e,t){let n=N(Ba);if(n)try{let r=await Z.recentActions(n,e,25);t?oo.update(e=>[...e,...r.actions||[]]):oo.set(r.actions||[]),co.set(r.pagination?.page??e),so.set(r.pagination?.totalItems??0)}catch(e){console.error(`Failed to load recent actions:`,e)}}let g=Hy(h),{groupedActions:_,recentActions:v,recentActionsPage:y}=g,b=g;Pa(()=>{let e=n();H(d)&&e<=1&&!r().isLoadingMore&&i().length>0&&g.scrollToBottom(H(m),`instant`)}),Aa(()=>()=>{oo.set([]),co.set(1)});function x(){I(d,!H(d)),H(d)&&(h(1),Pr().then(()=>g.scrollToBottom(H(m),`instant`)))}function S(e){e.key===`Escape`&&I(d,!1)}async function C(){let e=H(f).trim();if(!e||H(p))return;let t=N(Ba);if(t){I(p,!0);try{let n=`CHAT-`+Date.now().toString(36).toUpperCase(),r=new Date,i=String(r.getHours()).padStart(2,`0`),a=String(r.getMinutes()).padStart(2,`0`);await Z.createTask({repo:t,task_code:n,title:`Chat · ${i}:${a}`,description:e,status:`backlog`,priority:3,phase:`Inbox`}),I(f,``),await h(1),u()(),fo.update(e=>e+1),Pr().then(()=>g.scrollToBottom(H(m),`instant`))}catch(e){console.error(`Failed to create task:`,e)}finally{I(p,!1)}}}Ea();var w=li();G(`keydown`,hn,S);var T=R(w),E=e=>{var t=li(),n=R(t),a=e=>{var t=rC(),n=R(t),a=z(n,2),c=L(a),l=L(c),u=L(l);Q(L(u),{name:`message-circle`,size:16,strokeWidth:2.2}),A(u);var h=z(u,2),_=z(L(h),2),v=L(_);A(_),A(h),A(l);var y=z(l,2);Q(L(y),{name:`x`,size:16,strokeWidth:2.5}),A(y),A(c);var b=z(c,2),x=L(b),S=e=>{var t=XS();Q(L(t),{name:`refresh-cw`,size:12,className:`animate-spin`}),j(2),A(t),q(e,t)};Y(x,e=>{r(),U(()=>r().isLoadingMore)&&e(S)});var w=z(x,2),T=e=>{var t=ZS();Q(L(t),{name:`message-circle`,size:36,strokeWidth:1}),j(4),A(t),q(e,t)},E=e=>{var t=li();X(R(t),1,s,e=>e.date,(e,t)=>{var n=nC(),i=R(n),a=L(i),o=L(a,!0);A(a),A(i),X(z(i,2),1,()=>(H(t),U(()=>H(t).items)),e=>e.id,(e,t)=>{let n=Yt(()=>(H(t),U(()=>g.getLabel(H(t))))),i=Yt(()=>(H(t),U(()=>g.getConfig(H(t).action))));var a=tC(),o=R(a),s=L(o),c=L(s),l=L(c),u=L(l);Q(u,{get name(){return W(H(i)),U(()=>H(i).icon)},size:8,strokeWidth:2.5});var d=z(u,2),f=L(d,!0);A(d),A(l);var p=z(l,2),m=L(p,!0);A(p);var h=z(p,2),_=e=>{var t=QS(),r=L(t,!0);A(t),V(()=>J(r,(W(H(n)),U(()=>H(n).sub)))),q(e,t)};Y(h,e=>{W(H(n)),U(()=>H(n).sub)&&e(_)}),A(c),A(s),A(o);var v=z(o,2),y=e=>{let n=Yt(()=>(H(t),U(()=>g.parseResponse(H(t).response)))),i=Yt(()=>(r(),H(t),U(()=>r().expandedResponses.has(H(t).id))));var a=eC(),o=L(a),s=L(o),c=z(L(s),2);pb(L(c),{get content(){return W(H(n)),U(()=>H(n).text)}}),A(c);var l=z(c,2),u=e=>{var n=$S(),r=L(n,!0);A(n),V(()=>J(r,H(i)?`Less`:`More`)),G(`click`,n,()=>g.toggleExpand(H(t).id)),q(e,n)};Y(l,e=>{W(H(n)),U(()=>H(n).isLong)&&e(u)}),A(s),A(o),A(a),V(()=>Ji(c,(W(H(i)),W(H(n)),U(()=>!H(i)&&H(n).isLong?`max-height:80px;overflow:hidden;mask-image:linear-gradient(to bottom,black 60%,transparent 100%);`:``)))),q(e,a)};Y(v,e=>{H(t),U(()=>H(t).response)&&e(y)}),V(()=>{Ji(l,`color:${(W(H(i)),U(()=>H(i).color))??``};background:${(W(H(i)),U(()=>H(i).bgAlpha))??``};`),J(f,(W(H(i)),U(()=>H(i).label))),J(m,(W(H(n)),U(()=>H(n).main)))}),q(e,a)}),V(()=>J(o,(H(t),U(()=>H(t).date)))),q(e,n)}),q(e,t)};Y(w,e=>{i(),U(()=>i().length===0)?e(T):e(E,-1)}),A(b),Ca(b,e=>I(m,e),()=>H(m));var D=z(b,2),O=L(D),k=L(O);ca(k);var ee=z(k,2);Q(L(ee),{name:`send`,size:14,strokeWidth:2}),A(ee),A(O),A(D),A(a),V(e=>{J(v,`${o()??``} events`),la(k,H(f)),k.disabled=H(p),ee.disabled=e},[()=>(H(f),H(p),U(()=>!H(f).trim()||H(p)))]),G(`click`,n,()=>I(d,!1)),G(`click`,y,()=>I(d,!1)),G(`input`,k,e=>I(f,e.currentTarget.value)),G(`keydown`,k,e=>e.key===`Enter`&&!e.shiftKey&&C()),G(`click`,ee,C),q(e,t)},c=e=>{var t=iC();Q(L(t),{name:`message-circle`,size:22,strokeWidth:2.2}),A(t),G(`click`,t,x),q(e,t)};Y(n,e=>{H(d)?e(a):e(c,-1)}),q(e,t)};Y(T,e=>{a()&&e(E)}),q(e,w),Ge(),l()}var oC=K(`<div class="error-banner svelte-owkwhr"> </div>`),sC=K(`<div class="notice-banner svelte-owkwhr"> </div>`),cC=K(`<tr><td colspan="7" class="mem-td svelte-owkwhr"><div class="skeleton" style="height:20px;border-radius:6px;"></div></td></tr>`),lC=K(`<tr><td colspan="7" class="mem-td svelte-owkwhr" style="padding:40px;text-align:center;color:var(--color-text-muted);"><!> <div style="margin-top:8px;">No standards found</div> <div style="font-size:0.78rem;margin-top:4px;">Adjust the filters or create a standard.</div></td></tr>`),uC=K(`<span style="font-size:0.6rem;background:rgba(99,102,241,0.1);color:#6366f1;padding:1px 5px;border-radius:9999px;"> </span>`),dC=K(`<div style="margin-top:3px;display:flex;gap:4px;flex-wrap:wrap;"></div>`),fC=K(`<tr class="mem-row svelte-owkwhr" role="button" tabindex="0"><td class="mem-td svelte-owkwhr" style="max-width:300px;"><div class="truncate font-semibold" style="font-size:0.82rem;color:var(--color-text);"> </div> <!></td><td class="mem-td svelte-owkwhr" style="font-size:0.78rem;color:var(--color-text);"> </td><td class="mem-td svelte-owkwhr" style="font-size:0.75rem;color:var(--color-text-muted);"> </td><td class="mem-td svelte-owkwhr" style="font-size:0.78rem;color:var(--color-text);"> </td><td class="mem-td svelte-owkwhr" style="font-size:0.75rem;color:var(--color-text-muted);white-space:nowrap;"> </td><td class="mem-td svelte-owkwhr"><span> </span></td><td class="mem-td row-actions svelte-owkwhr"><button class="row-action-btn edit-btn svelte-owkwhr" title="Edit / View" aria-label="Edit standard"><!></button> <button class="row-action-btn delete-btn svelte-owkwhr" title="Delete" aria-label="Delete standard"><!></button></td></tr>`),pC=K(`<button> </button>`),mC=K(`<div style="display:flex;align-items:center;justify-content:space-between;margin-top:12px;"><span style="font-size:0.75rem;color:var(--color-text-muted);"> </span> <div style="display:flex;gap:4px;"><button class="btn btn-ghost btn-sm">«</button> <button class="btn btn-ghost btn-sm">‹</button> <!> <button class="btn btn-ghost btn-sm">›</button> <button class="btn btn-ghost btn-sm">»</button></div></div>`),hC=K(`<div class="feature-shell animate-fade-in svelte-owkwhr"><div class="feature-toolbar glass card svelte-owkwhr"><div class="toolbar-title svelte-owkwhr"><!> <div><div class="section-label">CODING STANDARDS</div> <div class="toolbar-subtitle svelte-owkwhr">Rules the agents follow in this repo. Filter, inspect, import, or add one rule at a time.</div></div></div> <button class="btn btn-primary toolbar-action svelte-owkwhr"><!> Add Rule</button> <div class="toolbar-actions svelte-owkwhr"><button class="btn btn-ghost btn-sm"><!> </button> <button class="btn btn-ghost btn-sm"><!> </button> <input class="file-input svelte-owkwhr" type="file" accept="application/json,.json"/></div> <div class="toolbar-controls svelte-owkwhr"><input class="form-input" placeholder="Search standards..."/> <input class="form-input" placeholder="Language, e.g. typescript"/> <input class="form-input" placeholder="Stack tags, e.g. svelte, vite"/> <select class="form-select"><option>Repo + global</option><option>Global only</option><option>All standards</option></select></div></div> <div class="insight-strip svelte-owkwhr"><div class="insight-card svelte-owkwhr"><span class="svelte-owkwhr">Visible</span> <strong class="svelte-owkwhr"> </strong></div> <div class="insight-card svelte-owkwhr"><span class="svelte-owkwhr">Scope</span> <strong class="svelte-owkwhr"> </strong></div> <div class="insight-card svelte-owkwhr"><span class="svelte-owkwhr">Total</span> <strong class="svelte-owkwhr"> </strong></div> <div class="insight-card svelte-owkwhr"><span class="svelte-owkwhr">Page</span> <strong class="svelte-owkwhr"> </strong></div></div> <!> <!> <div class="mem-table-wrap svelte-owkwhr"><table class="mem-table svelte-owkwhr"><thead><tr class="mem-thead-row svelte-owkwhr"><th class="mem-th svelte-owkwhr" style="min-width:200px;">Title</th><th class="mem-th svelte-owkwhr">Context</th><th class="mem-th svelte-owkwhr">Version</th><th class="mem-th svelte-owkwhr">Language</th><th class="mem-th svelte-owkwhr">Updated</th><th class="mem-th svelte-owkwhr">Scope</th><th class="mem-th svelte-owkwhr" style="width:80px;"></th></tr></thead><tbody><!></tbody></table></div> <!></div> <!>`,1);function gC(e,t){We(t,!1);let n=F(),r=F(),i=ka(t,`repo`,8,``),a=F([]),o=F(!1),s=F(``),c=F(``),l=F(``),u=F(``),d=F(``),f=F(`repo`),p=F(!1),m=F(!1),h=F(),g=F(1),_=F(0),v=F(1),y=F(null),b=F(!1);async function x(){if(i()){I(o,!0),I(s,``);try{let e=await Z.standards({query:H(l)||void 0,language:H(u)||void 0,stack:H(d)||void 0,repo:H(f)===`repo`?i():void 0,is_global:H(f)===`global`?!0:void 0,page:H(g),pageSize:25});I(a,e.standards||[]),I(_,e.pagination?.totalItems||0),I(v,e.pagination?.totalPages||1)}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(o,!1)}}}function S(){I(g,1),x()}function C(e){e<1||e>H(v)||(I(g,e),x())}function w(){I(y,null),I(b,!0)}function T(e){I(y,e),I(b,!0)}function E(){I(b,!1),I(y,null)}function D(e){x()}function O(e){x()}async function k(e){if(confirm(`Delete coding standard "${e.title}"?`))try{await Z.deleteStandard(e.id),x()}catch(e){I(s,e instanceof Error?e.message:String(e))}}async function ee(){I(m,!0),I(s,``),I(c,``);try{let e=H(f)===`global`||H(f)===`all`?H(f):`repo`,t=await Z.exportStandards({repo:e===`repo`?i():void 0,scope:e}),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),a=document.createElement(`a`);a.href=r,a.download=`standards-${i()?i().replace(/[^a-z0-9._-]+/gi,`-`):`all`}-${e}-${new Date().toISOString().slice(0,10)}.json`,a.click(),URL.revokeObjectURL(r)}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(m,!1)}}async function te(e){let t=e.currentTarget,n=t.files?.[0];if(n){I(p,!0),I(s,``),I(c,``);try{let e=JSON.parse(await n.text()),t=Array.isArray(e?.standards)?e.standards.length:0,r=await Z.importStandards({...e,refresh_vectors:t>0&&t<=500});x();let i=r.vectors_refreshed?``:` Vector refresh skipped for large import.`;I(c,`Imported ${r.imported} and updated ${r.updated} standard(s).${i}`)}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(p,!1),t.value=``}}}Aa(()=>{x()}),B(()=>W(i()),()=>{i()&&x()}),B(()=>(H(g),H(v)),()=>{I(n,Math.max(1,Math.min(H(g)-2,H(v)-4)))}),B(()=>(H(v),H(n)),()=>{I(r,Array.from({length:Math.min(5,H(v))},(e,t)=>H(n)+t))}),Un(),Ea();var ne=hC(),re=R(ne),ie=L(re),ae=L(ie);Q(L(ae),{name:`check`,size:16,strokeWidth:2}),j(2),A(ae);var oe=z(ae,2);Q(L(oe),{name:`plus`,size:14,strokeWidth:2}),j(),A(oe);var se=z(oe,2),ce=L(se),le=L(ce);Q(le,{name:`download`,size:14,strokeWidth:2});var ue=z(le);A(ce);var de=z(ce,2),fe=L(de);Q(fe,{name:`upload`,size:14,strokeWidth:2});var pe=z(fe);A(de);var me=z(de,2);Ca(me,e=>I(h,e),()=>H(h)),A(se);var he=z(se,2),ge=L(he);ca(ge);var _e=z(ge,2);ca(_e);var ve=z(_e,2);ca(ve);var ye=z(ve,2),be=L(ye);be.value=be.__value=`repo`;var xe=z(be);xe.value=xe.__value=`global`;var Se=z(xe);Se.value=Se.__value=`all`,A(ye),A(he),A(ie);var Ce=z(ie,2),we=L(Ce),Te=z(L(we),2),Ee=L(Te,!0);A(Te),A(we);var De=z(we,2),Oe=z(L(De),2),ke=L(Oe,!0);A(Oe),A(De);var Ae=z(De,2),je=z(L(Ae),2),Me=L(je,!0);A(je),A(Ae);var Ne=z(Ae,2),Pe=z(L(Ne),2),Fe=L(Pe);A(Pe),A(Ne),A(Ce);var Ie=z(Ce,2),Le=e=>{var t=oC(),n=L(t,!0);A(t),V(()=>J(n,H(s))),q(e,t)};Y(Ie,e=>{H(s)&&e(Le)});var Re=z(Ie,2),ze=e=>{var t=sC(),n=L(t,!0);A(t),V(()=>J(n,H(c))),q(e,t)};Y(Re,e=>{H(c)&&e(ze)});var Be=z(Re,2),Ve=L(Be),He=z(L(Ve)),Ue=L(He),Ke=e=>{var t=li();X(R(t),0,()=>({length:5}),_i,(e,t,n)=>{var r=cC();fa(r,`data-index`,n),V(()=>fa(r,`data-dummy`,t)),q(e,r)}),q(e,t)},qe=e=>{var t=lC(),n=L(t);Q(L(n),{name:`check`,size:22,strokeWidth:1.75}),j(4),A(n),A(t),q(e,t)},Je=e=>{var n=li();X(R(n),1,()=>H(a),e=>e.id,(e,n)=>{var r=fC(),i=L(r),a=L(i),o=L(a,!0);A(a);var s=z(a,2),c=e=>{var t=dC();X(t,5,()=>(H(n),U(()=>H(n).tags.slice(0,4))),e=>e,(e,t)=>{var n=uC(),r=L(n,!0);A(n),V(()=>J(r,H(t))),q(e,n)}),A(t),q(e,t)};Y(s,e=>{H(n),U(()=>H(n).tags?.length)&&e(c)}),A(i);var l=z(i),u=L(l,!0);A(l);var d=z(l),f=L(d);A(d);var p=z(d),m=L(p,!0);A(p);var h=z(p),g=L(h,!0);A(h);var _=z(h),v=L(_);let y;var b=L(v,!0);A(v),A(_);var x=z(_),S=L(x);Q(L(S),{name:`edit-2`,size:13,strokeWidth:2}),A(S);var C=z(S,2);Q(L(C),{name:`trash-2`,size:13,strokeWidth:2}),A(C),A(x),A(r),V(e=>{J(o,(H(n),U(()=>H(n).title))),J(u,(H(n),U(()=>H(n).context||`—`))),J(f,`v${(H(n),U(()=>H(n).version))??``}`),J(m,(H(n),U(()=>H(n).language||`any`))),J(g,e),y=Ki(v,1,`scope-chip svelte-owkwhr`,null,y,{"scope-global":H(n).is_global,"scope-repo":!H(n).is_global}),J(b,(H(n),U(()=>H(n).is_global?`Global`:`Repo`)))},[()=>(W(pl),H(n),U(()=>pl(H(n).updated_at)))]),G(`click`,S,()=>T(H(n))),G(`click`,C,()=>k(H(n))),G(`click`,x,wa(function(e){Oa.call(this,t,e)})),G(`click`,r,()=>T(H(n))),G(`keydown`,r,e=>e.key===`Enter`&&T(H(n))),q(e,r)}),q(e,n)};Y(Ue,e=>{H(o)?e(Ke):(H(a),U(()=>H(a).length===0)?e(qe,1):e(Je,-1))}),A(He),A(Ve),A(Be);var Ye=z(Be,2),Xe=e=>{var t=mC(),n=L(t),i=L(n);A(n);var a=z(n,2),o=L(a),s=z(o,2),c=z(s,2);X(c,1,()=>H(r),e=>e,(e,t)=>{var n=pC();let r;var i=L(n,!0);A(n),V(()=>{r=Ki(n,1,`btn btn-sm`,null,r,{"btn-primary":H(t)===H(g),"btn-ghost":H(t)!==H(g)}),J(i,H(t))}),G(`click`,n,()=>C(H(t))),q(e,n)});var l=z(c,2),u=z(l,2);A(a),A(t),V(()=>{J(i,`Page ${H(g)??``} of ${H(v)??``}`),o.disabled=H(g)<=1,s.disabled=H(g)<=1,l.disabled=H(g)>=H(v),u.disabled=H(g)>=H(v)}),G(`click`,o,()=>C(1)),G(`click`,s,()=>C(H(g)-1)),G(`click`,l,()=>C(H(g)+1)),G(`click`,u,()=>C(H(v))),q(e,t)};Y(Ye,e=>{H(v)>1&&e(Xe)}),A(re),yx(z(re,2),{get standard(){return H(y)},get open(){return H(b)},onClose:E,onStandardUpdated:D,onStandardDeleted:O,get repo(){return i()}}),V(()=>{ce.disabled=(H(m),H(a),U(()=>H(m)||H(a).length===0)),J(ue,` ${H(m)?`Exporting...`:`Export`}`),de.disabled=H(p),J(pe,` ${H(p)?`Importing...`:`Import`}`),J(Ee,(H(a),U(()=>H(a).length))),J(ke,H(f)===`repo`?`Repo + global`:H(f)===`global`?`Global only`:`All`),J(Me,H(_)),J(Fe,`${H(g)??``} / ${H(v)??``}`)}),G(`click`,oe,w),G(`click`,ce,ee),G(`click`,de,()=>H(h)?.click()),G(`change`,me,te),va(ge,()=>H(l),e=>I(l,e)),G(`input`,ge,S),va(_e,()=>H(u),e=>I(u,e)),G(`input`,_e,S),va(ve,()=>H(d),e=>I(d,e)),G(`input`,ve,S),Zi(ye,()=>H(f),e=>I(f,e)),G(`change`,ye,S),q(e,ne),Ge()}var _C=K(`<div class="error-banner svelte-1ik2acm"> </div>`),vC=K(`<tr><td colspan="8" class="mem-td svelte-1ik2acm"><div class="skeleton" style="height:20px;border-radius:6px;"></div></td></tr>`),yC=K(`<tr><td colspan="8" class="mem-td svelte-1ik2acm" style="padding:40px;text-align:center;color:var(--color-text-muted);"><!> <div style="margin-top:8px;">No handoffs found</div> <div style="font-size:0.78rem;margin-top:4px;">Create a handoff when work needs context transfer between agents.</div></td></tr>`),bC=K(`<tr class="mem-row svelte-1ik2acm" role="button" tabindex="0"><td class="mem-td svelte-1ik2acm" style="font-size:0.82rem;color:var(--color-text);font-weight:600;"> </td><td class="mem-td svelte-1ik2acm" style="font-size:0.82rem;color:var(--color-text);"> </td><td class="mem-td svelte-1ik2acm" style="font-size:0.75rem;color:var(--color-text-muted);"> </td><td class="mem-td svelte-1ik2acm" style="max-width:300px;"><div class="truncate font-semibold" style="font-size:0.82rem;color:var(--color-text);"> </div></td><td class="mem-td svelte-1ik2acm"><span> </span></td><td class="mem-td svelte-1ik2acm" style="font-size:0.75rem;color:var(--color-text-muted);white-space:nowrap;"> </td><td class="mem-td svelte-1ik2acm" style="font-size:0.75rem;color:var(--color-text-muted);white-space:nowrap;"> </td><td class="mem-td row-actions svelte-1ik2acm"><button class="row-action-btn delete-btn svelte-1ik2acm" title="Expire" aria-label="Expire handoff"><!></button></td></tr>`),xC=K(`<div class="muted-state svelte-1ik2acm">Loading claims...</div>`),SC=K(`<div class="empty-claims svelte-1ik2acm"><!> <div class="empty-title svelte-1ik2acm">No active claims</div> <div class="empty-copy svelte-1ik2acm">Claimed tasks will appear here so you can inspect or release them.</div></div>`),CC=K(`<div class="claim-row svelte-1ik2acm"><div><div class="row-title svelte-1ik2acm"> </div> <div class="row-meta svelte-1ik2acm"><span> </span> <span> </span> <span> </span></div></div> <button class="btn btn-ghost btn-sm"> </button></div>`),wC=K(`<div class="claim-list svelte-1ik2acm"></div>`),TC=K(`<div class="feature-shell animate-fade-in svelte-1ik2acm"><div class="feature-toolbar glass card svelte-1ik2acm"><div class="toolbar-title svelte-1ik2acm"><!> <div><div class="section-label svelte-1ik2acm">HANDOFFS & CLAIMS</div> <div class="toolbar-subtitle svelte-1ik2acm">Handoffs transfer context between agents. Claims reserve a task for one owner.</div></div></div> <button class="btn btn-primary toolbar-action svelte-1ik2acm"><!> New Handoff</button> <div class="toolbar-controls svelte-1ik2acm"><select class="form-select"><option>All statuses</option><option>Pending</option><option>Accepted</option><option>Rejected</option><option>Expired</option></select> <input class="form-input" placeholder="To agent filter"/> <button class="btn btn-ghost"><!> Refresh</button></div></div> <div class="insight-strip svelte-1ik2acm"><div class="insight-card svelte-1ik2acm"><span class="svelte-1ik2acm">Pending</span> <strong class="svelte-1ik2acm"> </strong></div> <div class="insight-card svelte-1ik2acm"><span class="svelte-1ik2acm">Resolved</span> <strong class="svelte-1ik2acm"> </strong></div> <div class="insight-card svelte-1ik2acm"><span class="svelte-1ik2acm">Claims</span> <strong class="svelte-1ik2acm"> </strong></div> <div class="insight-card svelte-1ik2acm"><span class="svelte-1ik2acm">Total</span> <strong class="svelte-1ik2acm"> </strong></div></div> <!> <div class="mem-table-wrap svelte-1ik2acm"><table class="mem-table svelte-1ik2acm"><thead><tr class="mem-thead-row svelte-1ik2acm"><th class="mem-th svelte-1ik2acm" style="min-width:140px;">From</th><th class="mem-th svelte-1ik2acm" style="min-width:140px;">To</th><th class="mem-th svelte-1ik2acm" style="min-width:100px;">Task</th><th class="mem-th svelte-1ik2acm" style="min-width:200px;">Summary</th><th class="mem-th svelte-1ik2acm" style="width:100px;">Status</th><th class="mem-th svelte-1ik2acm" style="width:130px;">Created</th><th class="mem-th svelte-1ik2acm" style="width:130px;">Expires</th><th class="mem-th svelte-1ik2acm" style="width:60px;"></th></tr></thead><tbody><!></tbody></table></div> <div class="claims-section svelte-1ik2acm"><div class="claims-header svelte-1ik2acm"><div class="section-label svelte-1ik2acm">Active Claims</div> <span class="toolbar-subtitle svelte-1ik2acm"> </span></div> <!></div></div> <!>`,1);function EC(e,t){We(t,!1);let n=F(),r=F(),i=ka(t,`repo`,8,``),a=F([]),o=F(!1),s=F(``),c=F(``),l=F(``),u=F([]),d=F(!1),f=F(null),p=F(null),m=F(!1);function h(e){return e?.structuredContent??null}function g(e,t){let n=Object.fromEntries(e.map((e,n)=>[e,t[n]]));return{id:String(n.id||``),repo:i(),from_agent:String(n.from_agent||``),to_agent:n.to_agent?String(n.to_agent):null,task_id:n.task_id?String(n.task_id):null,task_code:n.task_code?String(n.task_code):null,summary:String(n.summary||``),context:n.context&&typeof n.context==`object`&&!Array.isArray(n.context)?n.context:{},status:String(n.status||`pending`),created_at:String(n.created_at||``),updated_at:String(n.updated_at||n.created_at||``),expires_at:n.expires_at?String(n.expires_at):null}}async function _(){if(i()){I(d,!0);try{I(u,(await Z.coordinationClaims({repo:i(),active_only:!0,pageSize:20})).claims||[])}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(d,!1)}}}async function v(){if(i()){I(o,!0),I(s,``);try{let e={repo:i(),limit:50,structured:!0};H(c)&&(e.status=H(c)),H(l).trim()&&(e.to_agent=H(l).trim());let t=h(await Z.callTool(`handoff-list`,e)),n=t?.handoffs?.columns||[];I(a,(t?.handoffs?.rows||[]).map(e=>g(n,e))),H(p)&&!H(a).some(e=>e.id===H(p)?.id)&&I(p,null)}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(o,!1)}}}async function y(){await Promise.all([v(),_()])}function b(){I(p,null),I(m,!0)}function x(e){I(p,e),I(m,!0)}function S(){I(m,!1),I(p,null)}function C(){S(),y()}function w(){S(),y()}async function T(e){I(f,e.id),I(s,``);try{await Z.releaseClaim({repo:i(),task_id:e.task_id,agent:e.agent}),await _()}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(f,null)}}async function E(e){if(confirm(`Expire handoff "${e.summary}"?`))try{await Z.callTool(`handoff-update`,{id:e.id,status:`expired`,structured:!0}),y()}catch(e){I(s,e instanceof Error?e.message:String(e))}}Aa(()=>{y()}),B(()=>W(i()),()=>{i()&&y()}),B(()=>H(a),()=>{I(n,H(a).filter(e=>e.status===`pending`).length)}),B(()=>H(a),()=>{I(r,H(a).filter(e=>e.status!==`pending`).length)}),Un(),Ea();var D=TC(),O=R(D),k=L(O),ee=L(k);Q(L(ee),{name:`git-branch`,size:16,strokeWidth:2}),j(2),A(ee);var te=z(ee,2);Q(L(te),{name:`plus`,size:14,strokeWidth:2}),j(),A(te);var ne=z(te,2),re=L(ne),ie=L(re);ie.value=ie.__value=``;var ae=z(ie);ae.value=ae.__value=`pending`;var oe=z(ae);oe.value=oe.__value=`accepted`;var se=z(oe);se.value=se.__value=`rejected`;var ce=z(se);ce.value=ce.__value=`expired`,A(re);var le=z(re,2);ca(le);var ue=z(le,2);Q(L(ue),{name:`refresh-cw`,size:14,strokeWidth:2}),j(),A(ue),A(ne),A(k);var de=z(k,2),fe=L(de),pe=z(L(fe),2),me=L(pe,!0);A(pe),A(fe);var he=z(fe,2),ge=z(L(he),2),_e=L(ge,!0);A(ge),A(he);var ve=z(he,2),ye=z(L(ve),2),be=L(ye,!0);A(ye),A(ve);var xe=z(ve,2),Se=z(L(xe),2),Ce=L(Se,!0);A(Se),A(xe),A(de);var we=z(de,2),Te=e=>{var t=_C(),n=L(t,!0);A(t),V(()=>J(n,H(s))),q(e,t)};Y(we,e=>{H(s)&&e(Te)});var Ee=z(we,2),De=L(Ee),Oe=z(L(De)),ke=L(Oe),Ae=e=>{var t=li();X(R(t),0,()=>({length:5}),_i,(e,t)=>{q(e,vC())}),q(e,t)},je=e=>{var t=yC(),n=L(t);Q(L(n),{name:`git-branch`,size:22,strokeWidth:1.75}),j(4),A(n),A(t),q(e,t)},Me=e=>{var n=li();X(R(n),1,()=>H(a),e=>e.id,(e,n)=>{var r=bC(),i=L(r),a=L(i,!0);A(i);var o=z(i),s=L(o,!0);A(o);var c=z(o),l=L(c,!0);A(c);var u=z(c),d=L(u),f=L(d,!0);A(d),A(u);var p=z(u),m=L(p);let h;var g=L(m,!0);A(m),A(p);var _=z(p),v=L(_,!0);A(_);var y=z(_),b=L(y,!0);A(y);var S=z(y),C=L(S);Q(L(C),{name:`trash-2`,size:13,strokeWidth:2}),A(C),A(S),A(r),V((e,t,r)=>{J(a,(H(n),U(()=>H(n).from_agent))),J(s,(H(n),U(()=>H(n).to_agent||`—`))),J(l,e),J(f,(H(n),U(()=>H(n).summary))),h=Ki(m,1,`status-pill svelte-1ik2acm`,null,h,{"status-pending":H(n).status===`pending`,"status-accepted":H(n).status===`accepted`,"status-rejected":H(n).status===`rejected`,"status-expired":H(n).status===`expired`}),J(g,(H(n),U(()=>H(n).status))),J(v,t),J(b,r),C.disabled=(H(n),U(()=>H(n).status===`expired`))},[()=>(H(n),U(()=>H(n).task_code||H(n).task_id?.slice(0,8)||`—`)),()=>(W(pl),H(n),U(()=>pl(H(n).created_at))),()=>(H(n),W(pl),U(()=>H(n).expires_at?pl(H(n).expires_at):`—`))]),G(`click`,C,()=>E(H(n))),G(`click`,S,wa(function(e){Oa.call(this,t,e)})),G(`click`,r,()=>x(H(n))),G(`keydown`,r,e=>e.key===`Enter`&&x(H(n))),q(e,r)}),q(e,n)};Y(ke,e=>{H(o)?e(Ae):(H(a),U(()=>H(a).length===0)?e(je,1):e(Me,-1))}),A(Oe),A(De),A(Ee);var Ne=z(Ee,2),Pe=L(Ne),Fe=z(L(Pe),2),Ie=L(Fe);A(Fe),A(Pe);var Le=z(Pe,2),Re=e=>{q(e,xC())},ze=e=>{var t=SC();Q(L(t),{name:`check`,size:20,strokeWidth:1.75}),j(4),A(t),q(e,t)},Be=e=>{var t=wC();X(t,5,()=>H(u),e=>e.id,(e,t)=>{var n=CC(),r=L(n),i=L(r),a=L(i,!0);A(i);var o=z(i,2),s=L(o),c=L(s,!0);A(s);var l=z(s,2),u=L(l,!0);A(l);var d=z(l,2),p=L(d,!0);A(d),A(o),A(r);var m=z(r,2),h=L(m,!0);A(m),A(n),V(e=>{J(a,(H(t),U(()=>H(t).task_code||H(t).task_id))),J(c,(H(t),U(()=>H(t).agent))),J(u,(H(t),U(()=>H(t).role))),J(p,e),m.disabled=(H(f),H(t),U(()=>H(f)===H(t).id)),J(h,(H(f),H(t),U(()=>H(f)===H(t).id?`Releasing...`:`Release`)))},[()=>(W(pl),H(t),U(()=>pl(H(t).claimed_at)))]),G(`click`,m,()=>T(H(t))),q(e,n)}),A(t),q(e,t)};Y(Le,e=>{H(d)?e(Re):(H(u),U(()=>H(u).length===0)?e(ze,1):e(Be,-1))}),A(Ne),A(O),yx(z(O,2),{get handoff(){return H(p)},get open(){return H(m)},onClose:S,onHandoffCreated:C,onHandoffUpdated:w,get repo(){return i()}}),V(()=>{J(me,H(n)),J(_e,H(r)),J(be,(H(u),U(()=>H(u).length))),J(Ce,(H(a),U(()=>H(a).length))),J(Ie,`${(H(u),U(()=>H(u).length))??``} active`)}),G(`click`,te,b),Zi(re,()=>H(c),e=>I(c,e)),G(`change`,re,v),va(le,()=>H(l),e=>I(l,e)),G(`input`,le,v),G(`click`,ue,y),q(e,D),Ge()}var DC={backlog:`#64748b`,pending:`#0ea5e9`,in_progress:`#a855f7`,blocked:`#ef4444`,completed:`#10b981`,canceled:`#94a3b8`},OC={backlog:`backlog`,pending:`pending`,in_progress:`in_progress`,blocked:`blocked`,completed:`completed`,canceled:`canceled`},kC=[`#06b6d4`,`#f59e0b`,`#ec4899`,`#10b981`,`#3b82f6`,`#f97316`,`#14b8a6`,`#e11d48`,`#8b5cf6`,`#84cc16`],AC=16,jC=22,MC=28,NC=new Set([`in_progress`,`pending`]),PC=34,FC=54,IC=28,LC=58,RC=42;function zC(e,t,n){return Math.min(n,Math.max(t,e))}function BC(e,t){let n=Math.max(1,e.w-PC*2),r=Math.max(1,e.h-FC-IC),i=zC(Math.floor(n/LC)+1,1,3),a=Math.max(1,Math.floor(r/RC)+1),o=t%(i*a),s=o%i,c=Math.floor(o/i),l=i>1?n/(i-1):0,u=a>1?r/(a-1):0;return{x:e.x+PC+s*l,y:e.y+FC+c*u}}var VC=[`male_nurse`,`female_nurse`,`staff1`,`staff2`];function HC(e){return e%2==0?`wheelchair`:`stretcher`}function UC(e){return VC[(e>>>4)%VC.length]}function WC(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t}function GC(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return kC[t%kC.length]}function KC(e,t){let n=e-32,r=t-32,i=Math.floor((r-16)/2),a=r-i-16,o=Math.floor((n-16)/2),s=Math.floor((n-32)/3);return[{id:`pending`,label:`Pending`,x:16,y:16,w:o,h:i,color:`#f59e0b`},{id:`in_progress`,label:`In Progress`,x:16+o+16,y:16,w:n-o-16,h:i,color:`#3b82f6`},{id:`backlog`,label:`Backlog`,x:16,y:16+i+16,w:s,h:a,color:`#8b5cf6`},{id:`blocked`,label:`Blocked`,x:16+s+16,y:16+i+16,w:s,h:a,color:`#ef4444`},{id:`burnout`,label:`Therapy Room`,x:16+s*2+32,y:16+i+16,w:n-s*2-32,h:a,color:`#14b8a6`}]}function qC(e,t){let n=new Map(t.map(e=>[e.id,e])),r=new Map;t.forEach(e=>r.set(e.id,[]));for(let t of e){let e=OC[t.status]??`pending`;if(!r.has(e))continue;let n=r.get(e);n.length<AC&&n.push(t)}let i=new Map;for(let[e,t]of r){let r=n.get(e);if(!r||t.length===0)continue;let a=r.w-jC*2,o=r.h-jC-MC,s=Math.max(1,Math.floor(a/65)),c=Math.ceil(t.length/s);for(;o/c<55&&s<t.length;)s++,c=Math.ceil(t.length/s);let l=a/s,u=Math.max(55,Math.min(75,o/c));t.forEach((e,t)=>{let n=t%s,a=Math.floor(t/s);i.set(e.id,{x:r.x+jC+n*l+l/2,y:r.y+MC+a*u+u/2})})}return i}function JC(e,t,n,r,i){let a=KC(i.canvasWidth,i.canvasHeight),o=qC(e,a),s=a.find(e=>e.id===`in_progress`)||a[0],c={agents:new Map,tasks:new Map,handoffs:[]};for(let t of e){let e=o.get(t.id);e&&c.tasks.set(t.id,{id:t.id,taskCode:t.task_code,title:t.title,repo:t.repo,status:t.status,priority:t.priority??3,x:e.x,y:e.y,claimedByAgentId:t.coordination?.active_claim_agent??null,hasPendingHandoff:(t.coordination?.pending_handoff_count??0)>0})}let l=new Map;for(let e of t){l.has(e.agent)||l.set(e.agent,{tasks:new Set,role:e.role,repos:new Set});let t=l.get(e.agent);t.tasks.add(e.task_id),t.repos.add(e.repo)}for(let t of e){let e=t.coordination?.active_claim_agent;if(!e)continue;l.has(e)||l.set(e,{tasks:new Set,role:t.coordination?.active_claim_role??`agent`,repos:new Set});let n=l.get(e);n.tasks.add(t.id),n.repos.add(t.repo)}Array.from(l.keys()).forEach((e,t)=>{let{tasks:n,role:i,repos:o}=l.get(e),u=r?.agents.get(e),d=s.x+s.w/2+(t%3-1)*30,f=s.y+s.h/2+(Math.floor(t/3)-1)*30,p=Array.from(n).find(e=>c.tasks.has(e)),m=p?c.tasks.get(p):null,h=Array.from(n).map(e=>c.tasks.get(e)).filter(e=>!!e).some(e=>NC.has(e.status)),g=m?m.x+20:d,_=m?m.y-18:f,v=Array.from(n).sort(),y=u?.claimedTaskIds.slice().sort()??[],b=!u||v.join(`,`)!==y.join(`,`),x=Date.now(),S=b?x:u?.lastUpdateTs??x,C=!h&&x-S>3e4,w=n.size>0?`processing`:`idle`;m&&m.status===`blocked`&&(w=`blocked`);let T=u?.handoffAnim??null;if(C){w=`burnout`;let n=BC(a.find(e=>e.id===`burnout`)||s,t);if(g=n.x,_=n.y,u?.state!==`burnout`&&!T){let t=WC(e),n=u?.x??d,r=u?.y??f;T={phase:`pickup`,vehicle:HC(t),helperVariant:UC(t),startX:n,startY:r,endX:g,endY:_,progress:0,phaseStartTs:performance.now(),wheelAngle:0,helperWalkPhase:0,helperFacing:`down`,stepBounce:0}}}else T=null;c.agents.set(e,{id:e,name:e,role:i,color:GC(e),x:u?.x??d,y:u?.y??f,targetX:g,targetY:_,vx:u?.vx??0,vy:u?.vy??0,walkPhase:u?.walkPhase??0,facing:u?.facing??`down`,state:w,claimedTaskIds:Array.from(n),repos:Array.from(o),lastUpdateTs:S,handoffAnim:T})});for(let e of n)e.status===`pending`&&c.handoffs.push({id:e.id,fromAgentId:e.from_agent,toAgentId:e.to_agent,taskId:e.task_id,summary:e.summary});return c}function YC(e){return e?.structuredContent??null}function XC(e,t,n){let r=Object.fromEntries(e.map((e,n)=>[e,t[n]]));return{id:String(r.id??``),repo:n,from_agent:String(r.from_agent??``),to_agent:r.to_agent?String(r.to_agent):null,task_id:r.task_id?String(r.task_id):null,task_code:r.task_code?String(r.task_code):null,summary:String(r.summary??``),context:r.context??{},status:String(r.status??`pending`),created_at:String(r.created_at??``),updated_at:String(r.updated_at??r.created_at??``),expires_at:r.expires_at?String(r.expires_at):null}}function ZC(){let e=M({scene:null,loading:!1,error:null,lastUpdated:0,repoCount:0}),t=null,n=!1,r=null;async function i(){if(n||!r)return;let t=N(za).map(e=>e.repo);if(t.length===0){e.update(e=>({...e,loading:!1}));return}n=!0;try{let n=await Promise.allSettled(t.map(e=>Promise.allSettled([Z.tasks({repo:e,status:`in_progress`,pageSize:10}),Z.tasks({repo:e,status:`pending`,pageSize:8}),Z.tasks({repo:e,status:`blocked`,pageSize:4}),Z.coordinationClaims({repo:e,active_only:!0,pageSize:50}),Z.callTool(`handoff-list`,{repo:e,status:`pending`,limit:10,structured:!0})]))),i=[],a=[],o=[];t.forEach((e,t)=>{let r=n[t];if(r.status===`rejected`)return;let[s,c,l,u,d]=r.value;if(s.status===`fulfilled`&&i.push(...s.value.tasks??[]),c.status===`fulfilled`&&i.push(...c.value.tasks??[]),l.status===`fulfilled`&&i.push(...l.value.tasks??[]),u.status===`fulfilled`&&a.push(...u.value.claims??[]),d.status===`fulfilled`){let t=YC(d.value),n=t?.handoffs?.columns??[],r=t?.handoffs?.rows??[];o.push(...r.map(t=>XC(n,t,e)))}});let s=Array.from(new Map(i.map(e=>[e.id,e])).values());e.update(e=>({...e,scene:JC(s,a,o,e.scene,r),loading:!1,error:null,lastUpdated:Date.now(),repoCount:t.length}))}catch(t){e.update(e=>({...e,loading:!1,error:t instanceof Error?t.message:`Failed to load arena data`}))}finally{n=!1}}function a(e){r=e}function o(n){r=n,e.update(e=>({...e,loading:!0})),i(),t!==null&&clearInterval(t),t=setInterval(()=>void i(),2500)}function s(){t!==null&&(clearInterval(t),t=null),n=!1}return{subscribe:e.subscribe,start:o,stop:s,setLayout:a,refresh:i}}var QC=85,$C=50,ew=6,tw=[2800,5e3],nw=[600,1600],rw=100,iw=800,aw=600;function ow(e){if(!e)return[0,0,0];let t=e.replace(`#`,``);t.length===3?t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]:t.length===8&&(t=t.slice(0,6));let n=parseInt(t,16);return[n>>16&255,n>>8&255,n&255]}function sw(e,t){let[n,r,i]=ow(e);return`rgb(${Math.min(255,n+t)},${Math.min(255,r+t)},${Math.min(255,i+t)})`}function cw(e,t){let[n,r,i]=ow(e);return`rgb(${Math.max(0,n-t)},${Math.max(0,r-t)},${Math.max(0,i-t)})`}function lw(e,t){let[n,r,i]=ow(e);return`rgba(${n},${r},${i},${t})`}function uw(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t}function dw(e,t){return Math.abs(Math.sin(e*127.1+t*311.7)*43758.5453)%1}function $(e,t,n,r,i,a){a=Math.min(a,r/2,i/2),e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.arcTo(t+r,n,t+r,n+a,a),e.lineTo(t+r,n+i-a),e.arcTo(t+r,n+i,t+r-a,n+i,a),e.lineTo(t+a,n+i),e.arcTo(t,n+i,t,n+i-a,a),e.lineTo(t,n+a),e.arcTo(t,n,t+a,n,a),e.closePath()}var fw=[`#1a0a00`,`#2d1a00`,`#0f0f0f`,`#4a2d00`,`#8B4513`,`#d4a800`,`#c0392b`,`#7b2d8b`,`#1a3a5c`,`#2d4a1a`],pw=[`#f5c89a`,`#e8a870`,`#d4875a`,`#c06840`,`#8B5e3c`,`#6b3d28`],mw=[`#1e3a5f`,`#2d4a1a`,`#3d2a1a`,`#2a1a3d`,`#1a3d3d`,`#3d1a2a`,`#2a2a3d`],hw={male_nurse:`#1e6e9e`,female_nurse:`#2d8e6e`,staff1:`#5a3e8a`,staff2:`#8a5a3e`},gw={male_nurse:`#1a0a00`,female_nurse:`#4a2d00`,staff1:`#0f0f0f`,staff2:`#2d1a00`},_w={male_nurse:`#e8a870`,female_nurse:`#f5c89a`,staff1:`#d4875a`,staff2:`#c06840`},vw=class{canvas;ctx;scene=null;layout=null;isDark=!1;hoveredId=null;rafId=0;ts=0;prevTs=0;wander=new Map;constructor(e){this.canvas=e,this.ctx=e.getContext(`2d`)}update(e,t,n){this.scene=e,this.layout=t,this.isDark=n}setHovered(e){this.hoveredId=e}start(){this.rafId=requestAnimationFrame(this.loop)}stop(){cancelAnimationFrame(this.rafId)}hitTestAgent(e,t){if(!this.scene)return null;for(let n of this.scene.agents.values()){let r=e-n.x,i=t-n.y;if(r*r+i*i<=196)return n.id}return null}loop=e=>{let t=Math.min((e-this.prevTs)/1e3,.05);if(this.prevTs=e,this.ts=e,this.scene&&this.layout){let n=KC(this.layout.canvasWidth,this.layout.canvasHeight),r=n.find(e=>e.id===`in_progress`)||n[0];this.updateAgents(t,r,e)}this.render(),this.rafId=requestAnimationFrame(this.loop)};updateAgents(e,t,n){if(this.scene)for(let r of this.scene.agents.values()){if(r.handoffAnim){this.updateHandoffAnim(r,e,n);continue}if(r.state===`idle`){let e=this.wander.get(r.id);if(e||(e={nextPickAt:n},this.wander.set(r.id,e)),n>=e.nextPickAt){r.targetX=t.x+22+Math.random()*(t.w-44),r.targetY=t.y+26+22+Math.random()*(t.h-26-44);let i=nw[0]+Math.random()*(nw[1]-nw[0]),a=tw[0]+Math.random()*(tw[1]-tw[0]);e.nextPickAt=n+i+a}if(Math.random()<.005){let e=[`up`,`down`,`left`,`right`];r.facing=e[Math.floor(Math.random()*e.length)]}}else this.wander.delete(r.id);let i=r.targetX-r.x,a=r.targetY-r.y,o=Math.hypot(i,a);if(o<ew)r.vx*=.75,r.vy*=.75,Math.abs(r.vx)<.5&&(r.vx=0),Math.abs(r.vy)<.5&&(r.vy=0);else{let e=r.state===`idle`?$C:QC,t=o<50?o/50*e+8:e;r.vx+=(i/o*t-r.vx)*.1,r.vy+=(a/o*t-r.vy)*.1}r.x+=r.vx*e,r.y+=r.vy*e;let s=Math.hypot(r.vx,r.vy);s>5?(r.walkPhase=(r.walkPhase+e*s*.07)%(Math.PI*2),r.facing=Math.abs(r.vx)>Math.abs(r.vy)?r.vx>0?`right`:`left`:r.vy>0?`down`:`up`):r.walkPhase=r.walkPhase>.05?r.walkPhase*.85:0}}updateHandoffAnim(e,t,n){let r=e.handoffAnim,i=n-r.phaseStartTs;switch(r.phase){case`pickup`:e.vx=0,e.vy=0,e.walkPhase=0,i>=iw&&(r.phase=`moving`,r.phaseStartTs=n,r.progress=0);break;case`moving`:{let i=Math.hypot(r.endX-r.startX,r.endY-r.startY),a=i/rw;r.progress=Math.min(1,r.progress+t/a);let o=r.progress,s=o<.5?2*o*o:1-(-2*o+2)**2/2;e.x=r.startX+(r.endX-r.startX)*s,e.y=r.startY+(r.endY-r.startY)*s,e.vx=0,e.vy=0;let c=t/a*i;r.wheelAngle=(r.wheelAngle+c*.15)%(Math.PI*2),r.helperWalkPhase=(r.helperWalkPhase+t*rw*.08)%(Math.PI*2),r.stepBounce=Math.sin(r.helperWalkPhase*2)*1.5;let l=r.endX-r.startX,u=r.endY-r.startY;r.helperFacing=Math.abs(l)>Math.abs(u)?l>0?`right`:`left`:u>0?`down`:`up`,r.progress>=1&&(r.phase=`arrive`,r.phaseStartTs=n,e.x=r.endX,e.y=r.endY);break}case`arrive`:e.x=r.endX,e.y=r.endY,e.vx=0,e.vy=0,e.walkPhase=0,r.helperWalkPhase=r.helperWalkPhase>.05?r.helperWalkPhase*.92:0,i>=aw&&(r.phase=`resting`,r.phaseStartTs=n,e.targetX=r.endX,e.targetY=r.endY);break;case`resting`:e.x=r.endX,e.y=r.endY,e.vx=0,e.vy=0,e.walkPhase=0;break}}render(){let{canvas:e,ctx:t,scene:n,layout:r,isDark:i,ts:a}=this;if(!r)return;let o=KC(r.canvasWidth,r.canvasHeight);t.clearRect(0,0,e.width,e.height),this.drawGlobalFloor(i);for(let e of o)this.drawRoom(e,i);if(!n)return;let s=Array.from(n.tasks.values()).sort((e,t)=>e.y-t.y);for(let e of s)this.drawWorkstation(e,i,a);this.drawClaimLinks(n,a),this.drawHandoffBeams(n,a);for(let e of n.agents.values())e.handoffAnim&&this.drawHandoffTrail(e,i,a);let c=Array.from(n.agents.values()).sort((e,t)=>e.y-t.y||(e.id===this.hoveredId?1:-1));for(let e of c)e.handoffAnim?this.drawHandoffGroup(e,i,a):this.drawCharacter(e,i,a)}drawGlobalFloor(e){let{ctx:t,canvas:n}=this;t.fillStyle=e?`#0a0e1a`:`#dde3ed`,t.fillRect(0,0,n.width,n.height),t.strokeStyle=e?`rgba(255,255,255,0.02)`:`rgba(0,0,0,0.03)`,t.lineWidth=.5;for(let e=0;e<n.width;e+=24)t.beginPath(),t.moveTo(e,0),t.lineTo(e,n.height),t.stroke();for(let e=0;e<n.height;e+=24)t.beginPath(),t.moveTo(0,e),t.lineTo(n.width,e),t.stroke()}drawRoom(e,t){let{ctx:n}=this,{x:r,y:i,w:a,h:o,color:s,id:c}=e;switch(n.save(),$(n,r,i,a,o,10),n.clip(),c){case`in_progress`:this.drawPlazaFloor(n,r,i,a,o,t);break;case`backlog`:this.drawDirtFloor(n,r,i,a,o,`#5b3a6e`,t);break;case`pending`:this.drawDirtFloor(n,r,i,a,o,`#a68246`,t);break;case`blocked`:this.drawDirtFloor(n,r,i,a,o,`#8b2a2a`,t);break;case`burnout`:this.drawCleanTileFloor(n,r,i,a,o,t);break;case`completed`:this.drawGrassFloor(n,r,i,a,o,t);break;default:this.drawWoodPlankFloor(n,r,i,a,o,t);break}let l=r+a/2,u=i+o*.35,d=n.createRadialGradient(l,u,0,l,u,Math.max(a,o)*.85);d.addColorStop(0,lw(s,t?.12:.08)),d.addColorStop(1,`rgba(0,0,0,0)`),n.fillStyle=d,n.fillRect(r,i,a,o),n.restore(),this.drawWall(n,r,i,a,t,s),n.strokeStyle=lw(s,t?.45:.35),n.lineWidth=1.5,$(n,r,i,a,o,10),n.stroke(),this.drawRoomDecor(n,e,t),this.drawZoneLabel(n,e,t)}drawPlazaFloor(e,t,n,r,i,a){let o=a?`#2e3540`:`#b0b8c4`,s=a?`#262d36`:`#a0a8b4`;e.fillStyle=o,e.fillRect(t,n,r,i);for(let o=Math.floor(t/24)*24;o<t+r;o+=24)for(let t=Math.floor(n/24)*24;t<n+i;t+=24)Math.round(o/24)+Math.round(t/24)&1||(e.fillStyle=s,e.fillRect(o,t,24,24)),dw(o,t)>.8&&(e.strokeStyle=a?`rgba(0,0,0,0.3)`:`rgba(0,0,0,0.1)`,e.lineWidth=1,e.beginPath(),e.moveTo(o+2,t+2),e.lineTo(o+24/2,t+24/2),e.stroke())}drawDirtFloor(e,t,n,r,i,a,o){e.fillStyle=a,e.fillRect(t,n,r,i);for(let a=t;a<t+r;a+=16)for(let t=n;t<n+i;t+=16){let n=dw(a,t);n>.5&&(e.fillStyle=o?`rgba(0,0,0,0.15)`:`rgba(255,255,255,0.1)`,e.beginPath(),e.arc(a+n*10,t+n*10,2+n*2,0,Math.PI*2),e.fill())}}drawGrassFloor(e,t,n,r,i,a){e.fillStyle=a?`#1a4020`:`#4ade80`,e.fillRect(t,n,r,i),e.strokeStyle=a?`rgba(0,0,0,0.2)`:`rgba(0,0,0,0.1)`;for(let a=t;a<t+r;a+=12)for(let t=n;t<n+i;t+=12){let n=dw(a,t);n>.4&&(e.beginPath(),e.moveTo(a+n*5,t+8),e.lineTo(a+n*5+2,t+2),e.lineTo(a+n*5+4,t+8),e.stroke())}}drawWoodPlankFloor(e,t,n,r,i,a){let o=a?30:180,s=a?22:140,c=a?12:80;e.fillStyle=`rgb(${o},${s},${c})`,e.fillRect(t,n,r,i);for(let l=Math.floor(n/9)*9;l<n+i;l+=9){let n=Math.round(l/9),i=(dw(n,0)*30-15)*(a?.8:.6);e.fillStyle=`rgb(${Math.round(Math.min(255,Math.max(0,o+i)))},${Math.round(Math.min(255,Math.max(0,s+i)))},${Math.round(Math.min(255,Math.max(0,c+i)))})`,e.fillRect(t,l,r,9),e.strokeStyle=a?`rgba(0,0,0,0.2)`:`rgba(0,0,0,0.07)`,e.lineWidth=.5,e.beginPath(),e.moveTo(t,l),e.lineTo(t+r,l),e.stroke();let u=n%2*55+dw(n,1)*40;for(let i=t+u;i<t+r;i+=80+dw(n,i)*20)e.beginPath(),e.moveTo(i,l),e.lineTo(i,l+9),e.stroke()}}drawCarpetFloor(e,t,n,r,i,a,o){e.fillStyle=o?`#100d18`:`#1a1535`,e.fillRect(t,n,r,i),e.strokeStyle=lw(a,.06),e.lineWidth=1;for(let a=-i;a<r+i;a+=8)e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+a+i,n+i),e.stroke();e.strokeStyle=o?`rgba(255,255,255,0.025)`:`rgba(255,255,255,0.04)`,e.lineWidth=.5;for(let a=t;a<t+r;a+=12)e.beginPath(),e.moveTo(a,n),e.lineTo(a,n+i),e.stroke();for(let a=n;a<n+i;a+=12)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawCrackedTileFloor(e,t,n,r,i,a){e.fillStyle=a?`#1c1410`:`#c8b89a`,e.fillRect(t,n,r,i);for(let o=Math.floor(t/18)*18;o<t+r;o+=18)for(let t=Math.floor(n/18)*18;t<n+i;t+=18){let n=dw(Math.round(o/18),Math.round(t/18)),r=(n*30-15)*(a?.7:.5);e.fillStyle=a?`rgba(255,${100+r},${50+r},0.04)`:`rgba(180,${140+r},${100+r},0.3)`,e.fillRect(o,t,18,18),n>.85&&(e.strokeStyle=a?`rgba(0,0,0,0.6)`:`rgba(100,80,60,0.5)`,e.lineWidth=.75,e.beginPath(),e.moveTo(o+n*18,t+2),e.lineTo(o+18/2+n*5,t+18/2),e.lineTo(o+18*.8,t+18-2),e.stroke())}e.strokeStyle=a?`rgba(0,0,0,0.5)`:`rgba(0,0,0,0.12)`,e.lineWidth=1;for(let a=Math.floor(t/18)*18;a<=t+r;a+=18)e.beginPath(),e.moveTo(a,n),e.lineTo(a,n+i),e.stroke();for(let a=Math.floor(n/18)*18;a<=n+i;a+=18)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawCleanTileFloor(e,t,n,r,i,a){let o=a?`#1a2530`:`#f0f4f8`,s=a?`#1f2d3a`:`#e8eef4`;e.fillStyle=o,e.fillRect(t,n,r,i);for(let o=Math.floor(t/22)*22;o<t+r;o+=22)for(let t=Math.floor(n/22)*22;t<n+i;t+=22)Math.round(o/22)+Math.round(t/22)&1||(e.fillStyle=s,e.fillRect(o+1,t+1,20,20),e.fillStyle=a?`rgba(255,255,255,0.04)`:`rgba(255,255,255,0.6)`,e.fillRect(o+3,t+3,5,5));e.strokeStyle=a?`rgba(255,255,255,0.04)`:`rgba(0,0,0,0.06)`,e.lineWidth=.75;for(let a=Math.floor(t/22)*22;a<=t+r;a+=22)e.beginPath(),e.moveTo(a,n),e.lineTo(a,n+i),e.stroke();for(let a=Math.floor(n/22)*22;a<=n+i;a+=22)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawConcreteFloor(e,t,n,r,i,a){e.fillStyle=a?`#141418`:`#b8bec8`,e.fillRect(t,n,r,i),e.strokeStyle=a?`rgba(255,255,255,0.03)`:`rgba(255,255,255,0.15)`,e.lineWidth=1;for(let a=n;a<n+i;a+=4)dw(0,Math.round(a))>.5&&(e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke());e.strokeStyle=a?`rgba(0,0,0,0.4)`:`rgba(0,0,0,0.1)`,e.lineWidth=1.5;for(let a=n+(80-(n%80||80));a<n+i;a+=80)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawWall(e,t,n,r,i,a){e.fillStyle=i?`#1c2130`:`#c4cad6`,$(e,t,n,r,11,0),e.fill(),e.strokeStyle=i?`rgba(255,255,255,0.05)`:`rgba(0,0,0,0.06)`,e.lineWidth=.75;for(let i=t+24;i<t+r;i+=24)e.beginPath(),e.moveTo(i,n),e.lineTo(i,n+11),e.stroke();e.fillStyle=lw(a,.4),e.fillRect(t,n,r,2.5);let o=e.createLinearGradient(t,n+11,t,n+11+8);o.addColorStop(0,`rgba(0,0,0,0.28)`),o.addColorStop(1,`rgba(0,0,0,0)`),e.fillStyle=o,e.fillRect(t,n+11,r,8),e.fillStyle=i?`#253040`:`#b8bfc9`,e.fillRect(t,n,6,11),e.fillRect(t+r-6,n,6,11)}drawZoneLabel(e,t,n){let{x:r,y:i,w:a,color:o,label:s}=t,c=Math.min(a-16,92),l=r+9,u=i+3;e.fillStyle=lw(o,n?.25:.18),$(e,l,u,c,16,5),e.fill(),e.strokeStyle=lw(o,.6),e.lineWidth=.75,$(e,l,u,c,16,5),e.stroke(),e.fillStyle=o,e.font=`bold 8px system-ui,sans-serif`,e.textAlign=`left`,e.textBaseline=`middle`,e.fillText(s.toUpperCase(),l+6,u+16/2)}drawRoomDecor(e,t,n){let{x:r,y:i,w:a,h:o,id:s}=t;switch(s){case`in_progress`:this.decorWorkspace(e,r,i,a,o,n);break;case`backlog`:this.decorArchive(e,r,i,a,o,n);break;case`pending`:this.decorLobby(e,r,i,a,o,n);break;case`blocked`:this.decorIssues(e,r,i,a,o);break;case`burnout`:this.decorTherapy(e,r,i,a,o,n);break}}decorPlaza(e,t,n,r,i,a){let o=t+r/2,s=n+i/2;e.fillStyle=a?`#1e293b`:`#94a3b8`,e.beginPath(),e.arc(o,s,24,0,Math.PI*2),e.fill(),e.fillStyle=a?`#0ea5e9`:`#38bdf8`,e.beginPath(),e.arc(o,s,20,0,Math.PI*2),e.fill(),e.fillStyle=`rgba(255,255,255,0.4)`,e.beginPath(),e.arc(o,s,8,0,Math.PI*2),e.fill()}decorFence(e,t,n,r,i,a){e.strokeStyle=a?`#452b14`:`#8b5a2b`,e.lineWidth=4,e.strokeRect(t+4,n+4,r-8,i-8)}decorBlocked(e,t,n,r,i,a){this.decorFence(e,t,n,r,i,a),e.fillStyle=`#f97316`,[[t+20,n+i-20],[t+40,n+i-20]].forEach(([t,n])=>{e.beginPath(),e.moveTo(t,n-10),e.lineTo(t+6,n),e.lineTo(t-6,n),e.fill()})}decorGarden(e,t,n,r,i,a){e.fillStyle=a?`#064e3b`:`#166534`,e.fillRect(t+10,n+10,20,20),e.beginPath(),e.arc(t+r-20,n+i-20,15,0,Math.PI*2),e.fill()}decorLobby(e,t,n,r,i,a){let o=t+r/2-28,s=n+i-55;this.drawSofa(e,o,s,56,a),this.drawCoffeeTable(e,t+r/2-14,n+i-32,a),this.drawPotPlant(e,t+8,n+i-18,a),this.drawPotPlant(e,t+r-18,n+i-18,a),this.drawPotPlant(e,t+8,n+28,a);let c=Math.min(r-20,70);this.drawReceptionDesk(e,t+r/2-c/2,n+24,c,a),this.drawCeilingLamp(e,t+r/2,n+14,a,this.ts)}decorInbox(e,t,n,r,i,a){this.drawLetterSorter(e,t+r-28,n+20,a),this.drawClock(e,t+18,n+20,a)}decorWorkspace(e,t,n,r,i,a){this.drawPowerStrip(e,t+12,n+i-16,Math.min(r-24,60),a),this.drawWhiteboard(e,t+r-36,n+18,a),this.drawWaterDispenser(e,t+20,n+12,a),this.drawFlowerVase(e,t+r/2,n+24,a)}decorIssues(e,t,n,r,i){e.save(),e.globalAlpha=.25,e.strokeStyle=`#f59e0b`,e.lineWidth=4,e.setLineDash([8,8]),e.beginPath(),e.moveTo(t,n+i-8),e.lineTo(t+r,n+i-8),e.stroke(),e.setLineDash([]),e.restore(),this.drawHazardSign(e,t+r/2-10,n+16)}decorDone(e,t,n,r,i,a){this.drawTrophyShelf(e,t+10,n+20,a,this.ts),this.drawPotPlant(e,t+r-18,n+i-20,a)}decorArchive(e,t,n,r,i,a){for(let i=t+10;i<t+r-22;i+=26)this.drawFilingCabinet(e,i,n+18,a);this.drawPotPlant(e,t+r-15,n+i-20,a)}drawSofa(e,t,n,r,i){let a=i?`#2d3a4a`:`#8b9eb5`,o=i?`#3a4d62`:`#a8bdd4`,s=i?`#253040`:`#7b8ea5`;e.fillStyle=a,$(e,t,n,r,8,3),e.fill(),e.fillStyle=o,$(e,t,n+7,r,10,3),e.fill(),e.fillStyle=s,$(e,t-4,n,8,17,3),e.fill(),e.fillStyle=s,$(e,t+r-4,n,8,17,3),e.fill(),e.strokeStyle=i?`rgba(255,255,255,0.07)`:`rgba(0,0,0,0.08)`,e.lineWidth=1,e.beginPath(),e.moveTo(t+r/3,n+7),e.lineTo(t+r/3,n+17),e.stroke(),e.beginPath(),e.moveTo(t+r*2/3,n+7),e.lineTo(t+r*2/3,n+17),e.stroke(),e.fillStyle=i?`#1a2030`:`#6b7c90`,[[t+2,n+15],[t+r-6,n+15]].forEach(([t,n])=>e.fillRect(t,n,4,4))}drawCoffeeTable(e,t,n,r){e.fillStyle=`rgba(0,0,0,0.15)`,e.beginPath(),e.ellipse(t+14,n+6,16,7,0,0,Math.PI*2),e.fill(),e.fillStyle=r?`#2a3545`:`#93a8be`,e.beginPath(),e.ellipse(t+14,n+4,15,6,0,0,Math.PI*2),e.fill(),e.strokeStyle=r?`#3a4a5a`:`#7a96b0`,e.lineWidth=1,e.beginPath(),e.ellipse(t+14,n+4,15,6,0,0,Math.PI*2),e.stroke(),e.fillStyle=`rgba(255,255,255,0.1)`,e.beginPath(),e.ellipse(t+10,n+2,6,2,0,0,Math.PI*2),e.fill()}drawPotPlant(e,t,n,r){e.fillStyle=r?`#4a2d1a`:`#c4825a`,$(e,t-5,n-8,10,9,2),e.fill(),e.strokeStyle=r?`#6b4028`:`#a0643c`,e.lineWidth=.5,$(e,t-5,n-8,10,9,2),e.stroke(),e.fillStyle=r?`#2d1a0a`:`#6b4a28`,e.fillRect(t-4,n-9,8,3);let i=[`#16a34a`,`#15803d`,`#22c55e`,`#166534`];[[-5,-18,4,3,-.3],[-2,-20,4,3,0],[3,-18,4,3,.3],[-7,-14,3.5,2.5,-.5],[5,-14,3.5,2.5,.5]].forEach(([r,a,o,s,c],l)=>{e.save(),e.translate(t+r,n+a),e.rotate(c),e.fillStyle=i[l%i.length],e.beginPath(),e.ellipse(0,0,o,s,0,0,Math.PI*2),e.fill(),e.restore()})}drawReceptionDesk(e,t,n,r,i){e.fillStyle=i?`#1a2535`:`#9aafcc`,$(e,t,n,r,14,4),e.fill(),e.strokeStyle=i?`#2a3a50`:`#7a94b0`,e.lineWidth=1,$(e,t,n,r,14,4),e.stroke(),e.fillStyle=i?`rgba(255,255,255,0.05)`:`rgba(255,255,255,0.35)`,$(e,t+2,n+2,r-4,4,2),e.fill(),e.fillStyle=i?`#0f172a`:`#1e2535`,$(e,t+r/2-8,n-10,16,10,2),e.fill(),e.fillStyle=i?`#1e40af`:`#3b82f6`,$(e,t+r/2-7,n-9,14,8,1),e.fill()}drawCeilingLamp(e,t,n,r,i){e.strokeStyle=r?`#3a4555`:`#6b7a8a`,e.lineWidth=1,e.beginPath(),e.moveTo(t,n-8),e.lineTo(t,n+2),e.stroke(),e.fillStyle=r?`#2a3040`:`#e8d870`,e.beginPath(),e.moveTo(t-10,n+2),e.lineTo(t+10,n+2),e.lineTo(t+8,n+10),e.lineTo(t-8,n+10),e.closePath(),e.fill();let a=.5+.5*Math.sin(i*.0015),o=e.createRadialGradient(t,n+10,0,t,n+10,35+a*5);o.addColorStop(0,r?`rgba(255,240,180,${.15+a*.05})`:`rgba(255,240,180,${.2+a*.05})`),o.addColorStop(1,`rgba(0,0,0,0)`),e.fillStyle=o,e.fillRect(t-40,n+10,80,45)}drawLetterSorter(e,t,n,r){e.fillStyle=r?`#2d3a50`:`#8faac0`,$(e,t,n,22,28,2),e.fill(),e.strokeStyle=r?`#3a4a60`:`#7090a8`,e.lineWidth=.75,[0,7,14,21].forEach(r=>{e.beginPath(),e.moveTo(t+1,n+r),e.lineTo(t+21,n+r),e.stroke()}),[`#ef4444`,`#f59e0b`,`#3b82f6`,`#10b981`].forEach((r,i)=>{e.fillStyle=r+`aa`,$(e,t+2,n+i*7+1,18,5,1),e.fill()})}drawClock(e,t,n,r){e.fillStyle=r?`#1e2840`:`#f0f4fc`,e.beginPath(),e.arc(t,n,9,0,Math.PI*2),e.fill(),e.strokeStyle=r?`#3a4a60`:`#8898b0`,e.lineWidth=1,e.beginPath(),e.arc(t,n,9,0,Math.PI*2),e.stroke(),e.strokeStyle=r?`#5a6a80`:`#8898b0`,e.lineWidth=.75;for(let r=0;r<12;r++){let i=r*Math.PI/6,a=7.5;e.beginPath(),e.moveTo(t+Math.cos(i)*a,n+Math.sin(i)*a),e.lineTo(t+Math.cos(i)*(a-2),n+Math.sin(i)*(a-2)),e.stroke()}let i=new Date,a=i.getMinutes()/60*Math.PI*2-Math.PI/2,o=i.getHours()%12/12*Math.PI*2+i.getMinutes()/60*Math.PI/6-Math.PI/2;e.strokeStyle=r?`#e2e8f0`:`#1e2840`,e.lineWidth=1.5,e.lineCap=`round`,e.beginPath(),e.moveTo(t,n),e.lineTo(t+Math.cos(o)*5,n+Math.sin(o)*5),e.stroke(),e.lineWidth=1,e.beginPath(),e.moveTo(t,n),e.lineTo(t+Math.cos(a)*7,n+Math.sin(a)*7),e.stroke(),e.fillStyle=`#ef4444`,e.beginPath(),e.arc(t,n,1.5,0,Math.PI*2),e.fill()}drawPowerStrip(e,t,n,r,i){e.fillStyle=i?`#1a1a1a`:`#2d2d2d`,$(e,t,n,r,6,3),e.fill(),e.fillStyle=i?`#3a3a3a`:`#4a4a4a`;for(let i=6;i<r-4;i+=10)$(e,t+i,n+1,6,4,2),e.fill()}drawWhiteboard(e,t,n,r){e.fillStyle=r?`#1e2840`:`#f8fafc`,$(e,t,n,28,22,2),e.fill(),e.strokeStyle=r?`#3a4a60`:`#b0bac8`,e.lineWidth=1,$(e,t,n,28,22,2),e.stroke(),[r?`#4ade80`:`#16a34a`,r?`#60a5fa`:`#2563eb`,r?`#f472b6`:`#db2777`].forEach((r,i)=>{e.strokeStyle=r,e.lineWidth=.75,e.beginPath(),e.moveTo(t+3,n+5+i*5),e.lineTo(t+3+8+i*4,n+5+i*5),e.stroke()})}drawHazardSign(e,t,n){e.fillStyle=`#f59e0b`,e.beginPath(),e.moveTo(t+10,n),e.lineTo(t+20,n+16),e.lineTo(t,n+16),e.closePath(),e.fill(),e.strokeStyle=`#1a1a1a`,e.lineWidth=1,e.stroke(),e.fillStyle=`#1a1a1a`,e.font=`bold 9px system-ui`,e.textAlign=`center`,e.textBaseline=`bottom`,e.fillText(`!`,t+10,n+15)}drawTrophyShelf(e,t,n,r,i){e.fillStyle=r?`#2d1a08`:`#c4825a`,$(e,t,n+20,50,5,2),e.fill(),[[`#f59e0b`,t+5],[`#94a3b8`,t+20],[`#cd7f32`,t+35]].forEach(([t,r])=>{e.fillStyle=t,e.beginPath(),e.arc(r+5,n+13,5,Math.PI,0),e.fill(),e.fillRect(r+3,n+13,4,8),$(e,r,n+20,10,4,2),e.fill()}),e.fillStyle=`rgba(245,158,11,${.08+(.5+.5*Math.sin(i*.002))*.06})`,e.beginPath(),e.ellipse(t+10,n+18,12,6,0,0,Math.PI*2),e.fill()}drawFilingCabinet(e,t,n,r){e.fillStyle=r?`#1e2535`:`#9aaec0`,$(e,t,n,20,28,2),e.fill(),e.strokeStyle=r?`#2d3a50`:`#7a98b0`,e.lineWidth=.75,$(e,t,n,20,28,2),e.stroke(),[0,9,18].forEach(i=>{e.strokeStyle=r?`#3a4a60`:`#5a7898`,e.lineWidth=.5,e.beginPath(),e.moveTo(t+1,n+i+8),e.lineTo(t+19,n+i+8),e.stroke(),e.fillStyle=r?`#4a5a70`:`#4a6888`,$(e,t+7,n+i+3,6,3,2),e.fill()})}drawFlowerVase(e,t,n,r){e.fillStyle=r?`#2d1a08`:`#8b5a2b`,$(e,t-6,n-2,12,10,1),e.fill(),e.fillStyle=r?`#1e3a8a`:`#bfdbfe`,e.beginPath(),e.ellipse(t,n-6,4,6,0,0,Math.PI*2),e.fill();let i=[`#f43f5e`,`#ec4899`,`#d946ef`];[[-3,-12],[3,-11],[0,-14]].forEach(([r,a],o)=>{e.strokeStyle=`#16a34a`,e.lineWidth=1,e.beginPath(),e.moveTo(t,n-10),e.lineTo(t+r,n+a),e.stroke(),e.fillStyle=i[o],e.beginPath(),e.arc(t+r,n+a,2.5,0,Math.PI*2),e.fill()})}drawWaterDispenser(e,t,n,r){e.fillStyle=r?`#1e293b`:`#e2e8f0`,$(e,t,n,14,24,2),e.fill(),e.strokeStyle=r?`#334155`:`#cbd5e1`,e.lineWidth=1,$(e,t,n,14,24,2),e.stroke(),e.fillStyle=r?`#0ea5e955`:`#38bdf855`,$(e,t+2,n-12,10,12,3),e.fill(),e.fillStyle=`#ef4444`,e.fillRect(t+3,n+8,2,3),e.fillStyle=`#3b82f6`,e.fillRect(t+9,n+8,2,3),e.fillStyle=r?`#0f172a`:`#94a3b8`,$(e,t+2,n+14,10,3,1),e.fill()}drawHospitalBed(e,t,n,r){e.fillStyle=r?`#1e293b`:`#cbd5e1`,$(e,t-20,n-10,40,20,3),e.fill(),e.fillStyle=r?`#0f172a`:`#f8fafc`,$(e,t-18,n-8,36,16,2),e.fill(),e.fillStyle=r?`#1e1b4b`:`#e0e7ff`,$(e,t+10,n-6,8,12,2),e.fill(),e.fillStyle=r?`#172554`:`#bfdbfe`,$(e,t-18,n-8,20,16,2),e.fill(),e.strokeStyle=r?`#64748b`:`#94a3b8`,e.lineWidth=2,e.beginPath(),e.moveTo(t+16,n-10),e.lineTo(t+16,n-25),e.stroke(),e.fillStyle=r?`#0ea5e988`:`#38bdf888`,$(e,t+14,n-25,4,6,1),e.fill()}decorTherapy(e,t,n,r,i,a){let o={id:`burnout`,label:`Therapy Room`,x:t,y:n,w:r,h:i,color:`#14b8a6`};for(let t=0;t<6;t++){let n=BC(o,t);this.drawHospitalBed(e,n.x,n.y,a)}this.drawPotPlant(e,t+r-20,n+20,a),this.drawFlowerVase(e,t+20,n+20,a)}drawMonitorActivity(e,t,n,r,i,a,o,s){let{ctx:c}=this,l=!!e.claimedByAgentId,u=uw(e.id),d=s*.001+u%100*.01,f=n+i-6;if(c.save(),$(c,t,n,r,i,3),c.clip(),e.status===`blocked`){c.fillStyle=o?`#2a0f18`:`#3f111d`,c.fillRect(t,n,r,i),c.fillStyle=`rgba(239,68,68,0.45)`;for(let e=0;e<4;e++){let i=n+4+e*4;c.fillRect(t+4,i,r-8-(e+u)%9,1.6)}c.fillStyle=`rgba(255,255,255,${.25+Math.sin(d*5)*.12})`,c.fillRect(t+4,f-3,7,2),c.restore();return}if(l){c.fillStyle=o?`rgba(2,6,23,0.35)`:`rgba(15,23,42,0.22)`,$(c,t+3,n+3,r-6,f-n-4,2),c.fill(),c.fillStyle=`rgba(255,255,255,0.22)`,c.fillRect(t+5,n+5,r-10,1.4),c.fillStyle=`rgba(15,23,42,0.25)`,c.fillRect(t+5,n+8,7,f-n-10),c.fillStyle=`rgba(255,255,255,0.16)`,c.fillRect(t+15,n+8,r-20,f-n-10);let e=Math.floor(s/180)%6;for(let i=0;i<4;i++){let a=n+9+i*3,o=(u>>i)%9/10,s=Math.sin(d*2+i)*.5+.5,l=7+(r-25)*(.35+o*.35+s*.18);c.fillStyle=i===e%4?`rgba(255,255,255,0.78)`:`rgba(255,255,255,${.22+i*.08})`,c.fillRect(t+17,a,Math.min(r-22,l),1.4)}let i=t+18+(Math.floor(s/120)+u)%Math.max(1,r-25);Math.floor(s/300)%2==0&&(c.fillStyle=`#ffffff`,c.fillRect(i,n+17,1,4)),c.fillStyle=`rgba(255,255,255,0.2)`,c.fillRect(t+5,f-3,r-10,1.5),c.fillStyle=sw(a,55),c.fillRect(t+5,f-3,(Math.sin(d)*.5+.5)*(r-10)|0,1.5),c.restore();return}if(e.status===`pending`){c.fillStyle=o?`rgba(15,23,42,0.45)`:`rgba(255,255,255,0.16)`,$(c,t+4,n+4,r-8,f-n-5,2),c.fill(),c.fillStyle=`rgba(255,255,255,0.25)`,c.fillRect(t+6,n+6,r-12,2);for(let e=0;e<3;e++)c.fillStyle=`rgba(255,255,255,${.14+e*.06})`,c.fillRect(t+7,n+11+e*3,r-15-e*5,1.2);let e=n+9+(s*.018+u)%Math.max(1,f-n-12);c.fillStyle=`rgba(56,189,248,0.28)`,c.fillRect(t+5,e,r-10,1.2),c.restore();return}c.strokeStyle=o?`rgba(148,163,184,0.1)`:`rgba(255,255,255,0.08)`,c.lineWidth=.5;for(let e=t+5;e<t+r-4;e+=5)c.beginPath(),c.moveTo(e,n+4),c.lineTo(e,f-2),c.stroke();c.restore()}drawWorkstation(e,t,n){let{ctx:r}=this,{x:i,y:a,status:o,taskCode:s,title:c,claimedByAgentId:l,hasPendingHandoff:u,repo:d}=e,f=DC[o]??`#64748b`,p=!!l,m=a+14/2+4;r.fillStyle=t?`#1e2d3a`:`#7a98b5`,r.beginPath(),r.arc(i,m+3,8,0,Math.PI*2),r.fill(),r.fillStyle=t?`#162435`:`#6888a8`,r.fillRect(i-6,m-2,12,8),$(r,i-5,m-9,10,9,2),r.fill(),r.fillStyle=`rgba(0,0,0,0.18)`,$(r,i-50/2+3,a-14/2+5,50,16,4),r.fill();let h=r.createLinearGradient(i-50/2,a-14/2,i+50/2,a+14/2);h.addColorStop(0,t?`#1e2840`:`#d4dce8`),h.addColorStop(1,t?`#18202e`:`#c0ccd8`),r.fillStyle=h,$(r,i-50/2,a-14/2,50,14,4),r.fill(),r.strokeStyle=t?`#2d3a50`:`#a0b0c0`,r.lineWidth=1,$(r,i-50/2,a-14/2,50,14,4),r.stroke(),r.fillStyle=t?`#0d1520`:`#8090a8`,$(r,i-10,a-2,20,5,2),r.fill(),r.fillStyle=t?`rgba(255,255,255,0.05)`:`rgba(255,255,255,0.3)`,[[i-9,a-1,18,1.5],[i-8,a+1.5,16,1.5]].forEach(([e,t,n,i])=>{for(let a=0;a<5;a++)$(r,e+n/5*a+.5,t,n/5-1,i,.5),r.fill()}),r.fillStyle=t?`#0d1520`:`#8090a8`,r.beginPath(),r.ellipse(i+14,a,3,4,0,0,Math.PI*2),r.fill(),r.strokeStyle=t?`rgba(255,255,255,0.08)`:`rgba(0,0,0,0.1)`,r.lineWidth=.5,r.beginPath(),r.moveTo(i+14,a-2),r.lineTo(i+14,a+2),r.stroke(),r.fillStyle=t?`#2d3a50`:`#8090a8`,r.fillRect(i-1.5,a-14/2-7,3,8);let g=a-14/2-20-6;if(r.fillStyle=t?`#111827`:`#1f2937`,$(r,i-34/2-3,g-3,40,26,5),r.fill(),p){let e=r.createLinearGradient(i-34/2,g,i+34/2,g+20);e.addColorStop(0,sw(f,50)),e.addColorStop(1,f),r.fillStyle=e,p&&(r.shadowColor=f+`99`,r.shadowBlur=10)}else r.fillStyle=t?`#0f1929`:`#1e2d3a`;if($(r,i-34/2,g,34,20,3),r.fill(),r.shadowBlur=0,r.fillStyle=`rgba(255,255,255,0.12)`,$(r,i-34/2,g,34,20/2.5,3),r.fill(),this.drawMonitorActivity(e,i-34/2,g,34,20,f,t,n),r.fillStyle=p?`rgba(255,255,255,0.9)`:t?`#374151`:`#6b7280`,r.font=`bold 5.5px monospace`,r.textAlign=`center`,r.textBaseline=`bottom`,r.fillText(`${d.split(`/`).pop()?.slice(0,5)}·${s}`.slice(0,12),i,g+20-1),r.fillStyle=t?`rgba(148,163,184,0.65)`:`rgba(71,85,105,0.65)`,r.font=`5.5px system-ui,sans-serif`,r.textAlign=`center`,r.textBaseline=`top`,r.fillText(c.slice(0,12),i,a+14/2+2),u){let e=i+34/2,t=g-1;r.fillStyle=`#f59e0b`,r.shadowColor=`#f59e0b`,r.shadowBlur=8,r.beginPath(),r.arc(e,t,5,0,Math.PI*2),r.fill(),r.shadowBlur=0,r.strokeStyle=`#ffffff`,r.lineWidth=1.5,r.beginPath(),r.arc(e,t,5,0,Math.PI*2),r.stroke(),r.fillStyle=`#1a1a1a`,r.font=`bold 6.5px system-ui`,r.textAlign=`center`,r.textBaseline=`middle`,r.fillText(`!`,e,t)}}drawClaimLinks(e,t){let{ctx:n}=this;for(let r of e.agents.values())for(let i of r.claimedTaskIds){let a=e.tasks.get(i);if(!a)continue;let o=n.createLinearGradient(r.x,r.y,a.x,a.y);o.addColorStop(0,r.color+`cc`),o.addColorStop(1,(DC[a.status]??`#64748b`)+`44`),n.strokeStyle=o,n.lineWidth=1.5,n.setLineDash([5,5]),n.lineDashOffset=-(t*.022)%10,n.beginPath(),n.moveTo(r.x,r.y),n.lineTo(a.x,a.y),n.stroke()}n.setLineDash([]),n.lineDashOffset=0}drawHandoffBeams(e,t){let{ctx:n}=this;for(let r of e.handoffs){let i=e.agents.get(r.fromAgentId);if(!i)continue;let a,o;if(r.toAgentId){let t=e.agents.get(r.toAgentId);if(!t)continue;a=t.x,o=t.y}else if(r.taskId){let t=e.tasks.get(r.taskId);if(!t)continue;a=t.x,o=t.y}else continue;n.strokeStyle=`#f59e0b88`,n.lineWidth=2.5,n.setLineDash([8,5]),n.lineDashOffset=-(t*.07)%13,n.beginPath(),n.moveTo(i.x,i.y),n.lineTo(a,o),n.stroke(),n.setLineDash([]),n.lineDashOffset=0;let s=t%1600/1600,c=i.x+(a-i.x)*s,l=i.y+(o-i.y)*s;n.fillStyle=`#f59e0b`,n.shadowColor=`#f59e0b`,n.shadowBlur=8,n.beginPath(),n.arc(c,l,4,0,Math.PI*2),n.fill(),n.shadowBlur=0}}drawHandoffTrail(e,t,n){let{ctx:r}=this,i=e.handoffAnim;if(r.save(),r.strokeStyle=t?`rgba(20, 184, 166, 0.35)`:`rgba(20, 184, 166, 0.45)`,r.lineWidth=2,r.setLineDash([6,5]),r.lineDashOffset=-(n*.03)%11,r.beginPath(),r.moveTo(i.startX,i.startY),r.lineTo(i.endX,i.endY),r.stroke(),r.setLineDash([]),r.lineDashOffset=0,i.phase===`moving`){let e=n%2e3/2e3,t=i.startX+(i.endX-i.startX)*e,a=i.startY+(i.endY-i.startY)*e;r.fillStyle=`#14b8a6`,r.shadowColor=`#14b8a6`,r.shadowBlur=6,r.beginPath(),r.arc(t,a,3,0,Math.PI*2),r.fill(),r.shadowBlur=0}i.phase!==`arrive`&&(r.strokeStyle=`rgba(20, 184, 166, ${.4+.3*Math.sin(n*.004)})`,r.lineWidth=1,r.beginPath(),r.arc(i.endX,i.endY,8,0,Math.PI*2),r.stroke(),r.beginPath(),r.moveTo(i.endX-4,i.endY),r.lineTo(i.endX+4,i.endY),r.stroke(),r.beginPath(),r.moveTo(i.endX,i.endY-4),r.lineTo(i.endX,i.endY+4),r.stroke()),r.restore()}drawWheelchair(e,t,n,r,i){e.save(),e.translate(t,n),e.fillStyle=`rgba(0,0,0,0.2)`,e.beginPath(),e.ellipse(0,3,14,6,0,0,Math.PI*2),e.fill(),e.fillStyle=i?`#2d3a50`:`#7a8ea0`,$(e,-10,-12,20,18,3),e.fill(),e.strokeStyle=i?`#4a5a70`:`#5a7090`,e.lineWidth=1,$(e,-10,-12,20,18,3),e.stroke(),e.fillStyle=i?`#1e3a5f`:`#3b82f6`,$(e,-8,-6,16,10,2),e.fill(),e.fillStyle=i?`#1e3055`:`#2563eb`,$(e,-8,-12,16,7,2),e.fill(),e.fillStyle=i?`#3a4a60`:`#6a7a90`,$(e,-12,-10,3,14,1),e.fill(),$(e,9,-10,3,14,1),e.fill(),[-9,9].forEach(t=>{e.strokeStyle=i?`#1a1a2a`:`#333`,e.lineWidth=2.5,e.beginPath(),e.arc(t,4,5,0,Math.PI*2),e.stroke(),e.fillStyle=i?`#4a5a70`:`#aabbc0`,e.beginPath(),e.arc(t,4,3.5,0,Math.PI*2),e.fill(),e.strokeStyle=i?`#2a3a50`:`#7a8a9a`,e.lineWidth=.75;for(let n=0;n<4;n++){let i=r+n*Math.PI/2;e.beginPath(),e.moveTo(t,4),e.lineTo(t+Math.cos(i)*4,4+Math.sin(i)*4),e.stroke()}}),[-5,5].forEach(t=>{e.fillStyle=i?`#1a1a2a`:`#333`,e.beginPath(),e.arc(t,-13,2,0,Math.PI*2),e.fill(),e.fillStyle=i?`#4a5a70`:`#999`,e.beginPath(),e.arc(t,-13,1,0,Math.PI*2),e.fill()}),e.fillStyle=i?`#3a4a60`:`#5a7090`,$(e,-6,5,12,3,1),e.fill(),e.restore()}drawStretcher(e,t,n,r,i,a){e.save(),e.translate(t,n),e.fillStyle=`rgba(0,0,0,0.18)`,e.beginPath(),e.ellipse(0,4,20,7,0,0,Math.PI*2),e.fill(),e.fillStyle=a?`#2d3a50`:`#8899aa`,$(e,-18,-10,36,16,3),e.fill(),e.strokeStyle=a?`#4a5a70`:`#6a7a90`,e.lineWidth=1,$(e,-18,-10,36,16,3),e.stroke(),e.fillStyle=a?`#1a2535`:`#f0f4f8`,$(e,-16,-8,32,12,2),e.fill(),e.fillStyle=a?`#2a3a5a`:`#e0e7ff`,$(e,10,-6,6,8,2),e.fill();let o=Math.sin(i)*.8;e.fillStyle=a?`#1e3a5f`:`#bfdbfe`,$(e,-15,-7+o,22,10-o*.5,2),e.fill(),e.strokeStyle=a?`rgba(255,255,255,0.06)`:`rgba(0,0,0,0.08)`,e.lineWidth=.5,e.beginPath(),e.moveTo(-5,-7+o),e.lineTo(-5,3-o*.3),e.stroke(),[[-15,5],[15,5],[-15,-11],[15,-11]].forEach(([t,n])=>{e.fillStyle=a?`#1a1a2a`:`#333`,e.beginPath(),e.arc(t,n,3,0,Math.PI*2),e.fill(),e.fillStyle=a?`#4a5a70`:`#999`,e.beginPath(),e.arc(t,n,1.5,0,Math.PI*2),e.fill(),e.strokeStyle=a?`#3a4a5a`:`#777`,e.lineWidth=.5;let i=r;e.beginPath(),e.moveTo(t+Math.cos(i)*3*.5,n+Math.sin(i)*3*.5),e.lineTo(t-Math.cos(i)*3*.5,n-Math.sin(i)*3*.5),e.stroke()}),e.strokeStyle=a?`#5a6a80`:`#7a8a9a`,e.lineWidth=1.5,e.beginPath(),e.moveTo(-16,-10),e.lineTo(16,-10),e.stroke(),e.beginPath(),e.moveTo(-16,6),e.lineTo(16,6),e.stroke(),e.restore()}drawHelperCharacter(e,t,n,r,i,a,o){e.save(),e.translate(t,n),i===`left`&&e.scale(-1,1);let s=hw[r],c=gw[r],l=_w[r],u=a>.1,d=u?Math.sin(a)*4:0,f=u?Math.sin(a+Math.PI)*3:0,p=u?Math.sin(a*2)*.8:0;e.fillStyle=`rgba(0,0,0,0.18)`,e.beginPath(),e.ellipse(0,2,8,3.5,0,0,Math.PI*2),e.fill(),e.fillStyle=o?`#1a2535`:`#334155`,e.save(),e.translate(-2.5,0),e.rotate(d*.08),$(e,-2,-3,4,7,1.5),e.fill(),e.restore(),e.save(),e.translate(2.5,0),e.rotate(-d*.08),$(e,-2,-3,4,7,1.5),e.fill(),e.restore(),e.fillStyle=o?`#0f172a`:`#1e293b`,e.save(),e.translate(-2.5,d*.4),$(e,-2.5,3,5,3,1.5),e.fill(),e.restore(),e.save(),e.translate(2.5,-d*.4),$(e,-2.5,3,5,3,1.5),e.fill(),e.restore();let m=e.createLinearGradient(-5,-20,5,-10);m.addColorStop(0,sw(s,20)),m.addColorStop(1,s),e.fillStyle=m,$(e,-5,-20,10,11,2),e.fill(),(r===`male_nurse`||r===`female_nurse`)&&(e.fillStyle=`rgba(255,255,255,0.5)`,e.fillRect(-1,-17,2,5),e.fillRect(-2.5,-15.5,5,2)),e.save(),e.translate(-6.5,-19),e.rotate(f*.1),e.fillStyle=m,$(e,-1.5,0,3,7,1.5),e.fill(),e.fillStyle=l,e.beginPath(),e.ellipse(0,8,2,1.5,0,0,Math.PI*2),e.fill(),e.restore(),e.save(),e.translate(6.5,-19),e.rotate(-f*.1),e.fillStyle=m,$(e,-1.5,0,3,7,1.5),e.fill(),e.fillStyle=l,e.beginPath(),e.ellipse(0,8,2,1.5,0,0,Math.PI*2),e.fill(),e.restore(),e.fillStyle=l,e.fillRect(-2,-22,4,3);let h=-29+p;e.fillStyle=l,e.beginPath(),e.ellipse(0,h,6.5,7.5,0,0,Math.PI*2),e.fill(),e.fillStyle=c,e.beginPath(),e.ellipse(0,h,6.5,7.5,0,Math.PI,0),e.fill(),(r===`male_nurse`||r===`female_nurse`)&&(e.fillStyle=`#f0f0f0`,$(e,-5,h-8,10,5,2),e.fill(),e.fillStyle=`#ef4444`,e.fillRect(-1,h-7,2,3),e.fillRect(-2,h-6,4,1)),i!==`up`&&(e.fillStyle=`rgba(0,0,0,0.7)`,e.beginPath(),e.arc(-2,h-1,1,0,Math.PI*2),e.fill(),e.beginPath(),e.arc(2,h-1,1,0,Math.PI*2),e.fill(),e.strokeStyle=`rgba(0,0,0,0.4)`,e.lineWidth=.75,e.beginPath(),e.arc(0,h+1.5,2,.1,Math.PI-.1),e.stroke()),e.restore()}drawHandoffGroup(e,t,n){let{ctx:r}=this,i=e.handoffAnim,{x:a,y:o}=e,s=i.endX-i.startX,c=i.endY-i.startY,l=Math.hypot(s,c)||1,u=-s/l,d=-c/l,f=i.vehicle===`wheelchair`?18:22,p=a+u*f,m=o+d*f+i.stepBounce,h=1;if(i.phase===`pickup`){let e=n-i.phaseStartTs;h=Math.min(1,e/400)}else if(i.phase===`arrive`){let e=n-i.phaseStartTs;h=Math.max(0,1-e/aw)}else i.phase===`resting`&&(h=0);if(i.vehicle===`wheelchair`)this.drawWheelchair(r,a,o,i.wheelAngle,t);else{let e=n*.002;this.drawStretcher(r,a,o,i.wheelAngle,e,t)}this.drawPassiveAgent(e,t,n),h>.01&&(r.save(),r.globalAlpha=h,this.drawHelperCharacter(r,p,m,i.helperVariant,i.helperFacing,i.phase===`moving`?i.helperWalkPhase:0,t),r.restore()),r.fillStyle=t?`rgba(226,232,240,0.82)`:`rgba(15,23,42,0.7)`,r.font=`7px system-ui,sans-serif`,r.textAlign=`center`,r.textBaseline=`top`;let g=e.name.length>12?e.name.slice(0,12)+`…`:e.name;r.fillText(g,a,o+(i.vehicle===`stretcher`?14:12)),i.phase===`moving`&&this.drawRollingSFX(r,a,o,i.wheelAngle,i.vehicle,t,n)}drawPassiveAgent(e,t,n){let{ctx:r}=this,i=e.handoffAnim,{x:a,y:o,name:s,color:c}=e,l=uw(s||``),u=fw[l%fw.length]||`#000`,d=pw[(l>>>6)%pw.length]||`#f5c89a`;if(i.vehicle===`wheelchair`)r.save(),r.translate(a,o),r.fillStyle=c||`#64748b`,$(r,-5,-16,10,8,2),r.fill(),r.fillStyle=d,r.beginPath(),r.ellipse(0,-24,6,7,0,0,Math.PI*2),r.fill(),r.fillStyle=u,r.beginPath(),r.ellipse(0,-24,6,7,0,Math.PI,0),r.fill(),r.strokeStyle=`rgba(0,0,0,0.5)`,r.lineWidth=1,r.beginPath(),r.arc(-2,-24,1.5,0,Math.PI),r.stroke(),r.beginPath(),r.arc(2,-24,1.5,0,Math.PI),r.stroke(),r.fillStyle=d,r.beginPath(),r.ellipse(-10,-10,2,1.5,0,0,Math.PI*2),r.fill(),r.beginPath(),r.ellipse(10,-10,2,1.5,0,0,Math.PI*2),r.fill(),r.restore();else{r.save(),r.translate(a,o);let e=Math.sin(n*.002)*.5;r.fillStyle=d,r.beginPath(),r.ellipse(10,-1+e,5,6,0,0,Math.PI*2),r.fill(),r.fillStyle=u,r.beginPath(),r.ellipse(10,-1+e,5,6,0,Math.PI*.8,Math.PI*2.2),r.fill(),r.strokeStyle=`rgba(0,0,0,0.5)`,r.lineWidth=.75,r.beginPath(),r.arc(9,-2+e,1,0,Math.PI),r.stroke(),r.beginPath(),r.arc(12,-2+e,1,0,Math.PI),r.stroke(),r.restore()}}drawRollingSFX(e,t,n,r,i,a,o){e.save();let s=.15+.1*Math.sin(o*.01);e.strokeStyle=a?`rgba(148,163,184,${s})`:`rgba(71,85,105,${s})`,e.lineWidth=1,(i===`wheelchair`?[[-9,n+4],[9,n+4]]:[[-15,n+5],[15,n+5],[-15,n-11],[15,n-11]]).forEach(([n,i])=>{for(let a=0;a<2;a++){let o=(r+a*Math.PI)%(Math.PI*2),s=t+n-3-a*2,c=i+Math.sin(o)*2;e.beginPath(),e.moveTo(s,c-1),e.lineTo(s-3,c),e.stroke()}}),e.restore()}drawCharacter(e,t,n){let{ctx:r}=this,{walkPhase:i,facing:a,state:o,name:s,id:c}=e,{x:l,y:u}=e,d=e.color||`#64748b`,f=c===this.hoveredId,p=Math.hypot(e.vx,e.vy)>5,m=uw(s||``),h=fw[m%fw.length]||`#000`,g=mw[(m>>>3)%mw.length]||`#1e3a5f`,_=pw[(m>>>6)%pw.length]||`#f5c89a`,v=m%5,y=sw(d,30),b=o===`processing`&&!p,x=n*.018+m%20,S=p?Math.sin(i)*5:0,C=p?Math.sin(i+Math.PI)*4:0,w=p?Math.sin(i*2)*1.2:0;b&&(C=Math.sin(x)*5,w=Math.sin(x*.55)*.8,u+=Math.sin(x*.35)*.7),o===`blocked`?l+=Math.sin(n*.05)*1.5:o===`idle`&&!p&&(u+=Math.sin(n*.003+m)*1),r.fillStyle=`rgba(0,0,0,0.22)`,r.beginPath(),r.ellipse(l,u+3,11,5,0,0,Math.PI*2),r.fill(),f&&(r.strokeStyle=d,r.lineWidth=2,r.setLineDash([4,3]),r.beginPath(),r.arc(l,u-24+w,16,0,Math.PI*2),r.stroke(),r.setLineDash([])),r.save(),r.translate(l,u),o===`burnout`?(r.rotate(Math.PI/2),r.translate(0,15)):b?(r.rotate(Math.sin(x*.45)*.03),r.translate(0,1)):a===`left`&&r.scale(-1,1),r.fillStyle=g,r.save(),r.translate(-3.5,0),r.rotate(S*.1),$(r,-2.5,-4,5,9,2),r.fill(),r.restore(),r.save(),r.translate(3.5,0),r.rotate(-S*.1),$(r,-2.5,-4,5,9,2),r.fill(),r.restore(),r.fillStyle=cw(g,30),r.save(),r.translate(-3.5,S*.5),$(r,-3,4,7,4,2),r.fill(),r.restore(),r.save(),r.translate(3.5,-S*.5),$(r,-3,4,7,4,2),r.fill(),r.restore();let T=r.createLinearGradient(-7,-26,7,-13);T.addColorStop(0,y),T.addColorStop(1,d),r.fillStyle=T,$(r,-7,-26,14,14,3),r.fill(),r.fillStyle=sw(d,45),$(r,-3.5,-26,7,5,2),r.fill(),r.strokeStyle=`rgba(0,0,0,0.12)`,r.lineWidth=.75,r.beginPath(),r.moveTo(0,-26),r.lineTo(0,-13),r.stroke(),r.save(),r.translate(-9,-24),r.rotate(b?.55+Math.max(0,Math.sin(x))*.28:C*.12);let E=r.createLinearGradient(-2,0,2,10);E.addColorStop(0,y),E.addColorStop(1,d),r.fillStyle=E,$(r,-2,0,4,9,2),r.fill(),r.fillStyle=_,r.beginPath(),r.ellipse(0,10,2.5,2,0,0,Math.PI*2),r.fill(),r.restore(),r.save(),r.translate(9,-24),r.rotate(b?-.55-Math.max(0,Math.sin(x+Math.PI))*.28:-C*.12),r.fillStyle=E,$(r,-2,0,4,9,2),r.fill(),r.fillStyle=_,r.beginPath(),r.ellipse(0,10,2.5,2,0,0,Math.PI*2),r.fill(),r.restore(),r.fillStyle=_,r.fillRect(-2.5,-28,5,4);let D=-38+w;r.fillStyle=`rgba(0,0,0,0.15)`,r.beginPath(),r.ellipse(1,D+2,9,5,0,0,Math.PI*2),r.fill();let O=r.createRadialGradient(-3,D-3,2,0,D,10);if(O.addColorStop(0,sw(_,15)),O.addColorStop(1,_),r.fillStyle=O,r.beginPath(),r.ellipse(0,D,9,10,0,0,Math.PI*2),r.fill(),this.drawHair(r,0,D,h,v),a!==`up`&&this.drawFace(r,0,D,_,a,p,i,o,n,m),r.restore(),o!==`idle`&&o!==`burnout`){let e=o===`blocked`?`#ef4444`:o===`processing`?`#a855f7`:o===`claiming`?`#0ea5e9`:`#f59e0b`,t=l+(a===`left`?-10:10),n=u-48+w;r.fillStyle=e,r.shadowColor=e,r.shadowBlur=10,r.beginPath(),r.arc(t,n,5,0,Math.PI*2),r.fill(),r.shadowBlur=0,r.strokeStyle=`#ffffff`,r.lineWidth=2,r.beginPath(),r.arc(t,n,5,0,Math.PI*2),r.stroke(),r.strokeStyle=`rgba(0,0,0,0.5)`,r.lineWidth=1,r.beginPath(),r.arc(t,n,6,0,Math.PI*2),r.stroke()}if(o===`processing`){let e=.4+.6*Math.sin(n*.0028);if(r.strokeStyle=lw(d,.18+e*.14),r.lineWidth=1.5,r.beginPath(),r.arc(l,u-38+w,17+e*4,0,Math.PI*2),r.stroke(),b)for(let e=0;e<4;e++){let t=(x+e*.9)%(Math.PI*2),n=Math.max(0,Math.sin(t));n<.25||(r.fillStyle=lw(d,n*.75),r.beginPath(),r.arc(l-9+e*6,u-11-n*3,1.1+n*.9,0,Math.PI*2),r.fill())}for(let e=0;e<3;e++){let t=.3+.7*Math.sin(n*.004+e*1.1);r.fillStyle=lw(d,.5+t*.5),r.beginPath(),r.arc(l+(-5+e*5),u-54+w,1.5+t,0,Math.PI*2),r.fill()}}if(o===`burnout`){let e=n*.002%(Math.PI*2);for(let t=0;t<3;t++){let n=(e+t*(Math.PI*2/3))%(Math.PI*2),i=Math.max(0,Math.sin(n)),a=l+5+Math.cos(n)*5+n*2,o=u-10-n*8;r.fillStyle=`rgba(150, 150, 200, ${i})`,r.font=`bold ${8+n*1.5}px monospace`,r.fillText(`Z`,a,o)}}r.fillStyle=t?`rgba(226,232,240,0.82)`:`rgba(15,23,42,0.7)`,r.font=`7px system-ui,sans-serif`,r.textAlign=`center`,r.textBaseline=`top`;let k=s.length>12?s.slice(0,12)+`…`:s;r.fillText(k,l,u+12)}drawHair(e,t,n,r,i){switch(e.fillStyle=r,i){case 0:e.beginPath(),e.ellipse(t,n,9,10,0,Math.PI,0),e.fill(),e.fillRect(t-9,n-2,3,5),e.fillRect(t+6,n-2,3,5);break;case 1:for(let r=-2;r<=2;r++)e.beginPath(),e.moveTo(t+r*4-2,n-7),e.lineTo(t+r*4,n-14),e.lineTo(t+r*4+2,n-7),e.closePath(),e.fill();e.beginPath(),e.ellipse(t,n-5,9,4,0,0,Math.PI*2),e.fill();break;case 2:e.save(),e.translate(t,n),e.beginPath(),e.moveTo(-9,-2),e.bezierCurveTo(-11,-12,10,-16,11,-6),e.lineTo(9,0),e.bezierCurveTo(4,-8,-4,-10,-9,-2),e.closePath(),e.fill(),e.restore();break;case 3:e.beginPath(),e.arc(t,n,9.5,Math.PI,0),e.fill(),$(e,t-10,n,4,12,2),e.fill(),$(e,t+6,n,4,12,2),e.fill();break;case 4:e.fillStyle=cw(r,20),$(e,t-12,n-6,24,5,2),e.fill(),e.fillStyle=r,$(e,t-9,n-16,18,12,3),e.fill(),e.fillStyle=sw(r,40),$(e,t-3,n-11,6,4,1),e.fill();break}}drawFace(e,t,n,r,i,a,o,s,c,l){if(i===`right`)e.fillStyle=`rgba(0,0,0,0.7)`,e.beginPath(),e.ellipse(t+5,n-2,1.5,1.5,0,0,Math.PI*2),e.fill(),e.strokeStyle=`rgba(0,0,0,0.2)`,e.lineWidth=1,e.beginPath(),e.arc(t+9,n,3,-.5,.5),e.stroke();else if(s===`burnout`){if((l||0)%2==0){e.strokeStyle=`rgba(0,0,0,0.7)`,e.lineWidth=1;let r=(c||0)*.005%(Math.PI*2);e.save(),e.translate(t-3,n-2),e.rotate(r),e.beginPath(),e.moveTo(0,0);for(let t=0;t<15;t++){let n=t*.5,r=t*.15;e.lineTo(Math.cos(n)*r,Math.sin(n)*r)}e.stroke(),e.restore(),e.save(),e.translate(t+3,n-2),e.rotate(r),e.beginPath(),e.moveTo(0,0);for(let t=0;t<15;t++){let n=t*.5,r=t*.15;e.lineTo(Math.cos(n)*r,Math.sin(n)*r)}e.stroke(),e.restore()}else e.strokeStyle=`rgba(0,0,0,0.7)`,e.lineWidth=1.5,e.beginPath(),e.arc(t-3,n-2,2.5,0,Math.PI),e.stroke(),e.beginPath(),e.arc(t+3,n-2,2.5,0,Math.PI),e.stroke();e.strokeStyle=`rgba(0,0,0,0.5)`,e.lineWidth=1,e.beginPath(),e.arc(t,n+3,2,Math.PI,Math.PI*2),e.stroke()}else{e.fillStyle=`white`,e.beginPath(),e.ellipse(t-3,n-2,2.5,2,0,0,Math.PI*2),e.fill(),e.beginPath(),e.ellipse(t+3,n-2,2.5,2,0,0,Math.PI*2),e.fill(),e.fillStyle=`rgba(20,20,80,0.85)`,e.beginPath(),e.arc(t-3,n-2,1.3,0,Math.PI*2),e.fill(),e.beginPath(),e.arc(t+3,n-2,1.3,0,Math.PI*2),e.fill(),e.fillStyle=`white`,e.beginPath(),e.arc(t-3.5,n-2.5,.5,0,Math.PI*2),e.fill(),e.beginPath(),e.arc(t+2.5,n-2.5,.5,0,Math.PI*2),e.fill();let r=a&&Math.sin(o)>.5;e.strokeStyle=`rgba(0,0,0,0.5)`,e.lineWidth=1,r?(e.beginPath(),e.arc(t,n+2,2,0,Math.PI),e.stroke()):(e.beginPath(),e.moveTo(t-2.5,n+2.5),e.quadraticCurveTo(t,n+4,t+2.5,n+2.5),e.stroke())}}},yw=K(`<span class="badge loading svelte-1pykpun"><span class="animate-spin" style="display:inline-block;width:10px;height:10px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%"></span> Loading…</span>`),bw=K(`<span class="badge error svelte-1pykpun"><!> Error</span>`),xw=K(`<span class="badge live svelte-1pykpun"><span class="pulse-dot svelte-1pykpun"></span> Live · <strong> </strong> <strong> </strong> <!></span>`),Sw=K(`<div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Repos</span> <span class="tip-repos svelte-1pykpun"> </span></div>`),Cw=K(`<div class="agent-tip glass svelte-1pykpun"><div class="tip-name svelte-1pykpun"><span class="tip-dot svelte-1pykpun"></span> </div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Role</span><span> </span></div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">State</span> <span> </span></div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Tasks</span><span> </span></div> <!></div>`),ww=K(`<div class="arena-empty svelte-1pykpun"><!> <div style="font-weight:700;font-size:0.9rem">No active agents</div> <div class="arena-empty-sub svelte-1pykpun">Agents appear here when they claim tasks across your repositories</div></div>`),Tw=K(`<div class="arena-root glass card animate-fade-in svelte-1pykpun"><div class="arena-hdr svelte-1pykpun"><div class="arena-hdr-left svelte-1pykpun"><div class="arena-icon svelte-1pykpun"><!></div> <div><div class="section-label" style="margin:0">Agent Arena</div> <div class="arena-sub svelte-1pykpun">Live 2D view · all repositories</div></div></div> <div class="arena-hdr-right svelte-1pykpun"><!></div></div> <div class="arena-wrap svelte-1pykpun"><canvas class="arena-canvas svelte-1pykpun"></canvas> <!> <!></div> <div class="arena-footer svelte-1pykpun"><div class="legend-row svelte-1pykpun"><div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#8b5cf6"></span>Lobby (idle)</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#0ea5e9"></span>Inbox</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#a855f7"></span>Workspace</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#ef4444"></span>Issues</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#10b981"></span>Done</div></div> <div class="legend-row svelte-1pykpun"><div class="legend-item svelte-1pykpun"><span class="lg-bubble svelte-1pykpun"></span>Working agent</div> <div class="legend-item svelte-1pykpun"><span class="lg-dash svelte-1pykpun" style="border-color:#f59e0b"></span>Handoff beam</div> <div class="legend-item svelte-1pykpun"><span class="lg-dash svelte-1pykpun"></span>Claim link</div></div></div></div>`);function Ew(e,t){We(t,!1);let n=()=>P(p,`$arena`,i),r=()=>P(Ia,`$theme`,i),[i,a]=pt(),o=F(),s=F(),c=F(),l=F(null),u=F(null),d=F(null),f=F(null),p=ZC();function m(){if(!H(s)||!H(c))return;let e=H(c).clientWidth||960,t=Math.max(520,Math.min(window.innerHeight-220,800));sn(s,H(s).width=e),sn(s,H(s).height=t),I(u,{canvasWidth:e,canvasHeight:t}),H(l)||(I(l,new vw(H(s))),H(l).start()),p.setLayout(H(u)),n().scene&&H(l).update(n().scene,H(u),r()===`dark`)}function h(e){if(!H(l)||!n().scene){I(d,null),I(f,null);return}let t=H(s).getBoundingClientRect(),r=H(s).width/t.width,i=H(s).height/t.height,a=(e.clientX-t.left)*r,o=(e.clientY-t.top)*i,c=H(l).hitTestAgent(a,o);c!==H(d)&&(I(d,c),H(l).setHovered(H(d))),I(f,H(d)?{x:e.clientX-t.left+14,y:e.clientY-t.top-10}:null)}function g(){I(d,null),I(f,null),H(l)?.setHovered(null)}Aa(()=>{let e=setTimeout(()=>{m(),H(u)&&p.start(H(u))},60),t=new ResizeObserver(()=>m());return t.observe(H(c)),()=>{clearTimeout(e),t.disconnect()}}),ja(()=>{p.stop(),H(l)?.stop()}),B(()=>(H(l),n(),H(u),r()),()=>{H(l)&&n().scene&&H(u)&&H(l).update(n().scene,H(u),r()===`dark`)}),B(()=>(H(d),n()),()=>{I(o,H(d)&&n().scene?n().scene.agents.get(H(d))??null:null)}),Un(),Ea();var _=Tw(),v=L(_),y=L(v),b=L(y);Q(L(b),{name:`cpu`,size:16,strokeWidth:1.75}),A(b),j(2),A(y);var x=z(y,2),S=L(x),C=e=>{q(e,yw())},w=e=>{var t=bw();Q(L(t),{name:`alert-circle`,size:11}),j(),A(t),q(e,t)},T=e=>{var t=xw(),r=z(L(t),2),i=L(r,!0);A(r);var a=z(r),o=z(a),s=L(o,!0);A(o);var c=z(o),l=z(c),u=e=>{var t=ci();V(()=>J(t,` · ${(n(),U(()=>n().repoCount))??``} repos`)),q(e,t)};Y(l,e=>{n(),U(()=>n().repoCount>1)&&e(u)}),A(t),V(()=>{J(i,(n(),U(()=>n().scene.agents.size))),J(a,` ${(n(),U(()=>n().scene.agents.size===1?`agent`:`agents`))??``}
|
|
86
|
+
TSK-001,Example Task,Phase 1,Example task description,backlog,3`};function fS(e){let t=M(null),n=M([]),r=M([]),i=M(``),a=M(``),o=M(!1),s=M(!1);function c(){t.set(null),n.set([]),r.set([]),i.set(``),a.set(``),o.set(!1)}function l(){s.set(!1),c(),e.onClose&&e.onClose()}function u(){s.set(!0)}function d(e){let t=e.split(/\r?\n/).filter(e=>e.trim()!==``);if(t.length===0)return{headers:[],rows:[]};let n=e=>{let t=[],n=``,r=!1;for(let i=0;i<e.length;i++){let a=e[i];a===`"`&&e[i+1]===`"`?(n+=`"`,i++):a===`"`?r=!r:a===`,`&&!r?(t.push(n.trim()),n=``):n+=a}return t.push(n.trim()),t},r=n(t[0]).filter(e=>e!==``);return{headers:r,rows:t.slice(1).map(n).map(e=>{let t={};return r.forEach((n,r)=>{let i=n.toLowerCase().replace(/[^a-z0-9_]/g,`_`);t[i]=e[r]}),t})}}function f(e){if(a.set(``),!e.name.endsWith(`.csv`)){a.set(`Please select a valid .csv file.`);return}t.set(e),i.set(e.name);let o=new FileReader;o.onload=e=>{let t=e.target?.result,i=d(t);r.set(i.headers),n.set(i.rows),i.rows.length===0&&a.set(`CSV file appears to be empty or missing headers.`)},o.readAsText(e)}function p(e){let t=e.target.files?.[0];t&&f(t)}function m(e){e.preventDefault();let t=e.dataTransfer?.files?.[0];t&&f(t)}function h(){let t=dS[e.importTarget],n=new Blob([t],{type:`text/csv;charset=utf-8;`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.setAttribute(`href`,r),i.setAttribute(`download`,`example_${e.importTarget}.csv`),i.style.visibility=`hidden`,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function g(){let t=[];if(n.subscribe(e=>t=e)(),a.set(``),t.length===0){a.set(`No data to import.`);return}o.set(!0);try{let n=0;n=e.importTarget===`memories`?(await Z.bulkImportMemories(e.repo,t)).count:(await Z.bulkImportTasks(e.repo,t)).count,alert(`Imported ${n} ${e.importTarget} successfully.`),e.onSuccess&&e.onSuccess(),l()}catch(e){a.set(e instanceof Error?e.message:`Import failed`)}finally{o.set(!1)}}return{file:t,csvData:n,headers:r,fileName:i,errorMsg:a,isSubmitting:o,isOpen:s,open:u,close:l,handleFileSelect:p,handleFileDrop:m,downloadExample:h,handleImport:g,setFile:e=>t.set(e),setCsvData:e=>n.set(e)}}var pS=K(`<div class="drop-zone svelte-lenod"><div class="drop-zone-content svelte-lenod"><div style="color: var(--color-text-muted)" class="svelte-lenod"><!></div> <p class="svelte-lenod">Drag and drop your <strong class="svelte-lenod">.csv</strong> file here</p> <span class="text-xs text-slate-500 mb-4 svelte-lenod">or click to browse from your computer</span> <label class="btn btn-primary btn-md cursor-pointer svelte-lenod">Select CSV File <input type="file" accept=".csv" class="hidden svelte-lenod"/></label></div></div> <div class="mt-6 flex flex-col items-center svelte-lenod"><p class="text-[0.8rem] text-slate-400 mb-2 svelte-lenod">Need a starting point?</p> <button class="btn btn-ghost btn-sm svelte-lenod"><!> </button></div>`,1),mS=K(`<th class="svelte-lenod"> </th>`),hS=K(`<td class="svelte-lenod"> </td>`),gS=K(`<tr class="svelte-lenod"></tr>`),_S=K(`<div class="file-info flex items-center justify-between p-3 bg-blue-500/5 border border-blue-500/20 rounded-lg mb-4 svelte-lenod"><div class="flex items-center gap-3 svelte-lenod"><div style="color: #0ea5e9; display: flex;" class="svelte-lenod"><!></div> <div class="svelte-lenod"><div class="text-sm font-semibold svelte-lenod"> </div> <div class="text-[0.7rem] text-slate-400 svelte-lenod"> </div></div></div> <button class="btn btn-ghost btn-sm text-red-500 svelte-lenod">Change File</button></div> <div class="preview-container svelte-lenod"><div class="preview-header svelte-lenod"><span class="svelte-lenod">Data Preview (First 5 rows)</span></div> <div class="table-wrapper svelte-lenod"><table class="svelte-lenod"><thead class="svelte-lenod"><tr class="svelte-lenod"></tr></thead><tbody class="svelte-lenod"></tbody></table></div></div>`,1),vS=K(`<div class="error-msg flex items-center gap-2 svelte-lenod"><!> <span class="svelte-lenod"> </span></div>`),yS=K(`<div class="spinner svelte-lenod"></div> Importing...`,1),bS=K(`<!> Start Import`,1),xS=K(`<div class="modal-backdrop svelte-lenod"><div class="modal-content svelte-lenod"><div class="modal-header svelte-lenod"><div class="flex items-center gap-2 svelte-lenod"><div class="header-icon svelte-lenod" style="color: #0ea5e9"><!></div> <h3 class="svelte-lenod"> </h3></div> <button class="btn btn-ghost btn-sm close-btn svelte-lenod"><!></button></div> <div class="modal-body svelte-lenod"><div class="p-6 svelte-lenod"><!> <!></div></div> <div class="modal-footer svelte-lenod"><button class="btn btn-ghost svelte-lenod">Cancel</button> <button class="btn btn-primary svelte-lenod"><!></button></div></div></div>`);function SS(e,t){We(t,!1);let n=()=>P(H(d),`$file`,l),r=()=>P(H(f),`$csvData`,l),i=()=>P(H(p),`$headers`,l),a=()=>P(H(m),`$fileName`,l),o=()=>P(H(h),`$errorMsg`,l),s=()=>P(H(g),`$isSubmitting`,l),c=()=>P(H(_),`$composableIsOpen`,l),[l,u]=pt(),d=F(),f=F(),p=F(),m=F(),h=F(),g=F(),_=F(),v=F(),y=F(),b=F(),x=F(),S=F(),C=F(),w=F(),T=F(),E=F(),D=F(),O=F(),k=F(),ee=F(),te=ka(t,`repo`,8),ne=ka(t,`importTarget`,8,`memories`),re=ka(t,`isOpen`,12,!1),ie=Na(),ae=F();function oe(e){I(ae,fS({repo:te(),importTarget:e,onSuccess:()=>ie(`success`),onClose:()=>{re(!1),ie(`close`)}}))}oe(ne()),B(()=>W(ne()),()=>{ne()&&oe(ne())}),B(()=>(H(ae),W(re())),()=>{H(ae).isOpen.set(re())}),B(()=>H(ae),()=>{dt(I(d,H(ae).file),`$file`,l)}),B(()=>H(ae),()=>{dt(I(f,H(ae).csvData),`$csvData`,l)}),B(()=>H(ae),()=>{dt(I(p,H(ae).headers),`$headers`,l)}),B(()=>H(ae),()=>{dt(I(m,H(ae).fileName),`$fileName`,l)}),B(()=>H(ae),()=>{dt(I(h,H(ae).errorMsg),`$errorMsg`,l)}),B(()=>H(ae),()=>{dt(I(g,H(ae).isSubmitting),`$isSubmitting`,l)}),B(()=>H(ae),()=>{dt(I(_,H(ae).isOpen),`$composableIsOpen`,l)}),B(()=>H(ae),()=>{I(v,H(ae).close)}),B(()=>H(ae),()=>{I(y,H(ae).handleFileSelect)}),B(()=>H(ae),()=>{I(b,H(ae).handleFileDrop)}),B(()=>H(ae),()=>{I(x,H(ae).downloadExample)}),B(()=>H(ae),()=>{I(S,H(ae).handleImport)}),B(()=>H(ae),()=>{I(C,H(ae).setFile)}),B(()=>H(ae),()=>{I(w,H(ae).setCsvData)}),B(()=>n(),()=>{I(T,n())}),B(()=>r(),()=>{I(E,r())}),B(()=>i(),()=>{I(D,i())}),B(()=>a(),()=>{I(O,a())}),B(()=>o(),()=>{I(k,o())}),B(()=>s(),()=>{I(ee,s())}),Un(),Ea();var se=li(),ce=R(se),le=e=>{var n=xS(),r=L(n),i=L(r),a=L(i),o=L(a);Q(L(o),{name:`upload-cloud`,size:18}),A(o);var s=z(o,2),c=L(s);A(s),A(a);var l=z(a,2);Q(L(l),{name:`x`,size:18,strokeWidth:2}),A(l),A(i);var u=z(i,2),d=L(u),f=L(d),p=e=>{var n=pS(),r=R(n),i=L(r),a=L(i);Q(L(a),{name:`file-up`,size:48,strokeWidth:1}),A(a);var o=z(a,6),s=z(L(o));A(o),A(i),A(r);var c=z(r,2),l=z(L(c),2),u=L(l);Q(u,{name:`download`,size:14,className:`mr-2`});var d=z(u);A(l),A(c),V(()=>J(d,` Download Example ${ne()===`memories`?`Memories`:`Tasks`} CSV`)),G(`change`,s,function(...e){H(y)?.apply(this,e)}),G(`dragover`,r,Ta(function(e){Oa.call(this,t,e)})),G(`drop`,r,function(...e){H(b)?.apply(this,e)}),G(`click`,l,function(...e){H(x)?.apply(this,e)}),q(e,n)},m=e=>{var t=_S(),n=R(t),r=L(n),i=L(r);Q(L(i),{name:`file-type-2`,size:24}),A(i);var a=z(i,2),o=L(a),s=L(o,!0);A(o);var c=z(o,2),l=L(c);A(c),A(a),A(r);var u=z(r,2);A(n);var d=z(n,2),f=z(L(d),2),p=L(f),m=L(p),h=L(m);X(h,5,()=>H(D),e=>e,(e,t)=>{var n=mS(),r=L(n,!0);A(n),V(()=>J(r,H(t))),q(e,n)}),A(h),A(m);var g=z(m);X(g,7,()=>(H(E),U(()=>H(E).slice(0,5))),(e,t)=>`${t}-${JSON.stringify(e)}`,(e,t)=>{var n=gS();X(n,5,()=>H(D),e=>e,(e,n)=>{var r=hS(),i=L(r,!0);A(r),V(e=>J(i,e),[()=>(H(t),H(n),U(()=>H(t)[H(n).toLowerCase().replace(/[^a-z0-9_]/g,`_`)]||``))]),q(e,r)}),A(n),q(e,n)}),A(g),A(p),A(f),A(d),V(()=>{J(s,H(O)),J(l,`${(H(E),U(()=>H(E).length))??``} rows found`)}),G(`click`,u,()=>{H(C)(null),H(w)([])}),q(e,t)};Y(f,e=>{H(T)?e(m,-1):e(p)});var h=z(f,2),g=e=>{var t=vS(),n=L(t);Q(n,{name:`alert-circle`,size:16});var r=z(n,2),i=L(r,!0);A(r),A(t),V(()=>J(i,H(k))),q(e,t)};Y(h,e=>{H(k)&&e(g)}),A(d),A(u);var _=z(u,2),te=L(_),re=z(te,2),ie=L(re),ae=e=>{var t=yS();j(),q(e,t)},oe=e=>{var t=bS();Q(R(t),{name:`check`,size:16,className:`mr-2`}),j(),q(e,t)};Y(ie,e=>{H(ee)?e(ae):e(oe,-1)}),A(re),A(_),A(r),A(n),V(()=>{J(c,`Bulk Import ${ne()===`memories`?`Memories`:`Tasks`}`),te.disabled=H(ee),re.disabled=(H(ee),H(E),U(()=>H(ee)||H(E).length===0))}),G(`click`,l,function(...e){H(v)?.apply(this,e)}),G(`click`,te,function(...e){H(v)?.apply(this,e)}),G(`click`,re,function(...e){H(S)?.apply(this,e)}),Pi(3,r,()=>uS,()=>({duration:200,start:.95})),G(`click`,r,wa(function(e){Oa.call(this,t,e)})),Pi(3,n,()=>lS,()=>({duration:200})),G(`click`,n,function(...e){H(v)?.apply(this,e)}),q(e,n)};Y(ce,e=>{c()&&e(le)}),q(e,se),Ge(),u()}var CS=K(`<option> </option>`),wS=K(`<option> </option>`),TS=K(`<div class="modal-backdrop svelte-l0ytfo" role="button" tabindex="-1" aria-label="Close modal"></div> <div class="modal-panel animate-fade-in svelte-l0ytfo" role="dialog" aria-modal="true" aria-labelledby="modal-title" tabindex="-1"><div class="modal-header svelte-l0ytfo"><div class="modal-header-icon svelte-l0ytfo"><!></div> <div><div id="modal-title" class="modal-title svelte-l0ytfo">New Task</div> <div class="modal-subtitle svelte-l0ytfo">Add a task to the current repository</div></div> <button class="modal-close-btn svelte-l0ytfo" aria-label="Close"><!></button></div> <div class="modal-body svelte-l0ytfo"><div class="field-grid-2 svelte-l0ytfo"><div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_code">Task Code <span class="required svelte-l0ytfo">*</span></label> <input id="new_task_code" class="form-input" placeholder="TASK-001"/></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_phase">Phase</label> <input id="new_task_phase" class="form-input" placeholder="Implementation"/></div></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_title">Title <span class="required svelte-l0ytfo">*</span> <span class="field-hint svelte-l0ytfo"> </span></label> <input id="new_task_title" class="form-input" placeholder="Short, descriptive task title" maxlength="80"/></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_description">Description</label> <textarea id="new_task_description" class="form-textarea modal-textarea svelte-l0ytfo" placeholder="What needs to be done? Include context, acceptance criteria, etc." rows="4"></textarea></div> <div class="field-grid-2 svelte-l0ytfo"><div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_status">Status</label> <select id="new_task_status" class="form-select"></select></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_priority">Priority</label> <select id="new_task_priority" class="form-select"></select></div></div></div> <div class="modal-footer svelte-l0ytfo"><button class="btn btn-ghost">Cancel</button> <button class="btn btn-primary modal-save-btn svelte-l0ytfo"><!> Create Task</button></div></div>`,1);function ES(e,t){We(t,!1);let n=ka(t,`open`,8,!1),r=ka(t,`newTask`,12),i=ka(t,`onClose`,8,()=>{}),a=ka(t,`onSave`,8,()=>{});function o(e){e.key===`Escape`&&i()()}Ea();var s=li();G(`keydown`,hn,o);var c=R(s),l=e=>{var t=TS(),n=R(t),o=z(n,2),s=L(o),c=L(s);Q(L(c),{name:`clipboard-list`,size:14,strokeWidth:2.2}),A(c);var l=z(c,4);Q(L(l),{name:`x`,size:14,strokeWidth:2.5}),A(l),A(s);var u=z(s,2),d=L(u),f=L(d),p=z(L(f),2);ca(p),A(f);var m=z(f,2),h=z(L(m),2);ca(h),A(m),A(d);var g=z(d,2),_=L(g),v=z(L(_),3),y=L(v);A(v),A(_);var b=z(_,2);ca(b),A(g);var x=z(g,2),S=z(L(x),2);On(S),A(x);var C=z(x,2),w=L(C),T=z(L(w),2);X(T,4,()=>[`backlog`,`pending`,`in_progress`],e=>e,(e,t)=>{var n=CS(),r=L(n,!0);A(n);var i={};V(e=>{J(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>(W(_l),U(()=>_l(t)))]),q(e,n)}),A(T),A(w);var E=z(w,2),D=z(L(E),2);X(D,4,()=>[1,2,3,4,5],e=>e,(e,t)=>{var n=wS(),r=L(n,!0);A(n);var i={};V(e=>{J(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>(W(vl),U(()=>vl(t)))]),q(e,n)}),A(D),A(E),A(C),A(u);var O=z(u,2),k=L(O),ee=z(k,2);Q(L(ee),{name:`plus`,size:13,strokeWidth:2.5}),j(),A(ee),A(O),A(o),V(()=>{J(y,`${(W(r()),U(()=>(r().title??``).length))??``}/80`),ee.disabled=(W(r()),U(()=>!r().task_code||!r().title))}),G(`click`,n,function(...e){i()?.apply(this,e)}),G(`keydown`,n,e=>e.key===`Escape`&&i()()),G(`click`,l,function(...e){i()?.apply(this,e)}),va(p,()=>r().task_code,e=>(r(r().task_code=e,!0),cr(()=>{}))),va(h,()=>r().phase,e=>(r(r().phase=e,!0),cr(()=>{}))),va(b,()=>r().title,e=>(r(r().title=e,!0),cr(()=>{}))),va(S,()=>r().description,e=>(r(r().description=e,!0),cr(()=>{}))),Zi(T,()=>r().status,e=>(r(r().status=e,!0),cr(()=>{}))),Zi(D,()=>r().priority,e=>(r(r().priority=e,!0),cr(()=>{}))),G(`click`,k,function(...e){i()?.apply(this,e)}),G(`click`,ee,function(...e){a()?.apply(this,e)}),q(e,t)};Y(c,e=>{n()&&e(l)}),q(e,s),Ge()}var DS=K(`<span class="ref-total-badge svelte-w0wd5z"> </span>`),OS=K(`<button class="ref-clear-btn svelte-w0wd5z"><!></button>`),kS=K(`<button><!> <span> </span> <span class="ref-cat-count svelte-w0wd5z"> </span></button>`),AS=K(`<div style="padding:40px;text-align:center;"><div class="skeleton" style="height:60px;border-radius:12px;margin-bottom:10px;"></div> <div class="skeleton" style="height:60px;border-radius:12px;margin-bottom:10px;"></div> <div class="skeleton" style="height:60px;border-radius:12px;"></div></div>`),jS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),MS=K(`<code class="ref-param-tag svelte-w0wd5z"> </code>`),NS=K(`<code class="ref-param-tag ref-param-more svelte-w0wd5z"> </code>`),PS=K(`<div class="ref-params svelte-w0wd5z"><!> <!></div>`),FS=K(`<div class="ref-card ref-card-tool animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-tool svelte-w0wd5z"><!> Tool</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!> <!></div>`),IS=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Tools</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),LS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),RS=K(`<div class="ref-card ref-card-prompt animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-prompt svelte-w0wd5z"><!> Prompt</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!></div>`),zS=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Prompts</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),BS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),VS=K(`<div class="ref-params svelte-w0wd5z"><code class="ref-param-tag svelte-w0wd5z" style="background:var(--color-bg);border:1px solid var(--color-border);"> </code></div>`),HS=K(`<div class="ref-card ref-card-resource animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-resource svelte-w0wd5z"><!> Resource</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!> <!></div>`),US=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Resources</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),WS=K(`<div style="text-align:center;padding:48px 16px;color:var(--color-text-muted);"><!> <div style="font-size:0.82rem;margin-top:10px;"> </div></div>`),GS=K(`<a target="_blank" rel="noopener noreferrer" class="eco-card animate-fade-in svelte-w0wd5z"><div class="eco-card-icon svelte-w0wd5z"><!></div> <div class="eco-card-body svelte-w0wd5z"><div class="eco-card-name svelte-w0wd5z"> </div> <div class="eco-card-desc svelte-w0wd5z"> </div></div> <div class="eco-card-link svelte-w0wd5z"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></div></a>`),KS=K(`<div class="eco-section svelte-w0wd5z"><div class="ref-section-header svelte-w0wd5z"><!> <span>Ecosystem</span></div> <div class="eco-grid svelte-w0wd5z"></div></div>`),qS=K(`<!> <!> <!> <!> <!>`,1),JS=K(`<div class="animate-fade-in"><div class="glass card" style="margin-bottom:16px;padding:14px 18px;"><div class="ref-header svelte-w0wd5z"><div class="flex items-center gap-2"><!> <span style="font-size:0.9rem;font-weight:800;color:var(--color-text);letter-spacing:-0.02em;">MCP Reference</span> <!></div> <div class="ref-search-wrap svelte-w0wd5z"><span class="ref-search-icon svelte-w0wd5z"><!></span> <input class="form-input ref-search-input svelte-w0wd5z" type="text" placeholder="Search tools & prompts…"/> <!></div></div></div> <div class="ref-body svelte-w0wd5z"><div class="glass ref-sidebar svelte-w0wd5z"><div class="ref-sidebar-label svelte-w0wd5z">Category</div> <!></div> <div class="ref-main svelte-w0wd5z"><!></div></div></div>`);function YS(e,t){We(t,!1);let n=()=>P(p(),`$appState`,o),r=()=>P(m(),`$filteredTools`,o),i=()=>P(h(),`$filteredPrompts`,o),a=()=>P(_(),`$filteredResources`,o),[o,s]=pt(),c=F(),l=F(),u=F(),d=F(),f=ka(t,`handler`,8),p=ka(t,`appState`,8),m=ka(t,`filteredTools`,8),h=ka(t,`filteredPrompts`,8),_=ka(t,`filteredResources`,8);function v(e){return[{id:`all`,icon:`layers`,label:`All`,count:(e.capabilities?.tools?.length||0)+(e.capabilities?.prompts?.length||0)+(e.capabilities?.resources?.length||0)+y.length},{id:`tools`,icon:`tool`,label:`Tools`,count:e.capabilities?.tools?.length||0},{id:`prompts`,icon:`sparkle`,label:`Prompts`,count:e.capabilities?.prompts?.length||0},{id:`resources`,icon:`database`,label:`Resources`,count:e.capabilities?.resources?.length||0},{id:`ecosystem`,icon:`zap`,label:`Ecosystem`,count:y.length}]}let y=[{name:`DocuBook`,description:`AI-powered documentation generator that turns your codebase into beautiful, searchable docs.`,url:`https://www.docubook.pro/`,icon:`book-open`}];function b(e,t,n){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f().openReferenceDrawer(t,n))}B(()=>n(),()=>{I(c,n())}),B(()=>r(),()=>{I(l,r())}),B(()=>i(),()=>{I(u,i())}),B(()=>a(),()=>{I(d,a())}),Un(),Ea();var x=JS(),S=L(x),C=L(S),w=L(C),T=L(w);Q(T,{name:`book-open`,size:15,strokeWidth:1.75});var E=z(T,4),D=e=>{var t=DS(),n=L(t);A(t),V(()=>J(n,`${(H(c),U(()=>(H(c).capabilities.tools?.length||0)+(H(c).capabilities.prompts?.length||0)))??``} items`)),q(e,t)};Y(E,e=>{H(c),U(()=>H(c).capabilities)&&e(D)}),A(w);var O=z(w,2),k=L(O);Q(L(k),{name:`search`,size:12,strokeWidth:2}),A(k);var ee=z(k,2);ca(ee);var te=z(ee,2),ne=e=>{var t=OS();Q(L(t),{name:`x`,size:11,strokeWidth:2.5}),A(t),G(`click`,t,()=>f().setReferenceSearch(``)),q(e,t)};Y(te,e=>{H(c),U(()=>H(c).referenceSearch)&&e(ne)}),A(O),A(C),A(S);var re=z(S,2),ie=L(re);X(z(L(ie),2),1,()=>(H(c),U(()=>v(H(c)))),e=>e.id,(e,t)=>{var n=kS();let r;var i=L(n);Q(i,{get name(){return H(t),U(()=>H(t).icon)},size:13,strokeWidth:1.75});var a=z(i,2),o=L(a,!0);A(a);var s=z(a,2),l=L(s,!0);A(s),A(n),V(()=>{r=Ki(n,1,`ref-cat-btn svelte-w0wd5z`,null,r,{active:H(c).referenceFilter===H(t).id}),J(o,(H(t),U(()=>H(t).label))),J(l,(H(t),U(()=>H(t).count)))}),G(`click`,n,()=>f().setReferenceFilter(H(t).id)),q(e,n)}),A(ie);var ae=z(ie,2),oe=L(ae),se=e=>{q(e,AS())},ce=e=>{var t=qS(),n=R(t),r=e=>{var t=IS(),n=R(t),r=L(n);Q(r,{name:`tool`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);A(i),A(n);var o=z(n,2);X(o,5,()=>H(l),e=>e.data.name,(e,t)=>{var n=FS(),r=L(n),i=L(r);Q(L(i),{name:`tool`,size:10,strokeWidth:2}),j(),A(i),A(r);var a=z(r,2),o=L(a,!0);A(a);var s=z(a,2),c=e=>{var n=jS(),r=L(n,!0);A(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)});var l=z(s,2),u=e=>{var n=PS(),r=L(n);X(r,1,()=>(H(t),U(()=>Object.entries(H(t).data.inputSchema.properties).slice(0,4))),([e])=>e,(e,t)=>{var n=Jt(()=>g(H(t),1));let r=()=>H(n)[0];var i=MS(),a=L(i,!0);A(i),V(()=>J(a,r())),q(e,i)});var i=z(r,2),a=e=>{var n=NS(),r=L(n);A(n),V(e=>J(r,`+${e??``}`),[()=>(H(t),U(()=>Object.keys(H(t).data.inputSchema.properties).length-4))]),q(e,n)},o=Jt(()=>(H(t),U(()=>Object.keys(H(t).data.inputSchema.properties).length>4)));Y(i,e=>{H(o)&&e(a)}),A(n),q(e,n)};Y(l,e=>{H(t),U(()=>H(t)?.data?.inputSchema?.properties)&&e(u)}),A(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Tool`)))),G(`click`,n,()=>f().openReferenceDrawer(`tool`,H(t).data)),G(`keydown`,n,e=>b(e,`tool`,H(t).data)),q(e,n)}),A(o),V(()=>J(a,(H(l),U(()=>H(l).length)))),q(e,t)};Y(n,e=>{H(l),U(()=>H(l).length>0)&&e(r)});var i=z(n,2),a=e=>{var t=zS(),n=R(t),r=L(n);Q(r,{name:`sparkle`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);A(i),A(n);var o=z(n,2);X(o,5,()=>H(u),e=>e.data.name,(e,t)=>{var n=RS(),r=L(n),i=L(r);Q(L(i),{name:`sparkle`,size:10,strokeWidth:2}),j(),A(i),A(r);var a=z(r,2),o=L(a,!0);A(a);var s=z(a,2),c=e=>{var n=LS(),r=L(n,!0);A(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)}),A(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Prompt`)))),G(`click`,n,()=>f().openReferenceDrawer(`prompt`,H(t).data)),G(`keydown`,n,e=>b(e,`prompt`,H(t).data)),q(e,n)}),A(o),V(()=>{Ji(n,`margin-top:${(H(l),U(()=>H(l).length>0?`20px`:`0`))??``}`),J(a,(H(u),U(()=>H(u).length)))}),q(e,t)};Y(i,e=>{H(u),U(()=>H(u).length>0)&&e(a)});var o=z(i,2),s=e=>{var t=US(),n=R(t),r=L(n);Q(r,{name:`database`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);A(i),A(n);var o=z(n,2);X(o,5,()=>H(d),e=>e.data.uri||e.data.name,(e,t)=>{var n=HS(),r=L(n),i=L(r);Q(L(i),{name:`database`,size:10,strokeWidth:2}),j(),A(i),A(r);var a=z(r,2),o=L(a,!0);A(a);var s=z(a,2),c=e=>{var n=BS(),r=L(n,!0);A(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)});var l=z(s,2),u=e=>{var n=VS(),r=L(n),i=L(r,!0);A(r),A(n),V(()=>J(i,(H(t),U(()=>H(t).data.uri)))),q(e,n)};Y(l,e=>{H(t),U(()=>H(t)?.data?.uri)&&e(u)}),A(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Resource`)))),G(`click`,n,()=>f().openReferenceDrawer(`resource`,H(t).data)),G(`keydown`,n,e=>b(e,`resource`,H(t).data)),q(e,n)}),A(o),V(()=>{Ji(n,`margin-top:${(H(l),H(u),U(()=>H(l).length>0||H(u).length>0?`20px`:`0`))??``}`),J(a,(H(d),U(()=>H(d).length)))}),q(e,t)};Y(o,e=>{H(d),U(()=>H(d).length>0)&&e(s)});var p=z(o,2),m=e=>{var t=WS(),n=L(t);Q(n,{name:`search`,size:28,strokeWidth:1.25});var r=z(n,2),i=L(r);A(r),A(t),V(()=>J(i,`No results for "${(H(c),U(()=>H(c).referenceSearch))??``}"`)),q(e,t)};Y(p,e=>{H(l),H(u),H(d),H(c),U(()=>H(l).length===0&&H(u).length===0&&H(d).length===0&&H(c).referenceFilter!==`ecosystem`)&&e(m)});var h=z(p,2),_=e=>{var t=KS(),n=L(t);Q(L(n),{name:`zap`,size:13,strokeWidth:1.75}),j(2),A(n);var r=z(n,2);X(r,5,()=>y,e=>e.name,(e,t)=>{var n=GS(),r=L(n);Q(L(r),{get name(){return H(t),U(()=>H(t).icon)},size:18,strokeWidth:1.5}),A(r);var i=z(r,2),a=L(i),o=L(a,!0);A(a);var s=z(a,2),c=L(s,!0);A(s),A(i),j(2),A(n),V(()=>{fa(n,`href`,(H(t),U(()=>H(t).url))),J(o,(H(t),U(()=>H(t).name))),J(c,(H(t),U(()=>H(t).description)))}),q(e,n)}),A(r),A(t),q(e,t)};Y(h,e=>{H(c),U(()=>H(c).referenceFilter===`all`||H(c).referenceFilter===`ecosystem`)&&e(_)}),q(e,t)};Y(oe,e=>{H(c),U(()=>!H(c).capabilities)?e(se):e(ce,-1)}),A(ae),A(re),A(x),va(ee,()=>n().referenceSearch,e=>ht(p(),U(n).referenceSearch=e,U(n))),q(e,x),Ge(),s()}var XS=K(`<div class="popup-load-more svelte-x7gsaf"><!> <span class="svelte-x7gsaf">Loading older...</span></div>`),ZS=K(`<div class="popup-empty svelte-x7gsaf"><!> <div class="svelte-x7gsaf">No activity yet</div> <div class="svelte-x7gsaf">Events appear here as they happen.</div></div>`),QS=K(`<div class="popup-action-sub svelte-x7gsaf"> </div>`),$S=K(`<button class="popup-read-more svelte-x7gsaf"> </button>`),eC=K(`<div class="popup-bubble-row popup-bubble-left svelte-x7gsaf"><div class="popup-bubble-wrap svelte-x7gsaf"><div class="popup-chat-bubble popup-chat-bubble-mcp svelte-x7gsaf"><div class="popup-mcp-sender svelte-x7gsaf">MCP</div> <div class="popup-markdown svelte-x7gsaf"><!></div> <!></div></div></div>`),tC=K(`<div class="popup-bubble-row popup-bubble-right svelte-x7gsaf"><div class="popup-bubble-wrap svelte-x7gsaf"><div class="popup-chat-bubble popup-chat-bubble-action svelte-x7gsaf"><div class="popup-action-badge svelte-x7gsaf"><!> <span class="svelte-x7gsaf"> </span></div> <div class="popup-action-main svelte-x7gsaf"> </div> <!></div></div></div> <!>`,1),nC=K(`<div class="popup-date-header svelte-x7gsaf"><span class="svelte-x7gsaf"> </span></div> <!>`,1),rC=K(`<div class="chat-backdrop svelte-x7gsaf" role="button" tabindex="-1" aria-label="Close"></div> <div class="chat-popup animate-fade-in-scale svelte-x7gsaf"><div class="chat-popup-header svelte-x7gsaf"><div class="chat-popup-title svelte-x7gsaf"><div class="chat-popup-avatar svelte-x7gsaf"><!></div> <div class="svelte-x7gsaf"><div class="chat-popup-name svelte-x7gsaf">Recent Activity</div> <div class="chat-popup-status svelte-x7gsaf"> </div></div></div> <button class="chat-popup-close svelte-x7gsaf" title="Close" aria-label="Close"><!></button></div> <div class="chat-popup-body svelte-x7gsaf"><!> <!></div> <div class="chat-popup-footer svelte-x7gsaf"><div class="chat-input-row svelte-x7gsaf"><input type="text" placeholder="Create a backlog task..." class="svelte-x7gsaf"/> <button class="chat-send-btn svelte-x7gsaf"><!></button></div></div></div>`,1),iC=K(`<button class="chat-fab svelte-x7gsaf" title="Open activity chat" aria-label="Open activity chat"><!></button>`);function aC(e,t){We(t,!1);let n=()=>P(y,`$raPage`,c),r=()=>P(b,`$handlerState`,c),i=()=>P(v,`$raStore`,c),a=()=>P(Ba,`$currentRepo`,c),o=()=>P(so,`$recentActionsTotalItems`,c),s=()=>P(_,`$groupedActions`,c),[c,l]=pt(),u=ka(t,`onRefresh`,8,()=>{}),d=F(!1),f=F(``),p=F(!1),m=F();async function h(e,t){let n=N(Ba);if(n)try{let r=await Z.recentActions(n,e,25);t?oo.update(e=>[...e,...r.actions||[]]):oo.set(r.actions||[]),co.set(r.pagination?.page??e),so.set(r.pagination?.totalItems??0)}catch(e){console.error(`Failed to load recent actions:`,e)}}let g=Hy(h),{groupedActions:_,recentActions:v,recentActionsPage:y}=g,b=g;Pa(()=>{let e=n();H(d)&&e<=1&&!r().isLoadingMore&&i().length>0&&g.scrollToBottom(H(m),`instant`)}),Aa(()=>()=>{oo.set([]),co.set(1)});function x(){I(d,!H(d)),H(d)&&(h(1),Pr().then(()=>g.scrollToBottom(H(m),`instant`)))}function S(e){e.key===`Escape`&&I(d,!1)}async function C(){let e=H(f).trim();if(!e||H(p))return;let t=N(Ba);if(t){I(p,!0);try{let n=`CHAT-`+Date.now().toString(36).toUpperCase(),r=new Date,i=String(r.getHours()).padStart(2,`0`),a=String(r.getMinutes()).padStart(2,`0`);await Z.createTask({repo:t,task_code:n,title:`Chat · ${i}:${a}`,description:e,status:`backlog`,priority:3,phase:`Inbox`}),I(f,``),await h(1),u()(),fo.update(e=>e+1),Pr().then(()=>g.scrollToBottom(H(m),`instant`))}catch(e){console.error(`Failed to create task:`,e)}finally{I(p,!1)}}}Ea();var w=li();G(`keydown`,hn,S);var T=R(w),E=e=>{var t=li(),n=R(t),a=e=>{var t=rC(),n=R(t),a=z(n,2),c=L(a),l=L(c),u=L(l);Q(L(u),{name:`message-circle`,size:16,strokeWidth:2.2}),A(u);var h=z(u,2),_=z(L(h),2),v=L(_);A(_),A(h),A(l);var y=z(l,2);Q(L(y),{name:`x`,size:16,strokeWidth:2.5}),A(y),A(c);var b=z(c,2),x=L(b),S=e=>{var t=XS();Q(L(t),{name:`refresh-cw`,size:12,className:`animate-spin`}),j(2),A(t),q(e,t)};Y(x,e=>{r(),U(()=>r().isLoadingMore)&&e(S)});var w=z(x,2),T=e=>{var t=ZS();Q(L(t),{name:`message-circle`,size:36,strokeWidth:1}),j(4),A(t),q(e,t)},E=e=>{var t=li();X(R(t),1,s,e=>e.date,(e,t)=>{var n=nC(),i=R(n),a=L(i),o=L(a,!0);A(a),A(i),X(z(i,2),1,()=>(H(t),U(()=>H(t).items)),e=>e.id,(e,t)=>{let n=Yt(()=>(H(t),U(()=>g.getLabel(H(t))))),i=Yt(()=>(H(t),U(()=>g.getConfig(H(t).action))));var a=tC(),o=R(a),s=L(o),c=L(s),l=L(c),u=L(l);Q(u,{get name(){return W(H(i)),U(()=>H(i).icon)},size:8,strokeWidth:2.5});var d=z(u,2),f=L(d,!0);A(d),A(l);var p=z(l,2),m=L(p,!0);A(p);var h=z(p,2),_=e=>{var t=QS(),r=L(t,!0);A(t),V(()=>J(r,(W(H(n)),U(()=>H(n).sub)))),q(e,t)};Y(h,e=>{W(H(n)),U(()=>H(n).sub)&&e(_)}),A(c),A(s),A(o);var v=z(o,2),y=e=>{let n=Yt(()=>(H(t),U(()=>g.parseResponse(H(t).response)))),i=Yt(()=>(r(),H(t),U(()=>r().expandedResponses.has(H(t).id))));var a=eC(),o=L(a),s=L(o),c=z(L(s),2);pb(L(c),{get content(){return W(H(n)),U(()=>H(n).text)}}),A(c);var l=z(c,2),u=e=>{var n=$S(),r=L(n,!0);A(n),V(()=>J(r,H(i)?`Less`:`More`)),G(`click`,n,()=>g.toggleExpand(H(t).id)),q(e,n)};Y(l,e=>{W(H(n)),U(()=>H(n).isLong)&&e(u)}),A(s),A(o),A(a),V(()=>Ji(c,(W(H(i)),W(H(n)),U(()=>!H(i)&&H(n).isLong?`max-height:80px;overflow:hidden;mask-image:linear-gradient(to bottom,black 60%,transparent 100%);`:``)))),q(e,a)};Y(v,e=>{H(t),U(()=>H(t).response)&&e(y)}),V(()=>{Ji(l,`color:${(W(H(i)),U(()=>H(i).color))??``};background:${(W(H(i)),U(()=>H(i).bgAlpha))??``};`),J(f,(W(H(i)),U(()=>H(i).label))),J(m,(W(H(n)),U(()=>H(n).main)))}),q(e,a)}),V(()=>J(o,(H(t),U(()=>H(t).date)))),q(e,n)}),q(e,t)};Y(w,e=>{i(),U(()=>i().length===0)?e(T):e(E,-1)}),A(b),Ca(b,e=>I(m,e),()=>H(m));var D=z(b,2),O=L(D),k=L(O);ca(k);var ee=z(k,2);Q(L(ee),{name:`send`,size:14,strokeWidth:2}),A(ee),A(O),A(D),A(a),V(e=>{J(v,`${o()??``} events`),la(k,H(f)),k.disabled=H(p),ee.disabled=e},[()=>(H(f),H(p),U(()=>!H(f).trim()||H(p)))]),G(`click`,n,()=>I(d,!1)),G(`click`,y,()=>I(d,!1)),G(`input`,k,e=>I(f,e.currentTarget.value)),G(`keydown`,k,e=>e.key===`Enter`&&!e.shiftKey&&C()),G(`click`,ee,C),q(e,t)},c=e=>{var t=iC();Q(L(t),{name:`message-circle`,size:22,strokeWidth:2.2}),A(t),G(`click`,t,x),q(e,t)};Y(n,e=>{H(d)?e(a):e(c,-1)}),q(e,t)};Y(T,e=>{a()&&e(E)}),q(e,w),Ge(),l()}var oC=K(`<div class="error-banner svelte-owkwhr"> </div>`),sC=K(`<div class="notice-banner svelte-owkwhr"> </div>`),cC=K(`<tr><td colspan="7" class="mem-td svelte-owkwhr"><div class="skeleton" style="height:20px;border-radius:6px;"></div></td></tr>`),lC=K(`<tr><td colspan="7" class="mem-td svelte-owkwhr" style="padding:40px;text-align:center;color:var(--color-text-muted);"><!> <div style="margin-top:8px;">No standards found</div> <div style="font-size:0.78rem;margin-top:4px;">Adjust the filters or create a standard.</div></td></tr>`),uC=K(`<span style="font-size:0.6rem;background:rgba(99,102,241,0.1);color:#6366f1;padding:1px 5px;border-radius:9999px;"> </span>`),dC=K(`<div style="margin-top:3px;display:flex;gap:4px;flex-wrap:wrap;"></div>`),fC=K(`<tr class="mem-row svelte-owkwhr" role="button" tabindex="0"><td class="mem-td svelte-owkwhr" style="max-width:300px;"><div class="truncate font-semibold" style="font-size:0.82rem;color:var(--color-text);"> </div> <!></td><td class="mem-td svelte-owkwhr" style="font-size:0.78rem;color:var(--color-text);"> </td><td class="mem-td svelte-owkwhr" style="font-size:0.75rem;color:var(--color-text-muted);"> </td><td class="mem-td svelte-owkwhr" style="font-size:0.78rem;color:var(--color-text);"> </td><td class="mem-td svelte-owkwhr" style="font-size:0.75rem;color:var(--color-text-muted);white-space:nowrap;"> </td><td class="mem-td svelte-owkwhr"><span> </span></td><td class="mem-td row-actions svelte-owkwhr"><button class="row-action-btn edit-btn svelte-owkwhr" title="Edit / View" aria-label="Edit standard"><!></button> <button class="row-action-btn delete-btn svelte-owkwhr" title="Delete" aria-label="Delete standard"><!></button></td></tr>`),pC=K(`<button> </button>`),mC=K(`<div style="display:flex;align-items:center;justify-content:space-between;margin-top:12px;"><span style="font-size:0.75rem;color:var(--color-text-muted);"> </span> <div style="display:flex;gap:4px;"><button class="btn btn-ghost btn-sm">«</button> <button class="btn btn-ghost btn-sm">‹</button> <!> <button class="btn btn-ghost btn-sm">›</button> <button class="btn btn-ghost btn-sm">»</button></div></div>`),hC=K(`<div class="feature-shell animate-fade-in svelte-owkwhr"><div class="feature-toolbar glass card svelte-owkwhr"><div class="toolbar-title svelte-owkwhr"><!> <div><div class="section-label">CODING STANDARDS</div> <div class="toolbar-subtitle svelte-owkwhr">Rules the agents follow in this repo. Filter, inspect, import, or add one rule at a time.</div></div></div> <button class="btn btn-primary toolbar-action svelte-owkwhr"><!> Add Rule</button> <div class="toolbar-actions svelte-owkwhr"><button class="btn btn-ghost btn-sm"><!> </button> <button class="btn btn-ghost btn-sm"><!> </button> <input class="file-input svelte-owkwhr" type="file" accept="application/json,.json"/></div> <div class="toolbar-controls svelte-owkwhr"><input class="form-input" placeholder="Search standards..."/> <input class="form-input" placeholder="Language, e.g. typescript"/> <input class="form-input" placeholder="Stack tags, e.g. svelte, vite"/> <select class="form-select"><option>Repo + global</option><option>Global only</option><option>All standards</option></select></div></div> <div class="insight-strip svelte-owkwhr"><div class="insight-card svelte-owkwhr"><span class="svelte-owkwhr">Visible</span> <strong class="svelte-owkwhr"> </strong></div> <div class="insight-card svelte-owkwhr"><span class="svelte-owkwhr">Scope</span> <strong class="svelte-owkwhr"> </strong></div> <div class="insight-card svelte-owkwhr"><span class="svelte-owkwhr">Total</span> <strong class="svelte-owkwhr"> </strong></div> <div class="insight-card svelte-owkwhr"><span class="svelte-owkwhr">Page</span> <strong class="svelte-owkwhr"> </strong></div></div> <!> <!> <div class="mem-table-wrap svelte-owkwhr"><table class="mem-table svelte-owkwhr"><thead><tr class="mem-thead-row svelte-owkwhr"><th class="mem-th svelte-owkwhr" style="min-width:200px;">Title</th><th class="mem-th svelte-owkwhr">Context</th><th class="mem-th svelte-owkwhr">Version</th><th class="mem-th svelte-owkwhr">Language</th><th class="mem-th svelte-owkwhr">Updated</th><th class="mem-th svelte-owkwhr">Scope</th><th class="mem-th svelte-owkwhr" style="width:80px;"></th></tr></thead><tbody><!></tbody></table></div> <!></div> <!>`,1);function gC(e,t){We(t,!1);let n=F(),r=F(),i=ka(t,`repo`,8,``),a=F([]),o=F(!1),s=F(``),c=F(``),l=F(``),u=F(``),d=F(``),f=F(`repo`),p=F(!1),m=F(!1),h=F(),g=F(1),_=F(0),v=F(1),y=F(null),b=F(!1);async function x(){if(i()){I(o,!0),I(s,``);try{let e=await Z.standards({query:H(l)||void 0,language:H(u)||void 0,stack:H(d)||void 0,repo:H(f)===`repo`?i():void 0,is_global:H(f)===`global`?!0:void 0,page:H(g),pageSize:25});I(a,e.standards||[]),I(_,e.pagination?.totalItems||0),I(v,e.pagination?.totalPages||1)}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(o,!1)}}}function S(){I(g,1),x()}function C(e){e<1||e>H(v)||(I(g,e),x())}function w(){I(y,null),I(b,!0)}function T(e){I(y,e),I(b,!0)}function E(){I(b,!1),I(y,null)}function D(e){x()}function O(e){x()}async function k(e){if(confirm(`Delete coding standard "${e.title}"?`))try{await Z.deleteStandard(e.id),x()}catch(e){I(s,e instanceof Error?e.message:String(e))}}async function ee(){I(m,!0),I(s,``),I(c,``);try{let e=H(f)===`global`||H(f)===`all`?H(f):`repo`,t=await Z.exportStandards({repo:e===`repo`?i():void 0,scope:e}),n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),a=document.createElement(`a`);a.href=r,a.download=`standards-${i()?i().replace(/[^a-z0-9._-]+/gi,`-`):`all`}-${e}-${new Date().toISOString().slice(0,10)}.json`,a.click(),URL.revokeObjectURL(r)}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(m,!1)}}async function te(e){let t=e.currentTarget,n=t.files?.[0];if(n){I(p,!0),I(s,``),I(c,``);try{let e=JSON.parse(await n.text()),t=Array.isArray(e?.standards)?e.standards.length:0,r=await Z.importStandards({...e,refresh_vectors:t>0&&t<=500});x();let i=r.vectors_refreshed?``:` Vector refresh skipped for large import.`;I(c,`Imported ${r.imported} and updated ${r.updated} standard(s).${i}`)}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(p,!1),t.value=``}}}Aa(()=>{x()}),B(()=>W(i()),()=>{i()&&x()}),B(()=>(H(g),H(v)),()=>{I(n,Math.max(1,Math.min(H(g)-2,H(v)-4)))}),B(()=>(H(v),H(n)),()=>{I(r,Array.from({length:Math.min(5,H(v))},(e,t)=>H(n)+t))}),Un(),Ea();var ne=hC(),re=R(ne),ie=L(re),ae=L(ie);Q(L(ae),{name:`check`,size:16,strokeWidth:2}),j(2),A(ae);var oe=z(ae,2);Q(L(oe),{name:`plus`,size:14,strokeWidth:2}),j(),A(oe);var se=z(oe,2),ce=L(se),le=L(ce);Q(le,{name:`download`,size:14,strokeWidth:2});var ue=z(le);A(ce);var de=z(ce,2),fe=L(de);Q(fe,{name:`upload`,size:14,strokeWidth:2});var pe=z(fe);A(de);var me=z(de,2);Ca(me,e=>I(h,e),()=>H(h)),A(se);var he=z(se,2),ge=L(he);ca(ge);var _e=z(ge,2);ca(_e);var ve=z(_e,2);ca(ve);var ye=z(ve,2),be=L(ye);be.value=be.__value=`repo`;var xe=z(be);xe.value=xe.__value=`global`;var Se=z(xe);Se.value=Se.__value=`all`,A(ye),A(he),A(ie);var Ce=z(ie,2),we=L(Ce),Te=z(L(we),2),Ee=L(Te,!0);A(Te),A(we);var De=z(we,2),Oe=z(L(De),2),ke=L(Oe,!0);A(Oe),A(De);var Ae=z(De,2),je=z(L(Ae),2),Me=L(je,!0);A(je),A(Ae);var Ne=z(Ae,2),Pe=z(L(Ne),2),Fe=L(Pe);A(Pe),A(Ne),A(Ce);var Ie=z(Ce,2),Le=e=>{var t=oC(),n=L(t,!0);A(t),V(()=>J(n,H(s))),q(e,t)};Y(Ie,e=>{H(s)&&e(Le)});var Re=z(Ie,2),ze=e=>{var t=sC(),n=L(t,!0);A(t),V(()=>J(n,H(c))),q(e,t)};Y(Re,e=>{H(c)&&e(ze)});var Be=z(Re,2),Ve=L(Be),He=z(L(Ve)),Ue=L(He),Ke=e=>{var t=li();X(R(t),0,()=>({length:5}),_i,(e,t,n)=>{var r=cC();fa(r,`data-index`,n),V(()=>fa(r,`data-dummy`,t)),q(e,r)}),q(e,t)},qe=e=>{var t=lC(),n=L(t);Q(L(n),{name:`check`,size:22,strokeWidth:1.75}),j(4),A(n),A(t),q(e,t)},Je=e=>{var n=li();X(R(n),1,()=>H(a),e=>e.id,(e,n)=>{var r=fC(),i=L(r),a=L(i),o=L(a,!0);A(a);var s=z(a,2),c=e=>{var t=dC();X(t,5,()=>(H(n),U(()=>H(n).tags.slice(0,4))),e=>e,(e,t)=>{var n=uC(),r=L(n,!0);A(n),V(()=>J(r,H(t))),q(e,n)}),A(t),q(e,t)};Y(s,e=>{H(n),U(()=>H(n).tags?.length)&&e(c)}),A(i);var l=z(i),u=L(l,!0);A(l);var d=z(l),f=L(d);A(d);var p=z(d),m=L(p,!0);A(p);var h=z(p),g=L(h,!0);A(h);var _=z(h),v=L(_);let y;var b=L(v,!0);A(v),A(_);var x=z(_),S=L(x);Q(L(S),{name:`edit-2`,size:13,strokeWidth:2}),A(S);var C=z(S,2);Q(L(C),{name:`trash-2`,size:13,strokeWidth:2}),A(C),A(x),A(r),V(e=>{J(o,(H(n),U(()=>H(n).title))),J(u,(H(n),U(()=>H(n).context||`—`))),J(f,`v${(H(n),U(()=>H(n).version))??``}`),J(m,(H(n),U(()=>H(n).language||`any`))),J(g,e),y=Ki(v,1,`scope-chip svelte-owkwhr`,null,y,{"scope-global":H(n).is_global,"scope-repo":!H(n).is_global}),J(b,(H(n),U(()=>H(n).is_global?`Global`:`Repo`)))},[()=>(W(pl),H(n),U(()=>pl(H(n).updated_at)))]),G(`click`,S,()=>T(H(n))),G(`click`,C,()=>k(H(n))),G(`click`,x,wa(function(e){Oa.call(this,t,e)})),G(`click`,r,()=>T(H(n))),G(`keydown`,r,e=>e.key===`Enter`&&T(H(n))),q(e,r)}),q(e,n)};Y(Ue,e=>{H(o)?e(Ke):(H(a),U(()=>H(a).length===0)?e(qe,1):e(Je,-1))}),A(He),A(Ve),A(Be);var Ye=z(Be,2),Xe=e=>{var t=mC(),n=L(t),i=L(n);A(n);var a=z(n,2),o=L(a),s=z(o,2),c=z(s,2);X(c,1,()=>H(r),e=>e,(e,t)=>{var n=pC();let r;var i=L(n,!0);A(n),V(()=>{r=Ki(n,1,`btn btn-sm`,null,r,{"btn-primary":H(t)===H(g),"btn-ghost":H(t)!==H(g)}),J(i,H(t))}),G(`click`,n,()=>C(H(t))),q(e,n)});var l=z(c,2),u=z(l,2);A(a),A(t),V(()=>{J(i,`Page ${H(g)??``} of ${H(v)??``}`),o.disabled=H(g)<=1,s.disabled=H(g)<=1,l.disabled=H(g)>=H(v),u.disabled=H(g)>=H(v)}),G(`click`,o,()=>C(1)),G(`click`,s,()=>C(H(g)-1)),G(`click`,l,()=>C(H(g)+1)),G(`click`,u,()=>C(H(v))),q(e,t)};Y(Ye,e=>{H(v)>1&&e(Xe)}),A(re),yx(z(re,2),{get standard(){return H(y)},get open(){return H(b)},onClose:E,onStandardUpdated:D,onStandardDeleted:O,get repo(){return i()}}),V(()=>{ce.disabled=(H(m),H(a),U(()=>H(m)||H(a).length===0)),J(ue,` ${H(m)?`Exporting...`:`Export`}`),de.disabled=H(p),J(pe,` ${H(p)?`Importing...`:`Import`}`),J(Ee,(H(a),U(()=>H(a).length))),J(ke,H(f)===`repo`?`Repo + global`:H(f)===`global`?`Global only`:`All`),J(Me,H(_)),J(Fe,`${H(g)??``} / ${H(v)??``}`)}),G(`click`,oe,w),G(`click`,ce,ee),G(`click`,de,()=>H(h)?.click()),G(`change`,me,te),va(ge,()=>H(l),e=>I(l,e)),G(`input`,ge,S),va(_e,()=>H(u),e=>I(u,e)),G(`input`,_e,S),va(ve,()=>H(d),e=>I(d,e)),G(`input`,ve,S),Zi(ye,()=>H(f),e=>I(f,e)),G(`change`,ye,S),q(e,ne),Ge()}var _C=K(`<div class="error-banner svelte-1ik2acm"> </div>`),vC=K(`<tr><td colspan="8" class="mem-td svelte-1ik2acm"><div class="skeleton" style="height:20px;border-radius:6px;"></div></td></tr>`),yC=K(`<tr><td colspan="8" class="mem-td svelte-1ik2acm" style="padding:40px;text-align:center;color:var(--color-text-muted);"><!> <div style="margin-top:8px;">No handoffs found</div> <div style="font-size:0.78rem;margin-top:4px;">Create a handoff when work needs context transfer between agents.</div></td></tr>`),bC=K(`<tr class="mem-row svelte-1ik2acm" role="button" tabindex="0"><td class="mem-td svelte-1ik2acm" style="font-size:0.82rem;color:var(--color-text);font-weight:600;"> </td><td class="mem-td svelte-1ik2acm" style="font-size:0.82rem;color:var(--color-text);"> </td><td class="mem-td svelte-1ik2acm" style="font-size:0.75rem;color:var(--color-text-muted);"> </td><td class="mem-td svelte-1ik2acm" style="max-width:300px;"><div class="truncate font-semibold" style="font-size:0.82rem;color:var(--color-text);"> </div></td><td class="mem-td svelte-1ik2acm"><span> </span></td><td class="mem-td svelte-1ik2acm" style="font-size:0.75rem;color:var(--color-text-muted);white-space:nowrap;"> </td><td class="mem-td svelte-1ik2acm" style="font-size:0.75rem;color:var(--color-text-muted);white-space:nowrap;"> </td><td class="mem-td row-actions svelte-1ik2acm"><button class="row-action-btn delete-btn svelte-1ik2acm" title="Expire" aria-label="Expire handoff"><!></button></td></tr>`),xC=K(`<div class="muted-state svelte-1ik2acm">Loading claims...</div>`),SC=K(`<div class="empty-claims svelte-1ik2acm"><!> <div class="empty-title svelte-1ik2acm">No active claims</div> <div class="empty-copy svelte-1ik2acm">Claimed tasks will appear here so you can inspect or release them.</div></div>`),CC=K(`<div class="claim-row svelte-1ik2acm"><div><div class="row-title svelte-1ik2acm"> </div> <div class="row-meta svelte-1ik2acm"><span> </span> <span> </span> <span> </span></div></div> <button class="btn btn-ghost btn-sm"> </button></div>`),wC=K(`<div class="claim-list svelte-1ik2acm"></div>`),TC=K(`<div class="feature-shell animate-fade-in svelte-1ik2acm"><div class="feature-toolbar glass card svelte-1ik2acm"><div class="toolbar-title svelte-1ik2acm"><!> <div><div class="section-label svelte-1ik2acm">HANDOFFS & CLAIMS</div> <div class="toolbar-subtitle svelte-1ik2acm">Handoffs transfer context between agents. Claims reserve a task for one owner.</div></div></div> <button class="btn btn-primary toolbar-action svelte-1ik2acm"><!> New Handoff</button> <div class="toolbar-controls svelte-1ik2acm"><select class="form-select"><option>All statuses</option><option>Pending</option><option>Accepted</option><option>Rejected</option><option>Expired</option></select> <input class="form-input" placeholder="To agent filter"/> <button class="btn btn-ghost"><!> Refresh</button></div></div> <div class="insight-strip svelte-1ik2acm"><div class="insight-card svelte-1ik2acm"><span class="svelte-1ik2acm">Pending</span> <strong class="svelte-1ik2acm"> </strong></div> <div class="insight-card svelte-1ik2acm"><span class="svelte-1ik2acm">Resolved</span> <strong class="svelte-1ik2acm"> </strong></div> <div class="insight-card svelte-1ik2acm"><span class="svelte-1ik2acm">Claims</span> <strong class="svelte-1ik2acm"> </strong></div> <div class="insight-card svelte-1ik2acm"><span class="svelte-1ik2acm">Total</span> <strong class="svelte-1ik2acm"> </strong></div></div> <!> <div class="mem-table-wrap svelte-1ik2acm"><table class="mem-table svelte-1ik2acm"><thead><tr class="mem-thead-row svelte-1ik2acm"><th class="mem-th svelte-1ik2acm" style="min-width:140px;">From</th><th class="mem-th svelte-1ik2acm" style="min-width:140px;">To</th><th class="mem-th svelte-1ik2acm" style="min-width:100px;">Task</th><th class="mem-th svelte-1ik2acm" style="min-width:200px;">Summary</th><th class="mem-th svelte-1ik2acm" style="width:100px;">Status</th><th class="mem-th svelte-1ik2acm" style="width:130px;">Created</th><th class="mem-th svelte-1ik2acm" style="width:130px;">Expires</th><th class="mem-th svelte-1ik2acm" style="width:60px;"></th></tr></thead><tbody><!></tbody></table></div> <div class="claims-section svelte-1ik2acm"><div class="claims-header svelte-1ik2acm"><div class="section-label svelte-1ik2acm">Active Claims</div> <span class="toolbar-subtitle svelte-1ik2acm"> </span></div> <!></div></div> <!>`,1);function EC(e,t){We(t,!1);let n=F(),r=F(),i=ka(t,`repo`,8,``),a=F([]),o=F(!1),s=F(``),c=F(``),l=F(``),u=F([]),d=F(!1),f=F(null),p=F(null),m=F(!1);function h(e){return e?.structuredContent??null}function g(e,t){let n=Object.fromEntries(e.map((e,n)=>[e,t[n]]));return{id:String(n.id||``),repo:i(),from_agent:String(n.from_agent||``),to_agent:n.to_agent?String(n.to_agent):null,task_id:n.task_id?String(n.task_id):null,task_code:n.task_code?String(n.task_code):null,summary:String(n.summary||``),context:n.context&&typeof n.context==`object`&&!Array.isArray(n.context)?n.context:{},status:String(n.status||`pending`),created_at:String(n.created_at||``),updated_at:String(n.updated_at||n.created_at||``),expires_at:n.expires_at?String(n.expires_at):null}}async function _(){if(i()){I(d,!0);try{I(u,(await Z.coordinationClaims({repo:i(),active_only:!0,pageSize:20})).claims||[])}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(d,!1)}}}async function v(){if(i()){I(o,!0),I(s,``);try{let e={repo:i(),limit:50,structured:!0};H(c)&&(e.status=H(c)),H(l).trim()&&(e.to_agent=H(l).trim());let t=h(await Z.callTool(`handoff-list`,e)),n=t?.handoffs?.columns||[];I(a,(t?.handoffs?.rows||[]).map(e=>g(n,e))),H(p)&&!H(a).some(e=>e.id===H(p)?.id)&&I(p,null)}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(o,!1)}}}async function y(){await Promise.all([v(),_()])}function b(){I(p,null),I(m,!0)}function x(e){I(p,e),I(m,!0)}function S(){I(m,!1),I(p,null)}function C(){S(),y()}function w(){S(),y()}async function T(e){I(f,e.id),I(s,``);try{await Z.releaseClaim({repo:i(),task_id:e.task_id,agent:e.agent}),await _()}catch(e){I(s,e instanceof Error?e.message:String(e))}finally{I(f,null)}}async function E(e){if(confirm(`Expire handoff "${e.summary}"?`))try{await Z.callTool(`handoff-update`,{id:e.id,status:`expired`,structured:!0}),y()}catch(e){I(s,e instanceof Error?e.message:String(e))}}Aa(()=>{y()}),B(()=>W(i()),()=>{i()&&y()}),B(()=>H(a),()=>{I(n,H(a).filter(e=>e.status===`pending`).length)}),B(()=>H(a),()=>{I(r,H(a).filter(e=>e.status!==`pending`).length)}),Un(),Ea();var D=TC(),O=R(D),k=L(O),ee=L(k);Q(L(ee),{name:`git-branch`,size:16,strokeWidth:2}),j(2),A(ee);var te=z(ee,2);Q(L(te),{name:`plus`,size:14,strokeWidth:2}),j(),A(te);var ne=z(te,2),re=L(ne),ie=L(re);ie.value=ie.__value=``;var ae=z(ie);ae.value=ae.__value=`pending`;var oe=z(ae);oe.value=oe.__value=`accepted`;var se=z(oe);se.value=se.__value=`rejected`;var ce=z(se);ce.value=ce.__value=`expired`,A(re);var le=z(re,2);ca(le);var ue=z(le,2);Q(L(ue),{name:`refresh-cw`,size:14,strokeWidth:2}),j(),A(ue),A(ne),A(k);var de=z(k,2),fe=L(de),pe=z(L(fe),2),me=L(pe,!0);A(pe),A(fe);var he=z(fe,2),ge=z(L(he),2),_e=L(ge,!0);A(ge),A(he);var ve=z(he,2),ye=z(L(ve),2),be=L(ye,!0);A(ye),A(ve);var xe=z(ve,2),Se=z(L(xe),2),Ce=L(Se,!0);A(Se),A(xe),A(de);var we=z(de,2),Te=e=>{var t=_C(),n=L(t,!0);A(t),V(()=>J(n,H(s))),q(e,t)};Y(we,e=>{H(s)&&e(Te)});var Ee=z(we,2),De=L(Ee),Oe=z(L(De)),ke=L(Oe),Ae=e=>{var t=li();X(R(t),0,()=>({length:5}),_i,(e,t)=>{q(e,vC())}),q(e,t)},je=e=>{var t=yC(),n=L(t);Q(L(n),{name:`git-branch`,size:22,strokeWidth:1.75}),j(4),A(n),A(t),q(e,t)},Me=e=>{var n=li();X(R(n),1,()=>H(a),e=>e.id,(e,n)=>{var r=bC(),i=L(r),a=L(i,!0);A(i);var o=z(i),s=L(o,!0);A(o);var c=z(o),l=L(c,!0);A(c);var u=z(c),d=L(u),f=L(d,!0);A(d),A(u);var p=z(u),m=L(p);let h;var g=L(m,!0);A(m),A(p);var _=z(p),v=L(_,!0);A(_);var y=z(_),b=L(y,!0);A(y);var S=z(y),C=L(S);Q(L(C),{name:`trash-2`,size:13,strokeWidth:2}),A(C),A(S),A(r),V((e,t,r)=>{J(a,(H(n),U(()=>H(n).from_agent))),J(s,(H(n),U(()=>H(n).to_agent||`—`))),J(l,e),J(f,(H(n),U(()=>H(n).summary))),h=Ki(m,1,`status-pill svelte-1ik2acm`,null,h,{"status-pending":H(n).status===`pending`,"status-accepted":H(n).status===`accepted`,"status-rejected":H(n).status===`rejected`,"status-expired":H(n).status===`expired`}),J(g,(H(n),U(()=>H(n).status))),J(v,t),J(b,r),C.disabled=(H(n),U(()=>H(n).status===`expired`))},[()=>(H(n),U(()=>H(n).task_code||H(n).task_id?.slice(0,8)||`—`)),()=>(W(pl),H(n),U(()=>pl(H(n).created_at))),()=>(H(n),W(pl),U(()=>H(n).expires_at?pl(H(n).expires_at):`—`))]),G(`click`,C,()=>E(H(n))),G(`click`,S,wa(function(e){Oa.call(this,t,e)})),G(`click`,r,()=>x(H(n))),G(`keydown`,r,e=>e.key===`Enter`&&x(H(n))),q(e,r)}),q(e,n)};Y(ke,e=>{H(o)?e(Ae):(H(a),U(()=>H(a).length===0)?e(je,1):e(Me,-1))}),A(Oe),A(De),A(Ee);var Ne=z(Ee,2),Pe=L(Ne),Fe=z(L(Pe),2),Ie=L(Fe);A(Fe),A(Pe);var Le=z(Pe,2),Re=e=>{q(e,xC())},ze=e=>{var t=SC();Q(L(t),{name:`check`,size:20,strokeWidth:1.75}),j(4),A(t),q(e,t)},Be=e=>{var t=wC();X(t,5,()=>H(u),e=>e.id,(e,t)=>{var n=CC(),r=L(n),i=L(r),a=L(i,!0);A(i);var o=z(i,2),s=L(o),c=L(s,!0);A(s);var l=z(s,2),u=L(l,!0);A(l);var d=z(l,2),p=L(d,!0);A(d),A(o),A(r);var m=z(r,2),h=L(m,!0);A(m),A(n),V(e=>{J(a,(H(t),U(()=>H(t).task_code||H(t).task_id))),J(c,(H(t),U(()=>H(t).agent))),J(u,(H(t),U(()=>H(t).role))),J(p,e),m.disabled=(H(f),H(t),U(()=>H(f)===H(t).id)),J(h,(H(f),H(t),U(()=>H(f)===H(t).id?`Releasing...`:`Release`)))},[()=>(W(pl),H(t),U(()=>pl(H(t).claimed_at)))]),G(`click`,m,()=>T(H(t))),q(e,n)}),A(t),q(e,t)};Y(Le,e=>{H(d)?e(Re):(H(u),U(()=>H(u).length===0)?e(ze,1):e(Be,-1))}),A(Ne),A(O),yx(z(O,2),{get handoff(){return H(p)},get open(){return H(m)},onClose:S,onHandoffCreated:C,onHandoffUpdated:w,get repo(){return i()}}),V(()=>{J(me,H(n)),J(_e,H(r)),J(be,(H(u),U(()=>H(u).length))),J(Ce,(H(a),U(()=>H(a).length))),J(Ie,`${(H(u),U(()=>H(u).length))??``} active`)}),G(`click`,te,b),Zi(re,()=>H(c),e=>I(c,e)),G(`change`,re,v),va(le,()=>H(l),e=>I(l,e)),G(`input`,le,v),G(`click`,ue,y),q(e,D),Ge()}var DC={backlog:`#64748b`,pending:`#0ea5e9`,in_progress:`#a855f7`,blocked:`#ef4444`,completed:`#10b981`,canceled:`#94a3b8`},OC={backlog:`backlog`,pending:`pending`,in_progress:`in_progress`,blocked:`blocked`,completed:`completed`,canceled:`canceled`},kC=[`#06b6d4`,`#f59e0b`,`#ec4899`,`#10b981`,`#3b82f6`,`#f97316`,`#14b8a6`,`#e11d48`,`#8b5cf6`,`#84cc16`],AC=16,jC=22,MC=28,NC=new Set([`in_progress`,`pending`]),PC=34,FC=54,IC=28,LC=58,RC=42;function zC(e,t,n){return Math.min(n,Math.max(t,e))}function BC(e,t){let n=Math.max(1,e.w-PC*2),r=Math.max(1,e.h-FC-IC),i=zC(Math.floor(n/LC)+1,1,3),a=Math.max(1,Math.floor(r/RC)+1),o=t%(i*a),s=o%i,c=Math.floor(o/i),l=i>1?n/(i-1):0,u=a>1?r/(a-1):0;return{x:e.x+PC+s*l,y:e.y+FC+c*u}}var VC=[`male_nurse`,`female_nurse`,`staff1`,`staff2`];function HC(e){return e%2==0?`wheelchair`:`stretcher`}function UC(e){return VC[(e>>>4)%VC.length]}function WC(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t}function GC(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return kC[t%kC.length]}function KC(e,t){let n=e-32,r=t-32,i=Math.floor((r-16)/2),a=r-i-16,o=Math.floor((n-16)/2),s=Math.floor((n-32)/3);return[{id:`pending`,label:`Pending`,x:16,y:16,w:o,h:i,color:`#f59e0b`},{id:`in_progress`,label:`In Progress`,x:16+o+16,y:16,w:n-o-16,h:i,color:`#3b82f6`},{id:`backlog`,label:`Backlog`,x:16,y:16+i+16,w:s,h:a,color:`#8b5cf6`},{id:`blocked`,label:`Blocked`,x:16+s+16,y:16+i+16,w:s,h:a,color:`#ef4444`},{id:`burnout`,label:`Therapy Room`,x:16+s*2+32,y:16+i+16,w:n-s*2-32,h:a,color:`#14b8a6`}]}function qC(e,t){let n=new Map(t.map(e=>[e.id,e])),r=new Map;t.forEach(e=>r.set(e.id,[]));for(let t of e){let e=OC[t.status]??`pending`;if(!r.has(e))continue;let n=r.get(e);n.length<AC&&n.push(t)}let i=new Map;for(let[e,t]of r){let r=n.get(e);if(!r||t.length===0)continue;let a=r.w-jC*2,o=r.h-jC-MC,s=Math.max(1,Math.floor(a/65)),c=Math.ceil(t.length/s);for(;o/c<55&&s<t.length;)s++,c=Math.ceil(t.length/s);let l=a/s,u=Math.max(55,Math.min(75,o/c));t.forEach((e,t)=>{let n=t%s,a=Math.floor(t/s);i.set(e.id,{x:r.x+jC+n*l+l/2,y:r.y+MC+a*u+u/2})})}return i}function JC(e,t,n,r,i){let a=KC(i.canvasWidth,i.canvasHeight),o=qC(e,a),s=a.find(e=>e.id===`in_progress`)||a[0],c={agents:new Map,tasks:new Map,handoffs:[]};for(let t of e){let e=o.get(t.id);e&&c.tasks.set(t.id,{id:t.id,taskCode:t.task_code,title:t.title,repo:t.repo,status:t.status,priority:t.priority??3,x:e.x,y:e.y,claimedByAgentId:t.coordination?.active_claim_agent??null,hasPendingHandoff:(t.coordination?.pending_handoff_count??0)>0})}let l=new Map;for(let e of t){l.has(e.agent)||l.set(e.agent,{tasks:new Set,role:e.role,repos:new Set});let t=l.get(e.agent);t.tasks.add(e.task_id),t.repos.add(e.repo)}for(let t of e){let e=t.coordination?.active_claim_agent;if(!e)continue;l.has(e)||l.set(e,{tasks:new Set,role:t.coordination?.active_claim_role??`agent`,repos:new Set});let n=l.get(e);n.tasks.add(t.id),n.repos.add(t.repo)}Array.from(l.keys()).forEach((e,t)=>{let{tasks:n,role:i,repos:o}=l.get(e),u=r?.agents.get(e),d=s.x+s.w/2+(t%3-1)*30,f=s.y+s.h/2+(Math.floor(t/3)-1)*30,p=Array.from(n).find(e=>c.tasks.has(e)),m=p?c.tasks.get(p):null,h=Array.from(n).map(e=>c.tasks.get(e)).filter(e=>!!e).some(e=>NC.has(e.status)),g=m?m.x+20:d,_=m?m.y-18:f,v=Array.from(n).sort(),y=u?.claimedTaskIds.slice().sort()??[],b=!u||v.join(`,`)!==y.join(`,`),x=Date.now(),S=b?x:u?.lastUpdateTs??x,C=!h&&x-S>3e4,w=n.size>0?`processing`:`idle`;m&&m.status===`blocked`&&(w=`blocked`);let T=u?.handoffAnim??null;if(C){w=`burnout`;let n=BC(a.find(e=>e.id===`burnout`)||s,t);if(g=n.x,_=n.y,u?.state!==`burnout`&&!T){let t=WC(e),n=u?.x??d,r=u?.y??f;T={phase:`pickup`,vehicle:HC(t),helperVariant:UC(t),startX:n,startY:r,endX:g,endY:_,progress:0,phaseStartTs:performance.now(),wheelAngle:0,helperWalkPhase:0,helperFacing:`down`,stepBounce:0}}}else T=null;c.agents.set(e,{id:e,name:e,role:i,color:GC(e),x:u?.x??d,y:u?.y??f,targetX:g,targetY:_,vx:u?.vx??0,vy:u?.vy??0,walkPhase:u?.walkPhase??0,facing:u?.facing??`down`,state:w,claimedTaskIds:Array.from(n),repos:Array.from(o),lastUpdateTs:S,handoffAnim:T})});for(let e of n)e.status===`pending`&&c.handoffs.push({id:e.id,fromAgentId:e.from_agent,toAgentId:e.to_agent,taskId:e.task_id,summary:e.summary});return c}function YC(e){return e?.structuredContent??null}function XC(e,t,n){let r=Object.fromEntries(e.map((e,n)=>[e,t[n]]));return{id:String(r.id??``),repo:n,from_agent:String(r.from_agent??``),to_agent:r.to_agent?String(r.to_agent):null,task_id:r.task_id?String(r.task_id):null,task_code:r.task_code?String(r.task_code):null,summary:String(r.summary??``),context:r.context??{},status:String(r.status??`pending`),created_at:String(r.created_at??``),updated_at:String(r.updated_at??r.created_at??``),expires_at:r.expires_at?String(r.expires_at):null}}function ZC(){let e=M({scene:null,loading:!1,error:null,lastUpdated:0,repoCount:0}),t=null,n=!1,r=null;async function i(){if(n||!r)return;let t=N(za).map(e=>e.repo);if(t.length===0){e.update(e=>({...e,loading:!1}));return}n=!0;try{let n=await Promise.allSettled(t.map(e=>Promise.allSettled([Z.tasks({repo:e,status:`in_progress`,pageSize:10}),Z.tasks({repo:e,status:`pending`,pageSize:8}),Z.tasks({repo:e,status:`blocked`,pageSize:4}),Z.coordinationClaims({repo:e,active_only:!0,pageSize:50}),Z.callTool(`handoff-list`,{repo:e,status:`pending`,limit:10,structured:!0})]))),i=[],a=[],o=[];t.forEach((e,t)=>{let r=n[t];if(r.status===`rejected`)return;let[s,c,l,u,d]=r.value;if(s.status===`fulfilled`&&i.push(...s.value.tasks??[]),c.status===`fulfilled`&&i.push(...c.value.tasks??[]),l.status===`fulfilled`&&i.push(...l.value.tasks??[]),u.status===`fulfilled`&&a.push(...u.value.claims??[]),d.status===`fulfilled`){let t=YC(d.value),n=t?.handoffs?.columns??[],r=t?.handoffs?.rows??[];o.push(...r.map(t=>XC(n,t,e)))}});let s=Array.from(new Map(i.map(e=>[e.id,e])).values());e.update(e=>({...e,scene:JC(s,a,o,e.scene,r),loading:!1,error:null,lastUpdated:Date.now(),repoCount:t.length}))}catch(t){e.update(e=>({...e,loading:!1,error:t instanceof Error?t.message:`Failed to load arena data`}))}finally{n=!1}}function a(e){r=e}function o(n){r=n,e.update(e=>({...e,loading:!0})),i(),t!==null&&clearInterval(t),t=setInterval(()=>void i(),2500)}function s(){t!==null&&(clearInterval(t),t=null),n=!1}return{subscribe:e.subscribe,start:o,stop:s,setLayout:a,refresh:i}}var QC=85,$C=50,ew=6,tw=[2800,5e3],nw=[600,1600],rw=100,iw=800,aw=600;function ow(e){if(!e)return[0,0,0];let t=e.replace(`#`,``);t.length===3?t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]:t.length===8&&(t=t.slice(0,6));let n=parseInt(t,16);return[n>>16&255,n>>8&255,n&255]}function sw(e,t){let[n,r,i]=ow(e);return`rgb(${Math.min(255,n+t)},${Math.min(255,r+t)},${Math.min(255,i+t)})`}function cw(e,t){let[n,r,i]=ow(e);return`rgb(${Math.max(0,n-t)},${Math.max(0,r-t)},${Math.max(0,i-t)})`}function lw(e,t){let[n,r,i]=ow(e);return`rgba(${n},${r},${i},${t})`}function uw(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t}function dw(e,t){return Math.abs(Math.sin(e*127.1+t*311.7)*43758.5453)%1}function $(e,t,n,r,i,a){a=Math.min(a,r/2,i/2),e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.arcTo(t+r,n,t+r,n+a,a),e.lineTo(t+r,n+i-a),e.arcTo(t+r,n+i,t+r-a,n+i,a),e.lineTo(t+a,n+i),e.arcTo(t,n+i,t,n+i-a,a),e.lineTo(t,n+a),e.arcTo(t,n,t+a,n,a),e.closePath()}var fw=[`#1a0a00`,`#2d1a00`,`#0f0f0f`,`#4a2d00`,`#8B4513`,`#d4a800`,`#c0392b`,`#7b2d8b`,`#1a3a5c`,`#2d4a1a`],pw=[`#f5c89a`,`#e8a870`,`#d4875a`,`#c06840`,`#8B5e3c`,`#6b3d28`],mw=[`#1e3a5f`,`#2d4a1a`,`#3d2a1a`,`#2a1a3d`,`#1a3d3d`,`#3d1a2a`,`#2a2a3d`],hw={male_nurse:`#1e6e9e`,female_nurse:`#2d8e6e`,staff1:`#5a3e8a`,staff2:`#8a5a3e`},gw={male_nurse:`#1a0a00`,female_nurse:`#4a2d00`,staff1:`#0f0f0f`,staff2:`#2d1a00`},_w={male_nurse:`#e8a870`,female_nurse:`#f5c89a`,staff1:`#d4875a`,staff2:`#c06840`},vw=class{canvas;ctx;scene=null;layout=null;isDark=!1;hoveredId=null;rafId=0;ts=0;prevTs=0;wander=new Map;constructor(e){this.canvas=e,this.ctx=e.getContext(`2d`)}update(e,t,n){this.scene=e,this.layout=t,this.isDark=n}setHovered(e){this.hoveredId=e}start(){this.rafId=requestAnimationFrame(this.loop)}stop(){cancelAnimationFrame(this.rafId)}hitTestAgent(e,t){if(!this.scene)return null;for(let n of this.scene.agents.values()){let r=e-n.x,i=t-n.y;if(r*r+i*i<=196)return n.id}return null}loop=e=>{let t=Math.min((e-this.prevTs)/1e3,.05);if(this.prevTs=e,this.ts=e,this.scene&&this.layout){let n=KC(this.layout.canvasWidth,this.layout.canvasHeight),r=n.find(e=>e.id===`in_progress`)||n[0];this.updateAgents(t,r,e)}this.render(),this.rafId=requestAnimationFrame(this.loop)};updateAgents(e,t,n){if(this.scene)for(let r of this.scene.agents.values()){if(r.handoffAnim){this.updateHandoffAnim(r,e,n);continue}if(r.state===`idle`){let e=this.wander.get(r.id);if(e||(e={nextPickAt:n},this.wander.set(r.id,e)),n>=e.nextPickAt){r.targetX=t.x+22+Math.random()*(t.w-44),r.targetY=t.y+26+22+Math.random()*(t.h-26-44);let i=nw[0]+Math.random()*(nw[1]-nw[0]),a=tw[0]+Math.random()*(tw[1]-tw[0]);e.nextPickAt=n+i+a}if(Math.random()<.005){let e=[`up`,`down`,`left`,`right`];r.facing=e[Math.floor(Math.random()*e.length)]}}else this.wander.delete(r.id);let i=r.targetX-r.x,a=r.targetY-r.y,o=Math.hypot(i,a);if(o<ew)r.vx*=.75,r.vy*=.75,Math.abs(r.vx)<.5&&(r.vx=0),Math.abs(r.vy)<.5&&(r.vy=0);else{let e=r.state===`idle`?$C:QC,t=o<50?o/50*e+8:e;r.vx+=(i/o*t-r.vx)*.1,r.vy+=(a/o*t-r.vy)*.1}r.x+=r.vx*e,r.y+=r.vy*e;let s=Math.hypot(r.vx,r.vy);s>5?(r.walkPhase=(r.walkPhase+e*s*.07)%(Math.PI*2),r.facing=Math.abs(r.vx)>Math.abs(r.vy)?r.vx>0?`right`:`left`:r.vy>0?`down`:`up`):r.walkPhase=r.walkPhase>.05?r.walkPhase*.85:0}}updateHandoffAnim(e,t,n){let r=e.handoffAnim,i=n-r.phaseStartTs;switch(r.phase){case`pickup`:e.vx=0,e.vy=0,e.walkPhase=0,i>=iw&&(r.phase=`moving`,r.phaseStartTs=n,r.progress=0);break;case`moving`:{let i=Math.hypot(r.endX-r.startX,r.endY-r.startY),a=i/rw;r.progress=Math.min(1,r.progress+t/a);let o=r.progress,s=o<.5?2*o*o:1-(-2*o+2)**2/2;e.x=r.startX+(r.endX-r.startX)*s,e.y=r.startY+(r.endY-r.startY)*s,e.vx=0,e.vy=0;let c=t/a*i;r.wheelAngle=(r.wheelAngle+c*.15)%(Math.PI*2),r.helperWalkPhase=(r.helperWalkPhase+t*rw*.08)%(Math.PI*2),r.stepBounce=Math.sin(r.helperWalkPhase*2)*1.5;let l=r.endX-r.startX,u=r.endY-r.startY;r.helperFacing=Math.abs(l)>Math.abs(u)?l>0?`right`:`left`:u>0?`down`:`up`,r.progress>=1&&(r.phase=`arrive`,r.phaseStartTs=n,e.x=r.endX,e.y=r.endY);break}case`arrive`:e.x=r.endX,e.y=r.endY,e.vx=0,e.vy=0,e.walkPhase=0,r.helperWalkPhase=r.helperWalkPhase>.05?r.helperWalkPhase*.92:0,i>=aw&&(r.phase=`resting`,r.phaseStartTs=n,e.targetX=r.endX,e.targetY=r.endY);break;case`resting`:e.x=r.endX,e.y=r.endY,e.vx=0,e.vy=0,e.walkPhase=0;break}}render(){let{canvas:e,ctx:t,scene:n,layout:r,isDark:i,ts:a}=this;if(!r)return;let o=KC(r.canvasWidth,r.canvasHeight);t.clearRect(0,0,e.width,e.height),this.drawGlobalFloor(i);for(let e of o)this.drawRoom(e,i);if(!n)return;let s=Array.from(n.tasks.values()).sort((e,t)=>e.y-t.y);for(let e of s)this.drawWorkstation(e,i,a);this.drawClaimLinks(n,a),this.drawHandoffBeams(n,a);for(let e of n.agents.values())e.handoffAnim&&this.drawHandoffTrail(e,i,a);let c=Array.from(n.agents.values()).sort((e,t)=>e.y-t.y||(e.id===this.hoveredId?1:-1));for(let e of c)e.handoffAnim?this.drawHandoffGroup(e,i,a):this.drawCharacter(e,i,a)}drawGlobalFloor(e){let{ctx:t,canvas:n}=this;t.fillStyle=e?`#0a0e1a`:`#dde3ed`,t.fillRect(0,0,n.width,n.height),t.strokeStyle=e?`rgba(255,255,255,0.02)`:`rgba(0,0,0,0.03)`,t.lineWidth=.5;for(let e=0;e<n.width;e+=24)t.beginPath(),t.moveTo(e,0),t.lineTo(e,n.height),t.stroke();for(let e=0;e<n.height;e+=24)t.beginPath(),t.moveTo(0,e),t.lineTo(n.width,e),t.stroke()}drawRoom(e,t){let{ctx:n}=this,{x:r,y:i,w:a,h:o,color:s,id:c}=e;switch(n.save(),$(n,r,i,a,o,10),n.clip(),c){case`in_progress`:this.drawPlazaFloor(n,r,i,a,o,t);break;case`backlog`:this.drawDirtFloor(n,r,i,a,o,`#5b3a6e`,t);break;case`pending`:this.drawDirtFloor(n,r,i,a,o,`#a68246`,t);break;case`blocked`:this.drawDirtFloor(n,r,i,a,o,`#8b2a2a`,t);break;case`burnout`:this.drawCleanTileFloor(n,r,i,a,o,t);break;case`completed`:this.drawGrassFloor(n,r,i,a,o,t);break;default:this.drawWoodPlankFloor(n,r,i,a,o,t);break}let l=r+a/2,u=i+o*.35,d=n.createRadialGradient(l,u,0,l,u,Math.max(a,o)*.85);d.addColorStop(0,lw(s,t?.12:.08)),d.addColorStop(1,`rgba(0,0,0,0)`),n.fillStyle=d,n.fillRect(r,i,a,o),n.restore(),this.drawWall(n,r,i,a,t,s),n.strokeStyle=lw(s,t?.45:.35),n.lineWidth=1.5,$(n,r,i,a,o,10),n.stroke(),this.drawRoomDecor(n,e,t),this.drawZoneLabel(n,e,t)}drawPlazaFloor(e,t,n,r,i,a){let o=a?`#2e3540`:`#b0b8c4`,s=a?`#262d36`:`#a0a8b4`;e.fillStyle=o,e.fillRect(t,n,r,i);for(let o=Math.floor(t/24)*24;o<t+r;o+=24)for(let t=Math.floor(n/24)*24;t<n+i;t+=24)Math.round(o/24)+Math.round(t/24)&1||(e.fillStyle=s,e.fillRect(o,t,24,24)),dw(o,t)>.8&&(e.strokeStyle=a?`rgba(0,0,0,0.3)`:`rgba(0,0,0,0.1)`,e.lineWidth=1,e.beginPath(),e.moveTo(o+2,t+2),e.lineTo(o+24/2,t+24/2),e.stroke())}drawDirtFloor(e,t,n,r,i,a,o){e.fillStyle=a,e.fillRect(t,n,r,i);for(let a=t;a<t+r;a+=16)for(let t=n;t<n+i;t+=16){let n=dw(a,t);n>.5&&(e.fillStyle=o?`rgba(0,0,0,0.15)`:`rgba(255,255,255,0.1)`,e.beginPath(),e.arc(a+n*10,t+n*10,2+n*2,0,Math.PI*2),e.fill())}}drawGrassFloor(e,t,n,r,i,a){e.fillStyle=a?`#1a4020`:`#4ade80`,e.fillRect(t,n,r,i),e.strokeStyle=a?`rgba(0,0,0,0.2)`:`rgba(0,0,0,0.1)`;for(let a=t;a<t+r;a+=12)for(let t=n;t<n+i;t+=12){let n=dw(a,t);n>.4&&(e.beginPath(),e.moveTo(a+n*5,t+8),e.lineTo(a+n*5+2,t+2),e.lineTo(a+n*5+4,t+8),e.stroke())}}drawWoodPlankFloor(e,t,n,r,i,a){let o=a?30:180,s=a?22:140,c=a?12:80;e.fillStyle=`rgb(${o},${s},${c})`,e.fillRect(t,n,r,i);for(let l=Math.floor(n/9)*9;l<n+i;l+=9){let n=Math.round(l/9),i=(dw(n,0)*30-15)*(a?.8:.6);e.fillStyle=`rgb(${Math.round(Math.min(255,Math.max(0,o+i)))},${Math.round(Math.min(255,Math.max(0,s+i)))},${Math.round(Math.min(255,Math.max(0,c+i)))})`,e.fillRect(t,l,r,9),e.strokeStyle=a?`rgba(0,0,0,0.2)`:`rgba(0,0,0,0.07)`,e.lineWidth=.5,e.beginPath(),e.moveTo(t,l),e.lineTo(t+r,l),e.stroke();let u=n%2*55+dw(n,1)*40;for(let i=t+u;i<t+r;i+=80+dw(n,i)*20)e.beginPath(),e.moveTo(i,l),e.lineTo(i,l+9),e.stroke()}}drawCarpetFloor(e,t,n,r,i,a,o){e.fillStyle=o?`#100d18`:`#1a1535`,e.fillRect(t,n,r,i),e.strokeStyle=lw(a,.06),e.lineWidth=1;for(let a=-i;a<r+i;a+=8)e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+a+i,n+i),e.stroke();e.strokeStyle=o?`rgba(255,255,255,0.025)`:`rgba(255,255,255,0.04)`,e.lineWidth=.5;for(let a=t;a<t+r;a+=12)e.beginPath(),e.moveTo(a,n),e.lineTo(a,n+i),e.stroke();for(let a=n;a<n+i;a+=12)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawCrackedTileFloor(e,t,n,r,i,a){e.fillStyle=a?`#1c1410`:`#c8b89a`,e.fillRect(t,n,r,i);for(let o=Math.floor(t/18)*18;o<t+r;o+=18)for(let t=Math.floor(n/18)*18;t<n+i;t+=18){let n=dw(Math.round(o/18),Math.round(t/18)),r=(n*30-15)*(a?.7:.5);e.fillStyle=a?`rgba(255,${100+r},${50+r},0.04)`:`rgba(180,${140+r},${100+r},0.3)`,e.fillRect(o,t,18,18),n>.85&&(e.strokeStyle=a?`rgba(0,0,0,0.6)`:`rgba(100,80,60,0.5)`,e.lineWidth=.75,e.beginPath(),e.moveTo(o+n*18,t+2),e.lineTo(o+18/2+n*5,t+18/2),e.lineTo(o+18*.8,t+18-2),e.stroke())}e.strokeStyle=a?`rgba(0,0,0,0.5)`:`rgba(0,0,0,0.12)`,e.lineWidth=1;for(let a=Math.floor(t/18)*18;a<=t+r;a+=18)e.beginPath(),e.moveTo(a,n),e.lineTo(a,n+i),e.stroke();for(let a=Math.floor(n/18)*18;a<=n+i;a+=18)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawCleanTileFloor(e,t,n,r,i,a){let o=a?`#1a2530`:`#f0f4f8`,s=a?`#1f2d3a`:`#e8eef4`;e.fillStyle=o,e.fillRect(t,n,r,i);for(let o=Math.floor(t/22)*22;o<t+r;o+=22)for(let t=Math.floor(n/22)*22;t<n+i;t+=22)Math.round(o/22)+Math.round(t/22)&1||(e.fillStyle=s,e.fillRect(o+1,t+1,20,20),e.fillStyle=a?`rgba(255,255,255,0.04)`:`rgba(255,255,255,0.6)`,e.fillRect(o+3,t+3,5,5));e.strokeStyle=a?`rgba(255,255,255,0.04)`:`rgba(0,0,0,0.06)`,e.lineWidth=.75;for(let a=Math.floor(t/22)*22;a<=t+r;a+=22)e.beginPath(),e.moveTo(a,n),e.lineTo(a,n+i),e.stroke();for(let a=Math.floor(n/22)*22;a<=n+i;a+=22)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawConcreteFloor(e,t,n,r,i,a){e.fillStyle=a?`#141418`:`#b8bec8`,e.fillRect(t,n,r,i),e.strokeStyle=a?`rgba(255,255,255,0.03)`:`rgba(255,255,255,0.15)`,e.lineWidth=1;for(let a=n;a<n+i;a+=4)dw(0,Math.round(a))>.5&&(e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke());e.strokeStyle=a?`rgba(0,0,0,0.4)`:`rgba(0,0,0,0.1)`,e.lineWidth=1.5;for(let a=n+(80-(n%80||80));a<n+i;a+=80)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawWall(e,t,n,r,i,a){e.fillStyle=i?`#1c2130`:`#c4cad6`,$(e,t,n,r,11,0),e.fill(),e.strokeStyle=i?`rgba(255,255,255,0.05)`:`rgba(0,0,0,0.06)`,e.lineWidth=.75;for(let i=t+24;i<t+r;i+=24)e.beginPath(),e.moveTo(i,n),e.lineTo(i,n+11),e.stroke();e.fillStyle=lw(a,.4),e.fillRect(t,n,r,2.5);let o=e.createLinearGradient(t,n+11,t,n+11+8);o.addColorStop(0,`rgba(0,0,0,0.28)`),o.addColorStop(1,`rgba(0,0,0,0)`),e.fillStyle=o,e.fillRect(t,n+11,r,8),e.fillStyle=i?`#253040`:`#b8bfc9`,e.fillRect(t,n,6,11),e.fillRect(t+r-6,n,6,11)}drawZoneLabel(e,t,n){let{x:r,y:i,w:a,color:o,label:s}=t,c=Math.min(a-16,92),l=r+9,u=i+3;e.fillStyle=lw(o,n?.25:.18),$(e,l,u,c,16,5),e.fill(),e.strokeStyle=lw(o,.6),e.lineWidth=.75,$(e,l,u,c,16,5),e.stroke(),e.fillStyle=o,e.font=`bold 8px system-ui,sans-serif`,e.textAlign=`left`,e.textBaseline=`middle`,e.fillText(s.toUpperCase(),l+6,u+16/2)}drawRoomDecor(e,t,n){let{x:r,y:i,w:a,h:o,id:s}=t;switch(s){case`in_progress`:this.decorWorkspace(e,r,i,a,o,n);break;case`backlog`:this.decorArchive(e,r,i,a,o,n);break;case`pending`:this.decorLobby(e,r,i,a,o,n);break;case`blocked`:this.decorIssues(e,r,i,a,o);break;case`burnout`:this.decorTherapy(e,r,i,a,o,n);break}}decorPlaza(e,t,n,r,i,a){let o=t+r/2,s=n+i/2;e.fillStyle=a?`#1e293b`:`#94a3b8`,e.beginPath(),e.arc(o,s,24,0,Math.PI*2),e.fill(),e.fillStyle=a?`#0ea5e9`:`#38bdf8`,e.beginPath(),e.arc(o,s,20,0,Math.PI*2),e.fill(),e.fillStyle=`rgba(255,255,255,0.4)`,e.beginPath(),e.arc(o,s,8,0,Math.PI*2),e.fill()}decorFence(e,t,n,r,i,a){e.strokeStyle=a?`#452b14`:`#8b5a2b`,e.lineWidth=4,e.strokeRect(t+4,n+4,r-8,i-8)}decorBlocked(e,t,n,r,i,a){this.decorFence(e,t,n,r,i,a),e.fillStyle=`#f97316`,[[t+20,n+i-20],[t+40,n+i-20]].forEach(([t,n])=>{e.beginPath(),e.moveTo(t,n-10),e.lineTo(t+6,n),e.lineTo(t-6,n),e.fill()})}decorGarden(e,t,n,r,i,a){e.fillStyle=a?`#064e3b`:`#166534`,e.fillRect(t+10,n+10,20,20),e.beginPath(),e.arc(t+r-20,n+i-20,15,0,Math.PI*2),e.fill()}decorLobby(e,t,n,r,i,a){let o=t+r/2-28,s=n+i-55;this.drawSofa(e,o,s,56,a),this.drawCoffeeTable(e,t+r/2-14,n+i-32,a),this.drawPotPlant(e,t+8,n+i-18,a),this.drawPotPlant(e,t+r-18,n+i-18,a),this.drawPotPlant(e,t+8,n+28,a);let c=Math.min(r-20,70);this.drawReceptionDesk(e,t+r/2-c/2,n+24,c,a),this.drawCeilingLamp(e,t+r/2,n+14,a,this.ts)}decorInbox(e,t,n,r,i,a){this.drawLetterSorter(e,t+r-28,n+20,a),this.drawClock(e,t+18,n+20,a)}decorWorkspace(e,t,n,r,i,a){this.drawPowerStrip(e,t+12,n+i-16,Math.min(r-24,60),a),this.drawWhiteboard(e,t+r-36,n+18,a),this.drawWaterDispenser(e,t+20,n+12,a),this.drawFlowerVase(e,t+r/2,n+24,a)}decorIssues(e,t,n,r,i){e.save(),e.globalAlpha=.25,e.strokeStyle=`#f59e0b`,e.lineWidth=4,e.setLineDash([8,8]),e.beginPath(),e.moveTo(t,n+i-8),e.lineTo(t+r,n+i-8),e.stroke(),e.setLineDash([]),e.restore(),this.drawHazardSign(e,t+r/2-10,n+16)}decorDone(e,t,n,r,i,a){this.drawTrophyShelf(e,t+10,n+20,a,this.ts),this.drawPotPlant(e,t+r-18,n+i-20,a)}decorArchive(e,t,n,r,i,a){for(let i=t+10;i<t+r-22;i+=26)this.drawFilingCabinet(e,i,n+18,a);this.drawPotPlant(e,t+r-15,n+i-20,a)}drawSofa(e,t,n,r,i){let a=i?`#2d3a4a`:`#8b9eb5`,o=i?`#3a4d62`:`#a8bdd4`,s=i?`#253040`:`#7b8ea5`;e.fillStyle=a,$(e,t,n,r,8,3),e.fill(),e.fillStyle=o,$(e,t,n+7,r,10,3),e.fill(),e.fillStyle=s,$(e,t-4,n,8,17,3),e.fill(),e.fillStyle=s,$(e,t+r-4,n,8,17,3),e.fill(),e.strokeStyle=i?`rgba(255,255,255,0.07)`:`rgba(0,0,0,0.08)`,e.lineWidth=1,e.beginPath(),e.moveTo(t+r/3,n+7),e.lineTo(t+r/3,n+17),e.stroke(),e.beginPath(),e.moveTo(t+r*2/3,n+7),e.lineTo(t+r*2/3,n+17),e.stroke(),e.fillStyle=i?`#1a2030`:`#6b7c90`,[[t+2,n+15],[t+r-6,n+15]].forEach(([t,n])=>e.fillRect(t,n,4,4))}drawCoffeeTable(e,t,n,r){e.fillStyle=`rgba(0,0,0,0.15)`,e.beginPath(),e.ellipse(t+14,n+6,16,7,0,0,Math.PI*2),e.fill(),e.fillStyle=r?`#2a3545`:`#93a8be`,e.beginPath(),e.ellipse(t+14,n+4,15,6,0,0,Math.PI*2),e.fill(),e.strokeStyle=r?`#3a4a5a`:`#7a96b0`,e.lineWidth=1,e.beginPath(),e.ellipse(t+14,n+4,15,6,0,0,Math.PI*2),e.stroke(),e.fillStyle=`rgba(255,255,255,0.1)`,e.beginPath(),e.ellipse(t+10,n+2,6,2,0,0,Math.PI*2),e.fill()}drawPotPlant(e,t,n,r){e.fillStyle=r?`#4a2d1a`:`#c4825a`,$(e,t-5,n-8,10,9,2),e.fill(),e.strokeStyle=r?`#6b4028`:`#a0643c`,e.lineWidth=.5,$(e,t-5,n-8,10,9,2),e.stroke(),e.fillStyle=r?`#2d1a0a`:`#6b4a28`,e.fillRect(t-4,n-9,8,3);let i=[`#16a34a`,`#15803d`,`#22c55e`,`#166534`];[[-5,-18,4,3,-.3],[-2,-20,4,3,0],[3,-18,4,3,.3],[-7,-14,3.5,2.5,-.5],[5,-14,3.5,2.5,.5]].forEach(([r,a,o,s,c],l)=>{e.save(),e.translate(t+r,n+a),e.rotate(c),e.fillStyle=i[l%i.length],e.beginPath(),e.ellipse(0,0,o,s,0,0,Math.PI*2),e.fill(),e.restore()})}drawReceptionDesk(e,t,n,r,i){e.fillStyle=i?`#1a2535`:`#9aafcc`,$(e,t,n,r,14,4),e.fill(),e.strokeStyle=i?`#2a3a50`:`#7a94b0`,e.lineWidth=1,$(e,t,n,r,14,4),e.stroke(),e.fillStyle=i?`rgba(255,255,255,0.05)`:`rgba(255,255,255,0.35)`,$(e,t+2,n+2,r-4,4,2),e.fill(),e.fillStyle=i?`#0f172a`:`#1e2535`,$(e,t+r/2-8,n-10,16,10,2),e.fill(),e.fillStyle=i?`#1e40af`:`#3b82f6`,$(e,t+r/2-7,n-9,14,8,1),e.fill()}drawCeilingLamp(e,t,n,r,i){e.strokeStyle=r?`#3a4555`:`#6b7a8a`,e.lineWidth=1,e.beginPath(),e.moveTo(t,n-8),e.lineTo(t,n+2),e.stroke(),e.fillStyle=r?`#2a3040`:`#e8d870`,e.beginPath(),e.moveTo(t-10,n+2),e.lineTo(t+10,n+2),e.lineTo(t+8,n+10),e.lineTo(t-8,n+10),e.closePath(),e.fill();let a=.5+.5*Math.sin(i*.0015),o=e.createRadialGradient(t,n+10,0,t,n+10,35+a*5);o.addColorStop(0,r?`rgba(255,240,180,${.15+a*.05})`:`rgba(255,240,180,${.2+a*.05})`),o.addColorStop(1,`rgba(0,0,0,0)`),e.fillStyle=o,e.fillRect(t-40,n+10,80,45)}drawLetterSorter(e,t,n,r){e.fillStyle=r?`#2d3a50`:`#8faac0`,$(e,t,n,22,28,2),e.fill(),e.strokeStyle=r?`#3a4a60`:`#7090a8`,e.lineWidth=.75,[0,7,14,21].forEach(r=>{e.beginPath(),e.moveTo(t+1,n+r),e.lineTo(t+21,n+r),e.stroke()}),[`#ef4444`,`#f59e0b`,`#3b82f6`,`#10b981`].forEach((r,i)=>{e.fillStyle=r+`aa`,$(e,t+2,n+i*7+1,18,5,1),e.fill()})}drawClock(e,t,n,r){e.fillStyle=r?`#1e2840`:`#f0f4fc`,e.beginPath(),e.arc(t,n,9,0,Math.PI*2),e.fill(),e.strokeStyle=r?`#3a4a60`:`#8898b0`,e.lineWidth=1,e.beginPath(),e.arc(t,n,9,0,Math.PI*2),e.stroke(),e.strokeStyle=r?`#5a6a80`:`#8898b0`,e.lineWidth=.75;for(let r=0;r<12;r++){let i=r*Math.PI/6,a=7.5;e.beginPath(),e.moveTo(t+Math.cos(i)*a,n+Math.sin(i)*a),e.lineTo(t+Math.cos(i)*(a-2),n+Math.sin(i)*(a-2)),e.stroke()}let i=new Date,a=i.getMinutes()/60*Math.PI*2-Math.PI/2,o=i.getHours()%12/12*Math.PI*2+i.getMinutes()/60*Math.PI/6-Math.PI/2;e.strokeStyle=r?`#e2e8f0`:`#1e2840`,e.lineWidth=1.5,e.lineCap=`round`,e.beginPath(),e.moveTo(t,n),e.lineTo(t+Math.cos(o)*5,n+Math.sin(o)*5),e.stroke(),e.lineWidth=1,e.beginPath(),e.moveTo(t,n),e.lineTo(t+Math.cos(a)*7,n+Math.sin(a)*7),e.stroke(),e.fillStyle=`#ef4444`,e.beginPath(),e.arc(t,n,1.5,0,Math.PI*2),e.fill()}drawPowerStrip(e,t,n,r,i){e.fillStyle=i?`#1a1a1a`:`#2d2d2d`,$(e,t,n,r,6,3),e.fill(),e.fillStyle=i?`#3a3a3a`:`#4a4a4a`;for(let i=6;i<r-4;i+=10)$(e,t+i,n+1,6,4,2),e.fill()}drawWhiteboard(e,t,n,r){e.fillStyle=r?`#1e2840`:`#f8fafc`,$(e,t,n,28,22,2),e.fill(),e.strokeStyle=r?`#3a4a60`:`#b0bac8`,e.lineWidth=1,$(e,t,n,28,22,2),e.stroke(),[r?`#4ade80`:`#16a34a`,r?`#60a5fa`:`#2563eb`,r?`#f472b6`:`#db2777`].forEach((r,i)=>{e.strokeStyle=r,e.lineWidth=.75,e.beginPath(),e.moveTo(t+3,n+5+i*5),e.lineTo(t+3+8+i*4,n+5+i*5),e.stroke()})}drawHazardSign(e,t,n){e.fillStyle=`#f59e0b`,e.beginPath(),e.moveTo(t+10,n),e.lineTo(t+20,n+16),e.lineTo(t,n+16),e.closePath(),e.fill(),e.strokeStyle=`#1a1a1a`,e.lineWidth=1,e.stroke(),e.fillStyle=`#1a1a1a`,e.font=`bold 9px system-ui`,e.textAlign=`center`,e.textBaseline=`bottom`,e.fillText(`!`,t+10,n+15)}drawTrophyShelf(e,t,n,r,i){e.fillStyle=r?`#2d1a08`:`#c4825a`,$(e,t,n+20,50,5,2),e.fill(),[[`#f59e0b`,t+5],[`#94a3b8`,t+20],[`#cd7f32`,t+35]].forEach(([t,r])=>{e.fillStyle=t,e.beginPath(),e.arc(r+5,n+13,5,Math.PI,0),e.fill(),e.fillRect(r+3,n+13,4,8),$(e,r,n+20,10,4,2),e.fill()}),e.fillStyle=`rgba(245,158,11,${.08+(.5+.5*Math.sin(i*.002))*.06})`,e.beginPath(),e.ellipse(t+10,n+18,12,6,0,0,Math.PI*2),e.fill()}drawFilingCabinet(e,t,n,r){e.fillStyle=r?`#1e2535`:`#9aaec0`,$(e,t,n,20,28,2),e.fill(),e.strokeStyle=r?`#2d3a50`:`#7a98b0`,e.lineWidth=.75,$(e,t,n,20,28,2),e.stroke(),[0,9,18].forEach(i=>{e.strokeStyle=r?`#3a4a60`:`#5a7898`,e.lineWidth=.5,e.beginPath(),e.moveTo(t+1,n+i+8),e.lineTo(t+19,n+i+8),e.stroke(),e.fillStyle=r?`#4a5a70`:`#4a6888`,$(e,t+7,n+i+3,6,3,2),e.fill()})}drawFlowerVase(e,t,n,r){e.fillStyle=r?`#2d1a08`:`#8b5a2b`,$(e,t-6,n-2,12,10,1),e.fill(),e.fillStyle=r?`#1e3a8a`:`#bfdbfe`,e.beginPath(),e.ellipse(t,n-6,4,6,0,0,Math.PI*2),e.fill();let i=[`#f43f5e`,`#ec4899`,`#d946ef`];[[-3,-12],[3,-11],[0,-14]].forEach(([r,a],o)=>{e.strokeStyle=`#16a34a`,e.lineWidth=1,e.beginPath(),e.moveTo(t,n-10),e.lineTo(t+r,n+a),e.stroke(),e.fillStyle=i[o],e.beginPath(),e.arc(t+r,n+a,2.5,0,Math.PI*2),e.fill()})}drawWaterDispenser(e,t,n,r){e.fillStyle=r?`#1e293b`:`#e2e8f0`,$(e,t,n,14,24,2),e.fill(),e.strokeStyle=r?`#334155`:`#cbd5e1`,e.lineWidth=1,$(e,t,n,14,24,2),e.stroke(),e.fillStyle=r?`#0ea5e955`:`#38bdf855`,$(e,t+2,n-12,10,12,3),e.fill(),e.fillStyle=`#ef4444`,e.fillRect(t+3,n+8,2,3),e.fillStyle=`#3b82f6`,e.fillRect(t+9,n+8,2,3),e.fillStyle=r?`#0f172a`:`#94a3b8`,$(e,t+2,n+14,10,3,1),e.fill()}drawHospitalBed(e,t,n,r){e.fillStyle=r?`#1e293b`:`#cbd5e1`,$(e,t-20,n-10,40,20,3),e.fill(),e.fillStyle=r?`#0f172a`:`#f8fafc`,$(e,t-18,n-8,36,16,2),e.fill(),e.fillStyle=r?`#1e1b4b`:`#e0e7ff`,$(e,t+10,n-6,8,12,2),e.fill(),e.fillStyle=r?`#172554`:`#bfdbfe`,$(e,t-18,n-8,20,16,2),e.fill(),e.strokeStyle=r?`#64748b`:`#94a3b8`,e.lineWidth=2,e.beginPath(),e.moveTo(t+16,n-10),e.lineTo(t+16,n-25),e.stroke(),e.fillStyle=r?`#0ea5e988`:`#38bdf888`,$(e,t+14,n-25,4,6,1),e.fill()}decorTherapy(e,t,n,r,i,a){let o={id:`burnout`,label:`Therapy Room`,x:t,y:n,w:r,h:i,color:`#14b8a6`};for(let t=0;t<6;t++){let n=BC(o,t);this.drawHospitalBed(e,n.x,n.y,a)}this.drawPotPlant(e,t+r-20,n+20,a),this.drawFlowerVase(e,t+20,n+20,a)}drawMonitorActivity(e,t,n,r,i,a,o,s){let{ctx:c}=this,l=!!e.claimedByAgentId,u=uw(e.id),d=s*.001+u%100*.01,f=n+i-6;if(c.save(),$(c,t,n,r,i,3),c.clip(),e.status===`blocked`){c.fillStyle=o?`#2a0f18`:`#3f111d`,c.fillRect(t,n,r,i),c.fillStyle=`rgba(239,68,68,0.45)`;for(let e=0;e<4;e++){let i=n+4+e*4;c.fillRect(t+4,i,r-8-(e+u)%9,1.6)}c.fillStyle=`rgba(255,255,255,${.25+Math.sin(d*5)*.12})`,c.fillRect(t+4,f-3,7,2),c.restore();return}if(l){c.fillStyle=o?`rgba(2,6,23,0.35)`:`rgba(15,23,42,0.22)`,$(c,t+3,n+3,r-6,f-n-4,2),c.fill(),c.fillStyle=`rgba(255,255,255,0.22)`,c.fillRect(t+5,n+5,r-10,1.4),c.fillStyle=`rgba(15,23,42,0.25)`,c.fillRect(t+5,n+8,7,f-n-10),c.fillStyle=`rgba(255,255,255,0.16)`,c.fillRect(t+15,n+8,r-20,f-n-10);let e=Math.floor(s/180)%6;for(let i=0;i<4;i++){let a=n+9+i*3,o=(u>>i)%9/10,s=Math.sin(d*2+i)*.5+.5,l=7+(r-25)*(.35+o*.35+s*.18);c.fillStyle=i===e%4?`rgba(255,255,255,0.78)`:`rgba(255,255,255,${.22+i*.08})`,c.fillRect(t+17,a,Math.min(r-22,l),1.4)}let i=t+18+(Math.floor(s/120)+u)%Math.max(1,r-25);Math.floor(s/300)%2==0&&(c.fillStyle=`#ffffff`,c.fillRect(i,n+17,1,4)),c.fillStyle=`rgba(255,255,255,0.2)`,c.fillRect(t+5,f-3,r-10,1.5),c.fillStyle=sw(a,55),c.fillRect(t+5,f-3,(Math.sin(d)*.5+.5)*(r-10)|0,1.5),c.restore();return}if(e.status===`pending`){c.fillStyle=o?`rgba(15,23,42,0.45)`:`rgba(255,255,255,0.16)`,$(c,t+4,n+4,r-8,f-n-5,2),c.fill(),c.fillStyle=`rgba(255,255,255,0.25)`,c.fillRect(t+6,n+6,r-12,2);for(let e=0;e<3;e++)c.fillStyle=`rgba(255,255,255,${.14+e*.06})`,c.fillRect(t+7,n+11+e*3,r-15-e*5,1.2);let e=n+9+(s*.018+u)%Math.max(1,f-n-12);c.fillStyle=`rgba(56,189,248,0.28)`,c.fillRect(t+5,e,r-10,1.2),c.restore();return}c.strokeStyle=o?`rgba(148,163,184,0.1)`:`rgba(255,255,255,0.08)`,c.lineWidth=.5;for(let e=t+5;e<t+r-4;e+=5)c.beginPath(),c.moveTo(e,n+4),c.lineTo(e,f-2),c.stroke();c.restore()}drawWorkstation(e,t,n){let{ctx:r}=this,{x:i,y:a,status:o,taskCode:s,title:c,claimedByAgentId:l,hasPendingHandoff:u,repo:d}=e,f=DC[o]??`#64748b`,p=!!l,m=a+14/2+4;r.fillStyle=t?`#1e2d3a`:`#7a98b5`,r.beginPath(),r.arc(i,m+3,8,0,Math.PI*2),r.fill(),r.fillStyle=t?`#162435`:`#6888a8`,r.fillRect(i-6,m-2,12,8),$(r,i-5,m-9,10,9,2),r.fill(),r.fillStyle=`rgba(0,0,0,0.18)`,$(r,i-50/2+3,a-14/2+5,50,16,4),r.fill();let h=r.createLinearGradient(i-50/2,a-14/2,i+50/2,a+14/2);h.addColorStop(0,t?`#1e2840`:`#d4dce8`),h.addColorStop(1,t?`#18202e`:`#c0ccd8`),r.fillStyle=h,$(r,i-50/2,a-14/2,50,14,4),r.fill(),r.strokeStyle=t?`#2d3a50`:`#a0b0c0`,r.lineWidth=1,$(r,i-50/2,a-14/2,50,14,4),r.stroke(),r.fillStyle=t?`#0d1520`:`#8090a8`,$(r,i-10,a-2,20,5,2),r.fill(),r.fillStyle=t?`rgba(255,255,255,0.05)`:`rgba(255,255,255,0.3)`,[[i-9,a-1,18,1.5],[i-8,a+1.5,16,1.5]].forEach(([e,t,n,i])=>{for(let a=0;a<5;a++)$(r,e+n/5*a+.5,t,n/5-1,i,.5),r.fill()}),r.fillStyle=t?`#0d1520`:`#8090a8`,r.beginPath(),r.ellipse(i+14,a,3,4,0,0,Math.PI*2),r.fill(),r.strokeStyle=t?`rgba(255,255,255,0.08)`:`rgba(0,0,0,0.1)`,r.lineWidth=.5,r.beginPath(),r.moveTo(i+14,a-2),r.lineTo(i+14,a+2),r.stroke(),r.fillStyle=t?`#2d3a50`:`#8090a8`,r.fillRect(i-1.5,a-14/2-7,3,8);let g=a-14/2-20-6;if(r.fillStyle=t?`#111827`:`#1f2937`,$(r,i-34/2-3,g-3,40,26,5),r.fill(),p){let e=r.createLinearGradient(i-34/2,g,i+34/2,g+20);e.addColorStop(0,sw(f,50)),e.addColorStop(1,f),r.fillStyle=e,p&&(r.shadowColor=f+`99`,r.shadowBlur=10)}else r.fillStyle=t?`#0f1929`:`#1e2d3a`;if($(r,i-34/2,g,34,20,3),r.fill(),r.shadowBlur=0,r.fillStyle=`rgba(255,255,255,0.12)`,$(r,i-34/2,g,34,20/2.5,3),r.fill(),this.drawMonitorActivity(e,i-34/2,g,34,20,f,t,n),r.fillStyle=p?`rgba(255,255,255,0.9)`:t?`#374151`:`#6b7280`,r.font=`bold 5.5px monospace`,r.textAlign=`center`,r.textBaseline=`bottom`,r.fillText(`${d.split(`/`).pop()?.slice(0,5)}·${s}`.slice(0,12),i,g+20-1),r.fillStyle=t?`rgba(148,163,184,0.65)`:`rgba(71,85,105,0.65)`,r.font=`5.5px system-ui,sans-serif`,r.textAlign=`center`,r.textBaseline=`top`,r.fillText(c.slice(0,12),i,a+14/2+2),u){let e=i+34/2,t=g-1;r.fillStyle=`#f59e0b`,r.shadowColor=`#f59e0b`,r.shadowBlur=8,r.beginPath(),r.arc(e,t,5,0,Math.PI*2),r.fill(),r.shadowBlur=0,r.strokeStyle=`#ffffff`,r.lineWidth=1.5,r.beginPath(),r.arc(e,t,5,0,Math.PI*2),r.stroke(),r.fillStyle=`#1a1a1a`,r.font=`bold 6.5px system-ui`,r.textAlign=`center`,r.textBaseline=`middle`,r.fillText(`!`,e,t)}}drawClaimLinks(e,t){let{ctx:n}=this;for(let r of e.agents.values())for(let i of r.claimedTaskIds){let a=e.tasks.get(i);if(!a)continue;let o=n.createLinearGradient(r.x,r.y,a.x,a.y);o.addColorStop(0,r.color+`cc`),o.addColorStop(1,(DC[a.status]??`#64748b`)+`44`),n.strokeStyle=o,n.lineWidth=1.5,n.setLineDash([5,5]),n.lineDashOffset=-(t*.022)%10,n.beginPath(),n.moveTo(r.x,r.y),n.lineTo(a.x,a.y),n.stroke()}n.setLineDash([]),n.lineDashOffset=0}drawHandoffBeams(e,t){let{ctx:n}=this;for(let r of e.handoffs){let i=e.agents.get(r.fromAgentId);if(!i)continue;let a,o;if(r.toAgentId){let t=e.agents.get(r.toAgentId);if(!t)continue;a=t.x,o=t.y}else if(r.taskId){let t=e.tasks.get(r.taskId);if(!t)continue;a=t.x,o=t.y}else continue;n.strokeStyle=`#f59e0b88`,n.lineWidth=2.5,n.setLineDash([8,5]),n.lineDashOffset=-(t*.07)%13,n.beginPath(),n.moveTo(i.x,i.y),n.lineTo(a,o),n.stroke(),n.setLineDash([]),n.lineDashOffset=0;let s=t%1600/1600,c=i.x+(a-i.x)*s,l=i.y+(o-i.y)*s;n.fillStyle=`#f59e0b`,n.shadowColor=`#f59e0b`,n.shadowBlur=8,n.beginPath(),n.arc(c,l,4,0,Math.PI*2),n.fill(),n.shadowBlur=0}}drawHandoffTrail(e,t,n){let{ctx:r}=this,i=e.handoffAnim;if(r.save(),r.strokeStyle=t?`rgba(20, 184, 166, 0.35)`:`rgba(20, 184, 166, 0.45)`,r.lineWidth=2,r.setLineDash([6,5]),r.lineDashOffset=-(n*.03)%11,r.beginPath(),r.moveTo(i.startX,i.startY),r.lineTo(i.endX,i.endY),r.stroke(),r.setLineDash([]),r.lineDashOffset=0,i.phase===`moving`){let e=n%2e3/2e3,t=i.startX+(i.endX-i.startX)*e,a=i.startY+(i.endY-i.startY)*e;r.fillStyle=`#14b8a6`,r.shadowColor=`#14b8a6`,r.shadowBlur=6,r.beginPath(),r.arc(t,a,3,0,Math.PI*2),r.fill(),r.shadowBlur=0}i.phase!==`arrive`&&(r.strokeStyle=`rgba(20, 184, 166, ${.4+.3*Math.sin(n*.004)})`,r.lineWidth=1,r.beginPath(),r.arc(i.endX,i.endY,8,0,Math.PI*2),r.stroke(),r.beginPath(),r.moveTo(i.endX-4,i.endY),r.lineTo(i.endX+4,i.endY),r.stroke(),r.beginPath(),r.moveTo(i.endX,i.endY-4),r.lineTo(i.endX,i.endY+4),r.stroke()),r.restore()}drawWheelchair(e,t,n,r,i){e.save(),e.translate(t,n),e.fillStyle=`rgba(0,0,0,0.2)`,e.beginPath(),e.ellipse(0,3,14,6,0,0,Math.PI*2),e.fill(),e.fillStyle=i?`#2d3a50`:`#7a8ea0`,$(e,-10,-12,20,18,3),e.fill(),e.strokeStyle=i?`#4a5a70`:`#5a7090`,e.lineWidth=1,$(e,-10,-12,20,18,3),e.stroke(),e.fillStyle=i?`#1e3a5f`:`#3b82f6`,$(e,-8,-6,16,10,2),e.fill(),e.fillStyle=i?`#1e3055`:`#2563eb`,$(e,-8,-12,16,7,2),e.fill(),e.fillStyle=i?`#3a4a60`:`#6a7a90`,$(e,-12,-10,3,14,1),e.fill(),$(e,9,-10,3,14,1),e.fill(),[-9,9].forEach(t=>{e.strokeStyle=i?`#1a1a2a`:`#333`,e.lineWidth=2.5,e.beginPath(),e.arc(t,4,5,0,Math.PI*2),e.stroke(),e.fillStyle=i?`#4a5a70`:`#aabbc0`,e.beginPath(),e.arc(t,4,3.5,0,Math.PI*2),e.fill(),e.strokeStyle=i?`#2a3a50`:`#7a8a9a`,e.lineWidth=.75;for(let n=0;n<4;n++){let i=r+n*Math.PI/2;e.beginPath(),e.moveTo(t,4),e.lineTo(t+Math.cos(i)*4,4+Math.sin(i)*4),e.stroke()}}),[-5,5].forEach(t=>{e.fillStyle=i?`#1a1a2a`:`#333`,e.beginPath(),e.arc(t,-13,2,0,Math.PI*2),e.fill(),e.fillStyle=i?`#4a5a70`:`#999`,e.beginPath(),e.arc(t,-13,1,0,Math.PI*2),e.fill()}),e.fillStyle=i?`#3a4a60`:`#5a7090`,$(e,-6,5,12,3,1),e.fill(),e.restore()}drawStretcher(e,t,n,r,i,a){e.save(),e.translate(t,n),e.fillStyle=`rgba(0,0,0,0.18)`,e.beginPath(),e.ellipse(0,4,20,7,0,0,Math.PI*2),e.fill(),e.fillStyle=a?`#2d3a50`:`#8899aa`,$(e,-18,-10,36,16,3),e.fill(),e.strokeStyle=a?`#4a5a70`:`#6a7a90`,e.lineWidth=1,$(e,-18,-10,36,16,3),e.stroke(),e.fillStyle=a?`#1a2535`:`#f0f4f8`,$(e,-16,-8,32,12,2),e.fill(),e.fillStyle=a?`#2a3a5a`:`#e0e7ff`,$(e,10,-6,6,8,2),e.fill();let o=Math.sin(i)*.8;e.fillStyle=a?`#1e3a5f`:`#bfdbfe`,$(e,-15,-7+o,22,10-o*.5,2),e.fill(),e.strokeStyle=a?`rgba(255,255,255,0.06)`:`rgba(0,0,0,0.08)`,e.lineWidth=.5,e.beginPath(),e.moveTo(-5,-7+o),e.lineTo(-5,3-o*.3),e.stroke(),[[-15,5],[15,5],[-15,-11],[15,-11]].forEach(([t,n])=>{e.fillStyle=a?`#1a1a2a`:`#333`,e.beginPath(),e.arc(t,n,3,0,Math.PI*2),e.fill(),e.fillStyle=a?`#4a5a70`:`#999`,e.beginPath(),e.arc(t,n,1.5,0,Math.PI*2),e.fill(),e.strokeStyle=a?`#3a4a5a`:`#777`,e.lineWidth=.5;let i=r;e.beginPath(),e.moveTo(t+Math.cos(i)*3*.5,n+Math.sin(i)*3*.5),e.lineTo(t-Math.cos(i)*3*.5,n-Math.sin(i)*3*.5),e.stroke()}),e.strokeStyle=a?`#5a6a80`:`#7a8a9a`,e.lineWidth=1.5,e.beginPath(),e.moveTo(-16,-10),e.lineTo(16,-10),e.stroke(),e.beginPath(),e.moveTo(-16,6),e.lineTo(16,6),e.stroke(),e.restore()}drawHelperCharacter(e,t,n,r,i,a,o){e.save(),e.translate(t,n),i===`left`&&e.scale(-1,1);let s=hw[r],c=gw[r],l=_w[r],u=a>.1,d=u?Math.sin(a)*4:0,f=u?Math.sin(a+Math.PI)*3:0,p=u?Math.sin(a*2)*.8:0;e.fillStyle=`rgba(0,0,0,0.18)`,e.beginPath(),e.ellipse(0,2,8,3.5,0,0,Math.PI*2),e.fill(),e.fillStyle=o?`#1a2535`:`#334155`,e.save(),e.translate(-2.5,0),e.rotate(d*.08),$(e,-2,-3,4,7,1.5),e.fill(),e.restore(),e.save(),e.translate(2.5,0),e.rotate(-d*.08),$(e,-2,-3,4,7,1.5),e.fill(),e.restore(),e.fillStyle=o?`#0f172a`:`#1e293b`,e.save(),e.translate(-2.5,d*.4),$(e,-2.5,3,5,3,1.5),e.fill(),e.restore(),e.save(),e.translate(2.5,-d*.4),$(e,-2.5,3,5,3,1.5),e.fill(),e.restore();let m=e.createLinearGradient(-5,-20,5,-10);m.addColorStop(0,sw(s,20)),m.addColorStop(1,s),e.fillStyle=m,$(e,-5,-20,10,11,2),e.fill(),(r===`male_nurse`||r===`female_nurse`)&&(e.fillStyle=`rgba(255,255,255,0.5)`,e.fillRect(-1,-17,2,5),e.fillRect(-2.5,-15.5,5,2)),e.save(),e.translate(-6.5,-19),e.rotate(f*.1),e.fillStyle=m,$(e,-1.5,0,3,7,1.5),e.fill(),e.fillStyle=l,e.beginPath(),e.ellipse(0,8,2,1.5,0,0,Math.PI*2),e.fill(),e.restore(),e.save(),e.translate(6.5,-19),e.rotate(-f*.1),e.fillStyle=m,$(e,-1.5,0,3,7,1.5),e.fill(),e.fillStyle=l,e.beginPath(),e.ellipse(0,8,2,1.5,0,0,Math.PI*2),e.fill(),e.restore(),e.fillStyle=l,e.fillRect(-2,-22,4,3);let h=-29+p;e.fillStyle=l,e.beginPath(),e.ellipse(0,h,6.5,7.5,0,0,Math.PI*2),e.fill(),e.fillStyle=c,e.beginPath(),e.ellipse(0,h,6.5,7.5,0,Math.PI,0),e.fill(),(r===`male_nurse`||r===`female_nurse`)&&(e.fillStyle=`#f0f0f0`,$(e,-5,h-8,10,5,2),e.fill(),e.fillStyle=`#ef4444`,e.fillRect(-1,h-7,2,3),e.fillRect(-2,h-6,4,1)),i!==`up`&&(e.fillStyle=`rgba(0,0,0,0.7)`,e.beginPath(),e.arc(-2,h-1,1,0,Math.PI*2),e.fill(),e.beginPath(),e.arc(2,h-1,1,0,Math.PI*2),e.fill(),e.strokeStyle=`rgba(0,0,0,0.4)`,e.lineWidth=.75,e.beginPath(),e.arc(0,h+1.5,2,.1,Math.PI-.1),e.stroke()),e.restore()}drawHandoffGroup(e,t,n){let{ctx:r}=this,i=e.handoffAnim,{x:a,y:o}=e,s=i.endX-i.startX,c=i.endY-i.startY,l=Math.hypot(s,c)||1,u=-s/l,d=-c/l,f=i.vehicle===`wheelchair`?18:22,p=a+u*f,m=o+d*f+i.stepBounce,h=1;if(i.phase===`pickup`){let e=n-i.phaseStartTs;h=Math.min(1,e/400)}else if(i.phase===`arrive`){let e=n-i.phaseStartTs;h=Math.max(0,1-e/aw)}else i.phase===`resting`&&(h=0);if(i.vehicle===`wheelchair`)this.drawWheelchair(r,a,o,i.wheelAngle,t);else{let e=n*.002;this.drawStretcher(r,a,o,i.wheelAngle,e,t)}this.drawPassiveAgent(e,t,n),h>.01&&(r.save(),r.globalAlpha=h,this.drawHelperCharacter(r,p,m,i.helperVariant,i.helperFacing,i.phase===`moving`?i.helperWalkPhase:0,t),r.restore()),r.fillStyle=t?`rgba(226,232,240,0.82)`:`rgba(15,23,42,0.7)`,r.font=`7px system-ui,sans-serif`,r.textAlign=`center`,r.textBaseline=`top`;let g=e.name.length>12?e.name.slice(0,12)+`…`:e.name;r.fillText(g,a,o+(i.vehicle===`stretcher`?14:12)),i.phase===`moving`&&this.drawRollingSFX(r,a,o,i.wheelAngle,i.vehicle,t,n)}drawPassiveAgent(e,t,n){let{ctx:r}=this,i=e.handoffAnim,{x:a,y:o,name:s,color:c}=e,l=uw(s||``),u=fw[l%fw.length]||`#000`,d=pw[(l>>>6)%pw.length]||`#f5c89a`;if(i.vehicle===`wheelchair`)r.save(),r.translate(a,o),r.fillStyle=c||`#64748b`,$(r,-5,-16,10,8,2),r.fill(),r.fillStyle=d,r.beginPath(),r.ellipse(0,-24,6,7,0,0,Math.PI*2),r.fill(),r.fillStyle=u,r.beginPath(),r.ellipse(0,-24,6,7,0,Math.PI,0),r.fill(),r.strokeStyle=`rgba(0,0,0,0.5)`,r.lineWidth=1,r.beginPath(),r.arc(-2,-24,1.5,0,Math.PI),r.stroke(),r.beginPath(),r.arc(2,-24,1.5,0,Math.PI),r.stroke(),r.fillStyle=d,r.beginPath(),r.ellipse(-10,-10,2,1.5,0,0,Math.PI*2),r.fill(),r.beginPath(),r.ellipse(10,-10,2,1.5,0,0,Math.PI*2),r.fill(),r.restore();else{r.save(),r.translate(a,o);let e=Math.sin(n*.002)*.5;r.fillStyle=d,r.beginPath(),r.ellipse(10,-1+e,5,6,0,0,Math.PI*2),r.fill(),r.fillStyle=u,r.beginPath(),r.ellipse(10,-1+e,5,6,0,Math.PI*.8,Math.PI*2.2),r.fill(),r.strokeStyle=`rgba(0,0,0,0.5)`,r.lineWidth=.75,r.beginPath(),r.arc(9,-2+e,1,0,Math.PI),r.stroke(),r.beginPath(),r.arc(12,-2+e,1,0,Math.PI),r.stroke(),r.restore()}}drawRollingSFX(e,t,n,r,i,a,o){e.save();let s=.15+.1*Math.sin(o*.01);e.strokeStyle=a?`rgba(148,163,184,${s})`:`rgba(71,85,105,${s})`,e.lineWidth=1,(i===`wheelchair`?[[-9,n+4],[9,n+4]]:[[-15,n+5],[15,n+5],[-15,n-11],[15,n-11]]).forEach(([n,i])=>{for(let a=0;a<2;a++){let o=(r+a*Math.PI)%(Math.PI*2),s=t+n-3-a*2,c=i+Math.sin(o)*2;e.beginPath(),e.moveTo(s,c-1),e.lineTo(s-3,c),e.stroke()}}),e.restore()}drawCharacter(e,t,n){let{ctx:r}=this,{walkPhase:i,facing:a,state:o,name:s,id:c}=e,{x:l,y:u}=e,d=e.color||`#64748b`,f=c===this.hoveredId,p=Math.hypot(e.vx,e.vy)>5,m=uw(s||``),h=fw[m%fw.length]||`#000`,g=mw[(m>>>3)%mw.length]||`#1e3a5f`,_=pw[(m>>>6)%pw.length]||`#f5c89a`,v=m%5,y=sw(d,30),b=o===`processing`&&!p,x=n*.018+m%20,S=p?Math.sin(i)*5:0,C=p?Math.sin(i+Math.PI)*4:0,w=p?Math.sin(i*2)*1.2:0;b&&(C=Math.sin(x)*5,w=Math.sin(x*.55)*.8,u+=Math.sin(x*.35)*.7),o===`blocked`?l+=Math.sin(n*.05)*1.5:o===`idle`&&!p&&(u+=Math.sin(n*.003+m)*1),r.fillStyle=`rgba(0,0,0,0.22)`,r.beginPath(),r.ellipse(l,u+3,11,5,0,0,Math.PI*2),r.fill(),f&&(r.strokeStyle=d,r.lineWidth=2,r.setLineDash([4,3]),r.beginPath(),r.arc(l,u-24+w,16,0,Math.PI*2),r.stroke(),r.setLineDash([])),r.save(),r.translate(l,u),o===`burnout`?(r.rotate(Math.PI/2),r.translate(0,15)):b?(r.rotate(Math.sin(x*.45)*.03),r.translate(0,1)):a===`left`&&r.scale(-1,1),r.fillStyle=g,r.save(),r.translate(-3.5,0),r.rotate(S*.1),$(r,-2.5,-4,5,9,2),r.fill(),r.restore(),r.save(),r.translate(3.5,0),r.rotate(-S*.1),$(r,-2.5,-4,5,9,2),r.fill(),r.restore(),r.fillStyle=cw(g,30),r.save(),r.translate(-3.5,S*.5),$(r,-3,4,7,4,2),r.fill(),r.restore(),r.save(),r.translate(3.5,-S*.5),$(r,-3,4,7,4,2),r.fill(),r.restore();let T=r.createLinearGradient(-7,-26,7,-13);T.addColorStop(0,y),T.addColorStop(1,d),r.fillStyle=T,$(r,-7,-26,14,14,3),r.fill(),r.fillStyle=sw(d,45),$(r,-3.5,-26,7,5,2),r.fill(),r.strokeStyle=`rgba(0,0,0,0.12)`,r.lineWidth=.75,r.beginPath(),r.moveTo(0,-26),r.lineTo(0,-13),r.stroke(),r.save(),r.translate(-9,-24),r.rotate(b?.55+Math.max(0,Math.sin(x))*.28:C*.12);let E=r.createLinearGradient(-2,0,2,10);E.addColorStop(0,y),E.addColorStop(1,d),r.fillStyle=E,$(r,-2,0,4,9,2),r.fill(),r.fillStyle=_,r.beginPath(),r.ellipse(0,10,2.5,2,0,0,Math.PI*2),r.fill(),r.restore(),r.save(),r.translate(9,-24),r.rotate(b?-.55-Math.max(0,Math.sin(x+Math.PI))*.28:-C*.12),r.fillStyle=E,$(r,-2,0,4,9,2),r.fill(),r.fillStyle=_,r.beginPath(),r.ellipse(0,10,2.5,2,0,0,Math.PI*2),r.fill(),r.restore(),r.fillStyle=_,r.fillRect(-2.5,-28,5,4);let D=-38+w;r.fillStyle=`rgba(0,0,0,0.15)`,r.beginPath(),r.ellipse(1,D+2,9,5,0,0,Math.PI*2),r.fill();let O=r.createRadialGradient(-3,D-3,2,0,D,10);if(O.addColorStop(0,sw(_,15)),O.addColorStop(1,_),r.fillStyle=O,r.beginPath(),r.ellipse(0,D,9,10,0,0,Math.PI*2),r.fill(),this.drawHair(r,0,D,h,v),a!==`up`&&this.drawFace(r,0,D,_,a,p,i,o,n,m),r.restore(),o!==`idle`&&o!==`burnout`){let e=o===`blocked`?`#ef4444`:o===`processing`?`#a855f7`:o===`claiming`?`#0ea5e9`:`#f59e0b`,t=l+(a===`left`?-10:10),n=u-48+w;r.fillStyle=e,r.shadowColor=e,r.shadowBlur=10,r.beginPath(),r.arc(t,n,5,0,Math.PI*2),r.fill(),r.shadowBlur=0,r.strokeStyle=`#ffffff`,r.lineWidth=2,r.beginPath(),r.arc(t,n,5,0,Math.PI*2),r.stroke(),r.strokeStyle=`rgba(0,0,0,0.5)`,r.lineWidth=1,r.beginPath(),r.arc(t,n,6,0,Math.PI*2),r.stroke()}if(o===`processing`){let e=.4+.6*Math.sin(n*.0028);if(r.strokeStyle=lw(d,.18+e*.14),r.lineWidth=1.5,r.beginPath(),r.arc(l,u-38+w,17+e*4,0,Math.PI*2),r.stroke(),b)for(let e=0;e<4;e++){let t=(x+e*.9)%(Math.PI*2),n=Math.max(0,Math.sin(t));n<.25||(r.fillStyle=lw(d,n*.75),r.beginPath(),r.arc(l-9+e*6,u-11-n*3,1.1+n*.9,0,Math.PI*2),r.fill())}for(let e=0;e<3;e++){let t=.3+.7*Math.sin(n*.004+e*1.1);r.fillStyle=lw(d,.5+t*.5),r.beginPath(),r.arc(l+(-5+e*5),u-54+w,1.5+t,0,Math.PI*2),r.fill()}}if(o===`burnout`){let e=n*.002%(Math.PI*2);for(let t=0;t<3;t++){let n=(e+t*(Math.PI*2/3))%(Math.PI*2),i=Math.max(0,Math.sin(n)),a=l+5+Math.cos(n)*5+n*2,o=u-10-n*8;r.fillStyle=`rgba(150, 150, 200, ${i})`,r.font=`bold ${8+n*1.5}px monospace`,r.fillText(`Z`,a,o)}}r.fillStyle=t?`rgba(226,232,240,0.82)`:`rgba(15,23,42,0.7)`,r.font=`7px system-ui,sans-serif`,r.textAlign=`center`,r.textBaseline=`top`;let k=s.length>12?s.slice(0,12)+`…`:s;r.fillText(k,l,u+12)}drawHair(e,t,n,r,i){switch(e.fillStyle=r,i){case 0:e.beginPath(),e.ellipse(t,n,9,10,0,Math.PI,0),e.fill(),e.fillRect(t-9,n-2,3,5),e.fillRect(t+6,n-2,3,5);break;case 1:for(let r=-2;r<=2;r++)e.beginPath(),e.moveTo(t+r*4-2,n-7),e.lineTo(t+r*4,n-14),e.lineTo(t+r*4+2,n-7),e.closePath(),e.fill();e.beginPath(),e.ellipse(t,n-5,9,4,0,0,Math.PI*2),e.fill();break;case 2:e.save(),e.translate(t,n),e.beginPath(),e.moveTo(-9,-2),e.bezierCurveTo(-11,-12,10,-16,11,-6),e.lineTo(9,0),e.bezierCurveTo(4,-8,-4,-10,-9,-2),e.closePath(),e.fill(),e.restore();break;case 3:e.beginPath(),e.arc(t,n,9.5,Math.PI,0),e.fill(),$(e,t-10,n,4,12,2),e.fill(),$(e,t+6,n,4,12,2),e.fill();break;case 4:e.fillStyle=cw(r,20),$(e,t-12,n-6,24,5,2),e.fill(),e.fillStyle=r,$(e,t-9,n-16,18,12,3),e.fill(),e.fillStyle=sw(r,40),$(e,t-3,n-11,6,4,1),e.fill();break}}drawFace(e,t,n,r,i,a,o,s,c,l){if(i===`right`)e.fillStyle=`rgba(0,0,0,0.7)`,e.beginPath(),e.ellipse(t+5,n-2,1.5,1.5,0,0,Math.PI*2),e.fill(),e.strokeStyle=`rgba(0,0,0,0.2)`,e.lineWidth=1,e.beginPath(),e.arc(t+9,n,3,-.5,.5),e.stroke();else if(s===`burnout`){if((l||0)%2==0){e.strokeStyle=`rgba(0,0,0,0.7)`,e.lineWidth=1;let r=(c||0)*.005%(Math.PI*2);e.save(),e.translate(t-3,n-2),e.rotate(r),e.beginPath(),e.moveTo(0,0);for(let t=0;t<15;t++){let n=t*.5,r=t*.15;e.lineTo(Math.cos(n)*r,Math.sin(n)*r)}e.stroke(),e.restore(),e.save(),e.translate(t+3,n-2),e.rotate(r),e.beginPath(),e.moveTo(0,0);for(let t=0;t<15;t++){let n=t*.5,r=t*.15;e.lineTo(Math.cos(n)*r,Math.sin(n)*r)}e.stroke(),e.restore()}else e.strokeStyle=`rgba(0,0,0,0.7)`,e.lineWidth=1.5,e.beginPath(),e.arc(t-3,n-2,2.5,0,Math.PI),e.stroke(),e.beginPath(),e.arc(t+3,n-2,2.5,0,Math.PI),e.stroke();e.strokeStyle=`rgba(0,0,0,0.5)`,e.lineWidth=1,e.beginPath(),e.arc(t,n+3,2,Math.PI,Math.PI*2),e.stroke()}else{e.fillStyle=`white`,e.beginPath(),e.ellipse(t-3,n-2,2.5,2,0,0,Math.PI*2),e.fill(),e.beginPath(),e.ellipse(t+3,n-2,2.5,2,0,0,Math.PI*2),e.fill(),e.fillStyle=`rgba(20,20,80,0.85)`,e.beginPath(),e.arc(t-3,n-2,1.3,0,Math.PI*2),e.fill(),e.beginPath(),e.arc(t+3,n-2,1.3,0,Math.PI*2),e.fill(),e.fillStyle=`white`,e.beginPath(),e.arc(t-3.5,n-2.5,.5,0,Math.PI*2),e.fill(),e.beginPath(),e.arc(t+2.5,n-2.5,.5,0,Math.PI*2),e.fill();let r=a&&Math.sin(o)>.5;e.strokeStyle=`rgba(0,0,0,0.5)`,e.lineWidth=1,r?(e.beginPath(),e.arc(t,n+2,2,0,Math.PI),e.stroke()):(e.beginPath(),e.moveTo(t-2.5,n+2.5),e.quadraticCurveTo(t,n+4,t+2.5,n+2.5),e.stroke())}}},yw=K(`<span class="badge loading svelte-1pykpun"><span class="animate-spin" style="display:inline-block;width:10px;height:10px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%"></span> Loading…</span>`),bw=K(`<span class="badge error svelte-1pykpun"><!> Error</span>`),xw=K(`<span class="badge live svelte-1pykpun"><span class="pulse-dot svelte-1pykpun"></span> Live · <strong> </strong> <strong> </strong> <!></span>`),Sw=K(`<div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Repos</span> <span class="tip-repos svelte-1pykpun"> </span></div>`),Cw=K(`<div class="agent-tip glass svelte-1pykpun"><div class="tip-name svelte-1pykpun"><span class="tip-dot svelte-1pykpun"></span> </div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Role</span><span> </span></div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">State</span> <span> </span></div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Tasks</span><span> </span></div> <!></div>`),ww=K(`<div class="arena-empty svelte-1pykpun"><!> <div style="font-weight:700;font-size:0.9rem">No active agents</div> <div class="arena-empty-sub svelte-1pykpun">Agents appear here when they claim tasks across your repositories</div></div>`),Tw=K(`<div class="arena-root glass card animate-fade-in svelte-1pykpun"><div class="arena-hdr svelte-1pykpun"><div class="arena-hdr-left svelte-1pykpun"><div class="arena-icon svelte-1pykpun"><!></div> <div><div class="section-label" style="margin:0">Agent Arena</div> <div class="arena-sub svelte-1pykpun">Live 2D view · all repositories</div></div></div> <div class="arena-hdr-right svelte-1pykpun"><!></div></div> <div class="arena-wrap svelte-1pykpun"><canvas class="arena-canvas svelte-1pykpun"></canvas> <!> <!></div> <div class="arena-footer svelte-1pykpun"><div class="legend-row svelte-1pykpun"><div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#8b5cf6"></span>Lobby (idle)</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#0ea5e9"></span>Inbox</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#a855f7"></span>Workspace</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#ef4444"></span>Issues</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#10b981"></span>Done</div></div> <div class="legend-row svelte-1pykpun"><div class="legend-item svelte-1pykpun"><span class="lg-bubble svelte-1pykpun"></span>Working agent</div> <div class="legend-item svelte-1pykpun"><span class="lg-dash svelte-1pykpun" style="border-color:#f59e0b"></span>Handoff beam</div> <div class="legend-item svelte-1pykpun"><span class="lg-dash svelte-1pykpun"></span>Claim link</div></div></div></div>`);function Ew(e,t){We(t,!1);let n=()=>P(p,`$arena`,i),r=()=>P(Ia,`$theme`,i),[i,a]=pt(),o=F(),s=F(),c=F(),l=F(null),u=F(null),d=F(null),f=F(null),p=ZC();function m(){if(!H(s)||!H(c))return;let e=H(c).clientWidth||960,t=Math.max(520,Math.min(window.innerHeight-220,800));sn(s,H(s).width=e),sn(s,H(s).height=t),I(u,{canvasWidth:e,canvasHeight:t}),H(l)||(I(l,new vw(H(s))),H(l).start()),p.setLayout(H(u)),n().scene&&H(l).update(n().scene,H(u),r()===`dark`)}function h(e){if(!H(l)||!n().scene){I(d,null),I(f,null);return}let t=H(s).getBoundingClientRect(),r=H(s).width/t.width,i=H(s).height/t.height,a=(e.clientX-t.left)*r,o=(e.clientY-t.top)*i,c=H(l).hitTestAgent(a,o);c!==H(d)&&(I(d,c),H(l).setHovered(H(d))),I(f,H(d)?{x:e.clientX-t.left+14,y:e.clientY-t.top-10}:null)}function g(){I(d,null),I(f,null),H(l)?.setHovered(null)}Aa(()=>{let e=setTimeout(()=>{m(),H(u)&&p.start(H(u))},60),t=new ResizeObserver(()=>m());return t.observe(H(c)),()=>{clearTimeout(e),t.disconnect()}}),ja(()=>{p.stop(),H(l)?.stop()}),B(()=>(H(l),n(),H(u),r()),()=>{H(l)&&n().scene&&H(u)&&H(l).update(n().scene,H(u),r()===`dark`)}),B(()=>(H(d),n()),()=>{I(o,H(d)&&n().scene?n().scene.agents.get(H(d))??null:null)}),Un(),Ea();var _=Tw(),v=L(_),y=L(v),b=L(y);Q(L(b),{name:`cpu`,size:16,strokeWidth:1.75}),A(b),j(2),A(y);var x=z(y,2),S=L(x),C=e=>{q(e,yw())},w=e=>{var t=bw();Q(L(t),{name:`alert-circle`,size:11}),j(),A(t),q(e,t)},T=e=>{var t=xw(),r=z(L(t),2),i=L(r,!0);A(r);var a=z(r),o=z(a),s=L(o,!0);A(o);var c=z(o),l=z(c),u=e=>{var t=ci();V(()=>J(t,` · ${(n(),U(()=>n().repoCount))??``} repos`)),q(e,t)};Y(l,e=>{n(),U(()=>n().repoCount>1)&&e(u)}),A(t),V(()=>{J(i,(n(),U(()=>n().scene.agents.size))),J(a,` ${(n(),U(()=>n().scene.agents.size===1?`agent`:`agents`))??``}
|
|
87
87
|
· `),J(s,(n(),U(()=>n().scene.tasks.size))),J(c,` ${(n(),U(()=>n().scene.tasks.size===1?`task`:`tasks`))??``} `)}),q(e,t)};Y(S,e=>{n(),U(()=>n().loading&&!n().scene)?e(C):(n(),U(()=>n().error)?e(w,1):(n(),U(()=>n().scene)&&e(T,2)))}),A(x),A(v);var E=z(v,2),D=L(E);Ca(D,e=>I(s,e),()=>H(s));var O=z(D,2),k=e=>{var t=Cw(),n=L(t),r=L(n),i=z(r);A(n);var a=z(n,2),s=z(L(a)),c=L(s,!0);A(s),A(a);var l=z(a,2),u=z(L(l),2),d=L(u,!0);A(u),A(l);var p=z(l,2),m=z(L(p)),h=L(m,!0);A(m),A(p);var g=z(p,2),_=e=>{var t=Sw(),n=z(L(t),2),r=L(n,!0);A(n),A(t),V(e=>J(r,e),[()=>(H(o),U(()=>H(o).repos.map(e=>e.split(`/`).pop()).join(`, `)))]),q(e,t)};Y(g,e=>{H(o),U(()=>H(o).repos.length>0)&&e(_)}),A(t),V(e=>{Ji(t,`left:${(H(f),U(()=>H(f).x))??``}px;top:${(H(f),U(()=>H(f).y))??``}px`),Ji(r,`background:${(H(o),U(()=>H(o).color))??``}`),J(i,` ${(H(o),U(()=>H(o).name))??``}`),J(c,(H(o),U(()=>H(o).role||`—`))),Ki(u,1,`tip-state ${(H(o),U(()=>H(o).state))??``}`,`svelte-1pykpun`),J(d,e),J(h,(H(o),U(()=>H(o).claimedTaskIds.length)))},[()=>(H(o),U(()=>H(o).state.replace(/_/g,` `)))]),q(e,t)};Y(O,e=>{H(o)&&H(f)&&e(k)});var ee=z(O,2),te=e=>{var t=ww();Q(L(t),{name:`users`,size:30,strokeWidth:1.2}),j(4),A(t),q(e,t)};Y(ee,e=>{n(),U(()=>n().scene&&n().scene.agents.size===0&&!n().loading)&&e(te)}),A(E),Ca(E,e=>I(c,e),()=>H(c)),j(2),A(_),V(()=>Ji(D,`cursor:${H(d)?`pointer`:`default`}`)),G(`mousemove`,D,h),G(`mouseleave`,D,g),q(e,_),Ge(),a()}var Dw=K(`<div class="repo-focus svelte-1eglegg"><!> <span> </span></div>`),Ow=K(`<div class="summary-card svelte-1eglegg"><div class="summary-icon svelte-1eglegg"><!></div> <div class="summary-value svelte-1eglegg"> </div> <div class="summary-label svelte-1eglegg"> </div></div>`),kw=K(`<div class="mini-card svelte-1eglegg"><div class="mini-value svelte-1eglegg"> </div> <div class="mini-label svelte-1eglegg"> </div></div>`),Aw=K(`<div class="mini-card svelte-1eglegg"><div class="mini-icon svelte-1eglegg"><!></div> <div class="mini-value svelte-1eglegg"> </div> <div class="mini-label svelte-1eglegg"> </div></div>`),jw=K(`<div class="empty-state svelte-1eglegg">No repository activity yet.</div>`),Mw=K(`<span class="stat-chip stale svelte-1eglegg"> </span>`),Nw=K(`<span class="stat-chip stale svelte-1eglegg"> </span>`),Pw=K(`<div><div class="repo-main"><div class="repo-name svelte-1eglegg"> </div> <div class="repo-meta svelte-1eglegg"> </div></div> <div class="pressure-pill svelte-1eglegg"> </div> <div class="repo-stats svelte-1eglegg"><span class="stat-chip active svelte-1eglegg"> </span> <span class="stat-chip pending svelte-1eglegg"> </span> <span class="stat-chip blocked svelte-1eglegg"> </span> <span class="stat-chip backlog svelte-1eglegg"> </span></div> <div class="repo-stats svelte-1eglegg"><span class="stat-chip claim svelte-1eglegg"> </span> <span class="stat-chip handoff svelte-1eglegg"> </span> <!> <!></div> <div class="last-activity svelte-1eglegg"> </div></div>`),Fw=K(`<div class="repo-table svelte-1eglegg"><div class="repo-table-head svelte-1eglegg"><span>Repository</span> <span>Pressure</span> <span>Workload</span> <span>Coordination</span> <span>Last Activity</span></div> <!></div>`),Iw=K(`<div class="global-shell animate-fade-in svelte-1eglegg"><div class="glass card panel-card svelte-1eglegg"><div class="panel-header svelte-1eglegg"><div><div class="section-label">Global Command Center</div> <div class="panel-copy svelte-1eglegg">Cross-repository orchestration view for workload, coordination, and pressure.</div></div> <!></div> <div class="summary-grid svelte-1eglegg"></div></div> <div class="grid-two svelte-1eglegg"><div class="glass card panel-card svelte-1eglegg"><div class="subheading svelte-1eglegg">Coordination</div> <div class="mini-grid svelte-1eglegg"></div></div> <div class="glass card panel-card svelte-1eglegg"><div class="subheading svelte-1eglegg">Throughput</div> <div class="mini-grid svelte-1eglegg"></div></div></div> <div class="glass card panel-card svelte-1eglegg"><div class="panel-header svelte-1eglegg"><div><div class="subheading svelte-1eglegg">Attention Board</div> <div class="panel-copy svelte-1eglegg">Repos sorted by operational pressure: blocked work, active execution, pending queue, and coordination load.</div></div></div> <!></div></div>`);function Lw(e,t){We(t,!1);let n=()=>P(Ga,`$globalDashboardStats`,s),r=()=>P(Ba,`$currentRepo`,s),i=()=>P(d,`$summaryCards`,s),a=()=>P(f,`$coordinationCards`,s),o=()=>P(p,`$throughputCards`,s),[s,c]=pt(),l=F(),u=F(),d=st(Ga,e=>[{label:`Repositories`,value:e?.repoCount??0,icon:`database`,color:`#0ea5e9`,tint:`rgba(14,165,233,0.12)`},{label:`Active Repos`,value:e?.activeRepoCount??0,icon:`activity`,color:`#8b5cf6`,tint:`rgba(139,92,246,0.12)`},{label:`Open Tasks`,value:(e?.taskStats?.pending??0)+(e?.taskStats?.in_progress??0)+(e?.taskStats?.blocked??0)+(e?.taskStats?.backlog??0),icon:`clipboard-list`,color:`#f59e0b`,tint:`rgba(245,158,11,0.12)`},{label:`Active Claims`,value:e?.coordination?.activeClaims??0,icon:`check`,color:`#10b981`,tint:`rgba(16,185,129,0.12)`},{label:`Pending Handoffs`,value:e?.coordination?.pendingHandoffs??0,icon:`git-branch`,color:`#6366f1`,tint:`rgba(99,102,241,0.12)`},{label:`Blocked Tasks`,value:e?.taskStats?.blocked??0,icon:`triangle-alert`,color:`#ef4444`,tint:`rgba(239,68,68,0.12)`}]),f=st(Ga,e=>[{label:`Agents Claiming`,value:e?.coordination?.agentsClaiming??0,accent:`#10b981`},{label:`Unassigned Handoffs`,value:e?.coordination?.unassignedHandoffs??0,accent:`#f97316`},{label:`Stale Claims`,value:e?.coordination?.staleClaims??0,accent:`#ef4444`},{label:`Stale Handoffs`,value:e?.coordination?.staleHandoffs??0,accent:`#e11d48`}]),p=st(qa,e=>[{label:`Today Done`,value:e?.daily?.completed??0,icon:`circle-check`,color:`#10b981`},{label:`Today Added`,value:e?.daily?.added??0,icon:`plus`,color:`#0ea5e9`},{label:`7d Done`,value:e?.weekly?.completed??0,icon:`bar-chart`,color:`#8b5cf6`},{label:`7d Tokens`,value:ml(e?.weekly?.tokens),icon:`cpu`,color:`#f59e0b`}]);function m(e){return e.blockedCount*5+e.inProgressCount*3+e.pendingCount*2+e.pendingHandoffs*2+e.activeClaims}B(()=>n(),()=>{I(l,(n()?.repos??[]).slice(0,8))}),B(()=>(r(),H(l)),()=>{I(u,r()?H(l).find(e=>e.repo===r()):null)}),Un(),Ea();var h=Iw(),g=L(h),_=L(g),v=z(L(_),2),y=e=>{var t=Dw(),n=L(t);Q(n,{name:`pin`,size:12,strokeWidth:2});var i=z(n,2),a=L(i);A(i),A(t),V(()=>J(a,`Focused repo: ${r()??``}`)),q(e,t)};Y(v,e=>{H(u)&&e(y)}),A(_);var b=z(_,2);X(b,5,i,e=>e.label,(e,t)=>{var n=Ow(),r=L(n);Q(L(r),{get name(){return H(t),U(()=>H(t).icon)},size:14,strokeWidth:1.9}),A(r);var i=z(r,2),a=L(i,!0);A(i);var o=z(i,2),s=L(o,!0);A(o),A(n),V(()=>{Ji(n,`background:${(H(t),U(()=>H(t).tint))??``};border-color:${(H(t),U(()=>H(t).tint))??``};`),Ji(r,`color:${(H(t),U(()=>H(t).color))??``};`),Ji(i,`color:${(H(t),U(()=>H(t).color))??``};`),J(a,(H(t),U(()=>H(t).value))),J(s,(H(t),U(()=>H(t).label)))}),q(e,n)}),A(b),A(g);var x=z(g,2),S=L(x),C=z(L(S),2);X(C,5,a,e=>e.label,(e,t)=>{var n=kw(),r=L(n),i=L(r,!0);A(r);var a=z(r,2),o=L(a,!0);A(a),A(n),V(()=>{Ji(r,`color:${(H(t),U(()=>H(t).accent))??``};`),J(i,(H(t),U(()=>H(t).value))),J(o,(H(t),U(()=>H(t).label)))}),q(e,n)}),A(C),A(S);var w=z(S,2),T=z(L(w),2);X(T,5,o,e=>e.label,(e,t)=>{var n=Aw(),r=L(n);Q(L(r),{get name(){return H(t),U(()=>H(t).icon)},size:12,strokeWidth:2}),A(r);var i=z(r,2),a=L(i,!0);A(i);var o=z(i,2),s=L(o,!0);A(o),A(n),V(()=>{Ji(r,`color:${(H(t),U(()=>H(t).color))??``};`),Ji(i,`color:${(H(t),U(()=>H(t).color))??``};`),J(a,(H(t),U(()=>H(t).value))),J(s,(H(t),U(()=>H(t).label)))}),q(e,n)}),A(T),A(w),A(x);var E=z(x,2),D=z(L(E),2),O=e=>{q(e,jw())},k=e=>{var t=Fw();X(z(L(t),2),1,()=>H(l),e=>e.repo,(e,t)=>{var n=Pw();let i;var a=L(n),o=L(a),s=L(o,!0);A(o);var c=z(o,2),l=L(c);A(c),A(a);var u=z(a,2),d=L(u,!0);A(u);var f=z(u,2),p=L(f),h=L(p);A(p);var g=z(p,2),_=L(g);A(g);var v=z(g,2),y=L(v);A(v);var b=z(v,2),x=L(b);A(b),A(f);var S=z(f,2),C=L(S),w=L(C);A(C);var T=z(C,2),E=L(T);A(T);var D=z(T,2),O=e=>{var n=Mw(),r=L(n);A(n),V(()=>J(r,`U ${(H(t),U(()=>H(t).unassignedHandoffs))??``}`)),q(e,n)};Y(D,e=>{H(t),U(()=>H(t).unassignedHandoffs>0)&&e(O)});var k=z(D,2),ee=e=>{var n=Nw(),r=L(n);A(n),V(()=>J(r,`S ${(H(t),U(()=>H(t).staleClaims))??``}`)),q(e,n)};Y(k,e=>{H(t),U(()=>H(t).staleClaims>0)&&e(ee)}),A(S);var te=z(S,2),ne=L(te,!0);A(te),A(n),V((e,a)=>{i=Ki(n,1,`repo-table-row svelte-1eglegg`,null,i,{selected:r()===H(t).repo}),J(s,(H(t),U(()=>H(t).repo))),J(l,`${(H(t),U(()=>H(t).memoryCount))??``} memories • ${(H(t),U(()=>H(t).taskCount))??``} tasks`),J(d,e),J(h,`A ${(H(t),U(()=>H(t).inProgressCount))??``}`),J(_,`P ${(H(t),U(()=>H(t).pendingCount))??``}`),J(y,`B ${(H(t),U(()=>H(t).blockedCount))??``}`),J(x,`Q ${(H(t),U(()=>H(t).backlogCount))??``}`),J(w,`C ${(H(t),U(()=>H(t).activeClaims))??``}`),J(E,`H ${(H(t),U(()=>H(t).pendingHandoffs))??``}`),J(ne,a)},[()=>(H(t),U(()=>m(H(t)))),()=>(H(t),W(pl),U(()=>H(t).lastActivity?pl(H(t).lastActivity):`—`))]),q(e,n)}),A(t),q(e,t)};Y(D,e=>{H(l),U(()=>H(l).length===0)?e(O):e(k,-1)}),A(E),A(h),q(e,h),Ge(),c()}var Rw=K(`<div class="drawer-overlay" style="z-index:38;" role="button" tabindex="0" aria-label="Close menu"></div> <div class="mobile-sidebar-shell"><!></div>`,1),zw=K(`<div style="text-align:center;padding:80px 20px;" class="animate-fade-in"><div style="display:inline-flex;width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,rgba(14,165,233,0.15),rgba(99,102,241,0.15));border:1px solid rgba(14,165,233,0.2);align-items:center;justify-content:center;margin-bottom:20px;" class="animate-float"><!></div> <div style="font-size:1.25rem;font-weight:800;color:var(--color-text);margin-bottom:8px;letter-spacing:-0.02em;">No Repository Selected</div> <div style="color:var(--color-text-muted);font-size:0.875rem;">Select a repository from the sidebar to get started.</div></div>`),Bw=K(`<div class="glass card hover-glow" style="padding:16px;"><div class="flex items-center justify-between" style="margin-bottom:10px;"><div class="section-label">Selected Repo Pulse</div> <div style="font-size:0.68rem;font-weight:800;color:var(--color-primary);background:rgba(99,102,241,0.08);border:1px solid rgba(99,102,241,0.16);padding:4px 8px;border-radius:999px;"> </div></div> <div style="display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px;" class="repo-pulse-grid svelte-1m88iwd"><div class="glass card" style="padding:16px;"><div class="section-label" style="margin-bottom:10px;">Memory Overview</div> <!></div> <div class="glass card" style="padding:16px;"><div class="section-label" style="margin-bottom:10px;">Task Overview</div> <!></div></div></div> <!>`,1),Vw=K(`<div class="glass card hover-glow" style="padding:16px;"><div class="section-label" style="margin-bottom:10px;">Per-Repository Pulse</div> <div style="color:var(--color-text-muted);font-size:0.8rem;">Select a repository from the sidebar to inspect repo-specific memory, task, and execution metrics.</div></div>`),Hw=K(`<div style="display:grid;grid-template-columns:1fr;gap:12px;align-items:start;" class="dashboard-grid svelte-1m88iwd"><!> <div style="display:flex;flex-direction:column;gap:12px;"><!></div></div>`),Uw=K(`<div class="glass card animate-fade-in" style="height:calc(100vh - 180px);display:flex;flex-direction:column;padding:0;overflow:hidden;border-radius:24px;"><div style="padding:16px 20px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,0.05);"><div class="flex items-center gap-3"><div style="width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));display:flex;align-items:center;justify-content:center;color:white;box-shadow:0 4px 12px var(--glow-primary);"><!></div> <div><div style="font-size:0.95rem;font-weight:800;color:var(--color-text);letter-spacing:-0.01em;">Recent Activity</div> <div style="font-size:0.68rem;color:var(--color-text-muted);font-weight:600;"> </div></div></div></div> <!> <div class="chat-send-panel"><div class="chat-input-row"><input type="text" placeholder="Type a message to create a backlog task..."/> <button class="chat-send-btn"><!></button></div></div></div>`),Ww=K(`<div class="glass card hover-glow animate-fade-in"><div class="flex items-center gap-2" style="margin-bottom:16px;"><!> <div class="section-label">Memory Explorer</div></div> <!></div>`),Gw=K(`<div class="animate-fade-in"><div class="glass card hover-glow" style="margin-bottom:20px;"><div class="flex items-center gap-2" style="margin-bottom:16px;"><!> <div class="stat-label">Task Overview</div></div> <!></div></div>`),Kw=K(`<div class="arena-fullwidth svelte-1m88iwd"><!></div>`),qw=K(`<div class="tabs-wrap"><div class="tab-nav" style="display:inline-flex;"><button id="tab-activity"><!> <span>Activity</span></button> <button id="tab-memories"><!> <span>Memories</span></button> <button id="tab-tasks"><!> <span>Tasks</span></button> <button id="tab-handoffs"><!> <span>Handoffs</span></button></div></div> <!> <!> <!> <!> <!> <!> <!> <!>`,1),Jw=K(`<div class="app-layout"><!> <div><!> <!> <div id="dashboardShell" class="dashboard-shell"><!></div></div></div> <!> <!> <!> <!> <!> <!>`,1);function Yw(e,t){We(t,!1);let n=()=>P(Ra,`$activeTab`,s),r=()=>P(b,`$sidebarCollapsed`,s),i=()=>P(g,`$appState`,s),a=()=>P(Ba,`$currentRepo`,s),o=()=>P(so,`$recentActionsTotalItems`,s),[s,c]=pt(),l=F(),u=F(),d=F(``),f=F(!1);function p(){let e=new Date;return`Chat · ${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`}async function m(){let e=H(d).trim();if(!e||H(f))return;let t=N(Ba);if(t){I(f,!0);try{let n=`CHAT-`+Date.now().toString(36).toUpperCase();await Z.createTask({repo:t,task_code:n,title:p(),description:e,status:`backlog`,priority:3,phase:`Inbox`}),I(d,``),await h.onRefresh(),fo.update(e=>e+1)}catch(e){console.error(`Failed to create task from chat:`,e)}finally{I(f,!1)}}}let h=Co({get kanbanBoard(){return H(l)},get memoryList(){return H(u)}}),g={subscribe:h.subscribe,set:h.set,update:h.update},{filteredTools:_,filteredPrompts:v,filteredResources:y,sidebarCollapsed:b}=h;Aa(async()=>{yo(),await h.loadRepos(),await h.loadHealth(),await h.loadData()}),B(()=>(n(),Z),()=>{n()===`reference`&&(N(h).capabilities||Z.capabilities().then(e=>h.update(t=>({...t,capabilities:e}))).catch(e=>console.error(`Failed to load capabilities:`,e)))}),Un(),Ea();var x=Jw();G(`keydown`,hn,function(...e){h.onKeyDown?.apply(this,e)});var S=R(x),C=L(S);tu(C,{get onRepoSelect(){return U(()=>h.onRepoSelect)}});var w=z(C,2);let T;var E=L(w);hu(E,{get onRefresh(){return U(()=>h.onRefresh)},get onToggleMobileMenu(){return U(()=>h.toggleMobileMenu)},get onEcosystem(){return U(()=>h.onEcosystemClick)}});var D=z(E,2),O=e=>{var t=Rw(),n=R(t),r=z(n,2);tu(L(r),{get onRepoSelect(){return U(()=>h.onRepoSelect)}}),A(r),G(`click`,n,()=>h.toggleMobileMenu()),G(`keydown`,n,e=>e.key===`Escape`&&h.toggleMobileMenu()),q(e,t)};Y(D,e=>{i(),U(()=>i().mobileMenuOpen)&&e(O)});var k=z(D,2),ee=L(k),te=e=>{var t=zw(),n=L(t);Q(L(n),{name:`brain`,size:32,strokeWidth:1.5,className:``}),A(n),j(4),A(t),q(e,t)},ne=e=>{var t=qw(),r=R(t),i=L(r),s=L(i);let c;Q(L(s),{name:`activity`,size:14,strokeWidth:1.75}),j(2),A(s);var p=z(s,2);let b;Q(L(p),{name:`brain`,size:14,strokeWidth:1.75}),j(2),A(p);var x=z(p,2);let S;Q(L(x),{name:`clipboard-list`,size:14,strokeWidth:1.75}),j(2),A(x);var C=z(x,2);let w;Q(L(C),{name:`git-branch`,size:14,strokeWidth:1.75}),j(2),A(C),A(i),A(r);var T=z(r,2),E=e=>{var t=Hw(),n=L(t);Lw(n,{});var r=z(n,2),i=L(r),o=e=>{var t=Bw(),n=R(t),r=L(n),i=z(L(r),2),o=L(i,!0);A(i),A(r);var s=z(r,2),c=L(s);Zu(z(L(c),2),{}),A(c);var l=z(c,2);rd(z(L(l),2),{}),A(l),A(s),A(n),Cy(z(n,2),{}),V(()=>J(o,a())),q(e,t)},s=e=>{q(e,Vw())};Y(i,e=>{a()?e(o):e(s,-1)}),A(r),A(t),q(e,t)};Y(T,e=>{n()===`dashboard`&&e(E)});var D=z(T,2),O=e=>{var t=Uw(),n=L(t),r=L(n),i=L(r);Q(L(i),{name:`activity`,size:18,strokeWidth:2.2}),A(i);var a=z(i,2),s=z(L(a),2),c=L(s);A(s),A(a),A(r),A(n);var l=z(n,2);Sb(l,{get onLoadPage(){return U(()=>h.loadRecentActions)}});var u=z(l,2),p=L(u),g=L(p);ca(g);var _=z(g,2);Q(L(_),{name:`send`,size:16,strokeWidth:2}),A(_),A(p),A(u),A(t),V(e=>{J(c,`${o()??``} events tracked`),la(g,H(d)),g.disabled=H(f),_.disabled=e},[()=>(H(d),H(f),U(()=>!H(d).trim()||H(f)))]),G(`input`,g,e=>I(d,e.currentTarget.value)),G(`keydown`,g,e=>e.key===`Enter`&&!e.shiftKey&&m()),G(`click`,_,m),q(e,t)};Y(D,e=>{n()===`activity`&&e(O)});var k=z(D,2),ee=e=>{var t=Ww(),n=L(t);Q(L(n),{name:`brain`,size:14,strokeWidth:1.75}),j(2),A(n),Ca(Vy(z(n,2),{get onMemoryClick(){return U(()=>h.openMemoryDrawer)},get onNewMemory(){return U(()=>h.openNewMemoryDrawer)},onBulkImport:()=>h.openBulkImport(`memories`),$$legacy:!0}),e=>I(u,e),()=>H(u)),A(t),q(e,t)};Y(k,e=>{n()===`memories`&&e(ee)});var te=z(k,2),ne=e=>{var t=Gw(),n=L(t),r=L(n);Q(L(r),{name:`columns`,size:14,strokeWidth:1.75}),j(2),A(r),Ca(Wu(z(r,2),{get onTaskClick(){return U(()=>h.openTaskDrawer)},onAddTask:()=>h.toggleAddTaskModal(!0),onBulkImport:()=>h.openBulkImport(`tasks`),$$legacy:!0}),e=>I(l,e),()=>H(l)),A(n),A(t),q(e,t)};Y(te,e=>{n()===`tasks`&&e(ne)});var re=z(te,2),ie=e=>{{let t=Yt(()=>a()||``);gC(e,{get repo(){return H(t)}})}};Y(re,e=>{n()===`standards`&&e(ie)});var ae=z(re,2),oe=e=>{{let t=Yt(()=>a()||``);EC(e,{get repo(){return H(t)}})}};Y(ae,e=>{n()===`handoffs`&&e(oe)});var se=z(ae,2),ce=e=>{var t=Kw();Ew(L(t),{}),A(t),q(e,t)};Y(se,e=>{n()===`arena`&&e(ce)});var le=z(se,2),ue=e=>{YS(e,{get handler(){return h},get appState(){return g},get filteredTools(){return _},get filteredPrompts(){return v},get filteredResources(){return y}})};Y(le,e=>{n()===`reference`&&e(ue)}),V(()=>{c=Ki(s,1,`tab-btn`,null,c,{active:n()===`activity`}),b=Ki(p,1,`tab-btn`,null,b,{active:n()===`memories`}),S=Ki(x,1,`tab-btn`,null,S,{active:n()===`tasks`}),w=Ki(C,1,`tab-btn`,null,w,{active:n()===`handoffs`})}),G(`click`,s,()=>h.onTabChange(`activity`)),G(`click`,p,()=>h.onTabChange(`memories`)),G(`click`,x,()=>h.onTabChange(`tasks`)),G(`click`,C,()=>h.onTabChange(`handoffs`)),q(e,t)};Y(ee,e=>{!a()&&n()!==`dashboard`&&n()!==`arena`?e(te):e(ne,-1)}),A(k),A(w),A(S);var re=z(S,2);yx(re,{get memory(){return i(),U(()=>i().selectedMemory)},get task(){return i(),U(()=>i().selectedTask)},get open(){return i(),U(()=>i().drawerOpen)},get onClose(){return U(()=>h.closeDrawer)},get onTaskUpdated(){return U(()=>h.handleTaskUpdated)},onTaskDeleted:()=>{a()&&H(l)?.loadTasks(a())}});var ie=z(re,2);Vx(ie,{get item(){return i(),U(()=>i().selectedReference)},get open(){return i(),U(()=>i().referenceDrawerOpen)},onClose:()=>h.toggleReferenceDrawer(!1)});var ae=z(ie,2);oS(ae,{get memory(){return i(),U(()=>i().memoryDrawerItem)},get open(){return i(),U(()=>i().memoryDrawerOpen)},onClose:()=>h.toggleMemoryDrawer(!1),get onSaved(){return U(()=>h.handleMemorySaved)},get onDeleted(){return U(()=>h.handleMemoryDeleted)}});var oe=z(ae,2);ES(oe,{get open(){return i(),U(()=>i().addTaskModalOpen)},get newTask(){return i(),U(()=>i().newTask)},onClose:()=>h.toggleAddTaskModal(!1),get onSave(){return U(()=>h.createTask)}});var se=z(oe,2);{let e=Yt(()=>a()||``);SS(se,{get repo(){return H(e)},get importTarget(){return i(),U(()=>i().bulkImportTarget)},get isOpen(){return i(),U(()=>i().bulkImportOpen)},$$events:{close:()=>h.toggleBulkImport(!1),success:()=>{i().bulkImportTarget===`memories`&&H(u)?.refresh(),i().bulkImportTarget===`tasks`&&a()&&H(l)?.loadTasks(a())}}})}aC(z(se,2),{get onRefresh(){return U(()=>h.onRefresh)}}),V(()=>T=Ki(w,1,`main-content`,null,T,{"sidebar-collapsed":r()})),q(e,x),Ge(),c()}fi(Yw,{target:document.getElementById(`app`)});
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-DHd85KEJ.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="/assets/index-CUg8rZCA.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
package/dist/dashboard/server.js
CHANGED
package/dist/mcp/server.js
CHANGED