@openwop/openwop-conformance 2.45.17 → 2.45.18

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/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": 725,
6
- "tests": 2747,
7
- "withStableId": 2747,
5
+ "files": 726,
6
+ "tests": 2754,
7
+ "withStableId": 2754,
8
8
  "interpolatedTitles": 0,
9
- "explicitIds": 2613
9
+ "explicitIds": 2620
10
10
  },
11
11
  "records": [
12
12
  {
@@ -18728,7 +18728,7 @@
18728
18728
  "explicitId": "openwop.it.otel-emission-grpc.host-emits-openwop-run-spans-over-otlp-grpc-collector-captures-them-via-the-shar",
18729
18729
  "citations": [
18730
18730
  {
18731
- "section": "observability.md §\"Export protocols\" + RFC 0008/0009 Track 11",
18731
+ "section": "observability.md §\"Export protocols\" (gap-closure plan Track 11)",
18732
18732
  "requirement": "host advertising exportProtocols ∋ \"grpc\" MUST emit openwop.* spans over OTLP/gRPC"
18733
18733
  },
18734
18734
  {
@@ -28294,99 +28294,6 @@
28294
28294
  }
28295
28295
  ]
28296
28296
  },
28297
- {
28298
- "id": "openwop.it.v2-ai-envelope-shape-static.ai-envelope-schema-json-compiles-under-ajv-2020",
28299
- "file": "v2-ai-envelope-shape-static.test.ts",
28300
- "line": 58,
28301
- "title": "ai-envelope.schema.json compiles under Ajv 2020",
28302
- "explicitId": "openwop.requirement.ai-envelope.schemas-compile",
28303
- "citations": [
28304
- {
28305
- "section": "events.md §AI envelopes: E1–E5",
28306
- "requirement": "schemas/v2/ai-envelope.schema.json MUST compile"
28307
- }
28308
- ]
28309
- },
28310
- {
28311
- "id": "openwop.requirement.ai-envelope.schemas-compile",
28312
- "file": "v2-ai-envelope-shape-static.test.ts",
28313
- "line": 63,
28314
- "title": null,
28315
- "explicitId": "openwop.requirement.ai-envelope.schemas-compile",
28316
- "citations": [
28317
- {
28318
- "section": "events.md §AI envelopes: E1–E5",
28319
- "requirement": null,
28320
- "interpolated": true
28321
- }
28322
- ]
28323
- },
28324
- {
28325
- "id": "openwop.it.v2-ai-envelope-shape-static.accepts-a-well-formed-envelope-carrying-correlationid-and-meta-source",
28326
- "file": "v2-ai-envelope-shape-static.test.ts",
28327
- "line": 72,
28328
- "title": "accepts a well-formed envelope carrying correlationId and meta.source",
28329
- "explicitId": "openwop.requirement.ai-envelope.well-formed-accepted",
28330
- "citations": [
28331
- {
28332
- "section": "events.md §AI envelopes: E1–E5",
28333
- "requirement": null,
28334
- "interpolated": true
28335
- }
28336
- ]
28337
- },
28338
- {
28339
- "id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-missing-meta",
28340
- "file": "v2-ai-envelope-shape-static.test.ts",
28341
- "line": 77,
28342
- "title": "rejects an envelope missing meta",
28343
- "explicitId": "openwop.requirement.ai-envelope.meta-required",
28344
- "citations": [
28345
- {
28346
- "section": "events.md §AI envelopes: E1–E5",
28347
- "requirement": "an envelope without meta MUST be rejected"
28348
- }
28349
- ]
28350
- },
28351
- {
28352
- "id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-with-an-unknown-top-level-property",
28353
- "file": "v2-ai-envelope-shape-static.test.ts",
28354
- "line": 81,
28355
- "title": "rejects an envelope with an unknown top-level property",
28356
- "explicitId": "openwop.requirement.ai-envelope.top-level-closed",
28357
- "citations": [
28358
- {
28359
- "section": "schemas/v2/ai-envelope.schema.json",
28360
- "requirement": "the envelope is closed: an unknown top-level property MUST be rejected"
28361
- }
28362
- ]
28363
- },
28364
- {
28365
- "id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-missing-correlationid",
28366
- "file": "v2-ai-envelope-shape-static.test.ts",
28367
- "line": 85,
28368
- "title": "rejects an envelope missing correlationId",
28369
- "explicitId": "openwop.requirement.ai-envelope.correlation-id-required",
28370
- "citations": [
28371
- {
28372
- "section": "events.md §AI envelopes: E1–E5",
28373
- "requirement": "correlationId is REQUIRED on every envelope at v2 — an envelope without it MUST be rejected, never synthesized"
28374
- }
28375
- ]
28376
- },
28377
- {
28378
- "id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-whose-meta-carries-no-source",
28379
- "file": "v2-ai-envelope-shape-static.test.ts",
28380
- "line": 89,
28381
- "title": "rejects an envelope whose meta carries no source",
28382
- "explicitId": "openwop.requirement.ai-envelope.meta-source-required",
28383
- "citations": [
28384
- {
28385
- "section": "events.md §AI envelopes: E1–E5",
28386
- "requirement": "meta.source is REQUIRED on every envelope at v2 — an envelope without it MUST be rejected"
28387
- }
28388
- ]
28389
- },
28390
28297
  {
28391
28298
  "id": "openwop.it.v2-ai-providers-advertisement.the-aiproviders-record-validates-against-its-capabilities-schema-seat",
28392
28299
  "file": "v2-ai-providers-advertisement.test.ts",
@@ -28776,109 +28683,6 @@
28776
28683
  }
28777
28684
  ]
28778
28685
  },
28779
- {
28780
- "id": "openwop.it.v2-artifact-created-static.artifact-created-is-a-registered-v2-run-event-type",
28781
- "file": "v2-artifact-created-static.test.ts",
28782
- "line": 51,
28783
- "title": "artifact.created is a registered v2 run-event type",
28784
- "explicitId": "openwop.requirement.artifact-types.created-event-type-registered",
28785
- "citations": [
28786
- {
28787
- "section": "artifact-type-packs.md §Registration",
28788
- "requirement": null,
28789
- "interpolated": true
28790
- }
28791
- ]
28792
- },
28793
- {
28794
- "id": "openwop.it.v2-artifact-created-static.accepts-a-well-formed-payload-with-either-provenance-or-none",
28795
- "file": "v2-artifact-created-static.test.ts",
28796
- "line": 56,
28797
- "title": "accepts a well-formed payload, with either provenance or none",
28798
- "explicitId": "openwop.requirement.artifact-types.created-registration-source-enum",
28799
- "citations": [
28800
- {
28801
- "section": "artifact-type-packs.md §Registration",
28802
- "requirement": null,
28803
- "interpolated": true
28804
- }
28805
- ]
28806
- },
28807
- {
28808
- "id": "openwop.it.v2-artifact-created-static.rejects-a-payload-without-s",
28809
- "file": "v2-artifact-created-static.test.ts",
28810
- "line": 64,
28811
- "title": "rejects a payload without %s",
28812
- "explicitId": "openwop.requirement.artifact-types.created-requires-artifact-type",
28813
- "citations": [
28814
- {
28815
- "section": "artifact-type-packs.md §Registration",
28816
- "requirement": null,
28817
- "interpolated": true
28818
- }
28819
- ]
28820
- },
28821
- {
28822
- "id": "openwop.it.v2-artifact-created-static.rejects-a-registrationsource-outside-pack-host",
28823
- "file": "v2-artifact-created-static.test.ts",
28824
- "line": 70,
28825
- "title": "rejects a registrationSource outside pack | host",
28826
- "explicitId": "openwop.requirement.artifact-types.created-registration-source-enum",
28827
- "citations": [
28828
- {
28829
- "section": "artifact-type-packs.md §Registration",
28830
- "requirement": "registrationSource MUST be pack or host"
28831
- }
28832
- ]
28833
- },
28834
- {
28835
- "id": "openwop.it.v2-artifact-created-static.the-discovery-per-type-registrationsource-carries-the-same-vocabulary-as-the-eve",
28836
- "file": "v2-artifact-created-static.test.ts",
28837
- "line": 74,
28838
- "title": "the discovery per-type registrationSource carries the same vocabulary as the event",
28839
- "explicitId": "openwop.requirement.artifact-types.created-registration-source-enum",
28840
- "citations": [
28841
- {
28842
- "section": "artifact-type-packs.md §Registration",
28843
- "requirement": "artifact.created.registrationSource MUST be the pack | host enum"
28844
- },
28845
- {
28846
- "section": "capabilities.schema.json §artifactTypes.types",
28847
- "requirement": "the advertised per-type registrationSource MUST use the vocabulary artifact.created carries"
28848
- }
28849
- ]
28850
- },
28851
- {
28852
- "id": "openwop.it.v2-artifact-created-static.rejects-a-non-boolean-registered",
28853
- "file": "v2-artifact-created-static.test.ts",
28854
- "line": 83,
28855
- "title": "rejects a non-boolean registered",
28856
- "explicitId": "openwop.requirement.artifact-types.created-registered-boolean",
28857
- "citations": [
28858
- {
28859
- "section": "artifact-type-packs.md §Registration",
28860
- "requirement": "registered MUST be a boolean"
28861
- }
28862
- ]
28863
- },
28864
- {
28865
- "id": "openwop.it.v2-artifact-created-static.rejects-an-unknown-key-and-carries-a-vendor-key-under-the-rfc-0185-hatch",
28866
- "file": "v2-artifact-created-static.test.ts",
28867
- "line": 87,
28868
- "title": "rejects an unknown key, and carries a vendor key under the RFC 0185 hatch",
28869
- "explicitId": "openwop.requirement.artifact-types.created-payload-closed",
28870
- "citations": [
28871
- {
28872
- "section": "artifact-type-packs.md §Registration",
28873
- "requirement": "an unknown key on artifact.created MUST be rejected"
28874
- },
28875
- {
28876
- "section": "run-event-payloads.schema.json §artifactCreated (RFC 0185)",
28877
- "requirement": null,
28878
- "interpolated": true
28879
- }
28880
- ]
28881
- },
28882
28686
  {
28883
28687
  "id": "openwop.it.v2-artifact-type-schema-url.every-host-registered-type-with-an-advertised-schemaversion-has-its-schema-serve",
28884
28688
  "file": "v2-artifact-type-schema-url.test.ts",
@@ -30345,7 +30149,7 @@
30345
30149
  {
30346
30150
  "id": "openwop.it.v2-discovery-etag.the-discovery-document-carries-an-etag",
30347
30151
  "file": "v2-discovery-etag.test.ts",
30348
- "line": 58,
30152
+ "line": 74,
30349
30153
  "title": "the discovery document carries an ETag",
30350
30154
  "explicitId": "openwop.requirement.capabilities.discovery-etag-emitted",
30351
30155
  "citations": [
@@ -30359,7 +30163,7 @@
30359
30163
  {
30360
30164
  "id": "openwop.it.v2-discovery-etag.a-matching-if-none-match-receives-304-with-no-body-and-the-version-header-a-non",
30361
30165
  "file": "v2-discovery-etag.test.ts",
30362
- "line": 65,
30166
+ "line": 81,
30363
30167
  "title": "a matching If-None-Match receives 304 with no body and the version header; a non-matching one receives 200",
30364
30168
  "explicitId": "openwop.requirement.capabilities.discovery-etag-revalidates",
30365
30169
  "citations": [
@@ -30385,6 +30189,45 @@
30385
30189
  }
30386
30190
  ]
30387
30191
  },
30192
+ {
30193
+ "id": "openwop.it.v2-discovery-etag.if-none-match-is-evaluated-as-rfc-9110-defines-it-a-weak-tag-a-list-holding-the",
30194
+ "file": "v2-discovery-etag.test.ts",
30195
+ "line": 105,
30196
+ "title": "If-None-Match is evaluated as RFC 9110 defines it: a weak tag, a list holding the tag and `*` match; other tags do not",
30197
+ "explicitId": "openwop.requirement.0235.if-none-match.rfc9110-match",
30198
+ "citations": [
30199
+ {
30200
+ "section": "spec/v2/core/runs.md §Caching and encoding",
30201
+ "requirement": "If-None-Match is `*` or a list of entity tags compared weakly (RFC 9110 §13.1.2)"
30202
+ }
30203
+ ]
30204
+ },
30205
+ {
30206
+ "id": "openwop.it.v2-discovery-etag.a-304-carries-the-etag-and-the-vary-of-the-200",
30207
+ "file": "v2-discovery-etag.test.ts",
30208
+ "line": 111,
30209
+ "title": "a 304 carries the ETag and the Vary of the 200",
30210
+ "explicitId": "openwop.requirement.0235.if-none-match.304-carries-etag",
30211
+ "citations": [
30212
+ {
30213
+ "section": "spec/v2/core/runs.md §Caching and encoding",
30214
+ "requirement": "on a match the host MUST answer 304 carrying the ETag and the Vary the 200 would carry"
30215
+ }
30216
+ ]
30217
+ },
30218
+ {
30219
+ "id": "openwop.it.v2-discovery-etag.a-request-cache-control-no-cache-does-not-suppress-the-evaluation",
30220
+ "file": "v2-discovery-etag.test.ts",
30221
+ "line": 117,
30222
+ "title": "a request Cache-Control: no-cache does not suppress the evaluation",
30223
+ "explicitId": "openwop.requirement.0235.if-none-match.no-cache-ignored",
30224
+ "citations": [
30225
+ {
30226
+ "section": "spec/v2/core/runs.md §Caching and encoding",
30227
+ "requirement": "a request Cache-Control: no-cache MUST NOT suppress the evaluation"
30228
+ }
30229
+ ]
30230
+ },
30388
30231
  {
30389
30232
  "id": "openwop.it.v2-dispatch-input-mapping.inputmapping-projects-the-parent-variable-into-the-dispatched-child-inputs",
30390
30233
  "file": "v2-dispatch-input-mapping.test.ts",
@@ -30902,29 +30745,10 @@
30902
30745
  }
30903
30746
  ]
30904
30747
  },
30905
- {
30906
- "id": "openwop.requirement.envelopes.tier-one-load-bearing-universal-kinds",
30907
- "file": "v2-envelope-tier-one-subset-static.test.ts",
30908
- "line": 46,
30909
- "title": null,
30910
- "explicitId": "openwop.requirement.envelopes.tier-one-load-bearing-universal-kinds",
30911
- "citations": [
30912
- {
30913
- "section": "RFC 0030 §B",
30914
- "requirement": null,
30915
- "interpolated": true
30916
- },
30917
- {
30918
- "section": "RFC 0030 §B",
30919
- "requirement": null,
30920
- "interpolated": true
30921
- }
30922
- ]
30923
- },
30924
30748
  {
30925
30749
  "id": "openwop.it.v2-envelope-tier-one-subset-static.a-host-advertising-tieronesubsetcompliance-strict-has-advertised-kinds-whose-cor",
30926
30750
  "file": "v2-envelope-tier-one-subset-static.test.ts",
30927
- "line": 56,
30751
+ "line": 43,
30928
30752
  "title": "a host advertising tierOneSubsetCompliance strict has advertised kinds whose corpus schemas satisfy the Tier-1 intersection",
30929
30753
  "explicitId": "openwop.requirement.envelopes.tier-one-strict-advertised-kinds",
30930
30754
  "citations": [
@@ -30935,48 +30759,6 @@
30935
30759
  }
30936
30760
  ]
30937
30761
  },
30938
- {
30939
- "id": "openwop.it.v2-envelope-variant-discriminator-static.schemas-v2-envelopes-carries-a-payload-schema-for-each-universal-kind",
30940
- "file": "v2-envelope-variant-discriminator-static.test.ts",
30941
- "line": 42,
30942
- "title": "schemas/v2/envelopes carries a payload schema for each universal kind",
30943
- "explicitId": "openwop.requirement.envelopes.payload-schemas-present",
30944
- "citations": [
30945
- {
30946
- "section": "RFC 0031 §A",
30947
- "requirement": null,
30948
- "interpolated": true
30949
- }
30950
- ]
30951
- },
30952
- {
30953
- "id": "openwop.requirement.envelopes.variant-no-oneof",
30954
- "file": "v2-envelope-variant-discriminator-static.test.ts",
30955
- "line": 47,
30956
- "title": null,
30957
- "explicitId": "openwop.requirement.envelopes.variant-no-oneof",
30958
- "citations": [
30959
- {
30960
- "section": "RFC 0031 §A",
30961
- "requirement": null,
30962
- "interpolated": true
30963
- }
30964
- ]
30965
- },
30966
- {
30967
- "id": "openwop.requirement.envelopes.variant-anyof-discriminated",
30968
- "file": "v2-envelope-variant-discriminator-static.test.ts",
30969
- "line": 52,
30970
- "title": null,
30971
- "explicitId": "openwop.requirement.envelopes.variant-anyof-discriminated",
30972
- "citations": [
30973
- {
30974
- "section": "RFC 0031 §A",
30975
- "requirement": null,
30976
- "interpolated": true
30977
- }
30978
- ]
30979
- },
30980
30762
  {
30981
30763
  "id": "openwop.it.v2-envelopes-advertisement.the-envelopes-record-validates-against-its-capabilities-schema-seat",
30982
30764
  "file": "v2-envelopes-advertisement.test.ts",
@@ -31290,144 +31072,6 @@
31290
31072
  }
31291
31073
  ]
31292
31074
  },
31293
- {
31294
- "id": "openwop.it.v2-export-bundle-static.accepts-a-conforming-bundle-at-bundleversion-2",
31295
- "file": "v2-export-bundle-static.test.ts",
31296
- "line": 53,
31297
- "title": "accepts a conforming bundle at bundleVersion \"2\"",
31298
- "explicitId": "openwop.requirement.portability.bundle-version-2",
31299
- "citations": [
31300
- {
31301
- "section": "portability.md §The export bundle",
31302
- "requirement": null,
31303
- "interpolated": true
31304
- }
31305
- ]
31306
- },
31307
- {
31308
- "id": "openwop.it.v2-export-bundle-static.rejects-the-v1-bundleversion-1-and-a-missing-bundleversion",
31309
- "file": "v2-export-bundle-static.test.ts",
31310
- "line": 58,
31311
- "title": "rejects the v1 bundleVersion \"1\" and a missing bundleVersion",
31312
- "explicitId": "openwop.requirement.portability.bundle-version-2",
31313
- "citations": [
31314
- {
31315
- "section": "portability.md §The export bundle",
31316
- "requirement": "a v2 bundle MUST carry bundleVersion \"2\"; \"1\" MUST be rejected"
31317
- },
31318
- {
31319
- "section": "portability.md §The export bundle",
31320
- "requirement": "a bundle without bundleVersion MUST be rejected"
31321
- }
31322
- ]
31323
- },
31324
- {
31325
- "id": "openwop.it.v2-export-bundle-static.rejects-an-unknown-item-kind-and-an-item-without-ref",
31326
- "file": "v2-export-bundle-static.test.ts",
31327
- "line": 64,
31328
- "title": "rejects an unknown item kind and an item without ref",
31329
- "explicitId": "openwop.requirement.portability.bundle-item-shape",
31330
- "citations": [
31331
- {
31332
- "section": "portability.md §The export bundle",
31333
- "requirement": "an unknown item kind MUST be rejected"
31334
- },
31335
- {
31336
- "section": "portability.md §The export bundle",
31337
- "requirement": "an item without a ref MUST be rejected"
31338
- }
31339
- ]
31340
- },
31341
- {
31342
- "id": "openwop.it.v2-export-bundle-static.admits-no-s-field-at-the-bundle-root-or-under-source",
31343
- "file": "v2-export-bundle-static.test.ts",
31344
- "line": 69,
31345
- "title": "admits no %s field at the bundle root or under source",
31346
- "explicitId": "openwop.requirement.portability.bundle-no-credential-field",
31347
- "citations": [
31348
- {
31349
- "section": "portability.md §The export bundle",
31350
- "requirement": null,
31351
- "interpolated": true
31352
- },
31353
- {
31354
- "section": "portability.md §The export bundle",
31355
- "requirement": null,
31356
- "interpolated": true
31357
- }
31358
- ]
31359
- },
31360
- {
31361
- "id": "openwop.it.v2-export-bundle-static.import-applied-is-a-registered-v2-run-event-type",
31362
- "file": "v2-export-bundle-static.test.ts",
31363
- "line": 79,
31364
- "title": "import.applied is a registered v2 run-event type",
31365
- "explicitId": "openwop.requirement.portability.import-applied-content-free",
31366
- "citations": [
31367
- {
31368
- "section": null,
31369
- "requirement": null,
31370
- "interpolated": true
31371
- }
31372
- ]
31373
- },
31374
- {
31375
- "id": "openwop.it.v2-export-bundle-static.a-counts-and-refs-payload-validates-one-carrying-item-payloads-does-not",
31376
- "file": "v2-export-bundle-static.test.ts",
31377
- "line": 84,
31378
- "title": "a counts-and-refs payload validates; one carrying item payloads does not",
31379
- "explicitId": "openwop.requirement.portability.import-applied-content-free",
31380
- "citations": [
31381
- {
31382
- "section": null,
31383
- "requirement": null,
31384
- "interpolated": true
31385
- },
31386
- {
31387
- "section": null,
31388
- "requirement": "import.applied MUST NOT carry item payloads",
31389
- "interpolated": true
31390
- },
31391
- {
31392
- "section": null,
31393
- "requirement": "import.applied counts MUST be the four outcome tallies only",
31394
- "interpolated": true
31395
- }
31396
- ]
31397
- },
31398
- {
31399
- "id": "openwop.it.v2-export-bundle-static.import-true-with-dryrun-true-validates-import-false-needs-no-dryrun",
31400
- "file": "v2-export-bundle-static.test.ts",
31401
- "line": 97,
31402
- "title": "import: true with dryRun: true validates; import: false needs no dryRun",
31403
- "explicitId": "openwop.requirement.portability.import-dry-run-schema-rule",
31404
- "citations": [
31405
- {
31406
- "section": null,
31407
- "requirement": null,
31408
- "interpolated": true
31409
- }
31410
- ]
31411
- },
31412
- {
31413
- "id": "openwop.it.v2-export-bundle-static.import-true-without-dryrun-or-with-dryrun-false-is-rejected",
31414
- "file": "v2-export-bundle-static.test.ts",
31415
- "line": 104,
31416
- "title": "import: true without dryRun, or with dryRun: false, is rejected",
31417
- "explicitId": "openwop.requirement.portability.import-dry-run-schema-rule",
31418
- "citations": [
31419
- {
31420
- "section": null,
31421
- "requirement": "import: true without dryRun MUST be rejected",
31422
- "interpolated": true
31423
- },
31424
- {
31425
- "section": null,
31426
- "requirement": "import: true with dryRun: false MUST be rejected",
31427
- "interpolated": true
31428
- }
31429
- ]
31430
- },
31431
31075
  {
31432
31076
  "id": "openwop.it.v2-ext-family-claims.brand",
31433
31077
  "file": "v2-ext-family-claims.test.ts",
@@ -33679,74 +33323,6 @@
33679
33323
  }
33680
33324
  ]
33681
33325
  },
33682
- {
33683
- "id": "openwop.requirement.media.payload-schemas-compile",
33684
- "file": "v2-media-inline-cap-static.test.ts",
33685
- "line": 37,
33686
- "title": null,
33687
- "explicitId": "openwop.requirement.media.payload-schemas-compile",
33688
- "citations": [
33689
- {
33690
- "section": "host-services.md §aiProviders",
33691
- "requirement": null,
33692
- "interpolated": true
33693
- }
33694
- ]
33695
- },
33696
- {
33697
- "id": "openwop.it.v2-media-inline-cap-static.accepts-a-url-reference-image-payload",
33698
- "file": "v2-media-inline-cap-static.test.ts",
33699
- "line": 42,
33700
- "title": "accepts a URL-reference image payload",
33701
- "explicitId": "openwop.requirement.media.url-reference-accepted",
33702
- "citations": [
33703
- {
33704
- "section": "host-services.md §aiProviders",
33705
- "requirement": null,
33706
- "interpolated": true
33707
- }
33708
- ]
33709
- },
33710
- {
33711
- "id": "openwop.it.v2-media-inline-cap-static.accepts-an-inline-base64-audio-payload",
33712
- "file": "v2-media-inline-cap-static.test.ts",
33713
- "line": 47,
33714
- "title": "accepts an inline-base64 audio payload",
33715
- "explicitId": "openwop.requirement.media.inline-base64-accepted",
33716
- "citations": [
33717
- {
33718
- "section": "host-services.md §aiProviders",
33719
- "requirement": null,
33720
- "interpolated": true
33721
- }
33722
- ]
33723
- },
33724
- {
33725
- "id": "openwop.it.v2-media-inline-cap-static.rejects-a-media-payload-missing-bytes",
33726
- "file": "v2-media-inline-cap-static.test.ts",
33727
- "line": 52,
33728
- "title": "rejects a media payload missing bytes",
33729
- "explicitId": "openwop.requirement.media.bytes-required",
33730
- "citations": [
33731
- {
33732
- "section": "host-services.md §aiProviders",
33733
- "requirement": "bytes is required on a media payload — it is what the inline cap is judged against"
33734
- }
33735
- ]
33736
- },
33737
- {
33738
- "id": "openwop.it.v2-media-inline-cap-static.rejects-a-media-payload-with-an-unknown-property",
33739
- "file": "v2-media-inline-cap-static.test.ts",
33740
- "line": 56,
33741
- "title": "rejects a media payload with an unknown property",
33742
- "explicitId": "openwop.requirement.media.payload-closed",
33743
- "citations": [
33744
- {
33745
- "section": "host-services.md §aiProviders",
33746
- "requirement": "a media payload is closed: an unknown property MUST be rejected"
33747
- }
33748
- ]
33749
- },
33750
33326
  {
33751
33327
  "id": "openwop.it.v2-memory-cross-tenant-isolation.a-second-tenant-listing-the-same-memoryref-sees-none-of-the-first-tenant-s-entri",
33752
33328
  "file": "v2-memory-cross-tenant-isolation.test.ts",
@@ -35781,90 +35357,6 @@
35781
35357
  }
35782
35358
  ]
35783
35359
  },
35784
- {
35785
- "id": "openwop.it.v2-provider-usage-payload-static.provider-usage-is-a-registered-v2-run-event-type",
35786
- "file": "v2-provider-usage-payload-static.test.ts",
35787
- "line": 52,
35788
- "title": "provider.usage is a registered v2 run-event type",
35789
- "explicitId": "openwop.requirement.provider-usage.event-type-registered",
35790
- "citations": [
35791
- {
35792
- "section": "events.md §providerUsage",
35793
- "requirement": null,
35794
- "interpolated": true
35795
- }
35796
- ]
35797
- },
35798
- {
35799
- "id": "openwop.it.v2-provider-usage-payload-static.accepts-a-minimal-and-a-full-payload",
35800
- "file": "v2-provider-usage-payload-static.test.ts",
35801
- "line": 57,
35802
- "title": "accepts a minimal and a full payload",
35803
- "explicitId": "openwop.requirement.provider-usage.payload-well-formed-accepted",
35804
- "citations": [
35805
- {
35806
- "section": "events.md §providerUsage",
35807
- "requirement": null,
35808
- "interpolated": true
35809
- }
35810
- ]
35811
- },
35812
- {
35813
- "id": "openwop.it.v2-provider-usage-payload-static.rejects-a-payload-without-s",
35814
- "file": "v2-provider-usage-payload-static.test.ts",
35815
- "line": 64,
35816
- "title": "rejects a payload without %s",
35817
- "explicitId": "openwop.requirement.provider-usage.payload-required-fields",
35818
- "citations": [
35819
- {
35820
- "section": "events.md §providerUsage",
35821
- "requirement": null,
35822
- "interpolated": true
35823
- }
35824
- ]
35825
- },
35826
- {
35827
- "id": "openwop.it.v2-provider-usage-payload-static.rejects-s",
35828
- "file": "v2-provider-usage-payload-static.test.ts",
35829
- "line": 68,
35830
- "title": "rejects %s",
35831
- "explicitId": "openwop.requirement.provider-usage.payload-token-counts",
35832
- "citations": [
35833
- {
35834
- "section": "events.md §providerUsage",
35835
- "requirement": null,
35836
- "interpolated": true
35837
- }
35838
- ]
35839
- },
35840
- {
35841
- "id": "openwop.it.v2-provider-usage-payload-static.rejects-s~2",
35842
- "file": "v2-provider-usage-payload-static.test.ts",
35843
- "line": 76,
35844
- "title": "rejects %s",
35845
- "explicitId": "openwop.requirement.provider-usage.payload-cost-and-currency",
35846
- "citations": [
35847
- {
35848
- "section": "events.md §providerUsage",
35849
- "requirement": null,
35850
- "interpolated": true
35851
- }
35852
- ]
35853
- },
35854
- {
35855
- "id": "openwop.it.v2-provider-usage-payload-static.rejects-a-payload-carrying-s",
35856
- "file": "v2-provider-usage-payload-static.test.ts",
35857
- "line": 84,
35858
- "title": "rejects a payload carrying %s",
35859
- "explicitId": "openwop.requirement.provider-usage.payload-no-credential-or-content",
35860
- "citations": [
35861
- {
35862
- "section": "events.md §providerUsage",
35863
- "requirement": null,
35864
- "interpolated": true
35865
- }
35866
- ]
35867
- },
35868
35360
  {
35869
35361
  "id": "openwop.it.v2-purpose-propagation-advertisement.the-purposepropagation-record-validates-against-its-capabilities-schema-seat",
35870
35362
  "file": "v2-purpose-propagation-advertisement.test.ts",
@@ -36723,7 +36215,7 @@
36723
36215
  {
36724
36216
  "id": "openwop.it.v2-run-snapshot-etag.a-matching-if-none-match-receives-304-with-no-body-and-the-version-header-a-non",
36725
36217
  "file": "v2-run-snapshot-etag.test.ts",
36726
- "line": 46,
36218
+ "line": 63,
36727
36219
  "title": "a matching If-None-Match receives 304 with no body and the version header; a non-matching one receives 200",
36728
36220
  "explicitId": "openwop.requirement.0170.run-snapshot-etag",
36729
36221
  "citations": [
@@ -36753,6 +36245,58 @@
36753
36245
  }
36754
36246
  ]
36755
36247
  },
36248
+ {
36249
+ "id": "openwop.it.v2-run-snapshot-etag.if-none-match-is-evaluated-as-rfc-9110-defines-it-a-weak-tag-a-list-holding-the",
36250
+ "file": "v2-run-snapshot-etag.test.ts",
36251
+ "line": 137,
36252
+ "title": "If-None-Match is evaluated as RFC 9110 defines it: a weak tag, a list holding the tag and `*` match; other tags do not",
36253
+ "explicitId": "openwop.requirement.0235.if-none-match.rfc9110-match",
36254
+ "citations": [
36255
+ {
36256
+ "section": "spec/v2/core/runs.md §Caching and encoding",
36257
+ "requirement": "If-None-Match is `*` or a list of entity tags compared weakly (RFC 9110 §13.1.2)"
36258
+ }
36259
+ ]
36260
+ },
36261
+ {
36262
+ "id": "openwop.it.v2-run-snapshot-etag.a-304-carries-the-etag-and-the-vary-of-the-200",
36263
+ "file": "v2-run-snapshot-etag.test.ts",
36264
+ "line": 144,
36265
+ "title": "a 304 carries the ETag and the Vary of the 200",
36266
+ "explicitId": "openwop.requirement.0235.if-none-match.304-carries-etag",
36267
+ "citations": [
36268
+ {
36269
+ "section": "spec/v2/core/runs.md §Caching and encoding",
36270
+ "requirement": "on a match the host MUST answer 304 carrying the ETag and the Vary the 200 would carry"
36271
+ }
36272
+ ]
36273
+ },
36274
+ {
36275
+ "id": "openwop.it.v2-run-snapshot-etag.a-request-cache-control-no-cache-does-not-suppress-the-evaluation",
36276
+ "file": "v2-run-snapshot-etag.test.ts",
36277
+ "line": 151,
36278
+ "title": "a request Cache-Control: no-cache does not suppress the evaluation",
36279
+ "explicitId": "openwop.requirement.0235.if-none-match.no-cache-ignored",
36280
+ "citations": [
36281
+ {
36282
+ "section": "spec/v2/core/runs.md §Caching and encoding",
36283
+ "requirement": "a request Cache-Control: no-cache MUST NOT suppress the evaluation"
36284
+ }
36285
+ ]
36286
+ },
36287
+ {
36288
+ "id": "openwop.it.v2-run-snapshot-etag.a-conditional-request-on-a-run-that-does-not-exist-gets-the-unconditional-status",
36289
+ "file": "v2-run-snapshot-etag.test.ts",
36290
+ "line": 158,
36291
+ "title": "a conditional request on a run that does not exist gets the unconditional status, never 304",
36292
+ "explicitId": "openwop.requirement.0235.if-none-match.only-on-2xx",
36293
+ "citations": [
36294
+ {
36295
+ "section": "spec/v2/core/runs.md §Caching and encoding",
36296
+ "requirement": "If-None-Match is evaluated only when the unconditional response would be 2xx; a run the caller cannot read stays 404"
36297
+ }
36298
+ ]
36299
+ },
36756
36300
  {
36757
36301
  "id": "openwop.it.v2-safefetch-ssrf-refused.a-loopback-target-is-refused-egress-denied-ssrf-blocked-before-any-connection",
36758
36302
  "file": "v2-safefetch-ssrf-refused.test.ts",
@@ -37013,116 +36557,6 @@
37013
36557
  }
37014
36558
  ]
37015
36559
  },
37016
- {
37017
- "id": "openwop.requirement.self-hosted-runner.frame-schemas-compile",
37018
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37019
- "line": 56,
37020
- "title": null,
37021
- "explicitId": "openwop.requirement.self-hosted-runner.frame-schemas-compile",
37022
- "citations": [
37023
- {
37024
- "section": "execution.md §selfHostedRunner",
37025
- "requirement": null,
37026
- "interpolated": true
37027
- }
37028
- ]
37029
- },
37030
- {
37031
- "id": "openwop.it.v2-self-hosted-runner-frames-static.accepts-a-model-frame-and-a-tool-frame",
37032
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37033
- "line": 65,
37034
- "title": "accepts a model frame and a tool frame",
37035
- "explicitId": "openwop.requirement.self-hosted-runner.dispatch-frame-shape",
37036
- "citations": [
37037
- {
37038
- "section": "execution.md §selfHostedRunner",
37039
- "requirement": null,
37040
- "interpolated": true
37041
- }
37042
- ]
37043
- },
37044
- {
37045
- "id": "openwop.it.v2-self-hosted-runner-frames-static.rejects-s",
37046
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37047
- "line": 72,
37048
- "title": "rejects %s",
37049
- "explicitId": "openwop.requirement.self-hosted-runner.dispatch-frame-shape",
37050
- "citations": [
37051
- {
37052
- "section": "execution.md §selfHostedRunner",
37053
- "requirement": null,
37054
- "interpolated": true
37055
- }
37056
- ]
37057
- },
37058
- {
37059
- "id": "openwop.it.v2-self-hosted-runner-frames-static.accepts-a-result-frame",
37060
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37061
- "line": 89,
37062
- "title": "accepts a result frame",
37063
- "explicitId": "openwop.requirement.self-hosted-runner.result-frame-shape",
37064
- "citations": [
37065
- {
37066
- "section": "execution.md §selfHostedRunner",
37067
- "requirement": null,
37068
- "interpolated": true
37069
- }
37070
- ]
37071
- },
37072
- {
37073
- "id": "openwop.it.v2-self-hosted-runner-frames-static.rejects-a-result-frame-without-output",
37074
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37075
- "line": 94,
37076
- "title": "rejects a result frame without output",
37077
- "explicitId": "openwop.requirement.self-hosted-runner.result-frame-shape",
37078
- "citations": [
37079
- {
37080
- "section": "execution.md §selfHostedRunner",
37081
- "requirement": "a result frame without output MUST be rejected"
37082
- }
37083
- ]
37084
- },
37085
- {
37086
- "id": "openwop.it.v2-self-hosted-runner-frames-static.a-s-with-an-extra-credential-named-field-is-rejected",
37087
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37088
- "line": 100,
37089
- "title": "a %s with an extra credential-named field is rejected",
37090
- "explicitId": "openwop.requirement.self-hosted-runner.frames-closed",
37091
- "citations": [
37092
- {
37093
- "section": "execution.md §selfHostedRunner",
37094
- "requirement": null,
37095
- "interpolated": true
37096
- }
37097
- ]
37098
- },
37099
- {
37100
- "id": "openwop.it.v2-self-hosted-runner-frames-static.accepts-a-registration",
37101
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37102
- "line": 113,
37103
- "title": "accepts a registration",
37104
- "explicitId": "openwop.requirement.self-hosted-runner.registration-shape",
37105
- "citations": [
37106
- {
37107
- "section": "execution.md §selfHostedRunner",
37108
- "requirement": null,
37109
- "interpolated": true
37110
- }
37111
- ]
37112
- },
37113
- {
37114
- "id": "openwop.it.v2-self-hosted-runner-frames-static.rejects-a-registration-without-subject",
37115
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37116
- "line": 118,
37117
- "title": "rejects a registration without subject",
37118
- "explicitId": "openwop.requirement.self-hosted-runner.registration-shape",
37119
- "citations": [
37120
- {
37121
- "section": "execution.md §selfHostedRunner",
37122
- "requirement": "a registration without its owning subject MUST be rejected"
37123
- }
37124
- ]
37125
- },
37126
36560
  {
37127
36561
  "id": "openwop.it.v2-sse-last-event-id-cursor.a-last-event-id-past-the-log-is-an-exclusive-cursor-a-terminal-run-answers-200-w",
37128
36562
  "file": "v2-sse-last-event-id-cursor.test.ts",
@@ -46354,6 +45788,99 @@
46354
45788
  }
46355
45789
  ]
46356
45790
  },
45791
+ {
45792
+ "id": "openwop.it.v2-ai-envelope-shape-static.ai-envelope-schema-json-compiles-under-ajv-2020",
45793
+ "file": "v2-ai-envelope-shape-static.test.ts",
45794
+ "line": 63,
45795
+ "title": "ai-envelope.schema.json compiles under Ajv 2020",
45796
+ "explicitId": "openwop.requirement.ai-envelope.schemas-compile",
45797
+ "citations": [
45798
+ {
45799
+ "section": "events.md §AI envelopes: E1–E5",
45800
+ "requirement": "schemas/v2/ai-envelope.schema.json MUST compile"
45801
+ }
45802
+ ]
45803
+ },
45804
+ {
45805
+ "id": "openwop.requirement.ai-envelope.schemas-compile",
45806
+ "file": "v2-ai-envelope-shape-static.test.ts",
45807
+ "line": 69,
45808
+ "title": null,
45809
+ "explicitId": "openwop.requirement.ai-envelope.schemas-compile",
45810
+ "citations": [
45811
+ {
45812
+ "section": "events.md §AI envelopes: E1–E5",
45813
+ "requirement": null,
45814
+ "interpolated": true
45815
+ }
45816
+ ]
45817
+ },
45818
+ {
45819
+ "id": "openwop.it.v2-ai-envelope-shape-static.accepts-a-well-formed-envelope-carrying-correlationid-and-meta-source",
45820
+ "file": "v2-ai-envelope-shape-static.test.ts",
45821
+ "line": 79,
45822
+ "title": "accepts a well-formed envelope carrying correlationId and meta.source",
45823
+ "explicitId": "openwop.requirement.ai-envelope.well-formed-accepted",
45824
+ "citations": [
45825
+ {
45826
+ "section": "events.md §AI envelopes: E1–E5",
45827
+ "requirement": null,
45828
+ "interpolated": true
45829
+ }
45830
+ ]
45831
+ },
45832
+ {
45833
+ "id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-missing-meta",
45834
+ "file": "v2-ai-envelope-shape-static.test.ts",
45835
+ "line": 85,
45836
+ "title": "rejects an envelope missing meta",
45837
+ "explicitId": "openwop.requirement.ai-envelope.meta-required",
45838
+ "citations": [
45839
+ {
45840
+ "section": "events.md §AI envelopes: E1–E5",
45841
+ "requirement": "an envelope without meta MUST be rejected"
45842
+ }
45843
+ ]
45844
+ },
45845
+ {
45846
+ "id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-with-an-unknown-top-level-property",
45847
+ "file": "v2-ai-envelope-shape-static.test.ts",
45848
+ "line": 90,
45849
+ "title": "rejects an envelope with an unknown top-level property",
45850
+ "explicitId": "openwop.requirement.ai-envelope.top-level-closed",
45851
+ "citations": [
45852
+ {
45853
+ "section": "schemas/v2/ai-envelope.schema.json",
45854
+ "requirement": "the envelope is closed: an unknown top-level property MUST be rejected"
45855
+ }
45856
+ ]
45857
+ },
45858
+ {
45859
+ "id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-missing-correlationid",
45860
+ "file": "v2-ai-envelope-shape-static.test.ts",
45861
+ "line": 95,
45862
+ "title": "rejects an envelope missing correlationId",
45863
+ "explicitId": "openwop.requirement.ai-envelope.correlation-id-required",
45864
+ "citations": [
45865
+ {
45866
+ "section": "events.md §AI envelopes: E1–E5",
45867
+ "requirement": "correlationId is REQUIRED on every envelope at v2 — an envelope without it MUST be rejected, never synthesized"
45868
+ }
45869
+ ]
45870
+ },
45871
+ {
45872
+ "id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-whose-meta-carries-no-source",
45873
+ "file": "v2-ai-envelope-shape-static.test.ts",
45874
+ "line": 100,
45875
+ "title": "rejects an envelope whose meta carries no source",
45876
+ "explicitId": "openwop.requirement.ai-envelope.meta-source-required",
45877
+ "citations": [
45878
+ {
45879
+ "section": "events.md §AI envelopes: E1–E5",
45880
+ "requirement": "meta.source is REQUIRED on every envelope at v2 — an envelope without it MUST be rejected"
45881
+ }
45882
+ ]
45883
+ },
46357
45884
  {
46358
45885
  "id": "openwop.it.v2-alias-covers-reword.the-corpus-gate-script-exits-0",
46359
45886
  "file": "v2-alias-covers-reword.test.ts",
@@ -46368,6 +45895,109 @@
46368
45895
  }
46369
45896
  ]
46370
45897
  },
45898
+ {
45899
+ "id": "openwop.it.v2-artifact-created-static.artifact-created-is-a-registered-v2-run-event-type",
45900
+ "file": "v2-artifact-created-static.test.ts",
45901
+ "line": 55,
45902
+ "title": "artifact.created is a registered v2 run-event type",
45903
+ "explicitId": "openwop.requirement.artifact-types.created-event-type-registered",
45904
+ "citations": [
45905
+ {
45906
+ "section": "artifact-type-packs.md §Registration",
45907
+ "requirement": null,
45908
+ "interpolated": true
45909
+ }
45910
+ ]
45911
+ },
45912
+ {
45913
+ "id": "openwop.it.v2-artifact-created-static.accepts-a-well-formed-payload-with-either-provenance-or-none",
45914
+ "file": "v2-artifact-created-static.test.ts",
45915
+ "line": 61,
45916
+ "title": "accepts a well-formed payload, with either provenance or none",
45917
+ "explicitId": "openwop.requirement.artifact-types.created-registration-source-enum",
45918
+ "citations": [
45919
+ {
45920
+ "section": "artifact-type-packs.md §Registration",
45921
+ "requirement": null,
45922
+ "interpolated": true
45923
+ }
45924
+ ]
45925
+ },
45926
+ {
45927
+ "id": "openwop.it.v2-artifact-created-static.rejects-a-payload-without-s",
45928
+ "file": "v2-artifact-created-static.test.ts",
45929
+ "line": 70,
45930
+ "title": "rejects a payload without %s",
45931
+ "explicitId": "openwop.requirement.artifact-types.created-requires-artifact-type",
45932
+ "citations": [
45933
+ {
45934
+ "section": "artifact-type-packs.md §Registration",
45935
+ "requirement": null,
45936
+ "interpolated": true
45937
+ }
45938
+ ]
45939
+ },
45940
+ {
45941
+ "id": "openwop.it.v2-artifact-created-static.rejects-a-registrationsource-outside-pack-host",
45942
+ "file": "v2-artifact-created-static.test.ts",
45943
+ "line": 77,
45944
+ "title": "rejects a registrationSource outside pack | host",
45945
+ "explicitId": "openwop.requirement.artifact-types.created-registration-source-enum",
45946
+ "citations": [
45947
+ {
45948
+ "section": "artifact-type-packs.md §Registration",
45949
+ "requirement": "registrationSource MUST be pack or host"
45950
+ }
45951
+ ]
45952
+ },
45953
+ {
45954
+ "id": "openwop.it.v2-artifact-created-static.the-discovery-per-type-registrationsource-carries-the-same-vocabulary-as-the-eve",
45955
+ "file": "v2-artifact-created-static.test.ts",
45956
+ "line": 82,
45957
+ "title": "the discovery per-type registrationSource carries the same vocabulary as the event",
45958
+ "explicitId": "openwop.requirement.artifact-types.created-registration-source-enum",
45959
+ "citations": [
45960
+ {
45961
+ "section": "artifact-type-packs.md §Registration",
45962
+ "requirement": "artifact.created.registrationSource MUST be the pack | host enum"
45963
+ },
45964
+ {
45965
+ "section": "capabilities.schema.json §artifactTypes.types",
45966
+ "requirement": "the advertised per-type registrationSource MUST use the vocabulary artifact.created carries"
45967
+ }
45968
+ ]
45969
+ },
45970
+ {
45971
+ "id": "openwop.it.v2-artifact-created-static.rejects-a-non-boolean-registered",
45972
+ "file": "v2-artifact-created-static.test.ts",
45973
+ "line": 92,
45974
+ "title": "rejects a non-boolean registered",
45975
+ "explicitId": "openwop.requirement.artifact-types.created-registered-boolean",
45976
+ "citations": [
45977
+ {
45978
+ "section": "artifact-type-packs.md §Registration",
45979
+ "requirement": "registered MUST be a boolean"
45980
+ }
45981
+ ]
45982
+ },
45983
+ {
45984
+ "id": "openwop.it.v2-artifact-created-static.rejects-an-unknown-key-and-carries-a-vendor-key-under-the-rfc-0185-hatch",
45985
+ "file": "v2-artifact-created-static.test.ts",
45986
+ "line": 97,
45987
+ "title": "rejects an unknown key, and carries a vendor key under the RFC 0185 hatch",
45988
+ "explicitId": "openwop.requirement.artifact-types.created-payload-closed",
45989
+ "citations": [
45990
+ {
45991
+ "section": "artifact-type-packs.md §Registration",
45992
+ "requirement": "an unknown key on artifact.created MUST be rejected"
45993
+ },
45994
+ {
45995
+ "section": "run-event-payloads.schema.json §artifactCreated (RFC 0185)",
45996
+ "requirement": null,
45997
+ "interpolated": true
45998
+ }
45999
+ ]
46000
+ },
46371
46001
  {
46372
46002
  "id": "openwop.it.v2-bundle-signature-attributable.the-v2-discovery-root-publishes-signingkeys-the-surface-the-rfc-named",
46373
46003
  "file": "v2-bundle-signature-attributable.test.ts",
@@ -46801,6 +46431,67 @@
46801
46431
  }
46802
46432
  ]
46803
46433
  },
46434
+ {
46435
+ "id": "openwop.requirement.envelopes.tier-one-load-bearing-universal-kinds",
46436
+ "file": "v2-envelope-tier-one-universal-static.test.ts",
46437
+ "line": 30,
46438
+ "title": null,
46439
+ "explicitId": "openwop.requirement.envelopes.tier-one-load-bearing-universal-kinds",
46440
+ "citations": [
46441
+ {
46442
+ "section": "RFC 0030 §B",
46443
+ "requirement": null,
46444
+ "interpolated": true
46445
+ },
46446
+ {
46447
+ "section": "RFC 0030 §B",
46448
+ "requirement": null,
46449
+ "interpolated": true
46450
+ }
46451
+ ]
46452
+ },
46453
+ {
46454
+ "id": "openwop.it.v2-envelope-variant-discriminator-static.schemas-v2-envelopes-carries-a-payload-schema-for-each-universal-kind",
46455
+ "file": "v2-envelope-variant-discriminator-static.test.ts",
46456
+ "line": 47,
46457
+ "title": "schemas/v2/envelopes carries a payload schema for each universal kind",
46458
+ "explicitId": "openwop.requirement.envelopes.payload-schemas-present",
46459
+ "citations": [
46460
+ {
46461
+ "section": "RFC 0031 §A",
46462
+ "requirement": null,
46463
+ "interpolated": true
46464
+ }
46465
+ ]
46466
+ },
46467
+ {
46468
+ "id": "openwop.requirement.envelopes.variant-no-oneof",
46469
+ "file": "v2-envelope-variant-discriminator-static.test.ts",
46470
+ "line": 53,
46471
+ "title": null,
46472
+ "explicitId": "openwop.requirement.envelopes.variant-no-oneof",
46473
+ "citations": [
46474
+ {
46475
+ "section": "RFC 0031 §A",
46476
+ "requirement": null,
46477
+ "interpolated": true
46478
+ }
46479
+ ]
46480
+ },
46481
+ {
46482
+ "id": "openwop.requirement.envelopes.variant-anyof-discriminated",
46483
+ "file": "v2-envelope-variant-discriminator-static.test.ts",
46484
+ "line": 59,
46485
+ "title": null,
46486
+ "explicitId": "openwop.requirement.envelopes.variant-anyof-discriminated",
46487
+ "citations": [
46488
+ {
46489
+ "section": "RFC 0031 §A",
46490
+ "requirement": null,
46491
+ "interpolated": true
46492
+ }
46493
+ ]
46494
+ },
46804
46495
  {
46805
46496
  "id": "openwop.it.v2-eos-clock.the-clock-file-is-current-with-the-matrix-and-the-public-history",
46806
46497
  "file": "v2-eos-clock.test.ts",
@@ -47029,6 +46720,144 @@
47029
46720
  }
47030
46721
  ]
47031
46722
  },
46723
+ {
46724
+ "id": "openwop.it.v2-export-bundle-static.accepts-a-conforming-bundle-at-bundleversion-2",
46725
+ "file": "v2-export-bundle-static.test.ts",
46726
+ "line": 58,
46727
+ "title": "accepts a conforming bundle at bundleVersion \"2\"",
46728
+ "explicitId": "openwop.requirement.portability.bundle-version-2",
46729
+ "citations": [
46730
+ {
46731
+ "section": "portability.md §The export bundle",
46732
+ "requirement": null,
46733
+ "interpolated": true
46734
+ }
46735
+ ]
46736
+ },
46737
+ {
46738
+ "id": "openwop.it.v2-export-bundle-static.rejects-the-v1-bundleversion-1-and-a-missing-bundleversion",
46739
+ "file": "v2-export-bundle-static.test.ts",
46740
+ "line": 64,
46741
+ "title": "rejects the v1 bundleVersion \"1\" and a missing bundleVersion",
46742
+ "explicitId": "openwop.requirement.portability.bundle-version-2",
46743
+ "citations": [
46744
+ {
46745
+ "section": "portability.md §The export bundle",
46746
+ "requirement": "a v2 bundle MUST carry bundleVersion \"2\"; \"1\" MUST be rejected"
46747
+ },
46748
+ {
46749
+ "section": "portability.md §The export bundle",
46750
+ "requirement": "a bundle without bundleVersion MUST be rejected"
46751
+ }
46752
+ ]
46753
+ },
46754
+ {
46755
+ "id": "openwop.it.v2-export-bundle-static.rejects-an-unknown-item-kind-and-an-item-without-ref",
46756
+ "file": "v2-export-bundle-static.test.ts",
46757
+ "line": 71,
46758
+ "title": "rejects an unknown item kind and an item without ref",
46759
+ "explicitId": "openwop.requirement.portability.bundle-item-shape",
46760
+ "citations": [
46761
+ {
46762
+ "section": "portability.md §The export bundle",
46763
+ "requirement": "an unknown item kind MUST be rejected"
46764
+ },
46765
+ {
46766
+ "section": "portability.md §The export bundle",
46767
+ "requirement": "an item without a ref MUST be rejected"
46768
+ }
46769
+ ]
46770
+ },
46771
+ {
46772
+ "id": "openwop.it.v2-export-bundle-static.admits-no-s-field-at-the-bundle-root-or-under-source",
46773
+ "file": "v2-export-bundle-static.test.ts",
46774
+ "line": 77,
46775
+ "title": "admits no %s field at the bundle root or under source",
46776
+ "explicitId": "openwop.requirement.portability.bundle-no-credential-field",
46777
+ "citations": [
46778
+ {
46779
+ "section": "portability.md §The export bundle",
46780
+ "requirement": null,
46781
+ "interpolated": true
46782
+ },
46783
+ {
46784
+ "section": "portability.md §The export bundle",
46785
+ "requirement": null,
46786
+ "interpolated": true
46787
+ }
46788
+ ]
46789
+ },
46790
+ {
46791
+ "id": "openwop.it.v2-export-bundle-static.import-applied-is-a-registered-v2-run-event-type",
46792
+ "file": "v2-export-bundle-static.test.ts",
46793
+ "line": 88,
46794
+ "title": "import.applied is a registered v2 run-event type",
46795
+ "explicitId": "openwop.requirement.portability.import-applied-content-free",
46796
+ "citations": [
46797
+ {
46798
+ "section": null,
46799
+ "requirement": null,
46800
+ "interpolated": true
46801
+ }
46802
+ ]
46803
+ },
46804
+ {
46805
+ "id": "openwop.it.v2-export-bundle-static.a-counts-and-refs-payload-validates-one-carrying-item-payloads-does-not",
46806
+ "file": "v2-export-bundle-static.test.ts",
46807
+ "line": 94,
46808
+ "title": "a counts-and-refs payload validates; one carrying item payloads does not",
46809
+ "explicitId": "openwop.requirement.portability.import-applied-content-free",
46810
+ "citations": [
46811
+ {
46812
+ "section": null,
46813
+ "requirement": null,
46814
+ "interpolated": true
46815
+ },
46816
+ {
46817
+ "section": null,
46818
+ "requirement": "import.applied MUST NOT carry item payloads",
46819
+ "interpolated": true
46820
+ },
46821
+ {
46822
+ "section": null,
46823
+ "requirement": "import.applied counts MUST be the four outcome tallies only",
46824
+ "interpolated": true
46825
+ }
46826
+ ]
46827
+ },
46828
+ {
46829
+ "id": "openwop.it.v2-export-bundle-static.import-true-with-dryrun-true-validates-import-false-needs-no-dryrun",
46830
+ "file": "v2-export-bundle-static.test.ts",
46831
+ "line": 108,
46832
+ "title": "import: true with dryRun: true validates; import: false needs no dryRun",
46833
+ "explicitId": "openwop.requirement.portability.import-dry-run-schema-rule",
46834
+ "citations": [
46835
+ {
46836
+ "section": null,
46837
+ "requirement": null,
46838
+ "interpolated": true
46839
+ }
46840
+ ]
46841
+ },
46842
+ {
46843
+ "id": "openwop.it.v2-export-bundle-static.import-true-without-dryrun-or-with-dryrun-false-is-rejected",
46844
+ "file": "v2-export-bundle-static.test.ts",
46845
+ "line": 116,
46846
+ "title": "import: true without dryRun, or with dryRun: false, is rejected",
46847
+ "explicitId": "openwop.requirement.portability.import-dry-run-schema-rule",
46848
+ "citations": [
46849
+ {
46850
+ "section": null,
46851
+ "requirement": "import: true without dryRun MUST be rejected",
46852
+ "interpolated": true
46853
+ },
46854
+ {
46855
+ "section": null,
46856
+ "requirement": "import: true with dryRun: false MUST be rejected",
46857
+ "interpolated": true
46858
+ }
46859
+ ]
46860
+ },
47032
46861
  {
47033
46862
  "id": "openwop.it.v2-externally-gated-never-stable.the-corpus-gate-script-exits-0",
47034
46863
  "file": "v2-externally-gated-never-stable.test.ts",
@@ -47182,6 +47011,74 @@
47182
47011
  }
47183
47012
  ]
47184
47013
  },
47014
+ {
47015
+ "id": "openwop.requirement.media.payload-schemas-compile",
47016
+ "file": "v2-media-inline-cap-static.test.ts",
47017
+ "line": 42,
47018
+ "title": null,
47019
+ "explicitId": "openwop.requirement.media.payload-schemas-compile",
47020
+ "citations": [
47021
+ {
47022
+ "section": "host-services.md §aiProviders",
47023
+ "requirement": null,
47024
+ "interpolated": true
47025
+ }
47026
+ ]
47027
+ },
47028
+ {
47029
+ "id": "openwop.it.v2-media-inline-cap-static.accepts-a-url-reference-image-payload",
47030
+ "file": "v2-media-inline-cap-static.test.ts",
47031
+ "line": 48,
47032
+ "title": "accepts a URL-reference image payload",
47033
+ "explicitId": "openwop.requirement.media.url-reference-accepted",
47034
+ "citations": [
47035
+ {
47036
+ "section": "host-services.md §aiProviders",
47037
+ "requirement": null,
47038
+ "interpolated": true
47039
+ }
47040
+ ]
47041
+ },
47042
+ {
47043
+ "id": "openwop.it.v2-media-inline-cap-static.accepts-an-inline-base64-audio-payload",
47044
+ "file": "v2-media-inline-cap-static.test.ts",
47045
+ "line": 54,
47046
+ "title": "accepts an inline-base64 audio payload",
47047
+ "explicitId": "openwop.requirement.media.inline-base64-accepted",
47048
+ "citations": [
47049
+ {
47050
+ "section": "host-services.md §aiProviders",
47051
+ "requirement": null,
47052
+ "interpolated": true
47053
+ }
47054
+ ]
47055
+ },
47056
+ {
47057
+ "id": "openwop.it.v2-media-inline-cap-static.rejects-a-media-payload-missing-bytes",
47058
+ "file": "v2-media-inline-cap-static.test.ts",
47059
+ "line": 60,
47060
+ "title": "rejects a media payload missing bytes",
47061
+ "explicitId": "openwop.requirement.media.bytes-required",
47062
+ "citations": [
47063
+ {
47064
+ "section": "host-services.md §aiProviders",
47065
+ "requirement": "bytes is required on a media payload — it is what the inline cap is judged against"
47066
+ }
47067
+ ]
47068
+ },
47069
+ {
47070
+ "id": "openwop.it.v2-media-inline-cap-static.rejects-a-media-payload-with-an-unknown-property",
47071
+ "file": "v2-media-inline-cap-static.test.ts",
47072
+ "line": 65,
47073
+ "title": "rejects a media payload with an unknown property",
47074
+ "explicitId": "openwop.requirement.media.payload-closed",
47075
+ "citations": [
47076
+ {
47077
+ "section": "host-services.md §aiProviders",
47078
+ "requirement": "a media payload is closed: an unknown property MUST be rejected"
47079
+ }
47080
+ ]
47081
+ },
47185
47082
  {
47186
47083
  "id": "openwop.it.v2-normative-home-gate.a-refused-home-class-is-refused-by-name",
47187
47084
  "file": "v2-normative-home-gate.test.ts",
@@ -47419,6 +47316,90 @@
47419
47316
  }
47420
47317
  ]
47421
47318
  },
47319
+ {
47320
+ "id": "openwop.it.v2-provider-usage-payload-static.provider-usage-is-a-registered-v2-run-event-type",
47321
+ "file": "v2-provider-usage-payload-static.test.ts",
47322
+ "line": 57,
47323
+ "title": "provider.usage is a registered v2 run-event type",
47324
+ "explicitId": "openwop.requirement.provider-usage.event-type-registered",
47325
+ "citations": [
47326
+ {
47327
+ "section": "events.md §providerUsage",
47328
+ "requirement": null,
47329
+ "interpolated": true
47330
+ }
47331
+ ]
47332
+ },
47333
+ {
47334
+ "id": "openwop.it.v2-provider-usage-payload-static.accepts-a-minimal-and-a-full-payload",
47335
+ "file": "v2-provider-usage-payload-static.test.ts",
47336
+ "line": 63,
47337
+ "title": "accepts a minimal and a full payload",
47338
+ "explicitId": "openwop.requirement.provider-usage.payload-well-formed-accepted",
47339
+ "citations": [
47340
+ {
47341
+ "section": "events.md §providerUsage",
47342
+ "requirement": null,
47343
+ "interpolated": true
47344
+ }
47345
+ ]
47346
+ },
47347
+ {
47348
+ "id": "openwop.it.v2-provider-usage-payload-static.rejects-a-payload-without-s",
47349
+ "file": "v2-provider-usage-payload-static.test.ts",
47350
+ "line": 71,
47351
+ "title": "rejects a payload without %s",
47352
+ "explicitId": "openwop.requirement.provider-usage.payload-required-fields",
47353
+ "citations": [
47354
+ {
47355
+ "section": "events.md §providerUsage",
47356
+ "requirement": null,
47357
+ "interpolated": true
47358
+ }
47359
+ ]
47360
+ },
47361
+ {
47362
+ "id": "openwop.it.v2-provider-usage-payload-static.rejects-s",
47363
+ "file": "v2-provider-usage-payload-static.test.ts",
47364
+ "line": 76,
47365
+ "title": "rejects %s",
47366
+ "explicitId": "openwop.requirement.provider-usage.payload-token-counts",
47367
+ "citations": [
47368
+ {
47369
+ "section": "events.md §providerUsage",
47370
+ "requirement": null,
47371
+ "interpolated": true
47372
+ }
47373
+ ]
47374
+ },
47375
+ {
47376
+ "id": "openwop.it.v2-provider-usage-payload-static.rejects-s~2",
47377
+ "file": "v2-provider-usage-payload-static.test.ts",
47378
+ "line": 84,
47379
+ "title": "rejects %s",
47380
+ "explicitId": "openwop.requirement.provider-usage.payload-cost-and-currency",
47381
+ "citations": [
47382
+ {
47383
+ "section": "events.md §providerUsage",
47384
+ "requirement": null,
47385
+ "interpolated": true
47386
+ }
47387
+ ]
47388
+ },
47389
+ {
47390
+ "id": "openwop.it.v2-provider-usage-payload-static.rejects-a-payload-carrying-s",
47391
+ "file": "v2-provider-usage-payload-static.test.ts",
47392
+ "line": 92,
47393
+ "title": "rejects a payload carrying %s",
47394
+ "explicitId": "openwop.requirement.provider-usage.payload-no-credential-or-content",
47395
+ "citations": [
47396
+ {
47397
+ "section": "events.md §providerUsage",
47398
+ "requirement": null,
47399
+ "interpolated": true
47400
+ }
47401
+ ]
47402
+ },
47422
47403
  {
47423
47404
  "id": "openwop.it.v2-push-credential-coherent.the-push-credential-exception-is-stated-wherever-the-rule-it-excepts-is-read-and",
47424
47405
  "file": "v2-push-credential-coherent.test.ts",
@@ -47679,6 +47660,116 @@
47679
47660
  }
47680
47661
  ]
47681
47662
  },
47663
+ {
47664
+ "id": "openwop.requirement.self-hosted-runner.frame-schemas-compile",
47665
+ "file": "v2-self-hosted-runner-frames-static.test.ts",
47666
+ "line": 61,
47667
+ "title": null,
47668
+ "explicitId": "openwop.requirement.self-hosted-runner.frame-schemas-compile",
47669
+ "citations": [
47670
+ {
47671
+ "section": "execution.md §selfHostedRunner",
47672
+ "requirement": null,
47673
+ "interpolated": true
47674
+ }
47675
+ ]
47676
+ },
47677
+ {
47678
+ "id": "openwop.it.v2-self-hosted-runner-frames-static.accepts-a-model-frame-and-a-tool-frame",
47679
+ "file": "v2-self-hosted-runner-frames-static.test.ts",
47680
+ "line": 71,
47681
+ "title": "accepts a model frame and a tool frame",
47682
+ "explicitId": "openwop.requirement.self-hosted-runner.dispatch-frame-shape",
47683
+ "citations": [
47684
+ {
47685
+ "section": "execution.md §selfHostedRunner",
47686
+ "requirement": null,
47687
+ "interpolated": true
47688
+ }
47689
+ ]
47690
+ },
47691
+ {
47692
+ "id": "openwop.it.v2-self-hosted-runner-frames-static.rejects-s",
47693
+ "file": "v2-self-hosted-runner-frames-static.test.ts",
47694
+ "line": 79,
47695
+ "title": "rejects %s",
47696
+ "explicitId": "openwop.requirement.self-hosted-runner.dispatch-frame-shape",
47697
+ "citations": [
47698
+ {
47699
+ "section": "execution.md §selfHostedRunner",
47700
+ "requirement": null,
47701
+ "interpolated": true
47702
+ }
47703
+ ]
47704
+ },
47705
+ {
47706
+ "id": "openwop.it.v2-self-hosted-runner-frames-static.accepts-a-result-frame",
47707
+ "file": "v2-self-hosted-runner-frames-static.test.ts",
47708
+ "line": 96,
47709
+ "title": "accepts a result frame",
47710
+ "explicitId": "openwop.requirement.self-hosted-runner.result-frame-shape",
47711
+ "citations": [
47712
+ {
47713
+ "section": "execution.md §selfHostedRunner",
47714
+ "requirement": null,
47715
+ "interpolated": true
47716
+ }
47717
+ ]
47718
+ },
47719
+ {
47720
+ "id": "openwop.it.v2-self-hosted-runner-frames-static.rejects-a-result-frame-without-output",
47721
+ "file": "v2-self-hosted-runner-frames-static.test.ts",
47722
+ "line": 102,
47723
+ "title": "rejects a result frame without output",
47724
+ "explicitId": "openwop.requirement.self-hosted-runner.result-frame-shape",
47725
+ "citations": [
47726
+ {
47727
+ "section": "execution.md §selfHostedRunner",
47728
+ "requirement": "a result frame without output MUST be rejected"
47729
+ }
47730
+ ]
47731
+ },
47732
+ {
47733
+ "id": "openwop.it.v2-self-hosted-runner-frames-static.a-s-with-an-extra-credential-named-field-is-rejected",
47734
+ "file": "v2-self-hosted-runner-frames-static.test.ts",
47735
+ "line": 109,
47736
+ "title": "a %s with an extra credential-named field is rejected",
47737
+ "explicitId": "openwop.requirement.self-hosted-runner.frames-closed",
47738
+ "citations": [
47739
+ {
47740
+ "section": "execution.md §selfHostedRunner",
47741
+ "requirement": null,
47742
+ "interpolated": true
47743
+ }
47744
+ ]
47745
+ },
47746
+ {
47747
+ "id": "openwop.it.v2-self-hosted-runner-frames-static.accepts-a-registration",
47748
+ "file": "v2-self-hosted-runner-frames-static.test.ts",
47749
+ "line": 122,
47750
+ "title": "accepts a registration",
47751
+ "explicitId": "openwop.requirement.self-hosted-runner.registration-shape",
47752
+ "citations": [
47753
+ {
47754
+ "section": "execution.md §selfHostedRunner",
47755
+ "requirement": null,
47756
+ "interpolated": true
47757
+ }
47758
+ ]
47759
+ },
47760
+ {
47761
+ "id": "openwop.it.v2-self-hosted-runner-frames-static.rejects-a-registration-without-subject",
47762
+ "file": "v2-self-hosted-runner-frames-static.test.ts",
47763
+ "line": 128,
47764
+ "title": "rejects a registration without subject",
47765
+ "explicitId": "openwop.requirement.self-hosted-runner.registration-shape",
47766
+ "citations": [
47767
+ {
47768
+ "section": "execution.md §selfHostedRunner",
47769
+ "requirement": "a registration without its owning subject MUST be rejected"
47770
+ }
47771
+ ]
47772
+ },
47682
47773
  {
47683
47774
  "id": "openwop.it.v2-spec-artifacts-digest.the-corpus-gate-script-exits-0",
47684
47775
  "file": "v2-spec-artifacts-digest.test.ts",