@justfortytwo/installer 0.1.7 → 0.1.8
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.
|
@@ -6,6 +6,11 @@ export interface CheckResult {
|
|
|
6
6
|
/** A failed required check makes doctor exit non-zero; warn-only checks don't. */
|
|
7
7
|
required: boolean;
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Heartbeat staleness threshold: 3× the scheduler's 30s poll interval.
|
|
11
|
+
* If the heartbeat file is older than this, the daemon is considered stopped.
|
|
12
|
+
*/
|
|
13
|
+
export declare const HEARTBEAT_STALE_MS = 90000;
|
|
9
14
|
/** Everything the checks need, injectable so tests stay hermetic. */
|
|
10
15
|
export interface DoctorDeps {
|
|
11
16
|
loadGate: () => Promise<{
|
|
@@ -21,6 +26,13 @@ export interface DoctorDeps {
|
|
|
21
26
|
ollamaModels: () => Promise<string[] | null>;
|
|
22
27
|
embedModel: string;
|
|
23
28
|
migrationState: () => Promise<MigrationState>;
|
|
29
|
+
/** Returns the parsed heartbeat, or null if missing/unreadable. */
|
|
30
|
+
schedulerHeartbeat: () => {
|
|
31
|
+
pid: number;
|
|
32
|
+
ts: string;
|
|
33
|
+
} | null;
|
|
34
|
+
/** Returns the current time as an ISO string. */
|
|
35
|
+
now: () => string;
|
|
24
36
|
}
|
|
25
37
|
/**
|
|
26
38
|
* Run all checks, return per-check results + aggregate. Reused by `update` as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAeA,OAAO,EAEkD,KAAK,cAAc,EAC3E,MAAM,cAAc,CAAC;AAQtB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,OAAO,CAAC;QAAE,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,OAAO,CAAC;QAAE,4BAA4B,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC5E,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAClD,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,4DAA4D;IAC5D,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,mEAAmE;IACnE,kBAAkB,EAAE,MAAM;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,iDAAiD;IACjD,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAyFD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAWxG;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,IAAI,UAAU,CAwB9C;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAQhE"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -10,12 +10,19 @@
|
|
|
10
10
|
// the memory DB. CROSS-PACKAGE CONTRACTS asserted: gate's POLICY_SCHEMA_VERSION
|
|
11
11
|
// and memory's MEMORY_TOOL_CONTRACT_VERSION must equal what this CLI was built
|
|
12
12
|
// against, and installed siblings must satisfy the declared compat ranges.
|
|
13
|
+
import { readFileSync } from 'node:fs';
|
|
14
|
+
import { dirname, join } from 'node:path';
|
|
13
15
|
import { loadGate, loadMemory, readInstalledVersion, readSelfCompatRanges, satisfiesRange, fetchOllamaModels, readMigrationState, } from '../engine.js';
|
|
14
16
|
import { EMBED_MODEL, DEFAULT_OLLAMA_BASE_URL, DEFAULT_DB_PATH } from './init.js';
|
|
15
17
|
// The contract versions this CLI was authored against. A sibling advertising a
|
|
16
18
|
// different MAJOR has broken the contract — doctor must flag it loudly.
|
|
17
19
|
const EXPECTED_POLICY_SCHEMA = 1;
|
|
18
20
|
const EXPECTED_MEMORY_CONTRACT = 1;
|
|
21
|
+
/**
|
|
22
|
+
* Heartbeat staleness threshold: 3× the scheduler's 30s poll interval.
|
|
23
|
+
* If the heartbeat file is older than this, the daemon is considered stopped.
|
|
24
|
+
*/
|
|
25
|
+
export const HEARTBEAT_STALE_MS = 90_000;
|
|
19
26
|
async function checkGate(deps) {
|
|
20
27
|
const name = 'safety gate';
|
|
21
28
|
const gate = await deps.loadGate();
|
|
@@ -84,6 +91,21 @@ async function checkMigrations(deps) {
|
|
|
84
91
|
return { name, ok: false, required: false, detail: 'memory package not installed — cannot check migrations' };
|
|
85
92
|
}
|
|
86
93
|
}
|
|
94
|
+
async function checkSchedulerHeartbeat(deps) {
|
|
95
|
+
// Warn-only: a missing or stale scheduler daemon degrades proactive scheduling
|
|
96
|
+
// but never blocks the assistant — mirrors the embedder check pattern.
|
|
97
|
+
const name = 'scheduler daemon';
|
|
98
|
+
const hb = deps.schedulerHeartbeat();
|
|
99
|
+
if (hb === null) {
|
|
100
|
+
return { name, ok: false, required: false, detail: 'scheduler daemon not running (no heartbeat found)' };
|
|
101
|
+
}
|
|
102
|
+
const nowMs = new Date(deps.now()).getTime();
|
|
103
|
+
const tsMs = new Date(hb.ts).getTime();
|
|
104
|
+
if (nowMs - tsMs > HEARTBEAT_STALE_MS) {
|
|
105
|
+
return { name, ok: false, required: false, detail: `scheduler heartbeat stale — last seen ${hb.ts} (daemon may be stopped)` };
|
|
106
|
+
}
|
|
107
|
+
return { name, ok: true, required: false, detail: `scheduler daemon alive (pid ${hb.pid}, last seen ${hb.ts})` };
|
|
108
|
+
}
|
|
87
109
|
/**
|
|
88
110
|
* Run all checks, return per-check results + aggregate. Reused by `update` as
|
|
89
111
|
* the post-install verify step. Aggregate ok = every required check passed.
|
|
@@ -95,6 +117,7 @@ export async function runDoctorChecks(deps) {
|
|
|
95
117
|
checkCompat(deps),
|
|
96
118
|
checkEmbedder(deps),
|
|
97
119
|
checkMigrations(deps),
|
|
120
|
+
checkSchedulerHeartbeat(deps),
|
|
98
121
|
]);
|
|
99
122
|
const ok = results.every((r) => r.ok || !r.required);
|
|
100
123
|
return { results, ok };
|
|
@@ -104,6 +127,8 @@ export function defaultDoctorDeps() {
|
|
|
104
127
|
const ollamaBaseUrl = process.env.OLLAMA_BASE_URL ?? DEFAULT_OLLAMA_BASE_URL;
|
|
105
128
|
const dbPath = process.env.DB_PATH ?? DEFAULT_DB_PATH;
|
|
106
129
|
const embedModel = process.env.EMBED_MODEL ?? EMBED_MODEL;
|
|
130
|
+
// Must match heartbeatPath() in @justfortytwo/scheduler/src/heartbeat.ts.
|
|
131
|
+
const hbPath = join(dirname(dbPath), 'scheduler.heartbeat');
|
|
107
132
|
return {
|
|
108
133
|
loadGate,
|
|
109
134
|
loadMemory,
|
|
@@ -112,6 +137,16 @@ export function defaultDoctorDeps() {
|
|
|
112
137
|
ollamaModels: () => fetchOllamaModels(ollamaBaseUrl),
|
|
113
138
|
embedModel,
|
|
114
139
|
migrationState: () => readMigrationState(dbPath),
|
|
140
|
+
schedulerHeartbeat: () => {
|
|
141
|
+
try {
|
|
142
|
+
const raw = readFileSync(hbPath, 'utf-8');
|
|
143
|
+
return JSON.parse(raw);
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
now: () => new Date().toISOString(),
|
|
115
150
|
};
|
|
116
151
|
}
|
|
117
152
|
export async function runDoctor(_argv) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,oFAAoF;AACpF,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,wCAAwC;AACxC,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,2EAA2E;AAE3E,OAAO,EACL,QAAQ,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EAChE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,GACtD,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAElF,+EAA+E;AAC/E,wEAAwE;AACxE,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,wBAAwB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.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.8",
|
|
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": {
|