@vheins/local-memory-mcp 0.19.3 → 0.19.4
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.
|
@@ -147,5 +147,5 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
147
147
|
`}}var tC={memories:`title,type,content,importance
|
|
148
148
|
Example Memory,fact,This is an example memory content,3`,tasks:`task_code,title,phase,description,status,priority
|
|
149
149
|
TSK-001,Example Task,Phase 1,Example task description,backlog,3`};function nC(e){let t=N(null),n=N([]),r=N([]),i=N(``),a=N(``),o=N(!1),s=N(!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=tC[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 Ro.bulkImportMemories(e.repo,t)).count:(await Ro.bulkImportTasks(e.repo,t)).count,Ho(`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 rC=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),iC=K(`<th class="svelte-lenod"> </th>`),aC=K(`<td class="svelte-lenod"> </td>`),oC=K(`<tr class="svelte-lenod"></tr>`),sC=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),cC=K(`<div class="error-msg flex items-center gap-2 svelte-lenod"><!> <span class="svelte-lenod"> </span></div>`),lC=K(`<div class="spinner svelte-lenod"></div> Importing...`,1),uC=K(`<!> Start Import`,1),dC=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 fC(e,t){rt(t,!1);let n=()=>F(H(d),`$file`,l),r=()=>F(H(f),`$csvData`,l),i=()=>F(H(p),`$headers`,l),a=()=>F(H(m),`$fileName`,l),o=()=>F(H(h),`$errorMsg`,l),s=()=>F(H(g),`$isSubmitting`,l),c=()=>F(H(_),`$composableIsOpen`,l),[l,u]=Et(),d=I(),f=I(),p=I(),m=I(),h=I(),g=I(),_=I(),v=I(),y=I(),b=I(),x=I(),S=I(),C=I(),w=I(),T=I(),E=I(),D=I(),O=I(),k=I(),ee=I(),te=Z(t,`repo`,8),ne=Z(t,`importTarget`,8,`memories`),re=Z(t,`isOpen`,12,!1),ie=Ya(),A=I();function ae(e){L(A,nC({repo:te(),importTarget:e,onSuccess:()=>ie(`success`),onClose:()=>{re(!1),ie(`close`)}}))}ae(ne()),ir(()=>W(ne()),()=>{ne()&&ae(ne())}),ir(()=>(H(A),W(re())),()=>{H(A).isOpen.set(re())}),ir(()=>H(A),()=>{wt(L(d,H(A).file),`$file`,l)}),ir(()=>H(A),()=>{wt(L(f,H(A).csvData),`$csvData`,l)}),ir(()=>H(A),()=>{wt(L(p,H(A).headers),`$headers`,l)}),ir(()=>H(A),()=>{wt(L(m,H(A).fileName),`$fileName`,l)}),ir(()=>H(A),()=>{wt(L(h,H(A).errorMsg),`$errorMsg`,l)}),ir(()=>H(A),()=>{wt(L(g,H(A).isSubmitting),`$isSubmitting`,l)}),ir(()=>H(A),()=>{wt(L(_,H(A).isOpen),`$composableIsOpen`,l)}),ir(()=>H(A),()=>{L(v,H(A).close)}),ir(()=>H(A),()=>{L(y,H(A).handleFileSelect)}),ir(()=>H(A),()=>{L(b,H(A).handleFileDrop)}),ir(()=>H(A),()=>{L(x,H(A).downloadExample)}),ir(()=>H(A),()=>{L(S,H(A).handleImport)}),ir(()=>H(A),()=>{L(C,H(A).setFile)}),ir(()=>H(A),()=>{L(w,H(A).setCsvData)}),ir(()=>n(),()=>{L(T,n())}),ir(()=>r(),()=>{L(E,r())}),ir(()=>i(),()=>{L(D,i())}),ir(()=>a(),()=>{L(O,a())}),ir(()=>o(),()=>{L(k,o())}),ir(()=>s(),()=>{L(ee,s())}),ar(),Ua();var oe=Ti(),se=z(oe),ce=e=>{var n=dC(),r=R(n),i=R(r),a=R(i),o=R(a);Q(R(o),{name:`upload-cloud`,size:18}),j(o);var s=B(o,2),c=R(s);j(s),j(a);var l=B(a,2);Q(R(l),{name:`x`,size:18,strokeWidth:2}),j(l),j(i);var u=B(i,2),d=R(u),f=R(d),p=e=>{var n=rC(),r=z(n),i=R(r),a=R(i);Q(R(a),{name:`file-up`,size:48,strokeWidth:1}),j(a);var o=B(a,6),s=B(R(o));j(o),j(i),j(r);var c=B(r,2),l=B(R(c),2),u=R(l);Q(u,{name:`download`,size:14,className:`mr-2`});var d=B(u);j(l),j(c),V(()=>J(d,` Download Example ${ne()===`memories`?`Memories`:`Tasks`} CSV`)),G(`change`,s,function(...e){H(y)?.apply(this,e)}),G(`dragover`,r,Ha(function(e){Ga.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=sC(),n=z(t),r=R(n),i=R(r);Q(R(i),{name:`file-type-2`,size:24}),j(i);var a=B(i,2),o=R(a),s=R(o,!0);j(o);var c=B(o,2),l=R(c);j(c),j(a),j(r);var u=B(r,2);j(n);var d=B(n,2),f=B(R(d),2),p=R(f),m=R(p),h=R(m);X(h,5,()=>H(D),e=>e,(e,t)=>{var n=iC(),r=R(n,!0);j(n),V(()=>J(r,H(t))),q(e,n)}),j(h),j(m);var g=B(m);X(g,7,()=>(H(E),U(()=>H(E).slice(0,5))),(e,t)=>`${t}-${JSON.stringify(e)}`,(e,t)=>{var n=oC();X(n,5,()=>H(D),e=>e,(e,n)=>{var r=aC(),i=R(r,!0);j(r),V(e=>J(i,e),[()=>(H(t),H(n),U(()=>H(t)[H(n).toLowerCase().replace(/[^a-z0-9_]/g,`_`)]||``))]),q(e,r)}),j(n),q(e,n)}),j(g),j(p),j(f),j(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=B(f,2),g=e=>{var t=cC(),n=R(t);Q(n,{name:`triangle-alert`,size:16});var r=B(n,2),i=R(r,!0);j(r),j(t),V(()=>J(i,H(k))),q(e,t)};Y(h,e=>{H(k)&&e(g)}),j(d),j(u);var _=B(u,2),te=R(_),re=B(te,2),ie=R(re),A=e=>{var t=lC();M(),q(e,t)},ae=e=>{var t=uC();Q(z(t),{name:`check`,size:16,className:`mr-2`}),M(),q(e,t)};Y(ie,e=>{H(ee)?e(A):e(ae,-1)}),j(re),j(_),j(r),j(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)}),Zi(3,r,()=>eC,()=>({duration:200,start:.95})),G(`click`,r,Va(function(e){Ga.call(this,t,e)})),Zi(3,n,()=>$S,()=>({duration:200})),G(`click`,n,function(...e){H(v)?.apply(this,e)}),q(e,n)};Y(se,e=>{c()&&e(ce)}),q(e,oe),it(),u()}var pC=K(`<option> </option>`),mC=K(`<option> </option>`),hC=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 gC(e,t){rt(t,!1);let n=Z(t,`open`,8,!1),r=Z(t,`newTask`,12),i=Z(t,`onClose`,8,()=>{}),a=Z(t,`onSave`,8,()=>{});function o(e){e.key===`Escape`&&i()()}Ua();var s=Ti();G(`keydown`,An,o);var c=z(s),l=e=>{var t=hC(),n=z(t),o=B(n,2),s=R(o),c=R(s);Q(R(c),{name:`clipboard-list`,size:14,strokeWidth:2.2}),j(c);var l=B(c,4);Q(R(l),{name:`x`,size:14,strokeWidth:2.5}),j(l),j(s);var u=B(s,2),d=R(u),f=R(d),p=B(R(f),2);Ta(p),j(f);var m=B(f,2),h=B(R(m),2);Ta(h),j(m),j(d);var g=B(d,2),_=R(g),v=B(R(_),3),y=R(v);j(v),j(_);var b=B(_,2);Ta(b),j(g);var x=B(g,2),S=B(R(x),2);Un(S),j(x);var C=B(x,2),w=R(C),T=B(R(w),2);X(T,4,()=>[`backlog`,`pending`,`in_progress`],e=>e,(e,t)=>{var n=pC(),r=R(n,!0);j(n);var i={};V(e=>{J(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>(W(Zl),U(()=>Zl(t)))]),q(e,n)}),j(T),j(w);var E=B(w,2),D=B(R(E),2);X(D,4,()=>[1,2,3,4,5],e=>e,(e,t)=>{var n=mC(),r=R(n,!0);j(n);var i={};V(e=>{J(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>(W(Ql),U(()=>Ql(t)))]),q(e,n)}),j(D),j(E),j(C),j(u);var O=B(u,2),k=R(O),ee=B(k,2);Q(R(ee),{name:`plus`,size:13,strokeWidth:2.5}),M(),j(ee),j(O),j(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)}),Fa(p,()=>r().task_code,e=>(r(r().task_code=e,!0),wr(()=>{}))),Fa(h,()=>r().phase,e=>(r(r().phase=e,!0),wr(()=>{}))),Fa(b,()=>r().title,e=>(r(r().title=e,!0),wr(()=>{}))),Fa(S,()=>r().description,e=>(r(r().description=e,!0),wr(()=>{}))),ma(T,()=>r().status,e=>(r(r().status=e,!0),wr(()=>{}))),ma(D,()=>r().priority,e=>(r(r().priority=e,!0),wr(()=>{}))),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),it()}var _C=K(`<span class="ref-total-badge svelte-w0wd5z"> </span>`),vC=K(`<button class="ref-clear-btn svelte-w0wd5z"><!></button>`),yC=K(`<button><!> <span> </span> <span class="ref-cat-count svelte-w0wd5z"> </span></button>`),bC=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>`),xC=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),SC=K(`<code class="ref-param-tag svelte-w0wd5z"> </code>`),CC=K(`<code class="ref-param-tag ref-param-more svelte-w0wd5z"> </code>`),wC=K(`<div class="ref-params svelte-w0wd5z"><!> <!></div>`),TC=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>`),EC=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),DC=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),OC=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>`),kC=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),AC=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),jC=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>`),MC=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>`),NC=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),PC=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>`),FC=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>`),IC=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>`),LC=K(`<!> <!> <!> <!> <!>`,1),RC=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 zC(e,t){rt(t,!1);let n=()=>F(p(),`$appState`,o),r=()=>F(m(),`$filteredTools`,o),i=()=>F(h(),`$filteredPrompts`,o),a=()=>F(g(),`$filteredResources`,o),[o,s]=Et(),c=I(),l=I(),u=I(),d=I(),f=Z(t,`handler`,8),p=Z(t,`appState`,8),m=Z(t,`filteredTools`,8),h=Z(t,`filteredPrompts`,8),g=Z(t,`filteredResources`,8);function _(e){return[{id:`all`,icon:`layers`,label:`All`,count:(e.capabilities?.tools?.length||0)+(e.capabilities?.prompts?.length||0)+(e.capabilities?.resources?.length||0)+v.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:v.length}]}let v=[{name:`DocuBook`,description:`AI-powered documentation generator that turns your codebase into beautiful, searchable docs.`,url:`https://www.docubook.pro/`,icon:`book-open`}];function y(e,t,n){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f().openReferenceDrawer(t,n))}ir(()=>n(),()=>{L(c,n())}),ir(()=>r(),()=>{L(l,r())}),ir(()=>i(),()=>{L(u,i())}),ir(()=>a(),()=>{L(d,a())}),ar(),Ua();var b=RC(),x=R(b),S=R(x),C=R(S),w=R(C);Q(w,{name:`book-open`,size:15,strokeWidth:1.75});var E=B(w,4),D=e=>{var t=_C(),n=R(t);j(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)}),j(C);var O=B(C,2),k=R(O);Q(R(k),{name:`search`,size:12,strokeWidth:2}),j(k);var ee=B(k,2);Ta(ee);var te=B(ee,2),ne=e=>{var t=vC();Q(R(t),{name:`x`,size:11,strokeWidth:2.5}),j(t),G(`click`,t,()=>f().setReferenceSearch(``)),q(e,t)};Y(te,e=>{H(c),U(()=>H(c).referenceSearch)&&e(ne)}),j(O),j(S),j(x);var re=B(x,2),ie=R(re);X(B(R(ie),2),1,()=>(H(c),U(()=>_(H(c)))),e=>e.id,(e,t)=>{var n=yC();let r;var i=R(n);Q(i,{get name(){return H(t),U(()=>H(t).icon)},size:13,strokeWidth:1.75});var a=B(i,2),o=R(a,!0);j(a);var s=B(a,2),l=R(s,!0);j(s),j(n),V(()=>{r=la(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)}),j(ie);var A=B(ie,2),ae=R(A),oe=e=>{q(e,bC())},se=e=>{var t=LC(),n=z(t),r=e=>{var t=EC(),n=z(t),r=R(n);Q(r,{name:`tool`,size:13,strokeWidth:1.75});var i=B(r,4),a=R(i,!0);j(i),j(n);var o=B(n,2);X(o,5,()=>H(l),e=>e.data.name,(e,t)=>{var n=TC(),r=R(n),i=R(r);Q(R(i),{name:`tool`,size:10,strokeWidth:2}),M(),j(i),j(r);var a=B(r,2),o=R(a,!0);j(a);var s=B(a,2),c=e=>{var n=xC(),r=R(n,!0);j(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=B(s,2),u=e=>{var n=wC(),r=R(n);X(r,1,()=>(H(t),U(()=>Object.entries(H(t).data.inputSchema.properties).slice(0,4))),([e])=>e,(e,t)=>{var n=un(()=>T(H(t),1));let r=()=>H(n)[0];var i=SC(),a=R(i,!0);j(i),V(()=>J(a,r())),q(e,i)});var i=B(r,2),a=e=>{var n=CC(),r=R(n);j(n),V(e=>J(r,`+${e??``}`),[()=>(H(t),U(()=>Object.keys(H(t).data.inputSchema.properties).length-4))]),q(e,n)},o=un(()=>(H(t),U(()=>Object.keys(H(t).data.inputSchema.properties).length>4)));Y(i,e=>{H(o)&&e(a)}),j(n),q(e,n)};Y(l,e=>{H(t),U(()=>H(t)?.data?.inputSchema?.properties)&&e(u)}),j(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=>y(e,`tool`,H(t).data)),q(e,n)}),j(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=B(n,2),a=e=>{var t=kC(),n=z(t),r=R(n);Q(r,{name:`sparkle`,size:13,strokeWidth:1.75});var i=B(r,4),a=R(i,!0);j(i),j(n);var o=B(n,2);X(o,5,()=>H(u),e=>e.data.name,(e,t)=>{var n=OC(),r=R(n),i=R(r);Q(R(i),{name:`sparkle`,size:10,strokeWidth:2}),M(),j(i),j(r);var a=B(r,2),o=R(a,!0);j(a);var s=B(a,2),c=e=>{var n=DC(),r=R(n,!0);j(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)}),j(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=>y(e,`prompt`,H(t).data)),q(e,n)}),j(o),V(()=>{da(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=B(i,2),s=e=>{var t=NC(),n=z(t),r=R(n);Q(r,{name:`database`,size:13,strokeWidth:1.75});var i=B(r,4),a=R(i,!0);j(i),j(n);var o=B(n,2);X(o,5,()=>H(d),e=>e.data.uri||e.data.name,(e,t)=>{var n=MC(),r=R(n),i=R(r);Q(R(i),{name:`database`,size:10,strokeWidth:2}),M(),j(i),j(r);var a=B(r,2),o=R(a,!0);j(a);var s=B(a,2),c=e=>{var n=AC(),r=R(n,!0);j(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=B(s,2),u=e=>{var n=jC(),r=R(n),i=R(r,!0);j(r),j(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)}),j(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=>y(e,`resource`,H(t).data)),q(e,n)}),j(o),V(()=>{da(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=B(o,2),m=e=>{var t=PC(),n=R(t);Q(n,{name:`search`,size:28,strokeWidth:1.25});var r=B(n,2),i=R(r);j(r),j(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=B(p,2),g=e=>{var t=IC(),n=R(t);Q(R(n),{name:`zap`,size:13,strokeWidth:1.75}),M(2),j(n);var r=B(n,2);X(r,5,()=>v,e=>e.name,(e,t)=>{var n=FC(),r=R(n);Q(R(r),{get name(){return H(t),U(()=>H(t).icon)},size:18,strokeWidth:1.5}),j(r);var i=B(r,2),a=R(i),o=R(a,!0);j(a);var s=B(a,2),c=R(s,!0);j(s),j(i),M(2),j(n),V(()=>{ka(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)}),j(r),j(t),q(e,t)};Y(h,e=>{H(c),U(()=>H(c).referenceFilter===`all`||H(c).referenceFilter===`ecosystem`)&&e(g)}),q(e,t)};Y(ae,e=>{H(c),U(()=>!H(c).capabilities)?e(oe):e(se,-1)}),j(A),j(re),j(b),Fa(ee,()=>n().referenceSearch,e=>Ot(p(),U(n).referenceSearch=e,U(n))),q(e,b),it(),s()}var BC=K(`<div class="popup-load-more svelte-x7gsaf"><!> <span class="svelte-x7gsaf">Loading older...</span></div>`),VC=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>`),HC=K(`<div class="popup-action-sub svelte-x7gsaf"> </div>`),UC=K(`<button class="popup-read-more svelte-x7gsaf"> </button>`),WC=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>`),GC=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),KC=K(`<div class="popup-date-header svelte-x7gsaf"><span class="svelte-x7gsaf"> </span></div> <!>`,1),qC=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),JC=K(`<button class="chat-fab svelte-x7gsaf" title="Open activity chat" aria-label="Open activity chat"><!></button>`);function YC(e,t){rt(t,!1);let n=()=>F(y,`$actionsPage`,c),r=()=>F(g,`$handler`,c),i=()=>F(v,`$actionsStore`,c),a=()=>F(no,`$currentRepo`,c),o=()=>F(wo,`$recentActionsTotalItems`,c),s=()=>F(_,`$groupedActions`,c),[c,l]=Et(),u=Z(t,`onRefresh`,8,()=>{}),d=I(!1),f=I(``),p=I(!1),m=I();async function h(e,t){let n=P(no);if(n)try{let r=await Ro.recentActions(n,e,25);t?Co.update(e=>[...e,...r.actions||[]]):Co.set(r.actions||[]),To.set(r.pagination?.page??e),wo.set(r.pagination?.totalItems??0)}catch(e){console.error(`Failed to load recent actions:`,e)}}let g=Tb(h),{groupedActions:_,recentActions:v,recentActionsPage:y}=g;Xa(()=>{let e=n();H(d)&&e<=1&&!r().isLoadingMore&&i().length>0&&g.scrollToBottom(H(m),`instant`)}),Ka(()=>()=>{Co.set([]),To.set(1)});function b(){L(d,!H(d)),H(d)&&(h(1),Xr().then(()=>g.scrollToBottom(H(m),`instant`)))}function x(e){e.key===`Escape`&&L(d,!1)}async function S(){let e=H(f).trim();if(!e||H(p))return;let t=P(no);if(t){L(p,!0);try{await au(e,t),L(f,``),await h(1),u()(),Xr().then(()=>g.scrollToBottom(H(m),`instant`))}catch(e){console.error(`Failed to create task:`,e)}finally{L(p,!1)}}}Ua();var C=Ti();G(`keydown`,An,x);var w=z(C),T=e=>{var t=Ti(),n=z(t),a=e=>{var t=qC(),n=z(t),a=B(n,2),c=R(a),l=R(c),u=R(l);Q(R(u),{name:`message-circle`,size:16,strokeWidth:2.2}),j(u);var h=B(u,2),_=B(R(h),2),v=R(_);j(_),j(h),j(l);var y=B(l,2);Q(R(y),{name:`x`,size:16,strokeWidth:2.5}),j(y),j(c);var b=B(c,2),x=R(b),C=e=>{var t=BC();Q(R(t),{name:`refresh-cw`,size:12,className:`animate-spin`}),M(2),j(t),q(e,t)};Y(x,e=>{r(),U(()=>r().isLoadingMore)&&e(C)});var w=B(x,2),T=e=>{var t=VC();Q(R(t),{name:`message-circle`,size:36,strokeWidth:1}),M(4),j(t),q(e,t)},E=e=>{var t=Ti();X(z(t),1,s,e=>e.date,(e,t)=>{var n=KC(),i=z(n),a=R(i),o=R(a,!0);j(a),j(i),X(B(i,2),1,()=>(H(t),U(()=>H(t).items)),e=>e.id,(e,t)=>{let n=dn(()=>(H(t),U(()=>g.getLabel(H(t))))),i=dn(()=>(H(t),U(()=>g.getConfig(H(t).action))));var a=GC(),o=z(a),s=R(o),c=R(s),l=R(c),u=R(l);Q(u,{get name(){return W(H(i)),U(()=>H(i).icon)},size:8,strokeWidth:2.5});var d=B(u,2),f=R(d,!0);j(d),j(l);var p=B(l,2),m=R(p,!0);j(p);var h=B(p,2),_=e=>{var t=HC(),r=R(t,!0);j(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(_)}),j(c),j(s),j(o);var v=B(o,2),y=e=>{let n=dn(()=>(H(t),U(()=>g.parseResponse(H(t).response)))),i=dn(()=>(r(),H(t),U(()=>r().expandedResponses.has(H(t).id))));var a=WC(),o=R(a),s=R(o),c=B(R(s),2);Xb(R(c),{get content(){return W(H(n)),U(()=>H(n).text)}}),j(c);var l=B(c,2),u=e=>{var n=UC(),r=R(n,!0);j(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)}),j(s),j(o),j(a),V(()=>da(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(()=>{da(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)}),j(b),Ba(b,e=>L(m,e),()=>H(m));var D=B(b,2),O=R(D),k=R(O);Ta(k);var ee=B(k,2);Q(R(ee),{name:`send`,size:14,strokeWidth:2}),j(ee),j(O),j(D),j(a),V(e=>{J(v,`${o()??``} events`),Ea(k,H(f)),k.disabled=H(p),ee.disabled=e},[()=>(H(f),H(p),U(()=>!H(f).trim()||H(p)))]),G(`click`,n,()=>L(d,!1)),G(`keydown`,n,e=>e.key===`Enter`&&L(d,!1)),G(`click`,y,()=>L(d,!1)),G(`input`,k,e=>L(f,e.currentTarget.value)),G(`keydown`,k,e=>e.key===`Enter`&&!e.shiftKey&&S()),G(`click`,ee,S),q(e,t)},c=e=>{var t=JC();Q(R(t),{name:`message-circle`,size:22,strokeWidth:2.2}),j(t),G(`click`,t,b),q(e,t)};Y(n,e=>{H(d)?e(a):e(c,-1)}),q(e,t)};Y(w,e=>{a()&&e(T)}),q(e,C),it(),l()}var XC=K(`<div class="error-banner svelte-owkwhr"> </div>`),ZC=K(`<div class="notice-banner svelte-owkwhr"> </div>`),QC=K(`<tr><td colspan="7" class="mem-td svelte-owkwhr"><div class="skeleton" style="height:20px;border-radius:6px;"></div></td></tr>`),$C=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>`),ew=K(`<span style="font-size:0.6rem;background:rgba(99,102,241,0.1);color:#6366f1;padding:1px 5px;border-radius:9999px;"> </span>`),tw=K(`<div style="margin-top:3px;display:flex;gap:4px;flex-wrap:wrap;"></div>`),nw=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>`),rw=K(`<button> </button>`),iw=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>`),aw=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 ow(e,t){rt(t,!1);let n=I(),r=I(),i=Z(t,`repo`,8,``),a=I([]),o=I(!1),s=I(``),c=I(``),l=I(``),u=I(``),d=I(``),f=I(`repo`),p=I(!1),m=I(!1),h=I(),g=I(1),_=I(0),v=I(1),y=I(null),b=I(!1);async function x(){if(i()){L(o,!0),L(s,``);try{let e=await Ro.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});L(a,e.standards||[]),L(_,e.pagination?.totalItems||0),L(v,e.pagination?.totalPages||1)}catch(e){L(s,e instanceof Error?e.message:String(e))}finally{L(o,!1)}}}function S(){L(g,1),x()}function C(e){e<1||e>H(v)||(L(g,e),x())}function w(){L(y,null),L(b,!0)}function T(e){L(y,e),L(b,!0)}function E(){L(b,!1),L(y,null)}function D(e){x()}function O(e){x()}async function k(e){if(await Bo(`Delete coding standard "${e.title}"?`))try{await Ro.deleteStandard(e.id),x()}catch(e){L(s,e instanceof Error?e.message:String(e))}}async function ee(){L(m,!0),L(s,``),L(c,``);try{let e=H(f)===`global`||H(f)===`all`?H(f):`repo`,t=await Ro.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){L(s,e instanceof Error?e.message:String(e))}finally{L(m,!1)}}async function te(e){let t=e.currentTarget,n=t.files?.[0];if(n){L(p,!0),L(s,``),L(c,``);try{let e=JSON.parse(await n.text()),t=Array.isArray(e?.standards)?e.standards.length:0,r=await Ro.importStandards({...e,refresh_vectors:t>0&&t<=500});x();let i=r.vectors_refreshed?``:` Vector refresh skipped for large import.`;L(c,`Imported ${r.imported} and updated ${r.updated} standard(s).${i}`)}catch(e){L(s,e instanceof Error?e.message:String(e))}finally{L(p,!1),t.value=``}}}Ka(()=>{x()}),ir(()=>W(i()),()=>{i()&&x()}),ir(()=>(H(g),H(v)),()=>{L(n,Math.max(1,Math.min(H(g)-2,H(v)-4)))}),ir(()=>(H(v),H(n)),()=>{L(r,Array.from({length:Math.min(5,H(v))},(e,t)=>H(n)+t))}),ar(),Ua();var ne=aw(),re=z(ne),ie=R(re),A=R(ie);Q(R(A),{name:`check`,size:16,strokeWidth:2}),M(2),j(A);var ae=B(A,2);Q(R(ae),{name:`plus`,size:14,strokeWidth:2}),M(),j(ae);var oe=B(ae,2),se=R(oe),ce=R(se);Q(ce,{name:`download`,size:14,strokeWidth:2});var le=B(ce);j(se);var ue=B(se,2),de=R(ue);Q(de,{name:`upload`,size:14,strokeWidth:2});var fe=B(de);j(ue);var pe=B(ue,2);Ba(pe,e=>L(h,e),()=>H(h)),j(oe);var me=B(oe,2),he=R(me);Ta(he);var ge=B(he,2);Ta(ge);var _e=B(ge,2);Ta(_e);var ve=B(_e,2),ye=R(ve);ye.value=ye.__value=`repo`;var be=B(ye);be.value=be.__value=`global`;var xe=B(be);xe.value=xe.__value=`all`,j(ve),j(me),j(ie);var Se=B(ie,2),Ce=R(Se),we=B(R(Ce),2),Te=R(we,!0);j(we),j(Ce);var Ee=B(Ce,2),De=B(R(Ee),2),Oe=R(De,!0);j(De),j(Ee);var ke=B(Ee,2),Ae=B(R(ke),2),je=R(Ae,!0);j(Ae),j(ke);var Me=B(ke,2),Ne=B(R(Me),2),Pe=R(Ne);j(Ne),j(Me),j(Se);var Fe=B(Se,2),Ie=e=>{var t=XC(),n=R(t,!0);j(t),V(()=>J(n,H(s))),q(e,t)};Y(Fe,e=>{H(s)&&e(Ie)});var Le=B(Fe,2),Re=e=>{var t=ZC(),n=R(t,!0);j(t),V(()=>J(n,H(c))),q(e,t)};Y(Le,e=>{H(c)&&e(Re)});var ze=B(Le,2),Be=R(ze),Ve=B(R(Be)),He=R(Ve),Ue=e=>{var t=Ti();X(z(t),0,()=>({length:5}),Ni,(e,t)=>{q(e,QC())}),q(e,t)},We=e=>{var t=$C(),n=R(t);Q(R(n),{name:`check`,size:22,strokeWidth:1.75}),M(4),j(n),j(t),q(e,t)},Ge=e=>{var n=Ti();X(z(n),1,()=>H(a),e=>e.id,(e,n)=>{var r=nw(),i=R(r),a=R(i),o=R(a,!0);j(a);var s=B(a,2),c=e=>{var t=tw();X(t,5,()=>(H(n),U(()=>H(n).tags.slice(0,4))),e=>e,(e,t)=>{var n=ew(),r=R(n,!0);j(n),V(()=>J(r,H(t))),q(e,n)}),j(t),q(e,t)};Y(s,e=>{H(n),U(()=>H(n).tags?.length)&&e(c)}),j(i);var l=B(i),u=R(l,!0);j(l);var d=B(l),f=R(d);j(d);var p=B(d),m=R(p,!0);j(p);var h=B(p),g=R(h,!0);j(h);var _=B(h),v=R(_);let y;var b=R(v,!0);j(v),j(_);var x=B(_),S=R(x);Q(R(S),{name:`edit`,size:13,strokeWidth:2}),j(S);var C=B(S,2);Q(R(C),{name:`trash`,size:13,strokeWidth:2}),j(C),j(x),j(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=la(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(ql),H(n),U(()=>ql(H(n).updated_at)))]),G(`click`,S,()=>T(H(n))),G(`click`,C,()=>k(H(n))),G(`click`,x,Va(function(e){Ga.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(He,e=>{H(o)?e(Ue):(H(a),U(()=>H(a).length===0)?e(We,1):e(Ge,-1))}),j(Ve),j(Be),j(ze);var Ke=B(ze,2),qe=e=>{var t=iw(),n=R(t),i=R(n);j(n);var a=B(n,2),o=R(a),s=B(o,2),c=B(s,2);X(c,1,()=>H(r),e=>e,(e,t)=>{var n=rw();let r;var i=R(n,!0);j(n),V(()=>{r=la(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=B(c,2),u=B(l,2);j(a),j(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(Ke,e=>{H(v)>1&&e(qe)}),j(re),cS(B(re,2),{drawerMode:`standard`,get standard(){return H(y)},get open(){return H(b)},onClose:E,onStandardUpdated:D,onStandardDeleted:O,get repo(){return i()}}),V(()=>{se.disabled=(H(m),H(a),U(()=>H(m)||H(a).length===0)),J(le,` ${H(m)?`Exporting...`:`Export`}`),ue.disabled=H(p),J(fe,` ${H(p)?`Importing...`:`Import`}`),J(Te,(H(a),U(()=>H(a).length))),J(Oe,H(f)===`repo`?`Repo + global`:H(f)===`global`?`Global only`:`All`),J(je,H(_)),J(Pe,`${H(g)??``} / ${H(v)??``}`)}),G(`click`,ae,w),G(`click`,se,ee),G(`click`,ue,()=>H(h)?.click()),G(`change`,pe,te),Fa(he,()=>H(l),e=>L(l,e)),G(`input`,he,S),Fa(ge,()=>H(u),e=>L(u,e)),G(`input`,ge,S),Fa(_e,()=>H(d),e=>L(d,e)),G(`input`,_e,S),ma(ve,()=>H(f),e=>L(f,e)),G(`change`,ve,S),q(e,ne),it()}var sw=K(`<div class="error-banner svelte-1ik2acm"> </div>`),cw=K(`<tr><td colspan="8" class="mem-td svelte-1ik2acm"><div class="skeleton" style="height:20px;border-radius:6px;"></div></td></tr>`),lw=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>`),uw=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>`),dw=K(`<div class="muted-state svelte-1ik2acm">Loading claims...</div>`),fw=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>`),pw=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>`),mw=K(`<div class="claim-list svelte-1ik2acm"></div>`),hw=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 gw(e,t){rt(t,!1);let n=I(),r=I(),i=Z(t,`repo`,8,``),a=I([]),o=I(!1),s=I(``),c=I(``),l=I(``),u=I([]),d=I(!1),f=I(null),p=I(null),m=I(!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()){L(d,!0);try{L(u,(await Ro.coordinationClaims({repo:i(),active_only:!0,pageSize:20})).claims||[])}catch(e){L(s,e instanceof Error?e.message:String(e))}finally{L(d,!1)}}}async function v(){if(i()){L(o,!0),L(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 Ro.callTool(`handoff-list`,e)),n=t?.handoffs?.columns||[];L(a,(t?.handoffs?.rows||[]).map(e=>g(n,e))),H(p)&&!H(a).some(e=>e.id===H(p)?.id)&&L(p,null)}catch(e){L(s,e instanceof Error?e.message:String(e))}finally{L(o,!1)}}}async function y(){await Promise.all([v(),_()])}function b(){L(p,null),L(m,!0)}function x(e){L(p,e),L(m,!0)}function S(){L(m,!1),L(p,null)}function C(){S(),y()}function w(){S(),y()}async function T(e){L(f,e.id),L(s,``);try{await Ro.releaseClaim({repo:i(),task_id:e.task_id,agent:e.agent}),await _()}catch(e){L(s,e instanceof Error?e.message:String(e))}finally{L(f,null)}}async function E(e){if(await Bo(`Expire handoff "${e.summary}"?`))try{await Ro.callTool(`handoff-update`,{id:e.id,status:`expired`,structured:!0}),y()}catch(e){L(s,e instanceof Error?e.message:String(e))}}Ka(()=>{y()}),ir(()=>W(i()),()=>{i()&&y()}),ir(()=>H(a),()=>{L(n,H(a).filter(e=>e.status===`pending`).length)}),ir(()=>H(a),()=>{L(r,H(a).filter(e=>e.status!==`pending`).length)}),ar(),Ua();var D=hw(),O=z(D),k=R(O),ee=R(k);Q(R(ee),{name:`git-branch`,size:16,strokeWidth:2}),M(2),j(ee);var te=B(ee,2);Q(R(te),{name:`plus`,size:14,strokeWidth:2}),M(),j(te);var ne=B(te,2),re=R(ne),ie=R(re);ie.value=ie.__value=``;var A=B(ie);A.value=A.__value=`pending`;var ae=B(A);ae.value=ae.__value=`accepted`;var oe=B(ae);oe.value=oe.__value=`rejected`;var se=B(oe);se.value=se.__value=`expired`,j(re);var ce=B(re,2);Ta(ce);var le=B(ce,2);Q(R(le),{name:`refresh-cw`,size:14,strokeWidth:2}),M(),j(le),j(ne),j(k);var ue=B(k,2),de=R(ue),fe=B(R(de),2),pe=R(fe,!0);j(fe),j(de);var me=B(de,2),he=B(R(me),2),ge=R(he,!0);j(he),j(me);var _e=B(me,2),ve=B(R(_e),2),ye=R(ve,!0);j(ve),j(_e);var be=B(_e,2),xe=B(R(be),2),Se=R(xe,!0);j(xe),j(be),j(ue);var Ce=B(ue,2),we=e=>{var t=sw(),n=R(t,!0);j(t),V(()=>J(n,H(s))),q(e,t)};Y(Ce,e=>{H(s)&&e(we)});var Te=B(Ce,2),Ee=R(Te),De=B(R(Ee)),Oe=R(De),ke=e=>{var t=Ti();X(z(t),0,()=>({length:5}),Ni,(e,t)=>{q(e,cw())}),q(e,t)},Ae=e=>{var t=lw(),n=R(t);Q(R(n),{name:`git-branch`,size:22,strokeWidth:1.75}),M(4),j(n),j(t),q(e,t)},je=e=>{var n=Ti();X(z(n),1,()=>H(a),e=>e.id,(e,n)=>{var r=uw(),i=R(r),a=R(i,!0);j(i);var o=B(i),s=R(o,!0);j(o);var c=B(o),l=R(c,!0);j(c);var u=B(c),d=R(u),f=R(d,!0);j(d),j(u);var p=B(u),m=R(p);let h;var g=R(m,!0);j(m),j(p);var _=B(p),v=R(_,!0);j(_);var y=B(_),b=R(y,!0);j(y);var S=B(y),C=R(S);Q(R(C),{name:`trash`,size:13,strokeWidth:2}),j(C),j(S),j(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=la(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(ql),H(n),U(()=>ql(H(n).created_at))),()=>(H(n),W(ql),U(()=>H(n).expires_at?ql(H(n).expires_at):`—`))]),G(`click`,C,()=>E(H(n))),G(`click`,S,Va(function(e){Ga.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(Oe,e=>{H(o)?e(ke):(H(a),U(()=>H(a).length===0)?e(Ae,1):e(je,-1))}),j(De),j(Ee),j(Te);var Me=B(Te,2),Ne=R(Me),Pe=B(R(Ne),2),Fe=R(Pe);j(Pe),j(Ne);var Ie=B(Ne,2),Le=e=>{q(e,dw())},Re=e=>{var t=fw();Q(R(t),{name:`check`,size:20,strokeWidth:1.75}),M(4),j(t),q(e,t)},ze=e=>{var t=mw();X(t,5,()=>H(u),e=>e.id,(e,t)=>{var n=pw(),r=R(n),i=R(r),a=R(i,!0);j(i);var o=B(i,2),s=R(o),c=R(s,!0);j(s);var l=B(s,2),u=R(l,!0);j(l);var d=B(l,2),p=R(d,!0);j(d),j(o),j(r);var m=B(r,2),h=R(m,!0);j(m),j(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(ql),H(t),U(()=>ql(H(t).claimed_at)))]),G(`click`,m,()=>T(H(t))),q(e,n)}),j(t),q(e,t)};Y(Ie,e=>{H(d)?e(Le):(H(u),U(()=>H(u).length===0)?e(Re,1):e(ze,-1))}),j(Me),j(O);var Be=B(O,2);{let e=dn(()=>H(p)?`handoff`:`new-handoff`);cS(Be,{get drawerMode(){return H(e)},get handoff(){return H(p)},get open(){return H(m)},onClose:S,onHandoffCreated:C,onHandoffUpdated:w,get repo(){return i()}})}V(()=>{J(pe,H(n)),J(ge,H(r)),J(ye,(H(u),U(()=>H(u).length))),J(Se,(H(a),U(()=>H(a).length))),J(Fe,`${(H(u),U(()=>H(u).length))??``} active`)}),G(`click`,te,b),ma(re,()=>H(c),e=>L(c,e)),G(`change`,re,v),Fa(ce,()=>H(l),e=>L(l,e)),G(`input`,ce,v),G(`click`,le,y),q(e,D),it()}var _w={nodeRadius:18,repulsionStrength:4e3,attractionStrength:.005,centeringStrength:.01,damping:.85,minVelocity:.1,iterations:120,margin:30};function vw(e,t,n){let r=t/2,i=n/2,a=Math.min(t,n)*.35,o=e.length;return e.map((e,t)=>{let n=2*Math.PI*t/o+Math.random()*.2,s=a*(.3+Math.random()*.7);return{...e,x:r+Math.cos(n)*s,y:i+Math.sin(n)*s,vx:0,vy:0,pinned:!1}})}function yw(e,t,n,r){let i={maxVisibleNodes:240,margin:48,nodeGap:54,minCanvasWidth:108,minCanvasHeight:108,...r},a=e.slice(0,i.maxVisibleNodes),o=Math.max(i.minCanvasWidth,t),s=Math.max(i.minCanvasHeight,n),c=Math.min(i.margin,Math.max(0,(Math.min(o,s)-36)/2)),l=Math.max(i.nodeGap,o-c*2),u=Math.max(i.nodeGap,s-c*2),d=Math.max(1,Math.floor(l/i.nodeGap)),f=Math.max(1,Math.ceil(a.length/d)),p=Math.min(i.nodeGap,u/f),m=Math.min(d,a.length||1),h=Math.max(18,(o-(m-1)*i.nodeGap)/2),g=Math.max(18,Math.max(c,(s-(f-1)*p)/2));return a.map((e,t)=>{let n=t%d,r=Math.floor(t/d);return{...e,x:h+n*i.nodeGap,y:g+r*p,vx:0,vy:0,pinned:!1}})}function bw(e,t,n,r,i){if(e.length===0)return e;let a={..._w,...i},o=new Map;for(let t of e)o.set(t.id,t),o.set(t.name,t);for(let i=0;i<a.iterations;i++){let s=1-i/a.iterations;for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++){let r=e[t],i=e[n],o=r.x-i.x,c=r.y-i.y,l=Math.hypot(o,c);l<1&&(l=1);let u=a.repulsionStrength/(l*l),d=o/l*u*s,f=c/l*u*s;r.pinned||(r.vx+=d,r.vy+=f),i.pinned||(i.vx-=d,i.vy-=f)}for(let e of t){let t=o.get(e.source),n=o.get(e.target);if(!t||!n)continue;let r=n.x-t.x,i=n.y-t.y,c=Math.hypot(r,i);if(c<1)continue;let l=a.attractionStrength*c*s,u=r/c*l,d=i/c*l;t.pinned||(t.vx+=u,t.vy+=d),n.pinned||(n.vx-=u,n.vy-=d)}let c=n/2,l=r/2;for(let t of e)t.pinned||(t.vx+=(c-t.x)*a.centeringStrength*s,t.vy+=(l-t.y)*a.centeringStrength*s);for(let t of e)t.pinned||(t.vx*=a.damping,t.vy*=a.damping,Math.abs(t.vx)<a.minVelocity&&Math.abs(t.vy)<a.minVelocity&&(t.vx=0,t.vy=0),t.x+=t.vx,t.y+=t.vy,t.x<a.margin&&(t.x=a.margin,t.vx=0),t.x>n-a.margin&&(t.x=n-a.margin,t.vx=0),t.y<a.margin&&(t.y=a.margin,t.vy=0),t.y>r-a.margin&&(t.y=r-a.margin,t.vy=0))}return e}var xw={person:`#22c55e`,place:`#3b82f6`,organization:`#f97316`,concept:`#a855f7`,unknown:`#6b7280`},Sw={person:`rgba(34,197,94,0.35)`,place:`rgba(59,130,246,0.35)`,organization:`rgba(249,115,22,0.35)`,concept:`rgba(168,85,247,0.35)`,unknown:`rgba(107,114,128,0.25)`};function Cw(e){return xw[e]??xw.unknown}function ww(e){return Sw[e]??Sw.unknown}function Tw(e,t){let n=e.replace(`#`,``),r=parseInt(n.length===3?n[0]+n[0]+n[1]+n[1]+n[2]+n[2]:n,16);return`rgb(${Math.min(255,(r>>16&255)+t)},${Math.min(255,(r>>8&255)+t)},${Math.min(255,(r&255)+t)})`}function Ew(e){let t=e.parentElement?.getBoundingClientRect(),n=t?t.width:800,r=t?t.height:600,i=window.devicePixelRatio||1;e.width=n*i,e.height=r*i,e.style.width=n+`px`,e.style.height=r+`px`;let a=e.getContext(`2d`);return a.scale(i,i),{width:n,height:r,dpr:i,ctx:a}}function Dw(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()}function Ow(e,t,n,r){e.strokeStyle=r?`rgba(255,255,255,0.03)`:`rgba(0,0,0,0.03)`,e.lineWidth=.5;for(let r=0;r<t;r+=30)e.beginPath(),e.moveTo(r,0),e.lineTo(r,n),e.stroke();for(let r=0;r<n;r+=30)e.beginPath(),e.moveTo(0,r),e.lineTo(t,r),e.stroke()}function kw(e,t,n,r,i,a){if(e.strokeStyle=i?`#f59e0b`:a?`rgba(148,163,184,0.4)`:`rgba(100,116,139,0.35)`,e.lineWidth=i?2.5:1.5,e.beginPath(),e.moveTo(n.x,n.y),e.lineTo(r.x,r.y),e.stroke(),t.relation_type){let i=(n.x+r.x)/2,o=(n.y+r.y)/2,s=t.relation_type;e.font=`9px system-ui,sans-serif`,e.textAlign=`center`,e.textBaseline=`bottom`;let c=e.measureText(s).width;e.fillStyle=a?`rgba(10,14,26,0.8)`:`rgba(240,244,255,0.85)`,e.fillRect(i-c/2-3,o-10,c+6,14),e.fillStyle=a?`rgba(148,163,184,0.8)`:`rgba(71,85,105,0.8)`,e.fillText(s,i,o)}}function Aw(e,t,n,r,i){let a=Cw(t.type),o=ww(t.type),s=n||r?22:18;(n||r)&&(e.shadowColor=o,e.shadowBlur=20);let c=e.createRadialGradient(t.x-4,t.y-4,2,t.x,t.y,s);if(c.addColorStop(0,i?Tw(a,40):Tw(a,60)),c.addColorStop(1,a),e.fillStyle=c,e.beginPath(),e.arc(t.x,t.y,s,0,Math.PI*2),e.fill(),e.shadowBlur=0,e.strokeStyle=r?`#f59e0b`:i?`rgba(255,255,255,0.15)`:`rgba(255,255,255,0.6)`,e.lineWidth=r?2.5:1.5,e.stroke(),t.memoryCount&&t.memoryCount>0&&(e.fillStyle=i?`#1e293b`:`#ffffff`,e.beginPath(),e.arc(t.x+s-6,t.y-s+6,9,0,Math.PI*2),e.fill(),e.fillStyle=Cw(t.type),e.font=`bold 8px system-ui,sans-serif`,e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(String(t.memoryCount),t.x+s-6,t.y-s+6)),e.fillStyle=i?`#e2e8f0`:`#1e293b`,e.font=`bold 11px system-ui,sans-serif`,e.textAlign=`center`,e.textBaseline=`top`,e.fillText(t.name,t.x,t.y+s+4),t.description){e.fillStyle=i?`rgba(148,163,184,0.6)`:`rgba(100,116,139,0.6)`,e.font=`8px system-ui,sans-serif`;let n=t.description.length>18?t.description.slice(0,18)+`...`:t.description;e.fillText(n,t.x,t.y+s+16)}}function jw(e,t,n,r,i,a){let o=[t.name,`Type: ${t.type}`,t.description??``,t.memoryCount==null?``:`Memories: ${t.memoryCount}`].filter(Boolean);e.font=`11px system-ui,sans-serif`;let s=Math.max(...o.map(t=>e.measureText(t).width))+20,c=o.length*16+20,l=n.x+12,u=n.y-12;l+s>r&&(l=n.x-s-12),u+c>i&&(u=i-c-4),u<4&&(u=4),e.fillStyle=a?`rgba(2,6,23,0.92)`:`rgba(255,255,255,0.95)`,e.shadowColor=`rgba(0,0,0,0.2)`,e.shadowBlur=12,Dw(e,l,u,s,c,8),e.fill(),e.shadowBlur=0,e.strokeStyle=a?`rgba(148,163,184,0.2)`:`rgba(0,0,0,0.08)`,e.lineWidth=1,Dw(e,l,u,s,c,8),e.stroke(),e.textAlign=`left`,e.textBaseline=`top`;for(let t=0;t<o.length;t++)e.font=t===0?`bold 12px system-ui,sans-serif`:`10px system-ui,sans-serif`,e.fillStyle=a?`#e2e8f0`:`#1e293b`,e.fillText(o[t],l+10,u+10+t*16)}function Mw(e,t,n,r){let i=`+${n} hidden`;e.font=`bold 11px system-ui,sans-serif`,e.textAlign=`right`,e.textBaseline=`top`;let a=e.measureText(i).width+20,o=Math.max(8,t-a-12);e.fillStyle=r?`rgba(15,23,42,0.88)`:`rgba(255,255,255,0.9)`,Dw(e,o,12,a,26,999),e.fill(),e.strokeStyle=r?`rgba(148,163,184,0.28)`:`rgba(59,130,246,0.22)`,e.lineWidth=1,Dw(e,o,12,a,26,999),e.stroke(),e.fillStyle=r?`#bfdbfe`:`#1d4ed8`,e.fillText(i,o+a-10,19)}function Nw(e,t,n,r,i,a){let o=document.documentElement.classList.contains(`dark`);e.clearRect(0,0,t,n),e.fillStyle=o?`#0a0e1a`:`#f0f4ff`,e.fillRect(0,0,t,n),Ow(e,t,n,o);let s=new Map;for(let e of r)s.set(e.id,e),s.set(e.name,e);for(let t of i){let n=s.get(t.source),r=s.get(t.target);!n||!r||kw(e,t,n,r,a.selectedEdge===t,o)}for(let t of r)Aw(e,t,a.hoveredNode===t,a.selectedNode===t,o);a.hiddenNodeCount&&a.hiddenNodeCount>0&&Mw(e,t,a.hiddenNodeCount,o),a.showTooltip&&a.selectedNode&&jw(e,a.selectedNode,a.tooltipPos,t,n,o)}var Pw=K(`<div class="kg-relation-hint svelte-fsq8sk" role="status" aria-live="polite"><!> <span> <!></span></div>`);function Fw(e,t){let n=Z(t,`visibleNodeCount`,8),r=Z(t,`totalNodeCount`,8),i=Z(t,`hiddenNodeCount`,8);var a=Pw(),o=R(a);Q(o,{name:`info`,size:14,strokeWidth:1.75});var s=B(o,2),c=R(s),l=B(c),u=e=>{var t=wi();V(()=>J(t,`${i()??``} entities are hidden from the canvas and marked in the overview badge to keep the dashboard responsive.`)),q(e,t)};Y(l,e=>{i()>0&&e(u)}),j(s),j(a),V(()=>J(c,`Showing a capped overview of ${n()??``} of ${r()??``} entities because this graph has no relations. Create
|
|
150
|
-
relations or run a relation backfill to enable the connected force graph. `)),q(e,a)}var Iw=K(`<div class="kg-error svelte-1ysja8i"><!> </div>`),Lw=K(`<div class="kg-toolbar svelte-1ysja8i"><div class="kg-toolbar-left svelte-1ysja8i"><span class="section-label" style="font-size:0.68rem;"><!> Knowledge Graph</span> <span class="kg-stats svelte-1ysja8i"> </span></div> <div class="kg-toolbar-right svelte-1ysja8i"><button class="btn btn-ghost btn-sm"><!> Add Entity</button> <button class="btn btn-ghost btn-sm"><!> Add Relation</button> <button class="btn btn-ghost btn-sm"><!> Refresh</button></div></div> <!> <!>`,1);function Rw(e,t){let n=Z(t,`nodeCount`,8),r=Z(t,`edgeCount`,8),i=Z(t,`isLoading`,8),a=Z(t,`errorMsg`,8),o=Z(t,`isZeroEdgeOverview`,8),s=Z(t,`visibleNodeCount`,8),c=Z(t,`hiddenNodeCount`,8),l=Z(t,`onAddEntity`,8),u=Z(t,`onAddRelation`,8),d=Z(t,`onRefresh`,8);var f=Lw(),p=z(f),m=R(p),h=R(m);Q(R(h),{name:`share-2`,size:12,strokeWidth:1.75}),M(),j(h);var g=B(h,2),_=R(g);j(g),j(m);var v=B(m,2),y=R(v);Q(R(y),{name:`plus`,size:12,strokeWidth:2}),M(),j(y);var b=B(y,2);Q(R(b),{name:`link`,size:12,strokeWidth:2}),M(),j(b);var x=B(b,2),S=R(x);{let e=dn(()=>i()?`animate-spin`:``);Q(S,{name:`refresh-cw`,size:12,strokeWidth:2,get className(){return H(e)}})}M(),j(x),j(v),j(p);var C=B(p,2),w=e=>{var t=Iw(),n=R(t);Q(n,{name:`triangle-alert`,size:14,strokeWidth:1.75});var r=B(n);j(t),V(()=>J(r,` ${a()??``}`)),q(e,t)};Y(C,e=>{a()&&e(w)});var T=B(C,2),E=e=>{Fw(e,{get visibleNodeCount(){return s()},get totalNodeCount(){return n()},get hiddenNodeCount(){return c()}})};Y(T,e=>{o()&&e(E)}),V(()=>{J(_,`${n()??``} nodes · ${r()??``} edges`),x.disabled=i()}),G(`click`,y,function(...e){l()?.apply(this,e)}),G(`click`,b,function(...e){u()?.apply(this,e)}),G(`click`,x,function(...e){d()?.apply(this,e)}),q(e,f)}var zw=K(`<div class="kg-container svelte-1esn54r"><!></div>`);function Bw(e,t){var n=zw();Hi(R(n),t,`default`,{},null),j(n),q(e,n)}var Vw=K(`<p>Are you sure you want to delete entity <strong> </strong>?</p>`),Hw=K(`<p>Are you sure you want to delete this relation?</p> <p style="font-size:0.8rem;color:var(--color-text-muted);margin-top:4px;"> </p>`,1),Uw=K(`<div class="modal-header svelte-18jfbxu"><!> <span>Confirm Delete</span></div> <div class="modal-body svelte-18jfbxu"><!></div> <div class="modal-footer svelte-18jfbxu"><button class="btn btn-ghost btn-sm">Cancel</button> <button class="btn btn-sm" style="background:var(--color-danger);color:white;border:none;">Delete</button></div>`,1),Ww=K(`<div class="modal-header svelte-18jfbxu"><!> <span>Add Entity</span></div> <div class="modal-body svelte-18jfbxu"><div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="entity-name">Name *</label> <input id="entity-name" class="form-input" type="text" placeholder="Entity name"/></div> <div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="entity-type">Type</label> <select id="entity-type" class="form-select"><option>Person</option><option>Place</option><option>Organization</option><option>Concept</option><option>Unknown</option></select></div> <div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="entity-desc">Description</label> <textarea id="entity-desc" class="form-textarea" placeholder="Optional description" rows="2"></textarea></div></div> <div class="modal-footer svelte-18jfbxu"><button class="btn btn-ghost btn-sm">Cancel</button> <button class="btn btn-primary btn-sm">Create</button></div>`,1),Gw=K(`<option> </option>`),Kw=K(`<option> </option>`),qw=K(`<div class="modal-header svelte-18jfbxu"><!> <span>Add Relation</span></div> <div class="modal-body svelte-18jfbxu"><div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="rel-from">From Entity *</label> <select id="rel-from" class="form-select"><option>Select entity...</option><!></select></div> <div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="rel-to">To Entity *</label> <select id="rel-to" class="form-select"><option>Select entity...</option><!></select></div> <div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="rel-type">Relation Type *</label> <input id="rel-type" class="form-input" type="text" placeholder="e.g., knows, located_in, works_at"/></div></div> <div class="modal-footer svelte-18jfbxu"><button class="btn btn-ghost btn-sm">Cancel</button> <button class="btn btn-primary btn-sm">Create</button></div>`,1),Jw=K(`<div class="modal-overlay svelte-18jfbxu" role="button" tabindex="0" aria-label="Close"></div> <div class="modal-panel animate-fade-in-scale svelte-18jfbxu" role="dialog"><!></div>`,1);function Yw(e,t){rt(t,!1);let n=Ya(),r=Z(t,`mode`,8,`addEntity`),i=Z(t,`show`,8,!1),a=Z(t,`entityNodes`,24,()=>[]),o=Z(t,`deleteTarget`,8,null),s=I(``),c=I(`concept`),l=I(``),u=I(``),d=I(``),f=I(``);function p(){n(`close`)}function m(){n(`close`)}function h(){H(s).trim()&&(n(`addEntity`,{name:H(s).trim(),type:H(c),description:H(l).trim()||void 0}),L(s,``),L(c,`concept`),L(l,``))}function g(){!H(u)||!H(d)||!H(f).trim()||(n(`addRelation`,{from_entity:H(u),to_entity:H(d),relation_type:H(f).trim()}),L(u,``),L(d,``),L(f,``))}function _(){n(`delete`)}Ua();var v=Ti(),y=z(v),b=e=>{var t=Jw(),n=z(t),i=B(n,2),v=R(i),y=e=>{var t=Uw(),n=z(t);Q(R(n),{name:`trash`,size:14,strokeWidth:1.75}),M(2),j(n);var r=B(n,2),i=R(r),a=e=>{var t=Vw(),n=B(R(t)),r=R(n,!0);j(n),M(),j(t),V(()=>J(r,(W(o()),U(()=>o().name)))),q(e,t)},s=e=>{var t=Hw(),n=B(z(t),2),r=R(n,!0);j(n),V(()=>J(r,(W(o()),U(()=>o()?.name)))),q(e,t)};Y(i,e=>{W(o()),U(()=>o()?.type===`node`)?e(a):e(s,-1)}),j(r);var c=B(r,2),l=R(c),u=B(l,2);j(c),G(`click`,l,m),G(`click`,u,_),q(e,t)},b=e=>{var t=Ww(),n=z(t);Q(R(n),{name:`plus`,size:14,strokeWidth:1.75}),M(2),j(n);var r=B(n,2),i=R(r),a=B(R(i),2);Ta(a),j(i);var o=B(i,2),u=B(R(o),2),d=R(u);d.value=d.__value=`person`;var f=B(d);f.value=f.__value=`place`;var p=B(f);p.value=p.__value=`organization`;var g=B(p);g.value=g.__value=`concept`;var _=B(g);_.value=_.__value=`unknown`,j(u),j(o);var v=B(o,2),y=B(R(v),2);Un(y),j(v),j(r);var b=B(r,2),x=R(b),S=B(x,2);j(b),V(e=>S.disabled=e,[()=>(H(s),U(()=>!H(s).trim()))]),Fa(a,()=>H(s),e=>L(s,e)),ma(u,()=>H(c),e=>L(c,e)),Fa(y,()=>H(l),e=>L(l,e)),G(`click`,x,m),G(`click`,S,h),q(e,t)},x=e=>{var t=qw(),n=z(t);Q(R(n),{name:`link`,size:14,strokeWidth:1.75}),M(2),j(n);var r=B(n,2),i=R(r),o=B(R(i),2),s=R(o);s.value=s.__value=``,X(B(s),1,a,e=>e.name,(e,t)=>{var n=Gw(),r=R(n,!0);j(n);var i={};V(()=>{J(r,(H(t),U(()=>H(t).name))),i!==(i=(H(t),U(()=>H(t).name)))&&(n.value=(n.__value=(H(t),U(()=>H(t).name)))??``)}),q(e,n)}),j(o),j(i);var c=B(i,2),l=B(R(c),2),p=R(l);p.value=p.__value=``,X(B(p),1,a,e=>e.name,(e,t)=>{var n=Kw(),r=R(n,!0);j(n);var i={};V(()=>{J(r,(H(t),U(()=>H(t).name))),i!==(i=(H(t),U(()=>H(t).name)))&&(n.value=(n.__value=(H(t),U(()=>H(t).name)))??``)}),q(e,n)}),j(l),j(c);var h=B(c,2),_=B(R(h),2);Ta(_),j(h),j(r);var v=B(r,2),y=R(v),b=B(y,2);j(v),V(e=>b.disabled=e,[()=>(H(u),H(d),H(f),U(()=>!H(u)||!H(d)||!H(f).trim()))]),ma(o,()=>H(u),e=>L(u,e)),ma(l,()=>H(d),e=>L(d,e)),Fa(_,()=>H(f),e=>L(f,e)),G(`click`,y,m),G(`click`,b,g),q(e,t)};Y(v,e=>{r()===`deleteConfirm`?e(y):r()===`addEntity`?e(b,1):r()===`addRelation`&&e(x,2)}),j(i),G(`click`,n,p),q(e,t)};Y(y,e=>{i()&&e(b)}),q(e,v),it()}var Xw=K(`<div class="kg-loading"><div class="animate-spin" style="width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;"></div> <span>Loading graph...</span></div>`),Zw=K(`<div class="kg-empty"><!> <div>No knowledge graph data found</div> <div class="text-xs" style="color:var(--color-text-muted);">Add entities and relations to build your graph.</div></div>`),Qw=K(`<div class="kg-canvas-wrap"><canvas tabindex="0"></canvas></div>`),$w=K(`<!> <!> <!> <!> <!>`,1);function eT(e,t){rt(t,!1);let n=Z(t,`repo`,8),r=I([]),i=I([]),a=I(!0),o=I(``),s=I(``),c=I(!1),l=I(0),u=I([]),d=[],f=new Map;function p(e){return f.get(e)}let m=I(),h,g=800,_=600,v={hoveredNode:null,selectedNode:null,selectedEdge:null,tooltipPos:{x:0,y:0},showTooltip:!1},y=I(!1),b=I(!1),x=I(!1),S=I(null),C=new Map;function w(e){let t=new Map;for(let n of e)t.set(n.id,n),t.set(n.name,n);return t}function T(){h&&Nw(h,g,_,H(u),d,{...v,hiddenNodeCount:H(l)})}async function E(e=!1){if(!n())return;let t=n();if(!(!e&&H(s)===t&&H(u).length>0)){L(a,!0),L(o,``),D();try{let e=await Ro.kgGraph(t);if(n()!==t)return;L(r,e.nodes||[]),L(i,e.edges||[]),L(s,t),O()}catch(e){if(n()!==t)return;L(s,``),L(o,e instanceof Error?e.message:`Failed to load graph`)}finally{n()===t&&L(a,!1)}}}function D(){L(r,[]),L(i,[]),L(u,[]),d=[],f=C,L(c,!1),L(l,0),v.selectedNode=null,v.selectedEdge=null,v.hoveredNode=null,v.showTooltip=!1,T()}function O(){if(h){if(L(c,H(i).length===0&&H(r).length>0),H(c)){let e=yw(H(r).map(e=>({id:e.id,name:e.name,type:e.type,description:e.description,memoryCount:e.memoryCount,x:0,y:0,vx:0,vy:0,pinned:!1})),g,_);L(u,e),L(l,Math.max(0,H(r).length-e.length)),d=[],f=w(H(u)),T();return}L(u,vw(H(r).map(e=>({id:e.id,name:e.name,type:e.type,description:e.description,memoryCount:e.memoryCount,x:0,y:0,vx:0,vy:0,pinned:!1})),g,_)),d=H(i).map(e=>({source:e.source,target:e.target,relation_type:e.relation_type})),L(l,0),f=w(H(u)),bw(H(u),d,g,_),T()}}function k(){if(!H(m))return;let e=Ew(H(m));if(g=e.width,_=e.height,h=e.ctx,H(u).length>0){if(H(c)){O();return}bw(H(u),d,g,_),T()}}function ee(e){let t=H(m).getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;for(let e of H(u)){let t=n-e.x,i=r-e.y;if(t*t+i*i<=484){v.selectedNode=e,v.selectedEdge=null,v.tooltipPos={x:n,y:r},v.showTooltip=!0,T();return}}for(let e of d){let t=p(e.source),i=p(e.target);if(!(!t||!i)&&ie(n,r,t.x,t.y,i.x,i.y)<10){v.selectedEdge=e,v.selectedNode=null,v.showTooltip=!1,T();return}}v.selectedNode=null,v.selectedEdge=null,v.showTooltip=!1,T()}function te(e){let t=H(m).getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;for(let e of H(u)){let t=n-e.x,i=r-e.y;if(t*t+i*i<=484){L(S,{type:`node`,name:e.name}),L(x,!0);return}}}function ne(e){e.preventDefault();let t=H(m).getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;for(let e of d){let t=p(e.source),i=p(e.target);if(!(!t||!i)&&ie(n,r,t.x,t.y,i.x,i.y)<10){L(S,{type:`edge`,name:`${e.source} → ${e.target} (${e.relation_type})`,edge:e}),v.selectedEdge=e,v.selectedNode=null,L(x,!0),T();return}}}function re(e){let t=H(m).getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top,i=null;for(let e of H(u)){let t=n-e.x,a=r-e.y;if(t*t+a*a<=484){i=e;break}}i!==v.hoveredNode&&(v.hoveredNode=i,Sn(m,H(m).style.cursor=i?`pointer`:`default`),T())}function ie(e,t,n,r,i,a){let o=i-n,s=a-r,c=o*o+s*s;if(c===0)return Math.hypot(e-n,t-r);let l=((e-n)*o+(t-r)*s)/c;return l=Math.max(0,Math.min(1,l)),Math.hypot(e-(n+l*o),t-(r+l*s))}async function A(e){let{name:t,type:r,description:i}=e.detail;try{await Ro.kgCreateEntity({name:t,type:r,description:i,repo:n()}),L(y,!1),await E(!0)}catch(e){L(o,e instanceof Error?e.message:`Failed to create entity`)}}async function ae(e){let{from_entity:t,to_entity:r,relation_type:i}=e.detail;try{await Ro.kgCreateRelation({from_entity:t,to_entity:r,relation_type:i,repo:n()}),L(b,!1),await E(!0)}catch(e){L(o,e instanceof Error?e.message:`Failed to create relation`)}}async function oe(){if(H(S))try{if(H(S).type===`node`)await Ro.kgDeleteEntity(H(S).name);else if(H(S).type===`edge`){let e=H(S).edge;await Ro.kgDeleteRelation({from_entity:e.source,to_entity:e.target,relation_type:e.relation_type})}L(x,!1),L(S,null),v.selectedEdge=null,v.selectedNode=null,v.showTooltip=!1,await E(!0)}catch(e){L(o,e instanceof Error?e.message:`Failed to delete`)}}function se(){L(x,!1),L(S,null)}function ce(e){e.key===`Escape`&&(v.showTooltip=!1,v.selectedNode=null,v.selectedEdge=null,L(x,!1),L(y,!1),L(b,!1),T())}let le=null;Ka(()=>{if(H(m)){let e=Ew(H(m));g=e.width,_=e.height,h=e.ctx}n()&&E(),le=new ResizeObserver(()=>k()),H(m)?.parentElement&&le.observe(H(m).parentElement)}),qa(()=>{le?.disconnect()}),ir(()=>(W(n()),H(m),H(s),U),()=>{n()&&H(m)&&H(s)!==n()&&U(()=>E())}),ar(),Ua(),G(`keydown`,An,ce),Bw(e,{children:(e,t)=>{var n=$w(),s=z(n);Rw(s,{get nodeCount(){return H(r),U(()=>H(r).length)},get edgeCount(){return H(i),U(()=>H(i).length)},get isLoading(){return H(a)},get errorMsg(){return H(o)},get isZeroEdgeOverview(){return H(c)},get visibleNodeCount(){return H(u),U(()=>H(u).length)},get hiddenNodeCount(){return H(l)},onAddEntity:()=>L(y,!0),onAddRelation:()=>L(b,!0),onRefresh:()=>E(!0)});var d=B(s,2),f=e=>{q(e,Xw())},p=e=>{var t=Zw();Q(R(t),{name:`share-2`,size:32,strokeWidth:1.25,className:``}),M(4),j(t),q(e,t)},h=e=>{var t=Qw(),n=R(t);Ba(n,e=>L(m,e),()=>H(m)),j(t),V(()=>ka(n,`aria-label`,(H(c),H(u),H(r),U(()=>H(c)?`Knowledge Graph zero-relation overview showing ${H(u).length} of ${H(r).length} entities`:`Knowledge Graph visualization`)))),G(`click`,n,ee),G(`dblclick`,n,te),G(`contextmenu`,n,ne),G(`mousemove`,n,re),q(e,t)};Y(d,e=>{H(a)?e(f):(H(u),U(()=>H(u).length===0)?e(p,1):e(h,-1))});var g=B(d,2);Yw(g,{mode:`addEntity`,get show(){return H(y)},$$events:{addEntity:A,close:()=>L(y,!1)}});var _=B(g,2);Yw(_,{mode:`addRelation`,get show(){return H(b)},get entityNodes(){return H(u)},$$events:{addRelation:ae,close:()=>L(b,!1)}}),Yw(B(_,2),{mode:`deleteConfirm`,get show(){return H(x)},get deleteTarget(){return H(S)},$$events:{delete:oe,close:se}}),q(e,n)},$$slots:{default:!0}}),it()}var tT={backlog:`#64748b`,pending:`#0ea5e9`,in_progress:`#a855f7`,blocked:`#ef4444`,completed:`#10b981`,canceled:`#94a3b8`},nT={backlog:`backlog`,pending:`pending`,in_progress:`in_progress`,blocked:`blocked`,completed:`completed`,canceled:`canceled`},rT=[`#06b6d4`,`#f59e0b`,`#ec4899`,`#10b981`,`#3b82f6`,`#f97316`,`#14b8a6`,`#e11d48`,`#8b5cf6`,`#84cc16`],iT=16,aT=22,oT=28,sT=new Set([`in_progress`,`pending`]),cT=34,lT=54,uT=28,dT=58,fT=42;function pT(e,t,n){return Math.min(n,Math.max(t,e))}function mT(e,t){let n=Math.max(1,e.w-cT*2),r=Math.max(1,e.h-lT-uT),i=pT(Math.floor(n/dT)+1,1,3),a=Math.max(1,Math.floor(r/fT)+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+cT+s*l,y:e.y+lT+c*u}}var hT=[`male_nurse`,`female_nurse`,`staff1`,`staff2`];function gT(e){return e%2==0?`wheelchair`:`stretcher`}function _T(e){return hT[(e>>>4)%hT.length]}function vT(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t}function yT(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return rT[t%rT.length]}function bT(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 xT(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=nT[t.status]??`pending`;if(!r.has(e))continue;let n=r.get(e);n.length<iT&&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-aT*2,o=r.h-aT-oT,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+aT+n*l+l/2,y:r.y+oT+a*u+u/2})})}return i}function ST(e,t,n,r,i){let a=bT(i.canvasWidth,i.canvasHeight),o=xT(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=>sT.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=mT(a.find(e=>e.id===`burnout`)||s,t);if(g=n.x,_=n.y,u?.state!==`burnout`&&!T){let t=vT(e),n=u?.x??d,r=u?.y??f;T={phase:`pickup`,vehicle:gT(t),helperVariant:_T(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:yT(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 CT(e){return e?.structuredContent??null}function wT(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 TT(){let e=N({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=P(to).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([Ro.tasks({repo:e,status:`in_progress`,pageSize:10}),Ro.tasks({repo:e,status:`pending`,pageSize:8}),Ro.tasks({repo:e,status:`blocked`,pageSize:4}),Ro.coordinationClaims({repo:e,active_only:!0,pageSize:50}),Ro.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=CT(d.value),n=t?.handoffs?.columns??[],r=t?.handoffs?.rows??[];o.push(...r.map(t=>wT(n,t,e)))}});let s=Array.from(new Map(i.map(e=>[e.id,e])).values());e.update(e=>({...e,scene:ST(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 ET=85,DT=50,OT=6,kT=[2800,5e3],AT=[600,1600],jT=100,MT=800,NT=600;function PT(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 FT(e,t){let[n,r,i]=PT(e);return`rgb(${Math.min(255,n+t)},${Math.min(255,r+t)},${Math.min(255,i+t)})`}function IT(e,t){let[n,r,i]=PT(e);return`rgb(${Math.max(0,n-t)},${Math.max(0,r-t)},${Math.max(0,i-t)})`}function LT(e,t){let[n,r,i]=PT(e);return`rgba(${n},${r},${i},${t})`}function RT(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t}function zT(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 BT=[`#1a0a00`,`#2d1a00`,`#0f0f0f`,`#4a2d00`,`#8B4513`,`#d4a800`,`#c0392b`,`#7b2d8b`,`#1a3a5c`,`#2d4a1a`],VT=[`#f5c89a`,`#e8a870`,`#d4875a`,`#c06840`,`#8B5e3c`,`#6b3d28`],HT=[`#1e3a5f`,`#2d4a1a`,`#3d2a1a`,`#2a1a3d`,`#1a3d3d`,`#3d1a2a`,`#2a2a3d`],UT={male_nurse:`#1e6e9e`,female_nurse:`#2d8e6e`,staff1:`#5a3e8a`,staff2:`#8a5a3e`},WT={male_nurse:`#1a0a00`,female_nurse:`#4a2d00`,staff1:`#0f0f0f`,staff2:`#2d1a00`},GT={male_nurse:`#e8a870`,female_nurse:`#f5c89a`,staff1:`#d4875a`,staff2:`#c06840`},KT=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=bT(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=AT[0]+Math.random()*(AT[1]-AT[0]),a=kT[0]+Math.random()*(kT[1]-kT[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<OT)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`?DT:ET,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>=MT&&(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/jT;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*jT*.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>=NT&&(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=bT(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,LT(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=LT(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)),zT(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=zT(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=zT(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=(zT(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+zT(n,1)*40;for(let i=t+u;i<t+r;i+=80+zT(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=LT(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=zT(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)zT(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=LT(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=LT(o,n?.25:.18),$(e,l,u,c,16,5),e.fill(),e.strokeStyle=LT(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=mT(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=RT(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=FT(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=tT[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,FT(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,(tT[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=UT[r],c=WT[r],l=GT[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,FT(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/NT)}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=RT(s||``),u=BT[l%BT.length]||`#000`,d=VT[(l>>>6)%VT.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=RT(s||``),h=BT[m%BT.length]||`#000`,g=HT[(m>>>3)%HT.length]||`#1e3a5f`,_=VT[(m>>>6)%VT.length]||`#f5c89a`,v=m%5,y=FT(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=IT(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=FT(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,FT(_,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=LT(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=LT(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=LT(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=IT(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=FT(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())}}},qT=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>`),JT=K(`<span class="badge error svelte-1pykpun"><!> Error</span>`),YT=K(`<span class="badge live svelte-1pykpun"><span class="pulse-dot svelte-1pykpun"></span> Live · <strong> </strong> <strong> </strong> <!></span>`),XT=K(`<div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Repos</span> <span class="tip-repos svelte-1pykpun"> </span></div>`),ZT=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>`),QT=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>`),$T=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 eE(e,t){rt(t,!1);let n=()=>F(p,`$arena`,i),r=()=>F(Qa,`$theme`,i),[i,a]=Et(),o=I(),s=I(),c=I(),l=I(null),u=I(null),d=I(null),f=I(null),p=TT();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),L(u,{canvasWidth:e,canvasHeight:t}),H(l)||(L(l,new KT(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){L(d,null),L(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)&&(L(d,c),H(l).setHovered(H(d))),L(f,H(d)?{x:e.clientX-t.left+14,y:e.clientY-t.top-10}:null)}function g(){L(d,null),L(f,null),H(l)?.setHovered(null)}Ka(()=>{let e=setTimeout(()=>{m(),H(u)&&p.start(H(u))},60),t=new ResizeObserver(()=>m());return t.observe(H(c)),()=>{clearTimeout(e),t.disconnect()}}),qa(()=>{p.stop(),H(l)?.stop()}),ir(()=>(H(l),n(),H(u),r()),()=>{H(l)&&n().scene&&H(u)&&H(l).update(n().scene,H(u),r()===`dark`)}),ir(()=>(H(d),n()),()=>{L(o,H(d)&&n().scene?n().scene.agents.get(H(d))??null:null)}),ar(),Ua();var _=$T(),v=R(_),y=R(v),b=R(y);Q(R(b),{name:`cpu`,size:16,strokeWidth:1.75}),j(b),M(2),j(y);var x=B(y,2),S=R(x),C=e=>{q(e,qT())},w=e=>{var t=JT();Q(R(t),{name:`alert-circle`,size:11}),M(),j(t),q(e,t)},T=e=>{var t=YT(),r=B(R(t),2),i=R(r,!0);j(r);var a=B(r),o=B(a),s=R(o,!0);j(o);var c=B(o),l=B(c),u=e=>{var t=wi();V(()=>J(t,` · ${(n(),U(()=>n().repoCount))??``} repos`)),q(e,t)};Y(l,e=>{n(),U(()=>n().repoCount>1)&&e(u)}),j(t),V(()=>{J(i,(n(),U(()=>n().scene.agents.size))),J(a,` ${(n(),U(()=>n().scene.agents.size===1?`agent`:`agents`))??``}
|
|
151
|
-
· `),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)))}),j(x),j(v);var E=B(v,2),D=R(E);Ba(D,e=>L(s,e),()=>H(s));var O=B(D,2),k=e=>{var t=ZT(),n=R(t),r=R(n),i=B(r);j(n);var a=B(n,2),s=B(R(a)),c=R(s,!0);j(s),j(a);var l=B(a,2),u=B(R(l),2),d=R(u,!0);j(u),j(l);var p=B(l,2),m=B(R(p)),h=R(m,!0);j(m),j(p);var g=B(p,2),_=e=>{var t=XT(),n=B(R(t),2),r=R(n,!0);j(n),j(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(_)}),j(t),V(e=>{da(t,`left:${(H(f),U(()=>H(f).x))??``}px;top:${(H(f),U(()=>H(f).y))??``}px`),da(r,`background:${(H(o),U(()=>H(o).color))??``}`),J(i,` ${(H(o),U(()=>H(o).name))??``}`),J(c,(H(o),U(()=>H(o).role||`—`))),la(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=B(O,2),te=e=>{var t=QT();Q(R(t),{name:`users`,size:30,strokeWidth:1.2}),M(4),j(t),q(e,t)};Y(ee,e=>{n(),U(()=>n().scene&&n().scene.agents.size===0&&!n().loading)&&e(te)}),j(E),Ba(E,e=>L(c,e),()=>H(c)),M(2),j(_),V(()=>da(D,`cursor:${H(d)?`pointer`:`default`}`)),G(`mousemove`,D,h),G(`mouseleave`,D,g),q(e,_),it(),a()}var tE=K(`<div class="repo-focus svelte-1eglegg"><!> <span> </span></div>`),nE=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>`),rE=K(`<div class="mini-card svelte-1eglegg"><div class="mini-value svelte-1eglegg"> </div> <div class="mini-label svelte-1eglegg"> </div></div>`),iE=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>`),aE=K(`<div class="empty-state svelte-1eglegg">No repository activity yet.</div>`),oE=K(`<span class="stat-chip stale svelte-1eglegg"> </span>`),sE=K(`<span class="stat-chip stale svelte-1eglegg"> </span>`),cE=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>`),lE=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>`),uE=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 dE(e,t){rt(t,!1);let n=()=>F(so,`$globalDashboardStats`,s),r=()=>F(no,`$currentRepo`,s),i=()=>F(d,`$summaryCards`,s),a=()=>F(f,`$coordinationCards`,s),o=()=>F(p,`$throughputCards`,s),[s,c]=Et(),l=I(),u=I(),d=bt(so,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=bt(so,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=bt(lo,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:Jl(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}ir(()=>n(),()=>{L(l,(n()?.repos??[]).slice(0,8))}),ir(()=>(r(),H(l)),()=>{L(u,r()?H(l).find(e=>e.repo===r()):null)}),ar(),Ua();var h=uE(),g=R(h),_=R(g),v=B(R(_),2),y=e=>{var t=tE(),n=R(t);Q(n,{name:`pin`,size:12,strokeWidth:2});var i=B(n,2),a=R(i);j(i),j(t),V(()=>J(a,`Focused repo: ${r()??``}`)),q(e,t)};Y(v,e=>{H(u)&&e(y)}),j(_);var b=B(_,2);X(b,5,i,e=>e.label,(e,t)=>{var n=nE(),r=R(n);Q(R(r),{get name(){return H(t),U(()=>H(t).icon)},size:14,strokeWidth:1.9}),j(r);var i=B(r,2),a=R(i,!0);j(i);var o=B(i,2),s=R(o,!0);j(o),j(n),V(()=>{da(n,`background:${(H(t),U(()=>H(t).tint))??``};border-color:${(H(t),U(()=>H(t).tint))??``};`),da(r,`color:${(H(t),U(()=>H(t).color))??``};`),da(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)}),j(b),j(g);var x=B(g,2),S=R(x),C=B(R(S),2);X(C,5,a,e=>e.label,(e,t)=>{var n=rE(),r=R(n),i=R(r,!0);j(r);var a=B(r,2),o=R(a,!0);j(a),j(n),V(()=>{da(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)}),j(C),j(S);var w=B(S,2),T=B(R(w),2);X(T,5,o,e=>e.label,(e,t)=>{var n=iE(),r=R(n);Q(R(r),{get name(){return H(t),U(()=>H(t).icon)},size:12,strokeWidth:2}),j(r);var i=B(r,2),a=R(i,!0);j(i);var o=B(i,2),s=R(o,!0);j(o),j(n),V(()=>{da(r,`color:${(H(t),U(()=>H(t).color))??``};`),da(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)}),j(T),j(w),j(x);var E=B(x,2),D=B(R(E),2),O=e=>{q(e,aE())},k=e=>{var t=lE();X(B(R(t),2),1,()=>H(l),e=>e.repo,(e,t)=>{var n=cE();let i;var a=R(n),o=R(a),s=R(o,!0);j(o);var c=B(o,2),l=R(c);j(c),j(a);var u=B(a,2),d=R(u,!0);j(u);var f=B(u,2),p=R(f),h=R(p);j(p);var g=B(p,2),_=R(g);j(g);var v=B(g,2),y=R(v);j(v);var b=B(v,2),x=R(b);j(b),j(f);var S=B(f,2),C=R(S),w=R(C);j(C);var T=B(C,2),E=R(T);j(T);var D=B(T,2),O=e=>{var n=oE(),r=R(n);j(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=B(D,2),ee=e=>{var n=sE(),r=R(n);j(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)}),j(S);var te=B(S,2),ne=R(te,!0);j(te),j(n),V((e,a)=>{i=la(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(ql),U(()=>H(t).lastActivity?ql(H(t).lastActivity):`—`))]),q(e,n)}),j(t),q(e,t)};Y(D,e=>{H(l),U(()=>H(l).length===0)?e(O):e(k,-1)}),j(E),j(h),q(e,h),it(),c()}var fE=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),pE=K(`<div class="empty-state animate-fade-in svelte-1m88iwd"><div class="empty-state-icon animate-float svelte-1m88iwd"><!></div> <div class="empty-state-title svelte-1m88iwd">No Repository Selected</div> <div class="empty-state-text svelte-1m88iwd">Select a repository from the sidebar to get started.</div></div>`),mE=K(`<div class="glass card hover-glow card-body"><div class="flex items-center justify-between card-section-title"><div class="section-label">Selected Repo Pulse</div> <div class="repo-badge svelte-1m88iwd"> </div></div> <div class="repo-pulse-grid svelte-1m88iwd" style="display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px;"><div class="glass card card-body"><div class="section-label card-section-title">Memory Overview</div> <!></div> <div class="glass card card-body"><div class="section-label card-section-title">Task Overview</div> <!></div></div></div> <!>`,1),hE=K(`<div class="glass card hover-glow card-body"><div class="section-label card-section-title">Per-Repository Pulse</div> <div class="muted-text svelte-1m88iwd">Select a repository from the sidebar to inspect repo-specific memory, task, and execution metrics.</div></div>`),gE=K(`<div style="display:grid;grid-template-columns:1fr;gap:12px;align-items:start;" class="dashboard-grid svelte-1m88iwd"><!> <div class="flex flex-col" style="gap:12px;"><!></div></div>`),_E=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>`),vE=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>`),yE=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>`),bE=K(`<div class="arena-fullwidth svelte-1m88iwd"><!></div>`),xE=K(`<div class="tabs-wrap"><div class="tab-nav" style="display:inline-flex;" role="tablist"><button id="tab-activity" role="tab"><!> <span>Activity</span></button> <button id="tab-memories" role="tab"><!> <span>Memories</span></button> <button id="tab-tasks" role="tab"><!> <span>Tasks</span></button> <button id="tab-handoffs" role="tab"><!> <span>Handoffs</span></button> <button id="tab-knowledge-graph" role="tab"><!> <span>Knowledge Graph</span></button></div></div> <!> <!> <!> <!> <!> <!> <!> <!> <!>`,1),SE=K(`<div class="app-layout"><!> <div><!> <!> <div id="dashboardShell" class="dashboard-shell" aria-live="polite"><!></div></div></div> <!> <!> <!> <!> <!> <!>`,1);function CE(e,t){rt(t,!1);let n=()=>F(eo,`$activeTab`,s),r=()=>F(y,`$sidebarCollapsed`,s),i=()=>F(h,`$appState`,s),a=()=>F(no,`$currentRepo`,s),o=()=>F(wo,`$recentActionsTotalItems`,s),[s,c]=Et(),l=I(),u=I(),d=I(``),f=I(!1);async function p(){let e=H(d).trim();if(!e||H(f))return;let t=P(no);if(t){L(f,!0);try{await au(e,t),L(d,``),await m.onRefresh()}catch(e){console.error(`Failed to create task from chat:`,e)}finally{L(f,!1)}}}let m=Ko({get kanbanBoard(){return H(l)},get memoryList(){return H(u)}}),h={subscribe:m.subscribe,set:m.set,update:m.update},{filteredTools:g,filteredPrompts:_,filteredResources:v,sidebarCollapsed:y}=m;Ka(async()=>{Fo(),await m.loadRepos(),await m.loadHealth(),await m.loadData()}),ir(()=>(n(),Ro),()=>{n()===`reference`&&(P(m).capabilities||Ro.capabilities().then(e=>m.update(t=>({...t,capabilities:e}))).catch(e=>console.error(`Failed to load capabilities:`,e)))}),ar(),Ua();var b=SE();G(`keydown`,An,function(...e){m.onKeyDown?.apply(this,e)});var x=z(b),S=R(x);Nu(S,{get onRepoSelect(){return U(()=>m.onRepoSelect)}});var C=B(S,2);let w;var T=R(C);qu(T,{get onRefresh(){return U(()=>m.onRefresh)},get onToggleMobileMenu(){return U(()=>m.toggleMobileMenu)},get onEcosystem(){return U(()=>m.onEcosystemClick)}});var E=B(T,2),D=e=>{var t=fE(),n=z(t),r=B(n,2);Nu(R(r),{get onRepoSelect(){return U(()=>m.onRepoSelect)}}),j(r),G(`click`,n,()=>m.toggleMobileMenu()),G(`keydown`,n,e=>e.key===`Escape`&&m.toggleMobileMenu()),q(e,t)};Y(E,e=>{i(),U(()=>i().mobileMenuOpen)&&e(D)});var O=B(E,2),k=R(O),ee=e=>{var t=pE(),n=R(t);Q(R(n),{name:`brain`,size:32,strokeWidth:1.5}),j(n),M(4),j(t),q(e,t)},te=e=>{var t=xE(),r=z(t),i=R(r),s=R(i);let c;Q(R(s),{name:`activity`,size:14,strokeWidth:1.75}),M(2),j(s);var y=B(s,2);let b;Q(R(y),{name:`brain`,size:14,strokeWidth:1.75}),M(2),j(y);var x=B(y,2);let S;Q(R(x),{name:`clipboard-list`,size:14,strokeWidth:1.75}),M(2),j(x);var C=B(x,2);let w;Q(R(C),{name:`git-branch`,size:14,strokeWidth:1.75}),M(2),j(C);var T=B(C,2);let E;Q(R(T),{name:`share-2`,size:14,strokeWidth:1.75}),M(2),j(T),j(i),j(r);var D=B(r,2),O=e=>{var t=gE(),n=R(t);dE(n,{});var r=B(n,2),i=R(r),o=e=>{var t=mE(),n=z(t),r=R(n),i=B(R(r),2),o=R(i,!0);j(i),j(r);var s=B(r,2),c=R(s);Md(B(R(c),2),{}),j(c);var l=B(c,2);Rd(B(R(l),2),{}),j(l),j(s),j(n),ib(B(n,2),{}),V(()=>J(o,a())),q(e,t)},s=e=>{q(e,hE())};Y(i,e=>{a()?e(o):e(s,-1)}),j(r),j(t),q(e,t)};Y(D,e=>{n()===`dashboard`&&e(O)});var k=B(D,2),ee=e=>{var t=_E(),n=R(t),r=R(n),i=R(r);Q(R(i),{name:`activity`,size:18,strokeWidth:2.2}),j(i);var a=B(i,2),s=B(R(a),2),c=R(s);j(s),j(a),j(r),j(n);var l=B(n,2);ax(l,{get onLoadPage(){return U(()=>m.loadRecentActions)}});var u=B(l,2),h=R(u),g=R(h);Ta(g);var _=B(g,2);Q(R(_),{name:`send`,size:16,strokeWidth:2}),j(_),j(h),j(u),j(t),V(e=>{J(c,`${o()??``} events tracked`),Ea(g,H(d)),g.disabled=H(f),_.disabled=e},[()=>(H(d),H(f),U(()=>!H(d).trim()||H(f)))]),G(`input`,g,e=>L(d,e.currentTarget.value)),G(`keydown`,g,e=>e.key===`Enter`&&!e.shiftKey&&p()),G(`click`,_,p),q(e,t)};Y(k,e=>{n()===`activity`&&e(ee)});var te=B(k,2),ne=e=>{var t=vE(),n=R(t);Q(R(n),{name:`brain`,size:14,strokeWidth:1.75}),M(2),j(n),Ba(wb(B(n,2),{get onMemoryClick(){return U(()=>m.openMemoryDrawer)},get onNewMemory(){return U(()=>m.openNewMemoryDrawer)},onBulkImport:()=>m.openBulkImport(`memories`),$$legacy:!0}),e=>L(u,e),()=>H(u)),j(t),q(e,t)};Y(te,e=>{n()===`memories`&&e(ne)});var re=B(te,2),ie=e=>{var t=yE(),n=R(t),r=R(n);Q(R(r),{name:`columns`,size:14,strokeWidth:1.75}),M(2),j(r),Ba(wd(B(r,2),{get onTaskClick(){return U(()=>m.openTaskDrawer)},onAddTask:()=>m.toggleAddTaskModal(!0),onBulkImport:()=>m.openBulkImport(`tasks`),$$legacy:!0}),e=>L(l,e),()=>H(l)),j(n),j(t),q(e,t)};Y(re,e=>{n()===`tasks`&&e(ie)});var A=B(re,2),ae=e=>{{let t=dn(()=>a()||``);ow(e,{get repo(){return H(t)}})}};Y(A,e=>{n()===`standards`&&e(ae)});var oe=B(A,2),se=e=>{{let t=dn(()=>a()||``);gw(e,{get repo(){return H(t)}})}};Y(oe,e=>{n()===`handoffs`&&e(se)});var ce=B(oe,2),le=e=>{{let t=dn(()=>a()||``);eT(e,{get repo(){return H(t)}})}};Y(ce,e=>{n()===`knowledge-graph`&&e(le)});var ue=B(ce,2),de=e=>{var t=bE();eE(R(t),{}),j(t),q(e,t)};Y(ue,e=>{n()===`arena`&&e(de)});var fe=B(ue,2),pe=e=>{zC(e,{get handler(){return m},get appState(){return h},get filteredTools(){return g},get filteredPrompts(){return _},get filteredResources(){return v}})};Y(fe,e=>{n()===`reference`&&e(pe)}),V(()=>{c=la(s,1,`tab-btn`,null,c,{active:n()===`activity`}),ka(s,`aria-selected`,n()===`activity`),b=la(y,1,`tab-btn`,null,b,{active:n()===`memories`}),ka(y,`aria-selected`,n()===`memories`),S=la(x,1,`tab-btn`,null,S,{active:n()===`tasks`}),ka(x,`aria-selected`,n()===`tasks`),w=la(C,1,`tab-btn`,null,w,{active:n()===`handoffs`}),ka(C,`aria-selected`,n()===`handoffs`),E=la(T,1,`tab-btn`,null,E,{active:n()===`knowledge-graph`}),ka(T,`aria-selected`,n()===`knowledge-graph`)}),G(`click`,s,()=>m.onTabChange(`activity`)),G(`click`,y,()=>m.onTabChange(`memories`)),G(`click`,x,()=>m.onTabChange(`tasks`)),G(`click`,C,()=>m.onTabChange(`handoffs`)),G(`click`,T,()=>m.onTabChange(`knowledge-graph`)),q(e,t)};Y(k,e=>{!a()&&n()!==`dashboard`&&n()!==`arena`?e(ee):e(te,-1)}),j(O),j(C),j(x);var ne=B(x,2);{let e=dn(()=>(i(),U(()=>i().selectedMemory?`memory`:`task`)));cS(ne,{get drawerMode(){return H(e)},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(()=>m.closeDrawer)},get onTaskUpdated(){return U(()=>m.handleTaskUpdated)},onTaskDeleted:()=>{a()&&H(l)?.loadTasks(a())}})}var re=B(ne,2);AS(re,{get item(){return i(),U(()=>i().selectedReference)},get open(){return i(),U(()=>i().referenceDrawerOpen)},onClose:()=>m.toggleReferenceDrawer(!1)});var ie=B(re,2);XS(ie,{get memory(){return i(),U(()=>i().memoryDrawerItem)},get open(){return i(),U(()=>i().memoryDrawerOpen)},onClose:()=>m.toggleMemoryDrawer(!1),get onSaved(){return U(()=>m.handleMemorySaved)},get onDeleted(){return U(()=>m.handleMemoryDeleted)}});var A=B(ie,2);gC(A,{get open(){return i(),U(()=>i().addTaskModalOpen)},get newTask(){return i(),U(()=>i().newTask)},onClose:()=>m.toggleAddTaskModal(!1),get onSave(){return U(()=>m.createTask)}});var ae=B(A,2);{let e=dn(()=>a()||``);fC(ae,{get repo(){return H(e)},get importTarget(){return i(),U(()=>i().bulkImportTarget)},get isOpen(){return i(),U(()=>i().bulkImportOpen)},$$events:{close:()=>m.toggleBulkImport(!1),success:()=>{i().bulkImportTarget===`memories`&&H(u)?.refresh(),i().bulkImportTarget===`tasks`&&a()&&H(l)?.loadTasks(a())}}})}YC(B(ae,2),{get onRefresh(){return U(()=>m.onRefresh)}}),V(()=>w=la(C,1,`main-content`,null,w,{"sidebar-collapsed":r()})),q(e,b),it(),c()}Oi(CE,{target:document.getElementById(`app`)});
|
|
150
|
+
relations or run a relation backfill to enable the connected force graph. `)),q(e,a)}var Iw=K(`<div class="kg-error svelte-1ysja8i"><!> </div>`),Lw=K(`<div class="kg-toolbar svelte-1ysja8i"><div class="kg-toolbar-left svelte-1ysja8i"><span class="section-label" style="font-size:0.68rem;"><!> Knowledge Graph</span> <span class="kg-stats svelte-1ysja8i"> </span></div> <div class="kg-toolbar-right svelte-1ysja8i"><button class="btn btn-ghost btn-sm"><!> Add Entity</button> <button class="btn btn-ghost btn-sm"><!> Add Relation</button> <button class="btn btn-ghost btn-sm"><!> Refresh</button></div></div> <!> <!>`,1);function Rw(e,t){let n=Z(t,`nodeCount`,8),r=Z(t,`edgeCount`,8),i=Z(t,`isLoading`,8),a=Z(t,`errorMsg`,8),o=Z(t,`isZeroEdgeOverview`,8),s=Z(t,`visibleNodeCount`,8),c=Z(t,`hiddenNodeCount`,8),l=Z(t,`onAddEntity`,8),u=Z(t,`onAddRelation`,8),d=Z(t,`onRefresh`,8);var f=Lw(),p=z(f),m=R(p),h=R(m);Q(R(h),{name:`share-2`,size:12,strokeWidth:1.75}),M(),j(h);var g=B(h,2),_=R(g);j(g),j(m);var v=B(m,2),y=R(v);Q(R(y),{name:`plus`,size:12,strokeWidth:2}),M(),j(y);var b=B(y,2);Q(R(b),{name:`link`,size:12,strokeWidth:2}),M(),j(b);var x=B(b,2),S=R(x);{let e=dn(()=>i()?`animate-spin`:``);Q(S,{name:`refresh-cw`,size:12,strokeWidth:2,get className(){return H(e)}})}M(),j(x),j(v),j(p);var C=B(p,2),w=e=>{var t=Iw(),n=R(t);Q(n,{name:`triangle-alert`,size:14,strokeWidth:1.75});var r=B(n);j(t),V(()=>J(r,` ${a()??``}`)),q(e,t)};Y(C,e=>{a()&&e(w)});var T=B(C,2),E=e=>{Fw(e,{get visibleNodeCount(){return s()},get totalNodeCount(){return n()},get hiddenNodeCount(){return c()}})};Y(T,e=>{o()&&e(E)}),V(()=>{J(_,`${n()??``} nodes · ${r()??``} edges`),x.disabled=i()}),G(`click`,y,function(...e){l()?.apply(this,e)}),G(`click`,b,function(...e){u()?.apply(this,e)}),G(`click`,x,function(...e){d()?.apply(this,e)}),q(e,f)}var zw=K(`<div class="kg-container svelte-1esn54r"><!></div>`);function Bw(e,t){var n=zw();Hi(R(n),t,`default`,{},null),j(n),q(e,n)}var Vw=K(`<p>Are you sure you want to delete entity <strong> </strong>?</p>`),Hw=K(`<p>Are you sure you want to delete this relation?</p> <p style="font-size:0.8rem;color:var(--color-text-muted);margin-top:4px;"> </p>`,1),Uw=K(`<div class="modal-header svelte-18jfbxu"><!> <span>Confirm Delete</span></div> <div class="modal-body svelte-18jfbxu"><!></div> <div class="modal-footer svelte-18jfbxu"><button class="btn btn-ghost btn-sm">Cancel</button> <button class="btn btn-sm" style="background:var(--color-danger);color:white;border:none;">Delete</button></div>`,1),Ww=K(`<div class="modal-header svelte-18jfbxu"><!> <span>Add Entity</span></div> <div class="modal-body svelte-18jfbxu"><div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="entity-name">Name *</label> <input id="entity-name" class="form-input" type="text" placeholder="Entity name"/></div> <div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="entity-type">Type</label> <select id="entity-type" class="form-select"><option>Person</option><option>Place</option><option>Organization</option><option>Concept</option><option>Unknown</option></select></div> <div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="entity-desc">Description</label> <textarea id="entity-desc" class="form-textarea" placeholder="Optional description" rows="2"></textarea></div></div> <div class="modal-footer svelte-18jfbxu"><button class="btn btn-ghost btn-sm">Cancel</button> <button class="btn btn-primary btn-sm">Create</button></div>`,1),Gw=K(`<option> </option>`),Kw=K(`<option> </option>`),qw=K(`<div class="modal-header svelte-18jfbxu"><!> <span>Add Relation</span></div> <div class="modal-body svelte-18jfbxu"><div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="rel-from">From Entity *</label> <select id="rel-from" class="form-select"><option>Select entity...</option><!></select></div> <div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="rel-to">To Entity *</label> <select id="rel-to" class="form-select"><option>Select entity...</option><!></select></div> <div class="form-group svelte-18jfbxu"><label class="form-label svelte-18jfbxu" for="rel-type">Relation Type *</label> <input id="rel-type" class="form-input" type="text" placeholder="e.g., knows, located_in, works_at"/></div></div> <div class="modal-footer svelte-18jfbxu"><button class="btn btn-ghost btn-sm">Cancel</button> <button class="btn btn-primary btn-sm">Create</button></div>`,1),Jw=K(`<div class="modal-overlay svelte-18jfbxu" role="button" tabindex="0" aria-label="Close"></div> <div class="modal-panel animate-fade-in-scale svelte-18jfbxu" role="dialog"><!></div>`,1);function Yw(e,t){rt(t,!1);let n=Ya(),r=Z(t,`mode`,8,`addEntity`),i=Z(t,`show`,8,!1),a=Z(t,`entityNodes`,24,()=>[]),o=Z(t,`deleteTarget`,8,null),s=I(``),c=I(`concept`),l=I(``),u=I(``),d=I(``),f=I(``);function p(){n(`close`)}function m(){n(`close`)}function h(){H(s).trim()&&(n(`addEntity`,{name:H(s).trim(),type:H(c),description:H(l).trim()||void 0}),L(s,``),L(c,`concept`),L(l,``))}function g(){!H(u)||!H(d)||!H(f).trim()||(n(`addRelation`,{from_entity:H(u),to_entity:H(d),relation_type:H(f).trim()}),L(u,``),L(d,``),L(f,``))}function _(){n(`delete`)}Ua();var v=Ti(),y=z(v),b=e=>{var t=Jw(),n=z(t),i=B(n,2),v=R(i),y=e=>{var t=Uw(),n=z(t);Q(R(n),{name:`trash`,size:14,strokeWidth:1.75}),M(2),j(n);var r=B(n,2),i=R(r),a=e=>{var t=Vw(),n=B(R(t)),r=R(n,!0);j(n),M(),j(t),V(()=>J(r,(W(o()),U(()=>o().name)))),q(e,t)},s=e=>{var t=Hw(),n=B(z(t),2),r=R(n,!0);j(n),V(()=>J(r,(W(o()),U(()=>o()?.name)))),q(e,t)};Y(i,e=>{W(o()),U(()=>o()?.type===`node`)?e(a):e(s,-1)}),j(r);var c=B(r,2),l=R(c),u=B(l,2);j(c),G(`click`,l,m),G(`click`,u,_),q(e,t)},b=e=>{var t=Ww(),n=z(t);Q(R(n),{name:`plus`,size:14,strokeWidth:1.75}),M(2),j(n);var r=B(n,2),i=R(r),a=B(R(i),2);Ta(a),j(i);var o=B(i,2),u=B(R(o),2),d=R(u);d.value=d.__value=`person`;var f=B(d);f.value=f.__value=`place`;var p=B(f);p.value=p.__value=`organization`;var g=B(p);g.value=g.__value=`concept`;var _=B(g);_.value=_.__value=`unknown`,j(u),j(o);var v=B(o,2),y=B(R(v),2);Un(y),j(v),j(r);var b=B(r,2),x=R(b),S=B(x,2);j(b),V(e=>S.disabled=e,[()=>(H(s),U(()=>!H(s).trim()))]),Fa(a,()=>H(s),e=>L(s,e)),ma(u,()=>H(c),e=>L(c,e)),Fa(y,()=>H(l),e=>L(l,e)),G(`click`,x,m),G(`click`,S,h),q(e,t)},x=e=>{var t=qw(),n=z(t);Q(R(n),{name:`link`,size:14,strokeWidth:1.75}),M(2),j(n);var r=B(n,2),i=R(r),o=B(R(i),2),s=R(o);s.value=s.__value=``,X(B(s),1,a,e=>e.name,(e,t)=>{var n=Gw(),r=R(n,!0);j(n);var i={};V(()=>{J(r,(H(t),U(()=>H(t).name))),i!==(i=(H(t),U(()=>H(t).name)))&&(n.value=(n.__value=(H(t),U(()=>H(t).name)))??``)}),q(e,n)}),j(o),j(i);var c=B(i,2),l=B(R(c),2),p=R(l);p.value=p.__value=``,X(B(p),1,a,e=>e.name,(e,t)=>{var n=Kw(),r=R(n,!0);j(n);var i={};V(()=>{J(r,(H(t),U(()=>H(t).name))),i!==(i=(H(t),U(()=>H(t).name)))&&(n.value=(n.__value=(H(t),U(()=>H(t).name)))??``)}),q(e,n)}),j(l),j(c);var h=B(c,2),_=B(R(h),2);Ta(_),j(h),j(r);var v=B(r,2),y=R(v),b=B(y,2);j(v),V(e=>b.disabled=e,[()=>(H(u),H(d),H(f),U(()=>!H(u)||!H(d)||!H(f).trim()))]),ma(o,()=>H(u),e=>L(u,e)),ma(l,()=>H(d),e=>L(d,e)),Fa(_,()=>H(f),e=>L(f,e)),G(`click`,y,m),G(`click`,b,g),q(e,t)};Y(v,e=>{r()===`deleteConfirm`?e(y):r()===`addEntity`?e(b,1):r()===`addRelation`&&e(x,2)}),j(i),G(`click`,n,p),q(e,t)};Y(y,e=>{i()&&e(b)}),q(e,v),it()}var Xw=K(`<div class="kg-loading"><div class="animate-spin" style="width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;"></div> <span>Loading graph...</span></div>`),Zw=K(`<div class="kg-empty"><!> <div>No knowledge graph data found</div> <div class="text-xs" style="color:var(--color-text-muted);">Add entities and relations to build your graph.</div></div>`),Qw=K(`<!> <!> <div><canvas tabindex="0"></canvas></div> <!> <!> <!>`,1);function $w(e,t){rt(t,!1);let n=Z(t,`repo`,8),r=I([]),i=I([]),a=I(!0),o=I(``),s=I(``),c=I(!1),l=I(0),u=I([]),d=[],f=new Map;function p(e){return f.get(e)}let m=I(),h,g=800,_=600,v={hoveredNode:null,selectedNode:null,selectedEdge:null,tooltipPos:{x:0,y:0},showTooltip:!1},y=I(!1),b=I(!1),x=I(!1),S=I(null),C=new Map;function w(e){let t=new Map;for(let n of e)t.set(n.id,n),t.set(n.name,n);return t}function T(){h&&Nw(h,g,_,H(u),d,{...v,hiddenNodeCount:H(l)})}async function E(e=!1){if(!n())return;let t=n();if(!(!e&&H(s)===t&&H(u).length>0)){L(a,!0),L(o,``),D();try{let e=await Ro.kgGraph(t);if(n()!==t)return;L(r,e.nodes||[]),L(i,e.edges||[]),L(s,t),O()}catch(e){if(n()!==t)return;L(s,``),L(o,e instanceof Error?e.message:`Failed to load graph`)}finally{n()===t&&L(a,!1)}}}function D(){L(r,[]),L(i,[]),L(u,[]),d=[],f=C,L(c,!1),L(l,0),v.selectedNode=null,v.selectedEdge=null,v.hoveredNode=null,v.showTooltip=!1,T()}function O(){if(!h)return;if(L(c,H(i).length===0&&H(r).length>0),H(c)){let e=yw(H(r).map(e=>({id:e.id,name:e.name,type:e.type,description:e.description,memoryCount:e.memoryCount,x:0,y:0,vx:0,vy:0,pinned:!1})),g,_);L(u,e),L(l,Math.max(0,H(r).length-e.length)),d=[],f=w(H(u)),T();return}let e=H(r).slice(0,300),t=new Set(e.map(e=>e.name));L(u,vw(e.map(e=>({id:e.id,name:e.name,type:e.type,description:e.description,memoryCount:e.memoryCount,x:0,y:0,vx:0,vy:0,pinned:!1})),g,_)),d=H(i).filter(e=>t.has(e.source)&&t.has(e.target)).map(e=>({source:e.source,target:e.target,relation_type:e.relation_type})),L(l,Math.max(0,H(r).length-e.length)),f=w(H(u)),bw(H(u),d,g,_),T()}function k(){if(!H(m))return;let e=Ew(H(m));if(g=e.width,_=e.height,h=e.ctx,H(u).length>0){if(H(c)){O();return}bw(H(u),d,g,_),T()}}function ee(e){let t=H(m).getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;for(let e of H(u)){let t=n-e.x,i=r-e.y;if(t*t+i*i<=484){v.selectedNode=e,v.selectedEdge=null,v.tooltipPos={x:n,y:r},v.showTooltip=!0,T();return}}for(let e of d){let t=p(e.source),i=p(e.target);if(!(!t||!i)&&ie(n,r,t.x,t.y,i.x,i.y)<10){v.selectedEdge=e,v.selectedNode=null,v.showTooltip=!1,T();return}}v.selectedNode=null,v.selectedEdge=null,v.showTooltip=!1,T()}function te(e){let t=H(m).getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;for(let e of H(u)){let t=n-e.x,i=r-e.y;if(t*t+i*i<=484){L(S,{type:`node`,name:e.name}),L(x,!0);return}}}function ne(e){e.preventDefault();let t=H(m).getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;for(let e of d){let t=p(e.source),i=p(e.target);if(!(!t||!i)&&ie(n,r,t.x,t.y,i.x,i.y)<10){L(S,{type:`edge`,name:`${e.source} → ${e.target} (${e.relation_type})`,edge:e}),v.selectedEdge=e,v.selectedNode=null,L(x,!0),T();return}}}function re(e){let t=H(m).getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top,i=null;for(let e of H(u)){let t=n-e.x,a=r-e.y;if(t*t+a*a<=484){i=e;break}}i!==v.hoveredNode&&(v.hoveredNode=i,Sn(m,H(m).style.cursor=i?`pointer`:`default`),T())}function ie(e,t,n,r,i,a){let o=i-n,s=a-r,c=o*o+s*s;if(c===0)return Math.hypot(e-n,t-r);let l=((e-n)*o+(t-r)*s)/c;return l=Math.max(0,Math.min(1,l)),Math.hypot(e-(n+l*o),t-(r+l*s))}async function A(e){let{name:t,type:r,description:i}=e.detail;try{await Ro.kgCreateEntity({name:t,type:r,description:i,repo:n()}),L(y,!1),await E(!0)}catch(e){L(o,e instanceof Error?e.message:`Failed to create entity`)}}async function ae(e){let{from_entity:t,to_entity:r,relation_type:i}=e.detail;try{await Ro.kgCreateRelation({from_entity:t,to_entity:r,relation_type:i,repo:n()}),L(b,!1),await E(!0)}catch(e){L(o,e instanceof Error?e.message:`Failed to create relation`)}}async function oe(){if(H(S))try{if(H(S).type===`node`)await Ro.kgDeleteEntity(H(S).name);else if(H(S).type===`edge`){let e=H(S).edge;await Ro.kgDeleteRelation({from_entity:e.source,to_entity:e.target,relation_type:e.relation_type})}L(x,!1),L(S,null),v.selectedEdge=null,v.selectedNode=null,v.showTooltip=!1,await E(!0)}catch(e){L(o,e instanceof Error?e.message:`Failed to delete`)}}function se(){L(x,!1),L(S,null)}function ce(e){e.key===`Escape`&&(v.showTooltip=!1,v.selectedNode=null,v.selectedEdge=null,L(x,!1),L(y,!1),L(b,!1),T())}let le=null;Ka(()=>{if(H(m)){let e=Ew(H(m));g=e.width,_=e.height,h=e.ctx}n()&&E(),le=new ResizeObserver(()=>k()),H(m)?.parentElement&&le.observe(H(m).parentElement)}),qa(()=>{le?.disconnect()}),ir(()=>(W(n()),H(m),H(s),U),()=>{n()&&H(m)&&H(s)!==n()&&U(()=>E())}),ar(),Ua(),G(`keydown`,An,ce),Bw(e,{children:(e,t)=>{var n=Qw(),s=z(n);Rw(s,{get nodeCount(){return H(r),U(()=>H(r).length)},get edgeCount(){return H(i),U(()=>H(i).length)},get isLoading(){return H(a)},get errorMsg(){return H(o)},get isZeroEdgeOverview(){return H(c)},get visibleNodeCount(){return H(u),U(()=>H(u).length)},get hiddenNodeCount(){return H(l)},onAddEntity:()=>L(y,!0),onAddRelation:()=>L(b,!0),onRefresh:()=>E(!0)});var d=B(s,2),f=e=>{q(e,Xw())},p=e=>{var t=Zw();Q(R(t),{name:`share-2`,size:32,strokeWidth:1.25,className:``}),M(4),j(t),q(e,t)};Y(d,e=>{H(a)?e(f):(H(u),U(()=>H(u).length===0)&&e(p,1))});var h=B(d,2);let g;var _=R(h);Ba(_,e=>L(m,e),()=>H(m)),j(h);var v=B(h,2);Yw(v,{mode:`addEntity`,get show(){return H(y)},$$events:{addEntity:A,close:()=>L(y,!1)}});var C=B(v,2);Yw(C,{mode:`addRelation`,get show(){return H(b)},get entityNodes(){return H(u)},$$events:{addRelation:ae,close:()=>L(b,!1)}}),Yw(B(C,2),{mode:`deleteConfirm`,get show(){return H(x)},get deleteTarget(){return H(S)},$$events:{delete:oe,close:se}}),V(()=>{g=la(h,1,`kg-canvas-wrap`,null,g,{"kg-hidden":H(a)||H(u).length===0}),ka(_,`aria-label`,(H(c),H(u),H(r),U(()=>H(c)?`Knowledge Graph zero-relation overview showing ${H(u).length} of ${H(r).length} entities`:`Knowledge Graph visualization`)))}),G(`click`,_,ee),G(`dblclick`,_,te),G(`contextmenu`,_,ne),G(`mousemove`,_,re),q(e,n)},$$slots:{default:!0}}),it()}var eT={backlog:`#64748b`,pending:`#0ea5e9`,in_progress:`#a855f7`,blocked:`#ef4444`,completed:`#10b981`,canceled:`#94a3b8`},tT={backlog:`backlog`,pending:`pending`,in_progress:`in_progress`,blocked:`blocked`,completed:`completed`,canceled:`canceled`},nT=[`#06b6d4`,`#f59e0b`,`#ec4899`,`#10b981`,`#3b82f6`,`#f97316`,`#14b8a6`,`#e11d48`,`#8b5cf6`,`#84cc16`],rT=16,iT=22,aT=28,oT=new Set([`in_progress`,`pending`]),sT=34,cT=54,lT=28,uT=58,dT=42;function fT(e,t,n){return Math.min(n,Math.max(t,e))}function pT(e,t){let n=Math.max(1,e.w-sT*2),r=Math.max(1,e.h-cT-lT),i=fT(Math.floor(n/uT)+1,1,3),a=Math.max(1,Math.floor(r/dT)+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+sT+s*l,y:e.y+cT+c*u}}var mT=[`male_nurse`,`female_nurse`,`staff1`,`staff2`];function hT(e){return e%2==0?`wheelchair`:`stretcher`}function gT(e){return mT[(e>>>4)%mT.length]}function _T(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t}function vT(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return nT[t%nT.length]}function yT(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 bT(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=tT[t.status]??`pending`;if(!r.has(e))continue;let n=r.get(e);n.length<rT&&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-iT*2,o=r.h-iT-aT,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+iT+n*l+l/2,y:r.y+aT+a*u+u/2})})}return i}function xT(e,t,n,r,i){let a=yT(i.canvasWidth,i.canvasHeight),o=bT(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=>oT.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=pT(a.find(e=>e.id===`burnout`)||s,t);if(g=n.x,_=n.y,u?.state!==`burnout`&&!T){let t=_T(e),n=u?.x??d,r=u?.y??f;T={phase:`pickup`,vehicle:hT(t),helperVariant:gT(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:vT(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 ST(e){return e?.structuredContent??null}function CT(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 wT(){let e=N({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=P(to).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([Ro.tasks({repo:e,status:`in_progress`,pageSize:10}),Ro.tasks({repo:e,status:`pending`,pageSize:8}),Ro.tasks({repo:e,status:`blocked`,pageSize:4}),Ro.coordinationClaims({repo:e,active_only:!0,pageSize:50}),Ro.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=ST(d.value),n=t?.handoffs?.columns??[],r=t?.handoffs?.rows??[];o.push(...r.map(t=>CT(n,t,e)))}});let s=Array.from(new Map(i.map(e=>[e.id,e])).values());e.update(e=>({...e,scene:xT(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 TT=85,ET=50,DT=6,OT=[2800,5e3],kT=[600,1600],AT=100,jT=800,MT=600;function NT(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 PT(e,t){let[n,r,i]=NT(e);return`rgb(${Math.min(255,n+t)},${Math.min(255,r+t)},${Math.min(255,i+t)})`}function FT(e,t){let[n,r,i]=NT(e);return`rgb(${Math.max(0,n-t)},${Math.max(0,r-t)},${Math.max(0,i-t)})`}function IT(e,t){let[n,r,i]=NT(e);return`rgba(${n},${r},${i},${t})`}function LT(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t}function RT(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 zT=[`#1a0a00`,`#2d1a00`,`#0f0f0f`,`#4a2d00`,`#8B4513`,`#d4a800`,`#c0392b`,`#7b2d8b`,`#1a3a5c`,`#2d4a1a`],BT=[`#f5c89a`,`#e8a870`,`#d4875a`,`#c06840`,`#8B5e3c`,`#6b3d28`],VT=[`#1e3a5f`,`#2d4a1a`,`#3d2a1a`,`#2a1a3d`,`#1a3d3d`,`#3d1a2a`,`#2a2a3d`],HT={male_nurse:`#1e6e9e`,female_nurse:`#2d8e6e`,staff1:`#5a3e8a`,staff2:`#8a5a3e`},UT={male_nurse:`#1a0a00`,female_nurse:`#4a2d00`,staff1:`#0f0f0f`,staff2:`#2d1a00`},WT={male_nurse:`#e8a870`,female_nurse:`#f5c89a`,staff1:`#d4875a`,staff2:`#c06840`},GT=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=yT(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=kT[0]+Math.random()*(kT[1]-kT[0]),a=OT[0]+Math.random()*(OT[1]-OT[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<DT)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`?ET:TT,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>=jT&&(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/AT;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*AT*.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>=MT&&(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=yT(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,IT(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=IT(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)),RT(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=RT(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=RT(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=(RT(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+RT(n,1)*40;for(let i=t+u;i<t+r;i+=80+RT(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=IT(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=RT(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)RT(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=IT(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=IT(o,n?.25:.18),$(e,l,u,c,16,5),e.fill(),e.strokeStyle=IT(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=pT(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=LT(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=PT(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=eT[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,PT(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,(eT[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=HT[r],c=UT[r],l=WT[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,PT(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/MT)}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=LT(s||``),u=zT[l%zT.length]||`#000`,d=BT[(l>>>6)%BT.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=LT(s||``),h=zT[m%zT.length]||`#000`,g=VT[(m>>>3)%VT.length]||`#1e3a5f`,_=BT[(m>>>6)%BT.length]||`#f5c89a`,v=m%5,y=PT(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=FT(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=PT(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,PT(_,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=IT(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=IT(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=IT(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=FT(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=PT(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())}}},KT=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>`),qT=K(`<span class="badge error svelte-1pykpun"><!> Error</span>`),JT=K(`<span class="badge live svelte-1pykpun"><span class="pulse-dot svelte-1pykpun"></span> Live · <strong> </strong> <strong> </strong> <!></span>`),YT=K(`<div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Repos</span> <span class="tip-repos svelte-1pykpun"> </span></div>`),XT=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>`),ZT=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>`),QT=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 $T(e,t){rt(t,!1);let n=()=>F(p,`$arena`,i),r=()=>F(Qa,`$theme`,i),[i,a]=Et(),o=I(),s=I(),c=I(),l=I(null),u=I(null),d=I(null),f=I(null),p=wT();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),L(u,{canvasWidth:e,canvasHeight:t}),H(l)||(L(l,new GT(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){L(d,null),L(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)&&(L(d,c),H(l).setHovered(H(d))),L(f,H(d)?{x:e.clientX-t.left+14,y:e.clientY-t.top-10}:null)}function g(){L(d,null),L(f,null),H(l)?.setHovered(null)}Ka(()=>{let e=setTimeout(()=>{m(),H(u)&&p.start(H(u))},60),t=new ResizeObserver(()=>m());return t.observe(H(c)),()=>{clearTimeout(e),t.disconnect()}}),qa(()=>{p.stop(),H(l)?.stop()}),ir(()=>(H(l),n(),H(u),r()),()=>{H(l)&&n().scene&&H(u)&&H(l).update(n().scene,H(u),r()===`dark`)}),ir(()=>(H(d),n()),()=>{L(o,H(d)&&n().scene?n().scene.agents.get(H(d))??null:null)}),ar(),Ua();var _=QT(),v=R(_),y=R(v),b=R(y);Q(R(b),{name:`cpu`,size:16,strokeWidth:1.75}),j(b),M(2),j(y);var x=B(y,2),S=R(x),C=e=>{q(e,KT())},w=e=>{var t=qT();Q(R(t),{name:`alert-circle`,size:11}),M(),j(t),q(e,t)},T=e=>{var t=JT(),r=B(R(t),2),i=R(r,!0);j(r);var a=B(r),o=B(a),s=R(o,!0);j(o);var c=B(o),l=B(c),u=e=>{var t=wi();V(()=>J(t,` · ${(n(),U(()=>n().repoCount))??``} repos`)),q(e,t)};Y(l,e=>{n(),U(()=>n().repoCount>1)&&e(u)}),j(t),V(()=>{J(i,(n(),U(()=>n().scene.agents.size))),J(a,` ${(n(),U(()=>n().scene.agents.size===1?`agent`:`agents`))??``}
|
|
151
|
+
· `),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)))}),j(x),j(v);var E=B(v,2),D=R(E);Ba(D,e=>L(s,e),()=>H(s));var O=B(D,2),k=e=>{var t=XT(),n=R(t),r=R(n),i=B(r);j(n);var a=B(n,2),s=B(R(a)),c=R(s,!0);j(s),j(a);var l=B(a,2),u=B(R(l),2),d=R(u,!0);j(u),j(l);var p=B(l,2),m=B(R(p)),h=R(m,!0);j(m),j(p);var g=B(p,2),_=e=>{var t=YT(),n=B(R(t),2),r=R(n,!0);j(n),j(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(_)}),j(t),V(e=>{da(t,`left:${(H(f),U(()=>H(f).x))??``}px;top:${(H(f),U(()=>H(f).y))??``}px`),da(r,`background:${(H(o),U(()=>H(o).color))??``}`),J(i,` ${(H(o),U(()=>H(o).name))??``}`),J(c,(H(o),U(()=>H(o).role||`—`))),la(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=B(O,2),te=e=>{var t=ZT();Q(R(t),{name:`users`,size:30,strokeWidth:1.2}),M(4),j(t),q(e,t)};Y(ee,e=>{n(),U(()=>n().scene&&n().scene.agents.size===0&&!n().loading)&&e(te)}),j(E),Ba(E,e=>L(c,e),()=>H(c)),M(2),j(_),V(()=>da(D,`cursor:${H(d)?`pointer`:`default`}`)),G(`mousemove`,D,h),G(`mouseleave`,D,g),q(e,_),it(),a()}var eE=K(`<div class="repo-focus svelte-1eglegg"><!> <span> </span></div>`),tE=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>`),nE=K(`<div class="mini-card svelte-1eglegg"><div class="mini-value svelte-1eglegg"> </div> <div class="mini-label svelte-1eglegg"> </div></div>`),rE=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>`),iE=K(`<div class="empty-state svelte-1eglegg">No repository activity yet.</div>`),aE=K(`<span class="stat-chip stale svelte-1eglegg"> </span>`),oE=K(`<span class="stat-chip stale svelte-1eglegg"> </span>`),sE=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>`),cE=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>`),lE=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 uE(e,t){rt(t,!1);let n=()=>F(so,`$globalDashboardStats`,s),r=()=>F(no,`$currentRepo`,s),i=()=>F(d,`$summaryCards`,s),a=()=>F(f,`$coordinationCards`,s),o=()=>F(p,`$throughputCards`,s),[s,c]=Et(),l=I(),u=I(),d=bt(so,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=bt(so,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=bt(lo,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:Jl(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}ir(()=>n(),()=>{L(l,(n()?.repos??[]).slice(0,8))}),ir(()=>(r(),H(l)),()=>{L(u,r()?H(l).find(e=>e.repo===r()):null)}),ar(),Ua();var h=lE(),g=R(h),_=R(g),v=B(R(_),2),y=e=>{var t=eE(),n=R(t);Q(n,{name:`pin`,size:12,strokeWidth:2});var i=B(n,2),a=R(i);j(i),j(t),V(()=>J(a,`Focused repo: ${r()??``}`)),q(e,t)};Y(v,e=>{H(u)&&e(y)}),j(_);var b=B(_,2);X(b,5,i,e=>e.label,(e,t)=>{var n=tE(),r=R(n);Q(R(r),{get name(){return H(t),U(()=>H(t).icon)},size:14,strokeWidth:1.9}),j(r);var i=B(r,2),a=R(i,!0);j(i);var o=B(i,2),s=R(o,!0);j(o),j(n),V(()=>{da(n,`background:${(H(t),U(()=>H(t).tint))??``};border-color:${(H(t),U(()=>H(t).tint))??``};`),da(r,`color:${(H(t),U(()=>H(t).color))??``};`),da(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)}),j(b),j(g);var x=B(g,2),S=R(x),C=B(R(S),2);X(C,5,a,e=>e.label,(e,t)=>{var n=nE(),r=R(n),i=R(r,!0);j(r);var a=B(r,2),o=R(a,!0);j(a),j(n),V(()=>{da(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)}),j(C),j(S);var w=B(S,2),T=B(R(w),2);X(T,5,o,e=>e.label,(e,t)=>{var n=rE(),r=R(n);Q(R(r),{get name(){return H(t),U(()=>H(t).icon)},size:12,strokeWidth:2}),j(r);var i=B(r,2),a=R(i,!0);j(i);var o=B(i,2),s=R(o,!0);j(o),j(n),V(()=>{da(r,`color:${(H(t),U(()=>H(t).color))??``};`),da(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)}),j(T),j(w),j(x);var E=B(x,2),D=B(R(E),2),O=e=>{q(e,iE())},k=e=>{var t=cE();X(B(R(t),2),1,()=>H(l),e=>e.repo,(e,t)=>{var n=sE();let i;var a=R(n),o=R(a),s=R(o,!0);j(o);var c=B(o,2),l=R(c);j(c),j(a);var u=B(a,2),d=R(u,!0);j(u);var f=B(u,2),p=R(f),h=R(p);j(p);var g=B(p,2),_=R(g);j(g);var v=B(g,2),y=R(v);j(v);var b=B(v,2),x=R(b);j(b),j(f);var S=B(f,2),C=R(S),w=R(C);j(C);var T=B(C,2),E=R(T);j(T);var D=B(T,2),O=e=>{var n=aE(),r=R(n);j(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=B(D,2),ee=e=>{var n=oE(),r=R(n);j(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)}),j(S);var te=B(S,2),ne=R(te,!0);j(te),j(n),V((e,a)=>{i=la(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(ql),U(()=>H(t).lastActivity?ql(H(t).lastActivity):`—`))]),q(e,n)}),j(t),q(e,t)};Y(D,e=>{H(l),U(()=>H(l).length===0)?e(O):e(k,-1)}),j(E),j(h),q(e,h),it(),c()}var dE=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),fE=K(`<div class="empty-state animate-fade-in svelte-1m88iwd"><div class="empty-state-icon animate-float svelte-1m88iwd"><!></div> <div class="empty-state-title svelte-1m88iwd">No Repository Selected</div> <div class="empty-state-text svelte-1m88iwd">Select a repository from the sidebar to get started.</div></div>`),pE=K(`<div class="glass card hover-glow card-body"><div class="flex items-center justify-between card-section-title"><div class="section-label">Selected Repo Pulse</div> <div class="repo-badge svelte-1m88iwd"> </div></div> <div class="repo-pulse-grid svelte-1m88iwd" style="display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px;"><div class="glass card card-body"><div class="section-label card-section-title">Memory Overview</div> <!></div> <div class="glass card card-body"><div class="section-label card-section-title">Task Overview</div> <!></div></div></div> <!>`,1),mE=K(`<div class="glass card hover-glow card-body"><div class="section-label card-section-title">Per-Repository Pulse</div> <div class="muted-text svelte-1m88iwd">Select a repository from the sidebar to inspect repo-specific memory, task, and execution metrics.</div></div>`),hE=K(`<div style="display:grid;grid-template-columns:1fr;gap:12px;align-items:start;" class="dashboard-grid svelte-1m88iwd"><!> <div class="flex flex-col" style="gap:12px;"><!></div></div>`),gE=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>`),_E=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>`),vE=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>`),yE=K(`<div class="arena-fullwidth svelte-1m88iwd"><!></div>`),bE=K(`<div class="tabs-wrap"><div class="tab-nav" style="display:inline-flex;" role="tablist"><button id="tab-activity" role="tab"><!> <span>Activity</span></button> <button id="tab-memories" role="tab"><!> <span>Memories</span></button> <button id="tab-tasks" role="tab"><!> <span>Tasks</span></button> <button id="tab-handoffs" role="tab"><!> <span>Handoffs</span></button> <button id="tab-knowledge-graph" role="tab"><!> <span>Knowledge Graph</span></button></div></div> <!> <!> <!> <!> <!> <!> <!> <!> <!>`,1),xE=K(`<div class="app-layout"><!> <div><!> <!> <div id="dashboardShell" class="dashboard-shell" aria-live="polite"><!></div></div></div> <!> <!> <!> <!> <!> <!>`,1);function SE(e,t){rt(t,!1);let n=()=>F(eo,`$activeTab`,s),r=()=>F(y,`$sidebarCollapsed`,s),i=()=>F(h,`$appState`,s),a=()=>F(no,`$currentRepo`,s),o=()=>F(wo,`$recentActionsTotalItems`,s),[s,c]=Et(),l=I(),u=I(),d=I(``),f=I(!1);async function p(){let e=H(d).trim();if(!e||H(f))return;let t=P(no);if(t){L(f,!0);try{await au(e,t),L(d,``),await m.onRefresh()}catch(e){console.error(`Failed to create task from chat:`,e)}finally{L(f,!1)}}}let m=Ko({get kanbanBoard(){return H(l)},get memoryList(){return H(u)}}),h={subscribe:m.subscribe,set:m.set,update:m.update},{filteredTools:g,filteredPrompts:_,filteredResources:v,sidebarCollapsed:y}=m;Ka(async()=>{Fo(),await m.loadRepos(),await m.loadHealth(),await m.loadData()}),ir(()=>(n(),Ro),()=>{n()===`reference`&&(P(m).capabilities||Ro.capabilities().then(e=>m.update(t=>({...t,capabilities:e}))).catch(e=>console.error(`Failed to load capabilities:`,e)))}),ar(),Ua();var b=xE();G(`keydown`,An,function(...e){m.onKeyDown?.apply(this,e)});var x=z(b),S=R(x);Nu(S,{get onRepoSelect(){return U(()=>m.onRepoSelect)}});var C=B(S,2);let w;var T=R(C);qu(T,{get onRefresh(){return U(()=>m.onRefresh)},get onToggleMobileMenu(){return U(()=>m.toggleMobileMenu)},get onEcosystem(){return U(()=>m.onEcosystemClick)}});var E=B(T,2),D=e=>{var t=dE(),n=z(t),r=B(n,2);Nu(R(r),{get onRepoSelect(){return U(()=>m.onRepoSelect)}}),j(r),G(`click`,n,()=>m.toggleMobileMenu()),G(`keydown`,n,e=>e.key===`Escape`&&m.toggleMobileMenu()),q(e,t)};Y(E,e=>{i(),U(()=>i().mobileMenuOpen)&&e(D)});var O=B(E,2),k=R(O),ee=e=>{var t=fE(),n=R(t);Q(R(n),{name:`brain`,size:32,strokeWidth:1.5}),j(n),M(4),j(t),q(e,t)},te=e=>{var t=bE(),r=z(t),i=R(r),s=R(i);let c;Q(R(s),{name:`activity`,size:14,strokeWidth:1.75}),M(2),j(s);var y=B(s,2);let b;Q(R(y),{name:`brain`,size:14,strokeWidth:1.75}),M(2),j(y);var x=B(y,2);let S;Q(R(x),{name:`clipboard-list`,size:14,strokeWidth:1.75}),M(2),j(x);var C=B(x,2);let w;Q(R(C),{name:`git-branch`,size:14,strokeWidth:1.75}),M(2),j(C);var T=B(C,2);let E;Q(R(T),{name:`share-2`,size:14,strokeWidth:1.75}),M(2),j(T),j(i),j(r);var D=B(r,2),O=e=>{var t=hE(),n=R(t);uE(n,{});var r=B(n,2),i=R(r),o=e=>{var t=pE(),n=z(t),r=R(n),i=B(R(r),2),o=R(i,!0);j(i),j(r);var s=B(r,2),c=R(s);Md(B(R(c),2),{}),j(c);var l=B(c,2);Rd(B(R(l),2),{}),j(l),j(s),j(n),ib(B(n,2),{}),V(()=>J(o,a())),q(e,t)},s=e=>{q(e,mE())};Y(i,e=>{a()?e(o):e(s,-1)}),j(r),j(t),q(e,t)};Y(D,e=>{n()===`dashboard`&&e(O)});var k=B(D,2),ee=e=>{var t=gE(),n=R(t),r=R(n),i=R(r);Q(R(i),{name:`activity`,size:18,strokeWidth:2.2}),j(i);var a=B(i,2),s=B(R(a),2),c=R(s);j(s),j(a),j(r),j(n);var l=B(n,2);ax(l,{get onLoadPage(){return U(()=>m.loadRecentActions)}});var u=B(l,2),h=R(u),g=R(h);Ta(g);var _=B(g,2);Q(R(_),{name:`send`,size:16,strokeWidth:2}),j(_),j(h),j(u),j(t),V(e=>{J(c,`${o()??``} events tracked`),Ea(g,H(d)),g.disabled=H(f),_.disabled=e},[()=>(H(d),H(f),U(()=>!H(d).trim()||H(f)))]),G(`input`,g,e=>L(d,e.currentTarget.value)),G(`keydown`,g,e=>e.key===`Enter`&&!e.shiftKey&&p()),G(`click`,_,p),q(e,t)};Y(k,e=>{n()===`activity`&&e(ee)});var te=B(k,2),ne=e=>{var t=_E(),n=R(t);Q(R(n),{name:`brain`,size:14,strokeWidth:1.75}),M(2),j(n),Ba(wb(B(n,2),{get onMemoryClick(){return U(()=>m.openMemoryDrawer)},get onNewMemory(){return U(()=>m.openNewMemoryDrawer)},onBulkImport:()=>m.openBulkImport(`memories`),$$legacy:!0}),e=>L(u,e),()=>H(u)),j(t),q(e,t)};Y(te,e=>{n()===`memories`&&e(ne)});var re=B(te,2),ie=e=>{var t=vE(),n=R(t),r=R(n);Q(R(r),{name:`columns`,size:14,strokeWidth:1.75}),M(2),j(r),Ba(wd(B(r,2),{get onTaskClick(){return U(()=>m.openTaskDrawer)},onAddTask:()=>m.toggleAddTaskModal(!0),onBulkImport:()=>m.openBulkImport(`tasks`),$$legacy:!0}),e=>L(l,e),()=>H(l)),j(n),j(t),q(e,t)};Y(re,e=>{n()===`tasks`&&e(ie)});var A=B(re,2),ae=e=>{{let t=dn(()=>a()||``);ow(e,{get repo(){return H(t)}})}};Y(A,e=>{n()===`standards`&&e(ae)});var oe=B(A,2),se=e=>{{let t=dn(()=>a()||``);gw(e,{get repo(){return H(t)}})}};Y(oe,e=>{n()===`handoffs`&&e(se)});var ce=B(oe,2),le=e=>{{let t=dn(()=>a()||``);$w(e,{get repo(){return H(t)}})}};Y(ce,e=>{n()===`knowledge-graph`&&e(le)});var ue=B(ce,2),de=e=>{var t=yE();$T(R(t),{}),j(t),q(e,t)};Y(ue,e=>{n()===`arena`&&e(de)});var fe=B(ue,2),pe=e=>{zC(e,{get handler(){return m},get appState(){return h},get filteredTools(){return g},get filteredPrompts(){return _},get filteredResources(){return v}})};Y(fe,e=>{n()===`reference`&&e(pe)}),V(()=>{c=la(s,1,`tab-btn`,null,c,{active:n()===`activity`}),ka(s,`aria-selected`,n()===`activity`),b=la(y,1,`tab-btn`,null,b,{active:n()===`memories`}),ka(y,`aria-selected`,n()===`memories`),S=la(x,1,`tab-btn`,null,S,{active:n()===`tasks`}),ka(x,`aria-selected`,n()===`tasks`),w=la(C,1,`tab-btn`,null,w,{active:n()===`handoffs`}),ka(C,`aria-selected`,n()===`handoffs`),E=la(T,1,`tab-btn`,null,E,{active:n()===`knowledge-graph`}),ka(T,`aria-selected`,n()===`knowledge-graph`)}),G(`click`,s,()=>m.onTabChange(`activity`)),G(`click`,y,()=>m.onTabChange(`memories`)),G(`click`,x,()=>m.onTabChange(`tasks`)),G(`click`,C,()=>m.onTabChange(`handoffs`)),G(`click`,T,()=>m.onTabChange(`knowledge-graph`)),q(e,t)};Y(k,e=>{!a()&&n()!==`dashboard`&&n()!==`arena`?e(ee):e(te,-1)}),j(O),j(C),j(x);var ne=B(x,2);{let e=dn(()=>(i(),U(()=>i().selectedMemory?`memory`:`task`)));cS(ne,{get drawerMode(){return H(e)},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(()=>m.closeDrawer)},get onTaskUpdated(){return U(()=>m.handleTaskUpdated)},onTaskDeleted:()=>{a()&&H(l)?.loadTasks(a())}})}var re=B(ne,2);AS(re,{get item(){return i(),U(()=>i().selectedReference)},get open(){return i(),U(()=>i().referenceDrawerOpen)},onClose:()=>m.toggleReferenceDrawer(!1)});var ie=B(re,2);XS(ie,{get memory(){return i(),U(()=>i().memoryDrawerItem)},get open(){return i(),U(()=>i().memoryDrawerOpen)},onClose:()=>m.toggleMemoryDrawer(!1),get onSaved(){return U(()=>m.handleMemorySaved)},get onDeleted(){return U(()=>m.handleMemoryDeleted)}});var A=B(ie,2);gC(A,{get open(){return i(),U(()=>i().addTaskModalOpen)},get newTask(){return i(),U(()=>i().newTask)},onClose:()=>m.toggleAddTaskModal(!1),get onSave(){return U(()=>m.createTask)}});var ae=B(A,2);{let e=dn(()=>a()||``);fC(ae,{get repo(){return H(e)},get importTarget(){return i(),U(()=>i().bulkImportTarget)},get isOpen(){return i(),U(()=>i().bulkImportOpen)},$$events:{close:()=>m.toggleBulkImport(!1),success:()=>{i().bulkImportTarget===`memories`&&H(u)?.refresh(),i().bulkImportTarget===`tasks`&&a()&&H(l)?.loadTasks(a())}}})}YC(B(ae,2),{get onRefresh(){return U(()=>m.onRefresh)}}),V(()=>w=la(C,1,`main-content`,null,w,{"sidebar-collapsed":r()})),q(e,b),it(),c()}Oi(SE,{target:document.getElementById(`app`)});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--glass-bg:#ffffff85;--glass-bg-strong:#ffffffb8;--glass-bg-ultra:#ffffffe0;--glass-border:#fff6;--glass-border-inner:#ffffffb3;--glass-shadow:0 20px 70px #0f172a1a, 0 4px 16px #0f172a0f;--glass-shadow-elevated:0 32px 96px #0f172a29, 0 8px 32px #0f172a14;--glass-blur:blur(28px) saturate(1.2);--panel-dark:#060c1cb3;--panel-dark-strong:#040916e0;--panel-dark-ultra:#020610f5;--panel-dark-border:#94a3b81a;--panel-dark-border-glow:#38bdf833;--panel-dark-shadow:0 28px 90px #02061799, inset 0 1px 0 #94a3b80f;--glow-primary:#0ea5e959;--glow-accent:#6366f159;--glow-success:#10b98159;--glow-danger:#ef444459;--glow-purple:#a855f759;--glow-cyan:#06b6d459;--sidebar-width:280px;--sidebar-collapsed-width:72px;--header-height:60px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--color-bg:#f0f8ff;--color-surface:#fff;--color-border:#e1ecf7;--color-text:#0a1628;--color-text-muted:#556f8a;--color-text-faint:#8faec4;--color-primary:#0ea5e9;--color-primary-dark:#0284c7;--color-primary-light:#38bdf8;--color-accent:#6366f1;--color-accent-dark:#4f46e5;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--color-purple:#a855f7;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);--duration-fast:.15s;--duration-base:.25s;--duration-slow:.4s}.dark{--color-bg:#010c1e;--color-surface:#070f1f;--color-border:#94a3b81a;--color-text:#e9f1fa;--color-text-muted:#7fa3be;--color-text-faint:#4a6782;--color-primary:#38bdf8;--color-primary-dark:#0ea5e9;--color-primary-light:#7dd3fc}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(at 8% 10%,#38bdf847 0%,#0000 38%),radial-gradient(at 92% 8%,#6366f12e 0%,#0000 32%),radial-gradient(at 75% 88%,#a855f71f 0%,#0000 28%),radial-gradient(at 20% 75%,#0ea5e91a 0%,#0000 26%),linear-gradient(160deg,#eef8ff 0%,#f0f4ff 45%,#f5f0ff 100%) fixed;min-height:100vh;font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.5;transition:background .5s}html.dark{background:radial-gradient(at 8% 10%,#0ea5e924 0%,#0000 38%),radial-gradient(at 92% 8%,#4338ca1f 0%,#0000 32%),radial-gradient(at 75% 88%,#581c871a 0%,#0000 28%),radial-gradient(at 20% 75%,#0ea5e90f 0%,#0000 26%),linear-gradient(160deg,#010c1e 0%,#040d1e 45%,#050c1a 100%) fixed}body{min-height:100vh;color:var(--color-text);transition:color var(--duration-base) ease;background:0 0;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3}code,pre{font-family:JetBrains Mono,Fira Code,monospace}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-dark)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b840;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b873}.dark ::-webkit-scrollbar-thumb{background:#3341558c}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);position:relative}.glass:before{content:"";border-radius:inherit;border:1px solid var(--glass-border-inner);opacity:.6;pointer-events:none;z-index:0;border-bottom-color:#0000;border-right-color:#0000;position:absolute;inset:0}.dark .glass{background:var(--panel-dark);border-color:var(--panel-dark-border);box-shadow:var(--panel-dark-shadow)}.dark .glass:before{opacity:.8;border-color:#94a3b812 #0000 #0000 #94a3b812}.glass-strong{background:var(--glass-bg-strong)!important}.dark .glass-strong{background:var(--panel-dark-strong)!important}.glass-card{border-radius:var(--radius-lg);padding:20px;position:relative;overflow:hidden}.glass-card:after{content:"";border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(135deg,#ffffff14 0%,#0000 60%);position:absolute;inset:0}.dark .glass-card:after{background:linear-gradient(135deg,#94a3b80a 0%,#0000 60%)}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);scrollbar-width:thin;height:100dvh;transition:width .3s var(--ease-smooth);z-index:40;position:fixed;top:0;left:0;overflow:hidden auto}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.main-content{min-width:0;margin-left:var(--sidebar-width);transition:margin-left .3s var(--ease-smooth);flex:1}.dashboard-shell{min-width:0;min-height:100vh;padding:20px}.sidebar.collapsed~.main-content,.main-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width)}@media (width<=1024px){.app-layout>.sidebar{display:none!important}.main-content{margin-left:0!important}}.mobile-sidebar-shell{z-index:39;flex-direction:column;width:min(320px,86vw);height:100dvh;display:flex;position:fixed;inset:0 auto 0 0}.mobile-sidebar-shell .sidebar{width:100%!important;height:100dvh!important;display:flex!important;position:relative!important}.top-bar{z-index:30;position:sticky;top:0}.tab-nav{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f1f5f9b3;border:1px solid #e2e8f0cc;gap:3px;padding:4px;display:flex}.tabs-wrap{scrollbar-width:none;max-width:100%;margin-bottom:20px;overflow:auto hidden}.tabs-wrap::-webkit-scrollbar{display:none}.dark .tab-nav{background:#0f172a99;border-color:#94a3b81a}.tab-btn{color:var(--color-text-muted);transition:all var(--duration-base) var(--ease-smooth);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9px;align-items:center;gap:6px;padding:7px 14px;font-size:.8rem;font-weight:600;display:flex;position:relative;overflow:hidden}.tab-btn:after{content:"";opacity:0;transition:opacity var(--duration-base) ease;pointer-events:none;background:radial-gradient(circle,#0ea5e91f,#0000 70%);position:absolute;inset:0}.tab-btn:hover{color:var(--color-text)}.tab-btn:hover:after{opacity:1}.dark .tab-btn:hover{color:var(--color-text)}.tab-btn.active{color:var(--color-primary);background:#fff;box-shadow:0 2px 10px #00000012,0 1px 3px #0000000d}.tab-btn.active:after{opacity:0}.dark .tab-btn.active{color:#7dd3fc;background:#0a1226f2;box-shadow:0 0 0 1px #38bdf833,0 4px 12px #00000059}.btn{border-radius:var(--radius-md);transition:all var(--duration-base) var(--ease-smooth);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:.8rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;transition:opacity var(--duration-fast) ease;pointer-events:none;background:linear-gradient(135deg,#ffffff26 0%,#0000 100%);position:absolute;inset:0}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;box-shadow:0 4px 14px var(--glow-primary), inset 0 1px 0 #fff3;border-color:#0284c780}.btn-primary:hover{box-shadow:0 6px 20px var(--glow-primary), inset 0 1px 0 #fff3;transform:translateY(-1px)}.dark .btn-primary{color:#7dd3fc;background:linear-gradient(135deg,#0ea5e933 0%,#0284c71f 100%);border-color:#0ea5e966;box-shadow:inset 0 0 0 1px #0ea5e926,0 4px 14px #0ea5e92e}.dark .btn-primary:hover{color:#bae6fd;background:linear-gradient(135deg,#0ea5e94d 0%,#0284c733 100%);box-shadow:inset 0 0 0 1px #38bdf840,0 6px 20px #0ea5e947}.btn-accent{background:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);color:#fff;box-shadow:0 4px 14px var(--glow-accent), inset 0 1px 0 #fff3;border-color:#4f46e580}.btn-accent:hover{box-shadow:0 6px 20px var(--glow-accent), inset 0 1px 0 #fff3;transform:translateY(-1px)}.dark .btn-accent{color:#a5b4fc;background:linear-gradient(135deg,#6366f138 0%,#4f46e524 100%);border-color:#6366f16b;box-shadow:inset 0 0 0 1px #6366f126}.dark .btn-accent:hover{color:#c7d2fe;background:linear-gradient(135deg,#6366f152 0%,#4f46e538 100%);box-shadow:inset 0 0 0 1px #818cf84d,0 6px 20px #6366f147}.btn-ghost{color:var(--color-text-muted);border-color:var(--color-border);background:0 0}.btn-ghost:hover{color:var(--color-text);background:#f1f5f9cc;border-color:#0ea5e933}.dark .btn-ghost:hover{background:#1e293bb3;border-color:#94a3b833}.btn-sm{padding:5px 10px;font-size:.72rem}.btn-icon{border-radius:var(--radius-sm);padding:7px}.btn-icon-lg{border-radius:var(--radius-md);padding:9px}.form-input,.form-select,.form-textarea{border-radius:var(--radius-md);border:1px solid var(--color-border);width:100%;color:var(--color-text);transition:all var(--duration-base) var(--ease-smooth);background:#ffffffa6;outline:none;padding:8px 12px;font-family:inherit;font-size:.85rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);background:#ffffffd9;box-shadow:0 0 0 3px #0ea5e924,0 2px 8px #0ea5e914}.dark .form-input,.dark .form-select,.dark .form-textarea{color:var(--color-text);background:#0a1226a6;border-color:#94a3b82e}.dark .form-input:focus,.dark .form-select:focus,.dark .form-textarea:focus{background:#0a1226d9;border-color:#38bdf880;box-shadow:0 0 0 3px #38bdf81f,0 0 16px #38bdf814}.card{border-radius:var(--radius-lg);padding:20px}.stat-card{border-radius:var(--radius-md);transition:transform var(--duration-base) var(--ease-spring), box-shadow var(--duration-base) ease;padding:12px 14px}.stat-card:hover{box-shadow:var(--glass-shadow-elevated);transform:translateY(-3px)}.dark .stat-card:hover{box-shadow:0 32px 96px #020617b3,0 0 24px #38bdf80f}.type-chip{text-transform:uppercase;letter-spacing:.07em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--duration-base) ease;border:1px solid #0000;border-radius:9999px;align-items:center;gap:4px;padding:.2rem .6rem;font-size:.62rem;font-weight:700;display:inline-flex}.type-decision{color:#1565c0;background:linear-gradient(135deg,#2196f324,#1976d214);border-color:#2196f34d}.type-mistake{color:#c62828;background:linear-gradient(135deg,#f4433624,#d32f2f14);border-color:#f443364d}.type-code_fact{color:#6a1b9a;background:linear-gradient(135deg,#9c27b024,#7b1fa214);border-color:#9c27b04d}.type-pattern{color:#1b5e20;background:linear-gradient(135deg,#388e3c24,#1b5e2014);border-color:#388e3c4d}.type-file_claim{color:#006064;background:linear-gradient(135deg,#00bcd424,#0097a714);border-color:#00bcd44d}.type-task_archive{color:#3e2723;background:linear-gradient(135deg,#79554824,#5d403714);border-color:#7955484d}.dark .type-decision{color:#7dd3fc;background:linear-gradient(135deg,#38bdf833,#0ea5e914);border-color:#38bdf852}.dark .type-mistake{color:#fda4af;background:linear-gradient(135deg,#fb718533,#f43f5e14);border-color:#fb718552}.dark .type-code_fact{color:#d8b4fe;background:linear-gradient(135deg,#c084fc33,#a78bfa14);border-color:#c084fc52}.dark .type-pattern{color:#6ee7b7;background:linear-gradient(135deg,#34d39933,#10b98114);border-color:#34d39952}.dark .type-file_claim{color:#67e8f9;background:linear-gradient(135deg,#22d3ee33,#06b6d414);border-color:#22d3ee52}.dark .type-task_archive{color:#d4a08a;background:linear-gradient(135deg,#b4786433,#965a4614);border-color:#b4786452}.status-chip{text-transform:uppercase;letter-spacing:.05em;transition:all var(--duration-base) ease;border-radius:9999px;align-items:center;gap:4px;padding:2px 10px;font-size:.62rem;font-weight:700;display:inline-flex}.status-chip:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.status-backlog{color:#64748b;background:#64748b1f;border:1px solid #64748b47}.status-pending{color:#475569;background:#94a3b81f;border:1px solid #94a3b847}.status-inprogress{color:#0284c7;background:#38bdf81f;border:1px solid #38bdf847}.status-completed{color:#059669;background:#10b9811f;border:1px solid #10b98147}.status-blocked{color:#dc2626;background:#ef44441f;border:1px solid #ef444447}.status-canceled{color:#9ca3af;background:#9ca3af14;border:1px solid #9ca3af2e}.status-default{color:#94a3b8;background:#cbd5e11f;border:1px solid #cbd5e147}.dark .status-backlog{color:#94a3b8;background:#64748b2e}.dark .status-pending{color:#cbd5e1;background:#94a3b82e}.dark .status-inprogress{color:#7dd3fc;background:#38bdf82e}.dark .status-completed{color:#6ee7b7;background:#10b9812e}.dark .status-blocked{color:#fca5a5;background:#ef44442e}.dark .status-canceled{color:#6b7280;background:#9ca3af1f}.repo-item{border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);border:1px solid #0000;align-items:center;gap:10px;padding:9px 11px;display:flex;position:relative;overflow:hidden}.repo-item:before{content:"";opacity:0;transition:opacity var(--duration-base) ease;pointer-events:none;background:linear-gradient(90deg,#0ea5e90f 0%,#0000 100%);position:absolute;inset:0}.repo-item:hover:before{opacity:1}.repo-item:hover{border-color:#0ea5e91f}.dark .repo-item:hover{background:#0ea5e90a;border-color:#38bdf824}.repo-item.active{background:#ffffffe6;border-color:#0ea5e938;box-shadow:0 4px 14px #0f172a0f,inset 0 1px #fffc}.dark .repo-item.active{background:#0ea5e912;border-color:#38bdf847;box-shadow:inset 0 0 0 1px #38bdf81a,0 4px 16px #0ea5e914}.repo-avatar{border-radius:var(--radius-sm);color:#fff;width:34px;height:34px;transition:box-shadow var(--duration-base) ease, transform var(--duration-base) var(--ease-spring);background:linear-gradient(135deg,#0ea5e9 0%,#6366f1 100%);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex;position:relative;box-shadow:0 4px 12px #0ea5e947}.repo-item:hover .repo-avatar{transform:scale(1.06);box-shadow:0 4px 16px #0ea5e966}.repo-active-indicator{background:linear-gradient(180deg, var(--color-primary-light) 0%, var(--color-primary) 100%);width:3px;height:22px;box-shadow:2px 0 8px var(--glow-primary);border-radius:0 4px 4px 0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.repo-item.collapsed{justify-content:center;padding:8px}.stat-number{letter-spacing:-.03em;font-size:1.75rem;font-weight:900;line-height:1}.stat-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);font-size:.68rem;font-weight:700}.kanban-board{grid-auto-columns:minmax(280px,1fr);grid-auto-flow:column;gap:16px;padding-bottom:8px;display:grid;overflow-x:auto}@media (width<=900px){.kanban-board{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;grid-auto-columns:280px;grid-auto-flow:column}}.kanban-col{border-radius:var(--radius-lg);flex-direction:column;min-height:200px;display:flex}@media (width<=900px){.kanban-col{scroll-snap-align:center}}.task-card{border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);background:#ffffff9e;flex-shrink:0;padding:14px;position:relative;overflow:hidden}.task-card:before{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-accent));opacity:0;height:2px;transition:opacity var(--duration-base) ease;position:absolute;top:0;left:0;right:0}.task-card:hover:before{opacity:1}.dark .task-card{background:#0a122a8c;border-color:#94a3b81a}.task-card:hover{border-color:#0ea5e938;transform:translateY(-3px);box-shadow:0 10px 28px #0000001a,0 0 0 1px #0ea5e92e}.dark .task-card:hover{border-color:#38bdf83d;transform:translateY(-3px);box-shadow:0 10px 28px #00000059,0 0 0 1px #38bdf838}.markdown-body{color:#374151;word-break:break-word;font-size:.875rem;line-height:1.75}.dark .markdown-body{color:#d1d5db}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:#111827;margin:1.2em 0 .5em;font-weight:700;line-height:1.3}.dark .markdown-body h1,.dark .markdown-body h2,.dark .markdown-body h3,.dark .markdown-body h4{color:#f9fafb}.markdown-body h1{border-bottom:2px solid #e5e7eb;padding-bottom:.4rem;font-size:1.25rem}.markdown-body h2{border-bottom:1px solid #e5e7eb;padding-bottom:.3rem;font-size:1.1rem}.markdown-body h3{font-size:.95rem}.markdown-body p{margin:.6em 0}.markdown-body ul,.markdown-body ol{margin:.5em 0;padding-left:1.5rem}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body li{margin:.25em 0}.markdown-body code{color:#6d28d9;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:5px;padding:.15em .4em;font-family:JetBrains Mono,monospace;font-size:.8rem}.dark .markdown-body code{color:#c4b5fd;background:#8b5cf624;border-color:#8b5cf638}.markdown-body pre{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;margin:.75em 0;padding:1rem;overflow-x:auto}.dark .markdown-body pre{background:#0a121e;border-color:#1e2d40}.markdown-body pre code{color:inherit;background:0 0;border:none;padding:0;font-size:.82rem}.markdown-body blockquote{color:#4b5563;background:#0ea5e90d;border-left:3px solid #0ea5e9;border-radius:0 8px 8px 0;margin:.75em 0;padding:.5rem 1rem;font-style:italic}.dark .markdown-body blockquote{color:#9ca3af;background:#0ea5e914}.markdown-body a{color:#0ea5e9;text-underline-offset:2px;text-decoration:underline}.markdown-body strong{color:#111827;font-weight:700}.dark .markdown-body strong{color:#f9fafb}.markdown-body table{border-collapse:collapse;width:100%;margin:.75em 0;font-size:.8rem}.markdown-body th{text-align:left;background:#f1f5f9;border:1px solid #e5e7eb;padding:.5rem .75rem;font-weight:700}.dark .markdown-body th{background:#1e293b;border-color:#334155}.markdown-body td{border:1px solid #e5e7eb;padding:.4rem .75rem}.dark .markdown-body td{border-color:#334155}.markdown-body tr:nth-child(2n){background:#f8fafc}.dark .markdown-body tr:nth-child(2n){background:#1e293b66}.chat-bubble{border-radius:1.25rem;max-width:85%;padding:.75rem 1rem;font-size:.875rem;line-height:1.5;box-shadow:0 2px 8px #0000000f}.chat-bubble-agent{color:#fff;border-bottom-right-radius:.25rem;align-self:flex-end}.chat-bubble-mcp{color:#1e293b;background:#f1f5f9e6;border:1px solid #e2e8f0;border-bottom-left-radius:.25rem;align-self:flex-start}.dark .chat-bubble-mcp{color:#f1f5f9;background:#1e293bd9;border-color:#334155b3}.chat-send-panel{border-top:1px solid var(--color-border);background:var(--glass-bg);flex-shrink:0;padding:8px 16px}.dark .chat-send-panel{background:#060c1cb3;border-top-color:#94a3b81a}.chat-input-row{background:#f0f2f5;border-radius:24px;align-items:center;gap:8px;padding:4px 4px 4px 16px;transition:box-shadow .2s;display:flex}.dark .chat-input-row{background:#1f2c33}.chat-input-row:focus-within{box-shadow:0 0 0 2px #00a8844d}.chat-input-row input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:8px 0;font-family:inherit;font-size:.875rem}.chat-input-row input::placeholder{color:#8696a0}.dark .chat-input-row input::placeholder{color:#667781}.chat-send-btn{color:#fff;cursor:pointer;background:#00a884;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.chat-send-btn:hover:not(:disabled){opacity:.9;transform:scale(1.08)}.chat-send-btn:active:not(:disabled){transform:scale(.95)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.dark .chat-send-btn{background:#00a884}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e8ecf0 50%,#f1f5f9 75%) 0 0/200% 100%;border-radius:8px;animation:1.8s ease-in-out infinite skeleton-pulse}.dark .skeleton{background:linear-gradient(90deg,#12213a 25%,#1a2f4a 50%,#12213a 75%) 0 0/200% 100%}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 6px #0ea5e94d}50%{box-shadow:0 0 18px #0ea5e999,0 0 30px #0ea5e933}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes status-blink{0%,to{opacity:1}50%{opacity:.4}}@keyframes orbit-glow{0%{transform:translate(-50%,-50%)rotate(0)translate(12px)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)translate(12px)rotate(-360deg)}}.animate-fade-in{animation:fade-in-up var(--duration-slow) var(--ease-expo)}.animate-fade-in-scale{animation:fade-in-scale var(--duration-slow) var(--ease-expo)}.animate-slide-in{animation:slide-in-right var(--duration-slow) var(--ease-expo)}.animate-spin{animation:.8s linear infinite spin}.animate-float{animation:3s ease-in-out infinite float}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}.animate-status-blink{animation:1.8s ease-in-out infinite status-blink}.stagger-item:first-child{animation-delay:0s}.stagger-item:nth-child(2){animation-delay:50ms}.stagger-item:nth-child(3){animation-delay:.1s}.stagger-item:nth-child(4){animation-delay:.15s}.stagger-item:nth-child(5){animation-delay:.2s}.stagger-item:nth-child(n+6){animation-delay:.25s}.drawer-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);background:#010c1e8c;position:fixed;inset:0}.drawer-panel{-webkit-backdrop-filter:blur(20px);z-index:51;background:#fffffff5;border-left:1px solid #e2e8f0cc;flex-direction:column;width:min(620px,95vw);height:100dvh;display:flex;position:fixed;top:0;right:0;overflow:hidden;box-shadow:-20px 0 60px #00000024,-1px 0 #0ea5e914}.dark .drawer-panel{background:#060c1cf5;border-color:#94a3b81a;box-shadow:-20px 0 60px #00000080,-1px 0 #38bdf81f}.dark table thead tr{background:#0a1226e6!important}.dark table th{color:var(--color-text-muted);border-bottom-color:#94a3b81f!important}.dark table td{color:var(--color-text);border-bottom-color:#94a3b812!important}.dark table tbody tr:hover td{background:#0ea5e90a}.dark table tbody tr:nth-child(2n) td{background:#080f2059}.dark table tbody tr:nth-child(2n):hover td{background:#0ea5e90f}.dark table input[type=checkbox]{accent-color:#0ea5e9}.badge{letter-spacing:.03em;border-radius:9999px;align-items:center;padding:1px 8px;font-size:.62rem;font-weight:700;display:inline-flex}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-size:.68rem;font-weight:700}.status-dot{border-radius:9999px;flex-shrink:0;width:8px;height:8px}.status-dot-online{background:#10b981;animation:2.4s ease-in-out infinite pulse-glow;box-shadow:0 0 0 3px #10b9812e}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--color-text);background:#f1f5f9e6;transform:scale(1.1)}.dark .icon-btn:hover{background:#1e293bcc}.icon-btn svg{transition:transform var(--duration-base) var(--ease-spring)}.icon-btn:hover svg{transform:scale(1.05)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.min-w-0{min-width:0}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:12px;padding-bottom:12px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:12px}.rounded-xl{border-radius:16px}.relative{position:relative}.absolute{position:absolute}.inset-0{inset:0}.z-10{z-index:10}.z-50{z-index:50}.hidden{display:none}.grid{display:grid}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.pointer-events-none{pointer-events:none}.shrink-0{flex-shrink:0}.text-center{text-align:center}.priority-dot{border-radius:9999px;flex-shrink:0;width:8px;height:8px}.priority-1{background:#94a3b8}.priority-2{background:#3b82f6;box-shadow:0 0 6px #3b82f680}.priority-3{background:#f59e0b;box-shadow:0 0 6px #f59e0b80}.priority-4{background:#f97316;box-shadow:0 0 6px #f9731680}.priority-5{background:#ef4444;animation:2s ease-in-out infinite pulse-glow;box-shadow:0 0 8px #ef444499}.divider{background:var(--color-border);height:1px;margin:12px 0}.dark .divider{background:#94a3b81a}.hover-glow{transition:box-shadow var(--duration-base) ease}.hover-glow:hover{box-shadow:var(--glass-shadow-elevated), 0 0 24px #0ea5e914}.dark .hover-glow:hover{box-shadow:var(--panel-dark-shadow), 0 0 24px #38bdf814}.text-success{color:var(--color-success)!important}.text-danger{color:var(--color-danger)!important}.text-primary{color:var(--color-primary)!important}.text-accent{color:var(--color-accent)!important}.btn-icon:hover{background:#0ea5e914;transform:scale(1.1)}@media (width<=760px){html,body,#app,.app-layout,.main-content{max-width:100vw;overflow-x:hidden}.dashboard-shell{padding:12px}.tabs-wrap{margin:0 -12px 12px;padding:0 12px}.tab-nav{max-width:max-content}.tab-btn{padding:7px 10px;font-size:.74rem}.card{border-radius:var(--radius-lg);padding:14px}}.pin-star.svelte-vmyixk{color:#fff;background:#0ea5e9;border-radius:9999px;justify-content:center;align-items:center;width:14px;height:14px;font-size:8px;line-height:1;display:flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #0ea5e966}.task-badges.svelte-vmyixk{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.task-badge.svelte-vmyixk{white-space:nowrap;border:1px solid #0000;border-radius:9999px;align-items:center;gap:2px;padding:1px 5px;font-size:.6rem;font-weight:700;transition:all .15s;display:inline-flex}.task-badge.active.svelte-vmyixk{color:#a855f7;background:#a855f71f;border-color:#a855f740}.task-badge.todo.svelte-vmyixk{color:#0ea5e9;background:#0ea5e91f;border-color:#0ea5e940}.task-badge.blocked.svelte-vmyixk{color:#ef4444;background:#ef44441f;border-color:#ef444440}.task-badge.backlog.svelte-vmyixk{color:#64748b;background:#64748b1f;border-color:#64748b40}html.dark .task-badge.active.svelte-vmyixk{color:#c084fc;background:#a855f72e}html.dark .task-badge.todo.svelte-vmyixk{color:#7dd3fc;background:#38bdf82e}html.dark .task-badge.blocked.svelte-vmyixk{color:#fca5a5;background:#fca5a52e}html.dark .task-badge.backlog.svelte-vmyixk{color:#94a3b8;background:#94a3b82e}.pin-btn.svelte-vmyixk{opacity:0;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:5px;transition:opacity .15s,transform .15s,color .15s;display:flex}.repo-item.svelte-vmyixk:hover .pin-btn:where(.svelte-vmyixk){opacity:1}@media (hover:none),(width<=1024px){.pin-btn.svelte-vmyixk{opacity:1}}.pin-btn.svelte-vmyixk:hover{color:#0ea5e9;background:#0ea5e91a;transform:scale(1.15)}.sidebar-header.svelte-vbr9x3{justify-content:space-between;align-items:center;min-height:60px;padding:14px 16px;display:flex}.brand-icon.svelte-vbr9x3{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:box-shadow .2s,transform .2s;display:flex;box-shadow:0 4px 12px #0ea5e94d}.brand-icon.svelte-vbr9x3:hover{transform:scale(1.05);box-shadow:0 4px 18px #0ea5e980}.collapse-btn.svelte-vbr9x3{flex-shrink:0}.nav-section.svelte-vbr9x3{border-bottom:1px solid var(--color-border);flex-direction:column;gap:2px;padding:8px 8px 6px;display:flex}.nav-item.svelte-vbr9x3{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex;position:relative}.nav-item.svelte-vbr9x3:hover{color:var(--color-text);background:#0ea5e912}.nav-item.active.svelte-vbr9x3{color:var(--color-primary,#0ea5e9);background:#0ea5e91a}html.dark .nav-item.svelte-vbr9x3:hover{background:#0ea5e91a}html.dark .nav-item.active.svelte-vbr9x3{color:#7dd3fc;background:#38bdf81f}.nav-label.svelte-vbr9x3{flex:1}.nav-active-dot.svelte-vbr9x3{background:var(--color-primary,#0ea5e9);border-radius:50%;flex-shrink:0;width:6px;height:6px}html.dark .nav-active-dot.svelte-vbr9x3{background:#7dd3fc}.nav-section.collapsed.svelte-vbr9x3{align-items:center;gap:4px;padding:6px 4px}.nav-item.collapsed.svelte-vbr9x3{justify-content:center;align-self:stretch;width:auto;padding:8px 4px}.search-wrapper.svelte-vbr9x3{position:relative}.search-icon.svelte-vbr9x3{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input.svelte-vbr9x3{background:#ffffff80;padding-left:32px;font-size:.8rem}html.dark .search-input.svelte-vbr9x3{background:#0a122680}.group-label.svelte-vbr9x3{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);opacity:.75;align-items:center;gap:5px;padding:6px 10px 4px;font-size:.6rem;font-weight:700;display:flex}.repo-count-chip.svelte-vbr9x3{color:#0ea5e9;background:#0ea5e91f;border:1px solid #0ea5e938;border-radius:9999px;padding:1px 7px;font-size:.62rem;font-weight:700}.top-bar-inner.svelte-2va9hf{justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:10px 20px;display:flex}.current-repo.svelte-2va9hf{align-items:center;gap:8px;min-width:0;display:flex}.current-repo-name.svelte-2va9hf{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:.82rem;overflow:hidden}.top-actions.svelte-2va9hf,.refresh-group.svelte-2va9hf,.top-status.svelte-2va9hf{align-items:center;gap:8px;display:flex}.top-actions.svelte-2va9hf{min-width:0}.top-separator.svelte-2va9hf{background:var(--color-border);opacity:.6;width:1px;height:20px}@media (width<=1024px){#mobileMenuBtn.svelte-2va9hf{display:flex!important}}@media (width<=760px){.top-bar-inner.svelte-2va9hf{padding:8px 12px}.current-repo-name.svelte-2va9hf{max-width:112px}.ext-links-group.svelte-2va9hf,.top-separator.svelte-2va9hf,.db-path-label.svelte-2va9hf,.top-status.svelte-2va9hf span:where(.svelte-2va9hf){display:none!important}.top-actions.svelte-2va9hf{flex-shrink:0;gap:6px}}@media (width<=420px){.current-repo-name.svelte-2va9hf{max-width:82px}}.ext-links-group.svelte-2va9hf{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f1f5f9bf;border-radius:10px;align-items:center;gap:0;display:flex;overflow:hidden}html.dark .ext-links-group.svelte-2va9hf{background:#0f172abf;border-color:#94a3b81f}.ext-link-btn.svelte-2va9hf{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:5px;padding:5px 10px;font-size:.72rem;font-weight:600;line-height:1;text-decoration:none;transition:background .15s,color .15s;display:flex}.ext-link-btn.svelte-2va9hf:hover{color:var(--color-text);background:#0ea5e914}html.dark .ext-link-btn.svelte-2va9hf:hover{background:#0ea5e91f}.ext-link-star.svelte-2va9hf:hover{color:#ca8a04!important;background:#eab3081a!important}html.dark .ext-link-star.svelte-2va9hf:hover{color:#fbbf24!important;background:#eab3081f!important}.ext-link-npm.svelte-2va9hf:hover{color:#cb2431!important;background:#cb243114!important}html.dark .ext-link-npm.svelte-2va9hf:hover{color:#f87171!important;background:#cb24311f!important}.ext-link-donate.svelte-2va9hf:hover{color:#ea580c!important;background:#f973161a!important}html.dark .ext-link-donate.svelte-2va9hf:hover{color:#fb923c!important;background:#f9731626!important}.ext-link-eco.svelte-2va9hf:hover{color:#0284c7!important;background:#0ea5e91a!important}html.dark .ext-link-eco.svelte-2va9hf:hover{color:#7dd3fc!important;background:#38bdf826!important}.ext-link-divider.svelte-2va9hf{background:var(--color-border);opacity:.6;flex-shrink:0;width:1px;height:20px}.ext-link-label.svelte-2va9hf{font-size:.7rem}.npm-dl-badge.svelte-2va9hf{color:inherit;align-items:center;gap:3px;display:flex}.npm-dl-skeleton.svelte-2va9hf{background:#94a3b82e;border-radius:4px;width:36px;height:10px;animation:1.4s ease-in-out infinite svelte-2va9hf-skeleton-pulse;display:inline-block}@keyframes svelte-2va9hf-skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.countdown-bar.svelte-2va9hf{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f1f5f9bf;border-radius:10px;align-items:center;gap:6px;padding:5px 10px;display:flex}html.dark .countdown-bar.svelte-2va9hf{background:#0f172abf;border-color:#94a3b81f}.countdown-track.svelte-2va9hf{background:#94a3b82e;border-radius:9999px;width:52px;height:3px;overflow:hidden}.countdown-fill.svelte-2va9hf{border-radius:9999px;height:100%;transition:width 1s linear,background .3s}.countdown-label.svelte-2va9hf{width:26px;font-size:.65rem;font-weight:600;transition:color .3s}.btn.refreshing.svelte-2va9hf{color:var(--color-primary)}@media (width<=640px){.ext-links-group.svelte-2va9hf{display:none}}@media (width<=760px){.countdown-bar.svelte-2va9hf{padding:5px 8px}.countdown-track.svelte-2va9hf{width:32px}}@media (width<=420px){.countdown-label.svelte-2va9hf{display:none}}.priority-bar.svelte-1797zcc{opacity:0;border-radius:12px 12px 0 0;height:2px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.task-card.svelte-1797zcc:hover .priority-bar:where(.svelte-1797zcc){opacity:1}.card-header.svelte-1797zcc{justify-content:space-between;align-items:center;gap:6px;margin-bottom:7px;display:flex}.code-row.svelte-1797zcc{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.status-icon-dot.svelte-1797zcc{opacity:.85;flex-shrink:0;display:inline-flex}.task-code-text.svelte-1797zcc{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:110px;font-family:JetBrains Mono,monospace;font-size:.64rem;font-weight:700;overflow:hidden}.task-title.svelte-1797zcc{color:var(--color-text);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:.82rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.task-desc.svelte-1797zcc{color:var(--color-text-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:12px;font-size:.72rem;line-height:1.4;display:-webkit-box;overflow:hidden}.phase-chip.svelte-1797zcc{color:#6366f1;letter-spacing:.02em;white-space:nowrap;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;flex-shrink:0;padding:2px 6px;font-size:.58rem;font-weight:700}html.dark .phase-chip.svelte-1797zcc{color:#a5b4fc;background:#818cf826;border-color:#818cf840}.hierarchy-row.svelte-1797zcc,.coordination-row.svelte-1797zcc{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.h-badge.svelte-1797zcc{border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:.58rem;font-weight:700;display:inline-flex}.h-badge.parent.svelte-1797zcc{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.h-badge.depends.svelte-1797zcc{color:#f59e0b;background:#f59e0b1a;border:1px solid #f59e0b33}.coord-badge.svelte-1797zcc{border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:.58rem;font-weight:700;display:inline-flex}.coord-badge.claim.svelte-1797zcc{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.coord-badge.handoff.svelte-1797zcc{color:#6366f1;background:#6366f11a;border:1px solid #6366f133}.card-footer.svelte-1797zcc{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.agent-row.svelte-1797zcc{align-items:center;gap:4px;display:flex}.agent-avatar.svelte-1797zcc{color:#fff;background:linear-gradient(135deg,#6366f1,#0ea5e9);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.agent-name.svelte-1797zcc{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-size:.64rem;overflow:hidden}.time-row.svelte-1797zcc{color:var(--color-text-faint);align-items:center;gap:3px;font-size:.62rem;display:flex}.token-row.svelte-1797zcc{margin-top:6px}.token-badge.svelte-1797zcc{color:#0ea5e9;background:#38bdf81a;border:1px solid #38bdf833;border-radius:9999px;align-items:center;gap:3px;padding:2px 7px;font-size:.6rem;font-weight:600;display:inline-flex}html.dark .token-badge.svelte-1797zcc{color:#7dd3fc;background:#38bdf81f;border-color:#38bdf838}.search-wrap.svelte-173w724{position:relative}.search-icon-inner.svelte-173w724{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.col-count.svelte-173w724{border-radius:9999px;padding:1px 8px;font-size:.65rem;font-weight:700}.empty-col.svelte-173w724{text-align:center;flex-direction:column;align-items:center;padding:28px 8px;display:flex}.drag-over.svelte-173w724{border-color:var(--color-accent)!important;background:#6366f11a!important}.glassy-badge.svelte-1imzu92{-webkit-backdrop-filter:blur(12px);border:1px solid var(--badge-color);cursor:default;background:#ffffff0a;border-radius:9999px;padding:4px 12px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0000000d,inset 0 0 0 1px #ffffff0d}html.dark .glassy-badge.svelte-1imzu92{box-shadow:0 8px 16px #0003, inset 0 0 0 1px var(--badge-color);background:#0003;border-color:#ffffff1a}.glassy-badge.svelte-1imzu92:hover{box-shadow:0 6px 16px #00000014, inset 0 0 0 1px var(--badge-color);background:#ffffff14;transform:translateY(-1px)}.indicator-dot.svelte-1imzu92{background:var(--badge-color);width:6px;height:6px;box-shadow:0 0 10px var(--badge-color);border-radius:9999px;position:relative}.indicator-dot.svelte-1imzu92:after{content:"";border:1px solid var(--badge-color);opacity:0;border-radius:9999px;animation:2s infinite svelte-1imzu92-pulse;position:absolute;inset:-2px}@keyframes svelte-1imzu92-pulse{0%{opacity:.5;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(3)}}.count.svelte-1imzu92{color:var(--badge-color);letter-spacing:-.01em;font-size:.75rem;font-weight:900}.label.svelte-1imzu92{color:var(--color-text);text-transform:uppercase;letter-spacing:.06em;opacity:.7;font-size:.62rem;font-weight:700}.metrics-grid.svelte-9j0inj{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;display:grid}.compact-empty.svelte-9j0inj{min-height:56px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.75rem;display:flex}@media (width<=640px){.metrics-grid.svelte-9j0inj{grid-template-columns:1fr}}.mem-error.svelte-83aj9g{color:var(--color-danger);background:#ef444414;border:1px solid #ef444426;border-radius:10px;align-items:center;gap:8px;margin-bottom:8px;padding:10px 16px;font-size:.8rem;font-weight:600;display:flex}.search-icon-inner.svelte-83aj9g{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.mem-table-wrap.svelte-83aj9g{border:1px solid var(--color-border);background:var(--color-surface,#fff);border-radius:14px;overflow-x:auto}.mem-table.svelte-83aj9g{border-collapse:collapse;width:100%;min-width:600px}.mem-thead-row.svelte-83aj9g{border-bottom:1px solid var(--color-border);background:#f8fafce6}html.dark .mem-thead-row.svelte-83aj9g{background:#0a1226d9}.mem-th.svelte-83aj9g{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:.7rem;font-weight:700}.mem-th.sortable.svelte-83aj9g{cursor:pointer}.mem-th.sortable.svelte-83aj9g:hover{color:var(--color-text)}.mem-td.svelte-83aj9g{border-bottom:1px solid var(--color-border);padding:10px 12px}html.dark .mem-td.svelte-83aj9g{border-color:#94a3b814}.mem-row.svelte-83aj9g{cursor:pointer;transition:background .15s}.mem-row.svelte-83aj9g:hover{background:#f1f5f9b3}html.dark .mem-row.svelte-83aj9g:hover,.mem-row.selected.svelte-83aj9g{background:#0ea5e90d}html.dark .mem-row.selected.svelte-83aj9g{background:#0ea5e914}.mem-row.svelte-83aj9g:last-child .mem-td:where(.svelte-83aj9g){border-bottom:none}.row-actions.svelte-83aj9g{opacity:0;white-space:nowrap;align-items:center;gap:4px;transition:opacity .15s;display:flex}.mem-row.svelte-83aj9g:hover .row-actions:where(.svelte-83aj9g){opacity:1}.row-action-btn.svelte-83aj9g{cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.edit-btn.svelte-83aj9g:hover{color:#0ea5e9;background:#0ea5e91a}html.dark .edit-btn.svelte-83aj9g:hover{color:#38bdf8;background:#0ea5e926}.delete-btn.svelte-83aj9g:hover{color:#ef4444;background:#ef44441a}html.dark .delete-btn.svelte-83aj9g:hover{color:#fca5a5;background:#ef444426}.bulk-actions-bar.svelte-83aj9g{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;color:#fff;background:#1e293bf2;border:1px solid #ffffff1a;border-radius:9999px;align-items:center;gap:8px;padding:10px 16px;font-size:.85rem;animation:.3s cubic-bezier(.16,1,.3,1) forwards svelte-83aj9g-slideUp;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000004d}html:not(.dark) .bulk-actions-bar.svelte-83aj9g{color:var(--color-text);border-color:var(--color-border);background:#fffffff2;box-shadow:0 10px 30px #0000001a}@keyframes svelte-83aj9g-slideUp{0%{opacity:0;transform:translate(-50%,20px)scale(.95)}to{opacity:1;transform:translate(-50%)scale(1)}}.markdown-body.svelte-d5v60e{line-height:1.6}.markdown-body.svelte-d5v60e p:where(.svelte-d5v60e){margin-bottom:1em}.markdown-body.svelte-d5v60e code:where(.svelte-d5v60e){background-color:#0000000d;border-radius:3px;padding:.2em .4em;font-family:monospace}.markdown-body.svelte-d5v60e pre:where(.svelte-d5v60e){background-color:#0000000d;border-radius:5px;padding:1em;overflow:auto}.markdown-body.svelte-d5v60e table:where(.svelte-d5v60e){border-collapse:collapse;width:100%;margin-bottom:1em}.markdown-body.svelte-d5v60e th:where(.svelte-d5v60e),.markdown-body.svelte-d5v60e td:where(.svelte-d5v60e){text-align:left;border:1px solid #ddd;padding:8px}.markdown-body.svelte-d5v60e blockquote:where(.svelte-d5v60e){color:#666;border-left:4px solid #ddd;margin:1em 0;padding-left:1em}.chat-container-viewport.svelte-h6z84x{scroll-behavior:smooth;background:#00000005;flex-direction:column;flex:1;padding:24px 32px;display:flex;overflow-y:auto}html.dark .chat-container-viewport.svelte-h6z84x{background-color:#0b141a;background-image:radial-gradient(#ffffff08 1px,#0000 1px);background-size:20px 20px}.chat-container.svelte-h6z84x{flex-direction:column;gap:12px;min-height:min-content;padding-bottom:20px;display:flex}.date-header.svelte-h6z84x{z-index:10;justify-content:center;margin:24px 0 12px;display:flex;position:sticky;top:-12px}.date-header.svelte-h6z84x span:where(.svelte-h6z84x){-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#54656f;text-transform:uppercase;letter-spacing:.06em;background:#fffffff2;border:1px solid #0000000d;border-radius:10px;padding:6px 14px;font-size:.7rem;font-weight:700;box-shadow:0 1px 3px #00000014}html.dark .date-header.svelte-h6z84x span:where(.svelte-h6z84x){color:#8696a0;background:#182229}.bubble-row.svelte-h6z84x{align-items:flex-end;gap:8px;width:100%;margin-bottom:4px;display:flex}.bubble-row-right.svelte-h6z84x{justify-content:flex-end}.bubble-row-left.svelte-h6z84x{justify-content:flex-start}.bubble-wrap.svelte-h6z84x{max-width:80%;position:relative}.chat-bubble.svelte-h6z84x{border-radius:12px;padding:8px 10px 18px;font-size:.875rem;line-height:1.4;transition:transform .2s;position:relative;box-shadow:0 1px .5px #00000021}.chat-bubble-action.svelte-h6z84x{background:var(--bubble-bg-light);color:#111b21;border-top-right-radius:0}.chat-bubble-mcp.svelte-h6z84x{background:var(--bubble-bg-light);color:#111b21;border-top-left-radius:0}html.dark .chat-bubble-action.svelte-h6z84x,html.dark .chat-bubble-mcp.svelte-h6z84x{background:var(--bubble-bg-dark);color:#e9edef}.tail.svelte-h6z84x{width:12px;height:12px;position:absolute;top:0}.tail-right.svelte-h6z84x{background:radial-gradient(circle at 100% 0,#0000 8px,#dcf8c6 8px);right:-8px}.tail-left.svelte-h6z84x{background:radial-gradient(circle at 0 0,#0000 8px,#fff 8px);left:-8px}html.dark .chat-bubble-action.svelte-h6z84x{--bubble-bg-dark:#056162}html.dark .tail-right.svelte-h6z84x{background:radial-gradient(circle at 100% 0,#0000 8px,#056162 8px)}html.dark .tail-left.svelte-h6z84x{background:radial-gradient(circle at 0 0,#0000 8px,#202c33 8px)}.chat-avatar.svelte-h6z84x{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;box-shadow:0 2px 8px #0000001a}.agent-avatar.svelte-h6z84x{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1)}.mcp-avatar.svelte-h6z84x{color:#54656f;background:#f0f2f5}html.dark .mcp-avatar.svelte-h6z84x{color:#8696a0;background:#182229}.action-badge.svelte-h6z84x{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;align-items:center;gap:4px;margin-bottom:4px;padding:2px 6px;font-size:.62rem;font-weight:800;display:inline-flex}.action-main.svelte-h6z84x{color:inherit;word-break:break-word;font-weight:600}.action-sub.svelte-h6z84x{opacity:.7;margin-top:2px;font-size:.75rem}.mcp-sender.svelte-h6z84x{color:#34b7f1;text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;margin-bottom:6px;font-size:.72rem;font-weight:800;display:flex}.read-more-btn.svelte-h6z84x{color:#34b7f1;cursor:pointer;text-align:left;background:0 0;border:none;width:100%;margin-top:4px;padding:4px 0;font-size:.75rem;font-weight:700;display:block}.read-more-btn.svelte-h6z84x:hover{text-decoration:underline}.bubble-meta.svelte-h6z84x{pointer-events:none;align-items:center;gap:3px;display:flex;position:absolute;bottom:4px;right:7px}.bubble-time.svelte-h6z84x{color:#667781;font-size:.65rem}html.dark .bubble-time.svelte-h6z84x{color:#ffffff80}.bubble-status.svelte-h6z84x{color:#53bdeb;display:flex}.load-more-spinner.svelte-h6z84x{color:var(--color-text-muted);opacity:.8;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.75rem;font-weight:600;display:flex}@keyframes svelte-h6z84x-slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes svelte-h6z84x-slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.animate-slide-in-right.svelte-h6z84x{animation:.3s ease-out forwards svelte-h6z84x-slideInRight}.animate-slide-in-left.svelte-h6z84x{animation:.3s ease-out forwards svelte-h6z84x-slideInLeft}.meta-grid.svelte-118hqhr{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-118hqhr{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px}.dark .meta-cell.svelte-118hqhr{background:#1e293bcc}.meta-label.svelte-118hqhr{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:700}.meta-value.svelte-118hqhr{color:var(--color-text);font-size:.85rem;font-weight:600}.section-label.svelte-118hqhr{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px;font-size:.65rem;font-weight:700}.tag-chip.svelte-118hqhr{color:#6366f1;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;padding:2px 10px;font-size:.72rem}.md-card.svelte-118hqhr{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-118hqhr{background:#0f172acc}.json-pre.svelte-118hqhr{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}.dark .json-pre.svelte-118hqhr{background:#0f172acc}.section-label.svelte-1ewh6ct{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px;font-size:.65rem;font-weight:700}.meta-grid.svelte-1ewh6ct{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-1ewh6ct{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px}.dark .meta-cell.svelte-1ewh6ct{background:#1e293bcc}.meta-label.svelte-1ewh6ct{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:700}.meta-value.svelte-1ewh6ct{color:var(--color-text);font-size:.85rem;font-weight:600}.meta-subvalue.svelte-1ewh6ct{color:var(--color-text-muted);margin-top:4px;font-size:.7rem;line-height:1.35}.md-card.svelte-1ewh6ct{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-1ewh6ct{background:#0f172acc}.comment-card.svelte-1ewh6ct{border:1px solid var(--color-border);background:#f1f5f980;border-radius:10px;padding:10px 14px}.dark .comment-card.svelte-1ewh6ct{background:#1e293b80}.comment-avatar.svelte-1ewh6ct{color:#fff;background:linear-gradient(135deg,#6366f1,#0ea5e9);border-radius:9999px;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;display:flex}.comment-compose.svelte-1ewh6ct{border:1px solid var(--color-border);background:#f1f5f980;border-radius:10px;padding:12px}.dark .comment-compose.svelte-1ewh6ct{background:#1e293b66}.std-form-grid.svelte-1arg7l8{grid-template-columns:1fr 1fr;gap:12px;display:grid}.std-field-label.svelte-1arg7l8{color:var(--color-text-muted);margin-bottom:4px;font-size:.72rem;font-weight:700;display:block}.drawer-title.svelte-1arg7l8{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.3}.section-label.svelte-1arg7l8{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px;font-size:.65rem;font-weight:700}.meta-grid.svelte-1arg7l8{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-1arg7l8{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px}.dark .meta-cell.svelte-1arg7l8{background:#1e293bcc}.meta-label.svelte-1arg7l8{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:700}.meta-value.svelte-1arg7l8{color:var(--color-text);font-size:.85rem;font-weight:600}.json-pre.svelte-1arg7l8{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}.dark .json-pre.svelte-1arg7l8{background:#0f172acc}.detail-header-row.svelte-1p5f4l{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.drawer-title.svelte-1p5f4l{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.3}.std-meta-row.svelte-1p5f4l{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.std-badge.svelte-1p5f4l{border-radius:9999px;padding:2px 8px;font-size:.65rem;font-weight:700;display:inline-block}.std-badge-context.svelte-1p5f4l{color:#6366f1;background:#6366f11a;border:1px solid #6366f133}.std-badge-version.svelte-1p5f4l{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}.dark .std-badge-global.svelte-1p5f4l{color:#a855f7;background:#a855f71a;border:1px solid #a855f733}.dark .std-badge-repo.svelte-1p5f4l{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}.std-badge-global.svelte-1p5f4l{color:#a855f7;background:#a855f71a;border:1px solid #a855f733}.std-badge-repo.svelte-1p5f4l{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}.std-badge-parent.svelte-1p5f4l{color:#8b5cf6;background:#8b5cf614;border:1px solid #8b5cf626}.std-form-grid.svelte-1p5f4l{grid-template-columns:1fr 1fr;gap:12px;display:grid}.std-field-label.svelte-1p5f4l{color:var(--color-text-muted);margin-bottom:4px;font-size:.72rem;font-weight:700;display:block}.meta-grid.svelte-1p5f4l{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-1p5f4l{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px}.dark .meta-cell.svelte-1p5f4l{background:#1e293bcc}.meta-label.svelte-1p5f4l{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:700}.meta-value.svelte-1p5f4l{color:var(--color-text);font-size:.85rem;font-weight:600}.section-label.svelte-1p5f4l{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px;font-size:.65rem;font-weight:700}.tag-chip.svelte-1p5f4l{color:#6366f1;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;padding:2px 10px;font-size:.72rem}.md-card.svelte-1p5f4l{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-1p5f4l{background:#0f172acc}.json-pre.svelte-1p5f4l{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}.dark .json-pre.svelte-1p5f4l{background:#0f172acc}.drawer-header.svelte-9n99wb{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.drawer-title.svelte-9n99wb{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.3}.editable-title.svelte-9n99wb{cursor:pointer;border-radius:6px;align-items:center;gap:6px;margin:-2px -4px;padding:2px 4px;transition:background .15s;display:flex}.editable-title.svelte-9n99wb:hover{background:#6366f112}.edit-hint.svelte-9n99wb{opacity:0;font-size:.7rem;transition:opacity .15s}.editable-title.svelte-9n99wb:hover .edit-hint:where(.svelte-9n99wb){opacity:1}.drawer-body.svelte-9n99wb{flex:1;padding:20px;overflow-y:auto}.drawer-header.svelte-17ad9lv{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.drawer-title.svelte-17ad9lv{color:var(--color-text);word-break:break-all;font-size:1rem;font-weight:700;line-height:1.3}.type-chip.svelte-17ad9lv{text-transform:uppercase;letter-spacing:.05em;color:#0ea5e9;background:#0ea5e91a;border-radius:20px;padding:3px 8px;font-size:.7rem;font-weight:700}.drawer-body.svelte-17ad9lv{flex-direction:column;gap:20px;padding:20px 24px;display:flex;overflow-y:auto}.drawer-section.svelte-17ad9lv{flex-direction:column;gap:8px;display:flex}.section-label.svelte-17ad9lv{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:4px;font-size:.75rem;font-weight:700}.md-card.svelte-17ad9lv{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-17ad9lv{background:#0f172acc}.modal-backdrop.svelte-intd6h{z-index:58;-webkit-backdrop-filter:blur(4px);background:#010c1e73;position:fixed;inset:0}.modal-panel.svelte-intd6h{z-index:59;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:600px;max-width:96vw;max-height:92vh;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 32px 96px #010c1e33,0 8px 32px #010c1e1f,inset 0 1px #ffffffb3}html.dark .modal-panel.svelte-intd6h{background:#070f1f;border-color:#94a3b81f;box-shadow:0 32px 96px #0009,0 8px 32px #0006,inset 0 1px #ffffff0a}.modal-header.svelte-intd6h{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px 16px;display:flex}.modal-header-icon.svelte-intd6h{color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #6366f159}.modal-mode-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:4px;font-size:.62rem;font-weight:700}.modal-title-input.svelte-intd6h{width:100%;padding:5px 10px;font-size:.92rem;font-weight:700}.modal-title-text.svelte-intd6h{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;line-height:1.3;overflow:hidden}.modal-header-actions.svelte-intd6h{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.danger-btn.svelte-intd6h{color:#ef4444!important}.modal-close-btn.svelte-intd6h{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.modal-close-btn.svelte-intd6h:hover{color:#ef4444;background:#ef44441a}.modal-body.svelte-intd6h{flex-direction:column;flex:1;gap:14px;padding:18px 20px;display:flex;overflow-y:auto}.field-grid-2.svelte-intd6h{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-group.svelte-intd6h{flex-direction:column;gap:5px;display:flex}.field-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:flex}.required.svelte-intd6h{color:#ef4444;font-size:.7rem}.field-hint.svelte-intd6h{text-transform:none;letter-spacing:0;color:var(--color-text-faint);margin-left:2px;font-size:.62rem;font-style:italic;font-weight:400}.importance-badge.svelte-intd6h{border-radius:9999px;margin-left:4px;padding:1px 7px;font-size:.72rem;font-weight:800}.importance-slider.svelte-intd6h{cursor:pointer;background:0 0;border:none;border-radius:9999px;outline:none;width:100%;height:4px;margin-top:4px;padding:0}.importance-ticks.svelte-intd6h{color:var(--color-text-muted);justify-content:space-between;margin-top:2px;padding:0 2px;font-size:.6rem;display:flex}.importance-ticks.svelte-intd6h span:where(.svelte-intd6h){font-weight:600;transition:color .2s}.importance-ticks.svelte-intd6h span.active:where(.svelte-intd6h){color:var(--color-text)}.content-label-row.svelte-intd6h{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.preview-btn.svelte-intd6h{padding:3px 8px;font-size:.65rem}.content-textarea.svelte-intd6h{resize:vertical;min-height:140px;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.6}.meta-grid.svelte-intd6h{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-intd6h{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px 12px}html.dark .meta-cell.svelte-intd6h{background:#1e293bcc}.meta-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.62rem;font-weight:700}.meta-value.svelte-intd6h{color:var(--color-text);font-size:.85rem;font-weight:600}.section-block.svelte-intd6h{flex-direction:column;gap:6px;display:flex}.tags-row.svelte-intd6h{flex-wrap:wrap;gap:6px;display:flex}.tag-chip.svelte-intd6h{color:#6366f1;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;padding:2px 10px;font-size:.72rem}html.dark .tag-chip.svelte-intd6h{color:#a5b4fc;background:#6366f12e;border-color:#6366f14d}.md-card.svelte-intd6h{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}html.dark .md-card.svelte-intd6h{background:#0f172acc}.json-pre.svelte-intd6h{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}html.dark .json-pre.svelte-intd6h{background:#0f172acc}.mem-error.svelte-intd6h{color:#ef4444;background:#ef444414;border:1px solid #ef444438;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:.8rem;display:flex}.modal-footer.svelte-intd6h{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.modal-save-btn.svelte-intd6h:disabled{opacity:.45;pointer-events:none}.btn-spinner.svelte-intd6h{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:.7s linear infinite svelte-intd6h-btn-spin;display:inline-block}@keyframes svelte-intd6h-btn-spin{to{transform:rotate(360deg)}}.modal-backdrop.svelte-lenod{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content.svelte-lenod{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:700px;max-width:95vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 30px 60px #00000080}.modal-header.svelte-lenod{border-bottom:1px solid var(--color-border);background:linear-gradient(90deg,#0ea5e914,#0000);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.header-icon.svelte-lenod{background:#0ea5e91a;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.modal-header.svelte-lenod h3:where(.svelte-lenod){color:var(--color-text);margin:0;font-size:1.15rem;font-weight:700}.close-btn.svelte-lenod{opacity:.6;transition:opacity .2s}.close-btn.svelte-lenod:hover{opacity:1}.drop-zone.svelte-lenod{border:2px dashed var(--color-border);background:#f1f5f908;border-radius:16px;justify-content:center;align-items:center;width:100%;height:240px;transition:all .3s;display:flex}.drop-zone.svelte-lenod:hover{background:#0ea5e908;border-color:#0ea5e9}.drop-zone-content.svelte-lenod{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.drop-zone-content.svelte-lenod p:where(.svelte-lenod){color:var(--color-text);margin:0;font-size:.95rem}.preview-container.svelte-lenod{border:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:12px;overflow:hidden}.preview-header.svelte-lenod{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);background:#0000000d;padding:8px 12px;font-size:.75rem;font-weight:700}.table-wrapper.svelte-lenod{max-height:200px;overflow-y:auto}table.svelte-lenod{border-collapse:collapse;width:100%;font-size:.75rem}th.svelte-lenod{text-align:left;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);z-index:1;background:#00000005;padding:8px 12px;font-weight:600;position:sticky;top:0}td.svelte-lenod{border-bottom:1px solid var(--color-border);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:200px;padding:8px 12px;overflow:hidden}tr.svelte-lenod:last-child td:where(.svelte-lenod){border-bottom:none}.modal-footer.svelte-lenod{border-top:1px solid var(--color-border);background:#00000005;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.error-msg.svelte-lenod{color:#f87171;background:#ef444414;border:1px solid #ef444433;border-radius:8px;margin-top:16px;padding:10px 14px;font-size:.8rem;font-weight:500}.spinner.svelte-lenod{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite svelte-lenod-spin}@keyframes svelte-lenod-spin{to{transform:rotate(360deg)}}.hidden.svelte-lenod{display:none}.modal-backdrop.svelte-l0ytfo{z-index:58;-webkit-backdrop-filter:blur(4px);background:#010c1e73;position:fixed;inset:0}.modal-panel.svelte-l0ytfo{z-index:59;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:520px;max-width:95vw;max-height:92vh;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 32px 96px #010c1e33,0 8px 32px #010c1e1f,inset 0 1px #ffffffb3}html.dark .modal-panel.svelte-l0ytfo{background:#070f1f;border-color:#94a3b81f;box-shadow:0 32px 96px #0009,0 8px 32px #0006,inset 0 1px #ffffff0a}.modal-header.svelte-l0ytfo{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px 16px;display:flex}.modal-header-icon.svelte-l0ytfo{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #0ea5e94d}.modal-title.svelte-l0ytfo{color:var(--color-text);letter-spacing:-.01em;font-size:.9rem;font-weight:800}.modal-subtitle.svelte-l0ytfo{color:var(--color-text-muted);margin-top:1px;font-size:.68rem}.modal-close-btn.svelte-l0ytfo{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:background .15s,color .15s;display:flex}.modal-close-btn.svelte-l0ytfo:hover{color:#ef4444;background:#ef44441a}.modal-body.svelte-l0ytfo{flex-direction:column;flex:1;gap:14px;padding:18px 20px;display:flex}.field-grid-2.svelte-l0ytfo{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-group.svelte-l0ytfo{flex-direction:column;gap:5px;display:flex}.field-label.svelte-l0ytfo{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:flex}.required.svelte-l0ytfo{color:#ef4444;font-size:.7rem}.field-hint.svelte-l0ytfo{color:var(--color-text-faint);text-transform:none;letter-spacing:0;margin-left:auto;font-size:.62rem;font-weight:500}.modal-textarea.svelte-l0ytfo{resize:vertical;min-height:96px;font-size:.82rem;line-height:1.55}.modal-footer.svelte-l0ytfo{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.modal-save-btn.svelte-l0ytfo:disabled{opacity:.45;pointer-events:none}.ref-header.svelte-w0wd5z{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ref-total-badge.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933;border-radius:9999px;padding:2px 8px;font-size:.62rem;font-weight:700}.ref-search-wrap.svelte-w0wd5z{flex:1;max-width:300px;position:relative}.ref-search-icon.svelte-w0wd5z{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.ref-search-input.svelte-w0wd5z{width:100%;padding-left:32px;padding-right:28px;font-size:.8rem}.ref-clear-btn.svelte-w0wd5z{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:4px;padding:2px;transition:color .15s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.ref-clear-btn.svelte-w0wd5z:hover{color:var(--color-text)}.ref-body.svelte-w0wd5z{grid-template-columns:160px 1fr;align-items:start;gap:16px;display:grid}@media (width<=700px){.ref-body.svelte-w0wd5z{grid-template-columns:1fr}}.ref-sidebar.svelte-w0wd5z{border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:3px;padding:12px;display:flex;position:sticky;top:80px}.ref-sidebar-label.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);padding:4px 8px 8px;font-size:.6rem;font-weight:700}.ref-cat-btn.svelte-w0wd5z{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:7px;width:100%;padding:7px 10px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.ref-cat-btn.svelte-w0wd5z:hover{color:var(--color-text);background:#0ea5e90f}.ref-cat-btn.active.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}html.dark .ref-cat-btn.active.svelte-w0wd5z{color:#38bdf8;background:#0ea5e926;border-color:#38bdf840}.ref-cat-count.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1f;border-radius:9999px;margin-left:auto;padding:1px 6px;font-size:.62rem;font-weight:700}.ref-main.svelte-w0wd5z{flex-direction:column;display:flex}.ref-section-header.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);align-items:center;gap:6px;margin-bottom:10px;font-size:.72rem;font-weight:700;display:flex}.ref-section-count.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1a;border-radius:9999px;padding:1px 6px;font-size:.6rem;font-weight:700}.ref-grid.svelte-w0wd5z{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.ref-card.svelte-w0wd5z{cursor:pointer;background:#fff;border:1px solid #0000000f;border-radius:16px;flex-direction:column;gap:8px;padding:18px 20px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #00000008}.ref-card.svelte-w0wd5z:before{content:"";background:0 0;height:3px;transition:all .2s;position:absolute;top:0;left:0;right:0}.ref-card.svelte-w0wd5z:hover{border-color:#00000014;transform:translateY(-2px);box-shadow:0 12px 24px -4px #00000014,0 8px 12px -6px #0000000a}html.dark .ref-card.svelte-w0wd5z{background:#0a1226cc;border:1px solid #ffffff14;box-shadow:0 4px 12px #0003}html.dark .ref-card.svelte-w0wd5z:hover{border-color:#ffffff26;box-shadow:0 10px 30px #0006}.ref-card-tool.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#6366f1,#a855f7)}.ref-card-prompt.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#a855f7,#ec4899)}.ref-card-resource.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#10b981,#3b82f6)}.ref-card-top.svelte-w0wd5z{align-items:center;gap:6px;display:flex}.ref-type-badge.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.06em;border:1px solid #0000;border-radius:9999px;align-items:center;gap:4px;padding:2px 7px;font-size:.6rem;font-weight:700;display:inline-flex}.ref-type-tool.svelte-w0wd5z{color:#6366f1;background:#6366f11a;border-color:#6366f133}.ref-type-prompt.svelte-w0wd5z{color:#a855f7;background:#a855f71a;border-color:#a855f733}html.dark .ref-type-tool.svelte-w0wd5z{color:#818cf8}html.dark .ref-type-prompt.svelte-w0wd5z{color:#c084fc}.ref-card-name.svelte-w0wd5z{color:var(--color-text);word-break:break-word;font-size:.82rem;font-weight:700}.ref-card-desc.svelte-w0wd5z{color:var(--color-text-muted);font-size:.72rem;line-height:1.55}.ref-params.svelte-w0wd5z{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.ref-param-tag.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e914;border:1px solid #0ea5e92e;border-radius:5px;padding:1px 6px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.65rem}.ref-param-more.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1a;border-color:#64748b33}html.dark .ref-param-tag.svelte-w0wd5z{color:#38bdf8;background:#0ea5e91f;border-color:#38bdf833}.eco-section.svelte-w0wd5z{border-top:1px solid var(--color-border);margin-top:28px;padding-top:20px}html.dark .eco-section.svelte-w0wd5z{border-top-color:#94a3b81a}.eco-grid.svelte-w0wd5z{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.eco-card.svelte-w0wd5z{border:1px solid var(--color-border);background:var(--glass-bg);color:inherit;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:14px;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;transition:all .2s;display:flex}html.dark .eco-card.svelte-w0wd5z{background:var(--panel-dark);border-color:var(--panel-dark-border)}.eco-card.svelte-w0wd5z:hover{box-shadow:0 8px 24px #0ea5e914, var(--glass-shadow-elevated);border-color:#0ea5e940;transform:translateY(-2px)}html.dark .eco-card.svelte-w0wd5z:hover{box-shadow:0 8px 24px #0ea5e91f, var(--panel-dark-shadow);border-color:#38bdf840}.eco-card-icon.svelte-w0wd5z{width:38px;height:38px;color:var(--color-primary);background:linear-gradient(135deg,#0ea5e91f,#6366f11f);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.eco-card-body.svelte-w0wd5z{flex:1;min-width:0}.eco-card-name.svelte-w0wd5z{color:var(--color-text);font-size:.82rem;font-weight:700}.eco-card-desc.svelte-w0wd5z{color:var(--color-text-muted);margin-top:2px;font-size:.68rem;line-height:1.45}.eco-card-link.svelte-w0wd5z{color:var(--color-text-muted);opacity:.5;flex-shrink:0;transition:opacity .2s,color .2s}.eco-card.svelte-w0wd5z:hover .eco-card-link:where(.svelte-w0wd5z){opacity:1;color:var(--color-primary)}.chat-backdrop.svelte-x7gsaf{z-index:49;cursor:default;background:0 0;position:fixed;inset:0}.chat-fab.svelte-x7gsaf{z-index:50;cursor:pointer;color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .2s,box-shadow .2s;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 4px 20px #0ea5e973}.chat-fab.svelte-x7gsaf:after{content:"";pointer-events:none;border:2px solid #0ea5e966;border-radius:50%;animation:2.4s ease-out infinite svelte-x7gsaf-fab-pulse;position:absolute;inset:-4px}.chat-fab.svelte-x7gsaf:hover{transform:scale(1.08);box-shadow:0 6px 28px #0ea5e999}@keyframes svelte-x7gsaf-fab-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.45)}}.chat-popup.svelte-x7gsaf{z-index:50;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;width:380px;height:560px;display:flex;position:fixed;bottom:88px;right:28px;overflow:hidden;box-shadow:0 8px 40px #0000002e,0 4px 16px #0000001a}html.dark .chat-popup.svelte-x7gsaf{background:#0b141a;border-color:#94a3b81f;box-shadow:0 8px 40px #00000080}.chat-popup-header.svelte-x7gsaf{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.chat-popup-title.svelte-x7gsaf{align-items:center;gap:10px;display:flex}.chat-popup-avatar.svelte-x7gsaf{background:#fff3;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.chat-popup-name.svelte-x7gsaf{font-size:.85rem;font-weight:700;line-height:1.2}.chat-popup-status.svelte-x7gsaf{opacity:.8;font-size:.62rem;font-weight:600}.chat-popup-close.svelte-x7gsaf{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:background .2s;display:flex}.chat-popup-close.svelte-x7gsaf:hover{background:#ffffff59}.chat-popup-body.svelte-x7gsaf{scroll-behavior:smooth;flex-direction:column;flex:1;gap:8px;min-height:0;padding:16px;display:flex;overflow-y:auto}html.dark .chat-popup-body.svelte-x7gsaf{background-image:radial-gradient(#ffffff05 1px,#0000 1px);background-size:20px 20px}.popup-load-more.svelte-x7gsaf{color:var(--color-text-muted);opacity:.7;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:.68rem;font-weight:600;display:flex}.popup-empty.svelte-x7gsaf{text-align:center;color:var(--color-text-muted);padding:60px 16px}.popup-empty.svelte-x7gsaf div:where(.svelte-x7gsaf):first-of-type{margin-top:12px;font-size:.9rem;font-weight:600}.popup-empty.svelte-x7gsaf div:where(.svelte-x7gsaf):last-child{opacity:.7;margin-top:4px;font-size:.75rem}.popup-date-header.svelte-x7gsaf{justify-content:center;margin:8px 0 4px;display:flex}.popup-date-header.svelte-x7gsaf span:where(.svelte-x7gsaf){color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;background:#ffffffe6;border:1px solid #0000000d;border-radius:8px;padding:3px 10px;font-size:.62rem;font-weight:700}html.dark .popup-date-header.svelte-x7gsaf span:where(.svelte-x7gsaf){color:#8696a0;background:#182229}.popup-bubble-row.svelte-x7gsaf{width:100%;display:flex}.popup-bubble-right.svelte-x7gsaf{justify-content:flex-end}.popup-bubble-left.svelte-x7gsaf{justify-content:flex-start}.popup-bubble-wrap.svelte-x7gsaf{max-width:85%}.popup-chat-bubble.svelte-x7gsaf{border-radius:10px;padding:6px 10px;font-size:.78rem;line-height:1.35;position:relative;box-shadow:0 1px .5px #0000001a}.popup-chat-bubble-action.svelte-x7gsaf{color:#111b21;background:#dcf8c6}html.dark .popup-chat-bubble-action.svelte-x7gsaf{color:#e9edef;background:#056162}.popup-chat-bubble-mcp.svelte-x7gsaf{color:#111b21;background:#fff}html.dark .popup-chat-bubble-mcp.svelte-x7gsaf{color:#e9edef;background:#202c33}.popup-action-badge.svelte-x7gsaf{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;align-items:center;gap:3px;margin-bottom:3px;padding:1px 5px;font-size:.55rem;font-weight:800;display:inline-flex}.popup-action-main.svelte-x7gsaf{word-break:break-word;font-size:.78rem;font-weight:600}.popup-action-sub.svelte-x7gsaf{opacity:.6;margin-top:1px;font-size:.65rem}.popup-mcp-sender.svelte-x7gsaf{color:#34b7f1;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:.62rem;font-weight:800}.popup-markdown.svelte-x7gsaf{font-size:.75rem;line-height:1.45}.popup-markdown p{margin:.3em 0}.popup-read-more.svelte-x7gsaf{color:#34b7f1;cursor:pointer;background:0 0;border:none;margin-top:2px;padding:2px 0;font-size:.65rem;font-weight:700;display:block}.popup-read-more.svelte-x7gsaf:hover{text-decoration:underline}.chat-popup-footer.svelte-x7gsaf{border-top:1px solid var(--color-border);background:var(--glass-bg);flex-shrink:0;padding:8px 12px}html.dark .chat-popup-footer.svelte-x7gsaf{background:#060c1cb3;border-top-color:#94a3b81a}.chat-popup-footer .chat-input-row{border-radius:20px;padding:2px 2px 2px 14px}.chat-popup-footer .chat-input-row input{padding:6px 0;font-size:.8rem}.chat-popup-footer .chat-send-btn{width:32px;height:32px}@media (width<=640px){.chat-fab.svelte-x7gsaf{bottom:max(18px, env(safe-area-inset-bottom));width:48px;height:48px;right:14px}.chat-fab.svelte-x7gsaf:after{display:none}.chat-popup.svelte-x7gsaf{width:calc(100vw - 16px);height:55vh;max-height:500px;bottom:72px;right:8px}}.feature-shell.svelte-owkwhr{flex-direction:column;gap:14px;display:flex}.feature-toolbar.svelte-owkwhr{grid-template-columns:1fr auto auto;align-items:start;gap:14px;padding:16px;display:grid}.toolbar-title.svelte-owkwhr{align-items:center;gap:10px;display:flex}.toolbar-action.svelte-owkwhr{justify-self:end}.toolbar-actions.svelte-owkwhr{flex-wrap:wrap;justify-self:end;gap:8px;display:flex}.file-input.svelte-owkwhr{display:none}.toolbar-subtitle.svelte-owkwhr{color:var(--color-text-muted);margin-top:2px;font-size:.72rem;font-weight:600;line-height:1.45}.insight-strip.svelte-owkwhr{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.insight-card.svelte-owkwhr{border:1px solid var(--color-border);background:#ffffff52;border-radius:14px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.insight-card.svelte-owkwhr span:where(.svelte-owkwhr){text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.66rem;font-weight:800}.insight-card.svelte-owkwhr strong:where(.svelte-owkwhr){color:var(--color-text);font-size:.84rem}.toolbar-controls.svelte-owkwhr{grid-column:1/-1;grid-template-columns:minmax(220px,1.2fr) minmax(130px,.6fr) minmax(180px,1fr) minmax(140px,.6fr);gap:10px;display:grid}.mem-table-wrap.svelte-owkwhr{border:1px solid var(--color-border);background:var(--color-surface,#fff);border-radius:14px;overflow-x:auto}.mem-table.svelte-owkwhr{border-collapse:collapse;width:100%;min-width:600px}.mem-thead-row.svelte-owkwhr{border-bottom:1px solid var(--color-border);background:#f8fafce6}html.dark .mem-thead-row.svelte-owkwhr{background:#0a1226d9}.mem-th.svelte-owkwhr{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:.7rem;font-weight:700}.mem-td.svelte-owkwhr{border-bottom:1px solid var(--color-border);padding:10px 12px}html.dark .mem-td.svelte-owkwhr{border-color:#94a3b814}.mem-row.svelte-owkwhr{cursor:pointer;transition:background .15s}.mem-row.svelte-owkwhr:hover{background:#f1f5f9b3}html.dark .mem-row.svelte-owkwhr:hover{background:#0ea5e90d}.mem-row.svelte-owkwhr:last-child .mem-td:where(.svelte-owkwhr){border-bottom:none}.row-actions.svelte-owkwhr{opacity:0;white-space:nowrap;align-items:center;gap:4px;transition:opacity .15s;display:flex}.mem-row.svelte-owkwhr:hover .row-actions:where(.svelte-owkwhr){opacity:1}.row-action-btn.svelte-owkwhr{cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.edit-btn.svelte-owkwhr:hover{color:#0ea5e9;background:#0ea5e91a}html.dark .edit-btn.svelte-owkwhr:hover{color:#38bdf8;background:#0ea5e926}.delete-btn.svelte-owkwhr:hover{color:#ef4444;background:#ef44441a}html.dark .delete-btn.svelte-owkwhr:hover{color:#fca5a5;background:#ef444426}.scope-chip.svelte-owkwhr{border-radius:9999px;padding:2px 8px;font-size:.68rem;font-weight:700;display:inline-block}.scope-global.svelte-owkwhr{color:#a855f7;background:#a855f71a;border:1px solid #a855f733}.scope-repo.svelte-owkwhr{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}.error-banner.svelte-owkwhr{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:700}.notice-banner.svelte-owkwhr{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:700}@media (width<=1100px){.insight-strip.svelte-owkwhr,.toolbar-controls.svelte-owkwhr,.feature-toolbar.svelte-owkwhr{grid-template-columns:1fr}.toolbar-action.svelte-owkwhr,.toolbar-actions.svelte-owkwhr{justify-content:center;justify-self:stretch}}.feature-shell.svelte-1ik2acm{flex-direction:column;gap:14px;display:flex}.feature-toolbar.svelte-1ik2acm{grid-template-columns:1fr auto;align-items:start;gap:14px;padding:16px;display:grid}.toolbar-title.svelte-1ik2acm{align-items:center;gap:10px;display:flex}.toolbar-action.svelte-1ik2acm{justify-self:end}.toolbar-subtitle.svelte-1ik2acm{color:var(--color-text-muted);margin-top:2px;font-size:.72rem;font-weight:600;line-height:1.45}.section-label.svelte-1ik2acm{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.65rem;font-weight:700}.insight-strip.svelte-1ik2acm{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.insight-card.svelte-1ik2acm{border:1px solid var(--color-border);background:#ffffff52;border-radius:14px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.insight-card.svelte-1ik2acm span:where(.svelte-1ik2acm){text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.66rem;font-weight:800}.insight-card.svelte-1ik2acm strong:where(.svelte-1ik2acm){color:var(--color-text);font-size:.84rem}.toolbar-controls.svelte-1ik2acm{grid-column:1/-1;grid-template-columns:160px minmax(180px,1fr) auto;align-items:center;gap:10px;display:grid}.mem-table-wrap.svelte-1ik2acm{border:1px solid var(--color-border);background:var(--color-surface,#fff);border-radius:14px;overflow-x:auto}.mem-table.svelte-1ik2acm{border-collapse:collapse;width:100%;min-width:750px}.mem-thead-row.svelte-1ik2acm{border-bottom:1px solid var(--color-border);background:#f8fafce6}html.dark .mem-thead-row.svelte-1ik2acm{background:#0a1226d9}.mem-th.svelte-1ik2acm{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:.7rem;font-weight:700}.mem-td.svelte-1ik2acm{border-bottom:1px solid var(--color-border);padding:10px 12px}html.dark .mem-td.svelte-1ik2acm{border-color:#94a3b814}.mem-row.svelte-1ik2acm{cursor:pointer;transition:background .15s}.mem-row.svelte-1ik2acm:hover{background:#f1f5f9b3}html.dark .mem-row.svelte-1ik2acm:hover{background:#0ea5e90d}.mem-row.svelte-1ik2acm:last-child .mem-td:where(.svelte-1ik2acm){border-bottom:none}.row-actions.svelte-1ik2acm{opacity:0;white-space:nowrap;align-items:center;gap:4px;transition:opacity .15s;display:flex}.mem-row.svelte-1ik2acm:hover .row-actions:where(.svelte-1ik2acm){opacity:1}.row-action-btn.svelte-1ik2acm{cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.delete-btn.svelte-1ik2acm:hover{color:#ef4444;background:#ef44441a}html.dark .delete-btn.svelte-1ik2acm:hover{color:#fca5a5;background:#ef444426}.status-pill.svelte-1ik2acm{text-transform:uppercase;border:1px solid var(--color-border);border-radius:999px;padding:2px 8px;font-size:.67rem;font-weight:850;display:inline-block}.status-pending.svelte-1ik2acm{color:#0369a1;background:#0ea5e91f}.status-accepted.svelte-1ik2acm{color:#047857;background:#10b9811f}.status-rejected.svelte-1ik2acm{color:#b91c1c;background:#ef44441f}.status-expired.svelte-1ik2acm{color:#64748b;background:#64748b1f}.claims-section.svelte-1ik2acm{border:1px solid var(--color-border);background:var(--color-surface,#fff);border-radius:14px;padding:16px}.claims-header.svelte-1ik2acm{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.claim-list.svelte-1ik2acm{flex-direction:column;gap:8px;display:flex}.claim-row.svelte-1ik2acm{border:1px solid var(--color-border);background:#ffffff0a;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.row-title.svelte-1ik2acm{color:var(--color-text);margin-bottom:4px;font-size:.82rem;font-weight:700}.row-meta.svelte-1ik2acm{color:var(--color-text-muted);flex-wrap:wrap;gap:8px;font-size:.72rem;font-weight:600;display:flex}.muted-state.svelte-1ik2acm{color:var(--color-text-muted);text-align:center;padding:24px 4px;font-size:.85rem}.empty-claims.svelte-1ik2acm{color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.empty-title.svelte-1ik2acm{color:var(--color-text);font-size:.92rem;font-weight:850}.empty-copy.svelte-1ik2acm{max-width:260px;font-size:.78rem;line-height:1.45}.error-banner.svelte-1ik2acm{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:700}@media (width<=900px){.insight-strip.svelte-1ik2acm,.toolbar-controls.svelte-1ik2acm{grid-template-columns:1fr}}.kg-relation-hint.svelte-fsq8sk{color:var(--color-text);background:#3b82f614;border-bottom:1px solid #3b82f62e;align-items:center;gap:8px;padding:10px 16px;font-size:.8rem;font-weight:600;display:flex}.kg-relation-hint.svelte-fsq8sk svg{color:var(--color-primary);flex-shrink:0}.kg-toolbar.svelte-1ysja8i{border-bottom:1px solid var(--color-border);background:#ffffff0d;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dark .kg-toolbar.svelte-1ysja8i{border-color:#94a3b81a}.kg-toolbar-left.svelte-1ysja8i{align-items:center;gap:12px;display:flex}.kg-toolbar-right.svelte-1ysja8i{align-items:center;gap:6px;display:flex}.kg-stats.svelte-1ysja8i{color:var(--color-text-muted);font-size:.72rem;font-weight:600}.kg-error.svelte-1ysja8i{color:var(--color-danger);background:#ef444414;border-bottom:1px solid #ef444426;align-items:center;gap:8px;padding:10px 16px;font-size:.8rem;font-weight:600;display:flex}.kg-loading,.kg-empty{color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-size:.85rem;display:flex}.kg-empty svg{opacity:.3}@media (width<=640px){.kg-toolbar.svelte-1ysja8i{flex-direction:column;align-items:flex-start;gap:10px}.kg-toolbar-right.svelte-1ysja8i{flex-wrap:wrap}}.kg-container.svelte-1esn54r{background:var(--glass-bg);border:1px solid var(--glass-border);height:calc(100vh - 180px);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);border-radius:24px;flex-direction:column;display:flex;overflow:hidden}.dark .kg-container.svelte-1esn54r{background:var(--panel-dark);border-color:var(--panel-dark-border);box-shadow:var(--panel-dark-shadow)}.kg-canvas-wrap{flex:1;position:relative;overflow:hidden}.kg-canvas-wrap canvas{width:100%;height:100%;display:block}.modal-overlay.svelte-18jfbxu{z-index:60;-webkit-backdrop-filter:blur(6px);background:#010c1e8c;position:fixed;inset:0}.modal-panel.svelte-18jfbxu{z-index:61;background:var(--glass-bg-ultra);-webkit-backdrop-filter:blur(28px)saturate(1.2);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-elevated);border-radius:16px;width:min(400px,90vw);max-height:80vh;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.dark .modal-panel.svelte-18jfbxu{background:var(--panel-dark-ultra);border-color:var(--panel-dark-border);box-shadow:var(--panel-dark-shadow)}.modal-header.svelte-18jfbxu{color:var(--color-text);border-bottom:1px solid var(--color-border);align-items:center;gap:8px;padding:16px 20px;font-size:.9rem;font-weight:800;display:flex}.dark .modal-header.svelte-18jfbxu{border-color:#94a3b81a}.modal-body.svelte-18jfbxu{padding:16px 20px}.modal-footer.svelte-18jfbxu{border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;display:flex}.dark .modal-footer.svelte-18jfbxu{border-color:#94a3b81a}.form-group.svelte-18jfbxu{margin-bottom:12px}.form-label.svelte-18jfbxu{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:4px;font-size:.72rem;font-weight:700;display:block}.arena-root.svelte-1pykpun{border-radius:0;padding:0;overflow:hidden}.arena-hdr.svelte-1pykpun{border-bottom:1px solid var(--color-border);background:#ffffff08;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.arena-hdr-left.svelte-1pykpun{align-items:center;gap:10px;display:flex}.arena-icon.svelte-1pykpun{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#fff;width:36px;height:36px;box-shadow:0 4px 12px var(--glow-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.arena-sub.svelte-1pykpun{color:var(--color-text-muted);margin-top:1px;font-size:.67rem;font-weight:600}.arena-hdr-right.svelte-1pykpun{align-items:center;display:flex}.badge.svelte-1pykpun{border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.7rem;font-weight:700;display:flex}.badge.loading.svelte-1pykpun{color:var(--color-text-muted);background:#64748b1a}.badge.error.svelte-1pykpun{color:#ef4444;background:#ef44441a}.badge.live.svelte-1pykpun{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.pulse-dot.svelte-1pykpun{background:#10b981;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1.8s ease-in-out infinite status-blink}.arena-wrap.svelte-1pykpun{background:var(--color-bg);width:100%;position:relative}.arena-canvas.svelte-1pykpun{width:100%;height:auto;display:block}.arena-empty.svelte-1pykpun{color:var(--color-text-muted);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.arena-empty-sub.svelte-1pykpun{opacity:.6;text-align:center;max-width:280px;font-size:.73rem}.agent-tip.svelte-1pykpun{z-index:20;pointer-events:none;border:1px solid var(--color-border);background:var(--color-surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;min-width:168px;padding:10px 12px;font-size:.77rem;position:absolute;box-shadow:0 8px 28px #0000002e}.tip-name.svelte-1pykpun{color:var(--color-text);align-items:center;gap:6px;margin-bottom:7px;font-size:.82rem;font-weight:800;display:flex}.tip-dot.svelte-1pykpun{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tip-row.svelte-1pykpun{color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:8px;padding:1px 0;font-size:.73rem;display:flex}.tip-key.svelte-1pykpun{text-transform:uppercase;letter-spacing:.05em;opacity:.65;font-size:.67rem;font-weight:700}.tip-state.svelte-1pykpun{font-weight:700}.tip-state.processing.svelte-1pykpun{color:#a855f7}.tip-state.idle.svelte-1pykpun{color:#64748b}.tip-state.claiming.svelte-1pykpun{color:#0ea5e9}.tip-state.handoff_out.svelte-1pykpun{color:#f59e0b}.tip-state.handoff_in.svelte-1pykpun{color:#10b981}.tip-repos.svelte-1pykpun{text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:.68rem;overflow:hidden}.arena-footer.svelte-1pykpun{border-top:1px solid var(--color-border);background:#ffffff05;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;padding:8px 20px;display:flex}.legend-row.svelte-1pykpun{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.legend-item.svelte-1pykpun{color:var(--color-text-muted);align-items:center;gap:5px;font-size:.68rem;font-weight:600;display:flex}.lg-dot.svelte-1pykpun{border-radius:50%;flex-shrink:0;width:8px;height:8px}.lg-dash.svelte-1pykpun{border-top:2px dashed #6366f18c;flex-shrink:0;width:18px;height:0;display:inline-block}.lg-bubble.svelte-1pykpun{background:#a855f7;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:1.8s ease-in-out infinite status-blink}.global-shell.svelte-1eglegg{flex-direction:column;gap:14px;display:flex}.panel-card.svelte-1eglegg{padding:16px}.panel-header.svelte-1eglegg{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.panel-copy.svelte-1eglegg{color:var(--color-text-muted);max-width:620px;font-size:.76rem;line-height:1.45}.repo-focus.svelte-1eglegg{color:#6366f1;background:#6366f114;border:1px solid #6366f129;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.68rem;font-weight:800;display:inline-flex}.summary-grid.svelte-1eglegg{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.summary-card.svelte-1eglegg{border:1px solid var(--color-border);text-align:center;border-radius:14px;padding:12px 10px}.summary-icon.svelte-1eglegg{opacity:.85;justify-content:center;margin-bottom:4px;display:flex}.summary-value.svelte-1eglegg{letter-spacing:-.04em;font-size:1.45rem;font-weight:900;line-height:1}.summary-label.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:.62rem;font-weight:800}.grid-two.svelte-1eglegg{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.subheading.svelte-1eglegg{color:var(--color-text);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.72rem;font-weight:800}.mini-grid.svelte-1eglegg{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mini-card.svelte-1eglegg{border:1px solid var(--color-border);background:#ffffff08;border-radius:12px;padding:12px}.mini-icon.svelte-1eglegg{opacity:.8;margin-bottom:6px}.mini-value.svelte-1eglegg{letter-spacing:-.03em;font-size:1.2rem;font-weight:900;line-height:1}.mini-label.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:.64rem;font-weight:800}.repo-table.svelte-1eglegg{flex-direction:column;gap:8px;display:flex}.repo-table-head.svelte-1eglegg,.repo-table-row.svelte-1eglegg{grid-template-columns:minmax(180px,1.4fr) 90px minmax(190px,1.2fr) minmax(180px,1.2fr) 110px;align-items:center;gap:12px;display:grid}.repo-table-head.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;padding:0 10px 6px;font-size:.62rem;font-weight:800}.repo-table-row.svelte-1eglegg{border:1px solid var(--color-border);background:#ffffff0a;border-radius:12px;padding:12px 10px}.repo-table-row.selected.svelte-1eglegg{background:#6366f10f;border-color:#6366f147}.repo-name.svelte-1eglegg{color:var(--color-text);font-size:.84rem;font-weight:800}.repo-meta.svelte-1eglegg,.last-activity.svelte-1eglegg{color:var(--color-text-muted);font-size:.68rem;font-weight:600}.pressure-pill.svelte-1eglegg{color:#ef4444;background:#ef444414;border:1px solid #ef444429;border-radius:999px;justify-content:center;align-items:center;min-width:56px;padding:6px 10px;font-size:.78rem;font-weight:900;display:inline-flex}.repo-stats.svelte-1eglegg{flex-wrap:wrap;gap:6px;display:flex}.stat-chip.svelte-1eglegg{border:1px solid #0000;border-radius:999px;align-items:center;padding:3px 7px;font-size:.62rem;font-weight:800;display:inline-flex}.stat-chip.active.svelte-1eglegg{color:#8b5cf6;background:#8b5cf61a;border-color:#8b5cf629}.stat-chip.pending.svelte-1eglegg{color:#0ea5e9;background:#0ea5e91a;border-color:#0ea5e929}.stat-chip.blocked.svelte-1eglegg{color:#ef4444;background:#ef44441a;border-color:#ef444429}.stat-chip.backlog.svelte-1eglegg{color:#64748b;background:#64748b1a;border-color:#64748b29}.stat-chip.claim.svelte-1eglegg{color:#10b981;background:#10b9811a;border-color:#10b98129}.stat-chip.handoff.svelte-1eglegg{color:#6366f1;background:#6366f11a;border-color:#6366f129}.stat-chip.stale.svelte-1eglegg{color:#f97316;background:#f973161a;border-color:#f9731629}.empty-state.svelte-1eglegg{min-height:120px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.82rem;display:flex}@media (width<=1080px){.grid-two.svelte-1eglegg,.mini-grid.svelte-1eglegg{grid-template-columns:1fr}.repo-table-head.svelte-1eglegg{display:none}.repo-table-row.svelte-1eglegg{grid-template-columns:1fr;align-items:flex-start}}.card-body{padding:16px}.card-section-title{margin-bottom:10px}.empty-state.svelte-1m88iwd{text-align:center;padding:80px 20px}.empty-state-icon.svelte-1m88iwd{background:linear-gradient(135deg,#0ea5e926,#6366f126);border:1px solid #0ea5e933;border-radius:20px;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:20px;display:inline-flex}.empty-state-title.svelte-1m88iwd{color:var(--color-text);letter-spacing:-.02em;margin-bottom:8px;font-size:1.25rem;font-weight:800}.empty-state-text.svelte-1m88iwd{color:var(--color-text-muted);font-size:.875rem}.repo-badge.svelte-1m88iwd{color:var(--color-primary);background:#6366f114;border:1px solid #6366f129;border-radius:999px;padding:4px 8px;font-size:.68rem;font-weight:800}.muted-text.svelte-1m88iwd{color:var(--color-text-muted);font-size:.8rem}@media (width<=900px){.dashboard-grid.svelte-1m88iwd,.repo-pulse-grid.svelte-1m88iwd{grid-template-columns:1fr!important}}.arena-fullwidth.svelte-1m88iwd{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px}@media (width<=1024px){.arena-fullwidth.svelte-1m88iwd{width:calc(100% + 24px);margin-left:-12px;margin-right:-12px}}
|
|
1
|
+
@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--glass-bg:#ffffff85;--glass-bg-strong:#ffffffb8;--glass-bg-ultra:#ffffffe0;--glass-border:#fff6;--glass-border-inner:#ffffffb3;--glass-shadow:0 20px 70px #0f172a1a, 0 4px 16px #0f172a0f;--glass-shadow-elevated:0 32px 96px #0f172a29, 0 8px 32px #0f172a14;--glass-blur:blur(28px) saturate(1.2);--panel-dark:#060c1cb3;--panel-dark-strong:#040916e0;--panel-dark-ultra:#020610f5;--panel-dark-border:#94a3b81a;--panel-dark-border-glow:#38bdf833;--panel-dark-shadow:0 28px 90px #02061799, inset 0 1px 0 #94a3b80f;--glow-primary:#0ea5e959;--glow-accent:#6366f159;--glow-success:#10b98159;--glow-danger:#ef444459;--glow-purple:#a855f759;--glow-cyan:#06b6d459;--sidebar-width:280px;--sidebar-collapsed-width:72px;--header-height:60px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--color-bg:#f0f8ff;--color-surface:#fff;--color-border:#e1ecf7;--color-text:#0a1628;--color-text-muted:#556f8a;--color-text-faint:#8faec4;--color-primary:#0ea5e9;--color-primary-dark:#0284c7;--color-primary-light:#38bdf8;--color-accent:#6366f1;--color-accent-dark:#4f46e5;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--color-purple:#a855f7;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);--duration-fast:.15s;--duration-base:.25s;--duration-slow:.4s}.dark{--color-bg:#010c1e;--color-surface:#070f1f;--color-border:#94a3b81a;--color-text:#e9f1fa;--color-text-muted:#7fa3be;--color-text-faint:#4a6782;--color-primary:#38bdf8;--color-primary-dark:#0ea5e9;--color-primary-light:#7dd3fc}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(at 8% 10%,#38bdf847 0%,#0000 38%),radial-gradient(at 92% 8%,#6366f12e 0%,#0000 32%),radial-gradient(at 75% 88%,#a855f71f 0%,#0000 28%),radial-gradient(at 20% 75%,#0ea5e91a 0%,#0000 26%),linear-gradient(160deg,#eef8ff 0%,#f0f4ff 45%,#f5f0ff 100%) fixed;min-height:100vh;font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.5;transition:background .5s}html.dark{background:radial-gradient(at 8% 10%,#0ea5e924 0%,#0000 38%),radial-gradient(at 92% 8%,#4338ca1f 0%,#0000 32%),radial-gradient(at 75% 88%,#581c871a 0%,#0000 28%),radial-gradient(at 20% 75%,#0ea5e90f 0%,#0000 26%),linear-gradient(160deg,#010c1e 0%,#040d1e 45%,#050c1a 100%) fixed}body{min-height:100vh;color:var(--color-text);transition:color var(--duration-base) ease;background:0 0;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3}code,pre{font-family:JetBrains Mono,Fira Code,monospace}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-dark)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b840;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b873}.dark ::-webkit-scrollbar-thumb{background:#3341558c}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);position:relative}.glass:before{content:"";border-radius:inherit;border:1px solid var(--glass-border-inner);opacity:.6;pointer-events:none;z-index:0;border-bottom-color:#0000;border-right-color:#0000;position:absolute;inset:0}.dark .glass{background:var(--panel-dark);border-color:var(--panel-dark-border);box-shadow:var(--panel-dark-shadow)}.dark .glass:before{opacity:.8;border-color:#94a3b812 #0000 #0000 #94a3b812}.glass-strong{background:var(--glass-bg-strong)!important}.dark .glass-strong{background:var(--panel-dark-strong)!important}.glass-card{border-radius:var(--radius-lg);padding:20px;position:relative;overflow:hidden}.glass-card:after{content:"";border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(135deg,#ffffff14 0%,#0000 60%);position:absolute;inset:0}.dark .glass-card:after{background:linear-gradient(135deg,#94a3b80a 0%,#0000 60%)}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);scrollbar-width:thin;height:100dvh;transition:width .3s var(--ease-smooth);z-index:40;position:fixed;top:0;left:0;overflow:hidden auto}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.main-content{min-width:0;margin-left:var(--sidebar-width);transition:margin-left .3s var(--ease-smooth);flex:1}.dashboard-shell{min-width:0;min-height:100vh;padding:20px}.sidebar.collapsed~.main-content,.main-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width)}@media (width<=1024px){.app-layout>.sidebar{display:none!important}.main-content{margin-left:0!important}}.mobile-sidebar-shell{z-index:39;flex-direction:column;width:min(320px,86vw);height:100dvh;display:flex;position:fixed;inset:0 auto 0 0}.mobile-sidebar-shell .sidebar{width:100%!important;height:100dvh!important;display:flex!important;position:relative!important}.top-bar{z-index:30;position:sticky;top:0}.tab-nav{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f1f5f9b3;border:1px solid #e2e8f0cc;gap:3px;padding:4px;display:flex}.tabs-wrap{scrollbar-width:none;max-width:100%;margin-bottom:20px;overflow:auto hidden}.tabs-wrap::-webkit-scrollbar{display:none}.dark .tab-nav{background:#0f172a99;border-color:#94a3b81a}.tab-btn{color:var(--color-text-muted);transition:all var(--duration-base) var(--ease-smooth);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9px;align-items:center;gap:6px;padding:7px 14px;font-size:.8rem;font-weight:600;display:flex;position:relative;overflow:hidden}.tab-btn:after{content:"";opacity:0;transition:opacity var(--duration-base) ease;pointer-events:none;background:radial-gradient(circle,#0ea5e91f,#0000 70%);position:absolute;inset:0}.tab-btn:hover{color:var(--color-text)}.tab-btn:hover:after{opacity:1}.dark .tab-btn:hover{color:var(--color-text)}.tab-btn.active{color:var(--color-primary);background:#fff;box-shadow:0 2px 10px #00000012,0 1px 3px #0000000d}.tab-btn.active:after{opacity:0}.dark .tab-btn.active{color:#7dd3fc;background:#0a1226f2;box-shadow:0 0 0 1px #38bdf833,0 4px 12px #00000059}.btn{border-radius:var(--radius-md);transition:all var(--duration-base) var(--ease-smooth);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:.8rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;transition:opacity var(--duration-fast) ease;pointer-events:none;background:linear-gradient(135deg,#ffffff26 0%,#0000 100%);position:absolute;inset:0}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;box-shadow:0 4px 14px var(--glow-primary), inset 0 1px 0 #fff3;border-color:#0284c780}.btn-primary:hover{box-shadow:0 6px 20px var(--glow-primary), inset 0 1px 0 #fff3;transform:translateY(-1px)}.dark .btn-primary{color:#7dd3fc;background:linear-gradient(135deg,#0ea5e933 0%,#0284c71f 100%);border-color:#0ea5e966;box-shadow:inset 0 0 0 1px #0ea5e926,0 4px 14px #0ea5e92e}.dark .btn-primary:hover{color:#bae6fd;background:linear-gradient(135deg,#0ea5e94d 0%,#0284c733 100%);box-shadow:inset 0 0 0 1px #38bdf840,0 6px 20px #0ea5e947}.btn-accent{background:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);color:#fff;box-shadow:0 4px 14px var(--glow-accent), inset 0 1px 0 #fff3;border-color:#4f46e580}.btn-accent:hover{box-shadow:0 6px 20px var(--glow-accent), inset 0 1px 0 #fff3;transform:translateY(-1px)}.dark .btn-accent{color:#a5b4fc;background:linear-gradient(135deg,#6366f138 0%,#4f46e524 100%);border-color:#6366f16b;box-shadow:inset 0 0 0 1px #6366f126}.dark .btn-accent:hover{color:#c7d2fe;background:linear-gradient(135deg,#6366f152 0%,#4f46e538 100%);box-shadow:inset 0 0 0 1px #818cf84d,0 6px 20px #6366f147}.btn-ghost{color:var(--color-text-muted);border-color:var(--color-border);background:0 0}.btn-ghost:hover{color:var(--color-text);background:#f1f5f9cc;border-color:#0ea5e933}.dark .btn-ghost:hover{background:#1e293bb3;border-color:#94a3b833}.btn-sm{padding:5px 10px;font-size:.72rem}.btn-icon{border-radius:var(--radius-sm);padding:7px}.btn-icon-lg{border-radius:var(--radius-md);padding:9px}.form-input,.form-select,.form-textarea{border-radius:var(--radius-md);border:1px solid var(--color-border);width:100%;color:var(--color-text);transition:all var(--duration-base) var(--ease-smooth);background:#ffffffa6;outline:none;padding:8px 12px;font-family:inherit;font-size:.85rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);background:#ffffffd9;box-shadow:0 0 0 3px #0ea5e924,0 2px 8px #0ea5e914}.dark .form-input,.dark .form-select,.dark .form-textarea{color:var(--color-text);background:#0a1226a6;border-color:#94a3b82e}.dark .form-input:focus,.dark .form-select:focus,.dark .form-textarea:focus{background:#0a1226d9;border-color:#38bdf880;box-shadow:0 0 0 3px #38bdf81f,0 0 16px #38bdf814}.card{border-radius:var(--radius-lg);padding:20px}.stat-card{border-radius:var(--radius-md);transition:transform var(--duration-base) var(--ease-spring), box-shadow var(--duration-base) ease;padding:12px 14px}.stat-card:hover{box-shadow:var(--glass-shadow-elevated);transform:translateY(-3px)}.dark .stat-card:hover{box-shadow:0 32px 96px #020617b3,0 0 24px #38bdf80f}.type-chip{text-transform:uppercase;letter-spacing:.07em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--duration-base) ease;border:1px solid #0000;border-radius:9999px;align-items:center;gap:4px;padding:.2rem .6rem;font-size:.62rem;font-weight:700;display:inline-flex}.type-decision{color:#1565c0;background:linear-gradient(135deg,#2196f324,#1976d214);border-color:#2196f34d}.type-mistake{color:#c62828;background:linear-gradient(135deg,#f4433624,#d32f2f14);border-color:#f443364d}.type-code_fact{color:#6a1b9a;background:linear-gradient(135deg,#9c27b024,#7b1fa214);border-color:#9c27b04d}.type-pattern{color:#1b5e20;background:linear-gradient(135deg,#388e3c24,#1b5e2014);border-color:#388e3c4d}.type-file_claim{color:#006064;background:linear-gradient(135deg,#00bcd424,#0097a714);border-color:#00bcd44d}.type-task_archive{color:#3e2723;background:linear-gradient(135deg,#79554824,#5d403714);border-color:#7955484d}.dark .type-decision{color:#7dd3fc;background:linear-gradient(135deg,#38bdf833,#0ea5e914);border-color:#38bdf852}.dark .type-mistake{color:#fda4af;background:linear-gradient(135deg,#fb718533,#f43f5e14);border-color:#fb718552}.dark .type-code_fact{color:#d8b4fe;background:linear-gradient(135deg,#c084fc33,#a78bfa14);border-color:#c084fc52}.dark .type-pattern{color:#6ee7b7;background:linear-gradient(135deg,#34d39933,#10b98114);border-color:#34d39952}.dark .type-file_claim{color:#67e8f9;background:linear-gradient(135deg,#22d3ee33,#06b6d414);border-color:#22d3ee52}.dark .type-task_archive{color:#d4a08a;background:linear-gradient(135deg,#b4786433,#965a4614);border-color:#b4786452}.status-chip{text-transform:uppercase;letter-spacing:.05em;transition:all var(--duration-base) ease;border-radius:9999px;align-items:center;gap:4px;padding:2px 10px;font-size:.62rem;font-weight:700;display:inline-flex}.status-chip:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.status-backlog{color:#64748b;background:#64748b1f;border:1px solid #64748b47}.status-pending{color:#475569;background:#94a3b81f;border:1px solid #94a3b847}.status-inprogress{color:#0284c7;background:#38bdf81f;border:1px solid #38bdf847}.status-completed{color:#059669;background:#10b9811f;border:1px solid #10b98147}.status-blocked{color:#dc2626;background:#ef44441f;border:1px solid #ef444447}.status-canceled{color:#9ca3af;background:#9ca3af14;border:1px solid #9ca3af2e}.status-default{color:#94a3b8;background:#cbd5e11f;border:1px solid #cbd5e147}.dark .status-backlog{color:#94a3b8;background:#64748b2e}.dark .status-pending{color:#cbd5e1;background:#94a3b82e}.dark .status-inprogress{color:#7dd3fc;background:#38bdf82e}.dark .status-completed{color:#6ee7b7;background:#10b9812e}.dark .status-blocked{color:#fca5a5;background:#ef44442e}.dark .status-canceled{color:#6b7280;background:#9ca3af1f}.repo-item{border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);border:1px solid #0000;align-items:center;gap:10px;padding:9px 11px;display:flex;position:relative;overflow:hidden}.repo-item:before{content:"";opacity:0;transition:opacity var(--duration-base) ease;pointer-events:none;background:linear-gradient(90deg,#0ea5e90f 0%,#0000 100%);position:absolute;inset:0}.repo-item:hover:before{opacity:1}.repo-item:hover{border-color:#0ea5e91f}.dark .repo-item:hover{background:#0ea5e90a;border-color:#38bdf824}.repo-item.active{background:#ffffffe6;border-color:#0ea5e938;box-shadow:0 4px 14px #0f172a0f,inset 0 1px #fffc}.dark .repo-item.active{background:#0ea5e912;border-color:#38bdf847;box-shadow:inset 0 0 0 1px #38bdf81a,0 4px 16px #0ea5e914}.repo-avatar{border-radius:var(--radius-sm);color:#fff;width:34px;height:34px;transition:box-shadow var(--duration-base) ease, transform var(--duration-base) var(--ease-spring);background:linear-gradient(135deg,#0ea5e9 0%,#6366f1 100%);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex;position:relative;box-shadow:0 4px 12px #0ea5e947}.repo-item:hover .repo-avatar{transform:scale(1.06);box-shadow:0 4px 16px #0ea5e966}.repo-active-indicator{background:linear-gradient(180deg, var(--color-primary-light) 0%, var(--color-primary) 100%);width:3px;height:22px;box-shadow:2px 0 8px var(--glow-primary);border-radius:0 4px 4px 0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.repo-item.collapsed{justify-content:center;padding:8px}.stat-number{letter-spacing:-.03em;font-size:1.75rem;font-weight:900;line-height:1}.stat-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);font-size:.68rem;font-weight:700}.kanban-board{grid-auto-columns:minmax(280px,1fr);grid-auto-flow:column;gap:16px;padding-bottom:8px;display:grid;overflow-x:auto}@media (width<=900px){.kanban-board{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;grid-auto-columns:280px;grid-auto-flow:column}}.kanban-col{border-radius:var(--radius-lg);flex-direction:column;min-height:200px;display:flex}@media (width<=900px){.kanban-col{scroll-snap-align:center}}.task-card{border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);background:#ffffff9e;flex-shrink:0;padding:14px;position:relative;overflow:hidden}.task-card:before{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-accent));opacity:0;height:2px;transition:opacity var(--duration-base) ease;position:absolute;top:0;left:0;right:0}.task-card:hover:before{opacity:1}.dark .task-card{background:#0a122a8c;border-color:#94a3b81a}.task-card:hover{border-color:#0ea5e938;transform:translateY(-3px);box-shadow:0 10px 28px #0000001a,0 0 0 1px #0ea5e92e}.dark .task-card:hover{border-color:#38bdf83d;transform:translateY(-3px);box-shadow:0 10px 28px #00000059,0 0 0 1px #38bdf838}.markdown-body{color:#374151;word-break:break-word;font-size:.875rem;line-height:1.75}.dark .markdown-body{color:#d1d5db}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:#111827;margin:1.2em 0 .5em;font-weight:700;line-height:1.3}.dark .markdown-body h1,.dark .markdown-body h2,.dark .markdown-body h3,.dark .markdown-body h4{color:#f9fafb}.markdown-body h1{border-bottom:2px solid #e5e7eb;padding-bottom:.4rem;font-size:1.25rem}.markdown-body h2{border-bottom:1px solid #e5e7eb;padding-bottom:.3rem;font-size:1.1rem}.markdown-body h3{font-size:.95rem}.markdown-body p{margin:.6em 0}.markdown-body ul,.markdown-body ol{margin:.5em 0;padding-left:1.5rem}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body li{margin:.25em 0}.markdown-body code{color:#6d28d9;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:5px;padding:.15em .4em;font-family:JetBrains Mono,monospace;font-size:.8rem}.dark .markdown-body code{color:#c4b5fd;background:#8b5cf624;border-color:#8b5cf638}.markdown-body pre{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;margin:.75em 0;padding:1rem;overflow-x:auto}.dark .markdown-body pre{background:#0a121e;border-color:#1e2d40}.markdown-body pre code{color:inherit;background:0 0;border:none;padding:0;font-size:.82rem}.markdown-body blockquote{color:#4b5563;background:#0ea5e90d;border-left:3px solid #0ea5e9;border-radius:0 8px 8px 0;margin:.75em 0;padding:.5rem 1rem;font-style:italic}.dark .markdown-body blockquote{color:#9ca3af;background:#0ea5e914}.markdown-body a{color:#0ea5e9;text-underline-offset:2px;text-decoration:underline}.markdown-body strong{color:#111827;font-weight:700}.dark .markdown-body strong{color:#f9fafb}.markdown-body table{border-collapse:collapse;width:100%;margin:.75em 0;font-size:.8rem}.markdown-body th{text-align:left;background:#f1f5f9;border:1px solid #e5e7eb;padding:.5rem .75rem;font-weight:700}.dark .markdown-body th{background:#1e293b;border-color:#334155}.markdown-body td{border:1px solid #e5e7eb;padding:.4rem .75rem}.dark .markdown-body td{border-color:#334155}.markdown-body tr:nth-child(2n){background:#f8fafc}.dark .markdown-body tr:nth-child(2n){background:#1e293b66}.chat-bubble{border-radius:1.25rem;max-width:85%;padding:.75rem 1rem;font-size:.875rem;line-height:1.5;box-shadow:0 2px 8px #0000000f}.chat-bubble-agent{color:#fff;border-bottom-right-radius:.25rem;align-self:flex-end}.chat-bubble-mcp{color:#1e293b;background:#f1f5f9e6;border:1px solid #e2e8f0;border-bottom-left-radius:.25rem;align-self:flex-start}.dark .chat-bubble-mcp{color:#f1f5f9;background:#1e293bd9;border-color:#334155b3}.chat-send-panel{border-top:1px solid var(--color-border);background:var(--glass-bg);flex-shrink:0;padding:8px 16px}.dark .chat-send-panel{background:#060c1cb3;border-top-color:#94a3b81a}.chat-input-row{background:#f0f2f5;border-radius:24px;align-items:center;gap:8px;padding:4px 4px 4px 16px;transition:box-shadow .2s;display:flex}.dark .chat-input-row{background:#1f2c33}.chat-input-row:focus-within{box-shadow:0 0 0 2px #00a8844d}.chat-input-row input{color:var(--color-text);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:8px 0;font-family:inherit;font-size:.875rem}.chat-input-row input::placeholder{color:#8696a0}.dark .chat-input-row input::placeholder{color:#667781}.chat-send-btn{color:#fff;cursor:pointer;background:#00a884;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.chat-send-btn:hover:not(:disabled){opacity:.9;transform:scale(1.08)}.chat-send-btn:active:not(:disabled){transform:scale(.95)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.dark .chat-send-btn{background:#00a884}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e8ecf0 50%,#f1f5f9 75%) 0 0/200% 100%;border-radius:8px;animation:1.8s ease-in-out infinite skeleton-pulse}.dark .skeleton{background:linear-gradient(90deg,#12213a 25%,#1a2f4a 50%,#12213a 75%) 0 0/200% 100%}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 6px #0ea5e94d}50%{box-shadow:0 0 18px #0ea5e999,0 0 30px #0ea5e933}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes status-blink{0%,to{opacity:1}50%{opacity:.4}}@keyframes orbit-glow{0%{transform:translate(-50%,-50%)rotate(0)translate(12px)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)translate(12px)rotate(-360deg)}}.animate-fade-in{animation:fade-in-up var(--duration-slow) var(--ease-expo)}.animate-fade-in-scale{animation:fade-in-scale var(--duration-slow) var(--ease-expo)}.animate-slide-in{animation:slide-in-right var(--duration-slow) var(--ease-expo)}.animate-spin{animation:.8s linear infinite spin}.animate-float{animation:3s ease-in-out infinite float}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}.animate-status-blink{animation:1.8s ease-in-out infinite status-blink}.stagger-item:first-child{animation-delay:0s}.stagger-item:nth-child(2){animation-delay:50ms}.stagger-item:nth-child(3){animation-delay:.1s}.stagger-item:nth-child(4){animation-delay:.15s}.stagger-item:nth-child(5){animation-delay:.2s}.stagger-item:nth-child(n+6){animation-delay:.25s}.drawer-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);background:#010c1e8c;position:fixed;inset:0}.drawer-panel{-webkit-backdrop-filter:blur(20px);z-index:51;background:#fffffff5;border-left:1px solid #e2e8f0cc;flex-direction:column;width:min(620px,95vw);height:100dvh;display:flex;position:fixed;top:0;right:0;overflow:hidden;box-shadow:-20px 0 60px #00000024,-1px 0 #0ea5e914}.dark .drawer-panel{background:#060c1cf5;border-color:#94a3b81a;box-shadow:-20px 0 60px #00000080,-1px 0 #38bdf81f}.dark table thead tr{background:#0a1226e6!important}.dark table th{color:var(--color-text-muted);border-bottom-color:#94a3b81f!important}.dark table td{color:var(--color-text);border-bottom-color:#94a3b812!important}.dark table tbody tr:hover td{background:#0ea5e90a}.dark table tbody tr:nth-child(2n) td{background:#080f2059}.dark table tbody tr:nth-child(2n):hover td{background:#0ea5e90f}.dark table input[type=checkbox]{accent-color:#0ea5e9}.badge{letter-spacing:.03em;border-radius:9999px;align-items:center;padding:1px 8px;font-size:.62rem;font-weight:700;display:inline-flex}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-size:.68rem;font-weight:700}.status-dot{border-radius:9999px;flex-shrink:0;width:8px;height:8px}.status-dot-online{background:#10b981;animation:2.4s ease-in-out infinite pulse-glow;box-shadow:0 0 0 3px #10b9812e}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--color-text);background:#f1f5f9e6;transform:scale(1.1)}.dark .icon-btn:hover{background:#1e293bcc}.icon-btn svg{transition:transform var(--duration-base) var(--ease-spring)}.icon-btn:hover svg{transform:scale(1.05)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.min-w-0{min-width:0}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:12px;padding-bottom:12px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:12px}.rounded-xl{border-radius:16px}.relative{position:relative}.absolute{position:absolute}.inset-0{inset:0}.z-10{z-index:10}.z-50{z-index:50}.hidden{display:none}.grid{display:grid}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.pointer-events-none{pointer-events:none}.shrink-0{flex-shrink:0}.text-center{text-align:center}.priority-dot{border-radius:9999px;flex-shrink:0;width:8px;height:8px}.priority-1{background:#94a3b8}.priority-2{background:#3b82f6;box-shadow:0 0 6px #3b82f680}.priority-3{background:#f59e0b;box-shadow:0 0 6px #f59e0b80}.priority-4{background:#f97316;box-shadow:0 0 6px #f9731680}.priority-5{background:#ef4444;animation:2s ease-in-out infinite pulse-glow;box-shadow:0 0 8px #ef444499}.divider{background:var(--color-border);height:1px;margin:12px 0}.dark .divider{background:#94a3b81a}.hover-glow{transition:box-shadow var(--duration-base) ease}.hover-glow:hover{box-shadow:var(--glass-shadow-elevated), 0 0 24px #0ea5e914}.dark .hover-glow:hover{box-shadow:var(--panel-dark-shadow), 0 0 24px #38bdf814}.text-success{color:var(--color-success)!important}.text-danger{color:var(--color-danger)!important}.text-primary{color:var(--color-primary)!important}.text-accent{color:var(--color-accent)!important}.btn-icon:hover{background:#0ea5e914;transform:scale(1.1)}@media (width<=760px){html,body,#app,.app-layout,.main-content{max-width:100vw;overflow-x:hidden}.dashboard-shell{padding:12px}.tabs-wrap{margin:0 -12px 12px;padding:0 12px}.tab-nav{max-width:max-content}.tab-btn{padding:7px 10px;font-size:.74rem}.card{border-radius:var(--radius-lg);padding:14px}}.pin-star.svelte-vmyixk{color:#fff;background:#0ea5e9;border-radius:9999px;justify-content:center;align-items:center;width:14px;height:14px;font-size:8px;line-height:1;display:flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #0ea5e966}.task-badges.svelte-vmyixk{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.task-badge.svelte-vmyixk{white-space:nowrap;border:1px solid #0000;border-radius:9999px;align-items:center;gap:2px;padding:1px 5px;font-size:.6rem;font-weight:700;transition:all .15s;display:inline-flex}.task-badge.active.svelte-vmyixk{color:#a855f7;background:#a855f71f;border-color:#a855f740}.task-badge.todo.svelte-vmyixk{color:#0ea5e9;background:#0ea5e91f;border-color:#0ea5e940}.task-badge.blocked.svelte-vmyixk{color:#ef4444;background:#ef44441f;border-color:#ef444440}.task-badge.backlog.svelte-vmyixk{color:#64748b;background:#64748b1f;border-color:#64748b40}html.dark .task-badge.active.svelte-vmyixk{color:#c084fc;background:#a855f72e}html.dark .task-badge.todo.svelte-vmyixk{color:#7dd3fc;background:#38bdf82e}html.dark .task-badge.blocked.svelte-vmyixk{color:#fca5a5;background:#fca5a52e}html.dark .task-badge.backlog.svelte-vmyixk{color:#94a3b8;background:#94a3b82e}.pin-btn.svelte-vmyixk{opacity:0;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:5px;transition:opacity .15s,transform .15s,color .15s;display:flex}.repo-item.svelte-vmyixk:hover .pin-btn:where(.svelte-vmyixk){opacity:1}@media (hover:none),(width<=1024px){.pin-btn.svelte-vmyixk{opacity:1}}.pin-btn.svelte-vmyixk:hover{color:#0ea5e9;background:#0ea5e91a;transform:scale(1.15)}.sidebar-header.svelte-vbr9x3{justify-content:space-between;align-items:center;min-height:60px;padding:14px 16px;display:flex}.brand-icon.svelte-vbr9x3{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:box-shadow .2s,transform .2s;display:flex;box-shadow:0 4px 12px #0ea5e94d}.brand-icon.svelte-vbr9x3:hover{transform:scale(1.05);box-shadow:0 4px 18px #0ea5e980}.collapse-btn.svelte-vbr9x3{flex-shrink:0}.nav-section.svelte-vbr9x3{border-bottom:1px solid var(--color-border);flex-direction:column;gap:2px;padding:8px 8px 6px;display:flex}.nav-item.svelte-vbr9x3{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex;position:relative}.nav-item.svelte-vbr9x3:hover{color:var(--color-text);background:#0ea5e912}.nav-item.active.svelte-vbr9x3{color:var(--color-primary,#0ea5e9);background:#0ea5e91a}html.dark .nav-item.svelte-vbr9x3:hover{background:#0ea5e91a}html.dark .nav-item.active.svelte-vbr9x3{color:#7dd3fc;background:#38bdf81f}.nav-label.svelte-vbr9x3{flex:1}.nav-active-dot.svelte-vbr9x3{background:var(--color-primary,#0ea5e9);border-radius:50%;flex-shrink:0;width:6px;height:6px}html.dark .nav-active-dot.svelte-vbr9x3{background:#7dd3fc}.nav-section.collapsed.svelte-vbr9x3{align-items:center;gap:4px;padding:6px 4px}.nav-item.collapsed.svelte-vbr9x3{justify-content:center;align-self:stretch;width:auto;padding:8px 4px}.search-wrapper.svelte-vbr9x3{position:relative}.search-icon.svelte-vbr9x3{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input.svelte-vbr9x3{background:#ffffff80;padding-left:32px;font-size:.8rem}html.dark .search-input.svelte-vbr9x3{background:#0a122680}.group-label.svelte-vbr9x3{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);opacity:.75;align-items:center;gap:5px;padding:6px 10px 4px;font-size:.6rem;font-weight:700;display:flex}.repo-count-chip.svelte-vbr9x3{color:#0ea5e9;background:#0ea5e91f;border:1px solid #0ea5e938;border-radius:9999px;padding:1px 7px;font-size:.62rem;font-weight:700}.top-bar-inner.svelte-2va9hf{justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:10px 20px;display:flex}.current-repo.svelte-2va9hf{align-items:center;gap:8px;min-width:0;display:flex}.current-repo-name.svelte-2va9hf{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:.82rem;overflow:hidden}.top-actions.svelte-2va9hf,.refresh-group.svelte-2va9hf,.top-status.svelte-2va9hf{align-items:center;gap:8px;display:flex}.top-actions.svelte-2va9hf{min-width:0}.top-separator.svelte-2va9hf{background:var(--color-border);opacity:.6;width:1px;height:20px}@media (width<=1024px){#mobileMenuBtn.svelte-2va9hf{display:flex!important}}@media (width<=760px){.top-bar-inner.svelte-2va9hf{padding:8px 12px}.current-repo-name.svelte-2va9hf{max-width:112px}.ext-links-group.svelte-2va9hf,.top-separator.svelte-2va9hf,.db-path-label.svelte-2va9hf,.top-status.svelte-2va9hf span:where(.svelte-2va9hf){display:none!important}.top-actions.svelte-2va9hf{flex-shrink:0;gap:6px}}@media (width<=420px){.current-repo-name.svelte-2va9hf{max-width:82px}}.ext-links-group.svelte-2va9hf{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f1f5f9bf;border-radius:10px;align-items:center;gap:0;display:flex;overflow:hidden}html.dark .ext-links-group.svelte-2va9hf{background:#0f172abf;border-color:#94a3b81f}.ext-link-btn.svelte-2va9hf{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:5px;padding:5px 10px;font-size:.72rem;font-weight:600;line-height:1;text-decoration:none;transition:background .15s,color .15s;display:flex}.ext-link-btn.svelte-2va9hf:hover{color:var(--color-text);background:#0ea5e914}html.dark .ext-link-btn.svelte-2va9hf:hover{background:#0ea5e91f}.ext-link-star.svelte-2va9hf:hover{color:#ca8a04!important;background:#eab3081a!important}html.dark .ext-link-star.svelte-2va9hf:hover{color:#fbbf24!important;background:#eab3081f!important}.ext-link-npm.svelte-2va9hf:hover{color:#cb2431!important;background:#cb243114!important}html.dark .ext-link-npm.svelte-2va9hf:hover{color:#f87171!important;background:#cb24311f!important}.ext-link-donate.svelte-2va9hf:hover{color:#ea580c!important;background:#f973161a!important}html.dark .ext-link-donate.svelte-2va9hf:hover{color:#fb923c!important;background:#f9731626!important}.ext-link-eco.svelte-2va9hf:hover{color:#0284c7!important;background:#0ea5e91a!important}html.dark .ext-link-eco.svelte-2va9hf:hover{color:#7dd3fc!important;background:#38bdf826!important}.ext-link-divider.svelte-2va9hf{background:var(--color-border);opacity:.6;flex-shrink:0;width:1px;height:20px}.ext-link-label.svelte-2va9hf{font-size:.7rem}.npm-dl-badge.svelte-2va9hf{color:inherit;align-items:center;gap:3px;display:flex}.npm-dl-skeleton.svelte-2va9hf{background:#94a3b82e;border-radius:4px;width:36px;height:10px;animation:1.4s ease-in-out infinite svelte-2va9hf-skeleton-pulse;display:inline-block}@keyframes svelte-2va9hf-skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.countdown-bar.svelte-2va9hf{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f1f5f9bf;border-radius:10px;align-items:center;gap:6px;padding:5px 10px;display:flex}html.dark .countdown-bar.svelte-2va9hf{background:#0f172abf;border-color:#94a3b81f}.countdown-track.svelte-2va9hf{background:#94a3b82e;border-radius:9999px;width:52px;height:3px;overflow:hidden}.countdown-fill.svelte-2va9hf{border-radius:9999px;height:100%;transition:width 1s linear,background .3s}.countdown-label.svelte-2va9hf{width:26px;font-size:.65rem;font-weight:600;transition:color .3s}.btn.refreshing.svelte-2va9hf{color:var(--color-primary)}@media (width<=640px){.ext-links-group.svelte-2va9hf{display:none}}@media (width<=760px){.countdown-bar.svelte-2va9hf{padding:5px 8px}.countdown-track.svelte-2va9hf{width:32px}}@media (width<=420px){.countdown-label.svelte-2va9hf{display:none}}.priority-bar.svelte-1797zcc{opacity:0;border-radius:12px 12px 0 0;height:2px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.task-card.svelte-1797zcc:hover .priority-bar:where(.svelte-1797zcc){opacity:1}.card-header.svelte-1797zcc{justify-content:space-between;align-items:center;gap:6px;margin-bottom:7px;display:flex}.code-row.svelte-1797zcc{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.status-icon-dot.svelte-1797zcc{opacity:.85;flex-shrink:0;display:inline-flex}.task-code-text.svelte-1797zcc{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:110px;font-family:JetBrains Mono,monospace;font-size:.64rem;font-weight:700;overflow:hidden}.task-title.svelte-1797zcc{color:var(--color-text);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:.82rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.task-desc.svelte-1797zcc{color:var(--color-text-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:12px;font-size:.72rem;line-height:1.4;display:-webkit-box;overflow:hidden}.phase-chip.svelte-1797zcc{color:#6366f1;letter-spacing:.02em;white-space:nowrap;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;flex-shrink:0;padding:2px 6px;font-size:.58rem;font-weight:700}html.dark .phase-chip.svelte-1797zcc{color:#a5b4fc;background:#818cf826;border-color:#818cf840}.hierarchy-row.svelte-1797zcc,.coordination-row.svelte-1797zcc{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.h-badge.svelte-1797zcc{border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:.58rem;font-weight:700;display:inline-flex}.h-badge.parent.svelte-1797zcc{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.h-badge.depends.svelte-1797zcc{color:#f59e0b;background:#f59e0b1a;border:1px solid #f59e0b33}.coord-badge.svelte-1797zcc{border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:.58rem;font-weight:700;display:inline-flex}.coord-badge.claim.svelte-1797zcc{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.coord-badge.handoff.svelte-1797zcc{color:#6366f1;background:#6366f11a;border:1px solid #6366f133}.card-footer.svelte-1797zcc{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.agent-row.svelte-1797zcc{align-items:center;gap:4px;display:flex}.agent-avatar.svelte-1797zcc{color:#fff;background:linear-gradient(135deg,#6366f1,#0ea5e9);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.agent-name.svelte-1797zcc{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-size:.64rem;overflow:hidden}.time-row.svelte-1797zcc{color:var(--color-text-faint);align-items:center;gap:3px;font-size:.62rem;display:flex}.token-row.svelte-1797zcc{margin-top:6px}.token-badge.svelte-1797zcc{color:#0ea5e9;background:#38bdf81a;border:1px solid #38bdf833;border-radius:9999px;align-items:center;gap:3px;padding:2px 7px;font-size:.6rem;font-weight:600;display:inline-flex}html.dark .token-badge.svelte-1797zcc{color:#7dd3fc;background:#38bdf81f;border-color:#38bdf838}.search-wrap.svelte-173w724{position:relative}.search-icon-inner.svelte-173w724{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.col-count.svelte-173w724{border-radius:9999px;padding:1px 8px;font-size:.65rem;font-weight:700}.empty-col.svelte-173w724{text-align:center;flex-direction:column;align-items:center;padding:28px 8px;display:flex}.drag-over.svelte-173w724{border-color:var(--color-accent)!important;background:#6366f11a!important}.glassy-badge.svelte-1imzu92{-webkit-backdrop-filter:blur(12px);border:1px solid var(--badge-color);cursor:default;background:#ffffff0a;border-radius:9999px;padding:4px 12px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0000000d,inset 0 0 0 1px #ffffff0d}html.dark .glassy-badge.svelte-1imzu92{box-shadow:0 8px 16px #0003, inset 0 0 0 1px var(--badge-color);background:#0003;border-color:#ffffff1a}.glassy-badge.svelte-1imzu92:hover{box-shadow:0 6px 16px #00000014, inset 0 0 0 1px var(--badge-color);background:#ffffff14;transform:translateY(-1px)}.indicator-dot.svelte-1imzu92{background:var(--badge-color);width:6px;height:6px;box-shadow:0 0 10px var(--badge-color);border-radius:9999px;position:relative}.indicator-dot.svelte-1imzu92:after{content:"";border:1px solid var(--badge-color);opacity:0;border-radius:9999px;animation:2s infinite svelte-1imzu92-pulse;position:absolute;inset:-2px}@keyframes svelte-1imzu92-pulse{0%{opacity:.5;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(3)}}.count.svelte-1imzu92{color:var(--badge-color);letter-spacing:-.01em;font-size:.75rem;font-weight:900}.label.svelte-1imzu92{color:var(--color-text);text-transform:uppercase;letter-spacing:.06em;opacity:.7;font-size:.62rem;font-weight:700}.metrics-grid.svelte-9j0inj{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;display:grid}.compact-empty.svelte-9j0inj{min-height:56px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.75rem;display:flex}@media (width<=640px){.metrics-grid.svelte-9j0inj{grid-template-columns:1fr}}.mem-error.svelte-83aj9g{color:var(--color-danger);background:#ef444414;border:1px solid #ef444426;border-radius:10px;align-items:center;gap:8px;margin-bottom:8px;padding:10px 16px;font-size:.8rem;font-weight:600;display:flex}.search-icon-inner.svelte-83aj9g{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.mem-table-wrap.svelte-83aj9g{border:1px solid var(--color-border);background:var(--color-surface,#fff);border-radius:14px;overflow-x:auto}.mem-table.svelte-83aj9g{border-collapse:collapse;width:100%;min-width:600px}.mem-thead-row.svelte-83aj9g{border-bottom:1px solid var(--color-border);background:#f8fafce6}html.dark .mem-thead-row.svelte-83aj9g{background:#0a1226d9}.mem-th.svelte-83aj9g{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:.7rem;font-weight:700}.mem-th.sortable.svelte-83aj9g{cursor:pointer}.mem-th.sortable.svelte-83aj9g:hover{color:var(--color-text)}.mem-td.svelte-83aj9g{border-bottom:1px solid var(--color-border);padding:10px 12px}html.dark .mem-td.svelte-83aj9g{border-color:#94a3b814}.mem-row.svelte-83aj9g{cursor:pointer;transition:background .15s}.mem-row.svelte-83aj9g:hover{background:#f1f5f9b3}html.dark .mem-row.svelte-83aj9g:hover,.mem-row.selected.svelte-83aj9g{background:#0ea5e90d}html.dark .mem-row.selected.svelte-83aj9g{background:#0ea5e914}.mem-row.svelte-83aj9g:last-child .mem-td:where(.svelte-83aj9g){border-bottom:none}.row-actions.svelte-83aj9g{opacity:0;white-space:nowrap;align-items:center;gap:4px;transition:opacity .15s;display:flex}.mem-row.svelte-83aj9g:hover .row-actions:where(.svelte-83aj9g){opacity:1}.row-action-btn.svelte-83aj9g{cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.edit-btn.svelte-83aj9g:hover{color:#0ea5e9;background:#0ea5e91a}html.dark .edit-btn.svelte-83aj9g:hover{color:#38bdf8;background:#0ea5e926}.delete-btn.svelte-83aj9g:hover{color:#ef4444;background:#ef44441a}html.dark .delete-btn.svelte-83aj9g:hover{color:#fca5a5;background:#ef444426}.bulk-actions-bar.svelte-83aj9g{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;color:#fff;background:#1e293bf2;border:1px solid #ffffff1a;border-radius:9999px;align-items:center;gap:8px;padding:10px 16px;font-size:.85rem;animation:.3s cubic-bezier(.16,1,.3,1) forwards svelte-83aj9g-slideUp;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000004d}html:not(.dark) .bulk-actions-bar.svelte-83aj9g{color:var(--color-text);border-color:var(--color-border);background:#fffffff2;box-shadow:0 10px 30px #0000001a}@keyframes svelte-83aj9g-slideUp{0%{opacity:0;transform:translate(-50%,20px)scale(.95)}to{opacity:1;transform:translate(-50%)scale(1)}}.markdown-body.svelte-d5v60e{line-height:1.6}.markdown-body.svelte-d5v60e p:where(.svelte-d5v60e){margin-bottom:1em}.markdown-body.svelte-d5v60e code:where(.svelte-d5v60e){background-color:#0000000d;border-radius:3px;padding:.2em .4em;font-family:monospace}.markdown-body.svelte-d5v60e pre:where(.svelte-d5v60e){background-color:#0000000d;border-radius:5px;padding:1em;overflow:auto}.markdown-body.svelte-d5v60e table:where(.svelte-d5v60e){border-collapse:collapse;width:100%;margin-bottom:1em}.markdown-body.svelte-d5v60e th:where(.svelte-d5v60e),.markdown-body.svelte-d5v60e td:where(.svelte-d5v60e){text-align:left;border:1px solid #ddd;padding:8px}.markdown-body.svelte-d5v60e blockquote:where(.svelte-d5v60e){color:#666;border-left:4px solid #ddd;margin:1em 0;padding-left:1em}.chat-container-viewport.svelte-h6z84x{scroll-behavior:smooth;background:#00000005;flex-direction:column;flex:1;padding:24px 32px;display:flex;overflow-y:auto}html.dark .chat-container-viewport.svelte-h6z84x{background-color:#0b141a;background-image:radial-gradient(#ffffff08 1px,#0000 1px);background-size:20px 20px}.chat-container.svelte-h6z84x{flex-direction:column;gap:12px;min-height:min-content;padding-bottom:20px;display:flex}.date-header.svelte-h6z84x{z-index:10;justify-content:center;margin:24px 0 12px;display:flex;position:sticky;top:-12px}.date-header.svelte-h6z84x span:where(.svelte-h6z84x){-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#54656f;text-transform:uppercase;letter-spacing:.06em;background:#fffffff2;border:1px solid #0000000d;border-radius:10px;padding:6px 14px;font-size:.7rem;font-weight:700;box-shadow:0 1px 3px #00000014}html.dark .date-header.svelte-h6z84x span:where(.svelte-h6z84x){color:#8696a0;background:#182229}.bubble-row.svelte-h6z84x{align-items:flex-end;gap:8px;width:100%;margin-bottom:4px;display:flex}.bubble-row-right.svelte-h6z84x{justify-content:flex-end}.bubble-row-left.svelte-h6z84x{justify-content:flex-start}.bubble-wrap.svelte-h6z84x{max-width:80%;position:relative}.chat-bubble.svelte-h6z84x{border-radius:12px;padding:8px 10px 18px;font-size:.875rem;line-height:1.4;transition:transform .2s;position:relative;box-shadow:0 1px .5px #00000021}.chat-bubble-action.svelte-h6z84x{background:var(--bubble-bg-light);color:#111b21;border-top-right-radius:0}.chat-bubble-mcp.svelte-h6z84x{background:var(--bubble-bg-light);color:#111b21;border-top-left-radius:0}html.dark .chat-bubble-action.svelte-h6z84x,html.dark .chat-bubble-mcp.svelte-h6z84x{background:var(--bubble-bg-dark);color:#e9edef}.tail.svelte-h6z84x{width:12px;height:12px;position:absolute;top:0}.tail-right.svelte-h6z84x{background:radial-gradient(circle at 100% 0,#0000 8px,#dcf8c6 8px);right:-8px}.tail-left.svelte-h6z84x{background:radial-gradient(circle at 0 0,#0000 8px,#fff 8px);left:-8px}html.dark .chat-bubble-action.svelte-h6z84x{--bubble-bg-dark:#056162}html.dark .tail-right.svelte-h6z84x{background:radial-gradient(circle at 100% 0,#0000 8px,#056162 8px)}html.dark .tail-left.svelte-h6z84x{background:radial-gradient(circle at 0 0,#0000 8px,#202c33 8px)}.chat-avatar.svelte-h6z84x{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;box-shadow:0 2px 8px #0000001a}.agent-avatar.svelte-h6z84x{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1)}.mcp-avatar.svelte-h6z84x{color:#54656f;background:#f0f2f5}html.dark .mcp-avatar.svelte-h6z84x{color:#8696a0;background:#182229}.action-badge.svelte-h6z84x{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;align-items:center;gap:4px;margin-bottom:4px;padding:2px 6px;font-size:.62rem;font-weight:800;display:inline-flex}.action-main.svelte-h6z84x{color:inherit;word-break:break-word;font-weight:600}.action-sub.svelte-h6z84x{opacity:.7;margin-top:2px;font-size:.75rem}.mcp-sender.svelte-h6z84x{color:#34b7f1;text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;margin-bottom:6px;font-size:.72rem;font-weight:800;display:flex}.read-more-btn.svelte-h6z84x{color:#34b7f1;cursor:pointer;text-align:left;background:0 0;border:none;width:100%;margin-top:4px;padding:4px 0;font-size:.75rem;font-weight:700;display:block}.read-more-btn.svelte-h6z84x:hover{text-decoration:underline}.bubble-meta.svelte-h6z84x{pointer-events:none;align-items:center;gap:3px;display:flex;position:absolute;bottom:4px;right:7px}.bubble-time.svelte-h6z84x{color:#667781;font-size:.65rem}html.dark .bubble-time.svelte-h6z84x{color:#ffffff80}.bubble-status.svelte-h6z84x{color:#53bdeb;display:flex}.load-more-spinner.svelte-h6z84x{color:var(--color-text-muted);opacity:.8;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.75rem;font-weight:600;display:flex}@keyframes svelte-h6z84x-slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes svelte-h6z84x-slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.animate-slide-in-right.svelte-h6z84x{animation:.3s ease-out forwards svelte-h6z84x-slideInRight}.animate-slide-in-left.svelte-h6z84x{animation:.3s ease-out forwards svelte-h6z84x-slideInLeft}.meta-grid.svelte-118hqhr{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-118hqhr{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px}.dark .meta-cell.svelte-118hqhr{background:#1e293bcc}.meta-label.svelte-118hqhr{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:700}.meta-value.svelte-118hqhr{color:var(--color-text);font-size:.85rem;font-weight:600}.section-label.svelte-118hqhr{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px;font-size:.65rem;font-weight:700}.tag-chip.svelte-118hqhr{color:#6366f1;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;padding:2px 10px;font-size:.72rem}.md-card.svelte-118hqhr{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-118hqhr{background:#0f172acc}.json-pre.svelte-118hqhr{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}.dark .json-pre.svelte-118hqhr{background:#0f172acc}.section-label.svelte-1ewh6ct{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px;font-size:.65rem;font-weight:700}.meta-grid.svelte-1ewh6ct{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-1ewh6ct{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px}.dark .meta-cell.svelte-1ewh6ct{background:#1e293bcc}.meta-label.svelte-1ewh6ct{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:700}.meta-value.svelte-1ewh6ct{color:var(--color-text);font-size:.85rem;font-weight:600}.meta-subvalue.svelte-1ewh6ct{color:var(--color-text-muted);margin-top:4px;font-size:.7rem;line-height:1.35}.md-card.svelte-1ewh6ct{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-1ewh6ct{background:#0f172acc}.comment-card.svelte-1ewh6ct{border:1px solid var(--color-border);background:#f1f5f980;border-radius:10px;padding:10px 14px}.dark .comment-card.svelte-1ewh6ct{background:#1e293b80}.comment-avatar.svelte-1ewh6ct{color:#fff;background:linear-gradient(135deg,#6366f1,#0ea5e9);border-radius:9999px;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;display:flex}.comment-compose.svelte-1ewh6ct{border:1px solid var(--color-border);background:#f1f5f980;border-radius:10px;padding:12px}.dark .comment-compose.svelte-1ewh6ct{background:#1e293b66}.std-form-grid.svelte-1arg7l8{grid-template-columns:1fr 1fr;gap:12px;display:grid}.std-field-label.svelte-1arg7l8{color:var(--color-text-muted);margin-bottom:4px;font-size:.72rem;font-weight:700;display:block}.drawer-title.svelte-1arg7l8{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.3}.section-label.svelte-1arg7l8{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px;font-size:.65rem;font-weight:700}.meta-grid.svelte-1arg7l8{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-1arg7l8{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px}.dark .meta-cell.svelte-1arg7l8{background:#1e293bcc}.meta-label.svelte-1arg7l8{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:700}.meta-value.svelte-1arg7l8{color:var(--color-text);font-size:.85rem;font-weight:600}.json-pre.svelte-1arg7l8{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}.dark .json-pre.svelte-1arg7l8{background:#0f172acc}.detail-header-row.svelte-1p5f4l{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.drawer-title.svelte-1p5f4l{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.3}.std-meta-row.svelte-1p5f4l{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.std-badge.svelte-1p5f4l{border-radius:9999px;padding:2px 8px;font-size:.65rem;font-weight:700;display:inline-block}.std-badge-context.svelte-1p5f4l{color:#6366f1;background:#6366f11a;border:1px solid #6366f133}.std-badge-version.svelte-1p5f4l{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}.dark .std-badge-global.svelte-1p5f4l{color:#a855f7;background:#a855f71a;border:1px solid #a855f733}.dark .std-badge-repo.svelte-1p5f4l{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}.std-badge-global.svelte-1p5f4l{color:#a855f7;background:#a855f71a;border:1px solid #a855f733}.std-badge-repo.svelte-1p5f4l{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}.std-badge-parent.svelte-1p5f4l{color:#8b5cf6;background:#8b5cf614;border:1px solid #8b5cf626}.std-form-grid.svelte-1p5f4l{grid-template-columns:1fr 1fr;gap:12px;display:grid}.std-field-label.svelte-1p5f4l{color:var(--color-text-muted);margin-bottom:4px;font-size:.72rem;font-weight:700;display:block}.meta-grid.svelte-1p5f4l{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-1p5f4l{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px}.dark .meta-cell.svelte-1p5f4l{background:#1e293bcc}.meta-label.svelte-1p5f4l{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:700}.meta-value.svelte-1p5f4l{color:var(--color-text);font-size:.85rem;font-weight:600}.section-label.svelte-1p5f4l{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px;font-size:.65rem;font-weight:700}.tag-chip.svelte-1p5f4l{color:#6366f1;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;padding:2px 10px;font-size:.72rem}.md-card.svelte-1p5f4l{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-1p5f4l{background:#0f172acc}.json-pre.svelte-1p5f4l{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}.dark .json-pre.svelte-1p5f4l{background:#0f172acc}.drawer-header.svelte-9n99wb{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.drawer-title.svelte-9n99wb{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.3}.editable-title.svelte-9n99wb{cursor:pointer;border-radius:6px;align-items:center;gap:6px;margin:-2px -4px;padding:2px 4px;transition:background .15s;display:flex}.editable-title.svelte-9n99wb:hover{background:#6366f112}.edit-hint.svelte-9n99wb{opacity:0;font-size:.7rem;transition:opacity .15s}.editable-title.svelte-9n99wb:hover .edit-hint:where(.svelte-9n99wb){opacity:1}.drawer-body.svelte-9n99wb{flex:1;padding:20px;overflow-y:auto}.drawer-header.svelte-17ad9lv{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.drawer-title.svelte-17ad9lv{color:var(--color-text);word-break:break-all;font-size:1rem;font-weight:700;line-height:1.3}.type-chip.svelte-17ad9lv{text-transform:uppercase;letter-spacing:.05em;color:#0ea5e9;background:#0ea5e91a;border-radius:20px;padding:3px 8px;font-size:.7rem;font-weight:700}.drawer-body.svelte-17ad9lv{flex-direction:column;gap:20px;padding:20px 24px;display:flex;overflow-y:auto}.drawer-section.svelte-17ad9lv{flex-direction:column;gap:8px;display:flex}.section-label.svelte-17ad9lv{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:4px;font-size:.75rem;font-weight:700}.md-card.svelte-17ad9lv{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-17ad9lv{background:#0f172acc}.modal-backdrop.svelte-intd6h{z-index:58;-webkit-backdrop-filter:blur(4px);background:#010c1e73;position:fixed;inset:0}.modal-panel.svelte-intd6h{z-index:59;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:600px;max-width:96vw;max-height:92vh;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 32px 96px #010c1e33,0 8px 32px #010c1e1f,inset 0 1px #ffffffb3}html.dark .modal-panel.svelte-intd6h{background:#070f1f;border-color:#94a3b81f;box-shadow:0 32px 96px #0009,0 8px 32px #0006,inset 0 1px #ffffff0a}.modal-header.svelte-intd6h{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px 16px;display:flex}.modal-header-icon.svelte-intd6h{color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #6366f159}.modal-mode-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:4px;font-size:.62rem;font-weight:700}.modal-title-input.svelte-intd6h{width:100%;padding:5px 10px;font-size:.92rem;font-weight:700}.modal-title-text.svelte-intd6h{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;line-height:1.3;overflow:hidden}.modal-header-actions.svelte-intd6h{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.danger-btn.svelte-intd6h{color:#ef4444!important}.modal-close-btn.svelte-intd6h{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.modal-close-btn.svelte-intd6h:hover{color:#ef4444;background:#ef44441a}.modal-body.svelte-intd6h{flex-direction:column;flex:1;gap:14px;padding:18px 20px;display:flex;overflow-y:auto}.field-grid-2.svelte-intd6h{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-group.svelte-intd6h{flex-direction:column;gap:5px;display:flex}.field-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:flex}.required.svelte-intd6h{color:#ef4444;font-size:.7rem}.field-hint.svelte-intd6h{text-transform:none;letter-spacing:0;color:var(--color-text-faint);margin-left:2px;font-size:.62rem;font-style:italic;font-weight:400}.importance-badge.svelte-intd6h{border-radius:9999px;margin-left:4px;padding:1px 7px;font-size:.72rem;font-weight:800}.importance-slider.svelte-intd6h{cursor:pointer;background:0 0;border:none;border-radius:9999px;outline:none;width:100%;height:4px;margin-top:4px;padding:0}.importance-ticks.svelte-intd6h{color:var(--color-text-muted);justify-content:space-between;margin-top:2px;padding:0 2px;font-size:.6rem;display:flex}.importance-ticks.svelte-intd6h span:where(.svelte-intd6h){font-weight:600;transition:color .2s}.importance-ticks.svelte-intd6h span.active:where(.svelte-intd6h){color:var(--color-text)}.content-label-row.svelte-intd6h{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.preview-btn.svelte-intd6h{padding:3px 8px;font-size:.65rem}.content-textarea.svelte-intd6h{resize:vertical;min-height:140px;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.6}.meta-grid.svelte-intd6h{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-intd6h{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px 12px}html.dark .meta-cell.svelte-intd6h{background:#1e293bcc}.meta-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.62rem;font-weight:700}.meta-value.svelte-intd6h{color:var(--color-text);font-size:.85rem;font-weight:600}.section-block.svelte-intd6h{flex-direction:column;gap:6px;display:flex}.tags-row.svelte-intd6h{flex-wrap:wrap;gap:6px;display:flex}.tag-chip.svelte-intd6h{color:#6366f1;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;padding:2px 10px;font-size:.72rem}html.dark .tag-chip.svelte-intd6h{color:#a5b4fc;background:#6366f12e;border-color:#6366f14d}.md-card.svelte-intd6h{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}html.dark .md-card.svelte-intd6h{background:#0f172acc}.json-pre.svelte-intd6h{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}html.dark .json-pre.svelte-intd6h{background:#0f172acc}.mem-error.svelte-intd6h{color:#ef4444;background:#ef444414;border:1px solid #ef444438;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:.8rem;display:flex}.modal-footer.svelte-intd6h{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.modal-save-btn.svelte-intd6h:disabled{opacity:.45;pointer-events:none}.btn-spinner.svelte-intd6h{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:.7s linear infinite svelte-intd6h-btn-spin;display:inline-block}@keyframes svelte-intd6h-btn-spin{to{transform:rotate(360deg)}}.modal-backdrop.svelte-lenod{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content.svelte-lenod{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:700px;max-width:95vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 30px 60px #00000080}.modal-header.svelte-lenod{border-bottom:1px solid var(--color-border);background:linear-gradient(90deg,#0ea5e914,#0000);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.header-icon.svelte-lenod{background:#0ea5e91a;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.modal-header.svelte-lenod h3:where(.svelte-lenod){color:var(--color-text);margin:0;font-size:1.15rem;font-weight:700}.close-btn.svelte-lenod{opacity:.6;transition:opacity .2s}.close-btn.svelte-lenod:hover{opacity:1}.drop-zone.svelte-lenod{border:2px dashed var(--color-border);background:#f1f5f908;border-radius:16px;justify-content:center;align-items:center;width:100%;height:240px;transition:all .3s;display:flex}.drop-zone.svelte-lenod:hover{background:#0ea5e908;border-color:#0ea5e9}.drop-zone-content.svelte-lenod{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.drop-zone-content.svelte-lenod p:where(.svelte-lenod){color:var(--color-text);margin:0;font-size:.95rem}.preview-container.svelte-lenod{border:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:12px;overflow:hidden}.preview-header.svelte-lenod{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);background:#0000000d;padding:8px 12px;font-size:.75rem;font-weight:700}.table-wrapper.svelte-lenod{max-height:200px;overflow-y:auto}table.svelte-lenod{border-collapse:collapse;width:100%;font-size:.75rem}th.svelte-lenod{text-align:left;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);z-index:1;background:#00000005;padding:8px 12px;font-weight:600;position:sticky;top:0}td.svelte-lenod{border-bottom:1px solid var(--color-border);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:200px;padding:8px 12px;overflow:hidden}tr.svelte-lenod:last-child td:where(.svelte-lenod){border-bottom:none}.modal-footer.svelte-lenod{border-top:1px solid var(--color-border);background:#00000005;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.error-msg.svelte-lenod{color:#f87171;background:#ef444414;border:1px solid #ef444433;border-radius:8px;margin-top:16px;padding:10px 14px;font-size:.8rem;font-weight:500}.spinner.svelte-lenod{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite svelte-lenod-spin}@keyframes svelte-lenod-spin{to{transform:rotate(360deg)}}.hidden.svelte-lenod{display:none}.modal-backdrop.svelte-l0ytfo{z-index:58;-webkit-backdrop-filter:blur(4px);background:#010c1e73;position:fixed;inset:0}.modal-panel.svelte-l0ytfo{z-index:59;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:520px;max-width:95vw;max-height:92vh;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 32px 96px #010c1e33,0 8px 32px #010c1e1f,inset 0 1px #ffffffb3}html.dark .modal-panel.svelte-l0ytfo{background:#070f1f;border-color:#94a3b81f;box-shadow:0 32px 96px #0009,0 8px 32px #0006,inset 0 1px #ffffff0a}.modal-header.svelte-l0ytfo{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px 16px;display:flex}.modal-header-icon.svelte-l0ytfo{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #0ea5e94d}.modal-title.svelte-l0ytfo{color:var(--color-text);letter-spacing:-.01em;font-size:.9rem;font-weight:800}.modal-subtitle.svelte-l0ytfo{color:var(--color-text-muted);margin-top:1px;font-size:.68rem}.modal-close-btn.svelte-l0ytfo{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:background .15s,color .15s;display:flex}.modal-close-btn.svelte-l0ytfo:hover{color:#ef4444;background:#ef44441a}.modal-body.svelte-l0ytfo{flex-direction:column;flex:1;gap:14px;padding:18px 20px;display:flex}.field-grid-2.svelte-l0ytfo{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-group.svelte-l0ytfo{flex-direction:column;gap:5px;display:flex}.field-label.svelte-l0ytfo{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:flex}.required.svelte-l0ytfo{color:#ef4444;font-size:.7rem}.field-hint.svelte-l0ytfo{color:var(--color-text-faint);text-transform:none;letter-spacing:0;margin-left:auto;font-size:.62rem;font-weight:500}.modal-textarea.svelte-l0ytfo{resize:vertical;min-height:96px;font-size:.82rem;line-height:1.55}.modal-footer.svelte-l0ytfo{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.modal-save-btn.svelte-l0ytfo:disabled{opacity:.45;pointer-events:none}.ref-header.svelte-w0wd5z{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ref-total-badge.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933;border-radius:9999px;padding:2px 8px;font-size:.62rem;font-weight:700}.ref-search-wrap.svelte-w0wd5z{flex:1;max-width:300px;position:relative}.ref-search-icon.svelte-w0wd5z{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.ref-search-input.svelte-w0wd5z{width:100%;padding-left:32px;padding-right:28px;font-size:.8rem}.ref-clear-btn.svelte-w0wd5z{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:4px;padding:2px;transition:color .15s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.ref-clear-btn.svelte-w0wd5z:hover{color:var(--color-text)}.ref-body.svelte-w0wd5z{grid-template-columns:160px 1fr;align-items:start;gap:16px;display:grid}@media (width<=700px){.ref-body.svelte-w0wd5z{grid-template-columns:1fr}}.ref-sidebar.svelte-w0wd5z{border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:3px;padding:12px;display:flex;position:sticky;top:80px}.ref-sidebar-label.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);padding:4px 8px 8px;font-size:.6rem;font-weight:700}.ref-cat-btn.svelte-w0wd5z{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:7px;width:100%;padding:7px 10px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.ref-cat-btn.svelte-w0wd5z:hover{color:var(--color-text);background:#0ea5e90f}.ref-cat-btn.active.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}html.dark .ref-cat-btn.active.svelte-w0wd5z{color:#38bdf8;background:#0ea5e926;border-color:#38bdf840}.ref-cat-count.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1f;border-radius:9999px;margin-left:auto;padding:1px 6px;font-size:.62rem;font-weight:700}.ref-main.svelte-w0wd5z{flex-direction:column;display:flex}.ref-section-header.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);align-items:center;gap:6px;margin-bottom:10px;font-size:.72rem;font-weight:700;display:flex}.ref-section-count.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1a;border-radius:9999px;padding:1px 6px;font-size:.6rem;font-weight:700}.ref-grid.svelte-w0wd5z{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.ref-card.svelte-w0wd5z{cursor:pointer;background:#fff;border:1px solid #0000000f;border-radius:16px;flex-direction:column;gap:8px;padding:18px 20px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #00000008}.ref-card.svelte-w0wd5z:before{content:"";background:0 0;height:3px;transition:all .2s;position:absolute;top:0;left:0;right:0}.ref-card.svelte-w0wd5z:hover{border-color:#00000014;transform:translateY(-2px);box-shadow:0 12px 24px -4px #00000014,0 8px 12px -6px #0000000a}html.dark .ref-card.svelte-w0wd5z{background:#0a1226cc;border:1px solid #ffffff14;box-shadow:0 4px 12px #0003}html.dark .ref-card.svelte-w0wd5z:hover{border-color:#ffffff26;box-shadow:0 10px 30px #0006}.ref-card-tool.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#6366f1,#a855f7)}.ref-card-prompt.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#a855f7,#ec4899)}.ref-card-resource.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#10b981,#3b82f6)}.ref-card-top.svelte-w0wd5z{align-items:center;gap:6px;display:flex}.ref-type-badge.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.06em;border:1px solid #0000;border-radius:9999px;align-items:center;gap:4px;padding:2px 7px;font-size:.6rem;font-weight:700;display:inline-flex}.ref-type-tool.svelte-w0wd5z{color:#6366f1;background:#6366f11a;border-color:#6366f133}.ref-type-prompt.svelte-w0wd5z{color:#a855f7;background:#a855f71a;border-color:#a855f733}html.dark .ref-type-tool.svelte-w0wd5z{color:#818cf8}html.dark .ref-type-prompt.svelte-w0wd5z{color:#c084fc}.ref-card-name.svelte-w0wd5z{color:var(--color-text);word-break:break-word;font-size:.82rem;font-weight:700}.ref-card-desc.svelte-w0wd5z{color:var(--color-text-muted);font-size:.72rem;line-height:1.55}.ref-params.svelte-w0wd5z{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.ref-param-tag.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e914;border:1px solid #0ea5e92e;border-radius:5px;padding:1px 6px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.65rem}.ref-param-more.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1a;border-color:#64748b33}html.dark .ref-param-tag.svelte-w0wd5z{color:#38bdf8;background:#0ea5e91f;border-color:#38bdf833}.eco-section.svelte-w0wd5z{border-top:1px solid var(--color-border);margin-top:28px;padding-top:20px}html.dark .eco-section.svelte-w0wd5z{border-top-color:#94a3b81a}.eco-grid.svelte-w0wd5z{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.eco-card.svelte-w0wd5z{border:1px solid var(--color-border);background:var(--glass-bg);color:inherit;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:14px;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;transition:all .2s;display:flex}html.dark .eco-card.svelte-w0wd5z{background:var(--panel-dark);border-color:var(--panel-dark-border)}.eco-card.svelte-w0wd5z:hover{box-shadow:0 8px 24px #0ea5e914, var(--glass-shadow-elevated);border-color:#0ea5e940;transform:translateY(-2px)}html.dark .eco-card.svelte-w0wd5z:hover{box-shadow:0 8px 24px #0ea5e91f, var(--panel-dark-shadow);border-color:#38bdf840}.eco-card-icon.svelte-w0wd5z{width:38px;height:38px;color:var(--color-primary);background:linear-gradient(135deg,#0ea5e91f,#6366f11f);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.eco-card-body.svelte-w0wd5z{flex:1;min-width:0}.eco-card-name.svelte-w0wd5z{color:var(--color-text);font-size:.82rem;font-weight:700}.eco-card-desc.svelte-w0wd5z{color:var(--color-text-muted);margin-top:2px;font-size:.68rem;line-height:1.45}.eco-card-link.svelte-w0wd5z{color:var(--color-text-muted);opacity:.5;flex-shrink:0;transition:opacity .2s,color .2s}.eco-card.svelte-w0wd5z:hover .eco-card-link:where(.svelte-w0wd5z){opacity:1;color:var(--color-primary)}.chat-backdrop.svelte-x7gsaf{z-index:49;cursor:default;background:0 0;position:fixed;inset:0}.chat-fab.svelte-x7gsaf{z-index:50;cursor:pointer;color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .2s,box-shadow .2s;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 4px 20px #0ea5e973}.chat-fab.svelte-x7gsaf:after{content:"";pointer-events:none;border:2px solid #0ea5e966;border-radius:50%;animation:2.4s ease-out infinite svelte-x7gsaf-fab-pulse;position:absolute;inset:-4px}.chat-fab.svelte-x7gsaf:hover{transform:scale(1.08);box-shadow:0 6px 28px #0ea5e999}@keyframes svelte-x7gsaf-fab-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.45)}}.chat-popup.svelte-x7gsaf{z-index:50;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;width:380px;height:560px;display:flex;position:fixed;bottom:88px;right:28px;overflow:hidden;box-shadow:0 8px 40px #0000002e,0 4px 16px #0000001a}html.dark .chat-popup.svelte-x7gsaf{background:#0b141a;border-color:#94a3b81f;box-shadow:0 8px 40px #00000080}.chat-popup-header.svelte-x7gsaf{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.chat-popup-title.svelte-x7gsaf{align-items:center;gap:10px;display:flex}.chat-popup-avatar.svelte-x7gsaf{background:#fff3;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.chat-popup-name.svelte-x7gsaf{font-size:.85rem;font-weight:700;line-height:1.2}.chat-popup-status.svelte-x7gsaf{opacity:.8;font-size:.62rem;font-weight:600}.chat-popup-close.svelte-x7gsaf{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:background .2s;display:flex}.chat-popup-close.svelte-x7gsaf:hover{background:#ffffff59}.chat-popup-body.svelte-x7gsaf{scroll-behavior:smooth;flex-direction:column;flex:1;gap:8px;min-height:0;padding:16px;display:flex;overflow-y:auto}html.dark .chat-popup-body.svelte-x7gsaf{background-image:radial-gradient(#ffffff05 1px,#0000 1px);background-size:20px 20px}.popup-load-more.svelte-x7gsaf{color:var(--color-text-muted);opacity:.7;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:.68rem;font-weight:600;display:flex}.popup-empty.svelte-x7gsaf{text-align:center;color:var(--color-text-muted);padding:60px 16px}.popup-empty.svelte-x7gsaf div:where(.svelte-x7gsaf):first-of-type{margin-top:12px;font-size:.9rem;font-weight:600}.popup-empty.svelte-x7gsaf div:where(.svelte-x7gsaf):last-child{opacity:.7;margin-top:4px;font-size:.75rem}.popup-date-header.svelte-x7gsaf{justify-content:center;margin:8px 0 4px;display:flex}.popup-date-header.svelte-x7gsaf span:where(.svelte-x7gsaf){color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;background:#ffffffe6;border:1px solid #0000000d;border-radius:8px;padding:3px 10px;font-size:.62rem;font-weight:700}html.dark .popup-date-header.svelte-x7gsaf span:where(.svelte-x7gsaf){color:#8696a0;background:#182229}.popup-bubble-row.svelte-x7gsaf{width:100%;display:flex}.popup-bubble-right.svelte-x7gsaf{justify-content:flex-end}.popup-bubble-left.svelte-x7gsaf{justify-content:flex-start}.popup-bubble-wrap.svelte-x7gsaf{max-width:85%}.popup-chat-bubble.svelte-x7gsaf{border-radius:10px;padding:6px 10px;font-size:.78rem;line-height:1.35;position:relative;box-shadow:0 1px .5px #0000001a}.popup-chat-bubble-action.svelte-x7gsaf{color:#111b21;background:#dcf8c6}html.dark .popup-chat-bubble-action.svelte-x7gsaf{color:#e9edef;background:#056162}.popup-chat-bubble-mcp.svelte-x7gsaf{color:#111b21;background:#fff}html.dark .popup-chat-bubble-mcp.svelte-x7gsaf{color:#e9edef;background:#202c33}.popup-action-badge.svelte-x7gsaf{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;align-items:center;gap:3px;margin-bottom:3px;padding:1px 5px;font-size:.55rem;font-weight:800;display:inline-flex}.popup-action-main.svelte-x7gsaf{word-break:break-word;font-size:.78rem;font-weight:600}.popup-action-sub.svelte-x7gsaf{opacity:.6;margin-top:1px;font-size:.65rem}.popup-mcp-sender.svelte-x7gsaf{color:#34b7f1;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:.62rem;font-weight:800}.popup-markdown.svelte-x7gsaf{font-size:.75rem;line-height:1.45}.popup-markdown p{margin:.3em 0}.popup-read-more.svelte-x7gsaf{color:#34b7f1;cursor:pointer;background:0 0;border:none;margin-top:2px;padding:2px 0;font-size:.65rem;font-weight:700;display:block}.popup-read-more.svelte-x7gsaf:hover{text-decoration:underline}.chat-popup-footer.svelte-x7gsaf{border-top:1px solid var(--color-border);background:var(--glass-bg);flex-shrink:0;padding:8px 12px}html.dark .chat-popup-footer.svelte-x7gsaf{background:#060c1cb3;border-top-color:#94a3b81a}.chat-popup-footer .chat-input-row{border-radius:20px;padding:2px 2px 2px 14px}.chat-popup-footer .chat-input-row input{padding:6px 0;font-size:.8rem}.chat-popup-footer .chat-send-btn{width:32px;height:32px}@media (width<=640px){.chat-fab.svelte-x7gsaf{bottom:max(18px, env(safe-area-inset-bottom));width:48px;height:48px;right:14px}.chat-fab.svelte-x7gsaf:after{display:none}.chat-popup.svelte-x7gsaf{width:calc(100vw - 16px);height:55vh;max-height:500px;bottom:72px;right:8px}}.feature-shell.svelte-owkwhr{flex-direction:column;gap:14px;display:flex}.feature-toolbar.svelte-owkwhr{grid-template-columns:1fr auto auto;align-items:start;gap:14px;padding:16px;display:grid}.toolbar-title.svelte-owkwhr{align-items:center;gap:10px;display:flex}.toolbar-action.svelte-owkwhr{justify-self:end}.toolbar-actions.svelte-owkwhr{flex-wrap:wrap;justify-self:end;gap:8px;display:flex}.file-input.svelte-owkwhr{display:none}.toolbar-subtitle.svelte-owkwhr{color:var(--color-text-muted);margin-top:2px;font-size:.72rem;font-weight:600;line-height:1.45}.insight-strip.svelte-owkwhr{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.insight-card.svelte-owkwhr{border:1px solid var(--color-border);background:#ffffff52;border-radius:14px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.insight-card.svelte-owkwhr span:where(.svelte-owkwhr){text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.66rem;font-weight:800}.insight-card.svelte-owkwhr strong:where(.svelte-owkwhr){color:var(--color-text);font-size:.84rem}.toolbar-controls.svelte-owkwhr{grid-column:1/-1;grid-template-columns:minmax(220px,1.2fr) minmax(130px,.6fr) minmax(180px,1fr) minmax(140px,.6fr);gap:10px;display:grid}.mem-table-wrap.svelte-owkwhr{border:1px solid var(--color-border);background:var(--color-surface,#fff);border-radius:14px;overflow-x:auto}.mem-table.svelte-owkwhr{border-collapse:collapse;width:100%;min-width:600px}.mem-thead-row.svelte-owkwhr{border-bottom:1px solid var(--color-border);background:#f8fafce6}html.dark .mem-thead-row.svelte-owkwhr{background:#0a1226d9}.mem-th.svelte-owkwhr{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:.7rem;font-weight:700}.mem-td.svelte-owkwhr{border-bottom:1px solid var(--color-border);padding:10px 12px}html.dark .mem-td.svelte-owkwhr{border-color:#94a3b814}.mem-row.svelte-owkwhr{cursor:pointer;transition:background .15s}.mem-row.svelte-owkwhr:hover{background:#f1f5f9b3}html.dark .mem-row.svelte-owkwhr:hover{background:#0ea5e90d}.mem-row.svelte-owkwhr:last-child .mem-td:where(.svelte-owkwhr){border-bottom:none}.row-actions.svelte-owkwhr{opacity:0;white-space:nowrap;align-items:center;gap:4px;transition:opacity .15s;display:flex}.mem-row.svelte-owkwhr:hover .row-actions:where(.svelte-owkwhr){opacity:1}.row-action-btn.svelte-owkwhr{cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.edit-btn.svelte-owkwhr:hover{color:#0ea5e9;background:#0ea5e91a}html.dark .edit-btn.svelte-owkwhr:hover{color:#38bdf8;background:#0ea5e926}.delete-btn.svelte-owkwhr:hover{color:#ef4444;background:#ef44441a}html.dark .delete-btn.svelte-owkwhr:hover{color:#fca5a5;background:#ef444426}.scope-chip.svelte-owkwhr{border-radius:9999px;padding:2px 8px;font-size:.68rem;font-weight:700;display:inline-block}.scope-global.svelte-owkwhr{color:#a855f7;background:#a855f71a;border:1px solid #a855f733}.scope-repo.svelte-owkwhr{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}.error-banner.svelte-owkwhr{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:700}.notice-banner.svelte-owkwhr{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:700}@media (width<=1100px){.insight-strip.svelte-owkwhr,.toolbar-controls.svelte-owkwhr,.feature-toolbar.svelte-owkwhr{grid-template-columns:1fr}.toolbar-action.svelte-owkwhr,.toolbar-actions.svelte-owkwhr{justify-content:center;justify-self:stretch}}.feature-shell.svelte-1ik2acm{flex-direction:column;gap:14px;display:flex}.feature-toolbar.svelte-1ik2acm{grid-template-columns:1fr auto;align-items:start;gap:14px;padding:16px;display:grid}.toolbar-title.svelte-1ik2acm{align-items:center;gap:10px;display:flex}.toolbar-action.svelte-1ik2acm{justify-self:end}.toolbar-subtitle.svelte-1ik2acm{color:var(--color-text-muted);margin-top:2px;font-size:.72rem;font-weight:600;line-height:1.45}.section-label.svelte-1ik2acm{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.65rem;font-weight:700}.insight-strip.svelte-1ik2acm{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.insight-card.svelte-1ik2acm{border:1px solid var(--color-border);background:#ffffff52;border-radius:14px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.insight-card.svelte-1ik2acm span:where(.svelte-1ik2acm){text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.66rem;font-weight:800}.insight-card.svelte-1ik2acm strong:where(.svelte-1ik2acm){color:var(--color-text);font-size:.84rem}.toolbar-controls.svelte-1ik2acm{grid-column:1/-1;grid-template-columns:160px minmax(180px,1fr) auto;align-items:center;gap:10px;display:grid}.mem-table-wrap.svelte-1ik2acm{border:1px solid var(--color-border);background:var(--color-surface,#fff);border-radius:14px;overflow-x:auto}.mem-table.svelte-1ik2acm{border-collapse:collapse;width:100%;min-width:750px}.mem-thead-row.svelte-1ik2acm{border-bottom:1px solid var(--color-border);background:#f8fafce6}html.dark .mem-thead-row.svelte-1ik2acm{background:#0a1226d9}.mem-th.svelte-1ik2acm{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:.7rem;font-weight:700}.mem-td.svelte-1ik2acm{border-bottom:1px solid var(--color-border);padding:10px 12px}html.dark .mem-td.svelte-1ik2acm{border-color:#94a3b814}.mem-row.svelte-1ik2acm{cursor:pointer;transition:background .15s}.mem-row.svelte-1ik2acm:hover{background:#f1f5f9b3}html.dark .mem-row.svelte-1ik2acm:hover{background:#0ea5e90d}.mem-row.svelte-1ik2acm:last-child .mem-td:where(.svelte-1ik2acm){border-bottom:none}.row-actions.svelte-1ik2acm{opacity:0;white-space:nowrap;align-items:center;gap:4px;transition:opacity .15s;display:flex}.mem-row.svelte-1ik2acm:hover .row-actions:where(.svelte-1ik2acm){opacity:1}.row-action-btn.svelte-1ik2acm{cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.delete-btn.svelte-1ik2acm:hover{color:#ef4444;background:#ef44441a}html.dark .delete-btn.svelte-1ik2acm:hover{color:#fca5a5;background:#ef444426}.status-pill.svelte-1ik2acm{text-transform:uppercase;border:1px solid var(--color-border);border-radius:999px;padding:2px 8px;font-size:.67rem;font-weight:850;display:inline-block}.status-pending.svelte-1ik2acm{color:#0369a1;background:#0ea5e91f}.status-accepted.svelte-1ik2acm{color:#047857;background:#10b9811f}.status-rejected.svelte-1ik2acm{color:#b91c1c;background:#ef44441f}.status-expired.svelte-1ik2acm{color:#64748b;background:#64748b1f}.claims-section.svelte-1ik2acm{border:1px solid var(--color-border);background:var(--color-surface,#fff);border-radius:14px;padding:16px}.claims-header.svelte-1ik2acm{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.claim-list.svelte-1ik2acm{flex-direction:column;gap:8px;display:flex}.claim-row.svelte-1ik2acm{border:1px solid var(--color-border);background:#ffffff0a;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.row-title.svelte-1ik2acm{color:var(--color-text);margin-bottom:4px;font-size:.82rem;font-weight:700}.row-meta.svelte-1ik2acm{color:var(--color-text-muted);flex-wrap:wrap;gap:8px;font-size:.72rem;font-weight:600;display:flex}.muted-state.svelte-1ik2acm{color:var(--color-text-muted);text-align:center;padding:24px 4px;font-size:.85rem}.empty-claims.svelte-1ik2acm{color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.empty-title.svelte-1ik2acm{color:var(--color-text);font-size:.92rem;font-weight:850}.empty-copy.svelte-1ik2acm{max-width:260px;font-size:.78rem;line-height:1.45}.error-banner.svelte-1ik2acm{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:700}@media (width<=900px){.insight-strip.svelte-1ik2acm,.toolbar-controls.svelte-1ik2acm{grid-template-columns:1fr}}.kg-relation-hint.svelte-fsq8sk{color:var(--color-text);background:#3b82f614;border-bottom:1px solid #3b82f62e;align-items:center;gap:8px;padding:10px 16px;font-size:.8rem;font-weight:600;display:flex}.kg-relation-hint.svelte-fsq8sk svg{color:var(--color-primary);flex-shrink:0}.kg-toolbar.svelte-1ysja8i{border-bottom:1px solid var(--color-border);background:#ffffff0d;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.dark .kg-toolbar.svelte-1ysja8i{border-color:#94a3b81a}.kg-toolbar-left.svelte-1ysja8i{align-items:center;gap:12px;display:flex}.kg-toolbar-right.svelte-1ysja8i{align-items:center;gap:6px;display:flex}.kg-stats.svelte-1ysja8i{color:var(--color-text-muted);font-size:.72rem;font-weight:600}.kg-error.svelte-1ysja8i{color:var(--color-danger);background:#ef444414;border-bottom:1px solid #ef444426;align-items:center;gap:8px;padding:10px 16px;font-size:.8rem;font-weight:600;display:flex}.kg-loading,.kg-empty{color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-size:.85rem;display:flex}.kg-empty svg{opacity:.3}@media (width<=640px){.kg-toolbar.svelte-1ysja8i{flex-direction:column;align-items:flex-start;gap:10px}.kg-toolbar-right.svelte-1ysja8i{flex-wrap:wrap}}.kg-container.svelte-1esn54r{background:var(--glass-bg);border:1px solid var(--glass-border);height:calc(100vh - 180px);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);border-radius:24px;flex-direction:column;display:flex;overflow:hidden}.dark .kg-container.svelte-1esn54r{background:var(--panel-dark);border-color:var(--panel-dark-border);box-shadow:var(--panel-dark-shadow)}.kg-canvas-wrap{flex:1;position:relative;overflow:hidden}.kg-canvas-wrap.kg-hidden{opacity:0;pointer-events:none;position:absolute;inset:0}.kg-canvas-wrap canvas{width:100%;height:100%;display:block}.modal-overlay.svelte-18jfbxu{z-index:60;-webkit-backdrop-filter:blur(6px);background:#010c1e8c;position:fixed;inset:0}.modal-panel.svelte-18jfbxu{z-index:61;background:var(--glass-bg-ultra);-webkit-backdrop-filter:blur(28px)saturate(1.2);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-elevated);border-radius:16px;width:min(400px,90vw);max-height:80vh;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.dark .modal-panel.svelte-18jfbxu{background:var(--panel-dark-ultra);border-color:var(--panel-dark-border);box-shadow:var(--panel-dark-shadow)}.modal-header.svelte-18jfbxu{color:var(--color-text);border-bottom:1px solid var(--color-border);align-items:center;gap:8px;padding:16px 20px;font-size:.9rem;font-weight:800;display:flex}.dark .modal-header.svelte-18jfbxu{border-color:#94a3b81a}.modal-body.svelte-18jfbxu{padding:16px 20px}.modal-footer.svelte-18jfbxu{border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;display:flex}.dark .modal-footer.svelte-18jfbxu{border-color:#94a3b81a}.form-group.svelte-18jfbxu{margin-bottom:12px}.form-label.svelte-18jfbxu{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:4px;font-size:.72rem;font-weight:700;display:block}.arena-root.svelte-1pykpun{border-radius:0;padding:0;overflow:hidden}.arena-hdr.svelte-1pykpun{border-bottom:1px solid var(--color-border);background:#ffffff08;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.arena-hdr-left.svelte-1pykpun{align-items:center;gap:10px;display:flex}.arena-icon.svelte-1pykpun{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#fff;width:36px;height:36px;box-shadow:0 4px 12px var(--glow-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.arena-sub.svelte-1pykpun{color:var(--color-text-muted);margin-top:1px;font-size:.67rem;font-weight:600}.arena-hdr-right.svelte-1pykpun{align-items:center;display:flex}.badge.svelte-1pykpun{border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.7rem;font-weight:700;display:flex}.badge.loading.svelte-1pykpun{color:var(--color-text-muted);background:#64748b1a}.badge.error.svelte-1pykpun{color:#ef4444;background:#ef44441a}.badge.live.svelte-1pykpun{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.pulse-dot.svelte-1pykpun{background:#10b981;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1.8s ease-in-out infinite status-blink}.arena-wrap.svelte-1pykpun{background:var(--color-bg);width:100%;position:relative}.arena-canvas.svelte-1pykpun{width:100%;height:auto;display:block}.arena-empty.svelte-1pykpun{color:var(--color-text-muted);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.arena-empty-sub.svelte-1pykpun{opacity:.6;text-align:center;max-width:280px;font-size:.73rem}.agent-tip.svelte-1pykpun{z-index:20;pointer-events:none;border:1px solid var(--color-border);background:var(--color-surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;min-width:168px;padding:10px 12px;font-size:.77rem;position:absolute;box-shadow:0 8px 28px #0000002e}.tip-name.svelte-1pykpun{color:var(--color-text);align-items:center;gap:6px;margin-bottom:7px;font-size:.82rem;font-weight:800;display:flex}.tip-dot.svelte-1pykpun{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tip-row.svelte-1pykpun{color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:8px;padding:1px 0;font-size:.73rem;display:flex}.tip-key.svelte-1pykpun{text-transform:uppercase;letter-spacing:.05em;opacity:.65;font-size:.67rem;font-weight:700}.tip-state.svelte-1pykpun{font-weight:700}.tip-state.processing.svelte-1pykpun{color:#a855f7}.tip-state.idle.svelte-1pykpun{color:#64748b}.tip-state.claiming.svelte-1pykpun{color:#0ea5e9}.tip-state.handoff_out.svelte-1pykpun{color:#f59e0b}.tip-state.handoff_in.svelte-1pykpun{color:#10b981}.tip-repos.svelte-1pykpun{text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:.68rem;overflow:hidden}.arena-footer.svelte-1pykpun{border-top:1px solid var(--color-border);background:#ffffff05;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;padding:8px 20px;display:flex}.legend-row.svelte-1pykpun{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.legend-item.svelte-1pykpun{color:var(--color-text-muted);align-items:center;gap:5px;font-size:.68rem;font-weight:600;display:flex}.lg-dot.svelte-1pykpun{border-radius:50%;flex-shrink:0;width:8px;height:8px}.lg-dash.svelte-1pykpun{border-top:2px dashed #6366f18c;flex-shrink:0;width:18px;height:0;display:inline-block}.lg-bubble.svelte-1pykpun{background:#a855f7;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:1.8s ease-in-out infinite status-blink}.global-shell.svelte-1eglegg{flex-direction:column;gap:14px;display:flex}.panel-card.svelte-1eglegg{padding:16px}.panel-header.svelte-1eglegg{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.panel-copy.svelte-1eglegg{color:var(--color-text-muted);max-width:620px;font-size:.76rem;line-height:1.45}.repo-focus.svelte-1eglegg{color:#6366f1;background:#6366f114;border:1px solid #6366f129;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.68rem;font-weight:800;display:inline-flex}.summary-grid.svelte-1eglegg{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.summary-card.svelte-1eglegg{border:1px solid var(--color-border);text-align:center;border-radius:14px;padding:12px 10px}.summary-icon.svelte-1eglegg{opacity:.85;justify-content:center;margin-bottom:4px;display:flex}.summary-value.svelte-1eglegg{letter-spacing:-.04em;font-size:1.45rem;font-weight:900;line-height:1}.summary-label.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:.62rem;font-weight:800}.grid-two.svelte-1eglegg{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.subheading.svelte-1eglegg{color:var(--color-text);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.72rem;font-weight:800}.mini-grid.svelte-1eglegg{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mini-card.svelte-1eglegg{border:1px solid var(--color-border);background:#ffffff08;border-radius:12px;padding:12px}.mini-icon.svelte-1eglegg{opacity:.8;margin-bottom:6px}.mini-value.svelte-1eglegg{letter-spacing:-.03em;font-size:1.2rem;font-weight:900;line-height:1}.mini-label.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:.64rem;font-weight:800}.repo-table.svelte-1eglegg{flex-direction:column;gap:8px;display:flex}.repo-table-head.svelte-1eglegg,.repo-table-row.svelte-1eglegg{grid-template-columns:minmax(180px,1.4fr) 90px minmax(190px,1.2fr) minmax(180px,1.2fr) 110px;align-items:center;gap:12px;display:grid}.repo-table-head.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;padding:0 10px 6px;font-size:.62rem;font-weight:800}.repo-table-row.svelte-1eglegg{border:1px solid var(--color-border);background:#ffffff0a;border-radius:12px;padding:12px 10px}.repo-table-row.selected.svelte-1eglegg{background:#6366f10f;border-color:#6366f147}.repo-name.svelte-1eglegg{color:var(--color-text);font-size:.84rem;font-weight:800}.repo-meta.svelte-1eglegg,.last-activity.svelte-1eglegg{color:var(--color-text-muted);font-size:.68rem;font-weight:600}.pressure-pill.svelte-1eglegg{color:#ef4444;background:#ef444414;border:1px solid #ef444429;border-radius:999px;justify-content:center;align-items:center;min-width:56px;padding:6px 10px;font-size:.78rem;font-weight:900;display:inline-flex}.repo-stats.svelte-1eglegg{flex-wrap:wrap;gap:6px;display:flex}.stat-chip.svelte-1eglegg{border:1px solid #0000;border-radius:999px;align-items:center;padding:3px 7px;font-size:.62rem;font-weight:800;display:inline-flex}.stat-chip.active.svelte-1eglegg{color:#8b5cf6;background:#8b5cf61a;border-color:#8b5cf629}.stat-chip.pending.svelte-1eglegg{color:#0ea5e9;background:#0ea5e91a;border-color:#0ea5e929}.stat-chip.blocked.svelte-1eglegg{color:#ef4444;background:#ef44441a;border-color:#ef444429}.stat-chip.backlog.svelte-1eglegg{color:#64748b;background:#64748b1a;border-color:#64748b29}.stat-chip.claim.svelte-1eglegg{color:#10b981;background:#10b9811a;border-color:#10b98129}.stat-chip.handoff.svelte-1eglegg{color:#6366f1;background:#6366f11a;border-color:#6366f129}.stat-chip.stale.svelte-1eglegg{color:#f97316;background:#f973161a;border-color:#f9731629}.empty-state.svelte-1eglegg{min-height:120px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.82rem;display:flex}@media (width<=1080px){.grid-two.svelte-1eglegg,.mini-grid.svelte-1eglegg{grid-template-columns:1fr}.repo-table-head.svelte-1eglegg{display:none}.repo-table-row.svelte-1eglegg{grid-template-columns:1fr;align-items:flex-start}}.card-body{padding:16px}.card-section-title{margin-bottom:10px}.empty-state.svelte-1m88iwd{text-align:center;padding:80px 20px}.empty-state-icon.svelte-1m88iwd{background:linear-gradient(135deg,#0ea5e926,#6366f126);border:1px solid #0ea5e933;border-radius:20px;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:20px;display:inline-flex}.empty-state-title.svelte-1m88iwd{color:var(--color-text);letter-spacing:-.02em;margin-bottom:8px;font-size:1.25rem;font-weight:800}.empty-state-text.svelte-1m88iwd{color:var(--color-text-muted);font-size:.875rem}.repo-badge.svelte-1m88iwd{color:var(--color-primary);background:#6366f114;border:1px solid #6366f129;border-radius:999px;padding:4px 8px;font-size:.68rem;font-weight:800}.muted-text.svelte-1m88iwd{color:var(--color-text-muted);font-size:.8rem}@media (width<=900px){.dashboard-grid.svelte-1m88iwd,.repo-pulse-grid.svelte-1m88iwd{grid-template-columns:1fr!important}}.arena-fullwidth.svelte-1m88iwd{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px}@media (width<=1024px){.arena-fullwidth.svelte-1m88iwd{width:calc(100% + 24px);margin-left:-12px;margin-right:-12px}}
|
|
@@ -8,8 +8,8 @@
|
|
|
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-
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-Bl3hkhYk.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-iYrQr1US.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="app"></div>
|
package/dist/mcp/server.js
CHANGED
|
@@ -74,8 +74,8 @@ import path from "path";
|
|
|
74
74
|
import { fileURLToPath } from "url";
|
|
75
75
|
var __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
76
76
|
var pkgVersion = "0.1.0";
|
|
77
|
-
if ("0.19.
|
|
78
|
-
pkgVersion = "0.19.
|
|
77
|
+
if ("0.19.4") {
|
|
78
|
+
pkgVersion = "0.19.4";
|
|
79
79
|
} else {
|
|
80
80
|
let searchDir = __dirname;
|
|
81
81
|
for (let i = 0; i < 5; i++) {
|