@whooshbang/contracts 1.0.0-rc.13

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/CHANGELOG.md +198 -0
  2. package/LICENSE +21 -0
  3. package/README.md +120 -0
  4. package/contract-manifest.json +390 -0
  5. package/dist/base64url.d.ts +2 -0
  6. package/dist/base64url.js +51 -0
  7. package/dist/base64url.js.map +1 -0
  8. package/dist/generated/artifact-index.d.ts +205 -0
  9. package/dist/generated/artifact-index.js +396 -0
  10. package/dist/generated/artifact-index.js.map +1 -0
  11. package/dist/generated/contract-manifest.d.ts +66 -0
  12. package/dist/generated/contract-manifest.js +6 -0
  13. package/dist/generated/contract-manifest.js.map +1 -0
  14. package/dist/generated/core-scenario.d.ts +18 -0
  15. package/dist/generated/core-scenario.js +6 -0
  16. package/dist/generated/core-scenario.js.map +1 -0
  17. package/dist/generated/fixture-index.d.ts +33 -0
  18. package/dist/generated/fixture-index.js +6 -0
  19. package/dist/generated/fixture-index.js.map +1 -0
  20. package/dist/generated/interaction-machine-scenario.d.ts +263 -0
  21. package/dist/generated/interaction-machine-scenario.js +6 -0
  22. package/dist/generated/interaction-machine-scenario.js.map +1 -0
  23. package/dist/generated/interaction-v1.d.ts +152 -0
  24. package/dist/generated/interaction-v1.js +6 -0
  25. package/dist/generated/interaction-v1.js.map +1 -0
  26. package/dist/generated/machine-v1.d.ts +169 -0
  27. package/dist/generated/machine-v1.js +6 -0
  28. package/dist/generated/machine-v1.js.map +1 -0
  29. package/dist/generated/provider-capabilities-v1.d.ts +78 -0
  30. package/dist/generated/provider-capabilities-v1.js +6 -0
  31. package/dist/generated/provider-capabilities-v1.js.map +1 -0
  32. package/dist/generated/validators-standalone.d.ts +659 -0
  33. package/dist/generated/validators-standalone.js +47800 -0
  34. package/dist/generated/validators-standalone.js.map +1 -0
  35. package/dist/generated/validators.d.ts +74 -0
  36. package/dist/generated/validators.js +493 -0
  37. package/dist/generated/validators.js.map +1 -0
  38. package/dist/generated/webhook-delivery-case-v1.d.ts +91 -0
  39. package/dist/generated/webhook-delivery-case-v1.js +6 -0
  40. package/dist/generated/webhook-delivery-case-v1.js.map +1 -0
  41. package/dist/generated/webhook-signing-vector-v1.d.ts +88 -0
  42. package/dist/generated/webhook-signing-vector-v1.js +6 -0
  43. package/dist/generated/webhook-signing-vector-v1.js.map +1 -0
  44. package/dist/generated/whooshbang-event-v1.d.ts +191 -0
  45. package/dist/generated/whooshbang-event-v1.js +6 -0
  46. package/dist/generated/whooshbang-event-v1.js.map +1 -0
  47. package/dist/generated/whooshbang-v1.d.ts +1162 -0
  48. package/dist/generated/whooshbang-v1.js +6 -0
  49. package/dist/generated/whooshbang-v1.js.map +1 -0
  50. package/dist/index.d.ts +20 -0
  51. package/dist/index.js +7 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/machine-credential.d.ts +31 -0
  54. package/dist/machine-credential.js +78 -0
  55. package/dist/machine-credential.js.map +1 -0
  56. package/dist/webhook-consumer.d.ts +50 -0
  57. package/dist/webhook-consumer.js +71 -0
  58. package/dist/webhook-consumer.js.map +1 -0
  59. package/dist/webhook-delivery.d.ts +46 -0
  60. package/dist/webhook-delivery.js +126 -0
  61. package/dist/webhook-delivery.js.map +1 -0
  62. package/dist/webhook-signature.d.ts +36 -0
  63. package/dist/webhook-signature.js +255 -0
  64. package/dist/webhook-signature.js.map +1 -0
  65. package/examples/python/verify_webhook.py +283 -0
  66. package/fixtures/.gitkeep +1 -0
  67. package/fixtures/core-v1/fixture-index.json +963 -0
  68. package/fixtures/core-v1/problems/auth-invalid.json +9 -0
  69. package/fixtures/core-v1/problems/authentication-required.json +9 -0
  70. package/fixtures/core-v1/problems/cancellation-too-late.json +9 -0
  71. package/fixtures/core-v1/problems/endpoint-rotation-conflict.json +10 -0
  72. package/fixtures/core-v1/problems/environment-mismatch.json +9 -0
  73. package/fixtures/core-v1/problems/idempotency-conflict.json +9 -0
  74. package/fixtures/core-v1/problems/idempotency-key-required.json +9 -0
  75. package/fixtures/core-v1/problems/project-slug-conflict.json +16 -0
  76. package/fixtures/core-v1/problems/provider-outcome-unknown.json +9 -0
  77. package/fixtures/core-v1/problems/provider-retryable.json +10 -0
  78. package/fixtures/core-v1/problems/provider-terminal.json +9 -0
  79. package/fixtures/core-v1/problems/rate-limited.json +10 -0
  80. package/fixtures/core-v1/problems/replay-unavailable-not-terminal.json +16 -0
  81. package/fixtures/core-v1/problems/replay-unavailable-payload.json +16 -0
  82. package/fixtures/core-v1/problems/replay-unavailable-rollout.json +16 -0
  83. package/fixtures/core-v1/problems/request-invalid.json +16 -0
  84. package/fixtures/core-v1/problems/resource-expired.json +9 -0
  85. package/fixtures/core-v1/problems/resource-not-found.json +9 -0
  86. package/fixtures/core-v1/problems/scope-forbidden.json +9 -0
  87. package/fixtures/core-v1/problems/subscriber-unbound.json +9 -0
  88. package/fixtures/core-v1/requests/create-api-credential.json +9 -0
  89. package/fixtures/core-v1/requests/create-customer-endpoint.json +5 -0
  90. package/fixtures/core-v1/requests/create-message.json +15 -0
  91. package/fixtures/core-v1/requests/create-project.json +4 -0
  92. package/fixtures/core-v1/requests/create-subscription-link.json +5 -0
  93. package/fixtures/core-v1/requests/rotate-api-credential.json +3 -0
  94. package/fixtures/core-v1/requests/rotate-customer-endpoint.json +3 -0
  95. package/fixtures/core-v1/scenarios/api-credential-invalid-indistinguishable.json +14 -0
  96. package/fixtures/core-v1/scenarios/api-credential-one-time-reveal.json +21 -0
  97. package/fixtures/core-v1/scenarios/api-credential-revocation-replay.json +17 -0
  98. package/fixtures/core-v1/scenarios/api-credential-rotation-overlap.json +18 -0
  99. package/fixtures/core-v1/scenarios/cancellation-too-late.json +15 -0
  100. package/fixtures/core-v1/scenarios/cross-account-project.json +14 -0
  101. package/fixtures/core-v1/scenarios/cross-project-resource.json +17 -0
  102. package/fixtures/core-v1/scenarios/environment-mismatch.json +17 -0
  103. package/fixtures/core-v1/scenarios/idempotency-conflict.json +35 -0
  104. package/fixtures/core-v1/scenarios/idempotency-equivalent-replay.json +27 -0
  105. package/fixtures/core-v1/scenarios/malformed-bearer.json +14 -0
  106. package/fixtures/core-v1/scenarios/metadata-overrun.json +14 -0
  107. package/fixtures/core-v1/scenarios/missing-scope.json +15 -0
  108. package/fixtures/core-v1/scenarios/project-create-equivalent-replay.json +26 -0
  109. package/fixtures/core-v1/scenarios/project-slug-conflict.json +21 -0
  110. package/fixtures/core-v1/scenarios/provider-outcome-unknown.json +15 -0
  111. package/fixtures/core-v1/scenarios/subscription-activation-replay.json +18 -0
  112. package/fixtures/core-v1/scenarios/subscription-expired-replay.json +16 -0
  113. package/fixtures/core-v1/success/account-projection.json +11 -0
  114. package/fixtures/core-v1/success/api-credential-collection.json +22 -0
  115. package/fixtures/core-v1/success/api-credential-created.json +20 -0
  116. package/fixtures/core-v1/success/api-credential-revoked.json +19 -0
  117. package/fixtures/core-v1/success/api-credential-rotated.json +41 -0
  118. package/fixtures/core-v1/success/customer-endpoint-attempts.json +15 -0
  119. package/fixtures/core-v1/success/customer-endpoint-collection.json +26 -0
  120. package/fixtures/core-v1/success/customer-endpoint-create-replayed.json +16 -0
  121. package/fixtures/core-v1/success/customer-endpoint-created.json +17 -0
  122. package/fixtures/core-v1/success/customer-endpoint-rotated.json +21 -0
  123. package/fixtures/core-v1/success/message-accepted.json +30 -0
  124. package/fixtures/core-v1/success/message-cancellation-too-late.json +27 -0
  125. package/fixtures/core-v1/success/message-cancelled.json +27 -0
  126. package/fixtures/core-v1/success/message-outcome-unknown.json +33 -0
  127. package/fixtures/core-v1/success/message-provider-accepted.json +30 -0
  128. package/fixtures/core-v1/success/project-collection.json +42 -0
  129. package/fixtures/core-v1/success/project-created.json +38 -0
  130. package/fixtures/core-v1/success/subscription-link-activated.json +22 -0
  131. package/fixtures/core-v1/success/subscription-link-cancelled.json +14 -0
  132. package/fixtures/core-v1/success/subscription-link-paused.json +22 -0
  133. package/fixtures/core-v1/success/subscription-link-pending.json +14 -0
  134. package/fixtures/core-v1/success/subscription-link-revoked.json +22 -0
  135. package/fixtures/interaction-machine-v1/capabilities/providers.json +57 -0
  136. package/fixtures/interaction-machine-v1/capabilities/telegram.json +52 -0
  137. package/fixtures/interaction-machine-v1/events/confirm-answered.json +22 -0
  138. package/fixtures/interaction-machine-v1/events/input-answered.json +22 -0
  139. package/fixtures/interaction-machine-v1/events/input-redacted.json +18 -0
  140. package/fixtures/interaction-machine-v1/events/select-answered.json +22 -0
  141. package/fixtures/interaction-machine-v1/requests/ack-processed.json +5 -0
  142. package/fixtures/interaction-machine-v1/requests/ack-quarantined.json +5 -0
  143. package/fixtures/interaction-machine-v1/requests/create-machine-client.json +6 -0
  144. package/fixtures/interaction-machine-v1/requests/create-message-confirm.json +18 -0
  145. package/fixtures/interaction-machine-v1/requests/create-message-input.json +16 -0
  146. package/fixtures/interaction-machine-v1/requests/create-message-select.json +26 -0
  147. package/fixtures/interaction-machine-v1/requests/register-machine-credential.json +4 -0
  148. package/fixtures/interaction-machine-v1/scenarios/ack-conflict.json +14 -0
  149. package/fixtures/interaction-machine-v1/scenarios/ack-cross-machine.json +15 -0
  150. package/fixtures/interaction-machine-v1/scenarios/ack-out-of-order.json +15 -0
  151. package/fixtures/interaction-machine-v1/scenarios/ack-replay.json +17 -0
  152. package/fixtures/interaction-machine-v1/scenarios/ambiguous-free-text.json +15 -0
  153. package/fixtures/interaction-machine-v1/scenarios/callback-token-opacity.json +16 -0
  154. package/fixtures/interaction-machine-v1/scenarios/credential-registration-conflict.json +16 -0
  155. package/fixtures/interaction-machine-v1/scenarios/credential-registration-replay.json +15 -0
  156. package/fixtures/interaction-machine-v1/scenarios/credential-revocation-replay.json +14 -0
  157. package/fixtures/interaction-machine-v1/scenarios/credential-rotation.json +16 -0
  158. package/fixtures/interaction-machine-v1/scenarios/first-credential-activates.json +15 -0
  159. package/fixtures/interaction-machine-v1/scenarios/interaction-duplicate.json +16 -0
  160. package/fixtures/interaction-machine-v1/scenarios/interaction-expired.json +17 -0
  161. package/fixtures/interaction-machine-v1/scenarios/interaction-mismatch.json +16 -0
  162. package/fixtures/interaction-machine-v1/scenarios/interaction-retired.json +16 -0
  163. package/fixtures/interaction-machine-v1/scenarios/interaction-stale.json +16 -0
  164. package/fixtures/interaction-machine-v1/scenarios/machine-admin-denied.json +14 -0
  165. package/fixtures/interaction-machine-v1/scenarios/machine-bound-message-create.json +22 -0
  166. package/fixtures/interaction-machine-v1/scenarios/machine-cancel-denied.json +14 -0
  167. package/fixtures/interaction-machine-v1/scenarios/machine-crash-before-ack.json +16 -0
  168. package/fixtures/interaction-machine-v1/scenarios/machine-notifier-mismatch.json +14 -0
  169. package/fixtures/interaction-machine-v1/scenarios/machine-other-message-read.json +14 -0
  170. package/fixtures/interaction-machine-v1/scenarios/machine-owned-message-read.json +22 -0
  171. package/fixtures/interaction-machine-v1/scenarios/machine-subscriber-mismatch.json +14 -0
  172. package/fixtures/interaction-machine-v1/scenarios/poll-uncommitted-cursor-rejected.json +17 -0
  173. package/fixtures/interaction-machine-v1/scenarios/project-credential-machine-endpoint-denied.json +14 -0
  174. package/fixtures/interaction-machine-v1/scenarios/quarantine-integrity-rejected.json +15 -0
  175. package/fixtures/interaction-machine-v1/scenarios/quarantine-signature-rejected.json +16 -0
  176. package/fixtures/interaction-machine-v1/scenarios/quarantine-valid.json +15 -0
  177. package/fixtures/interaction-machine-v1/scenarios/revoked-machine-credential.json +15 -0
  178. package/fixtures/interaction-machine-v1/success/ack-out-of-order.json +8 -0
  179. package/fixtures/interaction-machine-v1/success/ack-processed.json +8 -0
  180. package/fixtures/interaction-machine-v1/success/ack-quarantined.json +9 -0
  181. package/fixtures/interaction-machine-v1/success/interaction-answered-confirm.json +10 -0
  182. package/fixtures/interaction-machine-v1/success/interaction-answered-input.json +10 -0
  183. package/fixtures/interaction-machine-v1/success/interaction-answered-redacted.json +8 -0
  184. package/fixtures/interaction-machine-v1/success/interaction-answered-select.json +10 -0
  185. package/fixtures/interaction-machine-v1/success/interaction-open.json +7 -0
  186. package/fixtures/interaction-machine-v1/success/machine-client-active.json +20 -0
  187. package/fixtures/interaction-machine-v1/success/machine-client-provisioning.json +19 -0
  188. package/fixtures/interaction-machine-v1/success/machine-client-revoked.json +21 -0
  189. package/fixtures/interaction-machine-v1/success/machine-credential-active.json +13 -0
  190. package/fixtures/interaction-machine-v1/success/machine-credential-revoked.json +14 -0
  191. package/fixtures/interaction-machine-v1/success/message-interaction-open.json +33 -0
  192. package/fixtures/interaction-machine-v1/success/poll-empty.json +6 -0
  193. package/fixtures/interaction-machine-v1/success/poll-events.json +51 -0
  194. package/fixtures/interaction-machine-v1/tokens/callback-token.json +1 -0
  195. package/fixtures/whooshbang-events-v1/delivery/cases.json +418 -0
  196. package/fixtures/whooshbang-events-v1/events/agent-binding-degraded.json +17 -0
  197. package/fixtures/whooshbang-events-v1/events/interaction-expired.json +16 -0
  198. package/fixtures/whooshbang-events-v1/events/interaction-received.json +23 -0
  199. package/fixtures/whooshbang-events-v1/events/message-delivered.json +16 -0
  200. package/fixtures/whooshbang-events-v1/events/message-expired.json +15 -0
  201. package/fixtures/whooshbang-events-v1/events/message-failed.json +17 -0
  202. package/fixtures/whooshbang-events-v1/events/message-provider-accepted.json +15 -0
  203. package/fixtures/whooshbang-events-v1/events/subscription-activated.json +18 -0
  204. package/fixtures/whooshbang-events-v1/events/subscription-revoked.json +18 -0
  205. package/fixtures/whooshbang-events-v1/signing/vectors.json +852 -0
  206. package/openapi/.gitkeep +1 -0
  207. package/openapi/generated/whooshbang-v1.bundle.json +5913 -0
  208. package/openapi/whooshbang-v1.yaml +2334 -0
  209. package/package.json +63 -0
  210. package/schemas/contract-manifest.schema.json +140 -0
  211. package/schemas/core-scenario.schema.json +38 -0
  212. package/schemas/events/agent-binding-degraded-v1.schema.json +8 -0
  213. package/schemas/events/interaction-expired-v1.schema.json +8 -0
  214. package/schemas/events/interaction-received-v1.schema.json +8 -0
  215. package/schemas/events/message-delivered-v1.schema.json +8 -0
  216. package/schemas/events/message-expired-v1.schema.json +8 -0
  217. package/schemas/events/message-failed-v1.schema.json +8 -0
  218. package/schemas/events/message-provider-accepted-v1.schema.json +8 -0
  219. package/schemas/events/subscription-activated-v1.schema.json +8 -0
  220. package/schemas/events/subscription-revoked-v1.schema.json +8 -0
  221. package/schemas/events/whooshbang-event-v1.schema.json +689 -0
  222. package/schemas/fixture-index.schema.json +67 -0
  223. package/schemas/interaction-machine-scenario.schema.json +700 -0
  224. package/schemas/interaction-v1.schema.json +483 -0
  225. package/schemas/machine-v1.schema.json +430 -0
  226. package/schemas/provider-capabilities-v1.schema.json +263 -0
  227. package/schemas/webhooks/webhook-delivery-case-v1.schema.json +167 -0
  228. package/schemas/webhooks/webhook-signing-vector-v1.schema.json +197 -0
  229. package/schemas/whooshbang-v1.schema.json +2173 -0
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Generated by `npm run contracts:generate`.
3
+ * Do not edit this file directly.
4
+ */
5
+ /**
6
+ * Machine-client administration, locally generated credential metadata, durable long-poll, and contiguous acknowledgement contracts.
7
+ */
8
+ export type MachineV1ContractDocument = CreateMachineClientRequest | MachineClient | RegisterMachineCredentialRequest | MachineCredential | MachineEventPollResponse | MachineEventAckRequest | MachineEventAckResponse | MachineCredentialBearer;
9
+ export type OpaqueIdentifier = string;
10
+ export type MachineClient = {
11
+ [k: string]: unknown;
12
+ } & {
13
+ id: OpaqueIdentifier;
14
+ project_id: OpaqueIdentifier;
15
+ environment: Environment;
16
+ machine_id: OpaqueIdentifier;
17
+ notifier_id: OpaqueIdentifier;
18
+ subscriber_id: OpaqueIdentifier;
19
+ binding_id: OpaqueIdentifier;
20
+ display_name?: string;
21
+ status: "provisioning" | "active" | "revoked";
22
+ scope_summary: MachineScopeSummary;
23
+ created_at: Timestamp;
24
+ updated_at: Timestamp;
25
+ last_used_at?: Timestamp;
26
+ revoked_at?: Timestamp;
27
+ };
28
+ export type Environment = "test" | "live";
29
+ /**
30
+ * Fixed least-privilege capabilities, each constrained to this client's bound destination or stream.
31
+ *
32
+ * @minItems 4
33
+ * @maxItems 4
34
+ */
35
+ export type MachineScopeSummary = [
36
+ MachineScope,
37
+ MachineScope,
38
+ MachineScope,
39
+ MachineScope
40
+ ];
41
+ export type MachineScope = "machine-messages:write" | "machine-messages:read" | "machine-events:read" | "machine-events:ack";
42
+ export type Timestamp = string;
43
+ /**
44
+ * mcred_ followed by the canonical unpadded base64url encoding of exactly 16 random bytes.
45
+ */
46
+ export type MachineCredentialId = string;
47
+ /**
48
+ * The only secret-derived value accepted by the administration API.
49
+ */
50
+ export type MachineSecretDigest = string;
51
+ export type MachineCredential = {
52
+ [k: string]: unknown;
53
+ } & {
54
+ credential_id: MachineCredentialId;
55
+ machine_client_id: OpaqueIdentifier;
56
+ status: "active" | "revoked";
57
+ scope_summary: MachineScopeSummary;
58
+ created_at: Timestamp;
59
+ last_used_at?: Timestamp;
60
+ revoked_at?: Timestamp;
61
+ };
62
+ /**
63
+ * An authenticated, immutable human-answer fact. It is data for the consumer and never a command or proof of business success.
64
+ */
65
+ export type InteractionEvent = {
66
+ [k: string]: unknown;
67
+ } & {
68
+ schema: "whooshbang.interaction-event.v1";
69
+ /**
70
+ * An opaque identifier whose internal encoding is not a public promise.
71
+ */
72
+ id: string;
73
+ /**
74
+ * The opaque position of this event in the authenticated machine stream.
75
+ */
76
+ cursor: string;
77
+ type: "interaction.received";
78
+ /**
79
+ * An opaque identifier whose internal encoding is not a public promise.
80
+ */
81
+ message_id: string;
82
+ /**
83
+ * An opaque identifier whose internal encoding is not a public promise.
84
+ */
85
+ interaction_id: string;
86
+ /**
87
+ * Caller-owned opaque correlation returned as data, never treated as execution authority.
88
+ */
89
+ correlation_id?: string;
90
+ response?: ConfirmInteractionResponse | SelectInteractionResponse | InputInteractionResponse;
91
+ /**
92
+ * False means the content window closed and response was removed. New retained events publish true; a retained legacy event may omit this member during rolling deployment.
93
+ */
94
+ answer_retained?: boolean;
95
+ channel_context: SafeChannelContext;
96
+ occurred_at: string;
97
+ expires_at: string;
98
+ };
99
+ /**
100
+ * An opaque position within only the authenticated machine stream.
101
+ */
102
+ export type MachineCursor = string;
103
+ export type MachineEventAckRequest = {
104
+ [k: string]: unknown;
105
+ } & {
106
+ cursor: MachineCursor;
107
+ disposition: MachineEventAckDisposition;
108
+ reason_code?: QuarantineReasonCode | null;
109
+ };
110
+ export type MachineEventAckDisposition = "processed" | "quarantined";
111
+ export type QuarantineReasonCode = string;
112
+ export type MachineEventAckResponse = {
113
+ [k: string]: unknown;
114
+ } & {
115
+ event_id: OpaqueIdentifier;
116
+ cursor: MachineCursor;
117
+ disposition: MachineEventAckDisposition;
118
+ reason_code?: QuarantineReasonCode;
119
+ acknowledgement_status: "recorded" | "existing";
120
+ committed_cursor: MachineCursor | null;
121
+ advanced: boolean;
122
+ };
123
+ /**
124
+ * The exact runtime bearer syntax. The final segment is canonical unpadded base64url for exactly 32 locally generated random bytes.
125
+ */
126
+ export type MachineCredentialBearer = string;
127
+ export interface CreateMachineClientRequest {
128
+ machine_id: string;
129
+ notifier_id: OpaqueIdentifier;
130
+ subscriber_id: OpaqueIdentifier;
131
+ display_name?: string;
132
+ }
133
+ export interface RegisterMachineCredentialRequest {
134
+ credential_id: MachineCredentialId;
135
+ secret_sha256: MachineSecretDigest;
136
+ }
137
+ export interface MachineEventPollResponse {
138
+ schema: "whooshbang.machine-events.v1";
139
+ /**
140
+ * @maxItems 50
141
+ */
142
+ events: InteractionEvent[];
143
+ committed_cursor: MachineCursor | null;
144
+ server_time: Timestamp;
145
+ }
146
+ export interface ConfirmInteractionResponse {
147
+ type: "confirm";
148
+ value: boolean;
149
+ }
150
+ export interface SelectInteractionResponse {
151
+ type: "select";
152
+ value: string;
153
+ }
154
+ export interface InputInteractionResponse {
155
+ type: "input";
156
+ /**
157
+ * Untrusted input text after leading and trailing whitespace is removed.
158
+ */
159
+ value: string;
160
+ }
161
+ export interface SafeChannelContext {
162
+ /**
163
+ * An opaque identifier whose internal encoding is not a public promise.
164
+ */
165
+ binding_id: string;
166
+ channel: "telegram";
167
+ conversation_kind: "private_chat" | "thread" | "group";
168
+ display_name?: string;
169
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generated by `npm run contracts:generate`.
3
+ * Do not edit this file directly.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=machine-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine-v1.js","sourceRoot":"","sources":["../../src/generated/machine-v1.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Generated by `npm run contracts:generate`.
3
+ * Do not edit this file directly.
4
+ */
5
+ /**
6
+ * This interface was referenced by `ProviderCapabilitiesV1`'s JSON-Schema
7
+ * via the `definition` "InteractionCapability".
8
+ */
9
+ export type InteractionCapability = {
10
+ [k: string]: unknown;
11
+ } & {
12
+ mode: "native" | "fallback" | "unsupported" | "conditional";
13
+ explanation?: SafeExplanation;
14
+ };
15
+ /**
16
+ * This interface was referenced by `ProviderCapabilitiesV1`'s JSON-Schema
17
+ * via the `definition` "SafeExplanation".
18
+ */
19
+ export type SafeExplanation = string;
20
+ /**
21
+ * This interface was referenced by `ProviderCapabilitiesV1`'s JSON-Schema
22
+ * via the `definition` "ContextSupport".
23
+ */
24
+ export type ContextSupport = {
25
+ [k: string]: unknown;
26
+ } & {
27
+ mode: "supported" | "unsupported" | "conditional";
28
+ explanation?: SafeExplanation;
29
+ };
30
+ /**
31
+ * This interface was referenced by `ProviderCapabilitiesV1`'s JSON-Schema
32
+ * via the `definition` "Degradation".
33
+ */
34
+ export type Degradation = {
35
+ [k: string]: unknown;
36
+ } & {
37
+ active: boolean;
38
+ code?: string;
39
+ explanation?: SafeExplanation;
40
+ };
41
+ /**
42
+ * Provider-neutral, renderer-facing delivery and interaction capabilities with explicit degradation.
43
+ */
44
+ export interface ProviderCapabilitiesV1 {
45
+ schema: "whooshbang.provider-capabilities.v1";
46
+ provider: string;
47
+ text: {
48
+ supported: boolean;
49
+ maximum_bytes: number;
50
+ };
51
+ interaction: {
52
+ confirm: InteractionCapability;
53
+ select: InteractionCapability;
54
+ input: InteractionCapability;
55
+ };
56
+ streaming: {
57
+ mode: "native" | "edit" | "typing_then_final" | "final_only" | "unsupported";
58
+ explanation?: SafeExplanation;
59
+ };
60
+ edit: {
61
+ supported: boolean;
62
+ };
63
+ receipts: {
64
+ provider_accepted: boolean;
65
+ delivered: boolean;
66
+ read: boolean;
67
+ };
68
+ contexts: {
69
+ private_chat: ContextSupport;
70
+ thread: ContextSupport;
71
+ group: ContextSupport;
72
+ };
73
+ rate_limit: {
74
+ strategy: "provider_retry_after" | "token_bucket" | "fixed_window" | "adaptive" | "unknown";
75
+ explanation?: SafeExplanation;
76
+ };
77
+ degradation: Degradation;
78
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generated by `npm run contracts:generate`.
3
+ * Do not edit this file directly.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=provider-capabilities-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-capabilities-v1.js","sourceRoot":"","sources":["../../src/generated/provider-capabilities-v1.ts"],"names":[],"mappings":"AAAA;;;GAGG"}