@justfortytwo/installer 1.0.0-1 → 1.0.0-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 +202 -11
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +10 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/forget.d.ts.map +1 -1
- package/dist/commands/forget.js +6 -4
- package/dist/commands/forget.js.map +1 -1
- package/dist/commands/init.d.ts +86 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +254 -56
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/pair.d.ts +8 -0
- package/dist/commands/pair.d.ts.map +1 -1
- package/dist/commands/pair.js +37 -3
- package/dist/commands/pair.js.map +1 -1
- package/dist/commands/start.d.ts +2 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +35 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +14 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +54 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +4 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +37 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands/update.d.ts +6 -2
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +50 -11
- package/dist/commands/update.js.map +1 -1
- package/dist/engine.d.ts +32 -8
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +117 -27
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -5
- package/dist/index.js.map +1 -1
- package/dist/oneiros.d.ts +2 -0
- package/dist/oneiros.d.ts.map +1 -0
- package/dist/oneiros.js +28 -0
- package/dist/oneiros.js.map +1 -0
- package/dist/process-identity.d.ts +3 -0
- package/dist/process-identity.d.ts.map +1 -0
- package/dist/process-identity.js +42 -0
- package/dist/process-identity.js.map +1 -0
- package/dist/render.d.ts +4 -3
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +13 -10
- package/dist/render.js.map +1 -1
- package/dist/runtime.d.ts +79 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +231 -0
- package/dist/runtime.js.map +1 -0
- package/dist/shim.d.ts +52 -0
- package/dist/shim.d.ts.map +1 -0
- package/dist/shim.js +163 -0
- package/dist/shim.js.map +1 -0
- package/package.json +5 -5
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,+EAA+E;AAC/E,+EAA+E;AAC/E,uCAAuC;AAEvC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export type Verb = 'init' | 'pair' | 'doctor' | 'update' | 'rollback' | 'enrich' | 'forget' | 'unbind';
|
|
2
|
+
export type Verb = 'init' | 'pair' | 'doctor' | 'update' | 'rollback' | 'enrich' | 'forget' | 'unbind' | 'start' | 'stop' | 'status';
|
|
3
3
|
/**
|
|
4
4
|
* Decide the verb. `create-fortytwo` with no verb means `init`; `fortytwo` with
|
|
5
5
|
* no verb prints usage. The invoked-as name comes from argv[1]'s basename.
|
|
6
6
|
*/
|
|
7
|
-
export declare function resolveVerb(argv: string[], invokedAs: string): Verb | 'help' | null;
|
|
7
|
+
export declare function resolveVerb(argv: string[], invokedAs: string): Verb | 'help' | 'version' | null;
|
|
8
8
|
export declare function main(argv?: string[]): Promise<number>;
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAgCA,MAAM,MAAM,IAAI,GACZ,MAAM,GACN,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,CAAC;AA6Bb;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAU/F;AAED,wBAAsB,IAAI,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BxE"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,10 @@ import { runRollback } from './commands/rollback.js';
|
|
|
24
24
|
import { runEnrich } from './commands/enrich.js';
|
|
25
25
|
import { runForget } from './commands/forget.js';
|
|
26
26
|
import { runUnbind } from './commands/unbind.js';
|
|
27
|
+
import { runStart } from './commands/start.js';
|
|
28
|
+
import { runStop } from './commands/stop.js';
|
|
29
|
+
import { runStatus } from './commands/status.js';
|
|
30
|
+
import { readSelfVersion } from './engine.js';
|
|
27
31
|
const USAGE = `fortytwo — install + lifecycle CLI for fortytwo
|
|
28
32
|
|
|
29
33
|
Usage:
|
|
@@ -32,8 +36,12 @@ Usage:
|
|
|
32
36
|
|
|
33
37
|
Verbs:
|
|
34
38
|
init Capture identity, write .env + .fortytwo/identity.json, render
|
|
35
|
-
persona, provision (
|
|
36
|
-
|
|
39
|
+
persona, provision (embedder check/pull at OLLAMA_BASE_URL + db migrate).
|
|
40
|
+
start Run fortytwo in the foreground (Telegram bridge + scheduler), loading
|
|
41
|
+
.env; Ctrl+C or SIGTERM stops it. Use it as the container/service command.
|
|
42
|
+
status Show whether fortytwo and its services are running (exit 3 if not).
|
|
43
|
+
stop Stop the \`fortytwo start\` running for this project.
|
|
44
|
+
pair Issue a one-time /login pairing code for Telegram (needs \`fortytwo start\`).
|
|
37
45
|
doctor Health-check the engine: memory MCP contract, gate, db migrations,
|
|
38
46
|
embedder model, and installed versions vs fortytwo.compat.
|
|
39
47
|
update Resolve latest-in-range, install, run doctor, report. Points to
|
|
@@ -43,7 +51,8 @@ Verbs:
|
|
|
43
51
|
forget Redact/remove specific memories from the memory MCP store.
|
|
44
52
|
unbind Revoke a channel binding (un-pair a chat / drop the allowlist entry).
|
|
45
53
|
|
|
46
|
-
Run "fortytwo <verb> --help" for verb-specific options
|
|
54
|
+
Run "fortytwo <verb> --help" for verb-specific options; "fortytwo --version" prints
|
|
55
|
+
the version of the CLI this project runs.
|
|
47
56
|
`;
|
|
48
57
|
/**
|
|
49
58
|
* Decide the verb. `create-fortytwo` with no verb means `init`; `fortytwo` with
|
|
@@ -51,7 +60,9 @@ Run "fortytwo <verb> --help" for verb-specific options.
|
|
|
51
60
|
*/
|
|
52
61
|
export function resolveVerb(argv, invokedAs) {
|
|
53
62
|
const first = argv[0];
|
|
54
|
-
|
|
63
|
+
if (first === '--version' || first === '-v' || first === 'version')
|
|
64
|
+
return 'version';
|
|
65
|
+
const verbs = ['init', 'start', 'stop', 'status', 'pair', 'doctor', 'update', 'rollback', 'enrich', 'forget', 'unbind'];
|
|
55
66
|
if (first && verbs.includes(first))
|
|
56
67
|
return first;
|
|
57
68
|
if (!first || first === '--help' || first === '-h' || first === 'help') {
|
|
@@ -63,7 +74,7 @@ export function resolveVerb(argv, invokedAs) {
|
|
|
63
74
|
export async function main(argv = process.argv.slice(2)) {
|
|
64
75
|
const invokedAs = (process.argv[1] ?? '').split('/').pop() ?? 'fortytwo';
|
|
65
76
|
const verb = resolveVerb(argv, invokedAs);
|
|
66
|
-
const rest = argv.slice(verb && verb !== 'help' && argv[0] === verb ? 1 : 0);
|
|
77
|
+
const rest = argv.slice(verb && verb !== 'help' && verb !== 'version' && argv[0] === verb ? 1 : 0);
|
|
67
78
|
switch (verb) {
|
|
68
79
|
case 'init': return runInit(rest);
|
|
69
80
|
case 'pair': return runPair(rest);
|
|
@@ -73,9 +84,15 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
73
84
|
case 'enrich': return runEnrich(rest);
|
|
74
85
|
case 'forget': return runForget(rest);
|
|
75
86
|
case 'unbind': return runUnbind(rest);
|
|
87
|
+
case 'start': return runStart(rest);
|
|
88
|
+
case 'stop': return runStop(rest);
|
|
89
|
+
case 'status': return runStatus(rest);
|
|
76
90
|
case 'help':
|
|
77
91
|
process.stdout.write(USAGE);
|
|
78
92
|
return 0;
|
|
93
|
+
case 'version':
|
|
94
|
+
process.stdout.write(`${readSelfVersion() ?? 'unknown'}\n`);
|
|
95
|
+
return 0;
|
|
79
96
|
default:
|
|
80
97
|
process.stderr.write(`Unknown command: ${argv[0]}\n\n${USAGE}`);
|
|
81
98
|
return 2;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,sEAAsE;AACtE,EAAE;AACF,oCAAoC;AACpC,6EAA6E;AAC7E,2EAA2E;AAC3E,6EAA6E;AAC7E,EAAE;AACF,wEAAwE;AACxE,yFAAyF;AACzF,mEAAmE;AACnE,wEAAwE;AACxE,EAAE;AACF,kFAAkF;AAClF,iFAAiF;AACjF,qEAAqE;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oneiros.d.ts","sourceRoot":"","sources":["../src/oneiros.ts"],"names":[],"mappings":"AAgBA,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAelF"}
|
package/dist/oneiros.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Additive runtime reconciliation: never renders or writes owner context.
|
|
2
|
+
import { mkdirSync } from 'node:fs';
|
|
3
|
+
import { dirname, resolve } from 'node:path';
|
|
4
|
+
import { findSiblingDir, loadSibling } from './engine.js';
|
|
5
|
+
export async function reconcileOneiros(root, dbPath) {
|
|
6
|
+
// Respect intentionally partial installs. Installed-but-broken packages fail loud.
|
|
7
|
+
const specs = ['@justfortytwo/persona', '@justfortytwo/memory', '@justfortytwo/scheduler'];
|
|
8
|
+
if (specs.some(s => !findSiblingDir(s, root)))
|
|
9
|
+
return;
|
|
10
|
+
const persona = await loadSibling(specs[0], root);
|
|
11
|
+
const memory = await loadSibling(specs[1], root);
|
|
12
|
+
const scheduler = await loadSibling(specs[2], root);
|
|
13
|
+
if (!persona?.initialize || !memory?.memoryHead || !scheduler?.seedOneiros)
|
|
14
|
+
throw new Error('Oneiros requires compatible persona, memory and scheduler packages');
|
|
15
|
+
const path = resolve(root, dbPath);
|
|
16
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
17
|
+
const h = memory.openDb(path);
|
|
18
|
+
try {
|
|
19
|
+
await memory.runMigrations(h.k);
|
|
20
|
+
persona.initialize(root, memory.memoryHead(h));
|
|
21
|
+
scheduler.seedOneiros(h, new Date().toISOString(), scheduler.recurrenceNext);
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
await h.k.destroy();
|
|
25
|
+
h.raw.close();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=oneiros.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oneiros.js","sourceRoot":"","sources":["../src/oneiros.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAa1D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAc;IACjE,mFAAmF;IACnF,MAAM,KAAK,GAAG,CAAC,uBAAuB,EAAE,sBAAsB,EAAE,yBAAyB,CAAC,CAAC;IAC3F,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC;QAAE,OAAO;IACrD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAU,KAAK,CAAC,CAAC,CAAE,EAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAS,KAAK,CAAC,CAAC,CAAE,EAAC,IAAI,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAY,KAAK,CAAC,CAAC,CAAE,EAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAClK,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;IAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAC;IAC7E,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,SAAS,CAAC,WAAW,CAAC,CAAC,EAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7E,CAAC;YAAS,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-identity.d.ts","sourceRoot":"","sources":["../src/process-identity.ts"],"names":[],"mappings":"AAIA,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,MAAM,GAAG,IAAI,CA6B5G"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// OS process generation identity, independent of the project's heartbeat.
|
|
2
|
+
import { readFileSync, readlinkSync } from 'node:fs';
|
|
3
|
+
import { spawnSync } from 'node:child_process';
|
|
4
|
+
/** null means identity cannot be established; never fall back to PID existence. */
|
|
5
|
+
export function readProcessIdentity(pid, platform = process.platform) {
|
|
6
|
+
if (!Number.isSafeInteger(pid) || pid <= 0)
|
|
7
|
+
return null;
|
|
8
|
+
try {
|
|
9
|
+
if (platform === 'linux') {
|
|
10
|
+
const stat = readFileSync(`/proc/${pid}/stat`, 'utf8');
|
|
11
|
+
// comm (field 2) is parenthesized, but may itself contain ')' or whitespace.
|
|
12
|
+
const end = stat.lastIndexOf(')');
|
|
13
|
+
if (!stat.startsWith(`${pid} (`) || end < 0)
|
|
14
|
+
return null;
|
|
15
|
+
const fields = stat.slice(end + 1).trim().split(/\s+/);
|
|
16
|
+
const start = fields[19]; // fields[0] is state (field 3); starttime is field 22
|
|
17
|
+
if (!start || !/^\d+$/.test(start) || ['Z', 'X', 'x'].includes(fields[0] ?? ''))
|
|
18
|
+
return null;
|
|
19
|
+
const boot = readFileSync('/proc/sys/kernel/random/boot_id', 'utf8').trim();
|
|
20
|
+
const namespace = readlinkSync(`/proc/${pid}/ns/pid`);
|
|
21
|
+
if (!boot || !/^pid:\[\d+\]$/.test(namespace))
|
|
22
|
+
return null;
|
|
23
|
+
return `linux:${boot}:${namespace}:${start}`;
|
|
24
|
+
}
|
|
25
|
+
// BSD/macOS ps exposes an OS-derived start time (second resolution).
|
|
26
|
+
// Fix locale/timezone so callers with different environments compare equally.
|
|
27
|
+
const result = spawnSync('ps', ['-p', String(pid), '-o', 'lstart='], {
|
|
28
|
+
encoding: 'utf8', timeout: 2000, env: { ...process.env, LC_ALL: 'C', TZ: 'UTC' },
|
|
29
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
30
|
+
});
|
|
31
|
+
if (result.error || result.status !== 0)
|
|
32
|
+
return null;
|
|
33
|
+
const start = result.stdout.trim().replace(/\s+/g, ' ');
|
|
34
|
+
if (!/^[A-Z][a-z]{2} [A-Z][a-z]{2} \d{1,2} \d{2}:\d{2}:\d{2} \d{4}$/.test(start))
|
|
35
|
+
return null;
|
|
36
|
+
return `ps:${platform}:${start}`;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=process-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-identity.js","sourceRoot":"","sources":["../src/process-identity.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,mFAAmF;AACnF,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,WAA4B,OAAO,CAAC,QAAQ;IAC3F,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC;YACvD,6EAA6E;YAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,sDAAsD;YAChF,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC7F,MAAM,IAAI,GAAG,YAAY,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5E,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3D,OAAO,SAAS,IAAI,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QAC/C,CAAC;QACD,qEAAqE;QACrE,8EAA8E;QAC9E,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE;YACnE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE;YAChF,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,+DAA+D,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9F,OAAO,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/render.d.ts
CHANGED
|
@@ -60,12 +60,13 @@ export declare function renderTemplate(template: string, answers: Answers): stri
|
|
|
60
60
|
/**
|
|
61
61
|
* Locate the persona package and read its manifest. With `personaPackageDir`
|
|
62
62
|
* (tests, or an explicitly-resolved path) we read `<dir>/manifest.json`;
|
|
63
|
-
* otherwise we
|
|
64
|
-
*
|
|
63
|
+
* otherwise we locate `@justfortytwo/persona` in the TARGET PROJECT's
|
|
64
|
+
* node_modules (from `projectRoot`, not from this module: under npx the installer
|
|
65
|
+
* runs from npm's exec cache, a separate tree) so we honor the installed version. The manifest's `files`
|
|
65
66
|
* map drives rendering; `fields` (required flag) gives the required/optional
|
|
66
67
|
* var split; templates live under `<packageDir>/templates`.
|
|
67
68
|
*/
|
|
68
|
-
export declare function loadPersonaManifest(personaPackageDir?: string): PersonaManifest;
|
|
69
|
+
export declare function loadPersonaManifest(personaPackageDir?: string, projectRoot?: string): PersonaManifest;
|
|
69
70
|
/**
|
|
70
71
|
* Render the whole persona surface. Idempotent and non-clobbering:
|
|
71
72
|
* - MANAGED outputs: always (re)written from templates.
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGpD,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;CAC9B;AAED,uFAAuF;AACvF,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,yEAAyE;IACzE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,sFAAsF;IACtF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qDAAqD;IACrD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CASzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,MAAsB,GAAG,eAAe,CA6BpH;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,GAAE,aAAkB,GAAG,YAAY,CAkCxF"}
|
package/dist/render.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// run; CAPTURED outputs are written only on first render (when absent).
|
|
15
15
|
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
16
16
|
import { dirname, join, resolve, sep } from 'node:path';
|
|
17
|
-
import {
|
|
17
|
+
import { findSiblingDir } from './engine.js';
|
|
18
18
|
/**
|
|
19
19
|
* Substitute `{{key}}` references with captured answers (flat, keyed by the
|
|
20
20
|
* persona manifest field keys — snake_case, exactly what templates use).
|
|
@@ -39,23 +39,26 @@ export function renderTemplate(template, answers) {
|
|
|
39
39
|
/**
|
|
40
40
|
* Locate the persona package and read its manifest. With `personaPackageDir`
|
|
41
41
|
* (tests, or an explicitly-resolved path) we read `<dir>/manifest.json`;
|
|
42
|
-
* otherwise we
|
|
43
|
-
*
|
|
42
|
+
* otherwise we locate `@justfortytwo/persona` in the TARGET PROJECT's
|
|
43
|
+
* node_modules (from `projectRoot`, not from this module: under npx the installer
|
|
44
|
+
* runs from npm's exec cache, a separate tree) so we honor the installed version. The manifest's `files`
|
|
44
45
|
* map drives rendering; `fields` (required flag) gives the required/optional
|
|
45
46
|
* var split; templates live under `<packageDir>/templates`.
|
|
46
47
|
*/
|
|
47
|
-
export function loadPersonaManifest(personaPackageDir) {
|
|
48
|
-
let manifestPath;
|
|
48
|
+
export function loadPersonaManifest(personaPackageDir, projectRoot = process.cwd()) {
|
|
49
49
|
let pkgDir;
|
|
50
50
|
if (personaPackageDir) {
|
|
51
51
|
pkgDir = resolve(personaPackageDir);
|
|
52
|
-
manifestPath = join(pkgDir, 'manifest.json');
|
|
53
52
|
}
|
|
54
53
|
else {
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
const found = findSiblingDir('@justfortytwo/persona', projectRoot);
|
|
55
|
+
if (!found) {
|
|
56
|
+
throw new Error(`@justfortytwo/persona is not installed in ${resolve(projectRoot)} (looked in node_modules up from there). ` +
|
|
57
|
+
'Run `fortytwo init` (it installs the engine) or `npm install @justfortytwo/persona`.');
|
|
58
|
+
}
|
|
59
|
+
pkgDir = found;
|
|
58
60
|
}
|
|
61
|
+
const manifestPath = join(pkgDir, 'manifest.json');
|
|
59
62
|
const raw = JSON.parse(readFileSync(manifestPath, 'utf8'));
|
|
60
63
|
const fields = raw.fields ?? [];
|
|
61
64
|
return {
|
|
@@ -80,7 +83,7 @@ export function renderPersona(identity, opts = {}) {
|
|
|
80
83
|
let files = opts.files;
|
|
81
84
|
let tplRoot = opts.templatesDir ? resolve(opts.templatesDir) : undefined;
|
|
82
85
|
if (!files || !tplRoot) {
|
|
83
|
-
const manifest = loadPersonaManifest(opts.personaPackageDir);
|
|
86
|
+
const manifest = loadPersonaManifest(opts.personaPackageDir, root);
|
|
84
87
|
files = files ?? manifest.files;
|
|
85
88
|
tplRoot = tplRoot ?? resolve(manifest.templatesDir);
|
|
86
89
|
}
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,EAAE;AACF,qBAAqB;AACrB,gFAAgF;AAChF,4EAA4E;AAC5E,mFAAmF;AACnF,uEAAuE;AACvE,gFAAgF;AAChF,qEAAqE;AACrE,EAAE;AACF,kFAAkF;AAClF,sEAAsE;AACtE,+EAA+E;AAC/E,wEAAwE;AAExE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { EventEmitter } from 'node:events';
|
|
2
|
+
/** A long-running service `fortytwo start` can supervise. */
|
|
3
|
+
export interface ServiceSpec {
|
|
4
|
+
name: string;
|
|
5
|
+
/** npm package that ships the service. */
|
|
6
|
+
pkg: string;
|
|
7
|
+
/** Its bin name (the low-level command, e.g. for debugging). */
|
|
8
|
+
bin: string;
|
|
9
|
+
/** Env vars without which the service refuses to start; it is skipped instead. */
|
|
10
|
+
requiredEnv: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare const SERVICES: ServiceSpec[];
|
|
13
|
+
export interface PlannedService {
|
|
14
|
+
name: string;
|
|
15
|
+
script: string;
|
|
16
|
+
}
|
|
17
|
+
export interface SkippedService {
|
|
18
|
+
name: string;
|
|
19
|
+
reason: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The environment the services run with. Precedence: the supervisor's own
|
|
23
|
+
* process env (shell, container, systemd) > the project's .env > defaults.
|
|
24
|
+
* FORTYTWO_ROOT defaults to the project root: the bridge resolves its bindings
|
|
25
|
+
* db and config from it, and would otherwise fall back to its own package dir.
|
|
26
|
+
*/
|
|
27
|
+
export declare function buildServiceEnv(processEnv: NodeJS.ProcessEnv, fileEnv: Record<string, string>, root: string): NodeJS.ProcessEnv;
|
|
28
|
+
/** Which services to run: installed in the project AND configured; the rest are skipped with a reason. */
|
|
29
|
+
export declare function planServices(root: string, env: NodeJS.ProcessEnv, specs?: ServiceSpec[]): {
|
|
30
|
+
run: PlannedService[];
|
|
31
|
+
skipped: SkippedService[];
|
|
32
|
+
};
|
|
33
|
+
export interface RuntimeState {
|
|
34
|
+
/** The `fortytwo start` supervisor process. */
|
|
35
|
+
pid: number;
|
|
36
|
+
/** OS process generation; absent in legacy records, which are not trusted. */
|
|
37
|
+
processIdentity?: string;
|
|
38
|
+
startedAt: string;
|
|
39
|
+
/** Refreshed every few seconds while the supervisor is alive. */
|
|
40
|
+
heartbeatAt: string;
|
|
41
|
+
services: {
|
|
42
|
+
name: string;
|
|
43
|
+
pid: number | null;
|
|
44
|
+
state: 'running' | 'exited';
|
|
45
|
+
}[];
|
|
46
|
+
skipped: SkippedService[];
|
|
47
|
+
}
|
|
48
|
+
/** A heartbeat older than this means the supervisor is gone (killed without cleanup). */
|
|
49
|
+
export declare const RUNTIME_STALE_MS = 30000;
|
|
50
|
+
export declare function runtimeStatePath(root: string): string;
|
|
51
|
+
export declare function readRuntimeState(root: string): RuntimeState | null;
|
|
52
|
+
export declare function isPidAlive(pid: number): boolean;
|
|
53
|
+
/** Match a recorded process generation, including when waiting for shutdown. */
|
|
54
|
+
export declare function sameRuntimeProcess(state: RuntimeState, alive?: (pid: number) => boolean, identity?: (pid: number) => string | null): boolean;
|
|
55
|
+
/** A live supervisor requires a fresh heartbeat AND the same OS process. */
|
|
56
|
+
export declare function liveRuntime(root: string, nowMs?: number, alive?: (pid: number) => boolean): RuntimeState | null;
|
|
57
|
+
/** True when a live `fortytwo start` is currently running the named service. */
|
|
58
|
+
export declare function serviceRunning(state: RuntimeState | null, name: string): boolean;
|
|
59
|
+
export interface SuperviseOptions {
|
|
60
|
+
root: string;
|
|
61
|
+
env: NodeJS.ProcessEnv;
|
|
62
|
+
skipped?: SkippedService[];
|
|
63
|
+
out?: (line: string) => void;
|
|
64
|
+
err?: (line: string) => void;
|
|
65
|
+
/** Where SIGINT/SIGTERM arrive (default: this process). Injected by tests. */
|
|
66
|
+
signals?: EventEmitter;
|
|
67
|
+
/** How long services get to exit after SIGTERM before SIGKILL. */
|
|
68
|
+
graceMs?: number;
|
|
69
|
+
/** runtime.json heartbeat interval. */
|
|
70
|
+
heartbeatMs?: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Run `services` as foreground children until a signal arrives or one of them
|
|
74
|
+
* exits; then stop the others (SIGTERM, then SIGKILL after graceMs) and resolve
|
|
75
|
+
* with the exit code: 0 for a requested stop, non-zero when a service failed.
|
|
76
|
+
* Children are never detached, so none outlive the supervisor's shutdown.
|
|
77
|
+
*/
|
|
78
|
+
export declare function supervise(services: PlannedService[], opts: SuperviseOptions): Promise<number>;
|
|
79
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|