@vxnus/siduri 2.0.12 → 2.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/builtin-manifests.js +3 -3
  2. package/dist/generator.js +17 -11
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/web-dist/404/index.html +1 -1
  6. package/dist/web-dist/404.html +1 -1
  7. package/dist/web-dist/__next.__PAGE__.txt +3 -3
  8. package/dist/web-dist/__next._full.txt +3 -3
  9. package/dist/web-dist/__next._tree.txt +2 -2
  10. package/dist/web-dist/_next/static/chunks/1pnv4y9qdxvph.js +1 -0
  11. package/dist/web-dist/_next/static/chunks/2hcgkjgsj4zgc.js +30 -0
  12. package/dist/web-dist/_next/static/chunks/3chy1yguuhwlh.css +1 -0
  13. package/dist/web-dist/_next/static/chunks/3s_3rro0dc9lc.js +1 -0
  14. package/dist/web-dist/_not-found/__next._full.txt +2 -2
  15. package/dist/web-dist/_not-found/__next._not-found.__PAGE__.txt +2 -2
  16. package/dist/web-dist/_not-found/__next._tree.txt +2 -2
  17. package/dist/web-dist/_not-found/index.html +1 -1
  18. package/dist/web-dist/_not-found/index.txt +2 -2
  19. package/dist/web-dist/chat/__next._full.txt +3 -3
  20. package/dist/web-dist/chat/__next._tree.txt +2 -2
  21. package/dist/web-dist/chat/__next.chat.__PAGE__.txt +3 -3
  22. package/dist/web-dist/chat/index.html +1 -1
  23. package/dist/web-dist/chat/index.txt +3 -3
  24. package/dist/web-dist/index.html +1 -1
  25. package/dist/web-dist/index.txt +3 -3
  26. package/dist/web-dist/operator/__next._full.txt +3 -3
  27. package/dist/web-dist/operator/__next._tree.txt +2 -2
  28. package/dist/web-dist/operator/__next.operator.__PAGE__.txt +3 -3
  29. package/dist/web-dist/operator/index.html +1 -1
  30. package/dist/web-dist/operator/index.txt +3 -3
  31. package/package.json +1 -1
  32. package/dist/web-dist/_next/static/chunks/15q-egfwp0gfo.js +0 -1
  33. package/dist/web-dist/_next/static/chunks/24608ekqxlkf6.js +0 -1
  34. package/dist/web-dist/_next/static/chunks/27vro44ly8dtc.js +0 -30
  35. package/dist/web-dist/_next/static/chunks/2evcd3-u5ivvc.css +0 -1
  36. /package/dist/web-dist/_next/static/{NgACehmLOdq_GfPnqeF6o → EjYAMpKxmHkKLLiEb5QR9}/_buildManifest.js +0 -0
  37. /package/dist/web-dist/_next/static/{NgACehmLOdq_GfPnqeF6o → EjYAMpKxmHkKLLiEb5QR9}/_clientMiddlewareManifest.js +0 -0
  38. /package/dist/web-dist/_next/static/{NgACehmLOdq_GfPnqeF6o → EjYAMpKxmHkKLLiEb5QR9}/_ssgManifest.js +0 -0
@@ -79,7 +79,7 @@ exports.BUILTIN_ORGAN_MANIFESTS = [
79
79
  {
80
80
  name: '@siduri-x/brain',
81
81
  organType: 'brain',
82
- version: '2.0.1',
82
+ version: '2.0.2',
83
83
  displayName: 'Brain (Cognition & Planning)',
84
84
  description: 'Provider-neutral LLM reasoning, response planning, and proposal generation',
85
85
  entrypoint: './dist/index.js',
@@ -298,7 +298,7 @@ exports.BUILTIN_ORGAN_MANIFESTS = [
298
298
  {
299
299
  name: '@siduri-x/memory',
300
300
  organType: 'memory',
301
- version: '2.0.1',
301
+ version: '2.0.2',
302
302
  displayName: 'Memory (Long-term Recall & State)',
303
303
  description: 'Relational semantic claims with Full-Text Search (FTS5) and companion isolation',
304
304
  entrypoint: './dist/index.js',
@@ -468,7 +468,7 @@ exports.BUILTIN_ORGAN_MANIFESTS = [
468
468
  {
469
469
  name: '@siduri-x/mouth',
470
470
  organType: 'mouth',
471
- version: '2.0.1',
471
+ version: '2.0.2',
472
472
  displayName: 'Mouth (Communication & UI Delivery)',
473
473
  description: 'Decoupled output delivery organ formatting cognitive decisions for web interfaces',
474
474
  entrypoint: './dist/index.js',
package/dist/generator.js CHANGED
@@ -75,7 +75,7 @@ function generateInstanceFiles(options) {
75
75
  const instanceName = options.name || 'my-siduri';
76
76
  const companionSlug = instanceName.toLowerCase().replace(/[^a-z0-9_-]/g, '') || 'default';
77
77
  const instanceId = options.id || 'default';
78
- const coreVersion = options.coreVersion || '^2.0.3';
78
+ const coreVersion = options.coreVersion || '^2.0.4';
79
79
  const manifests = options.selectedManifests;
80
80
  const hasMemory = manifests.some((m) => m.organType === 'memory');
81
81
  const hasVoice = manifests.some((m) => m.organType === 'voice');
@@ -194,7 +194,7 @@ function generateInstanceFiles(options) {
194
194
  instantiationLines.push(` if (parsedSelf.isValid && parsedSelf.manifest) {`);
195
195
  instantiationLines.push(` await self.setIdentity({ companionId: config.id || 'default', name: parsedSelf.manifest.identity?.name || config.name, archetype: parsedSelf.manifest.identity?.archetype, version: parsedSelf.manifest.version || '1.0.0', updatedAt: new Date().toISOString() });`);
196
196
  instantiationLines.push(` if (parsedSelf.manifest.directives) {`);
197
- instantiationLines.push(` await self.commitDirectives(config.id || 'default', parsedSelf.manifest.directives.map((d) => ({ id: d.id, companionId: config.id || 'default', directive: d.directive, category: (d.category || 'behavioral'), status: 'ACTIVE', priority: d.priority || 50, createdAt: new Date().toISOString() })));`);
197
+ instantiationLines.push(` await self.commitDirectives(config.id || 'default', parsedSelf.manifest.directives.map((d) => ({ id: d.id, companionId: config.id || 'default', directive: d.directive, category: (d.category || 'behavioral'), status: 'active', priority: d.priority || 50, createdAt: new Date().toISOString() })));`);
198
198
  instantiationLines.push(` }`);
199
199
  instantiationLines.push(` }`);
200
200
  instantiationLines.push(` }`);
@@ -376,31 +376,35 @@ function generateInstanceFiles(options) {
376
376
  ` return;`,
377
377
  ` }`,
378
378
  '',
379
- ` // API: Memory Proposal Approval / Rejection`,
380
- ` if ((pathname === '/memory/proposals/approve' || pathname === '/memory/proposals/reject') && req.method === 'POST') {`,
379
+ ` // API: Memory Proposal & Behavioral Approval / Rejection`,
380
+ ` if ((pathname === '/memory/proposals/approve' || pathname === '/memory/proposals/reject' || pathname === '/memory/behavioral/approve' || pathname === '/memory/behavioral/reject') && req.method === 'POST') {`,
381
381
  ` let body = '';`,
382
382
  ` req.on('data', (chunk) => { body += chunk; });`,
383
383
  ` req.on('end', async () => {`,
384
384
  ` try {`,
385
385
  ` const payload = JSON.parse(body || '{}');`,
386
- ` const claimId = payload.id || payload.claimId;`,
386
+ ` const claimId = payload.id || payload.claimId || payload.directiveId;`,
387
387
  ` if (!claimId) {`,
388
388
  ` res.writeHead(400, { 'Content-Type': 'application/json' });`,
389
- ` res.end(JSON.stringify({ error: 'Missing required claim id' }));`,
389
+ ` res.end(JSON.stringify({ error: 'Missing required id' }));`,
390
390
  ` return;`,
391
391
  ` }`,
392
392
  ` if (pathname.endsWith('approve')) {`,
393
- ` if (typeof memory?.approveClaim === 'function') {`,
393
+ ` if (pathname.includes('behavioral') && typeof self?.approveDirective === 'function') {`,
394
+ ` await self.approveDirective(claimId);`,
395
+ ` } else if (typeof memory?.approveClaim === 'function') {`,
394
396
  ` await memory.approveClaim(claimId);`,
395
397
  ` }`,
396
398
  ` res.writeHead(200, { 'Content-Type': 'application/json' });`,
397
- ` res.end(JSON.stringify({ approved: true, id: claimId }));`,
399
+ ` res.end(JSON.stringify({ approved: true, id: claimId, status: 'approved' }));`,
398
400
  ` } else {`,
399
- ` if (typeof memory?.rejectClaim === 'function') {`,
401
+ ` if (pathname.includes('behavioral') && typeof self?.rejectDirective === 'function') {`,
402
+ ` await self.rejectDirective(claimId);`,
403
+ ` } else if (typeof memory?.rejectClaim === 'function') {`,
400
404
  ` await memory.rejectClaim(claimId);`,
401
405
  ` }`,
402
406
  ` res.writeHead(200, { 'Content-Type': 'application/json' });`,
403
- ` res.end(JSON.stringify({ rejected: true, id: claimId }));`,
407
+ ` res.end(JSON.stringify({ rejected: true, id: claimId, status: 'rejected' }));`,
404
408
  ` }`,
405
409
  ` } catch (err) {`,
406
410
  ` res.writeHead(500, { 'Content-Type': 'application/json' });`,
@@ -430,6 +434,7 @@ function generateInstanceFiles(options) {
430
434
  ` message: payload.message || payload.text || '',`,
431
435
  ` context: payload.context,`,
432
436
  ` history: Array.isArray(payload.history) ? payload.history : [],`,
437
+ ` subtitleLanguage: payload.subtitleLanguage || payload.subtitle_language,`,
433
438
  ` });`,
434
439
  '',
435
440
  ` res.writeHead(200, { 'Content-Type': 'application/json' });`,
@@ -471,12 +476,13 @@ function generateInstanceFiles(options) {
471
476
  ` history: Array.isArray(payload.history) ? payload.history : [],`,
472
477
  ` medium: 'web',`,
473
478
  ` signal: abortController.signal,`,
479
+ ` subtitleLanguage: payload.subtitleLanguage || payload.subtitle_language,`,
474
480
  ` });`,
475
481
  '',
476
482
  ` res.write(\`event: staged\\ndata: \${JSON.stringify({ response_id: response.response_id, correlation_id: response.correlation_id, status: response.status })}\\n\\n\`);`,
477
483
  '',
478
484
  ` const avatarEvent = response.metadata?.events?.find(`,
479
- ` (e) => (e.kind === 'avatar' || e.kind === 'body') && (e.approval === 'APPROVED' || !e.approval)`,
485
+ ` (e) => (e.kind === 'avatar' || e.kind === 'body') && (e.approval?.toLowerCase() === 'approved' || !e.approval)`,
480
486
  ` );`,
481
487
  ` if (avatarEvent) {`,
482
488
  ` res.write(\`event: avatar\\ndata: \${JSON.stringify(avatarEvent)}\\n\\n\`);`,
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { OrganManifest } from './manifest';
3
- export declare const CLI_VERSION = "2.0.12";
3
+ export declare const CLI_VERSION = "2.0.13";
4
4
  import { colors } from './colors';
5
5
  export { colors };
6
6
  export declare function printHeader(): void;
package/dist/index.js CHANGED
@@ -26,7 +26,7 @@ const doctor_1 = require("./doctor");
26
26
  const db_1 = require("./db");
27
27
  const configurators_1 = require("./configurators");
28
28
  const execFile = (0, node_util_1.promisify)(node_child_process_1.execFile);
29
- exports.CLI_VERSION = '2.0.12';
29
+ exports.CLI_VERSION = '2.0.13';
30
30
  const colors_1 = require("./colors");
31
31
  Object.defineProperty(exports, "colors", { enumerable: true, get: function () { return colors_1.colors; } });
32
32
  function printHeader() {
@@ -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/chunks/2evcd3-u5ivvc.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0tdcnq1-n6kof.js"/><script src="/_next/static/chunks/2mno6yfdoee0x.js" async=""></script><script src="/_next/static/chunks/12vwhiuvdy_i7.js" async=""></script><script src="/_next/static/chunks/0jgw-jf26m0ui.js" async=""></script><script src="/_next/static/chunks/turbopack-2hpygfb68u21h.js" async=""></script><script src="/_next/static/chunks/30a48dk5bjyhj.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&amp;family=Noto+Sans+JP:wght@400;500;700&amp;family=Noto+Serif+JP:wght@400;500;700&amp;display=swap" as="style"/><meta name="robots" content="noindex"/><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?favicon.3rlors1ui1gw9.ico" sizes="256x256" type="image/x-icon"/><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 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><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&amp;family=Noto+Sans+JP:wght@400;500;700&amp;family=Noto+Serif+JP:wght@400;500;700&amp;display=swap" rel="stylesheet"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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/0tdcnq1-n6kof.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[31790,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\"]\n3:I[65729,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\"]\n4:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"ViewportBoundary\"]\na:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"MetadataBoundary\"]\nc:I[58484,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2evcd3-u5ivvc.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/chunks/2evcd3-u5ivvc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/30a48dk5bjyhj.js\",\"async\":true,\"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\":[[[\"$\",\"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\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"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\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2evcd3-u5ivvc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"NgACehmLOdq_GfPnqeF6o\"}\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[71375,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"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?favicon.3rlors1ui1gw9.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"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>
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/chunks/3chy1yguuhwlh.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0tdcnq1-n6kof.js"/><script src="/_next/static/chunks/2mno6yfdoee0x.js" async=""></script><script src="/_next/static/chunks/12vwhiuvdy_i7.js" async=""></script><script src="/_next/static/chunks/0jgw-jf26m0ui.js" async=""></script><script src="/_next/static/chunks/turbopack-2hpygfb68u21h.js" async=""></script><script src="/_next/static/chunks/30a48dk5bjyhj.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&amp;family=Noto+Sans+JP:wght@400;500;700&amp;family=Noto+Serif+JP:wght@400;500;700&amp;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?favicon.3rlors1ui1gw9.ico" sizes="256x256" type="image/x-icon"/><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&amp;family=Noto+Sans+JP:wght@400;500;700&amp;family=Noto+Serif+JP:wght@400;500;700&amp;display=swap" rel="stylesheet"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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/0tdcnq1-n6kof.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[31790,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\"]\n3:I[65729,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\"]\n4:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"ViewportBoundary\"]\na:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"MetadataBoundary\"]\nc:I[58484,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3chy1yguuhwlh.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/chunks/3chy1yguuhwlh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/30a48dk5bjyhj.js\",\"async\":true,\"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\":[[[\"$\",\"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\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"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\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3chy1yguuhwlh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"EjYAMpKxmHkKLLiEb5QR9\"}\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[71375,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"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?favicon.3rlors1ui1gw9.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"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>
@@ -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/chunks/2evcd3-u5ivvc.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0tdcnq1-n6kof.js"/><script src="/_next/static/chunks/2mno6yfdoee0x.js" async=""></script><script src="/_next/static/chunks/12vwhiuvdy_i7.js" async=""></script><script src="/_next/static/chunks/0jgw-jf26m0ui.js" async=""></script><script src="/_next/static/chunks/turbopack-2hpygfb68u21h.js" async=""></script><script src="/_next/static/chunks/30a48dk5bjyhj.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&amp;family=Noto+Sans+JP:wght@400;500;700&amp;family=Noto+Serif+JP:wght@400;500;700&amp;display=swap" as="style"/><meta name="robots" content="noindex"/><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?favicon.3rlors1ui1gw9.ico" sizes="256x256" type="image/x-icon"/><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 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><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&amp;family=Noto+Sans+JP:wght@400;500;700&amp;family=Noto+Serif+JP:wght@400;500;700&amp;display=swap" rel="stylesheet"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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/0tdcnq1-n6kof.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[31790,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\"]\n3:I[65729,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\"]\n4:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"ViewportBoundary\"]\na:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"MetadataBoundary\"]\nc:I[58484,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2evcd3-u5ivvc.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/chunks/2evcd3-u5ivvc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/30a48dk5bjyhj.js\",\"async\":true,\"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\":[[[\"$\",\"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\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"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\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2evcd3-u5ivvc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"NgACehmLOdq_GfPnqeF6o\"}\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[71375,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"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?favicon.3rlors1ui1gw9.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"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>
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/chunks/3chy1yguuhwlh.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0tdcnq1-n6kof.js"/><script src="/_next/static/chunks/2mno6yfdoee0x.js" async=""></script><script src="/_next/static/chunks/12vwhiuvdy_i7.js" async=""></script><script src="/_next/static/chunks/0jgw-jf26m0ui.js" async=""></script><script src="/_next/static/chunks/turbopack-2hpygfb68u21h.js" async=""></script><script src="/_next/static/chunks/30a48dk5bjyhj.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&amp;family=Noto+Sans+JP:wght@400;500;700&amp;family=Noto+Serif+JP:wght@400;500;700&amp;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?favicon.3rlors1ui1gw9.ico" sizes="256x256" type="image/x-icon"/><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&amp;family=Noto+Sans+JP:wght@400;500;700&amp;family=Noto+Serif+JP:wght@400;500;700&amp;display=swap" rel="stylesheet"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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/0tdcnq1-n6kof.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[31790,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\"]\n3:I[65729,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\"]\n4:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"ViewportBoundary\"]\na:I[34860,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"MetadataBoundary\"]\nc:I[58484,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3chy1yguuhwlh.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/chunks/3chy1yguuhwlh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/30a48dk5bjyhj.js\",\"async\":true,\"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\":[[[\"$\",\"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\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"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\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3chy1yguuhwlh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"EjYAMpKxmHkKLLiEb5QR9\"}\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[71375,[\"/_next/static/chunks/30a48dk5bjyhj.js\"],\"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?favicon.3rlors1ui1gw9.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"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>
@@ -2,7 +2,7 @@
2
2
  2:I[61842,["/_next/static/chunks/30a48dk5bjyhj.js","/_next/static/chunks/2dsfgoa225hpl.js"],""]
3
3
  :HL["/logo-circle.svg","image"]
4
4
  b:X
5
- 0:{"buildId":"NgACehmLOdq_GfPnqeF6o","data":[{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"home-page bg-[#09090c] min-h-screen text-[var(--siduri-text-primary)] font-sans","children":[["$","header",null,{"className":"home-nav","children":["$","div",null,{"className":"home-container home-nav-inner flex items-center justify-between py-3 sm:py-4","children":[["$","$L2",null,{"href":"/","className":"brand-link flex items-center gap-2","aria-label":"Siduri Home","children":[["$","img",null,{"src":"/logo-circle.svg","alt":"Siduri-X Logo","className":"w-6 h-6 rounded-full shrink-0","width":24,"height":24}],["$","span",null,{"className":"font-bold tracking-widest text-sm","children":"SIDURI-X"}]]}],["$","nav",null,{"className":"nav-links hidden sm:flex gap-6 text-sm text-[var(--siduri-text-muted)]","aria-label":"Main Navigation","children":[["$","$L2",null,{"href":"/chat","className":"hover:text-[var(--siduri-text-primary)] transition-colors","children":"Chat"}],["$","$L2",null,{"href":"/operator","className":"hover:text-[var(--siduri-text-primary)] transition-colors","children":"Operator Console"}]]}],["$","div",null,{"className":"flex items-center gap-3","children":["$","$L2",null,{"href":"/chat","className":"nav-cta inline-flex items-center gap-2 text-xs font-mono border border-[var(--siduri-border-subtle)] px-3 sm:px-4 py-2 rounded-full hover:bg-[var(--siduri-surface)] transition-all","children":[["$","span",null,{"children":"Chat"}]," ",["$","span",null,{"aria-hidden":"true","children":"→"}]]}]}]]}]}],["$","main",null,{"children":[["$","section",null,{"className":"py-16 sm:py-24 md:py-32 border-b border-[var(--siduri-border-subtle)] relative overflow-hidden","children":["$","div",null,{"className":"home-container relative z-10 text-center flex flex-col items-center","children":[["$","div",null,{"className":"inline-flex items-center gap-2 px-3 py-1 rounded-full border border-[var(--siduri-border-ember)] bg-[var(--siduri-tint-low)] text-[var(--siduri-ember-light)] text-[10px] font-mono tracking-widest uppercase mb-6 sm:mb-8 text-center max-w-full","children":[["$","span",null,{"className":"w-1.5 h-1.5 rounded-full bg-[var(--siduri-online)] shadow-[0_0_8px_rgba(127,199,154,0.6)] shrink-0"}],["$","span",null,{"className":"truncate","children":"Standalone Companion · Version 1.0"}]]}],["$","h1",null,{"className":"text-3xl sm:text-5xl md:text-6xl font-normal font-serif text-[var(--siduri-text-primary)] tracking-tight leading-[1.2] sm:leading-[1.15] mb-6 max-w-4xl px-2","children":"A companion grown from memory, powered by modular cognition."}],["$","p",null,{"className":"text-sm sm:text-lg text-[var(--siduri-text-secondary)] font-sans leading-relaxed mb-8 sm:mb-10 max-w-2xl font-light px-2","children":"Siduri-X is an intelligent companion designed with authoritative memory, atomic behavioral gating, and a strict 10-organ architecture. She starts as a blank slate and forms her identity entirely through your interactions."}],["$","div",null,{"className":"flex flex-col sm:flex-row justify-center items-stretch sm:items-center gap-3 sm:gap-4 w-full max-w-md sm:max-w-none px-4","children":[["$","$L2",null,{"href":"/chat","className":"inline-flex justify-center items-center gap-3 px-6 py-3.5 rounded-xl bg-[var(--siduri-ember)] text-[#1b1619] font-sans font-semibold text-sm tracking-wide transition-all hover:brightness-110 shadow-[0_4px_20px_rgba(217,154,104,0.2)]","children":["Launch Companion",["$","span",null,{"className":"font-mono text-base","children":"→"}]]}],["$","$L2",null,{"href":"/operator","className":"inline-flex justify-center items-center gap-2.5 px-6 py-3.5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] text-[var(--siduri-text-primary)] font-sans font-medium text-sm transition-all hover:border-[var(--siduri-border-ember)] hover:bg-[var(--siduri-tint-low)]","children":["$L3","Operator Console"]}]]}]]}]}],"$L4","$L5","$L6"]}],"$L7"]}],["$L8"],"$L9"]}],"isPartial":"$@a","staleTime":"$b","varyParams":null},{"rsc":"$Lc","isPartial":"$@d","staleTime":"$b","varyParams":null},{"rsc":"$Le","isPartial":"$@f","staleTime":"$b","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@10","rootVaryParams":null,"needsRuntimeRequest":"$@11"}
5
+ 0:{"buildId":"EjYAMpKxmHkKLLiEb5QR9","data":[{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"home-page bg-[#09090c] min-h-screen text-[var(--siduri-text-primary)] font-sans","children":[["$","header",null,{"className":"home-nav","children":["$","div",null,{"className":"home-container home-nav-inner flex items-center justify-between py-3 sm:py-4","children":[["$","$L2",null,{"href":"/","className":"brand-link flex items-center gap-2","aria-label":"Siduri Home","children":[["$","img",null,{"src":"/logo-circle.svg","alt":"Siduri-X Logo","className":"w-6 h-6 rounded-full shrink-0","width":24,"height":24}],["$","span",null,{"className":"font-bold tracking-widest text-sm","children":"SIDURI-X"}]]}],["$","nav",null,{"className":"nav-links hidden sm:flex gap-6 text-sm text-[var(--siduri-text-muted)]","aria-label":"Main Navigation","children":[["$","$L2",null,{"href":"/chat","className":"hover:text-[var(--siduri-text-primary)] transition-colors","children":"Chat"}],["$","$L2",null,{"href":"/operator","className":"hover:text-[var(--siduri-text-primary)] transition-colors","children":"Operator Console"}]]}],["$","div",null,{"className":"flex items-center gap-3","children":["$","$L2",null,{"href":"/chat","className":"nav-cta inline-flex items-center gap-2 text-xs font-mono border border-[var(--siduri-border-subtle)] px-3 sm:px-4 py-2 rounded-full hover:bg-[var(--siduri-surface)] transition-all","children":[["$","span",null,{"children":"Chat"}]," ",["$","span",null,{"aria-hidden":"true","children":"→"}]]}]}]]}]}],["$","main",null,{"children":[["$","section",null,{"className":"py-16 sm:py-24 md:py-32 border-b border-[var(--siduri-border-subtle)] relative overflow-hidden","children":["$","div",null,{"className":"home-container relative z-10 text-center flex flex-col items-center","children":[["$","div",null,{"className":"inline-flex items-center gap-2 px-3 py-1 rounded-full border border-[var(--siduri-border-ember)] bg-[var(--siduri-tint-low)] text-[var(--siduri-ember-light)] text-[10px] font-mono tracking-widest uppercase mb-6 sm:mb-8 text-center max-w-full","children":[["$","span",null,{"className":"w-1.5 h-1.5 rounded-full bg-[var(--siduri-online)] shadow-[0_0_8px_rgba(127,199,154,0.6)] shrink-0"}],["$","span",null,{"className":"truncate","children":"Standalone Companion · Version 1.0"}]]}],["$","h1",null,{"className":"text-3xl sm:text-5xl md:text-6xl font-normal font-serif text-[var(--siduri-text-primary)] tracking-tight leading-[1.2] sm:leading-[1.15] mb-6 max-w-4xl px-2","children":"A companion grown from memory, powered by modular cognition."}],["$","p",null,{"className":"text-sm sm:text-lg text-[var(--siduri-text-secondary)] font-sans leading-relaxed mb-8 sm:mb-10 max-w-2xl font-light px-2","children":"Siduri-X is an intelligent companion designed with authoritative memory, atomic behavioral gating, and a strict 10-organ architecture. She starts as a blank slate and forms her identity entirely through your interactions."}],["$","div",null,{"className":"flex flex-col sm:flex-row justify-center items-stretch sm:items-center gap-3 sm:gap-4 w-full max-w-md sm:max-w-none px-4","children":[["$","$L2",null,{"href":"/chat","className":"inline-flex justify-center items-center gap-3 px-6 py-3.5 rounded-xl bg-[var(--siduri-ember)] text-[#1b1619] font-sans font-semibold text-sm tracking-wide transition-all hover:brightness-110 shadow-[0_4px_20px_rgba(217,154,104,0.2)]","children":["Launch Companion",["$","span",null,{"className":"font-mono text-base","children":"→"}]]}],["$","$L2",null,{"href":"/operator","className":"inline-flex justify-center items-center gap-2.5 px-6 py-3.5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] text-[var(--siduri-text-primary)] font-sans font-medium text-sm transition-all hover:border-[var(--siduri-border-ember)] hover:bg-[var(--siduri-tint-low)]","children":["$L3","Operator Console"]}]]}]]}]}],"$L4","$L5","$L6"]}],"$L7"]}],["$L8"],"$L9"]}],"isPartial":"$@a","staleTime":"$b","varyParams":null},{"rsc":"$Lc","isPartial":"$@d","staleTime":"$b","varyParams":null},{"rsc":"$Le","isPartial":"$@f","staleTime":"$b","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@10","rootVaryParams":null,"needsRuntimeRequest":"$@11"}
6
6
  16:I[34860,["/_next/static/chunks/30a48dk5bjyhj.js"],"OutletBoundary"]
7
7
  17:"$Sreact.suspense"
8
8
  19:I[34860,["/_next/static/chunks/30a48dk5bjyhj.js"],"ViewportBoundary"]
@@ -10,7 +10,7 @@ b:X
10
10
  1b:I[71375,["/_next/static/chunks/30a48dk5bjyhj.js"],"IconMark"]
11
11
  1c:I[31790,["/_next/static/chunks/30a48dk5bjyhj.js"],"default"]
12
12
  1d:I[65729,["/_next/static/chunks/30a48dk5bjyhj.js"],"default"]
13
- :HL["/_next/static/chunks/2evcd3-u5ivvc.css","style"]
13
+ :HL["/_next/static/chunks/3chy1yguuhwlh.css","style"]
14
14
  :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"]
15
15
  3:["$","span",null,{"children":"⌘"}]
16
16
  4:["$","section",null,{"className":"py-20 md:py-28 border-b border-[var(--siduri-border-subtle)] bg-[#0e0e12]","children":["$","div",null,{"className":"home-container","children":[["$","div",null,{"className":"mb-14 text-center max-w-3xl mx-auto","children":[["$","p",null,{"className":"text-[10px] font-mono uppercase tracking-widest text-[var(--siduri-ember)] mb-2","children":"Decoupled Philosophy"}],["$","h2",null,{"className":"text-2xl sm:text-3xl font-serif font-normal text-[var(--siduri-text-primary)] mb-4","children":"The 10-Organ Architecture"}],["$","p",null,{"className":"text-sm text-[var(--siduri-text-secondary)] leading-relaxed","children":"Siduri is not a chatbot. She is a cognition runtime composed of independent organs. Every decision originates from the Brain, while other organs perceive, remember, act, and embody."}]]}],["$","div",null,{"className":"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-3 sm:gap-4","children":[["$","div","Brain",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Brain"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"Cognition, planning, and authoritative decision making."}]]}],["$","div","Memory",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Memory"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"SQLite FTS5 authoritative storage of verified claims and episodic memory."}]]}],["$","div","Behavior",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Behavior"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"Atomic directive state machine and personality projection."}]]}],["$","div","Knowledge",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Knowledge"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"External factual context and verifiable E-compatible packs."}]]}],["$","div","Hands",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Hands"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"Tool execution and strict cryptographic action policy capabilities."}]]}],["$","div","Ear",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Ear"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"Audio transcription, perception, and sensory input ingestion."}]]}],"$L12","$L13","$L14","$L15"]}]]}]}]
@@ -20,7 +20,7 @@ b:X
20
20
  8:["$","script","script-0",{"src":"/_next/static/chunks/2dsfgoa225hpl.js","async":true}]
21
21
  9:["$","$L16",null,{"children":["$","$17",null,{"name":"Next.MetadataOutlet","children":"$@18"}]}]
22
22
  c:["$","$1","h",{"children":[null,["$","$L19",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":["$","$L1a",null,{"children":["$","$17",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?favicon.3rlors1ui1gw9.ico","sizes":"256x256","type":"image/x-icon"}],["$","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"}],["$","$L1b","6",{}]]}]}]}],null]}]
23
- e:["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2evcd3-u5ivvc.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/30a48dk5bjyhj.js","async":true}]],["$","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":["$","$L1c",null,{"parallelRouterKey":"children","template":["$","$L1d",null,{}],"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."}]}]]}]}]],[]]}]}]]}]]}]
23
+ e:["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3chy1yguuhwlh.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/30a48dk5bjyhj.js","async":true}]],["$","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":["$","$L1c",null,{"parallelRouterKey":"children","template":["$","$L1d",null,{}],"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."}]}]]}]}]],[]]}]}]]}]]}]
24
24
  12:["$","div","Vision",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Vision"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"Visual observation, cropping, and OCR interpretation."}]]}]
25
25
  13:["$","div","Voice",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Voice"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"Queued speech synthesis (Edge-TTS, Kokoro, Piper, VOICEVOX) and auditory expression."}]]}]
26
26
  14:["$","div","Body",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Body"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"Renderer-agnostic avatar expression (Live2D) and embodiment."}]]}]
@@ -3,10 +3,10 @@
3
3
  3:I[65729,["/_next/static/chunks/30a48dk5bjyhj.js"],"default"]
4
4
  4:I[61842,["/_next/static/chunks/30a48dk5bjyhj.js","/_next/static/chunks/2dsfgoa225hpl.js"],""]
5
5
  11:I[58484,["/_next/static/chunks/30a48dk5bjyhj.js"],"default",1]
6
- :HL["/_next/static/chunks/2evcd3-u5ivvc.css","style"]
6
+ :HL["/_next/static/chunks/3chy1yguuhwlh.css","style"]
7
7
  :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"]
8
8
  :HL["/logo-circle.svg","image"]
9
- 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2evcd3-u5ivvc.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/30a48dk5bjyhj.js","async":true,"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":[["$","div",null,{"className":"home-page bg-[#09090c] min-h-screen text-[var(--siduri-text-primary)] font-sans","children":[["$","header",null,{"className":"home-nav","children":["$","div",null,{"className":"home-container home-nav-inner flex items-center justify-between py-3 sm:py-4","children":[["$","$L4",null,{"href":"/","className":"brand-link flex items-center gap-2","aria-label":"Siduri Home","children":[["$","img",null,{"src":"/logo-circle.svg","alt":"Siduri-X Logo","className":"w-6 h-6 rounded-full shrink-0","width":24,"height":24}],["$","span",null,{"className":"font-bold tracking-widest text-sm","children":"SIDURI-X"}]]}],["$","nav",null,{"className":"nav-links hidden sm:flex gap-6 text-sm text-[var(--siduri-text-muted)]","aria-label":"Main Navigation","children":[["$","$L4",null,{"href":"/chat","className":"hover:text-[var(--siduri-text-primary)] transition-colors","children":"Chat"}],["$","$L4",null,{"href":"/operator","className":"hover:text-[var(--siduri-text-primary)] transition-colors","children":"Operator Console"}]]}],["$","div",null,{"className":"flex items-center gap-3","children":["$","$L4",null,{"href":"/chat","className":"nav-cta inline-flex items-center gap-2 text-xs font-mono border border-[var(--siduri-border-subtle)] px-3 sm:px-4 py-2 rounded-full hover:bg-[var(--siduri-surface)] transition-all","children":[["$","span",null,{"children":"Chat"}]," ",["$","span",null,{"aria-hidden":"true","children":"→"}]]}]}]]}]}],["$","main",null,{"children":[["$","section",null,{"className":"py-16 sm:py-24 md:py-32 border-b border-[var(--siduri-border-subtle)] relative overflow-hidden","children":["$","div",null,{"className":"home-container relative z-10 text-center flex flex-col items-center","children":[["$","div",null,{"className":"inline-flex items-center gap-2 px-3 py-1 rounded-full border border-[var(--siduri-border-ember)] bg-[var(--siduri-tint-low)] text-[var(--siduri-ember-light)] text-[10px] font-mono tracking-widest uppercase mb-6 sm:mb-8 text-center max-w-full","children":["$L5","$L6"]}],"$L7","$L8","$L9"]}]}],"$La","$Lb","$Lc"]}],"$Ld"]}],["$Le"],"$Lf"]}],{},null,false,null]},null,false,null],"$L10",false]],"m":"$undefined","G":["$11",["$L12"]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"NgACehmLOdq_GfPnqeF6o"}
9
+ 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3chy1yguuhwlh.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/30a48dk5bjyhj.js","async":true,"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":[["$","div",null,{"className":"home-page bg-[#09090c] min-h-screen text-[var(--siduri-text-primary)] font-sans","children":[["$","header",null,{"className":"home-nav","children":["$","div",null,{"className":"home-container home-nav-inner flex items-center justify-between py-3 sm:py-4","children":[["$","$L4",null,{"href":"/","className":"brand-link flex items-center gap-2","aria-label":"Siduri Home","children":[["$","img",null,{"src":"/logo-circle.svg","alt":"Siduri-X Logo","className":"w-6 h-6 rounded-full shrink-0","width":24,"height":24}],["$","span",null,{"className":"font-bold tracking-widest text-sm","children":"SIDURI-X"}]]}],["$","nav",null,{"className":"nav-links hidden sm:flex gap-6 text-sm text-[var(--siduri-text-muted)]","aria-label":"Main Navigation","children":[["$","$L4",null,{"href":"/chat","className":"hover:text-[var(--siduri-text-primary)] transition-colors","children":"Chat"}],["$","$L4",null,{"href":"/operator","className":"hover:text-[var(--siduri-text-primary)] transition-colors","children":"Operator Console"}]]}],["$","div",null,{"className":"flex items-center gap-3","children":["$","$L4",null,{"href":"/chat","className":"nav-cta inline-flex items-center gap-2 text-xs font-mono border border-[var(--siduri-border-subtle)] px-3 sm:px-4 py-2 rounded-full hover:bg-[var(--siduri-surface)] transition-all","children":[["$","span",null,{"children":"Chat"}]," ",["$","span",null,{"aria-hidden":"true","children":"→"}]]}]}]]}]}],["$","main",null,{"children":[["$","section",null,{"className":"py-16 sm:py-24 md:py-32 border-b border-[var(--siduri-border-subtle)] relative overflow-hidden","children":["$","div",null,{"className":"home-container relative z-10 text-center flex flex-col items-center","children":[["$","div",null,{"className":"inline-flex items-center gap-2 px-3 py-1 rounded-full border border-[var(--siduri-border-ember)] bg-[var(--siduri-tint-low)] text-[var(--siduri-ember-light)] text-[10px] font-mono tracking-widest uppercase mb-6 sm:mb-8 text-center max-w-full","children":["$L5","$L6"]}],"$L7","$L8","$L9"]}]}],"$La","$Lb","$Lc"]}],"$Ld"]}],["$Le"],"$Lf"]}],{},null,false,null]},null,false,null],"$L10",false]],"m":"$undefined","G":["$11",["$L12"]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"EjYAMpKxmHkKLLiEb5QR9"}
10
10
  17:I[34860,["/_next/static/chunks/30a48dk5bjyhj.js"],"OutletBoundary"]
11
11
  18:"$Sreact.suspense"
12
12
  1a:I[34860,["/_next/static/chunks/30a48dk5bjyhj.js"],"ViewportBoundary"]
@@ -23,7 +23,7 @@ d:["$","footer",null,{"className":"py-14 border-t border-[var(--siduri-border-su
23
23
  e:["$","script","script-0",{"src":"/_next/static/chunks/2dsfgoa225hpl.js","async":true,"nonce":"$undefined"}]
24
24
  f:["$","$L17",null,{"children":["$","$18",null,{"name":"Next.MetadataOutlet","children":"$@19"}]}]
25
25
  10:["$","$1","h",{"children":[null,["$","$L1a",null,{"children":"$L1b"}],["$","div",null,{"hidden":true,"children":["$","$L1c",null,{"children":["$","$18",null,{"name":"Next.Metadata","children":"$L1d"}]}]}],null]}]
26
- 12:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2evcd3-u5ivvc.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]
26
+ 12:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3chy1yguuhwlh.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]
27
27
  13:["$","div","Vision",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Vision"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"Visual observation, cropping, and OCR interpretation."}]]}]
28
28
  14:["$","div","Voice",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Voice"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"Queued speech synthesis (Edge-TTS, Kokoro, Piper, VOICEVOX) and auditory expression."}]]}]
29
29
  15:["$","div","Body",{"className":"p-4 sm:p-5 rounded-xl border border-[var(--siduri-border-subtle)] bg-[var(--siduri-surface)] transition-all hover:border-[var(--siduri-border-ember)]","children":[["$","h3",null,{"className":"text-sm font-bold font-mono text-[var(--siduri-ember-light)] mb-2","children":"Body"}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-secondary)] leading-relaxed","children":"Renderer-agnostic avatar expression (Live2D) and embodiment."}]]}]
@@ -1,4 +1,4 @@
1
- :HL["/_next/static/chunks/2evcd3-u5ivvc.css","style"]
1
+ :HL["/_next/static/chunks/3chy1yguuhwlh.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
3
  :HL["/logo-circle.svg","image"]
4
- 0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}},"staleTime":300,"buildId":"NgACehmLOdq_GfPnqeF6o"}
4
+ 0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}},"staleTime":300,"buildId":"EjYAMpKxmHkKLLiEb5QR9"}
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94108,t=>{"use strict";var e=t.i(28152);let r=e.default.env.NEXT_PUBLIC_API_URL??"";async function a(t,e){return fetch(`${r}${t}`,e)}async function i(t,e){let r=await a(t,e);if(!r.ok)throw Error(`${t} returned ${r.status}`);return r.json()}async function o(t,e){let r=await a(t,{method:"POST",headers:e?{"Content-Type":"application/json"}:void 0,body:e?"string"==typeof e?e:JSON.stringify(e):void 0});if(!r.ok)throw Error(await r.text().catch(()=>r.statusText));return r.json().catch(()=>({}))}async function s(t,e){let r=await a(t,{method:"POST",headers:e?{"Content-Type":"application/json"}:void 0,body:e?"string"==typeof e?e:JSON.stringify(e):void 0});if(!r.ok)throw Error(await r.text().catch(()=>r.statusText))}async function n(t,e,r,i){let o=await a(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:i});if(!o.ok)throw Error(await o.text().catch(()=>o.statusText)||`HTTP ${o.status}`);if(!o.body)throw Error("ReadableStream not supported in response");let s=o.body.getReader(),n=new TextDecoder,c="";try{for(;;){let{done:t,value:e}=await s.read();if(t)break;let a=(c+=n.decode(e,{stream:!0})).split("\n");c=a.pop()||"";let i="message";for(let t of a){let e=t.trim();if(e){if(e.startsWith("event:"))i=e.slice(6).trim();else if(e.startsWith("data:")){let t=e.slice(5).trim();try{let e=JSON.parse(t);switch(i){case"staged":r.onStaged?.(e);break;case"chunk":r.onChunk?.(e);break;case"avatar":r.onAvatar?.(e);break;case"done":r.onDone?.(e);break;case"interrupted":r.onInterrupted?.(e);break;case"error":r.onError?.(Error(e.error||"Stream error"))}}catch{}}}}}}catch(t){if(i?.aborted)r.onInterrupted?.({reason:i.reason});else throw r.onError?.(t),t}finally{s.releaseLock()}}async function c(t="default",e="user_barge_in"){await o("/chat/interrupt",{companionId:t,reason:e}).catch(()=>{})}e.default.env.NEXT_PUBLIC_WS_URL||(window.location.protocol,window.location.host),t.s(["fetchApi",0,a,"getJson",0,i,"interruptChat",0,c,"postAction",0,s,"postJson",0,o,"postStream",0,n])},51523,t=>{"use strict";let e=new Set(["siduri","self","companion"]),r=new Set(["user","actor","owner","primary_user"]);function a(t){return t.replace(/[._]+/g," ").replace(/\s+/g," ").trim()}function i(t){let e=t.trim();return e&&!/[.!?]$/.test(e)?`${e}.`:e}function o(t){let o=t.subject?.trim()??"",s=o.toLowerCase(),n=t.predicate?.trim()??"",c=n.toLowerCase(),u=t.value?.trim()??"";if(!o||!n||!u)return i(t.content??u);if(e.has(s)||s.startsWith("companion:")||s.startsWith("companion.")||s.startsWith("self."))return"name"===c?i(`Companion name is ${u}`):i(`Companion ${a(n)} is ${u}`);if(r.has(s)||s.startsWith("actor:")||s.startsWith("user:"))return"name"===c?i(`User name is ${u}`):"preferred_address"===c?i(`User preferred address is ${u}`):"relationship_to_siduri"===c||"relationship"===c?i(`User relationship configured as ${u}`):i(`User ${a(n)} is ${u}`);if(s.startsWith("primary_user.")||s.startsWith("user.")){let t=s.startsWith("primary_user.")?"primary_user.":"user.",e=a(o.slice(t.length)),r="uid"===c||"id"===c?"ID":a(n);return i(`User ${e} ${r} is ${u}`)}let l=a(o);return i(`${/s$/i.test(l)?`${l}'`:`${l}'s`} ${a(n)} is ${u}`)}t.s(["formatClaimReceipt",0,o,"formatRuntimeEffect",0,function(t){let s=t.subject?.trim().toLowerCase()??"",n=t.predicate?.trim().toLowerCase()??"",c=t.value?.trim()??"",u=t.behavior?.instruction?.trim()??"";return"behavioral"===t.memory_class&&u?i(u):e.has(s)&&"name"===n?i(`Set companion identity/name to ${c}`):e.has(s)?i(`Set companion ${a(n)} to ${c}`):r.has(s)&&("relationship_to_siduri"===n||"relationship"===n)?i(`Set user relationship to ${c}`):r.has(s)&&"name"===n?i(`Set user name to ${c}`):o(t)}])}]);
@@ -0,0 +1,30 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,12650,e=>{"use strict";var t=e.i(30696),a=e.i(64249),r=e.i(51523);function i({onSelectPrompt:e,className:a=""}){return(0,t.jsxs)("div",{className:`chat-empty-state ${a}`,"data-testid":"preferences-starter",children:[(0,t.jsx)("div",{className:"siduri-orb",children:"✦"}),(0,t.jsx)("h2",{children:"Teach Siduri your preferences."}),(0,t.jsx)("p",{children:"Choose a starting point, replace the blanks, and send it. Nothing becomes memory until you approve the receipt."}),(0,t.jsxs)("div",{className:"starter-prompts onboarding-prompts",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>e("Call me [preferred name]."),children:[(0,t.jsx)("span",{children:"Identity"}),"Preferred name or title"]}),(0,t.jsxs)("button",{type:"button",onClick:()=>e("My timezone is [timezone] and my preferred language is [language]."),children:[(0,t.jsx)("span",{children:"Localization"}),"Timezone and language"]}),(0,t.jsxs)("button",{type:"button",onClick:()=>e("My preferred response style is [concise / detailed / technical]."),children:[(0,t.jsx)("span",{children:"Response style"}),"Tone and verbosity"]}),(0,t.jsxs)("button",{type:"button",onClick:()=>e("I am interested in [topics or domains of interest]."),children:[(0,t.jsx)("span",{children:"Knowledge"}),"Topics of interest"]})]}),(0,t.jsx)("p",{className:"onboarding-privacy",children:"Teach Siduri preferences explicitly. Information is stored in private memory only after you approve the receipt."})]})}function s(e){return"number"!=typeof e||isNaN(e)||e<0?0:e>1?1:e}class n{expression="neutral";action="idle";state="idle";speechId;lipSyncValue=0;reducedMotion=!1;actionStartTime=0;stateStartTime=0;lastUpdateTime=Date.now();constructor(e){e&&this.updateConfig(e)}updateConfig(e){e.expression&&e.expression!==this.expression&&(this.expression=e.expression),e.action&&e.action!==this.action&&(this.action=e.action,this.actionStartTime=Date.now()),e.state&&e.state!==this.state&&(this.state=e.state,this.stateStartTime=Date.now()),void 0!==e.speechId&&(this.speechId=e.speechId),void 0!==e.lipSyncValue&&(this.lipSyncValue=s(e.lipSyncValue)),void 0!==e.reducedMotion&&(this.reducedMotion=e.reducedMotion)}setReducedMotion(e){this.reducedMotion=e}setExpression(e){this.expression=e}setAction(e){this.action=e,this.actionStartTime=Date.now()}setState(e){this.state=e,this.stateStartTime=Date.now()}setLipSync(e){this.lipSyncValue=s(e)}calculateFrameParameters(e=Date.now()){this.lastUpdateTime,this.lastUpdateTime=e;let t=this.reducedMotion?.2:(Math.sin(e/1800)+1)*.5,a=this.reducedMotion?0:2.5*Math.sin(e/2400),r=this.reducedMotion?0:1.8*Math.cos(e/3200),i=this.reducedMotion?0:1.2*Math.sin(e/4e3),n=function(e){if(!e)return{angleX:0,angleY:0,angleZ:0,bodyAngleX:0,eyeBallX:0,eyeBallY:0,speed:1};switch(e.toLowerCase().trim()){case"nod":return{angleX:0,angleY:-12,angleZ:2,bodyAngleX:0,eyeBallX:0,eyeBallY:-.2,speed:2.5};case"wave":return{angleX:8,angleY:4,angleZ:-5,bodyAngleX:5,eyeBallX:.2,eyeBallY:.1,speed:1.8};case"listen":return{angleX:-5,angleY:2,angleZ:4,bodyAngleX:-2,eyeBallX:.1,eyeBallY:.1,speed:1};case"talk":return{angleX:2,angleY:-2,angleZ:0,bodyAngleX:0,eyeBallX:0,eyeBallY:0,speed:1.5};default:return{angleX:0,angleY:0,angleZ:0,bodyAngleX:0,eyeBallX:0,eyeBallY:0,speed:1}}}(this.action),o=(e-this.actionStartTime)/1e3,l=0,c=0,d=0,u=0;this.reducedMotion?"nod"===this.action?c=.5*n.angleY:"wave"===this.action?(l=.5*n.angleX,u=.5*n.bodyAngleX):"listen"===this.action&&(d=.5*n.angleZ,l=.5*n.angleX):"nod"===this.action?c=Math.sin(o*Math.PI*3)*n.angleY:"wave"===this.action?(d=Math.sin(o*Math.PI*2.4)*n.angleZ,l=n.angleX,u=n.bodyAngleX):"listen"===this.action?(d=n.angleZ,l=n.angleX):"talk"===this.action&&(c=2*Math.sin(4*o));let m=0;if("speaking"===this.state){let t=function(e,t){if("number"==typeof t&&!isNaN(t)&&t>0)return s(t);let a=e/1e3;return s(Math.max(0,.45*Math.sin(14*a)+.25*Math.sin(22*a)+.2*Math.sin(8*a)+.1))}(e,this.lipSyncValue);m=this.reducedMotion?.6*t:t}let h=e%4e3/4e3,p=1;return h>.95&&(p=Math.abs(Math.sin((h-.95)/.05*Math.PI-Math.PI/2))),{mouthOpenY:m,angleX:a+l,angleY:r+c,angleZ:i+d,bodyAngleX:u,breath:t,eyeOpenL:p,eyeOpenR:p}}reset(){this.expression="neutral",this.action="idle",this.state="idle",this.lipSyncValue=0,this.speechId=void 0}}async function o(e="/live2d/live2dcubismcore.min.js"){return window.Live2DCubismCore?window.Live2DCubismCore:new Promise((t,a)=>{let r=document.querySelector(`script[src="${e}"]`);if(r)return window.Live2DCubismCore?t(window.Live2DCubismCore):(r.addEventListener("load",()=>t(window.Live2DCubismCore)),void r.addEventListener("error",t=>a(Error(`Failed to load Cubism Core from ${e}: ${t}`))));let i=document.createElement("script");i.src=e,i.async=!0,i.onload=()=>{window.Live2DCubismCore?t(window.Live2DCubismCore):a(Error("Live2DCubismCore global not found after script load"))},i.onerror=()=>{let e="https://cubism.live2d.com/sdk-web/cubismcore/live2dcubismcore.min.js";console.warn(`[Live2D] Failed to load local Cubism Core, attempting fallback: ${e}`);let r=document.createElement("script");r.src=e,r.async=!0,r.onload=()=>{window.Live2DCubismCore?t(window.Live2DCubismCore):a(Error("Live2DCubismCore global not found after fallback load"))},r.onerror=e=>a(Error(`Failed to load Cubism Core from both local and remote sources: ${e}`)),document.head.appendChild(r)},document.head.appendChild(i)})}async function l(e){let t=e.lastIndexOf("/"),a=-1!==t?e.slice(0,t+1):"",r=await fetch(e);if(!r.ok)throw Error(`Failed to fetch model manifest from ${e} (${r.status})`);let i=await r.json();if(!i.FileReferences||!i.FileReferences.Moc)throw Error(`Invalid model3.json: missing Moc file reference in ${e}`);let s=a+i.FileReferences.Moc,n=await fetch(s);if(!n.ok)throw Error(`Failed to fetch .moc3 file from ${s} (${n.status})`);let o=await n.arrayBuffer(),l=(i.FileReferences.Textures||[]).map(e=>a+e),c=await Promise.all(l.map(e=>new Promise((t,a)=>{let r=new Image;r.crossOrigin="anonymous",r.onload=()=>t(r),r.onerror=t=>a(Error(`Failed to load texture from ${e}`)),r.src=e}))),d=new Map;return i.FileReferences.Expressions&&i.FileReferences.Expressions.length>0&&await Promise.all(i.FileReferences.Expressions.map(async e=>{try{let t=a+e.File,r=await fetch(t);if(r.ok){let t=await r.json();d.set(e.File,t),e.Name&&d.set(e.Name,t)}}catch{}})),{model3:i,mocBuffer:o,textures:c,expressions:d,basePath:a}}let c=`
2
+ attribute vec2 a_position;
3
+ attribute vec2 a_texCoord;
4
+ uniform mat4 u_matrix;
5
+ varying vec2 v_texCoord;
6
+ void main() {
7
+ gl_Position = u_matrix * vec4(a_position.x, a_position.y, 0.0, 1.0);
8
+ v_texCoord = vec2(a_texCoord.x, 1.0 - a_texCoord.y);
9
+ }
10
+ `,d=`
11
+ precision mediump float;
12
+ uniform sampler2D u_texture;
13
+ uniform float u_opacity;
14
+ varying vec2 v_texCoord;
15
+ void main() {
16
+ vec4 color = texture2D(u_texture, v_texCoord);
17
+ gl_FragColor = color * u_opacity;
18
+ }
19
+ `,u=`
20
+ precision mediump float;
21
+ uniform sampler2D u_texture;
22
+ varying vec2 v_texCoord;
23
+ void main() {
24
+ vec4 color = texture2D(u_texture, v_texCoord);
25
+ if (color.a < 0.1) {
26
+ discard;
27
+ }
28
+ gl_FragColor = vec4(1.0);
29
+ }
30
+ `;function m(e,t,a){let r=e.createShader(t);if(!r)throw Error("Failed to create shader");if(e.shaderSource(r,a),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r);throw e.deleteShader(r),Error(`Shader compilation error: ${t}`)}return r}class h{canvas;gl=null;program=null;maskProgram=null;vertexBuffer=null;uvBuffer=null;indexBuffer=null;aPositionLocation=-1;aTexCoordLocation=-1;uMatrixLocation=null;uTextureLocation=null;uOpacityLocation=null;maskAPositionLocation=-1;maskATexCoordLocation=-1;maskUMatrixLocation=null;maskUTextureLocation=null;textures=[];moc=null;model=null;core=null;paramIndices=new Map;isDisposed=!1;constructor(e){this.canvas=e}modelBounds={minX:-.39,maxX:.4,minY:-.98,maxY:.18,width:.79,height:1.16,centerX:.006,centerY:-.4};initialize(e,t){this.core=e;let a={alpha:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!1,antialias:!0,stencil:!0},r=this.canvas.getContext("webgl",a)||this.canvas.getContext("experimental-webgl",a)||this.canvas.getContext("webgl2",a);if(!r)throw Error("WebGL is not supported in this browser environment");this.gl=r;let i=m(r,r.VERTEX_SHADER,c),s=m(r,r.FRAGMENT_SHADER,d),n=r.createProgram();if(!n)throw Error("Failed to create WebGL program");if(r.attachShader(n,i),r.attachShader(n,s),r.linkProgram(n),!r.getProgramParameter(n,r.LINK_STATUS))throw Error(`Program link error: ${r.getProgramInfoLog(n)}`);this.program=n,this.aPositionLocation=r.getAttribLocation(n,"a_position"),this.aTexCoordLocation=r.getAttribLocation(n,"a_texCoord"),this.uMatrixLocation=r.getUniformLocation(n,"u_matrix"),this.uTextureLocation=r.getUniformLocation(n,"u_texture"),this.uOpacityLocation=r.getUniformLocation(n,"u_opacity");let o=m(r,r.FRAGMENT_SHADER,u),l=r.createProgram();if(!l)throw Error("Failed to create Mask WebGL program");if(r.attachShader(l,i),r.attachShader(l,o),r.linkProgram(l),!r.getProgramParameter(l,r.LINK_STATUS))throw Error(`Mask Program link error: ${r.getProgramInfoLog(l)}`);if(this.maskProgram=l,this.maskAPositionLocation=r.getAttribLocation(l,"a_position"),this.maskATexCoordLocation=r.getAttribLocation(l,"a_texCoord"),this.maskUMatrixLocation=r.getUniformLocation(l,"u_matrix"),this.maskUTextureLocation=r.getUniformLocation(l,"u_texture"),this.vertexBuffer=r.createBuffer(),this.uvBuffer=r.createBuffer(),this.indexBuffer=r.createBuffer(),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),this.textures=t.textures.map(e=>{let t=r.createTexture();if(!t)throw Error("Failed to create WebGL texture");return r.bindTexture(r.TEXTURE_2D,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR_MIPMAP_NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),r.generateMipmap(r.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 h=this.model.parameters.ids;for(let e=0;e<h.length;e++)this.paramIndices.set(h[e],e);this.initializeNeutralMouth(),this.model.update(),this.calculateModelBounds()}initializeNeutralMouth(){this.model&&(this.setParamDirect("ParamMouthOpenY",0),this.setParamDirect("ParamMouthForm",0))}setParamDirect(e,t){let a=this.paramIndices.get(e);if(void 0!==a&&this.model){let e=this.model.parameters.minimumValues[a],r=this.model.parameters.maximumValues[a];this.model.parameters.values[a]=Math.max(e,Math.min(r,t))}}calculateModelBounds(){if(!this.model)return;let e=this.model.drawables,t=e.count,a=1/0,r=-1/0,i=1/0,s=-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<a&&(a=n),n>r&&(r=n),o<i&&(i=o),o>s&&(s=o)}}a!==1/0&&r!==-1/0&&i!==1/0&&s!==-1/0&&(this.modelBounds={minX:a,maxX:r,minY:i,maxY:s,width:r-a,height:s-i,centerX:(a+r)/2,centerY:(i+s)/2})}getModelBounds(){return{...this.modelBounds}}setParam(e,t,a=1){let r=this.paramIndices.get(e);if(void 0!==r&&this.model){let e=this.model.parameters.values[r],i=Math.max(this.model.parameters.minimumValues[r],Math.min(this.model.parameters.maximumValues[r],t));this.model.parameters.values[r]=e+(i-e)*a}}render(e,t=Date.now()){let a;if(this.isDisposed||!this.gl||!this.model||!this.program)return;let r=this.gl,i=this.canvas.width,s=this.canvas.height;if(0===i||0===s)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(),r.viewport(0,0,i,s),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT|r.STENCIL_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA),r.useProgram(this.program);let l=i/s,c=this.modelBounds.width,d=this.modelBounds.height,u=this.modelBounds.centerX,m=this.modelBounds.centerY,h=(a=l>=c/d?1.84/d:1.84/c*l)/l,p=new Float32Array([h,0,0,0,0,a,0,0,0,0,1,0,-u*h,-m*a,0,1]);r.uniformMatrix4fv(this.uMatrixLocation,!1,p),r.uniform1i(this.uTextureLocation,0);let x=this.model.drawables,f=x.count,g=x.renderOrders,b=[];for(let e=0;e<f;e++)b.push(e);b.sort((e,t)=>g[e]-g[t]),r.enableVertexAttribArray(this.aPositionLocation),r.enableVertexAttribArray(this.aTexCoordLocation);let v=(e,t)=>{let a=void 0!==t?t:x.opacities[e];if(a<=.001)return;let i=x.textureIndices[e],s=this.textures[i];if(!s)return;r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,s),r.uniform1f(this.uOpacityLocation,a);let n=x.vertexPositions[e];r.bindBuffer(r.ARRAY_BUFFER,this.vertexBuffer),r.bufferData(r.ARRAY_BUFFER,n,r.DYNAMIC_DRAW),r.vertexAttribPointer(this.aPositionLocation,2,r.FLOAT,!1,0,0);let o=x.vertexUvs[e];r.bindBuffer(r.ARRAY_BUFFER,this.uvBuffer),r.bufferData(r.ARRAY_BUFFER,o,r.DYNAMIC_DRAW),r.vertexAttribPointer(this.aTexCoordLocation,2,r.FLOAT,!1,0,0);let l=x.indices[e];r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,this.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,l,r.DYNAMIC_DRAW),r.drawElements(r.TRIANGLES,l.length,r.UNSIGNED_SHORT,0)},y=e=>{if(!this.maskProgram)return;r.useProgram(this.maskProgram),r.uniformMatrix4fv(this.maskUMatrixLocation,!1,p),r.uniform1i(this.maskUTextureLocation,0),r.enableVertexAttribArray(this.maskAPositionLocation),r.enableVertexAttribArray(this.maskATexCoordLocation);let t=x.textureIndices[e],a=this.textures[t];if(!a)return;r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,a);let i=x.vertexPositions[e];r.bindBuffer(r.ARRAY_BUFFER,this.vertexBuffer),r.bufferData(r.ARRAY_BUFFER,i,r.DYNAMIC_DRAW),r.vertexAttribPointer(this.maskAPositionLocation,2,r.FLOAT,!1,0,0);let s=x.vertexUvs[e];r.bindBuffer(r.ARRAY_BUFFER,this.uvBuffer),r.bufferData(r.ARRAY_BUFFER,s,r.DYNAMIC_DRAW),r.vertexAttribPointer(this.maskATexCoordLocation,2,r.FLOAT,!1,0,0);let n=x.indices[e];r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,this.indexBuffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,n,r.DYNAMIC_DRAW),r.drawElements(r.TRIANGLES,n.length,r.UNSIGNED_SHORT,0),r.useProgram(this.program),r.enableVertexAttribArray(this.aPositionLocation),r.enableVertexAttribArray(this.aTexCoordLocation)},w=-1;for(let e of b)if(!(x.opacities[e]<=.001))if(x.maskCounts[e]>0){let t=x.masks[e][0];t!==w&&(w=t,r.enable(r.STENCIL_TEST),r.stencilMask(255),r.clear(r.STENCIL_BUFFER_BIT),r.stencilFunc(r.ALWAYS,1,255),r.stencilOp(r.KEEP,r.KEEP,r.REPLACE),r.colorMask(!1,!1,!1,!1),y(t),r.colorMask(!0,!0,!0,!0)),r.stencilFunc(r.EQUAL,1,255),r.stencilOp(r.KEEP,r.KEEP,r.KEEP),v(e)}else -1!==w&&(r.disable(r.STENCIL_TEST),w=-1),v(e);-1!==w&&r.disable(r.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 p({modelUrl:e,expression:r="neutral",action:i="idle",state:s="idle",speechId:c,lipSyncValue:d,durationMs:u,className:m="",onStatusChange:x}){let f=(0,a.useRef)(null),g=(0,a.useRef)(null),b=(0,a.useRef)(new n({expression:r,action:i,state:s,speechId:c,lipSyncValue:d,durationMs:u})),v=(0,a.useRef)(null),y=(0,a.useRef)(null),[w,j]=(0,a.useState)("loading"),[E,P]=(0,a.useState)(null),[A,N]=(0,a.useState)(0);return(0,a.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,a.useEffect)(()=>{b.current.updateConfig({expression:r,action:i,state:s,speechId:c,lipSyncValue:d,durationMs:u})},[r,i,s,c,d,u]),(0,a.useEffect)(()=>{let t=!1,a=null;async function r(){if(g.current&&f.current){if(!e){j("error"),P("No Live2D model configured. Place model in assets/body/<name>/"),x?.("error","No Live2D model URL specified");return}j("loading"),x?.("loading"),P(null);try{let r=await o();if(t)return;let i=await l(e);if(t)return;let s=g.current;if(!s)return;let n=new h(s);n.initialize(r,i),v.current=n;let c=()=>{if(!f.current||!g.current)return;let e=f.current.getBoundingClientRect();if(e.width<=0||e.height<=0)return;let t=Math.min(window.devicePixelRatio||1,2),a=Math.max(1,Math.floor(e.width*t)),r=Math.max(1,Math.floor(e.height*t));(g.current.width!==a||g.current.height!==r)&&(g.current.width=a,g.current.height=r)};c(),(a=new ResizeObserver(c)).observe(f.current);let d=()=>{t||(v.current&&v.current.render(b.current,performance.now()),y.current=requestAnimationFrame(d))};y.current=requestAnimationFrame(d),j("ready"),x?.("ready")}catch(a){if(t)return;let e=a?.message||"Failed to initialize Live2D avatar";console.warn("[AvatarCanvas] Initialization error:",a),j("error"),P("Avatar model unavailable or failed to load."),x?.("error",e)}}}r();let i=g.current,s=e=>{e.preventDefault(),console.warn("[AvatarCanvas] WebGL context lost"),y.current&&cancelAnimationFrame(y.current),j("error"),P("WebGL context lost.")},n=()=>{console.log("[AvatarCanvas] WebGL context restored, re-initializing..."),r()};return i&&(i.addEventListener("webglcontextlost",s,!1),i.addEventListener("webglcontextrestored",n,!1)),()=>{t=!0,y.current&&(cancelAnimationFrame(y.current),y.current=null),a&&a.disconnect(),i&&(i.removeEventListener("webglcontextlost",s),i.removeEventListener("webglcontextrestored",n)),v.current&&(v.current.dispose(),v.current=null)}},[e,A,x]),(0,t.jsxs)("div",{ref:f,"data-testid":"avatar-canvas-container",className:`relative w-full h-full min-h-0 flex items-center justify-center overflow-hidden bg-transparent ${m}`,"aria-label":"Live2D Companion Presence",children:[(0,t.jsx)("canvas",{ref:g,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"===w?"opacity-100":"opacity-0"}`}),"loading"===w&&(0,t.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,t.jsx)("div",{className:"siduri-glyph w-10 h-10 text-base animate-pulse motion-reduce:animate-none",children:"✦"}),(0,t.jsx)("span",{className:"text-[11px] font-mono tracking-widest uppercase text-[var(--siduri-ember-light)]",children:"Initializing Presence..."})]}),"error"===w&&(0,t.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,t.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,t.jsx)("p",{className:"text-xs font-sans text-[var(--siduri-text-secondary)] mb-1",children:E||"Avatar unavailable in this browser."}),(0,t.jsx)("span",{className:"text-[10px] font-mono text-[var(--siduri-text-dim)] mb-3",children:"Conversational text mode remains active"}),(0,t.jsx)("button",{type:"button",onClick:()=>N(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 x=e.i(94108);let f="siduri.chat.conversations.v1";function g(){return"u">typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}-${Math.random()}`}function b(e){return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"}).format(e)}e.s(["default",0,function(){let[e,s]=(0,a.useState)([]),[n,o]=(0,a.useState)(null),[l,c]=(0,a.useState)(""),[d,u]=(0,a.useState)("connecting"),[m,h]=(0,a.useState)(!1),[v,y]=(0,a.useState)(!1),[w,j]=(0,a.useState)(!1),[E,P]=(0,a.useState)(!1),[A,N]=(0,a.useState)(!1),[_,L]=(0,a.useState)(null),[C,T]=(0,a.useState)(void 0),[R,S]=(0,a.useState)("auto"),[M,D]=(0,a.useState)("hybrid"),[k,B]=(0,a.useState)("off"),I=(0,a.useRef)(null),F=(0,a.useRef)(null),U=(0,a.useRef)(null),X=(0,a.useMemo)(()=>e.find(e=>e.id===n)??null,[n,e]);function Y(){return{id:g(),title:"New conversation",messages:[],updatedAt:Date.now()}}function $(e,t){s(a=>a.map(a=>a.id===e?t(a):a))}async function O(e){e.preventDefault();let t=l.trim();if(!t)return;if(/\[[^\]]+\]/.test(t))return void u("replace the blanks first");m&&U.current&&(U.current.abort("user_barge_in"),U.current=null,(0,x.interruptChat)("default","user_barge_in"));let a=X;a||(a=Y(),s(e=>[a,...e]),o(a.id));let r={id:g(),role:"user",content:t,createdAt:Date.now()},i=g(),n={id:i,role:"assistant",content:"",createdAt:Date.now()},d=[...a.messages,r,n],p=0===a.messages.length?t.slice(0,42):a.title;$(a.id,e=>({...e,title:p,messages:d,updatedAt:Date.now()})),c(""),h(!0),u("streaming");let f=new AbortController;U.current=f;try{await (0,x.postStream)("/chat/stream",{id:"default",message:t,medium:"web",mode:"auto"!==R?R:void 0,subtitleLanguage:"off"!==k?k:void 0,history:a.messages.slice(-20).map(e=>({role:e.role,content:e.content}))},{onStaged:e=>{e?.mode&&("casual"===e.mode||"teach"===e.mode||"hybrid"===e.mode)&&D(e.mode)},onAvatar:e=>{let t=e.speech_id;F.current&&clearTimeout(F.current),L({eventId:e.event_id,expression:e.expression||"neutral",action:e.action||"talk",state:"speaking",speechId:t,durationMs:e.durationMs});let a=e.durationMs||4500;F.current=setTimeout(()=>{L(e=>e?{...e,state:"idle",action:"idle"}:null)},a)},onChunk:e=>{e.deltaText&&$(a.id,t=>({...t,messages:t.messages.map(t=>t.id===i?{...t,content:t.content+e.deltaText}:t)})),(e.expression||e.action)&&L(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)&&D(e.metadata.mode);let t=e.response||{},r=e.metadata?.memory_proposals,s=e.metadata?.behavioral_proposals;$(a.id,e=>({...e,messages:e.messages.map(e=>e.id===i?{...e,content:e.content||t.subtitle_en||t.subtitle_ja||"",subtitle:t.subtitle,subtitleLanguage:t.subtitle_language||("off"!==k?k:void 0),subtitles:t.subtitles,spokenJa:t.spoken_ja,evidenceIds:t.evidence_ids,memoryProposals:r,behavioralProposals:s}:e),updatedAt:Date.now()})),u("online")},onInterrupted:()=>{$(a.id,e=>({...e,messages:e.messages.map(e=>e.id===i?{...e,content:e.content?`${e.content} [interrupted]`:"[interrupted]"}:e),updatedAt:Date.now()})),u("online")},onError:e=>{$(a.id,t=>({...t,messages:t.messages.map(t=>t.id===i?{...t,content:`I couldn’t reach the orchestrator. ${String(e)}`}:t),updatedAt:Date.now()})),u("offline")}},f.signal)}catch(e){f.signal.aborted||($(a.id,t=>({...t,messages:t.messages.map(t=>t.id===i?{...t,content:`I couldn’t reach the orchestrator. ${String(e)}`}:t),updatedAt:Date.now()})),u("offline"))}finally{U.current=null,h(!1)}}(0,a.useEffect)(()=>()=>{F.current&&clearTimeout(F.current),U.current&&U.current.abort("unmounted")},[]),(0,a.useEffect)(()=>{let e=function(){try{let e=JSON.parse(window.localStorage.getItem(f)??"[]");return Array.isArray(e)?e:[]}catch{return[]}}();s(e),o(e[0]?.id??null);try{let e=localStorage.getItem("siduri.chat.subtitleLanguage");e&&B(e)}catch{}y(!0),(0,x.fetchApi)("/health").then(async e=>{if(e.ok){let t=await e.json().catch(()=>({}));u("online"),t.organs?.body?.modelUrl?T(t.organs.body.modelUrl):(0,x.fetchApi)("/api/models/body").then(async e=>{if(e.ok){let t=(await e.json().catch(()=>({}))).models||[],a=t.find(e=>"default"!==e);a?T(`/assets/body/${a}/model.model3.json`):t.length>0&&"default"!==t[0]&&T(`/assets/body/${t[0]}/model.model3.json`)}}).catch(()=>{})}else u("online")}).catch(()=>u("offline"))},[]),(0,a.useEffect)(()=>{v&&window.localStorage.setItem(f,JSON.stringify(e))},[e,v]),(0,a.useEffect)(()=>{I.current?.scrollTo({top:I.current.scrollHeight,behavior:"smooth"})},[n,X?.messages.length,m]);let z=X?.messages??[],G=z.at(-1)?.evidenceIds?.length??0;async function V(e,t,a){if(X)try{await (0,x.postJson)(`/memory/proposals/${a}`,{id:t,companionId:"default"});let r="approve"===a?"approved":"rejected";$(X.id,a=>({...a,messages:a.messages.map(a=>a.id===e&&a.memoryProposals?{...a,memoryProposals:a.memoryProposals.map(e=>e.proposal_id===t?{...e,status:r}:e)}:a)}))}catch(e){console.error(e)}}async function W(e,t,a){if(X)try{await (0,x.postJson)(`/memory/behavioral/${a}`,{id:t,companionId:"default"});let r="approve"===a?"active":"rejected";$(X.id,a=>({...a,messages:a.messages.map(a=>a.id===e&&a.behavioralProposals?{...a,behavioralProposals:a.behavioralProposals.map(e=>e.directive_id===t?{...e,status:r}:e)}:a)}))}catch(e){console.error(e)}}return(0,t.jsxs)("div",{className:`chat-app ${w?"sidebar-collapsed":""} ${E?"mobile-drawer-open":""}`,children:[E&&(0,t.jsx)("div",{className:"chat-backdrop",onClick:()=>P(!1),"aria-hidden":"true"}),(0,t.jsxs)("aside",{className:"chat-sidebar","aria-label":"Conversation history",children:[(0,t.jsxs)("div",{className:"chat-sidebar-top",children:[(0,t.jsxs)("a",{className:"chat-brand",href:"/chat",children:[(0,t.jsx)("span",{className:"chat-brand-mark",children:"S"}),(0,t.jsx)("span",{children:"SIDURI"})]}),(0,t.jsx)("button",{className:"sidebar-collapse",type:"button",onClick:()=>j(e=>!e),"aria-label":w?"Expand sidebar":"Collapse sidebar",children:w?"→":"←"}),(0,t.jsx)("button",{className:"mobile-drawer-close",type:"button",onClick:()=>P(!1),"aria-label":"Close conversation drawer",children:"✕"})]}),(0,t.jsxs)("button",{className:"new-chat-button",type:"button",onClick:()=>{let e;e=Y(),s(t=>[e,...t]),o(e.id),c(""),u("online"),P(!1)},children:[(0,t.jsx)("span",{children:"+"})," New conversation"]}),(0,t.jsxs)("div",{className:"history-heading",children:[(0,t.jsx)("span",{children:"Recent conversations"}),(0,t.jsx)("span",{children:e.length})]}),(0,t.jsx)("div",{className:"conversation-list",children:v?0===e.length?(0,t.jsx)("p",{className:"history-empty",children:"Your private conversations will appear here."}):e.slice().sort((e,t)=>t.updatedAt-e.updatedAt).map(a=>(0,t.jsxs)("div",{className:`conversation-row ${a.id===n?"selected":""}`,children:[(0,t.jsxs)("button",{type:"button",className:"conversation-select",onClick:()=>{o(a.id),P(!1)},children:[(0,t.jsx)("span",{className:"conversation-title",children:a.title}),(0,t.jsx)("span",{className:"conversation-date",children:b(a.updatedAt)})]}),(0,t.jsx)("button",{type:"button",className:"conversation-delete",onClick:t=>{t.stopPropagation();var r=a.id;if(s(e=>e.filter(e=>e.id!==r)),n===r){let t=e.find(e=>e.id!==r);o(t?.id??null)}},"aria-label":`Delete ${a.title}`,children:"×"})]},a.id)):(0,t.jsx)("p",{className:"history-empty",children:"Loading history…"})}),(0,t.jsx)("div",{className:"sidebar-footer",children:(0,t.jsxs)("a",{className:"sidebar-console",href:"/operator",children:[(0,t.jsx)("span",{children:"⌘"}),(0,t.jsx)("span",{children:"Operator console"}),(0,t.jsx)("b",{children:"↗"})]})})]}),(0,t.jsxs)("main",{className:"chat-workspace",children:[(0,t.jsxs)("header",{className:"chat-header",children:[(0,t.jsxs)("div",{className:"chat-header-brand-group",children:[(0,t.jsx)("button",{type:"button",className:"mobile-menu-toggle",onClick:()=>P(!0),"aria-label":"Open conversation menu",children:(0,t.jsx)("span",{className:"hamburger-icon",children:"☰"})}),(0,t.jsxs)("a",{href:"/chat",className:"chat-header-title",children:[(0,t.jsx)("span",{className:"chat-brand-mark",children:"S"}),(0,t.jsx)("span",{className:"font-bold tracking-widest text-xs hidden xs:inline",children:"SIDURI"})]})]}),(0,t.jsxs)("div",{className:"chat-header-actions flex items-center gap-1.5 sm:gap-2.5",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>N(e=>!e),className:`connection-pill cursor-pointer transition-all focus-visible:ring-1 focus-visible:ring-[var(--siduri-border-ember)] outline-none ${A?"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":A,title:A?"Disable Avatar Presence":"Enable Avatar Presence",children:[(0,t.jsx)("span",{className:`status-light ${A?"online":""}`}),(0,t.jsx)("span",{className:"text-xs",children:"Presence"})]}),(0,t.jsxs)("div",{className:`connection-pill flex items-center gap-1 sm:gap-1.5 transition-all focus-within:ring-1 focus-within:ring-[var(--siduri-border-ember)] ${"off"!==k?"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,t.jsx)("span",{className:`status-light ${"off"!==k?"online":""}`}),(0,t.jsx)("span",{className:"text-[10px] uppercase font-mono tracking-wider opacity-60 hidden md:inline",children:"Subtitles:"}),(0,t.jsxs)("select",{value:["off","en","ja","id","es","zh","ko","fr","de"].includes(k)?k:"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();B(t);try{localStorage.setItem("siduri.chat.subtitleLanguage",t)}catch{}}}else if("custom-selected"!==t){B(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 max-w-[84px] xs:max-w-[100px] sm:max-w-none","aria-label":"Select subtitle language",children:[(0,t.jsx)("option",{value:"off",className:"bg-[#121214] text-white",children:"Subtitles: Off"}),(0,t.jsx)("option",{value:"en",className:"bg-[#121214] text-white",children:"English (EN)"}),(0,t.jsx)("option",{value:"ja",className:"bg-[#121214] text-white",children:"Japanese (JA)"}),(0,t.jsx)("option",{value:"id",className:"bg-[#121214] text-white",children:"Indonesian (ID)"}),(0,t.jsx)("option",{value:"es",className:"bg-[#121214] text-white",children:"Spanish (ES)"}),(0,t.jsx)("option",{value:"zh",className:"bg-[#121214] text-white",children:"Chinese (ZH)"}),(0,t.jsx)("option",{value:"ko",className:"bg-[#121214] text-white",children:"Korean (KO)"}),(0,t.jsx)("option",{value:"fr",className:"bg-[#121214] text-white",children:"French (FR)"}),(0,t.jsx)("option",{value:"de",className:"bg-[#121214] text-white",children:"German (DE)"}),!["off","en","ja","id","es","zh","ko","fr","de"].includes(k)&&(0,t.jsx)("option",{value:"custom-selected",className:"bg-[#121214] text-white",children:k.toUpperCase()}),(0,t.jsx)("option",{value:"custom",className:"bg-[#121214] text-white",children:"Other..."})]})]}),(0,t.jsxs)("span",{className:"connection-pill hidden sm:inline-flex",title:`Status: ${d}`,children:[(0,t.jsx)("span",{className:`status-light ${"online"===d?"online":""}`}),(0,t.jsx)("span",{className:"text-xs",children:d})]}),(0,t.jsxs)("div",{className:"connection-pill flex items-center gap-1 sm:gap-1.5",title:"Operating interaction mode",children:[(0,t.jsx)("span",{className:"text-[10px] uppercase font-mono tracking-wider opacity-60 hidden md:inline",children:"Mode:"}),(0,t.jsxs)("select",{value:R,onChange:e=>S(e.target.value),className:"bg-transparent text-xs text-[var(--siduri-text-primary)] font-medium outline-none cursor-pointer border-none p-0 max-w-[84px] xs:max-w-[100px] sm:max-w-none","aria-label":"Select interaction mode",children:[(0,t.jsx)("option",{value:"auto",className:"bg-[#121214] text-white",children:"Auto"}),(0,t.jsx)("option",{value:"casual",className:"bg-[#121214] text-white",children:"Casual"}),(0,t.jsx)("option",{value:"teach",className:"bg-[#121214] text-white",children:"Teach"}),(0,t.jsx)("option",{value:"hybrid",className:"bg-[#121214] text-white",children:"Hybrid"})]})]})]})]}),(0,t.jsx)("div",{className:"flex flex-col flex-1 min-h-0 w-full overflow-hidden relative",children:(0,t.jsxs)("section",{className:"conversation-surface","aria-label":"Private chat",children:[(0,t.jsxs)("div",{ref:I,className:`conversation-scroll ${A?"presence-active":""}`,"aria-live":"polite",children:[A?(0,t.jsx)("div",{className:"avatar-presence-area","data-testid":"avatar-presence-area",children:(0,t.jsx)(p,{modelUrl:C,expression:_?.expression||"neutral",action:_?.action||"idle",state:_?.state||"idle",speechId:_?.speechId,lipSyncValue:_?.lipSyncValue,durationMs:_?.durationMs,className:"w-full h-full"})}):0===z.length?(0,t.jsx)(i,{onSelectPrompt:e=>c(e)}):z.map(e=>{let a;return(0,t.jsxs)("article",{className:`platform-message ${e.role}`,children:[(0,t.jsx)("div",{className:"message-avatar",children:"user"===e.role?"U":"S"}),(0,t.jsxs)("div",{className:"message-body",children:[(0,t.jsxs)("div",{className:"message-meta",children:[(0,t.jsx)("span",{children:"user"===e.role?"You":"Siduri"}),(0,t.jsx)("time",{children:b(e.createdAt)})]}),(0,t.jsx)("p",{className:"message-primary",children:e.content}),"off"!==k&&"assistant"===e.role&&((a=e.subtitles?.[k]||(e.subtitleLanguage===k?e.subtitle:void 0)||("ja"===k&&e.spokenJa&&e.spokenJa!==e.content?e.spokenJa:void 0)||(e.subtitle&&e.subtitle!==e.content?e.subtitle:void 0))&&a.trim()!==e.content.trim()?(0,t.jsxs)("p",{className:"message-translation",title:`Subtitle: ${k.toUpperCase()}`,children:[(0,t.jsxs)("span",{className:"text-[10px] font-mono uppercase tracking-wider opacity-60 mr-1.5 not-italic",children:["[",k,"]:"]}),a]}):null),e.evidenceIds&&e.evidenceIds.length>0&&(0,t.jsxs)("span",{className:"evidence-chip",children:[e.evidenceIds.length," evidence link",1===e.evidenceIds.length?"":"s"]}),e.memoryProposals&&e.memoryProposals.length>0&&(0,t.jsx)("div",{className:"memory-receipts",children:e.memoryProposals.map(a=>{let i=(a.status||"pending").toLowerCase().replace(/_/g,"-"),s="pending"===i;return(0,t.jsxs)("div",{className:`memory-receipt status-${i}`,children:[(0,t.jsxs)("strong",{children:["Remember",a.claim_type?` (${a.claim_type.toLowerCase()})`:"",":"]})," ",(0,r.formatClaimReceipt)(a),(0,t.jsx)("div",{className:"receipt-actions",children:s?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button",onClick:()=>V(e.id,a.proposal_id,"approve"),children:"Approve"}),(0,t.jsx)("button",{type:"button",onClick:()=>V(e.id,a.proposal_id,"reject"),children:"Reject"})]}):(0,t.jsx)("span",{children:i.toUpperCase()})})]},a.proposal_id)})}),e.behavioralProposals&&e.behavioralProposals.length>0&&(0,t.jsx)("div",{className:"memory-receipts",children:e.behavioralProposals.map(a=>{let i=(a.status||"pending").toLowerCase().replace(/_/g,"-"),s="pending"===i;return(0,t.jsxs)("div",{className:`memory-receipt status-${i}`,children:[(0,t.jsxs)("strong",{children:["Runtime effect [",((a.knowledge_domain??a.domain)||"").toLowerCase()," ","→ ",((a.runtime_effect??a.memory_class)||"").toLowerCase(),"]:"]})," ",(0,r.formatRuntimeEffect)(a),(0,t.jsx)("div",{className:"receipt-actions",children:s?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button",onClick:()=>W(e.id,a.directive_id,"approve"),children:"Approve"}),(0,t.jsx)("button",{type:"button",onClick:()=>W(e.id,a.directive_id,"reject"),children:"Reject"})]}):(0,t.jsx)("span",{children:i.toUpperCase()})})]},a.directive_id)})})]})]},e.id)}),m&&!A&&(0,t.jsxs)("div",{className:"platform-message assistant thinking-message",children:[(0,t.jsx)("div",{className:"message-avatar",children:"S"}),(0,t.jsxs)("div",{className:"message-body",children:[(0,t.jsxs)("div",{className:"message-meta",children:[(0,t.jsx)("span",{children:"Siduri"}),(0,t.jsx)("span",{className:"thinking-label",children:"thinking"})]}),(0,t.jsxs)("div",{className:"thinking-dots",children:[(0,t.jsx)("i",{}),(0,t.jsx)("i",{}),(0,t.jsx)("i",{})]})]})]})]}),(0,t.jsxs)("form",{className:"platform-composer",onSubmit:O,children:[(0,t.jsx)("textarea",{value:l,onChange:e=>c(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),e.currentTarget.form?.requestSubmit())},placeholder:"Message Siduri…",rows:1,maxLength:4e3,"aria-label":"Message Siduri"}),(0,t.jsxs)("div",{className:"composer-bottom",children:[(0,t.jsxs)("span",{children:["Private local session ·"," ",G?`${G} evidence link${1===G?"":"s"}`:"No evidence attached"]}),m&&!l.trim()?(0,t.jsx)("button",{type:"button",onClick:function(){U.current&&(U.current.abort("user_stop"),U.current=null),(0,x.interruptChat)("default","user_stop"),h(!1),u("online")},"aria-label":"Stop generation",title:"Stop generation",children:"■"}):(0,t.jsx)("button",{type:"submit",disabled:!l.trim(),"aria-label":"Send message",children:"↑"})]})]})]})}),(0,t.jsx)("p",{className:"chat-disclaimer",children:"Siduri can be uncertain. Verify important details against the evidence."})]})]})}],12650)}]);