@vxnus/siduri 0.1.6 → 0.1.8

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 (98) hide show
  1. package/package.json +1 -1
  2. package/dist/builtin-manifests.d.ts +0 -2
  3. package/dist/builtin-manifests.js +0 -464
  4. package/dist/clean-machine-e2e.test.d.ts +0 -1
  5. package/dist/clean-machine-e2e.test.js +0 -230
  6. package/dist/configurators/behavior.d.ts +0 -2
  7. package/dist/configurators/behavior.js +0 -36
  8. package/dist/configurators/body.d.ts +0 -2
  9. package/dist/configurators/body.js +0 -60
  10. package/dist/configurators/brain.d.ts +0 -6
  11. package/dist/configurators/brain.js +0 -80
  12. package/dist/configurators/ear.d.ts +0 -2
  13. package/dist/configurators/ear.js +0 -28
  14. package/dist/configurators/hands.d.ts +0 -2
  15. package/dist/configurators/hands.js +0 -27
  16. package/dist/configurators/index.d.ts +0 -23
  17. package/dist/configurators/index.js +0 -74
  18. package/dist/configurators/knowledge.d.ts +0 -6
  19. package/dist/configurators/knowledge.js +0 -100
  20. package/dist/configurators/memory.d.ts +0 -2
  21. package/dist/configurators/memory.js +0 -44
  22. package/dist/configurators/observation.d.ts +0 -2
  23. package/dist/configurators/observation.js +0 -12
  24. package/dist/configurators/types.d.ts +0 -12
  25. package/dist/configurators/types.js +0 -2
  26. package/dist/configurators/vision.d.ts +0 -2
  27. package/dist/configurators/vision.js +0 -39
  28. package/dist/configurators/voice.d.ts +0 -2
  29. package/dist/configurators/voice.js +0 -363
  30. package/dist/configurators.test.d.ts +0 -1
  31. package/dist/configurators.test.js +0 -299
  32. package/dist/db.d.ts +0 -25
  33. package/dist/db.js +0 -152
  34. package/dist/discovery.d.ts +0 -13
  35. package/dist/discovery.js +0 -87
  36. package/dist/discovery.test.d.ts +0 -1
  37. package/dist/discovery.test.js +0 -67
  38. package/dist/doctor-db.test.d.ts +0 -1
  39. package/dist/doctor-db.test.js +0 -141
  40. package/dist/doctor.d.ts +0 -19
  41. package/dist/doctor.js +0 -225
  42. package/dist/generator.d.ts +0 -21
  43. package/dist/generator.js +0 -542
  44. package/dist/generator.test.d.ts +0 -1
  45. package/dist/generator.test.js +0 -197
  46. package/dist/index.d.ts +0 -20
  47. package/dist/index.js +0 -401
  48. package/dist/manifest.d.ts +0 -33
  49. package/dist/manifest.js +0 -40
  50. package/dist/providers/knowledge-hub.d.ts +0 -37
  51. package/dist/providers/knowledge-hub.js +0 -141
  52. package/dist/providers/openrouter.d.ts +0 -32
  53. package/dist/providers/openrouter.js +0 -201
  54. package/dist/release-check.d.ts +0 -9
  55. package/dist/release-check.js +0 -131
  56. package/dist/runtime-parity.test.d.ts +0 -1
  57. package/dist/runtime-parity.test.js +0 -140
  58. package/dist/web-dist/404/index.html +0 -1
  59. package/dist/web-dist/404.html +0 -1
  60. package/dist/web-dist/__next.__PAGE__.txt +0 -34
  61. package/dist/web-dist/__next._full.txt +0 -31
  62. package/dist/web-dist/__next._tree.txt +0 -3
  63. package/dist/web-dist/_next/static/D38KTbM_PIeZqLpHvixAH/_buildManifest.js +0 -11
  64. package/dist/web-dist/_next/static/D38KTbM_PIeZqLpHvixAH/_clientMiddlewareManifest.js +0 -1
  65. package/dist/web-dist/_next/static/D38KTbM_PIeZqLpHvixAH/_ssgManifest.js +0 -1
  66. package/dist/web-dist/_next/static/chunks/0cz1d0mv5g_q7.js +0 -1
  67. package/dist/web-dist/_next/static/chunks/0uwih7sydv413.js +0 -1
  68. package/dist/web-dist/_next/static/chunks/10rmct1ax-opq.js +0 -1
  69. package/dist/web-dist/_next/static/chunks/1_yae15ffa5f6.js +0 -1
  70. package/dist/web-dist/_next/static/chunks/1eusi7dzngpy3.js +0 -30
  71. package/dist/web-dist/_next/static/chunks/2kcqevsmv6kh2.js +0 -31
  72. package/dist/web-dist/_next/static/chunks/2s3d1bfr0l4b0.js +0 -1
  73. package/dist/web-dist/_next/static/chunks/2vh8hinyh9xfg.css +0 -1
  74. package/dist/web-dist/_next/static/chunks/32z87id9k6i2z.js +0 -22
  75. package/dist/web-dist/_next/static/chunks/3bx2gs3idjmo1.js +0 -1
  76. package/dist/web-dist/_next/static/chunks/turbopack-3eipe4c-imn5l.js +0 -1
  77. package/dist/web-dist/_next/static/media/favicon.2vob68tjqpejf.ico +0 -0
  78. package/dist/web-dist/_not-found/__next._full.txt +0 -17
  79. package/dist/web-dist/_not-found/__next._not-found.__PAGE__.txt +0 -23
  80. package/dist/web-dist/_not-found/__next._tree.txt +0 -3
  81. package/dist/web-dist/_not-found/index.html +0 -1
  82. package/dist/web-dist/_not-found/index.txt +0 -17
  83. package/dist/web-dist/chat/__next._full.txt +0 -18
  84. package/dist/web-dist/chat/__next._tree.txt +0 -3
  85. package/dist/web-dist/chat/__next.chat.__PAGE__.txt +0 -24
  86. package/dist/web-dist/chat/index.html +0 -1
  87. package/dist/web-dist/chat/index.txt +0 -18
  88. package/dist/web-dist/favicon.ico +0 -0
  89. package/dist/web-dist/index.html +0 -1
  90. package/dist/web-dist/index.txt +0 -31
  91. package/dist/web-dist/live2d/live2dcubismcore.min.js +0 -9
  92. package/dist/web-dist/operator/__next._full.txt +0 -18
  93. package/dist/web-dist/operator/__next._tree.txt +0 -3
  94. package/dist/web-dist/operator/__next.operator.__PAGE__.txt +0 -24
  95. package/dist/web-dist/operator/index.html +0 -1
  96. package/dist/web-dist/operator/index.txt +0 -18
  97. package/dist/web-template.d.ts +0 -2
  98. package/dist/web-template.js +0 -556
@@ -1,141 +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 doctor_1 = require("./doctor");
9
- const db_1 = require("./db");
10
- const generator_1 = require("./generator");
11
- const discovery_1 = require("./discovery");
12
- describe('Phase 4: Diagnostics and Database Provisioning Tests', () => {
13
- const rootOrgansDir = node_path_1.default.resolve(__dirname, '../../packages/organs');
14
- const registry = discovery_1.OrganRegistry.discover([rootOrgansDir]);
15
- const brain = registry.get('brain');
16
- const hands = registry.get('hands');
17
- const memory = registry.get('memory');
18
- const testTempRoot = node_path_1.default.resolve(__dirname, '../temp-phase4-test');
19
- beforeAll(() => {
20
- if (node_fs_1.default.existsSync(testTempRoot)) {
21
- node_fs_1.default.rmSync(testTempRoot, { recursive: true, force: true });
22
- }
23
- node_fs_1.default.mkdirSync(testTempRoot, { recursive: true });
24
- });
25
- afterAll(() => {
26
- if (node_fs_1.default.existsSync(testTempRoot)) {
27
- node_fs_1.default.rmSync(testTempRoot, { recursive: true, force: true });
28
- }
29
- });
30
- test('redactDatabaseUrl redacts password and sensitive credentials', () => {
31
- const raw = 'postgresql://myuser:supersecretpassword@db.example.com:5432/siduri_db';
32
- const redacted = (0, db_1.redactDatabaseUrl)(raw);
33
- expect(redacted).not.toContain('supersecretpassword');
34
- expect(redacted).toContain('***');
35
- expect(redacted).toContain('myuser');
36
- expect(redacted).toContain('db.example.com:5432/siduri_db');
37
- });
38
- test('Test Matrix A: Brain only instance doctor and db push', async () => {
39
- const instanceDir = node_path_1.default.join(testTempRoot, 'brain-only');
40
- node_fs_1.default.mkdirSync(node_path_1.default.join(instanceDir, 'src'), { recursive: true });
41
- const files = (0, generator_1.generateInstanceFiles)({
42
- name: 'BrainOnlyInstance',
43
- selectedManifests: [brain],
44
- });
45
- for (const [name, content] of Object.entries(files)) {
46
- if (typeof content === 'string') {
47
- const fullPath = node_path_1.default.join(instanceDir, name);
48
- node_fs_1.default.mkdirSync(node_path_1.default.dirname(fullPath), { recursive: true });
49
- node_fs_1.default.writeFileSync(fullPath, content);
50
- }
51
- }
52
- // 1. Doctor without OPENROUTER_API_KEY -> FAIL (Brain Health Probe fails)
53
- const doctorFail = await (0, doctor_1.runDoctor)({ projectDir: instanceDir, env: { OPENROUTER_API_KEY: '' } });
54
- expect(doctorFail.passed).toBe(false);
55
- expect(doctorFail.results.some((r) => r.category === 'Health Probe' && r.status === 'FAIL')).toBe(true);
56
- // Database check must be SKIPPED
57
- expect(doctorFail.results.some((r) => r.category === 'Database' && r.status === 'SKIPPED')).toBe(true);
58
- // 2. Doctor with OPENROUTER_API_KEY -> PASS
59
- const doctorPass = await (0, doctor_1.runDoctor)({
60
- projectDir: instanceDir,
61
- env: { OPENROUTER_API_KEY: 'test-key-123' },
62
- });
63
- expect(doctorPass.passed).toBe(true);
64
- // 3. db push -> NOOP ("No database migrations are required...")
65
- const dbResult = await (0, db_1.runDbPush)({ projectDir: instanceDir });
66
- expect(dbResult.status).toBe('NOOP');
67
- expect(dbResult.message).toContain('No database migrations are required');
68
- });
69
- test('Test Matrix B: Brain + Hands instance doctor and db push', async () => {
70
- const instanceDir = node_path_1.default.join(testTempRoot, 'brain-hands');
71
- node_fs_1.default.mkdirSync(node_path_1.default.join(instanceDir, 'src'), { recursive: true });
72
- const files = (0, generator_1.generateInstanceFiles)({
73
- name: 'BrainHandsInstance',
74
- selectedManifests: [brain, hands],
75
- });
76
- for (const [name, content] of Object.entries(files)) {
77
- if (typeof content === 'string') {
78
- const fullPath = node_path_1.default.join(instanceDir, name);
79
- node_fs_1.default.mkdirSync(node_path_1.default.dirname(fullPath), { recursive: true });
80
- node_fs_1.default.writeFileSync(fullPath, content);
81
- }
82
- }
83
- // Doctor checks both keys
84
- const doctorRes = await (0, doctor_1.runDoctor)({
85
- projectDir: instanceDir,
86
- env: {
87
- OPENROUTER_API_KEY: 'test-openrouter-key',
88
- ACTION_POLICY_SECRET: 'test-policy-secret',
89
- },
90
- });
91
- expect(doctorRes.passed).toBe(true);
92
- expect(doctorRes.results.some((r) => r.name === 'OPENROUTER_API_KEY' && r.status === 'PASS')).toBe(true);
93
- expect(doctorRes.results.some((r) => r.name === 'ACTION_POLICY_SECRET' && r.status === 'PASS')).toBe(true);
94
- // Database check must be SKIPPED
95
- expect(doctorRes.results.some((r) => r.category === 'Database' && r.status === 'SKIPPED')).toBe(true);
96
- // db push returns NOOP
97
- const dbResult = await (0, db_1.runDbPush)({ projectDir: instanceDir });
98
- expect(dbResult.status).toBe('NOOP');
99
- });
100
- test('Test Matrix C: Brain + Memory instance requires DATABASE_URL', async () => {
101
- const instanceDir = node_path_1.default.join(testTempRoot, 'brain-memory');
102
- node_fs_1.default.mkdirSync(node_path_1.default.join(instanceDir, 'src'), { recursive: true });
103
- const files = (0, generator_1.generateInstanceFiles)({
104
- name: 'BrainMemoryInstance',
105
- selectedManifests: [brain, memory],
106
- });
107
- for (const [name, content] of Object.entries(files)) {
108
- if (typeof content === 'string') {
109
- const fullPath = node_path_1.default.join(instanceDir, name);
110
- node_fs_1.default.mkdirSync(node_path_1.default.dirname(fullPath), { recursive: true });
111
- node_fs_1.default.writeFileSync(fullPath, content);
112
- }
113
- }
114
- // 1. Doctor fails without DATABASE_URL
115
- const doctorMissingDb = await (0, doctor_1.runDoctor)({
116
- projectDir: instanceDir,
117
- env: { OPENROUTER_API_KEY: 'test-key' },
118
- });
119
- expect(doctorMissingDb.passed).toBe(false);
120
- expect(doctorMissingDb.results.some((r) => r.name === 'DATABASE_URL' && r.status === 'FAIL')).toBe(true);
121
- // 2. db push fails clearly without DATABASE_URL
122
- await expect((0, db_1.runDbPush)({ projectDir: instanceDir, env: {} })).rejects.toThrow(/DATABASE_URL is required/);
123
- });
124
- test('Test Matrix D: Diagnostics and Error Handling for invalid or missing configs', async () => {
125
- // 1. Missing siduri.config.json
126
- const nonExistentDir = node_path_1.default.join(testTempRoot, 'non-existent-dir');
127
- await expect((0, doctor_1.runDoctor)({ projectDir: nonExistentDir })).rejects.toThrow(/siduri.config.json not found/);
128
- await expect((0, db_1.runDbPush)({ projectDir: nonExistentDir })).rejects.toThrow(/siduri.config.json not found/);
129
- // 2. Unreachable PostgreSQL host reported gracefully by doctor
130
- const instDir = node_path_1.default.join(testTempRoot, 'brain-memory');
131
- const doctorUnreachable = await (0, doctor_1.runDoctor)({
132
- projectDir: instDir,
133
- env: {
134
- OPENROUTER_API_KEY: 'test-key',
135
- DATABASE_URL: 'postgresql://postgres:postgres@127.0.0.1:59999/non_existent_db',
136
- },
137
- });
138
- expect(doctorUnreachable.passed).toBe(false);
139
- expect(doctorUnreachable.results.some((r) => r.category === 'Database' && r.status === 'FAIL')).toBe(true);
140
- });
141
- });
package/dist/doctor.d.ts DELETED
@@ -1,19 +0,0 @@
1
- export interface DoctorCheckResult {
2
- category: 'Environment' | 'Services' | 'Database' | 'Health Probe';
3
- name: string;
4
- status: 'PASS' | 'FAIL' | 'OPTIONAL_MISSING' | 'SKIPPED';
5
- organName?: string;
6
- message?: string;
7
- remediation?: string;
8
- }
9
- export interface DoctorReport {
10
- instanceName: string;
11
- configuredOrgans: string[];
12
- results: DoctorCheckResult[];
13
- passed: boolean;
14
- }
15
- export interface DoctorOptions {
16
- projectDir?: string;
17
- env?: Record<string, string | undefined>;
18
- }
19
- export declare function runDoctor(options?: DoctorOptions): Promise<DoctorReport>;
package/dist/doctor.js DELETED
@@ -1,225 +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
- exports.runDoctor = runDoctor;
7
- const node_fs_1 = __importDefault(require("node:fs"));
8
- const node_path_1 = __importDefault(require("node:path"));
9
- const discovery_1 = require("./discovery");
10
- const pg_1 = require("pg");
11
- async function runDoctor(options = {}) {
12
- const projectDir = options.projectDir ? node_path_1.default.resolve(options.projectDir) : process.cwd();
13
- const configPath = node_path_1.default.join(projectDir, 'siduri.config.json');
14
- if (!node_fs_1.default.existsSync(configPath)) {
15
- throw new Error(`siduri.config.json not found at ${projectDir}. Make sure you are in a Siduri instance directory.`);
16
- }
17
- // Load .env if present in projectDir
18
- const envFile = node_path_1.default.join(projectDir, '.env');
19
- const fileEnv = {};
20
- if (node_fs_1.default.existsSync(envFile)) {
21
- const lines = node_fs_1.default.readFileSync(envFile, 'utf8').split('\n');
22
- for (const line of lines) {
23
- const trimmed = line.trim();
24
- if (!trimmed || trimmed.startsWith('#'))
25
- continue;
26
- const eqIdx = trimmed.indexOf('=');
27
- if (eqIdx !== -1) {
28
- const key = trimmed.slice(0, eqIdx).trim();
29
- const val = trimmed.slice(eqIdx + 1).trim();
30
- fileEnv[key] = val;
31
- }
32
- }
33
- }
34
- const effectiveEnv = {
35
- ...process.env,
36
- ...fileEnv,
37
- ...(options.env || {}),
38
- };
39
- const config = JSON.parse(node_fs_1.default.readFileSync(configPath, 'utf8'));
40
- const configuredOrgansMap = config.organs || {};
41
- const organKeys = Object.keys(configuredOrgansMap);
42
- const registry = discovery_1.OrganRegistry.discover([
43
- node_path_1.default.join(projectDir, 'node_modules/@siduri-x'),
44
- node_path_1.default.resolve(__dirname, '../../packages/organs'),
45
- node_path_1.default.resolve(process.cwd(), 'packages/organs'),
46
- ]);
47
- const selectedManifests = [];
48
- const results = [];
49
- // 1. Resolve manifests for selected organs
50
- for (const organKey of organKeys) {
51
- const m = registry.get(organKey) || registry.getAll().find((item) => item.configKey === organKey || item.organType === organKey);
52
- if (!m) {
53
- results.push({
54
- category: 'Environment',
55
- name: `Manifest resolution: ${organKey}`,
56
- status: 'FAIL',
57
- message: `Could not resolve package manifest for configured organ '${organKey}'.`,
58
- remediation: `Ensure @siduri-x/${organKey} is installed in package.json and npm install has been run.`,
59
- });
60
- }
61
- else {
62
- selectedManifests.push(m);
63
- }
64
- }
65
- // 2. Check Environment Variables (deduplicated)
66
- const checkedEnvVars = new Set();
67
- for (const m of selectedManifests) {
68
- for (const envVar of m.environment || []) {
69
- if (checkedEnvVars.has(envVar.name))
70
- continue;
71
- checkedEnvVars.add(envVar.name);
72
- const val = effectiveEnv[envVar.name];
73
- const isMissing = !val || val.trim() === '';
74
- if (isMissing) {
75
- if (envVar.required) {
76
- results.push({
77
- category: 'Environment',
78
- name: envVar.name,
79
- status: 'FAIL',
80
- organName: m.name,
81
- message: `Missing required environment variable '${envVar.name}'.`,
82
- remediation: `Set ${envVar.name} in .env or your shell environment. ${envVar.description || ''}`,
83
- });
84
- }
85
- else {
86
- results.push({
87
- category: 'Environment',
88
- name: envVar.name,
89
- status: 'OPTIONAL_MISSING',
90
- organName: m.name,
91
- message: `Optional variable '${envVar.name}' not set.`,
92
- });
93
- }
94
- }
95
- else {
96
- results.push({
97
- category: 'Environment',
98
- name: envVar.name,
99
- status: 'PASS',
100
- organName: m.name,
101
- message: 'Configured',
102
- });
103
- }
104
- }
105
- }
106
- // 3. Check External Services
107
- for (const m of selectedManifests) {
108
- for (const service of m.services || []) {
109
- results.push({
110
- category: 'Services',
111
- name: `${service.name} (${m.organType})`,
112
- status: 'PASS',
113
- organName: m.name,
114
- message: 'Service requirement declared',
115
- });
116
- }
117
- }
118
- // 4. Database Check (only if an organ declares database requirement)
119
- const dbOrgan = selectedManifests.find((m) => m.database !== null && m.database !== undefined);
120
- if (dbOrgan) {
121
- const dbUrl = effectiveEnv.DATABASE_URL;
122
- if (!dbUrl) {
123
- results.push({
124
- category: 'Database',
125
- name: 'PostgreSQL Connection',
126
- status: 'FAIL',
127
- organName: dbOrgan.name,
128
- message: 'DATABASE_URL is not configured.',
129
- remediation: 'Provide DATABASE_URL in .env (e.g. postgresql://postgres:postgres@localhost:5432/siduri)',
130
- });
131
- }
132
- else {
133
- const pool = new pg_1.Pool({ connectionString: dbUrl, connectionTimeoutMillis: 3000 });
134
- try {
135
- const client = await pool.connect();
136
- await client.query('SELECT 1');
137
- client.release();
138
- await pool.end();
139
- results.push({
140
- category: 'Database',
141
- name: 'PostgreSQL Connection',
142
- status: 'PASS',
143
- organName: dbOrgan.name,
144
- message: 'Connection successful',
145
- });
146
- }
147
- catch (err) {
148
- await pool.end().catch(() => { });
149
- results.push({
150
- category: 'Database',
151
- name: 'PostgreSQL Connection',
152
- status: 'FAIL',
153
- organName: dbOrgan.name,
154
- message: `Connection failed: ${err.message}`,
155
- remediation: 'Check database host availability, port, credentials, and network accessibility.',
156
- });
157
- }
158
- }
159
- }
160
- else {
161
- results.push({
162
- category: 'Database',
163
- name: 'PostgreSQL Database',
164
- status: 'SKIPPED',
165
- message: 'Not required by current composition',
166
- });
167
- }
168
- // 5. Organ Health Probes
169
- for (const m of selectedManifests) {
170
- if (m.healthCheck) {
171
- try {
172
- // Resolve package entrypoint
173
- const candidateEntrypoints = [
174
- node_path_1.default.resolve(projectDir, 'node_modules', m.name, m.entrypoint),
175
- node_path_1.default.resolve(__dirname, '../../packages/organs', m.organType, m.entrypoint),
176
- node_path_1.default.resolve(process.cwd(), 'packages/organs', m.organType, m.entrypoint),
177
- ];
178
- const entryPath = candidateEntrypoints.find((p) => node_fs_1.default.existsSync(p));
179
- if (entryPath) {
180
- const mod = require(entryPath);
181
- const probeFn = mod[m.healthCheck];
182
- if (typeof probeFn === 'function') {
183
- const organConf = configuredOrgansMap[m.configKey] || configuredOrgansMap[m.organType];
184
- const probeRes = await probeFn({ config: organConf, env: effectiveEnv });
185
- if (probeRes && probeRes.ok === false) {
186
- results.push({
187
- category: 'Health Probe',
188
- name: `${m.displayName} Probe`,
189
- status: 'FAIL',
190
- organName: m.name,
191
- message: probeRes.message || 'Health probe check failed',
192
- remediation: `Check ${m.displayName} configuration in siduri.config.json.`,
193
- });
194
- }
195
- else {
196
- results.push({
197
- category: 'Health Probe',
198
- name: `${m.displayName} Probe`,
199
- status: 'PASS',
200
- organName: m.name,
201
- message: probeRes?.message || 'Operational',
202
- });
203
- }
204
- }
205
- }
206
- }
207
- catch (err) {
208
- results.push({
209
- category: 'Health Probe',
210
- name: `${m.displayName} Probe`,
211
- status: 'FAIL',
212
- organName: m.name,
213
- message: `Probe invocation failed: ${err.message}`,
214
- });
215
- }
216
- }
217
- }
218
- const passed = results.every((r) => r.status !== 'FAIL');
219
- return {
220
- instanceName: config.name || 'Siduri Instance',
221
- configuredOrgans: organKeys,
222
- results,
223
- passed,
224
- };
225
- }
@@ -1,21 +0,0 @@
1
- import { OrganManifest } from './manifest';
2
- export interface GeneratedInstanceFiles {
3
- 'package.json': string;
4
- 'siduri.config.json': string;
5
- 'siduri.schema.json': string;
6
- '.env.example': string;
7
- 'README.md': string;
8
- 'src/index.js': string;
9
- 'public/index.html': string;
10
- 'docker-compose.yml'?: string;
11
- createAssetsBodyDir?: boolean;
12
- createAssetsDirs?: string[];
13
- }
14
- export interface InstanceGeneratorOptions {
15
- name: string;
16
- id?: string;
17
- selectedManifests: OrganManifest[];
18
- organConfigs?: Record<string, any>;
19
- coreVersion?: string;
20
- }
21
- export declare function generateInstanceFiles(options: InstanceGeneratorOptions): GeneratedInstanceFiles;