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
@@ -47,7 +47,7 @@
47
47
  "actions": {
48
48
  "type": "array",
49
49
  "items": {
50
- "oneOf": [
50
+ "anyOf": [
51
51
  {
52
52
  "type": "object",
53
53
  "properties": {
@@ -267,6 +267,1019 @@
267
267
  "quarantineTtlMinutes",
268
268
  "target"
269
269
  ]
270
+ },
271
+ {
272
+ "type": "object",
273
+ "properties": {
274
+ "actionId": {
275
+ "type": "string",
276
+ "minLength": 1
277
+ },
278
+ "type": {
279
+ "type": "string",
280
+ "const": "database.vacuum"
281
+ },
282
+ "adapter": {
283
+ "type": "string",
284
+ "const": "codex"
285
+ },
286
+ "resourceId": {
287
+ "type": "string",
288
+ "minLength": 1
289
+ },
290
+ "risk": {
291
+ "type": "string",
292
+ "const": "experimental"
293
+ },
294
+ "description": {
295
+ "type": "string",
296
+ "minLength": 1
297
+ },
298
+ "expectedReclaimBytes": {
299
+ "type": "integer",
300
+ "exclusiveMinimum": 0,
301
+ "maximum": 9007199254740991
302
+ },
303
+ "backupTtlMinutes": {
304
+ "type": "integer",
305
+ "exclusiveMinimum": 0,
306
+ "maximum": 9007199254740991
307
+ },
308
+ "target": {
309
+ "type": "object",
310
+ "properties": {
311
+ "path": {
312
+ "type": "string",
313
+ "minLength": 1
314
+ },
315
+ "database": {
316
+ "type": "string",
317
+ "enum": ["state", "logs", "goals", "memories"]
318
+ },
319
+ "filename": {
320
+ "type": "string",
321
+ "enum": [
322
+ "state_5.sqlite",
323
+ "logs_2.sqlite",
324
+ "goals_1.sqlite",
325
+ "memories_1.sqlite"
326
+ ]
327
+ },
328
+ "device": {
329
+ "type": "integer",
330
+ "minimum": 0,
331
+ "maximum": 9007199254740991
332
+ },
333
+ "inode": {
334
+ "type": "integer",
335
+ "minimum": 0,
336
+ "maximum": 9007199254740991
337
+ },
338
+ "mode": {
339
+ "type": "integer",
340
+ "minimum": 0,
341
+ "maximum": 9007199254740991
342
+ },
343
+ "mtimeMs": {
344
+ "type": "number"
345
+ },
346
+ "measuredBytes": {
347
+ "type": "integer",
348
+ "minimum": 0,
349
+ "maximum": 9007199254740991
350
+ },
351
+ "pageSize": {
352
+ "type": "integer",
353
+ "exclusiveMinimum": 0,
354
+ "maximum": 9007199254740991
355
+ },
356
+ "pageCount": {
357
+ "type": "integer",
358
+ "minimum": 0,
359
+ "maximum": 9007199254740991
360
+ },
361
+ "freelistCount": {
362
+ "type": "integer",
363
+ "minimum": 0,
364
+ "maximum": 9007199254740991
365
+ },
366
+ "journalMode": {
367
+ "type": "string",
368
+ "const": "wal"
369
+ },
370
+ "autoVacuum": {
371
+ "type": "integer",
372
+ "minimum": 0,
373
+ "maximum": 2
374
+ },
375
+ "migrationVersion": {
376
+ "type": "integer",
377
+ "minimum": 0,
378
+ "maximum": 9007199254740991
379
+ },
380
+ "migrationDigest": {
381
+ "type": "string",
382
+ "pattern": "^[a-f0-9]{64}$"
383
+ },
384
+ "tables": {
385
+ "type": "array",
386
+ "items": {
387
+ "type": "string",
388
+ "minLength": 1
389
+ }
390
+ },
391
+ "wal": {
392
+ "type": "object",
393
+ "properties": {
394
+ "path": {
395
+ "type": "string",
396
+ "minLength": 1
397
+ },
398
+ "device": {
399
+ "type": "integer",
400
+ "minimum": 0,
401
+ "maximum": 9007199254740991
402
+ },
403
+ "inode": {
404
+ "type": "integer",
405
+ "minimum": 0,
406
+ "maximum": 9007199254740991
407
+ },
408
+ "mode": {
409
+ "type": "integer",
410
+ "minimum": 0,
411
+ "maximum": 9007199254740991
412
+ },
413
+ "mtimeMs": {
414
+ "type": "number"
415
+ },
416
+ "measuredBytes": {
417
+ "type": "integer",
418
+ "minimum": 0,
419
+ "maximum": 9007199254740991
420
+ }
421
+ },
422
+ "required": ["path", "device", "inode", "mode", "mtimeMs", "measuredBytes"]
423
+ },
424
+ "shm": {
425
+ "type": "object",
426
+ "properties": {
427
+ "path": {
428
+ "type": "string",
429
+ "minLength": 1
430
+ },
431
+ "device": {
432
+ "type": "integer",
433
+ "minimum": 0,
434
+ "maximum": 9007199254740991
435
+ },
436
+ "inode": {
437
+ "type": "integer",
438
+ "minimum": 0,
439
+ "maximum": 9007199254740991
440
+ },
441
+ "mode": {
442
+ "type": "integer",
443
+ "minimum": 0,
444
+ "maximum": 9007199254740991
445
+ },
446
+ "mtimeMs": {
447
+ "type": "number"
448
+ },
449
+ "measuredBytes": {
450
+ "type": "integer",
451
+ "minimum": 0,
452
+ "maximum": 9007199254740991
453
+ }
454
+ },
455
+ "required": ["path", "device", "inode", "mode", "mtimeMs", "measuredBytes"]
456
+ },
457
+ "schemaDigest": {
458
+ "type": "string",
459
+ "pattern": "^[a-f0-9]{64}$"
460
+ },
461
+ "fingerprint": {
462
+ "type": "string",
463
+ "pattern": "^[a-f0-9]{64}$"
464
+ }
465
+ },
466
+ "required": [
467
+ "path",
468
+ "database",
469
+ "filename",
470
+ "device",
471
+ "inode",
472
+ "mode",
473
+ "mtimeMs",
474
+ "measuredBytes",
475
+ "pageSize",
476
+ "pageCount",
477
+ "freelistCount",
478
+ "journalMode",
479
+ "autoVacuum",
480
+ "migrationVersion",
481
+ "migrationDigest",
482
+ "tables",
483
+ "schemaDigest",
484
+ "fingerprint"
485
+ ]
486
+ }
487
+ },
488
+ "required": [
489
+ "actionId",
490
+ "type",
491
+ "adapter",
492
+ "resourceId",
493
+ "risk",
494
+ "description",
495
+ "expectedReclaimBytes",
496
+ "backupTtlMinutes",
497
+ "target"
498
+ ]
499
+ },
500
+ {
501
+ "oneOf": [
502
+ {
503
+ "type": "object",
504
+ "properties": {
505
+ "actionId": {
506
+ "type": "string",
507
+ "minLength": 1
508
+ },
509
+ "type": {
510
+ "type": "string",
511
+ "const": "provider.file-quarantine"
512
+ },
513
+ "resourceId": {
514
+ "type": "string",
515
+ "minLength": 1
516
+ },
517
+ "policyId": {
518
+ "type": "string",
519
+ "pattern": "^[a-z0-9][a-z0-9.-]*$"
520
+ },
521
+ "risk": {
522
+ "type": "string",
523
+ "const": "recoverable"
524
+ },
525
+ "description": {
526
+ "type": "string",
527
+ "minLength": 1
528
+ },
529
+ "expectedReclaimBytes": {
530
+ "type": "number",
531
+ "const": 0
532
+ },
533
+ "pendingQuarantineBytes": {
534
+ "type": "integer",
535
+ "minimum": 0,
536
+ "maximum": 9007199254740991
537
+ },
538
+ "quarantineTtlMinutes": {
539
+ "type": "integer",
540
+ "exclusiveMinimum": 0,
541
+ "maximum": 9007199254740991
542
+ },
543
+ "adapter": {
544
+ "type": "string",
545
+ "const": "claude"
546
+ },
547
+ "target": {
548
+ "type": "object",
549
+ "properties": {
550
+ "path": {
551
+ "type": "string",
552
+ "minLength": 1
553
+ },
554
+ "ownerRoot": {
555
+ "type": "string",
556
+ "minLength": 1
557
+ },
558
+ "relativePath": {
559
+ "type": "string",
560
+ "minLength": 1
561
+ },
562
+ "provider": {
563
+ "type": "string",
564
+ "const": "claude"
565
+ },
566
+ "device": {
567
+ "type": "integer",
568
+ "minimum": 0,
569
+ "maximum": 9007199254740991
570
+ },
571
+ "inode": {
572
+ "type": "integer",
573
+ "minimum": 0,
574
+ "maximum": 9007199254740991
575
+ },
576
+ "linkCount": {
577
+ "type": "number",
578
+ "const": 1
579
+ },
580
+ "mode": {
581
+ "type": "integer",
582
+ "minimum": 0,
583
+ "maximum": 9007199254740991
584
+ },
585
+ "mtimeMs": {
586
+ "type": "number"
587
+ },
588
+ "measuredBytes": {
589
+ "type": "integer",
590
+ "minimum": 0,
591
+ "maximum": 9007199254740991
592
+ },
593
+ "contentSha256": {
594
+ "type": "string",
595
+ "pattern": "^[a-f0-9]{64}$"
596
+ },
597
+ "fingerprint": {
598
+ "type": "string",
599
+ "pattern": "^[a-f0-9]{64}$"
600
+ }
601
+ },
602
+ "required": [
603
+ "path",
604
+ "ownerRoot",
605
+ "relativePath",
606
+ "provider",
607
+ "device",
608
+ "inode",
609
+ "linkCount",
610
+ "mode",
611
+ "mtimeMs",
612
+ "measuredBytes",
613
+ "contentSha256",
614
+ "fingerprint"
615
+ ]
616
+ }
617
+ },
618
+ "required": [
619
+ "actionId",
620
+ "type",
621
+ "resourceId",
622
+ "policyId",
623
+ "risk",
624
+ "description",
625
+ "expectedReclaimBytes",
626
+ "pendingQuarantineBytes",
627
+ "quarantineTtlMinutes",
628
+ "adapter",
629
+ "target"
630
+ ]
631
+ },
632
+ {
633
+ "type": "object",
634
+ "properties": {
635
+ "actionId": {
636
+ "type": "string",
637
+ "minLength": 1
638
+ },
639
+ "type": {
640
+ "type": "string",
641
+ "const": "provider.file-quarantine"
642
+ },
643
+ "resourceId": {
644
+ "type": "string",
645
+ "minLength": 1
646
+ },
647
+ "policyId": {
648
+ "type": "string",
649
+ "pattern": "^[a-z0-9][a-z0-9.-]*$"
650
+ },
651
+ "risk": {
652
+ "type": "string",
653
+ "const": "recoverable"
654
+ },
655
+ "description": {
656
+ "type": "string",
657
+ "minLength": 1
658
+ },
659
+ "expectedReclaimBytes": {
660
+ "type": "number",
661
+ "const": 0
662
+ },
663
+ "pendingQuarantineBytes": {
664
+ "type": "integer",
665
+ "minimum": 0,
666
+ "maximum": 9007199254740991
667
+ },
668
+ "quarantineTtlMinutes": {
669
+ "type": "integer",
670
+ "exclusiveMinimum": 0,
671
+ "maximum": 9007199254740991
672
+ },
673
+ "adapter": {
674
+ "type": "string",
675
+ "const": "cursor"
676
+ },
677
+ "target": {
678
+ "type": "object",
679
+ "properties": {
680
+ "path": {
681
+ "type": "string",
682
+ "minLength": 1
683
+ },
684
+ "ownerRoot": {
685
+ "type": "string",
686
+ "minLength": 1
687
+ },
688
+ "relativePath": {
689
+ "type": "string",
690
+ "minLength": 1
691
+ },
692
+ "provider": {
693
+ "type": "string",
694
+ "const": "cursor"
695
+ },
696
+ "device": {
697
+ "type": "integer",
698
+ "minimum": 0,
699
+ "maximum": 9007199254740991
700
+ },
701
+ "inode": {
702
+ "type": "integer",
703
+ "minimum": 0,
704
+ "maximum": 9007199254740991
705
+ },
706
+ "linkCount": {
707
+ "type": "number",
708
+ "const": 1
709
+ },
710
+ "mode": {
711
+ "type": "integer",
712
+ "minimum": 0,
713
+ "maximum": 9007199254740991
714
+ },
715
+ "mtimeMs": {
716
+ "type": "number"
717
+ },
718
+ "measuredBytes": {
719
+ "type": "integer",
720
+ "minimum": 0,
721
+ "maximum": 9007199254740991
722
+ },
723
+ "contentSha256": {
724
+ "type": "string",
725
+ "pattern": "^[a-f0-9]{64}$"
726
+ },
727
+ "fingerprint": {
728
+ "type": "string",
729
+ "pattern": "^[a-f0-9]{64}$"
730
+ }
731
+ },
732
+ "required": [
733
+ "path",
734
+ "ownerRoot",
735
+ "relativePath",
736
+ "provider",
737
+ "device",
738
+ "inode",
739
+ "linkCount",
740
+ "mode",
741
+ "mtimeMs",
742
+ "measuredBytes",
743
+ "contentSha256",
744
+ "fingerprint"
745
+ ]
746
+ }
747
+ },
748
+ "required": [
749
+ "actionId",
750
+ "type",
751
+ "resourceId",
752
+ "policyId",
753
+ "risk",
754
+ "description",
755
+ "expectedReclaimBytes",
756
+ "pendingQuarantineBytes",
757
+ "quarantineTtlMinutes",
758
+ "adapter",
759
+ "target"
760
+ ]
761
+ },
762
+ {
763
+ "type": "object",
764
+ "properties": {
765
+ "actionId": {
766
+ "type": "string",
767
+ "minLength": 1
768
+ },
769
+ "type": {
770
+ "type": "string",
771
+ "const": "provider.file-quarantine"
772
+ },
773
+ "resourceId": {
774
+ "type": "string",
775
+ "minLength": 1
776
+ },
777
+ "policyId": {
778
+ "type": "string",
779
+ "pattern": "^[a-z0-9][a-z0-9.-]*$"
780
+ },
781
+ "risk": {
782
+ "type": "string",
783
+ "const": "recoverable"
784
+ },
785
+ "description": {
786
+ "type": "string",
787
+ "minLength": 1
788
+ },
789
+ "expectedReclaimBytes": {
790
+ "type": "number",
791
+ "const": 0
792
+ },
793
+ "pendingQuarantineBytes": {
794
+ "type": "integer",
795
+ "minimum": 0,
796
+ "maximum": 9007199254740991
797
+ },
798
+ "quarantineTtlMinutes": {
799
+ "type": "integer",
800
+ "exclusiveMinimum": 0,
801
+ "maximum": 9007199254740991
802
+ },
803
+ "adapter": {
804
+ "type": "string",
805
+ "const": "copilot"
806
+ },
807
+ "target": {
808
+ "type": "object",
809
+ "properties": {
810
+ "path": {
811
+ "type": "string",
812
+ "minLength": 1
813
+ },
814
+ "ownerRoot": {
815
+ "type": "string",
816
+ "minLength": 1
817
+ },
818
+ "relativePath": {
819
+ "type": "string",
820
+ "minLength": 1
821
+ },
822
+ "provider": {
823
+ "type": "string",
824
+ "const": "copilot"
825
+ },
826
+ "device": {
827
+ "type": "integer",
828
+ "minimum": 0,
829
+ "maximum": 9007199254740991
830
+ },
831
+ "inode": {
832
+ "type": "integer",
833
+ "minimum": 0,
834
+ "maximum": 9007199254740991
835
+ },
836
+ "linkCount": {
837
+ "type": "number",
838
+ "const": 1
839
+ },
840
+ "mode": {
841
+ "type": "integer",
842
+ "minimum": 0,
843
+ "maximum": 9007199254740991
844
+ },
845
+ "mtimeMs": {
846
+ "type": "number"
847
+ },
848
+ "measuredBytes": {
849
+ "type": "integer",
850
+ "minimum": 0,
851
+ "maximum": 9007199254740991
852
+ },
853
+ "contentSha256": {
854
+ "type": "string",
855
+ "pattern": "^[a-f0-9]{64}$"
856
+ },
857
+ "fingerprint": {
858
+ "type": "string",
859
+ "pattern": "^[a-f0-9]{64}$"
860
+ }
861
+ },
862
+ "required": [
863
+ "path",
864
+ "ownerRoot",
865
+ "relativePath",
866
+ "provider",
867
+ "device",
868
+ "inode",
869
+ "linkCount",
870
+ "mode",
871
+ "mtimeMs",
872
+ "measuredBytes",
873
+ "contentSha256",
874
+ "fingerprint"
875
+ ]
876
+ }
877
+ },
878
+ "required": [
879
+ "actionId",
880
+ "type",
881
+ "resourceId",
882
+ "policyId",
883
+ "risk",
884
+ "description",
885
+ "expectedReclaimBytes",
886
+ "pendingQuarantineBytes",
887
+ "quarantineTtlMinutes",
888
+ "adapter",
889
+ "target"
890
+ ]
891
+ },
892
+ {
893
+ "type": "object",
894
+ "properties": {
895
+ "actionId": {
896
+ "type": "string",
897
+ "minLength": 1
898
+ },
899
+ "type": {
900
+ "type": "string",
901
+ "const": "provider.file-quarantine"
902
+ },
903
+ "resourceId": {
904
+ "type": "string",
905
+ "minLength": 1
906
+ },
907
+ "policyId": {
908
+ "type": "string",
909
+ "pattern": "^[a-z0-9][a-z0-9.-]*$"
910
+ },
911
+ "risk": {
912
+ "type": "string",
913
+ "const": "recoverable"
914
+ },
915
+ "description": {
916
+ "type": "string",
917
+ "minLength": 1
918
+ },
919
+ "expectedReclaimBytes": {
920
+ "type": "number",
921
+ "const": 0
922
+ },
923
+ "pendingQuarantineBytes": {
924
+ "type": "integer",
925
+ "minimum": 0,
926
+ "maximum": 9007199254740991
927
+ },
928
+ "quarantineTtlMinutes": {
929
+ "type": "integer",
930
+ "exclusiveMinimum": 0,
931
+ "maximum": 9007199254740991
932
+ },
933
+ "adapter": {
934
+ "type": "string",
935
+ "const": "zed"
936
+ },
937
+ "target": {
938
+ "type": "object",
939
+ "properties": {
940
+ "path": {
941
+ "type": "string",
942
+ "minLength": 1
943
+ },
944
+ "ownerRoot": {
945
+ "type": "string",
946
+ "minLength": 1
947
+ },
948
+ "relativePath": {
949
+ "type": "string",
950
+ "minLength": 1
951
+ },
952
+ "provider": {
953
+ "type": "string",
954
+ "const": "zed"
955
+ },
956
+ "device": {
957
+ "type": "integer",
958
+ "minimum": 0,
959
+ "maximum": 9007199254740991
960
+ },
961
+ "inode": {
962
+ "type": "integer",
963
+ "minimum": 0,
964
+ "maximum": 9007199254740991
965
+ },
966
+ "linkCount": {
967
+ "type": "number",
968
+ "const": 1
969
+ },
970
+ "mode": {
971
+ "type": "integer",
972
+ "minimum": 0,
973
+ "maximum": 9007199254740991
974
+ },
975
+ "mtimeMs": {
976
+ "type": "number"
977
+ },
978
+ "measuredBytes": {
979
+ "type": "integer",
980
+ "minimum": 0,
981
+ "maximum": 9007199254740991
982
+ },
983
+ "contentSha256": {
984
+ "type": "string",
985
+ "pattern": "^[a-f0-9]{64}$"
986
+ },
987
+ "fingerprint": {
988
+ "type": "string",
989
+ "pattern": "^[a-f0-9]{64}$"
990
+ }
991
+ },
992
+ "required": [
993
+ "path",
994
+ "ownerRoot",
995
+ "relativePath",
996
+ "provider",
997
+ "device",
998
+ "inode",
999
+ "linkCount",
1000
+ "mode",
1001
+ "mtimeMs",
1002
+ "measuredBytes",
1003
+ "contentSha256",
1004
+ "fingerprint"
1005
+ ]
1006
+ }
1007
+ },
1008
+ "required": [
1009
+ "actionId",
1010
+ "type",
1011
+ "resourceId",
1012
+ "policyId",
1013
+ "risk",
1014
+ "description",
1015
+ "expectedReclaimBytes",
1016
+ "pendingQuarantineBytes",
1017
+ "quarantineTtlMinutes",
1018
+ "adapter",
1019
+ "target"
1020
+ ]
1021
+ },
1022
+ {
1023
+ "type": "object",
1024
+ "properties": {
1025
+ "actionId": {
1026
+ "type": "string",
1027
+ "minLength": 1
1028
+ },
1029
+ "type": {
1030
+ "type": "string",
1031
+ "const": "provider.file-quarantine"
1032
+ },
1033
+ "resourceId": {
1034
+ "type": "string",
1035
+ "minLength": 1
1036
+ },
1037
+ "policyId": {
1038
+ "type": "string",
1039
+ "pattern": "^[a-z0-9][a-z0-9.-]*$"
1040
+ },
1041
+ "risk": {
1042
+ "type": "string",
1043
+ "const": "recoverable"
1044
+ },
1045
+ "description": {
1046
+ "type": "string",
1047
+ "minLength": 1
1048
+ },
1049
+ "expectedReclaimBytes": {
1050
+ "type": "number",
1051
+ "const": 0
1052
+ },
1053
+ "pendingQuarantineBytes": {
1054
+ "type": "integer",
1055
+ "minimum": 0,
1056
+ "maximum": 9007199254740991
1057
+ },
1058
+ "quarantineTtlMinutes": {
1059
+ "type": "integer",
1060
+ "exclusiveMinimum": 0,
1061
+ "maximum": 9007199254740991
1062
+ },
1063
+ "adapter": {
1064
+ "type": "string",
1065
+ "const": "opencode"
1066
+ },
1067
+ "target": {
1068
+ "type": "object",
1069
+ "properties": {
1070
+ "path": {
1071
+ "type": "string",
1072
+ "minLength": 1
1073
+ },
1074
+ "ownerRoot": {
1075
+ "type": "string",
1076
+ "minLength": 1
1077
+ },
1078
+ "relativePath": {
1079
+ "type": "string",
1080
+ "minLength": 1
1081
+ },
1082
+ "provider": {
1083
+ "type": "string",
1084
+ "const": "opencode"
1085
+ },
1086
+ "device": {
1087
+ "type": "integer",
1088
+ "minimum": 0,
1089
+ "maximum": 9007199254740991
1090
+ },
1091
+ "inode": {
1092
+ "type": "integer",
1093
+ "minimum": 0,
1094
+ "maximum": 9007199254740991
1095
+ },
1096
+ "linkCount": {
1097
+ "type": "number",
1098
+ "const": 1
1099
+ },
1100
+ "mode": {
1101
+ "type": "integer",
1102
+ "minimum": 0,
1103
+ "maximum": 9007199254740991
1104
+ },
1105
+ "mtimeMs": {
1106
+ "type": "number"
1107
+ },
1108
+ "measuredBytes": {
1109
+ "type": "integer",
1110
+ "minimum": 0,
1111
+ "maximum": 9007199254740991
1112
+ },
1113
+ "contentSha256": {
1114
+ "type": "string",
1115
+ "pattern": "^[a-f0-9]{64}$"
1116
+ },
1117
+ "fingerprint": {
1118
+ "type": "string",
1119
+ "pattern": "^[a-f0-9]{64}$"
1120
+ }
1121
+ },
1122
+ "required": [
1123
+ "path",
1124
+ "ownerRoot",
1125
+ "relativePath",
1126
+ "provider",
1127
+ "device",
1128
+ "inode",
1129
+ "linkCount",
1130
+ "mode",
1131
+ "mtimeMs",
1132
+ "measuredBytes",
1133
+ "contentSha256",
1134
+ "fingerprint"
1135
+ ]
1136
+ }
1137
+ },
1138
+ "required": [
1139
+ "actionId",
1140
+ "type",
1141
+ "resourceId",
1142
+ "policyId",
1143
+ "risk",
1144
+ "description",
1145
+ "expectedReclaimBytes",
1146
+ "pendingQuarantineBytes",
1147
+ "quarantineTtlMinutes",
1148
+ "adapter",
1149
+ "target"
1150
+ ]
1151
+ },
1152
+ {
1153
+ "type": "object",
1154
+ "properties": {
1155
+ "actionId": {
1156
+ "type": "string",
1157
+ "minLength": 1
1158
+ },
1159
+ "type": {
1160
+ "type": "string",
1161
+ "const": "provider.file-quarantine"
1162
+ },
1163
+ "resourceId": {
1164
+ "type": "string",
1165
+ "minLength": 1
1166
+ },
1167
+ "policyId": {
1168
+ "type": "string",
1169
+ "pattern": "^[a-z0-9][a-z0-9.-]*$"
1170
+ },
1171
+ "risk": {
1172
+ "type": "string",
1173
+ "const": "recoverable"
1174
+ },
1175
+ "description": {
1176
+ "type": "string",
1177
+ "minLength": 1
1178
+ },
1179
+ "expectedReclaimBytes": {
1180
+ "type": "number",
1181
+ "const": 0
1182
+ },
1183
+ "pendingQuarantineBytes": {
1184
+ "type": "integer",
1185
+ "minimum": 0,
1186
+ "maximum": 9007199254740991
1187
+ },
1188
+ "quarantineTtlMinutes": {
1189
+ "type": "integer",
1190
+ "exclusiveMinimum": 0,
1191
+ "maximum": 9007199254740991
1192
+ },
1193
+ "adapter": {
1194
+ "type": "string",
1195
+ "const": "grok"
1196
+ },
1197
+ "target": {
1198
+ "type": "object",
1199
+ "properties": {
1200
+ "path": {
1201
+ "type": "string",
1202
+ "minLength": 1
1203
+ },
1204
+ "ownerRoot": {
1205
+ "type": "string",
1206
+ "minLength": 1
1207
+ },
1208
+ "relativePath": {
1209
+ "type": "string",
1210
+ "minLength": 1
1211
+ },
1212
+ "provider": {
1213
+ "type": "string",
1214
+ "const": "grok"
1215
+ },
1216
+ "device": {
1217
+ "type": "integer",
1218
+ "minimum": 0,
1219
+ "maximum": 9007199254740991
1220
+ },
1221
+ "inode": {
1222
+ "type": "integer",
1223
+ "minimum": 0,
1224
+ "maximum": 9007199254740991
1225
+ },
1226
+ "linkCount": {
1227
+ "type": "number",
1228
+ "const": 1
1229
+ },
1230
+ "mode": {
1231
+ "type": "integer",
1232
+ "minimum": 0,
1233
+ "maximum": 9007199254740991
1234
+ },
1235
+ "mtimeMs": {
1236
+ "type": "number"
1237
+ },
1238
+ "measuredBytes": {
1239
+ "type": "integer",
1240
+ "minimum": 0,
1241
+ "maximum": 9007199254740991
1242
+ },
1243
+ "contentSha256": {
1244
+ "type": "string",
1245
+ "pattern": "^[a-f0-9]{64}$"
1246
+ },
1247
+ "fingerprint": {
1248
+ "type": "string",
1249
+ "pattern": "^[a-f0-9]{64}$"
1250
+ }
1251
+ },
1252
+ "required": [
1253
+ "path",
1254
+ "ownerRoot",
1255
+ "relativePath",
1256
+ "provider",
1257
+ "device",
1258
+ "inode",
1259
+ "linkCount",
1260
+ "mode",
1261
+ "mtimeMs",
1262
+ "measuredBytes",
1263
+ "contentSha256",
1264
+ "fingerprint"
1265
+ ]
1266
+ }
1267
+ },
1268
+ "required": [
1269
+ "actionId",
1270
+ "type",
1271
+ "resourceId",
1272
+ "policyId",
1273
+ "risk",
1274
+ "description",
1275
+ "expectedReclaimBytes",
1276
+ "pendingQuarantineBytes",
1277
+ "quarantineTtlMinutes",
1278
+ "adapter",
1279
+ "target"
1280
+ ]
1281
+ }
1282
+ ]
270
1283
  }
271
1284
  ]
272
1285
  }