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
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ApplyLockOwner, type ApplyLockStatus, type LockInspectionDependencies } from "../state/lock.js";
|
|
2
|
+
export type LockCommandOptions = {
|
|
3
|
+
home: string;
|
|
4
|
+
stateDir?: string | undefined;
|
|
5
|
+
json: boolean;
|
|
6
|
+
dependencies?: LockInspectionDependencies | undefined;
|
|
7
|
+
};
|
|
8
|
+
export type LockRecoverCommandOptions = LockCommandOptions & {
|
|
9
|
+
yes: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type LockStatusCommandResult = {
|
|
12
|
+
status: ApplyLockStatus;
|
|
13
|
+
output: string;
|
|
14
|
+
};
|
|
15
|
+
export type LockRecoverCommandResult = {
|
|
16
|
+
owner: ApplyLockOwner;
|
|
17
|
+
output: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function executeLockStatusCommand(options: LockCommandOptions): Promise<LockStatusCommandResult>;
|
|
20
|
+
export declare function executeLockRecoverCommand(options: LockRecoverCommandOptions): Promise<LockRecoverCommandResult>;
|
|
21
|
+
//# sourceMappingURL=lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAChC,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,GAAG;IAC3D,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAsBF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,uBAAuB,CAAC,CAOlC;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CAYnC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { resolveStateRoot, stateLayout } from "../state/layout.js";
|
|
2
|
+
import { inspectApplyLock, recoverStaleApplyLock, } from "../state/lock.js";
|
|
3
|
+
function renderLockStatus(status) {
|
|
4
|
+
if (status.status === "absent") {
|
|
5
|
+
return `apply lock: absent\npath: ${status.path}\n`;
|
|
6
|
+
}
|
|
7
|
+
if (status.status === "malformed") {
|
|
8
|
+
return `apply lock: malformed\npath: ${status.path}\nreason: ${status.reason}\n`;
|
|
9
|
+
}
|
|
10
|
+
return [
|
|
11
|
+
`apply lock: ${status.status}`,
|
|
12
|
+
`path: ${status.path}`,
|
|
13
|
+
`owner: ${status.owner.hostname} pid=${status.owner.pid}`,
|
|
14
|
+
`command: ${status.owner.command}`,
|
|
15
|
+
`plan: ${status.owner.planId}`,
|
|
16
|
+
`run: ${status.owner.runId}`,
|
|
17
|
+
`created: ${status.owner.createdAt}`,
|
|
18
|
+
...("reason" in status ? [`reason: ${status.reason}`] : []),
|
|
19
|
+
"",
|
|
20
|
+
].join("\n");
|
|
21
|
+
}
|
|
22
|
+
export async function executeLockStatusCommand(options) {
|
|
23
|
+
const layout = stateLayout(resolveStateRoot(options.home, options.stateDir));
|
|
24
|
+
const status = await inspectApplyLock(layout.locks, options.dependencies);
|
|
25
|
+
return {
|
|
26
|
+
status,
|
|
27
|
+
output: options.json ? `${JSON.stringify(status, null, 2)}\n` : renderLockStatus(status),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export async function executeLockRecoverCommand(options) {
|
|
31
|
+
if (!options.yes) {
|
|
32
|
+
throw new Error('lock recovery requires --yes after reviewing "agentrinse lock status"');
|
|
33
|
+
}
|
|
34
|
+
const layout = stateLayout(resolveStateRoot(options.home, options.stateDir));
|
|
35
|
+
const owner = await recoverStaleApplyLock(layout.locks, options.dependencies);
|
|
36
|
+
return {
|
|
37
|
+
owner,
|
|
38
|
+
output: options.json
|
|
39
|
+
? `${JSON.stringify({ status: "recovered", owner }, null, 2)}\n`
|
|
40
|
+
: `recovered stale apply lock for run ${owner.runId}\n`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GAItB,MAAM,kBAAkB,CAAC;AAuB1B,SAAS,gBAAgB,CAAC,MAAuB;IAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,6BAA6B,MAAM,CAAC,IAAI,IAAI,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,gCAAgC,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,MAAM,IAAI,CAAC;IACnF,CAAC;IACD,OAAO;QACL,eAAe,MAAM,CAAC,MAAM,EAAE;QAC9B,SAAS,MAAM,CAAC,IAAI,EAAE;QACtB,UAAU,MAAM,CAAC,KAAK,CAAC,QAAQ,QAAQ,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QACzD,YAAY,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;QAClC,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;QAC9B,QAAQ,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;QAC5B,YAAY,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;QACpC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA2B;IAE3B,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1E,OAAO;QACL,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;KACzF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAkC;IAElC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9E,OAAO;QACL,KAAK;QACL,MAAM,EAAE,OAAO,CAAC,IAAI;YAClB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;YAChE,CAAC,CAAC,sCAAsC,KAAK,CAAC,KAAK,IAAI;KAC1D,CAAC;AACJ,CAAC"}
|
package/dist/commands/plan.d.ts
CHANGED
|
@@ -3,9 +3,11 @@ export type PlanCommandOptions = {
|
|
|
3
3
|
audit: string;
|
|
4
4
|
config?: string;
|
|
5
5
|
output?: string;
|
|
6
|
+
stateDir?: string;
|
|
6
7
|
};
|
|
7
8
|
export type PlanCommandResult = {
|
|
8
9
|
plan: CleanupPlan;
|
|
10
|
+
statePath: string;
|
|
9
11
|
output: string;
|
|
10
12
|
};
|
|
11
13
|
export declare function executePlanCommand(options: PlanCommandOptions): Promise<PlanCommandResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAM3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmBhG"}
|
package/dist/commands/plan.js
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import { resolve } from "node:path";
|
|
2
|
-
import {
|
|
2
|
+
import { loadConfigForHome } from "../config/load.js";
|
|
3
3
|
import { cleanupPlanSchema } from "../contracts/plan.js";
|
|
4
4
|
import { auditReportSchema } from "../contracts/report.js";
|
|
5
5
|
import { createCleanupPlan } from "../core/plan.js";
|
|
6
6
|
import { readJsonFile, writeJsonAtomic } from "../state/json-file.js";
|
|
7
|
+
import { resolveStateRoot, stateLayout } from "../state/layout.js";
|
|
7
8
|
export async function executePlanCommand(options) {
|
|
8
9
|
const audit = auditReportSchema.parse(await readJsonFile(resolve(options.audit)));
|
|
9
|
-
const config = await
|
|
10
|
+
const { config } = await loadConfigForHome(audit.home, options.config);
|
|
10
11
|
const plan = cleanupPlanSchema.parse(createCleanupPlan(audit, config));
|
|
12
|
+
const layout = stateLayout(resolveStateRoot(audit.home, options.stateDir));
|
|
13
|
+
const statePath = resolve(layout.plans, `${plan.planId}.json`);
|
|
14
|
+
await writeJsonAtomic(statePath, plan, {
|
|
15
|
+
privateDirectories: [layout.root, layout.plans],
|
|
16
|
+
});
|
|
11
17
|
if (options.output !== undefined) {
|
|
12
18
|
await writeJsonAtomic(resolve(options.output), plan);
|
|
13
19
|
}
|
|
14
20
|
return {
|
|
15
21
|
plan,
|
|
22
|
+
statePath,
|
|
16
23
|
output: `${JSON.stringify(plan, null, 2)}\n`,
|
|
17
24
|
};
|
|
18
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAoB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAenE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA2B;IAClE,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC;IAC/D,MAAM,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE;QACrC,kBAAkB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;KAChD,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,IAAI;QACJ,SAAS;QACT,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type CleanupPlan } from "../contracts/plan.js";
|
|
2
|
+
import { type AuditReport } from "../contracts/report.js";
|
|
3
|
+
import { type CleanupRun } from "../contracts/run.js";
|
|
4
|
+
export type ShowCommandOptions = {
|
|
5
|
+
home: string;
|
|
6
|
+
stateDir?: string | undefined;
|
|
7
|
+
json: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type ShowCommandResult<T> = {
|
|
10
|
+
value: T;
|
|
11
|
+
output: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function renderRunDetails(run: CleanupRun): string;
|
|
14
|
+
export declare function executeShowRunCommand(idOrPath: string, options: ShowCommandOptions): Promise<ShowCommandResult<CleanupRun>>;
|
|
15
|
+
export declare function executeShowPlanCommand(idOrPath: string, options: ShowCommandOptions): Promise<ShowCommandResult<CleanupPlan>>;
|
|
16
|
+
export declare function executeShowResourceCommand(resourceId: string, options: ShowCommandOptions): Promise<ShowCommandResult<{
|
|
17
|
+
audit: AuditReport;
|
|
18
|
+
finding: AuditReport["findings"][number];
|
|
19
|
+
}>>;
|
|
20
|
+
//# sourceMappingURL=show.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIxE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAoBxD;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAOxC;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAOzC;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAAC,CAgB9F"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { cleanupPlanSchema } from "../contracts/plan.js";
|
|
2
|
+
import { auditReportSchema } from "../contracts/report.js";
|
|
3
|
+
import { cleanupRunSchema } from "../contracts/run.js";
|
|
4
|
+
import { resolveStateRoot, stateLayout } from "../state/layout.js";
|
|
5
|
+
import { listJsonRecords, readJsonRecord } from "../state/records.js";
|
|
6
|
+
export function renderRunDetails(run) {
|
|
7
|
+
const lines = [`run ${run.runId}: ${run.status}`, `plan ${run.planId}`, ""];
|
|
8
|
+
for (const action of run.actions) {
|
|
9
|
+
lines.push(`${action.status.padEnd(18)} ${action.actionId} ${action.type}`);
|
|
10
|
+
if (action.diagnostic !== undefined) {
|
|
11
|
+
lines.push(` ${action.diagnostic.code}: ${action.diagnostic.message}`);
|
|
12
|
+
}
|
|
13
|
+
if (action.isolationPath !== undefined) {
|
|
14
|
+
lines.push(` isolation: ${action.isolationPath}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (run.status === "partial" || run.status === "failed" || run.status === "interrupted") {
|
|
18
|
+
lines.push("", "Recovery: inspect every isolation path and diagnostic above.", "Do not retry the old plan; resolve partial state, then create a fresh audit and plan.");
|
|
19
|
+
}
|
|
20
|
+
return `${lines.join("\n")}\n`;
|
|
21
|
+
}
|
|
22
|
+
export async function executeShowRunCommand(idOrPath, options) {
|
|
23
|
+
const layout = stateLayout(resolveStateRoot(options.home, options.stateDir));
|
|
24
|
+
const run = await readJsonRecord(layout.runs, idOrPath, cleanupRunSchema);
|
|
25
|
+
return {
|
|
26
|
+
value: run,
|
|
27
|
+
output: options.json ? `${JSON.stringify(run, null, 2)}\n` : renderRunDetails(run),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export async function executeShowPlanCommand(idOrPath, options) {
|
|
31
|
+
const layout = stateLayout(resolveStateRoot(options.home, options.stateDir));
|
|
32
|
+
const plan = await readJsonRecord(layout.plans, idOrPath, cleanupPlanSchema);
|
|
33
|
+
return {
|
|
34
|
+
value: plan,
|
|
35
|
+
output: `${JSON.stringify(plan, null, 2)}\n`,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export async function executeShowResourceCommand(resourceId, options) {
|
|
39
|
+
const layout = stateLayout(resolveStateRoot(options.home, options.stateDir));
|
|
40
|
+
const audits = await listJsonRecords(layout.audits, auditReportSchema);
|
|
41
|
+
audits.sort((left, right) => right.completedAt.localeCompare(left.completedAt));
|
|
42
|
+
for (const audit of audits) {
|
|
43
|
+
const finding = audit.findings.find((candidate) => candidate.resource.id === resourceId);
|
|
44
|
+
if (finding !== undefined) {
|
|
45
|
+
const value = { audit, finding };
|
|
46
|
+
return {
|
|
47
|
+
value,
|
|
48
|
+
output: `${JSON.stringify(value, null, 2)}\n`,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
throw new Error(`resource ${resourceId} was not found in persisted audits`);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=show.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,gBA6B5B,CAAC"}
|
package/dist/config/defaults.js
CHANGED
|
@@ -8,6 +8,7 @@ export const DEFAULT_CONFIG = {
|
|
|
8
8
|
zed: { enabled: true },
|
|
9
9
|
opencode: { enabled: true },
|
|
10
10
|
grok: { enabled: true },
|
|
11
|
+
runtime: { enabled: false },
|
|
11
12
|
git: { enabled: false },
|
|
12
13
|
docker: { enabled: false },
|
|
13
14
|
},
|
|
@@ -21,6 +22,7 @@ export const DEFAULT_CONFIG = {
|
|
|
21
22
|
minBytes: 64 * 1024 * 1024,
|
|
22
23
|
processCheck: "required",
|
|
23
24
|
},
|
|
25
|
+
pins: [],
|
|
24
26
|
plan: {
|
|
25
27
|
ttlMinutes: 30,
|
|
26
28
|
maxRisk: "safe",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,aAAa,EAAE,CAAC;IAChB,QAAQ,EAAE;QACR,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACxB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACzB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACzB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC1B,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACtB,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACvB,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QACvB,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;KAC3B;IACD,KAAK,EAAE;QACL,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,IAAI;KACnB;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE,EAAE,GAAG,EAAE;QACtB,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC1B,YAAY,EAAE,UAAU;KACzB;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,MAAM;KAChB;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,aAAa,EAAE,CAAC;IAChB,QAAQ,EAAE;QACR,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACxB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACzB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACzB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC1B,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACtB,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACvB,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QACvB,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;KAC3B;IACD,KAAK,EAAE;QACL,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,IAAI;KACnB;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE,EAAE,GAAG,EAAE;QACtB,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAC1B,YAAY,EAAE,UAAU;KACzB;IACD,IAAI,EAAE,EAAE;IACR,IAAI,EAAE;QACJ,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,MAAM;KAChB;CACF,CAAC"}
|
package/dist/config/load.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import { type ConfigEnvironment } from "./path.js";
|
|
1
2
|
import { type AgentRinseConfig } from "./schema.js";
|
|
2
3
|
export declare function loadConfig(path?: string): Promise<AgentRinseConfig>;
|
|
4
|
+
export declare function loadConfigForHome(home: string, explicitPath?: string, environment?: ConfigEnvironment): Promise<{
|
|
5
|
+
config: AgentRinseConfig;
|
|
6
|
+
path: string;
|
|
7
|
+
exists: boolean;
|
|
8
|
+
}>;
|
|
3
9
|
//# sourceMappingURL=load.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5E,wBAAsB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4BzE;AAQD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,WAAW,GAAE,iBAA+B,GAC3C,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAkBtE"}
|
package/dist/config/load.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { resolve } from "node:path";
|
|
2
3
|
import { DEFAULT_CONFIG } from "./defaults.js";
|
|
4
|
+
import { resolveConfigPath } from "./path.js";
|
|
3
5
|
import { agentRinseConfigSchema } from "./schema.js";
|
|
4
6
|
export async function loadConfig(path) {
|
|
5
7
|
if (path === undefined) {
|
|
@@ -28,4 +30,27 @@ export async function loadConfig(path) {
|
|
|
28
30
|
},
|
|
29
31
|
};
|
|
30
32
|
}
|
|
33
|
+
function isMissing(error) {
|
|
34
|
+
return (error instanceof Error && "code" in error && error.code === "ENOENT");
|
|
35
|
+
}
|
|
36
|
+
export async function loadConfigForHome(home, explicitPath, environment = process.env) {
|
|
37
|
+
const path = resolveConfigPath(resolve(home), explicitPath, environment);
|
|
38
|
+
try {
|
|
39
|
+
return {
|
|
40
|
+
config: await loadConfig(path),
|
|
41
|
+
path,
|
|
42
|
+
exists: true,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if (explicitPath === undefined && isMissing(error)) {
|
|
47
|
+
return {
|
|
48
|
+
config: await loadConfig(),
|
|
49
|
+
path,
|
|
50
|
+
exists: false,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
31
56
|
//# sourceMappingURL=load.js.map
|
package/dist/config/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAA0B,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAyB,MAAM,aAAa,CAAC;AAE5E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAa;IAC5C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEnD,OAAO;QACL,GAAG,eAAe,CAAC,cAAc,CAAC;QAClC,GAAG,MAAM;QACT,QAAQ,EAAE;YACR,GAAG,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC3C,GAAG,MAAM,CAAC,QAAQ;SACnB;QACD,KAAK,EAAE;YACL,GAAG,cAAc,CAAC,KAAK;YACvB,GAAG,MAAM,CAAC,KAAK;SAChB;QACD,SAAS,EAAE;YACT,GAAG,cAAc,CAAC,SAAS;YAC3B,GAAG,MAAM,CAAC,SAAS;SACpB;QACD,IAAI,EAAE;YACJ,GAAG,cAAc,CAAC,IAAI;YACtB,GAAG,MAAM,CAAC,IAAI;SACf;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,CACL,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,CAChG,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,YAAqB,EACrB,WAAW,GAAsB,OAAO,CAAC,GAAG;IAE5C,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,OAAO;YACL,MAAM,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC;YAC9B,IAAI;YACJ,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,YAAY,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO;gBACL,MAAM,EAAE,MAAM,UAAU,EAAE;gBAC1B,IAAI;gBACJ,MAAM,EAAE,KAAK;aACd,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/config/path.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,GAAE,iBAA+B,GAC3C,MAAM,CAYR"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { isAbsolute, resolve } from "node:path";
|
|
2
|
+
export function resolveConfigPath(home, explicit, environment = process.env) {
|
|
3
|
+
if (explicit !== undefined) {
|
|
4
|
+
return resolve(explicit);
|
|
5
|
+
}
|
|
6
|
+
if (environment.XDG_CONFIG_HOME !== undefined &&
|
|
7
|
+
environment.XDG_CONFIG_HOME !== "" &&
|
|
8
|
+
isAbsolute(environment.XDG_CONFIG_HOME)) {
|
|
9
|
+
return resolve(environment.XDG_CONFIG_HOME, "agentrinse", "config.json");
|
|
10
|
+
}
|
|
11
|
+
return resolve(home, ".config", "agentrinse", "config.json");
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/config/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMhD,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,QAAiB,EACjB,WAAW,GAAsB,OAAO,CAAC,GAAG;IAE5C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IACD,IACE,WAAW,CAAC,eAAe,KAAK,SAAS;QACzC,WAAW,CAAC,eAAe,KAAK,EAAE;QAClC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,EACvC,CAAC;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAC/D,CAAC"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare const adapterIdSchema: z.ZodEnum<{
|
|
|
9
9
|
git: "git";
|
|
10
10
|
grok: "grok";
|
|
11
11
|
opencode: "opencode";
|
|
12
|
+
runtime: "runtime";
|
|
12
13
|
zed: "zed";
|
|
13
14
|
}>;
|
|
14
15
|
export declare const artifactProjectSchema: z.ZodObject<{
|
|
@@ -26,6 +27,16 @@ export declare const artifactProjectSchema: z.ZodObject<{
|
|
|
26
27
|
target: "target";
|
|
27
28
|
}>>;
|
|
28
29
|
}, z.core.$strip>;
|
|
30
|
+
export declare const pinSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
31
|
+
path: z.ZodString;
|
|
32
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
33
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
34
|
+
resourceId: z.ZodString;
|
|
35
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
36
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
37
|
+
gitRef: z.ZodString;
|
|
38
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
39
|
+
}, z.core.$strict>]>;
|
|
29
40
|
export declare const agentRinseConfigSchema: z.ZodObject<{
|
|
30
41
|
schemaVersion: z.ZodLiteral<1>;
|
|
31
42
|
adapters: z.ZodDefault<z.ZodRecord<z.ZodEnum<{
|
|
@@ -37,6 +48,7 @@ export declare const agentRinseConfigSchema: z.ZodObject<{
|
|
|
37
48
|
git: "git";
|
|
38
49
|
grok: "grok";
|
|
39
50
|
opencode: "opencode";
|
|
51
|
+
runtime: "runtime";
|
|
40
52
|
zed: "zed";
|
|
41
53
|
}> & z.core.$partial, z.ZodObject<{
|
|
42
54
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -66,6 +78,16 @@ export declare const agentRinseConfigSchema: z.ZodObject<{
|
|
|
66
78
|
minBytes: z.ZodDefault<z.ZodNumber>;
|
|
67
79
|
processCheck: z.ZodDefault<z.ZodLiteral<"required">>;
|
|
68
80
|
}, z.core.$strip>>;
|
|
81
|
+
pins: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
|
|
82
|
+
path: z.ZodString;
|
|
83
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
84
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
85
|
+
resourceId: z.ZodString;
|
|
86
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
87
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
88
|
+
gitRef: z.ZodString;
|
|
89
|
+
expiresAt: z.ZodOptional<z.ZodString>;
|
|
90
|
+
}, z.core.$strict>]>>>;
|
|
69
91
|
plan: z.ZodDefault<z.ZodObject<{
|
|
70
92
|
ttlMinutes: z.ZodDefault<z.ZodNumber>;
|
|
71
93
|
maxRisk: z.ZodDefault<z.ZodEnum<{
|
|
@@ -80,5 +102,6 @@ export type AdapterId = z.infer<typeof adapterIdSchema>;
|
|
|
80
102
|
export { artifactNameSchema };
|
|
81
103
|
export type { ArtifactName };
|
|
82
104
|
export type ArtifactProject = z.infer<typeof artifactProjectSchema>;
|
|
105
|
+
export type Pin = z.infer<typeof pinSchema>;
|
|
83
106
|
export type AgentRinseConfig = z.infer<typeof agentRinseConfigSchema>;
|
|
84
107
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE/E,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE/E,eAAO,MAAM,eAAe;;;;;;;;;;;EAW1B,CAAC;AAOH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;iBAMhC,CAAC;AAgCH,eAAO,MAAM,SAAS;;;;;;;;;oBAmBpB,CAAC;AAOH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+E/B,CAAC;AAEL,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAC5C,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
package/dist/config/schema.js
CHANGED
|
@@ -9,6 +9,7 @@ export const adapterIdSchema = z.enum([
|
|
|
9
9
|
"zed",
|
|
10
10
|
"opencode",
|
|
11
11
|
"grok",
|
|
12
|
+
"runtime",
|
|
12
13
|
"git",
|
|
13
14
|
"docker",
|
|
14
15
|
]);
|
|
@@ -23,6 +24,52 @@ export const artifactProjectSchema = z.object({
|
|
|
23
24
|
.min(1)
|
|
24
25
|
.refine((names) => new Set(names).size === names.length, "artifact names must be unique"),
|
|
25
26
|
});
|
|
27
|
+
const expiresAtSchema = z.string().datetime().optional();
|
|
28
|
+
function isValidGitRef(value) {
|
|
29
|
+
const match = /^refs\/(?:heads|remotes|tags)\/(.+)$/u.exec(value);
|
|
30
|
+
if (match === null) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const suffix = match[1];
|
|
34
|
+
if (suffix.endsWith(".") ||
|
|
35
|
+
suffix.includes("..") ||
|
|
36
|
+
suffix.includes("@{") ||
|
|
37
|
+
suffix.includes("//")) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
for (const component of suffix.split("/")) {
|
|
41
|
+
if (component === "" || component.startsWith(".") || component.endsWith(".lock")) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
for (const character of value) {
|
|
46
|
+
const code = character.codePointAt(0);
|
|
47
|
+
if (code <= 0x20 || code === 0x7f || ["~", "^", ":", "?", "*", "[", "\\"].includes(character)) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
export const pinSchema = z.union([
|
|
54
|
+
z
|
|
55
|
+
.object({
|
|
56
|
+
path: z.string().min(1).refine(isAbsolute, "pin path must be absolute"),
|
|
57
|
+
expiresAt: expiresAtSchema,
|
|
58
|
+
})
|
|
59
|
+
.strict(),
|
|
60
|
+
z
|
|
61
|
+
.object({
|
|
62
|
+
resourceId: z.string().min(1),
|
|
63
|
+
expiresAt: expiresAtSchema,
|
|
64
|
+
})
|
|
65
|
+
.strict(),
|
|
66
|
+
z
|
|
67
|
+
.object({
|
|
68
|
+
gitRef: z.string().refine(isValidGitRef, "pin Git ref is invalid"),
|
|
69
|
+
expiresAt: expiresAtSchema,
|
|
70
|
+
})
|
|
71
|
+
.strict(),
|
|
72
|
+
]);
|
|
26
73
|
function isInside(root, candidate) {
|
|
27
74
|
const result = relative(resolve(root), resolve(candidate));
|
|
28
75
|
return result === "" || (!result.startsWith("..") && !isAbsolute(result));
|
|
@@ -58,6 +105,7 @@ export const agentRinseConfigSchema = z
|
|
|
58
105
|
minBytes: 64 * 1024 * 1024,
|
|
59
106
|
processCheck: "required",
|
|
60
107
|
})),
|
|
108
|
+
pins: z.array(pinSchema).default([]),
|
|
61
109
|
plan: z
|
|
62
110
|
.object({
|
|
63
111
|
ttlMinutes: z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const doctorCheckSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodString;
|
|
4
|
+
status: z.ZodEnum<{
|
|
5
|
+
error: "error";
|
|
6
|
+
pass: "pass";
|
|
7
|
+
warning: "warning";
|
|
8
|
+
}>;
|
|
9
|
+
summary: z.ZodString;
|
|
10
|
+
detail: z.ZodOptional<z.ZodString>;
|
|
11
|
+
remediation: z.ZodOptional<z.ZodString>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export declare const doctorReportSchema: z.ZodObject<{
|
|
14
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
15
|
+
generatedAt: z.ZodString;
|
|
16
|
+
status: z.ZodEnum<{
|
|
17
|
+
error: "error";
|
|
18
|
+
ok: "ok";
|
|
19
|
+
warning: "warning";
|
|
20
|
+
}>;
|
|
21
|
+
checks: z.ZodArray<z.ZodObject<{
|
|
22
|
+
id: z.ZodString;
|
|
23
|
+
status: z.ZodEnum<{
|
|
24
|
+
error: "error";
|
|
25
|
+
pass: "pass";
|
|
26
|
+
warning: "warning";
|
|
27
|
+
}>;
|
|
28
|
+
summary: z.ZodString;
|
|
29
|
+
detail: z.ZodOptional<z.ZodString>;
|
|
30
|
+
remediation: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$strip>>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export type DoctorCheck = z.infer<typeof doctorCheckSchema>;
|
|
34
|
+
export type DoctorReport = z.infer<typeof doctorReportSchema>;
|
|
35
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/contracts/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;;;;;;iBAM5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;iBAK7B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const doctorCheckSchema = z.object({
|
|
3
|
+
id: z.string().min(1),
|
|
4
|
+
status: z.enum(["pass", "warning", "error"]),
|
|
5
|
+
summary: z.string().min(1),
|
|
6
|
+
detail: z.string().min(1).optional(),
|
|
7
|
+
remediation: z.string().min(1).optional(),
|
|
8
|
+
});
|
|
9
|
+
export const doctorReportSchema = z.object({
|
|
10
|
+
schemaVersion: z.literal(1),
|
|
11
|
+
generatedAt: z.string().datetime({ offset: true }),
|
|
12
|
+
status: z.enum(["ok", "warning", "error"]),
|
|
13
|
+
checks: z.array(doctorCheckSchema),
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/contracts/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;CACnC,CAAC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type Diagnostic } from "./diagnostic.js";
|
|
3
|
+
export declare const commandEnvelopeStatusSchema: z.ZodEnum<{
|
|
4
|
+
degraded: "degraded";
|
|
5
|
+
failed: "failed";
|
|
6
|
+
ok: "ok";
|
|
7
|
+
}>;
|
|
8
|
+
export declare const commandEnvelopeSchema: z.ZodObject<{
|
|
9
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
10
|
+
command: z.ZodString;
|
|
11
|
+
agentrinseVersion: z.ZodString;
|
|
12
|
+
startedAt: z.ZodString;
|
|
13
|
+
completedAt: z.ZodString;
|
|
14
|
+
status: z.ZodEnum<{
|
|
15
|
+
degraded: "degraded";
|
|
16
|
+
failed: "failed";
|
|
17
|
+
ok: "ok";
|
|
18
|
+
}>;
|
|
19
|
+
data: z.ZodUnknown;
|
|
20
|
+
diagnostics: z.ZodArray<z.ZodObject<{
|
|
21
|
+
severity: z.ZodEnum<{
|
|
22
|
+
error: "error";
|
|
23
|
+
info: "info";
|
|
24
|
+
warning: "warning";
|
|
25
|
+
}>;
|
|
26
|
+
code: z.ZodString;
|
|
27
|
+
message: z.ZodString;
|
|
28
|
+
adapter: z.ZodOptional<z.ZodString>;
|
|
29
|
+
resourceId: z.ZodOptional<z.ZodString>;
|
|
30
|
+
remediation: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$strip>>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export declare const commandEventSchema: z.ZodObject<{
|
|
34
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
35
|
+
event: z.ZodString;
|
|
36
|
+
timestamp: z.ZodString;
|
|
37
|
+
command: z.ZodString;
|
|
38
|
+
commandId: z.ZodString;
|
|
39
|
+
sequence: z.ZodNumber;
|
|
40
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export type CommandEnvelopeStatus = z.infer<typeof commandEnvelopeStatusSchema>;
|
|
43
|
+
export type CommandEnvelope<T> = Omit<z.infer<typeof commandEnvelopeSchema>, "data"> & {
|
|
44
|
+
data: T;
|
|
45
|
+
diagnostics: Diagnostic[];
|
|
46
|
+
};
|
|
47
|
+
export type CommandEvent<T = unknown> = Omit<z.infer<typeof commandEventSchema>, "data"> & {
|
|
48
|
+
data?: T;
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/contracts/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEpE,eAAO,MAAM,2BAA2B;;;;EAAuC,CAAC;AAEhF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;iBAShC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;iBAQ7B,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,EAAE,MAAM,CAAC,GAAG;IACrF,IAAI,EAAE,CAAC,CAAC;IACR,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC;AACF,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,EAAE,MAAM,CAAC,GAAG;IACzF,IAAI,CAAC,EAAE,CAAC,CAAC;CACV,CAAC"}
|