@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
@@ -1,4 +1,4 @@
1
1
  {
2
- "commit": "905655f92050bda68767a7974bb813c95869afee",
3
- "built_at": "2026-06-26T05:13:40.118Z"
2
+ "commit": "24fcaf618ff5018fb701526e582f33c898a71060",
3
+ "built_at": "2026-06-26T23:55:58.076Z"
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude-sh.d.ts","sourceRoot":"","sources":["../../src/cli/claude-sh.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAuBnD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CA4B/D;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAejD;AA0ED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,EAAE,CAgEV;AA4BD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAkBhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAiB1D;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAgC1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAkGhE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAUnF"}
1
+ {"version":3,"file":"claude-sh.d.ts","sourceRoot":"","sources":["../../src/cli/claude-sh.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAuBnD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CA4B/D;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAejD;AA0ED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,EAAE,CAgEV;AA4BD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAkBhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAiB1D;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAgC1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CA+GhE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAUnF"}
@@ -488,6 +488,19 @@ export function generateClaudeSh(config) {
488
488
  'SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"',
489
489
  'cd "$SCRIPT_DIR"',
490
490
  '',
491
+ '# Host toolchain bootstrap (DR-031 piece 4). Source host-prelude.sh',
492
+ '# FIRST — before the env.* loop, the tmux self-wrap, and the final claude',
493
+ '# launch — so the toolchain (claude / jq / node / tmux) is on PATH when the',
494
+ '# launch context has a MINIMAL env that did not inherit the operator',
495
+ '# login-shell PATH: cron, a detached restart-self relauncher, or a',
496
+ '# container entrypoint. The env.* files (token mint needs gh/jq/openssl)',
497
+ '# and claude itself depend on the toolchain this re-establishes; it is',
498
+ '# macf-managed + re-detected (devbox/brew/none) on every `macf update`.',
499
+ '# The `[ -f ] &&` form is set -e safe (the left of && is not the final',
500
+ "# command) and lets a workspace lacking the file (older init) still",
501
+ "# launch. The same path is consumed by restart-self's relauncher.",
502
+ '[ -f "$SCRIPT_DIR/.claude/.macf/host-prelude.sh" ] && source "$SCRIPT_DIR/.claude/.macf/host-prelude.sh"',
503
+ '',
491
504
  '# Source per-concern env files (macf#342). Shell glob sorts',
492
505
  '# alphabetically, so env._helpers (underscore prefix sorts before',
493
506
  '# letters) loads first and defines macf_settings_get used by',
@@ -1 +1 @@
1
- {"version":3,"file":"claude-sh.js","sourceRoot":"","sources":["../../src/cli/claude-sh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-sh.js","sourceRoot":"","sources":["../../src/cli/claude-sh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { HealthResponse } from '@groundnuty/macf-core';
2
+ /** Outcome of the inject `/notify` POST (the real mention probe). */
3
+ export interface InjectPostResult {
4
+ /** HTTP 200 — the probe entered the receiver (onNotify ran). */
5
+ readonly delivered: boolean;
6
+ /** Short reason when not delivered (transport error / non-200). */
7
+ readonly error?: string;
8
+ }
9
+ /**
10
+ * POST the REAL inject `/notify` mention (marker in `message`). Injectable for
11
+ * tests. `runId` is the digits-only correlation id embedded in the marker;
12
+ * `markerAgent` is the kebab agent slug the marker carries.
13
+ */
14
+ export type FleetInjectPostFn = (host: string, port: number, runId: string, markerAgent: string) => Promise<InjectPostResult>;
15
+ /**
16
+ * Poll the target's `/health` ONCE and return the CURRENT
17
+ * `last_processed.correlation_token` (the most-recent processed receipt's
18
+ * `run_id`), or `null` when absent. Injectable for tests.
19
+ */
20
+ export type FleetInjectPollFn = (host: string, port: number) => Promise<string | null>;
21
+ /**
22
+ * The REAL inject `/notify` POST. Mirrors `postDiagnosticNotify`'s mTLS request
23
+ * shape (same CA + client cert/key, `rejectUnauthorized`, timeout) but sends a
24
+ * NON-diagnostic `mention` whose `message` carries the
25
+ * `[macf-route:<runId>:<markerAgent>]` marker. Resolves `{ delivered: true }`
26
+ * only on HTTP 200; never throws (failures become `{ delivered:false, error }`).
27
+ */
28
+ export declare function postInjectNotify(config: {
29
+ readonly host: string;
30
+ readonly port: number;
31
+ readonly caCertPem: string;
32
+ readonly certPath: string;
33
+ readonly keyPath: string;
34
+ readonly runId: string;
35
+ readonly markerAgent: string;
36
+ readonly timeoutMs?: number;
37
+ }): Promise<InjectPostResult>;
38
+ /** Extract `last_processed.correlation_token` from a parsed `/health` body. */
39
+ export declare function readCorrelationToken(health: HealthResponse | null): string | null;
40
+ /**
41
+ * Poll one agent's `/health` (reusing the shared mTLS probe) and return its
42
+ * CURRENT `last_processed.correlation_token`, or `null`. Production
43
+ * `FleetInjectPollFn`.
44
+ */
45
+ export declare function pollLastProcessedToken(config: {
46
+ readonly host: string;
47
+ readonly port: number;
48
+ readonly caCertPem: string;
49
+ readonly certPath: string;
50
+ readonly keyPath: string;
51
+ }): Promise<string | null>;
52
+ //# sourceMappingURL=fleet-doctor-inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-doctor-inject.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/fleet-doctor-inject.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAEvF;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoD5B;AAaD,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAGjF;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGzB"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * `macf fleet doctor --inject` — the network I/O leaf for the INVASIVE
3
+ * Processed-now delivery-proof tier (DR-030 §3, macf#568 final increment).
4
+ *
5
+ * Split out of `fleet-doctor.ts` so the mTLS request shapes live in one small,
6
+ * dependency-free module (this file imports NOTHING from `fleet-doctor.ts` — the
7
+ * dependency is strictly one-directional, `fleet-doctor.ts` → here). The pure
8
+ * orchestration (per-agent poll loop, glyphs, JSON, legends) stays in
9
+ * `fleet-doctor.ts`.
10
+ *
11
+ * The load-bearing mechanism — verified against `notify-formatter.ts` +
12
+ * `server.ts` + `comms-ledger.ts` + `emit-turn-receipt.sh`:
13
+ *
14
+ * POST /notify { type:'mention', message:'… [macf-route:<runId>:<agent>] …' }
15
+ * → https.ts (NON-diagnostic → falls through to onNotify)
16
+ * → formatNotifyContent(mention) returns { content: payload.message } VERBATIM
17
+ * → server.ts feeds `content` to BOTH mcp.pushNotification AND wakeViaTmux
18
+ * (decideWake → 'mention' is a standard type → WAKE), which types `content`
19
+ * into the agent's TUI input buffer → submitted as the agent's next TURN
20
+ * → emit-turn-receipt.sh (UserPromptSubmit hook) greps the marker out of the
21
+ * prompt and appends {ts, run_id, agent} to processed-receipts.jsonl
22
+ * → /health.last_processed.correlation_token === <runId> (mapReceiptToLast-
23
+ * Processed sets correlation_token = receipt.run_id — comms-ledger.ts).
24
+ *
25
+ * Matching the echoed run_id proves the full deliver→process chain. The
26
+ * `mention` `message` field is the carrier because `formatNotifyContent` passes
27
+ * it through unchanged (a `diagnostic:true` payload would short-circuit at the
28
+ * server BEFORE any push — so we must NOT set it).
29
+ */
30
+ import { request } from 'node:https';
31
+ import { readFileSync, existsSync } from 'node:fs';
32
+ import { pingAgentHealth } from '@groundnuty/macf-core';
33
+ /** Same per-request timeout as the non-invasive tiers' mTLS calls. */
34
+ const DEFAULT_TIMEOUT_MS = 5000;
35
+ /**
36
+ * The REAL inject `/notify` POST. Mirrors `postDiagnosticNotify`'s mTLS request
37
+ * shape (same CA + client cert/key, `rejectUnauthorized`, timeout) but sends a
38
+ * NON-diagnostic `mention` whose `message` carries the
39
+ * `[macf-route:<runId>:<markerAgent>]` marker. Resolves `{ delivered: true }`
40
+ * only on HTTP 200; never throws (failures become `{ delivered:false, error }`).
41
+ */
42
+ export async function postInjectNotify(config) {
43
+ const { host, port, caCertPem, certPath, keyPath, runId, markerAgent, timeoutMs = DEFAULT_TIMEOUT_MS } = config;
44
+ if (!existsSync(certPath) || !existsSync(keyPath)) {
45
+ return { delivered: false, error: 'client cert/key missing' };
46
+ }
47
+ const payload = JSON.stringify({
48
+ type: 'mention',
49
+ source: 'fleet-doctor',
50
+ message: `fleet-doctor --inject probe (run_id=${runId}) — no action needed; this verifies ` +
51
+ `delivery is processed end-to-end. [macf-route:${runId}:${markerAgent}]`,
52
+ });
53
+ return new Promise((resolve) => {
54
+ const req = request({
55
+ hostname: host,
56
+ port,
57
+ method: 'POST',
58
+ path: '/notify',
59
+ ca: Buffer.from(caCertPem),
60
+ cert: readFileSync(certPath),
61
+ key: readFileSync(keyPath),
62
+ rejectUnauthorized: true,
63
+ timeout: timeoutMs,
64
+ headers: {
65
+ 'content-type': 'application/json',
66
+ 'content-length': Buffer.byteLength(payload),
67
+ },
68
+ }, (res) => {
69
+ const status = res.statusCode ?? null;
70
+ res.on('data', () => { });
71
+ res.on('end', () => {
72
+ resolve(status === 200
73
+ ? { delivered: true }
74
+ : { delivered: false, error: status === null ? 'no response' : `http ${status}` });
75
+ });
76
+ });
77
+ req.on('error', (e) => resolve({ delivered: false, error: e.message }));
78
+ req.on('timeout', () => {
79
+ req.destroy();
80
+ resolve({ delivered: false, error: 'timeout' });
81
+ });
82
+ req.write(payload);
83
+ req.end();
84
+ });
85
+ }
86
+ /** Extract `last_processed.correlation_token` from a parsed `/health` body. */
87
+ export function readCorrelationToken(health) {
88
+ const lp = health?.last_processed;
89
+ return lp?.correlation_token ?? null;
90
+ }
91
+ /**
92
+ * Poll one agent's `/health` (reusing the shared mTLS probe) and return its
93
+ * CURRENT `last_processed.correlation_token`, or `null`. Production
94
+ * `FleetInjectPollFn`.
95
+ */
96
+ export async function pollLastProcessedToken(config) {
97
+ const health = await pingAgentHealth(config);
98
+ return readCorrelationToken(health);
99
+ }
100
+ //# sourceMappingURL=fleet-doctor-inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-doctor-inject.js","sourceRoot":"","sources":["../../../src/cli/commands/fleet-doctor-inject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ import type { AgentInfo, HealthResponse } from '@groundnuty/macf-core';
2
+ import type { FleetInjectPostFn, FleetInjectPollFn } from './fleet-doctor-inject.js';
3
+ /**
4
+ * The diagnostic `/notify` ACK body (the wire contract a SIBLING increment adds
5
+ * server-side; pinned here EXACTLY). The server short-circuits a `diagnostic:
6
+ * true` payload to this ACK before any MCP push and echoes the token back.
7
+ */
8
+ export interface DiagnosticAckBody {
9
+ readonly ack?: boolean;
10
+ readonly agent?: string;
11
+ readonly instance_id?: string;
12
+ readonly correlation_token?: string;
13
+ }
14
+ /** Raw result of the diagnostic POST — what the server returned (or why not). */
15
+ export interface DiagnosticAck {
16
+ /** HTTP status, or null when no response arrived (refused / timeout / cert). */
17
+ readonly status: number | null;
18
+ /** Parsed ACK body, or null on non-JSON / no response. */
19
+ readonly body: DiagnosticAckBody | null;
20
+ /** Short failure reason for diagnostics, when not a clean ACK. */
21
+ readonly error?: string;
22
+ }
23
+ /** Probe a single endpoint's `/health`; null on any failure. Injectable for tests. */
24
+ export type FleetProbeFn = (host: string, port: number) => Promise<HealthResponse | null>;
25
+ /** POST the diagnostic `/notify` and collect the ACK. Injectable for tests. */
26
+ export type FleetDiagnosticFn = (host: string, port: number, correlationToken: string) => Promise<DiagnosticAck>;
27
+ /** Tuning + injectable seams for the Processed-now inject tier. */
28
+ export interface FleetInjectConfig {
29
+ readonly post: FleetInjectPostFn;
30
+ readonly poll: FleetInjectPollFn;
31
+ /** Generate a unique DIGITS-ONLY run id (marker regex requires `[0-9]+`). */
32
+ readonly genRunId?: () => string;
33
+ /** How many times to poll `/health` after the POST (default 7). */
34
+ readonly maxPolls?: number;
35
+ /** Delay between polls, ms (default 4000 → ~24s total at 7 polls). */
36
+ readonly pollIntervalMs?: number;
37
+ /** Injectable delay (tests pass a no-op for instant, deterministic runs). */
38
+ readonly sleep?: (ms: number) => Promise<void>;
39
+ }
40
+ /** Default digits-only run id: epoch-ms + 6 random digits → unique, `[0-9]+`. */
41
+ export declare function defaultRunId(): string;
42
+ /**
43
+ * Sanitize a registry name into a marker-legal agent slug. The
44
+ * `emit-turn-receipt.sh` grep is `\[macf-route:[0-9]+:[a-z0-9-]+\]`, so an
45
+ * UNsanitized label with an underscore/uppercase would fail the whole-marker
46
+ * match → no receipt written → a false UNCONFIRMED. Lowercase + map any
47
+ * out-of-class char to `-`; fall back to `agent` if the result is empty.
48
+ */
49
+ export declare function sanitizeMarkerAgent(name: string): string;
50
+ /** One agent's two-tier ladder result. */
51
+ export interface FleetDoctorResult {
52
+ readonly name: string;
53
+ readonly host: string;
54
+ readonly port: number;
55
+ /** mTLS `/health` answered. */
56
+ readonly reachable: boolean;
57
+ /**
58
+ * Diagnostic `/notify` ACK'd (200 + ack + token-echo match). `null` when NOT
59
+ * attempted (agent unreachable — the ladder stops at tier 1).
60
+ */
61
+ readonly accepted: boolean | null;
62
+ /** `agent` (routing label) echoed by the ACK, when present. */
63
+ readonly ackAgent?: string;
64
+ /** `instance_id` echoed by the ACK, when present. */
65
+ readonly instanceId?: string;
66
+ /** Why the Accepted tier was not green, when attempted-but-failed. */
67
+ readonly acceptError?: string;
68
+ /**
69
+ * Processed-now (`--inject`) tier — TRI-STATE, and ONLY populated when
70
+ * `--inject` runs against a REACHABLE agent:
71
+ * - `true` → the probe's `run_id` echoed back via `/health.last_processed`
72
+ * within the poll window (full deliver→process chain proven).
73
+ * - `false` → UNCONFIRMED: delivered but the echo didn't appear in the
74
+ * window (a busy agent legitimately may not process in time —
75
+ * NOT proof of a gap), OR the inject POST itself wasn't delivered.
76
+ * - `null` → NOT attempted (agent unreachable, or `--inject` not passed).
77
+ */
78
+ readonly processedInject?: boolean | null;
79
+ /** The marker `run_id` routed for this agent (diagnostics; inject mode only). */
80
+ readonly injectRunId?: string;
81
+ /** Why Processed was not green (unconfirmed within window / POST not delivered). */
82
+ readonly injectError?: string;
83
+ }
84
+ /**
85
+ * Accepted = HTTP 200 AND `ack === true` AND the echoed `correlation_token`
86
+ * matches what we sent. The token echo is the load-bearing check — it proves
87
+ * the 200 is a real round-trip of OUR request, not a coincidental success.
88
+ */
89
+ export declare function isAccepted(sentToken: string, ack: DiagnosticAck): boolean;
90
+ /** Human-readable reason the Accepted tier failed (used in `--json`/diagnostics). */
91
+ export declare function acceptFailureReason(sentToken: string, ack: DiagnosticAck): string;
92
+ /**
93
+ * Run the Processed-now (`--inject`) tier for ONE reachable agent: route a real
94
+ * marker-bearing mention, then poll `/health.last_processed.correlation_token`
95
+ * for our `run_id`. Returns the tri-state outcome + diagnostics. PURE w.r.t.
96
+ * `inject.post`/`inject.poll`/`inject.sleep` — tests inject fakes (and a no-op
97
+ * sleep) so nothing hits the network and there are no real waits.
98
+ */
99
+ export declare function runProcessedInject(peer: {
100
+ readonly name: string;
101
+ readonly info: AgentInfo;
102
+ }, ackAgent: string | undefined, inject: FleetInjectConfig): Promise<{
103
+ readonly processedInject: boolean;
104
+ readonly injectRunId: string;
105
+ readonly injectError?: string;
106
+ }>;
107
+ /**
108
+ * Run the ladder per peer: probe `/health`, then (only if reachable) POST the
109
+ * diagnostic `/notify`. When `inject` is supplied (`--inject`), ALSO run the
110
+ * INVASIVE Processed-now tier on each reachable agent (routes a real prompt +
111
+ * wakes the agent). PURE w.r.t. `probe`/`diagnose`/`genToken`/`inject` — tests
112
+ * inject fakes so nothing hits the network.
113
+ */
114
+ export declare function gatherFleetDoctor(peers: readonly {
115
+ readonly name: string;
116
+ readonly info: AgentInfo;
117
+ }[], probe: FleetProbeFn, diagnose: FleetDiagnosticFn, genToken?: () => string, inject?: FleetInjectConfig): Promise<readonly FleetDoctorResult[]>;
118
+ /** ✓ / ✗ for a boolean reachability flag. */
119
+ export declare function reachableGlyph(reachable: boolean): string;
120
+ /** ✓ / ✗ / — for the tri-state Accepted (null = not attempted). */
121
+ export declare function acceptedGlyph(accepted: boolean | null): string;
122
+ /**
123
+ * Processed glyph (inject tier). ✓ = run_id echoed (processed end-to-end);
124
+ * `?` = UNCONFIRMED within the window (delivered but not echoed — possibly a
125
+ * busy agent, NOT necessarily a gap — deliberately NOT `✗`); `—` = not
126
+ * attempted (unreachable / inject off).
127
+ */
128
+ export declare function processedGlyph(processed: boolean | null | undefined): string;
129
+ /**
130
+ * Build one display row per agent (pure — exported for tests). When `inject`
131
+ * is true, append the PROCESSED column.
132
+ */
133
+ export declare function buildDoctorRows(results: readonly FleetDoctorResult[], inject?: boolean): readonly (readonly string[])[];
134
+ /** Full rendered table (pure — exported for tests). */
135
+ export declare function formatDoctorTable(results: readonly FleetDoctorResult[], inject?: boolean): string;
136
+ /** Mesh verdict: all-green → HEALTHY, any-fail → DEGRADED, no agents → EMPTY. */
137
+ export type MeshVerdict = 'HEALTHY' | 'DEGRADED' | 'EMPTY';
138
+ export declare function meshVerdict(results: readonly FleetDoctorResult[]): MeshVerdict;
139
+ /** `3/4 agents reachable + accepting; mesh interconnect: DEGRADED`. */
140
+ export declare function summaryLine(results: readonly FleetDoctorResult[]): string;
141
+ /**
142
+ * The honesty footnote — non-invasive checks prove protocol-to-server ONLY.
143
+ * Kept as a single block so it renders identically in the table output and is
144
+ * carried verbatim in the `--json` `disclaimer` field.
145
+ */
146
+ export declare const HONESTY_LEGEND: string;
147
+ /**
148
+ * The `--inject` Processed-tier legend. INVASIVE: it routes a real probe to each
149
+ * reachable agent + costs it a turn. A `?` (UNCONFIRMED) is NOT "deaf" — a busy
150
+ * agent mid-long-turn legitimately won't process the probe within the window.
151
+ */
152
+ export declare const INJECT_LEGEND: string;
153
+ /** `2/3 reachable agents processed an injected probe (1 unconfirmed — possibly busy)`. */
154
+ export declare function injectSummaryLine(results: readonly FleetDoctorResult[]): string;
155
+ /** Count of reachable agents an `--inject` run will WAKE (for the up-front warning). */
156
+ export declare function injectableCount(results: readonly FleetDoctorResult[]): number;
157
+ /**
158
+ * Structured `--json` shape for automation. THIS IS THE INPUT CONTRACT the
159
+ * DR-031 watchdog consumes — keep it clean + stable. `accepted` is tri-state
160
+ * (`true`/`false`/`null`); `summary.verdict` is the machine-readable health.
161
+ *
162
+ * `schema_version` is the HARD version contract (DR-006 watchdog request,
163
+ * macf-devops-toolkit#115): a consumer asserts `schema_version === <known>`
164
+ * and refuses an unknown value, so it fails LOUD on ANY breaking change —
165
+ * not just a renamed key (which a presence-check catches) but a same-name
166
+ * SEMANTIC change (e.g. `accepted` going tri-state-bool → string-enum) that
167
+ * would otherwise parse clean and silently misread (the Instance-13-adjacent
168
+ * silent-fallback at the supervisor's own input). BUMP this on any breaking
169
+ * change (rename / removal / semantic shift); additive-optional fields do NOT
170
+ * bump it.
171
+ */
172
+ export declare const FLEET_DOCTOR_JSON_SCHEMA_VERSION = 1;
173
+ /**
174
+ * `--inject` ADDS `processed_inject` (+ `inject_run_id` / `inject_error` /
175
+ * top-level `inject`) WITHOUT a `schema_version` bump. Per the documented policy
176
+ * above, additive-OPTIONAL fields do NOT bump the version (a bump is reserved
177
+ * for rename / removal / a same-name SEMANTIC shift). `processed_inject` is
178
+ * present ONLY when `--inject` ran (`opts.inject`); a watchdog that pins
179
+ * `schema_version === 1` keeps parsing clean and simply ignores the new key —
180
+ * exactly the additive-tolerance the version contract is built for.
181
+ */
182
+ export declare function fleetDoctorToJson(results: readonly FleetDoctorResult[], project?: string, opts?: {
183
+ readonly inject?: boolean;
184
+ }): unknown;
185
+ /**
186
+ * The real mTLS diagnostic POST. Mirrors `pingAgentHealth`'s request shape
187
+ * (same CA + client cert/key, `rejectUnauthorized`, timeout) but POSTs the
188
+ * diagnostic body to `/notify`. Resolves with a `DiagnosticAck` describing the
189
+ * outcome; never throws (failures become `{ status: null, error }`).
190
+ */
191
+ export declare function postDiagnosticNotify(config: {
192
+ readonly host: string;
193
+ readonly port: number;
194
+ readonly caCertPem: string;
195
+ readonly certPath: string;
196
+ readonly keyPath: string;
197
+ readonly correlationToken: string;
198
+ readonly timeoutMs?: number;
199
+ }): Promise<DiagnosticAck>;
200
+ /** Options for `runFleetDoctor`. */
201
+ export interface RunFleetDoctorOptions {
202
+ /** Emit the structured per-agent result as JSON instead of a table. */
203
+ readonly json?: boolean;
204
+ /** Run the INVASIVE Processed-now tier — routes a real probe + wakes each agent. */
205
+ readonly inject?: boolean;
206
+ /** Inject poll budget (seconds) → derives maxPolls at a fixed ~4s interval. */
207
+ readonly injectTimeoutSec?: number;
208
+ }
209
+ /** Injectable seam so tests drive the command without touching the registry/network. */
210
+ export interface FleetDoctorDeps {
211
+ readonly listPeers: () => Promise<readonly {
212
+ readonly name: string;
213
+ readonly info: AgentInfo;
214
+ }[]>;
215
+ readonly probe: FleetProbeFn;
216
+ readonly diagnose: FleetDiagnosticFn;
217
+ readonly genToken?: () => string;
218
+ readonly project?: string;
219
+ /** Inject-tier POST (only used under `--inject`). Wired by resolveDeps; faked in tests. */
220
+ readonly injectPost?: FleetInjectPostFn;
221
+ /** Inject-tier `/health` poll (only used under `--inject`). Wired by resolveDeps; faked in tests. */
222
+ readonly injectPoll?: FleetInjectPollFn;
223
+ /** Inject run-id generator + sleep override (tests pass deterministic fakes). */
224
+ readonly injectGenRunId?: () => string;
225
+ readonly injectSleep?: (ms: number) => Promise<void>;
226
+ }
227
+ /**
228
+ * `macf fleet doctor` entry point. Returns the shell exit code — 1 when the
229
+ * mesh is DEGRADED (any agent unreachable or not-accepting), 0 when HEALTHY or
230
+ * when no agents are registered (matching the `macf doctor` "non-zero on
231
+ * problem" convention). The `--json` body still prints to stdout regardless of
232
+ * exit code; the watchdog reads `summary.verdict` from it. `deps` is injected
233
+ * by tests; production resolves it from the project's registry config.
234
+ */
235
+ export declare function runFleetDoctor(projectDir: string, opts?: RunFleetDoctorOptions, deps?: FleetDoctorDeps): Promise<number>;
236
+ //# sourceMappingURL=fleet-doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/fleet-doctor.ts"],"names":[],"mappings":"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"}