@vxnus/siduri 0.1.8 → 0.1.11
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 +3 -4
- package/dist/builtin-manifests.d.ts +2 -0
- package/dist/builtin-manifests.js +492 -0
- package/dist/clean-machine-e2e.test.d.ts +1 -0
- package/dist/clean-machine-e2e.test.js +236 -0
- package/dist/configurators/behavior.d.ts +2 -0
- package/dist/configurators/behavior.js +36 -0
- package/dist/configurators/body.d.ts +2 -0
- package/dist/configurators/body.js +60 -0
- package/dist/configurators/brain.d.ts +6 -0
- package/dist/configurators/brain.js +80 -0
- package/dist/configurators/ear.d.ts +2 -0
- package/dist/configurators/ear.js +28 -0
- package/dist/configurators/hands.d.ts +2 -0
- package/dist/configurators/hands.js +27 -0
- package/dist/configurators/index.d.ts +24 -0
- package/dist/configurators/index.js +78 -0
- package/dist/configurators/knowledge.d.ts +6 -0
- package/dist/configurators/knowledge.js +100 -0
- package/dist/configurators/memory.d.ts +2 -0
- package/dist/configurators/memory.js +44 -0
- package/dist/configurators/mouth.d.ts +2 -0
- package/dist/configurators/mouth.js +15 -0
- package/dist/configurators/observation.d.ts +2 -0
- package/dist/configurators/observation.js +12 -0
- package/dist/configurators/types.d.ts +12 -0
- package/dist/configurators/types.js +2 -0
- package/dist/configurators/vision.d.ts +2 -0
- package/dist/configurators/vision.js +39 -0
- package/dist/configurators/voice.d.ts +2 -0
- package/dist/configurators/voice.js +477 -0
- package/dist/configurators.test.d.ts +1 -0
- package/dist/configurators.test.js +331 -0
- package/dist/db.d.ts +25 -0
- package/dist/db.js +152 -0
- package/dist/discovery.d.ts +13 -0
- package/dist/discovery.js +87 -0
- package/dist/discovery.test.d.ts +1 -0
- package/dist/discovery.test.js +69 -0
- package/dist/doctor-db.test.d.ts +1 -0
- package/dist/doctor-db.test.js +141 -0
- package/dist/doctor.d.ts +19 -0
- package/dist/doctor.js +249 -0
- package/dist/generator.d.ts +20 -0
- package/dist/generator.js +615 -0
- package/dist/generator.test.d.ts +1 -0
- package/dist/generator.test.js +197 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +395 -0
- package/dist/manifest.d.ts +33 -0
- package/dist/manifest.js +40 -0
- package/dist/providers/knowledge-hub.d.ts +37 -0
- package/dist/providers/knowledge-hub.js +141 -0
- package/dist/providers/openrouter.d.ts +32 -0
- package/dist/providers/openrouter.js +201 -0
- package/dist/release-check.d.ts +9 -0
- package/dist/release-check.js +133 -0
- package/dist/runtime-parity.test.d.ts +1 -0
- package/dist/runtime-parity.test.js +141 -0
- package/dist/schema-validator.d.ts +9 -0
- package/dist/schema-validator.js +107 -0
- package/dist/web-dist/404/index.html +1 -0
- package/dist/web-dist/404.html +1 -0
- package/dist/web-dist/__next.__PAGE__.txt +35 -0
- package/dist/web-dist/__next._full.txt +32 -0
- package/dist/web-dist/__next._tree.txt +4 -0
- package/dist/web-dist/_next/static/chunks/09y7khbmco_v4.js +1 -0
- package/dist/web-dist/_next/static/chunks/0cz1d0mv5g_q7.js +1 -0
- package/dist/web-dist/_next/static/chunks/0uwih7sydv413.js +1 -0
- package/dist/web-dist/_next/static/chunks/0xhe1hasjan-9.css +1 -0
- package/dist/web-dist/_next/static/chunks/1_yae15ffa5f6.js +1 -0
- package/dist/web-dist/_next/static/chunks/2_duynll0m51m.js +30 -0
- package/dist/web-dist/_next/static/chunks/2kcqevsmv6kh2.js +31 -0
- package/dist/web-dist/_next/static/chunks/2s3d1bfr0l4b0.js +1 -0
- package/dist/web-dist/_next/static/chunks/32z87id9k6i2z.js +22 -0
- package/dist/web-dist/_next/static/chunks/3bx2gs3idjmo1.js +1 -0
- package/dist/web-dist/_next/static/chunks/turbopack-3eipe4c-imn5l.js +1 -0
- package/dist/web-dist/_next/static/media/apple-icon.2g7-yefdphkmy.png +0 -0
- package/dist/web-dist/_next/static/media/favicon.3rlors1ui1gw9.ico +0 -0
- package/dist/web-dist/_next/static/media/icon.0580nb9h-ugue.svg +4 -0
- package/dist/web-dist/_next/static/pWHUixFDDvANZeAf-shqT/_buildManifest.js +11 -0
- package/dist/web-dist/_next/static/pWHUixFDDvANZeAf-shqT/_clientMiddlewareManifest.js +1 -0
- package/dist/web-dist/_next/static/pWHUixFDDvANZeAf-shqT/_ssgManifest.js +1 -0
- package/dist/web-dist/_not-found/__next._full.txt +17 -0
- package/dist/web-dist/_not-found/__next._not-found.__PAGE__.txt +23 -0
- package/dist/web-dist/_not-found/__next._tree.txt +3 -0
- package/dist/web-dist/_not-found/index.html +1 -0
- package/dist/web-dist/_not-found/index.txt +17 -0
- package/dist/web-dist/apple-icon.png +0 -0
- package/dist/web-dist/apple-touch-icon.png +0 -0
- package/dist/web-dist/chat/__next._full.txt +18 -0
- package/dist/web-dist/chat/__next._tree.txt +3 -0
- package/dist/web-dist/chat/__next.chat.__PAGE__.txt +24 -0
- package/dist/web-dist/chat/index.html +1 -0
- package/dist/web-dist/chat/index.txt +18 -0
- package/dist/web-dist/favicon.ico +0 -0
- package/dist/web-dist/favicon.svg +4 -0
- package/dist/web-dist/icon.svg +4 -0
- package/dist/web-dist/index.html +1 -0
- package/dist/web-dist/index.txt +32 -0
- package/dist/web-dist/live2d/live2dcubismcore.min.js +9 -0
- package/dist/web-dist/logo-circle.png +0 -0
- package/dist/web-dist/logo-circle.svg +4 -0
- package/dist/web-dist/logo-white.svg +3 -0
- package/dist/web-dist/logo.png +0 -0
- package/dist/web-dist/logo.svg +3 -0
- package/dist/web-dist/operator/__next._full.txt +18 -0
- package/dist/web-dist/operator/__next._tree.txt +3 -0
- package/dist/web-dist/operator/__next.operator.__PAGE__.txt +24 -0
- package/dist/web-dist/operator/index.html +1 -0
- package/dist/web-dist/operator/index.txt +18 -0
- package/dist/web-template.d.ts +2 -0
- package/dist/web-template.js +557 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,15 +13,15 @@ npx @vxnus/siduri create my-companion
|
|
|
13
13
|
- **Node.js**: `v20.0.0` or newer
|
|
14
14
|
- **LLM API Key**: e.g. `OPENROUTER_API_KEY` for Brain organ
|
|
15
15
|
- **Optional Local Services**:
|
|
16
|
-
- **
|
|
17
|
-
-
|
|
16
|
+
- **PostgreSQL**: Required if PostgreSQL memory organ is enabled (local PostgreSQL server or cloud Supabase/Neon).
|
|
17
|
+
- **VOICEVOX**: For voice synthesis (auto-downloaded at runtime by default, or connect to standalone app).
|
|
18
18
|
|
|
19
19
|
## Features
|
|
20
20
|
|
|
21
21
|
- **Manifest-Driven Organ Discovery**: Dynamically discovers installed `@siduri-x/*` organs and generates custom, standalone ESM instance code.
|
|
22
22
|
- **Interactive Configuration Wizard**: Model catalog discovery for OpenRouter, manifest inspection for E Knowledge Hub, and guided organ parameters.
|
|
23
23
|
- **Zero Monolithic Bundling**: Scaffolds standard Node.js ESM projects with explicit dependency trees.
|
|
24
|
-
- **Diagnostics (`siduri doctor`)**: Runs environment variable validation, external service checks, database health probes, and organ-specific assertions.
|
|
24
|
+
- **Diagnostics (`siduri doctor`)**: Runs environment variable validation, schema conformance checks, external service checks, database health probes, and organ-specific assertions.
|
|
25
25
|
- **Database Migrations (`siduri db push`)**: Inspects database-owning organs (such as `@siduri-x/memory`) and executes SQL migrations with SHA-256 integrity checksums.
|
|
26
26
|
|
|
27
27
|
## CLI Usage
|
|
@@ -41,7 +41,6 @@ my-companion/
|
|
|
41
41
|
├── siduri.schema.json # Composed JSON Schema from organ manifests
|
|
42
42
|
├── .env.example # Only environment variables required by selected organs
|
|
43
43
|
├── README.md # Instance-specific guide
|
|
44
|
-
├── docker-compose.yml # Scaffolds PostgreSQL / VOICEVOX when selected
|
|
45
44
|
└── src/
|
|
46
45
|
└── index.js # Direct runtime bootstrapping with explicit organ factories
|
|
47
46
|
```
|
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BUILTIN_ORGAN_MANIFESTS = void 0;
|
|
4
|
+
exports.BUILTIN_ORGAN_MANIFESTS = [
|
|
5
|
+
{
|
|
6
|
+
name: '@siduri-x/behavior',
|
|
7
|
+
organType: 'behavior',
|
|
8
|
+
version: '1.0.6',
|
|
9
|
+
displayName: 'Behavior (Active Self Directives)',
|
|
10
|
+
description: 'Atomic directive state machine and personality projection compiler',
|
|
11
|
+
entrypoint: './dist/index.js',
|
|
12
|
+
factory: 'ActiveSelfCompiler',
|
|
13
|
+
configKey: 'behavior',
|
|
14
|
+
configSchema: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
required: ['provider'],
|
|
17
|
+
properties: {
|
|
18
|
+
provider: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
enum: ['active_self', 'none']
|
|
21
|
+
},
|
|
22
|
+
preset: {
|
|
23
|
+
type: 'string'
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
environment: [],
|
|
28
|
+
services: [],
|
|
29
|
+
database: null,
|
|
30
|
+
healthCheck: null
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: '@siduri-x/body',
|
|
34
|
+
organType: 'body',
|
|
35
|
+
version: '1.0.4',
|
|
36
|
+
displayName: 'Body (Live2D & Avatar State)',
|
|
37
|
+
description: 'Renderer-agnostic avatar expression and embodiment event adapter',
|
|
38
|
+
entrypoint: './dist/index.js',
|
|
39
|
+
factory: 'NeutralBodyOrgan',
|
|
40
|
+
configKey: 'body',
|
|
41
|
+
configSchema: {
|
|
42
|
+
type: 'object',
|
|
43
|
+
required: ['provider'],
|
|
44
|
+
properties: {
|
|
45
|
+
provider: {
|
|
46
|
+
type: 'string',
|
|
47
|
+
enum: ['live2d', 'none']
|
|
48
|
+
},
|
|
49
|
+
initialExpression: {
|
|
50
|
+
type: 'string',
|
|
51
|
+
default: 'neutral'
|
|
52
|
+
},
|
|
53
|
+
modelPath: {
|
|
54
|
+
type: 'string'
|
|
55
|
+
},
|
|
56
|
+
modelUrl: {
|
|
57
|
+
type: 'string'
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
environment: [],
|
|
62
|
+
services: [],
|
|
63
|
+
database: null,
|
|
64
|
+
healthCheck: null
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: '@siduri-x/brain',
|
|
68
|
+
organType: 'brain',
|
|
69
|
+
version: '1.0.5',
|
|
70
|
+
displayName: 'Brain (Cognition & Planning)',
|
|
71
|
+
description: 'Provider-neutral LLM reasoning, response planning, and proposal generation',
|
|
72
|
+
entrypoint: './dist/index.js',
|
|
73
|
+
factory: 'OpenRouterBrain',
|
|
74
|
+
configKey: 'brain',
|
|
75
|
+
configSchema: {
|
|
76
|
+
type: 'object',
|
|
77
|
+
required: ['provider', 'model'],
|
|
78
|
+
properties: {
|
|
79
|
+
provider: {
|
|
80
|
+
type: 'string',
|
|
81
|
+
enum: ['openrouter', 'openai-compatible']
|
|
82
|
+
},
|
|
83
|
+
model: {
|
|
84
|
+
type: 'string'
|
|
85
|
+
},
|
|
86
|
+
apiKey: {
|
|
87
|
+
type: 'string'
|
|
88
|
+
},
|
|
89
|
+
apiKeyEnv: {
|
|
90
|
+
type: 'string',
|
|
91
|
+
default: 'OPENROUTER_API_KEY'
|
|
92
|
+
},
|
|
93
|
+
baseUrl: {
|
|
94
|
+
type: 'string'
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
environment: [
|
|
99
|
+
{
|
|
100
|
+
name: 'OPENROUTER_API_KEY',
|
|
101
|
+
required: false,
|
|
102
|
+
secret: true,
|
|
103
|
+
description: 'API key for OpenRouter managed routing'
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: 'OPENAI_COMPATIBLE_API_KEY',
|
|
107
|
+
required: false,
|
|
108
|
+
secret: true,
|
|
109
|
+
description: 'API key for OpenAI-compatible endpoint'
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
services: [
|
|
113
|
+
{
|
|
114
|
+
name: 'LLM Inference API',
|
|
115
|
+
kind: 'http_service',
|
|
116
|
+
optional: false
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
database: null,
|
|
120
|
+
healthCheck: 'probeBrainHealth'
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: '@siduri-x/ear',
|
|
124
|
+
organType: 'ear',
|
|
125
|
+
version: '1.0.2',
|
|
126
|
+
displayName: 'Ear (Perception Ingress)',
|
|
127
|
+
description: 'Multi-modal sensory input ingestion, transcription bounds, and mime validation',
|
|
128
|
+
entrypoint: './dist/index.js',
|
|
129
|
+
factory: 'DefaultEarOrgan',
|
|
130
|
+
configKey: 'ear',
|
|
131
|
+
configSchema: {
|
|
132
|
+
type: 'object',
|
|
133
|
+
properties: {
|
|
134
|
+
defaultSource: {
|
|
135
|
+
type: 'string',
|
|
136
|
+
default: 'text_chat'
|
|
137
|
+
},
|
|
138
|
+
maxTextLength: {
|
|
139
|
+
type: 'number',
|
|
140
|
+
default: 4000
|
|
141
|
+
},
|
|
142
|
+
maxAudioBytes: {
|
|
143
|
+
type: 'number',
|
|
144
|
+
default: 10485760
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
environment: [],
|
|
149
|
+
services: [],
|
|
150
|
+
database: null,
|
|
151
|
+
healthCheck: null
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
name: '@siduri-x/hands',
|
|
155
|
+
organType: 'hands',
|
|
156
|
+
version: '1.0.4',
|
|
157
|
+
displayName: 'Hands (MCP Tool Execution)',
|
|
158
|
+
description: 'Model Context Protocol tool management and cryptographically authorized action execution',
|
|
159
|
+
entrypoint: './dist/index.js',
|
|
160
|
+
factory: 'DefaultHandsOrgan',
|
|
161
|
+
configKey: 'hands',
|
|
162
|
+
configSchema: {
|
|
163
|
+
type: 'object',
|
|
164
|
+
properties: {
|
|
165
|
+
defaultTimeoutMs: {
|
|
166
|
+
type: 'number',
|
|
167
|
+
default: 10000
|
|
168
|
+
},
|
|
169
|
+
providers: {
|
|
170
|
+
type: 'array',
|
|
171
|
+
items: {
|
|
172
|
+
type: 'object',
|
|
173
|
+
required: ['serverName'],
|
|
174
|
+
properties: {
|
|
175
|
+
serverName: {
|
|
176
|
+
type: 'string'
|
|
177
|
+
},
|
|
178
|
+
baseUrl: {
|
|
179
|
+
type: 'string'
|
|
180
|
+
},
|
|
181
|
+
command: {
|
|
182
|
+
type: 'string'
|
|
183
|
+
},
|
|
184
|
+
args: {
|
|
185
|
+
type: 'array',
|
|
186
|
+
items: {
|
|
187
|
+
type: 'string'
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
environment: [
|
|
196
|
+
{
|
|
197
|
+
name: 'ACTION_POLICY_SECRET',
|
|
198
|
+
required: false,
|
|
199
|
+
secret: true,
|
|
200
|
+
description: 'HMAC secret key for signing and verifying action execution capabilities (required in production)'
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
services: [],
|
|
204
|
+
database: null,
|
|
205
|
+
healthCheck: 'probeHandsHealth'
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
name: '@siduri-x/knowledge',
|
|
209
|
+
organType: 'knowledge',
|
|
210
|
+
version: '1.0.2',
|
|
211
|
+
displayName: 'Knowledge (E-Compatible Cited Facts)',
|
|
212
|
+
description: 'Factual context retrieval from local or hosted E Knowledge packs',
|
|
213
|
+
entrypoint: './dist/index.js',
|
|
214
|
+
factory: 'EKnowledgeAdapter',
|
|
215
|
+
configKey: 'knowledge',
|
|
216
|
+
configSchema: {
|
|
217
|
+
type: 'object',
|
|
218
|
+
required: ['provider'],
|
|
219
|
+
properties: {
|
|
220
|
+
provider: {
|
|
221
|
+
type: 'string',
|
|
222
|
+
enum: ['e-knowledge', 'e-remote', 'e-hub', 'none']
|
|
223
|
+
},
|
|
224
|
+
packPath: {
|
|
225
|
+
type: 'string'
|
|
226
|
+
},
|
|
227
|
+
baseUrl: {
|
|
228
|
+
type: 'string'
|
|
229
|
+
},
|
|
230
|
+
registryUrl: {
|
|
231
|
+
type: 'string'
|
|
232
|
+
},
|
|
233
|
+
packId: {
|
|
234
|
+
type: 'string'
|
|
235
|
+
},
|
|
236
|
+
timeoutMs: {
|
|
237
|
+
type: 'number',
|
|
238
|
+
default: 5000
|
|
239
|
+
},
|
|
240
|
+
preferredMode: {
|
|
241
|
+
type: 'string',
|
|
242
|
+
enum: ['lexical', 'semantic', 'hybrid'],
|
|
243
|
+
default: 'lexical'
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
environment: [
|
|
248
|
+
{
|
|
249
|
+
name: 'SIDURI_KNOWLEDGE_PACK',
|
|
250
|
+
required: false,
|
|
251
|
+
secret: false,
|
|
252
|
+
description: 'Path to local E knowledge pack'
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
name: 'SIDURI_KNOWLEDGE_REGISTRY_URL',
|
|
256
|
+
required: false,
|
|
257
|
+
secret: false,
|
|
258
|
+
default: 'https://e.vxnus.xyz/api/v1/knowledge',
|
|
259
|
+
description: 'URL of the E Knowledge Hub registry'
|
|
260
|
+
}
|
|
261
|
+
],
|
|
262
|
+
services: [
|
|
263
|
+
{
|
|
264
|
+
name: 'E Knowledge Hub',
|
|
265
|
+
kind: 'http_service',
|
|
266
|
+
optional: true
|
|
267
|
+
}
|
|
268
|
+
],
|
|
269
|
+
database: null,
|
|
270
|
+
healthCheck: null
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
name: '@siduri-x/memory',
|
|
274
|
+
organType: 'memory',
|
|
275
|
+
version: '1.0.7',
|
|
276
|
+
displayName: 'Memory (PostgreSQL FTS Claims)',
|
|
277
|
+
description: 'Relational semantic claims with Full-Text Search and companion isolation',
|
|
278
|
+
entrypoint: './dist/index.js',
|
|
279
|
+
factory: 'PostgresMemoryOrgan',
|
|
280
|
+
configKey: 'memory',
|
|
281
|
+
configSchema: {
|
|
282
|
+
type: 'object',
|
|
283
|
+
required: ['provider'],
|
|
284
|
+
properties: {
|
|
285
|
+
provider: {
|
|
286
|
+
type: 'string',
|
|
287
|
+
enum: ['postgres']
|
|
288
|
+
},
|
|
289
|
+
deployment: {
|
|
290
|
+
type: 'string',
|
|
291
|
+
enum: ['local', 'neon', 'supabase', 'other']
|
|
292
|
+
},
|
|
293
|
+
connectionString: {
|
|
294
|
+
type: 'string'
|
|
295
|
+
},
|
|
296
|
+
maxConnections: {
|
|
297
|
+
type: 'number',
|
|
298
|
+
default: 10
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
environment: [
|
|
303
|
+
{
|
|
304
|
+
name: 'DATABASE_URL',
|
|
305
|
+
required: true,
|
|
306
|
+
secret: true,
|
|
307
|
+
default: 'postgresql://postgres:postgres@localhost:5432/siduri',
|
|
308
|
+
description: 'PostgreSQL connection string'
|
|
309
|
+
}
|
|
310
|
+
],
|
|
311
|
+
services: [
|
|
312
|
+
{
|
|
313
|
+
name: 'PostgreSQL Database',
|
|
314
|
+
kind: 'database',
|
|
315
|
+
optional: false
|
|
316
|
+
}
|
|
317
|
+
],
|
|
318
|
+
database: {
|
|
319
|
+
engine: 'postgres',
|
|
320
|
+
migrationsDir: './migrations'
|
|
321
|
+
},
|
|
322
|
+
healthCheck: 'probeMemoryHealth'
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
name: '@siduri-x/observation',
|
|
326
|
+
organType: 'observation',
|
|
327
|
+
version: '1.0.3',
|
|
328
|
+
displayName: 'Observation (Screen Perception & Frame Ingest)',
|
|
329
|
+
description: 'Screen capture frame ingest, SHA-256 deduplication, and visual grounding for Eyes/Vision',
|
|
330
|
+
entrypoint: './dist/index.js',
|
|
331
|
+
factory: 'FixtureObservationOrgan',
|
|
332
|
+
configKey: 'observation',
|
|
333
|
+
configSchema: {
|
|
334
|
+
type: 'object',
|
|
335
|
+
properties: {}
|
|
336
|
+
},
|
|
337
|
+
environment: [],
|
|
338
|
+
services: [],
|
|
339
|
+
database: null,
|
|
340
|
+
healthCheck: null
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
name: '@siduri-x/vision',
|
|
344
|
+
organType: 'vision',
|
|
345
|
+
version: '1.0.2',
|
|
346
|
+
displayName: 'Vision (Visual Perception & OCR)',
|
|
347
|
+
description: 'Image inspection, cropping, and multi-pass OCR perception adapter',
|
|
348
|
+
entrypoint: './dist/index.js',
|
|
349
|
+
factory: 'OpenRouterVisionAdapter',
|
|
350
|
+
configKey: 'vision',
|
|
351
|
+
configSchema: {
|
|
352
|
+
type: 'object',
|
|
353
|
+
required: ['provider'],
|
|
354
|
+
properties: {
|
|
355
|
+
provider: {
|
|
356
|
+
type: 'string',
|
|
357
|
+
enum: ['openrouter', 'none']
|
|
358
|
+
},
|
|
359
|
+
model: {
|
|
360
|
+
type: 'string',
|
|
361
|
+
default: 'gpt-4-vision'
|
|
362
|
+
},
|
|
363
|
+
apiKey: {
|
|
364
|
+
type: 'string'
|
|
365
|
+
},
|
|
366
|
+
baseUrl: {
|
|
367
|
+
type: 'string'
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
environment: [
|
|
372
|
+
{
|
|
373
|
+
name: 'OPENROUTER_API_KEY',
|
|
374
|
+
required: false,
|
|
375
|
+
secret: true,
|
|
376
|
+
description: 'API key for vision model inference'
|
|
377
|
+
}
|
|
378
|
+
],
|
|
379
|
+
services: [
|
|
380
|
+
{
|
|
381
|
+
name: 'Vision Inference API',
|
|
382
|
+
kind: 'http_service',
|
|
383
|
+
optional: false
|
|
384
|
+
}
|
|
385
|
+
],
|
|
386
|
+
database: null,
|
|
387
|
+
healthCheck: null
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
name: '@siduri-x/voice',
|
|
391
|
+
organType: 'voice',
|
|
392
|
+
version: '1.0.5',
|
|
393
|
+
displayName: 'Voice (VOICEVOX Speech Synthesis)',
|
|
394
|
+
description: 'Queued speech synthesis and audio rendering lifecycle adapter',
|
|
395
|
+
entrypoint: './dist/index.js',
|
|
396
|
+
factory: 'VoicevoxAdapter',
|
|
397
|
+
configKey: 'voice',
|
|
398
|
+
configSchema: {
|
|
399
|
+
type: 'object',
|
|
400
|
+
required: ['provider'],
|
|
401
|
+
properties: {
|
|
402
|
+
provider: {
|
|
403
|
+
type: 'string',
|
|
404
|
+
enum: ['voicevox', 'none']
|
|
405
|
+
},
|
|
406
|
+
speakerId: {
|
|
407
|
+
type: 'number',
|
|
408
|
+
default: 1
|
|
409
|
+
},
|
|
410
|
+
baseUrl: {
|
|
411
|
+
type: 'string',
|
|
412
|
+
default: 'http://localhost:50021'
|
|
413
|
+
},
|
|
414
|
+
maxQueueDepth: {
|
|
415
|
+
type: 'number',
|
|
416
|
+
default: 50
|
|
417
|
+
},
|
|
418
|
+
rvc: {
|
|
419
|
+
type: 'object',
|
|
420
|
+
properties: {
|
|
421
|
+
enabled: { type: 'boolean', default: false },
|
|
422
|
+
serviceUrl: { type: 'string', default: 'http://localhost:50055' },
|
|
423
|
+
modelName: { type: 'string' },
|
|
424
|
+
modelPath: { type: 'string' },
|
|
425
|
+
indexPath: { type: 'string' },
|
|
426
|
+
pitchShift: { type: 'number', default: 0 },
|
|
427
|
+
f0Method: { type: 'string', enum: ['rmvpe', 'pm', 'harvest', 'crepe'], default: 'rmvpe' },
|
|
428
|
+
indexRate: { type: 'number', default: 0.75 }
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
environment: [
|
|
434
|
+
{
|
|
435
|
+
name: 'VOICEVOX_URL',
|
|
436
|
+
required: false,
|
|
437
|
+
secret: false,
|
|
438
|
+
default: 'http://localhost:50021',
|
|
439
|
+
description: 'Base URL of the running VOICEVOX engine'
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
name: 'RVC_SERVICE_URL',
|
|
443
|
+
required: false,
|
|
444
|
+
secret: false,
|
|
445
|
+
default: 'http://localhost:50055',
|
|
446
|
+
description: 'Base URL of headless RVC voice conversion microservice'
|
|
447
|
+
}
|
|
448
|
+
],
|
|
449
|
+
services: [
|
|
450
|
+
{
|
|
451
|
+
name: 'VOICEVOX Engine',
|
|
452
|
+
kind: 'http_service',
|
|
453
|
+
optional: false
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
name: 'RVC Headless Service',
|
|
457
|
+
kind: 'http_service',
|
|
458
|
+
optional: true
|
|
459
|
+
}
|
|
460
|
+
],
|
|
461
|
+
database: null,
|
|
462
|
+
healthCheck: null
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
name: '@siduri-x/mouth',
|
|
466
|
+
organType: 'mouth',
|
|
467
|
+
version: '1.0.0',
|
|
468
|
+
displayName: 'Mouth (Communication & UI Delivery)',
|
|
469
|
+
description: 'Decoupled output delivery organ formatting cognitive decisions for web interfaces',
|
|
470
|
+
entrypoint: './dist/index.js',
|
|
471
|
+
factory: 'DefaultMouthOrgan',
|
|
472
|
+
configKey: 'mouth',
|
|
473
|
+
configSchema: {
|
|
474
|
+
type: 'object',
|
|
475
|
+
properties: {
|
|
476
|
+
defaultMedium: {
|
|
477
|
+
type: 'string',
|
|
478
|
+
enum: ['web'],
|
|
479
|
+
default: 'web'
|
|
480
|
+
},
|
|
481
|
+
maxTextLength: {
|
|
482
|
+
type: 'number',
|
|
483
|
+
default: 8000
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
},
|
|
487
|
+
environment: [],
|
|
488
|
+
services: [],
|
|
489
|
+
database: null,
|
|
490
|
+
healthCheck: null
|
|
491
|
+
}
|
|
492
|
+
];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|