owlrunkit 0.15.0 → 0.16.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 (76) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/README.md +274 -66
  3. package/integrations/codex/skills/owlcoda-runkit/SKILL.md +223 -117
  4. package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
  5. package/integrations/codex/skills/owlcoda-runkit/assets/templates/ready-for-commit-request.json +2 -2
  6. package/package.json +2 -2
  7. package/packages/attest/distribution-manifest-v1.json +10 -0
  8. package/packages/attest/src/quick.mjs +10 -0
  9. package/registry-release-policy-v1.json +8 -2
  10. package/sbom.spdx.json +5 -5
  11. package/scripts/runkit-contract/assurance-router.mjs +119 -0
  12. package/scripts/runkit-contract/core-contract.mjs +250 -115
  13. package/scripts/runkit-contract/core-successor.mjs +2043 -0
  14. package/scripts/runkit-contract/deployment-workflow.mjs +2040 -0
  15. package/scripts/runkit-contract/finalize.mjs +242 -21
  16. package/scripts/runkit-contract/fleet-discovery.mjs +456 -0
  17. package/scripts/runkit-contract/formal-workflow.mjs +850 -0
  18. package/scripts/runkit-contract/human-status.mjs +553 -0
  19. package/scripts/runkit-contract/inspect-presentation.mjs +25 -8
  20. package/scripts/runkit-contract/install-codex-skill.mjs +73 -30
  21. package/scripts/runkit-contract/lease-lifecycle.mjs +8 -2
  22. package/scripts/runkit-contract/lifecycle-orchestration.mjs +135 -12
  23. package/scripts/runkit-contract/onboarding-doctor.mjs +43 -90
  24. package/scripts/runkit-contract/owner-authority-trust.mjs +230 -0
  25. package/scripts/runkit-contract/owner-deployment-decision.mjs +385 -0
  26. package/scripts/runkit-contract/profile-onboarding.mjs +841 -13
  27. package/scripts/runkit-contract/project-cli-resolver.mjs +701 -0
  28. package/scripts/runkit-contract/project-control-parser.mjs +830 -0
  29. package/scripts/runkit-contract/project-control-state.mjs +28 -0
  30. package/scripts/runkit-contract/provenance-common.mjs +19 -2
  31. package/scripts/runkit-contract/ready-for-commit.mjs +330 -18
  32. package/scripts/runkit-contract/remote-deployment.mjs +1596 -0
  33. package/scripts/runkit-contract/remote-process-adapter.mjs +177 -0
  34. package/scripts/runkit-contract/runkit-bootstrap.mjs +131 -0
  35. package/scripts/runkit-contract/runkit-cli.mjs +1097 -21
  36. package/scripts/runkit-contract/schemas/assurance-route-v1.schema.json +26 -0
  37. package/scripts/runkit-contract/schemas/core-successor-batch-receipt-v1.schema.json +126 -0
  38. package/scripts/runkit-contract/schemas/core-successor-plan-v1.schema.json +155 -0
  39. package/scripts/runkit-contract/schemas/core-successor-project-success-receipt-v1.schema.json +72 -0
  40. package/scripts/runkit-contract/schemas/deployment-execute-request-v1.schema.json +63 -0
  41. package/scripts/runkit-contract/schemas/deployment-lineage-v1.schema.json +292 -0
  42. package/scripts/runkit-contract/schemas/deployment-prepare-receipt-v1.schema.json +140 -0
  43. package/scripts/runkit-contract/schemas/fleet-discovery-v1.schema.json +31 -0
  44. package/scripts/runkit-contract/schemas/fleet-manifest-v1.schema.json +20 -0
  45. package/scripts/runkit-contract/schemas/fleet-root-registry-v1.schema.json +34 -0
  46. package/scripts/runkit-contract/schemas/human-status-v1.schema.json +102 -0
  47. package/scripts/runkit-contract/schemas/owner-authority-trust-v1.schema.json +66 -0
  48. package/scripts/runkit-contract/schemas/owner-deployment-authority-v1.schema.json +46 -0
  49. package/scripts/runkit-contract/schemas/owner-deployment-authority-v2.schema.json +94 -0
  50. package/scripts/runkit-contract/schemas/owner-deployment-decision-v1.schema.json +102 -0
  51. package/scripts/runkit-contract/schemas/owner-migration-authority-v1.schema.json +33 -0
  52. package/scripts/runkit-contract/schemas/owner-migration-authority-v2.schema.json +67 -0
  53. package/scripts/runkit-contract/schemas/profile-apply-receipt-v1.schema.json +32 -0
  54. package/scripts/runkit-contract/schemas/profile-detection-v2.schema.json +145 -0
  55. package/scripts/runkit-contract/schemas/ready-for-commit-v2.schema.json +37 -0
  56. package/scripts/runkit-contract/schemas/remote-deployment-manifest-v1.schema.json +379 -0
  57. package/scripts/runkit-contract/schemas/remote-deployment-result-v1.schema.json +153 -0
  58. package/scripts/runkit-contract/schemas/remote-deployment-stage-journal-v1.schema.json +183 -0
  59. package/scripts/runkit-contract/schemas/remote-target-v1.schema.json +32 -0
  60. package/scripts/runkit-contract/schemas/source-candidate-v2.schema.json +152 -0
  61. package/scripts/runkit-contract/schemas/verification-receipt-v2.schema.json +13 -0
  62. package/scripts/runkit-contract/snapshot.mjs +1 -1
  63. package/scripts/runkit-contract/source-candidate.mjs +1382 -0
  64. package/scripts/runkit-contract/ssh-remote-adapter.mjs +1184 -0
  65. package/scripts/runkit-contract/sync-core016-release-identity.mjs +161 -0
  66. package/scripts/runkit-contract/templates/assurance-request.json +13 -0
  67. package/scripts/runkit-contract/templates/core-successor-owner-authority.json +15 -0
  68. package/scripts/runkit-contract/templates/deployment-execute-request.json +39 -0
  69. package/scripts/runkit-contract/templates/deployment-owner-authority.json +23 -0
  70. package/scripts/runkit-contract/templates/deployment-owner-decision.json +26 -0
  71. package/scripts/runkit-contract/templates/fleet-manifest.json +8 -0
  72. package/scripts/runkit-contract/templates/fleet-root-registry.json +8 -0
  73. package/scripts/runkit-contract/templates/owner-authority-trust.json +16 -0
  74. package/scripts/runkit-contract/templates/ready-for-commit-request.json +2 -2
  75. package/scripts/runkit-contract/templates/remote-deployment-manifest.json +108 -0
  76. package/scripts/runkit-contract/verification-receipt-gate.mjs +28 -0
@@ -0,0 +1,292 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/deployment-lineage-v1.json",
4
+ "title": "OwlCoda RunKit Deployment Lineage V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "parent", "child", "target", "authority", "permissions", "authorizationGranted", "lineageSha256"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "OwlCodaRunKitDeploymentLineageV1" },
10
+ "parent": { "$ref": "#/$defs/parent" },
11
+ "child": { "$ref": "#/$defs/child" },
12
+ "ownerDecision": { "$ref": "#/$defs/compiledOwnerDecision" },
13
+ "target": { "$ref": "#/$defs/targetBinding" },
14
+ "authority": { "$ref": "#/$defs/authority" },
15
+ "permissions": { "$ref": "#/$defs/permissions" },
16
+ "authorizationGranted": { "const": false },
17
+ "lineageSha256": { "$ref": "#/$defs/hash" }
18
+ },
19
+ "$defs": {
20
+ "id": { "type": "string", "minLength": 1 },
21
+ "hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
22
+ "hashRef": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
23
+ "ownerDecisionBinding": {
24
+ "type": "object",
25
+ "additionalProperties": false,
26
+ "required": ["decisionId", "decisionVersion", "decisionSha256", "deploymentMode", "existingProjectAssets", "legacyRollbackAllowed", "dataAuthority", "serviceActivationAuthorized", "baselineCutAuthorized", "destructiveScope"],
27
+ "properties": {
28
+ "decisionId": { "$ref": "#/$defs/id" },
29
+ "decisionVersion": { "type": "integer", "minimum": 1 },
30
+ "decisionSha256": { "$ref": "#/$defs/hash" },
31
+ "compilationSha256": { "$ref": "#/$defs/hash" },
32
+ "deploymentMode": { "enum": ["clean_install", "in_place_update"] },
33
+ "existingProjectAssets": { "enum": ["preserve", "replace", "remove"] },
34
+ "legacyRollbackAllowed": { "type": "boolean" },
35
+ "dataAuthority": {
36
+ "type": "object",
37
+ "additionalProperties": false,
38
+ "required": ["mode", "sourceRef"],
39
+ "properties": {
40
+ "mode": { "enum": ["preserve_existing", "replace_from_artifact", "initialize_new"] },
41
+ "sourceRef": { "type": "string", "minLength": 1 }
42
+ }
43
+ },
44
+ "serviceActivationAuthorized": { "type": "boolean" },
45
+ "baselineCutAuthorized": { "type": "boolean" },
46
+ "destructiveScope": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true }
47
+ }
48
+ },
49
+ "compiledOwnerDecision": {
50
+ "allOf": [
51
+ { "$ref": "#/$defs/ownerDecisionBinding" },
52
+ {
53
+ "type": "object",
54
+ "required": ["compilationSha256"],
55
+ "properties": {
56
+ "compilationSha256": { "$ref": "#/$defs/hash" }
57
+ }
58
+ }
59
+ ]
60
+ },
61
+ "descriptor": {
62
+ "type": "object",
63
+ "additionalProperties": false,
64
+ "required": ["path", "sha256"],
65
+ "properties": { "path": { "type": "string", "minLength": 1 }, "sha256": { "$ref": "#/$defs/hash" } }
66
+ },
67
+ "artifact": {
68
+ "type": "object",
69
+ "additionalProperties": false,
70
+ "required": ["path", "sha256", "size", "mediaType"],
71
+ "properties": { "path": { "type": "string", "minLength": 1 }, "sha256": { "$ref": "#/$defs/hash" }, "size": { "type": "integer", "minimum": 0 }, "mediaType": { "type": "string", "minLength": 1 } }
72
+ },
73
+ "sourceArtifact": {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "required": ["kind", "runId", "path", "sha256", "sourceFingerprint"],
77
+ "properties": {
78
+ "kind": { "const": "source_candidate_v2" },
79
+ "runId": { "$ref": "#/$defs/id" },
80
+ "path": { "type": "string", "minLength": 1 },
81
+ "sha256": { "$ref": "#/$defs/hash" },
82
+ "sourceFingerprint": { "$ref": "#/$defs/hash" }
83
+ }
84
+ },
85
+ "parent": {
86
+ "type": "object",
87
+ "additionalProperties": false,
88
+ "required": ["prepareRunId", "prepareGoal", "prepareReceiptSha256", "acceptedCloseoutSha256", "artifact"],
89
+ "properties": {
90
+ "prepareRunId": { "$ref": "#/$defs/id" },
91
+ "prepareGoal": { "$ref": "#/$defs/descriptor" },
92
+ "prepareReceiptSha256": { "$ref": "#/$defs/hash" },
93
+ "acceptedCloseoutSha256": { "$ref": "#/$defs/hash" },
94
+ "deliveryPacketSha256": { "$ref": "#/$defs/hash" },
95
+ "sourceArtifact": { "$ref": "#/$defs/sourceArtifact" },
96
+ "artifact": { "$ref": "#/$defs/artifact" }
97
+ },
98
+ "oneOf": [
99
+ { "type": "object", "required": ["deliveryPacketSha256"] },
100
+ { "type": "object", "required": ["sourceArtifact"] }
101
+ ]
102
+ },
103
+ "child": {
104
+ "type": "object",
105
+ "additionalProperties": false,
106
+ "required": ["executeRunId", "executeGoal", "control"],
107
+ "properties": {
108
+ "executeRunId": { "$ref": "#/$defs/id" },
109
+ "executeGoal": { "$ref": "#/$defs/descriptor" },
110
+ "control": { "$ref": "#/$defs/childControl" }
111
+ }
112
+ },
113
+ "targetBinding": {
114
+ "type": "object",
115
+ "additionalProperties": false,
116
+ "required": ["value", "sha256"],
117
+ "properties": { "value": { "$ref": "#/$defs/remoteTarget" }, "sha256": { "$ref": "#/$defs/hash" } }
118
+ },
119
+ "authority": {
120
+ "type": "object",
121
+ "additionalProperties": false,
122
+ "required": [
123
+ "source",
124
+ "authorityId",
125
+ "path",
126
+ "sha256",
127
+ "signerKeyId",
128
+ "trustStoreSha256",
129
+ "remoteManifestFileSha256",
130
+ "remoteDeploymentIntentSha256",
131
+ "ownerDecisionId",
132
+ "ownerDecisionSha256",
133
+ "inheritedFromPrepare"
134
+ ],
135
+ "properties": {
136
+ "source": { "const": "owner" },
137
+ "authorityId": { "$ref": "#/$defs/id" },
138
+ "path": { "type": "string", "minLength": 1 },
139
+ "sha256": { "$ref": "#/$defs/hash" },
140
+ "signerKeyId": { "$ref": "#/$defs/id" },
141
+ "trustStoreSha256": { "$ref": "#/$defs/hashRef" },
142
+ "remoteManifestFileSha256": { "$ref": "#/$defs/hash" },
143
+ "remoteDeploymentIntentSha256": { "$ref": "#/$defs/hash" },
144
+ "ownerDecisionId": { "$ref": "#/$defs/id" },
145
+ "ownerDecisionSha256": { "$ref": "#/$defs/hash" },
146
+ "inheritedFromPrepare": { "const": false }
147
+ }
148
+ },
149
+ "permissions": {
150
+ "type": "object",
151
+ "additionalProperties": false,
152
+ "required": ["deploy", "destructive"],
153
+ "properties": { "deploy": { "const": true }, "destructive": { "type": "boolean" } }
154
+ },
155
+ "remoteTarget": {
156
+ "type": "object",
157
+ "additionalProperties": false,
158
+ "required": ["schemaVersion", "targetId", "environment", "host", "port", "user", "hostKeySha256", "machineIdentitySha256"],
159
+ "properties": {
160
+ "schemaVersion": { "const": "OwlCodaRunKitRemoteTargetV1" },
161
+ "targetId": { "$ref": "#/$defs/id" },
162
+ "environment": { "$ref": "#/$defs/id" },
163
+ "host": { "type": "string", "minLength": 1 },
164
+ "port": { "type": "integer", "minimum": 1, "maximum": 65535 },
165
+ "user": { "type": "string", "minLength": 1 },
166
+ "hostKeySha256": { "$ref": "#/$defs/hash" },
167
+ "machineIdentitySha256": { "$ref": "#/$defs/hash" }
168
+ }
169
+ },
170
+ "coreIdentity": {
171
+ "type": "object",
172
+ "additionalProperties": false,
173
+ "required": ["contractVersion", "coreVersion", "coreManifestSha256", "coreSourceRef"],
174
+ "properties": {
175
+ "contractVersion": { "type": "string", "minLength": 1 },
176
+ "coreVersion": { "type": "string", "minLength": 1 },
177
+ "coreManifestSha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
178
+ "coreSourceRef": { "type": "string", "minLength": 1 }
179
+ }
180
+ },
181
+ "childControl": {
182
+ "type": "object",
183
+ "additionalProperties": false,
184
+ "required": ["enginePin", "executionPlan", "deploymentParent", "lease", "profile", "resourcePreflight"],
185
+ "properties": {
186
+ "enginePin": {
187
+ "type": "object",
188
+ "additionalProperties": false,
189
+ "required": ["path", "sha256", "value"],
190
+ "properties": {
191
+ "path": { "type": "string", "minLength": 1 },
192
+ "sha256": { "$ref": "#/$defs/hash" },
193
+ "value": { "$ref": "#/$defs/coreIdentity" }
194
+ }
195
+ },
196
+ "executionPlan": { "$ref": "#/$defs/descriptor" },
197
+ "deploymentParent": {
198
+ "type": "object",
199
+ "additionalProperties": false,
200
+ "required": ["prepareRunId", "prepareReceiptSha256"],
201
+ "properties": {
202
+ "prepareRunId": { "$ref": "#/$defs/id" },
203
+ "prepareReceiptSha256": { "$ref": "#/$defs/hash" }
204
+ }
205
+ },
206
+ "lease": {
207
+ "type": "object",
208
+ "additionalProperties": false,
209
+ "required": ["workItemId", "path", "sha256", "ownedPaths"],
210
+ "properties": {
211
+ "workItemId": { "$ref": "#/$defs/id" },
212
+ "path": { "type": "string", "minLength": 1 },
213
+ "sha256": { "$ref": "#/$defs/hash" },
214
+ "ownedPaths": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 }, "uniqueItems": true }
215
+ }
216
+ },
217
+ "profile": {
218
+ "type": "object",
219
+ "additionalProperties": false,
220
+ "required": ["profileId", "profilesPath", "profilesSha256", "verificationPlanPath", "verificationPlanSha256"],
221
+ "properties": {
222
+ "profileId": { "$ref": "#/$defs/id" },
223
+ "profilesPath": { "type": "string", "minLength": 1 },
224
+ "profilesSha256": { "$ref": "#/$defs/hash" },
225
+ "verificationPlanPath": { "type": "string", "minLength": 1 },
226
+ "verificationPlanSha256": { "$ref": "#/$defs/hash" }
227
+ }
228
+ },
229
+ "resourcePreflight": {
230
+ "type": "object",
231
+ "additionalProperties": false,
232
+ "required": ["preflightId", "path", "sha256", "decision"],
233
+ "properties": {
234
+ "preflightId": { "$ref": "#/$defs/id" },
235
+ "path": { "type": "string", "minLength": 1 },
236
+ "sha256": { "$ref": "#/$defs/hash" },
237
+ "decision": { "enum": ["ready_for_model_execution", "ready_without_model_execution"] }
238
+ }
239
+ }
240
+ }
241
+ }
242
+ },
243
+ "examples": [{
244
+ "schemaVersion": "OwlCodaRunKitDeploymentLineageV1",
245
+ "parent": {
246
+ "prepareRunId": "deployment-prepare-001",
247
+ "prepareGoal": { "path": ".owlcoda/runkit/executions/deployment-prepare-001/goal-contract.json", "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" },
248
+ "prepareReceiptSha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
249
+ "acceptedCloseoutSha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
250
+ "deliveryPacketSha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
251
+ "artifact": { "path": "dist/release.tgz", "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "size": 1234, "mediaType": "application/gzip" }
252
+ },
253
+ "child": {
254
+ "executeRunId": "deployment-execute-001",
255
+ "executeGoal": { "path": ".owlcoda/runkit/executions/deployment-execute-001/goal-contract.json", "sha256": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" },
256
+ "control": {
257
+ "enginePin": {
258
+ "path": ".owlcoda/runkit/executions/deployment-execute-001/engine-pin.json",
259
+ "sha256": "6666666666666666666666666666666666666666666666666666666666666666",
260
+ "value": {
261
+ "contractVersion": "0.2",
262
+ "coreVersion": "0.16.0",
263
+ "coreManifestSha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
264
+ "coreSourceRef": "artifact:sha256:7777777777777777777777777777777777777777777777777777777777777777"
265
+ }
266
+ },
267
+ "executionPlan": { "path": ".owlcoda/runkit/executions/deployment-execute-001/execution-plan.json", "sha256": "8888888888888888888888888888888888888888888888888888888888888888" },
268
+ "deploymentParent": { "prepareRunId": "deployment-prepare-001", "prepareReceiptSha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" },
269
+ "lease": { "workItemId": "deployment-execute", "path": ".owlcoda/runkit/executions/deployment-execute-001/leases/deployment-execute-attempt-001.json", "sha256": "9999999999999999999999999999999999999999999999999999999999999999", "ownedPaths": ["dist/release.tgz"] },
270
+ "profile": { "profileId": "deployment", "profilesPath": ".owlcoda/runkit/profiles.json", "profilesSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "verificationPlanPath": ".owlcoda/runkit/executions/deployment-execute-001/verification-plans/deployment.json", "verificationPlanSha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" },
271
+ "resourcePreflight": { "preflightId": "deployment", "path": ".owlcoda/runkit/executions/deployment-execute-001/resource-preflights/deployment.json", "sha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "decision": "ready_without_model_execution" }
272
+ }
273
+ },
274
+ "target": { "value": { "schemaVersion": "OwlCodaRunKitRemoteTargetV1", "targetId": "vm-01", "environment": "production", "host": "deploy.example.invalid", "port": 22, "user": "deploy", "hostKeySha256": "4444444444444444444444444444444444444444444444444444444444444444", "machineIdentitySha256": "5555555555555555555555555555555555555555555555555555555555555555" }, "sha256": "1111111111111111111111111111111111111111111111111111111111111111" },
275
+ "authority": {
276
+ "source": "owner",
277
+ "authorityId": "owner-deploy-001",
278
+ "path": "authorities/deployment-execute-001.json",
279
+ "sha256": "2222222222222222222222222222222222222222222222222222222222222222",
280
+ "signerKeyId": "owner-key-001",
281
+ "trustStoreSha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
282
+ "remoteManifestFileSha256": "5555555555555555555555555555555555555555555555555555555555555555",
283
+ "remoteDeploymentIntentSha256": "6666666666666666666666666666666666666666666666666666666666666666",
284
+ "ownerDecisionId": "owner-clean-install-001",
285
+ "ownerDecisionSha256": "7777777777777777777777777777777777777777777777777777777777777777",
286
+ "inheritedFromPrepare": false
287
+ },
288
+ "permissions": { "deploy": true, "destructive": false },
289
+ "authorizationGranted": false,
290
+ "lineageSha256": "3333333333333333333333333333333333333333333333333333333333333333"
291
+ }]
292
+ }
@@ -0,0 +1,140 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/deployment-prepare-receipt-v1.json",
4
+ "title": "OwlCoda RunKit Deployment Prepare Receipt V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "prepareRunId", "prepareGoal", "closeout", "artifact", "permissions", "authorizationGranted", "receiptSha256"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "OwlCodaRunKitDeploymentPrepareReceiptV1" },
10
+ "prepareRunId": { "$ref": "#/$defs/id" },
11
+ "prepareGoal": { "$ref": "#/$defs/descriptor" },
12
+ "closeout": { "$ref": "#/$defs/closeout" },
13
+ "deliveryPacket": { "$ref": "#/$defs/packet" },
14
+ "sourceArtifact": { "$ref": "#/$defs/candidateSourceArtifact" },
15
+ "artifact": { "$ref": "#/$defs/artifact" },
16
+ "ownerDecision": { "$ref": "#/$defs/ownerDecisionBinding" },
17
+ "permissions": { "$ref": "#/$defs/permissions" },
18
+ "authorizationGranted": { "const": false },
19
+ "receiptSha256": { "$ref": "#/$defs/hash" }
20
+ },
21
+ "$defs": {
22
+ "id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
23
+ "hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
24
+ "descriptor": {
25
+ "type": "object",
26
+ "additionalProperties": false,
27
+ "required": ["path", "sha256"],
28
+ "properties": { "path": { "type": "string", "minLength": 1 }, "sha256": { "$ref": "#/$defs/hash" } }
29
+ },
30
+ "closeout": {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "required": ["trusted", "decision", "runId", "path", "sha256", "gateInputSha256", "sourceFingerprint", "authorizationGranted"],
34
+ "properties": {
35
+ "trusted": { "const": true },
36
+ "decision": { "const": "accepted" },
37
+ "runId": { "$ref": "#/$defs/id" },
38
+ "path": { "type": "string", "minLength": 1 },
39
+ "sha256": { "$ref": "#/$defs/hash" },
40
+ "gateInputSha256": { "$ref": "#/$defs/hash" },
41
+ "sourceFingerprint": { "$ref": "#/$defs/hash" },
42
+ "sourceArtifact": { "$ref": "#/$defs/sourceArtifact" },
43
+ "authorizationGranted": { "const": false }
44
+ }
45
+ },
46
+ "packet": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": ["runId", "path", "sha256", "sourceFingerprint"],
50
+ "properties": {
51
+ "runId": { "$ref": "#/$defs/id" },
52
+ "path": { "type": "string", "minLength": 1 },
53
+ "sha256": { "$ref": "#/$defs/hash" },
54
+ "sourceFingerprint": { "$ref": "#/$defs/hash" }
55
+ }
56
+ },
57
+ "sourceArtifact": {
58
+ "type": "object",
59
+ "additionalProperties": false,
60
+ "required": ["kind", "runId", "path", "sha256", "sourceFingerprint"],
61
+ "properties": {
62
+ "kind": { "enum": ["delivery_packet_v1", "source_candidate_v2"] },
63
+ "runId": { "$ref": "#/$defs/id" },
64
+ "path": { "type": "string", "minLength": 1 },
65
+ "sha256": { "$ref": "#/$defs/hash" },
66
+ "sourceFingerprint": { "$ref": "#/$defs/hash" }
67
+ }
68
+ },
69
+ "candidateSourceArtifact": {
70
+ "type": "object",
71
+ "additionalProperties": false,
72
+ "required": ["kind", "runId", "path", "sha256", "sourceFingerprint"],
73
+ "properties": {
74
+ "kind": { "const": "source_candidate_v2" },
75
+ "runId": { "$ref": "#/$defs/id" },
76
+ "path": { "type": "string", "minLength": 1 },
77
+ "sha256": { "$ref": "#/$defs/hash" },
78
+ "sourceFingerprint": { "$ref": "#/$defs/hash" }
79
+ }
80
+ },
81
+ "artifact": {
82
+ "type": "object",
83
+ "additionalProperties": false,
84
+ "required": ["path", "sha256", "size", "mediaType"],
85
+ "properties": {
86
+ "path": { "type": "string", "minLength": 1 },
87
+ "sha256": { "$ref": "#/$defs/hash" },
88
+ "size": { "type": "integer", "minimum": 0 },
89
+ "mediaType": { "type": "string", "pattern": "^[A-Za-z0-9.+-]+/[A-Za-z0-9.+-]+$" }
90
+ }
91
+ },
92
+ "ownerDecisionBinding": {
93
+ "type": "object",
94
+ "additionalProperties": false,
95
+ "required": ["decisionId", "decisionVersion", "decisionSha256", "deploymentMode", "existingProjectAssets", "legacyRollbackAllowed", "dataAuthority", "serviceActivationAuthorized", "baselineCutAuthorized", "destructiveScope"],
96
+ "properties": {
97
+ "decisionId": { "$ref": "#/$defs/id" },
98
+ "decisionVersion": { "type": "integer", "minimum": 1 },
99
+ "decisionSha256": { "$ref": "#/$defs/hash" },
100
+ "deploymentMode": { "enum": ["clean_install", "in_place_update"] },
101
+ "existingProjectAssets": { "enum": ["preserve", "replace", "remove"] },
102
+ "legacyRollbackAllowed": { "type": "boolean" },
103
+ "dataAuthority": {
104
+ "type": "object",
105
+ "additionalProperties": false,
106
+ "required": ["mode", "sourceRef"],
107
+ "properties": {
108
+ "mode": { "enum": ["preserve_existing", "replace_from_artifact", "initialize_new"] },
109
+ "sourceRef": { "type": "string", "minLength": 1 }
110
+ }
111
+ },
112
+ "serviceActivationAuthorized": { "type": "boolean" },
113
+ "baselineCutAuthorized": { "type": "boolean" },
114
+ "destructiveScope": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true }
115
+ }
116
+ },
117
+ "permissions": {
118
+ "type": "object",
119
+ "additionalProperties": false,
120
+ "required": ["deploy", "destructive"],
121
+ "properties": { "deploy": { "const": false }, "destructive": { "const": false } }
122
+ }
123
+ },
124
+ "oneOf": [
125
+ { "type": "object", "required": ["deliveryPacket"] },
126
+ { "type": "object", "required": ["sourceArtifact"] }
127
+ ],
128
+ "examples": [{
129
+ "schemaVersion": "OwlCodaRunKitDeploymentPrepareReceiptV1",
130
+ "prepareRunId": "deployment-prepare-001",
131
+ "prepareGoal": { "path": ".owlcoda/runkit/executions/deployment-prepare-001/goal-contract.json", "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" },
132
+ "closeout": { "trusted": true, "decision": "accepted", "runId": "deployment-prepare-001", "path": ".owlcoda/runkit/executions/deployment-prepare-001/closeout-receipt.json", "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "gateInputSha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "sourceFingerprint": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "authorizationGranted": false },
133
+ "deliveryPacket": { "runId": "deployment-prepare-001", "path": ".owlcoda/runkit/executions/deployment-prepare-001/delivery-packets/release.json", "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "sourceFingerprint": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" },
134
+ "artifact": { "path": "dist/release.tgz", "sha256": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "size": 1234, "mediaType": "application/gzip" },
135
+ "ownerDecision": { "decisionId": "owner-clean-install-001", "decisionVersion": 1, "decisionSha256": "2222222222222222222222222222222222222222222222222222222222222222", "deploymentMode": "clean_install", "existingProjectAssets": "replace", "legacyRollbackAllowed": false, "dataAuthority": { "mode": "initialize_new", "sourceRef": "owner:data-authority/clean-install-001" }, "serviceActivationAuthorized": true, "baselineCutAuthorized": true, "destructiveScope": [] },
136
+ "permissions": { "deploy": false, "destructive": false },
137
+ "authorizationGranted": false,
138
+ "receiptSha256": "1111111111111111111111111111111111111111111111111111111111111111"
139
+ }]
140
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/fleet-discovery-v1.json",
4
+ "title": "OwlCoda RunKit Fleet Discovery V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "source", "coverageRoots", "unreachableRoots", "workspaceRoots", "complete", "frozenManifestSha256", "authorizationGranted"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "OwlCodaRunKitFleetDiscoveryV1" },
10
+ "source": { "enum": ["fleet_registry", "fleet_roots", "fleet_manifest", "explicit_workspaces"] },
11
+ "manifestPath": { "type": "string", "minLength": 1 },
12
+ "registryPath": { "type": "string", "minLength": 1 },
13
+ "registrySha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
14
+ "coverageRoots": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
15
+ "unreachableRoots": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
16
+ "workspaceRoots": { "type": "array", "maxItems": 256, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
17
+ "complete": { "type": "boolean" },
18
+ "frozenManifestSha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
19
+ "authorizationGranted": { "const": false }
20
+ },
21
+ "examples": [{
22
+ "schemaVersion": "OwlCodaRunKitFleetDiscoveryV1",
23
+ "source": "fleet_roots",
24
+ "coverageRoots": ["/absolute/path/to/fleet"],
25
+ "unreachableRoots": [],
26
+ "workspaceRoots": ["/absolute/path/to/fleet/project"],
27
+ "complete": true,
28
+ "frozenManifestSha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
29
+ "authorizationGranted": false
30
+ }]
31
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/fleet-manifest-v1.json",
4
+ "title": "OwlCoda RunKit Fleet Manifest V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "skillName", "workspaceRoots", "authorizationGranted"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "OwlCodaRunKitFleetManifestV1" },
10
+ "skillName": { "const": "owlcoda-runkit" },
11
+ "workspaceRoots": { "type": "array", "minItems": 1, "maxItems": 256, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
12
+ "authorizationGranted": { "const": false }
13
+ },
14
+ "examples": [{
15
+ "schemaVersion": "OwlCodaRunKitFleetManifestV1",
16
+ "skillName": "owlcoda-runkit",
17
+ "workspaceRoots": ["/absolute/path/to/project"],
18
+ "authorizationGranted": false
19
+ }]
20
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/fleet-root-registry-v1.json",
4
+ "title": "OwlCoda RunKit Fleet Root Registry V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "coverageRoots",
10
+ "authorizationGranted",
11
+ "registrySha256"
12
+ ],
13
+ "properties": {
14
+ "schemaVersion": { "const": "OwlCodaRunKitFleetRootRegistryV1" },
15
+ "coverageRoots": {
16
+ "type": "array",
17
+ "minItems": 1,
18
+ "maxItems": 32,
19
+ "uniqueItems": true,
20
+ "items": { "type": "string", "minLength": 1 }
21
+ },
22
+ "authorizationGranted": { "const": false },
23
+ "registrySha256": {
24
+ "type": "string",
25
+ "pattern": "^sha256:[a-f0-9]{64}$"
26
+ }
27
+ },
28
+ "examples": [{
29
+ "schemaVersion": "OwlCodaRunKitFleetRootRegistryV1",
30
+ "coverageRoots": ["/absolute/path/to/fleet"],
31
+ "authorizationGranted": false,
32
+ "registrySha256": "sha256:270e2fb1accb0e5a891f697c5a483b52881289849cfb75b4cd54a0443bcac8ec"
33
+ }]
34
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/human-status-v1.json",
4
+ "title": "OwlCoda RunKit Human Status V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "status", "overall", "headline", "stage", "currentExecutionId", "completedSteps", "remainingGates", "remainingGateCount", "control", "milestones", "nextAllowedAction", "authorizationGranted", "gitAuthorization", "releaseAuthorization", "deployAuthorization"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "OwlCodaRunKitHumanStatusV1" },
10
+ "status": { "const": "projected" },
11
+ "overall": { "enum": ["blocked", "closed", "idle", "ready_for_closeout", "working"] },
12
+ "headline": { "type": "string", "minLength": 1 },
13
+ "stage": { "enum": ["setup", "implementation", "delivery", "verification", "closeout", "external_action"] },
14
+ "currentExecutionId": { "oneOf": [{ "type": "null" }, { "type": "string", "minLength": 1 }] },
15
+ "completedSteps": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
16
+ "remainingGates": { "type": "array", "items": { "$ref": "#/$defs/gate" } },
17
+ "remainingGateCount": { "type": "integer", "minimum": 0 },
18
+ "control": { "$ref": "#/$defs/control" },
19
+ "milestones": {
20
+ "type": "object",
21
+ "additionalProperties": false,
22
+ "required": ["sourceData", "releasePackage", "remoteVmWrite"],
23
+ "properties": {
24
+ "sourceData": { "$ref": "#/$defs/milestone" },
25
+ "releasePackage": { "$ref": "#/$defs/milestone" },
26
+ "remoteVmWrite": { "$ref": "#/$defs/milestone" }
27
+ }
28
+ },
29
+ "nextAllowedAction": { "type": "string", "minLength": 1 },
30
+ "authorizationGranted": { "const": false },
31
+ "gitAuthorization": { "const": false },
32
+ "releaseAuthorization": { "const": false },
33
+ "deployAuthorization": { "const": false }
34
+ },
35
+ "$defs": {
36
+ "gate": {
37
+ "type": "object",
38
+ "additionalProperties": false,
39
+ "required": ["code", "label", "nextAllowedAction"],
40
+ "properties": {
41
+ "code": { "type": "string", "minLength": 1 },
42
+ "label": { "type": "string", "minLength": 1 },
43
+ "nextAllowedAction": { "type": "string", "minLength": 1 }
44
+ }
45
+ },
46
+ "control": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": ["status", "issueCodes"],
50
+ "properties": {
51
+ "status": { "enum": ["healthy", "invalid", "drifted"] },
52
+ "issueCodes": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } }
53
+ }
54
+ },
55
+ "milestone": {
56
+ "type": "object",
57
+ "additionalProperties": false,
58
+ "required": ["status", "evidence", "label"],
59
+ "properties": {
60
+ "status": {
61
+ "enum": ["ready", "not_ready", "performed", "not_performed", "not_evidenced"]
62
+ },
63
+ "evidence": { "type": "string", "minLength": 1 },
64
+ "label": { "type": "string", "minLength": 1 }
65
+ }
66
+ }
67
+ },
68
+ "examples": [{
69
+ "schemaVersion": "OwlCodaRunKitHumanStatusV1",
70
+ "status": "projected",
71
+ "overall": "idle",
72
+ "headline": "No RunKit execution is active.",
73
+ "stage": "setup",
74
+ "currentExecutionId": null,
75
+ "completedSteps": [],
76
+ "remainingGates": [],
77
+ "remainingGateCount": 0,
78
+ "control": { "status": "healthy", "issueCodes": [] },
79
+ "milestones": {
80
+ "sourceData": {
81
+ "status": "not_evidenced",
82
+ "evidence": "none",
83
+ "label": "Source/data readiness is not evidenced by inspect."
84
+ },
85
+ "releasePackage": {
86
+ "status": "not_evidenced",
87
+ "evidence": "none",
88
+ "label": "Release package readiness is not evidenced by inspect."
89
+ },
90
+ "remoteVmWrite": {
91
+ "status": "not_evidenced",
92
+ "evidence": "none",
93
+ "label": "Remote/VM write is not evidenced by inspect."
94
+ }
95
+ },
96
+ "nextAllowedAction": "plan_new_execution",
97
+ "authorizationGranted": false,
98
+ "gitAuthorization": false,
99
+ "releaseAuthorization": false,
100
+ "deployAuthorization": false
101
+ }]
102
+ }