siduri 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +1 -1
  2. package/dist/configurators/archive.d.ts +0 -4
  3. package/dist/configurators/archive.js +0 -5
  4. package/dist/configurators/index.d.ts +0 -1
  5. package/dist/configurators/index.js +0 -1
  6. package/dist/configurators.test.js +3 -3
  7. package/dist/generator.js +2 -2
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/runtime-parity.test.js +3 -3
  11. package/dist/web-dist/404/index.html +1 -1
  12. package/dist/web-dist/404.html +1 -1
  13. package/dist/web-dist/__next.__PAGE__.txt +1 -1
  14. package/dist/web-dist/__next._full.txt +1 -1
  15. package/dist/web-dist/__next._tree.txt +1 -1
  16. package/dist/web-dist/_next/static/chunks/app/chat/{page-c2c01bacc6562e40.js → page-4d90641844cd9fed.js} +1 -1
  17. package/dist/web-dist/_not-found/__next._full.txt +1 -1
  18. package/dist/web-dist/_not-found/__next._not-found.__PAGE__.txt +1 -1
  19. package/dist/web-dist/_not-found/__next._tree.txt +1 -1
  20. package/dist/web-dist/_not-found/index.html +1 -1
  21. package/dist/web-dist/_not-found/index.txt +1 -1
  22. package/dist/web-dist/chat/__next._full.txt +2 -2
  23. package/dist/web-dist/chat/__next._tree.txt +1 -1
  24. package/dist/web-dist/chat/__next.chat.__PAGE__.txt +2 -2
  25. package/dist/web-dist/chat/index.html +1 -1
  26. package/dist/web-dist/chat/index.txt +2 -2
  27. package/dist/web-dist/index.html +1 -1
  28. package/dist/web-dist/index.txt +1 -1
  29. package/dist/web-dist/operator/__next._full.txt +1 -1
  30. package/dist/web-dist/operator/__next._tree.txt +1 -1
  31. package/dist/web-dist/operator/__next.operator.__PAGE__.txt +1 -1
  32. package/dist/web-dist/operator/index.html +1 -1
  33. package/dist/web-dist/operator/index.txt +1 -1
  34. package/package.json +1 -1
  35. package/dist/clean-machine-e2e.test.d.ts +0 -1
  36. package/dist/clean-machine-e2e.test.js +0 -160
  37. package/dist/configurators/memory.d.ts +0 -5
  38. package/dist/configurators/memory.js +0 -21
  39. /package/dist/web-dist/_next/static/{TAssFHX71jXsDINzGLNGT → 6myq7R-xRemzP7dQD6m1Q}/_buildManifest.js +0 -0
  40. /package/dist/web-dist/_next/static/{TAssFHX71jXsDINzGLNGT → 6myq7R-xRemzP7dQD6m1Q}/_ssgManifest.js +0 -0
@@ -1,160 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const node_fs_1 = __importDefault(require("node:fs"));
7
- const node_path_1 = __importDefault(require("node:path"));
8
- const node_child_process_1 = require("node:child_process");
9
- const discovery_1 = require("./discovery");
10
- const generator_1 = require("./generator");
11
- describe('Phase 5: Clean-Machine Distribution & E2E Integration Suite', () => {
12
- const repoRoot = node_path_1.default.resolve(__dirname, '../../');
13
- const tempPackDir = node_path_1.default.resolve(__dirname, '../temp-packs-e2e');
14
- const cleanMachineRoot = node_path_1.default.resolve(__dirname, '../temp-clean-machine-e2e');
15
- const getPkgVer = (dir) => JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.resolve(repoRoot, dir, 'package.json'), 'utf8')).version;
16
- const ALL_CANONICAL_PACKAGES = [
17
- { filter: '@siduri-x/core', dir: 'packages/core', tarName: `siduri-x-core-${getPkgVer('packages/core')}.tgz`, isOrgan: false },
18
- { filter: '@siduri-x/brain', dir: 'packages/organs/brain', tarName: `siduri-x-brain-${getPkgVer('packages/organs/brain')}.tgz`, isOrgan: true },
19
- { filter: '@siduri-x/memory', dir: 'packages/memory', tarName: `siduri-x-memory-${getPkgVer('packages/memory')}.tgz`, isOrgan: true },
20
- { filter: '@siduri-x/knowledge', dir: 'packages/knowledge', tarName: `siduri-x-knowledge-${getPkgVer('packages/knowledge')}.tgz`, isOrgan: true },
21
- { filter: '@siduri-x/self', dir: 'packages/self', tarName: `siduri-x-self-${getPkgVer('packages/self')}.tgz`, isOrgan: true },
22
- { filter: '@siduri-x/ear', dir: 'packages/organs/ear', tarName: `siduri-x-ear-${getPkgVer('packages/organs/ear')}.tgz`, isOrgan: true },
23
- { filter: '@siduri-x/vision', dir: 'packages/organs/vision', tarName: `siduri-x-vision-${getPkgVer('packages/organs/vision')}.tgz`, isOrgan: true },
24
- { filter: '@siduri-x/hands', dir: 'packages/organs/hands', tarName: `siduri-x-hands-${getPkgVer('packages/organs/hands')}.tgz`, isOrgan: true },
25
- { filter: '@siduri-x/body', dir: 'packages/organs/body', tarName: `siduri-x-body-${getPkgVer('packages/organs/body')}.tgz`, isOrgan: true },
26
- { filter: '@siduri-x/voice', dir: 'packages/organs/voice', tarName: `siduri-x-voice-${getPkgVer('packages/organs/voice')}.tgz`, isOrgan: true },
27
- { filter: '@siduri-x/observation', dir: 'packages/organs/observation', tarName: `siduri-x-observation-${getPkgVer('packages/organs/observation')}.tgz`, isOrgan: true },
28
- { filter: '@siduri-x/mouth', dir: 'packages/organs/mouth', tarName: `siduri-x-mouth-${getPkgVer('packages/organs/mouth')}.tgz`, isOrgan: true },
29
- { filter: '@siduri-x/eknowledge', dir: 'packages/organs/eknowledge', tarName: `siduri-x-eknowledge-${getPkgVer('packages/organs/eknowledge')}.tgz`, isOrgan: true },
30
- { filter: '@vxnus/siduri', dir: 'cli', tarName: `vxnus-siduri-${getPkgVer('cli')}.tgz`, isOrgan: false },
31
- ];
32
- const getTarPath = (pkgName) => {
33
- const pkg = ALL_CANONICAL_PACKAGES.find(p => p.filter === pkgName);
34
- return node_path_1.default.join(tempPackDir, pkg.tarName);
35
- };
36
- beforeAll(() => {
37
- // 1. Prepare clean directories
38
- if (node_fs_1.default.existsSync(tempPackDir))
39
- node_fs_1.default.rmSync(tempPackDir, { recursive: true, force: true });
40
- if (node_fs_1.default.existsSync(cleanMachineRoot))
41
- node_fs_1.default.rmSync(cleanMachineRoot, { recursive: true, force: true });
42
- node_fs_1.default.mkdirSync(tempPackDir, { recursive: true });
43
- node_fs_1.default.mkdirSync(cleanMachineRoot, { recursive: true });
44
- // 2. Build all packages in repo
45
- (0, node_child_process_1.execSync)("pnpm turbo run build --filter='!web'", { cwd: repoRoot, stdio: 'pipe' });
46
- // 3. Pack each canonical package into tempPackDir
47
- for (const pkg of ALL_CANONICAL_PACKAGES) {
48
- (0, node_child_process_1.execSync)(`pnpm pack --pack-destination ${tempPackDir}`, {
49
- cwd: node_path_1.default.resolve(repoRoot, pkg.dir),
50
- stdio: 'pipe',
51
- });
52
- }
53
- }, 90000);
54
- afterAll(() => {
55
- if (node_fs_1.default.existsSync(tempPackDir))
56
- node_fs_1.default.rmSync(tempPackDir, { recursive: true, force: true });
57
- if (node_fs_1.default.existsSync(cleanMachineRoot))
58
- node_fs_1.default.rmSync(cleanMachineRoot, { recursive: true, force: true });
59
- });
60
- describe('Phase 5A: Package Artifact Verification', () => {
61
- test('all 14 packages produce valid tarballs', () => {
62
- for (const pkg of ALL_CANONICAL_PACKAGES) {
63
- const tarPath = node_path_1.default.join(tempPackDir, pkg.tarName);
64
- expect(node_fs_1.default.existsSync(tarPath)).toBe(true);
65
- }
66
- });
67
- test('packed package.json files have zero workspace:* or link: dependencies', () => {
68
- for (const pkg of ALL_CANONICAL_PACKAGES) {
69
- const tarPath = node_path_1.default.join(tempPackDir, pkg.tarName);
70
- const pkgJsonRaw = (0, node_child_process_1.execSync)(`tar -xzf ${tarPath} -O package/package.json`, { encoding: 'utf8' });
71
- const pkgJson = JSON.parse(pkgJsonRaw);
72
- const allDeps = {
73
- ...(pkgJson.dependencies || {}),
74
- ...(pkgJson.peerDependencies || {}),
75
- };
76
- for (const [depName, version] of Object.entries(allDeps)) {
77
- if (typeof version === 'string') {
78
- expect(version.startsWith('workspace:')).toBe(false);
79
- expect(version.startsWith('link:')).toBe(false);
80
- expect(version.includes('../')).toBe(false);
81
- }
82
- }
83
- }
84
- });
85
- });
86
- describe('Phase 5B & 5C & 5G: Clean-Machine Installation & Isolation Acceptance', () => {
87
- const registry = discovery_1.OrganRegistry.discover([
88
- node_path_1.default.resolve(repoRoot, 'packages/organs'),
89
- node_path_1.default.resolve(repoRoot, 'packages')
90
- ]);
91
- const brain = registry.get('brain');
92
- const hands = registry.get('hands');
93
- const memory = registry.get('memory');
94
- test('Clean Composition 1: Brain only instance installs, starts, runs doctor and db push', () => {
95
- const instanceDir = node_path_1.default.join(cleanMachineRoot, 'inst-brain-only');
96
- node_fs_1.default.mkdirSync(node_path_1.default.join(instanceDir, 'src'), { recursive: true });
97
- const files = (0, generator_1.generateInstanceFiles)({
98
- name: 'CleanBrainOnly',
99
- selectedManifests: [brain],
100
- });
101
- const pkgObj = JSON.parse(files['package.json']);
102
- pkgObj.dependencies = {
103
- '@siduri-x/core': `file:${getTarPath('@siduri-x/core')}`,
104
- '@siduri-x/brain': `file:${getTarPath('@siduri-x/brain')}`,
105
- };
106
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, 'package.json'), JSON.stringify(pkgObj, null, 2) + '\n');
107
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, 'siduri.config.json'), files['siduri.config.json']);
108
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, 'siduri.schema.json'), files['siduri.schema.json']);
109
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, '.env.example'), files['.env.example']);
110
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, 'README.md'), files['README.md']);
111
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, 'src/index.js'), files['src/index.js']);
112
- (0, node_child_process_1.execSync)('npm install --no-audit --no-fund', { cwd: instanceDir, stdio: 'pipe' });
113
- expect(node_fs_1.default.existsSync(node_path_1.default.join(instanceDir, 'node_modules/@siduri-x/memory'))).toBe(false);
114
- expect(node_fs_1.default.existsSync(node_path_1.default.join(instanceDir, 'node_modules/@siduri-x/hands'))).toBe(false);
115
- const doctorPass = (0, node_child_process_1.execSync)(`node ${node_path_1.default.resolve(repoRoot, 'cli/dist/index.js')} doctor`, {
116
- cwd: instanceDir,
117
- env: { ...process.env, OPENROUTER_API_KEY: 'test-key-clean' },
118
- encoding: 'utf8',
119
- });
120
- expect(doctorPass).toContain('Result: PASS');
121
- const dbPushOutput = (0, node_child_process_1.execSync)(`node ${node_path_1.default.resolve(repoRoot, 'cli/dist/index.js')} db push`, {
122
- cwd: instanceDir,
123
- encoding: 'utf8',
124
- });
125
- expect(dbPushOutput).toContain('SQLite manages schema natively. No CLI migrations required.');
126
- }, 60000);
127
- test('Clean Composition 2: Brain + Hands installs and runs doctor verifying ACTION_POLICY_SECRET', () => {
128
- const instanceDir = node_path_1.default.join(cleanMachineRoot, 'inst-brain-hands');
129
- node_fs_1.default.mkdirSync(node_path_1.default.join(instanceDir, 'src'), { recursive: true });
130
- const files = (0, generator_1.generateInstanceFiles)({
131
- name: 'CleanBrainHands',
132
- selectedManifests: [brain, hands],
133
- });
134
- const pkgObj = JSON.parse(files['package.json']);
135
- pkgObj.dependencies = {
136
- '@siduri-x/core': `file:${getTarPath('@siduri-x/core')}`,
137
- '@siduri-x/brain': `file:${getTarPath('@siduri-x/brain')}`,
138
- '@siduri-x/hands': `file:${getTarPath('@siduri-x/hands')}`,
139
- };
140
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, 'package.json'), JSON.stringify(pkgObj, null, 2) + '\n');
141
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, 'siduri.config.json'), files['siduri.config.json']);
142
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, 'siduri.schema.json'), files['siduri.schema.json']);
143
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, '.env.example'), files['.env.example']);
144
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, 'README.md'), files['README.md']);
145
- node_fs_1.default.writeFileSync(node_path_1.default.join(instanceDir, 'src/index.js'), files['src/index.js']);
146
- (0, node_child_process_1.execSync)('npm install --no-audit --no-fund', { cwd: instanceDir, stdio: 'pipe' });
147
- const doctorOutput = (0, node_child_process_1.execSync)(`node ${node_path_1.default.resolve(repoRoot, 'cli/dist/index.js')} doctor`, {
148
- cwd: instanceDir,
149
- env: {
150
- ...process.env,
151
- OPENROUTER_API_KEY: 'test-key-clean',
152
- ACTION_POLICY_SECRET: 'test-secret-clean',
153
- },
154
- encoding: 'utf8',
155
- });
156
- expect(doctorOutput).toContain('ACTION_POLICY_SECRET');
157
- expect(doctorOutput).toContain('Result: PASS');
158
- }, 60000);
159
- });
160
- });
@@ -1,5 +0,0 @@
1
- /**
2
- * @deprecated RFC VX-26-13: Deconstructing Memory into Sovereign Primitives.
3
- * Use ./archive instead.
4
- */
5
- export * from './archive';
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- /**
18
- * @deprecated RFC VX-26-13: Deconstructing Memory into Sovereign Primitives.
19
- * Use ./archive instead.
20
- */
21
- __exportStar(require("./archive"), exports);