@openwop/spec-artifacts 2.46.11 → 2.46.12
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 +16 -15
- package/api/seams-v2.yaml +1 -1
- package/api/v2/asyncapi.yaml +13 -1
- package/api/v2/openapi.yaml +19 -1
- package/package.json +1 -1
- package/schemas/v2/agent-eval-suite.schema.json +5 -0
- package/schemas/v2/capabilities.schema.json +10 -1
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v1/gaps.json +86 -1
- package/spec/v2/core/events.md +10 -6
- package/spec/v2/declaration.json +3 -2
- package/spec/v2/facets/agents.schema.json +4 -0
- package/spec/v2/facets/limits.schema.json +60 -0
- package/spec/v2/release.json +3 -3
- package/spec/v2/surface-baseline.json +8 -2
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.
|
|
5
|
-
"corpusTag": "v2.46.
|
|
4
|
+
"version": "2.46.12",
|
|
5
|
+
"corpusTag": "v2.46.12",
|
|
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": "
|
|
13
|
-
"api/v2/asyncapi.yaml": "
|
|
14
|
-
"api/v2/openapi.yaml": "
|
|
12
|
+
"api/seams-v2.yaml": "e70dca4462c179fe7bfcc25244e481aa04c3da2a97e74d99e70c562191b9ec0b",
|
|
13
|
+
"api/v2/asyncapi.yaml": "964c60cadd09209e704b52fce5f68c28f7ea08e8bd9c04318c931e1969d79d64",
|
|
14
|
+
"api/v2/openapi.yaml": "0aa511e8f9c6b49e224b111a2afe81ef48fc92b1fc77dd6287b04f2e6597ea33",
|
|
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": "
|
|
106
|
+
"schemas/v2/agent-eval-suite.schema.json": "8b6dac5c6485c1fc4b7228efc0a87fa5c64fce89ddd228d4f92786b1b63e37b3",
|
|
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": "
|
|
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",
|
|
@@ -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": "
|
|
211
|
+
"spec/v1/core-standard-manifest.json": "920cf7ccccfb66f6438fc72a477166d3757c5c6ca6e26d7d247f0a3b801334a0",
|
|
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": "
|
|
218
|
+
"spec/v1/gaps.json": "07c606b9abbcefbb5fcc18a230765db695ceba9d98f3e7da9dd92b8caebbfd7f",
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
317
|
+
"spec/v2/release.json": "d20dc7e5d37f395199e68fe471244cff4f744790a010a4b0eb3c6c28ba4c26e4",
|
|
317
318
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624",
|
|
318
|
-
"spec/v2/surface-baseline.json": "
|
|
319
|
+
"spec/v2/surface-baseline.json": "54bd7632dc314ffbb180b99a35f1367ab9eca60471aae5b98c6a020923c47203"
|
|
319
320
|
},
|
|
320
|
-
"corpusCommit": "
|
|
321
|
+
"corpusCommit": "ca6b4ad06520858154f4e3dd9ba146496f038e43"
|
|
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.
|
|
4
|
+
version: 2.46.12
|
|
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.
|
package/api/v2/asyncapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
asyncapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP v2 event streams
|
|
4
|
-
version: 2.46.
|
|
4
|
+
version: 2.46.12
|
|
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:
|
package/api/v2/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP v2 API
|
|
4
|
-
version: 2.46.
|
|
4
|
+
version: 2.46.12
|
|
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.
|
|
3
|
+
"version": "2.46.12",
|
|
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": {
|
|
@@ -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-
|
|
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`."
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"provenance": {
|
|
5
5
|
"suite": {
|
|
6
6
|
"package": "@openwop/openwop-conformance",
|
|
7
|
-
"version": "2.46.
|
|
7
|
+
"version": "2.46.12"
|
|
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": "
|
|
429
|
+
"digest": "e669961675686b68a41da6fc6e6a848932a1b273adf29488cc138355f7af902a"
|
|
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-
|
|
4
|
+
"updated": "2026-10-16",
|
|
5
5
|
"witnessClasses": [
|
|
6
6
|
"witnessable-unaided",
|
|
7
7
|
"witnessable-gated",
|
|
@@ -14717,6 +14717,91 @@
|
|
|
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.0247.1",
|
|
14773
|
+
"rfc": "0247",
|
|
14774
|
+
"local": "G1",
|
|
14775
|
+
"section": "§B, §Falsifiability",
|
|
14776
|
+
"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.",
|
|
14777
|
+
"witness": "unclassified",
|
|
14778
|
+
"requirementId": null,
|
|
14779
|
+
"disposition": "transferred",
|
|
14780
|
+
"target": "TODO.md",
|
|
14781
|
+
"sources": [
|
|
14782
|
+
{
|
|
14783
|
+
"file": "RFCS/registers/0247-bounded-stream-lifetime.gaps.md",
|
|
14784
|
+
"token": "G1"
|
|
14785
|
+
}
|
|
14786
|
+
]
|
|
14787
|
+
},
|
|
14788
|
+
{
|
|
14789
|
+
"id": "openwop.gap.0247.2",
|
|
14790
|
+
"rfc": "0247",
|
|
14791
|
+
"local": "G2",
|
|
14792
|
+
"section": "UQ 2",
|
|
14793
|
+
"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.",
|
|
14794
|
+
"witness": "unclassified",
|
|
14795
|
+
"requirementId": null,
|
|
14796
|
+
"disposition": "transferred",
|
|
14797
|
+
"target": "TODO.md",
|
|
14798
|
+
"sources": [
|
|
14799
|
+
{
|
|
14800
|
+
"file": "RFCS/registers/0247-bounded-stream-lifetime.gaps.md",
|
|
14801
|
+
"token": "G2"
|
|
14802
|
+
}
|
|
14803
|
+
]
|
|
14804
|
+
},
|
|
14720
14805
|
{
|
|
14721
14806
|
"id": "openwop.gap.spec.a2a-integration.g1",
|
|
14722
14807
|
"rfc": "0152",
|
package/spec/v2/core/events.md
CHANGED
|
@@ -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
|
|
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
|
|
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:
|
|
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.
|
|
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.*
|
package/spec/v2/declaration.json
CHANGED
|
@@ -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
|
+
}
|
package/spec/v2/release.json
CHANGED
|
@@ -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.
|
|
4
|
-
"corpusTag": "v2.46.
|
|
5
|
-
"updated": "2026-10-
|
|
3
|
+
"version": "2.46.12",
|
|
4
|
+
"corpusTag": "v2.46.12",
|
|
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.
|
|
7
|
+
"release": "2.46.12",
|
|
8
8
|
"kinds": {
|
|
9
9
|
"union": [
|
|
10
10
|
"channel",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"type"
|
|
19
19
|
]
|
|
20
20
|
},
|
|
21
|
-
"count":
|
|
21
|
+
"count": 8933,
|
|
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",
|