owlrunkit 0.13.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/CHANGELOG.md +9 -0
- package/LICENSE +674 -0
- package/NOTICE.md +137 -0
- package/README.md +44 -0
- package/SOURCE.md +10 -0
- package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_1.md +160 -0
- package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_2.md +459 -0
- package/integrations/codex/skills/owlcoda-runkit/SKILL.md +408 -0
- package/integrations/codex/skills/owlcoda-runkit/agents/openai.yaml +4 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/agents-snippet.md +7 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +10 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/coverage-adopt-request.json +26 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/execution-delivery-packet.json +13 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/finalize-request.json +18 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/goal-contract.json +11 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/profiles.json +9 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/ready-for-commit-request.json +11 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/resource-preflight-request.json +56 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/resume-request.json +10 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/snapshot-request.json +23 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/verification-context.json +15 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/verification-receipt.json +11 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/verify-plan-request.json +31 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/visual-smoke-request.json +32 -0
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/worker-lease.json +7 -0
- package/package.json +24 -0
- package/packages/attest/LICENSE +674 -0
- package/packages/attest/README.md +63 -0
- package/packages/attest/cli/owlcoda-attest.mjs +155 -0
- package/packages/attest/consumer-surface-v1.json +255 -0
- package/packages/attest/distribution-manifest-v1.json +104 -0
- package/packages/attest/fixtures/bad/accepted-authority-leak.json +7 -0
- package/packages/attest/fixtures/bad/accepted-failed-receipt.json +7 -0
- package/packages/attest/fixtures/bad/active-context-binding-mismatch.json +7 -0
- package/packages/attest/fixtures/bad/active-source-binding-mismatch.json +7 -0
- package/packages/attest/fixtures/bad/context-fingerprint-mismatch.json +7 -0
- package/packages/attest/fixtures/bad/duplicate-object-key.json +8 -0
- package/packages/attest/fixtures/bad/multiple-active-leaves.json +10 -0
- package/packages/attest/fixtures/bad/orphan-replacement.json +7 -0
- package/packages/attest/fixtures/bad/root-shape-extra-property.json +8 -0
- package/packages/attest/fixtures/bad/source-fingerprint-mismatch.json +7 -0
- package/packages/attest/fixtures/good/accepted-replacement-chain.json +59 -0
- package/packages/attest/fixtures/good/blocked-single-leaf.json +9 -0
- package/packages/attest/fixtures/index.json +90 -0
- package/packages/attest/sbom.spdx.json +33 -0
- package/packages/attest/schemas/attestation-ref-v1.schema.json +44 -0
- package/packages/attest/schemas/attestation-result-v1.schema.json +163 -0
- package/packages/attest/schemas/offline-attestation-bundle-v1.schema.json +30 -0
- package/packages/attest/schemas/public-verification-bundle-v1.schema.json +74 -0
- package/packages/attest/schemas/quick-verification-receipt-v1.schema.json +219 -0
- package/packages/attest/schemas/workspace-snapshot-v1.schema.json +135 -0
- package/packages/attest/src/canonical.mjs +12 -0
- package/packages/attest/src/formal.mjs +762 -0
- package/packages/attest/src/index.mjs +113 -0
- package/packages/attest/src/offline-bundle.mjs +108 -0
- package/packages/attest/src/quick-receipt-contract.mjs +156 -0
- package/packages/attest/src/quick.mjs +274 -0
- package/packages/attest/src/reference-contract.mjs +64 -0
- package/packages/attest/src/reference.mjs +131 -0
- package/packages/attest/src/workspace-snapshot.mjs +171 -0
- package/registry-release-policy-v1.json +34 -0
- package/sbom.spdx.json +39 -0
- package/scripts/runkit-contract/acceptance-evidence.mjs +103 -0
- package/scripts/runkit-contract/core-contract.mjs +392 -0
- package/scripts/runkit-contract/coverage-adoption.mjs +414 -0
- package/scripts/runkit-contract/delivery-create.mjs +252 -0
- package/scripts/runkit-contract/delivery-selection.mjs +31 -0
- package/scripts/runkit-contract/finalize.mjs +790 -0
- package/scripts/runkit-contract/inspect-presentation.mjs +183 -0
- package/scripts/runkit-contract/install-codex-skill.mjs +239 -0
- package/scripts/runkit-contract/lease-lifecycle.mjs +324 -0
- package/scripts/runkit-contract/lifecycle-orchestration.mjs +415 -0
- package/scripts/runkit-contract/offline-store.mjs +248 -0
- package/scripts/runkit-contract/profile-impact.mjs +223 -0
- package/scripts/runkit-contract/provenance-common.mjs +153 -0
- package/scripts/runkit-contract/quick-attest.mjs +4 -0
- package/scripts/runkit-contract/quick-canonical.mjs +41 -0
- package/scripts/runkit-contract/quick-metrics.mjs +86 -0
- package/scripts/runkit-contract/quick-receipt.mjs +139 -0
- package/scripts/runkit-contract/quick-verify.mjs +201 -0
- package/scripts/runkit-contract/quick-workspace-snapshot.mjs +3 -0
- package/scripts/runkit-contract/ready-for-commit.mjs +188 -0
- package/scripts/runkit-contract/receipt-lineage.mjs +332 -0
- package/scripts/runkit-contract/registry-adoption-gate.mjs +117 -0
- package/scripts/runkit-contract/repair-execution.mjs +997 -0
- package/scripts/runkit-contract/resource-preflight.mjs +829 -0
- package/scripts/runkit-contract/resume-execution.mjs +569 -0
- package/scripts/runkit-contract/runkit-cli.mjs +1214 -0
- package/scripts/runkit-contract/schemas/closeout-receipt-v2.schema.json +42 -0
- package/scripts/runkit-contract/schemas/core-artifact-v2.schema.json +23 -0
- package/scripts/runkit-contract/schemas/core-artifact.schema.json +23 -0
- package/scripts/runkit-contract/schemas/coverage-adopt-request-v1.schema.json +66 -0
- package/scripts/runkit-contract/schemas/engine-pin-v2.schema.json +14 -0
- package/scripts/runkit-contract/schemas/engine-pin.schema.json +14 -0
- package/scripts/runkit-contract/schemas/evidence-coverage-index-v1.schema.json +131 -0
- package/scripts/runkit-contract/schemas/finalize-request-v1.schema.json +131 -0
- package/scripts/runkit-contract/schemas/profiles.schema.json +47 -0
- package/scripts/runkit-contract/schemas/project-config-v2.schema.json +13 -0
- package/scripts/runkit-contract/schemas/project-config.schema.json +13 -0
- package/scripts/runkit-contract/schemas/ready-for-commit-v1.schema.json +26 -0
- package/scripts/runkit-contract/schemas/replayable-evidence-v1.schema.json +82 -0
- package/scripts/runkit-contract/schemas/resource-preflight-request-v1.schema.json +178 -0
- package/scripts/runkit-contract/schemas/resource-preflight-v1.schema.json +153 -0
- package/scripts/runkit-contract/schemas/resume-attempt-v1.schema.json +80 -0
- package/scripts/runkit-contract/schemas/resume-request-v1.schema.json +77 -0
- package/scripts/runkit-contract/schemas/snapshot-v1.schema.json +71 -0
- package/scripts/runkit-contract/schemas/verification-context-v1.schema.json +92 -0
- package/scripts/runkit-contract/schemas/verification-plan-v1.schema.json +150 -0
- package/scripts/runkit-contract/schemas/verification-receipt-v2.schema.json +118 -0
- package/scripts/runkit-contract/schemas/verify-plan-request-v1.schema.json +56 -0
- package/scripts/runkit-contract/schemas/visual-smoke-request-v1.schema.json +64 -0
- package/scripts/runkit-contract/schemas/visual-smoke-result-v1.schema.json +68 -0
- package/scripts/runkit-contract/snapshot.mjs +340 -0
- package/scripts/runkit-contract/source-fingerprint.mjs +404 -0
- package/scripts/runkit-contract/templates/coverage-adopt-request.json +26 -0
- package/scripts/runkit-contract/templates/finalize-request.json +18 -0
- package/scripts/runkit-contract/templates/goal-contract.json +11 -0
- package/scripts/runkit-contract/templates/ready-for-commit-request.json +11 -0
- package/scripts/runkit-contract/templates/resource-preflight-request.json +56 -0
- package/scripts/runkit-contract/templates/resume-request.json +10 -0
- package/scripts/runkit-contract/templates/snapshot-request.json +23 -0
- package/scripts/runkit-contract/templates/verify-plan-request.json +31 -0
- package/scripts/runkit-contract/templates/visual-smoke-request.json +32 -0
- package/scripts/runkit-contract/templates/worker-lease.json +7 -0
- package/scripts/runkit-contract/verification-context.mjs +141 -0
- package/scripts/runkit-contract/verification-plan.mjs +608 -0
- package/scripts/runkit-contract/verification-receipt-gate.mjs +566 -0
- package/scripts/runkit-contract/visual-smoke.mjs +410 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/verification-plan-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Verification Plan V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"runId",
|
|
10
|
+
"planId",
|
|
11
|
+
"status",
|
|
12
|
+
"drift",
|
|
13
|
+
"profileImpact",
|
|
14
|
+
"evidence",
|
|
15
|
+
"commands",
|
|
16
|
+
"acceptance",
|
|
17
|
+
"authorizationGranted",
|
|
18
|
+
"verificationContextFingerprint"
|
|
19
|
+
],
|
|
20
|
+
"properties": {
|
|
21
|
+
"schemaVersion": { "const": "OwlCodaRunKitVerificationPlanV1" },
|
|
22
|
+
"runId": { "type": "string", "minLength": 1 },
|
|
23
|
+
"planId": { "type": "string", "minLength": 1 },
|
|
24
|
+
"status": {
|
|
25
|
+
"enum": [
|
|
26
|
+
"full_profile_required",
|
|
27
|
+
"blocked_by_global_gate",
|
|
28
|
+
"verification_mapping_required",
|
|
29
|
+
"verification_required",
|
|
30
|
+
"ready_to_finalize"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"verificationContextFingerprint": { "$ref": "#/$defs/sha256" },
|
|
34
|
+
"drift": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"additionalProperties": false,
|
|
37
|
+
"required": [
|
|
38
|
+
"leasedSourceDrift",
|
|
39
|
+
"declaredDependencyDrift",
|
|
40
|
+
"unrelatedDirtyTreeDrift",
|
|
41
|
+
"globalGateFailures"
|
|
42
|
+
],
|
|
43
|
+
"properties": {
|
|
44
|
+
"leasedSourceDrift": { "$ref": "#/$defs/stringArray" },
|
|
45
|
+
"declaredDependencyDrift": { "$ref": "#/$defs/stringArray" },
|
|
46
|
+
"unrelatedDirtyTreeDrift": { "$ref": "#/$defs/stringArray" },
|
|
47
|
+
"globalGateFailures": { "$ref": "#/$defs/stringArray" }
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"profileImpact": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"additionalProperties": false,
|
|
53
|
+
"required": [
|
|
54
|
+
"decision",
|
|
55
|
+
"primaryProfileId",
|
|
56
|
+
"directProfileIds",
|
|
57
|
+
"transitiveProfileIds",
|
|
58
|
+
"supportingProfileIds",
|
|
59
|
+
"selectedProfileIds",
|
|
60
|
+
"uncoveredPaths",
|
|
61
|
+
"warnings"
|
|
62
|
+
],
|
|
63
|
+
"properties": {
|
|
64
|
+
"decision": { "enum": ["targeted_profiles", "full_profile_required"] },
|
|
65
|
+
"primaryProfileId": { "type": ["string", "null"] },
|
|
66
|
+
"directProfileIds": { "$ref": "#/$defs/stringArray" },
|
|
67
|
+
"transitiveProfileIds": { "$ref": "#/$defs/stringArray" },
|
|
68
|
+
"supportingProfileIds": { "$ref": "#/$defs/stringArray" },
|
|
69
|
+
"selectedProfileIds": { "$ref": "#/$defs/stringArray" },
|
|
70
|
+
"uncoveredPaths": { "$ref": "#/$defs/stringArray" },
|
|
71
|
+
"warnings": { "$ref": "#/$defs/stringArray" }
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"evidence": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"additionalProperties": false,
|
|
77
|
+
"required": ["reusableReceiptIds", "invalidatedReceipts"],
|
|
78
|
+
"properties": {
|
|
79
|
+
"coverageIndexPath": { "type": "string", "minLength": 1 },
|
|
80
|
+
"coverageIndexSha256": { "$ref": "#/$defs/sha256" },
|
|
81
|
+
"reusableReceiptIds": { "$ref": "#/$defs/stringArray" },
|
|
82
|
+
"invalidatedReceipts": {
|
|
83
|
+
"type": "array",
|
|
84
|
+
"items": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"additionalProperties": false,
|
|
87
|
+
"required": ["receiptId", "reasons"],
|
|
88
|
+
"properties": {
|
|
89
|
+
"receiptId": { "type": "string", "minLength": 1 },
|
|
90
|
+
"reasons": { "$ref": "#/$defs/stringArray" }
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"commands": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"additionalProperties": false,
|
|
99
|
+
"required": [
|
|
100
|
+
"requiredCommandIds",
|
|
101
|
+
"reusedCommandIds",
|
|
102
|
+
"pendingCommandIds",
|
|
103
|
+
"unmappedProfileIds",
|
|
104
|
+
"pendingCommands"
|
|
105
|
+
],
|
|
106
|
+
"properties": {
|
|
107
|
+
"requiredCommandIds": { "$ref": "#/$defs/stringArray" },
|
|
108
|
+
"reusedCommandIds": { "$ref": "#/$defs/stringArray" },
|
|
109
|
+
"pendingCommandIds": { "$ref": "#/$defs/stringArray" },
|
|
110
|
+
"unmappedProfileIds": { "$ref": "#/$defs/stringArray" },
|
|
111
|
+
"pendingCommands": {
|
|
112
|
+
"type": "array",
|
|
113
|
+
"items": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"additionalProperties": false,
|
|
116
|
+
"required": ["id", "cwd", "executable", "argv", "profileIds"],
|
|
117
|
+
"properties": {
|
|
118
|
+
"id": { "type": "string", "minLength": 1 },
|
|
119
|
+
"cwd": { "type": "string", "minLength": 1 },
|
|
120
|
+
"executable": { "type": "string", "minLength": 1 },
|
|
121
|
+
"argv": {
|
|
122
|
+
"type": "array",
|
|
123
|
+
"items": { "type": "string", "minLength": 1 }
|
|
124
|
+
},
|
|
125
|
+
"profileIds": { "$ref": "#/$defs/stringArray" }
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"acceptance": {
|
|
132
|
+
"type": "object",
|
|
133
|
+
"additionalProperties": false,
|
|
134
|
+
"required": ["blocked", "reasons"],
|
|
135
|
+
"properties": {
|
|
136
|
+
"blocked": { "type": "boolean" },
|
|
137
|
+
"reasons": { "$ref": "#/$defs/stringArray" }
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"authorizationGranted": { "const": false }
|
|
141
|
+
},
|
|
142
|
+
"$defs": {
|
|
143
|
+
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
144
|
+
"stringArray": {
|
|
145
|
+
"type": "array",
|
|
146
|
+
"items": { "type": "string", "minLength": 1 },
|
|
147
|
+
"uniqueItems": true
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/verification-receipt-v2.json",
|
|
4
|
+
"title": "OwlCoda RunKit Verification Receipt V2",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "runId", "receiptId", "status", "sourceFingerprint", "verificationContextFingerprint", "selectedProfileIds", "commandRuns", "commandReceipts"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "OwlCodaRunKitVerificationReceiptV2" },
|
|
10
|
+
"runId": { "type": "string", "minLength": 1 },
|
|
11
|
+
"receiptId": { "type": "string", "minLength": 1 },
|
|
12
|
+
"status": { "enum": ["passed", "ready_for_verification", "shadow_validated", "invalidated_by_concurrent_write"] },
|
|
13
|
+
"sourceFingerprint": { "$ref": "#/$defs/sha256" },
|
|
14
|
+
"verificationContextFingerprint": { "$ref": "#/$defs/sha256" },
|
|
15
|
+
"goalContractSha256": { "$ref": "#/$defs/sha256" },
|
|
16
|
+
"risk": { "$ref": "#/$defs/risk" },
|
|
17
|
+
"selectedProfileIds": {
|
|
18
|
+
"type": "array",
|
|
19
|
+
"items": { "type": "string", "minLength": 1 },
|
|
20
|
+
"uniqueItems": true
|
|
21
|
+
},
|
|
22
|
+
"commandRuns": { "type": "integer", "minimum": 0 },
|
|
23
|
+
"supersedesReceiptSha256": { "$ref": "#/$defs/sha256" },
|
|
24
|
+
"commandReceipts": {
|
|
25
|
+
"type": "array",
|
|
26
|
+
"items": { "$ref": "#/$defs/commandReceipt" }
|
|
27
|
+
},
|
|
28
|
+
"repairControl": {
|
|
29
|
+
"$ref": "#/$defs/repairControl"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"allOf": [
|
|
33
|
+
{
|
|
34
|
+
"if": { "required": ["supersedesReceiptSha256"] },
|
|
35
|
+
"then": {
|
|
36
|
+
"required": ["repairControl", "goalContractSha256", "risk"]
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"if": { "required": ["repairControl"] },
|
|
41
|
+
"then": {
|
|
42
|
+
"required": ["supersedesReceiptSha256", "goalContractSha256", "risk"]
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"$defs": {
|
|
47
|
+
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
48
|
+
"commandReceipt": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"additionalProperties": false,
|
|
51
|
+
"required": ["id", "evidence", "exitCode", "stdoutSha256", "stderrSha256"],
|
|
52
|
+
"properties": {
|
|
53
|
+
"id": { "type": "string", "minLength": 1 },
|
|
54
|
+
"evidence": { "$ref": "replayable-evidence-v1.schema.json" },
|
|
55
|
+
"exitCode": { "type": "integer" },
|
|
56
|
+
"stdoutSha256": { "$ref": "#/$defs/sha256" },
|
|
57
|
+
"stderrSha256": { "$ref": "#/$defs/sha256" }
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"repairControl": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"additionalProperties": false,
|
|
63
|
+
"required": [
|
|
64
|
+
"repairPlanPath",
|
|
65
|
+
"repairPlanSha256",
|
|
66
|
+
"parentBindingMode",
|
|
67
|
+
"goalContractSha256",
|
|
68
|
+
"risk",
|
|
69
|
+
"profilesSha256",
|
|
70
|
+
"executableBindings"
|
|
71
|
+
],
|
|
72
|
+
"properties": {
|
|
73
|
+
"repairPlanPath": { "type": "string", "minLength": 1 },
|
|
74
|
+
"repairPlanSha256": { "$ref": "#/$defs/sha256" },
|
|
75
|
+
"parentBindingMode": { "const": "receipt" },
|
|
76
|
+
"goalContractSha256": { "$ref": "#/$defs/sha256" },
|
|
77
|
+
"risk": { "$ref": "#/$defs/risk" },
|
|
78
|
+
"profilesSha256": { "$ref": "#/$defs/sha256" },
|
|
79
|
+
"executableBindings": {
|
|
80
|
+
"type": "array",
|
|
81
|
+
"minItems": 1,
|
|
82
|
+
"items": { "$ref": "#/$defs/executableBinding" }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"risk": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"additionalProperties": false,
|
|
89
|
+
"required": ["riskMode", "riskCategories"],
|
|
90
|
+
"properties": {
|
|
91
|
+
"riskMode": { "enum": ["lightweight", "standard", "full"] },
|
|
92
|
+
"riskCategories": {
|
|
93
|
+
"type": "array",
|
|
94
|
+
"uniqueItems": true,
|
|
95
|
+
"items": {
|
|
96
|
+
"enum": [
|
|
97
|
+
"backtest",
|
|
98
|
+
"funds",
|
|
99
|
+
"migration",
|
|
100
|
+
"production",
|
|
101
|
+
"release"
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"executableBinding": {
|
|
108
|
+
"type": "object",
|
|
109
|
+
"additionalProperties": false,
|
|
110
|
+
"required": ["commandId", "executable", "sha256"],
|
|
111
|
+
"properties": {
|
|
112
|
+
"commandId": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
|
|
113
|
+
"executable": { "type": "string", "minLength": 1 },
|
|
114
|
+
"sha256": { "$ref": "#/$defs/sha256" }
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/verify-plan-request-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Verify Plan Request V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"planId",
|
|
10
|
+
"deliveryPacketPath",
|
|
11
|
+
"statusMode",
|
|
12
|
+
"dependencies",
|
|
13
|
+
"verificationContext",
|
|
14
|
+
"coverageIndexPath",
|
|
15
|
+
"coverageIndexSha256",
|
|
16
|
+
"globalGates"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"schemaVersion": { "const": "OwlCodaRunKitVerifyPlanRequestV1" },
|
|
20
|
+
"planId": { "type": "string", "minLength": 1 },
|
|
21
|
+
"deliveryPacketPath": { "type": "string", "minLength": 1 },
|
|
22
|
+
"statusMode": { "const": "porcelain-v1-z-untracked-all-runkit-excluded" },
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"items": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"additionalProperties": false,
|
|
28
|
+
"required": ["id", "path", "baselineSha256"],
|
|
29
|
+
"properties": {
|
|
30
|
+
"id": { "type": "string", "minLength": 1 },
|
|
31
|
+
"path": { "type": "string", "minLength": 1 },
|
|
32
|
+
"baselineSha256": { "$ref": "#/$defs/sha256" }
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"verificationContext": { "$ref": "verification-context-v1.schema.json" },
|
|
37
|
+
"coverageIndexPath": { "type": "string", "minLength": 1 },
|
|
38
|
+
"coverageIndexSha256": { "$ref": "#/$defs/sha256" },
|
|
39
|
+
"globalGates": {
|
|
40
|
+
"type": "array",
|
|
41
|
+
"items": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"required": ["id", "status"],
|
|
45
|
+
"properties": {
|
|
46
|
+
"id": { "type": "string", "minLength": 1 },
|
|
47
|
+
"status": { "enum": ["passed", "failed"] },
|
|
48
|
+
"reason": { "type": "string", "minLength": 1 }
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"$defs": {
|
|
54
|
+
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/visual-smoke-request-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Visual Smoke Request V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "smokeId", "mode", "targetRoot", "cwd", "executable", "argv", "launcherVersion", "toolVersions", "selectedPaths", "statusMode", "verificationContext", "resultPath", "automationManifest"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "OwlCodaRunKitVisualSmokeRequestV1" },
|
|
10
|
+
"smokeId": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
|
|
11
|
+
"mode": { "enum": ["project", "foreign_readonly"] },
|
|
12
|
+
"targetRoot": { "type": "string", "minLength": 1 },
|
|
13
|
+
"cwd": { "type": "string", "minLength": 1 },
|
|
14
|
+
"executable": { "type": "string", "minLength": 1 },
|
|
15
|
+
"argv": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
|
|
16
|
+
"launcherVersion": { "type": "string", "minLength": 1 },
|
|
17
|
+
"toolVersions": {
|
|
18
|
+
"type": "array",
|
|
19
|
+
"items": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"additionalProperties": false,
|
|
22
|
+
"required": ["name", "version"],
|
|
23
|
+
"properties": {
|
|
24
|
+
"name": { "type": "string", "minLength": 1 },
|
|
25
|
+
"version": { "type": "string", "minLength": 1 }
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"selectedPaths": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
|
|
30
|
+
"statusMode": { "const": "porcelain-v1-z-untracked-all-runkit-excluded" },
|
|
31
|
+
"verificationContext": { "$ref": "verification-context-v1.schema.json" },
|
|
32
|
+
"resultPath": { "type": "string", "minLength": 1 },
|
|
33
|
+
"automationManifest": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"additionalProperties": false,
|
|
36
|
+
"required": ["schemaVersion", "surface", "viewport", "assertionIds", "consolePolicy", "externalNavigationPolicy"],
|
|
37
|
+
"properties": {
|
|
38
|
+
"schemaVersion": { "const": "OwlCodaRunKitVisualAutomationManifestV1" },
|
|
39
|
+
"surface": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
|
|
40
|
+
"viewport": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": ["width", "height"],
|
|
44
|
+
"properties": {
|
|
45
|
+
"width": { "type": "integer", "minimum": 1 },
|
|
46
|
+
"height": { "type": "integer", "minimum": 1 }
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"assertionIds": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" } },
|
|
50
|
+
"consolePolicy": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"additionalProperties": false,
|
|
53
|
+
"required": ["maxErrors", "maxWarnings", "maxExceptions"],
|
|
54
|
+
"properties": {
|
|
55
|
+
"maxErrors": { "type": "integer", "minimum": 0 },
|
|
56
|
+
"maxWarnings": { "type": "integer", "minimum": 0 },
|
|
57
|
+
"maxExceptions": { "type": "integer", "minimum": 0 }
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"externalNavigationPolicy": { "const": "deny" }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/visual-smoke-result-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Visual Smoke Result V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "status", "viewport", "assertions", "console", "navigations", "outputArtifacts"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "OwlCodaRunKitVisualSmokeResultV1" },
|
|
10
|
+
"status": { "enum": ["passed", "failed"] },
|
|
11
|
+
"viewport": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": ["width", "height"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"width": { "type": "integer", "minimum": 1 },
|
|
17
|
+
"height": { "type": "integer", "minimum": 1 }
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"assertions": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"required": ["id", "passed"],
|
|
26
|
+
"properties": {
|
|
27
|
+
"id": { "type": "string", "minLength": 1 },
|
|
28
|
+
"passed": { "type": "boolean" }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"console": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"additionalProperties": false,
|
|
35
|
+
"required": ["errors", "warnings", "exceptions"],
|
|
36
|
+
"properties": {
|
|
37
|
+
"errors": { "type": "integer", "minimum": 0 },
|
|
38
|
+
"warnings": { "type": "integer", "minimum": 0 },
|
|
39
|
+
"exceptions": { "type": "integer", "minimum": 0 }
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"navigations": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"items": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"additionalProperties": false,
|
|
47
|
+
"required": ["protocol", "external"],
|
|
48
|
+
"properties": {
|
|
49
|
+
"protocol": { "type": "string", "minLength": 1 },
|
|
50
|
+
"external": { "type": "boolean" }
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"outputArtifacts": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"minItems": 1,
|
|
57
|
+
"items": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"additionalProperties": false,
|
|
60
|
+
"required": ["path", "mediaType"],
|
|
61
|
+
"properties": {
|
|
62
|
+
"path": { "type": "string", "minLength": 1 },
|
|
63
|
+
"mediaType": { "type": "string", "minLength": 1 }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|