mcard-studio 0.0.1 → 0.0.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.
- package/astro.config.mjs +6 -1
- package/bin/mcard-studio.mjs +1 -1
- package/dist/client/_astro/{ChartAnalyticsViewlet.Cevj0EOs.js → ChartAnalyticsViewlet.jrwIemvb.js} +1 -1
- package/dist/client/_astro/ClmPcardViewlet.C-fU7oZf.js +3 -0
- package/dist/client/_astro/D3GraphViewlet.BCZl0b2U.js +2 -0
- package/dist/client/_astro/DockviewSpatialWorkbench.B_I1GJHw.js +12 -0
- package/dist/client/_astro/{DocumentViewlets.Dm_GL3AL.js → DocumentViewlets.B53IqmpY.js} +1 -1
- package/dist/client/_astro/ExcalidrawWhiteboardViewlet.CFpPYSdn.js +1 -0
- package/dist/client/_astro/{FaroVCardSpanInstrumenter.BIk2NhJY.js → FaroVCardSpanInstrumenter.un8kDMWv.js} +1 -1
- package/dist/client/_astro/{FontSpecimenViewlet.CpONhJh0.js → FontSpecimenViewlet.D7Aw2xBZ.js} +1 -1
- package/dist/client/_astro/HeadMeta.astro_astro_type_script_index_0_lang.VDRYJCM-.js +1 -0
- package/dist/client/_astro/{ImageViewlet.CHeNvX6L.js → ImageViewlet.D4FN87n_.js} +1 -1
- package/dist/client/_astro/{KatexFormulaViewlet.Cy_InWOK.js → KatexFormulaViewlet.CzhdIOw8.js} +1 -1
- package/dist/client/_astro/KoishiChatViewlet.5mepQvLX.js +16 -0
- package/dist/client/_astro/MCardLibraryHarness.DE8KeghO.js +2 -0
- package/dist/client/_astro/{MarkdownViewlet.qoPlM-TZ.js → MarkdownViewlet.CRuuXXmF.js} +1 -1
- package/dist/client/_astro/{MermaidDiagramViewlet.RnwDfQl6.js → MermaidDiagramViewlet.eW6sk-rF.js} +1 -1
- package/dist/client/_astro/PCardRendererBridge.oxVKc0gN.js +1 -0
- package/dist/client/_astro/RendererPCardRegistry.CWjYZs2H.js +1 -0
- package/dist/client/_astro/{SchemaYamlViewlet.D6HVdmrq.js → SchemaYamlViewlet.ZJBvxItR.js} +1 -1
- package/dist/client/_astro/{ShellContainer.astro_astro_type_script_index_0_lang.2oi8fhQo.js → ShellContainer.astro_astro_type_script_index_0_lang.j_ELcN5d.js} +1 -1
- package/dist/client/_astro/{Spatial3dViewlet.CCYBSSib.js → Spatial3dViewlet.DnVMBENJ.js} +1 -1
- package/dist/client/_astro/StudioWorkbench.Blo5oSIw.js +7 -0
- package/dist/client/_astro/{SvgViewlet.BxlWQ-JX.js → SvgViewlet.BCje7Qqb.js} +1 -1
- package/dist/client/_astro/{TerminalView.DWZR-hUa.js → TerminalView.C_Ksz6lT.js} +4 -4
- package/dist/client/_astro/{ThemeSettingsViewlet.Cb1r8fWw.js → ThemeSettingsViewlet.DJpjQQ0Z.js} +1 -1
- package/dist/client/_astro/{TikzDiagramViewlet.CqY7VTeP.js → TikzDiagramViewlet.CXb1A8nf.js} +1 -1
- package/dist/client/_astro/{VideoPlayerViewlet.DoSYmmoQ.js → VideoPlayerViewlet.CmECt7yT.js} +1 -1
- package/dist/client/_astro/{WebappZenViewlet.CQW50OhX.js → WebappZenViewlet.whCmGVHR.js} +1 -1
- package/dist/client/_astro/{WelcomeViewport.LwKTA6h7.js → WelcomeViewport.BiYwLh6l.js} +1 -1
- package/dist/client/_astro/__vite-browser-external.CQZnr-r3.js +1 -0
- package/dist/client/_astro/{agentIdentityCredentialService.BtKVsl2C.js → agentIdentityCredentialService.UzMMwBwv.js} +5 -5
- package/dist/client/_astro/cardTypeDetector.Ci4APwhX.js +1 -0
- package/dist/client/_astro/disposable.Dsb0sbRP.js +1 -0
- package/dist/client/_astro/{markdownService.D-tM2RYx.js → markdownService.BgWjyJ57.js} +1 -1
- package/dist/client/_astro/{mcardStore.BiAvqM-D.js → mcardStore.CT-ollfl.js} +2 -2
- package/dist/client/_astro/mcardVfs.2UOw9Z-r.js +3 -0
- package/dist/client/_astro/polyfills._3wYPjZf.js +1 -0
- package/dist/client/_astro/rendererEventBus.DMH9afq9.js +1 -0
- package/dist/client/_astro/themeStore.CEt0e54l.js +1 -0
- package/dist/client/_astro/{tikzCompiler.DFojjdxR.js → tikzCompiler.fe3qomFY.js} +1 -1
- package/dist/client/_astro/{useMCardHydration.Co47OH3D.js → useMCardHydration.7Z-HfBh5.js} +1 -1
- package/dist/client/_astro/vendor-ai.D6NcJ6lu.js +69 -0
- package/dist/client/_astro/vendor-clm-kernel.Bvk3XHk2.js +116 -0
- package/dist/client/_astro/vfsHandles.IX_wTpw_.js +1 -0
- package/dist/client/_astro/vfsPersistence.BuhXYeSb.js +1 -0
- package/dist/client/_astro/vfsTransactions.C_IQQg0s.js +1 -0
- package/dist/client/_astro/{workspaceStore.CXakha4Y.js → workspaceStore.CD0kAVAl.js} +1 -1
- package/dist/client/js/buffer-polyfill.js +14 -0
- package/dist/server/chunks/{StudioLayout_D163irJ0.mjs → StudioLayout_B5ZnlqjF.mjs} +2 -2
- package/dist/server/chunks/{_.._ZXsz792-.mjs → _.._5gPhVOLM.mjs} +1 -1
- package/dist/server/chunks/{mcard-library_DvPPUs9_.mjs → mcard-library_7Wzoihkm.mjs} +1 -1
- package/dist/server/chunks/{ws-server-init_CkcgcI5V.mjs → ws-server-init_DUjuR2-o.mjs} +3 -3
- package/dist/server/entry.mjs +8 -4
- package/dist/server/entry2.mjs +3 -3
- package/dist/server/virtual_astro_middleware.mjs +1 -1
- package/package.json +1 -1
- package/public/js/buffer-polyfill.js +14 -0
- package/src/layouts/StudioLayout.astro +1 -0
- package/src/pages/index.astro +75 -0
- package/src/services/inBrowserLlm/engines/litertEngine.ts +1 -1
- package/dist/client/_astro/ClmPcardViewlet.DW5Yft0E.js +0 -3
- package/dist/client/_astro/D3GraphViewlet.DAjPz1DP.js +0 -2
- package/dist/client/_astro/DockviewSpatialWorkbench.DyQjSoHd.js +0 -12
- package/dist/client/_astro/ExcalidrawWhiteboardViewlet.DrlW7B6G.js +0 -1
- package/dist/client/_astro/HeadMeta.astro_astro_type_script_index_0_lang.DGXU-3Lu.js +0 -1
- package/dist/client/_astro/KoishiChatViewlet.B0eDEMnT.js +0 -16
- package/dist/client/_astro/MCardLibraryHarness.CUJLJFBt.js +0 -2
- package/dist/client/_astro/PCardRendererBridge.BnyaE05I.js +0 -1
- package/dist/client/_astro/RendererPCardRegistry.CLr4j1Ub.js +0 -1
- package/dist/client/_astro/StudioWorkbench.CF0SOYwy.js +0 -7
- package/dist/client/_astro/cardTypeDetector.C9kGObMh.js +0 -1
- package/dist/client/_astro/disposable.66apX1Q2.js +0 -1
- package/dist/client/_astro/empty.DOwCrGXH.js +0 -1
- package/dist/client/_astro/mcardVfs.Bj-RA0p7.js +0 -2
- package/dist/client/_astro/path.CR60mj9W.js +0 -1
- package/dist/client/_astro/polyfills.DcBkS56X.js +0 -1
- package/dist/client/_astro/rendererEventBus.CyFnSRLk.js +0 -1
- package/dist/client/_astro/themeStore.zUMFLo3Q.js +0 -1
- package/dist/client/_astro/vendor-ai.CZe7UVVK.js +0 -69
- package/dist/client/_astro/vfsHandles.B-nczBRy.js +0 -1
- package/dist/client/_astro/vfsPersistence.D6zRzVML.js +0 -1
- package/dist/client/_astro/vfsTransactions.04mkEHxD.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{n as r}from"./vfsHandles.B-nczBRy.js";import{C as i,S as a,_ as o,a as s,d as c,f as l,g as u,h as d,i as f,l as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b,v as x,x as S,y as C}from"./vendor-three.C37ktz7x.js";var w=e(t(),1);function T(e){let{containerRef:t,canvasRef:n,showGrid:r=!0,isRotating:i=!0}=e,o=(0,w.useRef)(null),s=(0,w.useRef)(null),c=(0,w.useRef)(null),f=(0,w.useRef)(null),m=(0,w.useRef)(null),_=(0,w.useRef)(null),y=(0,w.useRef)(i);(0,w.useEffect)(()=>{y.current=i},[i]),(0,w.useEffect)(()=>{_.current&&(_.current.visible=r)},[r]);let x=(0,w.useCallback)(()=>{s.current&&f.current&&(s.current.position.set(2.8,2.2,3.8),f.current.target.set(0,0,0),f.current.update())},[]);return(0,w.useEffect)(()=>{let e=t.current,i=n.current;if(!e||!i)return;let x=e.clientWidth||600,C=e.clientHeight||400,w=new v({canvas:i,antialias:!0,alpha:!0,powerPreference:`high-performance`});w.setSize(x,C),w.setPixelRatio(Math.min(window.devicePixelRatio||1,2)),w.shadowMap.enabled=!0,w.shadowMap.type=2,c.current=w;let T=new a;T.background=new l(1579035),o.current=T;let E=new S(45,x/C,.05,500);E.position.set(2.8,2.2,3.8),s.current=E;let D=new h(E,i);D.enableDamping=!0,D.dampingFactor=.08,D.rotateSpeed=.8,D.zoomSpeed=1,D.panSpeed=.8,D.target.set(0,0,0),f.current=D;let O=new p(16777215,1.4),k=new g(16777215,1.8);k.position.set(6,12,8),k.castShadow=!0;let A=new g(7716607,1);A.position.set(-8,-4,-6);let j=new g(16772829,.8);j.position.set(0,8,-8),T.add(O,k,A,j);let M=new d(10,20,31436,2960688);M.position.y=-1.2,M.visible=r,T.add(M),_.current=M;let N=new b(1.2);N.position.y=-1.2,T.add(N);let P=new u;T.add(P),m.current=P;let F,I=()=>{F=requestAnimationFrame(I),y.current&&m.current&&(m.current.rotation.y+=.008),D.update(),w.render(T,E)};I();let L=new ResizeObserver(e=>{for(let t of e){let e=t.contentRect.width,n=t.contentRect.height;e>0&&n>0&&(E.aspect=e/n,E.updateProjectionMatrix(),w.setSize(e,n))}});return L.observe(e),()=>{cancelAnimationFrame(F),L.disconnect(),D.dispose(),w.dispose(),w.forceContextLoss(),T.clear()}},[t,n]),{sceneRef:o,cameraRef:s,rendererRef:c,controlsRef:f,modelGroupRef:m,resetCamera:x}}var E=new class{loaders=new Map;constructor(){this.registerDefaults()}register(e,t){this.loaders.set(e.toLowerCase(),t)}async load(e,t){let n=e.toLowerCase(),r=this.loaders.get(n);if(!r)throw Error(`Unsupported 3D file format: .${n}`);return r(t)}registerDefaults(){this.register(`obj`,async e=>{let t=await fetch(e);if(!t.ok)throw Error(`HTTP ${t.status} fetching OBJ`);let n=await t.text();return new s().parse(n)}),this.register(`stl`,async e=>{let t=await fetch(e);if(!t.ok)throw Error(`HTTP ${t.status} fetching STL`);let n=await t.arrayBuffer(),r=new f().parse(n);r.computeVertexNormals();let i=new C({color:3705853,roughness:.35,metalness:.25,side:2});return new o(r,i)}),this.register(`3ds`,async e=>{let t=await fetch(e);if(!t.ok)throw Error(`HTTP ${t.status} fetching 3DS`);let n=await t.arrayBuffer();return new _().parse(n,``)});let e=async e=>{let t=await fetch(e);if(!t.ok)throw Error(`HTTP ${t.status} fetching GLTF/GLB`);let n=await t.arrayBuffer(),r=new m,i=new y;i.setDecoderPath(`/draco/`),r.setDRACOLoader(i);let a=await new Promise((e,t)=>{r.parse(n,``,e,t)});return i.dispose(),a.scene};this.register(`gltf`,e),this.register(`glb`,e)}};function D(e){let{rawUrl:t,formatExt:n,modelGroupRef:r}=e,[a,o]=(0,w.useState)(!0),[s,l]=(0,w.useState)(null),[u,d]=(0,w.useState)({vertices:0,faces:0}),f=(0,w.useRef)(new Map);return(0,w.useEffect)(()=>{let e=!0;o(!0),l(null);async function a(){try{let a=await E.load(n,t);if(!e)return;let s=r.current;if(!s)return;for(;s.children.length>0;)s.remove(s.children[0]);f.current.clear();let l=0,u=0;a.traverse(e=>{if(e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0,e.geometry&&!e.geometry.attributes.normal&&e.geometry.computeVertexNormals(),f.current.set(e,e.material),(!e.material||Array.isArray(e.material)&&e.material.length===0)&&(e.material=new C({color:5090044,roughness:.4,metalness:.2,side:2})),e.geometry)){let t=e.geometry;t.attributes.position&&(l+=t.attributes.position.count),t.index?u+=t.index.count/3:t.attributes.position&&(u+=t.attributes.position.count/3)}});let p=new c().setFromObject(a),m=p.getCenter(new i),h=p.getSize(new i),g=Math.max(h.x,h.y,h.z),_=g>0?2.5/g:1;a.position.sub(m),a.scale.setScalar(_),s.add(a),d({vertices:l,faces:Math.round(u)}),o(!1)}catch(t){if(!e)return;l(t.message||`Failed to load 3D model`),o(!1)}}return a(),()=>{e=!1}},[t,n,r]),{isLoading:a,loadError:s,stats:u,originalMaterialsRef:f}}function O(e,t){let[n,r]=(0,w.useState)(`shaded`);return(0,w.useEffect)(()=>{let r=e.current;r&&r.traverse(e=>{if(e.isMesh){if(n===`wireframe`)Array.isArray(e.material)?e.material.forEach(e=>e.wireframe=!0):e.material&&(e.material.wireframe=!0);else if(n===`normals`)e.material=new x({wireframe:!1});else{let n=t.current?.get(e);n&&(e.material=n,Array.isArray(e.material)?e.material.forEach(e=>e.wireframe=!1):e.material.wireframe=!1)}}})},[n,e,t]),{renderMode:n,setRenderMode:r}}var k=n(),A=({isLoading:e,loadError:t,formatExt:n,mcardName:r,stats:i})=>(0,k.jsxs)(k.Fragment,{children:[e&&(0,k.jsxs)(`div`,{style:{position:`absolute`,inset:0,backgroundColor:`rgba(24, 24, 27, 0.75)`,backdropFilter:`blur(4px)`,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`12px`,color:`#75beff`,zIndex:10},children:[(0,k.jsx)(`div`,{style:{width:`36px`,height:`36px`,border:`3px solid rgba(117, 190, 255, 0.2)`,borderTopColor:`#75beff`,borderRadius:`50%`,animation:`spin 0.8s linear infinite`}}),(0,k.jsx)(`style`,{children:`@keyframes spin { 100% { transform: rotate(360deg); } }`}),(0,k.jsxs)(`span`,{style:{fontSize:`13px`,fontWeight:500,letterSpacing:`0.5px`},children:[`Loading `,n.toUpperCase(),` Model...`]})]}),t&&(0,k.jsxs)(`div`,{style:{position:`absolute`,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`,backgroundColor:`rgba(30, 20, 20, 0.9)`,border:`1px solid #f48771`,borderRadius:`6px`,padding:`16px 20px`,color:`#f48771`,fontSize:`13px`,maxWidth:`80%`,textAlign:`center`,zIndex:15},children:[(0,k.jsx)(`div`,{style:{fontWeight:600,marginBottom:`6px`},children:`⚠️ 3D Render Error`}),(0,k.jsx)(`div`,{children:t})]}),(0,k.jsxs)(`div`,{style:{position:`absolute`,top:12,left:12,display:`flex`,alignItems:`center`,gap:`8px`,backgroundColor:`rgba(37, 37, 38, 0.85)`,backdropFilter:`blur(6px)`,padding:`6px 12px`,borderRadius:`4px`,border:`1px solid #3c3c3c`,boxShadow:`0 2px 8px rgba(0,0,0,0.4)`,fontSize:`12px`,color:`#d4d4d4`,zIndex:5},children:[(0,k.jsxs)(`span`,{style:{backgroundColor:`#0e639c`,color:`#ffffff`,padding:`2px 6px`,borderRadius:`3px`,fontSize:`10px`,fontWeight:700,letterSpacing:`0.5px`},children:[`Format: `,n.toUpperCase()]}),(0,k.jsx)(`span`,{style:{fontWeight:500},children:r||`3D Geometry`})]}),(0,k.jsxs)(`div`,{style:{position:`absolute`,top:12,right:12,display:`flex`,flexDirection:`column`,gap:`4px`,backgroundColor:`rgba(37, 37, 38, 0.85)`,backdropFilter:`blur(6px)`,padding:`8px 12px`,borderRadius:`4px`,border:`1px solid #3c3c3c`,boxShadow:`0 2px 8px rgba(0,0,0,0.4)`,fontSize:`11px`,color:`#858585`,zIndex:5,minWidth:`150px`},children:[(0,k.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`},children:[(0,k.jsx)(`span`,{children:`Vertices:`}),(0,k.jsx)(`span`,{style:{color:`#ffffff`,fontWeight:600,fontFamily:`monospace`},children:i.vertices.toLocaleString()})]}),(0,k.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`},children:[(0,k.jsx)(`span`,{children:`Faces:`}),(0,k.jsx)(`span`,{style:{color:`#ffffff`,fontWeight:600,fontFamily:`monospace`},children:i.faces.toLocaleString()})]})]})]}),j=({onResetCamera:e,isRotating:t,setIsRotating:n,renderMode:r,setRenderMode:i,showGrid:a,setShowGrid:o,isZenFullscreen:s,setIsZenFullscreen:c})=>(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`div`,{style:{position:`absolute`,bottom:14,left:`50%`,transform:`translateX(-50%)`,display:`flex`,alignItems:`center`,gap:`6px`,backgroundColor:`rgba(30, 30, 30, 0.88)`,backdropFilter:`blur(8px)`,padding:`6px 10px`,borderRadius:`20px`,border:`1px solid #444`,boxShadow:`0 4px 16px rgba(0,0,0,0.5)`,zIndex:5},children:[(0,k.jsx)(`button`,{onClick:()=>i(`shaded`),style:{padding:`4px 10px`,fontSize:`11px`,borderRadius:`12px`,border:`none`,backgroundColor:r===`shaded`?`#0e639c`:`transparent`,color:r===`shaded`?`#ffffff`:`#858585`,cursor:`pointer`,fontWeight:500,transition:`all 0.15s ease`},children:`Shaded`}),(0,k.jsx)(`button`,{onClick:()=>i(`wireframe`),style:{padding:`4px 10px`,fontSize:`11px`,borderRadius:`12px`,border:`none`,backgroundColor:r===`wireframe`?`#0e639c`:`transparent`,color:r===`wireframe`?`#ffffff`:`#858585`,cursor:`pointer`,fontWeight:500,transition:`all 0.15s ease`},children:`Wireframe`}),(0,k.jsx)(`button`,{onClick:()=>i(`normals`),style:{padding:`4px 10px`,fontSize:`11px`,borderRadius:`12px`,border:`none`,backgroundColor:r===`normals`?`#0e639c`:`transparent`,color:r===`normals`?`#ffffff`:`#858585`,cursor:`pointer`,fontWeight:500,transition:`all 0.15s ease`},children:`Normals`}),(0,k.jsx)(`div`,{style:{width:`1px`,height:`14px`,backgroundColor:`#555`,margin:`0 4px`}}),(0,k.jsxs)(`button`,{onClick:()=>n(!t),title:t?`Pause Auto-Rotation`:`Start Turntable Rotation`,style:{padding:`4px 10px`,fontSize:`11px`,borderRadius:`12px`,border:`none`,backgroundColor:t?`rgba(117, 190, 255, 0.2)`:`transparent`,color:t?`#75beff`:`#858585`,cursor:`pointer`,fontWeight:500,display:`flex`,alignItems:`center`,gap:`4px`},children:[(0,k.jsx)(`span`,{children:t?`⏸️`:`▶️`}),(0,k.jsx)(`span`,{children:`Rotate`})]}),(0,k.jsx)(`button`,{onClick:e,title:`Reset Camera View to Origin`,style:{padding:`4px 10px`,fontSize:`11px`,borderRadius:`12px`,border:`none`,backgroundColor:`transparent`,color:`#858585`,cursor:`pointer`,fontWeight:500},children:`Reset View`})]}),(0,k.jsx)(`div`,{style:{position:`absolute`,bottom:12,left:12,fontSize:`10px`,color:`#6e6e6e`,pointerEvents:`none`,zIndex:5},children:`Left Click: Rotate • Right Click: Pan • Scroll: Zoom`})]}),M=({mcard:e})=>{let t=(0,w.useRef)(null),n=(0,w.useRef)(null),[i,a]=(0,w.useState)(!0),[o,s]=(0,w.useState)(!0),[c,l]=(0,w.useState)(!1),u=(0,w.useMemo)(()=>{let t=(e.path||e.name||``).match(/\.([0-9a-z]+)$/i);return t?t[1].toLowerCase():`obj`},[e.path,e.name]),d=(0,w.useMemo)(()=>r(e.path||e.name,e.hash),[e.path,e.name,e.hash]),{modelGroupRef:f,resetCamera:p}=T({containerRef:t,canvasRef:n,showGrid:o,isRotating:i}),{isLoading:m,loadError:h,stats:g,originalMaterialsRef:_}=D({rawUrl:d,formatExt:u,modelGroupRef:f}),{renderMode:v,setRenderMode:y}=O(f,_);return(0,k.jsxs)(`div`,{ref:t,className:`card-panel-3d-viewer spatial-3d-container ${c?`spatial-3d-fullscreen`:``}`,style:{position:c?`fixed`:`relative`,inset:c?0:`auto`,width:`100%`,height:`100%`,backgroundColor:`#18181b`,overflow:`hidden`,zIndex:c?9999:1},children:[(0,k.jsx)(`canvas`,{ref:n,style:{width:`100%`,height:`100%`,display:`block`,cursor:`grab`}}),(0,k.jsx)(A,{isLoading:m,loadError:h,formatExt:u,mcardName:e.name,stats:g}),(0,k.jsx)(j,{onResetCamera:p,isRotating:i,setIsRotating:a,renderMode:v,setRenderMode:y,showGrid:o,setShowGrid:s,isZenFullscreen:c,setIsZenFullscreen:l})]})},N=M;export{M as Spatial3dViewlet,N as default};
|
|
1
|
+
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{n as r}from"./vfsHandles.IX_wTpw_.js";import{C as i,S as a,_ as o,a as s,d as c,f as l,g as u,h as d,i as f,l as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b,v as x,x as S,y as C}from"./vendor-three.C37ktz7x.js";var w=e(t(),1);function T(e){let{containerRef:t,canvasRef:n,showGrid:r=!0,isRotating:i=!0}=e,o=(0,w.useRef)(null),s=(0,w.useRef)(null),c=(0,w.useRef)(null),f=(0,w.useRef)(null),m=(0,w.useRef)(null),_=(0,w.useRef)(null),y=(0,w.useRef)(i);(0,w.useEffect)(()=>{y.current=i},[i]),(0,w.useEffect)(()=>{_.current&&(_.current.visible=r)},[r]);let x=(0,w.useCallback)(()=>{s.current&&f.current&&(s.current.position.set(2.8,2.2,3.8),f.current.target.set(0,0,0),f.current.update())},[]);return(0,w.useEffect)(()=>{let e=t.current,i=n.current;if(!e||!i)return;let x=e.clientWidth||600,C=e.clientHeight||400,w=new v({canvas:i,antialias:!0,alpha:!0,powerPreference:`high-performance`});w.setSize(x,C),w.setPixelRatio(Math.min(window.devicePixelRatio||1,2)),w.shadowMap.enabled=!0,w.shadowMap.type=2,c.current=w;let T=new a;T.background=new l(1579035),o.current=T;let E=new S(45,x/C,.05,500);E.position.set(2.8,2.2,3.8),s.current=E;let D=new h(E,i);D.enableDamping=!0,D.dampingFactor=.08,D.rotateSpeed=.8,D.zoomSpeed=1,D.panSpeed=.8,D.target.set(0,0,0),f.current=D;let O=new p(16777215,1.4),k=new g(16777215,1.8);k.position.set(6,12,8),k.castShadow=!0;let A=new g(7716607,1);A.position.set(-8,-4,-6);let j=new g(16772829,.8);j.position.set(0,8,-8),T.add(O,k,A,j);let M=new d(10,20,31436,2960688);M.position.y=-1.2,M.visible=r,T.add(M),_.current=M;let N=new b(1.2);N.position.y=-1.2,T.add(N);let P=new u;T.add(P),m.current=P;let F,I=()=>{F=requestAnimationFrame(I),y.current&&m.current&&(m.current.rotation.y+=.008),D.update(),w.render(T,E)};I();let L=new ResizeObserver(e=>{for(let t of e){let e=t.contentRect.width,n=t.contentRect.height;e>0&&n>0&&(E.aspect=e/n,E.updateProjectionMatrix(),w.setSize(e,n))}});return L.observe(e),()=>{cancelAnimationFrame(F),L.disconnect(),D.dispose(),w.dispose(),w.forceContextLoss(),T.clear()}},[t,n]),{sceneRef:o,cameraRef:s,rendererRef:c,controlsRef:f,modelGroupRef:m,resetCamera:x}}var E=new class{loaders=new Map;constructor(){this.registerDefaults()}register(e,t){this.loaders.set(e.toLowerCase(),t)}async load(e,t){let n=e.toLowerCase(),r=this.loaders.get(n);if(!r)throw Error(`Unsupported 3D file format: .${n}`);return r(t)}registerDefaults(){this.register(`obj`,async e=>{let t=await fetch(e);if(!t.ok)throw Error(`HTTP ${t.status} fetching OBJ`);let n=await t.text();return new s().parse(n)}),this.register(`stl`,async e=>{let t=await fetch(e);if(!t.ok)throw Error(`HTTP ${t.status} fetching STL`);let n=await t.arrayBuffer(),r=new f().parse(n);r.computeVertexNormals();let i=new C({color:3705853,roughness:.35,metalness:.25,side:2});return new o(r,i)}),this.register(`3ds`,async e=>{let t=await fetch(e);if(!t.ok)throw Error(`HTTP ${t.status} fetching 3DS`);let n=await t.arrayBuffer();return new _().parse(n,``)});let e=async e=>{let t=await fetch(e);if(!t.ok)throw Error(`HTTP ${t.status} fetching GLTF/GLB`);let n=await t.arrayBuffer(),r=new m,i=new y;i.setDecoderPath(`/draco/`),r.setDRACOLoader(i);let a=await new Promise((e,t)=>{r.parse(n,``,e,t)});return i.dispose(),a.scene};this.register(`gltf`,e),this.register(`glb`,e)}};function D(e){let{rawUrl:t,formatExt:n,modelGroupRef:r}=e,[a,o]=(0,w.useState)(!0),[s,l]=(0,w.useState)(null),[u,d]=(0,w.useState)({vertices:0,faces:0}),f=(0,w.useRef)(new Map);return(0,w.useEffect)(()=>{let e=!0;o(!0),l(null);async function a(){try{let a=await E.load(n,t);if(!e)return;let s=r.current;if(!s)return;for(;s.children.length>0;)s.remove(s.children[0]);f.current.clear();let l=0,u=0;a.traverse(e=>{if(e.isMesh&&(e.castShadow=!0,e.receiveShadow=!0,e.geometry&&!e.geometry.attributes.normal&&e.geometry.computeVertexNormals(),f.current.set(e,e.material),(!e.material||Array.isArray(e.material)&&e.material.length===0)&&(e.material=new C({color:5090044,roughness:.4,metalness:.2,side:2})),e.geometry)){let t=e.geometry;t.attributes.position&&(l+=t.attributes.position.count),t.index?u+=t.index.count/3:t.attributes.position&&(u+=t.attributes.position.count/3)}});let p=new c().setFromObject(a),m=p.getCenter(new i),h=p.getSize(new i),g=Math.max(h.x,h.y,h.z),_=g>0?2.5/g:1;a.position.sub(m),a.scale.setScalar(_),s.add(a),d({vertices:l,faces:Math.round(u)}),o(!1)}catch(t){if(!e)return;l(t.message||`Failed to load 3D model`),o(!1)}}return a(),()=>{e=!1}},[t,n,r]),{isLoading:a,loadError:s,stats:u,originalMaterialsRef:f}}function O(e,t){let[n,r]=(0,w.useState)(`shaded`);return(0,w.useEffect)(()=>{let r=e.current;r&&r.traverse(e=>{if(e.isMesh){if(n===`wireframe`)Array.isArray(e.material)?e.material.forEach(e=>e.wireframe=!0):e.material&&(e.material.wireframe=!0);else if(n===`normals`)e.material=new x({wireframe:!1});else{let n=t.current?.get(e);n&&(e.material=n,Array.isArray(e.material)?e.material.forEach(e=>e.wireframe=!1):e.material.wireframe=!1)}}})},[n,e,t]),{renderMode:n,setRenderMode:r}}var k=n(),A=({isLoading:e,loadError:t,formatExt:n,mcardName:r,stats:i})=>(0,k.jsxs)(k.Fragment,{children:[e&&(0,k.jsxs)(`div`,{style:{position:`absolute`,inset:0,backgroundColor:`rgba(24, 24, 27, 0.75)`,backdropFilter:`blur(4px)`,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:`12px`,color:`#75beff`,zIndex:10},children:[(0,k.jsx)(`div`,{style:{width:`36px`,height:`36px`,border:`3px solid rgba(117, 190, 255, 0.2)`,borderTopColor:`#75beff`,borderRadius:`50%`,animation:`spin 0.8s linear infinite`}}),(0,k.jsx)(`style`,{children:`@keyframes spin { 100% { transform: rotate(360deg); } }`}),(0,k.jsxs)(`span`,{style:{fontSize:`13px`,fontWeight:500,letterSpacing:`0.5px`},children:[`Loading `,n.toUpperCase(),` Model...`]})]}),t&&(0,k.jsxs)(`div`,{style:{position:`absolute`,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`,backgroundColor:`rgba(30, 20, 20, 0.9)`,border:`1px solid #f48771`,borderRadius:`6px`,padding:`16px 20px`,color:`#f48771`,fontSize:`13px`,maxWidth:`80%`,textAlign:`center`,zIndex:15},children:[(0,k.jsx)(`div`,{style:{fontWeight:600,marginBottom:`6px`},children:`⚠️ 3D Render Error`}),(0,k.jsx)(`div`,{children:t})]}),(0,k.jsxs)(`div`,{style:{position:`absolute`,top:12,left:12,display:`flex`,alignItems:`center`,gap:`8px`,backgroundColor:`rgba(37, 37, 38, 0.85)`,backdropFilter:`blur(6px)`,padding:`6px 12px`,borderRadius:`4px`,border:`1px solid #3c3c3c`,boxShadow:`0 2px 8px rgba(0,0,0,0.4)`,fontSize:`12px`,color:`#d4d4d4`,zIndex:5},children:[(0,k.jsxs)(`span`,{style:{backgroundColor:`#0e639c`,color:`#ffffff`,padding:`2px 6px`,borderRadius:`3px`,fontSize:`10px`,fontWeight:700,letterSpacing:`0.5px`},children:[`Format: `,n.toUpperCase()]}),(0,k.jsx)(`span`,{style:{fontWeight:500},children:r||`3D Geometry`})]}),(0,k.jsxs)(`div`,{style:{position:`absolute`,top:12,right:12,display:`flex`,flexDirection:`column`,gap:`4px`,backgroundColor:`rgba(37, 37, 38, 0.85)`,backdropFilter:`blur(6px)`,padding:`8px 12px`,borderRadius:`4px`,border:`1px solid #3c3c3c`,boxShadow:`0 2px 8px rgba(0,0,0,0.4)`,fontSize:`11px`,color:`#858585`,zIndex:5,minWidth:`150px`},children:[(0,k.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`},children:[(0,k.jsx)(`span`,{children:`Vertices:`}),(0,k.jsx)(`span`,{style:{color:`#ffffff`,fontWeight:600,fontFamily:`monospace`},children:i.vertices.toLocaleString()})]}),(0,k.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`},children:[(0,k.jsx)(`span`,{children:`Faces:`}),(0,k.jsx)(`span`,{style:{color:`#ffffff`,fontWeight:600,fontFamily:`monospace`},children:i.faces.toLocaleString()})]})]})]}),j=({onResetCamera:e,isRotating:t,setIsRotating:n,renderMode:r,setRenderMode:i,showGrid:a,setShowGrid:o,isZenFullscreen:s,setIsZenFullscreen:c})=>(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`div`,{style:{position:`absolute`,bottom:14,left:`50%`,transform:`translateX(-50%)`,display:`flex`,alignItems:`center`,gap:`6px`,backgroundColor:`rgba(30, 30, 30, 0.88)`,backdropFilter:`blur(8px)`,padding:`6px 10px`,borderRadius:`20px`,border:`1px solid #444`,boxShadow:`0 4px 16px rgba(0,0,0,0.5)`,zIndex:5},children:[(0,k.jsx)(`button`,{onClick:()=>i(`shaded`),style:{padding:`4px 10px`,fontSize:`11px`,borderRadius:`12px`,border:`none`,backgroundColor:r===`shaded`?`#0e639c`:`transparent`,color:r===`shaded`?`#ffffff`:`#858585`,cursor:`pointer`,fontWeight:500,transition:`all 0.15s ease`},children:`Shaded`}),(0,k.jsx)(`button`,{onClick:()=>i(`wireframe`),style:{padding:`4px 10px`,fontSize:`11px`,borderRadius:`12px`,border:`none`,backgroundColor:r===`wireframe`?`#0e639c`:`transparent`,color:r===`wireframe`?`#ffffff`:`#858585`,cursor:`pointer`,fontWeight:500,transition:`all 0.15s ease`},children:`Wireframe`}),(0,k.jsx)(`button`,{onClick:()=>i(`normals`),style:{padding:`4px 10px`,fontSize:`11px`,borderRadius:`12px`,border:`none`,backgroundColor:r===`normals`?`#0e639c`:`transparent`,color:r===`normals`?`#ffffff`:`#858585`,cursor:`pointer`,fontWeight:500,transition:`all 0.15s ease`},children:`Normals`}),(0,k.jsx)(`div`,{style:{width:`1px`,height:`14px`,backgroundColor:`#555`,margin:`0 4px`}}),(0,k.jsxs)(`button`,{onClick:()=>n(!t),title:t?`Pause Auto-Rotation`:`Start Turntable Rotation`,style:{padding:`4px 10px`,fontSize:`11px`,borderRadius:`12px`,border:`none`,backgroundColor:t?`rgba(117, 190, 255, 0.2)`:`transparent`,color:t?`#75beff`:`#858585`,cursor:`pointer`,fontWeight:500,display:`flex`,alignItems:`center`,gap:`4px`},children:[(0,k.jsx)(`span`,{children:t?`⏸️`:`▶️`}),(0,k.jsx)(`span`,{children:`Rotate`})]}),(0,k.jsx)(`button`,{onClick:e,title:`Reset Camera View to Origin`,style:{padding:`4px 10px`,fontSize:`11px`,borderRadius:`12px`,border:`none`,backgroundColor:`transparent`,color:`#858585`,cursor:`pointer`,fontWeight:500},children:`Reset View`})]}),(0,k.jsx)(`div`,{style:{position:`absolute`,bottom:12,left:12,fontSize:`10px`,color:`#6e6e6e`,pointerEvents:`none`,zIndex:5},children:`Left Click: Rotate • Right Click: Pan • Scroll: Zoom`})]}),M=({mcard:e})=>{let t=(0,w.useRef)(null),n=(0,w.useRef)(null),[i,a]=(0,w.useState)(!0),[o,s]=(0,w.useState)(!0),[c,l]=(0,w.useState)(!1),u=(0,w.useMemo)(()=>{let t=(e.path||e.name||``).match(/\.([0-9a-z]+)$/i);return t?t[1].toLowerCase():`obj`},[e.path,e.name]),d=(0,w.useMemo)(()=>r(e.path||e.name,e.hash),[e.path,e.name,e.hash]),{modelGroupRef:f,resetCamera:p}=T({containerRef:t,canvasRef:n,showGrid:o,isRotating:i}),{isLoading:m,loadError:h,stats:g,originalMaterialsRef:_}=D({rawUrl:d,formatExt:u,modelGroupRef:f}),{renderMode:v,setRenderMode:y}=O(f,_);return(0,k.jsxs)(`div`,{ref:t,className:`card-panel-3d-viewer spatial-3d-container ${c?`spatial-3d-fullscreen`:``}`,style:{position:c?`fixed`:`relative`,inset:c?0:`auto`,width:`100%`,height:`100%`,backgroundColor:`#18181b`,overflow:`hidden`,zIndex:c?9999:1},children:[(0,k.jsx)(`canvas`,{ref:n,style:{width:`100%`,height:`100%`,display:`block`,cursor:`grab`}}),(0,k.jsx)(A,{isLoading:m,loadError:h,formatExt:u,mcardName:e.name,stats:g}),(0,k.jsx)(j,{onResetCamera:p,isRotating:i,setIsRotating:a,renderMode:v,setRenderMode:y,showGrid:o,setShowGrid:s,isZenFullscreen:c,setIsZenFullscreen:l})]})},N=M;export{M as Spatial3dViewlet,N as default};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["_astro/vfsPersistence.BuhXYeSb.js","_astro/rolldown-runtime.Dd_uD5pT.js","_astro/vendor-clm-kernel.Bvk3XHk2.js","_astro/preload-helper.oCYlU9a4.js","_astro/themeStore.CEt0e54l.js","_astro/mcardStore.CT-ollfl.js","_astro/workspaceStore.CD0kAVAl.js","_astro/pathsConfig.D0hV34p7.js","_astro/vfsTransactions.C_IQQg0s.js","_astro/cardTypeDetector.Ci4APwhX.js","_astro/disposable.Dsb0sbRP.js","_astro/vendor-react.DpDU3q_x.js","_astro/webappUrlResolver.BdblM2xU.js","_astro/TerminalView.C_Ksz6lT.js","_astro/vendor-xterm.CcgipeuH.js","_astro/DockviewSpatialWorkbench.B_I1GJHw.js","_astro/Codicons.6XKAVgP8.js","_astro/vfsHandles.IX_wTpw_.js","_astro/mcardVfs.2UOw9Z-r.js","_astro/secureWindowOrchestrator.CIQYcH4l.js","_astro/WelcomeViewport.BiYwLh6l.js","_astro/vendor-dockview.Y5pRm6XB.js","_astro/vendor-dockview.Cytt793s.css","_astro/useMCardHydration.7Z-HfBh5.js","_astro/KoishiChatViewlet.5mepQvLX.js","_astro/agentIdentityCredentialService.UzMMwBwv.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{F as r,I as i,L as a,M as o}from"./vendor-clm-kernel.Bvk3XHk2.js";import{t as s}from"./preload-helper.oCYlU9a4.js";import"./polyfills._3wYPjZf.js";import{a as c,h as l,n as u,r as d,s as f}from"./themeStore.CEt0e54l.js";import{A as p,C as m,D as h,E as g,F as _,I as v,L as y,M as b,N as x,P as S,R as C,T as w,a as T,c as E,d as D,g as O,h as k,i as A,j,k as M,m as N,n as P,o as F,p as I,r as L,s as ee,t as te,v as R,y as z}from"./mcardStore.CT-ollfl.js";import{r as B,t as ne}from"./disposable.Dsb0sbRP.js";import{r as V,t as H}from"./pathsConfig.D0hV34p7.js";import{i as re,n as ie,r as ae}from"./workspaceStore.CD0kAVAl.js";import{C as oe,D as se,E as ce,S as le,T as ue,_ as de,a as fe,b as pe,c as me,d as U,f as he,g as ge,h as _e,i as ve,l as ye,m as be,n as xe,o as Se,p as Ce,r as we,s as Te,t as Ee,u as De,v as Oe,x as ke}from"./Codicons.6XKAVgP8.js";import{a as Ae,c as je,i as Me,l as Ne,n as Pe,o as Fe,r as Ie,s as Le,t as Re,u as ze}from"./agentIdentityCredentialService.UzMMwBwv.js";import{n as Be,t as Ve}from"./cardTypeDetector.Ci4APwhX.js";import{n as He,r as Ue}from"./vfsPersistence.BuhXYeSb.js";import{g as W,h as G,m as We,n as Ge,r as Ke,t as qe,v as Je,y as Ye}from"./mcardVfs.2UOw9Z-r.js";import{t as Xe}from"./WelcomeViewport.BiYwLh6l.js";import{r as Ze,t as Qe}from"./markdownService.BgWjyJ57.js";import{n as $e,r as et,t as tt}from"./FaroVCardSpanInstrumenter.un8kDMWv.js";var K=e(t(),1),q=n(),nt=({size:e=14,color:t=`currentColor`,className:n,style:r})=>(0,q.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`none`,stroke:t,strokeWidth:`1.2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:n,style:r,children:(0,q.jsx)(`path`,{d:`M8 2.5L2.5 7.5V13.5H6.5V9.5H9.5V13.5H13.5V7.5L8 2.5Z`})}),rt=({size:e=12,color:t=`currentColor`,className:n,style:r})=>(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`none`,stroke:t,strokeWidth:`1.2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:n,style:r,children:[(0,q.jsx)(`rect`,{x:`3`,y:`7`,width:`10`,height:`7`,rx:`1.5`}),(0,q.jsx)(`path`,{d:`M5 7V4.5C5 2.8 6.3 1.5 8 1.5C9.7 1.5 11 2.8 11 4.5V7`})]}),it=({size:e=13,color:t=`currentColor`,className:n,style:r})=>(0,q.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`none`,stroke:t,strokeWidth:`1.2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:n,style:r,children:[(0,q.jsx)(`circle`,{cx:`6.5`,cy:`6.5`,r:`4.5`}),(0,q.jsx)(`path`,{d:`M10 10L14 14`})]}),at=({size:e=12,color:t=`currentColor`,className:n,style:r})=>(0,q.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`none`,stroke:t,strokeWidth:`1.2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:n,style:r,children:(0,q.jsx)(`path`,{d:`M4 4L12 12M12 4L4 12`})}),ot=({size:e=12,color:t=`currentColor`,className:n,style:r})=>(0,q.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`none`,stroke:t,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,className:n,style:r,children:(0,q.jsx)(`path`,{d:`M6 3.5L10.5 8L6 12.5`})}),st=({size:e=12,color:t=`currentColor`,className:n,style:r})=>(0,q.jsx)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,fill:`none`,stroke:t,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,className:n,style:r,children:(0,q.jsx)(`path`,{d:`M3.5 6L8 10.5L12.5 6`})}),ct=({onOpenSettings:e,onToggleChat:t})=>{let n=B(D),r=B(I),i=[{id:`abstract`,title:`Explorer (A) — Computable Knowledge & Assets`,icon:(0,q.jsx)(ye,{size:22})},{id:`concrete`,title:`Concrete Morphisms (C) — PCard Morphisms`,icon:(0,q.jsx)(pe,{size:22})},{id:`balanced`,title:`Balanced Witnesses (B) — VCard Correctness Checks`,icon:(0,q.jsx)(se,{size:22})},{id:`topology`,title:`Mesh Topology (DEL-261-02) — P2P Fabric & CPN Token Flow`,icon:(0,q.jsx)(`span`,{style:{fontSize:`18px`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:`🕸️`}),badge:`P2P`},{id:`extensions`,title:`Extensions — PTR Microkernel Plugin Gallery`,icon:(0,q.jsx)(De,{size:22})},{id:`chat`,title:`Koishi Conversational Assistant (Secondary Sidebar)`,icon:(0,q.jsx)(Ee,{size:22}),badge:`AI`}],a=e=>{k(),e===`chat`?t&&t():O(e)};return(0,q.jsxs)(`div`,{className:`dockview-activity-bar`,id:`activity-bar`,style:{width:`48px`,minWidth:`48px`,height:`100%`,backgroundColor:`var(--vscode-activityBar-background, #333333)`,borderRight:`1px solid var(--vscode-activityBar-border, #252526)`,display:`flex`,flexDirection:`column`,justifyContent:`space-between`,alignItems:`center`,padding:`0`,userSelect:`none`,zIndex:20},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,width:`100%`,alignItems:`center`},children:[(0,q.jsxs)(`div`,{"data-testid":`activity-bar-home-btn`,id:`activity-bar-home-btn`,className:`activity-bar-home-btn ${r?`active`:``}`,title:`Presentation Home (Welcome Viewport) — Stage 1`,onClick:()=>N(),children:[r&&(0,q.jsx)(`div`,{className:`activity-bar-home-indicator`}),(0,q.jsx)(nt,{size:20})]}),i.map(e=>{let t=!r&&n===e.id;return(0,q.jsxs)(`div`,{title:e.title,onClick:()=>a(e.id),style:{width:`48px`,height:`48px`,display:`flex`,alignItems:`center`,justifyContent:`center`,position:`relative`,cursor:`pointer`,color:t?`var(--vscode-activityBar-foreground, #ffffff)`:`var(--vscode-activityBar-inactiveForeground, rgba(255, 255, 255, 0.4))`,backgroundColor:`transparent`,transition:`color 0.15s ease`},onMouseEnter:e=>{t||(e.currentTarget.style.color=`#ffffff`)},onMouseLeave:e=>{t||(e.currentTarget.style.color=`var(--vscode-activityBar-inactiveForeground, rgba(255, 255, 255, 0.4))`)},children:[t&&(0,q.jsx)(`div`,{style:{position:`absolute`,left:0,top:`8px`,bottom:`8px`,width:`2px`,backgroundColor:`var(--vscode-activityBar-activeBorder, #ffffff)`}}),e.icon,e.badge&&(0,q.jsx)(`span`,{style:{position:`absolute`,top:`6px`,right:`6px`,backgroundColor:`var(--vscode-activityBarBadge-background, #007acc)`,color:`var(--vscode-activityBarBadge-foreground, #ffffff)`,borderRadius:`8px`,fontSize:`9px`,padding:`1px 4px`,fontWeight:700,letterSpacing:`0.3px`,lineHeight:1},children:e.badge})]},e.id)})]}),(0,q.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,width:`100%`,alignItems:`center`,marginBottom:`4px`},children:(0,q.jsx)(`div`,{title:`Manage & Configure Remote LLM Engines`,onClick:()=>e&&e(),style:{width:`48px`,height:`48px`,display:`flex`,alignItems:`center`,justifyContent:`center`,cursor:`pointer`,color:`var(--vscode-activityBar-inactiveForeground, rgba(255, 255, 255, 0.4))`,transition:`color 0.15s ease`},onMouseEnter:e=>e.currentTarget.style.color=`#ffffff`,onMouseLeave:e=>e.currentTarget.style.color=`var(--vscode-activityBar-inactiveForeground, rgba(255, 255, 255, 0.4))`,children:(0,q.jsx)(oe,{size:22})})})]})},lt=({compact:e=!1,showStepButtons:t=!0,style:n})=>{let r=B(w),i=B(g),a=e=>{e.stopPropagation(),i>0&&h(i-1)},o=e=>{e.stopPropagation(),i<r.length-1&&h(i+1)},s=e=>{let t=Number(e.target.value);h(t)},c=r[i]||null;return(0,q.jsxs)(`div`,{id:`time-machine-scrubber`,className:`status-bar-item time-machine-scrubber`,title:`Time Machine State Recovery: ${c?`${c.action} (${c.timestamp})`:`No snapshots`} — <1ms Spatiotemporal Inversion`,style:{display:`inline-flex`,alignItems:`center`,gap:`6px`,height:`20px`,maxHeight:`20px`,boxSizing:`border-box`,whiteSpace:`nowrap`,flexShrink:0,backgroundColor:`rgba(0, 0, 0, 0.22)`,borderRadius:`12px`,padding:`1px 8px`,fontSize:`12px`,userSelect:`none`,...n},children:[(0,q.jsx)(`span`,{style:{fontSize:`12px`},children:`⏳`}),(0,q.jsx)(`span`,{style:{fontWeight:500},children:`Time Machine:`}),(0,q.jsx)(`span`,{style:{opacity:.9},children:r.length>0?`${i+1}/${r.length}`:`0 snapshots`}),r.length>1&&(0,q.jsxs)(q.Fragment,{children:[t&&(0,q.jsx)(`button`,{type:`button`,onClick:a,disabled:i<=0,title:`Step Backward (Spatiotemporal Inversion -p)`,style:{background:`none`,border:`none`,color:i<=0?`rgba(255, 255, 255, 0.3)`:`#ffffff`,cursor:i<=0?`default`:`pointer`,fontSize:`11px`,padding:`0 2px`,lineHeight:1},children:`⏮`}),(0,q.jsx)(`input`,{type:`range`,min:`0`,max:r.length-1,value:i>=0?i:0,onChange:s,"aria-label":`Time Machine Scrub Position`,style:{width:e?`48px`:`70px`,height:`8px`,accentColor:`#ffffff`,cursor:`pointer`,marginLeft:`2px`,marginRight:`2px`}}),t&&(0,q.jsx)(`button`,{type:`button`,onClick:o,disabled:i>=r.length-1,title:`Step Forward (Deterministic Replay +p)`,style:{background:`none`,border:`none`,color:i>=r.length-1?`rgba(255, 255, 255, 0.3)`:`#ffffff`,cursor:i>=r.length-1?`default`:`pointer`,fontSize:`11px`,padding:`0 2px`,lineHeight:1},children:`⏭`})]})]})},ut=()=>{let e=B(c),t=B(u),n=B(d),r=f(),i=e.split(`/`).pop()?.replace(/^theme-/,``)??`dark`,a=t.split(`/`).pop()??`comfortable`;return(0,q.jsxs)(`div`,{className:`status-bar-item`,id:`status-theme-ribbon`,title:`Theme: ${e}\nDensity: ${t}\nEnvironment: ${n}\nClick to toggle Light/Dark mode`,style:{display:`flex`,alignItems:`center`,gap:`5px`,cursor:`pointer`},onClick:()=>{let t=e.includes(`dark`)||e.includes(`night`)||e.includes(`mocha`)?`theme-vscode-light`:`theme-vscode-dark`;r.applyHandle(t)},children:[(0,q.jsxs)(`span`,{style:{fontSize:`11px`},children:[`🎨 `,i]}),(0,q.jsx)(`span`,{style:{opacity:.5,fontSize:`10px`},children:`·`}),(0,q.jsxs)(`span`,{style:{fontSize:`11px`},children:[`📏 `,a]}),(0,q.jsx)(`span`,{style:{opacity:.5,fontSize:`10px`},children:`·`}),(0,q.jsxs)(`span`,{style:{fontSize:`11px`},children:[`🖥️ `,n]})]})},dt=()=>{let e=B(R),t=B(E),n=B(F),r=B(P),i=B(te),a=B(Ne),o=B(ze),s=B(ee),c=B(I),l=B(p),u=Object.keys(l).length;return K.useEffect(()=>{je.initFirstLaunchAutoPreload()},[]),K.useEffect(()=>{let e=!0,t=async()=>{try{let t=await fetch(`/api/mesh/peers`);if(t.ok){let n=await t.json();e&&n.status===`SUCCESS`&&A({online:!0,peerCount:n.peerCount||0,peers:n.peers||[],localDid:n.nodeDid})}}catch{}};t();let n=setInterval(t,1e4);return()=>{e=!1,clearInterval(n)}},[]),(0,q.jsxs)(`div`,{className:`dockview-status-bar`,id:`status-bar`,style:{width:`100%`,height:`24px`,minHeight:`24px`,flexShrink:0,boxSizing:`border-box`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`0 8px`,fontSize:`12px`,whiteSpace:`nowrap`,overflowX:`auto`,overflowY:`hidden`,borderTop:`1px solid var(--vscode-statusBar-border, rgba(255, 255, 255, 0.1))`,fontFamily:`var(--vscode-font-family)`,backgroundColor:`var(--vscode-statusBar-background, #007acc)`,color:`var(--vscode-statusBar-foreground, #ffffff)`,userSelect:`none`,zIndex:30},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,height:`100%`,gap:`2px`,flexShrink:0,whiteSpace:`nowrap`},children:[(0,q.jsxs)(`div`,{className:`status-bar-item`,title:`Git Repository Branch`,children:[(0,q.jsx)(ge,{size:14,color:`#ffffff`}),(0,q.jsx)(`span`,{children:`main`}),(0,q.jsx)(ke,{size:11,color:`#ffffff`,style:{opacity:.8,marginLeft:`2px`}})]}),(0,q.jsxs)(`div`,{className:`status-bar-item`,title:`0 Errors, 0 Warnings`,children:[(0,q.jsx)(me,{size:12,color:`#ffffff`}),(0,q.jsx)(`span`,{children:`0`}),(0,q.jsx)(ce,{size:12,color:`#ffffff`,style:{marginLeft:`4px`}}),(0,q.jsx)(`span`,{children:`0`})]}),e&&(0,q.jsxs)(`div`,{className:`status-bar-item`,title:`Active MCard: ${e.handle}`,children:[(0,q.jsx)(U,{size:13,color:`#ffffff`}),(0,q.jsx)(`span`,{style:{fontWeight:500},children:e.name}),(0,q.jsxs)(`span`,{style:{opacity:.75,fontSize:`11px`,fontFamily:`monospace`},children:[`(`,e.hash?e.hash.slice(0,8):`local`,`)`]})]}),(0,q.jsx)(lt,{style:{marginLeft:`6px`}}),(0,q.jsxs)(`div`,{className:`status-bar-item`,id:`status-dockview-focal`,"data-testid":`status-dockview-focal`,role:`button`,tabIndex:0,title:c?`DockView Depressed (Welcome Viewport active). Click to restore workbench layout.`:`DockView Active (${u} tabs). Click to depress into Welcome Viewport.`,onClick:()=>{c?k():N()},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),c?k():N())},style:{display:`flex`,alignItems:`center`,gap:`4px`,cursor:`pointer`,marginLeft:`6px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`11px`},children:`◫`}),(0,q.jsx)(`span`,{children:c?`DockView: Depressed`:`DockView: ${u} tabs`})]})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,height:`100%`,gap:`2px`,flexShrink:0,whiteSpace:`nowrap`},children:[(0,q.jsx)(`div`,{className:`status-bar-item`,title:`Cursor Line & Column`,children:(0,q.jsx)(`span`,{children:`Ln 1, Col 1`})}),(0,q.jsx)(`div`,{className:`status-bar-item`,title:`Tab Indentation`,children:(0,q.jsx)(`span`,{children:`Spaces: 2`})}),(0,q.jsx)(`div`,{className:`status-bar-item`,title:`Character Encoding`,children:(0,q.jsx)(`span`,{children:`UTF-8`})}),(0,q.jsx)(`div`,{className:`status-bar-item`,title:`End of Line Sequence`,children:(0,q.jsx)(`span`,{children:`LF`})}),(0,q.jsx)(`div`,{className:`status-bar-item`,title:`Select Language Mode`,children:(0,q.jsx)(`span`,{children:e?.detectedType===`pcard`?`PCard (CLM)`:e?.detectedType===`vcard`?`VCard`:`TypeScript`})}),(()=>{let e=n.startsWith(`gemini:`),r=!!(s.apiKey&&s.apiKey.trim().length>0),i=e?r?`#89d185`:`#ffd700`:n.startsWith(`browser:`)||t.online?`#89d185`:`#ffd700`,a=e?r?`Google Gemini Cloud AI (🔑 Authorized: ${s.providerEoaDid||`did:pkc:eoa:google:ai-studio`})`:`Google Gemini Cloud AI (⚠️ Missing AuthN Token - Click to configure)`:t.online?`Ollama daemon online (${t.latencyMs}ms)`:`Ollama offline`;return(0,q.jsxs)(`div`,{className:`status-bar-item`,id:`status-model-indicator`,"data-testid":`status-model-indicator`,role:`button`,tabIndex:0,title:a,onClick:()=>{e&&window.dispatchEvent(new CustomEvent(`clm:open-llm-settings`,{detail:{provider:`google`}}))},style:{cursor:e?`pointer`:`default`,display:`flex`,alignItems:`center`,gap:`4px`},children:[(0,q.jsx)(`span`,{"data-testid":`status-model-dot`,style:{width:`7px`,height:`7px`,borderRadius:`50%`,backgroundColor:i,display:`inline-block`}}),(0,q.jsx)(`span`,{children:n.replace(`gemini:`,``).replace(`ollama:`,``).replace(`remote:`,``)})]})})(),(0,q.jsxs)(`div`,{className:`status-bar-item`,id:`status-inbrowser-llm`,style:{cursor:`pointer`,display:`flex`,alignItems:`center`,gap:`4px`},title:a?`In-Browser AI: Downloading ${a.modelId} (${a.progressPct}%)\n${a.statusText}`:n.startsWith(`browser:`)?`In-Browser AI: ${n}\nStatus: ${o[n]?.statusText||`Ready`}`:`In-Browser AI: Click to open Model Weight & Cache Manager`,onClick:()=>{let e=document.getElementById(`open-llm-settings-modal`);e&&e.click(),setTimeout(()=>{let e=document.getElementById(`tab-inbrowser-llm`);e&&e.click()},50)},children:[(0,q.jsx)(`span`,{style:{width:`7px`,height:`7px`,borderRadius:`50%`,backgroundColor:a?`#75beff`:n.startsWith(`browser:`)&&o[n]?.isCached?`#89d185`:`#ffd700`,display:`inline-block`}}),(0,q.jsx)(`span`,{children:a?`⚡ AI Preload: ${a.progressPct}%`:n.startsWith(`browser:`)?o[n]?.isCached?`⚡ In-Browser: Ready`:`⚡ In-Browser: Uncached`:`⚡ In-Browser AI`})]}),(0,q.jsxs)(`div`,{className:`status-bar-item`,id:`status-storage-telemetry`,role:`button`,tabIndex:0,title:`Storage Backend: ${r.backendType.toUpperCase()} (${r.isPersistent?`Persistent`:`Ephemeral`})\nCards: ${r.cardCount}\nSize: ${r.totalBytes} bytes\nLast Saved: ${r.lastSavedIso??`Never`}\nClick to export database`,onClick:()=>{window.dispatchEvent(new CustomEvent(`clm:export-db`))},onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),window.dispatchEvent(new CustomEvent(`clm:export-db`)))},style:{display:`flex`,alignItems:`center`,gap:`4px`,cursor:`pointer`},children:[(0,q.jsx)(`span`,{style:{width:`7px`,height:`7px`,borderRadius:`50%`,backgroundColor:r.isPersistent?`#89d185`:`#ffd700`,display:`inline-block`,boxShadow:r.isPersistent?`0 0 4px #89d185`:`none`}}),(0,q.jsxs)(`span`,{children:[r.backendType===`sqljs`?`WASM SQLite`:r.backendType===`sqlite`?`SQLite WAL`:`Memory CAS`,`: `,r.cardCount,` cards (`,Math.round(r.totalBytes/1024),` KB)`]})]}),(0,q.jsxs)(`div`,{className:`status-bar-item`,id:`status-peer-mesh`,title:`Peer Mesh: ${i.online?`Online`:`Searching`} | Discovered Peers: ${i.peerCount}\n${i.peers.map(e=>`${e.name} (${e.ip}:${e.port})`).join(`
|
|
3
|
+
`)}`,style:{display:`flex`,alignItems:`center`,gap:`4px`},children:[(0,q.jsx)(`span`,{style:{width:`7px`,height:`7px`,borderRadius:`50%`,backgroundColor:i.peerCount>0?`#89d185`:`#75beff`,display:`inline-block`}}),(0,q.jsxs)(`span`,{children:[`🌐 Mesh: `,i.peerCount,` peers`]})]}),(0,q.jsx)(ut,{}),(0,q.jsx)(`div`,{className:`status-bar-item`,title:`Grafana Faro Web SDK Real User Monitoring Active`,children:(0,q.jsx)(`span`,{children:`🔭 Faro RUM`})})]})]})},ft=({className:e=``,style:t={}})=>{let n=B(I),r=B(p),i=Object.keys(r).length;if(!n)return null;let a=()=>{k(),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`clm:restore-dockview`))};return(0,q.jsx)(`div`,{style:{position:`fixed`,bottom:`32px`,right:`24px`,zIndex:9999,display:`flex`,alignItems:`center`,boxShadow:`0 8px 24px rgba(0, 0, 0, 0.65)`,borderRadius:`6px`,animation:`fadeIn 0.2s ease`,...t},children:(0,q.jsxs)(`button`,{type:`button`,className:`dockview-restore-anchor ${e}`.trim(),"data-action":`restore-dockview`,onClick:a,title:`Restore DockView workspace layout with all open tabs preserved`,style:{display:`inline-flex`,alignItems:`center`,gap:`10px`,backgroundColor:`var(--vscode-button-background, #0e639c)`,color:`#ffffff`,border:`1px solid rgba(255, 255, 255, 0.25)`,padding:`10px 18px`,borderRadius:`6px`,fontSize:`13px`,fontWeight:600,cursor:`pointer`,letterSpacing:`0.3px`,transition:`all 0.15s ease`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#1177bb`,e.currentTarget.style.transform=`translateY(-1px)`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`var(--vscode-button-background, #0e639c)`,e.currentTarget.style.transform=`translateY(0)`},children:[(0,q.jsx)(`span`,{style:{fontSize:`15px`},children:`◫`}),(0,q.jsxs)(`span`,{children:[`Return to Studio DockView (`,i,` `,i===1?`tab`:`tabs`,` active) ↩`]})]})})},pt=({totalMatches:e,onEnterFirstMatch:t})=>{let n=B(ie),[r,i]=(0,K.useState)(n);(0,K.useEffect)(()=>{i(n)},[n]);let a=(0,K.useCallback)(e=>{let t=e.target.value;i(t),re(t)},[]),o=(0,K.useCallback)(()=>{i(``),ae()},[]),s=(0,K.useCallback)(e=>{e.key===`Escape`?(e.preventDefault(),o()):e.key===`Enter`&&t&&(e.preventDefault(),t())},[o,t]),c=r.trim().length>0;return(0,q.jsxs)(`div`,{"data-testid":`explorer-search-field`,className:`explorer-search-container`,children:[(0,q.jsx)(it,{size:13,style:{opacity:.7,flexShrink:0}}),(0,q.jsx)(`input`,{type:`text`,"data-testid":`explorer-search-input`,className:`explorer-search-input`,value:r,onChange:a,onKeyDown:s,placeholder:`Filter files, hashes (64-hex), or kind (e.g. *.md, hash:3f4a, kind:pcard)...`}),c&&(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`4px`,flexShrink:0},children:[typeof e==`number`&&(0,q.jsxs)(`span`,{"data-testid":`explorer-search-matches-badge`,className:`explorer-search-badge`,children:[e,` `,e===1?`match`:`matches`]}),(0,q.jsx)(`button`,{type:`button`,"data-testid":`explorer-search-clear-btn`,className:`explorer-search-clear-btn`,onClick:o,title:`Clear filter (Escape)`,children:(0,q.jsx)(at,{size:12})})]})]})},mt=({onUploadFile:e})=>{let[t,n]=(0,K.useState)(!1),r=B(P);return(0,K.useEffect)(()=>{let e=()=>n(!0),t=()=>n(!1);return window.addEventListener(`clm:export-db-start`,e),window.addEventListener(`clm:export-db-end`,t),()=>{window.removeEventListener(`clm:export-db-start`,e),window.removeEventListener(`clm:export-db-end`,t)}},[]),(0,q.jsxs)(`div`,{className:`explorer-action-bar`,"data-testid":`explorer-action-bar`,children:[(0,q.jsx)(`button`,{type:`button`,className:`explorer-action-btn`,title:`Upload / Ingest Individual File(s) as MCards into Local Database`,"data-testid":`upload-file-btn`,onClick:e,children:(0,q.jsx)(ue,{size:14})}),(0,q.jsx)(`span`,{className:`explorer-action-sep`}),(0,q.jsx)(`button`,{type:`button`,className:`explorer-action-btn`,title:t?`Exporting Entire Directory as MCard DB...`:`Export Entire Directory / Workspace as MCard Database (.db)`,"data-testid":`export-db-btn`,disabled:t,onClick:()=>{t||window.dispatchEvent(new CustomEvent(`clm:export-db`))},children:(0,q.jsx)(le,{size:14})}),(0,q.jsx)(`button`,{type:`button`,className:`explorer-action-btn`,title:`Import & Mount Verified SQLite MCard Database Image (.db)`,"data-testid":`import-db-btn`,onClick:()=>window.dispatchEvent(new CustomEvent(`clm:open-import-db-modal`)),children:(0,q.jsx)(Se,{size:14})}),r.supervisorState===`saving`&&(0,q.jsx)(`span`,{"data-testid":`storage-state-saving`,className:`explorer-storage-state saving`,title:`Persisting to the local database…`,children:`⟳`}),(r.supervisorState===`stale`||r.supervisorState===`error`)&&(0,q.jsx)(`span`,{"data-testid":`storage-state-warning`,className:`explorer-storage-state ${r.supervisorState}`,title:r.supervisorState===`stale`?`Storage stale: writer generation conflict detected`:`Storage error: last persistence flush failed`,children:`⚠`})]})},ht=({id:e,title:t,mode:n,icon:r,isExpanded:i,itemCount:a,matchCount:o,onToggle:s,actions:c,children:l})=>{let[u,d]=(0,K.useState)(!1),f=n===`read-write`,p=e=>{(e.key===`Enter`||e.key===` `||e.key===`ArrowRight`&&!i||e.key===`ArrowLeft`&&i)&&(e.preventDefault(),s())},m=typeof o==`number`&&o===0;return(0,q.jsxs)(`div`,{"data-testid":`section-${e}`,className:`explorer-section-root${m?` explorer-section-dimmed`:``}`,children:[(0,q.jsxs)(`div`,{"data-testid":`section-${e}-header`,role:`button`,tabIndex:0,onClick:s,onKeyDown:p,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),className:`explorer-section-header`,children:[(0,q.jsx)(`span`,{className:`explorer-section-chevron`,children:i?(0,q.jsx)(st,{size:12}):(0,q.jsx)(ot,{size:12})}),r&&(0,q.jsx)(`span`,{className:`explorer-section-icon`,children:r}),(0,q.jsx)(`span`,{className:`explorer-section-title`,title:t,children:t}),(0,q.jsx)(`span`,{"data-testid":`section-${e}-mode-badge`,className:f?`explorer-section-badge-rw`:`explorer-section-badge-ro`,children:f?`RW`:`RO`}),typeof o==`number`&&o>0?(0,q.jsx)(`span`,{"data-testid":`section-${e}-match-badge`,className:`explorer-section-match-badge`,children:o}):(0,q.jsx)(`span`,{className:`explorer-section-item-count`,children:a}),c&&(0,q.jsx)(`div`,{onClick:e=>e.stopPropagation(),className:`explorer-section-actions ${u?`hovered`:``}`,children:c})]}),i&&(0,q.jsx)(`div`,{"data-testid":`section-${e}-content`,className:`explorer-section-content`,children:l})]})};function gt(e){let t=(e.detectedType||``).toLowerCase(),n=(e.subclass||``).toLowerCase();return t===`pcard`||n===`pcard`?`P`:t===`vcard`||n===`vcard`?`V`:`M`}var _t={M:`Number — Data / Model`,P:`Function — Executable PCard`,V:`Proof — Verification Witness`},vt=({file:e,onCopyHash:t})=>{let n=gt(e),r=e.hash?`${e.hash.slice(0,12)}…`:`n/a`,i=`${_t[n]} · ContentHash ${r}${e.hash?` (click to copy)`:``}`;return(0,q.jsxs)(`span`,{"data-testid":`duality-badge-${n}`,"data-duality-kind":n,className:`duality-badge duality-badge-${n.toLowerCase()}`,title:i,onClick:n=>{n.stopPropagation(),e.hash&&t&&t(e.hash)},children:[`[`,n,`]`,e.readOnly?(0,q.jsx)(`span`,{className:`duality-badge-lock`,"aria-label":`read-only`,children:`🔒`}):null]})},yt=H.paths.workspace_dirname;function bt(e,t){let n=`${yt}/${e}`;if(!t.has(n))return n;let r=e.lastIndexOf(`.`),i=r>0?e.slice(0,r):e,a=r>0?e.slice(r):``,o=1;for(;t.has(n);)n=`${yt}/${i}_${o++}${a}`;return n}async function xt(e){let t=typeof e.content==`string`&&e.content.length>0?e.content:await Je(e);if(t===void 0)throw Error(`Cannot fork ${e.path}: content unavailable`);let n=z.get(),r=new Set(Object.values(n).map(e=>e.path)),i=bt(e.name,r),a=i.replace(/\//g,`:`),o=await fetch(V(`vfs_write`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:i,content:t})});if(!o.ok)throw Error(`Fork write failed: HTTP ${o.status}`);let s=await o.json(),c={...e,handle:a,path:i,name:i.split(`/`).pop()||e.name,hash:s?.hash||e.hash,content:t,readOnly:!1,scope:yt};return z.setKey(a,c),c}function St(e){typeof navigator<`u`&&navigator.clipboard&&navigator.clipboard.writeText(e).catch(()=>{})}var Ct=({menu:e,onClose:t})=>{let{file:n}=e,[r,i]=(0,K.useState)(!1),a=(0,K.useRef)(null);return(0,K.useEffect)(()=>{let e=e=>{a.current&&!a.current.contains(e.target)&&t()},n=e=>{e.key===`Escape`&&t()};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,n),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,n)}},[t]),(0,q.jsxs)(`div`,{ref:a,"data-testid":`file-tree-context-menu`,className:`file-tree-context-menu`,style:{left:e.x,top:e.y},children:[(0,q.jsx)(`button`,{type:`button`,className:`file-tree-context-item`,"data-testid":`ctx-copy-hash`,onClick:()=>{St(n.hash),t()},children:`Copy ContentHash (Gödel Number)`}),(0,q.jsx)(`button`,{type:`button`,className:`file-tree-context-item`,"data-testid":`ctx-copy-path`,onClick:()=>{St(n.path),t()},children:`Copy Path`}),(0,q.jsx)(`button`,{type:`button`,className:`file-tree-context-item`,"data-testid":`ctx-copy-rel-path`,onClick:()=>{St(n.name),t()},children:`Copy Relative Path`}),n.readOnly&&(0,q.jsx)(`button`,{type:`button`,className:`file-tree-context-item`,"data-testid":`ctx-fork-workspace`,disabled:r,onClick:async()=>{i(!0);try{await xt(n)}catch(e){console.warn(`[Explorer] Fork to workspace failed:`,e)}finally{i(!1),t()}},children:r?`Forking…`:`Fork to Read-Write Workspace`}),gt(n)===`P`&&(0,q.jsx)(`button`,{type:`button`,className:`file-tree-context-item`,"data-testid":`ctx-execute`,onClick:()=>{m(n),t()},children:`Execute / Render (Function)`})]})},J=8,wt=8,Tt=16,Et=e=>{typeof navigator<`u`&&navigator.clipboard&&navigator.clipboard.writeText(e).catch(()=>{})},Dt=K.memo(({nodes:e,depth:t=0,collapsedDirs:n,toggleCollapse:r,activeMCard:i,editingPath:a,editingValue:o,setEditingValue:s,startRename:c,cancelRename:l,commitRename:u,draggedItem:d,dragOverPath:f,setDraggedItem:p,setDragOverPath:h,onDropItem:g,onSelectDir:_})=>{let[v,y]=(0,K.useState)(null),b=e=>e.detectedType===`media`?(0,q.jsx)(he,{size:15,color:`#e37933`}):e.detectedType===`pcard`||e.subclass===`PCard`?(0,q.jsx)(pe,{size:14,color:`#75beff`}):e.detectedType===`vcard`||e.subclass===`VCard`?(0,q.jsx)(se,{size:14,color:`#89d185`}):e.name.endsWith(`.ts`)||e.name.endsWith(`.tsx`)?(0,q.jsx)(U,{size:15,color:`#519aba`}):e.name.endsWith(`.yaml`)||e.name.endsWith(`.yml`)||e.name.endsWith(`.json`)?(0,q.jsx)(U,{size:15,color:`#cbcb41`}):e.name.endsWith(`.svg`)?(0,q.jsx)(he,{size:15,color:`#e37933`}):(0,q.jsx)(U,{size:15,color:`#d4d4d4`}),x=(e,t)=>(0,q.jsx)(Dt,{nodes:e,depth:t,collapsedDirs:n,toggleCollapse:r,activeMCard:i,editingPath:a,editingValue:o,setEditingValue:s,startRename:c,cancelRename:l,commitRename:u,draggedItem:d,dragOverPath:f,setDraggedItem:p,setDragOverPath:h,onDropItem:g,onSelectDir:_}),S=Object.values(e).sort((e,t)=>e.isDir&&!t.isDir?-1:!e.isDir&&t.isDir?1:e.name.localeCompare(t.name));return(0,q.jsxs)(q.Fragment,{children:[S.map(e=>{if(e.isDir){let i=n[e.fullPath],m=f===e.fullPath,v=a===e.fullPath;return(0,q.jsxs)(K.Fragment,{children:[(0,q.jsxs)(`div`,{className:`tree-dir-header`,draggable:!v,onDragStart:t=>{t.stopPropagation();let n={path:e.fullPath,isDir:!0};t.dataTransfer.setData(`text/plain`,JSON.stringify(n)),t.dataTransfer.effectAllowed=`move`,p(n)},onDragEnd:()=>{p(null),h(null)},onDragOver:t=>{d&&(d.path===e.fullPath||d.isDir&&e.fullPath.startsWith(d.path+`/`)||(t.preventDefault(),t.stopPropagation(),t.dataTransfer.dropEffect=`move`,f!==e.fullPath&&h(e.fullPath)))},onDragLeave:t=>{t.stopPropagation(),f===e.fullPath&&h(null)},onDrop:t=>g(t,e.fullPath),onClick:()=>{r(e.fullPath),_?.(e.fullPath)},style:{paddingLeft:`${wt+t*J}px`,display:`flex`,alignItems:`center`,height:`22px`,fontSize:`13px`,cursor:`pointer`,position:`relative`,width:`100%`,boxSizing:`border-box`,color:`var(--vscode-sideBar-foreground, #cccccc)`,userSelect:`none`,outline:m?`1px dashed var(--vscode-focusBorder, #007fd4)`:`none`,backgroundColor:m?`rgba(0, 122, 204, 0.15)`:`transparent`},children:[Array.from({length:t}).map((e,t)=>(0,q.jsx)(`div`,{style:{position:`absolute`,left:`${wt+t*J+8}px`,top:0,bottom:0,width:`1px`,backgroundColor:`var(--vscode-tree-indentGuidesStroke, rgba(255, 255, 255, 0.08))`,pointerEvents:`none`}},t)),(0,q.jsx)(`span`,{style:{width:`${Tt}px`,height:`22px`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,color:`#858585`,flexShrink:0},children:i?(0,q.jsx)(ve,{size:12}):(0,q.jsx)(we,{size:12})}),(0,q.jsx)(`span`,{style:{width:`16px`,height:`22px`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,marginRight:`6px`,flexShrink:0},children:i?(0,q.jsx)(be,{size:15}):(0,q.jsx)(_e,{size:15})}),v?(0,q.jsx)(`input`,{autoFocus:!0,"data-testid":`inline-rename-input`,value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.stopPropagation(),u()):e.key===`Escape`&&(e.stopPropagation(),l())},onBlur:u,onClick:e=>e.stopPropagation(),style:{height:`18px`,fontSize:`12px`,padding:`0 4px`,backgroundColor:`var(--vscode-input-background, #3c3c3c)`,color:`var(--vscode-input-foreground, #cccccc)`,border:`1px solid var(--vscode-focusBorder, #007fd4)`,outline:`none`,borderRadius:`2px`,width:`calc(100% - 30px)`}}):(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,flex:1,overflow:`hidden`},children:[(0,q.jsx)(`span`,{onDoubleClick:t=>{t.stopPropagation(),c(e.fullPath,e.name)},style:{fontWeight:400,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name}),(0,q.jsx)(`button`,{type:`button`,className:`tree-rename-btn`,title:`Rename Folder (F2)`,"data-testid":`rename-dir-btn`,onClick:t=>{t.stopPropagation(),c(e.fullPath,e.name)},style:{background:`none`,border:`none`,cursor:`pointer`,padding:`0 2px`,opacity:0,transition:`opacity 0.2s`,display:`flex`,alignItems:`center`,color:`#858585`},children:(0,q.jsx)(Te,{size:12})})]})]}),!i&&x(e.children,t+1)]},e.fullPath)}let v=e.file,S=i?.handle===v.handle,C=a===v.path;return(0,q.jsxs)(`div`,{"data-mcard-handle":v.handle,onContextMenu:e=>{e.preventDefault(),y({x:e.clientX,y:e.clientY,file:v})},draggable:!C,onDragStart:e=>{e.stopPropagation();let t={path:v.path,isDir:!1};e.dataTransfer.setData(`text/plain`,JSON.stringify(t)),e.dataTransfer.effectAllowed=`move`,p(t)},onDragEnd:()=>{p(null),h(null)},onClick:()=>m(v),className:`tree-file-row ${S?`active`:``}`,style:{paddingLeft:`${wt+t*J}px`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,height:`22px`,fontSize:`13px`,cursor:`pointer`,position:`relative`,width:`100%`,boxSizing:`border-box`,backgroundColor:S?`var(--vscode-list-activeSelectionBackground, #37373d)`:`transparent`,color:S?`var(--vscode-list-activeSelectionForeground, #ffffff)`:`var(--vscode-sideBar-foreground, #cccccc)`,paddingRight:`8px`,userSelect:`none`},children:[Array.from({length:t}).map((e,t)=>(0,q.jsx)(`div`,{style:{position:`absolute`,left:`${wt+t*J+8}px`,top:0,bottom:0,width:`1px`,backgroundColor:`var(--vscode-tree-indentGuidesStroke, rgba(255, 255, 255, 0.08))`,pointerEvents:`none`}},t)),(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,overflow:`hidden`,textOverflow:`ellipsis`,flex:1},children:[(0,q.jsx)(`span`,{style:{width:`${Tt}px`,height:`22px`,flexShrink:0}}),(0,q.jsx)(`span`,{style:{width:`16px`,height:`22px`,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,marginRight:`6px`,flexShrink:0},children:b(v)}),C?(0,q.jsx)(`input`,{autoFocus:!0,"data-testid":`inline-rename-input`,value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.stopPropagation(),u()):e.key===`Escape`&&(e.stopPropagation(),l())},onBlur:u,onClick:e=>e.stopPropagation(),style:{height:`18px`,fontSize:`12px`,padding:`0 4px`,backgroundColor:`var(--vscode-input-background, #3c3c3c)`,color:`var(--vscode-input-foreground, #cccccc)`,border:`1px solid var(--vscode-focusBorder, #007fd4)`,outline:`none`,borderRadius:`2px`,width:`calc(100% - 30px)`}}):(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,flex:1,overflow:`hidden`},children:[(0,q.jsx)(`span`,{"data-mcard-handle":v.name,onDoubleClick:e=>{e.stopPropagation(),v.readOnly||c(v.path,v.name)},style:{whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,fontFamily:`var(--vscode-font-family)`},children:v.name}),!v.readOnly&&(0,q.jsx)(`button`,{type:`button`,className:`tree-rename-btn`,title:`Rename File (F2)`,"data-testid":`rename-file-btn`,onClick:e=>{e.stopPropagation(),c(v.path,v.name)},style:{background:`none`,border:`none`,cursor:`pointer`,padding:`0 2px`,opacity:0,transition:`opacity 0.2s`,display:`flex`,alignItems:`center`,color:`#858585`,marginLeft:`auto`},children:(0,q.jsx)(Te,{size:12})})]})]}),!C&&(0,q.jsx)(vt,{file:v,onCopyHash:Et})]},v.handle)}),v&&(0,q.jsx)(Ct,{menu:v,onClose:()=>y(null)})]})});function Ot(e={}){let t=B(z),n=B(R),[r,i]=(0,K.useState)(!1),{onStartRename:a}=e,o=(0,K.useRef)(a);o.current=a;let c=(0,K.useCallback)(async()=>{i(!0);try{if(L.get()===`server`)await W(!0),await G(!0);else{let{loadCardsFromIndexedDb:e}=await s(async()=>{let{loadCardsFromIndexedDb:e}=await import(`./vfsPersistence.BuhXYeSb.js`).then(e=>e.i);return{loadCardsFromIndexedDb:e}},__vite__mapDeps([0,1,2,3,4,5,6,7])),t=await e();if(t&&t.length>0){let e={...z.get()};for(let n of t)n.handle&&!e[n.handle]&&(e[n.handle]=n);z.set(e)}}}catch(e){console.warn(`[useFileTreeSync] Refresh failed:`,e)}finally{setTimeout(()=>i(!1),300)}},[]);return(0,K.useEffect)(()=>{Object.keys(z.get()).length===0&&We(),L.get()===`server`&&(W(),G());let e=()=>{L.get()===`server`&&(W(),G())};window.addEventListener(`focus`,e);let t=e=>{if(e.key===`F2`&&o.current){let t=R.get();t&&t.path&&(e.preventDefault(),o.current(t.path,t.name))}};window.addEventListener(`keydown`,t);let n=setInterval(()=>{L.get()===`server`&&(W(),G())},5e3);return()=>{window.removeEventListener(`focus`,e),window.removeEventListener(`keydown`,t),clearInterval(n)}},[]),{treeMap:t,activeMCard:n,isSyncing:r,handleRefresh:c}}function kt(){let[e,t]=(0,K.useState)(null),[n,r]=(0,K.useState)(``),i=(0,K.useCallback)((e,n)=>{t(e),r(n)},[]),a=(0,K.useCallback)(()=>{t(null),r(``)},[]);return{editingPath:e,editingValue:n,setEditingValue:r,startRename:i,cancelRename:a,commitRename:(0,K.useCallback)(async()=>{if(!e||!n.trim()){a();return}let t=e,r=n.trim();a();try{await Ke(t,r)}catch(e){console.warn(`[MCardFileTree] Rename failed:`,e)}},[e,n,a])}}function At(){let[e,t]=(0,K.useState)(null),[n,r]=(0,K.useState)(null);return{draggedItem:e,dragOverPath:n,setDraggedItem:t,setDragOverPath:r,handleDragStart:(0,K.useCallback)((e,n)=>{e.stopPropagation(),e.dataTransfer.setData(`text/plain`,JSON.stringify(n)),e.dataTransfer.effectAllowed=`move`,t(n)},[]),handleDragEnd:(0,K.useCallback)(()=>{t(null),r(null)},[]),handleDragOver:(0,K.useCallback)((t,i)=>{e&&(e.path===i||e.isDir&&i.startsWith(e.path+`/`)||(t.preventDefault(),t.stopPropagation(),t.dataTransfer.dropEffect=`move`,n!==i&&r(i)))},[e,n]),handleDragLeave:(0,K.useCallback)((e,t)=>{e.stopPropagation(),n===t&&r(null)},[n]),handleDrop:(0,K.useCallback)(async(n,i)=>{if(n.preventDefault(),n.stopPropagation(),r(null),e&&!(e.path===i||e.isDir&&i.startsWith(e.path+`/`)))try{await Ge(e.path,i)}catch(e){console.warn(`[MCardFileTree] Drop move failed:`,e)}finally{t(null)}},[e])}}function jt(e){let[t,n]=(0,K.useState)(null),r=(0,K.useCallback)(()=>{if(t)return t.replace(/\/+$/,``);if(e?.path){let t=e.path.split(`/`);return t.pop(),t.join(`/`)}return``},[t,e]);return{selectedDirPath:t,setSelectedDirPath:n,resolveTargetFolder:r,targetFolderLabel:r()||void 0}}function Mt(e){let{onCreated:t,onStartRename:n,onExpandFolder:r}=typeof e==`function`?{onCreated:e}:e||{},[i,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(``),c=(0,K.useCallback)(()=>{a(null),s(``)},[]);return{inserting:i,insertingValue:o,setInsertingValue:s,startCardInsertion:(0,K.useCallback)(async e=>{let i=z.get(),o=(e||``).replace(/^\/+|\/+$/g,``),l=o?`${o}/`:``,u=`untitled.txt`,d=`${l}${u}`,f=1;for(;i[d]||i[d.replace(/\//g,`:`)];)u=`untitled_${f}.txt`,d=`${l}${u}`,f++;a({targetFolder:o,isFolder:!1,defaultValue:u}),s(u);try{let e=`# ${u}\n\nCreated: ${new Date().toISOString()}\n`,{node:i}=await qe(d,e);return m(i),o&&r?.(o),n&&n(i.path,i.name),t?.(i.path),c(),i}catch(e){console.error(`[CardInsertion] Failed to create card:`,e),c()}},[t,n,r,c]),startFolderInsertion:(0,K.useCallback)(async e=>{let i=z.get(),o=(e||``).replace(/^\/+|\/+$/g,``),l=o?`${o}/`:``,u=`new_folder`,d=`${l}${u}`,f=1,p=e=>{let t=e.endsWith(`/`)?e:`${e}/`;return Object.values(i).some(e=>e.path.startsWith(t))};for(;p(d);)u=`new_folder_${f}`,d=`${l}${u}`,f++;a({targetFolder:o,isFolder:!0,defaultValue:u}),s(u);try{let e=`${d}/untitled.txt`,i=`# ${u}\n\nCreated: ${new Date().toISOString()}\n`,{node:a}=await qe(e,i);return m(a),o&&r?.(o),r?.(d),n&&n(d,u),t?.(d),c(),a}catch(e){console.error(`[CardInsertion] Failed to create folder:`,e),c()}},[t,n,r,c]),cancelInsertion:c,commitInsertion:(0,K.useCallback)(async()=>{if(!i||!o.trim()){c();return}let e=o.trim(),n=`${i.targetFolder?`${i.targetFolder}/`:``}${e}`;try{if(!i.isFolder){let t=`# ${e}\n\nCreated: ${new Date().toISOString()}\n`;await qe(n,t)}t?.(n)}catch(e){console.error(`[CardInsertion] Failed to commit item:`,e)}finally{c()}},[i,o,c,t])}}function Nt({onRefresh:e}){return{handleUploadFile:(0,K.useCallback)(()=>{if(typeof document>`u`)return;let t=document.createElement(`input`);t.type=`file`,t.multiple=!0,t.onchange=async()=>{if(t.files&&t.files.length>0){let n=Array.from(t.files),r=await Promise.all(n.map(async e=>({name:e.name,content:await e.text(),mimeType:e.type}))),{executeFileUploadTransaction:i}=await s(async()=>{let{executeFileUploadTransaction:e}=await import(`./vfsTransactions.C_IQQg0s.js`);return{executeFileUploadTransaction:e}},__vite__mapDeps([8,2,1,3,4,5,6,7,9,10,11,12,0]));await i(r),e()}},t.click()},[e]),handleForkDirectory:(0,K.useCallback)(async()=>{let{$activeWorkspaceRoot:t,setActiveWorkspaceRoot:n}=await s(async()=>{let{$activeWorkspaceRoot:e,setActiveWorkspaceRoot:t}=await import(`./workspaceStore.CD0kAVAl.js`).then(e=>e.a);return{$activeWorkspaceRoot:e,setActiveWorkspaceRoot:t}},__vite__mapDeps([6,1,4,2,3,7])),r=t.get();if(r&&r!==`local-db`){let{executeForkDirectoryTransaction:t}=await s(async()=>{let{executeForkDirectoryTransaction:e}=await import(`./vfsTransactions.C_IQQg0s.js`);return{executeForkDirectoryTransaction:e}},__vite__mapDeps([8,2,1,3,4,5,6,7,9,10,11,12,0]));await t(r),n(`local-db`),e()}},[e])}}var Pt=`mcard:explorer:sections-v2`,Y=H.paths.workspace_dirname,X=H.paths.assets_dirname,Z=H.paths.knowledge_dirname,Q=`public`,Ft=[{id:Y,title:`READ-WRITE: Workspace`,mode:`read-write`,prefix:Y},{id:X,title:`READ-ONLY: Assets (Seed Catalog)`,mode:`read-only`,prefix:X},{id:Z,title:`READ-ONLY: Computable Knowledge`,mode:`read-only`,prefix:Z},{id:Q,title:`READ-ONLY: Public Assets`,mode:`read-only`,prefix:Q}];function It(){try{let e=typeof localStorage<`u`?localStorage.getItem(Pt):null;if(e)return JSON.parse(e)}catch{}return{[Y]:!0,[X]:!1,[Z]:!1,[Q]:!1}}function Lt(e,t,n){let[r,i]=(0,K.useState)(It),a=(0,K.useCallback)(e=>{i(t=>{let n={...t,[e]:!t[e]};try{typeof localStorage<`u`&&localStorage.setItem(Pt,JSON.stringify(n))}catch{}return n})},[]);return(0,K.useEffect)(()=>{if(!e)return;let t=typeof e==`string`?e:typeof e==`object`&&e&&(e.handle||e.path)||``;if(!t||typeof t.toLowerCase!=`function`)return;let n=t.toLowerCase();for(let e of Ft)if(n.startsWith(e.prefix)){i(t=>t[e.id]?t:{...t,[e.id]:!0});break}},[e]),{sections:Ft,expanded:(0,K.useMemo)(()=>{if(!t)return r;let e={...r};for(let t of Ft)(n[t.id]||0)>0&&(e[t.id]=!0);return e},[r,t,n]),toggleSection:a}}function Rt(e,t){let n=t.trim();if(!n)return{filteredNodes:e,matchCount:0,autoExpandedDirs:new Set};let r=n.toLowerCase(),i=new Set,a=0,o=r.startsWith(`hash:`)||/^[0-9a-f]{8,64}$/i.test(n),s=r.startsWith(`hash:`)?r.slice(5).trim():r,c=r.startsWith(`kind:`),l=c?r.slice(5).trim():``;function u(e){if(e.isDir)return!1;if(c){let t=(e.file?.detectedType||``).toLowerCase();return l===`pcard`?t===`pcard`:l===`vcard`?t===`vcard`:l===`mcard`?t!==`pcard`&&t!==`vcard`:t.includes(l)}if(o)return(e.file?.hash||``).toLowerCase().includes(s);if(e.name.toLowerCase().includes(r)||e.fullPath.toLowerCase().includes(r))return!0;let t=e.file?.content;return!!(typeof t==`string`&&t.toLowerCase().includes(r))}function d(e){let t={};for(let[n,r]of Object.entries(e))if(r.isDir){let e=d(r.children);Object.keys(e).length>0&&(t[n]={...r,children:e},i.add(r.fullPath))}else u(r)&&(t[n]=r,a++);return t}return{filteredNodes:d(e),matchCount:a,autoExpandedDirs:i}}function zt(e){let t={};for(let{relPath:n,file:r}of e){let e=n.split(`/`).filter(Boolean),i=t,a=``;for(let t=0;t<e.length;t++){let n=e[t];a=a?`${a}/${n}`:n;let o=t===e.length-1;i[n]||(i[n]={name:n,fullPath:r.path,isDir:!o,file:o?r:void 0,children:{}}),i=i[n].children}}return t}function Bt(e,t){return(0,K.useMemo)(()=>{let n={[Y]:[],[X]:[],[Z]:[],[Q]:[]},r=`${X}/`,i=`${Z}/`,a=`${Q}/`,o=`${Y}/`;for(let t of Object.values(e)){let e=t.path;if(e.startsWith(r))n[X].push({relPath:e.slice(r.length),file:t});else if(e.startsWith(i))n[Z].push({relPath:e.slice(i.length),file:t});else if(e.startsWith(a))n[Q].push({relPath:e.slice(a.length),file:t});else{let r=e.startsWith(o)?e.slice(o.length):e;n[Y].push({relPath:r,file:t})}}let s={},c={},l={},u={},d=new Set,f=0;for(let e of Ft){let r=n[e.id]||[];u[e.id]=r.length;let i=zt(r);s[e.id]=i;let a=Rt(i,t);c[e.id]=a.filteredNodes,l[e.id]=a.matchCount,f+=a.matchCount;for(let e of a.autoExpandedDirs)d.add(e)}return{rawTrees:s,filteredTrees:c,matchCounts:l,itemCounts:u,totalMatches:f,autoExpandedDirs:d,isFiltering:t.trim().length>0}},[e,t])}var Vt=()=>{let[e,t]=(0,K.useState)({}),n=B(ie),{editingPath:r,editingValue:i,setEditingValue:a,startRename:o,cancelRename:s,commitRename:c}=kt(),{treeMap:l,activeMCard:u,isSyncing:d,handleRefresh:f}=Ot({onStartRename:o}),{resolveTargetFolder:p,setSelectedDirPath:m}=jt(u),{startCardInsertion:h,startFolderInsertion:g}=Mt({onStartRename:o,onExpandFolder:e=>t(t=>({...t,[e]:!1}))}),{draggedItem:_,dragOverPath:v,setDraggedItem:y,setDragOverPath:b,handleDrop:x,handleDragOver:S,handleDragLeave:C}=At(),{handleUploadFile:w,handleForkDirectory:T}=Nt({onRefresh:f}),{filteredTrees:E,matchCounts:D,itemCounts:O,totalMatches:k,autoExpandedDirs:A,isFiltering:j}=Bt(l,n),{sections:M,expanded:N,toggleSection:P}=Lt(u?.handle||u?.path||null,j,D),F=(0,K.useCallback)(e=>{t(t=>({...t,[e]:!t[e]}))},[]),I=(0,K.useMemo)(()=>{if(!j)return e;let t={...e};for(let e of A)t[e]=!1;return t},[e,A,j]);return(0,q.jsxs)(`div`,{className:`mcard-file-tree`,children:[(0,q.jsx)(pt,{totalMatches:j?k:void 0}),(0,q.jsx)(mt,{onUploadFile:w}),(0,q.jsx)(`div`,{className:`mcard-file-tree-scroll`,children:M.map(e=>(0,q.jsx)(ht,{id:e.id,title:e.title,mode:e.mode,icon:e.mode===`read-only`?(0,q.jsx)(rt,{size:12}):void 0,isExpanded:N[e.id]??!1,itemCount:O[e.id]||0,matchCount:j?D[e.id]:void 0,onToggle:()=>P(e.id),actions:e.id===Y?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`button`,{type:`button`,"data-testid":`section-new-card-btn`,title:`New Card`,onClick:()=>h(p()),className:`explorer-section-action-btn`,children:`+`}),(0,q.jsx)(`button`,{type:`button`,"data-testid":`section-new-folder-btn`,title:`New Folder`,onClick:()=>g(p()),className:`explorer-section-action-btn`,children:`📁`}),(0,q.jsx)(`button`,{type:`button`,"data-testid":`section-refresh-btn`,title:`Refresh`,onClick:f,className:`explorer-section-action-btn`,children:`🔄`})]}):(0,q.jsx)(`button`,{type:`button`,"data-testid":`section-${e.id}-fork-btn`,title:`Fork to Workspace`,onClick:T,className:`explorer-section-action-btn-fork`,children:`Fork`}),children:(0,q.jsx)(`div`,{"data-testid":`section-${e.id}-drop-zone`,onDragOver:t=>e.id===Y&&S(t,`__root__`),onDragLeave:t=>e.id===Y&&C(t,`__root__`),onDrop:t=>e.id===Y&&x(t,``),className:`explorer-section-drop-zone ${v===`__root__`&&e.id===Y?`drag-active`:``}`,children:(0,q.jsx)(Dt,{nodes:E[e.id]||{},collapsedDirs:I,toggleCollapse:F,activeMCard:u,editingPath:r,editingValue:i,setEditingValue:a,startRename:o,cancelRename:s,commitRename:c,draggedItem:_,dragOverPath:v,setDraggedItem:y,setDragOverPath:b,onDropItem:x,onSelectDir:m})})},e.id))})]})},$=[{id:`markdown.visual`,name:`Markdown Document Viewer`,description:`Renders formatted markdown documents with math and diagram support`,version:`1.0.0`,tabs:[`visual`],modalities:[`html`],match:{mimes:[`text/markdown`],categories:[`document`,`text`]},capability:{content:`text`,contentLimitBytes:5e6,container:`full-bleed`},priority:50,module:`MarkdownViewlet`,accessibility:{label:`Formatted Markdown Document`,keyboard:`full`}},{id:`source.text`,name:`Source Code & Text Editor`,description:`Syntax-highlighted code and text viewer`,version:`1.0.0`,tabs:[`text`,`source`],modalities:[`text`,`html`],match:{categories:[`code`,`text`,`document`]},capability:{content:`text`,contentLimitBytes:1e7,container:`full-bleed`},priority:25,module:`MonacoTextViewlet`,accessibility:{label:`Text and Code Editor`,keyboard:`full`}},{id:`clm.pcard.visual`,name:`CLM PCard Viewlet`,description:`Visualizes and executes CLM Petri-nets and Arrow Sandwich morphisms`,version:`1.0.0`,tabs:[`visual`],modalities:[`html`,`canvas`],match:{predicateId:`clm.pcard-manifest`},capability:{content:`json`,contentLimitBytes:2e6,container:`full-bleed`},priority:95,module:`ClmPcardViewlet`,accessibility:{label:`CLM Process Card Visualizer`,keyboard:`full`}},{id:`clm.vcard.visual`,name:`CLM VCard Witness Inspector`,description:`Inspects and verifies formal VCard proofs and Noetherian invariants`,version:`1.0.0`,tabs:[`visual`,`merkle`],modalities:[`html`],match:{predicateId:`clm.vcard-witness`},capability:{content:`json`,contentLimitBytes:2e6,container:`inline`},priority:95,module:`WitnessVcardViewlet`,accessibility:{label:`VCard Proof and Witness Inspector`,keyboard:`full`}},{id:`image.visual`,name:`Image Viewer`,description:`Renders raster and vector graphics`,version:`1.0.0`,tabs:[`visual`],modalities:[`html`,`canvas`],match:{categories:[`image`,`media`]},capability:{content:`bytes`,contentLimitBytes:5e7,container:`inline`},priority:70,module:`ImageViewlet`,accessibility:{label:`Image Display`,keyboard:`limited`}},{id:`raw.hex`,name:`Raw Data & Hex Viewer`,description:`Fallback binary hex inspection and byte stream analysis`,version:`1.0.0`,tabs:[`raw`,`raw_data`],modalities:[`html`,`text`],match:{},capability:{content:`bytes`,contentLimitBytes:1e8,container:`full-bleed`},priority:10,module:`RawDataViewlet`,accessibility:{label:`Raw Binary Byte Stream View`,keyboard:`limited`}}],Ht=()=>{let[e,t]=(0,K.useState)(``),[n,r]=(0,K.useState)($[0]?.id||``),i=$.filter(t=>{let n=e.toLowerCase().trim();return!n||t.name.toLowerCase().includes(n)||t.id.toLowerCase().includes(n)||t.description.toLowerCase().includes(n)}),a=$.find(e=>e.id===n)||$[0];return(0,q.jsxs)(`div`,{id:`extension-gallery-viewlet`,className:`extension-gallery-container`,style:{display:`flex`,flexDirection:`column`,height:`100%`,width:`100%`,backgroundColor:`var(--vscode-sideBar-background, #252526)`,color:`var(--vscode-foreground, #cccccc)`,fontFamily:`var(--vscode-font-family)`,overflow:`hidden`},children:[(0,q.jsxs)(`div`,{style:{padding:`8px 12px`,borderBottom:`1px solid var(--vscode-sideBar-border, #333333)`,display:`flex`,flexDirection:`column`,gap:`6px`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,q.jsx)(`span`,{style:{fontSize:`11px`,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.6px`},children:`Extensions & Viewlets`}),(0,q.jsxs)(`span`,{style:{fontSize:`11px`,color:`#888`},children:[$.length,` Registered`]})]}),(0,q.jsx)(`input`,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:`Search registered viewlets...`,style:{backgroundColor:`var(--vscode-input-background, #3c3c3c)`,color:`var(--vscode-input-foreground, #cccccc)`,border:`1px solid var(--vscode-input-border, #3c3c3c)`,padding:`4px 8px`,fontSize:`12px`,borderRadius:`2px`,outline:`none`}})]}),(0,q.jsx)(`div`,{"data-testid":`gap10-gallery-notice`,style:{padding:`6px 12px`,backgroundColor:`rgba(217, 119, 6, 0.1)`,borderBottom:`1px solid rgba(217, 119, 6, 0.3)`,fontSize:`11px`,color:`#fbbf24`},children:(0,q.jsx)(`span`,{children:`⚠️ Upstream Boundary: Community plugin dynamic installation retired under INV-FM-20 / GAP-10.`})}),(0,q.jsxs)(`div`,{style:{display:`flex`,flex:1,overflow:`hidden`,flexDirection:`column`},children:[(0,q.jsx)(`div`,{style:{flex:`0 0 45%`,overflowY:`auto`,borderBottom:`1px solid var(--vscode-sideBar-border, #333333)`},children:i.map(e=>{let t=e.id===n;return(0,q.jsx)(`div`,{onClick:()=>r(e.id),style:{padding:`8px 12px`,display:`flex`,alignItems:`flex-start`,justifyContent:`space-between`,cursor:`pointer`,borderBottom:`1px solid rgba(255, 255, 255, 0.04)`,backgroundColor:t?`var(--vscode-list-activeSelectionBackground, #094771)`:`transparent`},children:(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`3px`,minWidth:0,flex:1},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`},children:[(0,q.jsx)(`span`,{style:{fontWeight:600,fontSize:`12px`,color:`#ffffff`},children:e.name}),(0,q.jsxs)(`span`,{style:{fontSize:`10px`,color:`#888`,fontFamily:`monospace`},children:[`v`,e.version]})]}),(0,q.jsx)(`span`,{style:{fontSize:`11px`,color:`rgba(255, 255, 255, 0.65)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.description}),(0,q.jsxs)(`div`,{style:{display:`flex`,gap:`4px`,marginTop:`2px`},children:[(0,q.jsxs)(`span`,{style:{fontSize:`9px`,padding:`1px 4px`,borderRadius:`3px`,backgroundColor:`rgba(255, 255, 255, 0.1)`,color:`#9cdcfe`},children:[`Priority `,e.priority]}),e.match.mimes&&(0,q.jsx)(`span`,{style:{fontSize:`9px`,padding:`1px 4px`,borderRadius:`3px`,backgroundColor:`rgba(255, 255, 255, 0.1)`,color:`#4ec9b0`},children:e.match.mimes[0]})]})]})},e.id)})}),(0,q.jsx)(`div`,{style:{flex:1,padding:`12px`,overflowY:`auto`,display:`flex`,flexDirection:`column`,gap:`10px`},children:a?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`h4`,{style:{margin:`0 0 4px 0`,fontSize:`13px`,color:`#ffffff`},children:a.name}),(0,q.jsxs)(`div`,{style:{fontSize:`11px`,color:`#888`,fontFamily:`monospace`},children:[a.id,` • v`,a.version]})]}),(0,q.jsx)(`div`,{style:{fontSize:`12px`,lineHeight:1.4},children:a.description}),(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`6px`,fontSize:`11px`},children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`strong`,{children:`Module:`}),` `,(0,q.jsx)(`code`,{children:a.module})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`strong`,{children:`Tabs:`}),` `,a.tabs.join(`, `)]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`strong`,{children:`Modalities:`}),` `,a.modalities.join(`, `)]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`strong`,{children:`Categories:`}),` `,a.match.categories?.join(`, `)||`none`]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`strong`,{children:`Accessibility:`}),` `,a.accessibility.label]})]})]}):(0,q.jsx)(`div`,{style:{color:`#888`,fontSize:`12px`},children:`Select an extension to view details`})})]})]})},Ut=()=>{let[e,t]=(0,K.useState)(null);return(0,K.useEffect)(()=>{let e=null,n=n=>{t(n),e&&clearTimeout(e),e=setTimeout(()=>{t(null)},4e3)},r=e=>{let t=e.detail;n(t?.message||`Browser popup blocked. Activated in-app side-by-side split view.`)},i=e=>{let t=e.detail;(t?.result?.popupBlocked||t?.result&&!t?.result?.success)&&n(`Browser popup blocked. Activated in-app side-by-side split view.`)},a=()=>{n(`Fullscreen unavailable — using windowed split mode.`)};return window.addEventListener(`clm:popup-blocked`,r),window.addEventListener(`clm:viewport-tile-requested`,i),window.addEventListener(`clm:fullscreen-denied`,a),()=>{window.removeEventListener(`clm:popup-blocked`,r),window.removeEventListener(`clm:viewport-tile-requested`,i),window.removeEventListener(`clm:fullscreen-denied`,a),e&&clearTimeout(e)}},[]),e?(0,q.jsxs)(`div`,{className:`popup-blocked-toast`,"data-testid":`popup-blocked`,role:`alert`,style:{position:`fixed`,bottom:`28px`,right:`24px`,zIndex:999999,backgroundColor:`var(--vscode-notifications-background, #252526)`,color:`var(--vscode-notifications-foreground, #cccccc)`,border:`1px solid var(--vscode-notifications-border, #007acc)`,borderRadius:`4px`,boxShadow:`0 4px 16px rgba(0, 0, 0, 0.6)`,padding:`10px 16px`,display:`flex`,alignItems:`center`,gap:`10px`,fontSize:`12px`,maxWidth:`420px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`14px`},children:`⚠️`}),(0,q.jsx)(`span`,{children:e}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>t(null),style:{background:`none`,border:`none`,color:`#888`,cursor:`pointer`,marginLeft:`auto`,fontSize:`14px`,padding:`0 4px`},"aria-label":`Close notification`,children:`✕`})]}):null},Wt=()=>{let[e,t]=(0,K.useState)({place_alpha_ready:{id:`place_alpha_ready`,name:`P_alpha (Edge Ingestion)`,node:`Node Alpha (Edge)`,tokens:4,locked:0,weight:1,color:`#4ec9b0`},place_beta_gpu_queue:{id:`place_beta_gpu_queue`,name:`P_beta (GPU Worker)`,node:`Node Beta (GPU)`,tokens:1,locked:0,weight:1,color:`#75beff`},place_gamma_archive:{id:`place_gamma_archive`,name:`P_gamma (Consensus CAS)`,node:`Node Gamma (Archive)`,tokens:1,locked:0,weight:1,color:`#c586c0`}}),[n,r]=(0,K.useState)(null),[i,a]=(0,K.useState)(0),[o,s]=(0,K.useState)([`CPN VM initialized across 3 distributed nodes.`,`Noetherian S-invariant x^T D = 0 active.`]),c=(0,K.useRef)(null),l=Object.values(e).reduce((e,t)=>e+t.weight*(t.tokens+t.locked),0)+i,u=l-6,d=u===0;(0,K.useEffect)(()=>{if(!n)return;let e=performance.now(),i=a=>{let o=a-e,l=Math.min(1,o/1200);r(e=>e?{...e,progress:l}:null),l<1?c.current=requestAnimationFrame(i):(t(e=>{let t=e[n.from],r=e[n.to];return{...e,[n.from]:{...t,locked:Math.max(0,t.locked-1)},[n.to]:{...r,tokens:r.tokens+1}}}),s(e=>[`[Phase 2: COMMIT] Token materialized on ${n.to}. Ack verified.`,...e.slice(0,5)]),r(null))};return c.current=requestAnimationFrame(i),()=>{c.current&&cancelAnimationFrame(c.current)}},[n?.id]);let f=(i,a)=>{if(n)return;let o=e[i];if(!o||o.tokens<=0)return;let c=`tx_${Date.now().toString(36)}`;t(e=>({...e,[i]:{...e[i],tokens:e[i].tokens-1,locked:e[i].locked+1}})),s(e=>[`[Phase 1: PREPARE] Locked token on ${i}. Signed MigratoryTokenPackage dispatched.`,...e.slice(0,5)]),r({id:c,from:i,to:a,phase:`PREPARE`,progress:0})};return(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`12px`,padding:`12px`,backgroundColor:`#181818`,borderRadius:`6px`,border:`1px solid rgba(255, 255, 255, 0.08)`,color:`#cccccc`,fontFamily:`var(--vscode-font-family, system-ui, sans-serif)`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`8px 12px`,borderRadius:`4px`,backgroundColor:d?`rgba(78, 201, 176, 0.1)`:`rgba(241, 76, 76, 0.15)`,border:`1px solid ${d?`rgba(78, 201, 176, 0.4)`:`rgba(241, 76, 76, 0.5)`}`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`2px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`10px`,textTransform:`uppercase`,letterSpacing:`0.5px`,color:`#888888`},children:`Global Noetherian Invariant Meter (INV-260-02)`}),(0,q.jsx)(`span`,{style:{fontSize:`14px`,fontWeight:600,color:d?`#4ec9b0`:`#f14c4c`},children:d?`✓ xᵀ D ≡ 0ᵀ (Strictly Conserved)`:`⚠️ Noetherian Divergence: Delta = ${u>0?`+`:``}${u}`})]}),(0,q.jsxs)(`div`,{style:{textAlign:`right`},children:[(0,q.jsx)(`span`,{style:{fontSize:`11px`,color:`#888888`},children:`Global Energy xᵀ M: `}),(0,q.jsx)(`strong`,{style:{fontSize:`14px`,color:`#ffffff`},children:l}),(0,q.jsxs)(`span`,{style:{fontSize:`10px`,color:`#888888`,marginLeft:`4px`},children:[`(Base: `,6,`)`]})]})]}),(0,q.jsx)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(3, 1fr)`,gap:`10px`},children:Object.values(e).map(e=>(0,q.jsxs)(`div`,{style:{padding:`10px`,borderRadius:`4px`,backgroundColor:`rgba(255, 255, 255, 0.03)`,border:`1px solid ${e.color}44`,display:`flex`,flexDirection:`column`,gap:`6px`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,q.jsx)(`strong`,{style:{fontSize:`12px`,color:e.color},children:e.name}),(0,q.jsx)(`span`,{style:{fontSize:`10px`,color:`#888888`},children:e.node})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`baseline`,gap:`8px`,marginTop:`4px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`20px`,fontWeight:700,color:`#ffffff`},children:e.tokens}),(0,q.jsx)(`span`,{style:{fontSize:`11px`,color:`#888888`},children:`active tokens`})]}),e.locked>0&&(0,q.jsxs)(`div`,{style:{fontSize:`10px`,color:`#ce9178`,display:`flex`,alignItems:`center`,gap:`4px`,backgroundColor:`rgba(206, 145, 120, 0.15)`,padding:`2px 6px`,borderRadius:`3px`},children:[(0,q.jsx)(`span`,{children:`🔒`}),` `,e.locked,` locked in-flight (INV-260-01)`]})]},e.id))}),(0,q.jsxs)(`div`,{style:{position:`relative`,height:`36px`,backgroundColor:`rgba(0, 0, 0, 0.3)`,borderRadius:`4px`,border:`1px dashed rgba(255, 255, 255, 0.1)`,display:`flex`,alignItems:`center`,padding:`0 16px`,overflow:`hidden`},children:[(0,q.jsx)(`span`,{style:{fontSize:`10px`,color:`#666666`},children:`Border Transition: Alpha (Edge) ⇄ Beta (GPU)`}),n&&(0,q.jsxs)(`div`,{style:{position:`absolute`,left:`${n.progress*80+10}%`,display:`flex`,alignItems:`center`,gap:`4px`,backgroundColor:`#4ec9b0`,color:`#000000`,padding:`2px 8px`,borderRadius:`12px`,fontSize:`10px`,fontWeight:700,boxShadow:`0 0 10px #4ec9b0`,transition:`transform 0.05s linear`},children:[(0,q.jsx)(`span`,{children:`●`}),` Token (Migrating)`]})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,q.jsx)(`button`,{onClick:()=>f(`place_alpha_ready`,`place_beta_gpu_queue`),disabled:!!n||e.place_alpha_ready.tokens<=0,style:{padding:`6px 12px`,backgroundColor:`#007acc`,border:`none`,borderRadius:`4px`,color:`#ffffff`,fontSize:`11px`,fontWeight:600,cursor:n?`not-allowed`:`pointer`,opacity:n?.6:1},children:`► Migrate Token: Alpha → Beta (2PC)`}),(0,q.jsx)(`button`,{onClick:()=>f(`place_beta_gpu_queue`,`place_gamma_archive`),disabled:!!n||e.place_beta_gpu_queue.tokens<=0,style:{padding:`6px 12px`,backgroundColor:`rgba(255, 255, 255, 0.08)`,border:`1px solid rgba(255, 255, 255, 0.15)`,borderRadius:`4px`,color:`#cccccc`,fontSize:`11px`,cursor:n?`not-allowed`:`pointer`,opacity:n?.6:1},children:`► Migrate Token: Beta → Gamma`}),(0,q.jsx)(`button`,{onClick:()=>{a(e=>+(e===0)),s(e=>[i===0?`⚠️ INJECTED DIVERGENCE: Synthetic token inflation (+1) triggered!`:`✓ Divergence cleared: cluster returned to conservation.`,...e.slice(0,5)])},style:{padding:`6px 12px`,backgroundColor:i>0?`rgba(241, 76, 76, 0.3)`:`rgba(255, 255, 255, 0.05)`,border:`1px solid rgba(241, 76, 76, 0.4)`,borderRadius:`4px`,color:`#f14c4c`,fontSize:`11px`,cursor:`pointer`,marginLeft:`auto`},children:i>0?`Clear Divergence`:`Inject Divergence (+1)`})]}),(0,q.jsx)(`div`,{style:{backgroundColor:`#121212`,padding:`6px 10px`,borderRadius:`4px`,fontSize:`10px`,fontFamily:`monospace`,color:`#888888`,display:`flex`,flexDirection:`column`,gap:`2px`,maxHeight:`70px`,overflowY:`auto`},children:o.map((e,t)=>(0,q.jsx)(`div`,{style:{color:e.includes(`⚠️`)?`#f14c4c`:e.includes(`✓`)?`#4ec9b0`:`#888888`},children:e},t))})]})},Gt=[{id:`node-studio`,name:`Studio Workbench (Local)`,role:`Coordinator & UI Membrane`,did:`did:pkc:studio-coordinator-9x2k`,icon:`💻`,x:250,y:90,status:`online`,services:[`service.pkc.studio.ui`,`service.pkc.satori.gateway`],activeFibers:3,latencyMs:0},{id:`node-alpha`,name:`Node Alpha (Edge Ingestion)`,role:`Sensor & Input Ingestion`,did:`did:pkc:alpha-edge-ingestion-4m7p`,icon:`🌐`,x:100,y:220,status:`online`,services:[`service.pkc.sensor.stream`,`service.pkc.vfs.storage`],activeFibers:2,latencyMs:14},{id:`node-beta`,name:`Node Beta (GPU Worker)`,role:`DeepSeek-R1 Inference Cluster`,did:`did:pkc:beta-gpu-inference-8v3q`,icon:`⚡`,x:400,y:220,status:`online`,services:[`service.pkc.llm.inference`,`service.pkc.matrix.mult`],activeFibers:5,latencyMs:22},{id:`node-gamma`,name:`Node Gamma (Consensus Archive)`,role:`TriDb CAS & Maxwell Consensus`,did:`did:pkc:gamma-consensus-archive-2l9k`,icon:`🏛️`,x:250,y:350,status:`online`,services:[`service.pkc.tridb.crdt`,`service.pkc.noetherian.auditor`],activeFibers:1,latencyMs:18}],Kt=[{from:`node-studio`,to:`node-alpha`,protocol:`Noise_XX`,cipher:`ChaCha20-Poly1305`,latencyMs:14,health:`healthy`},{from:`node-studio`,to:`node-beta`,protocol:`Noise_XX`,cipher:`ChaCha20-Poly1305`,latencyMs:22,health:`healthy`},{from:`node-alpha`,to:`node-beta`,protocol:`Noise_XX`,cipher:`ChaCha20-Poly1305`,latencyMs:16,health:`healthy`},{from:`node-beta`,to:`node-gamma`,protocol:`Noise_XX`,cipher:`ChaCha20-Poly1305`,latencyMs:12,health:`healthy`},{from:`node-gamma`,to:`node-studio`,protocol:`Noise_XX`,cipher:`ChaCha20-Poly1305`,latencyMs:18,health:`healthy`}],qt=()=>{let[e,t]=(0,K.useState)(`topology`),[n,r]=(0,K.useState)(Gt),[i,a]=(0,K.useState)(Kt),[o,s]=(0,K.useState)(`node-beta`),[c,l]=(0,K.useState)(!1),u=n.find(e=>e.id===o)||n[0];return(0,q.jsxs)(`div`,{className:`mesh-topology-viewlet`,style:{display:`flex`,flexDirection:`column`,height:`100%`,backgroundColor:`#1e1e1e`,color:`#cccccc`,fontFamily:`var(--vscode-font-family, system-ui, sans-serif)`,overflow:`hidden`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`8px 14px`,borderBottom:`1px solid rgba(255, 255, 255, 0.08)`,backgroundColor:`#252526`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`12px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`13px`,fontWeight:600,color:`#ffffff`},children:`Autonomous Mesh Fabric & P2P Swarm`}),(0,q.jsxs)(`div`,{style:{display:`flex`,gap:`4px`,backgroundColor:`rgba(0,0,0,0.25)`,padding:`2px`,borderRadius:`4px`},children:[(0,q.jsx)(`button`,{onClick:()=>t(`topology`),style:{padding:`4px 10px`,fontSize:`11px`,fontWeight:e===`topology`?600:400,color:e===`topology`?`#ffffff`:`#888888`,backgroundColor:e===`topology`?`#37373d`:`transparent`,border:`none`,borderRadius:`3px`,cursor:`pointer`},children:`🕸️ Mesh Topology`}),(0,q.jsx)(`button`,{onClick:()=>t(`tokenFlow`),style:{padding:`4px 10px`,fontSize:`11px`,fontWeight:e===`tokenFlow`?600:400,color:e===`tokenFlow`?`#ffffff`:`#888888`,backgroundColor:e===`tokenFlow`?`#37373d`:`transparent`,border:`none`,borderRadius:`3px`,cursor:`pointer`},children:`🔄 CPN Token Migration Flow`})]})]}),(0,q.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:(0,q.jsx)(`button`,{onClick:()=>{l(!0),setTimeout(()=>{r(e=>e.map(e=>e.id===`node-studio`?e:{...e,latencyMs:Math.max(5,Math.round(e.latencyMs+(Math.random()*6-3)))})),a(e=>e.map(e=>({...e,latencyMs:Math.max(5,Math.round(e.latencyMs+(Math.random()*4-2)))}))),l(!1)},400)},disabled:c,style:{padding:`4px 10px`,fontSize:`11px`,backgroundColor:`rgba(255, 255, 255, 0.08)`,border:`1px solid rgba(255, 255, 255, 0.15)`,borderRadius:`3px`,color:`#75beff`,cursor:c?`not-allowed`:`pointer`},children:c?`Pinging...`:`⚡ Ping Mesh Peers`})})]}),(0,q.jsx)(`div`,{style:{flex:1,display:`flex`,overflow:`hidden`},children:e===`tokenFlow`?(0,q.jsx)(`div`,{style:{flex:1,padding:`16px`,overflowY:`auto`},children:(0,q.jsx)(Wt,{})}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{style:{flex:1,position:`relative`,backgroundColor:`#181818`,overflow:`hidden`},children:[(0,q.jsxs)(`svg`,{width:`100%`,height:`100%`,viewBox:`0 0 500 450`,style:{display:`block`},children:[(0,q.jsxs)(`defs`,{children:[(0,q.jsxs)(`linearGradient`,{id:`linkGrad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,q.jsx)(`stop`,{offset:`0%`,stopColor:`#4ec9b0`,stopOpacity:`0.6`}),(0,q.jsx)(`stop`,{offset:`100%`,stopColor:`#75beff`,stopOpacity:`0.6`})]}),(0,q.jsxs)(`filter`,{id:`glow`,children:[(0,q.jsx)(`feGaussianBlur`,{stdDeviation:`3`,result:`coloredBlur`}),(0,q.jsxs)(`feMerge`,{children:[(0,q.jsx)(`feMergeNode`,{in:`coloredBlur`}),(0,q.jsx)(`feMergeNode`,{in:`SourceGraphic`})]})]})]}),i.map((e,t)=>{let r=n.find(t=>t.id===e.from),i=n.find(t=>t.id===e.to);if(!r||!i)return null;let a=(r.x+i.x)/2,o=(r.y+i.y)/2;return(0,q.jsxs)(`g`,{children:[(0,q.jsx)(`line`,{x1:r.x,y1:r.y,x2:i.x,y2:i.y,stroke:`url(#linkGrad)`,strokeWidth:`2`,strokeDasharray:`4 2`}),(0,q.jsx)(`rect`,{x:a-16,y:o-8,width:`32`,height:`16`,rx:`3`,fill:`#252526`,stroke:`rgba(255,255,255,0.15)`}),(0,q.jsxs)(`text`,{x:a,y:o+3,fill:`#75beff`,fontSize:`9`,fontWeight:`600`,textAnchor:`middle`,children:[e.latencyMs,`ms`]})]},t)}),n.map(e=>{let t=e.id===o;return(0,q.jsxs)(`g`,{onClick:()=>s(e.id),style:{cursor:`pointer`},children:[(0,q.jsx)(`circle`,{cx:e.x,cy:e.y,r:t?26:22,fill:t?`rgba(78, 201, 176, 0.25)`:`rgba(255, 255, 255, 0.05)`,stroke:t?`#4ec9b0`:`rgba(255, 255, 255, 0.2)`,strokeWidth:t?2.5:1.5,filter:t?`url(#glow)`:void 0}),(0,q.jsx)(`text`,{x:e.x,y:e.y+5,fontSize:`14`,textAnchor:`middle`,children:e.icon}),(0,q.jsx)(`text`,{x:e.x,y:e.y+36,fill:`#ffffff`,fontSize:`11`,fontWeight:t?`700`:`500`,textAnchor:`middle`,children:e.name.split(` (`)[0]})]},e.id)})]}),(0,q.jsxs)(`div`,{style:{position:`absolute`,bottom:`12px`,left:`12px`,backgroundColor:`rgba(0, 0, 0, 0.65)`,padding:`6px 10px`,borderRadius:`4px`,fontSize:`10px`,display:`flex`,gap:`12px`,backdropFilter:`blur(4px)`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`4px`},children:[(0,q.jsx)(`span`,{style:{width:`8px`,height:`8px`,borderRadius:`50%`,backgroundColor:`#4ec9b0`}}),(0,q.jsx)(`span`,{children:`Noise_XX Mutually Authenticated`})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`4px`},children:[(0,q.jsx)(`span`,{style:{color:`#75beff`},children:`⚡`}),(0,q.jsx)(`span`,{children:`Low Latency Overlay`})]})]})]}),(0,q.jsxs)(`div`,{style:{width:`280px`,borderLeft:`1px solid rgba(255, 255, 255, 0.08)`,backgroundColor:`#252526`,padding:`16px`,display:`flex`,flexDirection:`column`,gap:`12px`,overflowY:`auto`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`20px`},children:u.icon}),(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`},children:[(0,q.jsx)(`strong`,{style:{fontSize:`13px`,color:`#ffffff`},children:u.name}),(0,q.jsx)(`span`,{style:{fontSize:`10px`,color:`#888888`},children:u.role})]})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`3px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`10px`,textTransform:`uppercase`,color:`#888888`,letterSpacing:`0.4px`},children:`Sovereign Identity (did:pkc:*)`}),(0,q.jsx)(`span`,{style:{fontSize:`10px`,fontFamily:`monospace`,backgroundColor:`rgba(0, 0, 0, 0.3)`,padding:`4px 6px`,borderRadius:`3px`,wordBreak:`break-all`,color:`#4ec9b0`},children:u.did})]}),(0,q.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:`8px`},children:[(0,q.jsxs)(`div`,{style:{backgroundColor:`rgba(0,0,0,0.2)`,padding:`6px`,borderRadius:`3px`},children:[(0,q.jsx)(`div`,{style:{fontSize:`9px`,color:`#888888`},children:`Ping Latency`}),(0,q.jsx)(`div`,{style:{fontSize:`13px`,fontWeight:600,color:`#75beff`},children:u.latencyMs===0?`Local`:`${u.latencyMs} ms`})]}),(0,q.jsxs)(`div`,{style:{backgroundColor:`rgba(0,0,0,0.2)`,padding:`6px`,borderRadius:`3px`},children:[(0,q.jsx)(`div`,{style:{fontSize:`9px`,color:`#888888`},children:`Active Fibers`}),(0,q.jsxs)(`div`,{style:{fontSize:`13px`,fontWeight:600,color:`#c586c0`},children:[u.activeFibers,` fibers`]})]})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`4px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`10px`,textTransform:`uppercase`,color:`#888888`,letterSpacing:`0.4px`},children:`Federated Service Catalog (service.pkc.*)`}),(0,q.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`4px`},children:u.services.map((e,t)=>(0,q.jsx)(`div`,{style:{fontSize:`10px`,fontFamily:`monospace`,backgroundColor:`rgba(255, 255, 255, 0.04)`,border:`1px solid rgba(255, 255, 255, 0.08)`,padding:`4px 6px`,borderRadius:`3px`,color:`#dcdcaa`},children:e},t))})]})]})]})})]})},Jt=({formData:e,setFormData:t,onTestConnection:n,isTesting:r,testResult:i,autoSaveImagesPref:a,setAutoSaveImagesPref:o})=>{let[s,c]=(0,K.useState)(!1),l=Pe[e.provider];return(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`12px`},children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{style:{display:`block`,marginBottom:`4px`,fontWeight:600},children:`Inference Provider & Agency EOA:`}),(0,q.jsxs)(`select`,{id:`llm-provider-select`,value:e.provider,onChange:n=>{let r=n.target.value,i=Pe[r],a=e.baseUrl;r===`google`&&(!a||a.includes(`11434`))?a=i?.endpoint||`https://generativelanguage.googleapis.com/v1beta`:r===`ollama`&&(!a||a.includes(`googleapis.com`))&&(a=i?.endpoint||`http://127.0.0.1:11434`);let o=e.apiKey;r===`google`&&!o&&typeof window<`u`&&(o=localStorage.getItem(`clm:llm_config:google_api_key`)||``);let s=r===`google`?e.model.startsWith(`gemini-`)?e.model:`gemini-3.8-flash`:r===`ollama`&&e.model.startsWith(`gemini-`)?`qwen2.5-coder:7b`:e.model;t({...e,provider:r,model:s,baseUrl:a,apiKey:o,providerEoaDid:i?.did||`did:pkc:eoa:custom:${r}`,endpoint:a,apiToken:o})},style:{width:`100%`,padding:`6px`,backgroundColor:`var(--vscode-input-background, #3c3c3c)`,color:`#ccc`,border:`1px solid #3c3c3c`,borderRadius:`3px`},children:[(0,q.jsx)(`option`,{value:`ollama`,children:`Local Ollama Daemon (did:pkc:eoa:local:ollama-daemon)`}),(0,q.jsx)(`option`,{value:`google`,children:`Google Gemini AI Studio (did:pkc:eoa:google:ai-studio)`}),(0,q.jsx)(`option`,{value:`deepseek`,children:`DeepSeek API (did:pkc:eoa:deepseek:api)`}),(0,q.jsx)(`option`,{value:`openai`,children:`OpenAI API (did:pkc:eoa:openai:api)`}),(0,q.jsx)(`option`,{value:`anthropic`,children:`Anthropic Claude (did:pkc:eoa:anthropic:api)`}),(0,q.jsx)(`option`,{value:`custom`,children:`Custom Compatible Endpoint`})]}),(0,q.jsxs)(`div`,{style:{marginTop:`4px`,fontSize:`11px`,color:`#888`},children:[`Serving Agency: `,(0,q.jsx)(`code`,{style:{color:`#4daafc`},children:l?.did||e.providerEoaDid||`did:pkc:eoa:custom`}),` (`,l?.nature||`external`,`)`]})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{style:{display:`block`,marginBottom:`4px`,fontWeight:600},children:`Active Model:`}),e.provider===`google`?(0,q.jsxs)(`select`,{id:`llm-model-select`,value:e.model.startsWith(`gemini-`)?e.model:`gemini-3.8-flash`,onChange:n=>t({...e,model:n.target.value}),style:{width:`100%`,padding:`6px`,backgroundColor:`var(--vscode-input-background, #3c3c3c)`,color:`#ccc`,border:`1px solid #3c3c3c`,borderRadius:`3px`},children:[(0,q.jsx)(`option`,{value:`gemini-3.8-flash`,children:`Gemini 3.8 Flash (Thinking CoT, Recommended)`}),(0,q.jsx)(`option`,{value:`gemini-3.8-pro`,children:`Gemini 3.8 Pro (Complex Reasoning)`}),(0,q.jsx)(`option`,{value:`gemini-2.5-flash`,children:`Gemini 2.5 Flash (Low Latency)`}),(0,q.jsx)(`option`,{value:`gemini-1.5-pro`,children:`Gemini 1.5 Pro`})]}):(0,q.jsx)(`input`,{id:`llm-model-input`,type:`text`,value:e.model,onChange:n=>t({...e,model:n.target.value}),placeholder:e.provider===`ollama`?`qwen2.5-coder:7b`:`model-id`,style:{width:`100%`,padding:`6px`,backgroundColor:`var(--vscode-input-background, #3c3c3c)`,color:`#ccc`,border:`1px solid #3c3c3c`,borderRadius:`3px`}})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{style:{display:`block`,marginBottom:`4px`,fontWeight:600},children:`Base URL (EOA Gateway):`}),(0,q.jsx)(`input`,{id:`llm-base-url-input`,type:`text`,value:e.baseUrl,onChange:n=>t({...e,baseUrl:n.target.value,endpoint:n.target.value}),style:{width:`100%`,padding:`6px`,backgroundColor:`var(--vscode-input-background, #3c3c3c)`,color:`#ccc`,border:`1px solid #3c3c3c`,borderRadius:`3px`}})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`label`,{style:{display:`block`,marginBottom:`4px`,fontWeight:600},children:e.provider===`google`?`Google API Key (AuthN / AuthO Token):`:`API Key (AuthN Token):`}),(0,q.jsxs)(`div`,{style:{display:`flex`,gap:`6px`,alignItems:`center`},children:[(0,q.jsx)(`input`,{id:`llm-api-key-input`,type:s?`text`:`password`,value:e.apiKey,placeholder:e.provider===`google`?`AIzaSy...`:e.provider===`ollama`?`Not required for local daemon`:`sk-...`,onChange:n=>t({...e,apiKey:n.target.value,apiToken:n.target.value}),style:{flex:1,padding:`6px`,backgroundColor:`var(--vscode-input-background, #3c3c3c)`,color:`#ccc`,border:`1px solid #3c3c3c`,borderRadius:`3px`}}),(0,q.jsx)(`button`,{type:`button`,id:`toggle-token-visibility`,onClick:()=>c(!s),style:{padding:`6px 10px`,backgroundColor:`#3a3d41`,color:`#fff`,border:`none`,borderRadius:`3px`,cursor:`pointer`,fontSize:`11px`},children:s?`🙈 Hide`:`👁️ Show`})]}),e.provider===`google`&&(0,q.jsxs)(`div`,{style:{marginTop:`4px`,fontSize:`11px`,color:`#888`},children:[`AuthN credential provided by Google AI Studio.`,` `,(0,q.jsx)(`a`,{id:`google-ai-studio-link`,href:`https://aistudio.google.com/app/apikey`,target:`_blank`,rel:`noopener noreferrer`,style:{color:`#4daafc`,textDecoration:`underline`},children:`Get API Key from Google AI Studio`})]})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`label`,{style:{display:`block`,marginBottom:`4px`,fontWeight:600},children:[`Temperature (`,e.temperature,`):`]}),(0,q.jsx)(`input`,{type:`range`,min:`0`,max:`1`,step:`0.05`,value:e.temperature,onChange:n=>t({...e,temperature:Number(n.target.value)}),style:{width:`100%`,accentColor:`#007acc`}})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,padding:`6px 8px`,backgroundColor:`#161e27`,borderRadius:`4px`},children:[(0,q.jsx)(`input`,{type:`checkbox`,id:`auto-save-images-toggle`,checked:a,onChange:e=>{o(e.target.checked),typeof window<`u`&&localStorage.setItem(`clm:chat:auto_save_images_to_assets`,e.target.checked?`true`:`false`)}}),(0,q.jsx)(`label`,{htmlFor:`auto-save-images-toggle`,style:{fontSize:`11px`,color:`#e2e8f0`,cursor:`pointer`},children:`📁 Automatically save generated images to project assets/ directory`})]}),i&&(0,q.jsx)(`div`,{style:{padding:`8px`,borderRadius:`4px`,backgroundColor:`#1e1e1e`,fontSize:`11px`,border:`1px solid #333`},children:i})]})},Yt=({modelId:e,name:t,tag:n,description:r})=>{let i=B(F)===e;return(0,q.jsxs)(`div`,{className:`inbrowser-model-card`,style:{padding:`8px 12px`,backgroundColor:i?`#2d3748`:`#1e1e1e`,border:`1px solid ${i?`#4fd1c5`:`#333`}`,borderRadius:`4px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{style:{fontWeight:600,color:`#fff`},children:[t,` `,(0,q.jsxs)(`span`,{style:{fontSize:`10px`,color:`#89d185`},children:[`[`,n,`]`]})]}),(0,q.jsx)(`div`,{style:{fontSize:`11px`,color:`#aaa`,marginTop:`2px`},children:r})]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>F.set(e),style:{padding:`4px 10px`,backgroundColor:i?`#4fd1c5`:`#3c3c3c`,color:i?`#000`:`#fff`,border:`none`,borderRadius:`3px`,cursor:`pointer`,fontSize:`11px`,fontWeight:600},children:i?`Active`:`Select`})]})},Xt=[{modelId:`browser:smollm2-360m`,name:`1. SmolLM2-360M-Instruct`,tag:`Default Fallback`,description:`Ultra-compact edge reasoning (~230MB weights). 0ms local WebGPU latency.`},{modelId:`browser:qwen2.5-0.5b`,name:`2. Qwen2.5-0.5B-Instruct`,tag:`WebGPU / Wasm`,description:`Multilingual & code-specialized reasoning (~350MB weights).`},{modelId:`browser:litert:gemma-4-e2b`,name:`3. Google Gemma 4 E2B`,tag:`LiteRT-LM WebGPU`,description:`Next-gen high capability edge reasoning (~2.0GB weights).`},{modelId:`browser:window.ai`,name:`4. Chrome Built-in: Gemini Nano`,tag:`System Native`,description:`OS-integrated Gemini Nano via window.ai Prompt API (0MB download).`}],Zt=()=>{let[e,t]=(0,K.useState)({webGpu:!1,wasmSimd:!1,windowAi:!1}),[n,r]=(0,K.useState)(!1),[i,a]=(0,K.useState)(null);return(0,K.useEffect)(()=>{async function e(){let e=typeof navigator<`u`&&`gpu`in navigator,n=typeof window<`u`&&`ai`in window&&`languageModel`in window.ai,r=!1;try{r=WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch{r=!1}t({webGpu:!!e,wasmSimd:r,windowAi:!!n})}e()},[]),(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`16px`},children:[(0,q.jsxs)(`div`,{style:{padding:`10px 14px`,backgroundColor:`#252526`,borderRadius:`6px`,fontSize:`11px`,display:`flex`,justifyContent:`space-between`,border:`1px solid #333`},children:[(0,q.jsxs)(`span`,{children:[`WebGPU: `,(0,q.jsx)(`strong`,{style:{color:e.webGpu?`#89d185`:`#f14c4c`},children:e.webGpu?`Available`:`Unavailable`})]}),(0,q.jsxs)(`span`,{children:[`Wasm SIMD: `,(0,q.jsx)(`strong`,{style:{color:e.wasmSimd?`#89d185`:`#f14c4c`},children:e.wasmSimd?`Supported`:`Unsupported`})]}),(0,q.jsxs)(`span`,{children:[`window.ai: `,(0,q.jsx)(`strong`,{style:{color:e.windowAi?`#89d185`:`#cca700`},children:e.windowAi?`Enabled`:`Disabled`})]})]}),(0,q.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`10px`},children:Xt.map(e=>(0,q.jsx)(Yt,{...e},e.modelId))}),(0,q.jsxs)(`div`,{style:{borderTop:`1px solid #333`,paddingTop:`12px`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`div`,{style:{fontSize:`11px`,fontWeight:600,color:`#ccc`},children:`Storage Maintenance`}),(0,q.jsx)(`div`,{style:{fontSize:`10px`,color:`#888`},children:`Clear cached weights from IndexedDB and CacheStorage`})]}),(0,q.jsx)(`button`,{type:`button`,onClick:async()=>{r(!0),a(null);try{if(typeof caches<`u`){let e=await caches.keys();for(let t of e)(t.includes(`webllm`)||t.includes(`litert`)||t.includes(`mlc`))&&await caches.delete(t)}a(`In-browser model cache cleared successfully.`)}catch(e){a(`Failed to clear cache: ${e.message}`)}finally{r(!1)}},disabled:n,style:{padding:`4px 10px`,backgroundColor:`#3c3c3c`,color:`#fff`,border:`none`,borderRadius:`3px`,cursor:n?`not-allowed`:`pointer`,fontSize:`11px`},children:n?`Clearing...`:`Clear Model Cache`})]}),i&&(0,q.jsx)(`div`,{style:{fontSize:`11px`,color:`#4ec9b0`,marginTop:`-6px`},children:i})]})},Qt=()=>(0,q.jsxs)(`div`,{id:`inbrowser-guide`,style:{padding:`12px`,backgroundColor:`#1b2430`,borderRadius:`4px`,border:`1px solid #234`},children:[(0,q.jsx)(`div`,{style:{fontWeight:600,marginBottom:`8px`,color:`#63b3ed`,fontSize:`12px`},children:`📖 User Guide: In-Browser Models & First-Launch Setup`}),(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`8px`,fontSize:`11px`,color:`#cbd5e0`},children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`strong`,{style:{color:`#fff`},children:`1. Zero-Friction Automatic First-Launch:`}),(0,q.jsxs)(`div`,{style:{marginTop:`2px`,paddingLeft:`8px`},children:[`• On your first visit, the Studio automatically begins caching `,(0,q.jsx)(`em`,{children:`SmolLM2-360M`}),` (~230MB) in the background.`,(0,q.jsx)(`br`,{}),`• Once cached in browser OPFS/CacheStorage, it executes with 0ms latency and 100% offline sovereignty.`]})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`strong`,{style:{color:`#fff`},children:`2. Google AI Edge LiteRT-LM (Gemma 4 E2B):`}),(0,q.jsxs)(`div`,{style:{marginTop:`2px`,paddingLeft:`8px`},children:[`• Runs Google's official `,(0,q.jsx)(`code`,{style:{backgroundColor:`#111`,padding:`1px 4px`},children:`.litertlm`}),` single-file container via WebGPU.`,(0,q.jsx)(`br`,{}),`• Gemma 4 E2B offers state-of-the-art 2B reasoning client-side. Click `,(0,q.jsx)(`em`,{children:`Preload Now`}),` above to cache the 2.0GB package.`]})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`strong`,{style:{color:`#fff`},children:`3. Enabling Chrome Built-in Prompt API (Gemini Nano):`}),(0,q.jsxs)(`div`,{style:{marginTop:`2px`,paddingLeft:`8px`},children:[`• Open `,(0,q.jsx)(`code`,{style:{backgroundColor:`#111`,padding:`1px 4px`},children:`chrome://flags/#prompt-api-for-gemini-nano`}),` and set to `,(0,q.jsx)(`em`,{children:`Enabled`}),`.`,(0,q.jsx)(`br`,{}),`• Open `,(0,q.jsx)(`code`,{style:{backgroundColor:`#111`,padding:`1px 4px`},children:`chrome://flags/#optimization-guide-on-device-model`}),` and set to `,(0,q.jsx)(`em`,{children:`Enabled BypassPerfRequirement`}),`.`,(0,q.jsx)(`br`,{}),`• Relaunch Chrome. Gemini Nano executes with 0 downloads!`]})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`strong`,{style:{color:`#fff`},children:`4. Local Host Models (Ollama Daemon):`}),(0,q.jsxs)(`div`,{style:{marginTop:`2px`,paddingLeft:`8px`},children:[`• Run `,(0,q.jsx)(`code`,{style:{backgroundColor:`#111`,padding:`1px 4px`},children:`ollama run qwen2.5:0.5b`}),` in terminal.`,(0,q.jsx)(`br`,{}),`• The Studio Chatbot automatically discovers new models on port 11434 with zero configuration.`]})]})]})]}),$t=({isOpen:e,onClose:t})=>{let[n,r]=(0,K.useState)(`remote`),i=B(E),[a,o]=(0,K.useState)(Me),[s,c]=(0,K.useState)(()=>typeof window>`u`||localStorage.getItem(`clm:chat:auto_save_images_to_assets`)!==`false`),[l,u]=(0,K.useState)(!1),[d,f]=(0,K.useState)(null);if((0,K.useEffect)(()=>{e&&o(Me())},[e]),(0,K.useEffect)(()=>{let e=e=>{r(`remote`);let t=Me();t.provider=e.detail?.provider||`google`,o(t),setTimeout(()=>document.getElementById(`llm-api-key-input`)?.focus(),60)};return window.addEventListener(`clm:open-llm-settings`,e),()=>window.removeEventListener(`clm:open-llm-settings`,e)},[]),!e)return null;let p=async()=>{u(!0),f(null);try{if(a.provider===`ollama`){let e=await fetch(`/api/llm/ollama/tags`);if(e.ok){let t=await e.json();f(`✓ Ollama connected (${t.models?.length||0} models available)`)}else f(`✖ Ollama returned HTTP ${e.status}`)}else if(a.provider===`google`){if(!a.apiKey||!a.apiKey.trim()){f(`✖ Please enter an API key before testing`);return}let e=await fetch(`/api/llm/google/models`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({apiKey:a.apiKey.trim(),baseUrl:a.baseUrl||`https://generativelanguage.googleapis.com/v1beta`})}),t=await e.json();if(e.ok&&t.models){let e=t.models.map(e=>e.name.replace(/^models\//,``)).filter(e=>e.includes(`gemini`));if(f(`✓ Google Gemini Provider EOA verified! Authorized: ${e.slice(0,3).join(`, `)}${e.length>3?`...`:``}`),typeof window<`u`){localStorage.setItem(`clm:llm_config:google_available_models`,JSON.stringify(e));let t=Ae(`did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK`,`google`)||Ie(`google`,a.apiKey,a.baseUrl);t.authN.isValidated=!0,t.authO.allowedModels=e,t.authO.vcardPreGateVerified=!0,t.authO.verifiedAt=new Date().toISOString(),Le(Re,t)}}else{let n=t.error?.message||`HTTP ${e.status}`;f(`✖ Authentication failed: ${n}`)}}else{if(!a.apiKey&&a.provider!==`custom`){f(`✖ Please enter an API key for ${a.provider}`);return}f(`✓ Provider ${a.provider} configuration recorded`)}}catch(e){f(`✖ Probe failed: ${e.message}`)}finally{u(!1)}};return(0,q.jsx)(`div`,{id:`llm-settings-modal-backdrop`,style:{position:`fixed`,inset:0,backgroundColor:`rgba(0,0,0,0.6)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:9999},onClick:e=>e.target===e.currentTarget&&t(),children:(0,q.jsxs)(`div`,{id:`llm-settings-modal`,style:{width:`580px`,maxHeight:`85vh`,backgroundColor:`#252526`,borderRadius:`6px`,border:`1px solid #3c3c3c`,boxShadow:`0 8px 24px rgba(0,0,0,0.5)`,display:`flex`,flexDirection:`column`,overflow:`hidden`,color:`#cccccc`,fontSize:`12px`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`12px 16px`,borderBottom:`1px solid #333`},children:[(0,q.jsx)(`div`,{style:{fontWeight:600,fontSize:`13px`,color:`#fff`},children:`Language Model & Inference Settings`}),(0,q.jsx)(`button`,{type:`button`,onClick:t,style:{background:`none`,border:`none`,color:`#888`,cursor:`pointer`,fontSize:`16px`},children:`✕`})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,borderBottom:`1px solid #333`,backgroundColor:`#1e1e1e`},children:[(0,q.jsx)(`button`,{type:`button`,id:`tab-remote-llm`,onClick:()=>r(`remote`),style:{flex:1,padding:`8px 12px`,border:`none`,background:n===`remote`?`#252526`:`transparent`,color:n===`remote`?`#fff`:`#888`,fontWeight:n===`remote`?600:400,cursor:`pointer`,borderBottom:n===`remote`?`2px solid #007acc`:`none`},children:`☁️ Remote & Local Host (Provider EOAs)`}),(0,q.jsx)(`button`,{type:`button`,id:`tab-inbrowser-llm`,onClick:()=>r(`inbrowser`),style:{flex:1,padding:`8px 12px`,border:`none`,background:n===`inbrowser`?`#252526`:`transparent`,color:n===`inbrowser`?`#fff`:`#888`,fontWeight:n===`inbrowser`?600:400,cursor:`pointer`,borderBottom:n===`inbrowser`?`2px solid #89d185`:`none`},children:`⚡ In-Browser Triad & Guide`})]}),(0,q.jsx)(`div`,{style:{flex:1,overflowY:`auto`,padding:`16px`},children:n===`remote`?(0,q.jsx)(Jt,{formData:a,setFormData:o,availableModels:i.models||[],ollamaStatus:i,onTestConnection:p,isTesting:l,testResult:d,autoSaveImagesPref:s,setAutoSaveImagesPref:c}):(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`16px`},children:[(0,q.jsx)(Zt,{}),(0,q.jsx)(Qt,{})]})}),(0,q.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,padding:`10px 16px`,borderTop:`1px solid #333`,backgroundColor:`#1e1e1e`},children:[n===`remote`?(0,q.jsx)(`button`,{type:`button`,id:`test-connection-btn`,onClick:p,disabled:l,style:{padding:`6px 12px`,backgroundColor:`transparent`,color:`#fff`,border:`1px solid #555`,borderRadius:`3px`,cursor:`pointer`,fontSize:`11px`},children:l?`Testing...`:`Test Connection`}):(0,q.jsx)(`div`,{style:{fontSize:`11px`,color:`#888`},children:`All 4 In-Browser models run locally with zero server dependency.`}),(0,q.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[(0,q.jsx)(`button`,{type:`button`,onClick:t,style:{padding:`6px 12px`,backgroundColor:`transparent`,color:`#fff`,border:`none`,cursor:`pointer`,fontSize:`11px`},children:`Close`}),n===`remote`&&(0,q.jsx)(`button`,{type:`button`,id:`save-llm-settings-btn`,onClick:()=>{let e=a.provider===`google`?a.model.startsWith(`gemini-`)?a.model:`gemini-3.8-flash`:a.provider===`ollama`&&a.model.startsWith(`gemini-`)?`qwen2.5-coder:7b`:a.model,n=a.provider===`google`?`gemini:${e}`:`${a.provider}:${e}`;if(typeof window<`u`){localStorage.setItem(`clm:chat:provider`,a.provider),localStorage.setItem(`clm:chat:model`,e),localStorage.setItem(`clm:chat:active_model`,n),localStorage.setItem(`clm:chat:endpoint`,a.baseUrl),localStorage.setItem(`clm:chat:api_token`,a.apiKey),localStorage.setItem(`clm:chat:temperature`,String(a.temperature)),localStorage.setItem(`clm:chat:auto_save_images_to_assets`,s?`true`:`false`);let t=Ae(`did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK`,a.provider)||Ie(a.provider,a.apiKey,a.baseUrl);t.authN.token=a.apiKey,t.agencyEoa.endpoint=a.baseUrl,a.providerEoaDid&&(t.agencyEoa.did=a.providerEoaDid),Le(Re,t)}F.set(n),t()},style:{padding:`6px 14px`,backgroundColor:`#007acc`,color:`#fff`,border:`none`,borderRadius:`3px`,cursor:`pointer`,fontWeight:600,fontSize:`11px`},children:`Save Changes`})]})]})]})})};function en(e){if(!e||e.length<16)return!1;let t=new TextDecoder(`utf-8`).decode(e.subarray(0,16));return t.startsWith(`SQLite format 3\0`)||t.startsWith(`SQLite format 3`)}async function tn(e,t){let{compilePortableSqlite:n}=await s(async()=>{let{compilePortableSqlite:e}=await import(`./vendor-clm-kernel.Bvk3XHk2.js`).then(e=>e.a);return{compilePortableSqlite:e}},__vite__mapDeps([2,1,3]));return n(e,{exportedAt:new Date().toISOString(),...t})}async function nn(e){let{parsePortableSqlite:t}=await s(async()=>{let{parsePortableSqlite:e}=await import(`./vendor-clm-kernel.Bvk3XHk2.js`).then(e=>e.a);return{parsePortableSqlite:e}},__vite__mapDeps([2,1,3]));return t(e)}async function rn(){let e=z.get(),t=new Map;for(let n of Object.values(e))n&&n.hash&&!t.has(n.hash)&&t.set(n.hash,{hash:n.hash,content:typeof n.content==`string`?n.content:n.content instanceof Uint8Array?new TextDecoder(`utf-8`).decode(n.content):``,handle:n.handle,path:n.path,created_at:new Date().toISOString()});try{let e=l.storageBackend.list();for(let n of e){let e=n.hash.asHex();t.has(e)||t.set(e,{hash:e,content:JSON.stringify(n.toJSON()),created_at:new Date().toISOString()})}}catch{}let n=Array.from(t.values()),r=new Date,i=e=>e.toString().padStart(2,`0`),a=`clm_mcard_workspace_${`${r.getFullYear()}${i(r.getMonth()+1)}${i(r.getDate())}_${i(r.getHours())}${i(r.getMinutes())}${i(r.getSeconds())}`}.db`,o,c=(typeof l.exportHistory==`function`?l.exportHistory():[]).map(e=>({handle:e.handle,previous_hash:e.previousHash,changed_at:e.changedAt})),u=null;try{o=await tn(n,{history:c})}catch(e){u=e}let d=null;if(o===void 0&&typeof window<`u`&&typeof fetch==`function`){console.warn(`[databaseSyncService] local export unavailable, using the server route:`,u);try{let e=await fetch(V(`vfs_db_export`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({cards:n,history:c})});if(e.ok)o=new Uint8Array(await e.arrayBuffer());else throw Error(`Export API returned HTTP ${e.status}`)}catch(e){d=e,console.warn(`[databaseSyncService] Export API fetch failed, attempting cached snapshot fallback:`,e);let{getSqliteBytesFromIndexedDb:t}=await s(async()=>{let{getSqliteBytesFromIndexedDb:e}=await import(`./vfsPersistence.BuhXYeSb.js`).then(e=>e.i);return{getSqliteBytesFromIndexedDb:e}},__vite__mapDeps([0,1,2,3,4,5,6,7])),r=await t();if(r&&en(r))o=r;else try{o=await tn(n,{history:c})}catch{}}}if(o===void 0){let e=[u?`local export failed: ${u instanceof Error?u.message:String(u)}`:null,d?`server fallback failed: ${d instanceof Error?d.message:String(d)}`:null].filter(Boolean).join(`; `);throw Error(`Offline Export Failed: ${e||`neither local engine nor server route could export`}`)}if(!en(o))throw Error(`INV-287-01 Violation: Exported database bytes do not conform to SQLite 3 binary header.`);return{bytes:o,filename:a}}async function an(e,t={mode:`mount`,rootPrefix:`imported/backup_1/`}){if(!en(e))throw Error(`INV-288-01: Corrupted or non-SQLite database file (magic bytes mismatch)`);let n;if(typeof window<`u`&&typeof fetch==`function`&&!{}.VITEST){let t=await fetch(V(`vfs_db_import`),{method:`POST`,headers:{"Content-Type":`application/x-sqlite3`},body:e});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error||`Import endpoint failed with HTTP ${t.status}`)}n=await t.json()}else n=await nn(e);let{cards:s,handles:c}=n;if(!s||!Array.isArray(s))throw Error(`INV-288-01: Invalid database schema — missing card table`);for(let e of s){if(!e.hash||typeof e.hash!=`string`)throw Error(`INV-288-01: Malformed card record missing hash`);if(!/^[0-9a-fA-F]{64}$/.test(e.hash))throw Error(`INV-288-01: Invalid cryptographic hash format: '${e.hash}'`)}let u=t.mode||`mount`,d=0,f=0,p=[],m=z.get(),h=new Set(Object.keys(m)),g=r.create(`did:key:z6MkhaXgBZDvotDkL5257faiz48Z8x28qqwjp64guC54Po39`),_=e=>{let t=typeof e.content==`string`?e.content:new TextDecoder(`utf-8`).decode(e.content),n;try{n=JSON.parse(t)}catch{return{content:t}}if(!n||typeof n!=`object`||!(`payload`in n||`uri`in n||`hash`in n))return{content:t};if(typeof n.uri!=`string`||typeof n.hash!=`string`||!(`payload`in n))throw Error(`Malformed serialized MCard`);let r=o.fromJSON(n),a=i.parse(e.hash);if(!r.hash.equals(a))throw Error(`Serialized MCard hash does not match the database row`);if(!o.create(r.uri,r.payload,r.author,r.sequence).hash.equals(a))throw Error(`Serialized MCard payload does not match its content hash`);return{content:r.payload.kind===`text`?r.payload.value:r.content,original:r}},v=(e,t)=>t.original?(l.storageBackend.put(t.original.hash,t.original),t.original):l.writeFile(e,t.content,g),y=(t.rootPrefix||`imported/backup_1/`).replace(/^\/+/,``).replace(/\/+$/,``),b=`${y}/`,x=`${y.replace(/\//g,`:`)}:`;if(u===`mount`)for(let e of s)try{let t=_(e),n=t.content,r=(c||[]).filter(t=>t.hash===e.hash);if(r.length===0){let n=`${b}card_${e.hash.slice(0,8)}.json`,r=v(n,t);t.original&&l.storageBackend.registerHandle(a.fromPath(n),r.hash),d++}else for(let e of r){let r=String(e.handle),i=`${x}${r.replace(/\//g,`:`)}`,o=`${b}${r.replace(/:/g,`/`)}`;if(h.has(i)||h.has(o)){p.push({handle:i,reason:`Unexpected collision in scoped root mount`});continue}let s=v(o,t),c=s.hash;l.storageBackend.registerHandle(a.parse(i),c),l.storageBackend.registerHandle(a.parse(o),c);let u=Be(o),f=Ve({path:o,mimeType:u,content:n}),m={path:o,name:o.split(`/`).pop()||`file`,handle:i,hash:c.asHex(),content:n,mimeType:u,detectedType:f.detectedType,epistemicStatus:`definition`,readOnly:!1,subclass:f.subclass,coreCard:s,sizeBytes:n.length};z.setKey(o,m),z.setKey(i,m),d++}}catch(t){p.push({handle:e.hash,reason:t.message})}else for(let e of s)try{let t=_(e),n=t.content,r=(c||[]).filter(t=>t.hash===e.hash);if(r.length===0){let n=H.paths.import_fallback_template.replace(`{hash8}`,e.hash.slice(0,8)),r=v(n,t);t.original&&l.storageBackend.registerHandle(a.fromPath(n),r.hash),d++}else for(let i of r){let r=String(i.handle),o=r.includes(`/`)?r:r.replace(/:/g,`/`),s=m[o]||m[r];if(s&&s.hash===e.hash){f++;continue}let c=v(o,t),u=c.hash;l.storageBackend.registerHandle(a.parse(r),u),o!==r&&l.storageBackend.registerHandle(a.parse(o),u);let p=Be(o),h=Ve({path:o,mimeType:p,content:n}),g={path:o,name:o.split(`/`).pop()||`file`,handle:r,hash:u.asHex(),content:n,mimeType:p,detectedType:h.detectedType,epistemicStatus:`definition`,readOnly:!1,subclass:h.subclass,coreCard:c,sizeBytes:n.length};z.setKey(o,g),z.setKey(r,g),d++}}catch(t){p.push({handle:e.hash,reason:t.message})}let S=n.history||[];if(S.length>0){let e=[];for(let t of S){let n=t.previous_hash??t.hash,r=t.changed_at??t.created_at,i=String(t.handle??``);if(i&&n&&r){if(u===`mount`)e.push({handle:`${b}${i.replace(/:/g,`/`)}`,previousHash:n,changedAt:r},{handle:`${x}${i.replace(/\//g,`:`)}`,previousHash:n,changedAt:r});else{let t=i.includes(`/`)?i:i.replace(/:/g,`/`);e.push({handle:i,previousHash:n,changedAt:r}),t!==i&&e.push({handle:t,previousHash:n,changedAt:r})}}}try{l.importHistory?.(e)}catch(e){console.warn(`[databaseSyncService] Failed to replay handle_history into VFS:`,e)}}return Ue(),{imported:d,skipped:f,rejected:p,mode:u}}var on=({isOpen:e,onClose:t})=>{let[n,r]=(0,K.useState)(null),[i,a]=(0,K.useState)(null),[o,s]=(0,K.useState)(`mount`),[c,l]=(0,K.useState)(`imported/backup_1/`),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(!1),[m,h]=(0,K.useState)(null),[g,_]=(0,K.useState)(null),[v,y]=(0,K.useState)(null),[b,x]=(0,K.useState)(null),[S,C]=(0,K.useState)(null),[w,T]=(0,K.useState)(0),E=(0,K.useRef)(null);if(!e)return null;let D=()=>{r(null),a(null),h(null),_(null),y(null),x(null),C(null),T(0),d(!1),p(!1)},O=()=>{D(),t()},k=async(e,t)=>{d(!0),h(null),y(null),x(null),C(null),T(0);let n=en(e);if(y(n),!n){h(`INV-288-01 Violation: File is not a valid SQLite 3 database (corrupted magic bytes).`),d(!1);return}let r;try{let t=await fetch(V(`vfs_db_import`),{method:`POST`,headers:{"Content-Type":`application/x-sqlite3`},body:e});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error||`HTTP ${t.status}`)}r=await t.json(),x(!0)}catch(e){x(!1),h(`INV-288-01 Violation: Schema verification failed — ${e.message}`),d(!1);return}try{let e=r.cards||[];for(let t of e)if(!t.hash||!/^[0-9a-fA-F]{64}$/.test(t.hash))throw Error(`Invalid cryptographic hash format on card: '${t.hash}'`);T(e.length),C(!0)}catch(e){C(!1),h(`INV-288-01 Violation: Cryptographic verification rejected — ${e.message}`),d(!1);return}d(!1)},A=async e=>{let t=e.target.files?.[0];if(!t)return;r(t);let n=await t.arrayBuffer(),i=new Uint8Array(n);a(i),await k(i,t)},j=async e=>{e.preventDefault(),e.stopPropagation();let t=e.dataTransfer.files?.[0];if(!t)return;r(t);let n=await t.arrayBuffer(),i=new Uint8Array(n);a(i),await k(i,t)},M=async()=>{if(i&&v&&b&&S){p(!0),h(null);try{let e=await an(i,{mode:o,rootPrefix:o===`mount`?c:void 0});_(e)}catch(e){h(`Import failed: ${e.message}`)}finally{p(!1)}}},N=v===!0&&b===!0&&S===!0;return(0,q.jsx)(`div`,{className:`load-mcard-database-modal`,"data-testid":`db-import-modal`,style:{position:`fixed`,top:0,left:0,right:0,bottom:0,backgroundColor:`rgba(0, 0, 0, 0.65)`,backdropFilter:`blur(4px)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:9999},onClick:O,children:(0,q.jsxs)(`div`,{onClick:e=>e.stopPropagation(),style:{width:`560px`,backgroundColor:`#1e1e1e`,border:`1px solid #3c3c3c`,borderRadius:`8px`,boxShadow:`0 16px 36px rgba(0, 0, 0, 0.6)`,display:`flex`,flexDirection:`column`,overflow:`hidden`,color:`#cccccc`,fontFamily:`var(--vscode-font-family, sans-serif)`},children:[(0,q.jsxs)(`div`,{style:{padding:`14px 18px`,backgroundColor:`#252526`,borderBottom:`1px solid #333333`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`15px`},children:`📤`}),(0,q.jsx)(`span`,{style:{fontSize:`13px`,fontWeight:600,color:`#ffffff`,letterSpacing:`0.4px`},children:`Import Verified SQLite MCard Database`})]}),(0,q.jsx)(`button`,{onClick:O,style:{background:`none`,border:`none`,color:`#858585`,cursor:`pointer`,fontSize:`16px`},children:`✕`})]}),(0,q.jsx)(`div`,{style:{padding:`18px`,display:`flex`,flexDirection:`column`,gap:`16px`},children:g?(0,q.jsxs)(`div`,{style:{backgroundColor:`rgba(137, 209, 133, 0.12)`,border:`1px solid #89d185`,borderRadius:`6px`,padding:`16px`,display:`flex`,flexDirection:`column`,gap:`8px`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,color:`#89d185`,fontWeight:600},children:[(0,q.jsx)(`span`,{children:`✓`}),(0,q.jsx)(`span`,{children:`Database Successfully Ingested!`})]}),(0,q.jsxs)(`div`,{style:{fontSize:`12px`,color:`#dddddd`},children:[`Mode: `,(0,q.jsx)(`strong`,{children:g.mode===`mount`?`Scoped Root Mount`:`Direct Merge`})]}),(0,q.jsxs)(`div`,{style:{fontSize:`12px`,color:`#dddddd`},children:[`Cards Ingested: `,(0,q.jsx)(`strong`,{children:g.imported}),` | Skipped: `,(0,q.jsx)(`strong`,{children:g.skipped})]}),(0,q.jsx)(`button`,{onClick:O,style:{marginTop:`8px`,padding:`6px 14px`,backgroundColor:`#0e639c`,color:`#ffffff`,border:`none`,borderRadius:`3px`,cursor:`pointer`,alignSelf:`flex-start`},children:`Done`})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect=`copy`},onDrop:j,onClick:()=>E.current?.click(),style:{border:`2px dashed #444444`,borderRadius:`6px`,padding:`24px 16px`,textAlign:`center`,backgroundColor:`#252526`,cursor:`pointer`,transition:`border-color 0.2s`},children:[(0,q.jsx)(`input`,{ref:E,type:`file`,"data-testid":`import-file-input`,accept:`.db,.sqlite,.sqlite3,application/x-sqlite3`,onChange:A,style:{display:`none`}}),(0,q.jsx)(`div`,{style:{fontSize:`24px`,marginBottom:`6px`},children:`💾`}),(0,q.jsx)(`div`,{style:{fontSize:`13px`,color:`#ffffff`,fontWeight:500},children:n?n.name:`Drop SQLite .db file here or click to browse`}),(0,q.jsx)(`div`,{style:{fontSize:`11px`,color:`#858585`,marginTop:`4px`},children:`Accepts standard SQLite 3 binary files (*.db, *.sqlite, *.sqlite3)`})]}),(0,q.jsxs)(`div`,{"data-testid":`import-verify-checklist`,style:{backgroundColor:`#252526`,borderRadius:`6px`,border:`1px solid #333333`,padding:`12px 16px`,display:`flex`,flexDirection:`column`,gap:`8px`,fontSize:`12px`},children:[(0,q.jsx)(`div`,{style:{fontWeight:600,color:`#ffffff`,marginBottom:`2px`},children:`Pre-Ingestion Zero-Trust Verification (INV-288-01):`}),(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,q.jsx)(`span`,{children:v===!0?`✅`:v===!1?`❌`:`⚪`}),(0,q.jsxs)(`span`,{children:[`Valid SQLite 3 binary header (`,(0,q.jsx)(`code`,{children:`SQLite format 3\\0`}),`)`]})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,q.jsx)(`span`,{children:b===!0?`✅`:b===!1?`❌`:`⚪`}),(0,q.jsxs)(`span`,{children:[`Portable schema compliance (`,(0,q.jsx)(`code`,{children:`card`}),`, `,(0,q.jsx)(`code`,{children:`handle_registry`}),`, `,(0,q.jsx)(`code`,{children:`handle_history`}),`)`]})]}),(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,q.jsx)(`span`,{children:S===!0?`✅`:S===!1?`❌`:`⚪`}),(0,q.jsxs)(`span`,{children:[`Cryptographic hash verification `,w>0?`(${w}/${w} cards verified)`:``]})]})]}),m&&(0,q.jsx)(`div`,{style:{backgroundColor:`rgba(244, 135, 113, 0.15)`,border:`1px solid #f48771`,borderRadius:`4px`,padding:`8px 12px`,fontSize:`12px`,color:`#f48771`},children:m}),(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`10px`},children:[(0,q.jsx)(`div`,{style:{fontSize:`12px`,fontWeight:600,color:`#ffffff`},children:`Ingestion Strategy:`}),(0,q.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,fontSize:`12px`,cursor:`pointer`},children:[(0,q.jsx)(`input`,{type:`radio`,"data-testid":`import-mode-mount`,name:`importMode`,value:`mount`,checked:o===`mount`,onChange:()=>s(`mount`)}),(0,q.jsxs)(`span`,{children:[(0,q.jsx)(`strong`,{children:`Scoped Root Mount (Recommended)`}),` — Remap all handles under a namespace prefix with zero collisions (INV-288-02).`]})]}),o===`mount`&&(0,q.jsxs)(`div`,{style:{paddingLeft:`24px`,display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`11px`,color:`#858585`},children:`Root Prefix:`}),(0,q.jsx)(`input`,{"data-testid":`import-root-prefix`,type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`imported/backup_1/`,style:{padding:`4px 8px`,fontSize:`12px`,backgroundColor:`#3c3c3c`,border:`1px solid #555555`,borderRadius:`3px`,color:`#ffffff`,width:`200px`}})]}),(0,q.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,fontSize:`12px`,cursor:`pointer`},children:[(0,q.jsx)(`input`,{type:`radio`,"data-testid":`import-mode-merge`,name:`importMode`,value:`merge`,checked:o===`merge`,onChange:()=>s(`merge`)}),(0,q.jsxs)(`span`,{children:[(0,q.jsx)(`strong`,{children:`Direct Merge into Current Workspace`}),` — G-Set semilattice join (latest updated_at wins on conflicts).`]})]})]})]})}),!g&&(0,q.jsxs)(`div`,{style:{padding:`12px 18px`,backgroundColor:`#252526`,borderTop:`1px solid #333333`,display:`flex`,justifyContent:`flex-end`,gap:`8px`},children:[(0,q.jsx)(`button`,{onClick:O,style:{padding:`6px 14px`,backgroundColor:`transparent`,border:`1px solid #555555`,color:`#cccccc`,borderRadius:`3px`,cursor:`pointer`,fontSize:`12px`},children:`Cancel`}),(0,q.jsx)(`button`,{"data-testid":`import-confirm-btn`,disabled:!N||u||f,onClick:M,style:{padding:`6px 14px`,backgroundColor:N&&!u&&!f?`#0e639c`:`#333333`,color:N&&!u&&!f?`#ffffff`:`#777777`,border:`none`,borderRadius:`3px`,cursor:N&&!u&&!f?`pointer`:`not-allowed`,fontSize:`12px`,fontWeight:600},children:f?`Importing...`:`Import Verified Database`})]})]})})},sn=[{id:`cmd:clm:open_mcard`,category:`CLM`,label:`CLM: Open MCard in Card Panel...`,detail:`Browse and inspect computable_knowledge/ & assets/ via mcard://`},{id:`cmd:clm:fire_pcard`,category:`CLM`,label:`CLM: Fire PCard Process in CLM Viewlet...`,detail:`Execute runnable morphism with Cordis effect tracking & VCard Sandwich`},{id:`cmd:clm:inspect_vcard`,category:`CLM`,label:`CLM: Inspect VCard Execution Trace...`,detail:`Inspect Hoare Triple sandwich witness and Type Lattice meet (Meet != ⊥)`},{id:`cmd:timemachine:scrub`,category:`TimeMachine`,label:`TimeMachine: Scrub State to Snapshot...`,detail:`Deterministic replay and <1ms spatiotemporal inversion (CLM Path Inversion -p)`},{id:`cmd:koishi:chat`,category:`Koishi`,label:`Koishi: Open Conversational Console`,detail:`Satori conversational programming and DeepSeek harness`,shortcut:`Ctrl+~`},{id:`cmd:lattice:meet`,category:`Lattice`,label:`Lattice: Inspect Invariant Meet`,detail:`Evaluate Type Lattice Meet against system invariants`},{id:`cmd:view:sidebar`,category:`View`,label:`View: Toggle Primary Side Bar`,detail:`Toggle visibility of Explorer and Extension tree`,shortcut:`Cmd+B`},{id:`cmd:view:terminal`,category:`View`,label:`View: Toggle Terminal / Chat`,detail:`Toggle bottom panel drawer between PTY and WASM REPL`,shortcut:`Ctrl+~`},{id:`cmd:view:split`,category:`View`,label:`View: Split Editor`,detail:`Split editor grid side by side (Baldwin //)`,shortcut:`Cmd+\\`},{id:`cmd:dockview:depress`,category:`View`,label:`View: Depress DockView (Immerse in Sovereign Welcome Viewport)`,detail:`Hide multi-tab editor grid and immerse in Welcome Viewport with restore anchor`},{id:`cmd:dockview:restore`,category:`View`,label:`View: Restore Studio DockView (Return to Multi-Tab Layout)`,detail:`Restore complete DockView editor configuration and tab layout`},{id:`cmd:view:close_all_tabs`,category:`View`,label:`View: Close All Editor Tabs`,detail:`Close all open MCard tabs across the workbench`,shortcut:`Cmd+K Cmd+W`},{id:`cmd:view:close_other_tabs`,category:`View`,label:`View: Close Other Editor Tabs`,detail:`Close all tabs except the currently active MCard`},{id:`cmd:view:close_to_the_right`,category:`View`,label:`View: Close Tabs to the Right`,detail:`Close all tabs to the right of the active MCard`},{id:`cmd:file:save`,category:`File`,label:`File: Save MCard`,detail:`Commit MCard CAS and recompute BLAKE3 Merkle hash`,shortcut:`Cmd+S`},{id:`cmd:extensions:open`,category:`Extensions`,label:`Extensions: Open PCard Extension Gallery`,detail:`Browse PTR microkernel plugins, coeffect DAGs, and community morphisms`},{id:`cmd:settings:llm`,category:`Settings`,label:`Settings: Configure Remote LLM Engines`,detail:`Manage Ollama local auto-detection and DeepSeek/OpenAI API keys`},{id:`cmd:theme:dark_plus`,category:`Preferences`,label:`Preferences: Color Theme - VS Code Dark+`,detail:`Apply default dark theme (mcard:ui/theme/dark-default)`},{id:`cmd:theme:light_plus`,category:`Preferences`,label:`Preferences: Color Theme - VS Code Light+`,detail:`Apply clean high-contrast light theme (mcard:ui/theme/light-default)`},{id:`cmd:theme:nord`,category:`Preferences`,label:`Preferences: Color Theme - Nord Arctic`,detail:`Apply cool arctic bluish theme (mcard:ui/theme/nord)`},{id:`cmd:theme:tokyo_night`,category:`Preferences`,label:`Preferences: Color Theme - Tokyo Night`,detail:`Apply vibrant neon dark theme (mcard:ui/theme/tokyo-night)`},{id:`cmd:theme:catppuccin_mocha`,category:`Preferences`,label:`Preferences: Color Theme - Catppuccin Mocha`,detail:`Apply pastel soothing dark theme (mcard:ui/theme/catppuccin-mocha)`},{id:`cmd:density:compact`,category:`Preferences`,label:`Preferences: Display Density - Compact`,detail:`Dense high-information layout with 12px base text (mcard:ui/density/compact)`},{id:`cmd:density:comfortable`,category:`Preferences`,label:`Preferences: Display Density - Comfortable`,detail:`Balanced standard layout with 13px base text (mcard:ui/density/comfortable)`},{id:`cmd:density:spacious`,category:`Preferences`,label:`Preferences: Display Density - Spacious`,detail:`Generous presentation layout with 14px base text (mcard:ui/density/spacious)`}],cn=({isOpen:e,onClose:t,onExecuteCommand:n})=>{let[r,i]=(0,K.useState)(``),[a,o]=(0,K.useState)(0),s=(0,K.useRef)(null),c=(0,K.useRef)(null);(0,K.useEffect)(()=>{e&&(i(``),o(0),setTimeout(()=>s.current?.focus(),50))},[e]);let l=sn.filter(e=>{let t=r.trim().toLowerCase();return!t||e.label.toLowerCase().includes(t)||e.detail.toLowerCase().includes(t)||e.category.toLowerCase().includes(t)});(0,K.useEffect)(()=>{o(0)},[r]);let u=e=>{e.key===`ArrowDown`?(e.preventDefault(),o(e=>(e+1)%Math.max(1,l.length))):e.key===`ArrowUp`?(e.preventDefault(),o(e=>(e-1+l.length)%Math.max(1,l.length))):e.key===`Enter`?(e.preventDefault(),l[a]&&d(l[a])):e.key===`Escape`&&(e.preventDefault(),t())},d=e=>{try{v()?.api?.pushEvent(`command_executed`,{commandId:e.id,label:e.label})}catch{}t(),n&&n(e.id)};return e?(0,q.jsx)(`div`,{id:`command-palette-overlay`,className:`vscode-modal-overlay`,onClick:t,style:{position:`fixed`,top:0,left:0,right:0,bottom:0,backgroundColor:`rgba(0, 0, 0, 0.45)`,zIndex:1e3,display:`flex`,justifyContent:`center`,paddingTop:`60px`},children:(0,q.jsxs)(`div`,{id:`command-palette-modal`,onClick:e=>e.stopPropagation(),style:{width:`600px`,maxWidth:`90vw`,maxHeight:`440px`,backgroundColor:`var(--vscode-quickInput-background, #252526)`,color:`var(--vscode-quickInput-foreground, #cccccc)`,borderRadius:`6px`,boxShadow:`0 8px 32px rgba(0, 0, 0, 0.6)`,border:`1px solid var(--vscode-widget-border, #454545)`,display:`flex`,flexDirection:`column`,overflow:`hidden`,fontFamily:`var(--vscode-font-family)`},children:[(0,q.jsxs)(`div`,{style:{padding:`10px 12px`,borderBottom:`1px solid var(--vscode-input-border, #3c3c3c)`,display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,q.jsx)(`span`,{style:{color:`#007acc`,fontWeight:600,fontSize:`14px`},children:`>`}),(0,q.jsx)(`input`,{ref:s,id:`command-palette-input`,type:`text`,value:r,onChange:e=>i(e.target.value),onKeyDown:u,placeholder:`Type a command or search...`,"aria-label":`Command Palette Search Input`,style:{flex:1,backgroundColor:`transparent`,border:`none`,outline:`none`,color:`var(--vscode-input-foreground, #ffffff)`,fontSize:`13px`,fontFamily:`inherit`}})]}),(0,q.jsx)(`div`,{ref:c,id:`command-palette-list`,style:{flex:1,overflowY:`auto`,padding:`4px 0`},children:l.length===0?(0,q.jsx)(`div`,{style:{padding:`16px 20px`,color:`#888`,fontStyle:`italic`,fontSize:`12px`},children:`No matching commands found.`}):l.map((e,t)=>{let n=t===a;return(0,q.jsxs)(`div`,{className:`command-item ${n?`selected`:``}`,onClick:()=>d(e),onMouseEnter:()=>o(t),style:{padding:`8px 16px`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,cursor:`pointer`,backgroundColor:n?`var(--vscode-quickInputList-focusBackground, #094771)`:`transparent`,color:n?`var(--vscode-quickInputList-focusForeground, #ffffff)`:`var(--vscode-foreground, #cccccc)`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`2px`,overflow:`hidden`},children:[(0,q.jsx)(`span`,{style:{fontSize:`13px`,fontWeight:n?500:400},children:e.label}),(0,q.jsx)(`span`,{style:{fontSize:`11px`,opacity:n?.9:.6,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.detail})]}),e.shortcut&&(0,q.jsx)(`kbd`,{style:{backgroundColor:n?`rgba(255, 255, 255, 0.2)`:`rgba(255, 255, 255, 0.08)`,padding:`2px 6px`,borderRadius:`3px`,fontSize:`11px`,fontFamily:`monospace`,color:n?`#ffffff`:`#888`,marginLeft:`12px`,flexShrink:0},children:e.shortcut})]},e.id)})}),(0,q.jsxs)(`div`,{style:{padding:`6px 14px`,fontSize:`11px`,color:`rgba(255, 255, 255, 0.4)`,backgroundColor:`rgba(0, 0, 0, 0.2)`,borderTop:`1px solid rgba(255, 255, 255, 0.05)`,display:`flex`,justifyContent:`space-between`},children:[(0,q.jsx)(`span`,{children:`Use ↑↓ to navigate, Enter to run, Esc to dismiss`}),(0,q.jsx)(`span`,{children:`Reverse Trivium Active`})]})]})}):null},ln=C({});function un(){return Object.values(ln.get())}var dn=class e{static instance=null;static getInstance(){return e.instance||=new e,e.instance}search(e,t=50){let n=e.trim().toLowerCase(),r=this.getAllItems();return n?r.map(e=>{let t=this.computeFuzzyScore(e,n);return{...e,score:t}}).filter(e=>(e.score??0)>0).sort((e,t)=>(t.score??0)-(e.score??0)).slice(0,t):r.slice(0,t)}getAllItems(){let e=[],t=z.get();for(let n of Object.values(t)){let t=n.detectedType===`pcard`||n.subclass===`PCard`,r=n.detectedType===`vcard`||n.subclass===`VCard`;e.push({id:`mcard:${n.handle}`,label:n.name,description:n.path,detail:`MCard [${n.hash.slice(0,8)}] • ${n.mimeType||`application/octet-stream`}`,uri:`mcard://${n.path.startsWith(`/`)?n.path.slice(1):n.path}`,type:`mcard`,icon:`file-code`}),t&&e.push({id:`pcard:${n.handle}`,label:`${n.name} (PCard Morphism)`,description:`Fire Process • ${n.handle}`,detail:`PCard extends MCard • Prescribed Transition: clm:layer0:run`,uri:`mcard://${n.handle}?facet=pcard&action=run`,type:`pcard`,icon:`morphism`}),r&&e.push({id:`vcard:${n.handle}`,label:`${n.name} (VCard Trace)`,description:`Inspect Invariant Trace • ${n.handle}`,detail:`VCard extends PCard • Output: bool • Sandwich Witness`,uri:`mcard://${n.handle}?facet=vcard`,type:`vcard`,icon:`witness`})}for(let t of[{id:`trace-8f92a1c`,label:`trace-8f92a1c (Lattice Meet Proof)`,uri:`mcard://traces/trace-8f92a1c?facet=vcard`},{id:`trace-latest`,label:`trace-latest (MTR-1 Media Verdict)`,uri:`mcard://traces/trace-latest?facet=vcard`},{id:`trace-clm-bootstrap`,label:`trace-clm-bootstrap (Microkernel Invariants)`,uri:`mcard://traces/trace-clm-bootstrap?facet=vcard`}])e.push({id:t.id,label:t.label,description:`VCard Hoare Sandwich Correctness Trace`,detail:`Sandwich Trace: arr(V_pre) >>> first(PCard) >>> arr(V_post)`,uri:t.uri,type:`vcard`,icon:`witness`});for(let t of[{id:`cmd:clm:open_mcard`,label:`CLM: Open MCard in Card Panel...`,desc:`Browse and inspect computable_knowledge / assets`,uri:`command:clm.openMCard`},{id:`cmd:clm:fire_pcard`,label:`CLM: Fire PCard Process in CLM Viewlet...`,desc:`Execute state morphism with Cordis effect tracking`,uri:`command:clm.firePCard`},{id:`cmd:clm:inspect_vcard`,label:`CLM: Inspect VCard Execution Trace...`,desc:`View Hoare Triple sandwich witness and lattice meet`,uri:`command:clm.inspectVCard`},{id:`cmd:timemachine:scrub`,label:`TimeMachine: Scrub State to Snapshot...`,desc:`Deterministic replay and spatiotemporal inversion (<1ms)`,uri:`command:timemachine.scrub`},{id:`cmd:koishi:chat`,label:`Koishi: Open Conversational Console`,desc:`Satori conversational programming and DeepSeek harness`,uri:`command:koishi.chat`},{id:`cmd:lattice:meet`,label:`Lattice: Inspect Invariant Meet`,desc:`Verify type lattice meet is not bottom (Meet != ⊥)`,uri:`command:lattice.meet`},{id:`cmd:view:sidebar`,label:`View: Toggle Primary Side Bar (Cmd+B)`,desc:`Toggle visibility of the left side bar`,uri:`command:view.toggleSidebar`},{id:`cmd:view:terminal`,label:`View: Toggle Terminal / Chat (Ctrl+~)`,desc:`Toggle bottom terminal drawer and Koishi chat`,uri:`command:view.toggleTerminal`},{id:`cmd:view:split`,label:`View: Split Editor (Cmd+\\)`,desc:`Split editor grid side by side (Baldwin //)`,uri:`command:view.splitEditor`},{id:`cmd:file:save`,label:`File: Save MCard (Cmd+S)`,desc:`Commit MCard and recompute BLAKE3 Merkle hash`,uri:`command:file.save`}])e.push({id:t.id,label:t.label,description:t.desc,detail:`Reverse Trivium Action`,uri:t.uri,type:`command`,icon:`gear`});let n=un();for(let t of n)e.push({id:`transclusion:${t.subHandle}`,label:`${t.modality.toUpperCase()}: ${t.subHandle}`,description:`Transcluded in ${t.parentHandle} (L${t.lineRange[0]}–L${t.lineRange[1]})${t.symbols.length?` • `+t.symbols.join(`, `):``}`,detail:`Hash: ${t.contentHash.slice(0,16)} • Symbols: ${t.symbols.slice(0,5).join(`, `)||`none`}`,uri:`mcard://${t.subHandle}`,type:`transclusion`,icon:`symbol-misc`});return e}computeFuzzyScore(e,t){let n=e.label.toLowerCase(),r=e.description.toLowerCase(),i=e.uri.toLowerCase(),a=(e.detail||``).toLowerCase();if(n===t)return 1e3;if(n.startsWith(t))return 500+(100-t.length);if(n.includes(t))return 300-n.indexOf(t);if(r.includes(t))return 150-r.indexOf(t);if(a.includes(t))return 120-Math.min(50,a.indexOf(t));if(i.includes(t))return 100-i.indexOf(t);let o=0;for(let e=0;e<n.length&&o<t.length;e++)n[e]===t[o]&&o++;return o===t.length?50:0}}.getInstance(),fn=class{static _activeFibers=new Map;static verifyCoeffects(e,t){return{satisfied:!0,missing:[]}}static async dispatchPCard(e,t={}){let n=`fiber:${e.handle}:${Date.now()}`,r=t.disposables||new ne,i=e.coeffects||[`config.kernel`,`identity.did`];this._activeFibers.set(n,`LOADING`),this._activeFibers.set(n,`ACTIVE`),r.add(()=>{this._activeFibers.delete(n)});let a=await $e({pcard:{name:e.name,handle:e.handle,polynomialDegree:e.polynomialDegree??1,coeffects:i,execute:async t=>({mcardOut:`${e.handle}:out`,result:t,timestamp:Date.now()})},preCondition:{name:`CoeffectsSatisfied`,evaluate:()=>!0},postCondition:{name:`LatticeMeetConservation`,evaluate:()=>!0},telemetryInstrumenter:{startSandwichSpan:e=>tt.startSandwichSpan(e),recordStage:(e,t,n,r)=>tt.recordStage(e,t,n,r),endSpan:(e,t,n)=>tt.endSpan(e,t,n)}},t.input||{}),o=a.success?`COMPLETED`:`ROLLED_BACK`;return this._activeFibers.set(n,o),{success:a.success,state:o,output:a.output,traceId:a.trace.id,missingCoeffects:[],durationMs:a.trace.durationMs,error:a.error}}static getFiberState(e){return this._activeFibers.get(e)}},pn=class{static async dispatchLink(e){if(e.startsWith(`pcard://`)||e.startsWith(`vcard://`)){let t=e.split(`://`)[0];throw Error(`[MISU] Prohibited protocol '${t}:'. Only 'mcard://' is permitted.`)}if(!e.startsWith(`mcard://`))throw Error(`[MISU] Prohibited protocol. Only 'mcard://' is permitted.`);let t=Ze(e);if(!t)return{handled:!1,targetHandle:``};let{handleOrHash:n,facet:r,action:i}=t;if(z.get(),r===`pcard`&&i===`run`){let e={handle:n,hash:`hash:${n}`,path:`computable_knowledge/Concrete/${n}`,name:n,mimeType:`text/typescript`,detectedType:`pcard`,subclass:`PCard`,epistemicStatus:`theorem`,readOnly:!1,polynomialDegree:1,coeffects:[`config.kernel`,`identity.did`],handlerUri:`mcard://${n}`,executionMode:`client-wasm`,prescribedTransitions:[{id:`t0`,name:`fire`,targetInvariant:`NoetherianConservation`}]};return m(e),{handled:!0,facet:`pcard`,action:`run`,targetHandle:n,pcardExecutionResult:await fn.dispatchPCard(e)}}return r===`vcard`?{handled:!0,facet:`vcard`,targetHandle:n,trace:et.getTrace(n)||et.getRecentTraces()[0]}:{handled:Qe(e),facet:r,action:i,targetHandle:n}}}.dispatchLink,mn=({isOpen:e,onClose:t,onSelectItem:n})=>{let[r,i]=(0,K.useState)(``),[a,o]=(0,K.useState)(0),[s,c]=(0,K.useState)([]),l=(0,K.useRef)(null),u=(0,K.useRef)(null);(0,K.useEffect)(()=>{e&&(i(``),o(0),c(dn.search(``,50)),setTimeout(()=>l.current?.focus(),50))},[e]),(0,K.useEffect)(()=>{c(dn.search(r,50)),o(0)},[r]);let d=e=>{e.key===`ArrowDown`?(e.preventDefault(),o(e=>(e+1)%Math.max(1,s.length))):e.key===`ArrowUp`?(e.preventDefault(),o(e=>(e-1+s.length)%Math.max(1,s.length))):e.key===`Enter`?(e.preventDefault(),s[a]&&f(s[a])):e.key===`Escape`&&(e.preventDefault(),t())},f=async e=>{try{v()?.api?.pushEvent(`quick_open_selected`,{uri:e.uri,type:e.type})}catch{}if(t(),n){n(e);return}if(e.uri.startsWith(`mcard://`))try{await pn(e.uri)}catch{let t=z.get(),n=e.uri.replace(`mcard://`,``).split(`?`)[0],r=t[n]||Object.values(t).find(e=>e.path.endsWith(n)||e.name===n);r&&m(r)}},p=e=>{switch(e.type){case`pcard`:return{label:`PCard`,bg:`#0e639c`,color:`#ffffff`};case`vcard`:return{label:`VCard`,bg:`#238636`,color:`#ffffff`};case`command`:return{label:`Action`,bg:`#8957e5`,color:`#ffffff`};default:return{label:`MCard`,bg:`rgba(255, 255, 255, 0.1)`,color:`#cccccc`}}},h=e=>{switch(e.type){case`pcard`:return(0,q.jsx)(pe,{size:14,color:`#75beff`});case`vcard`:return(0,q.jsx)(se,{size:14,color:`#89d185`});case`command`:return(0,q.jsx)(`span`,{style:{fontSize:`13px`},children:`⚡`});default:return(0,q.jsx)(U,{size:14,color:`#519aba`})}};return e?(0,q.jsx)(`div`,{id:`quick-open-overlay`,className:`vscode-modal-overlay`,onClick:t,style:{position:`fixed`,top:0,left:0,right:0,bottom:0,backgroundColor:`rgba(0, 0, 0, 0.45)`,zIndex:1e3,display:`flex`,justifyContent:`center`,paddingTop:`60px`},children:(0,q.jsxs)(`div`,{id:`quick-open-modal`,onClick:e=>e.stopPropagation(),style:{width:`640px`,maxWidth:`92vw`,maxHeight:`460px`,backgroundColor:`var(--vscode-quickInput-background, #252526)`,color:`var(--vscode-quickInput-foreground, #cccccc)`,borderRadius:`6px`,boxShadow:`0 8px 32px rgba(0, 0, 0, 0.6)`,border:`1px solid var(--vscode-widget-border, #454545)`,display:`flex`,flexDirection:`column`,overflow:`hidden`,fontFamily:`var(--vscode-font-family)`},children:[(0,q.jsxs)(`div`,{style:{padding:`10px 14px`,borderBottom:`1px solid var(--vscode-input-border, #3c3c3c)`,display:`flex`,alignItems:`center`,gap:`10px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`14px`,opacity:.6},children:`🔍`}),(0,q.jsx)(`input`,{ref:l,id:`quick-open-input`,type:`text`,value:r,onChange:e=>i(e.target.value),onKeyDown:d,placeholder:`Search MCards, PCard processes, or VCard traces by name or path...`,"aria-label":`Quick Open Search Input`,style:{flex:1,backgroundColor:`transparent`,border:`none`,outline:`none`,color:`var(--vscode-input-foreground, #ffffff)`,fontSize:`13px`,fontFamily:`inherit`}}),s.length>0&&(0,q.jsxs)(`span`,{style:{fontSize:`11px`,color:`#888`,flexShrink:0},children:[s.length,` results`]})]}),(0,q.jsx)(`div`,{ref:u,id:`quick-open-list`,style:{flex:1,overflowY:`auto`,padding:`4px 0`},children:s.length===0?(0,q.jsxs)(`div`,{style:{padding:`20px`,textAlign:`center`,color:`#888`,fontStyle:`italic`,fontSize:`12px`},children:[`No matching files, morphisms, or traces found for “`,r,`”.`]}):s.map((e,t)=>{let n=t===a,r=p(e);return(0,q.jsxs)(`div`,{className:`quick-open-item ${n?`selected`:``}`,onClick:()=>f(e),onMouseEnter:()=>o(t),style:{padding:`8px 16px`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,cursor:`pointer`,backgroundColor:n?`var(--vscode-quickInputList-focusBackground, #094771)`:`transparent`,color:n?`var(--vscode-quickInputList-focusForeground, #ffffff)`:`var(--vscode-foreground, #cccccc)`,gap:`12px`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`10px`,minWidth:0,flex:1},children:[(0,q.jsx)(`span`,{style:{display:`inline-flex`,alignItems:`center`,flexShrink:0},children:h(e)}),(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`2px`,minWidth:0,overflow:`hidden`},children:[(0,q.jsx)(`span`,{style:{fontSize:`13px`,fontWeight:n?500:400,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.label}),(0,q.jsx)(`span`,{style:{fontSize:`11px`,opacity:n?.9:.6,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontFamily:`monospace`},children:e.description})]})]}),(0,q.jsx)(`span`,{style:{fontSize:`10px`,padding:`2px 6px`,borderRadius:`4px`,backgroundColor:r.bg,color:r.color,fontWeight:600,letterSpacing:`0.4px`,flexShrink:0},children:r.label})]},e.id)})}),(0,q.jsxs)(`div`,{style:{padding:`6px 14px`,fontSize:`11px`,color:`rgba(255, 255, 255, 0.4)`,backgroundColor:`rgba(0, 0, 0, 0.2)`,borderTop:`1px solid rgba(255, 255, 255, 0.05)`,display:`flex`,justifyContent:`space-between`},children:[(0,q.jsx)(`span`,{children:`Use ↑↓ to navigate, Enter to open (mcard://), Esc to dismiss`}),(0,q.jsx)(`span`,{children:`Fuzzy Indexer (<1ms)`})]})]})}):null},hn=({orientation:e,onResize:t,onReset:n,title:r=`Drag to resize, double-click to reset`,style:i,className:a=``})=>{let[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(!1),u=(0,K.useRef)(0),d=n=>{n.preventDefault(),n.stopPropagation(),l(!0),u.current=e===`vertical`?n.clientX:n.clientY;let r=n=>{n.preventDefault();let r=e===`vertical`?n.clientX:n.clientY,i=r-u.current;i!==0&&(t(i),u.current=r)},i=e=>{e.preventDefault(),l(!1),window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,i),document.body.style.userSelect=``,document.body.style.cursor=``};document.body.style.userSelect=`none`,document.body.style.cursor=e===`vertical`?`col-resize`:`row-resize`,window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,i)},f=e===`vertical`;return(0,q.jsx)(`div`,{role:`separator`,"aria-orientation":e,title:r,onPointerDown:d,onDoubleClick:n,onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),className:`monaco-sash ${f?`vertical`:`horizontal`} ${c?`active`:``} ${a}`,style:{position:`relative`,zIndex:35,flexShrink:0,userSelect:`none`,touchAction:`none`,cursor:f?`col-resize`:`row-resize`,width:f?`5px`:`100%`,height:f?`100%`:`5px`,margin:f?`0 -2px`:`-2px 0`,display:`flex`,alignItems:`center`,justifyContent:`center`,...i},children:(0,q.jsx)(`div`,{className:`sash-indicator`,style:{width:f?o||c?`2px`:`1px`:`100%`,height:f?`100%`:o||c?`2px`:`1px`,backgroundColor:o||c?`var(--vscode-sash-hoverBorder, #007acc)`:`var(--vscode-sideBar-border, #333333)`,transition:`background-color 0.15s ease, width 0.15s ease, height 0.15s ease`}})})},gn=()=>{let[e,t]=(0,K.useState)(``),[n,r]=(0,K.useState)(!1),i=[{severity:`check`,message:`Type Lattice Invariant: Meet (⊓) consistency confirmed across all 6 layers`,source:`LatticeCheck`,code:`INV-LAT-01`,file:`computable_knowledge/Concrete/layer0_kernel`,line:1},{severity:`info`,message:`Function-Number Duality: All MCards verified under single 'mcard://' URI protocol`,source:`FndVerify`,code:`INV-FND-02`,file:`computable_knowledge/Concrete/layer2_storage`,line:12},{severity:`info`,message:`Thermodynamic Accounting: Maxwell's Demon entropy H¹ = 0 (reversible Casimir limit)`,source:`ThermoAudit`,code:`INV-TRM-03`,file:`computable_knowledge/Balanced/invariants`,line:45}].filter(t=>t.message.toLowerCase().includes(e.toLowerCase())||t.code.toLowerCase().includes(e.toLowerCase())||t.source.toLowerCase().includes(e.toLowerCase()));return(0,q.jsxs)(`div`,{className:`problems-view-container`,style:{display:`flex`,flexDirection:`column`,height:`100%`,backgroundColor:`var(--vscode-panel-background, #1e1e1e)`,color:`var(--vscode-panelTitle-activeForeground, #cccccc)`,fontSize:`12px`,overflow:`hidden`},children:[(0,q.jsxs)(`div`,{style:{padding:`6px 16px`,borderBottom:`1px solid var(--vscode-panel-border, #2d2d2d)`,display:`flex`,alignItems:`center`,gap:`8px`,backgroundColor:`#1e1e1e`},children:[(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,backgroundColor:`var(--vscode-input-background, #3c3c3c)`,border:`1px solid var(--vscode-input-border, #3c3c3c)`,borderRadius:`2px`,padding:`2px 8px`,width:`260px`},children:[(0,q.jsx)(Ce,{size:12,color:`#858585`}),(0,q.jsx)(`input`,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:`Filter (e.g. text, code)`,style:{background:`transparent`,border:`none`,outline:`none`,color:`var(--vscode-input-foreground, #cccccc)`,fontSize:`11px`,width:`100%`,fontFamily:`inherit`}})]}),(0,q.jsxs)(`span`,{style:{fontSize:`11px`,color:`#858585`},children:[i.length,` diagnostic`,i.length===1?``:`s`,` in workspace`]})]}),(0,q.jsxs)(`div`,{style:{flex:1,overflowY:`auto`,padding:`4px 0`},children:[(0,q.jsxs)(`div`,{onClick:()=>r(e=>!e),style:{padding:`4px 12px`,display:`flex`,alignItems:`center`,gap:`6px`,cursor:`pointer`,backgroundColor:`transparent`,userSelect:`none`,fontSize:`12px`,fontWeight:600,color:`#bbbbbb`},children:[(0,q.jsx)(`span`,{style:{display:`inline-flex`,alignItems:`center`,color:`#858585`},children:n?(0,q.jsx)(ve,{size:12}):(0,q.jsx)(we,{size:12})}),(0,q.jsx)(`span`,{children:`Workspace Architecture Invariants`}),(0,q.jsx)(`span`,{style:{fontSize:`10px`,padding:`0 5px`,borderRadius:`8px`,backgroundColor:`#37373d`,color:`#89d185`,fontWeight:700},children:i.length})]}),!n&&(0,q.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`},children:i.map((e,t)=>(0,q.jsxs)(`div`,{style:{padding:`4px 12px 4px 32px`,display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,fontSize:`12px`,lineHeight:`18px`,borderBottom:`1px solid rgba(255, 255, 255, 0.03)`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--vscode-list-hoverBackground, #2a2d2e)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,q.jsx)(`span`,{style:{display:`inline-flex`,alignItems:`center`,flexShrink:0},children:e.severity===`check`?(0,q.jsx)(xe,{size:13,color:`#89d185`}):(0,q.jsx)(de,{size:13,color:`#75beff`})}),(0,q.jsx)(`span`,{style:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.message}),(0,q.jsxs)(`span`,{style:{color:`#858585`,fontSize:`11px`,flexShrink:0},children:[`[`,e.code,`]`]}),(0,q.jsxs)(`span`,{style:{color:`#6e7681`,fontSize:`11px`,flexShrink:0,fontFamily:`monospace`},children:[e.file,`:`,e.line]})]},t))})]})]})},_n=K.lazy(()=>s(()=>import(`./TerminalView.C_Ksz6lT.js`),__vite__mapDeps([13,1,11,3,4,2,10,14]))),vn=({isBottomMaximized:e,setIsBottomMaximized:t,setIsBottomPanelVisible:n,bottomPanelHeight:r})=>{let[i,a]=(0,K.useState)(`terminal`);return(0,q.jsxs)(`div`,{className:`dockview-bottom-panel`,style:{height:e?`100%`:`${r}px`,minHeight:e?`100%`:`80px`,maxHeight:e?`100%`:`500px`,flexShrink:0,backgroundColor:`var(--vscode-panel-background, #1e1e1e)`,display:`flex`,flexDirection:`column`,overflow:`hidden`},children:[(0,q.jsxs)(`div`,{style:{height:`32px`,minHeight:`32px`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`0 12px`,borderBottom:`1px solid var(--vscode-panel-border, #333333)`,backgroundColor:`var(--vscode-sideBarSectionHeader-background, #1e1e1e)`,userSelect:`none`},children:[(0,q.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`16px`,height:`100%`},children:[`problems`,`output`,`terminal`].map(e=>{let t=i===e;return(0,q.jsxs)(`div`,{onClick:()=>a(e),style:{display:`flex`,alignItems:`center`,gap:`6px`,height:`100%`,fontSize:`11px`,fontWeight:t?600:400,textTransform:`uppercase`,letterSpacing:`0.6px`,cursor:`pointer`,color:t?`var(--vscode-panelTitle-activeForeground, #e7e7e7)`:`var(--vscode-panelTitle-inactiveForeground, rgba(231, 231, 231, 0.5))`,borderBottom:t?`2px solid var(--vscode-panelTitle-activeBorder, #e7e7e7)`:`2px solid transparent`},children:[(0,q.jsx)(`span`,{children:{problems:`Problems`,output:`Output`,terminal:`Terminal & PTR`}[e]}),e===`problems`&&(0,q.jsx)(`span`,{style:{fontSize:`10px`,padding:`0 5px`,borderRadius:`8px`,backgroundColor:`#37373d`,color:`#89d185`,fontWeight:700},children:`3`})]},e)})}),(0,q.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`4px`},children:[(0,q.jsx)(`button`,{className:`vscode-icon-btn`,title:e?`Restore Panel Size`:`Maximize Panel`,onClick:()=>t(e=>!e),children:(0,q.jsx)(Oe,{size:12})}),(0,q.jsx)(`button`,{className:`vscode-icon-btn`,title:`Close Panel`,onClick:()=>n(!1),children:(0,q.jsx)(fe,{size:12})})]})]}),(0,q.jsxs)(`div`,{style:{flex:1,overflow:`hidden`,display:`flex`,flexDirection:`column`},children:[i===`problems`&&(0,q.jsx)(gn,{}),i===`output`&&(0,q.jsx)(`div`,{style:{padding:`12px 16px`,fontFamily:`monospace`,fontSize:`12px`,color:`#9cdcfe`},children:`[CLM Task Runner] SQLite WAL mode active. VFS cache synchronized with 19,320 graph symbols.`}),(0,q.jsx)(`div`,{style:{flex:1,width:`100%`,height:`100%`,display:i===`terminal`?`flex`:`none`},children:(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(`div`,{style:{padding:`12px 16px`,color:`var(--vscode-descriptionForeground, #888888)`,fontSize:`12px`},children:`Loading Terminal Engine...`}),children:(0,q.jsx)(_n,{})})})]})]})},yn=()=>(0,q.jsxs)(`div`,{className:`workbench-skeleton`,style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,overflow:`hidden`,position:`relative`},"data-testid":`workbench-skeleton`,children:[(0,q.jsxs)(`div`,{style:{height:`35px`,display:`flex`,alignItems:`center`,backgroundColor:`var(--vscode-editorGroupHeader-tabsBackground, #252526)`,borderBottom:`1px solid var(--vscode-editorGroupHeader-tabsBorder, #1e1e1e)`,paddingLeft:`4px`,gap:`2px`,flexShrink:0},children:[(0,q.jsxs)(`div`,{style:{width:`130px`,height:`27px`,backgroundColor:`#1e1e1e`,borderRadius:`2px 2px 0 0`,borderTop:`2px solid #007acc`,display:`flex`,alignItems:`center`,padding:`0 10px`,gap:`8px`},children:[(0,q.jsx)(`div`,{style:{width:`12px`,height:`12px`,borderRadius:`50%`,backgroundColor:`#333`}}),(0,q.jsx)(`div`,{style:{width:`60px`,height:`10px`,backgroundColor:`#3a3a3a`,borderRadius:`3px`}})]}),(0,q.jsxs)(`div`,{style:{width:`110px`,height:`27px`,backgroundColor:`#2d2d2d`,borderRadius:`2px 2px 0 0`,display:`flex`,alignItems:`center`,padding:`0 10px`,gap:`8px`,opacity:.6},children:[(0,q.jsx)(`div`,{style:{width:`12px`,height:`12px`,borderRadius:`50%`,backgroundColor:`#444`}}),(0,q.jsx)(`div`,{style:{width:`50px`,height:`10px`,backgroundColor:`#3a3a3a`,borderRadius:`3px`}})]})]}),(0,q.jsxs)(`div`,{style:{height:`22px`,display:`flex`,alignItems:`center`,padding:`0 10px`,borderBottom:`1px solid #252526`,backgroundColor:`#1e1e1e`,gap:`6px`},children:[(0,q.jsx)(`div`,{style:{width:`40px`,height:`8px`,backgroundColor:`#2e2e2e`,borderRadius:`2px`}}),(0,q.jsx)(`span`,{style:{color:`#555`,fontSize:`10px`},children:`›`}),(0,q.jsx)(`div`,{style:{width:`70px`,height:`8px`,backgroundColor:`#2e2e2e`,borderRadius:`2px`}})]}),(0,q.jsx)(`div`,{style:{flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`,backgroundColor:`#1e1e1e`},children:(0,q.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,alignItems:`center`,gap:`12px`,opacity:.35},children:[(0,q.jsx)(`div`,{style:{width:`24px`,height:`24px`,border:`2px solid #007acc`,borderTopColor:`transparent`,borderRadius:`50%`,animation:`dv-spin 1s linear infinite`}}),(0,q.jsxs)(`div`,{className:`skeleton-loading-badge`,style:{display:`flex`,flexDirection:`column`,alignItems:`center`,gap:`4px`},children:[(0,q.jsx)(`span`,{style:{fontSize:`12px`,color:`#ccc`,fontWeight:500},children:`Loading Spatial Workbench...`}),(0,q.jsx)(`span`,{style:{fontSize:`11px`,color:`#888`,letterSpacing:`0.3px`},children:`Initializing spatial panels & layout engine`})]})]})}),(0,q.jsx)(`style`,{children:`
|
|
4
|
+
@keyframes dv-spin {
|
|
5
|
+
to { transform: rotate(360deg); }
|
|
6
|
+
}
|
|
7
|
+
`})]}),bn=class extends K.Component{state={hasError:!1,error:null};static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`[WorkbenchErrorBoundary] Caught spatial workbench error:`,e,t)}handleRetry=()=>{this.setState({hasError:!1,error:null}),this.props.onRetry?.()};render(){return this.state.hasError?this.props.fallback?this.props.fallback:(0,q.jsxs)(`div`,{className:`workbench-error-boundary`,style:{display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,height:`100%`,width:`100%`,padding:`32px`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,color:`var(--vscode-editor-foreground, #cccccc)`,textAlign:`center`,boxSizing:`border-box`},"data-testid":`workbench-error-boundary`,children:[(0,q.jsx)(`div`,{style:{fontSize:`32px`,marginBottom:`16px`,color:`var(--vscode-editorWarning-foreground, #cca700)`},children:`⚠️`}),(0,q.jsx)(`h3`,{style:{fontSize:`16px`,fontWeight:600,margin:`0 0 8px 0`,color:`var(--vscode-foreground, #ffffff)`},children:`Spatial Workbench Failed to Load`}),(0,q.jsx)(`p`,{style:{fontSize:`12px`,maxWidth:`480px`,margin:`0 0 20px 0`,lineHeight:`1.5`,color:`var(--vscode-descriptionForeground, #888888)`},children:this.state.error?.message||`A network interruption or timeout occurred while fetching the DockView layout engine chunk.`}),(0,q.jsxs)(`div`,{style:{display:`flex`,gap:`12px`},children:[(0,q.jsx)(`button`,{type:`button`,onClick:this.handleRetry,style:{padding:`6px 16px`,backgroundColor:`var(--vscode-button-background, #0e639c)`,color:`var(--vscode-button-foreground, #ffffff)`,border:`none`,borderRadius:`3px`,cursor:`pointer`,fontSize:`12px`,fontWeight:600},children:`Retry Loading Workbench`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>{typeof window<`u`&&window.dispatchEvent(new CustomEvent(`clm:depress-dockview`))},style:{padding:`6px 16px`,backgroundColor:`transparent`,color:`var(--vscode-foreground, #cccccc)`,border:`1px solid rgba(255, 255, 255, 0.2)`,borderRadius:`3px`,cursor:`pointer`,fontSize:`12px`},children:`Return to Welcome Enclave`})]})]}):this.props.children}},xn=!1;function Sn(){if(typeof window>`u`||!window.location)return!1;try{return new URLSearchParams(window.location.search).get(`noprewarm`)===`1`}catch{return!1}}function Cn(){return xn||typeof window>`u`||Sn()?Promise.resolve():(xn=!0,s(()=>import(`./DockviewSpatialWorkbench.B_I1GJHw.js`).then(e=>e.t),__vite__mapDeps([15,1,11,2,3,4,5,6,7,10,16,12,0,17,9,18,19,20,21,22,23])))}function wn(e=2500){if(typeof window>`u`||Sn())return()=>{};let t=navigator.connection;if(t?.saveData||t?.effectiveType===`2g`||t?.effectiveType===`slow-2g`)return()=>{};let n;return`requestIdleCallback`in window?(n=window.requestIdleCallback(()=>{Cn()},{timeout:e}),()=>window.cancelIdleCallback?.(n)):(n=globalThis.setTimeout(Cn,e),()=>clearTimeout(n))}function Tn(){let e=B(p),t=B(R),n=B(z),r=B(I),i=B(M),[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(!1),l=(0,K.useRef)(null),u=(0,K.useRef)(!1);(0,K.useEffect)(()=>{let e=e=>{l.current&&!l.current.contains(e.target)&&c(!1)};return s&&document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[s]),(0,K.useEffect)(()=>{let e=e=>{e.detail?.preset===`dual-viewport`&&_(`split`)},t=e=>{let t=e;(t.detail?.result?.popupBlocked||t.detail?.result&&!t.detail?.result?.success)&&_(`split`)};return window.addEventListener(`clm:launch-preset`,e),window.addEventListener(`clm:viewport-tile-requested`,t),()=>{window.removeEventListener(`clm:launch-preset`,e),window.removeEventListener(`clm:viewport-tile-requested`,t)}},[]),(0,K.useEffect)(()=>{o(t?t.handle:null)},[t]),(0,K.useEffect)(()=>{if(!r&&Object.keys(n).length>0&&!u.current&&(u.current=!0,!t&&Object.keys(e).length===0)){let e=n[`assets:media:images:sample.svg`]||Object.values(n)[0];e&&m(e)}},[n,t,r,e]);let d=(0,K.useCallback)(e=>{let t=n[e];t&&m(t)},[n]),f=(0,K.useCallback)((t,n)=>{if(t.stopPropagation(),x(n),a===n){let t=Object.keys(e).filter(e=>e!==n);t.length>0?d(t[t.length-1]):o(null)}},[a,e,d]),h=t?[`clm`,...t.path.split(`/`)]:H.vfs.default_tabs;return{activeTabKey:a,setActiveTabKey:o,editorMode:i,setEditorMode:_,showTabMenu:s,setShowTabMenu:c,menuRef:l,openTabs:e,activeMCard:t,treeMap:n,handleTabClick:d,handleCloseTab:f,breadcrumbParts:h,closeAllTabs:j,closeOtherTabs:b,closeTabsToTheRight:S}}function En(){let[e,t]=(0,K.useState)(260),[n,r]=(0,K.useState)(200),[i,a]=(0,K.useState)(320),[o,s]=(0,K.useState)(.5);return{sidebarWidth:e,setSidebarWidth:t,bottomPanelHeight:n,setBottomPanelHeight:r,chatWidth:i,setChatWidth:a,editorSplitRatio:o,setEditorSplitRatio:s,handleSidebarResize:(0,K.useCallback)(e=>{t(t=>Math.min(600,Math.max(160,t+e)))},[]),handleSidebarReset:(0,K.useCallback)(()=>{t(260)},[]),handleBottomResize:(0,K.useCallback)(e=>{r(t=>Math.min(500,Math.max(80,t-e)))},[]),handleBottomReset:(0,K.useCallback)(()=>{r(200)},[]),handleChatResize:(0,K.useCallback)(e=>{a(t=>Math.min(600,Math.max(240,t-e)))},[]),handleSplitResize:(0,K.useCallback)(e=>{s(Math.min(.9,Math.max(.1,e)))},[])}}function Dn(e){let[t,n]=(0,K.useState)(!1),[r,i]=(0,K.useState)(!1),[a,o]=(0,K.useState)(!1),s=(0,K.useRef)(!1),{setIsSidebarVisible:c,setIsBottomPanelVisible:l,setEditorMode:u,setActiveTabKey:d}=e;return(0,K.useEffect)(()=>{let e=e=>{let t=typeof navigator<`u`&&navigator.platform.toUpperCase().indexOf(`MAC`)>=0?e.metaKey:e.ctrlKey;if(t&&e.shiftKey&&(e.key===`p`||e.key===`P`)){e.preventDefault(),n(e=>!e),i(!1);return}if(t&&!e.shiftKey&&(e.key===`p`||e.key===`P`)){e.preventDefault(),i(e=>!e),n(!1);return}if(t&&(e.key===`b`||e.key===`B`)){e.preventDefault(),c(e=>!e);return}if(e.ctrlKey&&(e.key==="`"||e.key===`~`)){e.preventDefault(),l(e=>!e);return}if(t&&e.key===`\\`){e.preventDefault(),u(e=>e===`split`?`card`:`split`);return}if(t&&(e.key===`s`||e.key===`S`)){e.preventDefault();let t=R.get();if(t?.readOnly){Ye(t);return}console.log(`[StudioWorkbench] MCard saved to CAS with Merkle recomputation.`);return}if(t&&(e.key===`k`||e.key===`K`)){s.current=!0,setTimeout(()=>{s.current=!1},1500);return}if(s.current&&(e.key===`w`||e.key===`W`)){e.preventDefault(),s.current=!1,j(),d(null);return}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c,l,u,d]),{handleExecuteCommand:e=>{switch(e){case`cmd:view:sidebar`:c(e=>!e);break;case`cmd:view:terminal`:l(e=>!e);break;case`cmd:view:split`:u(e=>e===`split`?`card`:`split`);break;case`cmd:dockview:depress`:N();break;case`cmd:dockview:restore`:k();break;case`cmd:view:close_all_tabs`:j(),d(null);break;case`cmd:extensions:open`:c(!0);break;case`cmd:koishi:chat`:break;case`cmd:clm:open_mcard`:i(!0);break;case`cmd:theme:dark_plus`:f().applyHandle(`mcard:ui/theme/dark-default`);break;case`cmd:theme:light_plus`:f().applyHandle(`mcard:ui/theme/light-default`);break;case`cmd:theme:nord`:f().applyHandle(`mcard:ui/theme/nord`);break;case`cmd:theme:tokyo_night`:f().applyHandle(`mcard:ui/theme/tokyo-night`);break;case`cmd:theme:catppuccin_mocha`:f().applyHandle(`mcard:ui/theme/catppuccin-mocha`);break;case`cmd:density:compact`:f().setDensity(`mcard:ui/density/compact`);break;case`cmd:density:comfortable`:f().setDensity(`mcard:ui/density/comfortable`);break;case`cmd:density:spacious`:f().setDensity(`mcard:ui/density/spacious`);break;default:console.log(`[StudioWorkbench] Executed command:`,e)}},isCommandPaletteOpen:t,setIsCommandPaletteOpen:n,isQuickOpenOpen:r,setIsQuickOpenOpen:i,isImportDbOpen:a,setIsImportDbOpen:o}}async function On(e,t=`clm_mcard_workspace.db`){if(typeof window>`u`)return!1;if(typeof window.showSaveFilePicker==`function`)try{let n=await(await window.showSaveFilePicker({suggestedName:t,types:[{description:`SQLite 3 Database (*.db, *.sqlite, *.sqlite3)`,accept:{"application/x-sqlite3":[`.db`,`.sqlite`,`.sqlite3`]}}]})).createWritable();return await n.write(e),await n.close(),T({lastSavedIso:new Date().toISOString(),isPersistent:!0}),!0}catch(e){if(e.name===`AbortError`)return!1;console.warn(`[saveLocalFile] showSaveFilePicker failed, falling back to Blob download:`,e)}try{let n=new Blob([e],{type:`application/x-sqlite3`}),r=URL.createObjectURL(n);try{let e=document.createElement(`a`);return e.href=r,e.download=t,e.style.display=`none`,document.body.appendChild(e),e.click(),document.body.removeChild(e),setTimeout(()=>{URL.revokeObjectURL(r)},1500),T({lastSavedIso:new Date().toISOString(),isPersistent:!0}),!0}catch(e){throw URL.revokeObjectURL(r),e}}catch(e){return console.error(`[saveLocalFile] Blob download fallback failed:`,e),!1}}var kn=class{channel=null;senderId;role;options;isDestroyed=!1;constructor(e={}){if(this.options=e,this.role=e.role||(typeof location<`u`&&location.search.includes(`mode=satellite`)?`satellite`:`primary`),this.senderId=`${this.role}-${Math.random().toString(36).substring(2,9)}`,typeof window<`u`&&typeof BroadcastChannel<`u`)try{this.channel=new BroadcastChannel(`clm-window-bus`),this.channel.onmessage=this.handleMessage.bind(this)}catch(e){console.warn(`[WindowSyncBus] BroadcastChannel not supported or threw:`,e)}this.broadcast({type:`WINDOW_ANNOUNCE`,senderId:this.senderId,role:this.role,timestamp:Date.now()}),typeof window<`u`&&window.addEventListener(`beforeunload`,this.handleUnload.bind(this))}getSenderId(){return this.senderId}getRole(){return this.role}handleMessage(e){if(this.isDestroyed||!e.data||e.data.senderId===this.senderId)return;let t=e.data;switch(t.type){case`WINDOW_ANNOUNCE`:if(this.role===`primary`&&t.role===`satellite`&&(this.options.onSatelliteConnected?.(t.senderId),this.options.getStateToHydrate)){let e=this.options.getStateToHydrate();this.broadcast({type:`STATE_HYDRATE`,senderId:this.senderId,activeHandle:e.activeHandle,activeDimension:e.activeDimension,timestamp:Date.now()})}break;case`STATE_HYDRATE`:this.role===`satellite`&&(t.activeHandle&&this.options.onActiveCardChange?.(t.activeHandle),t.activeDimension&&this.options.onDimensionChange?.(t.activeDimension));break;case`ACTIVE_MCARD_CHANGED`:this.options.onActiveCardChange?.(t.handle);break;case`DIMENSION_CHANGED`:this.options.onDimensionChange?.(t.dimension);break;case`WINDOW_CLOSING`:t.role===`satellite`&&this.options.onSatelliteDisconnected?.(t.senderId)}}broadcast(e){if(this.channel&&!this.isDestroyed)try{this.channel.postMessage(e)}catch(e){console.warn(`[WindowSyncBus] Failed to post message:`,e)}}notifyActiveCardChange(e,t){this.broadcast({type:`ACTIVE_MCARD_CHANGED`,senderId:this.senderId,handle:e,hash:t,timestamp:Date.now()})}notifyDimensionChange(e){this.broadcast({type:`DIMENSION_CHANGED`,senderId:this.senderId,dimension:e,timestamp:Date.now()})}handleUnload(){this.broadcast({type:`WINDOW_CLOSING`,senderId:this.senderId,role:this.role,timestamp:Date.now()})}destroy(){this.isDestroyed=!0,typeof window<`u`&&window.removeEventListener(`beforeunload`,this.handleUnload.bind(this)),this.channel&&=(this.channel.close(),null)}},An=null;function jn(e){return An||=new kn(e),An}function Mn(e){let{setIsImportDbOpen:t}=e;(0,K.useEffect)(()=>{let e=async()=>{try{window.dispatchEvent(new CustomEvent(`clm:flush-editor-state`)),window.dispatchEvent(new CustomEvent(`clm:export-db-start`));let{bytes:e,filename:t}=await rn(),n=await On(e,t);n&&await He(e),window.dispatchEvent(new CustomEvent(`clm:export-db-end`,{detail:{success:n}}))}catch(e){console.error(`[Workbench] Failed to export sovereign database:`,e),window.dispatchEvent(new CustomEvent(`clm:export-db-end`,{detail:{success:!1,error:e}}))}},n=()=>{t(!0)};return window.addEventListener(`clm:export-db`,e),window.addEventListener(`clm:open-import-db-modal`,n),()=>{window.removeEventListener(`clm:export-db`,e),window.removeEventListener(`clm:open-import-db-modal`,n)}},[t]),(0,K.useEffect)(()=>{y(),Fe();let e=jn({onActiveCardChange:e=>{if(R.get()?.handle!==e){let t=z.get()[e];t&&m(t)}},onDimensionChange:e=>{D.get()!==e&&D.set(e)},getStateToHydrate:()=>({activeHandle:R.get()?.handle||null,activeDimension:D.get()})}),t=R.listen(t=>{t&&e.notifyActiveCardChange(t.handle,t.hash)}),n=D.listen(t=>{e.notifyDimensionChange(t)});return()=>{t(),n()}},[])}var Nn=K.lazy(()=>s(()=>import(`./KoishiChatViewlet.5mepQvLX.js`),__vite__mapDeps([24,1,11,2,3,4,5,6,7,10,16,25,18,9,12,0,17]))),Pn=K.lazy(()=>s(()=>import(`./DockviewSpatialWorkbench.B_I1GJHw.js`).then(e=>e.t),__vite__mapDeps([15,1,11,2,3,4,5,6,7,10,16,12,0,17,9,18,19,20,21,22,23]))),Fn=()=>{let e=B(D),t=B(I),n=(0,K.useRef)(null),[r,i]=(0,K.useState)(!0),[a,o]=(0,K.useState)(!0),[s,c]=(0,K.useState)(!0),[l,u]=(0,K.useState)(!1),[d,f]=(0,K.useState)(!1),{activeTabKey:p,setActiveTabKey:m,editorMode:h,setEditorMode:g,openTabs:_}=Tn(),{sidebarWidth:v,bottomPanelHeight:y,chatWidth:b,handleSidebarResize:S,handleSidebarReset:C,handleBottomResize:w,handleBottomReset:T,handleChatResize:E}=En(),{handleExecuteCommand:O,isCommandPaletteOpen:A,setIsCommandPaletteOpen:j,isQuickOpenOpen:M,setIsQuickOpenOpen:N,isImportDbOpen:P,setIsImportDbOpen:F}=Dn({setIsSidebarVisible:i,setIsBottomPanelVisible:c,setEditorMode:g,setActiveTabKey:m});Mn({setIsImportDbOpen:F}),(0,K.useEffect)(()=>{let e=()=>f(!0);window.addEventListener(`clm:open-llm-settings`,e);let t=wn();return()=>{window.removeEventListener(`clm:open-llm-settings`,e),t()}},[]);let L={display:`flex`,flexDirection:`column`,width:`100vw`,height:`100vh`,boxSizing:`border-box`,overflow:`hidden`,position:`fixed`,inset:0,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,color:`var(--vscode-foreground, #cccccc)`};return t?(0,q.jsxs)(`div`,{id:`kenotic-shell`,className:`clm-presentation-shell`,style:L,children:[(0,q.jsx)(Xe,{onSelectItem:()=>k()}),(0,q.jsx)(ft,{}),(0,q.jsx)($t,{isOpen:d,onClose:()=>f(!1)}),(0,q.jsx)(on,{isOpen:P,onClose:()=>F(!1)}),(0,q.jsx)(cn,{isOpen:A,onClose:()=>j(!1),onExecuteCommand:O}),(0,q.jsx)(mn,{isOpen:M,onClose:()=>N(!1)}),(0,q.jsx)(Ut,{})]}):(0,q.jsxs)(`div`,{id:`kenotic-shell`,className:`studio-workbench`,style:L,children:[(0,q.jsxs)(`div`,{style:{display:`flex`,flex:1,overflow:`hidden`,position:`relative`,boxSizing:`border-box`},children:[(0,q.jsx)(ct,{onOpenSettings:()=>f(!0),onToggleChat:()=>o(e=>!e)}),r&&(0,q.jsx)(`div`,{className:`dockview-primary-sidebar`,style:{width:`${v}px`,minWidth:`160px`,maxWidth:`600px`,flexShrink:0,height:`100%`,backgroundColor:`var(--vscode-sideBar-background, #252526)`,display:`flex`,flexDirection:`column`,overflow:`hidden`},children:e===`extensions`?(0,q.jsx)(Ht,{}):e===`topology`?(0,q.jsx)(qt,{}):(0,q.jsx)(Vt,{})}),r&&(0,q.jsx)(hn,{orientation:`vertical`,title:`Drag to resize Primary Sidebar (260px)`,onResize:S,onReset:C}),(0,q.jsxs)(`div`,{ref:n,style:{display:`flex`,flexDirection:`column`,flex:1,minWidth:0,overflow:`hidden`,position:`relative`},children:[!l&&(0,q.jsx)(`div`,{className:`dockview-editor-grid`,style:{flex:1,display:`flex`,flexDirection:`column`,backgroundColor:`var(--vscode-editor-background, #1e1e1e)`,overflow:`hidden`,minHeight:0},children:(0,q.jsx)(bn,{children:(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(yn,{}),children:(0,q.jsx)(Pn,{activeTabKey:p,openTabs:_,editorMode:h,onTabSelect:m,onTabClose:x,onModeChange:g})})})}),s&&!l&&(0,q.jsx)(hn,{orientation:`horizontal`,title:`Drag to resize Bottom Panel (200px)`,onResize:w,onReset:T}),s&&(0,q.jsx)(vn,{isBottomMaximized:l,setIsBottomMaximized:u,setIsBottomPanelVisible:c,bottomPanelHeight:y})]}),a&&(0,q.jsx)(hn,{orientation:`vertical`,title:`Drag to resize Koishi Chat (320px)`,onResize:E,onReset:()=>{}}),a&&(0,q.jsx)(`div`,{style:{width:`${b}px`,minWidth:`200px`,maxWidth:`600px`,flexShrink:0,height:`100%`,backgroundColor:`var(--vscode-sideBar-background, #1e1e1e)`,display:`flex`,flexDirection:`column`,overflow:`hidden`},children:(0,q.jsx)(bn,{fallback:(0,q.jsx)(`div`,{style:{padding:`16px`,color:`#888`,fontSize:`12px`},children:`Koishi Chat temporarily unavailable.`}),children:(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(`div`,{style:{padding:`16px`,color:`#888`,fontSize:`12px`},children:`Loading Koishi Chat...`}),children:(0,q.jsx)(Nn,{onOpenSettings:()=>f(!0),onClose:()=>o(!1)})})})})]}),(0,q.jsx)(ft,{}),(0,q.jsx)(dt,{}),(0,q.jsx)($t,{isOpen:d,onClose:()=>f(!1)}),(0,q.jsx)(on,{isOpen:P,onClose:()=>F(!1)}),(0,q.jsx)(cn,{isOpen:A,onClose:()=>j(!1),onExecuteCommand:O}),(0,q.jsx)(mn,{isOpen:M,onClose:()=>N(!1)}),(0,q.jsx)(Ut,{})]})};export{Fn as StudioWorkbench,Fn as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{n as r}from"./vfsHandles.
|
|
1
|
+
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{n as r}from"./vfsHandles.IX_wTpw_.js";import"./mcardVfs.2UOw9Z-r.js";var i=e(t(),1),a=n(),o=({mcard:e})=>{let[t,n]=(0,i.useState)(!1),o=r(e.path,e.hash),s=typeof e.content==`string`?e.content:``;return(0,a.jsxs)(`div`,{className:`card-panel-svg-viewer`,style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,backgroundColor:`#1a1a1c`,color:`#cccccc`,overflow:`hidden`},children:[(0,a.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`6px 14px`,backgroundColor:`var(--vscode-sideBar-background, #252526)`,borderBottom:`1px solid var(--vscode-editorGroup-border, #333333)`,fontSize:`11px`},children:[(0,a.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,a.jsx)(`span`,{style:{fontWeight:600},children:`Vector SVG Inspector`}),(0,a.jsx)(`button`,{onClick:()=>n(e=>!e),style:{padding:`2px 8px`,backgroundColor:t?`var(--vscode-button-background, #0e639c)`:`#333`,color:`#fff`,border:`none`,borderRadius:`2px`,cursor:`pointer`},children:t?`Show Render`:`Show SVG Source`})]}),o&&(0,a.jsx)(`a`,{href:o,download:e.name?e.name.endsWith(`.svg`)?e.name:`${e.name}.svg`:`diagram.svg`,style:{color:`#75beff`,textDecoration:`none`,fontSize:`11px`},children:`Download SVG ↓`})]}),(0,a.jsx)(`div`,{style:{flex:1,display:`flex`,alignItems:`center`,justifyContent:`center`,overflow:`auto`,padding:`24px`},children:t?(0,a.jsx)(`pre`,{style:{margin:0,padding:`16px`,width:`100%`,height:`100%`,fontFamily:`monospace`,fontSize:`12px`,lineHeight:`1.5`,whiteSpace:`pre-wrap`,color:`#9cdcfe`},children:s}):s.includes(`<svg`)?(0,a.jsx)(`div`,{style:{maxWidth:`100%`,maxHeight:`100%`,display:`flex`,alignItems:`center`,justifyContent:`center`},dangerouslySetInnerHTML:{__html:s}}):(0,a.jsx)(`img`,{src:o,alt:e.name,style:{maxWidth:`100%`,maxHeight:`100%`,objectFit:`contain`}})})]})};export{o as SvgViewlet};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["_astro/vendor-xterm.CcgipeuH.js","_astro/rolldown-runtime.Dd_uD5pT.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{
|
|
2
|
+
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{t as r}from"./preload-helper.oCYlU9a4.js";import{g as i}from"./themeStore.CEt0e54l.js";import{r as a,t as o}from"./disposable.Dsb0sbRP.js";import"./vendor-xterm.CcgipeuH.js";var s=e(t(),1),c=i({ready:!1,sessionId:null,cols:80,rows:24,activeCommand:``,commandHistory:[],executionEngine:`browser`}),l=i(`browser`),u=i({cols:80,rows:24});function d(e,t){c.set({...c.get(),ready:e,sessionId:t||c.get().sessionId})}function f(e,t){u.set({cols:e,rows:t}),c.set({...c.get(),cols:e,rows:t})}function p(e){l.set(e),c.set({...c.get(),executionEngine:e})}var m=n(),h={background:`#1e1e1e`,foreground:`#cccccc`,cursor:`#aeafad`,cursorAccent:`#000000`,selectionBackground:`#264f78`,selectionForeground:`#ffffff`,black:`#000000`,red:`#cd3131`,green:`#0dbc79`,yellow:`#e5e510`,blue:`#2472c8`,magenta:`#bc3fbc`,cyan:`#11a8cd`,white:`#e5e5e5`,brightBlack:`#666666`,brightRed:`#f14c4c`,brightGreen:`#23d18b`,brightYellow:`#f5f543`,brightBlue:`#3b8eea`,brightMagenta:`#d670d6`,brightCyan:`#29b8db`,brightWhite:`#e5e5e5`},g=(0,s.forwardRef)(({onData:t,onResize:n,onLinkClick:i,onReady:a,fontSize:o=13,fontFamily:c=`'JetBrains Mono', 'Fira Code', 'Cascadia Code', Menlo, monospace`,enableWebGl:l=!0},u)=>{let d=(0,s.useRef)(null),p=(0,s.useRef)(null),g=(0,s.useRef)(null),_=(0,s.useRef)(null),v=(0,s.useRef)([]);return(0,s.useEffect)(()=>{let s=!1;async function u(){if(d.current&&!s)try{let u=null,m=null;for(let t=1;t<=3;t++){if(s)return;try{let[t,n,i,a]=await Promise.all([r(()=>import(`./vendor-xterm.CcgipeuH.js`).then(t=>e(t.t(),1)),__vite__mapDeps([0,1])),r(()=>import(`./vendor-xterm.CcgipeuH.js`).then(t=>e(t.a(),1)),__vite__mapDeps([0,1])),r(()=>import(`./vendor-xterm.CcgipeuH.js`).then(t=>e(t.r(),1)),__vite__mapDeps([0,1])),r(()=>import(`./vendor-xterm.CcgipeuH.js`).then(t=>e(t.i(),1)),__vite__mapDeps([0,1]))]);u={Terminal:t.Terminal,FitAddon:n.FitAddon,WebLinksAddon:i.WebLinksAddon,SearchAddon:a.SearchAddon};break}catch(e){m=e,t<3&&!s&&(console.warn(`[XtermViewport] Attempt ${t} to import xterm.js modules failed, retrying in 500ms...`,e),await new Promise(e=>setTimeout(e,500)))}}if(!u)throw m||Error(`Failed to load xterm.js modules after retries`);if(s)return;let{Terminal:y,FitAddon:b,WebLinksAddon:x,SearchAddon:S}=u,C=new y({theme:h,fontSize:o,fontFamily:c,cursorBlink:!0,cursorStyle:`bar`,scrollback:1e4,allowProposedApi:!0,convertEol:!0}),w=new b;C.loadAddon(w);let T=new x((e,t)=>{i?i(t):window.open(t,`_blank`)});C.loadAddon(T);let E=new S;if(C.loadAddon(E),l)try{let{WebglAddon:t}=await r(async()=>{let{WebglAddon:t}=await import(`./vendor-xterm.CcgipeuH.js`).then(t=>e(t.n(),1));return{WebglAddon:t}},__vite__mapDeps([0,1])),n=new t;n.onContextLoss(()=>{n.dispose()}),C.loadAddon(n)}catch{console.warn(`[XtermViewport] WebGL addon unavailable, using canvas renderer`)}C.open(d.current);try{w.fit()}catch{}p.current=C,g.current=w,t&&C.onData(t),C.onResize(({cols:e,rows:t})=>{f(e,t),n?.(e,t)}),_.current=new ResizeObserver(e=>{if(g.current&&!s){for(let t of e)if(t.contentRect.width>0&&t.contentRect.height>0)try{g.current.fit()}catch{}}}),_.current.observe(d.current);try{let e=w.proposeDimensions();e&&f(e.cols,e.rows)}catch{}for(C.writeln(`\x1B[1;36m╔════════════════════════════════════════════════════╗\x1B[0m`),C.writeln(`\x1B[1;36m║\x1B[0m \x1B[1;37mCLM Generative Hypermedia Terminal\x1B[0m \x1B[1;36m║\x1B[0m`),C.writeln(`\x1B[1;36m║\x1B[0m \x1B[0;90mDual-Engine: Server PTY │ Browser WASM\x1B[0m \x1B[1;36m║\x1B[0m`),C.writeln(`\x1B[1;36m╚════════════════════════════════════════════════════╝\x1B[0m`),C.writeln(``);v.current.length>0;){let e=v.current.shift();e&&C.write(e)}C.focus();try{window.__CLM_ACTIVE_TERMINAL__=C}catch{}a?.(C)}catch(e){console.error(`[XtermViewport] Failed to initialize xterm.js:`,e),d.current&&!s&&(d.current.innerHTML=`
|
|
3
3
|
<div style="padding: 16px; color: #f14c4c; font-family: monospace; font-size: 12px; line-height: 1.5;">
|
|
4
4
|
<div style="font-weight: bold; margin-bottom: 8px; color: #e5c07b;">⚠️ Terminal Initialization Error</div>
|
|
5
5
|
<div style="color: #cccccc; margin-bottom: 12px;">${e?.message||`Failed to initialize terminal emulator.`}</div>
|
|
@@ -17,9 +17,9 @@ import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./v
|
|
|
17
17
|
`)},clear(){p.current?.clear()},focus(){p.current?.focus()},getDimensions(){let e=p.current;return{cols:e?.cols??80,rows:e?.rows??24}},fit(){try{g.current?.fit()}catch{}}})),(0,m.jsx)(`div`,{ref:d,id:`xterm-viewport`,"data-testid":`xterm-viewport`,style:{width:`100%`,height:`100%`,backgroundColor:h.background,padding:`4px`}})});g.displayName=`XtermViewport`;var _={reset:`\x1B[0m`,bold:`\x1B[1m`,dim:`\x1B[2m`,clear:`\x1B[2J\x1B[3J\x1B[H`,black:`\x1B[30m`,red:`\x1B[31m`,green:`\x1B[32m`,yellow:`\x1B[33m`,blue:`\x1B[34m`,magenta:`\x1B[35m`,cyan:`\x1B[36m`,white:`\x1B[37m`,gray:`\x1B[90m`,boldRed:`\x1B[1;31m`,boldGreen:`\x1B[1;32m`,boldYellow:`\x1B[1;33m`,boldBlue:`\x1B[1;34m`,boldMagenta:`\x1B[1;35m`,boldCyan:`\x1B[1;36m`,boldWhite:`\x1B[1;37m`};function v(e){let t=`Browser WASM`,n=_.boldCyan;return e===`server`?(t=`Server PTY`,n=_.boldGreen):e===`js`&&(t=`JavaScript Interactive Console`,n=_.boldYellow),`\r\n${n}[Engine Switch] Now using: ${t}${_.reset}\r\n`}function y(e,t){return e===`server`?t?`${_.green}$${_.reset} `:`${_.red}(offline) $${_.reset} `:e===`js`?`${_.yellow}js>${_.reset} `:`${_.cyan}wasm>${_.reset} `}function b(e){if(e===void 0)return`${_.gray}undefined${_.reset}`;if(e===null)return`${_.yellow}null${_.reset}`;if(typeof e==`boolean`)return`${_.yellow}${e}${_.reset}`;if(typeof e==`number`||typeof e==`bigint`)return`${_.green}${e}${_.reset}`;if(typeof e==`string`)return`${_.cyan}'${e}'${_.reset}`;if(typeof e==`symbol`)return`${_.green}${e.toString()}${_.reset}`;if(typeof e==`function`)return`${_.magenta}[Function: ${e.name||`anonymous`}]${_.reset}`;if(Array.isArray(e))return e.length<=15?`[ ${e.map(e=>b(e)).join(`, `)} ]`:`Array(${e.length}) [ ${e.slice(0,5).map(e=>b(e)).join(`, `)}, ... ]`;if(typeof e==`object`)try{let t=JSON.stringify(e,null,2);return t&&t.length<1e3?t:`[Object ${e.constructor?.name||`Object`}]`}catch{return`[Object ${e.constructor?.name||`Object`}]`}return String(e)}var x=class{socket=null;url;reconnectTimer=null;maxReconnectAttempts=5;reconnectAttempts=0;_onData=null;_onDisconnect=null;_connected=!1;constructor(e){if(e)this.url=e;else if(typeof window<`u`&&window.location){let e=window.location.protocol===`https:`?`wss:`:`ws:`;if(window.location.protocol===`https:`||window.location.hostname.endsWith(`.pkc.pub`)||window.location.hostname!==`localhost`&&window.location.hostname!==`127.0.0.1`)this.url=`${e}//${window.location.host}/api/ws/pty`;else{let t=typeof process<`u`&&({}.MCARD_WS_PORT||`5321`)||`5321`;this.url=`${e}//${window.location.hostname}:${t}/api/ws/pty`}}else this.url=`ws://127.0.0.1:5321/api/ws/pty`}get connected(){return this._connected}onData(e){this._onData=e}onDisconnect(e){this._onDisconnect=e}connect(){try{if(typeof WebSocket>`u`){console.warn(`[PtyWebSocketClient] WebSocket not available (SSR)`);return}this.socket=new WebSocket(this.url),this.socket.binaryType=`arraybuffer`,this.socket.onopen=()=>{this._connected=!0,this.reconnectAttempts=0,console.log(`[PtyWebSocketClient] Connected to PTY backend`)},this.socket.onmessage=e=>{if(this._onData){if(e.data instanceof ArrayBuffer){let t=new TextDecoder;this._onData(t.decode(e.data))}else this._onData(e.data)}},this.socket.onclose=()=>{this._connected=!1,this._onDisconnect?.(),this.scheduleReconnect()},this.socket.onerror=()=>{this._connected=!1}}catch(e){console.warn(`[PtyWebSocketClient] Connection failed:`,e)}}send(e){this.socket&&this.socket.readyState===WebSocket.OPEN&&this.socket.send(e)}resize(e){this.socket&&this.socket.readyState===WebSocket.OPEN&&this.socket.send(JSON.stringify({type:`resize`,cols:e.cols,rows:e.rows}))}disconnect(){this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.socket?.close(),this.socket=null,this._connected=!1}scheduleReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts++;let e=Math.min(1e3*2**this.reconnectAttempts,3e4);this.reconnectTimer=setTimeout(()=>this.connect(),e)}};function S(){return[`${_.boldCyan}CLM Browser WASM REPL Commands:${_.reset}`,` help, ? Show this help`,` version Show CLM version`,` hash <text> Compute content hash`,` echo <text> Echo text back`,` env Show WASM environment info`,` clear Clear terminal`].join(`\r
|
|
18
18
|
`)}function C(){return[`${_.boldYellow}CLM JavaScript Interactive Console:${_.reset}`,` Evaluates JavaScript/TypeScript expressions with top-level await.`,` Access live browser runtime, window globals, and MCard Studio subsystem APIs.`,` Special commands:`,` help, ? Show this help`,` clear Clear console buffer`,` reset() Reset local context`].join(`\r
|
|
19
19
|
`)}function w(e){let t=e.trim();if(t===`help`||t===`?`)return S();if(t===`version`)return`${_.boldWhite}CLM Browser WASM REPL v0.2.0${_.reset} (clm-kernel runtime)`;if(t===`env`)return[`Runtime: Browser WASM`,`UserAgent: ${typeof navigator<`u`?navigator.userAgent.slice(0,60):`N/A`}`,`Timestamp: ${new Date().toISOString()}`].join(`\r
|
|
20
|
-
`);if(t.startsWith(`hash `)){let e=t.slice(5),n=2166136261;for(let t=0;t<e.length;t++)n^=e.charCodeAt(t),n+=(n<<1)+(n<<4)+(n<<7)+(n<<8)+(n<<24);return`${_.gray}hash:${_.reset} ${(n>>>0).toString(16).padStart(8,`0`)}`}return t.startsWith(`echo `)?t.slice(5):null}var T=class{worker=null;_onOutput=null;pendingResolves=new Map;onOutput(e){this._onOutput=e}initialize(){try{if(typeof window>`u`||typeof Worker>`u`)return;try{let e;try{e=Function(`return import.meta.url`)()}catch{}let t=e?new URL(`../../workers/wasmReplWorker.ts`,e):new URL(`/src/workers/wasmReplWorker.ts`,window.location.origin);this.worker=new Worker(t,{type:`module`}),this.worker.onerror=e=>{console.warn(`[WasmReplEngine] WebWorker failed, will use local evaluation fallback:`,e),this.worker?.terminate(),this.worker=null}}catch(e){console.warn(`[WasmReplEngine] Worker creation failed, using local evaluation fallback:`,e),this.worker=null}this.worker&&(this.worker.onmessage=e=>{let{type:t,requestId:n,output:r,exitCode:i,durationMs:a}=e.data;if(t===`REPL_RESULT`){let e=this.pendingResolves.get(n);e&&(e({output:r,exitCode:i,engine:`browser`,durationMs:a}),this.pendingResolves.delete(n))}else if(t===`REPL_ERROR`){let e=`${_.red}Error: ${r}${_.reset}`,t=this.pendingResolves.get(n);t&&(t({output:e,exitCode:1,engine:`browser`,durationMs:a}),this.pendingResolves.delete(n))}})}catch(e){console.warn(`[WasmReplEngine] WebWorker initialization failed:`,e)}}async execute(e){let t=crypto.randomUUID();return new Promise(n=>{if(!this.worker){let t=performance.now();n({output:this.evaluateLocal(e),exitCode:0,engine:`browser`,durationMs:performance.now()-t});return}this.pendingResolves.set(t,n),this.worker.postMessage({type:`REPL_EXECUTE`,requestId:t,command:e}),setTimeout(()=>{this.pendingResolves.has(t)&&(this.pendingResolves.delete(t),n({output:`${_.yellow}Execution timed out after 30s${_.reset}`,exitCode:124,engine:`browser`,durationMs:3e4}))},3e4)})}evaluateLocal(e){let t=w(e);if(t!==null)return t;let n=e.trim();return`${_.yellow}Unknown command: ${n}${_.reset}. Type 'help' for available commands.`}dispose(){this.worker?.terminate(),this.worker=null,this.pendingResolves.clear()}},E=class{executionContext={};constructor(){this.resetContext()}resetContext(){let e=typeof window<`u`?window:globalThis;this.executionContext={window:e,document:typeof document<`u`?document:void 0,globalThis:e,console:{log:(...e)=>console.log(`[CLM JS Console]`,...e),warn:(...e)=>console.warn(`[CLM JS Console]`,...e),error:(...e)=>console.error(`[CLM JS Console]`,...e),info:(...e)=>console.info(`[CLM JS Console]`,...e)},help:()=>C(),clear:()=>_.clear}}bindGlobal(e,t){this.executionContext[e]=t}async execute(e){let t=performance.now(),n=e.trim();if(!n)return{output:``,exitCode:0,engine:`js`,durationMs:0};if(n===`help`||n===`?`)return{output:C(),exitCode:0,engine:`js`,durationMs:performance.now()-t};if(n===`clear`)return{output:_.clear,exitCode:0,engine:`js`,durationMs:performance.now()-t};if(n===`reset()`||n===`reset`)return this.resetContext(),{output:`${_.green}Execution context reset.${_.reset}`,exitCode:0,engine:`js`,durationMs:performance.now()-t};try{let e=n.startsWith(`{`)&&n.endsWith(`}`)&&!n.includes(`;`)?`(${n})`:n,r=Object.keys(this.executionContext),i=Object.values(this.executionContext),a;try{a=Function(...r,`return (async () => {\n return (${e});\n})();`)}catch{a=Function(...r,`return (async () => {\n ${e}\n})();`)}return{output:b(await a(...i)),exitCode:0,engine:`js`,durationMs:performance.now()-t}}catch(e){let n=e?.name||`Error`,r=e?.message||String(e);return{output:`${_.red}Uncaught ${n}: ${r}${_.reset}`,exitCode:1,engine:`js`,durationMs:performance.now()-t}}}dispose(){this.executionContext={}}},D=class{activeEngine=`browser`;ptyClient;wasmEngine;jsEngine;disposables=new
|
|
20
|
+
`);if(t.startsWith(`hash `)){let e=t.slice(5),n=2166136261;for(let t=0;t<e.length;t++)n^=e.charCodeAt(t),n+=(n<<1)+(n<<4)+(n<<7)+(n<<8)+(n<<24);return`${_.gray}hash:${_.reset} ${(n>>>0).toString(16).padStart(8,`0`)}`}return t.startsWith(`echo `)?t.slice(5):null}var T=class{worker=null;_onOutput=null;pendingResolves=new Map;onOutput(e){this._onOutput=e}initialize(){try{if(typeof window>`u`||typeof Worker>`u`)return;try{let e;try{e=Function(`return import.meta.url`)()}catch{}let t=e?new URL(`../../workers/wasmReplWorker.ts`,e):new URL(`/src/workers/wasmReplWorker.ts`,window.location.origin);this.worker=new Worker(t,{type:`module`}),this.worker.onerror=e=>{console.warn(`[WasmReplEngine] WebWorker failed, will use local evaluation fallback:`,e),this.worker?.terminate(),this.worker=null}}catch(e){console.warn(`[WasmReplEngine] Worker creation failed, using local evaluation fallback:`,e),this.worker=null}this.worker&&(this.worker.onmessage=e=>{let{type:t,requestId:n,output:r,exitCode:i,durationMs:a}=e.data;if(t===`REPL_RESULT`){let e=this.pendingResolves.get(n);e&&(e({output:r,exitCode:i,engine:`browser`,durationMs:a}),this.pendingResolves.delete(n))}else if(t===`REPL_ERROR`){let e=`${_.red}Error: ${r}${_.reset}`,t=this.pendingResolves.get(n);t&&(t({output:e,exitCode:1,engine:`browser`,durationMs:a}),this.pendingResolves.delete(n))}})}catch(e){console.warn(`[WasmReplEngine] WebWorker initialization failed:`,e)}}async execute(e){let t=crypto.randomUUID();return new Promise(n=>{if(!this.worker){let t=performance.now();n({output:this.evaluateLocal(e),exitCode:0,engine:`browser`,durationMs:performance.now()-t});return}this.pendingResolves.set(t,n),this.worker.postMessage({type:`REPL_EXECUTE`,requestId:t,command:e}),setTimeout(()=>{this.pendingResolves.has(t)&&(this.pendingResolves.delete(t),n({output:`${_.yellow}Execution timed out after 30s${_.reset}`,exitCode:124,engine:`browser`,durationMs:3e4}))},3e4)})}evaluateLocal(e){let t=w(e);if(t!==null)return t;let n=e.trim();return`${_.yellow}Unknown command: ${n}${_.reset}. Type 'help' for available commands.`}dispose(){this.worker?.terminate(),this.worker=null,this.pendingResolves.clear()}},E=class{executionContext={};constructor(){this.resetContext()}resetContext(){let e=typeof window<`u`?window:globalThis;this.executionContext={window:e,document:typeof document<`u`?document:void 0,globalThis:e,console:{log:(...e)=>console.log(`[CLM JS Console]`,...e),warn:(...e)=>console.warn(`[CLM JS Console]`,...e),error:(...e)=>console.error(`[CLM JS Console]`,...e),info:(...e)=>console.info(`[CLM JS Console]`,...e)},help:()=>C(),clear:()=>_.clear}}bindGlobal(e,t){this.executionContext[e]=t}async execute(e){let t=performance.now(),n=e.trim();if(!n)return{output:``,exitCode:0,engine:`js`,durationMs:0};if(n===`help`||n===`?`)return{output:C(),exitCode:0,engine:`js`,durationMs:performance.now()-t};if(n===`clear`)return{output:_.clear,exitCode:0,engine:`js`,durationMs:performance.now()-t};if(n===`reset()`||n===`reset`)return this.resetContext(),{output:`${_.green}Execution context reset.${_.reset}`,exitCode:0,engine:`js`,durationMs:performance.now()-t};try{let e=n.startsWith(`{`)&&n.endsWith(`}`)&&!n.includes(`;`)?`(${n})`:n,r=Object.keys(this.executionContext),i=Object.values(this.executionContext),a;try{a=Function(...r,`return (async () => {\n return (${e});\n})();`)}catch{a=Function(...r,`return (async () => {\n ${e}\n})();`)}return{output:b(await a(...i)),exitCode:0,engine:`js`,durationMs:performance.now()-t}}catch(e){let n=e?.name||`Error`,r=e?.message||String(e);return{output:`${_.red}Uncaught ${n}: ${r}${_.reset}`,exitCode:1,engine:`js`,durationMs:performance.now()-t}}}dispose(){this.executionContext={}}},D=class{activeEngine=`browser`;ptyClient;wasmEngine;jsEngine;disposables=new o;_onOutput=null;commandBuffer=``;constructor(e){this.ptyClient=new x(e),this.wasmEngine=new T,this.jsEngine=new E}get engine(){return this.activeEngine}get js(){return this.jsEngine}get wasm(){return this.wasmEngine}get pty(){return this.ptyClient}onOutput(e){this._onOutput=e}initialize(){this.ptyClient.onData(e=>{this.activeEngine===`server`&&this._onOutput?.(e)}),this.wasmEngine.onOutput(e=>{this.activeEngine===`browser`&&this._onOutput?.(e)}),this.wasmEngine.initialize(),this.ptyClient.connect(),this.writePrompt(),this.disposables.add(()=>this.ptyClient.disconnect()),this.disposables.add(()=>this.wasmEngine.dispose()),this.disposables.add(()=>this.jsEngine.dispose())}switchEngine(e){e!==this.activeEngine&&(this.activeEngine=e,this._onOutput?.(v(e)),this.commandBuffer=``,this.writePrompt())}reconnect(){this.activeEngine===`server`?(this._onOutput?.(`\r\n${_.gray}[PTY] Reconnecting WebSocket session...${_.reset}\r\n`),this.ptyClient.disconnect(),this.ptyClient.connect()):this.writePrompt()}isPtyConnected(){return this.ptyClient.connected}handleInput(e){if(this.activeEngine===`server`&&this.ptyClient.connected){this.ptyClient.send(e);return}for(let t of e){if(t===``){this.commandBuffer=``,this._onOutput?.(`^C\r
|
|
21
21
|
`),this.writePrompt();continue}if(t===`\f`){this._onOutput?.(_.clear),this.writePrompt(),this.commandBuffer&&this._onOutput?.(this.commandBuffer);continue}if(t===`\r`||t===`
|
|
22
22
|
`){this._onOutput?.(`\r
|
|
23
23
|
`);let e=this.commandBuffer.trim();if(this.commandBuffer=``,e===`clear`){this._onOutput?.(_.clear),this.writePrompt();return}e?this.activeEngine===`server`&&!this.ptyClient.connected?(this._onOutput?.(`${_.red}[PTY Offline] Cannot execute '${e}': Server PTY is disconnected.${_.reset}\r\n${_.gray}Tip: Switch to 'WASM (Local)' or 'JS (Console)' tab.${_.reset}\r\n`),this.writePrompt()):(this.activeEngine===`js`?this.jsEngine:this.wasmEngine).execute(e).then(e=>{this._onOutput?.(e.output+`\r
|
|
24
|
-
`),this.writePrompt()}):this.writePrompt()}else t===``||t===`\b`?this.commandBuffer.length>0&&(this.commandBuffer=this.commandBuffer.slice(0,-1),this._onOutput?.(`\b \b`)):t>=` `&&(this.commandBuffer+=t,this._onOutput?.(t))}}resize(e,t){this.activeEngine===`server`&&this.ptyClient.resize({cols:e,rows:t})}writePrompt(){this._onOutput?.(y(this.activeEngine,this.ptyClient.connected))}async dispose(){await this.disposables.dispose()}};function O(){try{if(typeof window<`u`&&window.__FARO_INSTANCE__)return window.__FARO_INSTANCE__}catch{}return null}var k=new class{commandHistory=[];keystrokeLatencies=[];errorCount=0;lastKeystrokeTime=0;recordKeystroke(){this.lastKeystrokeTime=performance.now()}recordEcho(){if(this.lastKeystrokeTime===0)return null;let e=performance.now()-this.lastKeystrokeTime;this.keystrokeLatencies.push(e),this.lastKeystrokeTime=0;let t={latencyMs:e,timestamp:Date.now()},n=O();return n?.api&&n.api.pushMeasurement({type:`terminal:keystroke:latency`,values:{duration_ms:e}}),t}recordCommandExecution(e,t,n,r){let i={command:e,engine:t,exitCode:n,durationMs:r,timestamp:Date.now()};this.commandHistory.push(i);let a=O();return a?.api&&a.api.pushEvent(`terminal:command:execute`,{command:e,engine:t,exit_code:String(n),duration_ms:String(Math.round(r))}),i}recordError(e,t){this.errorCount++;let n={error:e,engine:t,timestamp:Date.now()},r=O();return r?.api&&r.api.pushEvent(`terminal:error`,{error:e,engine:t}),n}recordChatMessage(e,t,n){let r={role:e,hasAttachments:t,gateVerdict:n,timestamp:Date.now()},i=O();return i?.api&&i.api.pushEvent(`chat:message`,{role:e,has_attachments:String(t),gate_verdict:n||`none`}),r}getAverageKeystrokeLatency(){return this.keystrokeLatencies.length===0?0:this.keystrokeLatencies.reduce((e,t)=>e+t,0)/this.keystrokeLatencies.length}getCommandSummary(){let e={server:0,browser:0,js:0},t=0;for(let n of this.commandHistory)e[n.engine]++,t+=n.durationMs;return{totalCommands:this.commandHistory.length,avgDurationMs:this.commandHistory.length>0?t/this.commandHistory.length:0,errorCount:this.errorCount,byEngine:e}}getMetrics(){return{commandCount:this.commandHistory.length,errorCount:this.errorCount,avgKeystrokeLatencyMs:this.getAverageKeystrokeLatency()}}reset(){this.commandHistory=[],this.keystrokeLatencies=[],this.errorCount=0,this.lastKeystrokeTime=0}},A=`mcard-studio-terminal`,j=`${A}:scrollback`,M=`${A}:chat-messages`,N=`${A}:session-meta`,P=1e4,F=500,I=new class{storageAvailable;inMemoryFallback=new Map;constructor(){this.storageAvailable=this.checkStorageAvailability()}checkStorageAvailability(){try{if(typeof localStorage>`u`)return!1;let e=`__clm_storage_test__`;return localStorage.setItem(e,`1`),localStorage.removeItem(e),!0}catch{return!1}}setItem(e,t){if(this.storageAvailable)try{localStorage.setItem(e,t);return}catch{}this.inMemoryFallback.set(e,t)}getItem(e){if(this.storageAvailable)try{let t=localStorage.getItem(e);if(t!==null)return t}catch{}return this.inMemoryFallback.get(e)??null}removeItem(e){if(this.storageAvailable)try{localStorage.removeItem(e)}catch{}this.inMemoryFallback.delete(e)}saveScrollback(e){try{let t=e.length>P?e.slice(-1e4):e;return this.setItem(j,JSON.stringify(t)),!0}catch(e){return console.warn(`[PwaTerminalStorage] Failed to save scrollback:`,e),!1}}saveEngineScrollback(e,t){try{let n=`${j}:${e}`,r=t.length>P?t.slice(-1e4):t;return this.setItem(n,JSON.stringify(r)),!0}catch(t){return console.warn(`[PwaTerminalStorage] Failed to save ${e} scrollback:`,t),!1}}restoreScrollback(){try{let e=this.getItem(j);return e?JSON.parse(e):[]}catch{return[]}}restoreEngineScrollback(e){try{let t=`${j}:${e}`,n=this.getItem(t);return n?JSON.parse(n):[]}catch{return[]}}saveChatMessages(e){if(!this.storageAvailable)return!1;try{let t=(e.length>F?e.slice(-500):e).map(e=>({...e,attachments:e.attachments?.map(e=>({...e,content:typeof e.content==`string`?e.content:void 0}))}));return localStorage.setItem(M,JSON.stringify(t)),!0}catch(e){return console.warn(`[PwaTerminalStorage] Failed to save chat messages:`,e),!1}}restoreChatMessages(){if(!this.storageAvailable)return[];try{let e=localStorage.getItem(M);return e?JSON.parse(e):[]}catch{return[]}}saveSessionMeta(e){if(!this.storageAvailable)return!1;try{return localStorage.setItem(N,JSON.stringify(e)),!0}catch{return!1}}restoreSessionMeta(){if(!this.storageAvailable)return null;try{let e=localStorage.getItem(N);return e?JSON.parse(e):null}catch{return null}}saveSession(e){return[this.saveScrollback(e.scrollback),this.saveChatMessages(e.chatMessages),this.saveSessionMeta({...e.meta,savedAt:Date.now()})].every(Boolean)}restoreSession(){let e=this.restoreSessionMeta();return e?{scrollback:this.restoreScrollback(),chatMessages:this.restoreChatMessages(),meta:{...e,restoredAt:Date.now()}}:null}clearSession(){if(this.storageAvailable)try{localStorage.removeItem(j),localStorage.removeItem(M),localStorage.removeItem(N)}catch{}}hasSession(){return this.storageAvailable?localStorage.getItem(N)!==null:!1}getStorageUsage(){if(!this.storageAvailable)return{scrollbackBytes:0,chatBytes:0,metaBytes:0,totalBytes:0};let e=(localStorage.getItem(j)||``).length*2,t=(localStorage.getItem(M)||``).length*2,n=(localStorage.getItem(N)||``).length*2;return{scrollbackBytes:e,chatBytes:t,metaBytes:n,totalBytes:e+t+n}}},L=()=>{let e=
|
|
25
|
-
\x1B[32m[JS Console] Execution context reset to default.\x1B[0m`),r.current?.writePrompt()):r.current?.writePrompt(),n.current?.focus()},[e]),x=(0,s.useCallback)(e=>{d(!0,`session_s197_web`),n.current?.fit(),n.current?.focus()},[]),S=e===`js`?`#e5c07b`:e===`browser`||
|
|
24
|
+
`),this.writePrompt()}):this.writePrompt()}else t===``||t===`\b`?this.commandBuffer.length>0&&(this.commandBuffer=this.commandBuffer.slice(0,-1),this._onOutput?.(`\b \b`)):t>=` `&&(this.commandBuffer+=t,this._onOutput?.(t))}}resize(e,t){this.activeEngine===`server`&&this.ptyClient.resize({cols:e,rows:t})}writePrompt(){this._onOutput?.(y(this.activeEngine,this.ptyClient.connected))}async dispose(){await this.disposables.dispose()}};function O(){try{if(typeof window<`u`&&window.__FARO_INSTANCE__)return window.__FARO_INSTANCE__}catch{}return null}var k=new class{commandHistory=[];keystrokeLatencies=[];errorCount=0;lastKeystrokeTime=0;recordKeystroke(){this.lastKeystrokeTime=performance.now()}recordEcho(){if(this.lastKeystrokeTime===0)return null;let e=performance.now()-this.lastKeystrokeTime;this.keystrokeLatencies.push(e),this.lastKeystrokeTime=0;let t={latencyMs:e,timestamp:Date.now()},n=O();return n?.api&&n.api.pushMeasurement({type:`terminal:keystroke:latency`,values:{duration_ms:e}}),t}recordCommandExecution(e,t,n,r){let i={command:e,engine:t,exitCode:n,durationMs:r,timestamp:Date.now()};this.commandHistory.push(i);let a=O();return a?.api&&a.api.pushEvent(`terminal:command:execute`,{command:e,engine:t,exit_code:String(n),duration_ms:String(Math.round(r))}),i}recordError(e,t){this.errorCount++;let n={error:e,engine:t,timestamp:Date.now()},r=O();return r?.api&&r.api.pushEvent(`terminal:error`,{error:e,engine:t}),n}recordChatMessage(e,t,n){let r={role:e,hasAttachments:t,gateVerdict:n,timestamp:Date.now()},i=O();return i?.api&&i.api.pushEvent(`chat:message`,{role:e,has_attachments:String(t),gate_verdict:n||`none`}),r}getAverageKeystrokeLatency(){return this.keystrokeLatencies.length===0?0:this.keystrokeLatencies.reduce((e,t)=>e+t,0)/this.keystrokeLatencies.length}getCommandSummary(){let e={server:0,browser:0,js:0},t=0;for(let n of this.commandHistory)e[n.engine]++,t+=n.durationMs;return{totalCommands:this.commandHistory.length,avgDurationMs:this.commandHistory.length>0?t/this.commandHistory.length:0,errorCount:this.errorCount,byEngine:e}}getMetrics(){return{commandCount:this.commandHistory.length,errorCount:this.errorCount,avgKeystrokeLatencyMs:this.getAverageKeystrokeLatency()}}reset(){this.commandHistory=[],this.keystrokeLatencies=[],this.errorCount=0,this.lastKeystrokeTime=0}},A=`mcard-studio-terminal`,j=`${A}:scrollback`,M=`${A}:chat-messages`,N=`${A}:session-meta`,P=1e4,F=500,I=new class{storageAvailable;inMemoryFallback=new Map;constructor(){this.storageAvailable=this.checkStorageAvailability()}checkStorageAvailability(){try{if(typeof localStorage>`u`)return!1;let e=`__clm_storage_test__`;return localStorage.setItem(e,`1`),localStorage.removeItem(e),!0}catch{return!1}}setItem(e,t){if(this.storageAvailable)try{localStorage.setItem(e,t);return}catch{}this.inMemoryFallback.set(e,t)}getItem(e){if(this.storageAvailable)try{let t=localStorage.getItem(e);if(t!==null)return t}catch{}return this.inMemoryFallback.get(e)??null}removeItem(e){if(this.storageAvailable)try{localStorage.removeItem(e)}catch{}this.inMemoryFallback.delete(e)}saveScrollback(e){try{let t=e.length>P?e.slice(-1e4):e;return this.setItem(j,JSON.stringify(t)),!0}catch(e){return console.warn(`[PwaTerminalStorage] Failed to save scrollback:`,e),!1}}saveEngineScrollback(e,t){try{let n=`${j}:${e}`,r=t.length>P?t.slice(-1e4):t;return this.setItem(n,JSON.stringify(r)),!0}catch(t){return console.warn(`[PwaTerminalStorage] Failed to save ${e} scrollback:`,t),!1}}restoreScrollback(){try{let e=this.getItem(j);return e?JSON.parse(e):[]}catch{return[]}}restoreEngineScrollback(e){try{let t=`${j}:${e}`,n=this.getItem(t);return n?JSON.parse(n):[]}catch{return[]}}saveChatMessages(e){if(!this.storageAvailable)return!1;try{let t=(e.length>F?e.slice(-500):e).map(e=>({...e,attachments:e.attachments?.map(e=>({...e,content:typeof e.content==`string`?e.content:void 0}))}));return localStorage.setItem(M,JSON.stringify(t)),!0}catch(e){return console.warn(`[PwaTerminalStorage] Failed to save chat messages:`,e),!1}}restoreChatMessages(){if(!this.storageAvailable)return[];try{let e=localStorage.getItem(M);return e?JSON.parse(e):[]}catch{return[]}}saveSessionMeta(e){if(!this.storageAvailable)return!1;try{return localStorage.setItem(N,JSON.stringify(e)),!0}catch{return!1}}restoreSessionMeta(){if(!this.storageAvailable)return null;try{let e=localStorage.getItem(N);return e?JSON.parse(e):null}catch{return null}}saveSession(e){return[this.saveScrollback(e.scrollback),this.saveChatMessages(e.chatMessages),this.saveSessionMeta({...e.meta,savedAt:Date.now()})].every(Boolean)}restoreSession(){let e=this.restoreSessionMeta();return e?{scrollback:this.restoreScrollback(),chatMessages:this.restoreChatMessages(),meta:{...e,restoredAt:Date.now()}}:null}clearSession(){if(this.storageAvailable)try{localStorage.removeItem(j),localStorage.removeItem(M),localStorage.removeItem(N)}catch{}}hasSession(){return this.storageAvailable?localStorage.getItem(N)!==null:!1}getStorageUsage(){if(!this.storageAvailable)return{scrollbackBytes:0,chatBytes:0,metaBytes:0,totalBytes:0};let e=(localStorage.getItem(j)||``).length*2,t=(localStorage.getItem(M)||``).length*2,n=(localStorage.getItem(N)||``).length*2;return{scrollbackBytes:e,chatBytes:t,metaBytes:n,totalBytes:e+t+n}}},L=()=>{let e=a(l),t=a(u),n=(0,s.useRef)(null),r=(0,s.useRef)(null),[i,o]=(0,s.useState)(`connecting`),c=(0,s.useRef)([]);(0,s.useEffect)(()=>{let e=new D;r.current=e,e.onOutput(e=>{n.current?.write(e),c.current.push(e),c.current.length>1e3&&(c.current=c.current.slice(-1e3))}),e.initialize();let i=setInterval(()=>{r.current&&o(r.current.isPtyConnected()?`connected`:`disconnected`)},2e3);return()=>{clearInterval(i),c.current.length>0&&(I.saveScrollback(c.current),I.saveSessionMeta({sessionId:`session_s197_web`,engine:e.engine,cols:t.cols,rows:t.rows,savedAt:Date.now()})),e.dispose(),r.current=null}},[]);let h=(0,s.useCallback)(e=>{p(e),r.current?.switchEngine(e),n.current?.focus()},[]),_=(0,s.useCallback)(e=>{k.recordKeystroke(),r.current?.handleInput(e),k.recordEcho()},[]),v=(0,s.useCallback)((e,t)=>{f(e,t),r.current?.resize(e,t)},[]),y=(0,s.useCallback)(()=>{n.current?.clear(),r.current?.writePrompt(),n.current?.focus()},[]),b=(0,s.useCallback)(()=>{e===`server`?r.current?.reconnect():e===`js`?(r.current?.js.resetContext(),n.current?.writeln(`\r
|
|
25
|
+
\x1B[32m[JS Console] Execution context reset to default.\x1B[0m`),r.current?.writePrompt()):r.current?.writePrompt(),n.current?.focus()},[e]),x=(0,s.useCallback)(e=>{d(!0,`session_s197_web`),n.current?.fit(),n.current?.focus()},[]),S=e===`js`?`#e5c07b`:e===`browser`||i===`connected`?`#89d185`:`#f14c4c`,C=e===`js`?`JavaScript Interactive Console`:e===`browser`?`Browser WASM REPL`:`Server PTY: ${i}`;return(0,m.jsxs)(`div`,{className:`terminal-view-container`,"data-testid":`terminal-view`,style:{display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,backgroundColor:`#1e1e1e`,overflow:`hidden`},children:[(0,m.jsxs)(`div`,{className:`terminal-toolbar`,style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`4px 12px`,backgroundColor:`#252526`,borderBottom:`1px solid #333333`,fontSize:`11px`,userSelect:`none`,color:`#cccccc`,minHeight:`28px`},children:[(0,m.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,m.jsx)(`span`,{style:{width:`7px`,height:`7px`,borderRadius:`50%`,backgroundColor:S,display:`inline-block`,boxShadow:`0 0 4px ${S}`},title:C}),(0,m.jsx)(`span`,{style:{fontWeight:600,color:`#e0e0e0`},children:C}),(0,m.jsxs)(`div`,{className:`engine-toggle-group`,"data-testid":`terminal-window-tabs`,style:{display:`inline-flex`,borderRadius:`3px`,overflow:`hidden`,border:`1px solid #3c3c3c`,marginLeft:`8px`},children:[(0,m.jsx)(`button`,{"data-testid":`terminal-tab-wasm`,onClick:()=>h(`browser`),style:{background:e===`browser`?`#094771`:`#2d2d2d`,color:e===`browser`?`#ffffff`:`#999999`,border:`none`,padding:`2px 8px`,fontSize:`10px`,cursor:`pointer`,fontWeight:e===`browser`?600:400},title:`Switch to in-memory Client WASM REPL window`,children:`WASM (Local)`}),(0,m.jsx)(`button`,{"data-testid":`terminal-tab-pty`,onClick:()=>h(`server`),style:{background:e===`server`?`#094771`:`#2d2d2d`,color:e===`server`?`#ffffff`:`#999999`,border:`none`,borderLeft:`1px solid #3c3c3c`,padding:`2px 8px`,fontSize:`10px`,cursor:`pointer`,fontWeight:e===`server`?600:400},title:`Switch to server-side OS PTY subprocess window`,children:`PTY (Server)`}),(0,m.jsx)(`button`,{"data-testid":`terminal-tab-js`,onClick:()=>h(`js`),style:{background:e===`js`?`#094771`:`#2d2d2d`,color:e===`js`?`#ffffff`:`#999999`,border:`none`,borderLeft:`1px solid #3c3c3c`,padding:`2px 8px`,fontSize:`10px`,cursor:`pointer`,fontWeight:e===`js`?600:400},title:`Switch to live JavaScript Interactive Console window`,children:`JS (Console)`})]})]}),(0,m.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,m.jsxs)(`span`,{style:{fontSize:`10px`,color:`#666666`,fontFamily:`monospace`},children:[t.cols,`x`,t.rows]}),(0,m.jsx)(`span`,{style:{fontSize:`9px`,padding:`1px 5px`,borderRadius:`2px`,backgroundColor:`#1b3a24`,color:`#89d185`,border:`1px solid #2e6930`},title:`Grafana Faro telemetry observer active (<16ms echo latency target)`,children:`Faro RUM`}),(0,m.jsx)(`button`,{onClick:y,style:{background:`#333333`,color:`#cccccc`,border:`1px solid #3c3c3c`,borderRadius:`2px`,padding:`2px 8px`,fontSize:`10px`,cursor:`pointer`},title:`Clear terminal buffer (Ctrl+L / clear)`,children:`Clear`}),e===`server`&&(0,m.jsx)(`button`,{onClick:b,style:{background:`#333333`,color:`#cccccc`,border:`1px solid #3c3c3c`,borderRadius:`2px`,padding:`2px 8px`,fontSize:`10px`,cursor:`pointer`},title:`Reconnect PTY WebSocket session`,children:`Reconnect`}),e===`js`&&(0,m.jsx)(`button`,{onClick:b,style:{background:`#333333`,color:`#e5c07b`,border:`1px solid #4a3d24`,borderRadius:`2px`,padding:`2px 8px`,fontSize:`10px`,cursor:`pointer`},title:`Reset JavaScript console execution context`,children:`Reset Context`})]})]}),(0,m.jsx)(`div`,{className:`terminal-viewport-wrapper`,style:{flex:1,width:`100%`,height:`calc(100% - 28px)`,overflow:`hidden`,backgroundColor:`#1e1e1e`},children:(0,m.jsx)(g,{ref:n,onData:_,onResize:v,onReady:x,fontSize:13})})]})};export{L as TerminalView,L as default};
|
package/dist/client/_astro/{ThemeSettingsViewlet.Cb1r8fWw.js → ThemeSettingsViewlet.DJpjQQ0Z.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{a as r,c as i,d as a,f as o,h as s,i as c,l,m as u,n as d,p as f,r as p,s as m,t as h}from"./themeStore.
|
|
1
|
+
import{i as e}from"./rolldown-runtime.Dd_uD5pT.js";import{a as t,i as n}from"./vendor-react.DpDU3q_x.js";import{a as r,c as i,d as a,f as o,h as s,i as c,l,m as u,n as d,p as f,r as p,s as m,t as h}from"./themeStore.CEt0e54l.js";import{r as g}from"./disposable.Dsb0sbRP.js";var _=e(t(),1);function v(e){let t=l.get(e)?.payload??i(e);if(!t)return null;let n={format:`mcard:ui/package/v1`,handle:t.handle,payload:t,exportedAt:Date.now()};return JSON.stringify(n,null,2)}function y(e){try{let t=JSON.parse(e),n=t.payload?a(t.payload):a(t);if(!n)return null;let r=o(n);if(!r||typeof r!=`object`)return null;try{s.writeFile(n.handle,JSON.stringify(n))}catch{}return n}catch{return null}}var b=n();function x(){let e=g(r),t=g(d),n=g(p),i=g(c),a=g(h),[o,s]=(0,_.useState)(``),[l,x]=(0,_.useState)(``),S=m(),C=e=>{S.applyHandle(e),x(`Applied theme: ${e.split(`/`).pop()}`)},w=e=>{S.setDensity(e),x(`Applied density: ${e.split(`/`).pop()}`)};return(0,b.jsxs)(`div`,{className:`mcard-panel`,style:{padding:`var(--mcard-space-md)`,overflowY:`auto`},children:[(0,b.jsxs)(`div`,{className:`mcard-panel-header`,style:{marginBottom:`var(--mcard-space-md)`},children:[(0,b.jsx)(`h2`,{children:`🎨 Theme & Presentation Settings`}),(0,b.jsx)(`span`,{className:`mcard-badge mcard-badge-primary`,children:`Program CS`})]}),l&&(0,b.jsx)(`div`,{className:`mcard-badge mcard-badge-success`,style:{marginBottom:`var(--mcard-space-sm)`,display:`block`},children:l}),(0,b.jsxs)(`section`,{style:{marginBottom:`var(--mcard-space-lg)`},children:[(0,b.jsx)(`h3`,{style:{fontSize:`var(--mcard-font-size-md)`,marginBottom:`var(--mcard-space-xs)`},children:`Color Themes`}),(0,b.jsxs)(`p`,{style:{fontSize:`var(--mcard-font-size-xs)`,color:`var(--mcard-text-muted)`,marginBottom:`var(--mcard-space-sm)`},children:[`Active Handle: `,(0,b.jsx)(`code`,{children:e})]}),(0,b.jsx)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(auto-fill, minmax(180px, 1fr))`,gap:`var(--mcard-space-sm)`},children:u.map(t=>{let n=e===t.handle;return(0,b.jsxs)(`button`,{className:`mcard-surface-card ${n?`selected`:``}`,style:{cursor:`pointer`,textAlign:`left`,border:n?`2px solid var(--mcard-accent-primary)`:`1px solid var(--mcard-border-default)`,background:t.tokens[`--mcard-bg-surface`],color:t.tokens[`--mcard-text-primary`]},onClick:()=>C(t.handle),children:[(0,b.jsx)(`div`,{style:{fontWeight:600,fontSize:`var(--mcard-font-size-sm)`},children:t.meta.name}),(0,b.jsxs)(`div`,{style:{fontSize:`10px`,opacity:.7,marginTop:`4px`},children:[`Contrast: `,t.meta.contrast,` · `,t.id]})]},t.handle)})})]}),(0,b.jsxs)(`section`,{style:{marginBottom:`var(--mcard-space-lg)`},children:[(0,b.jsx)(`h3`,{style:{fontSize:`var(--mcard-font-size-md)`,marginBottom:`var(--mcard-space-xs)`},children:`Display Density`}),(0,b.jsx)(`div`,{style:{display:`flex`,gap:`var(--mcard-space-sm)`},children:f.map(e=>(0,b.jsxs)(`button`,{className:`mcard-button ${t===e.handle?`mcard-button-primary`:``}`,onClick:()=>w(e.handle),children:[e.meta.name,` (`,e.tokens[`--mcard-font-size-base`],`)`]},e.handle))})]}),(0,b.jsxs)(`section`,{style:{marginBottom:`var(--mcard-space-lg)`},children:[(0,b.jsx)(`h3`,{style:{fontSize:`var(--mcard-font-size-md)`,marginBottom:`var(--mcard-space-xs)`},children:`Active Polynomial Coordinates`}),(0,b.jsxs)(`div`,{className:`mcard-inspector`,style:{background:`var(--mcard-bg-elevated)`,borderRadius:`var(--mcard-radius-md)`},children:[(0,b.jsxs)(`div`,{className:`mcard-inspector-row`,children:[(0,b.jsx)(`span`,{className:`mcard-inspector-key`,children:`Environment`}),(0,b.jsx)(`span`,{className:`mcard-inspector-value`,children:n})]}),(0,b.jsxs)(`div`,{className:`mcard-inspector-row`,children:[(0,b.jsx)(`span`,{className:`mcard-inspector-key`,children:`Responsive Profile`}),(0,b.jsx)(`span`,{className:`mcard-inspector-value`,children:i})]}),(0,b.jsxs)(`div`,{className:`mcard-inspector-row`,children:[(0,b.jsx)(`span`,{className:`mcard-inspector-key`,children:`Context`}),(0,b.jsx)(`span`,{className:`mcard-inspector-value`,children:a})]})]})]}),(0,b.jsxs)(`section`,{children:[(0,b.jsx)(`h3`,{style:{fontSize:`var(--mcard-font-size-md)`,marginBottom:`var(--mcard-space-xs)`},children:`Cross-Node Style Exchange`}),(0,b.jsx)(`div`,{style:{display:`flex`,gap:`var(--mcard-space-sm)`,marginBottom:`var(--mcard-space-sm)`},children:(0,b.jsx)(`button`,{className:`mcard-button`,onClick:()=>{let t=v(e);t&&(navigator.clipboard?.writeText(t),x(`Theme JSON copied to clipboard!`))},children:`📋 Copy Active Theme Package`})}),(0,b.jsx)(`textarea`,{className:`mcard-input`,style:{width:`100%`,height:`60px`,fontFamily:`var(--mcard-font-mono)`,fontSize:`11px`,resize:`vertical`},placeholder:`Paste Theme Package JSON here...`,value:o,onChange:e=>s(e.target.value)}),(0,b.jsx)(`button`,{className:`mcard-button mcard-button-primary`,style:{marginTop:`var(--mcard-space-xs)`},onClick:()=>{if(!o.trim())return;let e=y(o);e?(S.applyHandle(e.handle),x(`Imported and applied: ${e.meta.name}`),s(``)):x(`Error: Invalid theme package format.`)},children:`Import & Apply`})]})]})}export{x as ThemeSettingsViewlet,x as default};
|