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,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/closeout-receipt-v2.json",
|
|
4
|
+
"title": "OwlCoda RunKit Accepted Closeout Payload V2",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["runId", "decision", "authorizationGranted", "verification"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"runId": { "type": "string", "minLength": 1 },
|
|
10
|
+
"decision": { "const": "accepted" },
|
|
11
|
+
"authorizationGranted": { "const": false },
|
|
12
|
+
"verification": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"required": ["contractVersion", "gateDecision", "gateInputSha256", "activeReceiptSha256", "sourceFingerprint", "verificationContextFingerprint", "selectedProfileIds", "leaseState", "releasedLeaseIds"],
|
|
16
|
+
"properties": {
|
|
17
|
+
"contractVersion": { "const": "0.2" },
|
|
18
|
+
"gateDecision": { "const": "accepted_passed" },
|
|
19
|
+
"gateInputSha256": { "$ref": "#/$defs/sha256" },
|
|
20
|
+
"activeReceiptSha256": { "$ref": "#/$defs/sha256" },
|
|
21
|
+
"sourceFingerprint": { "$ref": "#/$defs/sha256" },
|
|
22
|
+
"verificationContextFingerprint": { "$ref": "#/$defs/sha256" },
|
|
23
|
+
"selectedProfileIds": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"minItems": 1,
|
|
26
|
+
"items": { "type": "string", "minLength": 1 },
|
|
27
|
+
"uniqueItems": true
|
|
28
|
+
},
|
|
29
|
+
"leaseState": { "const": "released" },
|
|
30
|
+
"releasedLeaseIds": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"minItems": 1,
|
|
33
|
+
"items": { "type": "string", "minLength": 1 },
|
|
34
|
+
"uniqueItems": true
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"$defs": {
|
|
40
|
+
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/core-artifact-v2.json",
|
|
4
|
+
"title": "OwlCoda RunKit Core Artifact V2",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "core", "producer", "payload", "extensions"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "RunKitCoreArtifactV2" },
|
|
10
|
+
"core": { "$ref": "engine-pin-v2.schema.json" },
|
|
11
|
+
"producer": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": ["adapterKind", "adapterVersion"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"adapterKind": { "type": "string", "minLength": 1 },
|
|
17
|
+
"adapterVersion": { "type": "string", "minLength": 1 }
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"payload": { "type": "object" },
|
|
21
|
+
"extensions": { "type": "object", "propertyNames": { "pattern": "^[^.]+\\..+" } }
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/core-artifact-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Core Artifact V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "core", "producer", "payload", "extensions"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "RunKitCoreArtifactV1" },
|
|
10
|
+
"core": { "$ref": "engine-pin.schema.json" },
|
|
11
|
+
"producer": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": ["adapterKind", "adapterVersion"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"adapterKind": { "type": "string", "minLength": 1 },
|
|
17
|
+
"adapterVersion": { "type": "string", "minLength": 1 }
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"payload": { "type": "object" },
|
|
21
|
+
"extensions": { "type": "object", "propertyNames": { "pattern": "^[^.]+\\..+" } }
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/coverage-adopt-request-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Coverage Adopt Request V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "coverageId", "sources"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "OwlCodaRunKitCoverageAdoptRequestV1" },
|
|
10
|
+
"coverageId": { "type": "string", "minLength": 1 },
|
|
11
|
+
"sources": {
|
|
12
|
+
"type": "array",
|
|
13
|
+
"items": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"additionalProperties": false,
|
|
16
|
+
"required": [
|
|
17
|
+
"gateInputPath",
|
|
18
|
+
"gateInputSha256",
|
|
19
|
+
"commandBindings",
|
|
20
|
+
"dependencyBindings"
|
|
21
|
+
],
|
|
22
|
+
"properties": {
|
|
23
|
+
"gateInputPath": { "type": "string", "minLength": 1 },
|
|
24
|
+
"gateInputSha256": { "$ref": "#/$defs/sha256" },
|
|
25
|
+
"commandBindings": {
|
|
26
|
+
"type": "array",
|
|
27
|
+
"minItems": 1,
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"required": ["receiptCommandId", "profileId", "commandId"],
|
|
32
|
+
"properties": {
|
|
33
|
+
"receiptCommandId": { "type": "string", "minLength": 1 },
|
|
34
|
+
"profileId": { "type": "string", "minLength": 1 },
|
|
35
|
+
"commandId": { "type": "string", "minLength": 1 }
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"dependencyBindings": {
|
|
40
|
+
"type": "array",
|
|
41
|
+
"items": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"required": ["dependencyId", "source"],
|
|
45
|
+
"properties": {
|
|
46
|
+
"dependencyId": { "type": "string", "minLength": 1 },
|
|
47
|
+
"source": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"additionalProperties": false,
|
|
50
|
+
"required": ["kind", "identity"],
|
|
51
|
+
"properties": {
|
|
52
|
+
"kind": { "enum": ["lockfile", "fixture", "material_input"] },
|
|
53
|
+
"identity": { "type": "string", "minLength": 1 }
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"$defs": {
|
|
64
|
+
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/engine-pin-v2.json",
|
|
4
|
+
"title": "OwlCoda RunKit Engine Pin V2",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["contractVersion", "coreVersion", "coreManifestSha256", "coreSourceRef"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"contractVersion": { "const": "0.2" },
|
|
10
|
+
"coreVersion": { "type": "string", "minLength": 1 },
|
|
11
|
+
"coreManifestSha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
|
|
12
|
+
"coreSourceRef": { "type": "string", "minLength": 1 }
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/engine-pin-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Engine Pin V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["contractVersion", "coreVersion", "coreManifestSha256", "coreSourceRef"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"contractVersion": { "const": "0.1" },
|
|
10
|
+
"coreVersion": { "type": "string", "minLength": 1 },
|
|
11
|
+
"coreManifestSha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
|
|
12
|
+
"coreSourceRef": { "type": "string", "minLength": 1 }
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/evidence-coverage-index-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Evidence Coverage Index V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"coverageId",
|
|
10
|
+
"runId",
|
|
11
|
+
"generatedFrom",
|
|
12
|
+
"entries",
|
|
13
|
+
"authorizationGranted"
|
|
14
|
+
],
|
|
15
|
+
"properties": {
|
|
16
|
+
"schemaVersion": { "const": "OwlCodaRunKitEvidenceCoverageIndexV1" },
|
|
17
|
+
"coverageId": { "type": "string", "minLength": 1 },
|
|
18
|
+
"runId": { "type": "string", "minLength": 1 },
|
|
19
|
+
"generatedFrom": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"additionalProperties": false,
|
|
24
|
+
"required": [
|
|
25
|
+
"gateInputPath",
|
|
26
|
+
"gateInputSha256",
|
|
27
|
+
"commandBindings",
|
|
28
|
+
"dependencyBindings",
|
|
29
|
+
"activeReceiptSha256",
|
|
30
|
+
"sourceRunId"
|
|
31
|
+
],
|
|
32
|
+
"properties": {
|
|
33
|
+
"gateInputPath": { "type": "string", "minLength": 1 },
|
|
34
|
+
"gateInputSha256": { "$ref": "#/$defs/sha256" },
|
|
35
|
+
"commandBindings": { "$ref": "#/$defs/commandBindings" },
|
|
36
|
+
"dependencyBindings": { "$ref": "#/$defs/dependencyBindings" },
|
|
37
|
+
"activeReceiptSha256": { "$ref": "#/$defs/sha256" },
|
|
38
|
+
"sourceRunId": { "type": "string", "minLength": 1 }
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"entries": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"items": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"additionalProperties": false,
|
|
47
|
+
"required": [
|
|
48
|
+
"receiptId",
|
|
49
|
+
"receiptSha256",
|
|
50
|
+
"status",
|
|
51
|
+
"sourceFiles",
|
|
52
|
+
"dependencySha256",
|
|
53
|
+
"verificationContextFingerprint",
|
|
54
|
+
"profileIds",
|
|
55
|
+
"commandIds"
|
|
56
|
+
],
|
|
57
|
+
"properties": {
|
|
58
|
+
"receiptId": { "type": "string", "minLength": 1 },
|
|
59
|
+
"receiptSha256": { "$ref": "#/$defs/sha256" },
|
|
60
|
+
"status": {
|
|
61
|
+
"enum": [
|
|
62
|
+
"passed",
|
|
63
|
+
"ready_for_verification",
|
|
64
|
+
"shadow_validated",
|
|
65
|
+
"invalidated_by_concurrent_write"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"sourceFiles": { "$ref": "#/$defs/fileMap" },
|
|
69
|
+
"dependencySha256": { "$ref": "#/$defs/hashMap" },
|
|
70
|
+
"verificationContextFingerprint": { "$ref": "#/$defs/sha256" },
|
|
71
|
+
"profileIds": {
|
|
72
|
+
"type": "array",
|
|
73
|
+
"items": { "type": "string", "minLength": 1 },
|
|
74
|
+
"uniqueItems": true
|
|
75
|
+
},
|
|
76
|
+
"commandIds": {
|
|
77
|
+
"type": "array",
|
|
78
|
+
"items": { "type": "string", "minLength": 1 },
|
|
79
|
+
"uniqueItems": true
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"authorizationGranted": { "const": false }
|
|
85
|
+
},
|
|
86
|
+
"$defs": {
|
|
87
|
+
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
88
|
+
"commandBindings": {
|
|
89
|
+
"type": "array",
|
|
90
|
+
"minItems": 1,
|
|
91
|
+
"items": {
|
|
92
|
+
"type": "object",
|
|
93
|
+
"additionalProperties": false,
|
|
94
|
+
"required": ["receiptCommandId", "profileId", "commandId"],
|
|
95
|
+
"properties": {
|
|
96
|
+
"receiptCommandId": { "type": "string", "minLength": 1 },
|
|
97
|
+
"profileId": { "type": "string", "minLength": 1 },
|
|
98
|
+
"commandId": { "type": "string", "minLength": 1 }
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"dependencyBindings": {
|
|
103
|
+
"type": "array",
|
|
104
|
+
"items": {
|
|
105
|
+
"type": "object",
|
|
106
|
+
"additionalProperties": false,
|
|
107
|
+
"required": ["dependencyId", "source"],
|
|
108
|
+
"properties": {
|
|
109
|
+
"dependencyId": { "type": "string", "minLength": 1 },
|
|
110
|
+
"source": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"additionalProperties": false,
|
|
113
|
+
"required": ["kind", "identity"],
|
|
114
|
+
"properties": {
|
|
115
|
+
"kind": { "enum": ["lockfile", "fixture", "material_input"] },
|
|
116
|
+
"identity": { "type": "string", "minLength": 1 }
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"fileMap": {
|
|
123
|
+
"type": "object",
|
|
124
|
+
"additionalProperties": { "$ref": "#/$defs/sha256" }
|
|
125
|
+
},
|
|
126
|
+
"hashMap": {
|
|
127
|
+
"type": "object",
|
|
128
|
+
"additionalProperties": { "$ref": "#/$defs/sha256" }
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/finalize-request-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Finalize Request V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "receiptId", "deliveryPacketPath", "verificationContext", "snapshotPaths"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "OwlCodaRunKitFinalizeRequestV1" },
|
|
10
|
+
"receiptId": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
|
|
11
|
+
"deliveryPacketPath": { "type": "string", "minLength": 1 },
|
|
12
|
+
"verificationContext": { "$ref": "verification-context-v1.schema.json" },
|
|
13
|
+
"snapshotPaths": {
|
|
14
|
+
"type": "array",
|
|
15
|
+
"uniqueItems": true,
|
|
16
|
+
"items": { "type": "string", "minLength": 1 }
|
|
17
|
+
},
|
|
18
|
+
"supersedesReceiptSha256": { "$ref": "#/$defs/sha256" },
|
|
19
|
+
"reusedCommandReceipts": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": { "$ref": "verification-receipt-v2.schema.json#/$defs/commandReceipt" }
|
|
22
|
+
},
|
|
23
|
+
"repairControl": {
|
|
24
|
+
"$ref": "#/$defs/repairControl"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"allOf": [
|
|
28
|
+
{
|
|
29
|
+
"anyOf": [
|
|
30
|
+
{
|
|
31
|
+
"properties": {
|
|
32
|
+
"snapshotPaths": { "minItems": 1 }
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"required": ["reusedCommandReceipts"],
|
|
37
|
+
"properties": {
|
|
38
|
+
"reusedCommandReceipts": { "minItems": 1 }
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"if": {
|
|
45
|
+
"required": ["supersedesReceiptSha256"]
|
|
46
|
+
},
|
|
47
|
+
"then": {
|
|
48
|
+
"required": ["repairControl"]
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"if": {
|
|
53
|
+
"required": ["repairControl"]
|
|
54
|
+
},
|
|
55
|
+
"then": {
|
|
56
|
+
"required": ["supersedesReceiptSha256"]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"if": {
|
|
61
|
+
"required": ["reusedCommandReceipts"],
|
|
62
|
+
"properties": {
|
|
63
|
+
"reusedCommandReceipts": { "minItems": 1 }
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"then": {
|
|
67
|
+
"required": ["supersedesReceiptSha256", "repairControl"]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"$defs": {
|
|
72
|
+
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
73
|
+
"repairControl": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"additionalProperties": false,
|
|
76
|
+
"required": [
|
|
77
|
+
"repairPlanPath",
|
|
78
|
+
"repairPlanSha256",
|
|
79
|
+
"parentBindingMode",
|
|
80
|
+
"goalContractSha256",
|
|
81
|
+
"risk",
|
|
82
|
+
"profilesSha256",
|
|
83
|
+
"executableBindings"
|
|
84
|
+
],
|
|
85
|
+
"properties": {
|
|
86
|
+
"repairPlanPath": { "type": "string", "minLength": 1 },
|
|
87
|
+
"repairPlanSha256": { "$ref": "#/$defs/sha256" },
|
|
88
|
+
"parentBindingMode": { "const": "receipt" },
|
|
89
|
+
"goalContractSha256": { "$ref": "#/$defs/sha256" },
|
|
90
|
+
"risk": { "$ref": "#/$defs/risk" },
|
|
91
|
+
"profilesSha256": { "$ref": "#/$defs/sha256" },
|
|
92
|
+
"executableBindings": {
|
|
93
|
+
"type": "array",
|
|
94
|
+
"minItems": 1,
|
|
95
|
+
"items": { "$ref": "#/$defs/executableBinding" }
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"risk": {
|
|
100
|
+
"type": "object",
|
|
101
|
+
"additionalProperties": false,
|
|
102
|
+
"required": ["riskMode", "riskCategories"],
|
|
103
|
+
"properties": {
|
|
104
|
+
"riskMode": { "enum": ["lightweight", "standard", "full"] },
|
|
105
|
+
"riskCategories": {
|
|
106
|
+
"type": "array",
|
|
107
|
+
"uniqueItems": true,
|
|
108
|
+
"items": {
|
|
109
|
+
"enum": [
|
|
110
|
+
"backtest",
|
|
111
|
+
"funds",
|
|
112
|
+
"migration",
|
|
113
|
+
"production",
|
|
114
|
+
"release"
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"executableBinding": {
|
|
121
|
+
"type": "object",
|
|
122
|
+
"additionalProperties": false,
|
|
123
|
+
"required": ["commandId", "executable", "sha256"],
|
|
124
|
+
"properties": {
|
|
125
|
+
"commandId": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
|
|
126
|
+
"executable": { "type": "string", "minLength": 1 },
|
|
127
|
+
"sha256": { "$ref": "#/$defs/sha256" }
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/profiles-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Profiles V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "profiles"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "OwlCodaRunKitProfilesV1" },
|
|
10
|
+
"profiles": {
|
|
11
|
+
"type": "array",
|
|
12
|
+
"items": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"required": ["id", "paths"],
|
|
16
|
+
"properties": {
|
|
17
|
+
"id": { "type": "string", "minLength": 1 },
|
|
18
|
+
"paths": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
|
|
19
|
+
"role": { "enum": ["primary", "supporting"] },
|
|
20
|
+
"primary": { "type": "boolean" },
|
|
21
|
+
"requiresProfileIds": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"items": { "type": "string", "minLength": 1 },
|
|
24
|
+
"uniqueItems": true
|
|
25
|
+
},
|
|
26
|
+
"commands": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"required": ["id", "cwd", "executable", "argv"],
|
|
32
|
+
"properties": {
|
|
33
|
+
"id": { "type": "string", "minLength": 1 },
|
|
34
|
+
"cwd": { "type": "string", "minLength": 1 },
|
|
35
|
+
"executable": { "type": "string", "minLength": 1 },
|
|
36
|
+
"argv": {
|
|
37
|
+
"type": "array",
|
|
38
|
+
"items": { "type": "string", "minLength": 1 }
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/project-config-v2.json",
|
|
4
|
+
"title": "OwlCoda RunKit Project Config V2",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "core", "authorizationPolicy"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "OwlCodaRunKitConfigV2" },
|
|
10
|
+
"core": { "$ref": "engine-pin-v2.schema.json" },
|
|
11
|
+
"authorizationPolicy": { "const": "external_explicit_authority_required" }
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/project-config-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Project Config V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "core", "authorizationPolicy"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "OwlCodaRunKitConfigV1" },
|
|
10
|
+
"core": { "$ref": "engine-pin.schema.json" },
|
|
11
|
+
"authorizationPolicy": { "const": "external_explicit_authority_required" }
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/ready-for-commit-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Ready For Commit Request V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "deliveryPacketPath", "verificationGateInputPath", "roots"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "OwlCodaRunKitReadyForCommitRequestV1" },
|
|
10
|
+
"deliveryPacketPath": { "type": "string", "minLength": 1 },
|
|
11
|
+
"verificationGateInputPath": { "type": "string", "minLength": 1 },
|
|
12
|
+
"roots": {
|
|
13
|
+
"type": "array",
|
|
14
|
+
"minItems": 1,
|
|
15
|
+
"items": {
|
|
16
|
+
"type": "object",
|
|
17
|
+
"additionalProperties": false,
|
|
18
|
+
"required": ["role", "snapshotPath"],
|
|
19
|
+
"properties": {
|
|
20
|
+
"role": { "type": "string", "minLength": 1 },
|
|
21
|
+
"snapshotPath": { "type": "string", "minLength": 1 }
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://owlcoda.dev/schemas/runkit/replayable-evidence-v1.json",
|
|
4
|
+
"title": "OwlCoda RunKit Replayable Evidence V1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schemaVersion", "kind", "cwd", "launcher", "toolVersions", "materialInputs", "outputArtifacts"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schemaVersion": { "const": "OwlCodaRunKitReplayableEvidenceV1" },
|
|
10
|
+
"kind": { "enum": ["shell", "automation"] },
|
|
11
|
+
"cwd": { "type": "string", "minLength": 1 },
|
|
12
|
+
"launcher": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"required": ["executable", "version"],
|
|
16
|
+
"properties": {
|
|
17
|
+
"executable": { "type": "string", "minLength": 1 },
|
|
18
|
+
"version": { "type": "string", "minLength": 1 }
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"argv": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"minItems": 1,
|
|
24
|
+
"items": { "type": "string", "minLength": 1 }
|
|
25
|
+
},
|
|
26
|
+
"automationManifestSha256": { "$ref": "#/$defs/sha256" },
|
|
27
|
+
"toolVersions": {
|
|
28
|
+
"type": "array",
|
|
29
|
+
"items": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"required": ["name", "version"],
|
|
33
|
+
"properties": {
|
|
34
|
+
"name": { "type": "string", "minLength": 1 },
|
|
35
|
+
"version": { "type": "string", "minLength": 1 }
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"materialInputs": {
|
|
40
|
+
"type": "array",
|
|
41
|
+
"items": { "$ref": "#/$defs/idHash" }
|
|
42
|
+
},
|
|
43
|
+
"outputArtifacts": {
|
|
44
|
+
"type": "array",
|
|
45
|
+
"items": { "$ref": "#/$defs/pathHash" }
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"allOf": [
|
|
49
|
+
{
|
|
50
|
+
"if": { "properties": { "kind": { "const": "shell" } } },
|
|
51
|
+
"then": { "required": ["argv"] }
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"if": { "properties": { "kind": { "const": "automation" } } },
|
|
55
|
+
"then": {
|
|
56
|
+
"required": ["automationManifestSha256"],
|
|
57
|
+
"properties": { "outputArtifacts": { "minItems": 1 } }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"$defs": {
|
|
62
|
+
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
63
|
+
"idHash": {
|
|
64
|
+
"type": "object",
|
|
65
|
+
"additionalProperties": false,
|
|
66
|
+
"required": ["id", "sha256"],
|
|
67
|
+
"properties": {
|
|
68
|
+
"id": { "type": "string", "minLength": 1 },
|
|
69
|
+
"sha256": { "$ref": "#/$defs/sha256" }
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"pathHash": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"additionalProperties": false,
|
|
75
|
+
"required": ["path", "sha256"],
|
|
76
|
+
"properties": {
|
|
77
|
+
"path": { "type": "string", "minLength": 1 },
|
|
78
|
+
"sha256": { "$ref": "#/$defs/sha256" }
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|