@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,528 @@
1
+ asyncapi: 3.1.0
2
+ info:
3
+ title: OpenWOP v2 event streams
4
+ version: 2.0.0-rc.0
5
+ description: GENERATED by scripts/derive-v2-api.py (RFC 0171 §E.1, RFC 0172 §C.2). One run-events channel whose address
6
+ is the OpenAPI path key; the server pathname is empty (bare origin). streamMode is a pattern over the closed set and its
7
+ comma-separated combinations (`values` never combines). hostEvents has a real address (RFC 0171 §E.1) — the documented
8
+ default; a host MAY declare another under `heartbeat.deliveryChannel`.
9
+ defaultContentType: text/event-stream
10
+ servers:
11
+ production:
12
+ host: '{host}'
13
+ pathname: ''
14
+ protocol: https
15
+ variables:
16
+ host:
17
+ default: api.example.com
18
+ channels:
19
+ runEvents:
20
+ address: /runs/{runId}/events
21
+ title: Run event stream (SSE)
22
+ parameters:
23
+ runId:
24
+ description: ids.schema.json#/$defs/runId
25
+ messages:
26
+ runEvent:
27
+ $ref: '#/components/messages/RunEvent'
28
+ hostEvents:
29
+ address: /host/events
30
+ title: Host-scoped events (heartbeat.*)
31
+ messages:
32
+ heartbeatEvaluated:
33
+ $ref: '#/components/messages/HeartbeatEvaluated'
34
+ heartbeatStateChanged:
35
+ $ref: '#/components/messages/HeartbeatStateChanged'
36
+ operations:
37
+ subscribeRunEvents:
38
+ action: receive
39
+ channel:
40
+ $ref: '#/channels/runEvents'
41
+ title: Subscribe to a run's events
42
+ description: Long-lived SSE subscription; auto-closes on a terminal run event; `Last-Event-ID` resumes from the sequence
43
+ AFTER the supplied one. Mixed mode is union-of-filters with per-event `event:` labels (stream-modes).
44
+ bindings:
45
+ http:
46
+ method: GET
47
+ query:
48
+ type: object
49
+ additionalProperties: false
50
+ properties:
51
+ streamMode:
52
+ type: string
53
+ pattern: ^(values|(updates|messages|debug)(,(updates|messages|debug))*)$
54
+ default: updates
55
+ subscribeHostEvents:
56
+ action: receive
57
+ channel:
58
+ $ref: '#/channels/hostEvents'
59
+ title: Subscribe to host events
60
+ bindings:
61
+ http:
62
+ method: GET
63
+ components:
64
+ securitySchemes:
65
+ ApiKeyAuth:
66
+ type: httpApiKey
67
+ in: header
68
+ name: Authorization
69
+ description: 'Bearer-style API key. Format implementation-defined; reference
70
+
71
+ impl uses `hk_`/`hk_test_` prefixes. Required scopes:
72
+
73
+ `runs:read` to subscribe. See `auth.md`.
74
+
75
+ '
76
+ parameters:
77
+ RunId:
78
+ description: The run to subscribe to. Format opaque; clients MUST treat as a string.
79
+ messages:
80
+ EvalStarted:
81
+ name: eval.started
82
+ title: Eval run started (RFC 0081)
83
+ summary: An eval run began. Content-free — suite provenance + counts only. Gated on capabilities.agents.evalSuite.supported.
84
+ contentType: application/json
85
+ payload:
86
+ $ref: '#/components/schemas/EvalStartedPayload'
87
+ EvalScored:
88
+ name: eval.scored
89
+ title: Eval task scored (RFC 0081)
90
+ summary: One eval task was scored (emitted per task, after its terminal agent.decided). Content-free — taskId + score
91
+ + scalars only, never task output (eval-summary-no-content-leak).
92
+ contentType: application/json
93
+ payload:
94
+ $ref: '#/components/schemas/EvalScoredPayload'
95
+ EvalCompleted:
96
+ name: eval.completed
97
+ title: Eval run completed (RFC 0081)
98
+ summary: An eval run finished. Content-free aggregate scalars; the full scorecard is the run output, read via GET /v1/runs/{runId}/eval-summary.
99
+ contentType: application/json
100
+ payload:
101
+ $ref: '#/components/schemas/EvalCompletedPayload'
102
+ DeploymentPromoted:
103
+ name: deployment.promoted
104
+ title: Deployment promoted (RFC 0082)
105
+ summary: A version was promoted into a new lifecycle state (gated by RFC 0049 deploy:* + RFC 0051 approvalGate + RFC
106
+ 0081 requiredEval). Content-free (deployment-event-no-content-leak). Principal-stamped + audit-logged.
107
+ contentType: application/json
108
+ payload:
109
+ $ref: '#/components/schemas/DeploymentPromotedPayload'
110
+ DeploymentRolledBack:
111
+ name: deployment.rolled-back
112
+ title: Deployment rolled back (RFC 0082)
113
+ summary: An active version was rolled back and a prior version restored. Content-free; recorded-fact; audit-logged.
114
+ contentType: application/json
115
+ payload:
116
+ $ref: '#/components/schemas/DeploymentRolledBackPayload'
117
+ DeploymentCanaryAdjusted:
118
+ name: deployment.canary.adjusted
119
+ title: Deployment canary adjusted (RFC 0082)
120
+ summary: An active version's canary traffic share changed. Content-free; recorded-fact; audit-logged.
121
+ contentType: application/json
122
+ payload:
123
+ $ref: '#/components/schemas/DeploymentCanaryAdjustedPayload'
124
+ DeploymentStateChanged:
125
+ name: deployment.state.changed
126
+ title: Deployment state changed (RFC 0082)
127
+ summary: A non-promotion lifecycle transition (pause / resume / deprecate). Content-free; recorded-fact; audit-logged.
128
+ contentType: application/json
129
+ payload:
130
+ $ref: '#/components/schemas/DeploymentStateChangedPayload'
131
+ ProposalCreated:
132
+ name: proposal.created
133
+ title: Proposal created (RFC 0096)
134
+ summary: The host synthesized a reviewable-learning draft. Content-free — ids/kind/refs only, never the artifact body
135
+ or rationale (proposal-inert-until-applied). Emitted only when capabilities.agents.proposals is advertised.
136
+ contentType: application/json
137
+ payload:
138
+ $ref: '#/components/schemas/ProposalCreatedPayload'
139
+ ProposalActivated:
140
+ name: proposal.activated
141
+ title: Proposal activated (RFC 0096)
142
+ summary: A proposal was applied (RFC 0051/0049-gated). Content-free; the installed artifact byte-matches the last-persisted
143
+ draft (proposal-no-resynthesis).
144
+ contentType: application/json
145
+ payload:
146
+ $ref: '#/components/schemas/ProposalActivatedPayload'
147
+ GoalEvaluated:
148
+ name: goal.evaluated
149
+ title: Goal evaluated (RFC 0097)
150
+ summary: A judge check ran against a standing goal. Content-free — no objective text; the verdict is recorded (not recomputed
151
+ on replay).
152
+ contentType: application/json
153
+ payload:
154
+ $ref: '#/components/schemas/GoalEvaluatedPayload'
155
+ GoalClosed:
156
+ name: goal.closed
157
+ title: Goal closed (RFC 0097)
158
+ summary: A standing goal stopped continuation (satisfied / escalated / abandoned / bound-exceeded). Content-free.
159
+ contentType: application/json
160
+ payload:
161
+ $ref: '#/components/schemas/GoalClosedPayload'
162
+ ImportApplied:
163
+ name: import.applied
164
+ title: Import applied (RFC 0098)
165
+ summary: An estate import was applied. Content-free — counts + refs only, never item payloads or secret values (export-bundle-no-credential-material).
166
+ contentType: application/json
167
+ payload:
168
+ $ref: '#/components/schemas/ImportAppliedPayload'
169
+ RunStarted:
170
+ name: run.started
171
+ title: Run started
172
+ summary: A new run was registered and execution began.
173
+ contentType: application/json
174
+ payload:
175
+ $ref: '#/components/schemas/RunEventDoc'
176
+ RunCompleted:
177
+ name: run.completed
178
+ title: Run completed (terminal)
179
+ summary: Run reached terminal success state. SSE connection closes after this event.
180
+ contentType: application/json
181
+ payload:
182
+ $ref: '#/components/schemas/RunEventDoc'
183
+ RunFailed:
184
+ name: run.failed
185
+ title: Run failed (terminal)
186
+ summary: Run reached terminal failure state. SSE connection closes after this event.
187
+ contentType: application/json
188
+ payload:
189
+ $ref: '#/components/schemas/RunEventDoc'
190
+ RunCancelled:
191
+ name: run.cancelled
192
+ title: Run cancelled (terminal)
193
+ summary: Run was cancelled by user or admin. SSE connection closes after this event.
194
+ contentType: application/json
195
+ payload:
196
+ $ref: '#/components/schemas/RunEventDoc'
197
+ CompensationRequested:
198
+ name: compensation.requested
199
+ title: Compensation plan persisted (RFC 0151 §C/§D)
200
+ summary: The unwind plan is durable. §C requires this BEFORE the first inverse action executes — a host that starts
201
+ unwinding first cannot resume after a crash, and the crash is when resumption matters.
202
+ contentType: application/json
203
+ payload:
204
+ $ref: '#/components/schemas/RunEventDoc'
205
+ CompensationStarted:
206
+ name: compensation.started
207
+ title: First inverse action started (RFC 0151 §D)
208
+ summary: Compensation began executing. MUST follow compensation.requested.
209
+ contentType: application/json
210
+ payload:
211
+ $ref: '#/components/schemas/RunEventDoc'
212
+ CompensationCompleted:
213
+ name: compensation.completed
214
+ title: Compensation completed (RFC 0151 §D)
215
+ summary: Every inverse action in the plan succeeded.
216
+ contentType: application/json
217
+ payload:
218
+ $ref: '#/components/schemas/RunEventDoc'
219
+ CompensationFailed:
220
+ name: compensation.failed
221
+ title: Compensation failed (RFC 0151 §D)
222
+ summary: An inverse action exhausted its retries. Compensation is a second effect, not an undo — it can fail, and the
223
+ run's compensationStatus records that rather than the run silently reporting success.
224
+ contentType: application/json
225
+ payload:
226
+ $ref: '#/components/schemas/RunEventDoc'
227
+ CompensationPaused:
228
+ name: compensation.paused
229
+ title: Compensation paused for authorized intervention (RFC 0151 §C)
230
+ summary: Cancelling the parent MUST NOT silently abandon an active compensation. It continues, pauses here, or records
231
+ manual intervention required.
232
+ contentType: application/json
233
+ payload:
234
+ $ref: '#/components/schemas/RunEventDoc'
235
+ CompensationManualInterventionRequired:
236
+ name: compensation.manual_intervention_required
237
+ title: Compensation needs an operator (RFC 0151 §C/§E)
238
+ summary: The host cannot proceed unaided. Recorded explicitly because an unwind that stops without saying so is indistinguishable
239
+ from one that finished.
240
+ contentType: application/json
241
+ payload:
242
+ $ref: '#/components/schemas/RunEventDoc'
243
+ RunPaused:
244
+ name: run.paused
245
+ title: Run paused
246
+ summary: Run paused (e.g., capability limit reached, manual pause).
247
+ contentType: application/json
248
+ payload:
249
+ $ref: '#/components/schemas/RunEventDoc'
250
+ RunResumed:
251
+ name: run.resumed
252
+ title: Run resumed
253
+ summary: Run resumed from pause/suspend.
254
+ contentType: application/json
255
+ payload:
256
+ $ref: '#/components/schemas/RunEventDoc'
257
+ RunAnnotated:
258
+ name: run.annotated
259
+ title: Run annotated (RFC 0056)
260
+ summary: A non-blocking quality annotation was recorded for the run. Live notification ONLY — NOT a replayable run-event-log
261
+ entry; its payload is an Annotation (not a RunEventDoc), so it is excluded from fork/replay (RFC 0056 §B/§D).
262
+ contentType: application/json
263
+ payload:
264
+ $ref: '#/components/schemas/Annotation'
265
+ WorkspaceUpdated:
266
+ name: workspace.updated
267
+ title: Workspace file updated (RFC 0059)
268
+ summary: A workspace file was created, replaced, or deleted via the host.workspace store. Content-free — carries the
269
+ file path + resulting version only (the body is served by the read-side, SR-1-redacted). A replayable run-event-log
270
+ entry (re-read from the log on replay, never regenerated); gated on capabilities.workspace.supported.
271
+ contentType: application/json
272
+ payload:
273
+ $ref: '#/components/schemas/WorkspaceUpdatedPayload'
274
+ HeartbeatEvaluated:
275
+ name: heartbeat.evaluated
276
+ title: Heartbeat evaluated (RFC 0060)
277
+ summary: A heartbeat predicate was evaluated this tick (status + changed flag). Heartbeat-scoped observability.
278
+ contentType: application/json
279
+ payload:
280
+ $ref: '#/components/schemas/HeartbeatEvaluated'
281
+ HeartbeatStateChanged:
282
+ name: heartbeat.stateChanged
283
+ title: Heartbeat state changed (RFC 0060)
284
+ summary: A heartbeat predicate's state transitioned; emitted ONLY on change (never on an unchanged tick). Heartbeat-scoped.
285
+ contentType: application/json
286
+ payload:
287
+ $ref: '#/components/schemas/HeartbeatStateChanged'
288
+ NodeCompleted:
289
+ name: node.completed
290
+ title: Node completed successfully
291
+ contentType: application/json
292
+ payload:
293
+ $ref: '#/components/schemas/RunEventDoc'
294
+ NodeFailed:
295
+ name: node.failed
296
+ title: Node failed
297
+ contentType: application/json
298
+ payload:
299
+ $ref: '#/components/schemas/RunEventDoc'
300
+ NodeSkipped:
301
+ name: node.skipped
302
+ title: Node skipped due to edge condition
303
+ contentType: application/json
304
+ payload:
305
+ $ref: '#/components/schemas/RunEventDoc'
306
+ NodeSuspended:
307
+ name: node.suspended
308
+ title: Node suspended (HITL or external-event wait)
309
+ contentType: application/json
310
+ payload:
311
+ $ref: '#/components/schemas/RunEventDoc'
312
+ NodeDispatched:
313
+ name: node.dispatched
314
+ title: core.dispatch spawned a child workflow (RFC 0007 §D + RFC 0022 §A)
315
+ contentType: application/json
316
+ payload:
317
+ $ref: '#/components/schemas/RunEventDoc'
318
+ DispatchFanOut:
319
+ name: core.dispatch.fanOut
320
+ title: core.dispatch began a parallel fan-out wave (RFC 0118)
321
+ summary: Emitted when a fanOutPolicy=parallel wave begins; payload $defs.dispatchFanOut carries childCount/maxConcurrency/joinMode.
322
+ Parallel path only.
323
+ contentType: application/json
324
+ payload:
325
+ $ref: '#/components/schemas/RunEventDoc'
326
+ DispatchJoin:
327
+ name: core.dispatch.join
328
+ title: core.dispatch parallel join satisfied (RFC 0118)
329
+ summary: Emitted when a fanOutPolicy=parallel join is satisfied/failed; payload $defs.dispatchJoin carries joinOutcome
330
+ + the replay-deterministic mergeOrder.
331
+ contentType: application/json
332
+ payload:
333
+ $ref: '#/components/schemas/RunEventDoc'
334
+ ApprovalRequested:
335
+ name: approval.requested
336
+ title: Approval requested
337
+ summary: Engine emitted an approval interrupt awaiting user resolution.
338
+ contentType: application/json
339
+ payload:
340
+ $ref: '#/components/schemas/RunEventDoc'
341
+ ApprovalReceived:
342
+ name: approval.received
343
+ title: Approval received
344
+ summary: User resolved an approval interrupt (accept/reject/refine/edit).
345
+ contentType: application/json
346
+ payload:
347
+ $ref: '#/components/schemas/RunEventDoc'
348
+ ClarificationRequested:
349
+ name: clarification.requested
350
+ title: Clarification requested
351
+ contentType: application/json
352
+ payload:
353
+ $ref: '#/components/schemas/RunEventDoc'
354
+ ClarificationResolved:
355
+ name: clarification.resolved
356
+ title: Clarification resolved
357
+ contentType: application/json
358
+ payload:
359
+ $ref: '#/components/schemas/RunEventDoc'
360
+ InterruptRequested:
361
+ name: interrupt.requested
362
+ title: Interrupt requested (canonical HITL primitive)
363
+ summary: 'The discriminated-union form of the full `interrupt.md` kind union
364
+
365
+ (RFC 0094 §E): approval / clarification / external-event / custom /
366
+
367
+ conversation.start / conversation.exchange / conversation.close /
368
+
369
+ low-confidence.
370
+
371
+ Servers emitting `interrupt.requested` SHOULD also emit the legacy
372
+
373
+ kind-specific event (`approval.requested` etc) for backward compat
374
+
375
+ until consumers migrate.
376
+
377
+ '
378
+ contentType: application/json
379
+ payload:
380
+ $ref: '#/components/schemas/RunEventDoc'
381
+ InterruptResolved:
382
+ name: interrupt.resolved
383
+ title: Interrupt resolved
384
+ contentType: application/json
385
+ payload:
386
+ $ref: '#/components/schemas/RunEventDoc'
387
+ ArtifactCreated:
388
+ name: artifact.created
389
+ title: Artifact produced by a node
390
+ summary: A typed artifact (PRD, plan, theme, etc) was created and registered.
391
+ contentType: application/json
392
+ payload:
393
+ $ref: '#/components/schemas/RunEventDoc'
394
+ StateSnapshot:
395
+ name: state.snapshot
396
+ title: Full projected run state
397
+ summary: 'Synthesized event emitted by the server in `values` mode after
398
+
399
+ each `updates`-tier transition. NOT a member of the canonical
400
+
401
+ `RunEventType` enum — this is a per-mode synthetic.
402
+
403
+ '
404
+ contentType: application/json
405
+ payload:
406
+ $ref: '#/components/schemas/StateSnapshotPayload'
407
+ AiMessageChunk:
408
+ name: ai.message.chunk
409
+ title: AI token chunk
410
+ summary: Per-token streaming chunk from a `core.ai.*` node.
411
+ contentType: application/json
412
+ payload:
413
+ $ref: '#/components/schemas/AiMessageChunkPayload'
414
+ AnyRunEvent:
415
+ name: any
416
+ title: Any RunEventDoc
417
+ summary: 'Type-erased handler for `debug` mode — discriminate on the
418
+
419
+ `type` field per the `RunEventType` enum in the run-event
420
+
421
+ JSON Schema (the authoritative, exhaustive event list; the
422
+
423
+ named messages above are a curated `updates`-tier subset).
424
+
425
+ Includes events filtered out of `updates`: `log.appended`,
426
+
427
+ `variable.changed`, `version.pinned`, `lease.*`, `node.retried`,
428
+
429
+ `replay.diverged`, `connector.authorized`,
430
+
431
+ `connector.auth_expired` (RFC 0047), `authorization.decided`
432
+
433
+ (RFC 0049), `approval.granted` / `approval.rejected` /
434
+
435
+ `approval.overridden` (RFC 0051), etc.
436
+
437
+ '
438
+ contentType: application/json
439
+ payload:
440
+ $ref: '#/components/schemas/RunEventDoc'
441
+ VoiceSpeechStart:
442
+ name: voice.speech_start
443
+ title: Inbound user speech onset detected
444
+ contentType: application/json
445
+ payload:
446
+ $ref: '#/components/schemas/RunEventDoc'
447
+ VoiceTranscript:
448
+ name: voice.transcript
449
+ title: Interim/final transcript part (untrusted ingress; carries contentTrust)
450
+ contentType: application/json
451
+ payload:
452
+ $ref: '#/components/schemas/RunEventDoc'
453
+ VoiceEndpointCandidate:
454
+ name: voice.endpoint_candidate
455
+ title: Likely end-of-turn boundary (semantic turn detection)
456
+ contentType: application/json
457
+ payload:
458
+ $ref: '#/components/schemas/RunEventDoc'
459
+ VoiceTurnCommit:
460
+ name: voice.turn_commit
461
+ title: User yielded the floor (callTranscriber Promise resolves here)
462
+ contentType: application/json
463
+ payload:
464
+ $ref: '#/components/schemas/RunEventDoc'
465
+ VoiceSynthesisChunk:
466
+ name: voice.synthesis_chunk
467
+ title: Clause-boundary streaming-synthesis chunk (metadata only)
468
+ contentType: application/json
469
+ payload:
470
+ $ref: '#/components/schemas/RunEventDoc'
471
+ VoiceBargeIn:
472
+ name: voice.barge_in
473
+ title: User speech overlapped active assistant playback
474
+ contentType: application/json
475
+ payload:
476
+ $ref: '#/components/schemas/RunEventDoc'
477
+ VoiceCancelled:
478
+ name: voice.cancelled
479
+ title: Downstream LLM/TTS work cancelled (barge-in or explicit)
480
+ contentType: application/json
481
+ payload:
482
+ $ref: '#/components/schemas/RunEventDoc'
483
+ RunEvent:
484
+ name: runEvent
485
+ title: Run event (RFC 0171 §A)
486
+ contentType: text/event-stream
487
+ payload:
488
+ $ref: ../../schemas/v2/run-event.schema.json
489
+ description: One SSE frame per run event; `event:` is the v2 type, `id:` is the sequence (RFC 0171 §A.3).
490
+ schemas:
491
+ RunEventDoc:
492
+ $ref: ../../schemas/v2/run-event.schema.json
493
+ EvalStartedPayload:
494
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/evalStarted
495
+ EvalScoredPayload:
496
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/evalScored
497
+ EvalCompletedPayload:
498
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/evalCompleted
499
+ DeploymentPromotedPayload:
500
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/deploymentPromoted
501
+ DeploymentRolledBackPayload:
502
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/deploymentRolledBack
503
+ DeploymentCanaryAdjustedPayload:
504
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/deploymentCanaryAdjusted
505
+ DeploymentStateChangedPayload:
506
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/deploymentStateChanged
507
+ ProposalCreatedPayload:
508
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/proposalCreated
509
+ ProposalActivatedPayload:
510
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/proposalActivated
511
+ GoalEvaluatedPayload:
512
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/goalEvaluated
513
+ GoalClosedPayload:
514
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/goalClosed
515
+ ImportAppliedPayload:
516
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/importApplied
517
+ Annotation:
518
+ $ref: ../../schemas/v2/annotation.schema.json
519
+ WorkspaceUpdatedPayload:
520
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/workspaceUpdated
521
+ HeartbeatEvaluated:
522
+ $ref: ../../schemas/v2/heartbeat-evaluated.schema.json
523
+ HeartbeatStateChanged:
524
+ $ref: ../../schemas/v2/heartbeat-state-changed.schema.json
525
+ StateSnapshotPayload:
526
+ $ref: ../../schemas/v2/run-snapshot.schema.json
527
+ AiMessageChunkPayload:
528
+ $ref: ../../schemas/v2/run-event-payloads.schema.json#/$defs/outputChunk