@openwop/spec-artifacts 2.42.9 → 2.43.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 +37 -36
- package/api/seams-v2.yaml +1 -1
- package/api/v2/asyncapi.yaml +1 -1
- package/api/v2/openapi.yaml +5 -4
- package/package.json +1 -1
- package/schemas/audit-verify-result.schema.json +40 -8
- package/schemas/v2/audit-verify-result.schema.json +106 -10
- package/schemas/v2/capabilities.schema.json +96 -0
- package/schemas/v2/error-envelope.schema.json +3 -1
- package/schemas/v2/registry-version-manifest.schema.json +2 -2
- package/schemas/v2/suspend-request.schema.json +1 -1
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v1/gaps.json +238 -0
- package/spec/v2/core/capabilities.md +5 -1
- package/spec/v2/core/errors.md +3 -2
- package/spec/v2/core/interrupt.md +13 -2
- package/spec/v2/core/packs.md +9 -2
- package/spec/v2/core/security-defaults.md +13 -2
- package/spec/v2/corrections.json +18 -1
- package/spec/v2/declaration.json +37 -12
- package/spec/v2/errors.json +11 -1
- package/spec/v2/ext/brand/README.md +1 -1
- package/spec/v2/ext/canvas/README.md +1 -1
- package/spec/v2/ext/chat/README.md +2 -2
- package/spec/v2/ext/coordination/README.md +1 -1
- package/spec/v2/ext/dataIntegration/README.md +1 -1
- package/spec/v2/ext/entities/README.md +2 -2
- package/spec/v2/ext/kanban/README.md +2 -2
- package/spec/v2/ext/knowledge/README.md +2 -2
- package/spec/v2/ext/launchStudio/README.md +1 -1
- package/spec/v2/ext/messaging/README.md +1 -1
- package/spec/v2/ext/restTransport/README.md +2 -2
- package/spec/v2/ext/webResearch/README.md +2 -2
- package/spec/v2/facets/auditLogIntegrity.schema.json +30 -0
- package/spec/v2/release.json +2 -2
- package/spec/v2/surface-baseline.json +50 -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.
|
|
5
|
-
"corpusTag": "v2.
|
|
4
|
+
"version": "2.43.0",
|
|
5
|
+
"corpusTag": "v2.43.0",
|
|
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
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": "c6d9d70e74a4c883a016a69da438fb6c87f56822334a1d45bd682c6d68bdac32",
|
|
13
|
+
"api/v2/asyncapi.yaml": "0b72bbd3f0f25172e3080a027a801d68d4a4130188addf2879fe92759d352de6",
|
|
14
|
+
"api/v2/openapi.yaml": "fdbc6bcf064de81e2c8bf3d7a896ccbc39d8b12f71f9b8c4727f825f1ae31af0",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "75d5049dea8bd873ff0e7546f1c60c8d36c219bec7084264360be54a8be30ae1",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"schemas/annotation-create.schema.json": "567e8327777968e0ddab8e1547b4acd7beda734cf9d1fc6cde17037d8d9540d4",
|
|
30
30
|
"schemas/annotation.schema.json": "b26d22f9a97e1ae7c195e8799964aca804e78452a079ca3a0d61ea013907ce91",
|
|
31
31
|
"schemas/artifact-type-pack-manifest.schema.json": "60342fcb15eb7f3ab46271f0641409a30d3a4a8f318b1020c53070886b191252",
|
|
32
|
-
"schemas/audit-verify-result.schema.json": "
|
|
32
|
+
"schemas/audit-verify-result.schema.json": "0d3a3088ac1c32f9df66d346c33d7adbd8037940dba040e14ea847565a1a14bd",
|
|
33
33
|
"schemas/budget-policy.schema.json": "3d4fe30ae129fe136ab9ece395f2a2a42a76360786b1b9a1d5f1cbc753eb5b39",
|
|
34
34
|
"schemas/capabilities.schema.json": "56b367074bce0f02ff87e0b84ccdf91856793d3d285e28f261656edba6352cc0",
|
|
35
35
|
"schemas/certification-bundle-v2.schema.json": "2f85530dd04824a15810c94e96869362dee1e78396eca21fdd18e5501416bb7d",
|
|
@@ -114,9 +114,9 @@
|
|
|
114
114
|
"schemas/v2/annotation.schema.json": "eb4813cdaa8e325412cfcaeeee5c8a28f3751c946dec64e546c7ba0ad3aad8d4",
|
|
115
115
|
"schemas/v2/artifact-type-pack-manifest.schema.json": "c8820351a2ab93855bd654ad3d8a9788f97975d09b3a7a0418e374ed6114595d",
|
|
116
116
|
"schemas/v2/artifact.schema.json": "85b9dc284d39b99d2a66fa8cbf47f2dd3d8526d3bd6cc411ad315b372de38975",
|
|
117
|
-
"schemas/v2/audit-verify-result.schema.json": "
|
|
117
|
+
"schemas/v2/audit-verify-result.schema.json": "14af8e9283510f0a40e48a2059c929ee44e0fc9fa3cc66a95bfbe90b17c48297",
|
|
118
118
|
"schemas/v2/budget-policy.schema.json": "c7449daeb6e1d95e7a047b8c2814d3d54748697c27046972834874867d9b5f4c",
|
|
119
|
-
"schemas/v2/capabilities.schema.json": "
|
|
119
|
+
"schemas/v2/capabilities.schema.json": "ae6f60641d6ed680351b2710df945257c401f1ed83534f7e44fa2e651dc401ab",
|
|
120
120
|
"schemas/v2/certification-bundle.schema.json": "82ce31a1ed6c7e21b0ba88ff62a7b8b768fc3b176b1d06fce023203830b94725",
|
|
121
121
|
"schemas/v2/channel-presence-payload.schema.json": "4eeb224910e6f7eee3ab5e7c3899559c25c83a26d0022e0ad195c4672611977a",
|
|
122
122
|
"schemas/v2/channel-written-payload.schema.json": "ccecff3c71a3275ad8db035ac0e04db25e6f8d23cf091ddbcd5a60d1be1cbb6b",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"schemas/v2/envelopes/schema.request.schema.json": "be2c5f7aa881cdd252ccff47ac02193659e1393633a1541f4297383205d384a2",
|
|
143
143
|
"schemas/v2/envelopes/schema.response.schema.json": "d049a081267c06c28879c331b147f3ed821b14ccfd93005c67aff64db0a8c68e",
|
|
144
144
|
"schemas/v2/envelopes/ui.a2ui-surface.schema.json": "e92a2548ba65454c9e0a34f72ea6768d18f59e61fa5da7668d0b2d5baddaddc8",
|
|
145
|
-
"schemas/v2/error-envelope.schema.json": "
|
|
145
|
+
"schemas/v2/error-envelope.schema.json": "d1a6862930e7c3fbc8ec334ef17953ac7b716525c6c82769edf89d0809d0c94b",
|
|
146
146
|
"schemas/v2/eval-summary.schema.json": "2f384daf05b8f3b4f604688cae504d6d9971ba41b8c771e55fe9a17e09e86b7a",
|
|
147
147
|
"schemas/v2/export-bundle.schema.json": "bd28905a7729437ab7f2ad8bb33e13a371b2bf5605a7eb2962a0d246de312d69",
|
|
148
148
|
"schemas/v2/form-content-pack-manifest.schema.json": "a1942a124e250a6e9fbdb6b811c5a125e78fbcbcaa46dfc71d0636f24710a339",
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
"schemas/v2/prompt-ref.schema.json": "11538fa36a7a652c93100cac4f1857eb4130137b546e3d94890618636d44b729",
|
|
168
168
|
"schemas/v2/prompt-template.schema.json": "494fc83028cb3af5dbb8a943d0e83b2348f7775e9fa02369162bcb58a6f81559",
|
|
169
169
|
"schemas/v2/proposal.schema.json": "a5c582ce1e854e5fe10412ebed00e537961ee827bbaca506ca374b200a685992",
|
|
170
|
-
"schemas/v2/registry-version-manifest.schema.json": "
|
|
170
|
+
"schemas/v2/registry-version-manifest.schema.json": "940cfd82511690cd6f2539e5676b185e7812628d0707c283fd7ffb33b6e54afd",
|
|
171
171
|
"schemas/v2/residency.schema.json": "3fd23c9732beb140504e81560fc426eb6764d547e56da5fb92c5a5c7bf04db3a",
|
|
172
172
|
"schemas/v2/run-ancestry-response.schema.json": "334c17f2062dea62726ca1d07b8be3f169cdc422af843c1def5fb317039814c9",
|
|
173
173
|
"schemas/v2/run-diff-response.schema.json": "8bdb2045c274580038bd74781f7d062f5049839797c164a89de4ed89edc53a74",
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
"schemas/v2/self-hosted-runner-result-frame.schema.json": "8e739a721f350226f3ffb4af752b4fe0a72016042a7b6f42e16c0487c3c58983",
|
|
184
184
|
"schemas/v2/subject-link.schema.json": "1fc941d6c14af886534009f2ffa6611e2035eb07e30b1df918c50d6bafff026c",
|
|
185
185
|
"schemas/v2/subject.schema.json": "094e981fb20052a911393e219ea5f2065d8b8417b65080a70c5ea99fd960a8fe",
|
|
186
|
-
"schemas/v2/suspend-request.schema.json": "
|
|
186
|
+
"schemas/v2/suspend-request.schema.json": "29c9cfa6978342f0175e250607e6eddb5e4058ea0c4adacc1965e1f3bb4dc9ee",
|
|
187
187
|
"schemas/v2/tool-descriptor.schema.json": "8c98fb5e93bc649dff859d3d1dde8075db929efd6c49c496252d0a88cccc73e1",
|
|
188
188
|
"schemas/v2/trigger-event.schema.json": "710ecca8b3ecdad3a532a96768177f062192b24a589a4f798c7eb24bab64b30a",
|
|
189
189
|
"schemas/v2/trigger-subscription-registration.schema.json": "04bc314a07c7e8b565577cb8df5821d968ce2af915900dfdccd4a24e928d20db",
|
|
@@ -204,24 +204,24 @@
|
|
|
204
204
|
"schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
|
|
205
205
|
"spec/v1/alias-detectors.json": "29f21e0fb2c7a232a92a5c19b4cba3a86bc3b5e16f06780452f0421c66c6ec38",
|
|
206
206
|
"spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
|
|
207
|
-
"spec/v1/core-standard-manifest.json": "
|
|
207
|
+
"spec/v1/core-standard-manifest.json": "4c43eec4ac5a43b026949f9d9c65d6b92f7b79706a185c4a147e232b1be0c945",
|
|
208
208
|
"spec/v1/deprecations.json": "46df807fb4adf0aae24671c20f69975cf3496e3bc3a521cb7e6ea556bdce563c",
|
|
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": "2d4e4772cd647b471f989bdb6416ca902b11e10d17dc7f84825bb9f2eef1314c",
|
|
214
214
|
"spec/v1/gaps.schema.json": "8fd83259f556553c9df0f53e7a82ca8c2a4771d471197f69b4e2ae0ceeacfd66",
|
|
215
215
|
"spec/v1/migrations.json": "2efcd9064b2bc65a84a3b3d281aa86a91efd002690c1f4f14e8335c4a18194d1",
|
|
216
216
|
"spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
|
|
217
217
|
"spec/v1/operation-path-manifest.json": "fada0342815fb129c1ae61f1829bd6e34417717408ce86fcc54280f373c19e74",
|
|
218
218
|
"spec/v1/spec-gaps.json": "ea9612af55bea9dae3e82223d4f714243f8f590b0193f1188257b13491a38afc",
|
|
219
219
|
"spec/v2/README.md": "4fa067d377580495e60baf08a4eafc3214b8ca48d8fb270bf91fc5066fad7186",
|
|
220
|
-
"spec/v2/core/capabilities.md": "
|
|
220
|
+
"spec/v2/core/capabilities.md": "3d1a1975cb688244ca18cd194f56f3a995cc81a9155277dbaeeaa51eabb3a0c7",
|
|
221
221
|
"spec/v2/core/conformance.md": "e7bd7d54062f28801071165a1b92edbeee3774bb3710f31eed75817139b66d95",
|
|
222
222
|
"spec/v2/core/connection-packs.md": "3168d2c8f1a59417a7256a678f4203570be434f64dead6b11fdec86b352686df",
|
|
223
223
|
"spec/v2/core/conversation.md": "6db43d8160bc45d3944aa1151816a6f0fd1669d59d7f822267a2d6cc9db22990",
|
|
224
|
-
"spec/v2/core/errors.md": "
|
|
224
|
+
"spec/v2/core/errors.md": "7931c9411e50b5ebfbc20d15aaf0e7b1a5b3e0ddc558b931e432da49ce09152c",
|
|
225
225
|
"spec/v2/core/events.md": "234338deb97be648731e8ab2126a90b7b8ad0a7070d98ffc85ee4689ff059791",
|
|
226
226
|
"spec/v2/core/form-content-packs.md": "41d40afe0a3760bcd792a4c406e16f28b0ab0aa7b0925323110d3fa2730d5400",
|
|
227
227
|
"spec/v2/core/headers.md": "5cb1624fa63acc81992b6a6d842ec392cf7271aaf2f65d1f83c8c4fa286e6730",
|
|
@@ -230,49 +230,50 @@
|
|
|
230
230
|
"spec/v2/core/idempotency.md": "21830b7d23dd03e9e8ba4b0de253dd001fc960f166310d6b6b60b1c33cf60b30",
|
|
231
231
|
"spec/v2/core/identity.md": "acb7f739729c69a1f40dcaa5b1d873ba9f32993c17bfd297f5fa56351cf47c69",
|
|
232
232
|
"spec/v2/core/interop.md": "3cfa2af70ae6ba1f4b4268447d46d1d2f5fb65f7917f15bad159d9779d25b1a6",
|
|
233
|
-
"spec/v2/core/interrupt.md": "
|
|
233
|
+
"spec/v2/core/interrupt.md": "5e6fe9767228638095d5a2210307e1febfcefda808f4a400f2c7c528b929c445",
|
|
234
234
|
"spec/v2/core/node-pack-runtimes.md": "d52966319c53aaa03575025915b73b470a42832c039c41d73aff6931758630cb",
|
|
235
235
|
"spec/v2/core/oauth.md": "57f167d899993b6959c243e4102819f4014b365299b9b2b253decd2781e6b8b7",
|
|
236
236
|
"spec/v2/core/overview.md": "3dbc8c0cf7474b31816b1a12412c1edf5597066c38edcdbca4dd2e465880f65b",
|
|
237
|
-
"spec/v2/core/packs.md": "
|
|
237
|
+
"spec/v2/core/packs.md": "e46bf8cd34ac9566fe1e5601f67e7a17fce9639b8676e0f5278a10c6ca70ab29",
|
|
238
238
|
"spec/v2/core/persistence.md": "bba672ed3bf6d83af6e4e65c0f4f480fc21fe12207811e321306af2108d9010d",
|
|
239
239
|
"spec/v2/core/portability.md": "a35fbe66b8b5ccf63cf0216157d4b61d4c47f6dc8e757c830569ddf244e21e8a",
|
|
240
240
|
"spec/v2/core/replay.md": "a5be4e05242f25f8b5a8a4fb31bd359d5abb4bf34fa8e536403a8ee5779ab876",
|
|
241
241
|
"spec/v2/core/runs.md": "72a94c27d884036d84290e9b108702e98b0c6b2fb598213bbda44fba9c9f860d",
|
|
242
|
-
"spec/v2/core/security-defaults.md": "
|
|
242
|
+
"spec/v2/core/security-defaults.md": "e77cf97290ffb0c201706ea10cc0883d717d034353ae0632067838ef227d3749",
|
|
243
243
|
"spec/v2/core/tool-catalog.md": "6b54b8ce221107de19c718f374a720123c6a5f55db4054e6625f73d06e0a442f",
|
|
244
244
|
"spec/v2/core/versioning.md": "2bfe16a72a909c46b4585fab39dc9e94c97506ed95df6b1b527f97b4cd3684ef",
|
|
245
245
|
"spec/v2/core/webhooks.md": "78fe97ab5bdee20218183efe32abf5ba1996705d757cb37c8d6a4d808c44199f",
|
|
246
246
|
"spec/v2/core/workflow-chain-packs.md": "35a957f1dd22016febd76bf2c4dfb79cda58b95d8efd8893b5e5babda9f79cf3",
|
|
247
|
-
"spec/v2/corrections.json": "
|
|
247
|
+
"spec/v2/corrections.json": "59f647f4d22477f6c2b06dcf913b682dde5d51dd5e607a5d0cf648ab60864d6e",
|
|
248
248
|
"spec/v2/corrections.schema.json": "46bbffb954d13bd9995aebc912ceeb2544f7064331abf25fd6ab85c81a5cec94",
|
|
249
|
-
"spec/v2/declaration.json": "
|
|
249
|
+
"spec/v2/declaration.json": "48cf54bc5ab04c00df3079b3fee701802de35a5a211dbfaf62c6a16bd4d3cd06",
|
|
250
250
|
"spec/v2/declaration.schema.json": "ef951633e4070899f64828f5cf1b5f4870270a0360f81dbb49b5b4d6cd407550",
|
|
251
|
-
"spec/v2/errors.json": "
|
|
251
|
+
"spec/v2/errors.json": "dc1a846abe3e888acb0ce4a33cf9d1fb98e41fcc8b49f42b3682fd65deca2eb2",
|
|
252
252
|
"spec/v2/errors.schema.json": "47404ad53e6147cf9017b813483712466573e419fb33e6c4b6c12d3e7deba1bc",
|
|
253
253
|
"spec/v2/event-codemap.json": "37869a03cdfd8758b57e6f350641a6ebbd383231cebda51f5473ad85f94ab74c",
|
|
254
254
|
"spec/v2/event-codemap.schema.json": "b173f2a9bcc0bf9b62a474ce3b91e1431d597e64fd1560fc58662cd8606eaf9c",
|
|
255
255
|
"spec/v2/ext/README.md": "e2731ebb5156ece1840ed3b96e7a347f6345e73071ff4e54df0f21c1585c5027",
|
|
256
256
|
"spec/v2/ext/a2uiSurface/README.md": "5518c7f355262eb7cc584422f4ff8e548f066b211878f969274a3a578127622d",
|
|
257
|
-
"spec/v2/ext/brand/README.md": "
|
|
258
|
-
"spec/v2/ext/canvas/README.md": "
|
|
259
|
-
"spec/v2/ext/chat/README.md": "
|
|
260
|
-
"spec/v2/ext/coordination/README.md": "
|
|
261
|
-
"spec/v2/ext/dataIntegration/README.md": "
|
|
262
|
-
"spec/v2/ext/entities/README.md": "
|
|
257
|
+
"spec/v2/ext/brand/README.md": "4f9db1715219070fc57e06cc9b066f13aa130dd50f4869722d908e6e15720787",
|
|
258
|
+
"spec/v2/ext/canvas/README.md": "9a08469f1cbde2b0d6594ce76f8cce94b9fb5415979ef5e2ecb732f311c86bae",
|
|
259
|
+
"spec/v2/ext/chat/README.md": "07e9ca34b3e5fc222ace1c2af60375266e001d1695da87f38f56b58f17aeaead",
|
|
260
|
+
"spec/v2/ext/coordination/README.md": "c7fe0884f52405fdd02c5f9ec309ac6b585685ee06ec5f338fff7acf03c07148",
|
|
261
|
+
"spec/v2/ext/dataIntegration/README.md": "a18e179cf88eb5d3e2fe2e017018141747a64a984d25a4f4ed32d776ea62e26d",
|
|
262
|
+
"spec/v2/ext/entities/README.md": "956d4a9a2aedb8cb9c79ce8145580480920474cc6943f0e33ede32d7b20414dc",
|
|
263
263
|
"spec/v2/ext/grpc-transport/README.md": "6ba378e3c6d1f2e3269b392cfdf0c40565ee9bfa259d1baaa9ee1d350e38e792",
|
|
264
|
-
"spec/v2/ext/kanban/README.md": "
|
|
265
|
-
"spec/v2/ext/knowledge/README.md": "
|
|
266
|
-
"spec/v2/ext/launchStudio/README.md": "
|
|
267
|
-
"spec/v2/ext/messaging/README.md": "
|
|
264
|
+
"spec/v2/ext/kanban/README.md": "df179bea93a35c7a9d2556f2abefe2d53e05e33730b0b8cb2a9facab0e394ed2",
|
|
265
|
+
"spec/v2/ext/knowledge/README.md": "ab50dff74a1f285f890fab93f2d3a85f41032fff9191e4623ce9cbaed6d12124",
|
|
266
|
+
"spec/v2/ext/launchStudio/README.md": "ed33abe5bb000288e1be52f2b7a88175c7666a4390a599a6a77844eab564cabe",
|
|
267
|
+
"spec/v2/ext/messaging/README.md": "484cfa3091f89261dbdd48372afba441d3e6c16c3169a861b0ed7fc8c2902780",
|
|
268
268
|
"spec/v2/ext/portability/README.md": "c59423ee446638b748a911b9e97e803c4786157be6120f656f0a060586bc7b82",
|
|
269
269
|
"spec/v2/ext/provider-idempotency/README.md": "9d1bccef0ec16a19a3370ae79c2f5a1726ce0d1d25a51352907f288a2ccb15d7",
|
|
270
270
|
"spec/v2/ext/provider-idempotency/registry.json": "5b5fecad604fb4ab38da39f5abe697a4e57b05406c398f8afeb377331b2bd965",
|
|
271
|
-
"spec/v2/ext/restTransport/README.md": "
|
|
271
|
+
"spec/v2/ext/restTransport/README.md": "acda51f1a973308841861a119def691db972f310c7b7250ab14f248e9c968585",
|
|
272
272
|
"spec/v2/ext/sandbox-runtime-notes/README.md": "0d1290fb1e20b2e35c0b15051541ab6546e4e2a6f693b4f912cb3f7d6a65e92c",
|
|
273
|
-
"spec/v2/ext/webResearch/README.md": "
|
|
273
|
+
"spec/v2/ext/webResearch/README.md": "3ec0fa2c798bcfe16a545c6b47a624c44b776561ff46fa754711e5f6677826f8",
|
|
274
274
|
"spec/v2/facets/a2a.schema.json": "b68bf5e29e455e46c2ad7cfcccf5963730ec2310ff9db81884550d8df30fd6ef",
|
|
275
275
|
"spec/v2/facets/aiProviders.schema.json": "81fb39b6698564d9d07a0d10525ecb6360c152fe3f3a5ea0439112509ca130e2",
|
|
276
|
+
"spec/v2/facets/auditLogIntegrity.schema.json": "9a7f81320c8f940c6f4129bc7dd895a4063231c5458a717a08c2cbf9bb886c46",
|
|
276
277
|
"spec/v2/facets/auth.schema.json": "7d98bc81a0f7d307460d039eebfebd21388091bfe1d538762583940f94c0bd2a",
|
|
277
278
|
"spec/v2/facets/envelopeStrictness.schema.json": "28be0a27f880bd45ec1222a16155f5e9167bbca57bf0322970fe1eb2654562aa",
|
|
278
279
|
"spec/v2/facets/heartbeat.schema.json": "81d7fa1895a8b0241bd07cf00a7e7905bef0fd14eb3427325261c62eee5746a6",
|
|
@@ -297,9 +298,9 @@
|
|
|
297
298
|
"spec/v2/path-manifest.json": "17298a245c5da9a70aa7ab0b7f2db4277e06209d6fcdd7187a8b4cea179c08f3",
|
|
298
299
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
299
300
|
"spec/v2/profiles.json": "180beb9ef2d161766fa23b2987e7e829851e3d316273147cf6a4a3f324befd6b",
|
|
300
|
-
"spec/v2/release.json": "
|
|
301
|
+
"spec/v2/release.json": "8bd257db47f63fdc4759ed13f34df309d80cd69ee83b96a24aed8bb3a9810b1d",
|
|
301
302
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624",
|
|
302
|
-
"spec/v2/surface-baseline.json": "
|
|
303
|
+
"spec/v2/surface-baseline.json": "d47f26c3194de0e0d42a731ecaeeae1c2adfdea8c09314792d15c02b50d62efb"
|
|
303
304
|
},
|
|
304
|
-
"corpusCommit": "
|
|
305
|
+
"corpusCommit": "49be1aa2be9d835a80f934ce98dc4cebf0af46a4"
|
|
305
306
|
}
|
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.
|
|
4
|
+
version: 2.43.0
|
|
5
5
|
description: 'The OpenWOP conformance seams profile (`openwop-conformance-seams-v2`): test-only operations in their own
|
|
6
6
|
path space, `/conformance/seams/…`. The profile is versioned and validated against the canonical v2 schemas with no tolerance
|
|
7
7
|
path. It is not a capability: a host advertises the profile, never a `testSeams` flag.
|
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.
|
|
4
|
+
version: 2.43.0
|
|
5
5
|
description: 'OpenWOP v2 event streams over SSE. The run-events channel''s address is the OpenAPI path key, and the server
|
|
6
6
|
pathname is empty (bare origin). `streamMode` is a stream mode from the closed set, or a comma-separated combination of
|
|
7
7
|
them; `values` never combines. `hostEvents` has a default address, `/host/events`; a host MAY declare another under `heartbeat.deliveryChannel`.
|
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.
|
|
4
|
+
version: 2.43.0
|
|
5
5
|
summary: REST surface for declaring, executing, suspending, resuming, and observing multi-step workflows.
|
|
6
6
|
description: 'The OpenWOP v2 REST API. Paths are unversioned and served at the bare origin; a client selects a version with
|
|
7
7
|
the `OpenWOP-Version` header from the host''s `protocolVersions[]`. Conformance seams and test-mode operations are not
|
|
@@ -2638,9 +2638,10 @@ paths:
|
|
|
2638
2638
|
summary: Verify the audit-log hash chain over [fromSeq, toSeq].
|
|
2639
2639
|
description: Re-walks the audit-log entries in the requested range, recomputes each entry's `prevHash` from the canonical
|
|
2640
2640
|
RFC 8785 JCS serialization of the prior entry, verifies signed checkpoints against the host's advertised `auditLogIntegrity.checkpointPublicKey`,
|
|
2641
|
-
and returns `chainValid` with any anomalies. Hosts MUST require the `audit:read` scope.
|
|
2642
|
-
the `
|
|
2643
|
-
|
|
2641
|
+
and returns `chainValid` with any anomalies. Hosts MUST require the `audit:read` scope. Served by a host that advertises
|
|
2642
|
+
the `auditLogIntegrity` family, which MUST list every checkpoint whose `atSequence` is in the range, ascending; a
|
|
2643
|
+
host that does not advertise it MAY omit this endpoint entirely, and clients SHOULD check `/.well-known/openwop` first.
|
|
2644
|
+
See `spec/v2/core/security-defaults.md` §Audit-log integrity.
|
|
2644
2645
|
operationId: verifyAuditLog
|
|
2645
2646
|
security:
|
|
2646
2647
|
- ApiKeyAuth:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/spec-artifacts",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.43.0",
|
|
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": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"chainValid": {
|
|
20
20
|
"type": "boolean",
|
|
21
|
-
"description": "True when every entry's `prevHash` matches the SHA-256 of the prior entry's RFC 8785 JCS canonicalization AND every signed checkpoint in `checkpoints[]` verifies against the host's advertised `auditLogIntegrity.checkpointPublicKey`. False when ANY break or invalid signature
|
|
21
|
+
"description": "True when every entry's `prevHash` matches the SHA-256 of the prior entry's RFC 8785 JCS canonicalization AND every signed checkpoint in `checkpoints[]` verifies against the host's advertised `auditLogIntegrity.checkpointPublicKey`. False when ANY anomaly is detected: a chain break, a mutated or missing entry, a checkpoint root that does not recompute, or an invalid signature. `anomalies[]` enumerates them (RFC 0218 §C)."
|
|
22
22
|
},
|
|
23
23
|
"checkpointsValid": {
|
|
24
24
|
"type": "boolean",
|
|
@@ -31,11 +31,14 @@
|
|
|
31
31
|
},
|
|
32
32
|
"anomalies": {
|
|
33
33
|
"type": "array",
|
|
34
|
-
"description": "One entry per detected
|
|
34
|
+
"description": "One entry per anomaly detected in [fromSeq, toSeq]: a chain break, a mutated or missing entry, or a checkpoint whose root or signature fails (RFC 0218 §C). Empty array MUST appear when chainValid is true (not omitted), and MUST be non-empty when chainValid is false.",
|
|
35
35
|
"items": { "$ref": "#/$defs/Anomaly" }
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"additionalProperties": false,
|
|
39
|
+
"if": { "properties": { "chainValid": { "const": true } } },
|
|
40
|
+
"then": { "properties": { "anomalies": { "maxItems": 0 } } },
|
|
41
|
+
"else": { "properties": { "anomalies": { "minItems": 1 } } },
|
|
39
42
|
"$defs": {
|
|
40
43
|
"Checkpoint": {
|
|
41
44
|
"type": "object",
|
|
@@ -67,24 +70,53 @@
|
|
|
67
70
|
},
|
|
68
71
|
"Anomaly": {
|
|
69
72
|
"type": "object",
|
|
70
|
-
"
|
|
73
|
+
"description": "One detected anomaly (RFC 0218 §C). `kind` says what failed and fixes which members the entry carries: `chain-break` carries `expectedPrevHash` and `actualPrevHash`; `merkle-mismatch` and `signature-invalid` carry `checkpoint`; `hash-mismatch` and `missing-entry` carry neither. An entry without `kind` is a `chain-break`, the only shape this object had before RFC 0218 §C. A verifier MUST treat an unknown `kind` as an anomaly: `chainValid` is false whenever `anomalies` is non-empty.",
|
|
74
|
+
"required": ["atSeq"],
|
|
71
75
|
"properties": {
|
|
72
76
|
"atSeq": {
|
|
73
77
|
"type": "integer",
|
|
74
78
|
"minimum": 0,
|
|
75
|
-
"description": "
|
|
79
|
+
"description": "The sequence number the anomaly is at. For an entry kind, the entry that failed (`chain-break`, `hash-mismatch`) or the first missing sequence of a gap (`missing-entry`). For a checkpoint kind, the checkpoint's `atSequence`."
|
|
76
80
|
},
|
|
77
|
-
"
|
|
81
|
+
"kind": {
|
|
78
82
|
"type": "string",
|
|
83
|
+
"enum": ["chain-break", "hash-mismatch", "missing-entry", "merkle-mismatch", "signature-invalid"],
|
|
84
|
+
"description": "What failed. `chain-break`: the entry's `prevHash` is not the hash of the entry before it. `hash-mismatch`: the entry no longer hashes to the value the host recorded when it was appended (the entry was mutated in place). `missing-entry`: no entry exists at `atSeq` inside the verified range. `merkle-mismatch`: the root recomputed over the checkpoint's range (RFC 0218 §A) differs from its `merkleRoot`. `signature-invalid`: the checkpoint's `signature` does not verify under the advertised `checkpointPublicKey`. Hosts SHOULD set it; absent means `chain-break`."
|
|
85
|
+
},
|
|
86
|
+
"expectedPrevHash": {
|
|
87
|
+
"type": ["string", "null"],
|
|
79
88
|
"minLength": 1,
|
|
80
|
-
"description": "Hex-encoded SHA-256 the verifier computed from the prior entry's RFC 8785 JCS canonicalization."
|
|
89
|
+
"description": "`chain-break` only. Hex-encoded SHA-256 the verifier computed from the prior entry's RFC 8785 JCS canonicalization; `null` when the entry is the genesis entry, whose `prevHash` must be null."
|
|
81
90
|
},
|
|
82
91
|
"actualPrevHash": {
|
|
92
|
+
"type": ["string", "null"],
|
|
93
|
+
"description": "`chain-break` only. The `prevHash` value the audit-log entry actually carries, `null` included. Empty string when the field is missing (a structural anomaly distinct from a hash mismatch)."
|
|
94
|
+
},
|
|
95
|
+
"checkpoint": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"minLength": 1,
|
|
98
|
+
"maxLength": 256,
|
|
99
|
+
"description": "`merkle-mismatch` and `signature-invalid` only: the id of the failing checkpoint, as in `checkpoints[].checkpoint`. Required because two checkpoints can share an `atSequence` while a rotating key dual-signs (auth-profiles.md §Key management)."
|
|
100
|
+
},
|
|
101
|
+
"detail": {
|
|
83
102
|
"type": "string",
|
|
84
|
-
"
|
|
103
|
+
"maxLength": 1024,
|
|
104
|
+
"description": "OPTIONAL human-readable explanation for an operator. Not machine-readable; a verifier MUST NOT branch on it."
|
|
85
105
|
}
|
|
86
106
|
},
|
|
87
|
-
"additionalProperties": false
|
|
107
|
+
"additionalProperties": false,
|
|
108
|
+
"allOf": [
|
|
109
|
+
{
|
|
110
|
+
"if": { "properties": { "kind": { "const": "chain-break" } } },
|
|
111
|
+
"then": { "required": ["expectedPrevHash", "actualPrevHash"] },
|
|
112
|
+
"else": { "properties": { "expectedPrevHash": false, "actualPrevHash": false } }
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"if": { "required": ["kind"], "properties": { "kind": { "enum": ["merkle-mismatch", "signature-invalid"] } } },
|
|
116
|
+
"then": { "required": ["checkpoint"] },
|
|
117
|
+
"else": { "properties": { "checkpoint": false } }
|
|
118
|
+
}
|
|
119
|
+
]
|
|
88
120
|
}
|
|
89
121
|
}
|
|
90
122
|
}
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"chainValid": {
|
|
26
26
|
"type": "boolean",
|
|
27
|
-
"description": "True when every entry's `prevHash` matches the SHA-256 of the prior entry's RFC 8785 JCS canonicalization AND every signed checkpoint in `checkpoints[]` verifies against the host's advertised `auditLogIntegrity.checkpointPublicKey`. False when ANY break or invalid signature
|
|
27
|
+
"description": "True when every entry's `prevHash` matches the SHA-256 of the prior entry's RFC 8785 JCS canonicalization AND every signed checkpoint in `checkpoints[]` verifies against the host's advertised `auditLogIntegrity.checkpointPublicKey`. False when ANY anomaly is detected: a chain break, a mutated or missing entry, a checkpoint root that does not recompute, or an invalid signature. `anomalies[]` enumerates them (RFC 0218 §C)."
|
|
28
28
|
},
|
|
29
29
|
"checkpointsValid": {
|
|
30
30
|
"type": "boolean",
|
|
@@ -39,13 +39,34 @@
|
|
|
39
39
|
},
|
|
40
40
|
"anomalies": {
|
|
41
41
|
"type": "array",
|
|
42
|
-
"description": "One entry per detected
|
|
42
|
+
"description": "One entry per anomaly detected in [fromSeq, toSeq]: a chain break, a mutated or missing entry, or a checkpoint whose root or signature fails (RFC 0218 §C). Empty array MUST appear when chainValid is true (not omitted), and MUST be non-empty when chainValid is false.",
|
|
43
43
|
"items": {
|
|
44
44
|
"$ref": "#/$defs/Anomaly"
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
"additionalProperties": false,
|
|
49
|
+
"if": {
|
|
50
|
+
"properties": {
|
|
51
|
+
"chainValid": {
|
|
52
|
+
"const": true
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"then": {
|
|
57
|
+
"properties": {
|
|
58
|
+
"anomalies": {
|
|
59
|
+
"maxItems": 0
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"else": {
|
|
64
|
+
"properties": {
|
|
65
|
+
"anomalies": {
|
|
66
|
+
"minItems": 1
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
49
70
|
"$defs": {
|
|
50
71
|
"Checkpoint": {
|
|
51
72
|
"type": "object",
|
|
@@ -82,28 +103,103 @@
|
|
|
82
103
|
},
|
|
83
104
|
"Anomaly": {
|
|
84
105
|
"type": "object",
|
|
106
|
+
"description": "One detected anomaly (RFC 0218 §C). `kind` says what failed and fixes which members the entry carries: `chain-break` carries `expectedPrevHash` and `actualPrevHash`; `merkle-mismatch` and `signature-invalid` carry `checkpoint`; `hash-mismatch` and `missing-entry` carry neither. An entry without `kind` is a `chain-break`, the only shape this object had before RFC 0218 §C. A verifier MUST treat an unknown `kind` as an anomaly: `chainValid` is false whenever `anomalies` is non-empty.",
|
|
85
107
|
"required": [
|
|
86
|
-
"atSeq"
|
|
87
|
-
"expectedPrevHash",
|
|
88
|
-
"actualPrevHash"
|
|
108
|
+
"atSeq"
|
|
89
109
|
],
|
|
90
110
|
"properties": {
|
|
91
111
|
"atSeq": {
|
|
92
112
|
"type": "integer",
|
|
93
113
|
"minimum": 0,
|
|
94
|
-
"description": "
|
|
114
|
+
"description": "The sequence number the anomaly is at. For an entry kind, the entry that failed (`chain-break`, `hash-mismatch`) or the first missing sequence of a gap (`missing-entry`). For a checkpoint kind, the checkpoint's `atSequence`."
|
|
95
115
|
},
|
|
96
|
-
"
|
|
116
|
+
"kind": {
|
|
97
117
|
"type": "string",
|
|
118
|
+
"enum": [
|
|
119
|
+
"chain-break",
|
|
120
|
+
"hash-mismatch",
|
|
121
|
+
"missing-entry",
|
|
122
|
+
"merkle-mismatch",
|
|
123
|
+
"signature-invalid"
|
|
124
|
+
],
|
|
125
|
+
"description": "What failed. `chain-break`: the entry's `prevHash` is not the hash of the entry before it. `hash-mismatch`: the entry no longer hashes to the value the host recorded when it was appended (the entry was mutated in place). `missing-entry`: no entry exists at `atSeq` inside the verified range. `merkle-mismatch`: the root recomputed over the checkpoint's range (RFC 0218 §A) differs from its `merkleRoot`. `signature-invalid`: the checkpoint's `signature` does not verify under the advertised `checkpointPublicKey`. Hosts SHOULD set it; absent means `chain-break`."
|
|
126
|
+
},
|
|
127
|
+
"expectedPrevHash": {
|
|
128
|
+
"type": [
|
|
129
|
+
"string",
|
|
130
|
+
"null"
|
|
131
|
+
],
|
|
98
132
|
"minLength": 1,
|
|
99
|
-
"description": "Hex-encoded SHA-256 the verifier computed from the prior entry's RFC 8785 JCS canonicalization."
|
|
133
|
+
"description": "`chain-break` only. Hex-encoded SHA-256 the verifier computed from the prior entry's RFC 8785 JCS canonicalization; `null` when the entry is the genesis entry, whose `prevHash` must be null."
|
|
100
134
|
},
|
|
101
135
|
"actualPrevHash": {
|
|
136
|
+
"type": [
|
|
137
|
+
"string",
|
|
138
|
+
"null"
|
|
139
|
+
],
|
|
140
|
+
"description": "`chain-break` only. The `prevHash` value the audit-log entry actually carries, `null` included. Empty string when the field is missing (a structural anomaly distinct from a hash mismatch)."
|
|
141
|
+
},
|
|
142
|
+
"checkpoint": {
|
|
143
|
+
"type": "string",
|
|
144
|
+
"minLength": 1,
|
|
145
|
+
"maxLength": 256,
|
|
146
|
+
"description": "`merkle-mismatch` and `signature-invalid` only: the id of the failing checkpoint, as in `checkpoints[].checkpoint`. Required because two checkpoints can share an `atSequence` while a rotating key dual-signs (auth-profiles.md §Key management)."
|
|
147
|
+
},
|
|
148
|
+
"detail": {
|
|
102
149
|
"type": "string",
|
|
103
|
-
"
|
|
150
|
+
"maxLength": 1024,
|
|
151
|
+
"description": "OPTIONAL human-readable explanation for an operator. Not machine-readable; a verifier MUST NOT branch on it."
|
|
104
152
|
}
|
|
105
153
|
},
|
|
106
|
-
"additionalProperties": false
|
|
154
|
+
"additionalProperties": false,
|
|
155
|
+
"allOf": [
|
|
156
|
+
{
|
|
157
|
+
"if": {
|
|
158
|
+
"properties": {
|
|
159
|
+
"kind": {
|
|
160
|
+
"const": "chain-break"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"then": {
|
|
165
|
+
"required": [
|
|
166
|
+
"expectedPrevHash",
|
|
167
|
+
"actualPrevHash"
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
"else": {
|
|
171
|
+
"properties": {
|
|
172
|
+
"expectedPrevHash": false,
|
|
173
|
+
"actualPrevHash": false
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"if": {
|
|
179
|
+
"required": [
|
|
180
|
+
"kind"
|
|
181
|
+
],
|
|
182
|
+
"properties": {
|
|
183
|
+
"kind": {
|
|
184
|
+
"enum": [
|
|
185
|
+
"merkle-mismatch",
|
|
186
|
+
"signature-invalid"
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"then": {
|
|
192
|
+
"required": [
|
|
193
|
+
"checkpoint"
|
|
194
|
+
]
|
|
195
|
+
},
|
|
196
|
+
"else": {
|
|
197
|
+
"properties": {
|
|
198
|
+
"checkpoint": false
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
]
|
|
107
203
|
}
|
|
108
204
|
},
|
|
109
205
|
"x-openwop-seeded-from": "v1"
|
|
@@ -7696,6 +7696,102 @@
|
|
|
7696
7696
|
"description": "core/capabilities.md#auth — witness: seam-gated; maturity experimental/none; RFC 0154",
|
|
7697
7697
|
"x-openwop-facets-from": "spec/v2/facets/auth.schema.json"
|
|
7698
7698
|
},
|
|
7699
|
+
"auditLogIntegrity": {
|
|
7700
|
+
"type": "object",
|
|
7701
|
+
"additionalProperties": false,
|
|
7702
|
+
"required": [
|
|
7703
|
+
"status",
|
|
7704
|
+
"since",
|
|
7705
|
+
"witness",
|
|
7706
|
+
"checkpointSignatureAlgorithm",
|
|
7707
|
+
"checkpointPublicKey",
|
|
7708
|
+
"checkpointIntervalEntries",
|
|
7709
|
+
"checkpointIntervalSeconds"
|
|
7710
|
+
],
|
|
7711
|
+
"properties": {
|
|
7712
|
+
"status": {
|
|
7713
|
+
"enum": [
|
|
7714
|
+
"stable",
|
|
7715
|
+
"experimental",
|
|
7716
|
+
"deprecated"
|
|
7717
|
+
]
|
|
7718
|
+
},
|
|
7719
|
+
"since": {
|
|
7720
|
+
"type": "string",
|
|
7721
|
+
"pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$",
|
|
7722
|
+
"description": "The minor of THIS HOST's own contract at which it began serving the family — a point on its protocolVersions[] timeline, not the corpus minor that introduced the family. The corpus states no per-family since (spec/v2/declaration.json carries witness and maturity and no since), and `status`/`until` are the host's stability claim absorbed from v1 tier/experimentalUntil, so all three describe the host's offering and `witness` is the record's one corpus-derived field. A since naming a minor absent from protocolVersions[] puts adjacent same-grammar fields on two different timelines and is a defect. Ruled 2026-09-11."
|
|
7723
|
+
},
|
|
7724
|
+
"until": {
|
|
7725
|
+
"type": "string",
|
|
7726
|
+
"pattern": "^((0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)|\\d{4}-\\d{2}-\\d{2})$"
|
|
7727
|
+
},
|
|
7728
|
+
"witness": {
|
|
7729
|
+
"enum": [
|
|
7730
|
+
"witnessable-unaided",
|
|
7731
|
+
"witnessable-gated",
|
|
7732
|
+
"seam-gated",
|
|
7733
|
+
"claims-check",
|
|
7734
|
+
"negative-existence"
|
|
7735
|
+
]
|
|
7736
|
+
},
|
|
7737
|
+
"checkpointSignatureAlgorithm": {
|
|
7738
|
+
"const": "ed25519",
|
|
7739
|
+
"description": "The checkpoint signature algorithm. Ed25519 over the 32 bytes `merkleRoot` hex-decodes to (RFC 0218 §A.4)."
|
|
7740
|
+
},
|
|
7741
|
+
"checkpointPublicKey": {
|
|
7742
|
+
"type": "string",
|
|
7743
|
+
"pattern": "^MCowBQYDK2VwAyEA[A-Za-z0-9+/]{43}=$",
|
|
7744
|
+
"description": "The audit-signing public key: base64 (RFC 4648 §4, padded) of its DER SubjectPublicKeyInfo, 44 bytes for Ed25519. Every checkpoint `GET /audit/verify` returns MUST verify under it."
|
|
7745
|
+
},
|
|
7746
|
+
"checkpointIntervalEntries": {
|
|
7747
|
+
"type": "integer",
|
|
7748
|
+
"minimum": 1,
|
|
7749
|
+
"description": "The most entries a checkpoint anchors: consecutive checkpoints' atSequence, and the first checkpoint's atSequence from 0, differ by at most this."
|
|
7750
|
+
},
|
|
7751
|
+
"checkpointIntervalSeconds": {
|
|
7752
|
+
"type": "integer",
|
|
7753
|
+
"minimum": 1,
|
|
7754
|
+
"description": "The longest an appended entry waits before a checkpoint anchors it."
|
|
7755
|
+
}
|
|
7756
|
+
},
|
|
7757
|
+
"allOf": [
|
|
7758
|
+
{
|
|
7759
|
+
"if": {
|
|
7760
|
+
"properties": {
|
|
7761
|
+
"status": {
|
|
7762
|
+
"const": "stable"
|
|
7763
|
+
}
|
|
7764
|
+
}
|
|
7765
|
+
},
|
|
7766
|
+
"then": {
|
|
7767
|
+
"not": {
|
|
7768
|
+
"required": [
|
|
7769
|
+
"until"
|
|
7770
|
+
]
|
|
7771
|
+
}
|
|
7772
|
+
}
|
|
7773
|
+
},
|
|
7774
|
+
{
|
|
7775
|
+
"if": {
|
|
7776
|
+
"properties": {
|
|
7777
|
+
"status": {
|
|
7778
|
+
"enum": [
|
|
7779
|
+
"experimental",
|
|
7780
|
+
"deprecated"
|
|
7781
|
+
]
|
|
7782
|
+
}
|
|
7783
|
+
}
|
|
7784
|
+
},
|
|
7785
|
+
"then": {
|
|
7786
|
+
"required": [
|
|
7787
|
+
"until"
|
|
7788
|
+
]
|
|
7789
|
+
}
|
|
7790
|
+
}
|
|
7791
|
+
],
|
|
7792
|
+
"description": "core/capabilities.md#auditLogIntegrity — witness: witnessable-gated; maturity experimental/none; RFC 0224",
|
|
7793
|
+
"x-openwop-facets-from": "spec/v2/facets/auditLogIntegrity.schema.json"
|
|
7794
|
+
},
|
|
7699
7795
|
"i18n": {
|
|
7700
7796
|
"type": "object",
|
|
7701
7797
|
"additionalProperties": false,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://openwop.dev/spec/v2/error-envelope.schema.json",
|
|
4
4
|
"title": "ErrorEnvelope (v2)",
|
|
5
|
-
"description": "GENERATED from spec/v2/errors.json by scripts/generate-error-envelope.mjs (RFC 0171 §B.1).
|
|
5
|
+
"description": "GENERATED from spec/v2/errors.json by scripts/generate-error-envelope.mjs (RFC 0171 §B.1). 108 registered codes; vendor codes match ^(?!openwop\\.)[a-z][a-z0-9]*(-[a-z0-9]+)*\\.[a-z][a-z0-9_]*$. Consumers MUST accept an unknown registered member and MUST NOT act on it (RFC 0171 §A.5).",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"required": [
|
|
@@ -95,6 +95,7 @@
|
|
|
95
95
|
"payload_too_large",
|
|
96
96
|
"workspace_too_large",
|
|
97
97
|
"unsupported_media_type",
|
|
98
|
+
"approval_rejected",
|
|
98
99
|
"capability_not_provided",
|
|
99
100
|
"capability_required",
|
|
100
101
|
"credential_required",
|
|
@@ -367,6 +368,7 @@
|
|
|
367
368
|
"payload_too_large": 413,
|
|
368
369
|
"workspace_too_large": 413,
|
|
369
370
|
"unsupported_media_type": 415,
|
|
371
|
+
"approval_rejected": 422,
|
|
370
372
|
"capability_not_provided": 422,
|
|
371
373
|
"capability_required": 422,
|
|
372
374
|
"credential_required": 422,
|