pruneguard 0.2.1 → 0.3.1

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.
@@ -0,0 +1,200 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "SafeDeleteReport",
4
+ "description": "Safe-delete report for deletion approval workflows.",
5
+ "type": "object",
6
+ "required": [
7
+ "blocked",
8
+ "needsReview",
9
+ "safe",
10
+ "targets"
11
+ ],
12
+ "properties": {
13
+ "blocked": {
14
+ "description": "Targets that should not be deleted.",
15
+ "type": "array",
16
+ "items": {
17
+ "$ref": "#/definitions/SafeDeleteCandidate"
18
+ }
19
+ },
20
+ "deletionOrder": {
21
+ "description": "Recommended deletion order (safe targets only, dependency-aware).",
22
+ "type": "array",
23
+ "items": {
24
+ "$ref": "#/definitions/DeletionOrderEntry"
25
+ }
26
+ },
27
+ "evidence": {
28
+ "description": "Supporting evidence.",
29
+ "type": "array",
30
+ "items": {
31
+ "$ref": "#/definitions/Evidence"
32
+ }
33
+ },
34
+ "needsReview": {
35
+ "description": "Targets that need manual review before deletion.",
36
+ "type": "array",
37
+ "items": {
38
+ "$ref": "#/definitions/SafeDeleteCandidate"
39
+ }
40
+ },
41
+ "safe": {
42
+ "description": "Targets safe to delete.",
43
+ "type": "array",
44
+ "items": {
45
+ "$ref": "#/definitions/SafeDeleteCandidate"
46
+ }
47
+ },
48
+ "targets": {
49
+ "description": "Targets that were evaluated.",
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string"
53
+ }
54
+ }
55
+ },
56
+ "definitions": {
57
+ "DeletionOrderEntry": {
58
+ "description": "An entry in the dependency-aware deletion order.",
59
+ "type": "object",
60
+ "required": [
61
+ "step",
62
+ "target"
63
+ ],
64
+ "properties": {
65
+ "reason": {
66
+ "description": "Why this target is at this position in the order.",
67
+ "type": [
68
+ "string",
69
+ "null"
70
+ ]
71
+ },
72
+ "step": {
73
+ "description": "Position in the deletion sequence (1-based).",
74
+ "type": "integer",
75
+ "format": "uint",
76
+ "minimum": 0.0
77
+ },
78
+ "target": {
79
+ "description": "The target to delete.",
80
+ "type": "string"
81
+ }
82
+ }
83
+ },
84
+ "Evidence": {
85
+ "description": "Evidence supporting a finding.",
86
+ "type": "object",
87
+ "required": [
88
+ "description",
89
+ "kind"
90
+ ],
91
+ "properties": {
92
+ "description": {
93
+ "description": "Description of this evidence.",
94
+ "type": "string"
95
+ },
96
+ "file": {
97
+ "description": "File path involved.",
98
+ "type": [
99
+ "string",
100
+ "null"
101
+ ]
102
+ },
103
+ "kind": {
104
+ "description": "Type of evidence.",
105
+ "type": "string"
106
+ },
107
+ "line": {
108
+ "description": "Line number, if applicable.",
109
+ "type": [
110
+ "integer",
111
+ "null"
112
+ ],
113
+ "format": "uint",
114
+ "minimum": 0.0
115
+ }
116
+ }
117
+ },
118
+ "FindingConfidence": {
119
+ "type": "string",
120
+ "enum": [
121
+ "high",
122
+ "medium",
123
+ "low"
124
+ ]
125
+ },
126
+ "SafeDeleteCandidate": {
127
+ "description": "A candidate in a safe-delete evaluation.",
128
+ "type": "object",
129
+ "required": [
130
+ "classification",
131
+ "target"
132
+ ],
133
+ "properties": {
134
+ "classification": {
135
+ "description": "Explicit classification for this candidate.",
136
+ "allOf": [
137
+ {
138
+ "$ref": "#/definitions/SafeDeleteClassification"
139
+ }
140
+ ]
141
+ },
142
+ "confidence": {
143
+ "description": "Confidence in the safety assessment.",
144
+ "anyOf": [
145
+ {
146
+ "$ref": "#/definitions/FindingConfidence"
147
+ },
148
+ {
149
+ "type": "null"
150
+ }
151
+ ]
152
+ },
153
+ "evidence": {
154
+ "description": "Per-candidate evidence supporting the classification.",
155
+ "type": "array",
156
+ "items": {
157
+ "$ref": "#/definitions/Evidence"
158
+ }
159
+ },
160
+ "reasons": {
161
+ "description": "Reasons for the classification.",
162
+ "type": "array",
163
+ "items": {
164
+ "type": "string"
165
+ }
166
+ },
167
+ "target": {
168
+ "description": "The target file or export.",
169
+ "type": "string"
170
+ }
171
+ }
172
+ },
173
+ "SafeDeleteClassification": {
174
+ "description": "Explicit classification for a safe-delete candidate.",
175
+ "oneOf": [
176
+ {
177
+ "description": "Target is safe to delete without further review.",
178
+ "type": "string",
179
+ "enum": [
180
+ "safe"
181
+ ]
182
+ },
183
+ {
184
+ "description": "Target needs manual review before deletion.",
185
+ "type": "string",
186
+ "enum": [
187
+ "needs-review"
188
+ ]
189
+ },
190
+ {
191
+ "description": "Target must not be deleted.",
192
+ "type": "string",
193
+ "enum": [
194
+ "blocked"
195
+ ]
196
+ }
197
+ ]
198
+ }
199
+ }
200
+ }