agentrinse 0.0.0 → 0.2.0
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/README.md +165 -83
- package/dist/adapters/artifacts/adapter.d.ts +3 -1
- package/dist/adapters/artifacts/adapter.d.ts.map +1 -1
- package/dist/adapters/artifacts/adapter.js +23 -1
- package/dist/adapters/artifacts/adapter.js.map +1 -1
- package/dist/adapters/git/adapter.d.ts +8 -1
- package/dist/adapters/git/adapter.d.ts.map +1 -1
- package/dist/adapters/git/adapter.js +247 -13
- package/dist/adapters/git/adapter.js.map +1 -1
- package/dist/adapters/git/status.d.ts +14 -0
- package/dist/adapters/git/status.d.ts.map +1 -0
- package/dist/adapters/git/status.js +81 -0
- package/dist/adapters/git/status.js.map +1 -0
- package/dist/adapters/provider-adapter.d.ts +3 -0
- package/dist/adapters/provider-adapter.d.ts.map +1 -1
- package/dist/adapters/provider-adapter.js +16 -0
- package/dist/adapters/provider-adapter.js.map +1 -1
- package/dist/adapters/provider-reachability.d.ts +6 -0
- package/dist/adapters/provider-reachability.d.ts.map +1 -0
- package/dist/adapters/provider-reachability.js +207 -0
- package/dist/adapters/provider-reachability.js.map +1 -0
- package/dist/adapters/provider-specs.d.ts +1 -1
- package/dist/adapters/provider-specs.d.ts.map +1 -1
- package/dist/adapters/registry.d.ts +7 -1
- package/dist/adapters/registry.d.ts.map +1 -1
- package/dist/adapters/registry.js +44 -4
- package/dist/adapters/registry.js.map +1 -1
- package/dist/adapters/runtime/adapter.d.ts +24 -0
- package/dist/adapters/runtime/adapter.d.ts.map +1 -0
- package/dist/adapters/runtime/adapter.js +319 -0
- package/dist/adapters/runtime/adapter.js.map +1 -0
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/adapters.d.ts.map +1 -1
- package/dist/commands/adapters.js +1 -0
- package/dist/commands/adapters.js.map +1 -1
- package/dist/commands/apply.d.ts +6 -0
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +37 -13
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/audit.d.ts +7 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +103 -12
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/clean.d.ts +61 -0
- package/dist/commands/clean.d.ts.map +1 -0
- package/dist/commands/clean.js +224 -0
- package/dist/commands/clean.js.map +1 -0
- package/dist/commands/completion.d.ts +4 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +95 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +17 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +41 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/doctor.d.ts +28 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +582 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/history.d.ts +15 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +30 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/lock.d.ts +21 -0
- package/dist/commands/lock.d.ts.map +1 -0
- package/dist/commands/lock.js +43 -0
- package/dist/commands/lock.js.map +1 -0
- package/dist/commands/plan.d.ts +2 -0
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +9 -2
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/show.d.ts +20 -0
- package/dist/commands/show.d.ts.map +1 -0
- package/dist/commands/show.js +54 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +2 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/load.d.ts +6 -0
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +25 -0
- package/dist/config/load.js.map +1 -1
- package/dist/config/path.d.ts +5 -0
- package/dist/config/path.d.ts.map +1 -0
- package/dist/config/path.js +13 -0
- package/dist/config/path.js.map +1 -0
- package/dist/config/schema.d.ts +23 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +48 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/contracts/doctor.d.ts +35 -0
- package/dist/contracts/doctor.d.ts.map +1 -0
- package/dist/contracts/doctor.js +15 -0
- package/dist/contracts/doctor.js.map +1 -0
- package/dist/contracts/output.d.ts +50 -0
- package/dist/contracts/output.d.ts.map +1 -0
- package/dist/contracts/output.js +23 -0
- package/dist/contracts/output.js.map +1 -0
- package/dist/contracts/run.d.ts +2 -0
- package/dist/contracts/run.d.ts.map +1 -1
- package/dist/contracts/run.js +1 -1
- package/dist/contracts/run.js.map +1 -1
- package/dist/core/apply.d.ts +1 -0
- package/dist/core/apply.d.ts.map +1 -1
- package/dist/core/apply.js +46 -3
- package/dist/core/apply.js.map +1 -1
- package/dist/core/audit.d.ts +21 -0
- package/dist/core/audit.d.ts.map +1 -1
- package/dist/core/audit.js +31 -1
- package/dist/core/audit.js.map +1 -1
- package/dist/core/duration.d.ts +2 -0
- package/dist/core/duration.d.ts.map +1 -0
- package/dist/core/duration.js +21 -0
- package/dist/core/duration.js.map +1 -0
- package/dist/core/interruption.d.ts +5 -0
- package/dist/core/interruption.d.ts.map +1 -0
- package/dist/core/interruption.js +5 -0
- package/dist/core/interruption.js.map +1 -0
- package/dist/core/process-identity.d.ts +24 -0
- package/dist/core/process-identity.d.ts.map +1 -0
- package/dist/core/process-identity.js +104 -0
- package/dist/core/process-identity.js.map +1 -0
- package/dist/core/reachability.d.ts +29 -0
- package/dist/core/reachability.d.ts.map +1 -0
- package/dist/core/reachability.js +121 -0
- package/dist/core/reachability.js.map +1 -0
- package/dist/core/redaction.d.ts +4 -0
- package/dist/core/redaction.d.ts.map +1 -0
- package/dist/core/redaction.js +91 -0
- package/dist/core/redaction.js.map +1 -0
- package/dist/core/safety.d.ts +8 -0
- package/dist/core/safety.d.ts.map +1 -1
- package/dist/core/safety.js +29 -1
- package/dist/core/safety.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/machine-output.d.ts +21 -0
- package/dist/machine-output.d.ts.map +1 -0
- package/dist/machine-output.js +32 -0
- package/dist/machine-output.js.map +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +232 -7
- package/dist/main.js.map +1 -1
- package/dist/state/json-file.d.ts +6 -1
- package/dist/state/json-file.d.ts.map +1 -1
- package/dist/state/json-file.js +34 -3
- package/dist/state/json-file.js.map +1 -1
- package/dist/state/layout.d.ts +2 -0
- package/dist/state/layout.d.ts.map +1 -1
- package/dist/state/layout.js +2 -0
- package/dist/state/layout.js.map +1 -1
- package/dist/state/lock.d.ts +54 -1
- package/dist/state/lock.d.ts.map +1 -1
- package/dist/state/lock.js +237 -33
- package/dist/state/lock.js.map +1 -1
- package/dist/state/records.d.ts +5 -0
- package/dist/state/records.d.ts.map +1 -0
- package/dist/state/records.js +35 -0
- package/dist/state/records.js.map +1 -0
- package/dist/state/run-journal.d.ts +3 -1
- package/dist/state/run-journal.d.ts.map +1 -1
- package/dist/state/run-journal.js +15 -4
- package/dist/state/run-journal.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -2
- package/schemas/command-envelope.schema.json +78 -0
- package/schemas/command-event.schema.json +36 -0
- package/schemas/doctor.schema.json +51 -0
- package/schemas/run.schema.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type ActionRisk } from "../contracts/action.js";
|
|
2
|
+
import type { CleanupPlan } from "../contracts/plan.js";
|
|
3
|
+
import type { AuditReport } from "../contracts/report.js";
|
|
4
|
+
import type { CleanupRun } from "../contracts/run.js";
|
|
5
|
+
export type CleanCommandOptions = {
|
|
6
|
+
home: string;
|
|
7
|
+
config?: string;
|
|
8
|
+
stateDir?: string;
|
|
9
|
+
profile: "closeout";
|
|
10
|
+
cwd?: string;
|
|
11
|
+
apply: boolean;
|
|
12
|
+
yes: boolean;
|
|
13
|
+
json: boolean;
|
|
14
|
+
maxRisk?: ActionRisk;
|
|
15
|
+
signal?: AbortSignal;
|
|
16
|
+
dependencies?: {
|
|
17
|
+
platform?: NodeJS.Platform;
|
|
18
|
+
now?: () => Date;
|
|
19
|
+
runCommand?: (command: string, args: string[]) => Promise<{
|
|
20
|
+
stdout: string;
|
|
21
|
+
stderr: string;
|
|
22
|
+
}>;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export type MoleHandoff = {
|
|
26
|
+
status: "available" | "absent" | "not-applicable";
|
|
27
|
+
suggestions: string[];
|
|
28
|
+
};
|
|
29
|
+
export type CloseoutSummary = {
|
|
30
|
+
profile: "closeout";
|
|
31
|
+
repositoryRoot: string;
|
|
32
|
+
currentWorktree: string;
|
|
33
|
+
auditId: string;
|
|
34
|
+
planId: string;
|
|
35
|
+
auditPath: string;
|
|
36
|
+
planPath: string;
|
|
37
|
+
configPath: string;
|
|
38
|
+
worktrees: number;
|
|
39
|
+
protectedWorktrees: number;
|
|
40
|
+
eligibleActions: number;
|
|
41
|
+
expectedReclaimBytes: number;
|
|
42
|
+
mole: MoleHandoff;
|
|
43
|
+
run?: {
|
|
44
|
+
runId: string;
|
|
45
|
+
status: CleanupRun["status"];
|
|
46
|
+
journalPath: string;
|
|
47
|
+
reclaimedBytes: number;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export type CleanCommandResult = {
|
|
51
|
+
audit: AuditReport;
|
|
52
|
+
plan: CleanupPlan;
|
|
53
|
+
run?: CleanupRun;
|
|
54
|
+
status: "ok" | "degraded" | "failed";
|
|
55
|
+
summary: CloseoutSummary;
|
|
56
|
+
output: string;
|
|
57
|
+
};
|
|
58
|
+
export declare function cleanCommandExitCode(result: Pick<CleanCommandResult, "run" | "status">): number | undefined;
|
|
59
|
+
export declare function cleanCommandStatus(audit: Pick<AuditReport, "diagnostics" | "probes">, run?: Pick<CleanupRun, "status">): CleanCommandResult["status"];
|
|
60
|
+
export declare function executeCleanCommand(options: CleanCommandOptions): Promise<CleanCommandResult>;
|
|
61
|
+
//# sourceMappingURL=clean.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AASA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAWtD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;QACjB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/F,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,gBAAgB,CAAC;IAClD,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,UAAU,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;IACrC,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,KAAK,GAAG,QAAQ,CAAC,GACjD,MAAM,GAAG,SAAS,CAQpB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,QAAQ,CAAC,EAClD,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAC/B,kBAAkB,CAAC,QAAQ,CAAC,CAO9B;AA6FD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAgI7B"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { isAbsolute, relative, resolve } from "node:path";
|
|
3
|
+
import { promisify } from "node:util";
|
|
4
|
+
import { parseWorktreePorcelain } from "../adapters/git/porcelain.js";
|
|
5
|
+
import { createAuditAdapters } from "../adapters/registry.js";
|
|
6
|
+
import { confirmApply } from "./apply.js";
|
|
7
|
+
import { loadConfigForHome } from "../config/load.js";
|
|
8
|
+
import { actionRiskSchema } from "../contracts/action.js";
|
|
9
|
+
import { applyCleanupPlan } from "../core/apply.js";
|
|
10
|
+
import { runAudit } from "../core/audit.js";
|
|
11
|
+
import { CommandInterruptedError } from "../core/interruption.js";
|
|
12
|
+
import { createCleanupPlan } from "../core/plan.js";
|
|
13
|
+
import { createCommandEnvelope, jsonDocument } from "../machine-output.js";
|
|
14
|
+
import { writeJsonAtomic } from "../state/json-file.js";
|
|
15
|
+
import { resolveStateRoot, stateLayout } from "../state/layout.js";
|
|
16
|
+
const execFileAsync = promisify(execFile);
|
|
17
|
+
export function cleanCommandExitCode(result) {
|
|
18
|
+
if (result.run?.status === "interrupted") {
|
|
19
|
+
return 130;
|
|
20
|
+
}
|
|
21
|
+
if (result.run !== undefined && ["failed", "partial"].includes(result.run.status)) {
|
|
22
|
+
return 2;
|
|
23
|
+
}
|
|
24
|
+
return result.status === "degraded" ? 1 : undefined;
|
|
25
|
+
}
|
|
26
|
+
export function cleanCommandStatus(audit, run) {
|
|
27
|
+
if (run !== undefined && ["failed", "interrupted", "partial"].includes(run.status)) {
|
|
28
|
+
return "failed";
|
|
29
|
+
}
|
|
30
|
+
return audit.probes.some((probe) => probe.status === "degraded") || audit.diagnostics.length > 0
|
|
31
|
+
? "degraded"
|
|
32
|
+
: "ok";
|
|
33
|
+
}
|
|
34
|
+
async function defaultRunCommand(command, args) {
|
|
35
|
+
const result = await execFileAsync(command, args, {
|
|
36
|
+
encoding: "utf8",
|
|
37
|
+
maxBuffer: 4 * 1024 * 1024,
|
|
38
|
+
timeout: 10_000,
|
|
39
|
+
});
|
|
40
|
+
return { stdout: result.stdout, stderr: result.stderr };
|
|
41
|
+
}
|
|
42
|
+
function isInside(root, candidate) {
|
|
43
|
+
const result = relative(resolve(root), resolve(candidate));
|
|
44
|
+
return result === "" || (!result.startsWith("..") && !isAbsolute(result));
|
|
45
|
+
}
|
|
46
|
+
function scopedConfig(config, currentWorktree, worktrees, maxRisk) {
|
|
47
|
+
const scoped = structuredClone(config);
|
|
48
|
+
for (const id of ["cursor", "copilot", "zed", "opencode", "grok", "runtime", "docker"]) {
|
|
49
|
+
scoped.adapters[id] = { enabled: false };
|
|
50
|
+
}
|
|
51
|
+
scoped.adapters.git = { enabled: true, root: currentWorktree };
|
|
52
|
+
scoped.artifacts.projects = scoped.artifacts.projects.filter((project) => worktrees.some((worktree) => isInside(worktree, project.root)));
|
|
53
|
+
if (maxRisk !== undefined) {
|
|
54
|
+
scoped.plan.maxRisk = maxRisk;
|
|
55
|
+
}
|
|
56
|
+
return scoped;
|
|
57
|
+
}
|
|
58
|
+
async function moleHandoff(platform, runCommand) {
|
|
59
|
+
if (platform !== "darwin") {
|
|
60
|
+
return { status: "not-applicable", suggestions: [] };
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
await runCommand("mo", ["--version"]);
|
|
64
|
+
return {
|
|
65
|
+
status: "available",
|
|
66
|
+
suggestions: ["mo purge --dry-run", "mo clean --dry-run"],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return {
|
|
71
|
+
status: "absent",
|
|
72
|
+
suggestions: ["Install Mole to preview broad macOS cleanup outside AgentRinse."],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function renderCloseout(summary) {
|
|
77
|
+
const lines = [
|
|
78
|
+
"AgentRinse closeout",
|
|
79
|
+
"",
|
|
80
|
+
`Repository: ${summary.repositoryRoot}`,
|
|
81
|
+
`Worktrees: ${summary.worktrees} (${summary.protectedWorktrees} protected)`,
|
|
82
|
+
`Eligible actions: ${summary.eligibleActions}`,
|
|
83
|
+
`Expected reclaim: ${summary.expectedReclaimBytes} bytes`,
|
|
84
|
+
`Audit: ${summary.auditPath}`,
|
|
85
|
+
`Plan: ${summary.planPath}`,
|
|
86
|
+
`Config: ${summary.configPath}`,
|
|
87
|
+
];
|
|
88
|
+
if (summary.run !== undefined) {
|
|
89
|
+
lines.push(`Run: ${summary.run.status} (${summary.run.reclaimedBytes} bytes)`, `Journal: ${summary.run.journalPath}`);
|
|
90
|
+
}
|
|
91
|
+
if (summary.mole.suggestions.length > 0) {
|
|
92
|
+
lines.push("", "Mole handoff:", ...summary.mole.suggestions.map((item) => ` ${item}`));
|
|
93
|
+
}
|
|
94
|
+
return `${lines.join("\n")}\n`;
|
|
95
|
+
}
|
|
96
|
+
function interruptionFrom(signal) {
|
|
97
|
+
if (signal?.aborted !== true) {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
return signal.reason instanceof CommandInterruptedError
|
|
101
|
+
? signal.reason
|
|
102
|
+
: new CommandInterruptedError("clean interrupted");
|
|
103
|
+
}
|
|
104
|
+
export async function executeCleanCommand(options) {
|
|
105
|
+
if (options.profile !== "closeout") {
|
|
106
|
+
throw new Error(`unsupported clean profile: ${options.profile}`);
|
|
107
|
+
}
|
|
108
|
+
if (options.json && options.apply && !options.yes) {
|
|
109
|
+
throw new Error("clean --json --apply requires --yes");
|
|
110
|
+
}
|
|
111
|
+
const runCommand = options.dependencies?.runCommand ?? defaultRunCommand;
|
|
112
|
+
const platform = options.dependencies?.platform ?? process.platform;
|
|
113
|
+
const clock = options.dependencies?.now ?? (() => new Date());
|
|
114
|
+
const cwd = resolve(options.cwd ?? process.cwd());
|
|
115
|
+
const home = resolve(options.home);
|
|
116
|
+
const currentWorktree = (await runCommand("git", ["-C", cwd, "rev-parse", "--show-toplevel"])).stdout.trim();
|
|
117
|
+
if (currentWorktree === "") {
|
|
118
|
+
throw new Error("closeout requires a Git worktree");
|
|
119
|
+
}
|
|
120
|
+
const worktreeOutput = (await runCommand("git", ["-C", currentWorktree, "worktree", "list", "--porcelain", "-z"])).stdout;
|
|
121
|
+
const worktrees = parseWorktreePorcelain(worktreeOutput).map((record) => resolve(record.path));
|
|
122
|
+
const repositoryRoot = worktrees[0] ?? currentWorktree;
|
|
123
|
+
const { config } = await loadConfigForHome(home, options.config);
|
|
124
|
+
const maxRisk = options.maxRisk === undefined ? undefined : actionRiskSchema.parse(options.maxRisk);
|
|
125
|
+
const scoped = scopedConfig(config, currentWorktree, worktrees, maxRisk);
|
|
126
|
+
const audit = await runAudit({
|
|
127
|
+
home,
|
|
128
|
+
config: scoped,
|
|
129
|
+
adapters: createAuditAdapters(scoped, platform, {
|
|
130
|
+
providerInventory: false,
|
|
131
|
+
roots: [
|
|
132
|
+
{
|
|
133
|
+
path: currentWorktree,
|
|
134
|
+
code: "current-worktree",
|
|
135
|
+
source: "closeout",
|
|
136
|
+
detail: "The worktree running the closeout profile is protected.",
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
}),
|
|
140
|
+
now: clock,
|
|
141
|
+
...(options.signal === undefined ? {} : { signal: options.signal }),
|
|
142
|
+
});
|
|
143
|
+
const plan = createCleanupPlan(audit, scoped, clock());
|
|
144
|
+
const layout = stateLayout(resolveStateRoot(home, options.stateDir));
|
|
145
|
+
const auditPath = resolve(layout.audits, `${audit.auditId}.json`);
|
|
146
|
+
const planPath = resolve(layout.plans, `${plan.planId}.json`);
|
|
147
|
+
const configPath = resolve(layout.plans, `${plan.planId}.config.json`);
|
|
148
|
+
await writeJsonAtomic(auditPath, audit, {
|
|
149
|
+
privateDirectories: [layout.root, layout.audits],
|
|
150
|
+
});
|
|
151
|
+
await writeJsonAtomic(planPath, plan, {
|
|
152
|
+
privateDirectories: [layout.root, layout.plans],
|
|
153
|
+
});
|
|
154
|
+
await writeJsonAtomic(configPath, scoped, {
|
|
155
|
+
privateDirectories: [layout.root, layout.plans],
|
|
156
|
+
});
|
|
157
|
+
let run;
|
|
158
|
+
let journalPath;
|
|
159
|
+
if (options.apply) {
|
|
160
|
+
const interruption = interruptionFrom(options.signal);
|
|
161
|
+
if (interruption !== undefined) {
|
|
162
|
+
throw interruption;
|
|
163
|
+
}
|
|
164
|
+
if (!options.yes && !(await confirmApply(plan.actions.length, options.signal))) {
|
|
165
|
+
throw new Error("clean apply cancelled");
|
|
166
|
+
}
|
|
167
|
+
const result = await applyCleanupPlan({
|
|
168
|
+
input: plan,
|
|
169
|
+
config: scoped,
|
|
170
|
+
stateRoot: layout.root,
|
|
171
|
+
...(options.signal === undefined ? {} : { signal: options.signal }),
|
|
172
|
+
dependencies: { clock },
|
|
173
|
+
});
|
|
174
|
+
run = result.run;
|
|
175
|
+
journalPath = result.journalPath;
|
|
176
|
+
}
|
|
177
|
+
const gitFindings = audit.findings.filter((finding) => finding.resource.kind === "git-worktree");
|
|
178
|
+
const summary = {
|
|
179
|
+
profile: "closeout",
|
|
180
|
+
repositoryRoot,
|
|
181
|
+
currentWorktree,
|
|
182
|
+
auditId: audit.auditId,
|
|
183
|
+
planId: plan.planId,
|
|
184
|
+
auditPath,
|
|
185
|
+
planPath,
|
|
186
|
+
configPath,
|
|
187
|
+
worktrees: gitFindings.length,
|
|
188
|
+
protectedWorktrees: gitFindings.filter((finding) => finding.state !== "eligible").length,
|
|
189
|
+
eligibleActions: plan.actions.length,
|
|
190
|
+
expectedReclaimBytes: plan.expectedReclaimBytes,
|
|
191
|
+
mole: await moleHandoff(platform, runCommand),
|
|
192
|
+
...(run === undefined || journalPath === undefined
|
|
193
|
+
? {}
|
|
194
|
+
: {
|
|
195
|
+
run: {
|
|
196
|
+
runId: run.runId,
|
|
197
|
+
status: run.status,
|
|
198
|
+
journalPath,
|
|
199
|
+
reclaimedBytes: run.reclaimedBytes,
|
|
200
|
+
},
|
|
201
|
+
}),
|
|
202
|
+
};
|
|
203
|
+
const startedAt = audit.startedAt;
|
|
204
|
+
const completedAt = clock().toISOString();
|
|
205
|
+
const status = cleanCommandStatus(audit, run);
|
|
206
|
+
return {
|
|
207
|
+
audit,
|
|
208
|
+
plan,
|
|
209
|
+
...(run === undefined ? {} : { run }),
|
|
210
|
+
status,
|
|
211
|
+
summary,
|
|
212
|
+
output: options.json
|
|
213
|
+
? jsonDocument(createCommandEnvelope({
|
|
214
|
+
command: "clean",
|
|
215
|
+
startedAt,
|
|
216
|
+
completedAt,
|
|
217
|
+
status,
|
|
218
|
+
data: summary,
|
|
219
|
+
diagnostics: audit.diagnostics,
|
|
220
|
+
}))
|
|
221
|
+
: renderCloseout(summary),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=clean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,YAAI,MAAM,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AACjE,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AA6FhE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWtD"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export const completionShells = ["bash", "zsh", "fish"];
|
|
2
|
+
const COMMANDS = [
|
|
3
|
+
"adapters",
|
|
4
|
+
"apply",
|
|
5
|
+
"audit",
|
|
6
|
+
"clean",
|
|
7
|
+
"completion",
|
|
8
|
+
"config",
|
|
9
|
+
"doctor",
|
|
10
|
+
"history",
|
|
11
|
+
"lock",
|
|
12
|
+
"plan",
|
|
13
|
+
"show",
|
|
14
|
+
];
|
|
15
|
+
const SUBCOMMANDS = {
|
|
16
|
+
completion: [...completionShells],
|
|
17
|
+
config: ["init", "path", "show", "validate"],
|
|
18
|
+
lock: ["recover", "status"],
|
|
19
|
+
show: ["plan", "resource", "run"],
|
|
20
|
+
};
|
|
21
|
+
function bashCompletion() {
|
|
22
|
+
return `# bash completion for AgentRinse
|
|
23
|
+
_agentrinse_completion() {
|
|
24
|
+
local current command
|
|
25
|
+
current="\${COMP_WORDS[COMP_CWORD]}"
|
|
26
|
+
command="\${COMP_WORDS[1]}"
|
|
27
|
+
|
|
28
|
+
if [[ "\${COMP_CWORD}" -eq 1 ]]; then
|
|
29
|
+
COMPREPLY=( $(compgen -W "${COMMANDS.join(" ")}" -- "\${current}") )
|
|
30
|
+
return
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
case "\${command}" in
|
|
34
|
+
completion) COMPREPLY=( $(compgen -W "${SUBCOMMANDS.completion.join(" ")}" -- "\${current}") ) ;;
|
|
35
|
+
config) COMPREPLY=( $(compgen -W "${SUBCOMMANDS.config.join(" ")}" -- "\${current}") ) ;;
|
|
36
|
+
lock) COMPREPLY=( $(compgen -W "${SUBCOMMANDS.lock.join(" ")}" -- "\${current}") ) ;;
|
|
37
|
+
show) COMPREPLY=( $(compgen -W "${SUBCOMMANDS.show.join(" ")}" -- "\${current}") ) ;;
|
|
38
|
+
*) COMPREPLY=( $(compgen -W "--help --version --home --config --state-dir --json --ndjson --redact --yes --output --audit --plan --since --profile --apply --max-risk" -- "\${current}") ) ;;
|
|
39
|
+
esac
|
|
40
|
+
}
|
|
41
|
+
complete -F _agentrinse_completion agentrinse
|
|
42
|
+
`;
|
|
43
|
+
}
|
|
44
|
+
function zshCompletion() {
|
|
45
|
+
return `#compdef agentrinse
|
|
46
|
+
|
|
47
|
+
_agentrinse() {
|
|
48
|
+
local -a commands
|
|
49
|
+
commands=(
|
|
50
|
+
${COMMANDS.map((command) => ` '${command}:${command}'`).join("\n")}
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
if (( CURRENT == 2 )); then
|
|
54
|
+
_describe 'command' commands
|
|
55
|
+
return
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
case "\${words[2]}" in
|
|
59
|
+
completion) _values 'shell' ${SUBCOMMANDS.completion.join(" ")} ;;
|
|
60
|
+
config) _values 'config command' ${SUBCOMMANDS.config.join(" ")} ;;
|
|
61
|
+
lock) _values 'lock command' ${SUBCOMMANDS.lock.join(" ")} ;;
|
|
62
|
+
show) _values 'show command' ${SUBCOMMANDS.show.join(" ")} ;;
|
|
63
|
+
*) _arguments '*:argument:_files' ;;
|
|
64
|
+
esac
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
compdef _agentrinse agentrinse
|
|
68
|
+
`;
|
|
69
|
+
}
|
|
70
|
+
function fishCompletion() {
|
|
71
|
+
const lines = [
|
|
72
|
+
"# fish completion for AgentRinse",
|
|
73
|
+
"complete -c agentrinse -f",
|
|
74
|
+
...COMMANDS.map((command) => `complete -c agentrinse -n '__fish_use_subcommand' -a '${command}' -d '${command}'`),
|
|
75
|
+
];
|
|
76
|
+
for (const [command, subcommands] of Object.entries(SUBCOMMANDS)) {
|
|
77
|
+
for (const subcommand of subcommands) {
|
|
78
|
+
lines.push(`complete -c agentrinse -n '__fish_seen_subcommand_from ${command}' -a '${subcommand}'`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return `${lines.join("\n")}\n`;
|
|
82
|
+
}
|
|
83
|
+
export function renderCompletion(shell) {
|
|
84
|
+
if (shell === "bash") {
|
|
85
|
+
return bashCompletion();
|
|
86
|
+
}
|
|
87
|
+
if (shell === "zsh") {
|
|
88
|
+
return zshCompletion();
|
|
89
|
+
}
|
|
90
|
+
if (shell === "fish") {
|
|
91
|
+
return fishCompletion();
|
|
92
|
+
}
|
|
93
|
+
throw new Error(`unsupported completion shell ${shell}; expected bash, zsh, or fish`);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AAGjE,MAAM,QAAQ,GAAG;IACf,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;CACE,CAAC;AAEX,MAAM,WAAW,GAAG;IAClB,UAAU,EAAE,CAAC,GAAG,gBAAgB,CAAC;IACjC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;IAC5C,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3B,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC;CACzB,CAAC;AAEX,SAAS,cAAc;IACrB,OAAO;;;;;;;gCAOuB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;4CAKN,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;wCACpC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;sCAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;sCAC1B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;CAK/D,CAAC;AACF,CAAC;AAED,SAAS,aAAa;IACpB,OAAO;;;;;EAKP,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,OAAO,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;kCASnC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;uCAC3B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;mCAChC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;mCAC1B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;CAM5D,CAAC;AACF,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,KAAK,GAAG;QACZ,kCAAkC;QAClC,2BAA2B;QAC3B,GAAG,QAAQ,CAAC,GAAG,CACb,CAAC,OAAO,EAAE,EAAE,CACV,yDAAyD,OAAO,SAAS,OAAO,GAAG,CACtF;KACF,CAAC;IACF,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CACR,0DAA0D,OAAO,SAAS,UAAU,GAAG,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,+BAA+B,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ConfigEnvironment } from "../config/path.js";
|
|
2
|
+
import type { AgentRinseConfig } from "../config/schema.js";
|
|
3
|
+
export type ConfigCommandOptions = {
|
|
4
|
+
home: string;
|
|
5
|
+
config?: string | undefined;
|
|
6
|
+
environment?: ConfigEnvironment | undefined;
|
|
7
|
+
};
|
|
8
|
+
export type ConfigCommandResult = {
|
|
9
|
+
path: string;
|
|
10
|
+
output: string;
|
|
11
|
+
config?: AgentRinseConfig;
|
|
12
|
+
};
|
|
13
|
+
export declare function executeConfigPathCommand(options: ConfigCommandOptions): ConfigCommandResult;
|
|
14
|
+
export declare function executeConfigInitCommand(options: ConfigCommandOptions): Promise<ConfigCommandResult>;
|
|
15
|
+
export declare function executeConfigShowCommand(options: ConfigCommandOptions): Promise<ConfigCommandResult>;
|
|
16
|
+
export declare function executeConfigValidateCommand(options: ConfigCommandOptions): Promise<ConfigCommandResult>;
|
|
17
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAUF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,GAAG,mBAAmB,CAG3F;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAS9B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { access } from "node:fs/promises";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { DEFAULT_CONFIG } from "../config/defaults.js";
|
|
4
|
+
import { loadConfig, loadConfigForHome } from "../config/load.js";
|
|
5
|
+
import { resolveConfigPath } from "../config/path.js";
|
|
6
|
+
import { writeJsonExclusive } from "../state/json-file.js";
|
|
7
|
+
function targetPath(options) {
|
|
8
|
+
return resolveConfigPath(resolve(options.home), options.config, options.environment ?? process.env);
|
|
9
|
+
}
|
|
10
|
+
export function executeConfigPathCommand(options) {
|
|
11
|
+
const path = targetPath(options);
|
|
12
|
+
return { path, output: `${path}\n` };
|
|
13
|
+
}
|
|
14
|
+
export async function executeConfigInitCommand(options) {
|
|
15
|
+
const path = targetPath(options);
|
|
16
|
+
await writeJsonExclusive(path, DEFAULT_CONFIG);
|
|
17
|
+
return {
|
|
18
|
+
path,
|
|
19
|
+
config: structuredClone(DEFAULT_CONFIG),
|
|
20
|
+
output: `created ${path}\n`,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export async function executeConfigShowCommand(options) {
|
|
24
|
+
const loaded = await loadConfigForHome(options.home, options.config, options.environment ?? process.env);
|
|
25
|
+
return {
|
|
26
|
+
path: loaded.path,
|
|
27
|
+
config: loaded.config,
|
|
28
|
+
output: `${JSON.stringify(loaded.config, null, 2)}\n`,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export async function executeConfigValidateCommand(options) {
|
|
32
|
+
const path = targetPath(options);
|
|
33
|
+
await access(path);
|
|
34
|
+
const config = await loadConfig(path);
|
|
35
|
+
return {
|
|
36
|
+
path,
|
|
37
|
+
config,
|
|
38
|
+
output: `valid ${path}\n`,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAA0B,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAc3D,SAAS,UAAU,CAAC,OAA6B;IAC/C,OAAO,iBAAiB,CACtB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EACrB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA6B;IACpE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA6B;IAE7B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC;QACvC,MAAM,EAAE,WAAW,IAAI,IAAI;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA6B;IAE7B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CACnC,CAAC;IACF,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;KACtD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAA6B;IAE7B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO;QACL,IAAI;QACJ,MAAM;QACN,MAAM,EAAE,SAAS,IAAI,IAAI;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type DoctorReport } from "../contracts/doctor.js";
|
|
2
|
+
import { type LockInspectionDependencies } from "../state/lock.js";
|
|
3
|
+
export type CommandResult = {
|
|
4
|
+
stdout: string;
|
|
5
|
+
stderr: string;
|
|
6
|
+
};
|
|
7
|
+
export type DoctorCommandDependencies = {
|
|
8
|
+
now?: () => Date;
|
|
9
|
+
platform?: NodeJS.Platform;
|
|
10
|
+
environment?: NodeJS.ProcessEnv;
|
|
11
|
+
runCommand?: (command: string, args: string[]) => Promise<CommandResult>;
|
|
12
|
+
readProcessStat?: () => Promise<string>;
|
|
13
|
+
currentUid?: () => number | undefined;
|
|
14
|
+
lock?: LockInspectionDependencies;
|
|
15
|
+
};
|
|
16
|
+
export type DoctorCommandOptions = {
|
|
17
|
+
home: string;
|
|
18
|
+
config?: string | undefined;
|
|
19
|
+
stateDir?: string | undefined;
|
|
20
|
+
json: boolean;
|
|
21
|
+
dependencies?: DoctorCommandDependencies | undefined;
|
|
22
|
+
};
|
|
23
|
+
export type DoctorCommandResult = {
|
|
24
|
+
report: DoctorReport;
|
|
25
|
+
output: string;
|
|
26
|
+
};
|
|
27
|
+
export declare function executeDoctorCommand(options: DoctorCommandOptions): Promise<DoctorCommandResult>;
|
|
28
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAcA,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGjG,OAAO,EAAoB,KAAK,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAIrF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACzE,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACtC,IAAI,CAAC,EAAE,0BAA0B,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA+jBF,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAsC9B"}
|