@vxnus/siduri 2.0.41 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -6
- package/dist/builtin-manifests.js +45 -17
- package/dist/clean-machine-smoke.test.js +19 -19
- package/dist/configurators/body.js +57 -1
- package/dist/configurators.test.js +27 -4
- package/dist/discovery.js +1 -1
- package/dist/discovery.test.js +4 -4
- package/dist/doctor.js +1 -1
- package/dist/generator.js +19 -19
- package/dist/generator.test.js +33 -33
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -10
- package/dist/manifest.js +2 -2
- package/dist/release-check.js +12 -12
- package/dist/runtime-parity.test.js +2 -2
- package/dist/web-dist/404/index.html +1 -1
- package/dist/web-dist/404.html +1 -1
- package/dist/web-dist/__next.__PAGE__.txt +3 -3
- package/dist/web-dist/__next._full.txt +2 -2
- package/dist/web-dist/__next._tree.txt +2 -2
- package/dist/web-dist/_next/static/chunks/1629039a.f535b3ff45566416.js +1 -0
- package/dist/web-dist/_next/static/chunks/202.59b8eb8a8c45f711.js +1 -0
- package/dist/web-dist/_next/static/chunks/2be4ccb0.ab2975eb50b4e166.js +1 -0
- package/dist/web-dist/_next/static/chunks/411.d68b2e48424f1e47.js +1 -0
- package/dist/web-dist/_next/static/chunks/92e71660.11f182d50bce2be0.js +342 -0
- package/dist/web-dist/_next/static/chunks/app/chat/page-ab56048b707a3ddd.js +34 -0
- package/dist/web-dist/_next/static/chunks/webpack-9073f434bc17ce16.js +1 -0
- package/dist/web-dist/_next/static/css/ceeb8e5596664b11.css +1 -0
- package/dist/web-dist/_not-found/__next._full.txt +2 -2
- package/dist/web-dist/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/dist/web-dist/_not-found/__next._tree.txt +2 -2
- package/dist/web-dist/_not-found/index.html +1 -1
- package/dist/web-dist/_not-found/index.txt +2 -2
- package/dist/web-dist/chat/__next._full.txt +3 -3
- package/dist/web-dist/chat/__next._tree.txt +2 -2
- package/dist/web-dist/chat/__next.chat.__PAGE__.txt +3 -3
- package/dist/web-dist/chat/index.html +1 -1
- package/dist/web-dist/chat/index.txt +3 -3
- package/dist/web-dist/index.html +1 -1
- package/dist/web-dist/index.txt +2 -2
- package/dist/web-dist/operator/__next._full.txt +2 -2
- package/dist/web-dist/operator/__next._tree.txt +2 -2
- package/dist/web-dist/operator/__next.operator.__PAGE__.txt +2 -2
- package/dist/web-dist/operator/index.html +1 -1
- package/dist/web-dist/operator/index.txt +2 -2
- package/package.json +1 -1
- package/dist/web-dist/_next/static/chunks/app/chat/page-52a6bd7bcba80f13.js +0 -34
- package/dist/web-dist/_next/static/chunks/webpack-f73cedc256be153e.js +0 -1
- package/dist/web-dist/_next/static/css/695ca1bf036a1d5f.css +0 -1
- /package/dist/web-dist/_next/static/{19iKYYXBkzIje9VKreuP1 → 28sP60JoJYTlLwpkfMjFA}/_buildManifest.js +0 -0
- /package/dist/web-dist/_next/static/{19iKYYXBkzIje9VKreuP1 → 28sP60JoJYTlLwpkfMjFA}/_ssgManifest.js +0 -0
package/dist/generator.test.js
CHANGED
|
@@ -4,7 +4,7 @@ const generator_1 = require("./generator");
|
|
|
4
4
|
describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
5
5
|
const MOCK_MANIFESTS = {
|
|
6
6
|
brain: {
|
|
7
|
-
name: '@
|
|
7
|
+
name: '@sidurijs/brain',
|
|
8
8
|
organType: 'brain',
|
|
9
9
|
version: '1.0.0',
|
|
10
10
|
displayName: 'Brain (Cognition & Planning)',
|
|
@@ -16,7 +16,7 @@ describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
|
16
16
|
services: [{ name: 'LLM Inference', kind: 'http_service' }],
|
|
17
17
|
},
|
|
18
18
|
hands: {
|
|
19
|
-
name: '@
|
|
19
|
+
name: '@sidurijs/hands',
|
|
20
20
|
organType: 'hands',
|
|
21
21
|
version: '1.0.0',
|
|
22
22
|
displayName: 'Hands (MCP Tool Execution)',
|
|
@@ -28,7 +28,7 @@ describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
|
28
28
|
services: [],
|
|
29
29
|
},
|
|
30
30
|
memory: {
|
|
31
|
-
name: '@
|
|
31
|
+
name: '@sidurijs/memory',
|
|
32
32
|
organType: 'memory',
|
|
33
33
|
version: '1.0.0',
|
|
34
34
|
displayName: 'Memory (SQLite FTS5 Claims)',
|
|
@@ -41,7 +41,7 @@ describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
|
41
41
|
database: { engine: 'sqlite' },
|
|
42
42
|
},
|
|
43
43
|
body: {
|
|
44
|
-
name: '@
|
|
44
|
+
name: '@sidurijs/body',
|
|
45
45
|
organType: 'body',
|
|
46
46
|
version: '1.0.0',
|
|
47
47
|
displayName: 'Body (Live2D & Avatar State)',
|
|
@@ -53,7 +53,7 @@ describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
|
53
53
|
services: [],
|
|
54
54
|
},
|
|
55
55
|
voice: {
|
|
56
|
-
name: '@
|
|
56
|
+
name: '@sidurijs/voice',
|
|
57
57
|
organType: 'voice',
|
|
58
58
|
version: '1.0.0',
|
|
59
59
|
displayName: 'Voice (VOICEVOX Speech Synthesis)',
|
|
@@ -65,7 +65,7 @@ describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
|
65
65
|
services: [{ name: 'VOICEVOX', kind: 'http_service' }],
|
|
66
66
|
},
|
|
67
67
|
self: {
|
|
68
|
-
name: '@
|
|
68
|
+
name: '@sidurijs/self',
|
|
69
69
|
organType: 'behavior',
|
|
70
70
|
version: '1.0.0',
|
|
71
71
|
displayName: 'Self (Active Persona & Directives)',
|
|
@@ -83,17 +83,17 @@ describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
|
83
83
|
selectedManifests: [MOCK_MANIFESTS.brain],
|
|
84
84
|
});
|
|
85
85
|
const pkg = JSON.parse(files['package.json']);
|
|
86
|
-
expect(pkg.dependencies['@
|
|
87
|
-
expect(pkg.dependencies['@
|
|
88
|
-
expect(pkg.dependencies['@
|
|
89
|
-
expect(pkg.dependencies['@
|
|
90
|
-
expect(pkg.dependencies['@
|
|
91
|
-
expect(pkg.dependencies['@
|
|
86
|
+
expect(pkg.dependencies['@sidurijs/core']).toBeDefined();
|
|
87
|
+
expect(pkg.dependencies['@sidurijs/brain']).toBeDefined();
|
|
88
|
+
expect(pkg.dependencies['@sidurijs/memory']).toBeUndefined();
|
|
89
|
+
expect(pkg.dependencies['@sidurijs/hands']).toBeUndefined();
|
|
90
|
+
expect(pkg.dependencies['@sidurijs/voice']).toBeUndefined();
|
|
91
|
+
expect(pkg.dependencies['@sidurijs/body']).toBeUndefined();
|
|
92
92
|
expect(pkg.devDependencies['@vxnus/siduri']).toBeDefined();
|
|
93
93
|
// src/index.js
|
|
94
|
-
expect(files['src/index.js']).toContain("import { OpenRouterBrain } from '@
|
|
95
|
-
expect(files['src/index.js']).not.toContain('@
|
|
96
|
-
expect(files['src/index.js']).not.toContain('@
|
|
94
|
+
expect(files['src/index.js']).toContain("import { OpenRouterBrain } from '@sidurijs/brain'");
|
|
95
|
+
expect(files['src/index.js']).not.toContain('@sidurijs/hands');
|
|
96
|
+
expect(files['src/index.js']).not.toContain('@sidurijs/memory');
|
|
97
97
|
expect(files['src/index.js']).not.toContain('siduri-runtime.js');
|
|
98
98
|
// siduri.config.json
|
|
99
99
|
const config = JSON.parse(files['siduri.config.json']);
|
|
@@ -113,14 +113,14 @@ describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
|
113
113
|
selectedManifests: [MOCK_MANIFESTS.brain, MOCK_MANIFESTS.hands],
|
|
114
114
|
});
|
|
115
115
|
const pkg = JSON.parse(files['package.json']);
|
|
116
|
-
expect(pkg.dependencies['@
|
|
117
|
-
expect(pkg.dependencies['@
|
|
118
|
-
expect(pkg.dependencies['@
|
|
119
|
-
expect(pkg.dependencies['@
|
|
116
|
+
expect(pkg.dependencies['@sidurijs/core']).toBeDefined();
|
|
117
|
+
expect(pkg.dependencies['@sidurijs/brain']).toBeDefined();
|
|
118
|
+
expect(pkg.dependencies['@sidurijs/hands']).toBeDefined();
|
|
119
|
+
expect(pkg.dependencies['@sidurijs/memory']).toBeUndefined();
|
|
120
120
|
// src/index.js
|
|
121
|
-
expect(files['src/index.js']).toContain("import { OpenRouterBrain } from '@
|
|
122
|
-
expect(files['src/index.js']).toContain("import { DefaultHandsOrgan } from '@
|
|
123
|
-
expect(files['src/index.js']).not.toContain('@
|
|
121
|
+
expect(files['src/index.js']).toContain("import { OpenRouterBrain } from '@sidurijs/brain'");
|
|
122
|
+
expect(files['src/index.js']).toContain("import { DefaultHandsOrgan } from '@sidurijs/hands'");
|
|
123
|
+
expect(files['src/index.js']).not.toContain('@sidurijs/memory');
|
|
124
124
|
// .env.example
|
|
125
125
|
expect(files['.env.example']).toContain('OPENROUTER_API_KEY');
|
|
126
126
|
expect(files['.env.example']).toContain('ACTION_POLICY_SECRET');
|
|
@@ -133,10 +133,10 @@ describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
|
133
133
|
selectedManifests: [MOCK_MANIFESTS.brain, MOCK_MANIFESTS.memory],
|
|
134
134
|
});
|
|
135
135
|
const pkg = JSON.parse(files['package.json']);
|
|
136
|
-
expect(pkg.dependencies['@
|
|
137
|
-
expect(pkg.dependencies['@
|
|
138
|
-
expect(pkg.dependencies['@
|
|
139
|
-
expect(pkg.dependencies['@
|
|
136
|
+
expect(pkg.dependencies['@sidurijs/core']).toBeDefined();
|
|
137
|
+
expect(pkg.dependencies['@sidurijs/brain']).toBeDefined();
|
|
138
|
+
expect(pkg.dependencies['@sidurijs/memory']).toBeDefined();
|
|
139
|
+
expect(pkg.dependencies['@sidurijs/hands']).toBeUndefined();
|
|
140
140
|
// .env.example
|
|
141
141
|
expect(files['.env.example']).toContain('OPENROUTER_API_KEY');
|
|
142
142
|
expect(files['.env.example']).not.toContain('DATABASE_URL');
|
|
@@ -158,12 +158,12 @@ describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
|
158
158
|
],
|
|
159
159
|
});
|
|
160
160
|
const pkg = JSON.parse(files['package.json']);
|
|
161
|
-
expect(pkg.dependencies['@
|
|
162
|
-
expect(pkg.dependencies['@
|
|
163
|
-
expect(pkg.dependencies['@
|
|
164
|
-
expect(pkg.dependencies['@
|
|
165
|
-
expect(pkg.dependencies['@
|
|
166
|
-
expect(pkg.dependencies['@
|
|
161
|
+
expect(pkg.dependencies['@sidurijs/core']).toBeDefined();
|
|
162
|
+
expect(pkg.dependencies['@sidurijs/brain']).toBeDefined();
|
|
163
|
+
expect(pkg.dependencies['@sidurijs/memory']).toBeDefined();
|
|
164
|
+
expect(pkg.dependencies['@sidurijs/hands']).toBeDefined();
|
|
165
|
+
expect(pkg.dependencies['@sidurijs/body']).toBeDefined();
|
|
166
|
+
expect(pkg.dependencies['@sidurijs/voice']).toBeDefined();
|
|
167
167
|
// Body & voice asset directories requested
|
|
168
168
|
expect(files.createAssetsBodyDir).toBe(true);
|
|
169
169
|
expect(files.createAssetsDirs).toContain('assets/body/default');
|
|
@@ -243,7 +243,7 @@ describe('Instance Generator Composition Invariants (Phase 3)', () => {
|
|
|
243
243
|
expect(files['assets/self/default.self']).toContain('name: "ResearchPartner"');
|
|
244
244
|
// 2. src/index.js imports scanDirective and compilePersonaDocument
|
|
245
245
|
const srcIndexJs = files['src/index.js'];
|
|
246
|
-
expect(srcIndexJs).toContain("import { ActiveSelfCompiler, SqliteSelfRepository, SelfPackageParser, scanDirective, compilePersonaDocument } from '@
|
|
246
|
+
expect(srcIndexJs).toContain("import { ActiveSelfCompiler, SqliteSelfRepository, SelfPackageParser, scanDirective, compilePersonaDocument } from '@sidurijs/self';");
|
|
247
247
|
// 3. Teach Mode endpoints are generated
|
|
248
248
|
expect(srcIndexJs).toContain("pathname === '/teach/detected-self'");
|
|
249
249
|
expect(srcIndexJs).toContain("pathname === '/teach/upload-self'");
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -61,7 +61,7 @@ const doctor_1 = require("./doctor");
|
|
|
61
61
|
const db_1 = require("./db");
|
|
62
62
|
const configurators_1 = require("./configurators");
|
|
63
63
|
const execFile = (0, node_util_1.promisify)(node_child_process_1.execFile);
|
|
64
|
-
exports.CLI_VERSION = '2.0
|
|
64
|
+
exports.CLI_VERSION = '2.1.0';
|
|
65
65
|
const colors_1 = require("./colors");
|
|
66
66
|
Object.defineProperty(exports, "colors", { enumerable: true, get: function () { return colors_1.colors; } });
|
|
67
67
|
function printHeader() {
|
|
@@ -144,7 +144,7 @@ async function runCreateWizard(targetDir, options) {
|
|
|
144
144
|
const registry = discovery_1.OrganRegistry.discover();
|
|
145
145
|
const availableManifests = registry.getAll();
|
|
146
146
|
if (availableManifests.length === 0) {
|
|
147
|
-
throw new Error('No @
|
|
147
|
+
throw new Error('No @sidurijs/* organ packages found. Please ensure organs are installed or in workspace.');
|
|
148
148
|
}
|
|
149
149
|
printSection('Project Details');
|
|
150
150
|
let projectDirName;
|
|
@@ -340,7 +340,7 @@ async function runCreateWizard(targetDir, options) {
|
|
|
340
340
|
await (0, promises_1.writeFile)(destPath, content, 'utf8');
|
|
341
341
|
}
|
|
342
342
|
// If local knowledge archive is configured with a download URL, automatically fetch and unpack it
|
|
343
|
-
const knowledgeConfig = organConfigs.knowledge || organConfigs['@
|
|
343
|
+
const knowledgeConfig = organConfigs.knowledge || organConfigs['@sidurijs/knowledge'];
|
|
344
344
|
if (knowledgeConfig?.pack?.mode === 'local' && knowledgeConfig?.pack?.archiveUrl) {
|
|
345
345
|
const packRelDir = (knowledgeConfig.packPath || 'assets/knowledge/pack').replace(/^\.\//, '');
|
|
346
346
|
const packDest = node_path_1.default.join(projectDir, packRelDir);
|
|
@@ -378,7 +378,7 @@ async function runCreateWizard(targetDir, options) {
|
|
|
378
378
|
console.log(` cp .env.example .env ${colors_1.colors.dim}# Fill in required API keys/credentials${colors_1.colors.reset}`);
|
|
379
379
|
console.log(` npm run doctor ${colors_1.colors.dim}# Run diagnostic health probes${colors_1.colors.reset}`);
|
|
380
380
|
console.log(` npm start ${colors_1.colors.dim}# Start Web Companion & Memory Console at http://localhost:3000${colors_1.colors.reset}\n`);
|
|
381
|
-
const voiceConfig = organConfigs.voice || organConfigs['@
|
|
381
|
+
const voiceConfig = organConfigs.voice || organConfigs['@sidurijs/voice'];
|
|
382
382
|
if (voiceConfig?.provider === 'voicevox') {
|
|
383
383
|
console.log(` ${colors_1.colors.cyan}ℹ Voice Runtime:${colors_1.colors.reset} ${colors_1.colors.dim}VOICEVOX engine (~1.5GB) will auto-download to ~/.voicevox/engine/ and launch on port 50021 on first 'npm start' (if not already running).${colors_1.colors.reset}\n`);
|
|
384
384
|
}
|
|
@@ -588,12 +588,12 @@ async function main() {
|
|
|
588
588
|
return;
|
|
589
589
|
}
|
|
590
590
|
printHeader();
|
|
591
|
-
console.log('Usage: npx
|
|
592
|
-
console.log(' npx
|
|
593
|
-
console.log(' npx
|
|
594
|
-
console.log(' npx
|
|
595
|
-
console.log(' npx
|
|
596
|
-
console.log(' npx
|
|
591
|
+
console.log('Usage: npx siduri create [directory] [--local]');
|
|
592
|
+
console.log(' npx siduri reset [directory]');
|
|
593
|
+
console.log(' npx siduri doctor [directory]');
|
|
594
|
+
console.log(' npx siduri db push [directory]');
|
|
595
|
+
console.log(' npx siduri db reset [directory]');
|
|
596
|
+
console.log(' npx siduri --version\n');
|
|
597
597
|
}
|
|
598
598
|
if (require.main === module) {
|
|
599
599
|
main().catch((error) => {
|
package/dist/manifest.js
CHANGED
|
@@ -6,8 +6,8 @@ function validateOrganManifest(manifest, sourcePath) {
|
|
|
6
6
|
throw new Error(`Invalid manifest at ${sourcePath || 'unknown'}: expected an object`);
|
|
7
7
|
}
|
|
8
8
|
const m = manifest;
|
|
9
|
-
if (!m.name || typeof m.name !== 'string' || !m.name.startsWith('@
|
|
10
|
-
throw new Error(`Invalid manifest name in ${sourcePath || 'unknown'}: expected package name starting with @
|
|
9
|
+
if (!m.name || typeof m.name !== 'string' || !m.name.startsWith('@sidurijs/')) {
|
|
10
|
+
throw new Error(`Invalid manifest name in ${sourcePath || 'unknown'}: expected package name starting with @sidurijs/`);
|
|
11
11
|
}
|
|
12
12
|
if (!m.organType || typeof m.organType !== 'string') {
|
|
13
13
|
throw new Error(`Invalid manifest organType in ${sourcePath || m.name}`);
|
package/dist/release-check.js
CHANGED
|
@@ -18,18 +18,18 @@ function runReleaseCheck(repoRoot = node_path_1.default.resolve(__dirname, '../.
|
|
|
18
18
|
node_fs_1.default.mkdirSync(tempPackDir, { recursive: true });
|
|
19
19
|
const getPkgVer = (dir) => JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.resolve(repoRoot, dir, 'package.json'), 'utf8')).version;
|
|
20
20
|
const canonicalPackages = [
|
|
21
|
-
{ name: '@
|
|
22
|
-
{ name: '@
|
|
23
|
-
{ name: '@
|
|
24
|
-
{ name: '@
|
|
25
|
-
{ name: '@
|
|
26
|
-
{ name: '@
|
|
27
|
-
{ name: '@
|
|
28
|
-
{ name: '@
|
|
29
|
-
{ name: '@
|
|
30
|
-
{ name: '@
|
|
31
|
-
{ name: '@
|
|
32
|
-
{ name: '@
|
|
21
|
+
{ name: '@sidurijs/core', dir: 'packages/core', isOrgan: false, tarName: `sidurijs-core-${getPkgVer('packages/core')}.tgz` },
|
|
22
|
+
{ name: '@sidurijs/self', dir: 'packages/self', isOrgan: false, tarName: `sidurijs-self-${getPkgVer('packages/self')}.tgz` },
|
|
23
|
+
{ name: '@sidurijs/knowledge', dir: 'packages/knowledge', isOrgan: false, tarName: `sidurijs-knowledge-${getPkgVer('packages/knowledge')}.tgz` },
|
|
24
|
+
{ name: '@sidurijs/memory', dir: 'packages/memory', isOrgan: false, tarName: `sidurijs-memory-${getPkgVer('packages/memory')}.tgz` },
|
|
25
|
+
{ name: '@sidurijs/brain', dir: 'packages/organs/brain', isOrgan: true, tarName: `sidurijs-brain-${getPkgVer('packages/organs/brain')}.tgz` },
|
|
26
|
+
{ name: '@sidurijs/ear', dir: 'packages/organs/ear', isOrgan: true, tarName: `sidurijs-ear-${getPkgVer('packages/organs/ear')}.tgz` },
|
|
27
|
+
{ name: '@sidurijs/vision', dir: 'packages/organs/vision', isOrgan: true, tarName: `sidurijs-vision-${getPkgVer('packages/organs/vision')}.tgz` },
|
|
28
|
+
{ name: '@sidurijs/hands', dir: 'packages/organs/hands', isOrgan: true, tarName: `sidurijs-hands-${getPkgVer('packages/organs/hands')}.tgz` },
|
|
29
|
+
{ name: '@sidurijs/body', dir: 'packages/organs/body', isOrgan: true, tarName: `sidurijs-body-${getPkgVer('packages/organs/body')}.tgz` },
|
|
30
|
+
{ name: '@sidurijs/voice', dir: 'packages/organs/voice', isOrgan: true, tarName: `sidurijs-voice-${getPkgVer('packages/organs/voice')}.tgz` },
|
|
31
|
+
{ name: '@sidurijs/mouth', dir: 'packages/organs/mouth', isOrgan: true, tarName: `sidurijs-mouth-${getPkgVer('packages/organs/mouth')}.tgz` },
|
|
32
|
+
{ name: '@sidurijs/observation', dir: 'packages/organs/observation', isOrgan: true, tarName: `sidurijs-observation-${getPkgVer('packages/organs/observation')}.tgz` },
|
|
33
33
|
{ name: '@vxnus/siduri', dir: 'cli', isOrgan: false, tarName: `vxnus-siduri-${getPkgVer('cli')}.tgz` },
|
|
34
34
|
];
|
|
35
35
|
let packagesChecked = 0;
|
|
@@ -117,7 +117,7 @@ describe('Localweb and CLI Standalone 1:1 Runtime & Chat Parity', () => {
|
|
|
117
117
|
});
|
|
118
118
|
test('Generated CLI standalone src/index.js routes /chat through dispatchCompanionChat', () => {
|
|
119
119
|
const mockManifest = {
|
|
120
|
-
name: '@
|
|
120
|
+
name: '@sidurijs/brain',
|
|
121
121
|
organType: 'brain',
|
|
122
122
|
version: '1.0.0',
|
|
123
123
|
displayName: 'Brain',
|
|
@@ -131,7 +131,7 @@ describe('Localweb and CLI Standalone 1:1 Runtime & Chat Parity', () => {
|
|
|
131
131
|
});
|
|
132
132
|
const srcIndexJs = files['src/index.js'];
|
|
133
133
|
// Ensures single source of truth import
|
|
134
|
-
expect(srcIndexJs).toContain("import { SiduriRuntime, dispatchCompanionChat, validateCompanionConfig } from '@
|
|
134
|
+
expect(srcIndexJs).toContain("import { SiduriRuntime, dispatchCompanionChat, validateCompanionConfig } from '@sidurijs/core';");
|
|
135
135
|
expect(srcIndexJs).toContain('validateCompanionConfig(config, schema);');
|
|
136
136
|
// Ensures /chat uses dispatchCompanionChat directly without ad-hoc runtimeResult envelope
|
|
137
137
|
expect(srcIndexJs).toContain('const response = await dispatchCompanionChat(runtime,');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="h-full antialiased dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="h-full antialiased dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/ceeb8e5596664b11.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9073f434bc17ce16.js"/><script src="/_next/static/chunks/563b947f-8e2871a2ab7cd91e.js" async=""></script><script src="/_next/static/chunks/136-1d10af93b770a1c8.js" async=""></script><script src="/_next/static/chunks/main-app-9e6a144626e5a5b9.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap" as="style"/><meta name="robots" content="noindex"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0b0b0e"/><title>Siduri — Local-First Companion</title><meta name="description" content="Siduri — a local-first companion with explicit memory, grounded knowledge, and optional presence."/><link rel="icon" href="/favicon.ico?7715e5163ea8ac02" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.ico"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-9073f434bc17ce16.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[8766,[],\"\"]\n3:I[356,[],\"\"]\n4:I[5127,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[5127,[],\"ViewportBoundary\"]\na:I[5127,[],\"MetadataBoundary\"]\nc:I[6886,[],\"default\",1]\n:HL[\"/_next/static/css/ceeb8e5596664b11.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500\u0026family=Noto+Sans+JP:wght@400;500;700\u0026family=Noto+Serif+JP:wght@400;500;700\u0026display=swap\",\"style\"]\n7:X\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ceeb8e5596664b11.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"h-full antialiased dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500\u0026family=Noto+Sans+JP:wght@400;500;700\u0026family=Noto+Serif+JP:wght@400;500;700\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"28sP60JoJYTlLwpkfMjFA\"}\n"])</script><script>self.__next_f.push([1,"7:C\n9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0b0b0e\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[3366,[],\"IconMark\"]\n6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Siduri — Local-First Companion\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Siduri — a local-first companion with explicit memory, grounded knowledge, and optional presence.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?7715e5163ea8ac02\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"5\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\"}],[\"$\",\"$Ld\",\"6\",{}]]\n"])</script></body></html>
|
package/dist/web-dist/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="h-full antialiased dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="h-full antialiased dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/ceeb8e5596664b11.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9073f434bc17ce16.js"/><script src="/_next/static/chunks/563b947f-8e2871a2ab7cd91e.js" async=""></script><script src="/_next/static/chunks/136-1d10af93b770a1c8.js" async=""></script><script src="/_next/static/chunks/main-app-9e6a144626e5a5b9.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap" as="style"/><meta name="robots" content="noindex"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0b0b0e"/><title>Siduri — Local-First Companion</title><meta name="description" content="Siduri — a local-first companion with explicit memory, grounded knowledge, and optional presence."/><link rel="icon" href="/favicon.ico?7715e5163ea8ac02" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/favicon.ico"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-9073f434bc17ce16.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[8766,[],\"\"]\n3:I[356,[],\"\"]\n4:I[5127,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[5127,[],\"ViewportBoundary\"]\na:I[5127,[],\"MetadataBoundary\"]\nc:I[6886,[],\"default\",1]\n:HL[\"/_next/static/css/ceeb8e5596664b11.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500\u0026family=Noto+Sans+JP:wght@400;500;700\u0026family=Noto+Serif+JP:wght@400;500;700\u0026display=swap\",\"style\"]\n7:X\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ceeb8e5596664b11.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"h-full antialiased dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500\u0026family=Noto+Sans+JP:wght@400;500;700\u0026family=Noto+Serif+JP:wght@400;500;700\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"28sP60JoJYTlLwpkfMjFA\"}\n"])</script><script>self.__next_f.push([1,"7:C\n9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0b0b0e\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[3366,[],\"IconMark\"]\n6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Siduri — Local-First Companion\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Siduri — a local-first companion with explicit memory, grounded knowledge, and optional presence.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?7715e5163ea8ac02\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"5\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\"}],[\"$\",\"$Ld\",\"6\",{}]]\n"])</script></body></html>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
2:I[7443,["974","static/chunks/app/page-fc4bf56cf33ae27b.js"],""]
|
|
3
3
|
:HL["/logo-circle.svg","image"]
|
|
4
4
|
a:X
|
|
5
|
-
0:{"buildId":"
|
|
5
|
+
0:{"buildId":"28sP60JoJYTlLwpkfMjFA","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-1.5 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"}]," ",["$","svg",null,{"width":12,"height":12,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]}]]}]}],["$","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",["$","svg",null,{"width":16,"height":16,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}],"$L3"]}]]}]}],"$L4","$L5","$L6"]}],"$L7"]}],null,"$L8"]}],"isPartial":"$@9","staleTime":"$a","varyParams":null},{"rsc":"$Lb","isPartial":"$@c","staleTime":"$a","varyParams":null},{"rsc":"$Ld","isPartial":"$@e","staleTime":"$a","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@f","rootVaryParams":null,"needsRuntimeRequest":"$@10"}
|
|
6
6
|
15:I[5127,[],"OutletBoundary"]
|
|
7
7
|
16:"$Sreact.suspense"
|
|
8
8
|
18:I[5127,[],"ViewportBoundary"]
|
|
@@ -10,7 +10,7 @@ a:X
|
|
|
10
10
|
1a:I[3366,[],"IconMark"]
|
|
11
11
|
1b:I[8766,[],""]
|
|
12
12
|
1c:I[356,[],""]
|
|
13
|
-
:HL["/_next/static/css/
|
|
13
|
+
:HL["/_next/static/css/ceeb8e5596664b11.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:["$","$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":[["$","svg",null,{"width":14,"height":14,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","className":"shrink-0","aria-hidden":"true","children":["$","path",null,{"d":"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z"}]}],"Operator Console"]}]
|
|
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."}]]}],"$L11","$L12","$L13","$L14"]}]]}]}]
|
|
@@ -19,7 +19,7 @@ a:X
|
|
|
19
19
|
7:["$","footer",null,{"className":"py-14 border-t border-[var(--siduri-border-subtle)] bg-[#0e0e12]","children":["$","div",null,{"className":"home-container flex flex-col sm:flex-row items-center justify-between gap-6","children":[["$","div",null,{"className":"flex items-center gap-3","children":[["$","img",null,{"src":"/logo-circle.svg","alt":"Siduri-X Logo","className":"w-5 h-5 rounded-full shrink-0","width":20,"height":20}],["$","span",null,{"className":"font-bold tracking-widest text-xs text-[var(--siduri-text-primary)]","children":"SIDURI-X"}]]}],["$","p",null,{"className":"text-xs text-[var(--siduri-text-dim)] font-sans text-center sm:text-left","children":"Local-first AI companion framework."}],["$","div",null,{"className":"flex items-center gap-5 text-xs text-[var(--siduri-text-muted)]","children":[["$","$L2",null,{"href":"/chat","className":"hover:text-[var(--siduri-text-primary)]","children":"Chat"}],["$","$L2",null,{"href":"/operator","className":"hover:text-[var(--siduri-text-primary)]","children":"Operator"}]]}]]}]}]
|
|
20
20
|
8:["$","$L15",null,{"children":["$","$16",null,{"name":"Next.MetadataOutlet","children":"$@17"}]}]
|
|
21
21
|
b:["$","$1","h",{"children":[null,["$","$L18",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":["$","$L19",null,{"children":["$","$16",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Siduri — Local-First Companion"}],["$","meta","1",{"name":"description","content":"Siduri — a local-first companion with explicit memory, grounded knowledge, and optional presence."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?7715e5163ea8ac02","type":"image/x-icon","sizes":"16x16"}],["$","link","3",{"rel":"icon","href":"/favicon.ico"}],["$","link","4",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","5",{"rel":"apple-touch-icon","href":"/apple-touch-icon.png"}],["$","$L1a","6",{}]]}]}]}],null]}]
|
|
22
|
-
d:["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/
|
|
22
|
+
d:["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ceeb8e5596664b11.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"h-full antialiased dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]","children":["$","$L1b",null,{"parallelRouterKey":"children","template":["$","$L1c",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
23
|
11:["$","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."}]]}]
|
|
24
24
|
12:["$","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."}]]}]
|
|
25
25
|
13:["$","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[356,[],""]
|
|
4
4
|
4:I[7443,["974","static/chunks/app/page-fc4bf56cf33ae27b.js"],""]
|
|
5
5
|
10:I[6886,[],"default",1]
|
|
6
|
-
:HL["/_next/static/css/
|
|
6
|
+
:HL["/_next/static/css/ceeb8e5596664b11.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/css/
|
|
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/css/ceeb8e5596664b11.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full antialiased dark","children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"min-h-full flex flex-col bg-[#0b0b0e] text-[#eee8df] selection:bg-[#d99a68]/30 selection:text-[#f4c28d]","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","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-1.5 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"}]," ",["$","svg",null,{"width":12,"height":12,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","className":"$undefined","aria-hidden":"true","children":[["$","line",null,{"x1":"5","y1":"12","x2":"19","y2":"12"}],["$","polyline",null,{"points":"12 5 19 12 12 19"}]]}]]}]}]]}]}],["$","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"]}],null,"$Le"]}],{},null,false,null]},null,false,null],"$Lf",false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"28sP60JoJYTlLwpkfMjFA"}
|
|
10
10
|
15:I[5127,[],"OutletBoundary"]
|
|
11
11
|
16:"$Sreact.suspense"
|
|
12
12
|
18:I[5127,[],"ViewportBoundary"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
:HL["/_next/static/css/
|
|
1
|
+
:HL["/_next/static/css/ceeb8e5596664b11.css","style"]
|
|
2
2
|
:HL["https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap","style"]
|
|
3
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":"
|
|
4
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}},"staleTime":300,"buildId":"28sP60JoJYTlLwpkfMjFA"}
|