siduri 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -5
- package/dist/clean-machine-smoke.test.js +3 -3
- package/dist/configurators/archive.d.ts +6 -0
- package/dist/configurators/archive.js +31 -0
- package/dist/configurators/index.d.ts +1 -0
- package/dist/configurators/index.js +4 -2
- package/dist/configurators/memory.d.ts +5 -2
- package/dist/configurators/memory.js +18 -23
- package/dist/generator.js +19 -19
- package/dist/generator.test.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -5
- package/dist/release-check.js +2 -2
- package/dist/web-dist/404/index.html +1 -1
- package/dist/web-dist/404.html +1 -1
- package/dist/web-dist/__next.__PAGE__.txt +31 -29
- package/dist/web-dist/__next._full.txt +20 -19
- package/dist/web-dist/__next._tree.txt +1 -1
- package/dist/web-dist/_next/static/chunks/app/chat/{page-ab56048b707a3ddd.js → page-c2c01bacc6562e40.js} +1 -1
- package/dist/web-dist/_next/static/chunks/app/operator/page-e18364329865cb68.js +1 -0
- package/dist/web-dist/_not-found/__next._full.txt +1 -1
- package/dist/web-dist/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/web-dist/_not-found/__next._tree.txt +1 -1
- package/dist/web-dist/_not-found/index.html +1 -1
- package/dist/web-dist/_not-found/index.txt +1 -1
- package/dist/web-dist/chat/__next._full.txt +2 -2
- package/dist/web-dist/chat/__next._tree.txt +1 -1
- package/dist/web-dist/chat/__next.chat.__PAGE__.txt +2 -2
- package/dist/web-dist/chat/index.html +1 -1
- package/dist/web-dist/chat/index.txt +2 -2
- package/dist/web-dist/index.html +1 -1
- package/dist/web-dist/index.txt +20 -19
- package/dist/web-dist/operator/__next._full.txt +2 -2
- package/dist/web-dist/operator/__next._tree.txt +1 -1
- package/dist/web-dist/operator/__next.operator.__PAGE__.txt +2 -2
- package/dist/web-dist/operator/index.html +1 -1
- package/dist/web-dist/operator/index.txt +2 -2
- package/package.json +7 -7
- package/dist/web-dist/_next/static/chunks/app/operator/page-6b2d0ba884183ad7.js +0 -1
- /package/dist/web-dist/_next/static/{4aL_iP3FHsLSyHzCnRQYD → TAssFHX71jXsDINzGLNGT}/_buildManifest.js +0 -0
- /package/dist/web-dist/_next/static/{4aL_iP3FHsLSyHzCnRQYD → TAssFHX71jXsDINzGLNGT}/_ssgManifest.js +0 -0
|
@@ -27,7 +27,7 @@ void main() {
|
|
|
27
27
|
}
|
|
28
28
|
gl_FragColor = vec4(1.0);
|
|
29
29
|
}
|
|
30
|
-
`;function p(e,t,s){let a=e.createShader(t);if(!a)throw Error("Failed to create shader");if(e.shaderSource(a,s),e.compileShader(a),!e.getShaderParameter(a,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(a);throw e.deleteShader(a),Error(`Shader compilation error: ${t}`)}return a}class x{constructor(e){this.gl=null,this.program=null,this.maskProgram=null,this.vertexBuffer=null,this.uvBuffer=null,this.indexBuffer=null,this.aPositionLocation=-1,this.aTexCoordLocation=-1,this.uMatrixLocation=null,this.uTextureLocation=null,this.uOpacityLocation=null,this.maskAPositionLocation=-1,this.maskATexCoordLocation=-1,this.maskUMatrixLocation=null,this.maskUTextureLocation=null,this.textures=[],this.moc=null,this.model=null,this.core=null,this.paramIndices=new Map,this.isDisposed=!1,this.modelBounds={minX:-.39,maxX:.4,minY:-.98,maxY:.18,width:.79,height:1.16,centerX:.006,centerY:-.4},this.canvas=e}initialize(e,t){this.core=e;let s={alpha:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!1,antialias:!0,stencil:!0},a=this.canvas.getContext("webgl",s)||this.canvas.getContext("experimental-webgl",s)||this.canvas.getContext("webgl2",s);if(!a)throw Error("WebGL is not supported in this browser environment");this.gl=a;let i=p(a,a.VERTEX_SHADER,m),r=p(a,a.FRAGMENT_SHADER,u),n=a.createProgram();if(!n)throw Error("Failed to create WebGL program");if(a.attachShader(n,i),a.attachShader(n,r),a.linkProgram(n),!a.getProgramParameter(n,a.LINK_STATUS))throw Error(`Program link error: ${a.getProgramInfoLog(n)}`);this.program=n,this.aPositionLocation=a.getAttribLocation(n,"a_position"),this.aTexCoordLocation=a.getAttribLocation(n,"a_texCoord"),this.uMatrixLocation=a.getUniformLocation(n,"u_matrix"),this.uTextureLocation=a.getUniformLocation(n,"u_texture"),this.uOpacityLocation=a.getUniformLocation(n,"u_opacity");let o=p(a,a.FRAGMENT_SHADER,h),l=a.createProgram();if(!l)throw Error("Failed to create Mask WebGL program");if(a.attachShader(l,i),a.attachShader(l,o),a.linkProgram(l),!a.getProgramParameter(l,a.LINK_STATUS))throw Error(`Mask Program link error: ${a.getProgramInfoLog(l)}`);if(this.maskProgram=l,this.maskAPositionLocation=a.getAttribLocation(l,"a_position"),this.maskATexCoordLocation=a.getAttribLocation(l,"a_texCoord"),this.maskUMatrixLocation=a.getUniformLocation(l,"u_matrix"),this.maskUTextureLocation=a.getUniformLocation(l,"u_texture"),this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),this.textures=t.textures.map(e=>{let t=a.createTexture();if(!t)throw Error("Failed to create WebGL texture");return a.bindTexture(a.TEXTURE_2D,t),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,e),a.generateMipmap(a.TEXTURE_2D),t}),this.moc=e.Moc.fromArrayBuffer(t.mocBuffer),!this.moc)throw Error("Failed to create Live2D Moc from ArrayBuffer");if(this.model=e.Model.fromMoc(this.moc),!this.model)throw Error("Failed to create Live2D Model from Moc");let c=this.model.parameters.ids;for(let e=0;e<c.length;e++)this.paramIndices.set(c[e],e);this.initializeNeutralMouth(),this.model.update(),this.calculateModelBounds()}initializeNeutralMouth(){this.model&&(this.setParamDirect("ParamMouthOpenY",0),this.setParamDirect("ParamMouthForm",0))}setParamDirect(e,t){let s=this.paramIndices.get(e);if(void 0!==s&&this.model){let e=this.model.parameters.minimumValues[s],a=this.model.parameters.maximumValues[s];this.model.parameters.values[s]=Math.max(e,Math.min(a,t))}}calculateModelBounds(){if(!this.model)return;let e=this.model.drawables,t=e.count,s=1/0,a=-1/0,i=1/0,r=-1/0;for(let n=0;n<t;n++){let t=e.vertexPositions[n];if(t&&0!==t.length)for(let e=0;e<t.length;e+=2){let n=t[e],o=t[e+1];n<s&&(s=n),n>a&&(a=n),o<i&&(i=o),o>r&&(r=o)}}s!==1/0&&a!==-1/0&&i!==1/0&&r!==-1/0&&(this.modelBounds={minX:s,maxX:a,minY:i,maxY:r,width:a-s,height:r-i,centerX:(s+a)/2,centerY:(i+r)/2})}getModelBounds(){return{...this.modelBounds}}setParam(e,t,s=1){let a=this.paramIndices.get(e);if(void 0!==a&&this.model){let e=this.model.parameters.values[a],i=Math.max(this.model.parameters.minimumValues[a],Math.min(this.model.parameters.maximumValues[a],t));this.model.parameters.values[a]=e+(i-e)*s}}render(e,t=Date.now()){let s;if(this.isDisposed||!this.gl||!this.model||!this.program)return;let a=this.gl,i=this.canvas.width,r=this.canvas.height;if(0===i||0===r)return;let n=e.calculateFrameParameters(t);this.setParam("ParamAngleX",n.angleX,.2),this.setParam("ParamAngleY",n.angleY,.2),this.setParam("ParamAngleZ",n.angleZ,.2),this.setParam("ParamBodyAngleX",n.bodyAngleX,.15),this.setParam("ParamBreath",n.breath,.3),this.setParam("ParamEyeLOpen",n.eyeOpenL,.4),this.setParam("ParamEyeROpen",n.eyeOpenR,.4),this.setParam("ParamMouthOpenY",n.mouthOpenY,.35);let o=function(e){if(!e)return"neutral";switch(e.toLowerCase().trim()){case"surprised":return"face_aozame.exp3.json";case"concerned":case"thinking":return"eyes_zetubou.exp3.json";case"happy":return"hair_open.exp3.json";default:return"neutral"}}(e.expression);"face_aozame.exp3.json"===o?(this.setParam("Param10",1,.2),this.setParam("Param9",0,.15),this.setParam("Param11",0,.15),this.setParam("Param12",0,.15)):"eyes_zetubou.exp3.json"===o?(this.setParam("Param9",1,.2),this.setParam("Param10",0,.15),this.setParam("Param11",0,.15),this.setParam("Param12",0,.15)):"hair_open.exp3.json"===o?(this.setParam("Param11",1,.2),this.setParam("Param10",0,.15),this.setParam("Param9",0,.15),this.setParam("Param12",0,.15)):"eye_color.exp3.json"===o?(this.setParam("Param12",1,.2),this.setParam("Param10",0,.15),this.setParam("Param9",0,.15),this.setParam("Param11",0,.15)):(this.setParam("Param10",0,.15),this.setParam("Param9",0,.15),this.setParam("Param11",0,.15),this.setParam("Param12",0,.15)),this.model.update(),a.viewport(0,0,i,r),a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT|a.STENCIL_BUFFER_BIT),a.enable(a.BLEND),a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),a.useProgram(this.program);let l=i/r,c=this.modelBounds.width,d=this.modelBounds.height,m=this.modelBounds.centerX,u=this.modelBounds.centerY,h=(s=l>=c/d?1.84/d:1.84/c*l)/l,p=new Float32Array([h,0,0,0,0,s,0,0,0,0,1,0,-m*h,-u*s,0,1]);a.uniformMatrix4fv(this.uMatrixLocation,!1,p),a.uniform1i(this.uTextureLocation,0);let x=this.model.drawables,f=x.count,v=x.renderOrders,b=[];for(let e=0;e<f;e++)b.push(e);b.sort((e,t)=>v[e]-v[t]),a.enableVertexAttribArray(this.aPositionLocation),a.enableVertexAttribArray(this.aTexCoordLocation);let g=(e,t)=>{let s=void 0!==t?t:x.opacities[e];if(s<=.001)return;let i=x.textureIndices[e],r=this.textures[i];if(!r)return;a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,r),a.uniform1f(this.uOpacityLocation,s);let n=x.vertexPositions[e];a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,n,a.DYNAMIC_DRAW),a.vertexAttribPointer(this.aPositionLocation,2,a.FLOAT,!1,0,0);let o=x.vertexUvs[e];a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,o,a.DYNAMIC_DRAW),a.vertexAttribPointer(this.aTexCoordLocation,2,a.FLOAT,!1,0,0);let l=x.indices[e];a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,l,a.DYNAMIC_DRAW),a.drawElements(a.TRIANGLES,l.length,a.UNSIGNED_SHORT,0)},j=e=>{if(!this.maskProgram)return;a.useProgram(this.maskProgram),a.uniformMatrix4fv(this.maskUMatrixLocation,!1,p),a.uniform1i(this.maskUTextureLocation,0),a.enableVertexAttribArray(this.maskAPositionLocation),a.enableVertexAttribArray(this.maskATexCoordLocation);let t=x.textureIndices[e],s=this.textures[t];if(!s)return;a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,s);let i=x.vertexPositions[e];a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,i,a.DYNAMIC_DRAW),a.vertexAttribPointer(this.maskAPositionLocation,2,a.FLOAT,!1,0,0);let r=x.vertexUvs[e];a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,r,a.DYNAMIC_DRAW),a.vertexAttribPointer(this.maskATexCoordLocation,2,a.FLOAT,!1,0,0);let n=x.indices[e];a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,n,a.DYNAMIC_DRAW),a.drawElements(a.TRIANGLES,n.length,a.UNSIGNED_SHORT,0),a.useProgram(this.program),a.enableVertexAttribArray(this.aPositionLocation),a.enableVertexAttribArray(this.aTexCoordLocation)},y=-1;for(let e of b)if(!(x.opacities[e]<=.001))if(x.maskCounts[e]>0){let t=x.masks[e][0];t!==y&&(y=t,a.enable(a.STENCIL_TEST),a.stencilMask(255),a.clear(a.STENCIL_BUFFER_BIT),a.stencilFunc(a.ALWAYS,1,255),a.stencilOp(a.KEEP,a.KEEP,a.REPLACE),a.colorMask(!1,!1,!1,!1),j(t),a.colorMask(!0,!0,!0,!0)),a.stencilFunc(a.EQUAL,1,255),a.stencilOp(a.KEEP,a.KEEP,a.KEEP),g(e)}else -1!==y&&(a.disable(a.STENCIL_TEST),y=-1),g(e);-1!==y&&a.disable(a.STENCIL_TEST)}dispose(){if(this.isDisposed=!0,this.gl){for(let e of this.textures)this.gl.deleteTexture(e);this.textures=[],this.vertexBuffer&&this.gl.deleteBuffer(this.vertexBuffer),this.uvBuffer&&this.gl.deleteBuffer(this.uvBuffer),this.indexBuffer&&this.gl.deleteBuffer(this.indexBuffer),this.program&&this.gl.deleteProgram(this.program)}this.model&&"function"==typeof this.model.release&&this.model.release(),this.moc&&"function"==typeof this.moc.release&&this.moc.release(),this.model=null,this.moc=null,this.gl=null}}function f({modelUrl:e,expression:t="neutral",action:s="idle",state:r="idle",speechId:n,lipSyncValue:o,durationMs:m,className:u="",onStatusChange:h}){let p=(0,i.useRef)(null),v=(0,i.useRef)(null),b=(0,i.useRef)(new l({expression:t,action:s,state:r,speechId:n,lipSyncValue:o,durationMs:m})),g=(0,i.useRef)(null),j=(0,i.useRef)(null),[y,N]=(0,i.useState)("loading"),[w,C]=(0,i.useState)(null),[k,P]=(0,i.useState)(0);return(0,i.useEffect)(()=>{if(!window.matchMedia)return;let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>{b.current.setReducedMotion(e.matches)};return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,i.useEffect)(()=>{b.current.updateConfig({expression:t,action:s,state:r,speechId:n,lipSyncValue:o,durationMs:m})},[t,s,r,n,o,m]),(0,i.useEffect)(()=>{let t=!1,s=null;async function a(){if(v.current&&p.current){if(!e){N("error"),C("No Live2D model configured. Place model in assets/body/<name>/"),h?.("error","No Live2D model URL specified");return}N("loading"),h?.("loading"),C(null);try{let a=await c();if(t)return;let i=await d(e);if(t)return;let r=v.current;if(!r)return;let n=new x(r);n.initialize(a,i),g.current=n;let o=()=>{if(!p.current||!v.current)return;let e=p.current.getBoundingClientRect();if(e.width<=0||e.height<=0)return;let t=Math.min(window.devicePixelRatio||1,2),s=Math.max(1,Math.floor(e.width*t)),a=Math.max(1,Math.floor(e.height*t));(v.current.width!==s||v.current.height!==a)&&(v.current.width=s,v.current.height=a)};o(),(s=new ResizeObserver(o)).observe(p.current);let l=()=>{t||(g.current&&g.current.render(b.current,performance.now()),j.current=requestAnimationFrame(l))};j.current=requestAnimationFrame(l),N("ready"),h?.("ready")}catch(s){if(t)return;let e=s?.message||"Failed to initialize Live2D avatar";console.warn("[AvatarCanvas] Initialization error:",s),N("error"),C("Avatar model unavailable or failed to load."),h?.("error",e)}}}a();let i=v.current,r=e=>{e.preventDefault(),console.warn("[AvatarCanvas] WebGL context lost"),j.current&&cancelAnimationFrame(j.current),N("error"),C("WebGL context lost.")},n=()=>{console.log("[AvatarCanvas] WebGL context restored, re-initializing..."),a()};return i&&(i.addEventListener("webglcontextlost",r,!1),i.addEventListener("webglcontextrestored",n,!1)),()=>{t=!0,j.current&&(cancelAnimationFrame(j.current),j.current=null),s&&s.disconnect(),i&&(i.removeEventListener("webglcontextlost",r),i.removeEventListener("webglcontextrestored",n)),g.current&&(g.current.dispose(),g.current=null)}},[e,k,h]),(0,a.jsxs)("div",{ref:p,"data-testid":"avatar-canvas-container",className:`relative w-full h-full min-h-0 flex items-center justify-center overflow-hidden bg-transparent ${u}`,"aria-label":"Live2D Companion Presence",children:[(0,a.jsx)("canvas",{ref:v,role:"img","data-testid":"avatar-webgl-canvas","aria-label":"Live2D companion presence",style:{width:"100%",height:"100%",display:"block"},className:`absolute inset-0 w-full h-full block transition-opacity duration-500 ${"ready"===y?"opacity-100":"opacity-0"}`}),"loading"===y&&(0,a.jsxs)("div",{role:"status","aria-live":"polite",className:"absolute inset-0 flex flex-col items-center justify-center gap-3 bg-[#0b0b0e]/90 text-[var(--siduri-text-muted)]",children:[(0,a.jsx)("div",{className:"siduri-glyph w-10 h-10 text-base animate-pulse motion-reduce:animate-none",children:"✦"}),(0,a.jsx)("span",{className:"text-[11px] font-mono tracking-widest uppercase text-[var(--siduri-ember-light)]",children:"Initializing Presence..."})]}),"error"===y&&(0,a.jsxs)("div",{role:"alert","aria-live":"polite",className:"absolute inset-0 flex flex-col items-center justify-center p-6 text-center bg-[#0b0b0e]/95 text-[var(--siduri-text-muted)]",children:[(0,a.jsx)("div",{className:"w-8 h-8 rounded-full border border-[var(--siduri-border-subtle)] grid place-items-center text-xs text-[var(--siduri-text-dim)] mb-2 font-mono",children:"!"}),(0,a.jsx)("p",{className:"text-xs font-sans text-[var(--siduri-text-secondary)] mb-1",children:w||"Avatar unavailable in this browser."}),(0,a.jsx)("span",{className:"text-[10px] font-mono text-[var(--siduri-text-dim)] mb-3",children:"Conversational text mode remains active"}),(0,a.jsx)("button",{type:"button",onClick:()=>P(e=>e+1),className:"px-3 py-1 text-[11px] font-mono tracking-wider uppercase rounded border border-[var(--siduri-border-subtle)] hover:border-[var(--siduri-border-ember)] text-[var(--siduri-text-secondary)] hover:text-[var(--siduri-text-primary)] transition-colors focus-visible:ring-1 focus-visible:ring-[var(--siduri-border-ember)] outline-none","aria-label":"Retry avatar initialization",children:"Retry"})]})]})}var v=s(2914);function b({modelUrl:e,expression:t="neutral",action:r="idle",state:n="idle",speechId:o,lipSyncValue:l,durationMs:c,className:d="",vrmConfig:m,onStatusChange:u}){let h=(0,i.useRef)(null),p=(0,i.useRef)(null),x=(0,i.useRef)(null),[f,v]=(0,i.useState)("loading"),[g,j]=(0,i.useState)(null);return(0,i.useEffect)(()=>{x.current&&x.current.updateState({expression:t,action:r,state:n,speechId:o,lipSyncValue:l,lookAtMode:m?.lookAtMode||"camera"})},[t,r,n,o,l,m]),(0,i.useEffect)(()=>{let t=!1,a=null;return async function(){if(p.current&&h.current){if(!e){v("error");let e="No VRM model URL specified. Place model (.vrm) in assets/body/<name>/";j(e),u?.("error",e);return}v("loading"),u?.("loading"),j(null);try{let i=p.current,{VRMController:r}=await Promise.all([s.e(389),s.e(368),s.e(672),s.e(411),s.e(202)]).then(s.bind(s,7202));if(t)return;let n=new r(i,m);if(x.current=n,await n.loadModel(e),t)return void n.dispose();let o=()=>{if(!h.current||!p.current)return;let e=h.current.getBoundingClientRect();e.width<=0||e.height<=0||n.resize(e.width,e.height)};o(),(a=new ResizeObserver(o)).observe(h.current),n.startLoop(),v("ready"),u?.("ready")}catch(s){if(t)return;let e=s?.message||"Failed to initialize 3D VRM avatar canvas";console.error("[VRM] Initialization error:",s),v("error"),j(e),u?.("error",e)}}}(),()=>{t=!0,a&&a.disconnect(),x.current&&(x.current.dispose(),x.current=null)}},[e]),(0,a.jsxs)("div",{ref:h,className:`relative w-full h-full flex items-center justify-center overflow-hidden select-none bg-transparent ${d}`,"data-testid":"vrm-canvas-container",children:[(0,a.jsx)("canvas",{ref:p,className:"w-full h-full block touch-none","data-testid":"vrm-canvas-element"}),"loading"===f&&(0,a.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center bg-black/40 backdrop-blur-xs text-xs font-mono text-[var(--siduri-text-secondary)] pointer-events-none transition-opacity",children:[(0,a.jsx)("div",{className:"w-6 h-6 rounded-full border-2 border-[var(--siduri-ember)] border-t-transparent animate-spin mb-2"}),(0,a.jsx)("span",{children:"Loading 3D VRM avatar..."})]}),"error"===f&&(0,a.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center p-6 text-center bg-black/60 text-xs font-mono text-red-400",children:[(0,a.jsx)("span",{className:"font-semibold mb-1",children:"Avatar Error"}),(0,a.jsx)("span",{className:"opacity-80 max-w-sm",children:g})]})]})}var g=s(8839);let j="siduri.chat.conversations.v1";function y(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function N(e){return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(e)}function w(e){if("[interrupted]"===e.content)return{...e,content:"",interrupted:!0,interruptionReason:"interrupted"};if(e.content&&e.content.endsWith(" [interrupted]"))return{...e,content:e.content.slice(0,-14).trim(),interrupted:!0,interruptionReason:"interrupted"};if(e.content&&e.content.startsWith("I couldn’t reach the orchestrator. ")){let t=e.content.slice(35);return{...e,content:"",error:t}}return e}function C(e){switch(e){case"client_disconnect":return{label:"Disconnected",text:"Response stopped due to connection close.",hint:"The connection to the companion service closed prematurely."};case"user_stop":return{label:"Stopped",text:"Response stopped by user.",hint:"Generation was manually cancelled via the stop control."};case"user_barge_in":return{label:"Interrupted",text:"Response interrupted by new message.",hint:"Generation was cancelled because a new prompt was submitted."};case"timeout":return{label:"Timed Out",text:"Response timed out.",hint:"The request exceeded the allotted time limit before finishing."};default:return{label:"Interrupted",text:"Response was interrupted.",hint:e&&"interrupted"!==e?`Reason: ${e}`:void 0}}}function k(){let e,t,s,o,l,c,d,m,[u,h]=(0,i.useState)([]),[p,x]=(0,i.useState)(null),[k,P]=(0,i.useState)(""),[A,E]=(0,i.useState)("connecting"),[L,R]=(0,i.useState)(!1),[S,_]=(0,i.useState)(!1),[T,I]=(0,i.useState)(!1),[D,M]=(0,i.useState)(!1),[B,F]=(0,i.useState)(!1),[U,$]=(0,i.useState)(!1),[z,O]=(0,i.useState)(null),[X,Y]=(0,i.useState)(void 0),[W,V]=(0,i.useState)("unknown"),[q,G]=(0,i.useState)(void 0),[Z,H]=(0,i.useState)("hybrid"),[K,J]=(0,i.useState)("hybrid"),[Q,ee]=(0,i.useState)("off"),[et,es]=(0,i.useState)("Siduri"),[ea,ei]=(0,i.useState)(null),[er,en]=(0,i.useState)(!1),[eo,el]=(0,i.useState)(null),[ec,ed]=(0,i.useState)({}),[em,eu]=(0,i.useState)(null),eh=(0,i.useRef)(null),[ep,ex]=(0,i.useState)({}),[ef,ev]=(0,i.useState)({}),[eb,eg]=(0,i.useState)(null),ej=(0,i.useRef)(null),ey=(0,i.useRef)(null),eN=(0,i.useRef)(null),ew=(0,i.useMemo)(()=>u.find(e=>e.id===p)??null,[p,u]);function eC(){return{id:y(),title:"New conversation",messages:[],updatedAt:Date.now()}}function ek(e,t){h(s=>s.map(s=>s.id===e?t(s):s))}async function eP(e){e.preventDefault();let t=k.trim();if(!t)return;if(/\[[^\]]+\]/.test(t))return void E("replace the blanks first");L&&eN.current&&(eN.current.abort("user_barge_in"),eN.current=null,(0,g.Uo)("default","user_barge_in"));let s=ew;s||(s=eC(),h(e=>[s,...e]),x(s.id));let a=s.messages.filter(e=>!("assistant"===e.role&&!e.content.trim()&&!e.error&&!e.interrupted)),i={id:y(),role:"user",content:t,createdAt:Date.now()},r=y(),n=[...a,i,{id:r,role:"assistant",content:"",createdAt:Date.now()}],o=0===s.messages.length?t.slice(0,42):s.title;ek(s.id,e=>({...e,title:o,messages:n,updatedAt:Date.now()})),P(""),R(!0),E("streaming");let l=new AbortController;eN.current=l;try{await (0,g.ZB)("/chat/stream",{id:"default",message:t,medium:"web",mode:Z,subtitleLanguage:"off"!==Q?Q:void 0,history:s.messages.slice(-20).map(e=>({role:e.role,content:e.content}))},{onStaged:e=>{e?.mode&&("casual"===e.mode||"teach"===e.mode||"hybrid"===e.mode)&&J(e.mode)},onAvatar:e=>{let t=e.speech_id;ey.current&&clearTimeout(ey.current),O({eventId:e.event_id,expression:e.expression||"neutral",action:e.action||"talk",state:"speaking",speechId:t,durationMs:e.durationMs});let s=e.durationMs||4500;ey.current=setTimeout(()=>{O(e=>e?{...e,state:"idle",action:"idle"}:null)},s)},onChunk:e=>{e.deltaText&&ek(s.id,t=>({...t,messages:t.messages.map(t=>t.id===r?{...t,content:t.content+e.deltaText}:t)})),(e.expression||e.action)&&O(t=>t?{...t,expression:e.expression||t.expression,action:e.action||t.action}:null)},onDone:e=>{e?.metadata?.mode&&("casual"===e.metadata.mode||"teach"===e.metadata.mode||"hybrid"===e.metadata.mode)&&J(e.metadata.mode);let t=e.response||{},a=e.metadata?.memory_proposals,i=e.metadata?.behavioral_proposals,n=t.citations||e.metadata?.citations||[],o=t.gate||e.metadata?.gate;ek(s.id,e=>({...e,messages:e.messages.map(e=>e.id===r?{...e,content:e.content||t.subtitle_en||t.subtitle_ja||"",subtitle:t.subtitle,subtitleLanguage:t.subtitle_language||("off"!==Q?Q:void 0),subtitles:t.subtitles,spokenJa:t.spoken_ja,evidenceIds:t.evidence_ids||(n.length>0?n.map(e=>e.evidence_id||e.evidenceId).filter(Boolean):void 0),citations:n.length>0?n:void 0,gate:o,memoryProposals:a,behavioralProposals:i}:e),updatedAt:Date.now()})),E("online")},onInterrupted:e=>{let t=e?.reason||l.signal.reason||"interrupted";ek(s.id,e=>{let s=e.messages.find(e=>e.id===r);return"user_barge_in"!==t||s&&s.content.trim()?{...e,messages:e.messages.map(e=>e.id===r?{...e,interrupted:!0,interruptionReason:"string"==typeof t?t:"interrupted"}:e),updatedAt:Date.now()}:{...e,messages:e.messages.filter(e=>e.id!==r),updatedAt:Date.now()}}),E("online")},onError:e=>{let t=e?.message||String(e)||"Unknown error";ek(s.id,e=>({...e,messages:e.messages.map(e=>e.id===r?{...e,error:t}:e),updatedAt:Date.now()})),E("offline")}},l.signal)}catch(e){if(!l.signal.aborted){let t=e?.message||String(e)||"Connection error";ek(s.id,e=>({...e,messages:e.messages.map(e=>e.id===r?{...e,error:t}:e),updatedAt:Date.now()})),E("offline")}}finally{eN.current===l&&(eN.current=null),R(!1)}}(0,i.useEffect)(()=>()=>{ey.current&&clearTimeout(ey.current),eN.current&&eN.current.abort("unmounted")},[]),(0,i.useEffect)(()=>{let e=function(){try{let e=JSON.parse(window.localStorage.getItem(j)??"[]");if(!Array.isArray(e))return[];return e.map(e=>({...e,messages:(e.messages||[]).map(w)}))}catch{return[]}}();h(e),x(e[0]?.id??null);try{let e=localStorage.getItem("siduri.chat.subtitleLanguage");e&&ee(e)}catch{}_(!0),(0,g.Zq)("/health").then(async e=>{if(e.ok){let t=await e.json().catch(()=>({}));E("online"),t.organs?.body?.modelUrl&&(Y(t.organs.body.modelUrl),t.organs.body.modelUrl.toLowerCase().endsWith(".vrm")?V("vrm"):V("live2d")),(0,g.Zq)("/body/snapshot").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t?.snapshot&&(t.snapshot.modelUrl&&Y(t.snapshot.modelUrl),t.snapshot.format&&V(t.snapshot.format),t.snapshot.vrmOptions&&G(t.snapshot.vrmOptions))}else t.organs?.body?.modelUrl||(0,g.Zq)("/api/models/body").then(async e=>{if(e.ok){let t=(await e.json().catch(()=>({}))).models||[],s=t.find(e=>"default"!==e);s?(Y(`/assets/body/${s}/model.model3.json`),V("live2d")):t.length>0&&"default"!==t[0]&&(Y(`/assets/body/${t[0]}/model.model3.json`),V("live2d"))}}).catch(()=>{})}).catch(()=>{})}else E("online")}).catch(()=>E("offline")),(0,g.Zq)("/teach/identity").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t&&t.name&&es(t.name)}else(0,g.Zq)("/me").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t&&t.name&&es(t.name)}}).catch(()=>{})}).catch(()=>{}),(0,g.Zq)("/teach/detected-self").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t&&t.detected&&(sessionStorage.getItem(`siduri.dismissedSelf:${t.filename}`)||ei(t))}}).catch(()=>{})},[]),(0,i.useEffect)(()=>{S&&window.localStorage.setItem(j,JSON.stringify(u))},[u,S]),(0,i.useEffect)(()=>{ej.current?.scrollTo({top:ej.current.scrollHeight,behavior:"smooth"})},[p,ew?.messages.length,L]);let eA=ew?.messages??[],eE=eA.at(-1)?.evidenceIds?.length??0;async function eL(e,t,s){if(ew)try{let a=await (0,g.B2)(`/memory/proposals/${s}`,{id:t,companionId:"default"}),i=a?.status||("approve"===s?"approved":"rejected");if("approve"===s){a?.name&&es(a.name);let s=ew.messages.find(t=>t.id===e),i=s?.memoryProposals?.find(e=>(e.proposal_id||e.id)===t),r=s?.memoryProposals?.find(e=>"name"===(e.predicate||"").toLowerCase()&&!(e.subject||"").toLowerCase().startsWith("actor:")&&"user"!==(e.subject||"").toLowerCase()&&"primary_user"!==(e.subject||"").toLowerCase()),n=(i?.subject||"").toLowerCase(),o=(i?.predicate||"").toLowerCase(),l=!n.startsWith("actor:")&&"user"!==n&&"primary_user"!==n&&"owner"!==n&&"creator"!==n;"name"===o&&l&&i?.value?es(i.value):r?.value&&es(r.value),(0,g.Zq)("/teach/identity").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t?.name&&es(t.name)}}).catch(()=>{})}ek(ew.id,s=>({...s,messages:s.messages.map(s=>s.id===e&&s.memoryProposals?{...s,memoryProposals:s.memoryProposals.map(e=>(e.proposal_id||e.id)===t?{...e,status:i}:e)}:s)}))}catch(e){console.error("Failed to update memory proposal:",e)}}async function eR(e,t,s){if(ew)try{let a=await (0,g.B2)(`/memory/behavioral/${s}`,{id:t,companionId:"default"}),i=a?.status||("approve"===s?"active":"rejected");if("approve"===s){a?.name&&es(a.name);let s=ew.messages.find(t=>t.id===e),i=s?.behavioralProposals?.find(e=>(e.directive_id||e.id)===t),r=i?.directive||i?.value||i?.behavior?.instruction||"";if(r){let e=r.match(/^(?:address\s+companion\s+as|your\s+name\s+is|call\s+yourself|acknowledge\s+name\s+as|companion\s+name\s+is)\s+["“']?([^"”'.]+)["”']?/i);e?.[1]?.trim()&&es(e[1].trim())}(0,g.Zq)("/teach/identity").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t?.name&&es(t.name)}}).catch(()=>{})}ek(ew.id,s=>({...s,messages:s.messages.map(s=>s.id===e&&s.behavioralProposals?{...s,behavioralProposals:s.behavioralProposals.map(e=>(e.directive_id||e.id)===t?{...e,status:i}:e)}:s)}))}catch(e){console.error("Failed to update behavioral proposal:",e)}}function eS(e){if(!e?.manifest)return;let t=e.scannedDirectives||e.manifest?.directives||[];return{manifest:e.manifest,scannedDirectives:t,compiledBy:e.compiledBy||"parser",status:"pending"}}function e_(e,t){let s={};t.scannedDirectives.forEach(e=>{s[e.id]=e.approvedByDefault??e.scanResult?.safe??!0}),ed(t=>({...t,[e]:s}))}async function eT(e){let t=e.target.files?.[0];if(!t)return;e.target&&(e.target.value="");let s=await t.text(),a=t.name,i=ew;i||(i=eC(),h(e=>[i,...e]),x(i.id));let r={id:y(),role:"user",content:"Teach Siduri from this persona file.",selfAttachment:{filename:a},createdAt:Date.now()},n=y(),o={id:n,role:"assistant",content:"",createdAt:Date.now()};ek(i.id,e=>({...e,title:0===e.messages.length?`Persona: ${a}`:e.title,messages:[...e.messages,r,o],updatedAt:Date.now()})),R(!0),E("streaming");try{let e=await (0,g.B2)("/teach/upload-self",{content:s,companionId:"default"});if(e&&e.isValid&&e.manifest){let t=eS(e),s=t?.manifest?.identity?.name||t?.manifest?.name||"persona",r=t?.scannedDirectives?.length??0,o="brain"===e.compiledBy?"AI Cognitive Compiler":"Manifest Parser",l=`I've reviewed **${a}** and compiled the persona **"${s}"** using the ${o}.
|
|
30
|
+
`;function p(e,t,s){let a=e.createShader(t);if(!a)throw Error("Failed to create shader");if(e.shaderSource(a,s),e.compileShader(a),!e.getShaderParameter(a,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(a);throw e.deleteShader(a),Error(`Shader compilation error: ${t}`)}return a}class x{constructor(e){this.gl=null,this.program=null,this.maskProgram=null,this.vertexBuffer=null,this.uvBuffer=null,this.indexBuffer=null,this.aPositionLocation=-1,this.aTexCoordLocation=-1,this.uMatrixLocation=null,this.uTextureLocation=null,this.uOpacityLocation=null,this.maskAPositionLocation=-1,this.maskATexCoordLocation=-1,this.maskUMatrixLocation=null,this.maskUTextureLocation=null,this.textures=[],this.moc=null,this.model=null,this.core=null,this.paramIndices=new Map,this.isDisposed=!1,this.modelBounds={minX:-.39,maxX:.4,minY:-.98,maxY:.18,width:.79,height:1.16,centerX:.006,centerY:-.4},this.canvas=e}initialize(e,t){this.core=e;let s={alpha:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!1,antialias:!0,stencil:!0},a=this.canvas.getContext("webgl",s)||this.canvas.getContext("experimental-webgl",s)||this.canvas.getContext("webgl2",s);if(!a)throw Error("WebGL is not supported in this browser environment");this.gl=a;let i=p(a,a.VERTEX_SHADER,m),r=p(a,a.FRAGMENT_SHADER,u),n=a.createProgram();if(!n)throw Error("Failed to create WebGL program");if(a.attachShader(n,i),a.attachShader(n,r),a.linkProgram(n),!a.getProgramParameter(n,a.LINK_STATUS))throw Error(`Program link error: ${a.getProgramInfoLog(n)}`);this.program=n,this.aPositionLocation=a.getAttribLocation(n,"a_position"),this.aTexCoordLocation=a.getAttribLocation(n,"a_texCoord"),this.uMatrixLocation=a.getUniformLocation(n,"u_matrix"),this.uTextureLocation=a.getUniformLocation(n,"u_texture"),this.uOpacityLocation=a.getUniformLocation(n,"u_opacity");let o=p(a,a.FRAGMENT_SHADER,h),l=a.createProgram();if(!l)throw Error("Failed to create Mask WebGL program");if(a.attachShader(l,i),a.attachShader(l,o),a.linkProgram(l),!a.getProgramParameter(l,a.LINK_STATUS))throw Error(`Mask Program link error: ${a.getProgramInfoLog(l)}`);if(this.maskProgram=l,this.maskAPositionLocation=a.getAttribLocation(l,"a_position"),this.maskATexCoordLocation=a.getAttribLocation(l,"a_texCoord"),this.maskUMatrixLocation=a.getUniformLocation(l,"u_matrix"),this.maskUTextureLocation=a.getUniformLocation(l,"u_texture"),this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),this.textures=t.textures.map(e=>{let t=a.createTexture();if(!t)throw Error("Failed to create WebGL texture");return a.bindTexture(a.TEXTURE_2D,t),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR_MIPMAP_NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,e),a.generateMipmap(a.TEXTURE_2D),t}),this.moc=e.Moc.fromArrayBuffer(t.mocBuffer),!this.moc)throw Error("Failed to create Live2D Moc from ArrayBuffer");if(this.model=e.Model.fromMoc(this.moc),!this.model)throw Error("Failed to create Live2D Model from Moc");let c=this.model.parameters.ids;for(let e=0;e<c.length;e++)this.paramIndices.set(c[e],e);this.initializeNeutralMouth(),this.model.update(),this.calculateModelBounds()}initializeNeutralMouth(){this.model&&(this.setParamDirect("ParamMouthOpenY",0),this.setParamDirect("ParamMouthForm",0))}setParamDirect(e,t){let s=this.paramIndices.get(e);if(void 0!==s&&this.model){let e=this.model.parameters.minimumValues[s],a=this.model.parameters.maximumValues[s];this.model.parameters.values[s]=Math.max(e,Math.min(a,t))}}calculateModelBounds(){if(!this.model)return;let e=this.model.drawables,t=e.count,s=1/0,a=-1/0,i=1/0,r=-1/0;for(let n=0;n<t;n++){let t=e.vertexPositions[n];if(t&&0!==t.length)for(let e=0;e<t.length;e+=2){let n=t[e],o=t[e+1];n<s&&(s=n),n>a&&(a=n),o<i&&(i=o),o>r&&(r=o)}}s!==1/0&&a!==-1/0&&i!==1/0&&r!==-1/0&&(this.modelBounds={minX:s,maxX:a,minY:i,maxY:r,width:a-s,height:r-i,centerX:(s+a)/2,centerY:(i+r)/2})}getModelBounds(){return{...this.modelBounds}}setParam(e,t,s=1){let a=this.paramIndices.get(e);if(void 0!==a&&this.model){let e=this.model.parameters.values[a],i=Math.max(this.model.parameters.minimumValues[a],Math.min(this.model.parameters.maximumValues[a],t));this.model.parameters.values[a]=e+(i-e)*s}}render(e,t=Date.now()){let s;if(this.isDisposed||!this.gl||!this.model||!this.program)return;let a=this.gl,i=this.canvas.width,r=this.canvas.height;if(0===i||0===r)return;let n=e.calculateFrameParameters(t);this.setParam("ParamAngleX",n.angleX,.2),this.setParam("ParamAngleY",n.angleY,.2),this.setParam("ParamAngleZ",n.angleZ,.2),this.setParam("ParamBodyAngleX",n.bodyAngleX,.15),this.setParam("ParamBreath",n.breath,.3),this.setParam("ParamEyeLOpen",n.eyeOpenL,.4),this.setParam("ParamEyeROpen",n.eyeOpenR,.4),this.setParam("ParamMouthOpenY",n.mouthOpenY,.35);let o=function(e){if(!e)return"neutral";switch(e.toLowerCase().trim()){case"surprised":return"face_aozame.exp3.json";case"concerned":case"thinking":return"eyes_zetubou.exp3.json";case"happy":return"hair_open.exp3.json";default:return"neutral"}}(e.expression);"face_aozame.exp3.json"===o?(this.setParam("Param10",1,.2),this.setParam("Param9",0,.15),this.setParam("Param11",0,.15),this.setParam("Param12",0,.15)):"eyes_zetubou.exp3.json"===o?(this.setParam("Param9",1,.2),this.setParam("Param10",0,.15),this.setParam("Param11",0,.15),this.setParam("Param12",0,.15)):"hair_open.exp3.json"===o?(this.setParam("Param11",1,.2),this.setParam("Param10",0,.15),this.setParam("Param9",0,.15),this.setParam("Param12",0,.15)):"eye_color.exp3.json"===o?(this.setParam("Param12",1,.2),this.setParam("Param10",0,.15),this.setParam("Param9",0,.15),this.setParam("Param11",0,.15)):(this.setParam("Param10",0,.15),this.setParam("Param9",0,.15),this.setParam("Param11",0,.15),this.setParam("Param12",0,.15)),this.model.update(),a.viewport(0,0,i,r),a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT|a.STENCIL_BUFFER_BIT),a.enable(a.BLEND),a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA),a.useProgram(this.program);let l=i/r,c=this.modelBounds.width,d=this.modelBounds.height,m=this.modelBounds.centerX,u=this.modelBounds.centerY,h=(s=l>=c/d?1.84/d:1.84/c*l)/l,p=new Float32Array([h,0,0,0,0,s,0,0,0,0,1,0,-m*h,-u*s,0,1]);a.uniformMatrix4fv(this.uMatrixLocation,!1,p),a.uniform1i(this.uTextureLocation,0);let x=this.model.drawables,f=x.count,v=x.renderOrders,b=[];for(let e=0;e<f;e++)b.push(e);b.sort((e,t)=>v[e]-v[t]),a.enableVertexAttribArray(this.aPositionLocation),a.enableVertexAttribArray(this.aTexCoordLocation);let g=(e,t)=>{let s=void 0!==t?t:x.opacities[e];if(s<=.001)return;let i=x.textureIndices[e],r=this.textures[i];if(!r)return;a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,r),a.uniform1f(this.uOpacityLocation,s);let n=x.vertexPositions[e];a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,n,a.DYNAMIC_DRAW),a.vertexAttribPointer(this.aPositionLocation,2,a.FLOAT,!1,0,0);let o=x.vertexUvs[e];a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,o,a.DYNAMIC_DRAW),a.vertexAttribPointer(this.aTexCoordLocation,2,a.FLOAT,!1,0,0);let l=x.indices[e];a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,l,a.DYNAMIC_DRAW),a.drawElements(a.TRIANGLES,l.length,a.UNSIGNED_SHORT,0)},j=e=>{if(!this.maskProgram)return;a.useProgram(this.maskProgram),a.uniformMatrix4fv(this.maskUMatrixLocation,!1,p),a.uniform1i(this.maskUTextureLocation,0),a.enableVertexAttribArray(this.maskAPositionLocation),a.enableVertexAttribArray(this.maskATexCoordLocation);let t=x.textureIndices[e],s=this.textures[t];if(!s)return;a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,s);let i=x.vertexPositions[e];a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,i,a.DYNAMIC_DRAW),a.vertexAttribPointer(this.maskAPositionLocation,2,a.FLOAT,!1,0,0);let r=x.vertexUvs[e];a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,r,a.DYNAMIC_DRAW),a.vertexAttribPointer(this.maskATexCoordLocation,2,a.FLOAT,!1,0,0);let n=x.indices[e];a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,n,a.DYNAMIC_DRAW),a.drawElements(a.TRIANGLES,n.length,a.UNSIGNED_SHORT,0),a.useProgram(this.program),a.enableVertexAttribArray(this.aPositionLocation),a.enableVertexAttribArray(this.aTexCoordLocation)},y=-1;for(let e of b)if(!(x.opacities[e]<=.001))if(x.maskCounts[e]>0){let t=x.masks[e][0];t!==y&&(y=t,a.enable(a.STENCIL_TEST),a.stencilMask(255),a.clear(a.STENCIL_BUFFER_BIT),a.stencilFunc(a.ALWAYS,1,255),a.stencilOp(a.KEEP,a.KEEP,a.REPLACE),a.colorMask(!1,!1,!1,!1),j(t),a.colorMask(!0,!0,!0,!0)),a.stencilFunc(a.EQUAL,1,255),a.stencilOp(a.KEEP,a.KEEP,a.KEEP),g(e)}else -1!==y&&(a.disable(a.STENCIL_TEST),y=-1),g(e);-1!==y&&a.disable(a.STENCIL_TEST)}dispose(){if(this.isDisposed=!0,this.gl){for(let e of this.textures)this.gl.deleteTexture(e);this.textures=[],this.vertexBuffer&&this.gl.deleteBuffer(this.vertexBuffer),this.uvBuffer&&this.gl.deleteBuffer(this.uvBuffer),this.indexBuffer&&this.gl.deleteBuffer(this.indexBuffer),this.program&&this.gl.deleteProgram(this.program)}this.model&&"function"==typeof this.model.release&&this.model.release(),this.moc&&"function"==typeof this.moc.release&&this.moc.release(),this.model=null,this.moc=null,this.gl=null}}function f({modelUrl:e,expression:t="neutral",action:s="idle",state:r="idle",speechId:n,lipSyncValue:o,durationMs:m,className:u="",onStatusChange:h}){let p=(0,i.useRef)(null),v=(0,i.useRef)(null),b=(0,i.useRef)(new l({expression:t,action:s,state:r,speechId:n,lipSyncValue:o,durationMs:m})),g=(0,i.useRef)(null),j=(0,i.useRef)(null),[y,N]=(0,i.useState)("loading"),[w,C]=(0,i.useState)(null),[k,P]=(0,i.useState)(0);return(0,i.useEffect)(()=>{if(!window.matchMedia)return;let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>{b.current.setReducedMotion(e.matches)};return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,i.useEffect)(()=>{b.current.updateConfig({expression:t,action:s,state:r,speechId:n,lipSyncValue:o,durationMs:m})},[t,s,r,n,o,m]),(0,i.useEffect)(()=>{let t=!1,s=null;async function a(){if(v.current&&p.current){if(!e){N("error"),C("No Live2D model configured. Place model in assets/body/<name>/"),h?.("error","No Live2D model URL specified");return}N("loading"),h?.("loading"),C(null);try{let a=await c();if(t)return;let i=await d(e);if(t)return;let r=v.current;if(!r)return;let n=new x(r);n.initialize(a,i),g.current=n;let o=()=>{if(!p.current||!v.current)return;let e=p.current.getBoundingClientRect();if(e.width<=0||e.height<=0)return;let t=Math.min(window.devicePixelRatio||1,2),s=Math.max(1,Math.floor(e.width*t)),a=Math.max(1,Math.floor(e.height*t));(v.current.width!==s||v.current.height!==a)&&(v.current.width=s,v.current.height=a)};o(),(s=new ResizeObserver(o)).observe(p.current);let l=()=>{t||(g.current&&g.current.render(b.current,performance.now()),j.current=requestAnimationFrame(l))};j.current=requestAnimationFrame(l),N("ready"),h?.("ready")}catch(s){if(t)return;let e=s?.message||"Failed to initialize Live2D avatar";console.warn("[AvatarCanvas] Initialization error:",s),N("error"),C("Avatar model unavailable or failed to load."),h?.("error",e)}}}a();let i=v.current,r=e=>{e.preventDefault(),console.warn("[AvatarCanvas] WebGL context lost"),j.current&&cancelAnimationFrame(j.current),N("error"),C("WebGL context lost.")},n=()=>{console.log("[AvatarCanvas] WebGL context restored, re-initializing..."),a()};return i&&(i.addEventListener("webglcontextlost",r,!1),i.addEventListener("webglcontextrestored",n,!1)),()=>{t=!0,j.current&&(cancelAnimationFrame(j.current),j.current=null),s&&s.disconnect(),i&&(i.removeEventListener("webglcontextlost",r),i.removeEventListener("webglcontextrestored",n)),g.current&&(g.current.dispose(),g.current=null)}},[e,k,h]),(0,a.jsxs)("div",{ref:p,"data-testid":"avatar-canvas-container",className:`relative w-full h-full min-h-0 flex items-center justify-center overflow-hidden bg-transparent ${u}`,"aria-label":"Live2D Companion Presence",children:[(0,a.jsx)("canvas",{ref:v,role:"img","data-testid":"avatar-webgl-canvas","aria-label":"Live2D companion presence",style:{width:"100%",height:"100%",display:"block"},className:`absolute inset-0 w-full h-full block transition-opacity duration-500 ${"ready"===y?"opacity-100":"opacity-0"}`}),"loading"===y&&(0,a.jsxs)("div",{role:"status","aria-live":"polite",className:"absolute inset-0 flex flex-col items-center justify-center gap-3 bg-[#0b0b0e]/90 text-[var(--siduri-text-muted)]",children:[(0,a.jsx)("div",{className:"siduri-glyph w-10 h-10 text-base animate-pulse motion-reduce:animate-none",children:"✦"}),(0,a.jsx)("span",{className:"text-[11px] font-mono tracking-widest uppercase text-[var(--siduri-ember-light)]",children:"Initializing Presence..."})]}),"error"===y&&(0,a.jsxs)("div",{role:"alert","aria-live":"polite",className:"absolute inset-0 flex flex-col items-center justify-center p-6 text-center bg-[#0b0b0e]/95 text-[var(--siduri-text-muted)]",children:[(0,a.jsx)("div",{className:"w-8 h-8 rounded-full border border-[var(--siduri-border-subtle)] grid place-items-center text-xs text-[var(--siduri-text-dim)] mb-2 font-mono",children:"!"}),(0,a.jsx)("p",{className:"text-xs font-sans text-[var(--siduri-text-secondary)] mb-1",children:w||"Avatar unavailable in this browser."}),(0,a.jsx)("span",{className:"text-[10px] font-mono text-[var(--siduri-text-dim)] mb-3",children:"Conversational text mode remains active"}),(0,a.jsx)("button",{type:"button",onClick:()=>P(e=>e+1),className:"px-3 py-1 text-[11px] font-mono tracking-wider uppercase rounded border border-[var(--siduri-border-subtle)] hover:border-[var(--siduri-border-ember)] text-[var(--siduri-text-secondary)] hover:text-[var(--siduri-text-primary)] transition-colors focus-visible:ring-1 focus-visible:ring-[var(--siduri-border-ember)] outline-none","aria-label":"Retry avatar initialization",children:"Retry"})]})]})}var v=s(2914);function b({modelUrl:e,expression:t="neutral",action:r="idle",state:n="idle",speechId:o,lipSyncValue:l,durationMs:c,className:d="",vrmConfig:m,onStatusChange:u}){let h=(0,i.useRef)(null),p=(0,i.useRef)(null),x=(0,i.useRef)(null),[f,v]=(0,i.useState)("loading"),[g,j]=(0,i.useState)(null);return(0,i.useEffect)(()=>{x.current&&x.current.updateState({expression:t,action:r,state:n,speechId:o,lipSyncValue:l,lookAtMode:m?.lookAtMode||"camera"})},[t,r,n,o,l,m]),(0,i.useEffect)(()=>{let t=!1,a=null;return async function(){if(p.current&&h.current){if(!e){v("error");let e="No VRM model URL specified. Place model (.vrm) in assets/body/<name>/";j(e),u?.("error",e);return}v("loading"),u?.("loading"),j(null);try{let i=p.current,{VRMController:r}=await Promise.all([s.e(389),s.e(368),s.e(672),s.e(411),s.e(202)]).then(s.bind(s,7202));if(t)return;let n=new r(i,m);if(x.current=n,await n.loadModel(e),t)return void n.dispose();let o=()=>{if(!h.current||!p.current)return;let e=h.current.getBoundingClientRect();e.width<=0||e.height<=0||n.resize(e.width,e.height)};o(),(a=new ResizeObserver(o)).observe(h.current),n.startLoop(),v("ready"),u?.("ready")}catch(s){if(t)return;let e=s?.message||"Failed to initialize 3D VRM avatar canvas";console.error("[VRM] Initialization error:",s),v("error"),j(e),u?.("error",e)}}}(),()=>{t=!0,a&&a.disconnect(),x.current&&(x.current.dispose(),x.current=null)}},[e]),(0,a.jsxs)("div",{ref:h,className:`relative w-full h-full flex items-center justify-center overflow-hidden select-none bg-transparent ${d}`,"data-testid":"vrm-canvas-container",children:[(0,a.jsx)("canvas",{ref:p,className:"w-full h-full block touch-none","data-testid":"vrm-canvas-element"}),"loading"===f&&(0,a.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center bg-black/40 backdrop-blur-xs text-xs font-mono text-[var(--siduri-text-secondary)] pointer-events-none transition-opacity",children:[(0,a.jsx)("div",{className:"w-6 h-6 rounded-full border-2 border-[var(--siduri-ember)] border-t-transparent animate-spin mb-2"}),(0,a.jsx)("span",{children:"Loading 3D VRM avatar..."})]}),"error"===f&&(0,a.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center p-6 text-center bg-black/60 text-xs font-mono text-red-400",children:[(0,a.jsx)("span",{className:"font-semibold mb-1",children:"Avatar Error"}),(0,a.jsx)("span",{className:"opacity-80 max-w-sm",children:g})]})]})}var g=s(8839);let j="siduri.chat.conversations.v1";function y(){return`${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function N(e){return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(e)}function w(e){if("[interrupted]"===e.content)return{...e,content:"",interrupted:!0,interruptionReason:"interrupted"};if(e.content&&e.content.endsWith(" [interrupted]"))return{...e,content:e.content.slice(0,-14).trim(),interrupted:!0,interruptionReason:"interrupted"};if(e.content&&e.content.startsWith("I couldn’t reach the orchestrator. ")){let t=e.content.slice(35);return{...e,content:"",error:t}}return e}function C(e){switch(e){case"client_disconnect":return{label:"Disconnected",text:"Response stopped due to connection close.",hint:"The connection to the companion service closed prematurely."};case"user_stop":return{label:"Stopped",text:"Response stopped by user.",hint:"Generation was manually cancelled via the stop control."};case"user_barge_in":return{label:"Interrupted",text:"Response interrupted by new message.",hint:"Generation was cancelled because a new prompt was submitted."};case"timeout":return{label:"Timed Out",text:"Response timed out.",hint:"The request exceeded the allotted time limit before finishing."};default:return{label:"Interrupted",text:"Response was interrupted.",hint:e&&"interrupted"!==e?`Reason: ${e}`:void 0}}}function k(){let e,t,s,o,l,c,d,m,[u,h]=(0,i.useState)([]),[p,x]=(0,i.useState)(null),[k,P]=(0,i.useState)(""),[A,E]=(0,i.useState)("connecting"),[L,R]=(0,i.useState)(!1),[S,_]=(0,i.useState)(!1),[T,I]=(0,i.useState)(!1),[D,M]=(0,i.useState)(!1),[B,F]=(0,i.useState)(!1),[U,$]=(0,i.useState)(!1),[z,O]=(0,i.useState)(null),[X,Y]=(0,i.useState)(void 0),[W,V]=(0,i.useState)("unknown"),[q,G]=(0,i.useState)(void 0),[Z,H]=(0,i.useState)("hybrid"),[K,J]=(0,i.useState)("hybrid"),[Q,ee]=(0,i.useState)("off"),[et,es]=(0,i.useState)("Siduri"),[ea,ei]=(0,i.useState)(null),[er,en]=(0,i.useState)(!1),[eo,el]=(0,i.useState)(null),[ec,ed]=(0,i.useState)({}),[em,eu]=(0,i.useState)(null),eh=(0,i.useRef)(null),[ep,ex]=(0,i.useState)({}),[ef,ev]=(0,i.useState)({}),[eb,eg]=(0,i.useState)(null),ej=(0,i.useRef)(null),ey=(0,i.useRef)(null),eN=(0,i.useRef)(null),ew=(0,i.useMemo)(()=>u.find(e=>e.id===p)??null,[p,u]);function eC(){return{id:y(),title:"New conversation",messages:[],updatedAt:Date.now()}}function ek(e,t){h(s=>s.map(s=>s.id===e?t(s):s))}async function eP(e){e.preventDefault();let t=k.trim();if(!t)return;if(/\[[^\]]+\]/.test(t))return void E("replace the blanks first");L&&eN.current&&(eN.current.abort("user_barge_in"),eN.current=null,(0,g.Uo)("default","user_barge_in"));let s=ew;s||(s=eC(),h(e=>[s,...e]),x(s.id));let a=s.messages.filter(e=>!("assistant"===e.role&&!e.content.trim()&&!e.error&&!e.interrupted)),i={id:y(),role:"user",content:t,createdAt:Date.now()},r=y(),n=[...a,i,{id:r,role:"assistant",content:"",createdAt:Date.now()}],o=0===s.messages.length?t.slice(0,42):s.title;ek(s.id,e=>({...e,title:o,messages:n,updatedAt:Date.now()})),P(""),R(!0),E("streaming");let l=new AbortController;eN.current=l;try{await (0,g.ZB)("/chat/stream",{id:"default",message:t,medium:"web",mode:Z,subtitleLanguage:"off"!==Q?Q:void 0,history:s.messages.slice(-20).map(e=>({role:e.role,content:e.content}))},{onStaged:e=>{e?.mode&&("casual"===e.mode||"teach"===e.mode||"hybrid"===e.mode)&&J(e.mode)},onAvatar:e=>{let t=e.speech_id;ey.current&&clearTimeout(ey.current),O({eventId:e.event_id,expression:e.expression||"neutral",action:e.action||"talk",state:"speaking",speechId:t,durationMs:e.durationMs});let s=e.durationMs||4500;ey.current=setTimeout(()=>{O(e=>e?{...e,state:"idle",action:"idle"}:null)},s)},onChunk:e=>{e.deltaText&&ek(s.id,t=>({...t,messages:t.messages.map(t=>t.id===r?{...t,content:t.content+e.deltaText}:t)})),(e.expression||e.action)&&O(t=>t?{...t,expression:e.expression||t.expression,action:e.action||t.action}:null)},onDone:e=>{e?.metadata?.mode&&("casual"===e.metadata.mode||"teach"===e.metadata.mode||"hybrid"===e.metadata.mode)&&J(e.metadata.mode);let t=e.response||{},a=e.metadata?.memory_proposals,i=e.metadata?.behavioral_proposals,n=t.citations||e.metadata?.citations||[],o=t.gate||e.metadata?.gate;ek(s.id,e=>({...e,messages:e.messages.map(e=>e.id===r?{...e,content:e.content||t.subtitle_en||t.subtitle_ja||"",subtitle:t.subtitle,subtitleLanguage:t.subtitle_language||("off"!==Q?Q:void 0),subtitles:t.subtitles,spokenJa:t.spoken_ja,evidenceIds:t.evidence_ids||(n.length>0?n.map(e=>e.evidence_id||e.evidenceId).filter(Boolean):void 0),citations:n.length>0?n:void 0,gate:o,memoryProposals:a,behavioralProposals:i}:e),updatedAt:Date.now()})),E("online")},onInterrupted:e=>{let t=e?.reason||l.signal.reason||"interrupted";ek(s.id,e=>{let s=e.messages.find(e=>e.id===r);return"user_barge_in"!==t||s&&s.content.trim()?{...e,messages:e.messages.map(e=>e.id===r?{...e,interrupted:!0,interruptionReason:"string"==typeof t?t:"interrupted"}:e),updatedAt:Date.now()}:{...e,messages:e.messages.filter(e=>e.id!==r),updatedAt:Date.now()}}),E("online")},onError:e=>{let t=e?.message||String(e)||"Unknown error";ek(s.id,e=>({...e,messages:e.messages.map(e=>e.id===r?{...e,error:t}:e),updatedAt:Date.now()})),E("offline")}},l.signal)}catch(e){if(!l.signal.aborted){let t=e?.message||String(e)||"Connection error";ek(s.id,e=>({...e,messages:e.messages.map(e=>e.id===r?{...e,error:t}:e),updatedAt:Date.now()})),E("offline")}}finally{eN.current===l&&(eN.current=null),R(!1)}}(0,i.useEffect)(()=>()=>{ey.current&&clearTimeout(ey.current),eN.current&&eN.current.abort("unmounted")},[]),(0,i.useEffect)(()=>{let e=function(){try{let e=JSON.parse(window.localStorage.getItem(j)??"[]");if(!Array.isArray(e))return[];return e.map(e=>({...e,messages:(e.messages||[]).map(w)}))}catch{return[]}}();h(e),x(e[0]?.id??null);try{let e=localStorage.getItem("siduri.chat.subtitleLanguage");e&&ee(e)}catch{}_(!0),(0,g.Zq)("/health").then(async e=>{if(e.ok){let t=await e.json().catch(()=>({}));E("online"),t.organs?.body?.modelUrl&&(Y(t.organs.body.modelUrl),t.organs.body.modelUrl.toLowerCase().endsWith(".vrm")?V("vrm"):V("live2d")),(0,g.Zq)("/body/snapshot").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t?.snapshot&&(t.snapshot.modelUrl&&Y(t.snapshot.modelUrl),t.snapshot.format&&V(t.snapshot.format),t.snapshot.vrmOptions&&G(t.snapshot.vrmOptions))}else t.organs?.body?.modelUrl||(0,g.Zq)("/api/models/body").then(async e=>{if(e.ok){let t=(await e.json().catch(()=>({}))).models||[],s=t.find(e=>"default"!==e);s?(Y(`/assets/body/${s}/model.model3.json`),V("live2d")):t.length>0&&"default"!==t[0]&&(Y(`/assets/body/${t[0]}/model.model3.json`),V("live2d"))}}).catch(()=>{})}).catch(()=>{})}else E("online")}).catch(()=>E("offline")),(0,g.Zq)("/teach/identity").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t&&t.name&&es(t.name)}else(0,g.Zq)("/me").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t&&t.name&&es(t.name)}}).catch(()=>{})}).catch(()=>{}),(0,g.Zq)("/teach/detected-self").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t&&t.detected&&(sessionStorage.getItem(`siduri.dismissedSelf:${t.filename}`)||ei(t))}}).catch(()=>{})},[]),(0,i.useEffect)(()=>{S&&window.localStorage.setItem(j,JSON.stringify(u))},[u,S]),(0,i.useEffect)(()=>{ej.current?.scrollTo({top:ej.current.scrollHeight,behavior:"smooth"})},[p,ew?.messages.length,L]);let eA=ew?.messages??[],eE=eA.at(-1)?.evidenceIds?.length??0;async function eL(e,t,s){if(ew)try{let a=await (0,g.B2)(`/self/directives/${s}`,{id:t,companionId:"default"}).catch(()=>(0,g.B2)(`/memory/proposals/${s}`,{id:t,companionId:"default"})),i=a?.status||("approve"===s?"approved":"rejected");if("approve"===s){a?.name&&es(a.name);let s=ew.messages.find(t=>t.id===e),i=s?.memoryProposals?.find(e=>(e.proposal_id||e.id)===t),r=s?.memoryProposals?.find(e=>"name"===(e.predicate||"").toLowerCase()&&!(e.subject||"").toLowerCase().startsWith("actor:")&&"user"!==(e.subject||"").toLowerCase()&&"primary_user"!==(e.subject||"").toLowerCase()),n=(i?.subject||"").toLowerCase(),o=(i?.predicate||"").toLowerCase(),l=!n.startsWith("actor:")&&"user"!==n&&"primary_user"!==n&&"owner"!==n&&"creator"!==n;"name"===o&&l&&i?.value?es(i.value):r?.value&&es(r.value),(0,g.Zq)("/teach/identity").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t?.name&&es(t.name)}}).catch(()=>{})}ek(ew.id,s=>({...s,messages:s.messages.map(s=>s.id===e&&s.memoryProposals?{...s,memoryProposals:s.memoryProposals.map(e=>(e.proposal_id||e.id)===t?{...e,status:i}:e)}:s)}))}catch(e){console.error("Failed to update memory proposal:",e)}}async function eR(e,t,s){if(ew)try{let a=await (0,g.B2)(`/self/directives/${s}`,{id:t,companionId:"default"}).catch(()=>(0,g.B2)(`/memory/behavioral/${s}`,{id:t,companionId:"default"})),i=a?.status||("approve"===s?"active":"rejected");if("approve"===s){a?.name&&es(a.name);let s=ew.messages.find(t=>t.id===e),i=s?.behavioralProposals?.find(e=>(e.directive_id||e.id)===t),r=i?.directive||i?.value||i?.behavior?.instruction||"";if(r){let e=r.match(/^(?:address\s+companion\s+as|your\s+name\s+is|call\s+yourself|acknowledge\s+name\s+as|companion\s+name\s+is)\s+["“']?([^"”'.]+)["”']?/i);e?.[1]?.trim()&&es(e[1].trim())}(0,g.Zq)("/teach/identity").then(async e=>{if(e.ok){let t=await e.json().catch(()=>null);t?.name&&es(t.name)}}).catch(()=>{})}ek(ew.id,s=>({...s,messages:s.messages.map(s=>s.id===e&&s.behavioralProposals?{...s,behavioralProposals:s.behavioralProposals.map(e=>(e.directive_id||e.id)===t?{...e,status:i}:e)}:s)}))}catch(e){console.error("Failed to update behavioral proposal:",e)}}function eS(e){if(!e?.manifest)return;let t=e.scannedDirectives||e.manifest?.directives||[];return{manifest:e.manifest,scannedDirectives:t,compiledBy:e.compiledBy||"parser",status:"pending"}}function e_(e,t){let s={};t.scannedDirectives.forEach(e=>{s[e.id]=e.approvedByDefault??e.scanResult?.safe??!0}),ed(t=>({...t,[e]:s}))}async function eT(e){let t=e.target.files?.[0];if(!t)return;e.target&&(e.target.value="");let s=await t.text(),a=t.name,i=ew;i||(i=eC(),h(e=>[i,...e]),x(i.id));let r={id:y(),role:"user",content:"Teach Siduri from this persona file.",selfAttachment:{filename:a},createdAt:Date.now()},n=y(),o={id:n,role:"assistant",content:"",createdAt:Date.now()};ek(i.id,e=>({...e,title:0===e.messages.length?`Persona: ${a}`:e.title,messages:[...e.messages,r,o],updatedAt:Date.now()})),R(!0),E("streaming");try{let e=await (0,g.B2)("/teach/upload-self",{content:s,companionId:"default"});if(e&&e.isValid&&e.manifest){let t=eS(e),s=t?.manifest?.identity?.name||t?.manifest?.name||"persona",r=t?.scannedDirectives?.length??0,o="brain"===e.compiledBy?"AI Cognitive Compiler":"Manifest Parser",l=`I've reviewed **${a}** and compiled the persona **"${s}"** using the ${o}.
|
|
31
31
|
|
|
32
32
|
Found **${r} behavioral directive${1!==r?"s":""}**. Review and approve the directives below.`;ek(i.id,e=>({...e,messages:e.messages.map(e=>e.id===n?{...e,content:l,selfProposal:t}:e),updatedAt:Date.now()})),t&&e_(n,t),"teach"!==Z&&(H("teach"),J("teach"))}else{let t=e?.errors?.join("\n")||"Invalid persona or .self package format";ek(i.id,e=>({...e,messages:e.messages.map(e=>e.id===n?{...e,error:t,content:"Could not compile this persona file."}:e),updatedAt:Date.now()}))}}catch(t){let e=`Failed to parse persona file: ${t.message}`;ek(i.id,t=>({...t,messages:t.messages.map(t=>t.id===n?{...t,error:e,content:"Could not compile this persona file."}:t),updatedAt:Date.now()}))}finally{R(!1),E("online")}}async function eI(e,t){let s=Object.entries(ec[e]||{}).filter(([,e])=>e).map(([e])=>e);eu(e);try{let a=await (0,g.B2)("/teach/install-self",{companionId:"default",manifest:t.manifest,approvedDirectiveIds:s});if(a&&a.success){let a=t.manifest?.identity?.name||t.manifest?.name;a&&es(a),ew&&ek(ew.id,t=>({...t,messages:t.messages.map(t=>t.id===e?{...t,selfProposal:{...t.selfProposal,status:"installed"}}:t)})),el(`Installed '${t.manifest.name}' ethos (${s.length} directives active).`),setTimeout(()=>el(null),6e3),en(!0),ea?.filename&&sessionStorage.setItem(`siduri.dismissedSelf:${ea.filename}`,"true")}else alert(a?.error||"Failed to install .self package")}catch(e){alert(`Install error: ${e.message}`)}finally{eu(null)}}return(0,a.jsxs)("div",{className:`chat-app ${T?"sidebar-collapsed":""} ${D?"mobile-drawer-open":""}`,children:[D&&(0,a.jsx)("div",{className:"chat-backdrop",onClick:()=>M(!1),"aria-hidden":"true"}),(0,a.jsxs)("aside",{className:"chat-sidebar","aria-label":"Conversation history",children:[(0,a.jsxs)("div",{className:"chat-sidebar-top",children:[(0,a.jsxs)("a",{className:"chat-brand",href:"/chat",children:[(0,a.jsx)("span",{className:"chat-brand-mark",children:"S"}),(0,a.jsx)("span",{children:"SIDURI"})]}),(0,a.jsx)("button",{className:"sidebar-collapse",type:"button",onClick:()=>I(e=>!e),"aria-label":T?"Expand sidebar":"Collapse sidebar",children:T?(0,a.jsx)(v.fl,{size:14}):(0,a.jsx)(v.A6,{size:14})}),(0,a.jsx)("button",{className:"mobile-drawer-close flex items-center justify-center",type:"button",onClick:()=>M(!1),"aria-label":"Close conversation drawer",children:(0,a.jsx)(v.US,{size:14})})]}),(0,a.jsxs)("button",{className:"new-chat-button flex items-center gap-1.5",type:"button",onClick:()=>{let e;e=eC(),h(t=>[e,...t]),x(e.id),P(""),E("online"),M(!1)},children:[(0,a.jsx)(v.c1,{size:13,className:"shrink-0"}),(0,a.jsx)("span",{children:"New conversation"})]}),(0,a.jsxs)("div",{className:"history-heading",children:[(0,a.jsx)("span",{children:"Recent conversations"}),(0,a.jsx)("span",{children:u.length})]}),(0,a.jsx)("div",{className:"conversation-list",children:S?0===u.length?(0,a.jsx)("p",{className:"history-empty",children:"Your private conversations will appear here."}):u.slice().sort((e,t)=>t.updatedAt-e.updatedAt).map(e=>(0,a.jsxs)("div",{className:`conversation-row ${e.id===p?"selected":""}`,children:[(0,a.jsxs)("button",{type:"button",className:"conversation-select",onClick:()=>{x(e.id),M(!1)},children:[(0,a.jsx)("span",{className:"conversation-title",children:e.title}),(0,a.jsx)("span",{className:"conversation-date",children:N(e.updatedAt)})]}),(0,a.jsx)("button",{type:"button",className:"conversation-delete flex items-center justify-center",onClick:t=>{t.stopPropagation();var s=e.id;if(h(e=>e.filter(e=>e.id!==s)),p===s){let e=u.find(e=>e.id!==s);x(e?.id??null)}},"aria-label":`Delete ${e.title}`,children:(0,a.jsx)(v.US,{size:12})})]},e.id)):(0,a.jsx)("p",{className:"history-empty",children:"Loading history…"})}),(0,a.jsxs)("div",{className:"sidebar-footer",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>{M(!1),F(!0)},className:"sidebar-settings-btn md:hidden flex items-center gap-1.5",children:[(0,a.jsx)(v.Ze,{size:14,className:"shrink-0"}),(0,a.jsxs)("span",{className:"truncate",children:["Preferences (",Z,"off"!==Q?` \xb7 ${Q.toUpperCase()}`:"",")"]})]}),(0,a.jsxs)("a",{className:"sidebar-console",href:"/operator",children:[(0,a.jsx)(v.t$,{size:13,className:"shrink-0"}),(0,a.jsx)("span",{children:"Operator console"}),(0,a.jsx)("b",{children:(0,a.jsx)(v.pT,{size:12})})]})]})]}),(0,a.jsxs)("main",{className:"chat-workspace",children:[(0,a.jsxs)("header",{className:"chat-header",children:[(0,a.jsxs)("div",{className:"chat-header-brand-group",children:[(0,a.jsx)("button",{type:"button",className:"mobile-menu-toggle flex items-center justify-center",onClick:()=>M(!0),"aria-label":"Open conversation menu",children:(0,a.jsx)(v.ZB,{size:16})}),(0,a.jsxs)("a",{href:"/chat",className:"chat-header-title",children:[(0,a.jsx)("span",{className:"chat-brand-mark",children:"S"}),(0,a.jsx)("span",{className:"font-bold tracking-widest text-xs hidden xs:inline",children:"SIDURI"})]})]}),(0,a.jsxs)("div",{className:"chat-header-actions flex items-center gap-1.5 sm:gap-2.5",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>$(e=>!e),className:`connection-pill cursor-pointer transition-all focus-visible:ring-1 focus-visible:ring-[var(--siduri-border-ember)] outline-none ${U?"border-[var(--siduri-border-ember)] bg-[var(--siduri-tint-med)] text-[var(--siduri-ember-highlight)]":"hover:border-[var(--siduri-border-ember)] text-[var(--siduri-text-secondary)]"}`,"aria-label":"Toggle avatar presence","aria-expanded":U,title:U?"Disable Avatar Presence":"Enable Avatar Presence",children:[(0,a.jsx)("span",{className:`status-light ${U?"online":""}`}),(0,a.jsx)("span",{className:"text-xs",children:"Presence"})]}),(0,a.jsxs)("button",{type:"button",onClick:()=>F(!0),className:`connection-pill cursor-pointer transition-all md:hidden flex items-center gap-1.5 ${"off"!==Q||"hybrid"!==Z?"border-[var(--siduri-border-ember)] bg-[var(--siduri-tint-med)] text-[var(--siduri-ember-highlight)]":"hover:border-[var(--siduri-border-ember)] text-[var(--siduri-text-secondary)]"}`,"aria-label":"Open chat preferences",title:"Preferences & Subtitles",children:[(0,a.jsx)(v.Ze,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{className:"text-xs font-mono font-medium tracking-wide",children:"hybrid"!==Z&&"off"!==Q?`${Z.slice(0,4)}\xb7${Q.slice(0,2).toUpperCase()}`:"hybrid"!==Z?Z:"off"!==Q?`CC:${Q.slice(0,2).toUpperCase()}`:"Options"})]}),(0,a.jsxs)("div",{className:`connection-pill hidden md:flex items-center gap-1 sm:gap-1.5 transition-all focus-within:ring-1 focus-within:ring-[var(--siduri-border-ember)] ${"off"!==Q?"border-[var(--siduri-border-ember)] bg-[var(--siduri-tint-med)] text-[var(--siduri-ember-highlight)]":"hover:border-[var(--siduri-border-ember)] text-[var(--siduri-text-secondary)]"}`,title:"Subtitle translation language",children:[(0,a.jsx)("span",{className:`status-light ${"off"!==Q?"online":""}`}),(0,a.jsx)("span",{className:"text-[10px] uppercase font-mono tracking-wider opacity-60",children:"Subtitles:"}),(0,a.jsxs)("select",{value:["off","en","ja","id","es","zh","ko","fr","de"].includes(Q)?Q:"custom-selected",onChange:e=>{let t=e.target.value;if("custom"===t){let e=prompt("Enter subtitle language code or name (e.g. it, ru, de, pt, vi):");if(e&&e.trim()){let t=e.trim().toLowerCase();ee(t);try{localStorage.setItem("siduri.chat.subtitleLanguage",t)}catch{}}}else if("custom-selected"!==t){ee(t);try{localStorage.setItem("siduri.chat.subtitleLanguage",t)}catch{}}},className:"bg-transparent text-xs text-[var(--siduri-text-primary)] font-medium outline-none cursor-pointer border-none p-0","aria-label":"Select subtitle language",children:[(0,a.jsx)("option",{value:"off",className:"bg-[#121214] text-white",children:"Subtitles: Off"}),(0,a.jsx)("option",{value:"en",className:"bg-[#121214] text-white",children:"English (EN)"}),(0,a.jsx)("option",{value:"ja",className:"bg-[#121214] text-white",children:"Japanese (JA)"}),(0,a.jsx)("option",{value:"id",className:"bg-[#121214] text-white",children:"Indonesian (ID)"}),(0,a.jsx)("option",{value:"es",className:"bg-[#121214] text-white",children:"Spanish (ES)"}),(0,a.jsx)("option",{value:"zh",className:"bg-[#121214] text-white",children:"Chinese (ZH)"}),(0,a.jsx)("option",{value:"ko",className:"bg-[#121214] text-white",children:"Korean (KO)"}),(0,a.jsx)("option",{value:"fr",className:"bg-[#121214] text-white",children:"French (FR)"}),(0,a.jsx)("option",{value:"de",className:"bg-[#121214] text-white",children:"German (DE)"}),!["off","en","ja","id","es","zh","ko","fr","de"].includes(Q)&&(0,a.jsx)("option",{value:"custom-selected",className:"bg-[#121214] text-white",children:Q.toUpperCase()}),(0,a.jsx)("option",{value:"custom",className:"bg-[#121214] text-white",children:"Other..."})]})]}),(0,a.jsxs)("span",{className:"connection-pill hidden lg:inline-flex",title:`Status: ${A}`,children:[(0,a.jsx)("span",{className:`status-light ${"online"===A?"online":""}`}),(0,a.jsx)("span",{className:"text-xs",children:A})]}),(0,a.jsxs)("div",{className:"connection-pill hidden md:flex items-center gap-1 sm:gap-1.5",title:"Operating interaction mode",children:[(0,a.jsx)("span",{className:"text-[10px] uppercase font-mono tracking-wider opacity-60",children:"Mode:"}),(0,a.jsxs)("select",{value:Z,onChange:e=>H(e.target.value),className:"bg-transparent text-xs text-[var(--siduri-text-primary)] font-medium outline-none cursor-pointer border-none p-0","aria-label":"Select interaction mode",children:[(0,a.jsx)("option",{value:"hybrid",className:"bg-[#121214] text-white",children:"Hybrid (Default)"}),(0,a.jsx)("option",{value:"teach",className:"bg-[#121214] text-white",children:"Teach"}),(0,a.jsx)("option",{value:"casual",className:"bg-[#121214] text-white",children:"Casual"})]})]})]})]}),ea&&!er&&(0,a.jsxs)("div",{"data-testid":"detected-self-banner",className:"bg-[#1c1814] border-b border-[var(--siduri-border-ember)] px-4 py-2.5 flex flex-wrap items-center justify-between gap-3 text-xs text-[#f1e6d0] z-20 shadow-md animate-fade-in",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,a.jsx)(v.qD,{size:18,className:"text-[var(--siduri-ember-highlight)] shrink-0"}),(0,a.jsxs)("span",{children:[(0,a.jsx)("strong",{children:".self file detected on path:"})," ",(0,a.jsx)("code",{className:"px-1.5 py-0.5 rounded bg-black/50 text-[var(--siduri-ember-highlight)] font-mono font-medium border border-[var(--siduri-border-subtle)]",children:ea.filename}),ea.alreadyInstalled?(0,a.jsx)("span",{className:"ml-1.5 text-[var(--siduri-text-muted)] text-[11px]",children:"(already imported)"}):null," — Import to companion ethos & directives?"]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ml-auto",children:[(0,a.jsx)("button",{type:"button",onClick:()=>{en(!0),ea.filename&&sessionStorage.setItem(`siduri.dismissedSelf:${ea.filename}`,"true")},className:"px-2.5 py-1 rounded text-[var(--siduri-text-muted)] hover:text-white hover:bg-white/5 transition-colors cursor-pointer",children:"Dismiss"}),(0,a.jsx)("button",{type:"button",onClick:function(){if(!ea?.parsed)return;"teach"!==Z&&(H("teach"),J("teach"));let e=ew;e||(e=eC(),h(t=>[e,...t]),x(e.id));let t=eS(ea.parsed);if(!t)return;let s=t.manifest?.identity?.name||t.manifest?.name||"persona",a=y(),i=y(),r=`I've reviewed **${ea.filename}** detected on your companion path and compiled the persona **"${s}"**.
|
|
33
33
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[939],{3449:(e,s,t)=>{"use strict";t.d(s,{default:()=>h});var a=t(2184),l=t(276),n=t(2914);function i({title:e,detail:s}){return(0,a.jsxs)("div",{className:"empty-state",children:[(0,a.jsx)("span",{className:"flex items-center justify-center","aria-hidden":"true",children:(0,a.jsx)(n.kN,{size:24})}),(0,a.jsx)("strong",{children:e}),(0,a.jsx)("p",{children:s})]})}var r=t(8839),c=t(3265);function d(e){return e?e.length>19?`${e.slice(0,9)}…${e.slice(-7)}`:e:"—"}function o(e){if(!e)return"—";let s=new Date(e);return Number.isNaN(s.valueOf())?e:new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(s)}function h(){let[e,s]=(0,l.useState)("overview"),[t,i]=(0,l.useState)({label:"Orchestrator",value:"Checking",tone:"warn"}),[c,d]=(0,l.useState)({label:"Voice",value:"Checking",tone:"warn"}),[o,h]=(0,l.useState)({label:"OBS capture",value:"Checking",tone:"warn"}),[m,x]=(0,l.useState)(""),[j,p]=(0,l.useState)([]),[f,w]=(0,l.useState)([]),[k,S]=(0,l.useState)([]),[C,T]=(0,l.useState)([]),[D,O]=(0,l.useState)([]),[E,I]=(0,l.useState)([]),[R,$]=(0,l.useState)([]),[A,L]=(0,l.useState)([]),[P,_]=(0,l.useState)([]),[B,z]=(0,l.useState)([]),[U,M]=(0,l.useState)([]),[F,J]=(0,l.useState)("all"),[V,q]=(0,l.useState)("all"),[G,Q]=(0,l.useState)(""),[H,Z]=(0,l.useState)(!0),[K,Y]=(0,l.useState)(new Set),[W,X]=(0,l.useState)("{}"),[ee,es]=(0,l.useState)(""),[et,ea]=(0,l.useState)(null),[el,en]=(0,l.useState)(null),[ei,er]=(0,l.useState)(!1);async function ec(){try{let e=new URLSearchParams;"all"!==F&&e.set("level",F),"all"!==V&&e.set("subsystem",V),G.trim()&&e.set("q",G.trim()),e.set("limit","150");let s=await (0,r.Tt)(`/system/logs?${e.toString()}`);M(s.logs||[])}catch(e){console.error("Failed to load system logs:",e)}}async function ed(){if(window.confirm("Are you sure you want to clear all system logs?"))try{await (0,r.B2)("/system/logs/clear",{}),M([]),es("Logs cleared.")}catch(e){es(`Failed to clear logs: ${e.message}`)}}async function eo(){try{let[e,s,t]=await Promise.all([(0,r.Tt)("/health"),(0,r.Tt)("/version"),(0,r.Tt)("/ready")]);i({label:"Orchestrator",value:"ok"===e.status?"Online":e.status,detail:`v${s.version}`,tone:"ok"===e.status?"good":"warn"}),x(s.version),t.dependencies?.model_provider?.ready===!1&&i(e=>({...e,detail:"Model provider degraded",tone:"warn"}))}catch{i({label:"Orchestrator",value:"Offline",detail:"Start the Python API",tone:"bad"})}try{let e=await (0,r.Tt)("/voice/health");d({label:"Voice",value:e.healthy?"Ready":"Fallback",detail:e.provider,tone:e.healthy?"good":"warn"})}catch{d({label:"Voice",value:"Unavailable",detail:"Subtitle fallback",tone:"warn"})}try{let e=await (0,r.Tt)("/obs/health");h({label:"OBS capture",value:e.connected?"Connected":e.configured?"Disconnected":"Disabled",detail:e.source_name?`Source: ${e.source_name}`:"No source configured",tone:e.connected?"good":"warn"})}catch{h({label:"OBS capture",value:"Unavailable",tone:"bad"})}}async function eh(){try{let[e,s,t,a]=await Promise.all([(0,r.Tt)("/self/proposals").catch(()=>(0,r.Tt)("/memory/proposals")),(0,r.Tt)("/self/directives/all").catch(()=>(0,r.Tt)("/memory")),(0,r.Tt)("/memory/claims").catch(()=>({claims:[]})),(0,r.Tt)("/self/directives").catch(()=>(0,r.Tt)("/memory/behavioral"))]);p((e.proposals??[]).filter(e=>"pending"===(e.status||"").toLowerCase().replace(/_/g,"-"))),S(s.items??s.directives??[]),w(t.claims??[]),T(a.directives??[])}catch{p([]),S([]),w([]),T([])}}async function em(){try{let[e,s]=await Promise.all([(0,r.Tt)("/evidence"),(0,r.Tt)("/observations")]);O(e.results??[]),I(s.observations??[])}catch{O([]),I([])}}async function ex(){try{X(JSON.stringify(await (0,r.Tt)("/me"),null,2))}catch{X("Unable to load profile.")}}async function ej(){try{let[e,s,t,a]=await Promise.all([(0,r.Tt)("/knowledge/entities").catch(()=>({entities:[]})),(0,r.Tt)("/knowledge/events").catch(()=>({events:[]})),(0,r.Tt)("/knowledge/tasks").catch(()=>({tasks:[]})),(0,r.Tt)("/knowledge/schedule").catch(()=>({items:[]}))]);$(e?.entities||[]),L(s?.events||[]),_(t?.tasks||[]),z(a?.items||[])}catch{}}async function eu(e){er(!0);try{await (0,r.B2)("/knowledge/entities",e),es(`Saved entity "${e.name}"`),await ej()}catch(e){es(`Error saving entity: ${e.message}`)}finally{er(!1)}}async function ep(e){er(!0);try{await (0,r.B2)("/knowledge/entities/delete",{id:e}),es("Entity deleted"),await ej()}catch(e){es(`Error deleting entity: ${e.message}`)}finally{er(!1)}}async function ev(e){er(!0);try{await (0,r.B2)("/knowledge/tasks",e),es(`Saved task "${e.title}"`),await ej()}catch(e){es(`Error saving task: ${e.message}`)}finally{er(!1)}}async function eb(e){let s="completed"===e.status?"todo":"completed";await ev({...e,status:s})}async function eg(e){er(!0);try{await (0,r.B2)("/knowledge/tasks/delete",{id:e}),es("Task deleted"),await ej()}catch(e){es(`Error deleting task: ${e.message}`)}finally{er(!1)}}async function eN(e){er(!0);try{await (0,r.B2)("/knowledge/events",e),es(`Logged event on stream "${e.stream}"`),await ej()}catch(e){es(`Error logging event: ${e.message}`)}finally{er(!1)}}async function ey(e){er(!0);try{await (0,r.B2)("/knowledge/schedule",e),es(`Saved schedule item "${e.title}"`),await ej()}catch(e){es(`Error saving schedule: ${e.message}`)}finally{er(!1)}}async function ef(e){er(!0);try{await (0,r.B2)("/knowledge/schedule/delete",{id:e}),es("Schedule item deleted"),await ej()}catch(e){es(`Error deleting schedule item: ${e.message}`)}finally{er(!1)}}async function ew(){er(!0);try{ea(await (0,r.B2)("/dev/mock-response"))}finally{er(!1)}}async function ek(){er(!0);try{let e=await (0,r.B2)("/dev/observe-and-respond");ea(e);let s="string"==typeof e?.metadata?.correlation_id?e.metadata.correlation_id:null;en(s)}finally{er(!1)}}async function eS(){if(el){er(!0);try{ea(await (0,r.B2)("/dev/approve-response",{correlation_id:el})),en(null)}finally{er(!1)}}}async function eC(e,s,t){let a=e.replace(/^\/memory\/proposals\//,"/self/directives/");try{await (0,r.vd)(a,{id:s.id||s.proposal_id,companionId:"default",...void 0===t?{}:{content:t}})}catch{await (0,r.vd)(e,{id:s.id||s.proposal_id,companionId:"default",...void 0===t?{}:{content:t}})}await eh()}async function eT(){await (0,r.vd)("/dev/mock-observation"),await em()}async function eD(){if(window.confirm("Are you sure you want to completely reset interaction archive and directives? This action cannot be undone.")){er(!0);try{await (0,r.B2)("/dev/directives/reset").catch(()=>(0,r.B2)("/dev/memory/reset")),await eh(),es("Interaction archive and directives have been reset.")}catch(e){es(String(e))}finally{er(!1)}}}return(0,l.useEffect)(()=>{eo(),eh(),ej(),em(),ex()},[]),(0,a.jsxs)("main",{className:"console-app",children:[(0,a.jsxs)("aside",{className:"console-sidebar",children:[(0,a.jsxs)("div",{className:"console-sidebar-header flex items-center justify-between w-full",children:[(0,a.jsxs)("a",{className:"console-brand",href:"/chat",children:[(0,a.jsx)("span",{className:"console-brand-mark",children:"S"}),(0,a.jsx)("span",{children:"SIDURI"})]}),(0,a.jsxs)("a",{href:"/chat",className:"console-mobile-back inline-flex items-center gap-1","aria-label":"Back to chat",children:[(0,a.jsx)(n.A6,{size:12}),"Chat"]})]}),(0,a.jsxs)("div",{className:"console-context",children:[(0,a.jsx)("span",{className:"console-context-dot"}),"Operator workspace"]}),(0,a.jsx)("nav",{className:"console-nav","aria-label":"Console sections",children:["overview","memory","lifedb","evidence","logs","settings"].map(t=>(0,a.jsxs)("button",{className:e===t?"active":"",onClick:()=>s(t),children:[(0,a.jsx)("span",{className:`nav-glyph nav-${t}`}),"lifedb"===t?"Life DB":"memory"===t?"Directives & Self":t[0].toUpperCase()+t.slice(1)]},t))}),(0,a.jsxs)("div",{className:"console-sidebar-bottom",children:[(0,a.jsxs)("a",{href:"/chat",className:"inline-flex items-center gap-1",children:[(0,a.jsx)(n.A6,{size:12}),"Private chat"]}),(0,a.jsx)("span",{children:"Local operator surface"})]})]}),(0,a.jsxs)("section",{className:"console-main",children:[(0,a.jsxs)("header",{className:"console-topbar",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"console-eyebrow",children:"SIDURI / OPERATOR"}),(0,a.jsx)("h1",{children:"overview"===e?"Control room":"lifedb"===e?"Life Database (Sovereign Reality)":"memory"===e?"Self Directives & Demeanor":"logs"===e?"System Logs & Diagnostics":e[0].toUpperCase()+e.slice(1)})]}),(0,a.jsxs)("div",{className:"console-top-actions",children:[(0,a.jsxs)("a",{href:"/chat",className:"console-back-link inline-flex items-center gap-1",title:"Return to Private Chat",children:[(0,a.jsx)(n.A6,{size:12}),"Chat"]}),(0,a.jsxs)("span",{className:"console-version",children:["v",m||"—"]}),(0,a.jsx)("button",{type:"button",className:"console-refresh",onClick:()=>{eo(),eh(),ej(),em(),"logs"===e&&ec()},"aria-label":"Refresh dashboard",children:(0,a.jsx)(n.fN,{size:14})})]})]}),ee&&(0,a.jsx)("div",{className:"console-notice",children:ee}),"overview"===e&&(0,a.jsx)(b,{health:t,voice:c,obs:o,proposals:j,responseJson:et,pendingCorrelationId:el,busy:ei,onTrigger:ew,onObserve:ek,onApprove:eS,onNavigate:s}),"memory"===e&&(0,a.jsx)(u,{proposals:j,claims:f,items:k,directives:C,onAction:eC,onRefresh:eh}),"lifedb"===e&&(0,a.jsx)(g,{entities:R,events:A,tasks:P,schedule:B,busy:ei,onSaveEntity:eu,onDeleteEntity:ep,onSaveTask:ev,onToggleTask:eb,onDeleteTask:eg,onAddEvent:eN,onSaveSchedule:ey,onDeleteSchedule:ef,onRefresh:ej}),"evidence"===e&&(0,a.jsx)(v,{results:D,observations:E,onCreate:eT,onRefresh:em}),"logs"===e&&(0,a.jsx)(N,{logs:U,filterLevel:F,filterSubsystem:V,searchQuery:G,autoRefresh:H,expandedIds:K,onToggleExpand:function(e){Y(s=>{let t=new Set(s);return t.has(e)?t.delete(e):t.add(e),t})},onChangeLevel:J,onChangeSubsystem:q,onChangeSearch:Q,onToggleAutoRefresh:()=>Z(e=>!e),onRefresh:ec,onClear:ed,onExport:function(){try{let e=new Blob([JSON.stringify(U,null,2)],{type:"application/json"}),s=URL.createObjectURL(e),t=document.createElement("a");t.href=s,t.download=`siduri-logs-${new Date().toISOString().replace(/[:.]/g,"-")}.json`,t.click(),URL.revokeObjectURL(s)}catch(e){es(`Export failed: ${e.message}`)}}}),"settings"===e&&(0,a.jsx)(y,{onResetMemory:eD,disabled:ei})]})]})}function m({status:e}){return(0,a.jsxs)("article",{className:"status-card",children:[(0,a.jsxs)("div",{className:"status-card-top",children:[(0,a.jsx)("span",{children:e.label}),(0,a.jsx)("i",{className:`status-dot ${e.tone??"warn"}`})]}),(0,a.jsx)("strong",{children:e.value}),(0,a.jsx)("small",{children:e.detail??"—"})]})}function x({title:e,action:s,onClick:t}){return(0,a.jsxs)("div",{className:"panel-header",children:[(0,a.jsx)("h2",{children:e}),s&&(0,a.jsxs)("button",{onClick:t,className:"inline-flex items-center gap-1",children:[s," ",(0,a.jsx)(n.fl,{size:12})]})]})}function j({label:e,count:s,tone:t}){return(0,a.jsxs)("div",{className:"queue-row",children:[(0,a.jsx)("span",{children:e}),(0,a.jsx)("b",{className:`queue-count ${t}`,children:s})]})}function u({proposals:e,claims:s,items:t,directives:l,onAction:n,onRefresh:h}){async function m(e,s){let t=e.replace(/^\/memory\/behavioral\//,"/self/directives/");try{await (0,r.B2)(t,{id:s,companionId:"default"})}catch{await (0,r.B2)(e,{id:s,companionId:"default"})}await h()}return(0,a.jsxs)("div",{className:"console-view",children:[(0,a.jsxs)("div",{className:"view-intro",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"console-eyebrow",children:"STANDING SELF DIRECTIVES & DISPOSITIONS"}),(0,a.jsx)("h2",{children:"Review candidate directives before they shape demeanor."}),(0,a.jsx)("p",{children:"Direct domain routing ensures behavioral constraints and standing rules are governed sovereignly."})]}),(0,a.jsxs)("span",{className:"count-badge",children:[e.length," pending"]})]}),(0,a.jsxs)("section",{className:"console-panel table-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsx)("strong",{children:"Pending directive proposals"}),(0,a.jsx)("span",{children:"Local approval queue"})]}),e.length?(0,a.jsx)("div",{className:"data-table-wrap",children:(0,a.jsxs)("table",{className:"data-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:"Candidate"}),(0,a.jsx)("th",{children:"Provenance"}),(0,a.jsx)("th",{children:"Sensitivity"}),(0,a.jsx)("th",{children:"Action"})]})}),(0,a.jsx)("tbody",{children:e.map(e=>(0,a.jsx)(p,{item:e,onAction:n},e.id||e.proposal_id))})]})}):(0,a.jsx)(i,{title:"No pending candidates",detail:"Siduri memory suggestions will appear here for review."})]}),(0,a.jsxs)("section",{className:"console-panel table-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsx)("strong",{children:"Behavioral Directives"}),(0,a.jsx)("span",{children:"Active behaviors and learned relationships"})]}),l.length?(0,a.jsx)("div",{className:"data-table-wrap",children:(0,a.jsxs)("table",{className:"data-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:"Directive"}),(0,a.jsx)("th",{children:"Scope & Activation"}),(0,a.jsx)("th",{children:"Class"}),(0,a.jsx)("th",{children:"Status"}),(0,a.jsx)("th",{children:"Actions"})]})}),(0,a.jsx)("tbody",{children:l.map(e=>{let s=e.id||e.directive_id||"";return(0,a.jsxs)("tr",{children:[(0,a.jsxs)("td",{children:[(0,a.jsx)("strong",{children:(0,c.P)(e)}),(0,a.jsxs)("details",{className:"row-details",children:[(0,a.jsx)("summary",{children:d(s)}),(0,a.jsx)("pre",{children:JSON.stringify(e,null,2)})]})]}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:"tag",children:e.activation||"active"})}),(0,a.jsx)("td",{children:(0,a.jsxs)("span",{className:"tag",children:[e.domain||e.category||"general"," / ",e.memory_class||e.category||"directive"]})}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:`tag status-${(e.status||"").toLowerCase().replace(/_/g,"-")}`,children:e.status})}),(0,a.jsx)("td",{children:(0,a.jsxs)("div",{className:"table-actions",children:["pending"===(e.status||"").toLowerCase()&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{className:"tiny-button approve-button",onClick:()=>void m("/memory/behavioral/approve",s),children:"Approve"}),(0,a.jsx)("button",{className:"tiny-button danger-button",onClick:()=>void m("/memory/behavioral/reject",s),children:"Reject"})]}),("active"===(e.status||"").toLowerCase()||"confirmed"===(e.status||"").toLowerCase())&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{className:"tiny-button danger-button",onClick:()=>void m("/memory/behavioral/revoke",s),children:"Revoke"}),"disabled"!==e.activation&&(0,a.jsx)("button",{className:"tiny-button",onClick:()=>void m("/memory/behavioral/disable",s),children:"Disable"})]})]})})]},s)})})]})}):(0,a.jsx)(i,{title:"No behavioral directives",detail:"Behavioral rules taught in private chat will appear here."})]}),(0,a.jsxs)("section",{className:"console-panel table-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsx)("strong",{children:"Structured Claims"}),(0,a.jsx)("span",{children:"Queryable personal and game knowledge"})]}),s.length?(0,a.jsx)("div",{className:"data-table-wrap",children:(0,a.jsxs)("table",{className:"data-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:"Subject"}),(0,a.jsx)("th",{children:"Predicate"}),(0,a.jsx)("th",{children:"Value"}),(0,a.jsx)("th",{children:"Status"})]})}),(0,a.jsx)("tbody",{children:s.slice().reverse().map(e=>{let s=e.id||e.claim_id||"";return(0,a.jsxs)("tr",{children:[(0,a.jsxs)("td",{children:[(0,a.jsx)("strong",{children:e.subject}),(0,a.jsxs)("details",{className:"row-details",children:[(0,a.jsx)("summary",{children:d(s)}),(0,a.jsx)("pre",{children:JSON.stringify(e,null,2)})]})]}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:"tag",children:e.predicate})}),(0,a.jsx)("td",{children:e.value}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:`tag status-${(e.status||"").toLowerCase().replace(/_/g,"-")}`,children:e.status})})]},s)})})]})}):(0,a.jsx)(i,{title:"No structured claims",detail:"Approved teachings will become queryable claims here."})]}),(0,a.jsxs)("section",{className:"console-panel table-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsx)("strong",{children:"Compatibility Memory Items"}),(0,a.jsx)("span",{children:"Legacy text projection"})]}),t.length?(0,a.jsx)("div",{className:"data-table-wrap",children:(0,a.jsxs)("table",{className:"data-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:"Fact"}),(0,a.jsx)("th",{children:"Provenance"}),(0,a.jsx)("th",{children:"Sensitivity"}),(0,a.jsx)("th",{children:"Created"})]})}),(0,a.jsx)("tbody",{children:t.slice().reverse().map(e=>{let s=e.id||e.memory_id||"",t=e.content||(e.subject&&e.predicate?`${e.subject} ${e.predicate} ${e.value}`:e.value||"—");return(0,a.jsxs)("tr",{children:[(0,a.jsxs)("td",{children:[(0,a.jsx)("strong",{children:t}),(0,a.jsxs)("details",{className:"row-details",children:[(0,a.jsx)("summary",{children:d(s)}),(0,a.jsx)("pre",{children:JSON.stringify(e,null,2)})]})]}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:"tag",children:e.provenance||"conversation"})}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:"tag",children:e.sensitivity||"normal"})}),(0,a.jsx)("td",{children:o(e.created_at||e.assertedAt)})]},s)})})]})}):(0,a.jsx)(i,{title:"No compatibility items",detail:"Legacy approved memory text will appear here."})]})]})}function p({item:e,onAction:s}){let t=e.id||e.proposal_id||"",[n,i]=(0,l.useState)(e.content||"");return(0,a.jsxs)("tr",{children:[(0,a.jsxs)("td",{children:[(0,a.jsx)("strong",{children:(0,c.I)(e)}),(0,a.jsxs)("details",{className:"row-details",children:[(0,a.jsxs)("summary",{children:["Edit raw record \xb7 ",d(t)]}),(0,a.jsx)("textarea",{className:"table-editor",value:n,onChange:e=>i(e.target.value),"aria-label":`Memory candidate ${t}`}),(0,a.jsx)("pre",{children:JSON.stringify(e,null,2)})]})]}),(0,a.jsx)("td",{children:e.provenance||"conversation"}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:"tag",children:e.sensitivity||"normal"})}),(0,a.jsx)("td",{children:(0,a.jsxs)("div",{className:"table-actions",children:[(0,a.jsx)("button",{className:"tiny-button",onClick:()=>void s("/memory/proposals/update",e,n),children:"Save"}),(0,a.jsx)("button",{className:"tiny-button approve-button",onClick:()=>void s("/memory/proposals/approve",e),children:"Approve"}),(0,a.jsx)("button",{className:"tiny-button danger-button",onClick:()=>void s("/memory/proposals/reject",e),children:"Reject"})]})})]})}function v({results:e,observations:s,onCreate:t,onRefresh:l}){return(0,a.jsxs)("div",{className:"console-view",children:[(0,a.jsxs)("div",{className:"view-intro",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"console-eyebrow",children:"GROUNDING"}),(0,a.jsx)("h2",{children:"Evidence, with uncertainty intact."}),(0,a.jsx)("p",{children:"Inspect bounded citations and short-lived observations without exposing raw captures."})]}),(0,a.jsxs)("div",{className:"button-row",children:[(0,a.jsx)("button",{onClick:()=>void t(),children:"Create fixture"}),(0,a.jsx)("button",{className:"soft-button",onClick:()=>void l(),children:"Refresh"})]})]}),(0,a.jsxs)("section",{className:"console-panel table-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsx)("strong",{children:"Knowledge Base Citations"}),(0,a.jsxs)("span",{children:[e.length," results"]})]}),e.length?(0,a.jsx)("div",{className:"data-table-wrap",children:(0,a.jsxs)("table",{className:"data-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:"Source"}),(0,a.jsx)("th",{children:"Revision"}),(0,a.jsx)("th",{children:"Preview"}),(0,a.jsx)("th",{children:"Link"})]})}),(0,a.jsx)("tbody",{children:e.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsxs)("td",{children:[(0,a.jsx)("strong",{children:e.title}),(0,a.jsx)("small",{children:e.endpoint})]}),(0,a.jsx)("td",{children:e.revision||"—"}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:"tag",children:e.preview?"Preview":"Published"})}),(0,a.jsx)("td",{children:(0,a.jsxs)("a",{className:"table-link inline-flex items-center gap-1",href:e.url,target:"_blank",rel:"noreferrer",children:["Open ",(0,a.jsx)(n.pT,{size:12})]})})]},e.url))})]})}):(0,a.jsx)(i,{title:"No evidence loaded",detail:"Create a fixture observation or refresh the source."})]}),(0,a.jsxs)("section",{className:"console-panel table-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsx)("strong",{children:"Current observations"}),(0,a.jsx)("span",{children:"Raw frames are never shown here"})]}),s.length?(0,a.jsx)("div",{className:"data-table-wrap",children:(0,a.jsxs)("table",{className:"data-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:"Observation"}),(0,a.jsx)("th",{children:"Captured"}),(0,a.jsx)("th",{children:"Expires"}),(0,a.jsx)("th",{children:"Readings"})]})}),(0,a.jsx)("tbody",{children:s.map((e,s)=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{children:d(e.observation_id??"observation")}),(0,a.jsx)("td",{children:o(e.observed_at)}),(0,a.jsx)("td",{children:o(e.expires_at)}),(0,a.jsx)("td",{children:Array.isArray(e.readings)?e.readings.length:0})]},e.observation_id??s))})]})}):(0,a.jsx)(i,{title:"No active observations",detail:"Observations are bounded and expire automatically."})]})]})}function b({health:e,voice:s,obs:t,proposals:l,responseJson:i,pendingCorrelationId:r,busy:c,onTrigger:d,onObserve:o,onApprove:h,onNavigate:u}){return(0,a.jsxs)("div",{className:"console-view",children:[(0,a.jsxs)("div",{className:"status-grid",children:[(0,a.jsx)(m,{status:e}),(0,a.jsx)(m,{status:s}),(0,a.jsx)(m,{status:t})]}),(0,a.jsxs)("div",{className:"console-columns",children:[(0,a.jsxs)("section",{className:"console-panel approval-panel",children:[(0,a.jsx)(x,{title:"Response gate",action:"Review policy",onClick:()=>u("settings")}),(0,a.jsxs)("div",{className:"gate-row",children:[(0,a.jsx)("span",{className:`gate-icon flex items-center justify-center ${r?"pending":"ready"}`,children:r?"!":(0,a.jsx)(n.Sr,{size:14,className:"shrink-0"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:r?"Grounded response awaiting approval":"No response awaiting approval"}),(0,a.jsx)("p",{children:r?"Public output is held until you approve it.":"Local mock responses remain private."})]})]}),(0,a.jsxs)("div",{className:"button-row",children:[(0,a.jsx)("button",{onClick:()=>void d(),disabled:c,children:"Trigger mock response"}),(0,a.jsx)("button",{className:"soft-button",onClick:()=>void o(),disabled:c,children:"Observe and respond"}),r&&(0,a.jsx)("button",{className:"approve-button",onClick:()=>void h(),children:"Approve response"})]}),null!==i&&(0,a.jsxs)("details",{className:"technical-details",children:[(0,a.jsx)("summary",{children:"Technical details"}),(0,a.jsx)("pre",{children:JSON.stringify(i,null,2)})]})]}),(0,a.jsxs)("section",{className:"console-panel queue-panel",children:[(0,a.jsx)(x,{title:"Needs attention",action:"View memory",onClick:()=>u("memory")}),(0,a.jsx)(j,{label:"Memory proposals",count:l.length,tone:l.length?"warn":"quiet"})]})]}),(0,a.jsxs)("section",{className:"console-panel quick-panel",children:[(0,a.jsx)(x,{title:"Quick actions"}),(0,a.jsxs)("div",{className:"quick-actions",children:[(0,a.jsxs)("button",{onClick:()=>u("memory"),className:"inline-flex items-center justify-between",children:["Review memory ",(0,a.jsx)("span",{children:(0,a.jsx)(n.fl,{size:12})})]}),(0,a.jsxs)("button",{onClick:()=>u("lifedb"),className:"inline-flex items-center justify-between",children:["Inspect Life DB ",(0,a.jsx)("span",{children:(0,a.jsx)(n.fl,{size:12})})]}),(0,a.jsxs)("button",{onClick:()=>u("evidence"),className:"inline-flex items-center justify-between",children:["Inspect evidence ",(0,a.jsx)("span",{children:(0,a.jsx)(n.fl,{size:12})})]}),(0,a.jsxs)("button",{onClick:()=>u("settings"),className:"inline-flex items-center justify-between",children:["Identity & Directives ",(0,a.jsx)("span",{children:(0,a.jsx)(n.fl,{size:12})})]})]})]})]})}function g({entities:e,events:s,tasks:t,schedule:r,busy:c,onSaveEntity:d,onDeleteEntity:h,onSaveTask:m,onToggleTask:x,onDeleteTask:j,onAddEvent:u,onSaveSchedule:p,onDeleteSchedule:v,onRefresh:b}){let[N,y]=(0,l.useState)("tasks"),[f,w]=(0,l.useState)("all"),[k,S]=(0,l.useState)(!1),[C,T]=(0,l.useState)(!1),[D,O]=(0,l.useState)(!1),[E,I]=(0,l.useState)(!1),[R,$]=(0,l.useState)(""),[A,L]=(0,l.useState)("1"),[P,_]=(0,l.useState)("todo"),[B,z]=(0,l.useState)(""),[U,M]=(0,l.useState)(""),[F,J]=(0,l.useState)("item"),[V,q]=(0,l.useState)("general"),[G,Q]=(0,l.useState)("{}"),[H,Z]=(0,l.useState)("finance:expense"),[K,Y]=(0,l.useState)(""),[W,X]=(0,l.useState)("{}"),[ee,es]=(0,l.useState)(""),[et,ea]=(0,l.useState)(""),[el,en]=(0,l.useState)(""),ei=t.filter(e=>"all"===f||("active"===f?"completed"!==e.status&&"cancelled"!==e.status:e.status===f));return(0,a.jsxs)("div",{className:"console-view",children:[(0,a.jsxs)("div",{className:"view-intro",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"console-eyebrow",children:"LIFE DATABASE"}),(0,a.jsx)("h2",{children:"Sovereign Reality & Structured Primitives"}),(0,a.jsx)("p",{children:"Inspect and mutate your concrete user reality: actionable tasks, static entities, telemetry events, and temporal schedules."})]}),(0,a.jsx)("div",{className:"button-row",children:(0,a.jsx)("button",{className:"soft-button",onClick:()=>void b(),disabled:c,children:"Refresh"})})]}),(0,a.jsxs)("div",{className:"lifedb-nav",children:[(0,a.jsxs)("button",{className:`lifedb-tab-btn flex items-center gap-1.5 ${"tasks"===N?"active":""}`,onClick:()=>y("tasks"),children:[(0,a.jsx)(n.Sr,{size:13,className:"shrink-0"}),(0,a.jsxs)("span",{children:["Tasks & Goals (",t.length,")"]})]}),(0,a.jsxs)("button",{className:`lifedb-tab-btn flex items-center gap-1.5 ${"entities"===N?"active":""}`,onClick:()=>y("entities"),children:[(0,a.jsx)(n.qD,{size:13,className:"shrink-0"}),(0,a.jsxs)("span",{children:["Entities & Items (",e.length,")"]})]}),(0,a.jsxs)("button",{className:`lifedb-tab-btn flex items-center gap-1.5 ${"events"===N?"active":""}`,onClick:()=>y("events"),children:[(0,a.jsx)(n.O4,{size:13,className:"shrink-0"}),(0,a.jsxs)("span",{children:["Telemetry & Events (",s.length,")"]})]}),(0,a.jsxs)("button",{className:`lifedb-tab-btn flex items-center gap-1.5 ${"schedule"===N?"active":""}`,onClick:()=>y("schedule"),children:[(0,a.jsx)(n.CT,{size:13,className:"shrink-0"}),(0,a.jsxs)("span",{children:["Schedule & Calendar (",r.length,")"]})]})]}),"tasks"===N&&(0,a.jsxs)("section",{className:"console-panel table-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("strong",{children:"Actionable Tasks"}),(0,a.jsx)("div",{className:"flex gap-1",children:["all","active","todo","in_progress","completed"].map(e=>(0,a.jsx)("button",{className:`px-2 py-0.5 rounded text-[10px] ${f===e?"bg-amber-500/20 text-amber-300 font-semibold":"text-gray-400 hover:text-gray-200"}`,onClick:()=>w(e),children:e.toUpperCase()},e))})]}),(0,a.jsx)("button",{className:"tiny-button flex items-center gap-1",onClick:()=>S(!k),children:k?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.US,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{children:"Close"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.c1,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{children:"New Task"})]})})]}),k&&(0,a.jsxs)("div",{className:"lifedb-form-card m-4",children:[(0,a.jsx)("h4",{className:"text-xs font-semibold text-amber-300 mb-2",children:"Create New Task"}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-3 mb-3",children:[(0,a.jsx)("input",{type:"text",placeholder:"Task title (e.g. Order fresh coffee)",value:R,onChange:e=>$(e.target.value),className:"lifedb-input md:col-span-2"}),(0,a.jsxs)("select",{value:P,onChange:e=>_(e.target.value),className:"lifedb-input",children:[(0,a.jsx)("option",{value:"todo",children:"To-Do"}),(0,a.jsx)("option",{value:"in_progress",children:"In Progress"}),(0,a.jsx)("option",{value:"completed",children:"Completed"}),(0,a.jsx)("option",{value:"cancelled",children:"Cancelled"})]}),(0,a.jsx)("input",{type:"number",placeholder:"Priority (1-5)",value:A,onChange:e=>L(e.target.value),className:"lifedb-input"})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)("button",{className:"tiny-button",onClick:()=>S(!1),children:"Cancel"}),(0,a.jsx)("button",{className:"tiny-button approve-button",disabled:!R.trim()||c,onClick:async()=>{await m({title:R.trim(),status:P,priority:Number(A)||1,targetDate:B||void 0}),$(""),S(!1)},children:"Save Task"})]})]}),ei.length?(0,a.jsx)("div",{className:"data-table-wrap",children:(0,a.jsxs)("table",{className:"data-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{style:{width:"40px"},children:"Done"}),(0,a.jsx)("th",{children:"Title"}),(0,a.jsx)("th",{children:"Status"}),(0,a.jsx)("th",{children:"Priority"}),(0,a.jsx)("th",{children:"Target Date"}),(0,a.jsx)("th",{children:"Updated"}),(0,a.jsx)("th",{children:"Actions"})]})}),(0,a.jsx)("tbody",{children:ei.map(e=>{let s="completed"===e.status;return(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{children:(0,a.jsx)("input",{type:"checkbox",checked:s,onChange:()=>void x(e),className:"cursor-pointer accent-amber-500"})}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:s?"line-through text-gray-500":"font-medium text-gray-200",children:e.title})}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:`lifedb-pill lifedb-pill-${e.status||"todo"}`,children:e.status||"todo"})}),(0,a.jsx)("td",{children:(0,a.jsxs)("span",{className:"tag font-mono",children:["P",e.priority??1]})}),(0,a.jsx)("td",{children:o(e.targetDate)}),(0,a.jsx)("td",{children:o(e.updatedAt)}),(0,a.jsx)("td",{children:(0,a.jsxs)("div",{className:"table-actions",children:[(0,a.jsx)("button",{className:"tiny-button",onClick:()=>void x(e),children:s?"Reopen":"Complete"}),(0,a.jsx)("button",{className:"tiny-button danger-button",onClick:()=>void j(e.id),children:"Delete"})]})})]},e.id)})})]})}):(0,a.jsx)(i,{title:"No tasks match filter",detail:"Tasks learned through conversation or created above will appear here."})]}),"entities"===N&&(0,a.jsxs)("section",{className:"console-panel table-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"Static Entities & Inventory"}),(0,a.jsx)("span",{children:"Nouns, devices, gaming items, and contacts"})]}),(0,a.jsx)("button",{className:"tiny-button flex items-center gap-1",onClick:()=>T(!C),children:C?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.US,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{children:"Close"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.c1,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{children:"New Entity"})]})})]}),C&&(0,a.jsxs)("div",{className:"lifedb-form-card m-4",children:[(0,a.jsx)("h4",{className:"text-xs font-semibold text-amber-300 mb-2",children:"Create New Entity"}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3 mb-3",children:[(0,a.jsx)("input",{type:"text",placeholder:"Entity Name (e.g. MacBook Pro M3)",value:U,onChange:e=>M(e.target.value),className:"lifedb-input"}),(0,a.jsx)("input",{type:"text",placeholder:"Type (e.g. hardware, contact, item)",value:F,onChange:e=>J(e.target.value),className:"lifedb-input"}),(0,a.jsx)("input",{type:"text",placeholder:"Domain (e.g. workstation, gaming, home)",value:V,onChange:e=>q(e.target.value),className:"lifedb-input"})]}),(0,a.jsx)("div",{className:"mb-3",children:(0,a.jsx)("textarea",{placeholder:'Properties JSON (e.g. {"model": "16-inch", "ram": "36GB"})',value:G,onChange:e=>Q(e.target.value),className:"lifedb-input w-full font-mono text-xs",rows:2})}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)("button",{className:"tiny-button",onClick:()=>T(!1),children:"Cancel"}),(0,a.jsx)("button",{className:"tiny-button approve-button",disabled:!U.trim()||c,onClick:async()=>{let e={};try{e=JSON.parse(G||"{}")}catch{}await d({name:U.trim(),entityType:F.trim()||"item",domain:V.trim()||"general",properties:e}),M(""),T(!1)},children:"Save Entity"})]})]}),e.length?(0,a.jsx)("div",{className:"data-table-wrap",children:(0,a.jsxs)("table",{className:"data-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:"Name"}),(0,a.jsx)("th",{children:"Type"}),(0,a.jsx)("th",{children:"Domain"}),(0,a.jsx)("th",{children:"Properties"}),(0,a.jsx)("th",{children:"Updated"}),(0,a.jsx)("th",{children:"Actions"})]})}),(0,a.jsx)("tbody",{children:e.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:"font-medium text-gray-200",children:e.name}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:"tag font-mono",children:e.entityType})}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:"tag",children:e.domain})}),(0,a.jsx)("td",{children:(0,a.jsx)("pre",{className:"text-[10px] text-gray-400 font-mono max-w-xs overflow-hidden text-ellipsis whitespace-nowrap",children:JSON.stringify(e.properties||{})})}),(0,a.jsx)("td",{children:o(e.updatedAt)}),(0,a.jsx)("td",{children:(0,a.jsx)("button",{className:"tiny-button danger-button",onClick:()=>void h(e.id),children:"Delete"})})]},e.id))})]})}):(0,a.jsx)(i,{title:"No entities recorded",detail:"Hardware, game characters, contacts, and items stored in Life DB will appear here."})]}),"events"===N&&(0,a.jsxs)("section",{className:"console-panel table-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"Time-Series Events & Telemetry"}),(0,a.jsx)("span",{children:"Biometrics, finances, workout telemetry, and logs"})]}),(0,a.jsx)("button",{className:"tiny-button flex items-center gap-1",onClick:()=>O(!D),children:D?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.US,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{children:"Close"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.c1,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{children:"Log Event"})]})})]}),D&&(0,a.jsxs)("div",{className:"lifedb-form-card m-4",children:[(0,a.jsx)("h4",{className:"text-xs font-semibold text-amber-300 mb-2",children:"Log New Event"}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mb-3",children:[(0,a.jsx)("input",{type:"text",placeholder:"Stream (e.g. finance:expense, health:heartrate)",value:H,onChange:e=>Z(e.target.value),className:"lifedb-input"}),(0,a.jsx)("input",{type:"number",step:"any",placeholder:"Metric Value (optional, e.g. 25.5)",value:K,onChange:e=>Y(e.target.value),className:"lifedb-input"})]}),(0,a.jsx)("div",{className:"mb-3",children:(0,a.jsx)("textarea",{placeholder:'Metadata JSON (optional, e.g. {"category": "coffee", "currency": "USD"})',value:W,onChange:e=>X(e.target.value),className:"lifedb-input w-full font-mono text-xs",rows:2})}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)("button",{className:"tiny-button",onClick:()=>O(!1),children:"Cancel"}),(0,a.jsx)("button",{className:"tiny-button approve-button",disabled:!H.trim()||c,onClick:async()=>{let e={};try{e=JSON.parse(W||"{}")}catch{}await u({stream:H.trim(),metricValue:""!==K?Number(K):void 0,metadata:e}),Y(""),O(!1)},children:"Log Event"})]})]}),s.length?(0,a.jsx)("div",{className:"data-table-wrap",children:(0,a.jsxs)("table",{className:"data-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:"Stream"}),(0,a.jsx)("th",{children:"Metric Value"}),(0,a.jsx)("th",{children:"Timestamp"}),(0,a.jsx)("th",{children:"Metadata"})]})}),(0,a.jsx)("tbody",{children:s.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:"font-mono text-amber-400 text-xs",children:e.stream}),(0,a.jsx)("td",{className:"font-mono text-xs",children:void 0!==e.metricValue&&null!==e.metricValue?(0,a.jsx)("strong",{children:e.metricValue}):"—"}),(0,a.jsx)("td",{children:o(e.timestamp)}),(0,a.jsx)("td",{children:(0,a.jsx)("pre",{className:"text-[10px] text-gray-400 font-mono max-w-xs overflow-hidden text-ellipsis whitespace-nowrap",children:JSON.stringify(e.metadata||{})})})]},e.id))})]})}):(0,a.jsx)(i,{title:"No events logged",detail:"Telemetry and time-series events will be displayed here."})]}),"schedule"===N&&(0,a.jsxs)("section",{className:"console-panel table-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:"Calendar Commitments & Routines"}),(0,a.jsx)("span",{children:"Upcoming time intervals and schedule items"})]}),(0,a.jsx)("button",{className:"tiny-button flex items-center gap-1",onClick:()=>I(!E),children:E?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.US,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{children:"Close"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.c1,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{children:"New Schedule Item"})]})})]}),E&&(0,a.jsxs)("div",{className:"lifedb-form-card m-4",children:[(0,a.jsx)("h4",{className:"text-xs font-semibold text-amber-300 mb-2",children:"Create Schedule Item"}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3 mb-3",children:[(0,a.jsx)("input",{type:"text",placeholder:"Title (e.g. Flight to Tokyo)",value:ee,onChange:e=>es(e.target.value),className:"lifedb-input"}),(0,a.jsx)("input",{type:"text",placeholder:"Start Time (e.g. 2026-09-20T14:00:00Z)",value:et,onChange:e=>ea(e.target.value),className:"lifedb-input"}),(0,a.jsx)("input",{type:"text",placeholder:"End Time (optional)",value:el,onChange:e=>en(e.target.value),className:"lifedb-input"})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)("button",{className:"tiny-button",onClick:()=>I(!1),children:"Cancel"}),(0,a.jsx)("button",{className:"tiny-button approve-button",disabled:!ee.trim()||!et.trim()||c,onClick:async()=>{await p({title:ee.trim(),startTime:et.trim(),endTime:el.trim()||void 0,status:"active"}),es(""),ea(""),en(""),I(!1)},children:"Save Schedule"})]})]}),r.length?(0,a.jsx)("div",{className:"data-table-wrap",children:(0,a.jsxs)("table",{className:"data-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{children:"Title"}),(0,a.jsx)("th",{children:"Start Time"}),(0,a.jsx)("th",{children:"End Time"}),(0,a.jsx)("th",{children:"Status"}),(0,a.jsx)("th",{children:"Actions"})]})}),(0,a.jsx)("tbody",{children:r.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:"font-medium text-gray-200",children:e.title}),(0,a.jsx)("td",{children:o(e.startTime)}),(0,a.jsx)("td",{children:o(e.endTime)}),(0,a.jsx)("td",{children:(0,a.jsx)("span",{className:"tag font-mono",children:e.status||"active"})}),(0,a.jsx)("td",{children:(0,a.jsx)("button",{className:"tiny-button danger-button",onClick:()=>void v(e.id),children:"Delete"})})]},e.id))})]})}):(0,a.jsx)(i,{title:"No upcoming schedule items",detail:"Calendar commitments and schedule intervals will appear here."})]})]})}function N({logs:e,filterLevel:s,filterSubsystem:t,searchQuery:r,autoRefresh:c,expandedIds:d,onToggleExpand:o,onChangeLevel:h,onChangeSubsystem:m,onChangeSearch:x,onToggleAutoRefresh:j,onRefresh:u,onClear:p,onExport:v}){let b=(0,l.useMemo)(()=>e.filter(e=>"error"===e.level).length,[e]),g=(0,l.useMemo)(()=>e.filter(e=>"warn"===e.level).length,[e]);return(0,a.jsxs)("div",{className:"console-view",children:[(0,a.jsxs)("div",{className:"view-intro",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"console-eyebrow",children:"DIAGNOSTICS & AUDIT"}),(0,a.jsx)("h2",{children:"System Logs & Diagnostics"}),(0,a.jsx)("p",{children:"Real-time audit trail of perception cycles, LLM calls, Truth Gate decisions, and tool executions."})]}),(0,a.jsxs)("div",{className:"flex gap-2 items-center flex-wrap",children:[(0,a.jsxs)("button",{className:"tiny-button flex items-center gap-1",onClick:v,title:"Download current logs as JSON",children:[(0,a.jsx)(n.s3,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{children:"Export JSON"})]}),(0,a.jsxs)("button",{className:"tiny-button danger-button flex items-center gap-1",onClick:p,title:"Purge stored logs",children:[(0,a.jsx)(n.uc,{size:12,className:"shrink-0"}),(0,a.jsx)("span",{children:"Clear Logs"})]})]})]}),(0,a.jsxs)("section",{className:"console-panel",children:[(0,a.jsxs)("div",{className:"logs-toolbar",children:[(0,a.jsxs)("div",{className:"logs-toolbar-left",children:[(0,a.jsx)("input",{type:"text",placeholder:"Search logs, metadata...",value:r,onChange:e=>x(e.target.value),className:"logs-search-input"}),(0,a.jsxs)("select",{value:t,onChange:e=>m(e.target.value),className:"logs-select",children:[(0,a.jsx)("option",{value:"all",children:"All Subsystems"}),(0,a.jsx)("option",{value:"perception",children:"Perception"}),(0,a.jsx)("option",{value:"brain",children:"Brain / LLM"}),(0,a.jsx)("option",{value:"truth_gate",children:"Truth Gate"}),(0,a.jsx)("option",{value:"memory",children:"Memory"}),(0,a.jsx)("option",{value:"hands",children:"Hands / Tools"}),(0,a.jsx)("option",{value:"server",children:"Server"})]})]}),(0,a.jsxs)("div",{className:"logs-toolbar-right",children:[(0,a.jsx)("div",{className:"logs-level-pills",children:["all","error","warn","info","debug"].map(e=>(0,a.jsxs)("button",{type:"button",className:`log-pill ${s===e?"active":""} ${"error"===e&&b>0?"has-errors":""}`,onClick:()=>h(e),children:[e.toUpperCase(),"error"===e&&b>0&&(0,a.jsx)("span",{className:"pill-badge",children:b}),"warn"===e&&g>0&&(0,a.jsx)("span",{className:"pill-badge",children:g})]},e))}),(0,a.jsxs)("label",{className:"logs-live-toggle",children:[(0,a.jsx)("input",{type:"checkbox",checked:c,onChange:j}),(0,a.jsx)("span",{className:`live-indicator ${c?"active":""}`}),"Live (3s)"]}),(0,a.jsx)("button",{type:"button",className:"tiny-button inline-flex items-center justify-center",onClick:u,title:"Fetch latest logs",children:(0,a.jsx)(n.fN,{size:12})})]})]}),e.length>0?(0,a.jsx)("div",{className:"logs-container",children:e.map(e=>{let s=d.has(e.id),t=!!(e.metadata&&Object.keys(e.metadata).length>0),l=new Date(e.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3});return(0,a.jsxs)("div",{className:`log-entry log-entry-${e.level} ${s?"expanded":""}`,children:[(0,a.jsxs)("div",{className:"log-header",onClick:()=>t&&o(e.id),style:{cursor:t?"pointer":"default"},children:[(0,a.jsx)("span",{className:"log-time",title:e.createdAt,children:l}),(0,a.jsx)("span",{className:`log-badge log-badge-${e.level}`,children:e.level.toUpperCase()}),(0,a.jsxs)("span",{className:"log-subsystem",children:["[",e.subsystem,"]"]}),(0,a.jsx)("span",{className:"log-message",children:e.message}),t&&(0,a.jsx)("span",{className:"log-expand-icon flex items-center justify-center",title:"Toggle JSON metadata",children:s?(0,a.jsx)(n.Mt,{size:12}):(0,a.jsx)(n.D3,{size:12})})]}),s&&t&&(0,a.jsxs)("div",{className:"log-metadata-card",children:[!!e.metadata?.stack&&(0,a.jsxs)("div",{className:"log-stack-trace",children:[(0,a.jsx)("strong",{children:"Stack trace:"}),(0,a.jsx)("pre",{children:String(e.metadata?.stack)})]}),(0,a.jsxs)("div",{className:"log-json-block",children:[(0,a.jsx)("strong",{children:"Payload / Metadata:"}),(0,a.jsx)("pre",{children:JSON.stringify(e.metadata,null,2)})]})]})]},e.id)})}):(0,a.jsx)(i,{title:"No system logs found",detail:r||"all"!==s||"all"!==t?"No logs match the current filters. Try resetting the search or level filter.":"No logs have been recorded yet. New perception cycles, Truth Gate decisions, and model queries will appear here."})]})]})}function y({onResetMemory:e,disabled:s}){return(0,a.jsxs)("div",{className:"console-view",children:[(0,a.jsx)("div",{className:"view-intro",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"console-eyebrow",children:"RUNTIME IDENTITY"}),(0,a.jsx)("h2",{children:"Companion Identity & Directives"}),(0,a.jsx)("p",{children:"Identity and behavioral preferences are governed dynamically through conversational teaching and reviewed in the Memory tab."})]})}),(0,a.jsxs)("section",{className:"console-panel profile-panel",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsx)("strong",{children:"Identity Directives"}),(0,a.jsx)("span",{children:"Governed Memory Model"})]}),(0,a.jsx)(i,{title:"Dynamic identity active",detail:"Siduri establishes preferences and boundaries dynamically through conversation. Use the Private Chat to teach preferences, and the Memory tab to approve or revoke directives."})]}),(0,a.jsxs)("section",{className:"console-panel profile-panel mt-6",children:[(0,a.jsxs)("div",{className:"table-toolbar",children:[(0,a.jsx)("strong",{children:"Danger Zone"}),(0,a.jsx)("span",{children:"Irreversible actions"})]}),(0,a.jsxs)("div",{className:"p-6 bg-red-900/20 border border-red-500/20 rounded-lg",children:[(0,a.jsx)("h3",{className:"text-red-400 font-medium mb-2",children:"Reset All Memory"}),(0,a.jsx)("p",{className:"text-sm text-gray-400 mb-4",children:"This will permanently delete all memory items, proposals, revisions, and claims from the database. The companion will forget all approved claims, directives, and proposals."}),(0,a.jsx)("button",{className:"bg-red-500/10 text-red-400 border border-red-500/50 hover:bg-red-500/20 px-4 py-2 rounded-md font-medium transition-colors",onClick:()=>void e(),disabled:s,children:"Reset Memory"})]})]})]})}},5064:(e,s,t)=>{Promise.resolve().then(t.bind(t,3449))}},e=>{e.O(0,[426,461,136,358],()=>e(e.s=5064)),_N_E=e.O()}]);
|
|
@@ -9,7 +9,7 @@ c:I[6886,[],"default",1]
|
|
|
9
9
|
:HL["/_next/static/css/ceeb8e5596664b11.css","style"]
|
|
10
10
|
:HL["https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","style"]
|
|
11
11
|
7:X
|
|
12
|
-
0:{"P":null,"c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ceeb8e5596664b11.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full antialiased dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
12
|
+
0:{"P":null,"c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ceeb8e5596664b11.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full antialiased dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"TAssFHX71jXsDINzGLNGT"}
|
|
13
13
|
7:C
|
|
14
14
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"}],["$","meta","2",{"name":"theme-color","content":"#0b0b0e"}]]
|
|
15
15
|
d:I[3366,[],"IconMark"]
|
|
@@ -11,7 +11,7 @@ c:I[356,[],""]
|
|
|
11
11
|
6:X
|
|
12
12
|
e:X
|
|
13
13
|
e:C
|
|
14
|
-
0:{"buildId":"
|
|
14
|
+
0:{"buildId":"TAssFHX71jXsDINzGLNGT","data":[{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":"$@5","staleTime":"$6","varyParams":null},{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"}],["$","meta","2",{"name":"theme-color","content":"#0b0b0e"}]]}],["$","div",null,{"hidden":true,"children":["$","$L8",null,{"children":["$","$3",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Siduri — Local-First Companion"}],["$","meta","1",{"name":"description","content":"Siduri — a local-first companion with explicit memory, grounded knowledge, and optional presence."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?7715e5163ea8ac02","type":"image/x-icon","sizes":"16x16"}],["$","link","3",{"rel":"icon","href":"/favicon.ico"}],["$","link","4",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","5",{"rel":"apple-touch-icon","href":"/apple-touch-icon.png"}],["$","$L9","6",{}]]}]}]}],null]}],"isPartial":"$@a","staleTime":"$6","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]]}],"isPartial":"$@d","staleTime":"$6","varyParams":"$e"},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ceeb8e5596664b11.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"h-full antialiased dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]","children":["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]}]]}]]}],"isPartial":"$@f","staleTime":"$6","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@10","rootVaryParams":null,"needsRuntimeRequest":"$@11"}
|
|
15
15
|
4:null
|
|
16
16
|
6:300
|
|
17
17
|
11:true
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
:HL["/_next/static/css/ceeb8e5596664b11.css","style"]
|
|
2
2
|
:HL["https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","style"]
|
|
3
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"_not-found","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
3
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"_not-found","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"TAssFHX71jXsDINzGLNGT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="h-full antialiased dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/ceeb8e5596664b11.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9073f434bc17ce16.js"/><script src="/_next/static/chunks/563b947f-8e2871a2ab7cd91e.js" async=""></script><script src="/_next/static/chunks/136-1d10af93b770a1c8.js" async=""></script><script src="/_next/static/chunks/main-app-9e6a144626e5a5b9.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap" as="style"/><meta name="robots" content="noindex"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0b0b0e"/><title>Siduri — Local-First Companion</title><meta name="description" content="Siduri — a local-first companion with explicit memory, grounded knowledge, and optional presence."/><link rel="icon" href="/favicon.ico?7715e5163ea8ac02" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.ico"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-9073f434bc17ce16.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[8766,[],\"\"]\n3:I[356,[],\"\"]\n4:I[5127,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[5127,[],\"ViewportBoundary\"]\na:I[5127,[],\"MetadataBoundary\"]\nc:I[6886,[],\"default\",1]\n:HL[\"/_next/static/css/ceeb8e5596664b11.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500\u0026family=Noto+Sans+JP:wght@400;500;700\u0026family=Noto+Serif+JP:wght@400;500;700\u0026display=swap\",\"style\"]\n7:X\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ceeb8e5596664b11.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"h-full antialiased dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500\u0026family=Noto+Sans+JP:wght@400;500;700\u0026family=Noto+Serif+JP:wght@400;500;700\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="h-full antialiased dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/ceeb8e5596664b11.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9073f434bc17ce16.js"/><script src="/_next/static/chunks/563b947f-8e2871a2ab7cd91e.js" async=""></script><script src="/_next/static/chunks/136-1d10af93b770a1c8.js" async=""></script><script src="/_next/static/chunks/main-app-9e6a144626e5a5b9.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap" as="style"/><meta name="robots" content="noindex"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0b0b0e"/><title>Siduri — Local-First Companion</title><meta name="description" content="Siduri — a local-first companion with explicit memory, grounded knowledge, and optional presence."/><link rel="icon" href="/favicon.ico?7715e5163ea8ac02" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.ico"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-9073f434bc17ce16.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[8766,[],\"\"]\n3:I[356,[],\"\"]\n4:I[5127,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[5127,[],\"ViewportBoundary\"]\na:I[5127,[],\"MetadataBoundary\"]\nc:I[6886,[],\"default\",1]\n:HL[\"/_next/static/css/ceeb8e5596664b11.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500\u0026family=Noto+Sans+JP:wght@400;500;700\u0026family=Noto+Serif+JP:wght@400;500;700\u0026display=swap\",\"style\"]\n7:X\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ceeb8e5596664b11.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"h-full antialiased dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500\u0026family=Noto+Sans+JP:wght@400;500;700\u0026family=Noto+Serif+JP:wght@400;500;700\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"TAssFHX71jXsDINzGLNGT\"}\n"])</script><script>self.__next_f.push([1,"7:C\n9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0b0b0e\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[3366,[],\"IconMark\"]\n6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Siduri — Local-First Companion\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Siduri — a local-first companion with explicit memory, grounded knowledge, and optional presence.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?7715e5163ea8ac02\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"5\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\"}],[\"$\",\"$Ld\",\"6\",{}]]\n"])</script></body></html>
|
|
@@ -9,7 +9,7 @@ c:I[6886,[],"default",1]
|
|
|
9
9
|
:HL["/_next/static/css/ceeb8e5596664b11.css","style"]
|
|
10
10
|
:HL["https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","style"]
|
|
11
11
|
7:X
|
|
12
|
-
0:{"P":null,"c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ceeb8e5596664b11.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full antialiased dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
12
|
+
0:{"P":null,"c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ceeb8e5596664b11.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full antialiased dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"TAssFHX71jXsDINzGLNGT"}
|
|
13
13
|
7:C
|
|
14
14
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"}],["$","meta","2",{"name":"theme-color","content":"#0b0b0e"}]]
|
|
15
15
|
d:I[3366,[],"IconMark"]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[8766,[],""]
|
|
3
3
|
3:I[356,[],""]
|
|
4
|
-
4:I[3592,["426","static/chunks/426-9f7f6e7fffd4c3c3.js","457","static/chunks/app/chat/page-
|
|
4
|
+
4:I[3592,["426","static/chunks/426-9f7f6e7fffd4c3c3.js","457","static/chunks/app/chat/page-c2c01bacc6562e40.js"],"default"]
|
|
5
5
|
5:I[5127,[],"OutletBoundary"]
|
|
6
6
|
6:"$Sreact.suspense"
|
|
7
7
|
9:I[5127,[],"ViewportBoundary"]
|
|
@@ -10,7 +10,7 @@ d:I[6886,[],"default",1]
|
|
|
10
10
|
:HL["/_next/static/css/ceeb8e5596664b11.css","style"]
|
|
11
11
|
:HL["https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","style"]
|
|
12
12
|
8:X
|
|
13
|
-
0:{"P":null,"c":["","chat",""],"q":"","i":false,"f":[[["",{"children":["chat",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ceeb8e5596664b11.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full antialiased dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{}],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[null,["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
13
|
+
0:{"P":null,"c":["","chat",""],"q":"","i":false,"f":[[["",{"children":["chat",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ceeb8e5596664b11.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full antialiased dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{}],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[null,["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"TAssFHX71jXsDINzGLNGT"}
|
|
14
14
|
8:C
|
|
15
15
|
a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"}],["$","meta","2",{"name":"theme-color","content":"#0b0b0e"}]]
|
|
16
16
|
e:I[3366,[],"IconMark"]
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
:HL["/_next/static/css/ceeb8e5596664b11.css","style"]
|
|
2
2
|
:HL["https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","style"]
|
|
3
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"chat","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
3
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"chat","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"TAssFHX71jXsDINzGLNGT"}
|