@openwop/spec-artifacts 2.44.9 → 2.45.1
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 +12 -12
- package/api/seams-v2.yaml +1 -1
- package/api/v2/asyncapi.yaml +1 -1
- package/api/v2/openapi.yaml +1 -1
- package/package.json +1 -1
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v1/gaps.json +2 -2
- package/spec/v2/core/headers.md +4 -0
- package/spec/v2/path-manifest.json +407 -56
- package/spec/v2/release.json +2 -2
- package/spec/v2/surface-baseline.json +1 -1
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.
|
|
5
|
-
"corpusTag": "v2.
|
|
4
|
+
"version": "2.45.1",
|
|
5
|
+
"corpusTag": "v2.45.1",
|
|
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": "69464bc0e1e71ef3b543a73d4fa4f67202343d2603c80af8033f6c3619ef1b30",
|
|
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": "c2d7c5d68c7358229149d2552da95e32798b9c21b21a56e19d561f29eab3633e",
|
|
13
|
+
"api/v2/asyncapi.yaml": "e9c0e3cc27f8d72a6f7704de24cb81f39175b8e6bc3ae5e4ad87d46fb0be6b0c",
|
|
14
|
+
"api/v2/openapi.yaml": "622817c49d5977b51bb83685e6cb0fe27a5e087b63c3a31621959670d6829a2d",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "75d5049dea8bd873ff0e7546f1c60c8d36c219bec7084264360be54a8be30ae1",
|
|
@@ -204,13 +204,13 @@
|
|
|
204
204
|
"schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
|
|
205
205
|
"spec/v1/alias-detectors.json": "0b2f28808ffe0b9d98a187775038c3406bb70919747a788a6e4f866e293ae6d3",
|
|
206
206
|
"spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
|
|
207
|
-
"spec/v1/core-standard-manifest.json": "
|
|
207
|
+
"spec/v1/core-standard-manifest.json": "4aa1dbeec20dc51fb727ad85e2012af1235bac608e41836db256e7816916f898",
|
|
208
208
|
"spec/v1/deprecations.json": "a3293072ea951857395d05f0437264e88965f1e9019ff61c55bacfa9c1aaa17c",
|
|
209
209
|
"spec/v1/deprecations.schema.json": "3e393c405d2a41b467d8c5e3c468549078df1ce6a6d2588fc488097b95d9b55b",
|
|
210
210
|
"spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
|
|
211
211
|
"spec/v1/event-codemap.schema.json": "d05933b2e88103aff51a2f774df97b9bda065e0fc88dbd9b114cc47a32189174",
|
|
212
212
|
"spec/v1/extensions.json": "79a60754aa16cbdbdb604f8e5c00038af535a1690a4d07bd5ff7c38f0256a7bc",
|
|
213
|
-
"spec/v1/gaps.json": "
|
|
213
|
+
"spec/v1/gaps.json": "5be0fd0a8055f5cac76346fc2a98c44553f73d3f28a39ce12dcf1979d55d1409",
|
|
214
214
|
"spec/v1/gaps.schema.json": "8fd83259f556553c9df0f53e7a82ca8c2a4771d471197f69b4e2ae0ceeacfd66",
|
|
215
215
|
"spec/v1/migrations.json": "4c50760be70cb644d02427bcaf5749606700edf4513f423903cf3b1d12f5c300",
|
|
216
216
|
"spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
"spec/v2/core/events.md": "c1a20e3aa6736119ea07aa2cf66faa808a1874d2cde4933033b65506d1742883",
|
|
227
227
|
"spec/v2/core/execution.md": "8a0c9db1bbfb97c008ab9328b7333c1cc3318196e78bfbefb49e781bdf4f9d44",
|
|
228
228
|
"spec/v2/core/form-content-packs.md": "02931227899676fd4581a27017be2a6c4953904717be9b81c29d12f87ab3917d",
|
|
229
|
-
"spec/v2/core/headers.md": "
|
|
229
|
+
"spec/v2/core/headers.md": "21d6c8220c3ac75b10e31c4cf6179abb539e2558af5006e40228d8c383ed5c92",
|
|
230
230
|
"spec/v2/core/host-services.md": "18389b55286875922c26e13fbcd6c787fca2568f68b7e6f65176f1938404a218",
|
|
231
231
|
"spec/v2/core/i18n.md": "882904b7d59f992ab1e5f7346167161a54cf665b8fee47e64a3862cf9133a580",
|
|
232
232
|
"spec/v2/core/idempotency.md": "adbd317a6ebb57c2759c076297b31f67def9e391576bccd0bbea787b13e85872",
|
|
@@ -300,12 +300,12 @@
|
|
|
300
300
|
"spec/v2/interop-map.schema.json": "0017c882df34ee215e2e0729de051490e09d43aac3d2c949285698ed51832f12",
|
|
301
301
|
"spec/v2/migrations.json": "651954938a1e154c0b6f1e3dd6e105889d30de3bb65789f21de7f77a12869e9e",
|
|
302
302
|
"spec/v2/migrations.schema.json": "b91ade6320ad1b1185c9495b9424f3aa63438ed8e412c45171c227d82c0afd86",
|
|
303
|
-
"spec/v2/path-manifest.json": "
|
|
303
|
+
"spec/v2/path-manifest.json": "27c2307b84376b2f22bea4e2213fc7e33ef3bf8fd1d18039f7955edb00dc9c9a",
|
|
304
304
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
305
305
|
"spec/v2/profiles.json": "180beb9ef2d161766fa23b2987e7e829851e3d316273147cf6a4a3f324befd6b",
|
|
306
|
-
"spec/v2/release.json": "
|
|
306
|
+
"spec/v2/release.json": "e6a344ecc48e172a585fafeb83631c26629373e847b144a86cc01628693ea3ad",
|
|
307
307
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624",
|
|
308
|
-
"spec/v2/surface-baseline.json": "
|
|
308
|
+
"spec/v2/surface-baseline.json": "b70b9f22313a99ea4853f8ffee1c4f6659b89e8cbba7317c52771fe9dfd40330"
|
|
309
309
|
},
|
|
310
|
-
"corpusCommit": "
|
|
310
|
+
"corpusCommit": "11a23de713fd4d56d9514a753d25229b029fb461"
|
|
311
311
|
}
|
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.
|
|
4
|
+
version: 2.45.1
|
|
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.
|
|
4
|
+
version: 2.45.1
|
|
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`.
|
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.
|
|
4
|
+
version: 2.45.1
|
|
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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/spec-artifacts",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.45.1",
|
|
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": {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"provenance": {
|
|
5
5
|
"suite": {
|
|
6
6
|
"package": "@openwop/openwop-conformance",
|
|
7
|
-
"version": "2.
|
|
7
|
+
"version": "2.45.1"
|
|
8
8
|
},
|
|
9
9
|
"note": "Derived from the corpus at generation time. Regenerate with --write; verify with --check."
|
|
10
10
|
},
|
|
@@ -421,5 +421,5 @@
|
|
|
421
421
|
"$id": "https://openwop.dev/spec/v1/workspace-file.schema.json"
|
|
422
422
|
}
|
|
423
423
|
],
|
|
424
|
-
"digest": "
|
|
424
|
+
"digest": "06d32e48f479d7327fcd76bfa1bd4c05ff86c254f0c1e9a46095839f6ccd3d34"
|
|
425
425
|
}
|
package/spec/v1/gaps.json
CHANGED
|
@@ -13127,8 +13127,8 @@
|
|
|
13127
13127
|
"surface": "A browser preflights the new request header. A host whose `Access-Control-Allow-Headers` is an explicit list, and which serves browsers cross-origin, fails every request from a client that sends it. Found at the SDK 2.5.0 release: openwop-app's list omitted it (as it once omitted `OpenWOP-Version`), and so did MyndHyve's public pack reads (fixed in myndhyve#549). v2 says nothing about CORS.",
|
|
13128
13128
|
"witness": "unclassified",
|
|
13129
13129
|
"requirementId": null,
|
|
13130
|
-
"disposition": "
|
|
13131
|
-
"target":
|
|
13130
|
+
"disposition": "closed",
|
|
13131
|
+
"target": null,
|
|
13132
13132
|
"sources": [
|
|
13133
13133
|
{
|
|
13134
13134
|
"file": "RFCS/registers/0219-client-version-header.gaps.md",
|
package/spec/v2/core/headers.md
CHANGED
|
@@ -21,6 +21,10 @@ Standard headers keep their standard names: `Idempotency-Key`, `ETag`, `If-None-
|
|
|
21
21
|
| `OpenWOP-Force-Engine-Version` | 1 | Test keys only. The server emits this run's events as if it ran the given engine version, which must be within `Capabilities.testing.forceEngineVersionRange`. Servers MUST reject it on production API keys with `403 force_engine_version_forbidden`. |
|
|
22
22
|
| `OpenWOP-Version` | 55 | Selects one of the host's listed major.minor versions. Absent, `/.well-known/openwop` uses `preferredVersion` and every other unversioned path is v2; an unlisted value is 406 protocol_version_unsupported. |
|
|
23
23
|
|
|
24
|
+
## Cross-origin preflight
|
|
25
|
+
|
|
26
|
+
A host that answers a CORS preflight for an operation by granting the requesting origin (`Access-Control-Allow-Origin`) MUST admit the operation's method in `Access-Control-Allow-Methods` and, in `Access-Control-Allow-Headers`, every request header `api/v2/openapi.yaml` declares for it, `Authorization` when it is authenticated and `Content-Type` when it takes a body, by listing them or by reflecting `Access-Control-Request-Headers`. A `*` does not admit `Authorization`. Which origins a host grants, and whether with credentials, is host policy. Admitting this table's union on every operation conforms.
|
|
27
|
+
|
|
24
28
|
## Response headers
|
|
25
29
|
|
|
26
30
|
| Header | Operations | Meaning |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$comment": "GENERATED by scripts/derive-v2-api.py (RFC 0172 §C.2 / RFC 0168 §C.2): the canonical v2 operations and channels; no seam or test-mode operation; every path unversioned. check-path-parity.mjs compares this to both API documents.",
|
|
2
|
+
"$comment": "GENERATED by scripts/derive-v2-api.py (RFC 0172 §C.2 / RFC 0168 §C.2): the canonical v2 operations and channels; no seam or test-mode operation; every path unversioned. check-path-parity.mjs compares this to both API documents. Per operation, requestHeaders / authenticated / requestBody are the facts headers.md §Cross-origin preflight derives the admitted set from.",
|
|
3
3
|
"generatedFrom": [
|
|
4
4
|
"api/v2/openapi.yaml",
|
|
5
5
|
"api/v2/asyncapi.yaml"
|
|
@@ -9,277 +9,628 @@
|
|
|
9
9
|
{
|
|
10
10
|
"method": "GET",
|
|
11
11
|
"path": "/.well-known/openwop",
|
|
12
|
-
"operationId": "getCapabilities"
|
|
12
|
+
"operationId": "getCapabilities",
|
|
13
|
+
"requestHeaders": [
|
|
14
|
+
"If-None-Match",
|
|
15
|
+
"OpenWOP-Client-Version",
|
|
16
|
+
"OpenWOP-Version"
|
|
17
|
+
],
|
|
18
|
+
"authenticated": false,
|
|
19
|
+
"requestBody": false
|
|
13
20
|
},
|
|
14
21
|
{
|
|
15
22
|
"method": "GET",
|
|
16
23
|
"path": "/agents",
|
|
17
|
-
"operationId": "listAgents"
|
|
24
|
+
"operationId": "listAgents",
|
|
25
|
+
"requestHeaders": [
|
|
26
|
+
"OpenWOP-Client-Version",
|
|
27
|
+
"OpenWOP-Version"
|
|
28
|
+
],
|
|
29
|
+
"authenticated": true,
|
|
30
|
+
"requestBody": false
|
|
18
31
|
},
|
|
19
32
|
{
|
|
20
33
|
"method": "GET",
|
|
21
34
|
"path": "/agents/org-chart",
|
|
22
|
-
"operationId": "getAgentOrgChart"
|
|
35
|
+
"operationId": "getAgentOrgChart",
|
|
36
|
+
"requestHeaders": [
|
|
37
|
+
"OpenWOP-Client-Version",
|
|
38
|
+
"OpenWOP-Version"
|
|
39
|
+
],
|
|
40
|
+
"authenticated": true,
|
|
41
|
+
"requestBody": false
|
|
23
42
|
},
|
|
24
43
|
{
|
|
25
44
|
"method": "GET",
|
|
26
45
|
"path": "/agents/org-chart/{departmentId}",
|
|
27
|
-
"operationId": "getAgentOrgChartDepartment"
|
|
46
|
+
"operationId": "getAgentOrgChartDepartment",
|
|
47
|
+
"requestHeaders": [
|
|
48
|
+
"OpenWOP-Client-Version",
|
|
49
|
+
"OpenWOP-Version"
|
|
50
|
+
],
|
|
51
|
+
"authenticated": true,
|
|
52
|
+
"requestBody": false
|
|
28
53
|
},
|
|
29
54
|
{
|
|
30
55
|
"method": "GET",
|
|
31
56
|
"path": "/agents/roster",
|
|
32
|
-
"operationId": "listAgentRoster"
|
|
57
|
+
"operationId": "listAgentRoster",
|
|
58
|
+
"requestHeaders": [
|
|
59
|
+
"OpenWOP-Client-Version",
|
|
60
|
+
"OpenWOP-Version"
|
|
61
|
+
],
|
|
62
|
+
"authenticated": true,
|
|
63
|
+
"requestBody": false
|
|
33
64
|
},
|
|
34
65
|
{
|
|
35
66
|
"method": "GET",
|
|
36
67
|
"path": "/agents/roster/{rosterId}",
|
|
37
|
-
"operationId": "getAgentRosterEntry"
|
|
68
|
+
"operationId": "getAgentRosterEntry",
|
|
69
|
+
"requestHeaders": [
|
|
70
|
+
"OpenWOP-Client-Version",
|
|
71
|
+
"OpenWOP-Version"
|
|
72
|
+
],
|
|
73
|
+
"authenticated": true,
|
|
74
|
+
"requestBody": false
|
|
38
75
|
},
|
|
39
76
|
{
|
|
40
77
|
"method": "GET",
|
|
41
78
|
"path": "/agents/{agentId}",
|
|
42
|
-
"operationId": "getAgent"
|
|
79
|
+
"operationId": "getAgent",
|
|
80
|
+
"requestHeaders": [
|
|
81
|
+
"OpenWOP-Client-Version",
|
|
82
|
+
"OpenWOP-Version"
|
|
83
|
+
],
|
|
84
|
+
"authenticated": true,
|
|
85
|
+
"requestBody": false
|
|
43
86
|
},
|
|
44
87
|
{
|
|
45
88
|
"method": "GET",
|
|
46
89
|
"path": "/agents/{agentId}/deployments",
|
|
47
|
-
"operationId": "listAgentDeployments"
|
|
90
|
+
"operationId": "listAgentDeployments",
|
|
91
|
+
"requestHeaders": [
|
|
92
|
+
"OpenWOP-Client-Version",
|
|
93
|
+
"OpenWOP-Version"
|
|
94
|
+
],
|
|
95
|
+
"authenticated": true,
|
|
96
|
+
"requestBody": false
|
|
48
97
|
},
|
|
49
98
|
{
|
|
50
99
|
"method": "POST",
|
|
51
100
|
"path": "/agents/{agentId}/deployments",
|
|
52
|
-
"operationId": "transitionAgentDeployment"
|
|
101
|
+
"operationId": "transitionAgentDeployment",
|
|
102
|
+
"requestHeaders": [
|
|
103
|
+
"Idempotency-Key",
|
|
104
|
+
"OpenWOP-Client-Version",
|
|
105
|
+
"OpenWOP-Version"
|
|
106
|
+
],
|
|
107
|
+
"authenticated": true,
|
|
108
|
+
"requestBody": true
|
|
53
109
|
},
|
|
54
110
|
{
|
|
55
111
|
"method": "GET",
|
|
56
112
|
"path": "/audit/verify",
|
|
57
|
-
"operationId": "verifyAuditLog"
|
|
113
|
+
"operationId": "verifyAuditLog",
|
|
114
|
+
"requestHeaders": [
|
|
115
|
+
"OpenWOP-Client-Version",
|
|
116
|
+
"OpenWOP-Version"
|
|
117
|
+
],
|
|
118
|
+
"authenticated": true,
|
|
119
|
+
"requestBody": false
|
|
58
120
|
},
|
|
59
121
|
{
|
|
60
122
|
"method": "GET",
|
|
61
123
|
"path": "/content/pages",
|
|
62
|
-
"operationId": "listContentPages"
|
|
124
|
+
"operationId": "listContentPages",
|
|
125
|
+
"requestHeaders": [
|
|
126
|
+
"OpenWOP-Client-Version",
|
|
127
|
+
"OpenWOP-Version"
|
|
128
|
+
],
|
|
129
|
+
"authenticated": true,
|
|
130
|
+
"requestBody": false
|
|
63
131
|
},
|
|
64
132
|
{
|
|
65
133
|
"method": "POST",
|
|
66
134
|
"path": "/content/pages",
|
|
67
|
-
"operationId": "createContentPage"
|
|
135
|
+
"operationId": "createContentPage",
|
|
136
|
+
"requestHeaders": [
|
|
137
|
+
"OpenWOP-Client-Version",
|
|
138
|
+
"OpenWOP-Version"
|
|
139
|
+
],
|
|
140
|
+
"authenticated": true,
|
|
141
|
+
"requestBody": true
|
|
68
142
|
},
|
|
69
143
|
{
|
|
70
144
|
"method": "PUT",
|
|
71
145
|
"path": "/content/pages/{pageId}/sections/{sectionId}",
|
|
72
|
-
"operationId": "putContentSection"
|
|
146
|
+
"operationId": "putContentSection",
|
|
147
|
+
"requestHeaders": [
|
|
148
|
+
"OpenWOP-Client-Version",
|
|
149
|
+
"OpenWOP-Version"
|
|
150
|
+
],
|
|
151
|
+
"authenticated": true,
|
|
152
|
+
"requestBody": true
|
|
73
153
|
},
|
|
74
154
|
{
|
|
75
155
|
"method": "DELETE",
|
|
76
156
|
"path": "/content/pages/{slug}",
|
|
77
|
-
"operationId": "deleteContentPage"
|
|
157
|
+
"operationId": "deleteContentPage",
|
|
158
|
+
"requestHeaders": [
|
|
159
|
+
"OpenWOP-Client-Version",
|
|
160
|
+
"OpenWOP-Version"
|
|
161
|
+
],
|
|
162
|
+
"authenticated": true,
|
|
163
|
+
"requestBody": false
|
|
78
164
|
},
|
|
79
165
|
{
|
|
80
166
|
"method": "GET",
|
|
81
167
|
"path": "/content/pages/{slug}",
|
|
82
|
-
"operationId": "getContentPage"
|
|
168
|
+
"operationId": "getContentPage",
|
|
169
|
+
"requestHeaders": [
|
|
170
|
+
"Accept-Language",
|
|
171
|
+
"OpenWOP-Client-Version",
|
|
172
|
+
"OpenWOP-Version"
|
|
173
|
+
],
|
|
174
|
+
"authenticated": false,
|
|
175
|
+
"requestBody": false
|
|
83
176
|
},
|
|
84
177
|
{
|
|
85
178
|
"method": "GET",
|
|
86
179
|
"path": "/content/settings",
|
|
87
|
-
"operationId": "getContentSettings"
|
|
180
|
+
"operationId": "getContentSettings",
|
|
181
|
+
"requestHeaders": [
|
|
182
|
+
"OpenWOP-Client-Version",
|
|
183
|
+
"OpenWOP-Version"
|
|
184
|
+
],
|
|
185
|
+
"authenticated": true,
|
|
186
|
+
"requestBody": false
|
|
88
187
|
},
|
|
89
188
|
{
|
|
90
189
|
"method": "PUT",
|
|
91
190
|
"path": "/content/settings",
|
|
92
|
-
"operationId": "putContentSettings"
|
|
191
|
+
"operationId": "putContentSettings",
|
|
192
|
+
"requestHeaders": [
|
|
193
|
+
"OpenWOP-Client-Version",
|
|
194
|
+
"OpenWOP-Version"
|
|
195
|
+
],
|
|
196
|
+
"authenticated": true,
|
|
197
|
+
"requestBody": true
|
|
93
198
|
},
|
|
94
199
|
{
|
|
95
200
|
"method": "GET",
|
|
96
201
|
"path": "/host/effect-seams",
|
|
97
|
-
"operationId": "getEffectSeamManifest"
|
|
202
|
+
"operationId": "getEffectSeamManifest",
|
|
203
|
+
"requestHeaders": [
|
|
204
|
+
"OpenWOP-Client-Version",
|
|
205
|
+
"OpenWOP-Version"
|
|
206
|
+
],
|
|
207
|
+
"authenticated": true,
|
|
208
|
+
"requestBody": false
|
|
98
209
|
},
|
|
99
210
|
{
|
|
100
211
|
"method": "GET",
|
|
101
212
|
"path": "/host/events",
|
|
102
|
-
"operationId": "streamHostEvents"
|
|
213
|
+
"operationId": "streamHostEvents",
|
|
214
|
+
"requestHeaders": [
|
|
215
|
+
"OpenWOP-Client-Version",
|
|
216
|
+
"OpenWOP-Version"
|
|
217
|
+
],
|
|
218
|
+
"authenticated": true,
|
|
219
|
+
"requestBody": false
|
|
103
220
|
},
|
|
104
221
|
{
|
|
105
222
|
"method": "GET",
|
|
106
223
|
"path": "/interrupts/{token}",
|
|
107
|
-
"operationId": "inspectInterruptByToken"
|
|
224
|
+
"operationId": "inspectInterruptByToken",
|
|
225
|
+
"requestHeaders": [
|
|
226
|
+
"OpenWOP-Client-Version",
|
|
227
|
+
"OpenWOP-Version"
|
|
228
|
+
],
|
|
229
|
+
"authenticated": false,
|
|
230
|
+
"requestBody": false
|
|
108
231
|
},
|
|
109
232
|
{
|
|
110
233
|
"method": "POST",
|
|
111
234
|
"path": "/interrupts/{token}",
|
|
112
|
-
"operationId": "resolveInterruptByToken"
|
|
235
|
+
"operationId": "resolveInterruptByToken",
|
|
236
|
+
"requestHeaders": [
|
|
237
|
+
"Idempotency-Key",
|
|
238
|
+
"OpenWOP-Client-Version",
|
|
239
|
+
"OpenWOP-Version"
|
|
240
|
+
],
|
|
241
|
+
"authenticated": false,
|
|
242
|
+
"requestBody": true
|
|
113
243
|
},
|
|
114
244
|
{
|
|
115
245
|
"method": "GET",
|
|
116
246
|
"path": "/openapi.json",
|
|
117
|
-
"operationId": "getOpenApiSpec"
|
|
247
|
+
"operationId": "getOpenApiSpec",
|
|
248
|
+
"requestHeaders": [
|
|
249
|
+
"OpenWOP-Client-Version",
|
|
250
|
+
"OpenWOP-Version"
|
|
251
|
+
],
|
|
252
|
+
"authenticated": false,
|
|
253
|
+
"requestBody": false
|
|
118
254
|
},
|
|
119
255
|
{
|
|
120
256
|
"method": "GET",
|
|
121
257
|
"path": "/prompts",
|
|
122
|
-
"operationId": "listPromptTemplates"
|
|
258
|
+
"operationId": "listPromptTemplates",
|
|
259
|
+
"requestHeaders": [
|
|
260
|
+
"OpenWOP-Client-Version",
|
|
261
|
+
"OpenWOP-Version"
|
|
262
|
+
],
|
|
263
|
+
"authenticated": true,
|
|
264
|
+
"requestBody": false
|
|
123
265
|
},
|
|
124
266
|
{
|
|
125
267
|
"method": "POST",
|
|
126
268
|
"path": "/prompts",
|
|
127
|
-
"operationId": "createPromptTemplate"
|
|
269
|
+
"operationId": "createPromptTemplate",
|
|
270
|
+
"requestHeaders": [
|
|
271
|
+
"Idempotency-Key",
|
|
272
|
+
"OpenWOP-Client-Version",
|
|
273
|
+
"OpenWOP-Version"
|
|
274
|
+
],
|
|
275
|
+
"authenticated": true,
|
|
276
|
+
"requestBody": true
|
|
128
277
|
},
|
|
129
278
|
{
|
|
130
279
|
"method": "DELETE",
|
|
131
280
|
"path": "/prompts/{templateId}",
|
|
132
|
-
"operationId": "deletePromptTemplate"
|
|
281
|
+
"operationId": "deletePromptTemplate",
|
|
282
|
+
"requestHeaders": [
|
|
283
|
+
"OpenWOP-Client-Version",
|
|
284
|
+
"OpenWOP-Version"
|
|
285
|
+
],
|
|
286
|
+
"authenticated": true,
|
|
287
|
+
"requestBody": false
|
|
133
288
|
},
|
|
134
289
|
{
|
|
135
290
|
"method": "GET",
|
|
136
291
|
"path": "/prompts/{templateId}",
|
|
137
|
-
"operationId": "getPromptTemplate"
|
|
292
|
+
"operationId": "getPromptTemplate",
|
|
293
|
+
"requestHeaders": [
|
|
294
|
+
"OpenWOP-Client-Version",
|
|
295
|
+
"OpenWOP-Version"
|
|
296
|
+
],
|
|
297
|
+
"authenticated": true,
|
|
298
|
+
"requestBody": false
|
|
138
299
|
},
|
|
139
300
|
{
|
|
140
301
|
"method": "PUT",
|
|
141
302
|
"path": "/prompts/{templateId}",
|
|
142
|
-
"operationId": "updatePromptTemplate"
|
|
303
|
+
"operationId": "updatePromptTemplate",
|
|
304
|
+
"requestHeaders": [
|
|
305
|
+
"Idempotency-Key",
|
|
306
|
+
"OpenWOP-Client-Version",
|
|
307
|
+
"OpenWOP-Version"
|
|
308
|
+
],
|
|
309
|
+
"authenticated": true,
|
|
310
|
+
"requestBody": true
|
|
143
311
|
},
|
|
144
312
|
{
|
|
145
313
|
"method": "POST",
|
|
146
314
|
"path": "/prompts:render",
|
|
147
|
-
"operationId": "renderPromptTemplate"
|
|
315
|
+
"operationId": "renderPromptTemplate",
|
|
316
|
+
"requestHeaders": [
|
|
317
|
+
"OpenWOP-Client-Version",
|
|
318
|
+
"OpenWOP-Version"
|
|
319
|
+
],
|
|
320
|
+
"authenticated": true,
|
|
321
|
+
"requestBody": true
|
|
148
322
|
},
|
|
149
323
|
{
|
|
150
324
|
"method": "GET",
|
|
151
325
|
"path": "/runs",
|
|
152
|
-
"operationId": "listRuns"
|
|
326
|
+
"operationId": "listRuns",
|
|
327
|
+
"requestHeaders": [
|
|
328
|
+
"OpenWOP-Client-Version",
|
|
329
|
+
"OpenWOP-Version"
|
|
330
|
+
],
|
|
331
|
+
"authenticated": true,
|
|
332
|
+
"requestBody": false
|
|
153
333
|
},
|
|
154
334
|
{
|
|
155
335
|
"method": "POST",
|
|
156
336
|
"path": "/runs",
|
|
157
|
-
"operationId": "createRun"
|
|
337
|
+
"operationId": "createRun",
|
|
338
|
+
"requestHeaders": [
|
|
339
|
+
"Idempotency-Key",
|
|
340
|
+
"OpenWOP-Client-Version",
|
|
341
|
+
"OpenWOP-Dedup",
|
|
342
|
+
"OpenWOP-Force-Engine-Version",
|
|
343
|
+
"OpenWOP-Version"
|
|
344
|
+
],
|
|
345
|
+
"authenticated": true,
|
|
346
|
+
"requestBody": true
|
|
158
347
|
},
|
|
159
348
|
{
|
|
160
349
|
"method": "GET",
|
|
161
350
|
"path": "/runs/{runId}",
|
|
162
|
-
"operationId": "getRun"
|
|
351
|
+
"operationId": "getRun",
|
|
352
|
+
"requestHeaders": [
|
|
353
|
+
"If-None-Match",
|
|
354
|
+
"OpenWOP-Client-Version",
|
|
355
|
+
"OpenWOP-Version"
|
|
356
|
+
],
|
|
357
|
+
"authenticated": true,
|
|
358
|
+
"requestBody": false
|
|
163
359
|
},
|
|
164
360
|
{
|
|
165
361
|
"method": "GET",
|
|
166
362
|
"path": "/runs/{runId}/ancestry",
|
|
167
|
-
"operationId": "getRunAncestry"
|
|
363
|
+
"operationId": "getRunAncestry",
|
|
364
|
+
"requestHeaders": [
|
|
365
|
+
"OpenWOP-Client-Version",
|
|
366
|
+
"OpenWOP-Version"
|
|
367
|
+
],
|
|
368
|
+
"authenticated": true,
|
|
369
|
+
"requestBody": false
|
|
168
370
|
},
|
|
169
371
|
{
|
|
170
372
|
"method": "GET",
|
|
171
373
|
"path": "/runs/{runId}/annotations",
|
|
172
|
-
"operationId": "listAnnotations"
|
|
374
|
+
"operationId": "listAnnotations",
|
|
375
|
+
"requestHeaders": [
|
|
376
|
+
"OpenWOP-Client-Version",
|
|
377
|
+
"OpenWOP-Version"
|
|
378
|
+
],
|
|
379
|
+
"authenticated": true,
|
|
380
|
+
"requestBody": false
|
|
173
381
|
},
|
|
174
382
|
{
|
|
175
383
|
"method": "POST",
|
|
176
384
|
"path": "/runs/{runId}/annotations",
|
|
177
|
-
"operationId": "createAnnotation"
|
|
385
|
+
"operationId": "createAnnotation",
|
|
386
|
+
"requestHeaders": [
|
|
387
|
+
"Idempotency-Key",
|
|
388
|
+
"OpenWOP-Client-Version",
|
|
389
|
+
"OpenWOP-Version"
|
|
390
|
+
],
|
|
391
|
+
"authenticated": true,
|
|
392
|
+
"requestBody": true
|
|
178
393
|
},
|
|
179
394
|
{
|
|
180
395
|
"method": "GET",
|
|
181
396
|
"path": "/runs/{runId}/artifacts/{artifactId}",
|
|
182
|
-
"operationId": "getArtifact"
|
|
397
|
+
"operationId": "getArtifact",
|
|
398
|
+
"requestHeaders": [
|
|
399
|
+
"OpenWOP-Client-Version",
|
|
400
|
+
"OpenWOP-Version"
|
|
401
|
+
],
|
|
402
|
+
"authenticated": true,
|
|
403
|
+
"requestBody": false
|
|
183
404
|
},
|
|
184
405
|
{
|
|
185
406
|
"method": "POST",
|
|
186
407
|
"path": "/runs/{runId}/cancel",
|
|
187
|
-
"operationId": "cancelRun"
|
|
408
|
+
"operationId": "cancelRun",
|
|
409
|
+
"requestHeaders": [
|
|
410
|
+
"Idempotency-Key",
|
|
411
|
+
"OpenWOP-Client-Version",
|
|
412
|
+
"OpenWOP-Version"
|
|
413
|
+
],
|
|
414
|
+
"authenticated": true,
|
|
415
|
+
"requestBody": true
|
|
188
416
|
},
|
|
189
417
|
{
|
|
190
418
|
"method": "GET",
|
|
191
419
|
"path": "/runs/{runId}/compensation",
|
|
192
|
-
"operationId": "getRunCompensation"
|
|
420
|
+
"operationId": "getRunCompensation",
|
|
421
|
+
"requestHeaders": [
|
|
422
|
+
"OpenWOP-Client-Version",
|
|
423
|
+
"OpenWOP-Version"
|
|
424
|
+
],
|
|
425
|
+
"authenticated": true,
|
|
426
|
+
"requestBody": false
|
|
193
427
|
},
|
|
194
428
|
{
|
|
195
429
|
"method": "GET",
|
|
196
430
|
"path": "/runs/{runId}/effects",
|
|
197
|
-
"operationId": "getRunEffects"
|
|
431
|
+
"operationId": "getRunEffects",
|
|
432
|
+
"requestHeaders": [
|
|
433
|
+
"OpenWOP-Client-Version",
|
|
434
|
+
"OpenWOP-Version"
|
|
435
|
+
],
|
|
436
|
+
"authenticated": true,
|
|
437
|
+
"requestBody": false
|
|
198
438
|
},
|
|
199
439
|
{
|
|
200
440
|
"method": "GET",
|
|
201
441
|
"path": "/runs/{runId}/eval-summary",
|
|
202
|
-
"operationId": "getEvalSummary"
|
|
442
|
+
"operationId": "getEvalSummary",
|
|
443
|
+
"requestHeaders": [
|
|
444
|
+
"OpenWOP-Client-Version",
|
|
445
|
+
"OpenWOP-Version"
|
|
446
|
+
],
|
|
447
|
+
"authenticated": true,
|
|
448
|
+
"requestBody": false
|
|
203
449
|
},
|
|
204
450
|
{
|
|
205
451
|
"method": "GET",
|
|
206
452
|
"path": "/runs/{runId}/events",
|
|
207
|
-
"operationId": "streamRunEvents"
|
|
453
|
+
"operationId": "streamRunEvents",
|
|
454
|
+
"requestHeaders": [
|
|
455
|
+
"Last-Event-ID",
|
|
456
|
+
"OpenWOP-Client-Version",
|
|
457
|
+
"OpenWOP-Version"
|
|
458
|
+
],
|
|
459
|
+
"authenticated": true,
|
|
460
|
+
"requestBody": false
|
|
208
461
|
},
|
|
209
462
|
{
|
|
210
463
|
"method": "GET",
|
|
211
464
|
"path": "/runs/{runId}/events/poll",
|
|
212
|
-
"operationId": "pollRunEvents"
|
|
465
|
+
"operationId": "pollRunEvents",
|
|
466
|
+
"requestHeaders": [
|
|
467
|
+
"OpenWOP-Client-Version",
|
|
468
|
+
"OpenWOP-Version"
|
|
469
|
+
],
|
|
470
|
+
"authenticated": true,
|
|
471
|
+
"requestBody": false
|
|
213
472
|
},
|
|
214
473
|
{
|
|
215
474
|
"method": "POST",
|
|
216
475
|
"path": "/runs/{runId}/interrupts/{nodeId}",
|
|
217
|
-
"operationId": "resolveInterruptByRun"
|
|
476
|
+
"operationId": "resolveInterruptByRun",
|
|
477
|
+
"requestHeaders": [
|
|
478
|
+
"Idempotency-Key",
|
|
479
|
+
"OpenWOP-Client-Version",
|
|
480
|
+
"OpenWOP-Version"
|
|
481
|
+
],
|
|
482
|
+
"authenticated": true,
|
|
483
|
+
"requestBody": true
|
|
218
484
|
},
|
|
219
485
|
{
|
|
220
486
|
"method": "GET",
|
|
221
487
|
"path": "/runs/{runId}:diff",
|
|
222
|
-
"operationId": "diffRun"
|
|
488
|
+
"operationId": "diffRun",
|
|
489
|
+
"requestHeaders": [
|
|
490
|
+
"OpenWOP-Client-Version",
|
|
491
|
+
"OpenWOP-Version"
|
|
492
|
+
],
|
|
493
|
+
"authenticated": true,
|
|
494
|
+
"requestBody": false
|
|
223
495
|
},
|
|
224
496
|
{
|
|
225
497
|
"method": "POST",
|
|
226
498
|
"path": "/runs/{runId}:fork",
|
|
227
|
-
"operationId": "forkRun"
|
|
499
|
+
"operationId": "forkRun",
|
|
500
|
+
"requestHeaders": [
|
|
501
|
+
"Idempotency-Key",
|
|
502
|
+
"OpenWOP-Client-Version",
|
|
503
|
+
"OpenWOP-Version"
|
|
504
|
+
],
|
|
505
|
+
"authenticated": true,
|
|
506
|
+
"requestBody": true
|
|
228
507
|
},
|
|
229
508
|
{
|
|
230
509
|
"method": "POST",
|
|
231
510
|
"path": "/runs/{runId}:pause",
|
|
232
|
-
"operationId": "pauseRun"
|
|
511
|
+
"operationId": "pauseRun",
|
|
512
|
+
"requestHeaders": [
|
|
513
|
+
"Idempotency-Key",
|
|
514
|
+
"OpenWOP-Client-Version",
|
|
515
|
+
"OpenWOP-Version"
|
|
516
|
+
],
|
|
517
|
+
"authenticated": true,
|
|
518
|
+
"requestBody": true
|
|
233
519
|
},
|
|
234
520
|
{
|
|
235
521
|
"method": "POST",
|
|
236
522
|
"path": "/runs/{runId}:resume",
|
|
237
|
-
"operationId": "resumeRun"
|
|
523
|
+
"operationId": "resumeRun",
|
|
524
|
+
"requestHeaders": [
|
|
525
|
+
"Idempotency-Key",
|
|
526
|
+
"OpenWOP-Client-Version",
|
|
527
|
+
"OpenWOP-Version"
|
|
528
|
+
],
|
|
529
|
+
"authenticated": true,
|
|
530
|
+
"requestBody": true
|
|
238
531
|
},
|
|
239
532
|
{
|
|
240
533
|
"method": "POST",
|
|
241
534
|
"path": "/runs:bulk-cancel",
|
|
242
|
-
"operationId": "bulkCancelRuns"
|
|
535
|
+
"operationId": "bulkCancelRuns",
|
|
536
|
+
"requestHeaders": [
|
|
537
|
+
"Idempotency-Key",
|
|
538
|
+
"OpenWOP-Client-Version",
|
|
539
|
+
"OpenWOP-Version"
|
|
540
|
+
],
|
|
541
|
+
"authenticated": true,
|
|
542
|
+
"requestBody": true
|
|
243
543
|
},
|
|
244
544
|
{
|
|
245
545
|
"method": "GET",
|
|
246
546
|
"path": "/tools",
|
|
247
|
-
"operationId": "listTools"
|
|
547
|
+
"operationId": "listTools",
|
|
548
|
+
"requestHeaders": [
|
|
549
|
+
"OpenWOP-Client-Version",
|
|
550
|
+
"OpenWOP-Version"
|
|
551
|
+
],
|
|
552
|
+
"authenticated": true,
|
|
553
|
+
"requestBody": false
|
|
248
554
|
},
|
|
249
555
|
{
|
|
250
556
|
"method": "GET",
|
|
251
557
|
"path": "/tools/{toolId}",
|
|
252
|
-
"operationId": "getTool"
|
|
558
|
+
"operationId": "getTool",
|
|
559
|
+
"requestHeaders": [
|
|
560
|
+
"OpenWOP-Client-Version",
|
|
561
|
+
"OpenWOP-Version"
|
|
562
|
+
],
|
|
563
|
+
"authenticated": true,
|
|
564
|
+
"requestBody": false
|
|
253
565
|
},
|
|
254
566
|
{
|
|
255
567
|
"method": "POST",
|
|
256
568
|
"path": "/trigger-subscriptions",
|
|
257
|
-
"operationId": "createTriggerSubscription"
|
|
569
|
+
"operationId": "createTriggerSubscription",
|
|
570
|
+
"requestHeaders": [
|
|
571
|
+
"Idempotency-Key",
|
|
572
|
+
"OpenWOP-Client-Version",
|
|
573
|
+
"OpenWOP-Version"
|
|
574
|
+
],
|
|
575
|
+
"authenticated": true,
|
|
576
|
+
"requestBody": true
|
|
258
577
|
},
|
|
259
578
|
{
|
|
260
579
|
"method": "POST",
|
|
261
580
|
"path": "/webhooks",
|
|
262
|
-
"operationId": "registerWebhook"
|
|
581
|
+
"operationId": "registerWebhook",
|
|
582
|
+
"requestHeaders": [
|
|
583
|
+
"Idempotency-Key",
|
|
584
|
+
"OpenWOP-Client-Version",
|
|
585
|
+
"OpenWOP-Version"
|
|
586
|
+
],
|
|
587
|
+
"authenticated": true,
|
|
588
|
+
"requestBody": true
|
|
263
589
|
},
|
|
264
590
|
{
|
|
265
591
|
"method": "DELETE",
|
|
266
592
|
"path": "/webhooks/{webhookId}",
|
|
267
|
-
"operationId": "unregisterWebhook"
|
|
593
|
+
"operationId": "unregisterWebhook",
|
|
594
|
+
"requestHeaders": [
|
|
595
|
+
"OpenWOP-Client-Version",
|
|
596
|
+
"OpenWOP-Version"
|
|
597
|
+
],
|
|
598
|
+
"authenticated": true,
|
|
599
|
+
"requestBody": false
|
|
268
600
|
},
|
|
269
601
|
{
|
|
270
602
|
"method": "GET",
|
|
271
603
|
"path": "/webhooks/{webhookId}/dead-letters",
|
|
272
|
-
"operationId": "listWebhookDeadLetters"
|
|
604
|
+
"operationId": "listWebhookDeadLetters",
|
|
605
|
+
"requestHeaders": [
|
|
606
|
+
"OpenWOP-Client-Version",
|
|
607
|
+
"OpenWOP-Version"
|
|
608
|
+
],
|
|
609
|
+
"authenticated": true,
|
|
610
|
+
"requestBody": false
|
|
273
611
|
},
|
|
274
612
|
{
|
|
275
613
|
"method": "POST",
|
|
276
614
|
"path": "/webhooks/{webhookId}/rotate-secret",
|
|
277
|
-
"operationId": "rotateWebhookSecret"
|
|
615
|
+
"operationId": "rotateWebhookSecret",
|
|
616
|
+
"requestHeaders": [
|
|
617
|
+
"Idempotency-Key",
|
|
618
|
+
"OpenWOP-Client-Version",
|
|
619
|
+
"OpenWOP-Version"
|
|
620
|
+
],
|
|
621
|
+
"authenticated": true,
|
|
622
|
+
"requestBody": true
|
|
278
623
|
},
|
|
279
624
|
{
|
|
280
625
|
"method": "GET",
|
|
281
626
|
"path": "/workflows/{workflowId}",
|
|
282
|
-
"operationId": "getWorkflow"
|
|
627
|
+
"operationId": "getWorkflow",
|
|
628
|
+
"requestHeaders": [
|
|
629
|
+
"OpenWOP-Client-Version",
|
|
630
|
+
"OpenWOP-Version"
|
|
631
|
+
],
|
|
632
|
+
"authenticated": true,
|
|
633
|
+
"requestBody": false
|
|
283
634
|
}
|
|
284
635
|
],
|
|
285
636
|
"channels": [
|
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.
|
|
4
|
-
"corpusTag": "v2.
|
|
3
|
+
"version": "2.45.1",
|
|
4
|
+
"corpusTag": "v2.45.1",
|
|
5
5
|
"updated": "2026-09-29"
|
|
6
6
|
}
|