@xemahq/xema 0.1.1

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 (59) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +60 -0
  3. package/dist/cli.d.ts +4 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +43 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/biome.d.ts +3 -0
  8. package/dist/commands/biome.d.ts.map +1 -0
  9. package/dist/commands/biome.js +89 -0
  10. package/dist/commands/biome.js.map +1 -0
  11. package/dist/commands/dev.d.ts +3 -0
  12. package/dist/commands/dev.d.ts.map +1 -0
  13. package/dist/commands/dev.js +32 -0
  14. package/dist/commands/dev.js.map +1 -0
  15. package/dist/commands/doctor.d.ts +16 -0
  16. package/dist/commands/doctor.d.ts.map +1 -0
  17. package/dist/commands/doctor.js +128 -0
  18. package/dist/commands/doctor.js.map +1 -0
  19. package/dist/commands/objects.d.ts +3 -0
  20. package/dist/commands/objects.d.ts.map +1 -0
  21. package/dist/commands/objects.js +17 -0
  22. package/dist/commands/objects.js.map +1 -0
  23. package/dist/commands/run.d.ts +3 -0
  24. package/dist/commands/run.d.ts.map +1 -0
  25. package/dist/commands/run.js +18 -0
  26. package/dist/commands/run.js.map +1 -0
  27. package/dist/commands/serve.d.ts +3 -0
  28. package/dist/commands/serve.d.ts.map +1 -0
  29. package/dist/commands/serve.js +18 -0
  30. package/dist/commands/serve.js.map +1 -0
  31. package/dist/commands/shell.d.ts +3 -0
  32. package/dist/commands/shell.d.ts.map +1 -0
  33. package/dist/commands/shell.js +16 -0
  34. package/dist/commands/shell.js.map +1 -0
  35. package/dist/dev/dev-orchestrator.d.ts +7 -0
  36. package/dist/dev/dev-orchestrator.d.ts.map +1 -0
  37. package/dist/dev/dev-orchestrator.js +366 -0
  38. package/dist/dev/dev-orchestrator.js.map +1 -0
  39. package/dist/dev/env-defaults.d.ts +6 -0
  40. package/dist/dev/env-defaults.d.ts.map +1 -0
  41. package/dist/dev/env-defaults.js +115 -0
  42. package/dist/dev/env-defaults.js.map +1 -0
  43. package/dist/dev/forked-worker.d.ts +14 -0
  44. package/dist/dev/forked-worker.d.ts.map +1 -0
  45. package/dist/dev/forked-worker.js +126 -0
  46. package/dist/dev/forked-worker.js.map +1 -0
  47. package/dist/dev/infra-preflight.d.ts +31 -0
  48. package/dist/dev/infra-preflight.d.ts.map +1 -0
  49. package/dist/dev/infra-preflight.js +138 -0
  50. package/dist/dev/infra-preflight.js.map +1 -0
  51. package/dist/lib/command-registry.d.ts +5 -0
  52. package/dist/lib/command-registry.d.ts.map +1 -0
  53. package/dist/lib/command-registry.js +13 -0
  54. package/dist/lib/command-registry.js.map +1 -0
  55. package/dist/lib/exit-codes.d.ts +10 -0
  56. package/dist/lib/exit-codes.d.ts.map +1 -0
  57. package/dist/lib/exit-codes.js +25 -0
  58. package/dist/lib/exit-codes.js.map +1 -0
  59. package/package.json +70 -0
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCommand = registerCommand;
4
+ const exit_codes_1 = require("../lib/exit-codes");
5
+ function registerCommand(program) {
6
+ const objects = program
7
+ .command('objects')
8
+ .summary('Browse XemaObjects by Space');
9
+ objects
10
+ .command('list <space>')
11
+ .description('List XemaObjects scoped to a Space (XVFS read)')
12
+ .action((space) => {
13
+ (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.NotImplemented, `xema objects list ${space}: requires object-registry-api in ` +
14
+ 'the local composition (Phase J.2 follow-up).');
15
+ });
16
+ }
17
+ //# sourceMappingURL=objects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.js","sourceRoot":"","sources":["../../src/commands/objects.ts"],"names":[],"mappings":";;AAWA,0CAeC;AA1BD,kDAA8D;AAW9D,SAAgB,eAAe,CAAC,OAAgB;IAC9C,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAE1C,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACxB,IAAA,qBAAQ,EACN,4BAAe,CAAC,cAAc,EAC9B,qBAAqB,KAAK,oCAAoC;YAC5D,8CAA8C,CACjD,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerCommand(program: Command): void;
3
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBtD"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCommand = registerCommand;
4
+ const exit_codes_1 = require("../lib/exit-codes");
5
+ function registerCommand(program) {
6
+ program
7
+ .command('run <capability> [args...]')
8
+ .summary('Invoke a capability via the local Xema (STUB)')
9
+ .description('POSTs `{ ref, input }` to xema-capability-router. Requires a ' +
10
+ 'running router on localhost; start one with `xema dev`. Full ' +
11
+ 'input parsing + auth scaffolding lands in Phase J.2 follow-up.')
12
+ .option('--router-url <url>', 'Override the local router URL', 'http://localhost:7332')
13
+ .action((capability, args, _opts) => {
14
+ (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.NotImplemented, `xema run ${capability}${args.length > 0 ? ` ${args.join(' ')}` : ''}: ` +
15
+ 'wire-up to capability-router pending Phase J.2 full composition.');
16
+ });
17
+ }
18
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":";;AAYA,0CAqBC;AAjCD,kDAA8D;AAY9D,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,4BAA4B,CAAC;SACrC,OAAO,CAAC,+CAA+C,CAAC;SACxD,WAAW,CACV,+DAA+D;QAC7D,+DAA+D;QAC/D,gEAAgE,CACnE;SACA,MAAM,CACL,oBAAoB,EACpB,+BAA+B,EAC/B,uBAAuB,CACxB;SACA,MAAM,CAAC,CAAC,UAAkB,EAAE,IAAc,EAAE,KAA4B,EAAE,EAAE;QAC3E,IAAA,qBAAQ,EACN,4BAAe,CAAC,cAAc,EAC9B,YAAY,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;YACtE,kEAAkE,CACrE,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerCommand(program: Command): void;
3
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoBtD"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCommand = registerCommand;
4
+ const exit_codes_1 = require("../lib/exit-codes");
5
+ function registerCommand(program) {
6
+ program
7
+ .command('serve')
8
+ .summary('Boot Xema as separate processes (STUB)')
9
+ .description('Multi-process self-host mode (plan v4.3 §6 Phase J.3 — deferred ' +
10
+ 'to Phase O). Currently a stub: prints the planned profile + ' +
11
+ 'exits with NotImplemented so CI scripts can branch.')
12
+ .requiredOption('--profile <profile>', 'Deployment profile: single-instance | cluster')
13
+ .action((opts) => {
14
+ (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.NotImplemented, `xema serve --profile=${opts.profile} is not implemented yet.\n` +
15
+ 'Tracked: plan v4.3 §6 Phase J.3 + Phase O (per-repo CI + Helm).');
16
+ });
17
+ }
18
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":";;AAaA,0CAoBC;AAjCD,kDAA8D;AAa9D,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,OAAO,CAAC,wCAAwC,CAAC;SACjD,WAAW,CACV,kEAAkE;QAChE,8DAA8D;QAC9D,qDAAqD,CACxD;SACA,cAAc,CACb,qBAAqB,EACrB,+CAA+C,CAChD;SACA,MAAM,CAAC,CAAC,IAAyB,EAAE,EAAE;QACpC,IAAA,qBAAQ,EACN,4BAAe,CAAC,cAAc,EAC9B,wBAAwB,IAAI,CAAC,OAAO,4BAA4B;YAC9D,iEAAiE,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerCommand(program: Command): void;
3
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/commands/shell.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAetD"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCommand = registerCommand;
4
+ const exit_codes_1 = require("../lib/exit-codes");
5
+ function registerCommand(program) {
6
+ program
7
+ .command('shell')
8
+ .summary('Launch the interactive Xema shell (STUB)')
9
+ .description('Interactive REPL routing commands through xema-capability-router. ' +
10
+ 'Implementation lands in Phase F.1 once shell built-ins become ' +
11
+ 'embedded biomes.')
12
+ .action(() => {
13
+ (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.NotImplemented, 'xema shell: interactive shell coming in Phase F.1 embedded biomes.');
14
+ });
15
+ }
16
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/commands/shell.ts"],"names":[],"mappings":";;AAUA,0CAeC;AAzBD,kDAA8D;AAU9D,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,OAAO,CAAC,0CAA0C,CAAC;SACnD,WAAW,CACV,oEAAoE;QAClE,gEAAgE;QAChE,kBAAkB,CACrB;SACA,MAAM,CAAC,GAAG,EAAE;QACX,IAAA,qBAAQ,EACN,4BAAe,CAAC,cAAc,EAC9B,oEAAoE,CACrE,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface DevOrchestratorOptions {
2
+ readonly kernelPort?: number | undefined;
3
+ readonly routerPort?: number | undefined;
4
+ readonly skipPreflight?: boolean | undefined;
5
+ }
6
+ export declare function runDevOrchestrator(opts?: DevOrchestratorOptions): Promise<void>;
7
+ //# sourceMappingURL=dev-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-orchestrator.d.ts","sourceRoot":"","sources":["../../src/dev/dev-orchestrator.ts"],"names":[],"mappings":"AAmMA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAMzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9C;AAsBD,wBAAsB,kBAAkB,CACtC,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,IAAI,CAAC,CA6Xf"}
@@ -0,0 +1,366 @@
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
+ const siblingDistDir = (0, node_path_1.resolve)(__dirname, opts.siblingAppDir, 'dist');
337
+ const appModulePath = (0, node_path_1.resolve)(siblingDistDir, 'app.module.js');
338
+ const mainModulePath = (0, node_path_1.resolve)(siblingDistDir, 'main.js');
339
+ if (!(0, node_fs_1.existsSync)(appModulePath)) {
340
+ throw new Error(`${opts.name} dist not found at ${appModulePath}. ` +
341
+ `Run \`pnpm --filter ${opts.name} build\` first, or use \`pnpm refresh\`.`);
342
+ }
343
+ void mainModulePath;
344
+ const bundle = requireCommonJs(appModulePath);
345
+ if (typeof bundle.AppModule !== 'function' && typeof bundle.AppModule !== 'object') {
346
+ throw new Error(`${opts.name} dist did not export an \`AppModule\` class ` +
347
+ `from ${appModulePath}.`);
348
+ }
349
+ const nestCore = requireCommonJs(require.resolve('@nestjs/core'));
350
+ const app = await nestCore.NestFactory.create(bundle.AppModule, {
351
+ logger: ['error', 'warn', 'log'],
352
+ abortOnError: false,
353
+ });
354
+ await app.listen(opts.port);
355
+ const url = await app.getUrl();
356
+ return {
357
+ name: opts.name,
358
+ url,
359
+ close: () => app.close(),
360
+ };
361
+ }
362
+ function requireCommonJs(modulePath) {
363
+ const loaded = require(modulePath);
364
+ return loaded;
365
+ }
366
+ //# sourceMappingURL=dev-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-orchestrator.js","sourceRoot":"","sources":["../../src/dev/dev-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const PORT_MAP: Readonly<Record<string, number>>;
2
+ export declare const SERVICE_URL_ENV_VARS: Readonly<Record<string, string>>;
3
+ export declare const INFRA_URL_DEFAULTS: Readonly<Record<string, string>>;
4
+ export declare const DEV_AUTH_DEFAULTS: Readonly<Record<string, string>>;
5
+ export declare function applyDevEnvDefaults(env?: NodeJS.ProcessEnv): ReadonlyArray<string>;
6
+ //# sourceMappingURL=env-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-defaults.d.ts","sourceRoot":"","sources":["../../src/dev/env-defaults.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoDpD,CAAC;AASH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoChE,CAAC;AAQH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ9D,CAAC;AAeH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7D,CAAC;AAOH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,aAAa,CAAC,MAAM,CAAC,CA8B/F"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEV_AUTH_DEFAULTS = exports.INFRA_URL_DEFAULTS = exports.SERVICE_URL_ENV_VARS = exports.PORT_MAP = void 0;
4
+ exports.applyDevEnvDefaults = applyDevEnvDefaults;
5
+ exports.PORT_MAP = Object.freeze({
6
+ 'xema-kernel-server': 7331,
7
+ 'xema-capability-router': 7332,
8
+ 'catalog-api': 7333,
9
+ 'object-registry-api': 7334,
10
+ 'public-gateway-api': 7335,
11
+ 'audit-log-api': 7336,
12
+ 'authorization-api': 7337,
13
+ 'capability-registry-api': 7338,
14
+ 'user-hub-api': 7339,
15
+ 'workspace-storage-pool-api': 7340,
16
+ 'document-render-api': 7341,
17
+ 'workspace-git-api': 7342,
18
+ 'memory-api': 7343,
19
+ 'skill-registry-api': 7345,
20
+ 'project-registry-api': 7349,
21
+ 'knowledge-base-api': 7350,
22
+ 'activity-feed-api': 7360,
23
+ 'xema-store-api': 7357,
24
+ 'llm-registry-api': 7344,
25
+ 'agent-session-api': 7346,
26
+ 'artifact-store-api': 7347,
27
+ 'workflow-engine-api': 7348,
28
+ 'backlog-api': 7351,
29
+ 'mcp-gateway-api': 7352,
30
+ 'connector-gateway-api': 7353,
31
+ 'biome-host-api': 7354,
32
+ 'workspace-orchestrator-api': 7355,
33
+ 'workload-runtime-api': 7356,
34
+ 'xema-shell-api': 7358,
35
+ 'deliverable-specs-api': 7359,
36
+ 'search-api': 7361,
37
+ 'app-runtime-api': 7362,
38
+ 'org-database-pool-api': 7363,
39
+ 'container-registry-api': 7364,
40
+ 'identity-api': 7380,
41
+ });
42
+ exports.SERVICE_URL_ENV_VARS = Object.freeze({
43
+ IDENTITY_API_URL: 'identity-api',
44
+ AUTHORIZATION_API_URL: 'authorization-api',
45
+ AUDIT_LOG_API_URL: 'audit-log-api',
46
+ CAPABILITY_REGISTRY_API_URL: 'capability-registry-api',
47
+ CATALOG_API_URL: 'catalog-api',
48
+ OBJECT_REGISTRY_API_URL: 'object-registry-api',
49
+ USER_HUB_API_URL: 'user-hub-api',
50
+ PUBLIC_GATEWAY_API_URL: 'public-gateway-api',
51
+ WORKSPACE_STORAGE_POOL_API_URL: 'workspace-storage-pool-api',
52
+ WORKSPACE_GIT_API_URL: 'workspace-git-api',
53
+ DOCUMENT_RENDER_API_URL: 'document-render-api',
54
+ MEMORY_API_URL: 'memory-api',
55
+ LLM_REGISTRY_API_URL: 'llm-registry-api',
56
+ SKILL_REGISTRY_API_URL: 'skill-registry-api',
57
+ AGENT_SESSION_API_URL: 'agent-session-api',
58
+ AGENT_SESSION_API_INTERNAL_URL: 'agent-session-api',
59
+ ARTIFACT_STORE_API_URL: 'artifact-store-api',
60
+ WORKFLOW_ENGINE_API_URL: 'workflow-engine-api',
61
+ PROJECT_REGISTRY_API_URL: 'project-registry-api',
62
+ KNOWLEDGE_BASE_API_URL: 'knowledge-base-api',
63
+ BACKLOG_API_URL: 'backlog-api',
64
+ MCP_GATEWAY_API_URL: 'mcp-gateway-api',
65
+ CONNECTOR_GATEWAY_API_URL: 'connector-gateway-api',
66
+ BIOME_HOST_API_URL: 'biome-host-api',
67
+ WORKSPACE_ORCHESTRATOR_API_URL: 'workspace-orchestrator-api',
68
+ WORKLOAD_RUNTIME_API_URL: 'workload-runtime-api',
69
+ WORKLOAD_RUNTIME_API_INTERNAL_URL: 'workload-runtime-api',
70
+ XEMA_STORE_API_URL: 'xema-store-api',
71
+ XEMA_CAPABILITY_ROUTER_URL: 'xema-capability-router',
72
+ DELIVERABLE_SPECS_API_URL: 'deliverable-specs-api',
73
+ INTEGRATION_ADAPTERS_API_URL: 'connector-gateway-api',
74
+ INTEGRATION_ADAPTERS_API_INTERNAL_URL: 'connector-gateway-api',
75
+ });
76
+ exports.INFRA_URL_DEFAULTS = Object.freeze({
77
+ DATABASE_URL: 'postgresql://xema:xema@127.0.0.1:5432/xema?schema=public',
78
+ REDIS_URL: 'redis://127.0.0.1:6379',
79
+ EVENT_HUB_URL: 'http://127.0.0.1:3128',
80
+ WEBHOOK_URL: 'http://127.0.0.1:3128/webhooks',
81
+ TEMPORAL_ADDRESS: '127.0.0.1:7233',
82
+ TEMPORAL_NAMESPACE: 'default',
83
+ OPENSEARCH_URL: 'http://127.0.0.1:9200',
84
+ });
85
+ exports.DEV_AUTH_DEFAULTS = Object.freeze({
86
+ JWT_ISSUER: 'http://127.0.0.1:8080/realms/xema',
87
+ JWT_PUBLIC_KEY_URL: 'http://127.0.0.1:8080/realms/xema/protocol/openid-connect/certs',
88
+ IDENTITY_API_INTERNAL_TOKEN: 'dev-internal-token',
89
+ NODE_ENV: 'development',
90
+ });
91
+ function applyDevEnvDefaults(env = process.env) {
92
+ const applied = [];
93
+ const setIfMissing = (name, value) => {
94
+ if (env[name] === undefined || env[name] === '') {
95
+ env[name] = value;
96
+ applied.push(name);
97
+ }
98
+ };
99
+ for (const [envVar, serviceName] of Object.entries(exports.SERVICE_URL_ENV_VARS)) {
100
+ const port = exports.PORT_MAP[serviceName];
101
+ if (port === undefined) {
102
+ throw new Error(`applyDevEnvDefaults: SERVICE_URL_ENV_VARS["${envVar}"] points at "${serviceName}" ` +
103
+ `which is missing from PORT_MAP. Add it to PORT_MAP in env-defaults.ts.`);
104
+ }
105
+ setIfMissing(envVar, `http://127.0.0.1:${port}`);
106
+ }
107
+ for (const [envVar, value] of Object.entries(exports.INFRA_URL_DEFAULTS)) {
108
+ setIfMissing(envVar, value);
109
+ }
110
+ for (const [envVar, value] of Object.entries(exports.DEV_AUTH_DEFAULTS)) {
111
+ setIfMissing(envVar, value);
112
+ }
113
+ return applied;
114
+ }
115
+ //# sourceMappingURL=env-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-defaults.js","sourceRoot":"","sources":["../../src/dev/env-defaults.ts"],"names":[],"mappings":";;;AAuLA,kDA8BC;AA3KY,QAAA,QAAQ,GAAqC,MAAM,CAAC,MAAM,CAAC;IAEtE,oBAAoB,EAAE,IAAI;IAC1B,wBAAwB,EAAE,IAAI;IAE9B,aAAa,EAAE,IAAI;IACnB,qBAAqB,EAAE,IAAI;IAC3B,oBAAoB,EAAE,IAAI;IAC1B,eAAe,EAAE,IAAI;IAErB,mBAAmB,EAAE,IAAI;IACzB,yBAAyB,EAAE,IAAI;IAC/B,cAAc,EAAE,IAAI;IACpB,4BAA4B,EAAE,IAAI;IAClC,qBAAqB,EAAE,IAAI;IAC3B,mBAAmB,EAAE,IAAI;IAIzB,YAAY,EAAE,IAAI;IAClB,oBAAoB,EAAE,IAAI;IAC1B,sBAAsB,EAAE,IAAI;IAC5B,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,gBAAgB,EAAE,IAAI;IAKtB,kBAAkB,EAAE,IAAI;IACxB,mBAAmB,EAAE,IAAI;IACzB,oBAAoB,EAAE,IAAI;IAC1B,qBAAqB,EAAE,IAAI;IAC3B,aAAa,EAAE,IAAI;IACnB,iBAAiB,EAAE,IAAI;IACvB,uBAAuB,EAAE,IAAI;IAC7B,gBAAgB,EAAE,IAAI;IACtB,4BAA4B,EAAE,IAAI;IAClC,sBAAsB,EAAE,IAAI;IAC5B,gBAAgB,EAAE,IAAI;IACtB,uBAAuB,EAAE,IAAI;IAC7B,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,IAAI;IACvB,uBAAuB,EAAE,IAAI;IAC7B,wBAAwB,EAAE,IAAI;IAO9B,cAAc,EAAE,IAAI;CACrB,CAAC,CAAC;AASU,QAAA,oBAAoB,GAAqC,MAAM,CAAC,MAAM,CAAC;IAIlF,gBAAgB,EAAE,cAAc;IAChC,qBAAqB,EAAE,mBAAmB;IAC1C,iBAAiB,EAAE,eAAe;IAClC,2BAA2B,EAAE,yBAAyB;IACtD,eAAe,EAAE,aAAa;IAC9B,uBAAuB,EAAE,qBAAqB;IAC9C,gBAAgB,EAAE,cAAc;IAChC,sBAAsB,EAAE,oBAAoB;IAC5C,8BAA8B,EAAE,4BAA4B;IAC5D,qBAAqB,EAAE,mBAAmB;IAC1C,uBAAuB,EAAE,qBAAqB;IAC9C,cAAc,EAAE,YAAY;IAC5B,oBAAoB,EAAE,kBAAkB;IACxC,sBAAsB,EAAE,oBAAoB;IAC5C,qBAAqB,EAAE,mBAAmB;IAC1C,8BAA8B,EAAE,mBAAmB;IACnD,sBAAsB,EAAE,oBAAoB;IAC5C,uBAAuB,EAAE,qBAAqB;IAC9C,wBAAwB,EAAE,sBAAsB;IAChD,sBAAsB,EAAE,oBAAoB;IAC5C,eAAe,EAAE,aAAa;IAC9B,mBAAmB,EAAE,iBAAiB;IACtC,yBAAyB,EAAE,uBAAuB;IAClD,kBAAkB,EAAE,gBAAgB;IACpC,8BAA8B,EAAE,4BAA4B;IAC5D,wBAAwB,EAAE,sBAAsB;IAChD,iCAAiC,EAAE,sBAAsB;IACzD,kBAAkB,EAAE,gBAAgB;IACpC,0BAA0B,EAAE,wBAAwB;IACpD,yBAAyB,EAAE,uBAAuB;IAClD,4BAA4B,EAAE,uBAAuB;IACrD,qCAAqC,EAAE,uBAAuB;CAC/D,CAAC,CAAC;AAQU,QAAA,kBAAkB,GAAqC,MAAM,CAAC,MAAM,CAAC;IAChF,YAAY,EAAE,0DAA0D;IACxE,SAAS,EAAE,wBAAwB;IACnC,aAAa,EAAE,uBAAuB;IACtC,WAAW,EAAE,gCAAgC;IAC7C,gBAAgB,EAAE,gBAAgB;IAClC,kBAAkB,EAAE,SAAS;IAC7B,cAAc,EAAE,uBAAuB;CACxC,CAAC,CAAC;AAeU,QAAA,iBAAiB,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC/E,UAAU,EAAE,mCAAmC;IAC/C,kBAAkB,EAChB,iEAAiE;IACnE,2BAA2B,EAAE,oBAAoB;IACjD,QAAQ,EAAE,aAAa;CACxB,CAAC,CAAC;AAOH,SAAgB,mBAAmB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACtE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAAa,EAAQ,EAAE;QACzD,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAGF,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,4BAAoB,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,gBAAQ,CAAC,WAAW,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAIvB,MAAM,IAAI,KAAK,CACb,8CAA8C,MAAM,iBAAiB,WAAW,IAAI;gBAClF,wEAAwE,CAC3E,CAAC;QACJ,CAAC;QACD,YAAY,CAAC,MAAM,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,0BAAkB,CAAC,EAAE,CAAC;QACjE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,yBAAiB,CAAC,EAAE,CAAC;QAChE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}