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.
Files changed (128) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE +674 -0
  3. package/NOTICE.md +137 -0
  4. package/README.md +44 -0
  5. package/SOURCE.md +10 -0
  6. package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_1.md +160 -0
  7. package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_2.md +459 -0
  8. package/integrations/codex/skills/owlcoda-runkit/SKILL.md +408 -0
  9. package/integrations/codex/skills/owlcoda-runkit/agents/openai.yaml +4 -0
  10. package/integrations/codex/skills/owlcoda-runkit/assets/templates/agents-snippet.md +7 -0
  11. package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +10 -0
  12. package/integrations/codex/skills/owlcoda-runkit/assets/templates/coverage-adopt-request.json +26 -0
  13. package/integrations/codex/skills/owlcoda-runkit/assets/templates/execution-delivery-packet.json +13 -0
  14. package/integrations/codex/skills/owlcoda-runkit/assets/templates/finalize-request.json +18 -0
  15. package/integrations/codex/skills/owlcoda-runkit/assets/templates/goal-contract.json +11 -0
  16. package/integrations/codex/skills/owlcoda-runkit/assets/templates/profiles.json +9 -0
  17. package/integrations/codex/skills/owlcoda-runkit/assets/templates/ready-for-commit-request.json +11 -0
  18. package/integrations/codex/skills/owlcoda-runkit/assets/templates/resource-preflight-request.json +56 -0
  19. package/integrations/codex/skills/owlcoda-runkit/assets/templates/resume-request.json +10 -0
  20. package/integrations/codex/skills/owlcoda-runkit/assets/templates/snapshot-request.json +23 -0
  21. package/integrations/codex/skills/owlcoda-runkit/assets/templates/verification-context.json +15 -0
  22. package/integrations/codex/skills/owlcoda-runkit/assets/templates/verification-receipt.json +11 -0
  23. package/integrations/codex/skills/owlcoda-runkit/assets/templates/verify-plan-request.json +31 -0
  24. package/integrations/codex/skills/owlcoda-runkit/assets/templates/visual-smoke-request.json +32 -0
  25. package/integrations/codex/skills/owlcoda-runkit/assets/templates/worker-lease.json +7 -0
  26. package/package.json +24 -0
  27. package/packages/attest/LICENSE +674 -0
  28. package/packages/attest/README.md +63 -0
  29. package/packages/attest/cli/owlcoda-attest.mjs +155 -0
  30. package/packages/attest/consumer-surface-v1.json +255 -0
  31. package/packages/attest/distribution-manifest-v1.json +104 -0
  32. package/packages/attest/fixtures/bad/accepted-authority-leak.json +7 -0
  33. package/packages/attest/fixtures/bad/accepted-failed-receipt.json +7 -0
  34. package/packages/attest/fixtures/bad/active-context-binding-mismatch.json +7 -0
  35. package/packages/attest/fixtures/bad/active-source-binding-mismatch.json +7 -0
  36. package/packages/attest/fixtures/bad/context-fingerprint-mismatch.json +7 -0
  37. package/packages/attest/fixtures/bad/duplicate-object-key.json +8 -0
  38. package/packages/attest/fixtures/bad/multiple-active-leaves.json +10 -0
  39. package/packages/attest/fixtures/bad/orphan-replacement.json +7 -0
  40. package/packages/attest/fixtures/bad/root-shape-extra-property.json +8 -0
  41. package/packages/attest/fixtures/bad/source-fingerprint-mismatch.json +7 -0
  42. package/packages/attest/fixtures/good/accepted-replacement-chain.json +59 -0
  43. package/packages/attest/fixtures/good/blocked-single-leaf.json +9 -0
  44. package/packages/attest/fixtures/index.json +90 -0
  45. package/packages/attest/sbom.spdx.json +33 -0
  46. package/packages/attest/schemas/attestation-ref-v1.schema.json +44 -0
  47. package/packages/attest/schemas/attestation-result-v1.schema.json +163 -0
  48. package/packages/attest/schemas/offline-attestation-bundle-v1.schema.json +30 -0
  49. package/packages/attest/schemas/public-verification-bundle-v1.schema.json +74 -0
  50. package/packages/attest/schemas/quick-verification-receipt-v1.schema.json +219 -0
  51. package/packages/attest/schemas/workspace-snapshot-v1.schema.json +135 -0
  52. package/packages/attest/src/canonical.mjs +12 -0
  53. package/packages/attest/src/formal.mjs +762 -0
  54. package/packages/attest/src/index.mjs +113 -0
  55. package/packages/attest/src/offline-bundle.mjs +108 -0
  56. package/packages/attest/src/quick-receipt-contract.mjs +156 -0
  57. package/packages/attest/src/quick.mjs +274 -0
  58. package/packages/attest/src/reference-contract.mjs +64 -0
  59. package/packages/attest/src/reference.mjs +131 -0
  60. package/packages/attest/src/workspace-snapshot.mjs +171 -0
  61. package/registry-release-policy-v1.json +34 -0
  62. package/sbom.spdx.json +39 -0
  63. package/scripts/runkit-contract/acceptance-evidence.mjs +103 -0
  64. package/scripts/runkit-contract/core-contract.mjs +392 -0
  65. package/scripts/runkit-contract/coverage-adoption.mjs +414 -0
  66. package/scripts/runkit-contract/delivery-create.mjs +252 -0
  67. package/scripts/runkit-contract/delivery-selection.mjs +31 -0
  68. package/scripts/runkit-contract/finalize.mjs +790 -0
  69. package/scripts/runkit-contract/inspect-presentation.mjs +183 -0
  70. package/scripts/runkit-contract/install-codex-skill.mjs +239 -0
  71. package/scripts/runkit-contract/lease-lifecycle.mjs +324 -0
  72. package/scripts/runkit-contract/lifecycle-orchestration.mjs +415 -0
  73. package/scripts/runkit-contract/offline-store.mjs +248 -0
  74. package/scripts/runkit-contract/profile-impact.mjs +223 -0
  75. package/scripts/runkit-contract/provenance-common.mjs +153 -0
  76. package/scripts/runkit-contract/quick-attest.mjs +4 -0
  77. package/scripts/runkit-contract/quick-canonical.mjs +41 -0
  78. package/scripts/runkit-contract/quick-metrics.mjs +86 -0
  79. package/scripts/runkit-contract/quick-receipt.mjs +139 -0
  80. package/scripts/runkit-contract/quick-verify.mjs +201 -0
  81. package/scripts/runkit-contract/quick-workspace-snapshot.mjs +3 -0
  82. package/scripts/runkit-contract/ready-for-commit.mjs +188 -0
  83. package/scripts/runkit-contract/receipt-lineage.mjs +332 -0
  84. package/scripts/runkit-contract/registry-adoption-gate.mjs +117 -0
  85. package/scripts/runkit-contract/repair-execution.mjs +997 -0
  86. package/scripts/runkit-contract/resource-preflight.mjs +829 -0
  87. package/scripts/runkit-contract/resume-execution.mjs +569 -0
  88. package/scripts/runkit-contract/runkit-cli.mjs +1214 -0
  89. package/scripts/runkit-contract/schemas/closeout-receipt-v2.schema.json +42 -0
  90. package/scripts/runkit-contract/schemas/core-artifact-v2.schema.json +23 -0
  91. package/scripts/runkit-contract/schemas/core-artifact.schema.json +23 -0
  92. package/scripts/runkit-contract/schemas/coverage-adopt-request-v1.schema.json +66 -0
  93. package/scripts/runkit-contract/schemas/engine-pin-v2.schema.json +14 -0
  94. package/scripts/runkit-contract/schemas/engine-pin.schema.json +14 -0
  95. package/scripts/runkit-contract/schemas/evidence-coverage-index-v1.schema.json +131 -0
  96. package/scripts/runkit-contract/schemas/finalize-request-v1.schema.json +131 -0
  97. package/scripts/runkit-contract/schemas/profiles.schema.json +47 -0
  98. package/scripts/runkit-contract/schemas/project-config-v2.schema.json +13 -0
  99. package/scripts/runkit-contract/schemas/project-config.schema.json +13 -0
  100. package/scripts/runkit-contract/schemas/ready-for-commit-v1.schema.json +26 -0
  101. package/scripts/runkit-contract/schemas/replayable-evidence-v1.schema.json +82 -0
  102. package/scripts/runkit-contract/schemas/resource-preflight-request-v1.schema.json +178 -0
  103. package/scripts/runkit-contract/schemas/resource-preflight-v1.schema.json +153 -0
  104. package/scripts/runkit-contract/schemas/resume-attempt-v1.schema.json +80 -0
  105. package/scripts/runkit-contract/schemas/resume-request-v1.schema.json +77 -0
  106. package/scripts/runkit-contract/schemas/snapshot-v1.schema.json +71 -0
  107. package/scripts/runkit-contract/schemas/verification-context-v1.schema.json +92 -0
  108. package/scripts/runkit-contract/schemas/verification-plan-v1.schema.json +150 -0
  109. package/scripts/runkit-contract/schemas/verification-receipt-v2.schema.json +118 -0
  110. package/scripts/runkit-contract/schemas/verify-plan-request-v1.schema.json +56 -0
  111. package/scripts/runkit-contract/schemas/visual-smoke-request-v1.schema.json +64 -0
  112. package/scripts/runkit-contract/schemas/visual-smoke-result-v1.schema.json +68 -0
  113. package/scripts/runkit-contract/snapshot.mjs +340 -0
  114. package/scripts/runkit-contract/source-fingerprint.mjs +404 -0
  115. package/scripts/runkit-contract/templates/coverage-adopt-request.json +26 -0
  116. package/scripts/runkit-contract/templates/finalize-request.json +18 -0
  117. package/scripts/runkit-contract/templates/goal-contract.json +11 -0
  118. package/scripts/runkit-contract/templates/ready-for-commit-request.json +11 -0
  119. package/scripts/runkit-contract/templates/resource-preflight-request.json +56 -0
  120. package/scripts/runkit-contract/templates/resume-request.json +10 -0
  121. package/scripts/runkit-contract/templates/snapshot-request.json +23 -0
  122. package/scripts/runkit-contract/templates/verify-plan-request.json +31 -0
  123. package/scripts/runkit-contract/templates/visual-smoke-request.json +32 -0
  124. package/scripts/runkit-contract/templates/worker-lease.json +7 -0
  125. package/scripts/runkit-contract/verification-context.mjs +141 -0
  126. package/scripts/runkit-contract/verification-plan.mjs +608 -0
  127. package/scripts/runkit-contract/verification-receipt-gate.mjs +566 -0
  128. 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
+ }