@openwop/spec-artifacts 2.0.0-rc.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.
Files changed (229) hide show
  1. package/CORPUS-STAMP.json +234 -0
  2. package/LICENSE +201 -0
  3. package/README.md +7 -0
  4. package/api/.redocly.lint-ignore.yaml +22 -0
  5. package/api/asyncapi.yaml +834 -0
  6. package/api/grpc/openwop.proto +251 -0
  7. package/api/openapi.yaml +2693 -0
  8. package/api/redocly.yaml +23 -0
  9. package/api/seams-v2.yaml +680 -0
  10. package/api/v2/asyncapi.yaml +528 -0
  11. package/api/v2/openapi.yaml +3139 -0
  12. package/api/v2/redocly.yaml +16 -0
  13. package/package.json +10 -0
  14. package/schemas/README.md +144 -0
  15. package/schemas/a2a-task-state.schema.json +78 -0
  16. package/schemas/a2ui-surface-delta-frame.schema.json +48 -0
  17. package/schemas/agent-deployment-transition.schema.json +49 -0
  18. package/schemas/agent-deployment.schema.json +54 -0
  19. package/schemas/agent-eval-suite.schema.json +140 -0
  20. package/schemas/agent-inventory-response.schema.json +115 -0
  21. package/schemas/agent-manifest.schema.json +156 -0
  22. package/schemas/agent-org-chart.schema.json +82 -0
  23. package/schemas/agent-ref.schema.json +63 -0
  24. package/schemas/agent-roster-entry.schema.json +81 -0
  25. package/schemas/agent-roster-response.schema.json +21 -0
  26. package/schemas/ai-envelope.schema.json +134 -0
  27. package/schemas/annotation-create.schema.json +37 -0
  28. package/schemas/annotation.schema.json +56 -0
  29. package/schemas/artifact-type-pack-manifest.schema.json +244 -0
  30. package/schemas/audit-verify-result.schema.json +90 -0
  31. package/schemas/budget-policy.schema.json +18 -0
  32. package/schemas/capabilities.schema.json +4160 -0
  33. package/schemas/certification-bundle-v2.schema.json +118 -0
  34. package/schemas/channel-presence-payload.schema.json +41 -0
  35. package/schemas/channel-written-payload.schema.json +55 -0
  36. package/schemas/chat-card-pack-manifest.schema.json +253 -0
  37. package/schemas/compact-tool-descriptor.schema.json +51 -0
  38. package/schemas/compensation-policy.schema.json +64 -0
  39. package/schemas/conformance-certification-bundle.schema.json +86 -0
  40. package/schemas/connection-pack-manifest.schema.json +353 -0
  41. package/schemas/conversation-event.schema.json +168 -0
  42. package/schemas/conversation-turn.schema.json +117 -0
  43. package/schemas/core-conformance-mock-agent-config.schema.json +152 -0
  44. package/schemas/credential-provenance.schema.json +18 -0
  45. package/schemas/credential-reference.schema.json +21 -0
  46. package/schemas/debug-bundle.schema.json +196 -0
  47. package/schemas/dispatch-config.schema.json +112 -0
  48. package/schemas/envelopes/clarification.request.schema.json +52 -0
  49. package/schemas/envelopes/error.schema.json +30 -0
  50. package/schemas/envelopes/media.audio.schema.json +38 -0
  51. package/schemas/envelopes/media.file.schema.json +37 -0
  52. package/schemas/envelopes/media.image.schema.json +33 -0
  53. package/schemas/envelopes/schema.request.schema.json +26 -0
  54. package/schemas/envelopes/schema.response.schema.json +22 -0
  55. package/schemas/envelopes/ui.a2ui-surface.schema.json +154 -0
  56. package/schemas/error-envelope.schema.json +25 -0
  57. package/schemas/eval-summary.schema.json +92 -0
  58. package/schemas/export-bundle.schema.json +66 -0
  59. package/schemas/form-content-pack-manifest.schema.json +243 -0
  60. package/schemas/frontend-plugin-manifest.schema.json +109 -0
  61. package/schemas/goal.schema.json +104 -0
  62. package/schemas/heartbeat-evaluated.schema.json +14 -0
  63. package/schemas/heartbeat-state-changed.schema.json +14 -0
  64. package/schemas/localized-content-language-settings.schema.json +26 -0
  65. package/schemas/localized-content-page-response.schema.json +60 -0
  66. package/schemas/localized-content-page.schema.json +62 -0
  67. package/schemas/localized-content-section.schema.json +51 -0
  68. package/schemas/memory-entry.schema.json +36 -0
  69. package/schemas/memory-list-options.schema.json +37 -0
  70. package/schemas/node-pack-manifest.schema.json +654 -0
  71. package/schemas/orchestrator-decision.schema.json +90 -0
  72. package/schemas/org-chart-responsibility-view.schema.json +26 -0
  73. package/schemas/pack-lockfile.schema.json +108 -0
  74. package/schemas/prompt-kind.schema.json +8 -0
  75. package/schemas/prompt-pack-manifest.schema.json +117 -0
  76. package/schemas/prompt-ref.schema.json +40 -0
  77. package/schemas/prompt-template.schema.json +149 -0
  78. package/schemas/proposal.schema.json +84 -0
  79. package/schemas/registry-version-manifest.schema.json +208 -0
  80. package/schemas/residency.schema.json +16 -0
  81. package/schemas/run-ancestry-response.schema.json +54 -0
  82. package/schemas/run-diff-response.schema.json +64 -0
  83. package/schemas/run-event-payloads.schema.json +4452 -0
  84. package/schemas/run-event.schema.json +211 -0
  85. package/schemas/run-options.schema.json +80 -0
  86. package/schemas/run-orchestrator-decided-event.schema.json +20 -0
  87. package/schemas/run-snapshot.schema.json +148 -0
  88. package/schemas/security-advisory.schema.json +109 -0
  89. package/schemas/self-hosted-runner-dispatch-frame.schema.json +79 -0
  90. package/schemas/self-hosted-runner-registration.schema.json +53 -0
  91. package/schemas/self-hosted-runner-result-frame.schema.json +38 -0
  92. package/schemas/subject.schema.json +56 -0
  93. package/schemas/suspend-request.schema.json +207 -0
  94. package/schemas/tool-descriptor.schema.json +63 -0
  95. package/schemas/trigger-event.schema.json +222 -0
  96. package/schemas/trigger-subscription-registration.schema.json +67 -0
  97. package/schemas/trigger-subscription.schema.json +26 -0
  98. package/schemas/ui-plugin-message.schema.json +90 -0
  99. package/schemas/v2/a2a-task-state.schema.json +102 -0
  100. package/schemas/v2/a2ui-surface-delta-frame.schema.json +62 -0
  101. package/schemas/v2/agent-deployment-transition.schema.json +67 -0
  102. package/schemas/v2/agent-deployment.schema.json +68 -0
  103. package/schemas/v2/agent-eval-suite.schema.json +214 -0
  104. package/schemas/v2/agent-inventory-response.schema.json +172 -0
  105. package/schemas/v2/agent-manifest.schema.json +218 -0
  106. package/schemas/v2/agent-org-chart.schema.json +149 -0
  107. package/schemas/v2/agent-ref.schema.json +67 -0
  108. package/schemas/v2/agent-roster-entry.schema.json +104 -0
  109. package/schemas/v2/agent-roster-response.schema.json +27 -0
  110. package/schemas/v2/ai-envelope.schema.json +167 -0
  111. package/schemas/v2/annotation-create.schema.json +109 -0
  112. package/schemas/v2/annotation.schema.json +142 -0
  113. package/schemas/v2/artifact-type-pack-manifest.schema.json +245 -0
  114. package/schemas/v2/audit-verify-result.schema.json +110 -0
  115. package/schemas/v2/budget-policy.schema.json +61 -0
  116. package/schemas/v2/capabilities.schema.json +7644 -0
  117. package/schemas/v2/certification-bundle.schema.json +401 -0
  118. package/schemas/v2/channel-presence-payload.schema.json +60 -0
  119. package/schemas/v2/channel-written-payload.schema.json +64 -0
  120. package/schemas/v2/chat-card-pack-manifest.schema.json +254 -0
  121. package/schemas/v2/compact-tool-descriptor.schema.json +108 -0
  122. package/schemas/v2/compensation-policy.schema.json +91 -0
  123. package/schemas/v2/compensation-projection.schema.json +95 -0
  124. package/schemas/v2/configurable.schema.json +110 -0
  125. package/schemas/v2/connection-pack-manifest.schema.json +354 -0
  126. package/schemas/v2/conversation-event.schema.json +281 -0
  127. package/schemas/v2/conversation-turn.schema.json +165 -0
  128. package/schemas/v2/credential-provenance.schema.json +62 -0
  129. package/schemas/v2/credential-reference.schema.json +28 -0
  130. package/schemas/v2/debug-bundle.schema.json +312 -0
  131. package/schemas/v2/dispatch-config.schema.json +147 -0
  132. package/schemas/v2/effect-ledger-projection.schema.json +71 -0
  133. package/schemas/v2/effect-seam-manifest.schema.json +98 -0
  134. package/schemas/v2/envelopes/clarification.request.schema.json +59 -0
  135. package/schemas/v2/envelopes/error.schema.json +35 -0
  136. package/schemas/v2/envelopes/media.audio.schema.json +41 -0
  137. package/schemas/v2/envelopes/media.file.schema.json +40 -0
  138. package/schemas/v2/envelopes/media.image.schema.json +36 -0
  139. package/schemas/v2/envelopes/schema.request.schema.json +29 -0
  140. package/schemas/v2/envelopes/schema.response.schema.json +26 -0
  141. package/schemas/v2/envelopes/ui.a2ui-surface.schema.json +292 -0
  142. package/schemas/v2/error-envelope.schema.json +229 -0
  143. package/schemas/v2/eval-summary.schema.json +166 -0
  144. package/schemas/v2/export-bundle.schema.json +94 -0
  145. package/schemas/v2/form-content-pack-manifest.schema.json +241 -0
  146. package/schemas/v2/frontend-plugin-manifest.schema.json +152 -0
  147. package/schemas/v2/goal.schema.json +188 -0
  148. package/schemas/v2/heartbeat-evaluated.schema.json +34 -0
  149. package/schemas/v2/heartbeat-state-changed.schema.json +31 -0
  150. package/schemas/v2/ids.schema.json +31 -0
  151. package/schemas/v2/localized-content-language-settings.schema.json +34 -0
  152. package/schemas/v2/localized-content-page-response.schema.json +94 -0
  153. package/schemas/v2/localized-content-page.schema.json +87 -0
  154. package/schemas/v2/localized-content-section.schema.json +63 -0
  155. package/schemas/v2/memory-entry.schema.json +45 -0
  156. package/schemas/v2/memory-list-options.schema.json +41 -0
  157. package/schemas/v2/node-pack-manifest.schema.json +657 -0
  158. package/schemas/v2/orchestrator-decision.schema.json +120 -0
  159. package/schemas/v2/org-chart-responsibility-view.schema.json +36 -0
  160. package/schemas/v2/pack-lockfile.schema.json +139 -0
  161. package/schemas/v2/prompt-kind.schema.json +14 -0
  162. package/schemas/v2/prompt-pack-manifest.schema.json +118 -0
  163. package/schemas/v2/prompt-ref.schema.json +42 -0
  164. package/schemas/v2/prompt-template.schema.json +209 -0
  165. package/schemas/v2/proposal.schema.json +145 -0
  166. package/schemas/v2/registry-version-manifest.schema.json +292 -0
  167. package/schemas/v2/residency.schema.json +19 -0
  168. package/schemas/v2/run-ancestry-response.schema.json +68 -0
  169. package/schemas/v2/run-diff-response.schema.json +80 -0
  170. package/schemas/v2/run-event-payloads.schema.json +4588 -0
  171. package/schemas/v2/run-event.schema.json +324 -0
  172. package/schemas/v2/run-options.schema.json +90 -0
  173. package/schemas/v2/run-orchestrator-decided-event.schema.json +22 -0
  174. package/schemas/v2/run-snapshot.schema.json +207 -0
  175. package/schemas/v2/security-advisory.schema.json +138 -0
  176. package/schemas/v2/self-hosted-runner-dispatch-frame.schema.json +119 -0
  177. package/schemas/v2/self-hosted-runner-registration.schema.json +74 -0
  178. package/schemas/v2/self-hosted-runner-result-frame.schema.json +47 -0
  179. package/schemas/v2/subject-link.schema.json +69 -0
  180. package/schemas/v2/subject.schema.json +597 -0
  181. package/schemas/v2/suspend-request.schema.json +370 -0
  182. package/schemas/v2/tool-descriptor.schema.json +150 -0
  183. package/schemas/v2/trigger-event.schema.json +508 -0
  184. package/schemas/v2/trigger-subscription-registration.schema.json +99 -0
  185. package/schemas/v2/trigger-subscription.schema.json +79 -0
  186. package/schemas/v2/ui-plugin-message.schema.json +149 -0
  187. package/schemas/v2/workflow-chain-pack-manifest.schema.json +610 -0
  188. package/schemas/v2/workflow-definition.schema.json +864 -0
  189. package/schemas/v2/workload-identity.schema.json +115 -0
  190. package/schemas/v2/workspace-file-create.schema.json +23 -0
  191. package/schemas/v2/workspace-file.schema.json +45 -0
  192. package/schemas/workflow-chain-pack-manifest.schema.json +615 -0
  193. package/schemas/workflow-definition.schema.json +850 -0
  194. package/schemas/workload-identity.schema.json +79 -0
  195. package/schemas/workspace-file-create.schema.json +20 -0
  196. package/schemas/workspace-file.schema.json +39 -0
  197. package/spec/v1/alias-detectors.json +283 -0
  198. package/spec/v1/capability-declaration-classes.json +176 -0
  199. package/spec/v1/core-standard-manifest.json +423 -0
  200. package/spec/v1/deprecations.json +854 -0
  201. package/spec/v1/deprecations.schema.json +187 -0
  202. package/spec/v1/event-codemap.json +1089 -0
  203. package/spec/v1/event-codemap.schema.json +41 -0
  204. package/spec/v1/extensions.json +1273 -0
  205. package/spec/v1/gaps.json +14581 -0
  206. package/spec/v1/gaps.schema.json +55 -0
  207. package/spec/v1/migrations.json +1822 -0
  208. package/spec/v1/migrations.schema.json +44 -0
  209. package/spec/v1/operation-path-manifest.json +462 -0
  210. package/spec/v1/spec-gaps.json +4823 -0
  211. package/spec/v2/declaration.json +1862 -0
  212. package/spec/v2/declaration.schema.json +305 -0
  213. package/spec/v2/errors.json +837 -0
  214. package/spec/v2/event-codemap.json +1099 -0
  215. package/spec/v2/event-codemap.schema.json +114 -0
  216. package/spec/v2/ext/provider-idempotency/registry.json +6 -0
  217. package/spec/v2/facets/a2a.schema.json +51 -0
  218. package/spec/v2/facets/aiProviders.schema.json +56 -0
  219. package/spec/v2/facets/auth.schema.json +91 -0
  220. package/spec/v2/facets/heartbeat.schema.json +20 -0
  221. package/spec/v2/facets/interrupt.schema.json +29 -0
  222. package/spec/v2/facets/mcp.schema.json +81 -0
  223. package/spec/v2/facets/replay.schema.json +34 -0
  224. package/spec/v2/facets/sandbox.schema.json +31 -0
  225. package/spec/v2/facets/webhooks.schema.json +18 -0
  226. package/spec/v2/path-manifest.json +279 -0
  227. package/spec/v2/peer-dependency-aliases.json +165 -0
  228. package/spec/v2/profiles.json +45 -0
  229. package/spec/v2/release.json +6 -0
@@ -0,0 +1,837 @@
1
+ {
2
+ "$schema": "https://openwop.dev/spec/v2/errors.schema.json",
3
+ "$comment": "RFC 0171 §B.1 — the error registry: one row per code {code, httpStatus, retriable, details, since, deprecated?}. schemas/v2/error-envelope.schema.json is GENERATED from it (scripts/generate-error-envelope.mjs). Retry timing lives in Retry-After only (§B.2). statusSource records whether the status was stated in v1 prose, a v1 convention, or decided here. details is null until a code's details schema is registered (a null row means details is an open object for that code — closure over details is the RFC 0171 Phase 3 follow-up G-row).",
4
+ "version": "2.0",
5
+ "updated": "2026-09-03",
6
+ "vendorCodePattern": "^(?!openwop\\.)[a-z][a-z0-9]*(-[a-z0-9]+)*\\.[a-z][a-z0-9_]*$",
7
+ "rows": [
8
+ {
9
+ "code": "audience_mismatch",
10
+ "httpStatus": 401,
11
+ "statusSource": "v2 decision",
12
+ "retriable": false,
13
+ "details": null,
14
+ "since": "2.0",
15
+ "source": "RFC 0170 §B.1"
16
+ },
17
+ {
18
+ "code": "capability_not_provided",
19
+ "httpStatus": 422,
20
+ "statusSource": "v1 convention",
21
+ "retriable": false,
22
+ "details": null,
23
+ "since": "1.0",
24
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
25
+ },
26
+ {
27
+ "code": "capability_required",
28
+ "httpStatus": 422,
29
+ "statusSource": "v1 convention",
30
+ "retriable": false,
31
+ "details": null,
32
+ "since": "1.0",
33
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
34
+ },
35
+ {
36
+ "code": "client_version_unsupported",
37
+ "httpStatus": 426,
38
+ "statusSource": "v2 decision",
39
+ "retriable": false,
40
+ "details": null,
41
+ "since": "2.0",
42
+ "source": "RFC 0172 row C5.8"
43
+ },
44
+ {
45
+ "code": "connection_provider_conflict",
46
+ "httpStatus": 409,
47
+ "statusSource": "v1 prose",
48
+ "retriable": false,
49
+ "details": null,
50
+ "since": "1.0",
51
+ "source": "spec/v1/connection-packs.md; RFC 0177 §D.1 fail-closed"
52
+ },
53
+ {
54
+ "code": "connection_provider_unresolved",
55
+ "httpStatus": 400,
56
+ "statusSource": "v1 prose",
57
+ "retriable": false,
58
+ "details": null,
59
+ "since": "1.0",
60
+ "source": "spec/v1/connection-packs.md"
61
+ },
62
+ {
63
+ "code": "connector_action_unresolved",
64
+ "httpStatus": 400,
65
+ "statusSource": "v1 convention",
66
+ "retriable": false,
67
+ "details": null,
68
+ "since": "1.0",
69
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
70
+ },
71
+ {
72
+ "code": "connector_auth_expired",
73
+ "httpStatus": 401,
74
+ "statusSource": "v1 convention",
75
+ "retriable": false,
76
+ "details": null,
77
+ "since": "1.0",
78
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
79
+ },
80
+ {
81
+ "code": "credential_forbidden",
82
+ "httpStatus": 403,
83
+ "statusSource": "v1 convention",
84
+ "retriable": false,
85
+ "details": null,
86
+ "since": "1.0",
87
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
88
+ },
89
+ {
90
+ "code": "credential_not_found",
91
+ "httpStatus": 404,
92
+ "statusSource": "v1 convention",
93
+ "retriable": false,
94
+ "details": null,
95
+ "since": "1.0",
96
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
97
+ },
98
+ {
99
+ "code": "credential_required",
100
+ "httpStatus": 422,
101
+ "statusSource": "v1 convention",
102
+ "retriable": false,
103
+ "details": null,
104
+ "since": "1.0",
105
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
106
+ },
107
+ {
108
+ "code": "credential_revoked",
109
+ "httpStatus": 401,
110
+ "statusSource": "v2 decision",
111
+ "retriable": false,
112
+ "details": null,
113
+ "since": "2.0",
114
+ "source": "RFC 0170 §B.3"
115
+ },
116
+ {
117
+ "code": "credential_scope_unsupported",
118
+ "httpStatus": 400,
119
+ "statusSource": "v1 convention",
120
+ "retriable": false,
121
+ "details": null,
122
+ "since": "1.0",
123
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
124
+ },
125
+ {
126
+ "code": "credential_unavailable",
127
+ "httpStatus": 501,
128
+ "statusSource": "v1 convention",
129
+ "retriable": false,
130
+ "details": null,
131
+ "since": "1.0",
132
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
133
+ },
134
+ {
135
+ "code": "delegation_chain_cyclic",
136
+ "httpStatus": 400,
137
+ "statusSource": "v2 decision",
138
+ "retriable": false,
139
+ "details": null,
140
+ "since": "2.0",
141
+ "source": "RFC 0170 §B.1"
142
+ },
143
+ {
144
+ "code": "delegation_chain_too_long",
145
+ "httpStatus": 400,
146
+ "statusSource": "v2 decision",
147
+ "retriable": false,
148
+ "details": null,
149
+ "since": "2.0",
150
+ "source": "RFC 0170 §B.1"
151
+ },
152
+ {
153
+ "code": "delegation_expired",
154
+ "httpStatus": 401,
155
+ "statusSource": "v2 decision",
156
+ "retriable": false,
157
+ "details": null,
158
+ "since": "2.0",
159
+ "source": "RFC 0170 §B.1"
160
+ },
161
+ {
162
+ "code": "delegation_scope_amplified",
163
+ "httpStatus": 403,
164
+ "statusSource": "v2 decision",
165
+ "retriable": false,
166
+ "details": null,
167
+ "since": "2.0",
168
+ "source": "RFC 0170 §B.1"
169
+ },
170
+ {
171
+ "code": "envelope_correlation_conflict",
172
+ "httpStatus": 409,
173
+ "statusSource": "v1 prose",
174
+ "retriable": false,
175
+ "details": null,
176
+ "since": "1.0",
177
+ "source": "spec/v1/ai-envelope.md E2 (correlationId type conflict)"
178
+ },
179
+ {
180
+ "code": "envelope_invalid",
181
+ "httpStatus": 422,
182
+ "statusSource": "v1 convention",
183
+ "retriable": false,
184
+ "details": null,
185
+ "since": "1.0",
186
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
187
+ },
188
+ {
189
+ "code": "envelope_refusal",
190
+ "httpStatus": 422,
191
+ "statusSource": "v1 convention",
192
+ "retriable": false,
193
+ "details": null,
194
+ "since": "1.0",
195
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
196
+ },
197
+ {
198
+ "code": "envelope_truncation_unrecoverable",
199
+ "httpStatus": 422,
200
+ "statusSource": "v1 convention",
201
+ "retriable": false,
202
+ "details": null,
203
+ "since": "1.0",
204
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
205
+ },
206
+ {
207
+ "code": "event_type_unmapped",
208
+ "httpStatus": 500,
209
+ "statusSource": "v2 decision",
210
+ "retriable": false,
211
+ "details": null,
212
+ "since": "2.0",
213
+ "source": "RFC 0176 §A.3 (a run whose log the host cannot translate is not readable)"
214
+ },
215
+ {
216
+ "code": "forbidden",
217
+ "httpStatus": 403,
218
+ "statusSource": "v1 prose",
219
+ "retriable": false,
220
+ "details": null,
221
+ "since": "1.0",
222
+ "source": "spec/v1/auth.md (v1 MUST)"
223
+ },
224
+ {
225
+ "code": "force_engine_version_forbidden",
226
+ "httpStatus": 403,
227
+ "statusSource": "v1 prose",
228
+ "retriable": false,
229
+ "details": null,
230
+ "since": "1.0",
231
+ "source": "spec/v1/run-options.md / version-negotiation.md (OpenWOP-Force-Engine-Version outside test keys)"
232
+ },
233
+ {
234
+ "code": "id_tenant_mismatch",
235
+ "httpStatus": 403,
236
+ "statusSource": "v2 decision",
237
+ "retriable": false,
238
+ "details": null,
239
+ "since": "2.0",
240
+ "source": "RFC 0170 §D.1 (an id whose tenant segment is not the caller's)"
241
+ },
242
+ {
243
+ "code": "idempotency_in_flight",
244
+ "httpStatus": 409,
245
+ "statusSource": "v1 prose",
246
+ "retriable": false,
247
+ "details": null,
248
+ "since": "1.0",
249
+ "source": "spec/v1/idempotency.md §Concurrent duplicates (v1 MUST; RFC 0171 §B.2 keeps one mismatch code, this is the in-flight state)"
250
+ },
251
+ {
252
+ "code": "idempotency_key_invalid",
253
+ "httpStatus": 400,
254
+ "statusSource": "v2 decision",
255
+ "retriable": false,
256
+ "details": null,
257
+ "since": "2.0",
258
+ "source": "RFC 0170 §D.3"
259
+ },
260
+ {
261
+ "code": "idempotency_key_mismatch",
262
+ "httpStatus": 409,
263
+ "statusSource": "v1 prose",
264
+ "retriable": false,
265
+ "details": null,
266
+ "since": "1.0",
267
+ "source": "spec/v1/idempotency.md (the only spelling; RFC 0171 §B.2)"
268
+ },
269
+ {
270
+ "code": "identity_unresolvable",
271
+ "httpStatus": 401,
272
+ "statusSource": "v2 decision",
273
+ "retriable": false,
274
+ "details": null,
275
+ "since": "2.0",
276
+ "source": "RFC 0170 §B.1"
277
+ },
278
+ {
279
+ "code": "identity_unverified",
280
+ "httpStatus": 401,
281
+ "statusSource": "v2 decision",
282
+ "retriable": false,
283
+ "details": null,
284
+ "since": "2.0",
285
+ "source": "RFC 0170 §B.1 / RFC 0154"
286
+ },
287
+ {
288
+ "code": "internal_error",
289
+ "httpStatus": 500,
290
+ "statusSource": "v1 convention",
291
+ "retriable": true,
292
+ "details": null,
293
+ "since": "1.0",
294
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
295
+ },
296
+ {
297
+ "code": "interop_version_unsupported",
298
+ "httpStatus": 400,
299
+ "statusSource": "v1 convention",
300
+ "retriable": false,
301
+ "details": null,
302
+ "since": "1.0",
303
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
304
+ },
305
+ {
306
+ "code": "interrupt_already_resolved",
307
+ "httpStatus": 409,
308
+ "statusSource": "v1 prose",
309
+ "retriable": false,
310
+ "details": null,
311
+ "since": "1.0",
312
+ "source": "spec/v1/interrupt.md (409/410 overlap: RFC 0171 row C4.6 — one code per state)"
313
+ },
314
+ {
315
+ "code": "interrupt_cancelled",
316
+ "httpStatus": 410,
317
+ "statusSource": "v1 prose",
318
+ "retriable": false,
319
+ "details": null,
320
+ "since": "1.0",
321
+ "source": "spec/v1/interrupt.md (the run was cancelled while suspended)"
322
+ },
323
+ {
324
+ "code": "interrupt_expired",
325
+ "httpStatus": 410,
326
+ "statusSource": "v1 prose",
327
+ "retriable": false,
328
+ "details": null,
329
+ "since": "1.0",
330
+ "source": "spec/v1/interrupt.md"
331
+ },
332
+ {
333
+ "code": "interrupt_not_found",
334
+ "httpStatus": 404,
335
+ "statusSource": "v1 prose",
336
+ "retriable": false,
337
+ "details": null,
338
+ "since": "1.0",
339
+ "source": "spec/v1/interrupt.md"
340
+ },
341
+ {
342
+ "code": "interrupt_token_invalid",
343
+ "httpStatus": 401,
344
+ "statusSource": "v2 decision",
345
+ "retriable": false,
346
+ "details": null,
347
+ "since": "2.0",
348
+ "source": "RFC 0170 §E.1"
349
+ },
350
+ {
351
+ "code": "key_revoked",
352
+ "httpStatus": 401,
353
+ "statusSource": "v1 convention",
354
+ "retriable": false,
355
+ "details": null,
356
+ "since": "1.0",
357
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
358
+ },
359
+ {
360
+ "code": "loop_limit_exceeded",
361
+ "httpStatus": 422,
362
+ "statusSource": "v1 convention",
363
+ "retriable": false,
364
+ "details": null,
365
+ "since": "1.0",
366
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
367
+ },
368
+ {
369
+ "code": "mcp_mrtr_rounds_exceeded",
370
+ "httpStatus": 422,
371
+ "statusSource": "v2 decision",
372
+ "retriable": false,
373
+ "details": null,
374
+ "since": "2.0",
375
+ "source": "RFC 0175 §E.1"
376
+ },
377
+ {
378
+ "code": "mock_provider_forbidden",
379
+ "httpStatus": 403,
380
+ "statusSource": "v1 prose",
381
+ "retriable": false,
382
+ "details": null,
383
+ "since": "1.0",
384
+ "source": "spec/v1/run-options.md (mockProvider outside test keys)"
385
+ },
386
+ {
387
+ "code": "not_found",
388
+ "httpStatus": 404,
389
+ "statusSource": "v1 convention",
390
+ "retriable": false,
391
+ "details": null,
392
+ "since": "1.0",
393
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
394
+ },
395
+ {
396
+ "code": "oauth_provider_unsupported",
397
+ "httpStatus": 400,
398
+ "statusSource": "v1 convention",
399
+ "retriable": false,
400
+ "details": null,
401
+ "since": "1.0",
402
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
403
+ },
404
+ {
405
+ "code": "oauth_scope_unsupported",
406
+ "httpStatus": 400,
407
+ "statusSource": "v1 convention",
408
+ "retriable": false,
409
+ "details": null,
410
+ "since": "1.0",
411
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
412
+ },
413
+ {
414
+ "code": "pack_dependency_conflict",
415
+ "httpStatus": 409,
416
+ "statusSource": "v1 convention (node-packs.md)",
417
+ "retriable": false,
418
+ "details": null,
419
+ "since": "1.0",
420
+ "source": "spec/v1/node-packs.md"
421
+ },
422
+ {
423
+ "code": "pack_dependency_cycle",
424
+ "httpStatus": 400,
425
+ "statusSource": "v1 convention (node-packs.md)",
426
+ "retriable": false,
427
+ "details": null,
428
+ "since": "1.0",
429
+ "source": "spec/v1/node-packs.md"
430
+ },
431
+ {
432
+ "code": "pack_engine_unsupported",
433
+ "httpStatus": 400,
434
+ "statusSource": "v2 decision",
435
+ "retriable": false,
436
+ "details": null,
437
+ "since": "2.0",
438
+ "source": "RFC 0177 §A.1"
439
+ },
440
+ {
441
+ "code": "pack_integrity_failure",
442
+ "httpStatus": 400,
443
+ "statusSource": "v1 convention (node-packs.md)",
444
+ "retriable": false,
445
+ "details": null,
446
+ "since": "1.0",
447
+ "source": "spec/v1/node-packs.md"
448
+ },
449
+ {
450
+ "code": "pack_integrity_mismatch",
451
+ "httpStatus": 409,
452
+ "statusSource": "v1 convention (node-packs.md)",
453
+ "retriable": false,
454
+ "details": null,
455
+ "since": "1.0",
456
+ "source": "spec/v1/node-packs.md"
457
+ },
458
+ {
459
+ "code": "pack_kind_invalid",
460
+ "httpStatus": 400,
461
+ "statusSource": "v1 convention (node-packs.md)",
462
+ "retriable": false,
463
+ "details": null,
464
+ "since": "1.0",
465
+ "source": "spec/v1/node-packs.md"
466
+ },
467
+ {
468
+ "code": "pack_load_failure",
469
+ "httpStatus": 500,
470
+ "statusSource": "v1 convention (node-packs.md)",
471
+ "retriable": false,
472
+ "details": null,
473
+ "since": "1.0",
474
+ "source": "spec/v1/node-packs.md"
475
+ },
476
+ {
477
+ "code": "pack_lockfile_incomplete",
478
+ "httpStatus": 400,
479
+ "statusSource": "v1 convention (node-packs.md)",
480
+ "retriable": false,
481
+ "details": null,
482
+ "since": "1.0",
483
+ "source": "spec/v1/node-packs.md"
484
+ },
485
+ {
486
+ "code": "pack_namespace_unauthorized",
487
+ "httpStatus": 403,
488
+ "statusSource": "v1 convention (node-packs.md)",
489
+ "retriable": false,
490
+ "details": null,
491
+ "since": "1.0",
492
+ "source": "spec/v1/node-packs.md"
493
+ },
494
+ {
495
+ "code": "pack_peer_dependency_missing",
496
+ "httpStatus": 400,
497
+ "statusSource": "v1 convention (node-packs.md)",
498
+ "retriable": false,
499
+ "details": null,
500
+ "since": "1.0",
501
+ "source": "spec/v1/node-packs.md"
502
+ },
503
+ {
504
+ "code": "pack_peer_dependency_undefined",
505
+ "httpStatus": 400,
506
+ "statusSource": "v1 convention (node-packs.md)",
507
+ "retriable": false,
508
+ "details": null,
509
+ "since": "1.0",
510
+ "source": "spec/v1/node-packs.md"
511
+ },
512
+ {
513
+ "code": "pack_registry_unreachable",
514
+ "httpStatus": 503,
515
+ "statusSource": "v1 convention (node-packs.md)",
516
+ "retriable": true,
517
+ "details": null,
518
+ "since": "1.0",
519
+ "source": "spec/v1/node-packs.md"
520
+ },
521
+ {
522
+ "code": "pack_runtime_requirement_unmet",
523
+ "httpStatus": 422,
524
+ "statusSource": "v1 convention (node-packs.md)",
525
+ "retriable": false,
526
+ "details": null,
527
+ "since": "1.0",
528
+ "source": "spec/v1/node-packs.md"
529
+ },
530
+ {
531
+ "code": "pack_signature_invalid",
532
+ "httpStatus": 400,
533
+ "statusSource": "v1 convention (node-packs.md)",
534
+ "retriable": false,
535
+ "details": null,
536
+ "since": "1.0",
537
+ "source": "spec/v1/node-packs.md"
538
+ },
539
+ {
540
+ "code": "pack_validation_failed",
541
+ "httpStatus": 400,
542
+ "statusSource": "v1 convention (node-packs.md)",
543
+ "retriable": false,
544
+ "details": null,
545
+ "since": "1.0",
546
+ "source": "spec/v1/node-packs.md"
547
+ },
548
+ {
549
+ "code": "pack_version_not_found",
550
+ "httpStatus": 404,
551
+ "statusSource": "v1 convention (node-packs.md)",
552
+ "retriable": false,
553
+ "details": null,
554
+ "since": "1.0",
555
+ "source": "spec/v1/node-packs.md"
556
+ },
557
+ {
558
+ "code": "protocol_version_mismatch",
559
+ "httpStatus": 400,
560
+ "statusSource": "v2 decision",
561
+ "retriable": false,
562
+ "details": null,
563
+ "since": "2.0",
564
+ "source": "RFC 0172 §A.3"
565
+ },
566
+ {
567
+ "code": "protocol_version_unsupported",
568
+ "httpStatus": 406,
569
+ "statusSource": "v2 decision",
570
+ "retriable": false,
571
+ "details": null,
572
+ "since": "2.0",
573
+ "source": "RFC 0172 §A.3"
574
+ },
575
+ {
576
+ "code": "rate_limited",
577
+ "httpStatus": 429,
578
+ "statusSource": "v1 convention",
579
+ "retriable": true,
580
+ "details": null,
581
+ "since": "1.0",
582
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
583
+ },
584
+ {
585
+ "code": "recursion_limit_exceeded",
586
+ "httpStatus": 422,
587
+ "statusSource": "v1 convention",
588
+ "retriable": false,
589
+ "details": null,
590
+ "since": "1.0",
591
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
592
+ },
593
+ {
594
+ "code": "replay_diverged_at_refusal",
595
+ "httpStatus": 409,
596
+ "statusSource": "v1 convention",
597
+ "retriable": false,
598
+ "details": null,
599
+ "since": "1.0",
600
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
601
+ },
602
+ {
603
+ "code": "replay_memory_snapshot_unavailable",
604
+ "httpStatus": 409,
605
+ "statusSource": "v1 convention",
606
+ "retriable": false,
607
+ "details": null,
608
+ "since": "1.0",
609
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
610
+ },
611
+ {
612
+ "code": "replay_source_missing",
613
+ "httpStatus": 404,
614
+ "statusSource": "v1 convention",
615
+ "retriable": false,
616
+ "details": null,
617
+ "since": "1.0",
618
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
619
+ },
620
+ {
621
+ "code": "residency_unavailable",
622
+ "httpStatus": 422,
623
+ "statusSource": "v1 convention",
624
+ "retriable": true,
625
+ "details": null,
626
+ "since": "1.0",
627
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
628
+ },
629
+ {
630
+ "code": "run_already_active",
631
+ "httpStatus": 409,
632
+ "statusSource": "v1 convention",
633
+ "retriable": false,
634
+ "details": null,
635
+ "since": "1.0",
636
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
637
+ },
638
+ {
639
+ "code": "run_forbidden",
640
+ "httpStatus": 403,
641
+ "statusSource": "v1 prose",
642
+ "retriable": false,
643
+ "details": null,
644
+ "since": "1.0",
645
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
646
+ },
647
+ {
648
+ "code": "run_terminal",
649
+ "httpStatus": 409,
650
+ "statusSource": "v1 prose",
651
+ "retriable": false,
652
+ "details": null,
653
+ "since": "1.0",
654
+ "source": "spec/v1/rest-endpoints.md (a mutation on a terminal run)"
655
+ },
656
+ {
657
+ "code": "run_timeout",
658
+ "httpStatus": 422,
659
+ "statusSource": "v1 convention",
660
+ "retriable": false,
661
+ "details": null,
662
+ "since": "1.0",
663
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
664
+ },
665
+ {
666
+ "code": "runner_unavailable",
667
+ "httpStatus": 503,
668
+ "statusSource": "v1 convention",
669
+ "retriable": true,
670
+ "details": null,
671
+ "since": "1.0",
672
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
673
+ },
674
+ {
675
+ "code": "sandbox_capability_denied",
676
+ "httpStatus": 403,
677
+ "statusSource": "v1 convention",
678
+ "retriable": false,
679
+ "details": null,
680
+ "since": "1.0",
681
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
682
+ },
683
+ {
684
+ "code": "sandbox_escape_attempt",
685
+ "httpStatus": 403,
686
+ "statusSource": "v1 convention",
687
+ "retriable": false,
688
+ "details": null,
689
+ "since": "1.0",
690
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
691
+ },
692
+ {
693
+ "code": "sandbox_memory_exceeded",
694
+ "httpStatus": 422,
695
+ "statusSource": "v1 convention",
696
+ "retriable": false,
697
+ "details": null,
698
+ "since": "1.0",
699
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
700
+ },
701
+ {
702
+ "code": "sandbox_timeout",
703
+ "httpStatus": 422,
704
+ "statusSource": "v1 convention",
705
+ "retriable": false,
706
+ "details": null,
707
+ "since": "1.0",
708
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
709
+ },
710
+ {
711
+ "code": "schedule_horizon_exceeded",
712
+ "httpStatus": 400,
713
+ "statusSource": "v1 convention",
714
+ "retriable": false,
715
+ "details": null,
716
+ "since": "1.0",
717
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
718
+ },
719
+ {
720
+ "code": "sender_constraint_missing",
721
+ "httpStatus": 401,
722
+ "statusSource": "v2 decision",
723
+ "retriable": false,
724
+ "details": null,
725
+ "since": "2.0",
726
+ "source": "RFC 0170 §B.4"
727
+ },
728
+ {
729
+ "code": "signature_not_available",
730
+ "httpStatus": 404,
731
+ "statusSource": "v1 prose",
732
+ "retriable": false,
733
+ "details": null,
734
+ "since": "1.0",
735
+ "source": "api/openapi.yaml"
736
+ },
737
+ {
738
+ "code": "sub_chain_cycle",
739
+ "httpStatus": 400,
740
+ "statusSource": "v2 decision",
741
+ "retriable": false,
742
+ "details": null,
743
+ "since": "2.0",
744
+ "source": "RFC 0133 §Unresolved 3 (resolved: maxSubChainDepth 8, fail closed); carried into v2 by RFC 0177 §E"
745
+ },
746
+ {
747
+ "code": "sub_chain_depth_exceeded",
748
+ "httpStatus": 400,
749
+ "statusSource": "v2 decision",
750
+ "retriable": false,
751
+ "details": null,
752
+ "since": "2.0",
753
+ "source": "RFC 0133 §Unresolved 3 — the depth ceiling breach (distinct from a cycle)"
754
+ },
755
+ {
756
+ "code": "token_budget_exceeded",
757
+ "httpStatus": 422,
758
+ "statusSource": "v1 convention",
759
+ "retriable": false,
760
+ "details": null,
761
+ "since": "1.0",
762
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
763
+ },
764
+ {
765
+ "code": "unauthenticated",
766
+ "httpStatus": 401,
767
+ "statusSource": "v1 convention",
768
+ "retriable": false,
769
+ "details": null,
770
+ "since": "1.0",
771
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
772
+ },
773
+ {
774
+ "code": "unsupported_stream_mode",
775
+ "httpStatus": 400,
776
+ "statusSource": "v1 prose",
777
+ "retriable": false,
778
+ "details": null,
779
+ "since": "1.0",
780
+ "source": "api/openapi.yaml UnsupportedStreamMode (RFC 0171 §B.1 folds the one-member enum)"
781
+ },
782
+ {
783
+ "code": "until_in_past",
784
+ "httpStatus": 400,
785
+ "statusSource": "v2 decision",
786
+ "retriable": false,
787
+ "details": null,
788
+ "since": "2.0",
789
+ "source": "RFC 0169 §A.3 (validation_error details.reason in v1; a code in v2)"
790
+ },
791
+ {
792
+ "code": "validation_error",
793
+ "httpStatus": 400,
794
+ "statusSource": "v1 convention",
795
+ "retriable": false,
796
+ "details": null,
797
+ "since": "1.0",
798
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
799
+ },
800
+ {
801
+ "code": "version_conflict",
802
+ "httpStatus": 409,
803
+ "statusSource": "v1 prose",
804
+ "retriable": false,
805
+ "details": null,
806
+ "since": "1.0",
807
+ "source": "api/openapi.yaml"
808
+ },
809
+ {
810
+ "code": "workspace_conflict",
811
+ "httpStatus": 409,
812
+ "statusSource": "v1 prose",
813
+ "retriable": false,
814
+ "details": null,
815
+ "since": "1.0",
816
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
817
+ },
818
+ {
819
+ "code": "workspace_membership_required",
820
+ "httpStatus": 403,
821
+ "statusSource": "v1 prose",
822
+ "retriable": false,
823
+ "details": null,
824
+ "since": "1.0",
825
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
826
+ },
827
+ {
828
+ "code": "workspace_too_large",
829
+ "httpStatus": 413,
830
+ "statusSource": "v1 prose",
831
+ "retriable": false,
832
+ "details": null,
833
+ "since": "1.0",
834
+ "source": "spec/v1/rest-endpoints.md §Error response shape"
835
+ }
836
+ ]
837
+ }