@openwop/spec-artifacts 2.35.1 → 2.36.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.
- package/CORPUS-STAMP.json +103 -89
- package/api/openapi.yaml +325 -4
- package/api/seams-v2.yaml +342 -1
- package/api/v2/asyncapi.yaml +1 -1
- package/api/v2/openapi.yaml +564 -8
- package/package.json +1 -1
- package/schemas/a2a-task-state.schema.json +3 -3
- package/schemas/artifact-type-pack-manifest.schema.json +3 -3
- package/schemas/capabilities.schema.json +34 -1
- package/schemas/connection-pack-manifest.schema.json +14 -0
- package/schemas/debug-bundle.schema.json +20 -0
- package/schemas/dispatch-config.schema.json +1 -1
- package/schemas/localized-content-language-settings.schema.json +3 -3
- package/schemas/localized-content-page.schema.json +2 -2
- package/schemas/localized-content-section.schema.json +3 -3
- package/schemas/run-event-payloads.schema.json +4 -2
- package/schemas/suspend-request.schema.json +61 -4
- package/schemas/v2/a2a-task-state.schema.json +10 -9
- package/schemas/v2/agent-deployment-transition.schema.json +4 -4
- package/schemas/v2/agent-deployment.schema.json +7 -7
- package/schemas/v2/agent-eval-suite.schema.json +10 -10
- package/schemas/v2/agent-inventory-response.schema.json +8 -2
- package/schemas/v2/artifact-type-pack-manifest.schema.json +3 -3
- package/schemas/v2/artifact.schema.json +84 -0
- package/schemas/v2/capabilities.schema.json +82 -8
- package/schemas/v2/certification-bundle.schema.json +1 -1
- package/schemas/v2/channel-presence-payload.schema.json +3 -3
- package/schemas/v2/connection-pack-manifest.schema.json +14 -0
- package/schemas/v2/conversation-event.schema.json +9 -2
- package/schemas/v2/conversation-turn.schema.json +19 -12
- package/schemas/v2/dispatch-config.schema.json +1 -1
- package/schemas/v2/envelopes/ui.a2ui-surface.schema.json +920 -22
- package/schemas/v2/error-envelope.schema.json +11 -1
- package/schemas/v2/eval-summary.schema.json +1 -2
- package/schemas/v2/goal.schema.json +4 -4
- package/schemas/v2/localized-content-language-settings.schema.json +3 -3
- package/schemas/v2/localized-content-page.schema.json +2 -2
- package/schemas/v2/localized-content-section.schema.json +3 -3
- package/schemas/v2/node-pack-manifest.schema.json +105 -0
- package/schemas/v2/part.schema.json +81 -0
- package/schemas/v2/proposal.schema.json +6 -6
- package/schemas/v2/run-event-payloads.schema.json +5 -3
- package/schemas/v2/self-hosted-runner-dispatch-frame.schema.json +2 -2
- package/schemas/v2/self-hosted-runner-result-frame.schema.json +1 -1
- package/schemas/v2/suspend-request.schema.json +251 -6
- package/schemas/v2/tool-descriptor.schema.json +246 -2
- package/schemas/v2/trigger-event.schema.json +1 -2
- package/schemas/v2/trigger-subscription.schema.json +1 -2
- package/schemas/v2/webhook-verification.schema.json +22 -0
- package/schemas/v2/workflow-definition.schema.json +25 -25
- package/spec/v1/alias-detectors.json +13 -1
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v1/deprecations.json +45 -1
- package/spec/v1/deprecations.schema.json +119 -4
- package/spec/v1/gaps.json +1925 -4
- package/spec/v2/README.md +5 -2
- package/spec/v2/core/capabilities.md +13 -26
- package/spec/v2/core/conformance.md +5 -8
- package/spec/v2/core/connection-packs.md +1 -1
- package/spec/v2/core/conversation.md +1 -1
- package/spec/v2/core/errors.md +8 -3
- package/spec/v2/core/events.md +8 -20
- package/spec/v2/core/form-content-packs.md +2 -2
- package/spec/v2/core/headers.md +5 -4
- package/spec/v2/core/host-services.md +6 -2
- package/spec/v2/core/idempotency.md +1 -1
- package/spec/v2/core/identity.md +23 -12
- package/spec/v2/core/interop.md +34 -4
- package/spec/v2/core/interrupt.md +6 -3
- package/spec/v2/core/node-pack-runtimes.md +20 -0
- package/spec/v2/core/oauth.md +32 -0
- package/spec/v2/core/overview.md +19 -6
- package/spec/v2/core/packs.md +4 -6
- package/spec/v2/core/persistence.md +20 -55
- package/spec/v2/core/replay.md +5 -11
- package/spec/v2/core/runs.md +9 -8
- package/spec/v2/core/security-defaults.md +18 -20
- package/spec/v2/core/tool-catalog.md +22 -0
- package/spec/v2/core/versioning.md +10 -28
- package/spec/v2/core/webhooks.md +16 -4
- package/spec/v2/core/workflow-chain-packs.md +1 -1
- package/spec/v2/corrections.json +32 -0
- package/spec/v2/corrections.schema.json +49 -0
- package/spec/v2/declaration.json +18 -13
- package/spec/v2/declaration.schema.json +3 -1
- package/spec/v2/errors.json +46 -1
- package/spec/v2/ext/a2uiSurface/README.md +131 -17
- package/spec/v2/ext/dataIntegration/README.md +5 -0
- package/spec/v2/facets/a2a.schema.json +4 -0
- package/spec/v2/facets/auth.schema.json +24 -0
- package/spec/v2/facets/mcp.schema.json +4 -0
- package/spec/v2/facets/oauth.schema.json +70 -0
- package/spec/v2/facets/webhooks.schema.json +23 -2
- package/spec/v2/id-field-bindings.json +2 -0
- package/spec/v2/interop-map.json +639 -0
- package/spec/v2/interop-map.schema.json +458 -0
- package/spec/v2/migrations.json +7 -0
- package/spec/v2/migrations.schema.json +58 -0
- package/spec/v2/path-manifest.json +6 -1
- package/spec/v2/release.json +3 -3
- package/spec/v2/surface-baseline.json +7981 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://openwop.dev/spec/v2/interop-map.schema.json",
|
|
4
|
+
"title": "OpenWOP v2 interop map",
|
|
5
|
+
"description": "RFC 0208 — shape of spec/v2/interop-map.json: the normative rows mapping A2A and MCP upstream operations, states, fields and errors onto the v2 wire. Data, not a wire artifact; kept out of schemas/ like event-codemap.schema.json. Checked by scripts/check-interop-map.mjs.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"$schema",
|
|
10
|
+
"$comment",
|
|
11
|
+
"version",
|
|
12
|
+
"updated",
|
|
13
|
+
"pins",
|
|
14
|
+
"a2a",
|
|
15
|
+
"mcp"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"$schema": {
|
|
19
|
+
"const": "./interop-map.schema.json"
|
|
20
|
+
},
|
|
21
|
+
"$comment": {
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"version": {
|
|
25
|
+
"const": 1
|
|
26
|
+
},
|
|
27
|
+
"updated": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
|
|
30
|
+
},
|
|
31
|
+
"pins": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"additionalProperties": false,
|
|
34
|
+
"required": [
|
|
35
|
+
"a2a",
|
|
36
|
+
"mcp"
|
|
37
|
+
],
|
|
38
|
+
"properties": {
|
|
39
|
+
"a2a": {
|
|
40
|
+
"$ref": "#/$defs/pin"
|
|
41
|
+
},
|
|
42
|
+
"mcp": {
|
|
43
|
+
"$ref": "#/$defs/pin"
|
|
44
|
+
},
|
|
45
|
+
"mcpTasks": {
|
|
46
|
+
"$ref": "#/$defs/pin",
|
|
47
|
+
"description": "RFC 0198."
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"a2a": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"additionalProperties": false,
|
|
54
|
+
"required": [
|
|
55
|
+
"operations",
|
|
56
|
+
"card",
|
|
57
|
+
"taskState",
|
|
58
|
+
"taskStateReverse",
|
|
59
|
+
"errors",
|
|
60
|
+
"fields"
|
|
61
|
+
],
|
|
62
|
+
"properties": {
|
|
63
|
+
"operations": {
|
|
64
|
+
"type": "array",
|
|
65
|
+
"minItems": 1,
|
|
66
|
+
"items": {
|
|
67
|
+
"$ref": "#/$defs/operation"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"card": {
|
|
71
|
+
"type": "array",
|
|
72
|
+
"items": {
|
|
73
|
+
"$ref": "#/$defs/element"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"taskState": {
|
|
77
|
+
"type": "array",
|
|
78
|
+
"items": {
|
|
79
|
+
"$ref": "#/$defs/stateRow"
|
|
80
|
+
},
|
|
81
|
+
"description": "Forward projection; a total function over RunSnapshot.status (gate-checked)."
|
|
82
|
+
},
|
|
83
|
+
"taskStateReverse": {
|
|
84
|
+
"type": "array",
|
|
85
|
+
"items": {
|
|
86
|
+
"$ref": "#/$defs/reverseRow"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"errors": {
|
|
90
|
+
"type": "array",
|
|
91
|
+
"items": {
|
|
92
|
+
"$ref": "#/$defs/errorRow"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"fields": {
|
|
96
|
+
"type": "array",
|
|
97
|
+
"items": {
|
|
98
|
+
"$ref": "#/$defs/element"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"mcp": {
|
|
104
|
+
"type": "object",
|
|
105
|
+
"additionalProperties": false,
|
|
106
|
+
"required": [
|
|
107
|
+
"features",
|
|
108
|
+
"methods",
|
|
109
|
+
"headers",
|
|
110
|
+
"meta",
|
|
111
|
+
"mrtr",
|
|
112
|
+
"cache",
|
|
113
|
+
"authorization"
|
|
114
|
+
],
|
|
115
|
+
"properties": {
|
|
116
|
+
"features": {
|
|
117
|
+
"type": "array",
|
|
118
|
+
"items": {
|
|
119
|
+
"$ref": "#/$defs/feature"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"methods": {
|
|
123
|
+
"type": "array",
|
|
124
|
+
"items": {
|
|
125
|
+
"$ref": "#/$defs/operation"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"headers": {
|
|
129
|
+
"type": "array",
|
|
130
|
+
"items": {
|
|
131
|
+
"$ref": "#/$defs/element"
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"meta": {
|
|
135
|
+
"type": "array",
|
|
136
|
+
"items": {
|
|
137
|
+
"$ref": "#/$defs/element"
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"mrtr": {
|
|
141
|
+
"type": "array",
|
|
142
|
+
"items": {
|
|
143
|
+
"$ref": "#/$defs/element"
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"cache": {
|
|
147
|
+
"type": "array",
|
|
148
|
+
"items": {
|
|
149
|
+
"$ref": "#/$defs/element"
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"authorization": {
|
|
153
|
+
"type": "array",
|
|
154
|
+
"items": {
|
|
155
|
+
"$ref": "#/$defs/element"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"tasks": {
|
|
159
|
+
"type": "object",
|
|
160
|
+
"description": "RFC 0198.",
|
|
161
|
+
"additionalProperties": false,
|
|
162
|
+
"required": [
|
|
163
|
+
"status",
|
|
164
|
+
"methods",
|
|
165
|
+
"fields"
|
|
166
|
+
],
|
|
167
|
+
"properties": {
|
|
168
|
+
"status": {
|
|
169
|
+
"type": "array",
|
|
170
|
+
"items": {
|
|
171
|
+
"$ref": "#/$defs/taskStatusRow"
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
"methods": {
|
|
175
|
+
"type": "array",
|
|
176
|
+
"items": {
|
|
177
|
+
"$ref": "#/$defs/operation"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"fields": {
|
|
181
|
+
"type": "array",
|
|
182
|
+
"items": {
|
|
183
|
+
"$ref": "#/$defs/element"
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"$defs": {
|
|
192
|
+
"runStatus": {
|
|
193
|
+
"enum": [
|
|
194
|
+
"pending",
|
|
195
|
+
"running",
|
|
196
|
+
"paused",
|
|
197
|
+
"waiting-approval",
|
|
198
|
+
"waiting-input",
|
|
199
|
+
"waiting-external",
|
|
200
|
+
"completed",
|
|
201
|
+
"failed",
|
|
202
|
+
"cancelling",
|
|
203
|
+
"cancelled"
|
|
204
|
+
],
|
|
205
|
+
"description": "Gate-checked equal to schemas/v2/run-snapshot.schema.json status.enum."
|
|
206
|
+
},
|
|
207
|
+
"pin": {
|
|
208
|
+
"type": "object",
|
|
209
|
+
"additionalProperties": false,
|
|
210
|
+
"required": [
|
|
211
|
+
"spec"
|
|
212
|
+
],
|
|
213
|
+
"properties": {
|
|
214
|
+
"release": {
|
|
215
|
+
"type": "string"
|
|
216
|
+
},
|
|
217
|
+
"negotiated": {
|
|
218
|
+
"type": "string",
|
|
219
|
+
"pattern": "^[0-9]+\\.[0-9]+$"
|
|
220
|
+
},
|
|
221
|
+
"revision": {
|
|
222
|
+
"type": "string",
|
|
223
|
+
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
|
|
224
|
+
},
|
|
225
|
+
"extension": {
|
|
226
|
+
"type": "string"
|
|
227
|
+
},
|
|
228
|
+
"spec": {
|
|
229
|
+
"type": "string",
|
|
230
|
+
"format": "uri"
|
|
231
|
+
},
|
|
232
|
+
"proto": {
|
|
233
|
+
"type": "string",
|
|
234
|
+
"format": "uri"
|
|
235
|
+
},
|
|
236
|
+
"schema": {
|
|
237
|
+
"type": "string",
|
|
238
|
+
"format": "uri"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
"operation": {
|
|
243
|
+
"type": "object",
|
|
244
|
+
"additionalProperties": false,
|
|
245
|
+
"required": [
|
|
246
|
+
"upstream",
|
|
247
|
+
"v2Operation",
|
|
248
|
+
"requires",
|
|
249
|
+
"rule"
|
|
250
|
+
],
|
|
251
|
+
"properties": {
|
|
252
|
+
"upstream": {
|
|
253
|
+
"type": "string",
|
|
254
|
+
"minLength": 1
|
|
255
|
+
},
|
|
256
|
+
"http": {
|
|
257
|
+
"type": "string"
|
|
258
|
+
},
|
|
259
|
+
"when": {
|
|
260
|
+
"type": "string"
|
|
261
|
+
},
|
|
262
|
+
"v2Operation": {
|
|
263
|
+
"type": [
|
|
264
|
+
"string",
|
|
265
|
+
"null"
|
|
266
|
+
],
|
|
267
|
+
"description": "An operationId in api/v2/openapi.yaml (gate-checked), or null."
|
|
268
|
+
},
|
|
269
|
+
"requires": {
|
|
270
|
+
"type": "array",
|
|
271
|
+
"uniqueItems": true,
|
|
272
|
+
"items": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"pattern": "^[a-z][A-Za-z0-9]*\\.[a-z][A-Za-z0-9]*$"
|
|
275
|
+
},
|
|
276
|
+
"description": "<family>.<facet>, each a property of spec/v2/facets/<family>.schema.json (gate-checked)."
|
|
277
|
+
},
|
|
278
|
+
"rule": {
|
|
279
|
+
"type": "string",
|
|
280
|
+
"minLength": 1
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
"element": {
|
|
285
|
+
"type": "object",
|
|
286
|
+
"additionalProperties": false,
|
|
287
|
+
"required": [
|
|
288
|
+
"element",
|
|
289
|
+
"rule"
|
|
290
|
+
],
|
|
291
|
+
"properties": {
|
|
292
|
+
"element": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"minLength": 1
|
|
295
|
+
},
|
|
296
|
+
"rule": {
|
|
297
|
+
"type": "string",
|
|
298
|
+
"minLength": 1
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
"feature": {
|
|
303
|
+
"type": "object",
|
|
304
|
+
"additionalProperties": false,
|
|
305
|
+
"required": [
|
|
306
|
+
"id",
|
|
307
|
+
"requiredFor",
|
|
308
|
+
"meaning"
|
|
309
|
+
],
|
|
310
|
+
"properties": {
|
|
311
|
+
"id": {
|
|
312
|
+
"type": "string",
|
|
313
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
314
|
+
},
|
|
315
|
+
"requiredFor": {
|
|
316
|
+
"type": "array",
|
|
317
|
+
"items": {
|
|
318
|
+
"type": "string",
|
|
319
|
+
"pattern": "^mcp-[0-9]{4}-[0-9]{2}-[0-9]{2}$"
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"meaning": {
|
|
323
|
+
"type": "string"
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"stateRow": {
|
|
328
|
+
"type": "object",
|
|
329
|
+
"additionalProperties": false,
|
|
330
|
+
"required": [
|
|
331
|
+
"runStatus",
|
|
332
|
+
"stored",
|
|
333
|
+
"wire"
|
|
334
|
+
],
|
|
335
|
+
"properties": {
|
|
336
|
+
"runStatus": {
|
|
337
|
+
"$ref": "#/$defs/runStatus"
|
|
338
|
+
},
|
|
339
|
+
"stored": {
|
|
340
|
+
"enum": [
|
|
341
|
+
"submitted",
|
|
342
|
+
"working",
|
|
343
|
+
"input-required",
|
|
344
|
+
"auth-required",
|
|
345
|
+
"completed",
|
|
346
|
+
"failed",
|
|
347
|
+
"canceled",
|
|
348
|
+
"rejected"
|
|
349
|
+
],
|
|
350
|
+
"description": "Gate-checked against schemas/v2/a2a-task-state.schema.json state.enum."
|
|
351
|
+
},
|
|
352
|
+
"wire": {
|
|
353
|
+
"type": "string",
|
|
354
|
+
"pattern": "^TASK_STATE_[A-Z_]+$"
|
|
355
|
+
},
|
|
356
|
+
"interruptKind": {
|
|
357
|
+
"type": "string",
|
|
358
|
+
"description": "Optional. A row with interruptKind overrides the default row for its runStatus when the open interrupt has that kind (RFC 0199 adds credential)."
|
|
359
|
+
},
|
|
360
|
+
"carrier": {
|
|
361
|
+
"type": "string"
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
"reverseRow": {
|
|
366
|
+
"type": "object",
|
|
367
|
+
"additionalProperties": false,
|
|
368
|
+
"required": [
|
|
369
|
+
"wire",
|
|
370
|
+
"runStatus"
|
|
371
|
+
],
|
|
372
|
+
"properties": {
|
|
373
|
+
"wire": {
|
|
374
|
+
"type": "string",
|
|
375
|
+
"pattern": "^TASK_STATE_[A-Z_]+$"
|
|
376
|
+
},
|
|
377
|
+
"runStatus": {
|
|
378
|
+
"$ref": "#/$defs/runStatus"
|
|
379
|
+
},
|
|
380
|
+
"note": {
|
|
381
|
+
"type": "string"
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
"errorRow": {
|
|
386
|
+
"type": "object",
|
|
387
|
+
"additionalProperties": false,
|
|
388
|
+
"required": [
|
|
389
|
+
"upstream",
|
|
390
|
+
"jsonrpc",
|
|
391
|
+
"grpc",
|
|
392
|
+
"http",
|
|
393
|
+
"serverWhen",
|
|
394
|
+
"clientProjection"
|
|
395
|
+
],
|
|
396
|
+
"properties": {
|
|
397
|
+
"upstream": {
|
|
398
|
+
"type": "string"
|
|
399
|
+
},
|
|
400
|
+
"jsonrpc": {
|
|
401
|
+
"type": "integer"
|
|
402
|
+
},
|
|
403
|
+
"grpc": {
|
|
404
|
+
"enum": [
|
|
405
|
+
"NOT_FOUND",
|
|
406
|
+
"FAILED_PRECONDITION",
|
|
407
|
+
"INVALID_ARGUMENT",
|
|
408
|
+
"INTERNAL",
|
|
409
|
+
"UNIMPLEMENTED"
|
|
410
|
+
]
|
|
411
|
+
},
|
|
412
|
+
"http": {
|
|
413
|
+
"type": "integer",
|
|
414
|
+
"minimum": 400,
|
|
415
|
+
"maximum": 599
|
|
416
|
+
},
|
|
417
|
+
"serverWhen": {
|
|
418
|
+
"type": [
|
|
419
|
+
"string",
|
|
420
|
+
"null"
|
|
421
|
+
]
|
|
422
|
+
},
|
|
423
|
+
"clientProjection": {
|
|
424
|
+
"type": "string",
|
|
425
|
+
"description": "A code in spec/v2/errors.json (gate-checked)."
|
|
426
|
+
},
|
|
427
|
+
"note": {
|
|
428
|
+
"type": "string"
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
"taskStatusRow": {
|
|
433
|
+
"type": "object",
|
|
434
|
+
"additionalProperties": false,
|
|
435
|
+
"required": [
|
|
436
|
+
"runStatus",
|
|
437
|
+
"taskStatus"
|
|
438
|
+
],
|
|
439
|
+
"properties": {
|
|
440
|
+
"runStatus": {
|
|
441
|
+
"$ref": "#/$defs/runStatus"
|
|
442
|
+
},
|
|
443
|
+
"taskStatus": {
|
|
444
|
+
"enum": [
|
|
445
|
+
"working",
|
|
446
|
+
"input_required",
|
|
447
|
+
"completed",
|
|
448
|
+
"failed",
|
|
449
|
+
"cancelled"
|
|
450
|
+
]
|
|
451
|
+
},
|
|
452
|
+
"note": {
|
|
453
|
+
"type": "string"
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./migrations.schema.json",
|
|
3
|
+
"$comment": "RFC 0197 §A.2 R1 — the v2→v2 migration register. EMPTY is the correct state at 2.36.0: no 2.x minor has yet replaced a v2 surface, and nothing is scheduled for removal inside the major. The register exists ahead of its first row because R1 cannot be checked without it — a retirement row with no migration row to point at is refused by scripts/check-deprecations.mjs rule 6. The first row this expects is connection-pack `transport: \"streamable-http\"` beside `\"sse\"` (RFC 0197 §\"What this RFC enables next\"), filed as its own RFC with a fresh registry census.",
|
|
4
|
+
"version": 1,
|
|
5
|
+
"updated": "2026-09-22",
|
|
6
|
+
"rows": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://openwop.dev/spec/v2/migrations.schema.json",
|
|
4
|
+
"title": "OpenWOP v2→v2 migration register",
|
|
5
|
+
"description": "Shape of spec/v2/migrations.json (RFC 0197 §A.2 R1). One row per surface a 2.x minor REPLACES or RETIRES inside the major: the old surface, the new one, the minor the new one shipped in, and the spec/v1/deprecations.json `v2-minor` row that schedules the removal. This is not the v1→v2 program: spec/v1/migrations.schema.json keeps its C1–C11 child grammar, which is that program's identity. `rows` may be EMPTY — an empty v2→v2 register is a legal state, and is the state at 2.36.0. Data, not a wire artifact; kept out of schemas/. Validated by scripts/check-migrations.mjs; read by scripts/check-v2-retirement.mjs (R1) and scripts/check-v2-surface-monotone.mjs.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["$schema", "version", "updated", "rows"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": { "type": "string", "const": "./migrations.schema.json" },
|
|
11
|
+
"$comment": { "type": "string" },
|
|
12
|
+
"version": { "type": "integer", "const": 1 },
|
|
13
|
+
"updated": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" },
|
|
14
|
+
"rows": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"minItems": 0,
|
|
17
|
+
"items": { "$ref": "#/$defs/row" },
|
|
18
|
+
"description": "`minItems: 0`, unlike the v1 register: the v2→v2 program starts with nothing to say, and a register forced to carry a row would be filled with a fiction."
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"$defs": {
|
|
22
|
+
"row": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"required": ["id", "rfc", "kind", "from", "to", "deprecationId", "codemod", "persistedData", "requirementIds"],
|
|
26
|
+
"properties": {
|
|
27
|
+
"id": { "type": "string", "pattern": "^openwop\\.migration\\.v2\\.[0-9]+$", "description": "openwop.migration.v2.<n>. The `v2` segment keeps these rows out of the C1–C11 id space scripts/check-migrations.mjs matches against child RFC tables." },
|
|
28
|
+
"rfc": { "type": "string", "pattern": "^[0-9]{4}$", "description": "The RFC that added the replacement and filed the row." },
|
|
29
|
+
"kind": { "type": "string", "enum": ["replace", "retire"], "description": "`replace` — a new surface shipped beside the old one and the old one is scheduled out (RFC 0197 §A.1: a new shape is a NEW surface, never a reshape). `retire` — no replacement; admitted only when R1 is satisfied some other way, and today that means it is not admitted at all (RFC 0197 Unresolved 3)." },
|
|
30
|
+
"from": { "$ref": "#/$defs/surface", "description": "The surface being retired." },
|
|
31
|
+
"to": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"additionalProperties": false,
|
|
34
|
+
"required": ["surface", "addedIn"],
|
|
35
|
+
"properties": {
|
|
36
|
+
"surface": { "type": "string", "minLength": 1, "description": "The replacement's wire-visible name." },
|
|
37
|
+
"path": { "type": "string", "description": "Where the replacement lives: a JSON pointer or dotted path in a schema under schemas/v2/, or a spec/v2/ file path." },
|
|
38
|
+
"addedIn": { "type": "string", "pattern": "^2\\.[0-9]+$", "description": "RFC 0197 R1 — the 2.x minor the replacement SHIPPED in. It MUST be lower than the linked deprecation row's `removeIn` minor: a replacement that ships in the same minor as the removal gives no one a window to move." }
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"deprecationId": { "type": "string", "pattern": "^openwop\\.deprecation\\.[a-z0-9]+(-[a-z0-9]+)*$", "description": "The spec/v1/deprecations.json row — `removalTrigger` containing `v2-minor` — that schedules the removal. Exactly one migration row per deprecation row (scripts/check-deprecations.mjs)." },
|
|
42
|
+
"codemod": { "type": ["string", "null"], "pattern": "^openwop\\.codemod\\.[a-z0-9]+(-[a-z0-9]+)*$", "description": "Id of the committed codemod under codemods/<id>/ that rewrites a persisted or emitted artifact, or null when nothing persisted carries the surface." },
|
|
43
|
+
"persistedData": { "type": "string", "enum": ["unchanged", "translated", "drained", "legacy-stamped", "never-upgraded", "not-persisted"], "description": "Same vocabulary as the v1 register: what happens to data already persisted under the retired surface. RFC 0197 §A.3 means a reader keeps accepting it for the life of the major, so `never-upgraded` and `unchanged` are the common answers." },
|
|
44
|
+
"requirementIds": { "type": "array", "items": { "type": "string", "pattern": "^openwop\\." }, "description": "conformance/requirements.json ids that witness the replacement." },
|
|
45
|
+
"note": { "type": "string" }
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"surface": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"additionalProperties": false,
|
|
51
|
+
"required": ["surface"],
|
|
52
|
+
"properties": {
|
|
53
|
+
"surface": { "type": "string", "minLength": 1 },
|
|
54
|
+
"path": { "type": "string", "description": "A JSON pointer or dotted path locating it in the v2 tree, in the form scripts/check-v2-surface-monotone.mjs prints: `<file>#<pointer>`." }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -266,6 +266,11 @@
|
|
|
266
266
|
"path": "/webhooks/{webhookId}/dead-letters",
|
|
267
267
|
"operationId": "listWebhookDeadLetters"
|
|
268
268
|
},
|
|
269
|
+
{
|
|
270
|
+
"method": "POST",
|
|
271
|
+
"path": "/webhooks/{webhookId}/rotate-secret",
|
|
272
|
+
"operationId": "rotateWebhookSecret"
|
|
273
|
+
},
|
|
269
274
|
{
|
|
270
275
|
"method": "GET",
|
|
271
276
|
"path": "/workflows/{workflowId}",
|
|
@@ -283,7 +288,7 @@
|
|
|
283
288
|
}
|
|
284
289
|
],
|
|
285
290
|
"counts": {
|
|
286
|
-
"operations":
|
|
291
|
+
"operations": 54,
|
|
287
292
|
"channels": 2
|
|
288
293
|
}
|
|
289
294
|
}
|
package/spec/v2/release.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "RFC 0172 §D.1 — the one release identity the v2 artifacts derive from. `version` is the next corpus tag `v<version>` (the publish workflow's coordinated-release tag pattern `v*`; RFC 0172's `openwop/v2.<minor>.<patch>` spelling is amended to this at its flip). api/v2/*.yaml info.version, the suite's 2.x version and @openwop/spec-artifacts read it. Bumped by the release PR that cuts the tag, never by hand elsewhere.",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"corpusTag": "v2.
|
|
5
|
-
"updated": "2026-09-
|
|
3
|
+
"version": "2.36.0",
|
|
4
|
+
"corpusTag": "v2.36.0",
|
|
5
|
+
"updated": "2026-09-23"
|
|
6
6
|
}
|