@openwop/spec-artifacts 2.42.1 → 2.42.2
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 +15 -15
- package/api/openapi.yaml +31 -0
- package/api/seams-v2.yaml +1 -1
- package/api/v2/asyncapi.yaml +1 -1
- package/api/v2/openapi.yaml +55 -1
- package/package.json +1 -1
- package/schemas/v2/effect-ledger-projection.schema.json +1 -1
- package/spec/v1/core-standard-manifest.json +3 -2
- package/spec/v1/gaps.json +19 -2
- package/spec/v1/operation-path-manifest.json +11 -3
- package/spec/v2/core/headers.md +3 -3
- package/spec/v2/path-manifest.json +6 -1
- package/spec/v2/release.json +2 -2
- package/spec/v2/surface-baseline.json +3 -2
package/CORPUS-STAMP.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_comment": "Provenance of @openwop/spec-artifacts (RFC 0168 §D.2). files: SHA-256 per file; the conformance suite compares the installed peer against dist/spec-artifacts.lock.json at start.",
|
|
3
3
|
"package": "@openwop/spec-artifacts",
|
|
4
|
-
"version": "2.42.
|
|
5
|
-
"corpusTag": "v2.42.
|
|
4
|
+
"version": "2.42.2",
|
|
5
|
+
"corpusTag": "v2.42.2",
|
|
6
6
|
"files": {
|
|
7
7
|
"api/.redocly.lint-ignore.yaml": "bf5a8350b88a72fa43f59605ed8d903ed24b6cfccda5e45509c9f6ed9ee4e712",
|
|
8
8
|
"api/asyncapi.yaml": "d5ecb9ee6114582be3b1f662c84bfac9ae96dae7bacb853e461168f70a8e1c7d",
|
|
9
9
|
"api/grpc/openwop.proto": "c3e72bb17cba514ee98feb6434e6c9b6ea6795bfd086489ec69fd882dd1ad977",
|
|
10
|
-
"api/openapi.yaml": "
|
|
10
|
+
"api/openapi.yaml": "69464bc0e1e71ef3b543a73d4fa4f67202343d2603c80af8033f6c3619ef1b30",
|
|
11
11
|
"api/redocly.yaml": "b0604c89b2ca6d5076ec25725c539dad44a741a811fe524439ee6daef8baa09f",
|
|
12
|
-
"api/seams-v2.yaml": "
|
|
13
|
-
"api/v2/asyncapi.yaml": "
|
|
14
|
-
"api/v2/openapi.yaml": "
|
|
12
|
+
"api/seams-v2.yaml": "0777cffd47bdaad6482bc910064a42f793d74ae8e8921c84f498b1670f254f21",
|
|
13
|
+
"api/v2/asyncapi.yaml": "b87e6d39591f6967c6a6154657863c4573dd9833e7b6b8f4ca3472e9d92c9352",
|
|
14
|
+
"api/v2/openapi.yaml": "12ee6cf90544a49863f9238ba8ddd2d1333f913f26e122819e399ec65e6b682b",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "75d5049dea8bd873ff0e7546f1c60c8d36c219bec7084264360be54a8be30ae1",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"schemas/v2/credential-reference.schema.json": "ea699ce30f58fb2c32d4279158b3f730f70be7b2dc8c3037693a76e66eb3e001",
|
|
133
133
|
"schemas/v2/debug-bundle.schema.json": "0bfa4b1d91fefbc12c95670dba9d5eacb72b879bb9a5c074e821ca9ed0fee6fd",
|
|
134
134
|
"schemas/v2/dispatch-config.schema.json": "5718c1ed7d95672e618bcb1f1da8e38180e144b12151307afc3aba1314dfcef0",
|
|
135
|
-
"schemas/v2/effect-ledger-projection.schema.json": "
|
|
135
|
+
"schemas/v2/effect-ledger-projection.schema.json": "0d118d385a43921118a76888449c5c3c5618eab1b80914b84a0a1b48d18822c1",
|
|
136
136
|
"schemas/v2/effect-seam-manifest.schema.json": "197ef9944ab027a50d1b9352f317cbbc12c8ad955fdb14650fb90477052ffef0",
|
|
137
137
|
"schemas/v2/envelopes/clarification.request.schema.json": "9e39d7b09f0b3ce7902d6aa19ca0eb52867b634efc78a881469c4d44fb3333e7",
|
|
138
138
|
"schemas/v2/envelopes/error.schema.json": "6a11fa3b9d61736fcb5675e6ac9825919aa609dceba13ef5615993d54647802b",
|
|
@@ -204,17 +204,17 @@
|
|
|
204
204
|
"schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
|
|
205
205
|
"spec/v1/alias-detectors.json": "2401fcb1c18cdd688c018b3d716ae6bca85c5e356220ee2b793bd9d81872412d",
|
|
206
206
|
"spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
|
|
207
|
-
"spec/v1/core-standard-manifest.json": "
|
|
207
|
+
"spec/v1/core-standard-manifest.json": "c38981a02d063f68cffd5d22cf8e10390a3b12af4271e2819dc753711fc9616f",
|
|
208
208
|
"spec/v1/deprecations.json": "2d03f4729810280147ea08c630ea65434f2dc5370567d0aac41c3595f8337d40",
|
|
209
209
|
"spec/v1/deprecations.schema.json": "3e393c405d2a41b467d8c5e3c468549078df1ce6a6d2588fc488097b95d9b55b",
|
|
210
210
|
"spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
|
|
211
211
|
"spec/v1/event-codemap.schema.json": "d05933b2e88103aff51a2f774df97b9bda065e0fc88dbd9b114cc47a32189174",
|
|
212
212
|
"spec/v1/extensions.json": "79a60754aa16cbdbdb604f8e5c00038af535a1690a4d07bd5ff7c38f0256a7bc",
|
|
213
|
-
"spec/v1/gaps.json": "
|
|
213
|
+
"spec/v1/gaps.json": "e99603a9c0e14f69fc3dd5ff6269f75a7b25aa2eb28051f9e2e1758fd08265b9",
|
|
214
214
|
"spec/v1/gaps.schema.json": "8fd83259f556553c9df0f53e7a82ca8c2a4771d471197f69b4e2ae0ceeacfd66",
|
|
215
215
|
"spec/v1/migrations.json": "8839497d6a4830b53fa7867014a8336f0d725ef2346352e54fb580b7947897af",
|
|
216
216
|
"spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
|
|
217
|
-
"spec/v1/operation-path-manifest.json": "
|
|
217
|
+
"spec/v1/operation-path-manifest.json": "fada0342815fb129c1ae61f1829bd6e34417717408ce86fcc54280f373c19e74",
|
|
218
218
|
"spec/v1/spec-gaps.json": "ea9612af55bea9dae3e82223d4f714243f8f590b0193f1188257b13491a38afc",
|
|
219
219
|
"spec/v2/README.md": "ccfed7d978ce7293a6d8f3c0f6045835dfb7e488f2b67a68f6b04d67c4b0cfc9",
|
|
220
220
|
"spec/v2/core/capabilities.md": "e22381fed3a93376ad478fa7f07571fdad9653aefd7c05f189a2ef45a49f6c63",
|
|
@@ -224,7 +224,7 @@
|
|
|
224
224
|
"spec/v2/core/errors.md": "870f1a9c9481fb49c8bd39170f0656c2ae46124afd4472fb7a3c18c67be0e561",
|
|
225
225
|
"spec/v2/core/events.md": "3df1866a89fb765c78adf79b8d51f96c59584dee9aa88d59179b88a681d827da",
|
|
226
226
|
"spec/v2/core/form-content-packs.md": "55ea021b5f676f5851f420b3597262fbf6642108bddeb726922f8c5dd96c968b",
|
|
227
|
-
"spec/v2/core/headers.md": "
|
|
227
|
+
"spec/v2/core/headers.md": "10ec6a6c3e0437b1501cb224273e86c2f6aede92fd469605f3353904d3ebd230",
|
|
228
228
|
"spec/v2/core/host-services.md": "c3ff93201d642edf835e9ae84f06a17edd207f9d351f8bfd70572be05bbfd894",
|
|
229
229
|
"spec/v2/core/idempotency.md": "b61d4a200526485937897dd7ebca092e68424a80624e0be7a0b7db8cdbd54403",
|
|
230
230
|
"spec/v2/core/identity.md": "d15667552019f64316be9b65c6e5696c10766581405f05da3907fb47f36e6459",
|
|
@@ -291,12 +291,12 @@
|
|
|
291
291
|
"spec/v2/interop-map.schema.json": "0017c882df34ee215e2e0729de051490e09d43aac3d2c949285698ed51832f12",
|
|
292
292
|
"spec/v2/migrations.json": "651954938a1e154c0b6f1e3dd6e105889d30de3bb65789f21de7f77a12869e9e",
|
|
293
293
|
"spec/v2/migrations.schema.json": "b91ade6320ad1b1185c9495b9424f3aa63438ed8e412c45171c227d82c0afd86",
|
|
294
|
-
"spec/v2/path-manifest.json": "
|
|
294
|
+
"spec/v2/path-manifest.json": "17298a245c5da9a70aa7ab0b7f2db4277e06209d6fcdd7187a8b4cea179c08f3",
|
|
295
295
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
296
296
|
"spec/v2/profiles.json": "0636f19fceae625390003a347e70ef4797d84766b5c24ce8a02cea52aadebca4",
|
|
297
|
-
"spec/v2/release.json": "
|
|
297
|
+
"spec/v2/release.json": "f8aeec2581bb0b934b2667ac72680f2caf6259b2ca7312e716598e9302573966",
|
|
298
298
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624",
|
|
299
|
-
"spec/v2/surface-baseline.json": "
|
|
299
|
+
"spec/v2/surface-baseline.json": "e2ce7ec18f217f08dd13d6ff1895ea4030b0a76965b774689fb6b52bb20b745a"
|
|
300
300
|
},
|
|
301
|
-
"corpusCommit": "
|
|
301
|
+
"corpusCommit": "10e78e04bc0dac6cb93a0ef00eda5dc7547b4ee8"
|
|
302
302
|
}
|
package/api/openapi.yaml
CHANGED
|
@@ -689,6 +689,37 @@ paths:
|
|
|
689
689
|
application/json:
|
|
690
690
|
schema:
|
|
691
691
|
$ref: '../schemas/error-envelope.schema.json'
|
|
692
|
+
delete:
|
|
693
|
+
tags: [content]
|
|
694
|
+
summary: Delete a content page (RFC 0103 §D, admin).
|
|
695
|
+
description: |
|
|
696
|
+
`localized-content.md` §D lists `DELETE …/content/pages/{pageId}` among
|
|
697
|
+
the admin CRUD operations: tenant-scoped, requires `content.write`, and
|
|
698
|
+
removes the page with its sections and every locale overlay. The path
|
|
699
|
+
segment is the page's **`pageId`**, not its slug. It shares this path
|
|
700
|
+
item with public delivery, which addresses the same segment by `slug`,
|
|
701
|
+
because OpenAPI 3.1 treats two templates that differ only in the
|
|
702
|
+
parameter name as identical and forbids them; the parameter keeps
|
|
703
|
+
delivery's name for that reason alone. A `pageId` absent for the
|
|
704
|
+
caller's tenant returns the same `404` as a nonexistent one
|
|
705
|
+
(`localized-content.md` §F, no cross-tenant enumeration).
|
|
706
|
+
operationId: deleteContentPage
|
|
707
|
+
security:
|
|
708
|
+
- ApiKeyAuth: ['content:write']
|
|
709
|
+
- OAuth2: ['content:write']
|
|
710
|
+
- OpenIdConnect: ['content:write']
|
|
711
|
+
parameters:
|
|
712
|
+
- name: slug
|
|
713
|
+
in: path
|
|
714
|
+
required: true
|
|
715
|
+
schema: { type: string, minLength: 1 }
|
|
716
|
+
description: For this operation, the page's `pageId` (§D). See the operation description for why the name is shared.
|
|
717
|
+
responses:
|
|
718
|
+
'204':
|
|
719
|
+
description: The page, its sections and its locale overlays were deleted.
|
|
720
|
+
'401': { $ref: '#/components/responses/Unauthenticated' }
|
|
721
|
+
'403': { $ref: '#/components/responses/Forbidden' }
|
|
722
|
+
'404': { $ref: '#/components/responses/NotFound' }
|
|
692
723
|
|
|
693
724
|
/v1/content/pages:
|
|
694
725
|
get:
|
package/api/seams-v2.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP conformance seams profile (openwop-conformance-seams-v2)
|
|
4
|
-
version: 2.42.
|
|
4
|
+
version: 2.42.2
|
|
5
5
|
description: 'GENERATED by scripts/derive-v2-api.py. RFC 0168 §C: the seams are a versioned conformance profile with their
|
|
6
6
|
own document and path space (/conformance/seams/…), validated against the canonical v2 schemas with no tolerance path,
|
|
7
7
|
forbidden from the capability namespace (a host advertises the profile, never a testSeams flag). This document carries
|
package/api/v2/asyncapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
asyncapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP v2 event streams
|
|
4
|
-
version: 2.42.
|
|
4
|
+
version: 2.42.2
|
|
5
5
|
description: GENERATED by scripts/derive-v2-api.py (RFC 0171 §E.1, RFC 0172 §C.2). One run-events channel whose address
|
|
6
6
|
is the OpenAPI path key; the server pathname is empty (bare origin). streamMode is a pattern over the closed set and its
|
|
7
7
|
comma-separated combinations (`values` never combines). hostEvents has a real address (RFC 0171 §E.1) — the documented
|
package/api/v2/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP v2 API
|
|
4
|
-
version: 2.42.
|
|
4
|
+
version: 2.42.2
|
|
5
5
|
summary: REST surface for declaring, executing, suspending, resuming, and observing multi-step workflows.
|
|
6
6
|
description: GENERATED by scripts/derive-v2-api.py from api/openapi.yaml and the RFC 0167 children (v2 charter Phase 3,
|
|
7
7
|
P3-C). Bare origin, unversioned path keys, negotiation by `OpenWOP-Version` + `protocolVersions[]` (RFC 0172 §A). No seam
|
|
@@ -926,6 +926,60 @@ paths:
|
|
|
926
926
|
headers:
|
|
927
927
|
OpenWOP-Version:
|
|
928
928
|
$ref: '#/components/headers/OpenWOPVersion'
|
|
929
|
+
delete:
|
|
930
|
+
tags:
|
|
931
|
+
- content
|
|
932
|
+
summary: Delete a content page (RFC 0103 §D, admin).
|
|
933
|
+
description: '`localized-content.md` §D lists `DELETE …/content/pages/{pageId}` among
|
|
934
|
+
|
|
935
|
+
the admin CRUD operations: tenant-scoped, requires `content.write`, and
|
|
936
|
+
|
|
937
|
+
removes the page with its sections and every locale overlay. The path
|
|
938
|
+
|
|
939
|
+
segment is the page''s **`pageId`**, not its slug. It shares this path
|
|
940
|
+
|
|
941
|
+
item with public delivery, which addresses the same segment by `slug`,
|
|
942
|
+
|
|
943
|
+
because OpenAPI 3.1 treats two templates that differ only in the
|
|
944
|
+
|
|
945
|
+
parameter name as identical and forbids them; the parameter keeps
|
|
946
|
+
|
|
947
|
+
delivery''s name for that reason alone. A `pageId` absent for the
|
|
948
|
+
|
|
949
|
+
caller''s tenant returns the same `404` as a nonexistent one
|
|
950
|
+
|
|
951
|
+
(`localized-content.md` §F, no cross-tenant enumeration).
|
|
952
|
+
|
|
953
|
+
'
|
|
954
|
+
operationId: deleteContentPage
|
|
955
|
+
security:
|
|
956
|
+
- ApiKeyAuth:
|
|
957
|
+
- content:write
|
|
958
|
+
- OAuth2:
|
|
959
|
+
- content:write
|
|
960
|
+
- OpenIdConnect:
|
|
961
|
+
- content:write
|
|
962
|
+
parameters:
|
|
963
|
+
- name: slug
|
|
964
|
+
in: path
|
|
965
|
+
required: true
|
|
966
|
+
schema:
|
|
967
|
+
type: string
|
|
968
|
+
minLength: 1
|
|
969
|
+
description: For this operation, the page's `pageId` (§D). See the operation description for why the name is shared.
|
|
970
|
+
- $ref: '#/components/parameters/OpenWOPVersion'
|
|
971
|
+
responses:
|
|
972
|
+
'204':
|
|
973
|
+
description: The page, its sections and its locale overlays were deleted.
|
|
974
|
+
headers:
|
|
975
|
+
OpenWOP-Version:
|
|
976
|
+
$ref: '#/components/headers/OpenWOPVersion'
|
|
977
|
+
'401':
|
|
978
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
979
|
+
'403':
|
|
980
|
+
$ref: '#/components/responses/Forbidden'
|
|
981
|
+
'404':
|
|
982
|
+
$ref: '#/components/responses/NotFound'
|
|
929
983
|
/content/pages:
|
|
930
984
|
get:
|
|
931
985
|
tags:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/spec-artifacts",
|
|
3
|
-
"version": "2.42.
|
|
3
|
+
"version": "2.42.2",
|
|
4
4
|
"description": "The OpenWOP machine-readable contract: api/ (OpenAPI, AsyncAPI, the seams profile), schemas/ (v1 and v2 JSON Schemas), the spec/v1 and spec/v2 registries (errors, event codemap, declaration, deprecations, migrations, gaps) and CORPUS-STAMP.json — published from the openwop/openwop corpus tag; the peer dependency @openwop/openwop-conformance digest-checks at start (RFC 0168 §D.2).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"released",
|
|
60
60
|
"escaped"
|
|
61
61
|
],
|
|
62
|
-
"description": "The attempt's lifecycle state. The enum is the VOCABULARY a host must label attempts with, not a set of states every host must produce: a host emits the states its own effect lifecycle actually reaches, and one that only claims and completes attempts emits only `claimed` and `completed`. Both floor scenarios that read this projection witness attempt EXISTENCE and identity \u2014 `v2-effect-seam-no-refire`
|
|
62
|
+
"description": "The attempt's lifecycle state. The enum is the VOCABULARY a host must label attempts with, not a set of states every host must produce: a host emits the states its own effect lifecycle actually reaches, and one that only claims and completes attempts emits only `claimed` and `completed`. Both floor scenarios that read this projection witness attempt EXISTENCE and identity \u2014 `v2-effect-seam-no-refire` checks that a replay fork records no attempt the parent did not make (by `nodeId`/`attempt`/`at`) and `v2-effect-identity-business-key` reads `effectId`/`providerKey` across attempts; neither reads `state`. So a two-state ledger is schema-valid and witness-sufficient, and `released`/`escaped` are projection surface for operators rather than witness surface for the suite. What a host MUST NOT do is record only exceptional attempts: a ledger that writes a row only when an effect ESCAPES leaves a correctly-suppressed effect invisible, and suppression is then unwitnessable \u2014 the no-re-fire scenario records `blocked` on an empty source ledger rather than passing on 0 == 0."
|
|
63
63
|
},
|
|
64
64
|
"at": {
|
|
65
65
|
"type": "string",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"provenance": {
|
|
5
5
|
"suite": {
|
|
6
6
|
"package": "@openwop/openwop-conformance",
|
|
7
|
-
"version": "2.42.
|
|
7
|
+
"version": "2.42.2"
|
|
8
8
|
},
|
|
9
9
|
"note": "Derived from the corpus at generation time. Regenerate with --write; verify with --check."
|
|
10
10
|
},
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"createPromptTemplate",
|
|
43
43
|
"createRun",
|
|
44
44
|
"createTriggerSubscription",
|
|
45
|
+
"deleteContentPage",
|
|
45
46
|
"deletePromptTemplate",
|
|
46
47
|
"deleteTestPackVersion",
|
|
47
48
|
"deleteWorkspaceFile",
|
|
@@ -420,5 +421,5 @@
|
|
|
420
421
|
"$id": "https://openwop.dev/spec/v1/workspace-file.schema.json"
|
|
421
422
|
}
|
|
422
423
|
],
|
|
423
|
-
"digest": "
|
|
424
|
+
"digest": "a904ebbb9db1cc3488bbdabaf5d3f1fc7cb72c54aa04f80e1c9353b0214257b1"
|
|
424
425
|
}
|
package/spec/v1/gaps.json
CHANGED
|
@@ -3735,6 +3735,23 @@
|
|
|
3735
3735
|
}
|
|
3736
3736
|
]
|
|
3737
3737
|
},
|
|
3738
|
+
{
|
|
3739
|
+
"id": "openwop.gap.0103.12",
|
|
3740
|
+
"rfc": "0103",
|
|
3741
|
+
"local": "G12",
|
|
3742
|
+
"section": "§D / contract",
|
|
3743
|
+
"surface": "**Four §D admin operations have no contract entry.** `localized-content.md` §D lists `PATCH /v1/content/pages/{pageId}`, `POST /v1/content/pages/{pageId}/sections`, `DELETE /v1/content/pages/{pageId}/sections/{sectionId}/locales/{locale}` and the delivery read `GET /v1/content/sections/{sectionId}`, but neither `api/openapi.yaml` nor the derived `api/v2/openapi.yaml` declares them. The prose names each route without a request body, a response body or a status code, so the contract cannot be completed from it without inventing a shape. `DELETE /v1/content/pages/{pageId}` was added on 2026-09-26 (`deleteContentPage`, `204` with no body, following the corpus's other admin deletes). `v2-content-locale-keys` uses it for cleanup.",
|
|
3744
|
+
"witness": "unclassified",
|
|
3745
|
+
"requirementId": null,
|
|
3746
|
+
"disposition": "carried",
|
|
3747
|
+
"target": "openwop.gap.0103.12",
|
|
3748
|
+
"sources": [
|
|
3749
|
+
{
|
|
3750
|
+
"file": "RFCS/registers/0103-localized-content-surface.gaps.md",
|
|
3751
|
+
"token": "G12"
|
|
3752
|
+
}
|
|
3753
|
+
]
|
|
3754
|
+
},
|
|
3738
3755
|
{
|
|
3739
3756
|
"id": "openwop.gap.0104.0",
|
|
3740
3757
|
"rfc": "0104",
|
|
@@ -4423,8 +4440,8 @@
|
|
|
4423
4440
|
"surface": "No host with a real orchestrator loop advertises `contextBudget` yet",
|
|
4424
4441
|
"witness": "unclassified",
|
|
4425
4442
|
"requirementId": null,
|
|
4426
|
-
"disposition": "
|
|
4427
|
-
"target":
|
|
4443
|
+
"disposition": "closed",
|
|
4444
|
+
"target": null,
|
|
4428
4445
|
"sources": [
|
|
4429
4446
|
{
|
|
4430
4447
|
"file": "RFCS/registers/0111-context-economy.gaps.md",
|
|
@@ -107,6 +107,14 @@
|
|
|
107
107
|
"tag": "content",
|
|
108
108
|
"class": "canonical"
|
|
109
109
|
},
|
|
110
|
+
{
|
|
111
|
+
"operationId": "deleteContentPage",
|
|
112
|
+
"method": "DELETE",
|
|
113
|
+
"pathKey": "/v1/content/pages/{slug}",
|
|
114
|
+
"resolvedPath": "/v1/content/pages/{slug}",
|
|
115
|
+
"tag": "content",
|
|
116
|
+
"class": "canonical"
|
|
117
|
+
},
|
|
110
118
|
{
|
|
111
119
|
"operationId": "getContentPage",
|
|
112
120
|
"method": "GET",
|
|
@@ -461,10 +469,10 @@
|
|
|
461
469
|
}
|
|
462
470
|
],
|
|
463
471
|
"counts": {
|
|
464
|
-
"total":
|
|
465
|
-
"canonical":
|
|
472
|
+
"total": 58,
|
|
473
|
+
"canonical": 49,
|
|
466
474
|
"hostExtension": 5,
|
|
467
475
|
"testCatalog": 4
|
|
468
476
|
},
|
|
469
|
-
"digest": "
|
|
477
|
+
"digest": "ab5e46df62da2401d3e119accef5378b564b0b3d679a5b05cc131d483b84762a"
|
|
470
478
|
}
|
package/spec/v2/core/headers.md
CHANGED
|
@@ -16,7 +16,7 @@ RFC 0171 §C.1: every non-standard header is `OpenWOP-<Name>` and every header i
|
|
|
16
16
|
| `Last-Event-ID` | 1 | Resume from sequence after this ID. |
|
|
17
17
|
| `OpenWOP-Dedup` | 1 | When set, server cross-host claim system rejects duplicate `(tenantId, scopeId)` pairs with `409 Conflict`. |
|
|
18
18
|
| `OpenWOP-Force-Engine-Version` | 1 | **Test-keys-only.** When set, the server emits events for this run AS IF it |
|
|
19
|
-
| `OpenWOP-Version` |
|
|
19
|
+
| `OpenWOP-Version` | 55 | RFC 0172 §A.3 — selects a listed major.minor; absent ⇒ the host's `preferredVersion`; unlisted ⇒ 406 protocol_version_unsupported. |
|
|
20
20
|
|
|
21
21
|
## Response headers
|
|
22
22
|
|
|
@@ -28,9 +28,9 @@ RFC 0171 §C.1: every non-standard header is `OpenWOP-<Name>` and every header i
|
|
|
28
28
|
| `ETag` | 3 | Standard HTTP validator (RFC 9110 §8.8.3). The obligation is per operation: MUST on the discovery document (capabilities.md §1), SHOULD on the run snapshot (runs.md §Snapshot), a content hash on a prompt template (getPromptTemplate); see each operation. |
|
|
29
29
|
| `Location` | 1 | Canonical URI of the new template. |
|
|
30
30
|
| `OpenWOP-Idempotent-Replay` | 1 | Set when the response was served from the idempotency cache. |
|
|
31
|
-
| `OpenWOP-Version` |
|
|
31
|
+
| `OpenWOP-Version` | 55 | RFC 0172 §A.4 — the contract that produced this response; MUST equal the one used. |
|
|
32
32
|
| `Retry-After` | 1 | Seconds until the active claim is stale-eligible. |
|
|
33
|
-
| `WWW-Authenticate` |
|
|
33
|
+
| `WWW-Authenticate` | 48 | RFC 0200 §B — `Bearer` challenge; `resource_metadata` and `error="invalid_token"` on a host with an oauth2/oidc lane. Never on a non-disclosure 404. |
|
|
34
34
|
|
|
35
35
|
## Webhook delivery headers
|
|
36
36
|
|
|
@@ -71,6 +71,11 @@
|
|
|
71
71
|
"path": "/content/pages/{pageId}/sections/{sectionId}",
|
|
72
72
|
"operationId": "putContentSection"
|
|
73
73
|
},
|
|
74
|
+
{
|
|
75
|
+
"method": "DELETE",
|
|
76
|
+
"path": "/content/pages/{slug}",
|
|
77
|
+
"operationId": "deleteContentPage"
|
|
78
|
+
},
|
|
74
79
|
{
|
|
75
80
|
"method": "GET",
|
|
76
81
|
"path": "/content/pages/{slug}",
|
|
@@ -288,7 +293,7 @@
|
|
|
288
293
|
}
|
|
289
294
|
],
|
|
290
295
|
"counts": {
|
|
291
|
-
"operations":
|
|
296
|
+
"operations": 55,
|
|
292
297
|
"channels": 2
|
|
293
298
|
}
|
|
294
299
|
}
|
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.42.
|
|
4
|
-
"corpusTag": "v2.42.
|
|
3
|
+
"version": "2.42.2",
|
|
4
|
+
"corpusTag": "v2.42.2",
|
|
5
5
|
"updated": "2026-09-26"
|
|
6
6
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"schemas/v2/**/*.json",
|
|
5
5
|
"spec/v2/path-manifest.json"
|
|
6
6
|
],
|
|
7
|
-
"release": "2.42.
|
|
7
|
+
"release": "2.42.2",
|
|
8
8
|
"kinds": {
|
|
9
9
|
"union": [
|
|
10
10
|
"channel",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"type"
|
|
19
19
|
]
|
|
20
20
|
},
|
|
21
|
-
"count":
|
|
21
|
+
"count": 7962,
|
|
22
22
|
"surfaces": [
|
|
23
23
|
"schemas/v2/a2a-task-state.schema.json#/contextId|type|string",
|
|
24
24
|
"schemas/v2/a2a-task-state.schema.json#/interruptKind|enum-member|\"approval\"",
|
|
@@ -7927,6 +7927,7 @@
|
|
|
7927
7927
|
"schemas/v2/workspace-file.schema.json#|type|object",
|
|
7928
7928
|
"spec/v2/path-manifest.json#|channel|/host/events",
|
|
7929
7929
|
"spec/v2/path-manifest.json#|channel|/runs/{runId}/events",
|
|
7930
|
+
"spec/v2/path-manifest.json#|operation|DELETE /content/pages/{slug}",
|
|
7930
7931
|
"spec/v2/path-manifest.json#|operation|DELETE /prompts/{templateId}",
|
|
7931
7932
|
"spec/v2/path-manifest.json#|operation|DELETE /webhooks/{webhookId}",
|
|
7932
7933
|
"spec/v2/path-manifest.json#|operation|GET /.well-known/openwop",
|