@openwop/spec-artifacts 2.21.0 → 2.22.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.21.0",
5
- "corpusTag": "v2.21.0",
4
+ "version": "2.22.0",
5
+ "corpusTag": "v2.22.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": "39081c59fb696159806b0f2f9a42e7e9ff830d622fcf2ad4159b21357580a955",
11
11
  "api/redocly.yaml": "b0604c89b2ca6d5076ec25725c539dad44a741a811fe524439ee6daef8baa09f",
12
- "api/seams-v2.yaml": "dadb3a8246d1ce14a59327883bd9818c371c94426fd3677d9969570f53c15edf",
13
- "api/v2/asyncapi.yaml": "04a2a3a1c3e7950cad5191cefcdf6dac4743057ae73cf552af38c269cb028952",
14
- "api/v2/openapi.yaml": "c69dcb0485ce9df673d00908176e4a47cbcc8d1c7a3331e9b253ca237aa4fa60",
12
+ "api/seams-v2.yaml": "edcec24d0875b3f1abc747ffc1abbcda264e615c56f4608b0658b537b644dbb8",
13
+ "api/v2/asyncapi.yaml": "dfed346a511018f2bd25a66292668df1146736ffe1dffe59dae8a0a8d0ec83cd",
14
+ "api/v2/openapi.yaml": "bc9f1eb0fc6551129f54a67fffdd716b1ec1d1f8816263749abc7595cca63643",
15
15
  "api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
16
16
  "schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
17
17
  "schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
@@ -201,13 +201,13 @@
201
201
  "schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
202
202
  "spec/v1/alias-detectors.json": "40069d5976eeb6ba1384a648e57e5cfd673db3fce36175115fb8293bee9664d4",
203
203
  "spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
204
- "spec/v1/core-standard-manifest.json": "d96d88f94b05df30f9c8829505d4706dba8fff7e3d11a4791744f7acd2b61fc0",
204
+ "spec/v1/core-standard-manifest.json": "9bfa7448d3d2d04421bd872c4e64f619fb00d0609a922b4c61b98cf4473a63c3",
205
205
  "spec/v1/deprecations.json": "307083ce29c23fd406015951f99a30d78d6187ff061d38dc9732f62191b40f3f",
206
206
  "spec/v1/deprecations.schema.json": "18c87e78bedc210431f795ae44c5b5d202f2f3317850d5cf86867d4f1fa1cdfb",
207
207
  "spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
208
208
  "spec/v1/event-codemap.schema.json": "d05933b2e88103aff51a2f774df97b9bda065e0fc88dbd9b114cc47a32189174",
209
209
  "spec/v1/extensions.json": "79a60754aa16cbdbdb604f8e5c00038af535a1690a4d07bd5ff7c38f0256a7bc",
210
- "spec/v1/gaps.json": "2a659a2949031a2b4740f0874ec1fbbfd82c677d6abf315bf5c6e4c1834f00b6",
210
+ "spec/v1/gaps.json": "f0a99073fac443dade386fb06a9fbe888d24861babde4908551ad96f9cb6596f",
211
211
  "spec/v1/gaps.schema.json": "8fd83259f556553c9df0f53e7a82ca8c2a4771d471197f69b4e2ae0ceeacfd66",
212
212
  "spec/v1/migrations.json": "8839497d6a4830b53fa7867014a8336f0d725ef2346352e54fb580b7947897af",
213
213
  "spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
@@ -218,7 +218,7 @@
218
218
  "spec/v2/core/conformance.md": "a451c0a2ba79d93c55e540ccef480eba7de9602d59bbb03eead05daafde0beac",
219
219
  "spec/v2/core/connection-packs.md": "466bdb9dde79d85615ad8281dacfb7bf923ca22d7fb3ed219749e59574c753ed",
220
220
  "spec/v2/core/errors.md": "6b6a1480ed889013172d8ce8c6985e321d2f4f73e1d9fae0bac9b961d0dd1a8c",
221
- "spec/v2/core/events.md": "2fbf98662a72035afd7a3f811c30d4fe5f0ac823488a2cc9198a61cf6d27a049",
221
+ "spec/v2/core/events.md": "2138f148be2d63f8530d2ad21ddff9acf166763c21c505bbb42deeab749b6476",
222
222
  "spec/v2/core/form-content-packs.md": "af3517dd7125106088249c0e32220b0b9fc3e9304c10378a6327cc8ad84b6bf1",
223
223
  "spec/v2/core/headers.md": "14cdf4ae9ee7d80eebfd426d7c3552e577baea0300915cd4bb3a68e8588195a8",
224
224
  "spec/v2/core/idempotency.md": "e4edae1834101fd331379d84de77eaa9cead49383529c31f8bcd18322f67c965",
@@ -234,7 +234,7 @@
234
234
  "spec/v2/core/versioning.md": "27b88cde88f9060567ef7e46f4897b6be8892ade9f4a46c2ab16e314c515eabd",
235
235
  "spec/v2/core/webhooks.md": "46c1311c1897236f9bf9db5025c8af31dd84cd19208da3e5e9ff69eec9436965",
236
236
  "spec/v2/core/workflow-chain-packs.md": "df78b76dd79f2267fb6b72c08e0911e5f9d5bb1925c6efdd6deda62fe8a51dc8",
237
- "spec/v2/declaration.json": "a7607376ecf493e9533861fccc69b4a7d0c9df427689d045e2747f5f0ba0da54",
237
+ "spec/v2/declaration.json": "332ae3db4e241c98598c0d096e5216fde80122a250c57dc507a02e6aeab52202",
238
238
  "spec/v2/declaration.schema.json": "c86e3083fb9789c1958ecb4576cc6f71aa90e6f339521139238543ed08211dd4",
239
239
  "spec/v2/errors.json": "aac91b12f954cc90574d310070ae3c651b131055d4389d2c6155242763765195",
240
240
  "spec/v2/event-codemap.json": "37869a03cdfd8758b57e6f350641a6ebbd383231cebda51f5473ad85f94ab74c",
@@ -274,8 +274,8 @@
274
274
  "spec/v2/path-manifest.json": "c123c9fd77dc1b3f9c2e9346ace80cdae007e6511138894956abda01e61ec1c6",
275
275
  "spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
276
276
  "spec/v2/profiles.json": "0636f19fceae625390003a347e70ef4797d84766b5c24ce8a02cea52aadebca4",
277
- "spec/v2/release.json": "68c7aa62eabbe783cc8c2e466659dd6fbe8d9beb41224c58d4cc948c79fd200b",
277
+ "spec/v2/release.json": "c5f2fcf9cb2fdc3755b5828e75d02758ded5b73b64e2f31fdcbb775ad956fa7b",
278
278
  "spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624"
279
279
  },
280
- "corpusCommit": "d5c4ad17826358a4a1ee1f290d86e61af5dc3fd5"
280
+ "corpusCommit": "01b730108f674de0c568943837ffe8e505a4b46b"
281
281
  }
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.21.0
4
+ version: 2.22.0
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
@@ -1,7 +1,7 @@
1
1
  asyncapi: 3.1.0
2
2
  info:
3
3
  title: OpenWOP v2 event streams
4
- version: 2.21.0
4
+ version: 2.22.0
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
@@ -1,7 +1,7 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: OpenWOP v2 API
4
- version: 2.21.0
4
+ version: 2.22.0
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.21.0",
3
+ "version": "2.22.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": {
@@ -4,7 +4,7 @@
4
4
  "provenance": {
5
5
  "suite": {
6
6
  "package": "@openwop/openwop-conformance",
7
- "version": "2.21.0"
7
+ "version": "2.22.0"
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": "be88eefc234ed3fbb67e12675f04afd00af841f588efe4745bf3f4863eb050bd"
422
+ "digest": "9466034adb41afc146cf6d8992ab9e52ff13e1da6ca4036517edfb75db5221f1"
423
423
  }
package/spec/v1/gaps.json CHANGED
@@ -10518,6 +10518,57 @@
10518
10518
  }
10519
10519
  ]
10520
10520
  },
10521
+ {
10522
+ "id": "openwop.gap.0189.14",
10523
+ "rfc": "0189",
10524
+ "local": "G14",
10525
+ "section": "§B(c)",
10526
+ "surface": "A BULLET LIST is not one paragraph either. G4 split tables so a MUST in row 15 could not satisfy a family named in row 6; it left bullet lists fused, and the same exploit lives one syntax down. `spec/v1/ai-envelope.md`'s `envelopeContracts.advertised` bullet carries NO 2119 keyword and passed §B(c) only because the ADJACENT `envelopeStrictness` bullet says \"MUST cause refusal\". That declaration SHIPPED in 2.21.0 — hand-read, right about the family, wrong about the anchor — and the §D fallback would have asserted it at end-of-support.",
10527
+ "witness": "unclassified",
10528
+ "requirementId": null,
10529
+ "disposition": "closed",
10530
+ "target": null,
10531
+ "sources": [
10532
+ {
10533
+ "file": "RFCS/registers/0189-normative-home.gaps.md",
10534
+ "token": "G14"
10535
+ }
10536
+ ]
10537
+ },
10538
+ {
10539
+ "id": "openwop.gap.0189.15",
10540
+ "rfc": "0189",
10541
+ "local": "G15",
10542
+ "section": "§B(d)",
10543
+ "surface": "PROPOSED AND REJECTED ON MEASUREMENT. The proposal was to strip fenced code blocks from the facet arm as G12 does for the obligation arm, on the claim it costs zero declared families. Measured: it breaks SIXTEEN facets — `credentials.encryptionAtRest`, `oauth.grants`, `kvStorage.maxTtlSeconds` and thirteen more — every one named in a JSON ADVERTISEMENT EXAMPLE, which is precisely how a facet is legitimately named.",
10544
+ "witness": "unclassified",
10545
+ "requirementId": null,
10546
+ "disposition": "closed",
10547
+ "target": null,
10548
+ "sources": [
10549
+ {
10550
+ "file": "RFCS/registers/0189-normative-home.gaps.md",
10551
+ "token": "G15"
10552
+ }
10553
+ ]
10554
+ },
10555
+ {
10556
+ "id": "openwop.gap.0189.16",
10557
+ "rfc": "0189",
10558
+ "local": "G16",
10559
+ "section": "§A",
10560
+ "surface": "A conformance-seam catalog could be a normative home. `spec/v1/host-sample-test-seams.md` banners \"observation seams, not application endpoints\", and its `multiPartyConversation` bullet says in its own matched text that RFC 0101 \"mints no normative client wire-route\" — so the paragraph that would have satisfied §B(c) is the paragraph disclaiming the contract. G13's informative-banner refusal does not catch it, because the document is genuinely `Stable` and genuinely normative ABOUT SEAMS.",
10561
+ "witness": "unclassified",
10562
+ "requirementId": null,
10563
+ "disposition": "closed",
10564
+ "target": null,
10565
+ "sources": [
10566
+ {
10567
+ "file": "RFCS/registers/0189-normative-home.gaps.md",
10568
+ "token": "G16"
10569
+ }
10570
+ ]
10571
+ },
10521
10572
  {
10522
10573
  "id": "openwop.gap.0190.1",
10523
10574
  "rfc": "0190",
@@ -1,7 +1,7 @@
1
1
  # Events
2
2
 
3
3
  > **Status: Stable · RFC 0171 §A, §E; RFC 0176 §A.**
4
- > **Normative home:** `heartbeat`.
4
+ > **Normative home:** `heartbeat`, `envelopeContracts`.
5
5
 
6
6
  ## Why this exists
7
7
 
@@ -113,3 +113,12 @@ The response is `{ runId, events, lastSequence, status, isTerminal }` (closed):
113
113
  ## Era-2 logs
114
114
 
115
115
  An `eventLogSchemaVersion` of `2` means v1-written. Every reader (poll, stream, fork, diff, debug bundle) MUST translate each event through `spec/v2/event-codemap.json` at storage — `type` is mapped, the payload projected; `sequence` (including `0`), `eventId`, `timestamp`, `causationId` pass through. A type the codemap does not name, carrying no vendor org, MUST fail the read `500 event_type_unmapped`. A host MUST NOT carry a private mapping, nor rewrite era-2 rows in place. **A projection MUST NOT silently drop a property**: carry or fail `500 payload_unprojectable` (hatch `^(openwop-|x-|vendor\.)`; RFC 0185). Fork and replay over an era-2 parent: replay.md.
116
+
117
+ ## Envelope contracts
118
+
119
+ `envelopeContracts` advertises that a host enforces per-node envelope permission
120
+ sets. A host advertising `envelopeContracts.advertised` MUST refuse a node whose
121
+ emitted envelope `type` is neither universal nor listed in that node's accepted
122
+ set, and MUST refuse it distinctly from the capability-gated `typeId` refusal —
123
+ the two stack rather than substitute.
124
+
@@ -250,7 +250,7 @@
250
250
  {
251
251
  "key": "envelopeContracts",
252
252
  "kind": "family",
253
- "normativeText": ["spec/v1/ai-envelope.md"],
253
+ "normativeText": ["spec/v2/core/events.md"],
254
254
  "anchor": "core",
255
255
  "section": "core/capabilities.md#envelopeContracts",
256
256
  "peerDependencyId": "envelopeContracts",
@@ -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.21.0",
4
- "corpusTag": "v2.21.0",
3
+ "version": "2.22.0",
4
+ "corpusTag": "v2.22.0",
5
5
  "updated": "2026-09-18"
6
6
  }