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

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 +1631 -2
  2. package/dist/index.d.cts +5394 -0
  3. package/dist/index.d.ts +5394 -4
  4. package/dist/index.module.js +1479 -2
  5. package/package.json +8 -7
  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 +382 -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,2 +1,1479 @@
1
- import{badRequestError as t,notFoundError as e,validationError as r,isServiceError as n,internalServerError as a}from"@lowerdeck/error";import i from"zod";function o(t,e){if(!{}.hasOwnProperty.call(t,e))throw new TypeError("attempted to use private field on non-instance");return t}var s=0;function l(t){return"__private_"+s+++"_"+t}function c(){return c=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},c.apply(null,arguments)}var d=i.object({id:i.string(),name:i.string(),description:i.string().optional(),instructions:i.array(i.string()).optional(),constraints:i.array(i.string()).optional(),tags:i.object({destructive:i.boolean().optional(),readOnly:i.boolean().optional()}).optional(),metadata:i.record(i.string(),i.any()).optional(),inputSchema:i.record(i.string(),i.any()),outputSchema:i.record(i.string(),i.any())}),g=d.extend({type:i.literal("action.tool"),capabilities:i.object({})}),u=d.extend({type:i.literal("action.trigger"),capabilities:i.object({}),invocation:i.union([i.object({type:i.literal("polling"),intervalSeconds:i.number().min(15)}),i.object({type:i.literal("webhook"),autoRegistration:i.boolean(),autoUnregistration:i.boolean()})])}),p=i.union([g,u]),h=i.object({id:i.string(),name:i.string(),type:i.union([i.literal("auth.oauth"),i.literal("auth.token"),i.literal("auth.service_account"),i.literal("auth.custom")]),scopes:i.array(i.object({id:i.string(),title:i.string(),description:i.string().optional()})).optional(),inputSchema:i.record(i.string(),i.any()),outputSchema:i.record(i.string(),i.any()),capabilities:i.object({getDefaultInput:i.object({enabled:i.boolean()}).optional(),handleChangedInput:i.object({enabled:i.boolean()}).optional(),handleTokenRefresh:i.object({enabled:i.boolean()}).optional(),getProfile:i.object({enabled:i.boolean()}).optional()})}),j=i.object({type:i.union([i.literal("consumer"),i.literal("hub")]),id:i.string(),name:i.string(),description:i.string().optional(),metadata:i.record(i.string(),i.any()).optional()}),b=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/actions.list"),id:i.string(),params:i.object({})}),m=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({actions:i.array(p)})}),y=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/action.get"),id:i.string(),params:i.object({actionId:i.string()})}),f=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({action:p})}),v=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/action.tool.invoke"),id:i.string(),params:i.object({actionId:i.string(),input:i.record(i.string(),i.any())})}),_=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({output:i.record(i.string(),i.any()),message:i.string().optional()})}),I=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/action.trigger.map_event"),id:i.string(),params:i.object({actionId:i.string(),input:i.record(i.string(),i.any())})}),w=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({type:i.string(),id:i.string(),output:i.record(i.string(),i.any())})}),k=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/action.trigger.poll_events"),id:i.string(),params:i.object({actionId:i.string(),state:i.any().nullable()})}),M=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({inputs:i.array(i.record(i.string(),i.any())),updatedState:i.any().nullable().optional()})}),P=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/action.trigger.webhook_handle"),id:i.string(),params:i.object({actionId:i.string(),url:i.string(),method:i.string(),headers:i.record(i.string(),i.string()),body:i.object({encoding:i.literal("base64"),content:i.string()}).nullable(),state:i.any().nullable()})}),S=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({inputs:i.array(i.record(i.string(),i.any())),updatedState:i.any().nullable().optional()})}),z=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/action.trigger.webhook_register"),id:i.string(),params:i.object({actionId:i.string(),webhookBaseUrl:i.string()})}),O=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({registrationDetails:i.any(),state:i.any().optional()})}),U=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/action.trigger.webhook_unregister"),id:i.string(),params:i.object({actionId:i.string(),webhookBaseUrl:i.string(),registrationDetails:i.any(),state:i.any().optional()})}),q=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({})}),x={"slates/actions.list":m,"slates/action.get":f,"slates/action.tool.invoke":_,"slates/action.trigger.map_event":w,"slates/action.trigger.poll_events":M,"slates/action.trigger.webhook_handle":S,"slates/action.trigger.webhook_register":O,"slates/action.trigger.webhook_unregister":q},C={"slates/actions.list":b,"slates/action.get":y,"slates/action.tool.invoke":v,"slates/action.trigger.map_event":I,"slates/action.trigger.poll_events":k,"slates/action.trigger.webhook_handle":P,"slates/action.trigger.webhook_register":z,"slates/action.trigger.webhook_unregister":U},D=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/auth.set"),params:i.object({authenticationMethodId:i.string(),output:i.record(i.string(),i.any())})}),E=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/auth.methods.list"),id:i.string(),params:i.object({})}),N=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({authenticationMethods:i.array(h)})}),R=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/auth.method.get"),id:i.string(),params:i.object({authenticationMethodId:i.string()})}),B=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({authenticationMethod:h})}),T=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/auth.input.changed"),id:i.string(),params:i.object({authenticationMethodId:i.string(),previousInput:i.record(i.string(),i.any()).nullable(),newInput:i.record(i.string(),i.any())})}),A=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({input:i.record(i.string(),i.any()).optional()})}),F=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/auth.input.get_default"),id:i.string(),params:i.object({authenticationMethodId:i.string()})}),G=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({input:i.record(i.string(),i.any())})}),H=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/auth.authorization_url.get"),id:i.string(),params:i.object({authenticationMethodId:i.string(),redirectUri:i.string(),state:i.string(),input:i.record(i.string(),i.any()),clientId:i.string(),clientSecret:i.string(),scopes:i.array(i.string())})}),J=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({authorizationUrl:i.string(),input:i.record(i.string(),i.any()).optional()})}),K=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/auth.authorization_callback.handle"),id:i.string(),params:i.object({authenticationMethodId:i.string(),code:i.string(),state:i.string(),redirectUri:i.string(),input:i.record(i.string(),i.any()),clientId:i.string(),clientSecret:i.string(),scopes:i.array(i.string())})}),L=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({output:i.record(i.string(),i.any()),input:i.record(i.string(),i.any()).optional()})}),Q=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/auth.token_refresh.handle"),id:i.string(),params:i.object({authenticationMethodId:i.string(),output:i.record(i.string(),i.any()),input:i.record(i.string(),i.any()),clientId:i.string(),clientSecret:i.string(),scopes:i.array(i.string())})}),V=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({output:i.record(i.string(),i.any()),input:i.record(i.string(),i.any()).optional()})}),W=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/auth.profile.get"),id:i.string(),params:i.object({authenticationMethodId:i.string(),output:i.record(i.string(),i.any()),input:i.record(i.string(),i.any()),scopes:i.array(i.string())})}),X=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({profile:i.record(i.string(),i.any())})}),Y=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/auth.output.get"),id:i.string(),params:i.object({authenticationMethodId:i.string(),input:i.record(i.string(),i.any())})}),Z=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({output:i.record(i.string(),i.any())})}),$={"slates/auth.methods.list":N,"slates/auth.method.get":B,"slates/auth.input.changed":A,"slates/auth.input.get_default":G,"slates/auth.authorization_url.get":J,"slates/auth.authorization_callback.handle":L,"slates/auth.token_refresh.handle":V,"slates/auth.profile.get":X,"slates/auth.output.get":Z},tt={"slates/auth.methods.list":E,"slates/auth.method.get":R,"slates/auth.input.changed":T,"slates/auth.input.get_default":F,"slates/auth.authorization_url.get":H,"slates/auth.authorization_callback.handle":K,"slates/auth.token_refresh.handle":Q,"slates/auth.profile.get":W,"slates/auth.output.get":Y},et={"slates/auth.set":D},rt=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/config.set"),params:i.object({config:i.record(i.string(),i.any())})}),nt=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/config.schema.get"),id:i.string(),params:i.object({})}),at=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({schema:i.record(i.string(),i.any())})}),it=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/config.changed"),params:i.object({previousConfig:i.record(i.string(),i.any()).nullable(),newConfig:i.record(i.string(),i.any())})}),ot=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({success:i.boolean(),config:i.record(i.string(),i.any()).optional(),errors:i.array(i.object({code:i.string(),message:i.string(),path:i.array(i.string()).optional()})).optional()})}),st=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/config.get_default"),id:i.string(),params:i.object({})}),lt=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({config:i.record(i.string(),i.any()).nullable()})}),ct={"slates/config.schema.get":at,"slates/config.get_default":lt,"slates/config.changed":ot},dt={"slates/config.schema.get":nt,"slates/config.get_default":st,"slates/config.changed":it},gt={"slates/config.set":rt},ut=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/hello"),params:i.object({protocol:i.literal("slates@2026-01-01")})}),pt=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/participant.set"),params:i.object({participants:i.array(j)})}),ht=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/session.start"),params:i.object({sessionId:i.string(),state:i.record(i.string(),i.any())})}),jt={"slates/hello":ut,"slates/participant.set":pt,"slates/session.start":ht},bt=i.object({jsonrpc:i.literal("2.0"),method:i.literal("slates/provider.identify"),params:i.object({})}),mt=i.object({jsonrpc:i.literal("2.0"),id:i.string(),result:i.object({protocol:i.literal("slates@2026-01-01"),provider:i.object({type:i.literal("provider"),id:i.string(),name:i.string(),description:i.string().optional(),metadata:i.record(i.string(),i.any()).optional()})})}),yt={"slates/provider.identify":mt},ft={"slates/provider.identify":bt},vt=c({},x,$,ct,yt),_t=c({},C,tt,dt,ft),It=c({},et,gt,jt),wt=/*#__PURE__*/l("implMap"),kt=/*#__PURE__*/function(){function i(){Object.defineProperty(this,wt,{writable:!0,value:new Map})}var s=i.prototype;return s.onNotification=function(t,e){var r=It[t];if(!r)throw new Error("No schema found for method: "+t);o(this,wt)[wt].set(t,{type:"notification",handler:e,schema:r})},s.onRequest=function(t,e){var r=_t[t];if(!r)throw new Error("No schema found for method: "+t);o(this,wt)[wt].set(t,{type:"request",handler:e,schema:r})},s._handleInput=function(i){try{var s,l=this;return Promise.resolve(function(n,a){try{var d=function(){function n(t){return s?t:Promise.resolve(a.handler(d.data)).then(function(t){return{jsonrpc:"2.0",id:d.data.id,result:t}})}if("object"!=typeof i||null===i)return{jsonrpc:"2.0",id:i.id,error:t({message:"Invalid input"})};if("2.0"!==i.jsonrpc)return{jsonrpc:"2.0",id:i.id,error:t({message:"Invalid jsonrpc version"})};if("string"!=typeof i.method)return{jsonrpc:"2.0",id:i.id,error:t({message:"Invalid or missing method"})};var a=o(l,wt)[wt].get(i.method);if(!a)return{jsonrpc:"2.0",id:i.id,error:e("handler",i.method)};var d=a.schema.safeParse(i);if(!d.success)return{jsonrpc:"2.0",id:i.id,error:r({entity:"request",message:"Invalid request parameters",errors:d.error.issues.map(function(t){return c({},t,{path:t.path.map(function(t){return String(t)})})})})};var g=function(){if("notification"===a.type)return Promise.resolve(a.handler(d.data)).then(function(){s=1})}();return g&&g.then?g.then(n):n(g)}()}catch(t){return a(t)}return d&&d.then?d.then(void 0,a):d}(0,function(t){return n(t)?{jsonrpc:"2.0",id:i.id,error:t}:(console.error(t),{jsonrpc:"2.0",id:i.id,error:a({message:"Internal server error"})})}))}catch(t){return Promise.reject(t)}},i.handleInput=function(t,e){try{return Promise.resolve(t._handleInput(e))}catch(t){return Promise.reject(t)}},i}(),Mt=function(t){return{run:function(){try{var e=new kt;return Promise.resolve(t(e)).then(function(){return e})}catch(t){return Promise.reject(t)}}}};export{kt as SlatesProviderProtoHandlerManager,Mt as createSlatesProviderProtoHandler,p as slatesAction,d as slatesActionBase,C as slatesActionRequestsByMethod,x as slatesActionResponsesByMethod,g as slatesActionTool,u as slatesActionTrigger,et as slatesAuthNotificationsByMethod,tt as slatesAuthRequestsByMethod,$ as slatesAuthResponsesByMethod,h as slatesAuthenticationMethod,gt as slatesConfigNotificationsByMethod,dt as slatesConfigRequestsByMethod,ct as slatesConfigResponsesByMethod,jt as slatesControlFlowNotificationsByMethod,ft as slatesIdentifyRequestsByMethod,yt as slatesIdentifyResponsesByMethod,y as slatesMessageActionGetRequest,f as slatesMessageActionGetResponse,v as slatesMessageActionInvokeRequest,_ as slatesMessageActionInvokeResponse,I as slatesMessageActionTriggerEventMapRequest,w as slatesMessageActionTriggerEventMapResponse,k as slatesMessageActionTriggerEventsPollRequest,M as slatesMessageActionTriggerEventsPollResponse,P as slatesMessageActionTriggerWebhookHandleRequest,S as slatesMessageActionTriggerWebhookHandleResponse,z as slatesMessageActionTriggerWebhookRegisterRequest,O as slatesMessageActionTriggerWebhookRegisterResponse,U as slatesMessageActionTriggerWebhookUnregisterRequest,q as slatesMessageActionTriggerWebhookUnregisterResponse,b as slatesMessageActionsListRequest,m as slatesMessageActionsListResponse,K as slatesMessageAuthAuthorizationCallbackHandleRequest,L as slatesMessageAuthAuthorizationCallbackHandleResponse,H as slatesMessageAuthAuthorizationUrlGetRequest,J as slatesMessageAuthAuthorizationUrlGetResponse,F as slatesMessageAuthDefaultInputGetRequest,G as slatesMessageAuthDefaultInputGetResponse,T as slatesMessageAuthInputChangedRequest,A as slatesMessageAuthInputChangedResponse,R as slatesMessageAuthMethodGetRequest,B as slatesMessageAuthMethodGetResponse,E as slatesMessageAuthMethodsListRequest,N as slatesMessageAuthMethodsListResponse,Y as slatesMessageAuthOutputGetRequest,Z as slatesMessageAuthOutputGetResponse,W as slatesMessageAuthProfileGetRequest,X as slatesMessageAuthProfileGetResponse,Q as slatesMessageAuthTokenRefreshHandleRequest,V as slatesMessageAuthTokenRefreshHandleResponse,it as slatesMessageConfigChangedRequest,ot as slatesMessageConfigChangedResponse,st as slatesMessageConfigDefaultGetRequest,lt as slatesMessageConfigDefaultGetResponse,nt as slatesMessageConfigSchemaGetRequest,at as slatesMessageConfigSchemaGetResponse,ut as slatesMessageHelloNotification,bt as slatesMessageProviderIdentifyRequest,mt as slatesMessageProviderIdentifyResponse,ht as slatesMessageSessionStartNotification,D as slatesMessageSetAuthNotification,rt as slatesMessageSetConfigNotification,pt as slatesMessageSetParticipantsNotification,It as slatesNotificationsByMethod,j as slatesParticipant,_t as slatesRequestsByMethod,vt as slatesResponsesByMethod};
2
- //# sourceMappingURL=index.module.js.map
1
+ // src/handler/provider.ts
2
+ import {
3
+ badRequestError,
4
+ isServiceError,
5
+ notFoundError,
6
+ validationError
7
+ } from "@lowerdeck/error";
8
+
9
+ // src/messages/action.ts
10
+ import z7 from "zod";
11
+
12
+ // src/types/action.ts
13
+ import z from "zod";
14
+ var slatesActionScopeClause = z.object({
15
+ OR: z.array(z.string()).min(1)
16
+ });
17
+ var slatesActionScopes = z.object({
18
+ AND: z.array(slatesActionScopeClause).min(1)
19
+ });
20
+ var slatesActionBase = z.object({
21
+ id: z.string(),
22
+ name: z.string(),
23
+ description: z.string().optional(),
24
+ instructions: z.array(z.string()).optional(),
25
+ constraints: z.array(z.string()).optional(),
26
+ tags: z.object({
27
+ destructive: z.boolean().optional(),
28
+ readOnly: z.boolean().optional()
29
+ }).optional(),
30
+ metadata: z.record(z.string(), z.any()).optional(),
31
+ scopes: slatesActionScopes.optional(),
32
+ authMethods: z.array(z.string()).optional(),
33
+ inputSchema: z.record(z.string(), z.any()),
34
+ outputSchema: z.record(z.string(), z.any()),
35
+ docs: z.array(
36
+ z.object({
37
+ type: z.literal("docs.action.general").optional(),
38
+ name: z.string(),
39
+ url: z.string()
40
+ })
41
+ ),
42
+ adapter: z.optional(z.nullable(z.string()))
43
+ });
44
+ var slatesActionTool = slatesActionBase.extend({
45
+ type: z.literal("action.tool"),
46
+ capabilities: z.object({}),
47
+ isPublic: z.boolean()
48
+ });
49
+ var slatesActionTrigger = slatesActionBase.extend({
50
+ type: z.literal("action.trigger"),
51
+ capabilities: z.object({}),
52
+ triggerGroupId: z.string()
53
+ });
54
+ var slatesAction = z.union([slatesActionTool, slatesActionTrigger]);
55
+
56
+ // src/types/adapter.ts
57
+ import z2 from "zod";
58
+ var slatesAdapter = z2.object({
59
+ id: z2.string(),
60
+ name: z2.string(),
61
+ capabilities: z2.array(
62
+ z2.object({
63
+ id: z2.string(),
64
+ value: z2.any()
65
+ })
66
+ )
67
+ });
68
+
69
+ // src/types/authMethod.ts
70
+ import z3 from "zod";
71
+ var slatesAuthenticationMethod = z3.object({
72
+ id: z3.string(),
73
+ name: z3.string(),
74
+ type: z3.union([
75
+ z3.literal("auth.oauth"),
76
+ z3.literal("auth.token"),
77
+ z3.literal("auth.service_account"),
78
+ z3.literal("auth.custom")
79
+ ]),
80
+ scopes: z3.array(
81
+ z3.object({
82
+ id: z3.string(),
83
+ title: z3.string(),
84
+ description: z3.string().optional()
85
+ })
86
+ ).optional(),
87
+ adapters: z3.array(z3.string()).optional(),
88
+ inputSchema: z3.record(z3.string(), z3.any()),
89
+ outputSchema: z3.record(z3.string(), z3.any()),
90
+ capabilities: z3.object({
91
+ getDefaultInput: z3.object({ enabled: z3.boolean() }).optional(),
92
+ handleChangedInput: z3.object({ enabled: z3.boolean() }).optional(),
93
+ handleTokenRefresh: z3.object({ enabled: z3.boolean() }).optional(),
94
+ getProfile: z3.object({ enabled: z3.boolean() }).optional()
95
+ }),
96
+ docs: z3.array(
97
+ z3.object({
98
+ type: z3.union([
99
+ z3.literal("docs.auth.oauth"),
100
+ z3.literal("docs.auth.oauth_scopes"),
101
+ z3.literal("docs.auth.token"),
102
+ z3.literal("docs.auth.service_account"),
103
+ z3.literal("docs.auth.custom")
104
+ ]).optional(),
105
+ name: z3.string(),
106
+ url: z3.string()
107
+ })
108
+ )
109
+ });
110
+
111
+ // src/types/participant.ts
112
+ import z4 from "zod";
113
+ var slatesParticipant = z4.object({
114
+ type: z4.union([z4.literal("consumer"), z4.literal("hub")]),
115
+ id: z4.string(),
116
+ name: z4.string(),
117
+ description: z4.string().optional(),
118
+ metadata: z4.record(z4.string(), z4.any()).optional()
119
+ });
120
+
121
+ // src/types/triggerGroup.ts
122
+ import z5 from "zod";
123
+ var slatesTriggerRoutingMatcher = z5.record(z5.string(), z5.any());
124
+ var slatesTriggerGroupInvocation = z5.union([
125
+ z5.object({
126
+ type: z5.literal("polling"),
127
+ intervalSeconds: z5.number().min(60 * 10)
128
+ }),
129
+ z5.object({
130
+ type: z5.literal("webhook"),
131
+ registration: z5.union([
132
+ z5.object({
133
+ mode: z5.literal("auto")
134
+ }),
135
+ z5.object({
136
+ mode: z5.literal("manual"),
137
+ userConfigSchema: z5.record(z5.string(), z5.any()),
138
+ fullConfigSchema: z5.record(z5.string(), z5.any())
139
+ })
140
+ ])
141
+ })
142
+ ]);
143
+ var slatesTriggerGroup = z5.object({
144
+ id: z5.string(),
145
+ name: z5.string(),
146
+ description: z5.string().optional(),
147
+ metadata: z5.record(z5.string(), z5.any()).optional(),
148
+ invocation: slatesTriggerGroupInvocation
149
+ });
150
+ var slatesWebhookTargetOwnership = z5.enum(["single_user", "multi_user"]);
151
+ var slatesWebhookTarget = z5.object({
152
+ webhookTargetIdentifier: z5.string(),
153
+ name: z5.string(),
154
+ description: z5.string().optional(),
155
+ metadata: z5.record(z5.string(), z5.any()),
156
+ webhookTargetPayload: z5.any(),
157
+ targetOwnership: slatesWebhookTargetOwnership
158
+ });
159
+
160
+ // src/messages/tracing.ts
161
+ import z6 from "zod";
162
+ var slatesRequestTraceTextBody = z6.object({
163
+ contentType: z6.string().optional(),
164
+ text: z6.string(),
165
+ truncated: z6.boolean().optional()
166
+ });
167
+ var slatesRequestTrace = z6.object({
168
+ startedAt: z6.string(),
169
+ durationMs: z6.number().nonnegative(),
170
+ request: z6.object({
171
+ method: z6.string(),
172
+ url: z6.string(),
173
+ headers: z6.record(z6.string(), z6.string()).optional(),
174
+ body: slatesRequestTraceTextBody.optional()
175
+ }),
176
+ response: z6.object({
177
+ status: z6.number(),
178
+ statusText: z6.string().optional(),
179
+ headers: z6.record(z6.string(), z6.string()).optional(),
180
+ body: slatesRequestTraceTextBody.optional()
181
+ }).optional(),
182
+ error: z6.object({
183
+ code: z6.string().optional(),
184
+ message: z6.string()
185
+ }).optional()
186
+ });
187
+ var withRequestTraces = (shape) => z6.object({
188
+ ...shape,
189
+ requestTraces: z6.array(slatesRequestTrace).optional()
190
+ });
191
+
192
+ // src/messages/action.ts
193
+ var slatesWebhookHttpResponse = z7.object({
194
+ status: z7.number().int().min(100).max(599),
195
+ headers: z7.record(z7.string(), z7.string()),
196
+ body: z7.object({
197
+ encoding: z7.literal("base64"),
198
+ content: z7.string()
199
+ }).nullable()
200
+ });
201
+ var slatesMessageActionsListRequest = z7.object({
202
+ jsonrpc: z7.literal("2.0"),
203
+ method: z7.literal("slates/actions.list"),
204
+ id: z7.string(),
205
+ params: z7.object({
206
+ includeAdapterActions: z7.optional(z7.nullable(z7.boolean()))
207
+ })
208
+ });
209
+ var slatesMessageActionsListResponse = z7.object({
210
+ jsonrpc: z7.literal("2.0"),
211
+ id: z7.string(),
212
+ result: z7.object({
213
+ actions: z7.array(slatesAction)
214
+ })
215
+ });
216
+ var slatesMessageActionGetRequest = z7.object({
217
+ jsonrpc: z7.literal("2.0"),
218
+ method: z7.literal("slates/action.get"),
219
+ id: z7.string(),
220
+ params: z7.object({
221
+ actionId: z7.string()
222
+ })
223
+ });
224
+ var slatesMessageActionGetResponse = z7.object({
225
+ jsonrpc: z7.literal("2.0"),
226
+ id: z7.string(),
227
+ result: z7.object({
228
+ action: slatesAction
229
+ })
230
+ });
231
+ var slatesMessageActionInvokeRequest = z7.object({
232
+ jsonrpc: z7.literal("2.0"),
233
+ method: z7.literal("slates/action.tool.invoke"),
234
+ id: z7.string(),
235
+ params: z7.object({
236
+ actionId: z7.string(),
237
+ input: z7.record(z7.string(), z7.any())
238
+ })
239
+ });
240
+ var slatesMessageActionInvokeResponse = z7.object({
241
+ jsonrpc: z7.literal("2.0"),
242
+ id: z7.string(),
243
+ result: withRequestTraces({
244
+ output: z7.record(z7.string(), z7.any()),
245
+ message: z7.string().optional(),
246
+ attachments: z7.array(
247
+ z7.object({
248
+ mimeType: z7.string().optional(),
249
+ attachmentHash: z7.string().optional(),
250
+ content: z7.union([
251
+ z7.object({
252
+ type: z7.literal("url"),
253
+ url: z7.string(),
254
+ headers: z7.record(z7.string(), z7.string()).optional(),
255
+ query: z7.record(z7.string(), z7.string()).optional(),
256
+ refreshReference: z7.unknown().optional(),
257
+ refreshAt: z7.string().optional()
258
+ }),
259
+ z7.object({
260
+ type: z7.literal("content"),
261
+ encoding: z7.union([z7.literal("base64"), z7.literal("utf-8")]),
262
+ content: z7.string()
263
+ }),
264
+ z7.object({
265
+ type: z7.literal("upload_reference"),
266
+ referenceId: z7.string()
267
+ })
268
+ ])
269
+ })
270
+ ).optional()
271
+ })
272
+ });
273
+ var slatesMessageActionTriggerEventMapRequest = z7.object({
274
+ jsonrpc: z7.literal("2.0"),
275
+ method: z7.literal("slates/action.trigger.map_event"),
276
+ id: z7.string(),
277
+ params: z7.object({
278
+ actionId: z7.string(),
279
+ input: z7.record(z7.string(), z7.any())
280
+ })
281
+ });
282
+ var slatesMessageActionTriggerEventMapResponse = z7.object({
283
+ jsonrpc: z7.literal("2.0"),
284
+ id: z7.string(),
285
+ result: withRequestTraces({
286
+ type: z7.string(),
287
+ id: z7.string(),
288
+ output: z7.record(z7.string(), z7.any())
289
+ })
290
+ });
291
+ var slatesActionResponsesByMethod = {
292
+ "slates/actions.list": slatesMessageActionsListResponse,
293
+ "slates/action.get": slatesMessageActionGetResponse,
294
+ "slates/action.tool.invoke": slatesMessageActionInvokeResponse,
295
+ "slates/action.trigger.map_event": slatesMessageActionTriggerEventMapResponse
296
+ };
297
+ var slatesActionRequestsByMethod = {
298
+ "slates/actions.list": slatesMessageActionsListRequest,
299
+ "slates/action.get": slatesMessageActionGetRequest,
300
+ "slates/action.tool.invoke": slatesMessageActionInvokeRequest,
301
+ "slates/action.trigger.map_event": slatesMessageActionTriggerEventMapRequest
302
+ };
303
+
304
+ // src/messages/adapter.ts
305
+ import z8 from "zod";
306
+ var slatesMessageAdaptersListRequest = z8.object({
307
+ jsonrpc: z8.literal("2.0"),
308
+ method: z8.literal("slates/adapters.list"),
309
+ id: z8.string(),
310
+ params: z8.object({
311
+ includeAdapters: z8.optional(z8.nullable(z8.boolean()))
312
+ })
313
+ });
314
+ var slatesMessageAdaptersListResponse = z8.object({
315
+ jsonrpc: z8.literal("2.0"),
316
+ id: z8.string(),
317
+ result: z8.object({
318
+ adapters: z8.array(slatesAdapter)
319
+ })
320
+ });
321
+ var slatesMessageAdapterGetRequest = z8.object({
322
+ jsonrpc: z8.literal("2.0"),
323
+ method: z8.literal("slates/adapter.get"),
324
+ id: z8.string(),
325
+ params: z8.object({
326
+ adapterId: z8.string()
327
+ })
328
+ });
329
+ var slatesMessageAdapterGetResponse = z8.object({
330
+ jsonrpc: z8.literal("2.0"),
331
+ id: z8.string(),
332
+ result: z8.object({
333
+ adapter: slatesAdapter
334
+ })
335
+ });
336
+ var slatesAdapterResponsesByMethod = {
337
+ "slates/adapters.list": slatesMessageAdaptersListResponse,
338
+ "slates/adapter.get": slatesMessageAdapterGetResponse
339
+ };
340
+ var slatesAdapterRequestsByMethod = {
341
+ "slates/adapters.list": slatesMessageAdaptersListRequest,
342
+ "slates/adapter.get": slatesMessageAdapterGetRequest
343
+ };
344
+
345
+ // src/messages/auth.ts
346
+ import z9 from "zod";
347
+ var slatesMessageSetAuthNotification = z9.object({
348
+ jsonrpc: z9.literal("2.0"),
349
+ method: z9.literal("slates/auth.set"),
350
+ params: z9.object({
351
+ authenticationMethodId: z9.string(),
352
+ output: z9.record(z9.string(), z9.any())
353
+ })
354
+ });
355
+ var slatesMessageAuthMethodsListRequest = z9.object({
356
+ jsonrpc: z9.literal("2.0"),
357
+ method: z9.literal("slates/auth.methods.list"),
358
+ id: z9.string(),
359
+ params: z9.object({})
360
+ });
361
+ var slatesMessageAuthMethodsListResponse = z9.object({
362
+ jsonrpc: z9.literal("2.0"),
363
+ id: z9.string(),
364
+ result: z9.object({
365
+ authenticationMethods: z9.array(slatesAuthenticationMethod)
366
+ })
367
+ });
368
+ var slatesMessageAuthMethodGetRequest = z9.object({
369
+ jsonrpc: z9.literal("2.0"),
370
+ method: z9.literal("slates/auth.method.get"),
371
+ id: z9.string(),
372
+ params: z9.object({
373
+ authenticationMethodId: z9.string()
374
+ })
375
+ });
376
+ var slatesMessageAuthMethodGetResponse = z9.object({
377
+ jsonrpc: z9.literal("2.0"),
378
+ id: z9.string(),
379
+ result: z9.object({
380
+ authenticationMethod: slatesAuthenticationMethod
381
+ })
382
+ });
383
+ var slatesMessageAuthInputChangedRequest = z9.object({
384
+ jsonrpc: z9.literal("2.0"),
385
+ method: z9.literal("slates/auth.input.changed"),
386
+ id: z9.string(),
387
+ params: z9.object({
388
+ authenticationMethodId: z9.string(),
389
+ previousInput: z9.record(z9.string(), z9.any()).nullable(),
390
+ newInput: z9.record(z9.string(), z9.any())
391
+ })
392
+ });
393
+ var slatesMessageAuthInputChangedResponse = z9.object({
394
+ jsonrpc: z9.literal("2.0"),
395
+ id: z9.string(),
396
+ result: withRequestTraces({
397
+ input: z9.record(z9.string(), z9.any()).optional()
398
+ })
399
+ });
400
+ var slatesMessageAuthDefaultInputGetRequest = z9.object({
401
+ jsonrpc: z9.literal("2.0"),
402
+ method: z9.literal("slates/auth.input.get_default"),
403
+ id: z9.string(),
404
+ params: z9.object({
405
+ authenticationMethodId: z9.string()
406
+ })
407
+ });
408
+ var slatesMessageAuthDefaultInputGetResponse = z9.object({
409
+ jsonrpc: z9.literal("2.0"),
410
+ id: z9.string(),
411
+ result: withRequestTraces({
412
+ input: z9.record(z9.string(), z9.any())
413
+ })
414
+ });
415
+ var slatesMessageAuthAuthorizationUrlGetRequest = z9.object({
416
+ jsonrpc: z9.literal("2.0"),
417
+ method: z9.literal("slates/auth.authorization_url.get"),
418
+ id: z9.string(),
419
+ params: z9.object({
420
+ authenticationMethodId: z9.string(),
421
+ redirectUri: z9.string(),
422
+ state: z9.string(),
423
+ input: z9.record(z9.string(), z9.any()),
424
+ clientId: z9.string(),
425
+ clientSecret: z9.string(),
426
+ scopes: z9.array(z9.string())
427
+ })
428
+ });
429
+ var slatesMessageAuthAuthorizationUrlGetResponse = z9.object({
430
+ jsonrpc: z9.literal("2.0"),
431
+ id: z9.string(),
432
+ result: withRequestTraces({
433
+ authorizationUrl: z9.string(),
434
+ input: z9.record(z9.string(), z9.any()).optional(),
435
+ callbackState: z9.record(z9.string(), z9.any()).optional()
436
+ })
437
+ });
438
+ var slatesMessageAuthAuthorizationCallbackHandleRequest = z9.object({
439
+ jsonrpc: z9.literal("2.0"),
440
+ method: z9.literal("slates/auth.authorization_callback.handle"),
441
+ id: z9.string(),
442
+ params: z9.object({
443
+ authenticationMethodId: z9.string(),
444
+ code: z9.string(),
445
+ state: z9.string(),
446
+ redirectUri: z9.string(),
447
+ input: z9.record(z9.string(), z9.any()),
448
+ clientId: z9.string(),
449
+ clientSecret: z9.string(),
450
+ scopes: z9.array(z9.string()),
451
+ callbackParams: z9.record(z9.string(), z9.string()).optional(),
452
+ callbackState: z9.record(z9.string(), z9.any()).optional()
453
+ })
454
+ });
455
+ var slatesMessageAuthAuthorizationCallbackHandleResponse = z9.object({
456
+ jsonrpc: z9.literal("2.0"),
457
+ id: z9.string(),
458
+ result: withRequestTraces({
459
+ output: z9.record(z9.string(), z9.any()),
460
+ input: z9.record(z9.string(), z9.any()).optional(),
461
+ scopes: z9.array(z9.string()).optional(),
462
+ routingMatchers: z9.array(slatesTriggerRoutingMatcher).optional()
463
+ })
464
+ });
465
+ var slatesMessageAuthTokenRefreshHandleRequest = z9.object({
466
+ jsonrpc: z9.literal("2.0"),
467
+ method: z9.literal("slates/auth.token_refresh.handle"),
468
+ id: z9.string(),
469
+ params: z9.object({
470
+ authenticationMethodId: z9.string(),
471
+ output: z9.record(z9.string(), z9.any()),
472
+ input: z9.record(z9.string(), z9.any()),
473
+ clientId: z9.string(),
474
+ clientSecret: z9.string(),
475
+ scopes: z9.array(z9.string())
476
+ })
477
+ });
478
+ var slatesMessageAuthTokenRefreshHandleResponse = z9.object({
479
+ jsonrpc: z9.literal("2.0"),
480
+ id: z9.string(),
481
+ result: withRequestTraces({
482
+ output: z9.record(z9.string(), z9.any()),
483
+ input: z9.record(z9.string(), z9.any()).optional(),
484
+ routingMatchers: z9.array(slatesTriggerRoutingMatcher).optional()
485
+ })
486
+ });
487
+ var slatesMessageAuthProfileGetRequest = z9.object({
488
+ jsonrpc: z9.literal("2.0"),
489
+ method: z9.literal("slates/auth.profile.get"),
490
+ id: z9.string(),
491
+ params: z9.object({
492
+ authenticationMethodId: z9.string(),
493
+ output: z9.record(z9.string(), z9.any()),
494
+ input: z9.record(z9.string(), z9.any()),
495
+ scopes: z9.array(z9.string())
496
+ })
497
+ });
498
+ var slatesMessageAuthProfileGetResponse = z9.object({
499
+ jsonrpc: z9.literal("2.0"),
500
+ id: z9.string(),
501
+ result: withRequestTraces({
502
+ profile: z9.record(z9.string(), z9.any())
503
+ })
504
+ });
505
+ var slatesMessageAuthOutputGetRequest = z9.object({
506
+ jsonrpc: z9.literal("2.0"),
507
+ method: z9.literal("slates/auth.output.get"),
508
+ id: z9.string(),
509
+ params: z9.object({
510
+ authenticationMethodId: z9.string(),
511
+ input: z9.record(z9.string(), z9.any())
512
+ })
513
+ });
514
+ var slatesMessageAuthOutputGetResponse = z9.object({
515
+ jsonrpc: z9.literal("2.0"),
516
+ id: z9.string(),
517
+ result: withRequestTraces({
518
+ output: z9.record(z9.string(), z9.any()),
519
+ scopes: z9.array(z9.string()).optional()
520
+ })
521
+ });
522
+ var slatesAuthResponsesByMethod = {
523
+ "slates/auth.methods.list": slatesMessageAuthMethodsListResponse,
524
+ "slates/auth.method.get": slatesMessageAuthMethodGetResponse,
525
+ "slates/auth.input.changed": slatesMessageAuthInputChangedResponse,
526
+ "slates/auth.input.get_default": slatesMessageAuthDefaultInputGetResponse,
527
+ "slates/auth.authorization_url.get": slatesMessageAuthAuthorizationUrlGetResponse,
528
+ "slates/auth.authorization_callback.handle": slatesMessageAuthAuthorizationCallbackHandleResponse,
529
+ "slates/auth.token_refresh.handle": slatesMessageAuthTokenRefreshHandleResponse,
530
+ "slates/auth.profile.get": slatesMessageAuthProfileGetResponse,
531
+ "slates/auth.output.get": slatesMessageAuthOutputGetResponse
532
+ };
533
+ var slatesAuthRequestsByMethod = {
534
+ "slates/auth.methods.list": slatesMessageAuthMethodsListRequest,
535
+ "slates/auth.method.get": slatesMessageAuthMethodGetRequest,
536
+ "slates/auth.input.changed": slatesMessageAuthInputChangedRequest,
537
+ "slates/auth.input.get_default": slatesMessageAuthDefaultInputGetRequest,
538
+ "slates/auth.authorization_url.get": slatesMessageAuthAuthorizationUrlGetRequest,
539
+ "slates/auth.authorization_callback.handle": slatesMessageAuthAuthorizationCallbackHandleRequest,
540
+ "slates/auth.token_refresh.handle": slatesMessageAuthTokenRefreshHandleRequest,
541
+ "slates/auth.profile.get": slatesMessageAuthProfileGetRequest,
542
+ "slates/auth.output.get": slatesMessageAuthOutputGetRequest
543
+ };
544
+ var slatesAuthNotificationsByMethod = {
545
+ "slates/auth.set": slatesMessageSetAuthNotification
546
+ };
547
+
548
+ // src/messages/config.ts
549
+ import z10 from "zod";
550
+ var slatesMessageSetConfigNotification = z10.object({
551
+ jsonrpc: z10.literal("2.0"),
552
+ method: z10.literal("slates/config.set"),
553
+ params: z10.object({
554
+ config: z10.record(z10.string(), z10.any())
555
+ })
556
+ });
557
+ var slatesMessageConfigSchemaGetRequest = z10.object({
558
+ jsonrpc: z10.literal("2.0"),
559
+ method: z10.literal("slates/config.schema.get"),
560
+ id: z10.string(),
561
+ params: z10.object({})
562
+ });
563
+ var slatesMessageConfigSchemaGetResponse = z10.object({
564
+ jsonrpc: z10.literal("2.0"),
565
+ id: z10.string(),
566
+ result: z10.object({
567
+ schema: z10.record(z10.string(), z10.any()),
568
+ docs: z10.array(
569
+ z10.object({
570
+ type: z10.literal("docs.config.general").optional(),
571
+ name: z10.string(),
572
+ url: z10.string()
573
+ })
574
+ )
575
+ })
576
+ });
577
+ var slatesMessageConfigChangedRequest = z10.object({
578
+ jsonrpc: z10.literal("2.0"),
579
+ method: z10.literal("slates/config.changed"),
580
+ id: z10.string(),
581
+ params: z10.object({
582
+ previousConfig: z10.record(z10.string(), z10.any()).nullable(),
583
+ newConfig: z10.record(z10.string(), z10.any())
584
+ })
585
+ });
586
+ var slatesMessageConfigChangedResponse = z10.object({
587
+ jsonrpc: z10.literal("2.0"),
588
+ id: z10.string(),
589
+ result: withRequestTraces({
590
+ success: z10.boolean(),
591
+ config: z10.record(z10.string(), z10.any()).optional(),
592
+ errors: z10.array(
593
+ z10.object({
594
+ code: z10.string(),
595
+ message: z10.string(),
596
+ path: z10.array(z10.string()).optional()
597
+ })
598
+ ).optional()
599
+ })
600
+ });
601
+ var slatesMessageConfigDefaultGetRequest = z10.object({
602
+ jsonrpc: z10.literal("2.0"),
603
+ method: z10.literal("slates/config.get_default"),
604
+ id: z10.string(),
605
+ params: z10.object({})
606
+ });
607
+ var slatesMessageConfigDefaultGetResponse = z10.object({
608
+ jsonrpc: z10.literal("2.0"),
609
+ id: z10.string(),
610
+ result: withRequestTraces({
611
+ config: z10.record(z10.string(), z10.any()).nullable()
612
+ })
613
+ });
614
+ var slatesConfigResponsesByMethod = {
615
+ "slates/config.schema.get": slatesMessageConfigSchemaGetResponse,
616
+ "slates/config.get_default": slatesMessageConfigDefaultGetResponse,
617
+ "slates/config.changed": slatesMessageConfigChangedResponse
618
+ };
619
+ var slatesConfigRequestsByMethod = {
620
+ "slates/config.schema.get": slatesMessageConfigSchemaGetRequest,
621
+ "slates/config.get_default": slatesMessageConfigDefaultGetRequest,
622
+ "slates/config.changed": slatesMessageConfigChangedRequest
623
+ };
624
+ var slatesConfigNotificationsByMethod = {
625
+ "slates/config.set": slatesMessageSetConfigNotification
626
+ };
627
+
628
+ // src/messages/controlFlow.ts
629
+ import z11 from "zod";
630
+
631
+ // src/version.ts
632
+ var SLATES_PROTOCOL_VERSION = "slates@2026-01-01";
633
+
634
+ // src/messages/controlFlow.ts
635
+ var slatesMessageHelloNotification = z11.object({
636
+ jsonrpc: z11.literal("2.0"),
637
+ method: z11.literal("slates/hello"),
638
+ params: z11.object({
639
+ protocol: z11.literal(SLATES_PROTOCOL_VERSION)
640
+ })
641
+ });
642
+ var slatesMessageSetParticipantsNotification = z11.object({
643
+ jsonrpc: z11.literal("2.0"),
644
+ method: z11.literal("slates/participant.set"),
645
+ params: z11.object({
646
+ participants: z11.array(slatesParticipant)
647
+ })
648
+ });
649
+ var slatesMessageSessionStartNotification = z11.object({
650
+ jsonrpc: z11.literal("2.0"),
651
+ method: z11.literal("slates/session.start"),
652
+ params: z11.object({
653
+ sessionId: z11.string(),
654
+ state: z11.record(z11.string(), z11.any())
655
+ })
656
+ });
657
+ var slatesControlFlowNotificationsByMethod = {
658
+ "slates/hello": slatesMessageHelloNotification,
659
+ "slates/participant.set": slatesMessageSetParticipantsNotification,
660
+ "slates/session.start": slatesMessageSessionStartNotification
661
+ };
662
+
663
+ // src/messages/hub.ts
664
+ import z12 from "zod";
665
+ var slatesMessageHubCapabilitiesSetNotification = z12.object({
666
+ jsonrpc: z12.literal("2.0"),
667
+ method: z12.literal("slates/hub.capabilities.set"),
668
+ params: z12.object({
669
+ capabilities: z12.object({
670
+ attachments: z12.object({
671
+ directUpload: z12.object({
672
+ enabled: z12.boolean(),
673
+ maxAttachmentSizeBytes: z12.number().optional()
674
+ })
675
+ }).optional(),
676
+ adapters: z12.boolean().optional(),
677
+ triggers: z12.boolean().optional()
678
+ })
679
+ })
680
+ });
681
+ var slatesMessageHubLiveInvocationSetNotification = z12.object({
682
+ jsonrpc: z12.literal("2.0"),
683
+ method: z12.literal("slates/hub.live_invocation.set"),
684
+ params: z12.object({
685
+ token: z12.string(),
686
+ baseUrl: z12.string()
687
+ })
688
+ });
689
+ var slatesHubNotificationsByMethod = {
690
+ "slates/hub.capabilities.set": slatesMessageHubCapabilitiesSetNotification,
691
+ "slates/hub.live_invocation.set": slatesMessageHubLiveInvocationSetNotification
692
+ };
693
+ var slatesMessageProviderCapabilitiesGetRequest = z12.object({
694
+ jsonrpc: z12.literal("2.0"),
695
+ method: z12.literal("slates/provider.capabilities.get"),
696
+ id: z12.string(),
697
+ params: z12.object({})
698
+ });
699
+ var slatesMessageProviderCapabilitiesGetResponse = z12.object({
700
+ jsonrpc: z12.literal("2.0"),
701
+ id: z12.string(),
702
+ result: z12.object({
703
+ capabilities: z12.object({
704
+ hub: z12.object({
705
+ capabilitiesNotification: z12.boolean().optional(),
706
+ liveInvocation: z12.boolean().optional()
707
+ }).optional(),
708
+ provider: z12.object({
709
+ triggerGroups: z12.boolean().optional()
710
+ }).optional()
711
+ })
712
+ })
713
+ });
714
+ var slatesHubRequestsByMethod = {
715
+ "slates/provider.capabilities.get": slatesMessageProviderCapabilitiesGetRequest
716
+ };
717
+ var slatesHubResponsesByMethod = {
718
+ "slates/provider.capabilities.get": slatesMessageProviderCapabilitiesGetResponse
719
+ };
720
+
721
+ // src/messages/identify.ts
722
+ import z13 from "zod";
723
+ var slatesMessageProviderIdentifyRequest = z13.object({
724
+ jsonrpc: z13.literal("2.0"),
725
+ method: z13.literal("slates/provider.identify"),
726
+ id: z13.string(),
727
+ params: z13.object({})
728
+ });
729
+ var slatesMessageProviderIdentifyResponse = z13.object({
730
+ jsonrpc: z13.literal("2.0"),
731
+ id: z13.string(),
732
+ result: z13.object({
733
+ protocol: z13.literal(SLATES_PROTOCOL_VERSION),
734
+ provider: z13.object({
735
+ type: z13.literal("provider"),
736
+ id: z13.string(),
737
+ name: z13.string(),
738
+ description: z13.string().optional(),
739
+ metadata: z13.record(z13.string(), z13.any()).optional()
740
+ }),
741
+ docs: z13.array(
742
+ z13.object({
743
+ name: z13.string(),
744
+ url: z13.string()
745
+ })
746
+ )
747
+ })
748
+ });
749
+ var slatesIdentifyResponsesByMethod = {
750
+ "slates/provider.identify": slatesMessageProviderIdentifyResponse
751
+ };
752
+ var slatesIdentifyRequestsByMethod = {
753
+ "slates/provider.identify": slatesMessageProviderIdentifyRequest
754
+ };
755
+
756
+ // src/messages/legacyTrigger.ts
757
+ import z14 from "zod";
758
+ var slatesMessageActionTriggerEventsPollRequest = z14.object({
759
+ jsonrpc: z14.literal("2.0"),
760
+ method: z14.literal("slates/action.trigger.poll_events"),
761
+ id: z14.string(),
762
+ params: z14.object({
763
+ actionId: z14.string(),
764
+ state: z14.any().nullable()
765
+ })
766
+ });
767
+ var slatesMessageActionTriggerEventsPollResponse = z14.object({
768
+ jsonrpc: z14.literal("2.0"),
769
+ id: z14.string(),
770
+ result: withRequestTraces({
771
+ inputs: z14.array(z14.record(z14.string(), z14.any())),
772
+ updatedState: z14.any().nullable().optional()
773
+ })
774
+ });
775
+ var slatesMessageActionTriggerWebhookHandleRequest = z14.object({
776
+ jsonrpc: z14.literal("2.0"),
777
+ method: z14.literal("slates/action.trigger.webhook_handle"),
778
+ id: z14.string(),
779
+ params: z14.object({
780
+ actionId: z14.string(),
781
+ url: z14.string(),
782
+ method: z14.string(),
783
+ headers: z14.record(z14.string(), z14.string()),
784
+ body: z14.object({
785
+ encoding: z14.literal("base64"),
786
+ content: z14.string()
787
+ }).nullable(),
788
+ state: z14.any().nullable(),
789
+ registrationDetails: z14.any().nullable().optional()
790
+ })
791
+ });
792
+ var slatesMessageActionTriggerWebhookHandleResponse = z14.object({
793
+ jsonrpc: z14.literal("2.0"),
794
+ id: z14.string(),
795
+ result: withRequestTraces({
796
+ inputs: z14.array(z14.record(z14.string(), z14.any())),
797
+ updatedState: z14.any().nullable().optional(),
798
+ response: slatesWebhookHttpResponse.nullable().optional()
799
+ })
800
+ });
801
+ var slatesMessageActionTriggerWebhookRegisterRequest = z14.object({
802
+ jsonrpc: z14.literal("2.0"),
803
+ method: z14.literal("slates/action.trigger.webhook_register"),
804
+ id: z14.string(),
805
+ params: z14.object({
806
+ actionId: z14.string(),
807
+ webhookBaseUrl: z14.string()
808
+ })
809
+ });
810
+ var slatesMessageActionTriggerWebhookRegisterResponse = z14.object({
811
+ jsonrpc: z14.literal("2.0"),
812
+ id: z14.string(),
813
+ result: withRequestTraces({
814
+ registrationDetails: z14.any(),
815
+ state: z14.any().optional()
816
+ })
817
+ });
818
+ var slatesMessageActionTriggerWebhookUnregisterRequest = z14.object({
819
+ jsonrpc: z14.literal("2.0"),
820
+ method: z14.literal("slates/action.trigger.webhook_unregister"),
821
+ id: z14.string(),
822
+ params: z14.object({
823
+ actionId: z14.string(),
824
+ webhookBaseUrl: z14.string(),
825
+ registrationDetails: z14.any(),
826
+ state: z14.any().optional()
827
+ })
828
+ });
829
+ var slatesMessageActionTriggerWebhookUnregisterResponse = z14.object({
830
+ jsonrpc: z14.literal("2.0"),
831
+ id: z14.string(),
832
+ result: withRequestTraces({})
833
+ });
834
+ var slatesLegacyTriggerResponsesByMethod = {
835
+ "slates/action.trigger.poll_events": slatesMessageActionTriggerEventsPollResponse,
836
+ "slates/action.trigger.webhook_handle": slatesMessageActionTriggerWebhookHandleResponse,
837
+ "slates/action.trigger.webhook_register": slatesMessageActionTriggerWebhookRegisterResponse,
838
+ "slates/action.trigger.webhook_unregister": slatesMessageActionTriggerWebhookUnregisterResponse
839
+ };
840
+ var slatesLegacyTriggerRequestsByMethod = {
841
+ "slates/action.trigger.poll_events": slatesMessageActionTriggerEventsPollRequest,
842
+ "slates/action.trigger.webhook_handle": slatesMessageActionTriggerWebhookHandleRequest,
843
+ "slates/action.trigger.webhook_register": slatesMessageActionTriggerWebhookRegisterRequest,
844
+ "slates/action.trigger.webhook_unregister": slatesMessageActionTriggerWebhookUnregisterRequest
845
+ };
846
+
847
+ // src/messages/triggerGroup.ts
848
+ import z15 from "zod";
849
+ var slatesTriggerGroupWebhookEvent = z15.object({
850
+ matchers: z15.array(slatesTriggerRoutingMatcher),
851
+ payload: z15.record(z15.string(), z15.any()),
852
+ idempotencyKey: z15.string().optional(),
853
+ triggerIds: z15.array(z15.string())
854
+ });
855
+ var slatesTriggerGroupPollEvent = z15.object({
856
+ payload: z15.record(z15.string(), z15.any()),
857
+ idempotencyKey: z15.string().optional(),
858
+ triggerIds: z15.array(z15.string())
859
+ });
860
+ var slatesMessageTriggerGroupsListRequest = z15.object({
861
+ jsonrpc: z15.literal("2.0"),
862
+ method: z15.literal("slates/trigger_groups.list"),
863
+ id: z15.string(),
864
+ params: z15.object({})
865
+ });
866
+ var slatesMessageTriggerGroupsListResponse = z15.object({
867
+ jsonrpc: z15.literal("2.0"),
868
+ id: z15.string(),
869
+ result: z15.object({
870
+ triggerGroups: z15.array(slatesTriggerGroup)
871
+ })
872
+ });
873
+ var slatesMessageTriggerGroupGetRequest = z15.object({
874
+ jsonrpc: z15.literal("2.0"),
875
+ method: z15.literal("slates/trigger_group.get"),
876
+ id: z15.string(),
877
+ params: z15.object({
878
+ triggerGroupId: z15.string()
879
+ })
880
+ });
881
+ var slatesMessageTriggerGroupGetResponse = z15.object({
882
+ jsonrpc: z15.literal("2.0"),
883
+ id: z15.string(),
884
+ result: z15.object({
885
+ triggerGroup: slatesTriggerGroup
886
+ })
887
+ });
888
+ var slatesMessageTriggerGroupWebhookTargetsListRequest = z15.object({
889
+ jsonrpc: z15.literal("2.0"),
890
+ method: z15.literal("slates/trigger_group.webhook.targets_list"),
891
+ id: z15.string(),
892
+ params: z15.object({
893
+ triggerGroupId: z15.string(),
894
+ pageToken: z15.any().nullable().optional()
895
+ })
896
+ });
897
+ var slatesMessageTriggerGroupWebhookTargetsListResponse = z15.object({
898
+ jsonrpc: z15.literal("2.0"),
899
+ id: z15.string(),
900
+ result: withRequestTraces({
901
+ targets: z15.array(slatesWebhookTarget),
902
+ nextPageToken: z15.any().nullable()
903
+ })
904
+ });
905
+ var slatesMessageTriggerGroupWebhookRegisterRequest = z15.object({
906
+ jsonrpc: z15.literal("2.0"),
907
+ method: z15.literal("slates/trigger_group.webhook.register"),
908
+ id: z15.string(),
909
+ params: z15.object({
910
+ triggerGroupId: z15.string(),
911
+ webhookTargetIdentifier: z15.string(),
912
+ webhookTargetPayload: z15.any(),
913
+ webhookUrl: z15.string()
914
+ })
915
+ });
916
+ var slatesMessageTriggerGroupWebhookRegisterResponse = z15.object({
917
+ jsonrpc: z15.literal("2.0"),
918
+ id: z15.string(),
919
+ result: withRequestTraces({
920
+ webhookRegistrationIdentifier: z15.string(),
921
+ webhookRegistrationPayload: z15.any()
922
+ })
923
+ });
924
+ var slatesMessageTriggerGroupWebhookUnregisterRequest = z15.object({
925
+ jsonrpc: z15.literal("2.0"),
926
+ method: z15.literal("slates/trigger_group.webhook.unregister"),
927
+ id: z15.string(),
928
+ params: z15.object({
929
+ triggerGroupId: z15.string(),
930
+ webhookRegistrationIdentifier: z15.string(),
931
+ webhookRegistrationPayload: z15.any()
932
+ })
933
+ });
934
+ var slatesMessageTriggerGroupWebhookUnregisterResponse = z15.object({
935
+ jsonrpc: z15.literal("2.0"),
936
+ id: z15.string(),
937
+ result: withRequestTraces({})
938
+ });
939
+ var slatesMessageTriggerGroupWebhookManualSetupRequest = z15.object({
940
+ jsonrpc: z15.literal("2.0"),
941
+ method: z15.literal("slates/trigger_group.webhook.manual_setup"),
942
+ id: z15.string(),
943
+ params: z15.object({
944
+ triggerGroupId: z15.string(),
945
+ webhookUrl: z15.string()
946
+ })
947
+ });
948
+ var slatesMessageTriggerGroupWebhookManualSetupResponse = z15.object({
949
+ jsonrpc: z15.literal("2.0"),
950
+ id: z15.string(),
951
+ result: z15.object({
952
+ webhookSetupDocument: z15.string(),
953
+ partialWebhookRegistrationPayload: z15.any()
954
+ })
955
+ });
956
+ var slatesMessageTriggerGroupWebhookManualFinishRequest = z15.object({
957
+ jsonrpc: z15.literal("2.0"),
958
+ method: z15.literal("slates/trigger_group.webhook.manual_finish"),
959
+ id: z15.string(),
960
+ params: z15.object({
961
+ triggerGroupId: z15.string(),
962
+ webhookUrl: z15.string(),
963
+ partialWebhookRegistrationPayload: z15.any(),
964
+ userWebhookRegistrationPayload: z15.any()
965
+ })
966
+ });
967
+ var slatesMessageTriggerGroupWebhookManualFinishResponse = z15.object({
968
+ jsonrpc: z15.literal("2.0"),
969
+ id: z15.string(),
970
+ result: withRequestTraces({
971
+ webhookRegistrationPayload: z15.any()
972
+ })
973
+ });
974
+ var slatesMessageTriggerGroupWebhookProcessRequest = z15.object({
975
+ jsonrpc: z15.literal("2.0"),
976
+ method: z15.literal("slates/trigger_group.webhook.process"),
977
+ id: z15.string(),
978
+ params: z15.object({
979
+ triggerGroupId: z15.string(),
980
+ url: z15.string(),
981
+ method: z15.string(),
982
+ headers: z15.record(z15.string(), z15.string()),
983
+ body: z15.object({
984
+ encoding: z15.literal("base64"),
985
+ content: z15.string()
986
+ }).nullable(),
987
+ webhookRegistrationPayload: z15.any()
988
+ })
989
+ });
990
+ var slatesMessageTriggerGroupWebhookProcessResponse = z15.object({
991
+ jsonrpc: z15.literal("2.0"),
992
+ id: z15.string(),
993
+ result: withRequestTraces({
994
+ events: z15.array(slatesTriggerGroupWebhookEvent),
995
+ response: slatesWebhookHttpResponse.nullable().optional()
996
+ })
997
+ });
998
+ var slatesMessageTriggerGroupRoutingMatchersGetRequest = z15.object({
999
+ jsonrpc: z15.literal("2.0"),
1000
+ method: z15.literal("slates/trigger_group.routing_matchers.get"),
1001
+ id: z15.string(),
1002
+ params: z15.object({
1003
+ triggerGroupId: z15.string()
1004
+ })
1005
+ });
1006
+ var slatesMessageTriggerGroupRoutingMatchersGetResponse = z15.object({
1007
+ jsonrpc: z15.literal("2.0"),
1008
+ id: z15.string(),
1009
+ result: withRequestTraces({
1010
+ matchers: z15.array(slatesTriggerRoutingMatcher)
1011
+ })
1012
+ });
1013
+ var slatesMessageTriggerGroupPollingPollRequest = z15.object({
1014
+ jsonrpc: z15.literal("2.0"),
1015
+ method: z15.literal("slates/trigger_group.polling.poll"),
1016
+ id: z15.string(),
1017
+ params: z15.object({
1018
+ triggerGroupId: z15.string(),
1019
+ state: z15.any().nullable()
1020
+ })
1021
+ });
1022
+ var slatesMessageTriggerGroupPollingPollResponse = z15.object({
1023
+ jsonrpc: z15.literal("2.0"),
1024
+ id: z15.string(),
1025
+ result: withRequestTraces({
1026
+ updatedState: z15.any().nullable().optional(),
1027
+ events: z15.array(slatesTriggerGroupPollEvent)
1028
+ })
1029
+ });
1030
+ var slatesTriggerGroupResponsesByMethod = {
1031
+ "slates/trigger_groups.list": slatesMessageTriggerGroupsListResponse,
1032
+ "slates/trigger_group.get": slatesMessageTriggerGroupGetResponse,
1033
+ "slates/trigger_group.webhook.targets_list": slatesMessageTriggerGroupWebhookTargetsListResponse,
1034
+ "slates/trigger_group.webhook.register": slatesMessageTriggerGroupWebhookRegisterResponse,
1035
+ "slates/trigger_group.webhook.unregister": slatesMessageTriggerGroupWebhookUnregisterResponse,
1036
+ "slates/trigger_group.webhook.manual_setup": slatesMessageTriggerGroupWebhookManualSetupResponse,
1037
+ "slates/trigger_group.webhook.manual_finish": slatesMessageTriggerGroupWebhookManualFinishResponse,
1038
+ "slates/trigger_group.webhook.process": slatesMessageTriggerGroupWebhookProcessResponse,
1039
+ "slates/trigger_group.routing_matchers.get": slatesMessageTriggerGroupRoutingMatchersGetResponse,
1040
+ "slates/trigger_group.polling.poll": slatesMessageTriggerGroupPollingPollResponse
1041
+ };
1042
+ var slatesTriggerGroupRequestsByMethod = {
1043
+ "slates/trigger_groups.list": slatesMessageTriggerGroupsListRequest,
1044
+ "slates/trigger_group.get": slatesMessageTriggerGroupGetRequest,
1045
+ "slates/trigger_group.webhook.targets_list": slatesMessageTriggerGroupWebhookTargetsListRequest,
1046
+ "slates/trigger_group.webhook.register": slatesMessageTriggerGroupWebhookRegisterRequest,
1047
+ "slates/trigger_group.webhook.unregister": slatesMessageTriggerGroupWebhookUnregisterRequest,
1048
+ "slates/trigger_group.webhook.manual_setup": slatesMessageTriggerGroupWebhookManualSetupRequest,
1049
+ "slates/trigger_group.webhook.manual_finish": slatesMessageTriggerGroupWebhookManualFinishRequest,
1050
+ "slates/trigger_group.webhook.process": slatesMessageTriggerGroupWebhookProcessRequest,
1051
+ "slates/trigger_group.routing_matchers.get": slatesMessageTriggerGroupRoutingMatchersGetRequest,
1052
+ "slates/trigger_group.polling.poll": slatesMessageTriggerGroupPollingPollRequest
1053
+ };
1054
+
1055
+ // src/messages/webhookErrors.ts
1056
+ var SLATES_WEBHOOK_ERROR_CODES = {
1057
+ INVALID_SIGNATURE: "webhook.invalid_signature",
1058
+ INVALID_PAYLOAD: "webhook.invalid_payload",
1059
+ UNSUPPORTED_EVENT: "webhook.unsupported_event",
1060
+ DUPLICATE_DELIVERY: "webhook.duplicate_delivery",
1061
+ UNAUTHORIZED: "webhook.unauthorized"
1062
+ };
1063
+ var SLATES_WEBHOOK_ERROR_DEFAULTS = {
1064
+ [SLATES_WEBHOOK_ERROR_CODES.INVALID_SIGNATURE]: { status: 401, retryable: false },
1065
+ [SLATES_WEBHOOK_ERROR_CODES.INVALID_PAYLOAD]: { status: 400, retryable: false },
1066
+ [SLATES_WEBHOOK_ERROR_CODES.UNSUPPORTED_EVENT]: { status: 400, retryable: false },
1067
+ [SLATES_WEBHOOK_ERROR_CODES.DUPLICATE_DELIVERY]: { status: 200, retryable: false },
1068
+ [SLATES_WEBHOOK_ERROR_CODES.UNAUTHORIZED]: { status: 401, retryable: false }
1069
+ };
1070
+
1071
+ // src/messages/index.ts
1072
+ var slatesResponsesByMethod = {
1073
+ ...slatesActionResponsesByMethod,
1074
+ ...slatesAdapterResponsesByMethod,
1075
+ ...slatesAuthResponsesByMethod,
1076
+ ...slatesConfigResponsesByMethod,
1077
+ ...slatesIdentifyResponsesByMethod,
1078
+ ...slatesLegacyTriggerResponsesByMethod,
1079
+ ...slatesTriggerGroupResponsesByMethod,
1080
+ ...slatesHubResponsesByMethod,
1081
+ ...slatesIdentifyResponsesByMethod
1082
+ };
1083
+ var slatesRequestsByMethod = {
1084
+ ...slatesActionRequestsByMethod,
1085
+ ...slatesAdapterRequestsByMethod,
1086
+ ...slatesAuthRequestsByMethod,
1087
+ ...slatesConfigRequestsByMethod,
1088
+ ...slatesIdentifyRequestsByMethod,
1089
+ ...slatesLegacyTriggerRequestsByMethod,
1090
+ ...slatesTriggerGroupRequestsByMethod,
1091
+ ...slatesHubRequestsByMethod,
1092
+ ...slatesIdentifyRequestsByMethod
1093
+ };
1094
+ var slatesNotificationsByMethod = {
1095
+ ...slatesAuthNotificationsByMethod,
1096
+ ...slatesConfigNotificationsByMethod,
1097
+ ...slatesControlFlowNotificationsByMethod,
1098
+ ...slatesHubNotificationsByMethod
1099
+ };
1100
+
1101
+ // src/handler/provider.ts
1102
+ var SlatesProviderProtoHandlerManager = class {
1103
+ #implMap = /* @__PURE__ */ new Map();
1104
+ onNotification(method, handler) {
1105
+ let schema = slatesNotificationsByMethod[method];
1106
+ if (!schema) {
1107
+ throw new Error(`No schema found for method: ${method}`);
1108
+ }
1109
+ this.#implMap.set(method, {
1110
+ type: "notification",
1111
+ handler,
1112
+ schema
1113
+ });
1114
+ }
1115
+ onRequest(method, cb) {
1116
+ let schema = slatesRequestsByMethod[method];
1117
+ if (!schema) {
1118
+ throw new Error(`No schema found for method: ${method}`);
1119
+ }
1120
+ this.#implMap.set(method, {
1121
+ type: "request",
1122
+ handler: cb,
1123
+ schema
1124
+ });
1125
+ }
1126
+ async _handleInput(input) {
1127
+ try {
1128
+ if (typeof input !== "object" || input === null) {
1129
+ return {
1130
+ jsonrpc: "2.0",
1131
+ id: input.id,
1132
+ error: toSlateErrorResponse(badRequestError({ message: "Invalid input" }))
1133
+ };
1134
+ }
1135
+ if (input.jsonrpc !== "2.0") {
1136
+ return {
1137
+ jsonrpc: "2.0",
1138
+ id: input.id,
1139
+ error: toSlateErrorResponse(badRequestError({ message: "Invalid jsonrpc version" }))
1140
+ };
1141
+ }
1142
+ let method = input.method;
1143
+ if (typeof method !== "string") {
1144
+ return {
1145
+ jsonrpc: "2.0",
1146
+ id: input.id,
1147
+ error: toSlateErrorResponse(
1148
+ badRequestError({ message: "Invalid or missing method" })
1149
+ )
1150
+ };
1151
+ }
1152
+ let impl = this.#implMap.get(input.method);
1153
+ if (!impl) {
1154
+ return {
1155
+ jsonrpc: "2.0",
1156
+ id: input.id,
1157
+ error: toSlateErrorResponse(notFoundError("handler", input.method))
1158
+ };
1159
+ }
1160
+ let parsed = impl.schema.safeParse(input);
1161
+ if (!parsed.success) {
1162
+ return {
1163
+ jsonrpc: "2.0",
1164
+ id: input.id,
1165
+ error: toSlateErrorResponse(
1166
+ validationError({
1167
+ entity: "request",
1168
+ message: "Invalid request parameters",
1169
+ errors: parsed.error.issues.map((i) => ({
1170
+ ...i,
1171
+ path: i.path.map((p) => String(p))
1172
+ }))
1173
+ })
1174
+ )
1175
+ };
1176
+ }
1177
+ if (impl.type === "notification") {
1178
+ await impl.handler(parsed.data);
1179
+ return;
1180
+ }
1181
+ let result = await impl.handler(parsed.data);
1182
+ return {
1183
+ jsonrpc: "2.0",
1184
+ id: parsed.data.id,
1185
+ result
1186
+ };
1187
+ } catch (err) {
1188
+ if (!getSlateErrorResponse(err) && !getServiceErrorData(err)) {
1189
+ console.error(err);
1190
+ }
1191
+ return {
1192
+ jsonrpc: "2.0",
1193
+ id: input.id,
1194
+ error: toSlateErrorResponse(err, {
1195
+ message: "Internal server error"
1196
+ })
1197
+ };
1198
+ }
1199
+ }
1200
+ static async handleInput(manager, input) {
1201
+ return manager._handleInput(input);
1202
+ }
1203
+ };
1204
+ var createSlatesProviderProtoHandler = (cb) => ({
1205
+ run: async () => {
1206
+ let manager = new SlatesProviderProtoHandlerManager();
1207
+ await cb(manager);
1208
+ return manager;
1209
+ }
1210
+ });
1211
+ var toSlateErrorResponse = (error, defaults = {}) => {
1212
+ let slateError = getSlateErrorResponse(error);
1213
+ if (slateError) return slateError;
1214
+ let serviceError = getServiceErrorData(error);
1215
+ if (serviceError) {
1216
+ return mapServiceErrorToSlateErrorResponse(serviceError, defaults);
1217
+ }
1218
+ return mapUnknownErrorToSlateErrorResponse(error, defaults);
1219
+ };
1220
+ var SERVICE_ERROR_CODE_MAP = {
1221
+ invalid_data: "input.invalid",
1222
+ bad_request: "request.bad",
1223
+ not_found: "resource.not_found",
1224
+ unauthorized: "auth.required",
1225
+ forbidden: "permission.denied",
1226
+ invalid_version: "request.invalid_version",
1227
+ conflict: "resource.conflict",
1228
+ gone: "resource.gone",
1229
+ payment_required: "payment.required",
1230
+ precondition_failed: "request.precondition_failed",
1231
+ not_acceptable: "request.not_acceptable",
1232
+ not_implemented: "operation.not_implemented",
1233
+ too_many_requests: "request.rate_limited",
1234
+ timeout: "internal.timeout",
1235
+ internal_server_error: "internal.unexpected"
1236
+ };
1237
+ var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
1238
+ var isStructuredValue = (value) => (typeof value === "object" || typeof value === "function") && value !== null;
1239
+ var isSlateErrorPayload = (value) => isRecord(value) && typeof value.code === "string" && typeof value.message === "string" && typeof value.kind === "string";
1240
+ var isServiceErrorData = (value) => isRecord(value) && typeof value.status === "number" && typeof value.code === "string" && typeof value.message === "string" && !("config" in value) && !("request" in value) && !("response" in value) && !("isAxiosError" in value);
1241
+ var getSlateErrorResponse = (error) => {
1242
+ if (isStructuredValue(error) && "name" in error && typeof error.name === "string" && error.name.startsWith("SlateError") && "toResponse" in error && typeof error.toResponse === "function") {
1243
+ let response = error.toResponse();
1244
+ return isSlateErrorPayload(response) ? response : null;
1245
+ }
1246
+ if (isSlateErrorPayload(error)) return error;
1247
+ if (isStructuredValue(error) && "data" in error && isSlateErrorPayload(error.data)) {
1248
+ return error.data;
1249
+ }
1250
+ return null;
1251
+ };
1252
+ var getServiceErrorData = (error) => {
1253
+ if (isServiceError(error) && isServiceErrorData(error.data)) {
1254
+ return error.data;
1255
+ }
1256
+ if (isServiceErrorData(error)) return error;
1257
+ if (isStructuredValue(error) && "data" in error && isServiceErrorData(error.data)) {
1258
+ return error.data;
1259
+ }
1260
+ if (isStructuredValue(error) && "toResponse" in error && typeof error.toResponse === "function") {
1261
+ let response = error.toResponse();
1262
+ if (isServiceErrorData(response)) return response;
1263
+ }
1264
+ return null;
1265
+ };
1266
+ var mapKind = (code) => {
1267
+ if (code.startsWith("declaration.")) return "declaration";
1268
+ if (code.startsWith("input.")) return "validation";
1269
+ if (code.startsWith("request.")) return "request";
1270
+ if (code.startsWith("config.")) return "config";
1271
+ if (code.startsWith("auth.") || code.startsWith("permission.")) return "auth";
1272
+ if (code.startsWith("resource.")) return "resource";
1273
+ if (code.startsWith("payment.")) return "payment";
1274
+ if (code.startsWith("transport.")) return "transport";
1275
+ if (code.startsWith("upstream.")) return "upstream";
1276
+ return "internal";
1277
+ };
1278
+ var mapRetryable = (code) => code === "request.rate_limited" || code === "upstream.rate_limited" || code === "upstream.timeout" || code === "upstream.network_error" || code === "upstream.unavailable" || code === "upstream.error" || code === "transport.invoke_failed" || code === "internal.timeout";
1279
+ var mapServiceErrorCode = (code, status) => {
1280
+ if (SERVICE_ERROR_CODE_MAP[code]) return SERVICE_ERROR_CODE_MAP[code];
1281
+ if (status === 400) return "request.bad";
1282
+ if (status === 401) return "auth.required";
1283
+ if (status === 402) return "payment.required";
1284
+ if (status === 403) return "permission.denied";
1285
+ if (status === 404) return "resource.not_found";
1286
+ if (status === 406) return "request.not_acceptable";
1287
+ if (status === 409) return "resource.conflict";
1288
+ if (status === 410) return "resource.gone";
1289
+ if (status === 412) return "request.precondition_failed";
1290
+ if (status === 429) return "request.rate_limited";
1291
+ if (status === 501) return "operation.not_implemented";
1292
+ if (status === 504) return "internal.timeout";
1293
+ if (status && status >= 500) return "internal.unexpected";
1294
+ return "internal.unexpected";
1295
+ };
1296
+ var mapIssues = (errors) => {
1297
+ if (!Array.isArray(errors)) return void 0;
1298
+ let issues = errors.map((error) => {
1299
+ if (!isRecord(error)) {
1300
+ return { message: String(error) };
1301
+ }
1302
+ return {
1303
+ ...error,
1304
+ path: Array.isArray(error.path) ? error.path.map((entry) => String(entry)) : void 0,
1305
+ code: typeof error.code === "string" ? error.code : void 0,
1306
+ message: typeof error.message === "string" ? error.message : "Validation issue"
1307
+ };
1308
+ });
1309
+ return issues.length > 0 ? issues : void 0;
1310
+ };
1311
+ var mapServiceErrorToSlateErrorResponse = (error, defaults = {}) => {
1312
+ let code = defaults.code ?? mapServiceErrorCode(error.code, error.status);
1313
+ let extraEntries = Object.entries(error).filter(
1314
+ ([key]) => ![
1315
+ "status",
1316
+ "code",
1317
+ "message",
1318
+ "errors",
1319
+ "hint",
1320
+ "description",
1321
+ "reason",
1322
+ "object",
1323
+ "ok"
1324
+ ].includes(key)
1325
+ );
1326
+ return {
1327
+ code,
1328
+ kind: mapKind(code),
1329
+ message: error.message,
1330
+ retryable: mapRetryable(code),
1331
+ status: error.status,
1332
+ ...mapIssues(error.errors) ? { issues: mapIssues(error.errors) } : {},
1333
+ baggage: {
1334
+ serviceError: {
1335
+ code: error.code,
1336
+ status: error.status,
1337
+ hint: error.hint,
1338
+ description: error.description,
1339
+ reason: error.reason
1340
+ },
1341
+ ...extraEntries.length > 0 ? { serviceErrorData: Object.fromEntries(extraEntries) } : {}
1342
+ }
1343
+ };
1344
+ };
1345
+ var mapUnknownErrorToSlateErrorResponse = (error, defaults = {}) => ({
1346
+ code: defaults.code ?? "internal.unexpected",
1347
+ kind: "internal",
1348
+ message: defaults.message ?? (error instanceof Error ? error.message : "An unexpected internal error occurred."),
1349
+ retryable: false,
1350
+ status: 500,
1351
+ ...error instanceof Error ? {
1352
+ baggage: {
1353
+ originalName: error.name
1354
+ }
1355
+ } : {}
1356
+ });
1357
+ export {
1358
+ SLATES_PROTOCOL_VERSION,
1359
+ SLATES_WEBHOOK_ERROR_CODES,
1360
+ SLATES_WEBHOOK_ERROR_DEFAULTS,
1361
+ SlatesProviderProtoHandlerManager,
1362
+ createSlatesProviderProtoHandler,
1363
+ slatesAction,
1364
+ slatesActionBase,
1365
+ slatesActionRequestsByMethod,
1366
+ slatesActionResponsesByMethod,
1367
+ slatesActionScopeClause,
1368
+ slatesActionScopes,
1369
+ slatesActionTool,
1370
+ slatesActionTrigger,
1371
+ slatesAdapter,
1372
+ slatesAdapterRequestsByMethod,
1373
+ slatesAdapterResponsesByMethod,
1374
+ slatesAuthNotificationsByMethod,
1375
+ slatesAuthRequestsByMethod,
1376
+ slatesAuthResponsesByMethod,
1377
+ slatesAuthenticationMethod,
1378
+ slatesConfigNotificationsByMethod,
1379
+ slatesConfigRequestsByMethod,
1380
+ slatesConfigResponsesByMethod,
1381
+ slatesControlFlowNotificationsByMethod,
1382
+ slatesHubNotificationsByMethod,
1383
+ slatesHubRequestsByMethod,
1384
+ slatesHubResponsesByMethod,
1385
+ slatesIdentifyRequestsByMethod,
1386
+ slatesIdentifyResponsesByMethod,
1387
+ slatesLegacyTriggerRequestsByMethod,
1388
+ slatesLegacyTriggerResponsesByMethod,
1389
+ slatesMessageActionGetRequest,
1390
+ slatesMessageActionGetResponse,
1391
+ slatesMessageActionInvokeRequest,
1392
+ slatesMessageActionInvokeResponse,
1393
+ slatesMessageActionTriggerEventMapRequest,
1394
+ slatesMessageActionTriggerEventMapResponse,
1395
+ slatesMessageActionTriggerEventsPollRequest,
1396
+ slatesMessageActionTriggerEventsPollResponse,
1397
+ slatesMessageActionTriggerWebhookHandleRequest,
1398
+ slatesMessageActionTriggerWebhookHandleResponse,
1399
+ slatesMessageActionTriggerWebhookRegisterRequest,
1400
+ slatesMessageActionTriggerWebhookRegisterResponse,
1401
+ slatesMessageActionTriggerWebhookUnregisterRequest,
1402
+ slatesMessageActionTriggerWebhookUnregisterResponse,
1403
+ slatesMessageActionsListRequest,
1404
+ slatesMessageActionsListResponse,
1405
+ slatesMessageAdapterGetRequest,
1406
+ slatesMessageAdapterGetResponse,
1407
+ slatesMessageAdaptersListRequest,
1408
+ slatesMessageAdaptersListResponse,
1409
+ slatesMessageAuthAuthorizationCallbackHandleRequest,
1410
+ slatesMessageAuthAuthorizationCallbackHandleResponse,
1411
+ slatesMessageAuthAuthorizationUrlGetRequest,
1412
+ slatesMessageAuthAuthorizationUrlGetResponse,
1413
+ slatesMessageAuthDefaultInputGetRequest,
1414
+ slatesMessageAuthDefaultInputGetResponse,
1415
+ slatesMessageAuthInputChangedRequest,
1416
+ slatesMessageAuthInputChangedResponse,
1417
+ slatesMessageAuthMethodGetRequest,
1418
+ slatesMessageAuthMethodGetResponse,
1419
+ slatesMessageAuthMethodsListRequest,
1420
+ slatesMessageAuthMethodsListResponse,
1421
+ slatesMessageAuthOutputGetRequest,
1422
+ slatesMessageAuthOutputGetResponse,
1423
+ slatesMessageAuthProfileGetRequest,
1424
+ slatesMessageAuthProfileGetResponse,
1425
+ slatesMessageAuthTokenRefreshHandleRequest,
1426
+ slatesMessageAuthTokenRefreshHandleResponse,
1427
+ slatesMessageConfigChangedRequest,
1428
+ slatesMessageConfigChangedResponse,
1429
+ slatesMessageConfigDefaultGetRequest,
1430
+ slatesMessageConfigDefaultGetResponse,
1431
+ slatesMessageConfigSchemaGetRequest,
1432
+ slatesMessageConfigSchemaGetResponse,
1433
+ slatesMessageHelloNotification,
1434
+ slatesMessageHubCapabilitiesSetNotification,
1435
+ slatesMessageHubLiveInvocationSetNotification,
1436
+ slatesMessageProviderCapabilitiesGetRequest,
1437
+ slatesMessageProviderCapabilitiesGetResponse,
1438
+ slatesMessageProviderIdentifyRequest,
1439
+ slatesMessageProviderIdentifyResponse,
1440
+ slatesMessageSessionStartNotification,
1441
+ slatesMessageSetAuthNotification,
1442
+ slatesMessageSetConfigNotification,
1443
+ slatesMessageSetParticipantsNotification,
1444
+ slatesMessageTriggerGroupGetRequest,
1445
+ slatesMessageTriggerGroupGetResponse,
1446
+ slatesMessageTriggerGroupPollingPollRequest,
1447
+ slatesMessageTriggerGroupPollingPollResponse,
1448
+ slatesMessageTriggerGroupRoutingMatchersGetRequest,
1449
+ slatesMessageTriggerGroupRoutingMatchersGetResponse,
1450
+ slatesMessageTriggerGroupWebhookManualFinishRequest,
1451
+ slatesMessageTriggerGroupWebhookManualFinishResponse,
1452
+ slatesMessageTriggerGroupWebhookManualSetupRequest,
1453
+ slatesMessageTriggerGroupWebhookManualSetupResponse,
1454
+ slatesMessageTriggerGroupWebhookProcessRequest,
1455
+ slatesMessageTriggerGroupWebhookProcessResponse,
1456
+ slatesMessageTriggerGroupWebhookRegisterRequest,
1457
+ slatesMessageTriggerGroupWebhookRegisterResponse,
1458
+ slatesMessageTriggerGroupWebhookTargetsListRequest,
1459
+ slatesMessageTriggerGroupWebhookTargetsListResponse,
1460
+ slatesMessageTriggerGroupWebhookUnregisterRequest,
1461
+ slatesMessageTriggerGroupWebhookUnregisterResponse,
1462
+ slatesMessageTriggerGroupsListRequest,
1463
+ slatesMessageTriggerGroupsListResponse,
1464
+ slatesNotificationsByMethod,
1465
+ slatesParticipant,
1466
+ slatesRequestTrace,
1467
+ slatesRequestTraceTextBody,
1468
+ slatesRequestsByMethod,
1469
+ slatesResponsesByMethod,
1470
+ slatesTriggerGroup,
1471
+ slatesTriggerGroupInvocation,
1472
+ slatesTriggerGroupRequestsByMethod,
1473
+ slatesTriggerGroupResponsesByMethod,
1474
+ slatesTriggerRoutingMatcher,
1475
+ slatesWebhookHttpResponse,
1476
+ slatesWebhookTarget,
1477
+ slatesWebhookTargetOwnership,
1478
+ withRequestTraces
1479
+ };