@openwop/spec-artifacts 2.42.6 → 2.42.8
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 +70 -67
- package/api/seams-v2.yaml +238 -322
- package/api/v2/asyncapi.yaml +83 -113
- package/api/v2/openapi.yaml +408 -724
- package/package.json +1 -1
- package/schemas/audit-verify-result.schema.json +2 -2
- package/schemas/v2/audit-verify-result.schema.json +2 -2
- package/schemas/v2/capabilities.schema.json +4 -7
- package/schemas/v2/error-envelope.schema.json +144 -69
- package/spec/v1/alias-detectors.json +6 -0
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v1/deprecations.json +22 -0
- package/spec/v1/gaps.json +188 -1
- package/spec/v1/migrations.json +18 -0
- package/spec/v2/README.md +35 -37
- package/spec/v2/core/capabilities.md +186 -119
- package/spec/v2/core/conformance.md +78 -27
- package/spec/v2/core/connection-packs.md +8 -3
- package/spec/v2/core/conversation.md +10 -4
- package/spec/v2/core/errors.md +30 -9
- package/spec/v2/core/events.md +116 -80
- package/spec/v2/core/form-content-packs.md +11 -13
- package/spec/v2/core/headers.md +23 -14
- package/spec/v2/core/host-services.md +22 -5
- package/spec/v2/core/i18n.md +64 -0
- package/spec/v2/core/idempotency.md +48 -36
- package/spec/v2/core/identity.md +110 -42
- package/spec/v2/core/interop.md +82 -21
- package/spec/v2/core/interrupt.md +79 -40
- package/spec/v2/core/node-pack-runtimes.md +18 -4
- package/spec/v2/core/oauth.md +40 -6
- package/spec/v2/core/overview.md +61 -33
- package/spec/v2/core/packs.md +53 -28
- package/spec/v2/core/persistence.md +61 -80
- package/spec/v2/core/portability.md +44 -0
- package/spec/v2/core/replay.md +56 -42
- package/spec/v2/core/runs.md +198 -60
- package/spec/v2/core/security-defaults.md +57 -33
- package/spec/v2/core/tool-catalog.md +29 -6
- package/spec/v2/core/versioning.md +115 -50
- package/spec/v2/core/webhooks.md +61 -20
- package/spec/v2/core/workflow-chain-packs.md +16 -14
- package/spec/v2/corrections.json +17 -1
- package/spec/v2/corrections.schema.json +1 -1
- package/spec/v2/declaration.json +26 -9
- package/spec/v2/declaration.schema.json +10 -0
- package/spec/v2/errors.json +121 -4
- package/spec/v2/errors.schema.json +38 -0
- package/spec/v2/ext/README.md +36 -23
- package/spec/v2/ext/a2uiSurface/README.md +75 -89
- package/spec/v2/ext/brand/README.md +15 -15
- package/spec/v2/ext/canvas/README.md +15 -15
- package/spec/v2/ext/chat/README.md +15 -15
- package/spec/v2/ext/coordination/README.md +15 -15
- package/spec/v2/ext/dataIntegration/README.md +17 -20
- package/spec/v2/ext/entities/README.md +15 -15
- package/spec/v2/ext/grpc-transport/README.md +6 -8
- package/spec/v2/ext/kanban/README.md +15 -15
- package/spec/v2/ext/knowledge/README.md +15 -15
- package/spec/v2/ext/launchStudio/README.md +16 -16
- package/spec/v2/ext/messaging/README.md +15 -15
- package/spec/v2/ext/portability/README.md +3 -17
- package/spec/v2/ext/provider-idempotency/README.md +7 -10
- package/spec/v2/ext/restTransport/README.md +30 -19
- package/spec/v2/ext/sandbox-runtime-notes/README.md +7 -9
- package/spec/v2/ext/webResearch/README.md +16 -16
- package/spec/v2/profiles.json +6 -2
- package/spec/v2/release.json +2 -2
- package/spec/v2/surface-baseline.json +544 -2
package/spec/v2/declaration.json
CHANGED
|
@@ -1624,7 +1624,7 @@
|
|
|
1624
1624
|
{
|
|
1625
1625
|
"key": "i18n",
|
|
1626
1626
|
"kind": "family",
|
|
1627
|
-
"normativeText": ["spec/
|
|
1627
|
+
"normativeText": ["spec/v2/core/i18n.md"],
|
|
1628
1628
|
"anchor": "core",
|
|
1629
1629
|
"section": "core/capabilities.md#i18n",
|
|
1630
1630
|
"peerDependencyId": "i18n",
|
|
@@ -1664,7 +1664,7 @@
|
|
|
1664
1664
|
{
|
|
1665
1665
|
"key": "portability",
|
|
1666
1666
|
"kind": "family",
|
|
1667
|
-
"normativeText": ["spec/
|
|
1667
|
+
"normativeText": ["spec/v2/core/portability.md"],
|
|
1668
1668
|
"anchor": "core",
|
|
1669
1669
|
"section": "core/capabilities.md#portability",
|
|
1670
1670
|
"peerDependencyId": "portability",
|
|
@@ -1734,10 +1734,11 @@
|
|
|
1734
1734
|
"anchor": "ext",
|
|
1735
1735
|
"section": "ext/restTransport/",
|
|
1736
1736
|
"peerDependencyId": "restTransport",
|
|
1737
|
-
"
|
|
1737
|
+
"extensionName": "rest-transport",
|
|
1738
|
+
"witness": "witnessable-gated",
|
|
1738
1739
|
"maturity": {
|
|
1739
1740
|
"technical": "experimental",
|
|
1740
|
-
"adoption": "
|
|
1741
|
+
"adoption": "single-witness"
|
|
1741
1742
|
},
|
|
1742
1743
|
"facets": [
|
|
1743
1744
|
"conditionalRunGet",
|
|
@@ -1746,7 +1747,7 @@
|
|
|
1746
1747
|
"floorScenarios": [],
|
|
1747
1748
|
"requirementIds": [],
|
|
1748
1749
|
"owningRfc": "0115",
|
|
1749
|
-
"reason": "RFC 0169 \u00a7C.5
|
|
1750
|
+
"reason": "RFC 0169 \u00a7C.5 moved it to ext/ as claims-check; RFC 0220 \u00a7C lands the behavioral witness (v2-ext-rest-transport), so the witness is witnessable-gated on the extensions.<org>.rest-transport claim. It stays ext/: becoming core takes its own RFC (ext/README.md)."
|
|
1750
1751
|
},
|
|
1751
1752
|
{
|
|
1752
1753
|
"key": "a2uiSurface",
|
|
@@ -1754,7 +1755,8 @@
|
|
|
1754
1755
|
"anchor": "ext",
|
|
1755
1756
|
"section": "ext/a2uiSurface/",
|
|
1756
1757
|
"peerDependencyId": "a2uiSurface",
|
|
1757
|
-
"
|
|
1758
|
+
"extensionName": "a2ui-surface",
|
|
1759
|
+
"witness": "seam-gated",
|
|
1758
1760
|
"maturity": {
|
|
1759
1761
|
"technical": "experimental",
|
|
1760
1762
|
"adoption": "none"
|
|
@@ -1765,7 +1767,7 @@
|
|
|
1765
1767
|
"floorScenarios": [],
|
|
1766
1768
|
"requirementIds": [],
|
|
1767
1769
|
"owningRfc": "0209",
|
|
1768
|
-
"reason": "RFC 0169 \u00a7C.5 (
|
|
1770
|
+
"reason": "RFC 0169 \u00a7C.5 (ext/); RFC 0220 \u00a7C: the witness is seam-gated (v2-a2ui-v09-surface drives the emit-surface seam; the family row is its family-witness leg); RFC 0209: the ext README is the v2 contract for `ui.a2ui-surface` schema version 2; facet `deltaTransport` deprecated for v2 (RFC 0197 retirement path)"
|
|
1769
1771
|
},
|
|
1770
1772
|
{
|
|
1771
1773
|
"key": "brand",
|
|
@@ -1773,6 +1775,7 @@
|
|
|
1773
1775
|
"anchor": "ext",
|
|
1774
1776
|
"section": "ext/brand/",
|
|
1775
1777
|
"peerDependencyId": "brand",
|
|
1778
|
+
"extensionName": "brand",
|
|
1776
1779
|
"witness": "claims-check",
|
|
1777
1780
|
"maturity": {
|
|
1778
1781
|
"technical": "experimental",
|
|
@@ -1790,6 +1793,7 @@
|
|
|
1790
1793
|
"anchor": "ext",
|
|
1791
1794
|
"section": "ext/canvas/",
|
|
1792
1795
|
"peerDependencyId": "canvas",
|
|
1796
|
+
"extensionName": "canvas",
|
|
1793
1797
|
"witness": "claims-check",
|
|
1794
1798
|
"maturity": {
|
|
1795
1799
|
"technical": "experimental",
|
|
@@ -1807,6 +1811,7 @@
|
|
|
1807
1811
|
"anchor": "ext",
|
|
1808
1812
|
"section": "ext/chat/",
|
|
1809
1813
|
"peerDependencyId": "chat",
|
|
1814
|
+
"extensionName": "chat",
|
|
1810
1815
|
"witness": "claims-check",
|
|
1811
1816
|
"maturity": {
|
|
1812
1817
|
"technical": "experimental",
|
|
@@ -1824,6 +1829,7 @@
|
|
|
1824
1829
|
"anchor": "ext",
|
|
1825
1830
|
"section": "ext/coordination/",
|
|
1826
1831
|
"peerDependencyId": "coordination",
|
|
1832
|
+
"extensionName": "coordination",
|
|
1827
1833
|
"witness": "claims-check",
|
|
1828
1834
|
"maturity": {
|
|
1829
1835
|
"technical": "experimental",
|
|
@@ -1841,6 +1847,7 @@
|
|
|
1841
1847
|
"anchor": "ext",
|
|
1842
1848
|
"section": "ext/dataIntegration/",
|
|
1843
1849
|
"peerDependencyId": "dataIntegration",
|
|
1850
|
+
"extensionName": "data-integration",
|
|
1844
1851
|
"witness": "claims-check",
|
|
1845
1852
|
"maturity": {
|
|
1846
1853
|
"technical": "experimental",
|
|
@@ -1858,6 +1865,7 @@
|
|
|
1858
1865
|
"anchor": "ext",
|
|
1859
1866
|
"section": "ext/entities/",
|
|
1860
1867
|
"peerDependencyId": "entities",
|
|
1868
|
+
"extensionName": "entities",
|
|
1861
1869
|
"witness": "claims-check",
|
|
1862
1870
|
"maturity": {
|
|
1863
1871
|
"technical": "experimental",
|
|
@@ -1875,6 +1883,7 @@
|
|
|
1875
1883
|
"anchor": "ext",
|
|
1876
1884
|
"section": "ext/kanban/",
|
|
1877
1885
|
"peerDependencyId": "kanban",
|
|
1886
|
+
"extensionName": "kanban",
|
|
1878
1887
|
"witness": "claims-check",
|
|
1879
1888
|
"maturity": {
|
|
1880
1889
|
"technical": "experimental",
|
|
@@ -1892,6 +1901,7 @@
|
|
|
1892
1901
|
"anchor": "ext",
|
|
1893
1902
|
"section": "ext/knowledge/",
|
|
1894
1903
|
"peerDependencyId": "knowledge",
|
|
1904
|
+
"extensionName": "knowledge",
|
|
1895
1905
|
"witness": "claims-check",
|
|
1896
1906
|
"maturity": {
|
|
1897
1907
|
"technical": "experimental",
|
|
@@ -1909,6 +1919,7 @@
|
|
|
1909
1919
|
"anchor": "ext",
|
|
1910
1920
|
"section": "ext/launchStudio/",
|
|
1911
1921
|
"peerDependencyId": "launchStudio",
|
|
1922
|
+
"extensionName": "launch-studio",
|
|
1912
1923
|
"witness": "claims-check",
|
|
1913
1924
|
"maturity": {
|
|
1914
1925
|
"technical": "experimental",
|
|
@@ -1926,6 +1937,7 @@
|
|
|
1926
1937
|
"anchor": "ext",
|
|
1927
1938
|
"section": "ext/messaging/",
|
|
1928
1939
|
"peerDependencyId": "messaging",
|
|
1940
|
+
"extensionName": "messaging",
|
|
1929
1941
|
"witness": "claims-check",
|
|
1930
1942
|
"maturity": {
|
|
1931
1943
|
"technical": "experimental",
|
|
@@ -1943,6 +1955,7 @@
|
|
|
1943
1955
|
"anchor": "ext",
|
|
1944
1956
|
"section": "ext/webResearch/",
|
|
1945
1957
|
"peerDependencyId": "webResearch",
|
|
1958
|
+
"extensionName": "web-research",
|
|
1946
1959
|
"witness": "claims-check",
|
|
1947
1960
|
"maturity": {
|
|
1948
1961
|
"technical": "experimental",
|
|
@@ -1958,6 +1971,7 @@
|
|
|
1958
1971
|
"profiles": [
|
|
1959
1972
|
{
|
|
1960
1973
|
"id": "openwop-discovery-core",
|
|
1974
|
+
"summary": "The host publishes a valid v2 discovery document and negotiates the protocol version; it makes no claim about running workflows.",
|
|
1961
1975
|
"predicate": {
|
|
1962
1976
|
"families": [],
|
|
1963
1977
|
"metadata": [
|
|
@@ -1974,6 +1988,7 @@
|
|
|
1974
1988
|
},
|
|
1975
1989
|
{
|
|
1976
1990
|
"id": "openwop-core-standard",
|
|
1991
|
+
"summary": "The host runs workflows to the executable floor: interrupts, replay, webhooks, idempotency and the event log. This is what an unqualified \"OpenWOP conformant\" claim means.",
|
|
1977
1992
|
"predicate": {
|
|
1978
1993
|
"families": [
|
|
1979
1994
|
"interrupt",
|
|
@@ -1996,13 +2011,15 @@
|
|
|
1996
2011
|
"v2-run-bulk-cancel",
|
|
1997
2012
|
"v2-run-pause-resume",
|
|
1998
2013
|
"v2-run-options-limits",
|
|
1999
|
-
"v2-sse-last-event-id"
|
|
2014
|
+
"v2-sse-last-event-id",
|
|
2015
|
+
"v2-sse-last-event-id-cursor"
|
|
2000
2016
|
],
|
|
2001
2017
|
"requirementIds": [],
|
|
2002
|
-
"note": "rc.59: five unaided run-surface witnesses joined the floor \u2014 v2-run-cancel (runs.md \u00a7Cancel: 409 run_terminal on a terminal run), v2-run-bulk-cancel (\u00a7Cancel: per-entry envelopes, id_tenant_mismatch / not_found, details.maxRunIds), v2-run-pause-resume (\u00a7Pause and resume: 409 run_terminal / run_state_conflict, the literal drainPolicy echo, the immediate cut), v2-run-options-limits (capabilities.md limits metadata honoured on create), v2-sse-last-event-id (events.md \u00a7SSE frames: Last-Event-ID resumes at the next sequence, never re-emits the resumption point). cancelRun, bulkCancelRuns and pauseRun are core operations by the runs.md surface table (only ancestry, annotations and eval-summary are 404-when-unadvertised), so a host that omits one is blocked, not inapplicable, and the floor refuses it \u2014 the prose's outcome. Their optional legs (values mode, the conformance-delay / conformance-cancellable fixtures) record inapplicable with the reason and the file row stays a witnessed pass. Measured before the change: the reference host passes all five (rc.58, 179 / 0 / 0 / 42); neither production host satisfies this predicate, so no existing claim moves. seeded from spec/v1/core-standard-manifest.json at P3-B; floor minted rc.45, one or more unaided witnesses per predicate family: interrupt (token scheme), replay (the effect-seam manifest \u2014 its seam-driven no-re-fire leg lives in v2-effect-seam-no-refire on the seams floor), webhooks (durable delivery), idempotency (Layer-1 key grammar), eventLog (era key, era stamp, closed event type, poll cursor). Deliberately absent: v2-pinned-run-disposition (seam-gated and opt-in), v2-v1-signed-webhook-accepted (a coexistence scenario, driven through the seam; the cut gate is its home), v2-effect-identity-business-key (retry leg seam-driven), v2-approver-enforced (conditional on the refKinds facet)."
|
|
2018
|
+
"note": "2.42.7: v2-sse-last-event-id-cursor joined the floor (events.md \u00a7SSE frames, RFC 0213 \u00a7A: Last-Event-ID is an exclusive cursor, a well-formed id past the log is not refused, and the header is read only after authorization). It was held off the floor until the three bundle hosts were measured. Measured on committed bundles, it is executed-pass on the v2 reference host (2.42.2), MyndHyve (2.42.0) and openwop-app (2.42.2 side revision); the first two carry partial-witness only for the SHOULD leg (a malformed id accepted, recorded not failed), so no existing claim moves. rc.59: five unaided run-surface witnesses joined the floor \u2014 v2-run-cancel (runs.md \u00a7Cancel: 409 run_terminal on a terminal run), v2-run-bulk-cancel (\u00a7Cancel: per-entry envelopes, id_tenant_mismatch / not_found, details.maxRunIds), v2-run-pause-resume (\u00a7Pause and resume: 409 run_terminal / run_state_conflict, the literal drainPolicy echo, the immediate cut), v2-run-options-limits (capabilities.md limits metadata honoured on create), v2-sse-last-event-id (events.md \u00a7SSE frames: Last-Event-ID resumes at the next sequence, never re-emits the resumption point). cancelRun, bulkCancelRuns and pauseRun are core operations by the runs.md surface table (only ancestry, annotations and eval-summary are 404-when-unadvertised), so a host that omits one is blocked, not inapplicable, and the floor refuses it \u2014 the prose's outcome. Their optional legs (values mode, the conformance-delay / conformance-cancellable fixtures) record inapplicable with the reason and the file row stays a witnessed pass. Measured before the change: the reference host passes all five (rc.58, 179 / 0 / 0 / 42); neither production host satisfies this predicate, so no existing claim moves. seeded from spec/v1/core-standard-manifest.json at P3-B; floor minted rc.45, one or more unaided witnesses per predicate family: interrupt (token scheme), replay (the effect-seam manifest \u2014 its seam-driven no-re-fire leg lives in v2-effect-seam-no-refire on the seams floor), webhooks (durable delivery), idempotency (Layer-1 key grammar), eventLog (era key, era stamp, closed event type, poll cursor). Deliberately absent: v2-pinned-run-disposition (seam-gated and opt-in), v2-v1-signed-webhook-accepted (a coexistence scenario, driven through the seam; the cut gate is its home), v2-effect-identity-business-key (retry leg seam-driven), v2-approver-enforced (conditional on the refKinds facet)."
|
|
2003
2019
|
},
|
|
2004
2020
|
{
|
|
2005
2021
|
"id": "openwop-conformance-seams-v2",
|
|
2022
|
+
"summary": "The host mounts the conformance test seams under /conformance/seams/ so the suite can drive seam-based scenarios; it is a testing surface, not a production feature.",
|
|
2006
2023
|
"predicate": {
|
|
2007
2024
|
"families": [],
|
|
2008
2025
|
"metadata": [
|
|
@@ -179,6 +179,11 @@
|
|
|
179
179
|
"peerDependencyId": {
|
|
180
180
|
"type": "string"
|
|
181
181
|
},
|
|
182
|
+
"extensionName": {
|
|
183
|
+
"type": "string",
|
|
184
|
+
"pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$",
|
|
185
|
+
"description": "RFC 0220 \u00a7A \u2014 ext families only (scripts/check-declaration.mjs requires it on every anchor: ext row and forbids it on core rows). The <name> half of the extensions key the family is advertised under, extensions[\"<org>.<extensionName>\"] (core/capabilities.md \u00a73.2). It is the kebab-case form of `key`: the family key is camelCase and cannot match extensionsKeyPattern, so a README that said `extensions.<org>.<key>` named a key no host could emit."
|
|
186
|
+
},
|
|
182
187
|
"witness": {
|
|
183
188
|
"enum": [
|
|
184
189
|
"witnessable-unaided",
|
|
@@ -283,6 +288,11 @@
|
|
|
283
288
|
"id": {
|
|
284
289
|
"type": "string"
|
|
285
290
|
},
|
|
291
|
+
"summary": {
|
|
292
|
+
"type": "string",
|
|
293
|
+
"minLength": 1,
|
|
294
|
+
"description": "One plain-English line: what claiming this profile means to an adopter. Carried into spec/v2/profiles.json."
|
|
295
|
+
},
|
|
286
296
|
"predicate": {
|
|
287
297
|
"type": "object",
|
|
288
298
|
"additionalProperties": false,
|