@openwop/spec-artifacts 2.35.1 → 2.36.0
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 +103 -89
- package/api/openapi.yaml +325 -4
- package/api/seams-v2.yaml +342 -1
- package/api/v2/asyncapi.yaml +1 -1
- package/api/v2/openapi.yaml +564 -8
- package/package.json +1 -1
- package/schemas/a2a-task-state.schema.json +3 -3
- package/schemas/artifact-type-pack-manifest.schema.json +3 -3
- package/schemas/capabilities.schema.json +34 -1
- package/schemas/connection-pack-manifest.schema.json +14 -0
- package/schemas/debug-bundle.schema.json +20 -0
- package/schemas/dispatch-config.schema.json +1 -1
- package/schemas/localized-content-language-settings.schema.json +3 -3
- package/schemas/localized-content-page.schema.json +2 -2
- package/schemas/localized-content-section.schema.json +3 -3
- package/schemas/run-event-payloads.schema.json +4 -2
- package/schemas/suspend-request.schema.json +61 -4
- package/schemas/v2/a2a-task-state.schema.json +10 -9
- package/schemas/v2/agent-deployment-transition.schema.json +4 -4
- package/schemas/v2/agent-deployment.schema.json +7 -7
- package/schemas/v2/agent-eval-suite.schema.json +10 -10
- package/schemas/v2/agent-inventory-response.schema.json +8 -2
- package/schemas/v2/artifact-type-pack-manifest.schema.json +3 -3
- package/schemas/v2/artifact.schema.json +84 -0
- package/schemas/v2/capabilities.schema.json +82 -8
- package/schemas/v2/certification-bundle.schema.json +1 -1
- package/schemas/v2/channel-presence-payload.schema.json +3 -3
- package/schemas/v2/connection-pack-manifest.schema.json +14 -0
- package/schemas/v2/conversation-event.schema.json +9 -2
- package/schemas/v2/conversation-turn.schema.json +19 -12
- package/schemas/v2/dispatch-config.schema.json +1 -1
- package/schemas/v2/envelopes/ui.a2ui-surface.schema.json +920 -22
- package/schemas/v2/error-envelope.schema.json +11 -1
- package/schemas/v2/eval-summary.schema.json +1 -2
- package/schemas/v2/goal.schema.json +4 -4
- package/schemas/v2/localized-content-language-settings.schema.json +3 -3
- package/schemas/v2/localized-content-page.schema.json +2 -2
- package/schemas/v2/localized-content-section.schema.json +3 -3
- package/schemas/v2/node-pack-manifest.schema.json +105 -0
- package/schemas/v2/part.schema.json +81 -0
- package/schemas/v2/proposal.schema.json +6 -6
- package/schemas/v2/run-event-payloads.schema.json +5 -3
- package/schemas/v2/self-hosted-runner-dispatch-frame.schema.json +2 -2
- package/schemas/v2/self-hosted-runner-result-frame.schema.json +1 -1
- package/schemas/v2/suspend-request.schema.json +251 -6
- package/schemas/v2/tool-descriptor.schema.json +246 -2
- package/schemas/v2/trigger-event.schema.json +1 -2
- package/schemas/v2/trigger-subscription.schema.json +1 -2
- package/schemas/v2/webhook-verification.schema.json +22 -0
- package/schemas/v2/workflow-definition.schema.json +25 -25
- package/spec/v1/alias-detectors.json +13 -1
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v1/deprecations.json +45 -1
- package/spec/v1/deprecations.schema.json +119 -4
- package/spec/v1/gaps.json +1925 -4
- package/spec/v2/README.md +5 -2
- package/spec/v2/core/capabilities.md +13 -26
- package/spec/v2/core/conformance.md +5 -8
- package/spec/v2/core/connection-packs.md +1 -1
- package/spec/v2/core/conversation.md +1 -1
- package/spec/v2/core/errors.md +8 -3
- package/spec/v2/core/events.md +8 -20
- package/spec/v2/core/form-content-packs.md +2 -2
- package/spec/v2/core/headers.md +5 -4
- package/spec/v2/core/host-services.md +6 -2
- package/spec/v2/core/idempotency.md +1 -1
- package/spec/v2/core/identity.md +23 -12
- package/spec/v2/core/interop.md +34 -4
- package/spec/v2/core/interrupt.md +6 -3
- package/spec/v2/core/node-pack-runtimes.md +20 -0
- package/spec/v2/core/oauth.md +32 -0
- package/spec/v2/core/overview.md +19 -6
- package/spec/v2/core/packs.md +4 -6
- package/spec/v2/core/persistence.md +20 -55
- package/spec/v2/core/replay.md +5 -11
- package/spec/v2/core/runs.md +9 -8
- package/spec/v2/core/security-defaults.md +18 -20
- package/spec/v2/core/tool-catalog.md +22 -0
- package/spec/v2/core/versioning.md +10 -28
- package/spec/v2/core/webhooks.md +16 -4
- package/spec/v2/core/workflow-chain-packs.md +1 -1
- package/spec/v2/corrections.json +32 -0
- package/spec/v2/corrections.schema.json +49 -0
- package/spec/v2/declaration.json +18 -13
- package/spec/v2/declaration.schema.json +3 -1
- package/spec/v2/errors.json +46 -1
- package/spec/v2/ext/a2uiSurface/README.md +131 -17
- package/spec/v2/ext/dataIntegration/README.md +5 -0
- package/spec/v2/facets/a2a.schema.json +4 -0
- package/spec/v2/facets/auth.schema.json +24 -0
- package/spec/v2/facets/mcp.schema.json +4 -0
- package/spec/v2/facets/oauth.schema.json +70 -0
- package/spec/v2/facets/webhooks.schema.json +23 -2
- package/spec/v2/id-field-bindings.json +2 -0
- package/spec/v2/interop-map.json +639 -0
- package/spec/v2/interop-map.schema.json +458 -0
- package/spec/v2/migrations.json +7 -0
- package/spec/v2/migrations.schema.json +58 -0
- package/spec/v2/path-manifest.json +6 -1
- package/spec/v2/release.json +3 -3
- package/spec/v2/surface-baseline.json +7981 -0
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.36.0
|
|
5
5
|
description: 'GENERATED by scripts/derive-v2-api.py. RFC 0168 §C: the seams are a versioned conformance profile with their
|
|
6
6
|
own document and path space (/conformance/seams/…), validated against the canonical v2 schemas with no tolerance path,
|
|
7
7
|
forbidden from the capability namespace (a host advertises the profile, never a testSeams flag). This document carries
|
|
@@ -32,6 +32,13 @@ paths:
|
|
|
32
32
|
|
|
33
33
|
'
|
|
34
34
|
operationId: getA2ATaskState
|
|
35
|
+
security:
|
|
36
|
+
- ApiKeyAuth:
|
|
37
|
+
- runs:read
|
|
38
|
+
- OAuth2:
|
|
39
|
+
- runs:read
|
|
40
|
+
- OpenIdConnect:
|
|
41
|
+
- runs:read
|
|
35
42
|
parameters:
|
|
36
43
|
- name: taskId
|
|
37
44
|
in: path
|
|
@@ -72,6 +79,13 @@ paths:
|
|
|
72
79
|
|
|
73
80
|
'
|
|
74
81
|
operationId: listWorkspaceFiles
|
|
82
|
+
security:
|
|
83
|
+
- ApiKeyAuth:
|
|
84
|
+
- workspace:read
|
|
85
|
+
- OAuth2:
|
|
86
|
+
- workspace:read
|
|
87
|
+
- OpenIdConnect:
|
|
88
|
+
- workspace:read
|
|
75
89
|
parameters:
|
|
76
90
|
- $ref: '#/components/parameters/WorkspacePrefix'
|
|
77
91
|
responses:
|
|
@@ -112,6 +126,13 @@ paths:
|
|
|
112
126
|
|
|
113
127
|
'
|
|
114
128
|
operationId: getWorkspaceFile
|
|
129
|
+
security:
|
|
130
|
+
- ApiKeyAuth:
|
|
131
|
+
- workspace:read
|
|
132
|
+
- OAuth2:
|
|
133
|
+
- workspace:read
|
|
134
|
+
- OpenIdConnect:
|
|
135
|
+
- workspace:read
|
|
115
136
|
parameters:
|
|
116
137
|
- $ref: '#/components/parameters/WorkspacePath'
|
|
117
138
|
- $ref: '#/components/parameters/WorkspaceVersion'
|
|
@@ -152,6 +173,13 @@ paths:
|
|
|
152
173
|
|
|
153
174
|
'
|
|
154
175
|
operationId: putWorkspaceFile
|
|
176
|
+
security:
|
|
177
|
+
- ApiKeyAuth:
|
|
178
|
+
- workspace:write
|
|
179
|
+
- OAuth2:
|
|
180
|
+
- workspace:write
|
|
181
|
+
- OpenIdConnect:
|
|
182
|
+
- workspace:write
|
|
155
183
|
parameters:
|
|
156
184
|
- $ref: '#/components/parameters/WorkspacePath'
|
|
157
185
|
- $ref: '#/components/parameters/IfMatch'
|
|
@@ -203,6 +231,13 @@ paths:
|
|
|
203
231
|
|
|
204
232
|
'
|
|
205
233
|
operationId: deleteWorkspaceFile
|
|
234
|
+
security:
|
|
235
|
+
- ApiKeyAuth:
|
|
236
|
+
- workspace:write
|
|
237
|
+
- OAuth2:
|
|
238
|
+
- workspace:write
|
|
239
|
+
- OpenIdConnect:
|
|
240
|
+
- workspace:write
|
|
206
241
|
parameters:
|
|
207
242
|
- $ref: '#/components/parameters/WorkspacePath'
|
|
208
243
|
- $ref: '#/components/parameters/IdempotencyKey'
|
|
@@ -259,6 +294,13 @@ paths:
|
|
|
259
294
|
|
|
260
295
|
'
|
|
261
296
|
operationId: putTestPackTarball
|
|
297
|
+
security:
|
|
298
|
+
- ApiKeyAuth:
|
|
299
|
+
- packs:publish
|
|
300
|
+
- OAuth2:
|
|
301
|
+
- packs:publish
|
|
302
|
+
- OpenIdConnect:
|
|
303
|
+
- packs:publish
|
|
262
304
|
parameters:
|
|
263
305
|
- in: header
|
|
264
306
|
name: OpenWOP-Pack-Signing-Method
|
|
@@ -367,6 +409,13 @@ paths:
|
|
|
367
409
|
path is registry-service surface (`registry-operations.md`), not defined in this host document (see the `packs-test`
|
|
368
410
|
tag scope note).'
|
|
369
411
|
operationId: getTestPackTarball
|
|
412
|
+
security:
|
|
413
|
+
- ApiKeyAuth:
|
|
414
|
+
- packs:read
|
|
415
|
+
- OAuth2:
|
|
416
|
+
- packs:read
|
|
417
|
+
- OpenIdConnect:
|
|
418
|
+
- packs:read
|
|
370
419
|
responses:
|
|
371
420
|
'200':
|
|
372
421
|
description: Tarball bytes.
|
|
@@ -424,6 +473,13 @@ paths:
|
|
|
424
473
|
|
|
425
474
|
'
|
|
426
475
|
operationId: deleteTestPackVersion
|
|
476
|
+
security:
|
|
477
|
+
- ApiKeyAuth:
|
|
478
|
+
- packs:publish
|
|
479
|
+
- OAuth2:
|
|
480
|
+
- packs:publish
|
|
481
|
+
- OpenIdConnect:
|
|
482
|
+
- packs:publish
|
|
427
483
|
responses:
|
|
428
484
|
'204':
|
|
429
485
|
description: Version successfully unpublished from the test catalog.
|
|
@@ -467,6 +523,13 @@ paths:
|
|
|
467
523
|
|
|
468
524
|
'
|
|
469
525
|
operationId: getTestPackSignature
|
|
526
|
+
security:
|
|
527
|
+
- ApiKeyAuth:
|
|
528
|
+
- packs:read
|
|
529
|
+
- OAuth2:
|
|
530
|
+
- packs:read
|
|
531
|
+
- OpenIdConnect:
|
|
532
|
+
- packs:read
|
|
470
533
|
responses:
|
|
471
534
|
'200':
|
|
472
535
|
description: Signature blob.
|
|
@@ -733,6 +796,190 @@ paths:
|
|
|
733
796
|
$ref: '#/components/responses/ValidationError'
|
|
734
797
|
'401':
|
|
735
798
|
$ref: '#/components/responses/Unauthenticated'
|
|
799
|
+
/conformance/seams/sample/a2ui/emit-surface:
|
|
800
|
+
post:
|
|
801
|
+
tags:
|
|
802
|
+
- Seams
|
|
803
|
+
operationId: emitA2uiSurface
|
|
804
|
+
summary: Admit one `ui.a2ui-surface` envelope into a run through the production envelope-admission path — RFC 0209 witness
|
|
805
|
+
description: 'A real `ui.a2ui-surface` envelope is emitted by a model inside a node turn, so the suite cannot choose
|
|
806
|
+
one from the canonical wire. This seam supplies the envelope ONLY. The host MUST admit it through its PRODUCTION envelope-admission
|
|
807
|
+
path — the envelope-kind catalog (`supportedEnvelopes`, `schemaVersions`, `envelopeStrictness`, events.md §"The envelope-kind
|
|
808
|
+
catalog"), validation against the ONE per-kind branch the schema version selects (never the `anyOf` union), the RFC
|
|
809
|
+
0209 cross-field rules (every message `surfaceId` equals the payload `surfaceId`; a `createSurface.catalogId` equals
|
|
810
|
+
the payload `catalogId`), the surface-fold guard (spec/v2/ext/a2uiSurface/README.md §"The fold"), trust propagation
|
|
811
|
+
and SR-1 redaction — and MUST record it exactly as production would. It MUST NOT be a mock that records without those
|
|
812
|
+
rules. `envelope.nodeId`, when present, binds the surface to that node, so a surface emitted at a node suspended on
|
|
813
|
+
an `approval` interrupt is the surface whose `resume` action would resolve it (§"Trust": a tainted fold blocks that
|
|
814
|
+
interrupt). Refusals use the canonical error envelope: `422 unknown_schema_version` above the floor or under `strict`
|
|
815
|
+
below it, `422 envelope_invalid` for a payload that fails its branch, a cross-field rule or the fold guard, `422 unknown_envelope_kind`
|
|
816
|
+
when the host does not list the kind; `details` SHOULD name the rule. A host that has not wired the seam answers `404`/`405`,
|
|
817
|
+
and the scenario records `inapplicable`.'
|
|
818
|
+
requestBody:
|
|
819
|
+
required: true
|
|
820
|
+
content:
|
|
821
|
+
application/json:
|
|
822
|
+
schema:
|
|
823
|
+
type: object
|
|
824
|
+
additionalProperties: false
|
|
825
|
+
required:
|
|
826
|
+
- runId
|
|
827
|
+
- envelope
|
|
828
|
+
properties:
|
|
829
|
+
runId:
|
|
830
|
+
$ref: ../schemas/v2/ids.schema.json#/$defs/runId
|
|
831
|
+
envelope:
|
|
832
|
+
$ref: ../schemas/v2/ai-envelope.schema.json
|
|
833
|
+
description: A complete AI envelope whose `type` is `ui.a2ui-surface`; `schemaVersion` selects the payload
|
|
834
|
+
branch.
|
|
835
|
+
responses:
|
|
836
|
+
'201':
|
|
837
|
+
description: Admitted and recorded; `sequence` is the run event that records the envelope.
|
|
838
|
+
content:
|
|
839
|
+
application/json:
|
|
840
|
+
schema:
|
|
841
|
+
type: object
|
|
842
|
+
additionalProperties: false
|
|
843
|
+
required:
|
|
844
|
+
- sequence
|
|
845
|
+
properties:
|
|
846
|
+
sequence:
|
|
847
|
+
type: integer
|
|
848
|
+
minimum: 0
|
|
849
|
+
'400':
|
|
850
|
+
$ref: '#/components/responses/ValidationError'
|
|
851
|
+
'401':
|
|
852
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
853
|
+
'404':
|
|
854
|
+
$ref: '#/components/responses/NotFound'
|
|
855
|
+
'422':
|
|
856
|
+
description: Refused by envelope admission (`unknown_schema_version`, `envelope_invalid`, `unknown_envelope_kind`).
|
|
857
|
+
content:
|
|
858
|
+
application/json:
|
|
859
|
+
schema:
|
|
860
|
+
$ref: '#/components/schemas/Error'
|
|
861
|
+
/conformance/seams/sample/oauth/authorize-start:
|
|
862
|
+
post:
|
|
863
|
+
tags:
|
|
864
|
+
- Seams
|
|
865
|
+
operationId: startOAuthAuthorization
|
|
866
|
+
summary: Begin an authorization-code grant for the caller through the production authorization-URL builder — RFC 0199
|
|
867
|
+
§A/§B witness
|
|
868
|
+
description: 'Points `provider` at the given endpoints (the suite''s authorization-server double) — a test-only provider
|
|
869
|
+
definition, or, with `connection`, the connection pack''s provider through the host''s PRODUCTION registration path,
|
|
870
|
+
which runs the RFC 0199 §B.3 discovery and pins its tuple — and then begins an authorization-code grant for the AUTHENTICATED
|
|
871
|
+
caller by calling the host''s PRODUCTION authorization-URL builder, returning the URL a user agent would be redirected
|
|
872
|
+
to. The builder MUST be the one production uses (PKCE S256, a fresh `state` bound to the caller''s Subject and the
|
|
873
|
+
provider, the provider''s fixed redirect URI, `iss` expectations, `resource` for an MCP reach); a seam that assembles
|
|
874
|
+
its own URL measures a stub, and a bundle citing it MUST say which. The grant completes on the host''s PRODUCTION
|
|
875
|
+
callback route, which the suite calls as the user agent. `redirectUri` is a probe: the host MUST ignore it (the redirect
|
|
876
|
+
URI is fixed per provider, oauth.md rule 5). A refused grant — an MCP-reach provider with no `issuer`, `pkce: "unsupported"`,
|
|
877
|
+
or discovered metadata that disagrees with the manifest or the pinned tuple — is `422 connection_auth_metadata_mismatch`
|
|
878
|
+
and no authorization URL is issued. A host that has not wired the seam answers `404`, and the scenarios record `blocked`.'
|
|
879
|
+
requestBody:
|
|
880
|
+
required: true
|
|
881
|
+
content:
|
|
882
|
+
application/json:
|
|
883
|
+
schema:
|
|
884
|
+
type: object
|
|
885
|
+
additionalProperties: false
|
|
886
|
+
required:
|
|
887
|
+
- provider
|
|
888
|
+
properties:
|
|
889
|
+
provider:
|
|
890
|
+
type: string
|
|
891
|
+
minLength: 1
|
|
892
|
+
description: An advertised `oauth.providers[].id`, or the `provider.id` of `connection`.
|
|
893
|
+
authUrl:
|
|
894
|
+
type: string
|
|
895
|
+
format: uri
|
|
896
|
+
tokenUrl:
|
|
897
|
+
type: string
|
|
898
|
+
format: uri
|
|
899
|
+
issuer:
|
|
900
|
+
type: string
|
|
901
|
+
format: uri
|
|
902
|
+
description: The provider's issuer identifier; absent ⇒ an issuer-less provider (provider-unique redirect
|
|
903
|
+
URI).
|
|
904
|
+
pkce:
|
|
905
|
+
type: string
|
|
906
|
+
enum:
|
|
907
|
+
- S256
|
|
908
|
+
- unsupported
|
|
909
|
+
scopes:
|
|
910
|
+
type: array
|
|
911
|
+
items:
|
|
912
|
+
type: string
|
|
913
|
+
minLength: 1
|
|
914
|
+
connection:
|
|
915
|
+
$ref: ../schemas/v2/connection-pack-manifest.schema.json
|
|
916
|
+
description: A connection pack whose provider is reached as an MCP server (RFC 0199 §B); registered through
|
|
917
|
+
the production path.
|
|
918
|
+
redirectUri:
|
|
919
|
+
type: string
|
|
920
|
+
description: A probe the host MUST ignore.
|
|
921
|
+
responses:
|
|
922
|
+
'201':
|
|
923
|
+
description: The authorization URL the user agent would be sent to.
|
|
924
|
+
content:
|
|
925
|
+
application/json:
|
|
926
|
+
schema:
|
|
927
|
+
type: object
|
|
928
|
+
additionalProperties: false
|
|
929
|
+
required:
|
|
930
|
+
- authorizationUrl
|
|
931
|
+
properties:
|
|
932
|
+
authorizationUrl:
|
|
933
|
+
type: string
|
|
934
|
+
format: uri
|
|
935
|
+
'400':
|
|
936
|
+
$ref: '#/components/responses/ValidationError'
|
|
937
|
+
'401':
|
|
938
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
939
|
+
'404':
|
|
940
|
+
$ref: '#/components/responses/NotFound'
|
|
941
|
+
'422':
|
|
942
|
+
description: The grant is refused (`connection_auth_metadata_mismatch`, `oauth_provider_unsupported`); no authorization
|
|
943
|
+
URL is issued.
|
|
944
|
+
content:
|
|
945
|
+
application/json:
|
|
946
|
+
schema:
|
|
947
|
+
$ref: '#/components/schemas/Error'
|
|
948
|
+
/conformance/seams/sample/oauth/expire-refresh:
|
|
949
|
+
post:
|
|
950
|
+
tags:
|
|
951
|
+
- Seams
|
|
952
|
+
operationId: expireOAuthAccessToken
|
|
953
|
+
summary: Expire the caller's stored access token for a provider so its next use refreshes — RFC 0199 §C.2(b) / RFC 0047
|
|
954
|
+
§C.3 witness
|
|
955
|
+
description: 'Marks the access token of the caller''s stored credential for `provider` expired. Nothing else: the next
|
|
956
|
+
node that uses it refreshes through the host''s PRODUCTION refresh path against the provider''s token endpoint (the
|
|
957
|
+
suite''s double, which decides whether the refresh token is still good). A terminal refresh failure then follows oauth.md
|
|
958
|
+
§Token lifecycle — `connector.auth-expired`, and either the node fails `connector_auth_expired` or, under `oauth.credentialInterrupt`,
|
|
959
|
+
it suspends on a `credential` interrupt with `reason: "expired"`. `404` when the caller holds no credential for the
|
|
960
|
+
provider.'
|
|
961
|
+
requestBody:
|
|
962
|
+
required: true
|
|
963
|
+
content:
|
|
964
|
+
application/json:
|
|
965
|
+
schema:
|
|
966
|
+
type: object
|
|
967
|
+
additionalProperties: false
|
|
968
|
+
required:
|
|
969
|
+
- provider
|
|
970
|
+
properties:
|
|
971
|
+
provider:
|
|
972
|
+
type: string
|
|
973
|
+
minLength: 1
|
|
974
|
+
responses:
|
|
975
|
+
'204':
|
|
976
|
+
description: The access token is expired.
|
|
977
|
+
'400':
|
|
978
|
+
$ref: '#/components/responses/ValidationError'
|
|
979
|
+
'401':
|
|
980
|
+
$ref: '#/components/responses/Unauthenticated'
|
|
981
|
+
'404':
|
|
982
|
+
$ref: '#/components/responses/NotFound'
|
|
736
983
|
components:
|
|
737
984
|
securitySchemes:
|
|
738
985
|
ApiKeyAuth:
|
|
@@ -749,6 +996,88 @@ components:
|
|
|
749
996
|
|
|
750
997
|
See `auth.md`.
|
|
751
998
|
|
|
999
|
+
'
|
|
1000
|
+
OAuth2:
|
|
1001
|
+
type: oauth2
|
|
1002
|
+
description: 'RFC 0200 §F. OAuth 2.0 lanes — v1 `openwop-auth-oauth2-client-credentials`,
|
|
1003
|
+
|
|
1004
|
+
v2 `auth.lanes[].lane: "oauth2"`. Discovery is RFC 9728 Protected Resource
|
|
1005
|
+
|
|
1006
|
+
Metadata at the path-inserted well-known URI (`identity.md` §2.5).
|
|
1007
|
+
|
|
1008
|
+
Placeholder URLs.
|
|
1009
|
+
|
|
1010
|
+
'
|
|
1011
|
+
flows:
|
|
1012
|
+
clientCredentials:
|
|
1013
|
+
tokenUrl: https://issuer.example/oauth2/token
|
|
1014
|
+
scopes:
|
|
1015
|
+
manifest:read: Read workflow / canvas-type / endpoint manifests
|
|
1016
|
+
runs:create: Create new runs
|
|
1017
|
+
runs:read: Read run state and event stream
|
|
1018
|
+
runs:cancel: Cancel an in-flight run
|
|
1019
|
+
runs:annotate: Record a quality annotation on a run
|
|
1020
|
+
artifacts:read: Read artifacts produced by runs
|
|
1021
|
+
webhooks:manage: Register/unregister webhook subscriptions
|
|
1022
|
+
approvals:respond: Respond to HITL approval gates
|
|
1023
|
+
packs:publish: Publish node-pack versions
|
|
1024
|
+
packs:read: Fetch a published node-pack tarball or signature
|
|
1025
|
+
packs:yank: Yank a node-pack version
|
|
1026
|
+
packs:yank-revert: Reinstate a yanked node-pack version
|
|
1027
|
+
audit:read: Verify audit-log integrity
|
|
1028
|
+
workspace:read: Read agent-workspace files
|
|
1029
|
+
workspace:write: Write agent-workspace files
|
|
1030
|
+
prompts:read: Read and render prompt templates
|
|
1031
|
+
prompts:write: Create, update and delete prompt templates
|
|
1032
|
+
content:read: Read authored content pages and locale settings
|
|
1033
|
+
content:write: Create, publish and translate authored content pages
|
|
1034
|
+
deploy:*: Drive an agent deployment state transition
|
|
1035
|
+
authorizationCode:
|
|
1036
|
+
authorizationUrl: https://issuer.example/oauth2/authorize
|
|
1037
|
+
tokenUrl: https://issuer.example/oauth2/token
|
|
1038
|
+
scopes:
|
|
1039
|
+
manifest:read: Read workflow / canvas-type / endpoint manifests
|
|
1040
|
+
runs:create: Create new runs
|
|
1041
|
+
runs:read: Read run state and event stream
|
|
1042
|
+
runs:cancel: Cancel an in-flight run
|
|
1043
|
+
runs:annotate: Record a quality annotation on a run
|
|
1044
|
+
artifacts:read: Read artifacts produced by runs
|
|
1045
|
+
webhooks:manage: Register/unregister webhook subscriptions
|
|
1046
|
+
approvals:respond: Respond to HITL approval gates
|
|
1047
|
+
packs:publish: Publish node-pack versions
|
|
1048
|
+
packs:read: Fetch a published node-pack tarball or signature
|
|
1049
|
+
packs:yank: Yank a node-pack version
|
|
1050
|
+
packs:yank-revert: Reinstate a yanked node-pack version
|
|
1051
|
+
audit:read: Verify audit-log integrity
|
|
1052
|
+
workspace:read: Read agent-workspace files
|
|
1053
|
+
workspace:write: Write agent-workspace files
|
|
1054
|
+
prompts:read: Read and render prompt templates
|
|
1055
|
+
prompts:write: Create, update and delete prompt templates
|
|
1056
|
+
content:read: Read authored content pages and locale settings
|
|
1057
|
+
content:write: Create, publish and translate authored content pages
|
|
1058
|
+
deploy:*: Drive an agent deployment state transition
|
|
1059
|
+
OpenIdConnect:
|
|
1060
|
+
type: openIdConnect
|
|
1061
|
+
openIdConnectUrl: https://issuer.example/.well-known/openid-configuration
|
|
1062
|
+
description: 'RFC 0200 §F. v1 `openwop-auth-oidc-user-bearer` / v2 `auth.lanes[].lane: "oidc"`.
|
|
1063
|
+
|
|
1064
|
+
An ID token MAY be the bearer only when its `aud` equals the host''s configured
|
|
1065
|
+
|
|
1066
|
+
audience (`identity.md` §2.1); any other `aud` is `audience_mismatch`.
|
|
1067
|
+
|
|
1068
|
+
Placeholder URL.
|
|
1069
|
+
|
|
1070
|
+
'
|
|
1071
|
+
MutualTLS:
|
|
1072
|
+
type: mutualTLS
|
|
1073
|
+
description: 'RFC 0200 §F. v1 `openwop-auth-mtls` / v2 `auth.lanes[].lane: "mtls"`. In OpenWOP
|
|
1074
|
+
|
|
1075
|
+
mTLS is required *in addition to* a bearer, never instead of one, so it appears
|
|
1076
|
+
|
|
1077
|
+
in no canonical requirement below: a host that requires it adds `MutualTLS: []`
|
|
1078
|
+
|
|
1079
|
+
inside each requirement object (AND).
|
|
1080
|
+
|
|
752
1081
|
'
|
|
753
1082
|
parameters:
|
|
754
1083
|
IdempotencyKey:
|
|
@@ -833,12 +1162,24 @@ components:
|
|
|
833
1162
|
responses:
|
|
834
1163
|
Unauthenticated:
|
|
835
1164
|
description: Missing or invalid credential.
|
|
1165
|
+
headers:
|
|
1166
|
+
WWW-Authenticate:
|
|
1167
|
+
description: RFC 0200 §B — `Bearer` challenge; `resource_metadata` and `error="invalid_token"` on a host with an
|
|
1168
|
+
oauth2/oidc lane. Never on a non-disclosure 404.
|
|
1169
|
+
schema:
|
|
1170
|
+
type: string
|
|
836
1171
|
content:
|
|
837
1172
|
application/json:
|
|
838
1173
|
schema:
|
|
839
1174
|
$ref: '#/components/schemas/Error'
|
|
840
1175
|
Forbidden:
|
|
841
1176
|
description: Credential valid but lacks required scope or fails resource binding.
|
|
1177
|
+
headers:
|
|
1178
|
+
WWW-Authenticate:
|
|
1179
|
+
description: RFC 0200 §B — `error="insufficient_scope"` with every required `scope` on a scope refusal; absent on
|
|
1180
|
+
a resource-binding 403.
|
|
1181
|
+
schema:
|
|
1182
|
+
type: string
|
|
842
1183
|
content:
|
|
843
1184
|
application/json:
|
|
844
1185
|
schema:
|
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.36.0
|
|
5
5
|
description: GENERATED by scripts/derive-v2-api.py (RFC 0171 §E.1, RFC 0172 §C.2). One run-events channel whose address
|
|
6
6
|
is the OpenAPI path key; the server pathname is empty (bare origin). streamMode is a pattern over the closed set and its
|
|
7
7
|
comma-separated combinations (`values` never combines). hostEvents has a real address (RFC 0171 §E.1) — the documented
|