@whooshbang/contracts 3.0.0 → 3.2.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 (94) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/contract-manifest.json +32 -32
  3. package/dist/generated/artifact-index.d.ts +33 -33
  4. package/dist/generated/artifact-index.js +32 -32
  5. package/dist/generated/validators-standalone.d.ts +582 -491
  6. package/dist/generated/validators-standalone.js +10298 -5133
  7. package/dist/generated/validators-standalone.js.map +1 -1
  8. package/dist/generated/validators.d.ts +8 -1
  9. package/dist/generated/validators.js +8 -1
  10. package/dist/generated/validators.js.map +1 -1
  11. package/dist/generated/whooshbang-v1.d.ts +426 -3
  12. package/dist/index.d.ts +2 -2
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/input-defaults.d.ts +1 -1
  16. package/dist/input-defaults.js.map +1 -1
  17. package/fixtures/core-v1/fixture-index.json +1 -1
  18. package/fixtures/core-v1/scenarios/api-credential-invalid-indistinguishable.json +1 -1
  19. package/fixtures/core-v1/scenarios/api-credential-one-time-reveal.json +1 -1
  20. package/fixtures/core-v1/scenarios/api-credential-revocation-replay.json +1 -1
  21. package/fixtures/core-v1/scenarios/api-credential-rotation-overlap.json +1 -1
  22. package/fixtures/core-v1/scenarios/cancellation-too-late.json +1 -1
  23. package/fixtures/core-v1/scenarios/cross-organization-project.json +1 -1
  24. package/fixtures/core-v1/scenarios/cross-project-resource.json +1 -1
  25. package/fixtures/core-v1/scenarios/environment-mismatch.json +1 -1
  26. package/fixtures/core-v1/scenarios/idempotency-conflict.json +1 -1
  27. package/fixtures/core-v1/scenarios/idempotency-equivalent-replay.json +1 -1
  28. package/fixtures/core-v1/scenarios/malformed-bearer.json +1 -1
  29. package/fixtures/core-v1/scenarios/metadata-overrun.json +1 -1
  30. package/fixtures/core-v1/scenarios/missing-scope.json +1 -1
  31. package/fixtures/core-v1/scenarios/project-create-equivalent-replay.json +1 -1
  32. package/fixtures/core-v1/scenarios/project-slug-conflict.json +1 -1
  33. package/fixtures/core-v1/scenarios/provider-outcome-unknown.json +1 -1
  34. package/fixtures/core-v1/scenarios/subscription-activation-replay.json +1 -1
  35. package/fixtures/core-v1/scenarios/subscription-authorization-capability-opacity.json +1 -1
  36. package/fixtures/core-v1/scenarios/subscription-cross-connection-callback-rejected.json +1 -1
  37. package/fixtures/core-v1/scenarios/subscription-expired-replay.json +1 -1
  38. package/fixtures/core-v1/scenarios/subscription-selected-connection-replay.json +1 -1
  39. package/fixtures/interaction-machine-v1/scenarios/ack-conflict.json +1 -1
  40. package/fixtures/interaction-machine-v1/scenarios/ack-cross-machine.json +1 -1
  41. package/fixtures/interaction-machine-v1/scenarios/ack-out-of-order.json +1 -1
  42. package/fixtures/interaction-machine-v1/scenarios/ack-replay.json +1 -1
  43. package/fixtures/interaction-machine-v1/scenarios/ambiguous-free-text.json +1 -1
  44. package/fixtures/interaction-machine-v1/scenarios/callback-token-opacity.json +1 -1
  45. package/fixtures/interaction-machine-v1/scenarios/credential-registration-conflict.json +1 -1
  46. package/fixtures/interaction-machine-v1/scenarios/credential-registration-replay.json +1 -1
  47. package/fixtures/interaction-machine-v1/scenarios/credential-revocation-replay.json +1 -1
  48. package/fixtures/interaction-machine-v1/scenarios/credential-rotation.json +1 -1
  49. package/fixtures/interaction-machine-v1/scenarios/first-credential-activates.json +1 -1
  50. package/fixtures/interaction-machine-v1/scenarios/interaction-duplicate.json +1 -1
  51. package/fixtures/interaction-machine-v1/scenarios/interaction-expired.json +1 -1
  52. package/fixtures/interaction-machine-v1/scenarios/interaction-mismatch.json +1 -1
  53. package/fixtures/interaction-machine-v1/scenarios/interaction-retired.json +1 -1
  54. package/fixtures/interaction-machine-v1/scenarios/interaction-stale.json +1 -1
  55. package/fixtures/interaction-machine-v1/scenarios/machine-admin-denied.json +1 -1
  56. package/fixtures/interaction-machine-v1/scenarios/machine-bound-message-create.json +1 -1
  57. package/fixtures/interaction-machine-v1/scenarios/machine-cancel-denied.json +1 -1
  58. package/fixtures/interaction-machine-v1/scenarios/machine-crash-before-ack.json +1 -1
  59. package/fixtures/interaction-machine-v1/scenarios/machine-notifier-mismatch.json +1 -1
  60. package/fixtures/interaction-machine-v1/scenarios/machine-other-message-read.json +1 -1
  61. package/fixtures/interaction-machine-v1/scenarios/machine-owned-message-read.json +1 -1
  62. package/fixtures/interaction-machine-v1/scenarios/machine-subscriber-mismatch.json +1 -1
  63. package/fixtures/interaction-machine-v1/scenarios/poll-uncommitted-cursor-rejected.json +1 -1
  64. package/fixtures/interaction-machine-v1/scenarios/project-credential-machine-endpoint-denied.json +1 -1
  65. package/fixtures/interaction-machine-v1/scenarios/quarantine-integrity-rejected.json +1 -1
  66. package/fixtures/interaction-machine-v1/scenarios/quarantine-signature-rejected.json +1 -1
  67. package/fixtures/interaction-machine-v1/scenarios/quarantine-valid.json +1 -1
  68. package/fixtures/interaction-machine-v1/scenarios/revoked-machine-credential.json +1 -1
  69. package/fixtures/recipient-experience-v1/scenarios/membership-broadcast-snapshot.json +1 -1
  70. package/fixtures/recipient-experience-v1/scenarios/preferred-binding-resolution.json +1 -1
  71. package/fixtures/recipient-experience-v1/scenarios/recipient-session-security.json +1 -1
  72. package/fixtures/recipient-experience-v1/scenarios/subscriber-initial-groups-transaction.json +1 -1
  73. package/openapi/generated/whooshbang-v1.bundle.json +599 -16
  74. package/openapi/whooshbang-v1.yaml +286 -2
  75. package/package.json +1 -1
  76. package/schemas/core-scenario.schema.json +1 -1
  77. package/schemas/events/agent-binding-degraded-v1.schema.json +1 -1
  78. package/schemas/events/interaction-expired-v1.schema.json +1 -1
  79. package/schemas/events/interaction-received-v1.schema.json +1 -1
  80. package/schemas/events/message-delivered-v1.schema.json +1 -1
  81. package/schemas/events/message-expired-v1.schema.json +1 -1
  82. package/schemas/events/message-failed-v1.schema.json +1 -1
  83. package/schemas/events/message-provider-accepted-v1.schema.json +1 -1
  84. package/schemas/events/subscription-activated-v1.schema.json +1 -1
  85. package/schemas/events/subscription-revoked-v1.schema.json +1 -1
  86. package/schemas/events/whooshbang-event-v1.schema.json +1 -1
  87. package/schemas/fixture-index.schema.json +1 -1
  88. package/schemas/interaction-machine-scenario.schema.json +1 -1
  89. package/schemas/interaction-v1.schema.json +1 -1
  90. package/schemas/machine-v1.schema.json +1 -1
  91. package/schemas/provider-capabilities-v1.schema.json +1 -1
  92. package/schemas/webhooks/webhook-delivery-case-v1.schema.json +1 -1
  93. package/schemas/webhooks/webhook-signing-vector-v1.schema.json +1 -1
  94. package/schemas/whooshbang-v1.schema.json +294 -9
@@ -1,10 +1,10 @@
1
1
  openapi: 3.1.1
2
2
  jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
3
3
  # whooshbang:public-origin production api https://api.whooshbang.com
4
- x-contract-version: 3.0.0
4
+ x-contract-version: 3.2.0
5
5
  info:
6
6
  title: WhooshBang API
7
- version: 3.0.0
7
+ version: 3.2.0
8
8
  description: |
9
9
  The V1 contract for human organization/project administration, project-scoped
10
10
  subscription links, and asynchronous text messages. A Clerk session selects
@@ -51,6 +51,8 @@ tags:
51
51
  description: Single-use, expiring Telegram authorization links.
52
52
  - name: Messages
53
53
  description: Asynchronous logical messages and their highest proven outcomes.
54
+ - name: Message categories
55
+ description: Project categories and subscriber choices for those categories.
54
56
  - name: Machine clients
55
57
  description: Project-administered, destination-bound local-client identities and one-way credential metadata.
56
58
  - name: Machine events
@@ -72,6 +74,183 @@ tags:
72
74
  - name: Group broadcasts
73
75
  description: Durable group acceptance and aggregate projection over ordinary child messages.
74
76
  paths:
77
+ /v1/projects/{project_id}/message-categories:
78
+ parameters:
79
+ - $ref: "#/components/parameters/ProjectId"
80
+ get:
81
+ operationId: listMessageCategories
82
+ summary: List project message categories
83
+ tags: [Message categories]
84
+ security:
85
+ - clerkSession: []
86
+ - bearerGrant: []
87
+ - bearerCredential: []
88
+ x-required-scopes: [projects:read]
89
+ responses:
90
+ "200":
91
+ description: Categories in this project.
92
+ content:
93
+ application/json:
94
+ schema:
95
+ $ref: "#/components/schemas/MessageCategoryCollection"
96
+ "401":
97
+ $ref: "#/components/responses/Unauthorized"
98
+ "403":
99
+ $ref: "#/components/responses/Forbidden"
100
+ "404":
101
+ $ref: "#/components/responses/NotFound"
102
+ post:
103
+ operationId: createMessageCategory
104
+ summary: Add a project message category
105
+ tags: [Message categories]
106
+ security:
107
+ - clerkSession: []
108
+ - bearerGrant: []
109
+ - bearerCredential: []
110
+ x-required-scopes: [projects:write]
111
+ requestBody:
112
+ required: true
113
+ content:
114
+ application/json:
115
+ schema:
116
+ $ref: "#/components/schemas/CreateMessageCategoryRequest"
117
+ responses:
118
+ "201":
119
+ description: Category added.
120
+ content:
121
+ application/json:
122
+ schema:
123
+ $ref: "#/components/schemas/MessageCategory"
124
+ "400":
125
+ $ref: "#/components/responses/BadRequest"
126
+ "401":
127
+ $ref: "#/components/responses/Unauthorized"
128
+ "403":
129
+ $ref: "#/components/responses/Forbidden"
130
+ "409":
131
+ $ref: "#/components/responses/Conflict"
132
+ /v1/projects/{project_id}/message-categories/{category_key}:
133
+ parameters:
134
+ - $ref: "#/components/parameters/ProjectId"
135
+ - name: category_key
136
+ in: path
137
+ required: true
138
+ schema:
139
+ $ref: "#/components/schemas/MessageCategoryKey"
140
+ put:
141
+ operationId: updateMessageCategory
142
+ summary: Change a project's message category
143
+ tags: [Message categories]
144
+ security:
145
+ - clerkSession: []
146
+ - bearerGrant: []
147
+ - bearerCredential: []
148
+ x-required-scopes: [projects:write]
149
+ requestBody:
150
+ required: true
151
+ content:
152
+ application/json:
153
+ schema:
154
+ $ref: "#/components/schemas/UpdateMessageCategoryRequest"
155
+ responses:
156
+ "200":
157
+ description: Category updated.
158
+ content:
159
+ application/json:
160
+ schema:
161
+ $ref: "#/components/schemas/MessageCategory"
162
+ "400":
163
+ $ref: "#/components/responses/BadRequest"
164
+ "401":
165
+ $ref: "#/components/responses/Unauthorized"
166
+ "403":
167
+ $ref: "#/components/responses/Forbidden"
168
+ "404":
169
+ $ref: "#/components/responses/NotFound"
170
+ "409":
171
+ $ref: "#/components/responses/Conflict"
172
+ delete:
173
+ operationId: deleteMessageCategory
174
+ summary: Remove an unused message category
175
+ tags: [Message categories]
176
+ description: The default category and a category still used by queued messages cannot be removed.
177
+ security:
178
+ - clerkSession: []
179
+ - bearerGrant: []
180
+ - bearerCredential: []
181
+ x-required-scopes: [projects:write]
182
+ responses:
183
+ "204":
184
+ description: Category removed.
185
+ "401":
186
+ $ref: "#/components/responses/Unauthorized"
187
+ "403":
188
+ $ref: "#/components/responses/Forbidden"
189
+ "404":
190
+ $ref: "#/components/responses/NotFound"
191
+ "409":
192
+ $ref: "#/components/responses/Conflict"
193
+ /v1/projects/{project_id}/environments/{environment_id}/notification-preferences/categories:
194
+ parameters:
195
+ - $ref: "#/components/parameters/ProjectId"
196
+ - $ref: "#/components/parameters/EnvironmentId"
197
+ get:
198
+ operationId: getOwnCategoryPreferences
199
+ summary: Read my message category switches
200
+ tags: [Message categories]
201
+ security:
202
+ - clerkSession: []
203
+ x-required-scopes: [messages:read]
204
+ responses:
205
+ "200":
206
+ description: Category choices for the signed-in person.
207
+ content:
208
+ application/json:
209
+ schema:
210
+ $ref: "#/components/schemas/SubscriberCategoryPreferenceCollection"
211
+ "401":
212
+ $ref: "#/components/responses/Unauthorized"
213
+ "403":
214
+ $ref: "#/components/responses/Forbidden"
215
+ /v1/projects/{project_id}/environments/{environment_id}/notification-preferences/categories/{category_key}:
216
+ parameters:
217
+ - $ref: "#/components/parameters/ProjectId"
218
+ - $ref: "#/components/parameters/EnvironmentId"
219
+ - name: category_key
220
+ in: path
221
+ required: true
222
+ schema:
223
+ $ref: "#/components/schemas/MessageCategoryKey"
224
+ put:
225
+ operationId: setOwnCategoryPreference
226
+ summary: Switch one of my message categories on or off
227
+ tags: [Message categories]
228
+ security:
229
+ - clerkSession: []
230
+ x-required-scopes: [messages:write]
231
+ requestBody:
232
+ required: true
233
+ content:
234
+ application/json:
235
+ schema:
236
+ $ref: "#/components/schemas/SetSubscriberCategoryPreferenceRequest"
237
+ responses:
238
+ "200":
239
+ description: Updated category choice.
240
+ content:
241
+ application/json:
242
+ schema:
243
+ $ref: "#/components/schemas/SubscriberCategoryPreference"
244
+ "400":
245
+ $ref: "#/components/responses/BadRequest"
246
+ "401":
247
+ $ref: "#/components/responses/Unauthorized"
248
+ "403":
249
+ $ref: "#/components/responses/Forbidden"
250
+ "404":
251
+ $ref: "#/components/responses/NotFound"
252
+ "409":
253
+ $ref: "#/components/responses/Conflict"
75
254
  /v1/projects/{project_id}/environments/{environment_id}/whoami:
76
255
  get:
77
256
  operationId: whoAmI
@@ -327,6 +506,41 @@ paths:
327
506
  $ref: "#/components/responses/Unauthorized"
328
507
  "403":
329
508
  $ref: "#/components/responses/Forbidden"
509
+ /v1/projects/{project_id}/environments/{environment_id}/notification-preferences/bindings/{binding_id}/resume:
510
+ post:
511
+ operationId: resumeOperatorBinding
512
+ x-notification-scopes: [notifications:self, notifications:team]
513
+ summary: resumeOperatorBinding
514
+ description: Resumes one of the authenticated person's own paused channels. Only the authenticated human can manage personal preferences; this never establishes consent or revives a revoked binding.
515
+ tags: [Operators]
516
+ security:
517
+ - clerkSession: []
518
+ - bearerCredential: []
519
+ - bearerGrant: [messages:write]
520
+ - bearerGrant: [notifications:self]
521
+ - bearerGrant: [notifications:team]
522
+ x-required-scopes: [messages:write]
523
+ parameters:
524
+ - $ref: "#/components/parameters/ProjectId"
525
+ - $ref: "#/components/parameters/EnvironmentId"
526
+ - in: path
527
+ name: binding_id
528
+ required: true
529
+ schema:
530
+ $ref: "../schemas/whooshbang-v1.schema.json#/$defs/OpaqueIdentifier"
531
+ responses:
532
+ "200":
533
+ description: Authorized result.
534
+ content:
535
+ application/json:
536
+ schema:
537
+ $ref: "#/components/schemas/OperatorPreferences"
538
+ "401":
539
+ $ref: "#/components/responses/Unauthorized"
540
+ "403":
541
+ $ref: "#/components/responses/Forbidden"
542
+ "404":
543
+ $ref: "#/components/responses/NotFound"
330
544
  /v1/projects/{project_id}/environments/{environment_id}/notification-preferences/connect:
331
545
  post:
332
546
  operationId: connectOperatorChannel
@@ -5623,6 +5837,60 @@ paths:
5623
5837
  $ref: "#/components/responses/RecipientCapabilityInvalid"
5624
5838
  "403":
5625
5839
  $ref: "#/components/responses/RecipientOriginForbidden"
5840
+ /v1/recipient-session/category-preferences:
5841
+ get:
5842
+ operationId: getCategoryPreferences
5843
+ summary: Read this subscriber's message categories and switches
5844
+ tags: [Message categories]
5845
+ security:
5846
+ - recipientSessionCapability: []
5847
+ responses:
5848
+ "200":
5849
+ description: Category choices for this exact subscriber.
5850
+ content:
5851
+ application/json:
5852
+ schema:
5853
+ $ref: "#/components/schemas/SubscriberCategoryPreferenceCollection"
5854
+ "401":
5855
+ $ref: "#/components/responses/RecipientCapabilityInvalid"
5856
+ "403":
5857
+ $ref: "#/components/responses/RecipientOriginForbidden"
5858
+ /v1/recipient-session/category-preferences/{category_key}:
5859
+ parameters:
5860
+ - name: category_key
5861
+ in: path
5862
+ required: true
5863
+ schema:
5864
+ $ref: "#/components/schemas/MessageCategoryKey"
5865
+ put:
5866
+ operationId: setCategoryPreference
5867
+ summary: Switch one of this subscriber's message categories on or off
5868
+ tags: [Message categories]
5869
+ security:
5870
+ - recipientSessionCapability: []
5871
+ requestBody:
5872
+ required: true
5873
+ content:
5874
+ application/json:
5875
+ schema:
5876
+ $ref: "#/components/schemas/SetSubscriberCategoryPreferenceRequest"
5877
+ responses:
5878
+ "200":
5879
+ description: Updated category choice.
5880
+ content:
5881
+ application/json:
5882
+ schema:
5883
+ $ref: "#/components/schemas/SubscriberCategoryPreference"
5884
+ "400":
5885
+ $ref: "#/components/responses/BadRequest"
5886
+ "401":
5887
+ $ref: "#/components/responses/RecipientCapabilityInvalid"
5888
+ "403":
5889
+ $ref: "#/components/responses/RecipientOriginForbidden"
5890
+ "404":
5891
+ $ref: "#/components/responses/NotFound"
5892
+ "409":
5893
+ $ref: "#/components/responses/Conflict"
5626
5894
  /v1/recipient-session/logo/{asset_id}:
5627
5895
  parameters:
5628
5896
  - name: Origin
@@ -9098,6 +9366,22 @@ components:
9098
9366
  schema:
9099
9367
  $ref: "#/components/schemas/DiagnosticId"
9100
9368
  schemas:
9369
+ MessageCategoryKey:
9370
+ $ref: ../schemas/whooshbang-v1.schema.json#/$defs/MessageCategoryKey
9371
+ MessageCategory:
9372
+ $ref: ../schemas/whooshbang-v1.schema.json#/$defs/MessageCategory
9373
+ MessageCategoryCollection:
9374
+ $ref: ../schemas/whooshbang-v1.schema.json#/$defs/MessageCategoryCollection
9375
+ CreateMessageCategoryRequest:
9376
+ $ref: ../schemas/whooshbang-v1.schema.json#/$defs/CreateMessageCategoryRequest
9377
+ UpdateMessageCategoryRequest:
9378
+ $ref: ../schemas/whooshbang-v1.schema.json#/$defs/UpdateMessageCategoryRequest
9379
+ SubscriberCategoryPreference:
9380
+ $ref: ../schemas/whooshbang-v1.schema.json#/$defs/SubscriberCategoryPreference
9381
+ SubscriberCategoryPreferenceCollection:
9382
+ $ref: ../schemas/whooshbang-v1.schema.json#/$defs/SubscriberCategoryPreferenceCollection
9383
+ SetSubscriberCategoryPreferenceRequest:
9384
+ $ref: ../schemas/whooshbang-v1.schema.json#/$defs/SetSubscriberCategoryPreferenceRequest
9101
9385
  WhoAmI:
9102
9386
  $ref: ../schemas/whooshbang-v1.schema.json#/$defs/WhoAmI
9103
9387
  Operator:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whooshbang/contracts",
3
- "version": "3.0.0",
3
+ "version": "3.2.0",
4
4
  "description": "Versioned public contracts for WhooshBang",
5
5
  "private": false,
6
6
  "license": "MIT",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/core-scenario.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "CoreContractScenario",
6
6
  "description": "A deterministic C0-02 semantic, state, idempotency, or isolation scenario.",
7
7
  "type": "object",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/events/agent-binding-degraded-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "AgentBindingDegradedEventV1",
6
6
  "description": "An agent binding entered a provider-neutral degraded state.",
7
7
  "$ref": "whooshbang-event-v1.schema.json#/$defs/AgentBindingDegradedEvent"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/events/interaction-expired-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "InteractionExpiredEventV1",
6
6
  "description": "An interaction reached its terminal expiry without a valid answer.",
7
7
  "$ref": "whooshbang-event-v1.schema.json#/$defs/InteractionExpiredEvent"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/events/interaction-received-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "InteractionReceivedEventV1",
6
6
  "description": "One authenticated, provider-neutral interaction answer was received.",
7
7
  "$ref": "whooshbang-event-v1.schema.json#/$defs/InteractionReceivedEvent"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/events/message-delivered-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "MessageDeliveredEventV1",
6
6
  "description": "A provider supplied trustworthy evidence that a message was delivered.",
7
7
  "$ref": "whooshbang-event-v1.schema.json#/$defs/MessageDeliveredEvent"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/events/message-expired-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "MessageExpiredEventV1",
6
6
  "description": "A message expired before reaching a later delivery state.",
7
7
  "$ref": "whooshbang-event-v1.schema.json#/$defs/MessageExpiredEvent"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/events/message-failed-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "MessageFailedEventV1",
6
6
  "description": "A message reached a classified terminal failure.",
7
7
  "$ref": "whooshbang-event-v1.schema.json#/$defs/MessageFailedEvent"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/events/message-provider-accepted-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "MessageProviderAcceptedEventV1",
6
6
  "description": "The provider accepted a message without implying delivery.",
7
7
  "$ref": "whooshbang-event-v1.schema.json#/$defs/MessageProviderAcceptedEvent"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/events/subscription-activated-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "SubscriptionActivatedEventV1",
6
6
  "description": "A subscription became active with a safe public channel binding.",
7
7
  "$ref": "whooshbang-event-v1.schema.json#/$defs/SubscriptionActivatedEvent"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/events/subscription-revoked-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "SubscriptionRevokedEventV1",
6
6
  "description": "A subscription and its safe public channel binding were revoked.",
7
7
  "$ref": "whooshbang-event-v1.schema.json#/$defs/SubscriptionRevokedEvent"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/events/whooshbang-event-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "WhooshBangEventV1ContractDocument",
6
6
  "description": "Strict public customer-event envelope and initial WhooshBang event union.",
7
7
  "oneOf": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/fixture-index.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "CoreFixtureIndex",
6
6
  "description": "The machine-readable index of deterministic C0-02 through C0-04 golden fixtures.",
7
7
  "type": "object",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/interaction-machine-scenario.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "InteractionMachineScenario",
6
6
  "description": "A deterministic C0-03 interaction, credential, authorization, polling, acknowledgement, or quarantine scenario.",
7
7
  "type": "object",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/interaction-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "InteractionV1ContractDocument",
6
6
  "description": "Provider-neutral confirm, single-select, input, lifecycle, callback-token, and authenticated answer-event contracts.",
7
7
  "$defs": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/machine-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "MachineV1ContractDocument",
6
6
  "description": "Machine-client administration, locally generated credential metadata, durable long-poll, and contiguous acknowledgement contracts.",
7
7
  "oneOf": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/provider-capabilities-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "ProviderCapabilitiesV1",
6
6
  "description": "Provider-neutral, renderer-facing delivery and interaction capabilities with explicit degradation.",
7
7
  "type": "object",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/webhooks/webhook-delivery-case-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "WebhookDeliveryCaseSetV1",
6
6
  "description": "Deterministic customer webhook response classification, Retry-After, and delivery-bound cases.",
7
7
  "type": "object",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://whooshbang.flowxo.com/schemas/webhooks/webhook-signing-vector-v1.schema.json",
4
- "x-contract-version": "3.0.0",
4
+ "x-contract-version": "3.2.0",
5
5
  "title": "WebhookSigningVectorSetV1",
6
6
  "description": "Language-neutral deterministic Standard Webhooks V1 verification vectors. All key material is public synthetic test data and must never be used outside fixtures.",
7
7
  "type": "object",