@whooshbang/contracts 2.6.0 → 3.1.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 (89) hide show
  1. package/CHANGELOG.md +14 -2
  2. package/contract-manifest.json +32 -33
  3. package/dist/generated/artifact-index.d.ts +34 -34
  4. package/dist/generated/artifact-index.js +32 -33
  5. package/dist/generated/artifact-index.js.map +1 -1
  6. package/dist/generated/validators-standalone.js +2449 -1754
  7. package/dist/generated/validators-standalone.js.map +1 -1
  8. package/dist/generated/validators.js +1 -0
  9. package/dist/generated/validators.js.map +1 -1
  10. package/dist/generated/whooshbang-v1.d.ts +307 -1
  11. package/fixtures/core-v1/fixture-index.json +1 -9
  12. package/fixtures/core-v1/scenarios/api-credential-invalid-indistinguishable.json +1 -1
  13. package/fixtures/core-v1/scenarios/api-credential-one-time-reveal.json +1 -1
  14. package/fixtures/core-v1/scenarios/api-credential-revocation-replay.json +1 -1
  15. package/fixtures/core-v1/scenarios/api-credential-rotation-overlap.json +1 -1
  16. package/fixtures/core-v1/scenarios/cancellation-too-late.json +1 -1
  17. package/fixtures/core-v1/scenarios/cross-organization-project.json +1 -1
  18. package/fixtures/core-v1/scenarios/cross-project-resource.json +1 -1
  19. package/fixtures/core-v1/scenarios/environment-mismatch.json +1 -1
  20. package/fixtures/core-v1/scenarios/idempotency-conflict.json +1 -1
  21. package/fixtures/core-v1/scenarios/idempotency-equivalent-replay.json +1 -1
  22. package/fixtures/core-v1/scenarios/malformed-bearer.json +1 -1
  23. package/fixtures/core-v1/scenarios/metadata-overrun.json +1 -1
  24. package/fixtures/core-v1/scenarios/missing-scope.json +1 -1
  25. package/fixtures/core-v1/scenarios/project-create-equivalent-replay.json +1 -1
  26. package/fixtures/core-v1/scenarios/project-slug-conflict.json +1 -1
  27. package/fixtures/core-v1/scenarios/provider-outcome-unknown.json +1 -1
  28. package/fixtures/core-v1/scenarios/subscription-activation-replay.json +1 -1
  29. package/fixtures/core-v1/scenarios/subscription-authorization-capability-opacity.json +1 -1
  30. package/fixtures/core-v1/scenarios/subscription-cross-connection-callback-rejected.json +1 -1
  31. package/fixtures/core-v1/scenarios/subscription-expired-replay.json +1 -1
  32. package/fixtures/core-v1/scenarios/subscription-selected-connection-replay.json +1 -1
  33. package/fixtures/interaction-machine-v1/scenarios/ack-conflict.json +1 -1
  34. package/fixtures/interaction-machine-v1/scenarios/ack-cross-machine.json +1 -1
  35. package/fixtures/interaction-machine-v1/scenarios/ack-out-of-order.json +1 -1
  36. package/fixtures/interaction-machine-v1/scenarios/ack-replay.json +1 -1
  37. package/fixtures/interaction-machine-v1/scenarios/ambiguous-free-text.json +1 -1
  38. package/fixtures/interaction-machine-v1/scenarios/callback-token-opacity.json +1 -1
  39. package/fixtures/interaction-machine-v1/scenarios/credential-registration-conflict.json +1 -1
  40. package/fixtures/interaction-machine-v1/scenarios/credential-registration-replay.json +1 -1
  41. package/fixtures/interaction-machine-v1/scenarios/credential-revocation-replay.json +1 -1
  42. package/fixtures/interaction-machine-v1/scenarios/credential-rotation.json +1 -1
  43. package/fixtures/interaction-machine-v1/scenarios/first-credential-activates.json +1 -1
  44. package/fixtures/interaction-machine-v1/scenarios/interaction-duplicate.json +1 -1
  45. package/fixtures/interaction-machine-v1/scenarios/interaction-expired.json +1 -1
  46. package/fixtures/interaction-machine-v1/scenarios/interaction-mismatch.json +1 -1
  47. package/fixtures/interaction-machine-v1/scenarios/interaction-retired.json +1 -1
  48. package/fixtures/interaction-machine-v1/scenarios/interaction-stale.json +1 -1
  49. package/fixtures/interaction-machine-v1/scenarios/machine-admin-denied.json +1 -1
  50. package/fixtures/interaction-machine-v1/scenarios/machine-bound-message-create.json +1 -1
  51. package/fixtures/interaction-machine-v1/scenarios/machine-cancel-denied.json +1 -1
  52. package/fixtures/interaction-machine-v1/scenarios/machine-crash-before-ack.json +1 -1
  53. package/fixtures/interaction-machine-v1/scenarios/machine-notifier-mismatch.json +1 -1
  54. package/fixtures/interaction-machine-v1/scenarios/machine-other-message-read.json +1 -1
  55. package/fixtures/interaction-machine-v1/scenarios/machine-owned-message-read.json +1 -1
  56. package/fixtures/interaction-machine-v1/scenarios/machine-subscriber-mismatch.json +1 -1
  57. package/fixtures/interaction-machine-v1/scenarios/poll-uncommitted-cursor-rejected.json +1 -1
  58. package/fixtures/interaction-machine-v1/scenarios/project-credential-machine-endpoint-denied.json +1 -1
  59. package/fixtures/interaction-machine-v1/scenarios/quarantine-integrity-rejected.json +1 -1
  60. package/fixtures/interaction-machine-v1/scenarios/quarantine-signature-rejected.json +1 -1
  61. package/fixtures/interaction-machine-v1/scenarios/quarantine-valid.json +1 -1
  62. package/fixtures/interaction-machine-v1/scenarios/revoked-machine-credential.json +1 -1
  63. package/fixtures/recipient-experience-v1/scenarios/membership-broadcast-snapshot.json +1 -1
  64. package/fixtures/recipient-experience-v1/scenarios/preferred-binding-resolution.json +1 -1
  65. package/fixtures/recipient-experience-v1/scenarios/recipient-session-security.json +1 -1
  66. package/fixtures/recipient-experience-v1/scenarios/subscriber-initial-groups-transaction.json +1 -1
  67. package/openapi/generated/whooshbang-v1.bundle.json +93 -9
  68. package/openapi/whooshbang-v1.yaml +38 -3
  69. package/package.json +1 -1
  70. package/schemas/core-scenario.schema.json +1 -1
  71. package/schemas/events/agent-binding-degraded-v1.schema.json +1 -1
  72. package/schemas/events/interaction-expired-v1.schema.json +1 -1
  73. package/schemas/events/interaction-received-v1.schema.json +1 -1
  74. package/schemas/events/message-delivered-v1.schema.json +1 -1
  75. package/schemas/events/message-expired-v1.schema.json +1 -1
  76. package/schemas/events/message-failed-v1.schema.json +1 -1
  77. package/schemas/events/message-provider-accepted-v1.schema.json +1 -1
  78. package/schemas/events/subscription-activated-v1.schema.json +1 -1
  79. package/schemas/events/subscription-revoked-v1.schema.json +1 -1
  80. package/schemas/events/whooshbang-event-v1.schema.json +1 -1
  81. package/schemas/fixture-index.schema.json +1 -1
  82. package/schemas/interaction-machine-scenario.schema.json +1 -1
  83. package/schemas/interaction-v1.schema.json +1 -1
  84. package/schemas/machine-v1.schema.json +1 -1
  85. package/schemas/provider-capabilities-v1.schema.json +1 -1
  86. package/schemas/webhooks/webhook-delivery-case-v1.schema.json +1 -1
  87. package/schemas/webhooks/webhook-signing-vector-v1.schema.json +1 -1
  88. package/schemas/whooshbang-v1.schema.json +46 -2
  89. package/fixtures/core-v1/problems/replay-unavailable-rollout.json +0 -16
@@ -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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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": "2.6.0",
4
+ "x-contract-version": "3.1.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",
@@ -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/whooshbang-v1.schema.json",
4
- "x-contract-version": "2.6.0",
4
+ "x-contract-version": "3.1.0",
5
5
  "title": "WhooshBangV1ContractDocument",
6
6
  "description": "Public request, resource, summary, and Problem Details models for the WhooshBang V1 REST API.",
7
7
  "anyOf": [
@@ -3764,6 +3764,11 @@
3764
3764
  "maxLength": 254,
3765
3765
  "description": "What to call this subscriber: `display_name` when your application sent one, otherwise the name their channel gave when they connected (a Telegram username, a Slack display name, an email address), which is kept only on the standard privacy setting. Absent when there is neither; show `subscriber_id` then."
3766
3766
  },
3767
+ "team_member": {
3768
+ "type": "boolean",
3769
+ "const": true,
3770
+ "description": "Present when this subscriber is someone on your WhooshBang team, messaged through the operators group. `name` is then their WhooshBang account name. They manage their own channels in notification preferences, so the subscriber can be read but not renamed, paused or erased."
3771
+ },
3767
3772
  "locale": {
3768
3773
  "$ref": "#/$defs/RecipientLanguage"
3769
3774
  },
@@ -5248,6 +5253,16 @@
5248
5253
  },
5249
5254
  "diagnostic_id": {
5250
5255
  "$ref": "#/$defs/DiagnosticId"
5256
+ },
5257
+ "pause_reason": {
5258
+ "type": "string",
5259
+ "enum": ["customer", "sustained_failure", "probe_failed"]
5260
+ },
5261
+ "next_probe_at": {
5262
+ "$ref": "#/$defs/Timestamp"
5263
+ },
5264
+ "recovery_pending": {
5265
+ "type": "boolean"
5251
5266
  }
5252
5267
  },
5253
5268
  "additionalProperties": false
@@ -9974,7 +9989,7 @@
9974
9989
  },
9975
9990
  "MessageListEntry": {
9976
9991
  "type": "object",
9977
- "description": "Content-free accepted-message summary. Includes neither the notification nor an interaction answer.",
9992
+ "description": "Accepted-message summary: a one-line snippet of what the message said, and no interaction answer.",
9978
9993
  "required": [
9979
9994
  "accepted_at",
9980
9995
  "diagnostic_id",
@@ -10045,6 +10060,16 @@
10045
10060
  "classified_error": {
10046
10061
  "$ref": "#/$defs/ClassifiedError"
10047
10062
  },
10063
+ "content_snippet": {
10064
+ "type": "string",
10065
+ "minLength": 1,
10066
+ "maxLength": 121,
10067
+ "description": "The start of what the message said, on one line: its text, or the title of block content, cut to 120 characters with an ellipsis. Absent when `content_retained` is false."
10068
+ },
10069
+ "content_retained": {
10070
+ "type": "boolean",
10071
+ "description": "False once the message's content has been deleted at the end of its retention period (7 days, or 90 on paid plans, after it finished). The rest of the entry is kept."
10072
+ },
10048
10073
  "channel": {
10049
10074
  "$ref": "#/$defs/Channel"
10050
10075
  }
@@ -11942,6 +11967,25 @@
11942
11967
  "settings": {
11943
11968
  "$ref": "#/$defs/SubscriberChannelSettings"
11944
11969
  },
11970
+ "accounts": {
11971
+ "type": "array",
11972
+ "maxItems": 10,
11973
+ "description": "Who each of your connected channels reaches, as the channel named you when you connected: a Telegram or Slack name and username, by binding. Kept only on the Standard privacy setting, so it is empty otherwise.",
11974
+ "items": {
11975
+ "type": "object",
11976
+ "required": ["binding_id"],
11977
+ "properties": {
11978
+ "binding_id": {
11979
+ "type": "string",
11980
+ "minLength": 1,
11981
+ "maxLength": 128
11982
+ },
11983
+ "name": { "type": "string", "minLength": 1, "maxLength": 254 },
11984
+ "username": { "type": "string", "minLength": 1, "maxLength": 80 }
11985
+ },
11986
+ "additionalProperties": false
11987
+ }
11988
+ },
11945
11989
  "connections": {
11946
11990
  "type": "array",
11947
11991
  "items": {
@@ -1,16 +0,0 @@
1
- {
2
- "type": "https://whooshbang.flowxo.com/problems/replay_unavailable",
3
- "title": "Replay unavailable",
4
- "status": 409,
5
- "detail": "Customer event replay is not enabled for this project environment.",
6
- "code": "replay_unavailable",
7
- "diagnostic_id": "diag_replay_unavailable_rollout_001",
8
- "retryable": false,
9
- "field_errors": [
10
- {
11
- "field": "/",
12
- "code": "rollout_disabled",
13
- "detail": "Customer event replay is not enabled for this project environment."
14
- }
15
- ]
16
- }