tamperward 2.17.1 → 2.19.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamperward",
3
- "version": "2.17.1",
3
+ "version": "2.19.0",
4
4
  "description": "The deterministic agent-integrity gate. One ruleset, evaluated on the actual diff/commands as a verdict, enforced everywhere a change can be made.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "hexrift",
@@ -33,6 +33,7 @@
33
33
  },
34
34
  "files": [
35
35
  "dist",
36
+ "schemas",
36
37
  "LICENSE",
37
38
  "NOTICE"
38
39
  ],
@@ -57,6 +58,7 @@
57
58
  "@types/picomatch": "^3.0.1",
58
59
  "esbuild": "^0.25.12",
59
60
  "vitepress": "^2.0.0-alpha.19",
60
- "vitest": "^4.1.11"
61
+ "vitest": "^4.1.11",
62
+ "ajv": "^8.17.1"
61
63
  }
62
64
  }
@@ -0,0 +1,104 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://raw.githubusercontent.com/hexrift/tamperward/main/schemas/check-v1.schema.json",
4
+ "title": "TamperWard check JSON output v1",
5
+ "type": "object",
6
+ "required": [
7
+ "schema_version",
8
+ "findings",
9
+ "scanned",
10
+ "ignoredFiles",
11
+ "summary"
12
+ ],
13
+ "properties": {
14
+ "schema_version": {
15
+ "const": 1
16
+ },
17
+ "findings": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "required": [
22
+ "rule",
23
+ "severity",
24
+ "message",
25
+ "evidence",
26
+ "remediation",
27
+ "signoff"
28
+ ],
29
+ "properties": {
30
+ "rule": {
31
+ "type": "string",
32
+ "minLength": 1
33
+ },
34
+ "severity": {
35
+ "enum": [
36
+ "block",
37
+ "warn"
38
+ ]
39
+ },
40
+ "file": {
41
+ "type": "string"
42
+ },
43
+ "line": {
44
+ "type": "integer",
45
+ "minimum": 1
46
+ },
47
+ "message": {
48
+ "type": "string"
49
+ },
50
+ "evidence": {
51
+ "type": "string"
52
+ },
53
+ "remediation": {
54
+ "type": "string"
55
+ },
56
+ "signoff": {
57
+ "type": "object",
58
+ "required": [
59
+ "required",
60
+ "command"
61
+ ],
62
+ "properties": {
63
+ "required": {
64
+ "type": "boolean"
65
+ },
66
+ "command": {
67
+ "type": "string"
68
+ }
69
+ },
70
+ "additionalProperties": true
71
+ }
72
+ },
73
+ "additionalProperties": true
74
+ }
75
+ },
76
+ "scanned": {
77
+ "type": "integer",
78
+ "minimum": 0
79
+ },
80
+ "ignoredFiles": {
81
+ "type": "integer",
82
+ "minimum": 0
83
+ },
84
+ "summary": {
85
+ "type": "object",
86
+ "required": [
87
+ "block",
88
+ "warn"
89
+ ],
90
+ "properties": {
91
+ "block": {
92
+ "type": "integer",
93
+ "minimum": 0
94
+ },
95
+ "warn": {
96
+ "type": "integer",
97
+ "minimum": 0
98
+ }
99
+ },
100
+ "additionalProperties": true
101
+ }
102
+ },
103
+ "additionalProperties": true
104
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://raw.githubusercontent.com/hexrift/tamperward/main/schemas/doctor-v1.schema.json",
4
+ "title": "TamperWard doctor JSON output v1",
5
+ "type": "object",
6
+ "required": [
7
+ "schema_version",
8
+ "command",
9
+ "authoritative",
10
+ "checks"
11
+ ],
12
+ "properties": {
13
+ "schema_version": {
14
+ "const": 1
15
+ },
16
+ "command": {
17
+ "const": "doctor"
18
+ },
19
+ "authoritative": {
20
+ "type": "boolean"
21
+ },
22
+ "checks": {
23
+ "type": "array",
24
+ "items": {
25
+ "type": "object",
26
+ "required": [
27
+ "id",
28
+ "state",
29
+ "detail"
30
+ ],
31
+ "properties": {
32
+ "id": {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ "state": {
37
+ "enum": [
38
+ "OK",
39
+ "WARN",
40
+ "BROKEN"
41
+ ]
42
+ },
43
+ "detail": {
44
+ "type": "string"
45
+ }
46
+ },
47
+ "additionalProperties": true
48
+ }
49
+ }
50
+ },
51
+ "additionalProperties": true,
52
+ "description": "Emitted by `tamperward doctor --json`. `authoritative` is derived: false exactly when any check is BROKEN. Additive within schema major 1.",
53
+ "allOf": [
54
+ {
55
+ "if": {
56
+ "type": "object",
57
+ "properties": {
58
+ "checks": {
59
+ "type": "array",
60
+ "contains": {
61
+ "type": "object",
62
+ "required": [
63
+ "state"
64
+ ],
65
+ "properties": {
66
+ "state": {
67
+ "const": "BROKEN"
68
+ }
69
+ }
70
+ }
71
+ }
72
+ },
73
+ "required": [
74
+ "checks"
75
+ ]
76
+ },
77
+ "then": {
78
+ "type": "object",
79
+ "properties": {
80
+ "authoritative": {
81
+ "const": false
82
+ }
83
+ }
84
+ },
85
+ "else": {
86
+ "type": "object",
87
+ "properties": {
88
+ "authoritative": {
89
+ "const": true
90
+ }
91
+ }
92
+ }
93
+ }
94
+ ]
95
+ }