@openwop/spec-artifacts 2.43.2 → 2.44.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 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.43.2",
5
- "corpusTag": "v2.43.2",
4
+ "version": "2.44.0",
5
+ "corpusTag": "v2.44.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": "987123ecfbfbc906c5655538b9380021ac0bcbfd93a467a67818e855d624ed0e",
13
- "api/v2/asyncapi.yaml": "76474704b7a8e829588abec30d31f09e11557ee5daacad301c3be7e77affe7ce",
14
- "api/v2/openapi.yaml": "f4af9e7fddad438d3a70753af29e5738ea48d15d1abd214a3fbeec97260cea9d",
12
+ "api/seams-v2.yaml": "7efbc96aa7d5fb2d501f90585cc7fbb10da6a0ff41289b52cf6ddadf04dc852a",
13
+ "api/v2/asyncapi.yaml": "ac39be9e90e1daf84cb12cc268be3152c6b50f6852129ac42820db43bb26f41d",
14
+ "api/v2/openapi.yaml": "a8b2fdc24b017cf146985dd2360da4e794a87deb83b98fc51c54a1363fc5e391",
15
15
  "api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
16
16
  "schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
17
17
  "schemas/a2a-task-state.schema.json": "75d5049dea8bd873ff0e7546f1c60c8d36c219bec7084264360be54a8be30ae1",
@@ -116,7 +116,7 @@
116
116
  "schemas/v2/artifact.schema.json": "85b9dc284d39b99d2a66fa8cbf47f2dd3d8526d3bd6cc411ad315b372de38975",
117
117
  "schemas/v2/audit-verify-result.schema.json": "14af8e9283510f0a40e48a2059c929ee44e0fc9fa3cc66a95bfbe90b17c48297",
118
118
  "schemas/v2/budget-policy.schema.json": "c7449daeb6e1d95e7a047b8c2814d3d54748697c27046972834874867d9b5f4c",
119
- "schemas/v2/capabilities.schema.json": "ae6f60641d6ed680351b2710df945257c401f1ed83534f7e44fa2e651dc401ab",
119
+ "schemas/v2/capabilities.schema.json": "a76db7fbb18a98821c0ee4dfe51f615e59bb26c3d458bafd373fd3b6f7af4afe",
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": "d1a6862930e7c3fbc8ec334ef17953ac7b716525c6c82769edf89d0809d0c94b",
145
+ "schemas/v2/error-envelope.schema.json": "34f467d5775618f740059dab0aa49bf26247101feb0cdae3403560b6baf5eda9",
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",
@@ -204,13 +204,13 @@
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": "0be2c8da837ddb170866303ab4640c8e8a8b2554d8c2bb9ac3d1bd9780bede5a",
207
+ "spec/v1/core-standard-manifest.json": "5ea51250e81a3bf70637811cdb3bacfa7d35609dc49ce1a4889f0cff9fb35c85",
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": "7eefa3aa02e978a41e1e5948818961718d23cb0cbe29a4a491524360feb9fd6f",
213
+ "spec/v1/gaps.json": "07b0f5a206a015336307dd343b75adec647f06a9bae59ee08dbbfac851c503d5",
214
214
  "spec/v1/gaps.schema.json": "8fd83259f556553c9df0f53e7a82ca8c2a4771d471197f69b4e2ae0ceeacfd66",
215
215
  "spec/v1/migrations.json": "2efcd9064b2bc65a84a3b3d281aa86a91efd002690c1f4f14e8335c4a18194d1",
216
216
  "spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
@@ -221,7 +221,7 @@
221
221
  "spec/v2/core/conformance.md": "0cfceb926eed87055550a5c23e640210c795fc8cf9dd1b2544db0e2b3842c564",
222
222
  "spec/v2/core/connection-packs.md": "1ee129d792c537bfe82393ccb92555d8e6ddc342b1aa781a13f101b27ec38171",
223
223
  "spec/v2/core/conversation.md": "354fa57c73d11062e523a44aa75a6353c5c81aefaf306d30c42416a228c82c86",
224
- "spec/v2/core/errors.md": "bcb62944d8a482b1b6d5ac08a692ad7e4aaadf6165746c7ba7fa39157be2a300",
224
+ "spec/v2/core/errors.md": "6d5a67389de84556f81e2558a30d83959c9283c8c5481ce7c759021e486d84fd",
225
225
  "spec/v2/core/events.md": "604abb6f9e2259a04103e1cb76d728712c3701c0d84dd915d4dc2949c912ee5e",
226
226
  "spec/v2/core/form-content-packs.md": "02931227899676fd4581a27017be2a6c4953904717be9b81c29d12f87ab3917d",
227
227
  "spec/v2/core/headers.md": "5cb1624fa63acc81992b6a6d842ec392cf7271aaf2f65d1f83c8c4fa286e6730",
@@ -230,7 +230,7 @@
230
230
  "spec/v2/core/idempotency.md": "2084d756789c1faf5121593fb39e67ca36a4c227178e175004742e403178ea49",
231
231
  "spec/v2/core/identity.md": "2dceb1c2697015e4a4fa8a9b28f4fbd25fa44a76ca5a919c752e2a8163c819db",
232
232
  "spec/v2/core/interop.md": "e72e25dff864c83b2980d7366b34054cffa072af0225821199f260f6228d260e",
233
- "spec/v2/core/interrupt.md": "2c8a4026930ec40ba47d7415dd02b6eda997a03d7a084e5084fec6f1261aba1c",
233
+ "spec/v2/core/interrupt.md": "4c825634acac72900ebd3c5ac5941f55648fa33d2df92913ef16371dcb700a34",
234
234
  "spec/v2/core/node-pack-runtimes.md": "e1088cb69b8c3c67256c494063328916c2980ab1aa97a7063de25bab82fdb1e5",
235
235
  "spec/v2/core/oauth.md": "c96483a44b62978c596945fbb7d7c863cf6056cd980fdb4cf4e97555e3e10b72",
236
236
  "spec/v2/core/overview.md": "4087f171b00a3907551f508fec32fb9b0b3ccec8c0ac1b0c7c6d32cd2c0e3ff8",
@@ -242,20 +242,20 @@
242
242
  "spec/v2/core/security-defaults.md": "153884da7a2d54c30c81b5e649cfdef31e151b3a2a19dee1bc5a16c35d60a3aa",
243
243
  "spec/v2/core/tool-catalog.md": "d16a9004418719c48301804aefa4d7ab6f41112a4ed83727f552aa1b92b418b0",
244
244
  "spec/v2/core/versioning.md": "e3b3ab6d76e51035039a32173e9b412628a52c8fe7b16687ff58a2d0d983faa0",
245
- "spec/v2/core/webhooks.md": "6fc2fb7d9a993a682765ebc68e5c5bb215046ee599234ca7a660465279444eff",
245
+ "spec/v2/core/webhooks.md": "2fcb502be558014fd20b342687e0f078a5388fc430b2f99d883c0e73ddf7789f",
246
246
  "spec/v2/core/workflow-chain-packs.md": "fdce7a8477e269950a2bac05ee6eddbd66eb0b670b464d00054f7196ec05d29c",
247
247
  "spec/v2/corrections.json": "59f647f4d22477f6c2b06dcf913b682dde5d51dd5e607a5d0cf648ab60864d6e",
248
248
  "spec/v2/corrections.schema.json": "46bbffb954d13bd9995aebc912ceeb2544f7064331abf25fd6ab85c81a5cec94",
249
- "spec/v2/declaration.json": "184b83919e56d2f12bda73c7772905810a441cbab53fc42ad0b3135937fac3e5",
249
+ "spec/v2/declaration.json": "aba200967c28190c6889c27dcfb01fd02919d0c023b88693e9ffc57e9488021a",
250
250
  "spec/v2/declaration.schema.json": "ef951633e4070899f64828f5cf1b5f4870270a0360f81dbb49b5b4d6cd407550",
251
- "spec/v2/errors.json": "dc1a846abe3e888acb0ce4a33cf9d1fb98e41fcc8b49f42b3682fd65deca2eb2",
251
+ "spec/v2/errors.json": "fa650cbbdf25a140fdaf82ec5269f95b4585ac4bdde1fa6b0b3ffe48a3f7943c",
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
257
  "spec/v2/ext/brand/README.md": "82989c018d7965bab029bcce7a67b1d76ffc433d08971a4cac91befcccc09438",
258
- "spec/v2/ext/canvas/README.md": "0e91b68566d2be90319feedfaebe2cd2db0bd8f72fb59c958fa723c05e38023f",
258
+ "spec/v2/ext/canvas/README.md": "00ca0856e3a0146f1eeaec87209d450e2900ed2748dc7520cc60250a0d3ffbeb",
259
259
  "spec/v2/ext/chat/README.md": "f59b6706162abbfff96f8bccd4c0e1aeed721047cf62e9af58c875727a38d716",
260
260
  "spec/v2/ext/coordination/README.md": "c7fe0884f52405fdd02c5f9ec309ac6b585685ee06ec5f338fff7acf03c07148",
261
261
  "spec/v2/ext/dataIntegration/README.md": "286dec8aa29e4d3225cbd8b3a361f5a438c3288e759966b9415ecbb99c576e70",
@@ -268,7 +268,7 @@
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": "a8115faefeab01b7c85d516de60ebfc99b8e89552d16ba654456224518447b28",
271
+ "spec/v2/ext/restTransport/README.md": "c875fd7ae4818a5d5e93ab9b21e569de8700bb07c4dafacd60a46a46e4022ddb",
272
272
  "spec/v2/ext/sandbox-runtime-notes/README.md": "0d1290fb1e20b2e35c0b15051541ab6546e4e2a6f693b4f912cb3f7d6a65e92c",
273
273
  "spec/v2/ext/webResearch/README.md": "b675e6f6646128d781b661f754c2393eed86e5935d16c3a22df582a5ce025b9b",
274
274
  "spec/v2/facets/a2a.schema.json": "b68bf5e29e455e46c2ad7cfcccf5963730ec2310ff9db81884550d8df30fd6ef",
@@ -286,7 +286,7 @@
286
286
  "spec/v2/facets/sandbox.schema.json": "e75f54486d387b2d089791aa93b5093cd1450f1920753a0f97fc23acdfe978ed",
287
287
  "spec/v2/facets/schemaVersions.schema.json": "890d3416c4b66511d51f329abc68e6f467f4338f16807e489fe682999b2b56b9",
288
288
  "spec/v2/facets/supportedEnvelopes.schema.json": "644f22cc2236e30a611b5b7f1ba0458ff1925d68b94c514d9672583224e126bd",
289
- "spec/v2/facets/webhooks.schema.json": "2fac635ee5fbc10a14a1a46cf512a11bac660bfbabe0aea79f6c7b657ecb9e4e",
289
+ "spec/v2/facets/webhooks.schema.json": "54b576f1d150e28e1642693d846ce471c118e9c521bdf3924185305fbd1d0de4",
290
290
  "spec/v2/facets/workflowChainPacks.schema.json": "ea625ce818fbeb746478f00f31f96ee9613d538e4409c258c1bfb517acdeaba9",
291
291
  "spec/v2/harness-trust-anchors.json": "6007b92eae16a070fbc3777424efb0abfe865fda89d096963109b96282b91205",
292
292
  "spec/v2/harness-trust-anchors.schema.json": "372b5d92337c893d3449eff3f6bfd009ac09fdac285296d8bdbe0a08fff9e34c",
@@ -298,9 +298,9 @@
298
298
  "spec/v2/path-manifest.json": "17298a245c5da9a70aa7ab0b7f2db4277e06209d6fcdd7187a8b4cea179c08f3",
299
299
  "spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
300
300
  "spec/v2/profiles.json": "180beb9ef2d161766fa23b2987e7e829851e3d316273147cf6a4a3f324befd6b",
301
- "spec/v2/release.json": "ec99d76b53fba89d3d8788206c649a782774b55acf5284b75cab38b79ecf1d61",
301
+ "spec/v2/release.json": "a93ba35569a8a8bbc68243fbaef446363e5d5d5d0b8c1235ec68d0eed5ab6363",
302
302
  "spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624",
303
- "spec/v2/surface-baseline.json": "3d3d0fc7c0b48e7d7339e5d8ada0640487908f37220b2de65ccc9bff093f876a"
303
+ "spec/v2/surface-baseline.json": "0d60d3d34ddc8f1290a2fc3a6be2e5ef5cfa211cde0918d8702ec4dd299d5549"
304
304
  },
305
- "corpusCommit": "6612868966f2ecb9672d0a64382cb7067491c004"
305
+ "corpusCommit": "8bb20a89a81544aaf90b3a375fc6b1f4ffef3a33"
306
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.43.2
4
+ version: 2.44.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.
@@ -1,7 +1,7 @@
1
1
  asyncapi: 3.1.0
2
2
  info:
3
3
  title: OpenWOP v2 event streams
4
- version: 2.43.2
4
+ version: 2.44.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`.
@@ -1,7 +1,7 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: OpenWOP v2 API
4
- version: 2.43.2
4
+ version: 2.44.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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openwop/spec-artifacts",
3
- "version": "2.43.2",
3
+ "version": "2.44.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": {
@@ -5329,6 +5329,11 @@
5329
5329
  "fixed",
5330
5330
  "exponential"
5331
5331
  ]
5332
+ },
5333
+ "maxElapsedMs": {
5334
+ "type": "integer",
5335
+ "minimum": 1,
5336
+ "description": "RFC 0225 — OPTIONAL. The longest, in ms, from a delivery's first attempt starting to its routing to the dead-letter sink when every attempt fails. A host advertising it MUST dead-letter an exhausted delivery within that bound (webhooks.md §Delivery)."
5332
5337
  }
5333
5338
  },
5334
5339
  "description": "spec/v2/core/webhooks.md §Delivery — the policy a host retries a failed attempt under. The webhooks family carries it at v2; `triggerBridge.retryPolicy` is the v1 carrier and stays through the overlap."
@@ -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). 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).",
5
+ "description": "GENERATED from spec/v2/errors.json by scripts/generate-error-envelope.mjs (RFC 0171 §B.1). 111 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": [
@@ -96,6 +96,9 @@
96
96
  "workspace_too_large",
97
97
  "unsupported_media_type",
98
98
  "approval_rejected",
99
+ "node_config_invalid",
100
+ "sandbox_invocation_error",
101
+ "mcp_error",
99
102
  "capability_not_provided",
100
103
  "capability_required",
101
104
  "credential_required",
@@ -369,6 +372,9 @@
369
372
  "workspace_too_large": 413,
370
373
  "unsupported_media_type": 415,
371
374
  "approval_rejected": 422,
375
+ "node_config_invalid": 422,
376
+ "sandbox_invocation_error": 422,
377
+ "mcp_error": 502,
372
378
  "capability_not_provided": 422,
373
379
  "capability_required": 422,
374
380
  "credential_required": 422,
@@ -4,7 +4,7 @@
4
4
  "provenance": {
5
5
  "suite": {
6
6
  "package": "@openwop/openwop-conformance",
7
- "version": "2.43.2"
7
+ "version": "2.44.0"
8
8
  },
9
9
  "note": "Derived from the corpus at generation time. Regenerate with --write; verify with --check."
10
10
  },
@@ -421,5 +421,5 @@
421
421
  "$id": "https://openwop.dev/spec/v1/workspace-file.schema.json"
422
422
  }
423
423
  ],
424
- "digest": "a8b5948aab2aa9da287f28920d6106d784d33e41a441146ee50a5cf79022d6f6"
424
+ "digest": "fb25d9cf69d577e91d0c6e806546d28c8c43b8df666bb8dfef8bd8931945f9d5"
425
425
  }
package/spec/v1/gaps.json CHANGED
@@ -13076,8 +13076,8 @@
13076
13076
  "surface": "No v2 SDK sends the header today (`openwop-sdks`: `sdk/typescript-v2`, `sdk/python-v2`, Go).",
13077
13077
  "witness": "unclassified",
13078
13078
  "requirementId": null,
13079
- "disposition": "transferred",
13080
- "target": "rfc-0219",
13079
+ "disposition": "closed",
13080
+ "target": null,
13081
13081
  "sources": [
13082
13082
  {
13083
13083
  "file": "RFCS/registers/0219-client-version-header.gaps.md",
@@ -13085,6 +13085,40 @@
13085
13085
  }
13086
13086
  ]
13087
13087
  },
13088
+ {
13089
+ "id": "openwop.gap.0219.7",
13090
+ "rfc": "0219",
13091
+ "local": "G7",
13092
+ "section": "§Conformance",
13093
+ "surface": "`openwop.requirement.0219.no-floor-no-refusal` has no positive witness. All three measured hosts (the v2 reference host, MyndHyve, openwop-app) advertise `minClientVersion`, so every committed bundle records the row `inapplicable` with the reason \"this leg is for a host with no floor\".",
13094
+ "witness": "unclassified",
13095
+ "requirementId": null,
13096
+ "disposition": "externally-gated",
13097
+ "target": "host-without-min-client-version",
13098
+ "sources": [
13099
+ {
13100
+ "file": "RFCS/registers/0219-client-version-header.gaps.md",
13101
+ "token": "G7"
13102
+ }
13103
+ ]
13104
+ },
13105
+ {
13106
+ "id": "openwop.gap.0219.8",
13107
+ "rfc": "0219",
13108
+ "local": "G8",
13109
+ "section": "§A / upgrade",
13110
+ "surface": "A browser preflights the new request header. A host whose `Access-Control-Allow-Headers` is an explicit list, and which serves browsers cross-origin, fails every request from a client that sends it. Found at the SDK 2.5.0 release: openwop-app's list omitted it (as it once omitted `OpenWOP-Version`), and so did MyndHyve's public pack reads (fixed in myndhyve#549). v2 says nothing about CORS.",
13111
+ "witness": "unclassified",
13112
+ "requirementId": null,
13113
+ "disposition": "transferred",
13114
+ "target": "openwop#1763",
13115
+ "sources": [
13116
+ {
13117
+ "file": "RFCS/registers/0219-client-version-header.gaps.md",
13118
+ "token": "G8"
13119
+ }
13120
+ ]
13121
+ },
13088
13122
  {
13089
13123
  "id": "openwop.gap.0220.1",
13090
13124
  "rfc": "0220",
@@ -13161,8 +13195,8 @@
13161
13195
  "surface": "`canvas` has no tier-2 path yet. MyndHyve serves the canvas host service (myndhyve #547), but its claim depends on the `vendor.myndhyve.canvas` pack. The only v2-admissible version (1.0.1, `registry/v2/`) is signed with `signing.scheme: ed25519-canonical-json` (RFC 0177 §A), and MyndHyve's pack publish route and resolver do not implement that scheme. The v1-tree 1.0.0 pins `engines.openwop <2.0.0`, which a v2 host MUST refuse. This is a general v2 pack-signing gap at the host, not canvas-specific.",
13162
13196
  "witness": "unclassified",
13163
13197
  "requirementId": null,
13164
- "disposition": "transferred",
13165
- "target": "myndhyve/services/workflow-runtime",
13198
+ "disposition": "closed",
13199
+ "target": null,
13166
13200
  "sources": [
13167
13201
  {
13168
13202
  "file": "RFCS/registers/0220-ext-families-graduate-on-evidence.gaps.md",
@@ -13277,11 +13311,11 @@
13277
13311
  "rfc": "0223",
13278
13312
  "local": "G4",
13279
13313
  "section": "§Implementation notes",
13280
- "surface": "openwop-app records no `action` on single reject or timeout, emits no `interrupt.resolved` on quorum reject, never emits `approval.rejected`, and emits no `node.failed` / `failedNodeId` on either reject path.",
13314
+ "surface": "openwop-app recorded no `action` on single reject or timeout, emitted no `interrupt.resolved` on quorum reject, never emitted `approval.rejected`, and emitted no `node.failed` / `failedNodeId` on either reject path.",
13281
13315
  "witness": "unclassified",
13282
13316
  "requirementId": null,
13283
- "disposition": "externally-gated",
13284
- "target": "openwop-app-followup",
13317
+ "disposition": "closed",
13318
+ "target": null,
13285
13319
  "sources": [
13286
13320
  {
13287
13321
  "file": "RFCS/registers/0223-approval-reject-disposition.gaps.md",
@@ -13375,36 +13409,36 @@
13375
13409
  ]
13376
13410
  },
13377
13411
  {
13378
- "id": "openwop.gap.0223.9",
13412
+ "id": "openwop.gap.0223.10",
13379
13413
  "rfc": "0223",
13380
- "local": "G9",
13414
+ "local": "G10",
13381
13415
  "section": "§Conformance",
13382
- "surface": "`openwop.requirement.0223.reject-loopback-reasks` (openwop #1697) has no positive witness on any host. The v2 reference host does not run cycles. MyndHyve runs request-changes loops over condition edges on a successful gate output, and does not route a failed node over `any_failed` (its Cloud Run executor has no `triggerRule` handling), so the row stays `inapplicable` there. openwop-app rejects cycles. The row exists and is negatively controlled: registering the fixture on a host that does not loop records `executed-fail`.",
13416
+ "surface": "`openwop.requirement.0223.timeout-rejects` and `0223.timeout-never-grants` had no certified witness, and have no MyndHyve witness: its `core.approvalGate` has no timeout configuration.",
13383
13417
  "witness": "unclassified",
13384
13418
  "requirementId": null,
13385
- "disposition": "externally-gated",
13386
- "target": "host-routes-failed-gate-over-cycle",
13419
+ "disposition": "closed",
13420
+ "target": null,
13387
13421
  "sources": [
13388
13422
  {
13389
13423
  "file": "RFCS/registers/0223-approval-reject-disposition.gaps.md",
13390
- "token": "G9"
13424
+ "token": "G10"
13391
13425
  }
13392
13426
  ]
13393
13427
  },
13394
13428
  {
13395
- "id": "openwop.gap.0223.10",
13429
+ "id": "openwop.gap.0223.11",
13396
13430
  "rfc": "0223",
13397
- "local": "G10",
13431
+ "local": "G11",
13398
13432
  "section": "§Conformance",
13399
- "surface": "`openwop.requirement.0223.timeout-rejects` and `0223.timeout-never-grants` had no certified witness, and have no MyndHyve witness: its `core.approvalGate` has no timeout configuration.",
13433
+ "surface": "*(Renumbered from a second `G9` on 2026-09-28: two rows shared the local ID, so `spec/v1/gaps.json` carried `openwop.gap.0223.9` twice.)* `openwop.requirement.0223.reject-loopback-reasks` (openwop #1697) has no positive witness on any host. The v2 reference host does not run cycles. MyndHyve runs request-changes loops over condition edges on a successful gate output, and does not route a failed node over `any_failed` (its Cloud Run executor has no `triggerRule` handling), so the row stays `inapplicable` there. openwop-app rejects cycles. The row exists and is negatively controlled: registering the fixture on a host that does not loop records `executed-fail`.",
13400
13434
  "witness": "unclassified",
13401
13435
  "requirementId": null,
13402
- "disposition": "closed",
13403
- "target": null,
13436
+ "disposition": "externally-gated",
13437
+ "target": "host-routes-failed-gate-over-cycle",
13404
13438
  "sources": [
13405
13439
  {
13406
13440
  "file": "RFCS/registers/0223-approval-reject-disposition.gaps.md",
13407
- "token": "G10"
13441
+ "token": "G11"
13408
13442
  }
13409
13443
  ]
13410
13444
  },
@@ -13442,6 +13476,40 @@
13442
13476
  }
13443
13477
  ]
13444
13478
  },
13479
+ {
13480
+ "id": "openwop.gap.0225.1",
13481
+ "rfc": "0225",
13482
+ "local": "G1",
13483
+ "section": "§Implementation notes",
13484
+ "surface": "No host advertises `retryPolicy.maxElapsedMs` yet, so the new row has no witness.",
13485
+ "witness": "unclassified",
13486
+ "requirementId": null,
13487
+ "disposition": "externally-gated",
13488
+ "target": "host-advertises-max-elapsed",
13489
+ "sources": [
13490
+ {
13491
+ "file": "RFCS/registers/0225-webhook-retry-max-elapsed.gaps.md",
13492
+ "token": "G1"
13493
+ }
13494
+ ]
13495
+ },
13496
+ {
13497
+ "id": "openwop.gap.0226.1",
13498
+ "rfc": "0226",
13499
+ "local": "G1",
13500
+ "section": "§Unresolved questions",
13501
+ "surface": "Whether `mcp_unreachable` (an MCP peer that cannot be reached) needs its own registered code.",
13502
+ "witness": "unclassified",
13503
+ "requirementId": null,
13504
+ "disposition": "closed",
13505
+ "target": null,
13506
+ "sources": [
13507
+ {
13508
+ "file": "RFCS/registers/0226-shared-run-failure-codes.gaps.md",
13509
+ "token": "G1"
13510
+ }
13511
+ ]
13512
+ },
13445
13513
  {
13446
13514
  "id": "openwop.gap.spec.a2a-integration.g1",
13447
13515
  "rfc": "0152",
@@ -4,11 +4,11 @@
4
4
 
5
5
  ## Why this exists
6
6
 
7
- Every error a v2 host returns is a row in one registry. A client routes on `error`, never on `message`. A code that is not registered is not a protocol error. The registry is the single source for the envelope schema, the HTTP status and retriability.
7
+ Every error a v2 host returns is a row in one registry. A client routes on `error`, never on `message`. A code that is not registered is not a protocol error.
8
8
 
9
9
  ## The registry
10
10
 
11
- `spec/v2/errors.json` holds one row per code, defined by `spec/v2/errors.schema.json`. It registers **108** codes. `schemas/v2/error-envelope.schema.json` is GENERATED from it and MUST NOT be edited by hand.
11
+ `spec/v2/errors.json` holds one row per code, defined by `spec/v2/errors.schema.json`. It registers **111** codes. `schemas/v2/error-envelope.schema.json` is GENERATED from it and MUST NOT be edited by hand.
12
12
 
13
13
  - A host MUST emit a registered code, or a vendor code, wherever it emits an error code: the `error` of every error response, and `error.code` on `run.failed`, `node.failed` and the snapshot's `error` (overview.md §0). A recorded event re-emitted by replay or `:fork` is carried as recorded ([replay.md](replay.md)).
14
14
  - A vendor code MUST match `^(?!openwop\.)[a-z][a-z0-9]*(-[a-z0-9]+)*\.[a-z][a-z0-9_]*$`, with its first segment an org registered in `spec/v2/declaration.json`. `openwop.` is reserved.
@@ -47,7 +47,7 @@ The idempotency mismatch code is `idempotency_key_mismatch` only ([idempotency.m
47
47
 
48
48
  ## Codes by HTTP status
49
49
 
50
- Generated from `spec/v2/errors.json` (108 codes; `retriable` and `statusSource` are in the registry).
50
+ Generated from `spec/v2/errors.json` (111 codes; `retriable` and `statusSource` are in the registry).
51
51
 
52
52
  Code | Status
53
53
  --- | ---
@@ -141,10 +141,12 @@ Code | Status
141
141
  `fork_point_invalid` | 422
142
142
  `loop_limit_exceeded` | 422
143
143
  `mcp_mrtr_rounds_exceeded` | 422
144
+ `node_config_invalid` | 422
144
145
  `pack_runtime_requirement_unmet` | 422
145
146
  `recursion_limit_exceeded` | 422
146
147
  `residency_unavailable` | 422
147
148
  `run_timeout` | 422
149
+ `sandbox_invocation_error` | 422
148
150
  `sandbox_memory_exceeded` | 422
149
151
  `sandbox_timeout` | 422
150
152
  `token_budget_exceeded` | 422
@@ -157,6 +159,7 @@ Code | Status
157
159
  `pack_load_failure` | 500
158
160
  `payload_unprojectable` | 500
159
161
  `credential_unavailable` | 501
162
+ `mcp_error` | 502
160
163
  `pack_registry_unreachable` | 503
161
164
  `runner_unavailable` | 503
162
165
 
@@ -124,7 +124,11 @@ A `reject` exits the suspend. The host MUST record `action: "reject"` and `decis
124
124
  - A rejected gate is a failed source. It MUST NOT satisfy an `all_success`, `any_success` or `none_failed` edge. The run continues past it only over an edge whose `triggerRule` admits a failed source (`all_complete` or `any_failed`).
125
125
  - When no such edge exists, the run MUST terminate `failed` with `run.failed.error.code` `approval_rejected` and `failedNodeId` naming the gate.
126
126
  - The gate resolves rejected on one eligible `reject` under `single-veto`, or when rejects exceed half of `requiredApprovals` under `majority`. A vote that does not decide the gate MUST NOT emit `interrupt.resolved`.
127
- - When a non-zero `timeoutMs` elapses with no resolution, the host MUST resolve the gate rejected, recording `action: "timeout"`, `decision: "rejected"` and `reason: "timeout"`, whatever `onTimeout` holds, and MUST apply the rules above. A timeout MUST NOT grant a gate. A host MUST treat `onTimeout: "approve"` as `reject` and SHOULD NOT emit it. `escalate` MAY notify a host-defined target but MUST NOT extend or grant the gate. A host MUST NOT accept `timeout` on a resume request.
127
+ - When a non-zero `timeoutMs` elapses with no resolution:
128
+ - the host MUST resolve the gate rejected, recording `action: "timeout"`, `decision: "rejected"` and `reason: "timeout"`, whatever `onTimeout` holds, and MUST apply the rules above;
129
+ - a timeout MUST NOT grant a gate. A host MUST treat `onTimeout: "approve"` as `reject` and SHOULD NOT emit it;
130
+ - `escalate` MAY notify a host-defined target but MUST NOT extend or grant the gate;
131
+ - a host MUST NOT accept `timeout` on a resume request.
128
132
  - On replay the failure MUST be derived from the recorded `interrupt.resolved`, never re-decided.
129
133
 
130
134
  ## Approver enforcement
@@ -9,7 +9,7 @@ A client registers a URL and an event filter once; the host POSTs matching event
9
9
 
10
10
  ## Surfaces
11
11
 
12
- A host that advertises `webhooks` ([capabilities.md](capabilities.md)) serves `registerWebhook` (`POST /webhooks`) and `unregisterWebhook` (`DELETE /webhooks/{webhookId}`) from `api/v2/openapi.yaml`. The facet (`spec/v2/facets/webhooks.schema.json`) is `{ signatureAlgorithms[] }`, which MUST list `"v1"`.
12
+ A host that advertises `webhooks` ([capabilities.md](capabilities.md)) serves `registerWebhook` (`POST /webhooks`) and `unregisterWebhook` (`DELETE /webhooks/{webhookId}`) from `api/v2/openapi.yaml`. The facet (`spec/v2/facets/webhooks.schema.json`) carries `signatureAlgorithms[]`, which MUST list `"v1"`.
13
13
 
14
14
  | Operation | Request | Response |
15
15
  | --- | --- | --- |
@@ -77,7 +77,7 @@ A subscriber MUST reject an unrecognized `OpenWOP-Signature-Algorithm` value, an
77
77
 
78
78
  Durable delivery is an obligation of the `webhooks` surface ([security-defaults.md](security-defaults.md)). A host MUST:
79
79
 
80
- - retry a failed attempt per its advertised `retryPolicy` (`maxAttempts`, `backoff ∈ none | fixed | exponential`) with backoff between attempts;
80
+ - retry a failed attempt per its advertised `retryPolicy` (`maxAttempts`, `backoff ∈ none | fixed | exponential`, optional `maxElapsedMs`) with backoff between attempts, and when it advertises `maxElapsedMs`, dead-letter an exhausted delivery within that many milliseconds of the first attempt's start;
81
81
  - route a delivery whose retries are exhausted to the dead-letter sink (§Dead letters), rather than drop it;
82
82
  - deliver each matching event at least once; a receiver MAY observe the same event more than once;
83
83
  - not make the start of an attempt to one subscription wait for an attempt to a *different* subscription to finish (answered, failed, or timed out) (§Delivery isolation);
@@ -108,7 +108,7 @@ This sink is the delivery sink; the `deadLetter` family is the run sink and is a
108
108
 
109
109
  ## Replay
110
110
 
111
- A host MUST NOT deliver events a `replay` fork re-emits as fixed history; replay-ness is read from the run, never from the event type (replay.md). A `branch` fork's events are new facts and are delivered.
111
+ A `replay` fork's re-emitted history is never delivered ([replay.md](replay.md) §Suppression); a `branch` fork's events are.
112
112
 
113
113
  ## Egress
114
114
 
@@ -1821,8 +1821,8 @@
1821
1821
  "extensionName": "canvas",
1822
1822
  "witness": "claims-check",
1823
1823
  "maturity": {
1824
- "technical": "experimental",
1825
- "adoption": "single-witness"
1824
+ "technical": "stable",
1825
+ "adoption": "multi-witness"
1826
1826
  },
1827
1827
  "facets": [],
1828
1828
  "floorScenarios": [],
@@ -849,9 +849,39 @@
849
849
  "since": "2.43",
850
850
  "source": "RFC 0223; spec/v2/core/interrupt.md §Rejection"
851
851
  },
852
+ {
853
+ "code": "node_config_invalid",
854
+ "meaning": "A node's configuration is missing a required value or holds one the node cannot use, so the node failed.",
855
+ "httpStatus": 422,
856
+ "statusSource": "v2 decision",
857
+ "retriable": false,
858
+ "details": null,
859
+ "since": "2.44",
860
+ "source": "RFC 0226 §A (measured: openwop-app `invalid_config` ×13, MyndHyve `CONFIG_INVALID`)"
861
+ },
862
+ {
863
+ "code": "sandbox_invocation_error",
864
+ "meaning": "A pack node running in the sandbox threw an error outside the canonical sandbox catalog, so the node failed.",
865
+ "httpStatus": 422,
866
+ "statusSource": "v2 decision",
867
+ "retriable": false,
868
+ "details": null,
869
+ "since": "2.44",
870
+ "source": "RFC 0226 §A; spec/v1/host-sample-test-seams.md:340 already names it (the suite's sandbox probe emits it)"
871
+ },
872
+ {
873
+ "code": "mcp_error",
874
+ "meaning": "An MCP server the host called answered with a JSON-RPC error, so the node failed.",
875
+ "httpStatus": 502,
876
+ "statusSource": "v2 decision",
877
+ "retriable": false,
878
+ "details": null,
879
+ "since": "2.44",
880
+ "source": "RFC 0226 §A (a v2 decision: the host acted as a gateway to the MCP peer, whose answer was an error)"
881
+ },
852
882
  {
853
883
  "code": "capability_not_provided",
854
- "meaning": "The host does not provide a capability the request or pack requires.",
884
+ "meaning": "The host does not provide a capability the request or pack requires, including a node type it cannot execute.",
855
885
  "httpStatus": 422,
856
886
  "statusSource": "v1 convention",
857
887
  "retriable": false,
@@ -1,14 +1,14 @@
1
1
  # `canvas` extension
2
2
 
3
- > **Status: Draft.**
3
+ > **Status: Stable.**
4
4
 
5
5
  `canvas` names a host service that reads and writes canvas state. It is a discovery-only reservation: v2 defines no portable operations or payload contract for it.
6
6
 
7
7
  | Field | Value |
8
8
  | --- | --- |
9
9
  | **witness:** | `claims-check` |
10
- | **technical:** | `experimental` |
11
- | **adoption:** | `single-witness` |
10
+ | **technical:** | `stable` |
11
+ | **adoption:** | `multi-witness` |
12
12
  | **peer-dependency id** | `canvas` |
13
13
  | **advertised as** | `extensions.<org>.canvas` |
14
14
  | **declared facets** | none defined |
@@ -32,7 +32,7 @@ For each coding listed in `contentEncodings`, a request that names only that cod
32
32
 
33
33
  A client MUST NOT infer anything else from the record.
34
34
 
35
- The claim describes what a client receives at the host's advertised base URL, so a CDN or proxy in front of the host is part of it. A front that drops or rewrites a coding the origin produces makes the claim false. This is the most common way it goes wrong in deployment: one host's CDN served `zstd` as identity while its origin produced `zstd`. A host behind a front should list only the codings measured through that front.
35
+ The claim describes what a client receives at the host's advertised base URL, so a CDN or proxy in front of the host is part of it. A front that drops or rewrites a coding the origin produces makes the claim false. A host behind a front should list only the codings measured through that front.
36
36
 
37
37
  ## Conformance
38
38
 
@@ -35,6 +35,11 @@
35
35
  "fixed",
36
36
  "exponential"
37
37
  ]
38
+ },
39
+ "maxElapsedMs": {
40
+ "type": "integer",
41
+ "minimum": 1,
42
+ "description": "RFC 0225 \u2014 OPTIONAL. The longest, in ms, from a delivery's first attempt starting to its routing to the dead-letter sink when every attempt fails. A host advertising it MUST dead-letter an exhausted delivery within that bound (webhooks.md \u00a7Delivery)."
38
43
  }
39
44
  },
40
45
  "description": "spec/v2/core/webhooks.md \u00a7Delivery \u2014 the policy a host retries a failed attempt under. The webhooks family carries it at v2; `triggerBridge.retryPolicy` is the v1 carrier and stays through the overlap."
@@ -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.43.2",
4
- "corpusTag": "v2.43.2",
3
+ "version": "2.44.0",
4
+ "corpusTag": "v2.44.0",
5
5
  "updated": "2026-09-28"
6
6
  }
@@ -4,7 +4,7 @@
4
4
  "schemas/v2/**/*.json",
5
5
  "spec/v2/path-manifest.json"
6
6
  ],
7
- "release": "2.43.2",
7
+ "release": "2.44.0",
8
8
  "kinds": {
9
9
  "union": [
10
10
  "channel",
@@ -18,7 +18,7 @@
18
18
  "type"
19
19
  ]
20
20
  },
21
- "count": 8552,
21
+ "count": 8557,
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\"",
@@ -3521,9 +3521,11 @@
3521
3521
  "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy/backoff|enum-member|\"none\"",
3522
3522
  "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy/backoff|type|string",
3523
3523
  "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy/maxAttempts|type|integer",
3524
+ "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy/maxElapsedMs|type|integer",
3524
3525
  "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy|closed|true",
3525
3526
  "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy|property|backoff",
3526
3527
  "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy|property|maxAttempts",
3528
+ "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy|property|maxElapsedMs",
3527
3529
  "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy|required|backoff",
3528
3530
  "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy|required|maxAttempts",
3529
3531
  "schemas/v2/capabilities.schema.json#/webhooks/retryPolicy|type|object",
@@ -5365,8 +5367,10 @@
5365
5367
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"interrupt_token_invalid\"",
5366
5368
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"key_revoked\"",
5367
5369
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"loop_limit_exceeded\"",
5370
+ "schemas/v2/error-envelope.schema.json#/error|enum-member|\"mcp_error\"",
5368
5371
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"mcp_mrtr_rounds_exceeded\"",
5369
5372
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"mock_provider_forbidden\"",
5373
+ "schemas/v2/error-envelope.schema.json#/error|enum-member|\"node_config_invalid\"",
5370
5374
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"not_found\"",
5371
5375
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"oauth_provider_unsupported\"",
5372
5376
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"oauth_scope_unsupported\"",
@@ -5405,6 +5409,7 @@
5405
5409
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"runner_unavailable\"",
5406
5410
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"sandbox_capability_denied\"",
5407
5411
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"sandbox_escape_attempt\"",
5412
+ "schemas/v2/error-envelope.schema.json#/error|enum-member|\"sandbox_invocation_error\"",
5408
5413
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"sandbox_memory_exceeded\"",
5409
5414
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"sandbox_timeout\"",
5410
5415
  "schemas/v2/error-envelope.schema.json#/error|enum-member|\"schedule_horizon_exceeded\"",