@xemahq/xema 0.2.4 → 0.3.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.
Files changed (77) hide show
  1. package/LICENSE +176 -175
  2. package/README.md +97 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +11 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/biome.d.ts.map +1 -1
  7. package/dist/commands/biome.js +83 -6
  8. package/dist/commands/biome.js.map +1 -1
  9. package/dist/commands/dev.d.ts.map +1 -1
  10. package/dist/commands/dev.js +14 -8
  11. package/dist/commands/dev.js.map +1 -1
  12. package/dist/commands/doctor.d.ts +2 -0
  13. package/dist/commands/doctor.d.ts.map +1 -1
  14. package/dist/commands/doctor.js +48 -1
  15. package/dist/commands/doctor.js.map +1 -1
  16. package/dist/commands/serve.d.ts.map +1 -1
  17. package/dist/commands/serve.js +13 -1
  18. package/dist/commands/serve.js.map +1 -1
  19. package/dist/commands/up.d.ts.map +1 -1
  20. package/dist/commands/up.js +11 -0
  21. package/dist/commands/up.js.map +1 -1
  22. package/dist/runtime/config/schema.d.ts +27 -0
  23. package/dist/runtime/config/schema.d.ts.map +1 -1
  24. package/dist/runtime/config/schema.js +2 -0
  25. package/dist/runtime/config/schema.js.map +1 -1
  26. package/dist/runtime/launch.d.ts.map +1 -1
  27. package/dist/runtime/launch.js +22 -2
  28. package/dist/runtime/launch.js.map +1 -1
  29. package/dist/runtime/roster.d.ts +10 -2
  30. package/dist/runtime/roster.d.ts.map +1 -1
  31. package/dist/runtime/roster.js +50 -1
  32. package/dist/runtime/roster.js.map +1 -1
  33. package/dist/runtime/runner/native-runner.d.ts.map +1 -1
  34. package/dist/runtime/runner/native-runner.js +6 -5
  35. package/dist/runtime/runner/native-runner.js.map +1 -1
  36. package/dist/runtime/sources/credentials.d.ts +11 -0
  37. package/dist/runtime/sources/credentials.d.ts.map +1 -0
  38. package/dist/runtime/sources/credentials.js +68 -0
  39. package/dist/runtime/sources/credentials.js.map +1 -0
  40. package/dist/runtime/sources/kinds/distribution.d.ts +5 -0
  41. package/dist/runtime/sources/kinds/distribution.d.ts.map +1 -0
  42. package/dist/runtime/sources/kinds/distribution.js +33 -0
  43. package/dist/runtime/sources/kinds/distribution.js.map +1 -0
  44. package/dist/runtime/sources/kinds/git.d.ts +5 -0
  45. package/dist/runtime/sources/kinds/git.d.ts.map +1 -0
  46. package/dist/runtime/sources/kinds/git.js +70 -0
  47. package/dist/runtime/sources/kinds/git.js.map +1 -0
  48. package/dist/runtime/sources/kinds/workspace.d.ts +5 -0
  49. package/dist/runtime/sources/kinds/workspace.d.ts.map +1 -0
  50. package/dist/runtime/sources/kinds/workspace.js +24 -0
  51. package/dist/runtime/sources/kinds/workspace.js.map +1 -0
  52. package/dist/runtime/sources/manifest-walk.d.ts +22 -0
  53. package/dist/runtime/sources/manifest-walk.d.ts.map +1 -0
  54. package/dist/runtime/sources/manifest-walk.js +87 -0
  55. package/dist/runtime/sources/manifest-walk.js.map +1 -0
  56. package/dist/runtime/sources/resolver.d.ts +15 -0
  57. package/dist/runtime/sources/resolver.d.ts.map +1 -0
  58. package/dist/runtime/sources/resolver.js +75 -0
  59. package/dist/runtime/sources/resolver.js.map +1 -0
  60. package/dist/runtime/sources/schema.d.ts +101 -0
  61. package/dist/runtime/sources/schema.d.ts.map +1 -0
  62. package/dist/runtime/sources/schema.js +71 -0
  63. package/dist/runtime/sources/schema.js.map +1 -0
  64. package/dist/runtime/sources/types.d.ts +10 -0
  65. package/dist/runtime/sources/types.d.ts.map +1 -0
  66. package/dist/runtime/sources/types.js +3 -0
  67. package/dist/runtime/sources/types.js.map +1 -0
  68. package/dist/runtime/waves.d.ts +1 -0
  69. package/dist/runtime/waves.d.ts.map +1 -1
  70. package/dist/runtime/waves.js +19 -0
  71. package/dist/runtime/waves.js.map +1 -1
  72. package/examples/06-biome-sources.yaml +51 -0
  73. package/package.json +5 -2
  74. package/dist/dev/dev-orchestrator.d.ts +0 -7
  75. package/dist/dev/dev-orchestrator.d.ts.map +0 -1
  76. package/dist/dev/dev-orchestrator.js +0 -367
  77. package/dist/dev/dev-orchestrator.js.map +0 -1
@@ -1,367 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runDevOrchestrator = runDevOrchestrator;
4
- const node_fs_1 = require("node:fs");
5
- const node_os_1 = require("node:os");
6
- const node_path_1 = require("node:path");
7
- const service_registry_nest_1 = require("@xemahq/service-registry-nest");
8
- const env_defaults_1 = require("./env-defaults");
9
- const forked_worker_1 = require("./forked-worker");
10
- const infra_preflight_1 = require("./infra-preflight");
11
- const exit_codes_1 = require("../lib/exit-codes");
12
- const DEFAULT_KERNEL_PORT = env_defaults_1.PORT_MAP['xema-kernel-server'] ?? 7331;
13
- const DEFAULT_ROUTER_PORT = env_defaults_1.PORT_MAP['xema-capability-router'] ?? 7332;
14
- const FORKED_WORKER_READINESS_TIMEOUT_MS = 45_000;
15
- const FORKED_WORKER_EXEMPT = new Set([
16
- 'audit-log-api',
17
- 'authorization-api',
18
- 'capability-registry-api',
19
- 'user-hub-api',
20
- 'workspace-storage-pool-api',
21
- 'workspace-git-api',
22
- 'document-render-api',
23
- 'memory-api',
24
- 'skill-registry-api',
25
- 'project-registry-api',
26
- 'knowledge-base-api',
27
- 'activity-feed-api',
28
- 'xema-store-api',
29
- 'llm-registry-api',
30
- 'agent-session-api',
31
- 'artifact-store-api',
32
- 'workflow-engine-api',
33
- 'backlog-api',
34
- 'mcp-gateway-api',
35
- 'connector-gateway-api',
36
- 'biome-host-api',
37
- 'workspace-orchestrator-api',
38
- 'workload-runtime-api',
39
- ]);
40
- async function runDevOrchestrator(opts = {}) {
41
- const kernelPort = opts.kernelPort ??
42
- Number.parseInt(process.env.XEMA_DEV_PORT_KERNEL ?? String(DEFAULT_KERNEL_PORT), 10);
43
- const routerPort = opts.routerPort ??
44
- Number.parseInt(process.env.XEMA_DEV_PORT_ROUTER ?? String(DEFAULT_ROUTER_PORT), 10);
45
- if (!Number.isFinite(kernelPort) || !Number.isFinite(routerPort)) {
46
- (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.ConfigurationError, `xema dev: invalid port numbers (kernel=${kernelPort}, router=${routerPort}).`);
47
- }
48
- const xemaHome = (0, node_path_1.join)((0, node_os_1.homedir)(), '.xema', 'dev');
49
- if (!(0, node_fs_1.existsSync)(xemaHome)) {
50
- (0, node_fs_1.mkdirSync)(xemaHome, { recursive: true });
51
- }
52
- const kernelStatePath = (0, node_path_1.join)(xemaHome, 'kernel-state.sqlite');
53
- process.env[service_registry_nest_1.SERVICE_REGISTRY_ADAPTER_ENV_VAR] =
54
- service_registry_nest_1.ServiceRegistryAdapterKind.InProcess;
55
- process.env.XEMA_KERNEL_STATE_FILE = kernelStatePath;
56
- process.env.XEMA_KERNEL_STATE_PROFILE = 'dev';
57
- const appliedDefaults = (0, env_defaults_1.applyDevEnvDefaults)();
58
- console.log('xema dev — single-binary composition (Phase J.3 forked-worker spawn loop)');
59
- console.log('-'.repeat(60));
60
- console.log(` KernelState : ${kernelStatePath}`);
61
- console.log(` Registry : ${service_registry_nest_1.ServiceRegistryAdapterKind.InProcess}`);
62
- console.log(` Env defaults : ${appliedDefaults.length} applied (user values preserved)`);
63
- console.log('');
64
- if (opts.skipPreflight !== true) {
65
- const report = await (0, infra_preflight_1.runInfraPreflight)();
66
- if (!report.allReachable) {
67
- const message = (0, infra_preflight_1.formatPreflightFailure)(report);
68
- console.error(message);
69
- (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.MissingDependency);
70
- }
71
- console.log(` Pre-flight : OK (${report.results.length} infra dependencies reachable)`);
72
- console.log('');
73
- }
74
- else {
75
- console.log(' Pre-flight : SKIPPED (--skip-preflight)');
76
- console.log('');
77
- }
78
- const booted = [];
79
- const forked = [];
80
- const skippedFlat = [];
81
- const shutdown = async (signal) => {
82
- console.log('');
83
- console.log(`xema dev — received ${signal}; shutting down...`);
84
- for (const child of [...forked].reverse()) {
85
- try {
86
- await child.close();
87
- console.log(` closed ${child.name} (pid ${String(child.pid)})`);
88
- }
89
- catch (err) {
90
- const message = err instanceof Error ? err.message : String(err);
91
- console.error(` failed to close ${child.name}: ${message}`);
92
- }
93
- }
94
- for (const svc of [...booted].reverse()) {
95
- try {
96
- await svc.close();
97
- console.log(` closed ${svc.name}`);
98
- }
99
- catch (err) {
100
- const message = err instanceof Error ? err.message : String(err);
101
- console.error(` failed to close ${svc.name}: ${message}`);
102
- }
103
- }
104
- process.exit(exit_codes_1.XemaCliExitCode.Ok);
105
- };
106
- process.on('SIGINT', (sig) => {
107
- void shutdown(sig);
108
- });
109
- process.on('SIGTERM', (sig) => {
110
- void shutdown(sig);
111
- });
112
- const TOTAL_CANDIDATES = 29;
113
- const candidates = [
114
- {
115
- name: 'xema-kernel-server',
116
- port: kernelPort,
117
- siblingAppDir: '../../../xema-kernel-server',
118
- },
119
- {
120
- name: 'xema-capability-router',
121
- port: routerPort,
122
- siblingAppDir: '../../../xema-capability-router',
123
- },
124
- {
125
- name: 'catalog-api',
126
- port: portFor('catalog-api'),
127
- siblingAppDir: '../../../catalog-api',
128
- },
129
- {
130
- name: 'object-registry-api',
131
- port: portFor('object-registry-api'),
132
- siblingAppDir: '../../../object-registry-api',
133
- },
134
- {
135
- name: 'public-gateway-api',
136
- port: portFor('public-gateway-api'),
137
- siblingAppDir: '../../../public-gateway-api',
138
- },
139
- {
140
- name: 'audit-log-api',
141
- port: portFor('audit-log-api'),
142
- siblingAppDir: '../../../audit-log-api',
143
- },
144
- {
145
- name: 'authorization-api',
146
- port: portFor('authorization-api'),
147
- siblingAppDir: '../../../authorization-api',
148
- },
149
- {
150
- name: 'capability-registry-api',
151
- port: portFor('capability-registry-api'),
152
- siblingAppDir: '../../../capability-registry-api',
153
- },
154
- {
155
- name: 'user-hub-api',
156
- port: portFor('user-hub-api'),
157
- siblingAppDir: '../../../user-hub-api',
158
- },
159
- {
160
- name: 'workspace-storage-pool-api',
161
- port: portFor('workspace-storage-pool-api'),
162
- siblingAppDir: '../../../workspace-storage-pool-api',
163
- },
164
- {
165
- name: 'workspace-git-api',
166
- port: portFor('workspace-git-api'),
167
- siblingAppDir: '../../../workspace-git-api',
168
- },
169
- {
170
- name: 'document-render-api',
171
- port: portFor('document-render-api'),
172
- siblingAppDir: '../../../document-render-api',
173
- },
174
- {
175
- name: 'memory-api',
176
- port: portFor('memory-api'),
177
- siblingAppDir: '../../../memory-api',
178
- },
179
- {
180
- name: 'skill-registry-api',
181
- port: portFor('skill-registry-api'),
182
- siblingAppDir: '../../../skill-registry-api',
183
- },
184
- {
185
- name: 'project-registry-api',
186
- port: portFor('project-registry-api'),
187
- siblingAppDir: '../../../project-registry-api',
188
- },
189
- {
190
- name: 'knowledge-base-api',
191
- port: portFor('knowledge-base-api'),
192
- siblingAppDir: '../../../knowledge-base-api',
193
- },
194
- {
195
- name: 'activity-feed-api',
196
- port: portFor('activity-feed-api'),
197
- siblingAppDir: '../../../activity-feed-api',
198
- },
199
- {
200
- name: 'xema-store-api',
201
- port: portFor('xema-store-api'),
202
- siblingAppDir: '../../../xema-store-api',
203
- },
204
- {
205
- name: 'xema-shell-api',
206
- port: portFor('xema-shell-api'),
207
- siblingAppDir: '../../../xema-shell-api',
208
- },
209
- {
210
- name: 'llm-registry-api',
211
- port: portFor('llm-registry-api'),
212
- siblingAppDir: '../../../llm-registry-api',
213
- },
214
- {
215
- name: 'agent-session-api',
216
- port: portFor('agent-session-api'),
217
- siblingAppDir: '../../../agent-session-api',
218
- },
219
- {
220
- name: 'artifact-store-api',
221
- port: portFor('artifact-store-api'),
222
- siblingAppDir: '../../../artifact-store-api',
223
- },
224
- {
225
- name: 'workflow-engine-api',
226
- port: portFor('workflow-engine-api'),
227
- siblingAppDir: '../../../workflow-engine-api',
228
- },
229
- {
230
- name: 'backlog-api',
231
- port: portFor('backlog-api'),
232
- siblingAppDir: '../../../backlog-api',
233
- },
234
- {
235
- name: 'mcp-gateway-api',
236
- port: portFor('mcp-gateway-api'),
237
- siblingAppDir: '../../../mcp-gateway-api',
238
- },
239
- {
240
- name: 'connector-gateway-api',
241
- port: portFor('connector-gateway-api'),
242
- siblingAppDir: '../../../connector-gateway-api',
243
- },
244
- {
245
- name: 'biome-host-api',
246
- port: portFor('biome-host-api'),
247
- siblingAppDir: '../../../biome-host-api',
248
- },
249
- {
250
- name: 'workspace-orchestrator-api',
251
- port: portFor('workspace-orchestrator-api'),
252
- siblingAppDir: '../../../workspace-orchestrator-api',
253
- },
254
- {
255
- name: 'workload-runtime-api',
256
- port: portFor('workload-runtime-api'),
257
- siblingAppDir: '../../../workload-runtime-api',
258
- },
259
- ];
260
- for (const cand of candidates) {
261
- if (FORKED_WORKER_EXEMPT.has(cand.name)) {
262
- try {
263
- const child = await (0, forked_worker_1.spawnForkedWorker)({
264
- name: cand.name,
265
- port: cand.port,
266
- siblingAppDir: cand.siblingAppDir,
267
- readinessTimeoutMs: FORKED_WORKER_READINESS_TIMEOUT_MS,
268
- }, __dirname);
269
- forked.push(child);
270
- console.log(` forked ${cand.name.padEnd(28, ' ')} ${child.url} (pid ${String(child.pid)})`);
271
- }
272
- catch (err) {
273
- const message = err instanceof Error ? err.message : String(err);
274
- skippedFlat.push({ name: cand.name, reason: message });
275
- console.warn(` Skipping ${cand.name}: ${message}`);
276
- }
277
- continue;
278
- }
279
- try {
280
- const handle = await bootService(cand);
281
- booted.push(handle);
282
- console.log(` booted ${cand.name.padEnd(28, ' ')} ${handle.url}`);
283
- }
284
- catch (err) {
285
- const message = err instanceof Error ? err.message : String(err);
286
- skippedFlat.push({ name: cand.name, reason: message });
287
- console.warn(` Skipping ${cand.name}: ${message}`);
288
- }
289
- }
290
- console.log('');
291
- console.log('-'.repeat(60));
292
- const totalBooting = booted.length + forked.length;
293
- const pendingCount = TOTAL_CANDIDATES - candidates.length;
294
- console.log(`Booted ${booted.length}/${TOTAL_CANDIDATES} in-process` +
295
- ` + ${forked.length}/${TOTAL_CANDIDATES} forked-worker` +
296
- ` = ${totalBooting}/${TOTAL_CANDIDATES} total` +
297
- (skippedFlat.length > 0 ? `, skipped ${skippedFlat.length}` : '') +
298
- `, ${pendingCount} not yet wired.`);
299
- if (skippedFlat.length > 0) {
300
- console.log('Skipped this run:');
301
- for (const s of skippedFlat) {
302
- console.log(` - ${s.name}: ${s.reason}`);
303
- }
304
- }
305
- console.log('');
306
- if (totalBooting === 0) {
307
- (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.GenericError, 'xema dev: no services booted successfully. See skip reasons above.');
308
- }
309
- if (booted.length > 0) {
310
- console.log('In-process services:');
311
- for (const svc of booted) {
312
- console.log(` ${svc.name.padEnd(28, ' ')} ${svc.url}`);
313
- }
314
- }
315
- if (forked.length > 0) {
316
- console.log('Forked-worker services:');
317
- for (const svc of forked) {
318
- console.log(` ${svc.name.padEnd(28, ' ')} ${svc.url} (pid ${String(svc.pid)})`);
319
- }
320
- }
321
- console.log('');
322
- console.log('Press Ctrl+C to shut down.');
323
- await new Promise(() => {
324
- });
325
- }
326
- function portFor(serviceName) {
327
- const port = env_defaults_1.PORT_MAP[serviceName];
328
- if (port === undefined) {
329
- throw new Error(`dev-orchestrator: no PORT_MAP entry for "${serviceName}". ` +
330
- `Add it to env-defaults.ts PORT_MAP before wiring the service.`);
331
- }
332
- return port;
333
- }
334
- async function bootService(opts) {
335
- process.env.PORT = String(opts.port);
336
- process.env.SERVICE_PUBLIC_URL = `http://127.0.0.1:${String(opts.port)}`;
337
- const siblingDistDir = (0, node_path_1.resolve)(__dirname, opts.siblingAppDir, 'dist');
338
- const appModulePath = (0, node_path_1.resolve)(siblingDistDir, 'app.module.js');
339
- const mainModulePath = (0, node_path_1.resolve)(siblingDistDir, 'main.js');
340
- if (!(0, node_fs_1.existsSync)(appModulePath)) {
341
- throw new Error(`${opts.name} dist not found at ${appModulePath}. ` +
342
- `Run \`pnpm --filter ${opts.name} build\` first, or use \`pnpm refresh\`.`);
343
- }
344
- void mainModulePath;
345
- const bundle = requireCommonJs(appModulePath);
346
- if (typeof bundle.AppModule !== 'function' && typeof bundle.AppModule !== 'object') {
347
- throw new Error(`${opts.name} dist did not export an \`AppModule\` class ` +
348
- `from ${appModulePath}.`);
349
- }
350
- const nestCore = requireCommonJs(require.resolve('@nestjs/core'));
351
- const app = await nestCore.NestFactory.create(bundle.AppModule, {
352
- logger: ['error', 'warn', 'log'],
353
- abortOnError: false,
354
- });
355
- await app.listen(opts.port);
356
- const url = await app.getUrl();
357
- return {
358
- name: opts.name,
359
- url,
360
- close: () => app.close(),
361
- };
362
- }
363
- function requireCommonJs(modulePath) {
364
- const loaded = require(modulePath);
365
- return loaded;
366
- }
367
- //# sourceMappingURL=dev-orchestrator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev-orchestrator.js","sourceRoot":"","sources":["../../src/dev/dev-orchestrator.ts"],"names":[],"mappings":"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"}