@groundnuty/macf 0.2.38 → 0.2.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/.build-info.json +2 -2
  2. package/dist/cli/claude-sh.d.ts.map +1 -1
  3. package/dist/cli/claude-sh.js +13 -0
  4. package/dist/cli/claude-sh.js.map +1 -1
  5. package/dist/cli/commands/fleet-doctor-inject.d.ts +52 -0
  6. package/dist/cli/commands/fleet-doctor-inject.d.ts.map +1 -0
  7. package/dist/cli/commands/fleet-doctor-inject.js +100 -0
  8. package/dist/cli/commands/fleet-doctor-inject.js.map +1 -0
  9. package/dist/cli/commands/fleet-doctor.d.ts +236 -0
  10. package/dist/cli/commands/fleet-doctor.d.ts.map +1 -0
  11. package/dist/cli/commands/fleet-doctor.js +481 -0
  12. package/dist/cli/commands/fleet-doctor.js.map +1 -0
  13. package/dist/cli/commands/fleet.d.ts +83 -0
  14. package/dist/cli/commands/fleet.d.ts.map +1 -0
  15. package/dist/cli/commands/fleet.js +225 -0
  16. package/dist/cli/commands/fleet.js.map +1 -0
  17. package/dist/cli/commands/init.d.ts.map +1 -1
  18. package/dist/cli/commands/init.js +8 -0
  19. package/dist/cli/commands/init.js.map +1 -1
  20. package/dist/cli/commands/migrate.d.ts +1 -0
  21. package/dist/cli/commands/migrate.d.ts.map +1 -1
  22. package/dist/cli/commands/registry-prune.d.ts +43 -6
  23. package/dist/cli/commands/registry-prune.d.ts.map +1 -1
  24. package/dist/cli/commands/registry-prune.js +53 -14
  25. package/dist/cli/commands/registry-prune.js.map +1 -1
  26. package/dist/cli/commands/restart-self.d.ts +111 -0
  27. package/dist/cli/commands/restart-self.d.ts.map +1 -0
  28. package/dist/cli/commands/restart-self.js +312 -0
  29. package/dist/cli/commands/restart-self.js.map +1 -0
  30. package/dist/cli/commands/routing-doctor-gh.d.ts +29 -0
  31. package/dist/cli/commands/routing-doctor-gh.d.ts.map +1 -0
  32. package/dist/cli/commands/routing-doctor-gh.js +103 -0
  33. package/dist/cli/commands/routing-doctor-gh.js.map +1 -0
  34. package/dist/cli/commands/routing-doctor.d.ts +183 -0
  35. package/dist/cli/commands/routing-doctor.d.ts.map +1 -0
  36. package/dist/cli/commands/routing-doctor.js +504 -0
  37. package/dist/cli/commands/routing-doctor.js.map +1 -0
  38. package/dist/cli/commands/update.d.ts.map +1 -1
  39. package/dist/cli/commands/update.js +9 -0
  40. package/dist/cli/commands/update.js.map +1 -1
  41. package/dist/cli/host-prelude.d.ts +50 -0
  42. package/dist/cli/host-prelude.d.ts.map +1 -0
  43. package/dist/cli/host-prelude.js +256 -0
  44. package/dist/cli/host-prelude.js.map +1 -0
  45. package/dist/cli/index.js +89 -0
  46. package/dist/cli/index.js.map +1 -1
  47. package/package.json +2 -2
  48. package/plugin/rules/coordination.md +10 -0
  49. package/plugin/rules/silent-fallback-hazards.md +19 -4
  50. package/scripts/emit-turn-receipt.sh +44 -4
@@ -0,0 +1,504 @@
1
+ /**
2
+ * `macf routing doctor` — ROUTING-INFRA-layer interconnect check (DR-030 phase-2,
3
+ * macf#568). Sibling to the mesh `macf fleet doctor`.
4
+ *
5
+ * Where `fleet doctor` proves the AGENTS reach EACH OTHER over the mTLS channel
6
+ * mesh, `routing doctor` proves the GitHub *delivery plane that CARRIES them* is
7
+ * wired right. These are STATIC GitHub-plane checks — they prove the routing
8
+ * *plumbing* (caller pins, registry-as-routing-source, certs, repo-set), NOT that
9
+ * a message was actually delivered end-to-end (that is `--e2e`, a LATER increment,
10
+ * NOT built here). The honesty legend states this loudly.
11
+ *
12
+ * The five checks (DR-030 §4, harvested from the 2026-06-26 Stage-3 outage):
13
+ *
14
+ * 1. CALLER-PIN consistency — every fleet repo's `agent-router.yml`
15
+ * `uses: groundnuty/macf-actions/...@<pin>` is on the SAME version. A mixed
16
+ * `@v1.3.x` / `@v3.3.0` set = an incomplete cutover — *this would have caught
17
+ * the outage*. Repo-set source (DR-030 Q3): the App INSTALL-SET, not a new
18
+ * config file.
19
+ * 2. The #538 split — TWO independent checks per agent:
20
+ * (a) ROUTABILITY — each routing label has a `MACF_AGENT_<LABEL>` key in the
21
+ * registry (the router resolves BY LABEL; a bot-name key is silently
22
+ * unrouteable).
23
+ * (b) SELF-SKIP correctness — `agent-config.json[label].app_name` is the
24
+ * bot-LOGIN, not the bare routing label (the #566 root cause:
25
+ * `repo-init.ts` wrote the agent-name). Independent of (a): a wrong
26
+ * `app_name` still ROUTES (resolution never touches it) — it breaks the
27
+ * actor-skip instead.
28
+ * 3. REGISTRATION freshness — `registry.instance_id == /health.instance_id`
29
+ * (precise current-vs-stale; disambiguates the #553 dying-server race). A
30
+ * reassigned port surfaces as unreachability; an aged `last_heartbeat` is a
31
+ * definitive stale (DR-031 `isStaleEntry`).
32
+ * 4. CA material — `MACF_CA_CERT` (a readable VARIABLE) is present AND
33
+ * base64/PEM-parses (the #563 malformed-base64 class — present ≠ valid).
34
+ * 5. SESSION-name drift — `agent-config.json.tmux_session` follows the canonical
35
+ * `<project>@<agent>` convention (the silent Stage-2-routing-drop class).
36
+ *
37
+ * Every GitHub read (install-set, caller-pins, agent-config), the registry list,
38
+ * the mTLS `/health` probe, and the CA-var read are INJECTABLE (`RoutingDoctorDeps`)
39
+ * so tests run fully offline. The `gh` shell-outs live in `routing-doctor-gh.ts`.
40
+ */
41
+ import { readFileSync, existsSync } from 'node:fs';
42
+ import { join } from 'node:path';
43
+ import { readAgentConfig, tokenSourceFromConfig, agentCertPath, agentKeyPath, } from '../config.js';
44
+ import { createClientFromConfig } from '../registry-helper.js';
45
+ import { createRegistryFromConfig, generateToken, pingAgentHealth, toVariableSegment, isStaleEntry, DEFAULT_REGISTRY_TTL_MS, } from '@groundnuty/macf-core';
46
+ import { formatTable } from './ps.js';
47
+ import { createInstallRepoLister, createCallerPinReader, createRoutingConfigGhReader, } from './routing-doctor-gh.js';
48
+ // --- Pure check primitives ---
49
+ /** Normalize a GitHub login for comparison: lowercase, strip `app/` + `[bot]`. */
50
+ export function normalizeLogin(s) {
51
+ return s.trim().toLowerCase().replace(/^app\//, '').replace(/\[bot\]$/, '');
52
+ }
53
+ /**
54
+ * The expected fleet caller-pin: an explicit override, else the MODAL (most
55
+ * common) pin among the repos that ARE routing callers. `null` when no repo pins
56
+ * macf-actions (nothing to be consistent about).
57
+ */
58
+ export function computeExpectedPin(pinned, override) {
59
+ if (override)
60
+ return override;
61
+ if (pinned.length === 0)
62
+ return null;
63
+ const counts = new Map();
64
+ for (const p of pinned)
65
+ counts.set(p, (counts.get(p) ?? 0) + 1);
66
+ let best = pinned[0];
67
+ let bestN = 0;
68
+ for (const [p, n] of counts) {
69
+ if (n > bestN) {
70
+ best = p;
71
+ bestN = n;
72
+ }
73
+ }
74
+ return best;
75
+ }
76
+ /**
77
+ * Self-skip correctness (#538 check b / #566). `app_name` must be the bot-LOGIN.
78
+ * When an authoritative `expectedBotLogin` is known (the running agent's own
79
+ * `github_app.bot_login`, macf#535), compare exactly (normalized). Otherwise fall
80
+ * back to the structural heuristic: the #566 bug is literally `app_name === <bare
81
+ * routing label>`, so flag that — anything else passes (we can't prove the exact
82
+ * bot-login without an authoritative actor source; stated in the legend).
83
+ */
84
+ export function evaluateSelfSkip(label, appName, expectedBotLogin) {
85
+ if (!appName || appName.trim() === '') {
86
+ return { ok: false, reason: 'app_name missing' };
87
+ }
88
+ if (expectedBotLogin) {
89
+ return normalizeLogin(appName) === normalizeLogin(expectedBotLogin)
90
+ ? { ok: true }
91
+ : { ok: false, reason: `app_name "${appName}" != bot-login "${expectedBotLogin}"` };
92
+ }
93
+ if (normalizeLogin(appName) === normalizeLogin(label)) {
94
+ return {
95
+ ok: false,
96
+ reason: `app_name "${appName}" is the bare routing label, not a bot-login (#566)`,
97
+ };
98
+ }
99
+ return { ok: true };
100
+ }
101
+ /**
102
+ * Session-name drift (#? Stage-2 fallback). The CONVENTION check: `tmux_session`
103
+ * must equal `<project>@<label>`. This is a STATIC convention check — it proves the
104
+ * config follows the canonical naming, NOT that it matches the LIVE tmux session
105
+ * (a runtime fact this command can't see). Stated in the legend.
106
+ */
107
+ export function evaluateSession(label, tmuxSession, project) {
108
+ const expected = `${project}@${label}`;
109
+ if (!tmuxSession || tmuxSession.trim() === '') {
110
+ return { ok: false, expected, reason: 'tmux_session missing' };
111
+ }
112
+ if (tmuxSession === expected)
113
+ return { ok: true, expected };
114
+ return {
115
+ ok: false,
116
+ expected,
117
+ reason: `tmux_session "${tmuxSession}" != "${expected}" (<project>@<agent> convention)`,
118
+ };
119
+ }
120
+ /** Strict base64: only the base64 alphabet, padded to a multiple of 4. */
121
+ export function isStrictBase64(s) {
122
+ const t = s.replace(/\s+/g, '');
123
+ if (t.length === 0 || t.length % 4 !== 0)
124
+ return false;
125
+ return /^[A-Za-z0-9+/]*={0,2}$/.test(t);
126
+ }
127
+ /**
128
+ * CA material check (#563). `MACF_CA_CERT` is a readable VARIABLE; validate it is
129
+ * present AND parses — either as a PEM cert block whose body is strict base64, or
130
+ * as a base64-of-PEM blob that decodes to a cert. A present-but-malformed value
131
+ * (truncated / garbled base64) is the #563 class: present ≠ valid.
132
+ */
133
+ export function evaluateCaCert(raw) {
134
+ if (raw === null || raw === undefined || raw.trim() === '') {
135
+ return { present: false, valid: false, reason: 'MACF_CA_CERT absent or empty' };
136
+ }
137
+ const text = raw.trim();
138
+ const pem = /-----BEGIN CERTIFICATE-----([\s\S]+?)-----END CERTIFICATE-----/.exec(text);
139
+ if (pem) {
140
+ return isStrictBase64(pem[1])
141
+ ? { present: true, valid: true }
142
+ : { present: true, valid: false, reason: 'PEM body is not valid base64 (#563 malformed)' };
143
+ }
144
+ // No PEM markers — maybe the whole value is base64-of-PEM (#563 storage form).
145
+ if (isStrictBase64(text)) {
146
+ const decoded = Buffer.from(text, 'base64').toString('utf-8');
147
+ if (/-----BEGIN CERTIFICATE-----/.test(decoded))
148
+ return { present: true, valid: true };
149
+ return { present: true, valid: false, reason: 'base64 decodes but is not a certificate' };
150
+ }
151
+ return {
152
+ present: true,
153
+ valid: false,
154
+ reason: 'present but not a parseable PEM/base64 certificate (#563 malformed-base64)',
155
+ };
156
+ }
157
+ /**
158
+ * Classify a registry entry's freshness against the LIVE `/health`:
159
+ * - `/health` answers + instance_id MATCHES → `fresh`.
160
+ * - `/health` answers + instance_id MISMATCH → `stale` (registry points at an
161
+ * older instance; a newer one answered).
162
+ * - `/health` answers but reports no instance_id (older cs) → `unknown`.
163
+ * - `/health` unreachable + heartbeat aged past TTL (DR-031) → `stale` (definitively
164
+ * dead — ungraceful death).
165
+ * - `/health` unreachable, heartbeat fresh/absent → `unreachable` (can't confirm;
166
+ * NOT a verdict failure — liveness is
167
+ * `fleet doctor`'s job, not the plane's).
168
+ */
169
+ export function classifyFreshness(info, health, now, ttlMs) {
170
+ if (health === null) {
171
+ return isStaleEntry(info, ttlMs, now) ? 'stale' : 'unreachable';
172
+ }
173
+ const hid = health.instance_id ?? null;
174
+ if (!hid)
175
+ return 'unknown';
176
+ return hid === info.instance_id ? 'fresh' : 'stale';
177
+ }
178
+ /**
179
+ * Run all five checks. PURE w.r.t. the injected deps — tests pass fakes so nothing
180
+ * hits gh / the registry / the network.
181
+ */
182
+ export async function gatherRoutingDoctor(deps) {
183
+ const now = deps.now ?? Date.now();
184
+ // 1. Caller-pin sweep across the install-set.
185
+ const repos = await deps.listRepos();
186
+ const pinResults = [];
187
+ for (const repo of repos)
188
+ pinResults.push(await deps.readCallerPin(repo));
189
+ const pinnedVals = pinResults.filter((r) => r.status === 'pinned' && r.pin).map((r) => r.pin);
190
+ const expectedPin = computeExpectedPin(pinnedVals, deps.expectedPin);
191
+ const repoPins = pinResults.map((r) => ({
192
+ repo: r.repo,
193
+ pin: r.pin,
194
+ status: r.status,
195
+ consistent: r.status === 'pinned' ? r.pin === expectedPin : null,
196
+ }));
197
+ // Registry index (routability + freshness).
198
+ const registry = await deps.listRegistry();
199
+ const registryByName = new Map(registry.map((e) => [e.name, e.info]));
200
+ // 2 + 3 + 5. Per-agent checks from the routing config.
201
+ const config = await deps.readRoutingConfig();
202
+ const hasRoutingConfig = config !== null;
203
+ const agents = [];
204
+ for (const [label, entry] of Object.entries(config?.agents ?? {})) {
205
+ const regKey = toVariableSegment(label);
206
+ const info = registryByName.get(regKey) ?? null;
207
+ const routable = info !== null;
208
+ const selfSkip = evaluateSelfSkip(label, entry.app_name, deps.botLogins?.[label]);
209
+ const session = evaluateSession(label, entry.tmux_session, deps.project);
210
+ let freshness = 'unregistered';
211
+ let healthInstanceId;
212
+ if (info) {
213
+ const health = await deps.probe(info.host, info.port);
214
+ freshness = classifyFreshness(info, health, now, DEFAULT_REGISTRY_TTL_MS);
215
+ healthInstanceId = health?.instance_id ?? null;
216
+ }
217
+ agents.push({
218
+ label,
219
+ appName: entry.app_name ?? null,
220
+ tmuxSession: entry.tmux_session ?? null,
221
+ routable,
222
+ selfSkipOk: selfSkip.ok,
223
+ selfSkipReason: selfSkip.reason,
224
+ sessionOk: session.ok,
225
+ sessionExpected: session.expected,
226
+ sessionReason: session.reason,
227
+ freshness,
228
+ registryInstanceId: info?.instance_id ?? null,
229
+ healthInstanceId,
230
+ });
231
+ }
232
+ // 4. CA material.
233
+ const ca = evaluateCaCert(await deps.readCaCert());
234
+ return { project: deps.project, repoPins, expectedPin, hasRoutingConfig, agents, ca };
235
+ }
236
+ /** A registry entry's freshness fails the verdict only when definitively `stale`. */
237
+ function freshnessFails(s) {
238
+ return s === 'stale';
239
+ }
240
+ export function routingVerdict(report) {
241
+ if (report.repoPins.length === 0 && report.agents.length === 0)
242
+ return 'EMPTY';
243
+ const participating = report.repoPins.filter((r) => r.consistent !== null);
244
+ const pinFail = participating.some((r) => !r.consistent);
245
+ const agentFail = report.agents.some((a) => !a.routable || !a.selfSkipOk || !a.sessionOk || (a.routable && freshnessFails(a.freshness)));
246
+ const caFail = !report.ca.present || !report.ca.valid;
247
+ return pinFail || agentFail || caFail ? 'DEGRADED' : 'HEALTHY';
248
+ }
249
+ /** `4 fleet repos (pins consistent); 3 agents (2 routing-OK); CA ✓; routing plane: HEALTHY`. */
250
+ export function summaryLine(report) {
251
+ const participating = report.repoPins.filter((r) => r.consistent !== null);
252
+ const pinsOk = participating.length > 0 && participating.every((r) => r.consistent);
253
+ const agentOk = report.agents.filter((a) => a.routable && a.selfSkipOk && a.sessionOk && !freshnessFails(a.freshness)).length;
254
+ const pinClause = participating.length > 0
255
+ ? `${participating.length} routing repo(s) (${pinsOk ? 'pins consistent' : 'PIN DIVERGENCE'})`
256
+ : 'no routing-caller repos discovered';
257
+ return (`${pinClause}; ${agentOk}/${report.agents.length} agents routing-OK; ` +
258
+ `CA ${report.ca.valid ? '✓' : '✗'}; routing plane: ${routingVerdict(report)}`);
259
+ }
260
+ // --- Render ---
261
+ function boolGlyph(ok) {
262
+ return ok ? '✓' : '✗';
263
+ }
264
+ /** ✓ consistent / ✗ divergent / `— n/a` (non-caller). */
265
+ export function pinGlyph(consistent) {
266
+ if (consistent === null)
267
+ return '— n/a';
268
+ return consistent ? '✓' : '✗';
269
+ }
270
+ /** Freshness → short glyph: fresh ✓, stale ✗, unreachable/unknown ?, unregistered —. */
271
+ export function freshnessGlyph(s) {
272
+ switch (s) {
273
+ case 'fresh':
274
+ return '✓';
275
+ case 'stale':
276
+ return '✗ stale';
277
+ case 'unreachable':
278
+ return '? unreach';
279
+ case 'unknown':
280
+ return '? unkn';
281
+ case 'unregistered':
282
+ return '—';
283
+ }
284
+ }
285
+ const REPO_HEADERS = ['REPO', 'CALLER-PIN', 'CONSISTENT'];
286
+ const AGENT_HEADERS = ['AGENT', 'ROUTABLE', 'SELF-SKIP', 'SESSION', 'FRESH'];
287
+ export function buildRepoRows(rows) {
288
+ return rows.map((r) => [r.repo, r.pin ?? (r.status === 'error' ? '(read error)' : '—'), pinGlyph(r.consistent)]);
289
+ }
290
+ export function buildAgentRows(rows) {
291
+ return rows.map((a) => [
292
+ a.label,
293
+ boolGlyph(a.routable),
294
+ boolGlyph(a.selfSkipOk),
295
+ boolGlyph(a.sessionOk),
296
+ freshnessGlyph(a.freshness),
297
+ ]);
298
+ }
299
+ export function formatRepoTable(rows) {
300
+ return formatTable(REPO_HEADERS, buildRepoRows(rows));
301
+ }
302
+ export function formatAgentTable(rows) {
303
+ return formatTable(AGENT_HEADERS, buildAgentRows(rows));
304
+ }
305
+ /**
306
+ * The honesty legend — these are STATIC GitHub-plane checks: they prove the
307
+ * routing PLUMBING is wired right, NOT that a message was delivered (that is
308
+ * `--e2e`, a later increment). Carried verbatim in the `--json` `disclaimer`.
309
+ */
310
+ export const HONESTY_LEGEND = [
311
+ 'Legend: CALLER-PIN = the macf-actions @version each routing repo pins (must all match).',
312
+ ' ROUTABLE = a MACF_AGENT_<LABEL> registry key exists (router resolves by LABEL).',
313
+ ' SELF-SKIP = agent-config.json app_name is the bot-LOGIN, not the bare label (#566).',
314
+ ' SESSION = tmux_session follows the <project>@<agent> convention (a STATIC convention',
315
+ ' check, NOT a match against the live tmux session). FRESH = registry',
316
+ ' instance_id == live /health instance_id (✗ stale / ? unreachable-or-unknown).',
317
+ 'NOTE: these are STATIC GitHub-plane checks — they prove the routing PLUMBING is wired right,',
318
+ ' NOT that a message was delivered end-to-end (that is `macf routing doctor --e2e`, a',
319
+ ' later increment). Mesh delivery is `macf fleet doctor`.',
320
+ ].join('\n');
321
+ const HONESTY_DISCLAIMER = 'Static GitHub-plane checks: they prove the routing plumbing (caller-pins, registry-as-routing-' +
322
+ 'source, CA material, session-name convention) is wired right, NOT that a message was delivered ' +
323
+ 'end-to-end (that is --e2e, a later increment). Mesh delivery is `macf fleet doctor`.';
324
+ // --- JSON contract (DR-031 watchdog input; same hard-version discipline as fleet doctor) ---
325
+ /**
326
+ * `schema_version` is the HARD version contract (DR-006 watchdog, devops #118):
327
+ * a consumer asserts `schema_version === <known>` and refuses an unknown value,
328
+ * so ANY breaking change (rename / removal / a same-name SEMANTIC shift) fails
329
+ * LOUD rather than silently misreading. BUMP on any breaking change; additive-
330
+ * optional fields do NOT bump it. Independent from fleet doctor's schema_version
331
+ * (a separate command, a separate contract).
332
+ */
333
+ export const ROUTING_DOCTOR_JSON_SCHEMA_VERSION = 1;
334
+ export function routingDoctorToJson(report) {
335
+ const participating = report.repoPins.filter((r) => r.consistent !== null);
336
+ return {
337
+ schema_version: ROUTING_DOCTOR_JSON_SCHEMA_VERSION,
338
+ project: report.project,
339
+ summary: {
340
+ verdict: routingVerdict(report),
341
+ routing_repos: participating.length,
342
+ pins_consistent: participating.length > 0 && participating.every((r) => r.consistent),
343
+ expected_pin: report.expectedPin,
344
+ agents_total: report.agents.length,
345
+ agents_routing_ok: report.agents.filter((a) => a.routable && a.selfSkipOk && a.sessionOk && !freshnessFails(a.freshness)).length,
346
+ ca_ok: report.ca.present && report.ca.valid,
347
+ },
348
+ caller_pins: report.repoPins.map((r) => ({
349
+ repo: r.repo,
350
+ pin: r.pin,
351
+ status: r.status,
352
+ consistent: r.consistent,
353
+ })),
354
+ agents: report.agents.map((a) => ({
355
+ label: a.label,
356
+ app_name: a.appName,
357
+ tmux_session: a.tmuxSession,
358
+ routable: a.routable,
359
+ self_skip_ok: a.selfSkipOk,
360
+ self_skip_reason: a.selfSkipReason ?? null,
361
+ session_ok: a.sessionOk,
362
+ session_expected: a.sessionExpected,
363
+ session_reason: a.sessionReason ?? null,
364
+ freshness: a.freshness,
365
+ registry_instance_id: a.registryInstanceId ?? null,
366
+ health_instance_id: a.healthInstanceId ?? null,
367
+ })),
368
+ ca_cert: {
369
+ present: report.ca.present,
370
+ valid: report.ca.valid,
371
+ reason: report.ca.reason ?? null,
372
+ },
373
+ disclaimer: HONESTY_DISCLAIMER,
374
+ };
375
+ }
376
+ // --- Production dep wiring ---
377
+ /** Read the CURRENT project repo's `.github/agent-config.json` from disk. */
378
+ function readLocalRoutingConfig(projectDir) {
379
+ const path = join(projectDir, '.github', 'agent-config.json');
380
+ if (!existsSync(path))
381
+ return null;
382
+ try {
383
+ const parsed = JSON.parse(readFileSync(path, 'utf-8'));
384
+ if (!parsed || typeof parsed !== 'object' || typeof parsed.agents !== 'object')
385
+ return null;
386
+ return parsed;
387
+ }
388
+ catch {
389
+ return null;
390
+ }
391
+ }
392
+ async function resolveDepsFromRegistry(projectDir) {
393
+ const config = readAgentConfig(projectDir);
394
+ if (!config) {
395
+ console.error('No macf-agent.json found. Run `macf init` first.');
396
+ return { ok: false, code: 1 };
397
+ }
398
+ if (config.registry.type === 'local') {
399
+ console.error('`macf routing doctor` checks the GitHub routing plane; local-registry mode has none.');
400
+ return { ok: false, code: 1 };
401
+ }
402
+ const token = await generateToken(tokenSourceFromConfig(projectDir, config));
403
+ const registry = createRegistryFromConfig(config.registry, config.project, token);
404
+ const client = createClientFromConfig(config.registry, token);
405
+ const caVarName = `${toVariableSegment(config.project)}_CA_CERT`;
406
+ // Read the CA cert ONCE: it's both the freshness-probe trust anchor AND the
407
+ // subject of the CA-material check. A malformed value just makes the probe fail
408
+ // (→ unreachable), which is itself a correct signal.
409
+ const caCertPem = await client.readVariable(caVarName);
410
+ const certPath = agentCertPath(projectDir);
411
+ const keyPath = agentKeyPath(projectDir);
412
+ // Authoritative bot-login for THIS agent's own routing label (macf#535). Other
413
+ // labels fall back to the #566 bare-label heuristic in evaluateSelfSkip.
414
+ const ownLabel = config.routing_label ?? config.agent_name;
415
+ const ownBotLogin = config.github_app?.bot_login;
416
+ const botLogins = ownBotLogin ? { [ownLabel]: ownBotLogin } : undefined;
417
+ // The GitHub reader fallback for the routing config: prefer the local file (we
418
+ // are usually IN the project repo), else read the current repo via gh.
419
+ const ghRoutingReader = createRoutingConfigGhReader(token);
420
+ const localRouting = readLocalRoutingConfig(projectDir);
421
+ return {
422
+ ok: true,
423
+ deps: {
424
+ project: config.project,
425
+ botLogins,
426
+ listRepos: createInstallRepoLister(token),
427
+ readCallerPin: createCallerPinReader(token),
428
+ readRoutingConfig: async () => localRouting ?? (await ghRoutingReader(detectCurrentRepo(projectDir) ?? '')),
429
+ listRegistry: () => registry.list(''),
430
+ probe: (host, port) => pingAgentHealth({ host, port, caCertPem: caCertPem ?? '', certPath, keyPath }),
431
+ readCaCert: async () => caCertPem,
432
+ },
433
+ };
434
+ }
435
+ /** Best-effort `owner/repo` from the project's git remote (for the gh routing-config fallback). */
436
+ function detectCurrentRepo(projectDir) {
437
+ try {
438
+ const path = join(projectDir, '.git', 'config');
439
+ if (!existsSync(path))
440
+ return null;
441
+ const m = /github\.com[:/]([^/\s]+\/[^/\s.]+)(?:\.git)?/.exec(readFileSync(path, 'utf-8'));
442
+ return m ? m[1] : null;
443
+ }
444
+ catch {
445
+ return null;
446
+ }
447
+ }
448
+ /**
449
+ * `macf routing doctor` entry point. Returns the shell exit code — 1 when the
450
+ * routing plane is DEGRADED, 0 when HEALTHY or EMPTY (matching `fleet doctor` /
451
+ * `macf doctor` "non-zero on problem"). The `--json` body prints regardless; the
452
+ * watchdog reads `summary.verdict`. `deps` is injected by tests.
453
+ */
454
+ export async function runRoutingDoctor(projectDir, opts = {}, deps) {
455
+ let resolved = deps;
456
+ if (!resolved) {
457
+ const r = await resolveDepsFromRegistry(projectDir);
458
+ if (!r.ok)
459
+ return r.code;
460
+ resolved = r.deps;
461
+ }
462
+ if (opts.expectedPin && !resolved.expectedPin) {
463
+ resolved = { ...resolved, expectedPin: opts.expectedPin };
464
+ }
465
+ const report = await gatherRoutingDoctor(resolved);
466
+ const verdict = routingVerdict(report);
467
+ if (opts.json) {
468
+ console.log(JSON.stringify(routingDoctorToJson(report), null, 2));
469
+ return verdict === 'DEGRADED' ? 1 : 0;
470
+ }
471
+ const header = `macf routing doctor — ${report.project}`;
472
+ if (verdict === 'EMPTY') {
473
+ console.log(`${header}\n\nNo fleet repos discovered and no routing config agents. Nothing to check.`);
474
+ if (!report.ca.present)
475
+ console.log('Note: MACF_CA_CERT not found in the registry.');
476
+ return 0;
477
+ }
478
+ console.log(`${header}\n`);
479
+ if (report.repoPins.length > 0) {
480
+ console.log('Caller-pin consistency (App install-set):');
481
+ console.log(formatRepoTable(report.repoPins));
482
+ if (report.expectedPin)
483
+ console.log(`Expected pin (modal): ${report.expectedPin}`);
484
+ console.log('');
485
+ }
486
+ else {
487
+ console.log('Caller-pin consistency: no fleet repos discovered (App install-set unavailable).\n');
488
+ }
489
+ if (report.hasRoutingConfig) {
490
+ console.log('Per-agent routing checks (current project routing config):');
491
+ console.log(formatAgentTable(report.agents));
492
+ console.log('');
493
+ }
494
+ else {
495
+ console.log('Per-agent routing checks: no .github/agent-config.json found for this project.\n');
496
+ }
497
+ console.log(`MACF_CA_CERT: ${report.ca.present ? (report.ca.valid ? '✓ present + parses' : `✗ ${report.ca.reason}`) : '✗ absent'}`);
498
+ console.log('');
499
+ console.log(summaryLine(report));
500
+ console.log('');
501
+ console.log(HONESTY_LEGEND);
502
+ return verdict === 'DEGRADED' ? 1 : 0;
503
+ }
504
+ //# sourceMappingURL=routing-doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing-doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/routing-doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AA6DA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,KAAK,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAa9C,UAAU,OAAO;IACf,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAKxB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,cAAc,GAAG,kBAAkB,CAAC;CAC9G;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,gBAAgB,GACzB,SAAS,OAAO,EAAE,CAepB;AAgCD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAM3D;AA+BD;;GAEG;AACH,wBAAsB,MAAM,CAC1B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,MAAM,CAAC,CAwVjB"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,KAAK,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAa9C,UAAU,OAAO;IACf,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAKxB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,cAAc,GAAG,kBAAkB,CAAC;CAC9G;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,gBAAgB,GACzB,SAAS,OAAO,EAAE,CAepB;AAgCD,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAM3D;AA+BD;;GAEG;AACH,wBAAsB,MAAM,CAC1B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,MAAM,CAAC,CAiWjB"}
@@ -49,6 +49,7 @@ import { installGhTokenHook, installPluginSkillPermissions, installSandboxFdAllo
49
49
  import { detectStaleDist, detectUnknownFreshness } from '../build-info.js';
50
50
  import { fetchPluginToWorkspace, workspacePluginDir, pinChannelServerVersion } from '../plugin-fetcher.js';
51
51
  import { writeClaudeSh } from '../claude-sh.js';
52
+ import { writeHostPrelude } from '../host-prelude.js';
52
53
  import { refreshEnvFiles, migrateMonolithicClaudeSh, detectSettingsLocalEnvKeys, formatDeprecationWarning, } from '../env-files-update.js';
53
54
  import { createClientFromConfig } from '../registry-helper.js';
54
55
  import { generateToken } from '@groundnuty/macf-core';
@@ -302,6 +303,14 @@ export async function update(projectDir, opts) {
302
303
  `preserved ${refresh.preserved.length} operator-managed file(s); ` +
303
304
  `warned on ${refresh.warnedHandEdits.length} hand-edit(s)`;
304
305
  console.log(summary);
306
+ // Host-toolchain bootstrap (DR-031 piece 4). Re-detect the backend +
307
+ // regenerate .claude/.macf/host-prelude.sh in lockstep with claude.sh.
308
+ // This is macf-managed + RE-DETECTED (never preserve-existing) — the
309
+ // host's toolchain may have changed since the last update, and the
310
+ // dynamic re-source the file emits must reflect the current backend.
311
+ // The thin claude.sh sources it FIRST (before the env.* loop).
312
+ writeHostPrelude(projectDir);
313
+ console.log(`Refreshed host-prelude.sh from current toolchain detection`);
305
314
  }
306
315
  // macf#342 PR-C deprecation surface: settings.local.json env keys
307
316
  // matching MACF_* / OTEL_* are now redundant with the per-concern
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}