@openwop/openwop-conformance 2.45.14 → 2.45.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/README.md +2 -2
- package/dist/spec-artifacts.lock.json +2 -2
- package/package.json +2 -2
- package/requirements.json +2668 -4
- package/scenario-majors.json +164 -2
- package/schemas/CORPUS-STAMP.json +13 -13
- package/src/lib/artifact-schema-url-witness.ts +83 -0
- package/src/lib/backpressure-witness.ts +2 -2
- package/src/lib/budget-witness.ts +3 -3
- package/src/lib/dispatch-witness.ts +212 -0
- package/src/lib/envelope-schema-static.ts +166 -0
- package/src/lib/exhaustion-facet-witness.ts +1 -1
- package/src/lib/family-advert-witness.ts +411 -0
- package/src/lib/fixture-run-observer.ts +97 -0
- package/src/lib/i18n-double.ts +99 -0
- package/src/lib/i18n-negotiation-witness.ts +173 -0
- package/src/lib/localized-content-witness.ts +49 -0
- package/src/lib/model-capability-insufficient-witness.ts +121 -0
- package/src/lib/prompt-double.ts +217 -0
- package/src/lib/prompt-events-witness.ts +211 -0
- package/src/lib/prompt-library-witness.ts +406 -0
- package/src/lib/provider-usage-witness.ts +63 -0
- package/src/lib/run-bounds-witness.ts +111 -0
- package/src/lib/run-graph-double.ts +144 -0
- package/src/lib/scratch-host.ts +4 -1
- package/src/lib/subworkflow-witness.ts +192 -0
- package/src/lib/table-schema-witness.ts +3 -1
- package/src/scenarios/v2-agent-runtime-advertisement.test.ts +51 -0
- package/src/scenarios/v2-ai-envelope-advertisement.test.ts +43 -0
- package/src/scenarios/v2-ai-envelope-shape-static.test.ts +93 -0
- package/src/scenarios/v2-ai-providers-advertisement.test.ts +94 -0
- package/src/scenarios/v2-artifact-created-static.test.ts +92 -0
- package/src/scenarios/v2-artifact-type-schema-url.test.ts +44 -0
- package/src/scenarios/v2-artifact-types-advertisement.test.ts +64 -0
- package/src/scenarios/v2-authorization-advertisement.test.ts +66 -0
- package/src/scenarios/v2-channel-presence-advertisement.test.ts +41 -0
- package/src/scenarios/v2-conversation-turn-model-provenance-advertisement.test.ts +41 -0
- package/src/scenarios/v2-conversation-turn-model-provenance.test.ts +110 -0
- package/src/scenarios/v2-credentials-advertisement.test.ts +66 -0
- package/src/scenarios/v2-data-residency-admission.test.ts +98 -0
- package/src/scenarios/v2-data-residency-advertisement.test.ts +52 -0
- package/src/scenarios/v2-dead-letter-advertisement.test.ts +54 -0
- package/src/scenarios/v2-dispatch-input-mapping.test.ts +70 -0
- package/src/scenarios/v2-dispatch-loop.test.ts +80 -0
- package/src/scenarios/v2-envelope-contracts-advertisement.test.ts +40 -0
- package/src/scenarios/v2-envelope-reasoning-shape.test.ts +81 -0
- package/src/scenarios/v2-envelope-tier-one-subset-static.test.ts +77 -0
- package/src/scenarios/v2-envelope-variant-discriminator-static.test.ts +57 -0
- package/src/scenarios/v2-envelopes-advertisement.test.ts +85 -0
- package/src/scenarios/v2-export-bundle-static.test.ts +108 -0
- package/src/scenarios/v2-i18n-negotiation.test.ts +91 -0
- package/src/scenarios/v2-limits-envelope-caps-advertisement.test.ts +61 -0
- package/src/scenarios/v2-localized-content-delivery.test.ts +136 -0
- package/src/scenarios/v2-media-inline-cap-static.test.ts +59 -0
- package/src/scenarios/v2-model-capabilities-advertisement.test.ts +61 -0
- package/src/scenarios/v2-model-capability-insufficient.test.ts +63 -0
- package/src/scenarios/v2-multi-party-conversation-advertisement.test.ts +52 -0
- package/src/scenarios/v2-node-pack-runtimes-advertisement.test.ts +52 -0
- package/src/scenarios/v2-nondeterminism-policy-advertisement.test.ts +41 -0
- package/src/scenarios/v2-portability-advertisement.test.ts +63 -0
- package/src/scenarios/v2-prompt-all-four-kinds-events.test.ts +69 -0
- package/src/scenarios/v2-prompt-end-to-end-events.test.ts +71 -0
- package/src/scenarios/v2-prompt-library-advertisement.test.ts +40 -0
- package/src/scenarios/v2-prompt-list-and-fetch.test.ts +103 -0
- package/src/scenarios/v2-prompt-mutable-lifecycle.test.ts +130 -0
- package/src/scenarios/v2-prompt-pack-install.test.ts +78 -0
- package/src/scenarios/v2-prompt-render-deterministic.test.ts +87 -0
- package/src/scenarios/v2-prompt-resolution-chain-event.test.ts +46 -0
- package/src/scenarios/v2-prompt-template-shape.test.ts +112 -0
- package/src/scenarios/v2-provider-usage-advertisement.test.ts +61 -0
- package/src/scenarios/v2-provider-usage-emission.test.ts +50 -0
- package/src/scenarios/v2-provider-usage-payload-static.test.ts +92 -0
- package/src/scenarios/v2-purpose-propagation-advertisement.test.ts +52 -0
- package/src/scenarios/v2-run-execution-bounds.test.ts +67 -0
- package/src/scenarios/v2-scheduling-advertisement.test.ts +55 -0
- package/src/scenarios/v2-self-hosted-runner-advertisement.test.ts +52 -0
- package/src/scenarios/v2-self-hosted-runner-frames-static.test.ts +121 -0
- package/src/scenarios/v2-sub-workflow-advertisement.test.ts +53 -0
- package/src/scenarios/v2-subworkflow-input-mapping.test.ts +74 -0
- package/src/scenarios/v2-subworkflow-linkage.test.ts +76 -0
- package/src/scenarios/v2-ui-plugins-advertisement.test.ts +85 -0
package/requirements.json
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"$comment": "GENERATED by conformance/scripts/generate-requirement-registry.mjs — do not edit. One record per it()/test() in src/scenarios. Ids: openwop.it.<file-stem>.<title-slug>[~n] (src/lib/requirement-ids.ts). A record with id null has an interpolated title; its run-time row is keyed by the rendered title and maps here by file+line only. Renamed ids need a row in requirement-aliases.json.",
|
|
3
3
|
"generatedFrom": "src/scenarios/*.test.ts",
|
|
4
4
|
"counts": {
|
|
5
|
-
"files":
|
|
6
|
-
"tests":
|
|
7
|
-
"withStableId":
|
|
5
|
+
"files": 724,
|
|
6
|
+
"tests": 2745,
|
|
7
|
+
"withStableId": 2745,
|
|
8
8
|
"interpolatedTitles": 0,
|
|
9
|
-
"explicitIds":
|
|
9
|
+
"explicitIds": 2611
|
|
10
10
|
},
|
|
11
11
|
"records": [
|
|
12
12
|
{
|
|
@@ -28252,6 +28252,211 @@
|
|
|
28252
28252
|
}
|
|
28253
28253
|
]
|
|
28254
28254
|
},
|
|
28255
|
+
{
|
|
28256
|
+
"id": "openwop.it.v2-agent-runtime-advertisement.the-agentruntime-record-validates-against-its-capabilities-schema-seat",
|
|
28257
|
+
"file": "v2-agent-runtime-advertisement.test.ts",
|
|
28258
|
+
"line": 34,
|
|
28259
|
+
"title": "the agentRuntime record validates against its capabilities-schema seat",
|
|
28260
|
+
"explicitId": "openwop.requirement.agent-runtime.advert-record-schema",
|
|
28261
|
+
"citations": [
|
|
28262
|
+
{
|
|
28263
|
+
"section": null,
|
|
28264
|
+
"requirement": null,
|
|
28265
|
+
"interpolated": true
|
|
28266
|
+
}
|
|
28267
|
+
]
|
|
28268
|
+
},
|
|
28269
|
+
{
|
|
28270
|
+
"id": "openwop.it.v2-agent-runtime-advertisement.advertising-agentruntime-also-advertises-agents-manifestruntime",
|
|
28271
|
+
"file": "v2-agent-runtime-advertisement.test.ts",
|
|
28272
|
+
"line": 43,
|
|
28273
|
+
"title": "advertising agentRuntime also advertises agents.manifestRuntime",
|
|
28274
|
+
"explicitId": "openwop.requirement.agent-runtime.implies-manifest-runtime",
|
|
28275
|
+
"citations": [
|
|
28276
|
+
{
|
|
28277
|
+
"section": null,
|
|
28278
|
+
"requirement": null,
|
|
28279
|
+
"interpolated": true
|
|
28280
|
+
}
|
|
28281
|
+
]
|
|
28282
|
+
},
|
|
28283
|
+
{
|
|
28284
|
+
"id": "openwop.it.v2-ai-envelope-advertisement.the-aienvelope-record-validates-against-its-capabilities-schema-seat",
|
|
28285
|
+
"file": "v2-ai-envelope-advertisement.test.ts",
|
|
28286
|
+
"line": 35,
|
|
28287
|
+
"title": "the aiEnvelope record validates against its capabilities-schema seat",
|
|
28288
|
+
"explicitId": "openwop.requirement.ai-envelope.advert-record-schema",
|
|
28289
|
+
"citations": [
|
|
28290
|
+
{
|
|
28291
|
+
"section": null,
|
|
28292
|
+
"requirement": null,
|
|
28293
|
+
"interpolated": true
|
|
28294
|
+
}
|
|
28295
|
+
]
|
|
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
|
+
{
|
|
28391
|
+
"id": "openwop.it.v2-ai-providers-advertisement.the-aiproviders-record-validates-against-its-capabilities-schema-seat",
|
|
28392
|
+
"file": "v2-ai-providers-advertisement.test.ts",
|
|
28393
|
+
"line": 55,
|
|
28394
|
+
"title": "the aiProviders record validates against its capabilities-schema seat",
|
|
28395
|
+
"explicitId": "openwop.requirement.ai-providers.advert-record-schema",
|
|
28396
|
+
"citations": [
|
|
28397
|
+
{
|
|
28398
|
+
"section": null,
|
|
28399
|
+
"requirement": null,
|
|
28400
|
+
"interpolated": true
|
|
28401
|
+
}
|
|
28402
|
+
]
|
|
28403
|
+
},
|
|
28404
|
+
{
|
|
28405
|
+
"id": "openwop.it.v2-ai-providers-advertisement.aiproviders-selfhosted-is-one-boolean",
|
|
28406
|
+
"file": "v2-ai-providers-advertisement.test.ts",
|
|
28407
|
+
"line": 63,
|
|
28408
|
+
"title": "aiProviders.selfHosted is one boolean",
|
|
28409
|
+
"explicitId": "openwop.requirement.ai-providers.self-hosted-boolean",
|
|
28410
|
+
"citations": [
|
|
28411
|
+
{
|
|
28412
|
+
"section": null,
|
|
28413
|
+
"requirement": null,
|
|
28414
|
+
"interpolated": true
|
|
28415
|
+
}
|
|
28416
|
+
]
|
|
28417
|
+
},
|
|
28418
|
+
{
|
|
28419
|
+
"id": "openwop.it.v2-ai-providers-advertisement.aiproviders-authmodes-is-one-flat-list-of-modes",
|
|
28420
|
+
"file": "v2-ai-providers-advertisement.test.ts",
|
|
28421
|
+
"line": 71,
|
|
28422
|
+
"title": "aiProviders.authModes is one flat list of modes",
|
|
28423
|
+
"explicitId": "openwop.requirement.ai-providers.auth-modes-flat-list",
|
|
28424
|
+
"citations": [
|
|
28425
|
+
{
|
|
28426
|
+
"section": null,
|
|
28427
|
+
"requirement": null,
|
|
28428
|
+
"interpolated": true
|
|
28429
|
+
}
|
|
28430
|
+
]
|
|
28431
|
+
},
|
|
28432
|
+
{
|
|
28433
|
+
"id": "openwop.it.v2-ai-providers-advertisement.aiproviders-maxinlinemediabytes-is-an-integer-of-at-least-1",
|
|
28434
|
+
"file": "v2-ai-providers-advertisement.test.ts",
|
|
28435
|
+
"line": 79,
|
|
28436
|
+
"title": "aiProviders.maxInlineMediaBytes is an integer of at least 1",
|
|
28437
|
+
"explicitId": "openwop.requirement.ai-providers.max-inline-media-bytes",
|
|
28438
|
+
"citations": [
|
|
28439
|
+
{
|
|
28440
|
+
"section": null,
|
|
28441
|
+
"requirement": null,
|
|
28442
|
+
"interpolated": true
|
|
28443
|
+
}
|
|
28444
|
+
]
|
|
28445
|
+
},
|
|
28446
|
+
{
|
|
28447
|
+
"id": "openwop.it.v2-ai-providers-advertisement.aiproviders-promptprefixcache-is-one-boolean",
|
|
28448
|
+
"file": "v2-ai-providers-advertisement.test.ts",
|
|
28449
|
+
"line": 87,
|
|
28450
|
+
"title": "aiProviders.promptPrefixCache is one boolean",
|
|
28451
|
+
"explicitId": "openwop.requirement.ai-providers.prompt-prefix-cache-boolean",
|
|
28452
|
+
"citations": [
|
|
28453
|
+
{
|
|
28454
|
+
"section": null,
|
|
28455
|
+
"requirement": null,
|
|
28456
|
+
"interpolated": true
|
|
28457
|
+
}
|
|
28458
|
+
]
|
|
28459
|
+
},
|
|
28255
28460
|
{
|
|
28256
28461
|
"id": "openwop.it.v2-approval-reject-disposition.a-rejected-gate-with-no-routing-edge-fails-the-run-with-approval-rejected",
|
|
28257
28462
|
"file": "v2-approval-reject-disposition.test.ts",
|
|
@@ -28571,6 +28776,165 @@
|
|
|
28571
28776
|
}
|
|
28572
28777
|
]
|
|
28573
28778
|
},
|
|
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
|
+
{
|
|
28883
|
+
"id": "openwop.it.v2-artifact-type-schema-url.every-host-registered-type-with-an-advertised-schemaversion-has-its-schema-serve",
|
|
28884
|
+
"file": "v2-artifact-type-schema-url.test.ts",
|
|
28885
|
+
"line": 34,
|
|
28886
|
+
"title": "every host-registered type with an advertised schemaVersion has its schema served at {HostBase}/schemas/artifacts/{id}.schema.json",
|
|
28887
|
+
"explicitId": "openwop.requirement.artifact-types.host-registered-schema-served",
|
|
28888
|
+
"citations": [
|
|
28889
|
+
{
|
|
28890
|
+
"section": null,
|
|
28891
|
+
"requirement": null,
|
|
28892
|
+
"interpolated": true
|
|
28893
|
+
}
|
|
28894
|
+
]
|
|
28895
|
+
},
|
|
28896
|
+
{
|
|
28897
|
+
"id": "openwop.it.v2-artifact-types-advertisement.the-artifacttypes-record-validates-against-its-capabilities-schema-seat",
|
|
28898
|
+
"file": "v2-artifact-types-advertisement.test.ts",
|
|
28899
|
+
"line": 41,
|
|
28900
|
+
"title": "the artifactTypes record validates against its capabilities-schema seat",
|
|
28901
|
+
"explicitId": "openwop.requirement.artifact-types.advert-record-schema",
|
|
28902
|
+
"citations": [
|
|
28903
|
+
{
|
|
28904
|
+
"section": null,
|
|
28905
|
+
"requirement": null,
|
|
28906
|
+
"interpolated": true
|
|
28907
|
+
}
|
|
28908
|
+
]
|
|
28909
|
+
},
|
|
28910
|
+
{
|
|
28911
|
+
"id": "openwop.it.v2-artifact-types-advertisement.artifacttypes-store-render-and-export-are-well-formed",
|
|
28912
|
+
"file": "v2-artifact-types-advertisement.test.ts",
|
|
28913
|
+
"line": 49,
|
|
28914
|
+
"title": "artifactTypes.store, render and export are well-formed",
|
|
28915
|
+
"explicitId": "openwop.requirement.artifact-types.global-facets-shape",
|
|
28916
|
+
"citations": [
|
|
28917
|
+
{
|
|
28918
|
+
"section": null,
|
|
28919
|
+
"requirement": null,
|
|
28920
|
+
"interpolated": true
|
|
28921
|
+
}
|
|
28922
|
+
]
|
|
28923
|
+
},
|
|
28924
|
+
{
|
|
28925
|
+
"id": "openwop.it.v2-artifact-types-advertisement.every-artifacttypes-types-entry-validates-against-its-seat",
|
|
28926
|
+
"file": "v2-artifact-types-advertisement.test.ts",
|
|
28927
|
+
"line": 57,
|
|
28928
|
+
"title": "every artifactTypes.types entry validates against its seat",
|
|
28929
|
+
"explicitId": "openwop.requirement.artifact-types.per-type-entry-shape",
|
|
28930
|
+
"citations": [
|
|
28931
|
+
{
|
|
28932
|
+
"section": null,
|
|
28933
|
+
"requirement": null,
|
|
28934
|
+
"interpolated": true
|
|
28935
|
+
}
|
|
28936
|
+
]
|
|
28937
|
+
},
|
|
28574
28938
|
{
|
|
28575
28939
|
"id": "openwop.it.v2-assurance-downgrade-audited.an-identity-below-the-lane-floor-is-refused-with-sender-constraint-missing",
|
|
28576
28940
|
"file": "v2-assurance-downgrade-audited.test.ts",
|
|
@@ -28676,6 +29040,48 @@
|
|
|
28676
29040
|
}
|
|
28677
29041
|
]
|
|
28678
29042
|
},
|
|
29043
|
+
{
|
|
29044
|
+
"id": "openwop.it.v2-authorization-advertisement.the-authorization-record-validates-against-its-capabilities-schema-seat",
|
|
29045
|
+
"file": "v2-authorization-advertisement.test.ts",
|
|
29046
|
+
"line": 40,
|
|
29047
|
+
"title": "the authorization record validates against its capabilities-schema seat",
|
|
29048
|
+
"explicitId": "openwop.requirement.authorization.advert-record-schema",
|
|
29049
|
+
"citations": [
|
|
29050
|
+
{
|
|
29051
|
+
"section": null,
|
|
29052
|
+
"requirement": null,
|
|
29053
|
+
"interpolated": true
|
|
29054
|
+
}
|
|
29055
|
+
]
|
|
29056
|
+
},
|
|
29057
|
+
{
|
|
29058
|
+
"id": "openwop.it.v2-authorization-advertisement.authorization-failclosed-is-true-when-present",
|
|
29059
|
+
"file": "v2-authorization-advertisement.test.ts",
|
|
29060
|
+
"line": 49,
|
|
29061
|
+
"title": "authorization.failClosed is true when present",
|
|
29062
|
+
"explicitId": "openwop.requirement.authorization.fail-closed-true",
|
|
29063
|
+
"citations": [
|
|
29064
|
+
{
|
|
29065
|
+
"section": null,
|
|
29066
|
+
"requirement": null,
|
|
29067
|
+
"interpolated": true
|
|
29068
|
+
}
|
|
29069
|
+
]
|
|
29070
|
+
},
|
|
29071
|
+
{
|
|
29072
|
+
"id": "openwop.it.v2-authorization-advertisement.every-authorization-roles-entry-has-a-non-empty-role-and-a-scopes-list",
|
|
29073
|
+
"file": "v2-authorization-advertisement.test.ts",
|
|
29074
|
+
"line": 58,
|
|
29075
|
+
"title": "every authorization.roles entry has a non-empty role and a scopes list",
|
|
29076
|
+
"explicitId": "openwop.requirement.authorization.roles-shape",
|
|
29077
|
+
"citations": [
|
|
29078
|
+
{
|
|
29079
|
+
"section": null,
|
|
29080
|
+
"requirement": null,
|
|
29081
|
+
"interpolated": true
|
|
29082
|
+
}
|
|
29083
|
+
]
|
|
29084
|
+
},
|
|
28679
29085
|
{
|
|
28680
29086
|
"id": "openwop.it.v2-bound-id-kinds.subscriptionid-post-webhooks-mints-a-bound-webhookid-the-projected-segment-is-ac",
|
|
28681
29087
|
"file": "v2-bound-id-kinds.test.ts",
|
|
@@ -29176,6 +29582,20 @@
|
|
|
29176
29582
|
}
|
|
29177
29583
|
]
|
|
29178
29584
|
},
|
|
29585
|
+
{
|
|
29586
|
+
"id": "openwop.it.v2-channel-presence-advertisement.the-channelpresence-record-validates-against-its-capabilities-schema-seat",
|
|
29587
|
+
"file": "v2-channel-presence-advertisement.test.ts",
|
|
29588
|
+
"line": 33,
|
|
29589
|
+
"title": "the channelPresence record validates against its capabilities-schema seat",
|
|
29590
|
+
"explicitId": "openwop.requirement.channel-presence.advert-record-schema",
|
|
29591
|
+
"citations": [
|
|
29592
|
+
{
|
|
29593
|
+
"section": null,
|
|
29594
|
+
"requirement": null,
|
|
29595
|
+
"interpolated": true
|
|
29596
|
+
}
|
|
29597
|
+
]
|
|
29598
|
+
},
|
|
29179
29599
|
{
|
|
29180
29600
|
"id": "openwop.it.v2-client-version-header.a-client-at-the-floor-is-not-below-it-equal-on-major-minor-the-patch-never-decid",
|
|
29181
29601
|
"file": "v2-client-version-header.test.ts",
|
|
@@ -29450,6 +29870,48 @@
|
|
|
29450
29870
|
}
|
|
29451
29871
|
]
|
|
29452
29872
|
},
|
|
29873
|
+
{
|
|
29874
|
+
"id": "openwop.it.v2-conversation-turn-model-provenance-advertisement.the-conversationturnmodelprovenance-record-validates-against-its-capabilities-sc",
|
|
29875
|
+
"file": "v2-conversation-turn-model-provenance-advertisement.test.ts",
|
|
29876
|
+
"line": 33,
|
|
29877
|
+
"title": "the conversationTurnModelProvenance record validates against its capabilities-schema seat",
|
|
29878
|
+
"explicitId": "openwop.requirement.conversation-turn-model-provenance.advert-record-schema",
|
|
29879
|
+
"citations": [
|
|
29880
|
+
{
|
|
29881
|
+
"section": null,
|
|
29882
|
+
"requirement": null,
|
|
29883
|
+
"interpolated": true
|
|
29884
|
+
}
|
|
29885
|
+
]
|
|
29886
|
+
},
|
|
29887
|
+
{
|
|
29888
|
+
"id": "openwop.it.v2-conversation-turn-model-provenance.a-host-that-stamps-agent-model-on-a-turn-advertises-conversationturnmodelprovena",
|
|
29889
|
+
"file": "v2-conversation-turn-model-provenance.test.ts",
|
|
29890
|
+
"line": 90,
|
|
29891
|
+
"title": "a host that stamps agent.model on a turn advertises conversationTurnModelProvenance",
|
|
29892
|
+
"explicitId": "openwop.requirement.conversation-turn-model-provenance.stamp-requires-advert",
|
|
29893
|
+
"citations": [
|
|
29894
|
+
{
|
|
29895
|
+
"section": "conversation.md §conversationTurnModelProvenance",
|
|
29896
|
+
"requirement": null,
|
|
29897
|
+
"interpolated": true
|
|
29898
|
+
}
|
|
29899
|
+
]
|
|
29900
|
+
},
|
|
29901
|
+
{
|
|
29902
|
+
"id": "openwop.it.v2-conversation-turn-model-provenance.every-agent-model-stamp-carries-provider-and-model-identifiers-only",
|
|
29903
|
+
"file": "v2-conversation-turn-model-provenance.test.ts",
|
|
29904
|
+
"line": 99,
|
|
29905
|
+
"title": "every agent.model stamp carries provider and model identifiers only",
|
|
29906
|
+
"explicitId": "openwop.requirement.conversation-turn-model-provenance.stamp-closed",
|
|
29907
|
+
"citations": [
|
|
29908
|
+
{
|
|
29909
|
+
"section": "conversation.md §conversationTurnModelProvenance",
|
|
29910
|
+
"requirement": null,
|
|
29911
|
+
"interpolated": true
|
|
29912
|
+
}
|
|
29913
|
+
]
|
|
29914
|
+
},
|
|
29453
29915
|
{
|
|
29454
29916
|
"id": "openwop.it.v2-conversation-turn-parts.every-conversation-exchanged-turn-carrying-parts-validates-against-the-v2-turn-d",
|
|
29455
29917
|
"file": "v2-conversation-turn-parts.test.ts",
|
|
@@ -29740,6 +30202,186 @@
|
|
|
29740
30202
|
}
|
|
29741
30203
|
]
|
|
29742
30204
|
},
|
|
30205
|
+
{
|
|
30206
|
+
"id": "openwop.it.v2-credentials-advertisement.the-credentials-record-validates-against-its-capabilities-schema-seat",
|
|
30207
|
+
"file": "v2-credentials-advertisement.test.ts",
|
|
30208
|
+
"line": 40,
|
|
30209
|
+
"title": "the credentials record validates against its capabilities-schema seat",
|
|
30210
|
+
"explicitId": "openwop.requirement.credentials.advert-record-schema",
|
|
30211
|
+
"citations": [
|
|
30212
|
+
{
|
|
30213
|
+
"section": null,
|
|
30214
|
+
"requirement": null,
|
|
30215
|
+
"interpolated": true
|
|
30216
|
+
}
|
|
30217
|
+
]
|
|
30218
|
+
},
|
|
30219
|
+
{
|
|
30220
|
+
"id": "openwop.it.v2-credentials-advertisement.credentials-scopes-is-a-subset-of-user-workspace-tenant",
|
|
30221
|
+
"file": "v2-credentials-advertisement.test.ts",
|
|
30222
|
+
"line": 49,
|
|
30223
|
+
"title": "credentials.scopes is a subset of user, workspace, tenant",
|
|
30224
|
+
"explicitId": "openwop.requirement.credentials.scopes-subset",
|
|
30225
|
+
"citations": [
|
|
30226
|
+
{
|
|
30227
|
+
"section": null,
|
|
30228
|
+
"requirement": null,
|
|
30229
|
+
"interpolated": true
|
|
30230
|
+
}
|
|
30231
|
+
]
|
|
30232
|
+
},
|
|
30233
|
+
{
|
|
30234
|
+
"id": "openwop.it.v2-credentials-advertisement.credentials-rotation-is-none-or-two-key-overlap",
|
|
30235
|
+
"file": "v2-credentials-advertisement.test.ts",
|
|
30236
|
+
"line": 58,
|
|
30237
|
+
"title": "credentials.rotation is none or two-key-overlap",
|
|
30238
|
+
"explicitId": "openwop.requirement.credentials.rotation-value",
|
|
30239
|
+
"citations": [
|
|
30240
|
+
{
|
|
30241
|
+
"section": null,
|
|
30242
|
+
"requirement": null,
|
|
30243
|
+
"interpolated": true
|
|
30244
|
+
}
|
|
30245
|
+
]
|
|
30246
|
+
},
|
|
30247
|
+
{
|
|
30248
|
+
"id": "openwop.it.v2-data-residency-admission.a-region-outside-dataresidency-regions-answers-422-residency-unavailable-and-cre",
|
|
30249
|
+
"file": "v2-data-residency-admission.test.ts",
|
|
30250
|
+
"line": 66,
|
|
30251
|
+
"title": "a region outside dataResidency.regions answers 422 residency_unavailable and creates no run",
|
|
30252
|
+
"explicitId": "openwop.requirement.data-residency.reject-unadvertised-region",
|
|
30253
|
+
"citations": [
|
|
30254
|
+
{
|
|
30255
|
+
"section": "spec/v2/core/runs.md §dataResidency",
|
|
30256
|
+
"requirement": null,
|
|
30257
|
+
"interpolated": true
|
|
30258
|
+
},
|
|
30259
|
+
{
|
|
30260
|
+
"section": "spec/v2/core/runs.md §dataResidency",
|
|
30261
|
+
"requirement": "the refusal MUST carry the registered code residency_unavailable"
|
|
30262
|
+
},
|
|
30263
|
+
{
|
|
30264
|
+
"section": "spec/v2/core/runs.md §dataResidency",
|
|
30265
|
+
"requirement": null,
|
|
30266
|
+
"interpolated": true
|
|
30267
|
+
}
|
|
30268
|
+
]
|
|
30269
|
+
},
|
|
30270
|
+
{
|
|
30271
|
+
"id": "openwop.it.v2-data-residency-admission.a-region-inside-dataresidency-regions-is-accepted",
|
|
30272
|
+
"file": "v2-data-residency-admission.test.ts",
|
|
30273
|
+
"line": 82,
|
|
30274
|
+
"title": "a region inside dataResidency.regions is accepted",
|
|
30275
|
+
"explicitId": "openwop.requirement.data-residency.accept-advertised-region",
|
|
30276
|
+
"citations": [
|
|
30277
|
+
{
|
|
30278
|
+
"section": "spec/v2/core/runs.md §dataResidency",
|
|
30279
|
+
"requirement": null,
|
|
30280
|
+
"interpolated": true
|
|
30281
|
+
},
|
|
30282
|
+
{
|
|
30283
|
+
"section": "spec/v2/core/runs.md §dataResidency",
|
|
30284
|
+
"requirement": null,
|
|
30285
|
+
"interpolated": true
|
|
30286
|
+
}
|
|
30287
|
+
]
|
|
30288
|
+
},
|
|
30289
|
+
{
|
|
30290
|
+
"id": "openwop.it.v2-data-residency-advertisement.the-dataresidency-record-validates-against-its-capabilities-schema-seat",
|
|
30291
|
+
"file": "v2-data-residency-advertisement.test.ts",
|
|
30292
|
+
"line": 35,
|
|
30293
|
+
"title": "the dataResidency record validates against its capabilities-schema seat",
|
|
30294
|
+
"explicitId": "openwop.requirement.data-residency.advert-record-schema",
|
|
30295
|
+
"citations": [
|
|
30296
|
+
{
|
|
30297
|
+
"section": null,
|
|
30298
|
+
"requirement": null,
|
|
30299
|
+
"interpolated": true
|
|
30300
|
+
}
|
|
30301
|
+
]
|
|
30302
|
+
},
|
|
30303
|
+
{
|
|
30304
|
+
"id": "openwop.it.v2-data-residency-advertisement.dataresidency-regions-holds-unique-non-empty-region-codes",
|
|
30305
|
+
"file": "v2-data-residency-advertisement.test.ts",
|
|
30306
|
+
"line": 44,
|
|
30307
|
+
"title": "dataResidency.regions holds unique non-empty region codes",
|
|
30308
|
+
"explicitId": "openwop.requirement.data-residency.regions-shape",
|
|
30309
|
+
"citations": [
|
|
30310
|
+
{
|
|
30311
|
+
"section": null,
|
|
30312
|
+
"requirement": null,
|
|
30313
|
+
"interpolated": true
|
|
30314
|
+
}
|
|
30315
|
+
]
|
|
30316
|
+
},
|
|
30317
|
+
{
|
|
30318
|
+
"id": "openwop.it.v2-dead-letter-advertisement.the-deadletter-record-validates-against-its-capabilities-schema-seat",
|
|
30319
|
+
"file": "v2-dead-letter-advertisement.test.ts",
|
|
30320
|
+
"line": 37,
|
|
30321
|
+
"title": "the deadLetter record validates against its capabilities-schema seat",
|
|
30322
|
+
"explicitId": "openwop.requirement.dead-letter.advert-record-schema",
|
|
30323
|
+
"citations": [
|
|
30324
|
+
{
|
|
30325
|
+
"section": null,
|
|
30326
|
+
"requirement": null,
|
|
30327
|
+
"interpolated": true
|
|
30328
|
+
}
|
|
30329
|
+
]
|
|
30330
|
+
},
|
|
30331
|
+
{
|
|
30332
|
+
"id": "openwop.it.v2-dead-letter-advertisement.deadletter-retentiondays-is-an-integer-of-at-least-1",
|
|
30333
|
+
"file": "v2-dead-letter-advertisement.test.ts",
|
|
30334
|
+
"line": 46,
|
|
30335
|
+
"title": "deadLetter.retentionDays is an integer of at least 1",
|
|
30336
|
+
"explicitId": "openwop.requirement.dead-letter.retention-days",
|
|
30337
|
+
"citations": [
|
|
30338
|
+
{
|
|
30339
|
+
"section": null,
|
|
30340
|
+
"requirement": null,
|
|
30341
|
+
"interpolated": true
|
|
30342
|
+
}
|
|
30343
|
+
]
|
|
30344
|
+
},
|
|
30345
|
+
{
|
|
30346
|
+
"id": "openwop.it.v2-dispatch-input-mapping.inputmapping-projects-the-parent-variable-into-the-dispatched-child-inputs",
|
|
30347
|
+
"file": "v2-dispatch-input-mapping.test.ts",
|
|
30348
|
+
"line": 59,
|
|
30349
|
+
"title": "inputMapping projects the parent variable into the dispatched child inputs",
|
|
30350
|
+
"explicitId": null,
|
|
30351
|
+
"citations": []
|
|
30352
|
+
},
|
|
30353
|
+
{
|
|
30354
|
+
"id": "openwop.it.v2-dispatch-input-mapping.an-unset-parent-variable-projects-to-undefined-the-child-input-is-absent-never-n",
|
|
30355
|
+
"file": "v2-dispatch-input-mapping.test.ts",
|
|
30356
|
+
"line": 65,
|
|
30357
|
+
"title": "an unset parent variable projects to undefined: the child input is absent, never null",
|
|
30358
|
+
"explicitId": null,
|
|
30359
|
+
"citations": []
|
|
30360
|
+
},
|
|
30361
|
+
{
|
|
30362
|
+
"id": "openwop.it.v2-dispatch-loop.each-turn-records-its-decision-and-terminate-completes-the-run",
|
|
30363
|
+
"file": "v2-dispatch-loop.test.ts",
|
|
30364
|
+
"line": 63,
|
|
30365
|
+
"title": "each turn records its decision and terminate completes the run",
|
|
30366
|
+
"explicitId": null,
|
|
30367
|
+
"citations": []
|
|
30368
|
+
},
|
|
30369
|
+
{
|
|
30370
|
+
"id": "openwop.it.v2-dispatch-loop.every-recorded-decision-is-well-formed-and-the-deciding-agent-never-changes",
|
|
30371
|
+
"file": "v2-dispatch-loop.test.ts",
|
|
30372
|
+
"line": 69,
|
|
30373
|
+
"title": "every recorded decision is well-formed and the deciding agent never changes",
|
|
30374
|
+
"explicitId": null,
|
|
30375
|
+
"citations": []
|
|
30376
|
+
},
|
|
30377
|
+
{
|
|
30378
|
+
"id": "openwop.it.v2-dispatch-loop.at-executionmodel-version-5-iteration-is-1-based-and-increments-by-exactly-1-per",
|
|
30379
|
+
"file": "v2-dispatch-loop.test.ts",
|
|
30380
|
+
"line": 75,
|
|
30381
|
+
"title": "at executionModel.version >= 5, iteration is 1-based and increments by exactly 1 per turn",
|
|
30382
|
+
"explicitId": null,
|
|
30383
|
+
"citations": []
|
|
30384
|
+
},
|
|
29743
30385
|
{
|
|
29744
30386
|
"id": "openwop.it.v2-dual-stack-negotiation.a-run-created-through-v1-runs-with-no-header-is-readable-through-runs-under-open",
|
|
29745
30387
|
"file": "v2-dual-stack-negotiation.test.ts",
|
|
@@ -30120,6 +30762,248 @@
|
|
|
30120
30762
|
}
|
|
30121
30763
|
]
|
|
30122
30764
|
},
|
|
30765
|
+
{
|
|
30766
|
+
"id": "openwop.it.v2-envelope-contracts-advertisement.the-envelopecontracts-record-validates-against-its-capabilities-schema-seat",
|
|
30767
|
+
"file": "v2-envelope-contracts-advertisement.test.ts",
|
|
30768
|
+
"line": 32,
|
|
30769
|
+
"title": "the envelopeContracts record validates against its capabilities-schema seat",
|
|
30770
|
+
"explicitId": "openwop.requirement.envelope-contracts.advert-record-schema",
|
|
30771
|
+
"citations": [
|
|
30772
|
+
{
|
|
30773
|
+
"section": null,
|
|
30774
|
+
"requirement": null,
|
|
30775
|
+
"interpolated": true
|
|
30776
|
+
}
|
|
30777
|
+
]
|
|
30778
|
+
},
|
|
30779
|
+
{
|
|
30780
|
+
"id": "openwop.requirement.envelopes.reasoning-declared-optional-string",
|
|
30781
|
+
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30782
|
+
"line": 45,
|
|
30783
|
+
"title": null,
|
|
30784
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-declared-optional-string",
|
|
30785
|
+
"citations": [
|
|
30786
|
+
{
|
|
30787
|
+
"section": "events.md §envelopes",
|
|
30788
|
+
"requirement": null,
|
|
30789
|
+
"interpolated": true
|
|
30790
|
+
},
|
|
30791
|
+
{
|
|
30792
|
+
"section": "events.md §envelopes",
|
|
30793
|
+
"requirement": null,
|
|
30794
|
+
"interpolated": true
|
|
30795
|
+
},
|
|
30796
|
+
{
|
|
30797
|
+
"section": "events.md §envelopes",
|
|
30798
|
+
"requirement": null,
|
|
30799
|
+
"interpolated": true
|
|
30800
|
+
}
|
|
30801
|
+
]
|
|
30802
|
+
},
|
|
30803
|
+
{
|
|
30804
|
+
"id": "openwop.it.v2-envelope-reasoning-shape.schema-response-does-not-declare-reasoning-a-side-channel-ack",
|
|
30805
|
+
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30806
|
+
"line": 55,
|
|
30807
|
+
"title": "schema.response does not declare reasoning (a side-channel ack)",
|
|
30808
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-omitted-from-schema-response",
|
|
30809
|
+
"citations": [
|
|
30810
|
+
{
|
|
30811
|
+
"section": "RFC 0030 §A",
|
|
30812
|
+
"requirement": "schemas/v2/envelopes/schema.response.schema.json MUST exist"
|
|
30813
|
+
},
|
|
30814
|
+
{
|
|
30815
|
+
"section": "RFC 0030 §A",
|
|
30816
|
+
"requirement": "schema.response MUST NOT declare reasoning"
|
|
30817
|
+
}
|
|
30818
|
+
]
|
|
30819
|
+
},
|
|
30820
|
+
{
|
|
30821
|
+
"id": "openwop.requirement.envelopes.reasoning-absent-accepted",
|
|
30822
|
+
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30823
|
+
"line": 67,
|
|
30824
|
+
"title": null,
|
|
30825
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-absent-accepted",
|
|
30826
|
+
"citations": [
|
|
30827
|
+
{
|
|
30828
|
+
"section": "events.md §envelopes",
|
|
30829
|
+
"requirement": null,
|
|
30830
|
+
"interpolated": true
|
|
30831
|
+
}
|
|
30832
|
+
]
|
|
30833
|
+
},
|
|
30834
|
+
{
|
|
30835
|
+
"id": "openwop.requirement.envelopes.reasoning-present-accepted",
|
|
30836
|
+
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30837
|
+
"line": 72,
|
|
30838
|
+
"title": null,
|
|
30839
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-present-accepted",
|
|
30840
|
+
"citations": [
|
|
30841
|
+
{
|
|
30842
|
+
"section": "events.md §envelopes",
|
|
30843
|
+
"requirement": null,
|
|
30844
|
+
"interpolated": true
|
|
30845
|
+
}
|
|
30846
|
+
]
|
|
30847
|
+
},
|
|
30848
|
+
{
|
|
30849
|
+
"id": "openwop.requirement.envelopes.reasoning-non-string-rejected",
|
|
30850
|
+
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30851
|
+
"line": 77,
|
|
30852
|
+
"title": null,
|
|
30853
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-non-string-rejected",
|
|
30854
|
+
"citations": [
|
|
30855
|
+
{
|
|
30856
|
+
"section": "events.md §envelopes",
|
|
30857
|
+
"requirement": null,
|
|
30858
|
+
"interpolated": true
|
|
30859
|
+
}
|
|
30860
|
+
]
|
|
30861
|
+
},
|
|
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
|
+
{
|
|
30882
|
+
"id": "openwop.it.v2-envelope-tier-one-subset-static.a-host-advertising-tieronesubsetcompliance-strict-has-advertised-kinds-whose-cor",
|
|
30883
|
+
"file": "v2-envelope-tier-one-subset-static.test.ts",
|
|
30884
|
+
"line": 56,
|
|
30885
|
+
"title": "a host advertising tierOneSubsetCompliance strict has advertised kinds whose corpus schemas satisfy the Tier-1 intersection",
|
|
30886
|
+
"explicitId": "openwop.requirement.envelopes.tier-one-strict-advertised-kinds",
|
|
30887
|
+
"citations": [
|
|
30888
|
+
{
|
|
30889
|
+
"section": "capabilities.schema.json §envelopes.tierOneSubsetCompliance",
|
|
30890
|
+
"requirement": null,
|
|
30891
|
+
"interpolated": true
|
|
30892
|
+
}
|
|
30893
|
+
]
|
|
30894
|
+
},
|
|
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
|
+
{
|
|
30938
|
+
"id": "openwop.it.v2-envelopes-advertisement.the-envelopes-record-validates-against-its-capabilities-schema-seat",
|
|
30939
|
+
"file": "v2-envelopes-advertisement.test.ts",
|
|
30940
|
+
"line": 46,
|
|
30941
|
+
"title": "the envelopes record validates against its capabilities-schema seat",
|
|
30942
|
+
"explicitId": "openwop.requirement.envelopes.advert-record-schema",
|
|
30943
|
+
"citations": [
|
|
30944
|
+
{
|
|
30945
|
+
"section": null,
|
|
30946
|
+
"requirement": null,
|
|
30947
|
+
"interpolated": true
|
|
30948
|
+
}
|
|
30949
|
+
]
|
|
30950
|
+
},
|
|
30951
|
+
{
|
|
30952
|
+
"id": "openwop.it.v2-envelopes-advertisement.envelopes-reasoning-promptdirective-is-mandatory-advisory-or-off",
|
|
30953
|
+
"file": "v2-envelopes-advertisement.test.ts",
|
|
30954
|
+
"line": 54,
|
|
30955
|
+
"title": "envelopes.reasoning.promptDirective is mandatory, advisory or off",
|
|
30956
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-advert-shape",
|
|
30957
|
+
"citations": [
|
|
30958
|
+
{
|
|
30959
|
+
"section": null,
|
|
30960
|
+
"requirement": null,
|
|
30961
|
+
"interpolated": true
|
|
30962
|
+
}
|
|
30963
|
+
]
|
|
30964
|
+
},
|
|
30965
|
+
{
|
|
30966
|
+
"id": "openwop.it.v2-envelopes-advertisement.envelopes-tieronesubsetcompliance-is-strict-warn-or-off",
|
|
30967
|
+
"file": "v2-envelopes-advertisement.test.ts",
|
|
30968
|
+
"line": 62,
|
|
30969
|
+
"title": "envelopes.tierOneSubsetCompliance is strict, warn or off",
|
|
30970
|
+
"explicitId": "openwop.requirement.envelopes.tier-one-subset-compliance-value",
|
|
30971
|
+
"citations": [
|
|
30972
|
+
{
|
|
30973
|
+
"section": null,
|
|
30974
|
+
"requirement": null,
|
|
30975
|
+
"interpolated": true
|
|
30976
|
+
}
|
|
30977
|
+
]
|
|
30978
|
+
},
|
|
30979
|
+
{
|
|
30980
|
+
"id": "openwop.it.v2-envelopes-advertisement.envelopes-reliability-events-lists-only-reliability-events-and-includes-retry-ex",
|
|
30981
|
+
"file": "v2-envelopes-advertisement.test.ts",
|
|
30982
|
+
"line": 70,
|
|
30983
|
+
"title": "envelopes.reliability.events lists only reliability events and includes retry-exhausted and refusal",
|
|
30984
|
+
"explicitId": "openwop.requirement.envelopes.reliability-events-advert",
|
|
30985
|
+
"citations": [
|
|
30986
|
+
{
|
|
30987
|
+
"section": null,
|
|
30988
|
+
"requirement": null,
|
|
30989
|
+
"interpolated": true
|
|
30990
|
+
}
|
|
30991
|
+
]
|
|
30992
|
+
},
|
|
30993
|
+
{
|
|
30994
|
+
"id": "openwop.it.v2-envelopes-advertisement.envelopes-reliability-completion-distinguishestruncation-is-a-boolean",
|
|
30995
|
+
"file": "v2-envelopes-advertisement.test.ts",
|
|
30996
|
+
"line": 78,
|
|
30997
|
+
"title": "envelopes.reliability.completion.distinguishesTruncation is a boolean",
|
|
30998
|
+
"explicitId": "openwop.requirement.envelopes.completion-advert-shape",
|
|
30999
|
+
"citations": [
|
|
31000
|
+
{
|
|
31001
|
+
"section": null,
|
|
31002
|
+
"requirement": null,
|
|
31003
|
+
"interpolated": true
|
|
31004
|
+
}
|
|
31005
|
+
]
|
|
31006
|
+
},
|
|
30123
31007
|
{
|
|
30124
31008
|
"id": "openwop.it.v2-era-2-append-vocabulary.a-host-append-to-an-open-era-2-run-keeps-the-log-in-v1-vocabulary-so-the-whole-l",
|
|
30125
31009
|
"file": "v2-era-2-append-vocabulary.test.ts",
|
|
@@ -30363,6 +31247,144 @@
|
|
|
30363
31247
|
}
|
|
30364
31248
|
]
|
|
30365
31249
|
},
|
|
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
|
+
},
|
|
30366
31388
|
{
|
|
30367
31389
|
"id": "openwop.it.v2-ext-family-claims.brand",
|
|
30368
31390
|
"file": "v2-ext-family-claims.test.ts",
|
|
@@ -30745,6 +31767,67 @@
|
|
|
30745
31767
|
}
|
|
30746
31768
|
]
|
|
30747
31769
|
},
|
|
31770
|
+
{
|
|
31771
|
+
"id": "openwop.it.v2-i18n-negotiation.the-advertised-i18n-record-is-well-formed-and-lists-its-default-locale",
|
|
31772
|
+
"file": "v2-i18n-negotiation.test.ts",
|
|
31773
|
+
"line": 59,
|
|
31774
|
+
"title": "the advertised i18n record is well-formed and lists its default locale",
|
|
31775
|
+
"explicitId": "openwop.requirement.i18n.record-shape",
|
|
31776
|
+
"citations": [
|
|
31777
|
+
{
|
|
31778
|
+
"section": "schemas/v2/capabilities.schema.json §i18n",
|
|
31779
|
+
"requirement": null,
|
|
31780
|
+
"interpolated": true
|
|
31781
|
+
},
|
|
31782
|
+
{
|
|
31783
|
+
"section": null,
|
|
31784
|
+
"requirement": null,
|
|
31785
|
+
"interpolated": true
|
|
31786
|
+
}
|
|
31787
|
+
]
|
|
31788
|
+
},
|
|
31789
|
+
{
|
|
31790
|
+
"id": "openwop.it.v2-i18n-negotiation.an-unsupported-accept-language-falls-back-and-content-language-never-lies",
|
|
31791
|
+
"file": "v2-i18n-negotiation.test.ts",
|
|
31792
|
+
"line": 68,
|
|
31793
|
+
"title": "an unsupported Accept-Language falls back and Content-Language never lies",
|
|
31794
|
+
"explicitId": "openwop.requirement.i18n.unsupported-locale-falls-back",
|
|
31795
|
+
"citations": [
|
|
31796
|
+
{
|
|
31797
|
+
"section": null,
|
|
31798
|
+
"requirement": null,
|
|
31799
|
+
"interpolated": true
|
|
31800
|
+
}
|
|
31801
|
+
]
|
|
31802
|
+
},
|
|
31803
|
+
{
|
|
31804
|
+
"id": "openwop.it.v2-i18n-negotiation.a-malformed-accept-language-does-not-cause-400",
|
|
31805
|
+
"file": "v2-i18n-negotiation.test.ts",
|
|
31806
|
+
"line": 76,
|
|
31807
|
+
"title": "a malformed Accept-Language does not cause 400",
|
|
31808
|
+
"explicitId": "openwop.requirement.i18n.malformed-accept-language-not-400",
|
|
31809
|
+
"citations": [
|
|
31810
|
+
{
|
|
31811
|
+
"section": null,
|
|
31812
|
+
"requirement": null,
|
|
31813
|
+
"interpolated": true
|
|
31814
|
+
}
|
|
31815
|
+
]
|
|
31816
|
+
},
|
|
31817
|
+
{
|
|
31818
|
+
"id": "openwop.it.v2-i18n-negotiation.the-error-code-and-details-keys-are-identical-under-every-negotiated-locale",
|
|
31819
|
+
"file": "v2-i18n-negotiation.test.ts",
|
|
31820
|
+
"line": 84,
|
|
31821
|
+
"title": "the error code and details keys are identical under every negotiated locale",
|
|
31822
|
+
"explicitId": "openwop.requirement.i18n.error-code-locale-invariant",
|
|
31823
|
+
"citations": [
|
|
31824
|
+
{
|
|
31825
|
+
"section": null,
|
|
31826
|
+
"requirement": null,
|
|
31827
|
+
"interpolated": true
|
|
31828
|
+
}
|
|
31829
|
+
]
|
|
31830
|
+
},
|
|
30748
31831
|
{
|
|
30749
31832
|
"id": "openwop.it.v2-id-grammar.every-id-on-the-run-snapshot-matches-its-ids-schema-json-kind",
|
|
30750
31833
|
"file": "v2-id-grammar.test.ts",
|
|
@@ -31350,6 +32433,215 @@
|
|
|
31350
32433
|
}
|
|
31351
32434
|
]
|
|
31352
32435
|
},
|
|
32436
|
+
{
|
|
32437
|
+
"id": "openwop.it.v2-limits-envelope-caps-advertisement.limits-clarificationrounds-is-present-and-a-non-negative-integer",
|
|
32438
|
+
"file": "v2-limits-envelope-caps-advertisement.test.ts",
|
|
32439
|
+
"line": 38,
|
|
32440
|
+
"title": "limits.clarificationRounds is present and a non-negative integer",
|
|
32441
|
+
"explicitId": "openwop.requirement.limits.clarification-rounds-advertised",
|
|
32442
|
+
"citations": [
|
|
32443
|
+
{
|
|
32444
|
+
"section": null,
|
|
32445
|
+
"requirement": null,
|
|
32446
|
+
"interpolated": true
|
|
32447
|
+
}
|
|
32448
|
+
]
|
|
32449
|
+
},
|
|
32450
|
+
{
|
|
32451
|
+
"id": "openwop.it.v2-limits-envelope-caps-advertisement.limits-schemarounds-is-present-and-a-non-negative-integer",
|
|
32452
|
+
"file": "v2-limits-envelope-caps-advertisement.test.ts",
|
|
32453
|
+
"line": 46,
|
|
32454
|
+
"title": "limits.schemaRounds is present and a non-negative integer",
|
|
32455
|
+
"explicitId": "openwop.requirement.limits.schema-rounds-advertised",
|
|
32456
|
+
"citations": [
|
|
32457
|
+
{
|
|
32458
|
+
"section": null,
|
|
32459
|
+
"requirement": null,
|
|
32460
|
+
"interpolated": true
|
|
32461
|
+
}
|
|
32462
|
+
]
|
|
32463
|
+
},
|
|
32464
|
+
{
|
|
32465
|
+
"id": "openwop.it.v2-limits-envelope-caps-advertisement.limits-envelopesperturn-is-present-and-a-non-negative-integer",
|
|
32466
|
+
"file": "v2-limits-envelope-caps-advertisement.test.ts",
|
|
32467
|
+
"line": 54,
|
|
32468
|
+
"title": "limits.envelopesPerTurn is present and a non-negative integer",
|
|
32469
|
+
"explicitId": "openwop.requirement.limits.envelopes-per-turn-advertised",
|
|
32470
|
+
"citations": [
|
|
32471
|
+
{
|
|
32472
|
+
"section": null,
|
|
32473
|
+
"requirement": null,
|
|
32474
|
+
"interpolated": true
|
|
32475
|
+
}
|
|
32476
|
+
]
|
|
32477
|
+
},
|
|
32478
|
+
{
|
|
32479
|
+
"id": "openwop.it.v2-localized-content-delivery.the-v2-content-record-requires-baselocale-and-supportedlocales-and-has-no-suppor",
|
|
32480
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
32481
|
+
"line": 62,
|
|
32482
|
+
"title": "the v2 content record requires baseLocale and supportedLocales and has no supported seat",
|
|
32483
|
+
"explicitId": "openwop.requirement.content.capability-record-shape",
|
|
32484
|
+
"citations": [
|
|
32485
|
+
{
|
|
32486
|
+
"section": "schemas/v2/capabilities.schema.json §content",
|
|
32487
|
+
"requirement": "content MUST require baseLocale and supportedLocales"
|
|
32488
|
+
},
|
|
32489
|
+
{
|
|
32490
|
+
"section": "spec/v2/core/capabilities.md (presence is the claim)",
|
|
32491
|
+
"requirement": "the v2 content record MUST NOT declare a supported seat"
|
|
32492
|
+
},
|
|
32493
|
+
{
|
|
32494
|
+
"section": "schemas/v2/capabilities.schema.json §content",
|
|
32495
|
+
"requirement": "a conforming content record MUST validate"
|
|
32496
|
+
},
|
|
32497
|
+
{
|
|
32498
|
+
"section": "schemas/v2/capabilities.schema.json §content",
|
|
32499
|
+
"requirement": "a content record carrying supported MUST be rejected (closed record)"
|
|
32500
|
+
}
|
|
32501
|
+
]
|
|
32502
|
+
},
|
|
32503
|
+
{
|
|
32504
|
+
"id": "openwop.it.v2-localized-content-delivery.a-conforming-section-validates-a-non-canonical-or-underscore-locale-key-a-missin",
|
|
32505
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
32506
|
+
"line": 73,
|
|
32507
|
+
"title": "a conforming section validates; a non-canonical or underscore locale key, a missing status, or an unknown status is rejected",
|
|
32508
|
+
"explicitId": "openwop.requirement.content.section-schema",
|
|
32509
|
+
"citations": [
|
|
32510
|
+
{
|
|
32511
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32512
|
+
"requirement": null,
|
|
32513
|
+
"interpolated": true
|
|
32514
|
+
},
|
|
32515
|
+
{
|
|
32516
|
+
"section": "RFC 0206 §A.1",
|
|
32517
|
+
"requirement": null,
|
|
32518
|
+
"interpolated": true
|
|
32519
|
+
},
|
|
32520
|
+
{
|
|
32521
|
+
"section": "RFC 0206 §A.1",
|
|
32522
|
+
"requirement": null,
|
|
32523
|
+
"interpolated": true
|
|
32524
|
+
},
|
|
32525
|
+
{
|
|
32526
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32527
|
+
"requirement": "status is REQUIRED"
|
|
32528
|
+
},
|
|
32529
|
+
{
|
|
32530
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32531
|
+
"requirement": "status MUST be draft or published"
|
|
32532
|
+
},
|
|
32533
|
+
{
|
|
32534
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32535
|
+
"requirement": "a section is a closed record"
|
|
32536
|
+
}
|
|
32537
|
+
]
|
|
32538
|
+
},
|
|
32539
|
+
{
|
|
32540
|
+
"id": "openwop.it.v2-localized-content-delivery.a-conforming-page-validates-and-a-bad-slug-is-rejected",
|
|
32541
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
32542
|
+
"line": 87,
|
|
32543
|
+
"title": "a conforming page validates and a bad slug is rejected",
|
|
32544
|
+
"explicitId": "openwop.requirement.content.page-schema",
|
|
32545
|
+
"citations": [
|
|
32546
|
+
{
|
|
32547
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32548
|
+
"requirement": null,
|
|
32549
|
+
"interpolated": true
|
|
32550
|
+
},
|
|
32551
|
+
{
|
|
32552
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32553
|
+
"requirement": "slug MUST match ^[a-z][a-z0-9-]*$"
|
|
32554
|
+
}
|
|
32555
|
+
]
|
|
32556
|
+
},
|
|
32557
|
+
{
|
|
32558
|
+
"id": "openwop.it.v2-localized-content-delivery.a-conforming-language-settings-document-validates",
|
|
32559
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
32560
|
+
"line": 93,
|
|
32561
|
+
"title": "a conforming language-settings document validates",
|
|
32562
|
+
"explicitId": "openwop.requirement.content.language-settings-schema",
|
|
32563
|
+
"citations": [
|
|
32564
|
+
{
|
|
32565
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32566
|
+
"requirement": null,
|
|
32567
|
+
"interpolated": true
|
|
32568
|
+
},
|
|
32569
|
+
{
|
|
32570
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32571
|
+
"requirement": "baseLocale MUST be a canonical BCP 47 key"
|
|
32572
|
+
}
|
|
32573
|
+
]
|
|
32574
|
+
},
|
|
32575
|
+
{
|
|
32576
|
+
"id": "openwop.it.v2-localized-content-delivery.a-conforming-page-response-validates",
|
|
32577
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
32578
|
+
"line": 99,
|
|
32579
|
+
"title": "a conforming page response validates",
|
|
32580
|
+
"explicitId": "openwop.requirement.content.page-response-schema",
|
|
32581
|
+
"citations": [
|
|
32582
|
+
{
|
|
32583
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32584
|
+
"requirement": null,
|
|
32585
|
+
"interpolated": true
|
|
32586
|
+
},
|
|
32587
|
+
{
|
|
32588
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32589
|
+
"requirement": "a delivered section carries resolved data, never its localizations"
|
|
32590
|
+
}
|
|
32591
|
+
]
|
|
32592
|
+
},
|
|
32593
|
+
{
|
|
32594
|
+
"id": "openwop.it.v2-localized-content-delivery.exact-tag-then-script-family-then-language-then-data-a-shallow-overlay",
|
|
32595
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
32596
|
+
"line": 111,
|
|
32597
|
+
"title": "exact tag, then script family, then language, then data — a shallow overlay",
|
|
32598
|
+
"explicitId": "openwop.requirement.content.section-merge",
|
|
32599
|
+
"citations": [
|
|
32600
|
+
{
|
|
32601
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32602
|
+
"requirement": "an exact hit MUST overlay its fields onto data"
|
|
32603
|
+
},
|
|
32604
|
+
{
|
|
32605
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32606
|
+
"requirement": "a field the overlay lacks MUST fall through to data"
|
|
32607
|
+
},
|
|
32608
|
+
{
|
|
32609
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32610
|
+
"requirement": "pt-BR MUST fall back to the pt language overlay"
|
|
32611
|
+
},
|
|
32612
|
+
{
|
|
32613
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32614
|
+
"requirement": "zh-Hant-TW MUST take the zh-Hant script family before zh"
|
|
32615
|
+
},
|
|
32616
|
+
{
|
|
32617
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32618
|
+
"requirement": "no overlay MUST resolve to data alone"
|
|
32619
|
+
},
|
|
32620
|
+
{
|
|
32621
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
32622
|
+
"requirement": "baseLocale MUST resolve to data"
|
|
32623
|
+
}
|
|
32624
|
+
]
|
|
32625
|
+
},
|
|
32626
|
+
{
|
|
32627
|
+
"id": "openwop.it.v2-localized-content-delivery.the-advertised-content-record-is-coherent-with-the-advertised-i18n-record",
|
|
32628
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
32629
|
+
"line": 123,
|
|
32630
|
+
"title": "the advertised content record is coherent with the advertised i18n record",
|
|
32631
|
+
"explicitId": "openwop.requirement.content.advertisement-coherent",
|
|
32632
|
+
"citations": [
|
|
32633
|
+
{
|
|
32634
|
+
"section": "schemas/v2/capabilities.schema.json §content",
|
|
32635
|
+
"requirement": null,
|
|
32636
|
+
"interpolated": true
|
|
32637
|
+
},
|
|
32638
|
+
{
|
|
32639
|
+
"section": null,
|
|
32640
|
+
"requirement": null,
|
|
32641
|
+
"interpolated": true
|
|
32642
|
+
}
|
|
32643
|
+
]
|
|
32644
|
+
},
|
|
31353
32645
|
{
|
|
31354
32646
|
"id": "openwop.requirement.0172.malformed-body-envelope",
|
|
31355
32647
|
"file": "v2-malformed-body-envelope.test.ts",
|
|
@@ -32344,6 +33636,74 @@
|
|
|
32344
33636
|
}
|
|
32345
33637
|
]
|
|
32346
33638
|
},
|
|
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
|
+
},
|
|
32347
33707
|
{
|
|
32348
33708
|
"id": "openwop.it.v2-memory-cross-tenant-isolation.a-second-tenant-listing-the-same-memoryref-sees-none-of-the-first-tenant-s-entri",
|
|
32349
33709
|
"file": "v2-memory-cross-tenant-isolation.test.ts",
|
|
@@ -32428,6 +33788,76 @@
|
|
|
32428
33788
|
}
|
|
32429
33789
|
]
|
|
32430
33790
|
},
|
|
33791
|
+
{
|
|
33792
|
+
"id": "openwop.it.v2-model-capabilities-advertisement.the-modelcapabilities-record-validates-against-its-capabilities-schema-seat",
|
|
33793
|
+
"file": "v2-model-capabilities-advertisement.test.ts",
|
|
33794
|
+
"line": 38,
|
|
33795
|
+
"title": "the modelCapabilities record validates against its capabilities-schema seat",
|
|
33796
|
+
"explicitId": "openwop.requirement.model-capabilities.advert-record-schema",
|
|
33797
|
+
"citations": [
|
|
33798
|
+
{
|
|
33799
|
+
"section": null,
|
|
33800
|
+
"requirement": null,
|
|
33801
|
+
"interpolated": true
|
|
33802
|
+
}
|
|
33803
|
+
]
|
|
33804
|
+
},
|
|
33805
|
+
{
|
|
33806
|
+
"id": "openwop.it.v2-model-capabilities-advertisement.modelcapabilities-advertised-names-only-spec-reserved-or-x-host-prefixed-identif",
|
|
33807
|
+
"file": "v2-model-capabilities-advertisement.test.ts",
|
|
33808
|
+
"line": 46,
|
|
33809
|
+
"title": "modelCapabilities.advertised names only spec-reserved or x-host- prefixed identifiers",
|
|
33810
|
+
"explicitId": "openwop.requirement.model-capabilities.advertised-identifiers",
|
|
33811
|
+
"citations": [
|
|
33812
|
+
{
|
|
33813
|
+
"section": null,
|
|
33814
|
+
"requirement": null,
|
|
33815
|
+
"interpolated": true
|
|
33816
|
+
}
|
|
33817
|
+
]
|
|
33818
|
+
},
|
|
33819
|
+
{
|
|
33820
|
+
"id": "openwop.it.v2-model-capabilities-advertisement.modelcapabilities-substitutionsupported-is-a-boolean",
|
|
33821
|
+
"file": "v2-model-capabilities-advertisement.test.ts",
|
|
33822
|
+
"line": 54,
|
|
33823
|
+
"title": "modelCapabilities.substitutionSupported is a boolean",
|
|
33824
|
+
"explicitId": "openwop.requirement.model-capabilities.substitution-supported-boolean",
|
|
33825
|
+
"citations": [
|
|
33826
|
+
{
|
|
33827
|
+
"section": null,
|
|
33828
|
+
"requirement": null,
|
|
33829
|
+
"interpolated": true
|
|
33830
|
+
}
|
|
33831
|
+
]
|
|
33832
|
+
},
|
|
33833
|
+
{
|
|
33834
|
+
"id": "openwop.it.v2-model-capability-insufficient.a-node-requiring-a-capability-no-model-offers-fails-capability-not-provided-afte",
|
|
33835
|
+
"file": "v2-model-capability-insufficient.test.ts",
|
|
33836
|
+
"line": 50,
|
|
33837
|
+
"title": "a node requiring a capability no model offers fails capability_not_provided after model.capability-insufficient",
|
|
33838
|
+
"explicitId": "openwop.requirement.model-capabilities.insufficient-refusal",
|
|
33839
|
+
"citations": [
|
|
33840
|
+
{
|
|
33841
|
+
"section": null,
|
|
33842
|
+
"requirement": null,
|
|
33843
|
+
"interpolated": true
|
|
33844
|
+
}
|
|
33845
|
+
]
|
|
33846
|
+
},
|
|
33847
|
+
{
|
|
33848
|
+
"id": "openwop.it.v2-model-capability-insufficient.a-refused-dispatch-emits-no-node-completion-provider-usage-or-envelope-reliabili",
|
|
33849
|
+
"file": "v2-model-capability-insufficient.test.ts",
|
|
33850
|
+
"line": 57,
|
|
33851
|
+
"title": "a refused dispatch emits no node completion, provider usage or envelope-reliability event",
|
|
33852
|
+
"explicitId": "openwop.requirement.model-capabilities.insufficient-no-dispatch",
|
|
33853
|
+
"citations": [
|
|
33854
|
+
{
|
|
33855
|
+
"section": null,
|
|
33856
|
+
"requirement": null,
|
|
33857
|
+
"interpolated": true
|
|
33858
|
+
}
|
|
33859
|
+
]
|
|
33860
|
+
},
|
|
32431
33861
|
{
|
|
32432
33862
|
"id": "openwop.it.v2-mrtr-rounds-ceiling.mcp-mrtr-maxrounds-is-an-integer-ceiling-in-1-16",
|
|
32433
33863
|
"file": "v2-mrtr-rounds-ceiling.test.ts",
|
|
@@ -32471,6 +33901,34 @@
|
|
|
32471
33901
|
}
|
|
32472
33902
|
]
|
|
32473
33903
|
},
|
|
33904
|
+
{
|
|
33905
|
+
"id": "openwop.it.v2-multi-party-conversation-advertisement.the-multipartyconversation-record-validates-against-its-capabilities-schema-seat",
|
|
33906
|
+
"file": "v2-multi-party-conversation-advertisement.test.ts",
|
|
33907
|
+
"line": 35,
|
|
33908
|
+
"title": "the multiPartyConversation record validates against its capabilities-schema seat",
|
|
33909
|
+
"explicitId": "openwop.requirement.multi-party-conversation.advert-record-schema",
|
|
33910
|
+
"citations": [
|
|
33911
|
+
{
|
|
33912
|
+
"section": null,
|
|
33913
|
+
"requirement": null,
|
|
33914
|
+
"interpolated": true
|
|
33915
|
+
}
|
|
33916
|
+
]
|
|
33917
|
+
},
|
|
33918
|
+
{
|
|
33919
|
+
"id": "openwop.it.v2-multi-party-conversation-advertisement.multipartyconversation-maxparticipants-is-an-integer-of-at-least-2",
|
|
33920
|
+
"file": "v2-multi-party-conversation-advertisement.test.ts",
|
|
33921
|
+
"line": 44,
|
|
33922
|
+
"title": "multiPartyConversation.maxParticipants is an integer of at least 2",
|
|
33923
|
+
"explicitId": "openwop.requirement.multi-party-conversation.max-participants",
|
|
33924
|
+
"citations": [
|
|
33925
|
+
{
|
|
33926
|
+
"section": null,
|
|
33927
|
+
"requirement": null,
|
|
33928
|
+
"interpolated": true
|
|
33929
|
+
}
|
|
33930
|
+
]
|
|
33931
|
+
},
|
|
32474
33932
|
{
|
|
32475
33933
|
"id": "openwop.it.v2-negotiation-authenticated.an-unauthenticated-a2a-exchange-cannot-lower-the-version-below-preferredversion",
|
|
32476
33934
|
"file": "v2-negotiation-authenticated.test.ts",
|
|
@@ -32530,6 +33988,48 @@
|
|
|
32530
33988
|
}
|
|
32531
33989
|
]
|
|
32532
33990
|
},
|
|
33991
|
+
{
|
|
33992
|
+
"id": "openwop.it.v2-node-pack-runtimes-advertisement.the-nodepackruntimes-record-validates-against-its-capabilities-schema-seat",
|
|
33993
|
+
"file": "v2-node-pack-runtimes-advertisement.test.ts",
|
|
33994
|
+
"line": 35,
|
|
33995
|
+
"title": "the nodePackRuntimes record validates against its capabilities-schema seat",
|
|
33996
|
+
"explicitId": "openwop.requirement.node-pack-runtimes.advert-record-schema",
|
|
33997
|
+
"citations": [
|
|
33998
|
+
{
|
|
33999
|
+
"section": null,
|
|
34000
|
+
"requirement": null,
|
|
34001
|
+
"interpolated": true
|
|
34002
|
+
}
|
|
34003
|
+
]
|
|
34004
|
+
},
|
|
34005
|
+
{
|
|
34006
|
+
"id": "openwop.it.v2-node-pack-runtimes-advertisement.nodepackruntimes-wasm-lists-abi-versions-and-a-memory-cap-in-range",
|
|
34007
|
+
"file": "v2-node-pack-runtimes-advertisement.test.ts",
|
|
34008
|
+
"line": 44,
|
|
34009
|
+
"title": "nodePackRuntimes.wasm lists ABI versions and a memory cap in range",
|
|
34010
|
+
"explicitId": "openwop.requirement.node-pack-runtimes.wasm-facet-shape",
|
|
34011
|
+
"citations": [
|
|
34012
|
+
{
|
|
34013
|
+
"section": null,
|
|
34014
|
+
"requirement": null,
|
|
34015
|
+
"interpolated": true
|
|
34016
|
+
}
|
|
34017
|
+
]
|
|
34018
|
+
},
|
|
34019
|
+
{
|
|
34020
|
+
"id": "openwop.it.v2-nondeterminism-policy-advertisement.the-nondeterminismpolicy-record-validates-against-its-capabilities-schema-seat",
|
|
34021
|
+
"file": "v2-nondeterminism-policy-advertisement.test.ts",
|
|
34022
|
+
"line": 33,
|
|
34023
|
+
"title": "the nondeterminismPolicy record validates against its capabilities-schema seat",
|
|
34024
|
+
"explicitId": "openwop.requirement.nondeterminism-policy.advert-record-schema",
|
|
34025
|
+
"citations": [
|
|
34026
|
+
{
|
|
34027
|
+
"section": null,
|
|
34028
|
+
"requirement": null,
|
|
34029
|
+
"interpolated": true
|
|
34030
|
+
}
|
|
34031
|
+
]
|
|
34032
|
+
},
|
|
32533
34033
|
{
|
|
32534
34034
|
"id": "openwop.it.v2-oauth-client-pkce-state-iss.sends-pkce-s256-and-the-verifier-at-the-token-endpoint-hashes-to-the-challenge",
|
|
32535
34035
|
"file": "v2-oauth-client-pkce-state-iss.test.ts",
|
|
@@ -33327,6 +34827,48 @@
|
|
|
33327
34827
|
}
|
|
33328
34828
|
]
|
|
33329
34829
|
},
|
|
34830
|
+
{
|
|
34831
|
+
"id": "openwop.it.v2-portability-advertisement.the-portability-record-validates-against-its-capabilities-schema-seat",
|
|
34832
|
+
"file": "v2-portability-advertisement.test.ts",
|
|
34833
|
+
"line": 40,
|
|
34834
|
+
"title": "the portability record validates against its capabilities-schema seat",
|
|
34835
|
+
"explicitId": "openwop.requirement.portability.advert-record-schema",
|
|
34836
|
+
"citations": [
|
|
34837
|
+
{
|
|
34838
|
+
"section": null,
|
|
34839
|
+
"requirement": null,
|
|
34840
|
+
"interpolated": true
|
|
34841
|
+
}
|
|
34842
|
+
]
|
|
34843
|
+
},
|
|
34844
|
+
{
|
|
34845
|
+
"id": "openwop.it.v2-portability-advertisement.a-host-advertising-portability-import-advertises-dryrun-true",
|
|
34846
|
+
"file": "v2-portability-advertisement.test.ts",
|
|
34847
|
+
"line": 48,
|
|
34848
|
+
"title": "a host advertising portability.import advertises dryRun: true",
|
|
34849
|
+
"explicitId": "openwop.requirement.portability.import-requires-dry-run",
|
|
34850
|
+
"citations": [
|
|
34851
|
+
{
|
|
34852
|
+
"section": null,
|
|
34853
|
+
"requirement": null,
|
|
34854
|
+
"interpolated": true
|
|
34855
|
+
}
|
|
34856
|
+
]
|
|
34857
|
+
},
|
|
34858
|
+
{
|
|
34859
|
+
"id": "openwop.it.v2-portability-advertisement.portability-kinds-lists-unique-export-bundle-item-kinds",
|
|
34860
|
+
"file": "v2-portability-advertisement.test.ts",
|
|
34861
|
+
"line": 56,
|
|
34862
|
+
"title": "portability.kinds lists unique export-bundle item kinds",
|
|
34863
|
+
"explicitId": "openwop.requirement.portability.kinds-shape",
|
|
34864
|
+
"citations": [
|
|
34865
|
+
{
|
|
34866
|
+
"section": null,
|
|
34867
|
+
"requirement": null,
|
|
34868
|
+
"interpolated": true
|
|
34869
|
+
}
|
|
34870
|
+
]
|
|
34871
|
+
},
|
|
33330
34872
|
{
|
|
33331
34873
|
"id": "openwop.it.v2-preferred-version-default.preferredversion-is-a-member-of-protocolversions",
|
|
33332
34874
|
"file": "v2-preferred-version-default.test.ts",
|
|
@@ -33471,6 +35013,566 @@
|
|
|
33471
35013
|
}
|
|
33472
35014
|
]
|
|
33473
35015
|
},
|
|
35016
|
+
{
|
|
35017
|
+
"id": "openwop.it.v2-prompt-all-four-kinds-events.each-kind-and-each-configured-ref-is-resolved-and-composed",
|
|
35018
|
+
"file": "v2-prompt-all-four-kinds-events.test.ts",
|
|
35019
|
+
"line": 58,
|
|
35020
|
+
"title": "each kind and each configured ref is resolved and composed",
|
|
35021
|
+
"explicitId": "openwop.requirement.prompts.all-four-kinds-events",
|
|
35022
|
+
"citations": [
|
|
35023
|
+
{
|
|
35024
|
+
"section": null,
|
|
35025
|
+
"requirement": null,
|
|
35026
|
+
"interpolated": true
|
|
35027
|
+
}
|
|
35028
|
+
]
|
|
35029
|
+
},
|
|
35030
|
+
{
|
|
35031
|
+
"id": "openwop.it.v2-prompt-all-four-kinds-events.every-prompt-composed-follows-an-agent-prompt-resolved-for-its-node",
|
|
35032
|
+
"file": "v2-prompt-all-four-kinds-events.test.ts",
|
|
35033
|
+
"line": 64,
|
|
35034
|
+
"title": "every prompt.composed follows an agent.prompt-resolved for its node",
|
|
35035
|
+
"explicitId": "openwop.requirement.prompts.resolution-precedes-composition",
|
|
35036
|
+
"citations": [
|
|
35037
|
+
{
|
|
35038
|
+
"section": null,
|
|
35039
|
+
"requirement": null,
|
|
35040
|
+
"interpolated": true
|
|
35041
|
+
}
|
|
35042
|
+
]
|
|
35043
|
+
},
|
|
35044
|
+
{
|
|
35045
|
+
"id": "openwop.it.v2-prompt-end-to-end-events.the-node-layer-wins-and-prompt-composed-carries-the-hash-with-bodies-only-under",
|
|
35046
|
+
"file": "v2-prompt-end-to-end-events.test.ts",
|
|
35047
|
+
"line": 60,
|
|
35048
|
+
"title": "the node layer wins, and prompt.composed carries the hash with bodies only under full",
|
|
35049
|
+
"explicitId": "openwop.requirement.prompts.end-to-end-resolution-and-composition",
|
|
35050
|
+
"citations": [
|
|
35051
|
+
{
|
|
35052
|
+
"section": null,
|
|
35053
|
+
"requirement": null,
|
|
35054
|
+
"interpolated": true
|
|
35055
|
+
}
|
|
35056
|
+
]
|
|
35057
|
+
},
|
|
35058
|
+
{
|
|
35059
|
+
"id": "openwop.it.v2-prompt-end-to-end-events.agent-prompt-resolved-precedes-prompt-composed-for-the-node",
|
|
35060
|
+
"file": "v2-prompt-end-to-end-events.test.ts",
|
|
35061
|
+
"line": 66,
|
|
35062
|
+
"title": "agent.prompt-resolved precedes prompt.composed for the node",
|
|
35063
|
+
"explicitId": "openwop.requirement.prompts.resolution-precedes-composition",
|
|
35064
|
+
"citations": [
|
|
35065
|
+
{
|
|
35066
|
+
"section": null,
|
|
35067
|
+
"requirement": null,
|
|
35068
|
+
"interpolated": true
|
|
35069
|
+
}
|
|
35070
|
+
]
|
|
35071
|
+
},
|
|
35072
|
+
{
|
|
35073
|
+
"id": "openwop.it.v2-prompt-library-advertisement.the-promptlibrary-record-validates-against-its-capabilities-schema-seat",
|
|
35074
|
+
"file": "v2-prompt-library-advertisement.test.ts",
|
|
35075
|
+
"line": 32,
|
|
35076
|
+
"title": "the promptLibrary record validates against its capabilities-schema seat",
|
|
35077
|
+
"explicitId": "openwop.requirement.prompt-library.advert-record-schema",
|
|
35078
|
+
"citations": [
|
|
35079
|
+
{
|
|
35080
|
+
"section": null,
|
|
35081
|
+
"requirement": null,
|
|
35082
|
+
"interpolated": true
|
|
35083
|
+
}
|
|
35084
|
+
]
|
|
35085
|
+
},
|
|
35086
|
+
{
|
|
35087
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.get-prompts-answers-items-whose-every-entry-validates",
|
|
35088
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
35089
|
+
"line": 56,
|
|
35090
|
+
"title": "GET /prompts answers items whose every entry validates",
|
|
35091
|
+
"explicitId": "openwop.requirement.prompts.list-shape",
|
|
35092
|
+
"citations": [
|
|
35093
|
+
{
|
|
35094
|
+
"section": null,
|
|
35095
|
+
"requirement": null,
|
|
35096
|
+
"interpolated": true
|
|
35097
|
+
}
|
|
35098
|
+
]
|
|
35099
|
+
},
|
|
35100
|
+
{
|
|
35101
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.the-kind-and-source-filters-narrow-the-list",
|
|
35102
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
35103
|
+
"line": 64,
|
|
35104
|
+
"title": "the kind and source filters narrow the list",
|
|
35105
|
+
"explicitId": "openwop.requirement.prompts.list-filters",
|
|
35106
|
+
"citations": [
|
|
35107
|
+
{
|
|
35108
|
+
"section": null,
|
|
35109
|
+
"requirement": null,
|
|
35110
|
+
"interpolated": true
|
|
35111
|
+
}
|
|
35112
|
+
]
|
|
35113
|
+
},
|
|
35114
|
+
{
|
|
35115
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.a-listed-template-is-fetched-by-id",
|
|
35116
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
35117
|
+
"line": 72,
|
|
35118
|
+
"title": "a listed template is fetched by id",
|
|
35119
|
+
"explicitId": "openwop.requirement.prompts.fetch-by-id",
|
|
35120
|
+
"citations": [
|
|
35121
|
+
{
|
|
35122
|
+
"section": null,
|
|
35123
|
+
"requirement": null,
|
|
35124
|
+
"interpolated": true
|
|
35125
|
+
}
|
|
35126
|
+
]
|
|
35127
|
+
},
|
|
35128
|
+
{
|
|
35129
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.an-etag-when-sent-revalidates-to-304",
|
|
35130
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
35131
|
+
"line": 80,
|
|
35132
|
+
"title": "an ETag, when sent, revalidates to 304",
|
|
35133
|
+
"explicitId": "openwop.requirement.prompts.etag-revalidation",
|
|
35134
|
+
"citations": [
|
|
35135
|
+
{
|
|
35136
|
+
"section": null,
|
|
35137
|
+
"requirement": null,
|
|
35138
|
+
"interpolated": true
|
|
35139
|
+
}
|
|
35140
|
+
]
|
|
35141
|
+
},
|
|
35142
|
+
{
|
|
35143
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.an-unknown-templateid-answers-404-with-the-error-envelope",
|
|
35144
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
35145
|
+
"line": 88,
|
|
35146
|
+
"title": "an unknown templateId answers 404 with the error envelope",
|
|
35147
|
+
"explicitId": "openwop.requirement.prompts.unknown-template-404",
|
|
35148
|
+
"citations": [
|
|
35149
|
+
{
|
|
35150
|
+
"section": null,
|
|
35151
|
+
"requirement": null,
|
|
35152
|
+
"interpolated": true
|
|
35153
|
+
}
|
|
35154
|
+
]
|
|
35155
|
+
},
|
|
35156
|
+
{
|
|
35157
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.with-endpointssupported-unadvertised-get-prompts-answers-404-not-found",
|
|
35158
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
35159
|
+
"line": 96,
|
|
35160
|
+
"title": "with endpointsSupported unadvertised, GET /prompts answers 404 not_found",
|
|
35161
|
+
"explicitId": "openwop.requirement.prompts.endpoints-gate-off-404",
|
|
35162
|
+
"citations": [
|
|
35163
|
+
{
|
|
35164
|
+
"section": null,
|
|
35165
|
+
"requirement": null,
|
|
35166
|
+
"interpolated": true
|
|
35167
|
+
}
|
|
35168
|
+
]
|
|
35169
|
+
},
|
|
35170
|
+
{
|
|
35171
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.post-prompts-creates-a-user-template-with-201-and-a-location",
|
|
35172
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
35173
|
+
"line": 69,
|
|
35174
|
+
"title": "POST /prompts creates a user template with 201 and a Location",
|
|
35175
|
+
"explicitId": "openwop.requirement.prompts.create-user-template",
|
|
35176
|
+
"citations": [
|
|
35177
|
+
{
|
|
35178
|
+
"section": null,
|
|
35179
|
+
"requirement": null,
|
|
35180
|
+
"interpolated": true
|
|
35181
|
+
}
|
|
35182
|
+
]
|
|
35183
|
+
},
|
|
35184
|
+
{
|
|
35185
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.the-created-template-reads-back-with-meta-source-user",
|
|
35186
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
35187
|
+
"line": 75,
|
|
35188
|
+
"title": "the created template reads back with meta.source user",
|
|
35189
|
+
"explicitId": "openwop.requirement.prompts.created-template-source-user",
|
|
35190
|
+
"citations": [
|
|
35191
|
+
{
|
|
35192
|
+
"section": null,
|
|
35193
|
+
"requirement": null,
|
|
35194
|
+
"interpolated": true
|
|
35195
|
+
}
|
|
35196
|
+
]
|
|
35197
|
+
},
|
|
35198
|
+
{
|
|
35199
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.a-second-post-of-the-same-templateid-and-version-answers-409",
|
|
35200
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
35201
|
+
"line": 81,
|
|
35202
|
+
"title": "a second POST of the same templateId and version answers 409",
|
|
35203
|
+
"explicitId": "openwop.requirement.prompts.duplicate-version-409",
|
|
35204
|
+
"citations": [
|
|
35205
|
+
{
|
|
35206
|
+
"section": null,
|
|
35207
|
+
"requirement": null,
|
|
35208
|
+
"interpolated": true
|
|
35209
|
+
}
|
|
35210
|
+
]
|
|
35211
|
+
},
|
|
35212
|
+
{
|
|
35213
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.put-with-a-greater-semver-replaces-the-template",
|
|
35214
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
35215
|
+
"line": 87,
|
|
35216
|
+
"title": "PUT with a greater SemVer replaces the template",
|
|
35217
|
+
"explicitId": "openwop.requirement.prompts.update-greater-semver",
|
|
35218
|
+
"citations": [
|
|
35219
|
+
{
|
|
35220
|
+
"section": null,
|
|
35221
|
+
"requirement": null,
|
|
35222
|
+
"interpolated": true
|
|
35223
|
+
}
|
|
35224
|
+
]
|
|
35225
|
+
},
|
|
35226
|
+
{
|
|
35227
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.put-with-a-lower-semver-answers-409",
|
|
35228
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
35229
|
+
"line": 93,
|
|
35230
|
+
"title": "PUT with a lower SemVer answers 409",
|
|
35231
|
+
"explicitId": "openwop.requirement.prompts.update-non-monotonic-409",
|
|
35232
|
+
"citations": [
|
|
35233
|
+
{
|
|
35234
|
+
"section": null,
|
|
35235
|
+
"requirement": null,
|
|
35236
|
+
"interpolated": true
|
|
35237
|
+
}
|
|
35238
|
+
]
|
|
35239
|
+
},
|
|
35240
|
+
{
|
|
35241
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.delete-answers-204-and-the-template-then-reads-404",
|
|
35242
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
35243
|
+
"line": 99,
|
|
35244
|
+
"title": "DELETE answers 204 and the template then reads 404",
|
|
35245
|
+
"explicitId": "openwop.requirement.prompts.delete-user-template",
|
|
35246
|
+
"citations": [
|
|
35247
|
+
{
|
|
35248
|
+
"section": null,
|
|
35249
|
+
"requirement": null,
|
|
35250
|
+
"interpolated": true
|
|
35251
|
+
}
|
|
35252
|
+
]
|
|
35253
|
+
},
|
|
35254
|
+
{
|
|
35255
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.a-host-built-in-template-is-read-only-delete-answers-403",
|
|
35256
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
35257
|
+
"line": 107,
|
|
35258
|
+
"title": "a host built-in template is read-only: DELETE answers 403",
|
|
35259
|
+
"explicitId": "openwop.requirement.prompts.builtin-read-only",
|
|
35260
|
+
"citations": [
|
|
35261
|
+
{
|
|
35262
|
+
"section": null,
|
|
35263
|
+
"requirement": null,
|
|
35264
|
+
"interpolated": true
|
|
35265
|
+
}
|
|
35266
|
+
]
|
|
35267
|
+
},
|
|
35268
|
+
{
|
|
35269
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.an-unauthenticated-write-is-refused-401",
|
|
35270
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
35271
|
+
"line": 115,
|
|
35272
|
+
"title": "an unauthenticated write is refused 401",
|
|
35273
|
+
"explicitId": "openwop.requirement.prompts.writes-authenticated",
|
|
35274
|
+
"citations": [
|
|
35275
|
+
{
|
|
35276
|
+
"section": null,
|
|
35277
|
+
"requirement": null,
|
|
35278
|
+
"interpolated": true
|
|
35279
|
+
}
|
|
35280
|
+
]
|
|
35281
|
+
},
|
|
35282
|
+
{
|
|
35283
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.with-mutablelibrary-unadvertised-post-prompts-answers-404-not-found",
|
|
35284
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
35285
|
+
"line": 123,
|
|
35286
|
+
"title": "with mutableLibrary unadvertised, POST /prompts answers 404 not_found",
|
|
35287
|
+
"explicitId": "openwop.requirement.prompts.mutable-gate-off-404",
|
|
35288
|
+
"citations": [
|
|
35289
|
+
{
|
|
35290
|
+
"section": null,
|
|
35291
|
+
"requirement": null,
|
|
35292
|
+
"interpolated": true
|
|
35293
|
+
}
|
|
35294
|
+
]
|
|
35295
|
+
},
|
|
35296
|
+
{
|
|
35297
|
+
"id": "openwop.it.v2-prompt-pack-install.get-prompts-source-pack-lists-only-pack-templates-and-none-unless-packssupported",
|
|
35298
|
+
"file": "v2-prompt-pack-install.test.ts",
|
|
35299
|
+
"line": 55,
|
|
35300
|
+
"title": "GET /prompts?source=pack lists only pack templates, and none unless packsSupported",
|
|
35301
|
+
"explicitId": "openwop.requirement.prompts.pack-listing",
|
|
35302
|
+
"citations": [
|
|
35303
|
+
{
|
|
35304
|
+
"section": null,
|
|
35305
|
+
"requirement": null,
|
|
35306
|
+
"interpolated": true
|
|
35307
|
+
}
|
|
35308
|
+
]
|
|
35309
|
+
},
|
|
35310
|
+
{
|
|
35311
|
+
"id": "openwop.it.v2-prompt-pack-install.every-pack-template-carries-meta-packname-and-meta-packversion",
|
|
35312
|
+
"file": "v2-prompt-pack-install.test.ts",
|
|
35313
|
+
"line": 63,
|
|
35314
|
+
"title": "every pack template carries meta.packName and meta.packVersion",
|
|
35315
|
+
"explicitId": "openwop.requirement.prompts.pack-template-stamps",
|
|
35316
|
+
"citations": [
|
|
35317
|
+
{
|
|
35318
|
+
"section": null,
|
|
35319
|
+
"requirement": null,
|
|
35320
|
+
"interpolated": true
|
|
35321
|
+
}
|
|
35322
|
+
]
|
|
35323
|
+
},
|
|
35324
|
+
{
|
|
35325
|
+
"id": "openwop.it.v2-prompt-pack-install.the-reference-pack-template-is-fetched-by-id-and-keeps-its-pack-provenance",
|
|
35326
|
+
"file": "v2-prompt-pack-install.test.ts",
|
|
35327
|
+
"line": 71,
|
|
35328
|
+
"title": "the reference pack template is fetched by id and keeps its pack provenance",
|
|
35329
|
+
"explicitId": "openwop.requirement.prompts.reference-pack-fetch",
|
|
35330
|
+
"citations": [
|
|
35331
|
+
{
|
|
35332
|
+
"section": null,
|
|
35333
|
+
"requirement": null,
|
|
35334
|
+
"interpolated": true
|
|
35335
|
+
}
|
|
35336
|
+
]
|
|
35337
|
+
},
|
|
35338
|
+
{
|
|
35339
|
+
"id": "openwop.it.v2-prompt-render-deterministic.identical-ref-and-variables-render-the-identical-hash-and-variablehashes",
|
|
35340
|
+
"file": "v2-prompt-render-deterministic.test.ts",
|
|
35341
|
+
"line": 56,
|
|
35342
|
+
"title": "identical ref and variables render the identical hash and variableHashes",
|
|
35343
|
+
"explicitId": "openwop.requirement.prompts.render-deterministic",
|
|
35344
|
+
"citations": [
|
|
35345
|
+
{
|
|
35346
|
+
"section": null,
|
|
35347
|
+
"requirement": null,
|
|
35348
|
+
"interpolated": true
|
|
35349
|
+
}
|
|
35350
|
+
]
|
|
35351
|
+
},
|
|
35352
|
+
{
|
|
35353
|
+
"id": "openwop.it.v2-prompt-render-deterministic.a-changed-binding-changes-the-hash-and-its-variablehash",
|
|
35354
|
+
"file": "v2-prompt-render-deterministic.test.ts",
|
|
35355
|
+
"line": 64,
|
|
35356
|
+
"title": "a changed binding changes the hash and its variableHash",
|
|
35357
|
+
"explicitId": "openwop.requirement.prompts.render-binding-sensitive",
|
|
35358
|
+
"citations": [
|
|
35359
|
+
{
|
|
35360
|
+
"section": null,
|
|
35361
|
+
"requirement": null,
|
|
35362
|
+
"interpolated": true
|
|
35363
|
+
}
|
|
35364
|
+
]
|
|
35365
|
+
},
|
|
35366
|
+
{
|
|
35367
|
+
"id": "openwop.it.v2-prompt-render-deterministic.hashes-are-sha256-hex-and-the-body-is-present-only-under-observability-full",
|
|
35368
|
+
"file": "v2-prompt-render-deterministic.test.ts",
|
|
35369
|
+
"line": 72,
|
|
35370
|
+
"title": "hashes are sha256 hex and the body is present only under observability full",
|
|
35371
|
+
"explicitId": "openwop.requirement.prompts.render-shape",
|
|
35372
|
+
"citations": [
|
|
35373
|
+
{
|
|
35374
|
+
"section": null,
|
|
35375
|
+
"requirement": null,
|
|
35376
|
+
"interpolated": true
|
|
35377
|
+
}
|
|
35378
|
+
]
|
|
35379
|
+
},
|
|
35380
|
+
{
|
|
35381
|
+
"id": "openwop.it.v2-prompt-render-deterministic.an-unbound-required-variable-is-refused-400-validation-error",
|
|
35382
|
+
"file": "v2-prompt-render-deterministic.test.ts",
|
|
35383
|
+
"line": 80,
|
|
35384
|
+
"title": "an unbound required variable is refused 400 validation_error",
|
|
35385
|
+
"explicitId": "openwop.requirement.prompts.render-unbound-required-refused",
|
|
35386
|
+
"citations": [
|
|
35387
|
+
{
|
|
35388
|
+
"section": null,
|
|
35389
|
+
"requirement": null,
|
|
35390
|
+
"interpolated": true
|
|
35391
|
+
}
|
|
35392
|
+
]
|
|
35393
|
+
},
|
|
35394
|
+
{
|
|
35395
|
+
"id": "openwop.it.v2-prompt-resolution-chain-event.every-agent-prompt-resolved-records-the-chain-it-walked-with-one-applied-layer-m",
|
|
35396
|
+
"file": "v2-prompt-resolution-chain-event.test.ts",
|
|
35397
|
+
"line": 37,
|
|
35398
|
+
"title": "every agent.prompt-resolved records the chain it walked, with one applied layer mirrored by resolved",
|
|
35399
|
+
"explicitId": "openwop.requirement.prompts.resolution-chain-record",
|
|
35400
|
+
"citations": [
|
|
35401
|
+
{
|
|
35402
|
+
"section": null,
|
|
35403
|
+
"requirement": null,
|
|
35404
|
+
"interpolated": true
|
|
35405
|
+
}
|
|
35406
|
+
]
|
|
35407
|
+
},
|
|
35408
|
+
{
|
|
35409
|
+
"id": "openwop.it.v2-prompt-template-shape.prompt-kind-is-a-string-enum-of-exactly-the-four-kinds",
|
|
35410
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
35411
|
+
"line": 44,
|
|
35412
|
+
"title": "prompt-kind is a string enum of exactly the four kinds",
|
|
35413
|
+
"explicitId": "openwop.requirement.prompts.prompt-kind-enum",
|
|
35414
|
+
"citations": [
|
|
35415
|
+
{
|
|
35416
|
+
"section": "schemas/v2/prompt-kind.schema.json",
|
|
35417
|
+
"requirement": "prompt-kind MUST be type string"
|
|
35418
|
+
},
|
|
35419
|
+
{
|
|
35420
|
+
"section": "schemas/v2/prompt-kind.schema.json",
|
|
35421
|
+
"requirement": "prompt-kind MUST be exactly system, user, few-shot, schema-hint"
|
|
35422
|
+
}
|
|
35423
|
+
]
|
|
35424
|
+
},
|
|
35425
|
+
{
|
|
35426
|
+
"id": "openwop.it.v2-prompt-template-shape.a-minimal-and-a-full-prompttemplate-validate-a-missing-text-a-non-semver-version",
|
|
35427
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
35428
|
+
"line": 50,
|
|
35429
|
+
"title": "a minimal and a full PromptTemplate validate; a missing text, a non-SemVer version, a bad templateId or kind, or a dashed variable name is rejected",
|
|
35430
|
+
"explicitId": "openwop.requirement.prompts.prompt-template-shape",
|
|
35431
|
+
"citations": [
|
|
35432
|
+
{
|
|
35433
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
35434
|
+
"requirement": null,
|
|
35435
|
+
"interpolated": true
|
|
35436
|
+
},
|
|
35437
|
+
{
|
|
35438
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
35439
|
+
"requirement": null,
|
|
35440
|
+
"interpolated": true
|
|
35441
|
+
},
|
|
35442
|
+
{
|
|
35443
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
35444
|
+
"requirement": "text is REQUIRED"
|
|
35445
|
+
},
|
|
35446
|
+
{
|
|
35447
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
35448
|
+
"requirement": "version MUST be SemVer"
|
|
35449
|
+
},
|
|
35450
|
+
{
|
|
35451
|
+
"section": "schemas/v2/ids.schema.json §templateId",
|
|
35452
|
+
"requirement": "templateId MUST match the templateId grammar (no /)"
|
|
35453
|
+
},
|
|
35454
|
+
{
|
|
35455
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
35456
|
+
"requirement": "kind MUST be one of the four"
|
|
35457
|
+
},
|
|
35458
|
+
{
|
|
35459
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
35460
|
+
"requirement": "a variable name MUST be a templating identifier (no dashes)"
|
|
35461
|
+
}
|
|
35462
|
+
]
|
|
35463
|
+
},
|
|
35464
|
+
{
|
|
35465
|
+
"id": "openwop.it.v2-prompt-template-shape.prompttemplate-is-closed-an-unknown-property-is-rejected-an-extension-prefixed-o",
|
|
35466
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
35467
|
+
"line": 67,
|
|
35468
|
+
"title": "PromptTemplate is closed: an unknown property is rejected, an extension-prefixed one admitted, and a pack meta must carry its stamps",
|
|
35469
|
+
"explicitId": "openwop.requirement.prompts.prompt-template-closed",
|
|
35470
|
+
"citations": [
|
|
35471
|
+
{
|
|
35472
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
35473
|
+
"requirement": "an unknown top-level property MUST be rejected"
|
|
35474
|
+
},
|
|
35475
|
+
{
|
|
35476
|
+
"section": null,
|
|
35477
|
+
"requirement": "an x- extension property MUST be admitted",
|
|
35478
|
+
"interpolated": true
|
|
35479
|
+
},
|
|
35480
|
+
{
|
|
35481
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
35482
|
+
"requirement": "PromptVariable is closed"
|
|
35483
|
+
},
|
|
35484
|
+
{
|
|
35485
|
+
"section": "host-services.md §Library",
|
|
35486
|
+
"requirement": "a pack template MUST carry meta.packName and meta.packVersion"
|
|
35487
|
+
},
|
|
35488
|
+
{
|
|
35489
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
35490
|
+
"requirement": "a stamped pack template MUST validate"
|
|
35491
|
+
}
|
|
35492
|
+
]
|
|
35493
|
+
},
|
|
35494
|
+
{
|
|
35495
|
+
"id": "openwop.it.v2-prompt-template-shape.the-string-and-object-forms-validate-a-missing-prefix-a-non-semver-version-a-mis",
|
|
35496
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
35497
|
+
"line": 77,
|
|
35498
|
+
"title": "the string and object forms validate; a missing prefix, a non-SemVer version, a missing templateId or an unknown property is rejected",
|
|
35499
|
+
"explicitId": "openwop.requirement.prompts.prompt-ref-forms",
|
|
35500
|
+
"citations": [
|
|
35501
|
+
{
|
|
35502
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
35503
|
+
"requirement": null,
|
|
35504
|
+
"interpolated": true
|
|
35505
|
+
},
|
|
35506
|
+
{
|
|
35507
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
35508
|
+
"requirement": "the object form with templateId alone MUST validate"
|
|
35509
|
+
},
|
|
35510
|
+
{
|
|
35511
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
35512
|
+
"requirement": "the full object form MUST validate"
|
|
35513
|
+
},
|
|
35514
|
+
{
|
|
35515
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
35516
|
+
"requirement": "a string ref MUST start with prompt:"
|
|
35517
|
+
},
|
|
35518
|
+
{
|
|
35519
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
35520
|
+
"requirement": "a string ref version MUST be SemVer"
|
|
35521
|
+
},
|
|
35522
|
+
{
|
|
35523
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
35524
|
+
"requirement": "the object form MUST carry templateId"
|
|
35525
|
+
},
|
|
35526
|
+
{
|
|
35527
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
35528
|
+
"requirement": "the object form is closed"
|
|
35529
|
+
}
|
|
35530
|
+
]
|
|
35531
|
+
},
|
|
35532
|
+
{
|
|
35533
|
+
"id": "openwop.it.v2-prompt-template-shape.a-kind-prompt-pack-validates-and-carries-no-nodes-or-chains",
|
|
35534
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
35535
|
+
"line": 91,
|
|
35536
|
+
"title": "a kind prompt pack validates and carries no nodes or chains",
|
|
35537
|
+
"explicitId": "openwop.requirement.prompts.prompt-pack-manifest-shape",
|
|
35538
|
+
"citations": [
|
|
35539
|
+
{
|
|
35540
|
+
"section": "schemas/v2/prompt-pack-manifest.schema.json",
|
|
35541
|
+
"requirement": null,
|
|
35542
|
+
"interpolated": true
|
|
35543
|
+
},
|
|
35544
|
+
{
|
|
35545
|
+
"section": "host-services.md §Library",
|
|
35546
|
+
"requirement": "a kind prompt pack MUST NOT carry nodes[]"
|
|
35547
|
+
},
|
|
35548
|
+
{
|
|
35549
|
+
"section": "host-services.md §Library",
|
|
35550
|
+
"requirement": "a kind prompt pack MUST NOT carry chains[]"
|
|
35551
|
+
},
|
|
35552
|
+
{
|
|
35553
|
+
"section": "schemas/v2/prompt-pack-manifest.schema.json",
|
|
35554
|
+
"requirement": "kind MUST be prompt"
|
|
35555
|
+
},
|
|
35556
|
+
{
|
|
35557
|
+
"section": "schemas/v2/prompt-pack-manifest.schema.json",
|
|
35558
|
+
"requirement": "a prompt pack MUST ship at least one template"
|
|
35559
|
+
}
|
|
35560
|
+
]
|
|
35561
|
+
},
|
|
35562
|
+
{
|
|
35563
|
+
"id": "openwop.it.v2-prompt-template-shape.the-prompts-record-when-advertised-validates-against-the-v2-capabilities-schema",
|
|
35564
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
35565
|
+
"line": 102,
|
|
35566
|
+
"title": "the prompts record, when advertised, validates against the v2 capabilities schema",
|
|
35567
|
+
"explicitId": "openwop.requirement.prompts.capability-record-shape",
|
|
35568
|
+
"citations": [
|
|
35569
|
+
{
|
|
35570
|
+
"section": "schemas/v2/capabilities.schema.json §prompts",
|
|
35571
|
+
"requirement": null,
|
|
35572
|
+
"interpolated": true
|
|
35573
|
+
}
|
|
35574
|
+
]
|
|
35575
|
+
},
|
|
33474
35576
|
{
|
|
33475
35577
|
"id": "openwop.it.v2-protected-resource-metadata.serves-rfc-9728-metadata-unauthenticated-at-the-uri-derived-from-its-resource-id",
|
|
33476
35578
|
"file": "v2-protected-resource-metadata.test.ts",
|
|
@@ -33580,6 +35682,174 @@
|
|
|
33580
35682
|
}
|
|
33581
35683
|
]
|
|
33582
35684
|
},
|
|
35685
|
+
{
|
|
35686
|
+
"id": "openwop.it.v2-provider-usage-advertisement.the-providerusage-record-validates-against-its-capabilities-schema-seat",
|
|
35687
|
+
"file": "v2-provider-usage-advertisement.test.ts",
|
|
35688
|
+
"line": 38,
|
|
35689
|
+
"title": "the providerUsage record validates against its capabilities-schema seat",
|
|
35690
|
+
"explicitId": "openwop.requirement.provider-usage.advert-record-schema",
|
|
35691
|
+
"citations": [
|
|
35692
|
+
{
|
|
35693
|
+
"section": null,
|
|
35694
|
+
"requirement": null,
|
|
35695
|
+
"interpolated": true
|
|
35696
|
+
}
|
|
35697
|
+
]
|
|
35698
|
+
},
|
|
35699
|
+
{
|
|
35700
|
+
"id": "openwop.it.v2-provider-usage-advertisement.providerusage-costestimates-is-one-boolean",
|
|
35701
|
+
"file": "v2-provider-usage-advertisement.test.ts",
|
|
35702
|
+
"line": 46,
|
|
35703
|
+
"title": "providerUsage.costEstimates is one boolean",
|
|
35704
|
+
"explicitId": "openwop.requirement.provider-usage.cost-estimates-boolean",
|
|
35705
|
+
"citations": [
|
|
35706
|
+
{
|
|
35707
|
+
"section": null,
|
|
35708
|
+
"requirement": null,
|
|
35709
|
+
"interpolated": true
|
|
35710
|
+
}
|
|
35711
|
+
]
|
|
35712
|
+
},
|
|
35713
|
+
{
|
|
35714
|
+
"id": "openwop.it.v2-provider-usage-advertisement.providerusage-currency-is-an-iso-4217-code",
|
|
35715
|
+
"file": "v2-provider-usage-advertisement.test.ts",
|
|
35716
|
+
"line": 54,
|
|
35717
|
+
"title": "providerUsage.currency is an ISO 4217 code",
|
|
35718
|
+
"explicitId": "openwop.requirement.provider-usage.currency-iso-4217",
|
|
35719
|
+
"citations": [
|
|
35720
|
+
{
|
|
35721
|
+
"section": null,
|
|
35722
|
+
"requirement": null,
|
|
35723
|
+
"interpolated": true
|
|
35724
|
+
}
|
|
35725
|
+
]
|
|
35726
|
+
},
|
|
35727
|
+
{
|
|
35728
|
+
"id": "openwop.it.v2-provider-usage-emission.a-live-model-run-carries-provider-usage-each-before-its-node-completed-and-each",
|
|
35729
|
+
"file": "v2-provider-usage-emission.test.ts",
|
|
35730
|
+
"line": 38,
|
|
35731
|
+
"title": "a live-model run carries provider.usage, each before its node.completed and each payload valid",
|
|
35732
|
+
"explicitId": "openwop.requirement.provider-usage.emitted-before-node-completed",
|
|
35733
|
+
"citations": [
|
|
35734
|
+
{
|
|
35735
|
+
"section": null,
|
|
35736
|
+
"requirement": null,
|
|
35737
|
+
"interpolated": true
|
|
35738
|
+
}
|
|
35739
|
+
]
|
|
35740
|
+
},
|
|
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
|
+
{
|
|
35826
|
+
"id": "openwop.it.v2-purpose-propagation-advertisement.the-purposepropagation-record-validates-against-its-capabilities-schema-seat",
|
|
35827
|
+
"file": "v2-purpose-propagation-advertisement.test.ts",
|
|
35828
|
+
"line": 35,
|
|
35829
|
+
"title": "the purposePropagation record validates against its capabilities-schema seat",
|
|
35830
|
+
"explicitId": "openwop.requirement.purpose-propagation.advert-record-schema",
|
|
35831
|
+
"citations": [
|
|
35832
|
+
{
|
|
35833
|
+
"section": null,
|
|
35834
|
+
"requirement": null,
|
|
35835
|
+
"interpolated": true
|
|
35836
|
+
}
|
|
35837
|
+
]
|
|
35838
|
+
},
|
|
35839
|
+
{
|
|
35840
|
+
"id": "openwop.it.v2-purpose-propagation-advertisement.purposepropagation-propagatesonward-is-a-boolean",
|
|
35841
|
+
"file": "v2-purpose-propagation-advertisement.test.ts",
|
|
35842
|
+
"line": 44,
|
|
35843
|
+
"title": "purposePropagation.propagatesOnward is a boolean",
|
|
35844
|
+
"explicitId": "openwop.requirement.purpose-propagation.propagates-onward-boolean",
|
|
35845
|
+
"citations": [
|
|
35846
|
+
{
|
|
35847
|
+
"section": null,
|
|
35848
|
+
"requirement": null,
|
|
35849
|
+
"interpolated": true
|
|
35850
|
+
}
|
|
35851
|
+
]
|
|
35852
|
+
},
|
|
33583
35853
|
{
|
|
33584
35854
|
"id": "openwop.it.v2-queue-cross-tenant-isolation.a-message-tenant-a-publishes-on-topic-t-is-never-consumed-by-tenant-b-on-t-and-a",
|
|
33585
35855
|
"file": "v2-queue-cross-tenant-isolation.test.ts",
|
|
@@ -34062,6 +36332,48 @@
|
|
|
34062
36332
|
}
|
|
34063
36333
|
]
|
|
34064
36334
|
},
|
|
36335
|
+
{
|
|
36336
|
+
"id": "openwop.it.v2-run-execution-bounds.advertised-limits-maxrundurationms-and-maxloopiterations-are-well-formed",
|
|
36337
|
+
"file": "v2-run-execution-bounds.test.ts",
|
|
36338
|
+
"line": 46,
|
|
36339
|
+
"title": "advertised limits.maxRunDurationMs and maxLoopIterations are well-formed",
|
|
36340
|
+
"explicitId": "openwop.requirement.runs.limits-bounds-shape",
|
|
36341
|
+
"citations": [
|
|
36342
|
+
{
|
|
36343
|
+
"section": null,
|
|
36344
|
+
"requirement": null,
|
|
36345
|
+
"interpolated": true
|
|
36346
|
+
}
|
|
36347
|
+
]
|
|
36348
|
+
},
|
|
36349
|
+
{
|
|
36350
|
+
"id": "openwop.it.v2-run-execution-bounds.an-out-of-range-runtimeoutms-is-refused-400-validation-error-at-create",
|
|
36351
|
+
"file": "v2-run-execution-bounds.test.ts",
|
|
36352
|
+
"line": 56,
|
|
36353
|
+
"title": "an out-of-range runTimeoutMs is refused 400 validation_error at create",
|
|
36354
|
+
"explicitId": "openwop.requirement.runs.run-timeout-out-of-range-refused",
|
|
36355
|
+
"citations": [
|
|
36356
|
+
{
|
|
36357
|
+
"section": null,
|
|
36358
|
+
"requirement": null,
|
|
36359
|
+
"interpolated": true
|
|
36360
|
+
}
|
|
36361
|
+
]
|
|
36362
|
+
},
|
|
36363
|
+
{
|
|
36364
|
+
"id": "openwop.it.v2-run-execution-bounds.a-run-exceeding-runtimeoutms-fails-run-timeout-with-cap-breached-kind-run-durati",
|
|
36365
|
+
"file": "v2-run-execution-bounds.test.ts",
|
|
36366
|
+
"line": 62,
|
|
36367
|
+
"title": "a run exceeding runTimeoutMs fails run_timeout with cap.breached { kind: run-duration }",
|
|
36368
|
+
"explicitId": "openwop.requirement.runs.run-timeout-breach",
|
|
36369
|
+
"citations": [
|
|
36370
|
+
{
|
|
36371
|
+
"section": null,
|
|
36372
|
+
"requirement": null,
|
|
36373
|
+
"interpolated": true
|
|
36374
|
+
}
|
|
36375
|
+
]
|
|
36376
|
+
},
|
|
34065
36377
|
{
|
|
34066
36378
|
"id": "openwop.it.v2-run-fork-ancestry.a-branch-fork-is-not-a-composition-child-its-ancestry-parent-is-null",
|
|
34067
36379
|
"file": "v2-run-fork-ancestry.test.ts",
|
|
@@ -34452,6 +36764,34 @@
|
|
|
34452
36764
|
}
|
|
34453
36765
|
]
|
|
34454
36766
|
},
|
|
36767
|
+
{
|
|
36768
|
+
"id": "openwop.it.v2-scheduling-advertisement.the-scheduling-record-validates-against-its-capabilities-schema-seat",
|
|
36769
|
+
"file": "v2-scheduling-advertisement.test.ts",
|
|
36770
|
+
"line": 38,
|
|
36771
|
+
"title": "the scheduling record validates against its capabilities-schema seat",
|
|
36772
|
+
"explicitId": "openwop.requirement.scheduling.advert-record-schema",
|
|
36773
|
+
"citations": [
|
|
36774
|
+
{
|
|
36775
|
+
"section": null,
|
|
36776
|
+
"requirement": null,
|
|
36777
|
+
"interpolated": true
|
|
36778
|
+
}
|
|
36779
|
+
]
|
|
36780
|
+
},
|
|
36781
|
+
{
|
|
36782
|
+
"id": "openwop.it.v2-scheduling-advertisement.scheduling-cron-delayed-and-calendar-are-booleans",
|
|
36783
|
+
"file": "v2-scheduling-advertisement.test.ts",
|
|
36784
|
+
"line": 47,
|
|
36785
|
+
"title": "scheduling.cron, delayed and calendar are booleans",
|
|
36786
|
+
"explicitId": "openwop.requirement.scheduling.forms-boolean",
|
|
36787
|
+
"citations": [
|
|
36788
|
+
{
|
|
36789
|
+
"section": null,
|
|
36790
|
+
"requirement": null,
|
|
36791
|
+
"interpolated": true
|
|
36792
|
+
}
|
|
36793
|
+
]
|
|
36794
|
+
},
|
|
34455
36795
|
{
|
|
34456
36796
|
"id": "openwop.it.v2-secret-canary-absent.a-secret-resolved-from-the-host-s-store-appears-on-no-readable-surface-of-the-ru",
|
|
34457
36797
|
"file": "v2-secret-canary-absent.test.ts",
|
|
@@ -34601,6 +36941,144 @@
|
|
|
34601
36941
|
}
|
|
34602
36942
|
]
|
|
34603
36943
|
},
|
|
36944
|
+
{
|
|
36945
|
+
"id": "openwop.it.v2-self-hosted-runner-advertisement.the-selfhostedrunner-record-validates-against-its-capabilities-schema-seat",
|
|
36946
|
+
"file": "v2-self-hosted-runner-advertisement.test.ts",
|
|
36947
|
+
"line": 37,
|
|
36948
|
+
"title": "the selfHostedRunner record validates against its capabilities-schema seat",
|
|
36949
|
+
"explicitId": "openwop.requirement.self-hosted-runner.advert-record-schema",
|
|
36950
|
+
"citations": [
|
|
36951
|
+
{
|
|
36952
|
+
"section": null,
|
|
36953
|
+
"requirement": null,
|
|
36954
|
+
"interpolated": true
|
|
36955
|
+
}
|
|
36956
|
+
]
|
|
36957
|
+
},
|
|
36958
|
+
{
|
|
36959
|
+
"id": "openwop.it.v2-self-hosted-runner-advertisement.selfhostedrunner-dispatchkinds-lists-model-tool-or-both",
|
|
36960
|
+
"file": "v2-self-hosted-runner-advertisement.test.ts",
|
|
36961
|
+
"line": 45,
|
|
36962
|
+
"title": "selfHostedRunner.dispatchKinds lists model, tool or both",
|
|
36963
|
+
"explicitId": "openwop.requirement.self-hosted-runner.dispatch-kinds",
|
|
36964
|
+
"citations": [
|
|
36965
|
+
{
|
|
36966
|
+
"section": null,
|
|
36967
|
+
"requirement": null,
|
|
36968
|
+
"interpolated": true
|
|
36969
|
+
}
|
|
36970
|
+
]
|
|
36971
|
+
},
|
|
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
|
+
},
|
|
34604
37082
|
{
|
|
34605
37083
|
"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",
|
|
34606
37084
|
"file": "v2-sse-last-event-id-cursor.test.ts",
|
|
@@ -35072,6 +37550,34 @@
|
|
|
35072
37550
|
}
|
|
35073
37551
|
]
|
|
35074
37552
|
},
|
|
37553
|
+
{
|
|
37554
|
+
"id": "openwop.it.v2-sub-workflow-advertisement.the-subworkflow-record-validates-against-its-capabilities-schema-seat",
|
|
37555
|
+
"file": "v2-sub-workflow-advertisement.test.ts",
|
|
37556
|
+
"line": 36,
|
|
37557
|
+
"title": "the subWorkflow record validates against its capabilities-schema seat",
|
|
37558
|
+
"explicitId": "openwop.requirement.sub-workflow.advert-record-schema",
|
|
37559
|
+
"citations": [
|
|
37560
|
+
{
|
|
37561
|
+
"section": null,
|
|
37562
|
+
"requirement": null,
|
|
37563
|
+
"interpolated": true
|
|
37564
|
+
}
|
|
37565
|
+
]
|
|
37566
|
+
},
|
|
37567
|
+
{
|
|
37568
|
+
"id": "openwop.it.v2-sub-workflow-advertisement.subworkflow-inputmapping-is-one-boolean",
|
|
37569
|
+
"file": "v2-sub-workflow-advertisement.test.ts",
|
|
37570
|
+
"line": 45,
|
|
37571
|
+
"title": "subWorkflow.inputMapping is one boolean",
|
|
37572
|
+
"explicitId": "openwop.requirement.sub-workflow.input-mapping-boolean",
|
|
37573
|
+
"citations": [
|
|
37574
|
+
{
|
|
37575
|
+
"section": null,
|
|
37576
|
+
"requirement": null,
|
|
37577
|
+
"interpolated": true
|
|
37578
|
+
}
|
|
37579
|
+
]
|
|
37580
|
+
},
|
|
35075
37581
|
{
|
|
35076
37582
|
"id": "openwop.it.v2-subject-link-record.the-link-formed-across-scim-and-saml-is-a-closed-subjectlink-record",
|
|
35077
37583
|
"file": "v2-subject-link-record.test.ts",
|
|
@@ -35116,6 +37622,54 @@
|
|
|
35116
37622
|
}
|
|
35117
37623
|
]
|
|
35118
37624
|
},
|
|
37625
|
+
{
|
|
37626
|
+
"id": "openwop.it.v2-subworkflow-input-mapping.inputmapping-seeds-the-child-variable-bag-at-creation",
|
|
37627
|
+
"file": "v2-subworkflow-input-mapping.test.ts",
|
|
37628
|
+
"line": 57,
|
|
37629
|
+
"title": "inputMapping seeds the child variable bag at creation",
|
|
37630
|
+
"explicitId": null,
|
|
37631
|
+
"citations": []
|
|
37632
|
+
},
|
|
37633
|
+
{
|
|
37634
|
+
"id": "openwop.it.v2-subworkflow-input-mapping.the-mapped-parent-value-lands-after-and-over-the-child-defaultvalue",
|
|
37635
|
+
"file": "v2-subworkflow-input-mapping.test.ts",
|
|
37636
|
+
"line": 63,
|
|
37637
|
+
"title": "the mapped parent value lands after and over the child defaultValue",
|
|
37638
|
+
"explicitId": null,
|
|
37639
|
+
"citations": []
|
|
37640
|
+
},
|
|
37641
|
+
{
|
|
37642
|
+
"id": "openwop.it.v2-subworkflow-input-mapping.an-unset-parent-variable-arrives-undefined-never-an-error-or-null",
|
|
37643
|
+
"file": "v2-subworkflow-input-mapping.test.ts",
|
|
37644
|
+
"line": 69,
|
|
37645
|
+
"title": "an unset parent variable arrives undefined, never an error or null",
|
|
37646
|
+
"explicitId": null,
|
|
37647
|
+
"citations": []
|
|
37648
|
+
},
|
|
37649
|
+
{
|
|
37650
|
+
"id": "openwop.it.v2-subworkflow-linkage.node-completed-for-the-core-subworkflow-node-carries-outputs-childrunid-and-outp",
|
|
37651
|
+
"file": "v2-subworkflow-linkage.test.ts",
|
|
37652
|
+
"line": 59,
|
|
37653
|
+
"title": "node.completed for the core.subWorkflow node carries outputs.childRunId and outputs.childStatus",
|
|
37654
|
+
"explicitId": null,
|
|
37655
|
+
"citations": []
|
|
37656
|
+
},
|
|
37657
|
+
{
|
|
37658
|
+
"id": "openwop.it.v2-subworkflow-linkage.outputmapping-copies-the-child-variable-into-the-parent-after-the-child-complete",
|
|
37659
|
+
"file": "v2-subworkflow-linkage.test.ts",
|
|
37660
|
+
"line": 65,
|
|
37661
|
+
"title": "outputMapping copies the child variable into the parent after the child completes",
|
|
37662
|
+
"explicitId": null,
|
|
37663
|
+
"citations": []
|
|
37664
|
+
},
|
|
37665
|
+
{
|
|
37666
|
+
"id": "openwop.it.v2-subworkflow-linkage.getrunancestry-names-the-parent-run-with-cause-core-subworkflow",
|
|
37667
|
+
"file": "v2-subworkflow-linkage.test.ts",
|
|
37668
|
+
"line": 71,
|
|
37669
|
+
"title": "getRunAncestry names the parent run with cause core.subWorkflow",
|
|
37670
|
+
"explicitId": null,
|
|
37671
|
+
"citations": []
|
|
37672
|
+
},
|
|
35119
37673
|
{
|
|
35120
37674
|
"id": "openwop.it.v2-table-schema-enforcement.a-well-typed-insert-completes-positive-control",
|
|
35121
37675
|
"file": "v2-table-schema-enforcement.test.ts",
|
|
@@ -35478,6 +38032,76 @@
|
|
|
35478
38032
|
}
|
|
35479
38033
|
]
|
|
35480
38034
|
},
|
|
38035
|
+
{
|
|
38036
|
+
"id": "openwop.it.v2-ui-plugins-advertisement.the-uiplugins-record-validates-against-its-capabilities-schema-seat",
|
|
38037
|
+
"file": "v2-ui-plugins-advertisement.test.ts",
|
|
38038
|
+
"line": 41,
|
|
38039
|
+
"title": "the uiPlugins record validates against its capabilities-schema seat",
|
|
38040
|
+
"explicitId": "openwop.requirement.ui-plugins.advert-record-schema",
|
|
38041
|
+
"citations": [
|
|
38042
|
+
{
|
|
38043
|
+
"section": null,
|
|
38044
|
+
"requirement": null,
|
|
38045
|
+
"interpolated": true
|
|
38046
|
+
}
|
|
38047
|
+
]
|
|
38048
|
+
},
|
|
38049
|
+
{
|
|
38050
|
+
"id": "openwop.it.v2-ui-plugins-advertisement.uiplugins-isolation-is-a-closed-mechanism-or-an-x-host-value",
|
|
38051
|
+
"file": "v2-ui-plugins-advertisement.test.ts",
|
|
38052
|
+
"line": 50,
|
|
38053
|
+
"title": "uiPlugins.isolation is a closed mechanism or an x-host value",
|
|
38054
|
+
"explicitId": "openwop.requirement.ui-plugins.isolation-model",
|
|
38055
|
+
"citations": [
|
|
38056
|
+
{
|
|
38057
|
+
"section": null,
|
|
38058
|
+
"requirement": null,
|
|
38059
|
+
"interpolated": true
|
|
38060
|
+
}
|
|
38061
|
+
]
|
|
38062
|
+
},
|
|
38063
|
+
{
|
|
38064
|
+
"id": "openwop.it.v2-ui-plugins-advertisement.uiplugins-surfaces-are-unique-members-of-the-closed-surface-set",
|
|
38065
|
+
"file": "v2-ui-plugins-advertisement.test.ts",
|
|
38066
|
+
"line": 59,
|
|
38067
|
+
"title": "uiPlugins.surfaces are unique members of the closed surface set",
|
|
38068
|
+
"explicitId": "openwop.requirement.ui-plugins.surfaces-closed",
|
|
38069
|
+
"citations": [
|
|
38070
|
+
{
|
|
38071
|
+
"section": null,
|
|
38072
|
+
"requirement": null,
|
|
38073
|
+
"interpolated": true
|
|
38074
|
+
}
|
|
38075
|
+
]
|
|
38076
|
+
},
|
|
38077
|
+
{
|
|
38078
|
+
"id": "openwop.it.v2-ui-plugins-advertisement.uiplugins-hostapi-are-unique-members-of-the-ui-plugin-1-method-set",
|
|
38079
|
+
"file": "v2-ui-plugins-advertisement.test.ts",
|
|
38080
|
+
"line": 68,
|
|
38081
|
+
"title": "uiPlugins.hostApi are unique members of the ui-plugin/1 method set",
|
|
38082
|
+
"explicitId": "openwop.requirement.ui-plugins.host-api-closed",
|
|
38083
|
+
"citations": [
|
|
38084
|
+
{
|
|
38085
|
+
"section": null,
|
|
38086
|
+
"requirement": null,
|
|
38087
|
+
"interpolated": true
|
|
38088
|
+
}
|
|
38089
|
+
]
|
|
38090
|
+
},
|
|
38091
|
+
{
|
|
38092
|
+
"id": "openwop.it.v2-ui-plugins-advertisement.uiplugins-maxentrybytes-is-a-positive-integer",
|
|
38093
|
+
"file": "v2-ui-plugins-advertisement.test.ts",
|
|
38094
|
+
"line": 77,
|
|
38095
|
+
"title": "uiPlugins.maxEntryBytes is a positive integer",
|
|
38096
|
+
"explicitId": "openwop.requirement.ui-plugins.max-entry-bytes",
|
|
38097
|
+
"citations": [
|
|
38098
|
+
{
|
|
38099
|
+
"section": null,
|
|
38100
|
+
"requirement": null,
|
|
38101
|
+
"interpolated": true
|
|
38102
|
+
}
|
|
38103
|
+
]
|
|
38104
|
+
},
|
|
35481
38105
|
{
|
|
35482
38106
|
"id": "openwop.it.v2-unadvertised-operation-not-found.get-prompts-answers-404-not-found-when-prompts-endpointssupported-is-not-adverti",
|
|
35483
38107
|
"file": "v2-unadvertised-operation-not-found.test.ts",
|
|
@@ -43981,6 +46605,46 @@
|
|
|
43981
46605
|
}
|
|
43982
46606
|
]
|
|
43983
46607
|
},
|
|
46608
|
+
{
|
|
46609
|
+
"id": "openwop.it.v2-conversation-payload-mirrors.conversationopened-seats-every-field-conversationopenedpayload-carries",
|
|
46610
|
+
"file": "v2-conversation-payload-mirrors.test.ts",
|
|
46611
|
+
"line": 44,
|
|
46612
|
+
"title": "conversationOpened seats every field ConversationOpenedPayload carries",
|
|
46613
|
+
"explicitId": "openwop.requirement.conversation.payload-mirrors-agree",
|
|
46614
|
+
"citations": [
|
|
46615
|
+
{
|
|
46616
|
+
"section": "conversation.md",
|
|
46617
|
+
"requirement": null,
|
|
46618
|
+
"interpolated": true
|
|
46619
|
+
}
|
|
46620
|
+
]
|
|
46621
|
+
},
|
|
46622
|
+
{
|
|
46623
|
+
"id": "openwop.it.v2-conversation-payload-mirrors.the-inlined-conversationturn-carries-every-field-of-conversation-turn-schema-jso",
|
|
46624
|
+
"file": "v2-conversation-payload-mirrors.test.ts",
|
|
46625
|
+
"line": 51,
|
|
46626
|
+
"title": "the inlined ConversationTurn carries every field of conversation-turn.schema.json",
|
|
46627
|
+
"explicitId": "openwop.requirement.conversation.payload-mirrors-agree",
|
|
46628
|
+
"citations": [
|
|
46629
|
+
{
|
|
46630
|
+
"section": "conversation.md",
|
|
46631
|
+
"requirement": "the ConversationTurn mirror MUST carry the same top-level fields as conversation-turn.schema.json"
|
|
46632
|
+
}
|
|
46633
|
+
]
|
|
46634
|
+
},
|
|
46635
|
+
{
|
|
46636
|
+
"id": "openwop.it.v2-conversation-payload-mirrors.the-inlined-conversationturn-agent-carries-every-field-of-the-source-agent",
|
|
46637
|
+
"file": "v2-conversation-payload-mirrors.test.ts",
|
|
46638
|
+
"line": 56,
|
|
46639
|
+
"title": "the inlined ConversationTurn.agent carries every field of the source agent",
|
|
46640
|
+
"explicitId": "openwop.requirement.conversation.payload-mirrors-agree",
|
|
46641
|
+
"citations": [
|
|
46642
|
+
{
|
|
46643
|
+
"section": "conversation.md",
|
|
46644
|
+
"requirement": "ConversationTurn.agent MUST carry the same fields as conversation-turn.schema.json agent (incl. `model`)"
|
|
46645
|
+
}
|
|
46646
|
+
]
|
|
46647
|
+
},
|
|
43984
46648
|
{
|
|
43985
46649
|
"id": "openwop.it.v2-corpus-tag-pinned.every-vendoring-consumer-in-the-cross-repo-inventory-records-a-published-corpus",
|
|
43986
46650
|
"file": "v2-corpus-tag-pinned.test.ts",
|