Skip to content

Commit c2efe36

Browse files
committed
Add AgentPlane runtime evidence schema
1 parent 5bb0cdc commit c2efe36

1 file changed

Lines changed: 156 additions & 0 deletions

File tree

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "urn:srcos:agent-machine:schema:agentplane-runtime-evidence:v0.1.0",
4+
"title": "AgentPlaneRuntimeEvidence",
5+
"description": "Secret-free runtime evidence emitted or staged by Agent Machine for AgentPlane after placement, activation, runtime status, teardown, or wipe events.",
6+
"type": "object",
7+
"additionalProperties": false,
8+
"required": [
9+
"specVersion",
10+
"id",
11+
"kind",
12+
"evidenceType",
13+
"agentMachineId",
14+
"agentPodId",
15+
"providerId",
16+
"deploymentReceiptId",
17+
"policyFabric",
18+
"agentRegistry",
19+
"artifacts",
20+
"storageReceiptRefs",
21+
"cache",
22+
"runtime",
23+
"receiptSafety",
24+
"observedAt"
25+
],
26+
"properties": {
27+
"specVersion": { "type": "string", "const": "0.1.0" },
28+
"id": {
29+
"type": "string",
30+
"pattern": "^urn:srcos:agent-machine:agentplane-runtime-evidence:[a-z0-9][a-z0-9-]*$"
31+
},
32+
"kind": { "type": "string", "const": "AgentPlaneRuntimeEvidence" },
33+
"evidenceType": {
34+
"type": "string",
35+
"enum": ["placement", "activation", "runtime-status", "teardown", "wipe"]
36+
},
37+
"agentMachineId": {
38+
"type": "string",
39+
"pattern": "^urn:srcos:agent-machine:[a-z0-9][a-z0-9-]*$"
40+
},
41+
"agentPodId": {
42+
"type": "string",
43+
"pattern": "^urn:srcos:agent-machine:agent-pod:[a-z0-9][a-z0-9-]*$"
44+
},
45+
"providerId": {
46+
"type": "string",
47+
"pattern": "^urn:srcos:agent-machine:inference-provider:[a-z0-9][a-z0-9-]*$"
48+
},
49+
"deploymentReceiptId": {
50+
"type": "string",
51+
"pattern": "^urn:srcos:agent-machine:deployment-receipt:[a-f0-9]{16,64}$"
52+
},
53+
"policyFabric": {
54+
"type": "object",
55+
"additionalProperties": false,
56+
"required": ["required", "decisionRef", "decisionDigest", "admissionStatus"],
57+
"properties": {
58+
"required": { "type": "boolean" },
59+
"decisionRef": { "type": ["string", "null"] },
60+
"decisionDigest": { "type": ["string", "null"], "pattern": "^sha256:[a-f0-9]{64}$" },
61+
"admissionStatus": { "type": "string", "enum": ["missing", "allowed", "denied", "not-required", "unknown"] },
62+
"obligationsRef": { "type": ["string", "null"] },
63+
"expiresAt": { "type": ["string", "null"] }
64+
}
65+
},
66+
"agentRegistry": {
67+
"type": "object",
68+
"additionalProperties": false,
69+
"required": ["required", "grantRef", "grantDigest", "grantStatus"],
70+
"properties": {
71+
"required": { "type": "boolean" },
72+
"grantRef": { "type": ["string", "null"] },
73+
"grantDigest": { "type": ["string", "null"], "pattern": "^sha256:[a-f0-9]{64}$" },
74+
"grantStatus": { "type": "string", "enum": ["missing", "active", "expired", "revoked", "not-required", "unknown"] },
75+
"revocationRef": { "type": ["string", "null"] },
76+
"expiresAt": { "type": ["string", "null"] }
77+
}
78+
},
79+
"artifacts": {
80+
"type": "object",
81+
"additionalProperties": false,
82+
"required": ["imageRef", "imageDigest", "modelDigest", "tokenizerDigest"],
83+
"properties": {
84+
"imageRef": { "type": ["string", "null"] },
85+
"imageDigest": { "type": ["string", "null"], "pattern": "^sha256:[a-f0-9]{64}$" },
86+
"modelDigest": { "type": ["string", "null"], "pattern": "^sha256:[a-f0-9]{64}$" },
87+
"tokenizerDigest": { "type": ["string", "null"], "pattern": "^sha256:[a-f0-9]{64}$" },
88+
"manifestDigest": { "type": ["string", "null"], "pattern": "^sha256:[a-f0-9]{64}$" },
89+
"sbomRef": { "type": ["string", "null"] },
90+
"provenanceRef": { "type": ["string", "null"] }
91+
}
92+
},
93+
"storageReceiptRefs": {
94+
"type": "array",
95+
"items": {
96+
"type": "string",
97+
"pattern": "^urn:srcos:agent-machine:storage-receipt:[a-z0-9][a-z0-9-]*$"
98+
},
99+
"uniqueItems": true
100+
},
101+
"cache": {
102+
"type": "object",
103+
"additionalProperties": false,
104+
"required": ["cacheReuseRequested", "cacheReuseAllowed", "cachePolicyRef", "cacheReceiptRefs"],
105+
"properties": {
106+
"cacheReuseRequested": { "type": "boolean" },
107+
"cacheReuseAllowed": { "type": "boolean" },
108+
"cachePolicyRef": { "type": ["string", "null"] },
109+
"cacheReceiptRefs": {
110+
"type": "array",
111+
"items": {
112+
"type": "string",
113+
"pattern": "^urn:srcos:agent-machine:storage-receipt:[a-z0-9][a-z0-9-]*$"
114+
},
115+
"uniqueItems": true
116+
},
117+
"cacheReuseDecisionRef": { "type": ["string", "null"] }
118+
}
119+
},
120+
"runtime": {
121+
"type": "object",
122+
"additionalProperties": false,
123+
"required": ["status", "runtimeVersion", "probeVersion"],
124+
"properties": {
125+
"status": {
126+
"type": "string",
127+
"enum": ["planned", "placed", "activating", "running", "degraded", "failed", "completed", "tearing-down", "wiped"]
128+
},
129+
"runtimeVersion": { "type": "string" },
130+
"probeVersion": { "type": "string" },
131+
"nodeName": { "type": ["string", "null"] },
132+
"namespace": { "type": ["string", "null"] },
133+
"serviceAccountName": { "type": ["string", "null"] },
134+
"pid": { "type": ["integer", "null"], "minimum": 0 },
135+
"containerIdDigest": { "type": ["string", "null"], "pattern": "^sha256:[a-f0-9]{64}$" },
136+
"startedAt": { "type": ["string", "null"] },
137+
"completedAt": { "type": ["string", "null"] },
138+
"failureReason": { "type": ["string", "null"] }
139+
}
140+
},
141+
"receiptSafety": {
142+
"type": "object",
143+
"additionalProperties": false,
144+
"required": ["includeRawContent", "rawPromptContentIncluded", "rawKvCacheContentIncluded", "secretValuesIncluded", "privateMemoryIncluded"],
145+
"properties": {
146+
"includeRawContent": { "type": "boolean", "const": false },
147+
"rawPromptContentIncluded": { "type": "boolean", "const": false },
148+
"rawKvCacheContentIncluded": { "type": "boolean", "const": false },
149+
"secretValuesIncluded": { "type": "boolean", "const": false },
150+
"privateMemoryIncluded": { "type": "boolean", "const": false }
151+
}
152+
},
153+
"observedAt": { "type": "string" },
154+
"labels": { "type": "object", "additionalProperties": { "type": "string" } }
155+
}
156+
}

0 commit comments

Comments
 (0)