@justfortytwo/installer 0.1.4 → 0.1.6
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 +11 -7
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +47 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/rollback.d.ts +1 -1
- package/dist/commands/rollback.d.ts.map +1 -1
- package/dist/commands/rollback.js +7 -27
- package/dist/commands/rollback.js.map +1 -1
- package/dist/commands/update.d.ts +52 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +180 -52
- package/dist/commands/update.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,11 @@ npx create-fortytwo init # capture your details, install the engine
|
|
|
17
17
|
You only install **this** package — `init` installs the engine packages it needs
|
|
18
18
|
on demand (`@justfortytwo/gate`, `/memory`, `/persona`, `/telegram`). Pass
|
|
19
19
|
`--no-install` to manage them yourself, and `--yes` (with `--answers <file.json>`
|
|
20
|
-
or `FORTYTWO_*` env) for non-interactive installs.
|
|
20
|
+
or `FORTYTWO_*` env) for non-interactive installs. Point the memory engine at a
|
|
21
|
+
remote embedder with `--ollama-base-url https://host` (threaded into `.mcp.json`,
|
|
22
|
+
so the memory MCP server uses it), and pre-seed the optional Telegram channel
|
|
23
|
+
with `--telegram-bot-token <token>` / `--allowed-chat-ids <ids>` (or the matching
|
|
24
|
+
env vars) — secrets are written to the gitignored `.env`, never prompted.
|
|
21
25
|
|
|
22
26
|
## The two-surface model
|
|
23
27
|
|
|
@@ -45,18 +49,18 @@ gitignored `.fortytwo/identity.json`; neither is ever committed.
|
|
|
45
49
|
| `init` | Install any missing engine packages, then capture your assistant's name + owner details (interactive, or via flags/env for CI). Writes `.fortytwo/identity.json`, secrets + `ALLOWED_CHAT_IDS` to `.env`, wires `.mcp.json`, renders the persona, provisions local infra (pulls the embedder model, migrates the memory DB), and records the installed version set. |
|
|
46
50
|
| `pair` | Issue a one-time `/login` pairing code, persisted to the bridge's bindings db so the separately-running bridge can redeem it (the dynamic counterpart to the static `ALLOWED_CHAT_IDS` allowlist). |
|
|
47
51
|
| `doctor` | Health-check the engine: assert the gate's `POLICY_SCHEMA_VERSION` and memory's `MEMORY_TOOL_CONTRACT_VERSION` match what this CLI expects, confirm the memory DB is migrated, cross-check installed sibling versions against the declared compatibility ranges, and check the embedder model is pulled (warn-only). |
|
|
48
|
-
| `update` |
|
|
49
|
-
| `rollback` |
|
|
52
|
+
| `update` | Resolve the latest in-range version of each **installed** engine package, install it, rotate the rollback baseline, then run `doctor` to verify. `--dry-run` reports the resolved set without installing. |
|
|
53
|
+
| `rollback` | Re-install the previous version set recorded before the last `update`, then run `doctor`. Manual by design — never auto-triggered, so you can inspect a bad upgrade first. |
|
|
50
54
|
| `enrich` | Capture more answers to deepen the persona, then re-render (no clobber). |
|
|
51
55
|
| `forget` | Permanently delete memories selected by `--id` / `--query` (semantic) / `--tag` / `--source` / `--since`/`--until` — previewed and confirmed (or `--yes`). Owner-only: it deletes via a library API, never exposed to the assistant. |
|
|
52
56
|
| `unbind` | Revoke a channel binding (un-pair a chat / drop it from the allowlist). |
|
|
53
57
|
|
|
54
58
|
Run `fortytwo <verb> --help` for verb-specific options.
|
|
55
59
|
|
|
56
|
-
> **Status:** `init`, `pair`, `doctor`, `forget`,
|
|
57
|
-
> `
|
|
58
|
-
>
|
|
59
|
-
>
|
|
60
|
+
> **Status:** `init`, `pair`, `doctor`, `forget`, `unbind`, `update`, and
|
|
61
|
+
> `rollback` are functional — `update` resolves latest-in-range from npm,
|
|
62
|
+
> installs, rotates the rollback ledger, and post-verifies with `doctor`;
|
|
63
|
+
> `rollback` restores the recorded previous set. `enrich` is still a stub.
|
|
60
64
|
|
|
61
65
|
## Update safety
|
|
62
66
|
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -48,5 +48,13 @@ export declare function buildMcpConfig(existing: McpConfig | null, opts: {
|
|
|
48
48
|
export declare function buildVersionPins(compatRanges: Record<string, string>, readVersion: (spec: string) => string | null): VersionPin[];
|
|
49
49
|
/** Engine packages (from compat ranges) not yet resolvable, as `name@range` install specs. */
|
|
50
50
|
export declare function engineInstallSpecs(compatRanges: Record<string, string>, isPresent: (spec: string) => boolean): string[];
|
|
51
|
+
/**
|
|
52
|
+
* Interactively offer to capture the OPTIONAL Telegram channel secrets that
|
|
53
|
+
* weren't already supplied (via `--telegram-bot-token` / `--allowed-chat-ids` or
|
|
54
|
+
* the matching env vars). Each is skippable with a blank answer. Pure: the `ask`
|
|
55
|
+
* fn is injected, so it unit-tests without a real readline/TTY. Returns only the
|
|
56
|
+
* secrets to ADD (existing ones are never re-prompted).
|
|
57
|
+
*/
|
|
58
|
+
export declare function collectChannelSecrets(existing: Record<string, string>, ask: (prompt: string) => Promise<string>): Promise<Record<string, string>>;
|
|
51
59
|
export declare function runInit(argv: string[]): Promise<number>;
|
|
52
60
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAY,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMjE,eAAO,MAAM,WAAW,yBAAyB,CAAC;AAClD,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAiBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,EAAE,aAAa,GACrB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,CAajD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAetF;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,GAAG,IAAI,EAC1B,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE,SAAS,CAeX;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAC3C,UAAU,EAAE,CAOd;AAsBD,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACnC,MAAM,EAAE,CAIV;AA4HD,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAY,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMjE,eAAO,MAAM,WAAW,yBAAyB,CAAC;AAClD,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAiBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,EAAE,aAAa,GACrB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,CAajD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAetF;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,SAAS,GAAG,IAAI,EAC1B,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE,SAAS,CAeX;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAC3C,UAAU,EAAE,CAOd;AAsBD,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACnC,MAAM,EAAE,CAIV;AA4HD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GACvC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAWjC;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6F7D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -266,9 +266,31 @@ async function promptMissing(fields, missing, answers) {
|
|
|
266
266
|
rl.close();
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* Interactively offer to capture the OPTIONAL Telegram channel secrets that
|
|
271
|
+
* weren't already supplied (via `--telegram-bot-token` / `--allowed-chat-ids` or
|
|
272
|
+
* the matching env vars). Each is skippable with a blank answer. Pure: the `ask`
|
|
273
|
+
* fn is injected, so it unit-tests without a real readline/TTY. Returns only the
|
|
274
|
+
* secrets to ADD (existing ones are never re-prompted).
|
|
275
|
+
*/
|
|
276
|
+
export async function collectChannelSecrets(existing, ask) {
|
|
277
|
+
const added = {};
|
|
278
|
+
if (!existing.TELEGRAM_BOT_TOKEN) {
|
|
279
|
+
const token = (await ask('Telegram bot token from @BotFather (blank to skip — Telegram is optional): ')).trim();
|
|
280
|
+
if (token)
|
|
281
|
+
added.TELEGRAM_BOT_TOKEN = token;
|
|
282
|
+
}
|
|
283
|
+
if (!existing.ALLOWED_CHAT_IDS) {
|
|
284
|
+
const ids = (await ask('Allowed Telegram chat id(s), comma-separated (blank to skip — you can `fortytwo pair` later): ')).trim();
|
|
285
|
+
if (ids)
|
|
286
|
+
added.ALLOWED_CHAT_IDS = ids;
|
|
287
|
+
}
|
|
288
|
+
return added;
|
|
289
|
+
}
|
|
269
290
|
export async function runInit(argv) {
|
|
270
291
|
const root = process.cwd();
|
|
271
292
|
const opts = parseInitArgs(argv);
|
|
293
|
+
const interactive = process.stdin.isTTY === true && !opts.yes;
|
|
272
294
|
// Bootstrap: install any missing engine packages before we need them.
|
|
273
295
|
await ensureEngine(root, { noInstall: opts.noInstall });
|
|
274
296
|
const manifest = loadPersonaManifest();
|
|
@@ -279,7 +301,6 @@ export async function runInit(argv) {
|
|
|
279
301
|
let { answers } = resolved;
|
|
280
302
|
const { missingRequired } = resolved;
|
|
281
303
|
if (missingRequired.length > 0) {
|
|
282
|
-
const interactive = process.stdin.isTTY && !opts.yes;
|
|
283
304
|
if (!interactive) {
|
|
284
305
|
process.stderr.write(`init: missing required answers: ${missingRequired.join(', ')}\n` +
|
|
285
306
|
`Provide them via --answers <file.json>, FORTYTWO_<KEY> env, or run interactively.\n`);
|
|
@@ -300,6 +321,18 @@ export async function runInit(argv) {
|
|
|
300
321
|
updatedAt: new Date().toISOString(),
|
|
301
322
|
};
|
|
302
323
|
writeIdentity(identity, root);
|
|
324
|
+
// Interactively offer the optional Telegram secrets not already provided, so
|
|
325
|
+
// the channel works without a second manual .env edit. Skippable; non-TTY/--yes
|
|
326
|
+
// runs are unaffected (secrets still come from flags/env there).
|
|
327
|
+
if (interactive) {
|
|
328
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
329
|
+
try {
|
|
330
|
+
Object.assign(opts.secrets, await collectChannelSecrets(opts.secrets, (q) => rl.question(q)));
|
|
331
|
+
}
|
|
332
|
+
finally {
|
|
333
|
+
rl.close();
|
|
334
|
+
}
|
|
335
|
+
}
|
|
303
336
|
// Seed runtime config alongside any provided secrets.
|
|
304
337
|
writeEnv({
|
|
305
338
|
OLLAMA_BASE_URL: opts.ollamaBaseUrl,
|
|
@@ -319,15 +352,22 @@ export async function runInit(argv) {
|
|
|
319
352
|
for (const n of provisionNotes)
|
|
320
353
|
out.write(` ${n}\n`);
|
|
321
354
|
out.write(`✓ recorded ${pins.length} installed engine package(s)\n`);
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
355
|
+
// Telegram is an OPTIONAL channel; init only wires its secrets into .env when
|
|
356
|
+
// you pass them (--telegram-bot-token / --allowed-chat-ids, or the matching env
|
|
357
|
+
// vars). The bridge REFUSES TO START without TELEGRAM_BOT_TOKEN, so surface that
|
|
358
|
+
// requirement here rather than letting the bridge fail on first launch.
|
|
359
|
+
const next = ['\nNext — to use the Telegram channel (optional):'];
|
|
360
|
+
if (!opts.secrets.TELEGRAM_BOT_TOKEN) {
|
|
361
|
+
next.push(" • set TELEGRAM_BOT_TOKEN in .env — create a bot with @BotFather (the bridge won't start without it)");
|
|
362
|
+
}
|
|
363
|
+
next.push(' • start the channel bridge');
|
|
364
|
+
if (opts.secrets.ALLOWED_CHAT_IDS) {
|
|
365
|
+
next.push(` • ${opts.secrets.ALLOWED_CHAT_IDS} is already authorized — add more chats with \`fortytwo pair\` → \`/login <code>\``);
|
|
326
366
|
}
|
|
327
367
|
else {
|
|
328
|
-
|
|
329
|
-
` (Add more chats later with \`fortytwo pair\` → \`/login <code>\`.)\n`);
|
|
368
|
+
next.push(' • authorize a chat: run `fortytwo pair` and send `/login <code>`, or set ALLOWED_CHAT_IDS in .env');
|
|
330
369
|
}
|
|
370
|
+
out.write(next.join('\n') + '\n');
|
|
331
371
|
return 0;
|
|
332
372
|
}
|
|
333
373
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { runRollback } from './update.js';
|
|
2
2
|
//# sourceMappingURL=rollback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AAWA,
|
|
1
|
+
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,32 +1,12 @@
|
|
|
1
1
|
// rollback — restore the prior version set after a bad update.
|
|
2
2
|
//
|
|
3
|
-
// The counterpart to `update`'s manual-rollback safety model
|
|
3
|
+
// The counterpart to `update`'s manual-rollback safety model: update records the
|
|
4
4
|
// pre-upgrade set into state.json's `previous`; rollback re-installs exactly that
|
|
5
5
|
// set and rotates the ledger back. This is the ONLY safety net under the
|
|
6
|
-
// "latest-compatible, no bill-of-materials" policy
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
// Real local validation of the rollback ledger.
|
|
13
|
-
const state = readState();
|
|
14
|
-
if (!state) {
|
|
15
|
-
process.stderr.write('rollback: nothing to roll back — run `fortytwo init` first.\n');
|
|
16
|
-
return 2;
|
|
17
|
-
}
|
|
18
|
-
if (!state.previous) {
|
|
19
|
-
process.stderr.write('rollback: no prior version set recorded (only one install so far, or already rolled back).\n');
|
|
20
|
-
return 2;
|
|
21
|
-
}
|
|
22
|
-
// BLOCKED: the actual re-install of the previous set needs the npm registry
|
|
23
|
-
// (same blocker as `update`). The ledger is valid and the target is known —
|
|
24
|
-
// we just can't fetch the versions until the engine packages are published.
|
|
25
|
-
void recordVersionSet;
|
|
26
|
-
void runDoctorChecks;
|
|
27
|
-
process.stderr.write('rollback: not available yet — restoring the previous set re-installs from npm, ' +
|
|
28
|
-
'and the @justfortytwo/* engine packages are not published. Would restore:\n' +
|
|
29
|
-
state.previous.map((p) => ` ${p.name}@${p.resolved}`).join('\n') + '\n');
|
|
30
|
-
return 2;
|
|
31
|
-
}
|
|
6
|
+
// "latest-compatible, no bill-of-materials" policy.
|
|
7
|
+
//
|
|
8
|
+
// The implementation (performRollback + its real deps) lives in update.ts
|
|
9
|
+
// alongside the shared resolve/install primitives; this module just re-exports
|
|
10
|
+
// the entry point so index.ts's dispatch table keeps its stable import path.
|
|
11
|
+
export { runRollback } from './update.js';
|
|
32
12
|
//# sourceMappingURL=rollback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,iFAAiF;AACjF,kFAAkF;AAClF,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../src/commands/rollback.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,iFAAiF;AACjF,kFAAkF;AAClF,yEAAyE;AACzE,oDAAoD;AACpD,EAAE;AACF,0EAA0E;AAC1E,+EAA+E;AAC/E,6EAA6E;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,2 +1,53 @@
|
|
|
1
|
-
|
|
1
|
+
import { type VersionPin, type InstallState } from '../state.js';
|
|
2
|
+
import { type CheckResult } from './doctor.js';
|
|
3
|
+
/** Numeric semver compare (ignores any pre-release tag); -1 / 0 / 1. */
|
|
4
|
+
export declare function compareVersions(a: string, b: string): number;
|
|
5
|
+
/** Highest version in `versions` that satisfies `range`, or null if none do. */
|
|
6
|
+
export declare function pickLatestInRange(versions: string[], range: string): string | null;
|
|
7
|
+
/** Resolve each declared range to its latest published in-range version. */
|
|
8
|
+
export declare function resolveLatestInRange(ranges: Record<string, string>, fetchVersions: (pkg: string) => Promise<string[]>): Promise<VersionPin[]>;
|
|
9
|
+
export interface InstallResult {
|
|
10
|
+
ok: boolean;
|
|
11
|
+
detail: string;
|
|
12
|
+
}
|
|
13
|
+
export interface UpdateDeps {
|
|
14
|
+
readState: () => InstallState | null;
|
|
15
|
+
installedVersion: (spec: string) => string | null;
|
|
16
|
+
/** spec -> declared semver range (this CLI's fortytwo.compat). */
|
|
17
|
+
compatRanges: Record<string, string>;
|
|
18
|
+
/** Published versions for a package (registry query). */
|
|
19
|
+
fetchVersions: (pkg: string) => Promise<string[]>;
|
|
20
|
+
/** Install the given `name@version` specs. */
|
|
21
|
+
install: (specs: string[]) => InstallResult;
|
|
22
|
+
/** Post-install health check (doctor). */
|
|
23
|
+
doctor: () => Promise<{
|
|
24
|
+
results: CheckResult[];
|
|
25
|
+
ok: boolean;
|
|
26
|
+
}>;
|
|
27
|
+
/** Persist the resolved set, rotating current -> previous. */
|
|
28
|
+
record: (pins: VersionPin[]) => void;
|
|
29
|
+
/** Re-render the persona scaffold (idempotent). */
|
|
30
|
+
render: () => void;
|
|
31
|
+
out: (s: string) => void;
|
|
32
|
+
err: (s: string) => void;
|
|
33
|
+
}
|
|
34
|
+
export interface RollbackDeps {
|
|
35
|
+
readState: () => InstallState | null;
|
|
36
|
+
install: (specs: string[]) => InstallResult;
|
|
37
|
+
doctor: () => Promise<{
|
|
38
|
+
results: CheckResult[];
|
|
39
|
+
ok: boolean;
|
|
40
|
+
}>;
|
|
41
|
+
record: (pins: VersionPin[]) => void;
|
|
42
|
+
out: (s: string) => void;
|
|
43
|
+
err: (s: string) => void;
|
|
44
|
+
}
|
|
45
|
+
export declare function performUpdate(deps: UpdateDeps, flags: {
|
|
46
|
+
dryRun?: boolean;
|
|
47
|
+
}): Promise<number>;
|
|
48
|
+
export declare function performRollback(deps: RollbackDeps): Promise<number>;
|
|
49
|
+
/** Published versions of a package via `npm view`; [] if unknown/unreachable. */
|
|
50
|
+
export declare function fetchPublishedVersions(pkg: string): Promise<string[]>;
|
|
51
|
+
export declare function runUpdate(argv: string[]): Promise<number>;
|
|
52
|
+
export declare function runRollback(_argv: string[]): Promise<number>;
|
|
2
53
|
//# sourceMappingURL=update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/update.js
CHANGED
|
@@ -1,60 +1,188 @@
|
|
|
1
|
-
// update —
|
|
1
|
+
// update / rollback — move the engine across the declared semver ranges.
|
|
2
2
|
//
|
|
3
3
|
// Distribution policy: "semver ranges, latest-compatible". There is NO curated
|
|
4
|
-
// bill-of-materials. update
|
|
5
|
-
// 1.
|
|
6
|
-
// (
|
|
7
|
-
// 2.
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
// 4. POST-VERIFY with doctor
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
4
|
+
// bill-of-materials. update:
|
|
5
|
+
// 1. RESOLVE latest-in-range for every installed @justfortytwo/* sibling
|
|
6
|
+
// (the ranges in this CLI's fortytwo.compat).
|
|
7
|
+
// 2. INSTALL that set (npm).
|
|
8
|
+
// 3. ROTATE the ledger (state.json: previous := the pre-update set) the moment
|
|
9
|
+
// the install lands, so rollback always targets the set that was running.
|
|
10
|
+
// 4. POST-VERIFY with doctor. On failure: leave the new set in place but LOUDLY
|
|
11
|
+
// point at `fortytwo rollback` — rollback is MANUAL by design (never auto-
|
|
12
|
+
// revert, so the user can inspect first). On success: re-render the persona
|
|
13
|
+
// scaffold (idempotent) in case a new template version shipped.
|
|
14
14
|
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
|
|
15
|
+
// rollback re-installs state.json's `previous` set and rotates the ledger back.
|
|
16
|
+
// Both share the resolve/install primitives below and are unit-tested through an
|
|
17
|
+
// injected `*Deps` (so no test touches the network or the real npm).
|
|
18
|
+
import { spawnSync } from 'node:child_process';
|
|
19
|
+
import { recordVersionSet, readState, readIdentity, } from '../state.js';
|
|
20
|
+
import { readInstalledVersion, readSelfCompatRanges, satisfiesRange } from '../engine.js';
|
|
21
|
+
import { runDoctorChecks, defaultDoctorDeps } from './doctor.js';
|
|
18
22
|
import { renderPersona } from '../render.js';
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
23
|
+
// --- pure: pick the latest published version satisfying a range ---
|
|
24
|
+
/** Numeric semver compare (ignores any pre-release tag); -1 / 0 / 1. */
|
|
25
|
+
export function compareVersions(a, b) {
|
|
26
|
+
const parse = (v) => v.replace(/^[v^~]/, '').split('-')[0].split('.').map((n) => parseInt(n, 10) || 0);
|
|
27
|
+
const [a0, a1, a2] = parse(a);
|
|
28
|
+
const [b0, b1, b2] = parse(b);
|
|
29
|
+
return (a0 - b0) || (a1 - b1) || (a2 - b2);
|
|
30
|
+
}
|
|
31
|
+
/** Highest version in `versions` that satisfies `range`, or null if none do. */
|
|
32
|
+
export function pickLatestInRange(versions, range) {
|
|
33
|
+
const ok = versions.filter((v) => satisfiesRange(v, range)).sort(compareVersions);
|
|
34
|
+
return ok.at(-1) ?? null;
|
|
35
|
+
}
|
|
36
|
+
/** Resolve each declared range to its latest published in-range version. */
|
|
37
|
+
export async function resolveLatestInRange(ranges, fetchVersions) {
|
|
38
|
+
const pins = [];
|
|
39
|
+
for (const [name, range] of Object.entries(ranges)) {
|
|
40
|
+
const versions = await fetchVersions(name);
|
|
41
|
+
const resolved = pickLatestInRange(versions, range);
|
|
42
|
+
if (!resolved) {
|
|
43
|
+
throw new Error(`no published version of ${name} satisfies ${range} (saw: ${versions.join(', ') || 'none'})`);
|
|
44
|
+
}
|
|
45
|
+
pins.push({ name, range, resolved });
|
|
46
|
+
}
|
|
47
|
+
return pins;
|
|
48
|
+
}
|
|
49
|
+
function printChecks(results, out) {
|
|
50
|
+
for (const r of results) {
|
|
51
|
+
const mark = r.ok ? 'ok ' : r.required ? 'FAIL' : 'warn';
|
|
52
|
+
out(`[${mark}] ${r.name}: ${r.detail}\n`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export async function performUpdate(deps, flags) {
|
|
56
|
+
if (!deps.readState()) {
|
|
57
|
+
deps.err('update: no install found — run `fortytwo init` first.\n');
|
|
58
|
+
return 2;
|
|
59
|
+
}
|
|
60
|
+
// The engine = the declared compat siblings that are CURRENTLY installed. We
|
|
61
|
+
// upgrade what's there; we don't pull in siblings the user deliberately omitted.
|
|
62
|
+
const ranges = {};
|
|
63
|
+
const current = [];
|
|
64
|
+
for (const [name, range] of Object.entries(deps.compatRanges)) {
|
|
65
|
+
const resolved = deps.installedVersion(name);
|
|
66
|
+
if (resolved === null)
|
|
67
|
+
continue;
|
|
68
|
+
ranges[name] = range;
|
|
69
|
+
current.push({ name, range, resolved });
|
|
70
|
+
}
|
|
71
|
+
if (current.length === 0) {
|
|
72
|
+
deps.err('update: no engine packages installed — run `fortytwo init` first.\n');
|
|
73
|
+
return 2;
|
|
74
|
+
}
|
|
75
|
+
const target = await resolveLatestInRange(ranges, deps.fetchVersions);
|
|
76
|
+
const versionOf = (pins, name) => pins.find((p) => p.name === name)?.resolved;
|
|
77
|
+
const changed = target.filter((t) => versionOf(current, t.name) !== t.resolved);
|
|
78
|
+
if (changed.length === 0) {
|
|
79
|
+
deps.out('update: already at the latest in-range version:\n' +
|
|
80
|
+
current.map((p) => ` ${p.name}@${p.resolved} (${p.range})`).join('\n') + '\n');
|
|
81
|
+
return 0;
|
|
82
|
+
}
|
|
83
|
+
deps.out('update: resolving latest-in-range →\n' +
|
|
84
|
+
target.map((t) => {
|
|
85
|
+
const from = versionOf(current, t.name);
|
|
86
|
+
return ` ${t.name}: ${from && from !== t.resolved ? `${from} → ${t.resolved}` : `${t.resolved} (unchanged)`}`;
|
|
87
|
+
}).join('\n') + '\n');
|
|
88
|
+
if (flags.dryRun) {
|
|
89
|
+
deps.out('update: --dry-run, nothing installed.\n');
|
|
90
|
+
return 0;
|
|
91
|
+
}
|
|
92
|
+
const res = deps.install(target.map((t) => `${t.name}@${t.resolved}`));
|
|
93
|
+
if (!res.ok) {
|
|
94
|
+
// Nothing recorded: the ledger still points at the pre-update set, which is
|
|
95
|
+
// what's (mostly) on disk — fix the error and retry, no rollback needed.
|
|
96
|
+
deps.err(`update: install failed (${res.detail}). Nothing recorded — your previous set is intact; fix the error and retry.\n`);
|
|
97
|
+
return 1;
|
|
98
|
+
}
|
|
99
|
+
// Install landed → rotate the ledger so `previous` = the pre-update set.
|
|
100
|
+
deps.record(target);
|
|
101
|
+
const { results, ok } = await deps.doctor();
|
|
102
|
+
printChecks(results, deps.out);
|
|
103
|
+
if (!ok) {
|
|
104
|
+
deps.err('\nupdate: installed, but doctor reports required checks FAILED. Inspect, then run `fortytwo rollback` to restore the previous set.\n');
|
|
105
|
+
return 1;
|
|
106
|
+
}
|
|
107
|
+
deps.render();
|
|
108
|
+
deps.out('\nupdate: healthy — engine upgraded.\n');
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
export async function performRollback(deps) {
|
|
112
|
+
const state = deps.readState();
|
|
113
|
+
if (!state) {
|
|
114
|
+
deps.err('rollback: nothing to roll back — run `fortytwo init` first.\n');
|
|
115
|
+
return 2;
|
|
116
|
+
}
|
|
117
|
+
if (!state.previous) {
|
|
118
|
+
deps.err('rollback: no prior version set recorded (only one install so far, or already rolled back).\n');
|
|
42
119
|
return 2;
|
|
43
120
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
121
|
+
const target = state.previous;
|
|
122
|
+
deps.out('rollback: restoring the previous set →\n' + target.map((p) => ` ${p.name}@${p.resolved}`).join('\n') + '\n');
|
|
123
|
+
const res = deps.install(target.map((p) => `${p.name}@${p.resolved}`));
|
|
124
|
+
if (!res.ok) {
|
|
125
|
+
deps.err(`rollback: install failed (${res.detail}). The ledger is unchanged; retry once the cause is fixed.\n`);
|
|
126
|
+
return 1;
|
|
127
|
+
}
|
|
128
|
+
deps.record(target); // rotate the bad set into `previous` (single-step ledger)
|
|
129
|
+
const { results, ok } = await deps.doctor();
|
|
130
|
+
printChecks(results, deps.out);
|
|
131
|
+
deps.out(ok ? '\nrollback: restored and healthy.\n' : '\nrollback: restored, but doctor still reports failures — inspect manually.\n');
|
|
132
|
+
return ok ? 0 : 1;
|
|
133
|
+
}
|
|
134
|
+
// --- real wiring ---
|
|
135
|
+
/** Published versions of a package via `npm view`; [] if unknown/unreachable. */
|
|
136
|
+
export function fetchPublishedVersions(pkg) {
|
|
137
|
+
return Promise.resolve().then(() => {
|
|
138
|
+
const res = spawnSync('npm', ['view', pkg, 'versions', '--json'], { encoding: 'utf8' });
|
|
139
|
+
if (res.status !== 0 || !res.stdout)
|
|
140
|
+
return [];
|
|
141
|
+
try {
|
|
142
|
+
const parsed = JSON.parse(res.stdout);
|
|
143
|
+
return Array.isArray(parsed) ? parsed : [parsed];
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
function npmInstall(specs, root) {
|
|
151
|
+
const res = spawnSync('npm', ['install', '--no-audit', '--no-fund', ...specs], { cwd: root, stdio: 'inherit' });
|
|
152
|
+
if (res.status === 0)
|
|
153
|
+
return { ok: true, detail: 'ok' };
|
|
154
|
+
return { ok: false, detail: res.error ? res.error.message : `npm exited ${res.status}` };
|
|
155
|
+
}
|
|
156
|
+
function parseUpdateArgs(argv) {
|
|
157
|
+
return { dryRun: argv.includes('--dry-run') || argv.includes('-n') };
|
|
158
|
+
}
|
|
159
|
+
export async function runUpdate(argv) {
|
|
160
|
+
const root = process.cwd();
|
|
161
|
+
const deps = {
|
|
162
|
+
readState: () => readState(root),
|
|
163
|
+
installedVersion: readInstalledVersion,
|
|
164
|
+
compatRanges: readSelfCompatRanges(),
|
|
165
|
+
fetchVersions: fetchPublishedVersions,
|
|
166
|
+
install: (specs) => npmInstall(specs, root),
|
|
167
|
+
doctor: () => runDoctorChecks(defaultDoctorDeps()),
|
|
168
|
+
record: (pins) => { recordVersionSet(pins, root); },
|
|
169
|
+
render: () => { const id = readIdentity(root); if (id)
|
|
170
|
+
renderPersona(id, { root }); },
|
|
171
|
+
out: (s) => process.stdout.write(s),
|
|
172
|
+
err: (s) => process.stderr.write(s),
|
|
173
|
+
};
|
|
174
|
+
return performUpdate(deps, parseUpdateArgs(argv));
|
|
175
|
+
}
|
|
176
|
+
export async function runRollback(_argv) {
|
|
177
|
+
const root = process.cwd();
|
|
178
|
+
const deps = {
|
|
179
|
+
readState: () => readState(root),
|
|
180
|
+
install: (specs) => npmInstall(specs, root),
|
|
181
|
+
doctor: () => runDoctorChecks(defaultDoctorDeps()),
|
|
182
|
+
record: (pins) => { recordVersionSet(pins, root); },
|
|
183
|
+
out: (s) => process.stdout.write(s),
|
|
184
|
+
err: (s) => process.stderr.write(s),
|
|
185
|
+
};
|
|
186
|
+
return performRollback(deps);
|
|
59
187
|
}
|
|
60
188
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@justfortytwo/installer",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "All-in-one installer and lifecycle CLI for fortytwo — scaffolds the persona surface and provisions the npm engine (memory MCP, safety gate, channel adapters, embedder).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|