agentrinse 0.2.0 → 0.3.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 +58 -16
- package/dist/adapters/git/adapter.d.ts +14 -1
- package/dist/adapters/git/adapter.d.ts.map +1 -1
- package/dist/adapters/git/adapter.js +217 -56
- package/dist/adapters/git/adapter.js.map +1 -1
- package/dist/adapters/git/refs.d.ts +6 -0
- package/dist/adapters/git/refs.d.ts.map +1 -0
- package/dist/adapters/git/refs.js +24 -0
- package/dist/adapters/git/refs.js.map +1 -0
- package/dist/adapters/git/status.d.ts +1 -0
- package/dist/adapters/git/status.d.ts.map +1 -1
- package/dist/adapters/git/status.js +6 -0
- package/dist/adapters/git/status.js.map +1 -1
- package/dist/adapters/registry.d.ts +2 -1
- package/dist/adapters/registry.d.ts.map +1 -1
- package/dist/adapters/registry.js +6 -2
- package/dist/adapters/registry.js.map +1 -1
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +4 -0
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/clean.d.ts +2 -0
- package/dist/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +9 -3
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +3 -1
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/confirmation.d.ts +6 -0
- package/dist/commands/confirmation.d.ts.map +1 -0
- package/dist/commands/confirmation.js +21 -0
- package/dist/commands/confirmation.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +4 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/purge.d.ts +29 -0
- package/dist/commands/purge.d.ts.map +1 -0
- package/dist/commands/purge.js +168 -0
- package/dist/commands/purge.js.map +1 -0
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +14 -2
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/undo.d.ts +21 -0
- package/dist/commands/undo.d.ts.map +1 -0
- package/dist/commands/undo.js +66 -0
- package/dist/commands/undo.js.map +1 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +4 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +4 -0
- package/dist/config/load.js.map +1 -1
- package/dist/config/schema.d.ts +4 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +18 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/contracts/action.d.ts +59 -0
- package/dist/contracts/action.d.ts.map +1 -1
- package/dist/contracts/action.js +28 -1
- package/dist/contracts/action.js.map +1 -1
- package/dist/contracts/finding.d.ts +22 -0
- package/dist/contracts/finding.d.ts.map +1 -1
- package/dist/contracts/plan.d.ts +23 -0
- package/dist/contracts/plan.d.ts.map +1 -1
- package/dist/contracts/plan.js +20 -1
- package/dist/contracts/plan.js.map +1 -1
- package/dist/contracts/quarantine.d.ts +79 -0
- package/dist/contracts/quarantine.d.ts.map +1 -0
- package/dist/contracts/quarantine.js +60 -0
- package/dist/contracts/quarantine.js.map +1 -0
- package/dist/contracts/report.d.ts +22 -0
- package/dist/contracts/report.d.ts.map +1 -1
- package/dist/contracts/run.d.ts +133 -5
- package/dist/contracts/run.d.ts.map +1 -1
- package/dist/contracts/run.js +17 -3
- package/dist/contracts/run.js.map +1 -1
- package/dist/core/apply.d.ts +8 -1
- package/dist/core/apply.d.ts.map +1 -1
- package/dist/core/apply.js +138 -48
- package/dist/core/apply.js.map +1 -1
- package/dist/core/git-operation-state.d.ts +3 -0
- package/dist/core/git-operation-state.d.ts.map +1 -0
- package/dist/core/git-operation-state.js +23 -0
- package/dist/core/git-operation-state.js.map +1 -0
- package/dist/core/measure.d.ts +1 -0
- package/dist/core/measure.d.ts.map +1 -1
- package/dist/core/measure.js +3 -0
- package/dist/core/measure.js.map +1 -1
- package/dist/core/no-clobber-rename.d.ts +2 -0
- package/dist/core/no-clobber-rename.d.ts.map +1 -0
- package/dist/core/no-clobber-rename.js +58 -0
- package/dist/core/no-clobber-rename.js.map +1 -0
- package/dist/core/plan.d.ts.map +1 -1
- package/dist/core/plan.js +1 -0
- package/dist/core/plan.js.map +1 -1
- package/dist/core/worktree-executor.d.ts +51 -0
- package/dist/core/worktree-executor.d.ts.map +1 -0
- package/dist/core/worktree-executor.js +676 -0
- package/dist/core/worktree-executor.js.map +1 -0
- package/dist/core/worktree-lock.d.ts +15 -0
- package/dist/core/worktree-lock.d.ts.map +1 -0
- package/dist/core/worktree-lock.js +139 -0
- package/dist/core/worktree-lock.js.map +1 -0
- package/dist/core/worktree-recovery.d.ts +37 -0
- package/dist/core/worktree-recovery.d.ts.map +1 -0
- package/dist/core/worktree-recovery.js +1018 -0
- package/dist/core/worktree-recovery.js.map +1 -0
- package/dist/core/worktree-revalidation.d.ts +25 -0
- package/dist/core/worktree-revalidation.d.ts.map +1 -0
- package/dist/core/worktree-revalidation.js +107 -0
- package/dist/core/worktree-revalidation.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +47 -0
- package/dist/main.js.map +1 -1
- package/dist/state/layout.d.ts +1 -0
- package/dist/state/layout.d.ts.map +1 -1
- package/dist/state/layout.js +1 -0
- package/dist/state/layout.js.map +1 -1
- package/dist/state/records.d.ts +6 -0
- package/dist/state/records.d.ts.map +1 -1
- package/dist/state/records.js +9 -1
- package/dist/state/records.js.map +1 -1
- package/dist/state/run-journal.d.ts.map +1 -1
- package/dist/state/run-journal.js +3 -0
- 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 +2 -1
- package/schemas/audit.schema.json +112 -0
- package/schemas/plan.schema.json +117 -0
- package/schemas/quarantine.schema.json +238 -0
- package/schemas/run.schema.json +152 -54
package/README.md
CHANGED
|
@@ -6,11 +6,11 @@ AgentRinse inventories agent state and developer residue, explains why each
|
|
|
6
6
|
resource is protected or eligible, creates content-addressed cleanup plans,
|
|
7
7
|
and applies only actions that still pass every safety check.
|
|
8
8
|
|
|
9
|
-
Version `0.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
rebuildable
|
|
13
|
-
Provider state,
|
|
9
|
+
Version `0.3.0` adds recoverable quarantine for fully proven inactive linked
|
|
10
|
+
Git worktrees. Quarantine is opt-in at the `recoverable` risk ceiling, keeps a
|
|
11
|
+
tested undo path, and reports zero immediate disk reclaim until a separate
|
|
12
|
+
purge. Exact configured rebuildable artifacts remain the only `safe` action.
|
|
13
|
+
Provider state, runtimes, and Docker resources remain report-only.
|
|
14
14
|
|
|
15
15
|
## Install
|
|
16
16
|
|
|
@@ -21,10 +21,16 @@ npm install --global agentrinse
|
|
|
21
21
|
agentrinse --version
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
+
Homebrew:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
brew install vincentkoc/tap/agentrinse
|
|
28
|
+
```
|
|
29
|
+
|
|
24
30
|
One-off use also works:
|
|
25
31
|
|
|
26
32
|
```bash
|
|
27
|
-
npx agentrinse@0.
|
|
33
|
+
npx agentrinse@0.3.0 doctor
|
|
28
34
|
```
|
|
29
35
|
|
|
30
36
|
## Quickstart
|
|
@@ -52,6 +58,10 @@ Edit the generated JSON and add explicit artifact roots:
|
|
|
52
58
|
"minBytes": 67108864,
|
|
53
59
|
"processCheck": "required"
|
|
54
60
|
},
|
|
61
|
+
"worktrees": {
|
|
62
|
+
"minAgeMinutes": 20160,
|
|
63
|
+
"quarantineTtlMinutes": 10080
|
|
64
|
+
},
|
|
55
65
|
"plan": {
|
|
56
66
|
"ttlMinutes": 30,
|
|
57
67
|
"maxRisk": "safe"
|
|
@@ -100,7 +110,7 @@ repository's linked worktrees, loads Codex and Claude reachability metadata,
|
|
|
100
110
|
and ignores unrelated configured artifact projects. It does not infer that a
|
|
101
111
|
task is finished.
|
|
102
112
|
|
|
103
|
-
After reviewing the summary, a fresh closeout can apply
|
|
113
|
+
After reviewing the summary, a fresh closeout can apply existing `safe`
|
|
104
114
|
artifact actions:
|
|
105
115
|
|
|
106
116
|
```bash
|
|
@@ -108,12 +118,30 @@ agentrinse clean --profile closeout --apply
|
|
|
108
118
|
agentrinse clean --profile closeout --apply --yes --max-risk safe --json
|
|
109
119
|
```
|
|
110
120
|
|
|
121
|
+
Whole-worktree quarantine must be selected explicitly:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
agentrinse clean --profile closeout --max-risk recoverable
|
|
125
|
+
agentrinse clean --profile closeout --max-risk recoverable --apply --yes
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Quarantine moves bytes out of the active path but does not reclaim disk.
|
|
129
|
+
Restore or permanently purge the resulting run:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
agentrinse undo <run-id>
|
|
133
|
+
agentrinse purge --run <run-id>
|
|
134
|
+
agentrinse purge --run <run-id> --apply --yes
|
|
135
|
+
```
|
|
136
|
+
|
|
111
137
|
On macOS, an installed Mole binary adds external `mo purge --dry-run` and
|
|
112
138
|
`mo clean --dry-run` suggestions. AgentRinse never runs those commands.
|
|
113
139
|
|
|
114
140
|
## Mutation Boundary
|
|
115
141
|
|
|
116
|
-
AgentRinse
|
|
142
|
+
AgentRinse has two mutation classes.
|
|
143
|
+
|
|
144
|
+
`safe` artifact removal supports only these configured names:
|
|
117
145
|
|
|
118
146
|
- `node_modules`
|
|
119
147
|
- `dist`
|
|
@@ -132,10 +160,21 @@ descendant age, mount boundaries, current working directory ownership,
|
|
|
132
160
|
same-user processes, and plan expiration. The exact target is atomically moved
|
|
133
161
|
to a same-parent tombstone and verified again before deletion.
|
|
134
162
|
|
|
163
|
+
`recoverable` worktree quarantine supports only linked, unlocked, clean,
|
|
164
|
+
pushed, branch-attached worktrees with complete measurement, no submodules,
|
|
165
|
+
no live process, no pin or provider root, and sufficient age. A recovery ref
|
|
166
|
+
is created before atomic same-filesystem rename. Git registration is repaired,
|
|
167
|
+
locked, verified, and recorded in an owner-only manifest.
|
|
168
|
+
|
|
169
|
+
Permanent purge reloads configuration and provider workspace metadata under
|
|
170
|
+
the mutation lock. A current path, resource-ID, or Git-ref pin, provider-managed
|
|
171
|
+
root, active/recent session, or unknown provider state protects the original,
|
|
172
|
+
quarantine, or purge-isolation location and refuses deletion. The refresh runs
|
|
173
|
+
again immediately before every normal or resumed permanent removal.
|
|
174
|
+
|
|
135
175
|
AgentRinse never removes provider sessions, transcripts, databases,
|
|
136
176
|
credentials, configuration, plugins, skills, memories, Git branches, stashes,
|
|
137
|
-
|
|
138
|
-
`0.2.0`.
|
|
177
|
+
Docker images, containers, networks, volumes, or build cache in `0.3.0`.
|
|
139
178
|
|
|
140
179
|
## Operations
|
|
141
180
|
|
|
@@ -144,6 +183,9 @@ agentrinse history
|
|
|
144
183
|
agentrinse show run <run-id>
|
|
145
184
|
agentrinse show plan <plan-id>
|
|
146
185
|
agentrinse show resource <resource-id>
|
|
186
|
+
agentrinse undo <run-id>
|
|
187
|
+
agentrinse purge
|
|
188
|
+
agentrinse purge --expired --apply --yes
|
|
147
189
|
agentrinse lock status
|
|
148
190
|
```
|
|
149
191
|
|
|
@@ -195,12 +237,12 @@ exact so they can be used for planning.
|
|
|
195
237
|
|
|
196
238
|
## Platform Support
|
|
197
239
|
|
|
198
|
-
| Platform | `0.
|
|
199
|
-
| -------------- |
|
|
200
|
-
| macOS | audit
|
|
201
|
-
| Linux | audit
|
|
202
|
-
| WSL | Linux contract inside the WSL filesystem
|
|
203
|
-
| native Windows | audit-only; mutation remains blocked before `1.0.0`
|
|
240
|
+
| Platform | `0.3.0` support |
|
|
241
|
+
| -------------- | ------------------------------------------------------- |
|
|
242
|
+
| macOS | audit, artifact removal, worktree quarantine/undo/purge |
|
|
243
|
+
| Linux | audit, artifact removal, worktree quarantine/undo/purge |
|
|
244
|
+
| WSL | Linux contract inside the WSL filesystem |
|
|
245
|
+
| native Windows | audit-only; mutation remains blocked before `1.0.0` |
|
|
204
246
|
|
|
205
247
|
Git and `lsof` are required for the complete diagnostic and process-ownership
|
|
206
248
|
contract. Docker is optional. Doctor can detect the optional external Mole
|
|
@@ -1,22 +1,35 @@
|
|
|
1
|
+
import type { AgentRinseConfig } from "../../config/schema.js";
|
|
1
2
|
import type { AuditAdapter, AuditContext, CollectionResult } from "../../contracts/adapter.js";
|
|
2
3
|
import type { Finding } from "../../contracts/finding.js";
|
|
3
4
|
import type { AdapterProbe } from "../../contracts/report.js";
|
|
4
5
|
import type { ResourceSnapshot } from "../../contracts/resource.js";
|
|
6
|
+
import { measurePath } from "../../core/measure.js";
|
|
7
|
+
import { type MountBoundaryResult } from "../../core/mount-boundaries.js";
|
|
5
8
|
import { type ProcessOwnershipResult } from "../../core/process-ownership.js";
|
|
6
9
|
import type { ReachabilityIndex } from "../../core/reachability.js";
|
|
7
10
|
export type GitRunner = (args: string[]) => Promise<string>;
|
|
8
11
|
export type GitPathExists = (path: string) => Promise<boolean>;
|
|
9
12
|
export type GitProcessProbe = (path: string) => Promise<ProcessOwnershipResult>;
|
|
13
|
+
export type GitWorktreeOptions = AgentRinseConfig["audit"] & AgentRinseConfig["worktrees"] & {
|
|
14
|
+
platform: NodeJS.Platform;
|
|
15
|
+
};
|
|
16
|
+
export type GitWorktreeDependencies = {
|
|
17
|
+
measure?: typeof measurePath;
|
|
18
|
+
mountProbe?: (path: string) => Promise<MountBoundaryResult>;
|
|
19
|
+
};
|
|
10
20
|
export declare class GitWorktreeAuditAdapter implements AuditAdapter {
|
|
11
21
|
private readonly root;
|
|
12
22
|
private readonly runGit;
|
|
13
23
|
private readonly pathExists;
|
|
14
24
|
private readonly processProbe;
|
|
15
25
|
private readonly reachability?;
|
|
26
|
+
private readonly options;
|
|
27
|
+
private readonly dependencies;
|
|
16
28
|
readonly id = "git";
|
|
17
|
-
constructor(root: string | undefined, runGit?: GitRunner, pathExists?: GitPathExists, processProbe?: GitProcessProbe, reachability?: ReachabilityIndex | undefined);
|
|
29
|
+
constructor(root: string | undefined, runGit?: GitRunner, pathExists?: GitPathExists, processProbe?: GitProcessProbe, reachability?: ReachabilityIndex | undefined, options?: GitWorktreeOptions, dependencies?: GitWorktreeDependencies);
|
|
18
30
|
probe(_context: AuditContext): Promise<AdapterProbe>;
|
|
19
31
|
collect(context: AuditContext, probe: AdapterProbe): Promise<CollectionResult>;
|
|
20
32
|
classify(context: AuditContext, resource: ResourceSnapshot): Promise<Finding>;
|
|
33
|
+
private actionFor;
|
|
21
34
|
}
|
|
22
35
|
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/git/adapter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/git/adapter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG/F,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAoB,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC/F,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAUpE,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAChF,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,OAAO,CAAC,GACxD,gBAAgB,CAAC,WAAW,CAAC,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC3B,CAAC;AACJ,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,CAAC,EAAE,OAAO,WAAW,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC7D,CAAC;AA0DF,qBAAa,uBAAwB,YAAW,YAAY;IAIxD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAT/B,QAAQ,CAAC,EAAE,SAAS;IAEpB,YACmB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,MAAM,GAAE,SAA4B,EACpC,UAAU,GAAE,aAAiC,EAC7C,YAAY,GAAE,eAAwD,EACtE,YAAY,CAAC,EAAE,iBAAiB,YAAA,EAChC,OAAO,GAAE,kBAAoC,EAC7C,YAAY,GAAE,uBAA4B,EACzD;IAEE,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CA6CzD;IAEK,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmOnF;IAEK,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CA0NlF;IAED,OAAO,CAAC,SAAS;CA8BlB"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { execFile } from "node:child_process";
|
|
2
|
-
import { lstat } from "node:fs/promises";
|
|
3
|
-
import {
|
|
2
|
+
import { lstat, realpath } from "node:fs/promises";
|
|
3
|
+
import { basename, resolve } from "node:path";
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
5
|
import { sha256 } from "../../core/digest.js";
|
|
6
|
+
import { findGitOperations } from "../../core/git-operation-state.js";
|
|
7
|
+
import { measurePath } from "../../core/measure.js";
|
|
8
|
+
import { findMountBoundaries } from "../../core/mount-boundaries.js";
|
|
6
9
|
import { findProcessesUsingPath, } from "../../core/process-ownership.js";
|
|
7
10
|
import { parseWorktreePorcelain } from "./porcelain.js";
|
|
8
|
-
import {
|
|
11
|
+
import { listGitRefsForCommit } from "./refs.js";
|
|
12
|
+
import { countStatusSuppressedIndexEntries, parseGitStatusPorcelainV2, } from "./status.js";
|
|
9
13
|
const execFileAsync = promisify(execFile);
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
];
|
|
14
|
+
const DEFAULT_OPTIONS = {
|
|
15
|
+
maxEntries: 100_000,
|
|
16
|
+
measureBytes: true,
|
|
17
|
+
minAgeMinutes: 14 * 24 * 60,
|
|
18
|
+
quarantineTtlMinutes: 7 * 24 * 60,
|
|
19
|
+
platform: process.platform,
|
|
20
|
+
};
|
|
18
21
|
async function defaultGitRunner(args) {
|
|
19
22
|
const result = await execFileAsync("git", args, {
|
|
20
23
|
encoding: "utf8",
|
|
@@ -62,13 +65,17 @@ export class GitWorktreeAuditAdapter {
|
|
|
62
65
|
pathExists;
|
|
63
66
|
processProbe;
|
|
64
67
|
reachability;
|
|
68
|
+
options;
|
|
69
|
+
dependencies;
|
|
65
70
|
id = "git";
|
|
66
|
-
constructor(root, runGit = defaultGitRunner, pathExists = defaultPathExists, processProbe = (path) => findProcessesUsingPath(path), reachability) {
|
|
71
|
+
constructor(root, runGit = defaultGitRunner, pathExists = defaultPathExists, processProbe = (path) => findProcessesUsingPath(path), reachability, options = DEFAULT_OPTIONS, dependencies = {}) {
|
|
67
72
|
this.root = root;
|
|
68
73
|
this.runGit = runGit;
|
|
69
74
|
this.pathExists = pathExists;
|
|
70
75
|
this.processProbe = processProbe;
|
|
71
76
|
this.reachability = reachability;
|
|
77
|
+
this.options = options;
|
|
78
|
+
this.dependencies = dependencies;
|
|
72
79
|
}
|
|
73
80
|
async probe(_context) {
|
|
74
81
|
if (this.root === undefined) {
|
|
@@ -144,6 +151,16 @@ export class GitWorktreeAuditAdapter {
|
|
|
144
151
|
let gitRefs = [];
|
|
145
152
|
let gitRefInspectionComplete = false;
|
|
146
153
|
let remotes = [];
|
|
154
|
+
let repositoryCommonDir;
|
|
155
|
+
let measurement;
|
|
156
|
+
let mountBoundaries = {
|
|
157
|
+
status: "unknown",
|
|
158
|
+
paths: [],
|
|
159
|
+
reason: "worktree does not exist",
|
|
160
|
+
};
|
|
161
|
+
let hasSubmodules = false;
|
|
162
|
+
let statusSuppressedEntries = 0;
|
|
163
|
+
let stats;
|
|
147
164
|
const operations = new Set();
|
|
148
165
|
let processOwnership = {
|
|
149
166
|
status: "unknown",
|
|
@@ -152,6 +169,8 @@ export class GitWorktreeAuditAdapter {
|
|
|
152
169
|
};
|
|
153
170
|
if (exists) {
|
|
154
171
|
try {
|
|
172
|
+
stats = await lstat(worktreePath);
|
|
173
|
+
await realpath(worktreePath);
|
|
155
174
|
status = parseGitStatusPorcelainV2(await this.runGit([
|
|
156
175
|
"-C",
|
|
157
176
|
worktreePath,
|
|
@@ -160,51 +179,51 @@ export class GitWorktreeAuditAdapter {
|
|
|
160
179
|
"--branch",
|
|
161
180
|
"-z",
|
|
162
181
|
"--untracked-files=all",
|
|
182
|
+
"--ignored=matching",
|
|
163
183
|
]));
|
|
164
184
|
remotes = lines(await this.runGit(["-C", worktreePath, "remote"]));
|
|
185
|
+
const commonDirOutput = (await this.runGit([
|
|
186
|
+
"-C",
|
|
187
|
+
worktreePath,
|
|
188
|
+
"rev-parse",
|
|
189
|
+
"--path-format=absolute",
|
|
190
|
+
"--git-common-dir",
|
|
191
|
+
])).trim();
|
|
192
|
+
repositoryCommonDir = resolve(worktreePath, commonDirOutput);
|
|
193
|
+
hasSubmodules = (await this.runGit(["-C", worktreePath, "ls-files", "-z", "--stage"]))
|
|
194
|
+
.split("\0")
|
|
195
|
+
.some((entry) => entry.startsWith("160000 "));
|
|
196
|
+
statusSuppressedEntries = countStatusSuppressedIndexEntries(await this.runGit(["-C", worktreePath, "ls-files", "-z", "-v"]));
|
|
197
|
+
if (this.options.measureBytes) {
|
|
198
|
+
measurement = await (this.dependencies.measure ?? measurePath)(worktreePath, {
|
|
199
|
+
maxEntries: this.options.maxEntries,
|
|
200
|
+
excludeRootEntries: [".git"],
|
|
201
|
+
...(context.signal === undefined ? {} : { signal: context.signal }),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
mountBoundaries = await (this.dependencies.mountProbe ?? findMountBoundaries)(worktreePath);
|
|
165
205
|
const head = status.head ?? record.head;
|
|
166
206
|
if (head !== undefined) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
worktreePath,
|
|
170
|
-
"for-each-ref",
|
|
171
|
-
"--contains",
|
|
172
|
-
head,
|
|
173
|
-
"--format=%(refname)",
|
|
174
|
-
"refs/heads",
|
|
175
|
-
"refs/remotes",
|
|
176
|
-
]));
|
|
177
|
-
const tagRefs = lines(await this.runGit([
|
|
178
|
-
"-C",
|
|
179
|
-
worktreePath,
|
|
180
|
-
"for-each-ref",
|
|
181
|
-
"--points-at",
|
|
182
|
-
head,
|
|
183
|
-
"--format=%(refname)",
|
|
184
|
-
"refs/tags",
|
|
185
|
-
]));
|
|
207
|
+
const refs = await listGitRefsForCommit((args) => this.runGit(["-C", worktreePath, ...args]), head);
|
|
208
|
+
containingRefs = refs.containingRefs;
|
|
186
209
|
gitRefs = [
|
|
187
210
|
record.branch,
|
|
188
211
|
branchRef(status.branch),
|
|
189
212
|
upstreamRef(status.upstream),
|
|
190
|
-
...
|
|
213
|
+
...refs.gitRefs,
|
|
191
214
|
]
|
|
192
215
|
.filter((value) => value !== undefined)
|
|
193
216
|
.filter((value, index, values) => values.indexOf(value) === index)
|
|
194
217
|
.sort();
|
|
195
218
|
gitRefInspectionComplete = true;
|
|
196
219
|
}
|
|
197
|
-
for (const
|
|
198
|
-
|
|
199
|
-
const markerPath = reportedMarkerPath === "" || isAbsolute(reportedMarkerPath)
|
|
200
|
-
? reportedMarkerPath
|
|
201
|
-
: resolve(worktreePath, reportedMarkerPath);
|
|
202
|
-
if (markerPath !== "" && (await this.pathExists(markerPath))) {
|
|
203
|
-
operations.add(operation);
|
|
204
|
-
}
|
|
220
|
+
for (const operation of await findGitOperations(worktreePath, this.runGit, this.pathExists)) {
|
|
221
|
+
operations.add(operation);
|
|
205
222
|
}
|
|
206
223
|
processOwnership = await this.processProbe(worktreePath);
|
|
207
|
-
if (processOwnership.status === "unknown"
|
|
224
|
+
if (processOwnership.status === "unknown" ||
|
|
225
|
+
repositoryCommonDir === undefined ||
|
|
226
|
+
stats === undefined) {
|
|
208
227
|
inspectionComplete = false;
|
|
209
228
|
}
|
|
210
229
|
}
|
|
@@ -227,6 +246,7 @@ export class GitWorktreeAuditAdapter {
|
|
|
227
246
|
const modified = status?.modified ?? 0;
|
|
228
247
|
const untracked = status?.untracked ?? 0;
|
|
229
248
|
const conflicted = status?.conflicted ?? 0;
|
|
249
|
+
const ignored = status?.ignored ?? 0;
|
|
230
250
|
resources.push({
|
|
231
251
|
resource: {
|
|
232
252
|
id: `git:git-worktree:${sha256(canonicalKey)}`,
|
|
@@ -248,11 +268,30 @@ export class GitWorktreeAuditAdapter {
|
|
|
248
268
|
bare: record.bare,
|
|
249
269
|
locked: record.locked,
|
|
250
270
|
prunable: record.prunable,
|
|
271
|
+
repositoryCommonDir,
|
|
272
|
+
device: stats?.dev,
|
|
273
|
+
inode: stats?.ino,
|
|
274
|
+
mtimeMs: stats?.mtimeMs,
|
|
275
|
+
newestMtimeMs: measurement?.newestMtimeMs,
|
|
276
|
+
fingerprint: measurement?.fingerprint,
|
|
277
|
+
measurementTruncated: measurement?.truncated ?? !this.options.measureBytes,
|
|
278
|
+
specialEntries: measurement?.specialEntries,
|
|
279
|
+
mountBoundaries: measurement?.mountBoundaries,
|
|
280
|
+
mountBoundaryStatus: mountBoundaries.status,
|
|
281
|
+
mountBoundaryPaths: mountBoundaries.paths,
|
|
282
|
+
mountBoundaryReason: mountBoundaries.status === "unknown" ? mountBoundaries.reason : undefined,
|
|
283
|
+
ageMinutes: measurement === undefined
|
|
284
|
+
? undefined
|
|
285
|
+
: Math.max(0, (context.now.getTime() - measurement.newestMtimeMs) / 60_000),
|
|
286
|
+
hasSubmodules,
|
|
287
|
+
platform: this.options.platform,
|
|
251
288
|
staged,
|
|
252
289
|
modified,
|
|
253
290
|
untracked,
|
|
254
291
|
conflicted,
|
|
255
|
-
|
|
292
|
+
ignored,
|
|
293
|
+
statusSuppressedEntries,
|
|
294
|
+
dirty: staged + modified + untracked + conflicted + ignored > 0,
|
|
256
295
|
ahead,
|
|
257
296
|
behind: status?.behind ?? 0,
|
|
258
297
|
operations: [...operations].sort(),
|
|
@@ -272,6 +311,7 @@ export class GitWorktreeAuditAdapter {
|
|
|
272
311
|
inspectionComplete,
|
|
273
312
|
reportOnly: true,
|
|
274
313
|
},
|
|
314
|
+
...(measurement === undefined ? {} : { measuredBytes: measurement.bytes }),
|
|
275
315
|
});
|
|
276
316
|
}
|
|
277
317
|
if (records.length === 0) {
|
|
@@ -290,6 +330,22 @@ export class GitWorktreeAuditAdapter {
|
|
|
290
330
|
detail: "The main worktree is always protected.",
|
|
291
331
|
});
|
|
292
332
|
}
|
|
333
|
+
if (!["darwin", "linux"].includes(String(resource.facts.platform))) {
|
|
334
|
+
roots.push({
|
|
335
|
+
code: "worktree-mutation-unsupported",
|
|
336
|
+
source: "git",
|
|
337
|
+
observedAt,
|
|
338
|
+
detail: "Recoverable worktree quarantine is supported only on macOS and Linux.",
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
if (resource.facts.bare === true || resource.facts.prunable !== undefined) {
|
|
342
|
+
roots.push({
|
|
343
|
+
code: "worktree-registration-unsafe",
|
|
344
|
+
source: "git",
|
|
345
|
+
observedAt,
|
|
346
|
+
detail: "Bare or prunable worktree registrations are not quarantine candidates.",
|
|
347
|
+
});
|
|
348
|
+
}
|
|
293
349
|
if (resource.facts.locked !== undefined) {
|
|
294
350
|
roots.push({
|
|
295
351
|
code: "git-lock",
|
|
@@ -303,7 +359,16 @@ export class GitWorktreeAuditAdapter {
|
|
|
303
359
|
code: "dirty-worktree",
|
|
304
360
|
source: "git",
|
|
305
361
|
observedAt,
|
|
306
|
-
detail: "Git reports staged, modified, conflicted, or
|
|
362
|
+
detail: "Git reports staged, modified, conflicted, untracked, or ignored work.",
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
if (typeof resource.facts.statusSuppressedEntries === "number" &&
|
|
366
|
+
resource.facts.statusSuppressedEntries > 0) {
|
|
367
|
+
roots.push({
|
|
368
|
+
code: "git-status-suppressed",
|
|
369
|
+
source: "git",
|
|
370
|
+
observedAt,
|
|
371
|
+
detail: "Git index flags suppress status visibility for one or more tracked paths.",
|
|
307
372
|
});
|
|
308
373
|
}
|
|
309
374
|
if (Array.isArray(resource.facts.operations) && resource.facts.operations.length > 0) {
|
|
@@ -346,14 +411,76 @@ export class GitWorktreeAuditAdapter {
|
|
|
346
411
|
detail: "No configured remote is available for reachability proof.",
|
|
347
412
|
});
|
|
348
413
|
}
|
|
349
|
-
if (resource.facts.detached === true
|
|
350
|
-
|
|
351
|
-
|
|
414
|
+
if (resource.facts.detached === true) {
|
|
415
|
+
roots.push({
|
|
416
|
+
code: "detached-worktree",
|
|
417
|
+
source: "git",
|
|
418
|
+
observedAt,
|
|
419
|
+
detail: "Detached worktrees are outside the 0.3 quarantine boundary.",
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
if (resource.resource.path !== undefined &&
|
|
423
|
+
basename(resource.resource.path) === ".agentrinse-quarantine") {
|
|
424
|
+
roots.push({
|
|
425
|
+
code: "worktree-quarantine-path-reserved",
|
|
426
|
+
source: "git",
|
|
427
|
+
observedAt,
|
|
428
|
+
detail: "A worktree cannot use AgentRinse's reserved quarantine container path.",
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
if (typeof resource.facts.head !== "string" ||
|
|
432
|
+
typeof resource.facts.branch !== "string" ||
|
|
433
|
+
typeof resource.facts.repositoryCommonDir !== "string") {
|
|
352
434
|
roots.push({
|
|
353
|
-
code: "
|
|
435
|
+
code: "worktree-identity-incomplete",
|
|
354
436
|
source: "git",
|
|
355
437
|
observedAt,
|
|
356
|
-
detail: "
|
|
438
|
+
detail: "Worktree HEAD, branch, or common Git directory could not be proven.",
|
|
439
|
+
});
|
|
440
|
+
}
|
|
441
|
+
if (resource.facts.hasSubmodules === true) {
|
|
442
|
+
roots.push({
|
|
443
|
+
code: "worktree-submodules",
|
|
444
|
+
source: "git",
|
|
445
|
+
observedAt,
|
|
446
|
+
detail: "Worktrees containing gitlink entries are not quarantine candidates.",
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
if (resource.measuredBytes === undefined ||
|
|
450
|
+
resource.facts.measurementTruncated === true ||
|
|
451
|
+
typeof resource.facts.fingerprint !== "string") {
|
|
452
|
+
roots.push({
|
|
453
|
+
code: "worktree-measurement-incomplete",
|
|
454
|
+
source: "git",
|
|
455
|
+
observedAt,
|
|
456
|
+
detail: "Worktree contents could not be measured completely.",
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
if ((typeof resource.facts.specialEntries === "number" && resource.facts.specialEntries > 0) ||
|
|
460
|
+
(typeof resource.facts.mountBoundaries === "number" && resource.facts.mountBoundaries > 0) ||
|
|
461
|
+
resource.facts.mountBoundaryStatus === "blocked") {
|
|
462
|
+
roots.push({
|
|
463
|
+
code: "worktree-filesystem-boundary",
|
|
464
|
+
source: "git",
|
|
465
|
+
observedAt,
|
|
466
|
+
detail: "Worktree contents include an unsupported filesystem entry or mount boundary.",
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
if (resource.facts.mountBoundaryStatus !== "clear") {
|
|
470
|
+
roots.push({
|
|
471
|
+
code: "worktree-mount-inspection-incomplete",
|
|
472
|
+
source: "git",
|
|
473
|
+
observedAt,
|
|
474
|
+
detail: "Filesystem mount boundaries could not be proven absent.",
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
if (typeof resource.facts.ageMinutes !== "number" ||
|
|
478
|
+
resource.facts.ageMinutes < this.options.minAgeMinutes) {
|
|
479
|
+
roots.push({
|
|
480
|
+
code: "recent-resource",
|
|
481
|
+
source: "git",
|
|
482
|
+
observedAt,
|
|
483
|
+
detail: `Worktree is newer than ${this.options.minAgeMinutes} minutes.`,
|
|
357
484
|
});
|
|
358
485
|
}
|
|
359
486
|
if (resource.facts.inspectionComplete !== true) {
|
|
@@ -365,26 +492,60 @@ export class GitWorktreeAuditAdapter {
|
|
|
365
492
|
});
|
|
366
493
|
}
|
|
367
494
|
roots.push(...(this.reachability?.rootsForResource(resource.resource, resource.facts, observedAt) ?? []));
|
|
368
|
-
roots.push({
|
|
369
|
-
code: "worktree-removal-unavailable",
|
|
370
|
-
source: "git",
|
|
371
|
-
observedAt,
|
|
372
|
-
detail: "AgentRinse 0.2 reports reachability but does not remove worktrees.",
|
|
373
|
-
});
|
|
374
495
|
roots.sort((left, right) => left.code.localeCompare(right.code));
|
|
496
|
+
const eligible = resource.exists && roots.length === 0;
|
|
497
|
+
const candidateActions = eligible ? [this.actionFor(resource)] : [];
|
|
375
498
|
return {
|
|
376
499
|
schemaVersion: 1,
|
|
377
500
|
findingId: `${resource.resource.id}:${sha256(context.auditId)}`,
|
|
378
501
|
auditId: context.auditId,
|
|
379
502
|
observedAt,
|
|
380
503
|
resource: resource.resource,
|
|
381
|
-
state:
|
|
504
|
+
state: eligible
|
|
505
|
+
? "eligible"
|
|
506
|
+
: resource.exists && resource.facts.inspectionComplete === true
|
|
507
|
+
? "protected"
|
|
508
|
+
: "unknown",
|
|
382
509
|
confidence: resource.exists && resource.facts.inspectionComplete === true ? "certain" : "unknown",
|
|
383
510
|
roots,
|
|
384
511
|
facts: resource.facts,
|
|
385
|
-
candidateActions
|
|
512
|
+
candidateActions,
|
|
513
|
+
...(resource.measuredBytes === undefined
|
|
514
|
+
? {}
|
|
515
|
+
: {
|
|
516
|
+
measuredBytes: resource.measuredBytes,
|
|
517
|
+
estimatedReclaimBytes: 0,
|
|
518
|
+
}),
|
|
386
519
|
warnings: [],
|
|
387
520
|
};
|
|
388
521
|
}
|
|
522
|
+
actionFor(resource) {
|
|
523
|
+
const facts = resource.facts;
|
|
524
|
+
const branch = typeof facts.branch === "string" ? (branchRef(facts.branch) ?? facts.branch) : undefined;
|
|
525
|
+
const target = {
|
|
526
|
+
path: resource.resource.path,
|
|
527
|
+
repositoryCommonDir: String(facts.repositoryCommonDir),
|
|
528
|
+
head: String(facts.head),
|
|
529
|
+
...(branch === undefined ? {} : { branch }),
|
|
530
|
+
device: Number(facts.device),
|
|
531
|
+
inode: Number(facts.inode),
|
|
532
|
+
mtimeMs: Number(facts.mtimeMs),
|
|
533
|
+
measuredBytes: resource.measuredBytes,
|
|
534
|
+
newestMtimeMs: Number(facts.newestMtimeMs),
|
|
535
|
+
fingerprint: String(facts.fingerprint),
|
|
536
|
+
};
|
|
537
|
+
return {
|
|
538
|
+
actionId: `worktree.quarantine:${sha256(JSON.stringify(target))}`,
|
|
539
|
+
type: "worktree.quarantine",
|
|
540
|
+
adapter: "git",
|
|
541
|
+
resourceId: resource.resource.id,
|
|
542
|
+
risk: "recoverable",
|
|
543
|
+
description: `Quarantine inactive linked worktree ${target.path}`,
|
|
544
|
+
expectedReclaimBytes: 0,
|
|
545
|
+
pendingQuarantineBytes: target.measuredBytes,
|
|
546
|
+
quarantineTtlMinutes: this.options.quarantineTtlMinutes,
|
|
547
|
+
target,
|
|
548
|
+
};
|
|
549
|
+
}
|
|
389
550
|
}
|
|
390
551
|
//# sourceMappingURL=adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/git/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/adapters/git/adapter.ts"],"names":[],"mappings":"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"}
|