@openwop/spec-artifacts 2.8.0 → 2.8.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 +30 -29
- package/api/seams-v2.yaml +1 -1
- package/api/v2/asyncapi.yaml +1 -1
- package/api/v2/openapi.yaml +1 -1
- package/package.json +1 -1
- package/schemas/v2/capabilities.schema.json +1 -11
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v2/README.md +1 -1
- package/spec/v2/declaration.json +3 -2
- package/spec/v2/ext/README.md +25 -5
- package/spec/v2/ext/a2uiSurface/README.md +4 -2
- package/spec/v2/ext/brand/README.md +4 -2
- package/spec/v2/ext/canvas/README.md +4 -2
- package/spec/v2/ext/chat/README.md +4 -2
- package/spec/v2/ext/coordination/README.md +4 -2
- package/spec/v2/ext/dataIntegration/README.md +4 -2
- package/spec/v2/ext/entities/README.md +4 -2
- package/spec/v2/ext/grpc-transport/README.md +2 -2
- package/spec/v2/ext/kanban/README.md +4 -2
- package/spec/v2/ext/knowledge/README.md +4 -2
- package/spec/v2/ext/launchStudio/README.md +4 -2
- package/spec/v2/ext/messaging/README.md +4 -2
- package/spec/v2/ext/portability/README.md +3 -2
- package/spec/v2/ext/provider-idempotency/README.md +1 -1
- package/spec/v2/ext/restTransport/README.md +4 -2
- package/spec/v2/ext/sandbox-runtime-notes/README.md +1 -1
- package/spec/v2/ext/webResearch/README.md +4 -2
- package/spec/v2/facets/workflowChainPacks.schema.json +18 -0
- package/spec/v2/release.json +2 -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.8.
|
|
5
|
-
"corpusTag": "v2.8.
|
|
4
|
+
"version": "2.8.2",
|
|
5
|
+
"corpusTag": "v2.8.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
10
|
"api/openapi.yaml": "39081c59fb696159806b0f2f9a42e7e9ff830d622fcf2ad4159b21357580a955",
|
|
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": "296a5283690fc422d525815abc780eacd3b6ab7c0fe04e3d4ea72f460f9fabb6",
|
|
13
|
+
"api/v2/asyncapi.yaml": "21407d943fd706afe9e5c4b5703e453fbd86a8594428014d49b71eb35b937d7c",
|
|
14
|
+
"api/v2/openapi.yaml": "704e81cd815e8aab818e0dd7dba1b744499e3e9d1f2ad4d7d528161d34a671ae",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"schemas/v2/artifact-type-pack-manifest.schema.json": "85630d1b760d0b41cf5a6fad2acfada39abaf7f0befd95cc4334e1e883e9615d",
|
|
116
116
|
"schemas/v2/audit-verify-result.schema.json": "a748dfadb5155adfde8a91045e76b0db6695005fe559035d71670fdd55edb3ba",
|
|
117
117
|
"schemas/v2/budget-policy.schema.json": "c7449daeb6e1d95e7a047b8c2814d3d54748697c27046972834874867d9b5f4c",
|
|
118
|
-
"schemas/v2/capabilities.schema.json": "
|
|
118
|
+
"schemas/v2/capabilities.schema.json": "4329d6a9a1a857afa327cc3428433a86aabf6c3cf4fde230855b29443992f693",
|
|
119
119
|
"schemas/v2/certification-bundle.schema.json": "0bcf8f297266505ca39d30eea8100e3c0fb048f2651717fd746da8129fcb7920",
|
|
120
120
|
"schemas/v2/channel-presence-payload.schema.json": "1c20ad810cb311d47aa0b95d928490826b2468fd161f884cd29e867053e6782f",
|
|
121
121
|
"schemas/v2/channel-written-payload.schema.json": "ccecff3c71a3275ad8db035ac0e04db25e6f8d23cf091ddbcd5a60d1be1cbb6b",
|
|
@@ -201,7 +201,7 @@
|
|
|
201
201
|
"schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
|
|
202
202
|
"spec/v1/alias-detectors.json": "e90916db12d2297e2e560b2d54d2c4702d6cb3bef7179a575844687a7ec17262",
|
|
203
203
|
"spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
|
|
204
|
-
"spec/v1/core-standard-manifest.json": "
|
|
204
|
+
"spec/v1/core-standard-manifest.json": "c6d57dec530f5b37f0f1db857db923d1cbd88606cf8ae6b6cbebdb54e35aa950",
|
|
205
205
|
"spec/v1/deprecations.json": "c81c8f71460936c8d489d8270477c7661cf4a5d7b7bad86c98899750b5656027",
|
|
206
206
|
"spec/v1/deprecations.schema.json": "18c87e78bedc210431f795ae44c5b5d202f2f3317850d5cf86867d4f1fa1cdfb",
|
|
207
207
|
"spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
"spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
|
|
214
214
|
"spec/v1/operation-path-manifest.json": "5f5f4e3842669371730ebbd1aace3fb794192615f0018dc144f484ba5db82ac3",
|
|
215
215
|
"spec/v1/spec-gaps.json": "eb3bfcb9c7d05c9a6845d4a40ec9493cfaa5a671932daf1af561310136fdabe8",
|
|
216
|
-
"spec/v2/README.md": "
|
|
216
|
+
"spec/v2/README.md": "8dbfc17b10f373dba95bdd2e8fec0580f35b380a834d304be3e24e7498170185",
|
|
217
217
|
"spec/v2/core/capabilities.md": "9e81d578e177f9875499677d22207df909e59e3d4ddaa3d90f18a7035cfb31f4",
|
|
218
218
|
"spec/v2/core/conformance.md": "a451c0a2ba79d93c55e540ccef480eba7de9602d59bbb03eead05daafde0beac",
|
|
219
219
|
"spec/v2/core/connection-packs.md": "2e53c92476f68304139faf0c370874dc27bbba56a127a07e0906ff06edbb8ff1",
|
|
@@ -234,30 +234,30 @@
|
|
|
234
234
|
"spec/v2/core/versioning.md": "27b88cde88f9060567ef7e46f4897b6be8892ade9f4a46c2ab16e314c515eabd",
|
|
235
235
|
"spec/v2/core/webhooks.md": "e08a736fd0bfdc79f5c2309c66f53caf96fac8d9954e0a184c2229de4ce286e9",
|
|
236
236
|
"spec/v2/core/workflow-chain-packs.md": "26bb65721f826285b7d90c3cb62fa7e9fb2414c1bc6e0fd25b33209168c3102e",
|
|
237
|
-
"spec/v2/declaration.json": "
|
|
237
|
+
"spec/v2/declaration.json": "facd8b8466ea86b61325670450a1205c672e844e0dbcd9d9392ef0eb2021cca3",
|
|
238
238
|
"spec/v2/declaration.schema.json": "c86e3083fb9789c1958ecb4576cc6f71aa90e6f339521139238543ed08211dd4",
|
|
239
239
|
"spec/v2/errors.json": "4ff032033f02d7e3fb4204581456408ba5e7642b438c1f349bbd1c264e63e419",
|
|
240
240
|
"spec/v2/event-codemap.json": "37869a03cdfd8758b57e6f350641a6ebbd383231cebda51f5473ad85f94ab74c",
|
|
241
241
|
"spec/v2/event-codemap.schema.json": "b173f2a9bcc0bf9b62a474ce3b91e1431d597e64fd1560fc58662cd8606eaf9c",
|
|
242
|
-
"spec/v2/ext/README.md": "
|
|
243
|
-
"spec/v2/ext/a2uiSurface/README.md": "
|
|
244
|
-
"spec/v2/ext/brand/README.md": "
|
|
245
|
-
"spec/v2/ext/canvas/README.md": "
|
|
246
|
-
"spec/v2/ext/chat/README.md": "
|
|
247
|
-
"spec/v2/ext/coordination/README.md": "
|
|
248
|
-
"spec/v2/ext/dataIntegration/README.md": "
|
|
249
|
-
"spec/v2/ext/entities/README.md": "
|
|
250
|
-
"spec/v2/ext/grpc-transport/README.md": "
|
|
251
|
-
"spec/v2/ext/kanban/README.md": "
|
|
252
|
-
"spec/v2/ext/knowledge/README.md": "
|
|
253
|
-
"spec/v2/ext/launchStudio/README.md": "
|
|
254
|
-
"spec/v2/ext/messaging/README.md": "
|
|
255
|
-
"spec/v2/ext/portability/README.md": "
|
|
256
|
-
"spec/v2/ext/provider-idempotency/README.md": "
|
|
242
|
+
"spec/v2/ext/README.md": "ff91a503e0795e1b898e37d9e445add2d5975529723f7b32b2599b60a24c1ae3",
|
|
243
|
+
"spec/v2/ext/a2uiSurface/README.md": "742e3774cf62a857d0eeb2fcd27f07a0aa2ed2cddcec2bbb3b22a13f05a78bbf",
|
|
244
|
+
"spec/v2/ext/brand/README.md": "4eca8c070971f249d2191a31370d8e4f383d6a5399dafd7ba1831ae834c4e693",
|
|
245
|
+
"spec/v2/ext/canvas/README.md": "cdc1941d1425b53a5b10aa9fc01aacc4e55d0418f4690b2178e1682389d0a985",
|
|
246
|
+
"spec/v2/ext/chat/README.md": "4b64ddd875ef44794c8c4e2adfec9e409818b35ee7d16841f575a6022c97c11c",
|
|
247
|
+
"spec/v2/ext/coordination/README.md": "76c280ca561da9d827a56701868ee7a3064946c1931179d62160e196bd215526",
|
|
248
|
+
"spec/v2/ext/dataIntegration/README.md": "976f18de6f2b54ed9643b4b325daa1caff1ce71f92775a57cf859d4d67040d14",
|
|
249
|
+
"spec/v2/ext/entities/README.md": "fcdd4929461d394755d5dcbe6de3af74599abcf68ca29700debbf86f0d76b83c",
|
|
250
|
+
"spec/v2/ext/grpc-transport/README.md": "727a097a8e17f647e566d96c3e178b676acdba0c7a8d592b5c074799bc3782e1",
|
|
251
|
+
"spec/v2/ext/kanban/README.md": "6920ef8c302ee30c09cdc5fe6a705ccc0cc10724227f7e2617c13734bee3595b",
|
|
252
|
+
"spec/v2/ext/knowledge/README.md": "50d5d50a72f5cdd90692fba69c3b2e5674f931dcbf5efabb56b78ed66da00892",
|
|
253
|
+
"spec/v2/ext/launchStudio/README.md": "8085ffff8bee039b04f215752e04a5730f7fc0324528721f097cfeaf4dd1b52a",
|
|
254
|
+
"spec/v2/ext/messaging/README.md": "4db10394153e9639ff639f2a39951e69737ed02084a45b99d7ee9883052303b9",
|
|
255
|
+
"spec/v2/ext/portability/README.md": "c1a36eaf4016cc526bde6536fcb280eca34916504834610a3fb5ac87cafed3fa",
|
|
256
|
+
"spec/v2/ext/provider-idempotency/README.md": "590fa380be4719b949570306d5395fc5ac131e8e4c118f7866fe6ad2a5d88129",
|
|
257
257
|
"spec/v2/ext/provider-idempotency/registry.json": "5b5fecad604fb4ab38da39f5abe697a4e57b05406c398f8afeb377331b2bd965",
|
|
258
|
-
"spec/v2/ext/restTransport/README.md": "
|
|
259
|
-
"spec/v2/ext/sandbox-runtime-notes/README.md": "
|
|
260
|
-
"spec/v2/ext/webResearch/README.md": "
|
|
258
|
+
"spec/v2/ext/restTransport/README.md": "ad1466dac8b04796f60ca3b5419d66b31405215dfb54327cccfa7af1a3e1159d",
|
|
259
|
+
"spec/v2/ext/sandbox-runtime-notes/README.md": "f7d591670415138e3889b7841e33e6964b166929f5aa1b09a95a7f8df44c40f9",
|
|
260
|
+
"spec/v2/ext/webResearch/README.md": "e74fbe55a8c00040f1f87b5448259ee4eb3a26769d607f7d2dd9a671a2e2832b",
|
|
261
261
|
"spec/v2/facets/a2a.schema.json": "6b0bceddec6d18d5115aa7d04720a0cc1ad7a9a0a78f53c208b34becaba5d16e",
|
|
262
262
|
"spec/v2/facets/aiProviders.schema.json": "0c76e48e5d487b5be3b3ab1f6512a4e206c840ee5087d1336c7d7e2853b58d03",
|
|
263
263
|
"spec/v2/facets/auth.schema.json": "73440c944ad12c41aab0618aeb799a90a0b59e97fc685527f248afb7d015381a",
|
|
@@ -268,12 +268,13 @@
|
|
|
268
268
|
"spec/v2/facets/runList.schema.json": "6223e1baaebbb9f4faa71bfe968f8d22b4aa88046d0e43e8d5f56409e7f86e90",
|
|
269
269
|
"spec/v2/facets/sandbox.schema.json": "e75f54486d387b2d089791aa93b5093cd1450f1920753a0f97fc23acdfe978ed",
|
|
270
270
|
"spec/v2/facets/webhooks.schema.json": "4bf3f8eb3161a43910efac4c44ccaf9567060c9da52d4cf09bcf3888d1b92192",
|
|
271
|
+
"spec/v2/facets/workflowChainPacks.schema.json": "3c8786b91afb7a4477cb082f1b914438b901ce1c16512d001f3c83557d859687",
|
|
271
272
|
"spec/v2/id-field-bindings.json": "e73c06f3055ad30173507ac817a458b96362c8f26209ba105c53653292cf63d3",
|
|
272
273
|
"spec/v2/path-manifest.json": "c123c9fd77dc1b3f9c2e9346ace80cdae007e6511138894956abda01e61ec1c6",
|
|
273
274
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
274
275
|
"spec/v2/profiles.json": "0636f19fceae625390003a347e70ef4797d84766b5c24ce8a02cea52aadebca4",
|
|
275
|
-
"spec/v2/release.json": "
|
|
276
|
+
"spec/v2/release.json": "0bcbacf7697213dced197b2bc0cf8ee0af61786db4518eb39aad9524c1a74d80",
|
|
276
277
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624"
|
|
277
278
|
},
|
|
278
|
-
"corpusCommit": "
|
|
279
|
+
"corpusCommit": "ae9a19cf3e20a12f2d0ab08eb194f191c1609613"
|
|
279
280
|
}
|
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.8.
|
|
4
|
+
version: 2.8.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.8.
|
|
4
|
+
version: 2.8.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.8.
|
|
4
|
+
version: 2.8.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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/spec-artifacts",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.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": {
|
|
@@ -6458,16 +6458,6 @@
|
|
|
6458
6458
|
"negative-existence"
|
|
6459
6459
|
]
|
|
6460
6460
|
},
|
|
6461
|
-
"deferredParameters": {
|
|
6462
|
-
"type": "object",
|
|
6463
|
-
"description": "RFC 0124 (WCP4, `Active`). OPTIONAL. When `supported: true`, the host offers a capability-gated deferred-parameter expansion mode in ADDITION to expansion-time substitution (which remains the default and floor): at drop time it materializes the chain's `parameters` into top-level workflow `variables[]` (author value as `defaultValue`) and rewrites `{{params.<name>}}` into a spec'd runtime binding (PromptTemplate `{{varName}}` with `source:\"variable\"`, or a variable-sourced PortValue), so chain parameters stay overridable per run via `configurable` while the persisted definition keeps ZERO `{{params.*}}` tokens. A parameter marked `x-openwop-sensitive` MUST be deferred or the expansion fail-closed (`sensitive_param_not_deferrable`, 422) — never frozen into persisted `config`. Omission (or `supported:false`) signals the host does NOT offer deferred mode. No host may advertise `supported:true` until RFC 0124 is `Accepted`. See `workflow-chain-packs.md` §\"Deferred-parameter expansion\".",
|
|
6464
|
-
"properties": {},
|
|
6465
|
-
"additionalProperties": false
|
|
6466
|
-
},
|
|
6467
|
-
"hostExpansionSeam": {
|
|
6468
|
-
"type": "boolean",
|
|
6469
|
-
"description": "RFC 0013 erratum (2026-07-05). OPTIONAL. A **conformance-only test seam** advertisement (category: test harness, cf. `observability.testSeams` — NOT a product capability): when `true`, the host serves `POST /v1/host/sample/workflow-chain:expand` returning the `vendor.openwop.workflow-chain-sample` v1.0.0 expansion that `conformance/src/scenarios/workflow-chain-host-expansion.test.ts` asserts against. Absent/`false` ⇒ that live-host expansion scenario soft-skips; the semantic `workflowChainPacks.supported` claim is witnessed by the server-free `workflow-chain-expansion.test.ts` legs. This flag is DISTINCT from `deferredParameters` (RFC 0124), which is witnessed through its own `POST /v1/host/sample/chain/deferred-expand` seam — so a host MAY advertise `supported` / `deferredParameters.supported` without standing up the RFC 0013 sample-pack seam it was never handed a published fixture for. Advertising `supported:true` no longer conscripts a host into the RFC 0013 host-expansion scenario."
|
|
6470
|
-
},
|
|
6471
6461
|
"subChains": {
|
|
6472
6462
|
"type": "object",
|
|
6473
6463
|
"description": "RFC 0133 (workflow-chain composition, `Accepted`). OPTIONAL. When `supported: true`, the host's `POST …/workflows/from-chain` implements RUNTIME sub-chain composition per `workflow-chain-packs.md` §\"Sub-chain composition (RFC 0133)\": for each `config.subChainRef` reachable from a parent chain, it resolves the referenced chain (sibling or external), recursively expands + co-registers it as its own owned workflow (deterministic TENANT-SCOPED id from `(tenantId, childChainId, version)` — two tenants never collide on the global registry, a shared child registers once across parents in a tenant, a repeat instantiation converges), rewrites the referencing node's `subChainRef` → the minted child `config.workflowId`, and dispatches the child as a child run (`core.subWorkflow` / `core.dispatch` child-run); the `from-chain` response carries `{ workflowId, subChainWorkflowIds[], nodeCount }`. Bounded by a cycle check (`sub_chain_cycle`) + a depth cap (`sub_chain_max_depth_exceeded`). A host that does NOT advertise this block MUST refuse a `subChains`-bearing chain at author/instantiate time with `sub_chain_unsupported` (422) — it never silently flattens. `producedVariables` (RFC 0133 §2) needs NO flag: it is pure variable emission under the base `workflowChainPacks.supported`. Conformance scenarios `chain-subchain-fanout.test.ts` + `chain-subchain-unsupported-refused.test.ts` gate on this flag; the server-free `chain-subchain-sibling` / `chain-subchain-cycle-rejected` / `chain-produced-var-roundtrip` legs run unconditionally against the reference library.",
|
|
@@ -6518,7 +6508,7 @@
|
|
|
6518
6508
|
}
|
|
6519
6509
|
],
|
|
6520
6510
|
"description": "core/capabilities.md#workflowChainPacks — witness: witnessable-gated; maturity experimental/none; RFC 0013",
|
|
6521
|
-
"x-openwop-
|
|
6511
|
+
"x-openwop-facets-from": "spec/v2/facets/workflowChainPacks.schema.json"
|
|
6522
6512
|
},
|
|
6523
6513
|
"packs": {
|
|
6524
6514
|
"type": "object",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"provenance": {
|
|
5
5
|
"suite": {
|
|
6
6
|
"package": "@openwop/openwop-conformance",
|
|
7
|
-
"version": "2.8.
|
|
7
|
+
"version": "2.8.2"
|
|
8
8
|
},
|
|
9
9
|
"note": "Derived from the corpus at generation time. Regenerate with --write; verify with --check."
|
|
10
10
|
},
|
|
@@ -419,5 +419,5 @@
|
|
|
419
419
|
"$id": "https://openwop.dev/spec/v1/workspace-file.schema.json"
|
|
420
420
|
}
|
|
421
421
|
],
|
|
422
|
-
"digest": "
|
|
422
|
+
"digest": "2d5e2eb843ab9d9c6affb0d9219cfd08e43e4c7bd0a091617613d04d43e993ee"
|
|
423
423
|
}
|
package/spec/v2/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenWOP v2 specification
|
|
2
2
|
|
|
3
|
-
> **Status: released · corpus
|
|
3
|
+
> **Status: released · current corpus.** The authoritative version is
|
|
4
4
|
> [`release.json`](./release.json). Target v2 for new implementations.
|
|
5
5
|
|
|
6
6
|
OpenWOP v2 is the current protocol major. Its contract consists of this
|
package/spec/v2/declaration.json
CHANGED
|
@@ -1370,10 +1370,11 @@
|
|
|
1370
1370
|
"adoption": "none"
|
|
1371
1371
|
},
|
|
1372
1372
|
"facets": [
|
|
1373
|
-
"deferredParameters",
|
|
1374
|
-
"hostExpansionSeam",
|
|
1375
1373
|
"subChains"
|
|
1376
1374
|
],
|
|
1375
|
+
"normativeText": [
|
|
1376
|
+
"spec/v2/core/workflow-chain-packs.md"
|
|
1377
|
+
],
|
|
1377
1378
|
"floorScenarios": [],
|
|
1378
1379
|
"requirementIds": [],
|
|
1379
1380
|
"owningRfc": "0013"
|
package/spec/v2/ext/README.md
CHANGED
|
@@ -15,11 +15,31 @@ discovery claim.
|
|
|
15
15
|
`scripts/check-ext-status-coherence.mjs` checks these labels against committed
|
|
16
16
|
conformance evidence.
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
### `Draft`
|
|
19
|
+
|
|
20
|
+
Declared, but not supported by qualifying interoperability evidence.
|
|
21
|
+
|
|
22
|
+
**Predicate:** The family is declared in `spec/v2/declaration.json` with
|
|
23
|
+
`anchor: ext`.
|
|
24
|
+
|
|
25
|
+
### `Stable`
|
|
26
|
+
|
|
27
|
+
Witnessed. At least one host at evidence tier 2 or better serves it, and a
|
|
28
|
+
**certified** bundle in `evidence/v2-host-bundles/` records the family's
|
|
29
|
+
declared witness class as satisfied.
|
|
30
|
+
|
|
31
|
+
**Predicate:** Every `Stable` document's family has at least one
|
|
32
|
+
`executed-pass` row under its witness id in a bundle whose relevant profile
|
|
33
|
+
claim is `certified: true`, and the seven-day comment window has run since the
|
|
34
|
+
promotion PR.
|
|
35
|
+
|
|
36
|
+
### `Retired`
|
|
37
|
+
|
|
38
|
+
Withdrawn. The family is removed from the declaration, and the document names
|
|
39
|
+
its replacement or the RFC that retired it.
|
|
40
|
+
|
|
41
|
+
**Predicate:** The family is absent from the declaration; the document carries
|
|
42
|
+
a `Superseded by:` or `Retired by:` line.
|
|
23
43
|
|
|
24
44
|
The gate enforces both directions:
|
|
25
45
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `a2uiSurface` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `a2uiSurface` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/capabilities.md)
|
|
26
|
+
(`a2uiSurface`), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `brand` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `brand` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostbrand)
|
|
26
|
+
(§host.brand), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `canvas` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `canvas` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostcanvas)
|
|
26
|
+
(§host.canvas), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `chat` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `chat` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostchat)
|
|
26
|
+
(§host.chat), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `coordination` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `coordination` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostcoordination)
|
|
26
|
+
(§host.coordination), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `dataIntegration` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `dataIntegration` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostdataintegration)
|
|
26
|
+
(§host.dataIntegration), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `entities` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `entities` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostentities)
|
|
26
|
+
(§host.entities), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
| **advertised as** | not advertisable; v2 has no `grpc` discovery record |
|
|
12
12
|
| **owning RFC** | RFC 0175 (demotion); RFC 0094 §H (v1 text) |
|
|
13
13
|
|
|
14
|
-
The [v1 `openwop.proto`](https://github.com/openwop/openwop/blob/
|
|
14
|
+
The [v1 `openwop.proto`](https://github.com/openwop/openwop/blob/main/spec/v2/ext/grpc-transport/openwop.proto)
|
|
15
15
|
is retained as a sketch and uses `package openwop.v1`; it is not a v2 contract.
|
|
16
16
|
v2 has no normative gRPC transport because the conformance suite has no gRPC
|
|
17
17
|
client or behavioral witness. The v1 contract remains in
|
|
18
|
-
[`spec/v1/grpc-transport.md`](https://github.com/openwop/openwop/blob/
|
|
18
|
+
[`spec/v1/grpc-transport.md`](https://github.com/openwop/openwop/blob/main/spec/v1/grpc-transport.md).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `kanban` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `kanban` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostkanban)
|
|
26
|
+
(§host.kanban), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `knowledge` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `knowledge` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostknowledge)
|
|
26
|
+
(§host.knowledge), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `launchStudio` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `launchStudio` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostlaunchstudio)
|
|
26
|
+
(§host.launchStudio), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `messaging` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `messaging` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostmessaging)
|
|
26
|
+
(§host.messaging), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
| **technical:** | `experimental` |
|
|
10
10
|
| **adoption:** | `none` |
|
|
11
11
|
| **advertised as** | `extensions.<org>.portability` |
|
|
12
|
-
| **owning RFC** | RFC 0168
|
|
12
|
+
| **owning RFC** | RFC 0168 §C.1; RFC 0174 §E.2; RFCs 0086 and 0087 (v1 text) |
|
|
13
13
|
|
|
14
14
|
The v2 core API does not define goals, export, or import operations. The
|
|
15
15
|
[`export-bundle` schema](../../../../schemas/v2/export-bundle.schema.json) records
|
|
@@ -17,4 +17,5 @@ the proposed bundle shape, but no portable transport or behavioral witness is
|
|
|
17
17
|
defined. A host MAY expose an organization-specific portability extension; a
|
|
18
18
|
client MUST NOT assume it is compatible with another host's extension.
|
|
19
19
|
|
|
20
|
-
The v1 background is in
|
|
20
|
+
The v1 background is in
|
|
21
|
+
[`spec/v1/portability.md`](https://github.com/openwop/openwop/blob/main/spec/v1/portability.md).
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
| **witness:** | `witnessable-gated` |
|
|
9
9
|
| **technical:** | `experimental` |
|
|
10
10
|
| **adoption:** | `none` |
|
|
11
|
-
| **advertised as** | not
|
|
11
|
+
| **advertised as** | not applicable; supporting registry only |
|
|
12
12
|
| **owning RFC** | RFC 0173 §C.2, RFC 0150 G3 |
|
|
13
13
|
|
|
14
14
|
[`registry.json`](./registry.json) lists providers known to expose a natural
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `restTransport` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `restTransport` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/capabilities.md)
|
|
26
|
+
(`restTransport`), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
| **technical:** | `experimental` |
|
|
10
10
|
| **adoption:** | `none` |
|
|
11
11
|
| **advertised as** | not advertisable (notes, not a surface) |
|
|
12
|
-
| **owning RFC** | RFC 0173 §D
|
|
12
|
+
| **owning RFC** | RFC 0173 §D; RFC 0035 (superseded) |
|
|
13
13
|
|
|
14
14
|
RFC 0035's `node:vm` demonstrator is retained only as implementation history;
|
|
15
15
|
`node:vm` is not an isolation model. The v2 contract is in
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `webResearch` extension
|
|
2
2
|
|
|
3
3
|
> **Status: Draft · v2 extension.** Discovery-only reservation; no portable
|
|
4
|
-
> operations or payload contract is defined in v2.
|
|
4
|
+
> operations or payload contract is defined in the current v2 corpus.
|
|
5
5
|
|
|
6
6
|
| Field | Value |
|
|
7
7
|
| --- | --- |
|
|
@@ -21,7 +21,9 @@ operations, payloads, or authorization semantics from its presence. A pack may
|
|
|
21
21
|
name `webResearch` as a dependency only when the host and pack share
|
|
22
22
|
an out-of-band definition of that dependency.
|
|
23
23
|
|
|
24
|
-
The v1 description,
|
|
24
|
+
The v1 description,
|
|
25
|
+
[`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/main/spec/v1/host-capabilities.md#hostwebresearch)
|
|
26
|
+
(§host.webResearch), is useful for migration but is not a
|
|
25
27
|
standalone v2 interoperability contract. A future revision can replace this
|
|
26
28
|
boundary with normative behavior, schemas, and a behavioral witness.
|
|
27
29
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "RFC 0013 \u00a7Composition depth \u2014 the v2 facet set for workflowChainPacks. Two v1-seeded facets are NOT carried into v2: `deferredParameters` (RFC 0124, still `Active`; spec/v2/core/workflow-chain-packs.md \u00a7Parameter substitution states the portable per-run deferral \"is a named v2.x additive RFC and is not part of v2.0\", so binding it as an advertisable v2 facet let a host truthfully advertise a capability v2.0 does not define) and `hostExpansionSeam` (a self-described conformance-only test seam on POST /v1/host/sample/workflow-chain:expand \u2014 spec/v2/core/conformance.md \u00a7The seams profile forbids a test-seam capability flag: seams are the profile openwop-conformance-seams-v2 in the /conformance/seams/ path space, and the v1 path is removeIn 2.0 per spec/v1/deprecations.json). No v2 host bundle advertises either.",
|
|
3
|
+
"properties": {
|
|
4
|
+
"subChains": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"description": "RFC 0133 (workflow-chain composition, `Accepted`). OPTIONAL. When `supported: true`, the host's `POST \u2026/workflows/from-chain` implements RUNTIME sub-chain composition per `workflow-chain-packs.md` \u00a7\"Sub-chain composition (RFC 0133)\": for each `config.subChainRef` reachable from a parent chain, it resolves the referenced chain (sibling or external), recursively expands + co-registers it as its own owned workflow (deterministic TENANT-SCOPED id from `(tenantId, childChainId, version)` \u2014 two tenants never collide on the global registry, a shared child registers once across parents in a tenant, a repeat instantiation converges), rewrites the referencing node's `subChainRef` \u2192 the minted child `config.workflowId`, and dispatches the child as a child run (`core.subWorkflow` / `core.dispatch` child-run); the `from-chain` response carries `{ workflowId, subChainWorkflowIds[], nodeCount }`. Bounded by a cycle check (`sub_chain_cycle`) + a depth cap (`sub_chain_max_depth_exceeded`). A host that does NOT advertise this block MUST refuse a `subChains`-bearing chain at author/instantiate time with `sub_chain_unsupported` (422) \u2014 it never silently flattens. `producedVariables` (RFC 0133 \u00a72) needs NO flag: it is pure variable emission under the base `workflowChainPacks.supported`. Conformance scenarios `chain-subchain-fanout.test.ts` + `chain-subchain-unsupported-refused.test.ts` gate on this flag; the server-free `chain-subchain-sibling` / `chain-subchain-cycle-rejected` / `chain-produced-var-roundtrip` legs run unconditionally against the reference library.",
|
|
7
|
+
"properties": {
|
|
8
|
+
"maxDepth": {
|
|
9
|
+
"type": "integer",
|
|
10
|
+
"minimum": 1,
|
|
11
|
+
"default": 8,
|
|
12
|
+
"description": "RFC 0133 \u00a71.3 (resolves UQ3). RECOMMENDED default 8. The maximum sub-chain nesting depth the host co-expands; exceeding it fails closed with the DISTINCT code `sub_chain_max_depth_exceeded` (the DoS depth backstop, alongside the `sub_chain_cycle` self-composition check \u2014 SECURITY `sub-chain-expansion-bounded`)."
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"additionalProperties": false
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
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.8.
|
|
4
|
-
"corpusTag": "v2.8.
|
|
3
|
+
"version": "2.8.2",
|
|
4
|
+
"corpusTag": "v2.8.2",
|
|
5
5
|
"updated": "2026-09-18"
|
|
6
6
|
}
|