@openwop/spec-artifacts 2.46.11 → 2.46.13

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/CORPUS-STAMP.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "_comment": "Provenance of @openwop/spec-artifacts (RFC 0168 §D.2). files: SHA-256 per file; the conformance suite compares the installed peer against dist/spec-artifacts.lock.json at start.",
3
3
  "package": "@openwop/spec-artifacts",
4
- "version": "2.46.11",
5
- "corpusTag": "v2.46.11",
4
+ "version": "2.46.13",
5
+ "corpusTag": "v2.46.13",
6
6
  "files": {
7
7
  "api/.redocly.lint-ignore.yaml": "bf5a8350b88a72fa43f59605ed8d903ed24b6cfccda5e45509c9f6ed9ee4e712",
8
8
  "api/asyncapi.yaml": "d5ecb9ee6114582be3b1f662c84bfac9ae96dae7bacb853e461168f70a8e1c7d",
9
9
  "api/grpc/openwop.proto": "c3e72bb17cba514ee98feb6434e6c9b6ea6795bfd086489ec69fd882dd1ad977",
10
10
  "api/openapi.yaml": "ac6de5303872664b78ff419c035915593e01599e02835e777a0123de1baeb398",
11
11
  "api/redocly.yaml": "b0604c89b2ca6d5076ec25725c539dad44a741a811fe524439ee6daef8baa09f",
12
- "api/seams-v2.yaml": "7722f9cf3dcf9e4288bf1ad0087f347fbc1ee53ccd1f27ebde4b01cd9dfe2ba2",
13
- "api/v2/asyncapi.yaml": "2faef7d29e10478bfcde17e63f34b436cedc8b8f6aecb44ca8895bd93ad44ebe",
14
- "api/v2/openapi.yaml": "78c72788d422b216286a874a2900674cde0222a80cb92b29b9427d15a7d220e7",
12
+ "api/seams-v2.yaml": "eaec2c50979e9b55ac575d2be5c490a3048ae86613b1c018a59c1e8e0a26f24b",
13
+ "api/v2/asyncapi.yaml": "656c8c4031b8ebd96ad1bd536b64456f9eaf46249311e3332d540e4fbfcb63d7",
14
+ "api/v2/openapi.yaml": "473b40600965a068ab54e77e7efc09e9be4ed7eff670f015158b4b68aaad1e83",
15
15
  "api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
16
16
  "schemas/README.md": "276fc1d51eb08e14e9127b9fd27761d7046ee33c12000f3a64a801322db8bf58",
17
17
  "schemas/a2a-task-state.schema.json": "75d5049dea8bd873ff0e7546f1c60c8d36c219bec7084264360be54a8be30ae1",
@@ -103,7 +103,7 @@
103
103
  "schemas/v2/a2ui-surface-delta-frame.schema.json": "6889c5da3fe7e76cb614038c0eea6774776fa640448558b258eb87fb50cb9b64",
104
104
  "schemas/v2/agent-deployment-transition.schema.json": "93a334ff042d51378c89fdd7134664271bf9592419bb5e3e00821ed06bc1904e",
105
105
  "schemas/v2/agent-deployment.schema.json": "d59b43fb62b522005ee22bc3bc53775a6777493e5e42d71812abc347625fa7fe",
106
- "schemas/v2/agent-eval-suite.schema.json": "e80439bc6873a5d9a14122f81d16f7650104018d814bd316aafd3fc8b8225604",
106
+ "schemas/v2/agent-eval-suite.schema.json": "a49ad7a232ec781512375001f8d8c70ab073b69ca094f5251dbb30a0bbd972a7",
107
107
  "schemas/v2/agent-inventory-response.schema.json": "5f74c3da946dfc3114624567a989717748081ab947b4d2af3f49034d67f4306b",
108
108
  "schemas/v2/agent-manifest.schema.json": "004ff150e955deebb9e64273de5093f5144b9b3895b09953e65aa74b61140778",
109
109
  "schemas/v2/agent-org-chart.schema.json": "113b079e1dce95908467cbef7f83e076fdb82aab5b0678fc1a43e32bfc9cbadf",
@@ -117,7 +117,7 @@
117
117
  "schemas/v2/artifact.schema.json": "85b9dc284d39b99d2a66fa8cbf47f2dd3d8526d3bd6cc411ad315b372de38975",
118
118
  "schemas/v2/audit-verify-result.schema.json": "14af8e9283510f0a40e48a2059c929ee44e0fc9fa3cc66a95bfbe90b17c48297",
119
119
  "schemas/v2/budget-policy.schema.json": "1de68095db0beb5c7a4be629de26e79f62ebbe748a88d46f36e768edfd1f0d68",
120
- "schemas/v2/capabilities.schema.json": "a717d34d98201cefe1769421c468d22e124d1a46881f60683cb6e103843dbc9a",
120
+ "schemas/v2/capabilities.schema.json": "87faea080e8043abd16cba19dece777a810731fc3e4455c96c02d0bfd0997d84",
121
121
  "schemas/v2/certification-bundle.schema.json": "5cfa7fb5247160333e33a58b60d42bcd4e5269d8391d6a112d301e14828892ed",
122
122
  "schemas/v2/channel-presence-payload.schema.json": "fc03df0c20cc12a25f7ee6a47503a4c5931d79fe3d5ff24815e8fd7c1bcb9a87",
123
123
  "schemas/v2/channel-written-payload.schema.json": "ccecff3c71a3275ad8db035ac0e04db25e6f8d23cf091ddbcd5a60d1be1cbb6b",
@@ -145,7 +145,7 @@
145
145
  "schemas/v2/envelopes/schema.response.schema.json": "d049a081267c06c28879c331b147f3ed821b14ccfd93005c67aff64db0a8c68e",
146
146
  "schemas/v2/envelopes/ui.a2ui-surface.schema.json": "e92a2548ba65454c9e0a34f72ea6768d18f59e61fa5da7668d0b2d5baddaddc8",
147
147
  "schemas/v2/error-envelope.schema.json": "8ddb1d80330dfef17572a74dfe3a53e1a06411e4b0af6a6f1dd6e7e7461da987",
148
- "schemas/v2/eval-summary.schema.json": "e670fad6c4c487f80edf3832ccd427b534b2066fbbc1cc2c158e205d6e7e3f6b",
148
+ "schemas/v2/eval-summary.schema.json": "d07f4d116c5410997a81d0bc5387545fb61933a6333c360a26ab8a71c749336b",
149
149
  "schemas/v2/export-bundle.schema.json": "bd28905a7729437ab7f2ad8bb33e13a371b2bf5605a7eb2962a0d246de312d69",
150
150
  "schemas/v2/form-content-pack-manifest.schema.json": "a1942a124e250a6e9fbdb6b811c5a125e78fbcbcaa46dfc71d0636f24710a339",
151
151
  "schemas/v2/frontend-plugin-manifest.schema.json": "b279da288d542906a72b8cb4e872e001de632eaff539e0259b9cce287f82bf8f",
@@ -208,14 +208,14 @@
208
208
  "schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
209
209
  "spec/v1/alias-detectors.json": "22444c22bb88c568339ef512553f9fc38146e22b566d11ab8608f655d688d19c",
210
210
  "spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
211
- "spec/v1/core-standard-manifest.json": "2a845db8a673c2f5c95ff752fc7765fb72779abf589595e7bf9989f36216ea39",
211
+ "spec/v1/core-standard-manifest.json": "1070771f6480ead748c5bf02f0cfbc397ce0009dc4dd237c58d1178360c91179",
212
212
  "spec/v1/deprecations.json": "e723bc11d7272c71789ad1303bb7f21809a8a024abf57594f9d5c35dc199ece9",
213
213
  "spec/v1/deprecations.schema.json": "3e393c405d2a41b467d8c5e3c468549078df1ce6a6d2588fc488097b95d9b55b",
214
214
  "spec/v1/end-of-support.json": "35f0bf3b70fe78b16e2a2fd81a153fc27e703f6c16376c6fe7cdf1f4f2c4e6d4",
215
215
  "spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
216
216
  "spec/v1/event-codemap.schema.json": "d05933b2e88103aff51a2f774df97b9bda065e0fc88dbd9b114cc47a32189174",
217
217
  "spec/v1/extensions.json": "79a60754aa16cbdbdb604f8e5c00038af535a1690a4d07bd5ff7c38f0256a7bc",
218
- "spec/v1/gaps.json": "3bd864a64f6c9c69a3bfc4178d9c7df8dd625b682c1dbde1656b89a239c5a6f9",
218
+ "spec/v1/gaps.json": "ced525510fbb3405dae0cdff4f0943a6d2aaa1bbff39312faac2679a55952116",
219
219
  "spec/v1/gaps.schema.json": "8fd83259f556553c9df0f53e7a82ca8c2a4771d471197f69b4e2ae0ceeacfd66",
220
220
  "spec/v1/migrations.json": "4c50760be70cb644d02427bcaf5749606700edf4513f423903cf3b1d12f5c300",
221
221
  "spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
@@ -228,7 +228,7 @@
228
228
  "spec/v2/core/connection-packs.md": "c80f95bd6a03698f35c72cdb2b46bd973f49203bbd786c26760e35fa86e6f23d",
229
229
  "spec/v2/core/conversation.md": "8d6abedf6af408a74577753bfca24719d318e2632e10b45ff5d63bdcf31a8aaa",
230
230
  "spec/v2/core/errors.md": "e48838701b86bbfe0ffee77b18a8ffc4e5f04724b4318507d9771da653f8da0f",
231
- "spec/v2/core/events.md": "370621629c2439747f2e4ddab4780eea4345354f79e5098739d66823873f3105",
231
+ "spec/v2/core/events.md": "c3dcece6f1b1aa43e1e01c5ece23b2df075a505d5f6c2f37de0801aeaa486b62",
232
232
  "spec/v2/core/execution.md": "4218dbb397534940f83ca5d46561f02bf8f3fdf68d2ae7fefe7f2eb2ed771103",
233
233
  "spec/v2/core/form-content-packs.md": "02931227899676fd4581a27017be2a6c4953904717be9b81c29d12f87ab3917d",
234
234
  "spec/v2/core/headers.md": "f69fe81e4a3ad21879bb85948660c16860eb05bf152928c31aa4898f6d7d1887",
@@ -254,7 +254,7 @@
254
254
  "spec/v2/core/workflow-chain-packs.md": "fdce7a8477e269950a2bac05ee6eddbd66eb0b670b464d00054f7196ec05d29c",
255
255
  "spec/v2/corrections.json": "3a8d93e33865b692d26a3b6bfd3819766e206b2e0c2a69669baa4bf833d05a49",
256
256
  "spec/v2/corrections.schema.json": "46bbffb954d13bd9995aebc912ceeb2544f7064331abf25fd6ab85c81a5cec94",
257
- "spec/v2/declaration.json": "773af65df59ce7bc2b3ab17093e23ac8083a8faaeff643302fe30198deae933b",
257
+ "spec/v2/declaration.json": "de8558d76a03d07101c5e26a7311d3e90b449f065c9ba418f4abd9c91864a58b",
258
258
  "spec/v2/declaration.schema.json": "ef951633e4070899f64828f5cf1b5f4870270a0360f81dbb49b5b4d6cd407550",
259
259
  "spec/v2/eos-override.json": "4c72d2f6a658943b01c1de1643cf294642091933af7832f38ee5495df684cb2d",
260
260
  "spec/v2/errors.json": "1f0e29455edbd22e28f67f221766209c3c55ac4987beb77993b5702dd7cae131",
@@ -281,7 +281,7 @@
281
281
  "spec/v2/ext/sandbox-runtime-notes/README.md": "0d1290fb1e20b2e35c0b15051541ab6546e4e2a6f693b4f912cb3f7d6a65e92c",
282
282
  "spec/v2/ext/webResearch/README.md": "b675e6f6646128d781b661f754c2393eed86e5935d16c3a22df582a5ce025b9b",
283
283
  "spec/v2/facets/a2a.schema.json": "b68bf5e29e455e46c2ad7cfcccf5963730ec2310ff9db81884550d8df30fd6ef",
284
- "spec/v2/facets/agents.schema.json": "62a979d23219ca684bc16f91f81a4c92c2cb56e0f084d2e4f694c03e0c7125df",
284
+ "spec/v2/facets/agents.schema.json": "88fe144572c25e1b09b99fd83e2ad12b2611d4d7366b5d53c3a50d0310faad93",
285
285
  "spec/v2/facets/aiProviders.schema.json": "4eb911c2403b8f618325194855a1326680fbda2549dfbfe86a70dd2743f8fb12",
286
286
  "spec/v2/facets/auditLogIntegrity.schema.json": "9a7f81320c8f940c6f4129bc7dd895a4063231c5458a717a08c2cbf9bb886c46",
287
287
  "spec/v2/facets/auth.schema.json": "7d98bc81a0f7d307460d039eebfebd21388091bfe1d538762583940f94c0bd2a",
@@ -290,6 +290,7 @@
290
290
  "spec/v2/facets/heartbeat.schema.json": "81d7fa1895a8b0241bd07cf00a7e7905bef0fd14eb3427325261c62eee5746a6",
291
291
  "spec/v2/facets/hostEvents.schema.json": "973ff452cb91356b4c625d0b06c8d2ef335e18183de09e1afde8acead22290b3",
292
292
  "spec/v2/facets/interrupt.schema.json": "2110ef32c3f880bf706475ef4cf8ddf97ff06871b8e6003a5edbcf4439f1fb70",
293
+ "spec/v2/facets/limits.schema.json": "218fcbd34dd2cdf7548c29c8c76e1a6aea2b7d7df1ba32fbe201bd40917bc66f",
293
294
  "spec/v2/facets/mcp.schema.json": "7060657dfcff170f079beed160e3db7c1d3cc4410cd3cf64863baf6459f781cd",
294
295
  "spec/v2/facets/nondeterminismPolicy.schema.json": "e9dfaa32e0778a1a837fdad3b8a0673fccda9579ab08c8bfe9777362dd15e989",
295
296
  "spec/v2/facets/oauth.schema.json": "3a0cbe249d3bd5a5982349ae7ba2534776cc958e4a57e0fbeabf2bdab6e99e69",
@@ -313,9 +314,9 @@
313
314
  "spec/v2/path-manifest.json": "7b5679a4dad98c80d855361d88a98c8a4e045af15e310862a05b285b815dc9fc",
314
315
  "spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
315
316
  "spec/v2/profiles.json": "b382b261c7844798575f7c1b37c934f0da19846016a2337d883d4f5ef6e05479",
316
- "spec/v2/release.json": "203adbfd38c222e739f8db654cf2bb453d61dcbdb74702949d933fa3dbad9baf",
317
+ "spec/v2/release.json": "e8fe4796dd85264ee4877b203da962d8c593c996e428289b165827cd86bfd2cc",
317
318
  "spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624",
318
- "spec/v2/surface-baseline.json": "a566e5a039f75a076bde41640f4ecbea50fbae41bf4581aff69c2dad14b24b6a"
319
+ "spec/v2/surface-baseline.json": "094912462a9b1bdd8bc3d7c9f10b4dc342d0db41b2802c3a1c60d8a8b27d2860"
319
320
  },
320
- "corpusCommit": "398b842f0e19e8de6cd6b6c706b51bedcff77356"
321
+ "corpusCommit": "234f6c57b1e01099827dcfabeaad542c2604b17a"
321
322
  }
package/api/seams-v2.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: OpenWOP conformance seams profile (openwop-conformance-seams-v2)
4
- version: 2.46.11
4
+ version: 2.46.13
5
5
  description: 'The OpenWOP conformance seams profile (`openwop-conformance-seams-v2`): test-only operations in their own
6
6
  path space, `/conformance/seams/…`. The profile is versioned and validated against the canonical v2 schemas with no tolerance
7
7
  path. It is not a capability: a host advertises the profile, never a `testSeams` flag.
@@ -1,7 +1,7 @@
1
1
  asyncapi: 3.1.0
2
2
  info:
3
3
  title: OpenWOP v2 event streams
4
- version: 2.46.11
4
+ version: 2.46.13
5
5
  description: 'OpenWOP v2 event streams over SSE. The run-events channel''s address is the OpenAPI path key, and the server
6
6
  pathname is empty (bare origin). `streamMode` is a stream mode from the closed set, or a comma-separated combination of
7
7
  them; `values` never combines. `hostEvents` has a default address, `/host/events`; a host MAY declare another under `heartbeat.deliveryChannel`.
@@ -56,6 +56,10 @@ operations:
56
56
  type: string
57
57
  pattern: ^(values|(updates|messages|debug)(,(updates|messages|debug))*)$
58
58
  default: updates
59
+ resumable:
60
+ type: boolean
61
+ default: false
62
+ description: RFC 0247 opt-in to a bounded close (events.md §Bounded close).
59
63
  subscribeHostEvents:
60
64
  action: receive
61
65
  channel:
@@ -64,6 +68,14 @@ operations:
64
68
  bindings:
65
69
  http:
66
70
  method: GET
71
+ query:
72
+ type: object
73
+ additionalProperties: false
74
+ properties:
75
+ resumable:
76
+ type: boolean
77
+ default: false
78
+ description: RFC 0247 opt-in to a bounded close (events.md §Bounded close).
67
79
  components:
68
80
  securitySchemes:
69
81
  ApiKeyAuth:
@@ -1,7 +1,7 @@
1
1
  openapi: 3.1.0
2
2
  info:
3
3
  title: OpenWOP v2 API
4
- version: 2.46.11
4
+ version: 2.46.13
5
5
  summary: REST surface for declaring, executing, suspending, resuming, and observing multi-step workflows.
6
6
  description: 'The OpenWOP v2 REST API. Paths are unversioned and served at the bare origin; a client selects a version with
7
7
  the `OpenWOP-Version` header from the host''s `protocolVersions[]`. Conformance seams and test-mode operations are not
@@ -511,6 +511,15 @@ paths:
511
511
  trigger fires (terminal events, suspensions, connection close), and emits a single SSE event with `event: batch`
512
512
  and `data:` as a JSON array of `RunEventDoc`. Range 0..5000; `0` means no buffering. See `stream-modes.md` §Aggregation
513
513
  hint.'
514
+ - in: query
515
+ name: resumable
516
+ schema:
517
+ type: boolean
518
+ default: false
519
+ description: RFC 0247. `true` says this consumer resumes with `Last-Event-ID` when the stream closes without the terminal
520
+ event, so a host advertising `limits.maxStreamAgeSec` MAY end it early (a bounded close, never terminal). Absent
521
+ or `false`, the host MUST hold a live stream open (events.md §Resuming with `Last-Event-ID`). A consumer that sends
522
+ it MUST resume with `resumable=true` and `Last-Event-ID`.
514
523
  - in: header
515
524
  name: Last-Event-ID
516
525
  schema:
@@ -3550,6 +3559,15 @@ paths:
3550
3559
  '401':
3551
3560
  $ref: '#/components/responses/Unauthenticated'
3552
3561
  parameters:
3562
+ - in: query
3563
+ name: resumable
3564
+ schema:
3565
+ type: boolean
3566
+ default: false
3567
+ description: RFC 0247. `true` says this consumer resumes with `Last-Event-ID` when the stream closes without the terminal
3568
+ event, so a host advertising `limits.maxStreamAgeSec` MAY end it early (a bounded close, never terminal). Absent
3569
+ or `false`, the host MUST hold a live stream open (events.md §Resuming with `Last-Event-ID`). A consumer that sends
3570
+ it MUST resume with `resumable=true` and `Last-Event-ID`.
3553
3571
  - $ref: '#/components/parameters/OpenWOPVersion'
3554
3572
  - $ref: '#/components/parameters/OpenWOPClientVersion'
3555
3573
  security:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openwop/spec-artifacts",
3
- "version": "2.46.11",
3
+ "version": "2.46.13",
4
4
  "description": "The OpenWOP machine-readable contract: api/ (OpenAPI, AsyncAPI, the seams profile), schemas/ (v1 and v2 JSON Schemas), the spec/v1 and spec/v2 registries (errors, event codemap, declaration, deprecations, migrations, gaps) and CORPUS-STAMP.json — published from the openwop/openwop corpus tag; the peer dependency @openwop/openwop-conformance digest-checks at start (RFC 0168 §D.2).",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -105,7 +105,7 @@
105
105
  "mean"
106
106
  ],
107
107
  "default": "all",
108
- "description": "A task passes when: `all`, every trial passed; `any`, at least one did; `mean`, the mean trial score >= `thresholds.passScore`."
108
+ "description": "A task passes when: `all`, every trial passed; `any`, at least one did; `mean`, the task gating score >= `thresholds.passScore` (RFC 0246 §B: the mean over trials of the trial score, with 0 for a trial that failed its trajectory or failed closed; `meanScore` itself is unchanged)."
109
109
  }
110
110
  }
111
111
  },
@@ -297,6 +297,11 @@
297
297
  "subset"
298
298
  ],
299
299
  "description": "RFC 0244 §A. How `args` is compared with the call's `inputs`. `ignore` (default): not compared. `exact`: `inputs` JSON-deep-equals `args`. `subset`: every key path in `args` is present in `inputs` with a JSON-deep-equal value. The host compares the call as executed, before any wire redaction."
300
+ },
301
+ "isError": {
302
+ "type": "boolean",
303
+ "default": false,
304
+ "description": "RFC 0245 §A. MAY. `true`: the recorded call failed, and `response` is the error payload. A host serving this entry MUST return it to the agent as a tool error and emit `agent.tool-returned` with `error` and no `outcome`; it is not a fixture miss and is never retried live. Requires `agents.evalSuite.fixtureErrors`."
300
305
  }
301
306
  }
302
307
  }
@@ -561,6 +561,11 @@
561
561
  "type": "integer",
562
562
  "minimum": 1,
563
563
  "description": "RFC 0094 §H. Maximum REST request body size (bytes) the host accepts. Optional v1 field per `capabilities.md` §3 (previously documented as reserved — the closed `limits` object made advertising it a schema-validation failure). Hosts that advertise it MUST enforce it."
564
+ },
565
+ "maxStreamAgeSec": {
566
+ "type": "integer",
567
+ "minimum": 15,
568
+ "description": "RFC 0247. The longest, in seconds, this host holds a live `streamRunEvents` or `streamHostEvents` stream that the consumer opened with `resumable=true`. Only for such a stream, a host advertising this facet MAY end it before the run's terminal event (a bounded close) once it has been open 15 seconds, and MUST end it by this age. It MUST end at a frame boundary, MUST flush any pending batch first, and SHOULD first send an SSE `retry:` field (milliseconds). A host MUST NOT end an opted-in stream early unless it advertises this facet, and MUST NOT end a stream opened without `resumable=true` early whatever it advertises (events.md §Resuming with `Last-Event-ID`). A bounded close is never a terminal signal; only the terminal event is. A consumer that sent `resumable=true` MUST treat any close without the terminal event (a bounded close, a network drop, an intermediary's timeout) as non-terminal, and MUST reconnect with `resumable=true` and `Last-Event-ID` set to the last `id:` it received (no header if it received none). It SHOULD wait the `retry:` delay, or its own default of about one second, and SHOULD back off when reconnects fail or close without a frame. A consumer MUST handle such a close whether or not this facet is advertised. On `hostEvents` the consumer resumes from the last durable event's `id:`; ephemeral events missed in the gap are not redelivered (events.md §Host events)."
564
569
  }
565
570
  },
566
571
  "allOf": [
@@ -599,7 +604,7 @@
599
604
  }
600
605
  ],
601
606
  "description": "core/capabilities.md#limits — witness: witnessable-gated; maturity stable/none",
602
- "x-openwop-seeded-from": "v1"
607
+ "x-openwop-facets-from": "spec/v2/facets/limits.schema.json"
603
608
  },
604
609
  "envelopeStrictness": {
605
610
  "type": "object",
@@ -3328,6 +3333,10 @@
3328
3333
  "type": "boolean",
3329
3334
  "description": "RFC 0244 §D. `true`: the host honours `toolResponses[].args` / `argsMatch` (first unconsumed match) and `fixtures.onMiss`, and reports `fixtureMissCount`."
3330
3335
  },
3336
+ "fixtureErrors": {
3337
+ "type": "boolean",
3338
+ "description": "RFC 0245 §B/§C. `true`: a `toolResponses[]` entry with `isError: true` is returned to the agent as a tool error and recorded as `agent.tool-returned` with `error` and no `outcome` (plus `status: \"error\"` under tool hooks); it is not a fixture miss and is never retried live. A suite carrying `isError: true` on a host that does not advertise this MUST be refused with `400 validation_error`."
3339
+ },
3331
3340
  "regressionVerdict": {
3332
3341
  "type": "boolean",
3333
3342
  "description": "RFC 0244 §F. `true`: in `regression` mode the host reports `regression.verdict`, `method`, `alpha` and `pairedTaskCount`, pairing tasks by `taskId`."
@@ -43,9 +43,15 @@
43
43
  "maximum": 1,
44
44
  "description": "The suite-level score (0.0\u20131.0): the aggregation (host-defined, typically the mean) of per-task scores."
45
45
  },
46
+ "gatedAggregateScore": {
47
+ "type": "number",
48
+ "minimum": 0,
49
+ "maximum": 1,
50
+ "description": "RFC 0246 \u00a7A/\u00a7D. The aggregation used for `aggregateScore`, applied to the per-task `gatedScore`s instead of the task scores; suite `passed` reads it. MUST be present whenever any task has `expected.trajectory`. `aggregateScore` is unchanged (RFC 0246 \u00a7C)."
51
+ },
46
52
  "passed": {
47
53
  "type": "boolean",
48
- "description": "Whether the run cleared the suite's `thresholds` (RFC 0081 \u00a7A) \u2014 `aggregateScore >= passScore` AND, when declared, `totalCostUsd <= maxCostUsd` AND the p95 latency bar. The load-bearing flag an RFC 0082 deployment gate may require (`requiredEval`)."
54
+ "description": "Whether the run cleared the suite's `thresholds` (RFC 0081 \u00a7A): the gating aggregate (`gatedAggregateScore`; `aggregateScore` when no task can gate) `>= passScore` AND, when declared, `totalCostUsd <= maxCostUsd` AND the p95 latency bar. RFC 0246 \u00a7B: a trial that failed its trajectory contributes 0 to the gating aggregate, so `passed` can be false while `aggregateScore >= passScore`. The load-bearing flag an RFC 0082 deployment gate may require (`requiredEval`)."
49
55
  },
50
56
  "taskCount": {
51
57
  "type": "integer",
@@ -85,6 +91,12 @@
85
91
  "maximum": 1,
86
92
  "description": "Task score (0.0\u20131.0)."
87
93
  },
94
+ "gatedScore": {
95
+ "type": "number",
96
+ "minimum": 0,
97
+ "maximum": 1,
98
+ "description": "RFC 0246 \u00a7A/\u00a7D. The task gating score: the mean over its trials of the trial score, with 0 for a trial that failed its trajectory or failed closed on a fixture miss. MUST be present on a task with `expected.trajectory` (equal to `score` when every trial matched); MAY be present on another task only when it differs from `score`. Under `passRule: \"mean\"` the task `passed` reads it; `score` is unchanged (RFC 0246 \u00a7C)."
99
+ },
88
100
  "passed": {
89
101
  "type": "boolean",
90
102
  "description": "Whether this task individually met its bar."
@@ -4,7 +4,7 @@
4
4
  "provenance": {
5
5
  "suite": {
6
6
  "package": "@openwop/openwop-conformance",
7
- "version": "2.46.11"
7
+ "version": "2.46.13"
8
8
  },
9
9
  "note": "Derived from the corpus at generation time. Regenerate with --write; verify with --check."
10
10
  },
@@ -426,5 +426,5 @@
426
426
  "$id": "https://openwop.dev/spec/v1/workspace-file.schema.json"
427
427
  }
428
428
  ],
429
- "digest": "2ba970e2bc387bf1dc7fe1fd9caa8dcac67f461223da82112286d73971154973"
429
+ "digest": "a29cfbbca5f88e3db5efdf3358822f67ec34b3c9d3d6d6a7fc8f56f66262b856"
430
430
  }
package/spec/v1/gaps.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "./gaps.schema.json",
3
3
  "version": 1,
4
- "updated": "2026-10-15",
4
+ "updated": "2026-10-16",
5
5
  "witnessClasses": [
6
6
  "witnessable-unaided",
7
7
  "witnessable-gated",
@@ -14717,6 +14717,142 @@
14717
14717
  }
14718
14718
  ]
14719
14719
  },
14720
+ {
14721
+ "id": "openwop.gap.0245.1",
14722
+ "rfc": "0245",
14723
+ "local": "G1",
14724
+ "section": "§B, §Falsifiability",
14725
+ "surface": "\"The agent receives the entry as a tool error\" cannot be caused from outside: the scripted conformance agent's results are scripted, so what it saw and which branch it took are not observable.",
14726
+ "witness": "unclassified",
14727
+ "requirementId": null,
14728
+ "disposition": "transferred",
14729
+ "target": "TODO.md",
14730
+ "sources": [
14731
+ {
14732
+ "file": "RFCS/registers/0245-eval-fixtures-replay-tool-errors.gaps.md",
14733
+ "token": "G1"
14734
+ }
14735
+ ]
14736
+ },
14737
+ {
14738
+ "id": "openwop.gap.0245.2",
14739
+ "rfc": "0245",
14740
+ "local": "G2",
14741
+ "section": "UQ 1",
14742
+ "surface": "No registered error code for a failed tool execution, so a portable suite cannot assert `error.code`.",
14743
+ "witness": "unclassified",
14744
+ "requirementId": null,
14745
+ "disposition": "transferred",
14746
+ "target": "TODO.md",
14747
+ "sources": [
14748
+ {
14749
+ "file": "RFCS/registers/0245-eval-fixtures-replay-tool-errors.gaps.md",
14750
+ "token": "G2"
14751
+ }
14752
+ ]
14753
+ },
14754
+ {
14755
+ "id": "openwop.gap.0245.3",
14756
+ "rfc": "0245",
14757
+ "local": "G3",
14758
+ "section": "UQ 2",
14759
+ "surface": "For a host-native (non-MCP) tool, the agent-facing error shape is host-defined.",
14760
+ "witness": "unclassified",
14761
+ "requirementId": null,
14762
+ "disposition": "transferred",
14763
+ "target": "TODO.md",
14764
+ "sources": [
14765
+ {
14766
+ "file": "RFCS/registers/0245-eval-fixtures-replay-tool-errors.gaps.md",
14767
+ "token": "G3"
14768
+ }
14769
+ ]
14770
+ },
14771
+ {
14772
+ "id": "openwop.gap.0246.1",
14773
+ "rfc": "0246",
14774
+ "local": "G1",
14775
+ "section": "§Acceptance",
14776
+ "surface": "`COMPATIBILITY.md` §3 requires a `### Security` CHANGELOG entry citing an advisory ID per `SECURITY.md`; no advisory exists yet.",
14777
+ "witness": "unclassified",
14778
+ "requirementId": null,
14779
+ "disposition": "closed",
14780
+ "target": null,
14781
+ "sources": [
14782
+ {
14783
+ "file": "RFCS/registers/0246-trajectory-failure-gates-the-pass.gaps.md",
14784
+ "token": "G1"
14785
+ }
14786
+ ]
14787
+ },
14788
+ {
14789
+ "id": "openwop.gap.0246.2",
14790
+ "rfc": "0246",
14791
+ "local": "G2",
14792
+ "section": "UQ 1",
14793
+ "surface": "Whether `gatedScore` is always present on a trajectory task, or only when it differs.",
14794
+ "witness": "unclassified",
14795
+ "requirementId": null,
14796
+ "disposition": "closed",
14797
+ "target": null,
14798
+ "sources": [
14799
+ {
14800
+ "file": "RFCS/registers/0246-trajectory-failure-gates-the-pass.gaps.md",
14801
+ "token": "G2"
14802
+ }
14803
+ ]
14804
+ },
14805
+ {
14806
+ "id": "openwop.gap.0246.3",
14807
+ "rfc": "0246",
14808
+ "local": "G3",
14809
+ "section": "§Compatibility",
14810
+ "surface": "MyndHyve (build `73befc109`) implements RFC 0244 and decides both the `mean` task pass and the suite `passed` on output scores, so it is in the harm set; the window waiver is conditional on its fix.",
14811
+ "witness": "unclassified",
14812
+ "requirementId": null,
14813
+ "disposition": "transferred",
14814
+ "target": "TODO.md",
14815
+ "sources": [
14816
+ {
14817
+ "file": "RFCS/registers/0246-trajectory-failure-gates-the-pass.gaps.md",
14818
+ "token": "G3"
14819
+ }
14820
+ ]
14821
+ },
14822
+ {
14823
+ "id": "openwop.gap.0247.1",
14824
+ "rfc": "0247",
14825
+ "local": "G1",
14826
+ "section": "§B, §Falsifiability",
14827
+ "surface": "No suite leg observes a bounded close: it needs an opted-in stream held open on a live run past the advertised age, longer than the suite's stream waits budget for.",
14828
+ "witness": "unclassified",
14829
+ "requirementId": null,
14830
+ "disposition": "transferred",
14831
+ "target": "TODO.md",
14832
+ "sources": [
14833
+ {
14834
+ "file": "RFCS/registers/0247-bounded-stream-lifetime.gaps.md",
14835
+ "token": "G1"
14836
+ }
14837
+ ]
14838
+ },
14839
+ {
14840
+ "id": "openwop.gap.0247.2",
14841
+ "rfc": "0247",
14842
+ "local": "G2",
14843
+ "section": "UQ 2",
14844
+ "surface": "A host behind a short front end closes sooner on that hop than its advertised `maxStreamAgeSec`; a consumer cannot learn the hop's bound.",
14845
+ "witness": "unclassified",
14846
+ "requirementId": null,
14847
+ "disposition": "transferred",
14848
+ "target": "TODO.md",
14849
+ "sources": [
14850
+ {
14851
+ "file": "RFCS/registers/0247-bounded-stream-lifetime.gaps.md",
14852
+ "token": "G2"
14853
+ }
14854
+ ]
14855
+ },
14720
14856
  {
14721
14857
  "id": "openwop.gap.spec.a2a-integration.g1",
14722
14858
  "rfc": "0152",
@@ -1,7 +1,7 @@
1
1
  # Events
2
2
 
3
3
  > **Status: Stable.**
4
- > **Normative home:** `heartbeat`, `hostEvents`, `envelopeContracts`, `envelopes`, `feedback`, `providerUsage`, `supportedEnvelopes`, `schemaVersions`, `envelopeStrictness`.
4
+ > **Normative home:** `heartbeat`, `hostEvents`, `envelopeContracts`, `envelopes`, `feedback`, `providerUsage`, `supportedEnvelopes`, `schemaVersions`, `envelopeStrictness`, `limits`.
5
5
 
6
6
  ## Why this exists
7
7
 
@@ -100,7 +100,7 @@ Each frame carries `id:` (the `sequence`), `event:` (the v2 `type`, in a single
100
100
  - `batch` — `bufferMs`; `data:` is an array of `RunEventDoc`.
101
101
  - `ai.message.chunk` — `messages` mode; `data:` is the `outputChunk` payload, persisted as type `output.chunk`.
102
102
 
103
- A host MUST set `Content-Type: text/event-stream`, MUST emit a keep-alive comment at least every 30 seconds, and MUST close the connection after the run's terminal event (`run.completed`, `run.failed`, `run.cancelled`).
103
+ A host MUST set `Content-Type: text/event-stream`, MUST emit a keep-alive comment at least every 30 seconds, and MUST close the connection after the run's terminal event.
104
104
 
105
105
  #### Resuming with `Last-Event-ID`
106
106
 
@@ -112,6 +112,10 @@ A host MUST set `Content-Type: text/event-stream`, MUST emit a keep-alive commen
112
112
  - The header is evaluated only after the caller is authorized to read the run. For a run the caller cannot read, the response MUST be the one the host gives without the header.
113
113
  - In `values` mode, resumption MUST emit a `state.snapshot` first.
114
114
 
115
+ #### Bounded close
116
+
117
+ With `resumable=true`, a host advertising `limits.maxStreamAgeSec` MAY end a live stream early, per that facet. That close is not terminal; the consumer MUST resume with `Last-Event-ID`.
118
+
115
119
  #### Batching and subscribers
116
120
 
117
121
  With `bufferMs` (0..5000) the host accumulates events into one `event: batch` frame whose `data:` is an array of `RunEventDoc`.
@@ -171,7 +175,7 @@ The response is `{ runId, events, lastSequence, status, isTerminal }` (closed):
171
175
  A run's log MUST contain exactly one terminal run event: `run.completed`, `run.failed` or `run.cancelled`.
172
176
 
173
177
  - After it, the log MUST NOT contain another terminal run event, `run.started`, `run.resumed`, `run.resume-started`, `run.paused`, `run.restored-from-snapshot`, any `node.*` event or any `interrupt.*` event.
174
- - `compensation.*` events and `run.dead-lettered` MAY follow it (a compensating host unwinds after a cancelled parent). Vendor-prefixed types are unconstrained.
178
+ - `compensation.*` events and `run.dead-lettered` MAY follow it. Vendor-prefixed types are unconstrained.
175
179
  - A host that receives work for a run whose terminal event is recorded (a duplicate delivery, a late worker) MUST NOT append forward-execution events for it, SHOULD record the refusal in its operational log, and MUST NOT surface the refusal as a run event.
176
180
 
177
181
  ## Era-2 logs
@@ -189,7 +193,7 @@ An `eventLogSchemaVersion` of `2` means v1-written. Every reader, diff included,
189
193
 
190
194
  `supportedEnvelopes.kinds` is the catalog. A host advertising it MUST refuse an emitted `type` that is neither universal nor a member, with `unknown_envelope_kind`.
191
195
 
192
- An absent `kinds` is not an empty catalog and is not an unrestricted one: a host advertising `supportedEnvelopes` without it has made no catalog claim, and an engine MUST refuse every non-universal kind rather than admit it unchecked.
196
+ An absent `kinds` is not an empty catalog and is not an unrestricted one: an engine MUST refuse every non-universal kind.
193
197
 
194
198
  ### `schemaVersions`
195
199
 
@@ -223,7 +227,7 @@ An absent `kinds` is not an empty catalog and is not an unrestricted one: a host
223
227
  A host advertising `providerUsage` MUST emit exactly one `provider.usage` per LLM provider invocation, before that node's `node.completed`. A host that does not advertise it omits the event.
224
228
 
225
229
  - `inputTokens` and `outputTokens` MUST replay identically; `costEstimateUsd` MAY be omitted on replay.
226
- - **`providerUsage.costEstimates`** advertises that the host stamps a derived cost on the event. That figure is an estimate from the host's own rate table; a consumer MUST NOT treat it as a billed amount.
230
+ - **`providerUsage.costEstimates`** advertises that the host stamps a derived cost on the event. It is an estimate from the host's rate table; a consumer MUST NOT treat it as a billed amount.
227
231
  - The payload MUST NOT carry credential refs, hashed credential identifiers, or prompt or response text (invariant `provider-usage-no-credential-leak`).
228
232
  - `providerUsage.currency` is the ISO 4217 currency of `costEstimateUsd`; absent means USD.
229
233
 
@@ -253,4 +257,4 @@ Under `reliability.completion.distinguishesTruncation`, an envelope is complete
253
257
  - On exhaustion the host MUST emit `envelope.retry-exhausted` with that `finalReason` and `cap.breached` `kind: "schema"`, and fail the node with `envelope_truncation_unrecoverable` or `envelope_invalid`.
254
258
  - Lenient-parse recovery consumes no retry. It emits `envelope.recovery-applied` once per recovery, carrying only the path and an optional byte offset.
255
259
 
256
- *Sources: RFCs 0026, 0030, 0032, 0033, 0056, 0060, 0171, 0172, 0176, 0185, 0194, 0213, 0236.*
260
+ *Sources: RFCs 0026, 0030, 0032, 0033, 0056, 0060, 0171, 0172, 0176, 0185, 0194, 0213, 0236, 0247.*
@@ -206,7 +206,7 @@
206
206
  {
207
207
  "key": "limits",
208
208
  "kind": "family",
209
- "normativeText": ["spec/v2/core/runs.md"],
209
+ "normativeText": ["spec/v2/core/runs.md", "spec/v2/core/events.md"],
210
210
  "anchor": "core",
211
211
  "section": "core/capabilities.md#limits",
212
212
  "peerDependencyId": "limits",
@@ -224,7 +224,8 @@
224
224
  "maxLoopIterations",
225
225
  "maxBudgetTokens",
226
226
  "maxBudgetCostUsd",
227
- "maxRequestBodyBytes"
227
+ "maxRequestBodyBytes",
228
+ "maxStreamAgeSec"
228
229
  ],
229
230
  "floorScenarios": [],
230
231
  "requirementIds": [],
@@ -184,6 +184,10 @@
184
184
  "type": "boolean",
185
185
  "description": "RFC 0244 §D. `true`: the host honours `toolResponses[].args` / `argsMatch` (first unconsumed match) and `fixtures.onMiss`, and reports `fixtureMissCount`."
186
186
  },
187
+ "fixtureErrors": {
188
+ "type": "boolean",
189
+ "description": "RFC 0245 §B/§C. `true`: a `toolResponses[]` entry with `isError: true` is returned to the agent as a tool error and recorded as `agent.tool-returned` with `error` and no `outcome` (plus `status: \"error\"` under tool hooks); it is not a fixture miss and is never retried live. A suite carrying `isError: true` on a host that does not advertise this MUST be refused with `400 validation_error`."
190
+ },
187
191
  "regressionVerdict": {
188
192
  "type": "boolean",
189
193
  "description": "RFC 0244 §F. `true`: in `regression` mode the host reports `regression.verdict`, `method`, `alpha` and `pairedTaskCount`, pairing tasks by `taskId`."
@@ -0,0 +1,60 @@
1
+ {
2
+ "$comment": "RFC 0247 — the limits facets, hand-decided from the v1 seed with the nine seeded shapes unchanged, plus maxStreamAgeSec (bounded close of an opted-in event stream; events.md §Bounded close).",
3
+ "properties": {
4
+ "clarificationRounds": {
5
+ "type": "integer",
6
+ "minimum": 0,
7
+ "description": "Maximum total clarification envelopes per task before the engine forces the LLM to proceed."
8
+ },
9
+ "schemaRounds": {
10
+ "type": "integer",
11
+ "minimum": 0,
12
+ "description": "Maximum total schema-validation rounds per envelope before the node fails."
13
+ },
14
+ "envelopesPerTurn": {
15
+ "type": "integer",
16
+ "minimum": 0,
17
+ "description": "Maximum total envelopes the LLM may emit in a single chat turn."
18
+ },
19
+ "maxNodeExecutions": {
20
+ "type": "integer",
21
+ "minimum": 1,
22
+ "description": "Engine-side ceiling on total node executions per run. Acts as the upper bound for `RunOptions.configurable.recursionLimit`. Optional in v1; hosts that advertise it MUST enforce it."
23
+ },
24
+ "maxRunDurationMs": {
25
+ "type": "integer",
26
+ "minimum": 1000,
27
+ "description": "RFC 0058. Engine-side wall-clock ceiling per run (milliseconds). Upper bound for `RunOptions.configurable.runTimeoutMs`. Breach emits `cap.breached { kind: 'run-duration' }` + error `run_timeout`. Optional; hosts that advertise it MUST enforce it."
28
+ },
29
+ "maxLoopIterations": {
30
+ "type": "integer",
31
+ "minimum": 1,
32
+ "description": "RFC 0058. Authoritative engine-side ceiling on agent-loop iterations. Upper bound for `RunOptions.configurable.maxLoopIterations`. Breach emits `cap.breached { kind: 'loop-iterations' }` + error `loop_limit_exceeded`. Optional; hosts that advertise it MUST enforce it."
33
+ },
34
+ "maxBudgetTokens": {
35
+ "type": "integer",
36
+ "minimum": 1,
37
+ "description": "RFC 0084. Engine-side ceiling clamping `RunOptions.configurable.budget.maxTokens` (`min(requested, ceiling)`). Optional; only meaningful with `capabilities.budget`."
38
+ },
39
+ "maxBudgetCostUsd": {
40
+ "type": "number",
41
+ "minimum": 0,
42
+ "description": "RFC 0084. Engine-side cost ceiling clamping `RunOptions.configurable.budget.maxCostUsd`. Optional; only meaningful with `capabilities.budget`."
43
+ },
44
+ "maxRequestBodyBytes": {
45
+ "type": "integer",
46
+ "minimum": 1,
47
+ "description": "RFC 0094 §H. Maximum REST request body size (bytes) the host accepts. Optional v1 field per `capabilities.md` §3 (previously documented as reserved — the closed `limits` object made advertising it a schema-validation failure). Hosts that advertise it MUST enforce it."
48
+ },
49
+ "maxStreamAgeSec": {
50
+ "type": "integer",
51
+ "minimum": 15,
52
+ "description": "RFC 0247. The longest, in seconds, this host holds a live `streamRunEvents` or `streamHostEvents` stream that the consumer opened with `resumable=true`. Only for such a stream, a host advertising this facet MAY end it before the run's terminal event (a bounded close) once it has been open 15 seconds, and MUST end it by this age. It MUST end at a frame boundary, MUST flush any pending batch first, and SHOULD first send an SSE `retry:` field (milliseconds). A host MUST NOT end an opted-in stream early unless it advertises this facet, and MUST NOT end a stream opened without `resumable=true` early whatever it advertises (events.md §Resuming with `Last-Event-ID`). A bounded close is never a terminal signal; only the terminal event is. A consumer that sent `resumable=true` MUST treat any close without the terminal event (a bounded close, a network drop, an intermediary's timeout) as non-terminal, and MUST reconnect with `resumable=true` and `Last-Event-ID` set to the last `id:` it received (no header if it received none). It SHOULD wait the `retry:` delay, or its own default of about one second, and SHOULD back off when reconnects fail or close without a frame. A consumer MUST handle such a close whether or not this facet is advertised. On `hostEvents` the consumer resumes from the last durable event's `id:`; ephemeral events missed in the gap are not redelivered (events.md §Host events)."
53
+ }
54
+ },
55
+ "required": [
56
+ "clarificationRounds",
57
+ "schemaRounds",
58
+ "envelopesPerTurn"
59
+ ]
60
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$comment": "RFC 0172 §D.1 — the one release identity the v2 artifacts derive from. `version` is the next corpus tag `v<version>` (the publish workflow's coordinated-release tag pattern `v*`; RFC 0172's `openwop/v2.<minor>.<patch>` spelling is amended to this at its flip). api/v2/*.yaml info.version, the suite's 2.x version and @openwop/spec-artifacts read it. Bumped by the release PR that cuts the tag, never by hand elsewhere.",
3
- "version": "2.46.11",
4
- "corpusTag": "v2.46.11",
5
- "updated": "2026-10-15"
3
+ "version": "2.46.13",
4
+ "corpusTag": "v2.46.13",
5
+ "updated": "2026-10-16"
6
6
  }
@@ -4,7 +4,7 @@
4
4
  "schemas/v2/**/*.json",
5
5
  "spec/v2/path-manifest.json"
6
6
  ],
7
- "release": "2.46.11",
7
+ "release": "2.46.13",
8
8
  "kinds": {
9
9
  "union": [
10
10
  "channel",
@@ -18,7 +18,7 @@
18
18
  "type"
19
19
  ]
20
20
  },
21
- "count": 8927,
21
+ "count": 8937,
22
22
  "surfaces": [
23
23
  "schemas/v2/a2a-task-state.schema.json#/contextId|type|string",
24
24
  "schemas/v2/a2a-task-state.schema.json#/interruptKind|enum-member|\"approval\"",
@@ -221,10 +221,12 @@
221
221
  "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]/argsMatch|enum-member|\"ignore\"",
222
222
  "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]/argsMatch|enum-member|\"subset\"",
223
223
  "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]/argsMatch|type|string",
224
+ "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]/isError|type|boolean",
224
225
  "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]/tool|type|string",
225
226
  "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]|closed|true",
226
227
  "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]|property|args",
227
228
  "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]|property|argsMatch",
229
+ "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]|property|isError",
228
230
  "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]|property|response",
229
231
  "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]|property|tool",
230
232
  "schemas/v2/agent-eval-suite.schema.json#/tasks/[]/fixtures/toolResponses/[]|required|tool",
@@ -981,6 +983,7 @@
981
983
  "schemas/v2/capabilities.schema.json#/agents/deployment|type|object",
982
984
  "schemas/v2/capabilities.schema.json#/agents/dispatchMapping|type|boolean",
983
985
  "schemas/v2/capabilities.schema.json#/agents/dispatch|type|boolean",
986
+ "schemas/v2/capabilities.schema.json#/agents/evalSuite/fixtureErrors|type|boolean",
984
987
  "schemas/v2/capabilities.schema.json#/agents/evalSuite/fixtureMatching|type|boolean",
985
988
  "schemas/v2/capabilities.schema.json#/agents/evalSuite/maxCostUsdPerSuite|type|number",
986
989
  "schemas/v2/capabilities.schema.json#/agents/evalSuite/maxTasksPerSuite|type|integer",
@@ -999,6 +1002,7 @@
999
1002
  "schemas/v2/capabilities.schema.json#/agents/evalSuite/trials|required|maxTrials",
1000
1003
  "schemas/v2/capabilities.schema.json#/agents/evalSuite/trials|type|object",
1001
1004
  "schemas/v2/capabilities.schema.json#/agents/evalSuite|closed|true",
1005
+ "schemas/v2/capabilities.schema.json#/agents/evalSuite|property|fixtureErrors",
1002
1006
  "schemas/v2/capabilities.schema.json#/agents/evalSuite|property|fixtureMatching",
1003
1007
  "schemas/v2/capabilities.schema.json#/agents/evalSuite|property|maxCostUsdPerSuite",
1004
1008
  "schemas/v2/capabilities.schema.json#/agents/evalSuite|property|maxTasksPerSuite",
@@ -2321,6 +2325,7 @@
2321
2325
  "schemas/v2/capabilities.schema.json#/limits/maxNodeExecutions|type|integer",
2322
2326
  "schemas/v2/capabilities.schema.json#/limits/maxRequestBodyBytes|type|integer",
2323
2327
  "schemas/v2/capabilities.schema.json#/limits/maxRunDurationMs|type|integer",
2328
+ "schemas/v2/capabilities.schema.json#/limits/maxStreamAgeSec|type|integer",
2324
2329
  "schemas/v2/capabilities.schema.json#/limits/schemaRounds|type|integer",
2325
2330
  "schemas/v2/capabilities.schema.json#/limits/since|type|string",
2326
2331
  "schemas/v2/capabilities.schema.json#/limits/status|enum-member|\"deprecated\"",
@@ -2341,6 +2346,7 @@
2341
2346
  "schemas/v2/capabilities.schema.json#/limits|property|maxNodeExecutions",
2342
2347
  "schemas/v2/capabilities.schema.json#/limits|property|maxRequestBodyBytes",
2343
2348
  "schemas/v2/capabilities.schema.json#/limits|property|maxRunDurationMs",
2349
+ "schemas/v2/capabilities.schema.json#/limits|property|maxStreamAgeSec",
2344
2350
  "schemas/v2/capabilities.schema.json#/limits|property|schemaRounds",
2345
2351
  "schemas/v2/capabilities.schema.json#/limits|property|since",
2346
2352
  "schemas/v2/capabilities.schema.json#/limits|property|status",
@@ -5695,6 +5701,7 @@
5695
5701
  "schemas/v2/eval-summary.schema.json#/evaluatedModelClass|enum-member|\"research\"",
5696
5702
  "schemas/v2/eval-summary.schema.json#/evaluatedModelClass|enum-member|\"writing\"",
5697
5703
  "schemas/v2/eval-summary.schema.json#/evaluatedModelClass|type|string",
5704
+ "schemas/v2/eval-summary.schema.json#/gatedAggregateScore|type|number",
5698
5705
  "schemas/v2/eval-summary.schema.json#/passedCount|type|integer",
5699
5706
  "schemas/v2/eval-summary.schema.json#/passed|type|boolean",
5700
5707
  "schemas/v2/eval-summary.schema.json#/pinnedNodeIds|type|array",
@@ -5734,6 +5741,7 @@
5734
5741
  "schemas/v2/eval-summary.schema.json#/tasks/[]/efficiency|property|toolCallCount",
5735
5742
  "schemas/v2/eval-summary.schema.json#/tasks/[]/efficiency|type|object",
5736
5743
  "schemas/v2/eval-summary.schema.json#/tasks/[]/fixtureMissCount|type|integer",
5744
+ "schemas/v2/eval-summary.schema.json#/tasks/[]/gatedScore|type|number",
5737
5745
  "schemas/v2/eval-summary.schema.json#/tasks/[]/latencyMs|type|integer",
5738
5746
  "schemas/v2/eval-summary.schema.json#/tasks/[]/passed|type|boolean",
5739
5747
  "schemas/v2/eval-summary.schema.json#/tasks/[]/safetyFindings/[]/kind|type|string",
@@ -5797,6 +5805,7 @@
5797
5805
  "schemas/v2/eval-summary.schema.json#/tasks/[]|property|costUsd",
5798
5806
  "schemas/v2/eval-summary.schema.json#/tasks/[]|property|efficiency",
5799
5807
  "schemas/v2/eval-summary.schema.json#/tasks/[]|property|fixtureMissCount",
5808
+ "schemas/v2/eval-summary.schema.json#/tasks/[]|property|gatedScore",
5800
5809
  "schemas/v2/eval-summary.schema.json#/tasks/[]|property|latencyMs",
5801
5810
  "schemas/v2/eval-summary.schema.json#/tasks/[]|property|passed",
5802
5811
  "schemas/v2/eval-summary.schema.json#/tasks/[]|property|safetyFindings",
@@ -5827,6 +5836,7 @@
5827
5836
  "schemas/v2/eval-summary.schema.json#|closed|true",
5828
5837
  "schemas/v2/eval-summary.schema.json#|property|aggregateScore",
5829
5838
  "schemas/v2/eval-summary.schema.json#|property|evaluatedModelClass",
5839
+ "schemas/v2/eval-summary.schema.json#|property|gatedAggregateScore",
5830
5840
  "schemas/v2/eval-summary.schema.json#|property|passed",
5831
5841
  "schemas/v2/eval-summary.schema.json#|property|passedCount",
5832
5842
  "schemas/v2/eval-summary.schema.json#|property|pinnedNodeIds",