@openwop/openwop-conformance 2.46.34 → 2.46.36
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 +30 -0
- package/README.md +3 -3
- package/coverage.md +4 -5
- package/dist/spec-artifacts.lock.json +2 -2
- package/fixtures/conformance-interrupt-form-refused.json +108 -0
- package/fixtures/conformance-interrupt-form-unbound.json +108 -0
- package/fixtures/conformance-interrupt-form.json +107 -0
- package/fixtures/conformance-stream-text.json +1 -2
- package/fixtures.md +44 -4
- package/package.json +2 -2
- package/requirement-aliases.json +98 -1
- package/requirements.json +663 -804
- package/scenario-majors.json +16 -19
- package/schemas/CORPUS-STAMP.json +72 -85
- package/src/lib/callai-attempts-witness.ts +13 -1
- package/src/lib/deployment-lifecycle-witness.ts +308 -0
- package/src/lib/family-advert-witness.ts +37 -50
- package/src/scenarios/stream-text-fixture.test.ts +13 -5
- package/src/scenarios/v2-deployment-lifecycle.test.ts +526 -0
- package/src/scenarios/v2-envelope-surfaces-absent.test.ts +55 -0
- package/src/scenarios/v2-interrupt-form-rules.test.ts +143 -0
- package/src/scenarios/v2-limits-clarification-rounds-advertisement.test.ts +42 -0
- package/src/scenarios/v2-peer-dependency-declared.test.ts +1 -1
- package/src/scenarios/v2-provider-output-reliability.test.ts +94 -0
- package/src/scenarios/v2-structured-output-advertisement.test.ts +82 -0
- package/src/lib/envelope-schema-static.ts +0 -167
- package/src/scenarios/v2-a2ui-v09-surface.test.ts +0 -323
- package/src/scenarios/v2-ai-envelope-advertisement.test.ts +0 -43
- package/src/scenarios/v2-envelope-contracts-advertisement.test.ts +0 -48
- package/src/scenarios/v2-envelope-reasoning-shape.test.ts +0 -81
- package/src/scenarios/v2-envelope-tier-one-subset-static.test.ts +0 -64
- package/src/scenarios/v2-envelopes-advertisement.test.ts +0 -85
- package/src/scenarios/v2-limits-envelope-caps-advertisement.test.ts +0 -61
package/requirements.json
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"$comment": "GENERATED by conformance/scripts/generate-requirement-registry.mjs — do not edit. One record per it()/test() in src/scenarios. Ids: openwop.it.<file-stem>.<title-slug>[~n] (src/lib/requirement-ids.ts). A record with id null has an interpolated title; its run-time row is keyed by the rendered title and maps here by file+line only. Renamed ids need a row in requirement-aliases.json.",
|
|
3
3
|
"generatedFrom": "src/scenarios/*.test.ts",
|
|
4
4
|
"counts": {
|
|
5
|
-
"files":
|
|
6
|
-
"tests":
|
|
7
|
-
"withStableId":
|
|
5
|
+
"files": 746,
|
|
6
|
+
"tests": 2854,
|
|
7
|
+
"withStableId": 2854,
|
|
8
8
|
"interpolatedTitles": 0,
|
|
9
|
-
"explicitIds":
|
|
9
|
+
"explicitIds": 2724
|
|
10
10
|
},
|
|
11
11
|
"records": [
|
|
12
12
|
{
|
|
@@ -25259,7 +25259,7 @@
|
|
|
25259
25259
|
{
|
|
25260
25260
|
"id": "openwop.it.stream-text-fixture.delivers-the-mocked-tokens-in-order-terminates-with-islast-meta-and-server-close",
|
|
25261
25261
|
"file": "stream-text-fixture.test.ts",
|
|
25262
|
-
"line":
|
|
25262
|
+
"line": 103,
|
|
25263
25263
|
"title": "delivers the mocked tokens in order, terminates with isLast + meta, and server-closes",
|
|
25264
25264
|
"explicitId": "openwop.it.stream-text-fixture.delivers-the-mocked-tokens-in-order-terminates-with-islast-meta-and-server-close",
|
|
25265
25265
|
"citations": [
|
|
@@ -25312,7 +25312,7 @@
|
|
|
25312
25312
|
{
|
|
25313
25313
|
"id": "openwop.it.stream-text-fixture.an-unknown-mockprovider-id-is-rejected-with-400-unsupported-mock-provider",
|
|
25314
25314
|
"file": "stream-text-fixture.test.ts",
|
|
25315
|
-
"line":
|
|
25315
|
+
"line": 206,
|
|
25316
25316
|
"title": "an unknown mockProvider.id is rejected with 400 unsupported_mock_provider",
|
|
25317
25317
|
"explicitId": "openwop.it.stream-text-fixture.an-unknown-mockprovider-id-is-rejected-with-400-unsupported-mock-provider",
|
|
25318
25318
|
"citations": [
|
|
@@ -27812,215 +27812,6 @@
|
|
|
27812
27812
|
}
|
|
27813
27813
|
]
|
|
27814
27814
|
},
|
|
27815
|
-
{
|
|
27816
|
-
"id": "openwop.it.v2-a2ui-v09-surface.a-version-2-envelope-carrying-a-version-1-body-is-refused-the-positive-is-admitt",
|
|
27817
|
-
"file": "v2-a2ui-v09-surface.test.ts",
|
|
27818
|
-
"line": 131,
|
|
27819
|
-
"title": "a version-2 envelope carrying a version-1 body is refused; the positive is admitted; above the floor is refused; below it follows envelopeStrictness",
|
|
27820
|
-
"explicitId": "openwop.requirement.0209.version-selects-branch",
|
|
27821
|
-
"citations": [
|
|
27822
|
-
{
|
|
27823
|
-
"section": "RFC 0209 §A.1",
|
|
27824
|
-
"requirement": null,
|
|
27825
|
-
"interpolated": true
|
|
27826
|
-
},
|
|
27827
|
-
{
|
|
27828
|
-
"section": "api/seams-v2.yaml emitA2uiSurface",
|
|
27829
|
-
"requirement": "a 201 names the recording event sequence"
|
|
27830
|
-
},
|
|
27831
|
-
{
|
|
27832
|
-
"section": "RFC 0209 §A.1",
|
|
27833
|
-
"requirement": null,
|
|
27834
|
-
"interpolated": true
|
|
27835
|
-
},
|
|
27836
|
-
{
|
|
27837
|
-
"section": "spec/v2/ext/a2uiSurface/README.md §Versions",
|
|
27838
|
-
"requirement": "the refusal is envelope_invalid"
|
|
27839
|
-
},
|
|
27840
|
-
{
|
|
27841
|
-
"section": "events.md §\"The envelope-kind catalog\"",
|
|
27842
|
-
"requirement": "a schemaVersion above the floor MUST be refused with unknown_schema_version whatever the strictness"
|
|
27843
|
-
},
|
|
27844
|
-
{
|
|
27845
|
-
"section": "events.md §\"The envelope-kind catalog\"",
|
|
27846
|
-
"requirement": "under strict, a schemaVersion 1 envelope below floor 2 MUST be refused with unknown_schema_version"
|
|
27847
|
-
},
|
|
27848
|
-
{
|
|
27849
|
-
"section": "events.md §\"The envelope-kind catalog\"",
|
|
27850
|
-
"requirement": null,
|
|
27851
|
-
"interpolated": true
|
|
27852
|
-
},
|
|
27853
|
-
{
|
|
27854
|
-
"section": "RFC 0209 §A.1",
|
|
27855
|
-
"requirement": "under warn, a schemaVersion 1 envelope with a payloadV1 body is validated against version 2 and MUST be refused"
|
|
27856
|
-
}
|
|
27857
|
-
]
|
|
27858
|
-
},
|
|
27859
|
-
{
|
|
27860
|
-
"id": "openwop.it.v2-a2ui-v09-surface.no-first-createsurface-a-message-after-deletesurface-and-a-second-createsurface",
|
|
27861
|
-
"file": "v2-a2ui-v09-surface.test.ts",
|
|
27862
|
-
"line": 157,
|
|
27863
|
-
"title": "no first createSurface, a message after deleteSurface, and a second createSurface are each refused; the valid steps are admitted",
|
|
27864
|
-
"explicitId": "openwop.requirement.0209.fold-guarded",
|
|
27865
|
-
"citations": [
|
|
27866
|
-
{
|
|
27867
|
-
"section": "RFC 0209 §C.9",
|
|
27868
|
-
"requirement": null,
|
|
27869
|
-
"interpolated": true
|
|
27870
|
-
}
|
|
27871
|
-
]
|
|
27872
|
-
},
|
|
27873
|
-
{
|
|
27874
|
-
"id": "openwop.it.v2-a2ui-v09-surface.a-createsurface-catalogid-differing-from-the-payload-catalogid-is-refused",
|
|
27875
|
-
"file": "v2-a2ui-v09-surface.test.ts",
|
|
27876
|
-
"line": 182,
|
|
27877
|
-
"title": "a createSurface.catalogId differing from the payload catalogId is refused",
|
|
27878
|
-
"explicitId": "openwop.requirement.0209.catalog-equality",
|
|
27879
|
-
"citations": [
|
|
27880
|
-
{
|
|
27881
|
-
"section": "RFC 0209 §A.2",
|
|
27882
|
-
"requirement": "a createSurface.catalogId MUST equal the payload catalogId; a differing one is refused, not recorded"
|
|
27883
|
-
},
|
|
27884
|
-
{
|
|
27885
|
-
"section": "RFC 0209 §A.2",
|
|
27886
|
-
"requirement": null,
|
|
27887
|
-
"interpolated": true
|
|
27888
|
-
}
|
|
27889
|
-
]
|
|
27890
|
-
},
|
|
27891
|
-
{
|
|
27892
|
-
"id": "openwop.it.v2-a2ui-v09-surface.a-message-whose-surfaceid-differs-from-the-payload-surfaceid-is-refused",
|
|
27893
|
-
"file": "v2-a2ui-v09-surface.test.ts",
|
|
27894
|
-
"line": 196,
|
|
27895
|
-
"title": "a message whose surfaceId differs from the payload surfaceId is refused",
|
|
27896
|
-
"explicitId": "openwop.it.v2-a2ui-v09-surface.surface-id-equality",
|
|
27897
|
-
"citations": [
|
|
27898
|
-
{
|
|
27899
|
-
"section": "RFC 0209 §A.2",
|
|
27900
|
-
"requirement": "every message surfaceId MUST equal the payload surfaceId — the schema cannot express it, so the engine MUST refuse a mismatch"
|
|
27901
|
-
},
|
|
27902
|
-
{
|
|
27903
|
-
"section": "RFC 0209 §A.2",
|
|
27904
|
-
"requirement": null,
|
|
27905
|
-
"interpolated": true
|
|
27906
|
-
}
|
|
27907
|
-
]
|
|
27908
|
-
},
|
|
27909
|
-
{
|
|
27910
|
-
"id": "openwop.it.v2-a2ui-v09-surface.a-recorded-version-2-surface-is-returned-byte-equal-on-poll-and-carried-by-a-for",
|
|
27911
|
-
"file": "v2-a2ui-v09-surface.test.ts",
|
|
27912
|
-
"line": 214,
|
|
27913
|
-
"title": "a recorded version-2 surface is returned byte-equal on poll and carried by a fork at a later fromSeq",
|
|
27914
|
-
"explicitId": "openwop.it.v2-a2ui-v09-surface.recorded-as-recorded",
|
|
27915
|
-
"citations": [
|
|
27916
|
-
{
|
|
27917
|
-
"section": "RFC 0209 §C.11",
|
|
27918
|
-
"requirement": null,
|
|
27919
|
-
"interpolated": true
|
|
27920
|
-
},
|
|
27921
|
-
{
|
|
27922
|
-
"section": "RFC 0209 §C.11",
|
|
27923
|
-
"requirement": "the run's poll MUST return the recorded surface payload unchanged as JSON (JCS-equal; member order carries no meaning) — no surface is regenerated"
|
|
27924
|
-
},
|
|
27925
|
-
{
|
|
27926
|
-
"section": "RFC 0209 §C.9",
|
|
27927
|
-
"requirement": null,
|
|
27928
|
-
"interpolated": true
|
|
27929
|
-
},
|
|
27930
|
-
{
|
|
27931
|
-
"section": "api/seams-v2.yaml emitA2uiSurface",
|
|
27932
|
-
"requirement": null,
|
|
27933
|
-
"interpolated": true
|
|
27934
|
-
},
|
|
27935
|
-
{
|
|
27936
|
-
"section": "RFC 0209 §C.11",
|
|
27937
|
-
"requirement": null,
|
|
27938
|
-
"interpolated": true
|
|
27939
|
-
},
|
|
27940
|
-
{
|
|
27941
|
-
"section": "RFC 0209 §C.11",
|
|
27942
|
-
"requirement": "a fork at a fromSeq after the surface MUST carry it unchanged"
|
|
27943
|
-
}
|
|
27944
|
-
]
|
|
27945
|
-
},
|
|
27946
|
-
{
|
|
27947
|
-
"id": "openwop.it.v2-a2ui-v09-surface.a-version-1-surface-recorded-at-floor-1-is-returned-byte-equal-on-poll-and-carri",
|
|
27948
|
-
"file": "v2-a2ui-v09-surface.test.ts",
|
|
27949
|
-
"line": 241,
|
|
27950
|
-
"title": "a version-1 surface recorded at floor 1 is returned byte-equal on poll and carried by a fork",
|
|
27951
|
-
"explicitId": "openwop.requirement.0209.legacy-readable",
|
|
27952
|
-
"citations": [
|
|
27953
|
-
{
|
|
27954
|
-
"section": "RFC 0209 §C.11",
|
|
27955
|
-
"requirement": null,
|
|
27956
|
-
"interpolated": true
|
|
27957
|
-
},
|
|
27958
|
-
{
|
|
27959
|
-
"section": "RFC 0209 §C.11",
|
|
27960
|
-
"requirement": "the poll MUST return the version-1 surface unchanged as JSON (JCS-equal)"
|
|
27961
|
-
},
|
|
27962
|
-
{
|
|
27963
|
-
"section": "RFC 0209 §C.11",
|
|
27964
|
-
"requirement": null,
|
|
27965
|
-
"interpolated": true
|
|
27966
|
-
},
|
|
27967
|
-
{
|
|
27968
|
-
"section": "api/seams-v2.yaml emitA2uiSurface",
|
|
27969
|
-
"requirement": null,
|
|
27970
|
-
"interpolated": true
|
|
27971
|
-
},
|
|
27972
|
-
{
|
|
27973
|
-
"section": "RFC 0209 §C.11",
|
|
27974
|
-
"requirement": null,
|
|
27975
|
-
"interpolated": true
|
|
27976
|
-
},
|
|
27977
|
-
{
|
|
27978
|
-
"section": "RFC 0209 §C.11",
|
|
27979
|
-
"requirement": "a fork at a later fromSeq MUST carry the version-1 surface unchanged"
|
|
27980
|
-
}
|
|
27981
|
-
]
|
|
27982
|
-
},
|
|
27983
|
-
{
|
|
27984
|
-
"id": "openwop.it.v2-a2ui-v09-surface.one-untrusted-update-taints-a-trusted-surface-a-later-trusted-update-does-not-la",
|
|
27985
|
-
"file": "v2-a2ui-v09-surface.test.ts",
|
|
27986
|
-
"line": 265,
|
|
27987
|
-
"title": "one untrusted update taints a trusted surface, a later trusted update does not launder it, and the approval does not advance; an all-trusted surface does",
|
|
27988
|
-
"explicitId": "openwop.requirement.0209.taint-sticky",
|
|
27989
|
-
"citations": [
|
|
27990
|
-
{
|
|
27991
|
-
"section": "RFC 0209 §C.12",
|
|
27992
|
-
"requirement": null,
|
|
27993
|
-
"interpolated": true
|
|
27994
|
-
}
|
|
27995
|
-
]
|
|
27996
|
-
},
|
|
27997
|
-
{
|
|
27998
|
-
"id": "openwop.it.v2-a2ui-v09-surface.records-why-render-needs-root-has-no-server-side-witness-and-where-its-witness-l",
|
|
27999
|
-
"file": "v2-a2ui-v09-surface.test.ts",
|
|
28000
|
-
"line": 304,
|
|
28001
|
-
"title": "records why render-needs-root has no server-side witness, and where its witness lives",
|
|
28002
|
-
"explicitId": "openwop.requirement.0209.render-needs-root",
|
|
28003
|
-
"citations": [
|
|
28004
|
-
{
|
|
28005
|
-
"section": "RFC 0209 §C.9",
|
|
28006
|
-
"requirement": "a renderer does not render a surface before its root component exists"
|
|
28007
|
-
}
|
|
28008
|
-
]
|
|
28009
|
-
},
|
|
28010
|
-
{
|
|
28011
|
-
"id": "openwop.it.v2-a2ui-v09-surface.a-version-2-surface-is-admitted-and-a-version-1-body-under-schema-version-2-is-r",
|
|
28012
|
-
"file": "v2-a2ui-v09-surface.test.ts",
|
|
28013
|
-
"line": 311,
|
|
28014
|
-
"title": "a version-2 surface is admitted and a version-1 body under schema version 2 is refused, in the same run",
|
|
28015
|
-
"explicitId": "openwop.family.a2uiSurface",
|
|
28016
|
-
"citations": [
|
|
28017
|
-
{
|
|
28018
|
-
"section": "spec/v2/ext/a2uiSurface/README.md §Conformance",
|
|
28019
|
-
"requirement": null,
|
|
28020
|
-
"interpolated": true
|
|
28021
|
-
}
|
|
28022
|
-
]
|
|
28023
|
-
},
|
|
28024
27815
|
{
|
|
28025
27816
|
"id": "openwop.it.v2-advertised-fixtures-exist.a-sampled-advertised-fixture-is-actually-creatable-not-just-listed",
|
|
28026
27817
|
"file": "v2-advertised-fixtures-exist.test.ts",
|
|
@@ -28167,20 +27958,6 @@
|
|
|
28167
27958
|
}
|
|
28168
27959
|
]
|
|
28169
27960
|
},
|
|
28170
|
-
{
|
|
28171
|
-
"id": "openwop.it.v2-ai-envelope-advertisement.the-aienvelope-record-validates-against-its-capabilities-schema-seat",
|
|
28172
|
-
"file": "v2-ai-envelope-advertisement.test.ts",
|
|
28173
|
-
"line": 35,
|
|
28174
|
-
"title": "the aiEnvelope record validates against its capabilities-schema seat",
|
|
28175
|
-
"explicitId": "openwop.requirement.ai-envelope.advert-record-schema",
|
|
28176
|
-
"citations": [
|
|
28177
|
-
{
|
|
28178
|
-
"section": null,
|
|
28179
|
-
"requirement": null,
|
|
28180
|
-
"interpolated": true
|
|
28181
|
-
}
|
|
28182
|
-
]
|
|
28183
|
-
},
|
|
28184
27961
|
{
|
|
28185
27962
|
"id": "openwop.it.v2-ai-providers-advertisement.the-aiproviders-record-validates-against-its-capabilities-schema-seat",
|
|
28186
27963
|
"file": "v2-ai-providers-advertisement.test.ts",
|
|
@@ -30198,6 +29975,118 @@
|
|
|
30198
29975
|
"explicitId": "openwop.requirement.0082.eval-gate-unmet-unchanged",
|
|
30199
29976
|
"citations": []
|
|
30200
29977
|
},
|
|
29978
|
+
{
|
|
29979
|
+
"id": "openwop.it.v2-deployment-lifecycle.lists-valid-deployment-records-of-the-fixture-agent",
|
|
29980
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
29981
|
+
"line": 379,
|
|
29982
|
+
"title": "lists valid deployment records of the fixture agent",
|
|
29983
|
+
"explicitId": "openwop.requirement.0082.list-valid",
|
|
29984
|
+
"citations": []
|
|
29985
|
+
},
|
|
29986
|
+
{
|
|
29987
|
+
"id": "openwop.it.v2-deployment-lifecycle.a-channel-bound-run-records-the-channel-and-the-version-it-resolved",
|
|
29988
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
29989
|
+
"line": 386,
|
|
29990
|
+
"title": "a channel-bound run records the channel and the version it resolved",
|
|
29991
|
+
"explicitId": "openwop.requirement.0082.pin-recorded",
|
|
29992
|
+
"citations": []
|
|
29993
|
+
},
|
|
29994
|
+
{
|
|
29995
|
+
"id": "openwop.it.v2-deployment-lifecycle.a-transition-without-the-deploy-scope-is-refused-403-forbidden-and-moves-nothing",
|
|
29996
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
29997
|
+
"line": 394,
|
|
29998
|
+
"title": "a transition without the deploy:* scope is refused 403 forbidden and moves nothing",
|
|
29999
|
+
"explicitId": "openwop.requirement.0082.scope-fail-closed",
|
|
30000
|
+
"citations": []
|
|
30001
|
+
},
|
|
30002
|
+
{
|
|
30003
|
+
"id": "openwop.it.v2-deployment-lifecycle.a-pause-or-deprecate-of-a-draft-is-409-deployment-state-conflict-and-moves-nothi",
|
|
30004
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30005
|
+
"line": 403,
|
|
30006
|
+
"title": "a pause or deprecate of a draft is 409 deployment_state_conflict and moves nothing",
|
|
30007
|
+
"explicitId": "openwop.requirement.0082.transition-illegal-refused",
|
|
30008
|
+
"citations": []
|
|
30009
|
+
},
|
|
30010
|
+
{
|
|
30011
|
+
"id": "openwop.it.v2-deployment-lifecycle.a-promote-of-a-draft-straight-to-active-is-409-deployment-state-conflict-and-mov",
|
|
30012
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30013
|
+
"line": 412,
|
|
30014
|
+
"title": "a promote of a draft straight to active is 409 deployment_state_conflict and moves nothing",
|
|
30015
|
+
"explicitId": "openwop.requirement.0082.promote-skip-refused",
|
|
30016
|
+
"citations": []
|
|
30017
|
+
},
|
|
30018
|
+
{
|
|
30019
|
+
"id": "openwop.it.v2-deployment-lifecycle.a-transition-into-a-state-the-host-does-not-advertise-is-a-validation-error",
|
|
30020
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30021
|
+
"line": 424,
|
|
30022
|
+
"title": "a transition into a state the host does not advertise is a validation_error",
|
|
30023
|
+
"explicitId": "openwop.requirement.0082.state-unadvertised-refused",
|
|
30024
|
+
"citations": []
|
|
30025
|
+
},
|
|
30026
|
+
{
|
|
30027
|
+
"id": "openwop.it.v2-deployment-lifecycle.a-draft-promotes-one-step-at-a-time-over-the-advertised-states-to-active-on-a-ch",
|
|
30028
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30029
|
+
"line": 437,
|
|
30030
|
+
"title": "a draft promotes one step at a time over the advertised states to active on a channel",
|
|
30031
|
+
"explicitId": "openwop.requirement.0082.transition-legal",
|
|
30032
|
+
"citations": []
|
|
30033
|
+
},
|
|
30034
|
+
{
|
|
30035
|
+
"id": "openwop.it.v2-deployment-lifecycle.a-replay-re-reads-the-recorded-version-after-the-channel-moved",
|
|
30036
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30037
|
+
"line": 453,
|
|
30038
|
+
"title": "a replay re-reads the recorded version after the channel moved",
|
|
30039
|
+
"explicitId": "openwop.requirement.0082.replay-pin-reread",
|
|
30040
|
+
"citations": []
|
|
30041
|
+
},
|
|
30042
|
+
{
|
|
30043
|
+
"id": "openwop.it.v2-deployment-lifecycle.adjust-canary-sets-the-share-on-a-canary-host",
|
|
30044
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30045
|
+
"line": 464,
|
|
30046
|
+
"title": "adjust-canary sets the share on a canary host",
|
|
30047
|
+
"explicitId": "openwop.requirement.0082.canary-adjusted",
|
|
30048
|
+
"citations": []
|
|
30049
|
+
},
|
|
30050
|
+
{
|
|
30051
|
+
"id": "openwop.it.v2-deployment-lifecycle.a-host-without-canary-refuses-a-share-below-100",
|
|
30052
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30053
|
+
"line": 476,
|
|
30054
|
+
"title": "a host without canary refuses a share below 100",
|
|
30055
|
+
"explicitId": "openwop.requirement.0082.canary-unsupported-refused",
|
|
30056
|
+
"citations": []
|
|
30057
|
+
},
|
|
30058
|
+
{
|
|
30059
|
+
"id": "openwop.it.v2-deployment-lifecycle.a-rollback-restores-the-incumbent-and-points-at-it",
|
|
30060
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30061
|
+
"line": 488,
|
|
30062
|
+
"title": "a rollback restores the incumbent and points at it",
|
|
30063
|
+
"explicitId": "openwop.requirement.0082.rollback-pointer",
|
|
30064
|
+
"citations": []
|
|
30065
|
+
},
|
|
30066
|
+
{
|
|
30067
|
+
"id": "openwop.it.v2-deployment-lifecycle.a-paused-version-resumes-to-active-by-promote",
|
|
30068
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30069
|
+
"line": 500,
|
|
30070
|
+
"title": "a paused version resumes to active by promote",
|
|
30071
|
+
"explicitId": "openwop.requirement.0082.resume-from-paused",
|
|
30072
|
+
"citations": []
|
|
30073
|
+
},
|
|
30074
|
+
{
|
|
30075
|
+
"id": "openwop.it.v2-deployment-lifecycle.every-accepted-transition-names-its-deployment-management-run",
|
|
30076
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30077
|
+
"line": 509,
|
|
30078
|
+
"title": "every accepted transition names its deployment-management run",
|
|
30079
|
+
"explicitId": "openwop.requirement.0082.transition-run-linked",
|
|
30080
|
+
"citations": []
|
|
30081
|
+
},
|
|
30082
|
+
{
|
|
30083
|
+
"id": "openwop.it.v2-deployment-lifecycle.the-management-run-records-the-transition-s-content-free-deployment-event",
|
|
30084
|
+
"file": "v2-deployment-lifecycle.test.ts",
|
|
30085
|
+
"line": 517,
|
|
30086
|
+
"title": "the management run records the transition's content-free deployment event",
|
|
30087
|
+
"explicitId": "openwop.requirement.0082.transition-event-recorded",
|
|
30088
|
+
"citations": []
|
|
30089
|
+
},
|
|
30201
30090
|
{
|
|
30202
30091
|
"id": "openwop.it.v2-discovery-etag.the-discovery-document-carries-an-etag",
|
|
30203
30092
|
"file": "v2-discovery-etag.test.ts",
|
|
@@ -30701,196 +30590,15 @@
|
|
|
30701
30590
|
]
|
|
30702
30591
|
},
|
|
30703
30592
|
{
|
|
30704
|
-
"id": "openwop.it.v2-envelope-
|
|
30705
|
-
"file": "v2-envelope-
|
|
30706
|
-
"line":
|
|
30707
|
-
"title": "the
|
|
30708
|
-
"explicitId": "openwop.requirement.
|
|
30709
|
-
"citations": [
|
|
30710
|
-
{
|
|
30711
|
-
"section": null,
|
|
30712
|
-
"requirement": null,
|
|
30713
|
-
"interpolated": true
|
|
30714
|
-
}
|
|
30715
|
-
]
|
|
30716
|
-
},
|
|
30717
|
-
{
|
|
30718
|
-
"id": "openwop.it.v2-envelope-contracts-advertisement.envelopecontracts-advertised-is-not-false-a-host-that-does-not-offer-the-family",
|
|
30719
|
-
"file": "v2-envelope-contracts-advertisement.test.ts",
|
|
30720
|
-
"line": 41,
|
|
30721
|
-
"title": "envelopeContracts.advertised is not false: a host that does not offer the family omits it",
|
|
30722
|
-
"explicitId": "openwop.requirement.0237.no-false-advertisement",
|
|
30723
|
-
"citations": [
|
|
30724
|
-
{
|
|
30725
|
-
"section": "RFC 0237 §C; capabilities.md §2",
|
|
30726
|
-
"requirement": "envelopeContracts.advertised: false is not a v2 state; a host that does not offer the family MUST omit it"
|
|
30727
|
-
}
|
|
30728
|
-
]
|
|
30729
|
-
},
|
|
30730
|
-
{
|
|
30731
|
-
"id": "openwop.requirement.envelopes.reasoning-declared-optional-string",
|
|
30732
|
-
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30733
|
-
"line": 45,
|
|
30734
|
-
"title": null,
|
|
30735
|
-
"explicitId": "openwop.requirement.envelopes.reasoning-declared-optional-string",
|
|
30736
|
-
"citations": [
|
|
30737
|
-
{
|
|
30738
|
-
"section": "events.md §envelopes",
|
|
30739
|
-
"requirement": null,
|
|
30740
|
-
"interpolated": true
|
|
30741
|
-
},
|
|
30742
|
-
{
|
|
30743
|
-
"section": "events.md §envelopes",
|
|
30744
|
-
"requirement": null,
|
|
30745
|
-
"interpolated": true
|
|
30746
|
-
},
|
|
30747
|
-
{
|
|
30748
|
-
"section": "events.md §envelopes",
|
|
30749
|
-
"requirement": null,
|
|
30750
|
-
"interpolated": true
|
|
30751
|
-
}
|
|
30752
|
-
]
|
|
30753
|
-
},
|
|
30754
|
-
{
|
|
30755
|
-
"id": "openwop.it.v2-envelope-reasoning-shape.schema-response-does-not-declare-reasoning-a-side-channel-ack",
|
|
30756
|
-
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30757
|
-
"line": 55,
|
|
30758
|
-
"title": "schema.response does not declare reasoning (a side-channel ack)",
|
|
30759
|
-
"explicitId": "openwop.requirement.envelopes.reasoning-omitted-from-schema-response",
|
|
30760
|
-
"citations": [
|
|
30761
|
-
{
|
|
30762
|
-
"section": "RFC 0030 §A",
|
|
30763
|
-
"requirement": "schemas/v2/envelopes/schema.response.schema.json MUST exist"
|
|
30764
|
-
},
|
|
30765
|
-
{
|
|
30766
|
-
"section": "RFC 0030 §A",
|
|
30767
|
-
"requirement": "schema.response MUST NOT declare reasoning"
|
|
30768
|
-
}
|
|
30769
|
-
]
|
|
30770
|
-
},
|
|
30771
|
-
{
|
|
30772
|
-
"id": "openwop.requirement.envelopes.reasoning-absent-accepted",
|
|
30773
|
-
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30774
|
-
"line": 67,
|
|
30775
|
-
"title": null,
|
|
30776
|
-
"explicitId": "openwop.requirement.envelopes.reasoning-absent-accepted",
|
|
30777
|
-
"citations": [
|
|
30778
|
-
{
|
|
30779
|
-
"section": "events.md §envelopes",
|
|
30780
|
-
"requirement": null,
|
|
30781
|
-
"interpolated": true
|
|
30782
|
-
}
|
|
30783
|
-
]
|
|
30784
|
-
},
|
|
30785
|
-
{
|
|
30786
|
-
"id": "openwop.requirement.envelopes.reasoning-present-accepted",
|
|
30787
|
-
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30788
|
-
"line": 72,
|
|
30789
|
-
"title": null,
|
|
30790
|
-
"explicitId": "openwop.requirement.envelopes.reasoning-present-accepted",
|
|
30791
|
-
"citations": [
|
|
30792
|
-
{
|
|
30793
|
-
"section": "events.md §envelopes",
|
|
30794
|
-
"requirement": null,
|
|
30795
|
-
"interpolated": true
|
|
30796
|
-
}
|
|
30797
|
-
]
|
|
30798
|
-
},
|
|
30799
|
-
{
|
|
30800
|
-
"id": "openwop.requirement.envelopes.reasoning-non-string-rejected",
|
|
30801
|
-
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30802
|
-
"line": 77,
|
|
30803
|
-
"title": null,
|
|
30804
|
-
"explicitId": "openwop.requirement.envelopes.reasoning-non-string-rejected",
|
|
30805
|
-
"citations": [
|
|
30806
|
-
{
|
|
30807
|
-
"section": "events.md §envelopes",
|
|
30808
|
-
"requirement": null,
|
|
30809
|
-
"interpolated": true
|
|
30810
|
-
}
|
|
30811
|
-
]
|
|
30812
|
-
},
|
|
30813
|
-
{
|
|
30814
|
-
"id": "openwop.it.v2-envelope-tier-one-subset-static.a-host-advertising-tieronesubsetcompliance-strict-has-advertised-kinds-whose-cor",
|
|
30815
|
-
"file": "v2-envelope-tier-one-subset-static.test.ts",
|
|
30816
|
-
"line": 43,
|
|
30817
|
-
"title": "a host advertising tierOneSubsetCompliance strict has advertised kinds whose corpus schemas satisfy the Tier-1 intersection",
|
|
30818
|
-
"explicitId": "openwop.requirement.envelopes.tier-one-strict-advertised-kinds",
|
|
30819
|
-
"citations": [
|
|
30820
|
-
{
|
|
30821
|
-
"section": "capabilities.schema.json §envelopes.tierOneSubsetCompliance",
|
|
30822
|
-
"requirement": null,
|
|
30823
|
-
"interpolated": true
|
|
30824
|
-
}
|
|
30825
|
-
]
|
|
30826
|
-
},
|
|
30827
|
-
{
|
|
30828
|
-
"id": "openwop.it.v2-envelopes-advertisement.the-envelopes-record-validates-against-its-capabilities-schema-seat",
|
|
30829
|
-
"file": "v2-envelopes-advertisement.test.ts",
|
|
30830
|
-
"line": 46,
|
|
30831
|
-
"title": "the envelopes record validates against its capabilities-schema seat",
|
|
30832
|
-
"explicitId": "openwop.requirement.envelopes.advert-record-schema",
|
|
30833
|
-
"citations": [
|
|
30834
|
-
{
|
|
30835
|
-
"section": null,
|
|
30836
|
-
"requirement": null,
|
|
30837
|
-
"interpolated": true
|
|
30838
|
-
}
|
|
30839
|
-
]
|
|
30840
|
-
},
|
|
30841
|
-
{
|
|
30842
|
-
"id": "openwop.it.v2-envelopes-advertisement.envelopes-reasoning-promptdirective-is-mandatory-advisory-or-off",
|
|
30843
|
-
"file": "v2-envelopes-advertisement.test.ts",
|
|
30844
|
-
"line": 54,
|
|
30845
|
-
"title": "envelopes.reasoning.promptDirective is mandatory, advisory or off",
|
|
30846
|
-
"explicitId": "openwop.requirement.envelopes.reasoning-advert-shape",
|
|
30847
|
-
"citations": [
|
|
30848
|
-
{
|
|
30849
|
-
"section": null,
|
|
30850
|
-
"requirement": null,
|
|
30851
|
-
"interpolated": true
|
|
30852
|
-
}
|
|
30853
|
-
]
|
|
30854
|
-
},
|
|
30855
|
-
{
|
|
30856
|
-
"id": "openwop.it.v2-envelopes-advertisement.envelopes-tieronesubsetcompliance-is-strict-warn-or-off",
|
|
30857
|
-
"file": "v2-envelopes-advertisement.test.ts",
|
|
30858
|
-
"line": 62,
|
|
30859
|
-
"title": "envelopes.tierOneSubsetCompliance is strict, warn or off",
|
|
30860
|
-
"explicitId": "openwop.requirement.envelopes.tier-one-subset-compliance-value",
|
|
30861
|
-
"citations": [
|
|
30862
|
-
{
|
|
30863
|
-
"section": null,
|
|
30864
|
-
"requirement": null,
|
|
30865
|
-
"interpolated": true
|
|
30866
|
-
}
|
|
30867
|
-
]
|
|
30868
|
-
},
|
|
30869
|
-
{
|
|
30870
|
-
"id": "openwop.it.v2-envelopes-advertisement.envelopes-reliability-events-lists-only-reliability-events-and-includes-retry-ex",
|
|
30871
|
-
"file": "v2-envelopes-advertisement.test.ts",
|
|
30872
|
-
"line": 70,
|
|
30873
|
-
"title": "envelopes.reliability.events lists only reliability events and includes retry-exhausted and refusal",
|
|
30874
|
-
"explicitId": "openwop.requirement.envelopes.reliability-events-advert",
|
|
30875
|
-
"citations": [
|
|
30876
|
-
{
|
|
30877
|
-
"section": null,
|
|
30878
|
-
"requirement": null,
|
|
30879
|
-
"interpolated": true
|
|
30880
|
-
}
|
|
30881
|
-
]
|
|
30882
|
-
},
|
|
30883
|
-
{
|
|
30884
|
-
"id": "openwop.it.v2-envelopes-advertisement.envelopes-reliability-completion-distinguishestruncation-is-a-boolean",
|
|
30885
|
-
"file": "v2-envelopes-advertisement.test.ts",
|
|
30886
|
-
"line": 78,
|
|
30887
|
-
"title": "envelopes.reliability.completion.distinguishesTruncation is a boolean",
|
|
30888
|
-
"explicitId": "openwop.requirement.envelopes.completion-advert-shape",
|
|
30593
|
+
"id": "openwop.it.v2-envelope-surfaces-absent.the-discovery-document-publishes-no-deleted-envelope-family-or-limit",
|
|
30594
|
+
"file": "v2-envelope-surfaces-absent.test.ts",
|
|
30595
|
+
"line": 49,
|
|
30596
|
+
"title": "the discovery document publishes no deleted envelope family or limit",
|
|
30597
|
+
"explicitId": "openwop.requirement.0255.surfaces-absent",
|
|
30889
30598
|
"citations": [
|
|
30890
30599
|
{
|
|
30891
|
-
"section":
|
|
30892
|
-
"requirement":
|
|
30893
|
-
"interpolated": true
|
|
30600
|
+
"section": "RFC 0255 §A",
|
|
30601
|
+
"requirement": "a v2 discovery document MUST NOT publish a family or limit RFC 0255 deleted"
|
|
30894
30602
|
}
|
|
30895
30603
|
]
|
|
30896
30604
|
},
|
|
@@ -32700,6 +32408,72 @@
|
|
|
32700
32408
|
}
|
|
32701
32409
|
]
|
|
32702
32410
|
},
|
|
32411
|
+
{
|
|
32412
|
+
"id": "openwop.it.v2-interrupt-form-rules.a-clarification-raised-with-a-form-carries-it-unchanged-beside-questions-in-a-va",
|
|
32413
|
+
"file": "v2-interrupt-form-rules.test.ts",
|
|
32414
|
+
"line": 98,
|
|
32415
|
+
"title": "a clarification raised with a form carries it unchanged, beside questions, in a valid InterruptPayload",
|
|
32416
|
+
"explicitId": null,
|
|
32417
|
+
"citations": [
|
|
32418
|
+
{
|
|
32419
|
+
"section": "spec/v2/core/interrupt.md §Forms (RFC 0255 §E)",
|
|
32420
|
+
"requirement": "the suspended run MUST record interrupt.requested { kind: \"clarification\" }"
|
|
32421
|
+
},
|
|
32422
|
+
{
|
|
32423
|
+
"section": "spec/v2/core/interrupt.md §Forms (RFC 0255 §E)",
|
|
32424
|
+
"requirement": null,
|
|
32425
|
+
"interpolated": true
|
|
32426
|
+
},
|
|
32427
|
+
{
|
|
32428
|
+
"section": "spec/v2/core/interrupt.md §Forms (RFC 0255 §E)",
|
|
32429
|
+
"requirement": "questions MUST stay beside the form as its fallback"
|
|
32430
|
+
},
|
|
32431
|
+
{
|
|
32432
|
+
"section": "spec/v2/core/interrupt.md §Forms (RFC 0255 §E)",
|
|
32433
|
+
"requirement": "data.form MUST be the fixture's form, unchanged"
|
|
32434
|
+
}
|
|
32435
|
+
]
|
|
32436
|
+
},
|
|
32437
|
+
{
|
|
32438
|
+
"id": "openwop.it.v2-interrupt-form-rules.a-form-resolves-with-answers-id-answer-and-the-run-completes",
|
|
32439
|
+
"file": "v2-interrupt-form-rules.test.ts",
|
|
32440
|
+
"line": 111,
|
|
32441
|
+
"title": "a form resolves with { answers: [{ id, answer }] } and the run completes",
|
|
32442
|
+
"explicitId": null,
|
|
32443
|
+
"citations": [
|
|
32444
|
+
{
|
|
32445
|
+
"section": "spec/v2/core/interrupt.md §Forms (RFC 0255 §E)",
|
|
32446
|
+
"requirement": null,
|
|
32447
|
+
"interpolated": true
|
|
32448
|
+
},
|
|
32449
|
+
{
|
|
32450
|
+
"section": "spec/v2/core/interrupt.md §Forms (RFC 0255 §E)",
|
|
32451
|
+
"requirement": "the resolve MUST be a 2xx"
|
|
32452
|
+
},
|
|
32453
|
+
{
|
|
32454
|
+
"section": "spec/v2/core/interrupt.md §Forms (RFC 0255 §E)",
|
|
32455
|
+
"requirement": "the resolved run MUST complete"
|
|
32456
|
+
}
|
|
32457
|
+
]
|
|
32458
|
+
},
|
|
32459
|
+
{
|
|
32460
|
+
"id": "openwop.it.v2-interrupt-form-rules.a-form-that-fails-the-schema-or-binds-an-input-to-no-question-is-never-raised",
|
|
32461
|
+
"file": "v2-interrupt-form-rules.test.ts",
|
|
32462
|
+
"line": 124,
|
|
32463
|
+
"title": "a form that fails the schema or binds an input to no question is never raised",
|
|
32464
|
+
"explicitId": null,
|
|
32465
|
+
"citations": [
|
|
32466
|
+
{
|
|
32467
|
+
"section": "spec/v2/core/interrupt.md §Forms (RFC 0255 §E)",
|
|
32468
|
+
"requirement": "control: the positive fixture MUST raise its form, or a host raising none would pass"
|
|
32469
|
+
},
|
|
32470
|
+
{
|
|
32471
|
+
"section": "spec/v2/core/interrupt.md §Forms (RFC 0255 §E)",
|
|
32472
|
+
"requirement": null,
|
|
32473
|
+
"interpolated": true
|
|
32474
|
+
}
|
|
32475
|
+
]
|
|
32476
|
+
},
|
|
32703
32477
|
{
|
|
32704
32478
|
"id": "openwop.it.v2-interrupt-resolve-terminal.a-run-scoped-resolve-after-the-run-was-cancelled-is-409-interrupt-already-resolv",
|
|
32705
32479
|
"file": "v2-interrupt-resolve-terminal.test.ts",
|
|
@@ -32939,9 +32713,9 @@
|
|
|
32939
32713
|
]
|
|
32940
32714
|
},
|
|
32941
32715
|
{
|
|
32942
|
-
"id": "openwop.it.v2-limits-
|
|
32943
|
-
"file": "v2-limits-
|
|
32944
|
-
"line":
|
|
32716
|
+
"id": "openwop.it.v2-limits-clarification-rounds-advertisement.limits-clarificationrounds-is-present-and-a-non-negative-integer",
|
|
32717
|
+
"file": "v2-limits-clarification-rounds-advertisement.test.ts",
|
|
32718
|
+
"line": 35,
|
|
32945
32719
|
"title": "limits.clarificationRounds is present and a non-negative integer",
|
|
32946
32720
|
"explicitId": "openwop.requirement.limits.clarification-rounds-advertised",
|
|
32947
32721
|
"citations": [
|
|
@@ -32952,34 +32726,6 @@
|
|
|
32952
32726
|
}
|
|
32953
32727
|
]
|
|
32954
32728
|
},
|
|
32955
|
-
{
|
|
32956
|
-
"id": "openwop.it.v2-limits-envelope-caps-advertisement.limits-schemarounds-is-present-and-a-non-negative-integer",
|
|
32957
|
-
"file": "v2-limits-envelope-caps-advertisement.test.ts",
|
|
32958
|
-
"line": 46,
|
|
32959
|
-
"title": "limits.schemaRounds is present and a non-negative integer",
|
|
32960
|
-
"explicitId": "openwop.requirement.limits.schema-rounds-advertised",
|
|
32961
|
-
"citations": [
|
|
32962
|
-
{
|
|
32963
|
-
"section": null,
|
|
32964
|
-
"requirement": null,
|
|
32965
|
-
"interpolated": true
|
|
32966
|
-
}
|
|
32967
|
-
]
|
|
32968
|
-
},
|
|
32969
|
-
{
|
|
32970
|
-
"id": "openwop.it.v2-limits-envelope-caps-advertisement.limits-envelopesperturn-is-present-and-a-non-negative-integer",
|
|
32971
|
-
"file": "v2-limits-envelope-caps-advertisement.test.ts",
|
|
32972
|
-
"line": 54,
|
|
32973
|
-
"title": "limits.envelopesPerTurn is present and a non-negative integer",
|
|
32974
|
-
"explicitId": "openwop.requirement.limits.envelopes-per-turn-advertised",
|
|
32975
|
-
"citations": [
|
|
32976
|
-
{
|
|
32977
|
-
"section": null,
|
|
32978
|
-
"requirement": null,
|
|
32979
|
-
"interpolated": true
|
|
32980
|
-
}
|
|
32981
|
-
]
|
|
32982
|
-
},
|
|
32983
32729
|
{
|
|
32984
32730
|
"id": "openwop.it.v2-localized-content-delivery.the-v2-content-record-requires-baselocale-and-supportedlocales-and-has-no-suppor",
|
|
32985
32731
|
"file": "v2-localized-content-delivery.test.ts",
|
|
@@ -36404,6 +36150,76 @@
|
|
|
36404
36150
|
}
|
|
36405
36151
|
]
|
|
36406
36152
|
},
|
|
36153
|
+
{
|
|
36154
|
+
"id": "openwop.it.v2-provider-output-reliability.a-truncated-reply-emits-envelope-truncated-and-the-retried-call-completes",
|
|
36155
|
+
"file": "v2-provider-output-reliability.test.ts",
|
|
36156
|
+
"line": 61,
|
|
36157
|
+
"title": "a truncated reply emits envelope.truncated and the retried call completes",
|
|
36158
|
+
"explicitId": "openwop.requirement.0255.provider-output-truncation",
|
|
36159
|
+
"citations": [
|
|
36160
|
+
{
|
|
36161
|
+
"section": "host-services.md §Structured output",
|
|
36162
|
+
"requirement": "a truncated reply MUST emit envelope.truncated"
|
|
36163
|
+
},
|
|
36164
|
+
{
|
|
36165
|
+
"section": "host-services.md §Structured output",
|
|
36166
|
+
"requirement": null,
|
|
36167
|
+
"interpolated": true
|
|
36168
|
+
}
|
|
36169
|
+
]
|
|
36170
|
+
},
|
|
36171
|
+
{
|
|
36172
|
+
"id": "openwop.it.v2-provider-output-reliability.when-the-repair-budget-runs-out-the-node-fails-envelope-invalid-after-retry-exha",
|
|
36173
|
+
"file": "v2-provider-output-reliability.test.ts",
|
|
36174
|
+
"line": 72,
|
|
36175
|
+
"title": "when the repair budget runs out the node fails envelope_invalid after retry-exhausted and cap.breached schema",
|
|
36176
|
+
"explicitId": "openwop.requirement.0255.provider-output-exhaustion",
|
|
36177
|
+
"citations": [
|
|
36178
|
+
{
|
|
36179
|
+
"section": "host-services.md §Structured output",
|
|
36180
|
+
"requirement": "a call whose every reply violates the schema MUST fail"
|
|
36181
|
+
},
|
|
36182
|
+
{
|
|
36183
|
+
"section": "host-services.md §Structured output",
|
|
36184
|
+
"requirement": "the node MUST fail with envelope_invalid"
|
|
36185
|
+
},
|
|
36186
|
+
{
|
|
36187
|
+
"section": "host-services.md §Structured output",
|
|
36188
|
+
"requirement": "exhaustion MUST emit envelope.retry-exhausted"
|
|
36189
|
+
},
|
|
36190
|
+
{
|
|
36191
|
+
"section": "host-services.md §Structured output",
|
|
36192
|
+
"requirement": null,
|
|
36193
|
+
"interpolated": true
|
|
36194
|
+
}
|
|
36195
|
+
]
|
|
36196
|
+
},
|
|
36197
|
+
{
|
|
36198
|
+
"id": "openwop.it.v2-provider-output-reliability.a-refusal-fails-the-node-envelope-refusal-after-envelope-refusal-and-is-never-re",
|
|
36199
|
+
"file": "v2-provider-output-reliability.test.ts",
|
|
36200
|
+
"line": 83,
|
|
36201
|
+
"title": "a refusal fails the node envelope_refusal after envelope.refusal and is never retried",
|
|
36202
|
+
"explicitId": "openwop.requirement.0255.provider-output-refusal",
|
|
36203
|
+
"citations": [
|
|
36204
|
+
{
|
|
36205
|
+
"section": "host-services.md §Structured output",
|
|
36206
|
+
"requirement": null,
|
|
36207
|
+
"interpolated": true
|
|
36208
|
+
},
|
|
36209
|
+
{
|
|
36210
|
+
"section": "host-services.md §Structured output",
|
|
36211
|
+
"requirement": "the node MUST fail with envelope_refusal"
|
|
36212
|
+
},
|
|
36213
|
+
{
|
|
36214
|
+
"section": "host-services.md §Structured output",
|
|
36215
|
+
"requirement": "a refusal MUST emit envelope.refusal"
|
|
36216
|
+
},
|
|
36217
|
+
{
|
|
36218
|
+
"section": "host-services.md §Structured output",
|
|
36219
|
+
"requirement": "a host MUST NOT retry a refusal"
|
|
36220
|
+
}
|
|
36221
|
+
]
|
|
36222
|
+
},
|
|
36407
36223
|
{
|
|
36408
36224
|
"id": "openwop.it.v2-provider-usage-advertisement.the-providerusage-record-validates-against-its-capabilities-schema-seat",
|
|
36409
36225
|
"file": "v2-provider-usage-advertisement.test.ts",
|
|
@@ -38159,6 +37975,76 @@
|
|
|
38159
37975
|
}
|
|
38160
37976
|
]
|
|
38161
37977
|
},
|
|
37978
|
+
{
|
|
37979
|
+
"id": "openwop.it.v2-structured-output-advertisement.the-aiproviders-record-validates-against-its-capabilities-schema-seat",
|
|
37980
|
+
"file": "v2-structured-output-advertisement.test.ts",
|
|
37981
|
+
"line": 43,
|
|
37982
|
+
"title": "the aiProviders record validates against its capabilities-schema seat",
|
|
37983
|
+
"explicitId": "openwop.requirement.aiProviders.structured-output-record",
|
|
37984
|
+
"citations": [
|
|
37985
|
+
{
|
|
37986
|
+
"section": null,
|
|
37987
|
+
"requirement": null,
|
|
37988
|
+
"interpolated": true
|
|
37989
|
+
}
|
|
37990
|
+
]
|
|
37991
|
+
},
|
|
37992
|
+
{
|
|
37993
|
+
"id": "openwop.it.v2-structured-output-advertisement.aiproviders-reasoning-promptdirective-is-mandatory-advisory-or-off",
|
|
37994
|
+
"file": "v2-structured-output-advertisement.test.ts",
|
|
37995
|
+
"line": 51,
|
|
37996
|
+
"title": "aiProviders.reasoning.promptDirective is mandatory, advisory or off",
|
|
37997
|
+
"explicitId": "openwop.requirement.aiProviders.reasoning-advert-shape",
|
|
37998
|
+
"citations": [
|
|
37999
|
+
{
|
|
38000
|
+
"section": null,
|
|
38001
|
+
"requirement": null,
|
|
38002
|
+
"interpolated": true
|
|
38003
|
+
}
|
|
38004
|
+
]
|
|
38005
|
+
},
|
|
38006
|
+
{
|
|
38007
|
+
"id": "openwop.it.v2-structured-output-advertisement.aiproviders-tieronesubsetcompliance-is-strict-warn-or-off",
|
|
38008
|
+
"file": "v2-structured-output-advertisement.test.ts",
|
|
38009
|
+
"line": 59,
|
|
38010
|
+
"title": "aiProviders.tierOneSubsetCompliance is strict, warn or off",
|
|
38011
|
+
"explicitId": "openwop.requirement.aiProviders.tier-one-subset-compliance-value",
|
|
38012
|
+
"citations": [
|
|
38013
|
+
{
|
|
38014
|
+
"section": null,
|
|
38015
|
+
"requirement": null,
|
|
38016
|
+
"interpolated": true
|
|
38017
|
+
}
|
|
38018
|
+
]
|
|
38019
|
+
},
|
|
38020
|
+
{
|
|
38021
|
+
"id": "openwop.it.v2-structured-output-advertisement.aiproviders-reliability-events-lists-only-reliability-events-and-includes-retry",
|
|
38022
|
+
"file": "v2-structured-output-advertisement.test.ts",
|
|
38023
|
+
"line": 67,
|
|
38024
|
+
"title": "aiProviders.reliability.events lists only reliability events and includes retry-exhausted and refusal",
|
|
38025
|
+
"explicitId": "openwop.requirement.aiProviders.reliability-events-advert",
|
|
38026
|
+
"citations": [
|
|
38027
|
+
{
|
|
38028
|
+
"section": null,
|
|
38029
|
+
"requirement": null,
|
|
38030
|
+
"interpolated": true
|
|
38031
|
+
}
|
|
38032
|
+
]
|
|
38033
|
+
},
|
|
38034
|
+
{
|
|
38035
|
+
"id": "openwop.it.v2-structured-output-advertisement.aiproviders-reliability-completion-distinguishestruncation-is-a-boolean",
|
|
38036
|
+
"file": "v2-structured-output-advertisement.test.ts",
|
|
38037
|
+
"line": 75,
|
|
38038
|
+
"title": "aiProviders.reliability.completion.distinguishesTruncation is a boolean",
|
|
38039
|
+
"explicitId": "openwop.requirement.aiProviders.completion-advert-shape",
|
|
38040
|
+
"citations": [
|
|
38041
|
+
{
|
|
38042
|
+
"section": null,
|
|
38043
|
+
"requirement": null,
|
|
38044
|
+
"interpolated": true
|
|
38045
|
+
}
|
|
38046
|
+
]
|
|
38047
|
+
},
|
|
38162
38048
|
{
|
|
38163
38049
|
"id": "openwop.it.v2-sub-workflow-advertisement.the-subworkflow-record-validates-against-its-capabilities-schema-seat",
|
|
38164
38050
|
"file": "v2-sub-workflow-advertisement.test.ts",
|
|
@@ -42310,32 +42196,32 @@
|
|
|
42310
42196
|
]
|
|
42311
42197
|
},
|
|
42312
42198
|
{
|
|
42313
|
-
"id": "openwop.it.a2ui-v09-profile.the-vendored-upstream-files-are-the-pinned-bytes-every-positive-
|
|
42199
|
+
"id": "openwop.it.a2ui-v09-profile.the-vendored-upstream-files-are-the-pinned-bytes-every-positive-is-a-valid-form",
|
|
42314
42200
|
"file": "a2ui-v09-profile.test.ts",
|
|
42315
|
-
"line":
|
|
42316
|
-
"title": "the vendored upstream files are the pinned bytes; every positive
|
|
42317
|
-
"explicitId": "openwop.requirement.
|
|
42201
|
+
"line": 88,
|
|
42202
|
+
"title": "the vendored upstream files are the pinned bytes; every positive is a valid form and each of its messages against upstream",
|
|
42203
|
+
"explicitId": "openwop.requirement.0255.interrupt-form-profile",
|
|
42318
42204
|
"citations": [
|
|
42319
42205
|
{
|
|
42320
|
-
"section": "
|
|
42206
|
+
"section": "interrupt.md §Forms",
|
|
42321
42207
|
"requirement": null,
|
|
42322
42208
|
"interpolated": true
|
|
42323
42209
|
},
|
|
42324
42210
|
{
|
|
42325
|
-
"section": "
|
|
42211
|
+
"section": "interrupt.md §Forms",
|
|
42326
42212
|
"requirement": "the vendored basic catalog $id IS the catalogId the profile pins"
|
|
42327
42213
|
},
|
|
42328
42214
|
{
|
|
42329
|
-
"section": "
|
|
42215
|
+
"section": "interrupt.md §Forms",
|
|
42330
42216
|
"requirement": "fixtures/a2ui-v09/ MUST carry at least one positive surface"
|
|
42331
42217
|
},
|
|
42332
42218
|
{
|
|
42333
|
-
"section": "
|
|
42219
|
+
"section": "interrupt.md §Forms",
|
|
42334
42220
|
"requirement": null,
|
|
42335
42221
|
"interpolated": true
|
|
42336
42222
|
},
|
|
42337
42223
|
{
|
|
42338
|
-
"section": "
|
|
42224
|
+
"section": "interrupt.md §Forms",
|
|
42339
42225
|
"requirement": null,
|
|
42340
42226
|
"interpolated": true
|
|
42341
42227
|
}
|
|
@@ -42344,22 +42230,22 @@
|
|
|
42344
42230
|
{
|
|
42345
42231
|
"id": "openwop.it.a2ui-v09-profile.a-functioncall-action-openurl-and-an-event-name-outside-the-allowlist-are-refuse",
|
|
42346
42232
|
"file": "a2ui-v09-profile.test.ts",
|
|
42347
|
-
"line":
|
|
42233
|
+
"line": 109,
|
|
42348
42234
|
"title": "a functionCall action (openUrl) and an event.name outside the allowlist are refused, and only because of $defs/action",
|
|
42349
|
-
"explicitId": "openwop.requirement.
|
|
42235
|
+
"explicitId": "openwop.requirement.0255.interrupt-form-profile",
|
|
42350
42236
|
"citations": [
|
|
42351
42237
|
{
|
|
42352
|
-
"section": "
|
|
42238
|
+
"section": "interrupt.md §Forms",
|
|
42353
42239
|
"requirement": null,
|
|
42354
42240
|
"interpolated": true
|
|
42355
42241
|
},
|
|
42356
42242
|
{
|
|
42357
|
-
"section": "
|
|
42243
|
+
"section": "interrupt.md §Forms",
|
|
42358
42244
|
"requirement": null,
|
|
42359
42245
|
"interpolated": true
|
|
42360
42246
|
},
|
|
42361
42247
|
{
|
|
42362
|
-
"section": "
|
|
42248
|
+
"section": "interrupt.md §Forms",
|
|
42363
42249
|
"requirement": null,
|
|
42364
42250
|
"interpolated": true
|
|
42365
42251
|
}
|
|
@@ -42368,21 +42254,21 @@
|
|
|
42368
42254
|
{
|
|
42369
42255
|
"id": "openwop.it.a2ui-v09-profile.textfield-variant-obscured-is-refused-and-only-because-the-variant-enum-excludes",
|
|
42370
42256
|
"file": "a2ui-v09-profile.test.ts",
|
|
42371
|
-
"line":
|
|
42257
|
+
"line": 123,
|
|
42372
42258
|
"title": "TextField.variant \"obscured\" is refused, and only because the variant enum excludes it",
|
|
42373
|
-
"explicitId": "openwop.requirement.
|
|
42259
|
+
"explicitId": "openwop.requirement.0255.interrupt-form-profile",
|
|
42374
42260
|
"citations": [
|
|
42375
42261
|
{
|
|
42376
|
-
"section": "
|
|
42377
|
-
"requirement": "negative-textfield-obscured MUST fail
|
|
42262
|
+
"section": "interrupt.md §Forms",
|
|
42263
|
+
"requirement": "negative-textfield-obscured MUST fail interrupt-form.schema.json (interrupt-form-no-secret-input)"
|
|
42378
42264
|
},
|
|
42379
42265
|
{
|
|
42380
|
-
"section": "
|
|
42266
|
+
"section": "interrupt.md §Forms",
|
|
42381
42267
|
"requirement": null,
|
|
42382
42268
|
"interpolated": true
|
|
42383
42269
|
},
|
|
42384
42270
|
{
|
|
42385
|
-
"section": "
|
|
42271
|
+
"section": "interrupt.md §Forms",
|
|
42386
42272
|
"requirement": "upstream A2UI accepts an obscured TextField — the refusal is the profile's"
|
|
42387
42273
|
}
|
|
42388
42274
|
]
|
|
@@ -42390,38 +42276,38 @@
|
|
|
42390
42276
|
{
|
|
42391
42277
|
"id": "openwop.it.a2ui-v09-profile.image-and-theme-iconurl-are-refused-each-only-because-of-its-exclusion-no-url-fe",
|
|
42392
42278
|
"file": "a2ui-v09-profile.test.ts",
|
|
42393
|
-
"line":
|
|
42279
|
+
"line": 135,
|
|
42394
42280
|
"title": "Image and theme.iconUrl are refused, each only because of its exclusion; no URL-fetching component is in the profile",
|
|
42395
|
-
"explicitId": "openwop.requirement.
|
|
42281
|
+
"explicitId": "openwop.requirement.0255.interrupt-form-profile",
|
|
42396
42282
|
"citations": [
|
|
42397
42283
|
{
|
|
42398
|
-
"section": "
|
|
42399
|
-
"requirement": "negative-image-component MUST fail
|
|
42284
|
+
"section": "interrupt.md §Forms",
|
|
42285
|
+
"requirement": "negative-image-component MUST fail interrupt-form.schema.json (interrupt-form-no-network-egress)"
|
|
42400
42286
|
},
|
|
42401
42287
|
{
|
|
42402
|
-
"section": "
|
|
42288
|
+
"section": "interrupt.md §Forms",
|
|
42403
42289
|
"requirement": null,
|
|
42404
42290
|
"interpolated": true
|
|
42405
42291
|
},
|
|
42406
42292
|
{
|
|
42407
|
-
"section": "
|
|
42293
|
+
"section": "interrupt.md §Forms",
|
|
42408
42294
|
"requirement": "upstream A2UI accepts an Image component — the refusal is the profile's"
|
|
42409
42295
|
},
|
|
42410
42296
|
{
|
|
42411
|
-
"section": "
|
|
42412
|
-
"requirement": "negative-theme-iconurl MUST fail
|
|
42297
|
+
"section": "interrupt.md §Forms",
|
|
42298
|
+
"requirement": "negative-theme-iconurl MUST fail interrupt-form.schema.json"
|
|
42413
42299
|
},
|
|
42414
42300
|
{
|
|
42415
|
-
"section": "
|
|
42301
|
+
"section": "interrupt.md §Forms",
|
|
42416
42302
|
"requirement": null,
|
|
42417
42303
|
"interpolated": true
|
|
42418
42304
|
},
|
|
42419
42305
|
{
|
|
42420
|
-
"section": "
|
|
42306
|
+
"section": "interrupt.md §Forms",
|
|
42421
42307
|
"requirement": "upstream A2UI accepts theme.iconUrl — the refusal is the profile's"
|
|
42422
42308
|
},
|
|
42423
42309
|
{
|
|
42424
|
-
"section": "
|
|
42310
|
+
"section": "interrupt.md §Forms",
|
|
42425
42311
|
"requirement": null,
|
|
42426
42312
|
"interpolated": true
|
|
42427
42313
|
}
|
|
@@ -42430,21 +42316,21 @@
|
|
|
42430
42316
|
{
|
|
42431
42317
|
"id": "openwop.it.a2ui-v09-profile.a-foreign-catalogid-is-refused-and-only-because-catalogid-is-an-enum",
|
|
42432
42318
|
"file": "a2ui-v09-profile.test.ts",
|
|
42433
|
-
"line":
|
|
42319
|
+
"line": 164,
|
|
42434
42320
|
"title": "a foreign catalogId is refused, and only because catalogId is an enum",
|
|
42435
|
-
"explicitId": "openwop.requirement.
|
|
42321
|
+
"explicitId": "openwop.requirement.0255.interrupt-form-profile",
|
|
42436
42322
|
"citations": [
|
|
42437
42323
|
{
|
|
42438
|
-
"section": "
|
|
42439
|
-
"requirement": "negative-foreign-catalog MUST fail
|
|
42324
|
+
"section": "interrupt.md §Forms",
|
|
42325
|
+
"requirement": "negative-foreign-catalog MUST fail interrupt-form.schema.json — catalogId is the host-pinned set, never a free string"
|
|
42440
42326
|
},
|
|
42441
42327
|
{
|
|
42442
|
-
"section": "
|
|
42328
|
+
"section": "interrupt.md §Forms",
|
|
42443
42329
|
"requirement": null,
|
|
42444
42330
|
"interpolated": true
|
|
42445
42331
|
},
|
|
42446
42332
|
{
|
|
42447
|
-
"section": "
|
|
42333
|
+
"section": "interrupt.md §Forms",
|
|
42448
42334
|
"requirement": "the pinned set is exactly the basic catalog today"
|
|
42449
42335
|
}
|
|
42450
42336
|
]
|
|
@@ -42452,75 +42338,118 @@
|
|
|
42452
42338
|
{
|
|
42453
42339
|
"id": "openwop.it.a2ui-v09-profile.an-extra-component-property-and-a-formatstring-text-value-are-refused-the-second",
|
|
42454
42340
|
"file": "a2ui-v09-profile.test.ts",
|
|
42455
|
-
"line":
|
|
42341
|
+
"line": 176,
|
|
42456
42342
|
"title": "an extra component property and a formatString text value are refused (the second is accepted upstream)",
|
|
42457
42343
|
"explicitId": "openwop.it.a2ui-v09-profile.closed-components-no-function-values",
|
|
42458
42344
|
"citations": [
|
|
42459
42345
|
{
|
|
42460
|
-
"section": "
|
|
42346
|
+
"section": "interrupt.md §Forms",
|
|
42461
42347
|
"requirement": null,
|
|
42462
42348
|
"interpolated": true
|
|
42463
42349
|
},
|
|
42464
42350
|
{
|
|
42465
|
-
"section": "
|
|
42351
|
+
"section": "interrupt.md §Forms",
|
|
42466
42352
|
"requirement": "negative-formatstring-label MUST pass once dynString admits a FunctionCall"
|
|
42467
42353
|
},
|
|
42468
42354
|
{
|
|
42469
|
-
"section": "
|
|
42355
|
+
"section": "interrupt.md §Forms",
|
|
42470
42356
|
"requirement": "upstream A2UI accepts a formatString text value — the refusal is the profile's"
|
|
42471
42357
|
},
|
|
42472
42358
|
{
|
|
42473
|
-
"section": "
|
|
42359
|
+
"section": "interrupt.md §Forms",
|
|
42474
42360
|
"requirement": "upstream A2UI also refuses an extra property (unevaluatedProperties: false)"
|
|
42475
42361
|
}
|
|
42476
42362
|
]
|
|
42477
42363
|
},
|
|
42478
42364
|
{
|
|
42479
|
-
"id": "openwop.it.a2ui-v09-profile.
|
|
42365
|
+
"id": "openwop.it.a2ui-v09-profile.every-positive-surface-is-a-valid-form-every-negative-is-refused-and-the-form-re",
|
|
42480
42366
|
"file": "a2ui-v09-profile.test.ts",
|
|
42481
|
-
"line":
|
|
42482
|
-
"title": "
|
|
42483
|
-
"explicitId": "openwop.
|
|
42367
|
+
"line": 208,
|
|
42368
|
+
"title": "every positive surface is a valid form, every negative is refused, and the form refuses an exchange target",
|
|
42369
|
+
"explicitId": "openwop.requirement.0255.interrupt-form-profile",
|
|
42484
42370
|
"citations": [
|
|
42485
42371
|
{
|
|
42486
|
-
"section": "
|
|
42372
|
+
"section": "interrupt.md §Forms",
|
|
42487
42373
|
"requirement": null,
|
|
42488
42374
|
"interpolated": true
|
|
42489
42375
|
},
|
|
42490
42376
|
{
|
|
42491
|
-
"section": "
|
|
42377
|
+
"section": "interrupt.md §Forms",
|
|
42492
42378
|
"requirement": null,
|
|
42493
42379
|
"interpolated": true
|
|
42494
42380
|
},
|
|
42495
42381
|
{
|
|
42496
|
-
"section": "
|
|
42497
|
-
"requirement": "
|
|
42382
|
+
"section": "interrupt.md §Forms",
|
|
42383
|
+
"requirement": "control: the form admits an exchange action once `exchange` joins the event name enum"
|
|
42384
|
+
},
|
|
42385
|
+
{
|
|
42386
|
+
"section": "interrupt.md §Forms",
|
|
42387
|
+
"requirement": "a form action MUST resolve only its own interrupt — `exchange` is refused"
|
|
42498
42388
|
},
|
|
42499
42389
|
{
|
|
42500
|
-
"section": "
|
|
42501
|
-
"requirement": "
|
|
42390
|
+
"section": "interrupt.md §Forms",
|
|
42391
|
+
"requirement": "negative-textfield-obscured MUST pass the form once \"obscured\" is restored — the variant enum alone refuses it"
|
|
42502
42392
|
},
|
|
42503
42393
|
{
|
|
42504
|
-
"section": "
|
|
42505
|
-
"requirement":
|
|
42394
|
+
"section": "interrupt.md §Forms",
|
|
42395
|
+
"requirement": null,
|
|
42396
|
+
"interpolated": true
|
|
42506
42397
|
}
|
|
42507
42398
|
]
|
|
42508
42399
|
},
|
|
42509
42400
|
{
|
|
42510
|
-
"id": "openwop.it.a2ui-v09-profile.
|
|
42401
|
+
"id": "openwop.it.a2ui-v09-profile.a-form-can-appear-only-on-a-clarification-so-it-can-never-resolve-an-approval",
|
|
42511
42402
|
"file": "a2ui-v09-profile.test.ts",
|
|
42512
|
-
"line":
|
|
42513
|
-
"title": "
|
|
42514
|
-
"explicitId": "openwop.requirement.
|
|
42403
|
+
"line": 233,
|
|
42404
|
+
"title": "a form can appear only on a clarification, so it can never resolve an approval",
|
|
42405
|
+
"explicitId": "openwop.requirement.0255.interrupt-form-never-resolves-approval",
|
|
42515
42406
|
"citations": [
|
|
42516
42407
|
{
|
|
42517
|
-
"section": "
|
|
42408
|
+
"section": "interrupt.md §Forms",
|
|
42409
|
+
"requirement": "ClarificationData MUST be the only interrupt data shape carrying `form`"
|
|
42410
|
+
},
|
|
42411
|
+
{
|
|
42412
|
+
"section": "interrupt.md §Forms",
|
|
42413
|
+
"requirement": "ClarificationData.form MUST be the interrupt-form schema"
|
|
42414
|
+
},
|
|
42415
|
+
{
|
|
42416
|
+
"section": "interrupt.md §Forms",
|
|
42417
|
+
"requirement": "the only form action in either version MUST be `resume`"
|
|
42418
|
+
}
|
|
42419
|
+
]
|
|
42420
|
+
},
|
|
42421
|
+
{
|
|
42422
|
+
"id": "openwop.it.a2ui-v09-profile.the-form-fixtures-bind-their-inputs-to-questions-and-each-probe-is-refused-for-e",
|
|
42423
|
+
"file": "a2ui-v09-profile.test.ts",
|
|
42424
|
+
"line": 244,
|
|
42425
|
+
"title": "the form fixtures bind their inputs to questions, and each probe is refused for exactly one reason",
|
|
42426
|
+
"explicitId": "openwop.requirement.0255.interrupt-form-bound-to-questions",
|
|
42427
|
+
"citations": [
|
|
42428
|
+
{
|
|
42429
|
+
"section": "interrupt.md §Forms",
|
|
42518
42430
|
"requirement": null,
|
|
42519
42431
|
"interpolated": true
|
|
42520
42432
|
},
|
|
42521
42433
|
{
|
|
42522
|
-
"section": "
|
|
42523
|
-
"requirement": "
|
|
42434
|
+
"section": "interrupt.md §Forms",
|
|
42435
|
+
"requirement": "every input id MUST be a questions[].id"
|
|
42436
|
+
},
|
|
42437
|
+
{
|
|
42438
|
+
"section": "interrupt.md §Forms",
|
|
42439
|
+
"requirement": "-refused MUST fail the form schema, and only because of the obscured variant"
|
|
42440
|
+
},
|
|
42441
|
+
{
|
|
42442
|
+
"section": "interrupt.md §Forms",
|
|
42443
|
+
"requirement": "-refused MUST otherwise bind to its questions"
|
|
42444
|
+
},
|
|
42445
|
+
{
|
|
42446
|
+
"section": "interrupt.md §Forms",
|
|
42447
|
+
"requirement": null,
|
|
42448
|
+
"interpolated": true
|
|
42449
|
+
},
|
|
42450
|
+
{
|
|
42451
|
+
"section": "interrupt.md §Forms",
|
|
42452
|
+
"requirement": "-unbound MUST carry an input bound to no question"
|
|
42524
42453
|
}
|
|
42525
42454
|
]
|
|
42526
42455
|
},
|
|
@@ -42755,10 +42684,10 @@
|
|
|
42755
42684
|
]
|
|
42756
42685
|
},
|
|
42757
42686
|
{
|
|
42758
|
-
"id": "openwop.it.bundle-maturity-gate.the-count-is-derived-promoting-one-family-in-the-declaration-drops-
|
|
42687
|
+
"id": "openwop.it.bundle-maturity-gate.the-count-is-derived-promoting-one-family-in-the-declaration-drops-36-to-35",
|
|
42759
42688
|
"file": "bundle-maturity-gate.test.ts",
|
|
42760
42689
|
"line": 102,
|
|
42761
|
-
"title": "the count is DERIVED — promoting one family in the declaration drops
|
|
42690
|
+
"title": "the count is DERIVED — promoting one family in the declaration drops 36 to 35",
|
|
42762
42691
|
"explicitId": "openwop.requirement.0197.bundle-maturity-bound",
|
|
42763
42692
|
"citations": [
|
|
42764
42693
|
{
|
|
@@ -42776,7 +42705,7 @@
|
|
|
42776
42705
|
"id": "openwop.it.bundle-maturity-gate.a-bundle-whose-suite-is-below-the-rfc-s-is-reported-not-failed-even-with-the-sam",
|
|
42777
42706
|
"file": "bundle-maturity-gate.test.ts",
|
|
42778
42707
|
"line": 110,
|
|
42779
|
-
"title": "a bundle whose suite is BELOW the RFC’s is reported, not failed, even with the same
|
|
42708
|
+
"title": "a bundle whose suite is BELOW the RFC’s is reported, not failed, even with the same 36",
|
|
42780
42709
|
"explicitId": "openwop.requirement.0197.bundle-maturity-bound",
|
|
42781
42710
|
"citations": [
|
|
42782
42711
|
{
|
|
@@ -42786,7 +42715,7 @@
|
|
|
42786
42715
|
},
|
|
42787
42716
|
{
|
|
42788
42717
|
"section": "spec/v2/core/capabilities.md §8 (RFC 0197 §C.7)",
|
|
42789
|
-
"requirement": "the same
|
|
42718
|
+
"requirement": "the same 36 are still counted and printed; reported is not the same as unmeasured"
|
|
42790
42719
|
},
|
|
42791
42720
|
{
|
|
42792
42721
|
"section": "spec/v2/core/capabilities.md §8 (RFC 0197 §C.7)",
|
|
@@ -47240,109 +47169,92 @@
|
|
|
47240
47169
|
]
|
|
47241
47170
|
},
|
|
47242
47171
|
{
|
|
47243
|
-
"id": "openwop.it.v2-
|
|
47244
|
-
"file": "v2-
|
|
47245
|
-
"line":
|
|
47246
|
-
"title": "
|
|
47247
|
-
"explicitId": "openwop.requirement.
|
|
47248
|
-
"citations": [
|
|
47249
|
-
{
|
|
47250
|
-
"section": "events.md §AI envelopes: E1–E5",
|
|
47251
|
-
"requirement": "schemas/v2/ai-envelope.schema.json MUST compile"
|
|
47252
|
-
}
|
|
47253
|
-
]
|
|
47254
|
-
},
|
|
47255
|
-
{
|
|
47256
|
-
"id": "openwop.requirement.ai-envelope.schemas-compile",
|
|
47257
|
-
"file": "v2-ai-envelope-shape-static.test.ts",
|
|
47258
|
-
"line": 69,
|
|
47259
|
-
"title": null,
|
|
47260
|
-
"explicitId": "openwop.requirement.ai-envelope.schemas-compile",
|
|
47172
|
+
"id": "openwop.it.v2-alias-covers-reword.the-corpus-gate-script-exits-0",
|
|
47173
|
+
"file": "v2-alias-covers-reword.test.ts",
|
|
47174
|
+
"line": 44,
|
|
47175
|
+
"title": "the corpus gate script exits 0",
|
|
47176
|
+
"explicitId": "openwop.requirement.0168.alias-covers-reword",
|
|
47261
47177
|
"citations": [
|
|
47262
47178
|
{
|
|
47263
|
-
"section": "
|
|
47179
|
+
"section": "RFC 0168 §A.1",
|
|
47264
47180
|
"requirement": null,
|
|
47265
47181
|
"interpolated": true
|
|
47266
47182
|
}
|
|
47267
47183
|
]
|
|
47268
47184
|
},
|
|
47269
47185
|
{
|
|
47270
|
-
"id": "openwop.it.v2-
|
|
47271
|
-
"file": "v2-
|
|
47272
|
-
"line":
|
|
47273
|
-
"title": "
|
|
47274
|
-
"explicitId": "openwop.requirement.
|
|
47186
|
+
"id": "openwop.it.v2-alias-covers-reword.a-published-id-the-sources-no-longer-mint-with-no-alias-or-tombstone-fails-check",
|
|
47187
|
+
"file": "v2-alias-covers-reword.test.ts",
|
|
47188
|
+
"line": 80,
|
|
47189
|
+
"title": "a published id the sources no longer mint, with no alias or tombstone, fails --check and --write refuses without writing",
|
|
47190
|
+
"explicitId": "openwop.requirement.0255.requirement-tombstone",
|
|
47275
47191
|
"citations": [
|
|
47276
47192
|
{
|
|
47277
|
-
"section": "
|
|
47193
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47278
47194
|
"requirement": null,
|
|
47279
47195
|
"interpolated": true
|
|
47280
|
-
}
|
|
47281
|
-
]
|
|
47282
|
-
},
|
|
47283
|
-
{
|
|
47284
|
-
"id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-missing-meta",
|
|
47285
|
-
"file": "v2-ai-envelope-shape-static.test.ts",
|
|
47286
|
-
"line": 85,
|
|
47287
|
-
"title": "rejects an envelope missing meta",
|
|
47288
|
-
"explicitId": "openwop.requirement.ai-envelope.meta-required",
|
|
47289
|
-
"citations": [
|
|
47196
|
+
},
|
|
47290
47197
|
{
|
|
47291
|
-
"section": "
|
|
47292
|
-
"requirement": "
|
|
47293
|
-
}
|
|
47294
|
-
]
|
|
47295
|
-
},
|
|
47296
|
-
{
|
|
47297
|
-
"id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-with-an-unknown-top-level-property",
|
|
47298
|
-
"file": "v2-ai-envelope-shape-static.test.ts",
|
|
47299
|
-
"line": 90,
|
|
47300
|
-
"title": "rejects an envelope with an unknown top-level property",
|
|
47301
|
-
"explicitId": "openwop.requirement.ai-envelope.top-level-closed",
|
|
47302
|
-
"citations": [
|
|
47198
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47199
|
+
"requirement": "the failure must name the id"
|
|
47200
|
+
},
|
|
47303
47201
|
{
|
|
47304
|
-
"section": "
|
|
47305
|
-
"requirement": "the
|
|
47306
|
-
}
|
|
47307
|
-
|
|
47308
|
-
|
|
47309
|
-
|
|
47310
|
-
|
|
47311
|
-
|
|
47312
|
-
|
|
47313
|
-
|
|
47314
|
-
|
|
47315
|
-
|
|
47202
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47203
|
+
"requirement": "the failure must name the remedy"
|
|
47204
|
+
},
|
|
47205
|
+
{
|
|
47206
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47207
|
+
"requirement": null,
|
|
47208
|
+
"interpolated": true
|
|
47209
|
+
},
|
|
47210
|
+
{
|
|
47211
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47212
|
+
"requirement": "the refusal must say nothing was written"
|
|
47213
|
+
},
|
|
47316
47214
|
{
|
|
47317
|
-
"section": "
|
|
47318
|
-
"requirement": "
|
|
47215
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47216
|
+
"requirement": "conformance/requirements.json must be byte-identical after a refused --write"
|
|
47319
47217
|
}
|
|
47320
47218
|
]
|
|
47321
47219
|
},
|
|
47322
47220
|
{
|
|
47323
|
-
"id": "openwop.it.v2-
|
|
47324
|
-
"file": "v2-
|
|
47325
|
-
"line":
|
|
47326
|
-
"title": "
|
|
47327
|
-
"explicitId": "openwop.requirement.
|
|
47221
|
+
"id": "openwop.it.v2-alias-covers-reword.positive-control-a-tombstone-naming-a-steward-deletion-row-retires-the-id",
|
|
47222
|
+
"file": "v2-alias-covers-reword.test.ts",
|
|
47223
|
+
"line": 93,
|
|
47224
|
+
"title": "POSITIVE CONTROL — a tombstone naming a steward-deletion row retires the id",
|
|
47225
|
+
"explicitId": "openwop.requirement.0255.requirement-tombstone",
|
|
47328
47226
|
"citations": [
|
|
47329
47227
|
{
|
|
47330
|
-
"section": "
|
|
47331
|
-
"requirement":
|
|
47228
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47229
|
+
"requirement": null,
|
|
47230
|
+
"interpolated": true
|
|
47332
47231
|
}
|
|
47333
47232
|
]
|
|
47334
47233
|
},
|
|
47335
47234
|
{
|
|
47336
|
-
"id": "openwop.it.v2-alias-covers-reword.
|
|
47235
|
+
"id": "openwop.it.v2-alias-covers-reword.a-tombstone-naming-a-non-steward-row-or-a-live-id-is-refused",
|
|
47337
47236
|
"file": "v2-alias-covers-reword.test.ts",
|
|
47338
|
-
"line":
|
|
47339
|
-
"title": "
|
|
47340
|
-
"explicitId": "openwop.requirement.
|
|
47237
|
+
"line": 99,
|
|
47238
|
+
"title": "a tombstone naming a non-steward row, or a live id, is REFUSED",
|
|
47239
|
+
"explicitId": "openwop.requirement.0255.requirement-tombstone",
|
|
47341
47240
|
"citations": [
|
|
47342
47241
|
{
|
|
47343
|
-
"section": "RFC
|
|
47242
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47344
47243
|
"requirement": null,
|
|
47345
47244
|
"interpolated": true
|
|
47245
|
+
},
|
|
47246
|
+
{
|
|
47247
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47248
|
+
"requirement": "the refusal must say the row is not a steward deletion"
|
|
47249
|
+
},
|
|
47250
|
+
{
|
|
47251
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47252
|
+
"requirement": null,
|
|
47253
|
+
"interpolated": true
|
|
47254
|
+
},
|
|
47255
|
+
{
|
|
47256
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
47257
|
+
"requirement": "the refusal must name the live id"
|
|
47346
47258
|
}
|
|
47347
47259
|
]
|
|
47348
47260
|
},
|
|
@@ -47798,151 +47710,6 @@
|
|
|
47798
47710
|
}
|
|
47799
47711
|
]
|
|
47800
47712
|
},
|
|
47801
|
-
{
|
|
47802
|
-
"id": "openwop.it.v2-envelope-catalog.each-of-the-three-carries-its-seat",
|
|
47803
|
-
"file": "v2-envelope-catalog.test.ts",
|
|
47804
|
-
"line": 64,
|
|
47805
|
-
"title": "each of the three carries its seat",
|
|
47806
|
-
"explicitId": "openwop.requirement.0193.seats-present",
|
|
47807
|
-
"citations": [
|
|
47808
|
-
{
|
|
47809
|
-
"section": "RFC 0193 §B",
|
|
47810
|
-
"requirement": null,
|
|
47811
|
-
"interpolated": true
|
|
47812
|
-
}
|
|
47813
|
-
]
|
|
47814
|
-
},
|
|
47815
|
-
{
|
|
47816
|
-
"id": "openwop.it.v2-envelope-catalog.no-seat-is-required-a-published-record-without-one-stays-valid",
|
|
47817
|
-
"file": "v2-envelope-catalog.test.ts",
|
|
47818
|
-
"line": 73,
|
|
47819
|
-
"title": "no seat is required — a published record without one stays valid",
|
|
47820
|
-
"explicitId": "openwop.requirement.0193.seats-optional",
|
|
47821
|
-
"citations": [
|
|
47822
|
-
{
|
|
47823
|
-
"section": "RFC 0193 §B",
|
|
47824
|
-
"requirement": null,
|
|
47825
|
-
"interpolated": true
|
|
47826
|
-
}
|
|
47827
|
-
]
|
|
47828
|
-
},
|
|
47829
|
-
{
|
|
47830
|
-
"id": "openwop.it.v2-envelope-catalog.the-generator-refuses-a-family-whose-payload-it-cannot-carry",
|
|
47831
|
-
"file": "v2-envelope-catalog.test.ts",
|
|
47832
|
-
"line": 82,
|
|
47833
|
-
"title": "the generator refuses a family whose payload it cannot carry",
|
|
47834
|
-
"explicitId": "openwop.requirement.0193.generator-refuses",
|
|
47835
|
-
"citations": [
|
|
47836
|
-
{
|
|
47837
|
-
"section": "RFC 0193 §A/§B",
|
|
47838
|
-
"requirement": null,
|
|
47839
|
-
"interpolated": true
|
|
47840
|
-
}
|
|
47841
|
-
]
|
|
47842
|
-
},
|
|
47843
|
-
{
|
|
47844
|
-
"id": "openwop.it.v2-envelope-catalog.an-absent-catalog-is-stated-to-fail-closed",
|
|
47845
|
-
"file": "v2-envelope-catalog.test.ts",
|
|
47846
|
-
"line": 95,
|
|
47847
|
-
"title": "an absent catalog is stated to fail CLOSED",
|
|
47848
|
-
"explicitId": "openwop.requirement.0193.absence-is-closed",
|
|
47849
|
-
"citations": [
|
|
47850
|
-
{
|
|
47851
|
-
"section": "RFC 0193 §C",
|
|
47852
|
-
"requirement": null,
|
|
47853
|
-
"interpolated": true
|
|
47854
|
-
}
|
|
47855
|
-
]
|
|
47856
|
-
},
|
|
47857
|
-
{
|
|
47858
|
-
"id": "openwop.it.v2-envelope-catalog.both-refusal-codes-are-registered-at-major-2",
|
|
47859
|
-
"file": "v2-envelope-catalog.test.ts",
|
|
47860
|
-
"line": 106,
|
|
47861
|
-
"title": "both refusal codes are registered at major 2",
|
|
47862
|
-
"explicitId": "openwop.requirement.0193.codes-registered",
|
|
47863
|
-
"citations": [
|
|
47864
|
-
{
|
|
47865
|
-
"section": "RFC 0193 §F",
|
|
47866
|
-
"requirement": null,
|
|
47867
|
-
"interpolated": true
|
|
47868
|
-
}
|
|
47869
|
-
]
|
|
47870
|
-
},
|
|
47871
|
-
{
|
|
47872
|
-
"id": "openwop.it.v2-envelope-catalog.versioning-axis-6-no-longer-contradicts-the-record",
|
|
47873
|
-
"file": "v2-envelope-catalog.test.ts",
|
|
47874
|
-
"line": 116,
|
|
47875
|
-
"title": "versioning axis 6 no longer contradicts the record",
|
|
47876
|
-
"explicitId": "openwop.requirement.0193.axis-6-agrees",
|
|
47877
|
-
"citations": [
|
|
47878
|
-
{
|
|
47879
|
-
"section": "RFC 0193 §D",
|
|
47880
|
-
"requirement": null,
|
|
47881
|
-
"interpolated": true
|
|
47882
|
-
}
|
|
47883
|
-
]
|
|
47884
|
-
},
|
|
47885
|
-
{
|
|
47886
|
-
"id": "openwop.requirement.envelopes.tier-one-load-bearing-universal-kinds",
|
|
47887
|
-
"file": "v2-envelope-tier-one-universal-static.test.ts",
|
|
47888
|
-
"line": 30,
|
|
47889
|
-
"title": null,
|
|
47890
|
-
"explicitId": "openwop.requirement.envelopes.tier-one-load-bearing-universal-kinds",
|
|
47891
|
-
"citations": [
|
|
47892
|
-
{
|
|
47893
|
-
"section": "RFC 0030 §B",
|
|
47894
|
-
"requirement": null,
|
|
47895
|
-
"interpolated": true
|
|
47896
|
-
},
|
|
47897
|
-
{
|
|
47898
|
-
"section": "RFC 0030 §B",
|
|
47899
|
-
"requirement": null,
|
|
47900
|
-
"interpolated": true
|
|
47901
|
-
}
|
|
47902
|
-
]
|
|
47903
|
-
},
|
|
47904
|
-
{
|
|
47905
|
-
"id": "openwop.it.v2-envelope-variant-discriminator-static.schemas-v2-envelopes-carries-a-payload-schema-for-each-universal-kind",
|
|
47906
|
-
"file": "v2-envelope-variant-discriminator-static.test.ts",
|
|
47907
|
-
"line": 47,
|
|
47908
|
-
"title": "schemas/v2/envelopes carries a payload schema for each universal kind",
|
|
47909
|
-
"explicitId": "openwop.requirement.envelopes.payload-schemas-present",
|
|
47910
|
-
"citations": [
|
|
47911
|
-
{
|
|
47912
|
-
"section": "RFC 0031 §A",
|
|
47913
|
-
"requirement": null,
|
|
47914
|
-
"interpolated": true
|
|
47915
|
-
}
|
|
47916
|
-
]
|
|
47917
|
-
},
|
|
47918
|
-
{
|
|
47919
|
-
"id": "openwop.requirement.envelopes.variant-no-oneof",
|
|
47920
|
-
"file": "v2-envelope-variant-discriminator-static.test.ts",
|
|
47921
|
-
"line": 53,
|
|
47922
|
-
"title": null,
|
|
47923
|
-
"explicitId": "openwop.requirement.envelopes.variant-no-oneof",
|
|
47924
|
-
"citations": [
|
|
47925
|
-
{
|
|
47926
|
-
"section": "RFC 0031 §A",
|
|
47927
|
-
"requirement": null,
|
|
47928
|
-
"interpolated": true
|
|
47929
|
-
}
|
|
47930
|
-
]
|
|
47931
|
-
},
|
|
47932
|
-
{
|
|
47933
|
-
"id": "openwop.requirement.envelopes.variant-anyof-discriminated",
|
|
47934
|
-
"file": "v2-envelope-variant-discriminator-static.test.ts",
|
|
47935
|
-
"line": 59,
|
|
47936
|
-
"title": null,
|
|
47937
|
-
"explicitId": "openwop.requirement.envelopes.variant-anyof-discriminated",
|
|
47938
|
-
"citations": [
|
|
47939
|
-
{
|
|
47940
|
-
"section": "RFC 0031 §A",
|
|
47941
|
-
"requirement": null,
|
|
47942
|
-
"interpolated": true
|
|
47943
|
-
}
|
|
47944
|
-
]
|
|
47945
|
-
},
|
|
47946
47713
|
{
|
|
47947
47714
|
"id": "openwop.it.v2-eos-clock.the-clock-file-is-current-with-the-matrix-and-the-public-history",
|
|
47948
47715
|
"file": "v2-eos-clock.test.ts",
|
|
@@ -48462,74 +48229,6 @@
|
|
|
48462
48229
|
}
|
|
48463
48230
|
]
|
|
48464
48231
|
},
|
|
48465
|
-
{
|
|
48466
|
-
"id": "openwop.requirement.media.payload-schemas-compile",
|
|
48467
|
-
"file": "v2-media-inline-cap-static.test.ts",
|
|
48468
|
-
"line": 42,
|
|
48469
|
-
"title": null,
|
|
48470
|
-
"explicitId": "openwop.requirement.media.payload-schemas-compile",
|
|
48471
|
-
"citations": [
|
|
48472
|
-
{
|
|
48473
|
-
"section": "host-services.md §aiProviders",
|
|
48474
|
-
"requirement": null,
|
|
48475
|
-
"interpolated": true
|
|
48476
|
-
}
|
|
48477
|
-
]
|
|
48478
|
-
},
|
|
48479
|
-
{
|
|
48480
|
-
"id": "openwop.it.v2-media-inline-cap-static.accepts-a-url-reference-image-payload",
|
|
48481
|
-
"file": "v2-media-inline-cap-static.test.ts",
|
|
48482
|
-
"line": 48,
|
|
48483
|
-
"title": "accepts a URL-reference image payload",
|
|
48484
|
-
"explicitId": "openwop.requirement.media.url-reference-accepted",
|
|
48485
|
-
"citations": [
|
|
48486
|
-
{
|
|
48487
|
-
"section": "host-services.md §aiProviders",
|
|
48488
|
-
"requirement": null,
|
|
48489
|
-
"interpolated": true
|
|
48490
|
-
}
|
|
48491
|
-
]
|
|
48492
|
-
},
|
|
48493
|
-
{
|
|
48494
|
-
"id": "openwop.it.v2-media-inline-cap-static.accepts-an-inline-base64-audio-payload",
|
|
48495
|
-
"file": "v2-media-inline-cap-static.test.ts",
|
|
48496
|
-
"line": 54,
|
|
48497
|
-
"title": "accepts an inline-base64 audio payload",
|
|
48498
|
-
"explicitId": "openwop.requirement.media.inline-base64-accepted",
|
|
48499
|
-
"citations": [
|
|
48500
|
-
{
|
|
48501
|
-
"section": "host-services.md §aiProviders",
|
|
48502
|
-
"requirement": null,
|
|
48503
|
-
"interpolated": true
|
|
48504
|
-
}
|
|
48505
|
-
]
|
|
48506
|
-
},
|
|
48507
|
-
{
|
|
48508
|
-
"id": "openwop.it.v2-media-inline-cap-static.rejects-a-media-payload-missing-bytes",
|
|
48509
|
-
"file": "v2-media-inline-cap-static.test.ts",
|
|
48510
|
-
"line": 60,
|
|
48511
|
-
"title": "rejects a media payload missing bytes",
|
|
48512
|
-
"explicitId": "openwop.requirement.media.bytes-required",
|
|
48513
|
-
"citations": [
|
|
48514
|
-
{
|
|
48515
|
-
"section": "host-services.md §aiProviders",
|
|
48516
|
-
"requirement": "bytes is required on a media payload — it is what the inline cap is judged against"
|
|
48517
|
-
}
|
|
48518
|
-
]
|
|
48519
|
-
},
|
|
48520
|
-
{
|
|
48521
|
-
"id": "openwop.it.v2-media-inline-cap-static.rejects-a-media-payload-with-an-unknown-property",
|
|
48522
|
-
"file": "v2-media-inline-cap-static.test.ts",
|
|
48523
|
-
"line": 65,
|
|
48524
|
-
"title": "rejects a media payload with an unknown property",
|
|
48525
|
-
"explicitId": "openwop.requirement.media.payload-closed",
|
|
48526
|
-
"citations": [
|
|
48527
|
-
{
|
|
48528
|
-
"section": "host-services.md §aiProviders",
|
|
48529
|
-
"requirement": "a media payload is closed: an unknown property MUST be rejected"
|
|
48530
|
-
}
|
|
48531
|
-
]
|
|
48532
|
-
},
|
|
48533
48232
|
{
|
|
48534
48233
|
"id": "openwop.it.v2-normative-home-gate.a-refused-home-class-is-refused-by-name",
|
|
48535
48234
|
"file": "v2-normative-home-gate.test.ts",
|
|
@@ -48959,7 +48658,7 @@
|
|
|
48959
48658
|
{
|
|
48960
48659
|
"id": "openwop.it.v2-retirement-gate.the-committed-corpus-passes-and-the-gate-prints-its-inputs-rather-than-a-silent",
|
|
48961
48660
|
"file": "v2-retirement-gate.test.ts",
|
|
48962
|
-
"line":
|
|
48661
|
+
"line": 157,
|
|
48963
48662
|
"title": "the committed corpus passes, and the gate prints its inputs rather than a silent zero",
|
|
48964
48663
|
"explicitId": "openwop.requirement.0197.retirement-predicate",
|
|
48965
48664
|
"citations": [
|
|
@@ -48977,7 +48676,7 @@
|
|
|
48977
48676
|
{
|
|
48978
48677
|
"id": "openwop.it.v2-retirement-gate.the-base-fixture-a-full-honest-retirement-is-reported-retirable-and-the-gate-exi",
|
|
48979
48678
|
"file": "v2-retirement-gate.test.ts",
|
|
48980
|
-
"line":
|
|
48679
|
+
"line": 165,
|
|
48981
48680
|
"title": "the base fixture — a full, honest retirement — is reported `retirable` and the gate exits 0",
|
|
48982
48681
|
"explicitId": "openwop.requirement.0197.retirement-predicate",
|
|
48983
48682
|
"citations": [
|
|
@@ -49000,7 +48699,7 @@
|
|
|
49000
48699
|
{
|
|
49001
48700
|
"id": "openwop.requirement.0197.retirement-predicate",
|
|
49002
48701
|
"file": "v2-retirement-gate.test.ts",
|
|
49003
|
-
"line":
|
|
48702
|
+
"line": 174,
|
|
49004
48703
|
"title": null,
|
|
49005
48704
|
"explicitId": "openwop.requirement.0197.retirement-predicate",
|
|
49006
48705
|
"citations": [
|
|
@@ -49024,7 +48723,7 @@
|
|
|
49024
48723
|
{
|
|
49025
48724
|
"id": "openwop.it.v2-retirement-gate.a-4-a-corrections-row-whose-prior-shape-a-committed-bundle-carried-is-refused",
|
|
49026
48725
|
"file": "v2-retirement-gate.test.ts",
|
|
49027
|
-
"line":
|
|
48726
|
+
"line": 183,
|
|
49028
48727
|
"title": "§A.4 — a corrections row whose prior shape a committed bundle carried is REFUSED",
|
|
49029
48728
|
"explicitId": "openwop.requirement.0197.correction-unevidenced",
|
|
49030
48729
|
"citations": [
|
|
@@ -49042,7 +48741,7 @@
|
|
|
49042
48741
|
{
|
|
49043
48742
|
"id": "openwop.it.v2-retirement-gate.a-4-a-corrections-row-with-a-null-manifest-census-is-refused-and-a-drifted-compa",
|
|
49044
48743
|
"file": "v2-retirement-gate.test.ts",
|
|
49045
|
-
"line":
|
|
48744
|
+
"line": 196,
|
|
49046
48745
|
"title": "§A.4 — a corrections row with a NULL manifest census is REFUSED, and a drifted COMPATIBILITY entry too",
|
|
49047
48746
|
"explicitId": "openwop.requirement.0197.correction-unevidenced",
|
|
49048
48747
|
"citations": [
|
|
@@ -49066,6 +48765,125 @@
|
|
|
49066
48765
|
}
|
|
49067
48766
|
]
|
|
49068
48767
|
},
|
|
48768
|
+
{
|
|
48769
|
+
"id": "openwop.it.v2-retirement-gate.positive-control-a-new-steward-deletion-row-whose-census-matches-the-scan-is-adm",
|
|
48770
|
+
"file": "v2-retirement-gate.test.ts",
|
|
48771
|
+
"line": 235,
|
|
48772
|
+
"title": "POSITIVE CONTROL — a new steward-deletion row whose census matches the scan is admitted",
|
|
48773
|
+
"explicitId": "openwop.requirement.0255.steward-deletion-licence",
|
|
48774
|
+
"citations": [
|
|
48775
|
+
{
|
|
48776
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48777
|
+
"requirement": null,
|
|
48778
|
+
"interpolated": true
|
|
48779
|
+
},
|
|
48780
|
+
{
|
|
48781
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48782
|
+
"requirement": "the report must show the typed and the scanned census side by side"
|
|
48783
|
+
}
|
|
48784
|
+
]
|
|
48785
|
+
},
|
|
48786
|
+
{
|
|
48787
|
+
"id": "openwop.it.v2-retirement-gate.a-typed-census-of-0-is-re-measured-and-refused-when-a-bundle-carries-the-removed",
|
|
48788
|
+
"file": "v2-retirement-gate.test.ts",
|
|
48789
|
+
"line": 242,
|
|
48790
|
+
"title": "a typed census of 0 is re-measured and REFUSED when a bundle carries the removed surface, for either class",
|
|
48791
|
+
"explicitId": "openwop.requirement.0255.steward-deletion-licence",
|
|
48792
|
+
"citations": [
|
|
48793
|
+
{
|
|
48794
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48795
|
+
"requirement": null,
|
|
48796
|
+
"interpolated": true
|
|
48797
|
+
},
|
|
48798
|
+
{
|
|
48799
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48800
|
+
"requirement": null,
|
|
48801
|
+
"interpolated": true
|
|
48802
|
+
}
|
|
48803
|
+
]
|
|
48804
|
+
},
|
|
48805
|
+
{
|
|
48806
|
+
"id": "openwop.it.v2-retirement-gate.a-new-row-is-refused-while-a-tier-3-host-is-listed-a-published-row-is-not-re-jud",
|
|
48807
|
+
"file": "v2-retirement-gate.test.ts",
|
|
48808
|
+
"line": 251,
|
|
48809
|
+
"title": "a new row is REFUSED while a tier-3 host is listed; a published row is NOT re-judged",
|
|
48810
|
+
"explicitId": "openwop.requirement.0255.steward-deletion-licence",
|
|
48811
|
+
"citations": [
|
|
48812
|
+
{
|
|
48813
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48814
|
+
"requirement": null,
|
|
48815
|
+
"interpolated": true
|
|
48816
|
+
},
|
|
48817
|
+
{
|
|
48818
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48819
|
+
"requirement": "the refusal must name the tier-3 host"
|
|
48820
|
+
},
|
|
48821
|
+
{
|
|
48822
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48823
|
+
"requirement": null,
|
|
48824
|
+
"interpolated": true
|
|
48825
|
+
}
|
|
48826
|
+
]
|
|
48827
|
+
},
|
|
48828
|
+
{
|
|
48829
|
+
"id": "openwop.it.v2-retirement-gate.a-new-row-is-refused-while-the-interop-matrix-names-an-independent-host",
|
|
48830
|
+
"file": "v2-retirement-gate.test.ts",
|
|
48831
|
+
"line": 261,
|
|
48832
|
+
"title": "a new row is REFUSED while the INTEROP-MATRIX names an independent host",
|
|
48833
|
+
"explicitId": "openwop.requirement.0255.steward-deletion-licence",
|
|
48834
|
+
"citations": [
|
|
48835
|
+
{
|
|
48836
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48837
|
+
"requirement": null,
|
|
48838
|
+
"interpolated": true
|
|
48839
|
+
},
|
|
48840
|
+
{
|
|
48841
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48842
|
+
"requirement": "the refusal must quote the matrix cell"
|
|
48843
|
+
}
|
|
48844
|
+
]
|
|
48845
|
+
},
|
|
48846
|
+
{
|
|
48847
|
+
"id": "openwop.it.v2-retirement-gate.a-new-row-is-refused-while-a-committed-bundle-comes-from-an-origin-nobody-lists",
|
|
48848
|
+
"file": "v2-retirement-gate.test.ts",
|
|
48849
|
+
"line": 268,
|
|
48850
|
+
"title": "a new row is REFUSED while a committed bundle comes from an origin nobody lists",
|
|
48851
|
+
"explicitId": "openwop.requirement.0255.steward-deletion-licence",
|
|
48852
|
+
"citations": [
|
|
48853
|
+
{
|
|
48854
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48855
|
+
"requirement": null,
|
|
48856
|
+
"interpolated": true
|
|
48857
|
+
},
|
|
48858
|
+
{
|
|
48859
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48860
|
+
"requirement": "the refusal must name the bundle and its origin"
|
|
48861
|
+
}
|
|
48862
|
+
]
|
|
48863
|
+
},
|
|
48864
|
+
{
|
|
48865
|
+
"id": "openwop.it.v2-retirement-gate.a-row-removing-a-reader-for-persisted-data-is-refused-and-so-is-one-naming-no-rf",
|
|
48866
|
+
"file": "v2-retirement-gate.test.ts",
|
|
48867
|
+
"line": 275,
|
|
48868
|
+
"title": "a row removing a reader for persisted data is REFUSED, and so is one naming no RFC",
|
|
48869
|
+
"explicitId": "openwop.requirement.0255.steward-deletion-licence",
|
|
48870
|
+
"citations": [
|
|
48871
|
+
{
|
|
48872
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48873
|
+
"requirement": null,
|
|
48874
|
+
"interpolated": true
|
|
48875
|
+
},
|
|
48876
|
+
{
|
|
48877
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48878
|
+
"requirement": "the refusal must name the reader"
|
|
48879
|
+
},
|
|
48880
|
+
{
|
|
48881
|
+
"section": "COMPATIBILITY.md §3a (RFC 0255 §D)",
|
|
48882
|
+
"requirement": null,
|
|
48883
|
+
"interpolated": true
|
|
48884
|
+
}
|
|
48885
|
+
]
|
|
48886
|
+
},
|
|
49069
48887
|
{
|
|
49070
48888
|
"id": "openwop.it.v2-seams-not-in-canonical.the-corpus-gate-script-exits-0",
|
|
49071
48889
|
"file": "v2-seams-not-in-canonical.test.ts",
|
|
@@ -49478,6 +49296,47 @@
|
|
|
49478
49296
|
}
|
|
49479
49297
|
]
|
|
49480
49298
|
},
|
|
49299
|
+
{
|
|
49300
|
+
"id": "openwop.it.v2-surface-monotone-gate.a-property-deleted-with-its-baseline-regenerated-in-the-same-change-is-refused-a",
|
|
49301
|
+
"file": "v2-surface-monotone-gate.test.ts",
|
|
49302
|
+
"line": 313,
|
|
49303
|
+
"title": "a property deleted with its baseline regenerated in the same change is REFUSED against the published baseline",
|
|
49304
|
+
"explicitId": "openwop.requirement.0255.baseline-regeneration-refused",
|
|
49305
|
+
"citations": [
|
|
49306
|
+
{
|
|
49307
|
+
"section": "spec/v2/core/overview.md §0a (RFC 0255 §D)",
|
|
49308
|
+
"requirement": null,
|
|
49309
|
+
"interpolated": true
|
|
49310
|
+
},
|
|
49311
|
+
{
|
|
49312
|
+
"section": "spec/v2/core/overview.md §0a (RFC 0255 §D)",
|
|
49313
|
+
"requirement": null,
|
|
49314
|
+
"interpolated": true
|
|
49315
|
+
},
|
|
49316
|
+
{
|
|
49317
|
+
"section": "spec/v2/core/overview.md §0a (RFC 0255 §D)",
|
|
49318
|
+
"requirement": "the refusal must name the removed property"
|
|
49319
|
+
}
|
|
49320
|
+
]
|
|
49321
|
+
},
|
|
49322
|
+
{
|
|
49323
|
+
"id": "openwop.it.v2-surface-monotone-gate.positive-control-the-same-removal-named-by-a-steward-deletion-row-is-licensed",
|
|
49324
|
+
"file": "v2-surface-monotone-gate.test.ts",
|
|
49325
|
+
"line": 322,
|
|
49326
|
+
"title": "POSITIVE CONTROL — the same removal named by a steward-deletion row is licensed",
|
|
49327
|
+
"explicitId": "openwop.requirement.0255.baseline-regeneration-refused",
|
|
49328
|
+
"citations": [
|
|
49329
|
+
{
|
|
49330
|
+
"section": "spec/v2/core/overview.md §0a (RFC 0255 §D)",
|
|
49331
|
+
"requirement": null,
|
|
49332
|
+
"interpolated": true
|
|
49333
|
+
},
|
|
49334
|
+
{
|
|
49335
|
+
"section": "spec/v2/core/overview.md §0a (RFC 0255 §D)",
|
|
49336
|
+
"requirement": "the gate must say what licensed it"
|
|
49337
|
+
}
|
|
49338
|
+
]
|
|
49339
|
+
},
|
|
49481
49340
|
{
|
|
49482
49341
|
"id": "openwop.it.v2-threat-model-template.the-corpus-gate-script-exits-0",
|
|
49483
49342
|
"file": "v2-threat-model-template.test.ts",
|