mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-06 21:12:54 +00:00
* feat(doctor): add --lint mode + structured HealthFinding shape
Adds the core machinery for `openclaw doctor --lint` per the
doctor-lint-and-oc-rules upstream proposal. PR-1 of the proposal:
no new top-level verb, no public plugin SDK; everything internal.
Files:
- src/flows/checks.ts ? HealthFinding / HealthCheck / HealthCheckContext
types. Findings carry severity per-finding; checks return
readonly HealthFinding[]. Mode tag (doctor/lint/fix) lets a check
distinguish the calling posture.
- src/flows/health-check-registry.ts ? module-level registry with
duplicate-id rejection + test reset helper.
- src/flows/doctor-lint-flow.ts ? runner over registered checks.
Catches throws into synthetic error findings (anchored at check id;
message scrubbed of control chars, capped at 256 bytes). Sorts
findings by severity desc, check id, path. Exports
exitCodeFromFindings (1 if any warning/error, 0 otherwise).
- src/flows/doctor-core-checks.ts ? 4 modern HealthChecks rewriting
logic from existing legacy run*Health functions:
core/doctor/gateway-config (warning)
core/doctor/command-owner (info)
core/doctor/workspace-status (info)
core/doctor/final-config-validation (error)
Each was audited safe per the proposal's adapter constraints
(no writes, no repair calls, no prompts, no probes incl. local-bind).
Legacy run*Health contributions in doctor-health-contributions.ts
are unchanged ? doctor mode (no --lint) still runs the existing 35.
- src/commands/doctor-lint.ts ? CLI dispatch for --lint. Reads config
snapshot, builds HealthCheckContext (mode: "lint"), runs the registry,
filters by --severity-min, emits human or JSON output, returns exit
code from unfiltered set so --severity-min hides info findings
without changing CI signal.
- src/cli/program/register.maintenance.ts ? adds --lint, --json,
--severity-min, --skip, --only flags to existing doctor command.
--lint branches to runDoctorLintCli; without --lint, doctor runs
unchanged.
LoC: 382 src across 6 files. Tests + doc + oc-path-side rule packs
follow as separate commits on this branch.
* fix: avoid string spread in doctor errors
* chore: refresh plugin SDK API baseline
* docs: clarify doctor lint usage
* feat(doctor): prepare repairs for dry-run reporting
31 lines
915 B
TypeScript
31 lines
915 B
TypeScript
export { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agents/agent-scope.js";
|
|
export { readConfigFileSnapshot } from "../config/config.js";
|
|
export type { OpenClawConfig } from "../config/types.openclaw.js";
|
|
export {
|
|
configValidationIssuesToHealthFindings,
|
|
registerCoreHealthChecks,
|
|
} from "../flows/doctor-core-checks.js";
|
|
export {
|
|
exitCodeFromFindings,
|
|
runDoctorLintChecks,
|
|
type DoctorLintRunOptions,
|
|
} from "../flows/doctor-lint-flow.js";
|
|
export {
|
|
healthFindingMeetsSeverity,
|
|
parseHealthFindingSeverity,
|
|
type HealthCheck,
|
|
type HealthCheckContext,
|
|
type HealthCheckScope,
|
|
type HealthFinding,
|
|
type HealthFindingSeverity,
|
|
type HealthRepairDiff,
|
|
type HealthRepairEffect,
|
|
type HealthRepairContext,
|
|
type HealthRepairResult,
|
|
} from "../flows/health-checks.js";
|
|
export {
|
|
getHealthCheck,
|
|
listHealthChecks,
|
|
registerHealthCheck,
|
|
} from "../flows/health-check-registry.js";
|