loki-mode 10.8.0 → 10.9.1

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 (147) hide show
  1. package/README.md +2 -2
  2. package/SKILL.md +2 -2
  3. package/VERSION +1 -1
  4. package/autonomy/loki +16 -31
  5. package/autonomy/tui.sh +5 -1
  6. package/dashboard/__init__.py +1 -1
  7. package/dashboard/api_phases.py +1 -1
  8. package/dashboard/api_start.py +0 -1
  9. package/dashboard/server.py +22 -138
  10. package/docs/COCKPIT-SPEC.md +3 -1
  11. package/docs/DASHBOARD-9.12-EVIDENCE.md +1 -1
  12. package/docs/DASHBOARD-ARCHITECTURE.md +13 -11
  13. package/docs/DASHBOARD_V2_CHECKLIST.md +2 -0
  14. package/docs/INSTALLATION.md +12 -11
  15. package/docs/MERGE-DEDUP-MAP.md +1 -1
  16. package/docs/MERGE-ROUTE-MAP.md +1 -1
  17. package/docs/MERGE3-PLAN.md +2 -2
  18. package/docs/R3-COST-OBSERVABILITY-DESIGN.md +2 -2
  19. package/docs/R4-TRUST-TRAJECTORY-DESIGN.md +1 -1
  20. package/docs/R5-AUTO-WIKI-DESIGN.md +1 -1
  21. package/docs/R6-ROLLBACK-CHECKPOINT-PLAN.md +1 -1
  22. package/docs/RARV-C-100X-PLAN.md +3 -3
  23. package/docs/SONNET5-DEFAULT-PLAN.md +2 -2
  24. package/docs/SYNERGY-TASKS.md +1 -1
  25. package/docs/TOOL-INTEGRATION.md +1 -1
  26. package/docs/TOP-100-BACKLOG.md +1 -1
  27. package/docs/alternative-installations.md +1 -1
  28. package/docs/architecture/ADR-001-runtime-migration.md +1 -1
  29. package/docs/architecture/DASHBOARD_V2_ARCHITECTURE.md +2 -0
  30. package/docs/audit-logging.md +2 -0
  31. package/docs/authentication.md +2 -0
  32. package/docs/authorization.md +2 -0
  33. package/docs/certification/02-enterprise-features/lab.md +2 -0
  34. package/docs/certification/02-enterprise-features/lesson.md +2 -0
  35. package/docs/certification/04-production-deployment/lab.md +2 -0
  36. package/docs/certification/04-production-deployment/lesson.md +2 -0
  37. package/docs/control-plane-migration.md +97 -0
  38. package/docs/dashboard-guide.md +6 -7
  39. package/docs/dev/release-checklist.md +9 -11
  40. package/docs/enterprise/integration-cookbook.md +2 -0
  41. package/docs/enterprise/migration.md +1 -1
  42. package/docs/enterprise/performance.md +3 -1
  43. package/docs/enterprise/sdk-guide.md +2 -0
  44. package/docs/enterprise/security.md +2 -0
  45. package/docs/plans/FORGE-AUTONOMOUS-QUEUE.md +2 -2
  46. package/docs/research-2026-07/OBSERVABILITY-TOOL-SPEC.md +1 -1
  47. package/docs/retrospectives/v7.5.15-honesty-audit.md +2 -2
  48. package/docs/test-scenarios/enterprise-scenarios.md +2 -2
  49. package/docs/v10/ARCHITECT-CUTS.md +9 -9
  50. package/docs/v10/BACKLOG.md +7 -7
  51. package/docs/v10/BOARD.md +25 -25
  52. package/docs/v10/CONTROL-PLANE.md +4 -4
  53. package/docs/v10/CP-ENTERPRISE-UI.md +66 -66
  54. package/docs/v10/D51-PHASE-B.md +1 -1
  55. package/docs/v10/DECISIONS.md +3 -3
  56. package/docs/v10/DEPS.md +10 -10
  57. package/docs/v10/FAILURE-CLASSES.md +45 -1
  58. package/docs/v10/LEGACY-REMOVAL.md +2 -2
  59. package/docs/v10/SWARM.md +2 -2
  60. package/loki-ts/dist/cockpit.js +11 -11
  61. package/loki-ts/dist/loki.js +596 -579
  62. package/magic/core/design_tokens.py +1 -2
  63. package/magic/core/generator.py +2 -2
  64. package/magic/tokens/README.md +1 -3
  65. package/mcp/__init__.py +1 -1
  66. package/package.json +2 -7
  67. package/packages/control-plane/dist/server.js +1683 -843
  68. package/packages/control-plane/src/server/legacy/routes-audit.ts +50 -0
  69. package/packages/control-plane/src/server/legacy/routes-control.ts +26 -0
  70. package/packages/control-plane/src/server/legacy/routes-memory.ts +30 -0
  71. package/packages/control-plane/src/server/legacy/routes.ts +58 -58
  72. package/packages/control-plane/src/server/legacy/shim.ts +10 -4
  73. package/packages/control-plane/src/server/routes/checkpoints.ts +171 -0
  74. package/packages/control-plane/src/server/routes/index.ts +4 -1
  75. package/packages/control-plane/src/server/routes/memory.ts +219 -0
  76. package/packages/control-plane/src/server/routes/session_control.ts +155 -0
  77. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  78. package/references/magic-modules-patterns.md +2 -2
  79. package/skills/factory-operations.md +3 -3
  80. package/skills/magic-modules.md +1 -1
  81. package/skills/release-cadence.md +1 -1
  82. package/tools/audit-docs.py +1 -1
  83. package/tools/index-codebase.py +1 -1
  84. package/web-app/dist/assets/{AdminPage-DDDvUz0N.js → AdminPage-DqMnfZrH.js} +1 -1
  85. package/web-app/dist/assets/{Avatar-Dcdz46i6.js → Avatar-BEof29du.js} +1 -1
  86. package/web-app/dist/assets/{Badge-BB24cCpK.js → Badge-WD53OL5m.js} +1 -1
  87. package/web-app/dist/assets/{Button-D0-DmPZL.js → Button-Rzk5flhU.js} +1 -1
  88. package/web-app/dist/assets/{CockpitPage-CdjpU2JW.js → CockpitPage-Bqz3PCMh.js} +1 -1
  89. package/web-app/dist/assets/{ComparePage-DT5U0y0d.js → ComparePage-Byo2NzAZ.js} +1 -1
  90. package/web-app/dist/assets/{ErrorBoundary-lEHcl0EO.js → ErrorBoundary-BuE0kH3W.js} +1 -1
  91. package/web-app/dist/assets/{EvidenceReceiptPanel-GpnWvdCr.js → EvidenceReceiptPanel-CKFHOPBx.js} +1 -1
  92. package/web-app/dist/assets/{GitHubIssuesPanel-C7VOh1B7.js → GitHubIssuesPanel-Df_kTMqI.js} +1 -1
  93. package/web-app/dist/assets/{GitHubPRsPanel-G_kOuINv.js → GitHubPRsPanel-CouvcKrZ.js} +1 -1
  94. package/web-app/dist/assets/{HomePage-PqRisOny.js → HomePage-dEpLzj0x.js} +2 -2
  95. package/web-app/dist/assets/{LoginPage-DU7pFAkf.js → LoginPage-6DVjUND5.js} +1 -1
  96. package/web-app/dist/assets/{MagicPage-C5JWIWMk.js → MagicPage-BDQ9MOfY.js} +1 -1
  97. package/web-app/dist/assets/{MetricsPage-CbIGS_qo.js → MetricsPage-CXiJ04G_.js} +1 -1
  98. package/web-app/dist/assets/{NotFoundPage-vU1pvdSt.js → NotFoundPage-BaXhZvyj.js} +1 -1
  99. package/web-app/dist/assets/{ProjectPage-SsixIPPv.js → ProjectPage-BzE4V7Ti.js} +3 -3
  100. package/web-app/dist/assets/{ProjectsPage-BfQKSR9k.js → ProjectsPage-ipf6TLMX.js} +1 -1
  101. package/web-app/dist/assets/{SettingsPage-B8YfXAom.js → SettingsPage-BDxkUKN6.js} +1 -1
  102. package/web-app/dist/assets/{ShowcasePage-Ba407f2-.js → ShowcasePage-YQXD72SM.js} +1 -1
  103. package/web-app/dist/assets/{SystemSettingsPage-DzNQhhBS.js → SystemSettingsPage-Dou7zHS0.js} +1 -1
  104. package/web-app/dist/assets/{TeamsPage-tqUnpZ15.js → TeamsPage-CQarfcYr.js} +1 -1
  105. package/web-app/dist/assets/{TemplatesPage-ClB5EpI3.js → TemplatesPage-CPi1R8Xj.js} +1 -1
  106. package/web-app/dist/assets/{TerminalOutput-CBvpYfEu.js → TerminalOutput-WiGhWdYD.js} +1 -1
  107. package/web-app/dist/assets/{activity-C1s0L_X9.js → activity-DOa7ejQA.js} +1 -1
  108. package/web-app/dist/assets/{bell-DMEiXr73.js → bell-CX-VAlYN.js} +1 -1
  109. package/web-app/dist/assets/{bot-BF_xIOxu.js → bot-EDXaZmHc.js} +1 -1
  110. package/web-app/dist/assets/{check-Dv1Ynvrs.js → check-CnBdKk3L.js} +1 -1
  111. package/web-app/dist/assets/{chevron-left-Ddhsod7S.js → chevron-left-BJ_ydRQW.js} +1 -1
  112. package/web-app/dist/assets/{circle-alert-OATHUkBZ.js → circle-alert-tz8ufhc_.js} +1 -1
  113. package/web-app/dist/assets/{clock-C1Ltva07.js → clock-DFBZPSsH.js} +1 -1
  114. package/web-app/dist/assets/{cloud-B-S4oOy9.js → cloud-uy3p_5Q7.js} +1 -1
  115. package/web-app/dist/assets/{code-xml-D3Femn_F.js → code-xml-3CbYD9YL.js} +1 -1
  116. package/web-app/dist/assets/{database-DBSeFgO3.js → database-YiNBXc9c.js} +1 -1
  117. package/web-app/dist/assets/{dollar-sign-sgDgNuGE.js → dollar-sign-D0wBa4Cv.js} +1 -1
  118. package/web-app/dist/assets/{file-code-corner-C-MbdZEc.js → file-code-corner-DDdZVZ5v.js} +1 -1
  119. package/web-app/dist/assets/{file-plus-CCB6yqXv.js → file-plus-D09LTBqt.js} +1 -1
  120. package/web-app/dist/assets/{globe-DlbrNAj1.js → globe-BirTPwff.js} +1 -1
  121. package/web-app/dist/assets/{hammer-B-DWm695.js → hammer-DaE5qgnd.js} +1 -1
  122. package/web-app/dist/assets/{index-Dvny-1SU.js → index-D8t7KnQf.js} +3 -3
  123. package/web-app/dist/assets/{layers-99qsKpOT.js → layers-DVVrckRY.js} +1 -1
  124. package/web-app/dist/assets/{loader-circle-ZvZyZl3J.js → loader-circle-2-nMGmcb.js} +1 -1
  125. package/web-app/dist/assets/{lock-DosGjcxP.js → lock-D0Xj43pC.js} +1 -1
  126. package/web-app/dist/assets/{package-C-PumesN.js → package-BB7S3egm.js} +1 -1
  127. package/web-app/dist/assets/{plus-CTYYskTB.js → plus-BLhoMrn3.js} +1 -1
  128. package/web-app/dist/assets/{refresh-cw-qW2ztTFS.js → refresh-cw-DMc2uPLw.js} +1 -1
  129. package/web-app/dist/assets/{rotate-ccw-ZIKrf-vO.js → rotate-ccw-DM3IP9x7.js} +1 -1
  130. package/web-app/dist/assets/{scroll-text-BamlXjAT.js → scroll-text-lH2uW7rB.js} +1 -1
  131. package/web-app/dist/assets/{server-BljXb79I.js → server-BkerZcdR.js} +1 -1
  132. package/web-app/dist/assets/{shield-alert-Dr6eT9c_.js → shield-alert-B8ohcUfu.js} +1 -1
  133. package/web-app/dist/assets/{thumbs-up-v3oBXZgU.js → thumbs-up-CTIxLzPD.js} +1 -1
  134. package/web-app/dist/assets/{trash-2-BOuIrCpi.js → trash-2-C3zIpsH5.js} +1 -1
  135. package/web-app/dist/assets/{trending-down-Dp7jMCgH.js → trending-down-BTT7wV4Y.js} +1 -1
  136. package/web-app/dist/assets/{trending-up-CDiur-nP.js → trending-up-BzHdCDvF.js} +1 -1
  137. package/web-app/dist/assets/{upload-DxIHXhNE.js → upload-HxR34-A8.js} +1 -1
  138. package/web-app/dist/assets/{usePolling-D2Uu-YZb.js → usePolling-DDj6Fupy.js} +1 -1
  139. package/web-app/dist/assets/{user-BVWCUAfF.js → user-qH5y9yNy.js} +1 -1
  140. package/web-app/dist/index.html +1 -1
  141. package/dashboard/static/assets/mermaid.min.js +0 -2030
  142. package/dashboard/static/cost.html +0 -344
  143. package/dashboard/static/favicon.svg +0 -5
  144. package/dashboard/static/index.html +0 -15577
  145. package/dashboard/static/proofs.html +0 -194
  146. package/dashboard/static/start.html +0 -131
  147. package/dashboard/static/trust.html +0 -325
@@ -1,19 +1,19 @@
1
1
  // @bun
2
- var EJ=Object.defineProperty;var TJ=(J)=>J;function WJ(J,Q){this[J]=TJ.bind(null,Q)}var FJ=(J,Q)=>{for(var X in Q)EJ(J,X,{get:Q[X],enumerable:!0,configurable:!0,set:WJ.bind(Q,X)})};var BJ=(J,Q)=>()=>(J&&(Q=J(J=0)),Q);var F=import.meta.require;var qJ={};FJ(qJ,{initWasm:()=>mJ,Resvg:()=>dJ});function Y(J){if(_===T.length)T.push(T.length+1);let Q=_;return _=T[Q],T[Q]=J,Q}function A(J){return T[J]}function OJ(J){if(J<132)return;T[J]=_,_=J}function W(J){let Q=A(J);return OJ(J),Q}function b(){if(j===null||j.byteLength===0)j=new Uint8Array(D.memory.buffer);return j}function g(J,Q,X){if(X===void 0){let K=y.encode(J),P=Q(K.length,1)>>>0;return b().subarray(P,P+K.length).set(K),h=K.length,P}let Z=J.length,$=Q(Z,1)>>>0,G=b(),q=0;for(;q<Z;q++){let K=J.charCodeAt(q);if(K>127)break;G[$+q]=K}if(q!==Z){if(q!==0)J=J.slice(q);$=X($,Z,Z=q+J.length*3,1)>>>0;let K=b().subarray($+q,$+Z),P=jJ(J,K);q+=P.written,$=X($,Z,q,1)>>>0}return h=q,$}function i(J){return J===void 0||J===null}function N(){if(x===null||x.byteLength===0)x=new Int32Array(D.memory.buffer);return x}function w(J,Q){return J=J>>>0,DJ.decode(b().subarray(J,J+Q))}function xJ(J,Q){if(!(J instanceof Q))throw Error(`expected instance of ${Q.name}`);return J.ptr}function _J(J,Q){try{return J.apply(this,Q)}catch(X){D.__wbindgen_exn_store(Y(X))}}async function vJ(J,Q){if(typeof Response==="function"&&J instanceof Response){if(typeof WebAssembly.instantiateStreaming==="function")try{return await WebAssembly.instantiateStreaming(J,Q)}catch(Z){if(J.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",Z);else throw Z}let X=await J.arrayBuffer();return await WebAssembly.instantiate(X,Q)}else{let X=await WebAssembly.instantiate(J,Q);if(X instanceof WebAssembly.Instance)return{instance:X,module:J};else return X}}function bJ(){let J={};return J.wbg={},J.wbg.__wbg_new_28c511d9baebfa89=function(Q,X){let Z=Error(w(Q,X));return Y(Z)},J.wbg.__wbindgen_memory=function(){let Q=D.memory;return Y(Q)},J.wbg.__wbg_buffer_12d079cc21e14bdb=function(Q){let X=A(Q).buffer;return Y(X)},J.wbg.__wbg_newwithbyteoffsetandlength_aa4a17c33a06e5cb=function(Q,X,Z){let $=new Uint8Array(A(Q),X>>>0,Z>>>0);return Y($)},J.wbg.__wbindgen_object_drop_ref=function(Q){W(Q)},J.wbg.__wbg_new_63b92bc8671ed464=function(Q){let X=new Uint8Array(A(Q));return Y(X)},J.wbg.__wbg_values_839f3396d5aac002=function(Q){let X=A(Q).values();return Y(X)},J.wbg.__wbg_next_196c84450b364254=function(){return _J(function(Q){let X=A(Q).next();return Y(X)},arguments)},J.wbg.__wbg_done_298b57d23c0fc80c=function(Q){return A(Q).done},J.wbg.__wbg_value_d93c65011f51a456=function(Q){let X=A(Q).value;return Y(X)},J.wbg.__wbg_instanceof_Uint8Array_2b3bbecd033d19f6=function(Q){let X;try{X=A(Q)instanceof Uint8Array}catch($){X=!1}return X},J.wbg.__wbindgen_string_get=function(Q,X){let Z=A(X),$=typeof Z==="string"?Z:void 0;var G=i($)?0:g($,D.__wbindgen_malloc,D.__wbindgen_realloc),q=h;N()[Q/4+1]=q,N()[Q/4+0]=G},J.wbg.__wbg_new_16b304a2cfa7ff4a=function(){return Y([])},J.wbg.__wbindgen_string_new=function(Q,X){let Z=w(Q,X);return Y(Z)},J.wbg.__wbg_push_a5b05aedc7234f9f=function(Q,X){return A(Q).push(A(X))},J.wbg.__wbg_length_c20a40f15020d68a=function(Q){return A(Q).length},J.wbg.__wbg_set_a47bac70306a19a7=function(Q,X,Z){A(Q).set(A(X),Z>>>0)},J.wbg.__wbindgen_throw=function(Q,X){throw Error(w(Q,X))},J}function yJ(J,Q){}function wJ(J,Q){return D=J.exports,KJ.__wbindgen_wasm_module=Q,x=null,j=null,D}async function KJ(J){if(D!==void 0)return D;if(typeof J>"u")J=new URL("index_bg.wasm",void 0);let Q=bJ();if(typeof J==="string"||typeof Request==="function"&&J instanceof Request||typeof URL==="function"&&J instanceof URL)J=fetch(J);yJ(Q);let{instance:X,module:Z}=await vJ(await J,Q);return wJ(X,Z)}function pJ(J){return Object.prototype.hasOwnProperty.call(J,"fontBuffers")}var D,T,_,h=0,j=null,y,jJ,x=null,DJ,$J,p=class J{static __wrap(Q){Q=Q>>>0;let X=Object.create(J.prototype);return X.__wbg_ptr=Q,$J.register(X,X.__wbg_ptr,X),X}__destroy_into_raw(){let Q=this.__wbg_ptr;return this.__wbg_ptr=0,$J.unregister(this),Q}free(){let Q=this.__destroy_into_raw();D.__wbg_bbox_free(Q)}get x(){return D.__wbg_get_bbox_x(this.__wbg_ptr)}set x(Q){D.__wbg_set_bbox_x(this.__wbg_ptr,Q)}get y(){return D.__wbg_get_bbox_y(this.__wbg_ptr)}set y(Q){D.__wbg_set_bbox_y(this.__wbg_ptr,Q)}get width(){return D.__wbg_get_bbox_width(this.__wbg_ptr)}set width(Q){D.__wbg_set_bbox_width(this.__wbg_ptr,Q)}get height(){return D.__wbg_get_bbox_height(this.__wbg_ptr)}set height(Q){D.__wbg_set_bbox_height(this.__wbg_ptr,Q)}},GJ,hJ=class J{static __wrap(Q){Q=Q>>>0;let X=Object.create(J.prototype);return X.__wbg_ptr=Q,GJ.register(X,X.__wbg_ptr,X),X}__destroy_into_raw(){let Q=this.__wbg_ptr;return this.__wbg_ptr=0,GJ.unregister(this),Q}free(){let Q=this.__destroy_into_raw();D.__wbg_renderedimage_free(Q)}get width(){return D.renderedimage_width(this.__wbg_ptr)>>>0}get height(){return D.renderedimage_height(this.__wbg_ptr)>>>0}asPng(){try{let $=D.__wbindgen_add_to_stack_pointer(-16);D.renderedimage_asPng($,this.__wbg_ptr);var Q=N()[$/4+0],X=N()[$/4+1],Z=N()[$/4+2];if(Z)throw W(X);return W(Q)}finally{D.__wbindgen_add_to_stack_pointer(16)}}get pixels(){let Q=D.renderedimage_pixels(this.__wbg_ptr);return W(Q)}},fJ,uJ=class{__destroy_into_raw(){let J=this.__wbg_ptr;return this.__wbg_ptr=0,fJ.unregister(this),J}free(){let J=this.__destroy_into_raw();D.__wbg_resvg_free(J)}constructor(J,Q,X){try{let P=D.__wbindgen_add_to_stack_pointer(-16);var Z=i(Q)?0:g(Q,D.__wbindgen_malloc,D.__wbindgen_realloc),$=h;D.resvg_new(P,Y(J),Z,$,i(X)?0:Y(X));var G=N()[P/4+0],q=N()[P/4+1],K=N()[P/4+2];if(K)throw W(q);return this.__wbg_ptr=G>>>0,this}finally{D.__wbindgen_add_to_stack_pointer(16)}}get width(){return D.resvg_width(this.__wbg_ptr)}get height(){return D.resvg_height(this.__wbg_ptr)}render(){try{let Z=D.__wbindgen_add_to_stack_pointer(-16);D.resvg_render(Z,this.__wbg_ptr);var J=N()[Z/4+0],Q=N()[Z/4+1],X=N()[Z/4+2];if(X)throw W(Q);return hJ.__wrap(J)}finally{D.__wbindgen_add_to_stack_pointer(16)}}toString(){let J,Q;try{let $=D.__wbindgen_add_to_stack_pointer(-16);D.resvg_toString($,this.__wbg_ptr);var X=N()[$/4+0],Z=N()[$/4+1];return J=X,Q=Z,w(X,Z)}finally{D.__wbindgen_add_to_stack_pointer(16),D.__wbindgen_free(J,Q,1)}}innerBBox(){let J=D.resvg_innerBBox(this.__wbg_ptr);return J===0?void 0:p.__wrap(J)}getBBox(){let J=D.resvg_getBBox(this.__wbg_ptr);return J===0?void 0:p.__wrap(J)}cropByBBox(J){xJ(J,p),D.resvg_cropByBBox(this.__wbg_ptr,J.__wbg_ptr)}imagesToResolve(){try{let Z=D.__wbindgen_add_to_stack_pointer(-16);D.resvg_imagesToResolve(Z,this.__wbg_ptr);var J=N()[Z/4+0],Q=N()[Z/4+1],X=N()[Z/4+2];if(X)throw W(Q);return W(J)}finally{D.__wbindgen_add_to_stack_pointer(16)}}resolveImage(J,Q){try{let $=D.__wbindgen_add_to_stack_pointer(-16),G=g(J,D.__wbindgen_malloc,D.__wbindgen_realloc),q=h;D.resvg_resolveImage($,this.__wbg_ptr,G,q,Y(Q));var X=N()[$/4+0],Z=N()[$/4+1];if(Z)throw W(X)}finally{D.__wbindgen_add_to_stack_pointer(16)}}},lJ,c=!1,mJ=async(J)=>{if(c)throw Error("Already initialized. The `initWasm()` function can be used only once.");await lJ(await J),c=!0},dJ;var VJ=BJ(()=>{T=Array(128).fill(void 0);T.push(void 0,null,!0,!1);_=T.length;y=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},jJ=typeof y.encodeInto==="function"?function(J,Q){return y.encodeInto(J,Q)}:function(J,Q){let X=y.encode(J);return Q.set(X),{read:J.length,written:X.length}};DJ=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};if(typeof TextDecoder<"u")DJ.decode();$J=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((J)=>D.__wbg_bbox_free(J>>>0)),GJ=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((J)=>D.__wbg_renderedimage_free(J>>>0)),fJ=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((J)=>D.__wbg_resvg_free(J>>>0));lJ=KJ,dJ=class extends uJ{constructor(J,Q){if(!c)throw Error("Wasm has not been initialized. Call `initWasm()` function.");let X=Q?.font;if(!!X&&pJ(X)){let Z={...Q,font:{...X,fontBuffers:void 0}};super(J,JSON.stringify(Z),X.fontBuffers)}else super(J,JSON.stringify(Q))}}});function U(J){return String(J??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function HJ(J,Q,X){let Z=X/512;return`<g transform="translate(${J},${Q}) scale(${Z})">
2
+ var zD=Object.defineProperty;var FD=(D)=>D;function HD(D,J){this[D]=FD.bind(null,J)}var BD=(D,J)=>{for(var Q in J)zD(D,Q,{get:J[Q],enumerable:!0,configurable:!0,set:HD.bind(J,Q)})};var ID=(D,J)=>()=>(D&&(J=D(D=0)),J);var F=import.meta.require;var qD={};BD(qD,{initWasm:()=>pD,Resvg:()=>nD});function A(D){if(_===W.length)W.push(W.length+1);let J=_;return _=W[J],W[J]=D,J}function U(D){return W[D]}function xD(D){if(D<132)return;W[D]=_,_=D}function z(D){let J=U(D);return xD(D),J}function b(){if(j===null||j.byteLength===0)j=new Uint8Array(G.memory.buffer);return j}function n(D,J,Q){if(Q===void 0){let K=y.encode(D),N=J(K.length,1)>>>0;return b().subarray(N,N+K.length).set(K),h=K.length,N}let X=D.length,Z=J(X,1)>>>0,$=b(),q=0;for(;q<X;q++){let K=D.charCodeAt(q);if(K>127)break;$[Z+q]=K}if(q!==X){if(q!==0)D=D.slice(q);Z=Q(Z,X,X=q+D.length*3,1)>>>0;let K=b().subarray(Z+q,Z+X),N=_D(D,K);q+=N.written,Z=Q(Z,X,q,1)>>>0}return h=q,Z}function i(D){return D===void 0||D===null}function P(){if(x===null||x.byteLength===0)x=new Int32Array(G.memory.buffer);return x}function w(D,J){return D=D>>>0,GD.decode(b().subarray(D,D+J))}function hD(D,J){if(!(D instanceof J))throw Error(`expected instance of ${J.name}`);return D.ptr}function uD(D,J){try{return D.apply(this,J)}catch(Q){G.__wbindgen_exn_store(A(Q))}}async function yD(D,J){if(typeof Response==="function"&&D instanceof Response){if(typeof WebAssembly.instantiateStreaming==="function")try{return await WebAssembly.instantiateStreaming(D,J)}catch(X){if(D.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",X);else throw X}let Q=await D.arrayBuffer();return await WebAssembly.instantiate(Q,J)}else{let Q=await WebAssembly.instantiate(D,J);if(Q instanceof WebAssembly.Instance)return{instance:Q,module:D};else return Q}}function wD(){let D={};return D.wbg={},D.wbg.__wbg_new_28c511d9baebfa89=function(J,Q){let X=Error(w(J,Q));return A(X)},D.wbg.__wbindgen_memory=function(){let J=G.memory;return A(J)},D.wbg.__wbg_buffer_12d079cc21e14bdb=function(J){let Q=U(J).buffer;return A(Q)},D.wbg.__wbg_newwithbyteoffsetandlength_aa4a17c33a06e5cb=function(J,Q,X){let Z=new Uint8Array(U(J),Q>>>0,X>>>0);return A(Z)},D.wbg.__wbindgen_object_drop_ref=function(J){z(J)},D.wbg.__wbg_new_63b92bc8671ed464=function(J){let Q=new Uint8Array(U(J));return A(Q)},D.wbg.__wbg_values_839f3396d5aac002=function(J){let Q=U(J).values();return A(Q)},D.wbg.__wbg_next_196c84450b364254=function(){return uD(function(J){let Q=U(J).next();return A(Q)},arguments)},D.wbg.__wbg_done_298b57d23c0fc80c=function(J){return U(J).done},D.wbg.__wbg_value_d93c65011f51a456=function(J){let Q=U(J).value;return A(Q)},D.wbg.__wbg_instanceof_Uint8Array_2b3bbecd033d19f6=function(J){let Q;try{Q=U(J)instanceof Uint8Array}catch(Z){Q=!1}return Q},D.wbg.__wbindgen_string_get=function(J,Q){let X=U(Q),Z=typeof X==="string"?X:void 0;var $=i(Z)?0:n(Z,G.__wbindgen_malloc,G.__wbindgen_realloc),q=h;P()[J/4+1]=q,P()[J/4+0]=$},D.wbg.__wbg_new_16b304a2cfa7ff4a=function(){return A([])},D.wbg.__wbindgen_string_new=function(J,Q){let X=w(J,Q);return A(X)},D.wbg.__wbg_push_a5b05aedc7234f9f=function(J,Q){return U(J).push(U(Q))},D.wbg.__wbg_length_c20a40f15020d68a=function(J){return U(J).length},D.wbg.__wbg_set_a47bac70306a19a7=function(J,Q,X){U(J).set(U(Q),X>>>0)},D.wbg.__wbindgen_throw=function(J,Q){throw Error(w(J,Q))},D}function lD(D,J){}function mD(D,J){return G=D.exports,KD.__wbindgen_wasm_module=J,x=null,j=null,G}async function KD(D){if(G!==void 0)return G;if(typeof D>"u")D=new URL("index_bg.wasm",void 0);let J=wD();if(typeof D==="string"||typeof Request==="function"&&D instanceof Request||typeof URL==="function"&&D instanceof URL)D=fetch(D);lD(J);let{instance:Q,module:X}=await yD(await D,J);return mD(Q,X)}function iD(D){return Object.prototype.hasOwnProperty.call(D,"fontBuffers")}var G,W,_,h=0,j=null,y,_D,x=null,GD,ZD,p=class D{static __wrap(J){J=J>>>0;let Q=Object.create(D.prototype);return Q.__wbg_ptr=J,ZD.register(Q,Q.__wbg_ptr,Q),Q}__destroy_into_raw(){let J=this.__wbg_ptr;return this.__wbg_ptr=0,ZD.unregister(this),J}free(){let J=this.__destroy_into_raw();G.__wbg_bbox_free(J)}get x(){return G.__wbg_get_bbox_x(this.__wbg_ptr)}set x(J){G.__wbg_set_bbox_x(this.__wbg_ptr,J)}get y(){return G.__wbg_get_bbox_y(this.__wbg_ptr)}set y(J){G.__wbg_set_bbox_y(this.__wbg_ptr,J)}get width(){return G.__wbg_get_bbox_width(this.__wbg_ptr)}set width(J){G.__wbg_set_bbox_width(this.__wbg_ptr,J)}get height(){return G.__wbg_get_bbox_height(this.__wbg_ptr)}set height(J){G.__wbg_set_bbox_height(this.__wbg_ptr,J)}},$D,fD=class D{static __wrap(J){J=J>>>0;let Q=Object.create(D.prototype);return Q.__wbg_ptr=J,$D.register(Q,Q.__wbg_ptr,Q),Q}__destroy_into_raw(){let J=this.__wbg_ptr;return this.__wbg_ptr=0,$D.unregister(this),J}free(){let J=this.__destroy_into_raw();G.__wbg_renderedimage_free(J)}get width(){return G.renderedimage_width(this.__wbg_ptr)>>>0}get height(){return G.renderedimage_height(this.__wbg_ptr)>>>0}asPng(){try{let Z=G.__wbindgen_add_to_stack_pointer(-16);G.renderedimage_asPng(Z,this.__wbg_ptr);var J=P()[Z/4+0],Q=P()[Z/4+1],X=P()[Z/4+2];if(X)throw z(Q);return z(J)}finally{G.__wbindgen_add_to_stack_pointer(16)}}get pixels(){let J=G.renderedimage_pixels(this.__wbg_ptr);return z(J)}},vD,bD=class{__destroy_into_raw(){let D=this.__wbg_ptr;return this.__wbg_ptr=0,vD.unregister(this),D}free(){let D=this.__destroy_into_raw();G.__wbg_resvg_free(D)}constructor(D,J,Q){try{let N=G.__wbindgen_add_to_stack_pointer(-16);var X=i(J)?0:n(J,G.__wbindgen_malloc,G.__wbindgen_realloc),Z=h;G.resvg_new(N,A(D),X,Z,i(Q)?0:A(Q));var $=P()[N/4+0],q=P()[N/4+1],K=P()[N/4+2];if(K)throw z(q);return this.__wbg_ptr=$>>>0,this}finally{G.__wbindgen_add_to_stack_pointer(16)}}get width(){return G.resvg_width(this.__wbg_ptr)}get height(){return G.resvg_height(this.__wbg_ptr)}render(){try{let X=G.__wbindgen_add_to_stack_pointer(-16);G.resvg_render(X,this.__wbg_ptr);var D=P()[X/4+0],J=P()[X/4+1],Q=P()[X/4+2];if(Q)throw z(J);return fD.__wrap(D)}finally{G.__wbindgen_add_to_stack_pointer(16)}}toString(){let D,J;try{let Z=G.__wbindgen_add_to_stack_pointer(-16);G.resvg_toString(Z,this.__wbg_ptr);var Q=P()[Z/4+0],X=P()[Z/4+1];return D=Q,J=X,w(Q,X)}finally{G.__wbindgen_add_to_stack_pointer(16),G.__wbindgen_free(D,J,1)}}innerBBox(){let D=G.resvg_innerBBox(this.__wbg_ptr);return D===0?void 0:p.__wrap(D)}getBBox(){let D=G.resvg_getBBox(this.__wbg_ptr);return D===0?void 0:p.__wrap(D)}cropByBBox(D){hD(D,p),G.resvg_cropByBBox(this.__wbg_ptr,D.__wbg_ptr)}imagesToResolve(){try{let X=G.__wbindgen_add_to_stack_pointer(-16);G.resvg_imagesToResolve(X,this.__wbg_ptr);var D=P()[X/4+0],J=P()[X/4+1],Q=P()[X/4+2];if(Q)throw z(J);return z(D)}finally{G.__wbindgen_add_to_stack_pointer(16)}}resolveImage(D,J){try{let Z=G.__wbindgen_add_to_stack_pointer(-16),$=n(D,G.__wbindgen_malloc,G.__wbindgen_realloc),q=h;G.resvg_resolveImage(Z,this.__wbg_ptr,$,q,A(J));var Q=P()[Z/4+0],X=P()[Z/4+1];if(X)throw z(Q)}finally{G.__wbindgen_add_to_stack_pointer(16)}}},dD,g=!1,pD=async(D)=>{if(g)throw Error("Already initialized. The `initWasm()` function can be used only once.");await dD(await D),g=!0},nD;var LD=ID(()=>{W=Array(128).fill(void 0);W.push(void 0,null,!0,!1);_=W.length;y=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},_D=typeof y.encodeInto==="function"?function(D,J){return y.encodeInto(D,J)}:function(D,J){let Q=y.encode(D);return J.set(Q),{read:D.length,written:Q.length}};GD=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};if(typeof TextDecoder<"u")GD.decode();ZD=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((D)=>G.__wbg_bbox_free(D>>>0)),$D=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((D)=>G.__wbg_renderedimage_free(D>>>0)),vD=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((D)=>G.__wbg_resvg_free(D>>>0));dD=KD,nD=class extends bD{constructor(D,J){if(!g)throw Error("Wasm has not been initialized. Call `initWasm()` function.");let Q=J?.font;if(!!Q&&iD(Q)){let X={...J,font:{...Q,fontBuffers:void 0}};super(D,JSON.stringify(X),Q.fontBuffers)}else super(D,JSON.stringify(J))}}});function T(D){return String(D??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function RD(D,J,Q){let X=Q/512;return`<g transform="translate(${D},${J}) scale(${X})">
3
3
  <rect x="0" y="0" width="512" height="512" rx="118" fill="#553de9"/>
4
4
  <path d="M152 405 L242 120" stroke="#FFFEFB" stroke-width="28" stroke-linecap="round" fill="none"/>
5
5
  <path d="M360 405 L270 120" stroke="#FFFEFB" stroke-width="28" stroke-linecap="round" fill="none"/>
6
6
  <path d="M242 120 Q256 86 270 120" stroke="#FFFEFB" stroke-width="28" stroke-linecap="round" fill="none"/>
7
7
  <circle cx="256" cy="295" r="20" fill="#1FC5A8"/>
8
- </g>`}function SJ(J){switch(J){case"verified":return"#1f8a52";case"failed":return"#b23a3a";case"working":case"pending":return"#9a6a12";default:return"#6b6675"}}function RJ(J){switch(J){case"pass":return"#1f8a52";case"fail":return"#b23a3a";case"pending":return"#9a6a12";default:return"#6b6675"}}function IJ(J){switch(J){case"approve":return"#1f8a52";case"reject":return"#b23a3a";case"concern":return"#9a6a12";default:return"#6b6675"}}function v(J,Q,X,Z,$="#201515"){return`<text x="${J}" y="${Q}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="12" fill="#6b6675" letter-spacing="0.5">${U(X.toUpperCase())}</text>
9
- <text x="${J}" y="${Q+24}" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="20" font-weight="600" fill="${$}">${U(Z)}</text>`}var kJ=["Reason","Act","Reflect","Verify"];function MJ(J){let Q=(J||"").toLowerCase();if(/verif|complet|done|ship|deploy/.test(Q))return 3;if(/reflect|review|council|critique|assess/.test(Q))return 2;if(/reason|plan|design|architect|spec|analy/.test(Q))return 0;return 1}function ZJ(J){let Z={run:J?.run||"cockpit",iteration:typeof J?.iteration==="number"?J.iteration:0,phase:J?.phase||"idle",tier:J?.tier||"",provider:J?.provider||"",verdict:J?.verdict||"unknown",budgetUsd:typeof J?.budgetUsd==="number"?J.budgetUsd:0,budgetLimitUsd:J?.budgetLimitUsd,freshness:J?.freshness,gates:Array.isArray(J?.gates)?J.gates:[],council:Array.isArray(J?.council)?J.council:[],fleet:Array.isArray(J?.fleet)?J.fleet:[]},$=Z.budgetLimitUsd&&Z.budgetLimitUsd>0?`$${Z.budgetUsd.toFixed(2)} / $${Z.budgetLimitUsd.toFixed(2)}`:`$${Z.budgetUsd.toFixed(2)}`,G="";G+=HJ(32,32,44),G+=`<text x="92" y="54" font-family="'Fraunces','Georgia',serif" font-size="24" font-weight="600" fill="#201515">Autonomi</text>`,G+=`<text x="92" y="74" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" fill="#6b6675">Loki Cockpit</text>`;let q=Z.freshness?`updated ${Z.freshness}`:"live";G+=`<text x="868" y="54" text-anchor="end" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="12" fill="#6b6675">${U(q)}</text>`,G+=`<text x="868" y="74" text-anchor="end" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="13" fill="${SJ(Z.verdict)}" font-weight="600">${U(Z.verdict.toUpperCase())}</text>`;let K=96,P=168;G+=`<rect x="32" y="${K}" width="836" height="${P}" rx="16" fill="#ffffff" stroke="#e2e0e8"/>`,G+=`<text x="56" y="${K+34}" font-family="'Fraunces','Georgia',serif" font-size="20" font-weight="600" fill="#201515">${U(Z.run)}</text>`,G+=`<text x="56" y="${K+54}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" fill="#6b6675">phase ${U(Z.phase)}</text>`;let z=K+96,E=(V)=>56+V*168;G+=v(E(0),z,"iteration",String(Z.iteration)),G+=v(E(1),z,"tier",Z.tier),G+=v(E(2),z,"provider",Z.provider),G+=v(E(3),z,"budget",$);let n=K+P+40;G+=`<text x="32" y="${n}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" font-weight="600" fill="#6b6675" letter-spacing="0.5">RARV LOOP</text>`;let s=MJ(Z.phase),R=n+14,o=200;kJ.forEach((V,C)=>{let L=32+C*(o+12),O=C<s,H=C===s;G+=`<rect x="${L}" y="${R}" width="${o}" height="40" rx="10" fill="${H?"#553de9":"#ffffff"}" fill-opacity="${H?"0.10":"1"}" stroke="${H?"#553de9":O?"#1f8a52":"#6b6675"}" stroke-width="${H?2:1}"/>`;let XJ=O?"check":H?"dot":"wait";if(XJ==="check")G+=`<path d="M${L+16} ${R+20} l6 6 l10 -12" stroke="#1f8a52" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>`;else if(XJ==="dot")G+=`<circle cx="${L+22}" cy="${R+20}" r="5" fill="#553de9"/>`;else G+=`<circle cx="${L+22}" cy="${R+20}" r="5" fill="none" stroke="#6b6675" stroke-width="1.5"/>`;G+=`<text x="${L+40}" y="${R+25}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="14" font-weight="${H?600:500}" fill="${H?"#553de9":O?"#201515":"#6b6675"}">${V}</text>`});let a=R+40+40;G+=`<text x="32" y="${a}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" font-weight="600" fill="#6b6675" letter-spacing="0.5">QUALITY GATES</text>`;let r=Z.gates.length?Z.gates:[{name:"no gates yet",status:"pending"}],I=30,k=a+12;G+=`<rect x="32" y="${k}" width="836" height="${r.slice(0,8).length*I+8}" rx="12" fill="#ffffff" stroke="#e2e0e8"/>`,k+=8;for(let V of r.slice(0,8)){let C=RJ(V.status),L=k+I/2;if(G+=`<circle cx="50" cy="${L}" r="4" fill="${C}"/>`,G+=`<text x="66" y="${L+4}" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="12" fill="#201515">${U(V.name)}</text>`,V.runner)G+=`<text x="242" y="${L+4}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="11" fill="#6b6675">${U(V.runner)}</text>`;if(V.evidence){let O=V.evidence.length>52?`${V.evidence.slice(0,49)}...`:V.evidence;G+=`<text x="332" y="${L+4}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="11" fill="#6b6675">${U(O)}</text>`}G+=`<text x="852" y="${L+4}" text-anchor="end" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="11" font-weight="700" fill="${C}">${U(V.status.toUpperCase())}</text>`,k+=I}let t=k+40;G+=`<text x="32" y="${t}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" font-weight="600" fill="#6b6675" letter-spacing="0.5">COMPLETION COUNCIL</text>`;let e=Z.council.length?Z.council:[{reviewer:"pending",vote:"pending"}],M=t+12;G+=`<rect x="32" y="${M}" width="836" height="${e.slice(0,6).length*I+8}" rx="12" fill="#ffffff" stroke="#e2e0e8"/>`,M+=8;for(let V of e.slice(0,6)){let C=IJ(V.vote),L=M+I/2;if(G+=`<circle cx="50" cy="${L}" r="4" fill="${C}"/>`,G+=`<text x="66" y="${L+4}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="12.5" font-weight="500" fill="#201515">${U(V.reviewer)}</text>`,V.tier)G+=`<text x="292" y="${L+4}" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="11" fill="#6b6675">${U(V.tier)}</text>`;G+=`<text x="852" y="${L+4}" text-anchor="end" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="11" font-weight="700" fill="${C}">${U(V.vote.toUpperCase())}</text>`,M+=I}let JJ=M+46,QJ=Z.fleet.filter((V)=>V.running).length,zJ=QJ>0?`FLEET (${QJ} active / ${Z.fleet.length})`:`FLEET (${Z.fleet.length}, none active)`;G+=`<text x="32" y="${JJ}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" font-weight="600" fill="#6b6675" letter-spacing="0.5">${zJ}</text>`;let B=JJ+20,m=Z.fleet.slice(0,4);for(let V of m){let C=V.running?"#1f8a52":"#6b6675";G+=`<circle cx="38" cy="${B-4}" r="5" fill="${C}"/>`,G+=`<text x="52" y="${B}" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="13" fill="#201515">${U(V.name)}</text>`;let L=`iter ${V.iteration??0} ${U(V.phase||V.status||"")}`;G+=`<text x="868" y="${B}" text-anchor="end" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="12" fill="#6b6675">${L}</text>`,B+=26}if(Z.fleet.length>m.length)G+=`<text x="52" y="${B}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="12" fill="#6b6675">+ ${Z.fleet.length-m.length} more</text>`,B+=26;let d=Math.round(B+32);return`<svg xmlns="http://www.w3.org/2000/svg" width="900" height="${d}" viewBox="0 0 900 ${d}">
8
+ </g>`}function SD(D){switch(D){case"verified":return"#1f8a52";case"failed":return"#b23a3a";case"working":case"pending":return"#9a6a12";default:return"#6b6675"}}function MD(D){switch(D){case"pass":return"#1f8a52";case"fail":return"#b23a3a";case"pending":return"#9a6a12";default:return"#6b6675"}}function kD(D){switch(D){case"approve":return"#1f8a52";case"reject":return"#b23a3a";case"concern":return"#9a6a12";default:return"#6b6675"}}function v(D,J,Q,X,Z="#201515"){return`<text x="${D}" y="${J}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="12" fill="#6b6675" letter-spacing="0.5">${T(Q.toUpperCase())}</text>
9
+ <text x="${D}" y="${J+24}" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="20" font-weight="600" fill="${Z}">${T(X)}</text>`}var OD=["Reason","Act","Reflect","Verify"];function jD(D){let J=(D||"").toLowerCase();if(/verif|complet|done|ship|deploy/.test(J))return 3;if(/reflect|review|council|critique|assess/.test(J))return 2;if(/reason|plan|design|architect|spec|analy/.test(J))return 0;return 1}function XD(D){let X={run:D?.run||"cockpit",iteration:typeof D?.iteration==="number"?D.iteration:0,phase:D?.phase||"idle",tier:D?.tier||"",provider:D?.provider||"",verdict:D?.verdict||"unknown",budgetUsd:typeof D?.budgetUsd==="number"?D.budgetUsd:0,budgetLimitUsd:D?.budgetLimitUsd,freshness:D?.freshness,gates:Array.isArray(D?.gates)?D.gates:[],council:Array.isArray(D?.council)?D.council:[],fleet:Array.isArray(D?.fleet)?D.fleet:[]},Z=X.budgetLimitUsd&&X.budgetLimitUsd>0?`$${X.budgetUsd.toFixed(2)} / $${X.budgetLimitUsd.toFixed(2)}`:`$${X.budgetUsd.toFixed(2)}`,$="";$+=RD(32,32,44),$+=`<text x="92" y="54" font-family="'Fraunces','Georgia',serif" font-size="24" font-weight="600" fill="#201515">Autonomi</text>`,$+=`<text x="92" y="74" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" fill="#6b6675">Loki Cockpit</text>`;let q=X.freshness?`updated ${X.freshness}`:"live";$+=`<text x="868" y="54" text-anchor="end" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="12" fill="#6b6675">${T(q)}</text>`,$+=`<text x="868" y="74" text-anchor="end" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="13" fill="${SD(X.verdict)}" font-weight="600">${T(X.verdict.toUpperCase())}</text>`;let K=96,N=168;$+=`<rect x="32" y="${K}" width="836" height="${N}" rx="16" fill="#ffffff" stroke="#e2e0e8"/>`,$+=`<text x="56" y="${K+34}" font-family="'Fraunces','Georgia',serif" font-size="20" font-weight="600" fill="#201515">${T(X.run)}</text>`,$+=`<text x="56" y="${K+54}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" fill="#6b6675">phase ${T(X.phase)}</text>`;let E=K+96,Y=(L)=>56+L*168;$+=v(Y(0),E,"iteration",String(X.iteration)),$+=v(Y(1),E,"tier",X.tier),$+=v(Y(2),E,"provider",X.provider),$+=v(Y(3),E,"budget",Z);let c=K+N+40;$+=`<text x="32" y="${c}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" font-weight="600" fill="#6b6675" letter-spacing="0.5">RARV LOOP</text>`;let s=jD(X.phase),R=c+14,o=200;OD.forEach((L,C)=>{let V=32+C*(o+12),O=C<s,B=C===s;$+=`<rect x="${V}" y="${R}" width="${o}" height="40" rx="10" fill="${B?"#553de9":"#ffffff"}" fill-opacity="${B?"0.10":"1"}" stroke="${B?"#553de9":O?"#1f8a52":"#6b6675"}" stroke-width="${B?2:1}"/>`;let QD=O?"check":B?"dot":"wait";if(QD==="check")$+=`<path d="M${V+16} ${R+20} l6 6 l10 -12" stroke="#1f8a52" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>`;else if(QD==="dot")$+=`<circle cx="${V+22}" cy="${R+20}" r="5" fill="#553de9"/>`;else $+=`<circle cx="${V+22}" cy="${R+20}" r="5" fill="none" stroke="#6b6675" stroke-width="1.5"/>`;$+=`<text x="${V+40}" y="${R+25}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="14" font-weight="${B?600:500}" fill="${B?"#553de9":O?"#201515":"#6b6675"}">${L}</text>`});let a=R+40+40;$+=`<text x="32" y="${a}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" font-weight="600" fill="#6b6675" letter-spacing="0.5">QUALITY GATES</text>`;let r=X.gates.length?X.gates:[{name:"no gates yet",status:"pending"}],S=30,M=a+12;$+=`<rect x="32" y="${M}" width="836" height="${r.slice(0,8).length*S+8}" rx="12" fill="#ffffff" stroke="#e2e0e8"/>`,M+=8;for(let L of r.slice(0,8)){let C=MD(L.status),V=M+S/2;if($+=`<circle cx="50" cy="${V}" r="4" fill="${C}"/>`,$+=`<text x="66" y="${V+4}" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="12" fill="#201515">${T(L.name)}</text>`,L.runner)$+=`<text x="242" y="${V+4}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="11" fill="#6b6675">${T(L.runner)}</text>`;if(L.evidence){let O=L.evidence.length>52?`${L.evidence.slice(0,49)}...`:L.evidence;$+=`<text x="332" y="${V+4}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="11" fill="#6b6675">${T(O)}</text>`}$+=`<text x="852" y="${V+4}" text-anchor="end" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="11" font-weight="700" fill="${C}">${T(L.status.toUpperCase())}</text>`,M+=S}let e=M+40;$+=`<text x="32" y="${e}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" font-weight="600" fill="#6b6675" letter-spacing="0.5">COMPLETION COUNCIL</text>`;let t=X.council.length?X.council:[{reviewer:"pending",vote:"pending"}],k=e+12;$+=`<rect x="32" y="${k}" width="836" height="${t.slice(0,6).length*S+8}" rx="12" fill="#ffffff" stroke="#e2e0e8"/>`,k+=8;for(let L of t.slice(0,6)){let C=kD(L.vote),V=k+S/2;if($+=`<circle cx="50" cy="${V}" r="4" fill="${C}"/>`,$+=`<text x="66" y="${V+4}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="12.5" font-weight="500" fill="#201515">${T(L.reviewer)}</text>`,L.tier)$+=`<text x="292" y="${V+4}" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="11" fill="#6b6675">${T(L.tier)}</text>`;$+=`<text x="852" y="${V+4}" text-anchor="end" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="11" font-weight="700" fill="${C}">${T(L.vote.toUpperCase())}</text>`,k+=S}let DD=k+46,JD=X.fleet.filter((L)=>L.running).length,WD=JD>0?`FLEET (${JD} active / ${X.fleet.length})`:`FLEET (${X.fleet.length}, none active)`;$+=`<text x="32" y="${DD}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="13" font-weight="600" fill="#6b6675" letter-spacing="0.5">${WD}</text>`;let H=DD+20,m=X.fleet.slice(0,4);for(let L of m){let C=L.running?"#1f8a52":"#6b6675";$+=`<circle cx="38" cy="${H-4}" r="5" fill="${C}"/>`,$+=`<text x="52" y="${H}" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="13" fill="#201515">${T(L.name)}</text>`;let V=`iter ${L.iteration??0} ${T(L.phase||L.status||"")}`;$+=`<text x="868" y="${H}" text-anchor="end" font-family="'JetBrains Mono','SF Mono',ui-monospace,monospace" font-size="12" fill="#6b6675">${V}</text>`,H+=26}if(X.fleet.length>m.length)$+=`<text x="52" y="${H}" font-family="'Inter','Helvetica Neue',Arial,sans-serif" font-size="12" fill="#6b6675">+ ${X.fleet.length-m.length} more</text>`,H+=26;let d=Math.round(H+32);return`<svg xmlns="http://www.w3.org/2000/svg" width="900" height="${d}" viewBox="0 0 900 ${d}">
10
10
  <rect x="0" y="0" width="900" height="${d}" fill="#f1f2f6"/>
11
- ${G}
12
- </svg>`}var f,u;function PJ(){if(f!==void 0)return f;try{let J=globalThis.require??F;J.resolve("@resvg/resvg-js"),f=J("@resvg/resvg-js")}catch{f=null}return f}async function LJ(){if(u!==void 0)return u;try{let J=await Promise.resolve().then(() => (VJ(),qJ)),Q=globalThis.require??F,{readFileSync:X,existsSync:Z}=await import("fs"),{resolve:$,dirname:G}=await import("path"),{fileURLToPath:q}=await import("url"),K=null;try{let P=G(q(import.meta.url));for(let z of["../data/resvg.wasm","../../data/resvg.wasm"]){let E=$(P,z);if(Z(E)){K=X(E);break}}}catch{}if(!K){let P=Q.resolve("@resvg/resvg-wasm/index_bg.wasm");K=X(P)}await J.initWasm(K),u={Resvg:J.Resvg}}catch{u=null}return u}async function NJ(){if(PJ()?.Resvg)return!0;return(await LJ())?.Resvg!=null}var S;async function gJ(){if(S!==void 0)return S;try{let{readFileSync:J,existsSync:Q}=await import("fs"),X=["/System/Library/Fonts/Supplemental/Arial.ttf","/System/Library/Fonts/Helvetica.ttc","/Library/Fonts/Arial.ttf","/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf","/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf","/usr/share/fonts/dejavu/DejaVuSans.ttf","/usr/share/fonts/TTF/DejaVuSans.ttf","C:\\Windows\\Fonts\\arial.ttf","C:\\Windows\\Fonts\\segoeui.ttf"];for(let Z of X)if(Q(Z))return S=new Uint8Array(J(Z)),S;S=null}catch{S=null}return S}async function UJ(J,Q=900){let X=PJ();if(X?.Resvg)try{let $=new X.Resvg(J,{fitTo:{mode:"width",value:Q}});return{png:Uint8Array.from($.render().asPng()),available:!0}}catch{}let Z=await LJ();if(Z?.Resvg)try{let $=await gJ(),G={fitTo:{mode:"width",value:Q}};if($)G.font={fontBuffers:[$],defaultFontFamily:"Arial",loadSystemFonts:!1};else G.font={loadSystemFonts:!0};let q=new Z.Resvg(J,G);return{png:Uint8Array.from(q.render().asPng()),available:!0}}catch($){return{png:null,available:!1,reason:`raster failed: ${$.message}`}}return{png:null,available:!1,reason:"rasterizer unavailable (no resvg native or wasm)"}}function AJ(J){return Buffer.from(J).toString("base64")}function iJ(J,Q){let X=AJ(J),Z=Q&&Q>0?`${Q}`:"auto";return`\x1B]1337;File=${`inline=1;size=${J.length};width=${Z};height=auto;preserveAspectRatio=1`}:${X}\x07`}function cJ(J,Q=4096,X){let Z=AJ(J);if(Z.length===0)return"\x1B_Ga=T,f=100,m=0;\x1B\\";let $=[];for(let K=0;K<Z.length;K+=Q)$.push(Z.slice(K,K+Q));let G=X&&X>0?`,c=${X}`:"",q="";for(let K=0;K<$.length;K++){let z=K===$.length-1?0:1,E=K===0?`a=T,f=100${G},m=${z}`:`m=${z}`;q+=`\x1B_G${E};${$[K]}\x1B\\`}return q}function YJ(J,Q,X){return J==="kitty"?cJ(Q,4096,X):iJ(Q,X)}var nJ=new Set(["iterm.app","wezterm","ghostty"]);function l(J=process.env){let Q=(J.LOKI_COCKPIT_PROTOCOL||"").trim().toLowerCase();if(Q==="iterm2"||Q==="kitty"||Q==="none")return Q;let X=(J.KITTY_WINDOW_ID||"").trim(),Z=(J.TERM||"").trim().toLowerCase();if(X.length>0||Z==="xterm-kitty")return"kitty";let $=(J.TERM_PROGRAM||"").trim().toLowerCase();if(nJ.has($))return"iterm2";return"none"}async function CJ(J,Q={}){let X=ZJ(J);if(Q.forceText)return{kind:"fallback",protocol:"none",reason:"--no-image (text/browser fallback)",svg:X};let Z;if(Q.protocol&&Q.protocol!=="auto")Z=Q.protocol;else Z=l(Q.env);if(Z==="none")return{kind:"fallback",protocol:Z,reason:"no inline-image terminal detected",svg:X};let $=await UJ(X);if(!$.available||!$.png)return{kind:"fallback",protocol:Z,reason:$.reason||"rasterization unavailable",svg:X};let G=YJ(Z,$.png,Q.cols);return{kind:"image",protocol:Z,data:G,svg:X}}async function sJ(){let J=[];for await(let Q of process.stdin)J.push(Q);return Buffer.concat(J).toString("utf-8")}function oJ(J){let Q="auto",X=!1,Z;for(let $=0;$<J.length;$++){let G=J[$];if(G==="--protocol"){let q=(J[++$]||"auto").toLowerCase();Q=q==="iterm2"||q==="kitty"||q==="none"?q:"auto"}else if(G==="--no-image")X=!0;else if(G==="--svg-out")Z=J[++$]}return{protocol:Q,noImage:X,svgOut:Z}}async function aJ(){let J=l(),Q=await NJ(),X=J!=="none"&&Q?"image":"text+dashboard";return process.stdout.write(`protocol=${J}
13
- `),process.stdout.write(`resvg=${Q?"yes":"no"}
14
- `),process.stdout.write(`path=${X}
15
- `),0}async function rJ(J=process.argv.slice(2)){if(J.includes("--probe"))return await aJ();let{protocol:Q,noImage:X,svgOut:Z}=oJ(J),$;try{let P=await sJ();$=JSON.parse(P)}catch(P){return process.stderr.write(`FALLBACK could not parse cockpit state: ${P.message}
16
- `),3}let G=process.stdout.columns||Number(process.env.COLUMNS)||0,q=G>4?G-2:void 0,K=await CJ($,{protocol:Q,forceText:X,cols:q});if(Z)try{let{writeFileSync:P}=await import("fs");P(Z,K.svg)}catch{}if(K.kind==="image"&&K.data)return process.stdout.write(K.data),0;return process.stderr.write(`FALLBACK ${K.reason||"image unavailable"}
17
- `),3}if(import.meta.main)rJ().then((J)=>process.exit(J));export{rJ as main};
11
+ ${$}
12
+ </svg>`}var u,f;function ND(){if(u!==void 0)return u;try{let D=globalThis.require??F;D.resolve("@resvg/resvg-js"),u=D("@resvg/resvg-js")}catch{u=null}return u}async function VD(){if(f!==void 0)return f;try{let D=await Promise.resolve().then(() => (LD(),qD)),J=globalThis.require??F,{readFileSync:Q,existsSync:X}=await import("fs"),{resolve:Z,dirname:$}=await import("path"),{fileURLToPath:q}=await import("url"),K=null;try{let N=$(q(import.meta.url));for(let E of["../data/resvg.wasm","../../data/resvg.wasm"]){let Y=Z(N,E);if(X(Y)){K=Q(Y);break}}}catch{}if(!K){let N=J.resolve("@resvg/resvg-wasm/index_bg.wasm");K=Q(N)}await D.initWasm(K),f={Resvg:D.Resvg}}catch{f=null}return f}async function PD(){if(ND()?.Resvg)return!0;return(await VD())?.Resvg!=null}var I;async function gD(){if(I!==void 0)return I;try{let{readFileSync:D,existsSync:J}=await import("fs"),Q=["/System/Library/Fonts/Supplemental/Arial.ttf","/System/Library/Fonts/Helvetica.ttc","/Library/Fonts/Arial.ttf","/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf","/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf","/usr/share/fonts/dejavu/DejaVuSans.ttf","/usr/share/fonts/TTF/DejaVuSans.ttf","C:\\Windows\\Fonts\\arial.ttf","C:\\Windows\\Fonts\\segoeui.ttf"];for(let X of Q)if(J(X))return I=new Uint8Array(D(X)),I;I=null}catch{I=null}return I}async function TD(D,J=900){let Q=ND();if(Q?.Resvg)try{let Z=new Q.Resvg(D,{fitTo:{mode:"width",value:J}});return{png:Uint8Array.from(Z.render().asPng()),available:!0}}catch{}let X=await VD();if(X?.Resvg)try{let Z=await gD(),$={fitTo:{mode:"width",value:J}};if(Z)$.font={fontBuffers:[Z],defaultFontFamily:"Arial",loadSystemFonts:!1};else $.font={loadSystemFonts:!0};let q=new X.Resvg(D,$);return{png:Uint8Array.from(q.render().asPng()),available:!0}}catch(Z){return{png:null,available:!1,reason:`raster failed: ${Z.message}`}}return{png:null,available:!1,reason:"rasterizer unavailable (no resvg native or wasm)"}}function UD(D){return Buffer.from(D).toString("base64")}function cD(D,J){let Q=UD(D),X=J&&J>0?`${J}`:"auto";return`\x1B]1337;File=${`inline=1;size=${D.length};width=${X};height=auto;preserveAspectRatio=1`}:${Q}\x07`}function sD(D,J=4096,Q){let X=UD(D);if(X.length===0)return"\x1B_Ga=T,f=100,m=0;\x1B\\";let Z=[];for(let K=0;K<X.length;K+=J)Z.push(X.slice(K,K+J));let $=Q&&Q>0?`,c=${Q}`:"",q="";for(let K=0;K<Z.length;K++){let E=K===Z.length-1?0:1,Y=K===0?`a=T,f=100${$},m=${E}`:`m=${E}`;q+=`\x1B_G${Y};${Z[K]}\x1B\\`}return q}function AD(D,J,Q){return D==="kitty"?sD(J,4096,Q):cD(J,Q)}var oD=new Set(["iterm.app","wezterm","ghostty"]);function l(D=process.env){let J=(D.LOKI_COCKPIT_PROTOCOL||"").trim().toLowerCase();if(J==="iterm2"||J==="kitty"||J==="none")return J;let Q=(D.KITTY_WINDOW_ID||"").trim(),X=(D.TERM||"").trim().toLowerCase();if(Q.length>0||X==="xterm-kitty")return"kitty";let Z=(D.TERM_PROGRAM||"").trim().toLowerCase();if(oD.has(Z))return"iterm2";return"none"}async function CD(D,J={}){let Q=XD(D);if(J.forceText)return{kind:"fallback",protocol:"none",reason:"--no-image (text/browser fallback)",svg:Q};let X;if(J.protocol&&J.protocol!=="auto")X=J.protocol;else X=l(J.env);if(X==="none")return{kind:"fallback",protocol:X,reason:"no inline-image terminal detected",svg:Q};let Z=await TD(Q);if(!Z.available||!Z.png)return{kind:"fallback",protocol:X,reason:Z.reason||"rasterization unavailable",svg:Q};let $=AD(X,Z.png,J.cols);return{kind:"image",protocol:X,data:$,svg:Q}}var ED=(D)=>typeof D==="number"&&Number.isFinite(D)&&D>=40;function YD(D=process.stdout,J=process.env){let Q=D?.columns;if(ED(Q))return Math.floor(Q);let X=Number(J.COLUMNS);if(ED(X))return Math.floor(X);return 80}async function aD(){let D=[];for await(let J of process.stdin)D.push(J);return Buffer.concat(D).toString("utf-8")}function rD(D){let J="auto",Q=!1,X;for(let Z=0;Z<D.length;Z++){let $=D[Z];if($==="--protocol"){let q=(D[++Z]||"auto").toLowerCase();J=q==="iterm2"||q==="kitty"||q==="none"?q:"auto"}else if($==="--no-image")Q=!0;else if($==="--svg-out")X=D[++Z]}return{protocol:J,noImage:Q,svgOut:X}}async function eD(){let D=l(),J=await PD(),Q=D!=="none"&&J?"image":"text+dashboard";return process.stdout.write(`protocol=${D}
13
+ `),process.stdout.write(`resvg=${J?"yes":"no"}
14
+ `),process.stdout.write(`path=${Q}
15
+ `),0}async function tD(D=process.argv.slice(2)){if(D.includes("--probe"))return await eD();let{protocol:J,noImage:Q,svgOut:X}=rD(D),Z;try{let K=await aD();Z=JSON.parse(K)}catch(K){return process.stderr.write(`FALLBACK could not parse cockpit state: ${K.message}
16
+ `),3}let $=YD()-2,q=await CD(Z,{protocol:J,forceText:Q,cols:$});if(X)try{let{writeFileSync:K}=await import("fs");K(X,q.svg)}catch{}if(q.kind==="image"&&q.data)return process.stdout.write(q.data),0;return process.stderr.write(`FALLBACK ${q.reason||"image unavailable"}
17
+ `),3}if(import.meta.main)tD().then((D)=>process.exit(D));export{tD as main};
18
18
 
19
- //# debugId=FA320A456FDE2DB7437C9AA473A12AC3
19
+ //# debugId=2F4CD3BF5DE92F4F02A2CF0BED7BBB85