@openwop/spec-artifacts 2.15.0 → 2.15.1

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.15.0",
5
- "corpusTag": "v2.15.0",
4
+ "version": "2.15.1",
5
+ "corpusTag": "v2.15.1",
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": "2d36c5b143c3dbbd7e96f37a3dd135678ea02b3ff8e361ec4b290a21f1c90a59",
13
- "api/v2/asyncapi.yaml": "3f6f1f023841bb7d33fff2169a38734e10d1ede267d8cef38f8a94e86d317e45",
14
- "api/v2/openapi.yaml": "808f2519d3fbfaa6efd9563ca2990e5bf80f1fff3fc76945d59ce13708ab3016",
12
+ "api/seams-v2.yaml": "19e11230ff1a810f9823c201d42c1a2536cda87aa504810133875031d77f4fef",
13
+ "api/v2/asyncapi.yaml": "6666709a2531773e17d2860c42c7b137d210e4fd86d8981912ee13c11ecf62c8",
14
+ "api/v2/openapi.yaml": "b4b66f477b2e8b1bba7d6602572b1ce400ea369b0defcd7bcf30f92fed57a12e",
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": "ae1ece0c55cf467f11fe54d1374b42a249db57d8d69e45afc6f8d40e3712ca90",
118
+ "schemas/v2/capabilities.schema.json": "f342fe8d31b0d09c8878cefb446fa0db6346b952578081bd6005a981e8bdd1bf",
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": "40069d5976eeb6ba1384a648e57e5cfd673db3fce36175115fb8293bee9664d4",
203
203
  "spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
204
- "spec/v1/core-standard-manifest.json": "0478005e74f33a8b5c456805be12b9c34e5e3ab5be80569e007fb616fb29608f",
204
+ "spec/v1/core-standard-manifest.json": "10321df4eba5cf5bb786a19ff020ca75906af236ee3cbec660f69e010ece5d47",
205
205
  "spec/v1/deprecations.json": "307083ce29c23fd406015951f99a30d78d6187ff061d38dc9732f62191b40f3f",
206
206
  "spec/v1/deprecations.schema.json": "18c87e78bedc210431f795ae44c5b5d202f2f3317850d5cf86867d4f1fa1cdfb",
207
207
  "spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
@@ -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": "172c377ac413214f0d0ce857fdaf030526fd1085434b69e3b755e088b5be08f9",
277
+ "spec/v2/release.json": "ee35337620a638018452876f8878ae6f546ad18cbbcffb9f9be4cee5e2f51a37",
278
278
  "spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624"
279
279
  },
280
- "corpusCommit": "a60d21de057c9a096e960c13fb0d83950e037e24"
280
+ "corpusCommit": "8c28c3dfa264bc8a38ef3f9cae61b5f27bb45b72"
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.15.0
4
+ version: 2.15.1
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.15.0
4
+ version: 2.15.1
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.15.0
4
+ version: 2.15.1
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.15.0",
3
+ "version": "2.15.1",
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": {
@@ -458,7 +458,10 @@
458
458
  "required": [
459
459
  "status",
460
460
  "since",
461
- "witness"
461
+ "witness",
462
+ "clarificationRounds",
463
+ "schemaRounds",
464
+ "envelopesPerTurn"
462
465
  ],
463
466
  "properties": {
464
467
  "status": {
@@ -649,7 +652,8 @@
649
652
  "required": [
650
653
  "status",
651
654
  "since",
652
- "witness"
655
+ "witness",
656
+ "advertised"
653
657
  ],
654
658
  "properties": {
655
659
  "status": {
@@ -1244,7 +1248,8 @@
1244
1248
  "required": [
1245
1249
  "status",
1246
1250
  "since",
1247
- "witness"
1251
+ "witness",
1252
+ "packsSupported"
1248
1253
  ],
1249
1254
  "properties": {
1250
1255
  "status": {
@@ -1483,7 +1488,8 @@
1483
1488
  "required": [
1484
1489
  "status",
1485
1490
  "since",
1486
- "witness"
1491
+ "witness",
1492
+ "regions"
1487
1493
  ],
1488
1494
  "properties": {
1489
1495
  "status": {
@@ -1565,7 +1571,8 @@
1565
1571
  "required": [
1566
1572
  "status",
1567
1573
  "since",
1568
- "witness"
1574
+ "witness",
1575
+ "tiers"
1569
1576
  ],
1570
1577
  "properties": {
1571
1578
  "status": {
@@ -1655,6 +1662,33 @@
1655
1662
  "until"
1656
1663
  ]
1657
1664
  }
1665
+ },
1666
+ {
1667
+ "$comment": "RFC 0132 §B.2 — writeEgressControls is REQUIRED and non-empty when bounded-write-egress is advertised, and MUST be absent otherwise (a control-less write/egress tier is the fail-open shape this RFC forbids).",
1668
+ "if": {
1669
+ "properties": {
1670
+ "tiers": {
1671
+ "contains": {
1672
+ "const": "bounded-write-egress"
1673
+ }
1674
+ }
1675
+ },
1676
+ "required": [
1677
+ "tiers"
1678
+ ]
1679
+ },
1680
+ "then": {
1681
+ "required": [
1682
+ "writeEgressControls"
1683
+ ]
1684
+ },
1685
+ "else": {
1686
+ "not": {
1687
+ "required": [
1688
+ "writeEgressControls"
1689
+ ]
1690
+ }
1691
+ }
1658
1692
  }
1659
1693
  ],
1660
1694
  "description": "core/capabilities.md#anonymousActor — witness: seam-gated; maturity experimental/none; RFC 0132",
@@ -2450,6 +2484,10 @@
2450
2484
  "required": [
2451
2485
  "version"
2452
2486
  ],
2487
+ "if": {
2488
+ "properties": {}
2489
+ },
2490
+ "then": {},
2453
2491
  "properties": {
2454
2492
  "version": {
2455
2493
  "type": "integer",
@@ -2476,6 +2514,17 @@
2476
2514
  },
2477
2515
  "confidenceEscalationInterruptKind": {
2478
2516
  "type": "string",
2517
+ "anyOf": [
2518
+ {
2519
+ "const": "clarification"
2520
+ },
2521
+ {
2522
+ "const": "approval"
2523
+ },
2524
+ {
2525
+ "pattern": "^x-host-[a-z][a-z0-9-]*-[a-z][a-z0-9-]*$"
2526
+ }
2527
+ ],
2479
2528
  "description": "RFC 0044 — the literal `interrupt.kind` the host emits when escalating a below-floor confidence decision per RFC 0039 §A. `clarification` and `approval` are the canonical values matching the clarify-OR-approval choice in RFC 0039 §A; vendor-extension kinds use the canonical host-extension namespace `^x-host-<host>-<kind>$` per `spec/v1/host-extensions.md` §\"Canonical prefixes\". When advertised, hosts MUST emit an interrupt of the advertised kind on every confidence-escalation event AND the host's downstream `interrupt.md` mapping determines the `waiting-*` terminal status. Absent: conformance assumes the host uses one of the two canonical kinds (the relaxed assertion accepts either). Hosts using vendor kinds MUST also publish a non-normative kind-mapping document per RFC 0044 §C."
2480
2529
  },
2481
2530
  "crossChildMemoryConcurrency": {
@@ -2509,6 +2558,14 @@
2509
2558
  "properties": {
2510
2559
  "llmCacheKeyRecipe": {
2511
2560
  "type": "string",
2561
+ "anyOf": [
2562
+ {
2563
+ "const": "spec-rfc-0041"
2564
+ },
2565
+ {
2566
+ "pattern": "^x-host-[a-z][a-z0-9-]*-[a-z][a-z0-9-]*$"
2567
+ }
2568
+ ],
2512
2569
  "description": "The LLM cache-key recipe the host honors. `spec-rfc-0041` = the canonical recipe in `replay.md` §\"LLM cache-key recipe\" §A + §B + §C. Vendor-specific recipes use the canonical host-extension namespace string matching `^x-host-<host>-<recipe-name>$` per `spec/v1/host-extensions.md` §\"Canonical prefixes\"; the matching algorithm MUST be documented at the host's discovery doc."
2513
2570
  },
2514
2571
  "refusalDivergenceEmission": {
@@ -2567,6 +2624,17 @@
2567
2624
  }
2568
2625
  }
2569
2626
  }
2627
+ },
2628
+ "if": {
2629
+ "required": [
2630
+ "transcriptTokenBudget"
2631
+ ]
2632
+ },
2633
+ "then": {
2634
+ "required": [
2635
+ "transcriptTokenBudget",
2636
+ "tokenCounter"
2637
+ ]
2570
2638
  }
2571
2639
  }
2572
2640
  }
@@ -5616,7 +5684,8 @@
5616
5684
  "required": [
5617
5685
  "status",
5618
5686
  "since",
5619
- "witness"
5687
+ "witness",
5688
+ "declared"
5620
5689
  ],
5621
5690
  "properties": {
5622
5691
  "status": {
@@ -5815,6 +5884,20 @@
5815
5884
  },
5816
5885
  "isolation": {
5817
5886
  "type": "string",
5887
+ "anyOf": [
5888
+ {
5889
+ "enum": [
5890
+ "cross-origin-iframe",
5891
+ "wasm",
5892
+ "process",
5893
+ "container",
5894
+ "vm"
5895
+ ]
5896
+ },
5897
+ {
5898
+ "pattern": "^x-host-[a-z0-9-]+-[a-z0-9-]+$"
5899
+ }
5900
+ ],
5818
5901
  "default": "cross-origin-iframe",
5819
5902
  "description": "RFC 0117 (amended by RFC 0119). The categorical isolation model the host enforces for plugin bytes. `cross-origin-iframe` = a distinct-origin sandboxed browser frame (the browser default; §Isolation). `wasm`/`process`/`container`/`vm` mirror `sandbox.isolationModel` (RFC 0035) for non-browser hosts that enforce the SAME isolation property. Vendor-specific models advertise `^x-host-<host>-<key>$` per `host-extensions.md`. ALL values denote the SAME mandatory property (`frontend-plugin-isolation`): plugin bytes execute in a boundary with no access to the host's execution context / DOM / origin-storage / credentials, deny-egress by default, and all host interaction mediated by the closed `ui-plugin/1` RPC. The field names the MECHANISM, never relaxes the property. In-process / same-origin / module-federation loading is a protocol-tier MUST NOT regardless of the advertised value."
5820
5903
  },
@@ -7003,6 +7086,16 @@
7003
7086
  },
7004
7087
  "partitionRecoveryStrategy": {
7005
7088
  "type": "string",
7089
+ "anyOf": [
7090
+ {
7091
+ "enum": [
7092
+ "lexicographic-min-run-id"
7093
+ ]
7094
+ },
7095
+ {
7096
+ "pattern": "^x-host-[a-z][a-z0-9-]*-[a-z][a-z0-9-]*$"
7097
+ }
7098
+ ],
7006
7099
  "description": "RFC 0150 §D — deterministic resolution rule for conflicting idempotency-key records after a partition heals. `lexicographic-min-run-id` is the rule spec/v1/idempotency.md §'Guarantees under partition' MUSTs: the lower runId wins, deterministic without coordination. Vendor strategies use `^x-host-<host>-<key>$` and MUST still satisfy the reproducible-survivor requirement. The time-ordered `last-writer-wins` / `first-writer-wins` values were REMOVED as a safety-fix: under a partition there is no shared clock, so both regions believe they wrote last, which cannot satisfy the annex MUST that re-running the same conflict input produces the same survivor — and both select a different survivor than the lex-min rule the same document requires. Resolving a RECORD never authorizes an EFFECT; see `crossRegion`."
7007
7100
  }
7008
7101
  }
@@ -7512,7 +7605,9 @@
7512
7605
  "required": [
7513
7606
  "status",
7514
7607
  "since",
7515
- "witness"
7608
+ "witness",
7609
+ "baseLocale",
7610
+ "supportedLocales"
7516
7611
  ],
7517
7612
  "properties": {
7518
7613
  "status": {
@@ -7693,6 +7788,28 @@
7693
7788
  "until"
7694
7789
  ]
7695
7790
  }
7791
+ },
7792
+ {
7793
+ "if": {
7794
+ "properties": {
7795
+ "import": {
7796
+ "const": true
7797
+ }
7798
+ },
7799
+ "required": [
7800
+ "import"
7801
+ ]
7802
+ },
7803
+ "then": {
7804
+ "properties": {
7805
+ "dryRun": {
7806
+ "const": true
7807
+ }
7808
+ },
7809
+ "required": [
7810
+ "dryRun"
7811
+ ]
7812
+ }
7696
7813
  }
7697
7814
  ],
7698
7815
  "description": "core/capabilities.md#portability — witness: witnessable-gated; maturity experimental/none; RFC 0098",
@@ -4,7 +4,7 @@
4
4
  "provenance": {
5
5
  "suite": {
6
6
  "package": "@openwop/openwop-conformance",
7
- "version": "2.15.0"
7
+ "version": "2.15.1"
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": "4ff5b4a569f1ff03c71f0aec32ce5cb443cb4129a8d8cf5753c7808bd48afe58"
422
+ "digest": "dd8d53292972adac8f3034668083d87a47165d1007a87fdd6450bcd857468a98"
423
423
  }
@@ -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.15.0",
4
- "corpusTag": "v2.15.0",
3
+ "version": "2.15.1",
4
+ "corpusTag": "v2.15.1",
5
5
  "updated": "2026-09-18"
6
6
  }