@openwop/spec-artifacts 2.0.0-rc.31 → 2.0.0-rc.32

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,7 +1,7 @@
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.0.0-rc.31",
4
+ "version": "2.0.0-rc.32",
5
5
  "corpusTag": null,
6
6
  "files": {
7
7
  "api/.redocly.lint-ignore.yaml": "bf5a8350b88a72fa43f59605ed8d903ed24b6cfccda5e45509c9f6ed9ee4e712",
@@ -9,9 +9,9 @@
9
9
  "api/grpc/openwop.proto": "c3e72bb17cba514ee98feb6434e6c9b6ea6795bfd086489ec69fd882dd1ad977",
10
10
  "api/openapi.yaml": "39081c59fb696159806b0f2f9a42e7e9ff830d622fcf2ad4159b21357580a955",
11
11
  "api/redocly.yaml": "b0604c89b2ca6d5076ec25725c539dad44a741a811fe524439ee6daef8baa09f",
12
- "api/seams-v2.yaml": "d87b5cd261b3bafe3680aa413a0bc08a4d44efa7b3e5629dc90f6d31832eb5ed",
13
- "api/v2/asyncapi.yaml": "5bc7ab5ebca4b4a7aaed74adb3731dccceb4a948c866ca0bc9d3ce9a3546c0bd",
14
- "api/v2/openapi.yaml": "3ab9232b7146f4ca1a131c0ccc40b1b1614a1983f1785221a7a5f7fe89a3c8b7",
12
+ "api/seams-v2.yaml": "438958ed9bc1895cad508e9182532a35c7d0bff8f109f13fee96bca3f557df46",
13
+ "api/v2/asyncapi.yaml": "051fa6a37dc5f4933d8c25acad581fdd0eee0fdcbedabc893e7888ce6d1990d3",
14
+ "api/v2/openapi.yaml": "c91fcead68f5662cbe50b85897dfc20818d7fc6e617522cfcbbd9d781b6bb980",
15
15
  "api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
16
16
  "schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
17
17
  "schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
@@ -146,7 +146,7 @@
146
146
  "schemas/v2/export-bundle.schema.json": "bd28905a7729437ab7f2ad8bb33e13a371b2bf5605a7eb2962a0d246de312d69",
147
147
  "schemas/v2/form-content-pack-manifest.schema.json": "307884e57946703b6f86ec283034bf56beb68bea4a000743ebbc9eebeed31b07",
148
148
  "schemas/v2/frontend-plugin-manifest.schema.json": "fed6b8ddb3056c53b1bfc91525410a4445a3c37a8bf9eb9f6f9964ffea26d993",
149
- "schemas/v2/goal.schema.json": "d202ef21ed3dbff87c25fd4b553fa978862a3200999878d25c5918f6794b3060",
149
+ "schemas/v2/goal.schema.json": "146c4182e36d3538778f947e668a92cdb69ec42ee0820104b00063b035e342d7",
150
150
  "schemas/v2/heartbeat-evaluated.schema.json": "4086b1ba1d0547c08b038dfb263ac89416a3e406430db1250156fb2f9b74f8d6",
151
151
  "schemas/v2/heartbeat-state-changed.schema.json": "eb68d0082aa996650e3a6b8ccf32457f959cebc7e6728cc7c331b9d171a4bef6",
152
152
  "schemas/v2/ids.schema.json": "05c98e3f8a72fa79be123765bd9c2ea7c6620188d69df8524160399225316cd6",
@@ -164,12 +164,12 @@
164
164
  "schemas/v2/prompt-pack-manifest.schema.json": "a51667da3d601043d2c33fddaafa572e9dd7e47b8840393742b80eaf6238a1a5",
165
165
  "schemas/v2/prompt-ref.schema.json": "11538fa36a7a652c93100cac4f1857eb4130137b546e3d94890618636d44b729",
166
166
  "schemas/v2/prompt-template.schema.json": "494fc83028cb3af5dbb8a943d0e83b2348f7775e9fa02369162bcb58a6f81559",
167
- "schemas/v2/proposal.schema.json": "72623553611f00e87b4c7972d69ebeba73c2222b01ead75a44a0c2114b679fea",
167
+ "schemas/v2/proposal.schema.json": "cb5ea4fcb54be94fd2a92cf2799357dc73335181a89f5766f432d69e21cc3a80",
168
168
  "schemas/v2/registry-version-manifest.schema.json": "270704ebc6bae63be949efbf9503578938b103733db9da3cb8fcbee1cd7684dd",
169
169
  "schemas/v2/residency.schema.json": "af2658a7104cbcacd0e20a91226271c4a77f91ef46ae97612768fe743e6091d8",
170
170
  "schemas/v2/run-ancestry-response.schema.json": "907e36341ba83a2147a5d76963950b6dcd47506b663ecbccae9dfa553f3724d3",
171
171
  "schemas/v2/run-diff-response.schema.json": "6ab6cd265dc7e0a2086c6659c46aa0e7b43e6302949f0adac5d7deb1c7c0ecd3",
172
- "schemas/v2/run-event-payloads.schema.json": "e8df13b81202afa507b902ab557504cbc579efb0309a05a01069609d7e7ebea7",
172
+ "schemas/v2/run-event-payloads.schema.json": "6703e25b1f85a9993c466f9f84334f13142365ce329eaf182941c514e44fa0b9",
173
173
  "schemas/v2/run-event.schema.json": "1a9946374af9323b71635d00fed22abe02c300fa2cf3ae3e9c30f3e553e408ec",
174
174
  "schemas/v2/run-options.schema.json": "6d6052596ab0f17acfb00fdfc89907da7724f952e5ffbe1f81d94ba23d4c77cd",
175
175
  "schemas/v2/run-orchestrator-decided-event.schema.json": "bb76e15ff72e669f12938684033b55dc567470e1a378e19ffc3fa0e4034ab5a7",
@@ -188,7 +188,7 @@
188
188
  "schemas/v2/ui-plugin-message.schema.json": "879d65867c01656b3962d64283e66364dcb8f626ad26c5fcf2d2d55a79ae0ce9",
189
189
  "schemas/v2/webhook-delivery.schema.json": "1ac157d3baf61bd24074e2a253556d0cbad9cb5b2085d7d5056a35a6c863b4d5",
190
190
  "schemas/v2/workflow-chain-pack-manifest.schema.json": "22801f14845a3df30660e6f31a41e1a3fbff2425bf56c8a475eab96f1c95882a",
191
- "schemas/v2/workflow-definition.schema.json": "97c2afb4f22149f950f413663b357396c57d494666019ff2583e222ed1a9a65e",
191
+ "schemas/v2/workflow-definition.schema.json": "da7e565cee6ecf3bcc9d46833bad224f579f8db8a378ae22ff3fbf58b1348f38",
192
192
  "schemas/v2/workload-identity.schema.json": "1f589debfac6d70e0908da511550ec69a27b4bcc8314551cd843b6d923605efc",
193
193
  "schemas/v2/workspace-file-create.schema.json": "b6b5260857318c3b67de0231ed15e3a746f525880a763e7b36a7854178dd10d0",
194
194
  "schemas/v2/workspace-file.schema.json": "d2ed39e8c229dde33b56905c8df6f8b2ff056c97e1c5f615e3124baa54a6254f",
@@ -199,7 +199,7 @@
199
199
  "schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
200
200
  "spec/v1/alias-detectors.json": "fee4594ef49953953ffcd0b3813300067d16b3e65ebff2aac722034ac9b3f545",
201
201
  "spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
202
- "spec/v1/core-standard-manifest.json": "de6a9b858dbc221a56b33be1159971081621588f4f5a2e2f11362f672c98e919",
202
+ "spec/v1/core-standard-manifest.json": "bc72190345b5b39f142d1defa7079cc179e9c38afd6588c570ef5ec16176618b",
203
203
  "spec/v1/deprecations.json": "520d79927a8ed43ccf62c207a7cf6cf7b19b16e00bbbbdf0410667e939c19d85",
204
204
  "spec/v1/deprecations.schema.json": "4cdbbb8eb9c0092913a5704c943880f0c8581bcf0f640a7df5a84105d53c8aee",
205
205
  "spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
@@ -226,11 +226,11 @@
226
226
  "spec/v2/facets/replay.schema.json": "0a5aefb0108c708c6794fadd533cf256709704c4f16dbf44cd63fa8980c78018",
227
227
  "spec/v2/facets/sandbox.schema.json": "e75f54486d387b2d089791aa93b5093cd1450f1920753a0f97fc23acdfe978ed",
228
228
  "spec/v2/facets/webhooks.schema.json": "0b766033ef4b4c6c2ac6f9979a19843ba024d3a1d1576972dcb55aaba52f1b9a",
229
- "spec/v2/id-field-bindings.json": "5a053a9eb73a2a474c753807ffc1e6ba66fb4f686c340a239f7a4cebdd1142a7",
229
+ "spec/v2/id-field-bindings.json": "568fd8dfe41cde6691247e4efa590320a3730f30adb39178327dc82767314bc7",
230
230
  "spec/v2/path-manifest.json": "034152e09b1458c66810d4050e20a273b2b9b8fe2d92b66e8b819477de58a1be",
231
231
  "spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
232
232
  "spec/v2/profiles.json": "1f0ee40491131cf561ef19a0394c47ba476b4567514fe16befb6cada4a10a5a4",
233
- "spec/v2/release.json": "1fa053e50e30fddcbde302ecdc183168940c4c02c63c312a83af002bf7d9367f"
233
+ "spec/v2/release.json": "78cbf17cde724e9b09620895c7f8e79a34af75e5beabf98b29a4036f59ad4d25"
234
234
  },
235
- "corpusCommit": "1b1cf9dfcb2ebe9b254cfabf0ca328475914e028"
235
+ "corpusCommit": "80cc68356130323f88e995025a4ef3b6b4c4df41"
236
236
  }
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.0.0-rc.31
4
+ version: 2.0.0-rc.32
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.0.0-rc.31
4
+ version: 2.0.0-rc.32
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.0.0-rc.31
4
+ version: 2.0.0-rc.32
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
@@ -1069,9 +1069,7 @@ paths:
1069
1069
  minItems: 1
1070
1070
  maxItems: 100
1071
1071
  items:
1072
- type: string
1073
- minLength: 1
1074
- maxLength: 128
1072
+ $ref: ../../schemas/v2/ids.schema.json#/$defs/runId
1075
1073
  reason:
1076
1074
  type: string
1077
1075
  maxLength: 512
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openwop/spec-artifacts",
3
- "version": "2.0.0-rc.31",
3
+ "version": "2.0.0-rc.32",
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 \u2014 published from the openwop/openwop corpus tag; the peer dependency @openwop/openwop-conformance digest-checks at start (RFC 0168 \u00a7D.2).",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://openwop.dev/spec/v2/goal.schema.json",
4
4
  "title": "Goal",
5
- "description": "RFC 0097 §B. A standing goal a durable objective with explicit completion criteria, evaluated by a host-side judge (RFC 0090 verifier verdict or an opaque host evaluator), that keeps an agent working across turns and runs until the judge is satisfied, a declared RFC 0058 bound is crossed, or the agent escalates (RFC 0044). Completion MUST be the judge's verdict a client MUST NOT set `state: satisfied` directly. Continuation MUST be bounded. `objective` and any verdict payload are SR-1 redaction-safe. Gated on the `agents.goals` capability.",
5
+ "description": "RFC 0097 \u00a7B. A standing goal \u2014 a durable objective with explicit completion criteria, evaluated by a host-side judge (RFC 0090 verifier verdict or an opaque host evaluator), that keeps an agent working across turns and runs until the judge is satisfied, a declared RFC 0058 bound is crossed, or the agent escalates (RFC 0044). Completion MUST be the judge's verdict \u2014 a client MUST NOT set `state: satisfied` directly. Continuation MUST be bounded. `objective` and any verdict payload are SR-1 redaction-safe. Gated on the `agents.goals` capability.",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
8
8
  "required": [
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "objective": {
25
25
  "type": "string",
26
- "description": "The standing objective. SR-1 redaction-safe no secrets/PII."
26
+ "description": "The standing objective. SR-1 redaction-safe \u2014 no secrets/PII."
27
27
  },
28
28
  "state": {
29
29
  "type": "string",
@@ -67,7 +67,7 @@
67
67
  ],
68
68
  "default": null,
69
69
  "additionalProperties": false,
70
- "description": "Most recent judge verdict. Content-free re: objective text. Non-deterministic judge output MUST be persisted (carried in the `goal.evaluated` event / checkpoint) and never recomputed on replay/fork.",
70
+ "description": "Most recent judge verdict. Content-free re: objective text. Non-deterministic judge output \u2014 MUST be persisted (carried in the `goal.evaluated` event / checkpoint) and never recomputed on replay/fork.",
71
71
  "properties": {
72
72
  "satisfied": {
73
73
  "type": "boolean"
@@ -147,7 +147,7 @@
147
147
  "contributingRunIds": {
148
148
  "type": "array",
149
149
  "items": {
150
- "type": "string"
150
+ "$ref": "ids.schema.json#/$defs/runId"
151
151
  },
152
152
  "description": "RFC 0040 causation-compatible."
153
153
  }
@@ -159,7 +159,7 @@
159
159
  "required": [
160
160
  "tenant"
161
161
  ],
162
- "description": "RFC 0048 identity triple. Redaction-safe `principal` is an opaque id, never PII or credential material.",
162
+ "description": "RFC 0048 identity triple. Redaction-safe \u2014 `principal` is an opaque id, never PII or credential material.",
163
163
  "properties": {
164
164
  "tenant": {
165
165
  "type": "string",
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://openwop.dev/spec/v2/proposal.schema.json",
4
4
  "title": "Proposal",
5
- "description": "RFC 0096 §B. A reviewable-learning proposal an INERT, draft-state reusable artifact (skill/pack/template/automation) the host synthesized from run/tool traces, that MUST NOT influence the resolution, planning, or execution of any run while in any state other than `applied`. Activation is delegated to RFC 0051 approval-gate or RFC 0049 RBAC (no new authorization path). On `apply` the installed artifact MUST byte-match the last-persisted `artifact` (no silent re-synthesis). `rationale` and `provenance.sourceRunIds` are SR-1 redaction-safe (no secrets/PII). Gated on the `agents.proposals` capability.",
5
+ "description": "RFC 0096 \u00a7B. A reviewable-learning proposal \u2014 an INERT, draft-state reusable artifact (skill/pack/template/automation) the host synthesized from run/tool traces, that MUST NOT influence the resolution, planning, or execution of any run while in any state other than `applied`. Activation is delegated to RFC 0051 approval-gate or RFC 0049 RBAC (no new authorization path). On `apply` the installed artifact MUST byte-match the last-persisted `artifact` (no silent re-synthesis). `rationale` and `provenance.sourceRunIds` are SR-1 redaction-safe (no secrets/PII). Gated on the `agents.proposals` capability.",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
8
8
  "required": [
@@ -47,12 +47,12 @@
47
47
  },
48
48
  "rationale": {
49
49
  "type": "string",
50
- "description": "Plain-language justification. SR-1 redaction-safe no secrets/PII."
50
+ "description": "Plain-language justification. SR-1 redaction-safe \u2014 no secrets/PII."
51
51
  },
52
52
  "artifact": {
53
53
  "type": "object",
54
- "description": "The proposed artifact, shaped by `kind` (an RFC 0003 pack manifest, an RFC 0013 chain pack, an RFC 0027 template, an RFC 0052 job spec). Inert until applied. Deliberately open (`additionalProperties` not constrained here) because the payload conforms to the kind's own existing schema, validated by the host at `apply` (malformed-for-kind 422).",
55
- "$comment": "Intentionally open object the artifact body is validated against the kind's own schema, not this envelope.",
54
+ "description": "The proposed artifact, shaped by `kind` (an RFC 0003 pack manifest, an RFC 0013 chain pack, an RFC 0027 template, an RFC 0052 job spec). Inert until applied. Deliberately open (`additionalProperties` not constrained here) because the payload conforms to the kind's own existing schema, validated by the host at `apply` (malformed-for-kind \u21d2 422).",
55
+ "$comment": "Intentionally open object \u2014 the artifact body is validated against the kind's own schema, not this envelope.",
56
56
  "additionalProperties": true
57
57
  },
58
58
  "provenance": {
@@ -66,8 +66,7 @@
66
66
  "sourceRunIds": {
67
67
  "type": "array",
68
68
  "items": {
69
- "type": "string",
70
- "minLength": 1
69
+ "$ref": "ids.schema.json#/$defs/runId"
71
70
  },
72
71
  "description": "Runs whose traces produced this proposal (RFC 0040 causation-compatible). SR-1 redaction-safe."
73
72
  },
@@ -91,7 +90,7 @@
91
90
  "required": [
92
91
  "tenant"
93
92
  ],
94
- "description": "RFC 0048 identity triple that owns this proposal. Redaction-safe `principal` is an opaque id, never PII or credential material. Single-tenant hosts populate at least `tenant`.",
93
+ "description": "RFC 0048 identity triple that owns this proposal. Redaction-safe \u2014 `principal` is an opaque id, never PII or credential material. Single-tenant hosts populate at least `tenant`.",
95
94
  "properties": {
96
95
  "tenant": {
97
96
  "type": "string",
@@ -106,7 +105,7 @@
106
105
  "principal": {
107
106
  "type": "string",
108
107
  "minLength": 1,
109
- "description": "Acting identity (user or agent) opaque id, never PII."
108
+ "description": "Acting identity (user or agent) \u2014 opaque id, never PII."
110
109
  }
111
110
  }
112
111
  },
@@ -600,7 +600,7 @@
600
600
  "sourceRunIds": {
601
601
  "type": "array",
602
602
  "items": {
603
- "type": "string"
603
+ "$ref": "ids.schema.json#/$defs/runId"
604
604
  },
605
605
  "description": "Runs whose traces produced the draft (RFC 0040 causation-compatible). Ids only \u2014 no trace content."
606
606
  },
@@ -602,7 +602,7 @@
602
602
  "nodeIds": {
603
603
  "type": "array",
604
604
  "items": {
605
- "type": "string"
605
+ "$ref": "ids.schema.json#/$defs/nodeId"
606
606
  }
607
607
  },
608
608
  "position": {
@@ -4,7 +4,7 @@
4
4
  "provenance": {
5
5
  "suite": {
6
6
  "package": "@openwop/openwop-conformance",
7
- "version": "2.0.0-rc.31"
7
+ "version": "2.0.0-rc.32"
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": "40f24c6db73a016bee5d1184755a612eb49c0d12e3231ac5134a151356d92662"
422
+ "digest": "760cf6e6eb2c8165b57f176363b12da32acb8dbc2dae03e63ce109a71ee89bc6"
423
423
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "//": "The explicit coverage map for spec/v2/core/identity.md \u00a75 ('every id field in every v2 schema and every api/v2/openapi.yaml parameter and response body MUST $ref its kind'). It exists because the obvious check \u2014 fire when a property NAME equals a $def name \u2014 enforces \u00a75 only where naming happens to align. 88 *Id properties live in schemas/v2/; only 20 share a name with a kind. childRunId sat as {type:string,minLength:1} in the same file where parentRunId was correctly $ref'd, so a child run's identifier carried no tenant segment for the mandatory 403 id_tenant_mismatch refusal to read. A name-matching check would have reported green over it. Every *Id property MUST appear here exactly once: under `bindings` (it IS that kind and MUST $ref it) or under `notAKind` (nothing in ids.schema.json governs it, with the reason). A property in neither fails the check, so a new id field cannot be added without someone deciding which it is.",
3
+ "//": "The explicit coverage map for spec/v2/core/identity.md \u00a75 ('every id field in every v2 schema and every api/v2/openapi.yaml parameter and response body MUST $ref its kind'). It exists because the obvious check \u2014 fire when a property NAME equals a $def name \u2014 enforces \u00a75 only where naming happens to align. 88 *Id properties live in schemas/v2/; only 20 share a name with a kind. childRunId sat as {type:string,minLength:1} in the same file where parentRunId was correctly $ref'd, so a child run's identifier carried no tenant segment for the mandatory 403 id_tenant_mismatch refusal to read. A name-matching check would have reported green over it. Every *Id property MUST appear here exactly once: under `bindings` (it IS that kind and MUST $ref it) or under `notAKind` (nothing in ids.schema.json governs it, with the reason). A property in neither fails the check, so a new id field cannot be added without someone deciding which it is. PLURAL ARRAYS: a `*Ids` property is covered through its `items` schema, which MUST $ref the kind. The first version of this map saw only `/Id$/`, and a tier-1 host found `POST /runs:bulk-cancel` taking runIds[] from the body untyped \u2014 every tenant-bound id a v2 client owned answered not_found, silently.",
4
4
  "bindings": {
5
5
  "agentId": "agentId",
6
6
  "artifactTypeId": "typeId",
@@ -10,6 +10,7 @@
10
10
  "chainId": "chainId",
11
11
  "childRunId": "runId",
12
12
  "childWorkflowId": "workflowId",
13
+ "contributingRunIds": "runId",
13
14
  "currentNodeId": "nodeId",
14
15
  "deliveryId": "deliveryId",
15
16
  "effectId": "effectId",
@@ -23,6 +24,7 @@
23
24
  "lastNodeId": "nodeId",
24
25
  "libraryId": "libraryId",
25
26
  "nodeId": "nodeId",
27
+ "nodeIds": "nodeId",
26
28
  "nodeTypeId": "typeId",
27
29
  "originalEventId": "eventId",
28
30
  "parentRunId": "runId",
@@ -32,6 +34,7 @@
32
34
  "signingKeyId": "keyId",
33
35
  "sourceNodeId": "nodeId",
34
36
  "sourceRunId": "runId",
37
+ "sourceRunIds": "runId",
35
38
  "spanId": "spanId",
36
39
  "subjectId": "subjectId",
37
40
  "subscriptionId": "subscriptionId",
@@ -62,6 +65,7 @@
62
65
  "conversationId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
63
66
  "correlationId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
64
67
  "credentialId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
68
+ "cveIds": "CVE identifiers; the owning schema carries the ^CVE-[0-9]{4}-[0-9]+$ grammar",
65
69
  "departmentId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
66
70
  "envelopeId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
67
71
  "goalId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
@@ -72,7 +76,9 @@
72
76
  "invocationId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
73
77
  "leaseId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
74
78
  "memoryId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
79
+ "mergedIds": "memory-entry ids (agentMemoryConsolidated); no openwop id kind governs memory entries",
75
80
  "messageId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
81
+ "nextWorkerIds": "a UNION \u2014 \"worker node-ids OR agent-ids\", so no single kind can bind it; binding to either would reject the other legitimate form",
76
82
  "outputId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
77
83
  "pageId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
78
84
  "parentDepartmentId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
@@ -84,6 +90,7 @@
84
90
  "sectionId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
85
91
  "sessionId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
86
92
  "sourceEngineId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
93
+ "sourceIds": "memory-entry ids (memoryCompacted); no openwop id kind governs memory entries",
87
94
  "sourceManifestId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
88
95
  "speakerId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
89
96
  "stepId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$comment": "RFC 0172 \u00a7D.1 \u2014 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.0.0-rc.31",
3
+ "version": "2.0.0-rc.32",
4
4
  "corpusTag": null,
5
5
  "updated": "2026-09-03"
6
6
  }