@slates/proto 1.0.0-rc.2 → 1.0.0-rc.21

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 (57) hide show
  1. package/dist/index.cjs +1632 -2
  2. package/dist/index.d.cts +5397 -0
  3. package/dist/index.d.ts +5397 -4
  4. package/dist/index.module.js +1480 -2
  5. package/package.json +9 -8
  6. package/src/handler/provider.test.ts +121 -0
  7. package/src/handler/provider.ts +268 -27
  8. package/src/index.ts +1 -0
  9. package/src/messages/action.ts +51 -154
  10. package/src/messages/adapter.ts +72 -0
  11. package/src/messages/auth.ts +21 -13
  12. package/src/messages/config.ts +12 -3
  13. package/src/messages/controlFlow.ts +2 -1
  14. package/src/messages/hub.ts +92 -0
  15. package/src/messages/identify.ts +10 -3
  16. package/src/messages/index.ts +68 -14
  17. package/src/messages/legacyTrigger.ts +149 -0
  18. package/src/messages/tracing.ts +38 -0
  19. package/src/messages/triggerGroup.ts +383 -0
  20. package/src/messages/webhookErrors.ts +21 -0
  21. package/src/types/action.ts +25 -13
  22. package/src/types/adapter.ts +15 -0
  23. package/src/types/authMethod.ts +19 -1
  24. package/src/types/index.ts +2 -0
  25. package/src/types/triggerGroup.ts +49 -0
  26. package/src/version.ts +3 -0
  27. package/dist/handler/index.d.ts +0 -2
  28. package/dist/handler/index.d.ts.map +0 -1
  29. package/dist/handler/provider.d.ts +0 -46
  30. package/dist/handler/provider.d.ts.map +0 -1
  31. package/dist/index.cjs.map +0 -1
  32. package/dist/index.d.ts.map +0 -1
  33. package/dist/index.module.js.map +0 -1
  34. package/dist/index.umd.js +0 -2
  35. package/dist/index.umd.js.map +0 -1
  36. package/dist/messages/action.d.ts +0 -474
  37. package/dist/messages/action.d.ts.map +0 -1
  38. package/dist/messages/auth.d.ts +0 -496
  39. package/dist/messages/auth.d.ts.map +0 -1
  40. package/dist/messages/config.d.ts +0 -138
  41. package/dist/messages/config.d.ts.map +0 -1
  42. package/dist/messages/controlFlow.d.ts +0 -64
  43. package/dist/messages/controlFlow.d.ts.map +0 -1
  44. package/dist/messages/identify.d.ts +0 -48
  45. package/dist/messages/identify.d.ts.map +0 -1
  46. package/dist/messages/index.d.ts +0 -556
  47. package/dist/messages/index.d.ts.map +0 -1
  48. package/dist/messages/log.d.ts +0 -27
  49. package/dist/messages/log.d.ts.map +0 -1
  50. package/dist/types/action.d.ts +0 -98
  51. package/dist/types/action.d.ts.map +0 -1
  52. package/dist/types/authMethod.d.ts +0 -29
  53. package/dist/types/authMethod.d.ts.map +0 -1
  54. package/dist/types/index.d.ts +0 -4
  55. package/dist/types/index.d.ts.map +0 -1
  56. package/dist/types/participant.d.ts +0 -10
  57. package/dist/types/participant.d.ts.map +0 -1
@@ -1,5 +1,19 @@
1
1
  import z from 'zod';
2
2
  import { slatesAction } from '../types';
3
+ import { withRequestTraces } from './tracing';
4
+
5
+ export let slatesWebhookHttpResponse = z.object({
6
+ status: z.number().int().min(100).max(599),
7
+ headers: z.record(z.string(), z.string()),
8
+ body: z
9
+ .object({
10
+ encoding: z.literal('base64'),
11
+ content: z.string()
12
+ })
13
+ .nullable()
14
+ });
15
+
16
+ export type SlatesWebhookHttpResponse = z.infer<typeof slatesWebhookHttpResponse>;
3
17
 
4
18
  /**
5
19
  * List Actions
@@ -8,7 +22,9 @@ export let slatesMessageActionsListRequest = z.object({
8
22
  jsonrpc: z.literal('2.0'),
9
23
  method: z.literal('slates/actions.list'),
10
24
  id: z.string(),
11
- params: z.object({})
25
+ params: z.object({
26
+ includeAdapterActions: z.optional(z.nullable(z.boolean()))
27
+ })
12
28
  });
13
29
 
14
30
  export type SlatesMessageActionsListRequest = z.infer<typeof slatesMessageActionsListRequest>;
@@ -69,9 +85,36 @@ export type SlatesMessageActionInvokeRequest = z.infer<
69
85
  export let slatesMessageActionInvokeResponse = z.object({
70
86
  jsonrpc: z.literal('2.0'),
71
87
  id: z.string(),
72
- result: z.object({
88
+ result: withRequestTraces({
73
89
  output: z.record(z.string(), z.any()),
74
- message: z.string().optional()
90
+ message: z.string().optional(),
91
+ attachments: z
92
+ .array(
93
+ z.object({
94
+ mimeType: z.string().optional(),
95
+ attachmentHash: z.string().optional(),
96
+ content: z.union([
97
+ z.object({
98
+ type: z.literal('url'),
99
+ url: z.string(),
100
+ headers: z.record(z.string(), z.string()).optional(),
101
+ query: z.record(z.string(), z.string()).optional(),
102
+ refreshReference: z.unknown().optional(),
103
+ refreshAt: z.string().optional()
104
+ }),
105
+ z.object({
106
+ type: z.literal('content'),
107
+ encoding: z.union([z.literal('base64'), z.literal('utf-8')]),
108
+ content: z.string()
109
+ }),
110
+ z.object({
111
+ type: z.literal('upload_reference'),
112
+ referenceId: z.string()
113
+ })
114
+ ])
115
+ })
116
+ )
117
+ .optional()
75
118
  })
76
119
  });
77
120
 
@@ -99,7 +142,7 @@ export type SlatesMessageActionTriggerEventMapRequest = z.infer<
99
142
  export let slatesMessageActionTriggerEventMapResponse = z.object({
100
143
  jsonrpc: z.literal('2.0'),
101
144
  id: z.string(),
102
- result: z.object({
145
+ result: withRequestTraces({
103
146
  type: z.string(),
104
147
  id: z.string(),
105
148
  output: z.record(z.string(), z.any())
@@ -110,174 +153,28 @@ export type SlatesMessageActionTriggerEventMapResponse = z.infer<
110
153
  typeof slatesMessageActionTriggerEventMapResponse
111
154
  >;
112
155
 
113
- /**
114
- * Poll Trigger Events
115
- */
116
- export let slatesMessageActionTriggerEventsPollRequest = z.object({
117
- jsonrpc: z.literal('2.0'),
118
- method: z.literal('slates/action.trigger.poll_events'),
119
- id: z.string(),
120
- params: z.object({
121
- actionId: z.string(),
122
- state: z.any().nullable()
123
- })
124
- });
125
-
126
- export type SlatesMessageActionTriggerEventsPollRequest = z.infer<
127
- typeof slatesMessageActionTriggerEventsPollRequest
128
- >;
129
-
130
- export let slatesMessageActionTriggerEventsPollResponse = z.object({
131
- jsonrpc: z.literal('2.0'),
132
- id: z.string(),
133
- result: z.object({
134
- inputs: z.array(z.record(z.string(), z.any())),
135
- updatedState: z.any().nullable().optional()
136
- })
137
- });
138
-
139
- export type SlatesMessageActionTriggerEventsPollResponse = z.infer<
140
- typeof slatesMessageActionTriggerEventsPollResponse
141
- >;
142
-
143
- /**
144
- * Handle Webhook Request
145
- */
146
- export let slatesMessageActionTriggerWebhookHandleRequest = z.object({
147
- jsonrpc: z.literal('2.0'),
148
- method: z.literal('slates/action.trigger.webhook_handle'),
149
- id: z.string(),
150
- params: z.object({
151
- actionId: z.string(),
152
- url: z.string(),
153
- method: z.string(),
154
- headers: z.record(z.string(), z.string()),
155
- body: z
156
- .object({
157
- encoding: z.literal('base64'),
158
- content: z.string()
159
- })
160
- .nullable(),
161
- state: z.any().nullable()
162
- })
163
- });
164
-
165
- export type SlatesMessageActionTriggerWebhookHandleRequest = z.infer<
166
- typeof slatesMessageActionTriggerWebhookHandleRequest
167
- >;
168
-
169
- export let slatesMessageActionTriggerWebhookHandleResponse = z.object({
170
- jsonrpc: z.literal('2.0'),
171
- id: z.string(),
172
- result: z.object({
173
- inputs: z.array(z.record(z.string(), z.any())),
174
- updatedState: z.any().nullable().optional()
175
- })
176
- });
177
-
178
- export type SlatesMessageActionTriggerWebhookHandleResponse = z.infer<
179
- typeof slatesMessageActionTriggerWebhookHandleResponse
180
- >;
181
-
182
- /**
183
- * Handle Webhook Registration
184
- */
185
- export let slatesMessageActionTriggerWebhookRegisterRequest = z.object({
186
- jsonrpc: z.literal('2.0'),
187
- method: z.literal('slates/action.trigger.webhook_register'),
188
- id: z.string(),
189
- params: z.object({
190
- actionId: z.string(),
191
- webhookBaseUrl: z.string()
192
- })
193
- });
194
-
195
- export type SlatesMessageActionTriggerWebhookRegisterRequest = z.infer<
196
- typeof slatesMessageActionTriggerWebhookRegisterRequest
197
- >;
198
-
199
- export let slatesMessageActionTriggerWebhookRegisterResponse = z.object({
200
- jsonrpc: z.literal('2.0'),
201
- id: z.string(),
202
- result: z.object({
203
- registrationDetails: z.any(),
204
- state: z.any().optional()
205
- })
206
- });
207
-
208
- export type SlatesMessageActionTriggerWebhookRegisterResponse = z.infer<
209
- typeof slatesMessageActionTriggerWebhookRegisterResponse
210
- >;
211
-
212
- /**
213
- * Handle Webhook Unregistration
214
- */
215
- export let slatesMessageActionTriggerWebhookUnregisterRequest = z.object({
216
- jsonrpc: z.literal('2.0'),
217
- method: z.literal('slates/action.trigger.webhook_unregister'),
218
- id: z.string(),
219
- params: z.object({
220
- actionId: z.string(),
221
- webhookBaseUrl: z.string(),
222
- registrationDetails: z.any(),
223
- state: z.any().optional()
224
- })
225
- });
226
-
227
- export type SlatesMessageActionTriggerWebhookUnregisterRequest = z.infer<
228
- typeof slatesMessageActionTriggerWebhookUnregisterRequest
229
- >;
230
-
231
- export let slatesMessageActionTriggerWebhookUnregisterResponse = z.object({
232
- jsonrpc: z.literal('2.0'),
233
- id: z.string(),
234
- result: z.object({})
235
- });
236
-
237
- export type SlatesMessageActionTriggerWebhookUnregisterResponse = z.infer<
238
- typeof slatesMessageActionTriggerWebhookUnregisterResponse
239
- >;
240
-
241
156
  export type SlatesActionRequests =
242
157
  | SlatesMessageActionsListRequest
243
158
  | SlatesMessageActionGetRequest
244
159
  | SlatesMessageActionInvokeRequest
245
- | SlatesMessageActionTriggerEventMapRequest
246
- | SlatesMessageActionTriggerEventsPollRequest
247
- | SlatesMessageActionTriggerWebhookHandleRequest
248
- | SlatesMessageActionTriggerWebhookRegisterRequest
249
- | SlatesMessageActionTriggerWebhookUnregisterRequest;
160
+ | SlatesMessageActionTriggerEventMapRequest;
250
161
 
251
162
  export type SlatesActionResponses =
252
163
  | SlatesMessageActionsListResponse
253
164
  | SlatesMessageActionGetResponse
254
165
  | SlatesMessageActionInvokeResponse
255
- | SlatesMessageActionTriggerEventMapResponse
256
- | SlatesMessageActionTriggerEventsPollResponse
257
- | SlatesMessageActionTriggerWebhookHandleResponse
258
- | SlatesMessageActionTriggerWebhookRegisterResponse
259
- | SlatesMessageActionTriggerWebhookUnregisterResponse;
166
+ | SlatesMessageActionTriggerEventMapResponse;
260
167
 
261
168
  export let slatesActionResponsesByMethod = {
262
169
  'slates/actions.list': slatesMessageActionsListResponse,
263
170
  'slates/action.get': slatesMessageActionGetResponse,
264
171
  'slates/action.tool.invoke': slatesMessageActionInvokeResponse,
265
- 'slates/action.trigger.map_event': slatesMessageActionTriggerEventMapResponse,
266
- 'slates/action.trigger.poll_events': slatesMessageActionTriggerEventsPollResponse,
267
- 'slates/action.trigger.webhook_handle': slatesMessageActionTriggerWebhookHandleResponse,
268
- 'slates/action.trigger.webhook_register': slatesMessageActionTriggerWebhookRegisterResponse,
269
- 'slates/action.trigger.webhook_unregister':
270
- slatesMessageActionTriggerWebhookUnregisterResponse
172
+ 'slates/action.trigger.map_event': slatesMessageActionTriggerEventMapResponse
271
173
  };
272
174
 
273
175
  export let slatesActionRequestsByMethod = {
274
176
  'slates/actions.list': slatesMessageActionsListRequest,
275
177
  'slates/action.get': slatesMessageActionGetRequest,
276
178
  'slates/action.tool.invoke': slatesMessageActionInvokeRequest,
277
- 'slates/action.trigger.map_event': slatesMessageActionTriggerEventMapRequest,
278
- 'slates/action.trigger.poll_events': slatesMessageActionTriggerEventsPollRequest,
279
- 'slates/action.trigger.webhook_handle': slatesMessageActionTriggerWebhookHandleRequest,
280
- 'slates/action.trigger.webhook_register': slatesMessageActionTriggerWebhookRegisterRequest,
281
- 'slates/action.trigger.webhook_unregister':
282
- slatesMessageActionTriggerWebhookUnregisterRequest
179
+ 'slates/action.trigger.map_event': slatesMessageActionTriggerEventMapRequest
283
180
  };
@@ -0,0 +1,72 @@
1
+ import z from 'zod';
2
+ import { slatesAdapter } from '../types';
3
+
4
+ /**
5
+ * List Adapters
6
+ */
7
+ export let slatesMessageAdaptersListRequest = z.object({
8
+ jsonrpc: z.literal('2.0'),
9
+ method: z.literal('slates/adapters.list'),
10
+ id: z.string(),
11
+ params: z.object({
12
+ includeAdapters: z.optional(z.nullable(z.boolean()))
13
+ })
14
+ });
15
+
16
+ export type SlatesMessageAdaptersListRequest = z.infer<
17
+ typeof slatesMessageAdaptersListRequest
18
+ >;
19
+
20
+ export let slatesMessageAdaptersListResponse = z.object({
21
+ jsonrpc: z.literal('2.0'),
22
+ id: z.string(),
23
+ result: z.object({
24
+ adapters: z.array(slatesAdapter)
25
+ })
26
+ });
27
+
28
+ export type SlatesMessageAdaptersListResponse = z.infer<
29
+ typeof slatesMessageAdaptersListResponse
30
+ >;
31
+
32
+ /**
33
+ * Get Adapter
34
+ */
35
+ export let slatesMessageAdapterGetRequest = z.object({
36
+ jsonrpc: z.literal('2.0'),
37
+ method: z.literal('slates/adapter.get'),
38
+ id: z.string(),
39
+ params: z.object({
40
+ adapterId: z.string()
41
+ })
42
+ });
43
+
44
+ export type SlatesMessageAdapterGetRequest = z.infer<typeof slatesMessageAdapterGetRequest>;
45
+
46
+ export let slatesMessageAdapterGetResponse = z.object({
47
+ jsonrpc: z.literal('2.0'),
48
+ id: z.string(),
49
+ result: z.object({
50
+ adapter: slatesAdapter
51
+ })
52
+ });
53
+
54
+ export type SlatesMessageAdapterGetResponse = z.infer<typeof slatesMessageAdapterGetResponse>;
55
+
56
+ export type SlatesAdapterRequests =
57
+ | SlatesMessageAdaptersListRequest
58
+ | SlatesMessageAdapterGetRequest;
59
+
60
+ export type SlatesAdapterResponses =
61
+ | SlatesMessageAdaptersListResponse
62
+ | SlatesMessageAdapterGetResponse;
63
+
64
+ export let slatesAdapterResponsesByMethod = {
65
+ 'slates/adapters.list': slatesMessageAdaptersListResponse,
66
+ 'slates/adapter.get': slatesMessageAdapterGetResponse
67
+ };
68
+
69
+ export let slatesAdapterRequestsByMethod = {
70
+ 'slates/adapters.list': slatesMessageAdaptersListRequest,
71
+ 'slates/adapter.get': slatesMessageAdapterGetRequest
72
+ };
@@ -1,5 +1,6 @@
1
1
  import z from 'zod';
2
- import { slatesAuthenticationMethod } from '../types';
2
+ import { slatesAuthenticationMethod, slatesTriggerRoutingMatcher } from '../types';
3
+ import { withRequestTraces } from './tracing';
3
4
 
4
5
  /**
5
6
  * Set Authentication
@@ -92,7 +93,7 @@ export type SlatesMessageAuthInputChangedRequest = z.infer<
92
93
  export let slatesMessageAuthInputChangedResponse = z.object({
93
94
  jsonrpc: z.literal('2.0'),
94
95
  id: z.string(),
95
- result: z.object({
96
+ result: withRequestTraces({
96
97
  input: z.record(z.string(), z.any()).optional()
97
98
  })
98
99
  });
@@ -120,7 +121,7 @@ export type SlatesMessageAuthDefaultInputGetRequest = z.infer<
120
121
  export let slatesMessageAuthDefaultInputGetResponse = z.object({
121
122
  jsonrpc: z.literal('2.0'),
122
123
  id: z.string(),
123
- result: z.object({
124
+ result: withRequestTraces({
124
125
  input: z.record(z.string(), z.any())
125
126
  })
126
127
  });
@@ -155,9 +156,10 @@ export type SlatesMessageAuthAuthorizationUrlGetRequest = z.infer<
155
156
  export let slatesMessageAuthAuthorizationUrlGetResponse = z.object({
156
157
  jsonrpc: z.literal('2.0'),
157
158
  id: z.string(),
158
- result: z.object({
159
+ result: withRequestTraces({
159
160
  authorizationUrl: z.string(),
160
- input: z.record(z.string(), z.any()).optional()
161
+ input: z.record(z.string(), z.any()).optional(),
162
+ callbackState: z.record(z.string(), z.any()).optional()
161
163
  })
162
164
  });
163
165
 
@@ -181,7 +183,9 @@ export let slatesMessageAuthAuthorizationCallbackHandleRequest = z.object({
181
183
  input: z.record(z.string(), z.any()),
182
184
  clientId: z.string(),
183
185
  clientSecret: z.string(),
184
- scopes: z.array(z.string())
186
+ scopes: z.array(z.string()),
187
+ callbackParams: z.record(z.string(), z.string()).optional(),
188
+ callbackState: z.record(z.string(), z.any()).optional()
185
189
  })
186
190
  });
187
191
 
@@ -192,9 +196,11 @@ export type SlatesMessageAuthAuthorizationCallbackHandleRequest = z.infer<
192
196
  export let slatesMessageAuthAuthorizationCallbackHandleResponse = z.object({
193
197
  jsonrpc: z.literal('2.0'),
194
198
  id: z.string(),
195
- result: z.object({
199
+ result: withRequestTraces({
196
200
  output: z.record(z.string(), z.any()),
197
- input: z.record(z.string(), z.any()).optional()
201
+ input: z.record(z.string(), z.any()).optional(),
202
+ scopes: z.array(z.string()).optional(),
203
+ routingMatchers: z.array(slatesTriggerRoutingMatcher).optional()
198
204
  })
199
205
  });
200
206
 
@@ -227,9 +233,10 @@ export type SlatesMessageAuthTokenRefreshHandleRequest = z.infer<
227
233
  export let slatesMessageAuthTokenRefreshHandleResponse = z.object({
228
234
  jsonrpc: z.literal('2.0'),
229
235
  id: z.string(),
230
- result: z.object({
236
+ result: withRequestTraces({
231
237
  output: z.record(z.string(), z.any()),
232
- input: z.record(z.string(), z.any()).optional()
238
+ input: z.record(z.string(), z.any()).optional(),
239
+ routingMatchers: z.array(slatesTriggerRoutingMatcher).optional()
233
240
  })
234
241
  });
235
242
 
@@ -260,7 +267,7 @@ export type SlatesMessageAuthProfileGetRequest = z.infer<
260
267
  export let slatesMessageAuthProfileGetResponse = z.object({
261
268
  jsonrpc: z.literal('2.0'),
262
269
  id: z.string(),
263
- result: z.object({
270
+ result: withRequestTraces({
264
271
  profile: z.record(z.string(), z.any())
265
272
  })
266
273
  });
@@ -290,8 +297,9 @@ export type SlatesMessageAuthOutputGetRequest = z.infer<
290
297
  export let slatesMessageAuthOutputGetResponse = z.object({
291
298
  jsonrpc: z.literal('2.0'),
292
299
  id: z.string(),
293
- result: z.object({
294
- output: z.record(z.string(), z.any())
300
+ result: withRequestTraces({
301
+ output: z.record(z.string(), z.any()),
302
+ scopes: z.array(z.string()).optional()
295
303
  })
296
304
  });
297
305
 
@@ -1,4 +1,5 @@
1
1
  import z from 'zod';
2
+ import { withRequestTraces } from './tracing';
2
3
 
3
4
  /**
4
5
  * Set Config
@@ -33,7 +34,14 @@ export let slatesMessageConfigSchemaGetResponse = z.object({
33
34
  jsonrpc: z.literal('2.0'),
34
35
  id: z.string(),
35
36
  result: z.object({
36
- schema: z.record(z.string(), z.any())
37
+ schema: z.record(z.string(), z.any()),
38
+ docs: z.array(
39
+ z.object({
40
+ type: z.literal('docs.config.general').optional(),
41
+ name: z.string(),
42
+ url: z.string()
43
+ })
44
+ )
37
45
  })
38
46
  });
39
47
 
@@ -47,6 +55,7 @@ export type SlatesMessageConfigSchemaGetResponse = z.infer<
47
55
  export let slatesMessageConfigChangedRequest = z.object({
48
56
  jsonrpc: z.literal('2.0'),
49
57
  method: z.literal('slates/config.changed'),
58
+ id: z.string(),
50
59
  params: z.object({
51
60
  previousConfig: z.record(z.string(), z.any()).nullable(),
52
61
  newConfig: z.record(z.string(), z.any())
@@ -60,7 +69,7 @@ export type SlatesMessageConfigChangedRequest = z.infer<
60
69
  export let slatesMessageConfigChangedResponse = z.object({
61
70
  jsonrpc: z.literal('2.0'),
62
71
  id: z.string(),
63
- result: z.object({
72
+ result: withRequestTraces({
64
73
  success: z.boolean(),
65
74
  config: z.record(z.string(), z.any()).optional(),
66
75
  errors: z
@@ -96,7 +105,7 @@ export type SlatesMessageConfigDefaultGetRequest = z.infer<
96
105
  export let slatesMessageConfigDefaultGetResponse = z.object({
97
106
  jsonrpc: z.literal('2.0'),
98
107
  id: z.string(),
99
- result: z.object({
108
+ result: withRequestTraces({
100
109
  config: z.record(z.string(), z.any()).nullable()
101
110
  })
102
111
  });
@@ -1,11 +1,12 @@
1
1
  import z from 'zod';
2
2
  import { slatesParticipant } from '../types';
3
+ import { SLATES_PROTOCOL_VERSION } from '../version';
3
4
 
4
5
  export let slatesMessageHelloNotification = z.object({
5
6
  jsonrpc: z.literal('2.0'),
6
7
  method: z.literal('slates/hello'),
7
8
  params: z.object({
8
- protocol: z.literal('slates@2026-01-01')
9
+ protocol: z.literal(SLATES_PROTOCOL_VERSION)
9
10
  })
10
11
  });
11
12
 
@@ -0,0 +1,92 @@
1
+ import z from 'zod';
2
+
3
+ export let slatesMessageHubCapabilitiesSetNotification = z.object({
4
+ jsonrpc: z.literal('2.0'),
5
+ method: z.literal('slates/hub.capabilities.set'),
6
+ params: z.object({
7
+ capabilities: z.object({
8
+ attachments: z
9
+ .object({
10
+ directUpload: z.object({
11
+ enabled: z.boolean(),
12
+ maxAttachmentSizeBytes: z.number().optional()
13
+ })
14
+ })
15
+ .optional(),
16
+ adapters: z.boolean().optional(),
17
+ triggers: z.boolean().optional()
18
+ })
19
+ })
20
+ });
21
+
22
+ export type SlatesMessageHubCapabilitiesSetNotification = z.infer<
23
+ typeof slatesMessageHubCapabilitiesSetNotification
24
+ >;
25
+
26
+ export let slatesMessageHubLiveInvocationSetNotification = z.object({
27
+ jsonrpc: z.literal('2.0'),
28
+ method: z.literal('slates/hub.live_invocation.set'),
29
+ params: z.object({
30
+ token: z.string(),
31
+ baseUrl: z.string()
32
+ })
33
+ });
34
+
35
+ export type SlatesMessageHubLiveInvocationSetNotification = z.infer<
36
+ typeof slatesMessageHubLiveInvocationSetNotification
37
+ >;
38
+
39
+ export type SlatesHubNotifications =
40
+ | SlatesMessageHubCapabilitiesSetNotification
41
+ | SlatesMessageHubLiveInvocationSetNotification;
42
+
43
+ export let slatesHubNotificationsByMethod = {
44
+ 'slates/hub.capabilities.set': slatesMessageHubCapabilitiesSetNotification,
45
+ 'slates/hub.live_invocation.set': slatesMessageHubLiveInvocationSetNotification
46
+ };
47
+
48
+ export let slatesMessageProviderCapabilitiesGetRequest = z.object({
49
+ jsonrpc: z.literal('2.0'),
50
+ method: z.literal('slates/provider.capabilities.get'),
51
+ id: z.string(),
52
+ params: z.object({})
53
+ });
54
+
55
+ export type SlatesMessageProviderCapabilitiesGetRequest = z.infer<
56
+ typeof slatesMessageProviderCapabilitiesGetRequest
57
+ >;
58
+
59
+ export let slatesMessageProviderCapabilitiesGetResponse = z.object({
60
+ jsonrpc: z.literal('2.0'),
61
+ id: z.string(),
62
+ result: z.object({
63
+ capabilities: z.object({
64
+ hub: z
65
+ .object({
66
+ capabilitiesNotification: z.boolean().optional(),
67
+ liveInvocation: z.boolean().optional()
68
+ })
69
+ .optional(),
70
+ provider: z
71
+ .object({
72
+ triggerGroups: z.boolean().optional()
73
+ })
74
+ .optional()
75
+ })
76
+ })
77
+ });
78
+
79
+ export type SlatesMessageProviderCapabilitiesGetResponse = z.infer<
80
+ typeof slatesMessageProviderCapabilitiesGetResponse
81
+ >;
82
+
83
+ export type SlatesHubRequests = SlatesMessageProviderCapabilitiesGetRequest;
84
+ export type SlatesHubResponses = SlatesMessageProviderCapabilitiesGetResponse;
85
+
86
+ export let slatesHubRequestsByMethod = {
87
+ 'slates/provider.capabilities.get': slatesMessageProviderCapabilitiesGetRequest
88
+ };
89
+
90
+ export let slatesHubResponsesByMethod = {
91
+ 'slates/provider.capabilities.get': slatesMessageProviderCapabilitiesGetResponse
92
+ };
@@ -1,8 +1,10 @@
1
1
  import z from 'zod';
2
+ import { SLATES_PROTOCOL_VERSION } from '../version';
2
3
 
3
4
  export let slatesMessageProviderIdentifyRequest = z.object({
4
5
  jsonrpc: z.literal('2.0'),
5
6
  method: z.literal('slates/provider.identify'),
7
+ id: z.string(),
6
8
  params: z.object({})
7
9
  });
8
10
 
@@ -14,15 +16,20 @@ export let slatesMessageProviderIdentifyResponse = z.object({
14
16
  jsonrpc: z.literal('2.0'),
15
17
  id: z.string(),
16
18
  result: z.object({
17
- protocol: z.literal('slates@2026-01-01'),
18
-
19
+ protocol: z.literal(SLATES_PROTOCOL_VERSION),
19
20
  provider: z.object({
20
21
  type: z.literal('provider'),
21
22
  id: z.string(),
22
23
  name: z.string(),
23
24
  description: z.string().optional(),
24
25
  metadata: z.record(z.string(), z.any()).optional()
25
- })
26
+ }),
27
+ docs: z.array(
28
+ z.object({
29
+ name: z.string(),
30
+ url: z.string()
31
+ })
32
+ )
26
33
  })
27
34
  });
28
35