vibeostheog 0.26.0 → 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 +39 -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 -2
  5. package/dist/vibeOS.js +3439 -3519
  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 Dn=!1,In=(e,t)=>e===t,Ln=Symbol("solid-track"),Ct={equals:In};let rn=un;const Fe=1,Pt=2,on={owned:null,cleanups:null,context:null,owner:null},Rt={};var Z=null;let qt=null,Nn=null,M=null,ue=null,ze=null,Dt=0;function wt(e,t){const n=M,s=Z,i=e.length===0,l=t===void 0?s:t,a=i?on:{owned:null,cleanups:null,context:l?l.context:null,owner:l},o=i?e:()=>e(()=>Je(()=>_t(a)));Z=a,M=null;try{return Ze(o,!0)}finally{M=n,Z=s}}function K(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 Rn(e,t,n){const s=It(e,t,!0,Fe);rt(s)}function ne(e,t,n){const s=It(e,t,!1,Fe);rt(s)}function an(e,t,n){rn=zn;const s=It(e,t,!1,Fe);s.user=!0,ze?ze.push(s):rt(s)}function de(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 qn(e){return e&&typeof e=="object"&&"then"in e}function Wt(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,_=typeof s=="function"&&de(s);const u=new Set,[b,O]=(l.storage||K)(l.initialValue),[z,g]=K(void 0),[k,Q]=K(void 0,{equals:!1}),[D,$]=K(d?"ready":"unresolved");function I(U,v,C,T){return a===U&&(a=null,T!==void 0&&(d=!0),(U===o||v===o)&&l.onHydrated&&queueMicrotask(()=>l.onHydrated(T,{value:v})),o=Rt,se(v,C)),v}function se(U,v){Ze(()=>{v===void 0&&O(()=>U),$(v!==void 0?"errored":d?"ready":"unresolved"),g(v);for(const C of u.keys())C.decrement();u.clear()},!1)}function fe(){const U=Un,v=b(),C=z();if(C!==void 0&&!a)throw C;return M&&M.user,v}function ve(U=!0){if(U!==!1&&c)return;c=!1;const v=_?_():s;if(v==null||v===!1){I(a,Je(b));return}let C;const T=o!==Rt?o:Je(()=>{try{return i(v,{value:b(),refetching:U})}catch(q){C=q}});if(C!==void 0){I(a,void 0,kt(C),v);return}else if(!qn(T))return I(a,T,void 0,v),T;return a=T,"v"in T?(T.s===1?I(a,T.v,void 0,v):I(a,void 0,kt(T.v),v),T):(c=!0,queueMicrotask(()=>c=!1),Ze(()=>{$(d?"refreshing":"pending"),Q()},!1),T.then(q=>I(T,q,void 0,v),q=>I(T,void 0,kt(q),v)))}Object.defineProperties(fe,{state:{get:()=>D()},error:{get:()=>z()},loading:{get(){const U=D();return U==="pending"||U==="refreshing"}},latest:{get(){if(!d)return fe();const U=z();if(U&&!a)throw U;return b()}}});let ge=Z;return _?Rn(()=>(ge=Z,ve(!1))):ve(!1),[fe,{refetch:U=>Bn(ge,()=>ve(U)),mutate:O}]}function Je(e){if(M===null)return e();const t=M;M=null;try{return e()}finally{M=t}}function zt(e){return Z===null||(Z.cleanups===null?Z.cleanups=[e]:Z.cleanups.push(e)),e}function Bn(e,t){const n=Z,s=M;Z=e,M=null;try{return Ze(t,!0)}catch(i){Ft(i)}finally{Z=n,M=s}}const[Ki,Ji]=K(!1);let Un;function cn(){if(this.sources&&this.state)if(this.state===Fe)rt(this);else{const e=ue;ue=null,Ze(()=>At(this),!1),ue=e}if(M){const e=this.observers;if(!e||e[e.length-1]!==M){const t=e?e.length:0;M.sources?(M.sources.push(this),M.sourceSlots.push(t)):(M.sources=[this],M.sourceSlots=[t]),e?(e.push(M),this.observerSlots.push(M.sources.length-1)):(this.observers=[M],this.observerSlots=[M.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&&Ze(()=>{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?ue.push(l):ze.push(l),l.observers&&fn(l)),a||(l.state=Fe)}if(ue.length>1e6)throw ue=[],new Error},!1)),t}function rt(e){if(!e.fn)return;_t(e);const t=Dt;Mn(e,e.value,t)}function Mn(e,t,n){let s;const i=Z,l=M;M=Z=e;try{s=e.fn(t)}catch(a){return e.pure&&(e.state=Fe,e.owned&&e.owned.forEach(_t),e.owned=null),e.updatedAt=n+1,Ft(a)}finally{M=l,Z=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=Fe,i){const l={fn:e,state:s,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:Z,context:Z?Z.context:null,pure:n};return Z===null||Z!==on&&(Z.owned?Z.owned.push(l):Z.owned=[l]),l}function jt(e){if(e.state===0)return;if(e.state===Pt)return At(e);if(e.suspense&&Je(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===Fe)rt(e);else if(e.state===Pt){const s=ue;ue=null,Ze(()=>At(e,t[0]),!1),ue=s}}function Ze(e,t){if(ue)return e();let n=!1;t||(ue=[]),ze?n=!0:ze=[],Dt++;try{const s=e();return Vn(n),s}catch(s){n||(ze=null),ue=null,Ft(s)}}function Vn(e){if(ue&&(un(ue),ue=null),e)return;const t=ze;ze=null,t.length&&Ze(()=>rn(t),!1)}function un(e){for(let t=0;t<e.length;t++)jt(e[t])}function zn(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===Fe?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?ue.push(n):ze.push(n),n.observers&&fn(n))}}function _t(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--)_t(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)_t(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 kt(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function Ft(e,t=Z){throw kt(e)}const Fn=Symbol("fallback");function Gt(e){for(let t=0;t<e.length;t++)e[t]()}function Hn(e,t,n={}){let s=[],i=[],l=[],a=0,o=t.length>1?[]:null;return zt(()=>Gt(l)),()=>{let c=e()||[],d=c.length,_,u;return c[Ln],Je(()=>{let O,z,g,k,Q,D,$,I,se;if(d===0)a!==0&&(Gt(l),l=[],s=[],i=[],a=0,o&&(o=[])),n.fallback&&(s=[Fn],i[0]=wt(fe=>(l[0]=fe,n.fallback())),a=1);else if(a===0){for(i=new Array(d),u=0;u<d;u++)s[u]=c[u],i[u]=wt(b);a=d}else{for(g=new Array(d),k=new Array(d),o&&(Q=new Array(d)),D=0,$=Math.min(a,d);D<$&&s[D]===c[D];D++);for($=a-1,I=d-1;$>=D&&I>=D&&s[$]===c[I];$--,I--)g[I]=i[$],k[I]=l[$],o&&(Q[I]=o[$]);for(O=new Map,z=new Array(I+1),u=I;u>=D;u--)se=c[u],_=O.get(se),z[u]=_===void 0?-1:_,O.set(se,u);for(_=D;_<=$;_++)se=s[_],u=O.get(se),u!==void 0&&u!==-1?(g[u]=i[_],k[u]=l[_],o&&(Q[u]=o[_]),u=z[u],O.set(se,u)):l[_]();for(u=D;u<d;u++)u in g?(i[u]=g[u],l[u]=k[u],o&&(o[u]=Q[u],o[u](u))):i[u]=wt(b);i=i.slice(0,a=d),s=c.slice(0)}return i});function b(O){if(l[u]=O,o){const[z,g]=K(u);return o[u]=g,t(c[u],z)}return t(c[u])}}}function y(e,t){return Je(()=>e(t||{}))}const Kn=e=>`Stale read from <${e}>.`;function ce(e){const t="fallback"in e&&{fallback:()=>e.fallback};return de(Hn(()=>e.each,e.children,t||void 0))}function we(e){const t=e.keyed,n=de(()=>e.when,void 0,void 0),s=t?n:de(n,void 0,{equals:(i,l)=>!i==!l});return de(()=>{const i=s();if(i){const l=e.children;return typeof l=="function"&&l.length>0?Je(()=>l(t?i:()=>{if(!Je(s))throw Kn("Show");return n()})):l}return e.fallback},void 0,void 0)}const it=e=>de(()=>e());function Jn(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 _=l<s?o?n[o-1].nextSibling:n[l-o]:c;for(;o<l;)e.insertBefore(n[o++],_)}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 _=t[--i].nextSibling;e.insertBefore(n[o++],t[a++].nextSibling),e.insertBefore(n[--l],_),t[i]=n[l]}else{if(!d){d=new Map;let u=o;for(;u<l;)d.set(n[u],u++)}const _=d.get(t[a]);if(_!=null)if(o<_&&_<l){let u=a,b=1,O;for(;++u<i&&u<l&&!((O=d.get(t[u]))==null||O!==_+b);)b++;if(b>_-o){const z=t[a];for(;o<_;)e.insertBefore(n[o++],z)}else e.replaceChild(n[o++],t[a++])}else a++;else t[a++].remove()}}}const Xt="_$DX_DELEGATE";function Zn(e,t,n,s={}){let i;return wt(l=>{i=l,t===document?e():r(t,e(),t.firstChild?null:void 0,n)},s.owner),()=>{i(),t.textContent=""}}function S(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 gt(e,t=window.document){const n=t[Xt]||(t[Xt]=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,Gn))}}function pt(e,t,n){n==null?e.removeAttribute(t):e.setAttribute(t,n)}function oe(e,t){t==null?e.removeAttribute("class"):e.className=t}function xt(e,t,n,s){Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n}function Wn(e,t,n){if(!t)return n?pt(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 r(e,t,n,s){if(n!==void 0&&!s&&(s=[]),typeof t!="function")return Tt(e,t,s,n);ne(i=>Tt(e,t(),i,n),s)}function Gn(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 ne(()=>{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 ne(()=>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?Qt(e,o,s):Jn(e,n,o):(n&&st(e),Qt(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 _=String(o);c&&c.nodeType===3&&c.data===_?e.push(c):e.push(document.createTextNode(_))}}return i}function Qt(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 V(e){return JSON.parse(JSON.stringify(e))}function et(){return new Date().toISOString()}function Yt(e){return`$${e.toFixed(2)}`}const $t="proj_dashboard",lt="sess_vibeultra_exec",Bt="flow_tdd_live",Ye={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:et(),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:et(),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:V(Ye),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:$t,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:$t,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:$t,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:$t,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:V(Ye),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:V(Ye),results:[{step:Ye.steps[0],result:{ok:!0,state:"resolved"}},{step:Ye.steps[1],result:{ok:!0,tests:"drafted"}},{step:Ye.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 Xn(){return h.projects[0]}function Qn(){return h.sessions[0]}function yt(){const e=Qn(),t=Xn();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:V(h.sessionState.tags),template:V(h.sessionState.template),optimization_mode:h.sessionState.optimization_mode,orchestration_plan:V(Ye),blackbox:V(h.sessionState.blackbox),recommendation:h.sessionState.recommendation,notes:V(h.sessionState.notes),lifecycle:V(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:et()},mode_capabilities:V(h.capabilities)}}}function Yn(){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:Yt(e.cost_usd)},{label:"Session savings",value:Yt(n)},{label:"Pending TODOs",value:String(((s=h.status.todos)==null?void 0:s.pending)||0)}]},savings:V(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:V(h.sessionState.template),templates:[V(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:V(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:[V(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:V(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 es(){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 ts(){return V(h.status)}function ns(){return V(h.savings)}function ss(){return V(h.capabilities)}function is(){return V(h.projects)}function ls(e){const t=e?h.sessions.filter(n=>n.project_id===e):h.sessions;return V(t)}function rs(e){const t=e?h.flows.filter(n=>n.project_id===e||n.scope==="global"):h.flows;return V(t)}function os(e){return V(h.messages[e]||[])}function as(){return V(h.reports)}function cs(){return Yn()}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:V(yt().orchestration)}}function ds(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 us(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=et(),V(n)}function fs(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=et()):t==="resume"||t==="start"?(h.sessionState.status="active",h.sessionState.lifecycle.resumed_at=et()):t==="archive"?(h.sessionState.archived=!0,h.sessionState.status="archived",h.sessionState.lifecycle.archived_at=et()):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 hs(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 Ht=typeof window<"u"?window:{},ht=Ht.__VIBEOS_DASHBOARD_BASE__??"",Vt=Ht.__VIBEOS_DASHBOARD_TOKEN__??"";let St=null;function Kt(){const e={"Content-Type":"application/json"};return Vt&&(e.Authorization="Bearer "+Vt),e}async function _e(e,t){const n=await fetch(ht+e,{headers:Kt(),...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 ms(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(Ht.__VIBEOS_BACKEND_API_BASE__);if(e)return e;if(ht){const t=Et(ht).replace(/\/api\/v1\/dashboard$/,"");if(t!==Et(ht))return t}return St||(St=(async()=>{try{const t=await _e("/status"),n=Ot(t.backend_api_url);if(n)return n;const s=ms(t.backend_health_url);if(s)return s}catch{}return"https://api.vibetheog.com"})(),St)}async function mn(e,t){const n=await hn(),s=await fetch(n+e,{headers:Kt(),...t});if(!s.ok)throw new Error(`API ${s.status}: ${s.statusText}`);return s.json()}async function pe(e,t){try{return await e()}catch(n){if(es())return await t();throw n}}function _n(){return pe(()=>_e("/status"),()=>ts())}function pn(){return pe(()=>_e("/savings"),()=>ns())}function _s(){return pe(()=>_e("/sessions"),()=>({sessions:[],total_sessions:0}))}function ps(){return pe(()=>_e("/reports"),()=>as())}function vn(){return pe(()=>_e("/capabilities"),()=>ss())}function gn(){return pe(()=>_e("/dashboard/home"),()=>cs())}function bn(e){return pe(()=>_e(`/sessions/${encodeURIComponent(e)}`),()=>Mt(e))}function mt(e,t,n,s){const i={action:e};return t&&(i.slot=t),n&&(i.level=n),s&&(i.token=s),pe(()=>_e("/trinity",{method:"POST",body:JSON.stringify(i)}),()=>ds(e,t))}function vs(e,t){return pe(()=>_e(`/sessions/${encodeURIComponent(e)}/action`,{method:"POST",body:JSON.stringify(t)}),()=>{const n=fs(e,String(t.action||""));return{ok:!0,session:n.session,metrics:n.metrics,orchestration:n.orchestration??null}})}function gs(e="global",t){const n=new URLSearchParams;return n.set("scope",e),t&&n.set("project_id",t),_e(`/reality-check?${n.toString()}`)}function bs(e){return _e("/reality-check",{method:"POST",body:JSON.stringify(e)})}function $s(e){return pe(()=>_e("/web-search",{method:"POST",body:JSON.stringify(e)}),()=>hs(e.query))}async function Ss(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([_e("/status"),_e("/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(ht+"/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 ws(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 je(e,t){return mn(`/api/v1/orchestrator${e}`,t)}function Sn(){return pe(()=>je("/projects"),()=>({projects:is()}))}function wn(e,t){return je("/projects",{method:"POST",body:JSON.stringify({name:e,fingerprint:t})})}function ks(e,t){return je(`/projects/${e}`,{method:"PUT",body:JSON.stringify(t)})}function xs(e){return je(`/projects/${e}`,{method:"DELETE"})}function kn(e){return pe(()=>je(`/sessions${e?`?project_id=${encodeURIComponent(e)}`:""}`),()=>({sessions:ls(e)}))}function ys(e,t,n){return je("/sessions",{method:"POST",body:JSON.stringify({project_id:e,title:t,flow_id:n??null})})}function Cs(e,t){return pe(()=>je(`/sessions/${e}`,{method:"PUT",body:JSON.stringify(t)}),()=>({session:us(e,t)}))}function Ps(e){return je(`/sessions/${e}`,{method:"DELETE"})}function xn(e){return pe(()=>je(`/sessions/${e}/messages`),()=>({messages:os(e)}))}function yn(e){return pe(()=>je(`/flows${e?`?project_id=${encodeURIComponent(e)}`:""}`),()=>({flows:rs(e)}))}function js(e,t,n="global",s){return je("/flows",{method:"POST",body:JSON.stringify({name:e,graph:t,scope:n,project_id:s})})}function As(e,t){return je(`/flows/${e}`,{method:"PUT",body:JSON.stringify(t)})}function Ts(e){return je(`/flows/${e}`,{method:"DELETE"})}function Cn(e,t,n){const s=new AbortController;return(async()=>{var d,_,u;const i=await hn(),l=await fetch(i+`/api/v1/orchestrator/sessions/${e}/run`,{method:"POST",headers:Kt(),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:b,value:O}=await a.read();if(b)break;c+=o.decode(O,{stream:!0});let z;for(;(z=c.indexOf(`
2
-
3
- `))>=0;){const g=c.slice(0,z);c=c.slice(z+2);const k=(_=g.match(/event: (.*)/))==null?void 0:_[1],Q=g.slice(g.indexOf("data: ")+6);if(!(!k||g.indexOf("data: ")<0))try{n.onEvent(k,JSON.parse(Q))}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 Es=Object.freeze(Object.defineProperty({__proto__:null,blackboxAnalyze:ws,checkBackendHealth:Ss,createFlow:js,createProject:wn,createSession:ys,deleteFlow:Ts,deleteProject:xs,deleteSession:Ps,fetchCapabilities:vn,fetchDashboardHome:gn,fetchRealityCheck:gs,fetchReports:ps,fetchSavings:pn,fetchSessionDetail:bn,fetchSessions:_s,fetchStatus:_n,listFlows:yn,listMessages:xn,listProjects:Sn,listSessions:kn,openSSE:$n,postSessionAction:vs,postTrinity:mt,runSession:Cn,saveRealityCheck:bs,updateFlow:As,updateProject:ks,updateSession:Cs,webSearch:$s},Symbol.toStringTag,{value:"Module"})),Os="home";function Ds(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 Is(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 Ls=S('<aside class=sidebar><button title=Home><span class=sidebar-home-icon aria-hidden=true>⌂</span></button><button class="sidebar-icon-button sidebar-add-button"title="New project">+'),Ns=S("<button><span class=sidebar-project-icon>");function en(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 Rs(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 qs(e){return(()=>{var t=Ls(),n=t.firstChild,s=n.nextSibling;return n.$$click=()=>e.onSelect({kind:"home"}),r(t,y(ce,{get each(){return e.projects},fallback:[],children:i=>{const l=Ds(i);return(()=>{var a=Ns(),o=a.firstChild;return a.$$click=()=>e.onSelect({kind:"project",projectId:i.id}),r(o,()=>l.glyph),ne(c=>{var d=`sidebar-icon-button ${en(e.selection,{kind:"project",projectId:i.id})?"active":""}`,_=i.name,u=l.label,b=`--project-icon-bg:${Rs(i)};--project-icon-fg:#f5f5f5;`;return d!==c.e&&oe(a,c.e=d),_!==c.t&&pt(a,"title",c.t=_),u!==c.a&&pt(o,"title",c.a=u),c.o=Wn(o,b,c.o),c},{e:void 0,t:void 0,a:void 0,o:void 0}),a})()}}),s),xt(s,"click",e.onNewProject),ne(()=>oe(n,`sidebar-icon-button ${en(e.selection,{kind:"home"})?"active":""}`)),t})()}gt(["click"]);const Bs=["vibemax","vibeqmax","vibeultrax","vibelitex","raw"];function Us(e){return Bs.includes(String(e||"").toLowerCase())}const ft={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 Lt(e){const t=String(e||"").toLowerCase().trim();if(Us(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 Ms=[ft.vibeultrax,ft.vibeqmax,ft.vibemax,ft.vibelitex];function vt(e){const t=Lt(e);return ft[t]}function Pn(){return Ms}var Vs=S("<div class=home-view><div class=card><h3>Home</h3><p class=muted>loading executive summary..."),zs=S("<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>"),Fs=S("<div class=home-tag-row>"),Hs=S("<div class=home-todo-list>"),Ks=S('<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>'),Js=S("<div class=home-op-tile><span class=field-label></span><span class=home-op-value>"),Zs=S("<button>"),Ws=S("<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 "),Gs=S("<div class=home-summary-row><span class=home-summary-label></span><span class=home-summary-value>"),Xs=S("<span class=home-tag>"),Qs=S("<p class=muted>No pending TODOs."),Ys=S("<div class=home-todo-item><span class=home-todo-status></span><span>"),ei=S("<div><div><div class=home-session-item-title></div><div class=muted></div></div><div class=home-session-item-meta><span></span><span>");function Qe(e){return`$${Number(e||0).toFixed(2)}`}function ti(e){return e!=null&&e.id?`${e.title} · ${e.id.slice(0,8)}`:"No active session"}function ni(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return vt(t).name||vt(Lt(t)).name||t}catch{return t}}function si(e){if(!e.data)return Vs();const t=()=>Is({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,_,u,b;return String(((d=(c=e.data)==null?void 0:c.current_session)==null?void 0:d.optimization_mode)||((_=s())==null?void 0:_.optimization_mode)||((b=(u=e.data)==null?void 0:u.home.cards.find(O=>O.label.toLowerCase()==="mode"))==null?void 0:b.value)||"auto").trim().toLowerCase()},l=()=>ni(i()),a=()=>Pn().map(c=>({...c,active:i()===c.id})),o=()=>{var c,d,_,u,b,O;return[{label:"mode",value:l()},{label:"slot",value:((c=s())==null?void 0:c.active_slot)||"brain"},{label:"model",value:((_=(d=s())==null?void 0:d.current_model)==null?void 0:_.split("/").pop())||"unknown"},{label:"lock",value:(u=s())!=null&&u.model_locked?"locked":"live"},{label:"backend",value:(b=s())!=null&&b.backend_connected?"online":"degraded"},{label:"todos",value:String(((O=e.data)==null?void 0:O.totals.pending_todos)||0)}]};return(()=>{var c=Ks(),d=c.firstChild,_=d.firstChild,u=_.firstChild,b=u.nextSibling,O=b.nextSibling,z=_.nextSibling,g=z.firstChild,k=g.nextSibling,Q=k.nextSibling,D=d.nextSibling,$=D.nextSibling,I=$.nextSibling,se=I.firstChild,fe=se.firstChild,ve=fe.nextSibling,ge=se.nextSibling,U=ge.firstChild,v=U.nextSibling,C=v.nextSibling,T=C.firstChild,q=T.firstChild,X=q.nextSibling,re=T.nextSibling,Ee=re.firstChild,Oe=Ee.nextSibling,Ue=I.nextSibling,De=Ue.firstChild,Ie=De.firstChild,Y=Ie.nextSibling,be=Y.firstChild,Le=be.nextSibling,f=Y.nextSibling,x=f.firstChild;x.firstChild;var L=x.nextSibling;L.firstChild;var N=L.nextSibling;N.firstChild;var B=N.nextSibling;B.firstChild;var W=f.nextSibling,F=De.nextSibling,ae=F.firstChild,ie=ae.nextSibling,te=ie.firstChild,ke=te.firstChild,he=te.nextSibling,Ne=he.firstChild,j=F.nextSibling,le=j.firstChild,$e=le.nextSibling,me=$e.nextSibling;me.firstChild;var E=me.nextSibling,R=E.firstChild;R.firstChild;var Me=R.nextSibling;Me.firstChild;var Be=j.nextSibling,He=Be.firstChild,tt=He.nextSibling;return r(b,()=>e.data.home.title),r(O,()=>e.data.home.recommendation||e.data.home.subtitle),xt(g,"click",e.onOpenSession),xt(k,"click",e.onOpenProject),xt(Q,"click",e.onOpenStatus),r(D,y(ce,{get each(){return o()},children:w=>(()=>{var A=Js(),H=A.firstChild,ee=H.nextSibling;return r(H,()=>w.label),r(ee,()=>w.value),A})()})),r(c,y(we,{get when(){return s()},get children(){var w=zs(),A=w.firstChild;A.firstChild;var H=A.nextSibling,ee=H.firstChild,xe=ee.nextSibling,ye=H.nextSibling,Ae=ye.firstChild,Re=Ae.nextSibling,p=ye.nextSibling,P=p.firstChild,Ce=P.nextSibling;return r(A,y(ce,{each:["brain","medium","cheap"],children:J=>(()=>{var Se=Zs();return Se.$$click=()=>mt("set",J).then(e.onTrinityAction).catch(()=>{}),r(Se,J),ne(()=>{var qe;return oe(Se,`qc-slot ${((qe=s())==null?void 0:qe.active_slot)===J?"active":""}`)}),Se})()}),null),r(xe,l),r(Re,()=>{var J;return((J=s())==null?void 0:J.thinking)??"brief"}),r(Ce,()=>{var J;return(J=s())!=null&&J.enforce?"on":"off"}),ne(()=>{var J;return oe(Ce,`qc-pill ${(J=s())!=null&&J.enforce?"on":"off"}`)}),w}}),$),r($,y(ce,{get each(){return a()},children:w=>(()=>{var A=Ws(),H=A.firstChild,ee=H.firstChild,xe=ee.nextSibling,ye=H.nextSibling,Ae=ye.nextSibling,Re=Ae.firstChild;Re.firstChild;var p=Re.nextSibling;p.firstChild;var P=p.nextSibling;return P.firstChild,r(ee,()=>w.name),r(xe,()=>w.pipeline.join(" → ")),r(ye,()=>w.desc),r(Re,()=>w.thinking,null),r(p,()=>w.flow,null),r(P,()=>w.tdd,null),ne(()=>oe(A,`card home-mode-card ${w.active?"active":""}`)),A})()})),r(ve,y(ce,{get each(){return e.data.home.cards},children:w=>(()=>{var A=Gs(),H=A.firstChild,ee=H.nextSibling;return r(H,()=>w.label),r(ee,()=>w.value),A})()})),r(v,()=>e.data.home.recommendation||"Continue with the active session."),r(X,()=>ti(e.session)),r(Oe,t),r(be,()=>e.data.current_session.project_name),r(Le,()=>e.data.current_session.status),r(x,()=>e.data.current_session.session_id||"none",null),r(L,l,null),r(N,()=>Qe(e.data.current_session.cost_usd),null),r(B,()=>Qe((e.data.current_session.delegation_savings_usd||0)+(e.data.current_session.cache_savings_usd||0)),null),r(W,()=>e.data.current_session.recommendation),r(De,y(we,{get when(){var w;return(w=e.data.current_session.tags)==null?void 0:w.length},get children(){var w=Fs();return r(w,y(ce,{get each(){return e.data.current_session.tags},children:A=>(()=>{var H=Xs();return r(H,A),H})()})),w}}),null),r(F,y(we,{get when(){return n().length},get fallback(){return Qs()},get children(){var w=Hs();return r(w,y(ce,{get each(){return n()},children:A=>(()=>{var H=Ys(),ee=H.firstChild,xe=ee.nextSibling;return r(ee,()=>String(A.status||"pending").toUpperCase()),r(xe,()=>A.title||A.text||A.content||"Untitled task"),H})()})),w}}),ie),r(te,()=>e.data.totals.pending_todos,ke),r(he,()=>e.data.totals.total_sessions,Ne),r($e,()=>Qe(e.data.totals.total_savings_usd)),r(me,()=>Qe(e.data.totals.current_session_savings_usd),null),r(R,()=>{var w,A;return Qe((A=(w=e.data.savings)==null?void 0:w.lifetime)==null?void 0:A.delegation_usd)},null),r(Me,()=>{var w,A;return Qe((A=(w=e.data.savings)==null?void 0:w.lifetime)==null?void 0:A.cache_usd)},null),r(tt,y(ce,{get each(){return e.data.sessions.slice(0,5)},children:w=>(()=>{var A=ei(),H=A.firstChild,ee=H.firstChild,xe=ee.nextSibling,ye=H.nextSibling,Ae=ye.firstChild,Re=Ae.nextSibling;return r(ee,()=>w.template_label||w.session_id.slice(0,14)),r(xe,()=>w.recommendation),r(Ae,()=>w.template_label),r(Re,()=>Qe(w.delegation_savings_usd+w.cache_savings_usd)),ne(()=>oe(A,`home-session-item ${w.is_current?"current":""}`)),A})()})),ne(()=>oe(Le,`badge ${e.data.current_session.locked?"off":"on"}`)),c})()}gt(["click"]);const ii="modulepreload",li=function(e){return"/"+e},tn={},ri=function(t,n,s){let i=Promise.resolve();if(n&&n.length>0){let a=function(d){return Promise.all(d.map(_=>Promise.resolve(_).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=li(d),d in tn)return;tn[d]=!0;const _=d.endsWith(".css"),u=_?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${u}`))return;const b=document.createElement("link");if(b.rel=_?"stylesheet":ii,_||(b.as="script"),b.crossOrigin="",b.href=d,c&&b.setAttribute("nonce",c),document.head.appendChild(b),_)return new Promise((O,z)=>{b.addEventListener("load",O),b.addEventListener("error",()=>z(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 oi=S("<span class=run-step-skip>blocked — "),ai=S("<code class=run-step-result>"),ci=S("<div><span class=run-step-tool></span><span class=run-step-label>"),di=S('<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>'),ui=S('<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>'),fi=S('<div class="msg-content mono">'),hi=S('<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'),mi=S("<div class=error>"),_i=S('<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>'),pi=S('<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 '),vi=S("<p class=muted>Pick a session link from column 2 to open the chat and live run stream."),gi=S("<div class=run-step><span class=run-step-tool></span><span class=run-step-label> · "),bi=S("<p class=muted>No chat yet. Use the composer below to run a structured session prompt."),$i=S("<details class=run-trace-details><summary>structured steps (<!>)</summary><div class=run-trace>"),Si=S("<div><div class=msg-role></div><div class=msg-content>"),wi=S("<button class=shell-link>");function nn(e){const t=e.r;return(()=>{var n=ci(),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,y(we,{get when(){return t.skipped},get children(){var l=oi();return l.firstChild,r(l,()=>t.reason,null),l}}),null),r(n,y(we,{get when(){return it(()=>!t.skipped)()&&t.result},get children(){var l=ai();return r(l,()=>JSON.stringify(t.result).slice(0,160)),l}}),null),ne(()=>oe(n,`run-step ${t.skipped?"skipped":"done"}`)),n})()}function sn(e){return`$${Number(e||0).toFixed(2)}`}function ut(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function ki(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return vt(Lt(t)).name||t}catch{return t}}function xi(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 yi(e){const[t,{mutate:n,refetch:s}]=Wt(()=>{var v;return((v=e.session)==null?void 0:v.id)||null},v=>v?bn(v):Promise.resolve({session:null})),[i,{refetch:l}]=Wt(()=>{var v;return((v=e.session)==null?void 0:v.id)||null},v=>v?xn(v):Promise.resolve({messages:[]})),[a,o]=K(""),[c,d]=K(!1),[_,u]=K(null),[b,O]=K(null),[z,g]=K([]),[k,Q]=K(null);let D=null;zt(()=>D==null?void 0:D());const $=de(()=>{var v;return(v=t())==null?void 0:v.session}),I=de(()=>{var v,C;return b()||((v=$())==null?void 0:v.orchestration_plan)||((C=e.status)==null?void 0:C.orchestration_plan)||null}),se=de(()=>{var v,C;return String(((v=$())==null?void 0:v.optimization_mode)||((C=e.status)==null?void 0:C.optimization_mode)||"auto").toLowerCase()}),fe=de(()=>ki(se())),ve=de(()=>{var v,C;return((v=e.status)==null?void 0:v.backend_connected)??((C=e.status)==null?void 0:C.backendConnected)??!1}),ge=v=>{var q;const C=e.session,T=String(v||"").trim();if(!(!C||!T||c())){if((q=$())!=null&&q.locked){Q("Session is locked. Unlock it before running a deterministic flow.");return}D==null||D(),d(!0),Q(null),O(null),g([]),D=Cn(C.id,{prompt:T,query:T,execution_policy:"strict-deterministic"},{onEvent:(X,re)=>{X==="plan"?O(re.plan):X==="step"?g(Ee=>[...Ee,re]):X==="done"?(d(!1),D=null,o(""),O(null),g([]),l(),s(),e.onRefresh()):X==="error"&&(Q(re.message||"run failed"),d(!1),D=null)},onError:X=>{Q(X.message),d(!1),D=null},onDone:()=>d(!1)})}};an(()=>{const v=e.runRequest,C=e.session;!v||!C||v.sessionId!==C.id||(o(v.prompt),e.onRunRequestHandled(),ge(v.prompt))});const U=async v=>{const C=e.session;if(C){u(v),Q(null);try{const{postSessionAction:T}=await ri(async()=>{const{postSessionAction:X}=await Promise.resolve().then(()=>Es);return{postSessionAction:X}},void 0),q=await T(C.id,{action:v});n(X=>X&&{...X,session:q.session,metrics:q.metrics,orchestration:q.orchestration??null}),s(),e.onRefresh()}catch(T){Q(T.message)}finally{u(null)}}};return(()=>{var v=pi(),C=v.firstChild,T=C.firstChild,q=T.firstChild,X=q.nextSibling,re=X.firstChild,Ee=T.nextSibling,Oe=Ee.firstChild;Oe.firstChild;var Ue=Oe.nextSibling;Ue.firstChild;var De=Ue.nextSibling;De.firstChild;var Ie=De.nextSibling;return Ie.firstChild,r(X,(()=>{var Y=it(()=>!!e.session);return()=>Y()?e.session.title:"Select a session from column 2"})(),re),r(Oe,()=>fe()||"auto",null),r(Ue,()=>{var Y;return((Y=e.status)==null?void 0:Y.active_slot)||"brain"},null),r(De,()=>{var Y;return(((Y=e.status)==null?void 0:Y.current_model)||"unknown").split("/").pop()},null),r(Ie,()=>ve()?"live":"degraded",null),r(v,y(we,{get when(){return e.session},get fallback(){return vi()},get children(){return[(()=>{var Y=di(),be=Y.firstChild,Le=be.firstChild,f=Le.nextSibling,x=f.nextSibling,L=x.firstChild,N=L.firstChild,B=L.nextSibling;B.firstChild;var W=B.nextSibling,F=W.nextSibling,ae=be.nextSibling,ie=ae.firstChild,te=ie.firstChild,ke=te.nextSibling,he=ie.nextSibling,Ne=he.firstChild,j=Ne.nextSibling,le=he.nextSibling,$e=le.firstChild,me=$e.nextSibling;return r(f,()=>e.session.title),r(L,()=>e.session.id.slice(0,18),N),r(B,()=>{var E,R;return((E=e.project)==null?void 0:E.name)||((R=$())==null?void 0:R.project_name)||"selected"},null),r(W,()=>ve()?"backend online":"backend degraded"),r(F,(()=>{var E=it(()=>{var R;return!!((R=$())!=null&&R.locked)});return()=>{var R;return E()?"locked":((R=$())==null?void 0:R.status)||"active"}})()),r(ke,()=>{var E,R;return sn((((E=$())==null?void 0:E.delegation_savings_usd)||0)+(((R=$())==null?void 0:R.cache_savings_usd)||0))}),r(j,()=>{var E;return sn((E=$())==null?void 0:E.cost_usd)}),r(me,(()=>{var E=it(()=>{var R;return!!((R=$())!=null&&R.locked)});return()=>{var R;return E()?"locked":((R=$())==null?void 0:R.status)||"active"}})()),Y})(),(()=>{var Y=_i(),be=Y.firstChild,Le=be.nextSibling,f=Le.firstChild,x=f.nextSibling,L=x.firstChild,N=L.nextSibling,B=Le.nextSibling,W=B.firstChild,F=W.firstChild,ae=F.nextSibling,ie=ae.firstChild,te=ie.firstChild,ke=te.nextSibling,he=ie.nextSibling,Ne=he.firstChild,j=Ne.nextSibling,le=he.nextSibling,$e=le.firstChild,me=$e.nextSibling,E=le.nextSibling,R=E.firstChild,Me=R.nextSibling,Be=E.nextSibling,He=Be.firstChild,tt=He.nextSibling,w=W.nextSibling,A=w.firstChild,H=A.nextSibling,ee=H.firstChild;ee.firstChild;var xe=ee.nextSibling;xe.firstChild;var ye=xe.nextSibling;ye.firstChild;var Ae=ye.nextSibling;Ae.firstChild;var Re=B.nextSibling;return r(be,y(we,{get when(){return I()},get children(){var p=ui(),P=p.firstChild,Ce=P.nextSibling,J=Ce.nextSibling,Se=J.firstChild,qe=Se.nextSibling,ot=qe.firstChild,nt=J.nextSibling;return r(Ce,()=>I().recommended_label||"Structured plan"),r(Se,()=>I().recommended_next_action||I().reason),r(qe,()=>Math.round(Number(I().confidence||0)*100),ot),r(nt,y(ce,{get each(){return I().steps||[]},children:(We,at)=>(()=>{var bt=gi(),ct=bt.firstChild,dt=ct.nextSibling,Nt=dt.firstChild;return r(ct,()=>at()+1),r(dt,()=>We.tool,Nt),r(dt,()=>We.label,null),bt})()})),p}}),null),r(be,y(ce,{get each(){var p;return((p=i())==null?void 0:p.messages)||[]},get fallback(){return bi()},children:p=>(()=>{var P=Si(),Ce=P.firstChild,J=Ce.nextSibling;return r(Ce,()=>p.role),r(J,()=>p.content||"(no summary)"),r(P,y(we,{get when(){return it(()=>!!(p.role==="assistant"&&p.results))()&&p.results.length},get children(){var Se=$i(),qe=Se.firstChild,ot=qe.firstChild,nt=ot.nextSibling;nt.nextSibling;var We=qe.nextSibling;return r(qe,()=>p.results.length,nt),r(We,y(ce,{get each(){return p.results},children:at=>y(nn,{r:at})})),Se}}),null),ne(()=>oe(P,`msg ${p.role}`)),P})()}),null),r(be,y(we,{get when(){return c()},get children(){var p=hi(),P=p.firstChild,Ce=P.nextSibling;return r(p,y(we,{get when(){return b()},get children(){var J=fi();return r(J,()=>b().steps.map(Se=>Se.tool).join(" → ")),J}}),Ce),r(Ce,y(ce,{get each(){return z()},children:J=>y(nn,{r:J})})),p}}),null),f.$$keydown=p=>{p.key==="Enter"&&(p.metaKey||p.ctrlKey)&&ge(a())},f.$$input=p=>o(p.currentTarget.value),N.$$click=()=>ge(a()),r(N,()=>c()?"running…":"run structured flow"),r(ke,()=>{var p,P;return((p=$())==null?void 0:p.project_name)||((P=e.project)==null?void 0:P.name)||"Current project"}),r(j,()=>{var p;return((p=$())==null?void 0:p.status)||"active"}),r(me,()=>fe()||"auto"),r(Me,()=>{var p;return ut((p=$())==null?void 0:p.started_at)}),r(tt,()=>{var p;return(p=$())!=null&&p.locked?"locked":"mutable"}),r(ee,()=>{var p,P;return ut((P=(p=$())==null?void 0:p.lifecycle)==null?void 0:P.created_at)},null),r(xe,()=>{var p,P;return ut((P=(p=$())==null?void 0:p.lifecycle)==null?void 0:P.paused_at)},null),r(ye,()=>{var p,P;return ut((P=(p=$())==null?void 0:p.lifecycle)==null?void 0:P.resumed_at)},null),r(Ae,()=>{var p,P;return ut((P=(p=$())==null?void 0:p.lifecycle)==null?void 0:P.archived_at)},null),r(Re,y(ce,{get each(){return xi(t())},children:p=>(()=>{var P=wi();return P.$$click=()=>void U(p),r(P,()=>_()===p?"…":p),ne(()=>P.disabled=_()===p),P})()})),r(Y,y(we,{get when(){return k()},get children(){var p=mi();return r(p,k),p}}),null),ne(()=>{var p;return N.disabled=c()||!a().trim()||((p=$())==null?void 0:p.locked)}),ne(()=>f.value=a()),Y})()]}}),null),v})()}gt(["input","keydown","click"]);var Ci=S("<div class=project-session-list>"),Pi=S('<div class="card panel project-sessions-panel"><div class=panel-head><div><div class=column-badge-row><span class=column-badge>2</span><h3>Sessions</h3></div><div class=panel-head-copy>selected project sessions only'),ji=S("<p class=muted>Pick a project from column 1 to see its sessions."),Ai=S("<p class=muted>No sessions in this project yet."),Ti=S("<button><span class=project-session-link-title></span><span class=project-session-link-meta>");function Ei(e,t){return t===e.id?"current":""}function Oi(e){return(()=>{var t=Pi();return t.firstChild,r(t,y(we,{get when(){return e.project},get fallback(){return ji()},get children(){var n=Ci();return r(n,y(ce,{get each(){return e.sessions},get fallback(){return Ai()},children:s=>(()=>{var i=Ti(),l=i.firstChild,a=l.nextSibling;return i.$$click=()=>e.onSelectSession(s),r(l,()=>s.title),r(a,(()=>{var o=it(()=>e.currentSessionId===s.id);return()=>o()?"current":s.id.slice(0,8)})()),ne(()=>oe(i,`project-session-link ${e.selectedSessionId===s.id?"active":""} ${Ei(s,e.currentSessionId)}`)),i})()})),n}}),null),t})()}gt(["click"]);var Di=S("<div class=result-box><code></code><button class=dismiss-btn>x"),Ii=S('<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>'),Li=S("<button><strong></strong><span>"),Ni=S("<p class=muted>No resolved plan yet. Use the chat or create a plan from here."),Ri=S("<div class=control-flow-step><span></span><div><strong></strong><div class=muted> · ");const qi=Pn();function Bi(e){return`$${Number(e||0).toFixed(2)}`}function Ui(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return vt(t).name||vt(Lt(t)).name||t}catch{return t}}function Mi(e){const[t,n]=K(null),[s,i]=K(null),[l,a]=K(""),o=de(()=>{var g,k;return String(((g=e.status)==null?void 0:g.optimization_mode)||((k=e.status)==null?void 0:k.native_agent_mode)||"auto").toLowerCase()}),c=de(()=>Ui(o())),d=de(()=>{var g,k;return((k=(g=e.status)==null?void 0:g.orchestration_plan)==null?void 0:k.steps)||[]}),_=de(()=>{var g,k;return((g=e.status)==null?void 0:g.backend_connected)??((k=e.status)==null?void 0:k.backendConnected)??!1}),u=de(()=>{var g;return((g=e.status)==null?void 0:g.api_fallback)===!0?"fallback":_()?"live":"unknown"}),b=async g=>{if(!t()){n(`mode:${g}`),i(null);try{const k=await mt("mode",g);i(k.ok?String(k.result||`mode:${g}`):String(k.error||"failed")),e.onRefresh()}catch(k){i(k.message)}finally{n(null)}}},O=async()=>{const g=l().trim();if(!(!g||t())){n("token"),i(null);try{const k=await mt("api-token","",void 0,g);i(k.ok?"API token updated":String(k.error||"failed")),a(""),e.onRefresh()}catch(k){i(k.message)}finally{n(null)}}},z=async()=>{if(!t()){n("token"),i(null);try{const g=await mt("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=Ii(),k=g.firstChild,Q=k.firstChild,D=Q.nextSibling,$=k.nextSibling,I=$.firstChild,se=I.nextSibling,fe=se.firstChild,ve=fe.firstChild,ge=ve.nextSibling,U=fe.nextSibling,v=U.firstChild,C=v.nextSibling,T=se.nextSibling,q=$.nextSibling,X=q.firstChild,re=X.firstChild,Ee=re.nextSibling,Oe=X.nextSibling,Ue=Oe.firstChild,De=Ue.nextSibling,Ie=Oe.nextSibling,Y=Ie.firstChild,be=Y.nextSibling,Le=Ie.nextSibling,f=Le.firstChild,x=f.nextSibling,L=q.nextSibling,N=L.firstChild,B=N.nextSibling,W=B.nextSibling,F=W.firstChild,ae=F.nextSibling,ie=L.nextSibling,te=ie.firstChild,ke=te.nextSibling,he=ke.firstChild,Ne=he.nextSibling,j=ke.nextSibling,le=ie.nextSibling,$e=le.firstChild,me=$e.nextSibling,E=me.firstChild,R=E.nextSibling,Me=me.nextSibling,Be=Me.nextSibling,He=Be.firstChild,tt=He.nextSibling;tt.nextSibling;var w=le.nextSibling,A=w.firstChild,H=A.nextSibling,ee=H.firstChild,xe=ee.firstChild,ye=xe.nextSibling,Ae=ee.nextSibling,Re=Ae.firstChild,p=Re.nextSibling,P=Ae.nextSibling,Ce=P.firstChild,J=Ce.nextSibling,Se=P.nextSibling,qe=Se.firstChild,ot=qe.nextSibling,nt=H.nextSibling,We=nt.firstChild,at=We.firstChild,bt=at.nextSibling,ct=We.nextSibling,dt=ct.firstChild,Nt=dt.nextSibling,Jt=ct.nextSibling,jn=Jt.firstChild,An=jn.nextSibling,Tn=Jt.nextSibling,En=Tn.firstChild,On=En.nextSibling;return r(D,()=>_()?"LIVE":"DEGRADED"),r(ge,c),r(C,()=>{var m;return((m=e.status)==null?void 0:m.thinking)||"brief"}),r(T,y(ce,{each:qi,children:m=>(()=>{var G=Li(),Pe=G.firstChild,Ge=Pe.nextSibling;return G.$$click=()=>void b(m.id),r(Pe,()=>m.name),r(Ge,()=>m.pipeline.join(" → ")),ne(Te=>{var Zt;var Ke=`mode-card-btn ${((Zt=e.status)==null?void 0:Zt.optimization_mode)===m.id?"active":""}`,Ve=t()===`mode:${m.id}`||m.id==="raw",Xe=m.desc;return Ke!==Te.e&&oe(G,Te.e=Ke),Ve!==Te.t&&(G.disabled=Te.t=Ve),Xe!==Te.a&&pt(G,"title",Te.a=Xe),Te},{e:void 0,t:void 0,a:void 0}),G})()})),r(Ee,u),r(De,()=>_()?"live":"degraded"),r(be,()=>{var m;return((m=e.status)==null?void 0:m.active_slot)||"brain"}),r(x,()=>{var m;return(((m=e.status)==null?void 0:m.current_model)||"unknown").split("/").pop()}),B.$$input=m=>a(m.currentTarget.value),F.$$click=()=>void O(),ae.$$click=()=>void z(),r(he,()=>{var m;return((m=e.currentProject)==null?void 0:m.name)||"No project selected"}),r(Ne,()=>{var m;return(m=e.status)!=null&&m.flow_enforcer?"ON":"OFF"}),r(j,y(ce,{get each(){return d()},get fallback(){return Ni()},children:(m,G)=>(()=>{var Pe=Ri(),Ge=Pe.firstChild,Te=Ge.nextSibling,Ke=Te.firstChild,Ve=Ke.nextSibling,Xe=Ve.firstChild;return r(Ge,()=>G()+1),r(Ke,()=>m.label),r(Ve,()=>m.tool,Xe),r(Ve,()=>m.reason,null),Pe})()})),E.$$click=()=>{n("plan"),e.onCreatePlan(),e.onRefresh(),n(null)},R.$$click=()=>{n("tdd"),e.onStartTdd(),e.onRefresh(),n(null)},r(Be,()=>{var m,G;return(G=(m=e.capabilities)==null?void 0:m.web_search)!=null&&G.enabled?"on":"off"},tt),r(Be,()=>{var m,G;return(G=(m=e.capabilities)==null?void 0:m.tdd)!=null&&G.enabled?"on":"off"},null),r(ye,()=>{var m;return((m=e.status)==null?void 0:m.active_slot)||"brain"}),r(p,()=>{var m;return(((m=e.status)==null?void 0:m.current_model)||"unknown").split("/").pop()}),r(J,()=>{var m;return Bi((m=e.savings)==null?void 0:m.savings_rate_per_hour)}),r(ot,()=>{var m,G,Pe;return((G=(m=e.status)==null?void 0:m.todos)==null?void 0:G.pending)??((Pe=e.home)==null?void 0:Pe.totals.pending_todos)??0}),r(bt,()=>{var m;return((m=e.session)==null?void 0:m.title)||"none"}),r(Nt,()=>{var m;return(m=e.status)!=null&&m.backend_connected?"online":"degraded"}),r(An,()=>{var m;return(m=e.status)!=null&&m.model_locked?"locked":"open"}),r(On,()=>{var m;return(m=e.status)!=null&&m.flow_enforcer?"on":"off"}),r(g,y(we,{get when(){return s()},get children(){var m=Di(),G=m.firstChild,Pe=G.nextSibling;return r(G,()=>s()),Pe.$$click=()=>i(null),m}}),null),ne(m=>{var Xe;var G=`badge ${_()?"on":"off"}`,Pe=!l().trim()||t()==="token",Ge=t()==="token",Te=`badge ${(Xe=e.status)!=null&&Xe.flow_enforcer?"on":"off"}`,Ke=!e.session||t()==="plan",Ve=!e.session||t()==="tdd";return G!==m.e&&oe(D,m.e=G),Pe!==m.t&&(F.disabled=m.t=Pe),Ge!==m.a&&(ae.disabled=m.a=Ge),Te!==m.o&&oe(Ne,m.o=Te),Ke!==m.i&&(E.disabled=m.i=Ke),Ve!==m.n&&(R.disabled=m.n=Ve),m},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),ne(()=>B.value=l()),g})()}gt(["input","click"]);var Vi=S("<section class=home-shell>"),zi=S('<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>'),Fi=S('<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 Hi(){const[e,t]=K(null),[n,s]=K(null),[i,l]=K(null),[a,o]=K(null),[c,d]=K(!1),[_,u]=K({kind:Os}),[b,O]=K([]),[z,g]=K([]),[k,Q]=K({}),[D,$]=K(null),I=()=>_n().then(f=>{t(f),d(!0)}).catch(()=>d(!1)),se=()=>pn().then(f=>{s(f),d(!0)}).catch(()=>d(!1)),fe=()=>vn().then(l).catch(()=>{}),ve=()=>gn().then(o).catch(()=>{}),ge=()=>Sn().then(f=>O(f.projects)).catch(()=>{}),U=f=>yn(f||void 0).then(x=>g(x.flows)).catch(()=>{}),v=()=>kn().then(f=>{var L;const x={};for(const N of f.sessions)(x[L=N.project_id]||(x[L]=[])).push(N);Q(x)}).catch(()=>{}),C=$n(f=>{t(f.status),s(f.savings),d(!0)});I(),se(),fe(),ge(),v(),ve(),zt(C);const T=async()=>{const f=window.prompt("Project name");if(!f||!f.trim())return;const x=await wn(f.trim());await ge(),await ve(),u({kind:"project",projectId:x.project.id})},q=()=>{var N,B,W,F,ae,ie;const f=_();if(f.kind==="project"||f.kind==="session")return b().find(te=>te.id===f.projectId)||null;const x=((B=(N=a())==null?void 0:N.current_session)==null?void 0:B.project_fingerprint)||((W=e())==null?void 0:W.current_project_fingerprint)||"",L=((ae=(F=a())==null?void 0:F.current_session)==null?void 0:ae.project_name)||((ie=e())==null?void 0:ie.current_project_name)||"";return b().find(te=>te.fingerprint&&te.fingerprint===x)||b().find(te=>te.name===L)||null},X=()=>{const f=q();return f?k()[f.id]||[]:[]},re=()=>{var B,W;const f=_();if(f.kind==="session")return(k()[f.projectId]||[]).find(F=>F.id===f.sessionId)||null;const x=((W=(B=a())==null?void 0:B.current_session)==null?void 0:W.session_id)||"";if(!x)return null;const L=q();if(!L)return null;const N=(k()[L.id]||[]).find(F=>F.id===x)||null;return N&&N.project_id===L.id?N:null};an(()=>{const f=q();U((f==null?void 0:f.id)||null)});const Ee=()=>{const f=e();if(!f)return{label:"API OFF",tone:"disconnected",title:"backend status unavailable"};const x=f.backend_connected??f.backendConnected,L=f.backend_api_url||f.backend_health_url||"unknown target",N=f.backend_health_checked_at?new Date(f.backend_health_checked_at).toLocaleTimeString():null;if(x){const W=typeof f.backend_health_age_ms=="number"?` ${Math.max(0,Math.round(f.backend_health_age_ms/1e3))}s`:"",F=typeof f.backend_health_latency_ms=="number"?` ${f.backend_health_latency_ms}ms`:"";return{label:`⚡ BACKEND${W}`,tone:"connected",title:`${L}${F}${N?` · checked ${N}`:""}`}}const B=f.backend_health_error||(typeof f.backend_health_status=="number"?`HTTP ${f.backend_health_status}`:"unreachable");return{label:"API OFF",tone:"disconnected",title:`${L} · ${B}${N?` · checked ${N}`:""}`}},Oe=f=>{const x=re();x&&$({sessionId:x.id,prompt:f})},Ue=()=>{const f=q()||b()[0]||null;f&&u({kind:"project",projectId:f.id})},De=()=>{const f=re()||null;f&&u({kind:"session",projectId:f.project_id,sessionId:f.id})},Ie=()=>{var f;I(),se(),ve(),ge(),v(),U(((f=q())==null?void 0:f.id)||null)},Y=()=>_().kind==="home"||_().kind==="status",be=()=>{var f,x,L;return _().kind==="status"?"Status":_().kind==="home"?"Dashboard":((f=q())==null?void 0:f.name)||((L=(x=a())==null?void 0:x.current_session)==null?void 0:L.project_name)||"Home"},Le=()=>{var f,x,L,N,B,W,F,ae,ie;return _().kind==="home"?((x=(f=a())==null?void 0:f.home)==null?void 0:x.title)||((N=(L=a())==null?void 0:L.home)==null?void 0:N.subtitle)||"Operational dashboard overview":_().kind==="status"?((W=(B=a())==null?void 0:B.home)==null?void 0:W.subtitle)||"Runtime status":((F=re())==null?void 0:F.title)||((ie=(ae=a())==null?void 0:ae.home)==null?void 0:ie.subtitle)||"OpenCode-style operational dashboard"};return(()=>{var f=zi(),x=f.firstChild,L=x.firstChild,N=L.firstChild,B=N.firstChild,W=B.firstChild,F=W.nextSibling,ae=B.nextSibling,ie=N.nextSibling,te=ie.firstChild,ke=te.nextSibling,he=ke.nextSibling,Ne=he.nextSibling;return r(f,y(qs,{get projects(){return b()},get selection(){return _()},onSelect:u,onNewProject:T}),x),r(W,be),r(F,Le),r(ae,()=>{var j;return((j=e())==null?void 0:j.version)??"..."}),r(te,()=>c()?"LIVE":"connecting"),r(ke,()=>Ee().label),r(he,()=>{var j,le;return((j=e())==null?void 0:j.backend_connected)??((le=e())==null?void 0:le.backendConnected)?"API LIVE":"API DEGRADED"}),r(Ne,()=>{var j;return((j=e())==null?void 0:j.enabled)===!1?"OFF":"ON"}),r(x,y(we,{get when(){return Y()},get fallback(){return(()=>{var j=Fi(),le=j.firstChild,$e=le.nextSibling,me=$e.nextSibling;return r(le,y(Oi,{get project(){return q()},get sessions(){return X()},get selectedSessionId(){var E;return((E=re())==null?void 0:E.id)||null},get currentSessionId(){var E,R;return((R=(E=a())==null?void 0:E.current_session)==null?void 0:R.session_id)||null},onSelectSession:E=>u({kind:"session",projectId:E.project_id,sessionId:E.id})})),r($e,y(yi,{get session(){return re()},get project(){return q()},get status(){return e()},get capabilities(){return i()},get savings(){return n()},get runRequest(){return D()},onRunRequestHandled:()=>$(null),onRefresh:Ie})),r(me,y(Mi,{get status(){return e()},get capabilities(){return i()},get home(){return a()},get savings(){return n()},get session(){return re()},get currentProject(){return q()},onRefresh:Ie,onCreatePlan:()=>Oe("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:()=>Oe("Start TDD for this session. Produce failing tests first, then implement the minimum fix, then verify the result.")})),j})()},get children(){var j=Vi();return r(j,y(si,{get data(){return a()},get status(){return e()},get project(){return q()},get session(){return re()},get flows(){return z()},onOpenStatus:()=>u({kind:"status"}),onOpenProject:Ue,onOpenSession:De,onTrinityAction:Ie})),j}}),null),ne(j=>{var Me,Be,He;var le=`indicator ${c()?"connected":"disconnected"}`,$e=`indicator flash ${Ee().tone}`,me=Ee().title,E=`indicator ${((Me=e())==null?void 0:Me.backend_connected)??((Be=e())==null?void 0:Be.backendConnected)?"connected":"disconnected"}`,R=`indicator ${((He=e())==null?void 0:He.enabled)===!1?"disabled":"connected"}`;return le!==j.e&&oe(te,j.e=le),$e!==j.t&&oe(ke,j.t=$e),me!==j.a&&pt(ke,"title",j.a=me),E!==j.o&&oe(he,j.o=E),R!==j.i&&oe(Ne,j.i=R),j},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),f})()}const ln=document.getElementById("app");ln&&Zn(()=>y(Hi,{}),ln);
@@ -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 r of i)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const r={};return i.integrity&&(r.integrity=i.integrity),i.referrerPolicy&&(r.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?r.credentials="include":i.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(i){if(i.ep)return;i.ep=!0;const r=n(i);fetch(i.href,r)}})();const kn=!1,yn=(e,t)=>e===t,xn=Symbol("solid-track"),gt={equals:yn};let en=ln;const Ie=1,vt=2,tn={owned:null,cleanups:null,context:null,owner:null},Tt={};var H=null;let Dt=null,Cn=null,B=null,re=null,Oe=null,xt=0;function mt(e,t){const n=B,s=H,i=e.length===0,r=t===void 0?s:t,o=i?tn:{owned:null,cleanups:null,context:r?r.context:null,owner:r},l=i?e:()=>e(()=>ye(()=>rt(o)));H=o,B=null;try{return Le(l,!0)}finally{B=n,H=s}}function q(e,t){t=t?Object.assign({},gt,t):gt;const n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},s=i=>(typeof i=="function"&&(i=i(n.value)),rn(n,i));return[sn.bind(n),s]}function Pn(e,t,n){const s=Ct(e,t,!0,Ie);Xe(s)}function ne(e,t,n){const s=Ct(e,t,!1,Ie);Xe(s)}function nn(e,t,n){en=In;const s=Ct(e,t,!1,Ie);s.user=!0,Oe?Oe.push(s):Xe(s)}function le(e,t,n){n=n?Object.assign({},gt,n):gt;const s=Ct(e,t,!0,0);return s.observers=null,s.observerSlots=null,s.comparator=n.equals||void 0,Xe(s),sn.bind(s)}function jn(e){return e&&typeof e=="object"&&"then"in e}function Ht(e,t,n){let s,i,r;typeof t=="function"?(s=e,i=t,r={}):(s=!0,i=e,r=t||{});let o=null,l=Tt,f=!1,c="initialValue"in r,p=typeof s=="function"&&le(s);const d=new Set,[x,O]=(r.storage||q)(r.initialValue),[g,$]=q(void 0),[G,R]=q(void 0,{equals:!1}),[P,k]=q(c?"ready":"unresolved");function j(A,m,y,C){return o===A&&(o=null,C!==void 0&&(c=!0),(A===l||m===l)&&r.onHydrated&&queueMicrotask(()=>r.onHydrated(C,{value:m})),l=Tt,Y(m,y)),m}function Y(A,m){Le(()=>{m===void 0&&O(()=>A),k(m!==void 0?"errored":c?"ready":"unresolved"),$(m);for(const y of d.keys())y.decrement();d.clear()},!1)}function v(){const A=Tn,m=x(),y=g();if(y!==void 0&&!o)throw y;return B&&B.user,m}function E(A=!0){if(A!==!1&&f)return;f=!1;const m=p?p():s;if(m==null||m===!1){j(o,ye(x));return}let y;const C=l!==Tt?l:ye(()=>{try{return i(m,{value:x(),refetching:A})}catch(W){y=W}});if(y!==void 0){j(o,void 0,_t(y),m);return}else if(!jn(C))return j(o,C,void 0,m),C;return o=C,"v"in C?(C.s===1?j(o,C.v,void 0,m):j(o,void 0,_t(C.v),m),C):(f=!0,queueMicrotask(()=>f=!1),Le(()=>{k(c?"refreshing":"pending"),R()},!1),C.then(W=>j(C,W,void 0,m),W=>j(C,void 0,_t(W),m)))}Object.defineProperties(v,{state:{get:()=>P()},error:{get:()=>g()},loading:{get(){const A=P();return A==="pending"||A==="refreshing"}},latest:{get(){if(!c)return v();const A=g();if(A&&!o)throw A;return x()}}});let Z=H;return p?Pn(()=>(Z=H,E(!1))):E(!1),[v,{refetch:A=>En(Z,()=>E(A)),mutate:O}]}function ye(e){if(B===null)return e();const t=B;B=null;try{return e()}finally{B=t}}function An(e){nn(()=>ye(e))}function qt(e){return H===null||(H.cleanups===null?H.cleanups=[e]:H.cleanups.push(e)),e}function En(e,t){const n=H,s=B;H=e,B=null;try{return Le(t,!0)}catch(i){Ut(i)}finally{H=n,B=s}}const[yi,xi]=q(!1);let Tn;function sn(){if(this.sources&&this.state)if(this.state===Ie)Xe(this);else{const e=re;re=null,Le(()=>St(this),!1),re=e}if(B){const e=this.observers;if(!e||e[e.length-1]!==B){const t=e?e.length:0;B.sources?(B.sources.push(this),B.sourceSlots.push(t)):(B.sources=[this],B.sourceSlots=[t]),e?(e.push(B),this.observerSlots.push(B.sources.length-1)):(this.observers=[B],this.observerSlots=[B.sources.length-1])}}return this.value}function rn(e,t,n){let s=e.value;return(!e.comparator||!e.comparator(s,t))&&(e.value=t,e.observers&&e.observers.length&&Le(()=>{for(let i=0;i<e.observers.length;i+=1){const r=e.observers[i],o=Dt&&Dt.running;o&&Dt.disposed.has(r),(o?!r.tState:!r.state)&&(r.pure?re.push(r):Oe.push(r),r.observers&&on(r)),o||(r.state=Ie)}if(re.length>1e6)throw re=[],new Error},!1)),t}function Xe(e){if(!e.fn)return;rt(e);const t=xt;Dn(e,e.value,t)}function Dn(e,t,n){let s;const i=H,r=B;B=H=e;try{s=e.fn(t)}catch(o){return e.pure&&(e.state=Ie,e.owned&&e.owned.forEach(rt),e.owned=null),e.updatedAt=n+1,Ut(o)}finally{B=r,H=i}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&"observers"in e?rn(e,s):e.value=s,e.updatedAt=n)}function Ct(e,t,n,s=Ie,i){const r={fn:e,state:s,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:H,context:H?H.context:null,pure:n};return H===null||H!==tn&&(H.owned?H.owned.push(r):H.owned=[r]),r}function $t(e){if(e.state===0)return;if(e.state===vt)return St(e);if(e.suspense&&ye(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<xt);)e.state&&t.push(e);for(let n=t.length-1;n>=0;n--)if(e=t[n],e.state===Ie)Xe(e);else if(e.state===vt){const s=re;re=null,Le(()=>St(e,t[0]),!1),re=s}}function Le(e,t){if(re)return e();let n=!1;t||(re=[]),Oe?n=!0:Oe=[],xt++;try{const s=e();return On(n),s}catch(s){n||(Oe=null),re=null,Ut(s)}}function On(e){if(re&&(ln(re),re=null),e)return;const t=Oe;Oe=null,t.length&&Le(()=>en(t),!1)}function ln(e){for(let t=0;t<e.length;t++)$t(e[t])}function In(e){let t,n=0;for(t=0;t<e.length;t++){const s=e[t];s.user?e[n++]=s:$t(s)}for(t=0;t<n;t++)$t(e[t])}function St(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===Ie?s!==t&&(!s.updatedAt||s.updatedAt<xt)&&$t(s):i===vt&&St(s,t)}}}function on(e){for(let t=0;t<e.observers.length;t+=1){const n=e.observers[t];n.state||(n.state=vt,n.pure?re.push(n):Oe.push(n),n.observers&&on(n))}}function rt(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 r=i.pop(),o=n.observerSlots.pop();s<i.length&&(r.sourceSlots[o]=s,i[s]=r,n.observerSlots[s]=o)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)rt(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)rt(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 _t(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function Ut(e,t=H){throw _t(e)}const Nn=Symbol("fallback");function Jt(e){for(let t=0;t<e.length;t++)e[t]()}function Rn(e,t,n={}){let s=[],i=[],r=[],o=0,l=t.length>1?[]:null;return qt(()=>Jt(r)),()=>{let f=e()||[],c=f.length,p,d;return f[xn],ye(()=>{let O,g,$,G,R,P,k,j,Y;if(c===0)o!==0&&(Jt(r),r=[],s=[],i=[],o=0,l&&(l=[])),n.fallback&&(s=[Nn],i[0]=mt(v=>(r[0]=v,n.fallback())),o=1);else if(o===0){for(i=new Array(c),d=0;d<c;d++)s[d]=f[d],i[d]=mt(x);o=c}else{for($=new Array(c),G=new Array(c),l&&(R=new Array(c)),P=0,k=Math.min(o,c);P<k&&s[P]===f[P];P++);for(k=o-1,j=c-1;k>=P&&j>=P&&s[k]===f[j];k--,j--)$[j]=i[k],G[j]=r[k],l&&(R[j]=l[k]);for(O=new Map,g=new Array(j+1),d=j;d>=P;d--)Y=f[d],p=O.get(Y),g[d]=p===void 0?-1:p,O.set(Y,d);for(p=P;p<=k;p++)Y=s[p],d=O.get(Y),d!==void 0&&d!==-1?($[d]=i[p],G[d]=r[p],l&&(R[d]=l[p]),d=g[d],O.set(Y,d)):r[p]();for(d=P;d<c;d++)d in $?(i[d]=$[d],r[d]=G[d],l&&(l[d]=R[d],l[d](d))):i[d]=mt(x);i=i.slice(0,o=c),s=f.slice(0)}return i});function x(O){if(r[d]=O,l){const[g,$]=q(d);return l[d]=$,t(f[d],g)}return t(f[d])}}}function I(e,t){return ye(()=>e(t||{}))}const Ln=e=>`Stale read from <${e}>.`;function De(e){const t="fallback"in e&&{fallback:()=>e.fallback};return le(Rn(()=>e.each,e.children,t||void 0))}function $e(e){const t=e.keyed,n=le(()=>e.when,void 0,void 0),s=t?n:le(n,void 0,{equals:(i,r)=>!i==!r});return le(()=>{const i=s();if(i){const r=e.children;return typeof r=="function"&&r.length>0?ye(()=>r(t?i:()=>{if(!ye(s))throw Ln("Show");return n()})):r}return e.fallback},void 0,void 0)}const We=e=>le(()=>e());function Bn(e,t,n){let s=n.length,i=t.length,r=s,o=0,l=0,f=t[i-1].nextSibling,c=null;for(;o<i||l<r;){if(t[o]===n[l]){o++,l++;continue}for(;t[i-1]===n[r-1];)i--,r--;if(i===o){const p=r<s?l?n[l-1].nextSibling:n[r-l]:f;for(;l<r;)e.insertBefore(n[l++],p)}else if(r===l)for(;o<i;)(!c||!c.has(t[o]))&&t[o].remove(),o++;else if(t[o]===n[r-1]&&n[l]===t[i-1]){const p=t[--i].nextSibling;e.insertBefore(n[l++],t[o++].nextSibling),e.insertBefore(n[--r],p),t[i]=n[r]}else{if(!c){c=new Map;let d=l;for(;d<r;)c.set(n[d],d++)}const p=c.get(t[o]);if(p!=null)if(l<p&&p<r){let d=o,x=1,O;for(;++d<i&&d<r&&!((O=c.get(t[d]))==null||O!==p+x);)x++;if(x>p-l){const g=t[o];for(;l<p;)e.insertBefore(n[l++],g)}else e.replaceChild(n[l++],t[o++])}else o++;else t[o++].remove()}}}const Kt="_$DX_DELEGATE";function qn(e,t,n,s={}){let i;return mt(r=>{i=r,t===document?e():a(t,e(),t.firstChild?null:void 0,n)},s.owner),()=>{i(),t.textContent=""}}function T(e,t,n,s){let i;const r=()=>{const l=document.createElement("template");return l.innerHTML=e,l.content.firstChild},o=()=>(i||(i=r())).cloneNode(!0);return o.cloneNode=o,o}function lt(e,t=window.document){const n=t[Kt]||(t[Kt]=new Set);for(let s=0,i=e.length;s<i;s++){const r=e[s];n.has(r)||(n.add(r),t.addEventListener(r,Vn))}}function ot(e,t,n){n==null?e.removeAttribute(t):e.setAttribute(t,n)}function _e(e,t){t==null?e.removeAttribute("class"):e.className=t}function an(e,t,n,s){Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n}function Un(e,t,n){if(!t)return n?ot(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,r;for(r in n)t[r]==null&&s.removeProperty(r),delete n[r];for(r in t)i=t[r],i!==n[r]&&(s.setProperty(r,i),n[r]=i);return n}function Mn(e,t,n){return ye(()=>e(t,n))}function a(e,t,n,s){if(n!==void 0&&!s&&(s=[]),typeof t!="function")return wt(e,t,s,n);ne(i=>wt(e,t(),i,n),s)}function Vn(e){let t=e.target;const n=`$$${e.type}`,s=e.target,i=e.currentTarget,r=f=>Object.defineProperty(e,"target",{configurable:!0,value:f}),o=()=>{const f=t[n];if(f&&!t.disabled){const c=t[`${n}Data`];if(c!==void 0?f.call(t,c,e):f.call(t,e),e.cancelBubble)return}return t.host&&typeof t.host!="string"&&!t.host._$host&&t.contains(e.target)&&r(t.host),!0},l=()=>{for(;o()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),e.composedPath){const f=e.composedPath();r(f[0]);for(let c=0;c<f.length-2&&(t=f[c],!!o());c++){if(t._$host){t=t._$host,l();break}if(t.parentNode===i)break}}else l();r(s)}function wt(e,t,n,s,i){for(;typeof n=="function";)n=n();if(t===n)return n;const r=typeof t,o=s!==void 0;if(e=o&&n[0]&&n[0].parentNode||e,r==="string"||r==="number"){if(r==="number"&&(t=t.toString(),t===n))return n;if(o){let l=n[0];l&&l.nodeType===3?l.data!==t&&(l.data=t):l=document.createTextNode(t),n=Ze(e,n,s,l)}else n!==""&&typeof n=="string"?n=e.firstChild.data=t:n=e.textContent=t}else if(t==null||r==="boolean")n=Ze(e,n,s);else{if(r==="function")return ne(()=>{let l=t();for(;typeof l=="function";)l=l();n=wt(e,l,n,s)}),()=>n;if(Array.isArray(t)){const l=[],f=n&&Array.isArray(n);if(Nt(l,t,n,i))return ne(()=>n=wt(e,l,n,s,!0)),()=>n;if(l.length===0){if(n=Ze(e,n,s),o)return n}else f?n.length===0?Zt(e,l,s):Bn(e,n,l):(n&&Ze(e),Zt(e,l));n=l}else if(t.nodeType){if(Array.isArray(n)){if(o)return n=Ze(e,n,s,t);Ze(e,n,null,t)}else n==null||n===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}}return n}function Nt(e,t,n,s){let i=!1;for(let r=0,o=t.length;r<o;r++){let l=t[r],f=n&&n[e.length],c;if(!(l==null||l===!0||l===!1))if((c=typeof l)=="object"&&l.nodeType)e.push(l);else if(Array.isArray(l))i=Nt(e,l,f)||i;else if(c==="function")if(s){for(;typeof l=="function";)l=l();i=Nt(e,Array.isArray(l)?l:[l],Array.isArray(f)?f:[f])||i}else e.push(l),i=!0;else{const p=String(l);f&&f.nodeType===3&&f.data===p?e.push(f):e.push(document.createTextNode(p))}}return i}function Zt(e,t,n=null){for(let s=0,i=t.length;s<i;s++)e.insertBefore(t[s],n)}function Ze(e,t,n,s){if(n===void 0)return e.textContent="";const i=s||document.createTextNode("");if(t.length){let r=!1;for(let o=t.length-1;o>=0;o--){const l=t[o];if(i!==l){const f=l.parentNode===e;!r&&!o?f?e.replaceChild(i,l):e.insertBefore(i,n):f&&l.remove()}else r=!0}}else e.insertBefore(i,n);return[i]}function U(e){return JSON.parse(JSON.stringify(e))}function Ve(){return new Date().toISOString()}function Wt(e){return`$${e.toFixed(2)}`}const ft="proj_dashboard",Ge="sess_vibeultra_exec",Ot="flow_tdd_live",Me={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}},u={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:Ve(),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:Ve(),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:U(Me),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:ft,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:ft,name:"Dashboard Control Center",fingerprint:"dashboard/home-4col",default_flow_id:Ot,created_at:"2026-07-03T12:30:00.000Z",updated_at:"2026-07-03T15:05:00.000Z"}],sessions:[{id:Ge,project_id:ft,title:"Executive Home + Deterministic Session Rail",flow_id:Ot,created_at:"2026-07-03T12:45:00.000Z",updated_at:"2026-07-03T15:06:00.000Z"}],flows:[{id:Ot,scope:"project",project_id:ft,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:{[Ge]:[{id:"msg_user_1",role:"user",content:"Build the executive home, wire the 4-column operational session UI, and keep deterministic execution only.",plan:U(Me),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:U(Me),results:[{step:Me.steps[0],result:{ok:!0,state:"resolved"}},{step:Me.steps[1],result:{ok:!0,tests:"drafted"}},{step:Me.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 zn(){return u.projects[0]}function Fn(){return u.sessions[0]}function pt(){const e=Fn(),t=zn();return{title:e.title,session_id:e.id,status:u.sessionState.status,locked:u.sessionState.locked,archived:u.sessionState.archived,project_name:t.name,project_fingerprint:t.fingerprint,started_at:u.sessionState.lifecycle.created_at,cost_usd:2.41,delegation_savings_usd:u.savings.current_session.delegation_usd,cache_savings_usd:u.savings.current_session.cache_usd,notes_count:u.sessionState.notes.length,tags:U(u.sessionState.tags),template:U(u.sessionState.template),optimization_mode:u.sessionState.optimization_mode,orchestration_plan:U(Me),blackbox:U(u.sessionState.blackbox),recommendation:u.sessionState.recommendation,notes:U(u.sessionState.notes),lifecycle:U(u.sessionState.lifecycle),orchestration:{effective_optimization_mode:u.sessionState.optimization_mode,requested_optimization_mode:u.sessionState.optimization_mode,effective_slot:u.status.active_slot,deterministic_execution_policy:"strict-deterministic",resolved_plan_metadata:{source:"preview",strict:!0,generated_at:Ve()},mode_capabilities:U(u.capabilities)}}}function Hn(){var s;const e=pt(),t=u.savings.lifetime.delegation_usd+u.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:u.status.active_slot},{label:"Model",value:u.status.current_model},{label:"Lock state",value:u.sessionState.locked?"locked":"mutable"},{label:"Backend",value:u.status.backend_connected?"live":"preview fallback"},{label:"Session cost",value:Wt(e.cost_usd)},{label:"Session savings",value:Wt(n)},{label:"Pending TODOs",value:String(((s=u.status.todos)==null?void 0:s.pending)||0)}]},savings:U(u.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:U(u.sessionState.template),templates:[U(u.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:U(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:[U(u.sessionState.template)],session_actions:["start","pause","resume","lock","unlock","archive","undo"],totals:{total_sessions:u.sessions.length,total_savings_usd:t,current_session_savings_usd:n,pending_todos:4},status:U(u.status),blackbox:{sub_regime:u.sessionState.blackbox.sub_regime,resolution:u.sessionState.blackbox.resolution},backend_connected:u.status.backend_connected,backend_status:u.status.backend_connected?"online":"preview fallback",backend_health_url:u.status.backend_health_url,backend_version:u.status.backend_version}}function Jn(){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 Kn(){return U(u.status)}function Zn(){return U(u.savings)}function Wn(){return U(u.capabilities)}function Gn(){return U(u.projects)}function Xn(e){const t=e?u.sessions.filter(n=>n.project_id===e):u.sessions;return U(t)}function Qn(e){const t=e?u.flows.filter(n=>n.project_id===e||n.scope==="global"):u.flows;return U(t)}function Yn(e){return U(u.messages[e]||[])}function es(){return U(u.reports)}function ts(){return Hn()}function Rt(e){return e!==Ge?{session:pt(),metrics:{},orchestration:null}:{session:pt(),metrics:{session_savings_usd:u.savings.current_session.delegation_usd+u.savings.current_session.cache_usd,session_cost_usd:2.41,strict_policy:"strict-deterministic",effective_slot:u.status.active_slot,requested_optimization_mode:u.sessionState.optimization_mode,effective_optimization_mode:u.sessionState.optimization_mode},orchestration:U(pt().orchestration)}}function ns(e,t){return e==="mode"&&t?(u.status.optimization_mode=t,u.sessionState.optimization_mode=t,u.status.recommended_next_action=`Mode switched to ${t}. Continue with the structured TDD flow.`,{ok:!0,result:{optimization_mode:t}}):e==="set"&&t?(u.status.active_slot=t,u.status.current_quality_tier=t,u.status.model_locked=!0,u.status.locked_slot=t,{ok:!0,result:{active_slot:t}}):{ok:!0,result:{action:e,slot:t}}}function ss(e,t){const n=u.sessions.find(s=>s.id===e)||u.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=Ve(),U(n)}function is(e,t){return e!==Ge||(t==="lock"?(u.sessionState.locked=!0,u.status.model_locked=!0):t==="unlock"?(u.sessionState.locked=!1,u.status.model_locked=!1):t==="pause"?(u.sessionState.status="paused",u.sessionState.lifecycle.paused_at=Ve()):t==="resume"||t==="start"?(u.sessionState.status="active",u.sessionState.lifecycle.resumed_at=Ve()):t==="archive"?(u.sessionState.archived=!0,u.sessionState.status="archived",u.sessionState.lifecycle.archived_at=Ve()):t==="undo"&&(u.sessionState.archived=!1,u.sessionState.status="active",u.sessionState.lifecycle.archived_at=null),u.sessionState.recommendation=`Last structured action: ${t}. Preview state updated locally.`),Rt(Ge)}function rs(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 Mt=typeof window<"u"?window:{},it=Mt.__VIBEOS_DASHBOARD_BASE__??"",Lt=Mt.__VIBEOS_DASHBOARD_TOKEN__??"";let ht=null;function Vt(){const e={"Content-Type":"application/json"};return Lt&&(e.Authorization="Bearer "+Lt),e}async function oe(e,t){const n=await fetch(it+e,{headers:Vt(),...t});if(!n.ok)throw new Error(`API ${n.status}: ${n.statusText}`);return n.json()}function kt(e){return String(e||"").trim().replace(/\/$/,"")}function yt(e){return kt(e).replace(/\/api\/v1$/,"")}function ls(e){const t=kt(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)||"/"),yt(n.href)}catch{return yt(t.replace(/\/health$/,""))}}async function cn(){const e=yt(Mt.__VIBEOS_BACKEND_API_BASE__);if(e)return e;if(it){const t=kt(it).replace(/\/api\/v1\/dashboard$/,"");if(t!==kt(it))return t}return ht||(ht=(async()=>{try{const t=await oe("/status"),n=yt(t.backend_api_url);if(n)return n;const s=ls(t.backend_health_url);if(s)return s}catch{}return"https://api.vibetheog.com"})(),ht)}async function dn(e,t){const n=await cn(),s=await fetch(n+e,{headers:Vt(),...t});if(!s.ok)throw new Error(`API ${s.status}: ${s.statusText}`);return s.json()}async function ae(e,t){try{return await e()}catch(n){if(Jn())return await t();throw n}}function un(){return ae(()=>oe("/status"),()=>Kn())}function fn(){return ae(()=>oe("/savings"),()=>Zn())}function os(){return ae(()=>oe("/sessions"),()=>({sessions:[],total_sessions:0}))}function as(){return ae(()=>oe("/reports"),()=>es())}function hn(){return ae(()=>oe("/capabilities"),()=>Wn())}function mn(){return ae(()=>oe("/dashboard/home"),()=>ts())}function _n(e){return ae(()=>oe(`/sessions/${encodeURIComponent(e)}`),()=>Rt(e))}function bt(e,t,n,s){const i={action:e};return t&&(i.slot=t),n&&(i.level=n),s&&(i.token=s),ae(()=>oe("/trinity",{method:"POST",body:JSON.stringify(i)}),()=>ns(e,t))}function cs(e,t){return ae(()=>oe(`/sessions/${encodeURIComponent(e)}/action`,{method:"POST",body:JSON.stringify(t)}),()=>{const n=is(e,String(t.action||""));return{ok:!0,session:n.session,metrics:n.metrics,orchestration:n.orchestration??null}})}function ds(e="global",t){const n=new URLSearchParams;return n.set("scope",e),t&&n.set("project_id",t),oe(`/reality-check?${n.toString()}`)}function us(e){return oe("/reality-check",{method:"POST",body:JSON.stringify(e)})}function fs(e){return ae(()=>oe("/web-search",{method:"POST",body:JSON.stringify(e)}),()=>rs(e.query))}async function hs(e){const t=e||"https://api.vibetheog.com/health";try{return(await fetch(t,{signal:AbortSignal.timeout(3e3)})).ok}catch{return!1}}function pn(e){let t=!1;if(Lt){let i=null;const r=async()=>{try{const[o,l]=await Promise.all([oe("/status"),oe("/savings")]);t||e({status:o,savings:l})}catch{}};return r(),i=setInterval(r,3e3),()=>{t=!0,i&&clearInterval(i)}}let n=null;function s(){if(t)return;const i=new EventSource(it+"/events");i.onmessage=r=>{try{const o=JSON.parse(r.data);t||e(o)}catch{}},i.onerror=()=>{i.close(),t||(n=setTimeout(s,3e3))}}return s(),()=>{t=!0,n&&clearTimeout(n)}}function ms(e,t){return dn("/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 fe(e,t){return dn(`/api/v1/orchestrator${e}`,t)}function bn(){return ae(()=>fe("/projects"),()=>({projects:Gn()}))}function gn(e,t){return fe("/projects",{method:"POST",body:JSON.stringify({name:e,fingerprint:t})})}function _s(e,t){return fe(`/projects/${e}`,{method:"PUT",body:JSON.stringify(t)})}function vn(e){return fe(`/projects/${e}`,{method:"DELETE"})}function $n(e){return ae(()=>fe(`/sessions${e?`?project_id=${encodeURIComponent(e)}`:""}`),()=>({sessions:Xn(e)}))}function ps(e,t,n){return fe("/sessions",{method:"POST",body:JSON.stringify({project_id:e,title:t,flow_id:n??null})})}function bs(e,t){return ae(()=>fe(`/sessions/${e}`,{method:"PUT",body:JSON.stringify(t)}),()=>({session:ss(e,t)}))}function gs(e){return fe(`/sessions/${e}`,{method:"DELETE"})}function Sn(e){return ae(()=>fe(`/sessions/${e}/messages`),()=>({messages:Yn(e)}))}function vs(e){return ae(()=>fe(`/flows${e?`?project_id=${encodeURIComponent(e)}`:""}`),()=>({flows:Qn(e)}))}function $s(e,t,n="global",s){return fe("/flows",{method:"POST",body:JSON.stringify({name:e,graph:t,scope:n,project_id:s})})}function Ss(e,t){return fe(`/flows/${e}`,{method:"PUT",body:JSON.stringify(t)})}function ws(e){return fe(`/flows/${e}`,{method:"DELETE"})}function wn(e,t,n){const s=new AbortController;return(async()=>{var c,p,d;const i=await cn(),r=await fetch(i+`/api/v1/orchestrator/sessions/${e}/run`,{method:"POST",headers:Vt(),body:JSON.stringify(t),signal:s.signal});if(!r.ok||!r.body){(c=n.onError)==null||c.call(n,new Error(`run failed: ${r.status}`));return}const o=r.body.getReader(),l=new TextDecoder;let f="";for(;;){const{done:x,value:O}=await o.read();if(x)break;f+=l.decode(O,{stream:!0});let g;for(;(g=f.indexOf(`
2
-
3
- `))>=0;){const $=f.slice(0,g);f=f.slice(g+2);const G=(p=$.match(/event: (.*)/))==null?void 0:p[1],R=$.slice($.indexOf("data: ")+6);if(!(!G||$.indexOf("data: ")<0))try{n.onEvent(G,JSON.parse(R))}catch{}}}(d=n.onDone)==null||d.call(n)})().catch(i=>{var r;(i==null?void 0:i.name)!=="AbortError"&&((r=n.onError)==null||r.call(n,i))}),()=>s.abort()}const ks=Object.freeze(Object.defineProperty({__proto__:null,blackboxAnalyze:ms,checkBackendHealth:hs,createFlow:$s,createProject:gn,createSession:ps,deleteFlow:ws,deleteProject:vn,deleteSession:gs,fetchCapabilities:hn,fetchDashboardHome:mn,fetchRealityCheck:ds,fetchReports:as,fetchSavings:fn,fetchSessionDetail:_n,fetchSessions:os,fetchStatus:un,listFlows:vs,listMessages:Sn,listProjects:bn,listSessions:$n,openSSE:pn,postSessionAction:cs,postTrinity:bt,runSession:wn,saveRealityCheck:us,updateFlow:Ss,updateProject:_s,updateSession:bs,webSearch:fs},Symbol.toStringTag,{value:"Module"})),ys="home";function xs(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(f=>{var c;return((c=f[0])==null?void 0:c.toUpperCase())||""}).join("");if(i)return{glyph:i,label:t||i};const r=n||t||"project",o=["◆","◈","◉","▣","⬢","◬"];let l=0;for(const f of r)l=l*31+f.charCodeAt(0)>>>0;return{glyph:o[l%o.length],label:t||"Project"}}var Cs=T("<div class=create-form><input class=create-input><button class=create-ok>ok</button><button class=create-cancel>x");function Ps(e){const[t,n]=q("");let s;return An(()=>s==null?void 0:s.focus()),(()=>{var i=Cs(),r=i.firstChild,o=r.nextSibling,l=o.nextSibling;r.$$keydown=c=>{c.key==="Enter"&&t().trim()&&e.onSubmit(t().trim()),c.key==="Escape"&&e.onCancel()},r.$$input=c=>n(c.currentTarget.value);var f=s;return typeof f=="function"?Mn(f,r):s=r,o.$$click=()=>{t().trim()&&e.onSubmit(t().trim())},an(l,"click",e.onCancel),ne(c=>{var p=e.placeholder,d=!t().trim();return p!==c.e&&ot(r,"placeholder",c.e=p),d!==c.t&&(o.disabled=c.t=d),c},{e:void 0,t:void 0}),ne(()=>r.value=t()),i})()}lt(["input","keydown","click"]);var js=T('<aside class=sidebar><div class=sidebar-brand><div class=sidebar-brand-mark>~</div><div><div class=sidebar-brand-title>opencode</div><div class=sidebar-brand-subtitle>dashboard home</div></div></div><button><span class=sidebar-icon>&#8962;</span> Home</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">+'),As=T("<div class=sidebar-empty>no projects — click + to create one"),Es=T('<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 Gt(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 Ts(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 Ds(e){return`$${Number(e||0).toFixed(2)}`}function Os(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=js(),i=s.firstChild,r=i.nextSibling,o=r.nextSibling,l=o.firstChild,f=l.nextSibling,c=f.nextSibling,p=c.nextSibling,d=p.firstChild;d.firstChild;var x=d.nextSibling;x.firstChild;var O=x.nextSibling;O.firstChild;var g=O.nextSibling;g.firstChild;var $=p.nextSibling,G=$.firstChild;G.firstChild;var R=G.nextSibling;R.firstChild;var P=R.nextSibling;P.firstChild;var k=o.nextSibling,j=k.firstChild,Y=j.nextSibling;return r.$$click=()=>e.onSelect({kind:"home"}),a(f,()=>{var v,E;return((E=(v=e.home)==null?void 0:v.home)==null?void 0:E.title)||e.currentProjectName||"Home"}),a(c,()=>{var v,E,Z,A;return((E=(v=e.home)==null?void 0:v.home)==null?void 0:E.recommendation)||((A=(Z=e.home)==null?void 0:Z.home)==null?void 0:A.subtitle)||"Operational dashboard summary."}),a(d,()=>{var v,E;return String(((v=t())==null?void 0:v.optimization_mode)||((E=t())==null?void 0:E.native_agent_mode)||"auto")},null),a(x,()=>{var v;return((v=t())==null?void 0:v.active_slot)||"brain"},null),a(O,()=>{var v;return(((v=t())==null?void 0:v.current_model)||"unknown").split("/").pop()},null),a(g,()=>{var v,E;return((v=t())==null?void 0:v.backend_connected)??((E=t())==null?void 0:E.backendConnected)?"live":"degraded"},null),a(G,()=>{var v;return((v=n())==null?void 0:v.title)||"none"},null),a(R,()=>{var v;return Ds((v=e.home)==null?void 0:v.totals.total_savings_usd)},null),a(P,()=>{var v,E,Z;return((v=e.home)==null?void 0:v.totals.pending_todos)??((Z=(E=e.status)==null?void 0:E.todos)==null?void 0:Z.pending)??0},null),an(Y,"click",e.onNewProject),a(s,I($e,{get when(){return e.creatingProject},get children(){return I(Ps,{placeholder:"project name",get onSubmit(){return e.onCreateProjectName},get onCancel(){return e.onCancelCreate}})}}),null),a(s,I(De,{get each(){return e.projects},get fallback(){return As()},children:v=>{const E=xs(v),Z=Ts(v);return(()=>{var A=Es(),m=A.firstChild,y=m.firstChild,C=y.nextSibling,W=C.nextSibling;return a(y,()=>E.glyph),C.$$click=()=>e.onSelect({kind:"project",projectId:v.id}),a(C,()=>v.name),W.$$click=()=>e.onDeleteProject(v.id),ne(L=>{var X=E.label,pe=`--project-icon-bg:${Z};--project-icon-fg:#f5f5f5;`,se=`sidebar-item ${Gt(e.selection,{kind:"project",projectId:v.id})?"active":""}`;return X!==L.e&&ot(y,"title",L.e=X),L.t=Un(y,pe,L.t),se!==L.a&&_e(C,L.a=se),L},{e:void 0,t:void 0,a:void 0}),A})()}}),null),ne(()=>_e(r,`sidebar-item pinned ${Gt(e.selection,{kind:"home"})?"active":""}`)),s})()}lt(["click"]);const Is="modulepreload",Ns=function(e){return"/"+e},Xt={},Rs=function(t,n,s){let i=Promise.resolve();if(n&&n.length>0){let o=function(c){return Promise.all(c.map(p=>Promise.resolve(p).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),f=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));i=o(n.map(c=>{if(c=Ns(c),c in Xt)return;Xt[c]=!0;const p=c.endsWith(".css"),d=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const x=document.createElement("link");if(x.rel=p?"stylesheet":Is,p||(x.as="script"),x.crossOrigin="",x.href=c,f&&x.setAttribute("nonce",f),document.head.appendChild(x),p)return new Promise((O,g)=>{x.addEventListener("load",O),x.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${c}`)))})}))}function r(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return i.then(o=>{for(const l of o||[])l.status==="rejected"&&r(l.reason);return t().catch(r)})},Ls=["vibemax","vibeqmax","vibeultrax","vibelitex","raw"];function Bs(e){return Ls.includes(String(e||"").toLowerCase())}const st={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 zt(e){const t=String(e||"").toLowerCase().trim();if(Bs(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 qs=[st.vibeultrax,st.vibeqmax,st.vibemax,st.vibelitex];function Bt(e){const t=zt(e);return st[t]}function Us(){return qs}var Ms=T("<span class=run-step-skip>blocked — "),Vs=T("<code class=run-step-result>"),zs=T("<div><span class=run-step-tool></span><span class=run-step-label>"),Fs=T('<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>'),Hs=T('<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>'),Js=T('<div class="msg-content mono">'),Ks=T('<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'),Zs=T("<div class=error>"),Ws=T('<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>'),Gs=T('<div class="session-workspace card panel"><div class="panel-head session-head"><div><h3>Session Chat</h3><div class=panel-head-copy></div></div><div class=session-hero-meta><span>mode </span><span>slot </span><span>model </span><span>web search </span><span>savings/hr '),Xs=T("<p class=muted>Pick a session link from column 2 to open the chat and live run stream."),Qs=T("<div class=run-step><span class=run-step-tool></span><span class=run-step-label> · "),Ys=T("<p class=muted>No chat yet. Use the composer below to run a structured session prompt."),ei=T("<details class=run-trace-details><summary>structured steps (<!>)</summary><div class=run-trace>"),ti=T("<div><div class=msg-role></div><div class=msg-content>"),ni=T("<button class=shell-link>");function Qt(e){const t=e.r;return(()=>{var n=zs(),s=n.firstChild,i=s.nextSibling;return a(s,()=>{var r;return(r=t.step)==null?void 0:r.tool}),a(i,()=>{var r;return(r=t.step)==null?void 0:r.label}),a(n,I($e,{get when(){return t.skipped},get children(){var r=Ms();return r.firstChild,a(r,()=>t.reason,null),r}}),null),a(n,I($e,{get when(){return We(()=>!t.skipped)()&&t.result},get children(){var r=Vs();return a(r,()=>JSON.stringify(t.result).slice(0,160)),r}}),null),ne(()=>_e(n,`run-step ${t.skipped?"skipped":"done"}`)),n})()}function It(e){return`$${Number(e||0).toFixed(2)}`}function nt(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function si(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return Bt(zt(t)).name||t}catch{return t}}function ii(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 ri(e){const[t,{mutate:n,refetch:s}]=Ht(()=>{var m;return((m=e.session)==null?void 0:m.id)||null},m=>m?_n(m):Promise.resolve({session:null})),[i,{refetch:r}]=Ht(()=>{var m;return((m=e.session)==null?void 0:m.id)||null},m=>m?Sn(m):Promise.resolve({messages:[]})),[o,l]=q(""),[f,c]=q(!1),[p,d]=q(null),[x,O]=q(null),[g,$]=q([]),[G,R]=q(null);let P=null;qt(()=>P==null?void 0:P());const k=le(()=>{var m;return(m=t())==null?void 0:m.session}),j=le(()=>{var m,y;return x()||((m=k())==null?void 0:m.orchestration_plan)||((y=e.status)==null?void 0:y.orchestration_plan)||null}),Y=le(()=>{var m,y;return String(((m=k())==null?void 0:m.optimization_mode)||((y=e.status)==null?void 0:y.optimization_mode)||"auto").toLowerCase()}),v=le(()=>si(Y())),E=le(()=>{var m,y;return((m=e.status)==null?void 0:m.backend_connected)??((y=e.status)==null?void 0:y.backendConnected)??!1}),Z=m=>{var W;const y=e.session,C=String(m||"").trim();if(!(!y||!C||f())){if((W=k())!=null&&W.locked){R("Session is locked. Unlock it before running a deterministic flow.");return}P==null||P(),c(!0),R(null),O(null),$([]),P=wn(y.id,{prompt:C,query:C,execution_policy:"strict-deterministic"},{onEvent:(L,X)=>{L==="plan"?O(X.plan):L==="step"?$(pe=>[...pe,X]):L==="done"?(c(!1),P=null,l(""),O(null),$([]),r(),s(),e.onRefresh()):L==="error"&&(R(X.message||"run failed"),c(!1),P=null)},onError:L=>{R(L.message),c(!1),P=null},onDone:()=>c(!1)})}};nn(()=>{const m=e.runRequest,y=e.session;!m||!y||m.sessionId!==y.id||(l(m.prompt),e.onRunRequestHandled(),Z(m.prompt))});const A=async m=>{const y=e.session;if(y){d(m),R(null);try{const{postSessionAction:C}=await Rs(async()=>{const{postSessionAction:L}=await Promise.resolve().then(()=>ks);return{postSessionAction:L}},void 0),W=await C(y.id,{action:m});n(L=>L&&{...L,session:W.session,metrics:W.metrics,orchestration:W.orchestration??null}),s(),e.onRefresh()}catch(C){R(C.message)}finally{d(null)}}};return(()=>{var m=Gs(),y=m.firstChild,C=y.firstChild,W=C.firstChild,L=W.nextSibling,X=C.nextSibling,pe=X.firstChild;pe.firstChild;var se=pe.nextSibling;se.firstChild;var xe=se.nextSibling;xe.firstChild;var Se=xe.nextSibling;Se.firstChild;var b=Se.nextSibling;return b.firstChild,a(L,(()=>{var w=We(()=>!!e.session);return()=>w()?e.session.title:"Select a session from column 2"})()),a(pe,()=>v()||"auto",null),a(se,()=>{var w;return((w=e.status)==null?void 0:w.active_slot)||"brain"},null),a(xe,()=>{var w;return(((w=e.status)==null?void 0:w.current_model)||"unknown").split("/").pop()},null),a(Se,()=>{var w,N;return(N=(w=e.capabilities)==null?void 0:w.web_search)!=null&&N.enabled?"on":"off"},null),a(b,()=>{var w;return It((w=e.savings)==null?void 0:w.savings_rate_per_hour)},null),a(m,I($e,{get when(){return e.session},get fallback(){return Xs()},get children(){return[(()=>{var w=Fs(),N=w.firstChild,F=N.firstChild,J=F.nextSibling,ie=J.nextSibling,Q=ie.firstChild,de=Q.firstChild,ce=Q.nextSibling;ce.firstChild;var ee=ce.nextSibling,be=ee.nextSibling,Ce=N.nextSibling,ge=Ce.firstChild,Pe=ge.firstChild,je=Pe.nextSibling,we=ge.nextSibling,Ae=we.firstChild,S=Ae.nextSibling,M=we.nextSibling,te=M.firstChild,ve=te.nextSibling;return a(J,()=>e.session.title),a(Q,()=>e.session.id.slice(0,18),de),a(ce,()=>{var K,V;return((K=e.project)==null?void 0:K.name)||((V=k())==null?void 0:V.project_name)||"selected"},null),a(ee,()=>E()?"backend online":"backend degraded"),a(be,(()=>{var K=We(()=>{var V;return!!((V=k())!=null&&V.locked)});return()=>{var V;return K()?"locked":((V=k())==null?void 0:V.status)||"active"}})()),a(je,()=>{var K,V;return It((((K=k())==null?void 0:K.delegation_savings_usd)||0)+(((V=k())==null?void 0:V.cache_savings_usd)||0))}),a(S,()=>{var K;return It((K=k())==null?void 0:K.cost_usd)}),a(ve,(()=>{var K=We(()=>{var V;return!!((V=k())!=null&&V.locked)});return()=>{var V;return K()?"locked":((V=k())==null?void 0:V.status)||"active"}})()),w})(),(()=>{var w=Ws(),N=w.firstChild,F=N.nextSibling,J=F.firstChild,ie=J.nextSibling,Q=ie.firstChild,de=Q.nextSibling,ce=F.nextSibling,ee=ce.firstChild,be=ee.firstChild,Ce=be.nextSibling,ge=Ce.firstChild,Pe=ge.firstChild,je=Pe.nextSibling,we=ge.nextSibling,Ae=we.firstChild,S=Ae.nextSibling,M=we.nextSibling,te=M.firstChild,ve=te.nextSibling,K=M.nextSibling,V=K.firstChild,ze=V.nextSibling,Fe=K.nextSibling,Be=Fe.firstChild,Pt=Be.nextSibling,jt=ee.nextSibling,at=jt.firstChild,At=at.nextSibling,Qe=At.firstChild;Qe.firstChild;var Ye=Qe.nextSibling;Ye.firstChild;var et=Ye.nextSibling;et.firstChild;var ct=et.nextSibling;ct.firstChild;var Et=ce.nextSibling;return a(N,I($e,{get when(){return j()},get children(){var _=Hs(),D=_.firstChild,ke=D.nextSibling,he=ke.nextSibling,Ee=he.firstChild,Ne=Ee.nextSibling,He=Ne.firstChild,Je=he.nextSibling;return a(ke,()=>j().recommended_label||"Structured plan"),a(Ee,()=>j().recommended_next_action||j().reason),a(Ne,()=>Math.round(Number(j().confidence||0)*100),He),a(Je,I(De,{get each(){return j().steps||[]},children:(Ke,tt)=>(()=>{var dt=Qs(),ut=dt.firstChild,h=ut.nextSibling,z=h.firstChild;return a(ut,()=>tt()+1),a(h,()=>Ke.tool,z),a(h,()=>Ke.label,null),dt})()})),_}}),null),a(N,I(De,{get each(){var _;return((_=i())==null?void 0:_.messages)||[]},get fallback(){return Ys()},children:_=>(()=>{var D=ti(),ke=D.firstChild,he=ke.nextSibling;return a(ke,()=>_.role),a(he,()=>_.content||"(no summary)"),a(D,I($e,{get when(){return We(()=>!!(_.role==="assistant"&&_.results))()&&_.results.length},get children(){var Ee=ei(),Ne=Ee.firstChild,He=Ne.firstChild,Je=He.nextSibling;Je.nextSibling;var Ke=Ne.nextSibling;return a(Ne,()=>_.results.length,Je),a(Ke,I(De,{get each(){return _.results},children:tt=>I(Qt,{r:tt})})),Ee}}),null),ne(()=>_e(D,`msg ${_.role}`)),D})()}),null),a(N,I($e,{get when(){return f()},get children(){var _=Ks(),D=_.firstChild,ke=D.nextSibling;return a(_,I($e,{get when(){return x()},get children(){var he=Js();return a(he,()=>x().steps.map(Ee=>Ee.tool).join(" → ")),he}}),ke),a(ke,I(De,{get each(){return g()},children:he=>I(Qt,{r:he})})),_}}),null),J.$$keydown=_=>{_.key==="Enter"&&(_.metaKey||_.ctrlKey)&&Z(o())},J.$$input=_=>l(_.currentTarget.value),de.$$click=()=>Z(o()),a(de,()=>f()?"running…":"run structured flow"),a(je,()=>{var _,D;return((_=k())==null?void 0:_.project_name)||((D=e.project)==null?void 0:D.name)||"Current project"}),a(S,()=>{var _;return((_=k())==null?void 0:_.status)||"active"}),a(ve,()=>v()||"auto"),a(ze,()=>{var _;return nt((_=k())==null?void 0:_.started_at)}),a(Pt,()=>{var _;return(_=k())!=null&&_.locked?"locked":"mutable"}),a(Qe,()=>{var _,D;return nt((D=(_=k())==null?void 0:_.lifecycle)==null?void 0:D.created_at)},null),a(Ye,()=>{var _,D;return nt((D=(_=k())==null?void 0:_.lifecycle)==null?void 0:D.paused_at)},null),a(et,()=>{var _,D;return nt((D=(_=k())==null?void 0:_.lifecycle)==null?void 0:D.resumed_at)},null),a(ct,()=>{var _,D;return nt((D=(_=k())==null?void 0:_.lifecycle)==null?void 0:D.archived_at)},null),a(Et,I(De,{get each(){return ii(t())},children:_=>(()=>{var D=ni();return D.$$click=()=>void A(_),a(D,()=>p()===_?"…":_),ne(()=>D.disabled=p()===_),D})()})),a(w,I($e,{get when(){return G()},get children(){var _=Zs();return a(_,G),_}}),null),ne(()=>{var _;return de.disabled=f()||!o().trim()||((_=k())==null?void 0:_.locked)}),ne(()=>J.value=o()),w})()]}}),null),m})()}lt(["input","keydown","click"]);var li=T("<div class=project-session-list>"),oi=T('<div class="card panel project-sessions-panel"><div class=panel-head><div><h3>Project Sessions</h3><div class=panel-head-copy>'),ai=T("<p class=muted>Pick a project from column 1 to see its sessions."),ci=T("<p class=muted>No sessions in this project yet."),di=T("<button><span class=project-session-link-title></span><span class=project-session-link-meta>");function ui(e,t){return t===e.id?"current":""}function fi(e){return(()=>{var t=oi(),n=t.firstChild,s=n.firstChild,i=s.firstChild,r=i.nextSibling;return a(r,()=>{var o;return((o=e.project)==null?void 0:o.name)||"Select a project"}),a(t,I($e,{get when(){return e.project},get fallback(){return ai()},get children(){var o=li();return a(o,I(De,{get each(){return e.sessions},get fallback(){return ci()},children:l=>(()=>{var f=di(),c=f.firstChild,p=c.nextSibling;return f.$$click=()=>e.onSelectSession(l),a(c,()=>l.title),a(p,(()=>{var d=We(()=>e.currentSessionId===l.id);return()=>d()?"current":l.id.slice(0,8)})()),ne(()=>_e(f,`project-session-link ${e.selectedSessionId===l.id?"active":""} ${ui(l,e.currentSessionId)}`)),f})()})),o}}),null),t})()}lt(["click"]);var hi=T("<div class=result-box><code></code><button class=dismiss-btn>x"),mi=T('<div class="card panel control-rail"><div class=panel-head><div><h3>Control Rail</h3><div class=panel-head-copy>deterministic session authority</div></div><span></span></div><div class=control-status-grid><div class=control-status><span class=field-label>vibe status</span><strong></strong></div><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>thinking</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>Updates the live API token used by the runtime. Status below shows whether the backend is connected.</p></div><div class=control-group><h4>Vibe Mode</h4><div class=mode-control-grid></div></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>'),_i=T("<button><strong></strong><span>"),pi=T("<p class=muted>No resolved plan yet. Use the chat or create a plan from here."),bi=T("<div class=control-flow-step><span></span><div><strong></strong><div class=muted> · ");const gi=Us();function vi(e){return`$${Number(e||0).toFixed(2)}`}function $i(e){const t=String(e||"").trim().toLowerCase();if(!t||t==="auto")return"auto";try{return Bt(t).name||Bt(zt(t)).name||t}catch{return t}}function Si(e){const[t,n]=q(null),[s,i]=q(null),[r,o]=q(""),l=le(()=>{var g,$;return String(((g=e.status)==null?void 0:g.optimization_mode)||(($=e.status)==null?void 0:$.native_agent_mode)||"auto").toLowerCase()}),f=le(()=>$i(l())),c=le(()=>{var g,$;return(($=(g=e.status)==null?void 0:g.orchestration_plan)==null?void 0:$.steps)||[]}),p=le(()=>{var g,$;return((g=e.status)==null?void 0:g.backend_connected)??(($=e.status)==null?void 0:$.backendConnected)??!1}),d=async g=>{if(!t()){n(`mode:${g}`),i(null);try{const $=await bt("mode",g);i($.ok?String($.result||`mode:${g}`):String($.error||"failed")),e.onRefresh()}catch($){i($.message)}finally{n(null)}}},x=async()=>{const g=r().trim();if(!(!g||t())){n("token"),i(null);try{const $=await bt("api-token","",void 0,g);i($.ok?"API token updated":String($.error||"failed")),o(""),e.onRefresh()}catch($){i($.message)}finally{n(null)}}},O=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")),o(""),e.onRefresh()}catch(g){i(g.message)}finally{n(null)}}};return(()=>{var g=mi(),$=g.firstChild,G=$.firstChild,R=G.nextSibling,P=$.nextSibling,k=P.firstChild,j=k.firstChild,Y=j.nextSibling,v=k.nextSibling,E=v.firstChild,Z=E.nextSibling,A=v.nextSibling,m=A.firstChild,y=m.nextSibling,C=A.nextSibling,W=C.firstChild,L=W.nextSibling,X=P.nextSibling,pe=X.firstChild,se=pe.nextSibling,xe=se.nextSibling,Se=xe.firstChild,b=Se.nextSibling,w=X.nextSibling,N=w.firstChild,F=N.nextSibling,J=w.nextSibling,ie=J.firstChild,Q=ie.nextSibling,de=Q.firstChild,ce=de.nextSibling,ee=Q.nextSibling,be=J.nextSibling,Ce=be.firstChild,ge=Ce.nextSibling,Pe=ge.firstChild,je=Pe.nextSibling,we=ge.nextSibling,Ae=we.nextSibling,S=Ae.firstChild,M=S.nextSibling;M.nextSibling;var te=be.nextSibling,ve=te.firstChild,K=ve.nextSibling,V=K.firstChild,ze=V.firstChild,Fe=ze.nextSibling,Be=V.nextSibling,Pt=Be.firstChild,jt=Pt.nextSibling,at=Be.nextSibling,At=at.firstChild,Qe=At.nextSibling,Ye=at.nextSibling,et=Ye.firstChild,ct=et.nextSibling,Et=K.nextSibling,_=Et.firstChild,D=_.firstChild,ke=D.nextSibling,he=_.nextSibling,Ee=he.firstChild,Ne=Ee.nextSibling,He=he.nextSibling,Je=He.firstChild,Ke=Je.nextSibling,tt=He.nextSibling,dt=tt.firstChild,ut=dt.nextSibling;return a(R,()=>p()?"LIVE":"DEGRADED"),a(Y,f),a(Z,()=>p()?"valid":"invalid"),a(y,()=>p()?"live":"degraded"),a(L,()=>{var h;return((h=e.status)==null?void 0:h.thinking)||"brief"}),se.$$input=h=>o(h.currentTarget.value),Se.$$click=()=>void x(),b.$$click=()=>void O(),a(F,I(De,{each:gi,children:h=>(()=>{var z=_i(),ue=z.firstChild,qe=ue.nextSibling;return z.$$click=()=>void d(h.id),a(ue,()=>h.name),a(qe,()=>h.pipeline.join(" → ")),ne(me=>{var Ft;var Re=`mode-card-btn ${((Ft=e.status)==null?void 0:Ft.optimization_mode)===h.id?"active":""}`,Te=t()===`mode:${h.id}`||h.id==="raw",Ue=h.desc;return Re!==me.e&&_e(z,me.e=Re),Te!==me.t&&(z.disabled=me.t=Te),Ue!==me.a&&ot(z,"title",me.a=Ue),me},{e:void 0,t:void 0,a:void 0}),z})()})),a(de,()=>{var h;return((h=e.currentProject)==null?void 0:h.name)||"No project selected"}),a(ce,()=>{var h;return(h=e.status)!=null&&h.flow_enforcer?"ON":"OFF"}),a(ee,I(De,{get each(){return c()},get fallback(){return pi()},children:(h,z)=>(()=>{var ue=bi(),qe=ue.firstChild,me=qe.nextSibling,Re=me.firstChild,Te=Re.nextSibling,Ue=Te.firstChild;return a(qe,()=>z()+1),a(Re,()=>h.label),a(Te,()=>h.tool,Ue),a(Te,()=>h.reason,null),ue})()})),Pe.$$click=()=>{n("plan"),e.onCreatePlan(),e.onRefresh(),n(null)},je.$$click=()=>{n("tdd"),e.onStartTdd(),e.onRefresh(),n(null)},a(Ae,()=>{var h,z;return(z=(h=e.capabilities)==null?void 0:h.web_search)!=null&&z.enabled?"on":"off"},M),a(Ae,()=>{var h,z;return(z=(h=e.capabilities)==null?void 0:h.tdd)!=null&&z.enabled?"on":"off"},null),a(Fe,()=>{var h;return((h=e.status)==null?void 0:h.active_slot)||"brain"}),a(jt,()=>{var h;return(((h=e.status)==null?void 0:h.current_model)||"unknown").split("/").pop()}),a(Qe,()=>{var h;return vi((h=e.savings)==null?void 0:h.savings_rate_per_hour)}),a(ct,()=>{var h,z,ue;return((z=(h=e.status)==null?void 0:h.todos)==null?void 0:z.pending)??((ue=e.home)==null?void 0:ue.totals.pending_todos)??0}),a(ke,()=>{var h;return((h=e.session)==null?void 0:h.title)||"none"}),a(Ne,()=>{var h;return(h=e.status)!=null&&h.backend_connected?"online":"degraded"}),a(Ke,()=>{var h;return(h=e.status)!=null&&h.model_locked?"locked":"open"}),a(ut,()=>{var h;return(h=e.status)!=null&&h.flow_enforcer?"on":"off"}),a(g,I($e,{get when(){return s()},get children(){var h=hi(),z=h.firstChild,ue=z.nextSibling;return a(z,()=>s()),ue.$$click=()=>i(null),h}}),null),ne(h=>{var Ue;var z=`badge ${p()?"on":"off"}`,ue=!r().trim()||t()==="token",qe=t()==="token",me=`badge ${(Ue=e.status)!=null&&Ue.flow_enforcer?"on":"off"}`,Re=!e.session||t()==="plan",Te=!e.session||t()==="tdd";return z!==h.e&&_e(R,h.e=z),ue!==h.t&&(Se.disabled=h.t=ue),qe!==h.a&&(b.disabled=h.a=qe),me!==h.o&&_e(ce,h.o=me),Re!==h.i&&(Pe.disabled=h.i=Re),Te!==h.n&&(je.disabled=h.n=Te),h},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),ne(()=>se.value=r()),g})()}lt(["input","click"]);var wi=T('<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></span></div></header><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 ki(){const[e,t]=q(null),[n,s]=q(null),[i,r]=q(null),[o,l]=q(null),[f,c]=q(!1),[p,d]=q({kind:ys}),[x,O]=q([]),[g,$]=q({}),[G,R]=q(!1),[P,k]=q(null),j=()=>un().then(b=>{t(b),c(!0)}).catch(()=>c(!1)),Y=()=>fn().then(b=>{s(b),c(!0)}).catch(()=>c(!1)),v=()=>hn().then(r).catch(()=>{}),E=()=>mn().then(l).catch(()=>{}),Z=()=>bn().then(b=>O(b.projects)).catch(()=>{}),A=()=>$n().then(b=>{var N;const w={};for(const F of b.sessions)(w[N=F.project_id]||(w[N]=[])).push(F);$(w)}).catch(()=>{}),m=pn(b=>{t(b.status),s(b.savings),c(!0)});j(),Y(),v(),Z(),A(),E(),qt(m);const y=()=>R(!0),C=async b=>{R(!1);const w=await gn(b);await Z(),await E(),d({kind:"project",projectId:w.project.id})},W=()=>R(!1),L=async b=>{confirm("Delete this project and all its sessions?")&&(await vn(b),await Z(),await A(),await E(),p().projectId===b&&d({kind:"home"}))},X=()=>{var F,J,ie,Q,de,ce;const b=p();if(b.kind==="project"||b.kind==="session")return x().find(ee=>ee.id===b.projectId)||null;const w=((J=(F=o())==null?void 0:F.current_session)==null?void 0:J.project_fingerprint)||((ie=e())==null?void 0:ie.current_project_fingerprint)||"",N=((de=(Q=o())==null?void 0:Q.current_session)==null?void 0:de.project_name)||((ce=e())==null?void 0:ce.current_project_name)||"";return x().find(ee=>ee.fingerprint&&ee.fingerprint===w)||x().find(ee=>ee.name===N)||null},pe=()=>{const b=X();return b?g()[b.id]||[]:[]},se=()=>{var J,ie;const b=p();if(b.kind==="session")return(g()[b.projectId]||[]).find(Q=>Q.id===b.sessionId)||null;const w=((ie=(J=o())==null?void 0:J.current_session)==null?void 0:ie.session_id)||"";if(!w)return null;const N=X();if(!N)return null;const F=(g()[N.id]||[]).find(Q=>Q.id===w)||null;return F&&F.project_id===N.id?F:null},xe=()=>{const b=e();if(!b)return{label:"API OFF",tone:"disconnected",title:"backend status unavailable"};const w=b.backend_connected??b.backendConnected,N=b.backend_api_url||b.backend_health_url||"unknown target",F=b.backend_health_checked_at?new Date(b.backend_health_checked_at).toLocaleTimeString():null;if(w){const ie=typeof b.backend_health_age_ms=="number"?` ${Math.max(0,Math.round(b.backend_health_age_ms/1e3))}s`:"",Q=typeof b.backend_health_latency_ms=="number"?` ${b.backend_health_latency_ms}ms`:"";return{label:`⚡ BACKEND${ie}`,tone:"connected",title:`${N}${Q}${F?` · checked ${F}`:""}`}}const J=b.backend_health_error||(typeof b.backend_health_status=="number"?`HTTP ${b.backend_health_status}`:"unreachable");return{label:"API OFF",tone:"disconnected",title:`${N} · ${J}${F?` · checked ${F}`:""}`}},Se=b=>{const w=se();w&&k({sessionId:w.id,prompt:b})};return(()=>{var b=wi(),w=b.firstChild,N=w.firstChild,F=N.firstChild,J=F.firstChild,ie=J.firstChild,Q=ie.nextSibling,de=J.nextSibling,ce=F.nextSibling,ee=ce.firstChild,be=ee.nextSibling,Ce=be.nextSibling,ge=Ce.nextSibling,Pe=N.nextSibling,je=Pe.firstChild,we=je.nextSibling,Ae=we.nextSibling;return a(b,I(Os,{get home(){return o()},get status(){return e()},get projects(){return x()},get selection(){return p()},get currentProjectName(){var S,M,te,ve;return((S=X())==null?void 0:S.name)||((te=(M=o())==null?void 0:M.current_session)==null?void 0:te.project_name)||((ve=e())==null?void 0:ve.current_project_name)||null},get creatingProject(){return G()},onSelect:d,onNewProject:y,onCreateProjectName:C,onCancelCreate:W,onDeleteProject:L}),w),a(ie,()=>{var S,M,te;return((S=X())==null?void 0:S.name)||((te=(M=o())==null?void 0:M.current_session)==null?void 0:te.project_name)||"Home"}),a(Q,()=>{var S,M,te;return((S=se())==null?void 0:S.title)||((te=(M=o())==null?void 0:M.home)==null?void 0:te.subtitle)||"OpenCode-style operational dashboard"}),a(de,()=>{var S;return((S=e())==null?void 0:S.version)??"..."}),a(ee,()=>f()?"LIVE":"connecting"),a(be,()=>xe().label),a(Ce,()=>{var S,M;return((S=e())==null?void 0:S.backend_connected)??((M=e())==null?void 0:M.backendConnected)?"API LIVE":"API DEGRADED"}),a(ge,()=>{var S;return((S=e())==null?void 0:S.enabled)===!1?"OFF":"ON"}),a(je,I(fi,{get project(){return X()},get sessions(){return pe()},get selectedSessionId(){var S;return((S=se())==null?void 0:S.id)||null},get currentSessionId(){var S,M;return((M=(S=o())==null?void 0:S.current_session)==null?void 0:M.session_id)||null},onSelectSession:S=>d({kind:"session",projectId:S.project_id,sessionId:S.id})})),a(we,I(ri,{get session(){return se()},get project(){return X()},get status(){return e()},get capabilities(){return i()},get savings(){return n()},get runRequest(){return P()},onRunRequestHandled:()=>k(null),onRefresh:()=>{j(),Y(),E(),A()}})),a(Ae,I(Si,{get status(){return e()},get capabilities(){return i()},get home(){return o()},get savings(){return n()},get session(){return se()},get currentProject(){return X()},onRefresh:()=>{j(),Y(),E()},onCreatePlan:()=>Se("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:()=>Se("Start TDD for this session. Produce failing tests first, then implement the minimum fix, then verify the result.")})),ne(S=>{var ze,Fe,Be;var M=`indicator ${f()?"connected":"disconnected"}`,te=`indicator flash ${xe().tone}`,ve=xe().title,K=`indicator ${((ze=e())==null?void 0:ze.backend_connected)??((Fe=e())==null?void 0:Fe.backendConnected)?"connected":"disconnected"}`,V=`indicator ${((Be=e())==null?void 0:Be.enabled)===!1?"disabled":"connected"}`;return M!==S.e&&_e(ee,S.e=M),te!==S.t&&_e(be,S.t=te),ve!==S.a&&ot(be,"title",S.a=ve),K!==S.o&&_e(Ce,S.o=K),V!==S.i&&_e(ge,S.i=V),S},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),b})()}const Yt=document.getElementById("app");Yt&&qn(()=>I(ki,{}),Yt);