@openwop/spec-artifacts 2.0.0-rc.38 → 2.0.0-rc.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 +31 -33
- package/api/seams-v2.yaml +1 -1
- package/api/v2/asyncapi.yaml +1 -1
- package/api/v2/openapi.yaml +10 -9
- package/package.json +5 -18
- package/schemas/capabilities.schema.json +1 -40
- package/schemas/run-snapshot.schema.json +33 -103
- package/schemas/v2/agent-deployment-transition.schema.json +6 -5
- package/schemas/v2/agent-deployment.schema.json +9 -8
- package/schemas/v2/agent-eval-suite.schema.json +12 -11
- package/schemas/v2/artifact-type-pack-manifest.schema.json +18 -22
- package/schemas/v2/capabilities.schema.json +0 -39
- package/schemas/v2/certification-bundle.schema.json +1 -1
- package/schemas/v2/chat-card-pack-manifest.schema.json +15 -19
- package/schemas/v2/debug-bundle.schema.json +6 -6
- package/schemas/v2/eval-summary.schema.json +10 -17
- package/schemas/v2/goal.schema.json +5 -5
- package/schemas/v2/ids.schema.json +22 -120
- package/schemas/v2/node-pack-manifest.schema.json +31 -27
- package/schemas/v2/proposal.schema.json +8 -7
- package/schemas/v2/run-event-payloads.schema.json +242 -246
- package/schemas/v2/run-event.schema.json +126 -2
- package/schemas/v2/run-snapshot.schema.json +13 -34
- package/schemas/v2/workflow-chain-pack-manifest.schema.json +45 -41
- package/schemas/v2/workflow-definition.schema.json +36 -31
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v1/deprecations.json +67 -79
- package/spec/v1/deprecations.schema.json +7 -23
- package/spec/v1/extensions.json +2 -3
- package/spec/v2/declaration.json +0 -7
- package/spec/v2/release.json +2 -2
- package/schemas/v2/webhook-delivery.schema.json +0 -26
- package/spec/v2/id-field-bindings.json +0 -104
package/CORPUS-STAMP.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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.0.0-rc.
|
|
4
|
+
"version": "2.0.0-rc.8",
|
|
5
5
|
"corpusTag": null,
|
|
6
6
|
"files": {
|
|
7
7
|
"api/.redocly.lint-ignore.yaml": "bf5a8350b88a72fa43f59605ed8d903ed24b6cfccda5e45509c9f6ed9ee4e712",
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
"api/grpc/openwop.proto": "c3e72bb17cba514ee98feb6434e6c9b6ea6795bfd086489ec69fd882dd1ad977",
|
|
10
10
|
"api/openapi.yaml": "39081c59fb696159806b0f2f9a42e7e9ff830d622fcf2ad4159b21357580a955",
|
|
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": "135f40f745b11c557f69b9b1dc0004f4400df48135964cfa75f3c26036f75a7d",
|
|
13
|
+
"api/v2/asyncapi.yaml": "1470d4ee12b87b6bd6569f3b6b7f84f5cded66bae920734778cd0bec45144658",
|
|
14
|
+
"api/v2/openapi.yaml": "352105be576e2c93d18c55272c8604519213e7df9d6582df0fb8382c0a2c66cd",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"schemas/artifact-type-pack-manifest.schema.json": "13932ea58e819e01b3a0cc7a65590b70683dd5fe9208fc06c64c339943d3c4ce",
|
|
32
32
|
"schemas/audit-verify-result.schema.json": "e8fd013fb610ba5db27ab0113ec2eb18e7da5f9310dd3de2dd3dc87a259c21fe",
|
|
33
33
|
"schemas/budget-policy.schema.json": "3d4fe30ae129fe136ab9ece395f2a2a42a76360786b1b9a1d5f1cbc753eb5b39",
|
|
34
|
-
"schemas/capabilities.schema.json": "
|
|
34
|
+
"schemas/capabilities.schema.json": "e672c35d503532d8039b5552115f5ec150d60317f537f13180d830b0fe315947",
|
|
35
35
|
"schemas/certification-bundle-v2.schema.json": "2f85530dd04824a15810c94e96869362dee1e78396eca21fdd18e5501416bb7d",
|
|
36
36
|
"schemas/channel-presence-payload.schema.json": "f9d0ef4219814c2b765baf3e68cbe5eea2cb42379f516a93a0459dcd5f7db47e",
|
|
37
37
|
"schemas/channel-written-payload.schema.json": "54723a56bc5a35232f64544ca686ac1ac959a5fb05b32b2401facca6b3ef51a3",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"schemas/run-event.schema.json": "c70c06932b9831295042836213e617c8e946f20ddd49cf4e889b74d89d2175a8",
|
|
87
87
|
"schemas/run-options.schema.json": "f8241ece6ddc6527de9160d811d42c231b4f77b935f2e107b3c05608545c59ab",
|
|
88
88
|
"schemas/run-orchestrator-decided-event.schema.json": "17a43a3c44680a24d411141357a867b3caed6107d56de88fe2e062eaf93fa2c1",
|
|
89
|
-
"schemas/run-snapshot.schema.json": "
|
|
89
|
+
"schemas/run-snapshot.schema.json": "8a45f997beec0a2fa596f4631129a869cfbc37c9ad38583530ed11655301d2ab",
|
|
90
90
|
"schemas/security-advisory.schema.json": "9c550f0bf10a3193dcca4a127081fb66fe5dc1b6f729c4c17bfaea3ba3ce05fc",
|
|
91
91
|
"schemas/self-hosted-runner-dispatch-frame.schema.json": "3f1d7edd572c6747657299525d8e85329b93b6fadf670e3a19c74d53e725adec",
|
|
92
92
|
"schemas/self-hosted-runner-registration.schema.json": "6c781adf1bb915a9e47796494f4a527353cbbf72b480e5a05be4aac65a6d0c6e",
|
|
@@ -100,9 +100,9 @@
|
|
|
100
100
|
"schemas/ui-plugin-message.schema.json": "346638babf1f8ea7b161cde75c0038b518cd2cc5bf0631772e20a9b74c96b5dd",
|
|
101
101
|
"schemas/v2/a2a-task-state.schema.json": "aa9bd0c15f653b7ecdb17427d61b1bccaf8156972c4b1a437dd3a8afb717b318",
|
|
102
102
|
"schemas/v2/a2ui-surface-delta-frame.schema.json": "43c10ebfd13c987520f0448df92fe74b52b846833763dfbbd5d35636bf75e8d9",
|
|
103
|
-
"schemas/v2/agent-deployment-transition.schema.json": "
|
|
104
|
-
"schemas/v2/agent-deployment.schema.json": "
|
|
105
|
-
"schemas/v2/agent-eval-suite.schema.json": "
|
|
103
|
+
"schemas/v2/agent-deployment-transition.schema.json": "5871ec764f531b2d34a6bb8b2e16efd35aad642664ca6d41411ba8d699fd759e",
|
|
104
|
+
"schemas/v2/agent-deployment.schema.json": "61979201c850c69360a0840f3e23373284b5445b6c11212012ea53d33be9a6e7",
|
|
105
|
+
"schemas/v2/agent-eval-suite.schema.json": "77c4bb06f5e21584994d4b4aaafc2304904008a51f0c6d8892794d7074e4f6b5",
|
|
106
106
|
"schemas/v2/agent-inventory-response.schema.json": "bbf19724986a867a59ef51c115a43ece1cc4a003836b2f7f45dfefb3078db8f9",
|
|
107
107
|
"schemas/v2/agent-manifest.schema.json": "006ca6163ca8f9dc9fb91ca1ce01bd4c523f118680f6cbad971a4ac09e975381",
|
|
108
108
|
"schemas/v2/agent-org-chart.schema.json": "e64f1bcc6c0e9d3fc39c363e8e5e73b2b1fc49275b92f89b0cb941a7a80d67f2",
|
|
@@ -112,14 +112,14 @@
|
|
|
112
112
|
"schemas/v2/ai-envelope.schema.json": "0dc7dfbf032a37239ffd81fc2d67f999a40782ff5074866a56e414164cdee809",
|
|
113
113
|
"schemas/v2/annotation-create.schema.json": "c2fc19d055be29bc499e53c4975a562eb76981e12c521a82f63f5827ac6ff6c7",
|
|
114
114
|
"schemas/v2/annotation.schema.json": "75c6785775d00e62bc1282626c2c27eafde0f93a01c7e80e4e5e985055907475",
|
|
115
|
-
"schemas/v2/artifact-type-pack-manifest.schema.json": "
|
|
115
|
+
"schemas/v2/artifact-type-pack-manifest.schema.json": "c911757562e521cb4f31a47c097f562573b64087efe60c8acb81fd352367d300",
|
|
116
116
|
"schemas/v2/audit-verify-result.schema.json": "cb54c4d89ba5dfb73f49aa8959a980be65c2dc2a87a12f71ba36d3e836fe85da",
|
|
117
117
|
"schemas/v2/budget-policy.schema.json": "c7449daeb6e1d95e7a047b8c2814d3d54748697c27046972834874867d9b5f4c",
|
|
118
|
-
"schemas/v2/capabilities.schema.json": "
|
|
119
|
-
"schemas/v2/certification-bundle.schema.json": "
|
|
118
|
+
"schemas/v2/capabilities.schema.json": "b6191deddf6bee19470eee9a45bb520de0d17385c195de6e3b8c5cb6d9520238",
|
|
119
|
+
"schemas/v2/certification-bundle.schema.json": "5afcce118ac567d4aee790aebe258bfbb60aa2708c4602b26f835943aa67b2c3",
|
|
120
120
|
"schemas/v2/channel-presence-payload.schema.json": "9475d46f358d21c19126e78204987a5633979917a2293653354ef5c5e044d54e",
|
|
121
121
|
"schemas/v2/channel-written-payload.schema.json": "ccecff3c71a3275ad8db035ac0e04db25e6f8d23cf091ddbcd5a60d1be1cbb6b",
|
|
122
|
-
"schemas/v2/chat-card-pack-manifest.schema.json": "
|
|
122
|
+
"schemas/v2/chat-card-pack-manifest.schema.json": "566982ce509a96d1619d58a72e383eff0773fe43fc65e4bfc85a4fe158f4eaff",
|
|
123
123
|
"schemas/v2/compact-tool-descriptor.schema.json": "fc03f20c254c0ddc2cba7e7d5a6c46080ebd2cf9fae36f3c2510cbf88aadebdc",
|
|
124
124
|
"schemas/v2/compensation-policy.schema.json": "b3c1142637f5bf980f2b0bb67adb47e8cb7abb99a0405a4b6816ccf5d9c089d6",
|
|
125
125
|
"schemas/v2/compensation-projection.schema.json": "f46977c7076347b5473faa8c4bbe73d8321c33b33c98fff2f26ee7cbada4ed98",
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"schemas/v2/conversation-turn.schema.json": "4c24aa85dd83f6ad00945b4a13ee8ff0a071893e884011e9289a07e97d22989d",
|
|
130
130
|
"schemas/v2/credential-provenance.schema.json": "f86b09e94b1c524dec7d1c6353965665ae8891e9517faef6e742d639c5578c99",
|
|
131
131
|
"schemas/v2/credential-reference.schema.json": "ea699ce30f58fb2c32d4279158b3f730f70be7b2dc8c3037693a76e66eb3e001",
|
|
132
|
-
"schemas/v2/debug-bundle.schema.json": "
|
|
132
|
+
"schemas/v2/debug-bundle.schema.json": "e792a588131290bccce3042a279e8e57677018df94b0861bee2b2b98a9ea2124",
|
|
133
133
|
"schemas/v2/dispatch-config.schema.json": "4a7db312e6b4a14cf5b1ad2b71367878c77b6321cc456f5b3644dd6434e94cbd",
|
|
134
134
|
"schemas/v2/effect-ledger-projection.schema.json": "9e690f8e5dbf9aa7c82eef4bf7cf96c024f0f8626ad5bbaca3ff25ac63c7cab2",
|
|
135
135
|
"schemas/v2/effect-seam-manifest.schema.json": "3402a2956c810b2bfa9ec1ad0cb79d607ecea122cbe7d1e05184af006b06ef15",
|
|
@@ -142,21 +142,21 @@
|
|
|
142
142
|
"schemas/v2/envelopes/schema.response.schema.json": "d049a081267c06c28879c331b147f3ed821b14ccfd93005c67aff64db0a8c68e",
|
|
143
143
|
"schemas/v2/envelopes/ui.a2ui-surface.schema.json": "0a06fbbdc8ba797a6818c79336a98e211ac5ba5747945b4e4098072cd3974d79",
|
|
144
144
|
"schemas/v2/error-envelope.schema.json": "d550beeab958b528c8734fd32e74c438006b99172c5c586f9e0af20ef4b2bee7",
|
|
145
|
-
"schemas/v2/eval-summary.schema.json": "
|
|
145
|
+
"schemas/v2/eval-summary.schema.json": "dfc995c8481ed212e6f3d83de982547898a7938be8c891ddb0d3efe84352908d",
|
|
146
146
|
"schemas/v2/export-bundle.schema.json": "bd28905a7729437ab7f2ad8bb33e13a371b2bf5605a7eb2962a0d246de312d69",
|
|
147
147
|
"schemas/v2/form-content-pack-manifest.schema.json": "307884e57946703b6f86ec283034bf56beb68bea4a000743ebbc9eebeed31b07",
|
|
148
148
|
"schemas/v2/frontend-plugin-manifest.schema.json": "fed6b8ddb3056c53b1bfc91525410a4445a3c37a8bf9eb9f6f9964ffea26d993",
|
|
149
|
-
"schemas/v2/goal.schema.json": "
|
|
149
|
+
"schemas/v2/goal.schema.json": "d202ef21ed3dbff87c25fd4b553fa978862a3200999878d25c5918f6794b3060",
|
|
150
150
|
"schemas/v2/heartbeat-evaluated.schema.json": "4086b1ba1d0547c08b038dfb263ac89416a3e406430db1250156fb2f9b74f8d6",
|
|
151
151
|
"schemas/v2/heartbeat-state-changed.schema.json": "eb68d0082aa996650e3a6b8ccf32457f959cebc7e6728cc7c331b9d171a4bef6",
|
|
152
|
-
"schemas/v2/ids.schema.json": "
|
|
152
|
+
"schemas/v2/ids.schema.json": "0ccf5eb3ec0744296b3379f7ced3b46ec51d908705a4f03dc4404d42236ebe19",
|
|
153
153
|
"schemas/v2/localized-content-language-settings.schema.json": "92240f19a2b4b2f05ab41a797f703485a28813848035478e72f395edd04c1d35",
|
|
154
154
|
"schemas/v2/localized-content-page-response.schema.json": "476b5f2775b42e35e679814a4ce846a7be1d5311d3a748c10df4275a78b0fb27",
|
|
155
155
|
"schemas/v2/localized-content-page.schema.json": "717bb51fbc64d0b34eb0a4b35c8b463d08d505267bf251b4cbc67e0a016a567a",
|
|
156
156
|
"schemas/v2/localized-content-section.schema.json": "29c7bad0ad9ebc6c45211282e8afb3fdb35a4ca075ce0404b6e2c29f35fa5313",
|
|
157
157
|
"schemas/v2/memory-entry.schema.json": "290576ae84f4fef4cdf975932b87963283b11c50ea3d2654b32cd96aa6537c3d",
|
|
158
158
|
"schemas/v2/memory-list-options.schema.json": "f66703bccb68efb28391c273abb66aa117ee5b5ce475c477846ed700c336afcd",
|
|
159
|
-
"schemas/v2/node-pack-manifest.schema.json": "
|
|
159
|
+
"schemas/v2/node-pack-manifest.schema.json": "771328fa73691e7f08fca3c628c4e8ba68fa4e43529faaf1a6358aecf26b13f2",
|
|
160
160
|
"schemas/v2/orchestrator-decision.schema.json": "2da17538e84cfbe70151eb118f1ccf670cff58b8697148e394074d32ac4af6b4",
|
|
161
161
|
"schemas/v2/org-chart-responsibility-view.schema.json": "ebac7d2889bfd659bcf30311efb0d6eb0c7e940b972b6b62da69c7351b5bb586",
|
|
162
162
|
"schemas/v2/pack-lockfile.schema.json": "2685417702c105146b780cd99154296a46578fbb10d81c8c713348ee26fea898",
|
|
@@ -164,16 +164,16 @@
|
|
|
164
164
|
"schemas/v2/prompt-pack-manifest.schema.json": "a51667da3d601043d2c33fddaafa572e9dd7e47b8840393742b80eaf6238a1a5",
|
|
165
165
|
"schemas/v2/prompt-ref.schema.json": "11538fa36a7a652c93100cac4f1857eb4130137b546e3d94890618636d44b729",
|
|
166
166
|
"schemas/v2/prompt-template.schema.json": "494fc83028cb3af5dbb8a943d0e83b2348f7775e9fa02369162bcb58a6f81559",
|
|
167
|
-
"schemas/v2/proposal.schema.json": "
|
|
167
|
+
"schemas/v2/proposal.schema.json": "72623553611f00e87b4c7972d69ebeba73c2222b01ead75a44a0c2114b679fea",
|
|
168
168
|
"schemas/v2/registry-version-manifest.schema.json": "270704ebc6bae63be949efbf9503578938b103733db9da3cb8fcbee1cd7684dd",
|
|
169
169
|
"schemas/v2/residency.schema.json": "af2658a7104cbcacd0e20a91226271c4a77f91ef46ae97612768fe743e6091d8",
|
|
170
170
|
"schemas/v2/run-ancestry-response.schema.json": "907e36341ba83a2147a5d76963950b6dcd47506b663ecbccae9dfa553f3724d3",
|
|
171
171
|
"schemas/v2/run-diff-response.schema.json": "6ab6cd265dc7e0a2086c6659c46aa0e7b43e6302949f0adac5d7deb1c7c0ecd3",
|
|
172
|
-
"schemas/v2/run-event-payloads.schema.json": "
|
|
173
|
-
"schemas/v2/run-event.schema.json": "
|
|
172
|
+
"schemas/v2/run-event-payloads.schema.json": "8eb0e05e1bd3399b0e2654a1ec5a13198ac4ec8459a1fcbfd800ab2d0a0ae8c6",
|
|
173
|
+
"schemas/v2/run-event.schema.json": "4ec8eb048a79ca1343e00aa018acbf86814b5eda6768add6b17e8d7b83638fdf",
|
|
174
174
|
"schemas/v2/run-options.schema.json": "6d6052596ab0f17acfb00fdfc89907da7724f952e5ffbe1f81d94ba23d4c77cd",
|
|
175
175
|
"schemas/v2/run-orchestrator-decided-event.schema.json": "bb76e15ff72e669f12938684033b55dc567470e1a378e19ffc3fa0e4034ab5a7",
|
|
176
|
-
"schemas/v2/run-snapshot.schema.json": "
|
|
176
|
+
"schemas/v2/run-snapshot.schema.json": "e77bf491d11c1414e62ed84cbf0c1d7149279b133a2101dc8f5eec89d3e45204",
|
|
177
177
|
"schemas/v2/security-advisory.schema.json": "6a382f737730a738d634266315e9d335e5760020a0cdd9f30727c2f987a01770",
|
|
178
178
|
"schemas/v2/self-hosted-runner-dispatch-frame.schema.json": "d8129f11d4e731d17ea951e66faaea2086081d13958b62ceaaa359fd6637dd7d",
|
|
179
179
|
"schemas/v2/self-hosted-runner-registration.schema.json": "93d60003a668cacb0eeac37699ca2884c6b79332d9494cb9e0a1752ac8f8a16c",
|
|
@@ -186,9 +186,8 @@
|
|
|
186
186
|
"schemas/v2/trigger-subscription-registration.schema.json": "202f7ab9c29e78249e0ad04341ac53377b506d24a0cbfbb7bb54494e80165832",
|
|
187
187
|
"schemas/v2/trigger-subscription.schema.json": "074bec7f016aa9f4d60359c3a093296cc847045510f01e0a9dceaf4fa5084d12",
|
|
188
188
|
"schemas/v2/ui-plugin-message.schema.json": "879d65867c01656b3962d64283e66364dcb8f626ad26c5fcf2d2d55a79ae0ce9",
|
|
189
|
-
"schemas/v2/
|
|
190
|
-
"schemas/v2/workflow-
|
|
191
|
-
"schemas/v2/workflow-definition.schema.json": "da7e565cee6ecf3bcc9d46833bad224f579f8db8a378ae22ff3fbf58b1348f38",
|
|
189
|
+
"schemas/v2/workflow-chain-pack-manifest.schema.json": "d1e43617ebacc9b32d1faf98dc7a2074d3e25054f383a1c264b87a19047f674d",
|
|
190
|
+
"schemas/v2/workflow-definition.schema.json": "91e422faacb886c8a17fc86b6576d38b7bfd99a37aaff69c710dec598e361192",
|
|
192
191
|
"schemas/v2/workload-identity.schema.json": "1f589debfac6d70e0908da511550ec69a27b4bcc8314551cd843b6d923605efc",
|
|
193
192
|
"schemas/v2/workspace-file-create.schema.json": "b6b5260857318c3b67de0231ed15e3a746f525880a763e7b36a7854178dd10d0",
|
|
194
193
|
"schemas/v2/workspace-file.schema.json": "d2ed39e8c229dde33b56905c8df6f8b2ff056c97e1c5f615e3124baa54a6254f",
|
|
@@ -199,19 +198,19 @@
|
|
|
199
198
|
"schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
|
|
200
199
|
"spec/v1/alias-detectors.json": "fee4594ef49953953ffcd0b3813300067d16b3e65ebff2aac722034ac9b3f545",
|
|
201
200
|
"spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
|
|
202
|
-
"spec/v1/core-standard-manifest.json": "
|
|
203
|
-
"spec/v1/deprecations.json": "
|
|
204
|
-
"spec/v1/deprecations.schema.json": "
|
|
201
|
+
"spec/v1/core-standard-manifest.json": "3bc6be4271442cd38a445c20643be92ec1432d188807d6779cae40bf611adb03",
|
|
202
|
+
"spec/v1/deprecations.json": "520d79927a8ed43ccf62c207a7cf6cf7b19b16e00bbbbdf0410667e939c19d85",
|
|
203
|
+
"spec/v1/deprecations.schema.json": "4cdbbb8eb9c0092913a5704c943880f0c8581bcf0f640a7df5a84105d53c8aee",
|
|
205
204
|
"spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
|
|
206
205
|
"spec/v1/event-codemap.schema.json": "d52caf29071e3784d4c20259cdbd5a7b533986548a440bb632a80b82cadd7ea5",
|
|
207
|
-
"spec/v1/extensions.json": "
|
|
206
|
+
"spec/v1/extensions.json": "4d7ba68bae7c7f50cc655b94646ad25945a5dd63b703d43c1d015470141cd668",
|
|
208
207
|
"spec/v1/gaps.json": "96ca051cb20f1a669b355d67a89421c56fef28aa5e6710c9519f592f26af33a3",
|
|
209
208
|
"spec/v1/gaps.schema.json": "8fd83259f556553c9df0f53e7a82ca8c2a4771d471197f69b4e2ae0ceeacfd66",
|
|
210
209
|
"spec/v1/migrations.json": "8839497d6a4830b53fa7867014a8336f0d725ef2346352e54fb580b7947897af",
|
|
211
210
|
"spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
|
|
212
211
|
"spec/v1/operation-path-manifest.json": "5f5f4e3842669371730ebbd1aace3fb794192615f0018dc144f484ba5db82ac3",
|
|
213
212
|
"spec/v1/spec-gaps.json": "6cc9962c6b969f632e07a78b52a4f61447ff579e2990cbae989866f584a86042",
|
|
214
|
-
"spec/v2/declaration.json": "
|
|
213
|
+
"spec/v2/declaration.json": "892b6fae1e87f279ff75451f67ffab2a63ef883203f8066886bd60f165469348",
|
|
215
214
|
"spec/v2/declaration.schema.json": "b0881a76228dfbd1b85a2ec7b7259a60197f768344535cdb475db6ff719b0e54",
|
|
216
215
|
"spec/v2/errors.json": "ad1725dc7c11002450e8abc682858eb5c11952a0718ea8ef6bdb2fb5ae6e7e21",
|
|
217
216
|
"spec/v2/event-codemap.json": "37869a03cdfd8758b57e6f350641a6ebbd383231cebda51f5473ad85f94ab74c",
|
|
@@ -226,11 +225,10 @@
|
|
|
226
225
|
"spec/v2/facets/replay.schema.json": "0a5aefb0108c708c6794fadd533cf256709704c4f16dbf44cd63fa8980c78018",
|
|
227
226
|
"spec/v2/facets/sandbox.schema.json": "e75f54486d387b2d089791aa93b5093cd1450f1920753a0f97fc23acdfe978ed",
|
|
228
227
|
"spec/v2/facets/webhooks.schema.json": "0b766033ef4b4c6c2ac6f9979a19843ba024d3a1d1576972dcb55aaba52f1b9a",
|
|
229
|
-
"spec/v2/id-field-bindings.json": "965814020c462ad13840b41b26f6830ac472734a1e2e5a67140fad92174c0370",
|
|
230
228
|
"spec/v2/path-manifest.json": "034152e09b1458c66810d4050e20a273b2b9b8fe2d92b66e8b819477de58a1be",
|
|
231
229
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
232
230
|
"spec/v2/profiles.json": "1f0ee40491131cf561ef19a0394c47ba476b4567514fe16befb6cada4a10a5a4",
|
|
233
|
-
"spec/v2/release.json": "
|
|
231
|
+
"spec/v2/release.json": "f2ef4468ef76f5da0580bd7ca2b8f2237fb4e4ce82f81afba34b1819bc238e68"
|
|
234
232
|
},
|
|
235
|
-
"corpusCommit": "
|
|
233
|
+
"corpusCommit": "fa9baad71198fd4994360a8331dbbffd41165bd4"
|
|
236
234
|
}
|
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.0.0-rc.
|
|
4
|
+
version: 2.0.0-rc.8
|
|
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
|
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.0.0-rc.
|
|
4
|
+
version: 2.0.0-rc.8
|
|
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
|
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.0.0-rc.
|
|
4
|
+
version: 2.0.0-rc.8
|
|
5
5
|
summary: REST surface for declaring, executing, suspending, resuming, and observing multi-step workflows.
|
|
6
6
|
description: GENERATED by scripts/derive-v2-api.py from api/openapi.yaml and the RFC 0167 children (v2 charter Phase 3,
|
|
7
7
|
P3-C). Bare origin, unversioned path keys, negotiation by `OpenWOP-Version` + `protocolVersions[]` (RFC 0172 §A). No seam
|
|
@@ -1069,7 +1069,9 @@ paths:
|
|
|
1069
1069
|
minItems: 1
|
|
1070
1070
|
maxItems: 100
|
|
1071
1071
|
items:
|
|
1072
|
-
|
|
1072
|
+
type: string
|
|
1073
|
+
minLength: 1
|
|
1074
|
+
maxLength: 128
|
|
1073
1075
|
reason:
|
|
1074
1076
|
type: string
|
|
1075
1077
|
maxLength: 512
|
|
@@ -3044,18 +3046,17 @@ components:
|
|
|
3044
3046
|
name: workflowId
|
|
3045
3047
|
required: true
|
|
3046
3048
|
schema:
|
|
3047
|
-
|
|
3049
|
+
type: string
|
|
3050
|
+
minLength: 1
|
|
3051
|
+
maxLength: 128
|
|
3048
3052
|
RunId:
|
|
3049
3053
|
in: path
|
|
3050
3054
|
name: runId
|
|
3051
3055
|
required: true
|
|
3052
3056
|
schema:
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
identifier and MUST be percent-encoded as `%2F` in the path segment.
|
|
3057
|
-
|
|
3058
|
-
'
|
|
3057
|
+
type: string
|
|
3058
|
+
minLength: 1
|
|
3059
|
+
maxLength: 128
|
|
3059
3060
|
IdempotencyKey:
|
|
3060
3061
|
in: header
|
|
3061
3062
|
name: Idempotency-Key
|
package/package.json
CHANGED
|
@@ -1,23 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/spec-artifacts",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
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
|
|
3
|
+
"version": "2.0.0-rc.8",
|
|
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
|
-
"repository": {
|
|
7
|
-
|
|
8
|
-
"url": "git+https://github.com/openwop/openwop.git",
|
|
9
|
-
"directory": "spec-artifacts"
|
|
10
|
-
},
|
|
11
|
-
"files": [
|
|
12
|
-
"api",
|
|
13
|
-
"schemas",
|
|
14
|
-
"spec",
|
|
15
|
-
"CORPUS-STAMP.json",
|
|
16
|
-
"README.md",
|
|
17
|
-
"LICENSE"
|
|
18
|
-
],
|
|
6
|
+
"repository": { "type": "git", "url": "git+https://github.com/openwop/openwop.git", "directory": "spec-artifacts" },
|
|
7
|
+
"files": ["api", "schemas", "spec", "CORPUS-STAMP.json", "README.md", "LICENSE"],
|
|
19
8
|
"sideEffects": false,
|
|
20
|
-
"publishConfig": {
|
|
21
|
-
"access": "public"
|
|
22
|
-
}
|
|
9
|
+
"publishConfig": { "access": "public" }
|
|
23
10
|
}
|
|
@@ -1089,7 +1089,7 @@
|
|
|
1089
1089
|
"confidenceEscalationFloor": {
|
|
1090
1090
|
"type": "number",
|
|
1091
1091
|
"minimum": 0.5,
|
|
1092
|
-
"maximum": 1,
|
|
1092
|
+
"maximum": 1.0,
|
|
1093
1093
|
"description": "RFC 0039 §A. Operator-declared confidence floor at or above the spec floor of 0.5; when an OrchestratorDecision carries `confidence` below this floor, the host MUST escalate via a `clarify` or `escalate` interrupt instead of executing the decision. Absent: the spec floor 0.5 applies. Values < 0.5 are non-conformant; values > 1.0 are nonsense. Applies only when `version >= 2`."
|
|
1094
1094
|
},
|
|
1095
1095
|
"confidenceEscalationInterruptKind": {
|
|
@@ -4154,45 +4154,6 @@
|
|
|
4154
4154
|
"description": "RFC 0114. Host delivers RFC 6902 (`a2ui-surface-delta-frame.schema.json`) delta frames over the run event stream to subscribers that negotiate `?a2uiDelta=1`; the full surface is materialized for everyone else, the event-log read, and replay. The recorded `ui.a2ui-surface` envelope stays full. The consumer re-validates the post-patch surface against the closed `catalogVersion` catalog before render and falls back fail-closed on any apply/validation failure (the host then re-materializes full)."
|
|
4155
4155
|
}
|
|
4156
4156
|
}
|
|
4157
|
-
},
|
|
4158
|
-
"signingKeys": {
|
|
4159
|
-
"type": "array",
|
|
4160
|
-
"description": "RFC 0168 §E.2, v1.x additive half (the same shape RFC 0179 used for root `preferredVersion`). The public keys this host signs certification bundles with; a bundle signature names a `keyId` and a verifier resolves it HERE. OPTIONAL in v1.x. It belongs on the v1 root and not only the v2 root because a certification bundle is v3 REGARDLESS OF MAJOR: under the one-package decision (RFC 0168 §D.3) a v1 host measured by a 2.x suite at `--target-major 1` emits a v3 bundle whose signature needs attribution exactly as much as a v2 host does, and a v1-only host has only this document to hand a verifier. Without it, every v1 host bundle is permanently unattributable: the signature attests INTEGRITY only — that the bundle was not altered after signing — and says nothing about who signed it, because a signer can mint a keypair and a key id at will. A host that publishes no key MUST NOT be read as having made a verifiable claim.",
|
|
4161
|
-
"items": {
|
|
4162
|
-
"type": "object",
|
|
4163
|
-
"required": [
|
|
4164
|
-
"keyId",
|
|
4165
|
-
"alg",
|
|
4166
|
-
"publicKey"
|
|
4167
|
-
],
|
|
4168
|
-
"properties": {
|
|
4169
|
-
"keyId": {
|
|
4170
|
-
"type": "string",
|
|
4171
|
-
"pattern": "^[A-Za-z0-9._~-]{1,128}$",
|
|
4172
|
-
"description": "The identifier a bundle signature carries in `signature.keyId`. Unique within this array."
|
|
4173
|
-
},
|
|
4174
|
-
"alg": {
|
|
4175
|
-
"const": "ed25519",
|
|
4176
|
-
"description": "RFC 0168 §E.2 fixes the attestation algorithm; no other value is defined."
|
|
4177
|
-
},
|
|
4178
|
-
"publicKey": {
|
|
4179
|
-
"type": "string",
|
|
4180
|
-
"pattern": "^[A-Za-z0-9_-]{43}$",
|
|
4181
|
-
"description": "The Ed25519 public key: raw 32 bytes, base64url, unpadded — NOT PEM. One encoding on purpose; admitting two would mean every verifier handles both. Note that a plausible 43-character string can still fail to import as a curve point, so a publisher SHOULD verify the value imports as a real Ed25519 key rather than only checking its shape."
|
|
4182
|
-
},
|
|
4183
|
-
"use": {
|
|
4184
|
-
"enum": [
|
|
4185
|
-
"certification-bundle"
|
|
4186
|
-
],
|
|
4187
|
-
"description": "What the key signs. Closed, so a future use is an explicit addition rather than a reinterpretation of a key already published for something else."
|
|
4188
|
-
},
|
|
4189
|
-
"retiredAt": {
|
|
4190
|
-
"type": "string",
|
|
4191
|
-
"format": "date-time",
|
|
4192
|
-
"description": "When the key stopped signing. A retired key MUST stay listed: dropping it silently invalidates every bundle it already signed, which is the opposite of what an evidence trail is for."
|
|
4193
|
-
}
|
|
4194
|
-
}
|
|
4195
|
-
}
|
|
4196
4157
|
}
|
|
4197
4158
|
},
|
|
4198
4159
|
"additionalProperties": true
|
|
@@ -4,11 +4,7 @@
|
|
|
4
4
|
"title": "RunSnapshot",
|
|
5
5
|
"description": "Projected run state returned by `GET /v1/runs/{runId}`. Source is the run's append-only event log (run-event.schema.json) folded through the `RunProjection`. Forward-compat tolerant: readers MUST ignore unknown fields rather than reject.",
|
|
6
6
|
"type": "object",
|
|
7
|
-
"required": [
|
|
8
|
-
"runId",
|
|
9
|
-
"workflowId",
|
|
10
|
-
"status"
|
|
11
|
-
],
|
|
7
|
+
"required": ["runId", "workflowId", "status"],
|
|
12
8
|
"properties": {
|
|
13
9
|
"runId": {
|
|
14
10
|
"type": "string",
|
|
@@ -35,82 +31,50 @@
|
|
|
35
31
|
"cancelling",
|
|
36
32
|
"cancelled"
|
|
37
33
|
],
|
|
38
|
-
"description": "Current run state. `waiting-external` MUST be used when the suspended interrupt's `kind` is `external-event` per `interrupt-profiles.md
|
|
34
|
+
"description": "Current run state. `waiting-external` MUST be used when the suspended interrupt's `kind` is `external-event` per `interrupt-profiles.md §openwop-interrupt-external-event` — distinguishes external-event waits from HITL waits at the wire level. `cancelling` (RFC 0094 §B) is the transitional state between a cancel request being accepted and the terminal `cancelled` — `rest-endpoints.md` and the OpenAPI cancel responses already document the transition; a snapshot read during the cancel cascade carries it. Forward-compat: future statuses MAY be added; readers SHOULD treat unknown values as terminal-unknown rather than throw."
|
|
39
35
|
},
|
|
40
36
|
"compensationStatus": {
|
|
41
37
|
"type": "string",
|
|
42
|
-
"enum": [
|
|
43
|
-
|
|
44
|
-
"pending",
|
|
45
|
-
"running",
|
|
46
|
-
"completed",
|
|
47
|
-
"partial",
|
|
48
|
-
"failed",
|
|
49
|
-
"manual"
|
|
50
|
-
],
|
|
51
|
-
"description": "RFC 0151 \u00a7D \u2014 the run's compensation (unwind) rollup, kept separate from `status` on purpose: `status` is the FORWARD execution state and a closed union exported by the SDK, so RFC 0151 forbids reinterpreting it (there is deliberately no `compensating` run status). OPTIONAL and capability-gated \u2014 a host that does not advertise `capabilities.compensation` MUST omit this field; a host that advertises it MUST include it on every snapshot, `none` when no compensation was ever requested for the run. Presence is therefore a wire witness of the advert, and a `none` cannot be read as \"unwind is monitored here\" from a host that would never unwind. Values are the deterministic fold of the six `compensation.*` events over the persisted plan, defined normatively in `spec/v1/compensation.md \u00a7\"Run rollup: compensationStatus\"`: `none` (no `compensation.requested`), `pending` (requested, no `started`), `running` (started, plan active \u2014 a \u00a7E approval pause does NOT change it; the run's own `status: waiting-approval` carries the wait), `completed` (every inverse action completed), `partial` (plan inactive; some completed and some did not \u2014 reported, never rounded), `failed` (plan inactive; none completed), `manual` (`manual_intervention_required` recorded and unresolved; takes precedence over `partial`/`failed` while unresolved). Content-free by construction. Resolves RFC 0151 UQ3: `RunSnapshot` (`GET /v1/runs/{runId}`) is the sole owner; debug bundles and the AsyncAPI `run.snapshot` reuse it by `$ref`."
|
|
38
|
+
"enum": ["none", "pending", "running", "completed", "partial", "failed", "manual"],
|
|
39
|
+
"description": "RFC 0151 §D — the run's compensation (unwind) rollup, kept separate from `status` on purpose: `status` is the FORWARD execution state and a closed union exported by the SDK, so RFC 0151 forbids reinterpreting it (there is deliberately no `compensating` run status). OPTIONAL and capability-gated — a host that does not advertise `capabilities.compensation` MUST omit this field; a host that advertises it MUST include it on every snapshot, `none` when no compensation was ever requested for the run. Presence is therefore a wire witness of the advert, and a `none` cannot be read as \"unwind is monitored here\" from a host that would never unwind. Values are the deterministic fold of the six `compensation.*` events over the persisted plan, defined normatively in `spec/v1/compensation.md §\"Run rollup: compensationStatus\"`: `none` (no `compensation.requested`), `pending` (requested, no `started`), `running` (started, plan active — a §E approval pause does NOT change it; the run's own `status: waiting-approval` carries the wait), `completed` (every inverse action completed), `partial` (plan inactive; some completed and some did not — reported, never rounded), `failed` (plan inactive; none completed), `manual` (`manual_intervention_required` recorded and unresolved; takes precedence over `partial`/`failed` while unresolved). Content-free by construction. Resolves RFC 0151 UQ3: `RunSnapshot` (`GET /v1/runs/{runId}`) is the sole owner; debug bundles and the AsyncAPI `run.snapshot` reuse it by `$ref`."
|
|
52
40
|
},
|
|
53
41
|
"owner": {
|
|
54
42
|
"type": "object",
|
|
55
|
-
"description": "RFC 0048. The identity triple that owns this run. Redaction-safe
|
|
56
|
-
"required": [
|
|
57
|
-
"tenant"
|
|
58
|
-
],
|
|
43
|
+
"description": "RFC 0048. The identity triple that owns this run. Redaction-safe — `principal` is an opaque identifier, never PII or credential material. Optional: single-tenant hosts omit it. A principal scoped to one `workspace` MUST NOT read a run owned by another (`run_forbidden`).",
|
|
44
|
+
"required": ["tenant"],
|
|
59
45
|
"properties": {
|
|
60
|
-
"tenant": {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"description": "Top-level isolation boundary."
|
|
64
|
-
},
|
|
65
|
-
"workspace": {
|
|
66
|
-
"type": "string",
|
|
67
|
-
"minLength": 1,
|
|
68
|
-
"description": "Optional sub-tenant within the tenant (RFC 0048 workspace)."
|
|
69
|
-
},
|
|
70
|
-
"principal": {
|
|
71
|
-
"type": "string",
|
|
72
|
-
"minLength": 1,
|
|
73
|
-
"description": "Acting identity (user or agent) \u2014 opaque id, never PII."
|
|
74
|
-
},
|
|
46
|
+
"tenant": { "type": "string", "minLength": 1, "description": "Top-level isolation boundary." },
|
|
47
|
+
"workspace": { "type": "string", "minLength": 1, "description": "Optional sub-tenant within the tenant (RFC 0048 workspace)." },
|
|
48
|
+
"principal": { "type": "string", "minLength": 1, "description": "Acting identity (user or agent) — opaque id, never PII." },
|
|
75
49
|
"subject": {
|
|
76
50
|
"$ref": "subject.schema.json",
|
|
77
51
|
"description": "RFC 0165 \u00a7B. OPTIONAL issuer-scoped Subject record for the acting identity. When present: `subject.tenant` MUST equal `tenant`, `subject.subjectId` MUST equal `principal` when both are present, `subject.kind` MUST equal `principalKind` when both are present. A host that emits it on new runs synthesizes `issuer: \"urn:openwop:legacy\"` for runs that predate emission (\u00a7B.3) and copies it verbatim onto forks (\u00a7B.4)."
|
|
78
52
|
},
|
|
79
53
|
"principalKind": {
|
|
80
54
|
"type": "string",
|
|
81
|
-
"enum": [
|
|
82
|
-
|
|
83
|
-
"agent",
|
|
84
|
-
"anonymous"
|
|
85
|
-
],
|
|
86
|
-
"description": "RFC 0132. The kind of the acting principal. OPTIONAL and EXPLICIT \u2014 absent \u21d2 unconstrained (today's RFC 0048 behavior; a host that does not distinguish kinds omits it). `anonymous` \u21d2 the RFC 0132 \u00a7A anonymous-actor rules and the \u00a7C default-deny per-surface grant bind: the `principal` id MUST be opaque, origin-bound, ephemeral, non-cross-linkable, non-PII, and never inherit a role or a default-on tool baseline. A host that advertises `capabilities.anonymousActor` and dispatches through a public surface MUST set `anonymous` on the resulting run. Resolves RFC 0048 \u00a7Unresolved-Q1 for the anonymous case."
|
|
55
|
+
"enum": ["user", "agent", "anonymous"],
|
|
56
|
+
"description": "RFC 0132. The kind of the acting principal. OPTIONAL and EXPLICIT — absent ⇒ unconstrained (today's RFC 0048 behavior; a host that does not distinguish kinds omits it). `anonymous` ⇒ the RFC 0132 §A anonymous-actor rules and the §C default-deny per-surface grant bind: the `principal` id MUST be opaque, origin-bound, ephemeral, non-cross-linkable, non-PII, and never inherit a role or a default-on tool baseline. A host that advertises `capabilities.anonymousActor` and dispatches through a public surface MUST set `anonymous` on the resulting run. Resolves RFC 0048 §Unresolved-Q1 for the anonymous case."
|
|
87
57
|
}
|
|
88
58
|
},
|
|
89
59
|
"additionalProperties": false
|
|
90
60
|
},
|
|
91
61
|
"currentNodeId": {
|
|
92
62
|
"type": "string",
|
|
93
|
-
"description": "Set when the run is suspended at a specific node (`waiting-approval` / `waiting-input` / `waiting-external`)
|
|
94
|
-
},
|
|
95
|
-
"startedAt": {
|
|
96
|
-
"type": "string",
|
|
97
|
-
"format": "date-time"
|
|
98
|
-
},
|
|
99
|
-
"completedAt": {
|
|
100
|
-
"type": "string",
|
|
101
|
-
"format": "date-time"
|
|
63
|
+
"description": "Set when the run is suspended at a specific node (`waiting-approval` / `waiting-input` / `waiting-external`) — identifies which node holds the interrupt."
|
|
102
64
|
},
|
|
65
|
+
"startedAt": { "type": "string", "format": "date-time" },
|
|
66
|
+
"completedAt": { "type": "string", "format": "date-time" },
|
|
103
67
|
"agent": {
|
|
104
68
|
"$ref": "agent-ref.schema.json",
|
|
105
|
-
"description": "Optional run-level agent identity (Multi-Agent Shift Phase 1). When the run is driven by a single agent, this field carries that agent's `AgentRef`. In supervisor-orchestrated runs (Phase 5), this field rotates as workers hand off
|
|
69
|
+
"description": "Optional run-level agent identity (Multi-Agent Shift Phase 1). When the run is driven by a single agent, this field carries that agent's `AgentRef`. In supervisor-orchestrated runs (Phase 5), this field rotates as workers hand off — it always carries the active worker for the current node. See `runOrchestrator` for the run-lifetime supervisor identity. Absent for runs with no agent provenance (legacy single-actor host)."
|
|
106
70
|
},
|
|
107
71
|
"runOrchestrator": {
|
|
108
72
|
"$ref": "agent-ref.schema.json",
|
|
109
|
-
"description": "Optional orchestrator-supervisor identity (Multi-Agent Shift Phase 5). When set, this agent owns dispatch decisions across the run's lifetime; `runOrchestrator.decided` events emitted during the run carry this agent's `agentId`. Distinct from `agent`
|
|
73
|
+
"description": "Optional orchestrator-supervisor identity (Multi-Agent Shift Phase 5). When set, this agent owns dispatch decisions across the run's lifetime; `runOrchestrator.decided` events emitted during the run carry this agent's `agentId`. Distinct from `agent` — `agent` rotates with each worker; `runOrchestrator` is set at run start (or first `core.orchestrator.supervisor` node) and MUST NOT change for the run's lifetime. In single-agent runs (no supervisor), this field is absent; in supervisor runs both fields MAY co-exist."
|
|
110
74
|
},
|
|
111
75
|
"nodeStates": {
|
|
112
76
|
"type": "object",
|
|
113
|
-
"description": "Per-node state map. Keys are nodeIds; values are implementation-shaped state objects. Spec doesn't constrain the inner shape
|
|
77
|
+
"description": "Per-node state map. Keys are nodeIds; values are implementation-shaped state objects. Spec doesn't constrain the inner shape — see version-negotiation.md §node-states."
|
|
114
78
|
},
|
|
115
79
|
"variables": {
|
|
116
80
|
"type": "object",
|
|
@@ -123,40 +87,26 @@
|
|
|
123
87
|
"error": {
|
|
124
88
|
"type": "object",
|
|
125
89
|
"description": "Set on terminal `failed`. Structured so consumers can route on code without parsing message text.",
|
|
126
|
-
"required": [
|
|
127
|
-
"code",
|
|
128
|
-
"message"
|
|
129
|
-
],
|
|
90
|
+
"required": ["code", "message"],
|
|
130
91
|
"properties": {
|
|
131
|
-
"code": {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
},
|
|
135
|
-
"message": {
|
|
136
|
-
"type": "string",
|
|
137
|
-
"minLength": 1
|
|
138
|
-
},
|
|
139
|
-
"details": {
|
|
140
|
-
"type": "object"
|
|
141
|
-
}
|
|
92
|
+
"code": { "type": "string", "minLength": 1 },
|
|
93
|
+
"message": { "type": "string", "minLength": 1 },
|
|
94
|
+
"details": { "type": "object" }
|
|
142
95
|
},
|
|
143
96
|
"additionalProperties": false
|
|
144
97
|
},
|
|
145
98
|
"engineVersion": {
|
|
146
|
-
"type": "
|
|
147
|
-
"description": "Engine version the run was started under. Used by the projection for forward-compat folds.
|
|
99
|
+
"type": "string",
|
|
100
|
+
"description": "Engine version the run was started under. Used by the projection for forward-compat folds."
|
|
148
101
|
},
|
|
149
102
|
"eventLogSchemaVersion": {
|
|
150
103
|
"type": "integer",
|
|
151
104
|
"minimum": 0,
|
|
152
|
-
"description": "Per-run event-log subcollection schema version. See version-negotiation.md.
|
|
105
|
+
"description": "Per-run event-log subcollection schema version. See version-negotiation.md."
|
|
153
106
|
},
|
|
154
107
|
"tags": {
|
|
155
108
|
"type": "array",
|
|
156
|
-
"items": {
|
|
157
|
-
"type": "string",
|
|
158
|
-
"maxLength": 256
|
|
159
|
-
},
|
|
109
|
+
"items": { "type": "string", "maxLength": 256 },
|
|
160
110
|
"maxItems": 100,
|
|
161
111
|
"description": "Caller-supplied tags from `RunOptions.tags`."
|
|
162
112
|
},
|
|
@@ -170,44 +120,24 @@
|
|
|
170
120
|
},
|
|
171
121
|
"metrics": {
|
|
172
122
|
"type": "object",
|
|
173
|
-
"description": "Aggregate run-level metrics. Forward-compat: readers MUST tolerate missing/unknown fields. Fields are populated lazily as the engine emits them
|
|
123
|
+
"description": "Aggregate run-level metrics. Forward-compat: readers MUST tolerate missing/unknown fields. Fields are populated lazily as the engine emits them — absence does NOT mean zero. Implementation-specific fields (e.g., legacy `cost: number` estimates) MAY appear alongside the spec-canonical fields below.",
|
|
174
124
|
"properties": {
|
|
175
125
|
"openwopCost": {
|
|
176
126
|
"type": "object",
|
|
177
|
-
"description": "Spec-canonical cost rollup aggregated from per-node `recordCost()` calls. Keys mirror the `openwop.cost.*` OTel attribute allowlist (see `observability.md`
|
|
127
|
+
"description": "Spec-canonical cost rollup aggregated from per-node `recordCost()` calls. Keys mirror the `openwop.cost.*` OTel attribute allowlist (see `observability.md` §Cost attribution). Named `openwopCost` rather than `cost` because some implementations carry a legacy `metrics.cost: number` estimate that predates the typed rollup; using a distinct name avoids collision. Multi-provider runs report `provider`/`model` of the LAST contributing call; SDKs that need per-call detail SHOULD subscribe to OTel spans instead of reading this rollup.",
|
|
178
128
|
"properties": {
|
|
179
|
-
"usd": {
|
|
180
|
-
"type": "number",
|
|
181
|
-
"minimum": 0,
|
|
182
|
-
"description": "Total USD cost across all node-level recordCost emissions."
|
|
183
|
-
},
|
|
129
|
+
"usd": { "type": "number", "minimum": 0, "description": "Total USD cost across all node-level recordCost emissions." },
|
|
184
130
|
"tokens": {
|
|
185
131
|
"type": "object",
|
|
186
132
|
"properties": {
|
|
187
|
-
"input": {
|
|
188
|
-
|
|
189
|
-
"minimum": 0
|
|
190
|
-
},
|
|
191
|
-
"output": {
|
|
192
|
-
"type": "integer",
|
|
193
|
-
"minimum": 0
|
|
194
|
-
}
|
|
133
|
+
"input": { "type": "integer", "minimum": 0 },
|
|
134
|
+
"output": { "type": "integer", "minimum": 0 }
|
|
195
135
|
},
|
|
196
136
|
"additionalProperties": false
|
|
197
137
|
},
|
|
198
|
-
"model": {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
},
|
|
202
|
-
"provider": {
|
|
203
|
-
"type": "string",
|
|
204
|
-
"description": "Normalized provider name (e.g., `anthropic`, `openai`, `gemini`)."
|
|
205
|
-
},
|
|
206
|
-
"duration_ms": {
|
|
207
|
-
"type": "integer",
|
|
208
|
-
"minimum": 0,
|
|
209
|
-
"description": "Sum of per-call durations across all recordCost emissions in this run."
|
|
210
|
-
}
|
|
138
|
+
"model": { "type": "string", "description": "Model identifier of the most recent recordCost emission (e.g., `claude-opus-4-7`). For multi-model runs, surfaces the last value." },
|
|
139
|
+
"provider": { "type": "string", "description": "Normalized provider name (e.g., `anthropic`, `openai`, `gemini`)." },
|
|
140
|
+
"duration_ms": { "type": "integer", "minimum": 0, "description": "Sum of per-call durations across all recordCost emissions in this run." }
|
|
211
141
|
},
|
|
212
142
|
"additionalProperties": false
|
|
213
143
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://openwop.dev/spec/v2/agent-deployment-transition.schema.json",
|
|
4
4
|
"title": "AgentDeploymentTransition",
|
|
5
|
-
"description": "RFC 0082
|
|
5
|
+
"description": "RFC 0082 §E. The request body of POST /v1/agents/{agentId}/deployments — a deployment state-transition request. The host authorizes it fail-closed against the RFC 0049 `deploy:*` scope, runs any configured RFC 0051 approvalGate, enforces the RFC 0081 eval evidence when the gate requires it, and on success emits the matching `deployment.*` event and returns the updated `agent-deployment.schema.json` record. Carries no manifest body or credential material (SR-1).",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"required": [
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"rollback",
|
|
25
25
|
"adjust-canary"
|
|
26
26
|
],
|
|
27
|
-
"description": "The lifecycle operation. `promote`: advance toward production (draft
|
|
27
|
+
"description": "The lifecycle operation. `promote`: advance toward production (draft→test→staged→active) into `toState`. `pause`: active→paused. `deprecate`: active→deprecated. `rollback`: active→rolled-back, restoring a prior version. `adjust-canary`: change the active version's `canaryPercent`. Legal transitions + the seven-state machine are normative in `agent-deployment.md` §C."
|
|
28
28
|
},
|
|
29
29
|
"toState": {
|
|
30
30
|
"type": "string",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"type": "string",
|
|
44
44
|
"minLength": 1,
|
|
45
45
|
"maxLength": 64,
|
|
46
|
-
"description": "MAY. The named deployment channel this transition targets (e.g. `stable`). The version becomes resolvable by `AgentRef.channel` = this value (RFC 0082
|
|
46
|
+
"description": "MAY. The named deployment channel this transition targets (e.g. `stable`). The version becomes resolvable by `AgentRef.channel` = this value (RFC 0082 §A/§B)."
|
|
47
47
|
},
|
|
48
48
|
"canaryPercent": {
|
|
49
49
|
"type": "integer",
|
|
@@ -52,8 +52,9 @@
|
|
|
52
52
|
"description": "MAY. For `promote` to `active` or `adjust-canary`, the share of channel traffic this version takes. A host advertising `capabilities.agents.deployment.canary: false` MUST reject any value < 100."
|
|
53
53
|
},
|
|
54
54
|
"evalRunId": {
|
|
55
|
-
"
|
|
56
|
-
"
|
|
55
|
+
"type": "string",
|
|
56
|
+
"minLength": 1,
|
|
57
|
+
"description": "MAY. The RFC 0081 eval run whose `EvalSummary.passed` the gate verifies before emitting `deployment.promoted` (the §E evidence). Required when the target `approvalGate` is configured with `requiredEval`; an unmet eval gate is rejected with `eval_gate_unmet`."
|
|
57
58
|
},
|
|
58
59
|
"reason": {
|
|
59
60
|
"type": "string",
|