@whooshbang/contracts 2.2.0 → 2.4.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.
- package/CHANGELOG.md +10 -0
- package/contract-manifest.json +32 -32
- package/dist/generated/artifact-index.d.ts +33 -33
- package/dist/generated/artifact-index.js +32 -32
- package/dist/generated/interaction-v1.d.ts +72 -4
- package/dist/generated/validators-standalone.d.ts +492 -480
- package/dist/generated/validators-standalone.js +4191 -2276
- package/dist/generated/validators-standalone.js.map +1 -1
- package/dist/generated/validators.d.ts +2 -1
- package/dist/generated/validators.js +2 -1
- package/dist/generated/validators.js.map +1 -1
- package/dist/generated/whooshbang-v1.d.ts +94 -17
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/interaction-expiry.d.ts +17 -0
- package/dist/interaction-expiry.js +67 -0
- package/dist/interaction-expiry.js.map +1 -0
- package/fixtures/core-v1/fixture-index.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-invalid-indistinguishable.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-one-time-reveal.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-revocation-replay.json +1 -1
- package/fixtures/core-v1/scenarios/api-credential-rotation-overlap.json +1 -1
- package/fixtures/core-v1/scenarios/cancellation-too-late.json +1 -1
- package/fixtures/core-v1/scenarios/cross-organization-project.json +1 -1
- package/fixtures/core-v1/scenarios/cross-project-resource.json +1 -1
- package/fixtures/core-v1/scenarios/environment-mismatch.json +1 -1
- package/fixtures/core-v1/scenarios/idempotency-conflict.json +1 -1
- package/fixtures/core-v1/scenarios/idempotency-equivalent-replay.json +1 -1
- package/fixtures/core-v1/scenarios/malformed-bearer.json +1 -1
- package/fixtures/core-v1/scenarios/metadata-overrun.json +1 -1
- package/fixtures/core-v1/scenarios/missing-scope.json +1 -1
- package/fixtures/core-v1/scenarios/project-create-equivalent-replay.json +1 -1
- package/fixtures/core-v1/scenarios/project-slug-conflict.json +1 -1
- package/fixtures/core-v1/scenarios/provider-outcome-unknown.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-activation-replay.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-authorization-capability-opacity.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-cross-connection-callback-rejected.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-expired-replay.json +1 -1
- package/fixtures/core-v1/scenarios/subscription-selected-connection-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-conflict.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-cross-machine.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-out-of-order.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ack-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/ambiguous-free-text.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/callback-token-opacity.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-registration-conflict.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-registration-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-revocation-replay.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/credential-rotation.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/first-credential-activates.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-duplicate.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-expired.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-retired.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/interaction-stale.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-admin-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-bound-message-create.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-cancel-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-crash-before-ack.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-notifier-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-other-message-read.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-owned-message-read.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/machine-subscriber-mismatch.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/poll-uncommitted-cursor-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/project-credential-machine-endpoint-denied.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-integrity-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-signature-rejected.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/quarantine-valid.json +1 -1
- package/fixtures/interaction-machine-v1/scenarios/revoked-machine-credential.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/membership-broadcast-snapshot.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/preferred-binding-resolution.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/recipient-session-security.json +1 -1
- package/fixtures/recipient-experience-v1/scenarios/subscriber-initial-groups-transaction.json +1 -1
- package/openapi/generated/whooshbang-v1.bundle.json +165 -28
- package/openapi/whooshbang-v1.yaml +33 -2
- package/package.json +1 -1
- package/schemas/core-scenario.schema.json +1 -1
- package/schemas/events/agent-binding-degraded-v1.schema.json +1 -1
- package/schemas/events/interaction-expired-v1.schema.json +1 -1
- package/schemas/events/interaction-received-v1.schema.json +1 -1
- package/schemas/events/message-delivered-v1.schema.json +1 -1
- package/schemas/events/message-expired-v1.schema.json +1 -1
- package/schemas/events/message-failed-v1.schema.json +1 -1
- package/schemas/events/message-provider-accepted-v1.schema.json +1 -1
- package/schemas/events/subscription-activated-v1.schema.json +1 -1
- package/schemas/events/subscription-revoked-v1.schema.json +1 -1
- package/schemas/events/whooshbang-event-v1.schema.json +1 -1
- package/schemas/fixture-index.schema.json +1 -1
- package/schemas/interaction-machine-scenario.schema.json +1 -1
- package/schemas/interaction-v1.schema.json +151 -19
- package/schemas/machine-v1.schema.json +1 -1
- package/schemas/provider-capabilities-v1.schema.json +1 -1
- package/schemas/webhooks/webhook-delivery-case-v1.schema.json +1 -1
- package/schemas/webhooks/webhook-signing-vector-v1.schema.json +1 -1
- package/schemas/whooshbang-v1.schema.json +56 -50
|
@@ -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": "2.
|
|
4
|
+
"x-contract-version": "2.4.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": "2.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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,23 +1,9 @@
|
|
|
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.
|
|
4
|
+
"x-contract-version": "2.4.0",
|
|
5
5
|
"title": "InteractionV1ContractDocument",
|
|
6
6
|
"description": "Provider-neutral confirm, single-select, input, lifecycle, callback-token, and authenticated answer-event contracts.",
|
|
7
|
-
"oneOf": [
|
|
8
|
-
{
|
|
9
|
-
"$ref": "#/$defs/InteractionRequest"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"$ref": "#/$defs/InteractionSummary"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"$ref": "#/$defs/InteractionEvent"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"$ref": "#/$defs/ProviderCallbackToken"
|
|
19
|
-
}
|
|
20
|
-
],
|
|
21
7
|
"$defs": {
|
|
22
8
|
"OpaqueIdentifier": {
|
|
23
9
|
"type": "string",
|
|
@@ -90,7 +76,7 @@
|
|
|
90
76
|
},
|
|
91
77
|
"expires_at": {
|
|
92
78
|
"$ref": "#/$defs/Timestamp",
|
|
93
|
-
"description": "
|
|
79
|
+
"description": "At least 30 seconds after server acceptance; no fixed maximum. A resolved RFC3339 deadline with millisecond precision, no later than 9999-12-31T23:59:59.999Z."
|
|
94
80
|
},
|
|
95
81
|
"correlation_id": {
|
|
96
82
|
"$ref": "#/$defs/InteractionCorrelationId"
|
|
@@ -119,7 +105,7 @@
|
|
|
119
105
|
},
|
|
120
106
|
"expires_at": {
|
|
121
107
|
"$ref": "#/$defs/Timestamp",
|
|
122
|
-
"description": "
|
|
108
|
+
"description": "At least 30 seconds after server acceptance; no fixed maximum. A resolved RFC3339 deadline with millisecond precision, no later than 9999-12-31T23:59:59.999Z."
|
|
123
109
|
},
|
|
124
110
|
"correlation_id": {
|
|
125
111
|
"$ref": "#/$defs/InteractionCorrelationId"
|
|
@@ -139,7 +125,7 @@
|
|
|
139
125
|
},
|
|
140
126
|
"expires_at": {
|
|
141
127
|
"$ref": "#/$defs/Timestamp",
|
|
142
|
-
"description": "
|
|
128
|
+
"description": "At least 30 seconds after server acceptance; no fixed maximum. A resolved RFC3339 deadline with millisecond precision, no later than 9999-12-31T23:59:59.999Z."
|
|
143
129
|
},
|
|
144
130
|
"correlation_id": {
|
|
145
131
|
"$ref": "#/$defs/InteractionCorrelationId"
|
|
@@ -486,6 +472,152 @@
|
|
|
486
472
|
"type": "string",
|
|
487
473
|
"pattern": "^itok_[A-Za-z0-9_-]{21}[AQgw]$",
|
|
488
474
|
"description": "An opaque single-purpose reference containing exactly 128 random bits and no trusted identity, answer, command, or business data."
|
|
475
|
+
},
|
|
476
|
+
"ConfirmInteractionSendRequest": {
|
|
477
|
+
"type": "object",
|
|
478
|
+
"required": ["type", "prompt"],
|
|
479
|
+
"properties": {
|
|
480
|
+
"type": {
|
|
481
|
+
"const": "confirm"
|
|
482
|
+
},
|
|
483
|
+
"prompt": {
|
|
484
|
+
"$ref": "#/$defs/InteractionPrompt"
|
|
485
|
+
},
|
|
486
|
+
"confirm_label": {
|
|
487
|
+
"type": "string",
|
|
488
|
+
"minLength": 1,
|
|
489
|
+
"maxLength": 40
|
|
490
|
+
},
|
|
491
|
+
"deny_label": {
|
|
492
|
+
"type": "string",
|
|
493
|
+
"minLength": 1,
|
|
494
|
+
"maxLength": 40
|
|
495
|
+
},
|
|
496
|
+
"expires_at": {
|
|
497
|
+
"$ref": "#/$defs/Timestamp",
|
|
498
|
+
"description": "Absolute RFC3339 deadline with an explicit timezone and at most millisecond precision. At least 30 seconds after server acceptance. Mutually exclusive with expires_in_seconds."
|
|
499
|
+
},
|
|
500
|
+
"correlation_id": {
|
|
501
|
+
"$ref": "#/$defs/InteractionCorrelationId"
|
|
502
|
+
},
|
|
503
|
+
"expires_in_seconds": {
|
|
504
|
+
"type": "integer",
|
|
505
|
+
"minimum": 30,
|
|
506
|
+
"description": "Whole seconds from server acceptance. No fixed maximum; the resolved timestamp must be representable through year 9999. Mutually exclusive with expires_at. Omit both for 86400 seconds (24 hours)."
|
|
507
|
+
}
|
|
508
|
+
},
|
|
509
|
+
"additionalProperties": false,
|
|
510
|
+
"not": {
|
|
511
|
+
"required": ["expires_at", "expires_in_seconds"],
|
|
512
|
+
"properties": {
|
|
513
|
+
"expires_at": {},
|
|
514
|
+
"expires_in_seconds": {}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
"InteractionSendRequest": {
|
|
519
|
+
"description": "Send-time interaction. Choose expires_in_seconds or expires_at; omit both for 24 hours from server acceptance. Idempotent replays retain the original resolved deadline.",
|
|
520
|
+
"oneOf": [
|
|
521
|
+
{
|
|
522
|
+
"$ref": "#/$defs/ConfirmInteractionSendRequest"
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
"$ref": "#/$defs/SelectInteractionSendRequest"
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"$ref": "#/$defs/InputInteractionSendRequest"
|
|
529
|
+
}
|
|
530
|
+
]
|
|
531
|
+
},
|
|
532
|
+
"SelectInteractionSendRequest": {
|
|
533
|
+
"type": "object",
|
|
534
|
+
"required": ["type", "prompt", "options"],
|
|
535
|
+
"properties": {
|
|
536
|
+
"type": {
|
|
537
|
+
"const": "select"
|
|
538
|
+
},
|
|
539
|
+
"prompt": {
|
|
540
|
+
"$ref": "#/$defs/InteractionPrompt"
|
|
541
|
+
},
|
|
542
|
+
"options": {
|
|
543
|
+
"type": "array",
|
|
544
|
+
"minItems": 2,
|
|
545
|
+
"maxItems": 6,
|
|
546
|
+
"items": {
|
|
547
|
+
"$ref": "#/$defs/InteractionOption"
|
|
548
|
+
},
|
|
549
|
+
"x-unique-property": "value"
|
|
550
|
+
},
|
|
551
|
+
"expires_at": {
|
|
552
|
+
"$ref": "#/$defs/Timestamp",
|
|
553
|
+
"description": "Absolute RFC3339 deadline with an explicit timezone and at most millisecond precision. At least 30 seconds after server acceptance. Mutually exclusive with expires_in_seconds."
|
|
554
|
+
},
|
|
555
|
+
"correlation_id": {
|
|
556
|
+
"$ref": "#/$defs/InteractionCorrelationId"
|
|
557
|
+
},
|
|
558
|
+
"expires_in_seconds": {
|
|
559
|
+
"type": "integer",
|
|
560
|
+
"minimum": 30,
|
|
561
|
+
"description": "Whole seconds from server acceptance. No fixed maximum; the resolved timestamp must be representable through year 9999. Mutually exclusive with expires_at. Omit both for 86400 seconds (24 hours)."
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
"additionalProperties": false,
|
|
565
|
+
"not": {
|
|
566
|
+
"required": ["expires_at", "expires_in_seconds"],
|
|
567
|
+
"properties": {
|
|
568
|
+
"expires_at": {},
|
|
569
|
+
"expires_in_seconds": {}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
},
|
|
573
|
+
"InputInteractionSendRequest": {
|
|
574
|
+
"type": "object",
|
|
575
|
+
"required": ["type", "prompt"],
|
|
576
|
+
"properties": {
|
|
577
|
+
"type": {
|
|
578
|
+
"const": "input"
|
|
579
|
+
},
|
|
580
|
+
"prompt": {
|
|
581
|
+
"$ref": "#/$defs/InteractionPrompt"
|
|
582
|
+
},
|
|
583
|
+
"expires_at": {
|
|
584
|
+
"$ref": "#/$defs/Timestamp",
|
|
585
|
+
"description": "Absolute RFC3339 deadline with an explicit timezone and at most millisecond precision. At least 30 seconds after server acceptance. Mutually exclusive with expires_in_seconds."
|
|
586
|
+
},
|
|
587
|
+
"correlation_id": {
|
|
588
|
+
"$ref": "#/$defs/InteractionCorrelationId"
|
|
589
|
+
},
|
|
590
|
+
"expires_in_seconds": {
|
|
591
|
+
"type": "integer",
|
|
592
|
+
"minimum": 30,
|
|
593
|
+
"description": "Whole seconds from server acceptance. No fixed maximum; the resolved timestamp must be representable through year 9999. Mutually exclusive with expires_at. Omit both for 86400 seconds (24 hours)."
|
|
594
|
+
}
|
|
595
|
+
},
|
|
596
|
+
"additionalProperties": false,
|
|
597
|
+
"not": {
|
|
598
|
+
"required": ["expires_at", "expires_in_seconds"],
|
|
599
|
+
"properties": {
|
|
600
|
+
"expires_at": {},
|
|
601
|
+
"expires_in_seconds": {}
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
},
|
|
606
|
+
"anyOf": [
|
|
607
|
+
{
|
|
608
|
+
"$ref": "#/$defs/InteractionRequest"
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"$ref": "#/$defs/InteractionSummary"
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"$ref": "#/$defs/InteractionEvent"
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"$ref": "#/$defs/ProviderCallbackToken"
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"$ref": "#/$defs/InteractionSendRequest"
|
|
489
621
|
}
|
|
490
|
-
|
|
622
|
+
]
|
|
491
623
|
}
|
|
@@ -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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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.
|
|
4
|
+
"x-contract-version": "2.4.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",
|