@cleocode/core 2026.10.6 → 2026.10.7-rc.ci.674
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/dist/build-provenance.json +2 -2
- package/dist/cloud/http.d.ts +8 -0
- package/dist/cloud/http.d.ts.map +1 -1
- package/dist/cloud/http.js +11 -0
- package/dist/cloud/http.js.map +1 -1
- package/dist/cloud/journal.d.ts +6 -0
- package/dist/cloud/journal.d.ts.map +1 -1
- package/dist/cloud/journal.js +1 -1
- package/dist/cloud/journal.js.map +1 -1
- package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
- package/dist/cloud/nexus-cloud-status.js +3 -1
- package/dist/cloud/nexus-cloud-status.js.map +1 -1
- package/dist/cloud/nexus-vault.d.ts +86 -1
- package/dist/cloud/nexus-vault.d.ts.map +1 -1
- package/dist/cloud/nexus-vault.js +875 -98
- package/dist/cloud/nexus-vault.js.map +1 -1
- package/dist/docs/doctor.d.ts +183 -0
- package/dist/docs/doctor.d.ts.map +1 -0
- package/dist/docs/doctor.js +537 -0
- package/dist/docs/doctor.js.map +1 -0
- package/dist/doctor/system-health.d.ts +189 -0
- package/dist/doctor/system-health.d.ts.map +1 -0
- package/dist/doctor/system-health.js +783 -0
- package/dist/doctor/system-health.js.map +1 -0
- package/dist/git/hooks-install.d.ts +17 -34
- package/dist/git/hooks-install.d.ts.map +1 -1
- package/dist/git/hooks-install.js +173 -70
- package/dist/git/hooks-install.js.map +1 -1
- package/dist/harness/ask-enforce.d.ts +43 -0
- package/dist/harness/ask-enforce.d.ts.map +1 -0
- package/dist/harness/ask-enforce.js +165 -0
- package/dist/harness/ask-enforce.js.map +1 -0
- package/dist/hooks.d.ts +8 -30
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +36 -116
- package/dist/hooks.js.map +1 -1
- package/dist/init.d.ts +2 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +5 -14
- package/dist/init.js.map +1 -1
- package/dist/injection.d.ts +2 -2
- package/dist/injection.d.ts.map +1 -1
- package/dist/injection.js +108 -10
- package/dist/injection.js.map +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/issue/create.d.ts +4 -0
- package/dist/issue/create.d.ts.map +1 -1
- package/dist/issue/create.js +12 -0
- package/dist/issue/create.js.map +1 -1
- package/dist/issue/index.d.ts +1 -1
- package/dist/issue/index.d.ts.map +1 -1
- package/dist/issue/index.js +1 -1
- package/dist/issue/index.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +8 -2
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestration/lean-change.d.ts +15 -0
- package/dist/orchestration/lean-change.d.ts.map +1 -0
- package/dist/orchestration/lean-change.js +17 -0
- package/dist/orchestration/lean-change.js.map +1 -0
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +6 -4
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/release/ci-evidence.d.ts +59 -0
- package/dist/release/ci-evidence.d.ts.map +1 -1
- package/dist/release/ci-evidence.js +150 -5
- package/dist/release/ci-evidence.js.map +1 -1
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +11 -2
- package/dist/release/plan.js.map +1 -1
- package/dist/release/pr-evidence.d.ts +15 -0
- package/dist/release/pr-evidence.d.ts.map +1 -1
- package/dist/release/pr-evidence.js +42 -1
- package/dist/release/pr-evidence.js.map +1 -1
- package/dist/release/reconcile.js +2 -2
- package/dist/release/reconcile.js.map +1 -1
- package/dist/release/verify-provenance.js +2 -2
- package/dist/release/verify-provenance.js.map +1 -1
- package/dist/resources/admission-ledger.d.ts +8 -0
- package/dist/resources/admission-ledger.d.ts.map +1 -1
- package/dist/resources/admission-ledger.js +5 -0
- package/dist/resources/admission-ledger.js.map +1 -1
- package/dist/resources/claim-keepalive.d.ts +34 -0
- package/dist/resources/claim-keepalive.d.ts.map +1 -0
- package/dist/resources/claim-keepalive.js +49 -0
- package/dist/resources/claim-keepalive.js.map +1 -0
- package/dist/resources/governor.d.ts.map +1 -1
- package/dist/resources/governor.js +3 -0
- package/dist/resources/governor.js.map +1 -1
- package/dist/scaffold/ensure-config.js +1 -1
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +2 -1
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/restore-marker.d.ts +50 -7
- package/dist/store/restore-marker.d.ts.map +1 -1
- package/dist/store/restore-marker.js +77 -25
- package/dist/store/restore-marker.js.map +1 -1
- package/dist/store/row-identity-registry.d.ts +6 -4
- package/dist/store/row-identity-registry.d.ts.map +1 -1
- package/dist/store/row-identity-registry.js +156 -33
- package/dist/store/row-identity-registry.js.map +1 -1
- package/dist/store/schema/cleo-project/provenance-orphans.d.ts +16 -0
- package/dist/store/schema/cleo-project/provenance-orphans.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/provenance-orphans.js +4 -1
- package/dist/store/schema/cleo-project/provenance-orphans.js.map +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +240 -0
- package/dist/store/schema/cleo-shared/brain.d.ts.map +1 -1
- package/dist/store/schema/cleo-shared/brain.js +69 -0
- package/dist/store/schema/cleo-shared/brain.js.map +1 -1
- package/dist/store/schema/tasks.d.ts +1 -1
- package/dist/store/schema/tasks.d.ts.map +1 -1
- package/dist/store/schema/tasks.js +9 -1
- package/dist/store/schema/tasks.js.map +1 -1
- package/dist/store/sync/apply/applier.d.ts.map +1 -1
- package/dist/store/sync/apply/applier.js +85 -3
- package/dist/store/sync/apply/applier.js.map +1 -1
- package/dist/store/sync/apply/parent-delete.d.ts.map +1 -1
- package/dist/store/sync/apply/parent-delete.js +4 -0
- package/dist/store/sync/apply/parent-delete.js.map +1 -1
- package/dist/store/sync/capture.d.ts +8 -0
- package/dist/store/sync/capture.d.ts.map +1 -1
- package/dist/store/sync/capture.js +20 -0
- package/dist/store/sync/capture.js.map +1 -1
- package/dist/store/sync/clock-store.d.ts +21 -0
- package/dist/store/sync/clock-store.d.ts.map +1 -1
- package/dist/store/sync/clock-store.js +47 -0
- package/dist/store/sync/clock-store.js.map +1 -1
- package/dist/store/sync/conflicts.d.ts +13 -0
- package/dist/store/sync/conflicts.d.ts.map +1 -1
- package/dist/store/sync/conflicts.js +22 -0
- package/dist/store/sync/conflicts.js.map +1 -1
- package/dist/store/sync/genesis.d.ts +113 -12
- package/dist/store/sync/genesis.d.ts.map +1 -1
- package/dist/store/sync/genesis.js +325 -27
- package/dist/store/sync/genesis.js.map +1 -1
- package/dist/store/sync/merge/types.d.ts +8 -2
- package/dist/store/sync/merge/types.d.ts.map +1 -1
- package/dist/store/sync/pull.d.ts +192 -0
- package/dist/store/sync/pull.d.ts.map +1 -0
- package/dist/store/sync/pull.js +429 -0
- package/dist/store/sync/pull.js.map +1 -0
- package/dist/store/sync/push.d.ts +110 -0
- package/dist/store/sync/push.d.ts.map +1 -0
- package/dist/store/sync/push.js +172 -0
- package/dist/store/sync/push.js.map +1 -0
- package/dist/store/sync/replay-pin.d.ts +70 -0
- package/dist/store/sync/replay-pin.d.ts.map +1 -0
- package/dist/store/sync/replay-pin.js +172 -0
- package/dist/store/sync/replay-pin.js.map +1 -0
- package/dist/store/sync/sealer.d.ts.map +1 -1
- package/dist/store/sync/sealer.js +6 -2
- package/dist/store/sync/sealer.js.map +1 -1
- package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
- package/dist/store/sync/timestamp-canon.js +15 -0
- package/dist/store/sync/timestamp-canon.js.map +1 -1
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +51 -15
- package/dist/store/table-classification.js.map +1 -1
- package/dist/store/tasks-schema.d.ts +1 -1
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/tasks-schema.js +1 -1
- package/dist/store/tasks-schema.js.map +1 -1
- package/dist/store/twin-collapse.d.ts.map +1 -1
- package/dist/store/twin-collapse.js +5 -0
- package/dist/store/twin-collapse.js.map +1 -1
- package/dist/store/vault-manifest.d.ts +7 -0
- package/dist/store/vault-manifest.d.ts.map +1 -1
- package/dist/store/vault-manifest.js +4 -0
- package/dist/store/vault-manifest.js.map +1 -1
- package/dist/tasks/ac-table.d.ts +17 -0
- package/dist/tasks/ac-table.d.ts.map +1 -1
- package/dist/tasks/ac-table.js +49 -0
- package/dist/tasks/ac-table.js.map +1 -1
- package/dist/tasks/affected-scope.d.ts +52 -3
- package/dist/tasks/affected-scope.d.ts.map +1 -1
- package/dist/tasks/affected-scope.js +94 -3
- package/dist/tasks/affected-scope.js.map +1 -1
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +9 -5
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/complete-ci.d.ts +2 -0
- package/dist/tasks/complete-ci.d.ts.map +1 -1
- package/dist/tasks/complete-ci.js +26 -7
- package/dist/tasks/complete-ci.js.map +1 -1
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +10 -0
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/done-plan.d.ts.map +1 -1
- package/dist/tasks/done-plan.js +63 -6
- package/dist/tasks/done-plan.js.map +1 -1
- package/dist/tasks/evidence.d.ts +3 -0
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +106 -2
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-preview.d.ts +19 -1
- package/dist/tasks/gate-preview.d.ts.map +1 -1
- package/dist/tasks/gate-preview.js +44 -2
- package/dist/tasks/gate-preview.js.map +1 -1
- package/dist/tasks/gate-runner.d.ts +16 -0
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +25 -2
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/qa-run-binding.d.ts +88 -0
- package/dist/tasks/qa-run-binding.d.ts.map +1 -0
- package/dist/tasks/qa-run-binding.js +188 -0
- package/dist/tasks/qa-run-binding.js.map +1 -0
- package/dist/tasks/req.d.ts +50 -0
- package/dist/tasks/req.d.ts.map +1 -1
- package/dist/tasks/req.js +99 -1
- package/dist/tasks/req.js.map +1 -1
- package/dist/tasks/test-run-binding.d.ts +29 -0
- package/dist/tasks/test-run-binding.d.ts.map +1 -1
- package/dist/tasks/test-run-binding.js +47 -23
- package/dist/tasks/test-run-binding.js.map +1 -1
- package/dist/tasks/tool-resolver.d.ts +9 -0
- package/dist/tasks/tool-resolver.d.ts.map +1 -1
- package/dist/tasks/tool-resolver.js +14 -3
- package/dist/tasks/tool-resolver.js.map +1 -1
- package/dist/tasks/tool-semaphore.d.ts.map +1 -1
- package/dist/tasks/tool-semaphore.js +3 -0
- package/dist/tasks/tool-semaphore.js.map +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +10 -1
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +14 -3
- package/dist/validation/engine-ops.js.map +1 -1
- package/migrations/drizzle-cleo-global/20261010130000_t12895-brain-natural-uids/migration.sql +28 -0
- package/migrations/drizzle-cleo-global/20261010140000_t12896-brain-autoinc-uids/migration.sql +54 -0
- package/migrations/drizzle-cleo-project/20261010130000_t12895-brain-natural-uids/migration.sql +36 -0
- package/migrations/drizzle-cleo-project/20261010140000_t12896-brain-autoinc-uids/migration.sql +58 -0
- package/migrations/sync-journal/20261008120000_t12343-pull-cursor/migration.sql +28 -0
- package/migrations/sync-journal/20261009120000_t13318-seen-floor/migration.sql +41 -0
- package/package.json +18 -18
- package/templates/CLEO-INJECTION.md +5 -3
- package/templates/CLEO-REFERENCE.md +1 -1
- package/templates/git-hooks/legacy-hashes.json +20 -0
- package/templates/git-hooks/pre-commit +1 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cleo doctor system`: what is hurting this machine, ranked, with the exact
|
|
3
|
+
* remedy for each finding (T13435).
|
|
4
|
+
*
|
|
5
|
+
* On 2026-10-10 one Mac ran at 24 of 25 GB swap with load 24: 49 playwright-mcp,
|
|
6
|
+
* 33 mcpvault and ~60 agentmbx stdio MCP servers (one set per harness session),
|
|
7
|
+
* 475 dangling docker volumes from throwaway Postgres runs, long-lived database
|
|
8
|
+
* containers, and full typechecks started outside `cleo run`. None of it was
|
|
9
|
+
* visible from one place. This module makes it visible.
|
|
10
|
+
*
|
|
11
|
+
* Two halves, so the analysis is testable on any platform:
|
|
12
|
+
* - {@link collectSystemSnapshot} reads the machine: one resource sample
|
|
13
|
+
* (reusing the governor's Darwin/Linux backends), one `ps`, the admission
|
|
14
|
+
* ledger, docker (each call time-boxed, skipped when absent) and the
|
|
15
|
+
* project's Spotlight/Time Machine state.
|
|
16
|
+
* - {@link assessSystemHealth} is pure: snapshot in, ranked report out.
|
|
17
|
+
*
|
|
18
|
+
* Read-only. It never signals a process. A remedy that deletes data or stops a
|
|
19
|
+
* process is marked `needsOwnerChoice` so the agent asks the owner first.
|
|
20
|
+
*
|
|
21
|
+
* @task T13435
|
|
22
|
+
* @epic T13434
|
|
23
|
+
*/
|
|
24
|
+
import type { ResourceSample } from '../resources/backend.js';
|
|
25
|
+
import { type MemoryGuardAudit } from '../resources/memory-guard.js';
|
|
26
|
+
/** How urgent a finding is. Findings are ranked by this, then by memory impact. */
|
|
27
|
+
export type SystemFindingSeverity = 'critical' | 'warning' | 'info';
|
|
28
|
+
/** One value in a finding's evidence. */
|
|
29
|
+
export type SystemEvidenceValue = string | number | boolean | null | readonly string[];
|
|
30
|
+
/** The fix for a finding. */
|
|
31
|
+
export interface SystemRemedy {
|
|
32
|
+
/** The exact command to run, or `null` when the fix is a manual setting. */
|
|
33
|
+
readonly command: string | null;
|
|
34
|
+
/** What the remedy does, and what it costs. */
|
|
35
|
+
readonly description: string;
|
|
36
|
+
}
|
|
37
|
+
/** One ranked, agent-relayable finding. */
|
|
38
|
+
export interface SystemFinding {
|
|
39
|
+
/** Stable id, e.g. `mcp-fanout:playwright-mcp`. */
|
|
40
|
+
readonly id: string;
|
|
41
|
+
/** Which check produced it. */
|
|
42
|
+
readonly category: SystemCheck;
|
|
43
|
+
readonly severity: SystemFindingSeverity;
|
|
44
|
+
/** One line for the owner. */
|
|
45
|
+
readonly title: string;
|
|
46
|
+
/** The measurements behind the verdict. */
|
|
47
|
+
readonly evidence: Readonly<Record<string, SystemEvidenceValue>>;
|
|
48
|
+
/** Resident memory the finding accounts for, in bytes, when known (ranking). */
|
|
49
|
+
readonly impactBytes: number | null;
|
|
50
|
+
readonly remedy: SystemRemedy | null;
|
|
51
|
+
/** True when the remedy deletes data, stops work or changes machine settings: ask the owner. */
|
|
52
|
+
readonly needsOwnerChoice: boolean;
|
|
53
|
+
}
|
|
54
|
+
/** The checks the report runs. */
|
|
55
|
+
export type SystemCheck = 'memory' | 'mcp-fanout' | 'heavy-ungoverned' | 'containers' | 'sessions' | 'indexing' | 'memory-guard';
|
|
56
|
+
/** Whether a check ran. A missing finding means healthy only when its check is `ok`. */
|
|
57
|
+
export interface SystemCoverage {
|
|
58
|
+
readonly check: SystemCheck;
|
|
59
|
+
readonly status: 'ok' | 'skipped' | 'error';
|
|
60
|
+
readonly reason?: string;
|
|
61
|
+
}
|
|
62
|
+
/** The `cleo doctor system` result. */
|
|
63
|
+
export interface SystemHealthReport {
|
|
64
|
+
readonly platform: NodeJS.Platform;
|
|
65
|
+
readonly sampledAt: string;
|
|
66
|
+
readonly summary: {
|
|
67
|
+
readonly critical: number;
|
|
68
|
+
readonly warning: number;
|
|
69
|
+
readonly info: number;
|
|
70
|
+
};
|
|
71
|
+
/** Worst first. */
|
|
72
|
+
readonly findings: readonly SystemFinding[];
|
|
73
|
+
readonly coverage: readonly SystemCoverage[];
|
|
74
|
+
}
|
|
75
|
+
/** Docker state, or `null` fields when a call failed. */
|
|
76
|
+
export interface DockerSnapshot {
|
|
77
|
+
/** `docker volume ls -q -f dangling=true` output. */
|
|
78
|
+
readonly danglingVolumes: string | null;
|
|
79
|
+
/** `docker system df --format '{{json .}}'` output. */
|
|
80
|
+
readonly systemDf: string | null;
|
|
81
|
+
/** `docker ps --format '{{.ID}}\t{{.Names}}\t{{.Image}}\t{{.CreatedAt}}\t{{.Labels}}'` output. */
|
|
82
|
+
readonly containers: string | null;
|
|
83
|
+
}
|
|
84
|
+
/** The project's indexing state (macOS). `null` fields were not measured. */
|
|
85
|
+
export interface IndexingSnapshot {
|
|
86
|
+
/** The project root the checks looked at. */
|
|
87
|
+
readonly projectRoot: string;
|
|
88
|
+
/** `tmutil isexcluded <root>/node_modules` output, `null` when there is no node_modules. */
|
|
89
|
+
readonly timeMachine: string | null;
|
|
90
|
+
/** `mdfind -onlyin <root>/node_modules -count …` output. */
|
|
91
|
+
readonly spotlightCount: string | null;
|
|
92
|
+
}
|
|
93
|
+
/** Everything {@link assessSystemHealth} needs, gathered by {@link collectSystemSnapshot}. */
|
|
94
|
+
export interface SystemSnapshot {
|
|
95
|
+
readonly platform: NodeJS.Platform;
|
|
96
|
+
readonly sampledAtMs: number;
|
|
97
|
+
readonly totalMemBytes: number;
|
|
98
|
+
readonly cpuCount: number;
|
|
99
|
+
readonly loadAvg1: number;
|
|
100
|
+
/** The governor's resource sample, or `null` when it could not be read. */
|
|
101
|
+
readonly sample: ResourceSample | null;
|
|
102
|
+
/** Linux swap from `/proc/meminfo`; macOS carries it on `sample.darwinMemory`. */
|
|
103
|
+
readonly linuxSwap: {
|
|
104
|
+
readonly usedBytes: number;
|
|
105
|
+
readonly totalBytes: number;
|
|
106
|
+
} | null;
|
|
107
|
+
/** `ps -A -o pid=,ppid=,pgid=,rss=,pcpu=,etime=,args=` output, `null` when ps failed. */
|
|
108
|
+
readonly ps: string | null;
|
|
109
|
+
/** Process groups and pids `cleo run` holds (the admission ledger). */
|
|
110
|
+
readonly governedPgids: readonly number[];
|
|
111
|
+
readonly governedPids: readonly number[];
|
|
112
|
+
/** `null` when docker is not installed or its daemon did not answer. */
|
|
113
|
+
readonly docker: DockerSnapshot | null;
|
|
114
|
+
readonly indexing: IndexingSnapshot | null;
|
|
115
|
+
/** Linux only. */
|
|
116
|
+
readonly memoryGuard: MemoryGuardAudit | null;
|
|
117
|
+
}
|
|
118
|
+
/** One `ps` row. */
|
|
119
|
+
export interface ProcessRow {
|
|
120
|
+
readonly pid: number;
|
|
121
|
+
readonly ppid: number;
|
|
122
|
+
readonly pgid: number;
|
|
123
|
+
readonly rssBytes: number;
|
|
124
|
+
readonly pcpu: number;
|
|
125
|
+
readonly elapsedSec: number;
|
|
126
|
+
readonly args: string;
|
|
127
|
+
/** `args` split on whitespace (ps does not quote; good enough for recognition). */
|
|
128
|
+
readonly argv: readonly string[];
|
|
129
|
+
}
|
|
130
|
+
/** `[[dd-]hh:]mm:ss` (both BSD and procps `etime`) to seconds. */
|
|
131
|
+
export declare function parseEtime(etime: string): number;
|
|
132
|
+
/** Parse `ps -A -o pid=,ppid=,pgid=,rss=,pcpu=,etime=,args=` output. */
|
|
133
|
+
export declare function parsePs(output: string): ProcessRow[];
|
|
134
|
+
/**
|
|
135
|
+
* The command words with the interpreter dropped and the script's extension
|
|
136
|
+
* stripped: `node …/typescript/bin/tsc -b` → `['tsc', '-b']`.
|
|
137
|
+
*/
|
|
138
|
+
export declare function commandWords(argv: readonly string[]): string[];
|
|
139
|
+
/** An interactive agent session (claude, codex, opencode, kimi, …). */
|
|
140
|
+
export declare function isHarnessSession(row: ProcessRow): boolean;
|
|
141
|
+
/**
|
|
142
|
+
* The MCP server a process runs, or `null` when it is not one. Recognised by
|
|
143
|
+
* `mcp` in the command or script name (`playwright-mcp`, `mcpvault`,
|
|
144
|
+
* `agentmbx mcp`, `railway mcp`, `…/axiom-qa-mcp/dist/server.js`).
|
|
145
|
+
*/
|
|
146
|
+
export declare function mcpServerName(row: ProcessRow): string | null;
|
|
147
|
+
/**
|
|
148
|
+
* The package a launcher runs (`npx -y @playwright/mcp@latest` → `@playwright/mcp`),
|
|
149
|
+
* `null` when a launcher names none, `undefined` when `words` is not a launcher.
|
|
150
|
+
* The scope is kept (`@a/mcp` and `@b/mcp` are different servers); the version is not.
|
|
151
|
+
*/
|
|
152
|
+
export declare function launchedPackage(words: readonly string[]): string | null | undefined;
|
|
153
|
+
/** `2026-10-10 10:23:54 -0700 PDT` (docker CreatedAt) to epoch ms, `NaN` when unparseable. */
|
|
154
|
+
export declare function parseDockerCreatedAt(value: string): number;
|
|
155
|
+
/** Docker's human sizes (`52.3GB`, `16.38kB`, `0B`) to bytes. */
|
|
156
|
+
export declare function parseDockerSize(value: string): number;
|
|
157
|
+
/**
|
|
158
|
+
* Turn a snapshot into a ranked report. Pure: no I/O.
|
|
159
|
+
*
|
|
160
|
+
* @param s - the raw machine state from {@link collectSystemSnapshot}.
|
|
161
|
+
* @returns findings worst first, plus which checks ran.
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```ts
|
|
165
|
+
* const report = assessSystemHealth(await collectSystemSnapshot({ projectRoot }));
|
|
166
|
+
* for (const f of report.findings) console.error(f.severity, f.title, f.remedy?.command);
|
|
167
|
+
* ```
|
|
168
|
+
*
|
|
169
|
+
* @task T13435
|
|
170
|
+
*/
|
|
171
|
+
export declare function assessSystemHealth(s: SystemSnapshot): SystemHealthReport;
|
|
172
|
+
/** Linux swap from `/proc/meminfo`, `null` when unreadable. */
|
|
173
|
+
export declare function parseLinuxSwap(meminfo: string): {
|
|
174
|
+
usedBytes: number;
|
|
175
|
+
totalBytes: number;
|
|
176
|
+
} | null;
|
|
177
|
+
/** Options for {@link collectSystemSnapshot}. */
|
|
178
|
+
export interface CollectSystemSnapshotOptions {
|
|
179
|
+
/** The project to check Spotlight/Time Machine for; `null` skips those checks. */
|
|
180
|
+
readonly projectRoot: string | null;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Read the machine for {@link assessSystemHealth}. Read-only, never throws:
|
|
184
|
+
* a failed source leaves its field `null` and the report marks the check.
|
|
185
|
+
*
|
|
186
|
+
* @task T13435
|
|
187
|
+
*/
|
|
188
|
+
export declare function collectSystemSnapshot(opts: CollectSystemSnapshotOptions): Promise<SystemSnapshot>;
|
|
189
|
+
//# sourceMappingURL=system-health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-health.d.ts","sourceRoot":"","sources":["../../src/doctor/system-health.ts"],"names":[],"mappings":"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"}
|