@openwop/spec-artifacts 2.3.4 → 2.4.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.
Files changed (45) hide show
  1. package/CORPUS-STAMP.json +46 -46
  2. package/api/seams-v2.yaml +1 -1
  3. package/api/v2/asyncapi.yaml +1 -1
  4. package/api/v2/openapi.yaml +8 -4
  5. package/package.json +1 -1
  6. package/schemas/v2/form-content-pack-manifest.schema.json +31 -0
  7. package/schemas/v2/ids.schema.json +7 -7
  8. package/schemas/v2/run-event.schema.json +1 -1
  9. package/schemas/v2/trigger-subscription.schema.json +2 -3
  10. package/schemas/v2/webhook-delivery.schema.json +5 -5
  11. package/schemas/v2/workflow-chain-pack-manifest.schema.json +41 -40
  12. package/spec/v1/alias-detectors.json +7 -1
  13. package/spec/v1/core-standard-manifest.json +2 -2
  14. package/spec/v1/deprecations.json +86 -68
  15. package/spec/v1/gaps.json +1 -785
  16. package/spec/v1/spec-gaps.json +0 -784
  17. package/spec/v2/README.md +54 -15
  18. package/spec/v2/core/conformance.md +9 -7
  19. package/spec/v2/core/events.md +6 -1
  20. package/spec/v2/core/headers.md +1 -1
  21. package/spec/v2/core/interrupt.md +6 -0
  22. package/spec/v2/core/persistence.md +10 -7
  23. package/spec/v2/core/security-defaults.md +6 -7
  24. package/spec/v2/core/versioning.md +19 -7
  25. package/spec/v2/core/webhooks.md +4 -1
  26. package/spec/v2/ext/README.md +23 -13
  27. package/spec/v2/ext/a2uiSurface/README.md +18 -7
  28. package/spec/v2/ext/brand/README.md +18 -7
  29. package/spec/v2/ext/canvas/README.md +18 -7
  30. package/spec/v2/ext/chat/README.md +18 -7
  31. package/spec/v2/ext/coordination/README.md +18 -7
  32. package/spec/v2/ext/dataIntegration/README.md +18 -7
  33. package/spec/v2/ext/entities/README.md +18 -7
  34. package/spec/v2/ext/grpc-transport/README.md +10 -5
  35. package/spec/v2/ext/kanban/README.md +18 -7
  36. package/spec/v2/ext/knowledge/README.md +18 -7
  37. package/spec/v2/ext/launchStudio/README.md +18 -7
  38. package/spec/v2/ext/messaging/README.md +18 -7
  39. package/spec/v2/ext/portability/README.md +11 -2
  40. package/spec/v2/ext/provider-idempotency/README.md +10 -2
  41. package/spec/v2/ext/restTransport/README.md +18 -7
  42. package/spec/v2/ext/sandbox-runtime-notes/README.md +9 -2
  43. package/spec/v2/ext/webResearch/README.md +18 -7
  44. package/spec/v2/id-field-bindings.json +4 -4
  45. package/spec/v2/release.json +3 -3
@@ -1,4 +1,7 @@
1
- # `entities` — extension
1
+ # `entities` extension
2
+
3
+ > **Status: Draft · v2 extension.** Discovery-only reservation; no portable
4
+ > operations or payload contract is defined in v2.3.3.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
@@ -6,15 +9,23 @@
6
9
  | **technical:** | `experimental` |
7
10
  | **adoption:** | `single-witness` |
8
11
  | **peer-dependency id** | `entities` |
9
- | **advertised as** | `extensions.<org>.entities` (RFC 0169 §A.4) — never a root key |
12
+ | **advertised as** | `extensions.<org>.entities` |
10
13
  | **owning RFC** | RFC 0144 |
14
+ | **declared facets** | none defined |
11
15
 
12
- > **Status: Draft · v2.0.0-rc (2026-09-03).** Extension document (RFC 0169 §B.3; RFC 0167 Axiom 1: a family that cannot be witnessed unaided lives here and is not a core obligation).
16
+ ## Contract boundary
13
17
 
14
- ## What it is
18
+ A host MAY advertise this identifier under its registered organization namespace.
19
+ The extension record is organization-defined, so clients MUST NOT infer portable
20
+ operations, payloads, or authorization semantics from its presence. A pack may
21
+ name `entities` as a dependency only when the host and pack share
22
+ an out-of-band definition of that dependency.
15
23
 
16
- RFC 0169 §B.3 (RFC 0144 extension class; prose-only §host.* section in v1; served under extensions.openwop-app.* by the one host that has it) The v1 prose that defines the surface is `spec/v1/host-capabilities.md` §host.entities (RFC 0144 extension class); it stands as the definition until this document carries its own normative text (P3-E and the Phase 4 host legs). A host that serves this surface advertises it under `extensions.<org>.entities` with the RFC 0169 record shape; a pack that requires it names `entities` in `peerDependencies` (RFC 0177 §B.1).
24
+ The v1 description, [`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/v2.3.3/spec/v1/host-capabilities.md#hostentities) (§host.entities), is useful for migration but is not a
25
+ standalone v2 interoperability contract. A future revision can replace this
26
+ boundary with normative behavior, schemas, and a behavioral witness.
17
27
 
18
- ## Witness
28
+ ## Conformance
19
29
 
20
- `claims-check`: the suite can read the claim from discovery but has no behavioral probe; adoption is measured by the INTEROP-MATRIX bundle evidence.
30
+ The current `claims-check` witness validates only that the discovery claim is
31
+ well formed. It does not demonstrate compatible runtime behavior.
@@ -1,13 +1,18 @@
1
- # `grpc-transport` — extension (demoted)
1
+ # gRPC transport notes
2
+
3
+ > **Status: Draft · non-normative note.** This is not a declared extension
4
+ > family and is outside this rule.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
5
8
  | **witness:** | `unwitnessable` |
6
9
  | **technical:** | `experimental` |
7
10
  | **adoption:** | `none` |
8
- | **advertised as** | not advertisable — no `grpc` block exists at the v2 root (RFC 0175 §A.1; RFC 0169 §A.1) |
11
+ | **advertised as** | not advertisable; v2 has no `grpc` discovery record |
9
12
  | **owning RFC** | RFC 0175 (demotion); RFC 0094 §H (v1 text) |
10
13
 
11
- > **Status: Draft · v2.0.0-rc (2026-09-03).** RFC 0175 §A.1: `grpc-transport.md` leaves `core/`; the suite ships no gRPC client and no host advertises the block, so the transport is `unwitnessable`. Its six v1 MUSTs are SHOULDs of this extension. `openwop.proto` beside this file is a NON-NORMATIVE sketch (the v1 proto, unchanged; `package openwop.v1`). The door back into core is named: a v2.x additive RFC that generates the proto from `spec/v2/declaration.json` and lands a suite client. **Not a declared family — notes, outside the `ext/README.md` maturity rule; `Draft` here means unfrozen prose, not an unwitnessed family.**
12
-
13
- The v1 definition stands at `spec/v1/grpc-transport.md` for v1.x hosts.
14
+ The [v1 `openwop.proto`](https://github.com/openwop/openwop/blob/v2.3.3/spec/v2/ext/grpc-transport/openwop.proto)
15
+ is retained as a sketch and uses `package openwop.v1`; it is not a v2 contract.
16
+ v2 has no normative gRPC transport because the conformance suite has no gRPC
17
+ client or behavioral witness. The v1 contract remains in
18
+ [`spec/v1/grpc-transport.md`](https://github.com/openwop/openwop/blob/v2.3.3/spec/v1/grpc-transport.md).
@@ -1,4 +1,7 @@
1
- # `kanban` — extension
1
+ # `kanban` extension
2
+
3
+ > **Status: Draft · v2 extension.** Discovery-only reservation; no portable
4
+ > operations or payload contract is defined in v2.3.3.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
@@ -6,15 +9,23 @@
6
9
  | **technical:** | `experimental` |
7
10
  | **adoption:** | `single-witness` |
8
11
  | **peer-dependency id** | `kanban` |
9
- | **advertised as** | `extensions.<org>.kanban` (RFC 0169 §A.4) — never a root key |
12
+ | **advertised as** | `extensions.<org>.kanban` |
10
13
  | **owning RFC** | RFC 0144 |
14
+ | **declared facets** | none defined |
11
15
 
12
- > **Status: Draft · v2.0.0-rc (2026-09-03).** Extension document (RFC 0169 §B.3; RFC 0167 Axiom 1: a family that cannot be witnessed unaided lives here and is not a core obligation).
16
+ ## Contract boundary
13
17
 
14
- ## What it is
18
+ A host MAY advertise this identifier under its registered organization namespace.
19
+ The extension record is organization-defined, so clients MUST NOT infer portable
20
+ operations, payloads, or authorization semantics from its presence. A pack may
21
+ name `kanban` as a dependency only when the host and pack share
22
+ an out-of-band definition of that dependency.
15
23
 
16
- RFC 0169 §B.3 (RFC 0144 extension class; prose-only §host.* section in v1; served under extensions.openwop-app.* by the one host that has it) The v1 prose that defines the surface is `spec/v1/host-capabilities.md` §host.kanban (RFC 0144 extension class); it stands as the definition until this document carries its own normative text (P3-E and the Phase 4 host legs). A host that serves this surface advertises it under `extensions.<org>.kanban` with the RFC 0169 record shape; a pack that requires it names `kanban` in `peerDependencies` (RFC 0177 §B.1).
24
+ The v1 description, [`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/v2.3.3/spec/v1/host-capabilities.md#hostkanban) (§host.kanban), is useful for migration but is not a
25
+ standalone v2 interoperability contract. A future revision can replace this
26
+ boundary with normative behavior, schemas, and a behavioral witness.
17
27
 
18
- ## Witness
28
+ ## Conformance
19
29
 
20
- `claims-check`: the suite can read the claim from discovery but has no behavioral probe; adoption is measured by the INTEROP-MATRIX bundle evidence.
30
+ The current `claims-check` witness validates only that the discovery claim is
31
+ well formed. It does not demonstrate compatible runtime behavior.
@@ -1,4 +1,7 @@
1
- # `knowledge` — extension
1
+ # `knowledge` extension
2
+
3
+ > **Status: Draft · v2 extension.** Discovery-only reservation; no portable
4
+ > operations or payload contract is defined in v2.3.3.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
@@ -6,15 +9,23 @@
6
9
  | **technical:** | `experimental` |
7
10
  | **adoption:** | `single-witness` |
8
11
  | **peer-dependency id** | `knowledge` |
9
- | **advertised as** | `extensions.<org>.knowledge` (RFC 0169 §A.4) — never a root key |
12
+ | **advertised as** | `extensions.<org>.knowledge` |
10
13
  | **owning RFC** | RFC 0144 |
14
+ | **declared facets** | none defined |
11
15
 
12
- > **Status: Draft · v2.0.0-rc (2026-09-03).** Extension document (RFC 0169 §B.3; RFC 0167 Axiom 1: a family that cannot be witnessed unaided lives here and is not a core obligation).
16
+ ## Contract boundary
13
17
 
14
- ## What it is
18
+ A host MAY advertise this identifier under its registered organization namespace.
19
+ The extension record is organization-defined, so clients MUST NOT infer portable
20
+ operations, payloads, or authorization semantics from its presence. A pack may
21
+ name `knowledge` as a dependency only when the host and pack share
22
+ an out-of-band definition of that dependency.
15
23
 
16
- RFC 0169 §B.3 (RFC 0144 extension class; prose-only §host.* section in v1; served under extensions.openwop-app.* by the one host that has it) The v1 prose that defines the surface is `spec/v1/host-capabilities.md` §host.knowledge (RFC 0144 extension class); it stands as the definition until this document carries its own normative text (P3-E and the Phase 4 host legs). A host that serves this surface advertises it under `extensions.<org>.knowledge` with the RFC 0169 record shape; a pack that requires it names `knowledge` in `peerDependencies` (RFC 0177 §B.1).
24
+ The v1 description, [`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/v2.3.3/spec/v1/host-capabilities.md#hostknowledge) (§host.knowledge), is useful for migration but is not a
25
+ standalone v2 interoperability contract. A future revision can replace this
26
+ boundary with normative behavior, schemas, and a behavioral witness.
17
27
 
18
- ## Witness
28
+ ## Conformance
19
29
 
20
- `claims-check`: the suite can read the claim from discovery but has no behavioral probe; adoption is measured by the INTEROP-MATRIX bundle evidence.
30
+ The current `claims-check` witness validates only that the discovery claim is
31
+ well formed. It does not demonstrate compatible runtime behavior.
@@ -1,4 +1,7 @@
1
- # `launchStudio` — extension
1
+ # `launchStudio` extension
2
+
3
+ > **Status: Draft · v2 extension.** Discovery-only reservation; no portable
4
+ > operations or payload contract is defined in v2.3.3.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
@@ -6,15 +9,23 @@
6
9
  | **technical:** | `experimental` |
7
10
  | **adoption:** | `single-witness` |
8
11
  | **peer-dependency id** | `launchStudio` |
9
- | **advertised as** | `extensions.<org>.launchStudio` (RFC 0169 §A.4) — never a root key |
12
+ | **advertised as** | `extensions.<org>.launchStudio` |
10
13
  | **owning RFC** | RFC 0144 |
14
+ | **declared facets** | none defined |
11
15
 
12
- > **Status: Draft · v2.0.0-rc (2026-09-03).** Extension document (RFC 0169 §B.3; RFC 0167 Axiom 1: a family that cannot be witnessed unaided lives here and is not a core obligation).
16
+ ## Contract boundary
13
17
 
14
- ## What it is
18
+ A host MAY advertise this identifier under its registered organization namespace.
19
+ The extension record is organization-defined, so clients MUST NOT infer portable
20
+ operations, payloads, or authorization semantics from its presence. A pack may
21
+ name `launchStudio` as a dependency only when the host and pack share
22
+ an out-of-band definition of that dependency.
15
23
 
16
- RFC 0169 §B.3 (RFC 0144 extension class; prose-only §host.* section in v1; served under extensions.openwop-app.* by the one host that has it) The v1 prose that defines the surface is `spec/v1/host-capabilities.md` §host.launchStudio (RFC 0144 extension class); it stands as the definition until this document carries its own normative text (P3-E and the Phase 4 host legs). A host that serves this surface advertises it under `extensions.<org>.launchStudio` with the RFC 0169 record shape; a pack that requires it names `launchStudio` in `peerDependencies` (RFC 0177 §B.1).
24
+ The v1 description, [`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/v2.3.3/spec/v1/host-capabilities.md#hostlaunchstudio) (§host.launchStudio), is useful for migration but is not a
25
+ standalone v2 interoperability contract. A future revision can replace this
26
+ boundary with normative behavior, schemas, and a behavioral witness.
17
27
 
18
- ## Witness
28
+ ## Conformance
19
29
 
20
- `claims-check`: the suite can read the claim from discovery but has no behavioral probe; adoption is measured by the INTEROP-MATRIX bundle evidence.
30
+ The current `claims-check` witness validates only that the discovery claim is
31
+ well formed. It does not demonstrate compatible runtime behavior.
@@ -1,4 +1,7 @@
1
- # `messaging` — extension
1
+ # `messaging` extension
2
+
3
+ > **Status: Draft · v2 extension.** Discovery-only reservation; no portable
4
+ > operations or payload contract is defined in v2.3.3.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
@@ -6,15 +9,23 @@
6
9
  | **technical:** | `experimental` |
7
10
  | **adoption:** | `single-witness` |
8
11
  | **peer-dependency id** | `messaging` |
9
- | **advertised as** | `extensions.<org>.messaging` (RFC 0169 §A.4) — never a root key |
12
+ | **advertised as** | `extensions.<org>.messaging` |
10
13
  | **owning RFC** | RFC 0144 |
14
+ | **declared facets** | none defined |
11
15
 
12
- > **Status: Draft · v2.0.0-rc (2026-09-03).** Extension document (RFC 0169 §B.3; RFC 0167 Axiom 1: a family that cannot be witnessed unaided lives here and is not a core obligation).
16
+ ## Contract boundary
13
17
 
14
- ## What it is
18
+ A host MAY advertise this identifier under its registered organization namespace.
19
+ The extension record is organization-defined, so clients MUST NOT infer portable
20
+ operations, payloads, or authorization semantics from its presence. A pack may
21
+ name `messaging` as a dependency only when the host and pack share
22
+ an out-of-band definition of that dependency.
15
23
 
16
- RFC 0169 §B.3 (RFC 0144 extension class; prose-only §host.* section in v1; served under extensions.openwop-app.* by the one host that has it) The v1 prose that defines the surface is `spec/v1/host-capabilities.md` §host.messaging (RFC 0144 extension class); it stands as the definition until this document carries its own normative text (P3-E and the Phase 4 host legs). A host that serves this surface advertises it under `extensions.<org>.messaging` with the RFC 0169 record shape; a pack that requires it names `messaging` in `peerDependencies` (RFC 0177 §B.1).
24
+ The v1 description, [`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/v2.3.3/spec/v1/host-capabilities.md#hostmessaging) (§host.messaging), is useful for migration but is not a
25
+ standalone v2 interoperability contract. A future revision can replace this
26
+ boundary with normative behavior, schemas, and a behavioral witness.
17
27
 
18
- ## Witness
28
+ ## Conformance
19
29
 
20
- `claims-check`: the suite can read the claim from discovery but has no behavioral probe; adoption is measured by the INTEROP-MATRIX bundle evidence.
30
+ The current `claims-check` witness validates only that the discovery claim is
31
+ well formed. It does not demonstrate compatible runtime behavior.
@@ -1,4 +1,7 @@
1
- # `portability` — extension (goals, export, import)
1
+ # Portability notes
2
+
3
+ > **Status: Draft · non-core note.** This is not a declared extension family
4
+ > and is outside this rule.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
@@ -8,4 +11,10 @@
8
11
  | **advertised as** | `extensions.<org>.portability` |
9
12
  | **owning RFC** | RFC 0168 (decided in C.1 per RFC 0174 §E.2), RFC 0086/0087 (v1 text) |
10
13
 
11
- > **Status: Draft · v2.0.0-rc (2026-09-03).** `/v1/goals`, `/v1/export`, `/v1/import` were absent from the v1 OpenAPI while `spec/v1/portability.md` and the goals prose described them (RFC 0174 §E.2 noted the decision belongs to C.1). Decided (Phase 3 plan §11): they do not enter `api/v2/openapi.yaml`; the export/import bundle (`schemas/v2/export-bundle.schema.json`, `bundleVersion` "2") and the goals surface are this extension, advertised under `extensions.<org>.portability`, with `spec/v1/portability.md` as the definition until a v2.x additive RFC lands their operations with a witness. **Not a declared family — notes, outside the `ext/README.md` maturity rule; `Draft` here means unfrozen prose, not an unwitnessed family.**
14
+ The v2 core API does not define goals, export, or import operations. The
15
+ [`export-bundle` schema](../../../../schemas/v2/export-bundle.schema.json) records
16
+ the proposed bundle shape, but no portable transport or behavioral witness is
17
+ defined. A host MAY expose an organization-specific portability extension; a
18
+ client MUST NOT assume it is compatible with another host's extension.
19
+
20
+ The v1 background is in [`spec/v1/portability.md`](https://github.com/openwop/openwop/blob/v2.3.3/spec/v1/portability.md).
@@ -1,4 +1,7 @@
1
- # `provider-idempotency` — extension (registry)
1
+ # Provider idempotency registry
2
+
3
+ > **Status: Draft · supporting registry.** This is not a declared extension
4
+ > family and is outside this rule.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
@@ -8,4 +11,9 @@
8
11
  | **advertised as** | not a discovery family — a data registry (`registry.json`) the Layer-2 obligation reads |
9
12
  | **owning RFC** | RFC 0173 §C.2, RFC 0150 G3 |
10
13
 
11
- > **Status: Draft · v2.0.0-rc (2026-09-03).** `registry.json` records which providers have a natural business-identity key (RFC 0173 §C.2: business-identity keying is the core obligation; the activity recipe is the documented fallback). Rows are measured by the Phase 4 host legs. The witness is `GET /runs/{runId}/effects` (`effect-ledger-projection.schema.json` `keying`). **Not a declared family — notes, outside the `ext/README.md` maturity rule; `Draft` here means unfrozen prose, not an unwitnessed family.**
14
+ [`registry.json`](./registry.json) lists providers known to expose a natural
15
+ business-identity key. It informs the Layer-2 idempotency requirement in
16
+ [`security-defaults.md`](../../core/security-defaults.md); it does not add a
17
+ discovery family. Hosts report the chosen strategy through
18
+ `GET /runs/{runId}/effects` and the `keying` field of
19
+ `effect-ledger-projection.schema.json`.
@@ -1,4 +1,7 @@
1
- # `restTransport` — extension
1
+ # `restTransport` extension
2
+
3
+ > **Status: Draft · v2 extension.** Discovery-only reservation; no portable
4
+ > operations or payload contract is defined in v2.3.3.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
@@ -6,15 +9,23 @@
6
9
  | **technical:** | `experimental` |
7
10
  | **adoption:** | `none` |
8
11
  | **peer-dependency id** | `restTransport` |
9
- | **advertised as** | `extensions.<org>.restTransport` (RFC 0169 §A.4) — never a root key |
12
+ | **advertised as** | `extensions.<org>.restTransport` |
10
13
  | **owning RFC** | RFC 0115 |
14
+ | **declared facets** | `conditionalRunGet`, `contentEncodings` |
11
15
 
12
- > **Status: Draft · v2.0.0-rc (2026-09-03).** Extension document (RFC 0169 §B.3; RFC 0167 Axiom 1: a family that cannot be witnessed unaided lives here and is not a core obligation).
16
+ ## Contract boundary
13
17
 
14
- ## What it is
18
+ A host MAY advertise this identifier under its registered organization namespace.
19
+ The extension record is organization-defined, so clients MUST NOT infer portable
20
+ operations, payloads, or authorization semantics from its presence. A pack may
21
+ name `restTransport` as a dependency only when the host and pack share
22
+ an out-of-band definition of that dependency.
15
23
 
16
- RFC 0169 §C.5 (claims-check; ext/ unless a behavioral witness lands) The v1 prose that defines the surface is `spec/v1/capabilities.md` (root key `restTransport`, RFC 0113); it stands as the definition until this document carries its own normative text (P3-E and the Phase 4 host legs). A host that serves this surface advertises it under `extensions.<org>.restTransport` with the RFC 0169 record shape; a pack that requires it names `restTransport` in `peerDependencies` (RFC 0177 §B.1).
24
+ The v1 description, [`spec/v1/capabilities.md`](https://github.com/openwop/openwop/blob/v2.3.3/spec/v1/capabilities.md) (`restTransport`), is useful for migration but is not a
25
+ standalone v2 interoperability contract. A future revision can replace this
26
+ boundary with normative behavior, schemas, and a behavioral witness.
17
27
 
18
- ## Witness
28
+ ## Conformance
19
29
 
20
- `claims-check`: the suite can read the claim from discovery but has no behavioral probe; adoption is measured by the INTEROP-MATRIX bundle evidence.
30
+ The current `claims-check` witness validates only that the discovery claim is
31
+ well formed. It does not demonstrate compatible runtime behavior.
@@ -1,4 +1,7 @@
1
- # `sandbox-runtime-notes` — extension (non-normative)
1
+ # Sandbox runtime notes
2
+
3
+ > **Status: Draft · non-normative note.** This is not a declared extension
4
+ > family and is outside this rule.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
@@ -8,4 +11,8 @@
8
11
  | **advertised as** | not advertisable (notes, not a surface) |
9
12
  | **owning RFC** | RFC 0173 §D (RFC 0035 superseded by the `packs` obligation at the cut) |
10
13
 
11
- > **Status: Draft · v2.0.0-rc (2026-09-03).** RFC 0035's `node:vm` demonstrator and its runtime notes are kept here as implementation history. In v2 isolation binds with pack execution (`security-defaults.md`): `sandbox.isolationModel` names `wasm | process | container | vm`; `node:vm` is not a value (RFC 0035 §20, `:130`: escapable by design). A host MAY register and validate packs without executing them. RFC 0035 flips `Superseded` at the RC. **Not a declared family — notes, outside the `ext/README.md` maturity rule; `Draft` here means unfrozen prose, not an unwitnessed family.**
14
+ RFC 0035's `node:vm` demonstrator is retained only as implementation history;
15
+ `node:vm` is not an isolation model. The v2 contract is in
16
+ [`security-defaults.md`](../../core/security-defaults.md):
17
+ `sandbox.isolationModel` is one of `wasm`, `process`, `container`, or `vm`, and
18
+ pack execution is bound to the advertised isolation mode.
@@ -1,4 +1,7 @@
1
- # `webResearch` — extension
1
+ # `webResearch` extension
2
+
3
+ > **Status: Draft · v2 extension.** Discovery-only reservation; no portable
4
+ > operations or payload contract is defined in v2.3.3.
2
5
 
3
6
  | Field | Value |
4
7
  | --- | --- |
@@ -6,15 +9,23 @@
6
9
  | **technical:** | `experimental` |
7
10
  | **adoption:** | `single-witness` |
8
11
  | **peer-dependency id** | `webResearch` |
9
- | **advertised as** | `extensions.<org>.webResearch` (RFC 0169 §A.4) — never a root key |
12
+ | **advertised as** | `extensions.<org>.webResearch` |
10
13
  | **owning RFC** | RFC 0144 |
14
+ | **declared facets** | none defined |
11
15
 
12
- > **Status: Draft · v2.0.0-rc (2026-09-03).** Extension document (RFC 0169 §B.3; RFC 0167 Axiom 1: a family that cannot be witnessed unaided lives here and is not a core obligation).
16
+ ## Contract boundary
13
17
 
14
- ## What it is
18
+ A host MAY advertise this identifier under its registered organization namespace.
19
+ The extension record is organization-defined, so clients MUST NOT infer portable
20
+ operations, payloads, or authorization semantics from its presence. A pack may
21
+ name `webResearch` as a dependency only when the host and pack share
22
+ an out-of-band definition of that dependency.
15
23
 
16
- RFC 0169 §B.3 (RFC 0144 extension class; prose-only §host.* section in v1; served under extensions.openwop-app.* by the one host that has it) The v1 prose that defines the surface is `spec/v1/host-capabilities.md` §host.webResearch (RFC 0144 extension class); it stands as the definition until this document carries its own normative text (P3-E and the Phase 4 host legs). A host that serves this surface advertises it under `extensions.<org>.webResearch` with the RFC 0169 record shape; a pack that requires it names `webResearch` in `peerDependencies` (RFC 0177 §B.1).
24
+ The v1 description, [`spec/v1/host-capabilities.md`](https://github.com/openwop/openwop/blob/v2.3.3/spec/v1/host-capabilities.md#hostwebresearch) (§host.webResearch), is useful for migration but is not a
25
+ standalone v2 interoperability contract. A future revision can replace this
26
+ boundary with normative behavior, schemas, and a behavioral witness.
17
27
 
18
- ## Witness
28
+ ## Conformance
19
29
 
20
- `claims-check`: the suite can read the claim from discovery but has no behavioral probe; adoption is measured by the INTEROP-MATRIX bundle evidence.
30
+ The current `claims-check` witness validates only that the discovery claim is
31
+ well formed. It does not demonstrate compatible runtime behavior.
@@ -20,6 +20,7 @@
20
20
  "failedNodeId": "nodeId",
21
21
  "fromAgentId": "agentId",
22
22
  "interruptId": "interruptId",
23
+ "interruptedNodeId": "nodeId",
23
24
  "keyId": "keyId",
24
25
  "lastNodeId": "nodeId",
25
26
  "libraryId": "libraryId",
@@ -47,9 +48,9 @@
47
48
  "traceId": "traceId",
48
49
  "triggerSubscriptionId": "subscriptionId",
49
50
  "typeId": "typeId",
51
+ "webhookId": "subscriptionId",
50
52
  "workflowId": "workflowId",
51
- "workspaceId": "workspaceId",
52
- "interruptedNodeId": "nodeId"
53
+ "workspaceId": "workspaceId"
53
54
  },
54
55
  "notAKind": {
55
56
  "annotationId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
@@ -76,7 +77,7 @@
76
77
  "hostId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
77
78
  "instanceId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
78
79
  "invocationId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
79
- "itemIds": "no openwop id kind governs this surface; these are artifact-local item identifiers inside RefineFeedback (interrupt.md \u00a7RefineFeedback), opaque to the protocol",
80
+ "itemIds": "no openwop id kind governs this surface; these are artifact-local item identifiers inside RefineFeedback (interrupt.md §RefineFeedback), opaque to the protocol",
80
81
  "leaseId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
81
82
  "memoryId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
82
83
  "mergedIds": "memory-entry ids (agentMemoryConsolidated); no openwop id kind governs memory entries",
@@ -100,7 +101,6 @@
100
101
  "suiteId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
101
102
  "taskId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
102
103
  "toolId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
103
- "webhookId": "no openwop id kind governs this surface; the grammar is the owning schema's own",
104
104
  "workerId": "no openwop id kind governs this surface; the grammar is the owning schema's own"
105
105
  }
106
106
  }
@@ -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.3.4",
4
- "corpusTag": "v2.3.4",
5
- "updated": "2026-09-16"
3
+ "version": "2.4.1",
4
+ "corpusTag": "v2.4.1",
5
+ "updated": "2026-09-18"
6
6
  }