@heddleagent/execution-host-client 6.0.0-next.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 (152) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +305 -0
  3. package/dist/authority/index.d.ts +3 -0
  4. package/dist/authority/index.d.ts.map +1 -0
  5. package/dist/authority/index.js +2 -0
  6. package/dist/authority/index.js.map +1 -0
  7. package/dist/authority/jose-execution-authority.d.ts +14 -0
  8. package/dist/authority/jose-execution-authority.d.ts.map +1 -0
  9. package/dist/authority/jose-execution-authority.js +266 -0
  10. package/dist/authority/jose-execution-authority.js.map +1 -0
  11. package/dist/authority/types.d.ts +63 -0
  12. package/dist/authority/types.d.ts.map +1 -0
  13. package/dist/authority/types.js +2 -0
  14. package/dist/authority/types.js.map +1 -0
  15. package/dist/contracts/index.d.ts +163 -0
  16. package/dist/contracts/index.d.ts.map +1 -0
  17. package/dist/contracts/index.js +149 -0
  18. package/dist/contracts/index.js.map +1 -0
  19. package/dist/conversation/durable-hosted-conversation-turn-service.d.ts +23 -0
  20. package/dist/conversation/durable-hosted-conversation-turn-service.d.ts.map +1 -0
  21. package/dist/conversation/durable-hosted-conversation-turn-service.js +273 -0
  22. package/dist/conversation/durable-hosted-conversation-turn-service.js.map +1 -0
  23. package/dist/conversation/hosted-conversation-turn-service.d.ts +17 -0
  24. package/dist/conversation/hosted-conversation-turn-service.d.ts.map +1 -0
  25. package/dist/conversation/hosted-conversation-turn-service.js +60 -0
  26. package/dist/conversation/hosted-conversation-turn-service.js.map +1 -0
  27. package/dist/conversation/index.d.ts +7 -0
  28. package/dist/conversation/index.d.ts.map +1 -0
  29. package/dist/conversation/index.js +5 -0
  30. package/dist/conversation/index.js.map +1 -0
  31. package/dist/conversation/lifecycle-types.d.ts +208 -0
  32. package/dist/conversation/lifecycle-types.d.ts.map +1 -0
  33. package/dist/conversation/lifecycle-types.js +92 -0
  34. package/dist/conversation/lifecycle-types.js.map +1 -0
  35. package/dist/conversation/types.d.ts +35 -0
  36. package/dist/conversation/types.d.ts.map +1 -0
  37. package/dist/conversation/types.js +11 -0
  38. package/dist/conversation/types.js.map +1 -0
  39. package/dist/http-sse/direct-http-execution-host.d.ts +12 -0
  40. package/dist/http-sse/direct-http-execution-host.d.ts.map +1 -0
  41. package/dist/http-sse/direct-http-execution-host.js +279 -0
  42. package/dist/http-sse/direct-http-execution-host.js.map +1 -0
  43. package/dist/http-sse/errors.d.ts +19 -0
  44. package/dist/http-sse/errors.d.ts.map +1 -0
  45. package/dist/http-sse/errors.js +29 -0
  46. package/dist/http-sse/errors.js.map +1 -0
  47. package/dist/http-sse/index.d.ts +4 -0
  48. package/dist/http-sse/index.d.ts.map +1 -0
  49. package/dist/http-sse/index.js +3 -0
  50. package/dist/http-sse/index.js.map +1 -0
  51. package/dist/http-sse/types.d.ts +20 -0
  52. package/dist/http-sse/types.d.ts.map +1 -0
  53. package/dist/http-sse/types.js +2 -0
  54. package/dist/http-sse/types.js.map +1 -0
  55. package/dist/index.d.ts +6 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +6 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/mcp/errors.d.ts +11 -0
  60. package/dist/mcp/errors.d.ts.map +1 -0
  61. package/dist/mcp/errors.js +15 -0
  62. package/dist/mcp/errors.js.map +1 -0
  63. package/dist/mcp/index.d.ts +5 -0
  64. package/dist/mcp/index.d.ts.map +1 -0
  65. package/dist/mcp/index.js +3 -0
  66. package/dist/mcp/index.js.map +1 -0
  67. package/dist/mcp/jwt-capability-verifier.d.ts +12 -0
  68. package/dist/mcp/jwt-capability-verifier.d.ts.map +1 -0
  69. package/dist/mcp/jwt-capability-verifier.js +136 -0
  70. package/dist/mcp/jwt-capability-verifier.js.map +1 -0
  71. package/dist/mcp/node/index.d.ts +4 -0
  72. package/dist/mcp/node/index.d.ts.map +1 -0
  73. package/dist/mcp/node/index.js +3 -0
  74. package/dist/mcp/node/index.js.map +1 -0
  75. package/dist/mcp/node/json-toolset.d.ts +23 -0
  76. package/dist/mcp/node/json-toolset.d.ts.map +1 -0
  77. package/dist/mcp/node/json-toolset.js +94 -0
  78. package/dist/mcp/node/json-toolset.js.map +1 -0
  79. package/dist/mcp/node/streamable-http-mcp-service.d.ts +18 -0
  80. package/dist/mcp/node/streamable-http-mcp-service.d.ts.map +1 -0
  81. package/dist/mcp/node/streamable-http-mcp-service.js +229 -0
  82. package/dist/mcp/node/streamable-http-mcp-service.js.map +1 -0
  83. package/dist/mcp/node/types.d.ts +53 -0
  84. package/dist/mcp/node/types.d.ts.map +1 -0
  85. package/dist/mcp/node/types.js +2 -0
  86. package/dist/mcp/node/types.js.map +1 -0
  87. package/dist/mcp/types.d.ts +37 -0
  88. package/dist/mcp/types.d.ts.map +1 -0
  89. package/dist/mcp/types.js +2 -0
  90. package/dist/mcp/types.js.map +1 -0
  91. package/dist/node/authority-key.d.ts +14 -0
  92. package/dist/node/authority-key.d.ts.map +1 -0
  93. package/dist/node/authority-key.js +89 -0
  94. package/dist/node/authority-key.js.map +1 -0
  95. package/dist/node/direct-credentials.d.ts +21 -0
  96. package/dist/node/direct-credentials.d.ts.map +1 -0
  97. package/dist/node/direct-credentials.js +47 -0
  98. package/dist/node/direct-credentials.js.map +1 -0
  99. package/dist/node/http-service.d.ts +21 -0
  100. package/dist/node/http-service.d.ts.map +1 -0
  101. package/dist/node/http-service.js +389 -0
  102. package/dist/node/http-service.js.map +1 -0
  103. package/dist/node/index.d.ts +6 -0
  104. package/dist/node/index.d.ts.map +1 -0
  105. package/dist/node/index.js +4 -0
  106. package/dist/node/index.js.map +1 -0
  107. package/dist/node/types.d.ts +52 -0
  108. package/dist/node/types.d.ts.map +1 -0
  109. package/dist/node/types.js +2 -0
  110. package/dist/node/types.js.map +1 -0
  111. package/dist/testing/event-stream.d.ts +17 -0
  112. package/dist/testing/event-stream.d.ts.map +1 -0
  113. package/dist/testing/event-stream.js +83 -0
  114. package/dist/testing/event-stream.js.map +1 -0
  115. package/dist/testing/hosted-conversation-turn-store-conformance.d.ts +17 -0
  116. package/dist/testing/hosted-conversation-turn-store-conformance.d.ts.map +1 -0
  117. package/dist/testing/hosted-conversation-turn-store-conformance.js +137 -0
  118. package/dist/testing/hosted-conversation-turn-store-conformance.js.map +1 -0
  119. package/dist/testing/index.d.ts +5 -0
  120. package/dist/testing/index.d.ts.map +1 -0
  121. package/dist/testing/index.js +3 -0
  122. package/dist/testing/index.js.map +1 -0
  123. package/dist/testing/invocation.d.ts +20 -0
  124. package/dist/testing/invocation.d.ts.map +1 -0
  125. package/dist/testing/invocation.js +39 -0
  126. package/dist/testing/invocation.js.map +1 -0
  127. package/dist/testing/local-execution-host-contract-fixture.d.ts +21 -0
  128. package/dist/testing/local-execution-host-contract-fixture.d.ts.map +1 -0
  129. package/dist/testing/local-execution-host-contract-fixture.js +197 -0
  130. package/dist/testing/local-execution-host-contract-fixture.js.map +1 -0
  131. package/dist/testing/request.d.ts +10 -0
  132. package/dist/testing/request.d.ts.map +1 -0
  133. package/dist/testing/request.js +140 -0
  134. package/dist/testing/request.js.map +1 -0
  135. package/dist/testing/types.d.ts +42 -0
  136. package/dist/testing/types.d.ts.map +1 -0
  137. package/dist/testing/types.js +2 -0
  138. package/dist/testing/types.js.map +1 -0
  139. package/package.json +92 -0
  140. package/spec/v1/README.md +101 -0
  141. package/spec/v1/durable-hosted-conversation-lifecycle.md +139 -0
  142. package/spec/v1/fixtures/ambiguous-eof.sse +9 -0
  143. package/spec/v1/fixtures/authority.json +70 -0
  144. package/spec/v1/fixtures/cancelled.sse +9 -0
  145. package/spec/v1/fixtures/durable-conversation-lifecycle.json +890 -0
  146. package/spec/v1/fixtures/invalid-request-extra-field.json +8 -0
  147. package/spec/v1/fixtures/invalid-sequence-gap.sse +9 -0
  148. package/spec/v1/fixtures/manifest.json +53 -0
  149. package/spec/v1/fixtures/valid-request.json +7 -0
  150. package/spec/v1/fixtures/valid-result.sse +13 -0
  151. package/spec/v1/openapi.json +896 -0
  152. package/spec/v1/schema-bundle.json +1286 -0
@@ -0,0 +1,1286 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://heddleagent.com/spec/execution-host/v1/schema-bundle.json",
4
+ "title": "Heddle Execution Host adopter contract v1",
5
+ "description": "Language-neutral schemas for invoking an Execution Host, consuming its ordered event stream, and carrying adopter-issued execution authority.",
6
+ "$comment": "JSON Schema validates individual values. Stream ordering, duplicated JWT claim binding, bounded token age, and total tool-name characters are semantic invariants described by README.md and executable fixtures.",
7
+ "$defs": {
8
+ "ExecutionScope": {
9
+ "type": "object",
10
+ "properties": {
11
+ "adopterId": {
12
+ "type": "string",
13
+ "minLength": 1,
14
+ "maxLength": 128,
15
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
16
+ },
17
+ "tenantId": {
18
+ "type": "string",
19
+ "minLength": 1,
20
+ "maxLength": 128,
21
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
22
+ },
23
+ "subjectId": {
24
+ "type": "string",
25
+ "minLength": 1,
26
+ "maxLength": 128,
27
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
28
+ },
29
+ "productSessionId": {
30
+ "type": "string",
31
+ "minLength": 1,
32
+ "maxLength": 128,
33
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
34
+ }
35
+ },
36
+ "required": [
37
+ "adopterId",
38
+ "tenantId",
39
+ "subjectId",
40
+ "productSessionId"
41
+ ],
42
+ "additionalProperties": false
43
+ },
44
+ "ConversationTurnRequest": {
45
+ "type": "object",
46
+ "properties": {
47
+ "schemaVersion": {
48
+ "type": "number",
49
+ "const": 1
50
+ },
51
+ "kind": {
52
+ "type": "string",
53
+ "const": "conversation-turn"
54
+ },
55
+ "invocationId": {
56
+ "type": "string",
57
+ "minLength": 1,
58
+ "maxLength": 128,
59
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
60
+ },
61
+ "prompt": {
62
+ "type": "string",
63
+ "minLength": 1,
64
+ "maxLength": 200000,
65
+ "x-heddle-trimmed": true
66
+ },
67
+ "deadlineAt": {
68
+ "type": "string",
69
+ "format": "date-time",
70
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
71
+ }
72
+ },
73
+ "required": [
74
+ "schemaVersion",
75
+ "kind",
76
+ "invocationId",
77
+ "prompt"
78
+ ],
79
+ "additionalProperties": false
80
+ },
81
+ "RuntimePublicResult": {
82
+ "type": "object",
83
+ "properties": {
84
+ "outcome": {
85
+ "type": "string",
86
+ "enum": [
87
+ "done",
88
+ "max_steps",
89
+ "error",
90
+ "interrupted"
91
+ ]
92
+ },
93
+ "summary": {
94
+ "type": "string"
95
+ },
96
+ "failure": {
97
+ "type": "object",
98
+ "properties": {
99
+ "source": {
100
+ "type": "string",
101
+ "const": "model"
102
+ },
103
+ "code": {
104
+ "type": "string",
105
+ "enum": [
106
+ "authentication",
107
+ "permission",
108
+ "quota",
109
+ "rate_limit",
110
+ "context_window",
111
+ "request",
112
+ "transport",
113
+ "empty_response",
114
+ "unknown"
115
+ ]
116
+ }
117
+ },
118
+ "required": [
119
+ "source",
120
+ "code"
121
+ ],
122
+ "additionalProperties": false
123
+ }
124
+ },
125
+ "required": [
126
+ "outcome"
127
+ ],
128
+ "additionalProperties": false
129
+ },
130
+ "StreamEvent": {
131
+ "oneOf": [
132
+ {
133
+ "type": "object",
134
+ "properties": {
135
+ "schemaVersion": {
136
+ "type": "number",
137
+ "const": 1
138
+ },
139
+ "invocationId": {
140
+ "type": "string",
141
+ "minLength": 1,
142
+ "maxLength": 128,
143
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
144
+ },
145
+ "runId": {
146
+ "type": "string",
147
+ "minLength": 1,
148
+ "maxLength": 128,
149
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
150
+ },
151
+ "sequence": {
152
+ "type": "number",
153
+ "const": 0
154
+ },
155
+ "timestamp": {
156
+ "type": "string",
157
+ "format": "date-time",
158
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
159
+ },
160
+ "kind": {
161
+ "type": "string",
162
+ "const": "accepted"
163
+ }
164
+ },
165
+ "required": [
166
+ "schemaVersion",
167
+ "invocationId",
168
+ "runId",
169
+ "sequence",
170
+ "timestamp",
171
+ "kind"
172
+ ],
173
+ "additionalProperties": false
174
+ },
175
+ {
176
+ "type": "object",
177
+ "properties": {
178
+ "schemaVersion": {
179
+ "type": "number",
180
+ "const": 1
181
+ },
182
+ "invocationId": {
183
+ "type": "string",
184
+ "minLength": 1,
185
+ "maxLength": 128,
186
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
187
+ },
188
+ "runId": {
189
+ "type": "string",
190
+ "minLength": 1,
191
+ "maxLength": 128,
192
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
193
+ },
194
+ "sequence": {
195
+ "type": "integer",
196
+ "minimum": 0,
197
+ "maximum": 9007199254740991
198
+ },
199
+ "timestamp": {
200
+ "type": "string",
201
+ "format": "date-time",
202
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
203
+ },
204
+ "kind": {
205
+ "type": "string",
206
+ "const": "activity"
207
+ },
208
+ "activity": {}
209
+ },
210
+ "required": [
211
+ "schemaVersion",
212
+ "invocationId",
213
+ "runId",
214
+ "sequence",
215
+ "timestamp",
216
+ "kind",
217
+ "activity"
218
+ ],
219
+ "additionalProperties": false
220
+ },
221
+ {
222
+ "type": "object",
223
+ "properties": {
224
+ "schemaVersion": {
225
+ "type": "number",
226
+ "const": 1
227
+ },
228
+ "invocationId": {
229
+ "type": "string",
230
+ "minLength": 1,
231
+ "maxLength": 128,
232
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
233
+ },
234
+ "runId": {
235
+ "type": "string",
236
+ "minLength": 1,
237
+ "maxLength": 128,
238
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
239
+ },
240
+ "sequence": {
241
+ "type": "integer",
242
+ "minimum": 0,
243
+ "maximum": 9007199254740991
244
+ },
245
+ "timestamp": {
246
+ "type": "string",
247
+ "format": "date-time",
248
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
249
+ },
250
+ "kind": {
251
+ "type": "string",
252
+ "const": "result"
253
+ },
254
+ "result": {
255
+ "type": "object",
256
+ "properties": {
257
+ "outcome": {
258
+ "type": "string",
259
+ "enum": [
260
+ "done",
261
+ "max_steps",
262
+ "error",
263
+ "interrupted"
264
+ ]
265
+ },
266
+ "summary": {
267
+ "type": "string"
268
+ },
269
+ "failure": {
270
+ "type": "object",
271
+ "properties": {
272
+ "source": {
273
+ "type": "string",
274
+ "const": "model"
275
+ },
276
+ "code": {
277
+ "type": "string",
278
+ "enum": [
279
+ "authentication",
280
+ "permission",
281
+ "quota",
282
+ "rate_limit",
283
+ "context_window",
284
+ "request",
285
+ "transport",
286
+ "empty_response",
287
+ "unknown"
288
+ ]
289
+ }
290
+ },
291
+ "required": [
292
+ "source",
293
+ "code"
294
+ ],
295
+ "additionalProperties": false
296
+ }
297
+ },
298
+ "required": [
299
+ "outcome"
300
+ ],
301
+ "additionalProperties": false
302
+ }
303
+ },
304
+ "required": [
305
+ "schemaVersion",
306
+ "invocationId",
307
+ "runId",
308
+ "sequence",
309
+ "timestamp",
310
+ "kind",
311
+ "result"
312
+ ],
313
+ "additionalProperties": false
314
+ },
315
+ {
316
+ "type": "object",
317
+ "properties": {
318
+ "schemaVersion": {
319
+ "type": "number",
320
+ "const": 1
321
+ },
322
+ "invocationId": {
323
+ "type": "string",
324
+ "minLength": 1,
325
+ "maxLength": 128,
326
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
327
+ },
328
+ "runId": {
329
+ "type": "string",
330
+ "minLength": 1,
331
+ "maxLength": 128,
332
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
333
+ },
334
+ "sequence": {
335
+ "type": "integer",
336
+ "minimum": 0,
337
+ "maximum": 9007199254740991
338
+ },
339
+ "timestamp": {
340
+ "type": "string",
341
+ "format": "date-time",
342
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
343
+ },
344
+ "kind": {
345
+ "type": "string",
346
+ "const": "cancelled"
347
+ },
348
+ "reason": {
349
+ "type": "string"
350
+ }
351
+ },
352
+ "required": [
353
+ "schemaVersion",
354
+ "invocationId",
355
+ "runId",
356
+ "sequence",
357
+ "timestamp",
358
+ "kind",
359
+ "reason"
360
+ ],
361
+ "additionalProperties": false
362
+ },
363
+ {
364
+ "type": "object",
365
+ "properties": {
366
+ "schemaVersion": {
367
+ "type": "number",
368
+ "const": 1
369
+ },
370
+ "invocationId": {
371
+ "type": "string",
372
+ "minLength": 1,
373
+ "maxLength": 128,
374
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
375
+ },
376
+ "runId": {
377
+ "type": "string",
378
+ "minLength": 1,
379
+ "maxLength": 128,
380
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
381
+ },
382
+ "sequence": {
383
+ "type": "integer",
384
+ "minimum": 0,
385
+ "maximum": 9007199254740991
386
+ },
387
+ "timestamp": {
388
+ "type": "string",
389
+ "format": "date-time",
390
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
391
+ },
392
+ "kind": {
393
+ "type": "string",
394
+ "const": "error"
395
+ },
396
+ "error": {
397
+ "type": "object",
398
+ "properties": {
399
+ "code": {
400
+ "type": "string",
401
+ "minLength": 1,
402
+ "maxLength": 128,
403
+ "pattern": "^[a-z0-9_]+$"
404
+ },
405
+ "message": {
406
+ "type": "string",
407
+ "minLength": 1,
408
+ "maxLength": 1600
409
+ }
410
+ },
411
+ "required": [
412
+ "code",
413
+ "message"
414
+ ],
415
+ "additionalProperties": false
416
+ }
417
+ },
418
+ "required": [
419
+ "schemaVersion",
420
+ "invocationId",
421
+ "runId",
422
+ "sequence",
423
+ "timestamp",
424
+ "kind",
425
+ "error"
426
+ ],
427
+ "additionalProperties": false
428
+ }
429
+ ]
430
+ },
431
+ "ExecutionAssertionClaims": {
432
+ "type": "object",
433
+ "properties": {
434
+ "iss": {
435
+ "type": "string",
436
+ "format": "uri"
437
+ },
438
+ "aud": {
439
+ "type": "string",
440
+ "minLength": 1,
441
+ "maxLength": 512
442
+ },
443
+ "contractVersion": {
444
+ "type": "number",
445
+ "const": 1
446
+ },
447
+ "adopterId": {
448
+ "type": "string",
449
+ "minLength": 1,
450
+ "maxLength": 128,
451
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
452
+ },
453
+ "tenantId": {
454
+ "type": "string",
455
+ "minLength": 1,
456
+ "maxLength": 128,
457
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
458
+ },
459
+ "productSessionId": {
460
+ "type": "string",
461
+ "minLength": 1,
462
+ "maxLength": 128,
463
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
464
+ },
465
+ "runtimeSessionId": {
466
+ "type": "string",
467
+ "minLength": 33,
468
+ "maxLength": 256,
469
+ "x-heddle-trimmed": true
470
+ },
471
+ "workflow": {
472
+ "type": "string",
473
+ "const": "conversation-turn"
474
+ },
475
+ "sub": {
476
+ "type": "string",
477
+ "minLength": 1,
478
+ "maxLength": 128,
479
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
480
+ },
481
+ "jti": {
482
+ "type": "string",
483
+ "minLength": 1,
484
+ "maxLength": 128,
485
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
486
+ },
487
+ "iat": {
488
+ "type": "integer",
489
+ "minimum": 0,
490
+ "maximum": 9007199254740991
491
+ },
492
+ "exp": {
493
+ "type": "integer",
494
+ "exclusiveMinimum": 0,
495
+ "maximum": 9007199254740991
496
+ }
497
+ },
498
+ "required": [
499
+ "iss",
500
+ "aud",
501
+ "contractVersion",
502
+ "adopterId",
503
+ "tenantId",
504
+ "productSessionId",
505
+ "runtimeSessionId",
506
+ "workflow",
507
+ "sub",
508
+ "jti",
509
+ "iat",
510
+ "exp"
511
+ ],
512
+ "additionalProperties": {}
513
+ },
514
+ "McpCapabilityClaims": {
515
+ "type": "object",
516
+ "properties": {
517
+ "iss": {
518
+ "type": "string",
519
+ "format": "uri"
520
+ },
521
+ "aud": {
522
+ "type": "string",
523
+ "minLength": 1,
524
+ "maxLength": 512
525
+ },
526
+ "contractVersion": {
527
+ "type": "number",
528
+ "const": 1
529
+ },
530
+ "adopterId": {
531
+ "type": "string",
532
+ "minLength": 1,
533
+ "maxLength": 128,
534
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
535
+ },
536
+ "tenantId": {
537
+ "type": "string",
538
+ "minLength": 1,
539
+ "maxLength": 128,
540
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
541
+ },
542
+ "productSessionId": {
543
+ "type": "string",
544
+ "minLength": 1,
545
+ "maxLength": 128,
546
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
547
+ },
548
+ "runtimeSessionId": {
549
+ "type": "string",
550
+ "minLength": 33,
551
+ "maxLength": 256,
552
+ "x-heddle-trimmed": true
553
+ },
554
+ "invocationId": {
555
+ "type": "string",
556
+ "minLength": 1,
557
+ "maxLength": 128,
558
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
559
+ },
560
+ "workflow": {
561
+ "type": "string",
562
+ "const": "conversation-turn"
563
+ },
564
+ "serverId": {
565
+ "type": "string",
566
+ "minLength": 1,
567
+ "maxLength": 64,
568
+ "pattern": "^[A-Za-z0-9_-]+$"
569
+ },
570
+ "allowedTools": {
571
+ "minItems": 1,
572
+ "maxItems": 16,
573
+ "type": "array",
574
+ "items": {
575
+ "type": "string",
576
+ "minLength": 1,
577
+ "maxLength": 64,
578
+ "pattern": "^[A-Za-z][A-Za-z0-9_]*$"
579
+ },
580
+ "uniqueItems": true,
581
+ "x-heddle-max-total-item-characters": 512
582
+ },
583
+ "sub": {
584
+ "type": "string",
585
+ "minLength": 1,
586
+ "maxLength": 128,
587
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
588
+ },
589
+ "jti": {
590
+ "type": "string",
591
+ "minLength": 1,
592
+ "maxLength": 128,
593
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
594
+ },
595
+ "iat": {
596
+ "type": "integer",
597
+ "minimum": 0,
598
+ "maximum": 9007199254740991
599
+ },
600
+ "exp": {
601
+ "type": "integer",
602
+ "exclusiveMinimum": 0,
603
+ "maximum": 9007199254740991
604
+ }
605
+ },
606
+ "required": [
607
+ "iss",
608
+ "aud",
609
+ "contractVersion",
610
+ "adopterId",
611
+ "tenantId",
612
+ "productSessionId",
613
+ "runtimeSessionId",
614
+ "invocationId",
615
+ "workflow",
616
+ "serverId",
617
+ "allowedTools",
618
+ "sub",
619
+ "jti",
620
+ "iat",
621
+ "exp"
622
+ ],
623
+ "additionalProperties": {}
624
+ },
625
+ "ExecutionAssertionProtectedHeader": {
626
+ "type": "object",
627
+ "properties": {
628
+ "alg": {
629
+ "type": "string",
630
+ "const": "ES256"
631
+ },
632
+ "kid": {
633
+ "type": "string",
634
+ "minLength": 1,
635
+ "maxLength": 128,
636
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
637
+ },
638
+ "typ": {
639
+ "type": "string",
640
+ "const": "heddle-execution+jwt"
641
+ }
642
+ },
643
+ "required": [
644
+ "alg",
645
+ "kid",
646
+ "typ"
647
+ ],
648
+ "additionalProperties": false
649
+ },
650
+ "McpCapabilityProtectedHeader": {
651
+ "type": "object",
652
+ "properties": {
653
+ "alg": {
654
+ "type": "string",
655
+ "const": "ES256"
656
+ },
657
+ "kid": {
658
+ "type": "string",
659
+ "minLength": 1,
660
+ "maxLength": 128,
661
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
662
+ },
663
+ "typ": {
664
+ "type": "string",
665
+ "const": "heddle-mcp-capability+jwt"
666
+ }
667
+ },
668
+ "required": [
669
+ "alg",
670
+ "kid",
671
+ "typ"
672
+ ],
673
+ "additionalProperties": false
674
+ },
675
+ "ApiError": {
676
+ "type": "object",
677
+ "properties": {
678
+ "error": {
679
+ "type": "object",
680
+ "properties": {
681
+ "code": {
682
+ "type": "string",
683
+ "minLength": 1,
684
+ "maxLength": 128,
685
+ "pattern": "^[a-z0-9_]+$"
686
+ },
687
+ "message": {
688
+ "type": "string",
689
+ "minLength": 1,
690
+ "maxLength": 1600
691
+ }
692
+ },
693
+ "required": [
694
+ "code",
695
+ "message"
696
+ ],
697
+ "additionalProperties": false
698
+ }
699
+ },
700
+ "required": [
701
+ "error"
702
+ ],
703
+ "additionalProperties": false
704
+ },
705
+ "HostedConversationPersistenceScope": {
706
+ "type": "object",
707
+ "properties": {
708
+ "tenantId": {
709
+ "type": "string",
710
+ "minLength": 1,
711
+ "maxLength": 128,
712
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
713
+ },
714
+ "subjectId": {
715
+ "type": "string",
716
+ "minLength": 1,
717
+ "maxLength": 128,
718
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
719
+ },
720
+ "productSessionId": {
721
+ "type": "string",
722
+ "minLength": 1,
723
+ "maxLength": 128,
724
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
725
+ }
726
+ },
727
+ "required": [
728
+ "tenantId",
729
+ "subjectId",
730
+ "productSessionId"
731
+ ],
732
+ "additionalProperties": false
733
+ },
734
+ "HostedConversationTurnIdentity": {
735
+ "type": "object",
736
+ "properties": {
737
+ "invocationId": {
738
+ "type": "string",
739
+ "minLength": 1,
740
+ "maxLength": 128,
741
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
742
+ },
743
+ "scope": {
744
+ "type": "object",
745
+ "properties": {
746
+ "tenantId": {
747
+ "type": "string",
748
+ "minLength": 1,
749
+ "maxLength": 128,
750
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
751
+ },
752
+ "subjectId": {
753
+ "type": "string",
754
+ "minLength": 1,
755
+ "maxLength": 128,
756
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
757
+ },
758
+ "productSessionId": {
759
+ "type": "string",
760
+ "minLength": 1,
761
+ "maxLength": 128,
762
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
763
+ }
764
+ },
765
+ "required": [
766
+ "tenantId",
767
+ "subjectId",
768
+ "productSessionId"
769
+ ],
770
+ "additionalProperties": false
771
+ }
772
+ },
773
+ "required": [
774
+ "invocationId",
775
+ "scope"
776
+ ],
777
+ "additionalProperties": false
778
+ },
779
+ "HostedConversationRequestedTurn": {
780
+ "type": "object",
781
+ "properties": {
782
+ "invocationId": {
783
+ "type": "string",
784
+ "minLength": 1,
785
+ "maxLength": 128,
786
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
787
+ },
788
+ "scope": {
789
+ "type": "object",
790
+ "properties": {
791
+ "tenantId": {
792
+ "type": "string",
793
+ "minLength": 1,
794
+ "maxLength": 128,
795
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
796
+ },
797
+ "subjectId": {
798
+ "type": "string",
799
+ "minLength": 1,
800
+ "maxLength": 128,
801
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
802
+ },
803
+ "productSessionId": {
804
+ "type": "string",
805
+ "minLength": 1,
806
+ "maxLength": 128,
807
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
808
+ }
809
+ },
810
+ "required": [
811
+ "tenantId",
812
+ "subjectId",
813
+ "productSessionId"
814
+ ],
815
+ "additionalProperties": false
816
+ },
817
+ "prompt": {
818
+ "type": "string",
819
+ "minLength": 1,
820
+ "maxLength": 200000
821
+ },
822
+ "deadlineAt": {
823
+ "type": "string",
824
+ "format": "date-time",
825
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
826
+ },
827
+ "requestedAt": {
828
+ "type": "string",
829
+ "format": "date-time",
830
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
831
+ }
832
+ },
833
+ "required": [
834
+ "invocationId",
835
+ "scope",
836
+ "prompt",
837
+ "requestedAt"
838
+ ],
839
+ "additionalProperties": false
840
+ },
841
+ "HostedConversationAcceptedTurn": {
842
+ "type": "object",
843
+ "properties": {
844
+ "invocationId": {
845
+ "type": "string",
846
+ "minLength": 1,
847
+ "maxLength": 128,
848
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
849
+ },
850
+ "scope": {
851
+ "type": "object",
852
+ "properties": {
853
+ "tenantId": {
854
+ "type": "string",
855
+ "minLength": 1,
856
+ "maxLength": 128,
857
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
858
+ },
859
+ "subjectId": {
860
+ "type": "string",
861
+ "minLength": 1,
862
+ "maxLength": 128,
863
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
864
+ },
865
+ "productSessionId": {
866
+ "type": "string",
867
+ "minLength": 1,
868
+ "maxLength": 128,
869
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
870
+ }
871
+ },
872
+ "required": [
873
+ "tenantId",
874
+ "subjectId",
875
+ "productSessionId"
876
+ ],
877
+ "additionalProperties": false
878
+ },
879
+ "runId": {
880
+ "type": "string",
881
+ "minLength": 1,
882
+ "maxLength": 128,
883
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
884
+ },
885
+ "acceptedAt": {
886
+ "type": "string",
887
+ "format": "date-time",
888
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
889
+ }
890
+ },
891
+ "required": [
892
+ "invocationId",
893
+ "scope",
894
+ "runId",
895
+ "acceptedAt"
896
+ ],
897
+ "additionalProperties": false
898
+ },
899
+ "HostedConversationTurnSettlement": {
900
+ "oneOf": [
901
+ {
902
+ "type": "object",
903
+ "properties": {
904
+ "invocationId": {
905
+ "type": "string",
906
+ "minLength": 1,
907
+ "maxLength": 128,
908
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
909
+ },
910
+ "scope": {
911
+ "type": "object",
912
+ "properties": {
913
+ "tenantId": {
914
+ "type": "string",
915
+ "minLength": 1,
916
+ "maxLength": 128,
917
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
918
+ },
919
+ "subjectId": {
920
+ "type": "string",
921
+ "minLength": 1,
922
+ "maxLength": 128,
923
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
924
+ },
925
+ "productSessionId": {
926
+ "type": "string",
927
+ "minLength": 1,
928
+ "maxLength": 128,
929
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
930
+ }
931
+ },
932
+ "required": [
933
+ "tenantId",
934
+ "subjectId",
935
+ "productSessionId"
936
+ ],
937
+ "additionalProperties": false
938
+ },
939
+ "settledAt": {
940
+ "type": "string",
941
+ "format": "date-time",
942
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
943
+ },
944
+ "status": {
945
+ "type": "string",
946
+ "const": "completed"
947
+ },
948
+ "summary": {
949
+ "type": "string",
950
+ "maxLength": 1000000
951
+ }
952
+ },
953
+ "required": [
954
+ "invocationId",
955
+ "scope",
956
+ "settledAt",
957
+ "status"
958
+ ],
959
+ "additionalProperties": false
960
+ },
961
+ {
962
+ "type": "object",
963
+ "properties": {
964
+ "invocationId": {
965
+ "type": "string",
966
+ "minLength": 1,
967
+ "maxLength": 128,
968
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
969
+ },
970
+ "scope": {
971
+ "type": "object",
972
+ "properties": {
973
+ "tenantId": {
974
+ "type": "string",
975
+ "minLength": 1,
976
+ "maxLength": 128,
977
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
978
+ },
979
+ "subjectId": {
980
+ "type": "string",
981
+ "minLength": 1,
982
+ "maxLength": 128,
983
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
984
+ },
985
+ "productSessionId": {
986
+ "type": "string",
987
+ "minLength": 1,
988
+ "maxLength": 128,
989
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
990
+ }
991
+ },
992
+ "required": [
993
+ "tenantId",
994
+ "subjectId",
995
+ "productSessionId"
996
+ ],
997
+ "additionalProperties": false
998
+ },
999
+ "settledAt": {
1000
+ "type": "string",
1001
+ "format": "date-time",
1002
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1003
+ },
1004
+ "status": {
1005
+ "type": "string",
1006
+ "const": "max_steps"
1007
+ },
1008
+ "summary": {
1009
+ "type": "string",
1010
+ "maxLength": 1000000
1011
+ }
1012
+ },
1013
+ "required": [
1014
+ "invocationId",
1015
+ "scope",
1016
+ "settledAt",
1017
+ "status"
1018
+ ],
1019
+ "additionalProperties": false
1020
+ },
1021
+ {
1022
+ "type": "object",
1023
+ "properties": {
1024
+ "invocationId": {
1025
+ "type": "string",
1026
+ "minLength": 1,
1027
+ "maxLength": 128,
1028
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1029
+ },
1030
+ "scope": {
1031
+ "type": "object",
1032
+ "properties": {
1033
+ "tenantId": {
1034
+ "type": "string",
1035
+ "minLength": 1,
1036
+ "maxLength": 128,
1037
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1038
+ },
1039
+ "subjectId": {
1040
+ "type": "string",
1041
+ "minLength": 1,
1042
+ "maxLength": 128,
1043
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1044
+ },
1045
+ "productSessionId": {
1046
+ "type": "string",
1047
+ "minLength": 1,
1048
+ "maxLength": 128,
1049
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1050
+ }
1051
+ },
1052
+ "required": [
1053
+ "tenantId",
1054
+ "subjectId",
1055
+ "productSessionId"
1056
+ ],
1057
+ "additionalProperties": false
1058
+ },
1059
+ "settledAt": {
1060
+ "type": "string",
1061
+ "format": "date-time",
1062
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1063
+ },
1064
+ "status": {
1065
+ "type": "string",
1066
+ "const": "failed"
1067
+ },
1068
+ "summary": {
1069
+ "type": "string",
1070
+ "maxLength": 1000000
1071
+ },
1072
+ "failureCode": {
1073
+ "type": "string",
1074
+ "enum": [
1075
+ "execution_error",
1076
+ "execution_failed",
1077
+ "execution_result_error",
1078
+ "host_protocol_error",
1079
+ "host_rejected",
1080
+ "model_authentication",
1081
+ "model_context_window",
1082
+ "model_empty_response",
1083
+ "model_permission",
1084
+ "model_quota",
1085
+ "model_rate_limit",
1086
+ "model_request",
1087
+ "model_transport",
1088
+ "model_unknown"
1089
+ ]
1090
+ }
1091
+ },
1092
+ "required": [
1093
+ "invocationId",
1094
+ "scope",
1095
+ "settledAt",
1096
+ "status",
1097
+ "failureCode"
1098
+ ],
1099
+ "additionalProperties": false
1100
+ },
1101
+ {
1102
+ "type": "object",
1103
+ "properties": {
1104
+ "invocationId": {
1105
+ "type": "string",
1106
+ "minLength": 1,
1107
+ "maxLength": 128,
1108
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1109
+ },
1110
+ "scope": {
1111
+ "type": "object",
1112
+ "properties": {
1113
+ "tenantId": {
1114
+ "type": "string",
1115
+ "minLength": 1,
1116
+ "maxLength": 128,
1117
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1118
+ },
1119
+ "subjectId": {
1120
+ "type": "string",
1121
+ "minLength": 1,
1122
+ "maxLength": 128,
1123
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1124
+ },
1125
+ "productSessionId": {
1126
+ "type": "string",
1127
+ "minLength": 1,
1128
+ "maxLength": 128,
1129
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1130
+ }
1131
+ },
1132
+ "required": [
1133
+ "tenantId",
1134
+ "subjectId",
1135
+ "productSessionId"
1136
+ ],
1137
+ "additionalProperties": false
1138
+ },
1139
+ "settledAt": {
1140
+ "type": "string",
1141
+ "format": "date-time",
1142
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1143
+ },
1144
+ "status": {
1145
+ "type": "string",
1146
+ "const": "cancelled"
1147
+ },
1148
+ "failureCode": {
1149
+ "type": "string",
1150
+ "const": "invocation_cancelled"
1151
+ }
1152
+ },
1153
+ "required": [
1154
+ "invocationId",
1155
+ "scope",
1156
+ "settledAt",
1157
+ "status",
1158
+ "failureCode"
1159
+ ],
1160
+ "additionalProperties": false
1161
+ },
1162
+ {
1163
+ "type": "object",
1164
+ "properties": {
1165
+ "invocationId": {
1166
+ "type": "string",
1167
+ "minLength": 1,
1168
+ "maxLength": 128,
1169
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1170
+ },
1171
+ "scope": {
1172
+ "type": "object",
1173
+ "properties": {
1174
+ "tenantId": {
1175
+ "type": "string",
1176
+ "minLength": 1,
1177
+ "maxLength": 128,
1178
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1179
+ },
1180
+ "subjectId": {
1181
+ "type": "string",
1182
+ "minLength": 1,
1183
+ "maxLength": 128,
1184
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1185
+ },
1186
+ "productSessionId": {
1187
+ "type": "string",
1188
+ "minLength": 1,
1189
+ "maxLength": 128,
1190
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1191
+ }
1192
+ },
1193
+ "required": [
1194
+ "tenantId",
1195
+ "subjectId",
1196
+ "productSessionId"
1197
+ ],
1198
+ "additionalProperties": false
1199
+ },
1200
+ "settledAt": {
1201
+ "type": "string",
1202
+ "format": "date-time",
1203
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1204
+ },
1205
+ "status": {
1206
+ "type": "string",
1207
+ "const": "interrupted"
1208
+ },
1209
+ "summary": {
1210
+ "type": "string",
1211
+ "maxLength": 1000000
1212
+ },
1213
+ "failureCode": {
1214
+ "type": "string",
1215
+ "enum": [
1216
+ "deadline_elapsed",
1217
+ "execution_interrupted",
1218
+ "invocation_aborted",
1219
+ "stream_ended_without_terminal",
1220
+ "stream_interrupted"
1221
+ ]
1222
+ }
1223
+ },
1224
+ "required": [
1225
+ "invocationId",
1226
+ "scope",
1227
+ "settledAt",
1228
+ "status",
1229
+ "failureCode"
1230
+ ],
1231
+ "additionalProperties": false
1232
+ }
1233
+ ]
1234
+ },
1235
+ "HostedConversationExpiredTurnReconciliation": {
1236
+ "type": "object",
1237
+ "properties": {
1238
+ "scope": {
1239
+ "type": "object",
1240
+ "properties": {
1241
+ "tenantId": {
1242
+ "type": "string",
1243
+ "minLength": 1,
1244
+ "maxLength": 128,
1245
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1246
+ },
1247
+ "subjectId": {
1248
+ "type": "string",
1249
+ "minLength": 1,
1250
+ "maxLength": 128,
1251
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1252
+ },
1253
+ "productSessionId": {
1254
+ "type": "string",
1255
+ "minLength": 1,
1256
+ "maxLength": 128,
1257
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:@-]*$"
1258
+ }
1259
+ },
1260
+ "required": [
1261
+ "tenantId",
1262
+ "subjectId",
1263
+ "productSessionId"
1264
+ ],
1265
+ "additionalProperties": false
1266
+ },
1267
+ "expiredBefore": {
1268
+ "type": "string",
1269
+ "format": "date-time",
1270
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1271
+ },
1272
+ "settledAt": {
1273
+ "type": "string",
1274
+ "format": "date-time",
1275
+ "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
1276
+ }
1277
+ },
1278
+ "required": [
1279
+ "scope",
1280
+ "expiredBefore",
1281
+ "settledAt"
1282
+ ],
1283
+ "additionalProperties": false
1284
+ }
1285
+ }
1286
+ }