@open-agent-toolkit/cli 0.2.25 → 0.2.27
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/assets/NOTICES.md +156 -0
- package/assets/docs/cli-utilities/configuration.md +42 -11
- package/assets/docs/contributing/explainer-kit-verification.md +125 -0
- package/assets/docs/contributing/index.md +1 -0
- package/assets/docs/reference/troubleshooting.md +47 -0
- package/assets/docs/workflows/projects/artifacts.md +24 -6
- package/assets/docs/workflows/projects/dispatch-ceiling.md +67 -16
- package/assets/docs/workflows/skills/explainer-kit-providers.md +144 -0
- package/assets/docs/workflows/skills/explainer-kit.md +121 -69
- package/assets/docs/workflows/skills/index.md +1 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/explainer-kit/SKILL.md +18 -3
- package/assets/skills/explainer-kit/recipes/project-recap.json +43 -16
- package/assets/skills/explainer-kit/references/contracts.md +167 -20
- package/assets/skills/explainer-kit/references/golden-conformance.md +80 -0
- package/assets/skills/explainer-kit/references/visual-authoring.md +92 -0
- package/assets/skills/explainer-kit/references/visual-review.md +57 -0
- package/assets/skills/explainer-kit/schemas/author-request.v2.schema.json +172 -1
- package/assets/skills/explainer-kit/schemas/build-record.schema.json +7 -1
- package/assets/skills/explainer-kit/schemas/fact-base.schema.json +38 -2
- package/assets/skills/explainer-kit/schemas/manifest.schema.json +25 -1
- package/assets/skills/explainer-kit/schemas/run-request.schema.json +4 -0
- package/assets/skills/explainer-kit/schemas/set-plan.v1.schema.json +149 -0
- package/assets/skills/explainer-kit/schemas/visual-review-request.v1.schema.json +117 -0
- package/assets/skills/explainer-kit/schemas/visual-review-result.v1.schema.json +80 -0
- package/assets/skills/explainer-kit/scripts/lib/browser-runtime.mjs +148 -4
- package/assets/skills/explainer-kit/scripts/lib/catalog.mjs +243 -0
- package/assets/skills/explainer-kit/scripts/lib/contracts.mjs +586 -8
- package/assets/skills/explainer-kit/scripts/lib/diagram.mjs +285 -8
- package/assets/skills/explainer-kit/scripts/lib/durability.mjs +35 -0
- package/assets/skills/explainer-kit/scripts/lib/fact-base.mjs +144 -8
- package/assets/skills/explainer-kit/scripts/lib/package-coverage.mjs +379 -0
- package/assets/skills/explainer-kit/scripts/lib/png.mjs +287 -0
- package/assets/skills/explainer-kit/scripts/lib/qa.mjs +280 -8
- package/assets/skills/explainer-kit/scripts/lib/recipes.mjs +132 -3
- package/assets/skills/explainer-kit/scripts/lib/records.mjs +513 -21
- package/assets/skills/explainer-kit/scripts/lib/render.mjs +67 -3
- package/assets/skills/explainer-kit/scripts/lib/s3-static.mjs +43 -1
- package/assets/skills/explainer-kit/scripts/lib/set-plan.mjs +208 -0
- package/assets/skills/explainer-kit/scripts/lib/source-backlinks.mjs +218 -0
- package/assets/skills/explainer-kit/scripts/lib/visual-review.mjs +380 -0
- package/assets/skills/explainer-kit/scripts/render-qa.mjs +48 -10
- package/assets/skills/explainer-kit/scripts/run.mjs +859 -134
- package/assets/skills/oat-explainer-kit/SKILL.md +40 -12
- package/assets/skills/oat-explainer-kit/references/author-callback.md +12 -10
- package/assets/skills/oat-explainer-kit/references/lifecycle-contract.md +40 -2
- package/assets/skills/oat-explainer-kit/references/visual-review-callback.md +72 -0
- package/assets/skills/oat-explainer-kit/scripts/bind-project-sources.mjs +167 -5
- package/assets/skills/oat-explainer-kit/scripts/finalize-tracked-run.mjs +92 -5
- package/assets/skills/oat-explainer-kit/scripts/run.mjs +324 -2
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +1 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-implement/SKILL.md +9 -11
- package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +18 -9
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-implement/references/phase-execution.md +13 -4
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +1 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +27 -3
- package/dist/commands/project/archive/archive-utils.d.ts +1 -0
- package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
- package/dist/commands/project/archive/archive-utils.js +109 -42
- package/dist/commands/project/archive/explainer-package-coverage.d.ts +14 -0
- package/dist/commands/project/archive/explainer-package-coverage.d.ts.map +1 -0
- package/dist/commands/project/archive/explainer-package-coverage.js +27 -0
- package/dist/commands/project/archive/explainer-source-backlinks.d.ts +18 -0
- package/dist/commands/project/archive/explainer-source-backlinks.d.ts.map +1 -0
- package/dist/commands/project/archive/explainer-source-backlinks.js +27 -0
- package/dist/commands/project/archive/push-runner.d.ts +2 -1
- package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
- package/dist/commands/project/archive/push-runner.js +5 -1
- package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
- package/dist/commands/project/dispatch-ceiling/index.js +90 -0
- package/dist/config/dispatch-notices.d.ts +8 -0
- package/dist/config/dispatch-notices.d.ts.map +1 -0
- package/dist/config/dispatch-notices.js +79 -0
- package/dist/config/dispatch-policy-options.d.ts +2 -0
- package/dist/config/dispatch-policy-options.d.ts.map +1 -1
- package/dist/config/dispatch-policy-options.js +14 -2
- package/dist/providers/identity/dispatch-report.d.ts +17 -0
- package/dist/providers/identity/dispatch-report.d.ts.map +1 -1
- package/dist/providers/identity/dispatch-report.js +30 -0
- package/dist/release/public-package-contract.d.ts +6 -0
- package/dist/release/public-package-contract.d.ts.map +1 -1
- package/dist/release/public-package-contract.js +75 -0
- package/package.json +2 -2
|
@@ -24,7 +24,13 @@
|
|
|
24
24
|
"minItems": 1
|
|
25
25
|
},
|
|
26
26
|
"outcome": {
|
|
27
|
-
"enum": [
|
|
27
|
+
"enum": [
|
|
28
|
+
"built-durable",
|
|
29
|
+
"built-not-durable",
|
|
30
|
+
"built-needs-review",
|
|
31
|
+
"failed",
|
|
32
|
+
"incomplete"
|
|
33
|
+
]
|
|
28
34
|
}
|
|
29
35
|
},
|
|
30
36
|
"$defs": {
|
|
@@ -55,6 +55,15 @@
|
|
|
55
55
|
"minItems": 1,
|
|
56
56
|
"uniqueItems": true
|
|
57
57
|
},
|
|
58
|
+
"lineRange": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"additionalProperties": false,
|
|
61
|
+
"required": ["start", "end"],
|
|
62
|
+
"properties": {
|
|
63
|
+
"start": { "type": "integer", "minimum": 1 },
|
|
64
|
+
"end": { "type": "integer", "minimum": 1 }
|
|
65
|
+
}
|
|
66
|
+
},
|
|
58
67
|
"source": {
|
|
59
68
|
"type": "object",
|
|
60
69
|
"additionalProperties": false,
|
|
@@ -67,7 +76,20 @@
|
|
|
67
76
|
"locator": { "type": "string", "minLength": 1 },
|
|
68
77
|
"role": { "type": "string", "minLength": 1 },
|
|
69
78
|
"sourceSetId": { "type": "string", "minLength": 1 },
|
|
70
|
-
"revision": { "type": "string", "
|
|
79
|
+
"revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
|
|
80
|
+
"repository": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$"
|
|
83
|
+
},
|
|
84
|
+
"path": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"pattern": "^(?!/)(?!.*//)(?!.*(?:^|/)(?:\\.|\\.\\.)(?:/|$))(?!.*\\\\).+$"
|
|
87
|
+
},
|
|
88
|
+
"lineRange": { "$ref": "#/$defs/lineRange" },
|
|
89
|
+
"url": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"pattern": "^https://github\\.com/[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+/blob/[a-f0-9]{40}/[^\\s?#]+#L[1-9][0-9]*(?:-L[1-9][0-9]*)?$"
|
|
92
|
+
},
|
|
71
93
|
"hash": { "$ref": "#/$defs/hash" },
|
|
72
94
|
"observedAt": { "type": "string", "format": "date-time" },
|
|
73
95
|
"authoritativeFor": {
|
|
@@ -83,7 +105,21 @@
|
|
|
83
105
|
"required": ["sourceId", "locator"],
|
|
84
106
|
"properties": {
|
|
85
107
|
"sourceId": { "type": "string", "minLength": 1 },
|
|
86
|
-
"locator": { "type": "string", "minLength": 1 }
|
|
108
|
+
"locator": { "type": "string", "minLength": 1 },
|
|
109
|
+
"repository": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$"
|
|
112
|
+
},
|
|
113
|
+
"revision": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
|
|
114
|
+
"path": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"pattern": "^(?!/)(?!.*//)(?!.*(?:^|/)(?:\\.|\\.\\.)(?:/|$))(?!.*\\\\).+$"
|
|
117
|
+
},
|
|
118
|
+
"lineRange": { "$ref": "#/$defs/lineRange" },
|
|
119
|
+
"url": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"pattern": "^https://github\\.com/[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+/blob/[a-f0-9]{40}/[^\\s?#]+#L[1-9][0-9]*(?:-L[1-9][0-9]*)?$"
|
|
122
|
+
}
|
|
87
123
|
}
|
|
88
124
|
},
|
|
89
125
|
"claim": {
|
|
@@ -49,6 +49,11 @@
|
|
|
49
49
|
"items": { "$ref": "#/$defs/safeRelativePath" },
|
|
50
50
|
"minItems": 1,
|
|
51
51
|
"uniqueItems": true
|
|
52
|
+
},
|
|
53
|
+
"backlinks": {
|
|
54
|
+
"type": "array",
|
|
55
|
+
"items": { "$ref": "#/$defs/sourceBacklink" },
|
|
56
|
+
"uniqueItems": true
|
|
52
57
|
}
|
|
53
58
|
}
|
|
54
59
|
},
|
|
@@ -69,7 +74,13 @@
|
|
|
69
74
|
},
|
|
70
75
|
"immutableHashes": { "$ref": "#/$defs/hashMap" },
|
|
71
76
|
"outcome": {
|
|
72
|
-
"enum": [
|
|
77
|
+
"enum": [
|
|
78
|
+
"built-durable",
|
|
79
|
+
"built-not-durable",
|
|
80
|
+
"built-needs-review",
|
|
81
|
+
"failed",
|
|
82
|
+
"incomplete"
|
|
83
|
+
]
|
|
73
84
|
},
|
|
74
85
|
"buildRecord": {
|
|
75
86
|
"type": "object",
|
|
@@ -106,9 +117,22 @@
|
|
|
106
117
|
},
|
|
107
118
|
"hashMap": {
|
|
108
119
|
"type": "object",
|
|
120
|
+
"description": "Raw-byte SHA-256 coverage for the complete immutable package, including required browser, cohesion, visual-review attempt, and revision evidence.",
|
|
109
121
|
"propertyNames": { "$ref": "#/$defs/safeRelativePath" },
|
|
110
122
|
"additionalProperties": { "$ref": "#/$defs/hash" }
|
|
111
123
|
},
|
|
124
|
+
"sourceBacklink": {
|
|
125
|
+
"type": "object",
|
|
126
|
+
"additionalProperties": false,
|
|
127
|
+
"required": ["sourceId", "url"],
|
|
128
|
+
"properties": {
|
|
129
|
+
"sourceId": { "type": "string", "minLength": 1 },
|
|
130
|
+
"url": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"pattern": "^https://github\\.com/[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+/blob/[a-f0-9]{40}/[^\\s?#]+#L[1-9][0-9]*(?:-L[1-9][0-9]*)?$"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
},
|
|
112
136
|
"failure": {
|
|
113
137
|
"type": "object",
|
|
114
138
|
"additionalProperties": false,
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "explainer-kit.set-plan/v1",
|
|
4
|
+
"title": "SetPlanV1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"planId",
|
|
10
|
+
"recipe",
|
|
11
|
+
"sourceIds",
|
|
12
|
+
"ledger",
|
|
13
|
+
"portfolio"
|
|
14
|
+
],
|
|
15
|
+
"properties": {
|
|
16
|
+
"schemaVersion": { "const": "explainer-kit.set-plan/v1" },
|
|
17
|
+
"planId": { "$ref": "#/$defs/safeId" },
|
|
18
|
+
"recipe": { "$ref": "#/$defs/recipe" },
|
|
19
|
+
"sourceIds": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": { "$ref": "#/$defs/safeId" },
|
|
22
|
+
"minItems": 1,
|
|
23
|
+
"uniqueItems": true
|
|
24
|
+
},
|
|
25
|
+
"ledger": { "$ref": "#/$defs/ledger" },
|
|
26
|
+
"portfolio": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": { "$ref": "#/$defs/portfolioEntry" },
|
|
29
|
+
"minItems": 1
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"$defs": {
|
|
33
|
+
"safeId": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
|
|
36
|
+
},
|
|
37
|
+
"recipe": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"additionalProperties": false,
|
|
40
|
+
"required": ["id", "version"],
|
|
41
|
+
"properties": {
|
|
42
|
+
"id": { "$ref": "#/$defs/safeId" },
|
|
43
|
+
"version": { "type": "string", "minLength": 1 }
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"ledger": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"additionalProperties": false,
|
|
49
|
+
"description": "Shared cohesion claims. A fully empty ledger explicitly identifies a lower-tier plan without applicable shared claims; adaptive recap review requires every group to be non-empty and observed.",
|
|
50
|
+
"required": ["terminology", "statuses", "numbers"],
|
|
51
|
+
"properties": {
|
|
52
|
+
"terminology": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"items": { "$ref": "#/$defs/termEntry" },
|
|
55
|
+
"uniqueItems": true
|
|
56
|
+
},
|
|
57
|
+
"statuses": {
|
|
58
|
+
"type": "array",
|
|
59
|
+
"items": { "$ref": "#/$defs/statusEntry" },
|
|
60
|
+
"uniqueItems": true
|
|
61
|
+
},
|
|
62
|
+
"numbers": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"items": { "$ref": "#/$defs/numberEntry" },
|
|
65
|
+
"uniqueItems": true
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"termEntry": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"additionalProperties": false,
|
|
72
|
+
"required": ["term", "meaning"],
|
|
73
|
+
"properties": {
|
|
74
|
+
"term": { "type": "string", "minLength": 1 },
|
|
75
|
+
"meaning": { "type": "string", "minLength": 1 }
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"statusEntry": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"additionalProperties": false,
|
|
81
|
+
"required": ["subject", "value"],
|
|
82
|
+
"properties": {
|
|
83
|
+
"subject": { "type": "string", "minLength": 1 },
|
|
84
|
+
"value": { "type": "string", "minLength": 1 }
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"numberEntry": {
|
|
88
|
+
"type": "object",
|
|
89
|
+
"additionalProperties": false,
|
|
90
|
+
"required": ["subject", "value", "unit"],
|
|
91
|
+
"properties": {
|
|
92
|
+
"subject": { "type": "string", "minLength": 1 },
|
|
93
|
+
"value": { "type": "number" },
|
|
94
|
+
"unit": { "type": "string", "minLength": 1 }
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"portfolioEntry": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"additionalProperties": false,
|
|
100
|
+
"required": [
|
|
101
|
+
"artifactId",
|
|
102
|
+
"artifactType",
|
|
103
|
+
"profileId",
|
|
104
|
+
"required",
|
|
105
|
+
"sourceIds",
|
|
106
|
+
"draft",
|
|
107
|
+
"visualIntent"
|
|
108
|
+
],
|
|
109
|
+
"properties": {
|
|
110
|
+
"artifactId": { "$ref": "#/$defs/safeId" },
|
|
111
|
+
"artifactType": {
|
|
112
|
+
"enum": ["hub", "diagram", "explainer", "deck", "catalog"]
|
|
113
|
+
},
|
|
114
|
+
"profileId": { "$ref": "#/$defs/safeId" },
|
|
115
|
+
"required": { "type": "boolean" },
|
|
116
|
+
"sourceIds": {
|
|
117
|
+
"type": "array",
|
|
118
|
+
"items": { "$ref": "#/$defs/safeId" },
|
|
119
|
+
"minItems": 1,
|
|
120
|
+
"uniqueItems": true
|
|
121
|
+
},
|
|
122
|
+
"draft": { "type": "string", "minLength": 1 },
|
|
123
|
+
"visualIntent": { "type": "string", "minLength": 1 },
|
|
124
|
+
"justification": { "$ref": "#/$defs/justification" }
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"justification": {
|
|
128
|
+
"type": "object",
|
|
129
|
+
"additionalProperties": false,
|
|
130
|
+
"required": ["kind", "sourceIds", "rationale"],
|
|
131
|
+
"properties": {
|
|
132
|
+
"kind": {
|
|
133
|
+
"enum": [
|
|
134
|
+
"status-change",
|
|
135
|
+
"rollout-complexity",
|
|
136
|
+
"source-backed-detail"
|
|
137
|
+
]
|
|
138
|
+
},
|
|
139
|
+
"sourceIds": {
|
|
140
|
+
"type": "array",
|
|
141
|
+
"items": { "$ref": "#/$defs/safeId" },
|
|
142
|
+
"minItems": 1,
|
|
143
|
+
"uniqueItems": true
|
|
144
|
+
},
|
|
145
|
+
"rationale": { "type": "string", "minLength": 1 }
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "explainer-kit.visual-review-request/v1",
|
|
4
|
+
"title": "VisualReviewRequestV1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"requestId",
|
|
10
|
+
"requestHash",
|
|
11
|
+
"browserRuntime",
|
|
12
|
+
"captureIdentity",
|
|
13
|
+
"plan",
|
|
14
|
+
"renderedArtifacts"
|
|
15
|
+
],
|
|
16
|
+
"properties": {
|
|
17
|
+
"schemaVersion": {
|
|
18
|
+
"const": "explainer-kit.visual-review-request/v1"
|
|
19
|
+
},
|
|
20
|
+
"requestId": { "$ref": "#/$defs/safeId" },
|
|
21
|
+
"requestHash": { "$ref": "#/$defs/hash" },
|
|
22
|
+
"browserRuntime": { "$ref": "#/$defs/browserRuntime" },
|
|
23
|
+
"captureIdentity": { "$ref": "#/$defs/hash" },
|
|
24
|
+
"plan": { "$ref": "explainer-kit.set-plan/v1" },
|
|
25
|
+
"renderedArtifacts": {
|
|
26
|
+
"type": "array",
|
|
27
|
+
"items": { "$ref": "#/$defs/renderedArtifact" },
|
|
28
|
+
"minItems": 1,
|
|
29
|
+
"uniqueItems": true
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"$defs": {
|
|
33
|
+
"safeRelativePath": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"minLength": 1,
|
|
36
|
+
"pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*\\\\).+$"
|
|
37
|
+
},
|
|
38
|
+
"safeId": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
|
|
41
|
+
},
|
|
42
|
+
"hash": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
45
|
+
},
|
|
46
|
+
"browserRuntime": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"additionalProperties": false,
|
|
49
|
+
"required": ["kind", "name", "version"],
|
|
50
|
+
"properties": {
|
|
51
|
+
"kind": { "enum": ["launched", "fixture"] },
|
|
52
|
+
"name": { "const": "chromium" },
|
|
53
|
+
"version": { "type": "string", "minLength": 1 }
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"renderedArtifact": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"additionalProperties": false,
|
|
59
|
+
"required": ["artifactId", "renderedPath", "renderedHash", "evidence"],
|
|
60
|
+
"properties": {
|
|
61
|
+
"artifactId": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
|
|
64
|
+
},
|
|
65
|
+
"renderedPath": { "$ref": "#/$defs/safeRelativePath" },
|
|
66
|
+
"renderedHash": { "$ref": "#/$defs/hash" },
|
|
67
|
+
"cohesionObservations": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"items": { "$ref": "#/$defs/cohesionObservation" },
|
|
70
|
+
"uniqueItems": true
|
|
71
|
+
},
|
|
72
|
+
"evidence": {
|
|
73
|
+
"type": "array",
|
|
74
|
+
"items": { "$ref": "#/$defs/evidence" },
|
|
75
|
+
"minItems": 1,
|
|
76
|
+
"uniqueItems": true
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"cohesionObservation": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"additionalProperties": false,
|
|
83
|
+
"required": ["artifactId", "contentHash", "group", "claim", "value"],
|
|
84
|
+
"properties": {
|
|
85
|
+
"artifactId": { "$ref": "#/$defs/safeId" },
|
|
86
|
+
"contentHash": { "$ref": "#/$defs/hash" },
|
|
87
|
+
"group": {
|
|
88
|
+
"enum": ["terminology", "statuses", "numericClaims"]
|
|
89
|
+
},
|
|
90
|
+
"claim": { "type": "string", "minLength": 1 },
|
|
91
|
+
"value": {
|
|
92
|
+
"oneOf": [{ "type": "string", "minLength": 1 }, { "type": "number" }]
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"evidence": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"additionalProperties": false,
|
|
99
|
+
"required": [
|
|
100
|
+
"viewport",
|
|
101
|
+
"screenshotPath",
|
|
102
|
+
"screenshotHash",
|
|
103
|
+
"metricsPath",
|
|
104
|
+
"metricsHash",
|
|
105
|
+
"captureIdentity"
|
|
106
|
+
],
|
|
107
|
+
"properties": {
|
|
108
|
+
"viewport": { "enum": ["desktop", "tablet", "mobile"] },
|
|
109
|
+
"screenshotPath": { "$ref": "#/$defs/safeRelativePath" },
|
|
110
|
+
"screenshotHash": { "$ref": "#/$defs/hash" },
|
|
111
|
+
"metricsPath": { "$ref": "#/$defs/safeRelativePath" },
|
|
112
|
+
"metricsHash": { "$ref": "#/$defs/hash" },
|
|
113
|
+
"captureIdentity": { "$ref": "#/$defs/hash" }
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "explainer-kit.visual-review-result/v1",
|
|
4
|
+
"title": "VisualReviewResultV1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"reviewId",
|
|
10
|
+
"requestId",
|
|
11
|
+
"requestHash",
|
|
12
|
+
"reviewedAt",
|
|
13
|
+
"disposition",
|
|
14
|
+
"artifactIds",
|
|
15
|
+
"findings"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"schemaVersion": {
|
|
19
|
+
"const": "explainer-kit.visual-review-result/v1"
|
|
20
|
+
},
|
|
21
|
+
"reviewId": { "$ref": "#/$defs/safeId" },
|
|
22
|
+
"requestId": { "$ref": "#/$defs/safeId" },
|
|
23
|
+
"requestHash": { "$ref": "#/$defs/hash" },
|
|
24
|
+
"reviewedAt": { "type": "string", "format": "date-time" },
|
|
25
|
+
"disposition": { "enum": ["pass", "correct", "fail"] },
|
|
26
|
+
"artifactIds": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": { "$ref": "#/$defs/safeId" },
|
|
29
|
+
"minItems": 1,
|
|
30
|
+
"uniqueItems": true
|
|
31
|
+
},
|
|
32
|
+
"findings": {
|
|
33
|
+
"type": "array",
|
|
34
|
+
"items": { "$ref": "#/$defs/finding" },
|
|
35
|
+
"uniqueItems": true
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"$defs": {
|
|
39
|
+
"safeId": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
|
|
42
|
+
},
|
|
43
|
+
"hash": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
46
|
+
},
|
|
47
|
+
"finding": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"additionalProperties": false,
|
|
50
|
+
"required": [
|
|
51
|
+
"artifactId",
|
|
52
|
+
"rubric",
|
|
53
|
+
"severity",
|
|
54
|
+
"evidence",
|
|
55
|
+
"correction"
|
|
56
|
+
],
|
|
57
|
+
"properties": {
|
|
58
|
+
"artifactId": { "$ref": "#/$defs/safeId" },
|
|
59
|
+
"rubric": {
|
|
60
|
+
"enum": [
|
|
61
|
+
"first-viewport",
|
|
62
|
+
"hierarchy",
|
|
63
|
+
"representation",
|
|
64
|
+
"legibility",
|
|
65
|
+
"medium-fit",
|
|
66
|
+
"cohesion",
|
|
67
|
+
"coverage",
|
|
68
|
+
"redundancy",
|
|
69
|
+
"interaction"
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"severity": {
|
|
73
|
+
"enum": ["critical", "important", "medium", "minor"]
|
|
74
|
+
},
|
|
75
|
+
"evidence": { "type": "string", "minLength": 1 },
|
|
76
|
+
"correction": { "type": "string", "minLength": 1 }
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|