@openwop/openwop-conformance 2.0.0-rc.60 → 2.0.0-rc.61
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "@openwop/spec-artifacts",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
4
|
-
"stampSha256": "
|
|
3
|
+
"version": "2.0.0-rc.61",
|
|
4
|
+
"stampSha256": "67b73f2a8e8399ca1b2dfe35d4f56068272b23c3f9a983149eefff0896c623b5"
|
|
5
5
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/openwop-conformance",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
3
|
+
"version": "2.0.0-rc.61",
|
|
4
4
|
"description": "Production-ready black-box conformance suite for OpenWOP v1.0 compliant servers.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -56,6 +56,6 @@
|
|
|
56
56
|
"@openwop/spec-artifacts": "file:../spec-artifacts"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"@openwop/spec-artifacts": "2.0.0-rc.
|
|
59
|
+
"@openwop/spec-artifacts": "2.0.0-rc.61"
|
|
60
60
|
}
|
|
61
61
|
}
|
package/requirements.json
CHANGED
|
@@ -26585,6 +26585,11 @@
|
|
|
26585
26585
|
"requirement": null,
|
|
26586
26586
|
"interpolated": true
|
|
26587
26587
|
},
|
|
26588
|
+
{
|
|
26589
|
+
"section": "replay.md §The effect-seam manifest",
|
|
26590
|
+
"requirement": null,
|
|
26591
|
+
"interpolated": true
|
|
26592
|
+
},
|
|
26588
26593
|
{
|
|
26589
26594
|
"section": "RFC 0173 §C.1",
|
|
26590
26595
|
"requirement": null,
|
|
@@ -26600,7 +26605,7 @@
|
|
|
26600
26605
|
{
|
|
26601
26606
|
"id": "openwop.it.v2-effect-seam-manifest.the-replay-facet-names-the-manifest-address-as-the-constant-host-effect-seams",
|
|
26602
26607
|
"file": "v2-effect-seam-manifest.test.ts",
|
|
26603
|
-
"line":
|
|
26608
|
+
"line": 118,
|
|
26604
26609
|
"title": "the replay facet names the manifest address as the constant /host/effect-seams",
|
|
26605
26610
|
"explicitId": "openwop.requirement.0173.effect-seam-manifest.facet",
|
|
26606
26611
|
"citations": [
|
|
@@ -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.
|
|
4
|
+
"version": "2.0.0-rc.61",
|
|
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": "
|
|
13
|
-
"api/v2/asyncapi.yaml": "
|
|
14
|
-
"api/v2/openapi.yaml": "
|
|
12
|
+
"api/seams-v2.yaml": "61f994f6ddec77b13abf2ed1619915722c865e4f62e8e01dab2842ecf5c527e1",
|
|
13
|
+
"api/v2/asyncapi.yaml": "d15466109cf6ac72ecd0cac2d757809a29e2bafe194903efd52fe91c21a58c46",
|
|
14
|
+
"api/v2/openapi.yaml": "3f40eaf3333ac91c50e5c5c232af8066b7783c36bcea2a2670bc3b36b2263136",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"schemas/v2/debug-bundle.schema.json": "0bfa4b1d91fefbc12c95670dba9d5eacb72b879bb9a5c074e821ca9ed0fee6fd",
|
|
133
133
|
"schemas/v2/dispatch-config.schema.json": "4a7db312e6b4a14cf5b1ad2b71367878c77b6321cc456f5b3644dd6434e94cbd",
|
|
134
134
|
"schemas/v2/effect-ledger-projection.schema.json": "9e690f8e5dbf9aa7c82eef4bf7cf96c024f0f8626ad5bbaca3ff25ac63c7cab2",
|
|
135
|
-
"schemas/v2/effect-seam-manifest.schema.json": "
|
|
135
|
+
"schemas/v2/effect-seam-manifest.schema.json": "197ef9944ab027a50d1b9352f317cbbc12c8ad955fdb14650fb90477052ffef0",
|
|
136
136
|
"schemas/v2/envelopes/clarification.request.schema.json": "9e39d7b09f0b3ce7902d6aa19ca0eb52867b634efc78a881469c4d44fb3333e7",
|
|
137
137
|
"schemas/v2/envelopes/error.schema.json": "6a11fa3b9d61736fcb5675e6ac9825919aa609dceba13ef5615993d54647802b",
|
|
138
138
|
"schemas/v2/envelopes/media.audio.schema.json": "a422352240a592c12840172e70835729f72b6b21915d14e926b6ffcd5d52a704",
|
|
@@ -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": "
|
|
202
|
+
"spec/v1/core-standard-manifest.json": "d0b1aaf541284ba740b80ceb6758ec3cd1b954341d751c803d194b4840d11b32",
|
|
203
203
|
"spec/v1/deprecations.json": "1d5acb69a9b8ccb57275a95605f74aef1d920685f8407c9d382a46b59dc803bb",
|
|
204
204
|
"spec/v1/deprecations.schema.json": "18c87e78bedc210431f795ae44c5b5d202f2f3317850d5cf86867d4f1fa1cdfb",
|
|
205
205
|
"spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
|
|
@@ -230,8 +230,8 @@
|
|
|
230
230
|
"spec/v2/path-manifest.json": "034152e09b1458c66810d4050e20a273b2b9b8fe2d92b66e8b819477de58a1be",
|
|
231
231
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
232
232
|
"spec/v2/profiles.json": "bf38fc9c5ad32212385ad798c0744de33837ea80c0ef9bec86ecefb4ea914f27",
|
|
233
|
-
"spec/v2/release.json": "
|
|
233
|
+
"spec/v2/release.json": "27a4db67291746c0bcaa5814703a3c50b1bbe0ed22c257cad616b3ea5a1b8469",
|
|
234
234
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624"
|
|
235
235
|
},
|
|
236
|
-
"corpusCommit": "
|
|
236
|
+
"corpusCommit": "2b321db0d2d4520b8877ca83bd21bb6f49a46b99"
|
|
237
237
|
}
|
|
@@ -35,9 +35,9 @@ import { softSkip } from '../lib/soft-skip.js';
|
|
|
35
35
|
import { req } from '../lib/requirement-ids.js';
|
|
36
36
|
|
|
37
37
|
const MANIFEST_PATH = '/host/effect-seams';
|
|
38
|
-
const KINDS = ['http', 'queue', 'storage', 'provider-sdk', 'webhook-fanout'] as const;
|
|
38
|
+
const KINDS = ['http', 'smtp', 'queue', 'storage', 'provider-sdk', 'webhook-fanout', 'other'] as const;
|
|
39
39
|
|
|
40
|
-
interface SeamRow { seam?: unknown; kind?: unknown; guarded?: unknown; guardedBy?: unknown; branchReFires?: unknown }
|
|
40
|
+
interface SeamRow { seam?: unknown; kind?: unknown; guarded?: unknown; guardedBy?: unknown; branchReFires?: unknown; note?: unknown }
|
|
41
41
|
interface Manifest { manifestVersion?: unknown; seams?: SeamRow[] }
|
|
42
42
|
|
|
43
43
|
async function discovery(): Promise<Record<string, unknown> | null> {
|
|
@@ -84,6 +84,16 @@ describe('RFC 0173 §C.1 — effect-seam-manifest (gated on replay)', () => {
|
|
|
84
84
|
(KINDS as readonly string[]).includes(String(row.kind)),
|
|
85
85
|
req('openwop.requirement.0173.effect-seam-manifest', 'effect-seam-manifest.schema.json seams[].kind', `kind MUST be one of ${KINDS.join(' | ')} — seam ${String(row.seam)} declares ${String(row.kind)}`),
|
|
86
86
|
).toBe(true);
|
|
87
|
+
// `other` is the escape for a mechanism the enum does not name, and the
|
|
88
|
+
// note is what keeps it from being a place to hide a seam: a row that
|
|
89
|
+
// cannot say WHICH mechanism it is has not been enumerated, it has been
|
|
90
|
+
// labelled. Suite 2.0.0-rc.61, replay.md §The effect-seam manifest.
|
|
91
|
+
if (String(row.kind) === 'other') {
|
|
92
|
+
expect(
|
|
93
|
+
typeof row.note === 'string' && row.note.trim().length > 0,
|
|
94
|
+
req('openwop.requirement.0173.effect-seam-manifest', 'replay.md §The effect-seam manifest', `a kind: other row MUST carry a note naming the mechanism (raw TCP, gRPC, a filesystem write, a device SDK) — seam ${String(row.seam)} declares other with no note`),
|
|
95
|
+
).toBe(true);
|
|
96
|
+
}
|
|
87
97
|
}
|
|
88
98
|
// One row per kind the host declares: the set of kinds the manifest names is
|
|
89
99
|
// the host's declaration, and each named kind is backed by at least one row.
|