agentrinse 0.3.0 → 0.5.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.
Files changed (179) hide show
  1. package/README.md +281 -179
  2. package/dist/adapters/claude-cache.d.ts +3 -0
  3. package/dist/adapters/claude-cache.d.ts.map +1 -0
  4. package/dist/adapters/claude-cache.js +67 -0
  5. package/dist/adapters/claude-cache.js.map +1 -0
  6. package/dist/adapters/claude-debug.d.ts +3 -0
  7. package/dist/adapters/claude-debug.d.ts.map +1 -0
  8. package/dist/adapters/claude-debug.js +100 -0
  9. package/dist/adapters/claude-debug.js.map +1 -0
  10. package/dist/adapters/claude-retention.d.ts +36 -0
  11. package/dist/adapters/claude-retention.d.ts.map +1 -0
  12. package/dist/adapters/claude-retention.js +176 -0
  13. package/dist/adapters/claude-retention.js.map +1 -0
  14. package/dist/adapters/codex-database.d.ts +64 -0
  15. package/dist/adapters/codex-database.d.ts.map +1 -0
  16. package/dist/adapters/codex-database.js +409 -0
  17. package/dist/adapters/codex-database.js.map +1 -0
  18. package/dist/adapters/copilot-maintenance.d.ts +23 -0
  19. package/dist/adapters/copilot-maintenance.d.ts.map +1 -0
  20. package/dist/adapters/copilot-maintenance.js +53 -0
  21. package/dist/adapters/copilot-maintenance.js.map +1 -0
  22. package/dist/adapters/provider-adapter.d.ts +5 -0
  23. package/dist/adapters/provider-adapter.d.ts.map +1 -1
  24. package/dist/adapters/provider-adapter.js +352 -6
  25. package/dist/adapters/provider-adapter.js.map +1 -1
  26. package/dist/adapters/provider-root.d.ts +8 -0
  27. package/dist/adapters/provider-root.d.ts.map +1 -0
  28. package/dist/adapters/provider-root.js +27 -0
  29. package/dist/adapters/provider-root.js.map +1 -0
  30. package/dist/adapters/provider-specs.d.ts.map +1 -1
  31. package/dist/adapters/provider-specs.js +25 -0
  32. package/dist/adapters/provider-specs.js.map +1 -1
  33. package/dist/adapters/registry.d.ts +1 -0
  34. package/dist/adapters/registry.d.ts.map +1 -1
  35. package/dist/adapters/registry.js +2 -0
  36. package/dist/adapters/registry.js.map +1 -1
  37. package/dist/commands/adapters.d.ts.map +1 -1
  38. package/dist/commands/adapters.js +3 -1
  39. package/dist/commands/adapters.js.map +1 -1
  40. package/dist/commands/apply.d.ts +2 -0
  41. package/dist/commands/apply.d.ts.map +1 -1
  42. package/dist/commands/apply.js +24 -3
  43. package/dist/commands/apply.js.map +1 -1
  44. package/dist/commands/audit.d.ts +1 -0
  45. package/dist/commands/audit.d.ts.map +1 -1
  46. package/dist/commands/audit.js +3 -1
  47. package/dist/commands/audit.js.map +1 -1
  48. package/dist/commands/completion.js +1 -1
  49. package/dist/commands/doctor.d.ts.map +1 -1
  50. package/dist/commands/doctor.js +34 -0
  51. package/dist/commands/doctor.js.map +1 -1
  52. package/dist/commands/plan.d.ts +2 -0
  53. package/dist/commands/plan.d.ts.map +1 -1
  54. package/dist/commands/plan.js +11 -1
  55. package/dist/commands/plan.js.map +1 -1
  56. package/dist/commands/purge.d.ts +13 -1
  57. package/dist/commands/purge.d.ts.map +1 -1
  58. package/dist/commands/purge.js +52 -6
  59. package/dist/commands/purge.js.map +1 -1
  60. package/dist/commands/show.d.ts.map +1 -1
  61. package/dist/commands/show.js +6 -0
  62. package/dist/commands/show.js.map +1 -1
  63. package/dist/commands/undo.d.ts +7 -1
  64. package/dist/commands/undo.d.ts.map +1 -1
  65. package/dist/commands/undo.js +38 -3
  66. package/dist/commands/undo.js.map +1 -1
  67. package/dist/contracts/action.d.ts +517 -2
  68. package/dist/contracts/action.d.ts.map +1 -1
  69. package/dist/contracts/action.js +101 -1
  70. package/dist/contracts/action.js.map +1 -1
  71. package/dist/contracts/database-backup.d.ts +192 -0
  72. package/dist/contracts/database-backup.d.ts.map +1 -0
  73. package/dist/contracts/database-backup.js +70 -0
  74. package/dist/contracts/database-backup.js.map +1 -0
  75. package/dist/contracts/finding.d.ts +208 -2
  76. package/dist/contracts/finding.d.ts.map +1 -1
  77. package/dist/contracts/plan.d.ts +207 -2
  78. package/dist/contracts/plan.d.ts.map +1 -1
  79. package/dist/contracts/plan.js +11 -2
  80. package/dist/contracts/plan.js.map +1 -1
  81. package/dist/contracts/provider-file-quarantine.d.ts +221 -0
  82. package/dist/contracts/provider-file-quarantine.d.ts.map +1 -0
  83. package/dist/contracts/provider-file-quarantine.js +61 -0
  84. package/dist/contracts/provider-file-quarantine.js.map +1 -0
  85. package/dist/contracts/report.d.ts +208 -2
  86. package/dist/contracts/report.d.ts.map +1 -1
  87. package/dist/contracts/resource.d.ts +3 -0
  88. package/dist/contracts/resource.d.ts.map +1 -1
  89. package/dist/contracts/resource.js +1 -0
  90. package/dist/contracts/resource.js.map +1 -1
  91. package/dist/contracts/run.d.ts +194 -0
  92. package/dist/contracts/run.d.ts.map +1 -1
  93. package/dist/contracts/run.js +16 -0
  94. package/dist/contracts/run.js.map +1 -1
  95. package/dist/core/apply.d.ts +9 -1
  96. package/dist/core/apply.d.ts.map +1 -1
  97. package/dist/core/apply.js +147 -4
  98. package/dist/core/apply.js.map +1 -1
  99. package/dist/core/database-exclusion.d.ts +23 -0
  100. package/dist/core/database-exclusion.d.ts.map +1 -0
  101. package/dist/core/database-exclusion.js +133 -0
  102. package/dist/core/database-exclusion.js.map +1 -0
  103. package/dist/core/database-executor.d.ts +45 -0
  104. package/dist/core/database-executor.d.ts.map +1 -0
  105. package/dist/core/database-executor.js +436 -0
  106. package/dist/core/database-executor.js.map +1 -0
  107. package/dist/core/database-recovery.d.ts +25 -0
  108. package/dist/core/database-recovery.d.ts.map +1 -0
  109. package/dist/core/database-recovery.js +628 -0
  110. package/dist/core/database-recovery.js.map +1 -0
  111. package/dist/core/database-revalidation.d.ts +19 -0
  112. package/dist/core/database-revalidation.d.ts.map +1 -0
  113. package/dist/core/database-revalidation.js +70 -0
  114. package/dist/core/database-revalidation.js.map +1 -0
  115. package/dist/core/no-clobber-rename.d.ts +2 -0
  116. package/dist/core/no-clobber-rename.d.ts.map +1 -1
  117. package/dist/core/no-clobber-rename.js +88 -0
  118. package/dist/core/no-clobber-rename.js.map +1 -1
  119. package/dist/core/pinned-file.d.ts +37 -0
  120. package/dist/core/pinned-file.d.ts.map +1 -0
  121. package/dist/core/pinned-file.js +228 -0
  122. package/dist/core/pinned-file.js.map +1 -0
  123. package/dist/core/plan.d.ts.map +1 -1
  124. package/dist/core/plan.js +4 -1
  125. package/dist/core/plan.js.map +1 -1
  126. package/dist/core/process-ownership.d.ts +1 -0
  127. package/dist/core/process-ownership.d.ts.map +1 -1
  128. package/dist/core/process-ownership.js +17 -3
  129. package/dist/core/process-ownership.js.map +1 -1
  130. package/dist/core/provider-file-executor.d.ts +40 -0
  131. package/dist/core/provider-file-executor.d.ts.map +1 -0
  132. package/dist/core/provider-file-executor.js +259 -0
  133. package/dist/core/provider-file-executor.js.map +1 -0
  134. package/dist/core/provider-file-identity.d.ts +8 -0
  135. package/dist/core/provider-file-identity.d.ts.map +1 -0
  136. package/dist/core/provider-file-identity.js +113 -0
  137. package/dist/core/provider-file-identity.js.map +1 -0
  138. package/dist/core/provider-file-policy.d.ts +19 -0
  139. package/dist/core/provider-file-policy.d.ts.map +1 -0
  140. package/dist/core/provider-file-policy.js +72 -0
  141. package/dist/core/provider-file-policy.js.map +1 -0
  142. package/dist/core/provider-file-recovery.d.ts +25 -0
  143. package/dist/core/provider-file-recovery.d.ts.map +1 -0
  144. package/dist/core/provider-file-recovery.js +393 -0
  145. package/dist/core/provider-file-recovery.js.map +1 -0
  146. package/dist/core/provider-file-revalidation.d.ts +20 -0
  147. package/dist/core/provider-file-revalidation.d.ts.map +1 -0
  148. package/dist/core/provider-file-revalidation.js +60 -0
  149. package/dist/core/provider-file-revalidation.js.map +1 -0
  150. package/dist/core/provider-processes.d.ts +18 -0
  151. package/dist/core/provider-processes.d.ts.map +1 -0
  152. package/dist/core/provider-processes.js +90 -0
  153. package/dist/core/provider-processes.js.map +1 -0
  154. package/dist/index.d.ts +4 -2
  155. package/dist/index.d.ts.map +1 -1
  156. package/dist/index.js +4 -2
  157. package/dist/index.js.map +1 -1
  158. package/dist/main.d.ts.map +1 -1
  159. package/dist/main.js +4 -1
  160. package/dist/main.js.map +1 -1
  161. package/dist/state/json-file.d.ts +2 -1
  162. package/dist/state/json-file.d.ts.map +1 -1
  163. package/dist/state/json-file.js +59 -2
  164. package/dist/state/json-file.js.map +1 -1
  165. package/dist/state/layout.d.ts +2 -0
  166. package/dist/state/layout.d.ts.map +1 -1
  167. package/dist/state/layout.js +2 -0
  168. package/dist/state/layout.js.map +1 -1
  169. package/dist/state/run-journal.d.ts.map +1 -1
  170. package/dist/state/run-journal.js +8 -2
  171. package/dist/state/run-journal.js.map +1 -1
  172. package/dist/version.d.ts +1 -1
  173. package/dist/version.js +1 -1
  174. package/package.json +1 -1
  175. package/schemas/audit.schema.json +1029 -1
  176. package/schemas/database-backup.schema.json +648 -0
  177. package/schemas/plan.schema.json +1014 -1
  178. package/schemas/provider-file-quarantine.schema.json +741 -0
  179. package/schemas/run.schema.json +180 -0
@@ -15,7 +15,7 @@ export declare const cleanupPlanSchema: z.ZodObject<{
15
15
  }>;
16
16
  configDigest: z.ZodString;
17
17
  auditDigest: z.ZodString;
18
- actions: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
18
+ actions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
19
19
  actionId: z.ZodString;
20
20
  type: z.ZodLiteral<"artifacts.remove">;
21
21
  adapter: z.ZodLiteral<"artifacts">;
@@ -67,7 +67,212 @@ export declare const cleanupPlanSchema: z.ZodObject<{
67
67
  newestMtimeMs: z.ZodNumber;
68
68
  fingerprint: z.ZodString;
69
69
  }, z.core.$strip>;
70
- }, z.core.$strip>], "type">>;
70
+ }, z.core.$strip>, z.ZodObject<{
71
+ actionId: z.ZodString;
72
+ type: z.ZodLiteral<"database.vacuum">;
73
+ adapter: z.ZodLiteral<"codex">;
74
+ resourceId: z.ZodString;
75
+ risk: z.ZodLiteral<"experimental">;
76
+ description: z.ZodString;
77
+ expectedReclaimBytes: z.ZodNumber;
78
+ backupTtlMinutes: z.ZodNumber;
79
+ target: z.ZodObject<{
80
+ path: z.ZodString;
81
+ database: z.ZodEnum<{
82
+ goals: "goals";
83
+ logs: "logs";
84
+ memories: "memories";
85
+ state: "state";
86
+ }>;
87
+ filename: z.ZodEnum<{
88
+ "goals_1.sqlite": "goals_1.sqlite";
89
+ "logs_2.sqlite": "logs_2.sqlite";
90
+ "memories_1.sqlite": "memories_1.sqlite";
91
+ "state_5.sqlite": "state_5.sqlite";
92
+ }>;
93
+ device: z.ZodNumber;
94
+ inode: z.ZodNumber;
95
+ mode: z.ZodNumber;
96
+ mtimeMs: z.ZodNumber;
97
+ measuredBytes: z.ZodNumber;
98
+ pageSize: z.ZodNumber;
99
+ pageCount: z.ZodNumber;
100
+ freelistCount: z.ZodNumber;
101
+ journalMode: z.ZodLiteral<"wal">;
102
+ autoVacuum: z.ZodNumber;
103
+ migrationVersion: z.ZodNumber;
104
+ migrationDigest: z.ZodString;
105
+ tables: z.ZodArray<z.ZodString>;
106
+ wal: z.ZodOptional<z.ZodObject<{
107
+ path: z.ZodString;
108
+ device: z.ZodNumber;
109
+ inode: z.ZodNumber;
110
+ mode: z.ZodNumber;
111
+ mtimeMs: z.ZodNumber;
112
+ measuredBytes: z.ZodNumber;
113
+ }, z.core.$strip>>;
114
+ shm: z.ZodOptional<z.ZodObject<{
115
+ path: z.ZodString;
116
+ device: z.ZodNumber;
117
+ inode: z.ZodNumber;
118
+ mode: z.ZodNumber;
119
+ mtimeMs: z.ZodNumber;
120
+ measuredBytes: z.ZodNumber;
121
+ }, z.core.$strip>>;
122
+ schemaDigest: z.ZodString;
123
+ fingerprint: z.ZodString;
124
+ }, z.core.$strip>;
125
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
126
+ actionId: z.ZodString;
127
+ type: z.ZodLiteral<"provider.file-quarantine">;
128
+ resourceId: z.ZodString;
129
+ policyId: z.ZodString;
130
+ risk: z.ZodLiteral<"recoverable">;
131
+ description: z.ZodString;
132
+ expectedReclaimBytes: z.ZodLiteral<0>;
133
+ pendingQuarantineBytes: z.ZodNumber;
134
+ quarantineTtlMinutes: z.ZodNumber;
135
+ adapter: z.ZodLiteral<"claude">;
136
+ target: z.ZodObject<{
137
+ path: z.ZodString;
138
+ ownerRoot: z.ZodString;
139
+ relativePath: z.ZodString;
140
+ device: z.ZodNumber;
141
+ inode: z.ZodNumber;
142
+ linkCount: z.ZodLiteral<1>;
143
+ mode: z.ZodNumber;
144
+ mtimeMs: z.ZodNumber;
145
+ measuredBytes: z.ZodNumber;
146
+ contentSha256: z.ZodString;
147
+ fingerprint: z.ZodString;
148
+ provider: z.ZodLiteral<"claude">;
149
+ }, z.core.$strip>;
150
+ }, z.core.$strip>, z.ZodObject<{
151
+ actionId: z.ZodString;
152
+ type: z.ZodLiteral<"provider.file-quarantine">;
153
+ resourceId: z.ZodString;
154
+ policyId: z.ZodString;
155
+ risk: z.ZodLiteral<"recoverable">;
156
+ description: z.ZodString;
157
+ expectedReclaimBytes: z.ZodLiteral<0>;
158
+ pendingQuarantineBytes: z.ZodNumber;
159
+ quarantineTtlMinutes: z.ZodNumber;
160
+ adapter: z.ZodLiteral<"cursor">;
161
+ target: z.ZodObject<{
162
+ path: z.ZodString;
163
+ ownerRoot: z.ZodString;
164
+ relativePath: z.ZodString;
165
+ device: z.ZodNumber;
166
+ inode: z.ZodNumber;
167
+ linkCount: z.ZodLiteral<1>;
168
+ mode: z.ZodNumber;
169
+ mtimeMs: z.ZodNumber;
170
+ measuredBytes: z.ZodNumber;
171
+ contentSha256: z.ZodString;
172
+ fingerprint: z.ZodString;
173
+ provider: z.ZodLiteral<"cursor">;
174
+ }, z.core.$strip>;
175
+ }, z.core.$strip>, z.ZodObject<{
176
+ actionId: z.ZodString;
177
+ type: z.ZodLiteral<"provider.file-quarantine">;
178
+ resourceId: z.ZodString;
179
+ policyId: z.ZodString;
180
+ risk: z.ZodLiteral<"recoverable">;
181
+ description: z.ZodString;
182
+ expectedReclaimBytes: z.ZodLiteral<0>;
183
+ pendingQuarantineBytes: z.ZodNumber;
184
+ quarantineTtlMinutes: z.ZodNumber;
185
+ adapter: z.ZodLiteral<"copilot">;
186
+ target: z.ZodObject<{
187
+ path: z.ZodString;
188
+ ownerRoot: z.ZodString;
189
+ relativePath: z.ZodString;
190
+ device: z.ZodNumber;
191
+ inode: z.ZodNumber;
192
+ linkCount: z.ZodLiteral<1>;
193
+ mode: z.ZodNumber;
194
+ mtimeMs: z.ZodNumber;
195
+ measuredBytes: z.ZodNumber;
196
+ contentSha256: z.ZodString;
197
+ fingerprint: z.ZodString;
198
+ provider: z.ZodLiteral<"copilot">;
199
+ }, z.core.$strip>;
200
+ }, z.core.$strip>, z.ZodObject<{
201
+ actionId: z.ZodString;
202
+ type: z.ZodLiteral<"provider.file-quarantine">;
203
+ resourceId: z.ZodString;
204
+ policyId: z.ZodString;
205
+ risk: z.ZodLiteral<"recoverable">;
206
+ description: z.ZodString;
207
+ expectedReclaimBytes: z.ZodLiteral<0>;
208
+ pendingQuarantineBytes: z.ZodNumber;
209
+ quarantineTtlMinutes: z.ZodNumber;
210
+ adapter: z.ZodLiteral<"zed">;
211
+ target: z.ZodObject<{
212
+ path: z.ZodString;
213
+ ownerRoot: z.ZodString;
214
+ relativePath: z.ZodString;
215
+ device: z.ZodNumber;
216
+ inode: z.ZodNumber;
217
+ linkCount: z.ZodLiteral<1>;
218
+ mode: z.ZodNumber;
219
+ mtimeMs: z.ZodNumber;
220
+ measuredBytes: z.ZodNumber;
221
+ contentSha256: z.ZodString;
222
+ fingerprint: z.ZodString;
223
+ provider: z.ZodLiteral<"zed">;
224
+ }, z.core.$strip>;
225
+ }, z.core.$strip>, z.ZodObject<{
226
+ actionId: z.ZodString;
227
+ type: z.ZodLiteral<"provider.file-quarantine">;
228
+ resourceId: z.ZodString;
229
+ policyId: z.ZodString;
230
+ risk: z.ZodLiteral<"recoverable">;
231
+ description: z.ZodString;
232
+ expectedReclaimBytes: z.ZodLiteral<0>;
233
+ pendingQuarantineBytes: z.ZodNumber;
234
+ quarantineTtlMinutes: z.ZodNumber;
235
+ adapter: z.ZodLiteral<"opencode">;
236
+ target: z.ZodObject<{
237
+ path: z.ZodString;
238
+ ownerRoot: z.ZodString;
239
+ relativePath: z.ZodString;
240
+ device: z.ZodNumber;
241
+ inode: z.ZodNumber;
242
+ linkCount: z.ZodLiteral<1>;
243
+ mode: z.ZodNumber;
244
+ mtimeMs: z.ZodNumber;
245
+ measuredBytes: z.ZodNumber;
246
+ contentSha256: z.ZodString;
247
+ fingerprint: z.ZodString;
248
+ provider: z.ZodLiteral<"opencode">;
249
+ }, z.core.$strip>;
250
+ }, z.core.$strip>, z.ZodObject<{
251
+ actionId: z.ZodString;
252
+ type: z.ZodLiteral<"provider.file-quarantine">;
253
+ resourceId: z.ZodString;
254
+ policyId: z.ZodString;
255
+ risk: z.ZodLiteral<"recoverable">;
256
+ description: z.ZodString;
257
+ expectedReclaimBytes: z.ZodLiteral<0>;
258
+ pendingQuarantineBytes: z.ZodNumber;
259
+ quarantineTtlMinutes: z.ZodNumber;
260
+ adapter: z.ZodLiteral<"grok">;
261
+ target: z.ZodObject<{
262
+ path: z.ZodString;
263
+ ownerRoot: z.ZodString;
264
+ relativePath: z.ZodString;
265
+ device: z.ZodNumber;
266
+ inode: z.ZodNumber;
267
+ linkCount: z.ZodLiteral<1>;
268
+ mode: z.ZodNumber;
269
+ mtimeMs: z.ZodNumber;
270
+ measuredBytes: z.ZodNumber;
271
+ contentSha256: z.ZodString;
272
+ fingerprint: z.ZodString;
273
+ provider: z.ZodLiteral<"grok">;
274
+ }, z.core.$strip>;
275
+ }, z.core.$strip>], "adapter">]>>;
71
276
  expectedReclaimBytes: z.ZodNumber;
72
277
  pendingQuarantineBytes: z.ZodOptional<z.ZodNumber>;
73
278
  }, z.core.$strip>;
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/contracts/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0E1B,CAAC;AAEL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/contracts/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsF1B,CAAC;AAEL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -38,7 +38,7 @@ export const cleanupPlanSchema = z
38
38
  });
39
39
  }
40
40
  targetPaths.add(action.target.path);
41
- if (action.type === "worktree.quarantine") {
41
+ if (action.type === "worktree.quarantine" || action.type === "provider.file-quarantine") {
42
42
  if (action.pendingQuarantineBytes !== action.target.measuredBytes) {
43
43
  context.addIssue({
44
44
  code: "custom",
@@ -48,13 +48,22 @@ export const cleanupPlanSchema = z
48
48
  }
49
49
  pendingQuarantineBytes += action.pendingQuarantineBytes;
50
50
  }
51
- else if (action.expectedReclaimBytes !== action.target.measuredBytes) {
51
+ else if (action.type === "artifacts.remove" &&
52
+ action.expectedReclaimBytes !== action.target.measuredBytes) {
52
53
  context.addIssue({
53
54
  code: "custom",
54
55
  message: "action reclaim estimate must match the measured target bytes",
55
56
  path: ["actions", index, "expectedReclaimBytes"],
56
57
  });
57
58
  }
59
+ else if (action.type === "database.vacuum" &&
60
+ action.expectedReclaimBytes > action.target.measuredBytes) {
61
+ context.addIssue({
62
+ code: "custom",
63
+ message: "database reclaim estimate cannot exceed the database size",
64
+ path: ["actions", index, "expectedReclaimBytes"],
65
+ });
66
+ }
58
67
  expectedReclaimBytes += action.expectedReclaimBytes;
59
68
  }
60
69
  if (expectedReclaimBytes !== plan.expectedReclaimBytes) {
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/contracts/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/contracts/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,221 @@
1
+ import { z } from "zod";
2
+ export declare const providerFileQuarantineStatusSchema: z.ZodEnum<{
3
+ partial: "partial";
4
+ preparing: "preparing";
5
+ purged: "purged";
6
+ purging: "purging";
7
+ quarantined: "quarantined";
8
+ restored: "restored";
9
+ restoring: "restoring";
10
+ }>;
11
+ export declare const providerFileQuarantineEntrySchema: z.ZodIntersection<z.ZodObject<{
12
+ schemaVersion: z.ZodLiteral<1>;
13
+ entryId: z.ZodString;
14
+ runId: z.ZodString;
15
+ actionId: z.ZodString;
16
+ resourceId: z.ZodString;
17
+ policyId: z.ZodString;
18
+ originalPath: z.ZodString;
19
+ quarantinePath: z.ZodString;
20
+ createdAt: z.ZodString;
21
+ expiresAt: z.ZodString;
22
+ target: z.ZodObject<{
23
+ path: z.ZodString;
24
+ ownerRoot: z.ZodString;
25
+ relativePath: z.ZodString;
26
+ provider: z.ZodEnum<{
27
+ claude: "claude";
28
+ copilot: "copilot";
29
+ cursor: "cursor";
30
+ grok: "grok";
31
+ opencode: "opencode";
32
+ zed: "zed";
33
+ }>;
34
+ device: z.ZodNumber;
35
+ inode: z.ZodNumber;
36
+ linkCount: z.ZodLiteral<1>;
37
+ mode: z.ZodNumber;
38
+ mtimeMs: z.ZodNumber;
39
+ measuredBytes: z.ZodNumber;
40
+ contentSha256: z.ZodString;
41
+ fingerprint: z.ZodString;
42
+ }, z.core.$strip>;
43
+ restoredAt: z.ZodOptional<z.ZodString>;
44
+ purgedAt: z.ZodOptional<z.ZodString>;
45
+ diagnostic: z.ZodOptional<z.ZodObject<{
46
+ severity: z.ZodEnum<{
47
+ error: "error";
48
+ info: "info";
49
+ warning: "warning";
50
+ }>;
51
+ code: z.ZodString;
52
+ message: z.ZodString;
53
+ adapter: z.ZodOptional<z.ZodString>;
54
+ resourceId: z.ZodOptional<z.ZodString>;
55
+ remediation: z.ZodOptional<z.ZodString>;
56
+ }, z.core.$strip>>;
57
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
58
+ status: z.ZodLiteral<"preparing">;
59
+ quarantineIdentity: z.ZodOptional<z.ZodObject<{
60
+ path: z.ZodString;
61
+ ownerRoot: z.ZodString;
62
+ relativePath: z.ZodString;
63
+ provider: z.ZodEnum<{
64
+ claude: "claude";
65
+ copilot: "copilot";
66
+ cursor: "cursor";
67
+ grok: "grok";
68
+ opencode: "opencode";
69
+ zed: "zed";
70
+ }>;
71
+ device: z.ZodNumber;
72
+ inode: z.ZodNumber;
73
+ linkCount: z.ZodLiteral<1>;
74
+ mode: z.ZodNumber;
75
+ mtimeMs: z.ZodNumber;
76
+ measuredBytes: z.ZodNumber;
77
+ contentSha256: z.ZodString;
78
+ fingerprint: z.ZodString;
79
+ }, z.core.$strip>>;
80
+ }, z.core.$strip>, z.ZodObject<{
81
+ status: z.ZodLiteral<"quarantined">;
82
+ quarantineIdentity: z.ZodObject<{
83
+ path: z.ZodString;
84
+ ownerRoot: z.ZodString;
85
+ relativePath: z.ZodString;
86
+ provider: z.ZodEnum<{
87
+ claude: "claude";
88
+ copilot: "copilot";
89
+ cursor: "cursor";
90
+ grok: "grok";
91
+ opencode: "opencode";
92
+ zed: "zed";
93
+ }>;
94
+ device: z.ZodNumber;
95
+ inode: z.ZodNumber;
96
+ linkCount: z.ZodLiteral<1>;
97
+ mode: z.ZodNumber;
98
+ mtimeMs: z.ZodNumber;
99
+ measuredBytes: z.ZodNumber;
100
+ contentSha256: z.ZodString;
101
+ fingerprint: z.ZodString;
102
+ }, z.core.$strip>;
103
+ }, z.core.$strip>, z.ZodObject<{
104
+ status: z.ZodLiteral<"restoring">;
105
+ quarantineIdentity: z.ZodObject<{
106
+ path: z.ZodString;
107
+ ownerRoot: z.ZodString;
108
+ relativePath: z.ZodString;
109
+ provider: z.ZodEnum<{
110
+ claude: "claude";
111
+ copilot: "copilot";
112
+ cursor: "cursor";
113
+ grok: "grok";
114
+ opencode: "opencode";
115
+ zed: "zed";
116
+ }>;
117
+ device: z.ZodNumber;
118
+ inode: z.ZodNumber;
119
+ linkCount: z.ZodLiteral<1>;
120
+ mode: z.ZodNumber;
121
+ mtimeMs: z.ZodNumber;
122
+ measuredBytes: z.ZodNumber;
123
+ contentSha256: z.ZodString;
124
+ fingerprint: z.ZodString;
125
+ }, z.core.$strip>;
126
+ }, z.core.$strip>, z.ZodObject<{
127
+ status: z.ZodLiteral<"restored">;
128
+ quarantineIdentity: z.ZodOptional<z.ZodObject<{
129
+ path: z.ZodString;
130
+ ownerRoot: z.ZodString;
131
+ relativePath: z.ZodString;
132
+ provider: z.ZodEnum<{
133
+ claude: "claude";
134
+ copilot: "copilot";
135
+ cursor: "cursor";
136
+ grok: "grok";
137
+ opencode: "opencode";
138
+ zed: "zed";
139
+ }>;
140
+ device: z.ZodNumber;
141
+ inode: z.ZodNumber;
142
+ linkCount: z.ZodLiteral<1>;
143
+ mode: z.ZodNumber;
144
+ mtimeMs: z.ZodNumber;
145
+ measuredBytes: z.ZodNumber;
146
+ contentSha256: z.ZodString;
147
+ fingerprint: z.ZodString;
148
+ }, z.core.$strip>>;
149
+ }, z.core.$strip>, z.ZodObject<{
150
+ status: z.ZodLiteral<"purging">;
151
+ quarantineIdentity: z.ZodObject<{
152
+ path: z.ZodString;
153
+ ownerRoot: z.ZodString;
154
+ relativePath: z.ZodString;
155
+ provider: z.ZodEnum<{
156
+ claude: "claude";
157
+ copilot: "copilot";
158
+ cursor: "cursor";
159
+ grok: "grok";
160
+ opencode: "opencode";
161
+ zed: "zed";
162
+ }>;
163
+ device: z.ZodNumber;
164
+ inode: z.ZodNumber;
165
+ linkCount: z.ZodLiteral<1>;
166
+ mode: z.ZodNumber;
167
+ mtimeMs: z.ZodNumber;
168
+ measuredBytes: z.ZodNumber;
169
+ contentSha256: z.ZodString;
170
+ fingerprint: z.ZodString;
171
+ }, z.core.$strip>;
172
+ }, z.core.$strip>, z.ZodObject<{
173
+ status: z.ZodLiteral<"purged">;
174
+ quarantineIdentity: z.ZodOptional<z.ZodObject<{
175
+ path: z.ZodString;
176
+ ownerRoot: z.ZodString;
177
+ relativePath: z.ZodString;
178
+ provider: z.ZodEnum<{
179
+ claude: "claude";
180
+ copilot: "copilot";
181
+ cursor: "cursor";
182
+ grok: "grok";
183
+ opencode: "opencode";
184
+ zed: "zed";
185
+ }>;
186
+ device: z.ZodNumber;
187
+ inode: z.ZodNumber;
188
+ linkCount: z.ZodLiteral<1>;
189
+ mode: z.ZodNumber;
190
+ mtimeMs: z.ZodNumber;
191
+ measuredBytes: z.ZodNumber;
192
+ contentSha256: z.ZodString;
193
+ fingerprint: z.ZodString;
194
+ }, z.core.$strip>>;
195
+ }, z.core.$strip>, z.ZodObject<{
196
+ status: z.ZodLiteral<"partial">;
197
+ quarantineIdentity: z.ZodObject<{
198
+ path: z.ZodString;
199
+ ownerRoot: z.ZodString;
200
+ relativePath: z.ZodString;
201
+ provider: z.ZodEnum<{
202
+ claude: "claude";
203
+ copilot: "copilot";
204
+ cursor: "cursor";
205
+ grok: "grok";
206
+ opencode: "opencode";
207
+ zed: "zed";
208
+ }>;
209
+ device: z.ZodNumber;
210
+ inode: z.ZodNumber;
211
+ linkCount: z.ZodLiteral<1>;
212
+ mode: z.ZodNumber;
213
+ mtimeMs: z.ZodNumber;
214
+ measuredBytes: z.ZodNumber;
215
+ contentSha256: z.ZodString;
216
+ fingerprint: z.ZodString;
217
+ }, z.core.$strip>;
218
+ }, z.core.$strip>], "status">>;
219
+ export type ProviderFileQuarantineStatus = z.infer<typeof providerFileQuarantineStatusSchema>;
220
+ export type ProviderFileQuarantineEntry = z.infer<typeof providerFileQuarantineEntrySchema>;
221
+ //# sourceMappingURL=provider-file-quarantine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-file-quarantine.d.ts","sourceRoot":"","sources":["../../src/contracts/provider-file-quarantine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,kCAAkC;;;;;;;;EAQ7C,CAAC;AAkDH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAE7C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { z } from "zod";
2
+ import { providerFileIdentitySchema } from "./action.js";
3
+ import { diagnosticSchema } from "./diagnostic.js";
4
+ import { quarantineEntryIdSchema } from "./quarantine.js";
5
+ export const providerFileQuarantineStatusSchema = z.enum([
6
+ "preparing",
7
+ "quarantined",
8
+ "restoring",
9
+ "restored",
10
+ "purging",
11
+ "purged",
12
+ "partial",
13
+ ]);
14
+ const providerFileQuarantineEntryBaseSchema = z.object({
15
+ schemaVersion: z.literal(1),
16
+ entryId: quarantineEntryIdSchema,
17
+ runId: quarantineEntryIdSchema,
18
+ actionId: z.string().min(1),
19
+ resourceId: z.string().min(1),
20
+ policyId: z.string().regex(/^[a-z0-9][a-z0-9.-]*$/u),
21
+ originalPath: z.string().min(1),
22
+ quarantinePath: z.string().min(1),
23
+ createdAt: z.string().datetime(),
24
+ expiresAt: z.string().datetime(),
25
+ target: providerFileIdentitySchema,
26
+ restoredAt: z.string().datetime().optional(),
27
+ purgedAt: z.string().datetime().optional(),
28
+ diagnostic: diagnosticSchema.optional(),
29
+ });
30
+ const providerFileQuarantineStateSchema = z.discriminatedUnion("status", [
31
+ z.object({
32
+ status: z.literal("preparing"),
33
+ quarantineIdentity: providerFileIdentitySchema.optional(),
34
+ }),
35
+ z.object({
36
+ status: z.literal("quarantined"),
37
+ quarantineIdentity: providerFileIdentitySchema,
38
+ }),
39
+ z.object({
40
+ status: z.literal("restoring"),
41
+ quarantineIdentity: providerFileIdentitySchema,
42
+ }),
43
+ z.object({
44
+ status: z.literal("restored"),
45
+ quarantineIdentity: providerFileIdentitySchema.optional(),
46
+ }),
47
+ z.object({
48
+ status: z.literal("purging"),
49
+ quarantineIdentity: providerFileIdentitySchema,
50
+ }),
51
+ z.object({
52
+ status: z.literal("purged"),
53
+ quarantineIdentity: providerFileIdentitySchema.optional(),
54
+ }),
55
+ z.object({
56
+ status: z.literal("partial"),
57
+ quarantineIdentity: providerFileIdentitySchema,
58
+ }),
59
+ ]);
60
+ export const providerFileQuarantineEntrySchema = providerFileQuarantineEntryBaseSchema.and(providerFileQuarantineStateSchema);
61
+ //# sourceMappingURL=provider-file-quarantine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-file-quarantine.js","sourceRoot":"","sources":["../../src/contracts/provider-file-quarantine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,IAAI,CAAC;IACvD,WAAW;IACX,aAAa;IACb,WAAW;IACX,UAAU;IACV,SAAS;IACT,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE,uBAAuB;IAChC,KAAK,EAAE,uBAAuB;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC;IACpD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,0BAA0B;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEH,MAAM,iCAAiC,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACvE,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9B,kBAAkB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;KAC1D,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAChC,kBAAkB,EAAE,0BAA0B;KAC/C,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QAC9B,kBAAkB,EAAE,0BAA0B;KAC/C,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC7B,kBAAkB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;KAC1D,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5B,kBAAkB,EAAE,0BAA0B;KAC/C,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3B,kBAAkB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;KAC1D,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5B,kBAAkB,EAAE,0BAA0B;KAC/C,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,qCAAqC,CAAC,GAAG,CACxF,iCAAiC,CAClC,CAAC"}