@openwop/openwop-conformance 2.4.1 → 2.4.3
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# `@openwop/openwop-conformance` Changelog
|
|
2
2
|
|
|
3
|
+
## [2.4.3] — 2026-09-18 — a check with nothing to complain about is not `blocked`
|
|
4
|
+
|
|
5
|
+
**Why a patch.** Two assertions change shape inside existing legs; no scenario
|
|
6
|
+
file is added or removed and no host obligation changes.
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
|
|
10
|
+
- **`spec-corpus-validity`'s per-file `$ref` and Markdown-link legs asserted
|
|
11
|
+
only on failure.** A schema with no absolute `$ref`, or a Markdown file with
|
|
12
|
+
no local links, ran an empty loop and asserted nothing — and an `it` that
|
|
13
|
+
passes with zero assertions resolves to `blocked` with the unclassified-return
|
|
14
|
+
detail. 608 of the corpus ledger's 943 ids read `blocked` for that reason.
|
|
15
|
+
Each leg now collects its offenders and asserts once, unconditionally, which
|
|
16
|
+
also reports every bad link or `$ref` rather than only the first. Ledger:
|
|
17
|
+
`blocked` 608 → 0, `executed-pass` 841 → 1449.
|
|
18
|
+
|
|
19
|
+
## [2.4.2] — 2026-09-18 — an id no host could ever witness
|
|
20
|
+
|
|
21
|
+
**Why a patch.** One assertion moves into its own `it`; no scenario file is
|
|
22
|
+
added or removed and no host obligation changes.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- **`openwop.requirement.0173.pack-isolation.seam`** was minted inside
|
|
27
|
+
`v2-pack-isolation`'s shared `invoke()` helper.
|
|
28
|
+
`generate-requirement-registry.mjs` harvests `req(…)` only within an `it`, so
|
|
29
|
+
the id never reached `requirements.json` and no bundle could carry a row for
|
|
30
|
+
it — while `check-cut-gates.mjs` scans every `req(` in the source and went on
|
|
31
|
+
demanding one, failing RFC 0167 §G.2 on a row no host could supply. The seam
|
|
32
|
+
contract now has its own `it`, which is the copy the registry can see. The
|
|
33
|
+
helper keeps its `req(…)` call — RFC 0168 §A.1 makes `req(…)` the only
|
|
34
|
+
assertion-message form in `src/scenarios`, so the fix is the extra `it`, not
|
|
35
|
+
a quieter assertion.
|
|
36
|
+
|
|
3
37
|
## [2.4.1] — 2026-09-18 — the leg that reads the host, not the schema
|
|
4
38
|
|
|
5
39
|
**Why a patch.** A leg is added to an existing scenario file; no file is added or removed.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/openwop-conformance",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.3",
|
|
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.4.
|
|
59
|
+
"@openwop/spec-artifacts": "2.4.3"
|
|
60
60
|
}
|
|
61
61
|
}
|
package/requirements.json
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
"generatedFrom": "src/scenarios/*.test.ts",
|
|
4
4
|
"counts": {
|
|
5
5
|
"files": 571,
|
|
6
|
-
"tests":
|
|
7
|
-
"withStableId":
|
|
6
|
+
"tests": 2174,
|
|
7
|
+
"withStableId": 2174,
|
|
8
8
|
"interpolatedTitles": 0,
|
|
9
|
-
"explicitIds":
|
|
9
|
+
"explicitIds": 2127
|
|
10
10
|
},
|
|
11
11
|
"records": [
|
|
12
12
|
{
|
|
@@ -27681,7 +27681,7 @@
|
|
|
27681
27681
|
{
|
|
27682
27682
|
"id": "openwop.it.v2-pack-isolation.sandbox-isolationmodel-names-a-real-mechanism-never-node-vm",
|
|
27683
27683
|
"file": "v2-pack-isolation.test.ts",
|
|
27684
|
-
"line":
|
|
27684
|
+
"line": 78,
|
|
27685
27685
|
"title": "sandbox.isolationModel names a real mechanism, never node:vm",
|
|
27686
27686
|
"explicitId": "openwop.requirement.0173.pack-isolation",
|
|
27687
27687
|
"citations": [
|
|
@@ -27696,10 +27696,24 @@
|
|
|
27696
27696
|
}
|
|
27697
27697
|
]
|
|
27698
27698
|
},
|
|
27699
|
+
{
|
|
27700
|
+
"id": "openwop.it.v2-pack-isolation.the-sandbox-invoke-seam-answers-the-seam-contract",
|
|
27701
|
+
"file": "v2-pack-isolation.test.ts",
|
|
27702
|
+
"line": 92,
|
|
27703
|
+
"title": "the sandbox-invoke seam answers the seam contract",
|
|
27704
|
+
"explicitId": "openwop.requirement.0173.pack-isolation.seam",
|
|
27705
|
+
"citations": [
|
|
27706
|
+
{
|
|
27707
|
+
"section": "host-sample-test-seams.md §8",
|
|
27708
|
+
"requirement": null,
|
|
27709
|
+
"interpolated": true
|
|
27710
|
+
}
|
|
27711
|
+
]
|
|
27712
|
+
},
|
|
27699
27713
|
{
|
|
27700
27714
|
"id": "openwop.it.v2-pack-isolation.node-pack-sandbox-fs-gated-a-host-filesystem-read-is-refused",
|
|
27701
27715
|
"file": "v2-pack-isolation.test.ts",
|
|
27702
|
-
"line":
|
|
27716
|
+
"line": 104,
|
|
27703
27717
|
"title": "node-pack-sandbox-fs-gated: a host filesystem read is refused",
|
|
27704
27718
|
"explicitId": null,
|
|
27705
27719
|
"citations": []
|
|
@@ -27707,7 +27721,7 @@
|
|
|
27707
27721
|
{
|
|
27708
27722
|
"id": "openwop.it.v2-pack-isolation.node-pack-sandbox-fs-gated-a-host-filesystem-write-is-refused",
|
|
27709
27723
|
"file": "v2-pack-isolation.test.ts",
|
|
27710
|
-
"line":
|
|
27724
|
+
"line": 111,
|
|
27711
27725
|
"title": "node-pack-sandbox-fs-gated: a host filesystem write is refused",
|
|
27712
27726
|
"explicitId": null,
|
|
27713
27727
|
"citations": []
|
|
@@ -27715,7 +27729,7 @@
|
|
|
27715
27729
|
{
|
|
27716
27730
|
"id": "openwop.it.v2-pack-isolation.node-pack-sandbox-no-env-the-host-environment-does-not-leak",
|
|
27717
27731
|
"file": "v2-pack-isolation.test.ts",
|
|
27718
|
-
"line":
|
|
27732
|
+
"line": 118,
|
|
27719
27733
|
"title": "node-pack-sandbox-no-env: the host environment does not leak",
|
|
27720
27734
|
"explicitId": null,
|
|
27721
27735
|
"citations": []
|
|
@@ -27723,7 +27737,7 @@
|
|
|
27723
27737
|
{
|
|
27724
27738
|
"id": "openwop.it.v2-pack-isolation.node-pack-sandbox-network-gated-ungated-network-egress-is-refused",
|
|
27725
27739
|
"file": "v2-pack-isolation.test.ts",
|
|
27726
|
-
"line":
|
|
27740
|
+
"line": 125,
|
|
27727
27741
|
"title": "node-pack-sandbox-network-gated: ungated network egress is refused",
|
|
27728
27742
|
"explicitId": null,
|
|
27729
27743
|
"citations": []
|
|
@@ -27731,7 +27745,7 @@
|
|
|
27731
27745
|
{
|
|
27732
27746
|
"id": "openwop.it.v2-pack-isolation.node-pack-sandbox-no-process-host-process-access-is-refused",
|
|
27733
27747
|
"file": "v2-pack-isolation.test.ts",
|
|
27734
|
-
"line":
|
|
27748
|
+
"line": 132,
|
|
27735
27749
|
"title": "node-pack-sandbox-no-process: host process access is refused",
|
|
27736
27750
|
"explicitId": null,
|
|
27737
27751
|
"citations": []
|
|
@@ -27739,7 +27753,7 @@
|
|
|
27739
27753
|
{
|
|
27740
27754
|
"id": "openwop.it.v2-pack-isolation.node-pack-sandbox-timeout-exceeding-wallclocklimitms-fails-with-sandbox-timeout",
|
|
27741
27755
|
"file": "v2-pack-isolation.test.ts",
|
|
27742
|
-
"line":
|
|
27756
|
+
"line": 139,
|
|
27743
27757
|
"title": "node-pack-sandbox-timeout: exceeding wallClockLimitMs fails with sandbox_timeout",
|
|
27744
27758
|
"explicitId": "openwop.requirement.0173.pack-isolation.timeout",
|
|
27745
27759
|
"citations": [
|
|
@@ -27752,7 +27766,7 @@
|
|
|
27752
27766
|
{
|
|
27753
27767
|
"id": "openwop.it.v2-pack-isolation.node-pack-sandbox-memory-cap-exceeding-memorylimitbytes-fails-with-sandbox-memor",
|
|
27754
27768
|
"file": "v2-pack-isolation.test.ts",
|
|
27755
|
-
"line":
|
|
27769
|
+
"line": 146,
|
|
27756
27770
|
"title": "node-pack-sandbox-memory-cap: exceeding memoryLimitBytes fails with sandbox_memory_exceeded",
|
|
27757
27771
|
"explicitId": "openwop.requirement.0173.pack-isolation.memory-cap",
|
|
27758
27772
|
"citations": [
|
|
@@ -27765,7 +27779,7 @@
|
|
|
27765
27779
|
{
|
|
27766
27780
|
"id": "openwop.it.v2-pack-isolation.node-pack-sandbox-isolated-context-a-pack-cannot-mutate-state-another-invocation",
|
|
27767
27781
|
"file": "v2-pack-isolation.test.ts",
|
|
27768
|
-
"line":
|
|
27782
|
+
"line": 153,
|
|
27769
27783
|
"title": "node-pack-sandbox-isolated-context: a pack cannot mutate state another invocation sees",
|
|
27770
27784
|
"explicitId": "openwop.requirement.0173.pack-isolation.isolated-context",
|
|
27771
27785
|
"citations": [
|
|
@@ -34637,7 +34651,7 @@
|
|
|
34637
34651
|
{
|
|
34638
34652
|
"id": "openwop.it.spec-corpus-validity.payload-type-index-keys-exactly-match-runeventtype-enum-values",
|
|
34639
34653
|
"file": "spec-corpus-validity.test.ts",
|
|
34640
|
-
"line":
|
|
34654
|
+
"line": 662,
|
|
34641
34655
|
"title": "payload type-index keys exactly match RunEventType enum values",
|
|
34642
34656
|
"explicitId": "openwop.it.spec-corpus-validity.payload-type-index-keys-exactly-match-runeventtype-enum-values",
|
|
34643
34657
|
"citations": [
|
|
@@ -34650,7 +34664,7 @@
|
|
|
34650
34664
|
{
|
|
34651
34665
|
"id": "openwop.it.spec-corpus-validity.payload-type-index-refs-point-to-declared-payload-defs",
|
|
34652
34666
|
"file": "spec-corpus-validity.test.ts",
|
|
34653
|
-
"line":
|
|
34667
|
+
"line": 671,
|
|
34654
34668
|
"title": "payload type-index refs point to declared payload $defs",
|
|
34655
34669
|
"explicitId": "openwop.it.spec-corpus-validity.payload-type-index-refs-point-to-declared-payload-defs",
|
|
34656
34670
|
"citations": [
|
|
@@ -34678,7 +34692,7 @@
|
|
|
34678
34692
|
{
|
|
34679
34693
|
"id": "openwop.it.spec-corpus-validity.payload-schema-description-states-the-current-runeventtype-variant-count",
|
|
34680
34694
|
"file": "spec-corpus-validity.test.ts",
|
|
34681
|
-
"line":
|
|
34695
|
+
"line": 687,
|
|
34682
34696
|
"title": "payload schema description states the current RunEventType variant count",
|
|
34683
34697
|
"explicitId": "openwop.it.spec-corpus-validity.payload-schema-description-states-the-current-runeventtype-variant-count",
|
|
34684
34698
|
"citations": [
|
|
@@ -34695,7 +34709,7 @@
|
|
|
34695
34709
|
{
|
|
34696
34710
|
"id": "openwop.it.spec-corpus-validity.exists",
|
|
34697
34711
|
"file": "spec-corpus-validity.test.ts",
|
|
34698
|
-
"line":
|
|
34712
|
+
"line": 702,
|
|
34699
34713
|
"title": "exists",
|
|
34700
34714
|
"explicitId": "openwop.it.spec-corpus-validity.exists",
|
|
34701
34715
|
"citations": [
|
|
@@ -34708,7 +34722,7 @@
|
|
|
34708
34722
|
{
|
|
34709
34723
|
"id": "openwop.it.spec-corpus-validity.declares-openapi-3-1-required-top-level-keys",
|
|
34710
34724
|
"file": "spec-corpus-validity.test.ts",
|
|
34711
|
-
"line":
|
|
34725
|
+
"line": 706,
|
|
34712
34726
|
"title": "declares openapi: 3.1 + required top-level keys",
|
|
34713
34727
|
"explicitId": "openwop.it.spec-corpus-validity.declares-openapi-3-1-required-top-level-keys",
|
|
34714
34728
|
"citations": [
|
|
@@ -34721,7 +34735,7 @@
|
|
|
34721
34735
|
{
|
|
34722
34736
|
"id": "openwop.it.spec-corpus-validity.every-ref-to-schemas-json-resolves-to-a-real-file",
|
|
34723
34737
|
"file": "spec-corpus-validity.test.ts",
|
|
34724
|
-
"line":
|
|
34738
|
+
"line": 715,
|
|
34725
34739
|
"title": "every $ref to ../schemas/*.json resolves to a real file",
|
|
34726
34740
|
"explicitId": "openwop.it.spec-corpus-validity.every-ref-to-schemas-json-resolves-to-a-real-file",
|
|
34727
34741
|
"citations": [
|
|
@@ -34735,7 +34749,7 @@
|
|
|
34735
34749
|
{
|
|
34736
34750
|
"id": "openwop.it.spec-corpus-validity.operationids-are-unique",
|
|
34737
34751
|
"file": "spec-corpus-validity.test.ts",
|
|
34738
|
-
"line":
|
|
34752
|
+
"line": 725,
|
|
34739
34753
|
"title": "operationIds are unique",
|
|
34740
34754
|
"explicitId": "openwop.it.spec-corpus-validity.operationids-are-unique",
|
|
34741
34755
|
"citations": [
|
|
@@ -34753,7 +34767,7 @@
|
|
|
34753
34767
|
{
|
|
34754
34768
|
"id": "openwop.it.spec-corpus-validity.every-operation-tag-is-declared-in-the-top-level-tags-list",
|
|
34755
34769
|
"file": "spec-corpus-validity.test.ts",
|
|
34756
|
-
"line":
|
|
34770
|
+
"line": 734,
|
|
34757
34771
|
"title": "every operation tag is declared in the top-level tags list",
|
|
34758
34772
|
"explicitId": "openwop.it.spec-corpus-validity.every-operation-tag-is-declared-in-the-top-level-tags-list",
|
|
34759
34773
|
"citations": [
|
|
@@ -34775,7 +34789,7 @@
|
|
|
34775
34789
|
{
|
|
34776
34790
|
"id": "openwop.it.spec-corpus-validity.declares-apikeyauth-as-the-global-default-security-requirement",
|
|
34777
34791
|
"file": "spec-corpus-validity.test.ts",
|
|
34778
|
-
"line":
|
|
34792
|
+
"line": 750,
|
|
34779
34793
|
"title": "declares ApiKeyAuth as the global default security requirement",
|
|
34780
34794
|
"explicitId": "openwop.it.spec-corpus-validity.declares-apikeyauth-as-the-global-default-security-requirement",
|
|
34781
34795
|
"citations": [
|
|
@@ -34792,7 +34806,7 @@
|
|
|
34792
34806
|
{
|
|
34793
34807
|
"id": "openwop.it.spec-corpus-validity.only-documented-public-or-signed-token-operations-clear-security",
|
|
34794
34808
|
"file": "spec-corpus-validity.test.ts",
|
|
34795
|
-
"line":
|
|
34809
|
+
"line": 761,
|
|
34796
34810
|
"title": "only documented public or signed-token operations clear security",
|
|
34797
34811
|
"explicitId": "openwop.it.spec-corpus-validity.only-documented-public-or-signed-token-operations-clear-security",
|
|
34798
34812
|
"citations": [
|
|
@@ -34810,7 +34824,7 @@
|
|
|
34810
34824
|
{
|
|
34811
34825
|
"id": "openwop.it.spec-corpus-validity.protected-operations-document-canonical-401-and-403-auth-failure-responses",
|
|
34812
34826
|
"file": "spec-corpus-validity.test.ts",
|
|
34813
|
-
"line":
|
|
34827
|
+
"line": 782,
|
|
34814
34828
|
"title": "protected operations document canonical 401 and 403 auth failure responses",
|
|
34815
34829
|
"explicitId": "openwop.it.spec-corpus-validity.protected-operations-document-canonical-401-and-403-auth-failure-responses",
|
|
34816
34830
|
"citations": [
|
|
@@ -34833,7 +34847,7 @@
|
|
|
34833
34847
|
{
|
|
34834
34848
|
"id": "openwop.it.spec-corpus-validity.declares-both-the-literal-v1-agents-roster-org-chart-routes-and-the-agentid-para",
|
|
34835
34849
|
"file": "spec-corpus-validity.test.ts",
|
|
34836
|
-
"line":
|
|
34850
|
+
"line": 809,
|
|
34837
34851
|
"title": "declares both the literal /v1/agents/{roster,org-chart} routes and the {agentId} param route",
|
|
34838
34852
|
"explicitId": "openwop.it.spec-corpus-validity.declares-both-the-literal-v1-agents-roster-org-chart-routes-and-the-agentid-para",
|
|
34839
34853
|
"citations": [
|
|
@@ -34846,7 +34860,7 @@
|
|
|
34846
34860
|
{
|
|
34847
34861
|
"id": "openwop.it.spec-corpus-validity.every-v1-agents-agentid-param-excludes-the-reserved-literals-roster-org-chart",
|
|
34848
34862
|
"file": "spec-corpus-validity.test.ts",
|
|
34849
|
-
"line":
|
|
34863
|
+
"line": 816,
|
|
34850
34864
|
"title": "every /v1/agents/{agentId} param excludes the reserved literals (roster, org-chart)",
|
|
34851
34865
|
"explicitId": "openwop.it.spec-corpus-validity.every-v1-agents-agentid-param-excludes-the-reserved-literals-roster-org-chart",
|
|
34852
34866
|
"citations": [
|
|
@@ -34863,7 +34877,7 @@
|
|
|
34863
34877
|
{
|
|
34864
34878
|
"id": "openwop.it.spec-corpus-validity.the-reserved-literal-exclusion-pattern-rejects-roster-org-chart-and-accepts-a-re",
|
|
34865
34879
|
"file": "spec-corpus-validity.test.ts",
|
|
34866
|
-
"line":
|
|
34880
|
+
"line": 827,
|
|
34867
34881
|
"title": "the reserved-literal exclusion pattern rejects roster/org-chart and accepts a real agentId",
|
|
34868
34882
|
"explicitId": "openwop.it.spec-corpus-validity.the-reserved-literal-exclusion-pattern-rejects-roster-org-chart-and-accepts-a-re",
|
|
34869
34883
|
"citations": [
|
|
@@ -34880,7 +34894,7 @@
|
|
|
34880
34894
|
{
|
|
34881
34895
|
"id": "openwop.it.spec-corpus-validity.the-agent-manifest-agentid-pattern-can-never-produce-a-reserved-literal-defense",
|
|
34882
34896
|
"file": "spec-corpus-validity.test.ts",
|
|
34883
|
-
"line":
|
|
34897
|
+
"line": 834,
|
|
34884
34898
|
"title": "the agent-manifest agentId pattern can never produce a reserved literal (defense in depth)",
|
|
34885
34899
|
"explicitId": "openwop.it.spec-corpus-validity.the-agent-manifest-agentid-pattern-can-never-produce-a-reserved-literal-defense",
|
|
34886
34900
|
"citations": [
|
|
@@ -34901,7 +34915,7 @@
|
|
|
34901
34915
|
{
|
|
34902
34916
|
"id": "openwop.it.spec-corpus-validity.typed-error-specializations-compose-the-canonical-error-schema",
|
|
34903
34917
|
"file": "spec-corpus-validity.test.ts",
|
|
34904
|
-
"line":
|
|
34918
|
+
"line": 846,
|
|
34905
34919
|
"title": "typed error specializations compose the canonical Error schema",
|
|
34906
34920
|
"explicitId": "openwop.it.spec-corpus-validity.typed-error-specializations-compose-the-canonical-error-schema",
|
|
34907
34921
|
"citations": [
|
|
@@ -34925,7 +34939,7 @@
|
|
|
34925
34939
|
{
|
|
34926
34940
|
"id": "openwop.it.spec-corpus-validity.every-openapi-operationid-is-represented-in-conformance-coverage-md",
|
|
34927
34941
|
"file": "spec-corpus-validity.test.ts",
|
|
34928
|
-
"line":
|
|
34942
|
+
"line": 871,
|
|
34929
34943
|
"title": "every OpenAPI operationId is represented in conformance/coverage.md",
|
|
34930
34944
|
"explicitId": "openwop.it.spec-corpus-validity.every-openapi-operationid-is-represented-in-conformance-coverage-md",
|
|
34931
34945
|
"citations": [
|
|
@@ -34943,7 +34957,7 @@
|
|
|
34943
34957
|
{
|
|
34944
34958
|
"id": "openwop.it.spec-corpus-validity.every-openapi-operation-has-a-matching-method-path-row-in-rest-endpoints-md",
|
|
34945
34959
|
"file": "spec-corpus-validity.test.ts",
|
|
34946
|
-
"line":
|
|
34960
|
+
"line": 891,
|
|
34947
34961
|
"title": "every OpenAPI operation has a matching method/path row in rest-endpoints.md",
|
|
34948
34962
|
"explicitId": "openwop.it.spec-corpus-validity.every-openapi-operation-has-a-matching-method-path-row-in-rest-endpoints-md",
|
|
34949
34963
|
"citations": [
|
|
@@ -34965,7 +34979,7 @@
|
|
|
34965
34979
|
{
|
|
34966
34980
|
"id": "openwop.it.spec-corpus-validity.rest-catalog-auth-scope-columns-match-openapi-security-overrides",
|
|
34967
34981
|
"file": "spec-corpus-validity.test.ts",
|
|
34968
|
-
"line":
|
|
34982
|
+
"line": 909,
|
|
34969
34983
|
"title": "REST catalog auth/scope columns match OpenAPI security overrides",
|
|
34970
34984
|
"explicitId": "openwop.it.spec-corpus-validity.rest-catalog-auth-scope-columns-match-openapi-security-overrides",
|
|
34971
34985
|
"citations": [
|
|
@@ -34999,7 +35013,7 @@
|
|
|
34999
35013
|
{
|
|
35000
35014
|
"id": "openwop.it.spec-corpus-validity.does-not-document-retry-conflict-metadata-as-top-level-error-fields",
|
|
35001
35015
|
"file": "spec-corpus-validity.test.ts",
|
|
35002
|
-
"line":
|
|
35016
|
+
"line": 948,
|
|
35003
35017
|
"title": null,
|
|
35004
35018
|
"explicitId": "openwop.it.spec-corpus-validity.does-not-document-retry-conflict-metadata-as-top-level-error-fields",
|
|
35005
35019
|
"citations": [
|
|
@@ -35018,7 +35032,7 @@
|
|
|
35018
35032
|
{
|
|
35019
35033
|
"id": "openwop.it.spec-corpus-validity.typescript-exports-http-error-codes-and-ishttperrorcode",
|
|
35020
35034
|
"file": "spec-corpus-validity.test.ts",
|
|
35021
|
-
"line":
|
|
35035
|
+
"line": 1002,
|
|
35022
35036
|
"title": "TypeScript exports HTTP_ERROR_CODES and isHttpErrorCode",
|
|
35023
35037
|
"explicitId": "openwop.it.spec-corpus-validity.typescript-exports-http-error-codes-and-ishttperrorcode",
|
|
35024
35038
|
"citations": [
|
|
@@ -35035,7 +35049,7 @@
|
|
|
35035
35049
|
{
|
|
35036
35050
|
"id": "openwop.it.spec-corpus-validity.python-exports-http-error-codes-and-is-http-error-code",
|
|
35037
35051
|
"file": "spec-corpus-validity.test.ts",
|
|
35038
|
-
"line":
|
|
35052
|
+
"line": 1009,
|
|
35039
35053
|
"title": "Python exports HTTP_ERROR_CODES and is_http_error_code",
|
|
35040
35054
|
"explicitId": "openwop.it.spec-corpus-validity.python-exports-http-error-codes-and-is-http-error-code",
|
|
35041
35055
|
"citations": [
|
|
@@ -35052,7 +35066,7 @@
|
|
|
35052
35066
|
{
|
|
35053
35067
|
"id": "openwop.it.spec-corpus-validity.go-exports-httperrorcodes-and-ishttperrorcode",
|
|
35054
35068
|
"file": "spec-corpus-validity.test.ts",
|
|
35055
|
-
"line":
|
|
35069
|
+
"line": 1016,
|
|
35056
35070
|
"title": "Go exports HTTPErrorCodes and IsHTTPErrorCode",
|
|
35057
35071
|
"explicitId": "openwop.it.spec-corpus-validity.go-exports-httperrorcodes-and-ishttperrorcode",
|
|
35058
35072
|
"citations": [
|
|
@@ -35069,7 +35083,7 @@
|
|
|
35069
35083
|
{
|
|
35070
35084
|
"id": "openwop.it.spec-corpus-validity.sdk-readmes-document-the-http-error-helper-surface",
|
|
35071
35085
|
"file": "spec-corpus-validity.test.ts",
|
|
35072
|
-
"line":
|
|
35086
|
+
"line": 1023,
|
|
35073
35087
|
"title": "SDK READMEs document the HTTP error helper surface",
|
|
35074
35088
|
"explicitId": "openwop.it.spec-corpus-validity.sdk-readmes-document-the-http-error-helper-surface",
|
|
35075
35089
|
"citations": [
|
|
@@ -35082,7 +35096,7 @@
|
|
|
35082
35096
|
{
|
|
35083
35097
|
"id": "openwop.it.spec-corpus-validity.sdk-changelogs-mention-the-http-error-helper-surface",
|
|
35084
35098
|
"file": "spec-corpus-validity.test.ts",
|
|
35085
|
-
"line":
|
|
35099
|
+
"line": 1032,
|
|
35086
35100
|
"title": "SDK changelogs mention the HTTP error helper surface",
|
|
35087
35101
|
"explicitId": "openwop.it.spec-corpus-validity.sdk-changelogs-mention-the-http-error-helper-surface",
|
|
35088
35102
|
"citations": [
|
|
@@ -35095,7 +35109,7 @@
|
|
|
35095
35109
|
{
|
|
35096
35110
|
"id": "openwop.it.spec-corpus-validity.typescript-dist-exports-the-http-error-helper-surface",
|
|
35097
35111
|
"file": "spec-corpus-validity.test.ts",
|
|
35098
|
-
"line":
|
|
35112
|
+
"line": 1041,
|
|
35099
35113
|
"title": "TypeScript dist exports the HTTP error helper surface",
|
|
35100
35114
|
"explicitId": "openwop.it.spec-corpus-validity.typescript-dist-exports-the-http-error-helper-surface",
|
|
35101
35115
|
"citations": [
|
|
@@ -35109,7 +35123,7 @@
|
|
|
35109
35123
|
{
|
|
35110
35124
|
"id": "openwop.it.spec-corpus-validity.typescript-dist-metadata-uses-openwop-branding",
|
|
35111
35125
|
"file": "spec-corpus-validity.test.ts",
|
|
35112
|
-
"line":
|
|
35126
|
+
"line": 1057,
|
|
35113
35127
|
"title": "TypeScript dist metadata uses openwop branding",
|
|
35114
35128
|
"explicitId": "openwop.it.spec-corpus-validity.typescript-dist-metadata-uses-openwop-branding",
|
|
35115
35129
|
"citations": [
|
|
@@ -35128,7 +35142,7 @@
|
|
|
35128
35142
|
{
|
|
35129
35143
|
"id": "openwop.it.spec-corpus-validity.typescript-dist-source-maps-point-back-to-src-and-avoid-legacy-branding",
|
|
35130
35144
|
"file": "spec-corpus-validity.test.ts",
|
|
35131
|
-
"line":
|
|
35145
|
+
"line": 1065,
|
|
35132
35146
|
"title": "TypeScript dist source maps point back to src and avoid legacy branding",
|
|
35133
35147
|
"explicitId": "openwop.it.spec-corpus-validity.typescript-dist-source-maps-point-back-to-src-and-avoid-legacy-branding",
|
|
35134
35148
|
"citations": [
|
|
@@ -35157,7 +35171,7 @@
|
|
|
35157
35171
|
{
|
|
35158
35172
|
"id": "openwop.it.spec-corpus-validity.all-sdk-http-error-helpers-include",
|
|
35159
35173
|
"file": "spec-corpus-validity.test.ts",
|
|
35160
|
-
"line":
|
|
35174
|
+
"line": 1094,
|
|
35161
35175
|
"title": null,
|
|
35162
35176
|
"explicitId": "openwop.it.spec-corpus-validity.all-sdk-http-error-helpers-include",
|
|
35163
35177
|
"citations": [
|
|
@@ -35171,7 +35185,7 @@
|
|
|
35171
35185
|
{
|
|
35172
35186
|
"id": "openwop.it.spec-corpus-validity.readme-suite-count-equals-src-scenarios-test-ts-count",
|
|
35173
35187
|
"file": "spec-corpus-validity.test.ts",
|
|
35174
|
-
"line":
|
|
35188
|
+
"line": 1110,
|
|
35175
35189
|
"title": "README suite count equals src/scenarios/*.test.ts count",
|
|
35176
35190
|
"explicitId": "openwop.it.spec-corpus-validity.readme-suite-count-equals-src-scenarios-test-ts-count",
|
|
35177
35191
|
"citations": [
|
|
@@ -35192,7 +35206,7 @@
|
|
|
35192
35206
|
{
|
|
35193
35207
|
"id": "openwop.it.spec-corpus-validity.exists~2",
|
|
35194
35208
|
"file": "spec-corpus-validity.test.ts",
|
|
35195
|
-
"line":
|
|
35209
|
+
"line": 1130,
|
|
35196
35210
|
"title": "exists",
|
|
35197
35211
|
"explicitId": "openwop.it.spec-corpus-validity.exists~2",
|
|
35198
35212
|
"citations": [
|
|
@@ -35205,7 +35219,7 @@
|
|
|
35205
35219
|
{
|
|
35206
35220
|
"id": "openwop.it.spec-corpus-validity.declares-asyncapi-3-1-required-top-level-keys",
|
|
35207
35221
|
"file": "spec-corpus-validity.test.ts",
|
|
35208
|
-
"line":
|
|
35222
|
+
"line": 1134,
|
|
35209
35223
|
"title": "declares asyncapi: 3.1 + required top-level keys",
|
|
35210
35224
|
"explicitId": "openwop.it.spec-corpus-validity.declares-asyncapi-3-1-required-top-level-keys",
|
|
35211
35225
|
"citations": [
|
|
@@ -35218,7 +35232,7 @@
|
|
|
35218
35232
|
{
|
|
35219
35233
|
"id": "openwop.it.spec-corpus-validity.every-ref-to-schemas-json-resolves-to-a-real-file~2",
|
|
35220
35234
|
"file": "spec-corpus-validity.test.ts",
|
|
35221
|
-
"line":
|
|
35235
|
+
"line": 1143,
|
|
35222
35236
|
"title": "every $ref to ../schemas/*.json resolves to a real file",
|
|
35223
35237
|
"explicitId": "openwop.it.spec-corpus-validity.every-ref-to-schemas-json-resolves-to-a-real-file~2",
|
|
35224
35238
|
"citations": [
|
|
@@ -35232,7 +35246,7 @@
|
|
|
35232
35246
|
{
|
|
35233
35247
|
"id": "openwop.it.spec-corpus-validity.named-runeventdoc-messages-use-event-names-from-run-event-schema-json",
|
|
35234
35248
|
"file": "spec-corpus-validity.test.ts",
|
|
35235
|
-
"line":
|
|
35249
|
+
"line": 1152,
|
|
35236
35250
|
"title": "named RunEventDoc messages use event names from run-event.schema.json",
|
|
35237
35251
|
"explicitId": "openwop.it.spec-corpus-validity.named-runeventdoc-messages-use-event-names-from-run-event-schema-json",
|
|
35238
35252
|
"citations": [
|
|
@@ -35250,7 +35264,7 @@
|
|
|
35250
35264
|
{
|
|
35251
35265
|
"id": "openwop.it.spec-corpus-validity.operation-channel-refs-point-to-declared-channels",
|
|
35252
35266
|
"file": "spec-corpus-validity.test.ts",
|
|
35253
|
-
"line":
|
|
35267
|
+
"line": 1173,
|
|
35254
35268
|
"title": "operation channel refs point to declared channels",
|
|
35255
35269
|
"explicitId": "openwop.it.spec-corpus-validity.operation-channel-refs-point-to-declared-channels",
|
|
35256
35270
|
"citations": [
|
|
@@ -35272,7 +35286,7 @@
|
|
|
35272
35286
|
{
|
|
35273
35287
|
"id": "openwop.it.spec-corpus-validity.channel-keys-and-message-names-are-unique",
|
|
35274
35288
|
"file": "spec-corpus-validity.test.ts",
|
|
35275
|
-
"line":
|
|
35289
|
+
"line": 1195,
|
|
35276
35290
|
"title": "channel keys and message names are unique",
|
|
35277
35291
|
"explicitId": "openwop.it.spec-corpus-validity.channel-keys-and-message-names-are-unique",
|
|
35278
35292
|
"citations": [
|
|
@@ -35291,7 +35305,7 @@
|
|
|
35291
35305
|
{
|
|
35292
35306
|
"id": "openwop.it.spec-corpus-validity.finds-the-expected-prose-doc-set",
|
|
35293
35307
|
"file": "spec-corpus-validity.test.ts",
|
|
35294
|
-
"line":
|
|
35308
|
+
"line": 1242,
|
|
35295
35309
|
"title": "finds the expected prose doc set",
|
|
35296
35310
|
"explicitId": "openwop.it.spec-corpus-validity.finds-the-expected-prose-doc-set",
|
|
35297
35311
|
"citations": [
|
|
@@ -35304,7 +35318,7 @@
|
|
|
35304
35318
|
{
|
|
35305
35319
|
"id": "openwop.it.spec-corpus-validity.declares-a-status-tag-stub-draft-outline-final-stable-stabilizing-draft-experime",
|
|
35306
35320
|
"file": "spec-corpus-validity.test.ts",
|
|
35307
|
-
"line":
|
|
35321
|
+
"line": 1249,
|
|
35308
35322
|
"title": null,
|
|
35309
35323
|
"explicitId": "openwop.it.spec-corpus-validity.declares-a-status-tag-stub-draft-outline-final-stable-stabilizing-draft-experime",
|
|
35310
35324
|
"citations": [
|
|
@@ -35318,7 +35332,7 @@
|
|
|
35318
35332
|
{
|
|
35319
35333
|
"id": "openwop.it.spec-corpus-validity.readme-total-count-equals-the-number-of-spec-v1-prose-docs",
|
|
35320
35334
|
"file": "spec-corpus-validity.test.ts",
|
|
35321
|
-
"line":
|
|
35335
|
+
"line": 1276,
|
|
35322
35336
|
"title": "README Total count equals the number of spec/v1 prose docs",
|
|
35323
35337
|
"explicitId": "openwop.it.spec-corpus-validity.readme-total-count-equals-the-number-of-spec-v1-prose-docs",
|
|
35324
35338
|
"citations": [
|
|
@@ -35335,7 +35349,7 @@
|
|
|
35335
35349
|
{
|
|
35336
35350
|
"id": "openwop.it.spec-corpus-validity.readme-document-index-links-every-spec-v1-prose-doc-exactly-once",
|
|
35337
35351
|
"file": "spec-corpus-validity.test.ts",
|
|
35338
|
-
"line":
|
|
35352
|
+
"line": 1286,
|
|
35339
35353
|
"title": "README document index links every spec/v1 prose doc exactly once",
|
|
35340
35354
|
"explicitId": "openwop.it.spec-corpus-validity.readme-document-index-links-every-spec-v1-prose-doc-exactly-once",
|
|
35341
35355
|
"citations": [
|
|
@@ -35349,7 +35363,7 @@
|
|
|
35349
35363
|
{
|
|
35350
35364
|
"id": "openwop.it.spec-corpus-validity.finds-markdown-files-to-check",
|
|
35351
35365
|
"file": "spec-corpus-validity.test.ts",
|
|
35352
|
-
"line":
|
|
35366
|
+
"line": 1312,
|
|
35353
35367
|
"title": "finds Markdown files to check",
|
|
35354
35368
|
"explicitId": "openwop.it.spec-corpus-validity.finds-markdown-files-to-check",
|
|
35355
35369
|
"citations": [
|
|
@@ -35362,7 +35376,7 @@
|
|
|
35362
35376
|
{
|
|
35363
35377
|
"id": "openwop.it.spec-corpus-validity.has-no-broken-local-markdown-file-links",
|
|
35364
35378
|
"file": "spec-corpus-validity.test.ts",
|
|
35365
|
-
"line":
|
|
35379
|
+
"line": 1318,
|
|
35366
35380
|
"title": null,
|
|
35367
35381
|
"explicitId": "openwop.it.spec-corpus-validity.has-no-broken-local-markdown-file-links",
|
|
35368
35382
|
"citations": [
|
|
@@ -35376,7 +35390,7 @@
|
|
|
35376
35390
|
{
|
|
35377
35391
|
"id": "openwop.it.spec-corpus-validity.scans-public-docs-and-schemas",
|
|
35378
35392
|
"file": "spec-corpus-validity.test.ts",
|
|
35379
|
-
"line":
|
|
35393
|
+
"line": 1397,
|
|
35380
35394
|
"title": "scans public docs and schemas",
|
|
35381
35395
|
"explicitId": "openwop.it.spec-corpus-validity.scans-public-docs-and-schemas",
|
|
35382
35396
|
"citations": [
|
|
@@ -35389,7 +35403,7 @@
|
|
|
35389
35403
|
{
|
|
35390
35404
|
"id": "openwop.it.spec-corpus-validity.has-no-private-implementation-or-pre-v1-breadcrumbs",
|
|
35391
35405
|
"file": "spec-corpus-validity.test.ts",
|
|
35392
|
-
"line":
|
|
35406
|
+
"line": 1403,
|
|
35393
35407
|
"title": null,
|
|
35394
35408
|
"explicitId": "openwop.it.spec-corpus-validity.has-no-private-implementation-or-pre-v1-breadcrumbs",
|
|
35395
35409
|
"citations": [
|
|
@@ -35403,7 +35417,7 @@
|
|
|
35403
35417
|
{
|
|
35404
35418
|
"id": "openwop.it.spec-corpus-validity.every-fixture-id-mentioned-in-fixtures-md-has-a-corresponding-json",
|
|
35405
35419
|
"file": "spec-corpus-validity.test.ts",
|
|
35406
|
-
"line":
|
|
35420
|
+
"line": 1432,
|
|
35407
35421
|
"title": "every fixture id mentioned in fixtures.md has a corresponding JSON",
|
|
35408
35422
|
"explicitId": "openwop.it.spec-corpus-validity.every-fixture-id-mentioned-in-fixtures-md-has-a-corresponding-json",
|
|
35409
35423
|
"citations": [
|
|
@@ -35417,7 +35431,7 @@
|
|
|
35417
35431
|
{
|
|
35418
35432
|
"id": "openwop.it.spec-corpus-validity.every-fixture-json-file-is-referenced-by-fixtures-md",
|
|
35419
35433
|
"file": "spec-corpus-validity.test.ts",
|
|
35420
|
-
"line":
|
|
35434
|
+
"line": 1474,
|
|
35421
35435
|
"title": "every fixture JSON file is referenced by fixtures.md",
|
|
35422
35436
|
"explicitId": "openwop.it.spec-corpus-validity.every-fixture-json-file-is-referenced-by-fixtures-md",
|
|
35423
35437
|
"citations": [
|
|
@@ -35431,7 +35445,7 @@
|
|
|
35431
35445
|
{
|
|
35432
35446
|
"id": "openwop.it.spec-corpus-validity.a-sample-bundle-validates-against-conformance-certification-bundle-schema-json",
|
|
35433
35447
|
"file": "spec-corpus-validity.test.ts",
|
|
35434
|
-
"line":
|
|
35448
|
+
"line": 1527,
|
|
35435
35449
|
"title": "a sample bundle validates against conformance-certification-bundle.schema.json",
|
|
35436
35450
|
"explicitId": "openwop.it.spec-corpus-validity.a-sample-bundle-validates-against-conformance-certification-bundle-schema-json",
|
|
35437
35451
|
"citations": [
|
|
@@ -35445,7 +35459,7 @@
|
|
|
35445
35459
|
{
|
|
35446
35460
|
"id": "openwop.it.spec-corpus-validity.verifybundle-accepts-a-claim-that-is-discovery-derivable-and-floor-proven-b",
|
|
35447
35461
|
"file": "spec-corpus-validity.test.ts",
|
|
35448
|
-
"line":
|
|
35462
|
+
"line": 1533,
|
|
35449
35463
|
"title": "verifyBundle ACCEPTS a claim that is discovery-derivable AND floor-proven (§B)",
|
|
35450
35464
|
"explicitId": "openwop.it.spec-corpus-validity.verifybundle-accepts-a-claim-that-is-discovery-derivable-and-floor-proven-b",
|
|
35451
35465
|
"citations": [
|
|
@@ -35458,7 +35472,7 @@
|
|
|
35458
35472
|
{
|
|
35459
35473
|
"id": "openwop.it.spec-corpus-validity.verifybundle-rejects-a-profile-its-discovery-document-does-not-derive-b-1",
|
|
35460
35474
|
"file": "spec-corpus-validity.test.ts",
|
|
35461
|
-
"line":
|
|
35475
|
+
"line": 1540,
|
|
35462
35476
|
"title": "verifyBundle REJECTS a profile its discovery document does not derive (§B(1))",
|
|
35463
35477
|
"explicitId": "openwop.it.spec-corpus-validity.verifybundle-rejects-a-profile-its-discovery-document-does-not-derive-b-1",
|
|
35464
35478
|
"citations": [
|
|
@@ -35471,7 +35485,7 @@
|
|
|
35471
35485
|
{
|
|
35472
35486
|
"id": "openwop.it.spec-corpus-validity.verifybundle-rejects-a-bundle-missing-a-floor-scenario-b-2",
|
|
35473
35487
|
"file": "spec-corpus-validity.test.ts",
|
|
35474
|
-
"line":
|
|
35488
|
+
"line": 1550,
|
|
35475
35489
|
"title": "verifyBundle REJECTS a bundle missing a floor scenario (§B(2))",
|
|
35476
35490
|
"explicitId": "openwop.it.spec-corpus-validity.verifybundle-rejects-a-bundle-missing-a-floor-scenario-b-2",
|
|
35477
35491
|
"citations": [
|
|
@@ -35484,7 +35498,7 @@
|
|
|
35484
35498
|
{
|
|
35485
35499
|
"id": "openwop.it.spec-corpus-validity.the-committed-bundle-file-exists-generated-by-certify",
|
|
35486
35500
|
"file": "spec-corpus-validity.test.ts",
|
|
35487
|
-
"line":
|
|
35501
|
+
"line": 1587,
|
|
35488
35502
|
"title": "the committed bundle file exists (generated by --certify)",
|
|
35489
35503
|
"explicitId": "openwop.it.spec-corpus-validity.the-committed-bundle-file-exists-generated-by-certify",
|
|
35490
35504
|
"citations": [
|
|
@@ -35498,7 +35512,7 @@
|
|
|
35498
35512
|
{
|
|
35499
35513
|
"id": "openwop.it.spec-corpus-validity.the-committed-reference-bundle-validates-against-the-bundle-schema-a",
|
|
35500
35514
|
"file": "spec-corpus-validity.test.ts",
|
|
35501
|
-
"line":
|
|
35515
|
+
"line": 1591,
|
|
35502
35516
|
"title": "the committed reference bundle validates against the bundle schema (§A)",
|
|
35503
35517
|
"explicitId": "openwop.it.spec-corpus-validity.the-committed-reference-bundle-validates-against-the-bundle-schema-a",
|
|
35504
35518
|
"citations": [
|
|
@@ -35512,7 +35526,7 @@
|
|
|
35512
35526
|
{
|
|
35513
35527
|
"id": "openwop.it.spec-corpus-validity.verifybundle-rejects-the-committed-reference-bundle-it-is-invalidated-rfc-0148-d",
|
|
35514
35528
|
"file": "spec-corpus-validity.test.ts",
|
|
35515
|
-
"line":
|
|
35529
|
+
"line": 1598,
|
|
35516
35530
|
"title": "verifyBundle REJECTS the committed reference bundle — it is `invalidated` (RFC 0148 §D)",
|
|
35517
35531
|
"explicitId": "openwop.it.spec-corpus-validity.verifybundle-rejects-the-committed-reference-bundle-it-is-invalidated-rfc-0148-d",
|
|
35518
35532
|
"citations": [
|
|
@@ -35533,7 +35547,7 @@
|
|
|
35533
35547
|
{
|
|
35534
35548
|
"id": "openwop.it.spec-corpus-validity.discovery-sha256-is-the-canonical-json-sha-256-of-the-captured-discovery-documen",
|
|
35535
35549
|
"file": "spec-corpus-validity.test.ts",
|
|
35536
|
-
"line":
|
|
35550
|
+
"line": 1624,
|
|
35537
35551
|
"title": "discovery.sha256 is the canonical-JSON SHA-256 of the captured discovery.document",
|
|
35538
35552
|
"explicitId": "openwop.it.spec-corpus-validity.discovery-sha256-is-the-canonical-json-sha-256-of-the-captured-discovery-documen",
|
|
35539
35553
|
"citations": [
|
|
@@ -35546,7 +35560,7 @@
|
|
|
35546
35560
|
{
|
|
35547
35561
|
"id": "openwop.it.spec-corpus-validity.the-requestbody-closes-at-the-composition-unevaluatedproperties-not-inside-a-bra",
|
|
35548
35562
|
"file": "spec-corpus-validity.test.ts",
|
|
35549
|
-
"line":
|
|
35563
|
+
"line": 1685,
|
|
35550
35564
|
"title": "the requestBody closes at the composition (unevaluatedProperties), not inside a branch",
|
|
35551
35565
|
"explicitId": "openwop.it.spec-corpus-validity.the-requestbody-closes-at-the-composition-unevaluatedproperties-not-inside-a-bra",
|
|
35552
35566
|
"citations": [
|
|
@@ -35559,7 +35573,7 @@
|
|
|
35559
35573
|
{
|
|
35560
35574
|
"id": "openwop.it.spec-corpus-validity.canonical-createrun-bodies-pass-the-composed-schema-an-undeclared-property-fails",
|
|
35561
35575
|
"file": "spec-corpus-validity.test.ts",
|
|
35562
|
-
"line":
|
|
35576
|
+
"line": 1700,
|
|
35563
35577
|
"title": "canonical createRun bodies PASS the composed schema; an undeclared property FAILS",
|
|
35564
35578
|
"explicitId": "openwop.it.spec-corpus-validity.canonical-createrun-bodies-pass-the-composed-schema-an-undeclared-property-fails",
|
|
35565
35579
|
"citations": [
|
|
@@ -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.4.
|
|
5
|
-
"corpusTag": "v2.4.
|
|
4
|
+
"version": "2.4.3",
|
|
5
|
+
"corpusTag": "v2.4.3",
|
|
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": "
|
|
13
|
-
"api/v2/asyncapi.yaml": "
|
|
14
|
-
"api/v2/openapi.yaml": "
|
|
12
|
+
"api/seams-v2.yaml": "3ce9fa9f9ba2809ee34e43bc328bed3a46f1d8bd3449f0126aa3c1cd1340333d",
|
|
13
|
+
"api/v2/asyncapi.yaml": "4d1bba9238c7e2345a769c131b652559e0dcc5329b195ae4fa8f473d16b47c17",
|
|
14
|
+
"api/v2/openapi.yaml": "d1a156627e36bd1aebe71b6eaf88fd961bb14ec4e7a60a5139535081444e4b35",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
"schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
|
|
201
201
|
"spec/v1/alias-detectors.json": "e90916db12d2297e2e560b2d54d2c4702d6cb3bef7179a575844687a7ec17262",
|
|
202
202
|
"spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
|
|
203
|
-
"spec/v1/core-standard-manifest.json": "
|
|
203
|
+
"spec/v1/core-standard-manifest.json": "380ae43259ab60281ee15cc3bebdda9815c08fb10b1c1a44a36cbc1fc945a98b",
|
|
204
204
|
"spec/v1/deprecations.json": "c81c8f71460936c8d489d8270477c7661cf4a5d7b7bad86c98899750b5656027",
|
|
205
205
|
"spec/v1/deprecations.schema.json": "18c87e78bedc210431f795ae44c5b5d202f2f3317850d5cf86867d4f1fa1cdfb",
|
|
206
206
|
"spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
|
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
"spec/v2/core/errors.md": "ad85fc830139e587f20deabf88297b91b1fb6ce31e80d5442624a650246ab16e",
|
|
220
220
|
"spec/v2/core/events.md": "f1bac16419740f3b722febb6f5caaabed8838e092cba3d080fe9184024049dcf",
|
|
221
221
|
"spec/v2/core/form-content-packs.md": "6ffaae85d4550be48dd53fb6e2959af8aceb35bd87c5343b722885084f197713",
|
|
222
|
-
"spec/v2/core/headers.md": "
|
|
222
|
+
"spec/v2/core/headers.md": "1e9fc20087985f5f1c15c45cc671fecbe7ef377bb35f3ddc0b3cb8aca31d9f2b",
|
|
223
223
|
"spec/v2/core/idempotency.md": "b86c352d964aebad532727f314e26ed2177d49de382076fa64d3162e2f56118d",
|
|
224
224
|
"spec/v2/core/identity.md": "9d2b823eb899463807452fe5721dcf09881837c161be024175957db27870b243",
|
|
225
225
|
"spec/v2/core/interop.md": "d4c404e469e1d9d9be88bc2c939d777e7d7c1d0419b1251c18770f039838a401",
|
|
@@ -271,8 +271,8 @@
|
|
|
271
271
|
"spec/v2/path-manifest.json": "a6f4e652e866889e8bde815874062f62929aee95dc8e58e7152c56adee262163",
|
|
272
272
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
273
273
|
"spec/v2/profiles.json": "0636f19fceae625390003a347e70ef4797d84766b5c24ce8a02cea52aadebca4",
|
|
274
|
-
"spec/v2/release.json": "
|
|
274
|
+
"spec/v2/release.json": "59fd18aaa5300c3555b28d9c7073439e138885216eea2ef2a12297601c5537dd",
|
|
275
275
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624"
|
|
276
276
|
},
|
|
277
|
-
"corpusCommit": "
|
|
277
|
+
"corpusCommit": "28f50899e479f710a6bad7f04ff0b399f797d45b"
|
|
278
278
|
}
|
|
@@ -57,6 +57,14 @@ async function invoke(typeId: string, extra: Record<string, unknown> = {}): Prom
|
|
|
57
57
|
if (!doc || !seamsProfileAdvertised(doc)) { softSkip('inapplicable', `the ${typeId} leg is seam-driven — seams profile (conformance.seamsProfile = openwop-conformance-seams-v2) not advertised`); return null; }
|
|
58
58
|
const res = await driver.post(INVOKE, { typeId, ...extra });
|
|
59
59
|
if (res.status === 404 || res.status === 403 || res.status === 405) { seamAbsent(`host advertises packs + sandbox but ${INVOKE} answered ${res.status} — the ${typeId} leg is unobservable (host-sample-test-seams.md §8)`); return null; }
|
|
60
|
+
// The same id is ALSO asserted by its own `it` above, and that is the copy the
|
|
61
|
+
// registry can see: `generate-requirement-registry.mjs` harvests `req(…)` only
|
|
62
|
+
// within an `it`, so this helper-level call alone left the id out of
|
|
63
|
+
// requirements.json — and no bundle could carry a row for it — while
|
|
64
|
+
// `check-cut-gates.mjs`, which scans every `req(` in the source, went on
|
|
65
|
+
// demanding one. §G.2 failed on a row no host could supply. RFC 0168 §A.1
|
|
66
|
+
// requires `req(…)` here rather than a bare describe, so the fix is the extra
|
|
67
|
+
// `it`, not a quieter assertion.
|
|
60
68
|
expect(res.status, req('openwop.requirement.0173.pack-isolation.seam', 'host-sample-test-seams.md §8', `${INVOKE} MUST answer 200 { result } | 200 { error } for ${typeId}`)).toBe(200);
|
|
61
69
|
return (res.json ?? {}) as InvokeResult;
|
|
62
70
|
}
|
|
@@ -81,6 +89,18 @@ describe('RFC 0173 §B — pack-isolation (gated on packs + sandbox)', () => {
|
|
|
81
89
|
).toContain(model);
|
|
82
90
|
});
|
|
83
91
|
|
|
92
|
+
it('the sandbox-invoke seam answers the seam contract', async () => {
|
|
93
|
+
if (!(await gated())) return softSkip('inapplicable', 'gate not met (reason recorded above)');
|
|
94
|
+
const doc = await discovery();
|
|
95
|
+
if (!doc || !seamsProfileAdvertised(doc)) return softSkip('inapplicable', 'seam-driven — seams profile (conformance.seamsProfile = openwop-conformance-seams-v2) not advertised');
|
|
96
|
+
const res = await driver.post(INVOKE, { typeId: 'misbehave.fs-escape-read' });
|
|
97
|
+
if (res.status === 404 || res.status === 403 || res.status === 405) return seamAbsent(`host advertises packs + sandbox but ${INVOKE} answered ${res.status}`);
|
|
98
|
+
expect(
|
|
99
|
+
res.status,
|
|
100
|
+
req('openwop.requirement.0173.pack-isolation.seam', 'host-sample-test-seams.md §8', `${INVOKE} MUST answer 200 { result } | 200 { error } — the eight behavioural legs are unobservable otherwise`),
|
|
101
|
+
).toBe(200);
|
|
102
|
+
});
|
|
103
|
+
|
|
84
104
|
it('node-pack-sandbox-fs-gated: a host filesystem read is refused', async () => {
|
|
85
105
|
if (!(await gated())) return softSkip('inapplicable', 'gate not met (reason recorded above)');
|
|
86
106
|
const r = await invoke('misbehave.fs-escape-read');
|