vibeostheog 0.26.1 → 0.26.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/assets/dashboard/assets/index-CspnmA46.js +3 -0
  3. package/dist/assets/dashboard/index.html +1 -1
  4. package/dist/assets/dashboard/vibeos-dashboard-config.js +1 -1
  5. package/dist/vibeOS.js +581 -486
  6. package/package.json +1 -1
  7. package/dist/assets/dashboard/assets/index-BAFoSUYT.css +0 -1
  8. package/dist/assets/dashboard/assets/index-BC32ZQ0q.css +0 -1
  9. package/dist/assets/dashboard/assets/index-BFPdi_Ph.css +0 -1
  10. package/dist/assets/dashboard/assets/index-BHjsjrCc.js +0 -5
  11. package/dist/assets/dashboard/assets/index-BUDvTrCq.css +0 -1
  12. package/dist/assets/dashboard/assets/index-BY7bffmm.js +0 -3
  13. package/dist/assets/dashboard/assets/index-BZu3dyXH.css +0 -1
  14. package/dist/assets/dashboard/assets/index-Brj9Ui6Z.js +0 -3
  15. package/dist/assets/dashboard/assets/index-C-ScsrcN.js +0 -3
  16. package/dist/assets/dashboard/assets/index-C5VfzSA8.js +0 -3
  17. package/dist/assets/dashboard/assets/index-C5tPTUjx.js +0 -3
  18. package/dist/assets/dashboard/assets/index-Cb3hwMDH.css +0 -1
  19. package/dist/assets/dashboard/assets/index-CjHF2vTf.css +0 -1
  20. package/dist/assets/dashboard/assets/index-CkX-loOf.js +0 -3
  21. package/dist/assets/dashboard/assets/index-D3bLrmaq.css +0 -1
  22. package/dist/assets/dashboard/assets/index-DGIMdqp_.css +0 -1
  23. package/dist/assets/dashboard/assets/index-DK4e4oaB.js +0 -3
  24. package/dist/assets/dashboard/assets/index-DhtwzMRd.js +0 -3
  25. package/dist/assets/dashboard/assets/index-DnK3sBqN.js +0 -3
  26. package/dist/assets/dashboard/assets/index-Dwg0W0mM.js +0 -3
  27. package/dist/assets/dashboard/assets/index-H09FCi_1.js +0 -5
  28. package/dist/assets/dashboard/assets/index-IZRaK1J1.js +0 -3
  29. package/dist/assets/dashboard/assets/index-VITT_Lum.js +0 -3
  30. package/dist/assets/dashboard/assets/index-Xf82CCxe.css +0 -1
  31. package/dist/assets/dashboard/assets/index-ZWfKo4FL.js +0 -3
  32. package/dist/assets/dashboard/assets/index-fhy-rD-W.css +0 -1
  33. package/dist/assets/dashboard/assets/index-mizr4ifp.js +0 -5
  34. package/dist/assets/dashboard/assets/index-rDxjSA11.css +0 -1
  35. package/dist/assets/dashboard/assets/index-xMN9Z-Zy.js +0 -3
@@ -1,3 +0,0 @@
1
- (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const l of i)if(l.type==="childList")for(const a of l.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&s(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const l={};return i.integrity&&(l.integrity=i.integrity),i.referrerPolicy&&(l.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?l.credentials="include":i.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function s(i){if(i.ep)return;i.ep=!0;const l=n(i);fetch(i.href,l)}})();const In=!1,Nn=(e,t)=>e===t,Ln=Symbol("solid-track"),Ct={equals:Nn};let on=un;const Je=1,Pt=2,an={owned:null,cleanups:null,context:null,owner:null},Rt={};var X=null;let qt=null,Rn=null,z=null,be=null,Ke=null,Dt=0;function kt(e,t){const n=z,s=X,i=e.length===0,l=t===void 0?s:t,a=i?an:{owned:null,cleanups:null,context:l?l.context:null,owner:l},o=i?e:()=>e(()=>Fe(()=>vt(a)));X=a,z=null;try{return We(o,!0)}finally{z=n,X=s}}function M(e,t){t=t?Object.assign({},Ct,t):Ct;const n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},s=i=>(typeof i=="function"&&(i=i(n.value)),dn(n,i));return[cn.bind(n),s]}function qn(e,t,n){const s=It(e,t,!0,Je);rt(s)}function se(e,t,n){const s=It(e,t,!1,Je);rt(s)}function zt(e,t,n){on=Hn;const s=It(e,t,!1,Je);s.user=!0,Ke?Ke.push(s):rt(s)}function _e(e,t,n){n=n?Object.assign({},Ct,n):Ct;const s=It(e,t,!0,0);return s.observers=null,s.observerSlots=null,s.comparator=n.equals||void 0,rt(s),cn.bind(s)}function Bn(e){return e&&typeof e=="object"&&"then"in e}function Gt(e,t,n){let s,i,l;typeof t=="function"?(s=e,i=t,l={}):(s=!0,i=e,l=t||{});let a=null,o=Rt,c=!1,d="initialValue"in l,m=typeof s=="function"&&_e(s);const u=new Set,[$,E]=(l.storage||M)(l.initialValue),[q,g]=M(void 0),[y,H]=M(void 0,{equals:!1}),[O,w]=M(d?"ready":"unresolved");function N(D,b,A,C){return a===D&&(a=null,C!==void 0&&(d=!0),(D===o||b===o)&&l.onHydrated&&queueMicrotask(()=>l.onHydrated(C,{value:b})),o=Rt,ie(b,A)),b}function ie(D,b){We(()=>{b===void 0&&E(()=>D),w(b!==void 0?"errored":d?"ready":"unresolved"),g(b);for(const A of u.keys())A.decrement();u.clear()},!1)}function oe(){const D=Vn,b=$(),A=q();if(A!==void 0&&!a)throw A;return z&&z.user,b}function k(D=!0){if(D!==!1&&c)return;c=!1;const b=m?m():s;if(b==null||b===!1){N(a,Fe($));return}let A;const C=o!==Rt?o:Fe(()=>{try{return i(b,{value:$(),refetching:D})}catch(V){A=V}});if(A!==void 0){N(a,void 0,xt(A),b);return}else if(!Bn(C))return N(a,C,void 0,b),C;return a=C,"v"in C?(C.s===1?N(a,C.v,void 0,b):N(a,void 0,xt(C.v),b),C):(c=!0,queueMicrotask(()=>c=!1),We(()=>{w(d?"refreshing":"pending"),H()},!1),C.then(V=>N(C,V,void 0,b),V=>N(C,void 0,xt(V),b)))}Object.defineProperties(oe,{state:{get:()=>O()},error:{get:()=>q()},loading:{get(){const D=O();return D==="pending"||D==="refreshing"}},latest:{get(){if(!d)return oe();const D=q();if(D&&!a)throw D;return $()}}});let R=X;return m?qn(()=>(R=X,k(!1))):k(!1),[oe,{refetch:D=>Mn(R,()=>k(D)),mutate:E}]}function Fe(e){if(z===null)return e();const t=z;z=null;try{return e()}finally{z=t}}function Un(e){zt(()=>Fe(e))}function Ft(e){return X===null||(X.cleanups===null?X.cleanups=[e]:X.cleanups.push(e)),e}function Mn(e,t){const n=X,s=z;X=e,z=null;try{return We(t,!0)}catch(i){Ht(i)}finally{X=n,z=s}}const[Qi,Yi]=M(!1);let Vn;function cn(){if(this.sources&&this.state)if(this.state===Je)rt(this);else{const e=be;be=null,We(()=>At(this),!1),be=e}if(z){const e=this.observers;if(!e||e[e.length-1]!==z){const t=e?e.length:0;z.sources?(z.sources.push(this),z.sourceSlots.push(t)):(z.sources=[this],z.sourceSlots=[t]),e?(e.push(z),this.observerSlots.push(z.sources.length-1)):(this.observers=[z],this.observerSlots=[z.sources.length-1])}}return this.value}function dn(e,t,n){let s=e.value;return(!e.comparator||!e.comparator(s,t))&&(e.value=t,e.observers&&e.observers.length&&We(()=>{for(let i=0;i<e.observers.length;i+=1){const l=e.observers[i],a=qt&&qt.running;a&&qt.disposed.has(l),(a?!l.tState:!l.state)&&(l.pure?be.push(l):Ke.push(l),l.observers&&fn(l)),a||(l.state=Je)}if(be.length>1e6)throw be=[],new Error},!1)),t}function rt(e){if(!e.fn)return;vt(e);const t=Dt;zn(e,e.value,t)}function zn(e,t,n){let s;const i=X,l=z;z=X=e;try{s=e.fn(t)}catch(a){return e.pure&&(e.state=Je,e.owned&&e.owned.forEach(vt),e.owned=null),e.updatedAt=n+1,Ht(a)}finally{z=l,X=i}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&"observers"in e?dn(e,s):e.value=s,e.updatedAt=n)}function It(e,t,n,s=Je,i){const l={fn:e,state:s,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:X,context:X?X.context:null,pure:n};return X===null||X!==an&&(X.owned?X.owned.push(l):X.owned=[l]),l}function jt(e){if(e.state===0)return;if(e.state===Pt)return At(e);if(e.suspense&&Fe(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<Dt);)e.state&&t.push(e);for(let n=t.length-1;n>=0;n--)if(e=t[n],e.state===Je)rt(e);else if(e.state===Pt){const s=be;be=null,We(()=>At(e,t[0]),!1),be=s}}function We(e,t){if(be)return e();let n=!1;t||(be=[]),Ke?n=!0:Ke=[],Dt++;try{const s=e();return Fn(n),s}catch(s){n||(Ke=null),be=null,Ht(s)}}function Fn(e){if(be&&(un(be),be=null),e)return;const t=Ke;Ke=null,t.length&&We(()=>on(t),!1)}function un(e){for(let t=0;t<e.length;t++)jt(e[t])}function Hn(e){let t,n=0;for(t=0;t<e.length;t++){const s=e[t];s.user?e[n++]=s:jt(s)}for(t=0;t<n;t++)jt(e[t])}function At(e,t){e.state=0;for(let n=0;n<e.sources.length;n+=1){const s=e.sources[n];if(s.sources){const i=s.state;i===Je?s!==t&&(!s.updatedAt||s.updatedAt<Dt)&&jt(s):i===Pt&&At(s,t)}}}function fn(e){for(let t=0;t<e.observers.length;t+=1){const n=e.observers[t];n.state||(n.state=Pt,n.pure?be.push(n):Ke.push(n),n.observers&&fn(n))}}function vt(e){let t;if(e.sources)for(;e.sources.length;){const n=e.sources.pop(),s=e.sourceSlots.pop(),i=n.observers;if(i&&i.length){const l=i.pop(),a=n.observerSlots.pop();s<i.length&&(l.sourceSlots[a]=s,i[s]=l,n.observerSlots[s]=a)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)vt(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)vt(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function xt(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function Ht(e,t=X){throw xt(e)}const Kn=Symbol("fallback");function Xt(e){for(let t=0;t<e.length;t++)e[t]()}function Jn(e,t,n={}){let s=[],i=[],l=[],a=0,o=t.length>1?[]:null;return Ft(()=>Xt(l)),()=>{let c=e()||[],d=c.length,m,u;return c[Ln],Fe(()=>{let E,q,g,y,H,O,w,N,ie;if(d===0)a!==0&&(Xt(l),l=[],s=[],i=[],a=0,o&&(o=[])),n.fallback&&(s=[Kn],i[0]=kt(oe=>(l[0]=oe,n.fallback())),a=1);else if(a===0){for(i=new Array(d),u=0;u<d;u++)s[u]=c[u],i[u]=kt($);a=d}else{for(g=new Array(d),y=new Array(d),o&&(H=new Array(d)),O=0,w=Math.min(a,d);O<w&&s[O]===c[O];O++);for(w=a-1,N=d-1;w>=O&&N>=O&&s[w]===c[N];w--,N--)g[N]=i[w],y[N]=l[w],o&&(H[N]=o[w]);for(E=new Map,q=new Array(N+1),u=N;u>=O;u--)ie=c[u],m=E.get(ie),q[u]=m===void 0?-1:m,E.set(ie,u);for(m=O;m<=w;m++)ie=s[m],u=E.get(ie),u!==void 0&&u!==-1?(g[u]=i[m],y[u]=l[m],o&&(H[u]=o[m]),u=q[u],E.set(ie,u)):l[m]();for(u=O;u<d;u++)u in g?(i[u]=g[u],l[u]=y[u],o&&(o[u]=H[u],o[u](u))):i[u]=kt($);i=i.slice(0,a=d),s=c.slice(0)}return i});function $(E){if(l[u]=E,o){const[q,g]=M(u);return o[u]=g,t(c[u],q)}return t(c[u])}}}function j(e,t){return Fe(()=>e(t||{}))}const Zn=e=>`Stale read from <${e}>.`;function me(e){const t="fallback"in e&&{fallback:()=>e.fallback};return _e(Jn(()=>e.each,e.children,t||void 0))}function $e(e){const t=e.keyed,n=_e(()=>e.when,void 0,void 0),s=t?n:_e(n,void 0,{equals:(i,l)=>!i==!l});return _e(()=>{const i=s();if(i){const l=e.children;return typeof l=="function"&&l.length>0?Fe(()=>l(t?i:()=>{if(!Fe(s))throw Zn("Show");return n()})):l}return e.fallback},void 0,void 0)}const it=e=>_e(()=>e());function Wn(e,t,n){let s=n.length,i=t.length,l=s,a=0,o=0,c=t[i-1].nextSibling,d=null;for(;a<i||o<l;){if(t[a]===n[o]){a++,o++;continue}for(;t[i-1]===n[l-1];)i--,l--;if(i===a){const m=l<s?o?n[o-1].nextSibling:n[l-o]:c;for(;o<l;)e.insertBefore(n[o++],m)}else if(l===o)for(;a<i;)(!d||!d.has(t[a]))&&t[a].remove(),a++;else if(t[a]===n[l-1]&&n[o]===t[i-1]){const m=t[--i].nextSibling;e.insertBefore(n[o++],t[a++].nextSibling),e.insertBefore(n[--l],m),t[i]=n[l]}else{if(!d){d=new Map;let u=o;for(;u<l;)d.set(n[u],u++)}const m=d.get(t[a]);if(m!=null)if(o<m&&m<l){let u=a,$=1,E;for(;++u<i&&u<l&&!((E=d.get(t[u]))==null||E!==m+$);)$++;if($>m-o){const q=t[a];for(;o<m;)e.insertBefore(n[o++],q)}else e.replaceChild(n[o++],t[a++])}else a++;else t[a++].remove()}}}const Qt="_$DX_DELEGATE";function Gn(e,t,n,s={}){let i;return kt(l=>{i=l,t===document?e():r(t,e(),t.firstChild?null:void 0,n)},s.owner),()=>{i(),t.textContent=""}}function x(e,t,n,s){let i;const l=()=>{const o=document.createElement("template");return o.innerHTML=e,o.content.firstChild},a=()=>(i||(i=l())).cloneNode(!0);return a.cloneNode=a,a}function ot(e,t=window.document){const n=t[Qt]||(t[Qt]=new Set);for(let s=0,i=e.length;s<i;s++){const l=e[s];n.has(l)||(n.add(l),t.addEventListener(l,Yn))}}function gt(e,t,n){n==null?e.removeAttribute(t):e.setAttribute(t,n)}function de(e,t){t==null?e.removeAttribute("class"):e.className=t}function mt(e,t,n,s){Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n}function Xn(e,t,n){if(!t)return n?gt(e,"style"):t;const s=e.style;if(typeof t=="string")return s.cssText=t;typeof n=="string"&&(s.cssText=n=void 0),n||(n={}),t||(t={});let i,l;for(l in n)t[l]==null&&s.removeProperty(l),delete n[l];for(l in t)i=t[l],i!==n[l]&&(s.setProperty(l,i),n[l]=i);return n}function Qn(e,t,n){return Fe(()=>e(t,n))}function r(e,t,n,s){if(n!==void 0&&!s&&(s=[]),typeof t!="function")return Tt(e,t,s,n);se(i=>Tt(e,t(),i,n),s)}function Yn(e){let t=e.target;const n=`$$${e.type}`,s=e.target,i=e.currentTarget,l=c=>Object.defineProperty(e,"target",{configurable:!0,value:c}),a=()=>{const c=t[n];if(c&&!t.disabled){const d=t[`${n}Data`];if(d!==void 0?c.call(t,d,e):c.call(t,e),e.cancelBubble)return}return t.host&&typeof t.host!="string"&&!t.host._$host&&t.contains(e.target)&&l(t.host),!0},o=()=>{for(;a()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),e.composedPath){const c=e.composedPath();l(c[0]);for(let d=0;d<c.length-2&&(t=c[d],!!a());d++){if(t._$host){t=t._$host,o();break}if(t.parentNode===i)break}}else o();l(s)}function Tt(e,t,n,s,i){for(;typeof n=="function";)n=n();if(t===n)return n;const l=typeof t,a=s!==void 0;if(e=a&&n[0]&&n[0].parentNode||e,l==="string"||l==="number"){if(l==="number"&&(t=t.toString(),t===n))return n;if(a){let o=n[0];o&&o.nodeType===3?o.data!==t&&(o.data=t):o=document.createTextNode(t),n=st(e,n,s,o)}else n!==""&&typeof n=="string"?n=e.firstChild.data=t:n=e.textContent=t}else if(t==null||l==="boolean")n=st(e,n,s);else{if(l==="function")return se(()=>{let o=t();for(;typeof o=="function";)o=o();n=Tt(e,o,n,s)}),()=>n;if(Array.isArray(t)){const o=[],c=n&&Array.isArray(n);if(Ut(o,t,n,i))return se(()=>n=Tt(e,o,n,s,!0)),()=>n;if(o.length===0){if(n=st(e,n,s),a)return n}else c?n.length===0?Yt(e,o,s):Wn(e,n,o):(n&&st(e),Yt(e,o));n=o}else if(t.nodeType){if(Array.isArray(n)){if(a)return n=st(e,n,s,t);st(e,n,null,t)}else n==null||n===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}}return n}function Ut(e,t,n,s){let i=!1;for(let l=0,a=t.length;l<a;l++){let o=t[l],c=n&&n[e.length],d;if(!(o==null||o===!0||o===!1))if((d=typeof o)=="object"&&o.nodeType)e.push(o);else if(Array.isArray(o))i=Ut(e,o,c)||i;else if(d==="function")if(s){for(;typeof o=="function";)o=o();i=Ut(e,Array.isArray(o)?o:[o],Array.isArray(c)?c:[c])||i}else e.push(o),i=!0;else{const m=String(o);c&&c.nodeType===3&&c.data===m?e.push(c):e.push(document.createTextNode(m))}}return i}function Yt(e,t,n=null){for(let s=0,i=t.length;s<i;s++)e.insertBefore(t[s],n)}function st(e,t,n,s){if(n===void 0)return e.textContent="";const i=s||document.createTextNode("");if(t.length){let l=!1;for(let a=t.length-1;a>=0;a--){const o=t[a];if(i!==o){const c=o.parentNode===e;!l&&!a?c?e.replaceChild(i,o):e.insertBefore(i,n):c&&o.remove()}else l=!0}}else e.insertBefore(i,n);return[i]}function F(e){return JSON.parse(JSON.stringify(e))}function tt(){return new Date().toISOString()}function en(e){return`$${e.toFixed(2)}`}const St="proj_dashboard",lt="sess_vibeultra_exec",Bt="flow_tdd_live",et={recommended_next_action:"Resolve the API wiring, run the TDD flow, then verify the desktop 4-column session workspace.",recommended_label:"TDD Flow Plan",reason:"The dashboard must expose a strict deterministic execution path before allowing further session work.",confidence:.92,flow:!0,steps:[{tool:"plan",label:"Resolve execution plan",reason:"Lock the next structured steps before any run."},{tool:"tdd",label:"Write failing expectation",reason:"Capture KPI, mode, and deterministic UI behavior in testable form."},{tool:"implement",label:"Wire API-backed session controls",reason:"Surface live mode, lock, policy, and plan data."},{tool:"web_search",label:"Ground research when needed",reason:"Only use structured search steps inside the session."},{tool:"verify",label:"Run preview and inspect layout",reason:"Confirm Home and 4-column workspace render operationally."}],signals:{deterministic_execution_policy:"strict-deterministic",requested_optimization_mode:"vibeultrax",effective_optimization_mode:"vibeultrax",effective_slot:"brain"},capabilities:{web_search:!0,tdd:!0,vibeultrax:!0}},h={status:{enabled:!0,active_slot:"brain",enforce:!0,flow_enforcer:!0,flow_extract_todos:!0,tdd_enforcer:!0,tdd_strict:!0,thinking:"full",current_model:"openai/gpt-5",current_provider:"OpenAI",current_quality_tier:"brain",credit_percent:72,version:"preview",backend_connected:!1,backendConnected:!1,backend_api_url:"https://api.vibetheog.com/api/v1",backend_health_url:"https://api.vibetheog.com/health",backend_health_checked_at:tt(),backend_health_age_ms:0,backend_health_latency_ms:null,backend_health_status:null,backend_health_error:"preview fallback",backend_version:null,api_fallback:!0,api_fallback_since:tt(),model_locked:!0,locked_slot:"brain",locked_model:"openai/gpt-5",optimization_mode:"vibeultrax",recommended_next_action:"Open the active session and run the TDD flow plan.",orchestration_plan:F(et),tiers:null,label_modes:["vibeultrax","vibeqmax","vibemax","vibelitex","raw"],todos:{total:6,pending:4},current_project_fingerprint:"dashboard/home-4col",current_project_name:"Dashboard Control Center",reality_check_enabled:!0,reality_check_scope:"project",reality_check_project_id:St,reality_check_rules_count:3},savings:{lifetime:{delegation_usd:18.34,cache_usd:9.81,missed_context7_usd:2.15,total_warns:7},current_session:{delegation_usd:4.62,cache_usd:1.28,warns_count:1,tool_breakdown:{plan:2.1,tdd:1.7,web_search:.8,verify:1.3}},cache_hits_this_session:14,trend:"up",savings_rate_per_hour:3.9},capabilities:{web_search:{enabled:!0,provider:"api",fixture_mode:!0},compression:{enabled:!0,provider:"local"},tdd:{enabled:!0,provider:"local"},blackbox:{enabled:!0,provider:"local"},vibemax:{enabled:!0,provider:"local"},vibeqmax:{enabled:!0,provider:"local"},vibeultrax:{enabled:!0,provider:"local"},vibelitex:{enabled:!0,provider:"local"},raw:{enabled:!0,provider:"local"}},projects:[{id:St,name:"Dashboard Control Center",fingerprint:"dashboard/home-4col",default_flow_id:Bt,created_at:"2026-07-03T12:30:00.000Z",updated_at:"2026-07-03T15:05:00.000Z"}],sessions:[{id:lt,project_id:St,title:"Executive Home + Deterministic Session Rail",flow_id:Bt,created_at:"2026-07-03T12:45:00.000Z",updated_at:"2026-07-03T15:06:00.000Z"}],flows:[{id:Bt,scope:"project",project_id:St,name:"TDD Flow Plan",graph:{nodes:[{id:"plan",tool:"plan",label:"Resolve plan"},{id:"tdd",tool:"tdd",label:"Write failing expectation"},{id:"implement",tool:"implement",label:"Implement dashboard changes"},{id:"verify",tool:"verify",label:"Preview and validate"}],edges:[{from:"plan",to:"tdd"},{from:"tdd",to:"implement"},{from:"implement",to:"verify"}]},created_at:"2026-07-03T12:40:00.000Z",updated_at:"2026-07-03T15:02:00.000Z"}],messages:{[lt]:[{id:"msg_user_1",role:"user",content:"Build the executive home, wire the 4-column operational session UI, and keep deterministic execution only.",plan:F(et),results:null,created_at:"2026-07-03T12:46:00.000Z"},{id:"msg_assistant_1",role:"assistant",content:"Resolved plan: Home KPIs first, then session rail, then API wiring, then preview verification.",plan:F(et),results:[{step:et.steps[0],result:{ok:!0,state:"resolved"}},{step:et.steps[1],result:{ok:!0,tests:"drafted"}},{step:et.steps[2],result:{ok:!0,controls:"api-backed"}}],created_at:"2026-07-03T12:49:00.000Z"}]},reports:[{id:"report_preview_audit",type:"audit",summary:"Preview fallback is active because the backend is unavailable; UI remains interactive.",created:"2026-07-03T15:00:00.000Z",tags:["preview","dashboard","fallback"]}],sessionState:{status:"active",locked:!0,archived:!1,optimization_mode:"vibeultrax",recommendation:"Run the structured TDD flow once the API is healthy, or continue in preview mode for layout verification.",lifecycle:{created_at:"2026-07-03T12:45:00.000Z",paused_at:null,resumed_at:"2026-07-03T13:10:00.000Z",archived_at:null,checked_out_at:"2026-07-03T15:06:00.000Z"},notes:[{text:"Column 4 is the authority rail for mode, plan, lock, and policy."},{text:"Sub-regimes such as speed, audit, forensic, and longrun are not top-level vibe modes."}],tags:["home","session","deterministic","tdd","web-search"],template:{id:"tdd-flow-plan",label:"TDD Flow Plan",body:"Plan -> TDD -> Implement -> Verify",signature:"preview-template",revision:4,source:"preview"},blackbox:{enabled:!0,sub_regime:"audit",resolution:"strict deterministic",momentum:84,loop_count:3}}};function es(){return h.projects[0]}function ts(){return h.sessions[0]}function yt(){const e=ts(),t=es();return{title:e.title,session_id:e.id,status:h.sessionState.status,locked:h.sessionState.locked,archived:h.sessionState.archived,project_name:t.name,project_fingerprint:t.fingerprint,started_at:h.sessionState.lifecycle.created_at,cost_usd:2.41,delegation_savings_usd:h.savings.current_session.delegation_usd,cache_savings_usd:h.savings.current_session.cache_usd,notes_count:h.sessionState.notes.length,tags:F(h.sessionState.tags),template:F(h.sessionState.template),optimization_mode:h.sessionState.optimization_mode,orchestration_plan:F(et),blackbox:F(h.sessionState.blackbox),recommendation:h.sessionState.recommendation,notes:F(h.sessionState.notes),lifecycle:F(h.sessionState.lifecycle),orchestration:{effective_optimization_mode:h.sessionState.optimization_mode,requested_optimization_mode:h.sessionState.optimization_mode,effective_slot:h.status.active_slot,deterministic_execution_policy:"strict-deterministic",resolved_plan_metadata:{source:"preview",strict:!0,generated_at:tt()},mode_capabilities:F(h.capabilities)}}}function ns(){var s;const e=yt(),t=h.savings.lifetime.delegation_usd+h.savings.lifetime.cache_usd,n=e.delegation_savings_usd+e.cache_savings_usd;return{home:{title:"Executive Operational Home",subtitle:"Main KPIs, current deterministic session, and next structured action.",recommendation:"Open the active session and continue the TDD Flow Plan from the deterministic rail.",cards:[{label:"Active project",value:e.project_name},{label:"Active session",value:e.title},{label:"Vibe mode",value:"VibeUltraX"},{label:"Slot",value:h.status.active_slot},{label:"Model",value:h.status.current_model},{label:"Lock state",value:h.sessionState.locked?"locked":"mutable"},{label:"Backend",value:h.status.backend_connected?"live":"preview fallback"},{label:"Session cost",value:en(e.cost_usd)},{label:"Session savings",value:en(n)},{label:"Pending TODOs",value:String(((s=h.status.todos)==null?void 0:s.pending)||0)}]},savings:F(h.savings),todos:[{id:"todo_1",status:"pending",title:"Verify Home KPI density"},{id:"todo_2",status:"pending",title:"Validate 4-column desktop layout"},{id:"todo_3",status:"pending",title:"Confirm mode rail exposes all branded vibe modes"},{id:"todo_4",status:"pending",title:"Check blocked-state messaging for unsupported actions"}],current_session:e,template_editor:{enabled:!0,session_id:e.session_id,template:F(h.sessionState.template),templates:[F(h.sessionState.template)],can_edit:!1,can_version:!1,version:4,history:[]},sessions:[{session_id:e.session_id,is_current:!0,started_at:e.started_at,cost_usd:e.cost_usd,delegation_savings_usd:e.delegation_savings_usd,cache_savings_usd:e.cache_savings_usd,status:e.status,locked:e.locked,archived:e.archived,tags:F(e.tags),notes_count:e.notes_count,template_label:e.template.label||e.template.id,template_signature:e.template.signature||null,recommendation:e.recommendation}],templates:[F(h.sessionState.template)],session_actions:["start","pause","resume","lock","unlock","archive","undo"],totals:{total_sessions:h.sessions.length,total_savings_usd:t,current_session_savings_usd:n,pending_todos:4},status:F(h.status),blackbox:{sub_regime:h.sessionState.blackbox.sub_regime,resolution:h.sessionState.blackbox.resolution},backend_connected:h.status.backend_connected,backend_status:h.status.backend_connected?"online":"preview fallback",backend_health_url:h.status.backend_health_url,backend_version:h.status.backend_version}}function ss(){var n;if(typeof window>"u")return!1;const e=String(((n=window.localStorage)==null?void 0:n.getItem("vibeos.dashboard.preview"))||"").toLowerCase();if(e==="1"||e==="true"||e==="on")return!0;const t=window.location.hostname;return t==="127.0.0.1"||t==="localhost"}function is(){return F(h.status)}function ls(){return F(h.savings)}function rs(){return F(h.capabilities)}function os(){return F(h.projects)}function as(e){const t=e?h.sessions.filter(n=>n.project_id===e):h.sessions;return F(t)}function cs(e){const t=e?h.flows.filter(n=>n.project_id===e||n.scope==="global"):h.flows;return F(t)}function ds(e){return F(h.messages[e]||[])}function us(){return F(h.reports)}function fs(){return ns()}function Mt(e){return e!==lt?{session:yt(),metrics:{},orchestration:null}:{session:yt(),metrics:{session_savings_usd:h.savings.current_session.delegation_usd+h.savings.current_session.cache_usd,session_cost_usd:2.41,strict_policy:"strict-deterministic",effective_slot:h.status.active_slot,requested_optimization_mode:h.sessionState.optimization_mode,effective_optimization_mode:h.sessionState.optimization_mode},orchestration:F(yt().orchestration)}}function hs(e,t){return e==="mode"&&t?(h.status.optimization_mode=t,h.sessionState.optimization_mode=t,h.status.recommended_next_action=`Mode switched to ${t}. Continue with the structured TDD flow.`,{ok:!0,result:{optimization_mode:t}}):e==="set"&&t?(h.status.active_slot=t,h.status.current_quality_tier=t,h.status.model_locked=!0,h.status.locked_slot=t,{ok:!0,result:{active_slot:t}}):{ok:!0,result:{action:e,slot:t}}}function ms(e,t){const n=h.sessions.find(s=>s.id===e)||h.sessions[0];return typeof t.title=="string"&&(n.title=t.title),"flow_id"in t&&(n.flow_id=t.flow_id??null),n.updated_at=tt(),F(n)}function _s(e,t){return e!==lt||(t==="lock"?(h.sessionState.locked=!0,h.status.model_locked=!0):t==="unlock"?(h.sessionState.locked=!1,h.status.model_locked=!1):t==="pause"?(h.sessionState.status="paused",h.sessionState.lifecycle.paused_at=tt()):t==="resume"||t==="start"?(h.sessionState.status="active",h.sessionState.lifecycle.resumed_at=tt()):t==="archive"?(h.sessionState.archived=!0,h.sessionState.status="archived",h.sessionState.lifecycle.archived_at=tt()):t==="undo"&&(h.sessionState.archived=!1,h.sessionState.status="active",h.sessionState.lifecycle.archived_at=null),h.sessionState.recommendation=`Last structured action: ${t}. Preview state updated locally.`),Mt(lt)}function bs(e){const t=e.trim()||"dashboard deterministic session";return{ok:!0,query:t,provider:"preview-fixture",results:[{id:"1",title:"Structured execution patterns for operational dashboards",url:"https://example.com/structured-execution",domain:"example.com",snippet:"Operational dashboards keep the execution plan, hard state, and KPI signals visible in the same workspace.",source:"preview",rank:1},{id:"2",title:"TDD planning in live orchestration UIs",url:"https://example.com/tdd-orchestration",domain:"example.com",snippet:"A deterministic control rail should expose the active plan before execution starts.",source:"preview",rank:2},{id:"3",title:"Session command centers with strict blocked-state messaging",url:"https://example.com/blocked-state",domain:"example.com",snippet:"Unsupported actions should fail explicitly when strict mode is active.",source:"preview",rank:3}],citations:[{id:1,title:"Structured execution patterns for operational dashboards",url:"https://example.com/structured-execution",domain:"example.com"},{id:2,title:"TDD planning in live orchestration UIs",url:"https://example.com/tdd-orchestration",domain:"example.com"},{id:3,title:"Session command centers with strict blocked-state messaging",url:"https://example.com/blocked-state",domain:"example.com"}],answer:`Preview search answer for "${t}": keep the Home screen KPI-dense, expose all branded vibe modes in column 4, render the resolved TDD flow plan before execution, and block unsupported actions under strict deterministic policy.`,meta:{resultCount:3,uniqueDomains:1}}}const Kt=typeof window<"u"?window:{},_t=Kt.__VIBEOS_DASHBOARD_BASE__??"",Vt=Kt.__VIBEOS_DASHBOARD_TOKEN__??"";let wt=null;function Jt(){const e={"Content-Type":"application/json"};return Vt&&(e.Authorization="Bearer "+Vt),e}async function Se(e,t){const n=await fetch(_t+e,{headers:Jt(),...t});if(!n.ok)throw new Error(`API ${n.status}: ${n.statusText}`);return n.json()}function Et(e){return String(e||"").trim().replace(/\/$/,"")}function Ot(e){return Et(e).replace(/\/api\/v1$/,"")}function vs(e){const t=Et(e);if(!t)return"";try{const n=new URL(t,typeof window<"u"?window.location.origin:"http://127.0.0.1");return n.pathname.endsWith("/health")&&(n.pathname=n.pathname.slice(0,-7)||"/"),Ot(n.href)}catch{return Ot(t.replace(/\/health$/,""))}}async function hn(){const e=Ot(Kt.__VIBEOS_BACKEND_API_BASE__);if(e)return e;if(_t){const t=Et(_t).replace(/\/api\/v1\/dashboard$/,"");if(t!==Et(_t))return t}return wt||(wt=(async()=>{try{const t=await Se("/status"),n=Ot(t.backend_api_url);if(n)return n;const s=vs(t.backend_health_url);if(s)return s}catch{}return"https://api.vibetheog.com"})(),wt)}async function mn(e,t){const n=await hn(),s=await fetch(n+e,{headers:Jt(),...t});if(!s.ok)throw new Error(`API ${s.status}: ${s.statusText}`);return s.json()}async function we(e,t){try{return await e()}catch(n){if(ss())return await t();throw n}}function _n(){return we(()=>Se("/status"),()=>is())}function bn(){return we(()=>Se("/savings"),()=>ls())}function ps(){return we(()=>Se("/sessions"),()=>({sessions:[],total_sessions:0}))}function gs(){return we(()=>Se("/reports"),()=>us())}function vn(){return we(()=>Se("/capabilities"),()=>rs())}function pn(){return we(()=>Se("/dashboard/home"),()=>fs())}function gn(e){return we(()=>Se(`/sessions/${encodeURIComponent(e)}`),()=>Mt(e))}function bt(e,t,n,s){const i={action:e};return t&&(i.slot=t),n&&(i.level=n),s&&(i.token=s),we(()=>Se("/trinity",{method:"POST",body:JSON.stringify(i)}),()=>hs(e,t))}function $s(e,t){return we(()=>Se(`/sessions/${encodeURIComponent(e)}/action`,{method:"POST",body:JSON.stringify(t)}),()=>{const n=_s(e,String(t.action||""));return{ok:!0,session:n.session,metrics:n.metrics,orchestration:n.orchestration??null}})}function Ss(e="global",t){const n=new URLSearchParams;return n.set("scope",e),t&&n.set("project_id",t),Se(`/reality-check?${n.toString()}`)}function ws(e){return Se("/reality-check",{method:"POST",body:JSON.stringify(e)})}function ks(e){return we(()=>Se("/web-search",{method:"POST",body:JSON.stringify(e)}),()=>bs(e.query))}async function xs(e){const t=e||"https://api.vibetheog.com/health";try{return(await fetch(t,{signal:AbortSignal.timeout(3e3)})).ok}catch{return!1}}function $n(e){let t=!1;if(Vt){let i=null;const l=async()=>{try{const[a,o]=await Promise.all([Se("/status"),Se("/savings")]);t||e({status:a,savings:o})}catch{}};return l(),i=setInterval(l,3e3),()=>{t=!0,i&&clearInterval(i)}}let n=null;function s(){if(t)return;const i=new EventSource(_t+"/events");i.onmessage=l=>{try{const a=JSON.parse(l.data);t||e(a)}catch{}},i.onerror=()=>{i.close(),t||(n=setTimeout(s,3e3))}}return s(),()=>{t=!0,n&&clearTimeout(n)}}function ys(e,t){return mn("/api/v1/blackbox/analyze",{method:"POST",body:JSON.stringify({session_id:e,project_id:t.project_id||null,user_text:t.userText||"",features:t.features||{},action:t.action||"explore",entropy:t.entropy??1,uncertainty:t.uncertainty??50,embedding:t.embedding||null,optimization_mode:t.optimizationMode||"auto"})})}async function Ne(e,t){return mn(`/api/v1/orchestrator${e}`,t)}function Sn(){return we(()=>Ne("/projects"),()=>({projects:os()}))}function wn(e,t){return Ne("/projects",{method:"POST",body:JSON.stringify({name:e,fingerprint:t})})}function Cs(e,t){return Ne(`/projects/${e}`,{method:"PUT",body:JSON.stringify(t)})}function kn(e){return Ne(`/projects/${e}`,{method:"DELETE"})}function xn(e){return we(()=>Ne(`/sessions${e?`?project_id=${encodeURIComponent(e)}`:""}`),()=>({sessions:as(e)}))}function Ps(e,t,n){return Ne("/sessions",{method:"POST",body:JSON.stringify({project_id:e,title:t,flow_id:n??null})})}function js(e,t){return we(()=>Ne(`/sessions/${e}`,{method:"PUT",body:JSON.stringify(t)}),()=>({session:ms(e,t)}))}function As(e){return Ne(`/sessions/${e}`,{method:"DELETE"})}function yn(e){return we(()=>Ne(`/sessions/${e}/messages`),()=>({messages:ds(e)}))}function Cn(e){return we(()=>Ne(`/flows${e?`?project_id=${encodeURIComponent(e)}`:""}`),()=>({flows:cs(e)}))}function Ts(e,t,n="global",s){return Ne("/flows",{method:"POST",body:JSON.stringify({name:e,graph:t,scope:n,project_id:s})})}function Es(e,t){return Ne(`/flows/${e}`,{method:"PUT",body:JSON.stringify(t)})}function Os(e){return Ne(`/flows/${e}`,{method:"DELETE"})}function Pn(e,t,n){const s=new AbortController;return(async()=>{var d,m,u;const i=await hn(),l=await fetch(i+`/api/v1/orchestrator/sessions/${e}/run`,{method:"POST",headers:Jt(),body:JSON.stringify(t),signal:s.signal});if(!l.ok||!l.body){(d=n.onError)==null||d.call(n,new Error(`run failed: ${l.status}`));return}const a=l.body.getReader(),o=new TextDecoder;let c="";for(;;){const{done:$,value:E}=await a.read();if($)break;c+=o.decode(E,{stream:!0});let q;for(;(q=c.indexOf(`
2
-
3
- `))>=0;){const g=c.slice(0,q);c=c.slice(q+2);const y=(m=g.match(/event: (.*)/))==null?void 0:m[1],H=g.slice(g.indexOf("data: ")+6);if(!(!y||g.indexOf("data: ")<0))try{n.onEvent(y,JSON.parse(H))}catch{}}}(u=n.onDone)==null||u.call(n)})().catch(i=>{var l;(i==null?void 0:i.name)!=="AbortError"&&((l=n.onError)==null||l.call(n,i))}),()=>s.abort()}const Ds=Object.freeze(Object.defineProperty({__proto__:null,blackboxAnalyze:ys,checkBackendHealth:xs,createFlow:Ts,createProject:wn,createSession:Ps,deleteFlow:Os,deleteProject:kn,deleteSession:As,fetchCapabilities:vn,fetchDashboardHome:pn,fetchRealityCheck:Ss,fetchReports:gs,fetchSavings:bn,fetchSessionDetail:gn,fetchSessions:ps,fetchStatus:_n,listFlows:Cn,listMessages:yn,listProjects:Sn,listSessions:xn,openSSE:$n,postSessionAction:$s,postTrinity:bt,runSession:Pn,saveRealityCheck:ws,updateFlow:Es,updateProject:Cs,updateSession:js,webSearch:ks},Symbol.toStringTag,{value:"Module"})),Is="home";function Ns(e){const t=String((e==null?void 0:e.name)||"").trim(),n=String((e==null?void 0:e.fingerprint)||"").trim(),s=`${t} ${n}`.toLowerCase();if(/\b(cli|terminal|shell|console)\b/.test(s))return{glyph:"⌘",label:"CLI"};if(/\b(api|backend|server)\b/.test(s))return{glyph:"◫",label:"API"};if(/\b(web|site|frontend|dashboard|ui|home)\b/.test(s))return{glyph:"◩",label:"UI"};if(/\b(app|desktop|mobile)\b/.test(s))return{glyph:"▣",label:"App"};const i=t.split(/[^A-Za-z0-9]+/).filter(Boolean).slice(0,2).map(c=>{var d;return((d=c[0])==null?void 0:d.toUpperCase())||""}).join("");if(i)return{glyph:i,label:t||i};const l=n||t||"project",a=["◆","◈","◉","▣","⬢","◬"];let o=0;for(const c of l)o=o*31+c.charCodeAt(0)>>>0;return{glyph:a[o%a.length],label:t||"Project"}}function Ls(e){var l,a;const t=Array.isArray(e.flows)?e.flows:[],n=(l=e.session)!=null&&l.flow_id&&t.find(o=>{var c;return o.id===((c=e.session)==null?void 0:c.flow_id)})||null;if(n)return`${n.name}${n.scope==="project"?" (session override)":" (global)"}`.trim();const s=(a=e.project)!=null&&a.default_flow_id&&t.find(o=>{var c;return o.id===((c=e.project)==null?void 0:c.default_flow_id)})||null;if(s)return`${s.name}${s.scope==="project"?" (project default)":" (global default)"}`.trim();const i=t.find(o=>o.scope==="global");return i?`${i.name} (global default)`:"No default flow"}var Rs=x("<div class=create-form><input class=create-input><button class=create-ok>ok</button><button class=create-cancel>x");function qs(e){const[t,n]=M("");let s;return Un(()=>s==null?void 0:s.focus()),(()=>{var i=Rs(),l=i.firstChild,a=l.nextSibling,o=a.nextSibling;l.$$keydown=d=>{d.key==="Enter"&&t().trim()&&e.onSubmit(t().trim()),d.key==="Escape"&&e.onCancel()},l.$$input=d=>n(d.currentTarget.value);var c=s;return typeof c=="function"?Qn(c,l):s=l,a.$$click=()=>{t().trim()&&e.onSubmit(t().trim())},mt(o,"click",e.onCancel),se(d=>{var m=e.placeholder,u=!t().trim();return m!==d.e&&gt(l,"placeholder",d.e=m),u!==d.t&&(a.disabled=d.t=u),d},{e:void 0,t:void 0}),se(()=>l.value=t()),i})()}ot(["input","keydown","click"]);var Bs=x('<aside class=sidebar><div class=sidebar-brand><div class="sidebar-brand-mark sidebar-home-icon"title="Dashboard home">⌂</div><div><div class=sidebar-brand-title>opencode</div><div class=sidebar-brand-subtitle>dashboard</div></div></div><div class=sidebar-column-label><span class=sidebar-column-num>1</span><div><div class=sidebar-column-title>Home / Projects</div><div class=sidebar-column-copy>home first, projects second</div></div></div><button><span class=sidebar-home-button-icon aria-hidden=true>⌂</span><span class=sidebar-home-button-copy><span class=sidebar-home-button-title>Home</span><span class=sidebar-home-button-subtitle>dashboard overview</span></span></button><div class=sidebar-home-card><div class=sidebar-section-label>main info</div><div class=sidebar-home-title></div><p class=sidebar-home-copy></p><div class=sidebar-home-metrics><span>mode </span><span>slot </span><span>model </span><span>backend </span></div><div class=sidebar-home-metrics><span>session </span><span>savings </span><span>todos </span></div></div><div class=sidebar-section-head><span class=sidebar-section-label>projects</span><button class=sidebar-add title="New project">+'),Us=x("<div class=sidebar-empty>no projects — click + to create one"),Ms=x('<div class=sidebar-project><div class=sidebar-project-row><span class=sidebar-project-icon></span><button></button><button class=sidebar-delete title="Delete project">x');function tn(e,t){return e.kind!==t.kind?!1:e.kind==="home"||e.kind==="status"?!0:e.kind==="project"&&t.kind==="project"?e.projectId===t.projectId:e.kind==="session"&&t.kind==="session"?e.sessionId===t.sessionId:!1}function Vs(e){const t=`${e.name}|${e.fingerprint||e.id}`;let n=0;for(const i of t)n=n*33+i.charCodeAt(0)>>>0;return`hsl(${n%360} 72% 46%)`}function zs(e){return`$${Number(e||0).toFixed(2)}`}function Fs(e){const t=()=>{var s;return((s=e.home)==null?void 0:s.status)||e.status},n=()=>{var s;return((s=e.home)==null?void 0:s.current_session)||null};return(()=>{var s=Bs(),i=s.firstChild,l=i.nextSibling,a=l.nextSibling,o=a.nextSibling,c=o.firstChild,d=c.nextSibling,m=d.nextSibling,u=m.nextSibling,$=u.firstChild;$.firstChild;var E=$.nextSibling;E.firstChild;var q=E.nextSibling;q.firstChild;var g=q.nextSibling;g.firstChild;var y=u.nextSibling,H=y.firstChild;H.firstChild;var O=H.nextSibling;O.firstChild;var w=O.nextSibling;w.firstChild;var N=o.nextSibling,ie=N.firstChild,oe=ie.nextSibling;return a.$$click=()=>e.onSelect({kind:"home"}),r(d,()=>{var k,R;return((R=(k=e.home)==null?void 0:k.home)==null?void 0:R.title)||e.currentProjectName||"Home"}),r(m,()=>{var k,R,D,b;return((R=(k=e.home)==null?void 0:k.home)==null?void 0:R.recommendation)||((b=(D=e.home)==null?void 0:D.home)==null?void 0:b.subtitle)||"Operational dashboard summary."}),r($,()=>{var k,R;return String(((k=t())==null?void 0:k.optimization_mode)||((R=t())==null?void 0:R.native_agent_mode)||"auto")},null),r(E,()=>{var k;return((k=t())==null?void 0:k.active_slot)||"brain"},null),r(q,()=>{var k;return(((k=t())==null?void 0:k.current_model)||"unknown").split("/").pop()},null),r(g,()=>{var k,R;return((k=t())==null?void 0:k.backend_connected)??((R=t())==null?void 0:R.backendConnected)?"live":"degraded"},null),r(H,()=>{var k;return((k=n())==null?void 0:k.title)||"none"},null),r(O,()=>{var k;return zs((k=e.home)==null?void 0:k.totals.total_savings_usd)},null),r(w,()=>{var k,R,D;return((k=e.home)==null?void 0:k.totals.pending_todos)??((D=(R=e.status)==null?void 0:R.todos)==null?void 0:D.pending)??0},null),mt(oe,"click",e.onNewProject),r(s,j($e,{get when(){return e.creatingProject},get children(){return j(qs,{placeholder:"project name",get onSubmit(){return e.onCreateProjectName},get onCancel(){return e.onCancelCreate}})}}),null),r(s,j(me,{get each(){return e.projects},get fallback(){return Us()},children:k=>{const R=Ns(k),D=Vs(k);return(()=>{var b=Ms(),A=b.firstChild,C=A.firstChild,V=C.nextSibling,J=V.nextSibling;return r(C,()=>R.glyph),V.$$click=()=>e.onSelect({kind:"project",projectId:k.id}),r(V,()=>k.name),J.$$click=()=>e.onDeleteProject(k.id),se(re=>{var Le=R.label,Re=`--project-icon-bg:${D};--project-icon-fg:#f5f5f5;`,te=`sidebar-item ${tn(e.selection,{kind:"project",projectId:k.id})?"active":""}`;return Le!==re.e&&gt(C,"title",re.e=Le),re.t=Xn(C,Re,re.t),te!==re.a&&de(V,re.a=te),re},{e:void 0,t:void 0,a:void 0}),b})()}}),null),se(()=>de(a,`sidebar-item pinned sidebar-home-button ${tn(e.selection,{kind:"home"})?"active":""}`)),s})()}ot(["click"]);const Hs=["vibemax","vibeqmax","vibeultrax","vibelitex","raw"];function Ks(e){return Hs.includes(String(e||"").toLowerCase())}const ht={vibeultrax:{id:"vibeultrax",index:1,name:"VibeUltraX",icon:"🏆",pipeline:["cheap","medium","brain"],thinking:"full",tdd:"quality",enforcement:"strict",flow:"strict",qualityVsBrain:107,costVsBrain:58,default:!0,desc:"Default mode. 3-model debate: cheap proposes, medium reviews, brain refines."},vibeqmax:{id:"vibeqmax",index:2,name:"VibeQMaX",icon:"⭐",pipeline:["brain"],thinking:"full",tdd:"quality",enforcement:"strict",flow:"strict",qualityVsBrain:100,costVsBrain:50,desc:"Brain tier only. Same quality as Raw Brain at half cost."},vibemax:{id:"vibemax",index:3,name:"VibeMaX",icon:"⚡",pipeline:["medium"],thinking:"off",tdd:"lazy",enforcement:"relaxed",flow:"audit",qualityVsBrain:75,costVsBrain:18,desc:"Medium tier auto-escalate. Speed-first."},vibelitex:{id:"vibelitex",index:4,name:"VibeLiteX",icon:"💡",pipeline:["medium"],thinking:"brief",tdd:"lazy",enforcement:"normal",flow:"audit",qualityVsBrain:65,costVsBrain:20,desc:"Local fallback. Medium tier with enforcement. No API required."},raw:{id:"raw",index:10,name:"Raw Brain",icon:"🧠",pipeline:["brain"],thinking:"full",tdd:"—",enforcement:"—",flow:"—",qualityVsBrain:100,costVsBrain:0,desc:"Pure v4 Pro baseline. No vibeOS overhead."}};function Nt(e){const t=String(e||"").toLowerCase().trim();if(Ks(t))return t;switch(t){case"litex":return"vibelitex";case"quality":return"vibeqmax";case"audit":case"forensic":return"vibeqmax";case"longrun":return"vibeqmax";case"speed":case"balanced":return"vibemax";case"budget":return"vibelitex";default:return"vibeultrax"}}const Js=[ht.vibeultrax,ht.vibeqmax,ht.vibemax,ht.vibelitex];function pt(e){const t=Nt(e);return ht[t]}function jn(){return Js}var Zs=x("<div class=home-view><div class=card><h3>Home</h3><p class=muted>loading executive summary..."),Ws=x("<section class=home-controls-strip><div class=qc-group><span class=field-label>slot</span></div><div class=qc-group><span class=field-label>vibe mode</span><span class=qc-model></span></div><div class=qc-group><span class=field-label>thinking</span><span class=qc-model></span></div><div class=qc-group><span class=field-label>enforce</span><span>"),Gs=x("<div class=home-tag-row>"),Xs=x("<div class=home-todo-list>"),Qs=x('<div class=home-view><section class=home-hero><div class=home-hero-copy><div class=home-kicker>opencode mirror</div><h2></h2><p></p></div><div class=home-hero-actions><button class=flow-save>Open session</button><button class=shell-link>Project</button><button class=shell-link>Status</button></div></section><section class=home-ops-strip></section><section class=home-mode-grid></section><section class=home-overview-grid><div class="card home-summary-card"><h3>Main KPIs</h3><div class=home-summary-table></div></div><div class="card home-recommendation-card"><h3>Command Center</h3><p class=home-recommendation></p><div class=home-inline-grid><div><span class=field-label>active session</span><div class=home-inline-value></div></div><div><span class=field-label>flow</span><div class=home-inline-value></div></div></div></div></section><section class=home-detail-grid><div class="card home-current-session"><h3>Current Session</h3><div class=home-session-head><div class=home-session-title></div><span></span></div><div class=home-metric-strip><span>session </span><span>mode </span><span>cost </span><span>saved </span></div><p class=muted></p></div><div class="card home-todos-card"><h3>Open TODOs</h3><div class=home-totals><span> pending</span><span> sessions</span></div></div><div class="card home-savings-card"><h3>Savings</h3><div class=home-money></div><div class=home-money-sub>current session </div><div class=home-metric-strip><span>delegation </span><span>cache </span></div></div><div class="card home-sessions-card"><h3>Recent Sessions</h3><div class=home-session-list>'),Ys=x("<div class=home-op-tile><span class=field-label></span><span class=home-op-value>"),ei=x("<button>"),ti=x("<div><div class=home-mode-head><span class=home-mode-name></span><span class=home-mode-pipeline></span></div><p class=home-mode-copy></p><div class=home-mode-meta><span>thinking </span><span>flow </span><span>tdd "),ni=x("<div class=home-summary-row><span class=home-summary-label></span><span class=home-summary-value>"),si=x("<span class=home-tag>"),ii=x("<p class=muted>No pending TODOs."),li=x("<div class=home-todo-item><span class=home-todo-status></span><span>"),ri=x("<div><div><div class=home-session-item-title></div><div class=muted></div></div><div class=home-session-item-meta><span></span><span>");function Ye(e){return`$${Number(e||0).toFixed(2)}`}function oi(e){return e!=null&&e.id?`${e.title} · ${e.id.slice(0,8)}`:"No active session"}function ai(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return pt(t).name||pt(Nt(t)).name||t}catch{return t}}function ci(e){if(!e.data)return Zs();const t=()=>Ls({session:e.session,project:e.project,flows:e.flows}),n=()=>{var c;return(((c=e.data)==null?void 0:c.todos)||[]).filter(d=>(d==null?void 0:d.status)!=="done").slice(0,4)},s=()=>{var c;return((c=e.data)==null?void 0:c.status)||e.status},i=()=>{var c,d,m,u,$;return String(((d=(c=e.data)==null?void 0:c.current_session)==null?void 0:d.optimization_mode)||((m=s())==null?void 0:m.optimization_mode)||(($=(u=e.data)==null?void 0:u.home.cards.find(E=>E.label.toLowerCase()==="mode"))==null?void 0:$.value)||"auto").trim().toLowerCase()},l=()=>ai(i()),a=()=>jn().map(c=>({...c,active:i()===c.id})),o=()=>{var c,d,m,u,$,E;return[{label:"mode",value:l()},{label:"slot",value:((c=s())==null?void 0:c.active_slot)||"brain"},{label:"model",value:((m=(d=s())==null?void 0:d.current_model)==null?void 0:m.split("/").pop())||"unknown"},{label:"lock",value:(u=s())!=null&&u.model_locked?"locked":"live"},{label:"backend",value:($=s())!=null&&$.backend_connected?"online":"degraded"},{label:"todos",value:String(((E=e.data)==null?void 0:E.totals.pending_todos)||0)}]};return(()=>{var c=Qs(),d=c.firstChild,m=d.firstChild,u=m.firstChild,$=u.nextSibling,E=$.nextSibling,q=m.nextSibling,g=q.firstChild,y=g.nextSibling,H=y.nextSibling,O=d.nextSibling,w=O.nextSibling,N=w.nextSibling,ie=N.firstChild,oe=ie.firstChild,k=oe.nextSibling,R=ie.nextSibling,D=R.firstChild,b=D.nextSibling,A=b.nextSibling,C=A.firstChild,V=C.firstChild,J=V.nextSibling,re=C.nextSibling,Le=re.firstChild,Re=Le.nextSibling,te=N.nextSibling,Ue=te.firstChild,ve=Ue.firstChild,Q=ve.nextSibling,pe=Q.firstChild,Me=pe.nextSibling,ke=Q.nextSibling,Pe=ke.firstChild;Pe.firstChild;var xe=Pe.nextSibling;xe.firstChild;var je=xe.nextSibling;je.firstChild;var ge=je.nextSibling;ge.firstChild;var f=ke.nextSibling,P=Ue.nextSibling,B=P.firstChild,L=B.nextSibling,Y=L.firstChild,ne=Y.firstChild,K=Y.nextSibling,ue=K.firstChild,fe=P.nextSibling,le=fe.firstChild,Ae=le.nextSibling,ye=Ae.nextSibling;ye.firstChild;var Z=ye.nextSibling,p=Z.firstChild;p.firstChild;var ae=p.nextSibling;ae.firstChild;var he=fe.nextSibling,Te=he.firstChild,ce=Te.nextSibling;return r($,()=>e.data.home.title),r(E,()=>e.data.home.recommendation||e.data.home.subtitle),mt(g,"click",e.onOpenSession),mt(y,"click",e.onOpenProject),mt(H,"click",e.onOpenStatus),r(O,j(me,{get each(){return o()},children:S=>(()=>{var T=Ys(),U=T.firstChild,W=U.nextSibling;return r(U,()=>S.label),r(W,()=>S.value),T})()})),r(c,j($e,{get when(){return s()},get children(){var S=Ws(),T=S.firstChild;T.firstChild;var U=T.nextSibling,W=U.firstChild,Ee=W.nextSibling,Oe=U.nextSibling,qe=Oe.firstChild,Ve=qe.nextSibling,v=Oe.nextSibling,I=v.firstChild,De=I.nextSibling;return r(T,j(me,{each:["brain","medium","cheap"],children:G=>(()=>{var Ce=ei();return Ce.$$click=()=>bt("set",G).then(e.onTrinityAction).catch(()=>{}),r(Ce,G),se(()=>{var ze;return de(Ce,`qc-slot ${((ze=s())==null?void 0:ze.active_slot)===G?"active":""}`)}),Ce})()}),null),r(Ee,l),r(Ve,()=>{var G;return((G=s())==null?void 0:G.thinking)??"brief"}),r(De,()=>{var G;return(G=s())!=null&&G.enforce?"on":"off"}),se(()=>{var G;return de(De,`qc-pill ${(G=s())!=null&&G.enforce?"on":"off"}`)}),S}}),w),r(w,j(me,{get each(){return a()},children:S=>(()=>{var T=ti(),U=T.firstChild,W=U.firstChild,Ee=W.nextSibling,Oe=U.nextSibling,qe=Oe.nextSibling,Ve=qe.firstChild;Ve.firstChild;var v=Ve.nextSibling;v.firstChild;var I=v.nextSibling;return I.firstChild,r(W,()=>S.name),r(Ee,()=>S.pipeline.join(" → ")),r(Oe,()=>S.desc),r(Ve,()=>S.thinking,null),r(v,()=>S.flow,null),r(I,()=>S.tdd,null),se(()=>de(T,`card home-mode-card ${S.active?"active":""}`)),T})()})),r(k,j(me,{get each(){return e.data.home.cards},children:S=>(()=>{var T=ni(),U=T.firstChild,W=U.nextSibling;return r(U,()=>S.label),r(W,()=>S.value),T})()})),r(b,()=>e.data.home.recommendation||"Continue with the active session."),r(J,()=>oi(e.session)),r(Re,t),r(pe,()=>e.data.current_session.project_name),r(Me,()=>e.data.current_session.status),r(Pe,()=>e.data.current_session.session_id||"none",null),r(xe,l,null),r(je,()=>Ye(e.data.current_session.cost_usd),null),r(ge,()=>Ye((e.data.current_session.delegation_savings_usd||0)+(e.data.current_session.cache_savings_usd||0)),null),r(f,()=>e.data.current_session.recommendation),r(Ue,j($e,{get when(){var S;return(S=e.data.current_session.tags)==null?void 0:S.length},get children(){var S=Gs();return r(S,j(me,{get each(){return e.data.current_session.tags},children:T=>(()=>{var U=si();return r(U,T),U})()})),S}}),null),r(P,j($e,{get when(){return n().length},get fallback(){return ii()},get children(){var S=Xs();return r(S,j(me,{get each(){return n()},children:T=>(()=>{var U=li(),W=U.firstChild,Ee=W.nextSibling;return r(W,()=>String(T.status||"pending").toUpperCase()),r(Ee,()=>T.title||T.text||T.content||"Untitled task"),U})()})),S}}),L),r(Y,()=>e.data.totals.pending_todos,ne),r(K,()=>e.data.totals.total_sessions,ue),r(Ae,()=>Ye(e.data.totals.total_savings_usd)),r(ye,()=>Ye(e.data.totals.current_session_savings_usd),null),r(p,()=>{var S,T;return Ye((T=(S=e.data.savings)==null?void 0:S.lifetime)==null?void 0:T.delegation_usd)},null),r(ae,()=>{var S,T;return Ye((T=(S=e.data.savings)==null?void 0:S.lifetime)==null?void 0:T.cache_usd)},null),r(ce,j(me,{get each(){return e.data.sessions.slice(0,5)},children:S=>(()=>{var T=ri(),U=T.firstChild,W=U.firstChild,Ee=W.nextSibling,Oe=U.nextSibling,qe=Oe.firstChild,Ve=qe.nextSibling;return r(W,()=>S.template_label||S.session_id.slice(0,14)),r(Ee,()=>S.recommendation),r(qe,()=>S.template_label),r(Ve,()=>Ye(S.delegation_savings_usd+S.cache_savings_usd)),se(()=>de(T,`home-session-item ${S.is_current?"current":""}`)),T})()})),se(()=>de(Me,`badge ${e.data.current_session.locked?"off":"on"}`)),c})()}ot(["click"]);const di="modulepreload",ui=function(e){return"/"+e},nn={},fi=function(t,n,s){let i=Promise.resolve();if(n&&n.length>0){let a=function(d){return Promise.all(d.map(m=>Promise.resolve(m).then(u=>({status:"fulfilled",value:u}),u=>({status:"rejected",reason:u}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),c=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));i=a(n.map(d=>{if(d=ui(d),d in nn)return;nn[d]=!0;const m=d.endsWith(".css"),u=m?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${u}`))return;const $=document.createElement("link");if($.rel=m?"stylesheet":di,m||($.as="script"),$.crossOrigin="",$.href=d,c&&$.setAttribute("nonce",c),document.head.appendChild($),m)return new Promise((E,q)=>{$.addEventListener("load",E),$.addEventListener("error",()=>q(new Error(`Unable to preload CSS for ${d}`)))})}))}function l(a){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=a,window.dispatchEvent(o),!o.defaultPrevented)throw a}return i.then(a=>{for(const o of a||[])o.status==="rejected"&&l(o.reason);return t().catch(l)})};var hi=x("<span class=run-step-skip>blocked — "),mi=x("<code class=run-step-result>"),_i=x("<div><span class=run-step-tool></span><span class=run-step-label>"),bi=x('<div class="session-hero session-hero-compact"><div><div class=home-kicker>session workspace</div><h2 class=session-title></h2><div class=session-hero-meta><span>…</span><span>project </span><span></span><span></span></div></div><div class=session-hero-kpis><div class=session-kpi><span class=field-label>session savings</span><strong></strong></div><div class=session-kpi><span class=field-label>session cost</span><strong></strong></div><div class=session-kpi><span class=field-label>status</span><strong>'),vi=x('<div class="msg assistant live"><div class=msg-role>resolved plan</div><div class="msg-content mono"></div><div class=session-plan-head><span class=muted></span><span>%</span></div><div class=run-trace>'),pi=x('<div class="msg-content mono">'),gi=x('<div class="msg assistant live"><div class=msg-role>running</div><div class=run-trace></div><span class=run-spinner>executing allowed structured steps only'),$i=x("<div class=error>"),Si=x('<div class=session-body><div class=session-thread></div><div class=composer><textarea class=text-area placeholder="Describe the next structured session task…"></textarea><div class=composer-actions><span class=muted>policy: strict deterministic · ⌘/Ctrl+Enter to run</span><button class=flow-save></button></div></div><div class=session-mini-grid><div class=session-state-block><span class=field-label>session state</span><div class=session-state-stack><div class=session-state-row><span>project</span><strong></strong></div><div class=session-state-row><span>status</span><strong></strong></div><div class=session-state-row><span>mode</span><strong></strong></div><div class=session-state-row><span>started</span><strong></strong></div><div class=session-state-row><span>lock</span><strong></strong></div></div></div><div class=session-state-block><span class=field-label>lifecycle</span><div class=session-timeline><span>created </span><span>paused </span><span>resumed </span><span>archived </span></div></div></div><div class=session-actions-row>'),wi=x('<div class="session-workspace card panel"><div class="panel-head session-head"><div><div class=column-badge-row><span class=column-badge>3</span><h3>Session Chat</h3></div><div class=panel-head-copy> · live thread + structured run</div></div><div class=session-hero-meta><span>mode </span><span>slot </span><span>model </span><span>backend '),ki=x("<p class=muted>Pick a session link from column 2 to open the chat and live run stream."),xi=x("<div class=run-step><span class=run-step-tool></span><span class=run-step-label> · "),yi=x("<p class=muted>No chat yet. Use the composer below to run a structured session prompt."),Ci=x("<details class=run-trace-details><summary>structured steps (<!>)</summary><div class=run-trace>"),Pi=x("<div><div class=msg-role></div><div class=msg-content>"),ji=x("<button class=shell-link>");function sn(e){const t=e.r;return(()=>{var n=_i(),s=n.firstChild,i=s.nextSibling;return r(s,()=>{var l;return(l=t.step)==null?void 0:l.tool}),r(i,()=>{var l;return(l=t.step)==null?void 0:l.label}),r(n,j($e,{get when(){return t.skipped},get children(){var l=hi();return l.firstChild,r(l,()=>t.reason,null),l}}),null),r(n,j($e,{get when(){return it(()=>!t.skipped)()&&t.result},get children(){var l=mi();return r(l,()=>JSON.stringify(t.result).slice(0,160)),l}}),null),se(()=>de(n,`run-step ${t.skipped?"skipped":"done"}`)),n})()}function ln(e){return`$${Number(e||0).toFixed(2)}`}function ft(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function Ai(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return pt(Nt(t)).name||t}catch{return t}}function Ti(e){const t=e==null?void 0:e.session,n=["start","pause","resume",t!=null&&t.locked?"unlock":"lock","archive","undo"];return[...new Set(n)]}function Ei(e){const[t,{mutate:n,refetch:s}]=Gt(()=>{var b;return((b=e.session)==null?void 0:b.id)||null},b=>b?gn(b):Promise.resolve({session:null})),[i,{refetch:l}]=Gt(()=>{var b;return((b=e.session)==null?void 0:b.id)||null},b=>b?yn(b):Promise.resolve({messages:[]})),[a,o]=M(""),[c,d]=M(!1),[m,u]=M(null),[$,E]=M(null),[q,g]=M([]),[y,H]=M(null);let O=null;Ft(()=>O==null?void 0:O());const w=_e(()=>{var b;return(b=t())==null?void 0:b.session}),N=_e(()=>{var b,A;return $()||((b=w())==null?void 0:b.orchestration_plan)||((A=e.status)==null?void 0:A.orchestration_plan)||null}),ie=_e(()=>{var b,A;return String(((b=w())==null?void 0:b.optimization_mode)||((A=e.status)==null?void 0:A.optimization_mode)||"auto").toLowerCase()}),oe=_e(()=>Ai(ie())),k=_e(()=>{var b,A;return((b=e.status)==null?void 0:b.backend_connected)??((A=e.status)==null?void 0:A.backendConnected)??!1}),R=b=>{var V;const A=e.session,C=String(b||"").trim();if(!(!A||!C||c())){if((V=w())!=null&&V.locked){H("Session is locked. Unlock it before running a deterministic flow.");return}O==null||O(),d(!0),H(null),E(null),g([]),O=Pn(A.id,{prompt:C,query:C,execution_policy:"strict-deterministic"},{onEvent:(J,re)=>{J==="plan"?E(re.plan):J==="step"?g(Le=>[...Le,re]):J==="done"?(d(!1),O=null,o(""),E(null),g([]),l(),s(),e.onRefresh()):J==="error"&&(H(re.message||"run failed"),d(!1),O=null)},onError:J=>{H(J.message),d(!1),O=null},onDone:()=>d(!1)})}};zt(()=>{const b=e.runRequest,A=e.session;!b||!A||b.sessionId!==A.id||(o(b.prompt),e.onRunRequestHandled(),R(b.prompt))});const D=async b=>{const A=e.session;if(A){u(b),H(null);try{const{postSessionAction:C}=await fi(async()=>{const{postSessionAction:J}=await Promise.resolve().then(()=>Ds);return{postSessionAction:J}},void 0),V=await C(A.id,{action:b});n(J=>J&&{...J,session:V.session,metrics:V.metrics,orchestration:V.orchestration??null}),s(),e.onRefresh()}catch(C){H(C.message)}finally{u(null)}}};return(()=>{var b=wi(),A=b.firstChild,C=A.firstChild,V=C.firstChild,J=V.nextSibling,re=J.firstChild,Le=C.nextSibling,Re=Le.firstChild;Re.firstChild;var te=Re.nextSibling;te.firstChild;var Ue=te.nextSibling;Ue.firstChild;var ve=Ue.nextSibling;return ve.firstChild,r(J,(()=>{var Q=it(()=>!!e.session);return()=>Q()?e.session.title:"Select a session from column 2"})(),re),r(Re,()=>oe()||"auto",null),r(te,()=>{var Q;return((Q=e.status)==null?void 0:Q.active_slot)||"brain"},null),r(Ue,()=>{var Q;return(((Q=e.status)==null?void 0:Q.current_model)||"unknown").split("/").pop()},null),r(ve,()=>k()?"live":"degraded",null),r(b,j($e,{get when(){return e.session},get fallback(){return ki()},get children(){return[(()=>{var Q=bi(),pe=Q.firstChild,Me=pe.firstChild,ke=Me.nextSibling,Pe=ke.nextSibling,xe=Pe.firstChild,je=xe.firstChild,ge=xe.nextSibling;ge.firstChild;var f=ge.nextSibling,P=f.nextSibling,B=pe.nextSibling,L=B.firstChild,Y=L.firstChild,ne=Y.nextSibling,K=L.nextSibling,ue=K.firstChild,fe=ue.nextSibling,le=K.nextSibling,Ae=le.firstChild,ye=Ae.nextSibling;return r(ke,()=>e.session.title),r(xe,()=>e.session.id.slice(0,18),je),r(ge,()=>{var Z,p;return((Z=e.project)==null?void 0:Z.name)||((p=w())==null?void 0:p.project_name)||"selected"},null),r(f,()=>k()?"backend online":"backend degraded"),r(P,(()=>{var Z=it(()=>{var p;return!!((p=w())!=null&&p.locked)});return()=>{var p;return Z()?"locked":((p=w())==null?void 0:p.status)||"active"}})()),r(ne,()=>{var Z,p;return ln((((Z=w())==null?void 0:Z.delegation_savings_usd)||0)+(((p=w())==null?void 0:p.cache_savings_usd)||0))}),r(fe,()=>{var Z;return ln((Z=w())==null?void 0:Z.cost_usd)}),r(ye,(()=>{var Z=it(()=>{var p;return!!((p=w())!=null&&p.locked)});return()=>{var p;return Z()?"locked":((p=w())==null?void 0:p.status)||"active"}})()),Q})(),(()=>{var Q=Si(),pe=Q.firstChild,Me=pe.nextSibling,ke=Me.firstChild,Pe=ke.nextSibling,xe=Pe.firstChild,je=xe.nextSibling,ge=Me.nextSibling,f=ge.firstChild,P=f.firstChild,B=P.nextSibling,L=B.firstChild,Y=L.firstChild,ne=Y.nextSibling,K=L.nextSibling,ue=K.firstChild,fe=ue.nextSibling,le=K.nextSibling,Ae=le.firstChild,ye=Ae.nextSibling,Z=le.nextSibling,p=Z.firstChild,ae=p.nextSibling,he=Z.nextSibling,Te=he.firstChild,ce=Te.nextSibling,S=f.nextSibling,T=S.firstChild,U=T.nextSibling,W=U.firstChild;W.firstChild;var Ee=W.nextSibling;Ee.firstChild;var Oe=Ee.nextSibling;Oe.firstChild;var qe=Oe.nextSibling;qe.firstChild;var Ve=ge.nextSibling;return r(pe,j($e,{get when(){return N()},get children(){var v=vi(),I=v.firstChild,De=I.nextSibling,G=De.nextSibling,Ce=G.firstChild,ze=Ce.nextSibling,at=ze.firstChild,nt=G.nextSibling;return r(De,()=>N().recommended_label||"Structured plan"),r(Ce,()=>N().recommended_next_action||N().reason),r(ze,()=>Math.round(Number(N().confidence||0)*100),at),r(nt,j(me,{get each(){return N().steps||[]},children:(Ge,ct)=>(()=>{var $t=xi(),dt=$t.firstChild,ut=dt.nextSibling,Lt=ut.firstChild;return r(dt,()=>ct()+1),r(ut,()=>Ge.tool,Lt),r(ut,()=>Ge.label,null),$t})()})),v}}),null),r(pe,j(me,{get each(){var v;return((v=i())==null?void 0:v.messages)||[]},get fallback(){return yi()},children:v=>(()=>{var I=Pi(),De=I.firstChild,G=De.nextSibling;return r(De,()=>v.role),r(G,()=>v.content||"(no summary)"),r(I,j($e,{get when(){return it(()=>!!(v.role==="assistant"&&v.results))()&&v.results.length},get children(){var Ce=Ci(),ze=Ce.firstChild,at=ze.firstChild,nt=at.nextSibling;nt.nextSibling;var Ge=ze.nextSibling;return r(ze,()=>v.results.length,nt),r(Ge,j(me,{get each(){return v.results},children:ct=>j(sn,{r:ct})})),Ce}}),null),se(()=>de(I,`msg ${v.role}`)),I})()}),null),r(pe,j($e,{get when(){return c()},get children(){var v=gi(),I=v.firstChild,De=I.nextSibling;return r(v,j($e,{get when(){return $()},get children(){var G=pi();return r(G,()=>$().steps.map(Ce=>Ce.tool).join(" → ")),G}}),De),r(De,j(me,{get each(){return q()},children:G=>j(sn,{r:G})})),v}}),null),ke.$$keydown=v=>{v.key==="Enter"&&(v.metaKey||v.ctrlKey)&&R(a())},ke.$$input=v=>o(v.currentTarget.value),je.$$click=()=>R(a()),r(je,()=>c()?"running…":"run structured flow"),r(ne,()=>{var v,I;return((v=w())==null?void 0:v.project_name)||((I=e.project)==null?void 0:I.name)||"Current project"}),r(fe,()=>{var v;return((v=w())==null?void 0:v.status)||"active"}),r(ye,()=>oe()||"auto"),r(ae,()=>{var v;return ft((v=w())==null?void 0:v.started_at)}),r(ce,()=>{var v;return(v=w())!=null&&v.locked?"locked":"mutable"}),r(W,()=>{var v,I;return ft((I=(v=w())==null?void 0:v.lifecycle)==null?void 0:I.created_at)},null),r(Ee,()=>{var v,I;return ft((I=(v=w())==null?void 0:v.lifecycle)==null?void 0:I.paused_at)},null),r(Oe,()=>{var v,I;return ft((I=(v=w())==null?void 0:v.lifecycle)==null?void 0:I.resumed_at)},null),r(qe,()=>{var v,I;return ft((I=(v=w())==null?void 0:v.lifecycle)==null?void 0:I.archived_at)},null),r(Ve,j(me,{get each(){return Ti(t())},children:v=>(()=>{var I=ji();return I.$$click=()=>void D(v),r(I,()=>m()===v?"…":v),se(()=>I.disabled=m()===v),I})()})),r(Q,j($e,{get when(){return y()},get children(){var v=$i();return r(v,y),v}}),null),se(()=>{var v;return je.disabled=c()||!a().trim()||((v=w())==null?void 0:v.locked)}),se(()=>ke.value=a()),Q})()]}}),null),b})()}ot(["input","keydown","click"]);var Oi=x("<div class=project-session-list>"),Di=x('<div class="card panel project-sessions-panel"><div class=panel-head><div><div class=column-badge-row><span class=column-badge>2</span><h3>Project Sessions</h3></div><div class=panel-head-copy> · links only'),Ii=x("<p class=muted>Pick a project from column 1 to see its sessions."),Ni=x("<p class=muted>No sessions in this project yet."),Li=x("<button><span class=project-session-link-title></span><span class=project-session-link-meta>");function Ri(e,t){return t===e.id?"current":""}function qi(e){return(()=>{var t=Di(),n=t.firstChild,s=n.firstChild,i=s.firstChild,l=i.nextSibling,a=l.firstChild;return r(l,()=>{var o;return((o=e.project)==null?void 0:o.name)||"Select a project"},a),r(t,j($e,{get when(){return e.project},get fallback(){return Ii()},get children(){var o=Oi();return r(o,j(me,{get each(){return e.sessions},get fallback(){return Ni()},children:c=>(()=>{var d=Li(),m=d.firstChild,u=m.nextSibling;return d.$$click=()=>e.onSelectSession(c),r(m,()=>c.title),r(u,(()=>{var $=it(()=>e.currentSessionId===c.id);return()=>$()?"current":c.id.slice(0,8)})()),se(()=>de(d,`project-session-link ${e.selectedSessionId===c.id?"active":""} ${Ri(c,e.currentSessionId)}`)),d})()})),o}}),null),t})()}ot(["click"]);var Bi=x("<div class=result-box><code></code><button class=dismiss-btn>x"),Ui=x('<div class="card panel control-rail"><div class=panel-head><div><div class=column-badge-row><span class=column-badge>4</span><h3>Control Rail</h3></div><div class=panel-head-copy>mode first, then token, flow, plan, TDD</div></div><span></span></div><div class=control-group><h4>Vibe Mode</h4><div class=control-mode-summary><div class=control-status><span class=field-label>active mode</span><strong></strong></div><div class=control-status><span class=field-label>thinking</span><strong></strong></div></div><div class=mode-control-grid></div></div><div class=control-status-grid><div class=control-status><span class=field-label>api token</span><strong></strong></div><div class=control-status><span class=field-label>connect</span><strong></strong></div><div class=control-status><span class=field-label>slot</span><strong></strong></div><div class=control-status><span class=field-label>model</span><strong></strong></div></div><div class=control-group><h4>API Token</h4><input class=text-input placeholder="paste api token"><div class=session-action-grid><button class=shell-link>apply token</button><button class=shell-link>invalidate</button></div><p class=muted>Set or clear the runtime token. Connection state below reflects the live backend, not decoration.</p></div><div class=control-group><h4>Flow</h4><div class=control-flow-header><span class=muted></span><span></span></div><div class=control-flow-list></div></div><div class=control-group><h4>Create Plan / TDD</h4><div class=session-action-grid><button class=shell-link>create plan</button><button class=shell-link>tdd</button></div><p class=muted>Runs the active session with a structured prompt. No loose command launching.</p><p class=muted>web search <!> · tdd </p></div><div class=control-group><h4>KPI</h4><div class=control-kpi-strip><div><span class=field-label>slot</span><strong></strong></div><div><span class=field-label>model</span><strong></strong></div><div><span class=field-label>savings/hr</span><strong></strong></div><div><span class=field-label>todos</span><strong></strong></div></div><div class=control-kpi-strip><div><span class=field-label>session</span><strong></strong></div><div><span class=field-label>backend</span><strong></strong></div><div><span class=field-label>lock</span><strong></strong></div><div><span class=field-label>flow</span><strong>'),Mi=x("<button><strong></strong><span>"),Vi=x("<p class=muted>No resolved plan yet. Use the chat or create a plan from here."),zi=x("<div class=control-flow-step><span></span><div><strong></strong><div class=muted> · ");const Fi=jn();function Hi(e){return`$${Number(e||0).toFixed(2)}`}function Ki(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return pt(t).name||pt(Nt(t)).name||t}catch{return t}}function Ji(e){const[t,n]=M(null),[s,i]=M(null),[l,a]=M(""),o=_e(()=>{var g,y;return String(((g=e.status)==null?void 0:g.optimization_mode)||((y=e.status)==null?void 0:y.native_agent_mode)||"auto").toLowerCase()}),c=_e(()=>Ki(o())),d=_e(()=>{var g,y;return((y=(g=e.status)==null?void 0:g.orchestration_plan)==null?void 0:y.steps)||[]}),m=_e(()=>{var g,y;return((g=e.status)==null?void 0:g.backend_connected)??((y=e.status)==null?void 0:y.backendConnected)??!1}),u=_e(()=>{var g;return((g=e.status)==null?void 0:g.api_fallback)===!0?"fallback":m()?"live":"unknown"}),$=async g=>{if(!t()){n(`mode:${g}`),i(null);try{const y=await bt("mode",g);i(y.ok?String(y.result||`mode:${g}`):String(y.error||"failed")),e.onRefresh()}catch(y){i(y.message)}finally{n(null)}}},E=async()=>{const g=l().trim();if(!(!g||t())){n("token"),i(null);try{const y=await bt("api-token","",void 0,g);i(y.ok?"API token updated":String(y.error||"failed")),a(""),e.onRefresh()}catch(y){i(y.message)}finally{n(null)}}},q=async()=>{if(!t()){n("token"),i(null);try{const g=await bt("api-token","",void 0,"invalidate");i(g.ok?"API token invalidated":String(g.error||"failed")),a(""),e.onRefresh()}catch(g){i(g.message)}finally{n(null)}}};return(()=>{var g=Ui(),y=g.firstChild,H=y.firstChild,O=H.nextSibling,w=y.nextSibling,N=w.firstChild,ie=N.nextSibling,oe=ie.firstChild,k=oe.firstChild,R=k.nextSibling,D=oe.nextSibling,b=D.firstChild,A=b.nextSibling,C=ie.nextSibling,V=w.nextSibling,J=V.firstChild,re=J.firstChild,Le=re.nextSibling,Re=J.nextSibling,te=Re.firstChild,Ue=te.nextSibling,ve=Re.nextSibling,Q=ve.firstChild,pe=Q.nextSibling,Me=ve.nextSibling,ke=Me.firstChild,Pe=ke.nextSibling,xe=V.nextSibling,je=xe.firstChild,ge=je.nextSibling,f=ge.nextSibling,P=f.firstChild,B=P.nextSibling,L=xe.nextSibling,Y=L.firstChild,ne=Y.nextSibling,K=ne.firstChild,ue=K.nextSibling,fe=ne.nextSibling,le=L.nextSibling,Ae=le.firstChild,ye=Ae.nextSibling,Z=ye.firstChild,p=Z.nextSibling,ae=ye.nextSibling,he=ae.nextSibling,Te=he.firstChild,ce=Te.nextSibling;ce.nextSibling;var S=le.nextSibling,T=S.firstChild,U=T.nextSibling,W=U.firstChild,Ee=W.firstChild,Oe=Ee.nextSibling,qe=W.nextSibling,Ve=qe.firstChild,v=Ve.nextSibling,I=qe.nextSibling,De=I.firstChild,G=De.nextSibling,Ce=I.nextSibling,ze=Ce.firstChild,at=ze.nextSibling,nt=U.nextSibling,Ge=nt.firstChild,ct=Ge.firstChild,$t=ct.nextSibling,dt=Ge.nextSibling,ut=dt.firstChild,Lt=ut.nextSibling,Zt=dt.nextSibling,An=Zt.firstChild,Tn=An.nextSibling,En=Zt.nextSibling,On=En.firstChild,Dn=On.nextSibling;return r(O,()=>m()?"LIVE":"DEGRADED"),r(R,c),r(A,()=>{var _;return((_=e.status)==null?void 0:_.thinking)||"brief"}),r(C,j(me,{each:Fi,children:_=>(()=>{var ee=Mi(),Ie=ee.firstChild,Xe=Ie.nextSibling;return ee.$$click=()=>void $(_.id),r(Ie,()=>_.name),r(Xe,()=>_.pipeline.join(" → ")),se(Be=>{var Wt;var Ze=`mode-card-btn ${((Wt=e.status)==null?void 0:Wt.optimization_mode)===_.id?"active":""}`,He=t()===`mode:${_.id}`||_.id==="raw",Qe=_.desc;return Ze!==Be.e&&de(ee,Be.e=Ze),He!==Be.t&&(ee.disabled=Be.t=He),Qe!==Be.a&&gt(ee,"title",Be.a=Qe),Be},{e:void 0,t:void 0,a:void 0}),ee})()})),r(Le,u),r(Ue,()=>m()?"live":"degraded"),r(pe,()=>{var _;return((_=e.status)==null?void 0:_.active_slot)||"brain"}),r(Pe,()=>{var _;return(((_=e.status)==null?void 0:_.current_model)||"unknown").split("/").pop()}),ge.$$input=_=>a(_.currentTarget.value),P.$$click=()=>void E(),B.$$click=()=>void q(),r(K,()=>{var _;return((_=e.currentProject)==null?void 0:_.name)||"No project selected"}),r(ue,()=>{var _;return(_=e.status)!=null&&_.flow_enforcer?"ON":"OFF"}),r(fe,j(me,{get each(){return d()},get fallback(){return Vi()},children:(_,ee)=>(()=>{var Ie=zi(),Xe=Ie.firstChild,Be=Xe.nextSibling,Ze=Be.firstChild,He=Ze.nextSibling,Qe=He.firstChild;return r(Xe,()=>ee()+1),r(Ze,()=>_.label),r(He,()=>_.tool,Qe),r(He,()=>_.reason,null),Ie})()})),Z.$$click=()=>{n("plan"),e.onCreatePlan(),e.onRefresh(),n(null)},p.$$click=()=>{n("tdd"),e.onStartTdd(),e.onRefresh(),n(null)},r(he,()=>{var _,ee;return(ee=(_=e.capabilities)==null?void 0:_.web_search)!=null&&ee.enabled?"on":"off"},ce),r(he,()=>{var _,ee;return(ee=(_=e.capabilities)==null?void 0:_.tdd)!=null&&ee.enabled?"on":"off"},null),r(Oe,()=>{var _;return((_=e.status)==null?void 0:_.active_slot)||"brain"}),r(v,()=>{var _;return(((_=e.status)==null?void 0:_.current_model)||"unknown").split("/").pop()}),r(G,()=>{var _;return Hi((_=e.savings)==null?void 0:_.savings_rate_per_hour)}),r(at,()=>{var _,ee,Ie;return((ee=(_=e.status)==null?void 0:_.todos)==null?void 0:ee.pending)??((Ie=e.home)==null?void 0:Ie.totals.pending_todos)??0}),r($t,()=>{var _;return((_=e.session)==null?void 0:_.title)||"none"}),r(Lt,()=>{var _;return(_=e.status)!=null&&_.backend_connected?"online":"degraded"}),r(Tn,()=>{var _;return(_=e.status)!=null&&_.model_locked?"locked":"open"}),r(Dn,()=>{var _;return(_=e.status)!=null&&_.flow_enforcer?"on":"off"}),r(g,j($e,{get when(){return s()},get children(){var _=Bi(),ee=_.firstChild,Ie=ee.nextSibling;return r(ee,()=>s()),Ie.$$click=()=>i(null),_}}),null),se(_=>{var Qe;var ee=`badge ${m()?"on":"off"}`,Ie=!l().trim()||t()==="token",Xe=t()==="token",Be=`badge ${(Qe=e.status)!=null&&Qe.flow_enforcer?"on":"off"}`,Ze=!e.session||t()==="plan",He=!e.session||t()==="tdd";return ee!==_.e&&de(O,_.e=ee),Ie!==_.t&&(P.disabled=_.t=Ie),Xe!==_.a&&(B.disabled=_.a=Xe),Be!==_.o&&de(ue,_.o=Be),Ze!==_.i&&(Z.disabled=_.i=Ze),He!==_.n&&(p.disabled=_.n=He),_},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),se(()=>ge.value=l()),g})()}ot(["input","click"]);var Zi=x("<section class=home-shell>"),Wi=x('<div class="shell shell-4col"><main class=workspace><header class="header workspace-header"><div class=header-title><div><h1></h1><div class=header-subtitle></div></div><span class=version></span></div><div class=header-indicators><span></span><span></span><span></span><span>'),Gi=x('<section class=workspace-grid><div class="workspace-column workspace-column-sessions"></div><div class="workspace-column workspace-column-chat"></div><div class="workspace-column workspace-column-controls">');function Xi(){const[e,t]=M(null),[n,s]=M(null),[i,l]=M(null),[a,o]=M(null),[c,d]=M(!1),[m,u]=M({kind:Is}),[$,E]=M([]),[q,g]=M([]),[y,H]=M({}),[O,w]=M(!1),[N,ie]=M(null),oe=()=>_n().then(f=>{t(f),d(!0)}).catch(()=>d(!1)),k=()=>bn().then(f=>{s(f),d(!0)}).catch(()=>d(!1)),R=()=>vn().then(l).catch(()=>{}),D=()=>pn().then(o).catch(()=>{}),b=()=>Sn().then(f=>E(f.projects)).catch(()=>{}),A=f=>Cn(f||void 0).then(P=>g(P.flows)).catch(()=>{}),C=()=>xn().then(f=>{var B;const P={};for(const L of f.sessions)(P[B=L.project_id]||(P[B]=[])).push(L);H(P)}).catch(()=>{}),V=$n(f=>{t(f.status),s(f.savings),d(!0)});oe(),k(),R(),b(),C(),D(),Ft(V);const J=()=>w(!0),re=async f=>{w(!1);const P=await wn(f);await b(),await D(),u({kind:"project",projectId:P.project.id})},Le=()=>w(!1),Re=async f=>{confirm("Delete this project and all its sessions?")&&(await kn(f),await b(),await C(),await D(),m().projectId===f&&u({kind:"home"}))},te=()=>{var L,Y,ne,K,ue,fe;const f=m();if(f.kind==="project"||f.kind==="session")return $().find(le=>le.id===f.projectId)||null;const P=((Y=(L=a())==null?void 0:L.current_session)==null?void 0:Y.project_fingerprint)||((ne=e())==null?void 0:ne.current_project_fingerprint)||"",B=((ue=(K=a())==null?void 0:K.current_session)==null?void 0:ue.project_name)||((fe=e())==null?void 0:fe.current_project_name)||"";return $().find(le=>le.fingerprint&&le.fingerprint===P)||$().find(le=>le.name===B)||null},Ue=()=>{const f=te();return f?y()[f.id]||[]:[]},ve=()=>{var Y,ne;const f=m();if(f.kind==="session")return(y()[f.projectId]||[]).find(K=>K.id===f.sessionId)||null;const P=((ne=(Y=a())==null?void 0:Y.current_session)==null?void 0:ne.session_id)||"";if(!P)return null;const B=te();if(!B)return null;const L=(y()[B.id]||[]).find(K=>K.id===P)||null;return L&&L.project_id===B.id?L:null};zt(()=>{const f=te();A((f==null?void 0:f.id)||null)});const Q=()=>{const f=e();if(!f)return{label:"API OFF",tone:"disconnected",title:"backend status unavailable"};const P=f.backend_connected??f.backendConnected,B=f.backend_api_url||f.backend_health_url||"unknown target",L=f.backend_health_checked_at?new Date(f.backend_health_checked_at).toLocaleTimeString():null;if(P){const ne=typeof f.backend_health_age_ms=="number"?` ${Math.max(0,Math.round(f.backend_health_age_ms/1e3))}s`:"",K=typeof f.backend_health_latency_ms=="number"?` ${f.backend_health_latency_ms}ms`:"";return{label:`⚡ BACKEND${ne}`,tone:"connected",title:`${B}${K}${L?` · checked ${L}`:""}`}}const Y=f.backend_health_error||(typeof f.backend_health_status=="number"?`HTTP ${f.backend_health_status}`:"unreachable");return{label:"API OFF",tone:"disconnected",title:`${B} · ${Y}${L?` · checked ${L}`:""}`}},pe=f=>{const P=ve();P&&ie({sessionId:P.id,prompt:f})},Me=()=>{const f=te()||$()[0]||null;f&&u({kind:"project",projectId:f.id})},ke=()=>{const f=ve()||null;f&&u({kind:"session",projectId:f.project_id,sessionId:f.id})},Pe=()=>{var f;oe(),k(),D(),b(),C(),A(((f=te())==null?void 0:f.id)||null)},xe=()=>m().kind==="home"||m().kind==="status",je=()=>{var f,P,B;return m().kind==="status"?"Status":m().kind==="home"?"Dashboard":((f=te())==null?void 0:f.name)||((B=(P=a())==null?void 0:P.current_session)==null?void 0:B.project_name)||"Home"},ge=()=>{var f,P,B,L,Y,ne,K,ue,fe;return m().kind==="home"?((P=(f=a())==null?void 0:f.home)==null?void 0:P.title)||((L=(B=a())==null?void 0:B.home)==null?void 0:L.subtitle)||"Operational dashboard overview":m().kind==="status"?((ne=(Y=a())==null?void 0:Y.home)==null?void 0:ne.subtitle)||"Runtime status":((K=ve())==null?void 0:K.title)||((fe=(ue=a())==null?void 0:ue.home)==null?void 0:fe.subtitle)||"OpenCode-style operational dashboard"};return(()=>{var f=Wi(),P=f.firstChild,B=P.firstChild,L=B.firstChild,Y=L.firstChild,ne=Y.firstChild,K=ne.nextSibling,ue=Y.nextSibling,fe=L.nextSibling,le=fe.firstChild,Ae=le.nextSibling,ye=Ae.nextSibling,Z=ye.nextSibling;return r(f,j(Fs,{get home(){return a()},get status(){return e()},get projects(){return $()},get selection(){return m()},get currentProjectName(){var p,ae,he,Te;return((p=te())==null?void 0:p.name)||((he=(ae=a())==null?void 0:ae.current_session)==null?void 0:he.project_name)||((Te=e())==null?void 0:Te.current_project_name)||null},get creatingProject(){return O()},onSelect:u,onNewProject:J,onCreateProjectName:re,onCancelCreate:Le,onDeleteProject:Re}),P),r(ne,je),r(K,ge),r(ue,()=>{var p;return((p=e())==null?void 0:p.version)??"..."}),r(le,()=>c()?"LIVE":"connecting"),r(Ae,()=>Q().label),r(ye,()=>{var p,ae;return((p=e())==null?void 0:p.backend_connected)??((ae=e())==null?void 0:ae.backendConnected)?"API LIVE":"API DEGRADED"}),r(Z,()=>{var p;return((p=e())==null?void 0:p.enabled)===!1?"OFF":"ON"}),r(P,j($e,{get when(){return xe()},get fallback(){return(()=>{var p=Gi(),ae=p.firstChild,he=ae.nextSibling,Te=he.nextSibling;return r(ae,j(qi,{get project(){return te()},get sessions(){return Ue()},get selectedSessionId(){var ce;return((ce=ve())==null?void 0:ce.id)||null},get currentSessionId(){var ce,S;return((S=(ce=a())==null?void 0:ce.current_session)==null?void 0:S.session_id)||null},onSelectSession:ce=>u({kind:"session",projectId:ce.project_id,sessionId:ce.id})})),r(he,j(Ei,{get session(){return ve()},get project(){return te()},get status(){return e()},get capabilities(){return i()},get savings(){return n()},get runRequest(){return N()},onRunRequestHandled:()=>ie(null),onRefresh:Pe})),r(Te,j(Ji,{get status(){return e()},get capabilities(){return i()},get home(){return a()},get savings(){return n()},get session(){return ve()},get currentProject(){return te()},onRefresh:Pe,onCreatePlan:()=>pe("Create a concise structured plan for this session. Show the plan before execution, keep it deterministic, and include TDD steps if they are required."),onStartTdd:()=>pe("Start TDD for this session. Produce failing tests first, then implement the minimum fix, then verify the result.")})),p})()},get children(){var p=Zi();return r(p,j(ci,{get data(){return a()},get status(){return e()},get project(){return te()},get session(){return ve()},get flows(){return q()},onOpenStatus:()=>u({kind:"status"}),onOpenProject:Me,onOpenSession:ke,onTrinityAction:Pe})),p}}),null),se(p=>{var T,U,W;var ae=`indicator ${c()?"connected":"disconnected"}`,he=`indicator flash ${Q().tone}`,Te=Q().title,ce=`indicator ${((T=e())==null?void 0:T.backend_connected)??((U=e())==null?void 0:U.backendConnected)?"connected":"disconnected"}`,S=`indicator ${((W=e())==null?void 0:W.enabled)===!1?"disabled":"connected"}`;return ae!==p.e&&de(le,p.e=ae),he!==p.t&&de(Ae,p.t=he),Te!==p.a&&gt(Ae,"title",p.a=Te),ce!==p.o&&de(ye,p.o=ce),S!==p.i&&de(Z,p.i=S),p},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),f})()}const rn=document.getElementById("app");rn&&Gn(()=>j(Xi,{}),rn);
@@ -1 +0,0 @@
1
- *,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#050505;--surface:#0c0c0c;--border:#1a1a1a;--border-hover:#2a2a2a;--text:#d4d4d4;--text-dim:#6a6a6a;--text-bright:#f0f0f0;--green:#3fb950;--red:#f85149;--yellow:#d29922;--accent:#58a6ff;--accent-dim:rgba(88,166,255,.08);--mono:"JetBrains Mono","Fira Code","Cascadia Code","SF Mono",Menlo,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}html{font-size:13px;background:var(--bg)}body{font-family:var(--mono);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.app{max-width:1100px;margin:0 auto;padding:1.25rem 1.5rem}.header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;margin-bottom:.75rem;border-bottom:1px solid var(--border)}.header-title{display:flex;align-items:baseline;gap:.5rem}.header-title h1{font-family:var(--mono);font-size:1.1rem;font-weight:600;color:var(--text-bright);text-transform:lowercase;letter-spacing:-.5px}.header-title h1:before{content:"~ ";color:var(--red)}.header-subtitle{font-size:.72rem;color:var(--text-dim);font-family:var(--mono);margin-top:.15rem}.version{font-size:.7rem;color:var(--text-dim);font-family:var(--mono)}.header-indicators{display:flex;gap:.5rem;align-items:center}.indicator{font-family:var(--mono);font-size:.65rem;padding:1px 6px;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.indicator.connected{color:var(--green)}.indicator.disconnected{color:var(--yellow)}.indicator.disabled{color:var(--red)}.indicator:before{content:"● ";font-size:.5rem}.indicator.flash:before{content:"⚡ ";font-size:.7rem}.nav-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid var(--border)}.tab{font-family:var(--mono);background:transparent;border:none;color:var(--text-dim);padding:.4rem .75rem;cursor:pointer;font-size:.78rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;text-transform:uppercase;letter-spacing:.5px}.tab:hover{color:var(--text);border-bottom-color:var(--border-hover)}.tab.active{color:var(--text-bright);border-bottom-color:var(--green);font-weight:600}.content{display:flex;flex-direction:column;gap:.75rem}.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.card,.card-full{background:var(--surface);border:1px solid var(--border);padding:.75rem .85rem}.card-full{grid-column:1/-1}.card h3,.card-full h3{font-family:var(--mono);font-size:.7rem;font-weight:600;margin-bottom:.65rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px}.card h3:before,.card-full h3:before{content:"── ";color:var(--border-hover)}.kv-table{width:100%;border-collapse:collapse;font-family:var(--mono)}.kv-table td{padding:.25rem 0;font-size:.78rem}.kv-table td:first-child{color:var(--text-dim);width:38%;white-space:nowrap}.kv-table td:last-child{color:var(--text);overflow-wrap:anywhere}.badge{display:inline-block;font-family:var(--mono);font-size:.65rem;padding:1px 5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;line-height:1.4}.badge.slot{color:var(--green)}.badge.slot:before{content:"["}.badge.slot:after{content:"]"}.badge.on{color:var(--green)}.badge.on:before{content:"["}.badge.on:after{content:"]"}.badge.off{color:var(--red)}.badge.off:before{content:"["}.badge.off:after{content:"]"}code{font-family:var(--mono);font-size:.75rem;color:var(--text-bright)}pre{font-family:var(--mono);font-size:.72rem}.credit-bar{display:inline-block;width:55px;height:6px;background:var(--border);overflow:hidden;vertical-align:middle;border:1px solid var(--border-hover)}.credit-fill{height:100%;background:var(--green);transition:width .4s ease}.credit-label{margin-left:.4rem;font-size:.7rem;font-family:var(--mono);color:var(--text-dim)}.trend{font-size:.85rem;font-family:var(--mono)}.trend-up{color:var(--green)}.trend-down{color:var(--red)}.trend-flat{color:var(--text-dim)}.bar-chart{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem}.bar-row{display:flex;align-items:center;gap:.5rem}.bar-label{width:75px;font-size:.7rem;color:var(--text-dim);text-align:right;font-family:var(--mono)}.bar-track{flex:1;height:5px;background:var(--border);overflow:hidden}.bar-fill{height:100%;background:var(--accent);transition:width .4s ease}.bar-value{width:55px;font-size:.7rem;text-align:right;font-family:var(--mono);color:var(--text-dim)}.data-table{width:100%;border-collapse:collapse;font-size:.72rem;font-family:var(--mono)}.data-table th,.data-table td{padding:.3rem .4rem;text-align:left}.data-table th{color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;border-bottom:1px solid var(--border)}.data-table td{border-bottom:1px solid var(--border);color:var(--text)}.data-table tr:hover td{background:var(--accent-dim)}.data-table td:first-child{color:var(--text-bright)}.stress-bars{display:flex;gap:2px;align-items:flex-end;min-height:28px;padding:.3rem 0}.stress-bar{font-size:1.4rem;line-height:1;font-family:var(--mono)}.muted{color:var(--text-dim);font-size:.78rem;font-family:var(--mono)}.error{color:var(--red);font-size:.75rem;font-family:var(--mono)}.sep{color:var(--text-dim);margin:.5rem 0;font-family:var(--mono);font-size:.65rem;letter-spacing:2px}.control-group{margin-bottom:.65rem}.control-group h4{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);padding-bottom:.15rem}.bracket-row{display:flex;gap:.6rem;flex-wrap:wrap}.bracket-btn{font-family:var(--mono);font-size:.75rem;background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:.15rem 0;transition:color .15s;letter-spacing:.3px}.bracket-btn:before{content:"["}.bracket-btn:after{content:"]"}.bracket-btn:hover{color:var(--text)}.bracket-btn.on{color:var(--green);font-weight:600}.bracket-btn.off{color:var(--red)}.bracket-btn:disabled{opacity:.3;cursor:default}.result-box{margin-top:.6rem;padding:.5rem .6rem;border:1px solid var(--border);border-left:2px solid var(--accent);font-family:var(--mono);font-size:.7rem;color:var(--text-dim);display:flex;justify-content:space-between;align-items:center}.result-box code{font-size:.7rem;color:var(--text-dim);max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dismiss-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;padding:0 .2rem;font-family:var(--mono)}.dismiss-btn:hover{color:var(--text)}.reports-layout{display:grid;grid-template-columns:1fr 2fr;gap:.75rem;min-height:280px}.report-list{display:flex;flex-direction:column;gap:0}.report-item{padding:.4rem .5rem;cursor:pointer;border-left:2px solid transparent;transition:border-color .15s,background .15s}.report-item:hover{border-color:var(--border-hover)}.report-item.active{border-color:var(--green);background:var(--accent-dim)}.report-summary{font-family:var(--mono);font-size:.78rem;color:var(--text);margin-bottom:.2rem}.report-meta{display:flex;gap:.5rem;font-size:.65rem;color:var(--text-dim);font-family:var(--mono)}.report-type{text-transform:uppercase;letter-spacing:.5px}.report-viewer{background:var(--bg);border:1px solid var(--border);padding:.6rem .7rem;overflow:auto;min-height:200px}.report-content{font-family:var(--mono);font-size:.72rem;color:var(--text);white-space:pre-wrap;word-break:break-all}.search-hero{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;border:1px solid var(--border);background:linear-gradient(180deg,#58a6ff14,#ffffff03);padding:.7rem .8rem;margin-bottom:.75rem}.search-hero-kicker{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px;margin-bottom:.2rem}.search-hero-title{font-family:var(--mono);font-size:.92rem;font-weight:700;color:var(--text-bright);margin-bottom:.25rem}.search-hero-copy{font-family:var(--mono);font-size:.72rem;line-height:1.45;color:var(--text-dim);max-width:62ch}.search-hero-meta{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.search-stats{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.45rem}.search-answer-text{font-family:var(--mono);font-size:.72rem;line-height:1.5;color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0}.search-output{display:grid;grid-template-columns:1.1fr 1.2fr;gap:.75rem;margin-top:.75rem}.search-answer,.search-results,.search-citations{background:var(--bg);border:1px solid var(--border);padding:.55rem .6rem}.search-answer h4,.search-results h4,.search-citations h4{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:1px}.search-list{display:flex;flex-direction:column;gap:.4rem}.search-item{display:block;color:inherit;text-decoration:none;border:1px solid var(--border);padding:.45rem .5rem;background:#ffffff03}.search-item:hover{border-color:var(--accent);background:var(--accent-dim)}.search-item-title{font-family:var(--mono);font-size:.74rem;color:var(--text-bright);margin-bottom:.1rem;display:flex;gap:.35rem;align-items:flex-start}.search-rank{color:var(--accent);font-weight:700}.search-item-meta,.search-item-snippet{font-family:var(--mono);font-size:.68rem;color:var(--text-dim)}.search-item-snippet{margin-top:.2rem;line-height:1.4}.citation-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.35rem}.citation-pill{display:inline-block;text-decoration:none;padding:.2rem .4rem;border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.65rem}.citation-pill:hover{border-color:var(--accent);color:var(--text-bright)}.blackbox-status{font-family:var(--mono);margin-top:.8rem}.blackbox-status td{font-size:.75rem}.field-label{display:block;margin:.35rem 0 .2rem;color:var(--text-dim);font-size:.65rem;text-transform:uppercase;letter-spacing:1px;font-family:var(--mono)}.text-input,.text-area{width:100%;background:var(--bg);color:var(--text-bright);border:1px solid var(--border);font-family:var(--mono);font-size:.75rem;padding:.45rem .5rem;margin-bottom:.35rem;outline:none}.text-input:focus,.text-area:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim)}.text-area{resize:vertical;min-height:72px}@media(max-width:900px){.grid-2col,.reports-layout,.search-output{grid-template-columns:1fr}.header{flex-direction:column;align-items:flex-start;gap:.5rem}.search-hero{flex-direction:column}.search-hero-meta{justify-content:flex-start}}.section-divider{border:none;border-top:1px solid var(--border);margin:.4rem 0;opacity:.6}.status-dot{color:var(--green);font-family:var(--mono)}.status-dot.off{color:var(--red)}.shell{display:flex;min-height:100vh;max-width:1400px;margin:0 auto}.shell .main{flex:1;min-width:0;padding:1rem 1.25rem;display:flex;flex-direction:column}.shell .main .header{margin-bottom:.5rem}.sidebar{width:230px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface);padding:.75rem .5rem;display:flex;flex-direction:column;gap:2px;font-size:.78rem}.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:.25rem .4rem .8rem;border-bottom:1px solid var(--border);margin-bottom:.4rem}.sidebar-brand-mark{color:var(--red);font-size:1.05rem;font-weight:700}.sidebar-brand-title{font-size:.84rem;color:var(--text-bright);text-transform:lowercase}.sidebar-brand-subtitle{font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.8px}.sidebar-section-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:.6rem;padding:.35rem .4rem .2rem}.sidebar-section-head{display:flex;align-items:center;justify-content:space-between;margin-top:.4rem}.sidebar-item{display:block;width:100%;text-align:left;background:transparent;border:none;cursor:pointer;color:var(--text);font-family:var(--mono);font-size:.78rem;padding:.3rem .45rem;border-radius:3px}.sidebar-item:hover{background:var(--bg)}.sidebar-item.active{background:var(--accent-dim);color:var(--text-bright);border-left:2px solid var(--green)}.sidebar-item.pinned{font-weight:600}.sidebar-item.session{font-size:.74rem;color:var(--text-dim)}.sidebar-item.session.active{color:var(--text-bright)}.sidebar-icon{color:var(--green);margin-right:2px}.sidebar-caret{color:var(--text-dim);display:inline-block;width:.8rem}.sidebar-project-row{display:flex;align-items:center}.sidebar-project-row .sidebar-item{flex:1}.sidebar-project-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;color:var(--text-bright);font-size:.7rem;background:var(--bg);margin-right:.3rem;flex-shrink:0}.sidebar-sessions{margin-left:.85rem;border-left:1px solid var(--border);padding-left:.2rem}.sidebar-add{background:transparent;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:3px;width:18px;height:18px;line-height:1;font-size:.85rem;flex-shrink:0}.sidebar-add:hover{color:var(--green);border-color:var(--border-hover)}.sidebar-empty{color:var(--text-dim);font-size:.68rem;padding:.2rem .5rem;font-style:italic}.sidebar-empty.sub{padding-left:.6rem}.sidebar-context-card{border:1px solid var(--border);background:var(--bg);padding:.45rem .5rem;margin:.5rem 0 .35rem;display:flex;flex-direction:column;gap:.2rem}.sidebar-context-main{font-size:.74rem;color:var(--text-bright);line-height:1.4;word-break:break-word}.sidebar-inline-link{background:transparent;border:none;color:var(--accent);cursor:pointer;text-align:left;font-family:var(--mono);font-size:.69rem;padding:0}.sidebar-inline-link:hover{text-decoration:underline}.session-pane,.project-view{display:flex;flex-direction:column;gap:.6rem;height:100%}.session-head,.project-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--border);padding-bottom:.5rem}.session-title{font-size:1rem;color:var(--text-bright);font-family:var(--mono)}.session-flow{display:flex;flex-direction:column;gap:2px;align-items:flex-end}.session-flow select,.flow-mini,.project-head select{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.72rem;padding:2px 4px;border-radius:3px}.session-body{display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:0}.thread{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;flex:1;padding-right:.25rem}.msg{border:1px solid var(--border);border-radius:4px;padding:.5rem .6rem;background:var(--surface)}.msg.user{border-left:2px solid var(--accent)}.msg.assistant{border-left:2px solid var(--green)}.msg.live{border-left-color:var(--yellow)}.msg-role{font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:.25rem}.msg-content{color:var(--text);white-space:pre-wrap;font-size:.8rem}.msg-content.mono{font-family:var(--mono);color:var(--text-dim);font-size:.72rem}.run-trace{display:flex;flex-direction:column;gap:2px;margin-top:.4rem}.run-step{display:flex;gap:.4rem;align-items:baseline;font-size:.72rem;padding:2px 4px;border-radius:3px;background:var(--bg)}.run-step.skipped{opacity:.5}.run-step-tool{color:var(--green);font-weight:600}.run-step.skipped .run-step-tool{color:var(--yellow)}.run-step-label{color:var(--text)}.run-step-skip{color:var(--yellow);font-style:italic}.run-step-result{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-spinner{color:var(--yellow);font-size:.72rem;margin-top:.3rem}.composer{border-top:1px solid var(--border);padding-top:.5rem;display:flex;flex-direction:column;gap:.4rem}.composer .text-area{min-height:64px}.composer-extra{font-size:.7rem;color:var(--text-dim)}.composer-extra summary{cursor:pointer;padding:.2rem 0}.composer-extra .text-area{min-height:48px;margin-top:.3rem}.composer-actions{display:flex;justify-content:space-between;align-items:center}.flow-save{background:var(--green);color:var(--bg);border:none;border-radius:3px;cursor:pointer;font-family:var(--mono);font-size:.74rem;font-weight:600;padding:.35rem .9rem}.flow-save:disabled{opacity:.4;cursor:not-allowed}.session-workspace{display:flex;flex-direction:column;gap:.85rem}.session-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border:1px solid var(--border);background:linear-gradient(180deg,#ffffff05,#58a6ff14);padding:.95rem 1rem}.session-hero-meta{display:flex;gap:.55rem;flex-wrap:wrap;font-size:.68rem;color:var(--text-dim);margin-top:.35rem}.session-hero-kpis{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:.55rem;min-width:420px}.session-kpi,.session-mini-kpi,.home-op-tile{border:1px solid var(--border);background:var(--bg);padding:.55rem .6rem;display:flex;flex-direction:column;gap:.25rem}.session-kpi strong,.session-mini-kpi strong,.home-op-value{font-size:.82rem;color:var(--text-bright)}.session-grid-4{display:grid;grid-template-columns:.9fr 1.3fr 1fr 1fr;gap:.75rem;align-items:start}.session-column{display:flex;flex-direction:column;gap:.7rem;min-height:640px}.session-thread-column{min-width:0}.session-thread{min-height:360px;max-height:640px}.session-state-stack,.session-timeline,.session-notes-list,.session-plan-list{display:flex;flex-direction:column;gap:.45rem}.session-state-row,.policy-row,.session-plan-item{display:flex;justify-content:space-between;gap:.75rem;padding:.45rem .5rem;background:var(--bg);border:1px solid var(--border)}.session-state-row span,.policy-row span{color:var(--text-dim);text-transform:uppercase;font-size:.64rem;letter-spacing:.8px}.session-state-row strong,.policy-row strong{font-size:.76rem;color:var(--text-bright);text-align:right}.session-chip-row{display:flex;gap:.35rem;flex-wrap:wrap}.session-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-dim);padding:.18rem .4rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.6px}.session-state-block{display:flex;flex-direction:column;gap:.35rem}.session-copy{font-size:.76rem;line-height:1.55;color:var(--text)}.session-note-item{background:var(--bg);border:1px solid var(--border);padding:.45rem .5rem;font-size:.74rem;line-height:1.45;color:var(--text)}.session-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.session-plan-box,.policy-box{border:1px solid var(--border);background:var(--bg);padding:.55rem .6rem}.session-plan-head{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;font-size:.74rem;color:var(--text-bright)}.mode-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.mode-card-btn{display:flex;flex-direction:column;gap:.2rem;align-items:flex-start;text-align:left;border:1px solid var(--border);background:var(--bg);color:var(--text);padding:.55rem .6rem;cursor:pointer;font-family:var(--mono);font-size:.72rem}.mode-card-btn strong{color:var(--text-bright);font-size:.75rem}.mode-card-btn span{color:var(--text-dim);font-size:.66rem}.mode-card-btn:hover{border-color:var(--border-hover)}.mode-card-btn.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.mode-card-btn:disabled{opacity:.45;cursor:not-allowed}.session-action-grid{display:flex;gap:.45rem;flex-wrap:wrap}.session-plan-item{justify-content:flex-start;align-items:flex-start}.session-plan-item>span{min-width:22px;height:22px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--green);font-size:.7rem;background:var(--surface)}.home-ops-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}.home-mode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.home-mode-card{display:flex;flex-direction:column;gap:.45rem;min-height:150px}.home-mode-card.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.home-mode-head{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}.home-mode-name{font-size:.8rem;color:var(--text-bright)}.home-mode-pipeline{font-size:.66rem;color:var(--text-dim)}.home-mode-copy{font-size:.72rem;color:var(--text);line-height:1.5;flex:1}.home-mode-meta{display:flex;gap:.45rem;flex-wrap:wrap;font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.flow-editor{display:flex;flex-direction:column;gap:.5rem}.flow-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.flow-palette{display:flex;gap:3px;flex-wrap:wrap;flex:1}.flow-chip,.flow-pill-name{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:.68rem;padding:2px 6px;border-radius:3px}.flow-chip:hover{border-color:var(--green);color:var(--green)}.flow-hint{font-size:.72rem;color:var(--yellow)}.linkish,.flow-mini.link{background:transparent;border:none;color:var(--accent);cursor:pointer;font-family:var(--mono);font-size:.68rem;padding:0;text-decoration:underline}.flow-canvas{position:relative;min-height:340px;border:1px solid var(--border);border-radius:4px;background:var(--bg) repeating-linear-gradient(0deg,transparent,transparent 23px,var(--border) 24px),var(--bg) repeating-linear-gradient(90deg,transparent,transparent 23px,var(--border) 24px);background-blend-mode:normal;overflow:hidden;touch-action:none}.flow-edges{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.flow-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-dim);font-size:.75rem}.flow-node{position:absolute;background:var(--surface);border:1px solid var(--border-hover);border-radius:4px;font-size:.7rem;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #0006}.flow-node.linking{border-color:var(--accent)}.flow-node-head{display:flex;justify-content:space-between;align-items:center;padding:3px 6px;border-bottom:1px solid var(--border);cursor:grab;background:var(--bg)}.flow-node-tool{color:var(--green);font-weight:600}.flow-node.tool-condition .flow-node-tool{color:var(--accent)}.flow-node.tool-direct .flow-node-tool{color:var(--text-dim)}.flow-node-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.8rem;line-height:1}.flow-node-x:hover{color:var(--red)}.flow-node-body{display:flex;flex-direction:column;gap:3px;padding:4px 6px}.flow-mini{width:100%}.flow-preview{display:flex;gap:.5rem;align-items:baseline;font-size:.75rem}.flow-preview code{color:var(--green)}.flow-list-bar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.flow-pill{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:3px;overflow:hidden}.flow-pill.active{border-color:var(--green)}.flow-pill-name{border:none;border-radius:0}.flow-pill-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:2px 5px}.flow-pill-x:hover{color:var(--red)}.mono{font-family:var(--mono)}.home-view{display:flex;flex-direction:column;gap:.9rem}.home-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border:1px solid var(--border);background:linear-gradient(180deg,#ffffff05,#58a6ff14);padding:.95rem 1rem}.home-kicker{font-size:.64rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:.25rem}.home-hero h2{font-size:1.2rem;color:var(--text-bright);margin-bottom:.2rem}.home-hero p{font-size:.76rem;color:var(--text-dim);max-width:64ch;line-height:1.5}.home-hero-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.shell-link{background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:.72rem;padding:.35rem .7rem;border-radius:3px}.shell-link:hover{border-color:var(--green);color:var(--green)}.home-overview-grid,.home-detail-grid{display:grid;gap:.75rem}.home-overview-grid{grid-template-columns:1.1fr 1fr}.home-detail-grid{grid-template-columns:1.15fr .9fr;align-items:start}.home-summary-table{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .9rem}.home-summary-row{display:flex;justify-content:space-between;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--border)}.home-summary-label{color:var(--text-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.7px}.home-summary-value{color:var(--text-bright);font-size:.78rem}.home-recommendation{font-size:.84rem;line-height:1.55;color:var(--text-bright);margin-bottom:.85rem}.home-inline-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.home-inline-value{font-size:.75rem;color:var(--text);line-height:1.4}.home-current-session,.home-sessions-card{grid-column:1}.home-todos-card,.home-savings-card{grid-column:2}.home-session-head{display:flex;justify-content:space-between;gap:.5rem;align-items:center;margin-bottom:.45rem}.home-session-title{font-size:.9rem;color:var(--text-bright)}.home-metric-strip{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.68rem;color:var(--text-dim);margin:.4rem 0 .55rem}.home-tag-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.55rem}.home-tag{border:1px solid var(--border);padding:.15rem .35rem;font-size:.66rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.home-todo-list,.home-session-list{display:flex;flex-direction:column;gap:.45rem}.home-todo-item,.home-session-item{display:flex;justify-content:space-between;gap:.55rem;padding:.45rem .5rem;background:var(--bg);border:1px solid var(--border)}.home-todo-status{color:var(--yellow);font-size:.65rem;min-width:54px}.home-totals{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-dim);margin-top:.55rem}.home-money{font-size:1.45rem;color:var(--text-bright);font-weight:700}.home-money-sub{font-size:.72rem;color:var(--text-dim);margin-top:.2rem}.home-session-item.current{border-left:2px solid var(--green)}.home-session-item-title{font-size:.78rem;color:var(--text-bright);margin-bottom:.15rem}.home-session-item-meta{display:flex;flex-direction:column;gap:.2rem;font-size:.66rem;color:var(--text-dim);text-align:right}@media(max-width:760px){.shell{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border)}.home-overview-grid,.home-detail-grid,.home-inline-grid,.home-summary-table{grid-template-columns:1fr}.home-current-session,.home-sessions-card,.home-todos-card,.home-savings-card{grid-column:auto}.home-hero{flex-direction:column;align-items:flex-start}}@media(max-width:1280px){.session-grid-4{grid-template-columns:1fr 1fr}.session-column{min-height:auto}.home-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-ops-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:920px){.session-hero{flex-direction:column;align-items:flex-start}.session-hero-kpis{min-width:0;width:100%;grid-template-columns:1fr}.session-grid-4,.home-mode-grid,.home-ops-strip,.mode-control-grid,.session-kpi-grid{grid-template-columns:1fr}}.home-controls-strip{display:flex;gap:1.5rem;align-items:center;padding:.6rem .85rem;background:var(--surface);border:1px solid var(--border);margin-bottom:.75rem;flex-wrap:wrap}.qc-group{display:flex;align-items:center;gap:.4rem}.qc-slot{font-family:var(--mono);font-size:.72rem;padding:2px 8px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer}.qc-slot.active{color:var(--green);border-color:var(--green)}.qc-slot:hover{border-color:var(--border-hover);color:var(--text)}.qc-model{font-family:var(--mono);font-size:.72rem;color:var(--text)}.qc-pill{font-family:var(--mono);font-size:.68rem;padding:1px 6px;font-weight:600;text-transform:uppercase}.qc-pill.on{color:var(--green)}.qc-pill.off{color:var(--text-dim)}.create-form{display:flex;gap:4px;align-items:center;padding:4px 8px}.create-input{flex:1;font-family:var(--mono);font-size:.72rem;background:var(--bg);border:1px solid var(--accent);color:var(--text);padding:2px 4px;outline:none}.create-ok{font-family:var(--mono);font-size:.68rem;color:var(--green);background:transparent;border:1px solid var(--green);padding:1px 5px;cursor:pointer}.create-ok:disabled{opacity:.4;cursor:default}.create-cancel{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;line-height:1}.sidebar-delete{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.7rem;padding:0 3px;line-height:1;opacity:.4}.sidebar-delete:hover{color:var(--red);opacity:1}.sidebar-session-row{display:flex;align-items:center}.sidebar-session-row .sidebar-item{flex:1}.thread{display:flex;flex-direction:column;gap:.75rem}.msg.user{align-self:flex-end;background:var(--accent-dim);border:1px solid rgba(88,166,255,.15);margin-left:20%}.msg.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border);margin-right:20%}.run-trace-details{margin-top:.4rem}.run-trace-details summary{font-size:.68rem;color:var(--text-dim);cursor:pointer;padding:.2rem 0;list-style:none;-webkit-user-select:none;user-select:none}.run-trace-details summary::-webkit-details-marker{display:none}.run-trace-details summary:before{content:"+ "}.run-trace-details[open] summary:before{content:"- "}@keyframes vibe-pulse{0%,to{opacity:1}50%{opacity:.3}}.run-spinner{font-size:.75rem;color:var(--accent);font-family:var(--mono);animation:vibe-pulse 1.2s infinite}
@@ -1 +0,0 @@
1
- *,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#050507;--bg-glow:rgba(88,166,255,.12);--bg-warm:rgba(255,157,61,.08);--surface:#0d1016;--surface-2:#111622;--panel:rgba(15,19,27,.88);--panel-strong:rgba(18,23,34,.96);--border:#1e2530;--border-hover:#354153;--text:#d4d4d4;--text-dim:#6a6a6a;--text-bright:#f0f0f0;--green:#3fb950;--red:#f85149;--yellow:#d29922;--accent:#58a6ff;--accent-dim:rgba(88,166,255,.08);--accent-strong:rgba(88,166,255,.18);--glow:0 24px 80px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.02) inset;--glow-soft:0 16px 44px rgba(0,0,0,.32),0 0 32px rgba(88,166,255,.06);--radius-lg:18px;--radius-md:12px;--radius-sm:9px;--mono:"JetBrains Mono","Fira Code","Cascadia Code","SF Mono",Menlo,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Helvetica,Arial,sans-serif}html{font-size:13px;background:radial-gradient(circle at 18% 8%,rgba(88,166,255,.14),transparent 28%),radial-gradient(circle at 82% 6%,rgba(255,157,61,.11),transparent 26%),radial-gradient(circle at 50% 108%,rgba(63,185,80,.08),transparent 28%),var(--bg)}body{font-family:var(--sans);background:radial-gradient(circle at 20% 0%,rgba(88,166,255,.08),transparent 24%),radial-gradient(circle at 90% 10%,rgba(255,157,61,.06),transparent 24%),linear-gradient(180deg,#ffffff05,#0000),var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;line-height:1.45}.app{max-width:1600px;margin:0 auto;padding:1.15rem 1.35rem}.header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;margin-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.06)}.header-title{display:flex;align-items:baseline;gap:.5rem}.header-title h1{font-family:var(--sans);font-size:1.08rem;font-weight:700;color:var(--text-bright);letter-spacing:-.2px}.header-title h1:before{content:"";color:var(--red)}.header-subtitle{font-size:.72rem;color:var(--text-dim);font-family:var(--mono);margin-top:.15rem}.version{font-size:.7rem;color:var(--text-dim);font-family:var(--mono)}.header-indicators{display:flex;gap:.5rem;align-items:center}.indicator{font-family:var(--mono);font-size:.65rem;padding:1px 6px;text-transform:uppercase;font-weight:600;letter-spacing:.5px;border:1px solid rgba(255,255,255,.06);border-radius:999px;background:#ffffff05}.indicator.connected{color:var(--green)}.indicator.disconnected{color:var(--yellow)}.indicator.disabled{color:var(--red)}.indicator:before{content:"● ";font-size:.5rem}.indicator.flash:before{content:"⚡ ";font-size:.7rem}.nav-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid var(--border)}.tab{font-family:var(--mono);background:transparent;border:none;color:var(--text-dim);padding:.4rem .75rem;cursor:pointer;font-size:.78rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;text-transform:uppercase;letter-spacing:.5px}.tab:hover{color:var(--text);border-bottom-color:var(--border-hover)}.tab.active{color:var(--text-bright);border-bottom-color:var(--green);font-weight:600}.content{display:flex;flex-direction:column;gap:.75rem}.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.card,.card-full{background:linear-gradient(180deg,#ffffff0a,#ffffff04),var(--panel);border:1px solid rgba(255,255,255,.06);padding:.8rem .9rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.card-full{grid-column:1/-1}.card h3,.card-full h3{font-family:var(--sans);font-size:.78rem;font-weight:700;margin-bottom:.65rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px}.card h3:before,.card-full h3:before{content:"── ";color:var(--border-hover)}.kv-table{width:100%;border-collapse:collapse;font-family:var(--mono)}.kv-table td{padding:.25rem 0;font-size:.78rem}.kv-table td:first-child{color:var(--text-dim);width:38%;white-space:nowrap}.kv-table td:last-child{color:var(--text);overflow-wrap:anywhere}.badge{display:inline-block;font-family:var(--mono);font-size:.65rem;padding:1px 5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;line-height:1.4}.badge.slot{color:var(--green)}.badge.slot:before{content:"["}.badge.slot:after{content:"]"}.badge.on{color:var(--green)}.badge.on:before{content:"["}.badge.on:after{content:"]"}.badge.off{color:var(--red)}.badge.off:before{content:"["}.badge.off:after{content:"]"}code{font-family:var(--mono);font-size:.75rem;color:var(--text-bright)}pre{font-family:var(--mono);font-size:.72rem}.credit-bar{display:inline-block;width:55px;height:6px;background:var(--border);overflow:hidden;vertical-align:middle;border:1px solid var(--border-hover)}.credit-fill{height:100%;background:var(--green);transition:width .4s ease}.credit-label{margin-left:.4rem;font-size:.7rem;font-family:var(--mono);color:var(--text-dim)}.trend{font-size:.85rem;font-family:var(--mono)}.trend-up{color:var(--green)}.trend-down{color:var(--red)}.trend-flat{color:var(--text-dim)}.bar-chart{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem}.bar-row{display:flex;align-items:center;gap:.5rem}.bar-label{width:75px;font-size:.7rem;color:var(--text-dim);text-align:right;font-family:var(--mono)}.bar-track{flex:1;height:5px;background:var(--border);overflow:hidden}.bar-fill{height:100%;background:var(--accent);transition:width .4s ease}.bar-value{width:55px;font-size:.7rem;text-align:right;font-family:var(--mono);color:var(--text-dim)}.data-table{width:100%;border-collapse:collapse;font-size:.72rem;font-family:var(--mono)}.data-table th,.data-table td{padding:.3rem .4rem;text-align:left}.data-table th{color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;border-bottom:1px solid var(--border)}.data-table td{border-bottom:1px solid var(--border);color:var(--text)}.data-table tr:hover td{background:var(--accent-dim)}.data-table td:first-child{color:var(--text-bright)}.stress-bars{display:flex;gap:2px;align-items:flex-end;min-height:28px;padding:.3rem 0}.stress-bar{font-size:1.4rem;line-height:1;font-family:var(--mono)}.muted{color:var(--text-dim);font-size:.78rem;font-family:var(--mono)}.error{color:var(--red);font-size:.75rem;font-family:var(--mono)}.sep{color:var(--text-dim);margin:.5rem 0;font-family:var(--mono);font-size:.65rem;letter-spacing:2px}.control-group{margin-bottom:.65rem}.control-group h4{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);padding-bottom:.15rem}.bracket-row{display:flex;gap:.6rem;flex-wrap:wrap}.bracket-btn{font-family:var(--mono);font-size:.75rem;background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:.15rem 0;transition:color .15s;letter-spacing:.3px}.bracket-btn:before{content:"["}.bracket-btn:after{content:"]"}.bracket-btn:hover{color:var(--text)}.bracket-btn.on{color:var(--green);font-weight:600}.bracket-btn.off{color:var(--red)}.bracket-btn:disabled{opacity:.3;cursor:default}.result-box{margin-top:.6rem;padding:.5rem .6rem;border:1px solid rgba(255,255,255,.08);border-left:2px solid var(--accent);font-family:var(--mono);font-size:.7rem;color:var(--text-dim);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,#58a6ff0f,#ffffff05);border-radius:var(--radius-sm)}.result-box code{font-size:.7rem;color:var(--text-dim);max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dismiss-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;padding:0 .2rem;font-family:var(--mono)}.dismiss-btn:hover{color:var(--text)}.reports-layout{display:grid;grid-template-columns:1fr 2fr;gap:.75rem;min-height:280px}.report-list{display:flex;flex-direction:column;gap:0}.report-item{padding:.4rem .5rem;cursor:pointer;border-left:2px solid transparent;transition:border-color .15s,background .15s}.report-item:hover{border-color:var(--border-hover)}.report-item.active{border-color:var(--green);background:var(--accent-dim)}.report-summary{font-family:var(--mono);font-size:.78rem;color:var(--text);margin-bottom:.2rem}.report-meta{display:flex;gap:.5rem;font-size:.65rem;color:var(--text-dim);font-family:var(--mono)}.report-type{text-transform:uppercase;letter-spacing:.5px}.report-viewer{background:var(--bg);border:1px solid var(--border);padding:.6rem .7rem;overflow:auto;min-height:200px}.report-content{font-family:var(--mono);font-size:.72rem;color:var(--text);white-space:pre-wrap;word-break:break-all}.search-hero{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#58a6ff1c,#ff9d3d0d 48%,#ffffff05);padding:.8rem .9rem;margin-bottom:.75rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.search-hero-kicker{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px;margin-bottom:.2rem}.search-hero-title{font-family:var(--mono);font-size:.92rem;font-weight:700;color:var(--text-bright);margin-bottom:.25rem}.search-hero-copy{font-family:var(--mono);font-size:.72rem;line-height:1.45;color:var(--text-dim);max-width:62ch}.search-hero-meta{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.search-stats{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.45rem}.search-answer-text{font-family:var(--mono);font-size:.72rem;line-height:1.5;color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0}.search-output{display:grid;grid-template-columns:1.1fr 1.2fr;gap:.75rem;margin-top:.75rem}.search-answer,.search-results,.search-citations{background:var(--bg);border:1px solid var(--border);padding:.55rem .6rem}.search-answer h4,.search-results h4,.search-citations h4{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:1px}.search-list{display:flex;flex-direction:column;gap:.4rem}.search-item{display:block;color:inherit;text-decoration:none;border:1px solid var(--border);padding:.45rem .5rem;background:#ffffff03}.search-item:hover{border-color:var(--accent);background:var(--accent-dim)}.search-item-title{font-family:var(--mono);font-size:.74rem;color:var(--text-bright);margin-bottom:.1rem;display:flex;gap:.35rem;align-items:flex-start}.search-rank{color:var(--accent);font-weight:700}.search-item-meta,.search-item-snippet{font-family:var(--mono);font-size:.68rem;color:var(--text-dim)}.search-item-snippet{margin-top:.2rem;line-height:1.4}.citation-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.35rem}.citation-pill{display:inline-block;text-decoration:none;padding:.2rem .4rem;border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.65rem}.citation-pill:hover{border-color:var(--accent);color:var(--text-bright)}.blackbox-status{font-family:var(--mono);margin-top:.8rem}.blackbox-status td{font-size:.75rem}.field-label{display:block;margin:.35rem 0 .2rem;color:var(--text-dim);font-size:.65rem;text-transform:uppercase;letter-spacing:1px;font-family:var(--mono)}.text-input,.text-area{width:100%;background:var(--bg);color:var(--text-bright);border:1px solid var(--border);font-family:var(--mono);font-size:.75rem;padding:.45rem .5rem;margin-bottom:.35rem;outline:none}.text-input:focus,.text-area:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim)}.text-area{resize:vertical;min-height:72px}@media(max-width:900px){.grid-2col,.reports-layout,.search-output{grid-template-columns:1fr}.header{flex-direction:column;align-items:flex-start;gap:.5rem}.search-hero{flex-direction:column}.search-hero-meta{justify-content:flex-start}}.section-divider{border:none;border-top:1px solid var(--border);margin:.4rem 0;opacity:.6}.status-dot{color:var(--green);font-family:var(--mono)}.status-dot.off{color:var(--red)}.shell{display:flex;min-height:100vh;max-width:1600px;margin:0 auto}.shell .main{flex:1;min-width:0;padding:1rem 1.25rem;display:flex;flex-direction:column}.shell .main .header{margin-bottom:.5rem}.sidebar{width:76px;flex-shrink:0;border-right:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,#ffffff08,#00000014),var(--surface);padding:.7rem .45rem;display:flex;flex-direction:column;align-items:center;gap:.45rem}.sidebar-icon-button{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.07);border-radius:14px;background:linear-gradient(180deg,#ffffff0a,#ffffff03);color:var(--text-bright);cursor:pointer;box-shadow:var(--glow-soft)}.sidebar-icon-button:hover{border-color:#ffffff29;transform:translateY(-1px)}.sidebar-icon-button.active{border-color:#ff9d3d80;box-shadow:0 16px 28px #00000047,0 0 0 1px #ff9d3d24 inset}.sidebar-home-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#ff9d3d47,#ff9d3d14);border:1px solid rgba(255,157,61,.36);border-radius:11px;color:#ffb36b;box-shadow:0 12px 24px #ff9d3d14,inset 0 0 0 1px #ffffff08}.column-badge{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-hover);border-radius:999px;background:var(--surface);color:var(--text-bright);font-size:.72rem;font-weight:700;flex-shrink:0}.sidebar-project-icon{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.07);border-radius:9px;color:var(--text-bright);font-size:.72rem;background:linear-gradient(180deg,#ffffff0d,#ffffff05);flex-shrink:0}.sidebar-add-button{color:var(--green);font-size:1rem}.sidebar-empty{display:none}.session-pane,.project-view{display:flex;flex-direction:column;gap:.6rem;height:100%}.session-head,.project-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--border);padding-bottom:.5rem}.session-title{font-size:1rem;color:var(--text-bright);font-family:var(--mono)}.session-flow{display:flex;flex-direction:column;gap:2px;align-items:flex-end}.session-flow select,.flow-mini,.project-head select{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.72rem;padding:2px 4px;border-radius:3px}.session-body{display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:0}.thread{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;flex:1;padding-right:.25rem}.msg{border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:.55rem .6rem;background:#ffffff05}.msg.user{border-left:2px solid var(--accent)}.msg.assistant{border-left:2px solid var(--green)}.msg.live{border-left-color:var(--yellow)}.msg-role{font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:.25rem}.msg-content{color:var(--text);white-space:pre-wrap;font-size:.8rem;line-height:1.55}.msg-content.mono{font-family:var(--mono);color:var(--text-dim);font-size:.72rem}.run-trace{display:flex;flex-direction:column;gap:2px;margin-top:.4rem}.run-step{display:flex;gap:.4rem;align-items:baseline;font-size:.72rem;padding:2px 4px;border-radius:3px;background:var(--bg)}.run-step.skipped{opacity:.5}.run-step-tool{color:var(--green);font-weight:600}.run-step.skipped .run-step-tool{color:var(--yellow)}.run-step-label{color:var(--text)}.run-step-skip{color:var(--yellow);font-style:italic}.run-step-result{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-spinner{color:var(--yellow);font-size:.72rem;margin-top:.3rem}.composer{border-top:1px solid var(--border);padding-top:.5rem;display:flex;flex-direction:column;gap:.4rem}.composer .text-area{min-height:64px}.composer-extra{font-size:.7rem;color:var(--text-dim)}.composer-extra summary{cursor:pointer;padding:.2rem 0}.composer-extra .text-area{min-height:48px;margin-top:.3rem}.composer-actions{display:flex;justify-content:space-between;align-items:center}.flow-save{background:var(--green);color:var(--bg);border:none;border-radius:3px;cursor:pointer;font-family:var(--mono);font-size:.74rem;font-weight:600;padding:.35rem .9rem}.flow-save:disabled{opacity:.4;cursor:not-allowed}.session-workspace{display:flex;flex-direction:column;gap:.85rem}.session-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#58a6ff1f,#ff9d3d0a 42%,#ffffff05);padding:.95rem 1rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.session-hero-meta{display:flex;gap:.55rem;flex-wrap:wrap;font-size:.68rem;color:var(--text-dim);margin-top:.35rem}.session-hero-kpis{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:.55rem;min-width:420px}.session-kpi,.session-mini-kpi,.home-op-tile{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.55rem .6rem;display:flex;flex-direction:column;gap:.25rem;border-radius:var(--radius-md)}.session-kpi strong,.session-mini-kpi strong,.home-op-value{font-size:.82rem;color:var(--text-bright)}.session-grid-4{display:grid;grid-template-columns:.9fr 1.3fr 1fr 1fr;gap:.75rem;align-items:start}.session-column{display:flex;flex-direction:column;gap:.7rem;min-height:640px}.session-thread-column{min-width:0}.session-thread{display:flex;flex-direction:column;gap:.75rem;min-height:360px;max-height:640px;overflow-y:auto}.session-state-stack,.session-timeline,.session-notes-list,.session-plan-list{display:flex;flex-direction:column;gap:.45rem}.session-state-row,.policy-row,.session-plan-item{display:flex;justify-content:space-between;gap:.75rem;padding:.5rem .55rem;background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:10px}.session-state-row span,.policy-row span{color:var(--text-dim);text-transform:uppercase;font-size:.64rem;letter-spacing:.8px}.session-state-row strong,.policy-row strong{font-size:.76rem;color:var(--text-bright);text-align:right}.session-chip-row{display:flex;gap:.35rem;flex-wrap:wrap}.session-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-dim);padding:.18rem .4rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.6px}.session-state-block{display:flex;flex-direction:column;gap:.35rem}.session-copy{font-size:.76rem;line-height:1.55;color:var(--text)}.session-note-item{background:#ffffff05;border:1px solid rgba(255,255,255,.08);padding:.45rem .5rem;font-size:.74rem;line-height:1.45;color:var(--text)}.session-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.session-plan-box,.policy-box,.session-search-box{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff06,#0000000f);padding:.55rem .6rem;border-radius:var(--radius-md)}.session-search-results{display:flex;flex-direction:column;gap:.4rem;margin-top:.45rem}.session-plan-head{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;font-size:.74rem;color:var(--text-bright)}.mode-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.mode-card-btn{display:flex;flex-direction:column;gap:.2rem;align-items:flex-start;text-align:left;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);color:var(--text);padding:.55rem .6rem;cursor:pointer;font-family:var(--mono);font-size:.72rem;border-radius:12px;box-shadow:var(--glow-soft)}.mode-card-btn strong{color:var(--text-bright);font-size:.75rem}.mode-card-btn span{color:var(--text-dim);font-size:.66rem}.mode-card-btn:hover{border-color:var(--border-hover)}.mode-card-btn.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.mode-card-btn:disabled{opacity:.45;cursor:not-allowed}.session-action-grid{display:flex;gap:.45rem;flex-wrap:wrap}.session-plan-item{justify-content:flex-start;align-items:flex-start}.session-plan-item>span{min-width:22px;height:22px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--green);font-size:.7rem;background:var(--surface)}.home-ops-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}.home-mode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.home-mode-card{display:flex;flex-direction:column;gap:.45rem;min-height:150px}.home-mode-card.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.home-mode-head{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}.home-mode-name{font-size:.8rem;color:var(--text-bright)}.home-mode-pipeline{font-size:.66rem;color:var(--text-dim)}.home-mode-copy{font-size:.72rem;color:var(--text);line-height:1.5;flex:1}.home-mode-meta{display:flex;gap:.45rem;flex-wrap:wrap;font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.flow-editor{display:flex;flex-direction:column;gap:.5rem}.flow-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.flow-palette{display:flex;gap:3px;flex-wrap:wrap;flex:1}.flow-chip,.flow-pill-name{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:.68rem;padding:2px 6px;border-radius:3px}.flow-chip:hover{border-color:var(--green);color:var(--green)}.flow-hint{font-size:.72rem;color:var(--yellow)}.linkish,.flow-mini.link{background:transparent;border:none;color:var(--accent);cursor:pointer;font-family:var(--mono);font-size:.68rem;padding:0;text-decoration:underline}.flow-canvas{position:relative;min-height:340px;border:1px solid var(--border);border-radius:4px;background:var(--bg) repeating-linear-gradient(0deg,transparent,transparent 23px,var(--border) 24px),var(--bg) repeating-linear-gradient(90deg,transparent,transparent 23px,var(--border) 24px);background-blend-mode:normal;overflow:hidden;touch-action:none}.flow-edges{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.flow-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-dim);font-size:.75rem}.flow-node{position:absolute;background:var(--surface);border:1px solid var(--border-hover);border-radius:4px;font-size:.7rem;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #0006}.flow-node.linking{border-color:var(--accent)}.flow-node-head{display:flex;justify-content:space-between;align-items:center;padding:3px 6px;border-bottom:1px solid var(--border);cursor:grab;background:var(--bg)}.flow-node-tool{color:var(--green);font-weight:600}.flow-node.tool-condition .flow-node-tool{color:var(--accent)}.flow-node.tool-direct .flow-node-tool{color:var(--text-dim)}.flow-node-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.8rem;line-height:1}.flow-node-x:hover{color:var(--red)}.flow-node-body{display:flex;flex-direction:column;gap:3px;padding:4px 6px}.flow-mini{width:100%}.flow-preview{display:flex;gap:.5rem;align-items:baseline;font-size:.75rem}.flow-preview code{color:var(--green)}.flow-list-bar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.flow-pill{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:3px;overflow:hidden}.flow-pill.active{border-color:var(--green)}.flow-pill-name{border:none;border-radius:0}.flow-pill-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:2px 5px}.flow-pill-x:hover{color:var(--red)}.mono{font-family:var(--mono)}.home-view{display:flex;flex-direction:column;gap:.9rem}.home-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#58a6ff24,#ff9d3d0d 42%,#ffffff05);padding:.95rem 1rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.home-kicker{font-size:.64rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:.25rem}.home-hero h2{font-size:1.2rem;color:var(--text-bright);margin-bottom:.2rem}.home-hero p{font-size:.76rem;color:var(--text-dim);max-width:64ch;line-height:1.5}.home-hero-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.shell-link{background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:.72rem;padding:.35rem .7rem;border-radius:3px}.shell-link:hover{border-color:var(--green);color:var(--green)}.home-overview-grid,.home-detail-grid{display:grid;gap:.75rem}.home-overview-grid{grid-template-columns:1.1fr 1fr}.home-detail-grid{grid-template-columns:1.15fr .9fr;align-items:start}.home-summary-table{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .9rem}.home-summary-row{display:flex;justify-content:space-between;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--border)}.home-summary-label{color:var(--text-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.7px}.home-summary-value{color:var(--text-bright);font-size:.78rem}.home-recommendation{font-size:.84rem;line-height:1.55;color:var(--text-bright);margin-bottom:.85rem}.home-inline-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.home-inline-value{font-size:.75rem;color:var(--text);line-height:1.4}.home-current-session,.home-sessions-card{grid-column:1}.home-todos-card,.home-savings-card{grid-column:2}.home-session-head{display:flex;justify-content:space-between;gap:.5rem;align-items:center;margin-bottom:.45rem}.home-session-title{font-size:.9rem;color:var(--text-bright)}.home-metric-strip{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.68rem;color:var(--text-dim);margin:.4rem 0 .55rem}.home-tag-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.55rem}.home-tag{border:1px solid var(--border);padding:.15rem .35rem;font-size:.66rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.home-todo-list,.home-session-list{display:flex;flex-direction:column;gap:.45rem}.home-todo-item,.home-session-item{display:flex;justify-content:space-between;gap:.55rem;padding:.5rem .55rem;background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:11px}.home-todo-status{color:var(--yellow);font-size:.65rem;min-width:54px}.home-totals{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-dim);margin-top:.55rem}.home-money{font-size:1.45rem;color:var(--text-bright);font-weight:700}.home-money-sub{font-size:.72rem;color:var(--text-dim);margin-top:.2rem}.home-session-item.current{border-left:2px solid var(--green)}.home-session-item-title{font-size:.78rem;color:var(--text-bright);margin-bottom:.15rem}.home-session-item-meta{display:flex;flex-direction:column;gap:.2rem;font-size:.66rem;color:var(--text-dim);text-align:right}@media(max-width:760px){.shell{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border)}.home-overview-grid,.home-detail-grid,.home-inline-grid,.home-summary-table{grid-template-columns:1fr}.home-current-session,.home-sessions-card,.home-todos-card,.home-savings-card{grid-column:auto}.home-hero{flex-direction:column;align-items:flex-start}}@media(max-width:1280px){.session-grid-4{grid-template-columns:1fr 1fr}.session-column{min-height:auto}.home-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-ops-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:920px){.session-hero{flex-direction:column;align-items:flex-start}.session-hero-kpis{min-width:0;width:100%;grid-template-columns:1fr}.session-grid-4,.home-mode-grid,.home-ops-strip,.mode-control-grid,.session-kpi-grid{grid-template-columns:1fr}}.home-controls-strip{display:flex;gap:1.5rem;align-items:center;padding:.6rem .85rem;background:var(--surface);border:1px solid var(--border);margin-bottom:.75rem;flex-wrap:wrap}.home-controls-strip{background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.qc-group{display:flex;align-items:center;gap:.4rem}.qc-slot{font-family:var(--mono);font-size:.72rem;padding:2px 8px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer}.qc-slot.active{color:var(--green);border-color:var(--green)}.qc-slot:hover{border-color:var(--border-hover);color:var(--text)}.qc-model{font-family:var(--mono);font-size:.72rem;color:var(--text)}.qc-pill{font-family:var(--mono);font-size:.68rem;padding:1px 6px;font-weight:600;text-transform:uppercase}.qc-pill.on{color:var(--green)}.qc-pill.off{color:var(--text-dim)}.create-form{display:flex;gap:4px;align-items:center;padding:4px 8px}.create-input{flex:1;font-family:var(--mono);font-size:.72rem;background:var(--bg);border:1px solid var(--accent);color:var(--text);padding:2px 4px;outline:none}.create-ok{font-family:var(--mono);font-size:.68rem;color:var(--green);background:transparent;border:1px solid var(--green);padding:1px 5px;cursor:pointer}.create-ok:disabled{opacity:.4;cursor:default}.create-cancel{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;line-height:1}.sidebar-delete{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.7rem;padding:0 3px;line-height:1;opacity:.4}.sidebar-delete:hover{color:var(--red);opacity:1}.sidebar-session-row{display:flex;align-items:center}.sidebar-session-row .sidebar-item{flex:1}.thread{display:flex;flex-direction:column;gap:.75rem}.msg.user{align-self:flex-end;background:var(--accent-dim);border:1px solid rgba(88,166,255,.15);margin-left:20%}.msg.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border);margin-right:20%}.run-trace-details{margin-top:.4rem}.run-trace-details summary{font-size:.68rem;color:var(--text-dim);cursor:pointer;padding:.2rem 0;list-style:none;-webkit-user-select:none;user-select:none}.run-trace-details summary::-webkit-details-marker{display:none}.run-trace-details summary:before{content:"+ "}.run-trace-details[open] summary:before{content:"- "}@keyframes vibe-pulse{0%,to{opacity:1}50%{opacity:.3}}.run-spinner{font-size:.75rem;color:var(--accent);font-family:var(--mono);animation:vibe-pulse 1.2s infinite}.shell.shell-4col{display:flex;min-height:100vh;max-width:1600px;margin:0 auto}.workspace{flex:1;min-width:0;padding:1rem 1.1rem 1rem .9rem;display:flex;flex-direction:column;gap:.75rem}.workspace-header{margin-bottom:0}.workspace-grid{display:grid;grid-template-columns:1.05fr 1fr 1.35fr 1.1fr;gap:1rem;align-items:start}.workspace-column{min-width:0;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,#ffffff09,#ffffff03);padding:.2rem;border-radius:16px;box-shadow:var(--glow-soft)}.panel{padding:.8rem .85rem}.panel-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.65rem}.panel-head h3{margin-bottom:.05rem;font-family:var(--sans);font-size:.98rem;font-weight:700}.panel-head-copy{color:var(--text-dim);font-size:.7rem;line-height:1.45}.panel-action{white-space:nowrap;padding:.25rem .55rem}.project-sessions-panel{min-height:100%}.project-sessions-panel,.control-rail,.session-workspace{background:transparent;border:none;padding:.7rem .75rem}.project-session-list{display:flex;flex-direction:column;gap:.4rem}.project-session-link{display:flex;justify-content:space-between;align-items:center;gap:.85rem;width:100%;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff08,#ffffff03);color:var(--text);padding:.65rem .7rem;cursor:pointer;font-family:var(--sans);font-size:.78rem;text-align:left;border-radius:12px}.project-session-link:hover{border-color:var(--border-hover)}.project-session-link.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.project-session-link.current{background:#3fb9500a}.project-session-link-title{color:var(--text-bright);line-height:1.35}.project-session-link-meta{color:var(--text-dim);font-size:.64rem;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.control-rail{min-height:100%}.control-mode-summary{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.55rem}.control-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.75rem}.control-status{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.5rem .55rem;border-radius:12px}.control-status strong{display:block;color:var(--text-bright);font-size:.8rem;line-height:1.35}.control-flow-header,.control-kpi-strip{display:grid;grid-template-columns:1fr auto;gap:.4rem .6rem;align-items:center;margin-bottom:.45rem}.control-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.control-kpi-strip>div{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.48rem .5rem;border-radius:12px}.control-kpi-strip strong{display:block;color:var(--text-bright);font-size:.76rem}.control-flow-list{display:flex;flex-direction:column;gap:.35rem}.control-flow-step{display:flex;gap:.5rem;align-items:flex-start;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.48rem .5rem;border-radius:12px}.control-flow-step>span{min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);color:var(--green);font-size:.68rem;background:var(--surface)}.control-flow-step strong{color:var(--text-bright);font-size:.74rem}.control-flow-step .muted{font-size:.66rem;margin-top:.05rem}.session-hero-compact{padding:.65rem .75rem}.session-title{font-family:var(--sans);font-size:1.05rem;font-weight:700;color:var(--text-bright)}.session-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.session-actions-row{display:flex;gap:.45rem;flex-wrap:wrap}.session-actions-row .shell-link{padding:.3rem .55rem}.column-badge-row{display:flex;align-items:center;gap:.45rem}@media(max-width:1280px){.workspace-grid{grid-template-columns:1fr 1fr}}@media(max-width:920px){.workspace-grid,.session-mini-grid,.control-status-grid,.control-kpi-strip{grid-template-columns:1fr}}
@@ -1,3 +0,0 @@
1
- (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const l of i)if(l.type==="childList")for(const a of l.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&s(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const l={};return i.integrity&&(l.integrity=i.integrity),i.referrerPolicy&&(l.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?l.credentials="include":i.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function s(i){if(i.ep)return;i.ep=!0;const l=n(i);fetch(i.href,l)}})();const In=!1,Nn=(e,t)=>e===t,Ln=Symbol("solid-track"),Ct={equals:Nn};let on=un;const Je=1,Pt=2,an={owned:null,cleanups:null,context:null,owner:null},Rt={};var X=null;let qt=null,Rn=null,z=null,be=null,Ke=null,Dt=0;function kt(e,t){const n=z,s=X,i=e.length===0,l=t===void 0?s:t,a=i?an:{owned:null,cleanups:null,context:l?l.context:null,owner:l},o=i?e:()=>e(()=>Fe(()=>vt(a)));X=a,z=null;try{return We(o,!0)}finally{z=n,X=s}}function M(e,t){t=t?Object.assign({},Ct,t):Ct;const n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},s=i=>(typeof i=="function"&&(i=i(n.value)),dn(n,i));return[cn.bind(n),s]}function qn(e,t,n){const s=It(e,t,!0,Je);rt(s)}function se(e,t,n){const s=It(e,t,!1,Je);rt(s)}function zt(e,t,n){on=Hn;const s=It(e,t,!1,Je);s.user=!0,Ke?Ke.push(s):rt(s)}function _e(e,t,n){n=n?Object.assign({},Ct,n):Ct;const s=It(e,t,!0,0);return s.observers=null,s.observerSlots=null,s.comparator=n.equals||void 0,rt(s),cn.bind(s)}function Bn(e){return e&&typeof e=="object"&&"then"in e}function Gt(e,t,n){let s,i,l;typeof t=="function"?(s=e,i=t,l={}):(s=!0,i=e,l=t||{});let a=null,o=Rt,c=!1,d="initialValue"in l,m=typeof s=="function"&&_e(s);const u=new Set,[$,E]=(l.storage||M)(l.initialValue),[q,g]=M(void 0),[y,H]=M(void 0,{equals:!1}),[O,w]=M(d?"ready":"unresolved");function N(D,b,A,C){return a===D&&(a=null,C!==void 0&&(d=!0),(D===o||b===o)&&l.onHydrated&&queueMicrotask(()=>l.onHydrated(C,{value:b})),o=Rt,ie(b,A)),b}function ie(D,b){We(()=>{b===void 0&&E(()=>D),w(b!==void 0?"errored":d?"ready":"unresolved"),g(b);for(const A of u.keys())A.decrement();u.clear()},!1)}function oe(){const D=Vn,b=$(),A=q();if(A!==void 0&&!a)throw A;return z&&z.user,b}function k(D=!0){if(D!==!1&&c)return;c=!1;const b=m?m():s;if(b==null||b===!1){N(a,Fe($));return}let A;const C=o!==Rt?o:Fe(()=>{try{return i(b,{value:$(),refetching:D})}catch(V){A=V}});if(A!==void 0){N(a,void 0,xt(A),b);return}else if(!Bn(C))return N(a,C,void 0,b),C;return a=C,"v"in C?(C.s===1?N(a,C.v,void 0,b):N(a,void 0,xt(C.v),b),C):(c=!0,queueMicrotask(()=>c=!1),We(()=>{w(d?"refreshing":"pending"),H()},!1),C.then(V=>N(C,V,void 0,b),V=>N(C,void 0,xt(V),b)))}Object.defineProperties(oe,{state:{get:()=>O()},error:{get:()=>q()},loading:{get(){const D=O();return D==="pending"||D==="refreshing"}},latest:{get(){if(!d)return oe();const D=q();if(D&&!a)throw D;return $()}}});let R=X;return m?qn(()=>(R=X,k(!1))):k(!1),[oe,{refetch:D=>Mn(R,()=>k(D)),mutate:E}]}function Fe(e){if(z===null)return e();const t=z;z=null;try{return e()}finally{z=t}}function Un(e){zt(()=>Fe(e))}function Ft(e){return X===null||(X.cleanups===null?X.cleanups=[e]:X.cleanups.push(e)),e}function Mn(e,t){const n=X,s=z;X=e,z=null;try{return We(t,!0)}catch(i){Ht(i)}finally{X=n,z=s}}const[Qi,Yi]=M(!1);let Vn;function cn(){if(this.sources&&this.state)if(this.state===Je)rt(this);else{const e=be;be=null,We(()=>At(this),!1),be=e}if(z){const e=this.observers;if(!e||e[e.length-1]!==z){const t=e?e.length:0;z.sources?(z.sources.push(this),z.sourceSlots.push(t)):(z.sources=[this],z.sourceSlots=[t]),e?(e.push(z),this.observerSlots.push(z.sources.length-1)):(this.observers=[z],this.observerSlots=[z.sources.length-1])}}return this.value}function dn(e,t,n){let s=e.value;return(!e.comparator||!e.comparator(s,t))&&(e.value=t,e.observers&&e.observers.length&&We(()=>{for(let i=0;i<e.observers.length;i+=1){const l=e.observers[i],a=qt&&qt.running;a&&qt.disposed.has(l),(a?!l.tState:!l.state)&&(l.pure?be.push(l):Ke.push(l),l.observers&&fn(l)),a||(l.state=Je)}if(be.length>1e6)throw be=[],new Error},!1)),t}function rt(e){if(!e.fn)return;vt(e);const t=Dt;zn(e,e.value,t)}function zn(e,t,n){let s;const i=X,l=z;z=X=e;try{s=e.fn(t)}catch(a){return e.pure&&(e.state=Je,e.owned&&e.owned.forEach(vt),e.owned=null),e.updatedAt=n+1,Ht(a)}finally{z=l,X=i}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&"observers"in e?dn(e,s):e.value=s,e.updatedAt=n)}function It(e,t,n,s=Je,i){const l={fn:e,state:s,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:X,context:X?X.context:null,pure:n};return X===null||X!==an&&(X.owned?X.owned.push(l):X.owned=[l]),l}function jt(e){if(e.state===0)return;if(e.state===Pt)return At(e);if(e.suspense&&Fe(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<Dt);)e.state&&t.push(e);for(let n=t.length-1;n>=0;n--)if(e=t[n],e.state===Je)rt(e);else if(e.state===Pt){const s=be;be=null,We(()=>At(e,t[0]),!1),be=s}}function We(e,t){if(be)return e();let n=!1;t||(be=[]),Ke?n=!0:Ke=[],Dt++;try{const s=e();return Fn(n),s}catch(s){n||(Ke=null),be=null,Ht(s)}}function Fn(e){if(be&&(un(be),be=null),e)return;const t=Ke;Ke=null,t.length&&We(()=>on(t),!1)}function un(e){for(let t=0;t<e.length;t++)jt(e[t])}function Hn(e){let t,n=0;for(t=0;t<e.length;t++){const s=e[t];s.user?e[n++]=s:jt(s)}for(t=0;t<n;t++)jt(e[t])}function At(e,t){e.state=0;for(let n=0;n<e.sources.length;n+=1){const s=e.sources[n];if(s.sources){const i=s.state;i===Je?s!==t&&(!s.updatedAt||s.updatedAt<Dt)&&jt(s):i===Pt&&At(s,t)}}}function fn(e){for(let t=0;t<e.observers.length;t+=1){const n=e.observers[t];n.state||(n.state=Pt,n.pure?be.push(n):Ke.push(n),n.observers&&fn(n))}}function vt(e){let t;if(e.sources)for(;e.sources.length;){const n=e.sources.pop(),s=e.sourceSlots.pop(),i=n.observers;if(i&&i.length){const l=i.pop(),a=n.observerSlots.pop();s<i.length&&(l.sourceSlots[a]=s,i[s]=l,n.observerSlots[s]=a)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)vt(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)vt(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function xt(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function Ht(e,t=X){throw xt(e)}const Kn=Symbol("fallback");function Xt(e){for(let t=0;t<e.length;t++)e[t]()}function Jn(e,t,n={}){let s=[],i=[],l=[],a=0,o=t.length>1?[]:null;return Ft(()=>Xt(l)),()=>{let c=e()||[],d=c.length,m,u;return c[Ln],Fe(()=>{let E,q,g,y,H,O,w,N,ie;if(d===0)a!==0&&(Xt(l),l=[],s=[],i=[],a=0,o&&(o=[])),n.fallback&&(s=[Kn],i[0]=kt(oe=>(l[0]=oe,n.fallback())),a=1);else if(a===0){for(i=new Array(d),u=0;u<d;u++)s[u]=c[u],i[u]=kt($);a=d}else{for(g=new Array(d),y=new Array(d),o&&(H=new Array(d)),O=0,w=Math.min(a,d);O<w&&s[O]===c[O];O++);for(w=a-1,N=d-1;w>=O&&N>=O&&s[w]===c[N];w--,N--)g[N]=i[w],y[N]=l[w],o&&(H[N]=o[w]);for(E=new Map,q=new Array(N+1),u=N;u>=O;u--)ie=c[u],m=E.get(ie),q[u]=m===void 0?-1:m,E.set(ie,u);for(m=O;m<=w;m++)ie=s[m],u=E.get(ie),u!==void 0&&u!==-1?(g[u]=i[m],y[u]=l[m],o&&(H[u]=o[m]),u=q[u],E.set(ie,u)):l[m]();for(u=O;u<d;u++)u in g?(i[u]=g[u],l[u]=y[u],o&&(o[u]=H[u],o[u](u))):i[u]=kt($);i=i.slice(0,a=d),s=c.slice(0)}return i});function $(E){if(l[u]=E,o){const[q,g]=M(u);return o[u]=g,t(c[u],q)}return t(c[u])}}}function j(e,t){return Fe(()=>e(t||{}))}const Zn=e=>`Stale read from <${e}>.`;function me(e){const t="fallback"in e&&{fallback:()=>e.fallback};return _e(Jn(()=>e.each,e.children,t||void 0))}function $e(e){const t=e.keyed,n=_e(()=>e.when,void 0,void 0),s=t?n:_e(n,void 0,{equals:(i,l)=>!i==!l});return _e(()=>{const i=s();if(i){const l=e.children;return typeof l=="function"&&l.length>0?Fe(()=>l(t?i:()=>{if(!Fe(s))throw Zn("Show");return n()})):l}return e.fallback},void 0,void 0)}const it=e=>_e(()=>e());function Wn(e,t,n){let s=n.length,i=t.length,l=s,a=0,o=0,c=t[i-1].nextSibling,d=null;for(;a<i||o<l;){if(t[a]===n[o]){a++,o++;continue}for(;t[i-1]===n[l-1];)i--,l--;if(i===a){const m=l<s?o?n[o-1].nextSibling:n[l-o]:c;for(;o<l;)e.insertBefore(n[o++],m)}else if(l===o)for(;a<i;)(!d||!d.has(t[a]))&&t[a].remove(),a++;else if(t[a]===n[l-1]&&n[o]===t[i-1]){const m=t[--i].nextSibling;e.insertBefore(n[o++],t[a++].nextSibling),e.insertBefore(n[--l],m),t[i]=n[l]}else{if(!d){d=new Map;let u=o;for(;u<l;)d.set(n[u],u++)}const m=d.get(t[a]);if(m!=null)if(o<m&&m<l){let u=a,$=1,E;for(;++u<i&&u<l&&!((E=d.get(t[u]))==null||E!==m+$);)$++;if($>m-o){const q=t[a];for(;o<m;)e.insertBefore(n[o++],q)}else e.replaceChild(n[o++],t[a++])}else a++;else t[a++].remove()}}}const Qt="_$DX_DELEGATE";function Gn(e,t,n,s={}){let i;return kt(l=>{i=l,t===document?e():r(t,e(),t.firstChild?null:void 0,n)},s.owner),()=>{i(),t.textContent=""}}function x(e,t,n,s){let i;const l=()=>{const o=document.createElement("template");return o.innerHTML=e,o.content.firstChild},a=()=>(i||(i=l())).cloneNode(!0);return a.cloneNode=a,a}function ot(e,t=window.document){const n=t[Qt]||(t[Qt]=new Set);for(let s=0,i=e.length;s<i;s++){const l=e[s];n.has(l)||(n.add(l),t.addEventListener(l,Yn))}}function gt(e,t,n){n==null?e.removeAttribute(t):e.setAttribute(t,n)}function de(e,t){t==null?e.removeAttribute("class"):e.className=t}function mt(e,t,n,s){Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n}function Xn(e,t,n){if(!t)return n?gt(e,"style"):t;const s=e.style;if(typeof t=="string")return s.cssText=t;typeof n=="string"&&(s.cssText=n=void 0),n||(n={}),t||(t={});let i,l;for(l in n)t[l]==null&&s.removeProperty(l),delete n[l];for(l in t)i=t[l],i!==n[l]&&(s.setProperty(l,i),n[l]=i);return n}function Qn(e,t,n){return Fe(()=>e(t,n))}function r(e,t,n,s){if(n!==void 0&&!s&&(s=[]),typeof t!="function")return Tt(e,t,s,n);se(i=>Tt(e,t(),i,n),s)}function Yn(e){let t=e.target;const n=`$$${e.type}`,s=e.target,i=e.currentTarget,l=c=>Object.defineProperty(e,"target",{configurable:!0,value:c}),a=()=>{const c=t[n];if(c&&!t.disabled){const d=t[`${n}Data`];if(d!==void 0?c.call(t,d,e):c.call(t,e),e.cancelBubble)return}return t.host&&typeof t.host!="string"&&!t.host._$host&&t.contains(e.target)&&l(t.host),!0},o=()=>{for(;a()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),e.composedPath){const c=e.composedPath();l(c[0]);for(let d=0;d<c.length-2&&(t=c[d],!!a());d++){if(t._$host){t=t._$host,o();break}if(t.parentNode===i)break}}else o();l(s)}function Tt(e,t,n,s,i){for(;typeof n=="function";)n=n();if(t===n)return n;const l=typeof t,a=s!==void 0;if(e=a&&n[0]&&n[0].parentNode||e,l==="string"||l==="number"){if(l==="number"&&(t=t.toString(),t===n))return n;if(a){let o=n[0];o&&o.nodeType===3?o.data!==t&&(o.data=t):o=document.createTextNode(t),n=st(e,n,s,o)}else n!==""&&typeof n=="string"?n=e.firstChild.data=t:n=e.textContent=t}else if(t==null||l==="boolean")n=st(e,n,s);else{if(l==="function")return se(()=>{let o=t();for(;typeof o=="function";)o=o();n=Tt(e,o,n,s)}),()=>n;if(Array.isArray(t)){const o=[],c=n&&Array.isArray(n);if(Ut(o,t,n,i))return se(()=>n=Tt(e,o,n,s,!0)),()=>n;if(o.length===0){if(n=st(e,n,s),a)return n}else c?n.length===0?Yt(e,o,s):Wn(e,n,o):(n&&st(e),Yt(e,o));n=o}else if(t.nodeType){if(Array.isArray(n)){if(a)return n=st(e,n,s,t);st(e,n,null,t)}else n==null||n===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}}return n}function Ut(e,t,n,s){let i=!1;for(let l=0,a=t.length;l<a;l++){let o=t[l],c=n&&n[e.length],d;if(!(o==null||o===!0||o===!1))if((d=typeof o)=="object"&&o.nodeType)e.push(o);else if(Array.isArray(o))i=Ut(e,o,c)||i;else if(d==="function")if(s){for(;typeof o=="function";)o=o();i=Ut(e,Array.isArray(o)?o:[o],Array.isArray(c)?c:[c])||i}else e.push(o),i=!0;else{const m=String(o);c&&c.nodeType===3&&c.data===m?e.push(c):e.push(document.createTextNode(m))}}return i}function Yt(e,t,n=null){for(let s=0,i=t.length;s<i;s++)e.insertBefore(t[s],n)}function st(e,t,n,s){if(n===void 0)return e.textContent="";const i=s||document.createTextNode("");if(t.length){let l=!1;for(let a=t.length-1;a>=0;a--){const o=t[a];if(i!==o){const c=o.parentNode===e;!l&&!a?c?e.replaceChild(i,o):e.insertBefore(i,n):c&&o.remove()}else l=!0}}else e.insertBefore(i,n);return[i]}function F(e){return JSON.parse(JSON.stringify(e))}function tt(){return new Date().toISOString()}function en(e){return`$${e.toFixed(2)}`}const St="proj_dashboard",lt="sess_vibeultra_exec",Bt="flow_tdd_live",et={recommended_next_action:"Resolve the API wiring, run the TDD flow, then verify the desktop 4-column session workspace.",recommended_label:"TDD Flow Plan",reason:"The dashboard must expose a strict deterministic execution path before allowing further session work.",confidence:.92,flow:!0,steps:[{tool:"plan",label:"Resolve execution plan",reason:"Lock the next structured steps before any run."},{tool:"tdd",label:"Write failing expectation",reason:"Capture KPI, mode, and deterministic UI behavior in testable form."},{tool:"implement",label:"Wire API-backed session controls",reason:"Surface live mode, lock, policy, and plan data."},{tool:"web_search",label:"Ground research when needed",reason:"Only use structured search steps inside the session."},{tool:"verify",label:"Run preview and inspect layout",reason:"Confirm Home and 4-column workspace render operationally."}],signals:{deterministic_execution_policy:"strict-deterministic",requested_optimization_mode:"vibeultrax",effective_optimization_mode:"vibeultrax",effective_slot:"brain"},capabilities:{web_search:!0,tdd:!0,vibeultrax:!0}},h={status:{enabled:!0,active_slot:"brain",enforce:!0,flow_enforcer:!0,flow_extract_todos:!0,tdd_enforcer:!0,tdd_strict:!0,thinking:"full",current_model:"openai/gpt-5",current_provider:"OpenAI",current_quality_tier:"brain",credit_percent:72,version:"preview",backend_connected:!1,backendConnected:!1,backend_api_url:"https://api.vibetheog.com/api/v1",backend_health_url:"https://api.vibetheog.com/health",backend_health_checked_at:tt(),backend_health_age_ms:0,backend_health_latency_ms:null,backend_health_status:null,backend_health_error:"preview fallback",backend_version:null,api_fallback:!0,api_fallback_since:tt(),model_locked:!0,locked_slot:"brain",locked_model:"openai/gpt-5",optimization_mode:"vibeultrax",recommended_next_action:"Open the active session and run the TDD flow plan.",orchestration_plan:F(et),tiers:null,label_modes:["vibeultrax","vibeqmax","vibemax","vibelitex","raw"],todos:{total:6,pending:4},current_project_fingerprint:"dashboard/home-4col",current_project_name:"Dashboard Control Center",reality_check_enabled:!0,reality_check_scope:"project",reality_check_project_id:St,reality_check_rules_count:3},savings:{lifetime:{delegation_usd:18.34,cache_usd:9.81,missed_context7_usd:2.15,total_warns:7},current_session:{delegation_usd:4.62,cache_usd:1.28,warns_count:1,tool_breakdown:{plan:2.1,tdd:1.7,web_search:.8,verify:1.3}},cache_hits_this_session:14,trend:"up",savings_rate_per_hour:3.9},capabilities:{web_search:{enabled:!0,provider:"api",fixture_mode:!0},compression:{enabled:!0,provider:"local"},tdd:{enabled:!0,provider:"local"},blackbox:{enabled:!0,provider:"local"},vibemax:{enabled:!0,provider:"local"},vibeqmax:{enabled:!0,provider:"local"},vibeultrax:{enabled:!0,provider:"local"},vibelitex:{enabled:!0,provider:"local"},raw:{enabled:!0,provider:"local"}},projects:[{id:St,name:"Dashboard Control Center",fingerprint:"dashboard/home-4col",default_flow_id:Bt,created_at:"2026-07-03T12:30:00.000Z",updated_at:"2026-07-03T15:05:00.000Z"}],sessions:[{id:lt,project_id:St,title:"Executive Home + Deterministic Session Rail",flow_id:Bt,created_at:"2026-07-03T12:45:00.000Z",updated_at:"2026-07-03T15:06:00.000Z"}],flows:[{id:Bt,scope:"project",project_id:St,name:"TDD Flow Plan",graph:{nodes:[{id:"plan",tool:"plan",label:"Resolve plan"},{id:"tdd",tool:"tdd",label:"Write failing expectation"},{id:"implement",tool:"implement",label:"Implement dashboard changes"},{id:"verify",tool:"verify",label:"Preview and validate"}],edges:[{from:"plan",to:"tdd"},{from:"tdd",to:"implement"},{from:"implement",to:"verify"}]},created_at:"2026-07-03T12:40:00.000Z",updated_at:"2026-07-03T15:02:00.000Z"}],messages:{[lt]:[{id:"msg_user_1",role:"user",content:"Build the executive home, wire the 4-column operational session UI, and keep deterministic execution only.",plan:F(et),results:null,created_at:"2026-07-03T12:46:00.000Z"},{id:"msg_assistant_1",role:"assistant",content:"Resolved plan: Home KPIs first, then session rail, then API wiring, then preview verification.",plan:F(et),results:[{step:et.steps[0],result:{ok:!0,state:"resolved"}},{step:et.steps[1],result:{ok:!0,tests:"drafted"}},{step:et.steps[2],result:{ok:!0,controls:"api-backed"}}],created_at:"2026-07-03T12:49:00.000Z"}]},reports:[{id:"report_preview_audit",type:"audit",summary:"Preview fallback is active because the backend is unavailable; UI remains interactive.",created:"2026-07-03T15:00:00.000Z",tags:["preview","dashboard","fallback"]}],sessionState:{status:"active",locked:!0,archived:!1,optimization_mode:"vibeultrax",recommendation:"Run the structured TDD flow once the API is healthy, or continue in preview mode for layout verification.",lifecycle:{created_at:"2026-07-03T12:45:00.000Z",paused_at:null,resumed_at:"2026-07-03T13:10:00.000Z",archived_at:null,checked_out_at:"2026-07-03T15:06:00.000Z"},notes:[{text:"Column 4 is the authority rail for mode, plan, lock, and policy."},{text:"Sub-regimes such as speed, audit, forensic, and longrun are not top-level vibe modes."}],tags:["home","session","deterministic","tdd","web-search"],template:{id:"tdd-flow-plan",label:"TDD Flow Plan",body:"Plan -> TDD -> Implement -> Verify",signature:"preview-template",revision:4,source:"preview"},blackbox:{enabled:!0,sub_regime:"audit",resolution:"strict deterministic",momentum:84,loop_count:3}}};function es(){return h.projects[0]}function ts(){return h.sessions[0]}function yt(){const e=ts(),t=es();return{title:e.title,session_id:e.id,status:h.sessionState.status,locked:h.sessionState.locked,archived:h.sessionState.archived,project_name:t.name,project_fingerprint:t.fingerprint,started_at:h.sessionState.lifecycle.created_at,cost_usd:2.41,delegation_savings_usd:h.savings.current_session.delegation_usd,cache_savings_usd:h.savings.current_session.cache_usd,notes_count:h.sessionState.notes.length,tags:F(h.sessionState.tags),template:F(h.sessionState.template),optimization_mode:h.sessionState.optimization_mode,orchestration_plan:F(et),blackbox:F(h.sessionState.blackbox),recommendation:h.sessionState.recommendation,notes:F(h.sessionState.notes),lifecycle:F(h.sessionState.lifecycle),orchestration:{effective_optimization_mode:h.sessionState.optimization_mode,requested_optimization_mode:h.sessionState.optimization_mode,effective_slot:h.status.active_slot,deterministic_execution_policy:"strict-deterministic",resolved_plan_metadata:{source:"preview",strict:!0,generated_at:tt()},mode_capabilities:F(h.capabilities)}}}function ns(){var s;const e=yt(),t=h.savings.lifetime.delegation_usd+h.savings.lifetime.cache_usd,n=e.delegation_savings_usd+e.cache_savings_usd;return{home:{title:"Executive Operational Home",subtitle:"Main KPIs, current deterministic session, and next structured action.",recommendation:"Open the active session and continue the TDD Flow Plan from the deterministic rail.",cards:[{label:"Active project",value:e.project_name},{label:"Active session",value:e.title},{label:"Vibe mode",value:"VibeUltraX"},{label:"Slot",value:h.status.active_slot},{label:"Model",value:h.status.current_model},{label:"Lock state",value:h.sessionState.locked?"locked":"mutable"},{label:"Backend",value:h.status.backend_connected?"live":"preview fallback"},{label:"Session cost",value:en(e.cost_usd)},{label:"Session savings",value:en(n)},{label:"Pending TODOs",value:String(((s=h.status.todos)==null?void 0:s.pending)||0)}]},savings:F(h.savings),todos:[{id:"todo_1",status:"pending",title:"Verify Home KPI density"},{id:"todo_2",status:"pending",title:"Validate 4-column desktop layout"},{id:"todo_3",status:"pending",title:"Confirm mode rail exposes all branded vibe modes"},{id:"todo_4",status:"pending",title:"Check blocked-state messaging for unsupported actions"}],current_session:e,template_editor:{enabled:!0,session_id:e.session_id,template:F(h.sessionState.template),templates:[F(h.sessionState.template)],can_edit:!1,can_version:!1,version:4,history:[]},sessions:[{session_id:e.session_id,is_current:!0,started_at:e.started_at,cost_usd:e.cost_usd,delegation_savings_usd:e.delegation_savings_usd,cache_savings_usd:e.cache_savings_usd,status:e.status,locked:e.locked,archived:e.archived,tags:F(e.tags),notes_count:e.notes_count,template_label:e.template.label||e.template.id,template_signature:e.template.signature||null,recommendation:e.recommendation}],templates:[F(h.sessionState.template)],session_actions:["start","pause","resume","lock","unlock","archive","undo"],totals:{total_sessions:h.sessions.length,total_savings_usd:t,current_session_savings_usd:n,pending_todos:4},status:F(h.status),blackbox:{sub_regime:h.sessionState.blackbox.sub_regime,resolution:h.sessionState.blackbox.resolution},backend_connected:h.status.backend_connected,backend_status:h.status.backend_connected?"online":"preview fallback",backend_health_url:h.status.backend_health_url,backend_version:h.status.backend_version}}function ss(){var n;if(typeof window>"u")return!1;const e=String(((n=window.localStorage)==null?void 0:n.getItem("vibeos.dashboard.preview"))||"").toLowerCase();if(e==="1"||e==="true"||e==="on")return!0;const t=window.location.hostname;return t==="127.0.0.1"||t==="localhost"}function is(){return F(h.status)}function ls(){return F(h.savings)}function rs(){return F(h.capabilities)}function os(){return F(h.projects)}function as(e){const t=e?h.sessions.filter(n=>n.project_id===e):h.sessions;return F(t)}function cs(e){const t=e?h.flows.filter(n=>n.project_id===e||n.scope==="global"):h.flows;return F(t)}function ds(e){return F(h.messages[e]||[])}function us(){return F(h.reports)}function fs(){return ns()}function Mt(e){return e!==lt?{session:yt(),metrics:{},orchestration:null}:{session:yt(),metrics:{session_savings_usd:h.savings.current_session.delegation_usd+h.savings.current_session.cache_usd,session_cost_usd:2.41,strict_policy:"strict-deterministic",effective_slot:h.status.active_slot,requested_optimization_mode:h.sessionState.optimization_mode,effective_optimization_mode:h.sessionState.optimization_mode},orchestration:F(yt().orchestration)}}function hs(e,t){return e==="mode"&&t?(h.status.optimization_mode=t,h.sessionState.optimization_mode=t,h.status.recommended_next_action=`Mode switched to ${t}. Continue with the structured TDD flow.`,{ok:!0,result:{optimization_mode:t}}):e==="set"&&t?(h.status.active_slot=t,h.status.current_quality_tier=t,h.status.model_locked=!0,h.status.locked_slot=t,{ok:!0,result:{active_slot:t}}):{ok:!0,result:{action:e,slot:t}}}function ms(e,t){const n=h.sessions.find(s=>s.id===e)||h.sessions[0];return typeof t.title=="string"&&(n.title=t.title),"flow_id"in t&&(n.flow_id=t.flow_id??null),n.updated_at=tt(),F(n)}function _s(e,t){return e!==lt||(t==="lock"?(h.sessionState.locked=!0,h.status.model_locked=!0):t==="unlock"?(h.sessionState.locked=!1,h.status.model_locked=!1):t==="pause"?(h.sessionState.status="paused",h.sessionState.lifecycle.paused_at=tt()):t==="resume"||t==="start"?(h.sessionState.status="active",h.sessionState.lifecycle.resumed_at=tt()):t==="archive"?(h.sessionState.archived=!0,h.sessionState.status="archived",h.sessionState.lifecycle.archived_at=tt()):t==="undo"&&(h.sessionState.archived=!1,h.sessionState.status="active",h.sessionState.lifecycle.archived_at=null),h.sessionState.recommendation=`Last structured action: ${t}. Preview state updated locally.`),Mt(lt)}function bs(e){const t=e.trim()||"dashboard deterministic session";return{ok:!0,query:t,provider:"preview-fixture",results:[{id:"1",title:"Structured execution patterns for operational dashboards",url:"https://example.com/structured-execution",domain:"example.com",snippet:"Operational dashboards keep the execution plan, hard state, and KPI signals visible in the same workspace.",source:"preview",rank:1},{id:"2",title:"TDD planning in live orchestration UIs",url:"https://example.com/tdd-orchestration",domain:"example.com",snippet:"A deterministic control rail should expose the active plan before execution starts.",source:"preview",rank:2},{id:"3",title:"Session command centers with strict blocked-state messaging",url:"https://example.com/blocked-state",domain:"example.com",snippet:"Unsupported actions should fail explicitly when strict mode is active.",source:"preview",rank:3}],citations:[{id:1,title:"Structured execution patterns for operational dashboards",url:"https://example.com/structured-execution",domain:"example.com"},{id:2,title:"TDD planning in live orchestration UIs",url:"https://example.com/tdd-orchestration",domain:"example.com"},{id:3,title:"Session command centers with strict blocked-state messaging",url:"https://example.com/blocked-state",domain:"example.com"}],answer:`Preview search answer for "${t}": keep the Home screen KPI-dense, expose all branded vibe modes in column 4, render the resolved TDD flow plan before execution, and block unsupported actions under strict deterministic policy.`,meta:{resultCount:3,uniqueDomains:1}}}const Kt=typeof window<"u"?window:{},_t=Kt.__VIBEOS_DASHBOARD_BASE__??"",Vt=Kt.__VIBEOS_DASHBOARD_TOKEN__??"";let wt=null;function Jt(){const e={"Content-Type":"application/json"};return Vt&&(e.Authorization="Bearer "+Vt),e}async function Se(e,t){const n=await fetch(_t+e,{headers:Jt(),...t});if(!n.ok)throw new Error(`API ${n.status}: ${n.statusText}`);return n.json()}function Et(e){return String(e||"").trim().replace(/\/$/,"")}function Ot(e){return Et(e).replace(/\/api\/v1$/,"")}function vs(e){const t=Et(e);if(!t)return"";try{const n=new URL(t,typeof window<"u"?window.location.origin:"http://127.0.0.1");return n.pathname.endsWith("/health")&&(n.pathname=n.pathname.slice(0,-7)||"/"),Ot(n.href)}catch{return Ot(t.replace(/\/health$/,""))}}async function hn(){const e=Ot(Kt.__VIBEOS_BACKEND_API_BASE__);if(e)return e;if(_t){const t=Et(_t).replace(/\/api\/v1\/dashboard$/,"");if(t!==Et(_t))return t}return wt||(wt=(async()=>{try{const t=await Se("/status"),n=Ot(t.backend_api_url);if(n)return n;const s=vs(t.backend_health_url);if(s)return s}catch{}return"https://api.vibetheog.com"})(),wt)}async function mn(e,t){const n=await hn(),s=await fetch(n+e,{headers:Jt(),...t});if(!s.ok)throw new Error(`API ${s.status}: ${s.statusText}`);return s.json()}async function we(e,t){try{return await e()}catch(n){if(ss())return await t();throw n}}function _n(){return we(()=>Se("/status"),()=>is())}function bn(){return we(()=>Se("/savings"),()=>ls())}function ps(){return we(()=>Se("/sessions"),()=>({sessions:[],total_sessions:0}))}function gs(){return we(()=>Se("/reports"),()=>us())}function vn(){return we(()=>Se("/capabilities"),()=>rs())}function pn(){return we(()=>Se("/dashboard/home"),()=>fs())}function gn(e){return we(()=>Se(`/sessions/${encodeURIComponent(e)}`),()=>Mt(e))}function bt(e,t,n,s){const i={action:e};return t&&(i.slot=t),n&&(i.level=n),s&&(i.token=s),we(()=>Se("/trinity",{method:"POST",body:JSON.stringify(i)}),()=>hs(e,t))}function $s(e,t){return we(()=>Se(`/sessions/${encodeURIComponent(e)}/action`,{method:"POST",body:JSON.stringify(t)}),()=>{const n=_s(e,String(t.action||""));return{ok:!0,session:n.session,metrics:n.metrics,orchestration:n.orchestration??null}})}function Ss(e="global",t){const n=new URLSearchParams;return n.set("scope",e),t&&n.set("project_id",t),Se(`/reality-check?${n.toString()}`)}function ws(e){return Se("/reality-check",{method:"POST",body:JSON.stringify(e)})}function ks(e){return we(()=>Se("/web-search",{method:"POST",body:JSON.stringify(e)}),()=>bs(e.query))}async function xs(e){const t=e||"https://api.vibetheog.com/health";try{return(await fetch(t,{signal:AbortSignal.timeout(3e3)})).ok}catch{return!1}}function $n(e){let t=!1;if(Vt){let i=null;const l=async()=>{try{const[a,o]=await Promise.all([Se("/status"),Se("/savings")]);t||e({status:a,savings:o})}catch{}};return l(),i=setInterval(l,3e3),()=>{t=!0,i&&clearInterval(i)}}let n=null;function s(){if(t)return;const i=new EventSource(_t+"/events");i.onmessage=l=>{try{const a=JSON.parse(l.data);t||e(a)}catch{}},i.onerror=()=>{i.close(),t||(n=setTimeout(s,3e3))}}return s(),()=>{t=!0,n&&clearTimeout(n)}}function ys(e,t){return mn("/api/v1/blackbox/analyze",{method:"POST",body:JSON.stringify({session_id:e,project_id:t.project_id||null,user_text:t.userText||"",features:t.features||{},action:t.action||"explore",entropy:t.entropy??1,uncertainty:t.uncertainty??50,embedding:t.embedding||null,optimization_mode:t.optimizationMode||"auto"})})}async function Ne(e,t){return mn(`/api/v1/orchestrator${e}`,t)}function Sn(){return we(()=>Ne("/projects"),()=>({projects:os()}))}function wn(e,t){return Ne("/projects",{method:"POST",body:JSON.stringify({name:e,fingerprint:t})})}function Cs(e,t){return Ne(`/projects/${e}`,{method:"PUT",body:JSON.stringify(t)})}function kn(e){return Ne(`/projects/${e}`,{method:"DELETE"})}function xn(e){return we(()=>Ne(`/sessions${e?`?project_id=${encodeURIComponent(e)}`:""}`),()=>({sessions:as(e)}))}function Ps(e,t,n){return Ne("/sessions",{method:"POST",body:JSON.stringify({project_id:e,title:t,flow_id:n??null})})}function js(e,t){return we(()=>Ne(`/sessions/${e}`,{method:"PUT",body:JSON.stringify(t)}),()=>({session:ms(e,t)}))}function As(e){return Ne(`/sessions/${e}`,{method:"DELETE"})}function yn(e){return we(()=>Ne(`/sessions/${e}/messages`),()=>({messages:ds(e)}))}function Cn(e){return we(()=>Ne(`/flows${e?`?project_id=${encodeURIComponent(e)}`:""}`),()=>({flows:cs(e)}))}function Ts(e,t,n="global",s){return Ne("/flows",{method:"POST",body:JSON.stringify({name:e,graph:t,scope:n,project_id:s})})}function Es(e,t){return Ne(`/flows/${e}`,{method:"PUT",body:JSON.stringify(t)})}function Os(e){return Ne(`/flows/${e}`,{method:"DELETE"})}function Pn(e,t,n){const s=new AbortController;return(async()=>{var d,m,u;const i=await hn(),l=await fetch(i+`/api/v1/orchestrator/sessions/${e}/run`,{method:"POST",headers:Jt(),body:JSON.stringify(t),signal:s.signal});if(!l.ok||!l.body){(d=n.onError)==null||d.call(n,new Error(`run failed: ${l.status}`));return}const a=l.body.getReader(),o=new TextDecoder;let c="";for(;;){const{done:$,value:E}=await a.read();if($)break;c+=o.decode(E,{stream:!0});let q;for(;(q=c.indexOf(`
2
-
3
- `))>=0;){const g=c.slice(0,q);c=c.slice(q+2);const y=(m=g.match(/event: (.*)/))==null?void 0:m[1],H=g.slice(g.indexOf("data: ")+6);if(!(!y||g.indexOf("data: ")<0))try{n.onEvent(y,JSON.parse(H))}catch{}}}(u=n.onDone)==null||u.call(n)})().catch(i=>{var l;(i==null?void 0:i.name)!=="AbortError"&&((l=n.onError)==null||l.call(n,i))}),()=>s.abort()}const Ds=Object.freeze(Object.defineProperty({__proto__:null,blackboxAnalyze:ys,checkBackendHealth:xs,createFlow:Ts,createProject:wn,createSession:Ps,deleteFlow:Os,deleteProject:kn,deleteSession:As,fetchCapabilities:vn,fetchDashboardHome:pn,fetchRealityCheck:Ss,fetchReports:gs,fetchSavings:bn,fetchSessionDetail:gn,fetchSessions:ps,fetchStatus:_n,listFlows:Cn,listMessages:yn,listProjects:Sn,listSessions:xn,openSSE:$n,postSessionAction:$s,postTrinity:bt,runSession:Pn,saveRealityCheck:ws,updateFlow:Es,updateProject:Cs,updateSession:js,webSearch:ks},Symbol.toStringTag,{value:"Module"})),Is="home";function Ns(e){const t=String((e==null?void 0:e.name)||"").trim(),n=String((e==null?void 0:e.fingerprint)||"").trim(),s=`${t} ${n}`.toLowerCase();if(/\b(cli|terminal|shell|console)\b/.test(s))return{glyph:"⌘",label:"CLI"};if(/\b(api|backend|server)\b/.test(s))return{glyph:"◫",label:"API"};if(/\b(web|site|frontend|dashboard|ui|home)\b/.test(s))return{glyph:"◩",label:"UI"};if(/\b(app|desktop|mobile)\b/.test(s))return{glyph:"▣",label:"App"};const i=t.split(/[^A-Za-z0-9]+/).filter(Boolean).slice(0,2).map(c=>{var d;return((d=c[0])==null?void 0:d.toUpperCase())||""}).join("");if(i)return{glyph:i,label:t||i};const l=n||t||"project",a=["◆","◈","◉","▣","⬢","◬"];let o=0;for(const c of l)o=o*31+c.charCodeAt(0)>>>0;return{glyph:a[o%a.length],label:t||"Project"}}function Ls(e){var l,a;const t=Array.isArray(e.flows)?e.flows:[],n=(l=e.session)!=null&&l.flow_id&&t.find(o=>{var c;return o.id===((c=e.session)==null?void 0:c.flow_id)})||null;if(n)return`${n.name}${n.scope==="project"?" (session override)":" (global)"}`.trim();const s=(a=e.project)!=null&&a.default_flow_id&&t.find(o=>{var c;return o.id===((c=e.project)==null?void 0:c.default_flow_id)})||null;if(s)return`${s.name}${s.scope==="project"?" (project default)":" (global default)"}`.trim();const i=t.find(o=>o.scope==="global");return i?`${i.name} (global default)`:"No default flow"}var Rs=x("<div class=create-form><input class=create-input><button class=create-ok>ok</button><button class=create-cancel>x");function qs(e){const[t,n]=M("");let s;return Un(()=>s==null?void 0:s.focus()),(()=>{var i=Rs(),l=i.firstChild,a=l.nextSibling,o=a.nextSibling;l.$$keydown=d=>{d.key==="Enter"&&t().trim()&&e.onSubmit(t().trim()),d.key==="Escape"&&e.onCancel()},l.$$input=d=>n(d.currentTarget.value);var c=s;return typeof c=="function"?Qn(c,l):s=l,a.$$click=()=>{t().trim()&&e.onSubmit(t().trim())},mt(o,"click",e.onCancel),se(d=>{var m=e.placeholder,u=!t().trim();return m!==d.e&&gt(l,"placeholder",d.e=m),u!==d.t&&(a.disabled=d.t=u),d},{e:void 0,t:void 0}),se(()=>l.value=t()),i})()}ot(["input","keydown","click"]);var Bs=x('<aside class=sidebar><div class=sidebar-brand><div class="sidebar-brand-mark sidebar-home-icon"title="Dashboard home">⌂</div><div><div class=sidebar-brand-title>opencode</div><div class=sidebar-brand-subtitle>dashboard</div></div></div><div class=sidebar-column-label><span class=sidebar-column-num>1</span><div><div class=sidebar-column-title>Home / Projects</div><div class=sidebar-column-copy>home first, projects second</div></div></div><button><span class=sidebar-home-button-icon aria-hidden=true>⌂</span><span class=sidebar-home-button-copy><span class=sidebar-home-button-title>Home</span><span class=sidebar-home-button-subtitle>dashboard overview</span></span></button><div class=sidebar-home-card><div class=sidebar-section-label>main info</div><div class=sidebar-home-title></div><p class=sidebar-home-copy></p><div class=sidebar-home-metrics><span>mode </span><span>slot </span><span>model </span><span>backend </span></div><div class=sidebar-home-metrics><span>session </span><span>savings </span><span>todos </span></div></div><div class=sidebar-section-head><span class=sidebar-section-label>projects</span><button class=sidebar-add title="New project">+'),Us=x("<div class=sidebar-empty>no projects — click + to create one"),Ms=x('<div class=sidebar-project><div class=sidebar-project-row><span class=sidebar-project-icon></span><button></button><button class=sidebar-delete title="Delete project">x');function tn(e,t){return e.kind!==t.kind?!1:e.kind==="home"||e.kind==="status"?!0:e.kind==="project"&&t.kind==="project"?e.projectId===t.projectId:e.kind==="session"&&t.kind==="session"?e.sessionId===t.sessionId:!1}function Vs(e){const t=`${e.name}|${e.fingerprint||e.id}`;let n=0;for(const i of t)n=n*33+i.charCodeAt(0)>>>0;return`hsl(${n%360} 72% 46%)`}function zs(e){return`$${Number(e||0).toFixed(2)}`}function Fs(e){const t=()=>{var s;return((s=e.home)==null?void 0:s.status)||e.status},n=()=>{var s;return((s=e.home)==null?void 0:s.current_session)||null};return(()=>{var s=Bs(),i=s.firstChild,l=i.nextSibling,a=l.nextSibling,o=a.nextSibling,c=o.firstChild,d=c.nextSibling,m=d.nextSibling,u=m.nextSibling,$=u.firstChild;$.firstChild;var E=$.nextSibling;E.firstChild;var q=E.nextSibling;q.firstChild;var g=q.nextSibling;g.firstChild;var y=u.nextSibling,H=y.firstChild;H.firstChild;var O=H.nextSibling;O.firstChild;var w=O.nextSibling;w.firstChild;var N=o.nextSibling,ie=N.firstChild,oe=ie.nextSibling;return a.$$click=()=>e.onSelect({kind:"home"}),r(d,()=>{var k,R;return((R=(k=e.home)==null?void 0:k.home)==null?void 0:R.title)||e.currentProjectName||"Home"}),r(m,()=>{var k,R,D,b;return((R=(k=e.home)==null?void 0:k.home)==null?void 0:R.recommendation)||((b=(D=e.home)==null?void 0:D.home)==null?void 0:b.subtitle)||"Operational dashboard summary."}),r($,()=>{var k,R;return String(((k=t())==null?void 0:k.optimization_mode)||((R=t())==null?void 0:R.native_agent_mode)||"auto")},null),r(E,()=>{var k;return((k=t())==null?void 0:k.active_slot)||"brain"},null),r(q,()=>{var k;return(((k=t())==null?void 0:k.current_model)||"unknown").split("/").pop()},null),r(g,()=>{var k,R;return((k=t())==null?void 0:k.backend_connected)??((R=t())==null?void 0:R.backendConnected)?"live":"degraded"},null),r(H,()=>{var k;return((k=n())==null?void 0:k.title)||"none"},null),r(O,()=>{var k;return zs((k=e.home)==null?void 0:k.totals.total_savings_usd)},null),r(w,()=>{var k,R,D;return((k=e.home)==null?void 0:k.totals.pending_todos)??((D=(R=e.status)==null?void 0:R.todos)==null?void 0:D.pending)??0},null),mt(oe,"click",e.onNewProject),r(s,j($e,{get when(){return e.creatingProject},get children(){return j(qs,{placeholder:"project name",get onSubmit(){return e.onCreateProjectName},get onCancel(){return e.onCancelCreate}})}}),null),r(s,j(me,{get each(){return e.projects},get fallback(){return Us()},children:k=>{const R=Ns(k),D=Vs(k);return(()=>{var b=Ms(),A=b.firstChild,C=A.firstChild,V=C.nextSibling,J=V.nextSibling;return r(C,()=>R.glyph),V.$$click=()=>e.onSelect({kind:"project",projectId:k.id}),r(V,()=>k.name),J.$$click=()=>e.onDeleteProject(k.id),se(re=>{var Le=R.label,Re=`--project-icon-bg:${D};--project-icon-fg:#f5f5f5;`,te=`sidebar-item ${tn(e.selection,{kind:"project",projectId:k.id})?"active":""}`;return Le!==re.e&&gt(C,"title",re.e=Le),re.t=Xn(C,Re,re.t),te!==re.a&&de(V,re.a=te),re},{e:void 0,t:void 0,a:void 0}),b})()}}),null),se(()=>de(a,`sidebar-item pinned sidebar-home-button ${tn(e.selection,{kind:"home"})?"active":""}`)),s})()}ot(["click"]);const Hs=["vibemax","vibeqmax","vibeultrax","vibelitex","raw"];function Ks(e){return Hs.includes(String(e||"").toLowerCase())}const ht={vibeultrax:{id:"vibeultrax",index:1,name:"VibeUltraX",icon:"🏆",pipeline:["cheap","medium","brain"],thinking:"full",tdd:"quality",enforcement:"strict",flow:"strict",qualityVsBrain:107,costVsBrain:58,default:!0,desc:"Default mode. 3-model debate: cheap proposes, medium reviews, brain refines."},vibeqmax:{id:"vibeqmax",index:2,name:"VibeQMaX",icon:"⭐",pipeline:["brain"],thinking:"full",tdd:"quality",enforcement:"strict",flow:"strict",qualityVsBrain:100,costVsBrain:50,desc:"Brain tier only. Same quality as Raw Brain at half cost."},vibemax:{id:"vibemax",index:3,name:"VibeMaX",icon:"⚡",pipeline:["medium"],thinking:"off",tdd:"lazy",enforcement:"relaxed",flow:"audit",qualityVsBrain:75,costVsBrain:18,desc:"Medium tier auto-escalate. Speed-first."},vibelitex:{id:"vibelitex",index:4,name:"VibeLiteX",icon:"💡",pipeline:["medium"],thinking:"brief",tdd:"lazy",enforcement:"normal",flow:"audit",qualityVsBrain:65,costVsBrain:20,desc:"Local fallback. Medium tier with enforcement. No API required."},raw:{id:"raw",index:10,name:"Raw Brain",icon:"🧠",pipeline:["brain"],thinking:"full",tdd:"—",enforcement:"—",flow:"—",qualityVsBrain:100,costVsBrain:0,desc:"Pure v4 Pro baseline. No vibeOS overhead."}};function Nt(e){const t=String(e||"").toLowerCase().trim();if(Ks(t))return t;switch(t){case"litex":return"vibelitex";case"quality":return"vibeqmax";case"audit":case"forensic":return"vibeqmax";case"longrun":return"vibeqmax";case"speed":case"balanced":return"vibemax";case"budget":return"vibelitex";default:return"vibeultrax"}}const Js=[ht.vibeultrax,ht.vibeqmax,ht.vibemax,ht.vibelitex];function pt(e){const t=Nt(e);return ht[t]}function jn(){return Js}var Zs=x("<div class=home-view><div class=card><h3>Home</h3><p class=muted>loading executive summary..."),Ws=x("<section class=home-controls-strip><div class=qc-group><span class=field-label>slot</span></div><div class=qc-group><span class=field-label>vibe mode</span><span class=qc-model></span></div><div class=qc-group><span class=field-label>thinking</span><span class=qc-model></span></div><div class=qc-group><span class=field-label>enforce</span><span>"),Gs=x("<div class=home-tag-row>"),Xs=x("<div class=home-todo-list>"),Qs=x('<div class=home-view><section class=home-hero><div class=home-hero-copy><div class=home-kicker>opencode mirror</div><h2></h2><p></p></div><div class=home-hero-actions><button class=flow-save>Open session</button><button class=shell-link>Project</button><button class=shell-link>Status</button></div></section><section class=home-ops-strip></section><section class=home-mode-grid></section><section class=home-overview-grid><div class="card home-summary-card"><h3>Main KPIs</h3><div class=home-summary-table></div></div><div class="card home-recommendation-card"><h3>Command Center</h3><p class=home-recommendation></p><div class=home-inline-grid><div><span class=field-label>active session</span><div class=home-inline-value></div></div><div><span class=field-label>flow</span><div class=home-inline-value></div></div></div></div></section><section class=home-detail-grid><div class="card home-current-session"><h3>Current Session</h3><div class=home-session-head><div class=home-session-title></div><span></span></div><div class=home-metric-strip><span>session </span><span>mode </span><span>cost </span><span>saved </span></div><p class=muted></p></div><div class="card home-todos-card"><h3>Open TODOs</h3><div class=home-totals><span> pending</span><span> sessions</span></div></div><div class="card home-savings-card"><h3>Savings</h3><div class=home-money></div><div class=home-money-sub>current session </div><div class=home-metric-strip><span>delegation </span><span>cache </span></div></div><div class="card home-sessions-card"><h3>Recent Sessions</h3><div class=home-session-list>'),Ys=x("<div class=home-op-tile><span class=field-label></span><span class=home-op-value>"),ei=x("<button>"),ti=x("<div><div class=home-mode-head><span class=home-mode-name></span><span class=home-mode-pipeline></span></div><p class=home-mode-copy></p><div class=home-mode-meta><span>thinking </span><span>flow </span><span>tdd "),ni=x("<div class=home-summary-row><span class=home-summary-label></span><span class=home-summary-value>"),si=x("<span class=home-tag>"),ii=x("<p class=muted>No pending TODOs."),li=x("<div class=home-todo-item><span class=home-todo-status></span><span>"),ri=x("<div><div><div class=home-session-item-title></div><div class=muted></div></div><div class=home-session-item-meta><span></span><span>");function Ye(e){return`$${Number(e||0).toFixed(2)}`}function oi(e){return e!=null&&e.id?`${e.title} · ${e.id.slice(0,8)}`:"No active session"}function ai(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return pt(t).name||pt(Nt(t)).name||t}catch{return t}}function ci(e){if(!e.data)return Zs();const t=()=>Ls({session:e.session,project:e.project,flows:e.flows}),n=()=>{var c;return(((c=e.data)==null?void 0:c.todos)||[]).filter(d=>(d==null?void 0:d.status)!=="done").slice(0,4)},s=()=>{var c;return((c=e.data)==null?void 0:c.status)||e.status},i=()=>{var c,d,m,u,$;return String(((d=(c=e.data)==null?void 0:c.current_session)==null?void 0:d.optimization_mode)||((m=s())==null?void 0:m.optimization_mode)||(($=(u=e.data)==null?void 0:u.home.cards.find(E=>E.label.toLowerCase()==="mode"))==null?void 0:$.value)||"auto").trim().toLowerCase()},l=()=>ai(i()),a=()=>jn().map(c=>({...c,active:i()===c.id})),o=()=>{var c,d,m,u,$,E;return[{label:"mode",value:l()},{label:"slot",value:((c=s())==null?void 0:c.active_slot)||"brain"},{label:"model",value:((m=(d=s())==null?void 0:d.current_model)==null?void 0:m.split("/").pop())||"unknown"},{label:"lock",value:(u=s())!=null&&u.model_locked?"locked":"live"},{label:"backend",value:($=s())!=null&&$.backend_connected?"online":"degraded"},{label:"todos",value:String(((E=e.data)==null?void 0:E.totals.pending_todos)||0)}]};return(()=>{var c=Qs(),d=c.firstChild,m=d.firstChild,u=m.firstChild,$=u.nextSibling,E=$.nextSibling,q=m.nextSibling,g=q.firstChild,y=g.nextSibling,H=y.nextSibling,O=d.nextSibling,w=O.nextSibling,N=w.nextSibling,ie=N.firstChild,oe=ie.firstChild,k=oe.nextSibling,R=ie.nextSibling,D=R.firstChild,b=D.nextSibling,A=b.nextSibling,C=A.firstChild,V=C.firstChild,J=V.nextSibling,re=C.nextSibling,Le=re.firstChild,Re=Le.nextSibling,te=N.nextSibling,Ue=te.firstChild,ve=Ue.firstChild,Q=ve.nextSibling,pe=Q.firstChild,Me=pe.nextSibling,ke=Q.nextSibling,Pe=ke.firstChild;Pe.firstChild;var xe=Pe.nextSibling;xe.firstChild;var je=xe.nextSibling;je.firstChild;var ge=je.nextSibling;ge.firstChild;var f=ke.nextSibling,P=Ue.nextSibling,B=P.firstChild,L=B.nextSibling,Y=L.firstChild,ne=Y.firstChild,K=Y.nextSibling,ue=K.firstChild,fe=P.nextSibling,le=fe.firstChild,Ae=le.nextSibling,ye=Ae.nextSibling;ye.firstChild;var Z=ye.nextSibling,p=Z.firstChild;p.firstChild;var ae=p.nextSibling;ae.firstChild;var he=fe.nextSibling,Te=he.firstChild,ce=Te.nextSibling;return r($,()=>e.data.home.title),r(E,()=>e.data.home.recommendation||e.data.home.subtitle),mt(g,"click",e.onOpenSession),mt(y,"click",e.onOpenProject),mt(H,"click",e.onOpenStatus),r(O,j(me,{get each(){return o()},children:S=>(()=>{var T=Ys(),U=T.firstChild,W=U.nextSibling;return r(U,()=>S.label),r(W,()=>S.value),T})()})),r(c,j($e,{get when(){return s()},get children(){var S=Ws(),T=S.firstChild;T.firstChild;var U=T.nextSibling,W=U.firstChild,Ee=W.nextSibling,Oe=U.nextSibling,qe=Oe.firstChild,Ve=qe.nextSibling,v=Oe.nextSibling,I=v.firstChild,De=I.nextSibling;return r(T,j(me,{each:["brain","medium","cheap"],children:G=>(()=>{var Ce=ei();return Ce.$$click=()=>bt("set",G).then(e.onTrinityAction).catch(()=>{}),r(Ce,G),se(()=>{var ze;return de(Ce,`qc-slot ${((ze=s())==null?void 0:ze.active_slot)===G?"active":""}`)}),Ce})()}),null),r(Ee,l),r(Ve,()=>{var G;return((G=s())==null?void 0:G.thinking)??"brief"}),r(De,()=>{var G;return(G=s())!=null&&G.enforce?"on":"off"}),se(()=>{var G;return de(De,`qc-pill ${(G=s())!=null&&G.enforce?"on":"off"}`)}),S}}),w),r(w,j(me,{get each(){return a()},children:S=>(()=>{var T=ti(),U=T.firstChild,W=U.firstChild,Ee=W.nextSibling,Oe=U.nextSibling,qe=Oe.nextSibling,Ve=qe.firstChild;Ve.firstChild;var v=Ve.nextSibling;v.firstChild;var I=v.nextSibling;return I.firstChild,r(W,()=>S.name),r(Ee,()=>S.pipeline.join(" → ")),r(Oe,()=>S.desc),r(Ve,()=>S.thinking,null),r(v,()=>S.flow,null),r(I,()=>S.tdd,null),se(()=>de(T,`card home-mode-card ${S.active?"active":""}`)),T})()})),r(k,j(me,{get each(){return e.data.home.cards},children:S=>(()=>{var T=ni(),U=T.firstChild,W=U.nextSibling;return r(U,()=>S.label),r(W,()=>S.value),T})()})),r(b,()=>e.data.home.recommendation||"Continue with the active session."),r(J,()=>oi(e.session)),r(Re,t),r(pe,()=>e.data.current_session.project_name),r(Me,()=>e.data.current_session.status),r(Pe,()=>e.data.current_session.session_id||"none",null),r(xe,l,null),r(je,()=>Ye(e.data.current_session.cost_usd),null),r(ge,()=>Ye((e.data.current_session.delegation_savings_usd||0)+(e.data.current_session.cache_savings_usd||0)),null),r(f,()=>e.data.current_session.recommendation),r(Ue,j($e,{get when(){var S;return(S=e.data.current_session.tags)==null?void 0:S.length},get children(){var S=Gs();return r(S,j(me,{get each(){return e.data.current_session.tags},children:T=>(()=>{var U=si();return r(U,T),U})()})),S}}),null),r(P,j($e,{get when(){return n().length},get fallback(){return ii()},get children(){var S=Xs();return r(S,j(me,{get each(){return n()},children:T=>(()=>{var U=li(),W=U.firstChild,Ee=W.nextSibling;return r(W,()=>String(T.status||"pending").toUpperCase()),r(Ee,()=>T.title||T.text||T.content||"Untitled task"),U})()})),S}}),L),r(Y,()=>e.data.totals.pending_todos,ne),r(K,()=>e.data.totals.total_sessions,ue),r(Ae,()=>Ye(e.data.totals.total_savings_usd)),r(ye,()=>Ye(e.data.totals.current_session_savings_usd),null),r(p,()=>{var S,T;return Ye((T=(S=e.data.savings)==null?void 0:S.lifetime)==null?void 0:T.delegation_usd)},null),r(ae,()=>{var S,T;return Ye((T=(S=e.data.savings)==null?void 0:S.lifetime)==null?void 0:T.cache_usd)},null),r(ce,j(me,{get each(){return e.data.sessions.slice(0,5)},children:S=>(()=>{var T=ri(),U=T.firstChild,W=U.firstChild,Ee=W.nextSibling,Oe=U.nextSibling,qe=Oe.firstChild,Ve=qe.nextSibling;return r(W,()=>S.template_label||S.session_id.slice(0,14)),r(Ee,()=>S.recommendation),r(qe,()=>S.template_label),r(Ve,()=>Ye(S.delegation_savings_usd+S.cache_savings_usd)),se(()=>de(T,`home-session-item ${S.is_current?"current":""}`)),T})()})),se(()=>de(Me,`badge ${e.data.current_session.locked?"off":"on"}`)),c})()}ot(["click"]);const di="modulepreload",ui=function(e){return"/"+e},nn={},fi=function(t,n,s){let i=Promise.resolve();if(n&&n.length>0){let a=function(d){return Promise.all(d.map(m=>Promise.resolve(m).then(u=>({status:"fulfilled",value:u}),u=>({status:"rejected",reason:u}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),c=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));i=a(n.map(d=>{if(d=ui(d),d in nn)return;nn[d]=!0;const m=d.endsWith(".css"),u=m?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${u}`))return;const $=document.createElement("link");if($.rel=m?"stylesheet":di,m||($.as="script"),$.crossOrigin="",$.href=d,c&&$.setAttribute("nonce",c),document.head.appendChild($),m)return new Promise((E,q)=>{$.addEventListener("load",E),$.addEventListener("error",()=>q(new Error(`Unable to preload CSS for ${d}`)))})}))}function l(a){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=a,window.dispatchEvent(o),!o.defaultPrevented)throw a}return i.then(a=>{for(const o of a||[])o.status==="rejected"&&l(o.reason);return t().catch(l)})};var hi=x("<span class=run-step-skip>blocked — "),mi=x("<code class=run-step-result>"),_i=x("<div><span class=run-step-tool></span><span class=run-step-label>"),bi=x('<div class="session-hero session-hero-compact"><div><div class=home-kicker>session workspace</div><h2 class=session-title></h2><div class=session-hero-meta><span>…</span><span>project </span><span></span><span></span></div></div><div class=session-hero-kpis><div class=session-kpi><span class=field-label>session savings</span><strong></strong></div><div class=session-kpi><span class=field-label>session cost</span><strong></strong></div><div class=session-kpi><span class=field-label>status</span><strong>'),vi=x('<div class="msg assistant live"><div class=msg-role>resolved plan</div><div class="msg-content mono"></div><div class=session-plan-head><span class=muted></span><span>%</span></div><div class=run-trace>'),pi=x('<div class="msg-content mono">'),gi=x('<div class="msg assistant live"><div class=msg-role>running</div><div class=run-trace></div><span class=run-spinner>executing allowed structured steps only'),$i=x("<div class=error>"),Si=x('<div class=session-body><div class=session-thread></div><div class=composer><textarea class=text-area placeholder="Describe the next structured session task…"></textarea><div class=composer-actions><span class=muted>policy: strict deterministic · ⌘/Ctrl+Enter to run</span><button class=flow-save></button></div></div><div class=session-mini-grid><div class=session-state-block><span class=field-label>session state</span><div class=session-state-stack><div class=session-state-row><span>project</span><strong></strong></div><div class=session-state-row><span>status</span><strong></strong></div><div class=session-state-row><span>mode</span><strong></strong></div><div class=session-state-row><span>started</span><strong></strong></div><div class=session-state-row><span>lock</span><strong></strong></div></div></div><div class=session-state-block><span class=field-label>lifecycle</span><div class=session-timeline><span>created </span><span>paused </span><span>resumed </span><span>archived </span></div></div></div><div class=session-actions-row>'),wi=x('<div class="session-workspace card panel"><div class="panel-head session-head"><div><div class=column-badge-row><span class=column-badge>3</span><h3>Session Chat</h3></div><div class=panel-head-copy> · live thread + structured run</div></div><div class=session-hero-meta><span>mode </span><span>slot </span><span>model </span><span>backend '),ki=x("<p class=muted>Pick a session link from column 2 to open the chat and live run stream."),xi=x("<div class=run-step><span class=run-step-tool></span><span class=run-step-label> · "),yi=x("<p class=muted>No chat yet. Use the composer below to run a structured session prompt."),Ci=x("<details class=run-trace-details><summary>structured steps (<!>)</summary><div class=run-trace>"),Pi=x("<div><div class=msg-role></div><div class=msg-content>"),ji=x("<button class=shell-link>");function sn(e){const t=e.r;return(()=>{var n=_i(),s=n.firstChild,i=s.nextSibling;return r(s,()=>{var l;return(l=t.step)==null?void 0:l.tool}),r(i,()=>{var l;return(l=t.step)==null?void 0:l.label}),r(n,j($e,{get when(){return t.skipped},get children(){var l=hi();return l.firstChild,r(l,()=>t.reason,null),l}}),null),r(n,j($e,{get when(){return it(()=>!t.skipped)()&&t.result},get children(){var l=mi();return r(l,()=>JSON.stringify(t.result).slice(0,160)),l}}),null),se(()=>de(n,`run-step ${t.skipped?"skipped":"done"}`)),n})()}function ln(e){return`$${Number(e||0).toFixed(2)}`}function ft(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function Ai(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return pt(Nt(t)).name||t}catch{return t}}function Ti(e){const t=e==null?void 0:e.session,n=["start","pause","resume",t!=null&&t.locked?"unlock":"lock","archive","undo"];return[...new Set(n)]}function Ei(e){const[t,{mutate:n,refetch:s}]=Gt(()=>{var b;return((b=e.session)==null?void 0:b.id)||null},b=>b?gn(b):Promise.resolve({session:null})),[i,{refetch:l}]=Gt(()=>{var b;return((b=e.session)==null?void 0:b.id)||null},b=>b?yn(b):Promise.resolve({messages:[]})),[a,o]=M(""),[c,d]=M(!1),[m,u]=M(null),[$,E]=M(null),[q,g]=M([]),[y,H]=M(null);let O=null;Ft(()=>O==null?void 0:O());const w=_e(()=>{var b;return(b=t())==null?void 0:b.session}),N=_e(()=>{var b,A;return $()||((b=w())==null?void 0:b.orchestration_plan)||((A=e.status)==null?void 0:A.orchestration_plan)||null}),ie=_e(()=>{var b,A;return String(((b=w())==null?void 0:b.optimization_mode)||((A=e.status)==null?void 0:A.optimization_mode)||"auto").toLowerCase()}),oe=_e(()=>Ai(ie())),k=_e(()=>{var b,A;return((b=e.status)==null?void 0:b.backend_connected)??((A=e.status)==null?void 0:A.backendConnected)??!1}),R=b=>{var V;const A=e.session,C=String(b||"").trim();if(!(!A||!C||c())){if((V=w())!=null&&V.locked){H("Session is locked. Unlock it before running a deterministic flow.");return}O==null||O(),d(!0),H(null),E(null),g([]),O=Pn(A.id,{prompt:C,query:C,execution_policy:"strict-deterministic"},{onEvent:(J,re)=>{J==="plan"?E(re.plan):J==="step"?g(Le=>[...Le,re]):J==="done"?(d(!1),O=null,o(""),E(null),g([]),l(),s(),e.onRefresh()):J==="error"&&(H(re.message||"run failed"),d(!1),O=null)},onError:J=>{H(J.message),d(!1),O=null},onDone:()=>d(!1)})}};zt(()=>{const b=e.runRequest,A=e.session;!b||!A||b.sessionId!==A.id||(o(b.prompt),e.onRunRequestHandled(),R(b.prompt))});const D=async b=>{const A=e.session;if(A){u(b),H(null);try{const{postSessionAction:C}=await fi(async()=>{const{postSessionAction:J}=await Promise.resolve().then(()=>Ds);return{postSessionAction:J}},void 0),V=await C(A.id,{action:b});n(J=>J&&{...J,session:V.session,metrics:V.metrics,orchestration:V.orchestration??null}),s(),e.onRefresh()}catch(C){H(C.message)}finally{u(null)}}};return(()=>{var b=wi(),A=b.firstChild,C=A.firstChild,V=C.firstChild,J=V.nextSibling,re=J.firstChild,Le=C.nextSibling,Re=Le.firstChild;Re.firstChild;var te=Re.nextSibling;te.firstChild;var Ue=te.nextSibling;Ue.firstChild;var ve=Ue.nextSibling;return ve.firstChild,r(J,(()=>{var Q=it(()=>!!e.session);return()=>Q()?e.session.title:"Select a session from column 2"})(),re),r(Re,()=>oe()||"auto",null),r(te,()=>{var Q;return((Q=e.status)==null?void 0:Q.active_slot)||"brain"},null),r(Ue,()=>{var Q;return(((Q=e.status)==null?void 0:Q.current_model)||"unknown").split("/").pop()},null),r(ve,()=>k()?"live":"degraded",null),r(b,j($e,{get when(){return e.session},get fallback(){return ki()},get children(){return[(()=>{var Q=bi(),pe=Q.firstChild,Me=pe.firstChild,ke=Me.nextSibling,Pe=ke.nextSibling,xe=Pe.firstChild,je=xe.firstChild,ge=xe.nextSibling;ge.firstChild;var f=ge.nextSibling,P=f.nextSibling,B=pe.nextSibling,L=B.firstChild,Y=L.firstChild,ne=Y.nextSibling,K=L.nextSibling,ue=K.firstChild,fe=ue.nextSibling,le=K.nextSibling,Ae=le.firstChild,ye=Ae.nextSibling;return r(ke,()=>e.session.title),r(xe,()=>e.session.id.slice(0,18),je),r(ge,()=>{var Z,p;return((Z=e.project)==null?void 0:Z.name)||((p=w())==null?void 0:p.project_name)||"selected"},null),r(f,()=>k()?"backend online":"backend degraded"),r(P,(()=>{var Z=it(()=>{var p;return!!((p=w())!=null&&p.locked)});return()=>{var p;return Z()?"locked":((p=w())==null?void 0:p.status)||"active"}})()),r(ne,()=>{var Z,p;return ln((((Z=w())==null?void 0:Z.delegation_savings_usd)||0)+(((p=w())==null?void 0:p.cache_savings_usd)||0))}),r(fe,()=>{var Z;return ln((Z=w())==null?void 0:Z.cost_usd)}),r(ye,(()=>{var Z=it(()=>{var p;return!!((p=w())!=null&&p.locked)});return()=>{var p;return Z()?"locked":((p=w())==null?void 0:p.status)||"active"}})()),Q})(),(()=>{var Q=Si(),pe=Q.firstChild,Me=pe.nextSibling,ke=Me.firstChild,Pe=ke.nextSibling,xe=Pe.firstChild,je=xe.nextSibling,ge=Me.nextSibling,f=ge.firstChild,P=f.firstChild,B=P.nextSibling,L=B.firstChild,Y=L.firstChild,ne=Y.nextSibling,K=L.nextSibling,ue=K.firstChild,fe=ue.nextSibling,le=K.nextSibling,Ae=le.firstChild,ye=Ae.nextSibling,Z=le.nextSibling,p=Z.firstChild,ae=p.nextSibling,he=Z.nextSibling,Te=he.firstChild,ce=Te.nextSibling,S=f.nextSibling,T=S.firstChild,U=T.nextSibling,W=U.firstChild;W.firstChild;var Ee=W.nextSibling;Ee.firstChild;var Oe=Ee.nextSibling;Oe.firstChild;var qe=Oe.nextSibling;qe.firstChild;var Ve=ge.nextSibling;return r(pe,j($e,{get when(){return N()},get children(){var v=vi(),I=v.firstChild,De=I.nextSibling,G=De.nextSibling,Ce=G.firstChild,ze=Ce.nextSibling,at=ze.firstChild,nt=G.nextSibling;return r(De,()=>N().recommended_label||"Structured plan"),r(Ce,()=>N().recommended_next_action||N().reason),r(ze,()=>Math.round(Number(N().confidence||0)*100),at),r(nt,j(me,{get each(){return N().steps||[]},children:(Ge,ct)=>(()=>{var $t=xi(),dt=$t.firstChild,ut=dt.nextSibling,Lt=ut.firstChild;return r(dt,()=>ct()+1),r(ut,()=>Ge.tool,Lt),r(ut,()=>Ge.label,null),$t})()})),v}}),null),r(pe,j(me,{get each(){var v;return((v=i())==null?void 0:v.messages)||[]},get fallback(){return yi()},children:v=>(()=>{var I=Pi(),De=I.firstChild,G=De.nextSibling;return r(De,()=>v.role),r(G,()=>v.content||"(no summary)"),r(I,j($e,{get when(){return it(()=>!!(v.role==="assistant"&&v.results))()&&v.results.length},get children(){var Ce=Ci(),ze=Ce.firstChild,at=ze.firstChild,nt=at.nextSibling;nt.nextSibling;var Ge=ze.nextSibling;return r(ze,()=>v.results.length,nt),r(Ge,j(me,{get each(){return v.results},children:ct=>j(sn,{r:ct})})),Ce}}),null),se(()=>de(I,`msg ${v.role}`)),I})()}),null),r(pe,j($e,{get when(){return c()},get children(){var v=gi(),I=v.firstChild,De=I.nextSibling;return r(v,j($e,{get when(){return $()},get children(){var G=pi();return r(G,()=>$().steps.map(Ce=>Ce.tool).join(" → ")),G}}),De),r(De,j(me,{get each(){return q()},children:G=>j(sn,{r:G})})),v}}),null),ke.$$keydown=v=>{v.key==="Enter"&&(v.metaKey||v.ctrlKey)&&R(a())},ke.$$input=v=>o(v.currentTarget.value),je.$$click=()=>R(a()),r(je,()=>c()?"running…":"run structured flow"),r(ne,()=>{var v,I;return((v=w())==null?void 0:v.project_name)||((I=e.project)==null?void 0:I.name)||"Current project"}),r(fe,()=>{var v;return((v=w())==null?void 0:v.status)||"active"}),r(ye,()=>oe()||"auto"),r(ae,()=>{var v;return ft((v=w())==null?void 0:v.started_at)}),r(ce,()=>{var v;return(v=w())!=null&&v.locked?"locked":"mutable"}),r(W,()=>{var v,I;return ft((I=(v=w())==null?void 0:v.lifecycle)==null?void 0:I.created_at)},null),r(Ee,()=>{var v,I;return ft((I=(v=w())==null?void 0:v.lifecycle)==null?void 0:I.paused_at)},null),r(Oe,()=>{var v,I;return ft((I=(v=w())==null?void 0:v.lifecycle)==null?void 0:I.resumed_at)},null),r(qe,()=>{var v,I;return ft((I=(v=w())==null?void 0:v.lifecycle)==null?void 0:I.archived_at)},null),r(Ve,j(me,{get each(){return Ti(t())},children:v=>(()=>{var I=ji();return I.$$click=()=>void D(v),r(I,()=>m()===v?"…":v),se(()=>I.disabled=m()===v),I})()})),r(Q,j($e,{get when(){return y()},get children(){var v=$i();return r(v,y),v}}),null),se(()=>{var v;return je.disabled=c()||!a().trim()||((v=w())==null?void 0:v.locked)}),se(()=>ke.value=a()),Q})()]}}),null),b})()}ot(["input","keydown","click"]);var Oi=x("<div class=project-session-list>"),Di=x('<div class="card panel project-sessions-panel"><div class=panel-head><div><div class=column-badge-row><span class=column-badge>2</span><h3>Project Sessions</h3></div><div class=panel-head-copy> · links only'),Ii=x("<p class=muted>Pick a project from column 1 to see its sessions."),Ni=x("<p class=muted>No sessions in this project yet."),Li=x("<button><span class=project-session-link-title></span><span class=project-session-link-meta>");function Ri(e,t){return t===e.id?"current":""}function qi(e){return(()=>{var t=Di(),n=t.firstChild,s=n.firstChild,i=s.firstChild,l=i.nextSibling,a=l.firstChild;return r(l,()=>{var o;return((o=e.project)==null?void 0:o.name)||"Select a project"},a),r(t,j($e,{get when(){return e.project},get fallback(){return Ii()},get children(){var o=Oi();return r(o,j(me,{get each(){return e.sessions},get fallback(){return Ni()},children:c=>(()=>{var d=Li(),m=d.firstChild,u=m.nextSibling;return d.$$click=()=>e.onSelectSession(c),r(m,()=>c.title),r(u,(()=>{var $=it(()=>e.currentSessionId===c.id);return()=>$()?"current":c.id.slice(0,8)})()),se(()=>de(d,`project-session-link ${e.selectedSessionId===c.id?"active":""} ${Ri(c,e.currentSessionId)}`)),d})()})),o}}),null),t})()}ot(["click"]);var Bi=x("<div class=result-box><code></code><button class=dismiss-btn>x"),Ui=x('<div class="card panel control-rail"><div class=panel-head><div><div class=column-badge-row><span class=column-badge>4</span><h3>Control Rail</h3></div><div class=panel-head-copy>mode first, then token, flow, plan, TDD</div></div><span></span></div><div class=control-group><h4>Vibe Mode</h4><div class=control-mode-summary><div class=control-status><span class=field-label>active mode</span><strong></strong></div><div class=control-status><span class=field-label>thinking</span><strong></strong></div></div><div class=mode-control-grid></div></div><div class=control-status-grid><div class=control-status><span class=field-label>api token</span><strong></strong></div><div class=control-status><span class=field-label>connect</span><strong></strong></div><div class=control-status><span class=field-label>slot</span><strong></strong></div><div class=control-status><span class=field-label>model</span><strong></strong></div></div><div class=control-group><h4>API Token</h4><input class=text-input placeholder="paste api token"><div class=session-action-grid><button class=shell-link>apply token</button><button class=shell-link>invalidate</button></div><p class=muted>Set or clear the runtime token. Connection state below reflects the live backend, not decoration.</p></div><div class=control-group><h4>Flow</h4><div class=control-flow-header><span class=muted></span><span></span></div><div class=control-flow-list></div></div><div class=control-group><h4>Create Plan / TDD</h4><div class=session-action-grid><button class=shell-link>create plan</button><button class=shell-link>tdd</button></div><p class=muted>Runs the active session with a structured prompt. No loose command launching.</p><p class=muted>web search <!> · tdd </p></div><div class=control-group><h4>KPI</h4><div class=control-kpi-strip><div><span class=field-label>slot</span><strong></strong></div><div><span class=field-label>model</span><strong></strong></div><div><span class=field-label>savings/hr</span><strong></strong></div><div><span class=field-label>todos</span><strong></strong></div></div><div class=control-kpi-strip><div><span class=field-label>session</span><strong></strong></div><div><span class=field-label>backend</span><strong></strong></div><div><span class=field-label>lock</span><strong></strong></div><div><span class=field-label>flow</span><strong>'),Mi=x("<button><strong></strong><span>"),Vi=x("<p class=muted>No resolved plan yet. Use the chat or create a plan from here."),zi=x("<div class=control-flow-step><span></span><div><strong></strong><div class=muted> · ");const Fi=jn();function Hi(e){return`$${Number(e||0).toFixed(2)}`}function Ki(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return pt(t).name||pt(Nt(t)).name||t}catch{return t}}function Ji(e){const[t,n]=M(null),[s,i]=M(null),[l,a]=M(""),o=_e(()=>{var g,y;return String(((g=e.status)==null?void 0:g.optimization_mode)||((y=e.status)==null?void 0:y.native_agent_mode)||"auto").toLowerCase()}),c=_e(()=>Ki(o())),d=_e(()=>{var g,y;return((y=(g=e.status)==null?void 0:g.orchestration_plan)==null?void 0:y.steps)||[]}),m=_e(()=>{var g,y;return((g=e.status)==null?void 0:g.backend_connected)??((y=e.status)==null?void 0:y.backendConnected)??!1}),u=_e(()=>{var g;return((g=e.status)==null?void 0:g.api_fallback)===!0?"fallback":m()?"live":"unknown"}),$=async g=>{if(!t()){n(`mode:${g}`),i(null);try{const y=await bt("mode",g);i(y.ok?String(y.result||`mode:${g}`):String(y.error||"failed")),e.onRefresh()}catch(y){i(y.message)}finally{n(null)}}},E=async()=>{const g=l().trim();if(!(!g||t())){n("token"),i(null);try{const y=await bt("api-token","",void 0,g);i(y.ok?"API token updated":String(y.error||"failed")),a(""),e.onRefresh()}catch(y){i(y.message)}finally{n(null)}}},q=async()=>{if(!t()){n("token"),i(null);try{const g=await bt("api-token","",void 0,"invalidate");i(g.ok?"API token invalidated":String(g.error||"failed")),a(""),e.onRefresh()}catch(g){i(g.message)}finally{n(null)}}};return(()=>{var g=Ui(),y=g.firstChild,H=y.firstChild,O=H.nextSibling,w=y.nextSibling,N=w.firstChild,ie=N.nextSibling,oe=ie.firstChild,k=oe.firstChild,R=k.nextSibling,D=oe.nextSibling,b=D.firstChild,A=b.nextSibling,C=ie.nextSibling,V=w.nextSibling,J=V.firstChild,re=J.firstChild,Le=re.nextSibling,Re=J.nextSibling,te=Re.firstChild,Ue=te.nextSibling,ve=Re.nextSibling,Q=ve.firstChild,pe=Q.nextSibling,Me=ve.nextSibling,ke=Me.firstChild,Pe=ke.nextSibling,xe=V.nextSibling,je=xe.firstChild,ge=je.nextSibling,f=ge.nextSibling,P=f.firstChild,B=P.nextSibling,L=xe.nextSibling,Y=L.firstChild,ne=Y.nextSibling,K=ne.firstChild,ue=K.nextSibling,fe=ne.nextSibling,le=L.nextSibling,Ae=le.firstChild,ye=Ae.nextSibling,Z=ye.firstChild,p=Z.nextSibling,ae=ye.nextSibling,he=ae.nextSibling,Te=he.firstChild,ce=Te.nextSibling;ce.nextSibling;var S=le.nextSibling,T=S.firstChild,U=T.nextSibling,W=U.firstChild,Ee=W.firstChild,Oe=Ee.nextSibling,qe=W.nextSibling,Ve=qe.firstChild,v=Ve.nextSibling,I=qe.nextSibling,De=I.firstChild,G=De.nextSibling,Ce=I.nextSibling,ze=Ce.firstChild,at=ze.nextSibling,nt=U.nextSibling,Ge=nt.firstChild,ct=Ge.firstChild,$t=ct.nextSibling,dt=Ge.nextSibling,ut=dt.firstChild,Lt=ut.nextSibling,Zt=dt.nextSibling,An=Zt.firstChild,Tn=An.nextSibling,En=Zt.nextSibling,On=En.firstChild,Dn=On.nextSibling;return r(O,()=>m()?"LIVE":"DEGRADED"),r(R,c),r(A,()=>{var _;return((_=e.status)==null?void 0:_.thinking)||"brief"}),r(C,j(me,{each:Fi,children:_=>(()=>{var ee=Mi(),Ie=ee.firstChild,Xe=Ie.nextSibling;return ee.$$click=()=>void $(_.id),r(Ie,()=>_.name),r(Xe,()=>_.pipeline.join(" → ")),se(Be=>{var Wt;var Ze=`mode-card-btn ${((Wt=e.status)==null?void 0:Wt.optimization_mode)===_.id?"active":""}`,He=t()===`mode:${_.id}`||_.id==="raw",Qe=_.desc;return Ze!==Be.e&&de(ee,Be.e=Ze),He!==Be.t&&(ee.disabled=Be.t=He),Qe!==Be.a&&gt(ee,"title",Be.a=Qe),Be},{e:void 0,t:void 0,a:void 0}),ee})()})),r(Le,u),r(Ue,()=>m()?"live":"degraded"),r(pe,()=>{var _;return((_=e.status)==null?void 0:_.active_slot)||"brain"}),r(Pe,()=>{var _;return(((_=e.status)==null?void 0:_.current_model)||"unknown").split("/").pop()}),ge.$$input=_=>a(_.currentTarget.value),P.$$click=()=>void E(),B.$$click=()=>void q(),r(K,()=>{var _;return((_=e.currentProject)==null?void 0:_.name)||"No project selected"}),r(ue,()=>{var _;return(_=e.status)!=null&&_.flow_enforcer?"ON":"OFF"}),r(fe,j(me,{get each(){return d()},get fallback(){return Vi()},children:(_,ee)=>(()=>{var Ie=zi(),Xe=Ie.firstChild,Be=Xe.nextSibling,Ze=Be.firstChild,He=Ze.nextSibling,Qe=He.firstChild;return r(Xe,()=>ee()+1),r(Ze,()=>_.label),r(He,()=>_.tool,Qe),r(He,()=>_.reason,null),Ie})()})),Z.$$click=()=>{n("plan"),e.onCreatePlan(),e.onRefresh(),n(null)},p.$$click=()=>{n("tdd"),e.onStartTdd(),e.onRefresh(),n(null)},r(he,()=>{var _,ee;return(ee=(_=e.capabilities)==null?void 0:_.web_search)!=null&&ee.enabled?"on":"off"},ce),r(he,()=>{var _,ee;return(ee=(_=e.capabilities)==null?void 0:_.tdd)!=null&&ee.enabled?"on":"off"},null),r(Oe,()=>{var _;return((_=e.status)==null?void 0:_.active_slot)||"brain"}),r(v,()=>{var _;return(((_=e.status)==null?void 0:_.current_model)||"unknown").split("/").pop()}),r(G,()=>{var _;return Hi((_=e.savings)==null?void 0:_.savings_rate_per_hour)}),r(at,()=>{var _,ee,Ie;return((ee=(_=e.status)==null?void 0:_.todos)==null?void 0:ee.pending)??((Ie=e.home)==null?void 0:Ie.totals.pending_todos)??0}),r($t,()=>{var _;return((_=e.session)==null?void 0:_.title)||"none"}),r(Lt,()=>{var _;return(_=e.status)!=null&&_.backend_connected?"online":"degraded"}),r(Tn,()=>{var _;return(_=e.status)!=null&&_.model_locked?"locked":"open"}),r(Dn,()=>{var _;return(_=e.status)!=null&&_.flow_enforcer?"on":"off"}),r(g,j($e,{get when(){return s()},get children(){var _=Bi(),ee=_.firstChild,Ie=ee.nextSibling;return r(ee,()=>s()),Ie.$$click=()=>i(null),_}}),null),se(_=>{var Qe;var ee=`badge ${m()?"on":"off"}`,Ie=!l().trim()||t()==="token",Xe=t()==="token",Be=`badge ${(Qe=e.status)!=null&&Qe.flow_enforcer?"on":"off"}`,Ze=!e.session||t()==="plan",He=!e.session||t()==="tdd";return ee!==_.e&&de(O,_.e=ee),Ie!==_.t&&(P.disabled=_.t=Ie),Xe!==_.a&&(B.disabled=_.a=Xe),Be!==_.o&&de(ue,_.o=Be),Ze!==_.i&&(Z.disabled=_.i=Ze),He!==_.n&&(p.disabled=_.n=He),_},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),se(()=>ge.value=l()),g})()}ot(["input","click"]);var Zi=x("<section class=home-shell>"),Wi=x('<div class="shell shell-4col"><main class=workspace><header class="header workspace-header"><div class=header-title><div><h1></h1><div class=header-subtitle></div></div><span class=version></span></div><div class=header-indicators><span></span><span></span><span></span><span>'),Gi=x('<section class=workspace-grid><div class="workspace-column workspace-column-sessions"></div><div class="workspace-column workspace-column-chat"></div><div class="workspace-column workspace-column-controls">');function Xi(){const[e,t]=M(null),[n,s]=M(null),[i,l]=M(null),[a,o]=M(null),[c,d]=M(!1),[m,u]=M({kind:Is}),[$,E]=M([]),[q,g]=M([]),[y,H]=M({}),[O,w]=M(!1),[N,ie]=M(null),oe=()=>_n().then(f=>{t(f),d(!0)}).catch(()=>d(!1)),k=()=>bn().then(f=>{s(f),d(!0)}).catch(()=>d(!1)),R=()=>vn().then(l).catch(()=>{}),D=()=>pn().then(o).catch(()=>{}),b=()=>Sn().then(f=>E(f.projects)).catch(()=>{}),A=f=>Cn(f||void 0).then(P=>g(P.flows)).catch(()=>{}),C=()=>xn().then(f=>{var B;const P={};for(const L of f.sessions)(P[B=L.project_id]||(P[B]=[])).push(L);H(P)}).catch(()=>{}),V=$n(f=>{t(f.status),s(f.savings),d(!0)});oe(),k(),R(),b(),C(),D(),Ft(V);const J=()=>w(!0),re=async f=>{w(!1);const P=await wn(f);await b(),await D(),u({kind:"project",projectId:P.project.id})},Le=()=>w(!1),Re=async f=>{confirm("Delete this project and all its sessions?")&&(await kn(f),await b(),await C(),await D(),m().projectId===f&&u({kind:"home"}))},te=()=>{var L,Y,ne,K,ue,fe;const f=m();if(f.kind==="project"||f.kind==="session")return $().find(le=>le.id===f.projectId)||null;const P=((Y=(L=a())==null?void 0:L.current_session)==null?void 0:Y.project_fingerprint)||((ne=e())==null?void 0:ne.current_project_fingerprint)||"",B=((ue=(K=a())==null?void 0:K.current_session)==null?void 0:ue.project_name)||((fe=e())==null?void 0:fe.current_project_name)||"";return $().find(le=>le.fingerprint&&le.fingerprint===P)||$().find(le=>le.name===B)||null},Ue=()=>{const f=te();return f?y()[f.id]||[]:[]},ve=()=>{var Y,ne;const f=m();if(f.kind==="session")return(y()[f.projectId]||[]).find(K=>K.id===f.sessionId)||null;const P=((ne=(Y=a())==null?void 0:Y.current_session)==null?void 0:ne.session_id)||"";if(!P)return null;const B=te();if(!B)return null;const L=(y()[B.id]||[]).find(K=>K.id===P)||null;return L&&L.project_id===B.id?L:null};zt(()=>{const f=te();A((f==null?void 0:f.id)||null)});const Q=()=>{const f=e();if(!f)return{label:"API OFF",tone:"disconnected",title:"backend status unavailable"};const P=f.backend_connected??f.backendConnected,B=f.backend_api_url||f.backend_health_url||"unknown target",L=f.backend_health_checked_at?new Date(f.backend_health_checked_at).toLocaleTimeString():null;if(P){const ne=typeof f.backend_health_age_ms=="number"?` ${Math.max(0,Math.round(f.backend_health_age_ms/1e3))}s`:"",K=typeof f.backend_health_latency_ms=="number"?` ${f.backend_health_latency_ms}ms`:"";return{label:`⚡ BACKEND${ne}`,tone:"connected",title:`${B}${K}${L?` · checked ${L}`:""}`}}const Y=f.backend_health_error||(typeof f.backend_health_status=="number"?`HTTP ${f.backend_health_status}`:"unreachable");return{label:"API OFF",tone:"disconnected",title:`${B} · ${Y}${L?` · checked ${L}`:""}`}},pe=f=>{const P=ve();P&&ie({sessionId:P.id,prompt:f})},Me=()=>{const f=te()||$()[0]||null;f&&u({kind:"project",projectId:f.id})},ke=()=>{const f=ve()||null;f&&u({kind:"session",projectId:f.project_id,sessionId:f.id})},Pe=()=>{var f;oe(),k(),D(),b(),C(),A(((f=te())==null?void 0:f.id)||null)},xe=()=>m().kind==="home"||m().kind==="status",je=()=>{var f,P,B;return m().kind==="status"?"Status":m().kind==="home"?"Dashboard":((f=te())==null?void 0:f.name)||((B=(P=a())==null?void 0:P.current_session)==null?void 0:B.project_name)||"Home"},ge=()=>{var f,P,B,L,Y,ne,K,ue,fe;return m().kind==="home"?((P=(f=a())==null?void 0:f.home)==null?void 0:P.title)||((L=(B=a())==null?void 0:B.home)==null?void 0:L.subtitle)||"Operational dashboard overview":m().kind==="status"?((ne=(Y=a())==null?void 0:Y.home)==null?void 0:ne.subtitle)||"Runtime status":((K=ve())==null?void 0:K.title)||((fe=(ue=a())==null?void 0:ue.home)==null?void 0:fe.subtitle)||"OpenCode-style operational dashboard"};return(()=>{var f=Wi(),P=f.firstChild,B=P.firstChild,L=B.firstChild,Y=L.firstChild,ne=Y.firstChild,K=ne.nextSibling,ue=Y.nextSibling,fe=L.nextSibling,le=fe.firstChild,Ae=le.nextSibling,ye=Ae.nextSibling,Z=ye.nextSibling;return r(f,j(Fs,{get home(){return a()},get status(){return e()},get projects(){return $()},get selection(){return m()},get currentProjectName(){var p,ae,he,Te;return((p=te())==null?void 0:p.name)||((he=(ae=a())==null?void 0:ae.current_session)==null?void 0:he.project_name)||((Te=e())==null?void 0:Te.current_project_name)||null},get creatingProject(){return O()},onSelect:u,onNewProject:J,onCreateProjectName:re,onCancelCreate:Le,onDeleteProject:Re}),P),r(ne,je),r(K,ge),r(ue,()=>{var p;return((p=e())==null?void 0:p.version)??"..."}),r(le,()=>c()?"LIVE":"connecting"),r(Ae,()=>Q().label),r(ye,()=>{var p,ae;return((p=e())==null?void 0:p.backend_connected)??((ae=e())==null?void 0:ae.backendConnected)?"API LIVE":"API DEGRADED"}),r(Z,()=>{var p;return((p=e())==null?void 0:p.enabled)===!1?"OFF":"ON"}),r(P,j($e,{get when(){return xe()},get fallback(){return(()=>{var p=Gi(),ae=p.firstChild,he=ae.nextSibling,Te=he.nextSibling;return r(ae,j(qi,{get project(){return te()},get sessions(){return Ue()},get selectedSessionId(){var ce;return((ce=ve())==null?void 0:ce.id)||null},get currentSessionId(){var ce,S;return((S=(ce=a())==null?void 0:ce.current_session)==null?void 0:S.session_id)||null},onSelectSession:ce=>u({kind:"session",projectId:ce.project_id,sessionId:ce.id})})),r(he,j(Ei,{get session(){return ve()},get project(){return te()},get status(){return e()},get capabilities(){return i()},get savings(){return n()},get runRequest(){return N()},onRunRequestHandled:()=>ie(null),onRefresh:Pe})),r(Te,j(Ji,{get status(){return e()},get capabilities(){return i()},get home(){return a()},get savings(){return n()},get session(){return ve()},get currentProject(){return te()},onRefresh:Pe,onCreatePlan:()=>pe("Create a concise structured plan for this session. Show the plan before execution, keep it deterministic, and include TDD steps if they are required."),onStartTdd:()=>pe("Start TDD for this session. Produce failing tests first, then implement the minimum fix, then verify the result.")})),p})()},get children(){var p=Zi();return r(p,j(ci,{get data(){return a()},get status(){return e()},get project(){return te()},get session(){return ve()},get flows(){return q()},onOpenStatus:()=>u({kind:"status"}),onOpenProject:Me,onOpenSession:ke,onTrinityAction:Pe})),p}}),null),se(p=>{var T,U,W;var ae=`indicator ${c()?"connected":"disconnected"}`,he=`indicator flash ${Q().tone}`,Te=Q().title,ce=`indicator ${((T=e())==null?void 0:T.backend_connected)??((U=e())==null?void 0:U.backendConnected)?"connected":"disconnected"}`,S=`indicator ${((W=e())==null?void 0:W.enabled)===!1?"disabled":"connected"}`;return ae!==p.e&&de(le,p.e=ae),he!==p.t&&de(Ae,p.t=he),Te!==p.a&&gt(Ae,"title",p.a=Te),ce!==p.o&&de(ye,p.o=ce),S!==p.i&&de(Z,p.i=S),p},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),f})()}const rn=document.getElementById("app");rn&&Gn(()=>j(Xi,{}),rn);