@openwop/openwop-conformance 2.45.16 → 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": 724,
6
- "tests": 2745,
7
- "withStableId": 2745,
5
+ "files": 726,
6
+ "tests": 2754,
7
+ "withStableId": 2754,
8
8
  "interpolatedTitles": 0,
9
- "explicitIds": 2611
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",
@@ -30342,6 +30146,88 @@
30342
30146
  }
30343
30147
  ]
30344
30148
  },
30149
+ {
30150
+ "id": "openwop.it.v2-discovery-etag.the-discovery-document-carries-an-etag",
30151
+ "file": "v2-discovery-etag.test.ts",
30152
+ "line": 74,
30153
+ "title": "the discovery document carries an ETag",
30154
+ "explicitId": "openwop.requirement.capabilities.discovery-etag-emitted",
30155
+ "citations": [
30156
+ {
30157
+ "section": "spec/v2/core/capabilities.md §1",
30158
+ "requirement": null,
30159
+ "interpolated": true
30160
+ }
30161
+ ]
30162
+ },
30163
+ {
30164
+ "id": "openwop.it.v2-discovery-etag.a-matching-if-none-match-receives-304-with-no-body-and-the-version-header-a-non",
30165
+ "file": "v2-discovery-etag.test.ts",
30166
+ "line": 81,
30167
+ "title": "a matching If-None-Match receives 304 with no body and the version header; a non-matching one receives 200",
30168
+ "explicitId": "openwop.requirement.capabilities.discovery-etag-revalidates",
30169
+ "citations": [
30170
+ {
30171
+ "section": "spec/v2/core/capabilities.md §1",
30172
+ "requirement": null,
30173
+ "interpolated": true
30174
+ },
30175
+ {
30176
+ "section": "spec/v2/core/headers.md §Request headers",
30177
+ "requirement": null,
30178
+ "interpolated": true
30179
+ },
30180
+ {
30181
+ "section": "spec/v2/core/versioning.md §1.4",
30182
+ "requirement": null,
30183
+ "interpolated": true
30184
+ },
30185
+ {
30186
+ "section": "spec/v2/core/capabilities.md §1",
30187
+ "requirement": null,
30188
+ "interpolated": true
30189
+ }
30190
+ ]
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
+ },
30345
30231
  {
30346
30232
  "id": "openwop.it.v2-dispatch-input-mapping.inputmapping-projects-the-parent-variable-into-the-dispatched-child-inputs",
30347
30233
  "file": "v2-dispatch-input-mapping.test.ts",
@@ -30859,29 +30745,10 @@
30859
30745
  }
30860
30746
  ]
30861
30747
  },
30862
- {
30863
- "id": "openwop.requirement.envelopes.tier-one-load-bearing-universal-kinds",
30864
- "file": "v2-envelope-tier-one-subset-static.test.ts",
30865
- "line": 46,
30866
- "title": null,
30867
- "explicitId": "openwop.requirement.envelopes.tier-one-load-bearing-universal-kinds",
30868
- "citations": [
30869
- {
30870
- "section": "RFC 0030 §B",
30871
- "requirement": null,
30872
- "interpolated": true
30873
- },
30874
- {
30875
- "section": "RFC 0030 §B",
30876
- "requirement": null,
30877
- "interpolated": true
30878
- }
30879
- ]
30880
- },
30881
30748
  {
30882
30749
  "id": "openwop.it.v2-envelope-tier-one-subset-static.a-host-advertising-tieronesubsetcompliance-strict-has-advertised-kinds-whose-cor",
30883
30750
  "file": "v2-envelope-tier-one-subset-static.test.ts",
30884
- "line": 56,
30751
+ "line": 43,
30885
30752
  "title": "a host advertising tierOneSubsetCompliance strict has advertised kinds whose corpus schemas satisfy the Tier-1 intersection",
30886
30753
  "explicitId": "openwop.requirement.envelopes.tier-one-strict-advertised-kinds",
30887
30754
  "citations": [
@@ -30892,48 +30759,6 @@
30892
30759
  }
30893
30760
  ]
30894
30761
  },
30895
- {
30896
- "id": "openwop.it.v2-envelope-variant-discriminator-static.schemas-v2-envelopes-carries-a-payload-schema-for-each-universal-kind",
30897
- "file": "v2-envelope-variant-discriminator-static.test.ts",
30898
- "line": 42,
30899
- "title": "schemas/v2/envelopes carries a payload schema for each universal kind",
30900
- "explicitId": "openwop.requirement.envelopes.payload-schemas-present",
30901
- "citations": [
30902
- {
30903
- "section": "RFC 0031 §A",
30904
- "requirement": null,
30905
- "interpolated": true
30906
- }
30907
- ]
30908
- },
30909
- {
30910
- "id": "openwop.requirement.envelopes.variant-no-oneof",
30911
- "file": "v2-envelope-variant-discriminator-static.test.ts",
30912
- "line": 47,
30913
- "title": null,
30914
- "explicitId": "openwop.requirement.envelopes.variant-no-oneof",
30915
- "citations": [
30916
- {
30917
- "section": "RFC 0031 §A",
30918
- "requirement": null,
30919
- "interpolated": true
30920
- }
30921
- ]
30922
- },
30923
- {
30924
- "id": "openwop.requirement.envelopes.variant-anyof-discriminated",
30925
- "file": "v2-envelope-variant-discriminator-static.test.ts",
30926
- "line": 52,
30927
- "title": null,
30928
- "explicitId": "openwop.requirement.envelopes.variant-anyof-discriminated",
30929
- "citations": [
30930
- {
30931
- "section": "RFC 0031 §A",
30932
- "requirement": null,
30933
- "interpolated": true
30934
- }
30935
- ]
30936
- },
30937
30762
  {
30938
30763
  "id": "openwop.it.v2-envelopes-advertisement.the-envelopes-record-validates-against-its-capabilities-schema-seat",
30939
30764
  "file": "v2-envelopes-advertisement.test.ts",
@@ -31247,144 +31072,6 @@
31247
31072
  }
31248
31073
  ]
31249
31074
  },
31250
- {
31251
- "id": "openwop.it.v2-export-bundle-static.accepts-a-conforming-bundle-at-bundleversion-2",
31252
- "file": "v2-export-bundle-static.test.ts",
31253
- "line": 53,
31254
- "title": "accepts a conforming bundle at bundleVersion \"2\"",
31255
- "explicitId": "openwop.requirement.portability.bundle-version-2",
31256
- "citations": [
31257
- {
31258
- "section": "portability.md §The export bundle",
31259
- "requirement": null,
31260
- "interpolated": true
31261
- }
31262
- ]
31263
- },
31264
- {
31265
- "id": "openwop.it.v2-export-bundle-static.rejects-the-v1-bundleversion-1-and-a-missing-bundleversion",
31266
- "file": "v2-export-bundle-static.test.ts",
31267
- "line": 58,
31268
- "title": "rejects the v1 bundleVersion \"1\" and a missing bundleVersion",
31269
- "explicitId": "openwop.requirement.portability.bundle-version-2",
31270
- "citations": [
31271
- {
31272
- "section": "portability.md §The export bundle",
31273
- "requirement": "a v2 bundle MUST carry bundleVersion \"2\"; \"1\" MUST be rejected"
31274
- },
31275
- {
31276
- "section": "portability.md §The export bundle",
31277
- "requirement": "a bundle without bundleVersion MUST be rejected"
31278
- }
31279
- ]
31280
- },
31281
- {
31282
- "id": "openwop.it.v2-export-bundle-static.rejects-an-unknown-item-kind-and-an-item-without-ref",
31283
- "file": "v2-export-bundle-static.test.ts",
31284
- "line": 64,
31285
- "title": "rejects an unknown item kind and an item without ref",
31286
- "explicitId": "openwop.requirement.portability.bundle-item-shape",
31287
- "citations": [
31288
- {
31289
- "section": "portability.md §The export bundle",
31290
- "requirement": "an unknown item kind MUST be rejected"
31291
- },
31292
- {
31293
- "section": "portability.md §The export bundle",
31294
- "requirement": "an item without a ref MUST be rejected"
31295
- }
31296
- ]
31297
- },
31298
- {
31299
- "id": "openwop.it.v2-export-bundle-static.admits-no-s-field-at-the-bundle-root-or-under-source",
31300
- "file": "v2-export-bundle-static.test.ts",
31301
- "line": 69,
31302
- "title": "admits no %s field at the bundle root or under source",
31303
- "explicitId": "openwop.requirement.portability.bundle-no-credential-field",
31304
- "citations": [
31305
- {
31306
- "section": "portability.md §The export bundle",
31307
- "requirement": null,
31308
- "interpolated": true
31309
- },
31310
- {
31311
- "section": "portability.md §The export bundle",
31312
- "requirement": null,
31313
- "interpolated": true
31314
- }
31315
- ]
31316
- },
31317
- {
31318
- "id": "openwop.it.v2-export-bundle-static.import-applied-is-a-registered-v2-run-event-type",
31319
- "file": "v2-export-bundle-static.test.ts",
31320
- "line": 79,
31321
- "title": "import.applied is a registered v2 run-event type",
31322
- "explicitId": "openwop.requirement.portability.import-applied-content-free",
31323
- "citations": [
31324
- {
31325
- "section": null,
31326
- "requirement": null,
31327
- "interpolated": true
31328
- }
31329
- ]
31330
- },
31331
- {
31332
- "id": "openwop.it.v2-export-bundle-static.a-counts-and-refs-payload-validates-one-carrying-item-payloads-does-not",
31333
- "file": "v2-export-bundle-static.test.ts",
31334
- "line": 84,
31335
- "title": "a counts-and-refs payload validates; one carrying item payloads does not",
31336
- "explicitId": "openwop.requirement.portability.import-applied-content-free",
31337
- "citations": [
31338
- {
31339
- "section": null,
31340
- "requirement": null,
31341
- "interpolated": true
31342
- },
31343
- {
31344
- "section": null,
31345
- "requirement": "import.applied MUST NOT carry item payloads",
31346
- "interpolated": true
31347
- },
31348
- {
31349
- "section": null,
31350
- "requirement": "import.applied counts MUST be the four outcome tallies only",
31351
- "interpolated": true
31352
- }
31353
- ]
31354
- },
31355
- {
31356
- "id": "openwop.it.v2-export-bundle-static.import-true-with-dryrun-true-validates-import-false-needs-no-dryrun",
31357
- "file": "v2-export-bundle-static.test.ts",
31358
- "line": 97,
31359
- "title": "import: true with dryRun: true validates; import: false needs no dryRun",
31360
- "explicitId": "openwop.requirement.portability.import-dry-run-schema-rule",
31361
- "citations": [
31362
- {
31363
- "section": null,
31364
- "requirement": null,
31365
- "interpolated": true
31366
- }
31367
- ]
31368
- },
31369
- {
31370
- "id": "openwop.it.v2-export-bundle-static.import-true-without-dryrun-or-with-dryrun-false-is-rejected",
31371
- "file": "v2-export-bundle-static.test.ts",
31372
- "line": 104,
31373
- "title": "import: true without dryRun, or with dryRun: false, is rejected",
31374
- "explicitId": "openwop.requirement.portability.import-dry-run-schema-rule",
31375
- "citations": [
31376
- {
31377
- "section": null,
31378
- "requirement": "import: true without dryRun MUST be rejected",
31379
- "interpolated": true
31380
- },
31381
- {
31382
- "section": null,
31383
- "requirement": "import: true with dryRun: false MUST be rejected",
31384
- "interpolated": true
31385
- }
31386
- ]
31387
- },
31388
31075
  {
31389
31076
  "id": "openwop.it.v2-ext-family-claims.brand",
31390
31077
  "file": "v2-ext-family-claims.test.ts",
@@ -33636,74 +33323,6 @@
33636
33323
  }
33637
33324
  ]
33638
33325
  },
33639
- {
33640
- "id": "openwop.requirement.media.payload-schemas-compile",
33641
- "file": "v2-media-inline-cap-static.test.ts",
33642
- "line": 37,
33643
- "title": null,
33644
- "explicitId": "openwop.requirement.media.payload-schemas-compile",
33645
- "citations": [
33646
- {
33647
- "section": "host-services.md §aiProviders",
33648
- "requirement": null,
33649
- "interpolated": true
33650
- }
33651
- ]
33652
- },
33653
- {
33654
- "id": "openwop.it.v2-media-inline-cap-static.accepts-a-url-reference-image-payload",
33655
- "file": "v2-media-inline-cap-static.test.ts",
33656
- "line": 42,
33657
- "title": "accepts a URL-reference image payload",
33658
- "explicitId": "openwop.requirement.media.url-reference-accepted",
33659
- "citations": [
33660
- {
33661
- "section": "host-services.md §aiProviders",
33662
- "requirement": null,
33663
- "interpolated": true
33664
- }
33665
- ]
33666
- },
33667
- {
33668
- "id": "openwop.it.v2-media-inline-cap-static.accepts-an-inline-base64-audio-payload",
33669
- "file": "v2-media-inline-cap-static.test.ts",
33670
- "line": 47,
33671
- "title": "accepts an inline-base64 audio payload",
33672
- "explicitId": "openwop.requirement.media.inline-base64-accepted",
33673
- "citations": [
33674
- {
33675
- "section": "host-services.md §aiProviders",
33676
- "requirement": null,
33677
- "interpolated": true
33678
- }
33679
- ]
33680
- },
33681
- {
33682
- "id": "openwop.it.v2-media-inline-cap-static.rejects-a-media-payload-missing-bytes",
33683
- "file": "v2-media-inline-cap-static.test.ts",
33684
- "line": 52,
33685
- "title": "rejects a media payload missing bytes",
33686
- "explicitId": "openwop.requirement.media.bytes-required",
33687
- "citations": [
33688
- {
33689
- "section": "host-services.md §aiProviders",
33690
- "requirement": "bytes is required on a media payload — it is what the inline cap is judged against"
33691
- }
33692
- ]
33693
- },
33694
- {
33695
- "id": "openwop.it.v2-media-inline-cap-static.rejects-a-media-payload-with-an-unknown-property",
33696
- "file": "v2-media-inline-cap-static.test.ts",
33697
- "line": 56,
33698
- "title": "rejects a media payload with an unknown property",
33699
- "explicitId": "openwop.requirement.media.payload-closed",
33700
- "citations": [
33701
- {
33702
- "section": "host-services.md §aiProviders",
33703
- "requirement": "a media payload is closed: an unknown property MUST be rejected"
33704
- }
33705
- ]
33706
- },
33707
33326
  {
33708
33327
  "id": "openwop.it.v2-memory-cross-tenant-isolation.a-second-tenant-listing-the-same-memoryref-sees-none-of-the-first-tenant-s-entri",
33709
33328
  "file": "v2-memory-cross-tenant-isolation.test.ts",
@@ -35086,7 +34705,7 @@
35086
34705
  {
35087
34706
  "id": "openwop.it.v2-prompt-list-and-fetch.get-prompts-answers-items-whose-every-entry-validates",
35088
34707
  "file": "v2-prompt-list-and-fetch.test.ts",
35089
- "line": 56,
34708
+ "line": 58,
35090
34709
  "title": "GET /prompts answers items whose every entry validates",
35091
34710
  "explicitId": "openwop.requirement.prompts.list-shape",
35092
34711
  "citations": [
@@ -35100,7 +34719,7 @@
35100
34719
  {
35101
34720
  "id": "openwop.it.v2-prompt-list-and-fetch.the-kind-and-source-filters-narrow-the-list",
35102
34721
  "file": "v2-prompt-list-and-fetch.test.ts",
35103
- "line": 64,
34722
+ "line": 66,
35104
34723
  "title": "the kind and source filters narrow the list",
35105
34724
  "explicitId": "openwop.requirement.prompts.list-filters",
35106
34725
  "citations": [
@@ -35114,7 +34733,7 @@
35114
34733
  {
35115
34734
  "id": "openwop.it.v2-prompt-list-and-fetch.a-listed-template-is-fetched-by-id",
35116
34735
  "file": "v2-prompt-list-and-fetch.test.ts",
35117
- "line": 72,
34736
+ "line": 74,
35118
34737
  "title": "a listed template is fetched by id",
35119
34738
  "explicitId": "openwop.requirement.prompts.fetch-by-id",
35120
34739
  "citations": [
@@ -35126,10 +34745,10 @@
35126
34745
  ]
35127
34746
  },
35128
34747
  {
35129
- "id": "openwop.it.v2-prompt-list-and-fetch.an-etag-when-sent-revalidates-to-304",
34748
+ "id": "openwop.it.v2-prompt-list-and-fetch.advisory-an-etag-when-sent-revalidates-to-304",
35130
34749
  "file": "v2-prompt-list-and-fetch.test.ts",
35131
- "line": 80,
35132
- "title": "an ETag, when sent, revalidates to 304",
34750
+ "line": 82,
34751
+ "title": "advisory: an ETag, when sent, revalidates to 304",
35133
34752
  "explicitId": "openwop.requirement.prompts.etag-revalidation",
35134
34753
  "citations": [
35135
34754
  {
@@ -35142,7 +34761,7 @@
35142
34761
  {
35143
34762
  "id": "openwop.it.v2-prompt-list-and-fetch.an-unknown-templateid-answers-404-with-the-error-envelope",
35144
34763
  "file": "v2-prompt-list-and-fetch.test.ts",
35145
- "line": 88,
34764
+ "line": 90,
35146
34765
  "title": "an unknown templateId answers 404 with the error envelope",
35147
34766
  "explicitId": "openwop.requirement.prompts.unknown-template-404",
35148
34767
  "citations": [
@@ -35156,7 +34775,7 @@
35156
34775
  {
35157
34776
  "id": "openwop.it.v2-prompt-list-and-fetch.with-endpointssupported-unadvertised-get-prompts-answers-404-not-found",
35158
34777
  "file": "v2-prompt-list-and-fetch.test.ts",
35159
- "line": 96,
34778
+ "line": 98,
35160
34779
  "title": "with endpointsSupported unadvertised, GET /prompts answers 404 not_found",
35161
34780
  "explicitId": "openwop.requirement.prompts.endpoints-gate-off-404",
35162
34781
  "citations": [
@@ -35738,90 +35357,6 @@
35738
35357
  }
35739
35358
  ]
35740
35359
  },
35741
- {
35742
- "id": "openwop.it.v2-provider-usage-payload-static.provider-usage-is-a-registered-v2-run-event-type",
35743
- "file": "v2-provider-usage-payload-static.test.ts",
35744
- "line": 52,
35745
- "title": "provider.usage is a registered v2 run-event type",
35746
- "explicitId": "openwop.requirement.provider-usage.event-type-registered",
35747
- "citations": [
35748
- {
35749
- "section": "events.md §providerUsage",
35750
- "requirement": null,
35751
- "interpolated": true
35752
- }
35753
- ]
35754
- },
35755
- {
35756
- "id": "openwop.it.v2-provider-usage-payload-static.accepts-a-minimal-and-a-full-payload",
35757
- "file": "v2-provider-usage-payload-static.test.ts",
35758
- "line": 57,
35759
- "title": "accepts a minimal and a full payload",
35760
- "explicitId": "openwop.requirement.provider-usage.payload-well-formed-accepted",
35761
- "citations": [
35762
- {
35763
- "section": "events.md §providerUsage",
35764
- "requirement": null,
35765
- "interpolated": true
35766
- }
35767
- ]
35768
- },
35769
- {
35770
- "id": "openwop.it.v2-provider-usage-payload-static.rejects-a-payload-without-s",
35771
- "file": "v2-provider-usage-payload-static.test.ts",
35772
- "line": 64,
35773
- "title": "rejects a payload without %s",
35774
- "explicitId": "openwop.requirement.provider-usage.payload-required-fields",
35775
- "citations": [
35776
- {
35777
- "section": "events.md §providerUsage",
35778
- "requirement": null,
35779
- "interpolated": true
35780
- }
35781
- ]
35782
- },
35783
- {
35784
- "id": "openwop.it.v2-provider-usage-payload-static.rejects-s",
35785
- "file": "v2-provider-usage-payload-static.test.ts",
35786
- "line": 68,
35787
- "title": "rejects %s",
35788
- "explicitId": "openwop.requirement.provider-usage.payload-token-counts",
35789
- "citations": [
35790
- {
35791
- "section": "events.md §providerUsage",
35792
- "requirement": null,
35793
- "interpolated": true
35794
- }
35795
- ]
35796
- },
35797
- {
35798
- "id": "openwop.it.v2-provider-usage-payload-static.rejects-s~2",
35799
- "file": "v2-provider-usage-payload-static.test.ts",
35800
- "line": 76,
35801
- "title": "rejects %s",
35802
- "explicitId": "openwop.requirement.provider-usage.payload-cost-and-currency",
35803
- "citations": [
35804
- {
35805
- "section": "events.md §providerUsage",
35806
- "requirement": null,
35807
- "interpolated": true
35808
- }
35809
- ]
35810
- },
35811
- {
35812
- "id": "openwop.it.v2-provider-usage-payload-static.rejects-a-payload-carrying-s",
35813
- "file": "v2-provider-usage-payload-static.test.ts",
35814
- "line": 84,
35815
- "title": "rejects a payload carrying %s",
35816
- "explicitId": "openwop.requirement.provider-usage.payload-no-credential-or-content",
35817
- "citations": [
35818
- {
35819
- "section": "events.md §providerUsage",
35820
- "requirement": null,
35821
- "interpolated": true
35822
- }
35823
- ]
35824
- },
35825
35360
  {
35826
35361
  "id": "openwop.it.v2-purpose-propagation-advertisement.the-purposepropagation-record-validates-against-its-capabilities-schema-seat",
35827
35362
  "file": "v2-purpose-propagation-advertisement.test.ts",
@@ -36680,7 +36215,7 @@
36680
36215
  {
36681
36216
  "id": "openwop.it.v2-run-snapshot-etag.a-matching-if-none-match-receives-304-with-no-body-and-the-version-header-a-non",
36682
36217
  "file": "v2-run-snapshot-etag.test.ts",
36683
- "line": 35,
36218
+ "line": 63,
36684
36219
  "title": "a matching If-None-Match receives 304 with no body and the version header; a non-matching one receives 200",
36685
36220
  "explicitId": "openwop.requirement.0170.run-snapshot-etag",
36686
36221
  "citations": [
@@ -36696,7 +36231,8 @@
36696
36231
  },
36697
36232
  {
36698
36233
  "section": "spec/v2/core/versioning.md §1.4",
36699
- "requirement": "every response carries OpenWOP-Version, the 304 included"
36234
+ "requirement": null,
36235
+ "interpolated": true
36700
36236
  },
36701
36237
  {
36702
36238
  "section": "spec/v2/core/runs.md §Snapshot",
@@ -36709,6 +36245,58 @@
36709
36245
  }
36710
36246
  ]
36711
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
+ },
36712
36300
  {
36713
36301
  "id": "openwop.it.v2-safefetch-ssrf-refused.a-loopback-target-is-refused-egress-denied-ssrf-blocked-before-any-connection",
36714
36302
  "file": "v2-safefetch-ssrf-refused.test.ts",
@@ -36969,116 +36557,6 @@
36969
36557
  }
36970
36558
  ]
36971
36559
  },
36972
- {
36973
- "id": "openwop.requirement.self-hosted-runner.frame-schemas-compile",
36974
- "file": "v2-self-hosted-runner-frames-static.test.ts",
36975
- "line": 56,
36976
- "title": null,
36977
- "explicitId": "openwop.requirement.self-hosted-runner.frame-schemas-compile",
36978
- "citations": [
36979
- {
36980
- "section": "execution.md §selfHostedRunner",
36981
- "requirement": null,
36982
- "interpolated": true
36983
- }
36984
- ]
36985
- },
36986
- {
36987
- "id": "openwop.it.v2-self-hosted-runner-frames-static.accepts-a-model-frame-and-a-tool-frame",
36988
- "file": "v2-self-hosted-runner-frames-static.test.ts",
36989
- "line": 65,
36990
- "title": "accepts a model frame and a tool frame",
36991
- "explicitId": "openwop.requirement.self-hosted-runner.dispatch-frame-shape",
36992
- "citations": [
36993
- {
36994
- "section": "execution.md §selfHostedRunner",
36995
- "requirement": null,
36996
- "interpolated": true
36997
- }
36998
- ]
36999
- },
37000
- {
37001
- "id": "openwop.it.v2-self-hosted-runner-frames-static.rejects-s",
37002
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37003
- "line": 72,
37004
- "title": "rejects %s",
37005
- "explicitId": "openwop.requirement.self-hosted-runner.dispatch-frame-shape",
37006
- "citations": [
37007
- {
37008
- "section": "execution.md §selfHostedRunner",
37009
- "requirement": null,
37010
- "interpolated": true
37011
- }
37012
- ]
37013
- },
37014
- {
37015
- "id": "openwop.it.v2-self-hosted-runner-frames-static.accepts-a-result-frame",
37016
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37017
- "line": 89,
37018
- "title": "accepts a result frame",
37019
- "explicitId": "openwop.requirement.self-hosted-runner.result-frame-shape",
37020
- "citations": [
37021
- {
37022
- "section": "execution.md §selfHostedRunner",
37023
- "requirement": null,
37024
- "interpolated": true
37025
- }
37026
- ]
37027
- },
37028
- {
37029
- "id": "openwop.it.v2-self-hosted-runner-frames-static.rejects-a-result-frame-without-output",
37030
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37031
- "line": 94,
37032
- "title": "rejects a result frame without output",
37033
- "explicitId": "openwop.requirement.self-hosted-runner.result-frame-shape",
37034
- "citations": [
37035
- {
37036
- "section": "execution.md §selfHostedRunner",
37037
- "requirement": "a result frame without output MUST be rejected"
37038
- }
37039
- ]
37040
- },
37041
- {
37042
- "id": "openwop.it.v2-self-hosted-runner-frames-static.a-s-with-an-extra-credential-named-field-is-rejected",
37043
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37044
- "line": 100,
37045
- "title": "a %s with an extra credential-named field is rejected",
37046
- "explicitId": "openwop.requirement.self-hosted-runner.frames-closed",
37047
- "citations": [
37048
- {
37049
- "section": "execution.md §selfHostedRunner",
37050
- "requirement": null,
37051
- "interpolated": true
37052
- }
37053
- ]
37054
- },
37055
- {
37056
- "id": "openwop.it.v2-self-hosted-runner-frames-static.accepts-a-registration",
37057
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37058
- "line": 113,
37059
- "title": "accepts a registration",
37060
- "explicitId": "openwop.requirement.self-hosted-runner.registration-shape",
37061
- "citations": [
37062
- {
37063
- "section": "execution.md §selfHostedRunner",
37064
- "requirement": null,
37065
- "interpolated": true
37066
- }
37067
- ]
37068
- },
37069
- {
37070
- "id": "openwop.it.v2-self-hosted-runner-frames-static.rejects-a-registration-without-subject",
37071
- "file": "v2-self-hosted-runner-frames-static.test.ts",
37072
- "line": 118,
37073
- "title": "rejects a registration without subject",
37074
- "explicitId": "openwop.requirement.self-hosted-runner.registration-shape",
37075
- "citations": [
37076
- {
37077
- "section": "execution.md §selfHostedRunner",
37078
- "requirement": "a registration without its owning subject MUST be rejected"
37079
- }
37080
- ]
37081
- },
37082
36560
  {
37083
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",
37084
36562
  "file": "v2-sse-last-event-id-cursor.test.ts",
@@ -46310,6 +45788,99 @@
46310
45788
  }
46311
45789
  ]
46312
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
+ },
46313
45884
  {
46314
45885
  "id": "openwop.it.v2-alias-covers-reword.the-corpus-gate-script-exits-0",
46315
45886
  "file": "v2-alias-covers-reword.test.ts",
@@ -46324,6 +45895,109 @@
46324
45895
  }
46325
45896
  ]
46326
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
+ },
46327
46001
  {
46328
46002
  "id": "openwop.it.v2-bundle-signature-attributable.the-v2-discovery-root-publishes-signingkeys-the-surface-the-rfc-named",
46329
46003
  "file": "v2-bundle-signature-attributable.test.ts",
@@ -46757,6 +46431,67 @@
46757
46431
  }
46758
46432
  ]
46759
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
+ },
46760
46495
  {
46761
46496
  "id": "openwop.it.v2-eos-clock.the-clock-file-is-current-with-the-matrix-and-the-public-history",
46762
46497
  "file": "v2-eos-clock.test.ts",
@@ -46985,6 +46720,144 @@
46985
46720
  }
46986
46721
  ]
46987
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
+ },
46988
46861
  {
46989
46862
  "id": "openwop.it.v2-externally-gated-never-stable.the-corpus-gate-script-exits-0",
46990
46863
  "file": "v2-externally-gated-never-stable.test.ts",
@@ -47138,6 +47011,74 @@
47138
47011
  }
47139
47012
  ]
47140
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
+ },
47141
47082
  {
47142
47083
  "id": "openwop.it.v2-normative-home-gate.a-refused-home-class-is-refused-by-name",
47143
47084
  "file": "v2-normative-home-gate.test.ts",
@@ -47375,6 +47316,90 @@
47375
47316
  }
47376
47317
  ]
47377
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
+ },
47378
47403
  {
47379
47404
  "id": "openwop.it.v2-push-credential-coherent.the-push-credential-exception-is-stated-wherever-the-rule-it-excepts-is-read-and",
47380
47405
  "file": "v2-push-credential-coherent.test.ts",
@@ -47635,6 +47660,116 @@
47635
47660
  }
47636
47661
  ]
47637
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
+ },
47638
47773
  {
47639
47774
  "id": "openwop.it.v2-spec-artifacts-digest.the-corpus-gate-script-exits-0",
47640
47775
  "file": "v2-spec-artifacts-digest.test.ts",