@xemahq/xema 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/cli.js +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +47 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +6 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/runtime/config/schema.d.ts +6 -0
- package/dist/runtime/config/schema.d.ts.map +1 -1
- package/dist/runtime/config/schema.js +8 -1
- package/dist/runtime/config/schema.js.map +1 -1
- package/dist/runtime/env-seeder.d.ts.map +1 -1
- package/dist/runtime/env-seeder.js +13 -4
- package/dist/runtime/env-seeder.js.map +1 -1
- package/dist/runtime/launch.d.ts.map +1 -1
- package/dist/runtime/launch.js +11 -3
- package/dist/runtime/launch.js.map +1 -1
- package/dist/runtime/runner/native-runner.d.ts +7 -1
- package/dist/runtime/runner/native-runner.d.ts.map +1 -1
- package/dist/runtime/runner/native-runner.js +25 -6
- package/dist/runtime/runner/native-runner.js.map +1 -1
- package/examples/01-local-monolith.yaml +18 -0
- package/examples/02-local-container-full.yaml +21 -0
- package/examples/03-byo-infra.yaml +17 -0
- package/examples/04-subset-knowledge.yaml +17 -0
- package/examples/05-appliance-helm.yaml +10 -0
- package/examples/README.md +19 -0
- package/package.json +3 -2
- package/xema.config.example.yaml +1 -0
package/README.md
CHANGED
|
@@ -94,6 +94,27 @@ app:
|
|
|
94
94
|
dependency, or a disabled-but-mandatory infra component — never a silent
|
|
95
95
|
degradation.
|
|
96
96
|
|
|
97
|
+
### Memory-optimized single-process mode + realtime dev
|
|
98
|
+
|
|
99
|
+
For a low-RAM local box or appliance, collapse the native composition into ONE
|
|
100
|
+
process (in-process registry + SQLite, no etcd):
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
xema up --monolith # or: app.processModel: monolith in xema.config.yaml
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Monolith is native-only and single-tenant — it trades fault isolation /
|
|
107
|
+
horizontal scaling for RAM. Prisma-bound services that can't run in-process are
|
|
108
|
+
fail-fast skip-logged (full collapse is gated on a cross-repo Prisma change;
|
|
109
|
+
tracked in the plan). The default `distributed` model is unchanged.
|
|
110
|
+
|
|
111
|
+
For development, see code changes live — the composition restarts when service
|
|
112
|
+
output changes (pair with each service's own `tsc -w` / `turbo watch`):
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
xema dev --watch # add --monolith for the low-RAM single-process loop
|
|
116
|
+
```
|
|
117
|
+
|
|
97
118
|
## Author biomes & run capabilities
|
|
98
119
|
|
|
99
120
|
```bash
|
package/dist/cli.js
CHANGED
|
@@ -19,7 +19,7 @@ const serve_1 = require("./commands/serve");
|
|
|
19
19
|
const shell_1 = require("./commands/shell");
|
|
20
20
|
const status_1 = require("./commands/status");
|
|
21
21
|
const up_1 = require("./commands/up");
|
|
22
|
-
const CLI_VERSION = '0.2.
|
|
22
|
+
const CLI_VERSION = '0.2.2';
|
|
23
23
|
function buildProgram() {
|
|
24
24
|
const program = new commander_1.Command();
|
|
25
25
|
program
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2BtD"}
|
package/dist/commands/dev.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerCommand = registerCommand;
|
|
4
|
+
const node_child_process_1 = require("node:child_process");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
4
6
|
const env_defaults_1 = require("../dev/env-defaults");
|
|
5
7
|
const infra_preflight_1 = require("../dev/infra-preflight");
|
|
6
8
|
const exit_codes_1 = require("../lib/exit-codes");
|
|
7
9
|
const schema_1 = require("../runtime/config/schema");
|
|
8
10
|
const foreground_1 = require("../runtime/foreground");
|
|
11
|
+
const WATCH_CHILD_ENV = 'XEMA_DEV_WATCH_CHILD';
|
|
9
12
|
function registerCommand(program) {
|
|
10
13
|
program
|
|
11
14
|
.command('dev')
|
|
@@ -16,9 +19,15 @@ function registerCommand(program) {
|
|
|
16
19
|
'Per-service skip-mode tolerates individual failures.')
|
|
17
20
|
.option('--edition <id>', 'Distribution edition (default: oss)')
|
|
18
21
|
.option('--web', 'Also start the host-shell frontend')
|
|
22
|
+
.option('--monolith', 'Single-process mode (in-process registry + SQLite, no etcd)')
|
|
23
|
+
.option('--watch', 'Restart the composition when service output changes (realtime dev)')
|
|
19
24
|
.option('--skip-preflight', 'Skip the infra TCP probe (debugging only — masks real outages).')
|
|
20
25
|
.action(async (opts) => {
|
|
21
26
|
try {
|
|
27
|
+
if (opts.watch && process.env[WATCH_CHILD_ENV] !== '1') {
|
|
28
|
+
reexecUnderWatch(opts);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
22
31
|
await runDev(opts);
|
|
23
32
|
}
|
|
24
33
|
catch (err) {
|
|
@@ -27,11 +36,44 @@ function registerCommand(program) {
|
|
|
27
36
|
}
|
|
28
37
|
});
|
|
29
38
|
}
|
|
39
|
+
function reexecUnderWatch(opts) {
|
|
40
|
+
const cliEntry = (0, node_path_1.join)(__dirname, '..', 'cli.js');
|
|
41
|
+
const args = ['--watch', cliEntry, 'dev'];
|
|
42
|
+
if (opts.edition) {
|
|
43
|
+
args.push('--edition', opts.edition);
|
|
44
|
+
}
|
|
45
|
+
if (opts.web) {
|
|
46
|
+
args.push('--web');
|
|
47
|
+
}
|
|
48
|
+
if (opts.monolith) {
|
|
49
|
+
args.push('--monolith');
|
|
50
|
+
}
|
|
51
|
+
if (opts.skipPreflight) {
|
|
52
|
+
args.push('--skip-preflight');
|
|
53
|
+
}
|
|
54
|
+
console.log('xema dev --watch — restarting on source change (Node --watch). Ctrl+C to stop.');
|
|
55
|
+
const child = (0, node_child_process_1.spawn)(process.execPath, args, {
|
|
56
|
+
stdio: 'inherit',
|
|
57
|
+
env: { ...process.env, [WATCH_CHILD_ENV]: '1', NODE_OPTIONS: watchNodeOptions() },
|
|
58
|
+
});
|
|
59
|
+
child.on('exit', (code) => {
|
|
60
|
+
process.exit(code ?? 0);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function watchNodeOptions() {
|
|
64
|
+
const existing = process.env.NODE_OPTIONS ?? '';
|
|
65
|
+
if (existing.includes('--conditions=xema-source')) {
|
|
66
|
+
return existing;
|
|
67
|
+
}
|
|
68
|
+
return `${existing} --conditions=xema-source`.trim();
|
|
69
|
+
}
|
|
30
70
|
async function runDev(opts) {
|
|
31
71
|
const applied = (0, env_defaults_1.applyDevEnvDefaults)();
|
|
72
|
+
const monolith = Boolean(opts.monolith);
|
|
32
73
|
console.log('xema dev — native single-binary composition (lock-driven)');
|
|
33
74
|
console.log('-'.repeat(60));
|
|
34
75
|
console.log(` Env defaults : ${String(applied.length)} applied (user values preserved)`);
|
|
76
|
+
console.log(` Process model: ${monolith ? 'monolith (1 process, SQLite, no etcd)' : 'distributed'}`);
|
|
35
77
|
if (opts.skipPreflight !== true) {
|
|
36
78
|
const report = await (0, infra_preflight_1.runInfraPreflight)();
|
|
37
79
|
if (!report.allReachable) {
|
|
@@ -47,7 +89,11 @@ async function runDev(opts) {
|
|
|
47
89
|
console.log('');
|
|
48
90
|
const config = (0, schema_1.parseXemaConfig)({
|
|
49
91
|
edition: opts.edition ?? 'oss',
|
|
50
|
-
app: {
|
|
92
|
+
app: {
|
|
93
|
+
substrate: schema_1.Substrate.Native,
|
|
94
|
+
processModel: monolith ? schema_1.ProcessModel.Monolith : schema_1.ProcessModel.Distributed,
|
|
95
|
+
include: 'all',
|
|
96
|
+
},
|
|
51
97
|
});
|
|
52
98
|
await (0, foreground_1.bringUpForeground)({ config, includeWeb: Boolean(opts.web), detach: false });
|
|
53
99
|
}
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuBtD"}
|
package/dist/commands/up.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerCommand = registerCommand;
|
|
4
4
|
const exit_codes_1 = require("../lib/exit-codes");
|
|
5
5
|
const loader_1 = require("../runtime/config/loader");
|
|
6
|
+
const schema_1 = require("../runtime/config/schema");
|
|
6
7
|
const foreground_1 = require("../runtime/foreground");
|
|
7
8
|
function registerCommand(program) {
|
|
8
9
|
program
|
|
@@ -15,6 +16,7 @@ function registerCommand(program) {
|
|
|
15
16
|
.option('--edition <id>', 'Distribution edition override (e.g. oss, core)')
|
|
16
17
|
.option('--web', 'Also start the host-shell frontend')
|
|
17
18
|
.option('--all', 'Start everything including the frontend')
|
|
19
|
+
.option('--monolith', 'Single-process native mode (in-process registry + SQLite, no etcd)')
|
|
18
20
|
.option('--detach', 'Leave container workloads running and return (container substrate only)')
|
|
19
21
|
.action(async (opts) => {
|
|
20
22
|
try {
|
|
@@ -32,12 +34,16 @@ async function runUp(opts) {
|
|
|
32
34
|
if (opts.edition) {
|
|
33
35
|
config.edition = opts.edition;
|
|
34
36
|
}
|
|
37
|
+
if (opts.monolith) {
|
|
38
|
+
config.app = { ...config.app, substrate: schema_1.Substrate.Native, processModel: schema_1.ProcessModel.Monolith };
|
|
39
|
+
}
|
|
35
40
|
const includeWeb = Boolean(opts.web) || Boolean(opts.all);
|
|
36
41
|
console.log('xema up — one-command launcher');
|
|
37
42
|
console.log('-'.repeat(60));
|
|
38
43
|
console.log(` config : ${loaded.source}`);
|
|
39
44
|
console.log(` edition : ${config.edition}`);
|
|
40
45
|
console.log(` substrate: ${config.app.substrate}`);
|
|
46
|
+
console.log(` process : ${config.app.processModel}`);
|
|
41
47
|
console.log('');
|
|
42
48
|
await (0, foreground_1.bringUpForeground)({ config, includeWeb, detach: Boolean(opts.detach) });
|
|
43
49
|
}
|
package/dist/commands/up.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":";;AAuBA,0CAuBC;AA9CD,kDAA8D;AAC9D,qDAA0D;AAC1D,qDAAmE;AACnE,sDAA0D;AAoB1D,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,OAAO,CAAC,yCAAyC,CAAC;SAClD,WAAW,CACV,6EAA6E;QAC3E,8EAA8E;QAC9E,wDAAwD,CAC3D;SACA,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;SACrD,MAAM,CAAC,gBAAgB,EAAE,gDAAgD,CAAC;SAC1E,MAAM,CAAC,OAAO,EAAE,oCAAoC,CAAC;SACrD,MAAM,CAAC,OAAO,EAAE,yCAAyC,CAAC;SAC1D,MAAM,CAAC,YAAY,EAAE,oEAAoE,CAAC;SAC1F,MAAM,CAAC,UAAU,EAAE,yEAAyE,CAAC;SAC7F,MAAM,CAAC,KAAK,EAAE,IAAe,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,IAAA,qBAAQ,EAAC,4BAAe,CAAC,YAAY,EAAE,mBAAmB,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,IAAe;IAClC,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IACpC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAS,CAAC,MAAM,EAAE,YAAY,EAAE,qBAAY,CAAC,QAAQ,EAAE,CAAC;IACnG,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,IAAA,8BAAiB,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -9,6 +9,10 @@ export declare enum Substrate {
|
|
|
9
9
|
Native = "native",
|
|
10
10
|
Helm = "helm"
|
|
11
11
|
}
|
|
12
|
+
export declare enum ProcessModel {
|
|
13
|
+
Distributed = "distributed",
|
|
14
|
+
Monolith = "monolith"
|
|
15
|
+
}
|
|
12
16
|
export declare enum InfraComponent {
|
|
13
17
|
Postgres = "postgres",
|
|
14
18
|
Redis = "redis",
|
|
@@ -43,6 +47,7 @@ declare const InfraComponentConfigSchema: z.ZodObject<{
|
|
|
43
47
|
export type InfraComponentConfig = z.infer<typeof InfraComponentConfigSchema>;
|
|
44
48
|
declare const AppConfigSchema: z.ZodObject<{
|
|
45
49
|
substrate: z.ZodDefault<z.ZodEnum<typeof Substrate>>;
|
|
50
|
+
processModel: z.ZodDefault<z.ZodEnum<typeof ProcessModel>>;
|
|
46
51
|
include: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
|
|
47
52
|
exclude: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
48
53
|
features: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -173,6 +178,7 @@ export declare const XemaConfigSchema: z.ZodObject<{
|
|
|
173
178
|
}, z.core.$strict>>;
|
|
174
179
|
app: z.ZodDefault<z.ZodObject<{
|
|
175
180
|
substrate: z.ZodDefault<z.ZodEnum<typeof Substrate>>;
|
|
181
|
+
processModel: z.ZodDefault<z.ZodEnum<typeof ProcessModel>>;
|
|
176
182
|
include: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
|
|
177
183
|
exclude: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
178
184
|
features: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/runtime/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,oBAAY,SAAS;IAEnB,OAAO,YAAY;IAEnB,QAAQ,aAAa;IAErB,QAAQ,aAAa;CACtB;AAGD,oBAAY,SAAS;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;IAEjB,IAAI,SAAS;CACd;AAGD,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,QAAQ,aAAa;CACtB;AAGD,oBAAY,eAAe;IAEzB,WAAW,iBAAiB;IAE5B,QAAQ,cAAc;CACvB;AAGD,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAID,QAAA,MAAM,0BAA0B;;;;;;;;;;kBAUrB,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAuB9E,QAAA,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/runtime/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,oBAAY,SAAS;IAEnB,OAAO,YAAY;IAEnB,QAAQ,aAAa;IAErB,QAAQ,aAAa;CACtB;AAGD,oBAAY,SAAS;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;IAEjB,IAAI,SAAS;CACd;AAUD,oBAAY,YAAY;IACtB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;CACtB;AAGD,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,QAAQ,aAAa;CACtB;AAGD,oBAAY,eAAe;IAEzB,WAAW,iBAAiB;IAE5B,QAAQ,cAAc;CACvB;AAGD,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAID,QAAA,MAAM,0BAA0B;;;;;;;;;;kBAUrB,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAuB9E,QAAA,MAAM,eAAe;;;;;;;;;;kBAeV,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,QAAA,MAAM,iBAAiB;;;;;;;;kBAQZ,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,QAAA,MAAM,kBAAkB;;;;kBAMb,CAAC;AACZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAelB,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAUxD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.XemaConfigSchema = exports.SecretSource = exports.WorkspaceDriver = exports.InfraComponent = exports.Substrate = exports.InfraMode = void 0;
|
|
3
|
+
exports.XemaConfigSchema = exports.SecretSource = exports.WorkspaceDriver = exports.InfraComponent = exports.ProcessModel = exports.Substrate = exports.InfraMode = void 0;
|
|
4
4
|
exports.parseXemaConfig = parseXemaConfig;
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
var InfraMode;
|
|
@@ -15,6 +15,11 @@ var Substrate;
|
|
|
15
15
|
Substrate["Native"] = "native";
|
|
16
16
|
Substrate["Helm"] = "helm";
|
|
17
17
|
})(Substrate || (exports.Substrate = Substrate = {}));
|
|
18
|
+
var ProcessModel;
|
|
19
|
+
(function (ProcessModel) {
|
|
20
|
+
ProcessModel["Distributed"] = "distributed";
|
|
21
|
+
ProcessModel["Monolith"] = "monolith";
|
|
22
|
+
})(ProcessModel || (exports.ProcessModel = ProcessModel = {}));
|
|
18
23
|
var InfraComponent;
|
|
19
24
|
(function (InfraComponent) {
|
|
20
25
|
InfraComponent["Postgres"] = "postgres";
|
|
@@ -70,6 +75,7 @@ const RosterIncludeSchema = zod_1.z.union([
|
|
|
70
75
|
const AppConfigSchema = zod_1.z
|
|
71
76
|
.object({
|
|
72
77
|
substrate: zod_1.z.nativeEnum(Substrate).default(Substrate.Container),
|
|
78
|
+
processModel: zod_1.z.nativeEnum(ProcessModel).default(ProcessModel.Distributed),
|
|
73
79
|
include: RosterIncludeSchema.default('all'),
|
|
74
80
|
exclude: zod_1.z.array(zod_1.z.string().min(1)).default([]),
|
|
75
81
|
features: zod_1.z.array(zod_1.z.string().min(1)).default([]),
|
|
@@ -104,6 +110,7 @@ exports.XemaConfigSchema = zod_1.z
|
|
|
104
110
|
infra: InfraConfigSchema.default({}),
|
|
105
111
|
app: AppConfigSchema.default({
|
|
106
112
|
substrate: Substrate.Container,
|
|
113
|
+
processModel: ProcessModel.Distributed,
|
|
107
114
|
include: 'all',
|
|
108
115
|
exclude: [],
|
|
109
116
|
features: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/runtime/config/schema.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/runtime/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-seeder.d.ts","sourceRoot":"","sources":["../../src/runtime/env-seeder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env-seeder.d.ts","sourceRoot":"","sources":["../../src/runtime/env-seeder.ts"],"names":[],"mappings":"AAUA,OAAO,EAA2C,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAItG,OAAO,KAAK,EAAE,SAAS,EAA0B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAa5C,MAAM,WAAW,SAAS;IAExB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEhD,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAID,wBAAgB,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,SAAS,CAyDxD"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.seedEnv = seedEnv;
|
|
4
|
+
const node_os_1 = require("node:os");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
4
6
|
const kernel_state_runtime_1 = require("@xemahq/kernel-state-runtime");
|
|
5
7
|
const service_registry_nest_1 = require("@xemahq/service-registry-nest");
|
|
6
8
|
const schema_1 = require("./config/schema");
|
|
@@ -18,10 +20,17 @@ function seedEnv(ctx) {
|
|
|
18
20
|
base.OPENSEARCH_URL = infraUrl(ctx, schema_1.InfraComponent.Search) ?? 'http://127.0.0.1:9200';
|
|
19
21
|
base.TEMPORAL_ADDRESS = stripScheme(infraUrl(ctx, schema_1.InfraComponent.Temporal) ?? '127.0.0.1:7233');
|
|
20
22
|
base.TEMPORAL_NAMESPACE = 'default';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
if (ctx.config.app.processModel === schema_1.ProcessModel.Monolith) {
|
|
24
|
+
base.XEMA_KERNEL_STATE_PROFILE = kernel_state_runtime_1.KernelStateProfile.Dev;
|
|
25
|
+
base[service_registry_nest_1.SERVICE_REGISTRY_ADAPTER_ENV_VAR] = service_registry_nest_1.ServiceRegistryAdapterKind.InProcess;
|
|
26
|
+
base.XEMA_KERNEL_STATE_FILE = (0, node_path_1.join)((0, node_os_1.homedir)(), '.xema', 'monolith', 'kernel-state.sqlite');
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const etcd = infraUrl(ctx, schema_1.InfraComponent.Etcd) ?? '127.0.0.1:2379';
|
|
30
|
+
base.XEMA_ETCD_ENDPOINTS = stripScheme(etcd);
|
|
31
|
+
base.XEMA_KERNEL_STATE_PROFILE = kernel_state_runtime_1.KernelStateProfile.Cluster;
|
|
32
|
+
base[service_registry_nest_1.SERVICE_REGISTRY_ADAPTER_ENV_VAR] = service_registry_nest_1.ServiceRegistryAdapterKind.KernelState;
|
|
33
|
+
}
|
|
25
34
|
const kcUrl = infraUrl(ctx, schema_1.InfraComponent.Keycloak) ?? 'http://127.0.0.1:8180';
|
|
26
35
|
const realm = ctx.infra.byComponent.get(schema_1.InfraComponent.Keycloak)?.config.realm ?? 'xema';
|
|
27
36
|
base.JWT_ISSUER = `${kcUrl}/realms/${realm}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-seeder.js","sourceRoot":"","sources":["../../src/runtime/env-seeder.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"env-seeder.js","sourceRoot":"","sources":["../../src/runtime/env-seeder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/runtime/launch.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/runtime/launch.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK3E,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAc,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAYnF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAOD,wBAAsB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAsFvE;AAaD,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAG,eAAe,CAQvF;AAYD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,KAAK,GAAG,SAAS,MAAM,EAAE,EAClC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,aAAa,CAMf;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAWA"}
|
package/dist/runtime/launch.js
CHANGED
|
@@ -24,6 +24,14 @@ async function launch(opts) {
|
|
|
24
24
|
const { config } = opts;
|
|
25
25
|
const log = opts.log ?? (() => undefined);
|
|
26
26
|
const substrate = config.app.substrate;
|
|
27
|
+
const monolith = config.app.processModel === schema_1.ProcessModel.Monolith;
|
|
28
|
+
if (monolith && substrate !== schema_1.Substrate.Native) {
|
|
29
|
+
throw new Error(`processModel "monolith" requires substrate "native" (got "${substrate}"). ` +
|
|
30
|
+
`Monolith collapses services into one host process; containers/helm are inherently multi-process.`);
|
|
31
|
+
}
|
|
32
|
+
if (monolith) {
|
|
33
|
+
log('mode : monolith (single process, in-process registry + SQLite, no etcd)');
|
|
34
|
+
}
|
|
27
35
|
const infra = (0, infra_plan_1.resolveInfraPlan)(config);
|
|
28
36
|
for (const warning of infra.warnings) {
|
|
29
37
|
log(`WARN ${warning}`);
|
|
@@ -57,7 +65,7 @@ async function launch(opts) {
|
|
|
57
65
|
log('infra : healthy + bootstrapped (per-service databases, object-store buckets)');
|
|
58
66
|
}
|
|
59
67
|
const ports = (0, port_map_1.assignPorts)(roster);
|
|
60
|
-
const runner = selectRunner(substrate);
|
|
68
|
+
const runner = selectRunner(substrate, monolith);
|
|
61
69
|
const supervisor = new supervisor_1.Supervisor({
|
|
62
70
|
roster,
|
|
63
71
|
waves,
|
|
@@ -76,14 +84,14 @@ async function launch(opts) {
|
|
|
76
84
|
shutdown: () => supervisor.shutdown(),
|
|
77
85
|
};
|
|
78
86
|
}
|
|
79
|
-
function selectRunner(substrate) {
|
|
87
|
+
function selectRunner(substrate, monolith) {
|
|
80
88
|
if (substrate === schema_1.Substrate.Container) {
|
|
81
89
|
return new container_runner_1.ContainerRunner({ network: NETWORK, containerPort: CONTAINER_PORT });
|
|
82
90
|
}
|
|
83
91
|
if (substrate === schema_1.Substrate.Helm) {
|
|
84
92
|
return new helm_runner_1.HelmRunner();
|
|
85
93
|
}
|
|
86
|
-
return new native_runner_1.NativeRunner();
|
|
94
|
+
return new native_runner_1.NativeRunner({ noFork: monolith });
|
|
87
95
|
}
|
|
88
96
|
function buildSelection(config, includeWeb) {
|
|
89
97
|
const include = normalizeInclude(config.app.include, config.app.features);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/runtime/launch.ts"],"names":[],"mappings":";;AA+CA,
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/runtime/launch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { ServiceRunnerKind, type RunningService, type ServiceRunner, type StartServiceInput } from './service-runner';
|
|
2
|
+
export interface NativeRunnerOptions {
|
|
3
|
+
readonly monorepoRoot?: string;
|
|
4
|
+
readonly noFork?: boolean;
|
|
5
|
+
}
|
|
2
6
|
export declare class NativeRunner implements ServiceRunner {
|
|
3
7
|
readonly kind = ServiceRunnerKind.Native;
|
|
4
8
|
private readonly monorepoRoot;
|
|
5
|
-
|
|
9
|
+
private readonly noFork;
|
|
10
|
+
constructor(opts?: NativeRunnerOptions);
|
|
6
11
|
start(input: StartServiceInput): Promise<RunningService>;
|
|
12
|
+
private resolveServiceRoot;
|
|
7
13
|
private bootInProcess;
|
|
8
14
|
}
|
|
9
15
|
//# sourceMappingURL=native-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/native-runner.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAqB1B,qBAAa,YAAa,YAAW,aAAa;IAChD,QAAQ,CAAC,IAAI,4BAA4B;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;
|
|
1
|
+
{"version":3,"file":"native-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/native-runner.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAqB1B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAU/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,QAAQ,CAAC,IAAI,4BAA4B;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAErB,IAAI,GAAE,mBAAwB;IAYpC,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAwD9D,OAAO,CAAC,kBAAkB;YAaZ,aAAa;CA6B5B"}
|
|
@@ -10,13 +10,15 @@ const service_runner_1 = require("./service-runner");
|
|
|
10
10
|
class NativeRunner {
|
|
11
11
|
kind = service_runner_1.ServiceRunnerKind.Native;
|
|
12
12
|
monorepoRoot;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
noFork;
|
|
14
|
+
constructor(opts = {}) {
|
|
15
|
+
const root = opts.monorepoRoot ?? (0, paths_1.findMonorepoRoot)();
|
|
15
16
|
if (!root) {
|
|
16
17
|
throw new Error('NativeRunner requires a monorepo checkout (built service dist/ trees). ' +
|
|
17
18
|
'Run inside the monorepo, or use the container substrate.');
|
|
18
19
|
}
|
|
19
20
|
this.monorepoRoot = root;
|
|
21
|
+
this.noFork = opts.noFork ?? false;
|
|
20
22
|
}
|
|
21
23
|
async start(input) {
|
|
22
24
|
const { entry, env, port, readinessTimeoutMs } = input;
|
|
@@ -24,13 +26,18 @@ class NativeRunner {
|
|
|
24
26
|
throw new Error(`${entry.name}: no servicePath (platform-substrate service) — not bootable natively. ` +
|
|
25
27
|
`Use the container substrate for this service.`);
|
|
26
28
|
}
|
|
27
|
-
const serviceRoot =
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
throw new Error(`${entry.name} dist not found at ${
|
|
29
|
+
const serviceRoot = this.resolveServiceRoot(entry.servicePath);
|
|
30
|
+
if (!serviceRoot) {
|
|
31
|
+
const primary = (0, node_path_1.join)(this.monorepoRoot, entry.servicePath, 'dist', 'main.js');
|
|
32
|
+
throw new Error(`${entry.name} dist not found at ${primary}. Run \`pnpm --filter ${entry.name} build\` first.`);
|
|
31
33
|
}
|
|
32
34
|
const needsFork = (0, node_fs_1.existsSync)((0, node_path_1.join)(serviceRoot, 'prisma', 'schema.prisma'));
|
|
33
35
|
applyEnv(env);
|
|
36
|
+
if (needsFork && this.noFork) {
|
|
37
|
+
throw new Error(`monolith mode: ${entry.name} is Prisma-bound and cannot run in-process ` +
|
|
38
|
+
`(the generated .prisma/client does not resolve under pnpm's isolated linker). ` +
|
|
39
|
+
`Use the distributed process model, or land the Prisma generator-output relocation (plan §18).`);
|
|
40
|
+
}
|
|
34
41
|
if (needsFork) {
|
|
35
42
|
const child = await (0, forked_worker_1.spawnForkedWorker)({
|
|
36
43
|
name: entry.name,
|
|
@@ -47,6 +54,18 @@ class NativeRunner {
|
|
|
47
54
|
}
|
|
48
55
|
return this.bootInProcess(entry.name, serviceRoot, port, readinessTimeoutMs);
|
|
49
56
|
}
|
|
57
|
+
resolveServiceRoot(servicePath) {
|
|
58
|
+
const candidates = [
|
|
59
|
+
(0, node_path_1.join)(this.monorepoRoot, servicePath),
|
|
60
|
+
(0, node_path_1.join)(this.monorepoRoot, (0, node_path_1.dirname)(servicePath)),
|
|
61
|
+
];
|
|
62
|
+
for (const candidate of candidates) {
|
|
63
|
+
if ((0, node_fs_1.existsSync)((0, node_path_1.join)(candidate, 'dist', 'main.js'))) {
|
|
64
|
+
return candidate;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
50
69
|
async bootInProcess(name, serviceRoot, port, readinessTimeoutMs) {
|
|
51
70
|
const appModulePath = (0, node_path_1.join)(serviceRoot, 'dist', 'app.module.js');
|
|
52
71
|
if (!(0, node_fs_1.existsSync)(appModulePath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-runner.js","sourceRoot":"","sources":["../../../src/runtime/runner/native-runner.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"native-runner.js","sourceRoot":"","sources":["../../../src/runtime/runner/native-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Lowest-RAM local run — the memory-optimized single-process mode.
|
|
2
|
+
# All in-process-capable services share ONE Node process + ONE in-process
|
|
3
|
+
# registry + a SQLite KernelState file; NO etcd. Prisma-bound services that
|
|
4
|
+
# can't run in-process are fail-fast skip-logged (see plan §18).
|
|
5
|
+
# Run: cp examples/01-local-monolith.yaml xema.config.yaml && xema up
|
|
6
|
+
# Or simply: xema up --monolith (no config file needed)
|
|
7
|
+
edition: oss
|
|
8
|
+
app:
|
|
9
|
+
substrate: native # monolith is native-only
|
|
10
|
+
processModel: monolith # 1 process, SQLite, no etcd
|
|
11
|
+
include: [ all ]
|
|
12
|
+
infra:
|
|
13
|
+
# Native substrate assumes you already run infra (e.g. docker compose up).
|
|
14
|
+
# If you want the launcher to manage infra too, use the container substrate
|
|
15
|
+
# (see 02-local-container-full.yaml).
|
|
16
|
+
postgres: { mode: external, url: postgresql://postgres:postgres@127.0.0.1:5432 }
|
|
17
|
+
redis: { mode: external, url: redis://127.0.0.1:6379 }
|
|
18
|
+
keycloak: { mode: external, url: http://127.0.0.1:8180, realm: xema }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Full local stack in containers — the launcher brings up + bootstraps managed
|
|
2
|
+
# infra (Postgres DBs, object-store buckets), pulls content-addressed service
|
|
3
|
+
# images, and starts the frontend. Needs Docker or Podman.
|
|
4
|
+
# Run: cp examples/02-local-container-full.yaml xema.config.yaml && xema up
|
|
5
|
+
# Manage: xema status | xema logs <svc> -f | xema down [--purge]
|
|
6
|
+
edition: oss
|
|
7
|
+
app:
|
|
8
|
+
substrate: container
|
|
9
|
+
include: [ all ]
|
|
10
|
+
web: { enabled: true } # also start the host-shell frontend
|
|
11
|
+
infra:
|
|
12
|
+
postgres: { mode: managed }
|
|
13
|
+
redis: { mode: managed }
|
|
14
|
+
etcd: { mode: managed } # multi-process container substrate needs etcd
|
|
15
|
+
keycloak: { mode: managed }
|
|
16
|
+
objectStore: { mode: managed }
|
|
17
|
+
search: { mode: managed }
|
|
18
|
+
temporal: { mode: managed }
|
|
19
|
+
git: { mode: disabled }
|
|
20
|
+
secrets:
|
|
21
|
+
OPENCODE_SERVER_PASSWORD: { from: prompt }
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Bring-your-own infrastructure — you already run Postgres, Keycloak and an
|
|
2
|
+
# S3-compatible object store elsewhere; the launcher injects their URLs and
|
|
3
|
+
# health-probes them, and manages only the components you didn't bring.
|
|
4
|
+
# external = pre-provisioned (give the URL); managed = launcher runs it;
|
|
5
|
+
# disabled = not run (optional components only).
|
|
6
|
+
edition: oss
|
|
7
|
+
app:
|
|
8
|
+
substrate: container
|
|
9
|
+
include: [ all ]
|
|
10
|
+
infra:
|
|
11
|
+
postgres: { mode: external, url: postgresql://app:secret@db.corp.internal:5432 }
|
|
12
|
+
keycloak: { mode: external, url: https://sso.corp/realms/xema, realm: xema }
|
|
13
|
+
objectStore: { mode: external, url: https://s3.corp.internal, bucketPrefix: xema-, secretRef: corp-s3 }
|
|
14
|
+
redis: { mode: managed }
|
|
15
|
+
etcd: { mode: managed }
|
|
16
|
+
search: { mode: managed }
|
|
17
|
+
temporal: { mode: disabled } # this install doesn't use durable workflows
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Run only a slice of the platform to save resources. `include` accepts tier
|
|
2
|
+
# names (kernel/system/base/platform) and/or explicit service names; the
|
|
3
|
+
# launcher auto-adds each selection's hard dependencies. `features` is the same,
|
|
4
|
+
# expressed as curated capability bundles.
|
|
5
|
+
edition: oss
|
|
6
|
+
app:
|
|
7
|
+
substrate: container
|
|
8
|
+
include: [ kernel, system, knowledge-base-api, search-api ]
|
|
9
|
+
exclude: [ mailops-api ]
|
|
10
|
+
# features: [ knowledge, workflows ] # alternative: pick capabilities
|
|
11
|
+
infra:
|
|
12
|
+
postgres: { mode: managed }
|
|
13
|
+
redis: { mode: managed }
|
|
14
|
+
etcd: { mode: managed }
|
|
15
|
+
keycloak: { mode: managed }
|
|
16
|
+
objectStore: { mode: managed }
|
|
17
|
+
search: { mode: managed }
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Deploy to Kubernetes / an appliance via Helm. The launcher runs
|
|
2
|
+
# `helm upgrade --install` per service; Kubernetes owns lifecycle (rollout,
|
|
3
|
+
# restart, scaling). Infra (Postgres/etcd/...) is a cluster prerequisite, not
|
|
4
|
+
# managed by the launcher here. Env: XEMA_CHART_REPO, XEMA_NAMESPACE, KUBECONFIG.
|
|
5
|
+
# Equivalent CLI: xema serve --profile appliance
|
|
6
|
+
edition: oss
|
|
7
|
+
app:
|
|
8
|
+
substrate: helm
|
|
9
|
+
include: [ all ]
|
|
10
|
+
web: { enabled: true }
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# `xema.config.yaml` examples
|
|
2
|
+
|
|
3
|
+
Copy one of these to `xema.config.yaml` (or `~/.xema/config.yaml`) and edit:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
cp examples/01-local-monolith.yaml xema.config.yaml
|
|
7
|
+
xema up
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
| File | Use case |
|
|
11
|
+
| --- | --- |
|
|
12
|
+
| [`01-local-monolith.yaml`](./01-local-monolith.yaml) | Lowest-RAM local run — one process, SQLite, no etcd (native + monolith). |
|
|
13
|
+
| [`02-local-container-full.yaml`](./02-local-container-full.yaml) | Full local stack in containers (everything + frontend). |
|
|
14
|
+
| [`03-byo-infra.yaml`](./03-byo-infra.yaml) | Bring-your-own Postgres / Keycloak / object store; launcher runs only the rest. |
|
|
15
|
+
| [`04-subset-knowledge.yaml`](./04-subset-knowledge.yaml) | Run only a slice (tiers / services) to save resources. |
|
|
16
|
+
| [`05-appliance-helm.yaml`](./05-appliance-helm.yaml) | Deploy to Kubernetes / an appliance via Helm. |
|
|
17
|
+
|
|
18
|
+
Precedence: `--config <path>` → `./xema.config.yaml` → `~/.xema/config.yaml` →
|
|
19
|
+
built-in defaults. Every value shown is the default unless noted.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/xema",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Xema OS global CLI (plan v4.3 §6 Phase J). Single binary day-0 onboarding: `npm i -g @xemahq/xema && xema dev` boots the whole stack; `xema biome scaffold` / `install` / `publish` / `lint` author and ship biomes; `xema run <capability>` invokes through the local capability-router. Multi-platform: works without pnpm or any monorepo clone.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/cli.js",
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
11
|
"dist/**/*",
|
|
12
|
-
"xema.config.example.yaml"
|
|
12
|
+
"xema.config.example.yaml",
|
|
13
|
+
"examples/**/*"
|
|
13
14
|
],
|
|
14
15
|
"publishConfig": {
|
|
15
16
|
"registry": "https://registry.npmjs.org/",
|
package/xema.config.example.yaml
CHANGED
|
@@ -27,6 +27,7 @@ infra:
|
|
|
27
27
|
# ── application services ─────────────────────────────────────────────────────
|
|
28
28
|
app:
|
|
29
29
|
substrate: container # container | native | helm
|
|
30
|
+
processModel: distributed # distributed (microservices) | monolith (native-only: 1 process, SQLite, no etcd)
|
|
30
31
|
include: [ all ] # all | tier names (kernel/system/base/platform) | service names
|
|
31
32
|
exclude: [] # service names to drop
|
|
32
33
|
features: [] # curated capability bundles (union with include)
|