@openwop/openwop-conformance 2.45.14 → 2.45.15
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 +19 -0
- package/README.md +2 -2
- package/dist/spec-artifacts.lock.json +2 -2
- package/package.json +2 -2
- package/requirements.json +1391 -4
- package/scenario-majors.json +65 -2
- package/schemas/CORPUS-STAMP.json +9 -9
- package/src/lib/backpressure-witness.ts +2 -2
- package/src/lib/budget-witness.ts +3 -3
- 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 +212 -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/run-bounds-witness.ts +111 -0
- package/src/lib/scratch-host.ts +4 -1
- package/src/lib/table-schema-witness.ts +3 -1
- 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-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-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-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-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-run-execution-bounds.test.ts +67 -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": 690,
|
|
6
|
+
"tests": 2652,
|
|
7
|
+
"withStableId": 2652,
|
|
8
8
|
"interpolatedTitles": 0,
|
|
9
|
-
"explicitIds":
|
|
9
|
+
"explicitIds": 2529
|
|
10
10
|
},
|
|
11
11
|
"records": [
|
|
12
12
|
{
|
|
@@ -28252,6 +28252,169 @@
|
|
|
28252
28252
|
}
|
|
28253
28253
|
]
|
|
28254
28254
|
},
|
|
28255
|
+
{
|
|
28256
|
+
"id": "openwop.it.v2-ai-envelope-shape-static.ai-envelope-schema-json-compiles-under-ajv-2020",
|
|
28257
|
+
"file": "v2-ai-envelope-shape-static.test.ts",
|
|
28258
|
+
"line": 58,
|
|
28259
|
+
"title": "ai-envelope.schema.json compiles under Ajv 2020",
|
|
28260
|
+
"explicitId": "openwop.requirement.ai-envelope.schemas-compile",
|
|
28261
|
+
"citations": [
|
|
28262
|
+
{
|
|
28263
|
+
"section": "events.md §AI envelopes: E1–E5",
|
|
28264
|
+
"requirement": "schemas/v2/ai-envelope.schema.json MUST compile"
|
|
28265
|
+
}
|
|
28266
|
+
]
|
|
28267
|
+
},
|
|
28268
|
+
{
|
|
28269
|
+
"id": "openwop.requirement.ai-envelope.schemas-compile",
|
|
28270
|
+
"file": "v2-ai-envelope-shape-static.test.ts",
|
|
28271
|
+
"line": 63,
|
|
28272
|
+
"title": null,
|
|
28273
|
+
"explicitId": "openwop.requirement.ai-envelope.schemas-compile",
|
|
28274
|
+
"citations": [
|
|
28275
|
+
{
|
|
28276
|
+
"section": "events.md §AI envelopes: E1–E5",
|
|
28277
|
+
"requirement": null,
|
|
28278
|
+
"interpolated": true
|
|
28279
|
+
}
|
|
28280
|
+
]
|
|
28281
|
+
},
|
|
28282
|
+
{
|
|
28283
|
+
"id": "openwop.it.v2-ai-envelope-shape-static.accepts-a-well-formed-envelope-carrying-correlationid-and-meta-source",
|
|
28284
|
+
"file": "v2-ai-envelope-shape-static.test.ts",
|
|
28285
|
+
"line": 72,
|
|
28286
|
+
"title": "accepts a well-formed envelope carrying correlationId and meta.source",
|
|
28287
|
+
"explicitId": "openwop.requirement.ai-envelope.well-formed-accepted",
|
|
28288
|
+
"citations": [
|
|
28289
|
+
{
|
|
28290
|
+
"section": "events.md §AI envelopes: E1–E5",
|
|
28291
|
+
"requirement": null,
|
|
28292
|
+
"interpolated": true
|
|
28293
|
+
}
|
|
28294
|
+
]
|
|
28295
|
+
},
|
|
28296
|
+
{
|
|
28297
|
+
"id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-missing-meta",
|
|
28298
|
+
"file": "v2-ai-envelope-shape-static.test.ts",
|
|
28299
|
+
"line": 77,
|
|
28300
|
+
"title": "rejects an envelope missing meta",
|
|
28301
|
+
"explicitId": "openwop.requirement.ai-envelope.meta-required",
|
|
28302
|
+
"citations": [
|
|
28303
|
+
{
|
|
28304
|
+
"section": "events.md §AI envelopes: E1–E5",
|
|
28305
|
+
"requirement": "an envelope without meta MUST be rejected"
|
|
28306
|
+
}
|
|
28307
|
+
]
|
|
28308
|
+
},
|
|
28309
|
+
{
|
|
28310
|
+
"id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-with-an-unknown-top-level-property",
|
|
28311
|
+
"file": "v2-ai-envelope-shape-static.test.ts",
|
|
28312
|
+
"line": 81,
|
|
28313
|
+
"title": "rejects an envelope with an unknown top-level property",
|
|
28314
|
+
"explicitId": "openwop.requirement.ai-envelope.top-level-closed",
|
|
28315
|
+
"citations": [
|
|
28316
|
+
{
|
|
28317
|
+
"section": "schemas/v2/ai-envelope.schema.json",
|
|
28318
|
+
"requirement": "the envelope is closed: an unknown top-level property MUST be rejected"
|
|
28319
|
+
}
|
|
28320
|
+
]
|
|
28321
|
+
},
|
|
28322
|
+
{
|
|
28323
|
+
"id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-missing-correlationid",
|
|
28324
|
+
"file": "v2-ai-envelope-shape-static.test.ts",
|
|
28325
|
+
"line": 85,
|
|
28326
|
+
"title": "rejects an envelope missing correlationId",
|
|
28327
|
+
"explicitId": "openwop.requirement.ai-envelope.correlation-id-required",
|
|
28328
|
+
"citations": [
|
|
28329
|
+
{
|
|
28330
|
+
"section": "events.md §AI envelopes: E1–E5",
|
|
28331
|
+
"requirement": "correlationId is REQUIRED on every envelope at v2 — an envelope without it MUST be rejected, never synthesized"
|
|
28332
|
+
}
|
|
28333
|
+
]
|
|
28334
|
+
},
|
|
28335
|
+
{
|
|
28336
|
+
"id": "openwop.it.v2-ai-envelope-shape-static.rejects-an-envelope-whose-meta-carries-no-source",
|
|
28337
|
+
"file": "v2-ai-envelope-shape-static.test.ts",
|
|
28338
|
+
"line": 89,
|
|
28339
|
+
"title": "rejects an envelope whose meta carries no source",
|
|
28340
|
+
"explicitId": "openwop.requirement.ai-envelope.meta-source-required",
|
|
28341
|
+
"citations": [
|
|
28342
|
+
{
|
|
28343
|
+
"section": "events.md §AI envelopes: E1–E5",
|
|
28344
|
+
"requirement": "meta.source is REQUIRED on every envelope at v2 — an envelope without it MUST be rejected"
|
|
28345
|
+
}
|
|
28346
|
+
]
|
|
28347
|
+
},
|
|
28348
|
+
{
|
|
28349
|
+
"id": "openwop.it.v2-ai-providers-advertisement.the-aiproviders-record-validates-against-its-capabilities-schema-seat",
|
|
28350
|
+
"file": "v2-ai-providers-advertisement.test.ts",
|
|
28351
|
+
"line": 55,
|
|
28352
|
+
"title": "the aiProviders record validates against its capabilities-schema seat",
|
|
28353
|
+
"explicitId": "openwop.requirement.ai-providers.advert-record-schema",
|
|
28354
|
+
"citations": [
|
|
28355
|
+
{
|
|
28356
|
+
"section": null,
|
|
28357
|
+
"requirement": null,
|
|
28358
|
+
"interpolated": true
|
|
28359
|
+
}
|
|
28360
|
+
]
|
|
28361
|
+
},
|
|
28362
|
+
{
|
|
28363
|
+
"id": "openwop.it.v2-ai-providers-advertisement.aiproviders-selfhosted-is-one-boolean",
|
|
28364
|
+
"file": "v2-ai-providers-advertisement.test.ts",
|
|
28365
|
+
"line": 63,
|
|
28366
|
+
"title": "aiProviders.selfHosted is one boolean",
|
|
28367
|
+
"explicitId": "openwop.requirement.ai-providers.self-hosted-boolean",
|
|
28368
|
+
"citations": [
|
|
28369
|
+
{
|
|
28370
|
+
"section": null,
|
|
28371
|
+
"requirement": null,
|
|
28372
|
+
"interpolated": true
|
|
28373
|
+
}
|
|
28374
|
+
]
|
|
28375
|
+
},
|
|
28376
|
+
{
|
|
28377
|
+
"id": "openwop.it.v2-ai-providers-advertisement.aiproviders-authmodes-is-one-flat-list-of-modes",
|
|
28378
|
+
"file": "v2-ai-providers-advertisement.test.ts",
|
|
28379
|
+
"line": 71,
|
|
28380
|
+
"title": "aiProviders.authModes is one flat list of modes",
|
|
28381
|
+
"explicitId": "openwop.requirement.ai-providers.auth-modes-flat-list",
|
|
28382
|
+
"citations": [
|
|
28383
|
+
{
|
|
28384
|
+
"section": null,
|
|
28385
|
+
"requirement": null,
|
|
28386
|
+
"interpolated": true
|
|
28387
|
+
}
|
|
28388
|
+
]
|
|
28389
|
+
},
|
|
28390
|
+
{
|
|
28391
|
+
"id": "openwop.it.v2-ai-providers-advertisement.aiproviders-maxinlinemediabytes-is-an-integer-of-at-least-1",
|
|
28392
|
+
"file": "v2-ai-providers-advertisement.test.ts",
|
|
28393
|
+
"line": 79,
|
|
28394
|
+
"title": "aiProviders.maxInlineMediaBytes is an integer of at least 1",
|
|
28395
|
+
"explicitId": "openwop.requirement.ai-providers.max-inline-media-bytes",
|
|
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-promptprefixcache-is-one-boolean",
|
|
28406
|
+
"file": "v2-ai-providers-advertisement.test.ts",
|
|
28407
|
+
"line": 87,
|
|
28408
|
+
"title": "aiProviders.promptPrefixCache is one boolean",
|
|
28409
|
+
"explicitId": "openwop.requirement.ai-providers.prompt-prefix-cache-boolean",
|
|
28410
|
+
"citations": [
|
|
28411
|
+
{
|
|
28412
|
+
"section": null,
|
|
28413
|
+
"requirement": null,
|
|
28414
|
+
"interpolated": true
|
|
28415
|
+
}
|
|
28416
|
+
]
|
|
28417
|
+
},
|
|
28255
28418
|
{
|
|
28256
28419
|
"id": "openwop.it.v2-approval-reject-disposition.a-rejected-gate-with-no-routing-edge-fails-the-run-with-approval-rejected",
|
|
28257
28420
|
"file": "v2-approval-reject-disposition.test.ts",
|
|
@@ -30120,6 +30283,234 @@
|
|
|
30120
30283
|
}
|
|
30121
30284
|
]
|
|
30122
30285
|
},
|
|
30286
|
+
{
|
|
30287
|
+
"id": "openwop.requirement.envelopes.reasoning-declared-optional-string",
|
|
30288
|
+
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30289
|
+
"line": 45,
|
|
30290
|
+
"title": null,
|
|
30291
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-declared-optional-string",
|
|
30292
|
+
"citations": [
|
|
30293
|
+
{
|
|
30294
|
+
"section": "events.md §envelopes",
|
|
30295
|
+
"requirement": null,
|
|
30296
|
+
"interpolated": true
|
|
30297
|
+
},
|
|
30298
|
+
{
|
|
30299
|
+
"section": "events.md §envelopes",
|
|
30300
|
+
"requirement": null,
|
|
30301
|
+
"interpolated": true
|
|
30302
|
+
},
|
|
30303
|
+
{
|
|
30304
|
+
"section": "events.md §envelopes",
|
|
30305
|
+
"requirement": null,
|
|
30306
|
+
"interpolated": true
|
|
30307
|
+
}
|
|
30308
|
+
]
|
|
30309
|
+
},
|
|
30310
|
+
{
|
|
30311
|
+
"id": "openwop.it.v2-envelope-reasoning-shape.schema-response-does-not-declare-reasoning-a-side-channel-ack",
|
|
30312
|
+
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30313
|
+
"line": 55,
|
|
30314
|
+
"title": "schema.response does not declare reasoning (a side-channel ack)",
|
|
30315
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-omitted-from-schema-response",
|
|
30316
|
+
"citations": [
|
|
30317
|
+
{
|
|
30318
|
+
"section": "RFC 0030 §A",
|
|
30319
|
+
"requirement": "schemas/v2/envelopes/schema.response.schema.json MUST exist"
|
|
30320
|
+
},
|
|
30321
|
+
{
|
|
30322
|
+
"section": "RFC 0030 §A",
|
|
30323
|
+
"requirement": "schema.response MUST NOT declare reasoning"
|
|
30324
|
+
}
|
|
30325
|
+
]
|
|
30326
|
+
},
|
|
30327
|
+
{
|
|
30328
|
+
"id": "openwop.requirement.envelopes.reasoning-absent-accepted",
|
|
30329
|
+
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30330
|
+
"line": 67,
|
|
30331
|
+
"title": null,
|
|
30332
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-absent-accepted",
|
|
30333
|
+
"citations": [
|
|
30334
|
+
{
|
|
30335
|
+
"section": "events.md §envelopes",
|
|
30336
|
+
"requirement": null,
|
|
30337
|
+
"interpolated": true
|
|
30338
|
+
}
|
|
30339
|
+
]
|
|
30340
|
+
},
|
|
30341
|
+
{
|
|
30342
|
+
"id": "openwop.requirement.envelopes.reasoning-present-accepted",
|
|
30343
|
+
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30344
|
+
"line": 72,
|
|
30345
|
+
"title": null,
|
|
30346
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-present-accepted",
|
|
30347
|
+
"citations": [
|
|
30348
|
+
{
|
|
30349
|
+
"section": "events.md §envelopes",
|
|
30350
|
+
"requirement": null,
|
|
30351
|
+
"interpolated": true
|
|
30352
|
+
}
|
|
30353
|
+
]
|
|
30354
|
+
},
|
|
30355
|
+
{
|
|
30356
|
+
"id": "openwop.requirement.envelopes.reasoning-non-string-rejected",
|
|
30357
|
+
"file": "v2-envelope-reasoning-shape.test.ts",
|
|
30358
|
+
"line": 77,
|
|
30359
|
+
"title": null,
|
|
30360
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-non-string-rejected",
|
|
30361
|
+
"citations": [
|
|
30362
|
+
{
|
|
30363
|
+
"section": "events.md §envelopes",
|
|
30364
|
+
"requirement": null,
|
|
30365
|
+
"interpolated": true
|
|
30366
|
+
}
|
|
30367
|
+
]
|
|
30368
|
+
},
|
|
30369
|
+
{
|
|
30370
|
+
"id": "openwop.requirement.envelopes.tier-one-load-bearing-universal-kinds",
|
|
30371
|
+
"file": "v2-envelope-tier-one-subset-static.test.ts",
|
|
30372
|
+
"line": 46,
|
|
30373
|
+
"title": null,
|
|
30374
|
+
"explicitId": "openwop.requirement.envelopes.tier-one-load-bearing-universal-kinds",
|
|
30375
|
+
"citations": [
|
|
30376
|
+
{
|
|
30377
|
+
"section": "RFC 0030 §B",
|
|
30378
|
+
"requirement": null,
|
|
30379
|
+
"interpolated": true
|
|
30380
|
+
},
|
|
30381
|
+
{
|
|
30382
|
+
"section": "RFC 0030 §B",
|
|
30383
|
+
"requirement": null,
|
|
30384
|
+
"interpolated": true
|
|
30385
|
+
}
|
|
30386
|
+
]
|
|
30387
|
+
},
|
|
30388
|
+
{
|
|
30389
|
+
"id": "openwop.it.v2-envelope-tier-one-subset-static.a-host-advertising-tieronesubsetcompliance-strict-has-advertised-kinds-whose-cor",
|
|
30390
|
+
"file": "v2-envelope-tier-one-subset-static.test.ts",
|
|
30391
|
+
"line": 56,
|
|
30392
|
+
"title": "a host advertising tierOneSubsetCompliance strict has advertised kinds whose corpus schemas satisfy the Tier-1 intersection",
|
|
30393
|
+
"explicitId": "openwop.requirement.envelopes.tier-one-strict-advertised-kinds",
|
|
30394
|
+
"citations": [
|
|
30395
|
+
{
|
|
30396
|
+
"section": "capabilities.schema.json §envelopes.tierOneSubsetCompliance",
|
|
30397
|
+
"requirement": null,
|
|
30398
|
+
"interpolated": true
|
|
30399
|
+
}
|
|
30400
|
+
]
|
|
30401
|
+
},
|
|
30402
|
+
{
|
|
30403
|
+
"id": "openwop.it.v2-envelope-variant-discriminator-static.schemas-v2-envelopes-carries-a-payload-schema-for-each-universal-kind",
|
|
30404
|
+
"file": "v2-envelope-variant-discriminator-static.test.ts",
|
|
30405
|
+
"line": 42,
|
|
30406
|
+
"title": "schemas/v2/envelopes carries a payload schema for each universal kind",
|
|
30407
|
+
"explicitId": "openwop.requirement.envelopes.payload-schemas-present",
|
|
30408
|
+
"citations": [
|
|
30409
|
+
{
|
|
30410
|
+
"section": "RFC 0031 §A",
|
|
30411
|
+
"requirement": null,
|
|
30412
|
+
"interpolated": true
|
|
30413
|
+
}
|
|
30414
|
+
]
|
|
30415
|
+
},
|
|
30416
|
+
{
|
|
30417
|
+
"id": "openwop.requirement.envelopes.variant-no-oneof",
|
|
30418
|
+
"file": "v2-envelope-variant-discriminator-static.test.ts",
|
|
30419
|
+
"line": 47,
|
|
30420
|
+
"title": null,
|
|
30421
|
+
"explicitId": "openwop.requirement.envelopes.variant-no-oneof",
|
|
30422
|
+
"citations": [
|
|
30423
|
+
{
|
|
30424
|
+
"section": "RFC 0031 §A",
|
|
30425
|
+
"requirement": null,
|
|
30426
|
+
"interpolated": true
|
|
30427
|
+
}
|
|
30428
|
+
]
|
|
30429
|
+
},
|
|
30430
|
+
{
|
|
30431
|
+
"id": "openwop.requirement.envelopes.variant-anyof-discriminated",
|
|
30432
|
+
"file": "v2-envelope-variant-discriminator-static.test.ts",
|
|
30433
|
+
"line": 52,
|
|
30434
|
+
"title": null,
|
|
30435
|
+
"explicitId": "openwop.requirement.envelopes.variant-anyof-discriminated",
|
|
30436
|
+
"citations": [
|
|
30437
|
+
{
|
|
30438
|
+
"section": "RFC 0031 §A",
|
|
30439
|
+
"requirement": null,
|
|
30440
|
+
"interpolated": true
|
|
30441
|
+
}
|
|
30442
|
+
]
|
|
30443
|
+
},
|
|
30444
|
+
{
|
|
30445
|
+
"id": "openwop.it.v2-envelopes-advertisement.the-envelopes-record-validates-against-its-capabilities-schema-seat",
|
|
30446
|
+
"file": "v2-envelopes-advertisement.test.ts",
|
|
30447
|
+
"line": 46,
|
|
30448
|
+
"title": "the envelopes record validates against its capabilities-schema seat",
|
|
30449
|
+
"explicitId": "openwop.requirement.envelopes.advert-record-schema",
|
|
30450
|
+
"citations": [
|
|
30451
|
+
{
|
|
30452
|
+
"section": null,
|
|
30453
|
+
"requirement": null,
|
|
30454
|
+
"interpolated": true
|
|
30455
|
+
}
|
|
30456
|
+
]
|
|
30457
|
+
},
|
|
30458
|
+
{
|
|
30459
|
+
"id": "openwop.it.v2-envelopes-advertisement.envelopes-reasoning-promptdirective-is-mandatory-advisory-or-off",
|
|
30460
|
+
"file": "v2-envelopes-advertisement.test.ts",
|
|
30461
|
+
"line": 54,
|
|
30462
|
+
"title": "envelopes.reasoning.promptDirective is mandatory, advisory or off",
|
|
30463
|
+
"explicitId": "openwop.requirement.envelopes.reasoning-advert-shape",
|
|
30464
|
+
"citations": [
|
|
30465
|
+
{
|
|
30466
|
+
"section": null,
|
|
30467
|
+
"requirement": null,
|
|
30468
|
+
"interpolated": true
|
|
30469
|
+
}
|
|
30470
|
+
]
|
|
30471
|
+
},
|
|
30472
|
+
{
|
|
30473
|
+
"id": "openwop.it.v2-envelopes-advertisement.envelopes-tieronesubsetcompliance-is-strict-warn-or-off",
|
|
30474
|
+
"file": "v2-envelopes-advertisement.test.ts",
|
|
30475
|
+
"line": 62,
|
|
30476
|
+
"title": "envelopes.tierOneSubsetCompliance is strict, warn or off",
|
|
30477
|
+
"explicitId": "openwop.requirement.envelopes.tier-one-subset-compliance-value",
|
|
30478
|
+
"citations": [
|
|
30479
|
+
{
|
|
30480
|
+
"section": null,
|
|
30481
|
+
"requirement": null,
|
|
30482
|
+
"interpolated": true
|
|
30483
|
+
}
|
|
30484
|
+
]
|
|
30485
|
+
},
|
|
30486
|
+
{
|
|
30487
|
+
"id": "openwop.it.v2-envelopes-advertisement.envelopes-reliability-events-lists-only-reliability-events-and-includes-retry-ex",
|
|
30488
|
+
"file": "v2-envelopes-advertisement.test.ts",
|
|
30489
|
+
"line": 70,
|
|
30490
|
+
"title": "envelopes.reliability.events lists only reliability events and includes retry-exhausted and refusal",
|
|
30491
|
+
"explicitId": "openwop.requirement.envelopes.reliability-events-advert",
|
|
30492
|
+
"citations": [
|
|
30493
|
+
{
|
|
30494
|
+
"section": null,
|
|
30495
|
+
"requirement": null,
|
|
30496
|
+
"interpolated": true
|
|
30497
|
+
}
|
|
30498
|
+
]
|
|
30499
|
+
},
|
|
30500
|
+
{
|
|
30501
|
+
"id": "openwop.it.v2-envelopes-advertisement.envelopes-reliability-completion-distinguishestruncation-is-a-boolean",
|
|
30502
|
+
"file": "v2-envelopes-advertisement.test.ts",
|
|
30503
|
+
"line": 78,
|
|
30504
|
+
"title": "envelopes.reliability.completion.distinguishesTruncation is a boolean",
|
|
30505
|
+
"explicitId": "openwop.requirement.envelopes.completion-advert-shape",
|
|
30506
|
+
"citations": [
|
|
30507
|
+
{
|
|
30508
|
+
"section": null,
|
|
30509
|
+
"requirement": null,
|
|
30510
|
+
"interpolated": true
|
|
30511
|
+
}
|
|
30512
|
+
]
|
|
30513
|
+
},
|
|
30123
30514
|
{
|
|
30124
30515
|
"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
30516
|
"file": "v2-era-2-append-vocabulary.test.ts",
|
|
@@ -30745,6 +31136,67 @@
|
|
|
30745
31136
|
}
|
|
30746
31137
|
]
|
|
30747
31138
|
},
|
|
31139
|
+
{
|
|
31140
|
+
"id": "openwop.it.v2-i18n-negotiation.the-advertised-i18n-record-is-well-formed-and-lists-its-default-locale",
|
|
31141
|
+
"file": "v2-i18n-negotiation.test.ts",
|
|
31142
|
+
"line": 59,
|
|
31143
|
+
"title": "the advertised i18n record is well-formed and lists its default locale",
|
|
31144
|
+
"explicitId": "openwop.requirement.i18n.record-shape",
|
|
31145
|
+
"citations": [
|
|
31146
|
+
{
|
|
31147
|
+
"section": "schemas/v2/capabilities.schema.json §i18n",
|
|
31148
|
+
"requirement": null,
|
|
31149
|
+
"interpolated": true
|
|
31150
|
+
},
|
|
31151
|
+
{
|
|
31152
|
+
"section": null,
|
|
31153
|
+
"requirement": null,
|
|
31154
|
+
"interpolated": true
|
|
31155
|
+
}
|
|
31156
|
+
]
|
|
31157
|
+
},
|
|
31158
|
+
{
|
|
31159
|
+
"id": "openwop.it.v2-i18n-negotiation.an-unsupported-accept-language-falls-back-and-content-language-never-lies",
|
|
31160
|
+
"file": "v2-i18n-negotiation.test.ts",
|
|
31161
|
+
"line": 68,
|
|
31162
|
+
"title": "an unsupported Accept-Language falls back and Content-Language never lies",
|
|
31163
|
+
"explicitId": "openwop.requirement.i18n.unsupported-locale-falls-back",
|
|
31164
|
+
"citations": [
|
|
31165
|
+
{
|
|
31166
|
+
"section": null,
|
|
31167
|
+
"requirement": null,
|
|
31168
|
+
"interpolated": true
|
|
31169
|
+
}
|
|
31170
|
+
]
|
|
31171
|
+
},
|
|
31172
|
+
{
|
|
31173
|
+
"id": "openwop.it.v2-i18n-negotiation.a-malformed-accept-language-does-not-cause-400",
|
|
31174
|
+
"file": "v2-i18n-negotiation.test.ts",
|
|
31175
|
+
"line": 76,
|
|
31176
|
+
"title": "a malformed Accept-Language does not cause 400",
|
|
31177
|
+
"explicitId": "openwop.requirement.i18n.malformed-accept-language-not-400",
|
|
31178
|
+
"citations": [
|
|
31179
|
+
{
|
|
31180
|
+
"section": null,
|
|
31181
|
+
"requirement": null,
|
|
31182
|
+
"interpolated": true
|
|
31183
|
+
}
|
|
31184
|
+
]
|
|
31185
|
+
},
|
|
31186
|
+
{
|
|
31187
|
+
"id": "openwop.it.v2-i18n-negotiation.the-error-code-and-details-keys-are-identical-under-every-negotiated-locale",
|
|
31188
|
+
"file": "v2-i18n-negotiation.test.ts",
|
|
31189
|
+
"line": 84,
|
|
31190
|
+
"title": "the error code and details keys are identical under every negotiated locale",
|
|
31191
|
+
"explicitId": "openwop.requirement.i18n.error-code-locale-invariant",
|
|
31192
|
+
"citations": [
|
|
31193
|
+
{
|
|
31194
|
+
"section": null,
|
|
31195
|
+
"requirement": null,
|
|
31196
|
+
"interpolated": true
|
|
31197
|
+
}
|
|
31198
|
+
]
|
|
31199
|
+
},
|
|
30748
31200
|
{
|
|
30749
31201
|
"id": "openwop.it.v2-id-grammar.every-id-on-the-run-snapshot-matches-its-ids-schema-json-kind",
|
|
30750
31202
|
"file": "v2-id-grammar.test.ts",
|
|
@@ -31350,6 +31802,215 @@
|
|
|
31350
31802
|
}
|
|
31351
31803
|
]
|
|
31352
31804
|
},
|
|
31805
|
+
{
|
|
31806
|
+
"id": "openwop.it.v2-limits-envelope-caps-advertisement.limits-clarificationrounds-is-present-and-a-non-negative-integer",
|
|
31807
|
+
"file": "v2-limits-envelope-caps-advertisement.test.ts",
|
|
31808
|
+
"line": 38,
|
|
31809
|
+
"title": "limits.clarificationRounds is present and a non-negative integer",
|
|
31810
|
+
"explicitId": "openwop.requirement.limits.clarification-rounds-advertised",
|
|
31811
|
+
"citations": [
|
|
31812
|
+
{
|
|
31813
|
+
"section": null,
|
|
31814
|
+
"requirement": null,
|
|
31815
|
+
"interpolated": true
|
|
31816
|
+
}
|
|
31817
|
+
]
|
|
31818
|
+
},
|
|
31819
|
+
{
|
|
31820
|
+
"id": "openwop.it.v2-limits-envelope-caps-advertisement.limits-schemarounds-is-present-and-a-non-negative-integer",
|
|
31821
|
+
"file": "v2-limits-envelope-caps-advertisement.test.ts",
|
|
31822
|
+
"line": 46,
|
|
31823
|
+
"title": "limits.schemaRounds is present and a non-negative integer",
|
|
31824
|
+
"explicitId": "openwop.requirement.limits.schema-rounds-advertised",
|
|
31825
|
+
"citations": [
|
|
31826
|
+
{
|
|
31827
|
+
"section": null,
|
|
31828
|
+
"requirement": null,
|
|
31829
|
+
"interpolated": true
|
|
31830
|
+
}
|
|
31831
|
+
]
|
|
31832
|
+
},
|
|
31833
|
+
{
|
|
31834
|
+
"id": "openwop.it.v2-limits-envelope-caps-advertisement.limits-envelopesperturn-is-present-and-a-non-negative-integer",
|
|
31835
|
+
"file": "v2-limits-envelope-caps-advertisement.test.ts",
|
|
31836
|
+
"line": 54,
|
|
31837
|
+
"title": "limits.envelopesPerTurn is present and a non-negative integer",
|
|
31838
|
+
"explicitId": "openwop.requirement.limits.envelopes-per-turn-advertised",
|
|
31839
|
+
"citations": [
|
|
31840
|
+
{
|
|
31841
|
+
"section": null,
|
|
31842
|
+
"requirement": null,
|
|
31843
|
+
"interpolated": true
|
|
31844
|
+
}
|
|
31845
|
+
]
|
|
31846
|
+
},
|
|
31847
|
+
{
|
|
31848
|
+
"id": "openwop.it.v2-localized-content-delivery.the-v2-content-record-requires-baselocale-and-supportedlocales-and-has-no-suppor",
|
|
31849
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
31850
|
+
"line": 62,
|
|
31851
|
+
"title": "the v2 content record requires baseLocale and supportedLocales and has no supported seat",
|
|
31852
|
+
"explicitId": "openwop.requirement.content.capability-record-shape",
|
|
31853
|
+
"citations": [
|
|
31854
|
+
{
|
|
31855
|
+
"section": "schemas/v2/capabilities.schema.json §content",
|
|
31856
|
+
"requirement": "content MUST require baseLocale and supportedLocales"
|
|
31857
|
+
},
|
|
31858
|
+
{
|
|
31859
|
+
"section": "spec/v2/core/capabilities.md (presence is the claim)",
|
|
31860
|
+
"requirement": "the v2 content record MUST NOT declare a supported seat"
|
|
31861
|
+
},
|
|
31862
|
+
{
|
|
31863
|
+
"section": "schemas/v2/capabilities.schema.json §content",
|
|
31864
|
+
"requirement": "a conforming content record MUST validate"
|
|
31865
|
+
},
|
|
31866
|
+
{
|
|
31867
|
+
"section": "schemas/v2/capabilities.schema.json §content",
|
|
31868
|
+
"requirement": "a content record carrying supported MUST be rejected (closed record)"
|
|
31869
|
+
}
|
|
31870
|
+
]
|
|
31871
|
+
},
|
|
31872
|
+
{
|
|
31873
|
+
"id": "openwop.it.v2-localized-content-delivery.a-conforming-section-validates-a-non-canonical-or-underscore-locale-key-a-missin",
|
|
31874
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
31875
|
+
"line": 73,
|
|
31876
|
+
"title": "a conforming section validates; a non-canonical or underscore locale key, a missing status, or an unknown status is rejected",
|
|
31877
|
+
"explicitId": "openwop.requirement.content.section-schema",
|
|
31878
|
+
"citations": [
|
|
31879
|
+
{
|
|
31880
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31881
|
+
"requirement": null,
|
|
31882
|
+
"interpolated": true
|
|
31883
|
+
},
|
|
31884
|
+
{
|
|
31885
|
+
"section": "RFC 0206 §A.1",
|
|
31886
|
+
"requirement": null,
|
|
31887
|
+
"interpolated": true
|
|
31888
|
+
},
|
|
31889
|
+
{
|
|
31890
|
+
"section": "RFC 0206 §A.1",
|
|
31891
|
+
"requirement": null,
|
|
31892
|
+
"interpolated": true
|
|
31893
|
+
},
|
|
31894
|
+
{
|
|
31895
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31896
|
+
"requirement": "status is REQUIRED"
|
|
31897
|
+
},
|
|
31898
|
+
{
|
|
31899
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31900
|
+
"requirement": "status MUST be draft or published"
|
|
31901
|
+
},
|
|
31902
|
+
{
|
|
31903
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31904
|
+
"requirement": "a section is a closed record"
|
|
31905
|
+
}
|
|
31906
|
+
]
|
|
31907
|
+
},
|
|
31908
|
+
{
|
|
31909
|
+
"id": "openwop.it.v2-localized-content-delivery.a-conforming-page-validates-and-a-bad-slug-is-rejected",
|
|
31910
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
31911
|
+
"line": 87,
|
|
31912
|
+
"title": "a conforming page validates and a bad slug is rejected",
|
|
31913
|
+
"explicitId": "openwop.requirement.content.page-schema",
|
|
31914
|
+
"citations": [
|
|
31915
|
+
{
|
|
31916
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31917
|
+
"requirement": null,
|
|
31918
|
+
"interpolated": true
|
|
31919
|
+
},
|
|
31920
|
+
{
|
|
31921
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31922
|
+
"requirement": "slug MUST match ^[a-z][a-z0-9-]*$"
|
|
31923
|
+
}
|
|
31924
|
+
]
|
|
31925
|
+
},
|
|
31926
|
+
{
|
|
31927
|
+
"id": "openwop.it.v2-localized-content-delivery.a-conforming-language-settings-document-validates",
|
|
31928
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
31929
|
+
"line": 93,
|
|
31930
|
+
"title": "a conforming language-settings document validates",
|
|
31931
|
+
"explicitId": "openwop.requirement.content.language-settings-schema",
|
|
31932
|
+
"citations": [
|
|
31933
|
+
{
|
|
31934
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31935
|
+
"requirement": null,
|
|
31936
|
+
"interpolated": true
|
|
31937
|
+
},
|
|
31938
|
+
{
|
|
31939
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31940
|
+
"requirement": "baseLocale MUST be a canonical BCP 47 key"
|
|
31941
|
+
}
|
|
31942
|
+
]
|
|
31943
|
+
},
|
|
31944
|
+
{
|
|
31945
|
+
"id": "openwop.it.v2-localized-content-delivery.a-conforming-page-response-validates",
|
|
31946
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
31947
|
+
"line": 99,
|
|
31948
|
+
"title": "a conforming page response validates",
|
|
31949
|
+
"explicitId": "openwop.requirement.content.page-response-schema",
|
|
31950
|
+
"citations": [
|
|
31951
|
+
{
|
|
31952
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31953
|
+
"requirement": null,
|
|
31954
|
+
"interpolated": true
|
|
31955
|
+
},
|
|
31956
|
+
{
|
|
31957
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31958
|
+
"requirement": "a delivered section carries resolved data, never its localizations"
|
|
31959
|
+
}
|
|
31960
|
+
]
|
|
31961
|
+
},
|
|
31962
|
+
{
|
|
31963
|
+
"id": "openwop.it.v2-localized-content-delivery.exact-tag-then-script-family-then-language-then-data-a-shallow-overlay",
|
|
31964
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
31965
|
+
"line": 111,
|
|
31966
|
+
"title": "exact tag, then script family, then language, then data — a shallow overlay",
|
|
31967
|
+
"explicitId": "openwop.requirement.content.section-merge",
|
|
31968
|
+
"citations": [
|
|
31969
|
+
{
|
|
31970
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31971
|
+
"requirement": "an exact hit MUST overlay its fields onto data"
|
|
31972
|
+
},
|
|
31973
|
+
{
|
|
31974
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31975
|
+
"requirement": "a field the overlay lacks MUST fall through to data"
|
|
31976
|
+
},
|
|
31977
|
+
{
|
|
31978
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31979
|
+
"requirement": "pt-BR MUST fall back to the pt language overlay"
|
|
31980
|
+
},
|
|
31981
|
+
{
|
|
31982
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31983
|
+
"requirement": "zh-Hant-TW MUST take the zh-Hant script family before zh"
|
|
31984
|
+
},
|
|
31985
|
+
{
|
|
31986
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31987
|
+
"requirement": "no overlay MUST resolve to data alone"
|
|
31988
|
+
},
|
|
31989
|
+
{
|
|
31990
|
+
"section": "spec/v2/core/i18n.md §Localized content",
|
|
31991
|
+
"requirement": "baseLocale MUST resolve to data"
|
|
31992
|
+
}
|
|
31993
|
+
]
|
|
31994
|
+
},
|
|
31995
|
+
{
|
|
31996
|
+
"id": "openwop.it.v2-localized-content-delivery.the-advertised-content-record-is-coherent-with-the-advertised-i18n-record",
|
|
31997
|
+
"file": "v2-localized-content-delivery.test.ts",
|
|
31998
|
+
"line": 123,
|
|
31999
|
+
"title": "the advertised content record is coherent with the advertised i18n record",
|
|
32000
|
+
"explicitId": "openwop.requirement.content.advertisement-coherent",
|
|
32001
|
+
"citations": [
|
|
32002
|
+
{
|
|
32003
|
+
"section": "schemas/v2/capabilities.schema.json §content",
|
|
32004
|
+
"requirement": null,
|
|
32005
|
+
"interpolated": true
|
|
32006
|
+
},
|
|
32007
|
+
{
|
|
32008
|
+
"section": null,
|
|
32009
|
+
"requirement": null,
|
|
32010
|
+
"interpolated": true
|
|
32011
|
+
}
|
|
32012
|
+
]
|
|
32013
|
+
},
|
|
31353
32014
|
{
|
|
31354
32015
|
"id": "openwop.requirement.0172.malformed-body-envelope",
|
|
31355
32016
|
"file": "v2-malformed-body-envelope.test.ts",
|
|
@@ -32344,6 +33005,74 @@
|
|
|
32344
33005
|
}
|
|
32345
33006
|
]
|
|
32346
33007
|
},
|
|
33008
|
+
{
|
|
33009
|
+
"id": "openwop.requirement.media.payload-schemas-compile",
|
|
33010
|
+
"file": "v2-media-inline-cap-static.test.ts",
|
|
33011
|
+
"line": 37,
|
|
33012
|
+
"title": null,
|
|
33013
|
+
"explicitId": "openwop.requirement.media.payload-schemas-compile",
|
|
33014
|
+
"citations": [
|
|
33015
|
+
{
|
|
33016
|
+
"section": "host-services.md §aiProviders",
|
|
33017
|
+
"requirement": null,
|
|
33018
|
+
"interpolated": true
|
|
33019
|
+
}
|
|
33020
|
+
]
|
|
33021
|
+
},
|
|
33022
|
+
{
|
|
33023
|
+
"id": "openwop.it.v2-media-inline-cap-static.accepts-a-url-reference-image-payload",
|
|
33024
|
+
"file": "v2-media-inline-cap-static.test.ts",
|
|
33025
|
+
"line": 42,
|
|
33026
|
+
"title": "accepts a URL-reference image payload",
|
|
33027
|
+
"explicitId": "openwop.requirement.media.url-reference-accepted",
|
|
33028
|
+
"citations": [
|
|
33029
|
+
{
|
|
33030
|
+
"section": "host-services.md §aiProviders",
|
|
33031
|
+
"requirement": null,
|
|
33032
|
+
"interpolated": true
|
|
33033
|
+
}
|
|
33034
|
+
]
|
|
33035
|
+
},
|
|
33036
|
+
{
|
|
33037
|
+
"id": "openwop.it.v2-media-inline-cap-static.accepts-an-inline-base64-audio-payload",
|
|
33038
|
+
"file": "v2-media-inline-cap-static.test.ts",
|
|
33039
|
+
"line": 47,
|
|
33040
|
+
"title": "accepts an inline-base64 audio payload",
|
|
33041
|
+
"explicitId": "openwop.requirement.media.inline-base64-accepted",
|
|
33042
|
+
"citations": [
|
|
33043
|
+
{
|
|
33044
|
+
"section": "host-services.md §aiProviders",
|
|
33045
|
+
"requirement": null,
|
|
33046
|
+
"interpolated": true
|
|
33047
|
+
}
|
|
33048
|
+
]
|
|
33049
|
+
},
|
|
33050
|
+
{
|
|
33051
|
+
"id": "openwop.it.v2-media-inline-cap-static.rejects-a-media-payload-missing-bytes",
|
|
33052
|
+
"file": "v2-media-inline-cap-static.test.ts",
|
|
33053
|
+
"line": 52,
|
|
33054
|
+
"title": "rejects a media payload missing bytes",
|
|
33055
|
+
"explicitId": "openwop.requirement.media.bytes-required",
|
|
33056
|
+
"citations": [
|
|
33057
|
+
{
|
|
33058
|
+
"section": "host-services.md §aiProviders",
|
|
33059
|
+
"requirement": "bytes is required on a media payload — it is what the inline cap is judged against"
|
|
33060
|
+
}
|
|
33061
|
+
]
|
|
33062
|
+
},
|
|
33063
|
+
{
|
|
33064
|
+
"id": "openwop.it.v2-media-inline-cap-static.rejects-a-media-payload-with-an-unknown-property",
|
|
33065
|
+
"file": "v2-media-inline-cap-static.test.ts",
|
|
33066
|
+
"line": 56,
|
|
33067
|
+
"title": "rejects a media payload with an unknown property",
|
|
33068
|
+
"explicitId": "openwop.requirement.media.payload-closed",
|
|
33069
|
+
"citations": [
|
|
33070
|
+
{
|
|
33071
|
+
"section": "host-services.md §aiProviders",
|
|
33072
|
+
"requirement": "a media payload is closed: an unknown property MUST be rejected"
|
|
33073
|
+
}
|
|
33074
|
+
]
|
|
33075
|
+
},
|
|
32347
33076
|
{
|
|
32348
33077
|
"id": "openwop.it.v2-memory-cross-tenant-isolation.a-second-tenant-listing-the-same-memoryref-sees-none-of-the-first-tenant-s-entri",
|
|
32349
33078
|
"file": "v2-memory-cross-tenant-isolation.test.ts",
|
|
@@ -32428,6 +33157,76 @@
|
|
|
32428
33157
|
}
|
|
32429
33158
|
]
|
|
32430
33159
|
},
|
|
33160
|
+
{
|
|
33161
|
+
"id": "openwop.it.v2-model-capabilities-advertisement.the-modelcapabilities-record-validates-against-its-capabilities-schema-seat",
|
|
33162
|
+
"file": "v2-model-capabilities-advertisement.test.ts",
|
|
33163
|
+
"line": 38,
|
|
33164
|
+
"title": "the modelCapabilities record validates against its capabilities-schema seat",
|
|
33165
|
+
"explicitId": "openwop.requirement.model-capabilities.advert-record-schema",
|
|
33166
|
+
"citations": [
|
|
33167
|
+
{
|
|
33168
|
+
"section": null,
|
|
33169
|
+
"requirement": null,
|
|
33170
|
+
"interpolated": true
|
|
33171
|
+
}
|
|
33172
|
+
]
|
|
33173
|
+
},
|
|
33174
|
+
{
|
|
33175
|
+
"id": "openwop.it.v2-model-capabilities-advertisement.modelcapabilities-advertised-names-only-spec-reserved-or-x-host-prefixed-identif",
|
|
33176
|
+
"file": "v2-model-capabilities-advertisement.test.ts",
|
|
33177
|
+
"line": 46,
|
|
33178
|
+
"title": "modelCapabilities.advertised names only spec-reserved or x-host- prefixed identifiers",
|
|
33179
|
+
"explicitId": "openwop.requirement.model-capabilities.advertised-identifiers",
|
|
33180
|
+
"citations": [
|
|
33181
|
+
{
|
|
33182
|
+
"section": null,
|
|
33183
|
+
"requirement": null,
|
|
33184
|
+
"interpolated": true
|
|
33185
|
+
}
|
|
33186
|
+
]
|
|
33187
|
+
},
|
|
33188
|
+
{
|
|
33189
|
+
"id": "openwop.it.v2-model-capabilities-advertisement.modelcapabilities-substitutionsupported-is-a-boolean",
|
|
33190
|
+
"file": "v2-model-capabilities-advertisement.test.ts",
|
|
33191
|
+
"line": 54,
|
|
33192
|
+
"title": "modelCapabilities.substitutionSupported is a boolean",
|
|
33193
|
+
"explicitId": "openwop.requirement.model-capabilities.substitution-supported-boolean",
|
|
33194
|
+
"citations": [
|
|
33195
|
+
{
|
|
33196
|
+
"section": null,
|
|
33197
|
+
"requirement": null,
|
|
33198
|
+
"interpolated": true
|
|
33199
|
+
}
|
|
33200
|
+
]
|
|
33201
|
+
},
|
|
33202
|
+
{
|
|
33203
|
+
"id": "openwop.it.v2-model-capability-insufficient.a-node-requiring-a-capability-no-model-offers-fails-capability-not-provided-afte",
|
|
33204
|
+
"file": "v2-model-capability-insufficient.test.ts",
|
|
33205
|
+
"line": 50,
|
|
33206
|
+
"title": "a node requiring a capability no model offers fails capability_not_provided after model.capability-insufficient",
|
|
33207
|
+
"explicitId": "openwop.requirement.model-capabilities.insufficient-refusal",
|
|
33208
|
+
"citations": [
|
|
33209
|
+
{
|
|
33210
|
+
"section": null,
|
|
33211
|
+
"requirement": null,
|
|
33212
|
+
"interpolated": true
|
|
33213
|
+
}
|
|
33214
|
+
]
|
|
33215
|
+
},
|
|
33216
|
+
{
|
|
33217
|
+
"id": "openwop.it.v2-model-capability-insufficient.a-refused-dispatch-emits-no-node-completion-provider-usage-or-envelope-reliabili",
|
|
33218
|
+
"file": "v2-model-capability-insufficient.test.ts",
|
|
33219
|
+
"line": 57,
|
|
33220
|
+
"title": "a refused dispatch emits no node completion, provider usage or envelope-reliability event",
|
|
33221
|
+
"explicitId": "openwop.requirement.model-capabilities.insufficient-no-dispatch",
|
|
33222
|
+
"citations": [
|
|
33223
|
+
{
|
|
33224
|
+
"section": null,
|
|
33225
|
+
"requirement": null,
|
|
33226
|
+
"interpolated": true
|
|
33227
|
+
}
|
|
33228
|
+
]
|
|
33229
|
+
},
|
|
32431
33230
|
{
|
|
32432
33231
|
"id": "openwop.it.v2-mrtr-rounds-ceiling.mcp-mrtr-maxrounds-is-an-integer-ceiling-in-1-16",
|
|
32433
33232
|
"file": "v2-mrtr-rounds-ceiling.test.ts",
|
|
@@ -33471,6 +34270,552 @@
|
|
|
33471
34270
|
}
|
|
33472
34271
|
]
|
|
33473
34272
|
},
|
|
34273
|
+
{
|
|
34274
|
+
"id": "openwop.it.v2-prompt-all-four-kinds-events.each-kind-and-each-configured-ref-is-resolved-and-composed",
|
|
34275
|
+
"file": "v2-prompt-all-four-kinds-events.test.ts",
|
|
34276
|
+
"line": 58,
|
|
34277
|
+
"title": "each kind and each configured ref is resolved and composed",
|
|
34278
|
+
"explicitId": "openwop.requirement.prompts.all-four-kinds-events",
|
|
34279
|
+
"citations": [
|
|
34280
|
+
{
|
|
34281
|
+
"section": null,
|
|
34282
|
+
"requirement": null,
|
|
34283
|
+
"interpolated": true
|
|
34284
|
+
}
|
|
34285
|
+
]
|
|
34286
|
+
},
|
|
34287
|
+
{
|
|
34288
|
+
"id": "openwop.it.v2-prompt-all-four-kinds-events.every-prompt-composed-follows-an-agent-prompt-resolved-for-its-node",
|
|
34289
|
+
"file": "v2-prompt-all-four-kinds-events.test.ts",
|
|
34290
|
+
"line": 64,
|
|
34291
|
+
"title": "every prompt.composed follows an agent.prompt-resolved for its node",
|
|
34292
|
+
"explicitId": "openwop.requirement.prompts.resolution-precedes-composition",
|
|
34293
|
+
"citations": [
|
|
34294
|
+
{
|
|
34295
|
+
"section": null,
|
|
34296
|
+
"requirement": null,
|
|
34297
|
+
"interpolated": true
|
|
34298
|
+
}
|
|
34299
|
+
]
|
|
34300
|
+
},
|
|
34301
|
+
{
|
|
34302
|
+
"id": "openwop.it.v2-prompt-end-to-end-events.the-node-layer-wins-and-prompt-composed-carries-the-hash-with-bodies-only-under",
|
|
34303
|
+
"file": "v2-prompt-end-to-end-events.test.ts",
|
|
34304
|
+
"line": 60,
|
|
34305
|
+
"title": "the node layer wins, and prompt.composed carries the hash with bodies only under full",
|
|
34306
|
+
"explicitId": "openwop.requirement.prompts.end-to-end-resolution-and-composition",
|
|
34307
|
+
"citations": [
|
|
34308
|
+
{
|
|
34309
|
+
"section": null,
|
|
34310
|
+
"requirement": null,
|
|
34311
|
+
"interpolated": true
|
|
34312
|
+
}
|
|
34313
|
+
]
|
|
34314
|
+
},
|
|
34315
|
+
{
|
|
34316
|
+
"id": "openwop.it.v2-prompt-end-to-end-events.agent-prompt-resolved-precedes-prompt-composed-for-the-node",
|
|
34317
|
+
"file": "v2-prompt-end-to-end-events.test.ts",
|
|
34318
|
+
"line": 66,
|
|
34319
|
+
"title": "agent.prompt-resolved precedes prompt.composed for the node",
|
|
34320
|
+
"explicitId": "openwop.requirement.prompts.resolution-precedes-composition",
|
|
34321
|
+
"citations": [
|
|
34322
|
+
{
|
|
34323
|
+
"section": null,
|
|
34324
|
+
"requirement": null,
|
|
34325
|
+
"interpolated": true
|
|
34326
|
+
}
|
|
34327
|
+
]
|
|
34328
|
+
},
|
|
34329
|
+
{
|
|
34330
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.get-prompts-answers-items-whose-every-entry-validates",
|
|
34331
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
34332
|
+
"line": 56,
|
|
34333
|
+
"title": "GET /prompts answers items whose every entry validates",
|
|
34334
|
+
"explicitId": "openwop.requirement.prompts.list-shape",
|
|
34335
|
+
"citations": [
|
|
34336
|
+
{
|
|
34337
|
+
"section": null,
|
|
34338
|
+
"requirement": null,
|
|
34339
|
+
"interpolated": true
|
|
34340
|
+
}
|
|
34341
|
+
]
|
|
34342
|
+
},
|
|
34343
|
+
{
|
|
34344
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.the-kind-and-source-filters-narrow-the-list",
|
|
34345
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
34346
|
+
"line": 64,
|
|
34347
|
+
"title": "the kind and source filters narrow the list",
|
|
34348
|
+
"explicitId": "openwop.requirement.prompts.list-filters",
|
|
34349
|
+
"citations": [
|
|
34350
|
+
{
|
|
34351
|
+
"section": null,
|
|
34352
|
+
"requirement": null,
|
|
34353
|
+
"interpolated": true
|
|
34354
|
+
}
|
|
34355
|
+
]
|
|
34356
|
+
},
|
|
34357
|
+
{
|
|
34358
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.a-listed-template-is-fetched-by-id",
|
|
34359
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
34360
|
+
"line": 72,
|
|
34361
|
+
"title": "a listed template is fetched by id",
|
|
34362
|
+
"explicitId": "openwop.requirement.prompts.fetch-by-id",
|
|
34363
|
+
"citations": [
|
|
34364
|
+
{
|
|
34365
|
+
"section": null,
|
|
34366
|
+
"requirement": null,
|
|
34367
|
+
"interpolated": true
|
|
34368
|
+
}
|
|
34369
|
+
]
|
|
34370
|
+
},
|
|
34371
|
+
{
|
|
34372
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.an-etag-when-sent-revalidates-to-304",
|
|
34373
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
34374
|
+
"line": 80,
|
|
34375
|
+
"title": "an ETag, when sent, revalidates to 304",
|
|
34376
|
+
"explicitId": "openwop.requirement.prompts.etag-revalidation",
|
|
34377
|
+
"citations": [
|
|
34378
|
+
{
|
|
34379
|
+
"section": null,
|
|
34380
|
+
"requirement": null,
|
|
34381
|
+
"interpolated": true
|
|
34382
|
+
}
|
|
34383
|
+
]
|
|
34384
|
+
},
|
|
34385
|
+
{
|
|
34386
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.an-unknown-templateid-answers-404-with-the-error-envelope",
|
|
34387
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
34388
|
+
"line": 88,
|
|
34389
|
+
"title": "an unknown templateId answers 404 with the error envelope",
|
|
34390
|
+
"explicitId": "openwop.requirement.prompts.unknown-template-404",
|
|
34391
|
+
"citations": [
|
|
34392
|
+
{
|
|
34393
|
+
"section": null,
|
|
34394
|
+
"requirement": null,
|
|
34395
|
+
"interpolated": true
|
|
34396
|
+
}
|
|
34397
|
+
]
|
|
34398
|
+
},
|
|
34399
|
+
{
|
|
34400
|
+
"id": "openwop.it.v2-prompt-list-and-fetch.with-endpointssupported-unadvertised-get-prompts-answers-404-not-found",
|
|
34401
|
+
"file": "v2-prompt-list-and-fetch.test.ts",
|
|
34402
|
+
"line": 96,
|
|
34403
|
+
"title": "with endpointsSupported unadvertised, GET /prompts answers 404 not_found",
|
|
34404
|
+
"explicitId": "openwop.requirement.prompts.endpoints-gate-off-404",
|
|
34405
|
+
"citations": [
|
|
34406
|
+
{
|
|
34407
|
+
"section": null,
|
|
34408
|
+
"requirement": null,
|
|
34409
|
+
"interpolated": true
|
|
34410
|
+
}
|
|
34411
|
+
]
|
|
34412
|
+
},
|
|
34413
|
+
{
|
|
34414
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.post-prompts-creates-a-user-template-with-201-and-a-location",
|
|
34415
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
34416
|
+
"line": 69,
|
|
34417
|
+
"title": "POST /prompts creates a user template with 201 and a Location",
|
|
34418
|
+
"explicitId": "openwop.requirement.prompts.create-user-template",
|
|
34419
|
+
"citations": [
|
|
34420
|
+
{
|
|
34421
|
+
"section": null,
|
|
34422
|
+
"requirement": null,
|
|
34423
|
+
"interpolated": true
|
|
34424
|
+
}
|
|
34425
|
+
]
|
|
34426
|
+
},
|
|
34427
|
+
{
|
|
34428
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.the-created-template-reads-back-with-meta-source-user",
|
|
34429
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
34430
|
+
"line": 75,
|
|
34431
|
+
"title": "the created template reads back with meta.source user",
|
|
34432
|
+
"explicitId": "openwop.requirement.prompts.created-template-source-user",
|
|
34433
|
+
"citations": [
|
|
34434
|
+
{
|
|
34435
|
+
"section": null,
|
|
34436
|
+
"requirement": null,
|
|
34437
|
+
"interpolated": true
|
|
34438
|
+
}
|
|
34439
|
+
]
|
|
34440
|
+
},
|
|
34441
|
+
{
|
|
34442
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.a-second-post-of-the-same-templateid-and-version-answers-409",
|
|
34443
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
34444
|
+
"line": 81,
|
|
34445
|
+
"title": "a second POST of the same templateId and version answers 409",
|
|
34446
|
+
"explicitId": "openwop.requirement.prompts.duplicate-version-409",
|
|
34447
|
+
"citations": [
|
|
34448
|
+
{
|
|
34449
|
+
"section": null,
|
|
34450
|
+
"requirement": null,
|
|
34451
|
+
"interpolated": true
|
|
34452
|
+
}
|
|
34453
|
+
]
|
|
34454
|
+
},
|
|
34455
|
+
{
|
|
34456
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.put-with-a-greater-semver-replaces-the-template",
|
|
34457
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
34458
|
+
"line": 87,
|
|
34459
|
+
"title": "PUT with a greater SemVer replaces the template",
|
|
34460
|
+
"explicitId": "openwop.requirement.prompts.update-greater-semver",
|
|
34461
|
+
"citations": [
|
|
34462
|
+
{
|
|
34463
|
+
"section": null,
|
|
34464
|
+
"requirement": null,
|
|
34465
|
+
"interpolated": true
|
|
34466
|
+
}
|
|
34467
|
+
]
|
|
34468
|
+
},
|
|
34469
|
+
{
|
|
34470
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.put-with-a-lower-semver-answers-409",
|
|
34471
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
34472
|
+
"line": 93,
|
|
34473
|
+
"title": "PUT with a lower SemVer answers 409",
|
|
34474
|
+
"explicitId": "openwop.requirement.prompts.update-non-monotonic-409",
|
|
34475
|
+
"citations": [
|
|
34476
|
+
{
|
|
34477
|
+
"section": null,
|
|
34478
|
+
"requirement": null,
|
|
34479
|
+
"interpolated": true
|
|
34480
|
+
}
|
|
34481
|
+
]
|
|
34482
|
+
},
|
|
34483
|
+
{
|
|
34484
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.delete-answers-204-and-the-template-then-reads-404",
|
|
34485
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
34486
|
+
"line": 99,
|
|
34487
|
+
"title": "DELETE answers 204 and the template then reads 404",
|
|
34488
|
+
"explicitId": "openwop.requirement.prompts.delete-user-template",
|
|
34489
|
+
"citations": [
|
|
34490
|
+
{
|
|
34491
|
+
"section": null,
|
|
34492
|
+
"requirement": null,
|
|
34493
|
+
"interpolated": true
|
|
34494
|
+
}
|
|
34495
|
+
]
|
|
34496
|
+
},
|
|
34497
|
+
{
|
|
34498
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.a-host-built-in-template-is-read-only-delete-answers-403",
|
|
34499
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
34500
|
+
"line": 107,
|
|
34501
|
+
"title": "a host built-in template is read-only: DELETE answers 403",
|
|
34502
|
+
"explicitId": "openwop.requirement.prompts.builtin-read-only",
|
|
34503
|
+
"citations": [
|
|
34504
|
+
{
|
|
34505
|
+
"section": null,
|
|
34506
|
+
"requirement": null,
|
|
34507
|
+
"interpolated": true
|
|
34508
|
+
}
|
|
34509
|
+
]
|
|
34510
|
+
},
|
|
34511
|
+
{
|
|
34512
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.an-unauthenticated-write-is-refused-401",
|
|
34513
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
34514
|
+
"line": 115,
|
|
34515
|
+
"title": "an unauthenticated write is refused 401",
|
|
34516
|
+
"explicitId": "openwop.requirement.prompts.writes-authenticated",
|
|
34517
|
+
"citations": [
|
|
34518
|
+
{
|
|
34519
|
+
"section": null,
|
|
34520
|
+
"requirement": null,
|
|
34521
|
+
"interpolated": true
|
|
34522
|
+
}
|
|
34523
|
+
]
|
|
34524
|
+
},
|
|
34525
|
+
{
|
|
34526
|
+
"id": "openwop.it.v2-prompt-mutable-lifecycle.with-mutablelibrary-unadvertised-post-prompts-answers-404-not-found",
|
|
34527
|
+
"file": "v2-prompt-mutable-lifecycle.test.ts",
|
|
34528
|
+
"line": 123,
|
|
34529
|
+
"title": "with mutableLibrary unadvertised, POST /prompts answers 404 not_found",
|
|
34530
|
+
"explicitId": "openwop.requirement.prompts.mutable-gate-off-404",
|
|
34531
|
+
"citations": [
|
|
34532
|
+
{
|
|
34533
|
+
"section": null,
|
|
34534
|
+
"requirement": null,
|
|
34535
|
+
"interpolated": true
|
|
34536
|
+
}
|
|
34537
|
+
]
|
|
34538
|
+
},
|
|
34539
|
+
{
|
|
34540
|
+
"id": "openwop.it.v2-prompt-pack-install.get-prompts-source-pack-lists-only-pack-templates-and-none-unless-packssupported",
|
|
34541
|
+
"file": "v2-prompt-pack-install.test.ts",
|
|
34542
|
+
"line": 55,
|
|
34543
|
+
"title": "GET /prompts?source=pack lists only pack templates, and none unless packsSupported",
|
|
34544
|
+
"explicitId": "openwop.requirement.prompts.pack-listing",
|
|
34545
|
+
"citations": [
|
|
34546
|
+
{
|
|
34547
|
+
"section": null,
|
|
34548
|
+
"requirement": null,
|
|
34549
|
+
"interpolated": true
|
|
34550
|
+
}
|
|
34551
|
+
]
|
|
34552
|
+
},
|
|
34553
|
+
{
|
|
34554
|
+
"id": "openwop.it.v2-prompt-pack-install.every-pack-template-carries-meta-packname-and-meta-packversion",
|
|
34555
|
+
"file": "v2-prompt-pack-install.test.ts",
|
|
34556
|
+
"line": 63,
|
|
34557
|
+
"title": "every pack template carries meta.packName and meta.packVersion",
|
|
34558
|
+
"explicitId": "openwop.requirement.prompts.pack-template-stamps",
|
|
34559
|
+
"citations": [
|
|
34560
|
+
{
|
|
34561
|
+
"section": null,
|
|
34562
|
+
"requirement": null,
|
|
34563
|
+
"interpolated": true
|
|
34564
|
+
}
|
|
34565
|
+
]
|
|
34566
|
+
},
|
|
34567
|
+
{
|
|
34568
|
+
"id": "openwop.it.v2-prompt-pack-install.the-reference-pack-template-is-fetched-by-id-and-keeps-its-pack-provenance",
|
|
34569
|
+
"file": "v2-prompt-pack-install.test.ts",
|
|
34570
|
+
"line": 71,
|
|
34571
|
+
"title": "the reference pack template is fetched by id and keeps its pack provenance",
|
|
34572
|
+
"explicitId": "openwop.requirement.prompts.reference-pack-fetch",
|
|
34573
|
+
"citations": [
|
|
34574
|
+
{
|
|
34575
|
+
"section": null,
|
|
34576
|
+
"requirement": null,
|
|
34577
|
+
"interpolated": true
|
|
34578
|
+
}
|
|
34579
|
+
]
|
|
34580
|
+
},
|
|
34581
|
+
{
|
|
34582
|
+
"id": "openwop.it.v2-prompt-render-deterministic.identical-ref-and-variables-render-the-identical-hash-and-variablehashes",
|
|
34583
|
+
"file": "v2-prompt-render-deterministic.test.ts",
|
|
34584
|
+
"line": 56,
|
|
34585
|
+
"title": "identical ref and variables render the identical hash and variableHashes",
|
|
34586
|
+
"explicitId": "openwop.requirement.prompts.render-deterministic",
|
|
34587
|
+
"citations": [
|
|
34588
|
+
{
|
|
34589
|
+
"section": null,
|
|
34590
|
+
"requirement": null,
|
|
34591
|
+
"interpolated": true
|
|
34592
|
+
}
|
|
34593
|
+
]
|
|
34594
|
+
},
|
|
34595
|
+
{
|
|
34596
|
+
"id": "openwop.it.v2-prompt-render-deterministic.a-changed-binding-changes-the-hash-and-its-variablehash",
|
|
34597
|
+
"file": "v2-prompt-render-deterministic.test.ts",
|
|
34598
|
+
"line": 64,
|
|
34599
|
+
"title": "a changed binding changes the hash and its variableHash",
|
|
34600
|
+
"explicitId": "openwop.requirement.prompts.render-binding-sensitive",
|
|
34601
|
+
"citations": [
|
|
34602
|
+
{
|
|
34603
|
+
"section": null,
|
|
34604
|
+
"requirement": null,
|
|
34605
|
+
"interpolated": true
|
|
34606
|
+
}
|
|
34607
|
+
]
|
|
34608
|
+
},
|
|
34609
|
+
{
|
|
34610
|
+
"id": "openwop.it.v2-prompt-render-deterministic.hashes-are-sha256-hex-and-the-body-is-present-only-under-observability-full",
|
|
34611
|
+
"file": "v2-prompt-render-deterministic.test.ts",
|
|
34612
|
+
"line": 72,
|
|
34613
|
+
"title": "hashes are sha256 hex and the body is present only under observability full",
|
|
34614
|
+
"explicitId": "openwop.requirement.prompts.render-shape",
|
|
34615
|
+
"citations": [
|
|
34616
|
+
{
|
|
34617
|
+
"section": null,
|
|
34618
|
+
"requirement": null,
|
|
34619
|
+
"interpolated": true
|
|
34620
|
+
}
|
|
34621
|
+
]
|
|
34622
|
+
},
|
|
34623
|
+
{
|
|
34624
|
+
"id": "openwop.it.v2-prompt-render-deterministic.an-unbound-required-variable-is-refused-400-validation-error",
|
|
34625
|
+
"file": "v2-prompt-render-deterministic.test.ts",
|
|
34626
|
+
"line": 80,
|
|
34627
|
+
"title": "an unbound required variable is refused 400 validation_error",
|
|
34628
|
+
"explicitId": "openwop.requirement.prompts.render-unbound-required-refused",
|
|
34629
|
+
"citations": [
|
|
34630
|
+
{
|
|
34631
|
+
"section": null,
|
|
34632
|
+
"requirement": null,
|
|
34633
|
+
"interpolated": true
|
|
34634
|
+
}
|
|
34635
|
+
]
|
|
34636
|
+
},
|
|
34637
|
+
{
|
|
34638
|
+
"id": "openwop.it.v2-prompt-resolution-chain-event.every-agent-prompt-resolved-records-the-chain-it-walked-with-one-applied-layer-m",
|
|
34639
|
+
"file": "v2-prompt-resolution-chain-event.test.ts",
|
|
34640
|
+
"line": 37,
|
|
34641
|
+
"title": "every agent.prompt-resolved records the chain it walked, with one applied layer mirrored by resolved",
|
|
34642
|
+
"explicitId": "openwop.requirement.prompts.resolution-chain-record",
|
|
34643
|
+
"citations": [
|
|
34644
|
+
{
|
|
34645
|
+
"section": null,
|
|
34646
|
+
"requirement": null,
|
|
34647
|
+
"interpolated": true
|
|
34648
|
+
}
|
|
34649
|
+
]
|
|
34650
|
+
},
|
|
34651
|
+
{
|
|
34652
|
+
"id": "openwop.it.v2-prompt-template-shape.prompt-kind-is-a-string-enum-of-exactly-the-four-kinds",
|
|
34653
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
34654
|
+
"line": 44,
|
|
34655
|
+
"title": "prompt-kind is a string enum of exactly the four kinds",
|
|
34656
|
+
"explicitId": "openwop.requirement.prompts.prompt-kind-enum",
|
|
34657
|
+
"citations": [
|
|
34658
|
+
{
|
|
34659
|
+
"section": "schemas/v2/prompt-kind.schema.json",
|
|
34660
|
+
"requirement": "prompt-kind MUST be type string"
|
|
34661
|
+
},
|
|
34662
|
+
{
|
|
34663
|
+
"section": "schemas/v2/prompt-kind.schema.json",
|
|
34664
|
+
"requirement": "prompt-kind MUST be exactly system, user, few-shot, schema-hint"
|
|
34665
|
+
}
|
|
34666
|
+
]
|
|
34667
|
+
},
|
|
34668
|
+
{
|
|
34669
|
+
"id": "openwop.it.v2-prompt-template-shape.a-minimal-and-a-full-prompttemplate-validate-a-missing-text-a-non-semver-version",
|
|
34670
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
34671
|
+
"line": 50,
|
|
34672
|
+
"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",
|
|
34673
|
+
"explicitId": "openwop.requirement.prompts.prompt-template-shape",
|
|
34674
|
+
"citations": [
|
|
34675
|
+
{
|
|
34676
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
34677
|
+
"requirement": null,
|
|
34678
|
+
"interpolated": true
|
|
34679
|
+
},
|
|
34680
|
+
{
|
|
34681
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
34682
|
+
"requirement": null,
|
|
34683
|
+
"interpolated": true
|
|
34684
|
+
},
|
|
34685
|
+
{
|
|
34686
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
34687
|
+
"requirement": "text is REQUIRED"
|
|
34688
|
+
},
|
|
34689
|
+
{
|
|
34690
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
34691
|
+
"requirement": "version MUST be SemVer"
|
|
34692
|
+
},
|
|
34693
|
+
{
|
|
34694
|
+
"section": "schemas/v2/ids.schema.json §templateId",
|
|
34695
|
+
"requirement": "templateId MUST match the templateId grammar (no /)"
|
|
34696
|
+
},
|
|
34697
|
+
{
|
|
34698
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
34699
|
+
"requirement": "kind MUST be one of the four"
|
|
34700
|
+
},
|
|
34701
|
+
{
|
|
34702
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
34703
|
+
"requirement": "a variable name MUST be a templating identifier (no dashes)"
|
|
34704
|
+
}
|
|
34705
|
+
]
|
|
34706
|
+
},
|
|
34707
|
+
{
|
|
34708
|
+
"id": "openwop.it.v2-prompt-template-shape.prompttemplate-is-closed-an-unknown-property-is-rejected-an-extension-prefixed-o",
|
|
34709
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
34710
|
+
"line": 67,
|
|
34711
|
+
"title": "PromptTemplate is closed: an unknown property is rejected, an extension-prefixed one admitted, and a pack meta must carry its stamps",
|
|
34712
|
+
"explicitId": "openwop.requirement.prompts.prompt-template-closed",
|
|
34713
|
+
"citations": [
|
|
34714
|
+
{
|
|
34715
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
34716
|
+
"requirement": "an unknown top-level property MUST be rejected"
|
|
34717
|
+
},
|
|
34718
|
+
{
|
|
34719
|
+
"section": null,
|
|
34720
|
+
"requirement": "an x- extension property MUST be admitted",
|
|
34721
|
+
"interpolated": true
|
|
34722
|
+
},
|
|
34723
|
+
{
|
|
34724
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
34725
|
+
"requirement": "PromptVariable is closed"
|
|
34726
|
+
},
|
|
34727
|
+
{
|
|
34728
|
+
"section": "host-services.md §Library",
|
|
34729
|
+
"requirement": "a pack template MUST carry meta.packName and meta.packVersion"
|
|
34730
|
+
},
|
|
34731
|
+
{
|
|
34732
|
+
"section": "schemas/v2/prompt-template.schema.json",
|
|
34733
|
+
"requirement": "a stamped pack template MUST validate"
|
|
34734
|
+
}
|
|
34735
|
+
]
|
|
34736
|
+
},
|
|
34737
|
+
{
|
|
34738
|
+
"id": "openwop.it.v2-prompt-template-shape.the-string-and-object-forms-validate-a-missing-prefix-a-non-semver-version-a-mis",
|
|
34739
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
34740
|
+
"line": 77,
|
|
34741
|
+
"title": "the string and object forms validate; a missing prefix, a non-SemVer version, a missing templateId or an unknown property is rejected",
|
|
34742
|
+
"explicitId": "openwop.requirement.prompts.prompt-ref-forms",
|
|
34743
|
+
"citations": [
|
|
34744
|
+
{
|
|
34745
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
34746
|
+
"requirement": null,
|
|
34747
|
+
"interpolated": true
|
|
34748
|
+
},
|
|
34749
|
+
{
|
|
34750
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
34751
|
+
"requirement": "the object form with templateId alone MUST validate"
|
|
34752
|
+
},
|
|
34753
|
+
{
|
|
34754
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
34755
|
+
"requirement": "the full object form MUST validate"
|
|
34756
|
+
},
|
|
34757
|
+
{
|
|
34758
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
34759
|
+
"requirement": "a string ref MUST start with prompt:"
|
|
34760
|
+
},
|
|
34761
|
+
{
|
|
34762
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
34763
|
+
"requirement": "a string ref version MUST be SemVer"
|
|
34764
|
+
},
|
|
34765
|
+
{
|
|
34766
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
34767
|
+
"requirement": "the object form MUST carry templateId"
|
|
34768
|
+
},
|
|
34769
|
+
{
|
|
34770
|
+
"section": "schemas/v2/prompt-ref.schema.json",
|
|
34771
|
+
"requirement": "the object form is closed"
|
|
34772
|
+
}
|
|
34773
|
+
]
|
|
34774
|
+
},
|
|
34775
|
+
{
|
|
34776
|
+
"id": "openwop.it.v2-prompt-template-shape.a-kind-prompt-pack-validates-and-carries-no-nodes-or-chains",
|
|
34777
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
34778
|
+
"line": 91,
|
|
34779
|
+
"title": "a kind prompt pack validates and carries no nodes or chains",
|
|
34780
|
+
"explicitId": "openwop.requirement.prompts.prompt-pack-manifest-shape",
|
|
34781
|
+
"citations": [
|
|
34782
|
+
{
|
|
34783
|
+
"section": "schemas/v2/prompt-pack-manifest.schema.json",
|
|
34784
|
+
"requirement": null,
|
|
34785
|
+
"interpolated": true
|
|
34786
|
+
},
|
|
34787
|
+
{
|
|
34788
|
+
"section": "host-services.md §Library",
|
|
34789
|
+
"requirement": "a kind prompt pack MUST NOT carry nodes[]"
|
|
34790
|
+
},
|
|
34791
|
+
{
|
|
34792
|
+
"section": "host-services.md §Library",
|
|
34793
|
+
"requirement": "a kind prompt pack MUST NOT carry chains[]"
|
|
34794
|
+
},
|
|
34795
|
+
{
|
|
34796
|
+
"section": "schemas/v2/prompt-pack-manifest.schema.json",
|
|
34797
|
+
"requirement": "kind MUST be prompt"
|
|
34798
|
+
},
|
|
34799
|
+
{
|
|
34800
|
+
"section": "schemas/v2/prompt-pack-manifest.schema.json",
|
|
34801
|
+
"requirement": "a prompt pack MUST ship at least one template"
|
|
34802
|
+
}
|
|
34803
|
+
]
|
|
34804
|
+
},
|
|
34805
|
+
{
|
|
34806
|
+
"id": "openwop.it.v2-prompt-template-shape.the-prompts-record-when-advertised-validates-against-the-v2-capabilities-schema",
|
|
34807
|
+
"file": "v2-prompt-template-shape.test.ts",
|
|
34808
|
+
"line": 102,
|
|
34809
|
+
"title": "the prompts record, when advertised, validates against the v2 capabilities schema",
|
|
34810
|
+
"explicitId": "openwop.requirement.prompts.capability-record-shape",
|
|
34811
|
+
"citations": [
|
|
34812
|
+
{
|
|
34813
|
+
"section": "schemas/v2/capabilities.schema.json §prompts",
|
|
34814
|
+
"requirement": null,
|
|
34815
|
+
"interpolated": true
|
|
34816
|
+
}
|
|
34817
|
+
]
|
|
34818
|
+
},
|
|
33474
34819
|
{
|
|
33475
34820
|
"id": "openwop.it.v2-protected-resource-metadata.serves-rfc-9728-metadata-unauthenticated-at-the-uri-derived-from-its-resource-id",
|
|
33476
34821
|
"file": "v2-protected-resource-metadata.test.ts",
|
|
@@ -34062,6 +35407,48 @@
|
|
|
34062
35407
|
}
|
|
34063
35408
|
]
|
|
34064
35409
|
},
|
|
35410
|
+
{
|
|
35411
|
+
"id": "openwop.it.v2-run-execution-bounds.advertised-limits-maxrundurationms-and-maxloopiterations-are-well-formed",
|
|
35412
|
+
"file": "v2-run-execution-bounds.test.ts",
|
|
35413
|
+
"line": 46,
|
|
35414
|
+
"title": "advertised limits.maxRunDurationMs and maxLoopIterations are well-formed",
|
|
35415
|
+
"explicitId": "openwop.requirement.runs.limits-bounds-shape",
|
|
35416
|
+
"citations": [
|
|
35417
|
+
{
|
|
35418
|
+
"section": null,
|
|
35419
|
+
"requirement": null,
|
|
35420
|
+
"interpolated": true
|
|
35421
|
+
}
|
|
35422
|
+
]
|
|
35423
|
+
},
|
|
35424
|
+
{
|
|
35425
|
+
"id": "openwop.it.v2-run-execution-bounds.an-out-of-range-runtimeoutms-is-refused-400-validation-error-at-create",
|
|
35426
|
+
"file": "v2-run-execution-bounds.test.ts",
|
|
35427
|
+
"line": 56,
|
|
35428
|
+
"title": "an out-of-range runTimeoutMs is refused 400 validation_error at create",
|
|
35429
|
+
"explicitId": "openwop.requirement.runs.run-timeout-out-of-range-refused",
|
|
35430
|
+
"citations": [
|
|
35431
|
+
{
|
|
35432
|
+
"section": null,
|
|
35433
|
+
"requirement": null,
|
|
35434
|
+
"interpolated": true
|
|
35435
|
+
}
|
|
35436
|
+
]
|
|
35437
|
+
},
|
|
35438
|
+
{
|
|
35439
|
+
"id": "openwop.it.v2-run-execution-bounds.a-run-exceeding-runtimeoutms-fails-run-timeout-with-cap-breached-kind-run-durati",
|
|
35440
|
+
"file": "v2-run-execution-bounds.test.ts",
|
|
35441
|
+
"line": 62,
|
|
35442
|
+
"title": "a run exceeding runTimeoutMs fails run_timeout with cap.breached { kind: run-duration }",
|
|
35443
|
+
"explicitId": "openwop.requirement.runs.run-timeout-breach",
|
|
35444
|
+
"citations": [
|
|
35445
|
+
{
|
|
35446
|
+
"section": null,
|
|
35447
|
+
"requirement": null,
|
|
35448
|
+
"interpolated": true
|
|
35449
|
+
}
|
|
35450
|
+
]
|
|
35451
|
+
},
|
|
34065
35452
|
{
|
|
34066
35453
|
"id": "openwop.it.v2-run-fork-ancestry.a-branch-fork-is-not-a-composition-child-its-ancestry-parent-is-null",
|
|
34067
35454
|
"file": "v2-run-fork-ancestry.test.ts",
|