agentrinse 0.4.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 (134) hide show
  1. package/README.md +57 -48
  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/copilot-maintenance.d.ts +23 -0
  15. package/dist/adapters/copilot-maintenance.d.ts.map +1 -0
  16. package/dist/adapters/copilot-maintenance.js +53 -0
  17. package/dist/adapters/copilot-maintenance.js.map +1 -0
  18. package/dist/adapters/provider-adapter.d.ts +1 -0
  19. package/dist/adapters/provider-adapter.d.ts.map +1 -1
  20. package/dist/adapters/provider-adapter.js +209 -4
  21. package/dist/adapters/provider-adapter.js.map +1 -1
  22. package/dist/adapters/provider-root.d.ts +8 -0
  23. package/dist/adapters/provider-root.d.ts.map +1 -0
  24. package/dist/adapters/provider-root.js +27 -0
  25. package/dist/adapters/provider-root.js.map +1 -0
  26. package/dist/adapters/provider-specs.d.ts.map +1 -1
  27. package/dist/adapters/provider-specs.js +10 -0
  28. package/dist/adapters/provider-specs.js.map +1 -1
  29. package/dist/adapters/registry.d.ts.map +1 -1
  30. package/dist/adapters/registry.js +1 -0
  31. package/dist/adapters/registry.js.map +1 -1
  32. package/dist/commands/doctor.d.ts.map +1 -1
  33. package/dist/commands/doctor.js +2 -0
  34. package/dist/commands/doctor.js.map +1 -1
  35. package/dist/commands/purge.d.ts +7 -1
  36. package/dist/commands/purge.d.ts.map +1 -1
  37. package/dist/commands/purge.js +23 -0
  38. package/dist/commands/purge.js.map +1 -1
  39. package/dist/commands/show.d.ts.map +1 -1
  40. package/dist/commands/show.js +3 -0
  41. package/dist/commands/show.js.map +1 -1
  42. package/dist/commands/undo.d.ts +4 -1
  43. package/dist/commands/undo.d.ts.map +1 -1
  44. package/dist/commands/undo.js +18 -1
  45. package/dist/commands/undo.js.map +1 -1
  46. package/dist/contracts/action.d.ts +335 -2
  47. package/dist/contracts/action.d.ts.map +1 -1
  48. package/dist/contracts/action.js +52 -1
  49. package/dist/contracts/action.js.map +1 -1
  50. package/dist/contracts/finding.d.ts +153 -2
  51. package/dist/contracts/finding.d.ts.map +1 -1
  52. package/dist/contracts/plan.d.ts +152 -2
  53. package/dist/contracts/plan.d.ts.map +1 -1
  54. package/dist/contracts/plan.js +1 -1
  55. package/dist/contracts/plan.js.map +1 -1
  56. package/dist/contracts/provider-file-quarantine.d.ts +221 -0
  57. package/dist/contracts/provider-file-quarantine.d.ts.map +1 -0
  58. package/dist/contracts/provider-file-quarantine.js +61 -0
  59. package/dist/contracts/provider-file-quarantine.js.map +1 -0
  60. package/dist/contracts/report.d.ts +153 -2
  61. package/dist/contracts/report.d.ts.map +1 -1
  62. package/dist/contracts/resource.d.ts +3 -0
  63. package/dist/contracts/resource.d.ts.map +1 -1
  64. package/dist/contracts/resource.js +1 -0
  65. package/dist/contracts/resource.js.map +1 -1
  66. package/dist/contracts/run.d.ts +94 -0
  67. package/dist/contracts/run.d.ts.map +1 -1
  68. package/dist/contracts/run.js +7 -0
  69. package/dist/contracts/run.js.map +1 -1
  70. package/dist/core/apply.d.ts +5 -1
  71. package/dist/core/apply.d.ts.map +1 -1
  72. package/dist/core/apply.js +74 -3
  73. package/dist/core/apply.js.map +1 -1
  74. package/dist/core/no-clobber-rename.d.ts +1 -0
  75. package/dist/core/no-clobber-rename.d.ts.map +1 -1
  76. package/dist/core/no-clobber-rename.js +44 -0
  77. package/dist/core/no-clobber-rename.js.map +1 -1
  78. package/dist/core/pinned-file.d.ts +37 -0
  79. package/dist/core/pinned-file.d.ts.map +1 -0
  80. package/dist/core/pinned-file.js +228 -0
  81. package/dist/core/pinned-file.js.map +1 -0
  82. package/dist/core/plan.d.ts.map +1 -1
  83. package/dist/core/plan.js +4 -1
  84. package/dist/core/plan.js.map +1 -1
  85. package/dist/core/process-ownership.d.ts +1 -0
  86. package/dist/core/process-ownership.d.ts.map +1 -1
  87. package/dist/core/process-ownership.js +17 -3
  88. package/dist/core/process-ownership.js.map +1 -1
  89. package/dist/core/provider-file-executor.d.ts +40 -0
  90. package/dist/core/provider-file-executor.d.ts.map +1 -0
  91. package/dist/core/provider-file-executor.js +259 -0
  92. package/dist/core/provider-file-executor.js.map +1 -0
  93. package/dist/core/provider-file-identity.d.ts +8 -0
  94. package/dist/core/provider-file-identity.d.ts.map +1 -0
  95. package/dist/core/provider-file-identity.js +113 -0
  96. package/dist/core/provider-file-identity.js.map +1 -0
  97. package/dist/core/provider-file-policy.d.ts +19 -0
  98. package/dist/core/provider-file-policy.d.ts.map +1 -0
  99. package/dist/core/provider-file-policy.js +72 -0
  100. package/dist/core/provider-file-policy.js.map +1 -0
  101. package/dist/core/provider-file-recovery.d.ts +25 -0
  102. package/dist/core/provider-file-recovery.d.ts.map +1 -0
  103. package/dist/core/provider-file-recovery.js +393 -0
  104. package/dist/core/provider-file-recovery.js.map +1 -0
  105. package/dist/core/provider-file-revalidation.d.ts +20 -0
  106. package/dist/core/provider-file-revalidation.d.ts.map +1 -0
  107. package/dist/core/provider-file-revalidation.js +60 -0
  108. package/dist/core/provider-file-revalidation.js.map +1 -0
  109. package/dist/core/provider-processes.d.ts +18 -0
  110. package/dist/core/provider-processes.d.ts.map +1 -0
  111. package/dist/core/provider-processes.js +90 -0
  112. package/dist/core/provider-processes.js.map +1 -0
  113. package/dist/index.d.ts +3 -2
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +3 -2
  116. package/dist/index.js.map +1 -1
  117. package/dist/state/json-file.d.ts +2 -1
  118. package/dist/state/json-file.d.ts.map +1 -1
  119. package/dist/state/json-file.js +59 -2
  120. package/dist/state/json-file.js.map +1 -1
  121. package/dist/state/layout.d.ts +1 -0
  122. package/dist/state/layout.d.ts.map +1 -1
  123. package/dist/state/layout.js +1 -0
  124. package/dist/state/layout.js.map +1 -1
  125. package/dist/state/run-journal.d.ts.map +1 -1
  126. package/dist/state/run-journal.js +8 -2
  127. package/dist/state/run-journal.js.map +1 -1
  128. package/dist/version.d.ts +1 -1
  129. package/dist/version.js +1 -1
  130. package/package.json +1 -1
  131. package/schemas/audit.schema.json +786 -1
  132. package/schemas/plan.schema.json +785 -1
  133. package/schemas/provider-file-quarantine.schema.json +741 -0
  134. package/schemas/run.schema.json +85 -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": {
@@ -496,6 +496,790 @@
496
496
  "backupTtlMinutes",
497
497
  "target"
498
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
+ ]
499
1283
  }
500
1284
  ]
501
1285
  }