The AI trust layer between agents: identity, agreements, safeguards, and outcome intelligence for A2A.

Viewing files at commit 1efaca5a5f5eCommit detailsView latest

schemas/v0.1/assurance_probe_response.schema.json 300 lines · 9.0 KB · json
1
{
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
  "type": "object",
4
  "properties": {
5
    "protocolVersion": {
6
      "type": "string",
7
      "const": "0.1"
8
    },
9
    "responseId": {
10
      "type": "string",
11
      "format": "uuid",
12
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
13
    },
14
    "planId": {
15
      "type": "string",
16
      "format": "uuid",
17
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
18
    },
19
    "interactionId": {
20
      "type": "string",
21
      "format": "uuid",
22
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
23
    },
24
    "contractHash": {
25
      "type": "string",
26
      "minLength": 1
27
    },
28
    "phase": {
29
      "type": "string",
30
      "enum": [
31
        "pre_task",
32
        "post_task"
33
      ]
34
    },
35
    "agentId": {
36
      "type": "string",
37
      "minLength": 1
38
    },
39
    "agentVersion": {
40
      "type": "string",
41
      "minLength": 1,
42
      "maxLength": 200
43
    },
44
    "answers": {
45
      "minItems": 1,
46
      "maxItems": 1,
47
      "type": "array",
48
      "items": {
49
        "oneOf": [
50
          {
51
            "type": "object",
52
            "properties": {
53
              "probeId": {
54
                "type": "string",
55
                "format": "uuid",
56
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
57
              },
58
              "questionCode": {
59
                "type": "string",
60
                "pattern": "^[a-z][a-z0-9_]{1,63}$"
61
              },
62
              "confidence": {
63
                "type": "number",
64
                "minimum": 0,
65
                "maximum": 1
66
              },
67
              "evidenceReferences": {
68
                "default": [],
69
                "maxItems": 5,
70
                "type": "array",
71
                "items": {
72
                  "type": "string",
73
                  "minLength": 1,
74
                  "maxLength": 2048
75
                }
76
              },
77
              "limitations": {
78
                "default": [],
79
                "maxItems": 3,
80
                "type": "array",
81
                "items": {
82
                  "type": "string",
83
                  "minLength": 1,
84
                  "maxLength": 240
85
                }
86
              },
87
              "responseType": {
88
                "type": "string",
89
                "const": "boolean"
90
              },
91
              "answer": {
92
                "type": "boolean"
93
              }
94
            },
95
            "required": [
96
              "probeId",
97
              "questionCode",
98
              "confidence",
99
              "evidenceReferences",
100
              "limitations",
101
              "responseType",
102
              "answer"
103
            ],
104
            "additionalProperties": false
105
          },
106
          {
107
            "type": "object",
108
            "properties": {
109
              "probeId": {
110
                "type": "string",
111
                "format": "uuid",
112
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
113
              },
114
              "questionCode": {
115
                "type": "string",
116
                "pattern": "^[a-z][a-z0-9_]{1,63}$"
117
              },
118
              "confidence": {
119
                "type": "number",
120
                "minimum": 0,
121
                "maximum": 1
122
              },
123
              "evidenceReferences": {
124
                "default": [],
125
                "maxItems": 5,
126
                "type": "array",
127
                "items": {
128
                  "type": "string",
129
                  "minLength": 1,
130
                  "maxLength": 2048
131
                }
132
              },
133
              "limitations": {
134
                "default": [],
135
                "maxItems": 3,
136
                "type": "array",
137
                "items": {
138
                  "type": "string",
139
                  "minLength": 1,
140
                  "maxLength": 240
141
                }
142
              },
143
              "responseType": {
144
                "type": "string",
145
                "const": "enum"
146
              },
147
              "answer": {
148
                "type": "string",
149
                "minLength": 1,
150
                "maxLength": 80
151
              }
152
            },
153
            "required": [
154
              "probeId",
155
              "questionCode",
156
              "confidence",
157
              "evidenceReferences",
158
              "limitations",
159
              "responseType",
160
              "answer"
161
            ],
162
            "additionalProperties": false
163
          },
164
          {
165
            "type": "object",
166
            "properties": {
167
              "probeId": {
168
                "type": "string",
169
                "format": "uuid",
170
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
171
              },
172
              "questionCode": {
173
                "type": "string",
174
                "pattern": "^[a-z][a-z0-9_]{1,63}$"
175
              },
176
              "confidence": {
177
                "type": "number",
178
                "minimum": 0,
179
                "maximum": 1
180
              },
181
              "evidenceReferences": {
182
                "default": [],
183
                "maxItems": 5,
184
                "type": "array",
185
                "items": {
186
                  "type": "string",
187
                  "minLength": 1,
188
                  "maxLength": 2048
189
                }
190
              },
191
              "limitations": {
192
                "default": [],
193
                "maxItems": 3,
194
                "type": "array",
195
                "items": {
196
                  "type": "string",
197
                  "minLength": 1,
198
                  "maxLength": 240
199
                }
200
              },
201
              "responseType": {
202
                "type": "string",
203
                "const": "number"
204
              },
205
              "answer": {
206
                "type": "number"
207
              }
208
            },
209
            "required": [
210
              "probeId",
211
              "questionCode",
212
              "confidence",
213
              "evidenceReferences",
214
              "limitations",
215
              "responseType",
216
              "answer"
217
            ],
218
            "additionalProperties": false
219
          },
220
          {
221
            "type": "object",
222
            "properties": {
223
              "probeId": {
224
                "type": "string",
225
                "format": "uuid",
226
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
227
              },
228
              "questionCode": {
229
                "type": "string",
230
                "pattern": "^[a-z][a-z0-9_]{1,63}$"
231
              },
232
              "confidence": {
233
                "type": "number",
234
                "minimum": 0,
235
                "maximum": 1
236
              },
237
              "evidenceReferences": {
238
                "default": [],
239
                "maxItems": 5,
240
                "type": "array",
241
                "items": {
242
                  "type": "string",
243
                  "minLength": 1,
244
                  "maxLength": 2048
245
                }
246
              },
247
              "limitations": {
248
                "default": [],
249
                "maxItems": 3,
250
                "type": "array",
251
                "items": {
252
                  "type": "string",
253
                  "minLength": 1,
254
                  "maxLength": 240
255
                }
256
              },
257
              "responseType": {
258
                "type": "string",
259
                "const": "short_text"
260
              },
261
              "answer": {
262
                "type": "string",
263
                "minLength": 1,
264
                "maxLength": 280
265
              }
266
            },
267
            "required": [
268
              "probeId",
269
              "questionCode",
270
              "confidence",
271
              "evidenceReferences",
272
              "limitations",
273
              "responseType",
274
              "answer"
275
            ],
276
            "additionalProperties": false
277
          }
278
        ]
279
      }
280
    },
281
    "respondedAt": {
282
      "type": "string",
283
      "format": "date-time",
284
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
285
    }
286
  },
287
  "required": [
288
    "protocolVersion",
289
    "responseId",
290
    "planId",
291
    "interactionId",
292
    "contractHash",
293
    "phase",
294
    "agentId",
295
    "agentVersion",
296
    "answers",
297
    "respondedAt"
298
  ],
299
  "additionalProperties": false
300
}