@slates/provider-handler 1.0.0-rc.4 → 1.0.0-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var e=require("@lowerdeck/error"),t=require("@slates/proto"),r=require("@slates/provider");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=/*#__PURE__*/n(require("zod"));function i(e,t){if(!{}.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}var a=0;function u(e){return"__private_"+a+++"_"+e}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(null,arguments)}function c(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var l=function(t,r,n,o){var i=t.safeParse(r);if(!i.success)throw new e.ServiceError(function(t,r,n){return e.validationError({message:r,entity:t,errors:n.issues.map(function(e){return s({},e,{path:e.path.map(function(e){return String(e)})})})})}(n,o,i.error));return i.data},p=function(e){return e.toJSONSchema({unrepresentable:"any",override:function(e){var t=e.zodSchema._zod.def;"date"===t.type&&(e.jsonSchema.type="string",e.jsonSchema.format="date-time"),"bigint"===t.type&&(e.jsonSchema.type="number")}})},h=function(t,r){var n=t.spec.auth.authStack.find(function(e){return e.key==r});if(!n)throw new e.ServiceError(e.badRequestError({message:"Invalid authentication method ID: "+r}));return n},d=function(e,t){var r;return{id:t.key,name:t.name,type:t.type,scopes:"scopes"in t?t.scopes.map(function(e){return{id:e.scope,title:e.title,description:e.description}}):void 0,inputSchema:p(null!=(r=t.inputSchema)?r:o.default.object({})),outputSchema:p(e.spec.auth.outputSchema),capabilities:{getDefaultInput:{enabled:!(!("getDefaultInput"in t)||!t.getDefaultInput)},handleTokenRefresh:{enabled:!(!("handleTokenRefresh"in t)||!t.handleTokenRefresh)},handleChangedInput:{enabled:!!t.onInputChanged},getProfile:{enabled:!!t.getProfile}}}},f=function(t,r){var n=t.actions.find(function(e){return e.key==r});if(!n)throw new e.ServiceError(e.notFoundError("action",r));return n},v=function(t,r,n){var o=f(t,n);if(o.type!=r)throw new e.ServiceError(e.badRequestError({message:"Action with ID "+n+" is not of type "+r}));return o},m=function(e,t){var n;return s({},{id:t.key,name:t.name,description:t.description,instructions:t.instructions,constraints:t.constraints,tags:t.tags,metadata:t.metadata,inputSchema:p(t.inputSchema),outputSchema:p(t.outputSchema)},"tool"==t.type?{type:"action.tool",capabilities:{}}:{type:"action.trigger",capabilities:{},invocation:"polling"==t.source?{type:"polling",intervalSeconds:null!=(n=t.polling.intervalInSeconds)?n:r.SlateDefaultPollingIntervalSeconds}:{type:"webhook",autoRegistration:!!t.autoRegisterWebhook,autoUnregistration:!!t.autoUnregisterWebhook}})},g=/*#__PURE__*/u("value"),P=/*#__PURE__*/function(){function e(e){Object.defineProperty(this,g,{writable:!0,value:void 0}),i(this,g)[g]=e}var t,r,n=e.prototype;return n.get=function(){return i(this,g)[g]},n.set=function(e){i(this,g)[g]=e},t=e,(r=[{key:"value",get:function(){return i(this,g)[g]}}])&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,c(n.key),n)}}(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),t}();exports.createProviderHandler=function(n,o){return t.createSlatesProviderProtoHandler(function(t){try{var i=new P(null),a=new P(null),u=new P(null),c=new P(null),g=new P(null),y=new r.SlateLogger(o),w=function(){var t=i.get(),r=a.get();if(!t||!r)throw new e.ServiceError(e.preconditionFailedError({message:"Connection context has not been initialized"}));return{protocol:t,participants:r}},I=function(){var t=w(),r=c.get(),o=g.get(),i=u.get();if(!r||!o||!i&&n.spec.auth.authStack.length>0)throw new e.ServiceError(e.preconditionFailedError({message:"Session context has not been initialized"}));return s({},t,{config:r.value,session:o,auth:i})};return t.onNotification("slates/hello",function(e){var t=e.params;try{return i.set(t.protocol),Promise.resolve()}catch(e){return Promise.reject(e)}}),t.onNotification("slates/participant.set",function(t){var r=t.params;try{if(!i.get())throw new e.ServiceError(e.preconditionFailedError({message:"Connection protocol has not been initialized"}));return a.set(r.participants),Promise.resolve()}catch(e){return Promise.reject(e)}}),t.onNotification("slates/auth.set",function(e){var t=e.params;try{w(),h(n,t.authenticationMethodId);var r=l(n.spec.authSchema,t.output,"auth","Invalid authentication output for method ID: "+t.authenticationMethodId);return u.set({authenticationMethodId:t.authenticationMethodId,output:r}),Promise.resolve()}catch(e){return Promise.reject(e)}}),t.onNotification("slates/config.set",function(e){var t=e.params;try{w();var r=l(n.spec.configSchema,t.config,"config","Invalid configuration");return c.set({value:r}),Promise.resolve()}catch(e){return Promise.reject(e)}}),t.onNotification("slates/session.start",function(e){var t=e.params;try{return w(),g.set({id:t.sessionId,state:t.state}),Promise.resolve()}catch(e){return Promise.reject(e)}}),t.onRequest("slates/config.changed",function(e){var t=e.params;try{w();var r=l(n.spec.config.configSchema,t.newConfig,"config","Invalid configuration"),o=n.spec.config.handlers.configChanged;return o?Promise.resolve(o({previousConfig:t.previousConfig,newConfig:r})).then(function(e){var t;return{success:!0,config:null!=(t=null==e?void 0:e.config)?t:r}}):Promise.resolve({success:!0,config:r})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/config.get_default",function(e){try{w();var t=n.spec.config.handlers.getDefaultConfig;return t?Promise.resolve(t()).then(function(e){return{config:e}}):Promise.resolve({config:null})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/config.schema.get",function(e){try{return w(),Promise.resolve({schema:p(n.spec.configSchema)})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/provider.identify",function(e){try{return w(),Promise.resolve({protocol:"slates@2026-01-01",provider:{type:"provider",id:n.spec.key,name:n.spec.name,description:n.spec.description,metadata:n.spec.parameters.metadata}})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/auth.methods.list",function(e){try{return w(),Promise.resolve({authenticationMethods:n.spec.auth.authStack.map(function(e){return d(n,e)})})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/auth.method.get",function(e){var t=e.params;try{w();var r=h(n,t.authenticationMethodId);return Promise.resolve({authenticationMethod:d(n,r)})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/auth.input.get_default",function(e){var t=e.params;try{w();var r=h(n,t.authenticationMethodId);return r.getDefaultInput?Promise.resolve(r.getDefaultInput()).then(function(e){return{input:e}}):Promise.resolve({input:null})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/auth.input.changed",function(e){var t=e.params;try{w();var r=h(n,t.authenticationMethodId);return r.onInputChanged?Promise.resolve(r.onInputChanged({previousInput:t.previousInput,newInput:t.newInput})).then(function(e){var r;return{success:!0,input:null!=(r=null==e?void 0:e.input)?r:t.newInput}}):Promise.resolve({success:!0,input:t.newInput})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/auth.output.get",function(e){var t=e.params;try{var r,o=function(e){return r?e:{output:a}};w();var i=h(n,t.authenticationMethodId),a=t.input;i.inputSchema&&(a=l(i.inputSchema,a,"auth","Invalid authentication input for method ID: "+t.authenticationMethodId));var u=function(){if("getOutput"in i)return Promise.resolve(i.getOutput({input:a})).then(function(e){return r=1,{output:e.output}})}();return Promise.resolve(u&&u.then?u.then(o):o(u))}catch(e){return Promise.reject(e)}}),t.onRequest("slates/auth.authorization_callback.handle",function(t){var r=t.params;try{var o,i=function(t){if(o)return t;throw new e.ServiceError(e.preconditionFailedError({message:"Authentication method does not support authorization callback handling: "+r.authenticationMethodId}))};w();var a=h(n,r.authenticationMethodId),u=function(){if("handleCallback"in a)return Promise.resolve(a.handleCallback({code:r.code,state:r.state,redirectUri:r.redirectUri,input:r.input,clientId:r.clientId,clientSecret:r.clientSecret,scopes:r.scopes})).then(function(e){return o=1,{output:e.output,input:e.input}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),t.onRequest("slates/auth.authorization_url.get",function(t){var r=t.params;try{var o,i=function(t){if(o)return t;throw new e.ServiceError(e.preconditionFailedError({message:"Authentication method does not support authorization URL retrieval: "+r.authenticationMethodId}))};w();var a=h(n,r.authenticationMethodId),u=function(){if("getAuthorizationUrl"in a)return Promise.resolve(a.getAuthorizationUrl({redirectUri:r.redirectUri,state:r.state,input:r.input,clientId:r.clientId,clientSecret:r.clientSecret,scopes:r.scopes})).then(function(e){return o=1,{authorizationUrl:e.url,input:e.input}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),t.onRequest("slates/auth.profile.get",function(t){var r=t.params;try{var o,i=function(t){if(o)return t;throw new e.ServiceError(e.preconditionFailedError({message:"Authentication method does not support profile retrieval: "+r.authenticationMethodId}))};w();var a=h(n,r.authenticationMethodId),u=function(){if(a.getProfile)return Promise.resolve(a.getProfile({output:r.output,input:r.input,scopes:r.scopes})).then(function(e){return o=1,{profile:e.profile}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),t.onRequest("slates/auth.token_refresh.handle",function(t){var r=t.params;try{var o,i=function(t){if(o)return t;throw new e.ServiceError(e.preconditionFailedError({message:"Authentication method does not support token refresh handling: "+r.authenticationMethodId}))};w();var a=h(n,r.authenticationMethodId),u=function(){if("handleTokenRefresh"in a&&a.handleTokenRefresh)return Promise.resolve(a.handleTokenRefresh({output:r.output,input:r.input,clientId:r.clientId,clientSecret:r.clientSecret,scopes:r.scopes})).then(function(e){return o=1,{output:e.output,input:e.input}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),t.onRequest("slates/actions.list",function(e){try{return w(),Promise.resolve({actions:n.actions.map(function(e){return m(0,e)})})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/action.get",function(e){var t=e.params;try{w();var r=f(n,t.actionId);return Promise.resolve({action:m(0,r)})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/action.tool.invoke",function(e){var t=e.params;try{var o,i=I(),a=v(n,"tool",t.actionId),u=l(a.inputSchema,t.input,"input","Invalid input for tool ID: "+t.actionId);return Promise.resolve(a.handleInvocation(new r.SlateContext(i.config,u,null==(o=i.auth)?void 0:o.output,n.spec,y))).then(function(e){return{output:e.output,message:e.message}})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/action.trigger.map_event",function(e){var t=e.params;try{var o,i=I(),a=v(n,"trigger",t.actionId),u=l(a.inputSchema,t.input,"input","Invalid event for trigger ID: "+t.actionId);return Promise.resolve(a.handleEvent(new r.SlateContext(i.config,u,null==(o=i.auth)?void 0:o.output,n.spec,y))).then(function(e){return{id:e.id,type:e.type,output:e.output}})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/action.trigger.poll_events",function(t){var o=t.params;try{var i,a=I(),u=v(n,"trigger",o.actionId);if(!u.pollEvents)throw new e.ServiceError(e.badRequestError({message:"Trigger action does not support polling: "+o.actionId}));return Promise.resolve(u.pollEvents(new r.SlateContext(a.config,{state:o.state},null==(i=a.auth)?void 0:i.output,n.spec,y))).then(function(e){return{inputs:e.inputs,updatedState:e.updatedState}})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/action.trigger.webhook_handle",function(t){var o=t.params;try{var i,a=I(),u=v(n,"trigger",o.actionId);if(!u.handleRequest)throw new e.ServiceError(e.badRequestError({message:"Trigger action does not support webhook requests: "+o.actionId}));var s=new Request(o.url,{method:o.method,headers:o.headers,body:o.body?Uint8Array.from(atob(o.body.content),function(e){return e.charCodeAt(0)}):null});return Promise.resolve(u.handleRequest(new r.SlateContext(a.config,{request:s,state:o.state},null==(i=a.auth)?void 0:i.output,n.spec,y))).then(function(e){return{inputs:e.inputs,updatedState:e.updatedState}})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/action.trigger.webhook_register",function(t){var o=t.params;try{var i,a=I(),u=v(n,"trigger",o.actionId);if(!u.autoRegisterWebhook)throw new e.ServiceError(e.badRequestError({message:"Trigger action does not support webhook auto-registration: "+o.actionId}));return Promise.resolve(u.autoRegisterWebhook(new r.SlateContext(a.config,{webhookBaseUrl:o.webhookBaseUrl},null==(i=a.auth)?void 0:i.output,n.spec,y))).then(function(e){return{registrationDetails:e.registrationDetails,state:e.state}})}catch(e){return Promise.reject(e)}}),t.onRequest("slates/action.trigger.webhook_unregister",function(t){var o=t.params;try{var i,a=I(),u=v(n,"trigger",o.actionId);if(!u.autoUnregisterWebhook)throw new e.ServiceError(e.badRequestError({message:"Trigger action does not support webhook auto-unregistration: "+o.actionId}));return Promise.resolve(u.autoUnregisterWebhook(new r.SlateContext(a.config,{webhookBaseUrl:o.webhookBaseUrl,registrationDetails:o.registrationDetails,state:o.state},null==(i=a.auth)?void 0:i.output,n.spec,y))).then(function(){return{}})}catch(e){return Promise.reject(e)}}),Promise.resolve()}catch(e){return Promise.reject(e)}})};
1
+ var t=require("@lowerdeck/error"),e=require("@slates/proto"),r=require("@slates/provider");function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var o=/*#__PURE__*/n(require("zod"));function i(t,e){if(!{}.hasOwnProperty.call(t,e))throw new TypeError("attempted to use private field on non-instance");return t}var a=0;function u(t){return"__private_"+a+++"_"+t}function s(){return s=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},s.apply(null,arguments)}function c(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}var l=function(e,r,n,o){var i=e.safeParse(r);if(!i.success)throw new t.ServiceError(function(e,r,n){return t.validationError({message:r,entity:e,errors:n.issues.map(function(t){return s({},t,{path:t.path.map(function(t){return String(t)})})})})}(n,o,i.error));return i.data},h=function(t){return t.toJSONSchema({unrepresentable:"any",override:function(t){var e=t.zodSchema._zod.def;"date"===e.type&&(t.jsonSchema.type="string",t.jsonSchema.format="date-time"),"bigint"===e.type&&(t.jsonSchema.type="number")}})},p=function(e,r){var n=e.spec.auth.authStack.find(function(t){return t.key==r});if(!n)throw new t.ServiceError(t.badRequestError({message:"Invalid authentication method ID: "+r}));return n},d=function(t,e){var r;return{id:e.key,name:e.name,type:e.type,scopes:"scopes"in e?e.scopes.map(function(t){return{id:t.scope,title:t.title,description:t.description}}):void 0,inputSchema:h(null!=(r=e.inputSchema)?r:o.default.object({})),outputSchema:h(t.spec.auth.outputSchema),capabilities:{getDefaultInput:{enabled:!(!("getDefaultInput"in e)||!e.getDefaultInput)},handleTokenRefresh:{enabled:!(!("handleTokenRefresh"in e)||!e.handleTokenRefresh)},handleChangedInput:{enabled:!!e.onInputChanged},getProfile:{enabled:!!e.getProfile}}}},f=function(e,r){var n=e.actions.find(function(t){return t.key==r});if(!n)throw new t.ServiceError(t.notFoundError("action",r));return n},v=function(e,r,n){var o=f(e,n);if(o.type!=r)throw new t.ServiceError(t.badRequestError({message:"Action with ID "+n+" is not of type "+r}));return o},m=function(t,e){var n;return s({},{id:e.key,name:e.name,description:e.description,instructions:e.instructions,constraints:e.constraints,tags:e.tags,metadata:e.metadata,inputSchema:h(e.inputSchema),outputSchema:h(e.outputSchema)},"tool"==e.type?{type:"action.tool",capabilities:{}}:{type:"action.trigger",capabilities:{},invocation:"polling"==e.source?{type:"polling",intervalSeconds:null!=(n=e.polling.intervalInSeconds)?n:r.SlateDefaultPollingIntervalSeconds}:{type:"webhook",autoRegistration:!!e.autoRegisterWebhook,autoUnregistration:!!e.autoUnregisterWebhook}})},g=/*#__PURE__*/u("value"),P=/*#__PURE__*/function(){function t(t){Object.defineProperty(this,g,{writable:!0,value:void 0}),i(this,g)[g]=t}var e,r,n=t.prototype;return n.get=function(){return i(this,g)[g]},n.set=function(t){i(this,g)[g]=t},e=t,(r=[{key:"value",get:function(){return i(this,g)[g]}}])&&function(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,c(n.key),n)}}(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),e}();exports.createProviderHandler=function(n,o){return e.createSlatesProviderProtoHandler(function(e){try{var i=new P(null),a=new P(null),u=new P(null),c=new P(null),g=new P(null),y=new r.SlateLogger(o),w=function(){var e=i.get(),r=a.get();if(!e||!r)throw new t.ServiceError(t.preconditionFailedError({message:"Connection context has not been initialized"}));return{protocol:e,participants:r}},S=function(){var e=w(),r=c.get(),o=g.get(),i=u.get();if(!r||!o||!i&&n.spec.auth.authStack.length>0)throw new t.ServiceError(t.preconditionFailedError({message:"Session context has not been initialized"}));return s({},e,{config:r.value,session:o,auth:i})},I=function(){return new r.SlateContext({},{},{},n.spec,y)};return e.onNotification("slates/hello",function(t){var e=t.params;try{return i.set(e.protocol),Promise.resolve()}catch(t){return Promise.reject(t)}}),e.onNotification("slates/participant.set",function(e){var r=e.params;try{if(!i.get())throw new t.ServiceError(t.preconditionFailedError({message:"Connection protocol has not been initialized"}));return a.set(r.participants),Promise.resolve()}catch(t){return Promise.reject(t)}}),e.onNotification("slates/auth.set",function(t){var e=t.params;try{w(),p(n,e.authenticationMethodId);var r=l(n.spec.authSchema,e.output,"auth","Invalid authentication output for method ID: "+e.authenticationMethodId);return u.set({authenticationMethodId:e.authenticationMethodId,output:r}),Promise.resolve()}catch(t){return Promise.reject(t)}}),e.onNotification("slates/config.set",function(t){var e=t.params;try{w();var r=l(n.spec.configSchema,e.config,"config","Invalid configuration");return c.set({value:r}),Promise.resolve()}catch(t){return Promise.reject(t)}}),e.onNotification("slates/session.start",function(t){var e=t.params;try{return w(),g.set({id:e.sessionId,state:e.state}),Promise.resolve()}catch(t){return Promise.reject(t)}}),e.onRequest("slates/config.changed",function(t){var e=t.params;try{w();var r=l(n.spec.config.configSchema,e.newConfig,"config","Invalid configuration"),o=n.spec.config.handlers.configChanged;return o?Promise.resolve(o({previousConfig:e.previousConfig,newConfig:r})).then(function(t){var e;return{success:!0,config:null!=(e=null==t?void 0:t.config)?e:r}}):Promise.resolve({success:!0,config:r})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/config.get_default",function(t){try{w();var e=n.spec.config.handlers.getDefaultConfig;return e?Promise.resolve(e()).then(function(t){return{config:t}}):Promise.resolve({config:null})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/config.schema.get",function(t){try{return w(),Promise.resolve({schema:h(n.spec.configSchema)})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/provider.identify",function(t){try{return w(),Promise.resolve({protocol:"slates@2026-01-01",provider:{type:"provider",id:n.spec.key,name:n.spec.name,description:n.spec.description,metadata:n.spec.parameters.metadata}})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/auth.methods.list",function(t){try{return w(),Promise.resolve({authenticationMethods:n.spec.auth.authStack.map(function(t){return d(n,t)})})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/auth.method.get",function(t){var e=t.params;try{w();var r=p(n,e.authenticationMethodId);return Promise.resolve({authenticationMethod:d(n,r)})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/auth.input.get_default",function(t){var e=t.params;try{w();var o=p(n,e.authenticationMethodId);return o.getDefaultInput?Promise.resolve(r.runWithContext(I(),function(){return o.getDefaultInput()})).then(function(t){return{input:t}}):Promise.resolve({input:null})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/auth.input.changed",function(t){var e=t.params;try{w();var o=p(n,e.authenticationMethodId);return o.onInputChanged?Promise.resolve(r.runWithContext(I(),function(){return o.onInputChanged({previousInput:e.previousInput,newInput:e.newInput})})).then(function(t){var r;return{success:!0,input:null!=(r=null==t?void 0:t.input)?r:e.newInput}}):Promise.resolve({success:!0,input:e.newInput})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/auth.output.get",function(t){var e=t.params;try{var o,i=function(t){return o?t:{output:u}};w();var a=p(n,e.authenticationMethodId),u=e.input;a.inputSchema&&(u=l(a.inputSchema,u,"auth","Invalid authentication input for method ID: "+e.authenticationMethodId));var s=function(){if("getOutput"in a)return Promise.resolve(r.runWithContext(I(),function(){return a.getOutput({input:u})})).then(function(t){return o=1,{output:t.output}})}();return Promise.resolve(s&&s.then?s.then(i):i(s))}catch(t){return Promise.reject(t)}}),e.onRequest("slates/auth.authorization_callback.handle",function(e){var o=e.params;try{var i,a=function(e){if(i)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support authorization callback handling: "+o.authenticationMethodId}))};w();var u=p(n,o.authenticationMethodId),s=function(){if("handleCallback"in u)return Promise.resolve(r.runWithContext(I(),function(){return u.handleCallback({code:o.code,state:o.state,redirectUri:o.redirectUri,input:o.input,clientId:o.clientId,clientSecret:o.clientSecret,scopes:o.scopes,callbackState:o.callbackState||{}})})).then(function(t){return i=1,{output:t.output,input:t.input}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),e.onRequest("slates/auth.authorization_url.get",function(e){var o=e.params;try{var i,a=function(e){if(i)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support authorization URL retrieval: "+o.authenticationMethodId}))};w();var u=p(n,o.authenticationMethodId),s=function(){if("getAuthorizationUrl"in u)return Promise.resolve(r.runWithContext(I(),function(){return u.getAuthorizationUrl({redirectUri:o.redirectUri,state:o.state,input:o.input,clientId:o.clientId,clientSecret:o.clientSecret,scopes:o.scopes})})).then(function(t){return i=1,{authorizationUrl:t.url,input:t.input,callbackState:t.callbackState}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),e.onRequest("slates/auth.profile.get",function(e){var o=e.params;try{var i,a=function(e){if(i)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support profile retrieval: "+o.authenticationMethodId}))};w();var u=p(n,o.authenticationMethodId),s=function(){if(u.getProfile)return Promise.resolve(r.runWithContext(I(),function(){return u.getProfile({output:o.output,input:o.input,scopes:o.scopes})})).then(function(t){return i=1,{profile:t.profile}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),e.onRequest("slates/auth.token_refresh.handle",function(e){var o=e.params;try{var i,a=function(e){if(i)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support token refresh handling: "+o.authenticationMethodId}))};w();var u=p(n,o.authenticationMethodId),s=function(){if("handleTokenRefresh"in u&&u.handleTokenRefresh)return Promise.resolve(r.runWithContext(I(),function(){return u.handleTokenRefresh({output:o.output,input:o.input,clientId:o.clientId,clientSecret:o.clientSecret,scopes:o.scopes})})).then(function(t){return i=1,{output:t.output,input:t.input}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),e.onRequest("slates/actions.list",function(t){try{return w(),Promise.resolve({actions:n.actions.map(function(t){return m(0,t)})})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/action.get",function(t){var e=t.params;try{w();var r=f(n,e.actionId);return Promise.resolve({action:m(0,r)})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/action.tool.invoke",function(t){var e=t.params;try{var o,i=S(),a=v(n,"tool",e.actionId),u=l(a.inputSchema,e.input,"input","Invalid input for tool ID: "+e.actionId),s=new r.SlateContext(i.config,u,null==(o=i.auth)?void 0:o.output,n.spec,y);return Promise.resolve(r.runWithContext(s,function(){return a.handleInvocation(s)})).then(function(t){return{output:t.output,message:t.message}})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/action.trigger.map_event",function(t){var e=t.params;try{var o,i=S(),a=v(n,"trigger",e.actionId),u=l(a.inputSchema,e.input,"input","Invalid event for trigger ID: "+e.actionId),s=new r.SlateContext(i.config,u,null==(o=i.auth)?void 0:o.output,n.spec,y);return Promise.resolve(r.runWithContext(s,function(){return a.handleEvent(s)})).then(function(t){return{id:t.id,type:t.type,output:t.output}})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/action.trigger.poll_events",function(e){var o=e.params;try{var i,a=S(),u=v(n,"trigger",o.actionId);if(!u.pollEvents)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support polling: "+o.actionId}));var s=new r.SlateContext(a.config,{state:o.state},null==(i=a.auth)?void 0:i.output,n.spec,y);return Promise.resolve(r.runWithContext(s,function(){return u.pollEvents(s)})).then(function(t){return{inputs:t.inputs,updatedState:t.updatedState}})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/action.trigger.webhook_handle",function(e){var o=e.params;try{var i,a=S(),u=v(n,"trigger",o.actionId);if(!u.handleRequest)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support webhook requests: "+o.actionId}));var s=new Request(o.url,{method:o.method,headers:o.headers,body:o.body?Uint8Array.from(atob(o.body.content),function(t){return t.charCodeAt(0)}):null}),c=new r.SlateContext(a.config,{request:s,state:o.state},null==(i=a.auth)?void 0:i.output,n.spec,y);return Promise.resolve(r.runWithContext(c,function(){return u.handleRequest(c)})).then(function(t){return{inputs:t.inputs,updatedState:t.updatedState}})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/action.trigger.webhook_register",function(e){var o=e.params;try{var i,a=S(),u=v(n,"trigger",o.actionId);if(!u.autoRegisterWebhook)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support webhook auto-registration: "+o.actionId}));var s=new r.SlateContext(a.config,{webhookBaseUrl:o.webhookBaseUrl},null==(i=a.auth)?void 0:i.output,n.spec,y);return Promise.resolve(r.runWithContext(s,function(){return u.autoRegisterWebhook(s)})).then(function(t){return{registrationDetails:t.registrationDetails,state:t.state}})}catch(t){return Promise.reject(t)}}),e.onRequest("slates/action.trigger.webhook_unregister",function(e){var o=e.params;try{var i,a=S(),u=v(n,"trigger",o.actionId);if(!u.autoUnregisterWebhook)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support webhook auto-unregistration: "+o.actionId}));var s=new r.SlateContext(a.config,{webhookBaseUrl:o.webhookBaseUrl,registrationDetails:o.registrationDetails,state:o.state},null==(i=a.auth)?void 0:i.output,n.spec,y);return Promise.resolve(r.runWithContext(s,function(){return u.autoUnregisterWebhook(s)})).then(function(){return{}})}catch(t){return Promise.reject(t)}}),Promise.resolve()}catch(t){return Promise.reject(t)}})};
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/validation.ts","../src/spec.ts","../src/state.ts","../src/index.ts"],"sourcesContent":["import { ServiceError, validationError } from '@lowerdeck/error';\nimport z from 'zod';\n\nexport let zodToValidationError = (entity: string, message: string, e: z.ZodError) => {\n return validationError({\n message,\n entity,\n errors: e.issues.map(i => ({\n ...i,\n path: i.path.map(p => String(p))\n }))\n });\n};\n\nexport let validate = <T>(\n schema: z.ZodType<T>,\n data: unknown,\n entity: string,\n message: string\n): T => {\n let result = schema.safeParse(data);\n if (!result.success) {\n throw new ServiceError(zodToValidationError(entity, message, result.error));\n }\n\n return result.data;\n};\n\nexport let toJsonSchema = (schema: z.ZodType<any>) =>\n schema.toJSONSchema({\n unrepresentable: 'any',\n override: ctx => {\n let def = ctx.zodSchema._zod.def;\n\n if (def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n if (def.type === 'bigint') {\n ctx.jsonSchema.type = 'number';\n }\n }\n });\n","import { badRequestError, notFoundError, ServiceError } from '@lowerdeck/error';\nimport { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';\nimport { Slate, SlateDefaultPollingIntervalSeconds } from '@slates/provider';\nimport z from 'zod';\nimport { toJsonSchema } from './validation';\n\nexport let getAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n authenticationMethodId: string\n) => {\n let authMethod = slate.spec.auth.authStack.find(m => m.key == authenticationMethodId);\n if (!authMethod) {\n throw new ServiceError(\n badRequestError({\n message: `Invalid authentication method ID: ${authenticationMethodId}`\n })\n );\n }\n\n return authMethod;\n};\n\nexport let mapAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>\n): SlateAuthenticationMethod => ({\n id: m.key,\n name: m.name,\n type: m.type,\n\n scopes:\n 'scopes' in m\n ? m.scopes.map(s => ({\n id: s.scope,\n title: s.title,\n description: s.description\n }))\n : undefined,\n\n inputSchema: toJsonSchema(m.inputSchema ?? z.object({})),\n outputSchema: toJsonSchema(slate.spec.auth.outputSchema),\n\n capabilities: {\n getDefaultInput: { enabled: !!('getDefaultInput' in m && m.getDefaultInput) },\n handleTokenRefresh: {\n enabled: !!('handleTokenRefresh' in m && m.handleTokenRefresh)\n },\n handleChangedInput: {\n enabled: !!m.onInputChanged\n },\n getProfile: { enabled: !!m.getProfile }\n }\n});\n\nexport let getAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n actionId: string\n) => {\n let action = slate.actions.find(m => m.key == actionId);\n if (!action) {\n throw new ServiceError(notFoundError(`action`, actionId));\n }\n\n return action;\n};\n\nexport let getActionWithType = <\n Type extends 'tool' | 'trigger',\n ConfigType extends {},\n AuthType extends {}\n>(\n slate: Slate<ConfigType, AuthType>,\n type: Type,\n actionId: string\n): ReturnType<typeof getAction<ConfigType, AuthType>> & { type: Type } => {\n let action = getAction(slate, actionId);\n if (action.type != type) {\n throw new ServiceError(\n badRequestError({\n message: `Action with ID ${actionId} is not of type ${type}`\n })\n );\n }\n\n return action as any;\n};\n\nexport let mapAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n a: ReturnType<typeof getAction<ConfigType, AuthType>>\n): SlatesAction => {\n let base = {\n id: a.key,\n name: a.name,\n description: a.description,\n instructions: a.instructions,\n constraints: a.constraints,\n tags: a.tags,\n metadata: a.metadata,\n\n inputSchema: toJsonSchema(a.inputSchema),\n outputSchema: toJsonSchema(a.outputSchema)\n };\n\n if (a.type == 'tool') {\n return {\n ...base,\n type: 'action.tool',\n capabilities: {}\n };\n }\n\n return {\n ...base,\n type: 'action.trigger',\n capabilities: {},\n\n invocation:\n a.source == 'polling'\n ? {\n type: 'polling',\n intervalSeconds: a.polling.intervalInSeconds ?? SlateDefaultPollingIntervalSeconds\n }\n : {\n type: 'webhook',\n autoRegistration: !!a.autoRegisterWebhook,\n autoUnregistration: !!a.autoUnregisterWebhook\n }\n };\n};\n","export class State<T> {\n #value: T;\n\n get value() {\n return this.#value;\n }\n\n get() {\n return this.#value;\n }\n\n set(value: T) {\n this.#value = value;\n }\n\n constructor(initialValue: T) {\n this.#value = initialValue;\n }\n}\n","import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';\nimport { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';\nimport { Slate, SlateContext, SlateLogger, SlateLogListener } from '@slates/provider';\nimport { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';\nimport { State } from './state';\nimport { toJsonSchema, validate } from './validation';\n\nexport let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n listeners: SlateLogListener[]\n) =>\n createSlatesProviderProtoHandler(async manager => {\n let protocol = new State<string | null>(null);\n let participants = new State<SlatesParticipant[] | null>(null);\n\n let auth = new State<{ authenticationMethodId: string; output: AuthType } | null>(null);\n let config = new State<{ value: ConfigType } | null>(null);\n\n let session = new State<{ id: string; state: any } | null>(null);\n\n let logger = new SlateLogger(listeners);\n\n let getContextBasic = () => {\n let currentProtocol = protocol.get();\n let currentParticipants = participants.get();\n\n if (!currentProtocol || !currentParticipants) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Connection context has not been initialized'\n })\n );\n }\n\n return {\n protocol: currentProtocol,\n participants: currentParticipants\n };\n };\n\n let getContextFull = () => {\n let basic = getContextBasic();\n\n let currentConfig = config.get();\n let currentSession = session.get();\n let currentAuth = auth.get();\n\n if (\n !currentConfig ||\n !currentSession ||\n (!currentAuth && slate.spec.auth.authStack.length > 0)\n ) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Session context has not been initialized'\n })\n );\n }\n\n return {\n ...basic,\n config: currentConfig.value,\n session: currentSession,\n auth: currentAuth\n };\n };\n\n manager.onNotification('slates/hello', async ({ params }) => {\n protocol.set(params.protocol);\n });\n\n manager.onNotification('slates/participant.set', async ({ params }) => {\n if (!protocol.get()) {\n throw new ServiceError(\n preconditionFailedError({ message: 'Connection protocol has not been initialized' })\n );\n }\n\n participants.set(params.participants);\n });\n\n manager.onNotification('slates/auth.set', async ({ params }) => {\n getContextBasic();\n getAuthMethod(slate, params.authenticationMethodId); // validate method ID\n\n let valRes = validate(\n slate.spec.authSchema,\n params.output,\n 'auth',\n `Invalid authentication output for method ID: ${params.authenticationMethodId}`\n );\n\n auth.set({\n authenticationMethodId: params.authenticationMethodId,\n output: valRes\n });\n });\n\n manager.onNotification('slates/config.set', async ({ params }) => {\n getContextBasic();\n\n let value = validate(\n slate.spec.configSchema,\n params.config,\n 'config',\n 'Invalid configuration'\n );\n\n config.set({ value });\n });\n\n manager.onNotification('slates/session.start', async ({ params }) => {\n getContextBasic();\n\n session.set({\n id: params.sessionId,\n state: params.state\n });\n });\n\n manager.onRequest('slates/config.changed', async ({ params }) => {\n getContextBasic();\n\n let newConfig = validate(\n slate.spec.config.configSchema,\n params.newConfig,\n 'config',\n 'Invalid configuration'\n );\n\n let configChanged = slate.spec.config.handlers.configChanged;\n if (!configChanged) {\n return { success: true, config: newConfig };\n }\n\n let updatedConfig = await configChanged({\n previousConfig: params.previousConfig as ConfigType | null,\n newConfig\n });\n\n return { success: true, config: updatedConfig?.config ?? newConfig };\n });\n\n manager.onRequest('slates/config.get_default', async ({ params }) => {\n getContextBasic();\n\n let getDefaultConfig = slate.spec.config.handlers.getDefaultConfig;\n if (!getDefaultConfig) {\n return { config: null };\n }\n\n let defaultConfig = await getDefaultConfig();\n return { config: defaultConfig };\n });\n\n manager.onRequest('slates/config.schema.get', async ({ params }) => {\n getContextBasic();\n\n return { schema: toJsonSchema(slate.spec.configSchema) };\n });\n\n manager.onRequest('slates/provider.identify', async ({ params }) => {\n getContextBasic();\n\n return {\n protocol: 'slates@2026-01-01',\n provider: {\n type: 'provider',\n id: slate.spec.key,\n name: slate.spec.name,\n description: slate.spec.description,\n metadata: slate.spec.parameters.metadata\n }\n };\n });\n\n manager.onRequest('slates/auth.methods.list', async ({ params }) => {\n getContextBasic();\n\n return {\n authenticationMethods: slate.spec.auth.authStack.map(m => mapAuthMethod(slate, m))\n };\n });\n\n manager.onRequest('slates/auth.method.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n return {\n authenticationMethod: mapAuthMethod(slate, authMethod)\n };\n });\n\n manager.onRequest('slates/auth.input.get_default', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.getDefaultInput) {\n return { input: null };\n }\n\n return { input: await authMethod.getDefaultInput() };\n });\n\n manager.onRequest('slates/auth.input.changed', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.onInputChanged) {\n return { success: true, input: params.newInput };\n }\n\n let updatedInput = await authMethod.onInputChanged({\n previousInput: params.previousInput as any | null,\n newInput: params.newInput\n });\n\n return { success: true, input: updatedInput?.input ?? params.newInput };\n });\n\n manager.onRequest('slates/auth.output.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n let input = params.input;\n\n if (authMethod.inputSchema) {\n input = validate(\n authMethod.inputSchema,\n input,\n 'auth',\n `Invalid authentication input for method ID: ${params.authenticationMethodId}`\n );\n }\n\n if ('getOutput' in authMethod) {\n let outputRes = await authMethod.getOutput({ input });\n return { output: outputRes.output };\n }\n\n return { output: input as any };\n });\n\n manager.onRequest('slates/auth.authorization_callback.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleCallback' in authMethod) {\n let callbackRes = await authMethod.handleCallback({\n code: params.code,\n state: params.state,\n redirectUri: params.redirectUri,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n output: callbackRes.output,\n input: callbackRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization callback handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.authorization_url.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('getAuthorizationUrl' in authMethod) {\n let urlRes = await authMethod.getAuthorizationUrl({\n redirectUri: params.redirectUri,\n state: params.state,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n authorizationUrl: urlRes.url,\n input: urlRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization URL retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.profile.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (authMethod.getProfile) {\n let profileRes = await authMethod.getProfile({\n output: params.output as any,\n input: params.input,\n scopes: params.scopes\n });\n\n return {\n profile: profileRes.profile\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support profile retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.token_refresh.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {\n let refreshRes = await authMethod.handleTokenRefresh({\n output: params.output as any,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n output: refreshRes.output,\n input: refreshRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support token refresh handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/actions.list', async ({ params }) => {\n getContextBasic();\n\n return {\n actions: slate.actions.map(a => mapAction(slate, a))\n };\n });\n\n manager.onRequest('slates/action.get', async ({ params }) => {\n getContextBasic();\n let action = getAction(slate, params.actionId);\n\n return {\n action: mapAction(slate, action)\n };\n });\n\n manager.onRequest('slates/action.tool.invoke', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'tool', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid input for tool ID: ${params.actionId}`\n );\n\n let res = await action.handleInvocation(\n new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)\n );\n\n return { output: res.output, message: res.message };\n });\n\n manager.onRequest('slates/action.trigger.map_event', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid event for trigger ID: ${params.actionId}`\n );\n\n let res = await action.handleEvent(\n new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)\n );\n\n return { id: res.id, type: res.type, output: res.output };\n });\n\n manager.onRequest('slates/action.trigger.poll_events', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.pollEvents) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support polling: ${params.actionId}`\n })\n );\n }\n\n let res = await action.pollEvents(\n new SlateContext(\n ctx.config,\n { state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_handle', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.handleRequest) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook requests: ${params.actionId}`\n })\n );\n }\n\n let req = new Request(params.url, {\n method: params.method,\n headers: params.headers,\n body: params.body\n ? Uint8Array.from(atob(params.body.content), c => c.charCodeAt(0))\n : null\n });\n\n let res = await action.handleRequest(\n new SlateContext(\n ctx.config,\n { request: req, state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_register', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoRegisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-registration: ${params.actionId}`\n })\n );\n }\n\n let res = await action.autoRegisterWebhook(\n new SlateContext(\n ctx.config,\n { webhookBaseUrl: params.webhookBaseUrl },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { registrationDetails: res.registrationDetails, state: res.state };\n });\n\n manager.onRequest('slates/action.trigger.webhook_unregister', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoUnregisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-unregistration: ${params.actionId}`\n })\n );\n }\n\n await action.autoUnregisterWebhook(\n new SlateContext(\n ctx.config,\n {\n webhookBaseUrl: params.webhookBaseUrl,\n registrationDetails: params.registrationDetails,\n state: params.state\n },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return {};\n });\n });\n"],"names":["validate","schema","data","entity","message","result","safeParse","success","ServiceError","e","validationError","errors","issues","map","i","_extends","path","p","String","zodToValidationError","error","toJsonSchema","toJSONSchema","unrepresentable","override","ctx","def","zodSchema","_zod","type","jsonSchema","format","getAuthMethod","slate","authenticationMethodId","authMethod","spec","auth","authStack","find","m","key","badRequestError","mapAuthMethod","_m$inputSchema","id","name","scopes","s","scope","title","description","undefined","inputSchema","z","object","outputSchema","capabilities","getDefaultInput","enabled","handleTokenRefresh","handleChangedInput","onInputChanged","getProfile","getAction","actionId","action","actions","notFoundError","getActionWithType","mapAction","a","_a$polling$intervalIn","instructions","constraints","tags","metadata","invocation","source","intervalSeconds","polling","intervalInSeconds","SlateDefaultPollingIntervalSeconds","autoRegistration","autoRegisterWebhook","autoUnregistration","autoUnregisterWebhook","State","initialValue","Object","defineProperty","_value","writable","value","_classPrivateFieldLooseBase","_proto","prototype","_createClass","get","this","set","listeners","createSlatesProviderProtoHandler","manager","protocol","participants","config","session","logger","SlateLogger","getContextBasic","currentProtocol","currentParticipants","preconditionFailedError","getContextFull","basic","currentConfig","currentSession","currentAuth","length","onNotification","_ref","params","Promise","resolve","reject","_ref2","_ref3","valRes","authSchema","output","_ref4","configSchema","_ref5","sessionId","state","onRequest","_ref6","newConfig","configChanged","handlers","previousConfig","then","updatedConfig","_updatedConfig$config","_ref7","getDefaultConfig","defaultConfig","_ref8","_ref9","provider","parameters","_ref0","authenticationMethods","_ref1","authenticationMethod","_ref10","_authMethod$getDefaul","input","_ref11","previousInput","newInput","updatedInput","_updatedInput$input","_ref12","_exit","_temp2","_result","_temp","getOutput","outputRes","_output","_ref13","_temp4","_exit2","_result2","_temp3","handleCallback","code","redirectUri","clientId","clientSecret","callbackRes","_output$input","_ref14","_exit3","_temp6","_result3","_temp5","getAuthorizationUrl","urlRes","_authorizationUrl$inp","authorizationUrl","url","_ref15","_temp8","_exit4","_result4","_temp7","profileRes","profile","_ref16","_exit5","_temp0","_result5","_temp9","refreshRes","_ref17","_ref18","_ref19","_ctx$auth","handleInvocation","SlateContext","res","_ref20","_ctx$auth2","handleEvent","_ref21","_ctx$auth3","pollEvents","inputs","updatedState","_ref22","_ctx$auth4","handleRequest","req","Request","method","headers","body","Uint8Array","from","atob","content","c","charCodeAt","request","_ref23","_ctx$auth5","webhookBaseUrl","registrationDetails","_ref24","_ctx$auth6"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/validation.ts","../src/spec.ts","../src/state.ts","../src/index.ts"],"sourcesContent":["import { ServiceError, validationError } from '@lowerdeck/error';\nimport z from 'zod';\n\nexport let zodToValidationError = (entity: string, message: string, e: z.ZodError) => {\n return validationError({\n message,\n entity,\n errors: e.issues.map(i => ({\n ...i,\n path: i.path.map(p => String(p))\n }))\n });\n};\n\nexport let validate = <T>(\n schema: z.ZodType<T>,\n data: unknown,\n entity: string,\n message: string\n): T => {\n let result = schema.safeParse(data);\n if (!result.success) {\n throw new ServiceError(zodToValidationError(entity, message, result.error));\n }\n\n return result.data;\n};\n\nexport let toJsonSchema = (schema: z.ZodType<any>) =>\n schema.toJSONSchema({\n unrepresentable: 'any',\n override: ctx => {\n let def = ctx.zodSchema._zod.def;\n\n if (def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n if (def.type === 'bigint') {\n ctx.jsonSchema.type = 'number';\n }\n }\n });\n","import { badRequestError, notFoundError, ServiceError } from '@lowerdeck/error';\nimport { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';\nimport { Slate, SlateDefaultPollingIntervalSeconds } from '@slates/provider';\nimport z from 'zod';\nimport { toJsonSchema } from './validation';\n\nexport let getAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n authenticationMethodId: string\n) => {\n let authMethod = slate.spec.auth.authStack.find(m => m.key == authenticationMethodId);\n if (!authMethod) {\n throw new ServiceError(\n badRequestError({\n message: `Invalid authentication method ID: ${authenticationMethodId}`\n })\n );\n }\n\n return authMethod;\n};\n\nexport let mapAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>\n): SlateAuthenticationMethod => ({\n id: m.key,\n name: m.name,\n type: m.type,\n\n scopes:\n 'scopes' in m\n ? m.scopes.map(s => ({\n id: s.scope,\n title: s.title,\n description: s.description\n }))\n : undefined,\n\n inputSchema: toJsonSchema(m.inputSchema ?? z.object({})),\n outputSchema: toJsonSchema(slate.spec.auth.outputSchema),\n\n capabilities: {\n getDefaultInput: { enabled: !!('getDefaultInput' in m && m.getDefaultInput) },\n handleTokenRefresh: {\n enabled: !!('handleTokenRefresh' in m && m.handleTokenRefresh)\n },\n handleChangedInput: {\n enabled: !!m.onInputChanged\n },\n getProfile: { enabled: !!m.getProfile }\n }\n});\n\nexport let getAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n actionId: string\n) => {\n let action = slate.actions.find(m => m.key == actionId);\n if (!action) {\n throw new ServiceError(notFoundError(`action`, actionId));\n }\n\n return action;\n};\n\nexport let getActionWithType = <\n Type extends 'tool' | 'trigger',\n ConfigType extends {},\n AuthType extends {}\n>(\n slate: Slate<ConfigType, AuthType>,\n type: Type,\n actionId: string\n): ReturnType<typeof getAction<ConfigType, AuthType>> & { type: Type } => {\n let action = getAction(slate, actionId);\n if (action.type != type) {\n throw new ServiceError(\n badRequestError({\n message: `Action with ID ${actionId} is not of type ${type}`\n })\n );\n }\n\n return action as any;\n};\n\nexport let mapAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n a: ReturnType<typeof getAction<ConfigType, AuthType>>\n): SlatesAction => {\n let base = {\n id: a.key,\n name: a.name,\n description: a.description,\n instructions: a.instructions,\n constraints: a.constraints,\n tags: a.tags,\n metadata: a.metadata,\n\n inputSchema: toJsonSchema(a.inputSchema),\n outputSchema: toJsonSchema(a.outputSchema)\n };\n\n if (a.type == 'tool') {\n return {\n ...base,\n type: 'action.tool',\n capabilities: {}\n };\n }\n\n return {\n ...base,\n type: 'action.trigger',\n capabilities: {},\n\n invocation:\n a.source == 'polling'\n ? {\n type: 'polling',\n intervalSeconds: a.polling.intervalInSeconds ?? SlateDefaultPollingIntervalSeconds\n }\n : {\n type: 'webhook',\n autoRegistration: !!a.autoRegisterWebhook,\n autoUnregistration: !!a.autoUnregisterWebhook\n }\n };\n};\n","export class State<T> {\n #value: T;\n\n get value() {\n return this.#value;\n }\n\n get() {\n return this.#value;\n }\n\n set(value: T) {\n this.#value = value;\n }\n\n constructor(initialValue: T) {\n this.#value = initialValue;\n }\n}\n","import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';\nimport { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';\nimport {\n runWithContext,\n Slate,\n SlateContext,\n SlateLogger,\n SlateLogListener\n} from '@slates/provider';\nimport { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';\nimport { State } from './state';\nimport { toJsonSchema, validate } from './validation';\n\nexport let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n listeners: SlateLogListener[]\n) =>\n createSlatesProviderProtoHandler(async manager => {\n let protocol = new State<string | null>(null);\n let participants = new State<SlatesParticipant[] | null>(null);\n\n let auth = new State<{ authenticationMethodId: string; output: AuthType } | null>(null);\n let config = new State<{ value: ConfigType } | null>(null);\n\n let session = new State<{ id: string; state: any } | null>(null);\n\n let logger = new SlateLogger(listeners);\n\n let getContextBasic = () => {\n let currentProtocol = protocol.get();\n let currentParticipants = participants.get();\n\n if (!currentProtocol || !currentParticipants) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Connection context has not been initialized'\n })\n );\n }\n\n return {\n protocol: currentProtocol,\n participants: currentParticipants\n };\n };\n\n let getContextFull = () => {\n let basic = getContextBasic();\n\n let currentConfig = config.get();\n let currentSession = session.get();\n let currentAuth = auth.get();\n\n if (\n !currentConfig ||\n !currentSession ||\n (!currentAuth && slate.spec.auth.authStack.length > 0)\n ) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Session context has not been initialized'\n })\n );\n }\n\n return {\n ...basic,\n config: currentConfig.value,\n session: currentSession,\n auth: currentAuth\n };\n };\n\n let getEmptyContext = () => new SlateContext({}, {}, {}, slate.spec as any, logger);\n\n manager.onNotification('slates/hello', async ({ params }) => {\n protocol.set(params.protocol);\n });\n\n manager.onNotification('slates/participant.set', async ({ params }) => {\n if (!protocol.get()) {\n throw new ServiceError(\n preconditionFailedError({ message: 'Connection protocol has not been initialized' })\n );\n }\n\n participants.set(params.participants);\n });\n\n manager.onNotification('slates/auth.set', async ({ params }) => {\n getContextBasic();\n getAuthMethod(slate, params.authenticationMethodId); // validate method ID\n\n let valRes = validate(\n slate.spec.authSchema,\n params.output,\n 'auth',\n `Invalid authentication output for method ID: ${params.authenticationMethodId}`\n );\n\n auth.set({\n authenticationMethodId: params.authenticationMethodId,\n output: valRes\n });\n });\n\n manager.onNotification('slates/config.set', async ({ params }) => {\n getContextBasic();\n\n let value = validate(\n slate.spec.configSchema,\n params.config,\n 'config',\n 'Invalid configuration'\n );\n\n config.set({ value });\n });\n\n manager.onNotification('slates/session.start', async ({ params }) => {\n getContextBasic();\n\n session.set({\n id: params.sessionId,\n state: params.state\n });\n });\n\n manager.onRequest('slates/config.changed', async ({ params }) => {\n getContextBasic();\n\n let newConfig = validate(\n slate.spec.config.configSchema,\n params.newConfig,\n 'config',\n 'Invalid configuration'\n );\n\n let configChanged = slate.spec.config.handlers.configChanged;\n if (!configChanged) {\n return { success: true, config: newConfig };\n }\n\n let updatedConfig = await configChanged({\n previousConfig: params.previousConfig as ConfigType | null,\n newConfig\n });\n\n return { success: true, config: updatedConfig?.config ?? newConfig };\n });\n\n manager.onRequest('slates/config.get_default', async ({ params }) => {\n getContextBasic();\n\n let getDefaultConfig = slate.spec.config.handlers.getDefaultConfig;\n if (!getDefaultConfig) {\n return { config: null };\n }\n\n let defaultConfig = await getDefaultConfig();\n return { config: defaultConfig };\n });\n\n manager.onRequest('slates/config.schema.get', async ({ params }) => {\n getContextBasic();\n\n return { schema: toJsonSchema(slate.spec.configSchema) };\n });\n\n manager.onRequest('slates/provider.identify', async ({ params }) => {\n getContextBasic();\n\n return {\n protocol: 'slates@2026-01-01',\n provider: {\n type: 'provider',\n id: slate.spec.key,\n name: slate.spec.name,\n description: slate.spec.description,\n metadata: slate.spec.parameters.metadata\n }\n };\n });\n\n manager.onRequest('slates/auth.methods.list', async ({ params }) => {\n getContextBasic();\n\n return {\n authenticationMethods: slate.spec.auth.authStack.map(m => mapAuthMethod(slate, m))\n };\n });\n\n manager.onRequest('slates/auth.method.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n return {\n authenticationMethod: mapAuthMethod(slate, authMethod)\n };\n });\n\n manager.onRequest('slates/auth.input.get_default', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.getDefaultInput) {\n return { input: null };\n }\n\n return {\n input: await runWithContext(getEmptyContext(), () => authMethod.getDefaultInput!())\n };\n });\n\n manager.onRequest('slates/auth.input.changed', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.onInputChanged) {\n return { success: true, input: params.newInput };\n }\n\n let updatedInput = await runWithContext(getEmptyContext(), () =>\n authMethod.onInputChanged!({\n previousInput: params.previousInput as any | null,\n newInput: params.newInput\n })\n );\n\n return { success: true, input: updatedInput?.input ?? params.newInput };\n });\n\n manager.onRequest('slates/auth.output.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n let input = params.input;\n\n if (authMethod.inputSchema) {\n input = validate(\n authMethod.inputSchema,\n input,\n 'auth',\n `Invalid authentication input for method ID: ${params.authenticationMethodId}`\n );\n }\n\n if ('getOutput' in authMethod) {\n let outputRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getOutput({ input })\n );\n return { output: outputRes.output };\n }\n\n return { output: input as any };\n });\n\n manager.onRequest('slates/auth.authorization_callback.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleCallback' in authMethod) {\n let callbackRes = await runWithContext(getEmptyContext(), () =>\n authMethod.handleCallback({\n code: params.code,\n state: params.state,\n redirectUri: params.redirectUri,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes,\n callbackState: params.callbackState || {}\n })\n );\n\n return {\n output: callbackRes.output,\n input: callbackRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization callback handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.authorization_url.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('getAuthorizationUrl' in authMethod) {\n let urlRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getAuthorizationUrl({\n redirectUri: params.redirectUri,\n state: params.state,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n })\n );\n\n return {\n authorizationUrl: urlRes.url,\n input: urlRes.input,\n callbackState: urlRes.callbackState\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization URL retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.profile.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (authMethod.getProfile) {\n let profileRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getProfile!({\n output: params.output as any,\n input: params.input,\n scopes: params.scopes\n })\n );\n\n return {\n profile: profileRes.profile\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support profile retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.token_refresh.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {\n let refreshRes = await runWithContext(getEmptyContext(), () =>\n authMethod.handleTokenRefresh!({\n output: params.output as any,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n })\n );\n\n return {\n output: refreshRes.output,\n input: refreshRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support token refresh handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/actions.list', async ({ params }) => {\n getContextBasic();\n\n return {\n actions: slate.actions.map(a => mapAction(slate, a))\n };\n });\n\n manager.onRequest('slates/action.get', async ({ params }) => {\n getContextBasic();\n let action = getAction(slate, params.actionId);\n\n return {\n action: mapAction(slate, action)\n };\n });\n\n manager.onRequest('slates/action.tool.invoke', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'tool', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid input for tool ID: ${params.actionId}`\n );\n\n let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);\n let res = await runWithContext(context, () => action.handleInvocation(context));\n\n return { output: res.output, message: res.message };\n });\n\n manager.onRequest('slates/action.trigger.map_event', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid event for trigger ID: ${params.actionId}`\n );\n\n let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);\n let res = await runWithContext(context, () => action.handleEvent(context));\n\n return { id: res.id, type: res.type, output: res.output };\n });\n\n manager.onRequest('slates/action.trigger.poll_events', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.pollEvents) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support polling: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n { state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.pollEvents!(context));\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_handle', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.handleRequest) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook requests: ${params.actionId}`\n })\n );\n }\n\n let req = new Request(params.url, {\n method: params.method,\n headers: params.headers,\n body: params.body\n ? Uint8Array.from(atob(params.body.content), c => c.charCodeAt(0))\n : null\n });\n\n let context = new SlateContext(\n ctx.config,\n { request: req, state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.handleRequest!(context));\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_register', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoRegisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-registration: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n { webhookBaseUrl: params.webhookBaseUrl },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.autoRegisterWebhook!(context));\n\n return { registrationDetails: res.registrationDetails, state: res.state };\n });\n\n manager.onRequest('slates/action.trigger.webhook_unregister', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoUnregisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-unregistration: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n {\n webhookBaseUrl: params.webhookBaseUrl,\n registrationDetails: params.registrationDetails,\n state: params.state\n },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n await runWithContext(context, () => action.autoUnregisterWebhook!(context));\n\n return {};\n });\n });\n"],"names":["validate","schema","data","entity","message","result","safeParse","success","ServiceError","e","validationError","errors","issues","map","i","_extends","path","p","String","zodToValidationError","error","toJsonSchema","toJSONSchema","unrepresentable","override","ctx","def","zodSchema","_zod","type","jsonSchema","format","getAuthMethod","slate","authenticationMethodId","authMethod","spec","auth","authStack","find","m","key","badRequestError","mapAuthMethod","_m$inputSchema","id","name","scopes","s","scope","title","description","undefined","inputSchema","z","object","outputSchema","capabilities","getDefaultInput","enabled","handleTokenRefresh","handleChangedInput","onInputChanged","getProfile","getAction","actionId","action","actions","notFoundError","getActionWithType","mapAction","a","_a$polling$intervalIn","instructions","constraints","tags","metadata","invocation","source","intervalSeconds","polling","intervalInSeconds","SlateDefaultPollingIntervalSeconds","autoRegistration","autoRegisterWebhook","autoUnregistration","autoUnregisterWebhook","State","initialValue","Object","defineProperty","_value","writable","value","_classPrivateFieldLooseBase","_proto","prototype","_createClass","get","this","set","listeners","createSlatesProviderProtoHandler","manager","protocol","participants","config","session","logger","SlateLogger","getContextBasic","currentProtocol","currentParticipants","preconditionFailedError","getContextFull","basic","currentConfig","currentSession","currentAuth","length","getEmptyContext","SlateContext","onNotification","_ref","params","Promise","resolve","reject","_ref2","_ref3","valRes","authSchema","output","_ref4","configSchema","_ref5","sessionId","state","onRequest","_ref6","newConfig","configChanged","handlers","previousConfig","then","updatedConfig","_updatedConfig$config","_ref7","getDefaultConfig","defaultConfig","_ref8","_ref9","provider","parameters","_ref0","authenticationMethods","_ref1","authenticationMethod","_ref10","runWithContext","_runWithContext","input","_ref11","previousInput","newInput","updatedInput","_updatedInput$input","_ref12","_temp2","_exit","_result","_temp","getOutput","outputRes","_ref13","_exit2","_temp4","_result2","_temp3","handleCallback","code","redirectUri","clientId","clientSecret","callbackState","callbackRes","_output$input","_ref14","_temp6","_exit3","_result3","_temp5","getAuthorizationUrl","urlRes","authorizationUrl","url","_ref15","_exit4","_temp8","_result4","_temp7","profileRes","profile","_ref16","_exit5","_temp0","_result5","_temp9","refreshRes","_ref17","_ref18","_ref19","_ctx$auth","context","handleInvocation","res","_ref20","_ctx$auth2","handleEvent","_ref21","_ctx$auth3","pollEvents","inputs","updatedState","_ref22","_ctx$auth4","handleRequest","req","Request","method","headers","body","Uint8Array","from","atob","content","c","charCodeAt","request","_ref23","_ctx$auth5","webhookBaseUrl","registrationDetails","_ref24","_ctx$auth6"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAA6B,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAKtF,eAAO,IAAI,qBAAqB,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAC5E,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EAClC,WAAW,gBAAgB,EAAE;;CAsf3B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,EAGL,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAK1B,eAAO,IAAI,qBAAqB,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAC5E,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EAClC,WAAW,gBAAgB,EAAE;;CAkgB3B,CAAC"}
@@ -1,2 +1,2 @@
1
- import{ServiceError as t,validationError as e,badRequestError as n,notFoundError as r,preconditionFailedError as o}from"@lowerdeck/error";import{createSlatesProviderProtoHandler as i}from"@slates/proto";import{SlateDefaultPollingIntervalSeconds as a,SlateLogger as u,SlateContext as s}from"@slates/provider";import c from"zod";function l(t,e){if(!{}.hasOwnProperty.call(t,e))throw new TypeError("attempted to use private field on non-instance");return t}var h=0;function p(t){return"__private_"+h+++"_"+t}function f(){return f=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},f.apply(null,arguments)}function d(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}var m=function(n,r,o,i){var a=n.safeParse(r);if(!a.success)throw new t(function(t,n,r){return e({message:n,entity:t,errors:r.issues.map(function(t){return f({},t,{path:t.path.map(function(t){return String(t)})})})})}(o,i,a.error));return a.data},v=function(t){return t.toJSONSchema({unrepresentable:"any",override:function(t){var e=t.zodSchema._zod.def;"date"===e.type&&(t.jsonSchema.type="string",t.jsonSchema.format="date-time"),"bigint"===e.type&&(t.jsonSchema.type="number")}})},g=function(e,r){var o=e.spec.auth.authStack.find(function(t){return t.key==r});if(!o)throw new t(n({message:"Invalid authentication method ID: "+r}));return o},P=function(t,e){var n;return{id:e.key,name:e.name,type:e.type,scopes:"scopes"in e?e.scopes.map(function(t){return{id:t.scope,title:t.title,description:t.description}}):void 0,inputSchema:v(null!=(n=e.inputSchema)?n:c.object({})),outputSchema:v(t.spec.auth.outputSchema),capabilities:{getDefaultInput:{enabled:!(!("getDefaultInput"in e)||!e.getDefaultInput)},handleTokenRefresh:{enabled:!(!("handleTokenRefresh"in e)||!e.handleTokenRefresh)},handleChangedInput:{enabled:!!e.onInputChanged},getProfile:{enabled:!!e.getProfile}}}},y=function(e,n){var o=e.actions.find(function(t){return t.key==n});if(!o)throw new t(r("action",n));return o},w=function(e,r,o){var i=y(e,o);if(i.type!=r)throw new t(n({message:"Action with ID "+o+" is not of type "+r}));return i},I=function(t,e){var n;return f({},{id:e.key,name:e.name,description:e.description,instructions:e.instructions,constraints:e.constraints,tags:e.tags,metadata:e.metadata,inputSchema:v(e.inputSchema),outputSchema:v(e.outputSchema)},"tool"==e.type?{type:"action.tool",capabilities:{}}:{type:"action.trigger",capabilities:{},invocation:"polling"==e.source?{type:"polling",intervalSeconds:null!=(n=e.polling.intervalInSeconds)?n:a}:{type:"webhook",autoRegistration:!!e.autoRegisterWebhook,autoUnregistration:!!e.autoUnregisterWebhook}})},b=/*#__PURE__*/p("value"),k=/*#__PURE__*/function(){function t(t){Object.defineProperty(this,b,{writable:!0,value:void 0}),l(this,b)[b]=t}var e,n,r=t.prototype;return r.get=function(){return l(this,b)[b]},r.set=function(t){l(this,b)[b]=t},e=t,(n=[{key:"value",get:function(){return l(this,b)[b]}}])&&function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,d(r.key),r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e}(),S=function(e,r){return i(function(i){try{var a=new k(null),c=new k(null),l=new k(null),h=new k(null),p=new k(null),d=new u(r),b=function(){var e=a.get(),n=c.get();if(!e||!n)throw new t(o({message:"Connection context has not been initialized"}));return{protocol:e,participants:n}},S=function(){var n=b(),r=h.get(),i=p.get(),a=l.get();if(!r||!i||!a&&e.spec.auth.authStack.length>0)throw new t(o({message:"Session context has not been initialized"}));return f({},n,{config:r.value,session:i,auth:a})};return i.onNotification("slates/hello",function(t){var e=t.params;try{return a.set(e.protocol),Promise.resolve()}catch(t){return Promise.reject(t)}}),i.onNotification("slates/participant.set",function(e){var n=e.params;try{if(!a.get())throw new t(o({message:"Connection protocol has not been initialized"}));return c.set(n.participants),Promise.resolve()}catch(t){return Promise.reject(t)}}),i.onNotification("slates/auth.set",function(t){var n=t.params;try{b(),g(e,n.authenticationMethodId);var r=m(e.spec.authSchema,n.output,"auth","Invalid authentication output for method ID: "+n.authenticationMethodId);return l.set({authenticationMethodId:n.authenticationMethodId,output:r}),Promise.resolve()}catch(t){return Promise.reject(t)}}),i.onNotification("slates/config.set",function(t){var n=t.params;try{b();var r=m(e.spec.configSchema,n.config,"config","Invalid configuration");return h.set({value:r}),Promise.resolve()}catch(t){return Promise.reject(t)}}),i.onNotification("slates/session.start",function(t){var e=t.params;try{return b(),p.set({id:e.sessionId,state:e.state}),Promise.resolve()}catch(t){return Promise.reject(t)}}),i.onRequest("slates/config.changed",function(t){var n=t.params;try{b();var r=m(e.spec.config.configSchema,n.newConfig,"config","Invalid configuration"),o=e.spec.config.handlers.configChanged;return o?Promise.resolve(o({previousConfig:n.previousConfig,newConfig:r})).then(function(t){var e;return{success:!0,config:null!=(e=null==t?void 0:t.config)?e:r}}):Promise.resolve({success:!0,config:r})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/config.get_default",function(t){try{b();var n=e.spec.config.handlers.getDefaultConfig;return n?Promise.resolve(n()).then(function(t){return{config:t}}):Promise.resolve({config:null})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/config.schema.get",function(t){try{return b(),Promise.resolve({schema:v(e.spec.configSchema)})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/provider.identify",function(t){try{return b(),Promise.resolve({protocol:"slates@2026-01-01",provider:{type:"provider",id:e.spec.key,name:e.spec.name,description:e.spec.description,metadata:e.spec.parameters.metadata}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.methods.list",function(t){try{return b(),Promise.resolve({authenticationMethods:e.spec.auth.authStack.map(function(t){return P(e,t)})})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.method.get",function(t){var n=t.params;try{b();var r=g(e,n.authenticationMethodId);return Promise.resolve({authenticationMethod:P(e,r)})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.input.get_default",function(t){var n=t.params;try{b();var r=g(e,n.authenticationMethodId);return r.getDefaultInput?Promise.resolve(r.getDefaultInput()).then(function(t){return{input:t}}):Promise.resolve({input:null})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.input.changed",function(t){var n=t.params;try{b();var r=g(e,n.authenticationMethodId);return r.onInputChanged?Promise.resolve(r.onInputChanged({previousInput:n.previousInput,newInput:n.newInput})).then(function(t){var e;return{success:!0,input:null!=(e=null==t?void 0:t.input)?e:n.newInput}}):Promise.resolve({success:!0,input:n.newInput})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.output.get",function(t){var n=t.params;try{var r,o=function(t){return r?t:{output:a}};b();var i=g(e,n.authenticationMethodId),a=n.input;i.inputSchema&&(a=m(i.inputSchema,a,"auth","Invalid authentication input for method ID: "+n.authenticationMethodId));var u=function(){if("getOutput"in i)return Promise.resolve(i.getOutput({input:a})).then(function(t){return r=1,{output:t.output}})}();return Promise.resolve(u&&u.then?u.then(o):o(u))}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.authorization_callback.handle",function(n){var r=n.params;try{var i,a=function(e){if(i)return e;throw new t(o({message:"Authentication method does not support authorization callback handling: "+r.authenticationMethodId}))};b();var u=g(e,r.authenticationMethodId),s=function(){if("handleCallback"in u)return Promise.resolve(u.handleCallback({code:r.code,state:r.state,redirectUri:r.redirectUri,input:r.input,clientId:r.clientId,clientSecret:r.clientSecret,scopes:r.scopes})).then(function(t){return i=1,{output:t.output,input:t.input}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.authorization_url.get",function(n){var r=n.params;try{var i,a=function(e){if(i)return e;throw new t(o({message:"Authentication method does not support authorization URL retrieval: "+r.authenticationMethodId}))};b();var u=g(e,r.authenticationMethodId),s=function(){if("getAuthorizationUrl"in u)return Promise.resolve(u.getAuthorizationUrl({redirectUri:r.redirectUri,state:r.state,input:r.input,clientId:r.clientId,clientSecret:r.clientSecret,scopes:r.scopes})).then(function(t){return i=1,{authorizationUrl:t.url,input:t.input}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.profile.get",function(n){var r=n.params;try{var i,a=function(e){if(i)return e;throw new t(o({message:"Authentication method does not support profile retrieval: "+r.authenticationMethodId}))};b();var u=g(e,r.authenticationMethodId),s=function(){if(u.getProfile)return Promise.resolve(u.getProfile({output:r.output,input:r.input,scopes:r.scopes})).then(function(t){return i=1,{profile:t.profile}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.token_refresh.handle",function(n){var r=n.params;try{var i,a=function(e){if(i)return e;throw new t(o({message:"Authentication method does not support token refresh handling: "+r.authenticationMethodId}))};b();var u=g(e,r.authenticationMethodId),s=function(){if("handleTokenRefresh"in u&&u.handleTokenRefresh)return Promise.resolve(u.handleTokenRefresh({output:r.output,input:r.input,clientId:r.clientId,clientSecret:r.clientSecret,scopes:r.scopes})).then(function(t){return i=1,{output:t.output,input:t.input}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),i.onRequest("slates/actions.list",function(t){try{return b(),Promise.resolve({actions:e.actions.map(function(t){return I(0,t)})})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.get",function(t){var n=t.params;try{b();var r=y(e,n.actionId);return Promise.resolve({action:I(0,r)})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.tool.invoke",function(t){var n=t.params;try{var r,o=S(),i=w(e,"tool",n.actionId),a=m(i.inputSchema,n.input,"input","Invalid input for tool ID: "+n.actionId);return Promise.resolve(i.handleInvocation(new s(o.config,a,null==(r=o.auth)?void 0:r.output,e.spec,d))).then(function(t){return{output:t.output,message:t.message}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.trigger.map_event",function(t){var n=t.params;try{var r,o=S(),i=w(e,"trigger",n.actionId),a=m(i.inputSchema,n.input,"input","Invalid event for trigger ID: "+n.actionId);return Promise.resolve(i.handleEvent(new s(o.config,a,null==(r=o.auth)?void 0:r.output,e.spec,d))).then(function(t){return{id:t.id,type:t.type,output:t.output}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.trigger.poll_events",function(r){var o=r.params;try{var i,a=S(),u=w(e,"trigger",o.actionId);if(!u.pollEvents)throw new t(n({message:"Trigger action does not support polling: "+o.actionId}));return Promise.resolve(u.pollEvents(new s(a.config,{state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,d))).then(function(t){return{inputs:t.inputs,updatedState:t.updatedState}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.trigger.webhook_handle",function(r){var o=r.params;try{var i,a=S(),u=w(e,"trigger",o.actionId);if(!u.handleRequest)throw new t(n({message:"Trigger action does not support webhook requests: "+o.actionId}));var c=new Request(o.url,{method:o.method,headers:o.headers,body:o.body?Uint8Array.from(atob(o.body.content),function(t){return t.charCodeAt(0)}):null});return Promise.resolve(u.handleRequest(new s(a.config,{request:c,state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,d))).then(function(t){return{inputs:t.inputs,updatedState:t.updatedState}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.trigger.webhook_register",function(r){var o=r.params;try{var i,a=S(),u=w(e,"trigger",o.actionId);if(!u.autoRegisterWebhook)throw new t(n({message:"Trigger action does not support webhook auto-registration: "+o.actionId}));return Promise.resolve(u.autoRegisterWebhook(new s(a.config,{webhookBaseUrl:o.webhookBaseUrl},null==(i=a.auth)?void 0:i.output,e.spec,d))).then(function(t){return{registrationDetails:t.registrationDetails,state:t.state}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.trigger.webhook_unregister",function(r){var o=r.params;try{var i,a=S(),u=w(e,"trigger",o.actionId);if(!u.autoUnregisterWebhook)throw new t(n({message:"Trigger action does not support webhook auto-unregistration: "+o.actionId}));return Promise.resolve(u.autoUnregisterWebhook(new s(a.config,{webhookBaseUrl:o.webhookBaseUrl,registrationDetails:o.registrationDetails,state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,d))).then(function(){return{}})}catch(t){return Promise.reject(t)}}),Promise.resolve()}catch(t){return Promise.reject(t)}})};export{S as createProviderHandler};
1
+ import{ServiceError as t,validationError as e,badRequestError as n,notFoundError as r,preconditionFailedError as o}from"@lowerdeck/error";import{createSlatesProviderProtoHandler as i}from"@slates/proto";import{SlateDefaultPollingIntervalSeconds as a,SlateLogger as u,SlateContext as s,runWithContext as c}from"@slates/provider";import l from"zod";function h(t,e){if(!{}.hasOwnProperty.call(t,e))throw new TypeError("attempted to use private field on non-instance");return t}var p=0;function f(t){return"__private_"+p+++"_"+t}function d(){return d=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},d.apply(null,arguments)}function m(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}var v=function(n,r,o,i){var a=n.safeParse(r);if(!a.success)throw new t(function(t,n,r){return e({message:n,entity:t,errors:r.issues.map(function(t){return d({},t,{path:t.path.map(function(t){return String(t)})})})})}(o,i,a.error));return a.data},g=function(t){return t.toJSONSchema({unrepresentable:"any",override:function(t){var e=t.zodSchema._zod.def;"date"===e.type&&(t.jsonSchema.type="string",t.jsonSchema.format="date-time"),"bigint"===e.type&&(t.jsonSchema.type="number")}})},P=function(e,r){var o=e.spec.auth.authStack.find(function(t){return t.key==r});if(!o)throw new t(n({message:"Invalid authentication method ID: "+r}));return o},y=function(t,e){var n;return{id:e.key,name:e.name,type:e.type,scopes:"scopes"in e?e.scopes.map(function(t){return{id:t.scope,title:t.title,description:t.description}}):void 0,inputSchema:g(null!=(n=e.inputSchema)?n:l.object({})),outputSchema:g(t.spec.auth.outputSchema),capabilities:{getDefaultInput:{enabled:!(!("getDefaultInput"in e)||!e.getDefaultInput)},handleTokenRefresh:{enabled:!(!("handleTokenRefresh"in e)||!e.handleTokenRefresh)},handleChangedInput:{enabled:!!e.onInputChanged},getProfile:{enabled:!!e.getProfile}}}},w=function(e,n){var o=e.actions.find(function(t){return t.key==n});if(!o)throw new t(r("action",n));return o},I=function(e,r,o){var i=w(e,o);if(i.type!=r)throw new t(n({message:"Action with ID "+o+" is not of type "+r}));return i},b=function(t,e){var n;return d({},{id:e.key,name:e.name,description:e.description,instructions:e.instructions,constraints:e.constraints,tags:e.tags,metadata:e.metadata,inputSchema:g(e.inputSchema),outputSchema:g(e.outputSchema)},"tool"==e.type?{type:"action.tool",capabilities:{}}:{type:"action.trigger",capabilities:{},invocation:"polling"==e.source?{type:"polling",intervalSeconds:null!=(n=e.polling.intervalInSeconds)?n:a}:{type:"webhook",autoRegistration:!!e.autoRegisterWebhook,autoUnregistration:!!e.autoUnregisterWebhook}})},k=/*#__PURE__*/f("value"),S=/*#__PURE__*/function(){function t(t){Object.defineProperty(this,k,{writable:!0,value:void 0}),h(this,k)[k]=t}var e,n,r=t.prototype;return r.get=function(){return h(this,k)[k]},r.set=function(t){h(this,k)[k]=t},e=t,(n=[{key:"value",get:function(){return h(this,k)[k]}}])&&function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,m(r.key),r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e}(),j=function(e,r){return i(function(i){try{var a=new S(null),l=new S(null),h=new S(null),p=new S(null),f=new S(null),m=new u(r),k=function(){var e=a.get(),n=l.get();if(!e||!n)throw new t(o({message:"Connection context has not been initialized"}));return{protocol:e,participants:n}},j=function(){var n=k(),r=p.get(),i=f.get(),a=h.get();if(!r||!i||!a&&e.spec.auth.authStack.length>0)throw new t(o({message:"Session context has not been initialized"}));return d({},n,{config:r.value,session:i,auth:a})},R=function(){return new s({},{},{},e.spec,m)};return i.onNotification("slates/hello",function(t){var e=t.params;try{return a.set(e.protocol),Promise.resolve()}catch(t){return Promise.reject(t)}}),i.onNotification("slates/participant.set",function(e){var n=e.params;try{if(!a.get())throw new t(o({message:"Connection protocol has not been initialized"}));return l.set(n.participants),Promise.resolve()}catch(t){return Promise.reject(t)}}),i.onNotification("slates/auth.set",function(t){var n=t.params;try{k(),P(e,n.authenticationMethodId);var r=v(e.spec.authSchema,n.output,"auth","Invalid authentication output for method ID: "+n.authenticationMethodId);return h.set({authenticationMethodId:n.authenticationMethodId,output:r}),Promise.resolve()}catch(t){return Promise.reject(t)}}),i.onNotification("slates/config.set",function(t){var n=t.params;try{k();var r=v(e.spec.configSchema,n.config,"config","Invalid configuration");return p.set({value:r}),Promise.resolve()}catch(t){return Promise.reject(t)}}),i.onNotification("slates/session.start",function(t){var e=t.params;try{return k(),f.set({id:e.sessionId,state:e.state}),Promise.resolve()}catch(t){return Promise.reject(t)}}),i.onRequest("slates/config.changed",function(t){var n=t.params;try{k();var r=v(e.spec.config.configSchema,n.newConfig,"config","Invalid configuration"),o=e.spec.config.handlers.configChanged;return o?Promise.resolve(o({previousConfig:n.previousConfig,newConfig:r})).then(function(t){var e;return{success:!0,config:null!=(e=null==t?void 0:t.config)?e:r}}):Promise.resolve({success:!0,config:r})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/config.get_default",function(t){try{k();var n=e.spec.config.handlers.getDefaultConfig;return n?Promise.resolve(n()).then(function(t){return{config:t}}):Promise.resolve({config:null})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/config.schema.get",function(t){try{return k(),Promise.resolve({schema:g(e.spec.configSchema)})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/provider.identify",function(t){try{return k(),Promise.resolve({protocol:"slates@2026-01-01",provider:{type:"provider",id:e.spec.key,name:e.spec.name,description:e.spec.description,metadata:e.spec.parameters.metadata}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.methods.list",function(t){try{return k(),Promise.resolve({authenticationMethods:e.spec.auth.authStack.map(function(t){return y(e,t)})})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.method.get",function(t){var n=t.params;try{k();var r=P(e,n.authenticationMethodId);return Promise.resolve({authenticationMethod:y(e,r)})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.input.get_default",function(t){var n=t.params;try{k();var r=P(e,n.authenticationMethodId);return r.getDefaultInput?Promise.resolve(c(R(),function(){return r.getDefaultInput()})).then(function(t){return{input:t}}):Promise.resolve({input:null})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.input.changed",function(t){var n=t.params;try{k();var r=P(e,n.authenticationMethodId);return r.onInputChanged?Promise.resolve(c(R(),function(){return r.onInputChanged({previousInput:n.previousInput,newInput:n.newInput})})).then(function(t){var e;return{success:!0,input:null!=(e=null==t?void 0:t.input)?e:n.newInput}}):Promise.resolve({success:!0,input:n.newInput})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.output.get",function(t){var n=t.params;try{var r,o=function(t){return r?t:{output:a}};k();var i=P(e,n.authenticationMethodId),a=n.input;i.inputSchema&&(a=v(i.inputSchema,a,"auth","Invalid authentication input for method ID: "+n.authenticationMethodId));var u=function(){if("getOutput"in i)return Promise.resolve(c(R(),function(){return i.getOutput({input:a})})).then(function(t){return r=1,{output:t.output}})}();return Promise.resolve(u&&u.then?u.then(o):o(u))}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.authorization_callback.handle",function(n){var r=n.params;try{var i,a=function(e){if(i)return e;throw new t(o({message:"Authentication method does not support authorization callback handling: "+r.authenticationMethodId}))};k();var u=P(e,r.authenticationMethodId),s=function(){if("handleCallback"in u)return Promise.resolve(c(R(),function(){return u.handleCallback({code:r.code,state:r.state,redirectUri:r.redirectUri,input:r.input,clientId:r.clientId,clientSecret:r.clientSecret,scopes:r.scopes,callbackState:r.callbackState||{}})})).then(function(t){return i=1,{output:t.output,input:t.input}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.authorization_url.get",function(n){var r=n.params;try{var i,a=function(e){if(i)return e;throw new t(o({message:"Authentication method does not support authorization URL retrieval: "+r.authenticationMethodId}))};k();var u=P(e,r.authenticationMethodId),s=function(){if("getAuthorizationUrl"in u)return Promise.resolve(c(R(),function(){return u.getAuthorizationUrl({redirectUri:r.redirectUri,state:r.state,input:r.input,clientId:r.clientId,clientSecret:r.clientSecret,scopes:r.scopes})})).then(function(t){return i=1,{authorizationUrl:t.url,input:t.input,callbackState:t.callbackState}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.profile.get",function(n){var r=n.params;try{var i,a=function(e){if(i)return e;throw new t(o({message:"Authentication method does not support profile retrieval: "+r.authenticationMethodId}))};k();var u=P(e,r.authenticationMethodId),s=function(){if(u.getProfile)return Promise.resolve(c(R(),function(){return u.getProfile({output:r.output,input:r.input,scopes:r.scopes})})).then(function(t){return i=1,{profile:t.profile}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),i.onRequest("slates/auth.token_refresh.handle",function(n){var r=n.params;try{var i,a=function(e){if(i)return e;throw new t(o({message:"Authentication method does not support token refresh handling: "+r.authenticationMethodId}))};k();var u=P(e,r.authenticationMethodId),s=function(){if("handleTokenRefresh"in u&&u.handleTokenRefresh)return Promise.resolve(c(R(),function(){return u.handleTokenRefresh({output:r.output,input:r.input,clientId:r.clientId,clientSecret:r.clientSecret,scopes:r.scopes})})).then(function(t){return i=1,{output:t.output,input:t.input}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),i.onRequest("slates/actions.list",function(t){try{return k(),Promise.resolve({actions:e.actions.map(function(t){return b(0,t)})})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.get",function(t){var n=t.params;try{k();var r=w(e,n.actionId);return Promise.resolve({action:b(0,r)})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.tool.invoke",function(t){var n=t.params;try{var r,o=j(),i=I(e,"tool",n.actionId),a=v(i.inputSchema,n.input,"input","Invalid input for tool ID: "+n.actionId),u=new s(o.config,a,null==(r=o.auth)?void 0:r.output,e.spec,m);return Promise.resolve(c(u,function(){return i.handleInvocation(u)})).then(function(t){return{output:t.output,message:t.message}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.trigger.map_event",function(t){var n=t.params;try{var r,o=j(),i=I(e,"trigger",n.actionId),a=v(i.inputSchema,n.input,"input","Invalid event for trigger ID: "+n.actionId),u=new s(o.config,a,null==(r=o.auth)?void 0:r.output,e.spec,m);return Promise.resolve(c(u,function(){return i.handleEvent(u)})).then(function(t){return{id:t.id,type:t.type,output:t.output}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.trigger.poll_events",function(r){var o=r.params;try{var i,a=j(),u=I(e,"trigger",o.actionId);if(!u.pollEvents)throw new t(n({message:"Trigger action does not support polling: "+o.actionId}));var l=new s(a.config,{state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,m);return Promise.resolve(c(l,function(){return u.pollEvents(l)})).then(function(t){return{inputs:t.inputs,updatedState:t.updatedState}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.trigger.webhook_handle",function(r){var o=r.params;try{var i,a=j(),u=I(e,"trigger",o.actionId);if(!u.handleRequest)throw new t(n({message:"Trigger action does not support webhook requests: "+o.actionId}));var l=new Request(o.url,{method:o.method,headers:o.headers,body:o.body?Uint8Array.from(atob(o.body.content),function(t){return t.charCodeAt(0)}):null}),h=new s(a.config,{request:l,state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,m);return Promise.resolve(c(h,function(){return u.handleRequest(h)})).then(function(t){return{inputs:t.inputs,updatedState:t.updatedState}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.trigger.webhook_register",function(r){var o=r.params;try{var i,a=j(),u=I(e,"trigger",o.actionId);if(!u.autoRegisterWebhook)throw new t(n({message:"Trigger action does not support webhook auto-registration: "+o.actionId}));var l=new s(a.config,{webhookBaseUrl:o.webhookBaseUrl},null==(i=a.auth)?void 0:i.output,e.spec,m);return Promise.resolve(c(l,function(){return u.autoRegisterWebhook(l)})).then(function(t){return{registrationDetails:t.registrationDetails,state:t.state}})}catch(t){return Promise.reject(t)}}),i.onRequest("slates/action.trigger.webhook_unregister",function(r){var o=r.params;try{var i,a=j(),u=I(e,"trigger",o.actionId);if(!u.autoUnregisterWebhook)throw new t(n({message:"Trigger action does not support webhook auto-unregistration: "+o.actionId}));var l=new s(a.config,{webhookBaseUrl:o.webhookBaseUrl,registrationDetails:o.registrationDetails,state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,m);return Promise.resolve(c(l,function(){return u.autoUnregisterWebhook(l)})).then(function(){return{}})}catch(t){return Promise.reject(t)}}),Promise.resolve()}catch(t){return Promise.reject(t)}})};export{j as createProviderHandler};
2
2
  //# sourceMappingURL=index.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.js","sources":["../src/validation.ts","../src/spec.ts","../src/state.ts","../src/index.ts"],"sourcesContent":["import { ServiceError, validationError } from '@lowerdeck/error';\nimport z from 'zod';\n\nexport let zodToValidationError = (entity: string, message: string, e: z.ZodError) => {\n return validationError({\n message,\n entity,\n errors: e.issues.map(i => ({\n ...i,\n path: i.path.map(p => String(p))\n }))\n });\n};\n\nexport let validate = <T>(\n schema: z.ZodType<T>,\n data: unknown,\n entity: string,\n message: string\n): T => {\n let result = schema.safeParse(data);\n if (!result.success) {\n throw new ServiceError(zodToValidationError(entity, message, result.error));\n }\n\n return result.data;\n};\n\nexport let toJsonSchema = (schema: z.ZodType<any>) =>\n schema.toJSONSchema({\n unrepresentable: 'any',\n override: ctx => {\n let def = ctx.zodSchema._zod.def;\n\n if (def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n if (def.type === 'bigint') {\n ctx.jsonSchema.type = 'number';\n }\n }\n });\n","import { badRequestError, notFoundError, ServiceError } from '@lowerdeck/error';\nimport { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';\nimport { Slate, SlateDefaultPollingIntervalSeconds } from '@slates/provider';\nimport z from 'zod';\nimport { toJsonSchema } from './validation';\n\nexport let getAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n authenticationMethodId: string\n) => {\n let authMethod = slate.spec.auth.authStack.find(m => m.key == authenticationMethodId);\n if (!authMethod) {\n throw new ServiceError(\n badRequestError({\n message: `Invalid authentication method ID: ${authenticationMethodId}`\n })\n );\n }\n\n return authMethod;\n};\n\nexport let mapAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>\n): SlateAuthenticationMethod => ({\n id: m.key,\n name: m.name,\n type: m.type,\n\n scopes:\n 'scopes' in m\n ? m.scopes.map(s => ({\n id: s.scope,\n title: s.title,\n description: s.description\n }))\n : undefined,\n\n inputSchema: toJsonSchema(m.inputSchema ?? z.object({})),\n outputSchema: toJsonSchema(slate.spec.auth.outputSchema),\n\n capabilities: {\n getDefaultInput: { enabled: !!('getDefaultInput' in m && m.getDefaultInput) },\n handleTokenRefresh: {\n enabled: !!('handleTokenRefresh' in m && m.handleTokenRefresh)\n },\n handleChangedInput: {\n enabled: !!m.onInputChanged\n },\n getProfile: { enabled: !!m.getProfile }\n }\n});\n\nexport let getAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n actionId: string\n) => {\n let action = slate.actions.find(m => m.key == actionId);\n if (!action) {\n throw new ServiceError(notFoundError(`action`, actionId));\n }\n\n return action;\n};\n\nexport let getActionWithType = <\n Type extends 'tool' | 'trigger',\n ConfigType extends {},\n AuthType extends {}\n>(\n slate: Slate<ConfigType, AuthType>,\n type: Type,\n actionId: string\n): ReturnType<typeof getAction<ConfigType, AuthType>> & { type: Type } => {\n let action = getAction(slate, actionId);\n if (action.type != type) {\n throw new ServiceError(\n badRequestError({\n message: `Action with ID ${actionId} is not of type ${type}`\n })\n );\n }\n\n return action as any;\n};\n\nexport let mapAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n a: ReturnType<typeof getAction<ConfigType, AuthType>>\n): SlatesAction => {\n let base = {\n id: a.key,\n name: a.name,\n description: a.description,\n instructions: a.instructions,\n constraints: a.constraints,\n tags: a.tags,\n metadata: a.metadata,\n\n inputSchema: toJsonSchema(a.inputSchema),\n outputSchema: toJsonSchema(a.outputSchema)\n };\n\n if (a.type == 'tool') {\n return {\n ...base,\n type: 'action.tool',\n capabilities: {}\n };\n }\n\n return {\n ...base,\n type: 'action.trigger',\n capabilities: {},\n\n invocation:\n a.source == 'polling'\n ? {\n type: 'polling',\n intervalSeconds: a.polling.intervalInSeconds ?? SlateDefaultPollingIntervalSeconds\n }\n : {\n type: 'webhook',\n autoRegistration: !!a.autoRegisterWebhook,\n autoUnregistration: !!a.autoUnregisterWebhook\n }\n };\n};\n","export class State<T> {\n #value: T;\n\n get value() {\n return this.#value;\n }\n\n get() {\n return this.#value;\n }\n\n set(value: T) {\n this.#value = value;\n }\n\n constructor(initialValue: T) {\n this.#value = initialValue;\n }\n}\n","import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';\nimport { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';\nimport { Slate, SlateContext, SlateLogger, SlateLogListener } from '@slates/provider';\nimport { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';\nimport { State } from './state';\nimport { toJsonSchema, validate } from './validation';\n\nexport let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n listeners: SlateLogListener[]\n) =>\n createSlatesProviderProtoHandler(async manager => {\n let protocol = new State<string | null>(null);\n let participants = new State<SlatesParticipant[] | null>(null);\n\n let auth = new State<{ authenticationMethodId: string; output: AuthType } | null>(null);\n let config = new State<{ value: ConfigType } | null>(null);\n\n let session = new State<{ id: string; state: any } | null>(null);\n\n let logger = new SlateLogger(listeners);\n\n let getContextBasic = () => {\n let currentProtocol = protocol.get();\n let currentParticipants = participants.get();\n\n if (!currentProtocol || !currentParticipants) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Connection context has not been initialized'\n })\n );\n }\n\n return {\n protocol: currentProtocol,\n participants: currentParticipants\n };\n };\n\n let getContextFull = () => {\n let basic = getContextBasic();\n\n let currentConfig = config.get();\n let currentSession = session.get();\n let currentAuth = auth.get();\n\n if (\n !currentConfig ||\n !currentSession ||\n (!currentAuth && slate.spec.auth.authStack.length > 0)\n ) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Session context has not been initialized'\n })\n );\n }\n\n return {\n ...basic,\n config: currentConfig.value,\n session: currentSession,\n auth: currentAuth\n };\n };\n\n manager.onNotification('slates/hello', async ({ params }) => {\n protocol.set(params.protocol);\n });\n\n manager.onNotification('slates/participant.set', async ({ params }) => {\n if (!protocol.get()) {\n throw new ServiceError(\n preconditionFailedError({ message: 'Connection protocol has not been initialized' })\n );\n }\n\n participants.set(params.participants);\n });\n\n manager.onNotification('slates/auth.set', async ({ params }) => {\n getContextBasic();\n getAuthMethod(slate, params.authenticationMethodId); // validate method ID\n\n let valRes = validate(\n slate.spec.authSchema,\n params.output,\n 'auth',\n `Invalid authentication output for method ID: ${params.authenticationMethodId}`\n );\n\n auth.set({\n authenticationMethodId: params.authenticationMethodId,\n output: valRes\n });\n });\n\n manager.onNotification('slates/config.set', async ({ params }) => {\n getContextBasic();\n\n let value = validate(\n slate.spec.configSchema,\n params.config,\n 'config',\n 'Invalid configuration'\n );\n\n config.set({ value });\n });\n\n manager.onNotification('slates/session.start', async ({ params }) => {\n getContextBasic();\n\n session.set({\n id: params.sessionId,\n state: params.state\n });\n });\n\n manager.onRequest('slates/config.changed', async ({ params }) => {\n getContextBasic();\n\n let newConfig = validate(\n slate.spec.config.configSchema,\n params.newConfig,\n 'config',\n 'Invalid configuration'\n );\n\n let configChanged = slate.spec.config.handlers.configChanged;\n if (!configChanged) {\n return { success: true, config: newConfig };\n }\n\n let updatedConfig = await configChanged({\n previousConfig: params.previousConfig as ConfigType | null,\n newConfig\n });\n\n return { success: true, config: updatedConfig?.config ?? newConfig };\n });\n\n manager.onRequest('slates/config.get_default', async ({ params }) => {\n getContextBasic();\n\n let getDefaultConfig = slate.spec.config.handlers.getDefaultConfig;\n if (!getDefaultConfig) {\n return { config: null };\n }\n\n let defaultConfig = await getDefaultConfig();\n return { config: defaultConfig };\n });\n\n manager.onRequest('slates/config.schema.get', async ({ params }) => {\n getContextBasic();\n\n return { schema: toJsonSchema(slate.spec.configSchema) };\n });\n\n manager.onRequest('slates/provider.identify', async ({ params }) => {\n getContextBasic();\n\n return {\n protocol: 'slates@2026-01-01',\n provider: {\n type: 'provider',\n id: slate.spec.key,\n name: slate.spec.name,\n description: slate.spec.description,\n metadata: slate.spec.parameters.metadata\n }\n };\n });\n\n manager.onRequest('slates/auth.methods.list', async ({ params }) => {\n getContextBasic();\n\n return {\n authenticationMethods: slate.spec.auth.authStack.map(m => mapAuthMethod(slate, m))\n };\n });\n\n manager.onRequest('slates/auth.method.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n return {\n authenticationMethod: mapAuthMethod(slate, authMethod)\n };\n });\n\n manager.onRequest('slates/auth.input.get_default', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.getDefaultInput) {\n return { input: null };\n }\n\n return { input: await authMethod.getDefaultInput() };\n });\n\n manager.onRequest('slates/auth.input.changed', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.onInputChanged) {\n return { success: true, input: params.newInput };\n }\n\n let updatedInput = await authMethod.onInputChanged({\n previousInput: params.previousInput as any | null,\n newInput: params.newInput\n });\n\n return { success: true, input: updatedInput?.input ?? params.newInput };\n });\n\n manager.onRequest('slates/auth.output.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n let input = params.input;\n\n if (authMethod.inputSchema) {\n input = validate(\n authMethod.inputSchema,\n input,\n 'auth',\n `Invalid authentication input for method ID: ${params.authenticationMethodId}`\n );\n }\n\n if ('getOutput' in authMethod) {\n let outputRes = await authMethod.getOutput({ input });\n return { output: outputRes.output };\n }\n\n return { output: input as any };\n });\n\n manager.onRequest('slates/auth.authorization_callback.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleCallback' in authMethod) {\n let callbackRes = await authMethod.handleCallback({\n code: params.code,\n state: params.state,\n redirectUri: params.redirectUri,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n output: callbackRes.output,\n input: callbackRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization callback handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.authorization_url.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('getAuthorizationUrl' in authMethod) {\n let urlRes = await authMethod.getAuthorizationUrl({\n redirectUri: params.redirectUri,\n state: params.state,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n authorizationUrl: urlRes.url,\n input: urlRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization URL retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.profile.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (authMethod.getProfile) {\n let profileRes = await authMethod.getProfile({\n output: params.output as any,\n input: params.input,\n scopes: params.scopes\n });\n\n return {\n profile: profileRes.profile\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support profile retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.token_refresh.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {\n let refreshRes = await authMethod.handleTokenRefresh({\n output: params.output as any,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n output: refreshRes.output,\n input: refreshRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support token refresh handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/actions.list', async ({ params }) => {\n getContextBasic();\n\n return {\n actions: slate.actions.map(a => mapAction(slate, a))\n };\n });\n\n manager.onRequest('slates/action.get', async ({ params }) => {\n getContextBasic();\n let action = getAction(slate, params.actionId);\n\n return {\n action: mapAction(slate, action)\n };\n });\n\n manager.onRequest('slates/action.tool.invoke', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'tool', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid input for tool ID: ${params.actionId}`\n );\n\n let res = await action.handleInvocation(\n new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)\n );\n\n return { output: res.output, message: res.message };\n });\n\n manager.onRequest('slates/action.trigger.map_event', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid event for trigger ID: ${params.actionId}`\n );\n\n let res = await action.handleEvent(\n new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)\n );\n\n return { id: res.id, type: res.type, output: res.output };\n });\n\n manager.onRequest('slates/action.trigger.poll_events', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.pollEvents) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support polling: ${params.actionId}`\n })\n );\n }\n\n let res = await action.pollEvents(\n new SlateContext(\n ctx.config,\n { state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_handle', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.handleRequest) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook requests: ${params.actionId}`\n })\n );\n }\n\n let req = new Request(params.url, {\n method: params.method,\n headers: params.headers,\n body: params.body\n ? Uint8Array.from(atob(params.body.content), c => c.charCodeAt(0))\n : null\n });\n\n let res = await action.handleRequest(\n new SlateContext(\n ctx.config,\n { request: req, state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_register', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoRegisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-registration: ${params.actionId}`\n })\n );\n }\n\n let res = await action.autoRegisterWebhook(\n new SlateContext(\n ctx.config,\n { webhookBaseUrl: params.webhookBaseUrl },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { registrationDetails: res.registrationDetails, state: res.state };\n });\n\n manager.onRequest('slates/action.trigger.webhook_unregister', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoUnregisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-unregistration: ${params.actionId}`\n })\n );\n }\n\n await action.autoUnregisterWebhook(\n new SlateContext(\n ctx.config,\n {\n webhookBaseUrl: params.webhookBaseUrl,\n registrationDetails: params.registrationDetails,\n state: params.state\n },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return {};\n });\n });\n"],"names":["validate","schema","data","entity","message","result","safeParse","success","ServiceError","e","validationError","errors","issues","map","i","_extends","path","p","String","zodToValidationError","error","toJsonSchema","toJSONSchema","unrepresentable","override","ctx","def","zodSchema","_zod","type","jsonSchema","format","getAuthMethod","slate","authenticationMethodId","authMethod","spec","auth","authStack","find","m","key","badRequestError","mapAuthMethod","_m$inputSchema","id","name","scopes","s","scope","title","description","undefined","inputSchema","z","object","outputSchema","capabilities","getDefaultInput","enabled","handleTokenRefresh","handleChangedInput","onInputChanged","getProfile","getAction","actionId","action","actions","notFoundError","getActionWithType","mapAction","a","_a$polling$intervalIn","instructions","constraints","tags","metadata","invocation","source","intervalSeconds","polling","intervalInSeconds","SlateDefaultPollingIntervalSeconds","autoRegistration","autoRegisterWebhook","autoUnregistration","autoUnregisterWebhook","State","initialValue","Object","defineProperty","_value","writable","value","_classPrivateFieldLooseBase","_proto","prototype","_createClass","get","this","set","createProviderHandler","listeners","createSlatesProviderProtoHandler","manager","protocol","participants","config","session","logger","SlateLogger","getContextBasic","currentProtocol","currentParticipants","preconditionFailedError","getContextFull","basic","currentConfig","currentSession","currentAuth","length","onNotification","_ref","params","Promise","resolve","reject","_ref2","_ref3","valRes","authSchema","output","_ref4","configSchema","_ref5","sessionId","state","onRequest","_ref6","newConfig","configChanged","handlers","previousConfig","then","updatedConfig","_updatedConfig$config","_ref7","getDefaultConfig","defaultConfig","_ref8","_ref9","provider","parameters","_ref0","authenticationMethods","_ref1","authenticationMethod","_ref10","_authMethod$getDefaul","input","_ref11","previousInput","newInput","updatedInput","_updatedInput$input","_ref12","_exit","_temp2","_result","_temp","getOutput","outputRes","_output","_ref13","_temp4","_exit2","_result2","_temp3","handleCallback","code","redirectUri","clientId","clientSecret","callbackRes","_output$input","_ref14","_exit3","_temp6","_result3","_temp5","getAuthorizationUrl","urlRes","_authorizationUrl$inp","authorizationUrl","url","_ref15","_temp8","_exit4","_result4","_temp7","profileRes","profile","_ref16","_exit5","_temp0","_result5","_temp9","refreshRes","_ref17","_ref18","_ref19","_ctx$auth","handleInvocation","SlateContext","res","_ref20","_ctx$auth2","handleEvent","_ref21","_ctx$auth3","pollEvents","inputs","updatedState","_ref22","_ctx$auth4","handleRequest","req","Request","method","headers","body","Uint8Array","from","atob","content","c","charCodeAt","request","_ref23","_ctx$auth5","webhookBaseUrl","registrationDetails","_ref24","_ctx$auth6"],"mappings":"g/BAGW,IAWAA,EAAW,SACpBC,EACAC,EACAC,EACAC,GAEA,IAAIC,EAASJ,EAAOK,UAAUJ,GAC9B,IAAKG,EAAOE,QACV,MAAM,IAAIC,EAnBoB,SAACL,EAAgBC,EAAiBK,GAClE,OAAOC,EAAgB,CACrBN,QAAAA,EACAD,OAAAA,EACAQ,OAAQF,EAAEG,OAAOC,IAAI,SAAAC,GAAC,OAAAC,EACjBD,CAAAA,EAAAA,EACHE,CAAAA,KAAMF,EAAEE,KAAKH,IAAI,SAAAI,GAAK,OAAAC,OAAOD,EAAE,IAC/B,IAEN,CAU2BE,CAAqBhB,EAAQC,EAASC,EAAOe,QAGtE,OAAOf,EAAOH,IAChB,EAEWmB,EAAe,SAACpB,GACzB,OAAAA,EAAOqB,aAAa,CAClBC,gBAAiB,MACjBC,SAAU,SAAAC,GACR,IAAIC,EAAMD,EAAIE,UAAUC,KAAKF,IAEZ,SAAbA,EAAIG,OACNJ,EAAIK,WAAWD,KAAO,SACtBJ,EAAIK,WAAWC,OAAS,aAET,WAAbL,EAAIG,OACNJ,EAAIK,WAAWD,KAAO,SAE1B,GACA,ECpCOG,EAAgB,SACzBC,EACAC,GAEA,IAAIC,EAAaF,EAAMG,KAAKC,KAAKC,UAAUC,KAAK,SAAAC,GAAC,OAAIA,EAAEC,KAAOP,CAAsB,GACpF,IAAKC,EACH,MAAM,IAAI3B,EACRkC,EAAgB,CACdtC,QAAO,qCAAuC8B,KAKpD,OAAOC,CACT,EAEWQ,EAAgB,SACzBV,EACAO,GAAyDI,IAAAA,EAC1B,MAAA,CAC/BC,GAAIL,EAAEC,IACNK,KAAMN,EAAEM,KACRjB,KAAMW,EAAEX,KAERkB,OACE,WAAYP,EACRA,EAAEO,OAAOlC,IAAI,SAAAmC,GAAM,MAAA,CACjBH,GAAIG,EAAEC,MACNC,MAAOF,EAAEE,MACTC,YAAaH,EAAEG,YAChB,QACDC,EAENC,YAAahC,EAA0BuB,OAAdA,EAACJ,EAAEa,aAAWT,EAAIU,EAAEC,OAAO,CAAE,IACtDC,aAAcnC,EAAaY,EAAMG,KAAKC,KAAKmB,cAE3CC,aAAc,CACZC,gBAAiB,CAAEC,YAAY,oBAAqBnB,KAAKA,EAAEkB,kBAC3DE,mBAAoB,CAClBD,YAAY,uBAAwBnB,KAAKA,EAAEoB,qBAE7CC,mBAAoB,CAClBF,UAAWnB,EAAEsB,gBAEfC,WAAY,CAAEJ,UAAWnB,EAAEuB,aAE9B,EAEUC,EAAY,SACrB/B,EACAgC,GAEA,IAAIC,EAASjC,EAAMkC,QAAQ5B,KAAK,SAAAC,GAAC,OAAIA,EAAEC,KAAOwB,CAAQ,GACtD,IAAKC,EACH,UAAU1D,EAAa4D,EAAwBH,SAAAA,IAGjD,OAAOC,CACT,EAEWG,EAAoB,SAK7BpC,EACAJ,EACAoC,GAEA,IAAIC,EAASF,EAAU/B,EAAOgC,GAC9B,GAAIC,EAAOrC,MAAQA,EACjB,UAAUrB,EACRkC,EAAgB,CACdtC,QAAO,kBAAoB6D,EAAQ,mBAAmBpC,KAK5D,OAAOqC,CACT,EAEWI,EAAY,SACrBrC,EACAsC,OACgBC,EAchB,OACEzD,EAAA,CAAA,EAdS,CACT8B,GAAI0B,EAAE9B,IACNK,KAAMyB,EAAEzB,KACRK,YAAaoB,EAAEpB,YACfsB,aAAcF,EAAEE,aAChBC,YAAaH,EAAEG,YACfC,KAAMJ,EAAEI,KACRC,SAAUL,EAAEK,SAEZvB,YAAahC,EAAakD,EAAElB,aAC5BG,aAAcnC,EAAakD,EAAEf,eAGjB,QAAVe,EAAE1C,KAEK,CACPA,KAAM,cACN4B,aAAc,CAAA,GAKT,CACP5B,KAAM,iBACN4B,aAAc,CAAE,EAEhBoB,WACc,WAAZN,EAAEO,OACE,CACEjD,KAAM,UACNkD,gBAA4C,OAA7BP,EAAED,EAAES,QAAQC,mBAAiBT,EAAIU,GAElD,CACErD,KAAM,UACNsD,mBAAoBZ,EAAEa,oBACtBC,qBAAsBd,EAAEe,wBAGpC,4BCjIaC,eAeX,WAAA,SAAAA,EAAYC,GAAeC,OAAAC,eAAAC,KAAAA,GAAAC,UAAA,EAAAC,WACzBC,IAAAA,OAAIH,GAAAA,GAAUH,CAChB,CAAC,QAAAO,EAAAR,EAAAS,UAJAC,OAIAF,EAVDG,IAAA,WACE,OAAAJ,EAAOK,KAAIR,GAAAA,EACb,EAACI,EAEDK,IAAA,SAAIP,GACFC,OAAIH,GAAAA,GAAUE,CAChB,IAACN,KAAA,CAAA,CAAA9C,IAAAyD,QAAAA,IAVD,WACE,OAAAJ,EAAOK,KAAIR,GAAAA,EACb,iPAAC,CAUD,GCRSU,EAAwB,SACjCpE,EACAqE,GAA6B,OAE7BC,EAAgC,SAAOC,GAAU,IAC/C,IAAIC,EAAW,IAAIlB,EAAqB,MACpCmB,EAAe,IAAInB,EAAkC,MAErDlD,EAAO,IAAIkD,EAAmE,MAC9EoB,EAAS,IAAIpB,EAAoC,MAEjDqB,EAAU,IAAIrB,EAAyC,MAEvDsB,EAAS,IAAIC,EAAYR,GAEzBS,EAAkB,WACpB,IAAIC,EAAkBP,EAASP,MAC3Be,EAAsBP,EAAaR,MAEvC,IAAKc,IAAoBC,EACvB,MAAU,IAAAzG,EACR0G,EAAwB,CACtB9G,QAAS,iDAKf,MAAO,CACLqG,SAAUO,EACVN,aAAcO,EAElB,EAEIE,EAAiB,WACnB,IAAIC,EAAQL,IAERM,EAAgBV,EAAOT,MACvBoB,EAAiBV,EAAQV,MACzBqB,EAAclF,EAAK6D,MAEvB,IACGmB,IACAC,IACCC,GAAetF,EAAMG,KAAKC,KAAKC,UAAUkF,OAAS,EAEpD,MAAM,IAAIhH,EACR0G,EAAwB,CACtB9G,QAAS,8CAKf,OAAAW,KACKqG,EAAK,CACRT,OAAQU,EAAcxB,MACtBe,QAASU,EACTjF,KAAMkF,GAEV,EA6bG,OA3bHf,EAAQiB,eAAe,eAAc,SAAAC,GAAW,IAAAC,EAAMD,EAANC,OAAM,IACtB,OAA9BlB,EAASL,IAAIuB,EAAOlB,UAAUmB,QAAAC,SAChC,CAAC,MAAApH,GAAAmH,OAAAA,QAAAE,OAAArH,EAAA,CAAA,GAED+F,EAAQiB,eAAe,kCAAwBM,GAAA,IAAWJ,EAAMI,EAANJ,WACxD,IAAKlB,EAASP,MACZ,UAAU1F,EACR0G,EAAwB,CAAE9G,QAAS,kDAID,OAAtCsG,EAAaN,IAAIuB,EAAOjB,cAAckB,QAAAC,SACxC,CAAC,MAAApH,UAAAmH,QAAAE,OAAArH,MAED+F,EAAQiB,eAAe,kBAAiBO,SAAAA,OAAWL,EAAMK,EAANL,OAAY,IAC7DZ,IACA/E,EAAcC,EAAO0F,EAAOzF,wBAE5B,IAAI+F,EAASjI,EACXiC,EAAMG,KAAK8F,WACXP,EAAOQ,OACP,uDACgDR,EAAOzF,wBAMtD,OAHHG,EAAK+D,IAAI,CACPlE,uBAAwByF,EAAOzF,uBAC/BiG,OAAQF,IACPL,QAAAC,SACL,CAAC,MAAApH,UAAAmH,QAAAE,OAAArH,MAED+F,EAAQiB,eAAe,oBAAmBW,SAAAA,OAAWT,EAAMS,EAANT,OAAY,IAC/DZ,IAEA,IAAIlB,EAAQ7F,EACViC,EAAMG,KAAKiG,aACXV,EAAOhB,OACP,SACA,yBAGoB,OAAtBA,EAAOP,IAAI,CAAEP,MAAAA,IAAS+B,QAAAC,SACxB,CAAC,MAAApH,GAAAmH,OAAAA,QAAAE,OAAArH,EAAC,CAAA,GAEF+F,EAAQiB,eAAe,uBAAsB,SAAAa,GAAW,IAAAX,EAAMW,EAANX,OAAM,IAMzD,OALHZ,IAEAH,EAAQR,IAAI,CACVvD,GAAI8E,EAAOY,UACXC,MAAOb,EAAOa,QACbZ,QAAAC,SACL,CAAC,MAAApH,GAAAmH,OAAAA,QAAAE,OAAArH,EAAC,CAAA,GAEF+F,EAAQiC,UAAU,wBAAuB,SAAAC,GAAW,IAAAf,EAAMe,EAANf,OAAY,IAC9DZ,IAEA,IAAI4B,EAAY3I,EACdiC,EAAMG,KAAKuE,OAAO0B,aAClBV,EAAOgB,UACP,SACA,yBAGEC,EAAgB3G,EAAMG,KAAKuE,OAAOkC,SAASD,cAC/C,OAAKA,EAEJhB,QAAAC,QAEyBe,EAAc,CACtCE,eAAgBnB,EAAOmB,eACvBH,UAAAA,KACAI,KAHEC,SAAAA,OAAaC,EAKjB,MAAO,CAAE1I,SAAS,EAAMoG,OAA6B,OAAvBsC,EAAED,MAAAA,OAAAA,EAAAA,EAAerC,QAAMsC,EAAIN,EAAY,GARnEf,QAAAC,QAAO,CAAEtH,SAAS,EAAMoG,OAAQgC,GASpC,CAAC,MAAAlI,GAAA,OAAAmH,QAAAE,OAAArH,EAAA,CAAA,GAED+F,EAAQiC,UAAU,qCAA2BS,OAC3CnC,IAEA,IAAIoC,EAAmBlH,EAAMG,KAAKuE,OAAOkC,SAASM,iBAClD,OAAKA,EAEJvB,QAAAC,QAEyBsB,KAAkBJ,KAAxCK,SAAAA,GACJ,MAAO,CAAEzC,OAAQyC,EAAgB,GAJ/BxB,QAAAC,QAAO,CAAElB,OAAQ,MAKrB,CAAC,MAAAlG,GAAA,OAAAmH,QAAAE,OAAArH,EAAA,CAAA,GAED+F,EAAQiC,UAAU,oCAA0BY,OAG1C,OAFAtC,IAEAa,QAAAC,QAAO,CAAE5H,OAAQoB,EAAaY,EAAMG,KAAKiG,eAC3C,CAAC,MAAA5H,GAAA,OAAAmH,QAAAE,OAAArH,EAAA,CAAA,GAED+F,EAAQiC,UAAU,oCAA0Ba,OAG1C,OAFAvC,IAEAa,QAAAC,QAAO,CACLpB,SAAU,oBACV8C,SAAU,CACR1H,KAAM,WACNgB,GAAIZ,EAAMG,KAAKK,IACfK,KAAMb,EAAMG,KAAKU,KACjBK,YAAalB,EAAMG,KAAKe,YACxByB,SAAU3C,EAAMG,KAAKoH,WAAW5E,WAGtC,CAAC,MAAAnE,GAAAmH,OAAAA,QAAAE,OAAArH,EAAC,CAAA,GAEF+F,EAAQiC,UAAU,2BAA0BgB,SAAAA,GAAuB,IAGjE,OAFA1C,IAEAa,QAAAC,QAAO,CACL6B,sBAAuBzH,EAAMG,KAAKC,KAAKC,UAAUzB,IAAI,SAAA2B,UAAKG,EAAcV,EAAOO,EAAE,IAErF,CAAC,MAAA/B,GAAAmH,OAAAA,QAAAE,OAAArH,EAAC,CAAA,GAEF+F,EAAQiC,UAAU,yBAAwB,SAAAkB,GAAW,IAAAhC,EAAMgC,EAANhC,OAAM,IACzDZ,IACA,IAAI5E,EAAaH,EAAcC,EAAO0F,EAAOzF,wBAE7C,OAAA0F,QAAAC,QAAO,CACL+B,qBAAsBjH,EAAcV,EAAOE,IAE/C,CAAC,MAAA1B,UAAAmH,QAAAE,OAAArH,MAED+F,EAAQiC,UAAU,gCAA+BoB,SAAAA,OAAWlC,EAAMkC,EAANlC,OAAY,IACtEZ,IACA,IAAI5E,EAAaH,EAAcC,EAAO0F,EAAOzF,wBAE7C,OAAKC,EAAWuB,gBAEfkE,QAAAC,QAEqB1F,EAAWuB,mBAAiBqF,KAAA,SAAAe,GAAlD,MAAO,CAAEC,MAAKD,EAAuC,GAHnDlC,QAAAC,QAAO,CAAEkC,MAAO,MAIpB,CAAC,MAAAtJ,GAAAmH,OAAAA,QAAAE,OAAArH,EAAA,CAAA,GAED+F,EAAQiC,UAAU,qCAA2BuB,GAAA,IAAWrC,EAAMqC,EAANrC,WACtDZ,IACA,IAAI5E,EAAaH,EAAcC,EAAO0F,EAAOzF,wBAE7C,OAAKC,EAAW2B,eAEf8D,QAAAC,QAEwB1F,EAAW2B,eAAe,CACjDmG,cAAetC,EAAOsC,cACtBC,SAAUvC,EAAOuC,YACjBnB,cAHEoB,GAAY,IAAAC,EAKhB,MAAO,CAAE7J,SAAS,EAAMwJ,MAA0BK,OAArBA,QAAED,SAAAA,EAAcJ,OAAKK,EAAIzC,EAAOuC,SAAW,GARtEtC,QAAAC,QAAO,CAAEtH,SAAS,EAAMwJ,MAAOpC,EAAOuC,UAS1C,CAAC,MAAAzJ,UAAAmH,QAAAE,OAAArH,MAED+F,EAAQiC,UAAU,yBAAwB4B,SAAAA,OAAW1C,EAAM0C,EAAN1C,OAAY,IAAA,IAoBhC2C,EApBgCC,EAAA,SAAAC,UAAAF,EAAAE,EAoBxD,CAAErC,OAAQ4B,EAAc,EAnB/BhD,IACA,IAAI5E,EAAaH,EAAcC,EAAO0F,EAAOzF,wBAEzC6H,EAAQpC,EAAOoC,MAEf5H,EAAWkB,cACb0G,EAAQ/J,EACNmC,EAAWkB,YACX0G,EACA,sDAC+CpC,EAAOzF,yBAEzD,IAAAuI,EAAA,WAAA,GAEG,cAAetI,EAAUyF,OAAAA,QAAAC,QACL1F,EAAWuI,UAAU,CAAEX,MAAAA,KAAQhB,cAAjD4B,GAC+BC,OAAAN,EAAAM,EAA5B,CAAEzC,OAAQwC,EAAUxC,OAAQ,GAJpC,UAIoCP,QAAAC,QAAA4C,GAAAA,EAAA1B,KAAA0B,EAAA1B,KAAAwB,GAAAA,EAAAE,GAIvC,CAAC,MAAAhK,UAAAmH,QAAAE,OAAArH,MAED+F,EAAQiC,UAAU,4CAA2CoC,SAAAA,OAAWlD,EAAMkD,EAANlD,WAAYmD,IAyBhFC,EAzBgFD,WAAAE,MAAAD,EAAA,OAAAC,EAqBlF,UAAUxK,EACR0G,EAAwB,CACtB9G,QAAO,2EAA6EuH,EAAOzF,yBAE7F,EAxBF6E,IACA,IAAI5E,EAAaH,EAAcC,EAAO0F,EAAOzF,wBAAwB+I,gBAEjE,mBAAoB9I,EAAU,OAAAyF,QAAAC,QACR1F,EAAW+I,eAAe,CAChDC,KAAMxD,EAAOwD,KACb3C,MAAOb,EAAOa,MACd4C,YAAazD,EAAOyD,YACpBrB,MAAOpC,EAAOoC,MACdsB,SAAU1D,EAAO0D,SACjBC,aAAc3D,EAAO2D,aACrBvI,OAAQ4E,EAAO5E,UACfgG,KAAA,SAREwC,GAaHC,OAAAT,EAAAS,EAHM,CACLrD,OAAQoD,EAAYpD,OACpB4B,MAAOwB,EAAYxB,MACpB,aAAAnC,QAAAC,QAAAoD,GAAAA,EAAAlC,KAAAkC,EAAAlC,KAAA+B,GAAAA,EAAAG,GAQL,CAAC,MAAAxK,UAAAmH,QAAAE,OAAArH,MAED+F,EAAQiC,UAAU,oCAAmCgD,SAAAA,OAAW9D,EAAM8D,EAAN9D,OAAY,IAAA,IAwBxE+D,EAxBwEC,EAAAA,SAAAC,GAAAF,GAAAA,SAAAE,EAoB1E,MAAU,IAAApL,EACR0G,EAAwB,CACtB9G,QAAO,uEAAyEuH,EAAOzF,yBAEzF,EAvBF6E,IACA,IAAI5E,EAAaH,EAAcC,EAAO0F,EAAOzF,wBAAwB2J,EAEjE,WAAA,GAAA,wBAAyB1J,SAAUyF,QAAAC,QAClB1F,EAAW2J,oBAAoB,CAChDV,YAAazD,EAAOyD,YACpB5C,MAAOb,EAAOa,MACduB,MAAOpC,EAAOoC,MACdsB,SAAU1D,EAAO0D,SACjBC,aAAc3D,EAAO2D,aACrBvI,OAAQ4E,EAAO5E,UACfgG,cAPEgD,GAYHC,OAAAN,EAAAM,EAHM,CACLC,iBAAkBF,EAAOG,IACzBnC,MAAOgC,EAAOhC,MACf,GAbC,UAaDnC,QAAAC,QAAAgE,GAAAA,EAAA9C,KAAA8C,EAAA9C,KAAA4C,GAAAA,EAAAE,GAQL,CAAC,MAAApL,UAAAmH,QAAAE,OAAArH,MAED+F,EAAQiC,UAAU,0BAAyB,SAAA0D,GAAA,IAAWxE,EAAMwE,EAANxE,WAAYyE,IAoB9DC,EApB8DD,WAAAE,MAAAD,EAAA,OAAAC,EAgBhE,UAAU9L,EACR0G,EAAwB,CACtB9G,QAAO,6DAA+DuH,EAAOzF,yBAE/E,EAnBF6E,IACA,IAAI5E,EAAaH,EAAcC,EAAO0F,EAAOzF,wBAAwBqK,gBAEjEpK,EAAW4B,WAAU6D,OAAAA,QAAAC,QACA1F,EAAW4B,WAAW,CAC3CoE,OAAQR,EAAOQ,OACf4B,MAAOpC,EAAOoC,MACdhH,OAAQ4E,EAAO5E,UACfgG,KAAA,SAJEyD,UAQHH,IAFM,CACLI,QAASD,EAAWC,QACrB,EAAA,IAAA,OAAA7E,QAAAC,QAAA0E,GAAAA,EAAAxD,KAAAwD,EAAAxD,KAAAqD,GAAAA,EAAAG,GAQL,CAAC,MAAA9L,GAAA,OAAAmH,QAAAE,OAAArH,EAAA,CAAA,GAED+F,EAAQiC,UAAU,mCAAkCiE,SAAAA,GAAW,IAAA/E,EAAM+E,EAAN/E,OAAM,QAuBjEgF,EAvBuEC,EAAA,SAAAC,GAAA,GAAAF,EAAAE,OAAAA,EAmBzE,MAAM,IAAIrM,EACR0G,EAAwB,CACtB9G,QAA2EuH,kEAAAA,EAAOzF,yBAEpF,EAtBF6E,IACA,IAAI5E,EAAaH,EAAcC,EAAO0F,EAAOzF,wBAAwB4K,gBAEjE,uBAAwB3K,GAAcA,EAAWyB,0BAAkBgE,QAAAC,QAC9C1F,EAAWyB,mBAAmB,CACnDuE,OAAQR,EAAOQ,OACf4B,MAAOpC,EAAOoC,MACdsB,SAAU1D,EAAO0D,SACjBC,aAAc3D,EAAO2D,aACrBvI,OAAQ4E,EAAO5E,UACfgG,cANEgE,GAWH,OAAAJ,EAAA,EAHM,CACLxE,OAAQ4E,EAAW5E,OACnB4B,MAAOgD,EAAWhD,MACnB,EAAAnC,IAAAA,OAAAA,QAAAC,QAAAiF,GAAAA,EAAA/D,KAAA+D,EAAA/D,KAAA6D,GAAAA,EAAAE,GAQL,CAAC,MAAArM,UAAAmH,QAAAE,OAAArH,MAED+F,EAAQiC,UAAU,sBAAqBuE,SAAAA,GAAuB,IAG5D,OAFAjG,IAEAa,QAAAC,QAAO,CACL1D,QAASlC,EAAMkC,QAAQtD,IAAI,SAAA0D,GAAK,OAAAD,EAAUrC,EAAOsC,EAAE,IAEvD,CAAC,MAAA9D,UAAAmH,QAAAE,OAAArH,MAED+F,EAAQiC,UAAU,oBAAmBwE,SAAAA,OAAWtF,EAAMsF,EAANtF,OAAY,IAC1DZ,IACA,IAAI7C,EAASF,EAAU/B,EAAO0F,EAAO1D,UAErC,OAAA2D,QAAAC,QAAO,CACL3D,OAAQI,EAAUrC,EAAOiC,IAE7B,CAAC,MAAAzD,GAAA,OAAAmH,QAAAE,OAAArH,EAAA,CAAA,GAED+F,EAAQiC,UAAU,qCAA2ByE,GAAA,IAAWvF,EAAMuF,EAANvF,OAAM,QAAMwF,EAC9D1L,EAAM0F,IACNjD,EAASG,EAAkBpC,EAAO,OAAQ0F,EAAO1D,UAEjD8F,EAAQ/J,EACVkE,EAAOb,YACPsE,EAAOoC,MACP,QAAO,8BACuBpC,EAAO1D,UACrC,OAAA2D,QAAAC,QAEc3D,EAAOkJ,iBACrB,IAAIC,EAAa5L,EAAIkF,OAAQoD,EAAOoD,OAAFA,EAAE1L,EAAIY,WAAJ8K,EAAAA,EAAUhF,OAASlG,EAAMG,KAAMyE,KACpEkC,cAFGuE,GAIJ,MAAO,CAAEnF,OAAQmF,EAAInF,OAAQ/H,QAASkN,EAAIlN,QAAU,EACtD,CAAC,MAAAK,GAAA,OAAAmH,QAAAE,OAAArH,EAAA,CAAA,GAED+F,EAAQiC,UAAU,2CAAiC8E,GAAA,IAAW5F,EAAM4F,EAAN5F,WAAY6F,IAAAA,EACpE/L,EAAM0F,IACNjD,EAASG,EAAkBpC,EAAO,UAAW0F,EAAO1D,UAEpD8F,EAAQ/J,EACVkE,EAAOb,YACPsE,EAAOoC,MACP,yCACiCpC,EAAO1D,UACxC,OAAA2D,QAAAC,QAEc3D,EAAOuJ,YACrB,IAAIJ,EAAa5L,EAAIkF,OAAQoD,EAAe,OAAVyD,EAAE/L,EAAIY,WAAI,EAARmL,EAAUrF,OAASlG,EAAMG,KAAMyE,KACpEkC,KAFGuE,SAAAA,GAIJ,MAAO,CAAEzK,GAAIyK,EAAIzK,GAAIhB,KAAMyL,EAAIzL,KAAMsG,OAAQmF,EAAInF,OAAS,EAC5D,CAAC,MAAA1H,GAAA,OAAAmH,QAAAE,OAAArH,MAED+F,EAAQiC,UAAU,oCAAmCiF,SAAAA,OAAW/F,EAAM+F,EAAN/F,OAAY,IAAA,IAAAgG,EACtElM,EAAM0F,IACNjD,EAASG,EAAkBpC,EAAO,UAAW0F,EAAO1D,UAExD,IAAKC,EAAO0J,WACV,MAAM,IAAIpN,EACRkC,EAAgB,CACdtC,QAAqDuH,4CAAAA,EAAO1D,YAGjE,OAAA2D,QAAAC,QAEe3D,EAAO0J,WACrB,IAAIP,EACF5L,EAAIkF,OACJ,CAAE6B,MAAOb,EAAOa,OACR,OADemF,EACvBlM,EAAIY,WAAI,EAARsL,EAAUxF,OACVlG,EAAMG,KACNyE,KAEHkC,KARGuE,SAAAA,GAUJ,MAAO,CAAEO,OAAQP,EAAIO,OAAQC,aAAcR,EAAIQ,aAAe,EAChE,CAAC,MAAArN,GAAAmH,OAAAA,QAAAE,OAAArH,EAAC,CAAA,GAEF+F,EAAQiC,UAAU,uCAAsCsF,SAAAA,OAAWpG,EAAMoG,EAANpG,OAAY,IAAA,IAAAqG,EACzEvM,EAAM0F,IACNjD,EAASG,EAAkBpC,EAAO,UAAW0F,EAAO1D,UAExD,IAAKC,EAAO+J,cACV,MAAU,IAAAzN,EACRkC,EAAgB,CACdtC,QAA8DuH,qDAAAA,EAAO1D,YAK3E,IAAIiK,EAAM,IAAIC,QAAQxG,EAAOuE,IAAK,CAChCkC,OAAQzG,EAAOyG,OACfC,QAAS1G,EAAO0G,QAChBC,KAAM3G,EAAO2G,KACTC,WAAWC,KAAKC,KAAK9G,EAAO2G,KAAKI,SAAU,SAAAC,UAAKA,EAAEC,WAAW,EAAE,GAC/D,OACH,OAAAhH,QAAAC,QAEa3D,EAAO+J,cACrB,IAAIZ,EACF5L,EAAIkF,OACJ,CAAEkI,QAASX,EAAK1F,MAAOb,EAAOa,cAAOwF,EACrCvM,EAAIY,aAAJ2L,EAAU7F,OACVlG,EAAMG,KACNyE,KAEHkC,KAAA,SARGuE,GAUJ,MAAO,CAAEO,OAAQP,EAAIO,OAAQC,aAAcR,EAAIQ,aAAe,EAChE,CAAC,MAAArN,GAAA,OAAAmH,QAAAE,OAAArH,EAAC,CAAA,GAEF+F,EAAQiC,UAAU,yCAAwC,SAAAqG,GAAW,IAAAnH,EAAMmH,EAANnH,OAAM,QAAMoH,EAC3EtN,EAAM0F,IACNjD,EAASG,EAAkBpC,EAAO,UAAW0F,EAAO1D,UAExD,IAAKC,EAAOkB,oBACV,UAAU5E,EACRkC,EAAgB,CACdtC,QAAO,8DAAgEuH,EAAO1D,YAGnF,OAAA2D,QAAAC,QAEe3D,EAAOkB,oBACrB,IAAIiI,EACF5L,EAAIkF,OACJ,CAAEqI,eAAgBrH,EAAOqH,uBAAgBD,EACzCtN,EAAIY,aAAJ0M,EAAU5G,OACVlG,EAAMG,KACNyE,KAEHkC,KAAA,SARGuE,GAUJ,MAAO,CAAE2B,oBAAqB3B,EAAI2B,oBAAqBzG,MAAO8E,EAAI9E,MAAQ,EAC5E,CAAC,MAAA/H,GAAA,OAAAmH,QAAAE,OAAArH,EAAA,CAAA,GAED+F,EAAQiC,UAAU,2CAA0C,SAAAyG,GAAW,IAAAvH,EAAMuH,EAANvH,OAAM,QAAMwH,EAC7E1N,EAAM0F,IACNjD,EAASG,EAAkBpC,EAAO,UAAW0F,EAAO1D,UAExD,IAAKC,EAAOoB,sBACV,MAAU,IAAA9E,EACRkC,EAAgB,CACdtC,QAAO,gEAAkEuH,EAAO1D,YAGrF,OAAA2D,QAAAC,QAEK3D,EAAOoB,sBACX,IAAI+H,EACF5L,EAAIkF,OACJ,CACEqI,eAAgBrH,EAAOqH,eACvBC,oBAAqBtH,EAAOsH,oBAC5BzG,MAAOb,EAAOa,cACf2G,EACD1N,EAAIY,aAAJ8M,EAAUhH,OACVlG,EAAMG,KACNyE,KAEHkC,KAAA,WAED,MAAO,CAAA,CAAG,EACZ,CAAC,MAAAtI,GAAAmH,OAAAA,QAAAE,OAAArH,EAAC,CAAA,GAACmH,QAAAC,SACL,CAAC,MAAApH,GAAA,OAAAmH,QAAAE,OAAArH,EAAC,CAAA,EAAA"}
1
+ {"version":3,"file":"index.module.js","sources":["../src/validation.ts","../src/spec.ts","../src/state.ts","../src/index.ts"],"sourcesContent":["import { ServiceError, validationError } from '@lowerdeck/error';\nimport z from 'zod';\n\nexport let zodToValidationError = (entity: string, message: string, e: z.ZodError) => {\n return validationError({\n message,\n entity,\n errors: e.issues.map(i => ({\n ...i,\n path: i.path.map(p => String(p))\n }))\n });\n};\n\nexport let validate = <T>(\n schema: z.ZodType<T>,\n data: unknown,\n entity: string,\n message: string\n): T => {\n let result = schema.safeParse(data);\n if (!result.success) {\n throw new ServiceError(zodToValidationError(entity, message, result.error));\n }\n\n return result.data;\n};\n\nexport let toJsonSchema = (schema: z.ZodType<any>) =>\n schema.toJSONSchema({\n unrepresentable: 'any',\n override: ctx => {\n let def = ctx.zodSchema._zod.def;\n\n if (def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n if (def.type === 'bigint') {\n ctx.jsonSchema.type = 'number';\n }\n }\n });\n","import { badRequestError, notFoundError, ServiceError } from '@lowerdeck/error';\nimport { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';\nimport { Slate, SlateDefaultPollingIntervalSeconds } from '@slates/provider';\nimport z from 'zod';\nimport { toJsonSchema } from './validation';\n\nexport let getAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n authenticationMethodId: string\n) => {\n let authMethod = slate.spec.auth.authStack.find(m => m.key == authenticationMethodId);\n if (!authMethod) {\n throw new ServiceError(\n badRequestError({\n message: `Invalid authentication method ID: ${authenticationMethodId}`\n })\n );\n }\n\n return authMethod;\n};\n\nexport let mapAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>\n): SlateAuthenticationMethod => ({\n id: m.key,\n name: m.name,\n type: m.type,\n\n scopes:\n 'scopes' in m\n ? m.scopes.map(s => ({\n id: s.scope,\n title: s.title,\n description: s.description\n }))\n : undefined,\n\n inputSchema: toJsonSchema(m.inputSchema ?? z.object({})),\n outputSchema: toJsonSchema(slate.spec.auth.outputSchema),\n\n capabilities: {\n getDefaultInput: { enabled: !!('getDefaultInput' in m && m.getDefaultInput) },\n handleTokenRefresh: {\n enabled: !!('handleTokenRefresh' in m && m.handleTokenRefresh)\n },\n handleChangedInput: {\n enabled: !!m.onInputChanged\n },\n getProfile: { enabled: !!m.getProfile }\n }\n});\n\nexport let getAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n actionId: string\n) => {\n let action = slate.actions.find(m => m.key == actionId);\n if (!action) {\n throw new ServiceError(notFoundError(`action`, actionId));\n }\n\n return action;\n};\n\nexport let getActionWithType = <\n Type extends 'tool' | 'trigger',\n ConfigType extends {},\n AuthType extends {}\n>(\n slate: Slate<ConfigType, AuthType>,\n type: Type,\n actionId: string\n): ReturnType<typeof getAction<ConfigType, AuthType>> & { type: Type } => {\n let action = getAction(slate, actionId);\n if (action.type != type) {\n throw new ServiceError(\n badRequestError({\n message: `Action with ID ${actionId} is not of type ${type}`\n })\n );\n }\n\n return action as any;\n};\n\nexport let mapAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n a: ReturnType<typeof getAction<ConfigType, AuthType>>\n): SlatesAction => {\n let base = {\n id: a.key,\n name: a.name,\n description: a.description,\n instructions: a.instructions,\n constraints: a.constraints,\n tags: a.tags,\n metadata: a.metadata,\n\n inputSchema: toJsonSchema(a.inputSchema),\n outputSchema: toJsonSchema(a.outputSchema)\n };\n\n if (a.type == 'tool') {\n return {\n ...base,\n type: 'action.tool',\n capabilities: {}\n };\n }\n\n return {\n ...base,\n type: 'action.trigger',\n capabilities: {},\n\n invocation:\n a.source == 'polling'\n ? {\n type: 'polling',\n intervalSeconds: a.polling.intervalInSeconds ?? SlateDefaultPollingIntervalSeconds\n }\n : {\n type: 'webhook',\n autoRegistration: !!a.autoRegisterWebhook,\n autoUnregistration: !!a.autoUnregisterWebhook\n }\n };\n};\n","export class State<T> {\n #value: T;\n\n get value() {\n return this.#value;\n }\n\n get() {\n return this.#value;\n }\n\n set(value: T) {\n this.#value = value;\n }\n\n constructor(initialValue: T) {\n this.#value = initialValue;\n }\n}\n","import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';\nimport { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';\nimport {\n runWithContext,\n Slate,\n SlateContext,\n SlateLogger,\n SlateLogListener\n} from '@slates/provider';\nimport { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';\nimport { State } from './state';\nimport { toJsonSchema, validate } from './validation';\n\nexport let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n listeners: SlateLogListener[]\n) =>\n createSlatesProviderProtoHandler(async manager => {\n let protocol = new State<string | null>(null);\n let participants = new State<SlatesParticipant[] | null>(null);\n\n let auth = new State<{ authenticationMethodId: string; output: AuthType } | null>(null);\n let config = new State<{ value: ConfigType } | null>(null);\n\n let session = new State<{ id: string; state: any } | null>(null);\n\n let logger = new SlateLogger(listeners);\n\n let getContextBasic = () => {\n let currentProtocol = protocol.get();\n let currentParticipants = participants.get();\n\n if (!currentProtocol || !currentParticipants) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Connection context has not been initialized'\n })\n );\n }\n\n return {\n protocol: currentProtocol,\n participants: currentParticipants\n };\n };\n\n let getContextFull = () => {\n let basic = getContextBasic();\n\n let currentConfig = config.get();\n let currentSession = session.get();\n let currentAuth = auth.get();\n\n if (\n !currentConfig ||\n !currentSession ||\n (!currentAuth && slate.spec.auth.authStack.length > 0)\n ) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Session context has not been initialized'\n })\n );\n }\n\n return {\n ...basic,\n config: currentConfig.value,\n session: currentSession,\n auth: currentAuth\n };\n };\n\n let getEmptyContext = () => new SlateContext({}, {}, {}, slate.spec as any, logger);\n\n manager.onNotification('slates/hello', async ({ params }) => {\n protocol.set(params.protocol);\n });\n\n manager.onNotification('slates/participant.set', async ({ params }) => {\n if (!protocol.get()) {\n throw new ServiceError(\n preconditionFailedError({ message: 'Connection protocol has not been initialized' })\n );\n }\n\n participants.set(params.participants);\n });\n\n manager.onNotification('slates/auth.set', async ({ params }) => {\n getContextBasic();\n getAuthMethod(slate, params.authenticationMethodId); // validate method ID\n\n let valRes = validate(\n slate.spec.authSchema,\n params.output,\n 'auth',\n `Invalid authentication output for method ID: ${params.authenticationMethodId}`\n );\n\n auth.set({\n authenticationMethodId: params.authenticationMethodId,\n output: valRes\n });\n });\n\n manager.onNotification('slates/config.set', async ({ params }) => {\n getContextBasic();\n\n let value = validate(\n slate.spec.configSchema,\n params.config,\n 'config',\n 'Invalid configuration'\n );\n\n config.set({ value });\n });\n\n manager.onNotification('slates/session.start', async ({ params }) => {\n getContextBasic();\n\n session.set({\n id: params.sessionId,\n state: params.state\n });\n });\n\n manager.onRequest('slates/config.changed', async ({ params }) => {\n getContextBasic();\n\n let newConfig = validate(\n slate.spec.config.configSchema,\n params.newConfig,\n 'config',\n 'Invalid configuration'\n );\n\n let configChanged = slate.spec.config.handlers.configChanged;\n if (!configChanged) {\n return { success: true, config: newConfig };\n }\n\n let updatedConfig = await configChanged({\n previousConfig: params.previousConfig as ConfigType | null,\n newConfig\n });\n\n return { success: true, config: updatedConfig?.config ?? newConfig };\n });\n\n manager.onRequest('slates/config.get_default', async ({ params }) => {\n getContextBasic();\n\n let getDefaultConfig = slate.spec.config.handlers.getDefaultConfig;\n if (!getDefaultConfig) {\n return { config: null };\n }\n\n let defaultConfig = await getDefaultConfig();\n return { config: defaultConfig };\n });\n\n manager.onRequest('slates/config.schema.get', async ({ params }) => {\n getContextBasic();\n\n return { schema: toJsonSchema(slate.spec.configSchema) };\n });\n\n manager.onRequest('slates/provider.identify', async ({ params }) => {\n getContextBasic();\n\n return {\n protocol: 'slates@2026-01-01',\n provider: {\n type: 'provider',\n id: slate.spec.key,\n name: slate.spec.name,\n description: slate.spec.description,\n metadata: slate.spec.parameters.metadata\n }\n };\n });\n\n manager.onRequest('slates/auth.methods.list', async ({ params }) => {\n getContextBasic();\n\n return {\n authenticationMethods: slate.spec.auth.authStack.map(m => mapAuthMethod(slate, m))\n };\n });\n\n manager.onRequest('slates/auth.method.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n return {\n authenticationMethod: mapAuthMethod(slate, authMethod)\n };\n });\n\n manager.onRequest('slates/auth.input.get_default', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.getDefaultInput) {\n return { input: null };\n }\n\n return {\n input: await runWithContext(getEmptyContext(), () => authMethod.getDefaultInput!())\n };\n });\n\n manager.onRequest('slates/auth.input.changed', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.onInputChanged) {\n return { success: true, input: params.newInput };\n }\n\n let updatedInput = await runWithContext(getEmptyContext(), () =>\n authMethod.onInputChanged!({\n previousInput: params.previousInput as any | null,\n newInput: params.newInput\n })\n );\n\n return { success: true, input: updatedInput?.input ?? params.newInput };\n });\n\n manager.onRequest('slates/auth.output.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n let input = params.input;\n\n if (authMethod.inputSchema) {\n input = validate(\n authMethod.inputSchema,\n input,\n 'auth',\n `Invalid authentication input for method ID: ${params.authenticationMethodId}`\n );\n }\n\n if ('getOutput' in authMethod) {\n let outputRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getOutput({ input })\n );\n return { output: outputRes.output };\n }\n\n return { output: input as any };\n });\n\n manager.onRequest('slates/auth.authorization_callback.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleCallback' in authMethod) {\n let callbackRes = await runWithContext(getEmptyContext(), () =>\n authMethod.handleCallback({\n code: params.code,\n state: params.state,\n redirectUri: params.redirectUri,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes,\n callbackState: params.callbackState || {}\n })\n );\n\n return {\n output: callbackRes.output,\n input: callbackRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization callback handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.authorization_url.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('getAuthorizationUrl' in authMethod) {\n let urlRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getAuthorizationUrl({\n redirectUri: params.redirectUri,\n state: params.state,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n })\n );\n\n return {\n authorizationUrl: urlRes.url,\n input: urlRes.input,\n callbackState: urlRes.callbackState\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization URL retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.profile.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (authMethod.getProfile) {\n let profileRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getProfile!({\n output: params.output as any,\n input: params.input,\n scopes: params.scopes\n })\n );\n\n return {\n profile: profileRes.profile\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support profile retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.token_refresh.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {\n let refreshRes = await runWithContext(getEmptyContext(), () =>\n authMethod.handleTokenRefresh!({\n output: params.output as any,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n })\n );\n\n return {\n output: refreshRes.output,\n input: refreshRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support token refresh handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/actions.list', async ({ params }) => {\n getContextBasic();\n\n return {\n actions: slate.actions.map(a => mapAction(slate, a))\n };\n });\n\n manager.onRequest('slates/action.get', async ({ params }) => {\n getContextBasic();\n let action = getAction(slate, params.actionId);\n\n return {\n action: mapAction(slate, action)\n };\n });\n\n manager.onRequest('slates/action.tool.invoke', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'tool', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid input for tool ID: ${params.actionId}`\n );\n\n let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);\n let res = await runWithContext(context, () => action.handleInvocation(context));\n\n return { output: res.output, message: res.message };\n });\n\n manager.onRequest('slates/action.trigger.map_event', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid event for trigger ID: ${params.actionId}`\n );\n\n let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);\n let res = await runWithContext(context, () => action.handleEvent(context));\n\n return { id: res.id, type: res.type, output: res.output };\n });\n\n manager.onRequest('slates/action.trigger.poll_events', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.pollEvents) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support polling: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n { state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.pollEvents!(context));\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_handle', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.handleRequest) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook requests: ${params.actionId}`\n })\n );\n }\n\n let req = new Request(params.url, {\n method: params.method,\n headers: params.headers,\n body: params.body\n ? Uint8Array.from(atob(params.body.content), c => c.charCodeAt(0))\n : null\n });\n\n let context = new SlateContext(\n ctx.config,\n { request: req, state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.handleRequest!(context));\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_register', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoRegisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-registration: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n { webhookBaseUrl: params.webhookBaseUrl },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.autoRegisterWebhook!(context));\n\n return { registrationDetails: res.registrationDetails, state: res.state };\n });\n\n manager.onRequest('slates/action.trigger.webhook_unregister', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoUnregisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-unregistration: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n {\n webhookBaseUrl: params.webhookBaseUrl,\n registrationDetails: params.registrationDetails,\n state: params.state\n },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n await runWithContext(context, () => action.autoUnregisterWebhook!(context));\n\n return {};\n });\n });\n"],"names":["validate","schema","data","entity","message","result","safeParse","success","ServiceError","e","validationError","errors","issues","map","i","_extends","path","p","String","zodToValidationError","error","toJsonSchema","toJSONSchema","unrepresentable","override","ctx","def","zodSchema","_zod","type","jsonSchema","format","getAuthMethod","slate","authenticationMethodId","authMethod","spec","auth","authStack","find","m","key","badRequestError","mapAuthMethod","_m$inputSchema","id","name","scopes","s","scope","title","description","undefined","inputSchema","z","object","outputSchema","capabilities","getDefaultInput","enabled","handleTokenRefresh","handleChangedInput","onInputChanged","getProfile","getAction","actionId","action","actions","notFoundError","getActionWithType","mapAction","a","_a$polling$intervalIn","instructions","constraints","tags","metadata","invocation","source","intervalSeconds","polling","intervalInSeconds","SlateDefaultPollingIntervalSeconds","autoRegistration","autoRegisterWebhook","autoUnregistration","autoUnregisterWebhook","State","initialValue","Object","defineProperty","_value","writable","value","_classPrivateFieldLooseBase","_proto","prototype","_createClass","get","this","set","createProviderHandler","listeners","createSlatesProviderProtoHandler","manager","protocol","participants","config","session","logger","SlateLogger","getContextBasic","currentProtocol","currentParticipants","preconditionFailedError","getContextFull","basic","currentConfig","currentSession","currentAuth","length","getEmptyContext","SlateContext","onNotification","_ref","params","Promise","resolve","reject","_ref2","_ref3","valRes","authSchema","output","_ref4","configSchema","_ref5","sessionId","state","onRequest","_ref6","newConfig","configChanged","handlers","previousConfig","then","updatedConfig","_updatedConfig$config","_ref7","getDefaultConfig","defaultConfig","_ref8","_ref9","provider","parameters","_ref0","authenticationMethods","_ref1","authenticationMethod","_ref10","runWithContext","_runWithContext","input","_ref11","previousInput","newInput","updatedInput","_updatedInput$input","_ref12","_temp2","_exit","_result","_temp","getOutput","outputRes","_ref13","_exit2","_temp4","_result2","_temp3","handleCallback","code","redirectUri","clientId","clientSecret","callbackState","callbackRes","_output$input","_ref14","_temp6","_exit3","_result3","_temp5","getAuthorizationUrl","urlRes","authorizationUrl","url","_ref15","_exit4","_temp8","_result4","_temp7","profileRes","profile","_ref16","_exit5","_temp0","_result5","_temp9","refreshRes","_ref17","_ref18","_ref19","_ctx$auth","context","handleInvocation","res","_ref20","_ctx$auth2","handleEvent","_ref21","_ctx$auth3","pollEvents","inputs","updatedState","_ref22","_ctx$auth4","handleRequest","req","Request","method","headers","body","Uint8Array","from","atob","content","c","charCodeAt","request","_ref23","_ctx$auth5","webhookBaseUrl","registrationDetails","_ref24","_ctx$auth6"],"mappings":"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"}
package/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@lowerdeck/error"),require("@slates/proto"),require("@slates/provider"),require("zod")):"function"==typeof define&&define.amd?define(["exports","@lowerdeck/error","@slates/proto","@slates/provider","zod"],t):t((e||self).providerHandler={},e.error,e.proto,e.provider,e.zod)}(this,function(e,t,r,n,o){function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=/*#__PURE__*/i(o);function u(e,t){if(!{}.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}var s=0;function c(e){return"__private_"+s+++"_"+e}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(null,arguments)}function p(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var h=function(e,r,n,o){var i=e.safeParse(r);if(!i.success)throw new t.ServiceError(function(e,r,n){return t.validationError({message:r,entity:e,errors:n.issues.map(function(e){return l({},e,{path:e.path.map(function(e){return String(e)})})})})}(n,o,i.error));return i.data},d=function(e){return e.toJSONSchema({unrepresentable:"any",override:function(e){var t=e.zodSchema._zod.def;"date"===t.type&&(e.jsonSchema.type="string",e.jsonSchema.format="date-time"),"bigint"===t.type&&(e.jsonSchema.type="number")}})},f=function(e,r){var n=e.spec.auth.authStack.find(function(e){return e.key==r});if(!n)throw new t.ServiceError(t.badRequestError({message:"Invalid authentication method ID: "+r}));return n},v=function(e,t){var r;return{id:t.key,name:t.name,type:t.type,scopes:"scopes"in t?t.scopes.map(function(e){return{id:e.scope,title:e.title,description:e.description}}):void 0,inputSchema:d(null!=(r=t.inputSchema)?r:a.default.object({})),outputSchema:d(e.spec.auth.outputSchema),capabilities:{getDefaultInput:{enabled:!(!("getDefaultInput"in t)||!t.getDefaultInput)},handleTokenRefresh:{enabled:!(!("handleTokenRefresh"in t)||!t.handleTokenRefresh)},handleChangedInput:{enabled:!!t.onInputChanged},getProfile:{enabled:!!t.getProfile}}}},m=function(e,r){var n=e.actions.find(function(e){return e.key==r});if(!n)throw new t.ServiceError(t.notFoundError("action",r));return n},g=function(e,r,n){var o=m(e,n);if(o.type!=r)throw new t.ServiceError(t.badRequestError({message:"Action with ID "+n+" is not of type "+r}));return o},P=function(e,t){var r;return l({},{id:t.key,name:t.name,description:t.description,instructions:t.instructions,constraints:t.constraints,tags:t.tags,metadata:t.metadata,inputSchema:d(t.inputSchema),outputSchema:d(t.outputSchema)},"tool"==t.type?{type:"action.tool",capabilities:{}}:{type:"action.trigger",capabilities:{},invocation:"polling"==t.source?{type:"polling",intervalSeconds:null!=(r=t.polling.intervalInSeconds)?r:n.SlateDefaultPollingIntervalSeconds}:{type:"webhook",autoRegistration:!!t.autoRegisterWebhook,autoUnregistration:!!t.autoUnregisterWebhook}})},y=/*#__PURE__*/c("value"),w=/*#__PURE__*/function(){function e(e){Object.defineProperty(this,y,{writable:!0,value:void 0}),u(this,y)[y]=e}var t,r,n=e.prototype;return n.get=function(){return u(this,y)[y]},n.set=function(e){u(this,y)[y]=e},t=e,(r=[{key:"value",get:function(){return u(this,y)[y]}}])&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,p(n.key),n)}}(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),t}();e.createProviderHandler=function(e,o){return r.createSlatesProviderProtoHandler(function(r){try{var i=new w(null),a=new w(null),u=new w(null),s=new w(null),c=new w(null),p=new n.SlateLogger(o),y=function(){var e=i.get(),r=a.get();if(!e||!r)throw new t.ServiceError(t.preconditionFailedError({message:"Connection context has not been initialized"}));return{protocol:e,participants:r}},I=function(){var r=y(),n=s.get(),o=c.get(),i=u.get();if(!n||!o||!i&&e.spec.auth.authStack.length>0)throw new t.ServiceError(t.preconditionFailedError({message:"Session context has not been initialized"}));return l({},r,{config:n.value,session:o,auth:i})};return r.onNotification("slates/hello",function(e){var t=e.params;try{return i.set(t.protocol),Promise.resolve()}catch(e){return Promise.reject(e)}}),r.onNotification("slates/participant.set",function(e){var r=e.params;try{if(!i.get())throw new t.ServiceError(t.preconditionFailedError({message:"Connection protocol has not been initialized"}));return a.set(r.participants),Promise.resolve()}catch(e){return Promise.reject(e)}}),r.onNotification("slates/auth.set",function(t){var r=t.params;try{y(),f(e,r.authenticationMethodId);var n=h(e.spec.authSchema,r.output,"auth","Invalid authentication output for method ID: "+r.authenticationMethodId);return u.set({authenticationMethodId:r.authenticationMethodId,output:n}),Promise.resolve()}catch(e){return Promise.reject(e)}}),r.onNotification("slates/config.set",function(t){var r=t.params;try{y();var n=h(e.spec.configSchema,r.config,"config","Invalid configuration");return s.set({value:n}),Promise.resolve()}catch(e){return Promise.reject(e)}}),r.onNotification("slates/session.start",function(e){var t=e.params;try{return y(),c.set({id:t.sessionId,state:t.state}),Promise.resolve()}catch(e){return Promise.reject(e)}}),r.onRequest("slates/config.changed",function(t){var r=t.params;try{y();var n=h(e.spec.config.configSchema,r.newConfig,"config","Invalid configuration"),o=e.spec.config.handlers.configChanged;return o?Promise.resolve(o({previousConfig:r.previousConfig,newConfig:n})).then(function(e){var t;return{success:!0,config:null!=(t=null==e?void 0:e.config)?t:n}}):Promise.resolve({success:!0,config:n})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/config.get_default",function(t){try{y();var r=e.spec.config.handlers.getDefaultConfig;return r?Promise.resolve(r()).then(function(e){return{config:e}}):Promise.resolve({config:null})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/config.schema.get",function(t){try{return y(),Promise.resolve({schema:d(e.spec.configSchema)})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/provider.identify",function(t){try{return y(),Promise.resolve({protocol:"slates@2026-01-01",provider:{type:"provider",id:e.spec.key,name:e.spec.name,description:e.spec.description,metadata:e.spec.parameters.metadata}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.methods.list",function(t){try{return y(),Promise.resolve({authenticationMethods:e.spec.auth.authStack.map(function(t){return v(e,t)})})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.method.get",function(t){var r=t.params;try{y();var n=f(e,r.authenticationMethodId);return Promise.resolve({authenticationMethod:v(e,n)})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.input.get_default",function(t){var r=t.params;try{y();var n=f(e,r.authenticationMethodId);return n.getDefaultInput?Promise.resolve(n.getDefaultInput()).then(function(e){return{input:e}}):Promise.resolve({input:null})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.input.changed",function(t){var r=t.params;try{y();var n=f(e,r.authenticationMethodId);return n.onInputChanged?Promise.resolve(n.onInputChanged({previousInput:r.previousInput,newInput:r.newInput})).then(function(e){var t;return{success:!0,input:null!=(t=null==e?void 0:e.input)?t:r.newInput}}):Promise.resolve({success:!0,input:r.newInput})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.output.get",function(t){var r=t.params;try{var n,o=function(e){return n?e:{output:a}};y();var i=f(e,r.authenticationMethodId),a=r.input;i.inputSchema&&(a=h(i.inputSchema,a,"auth","Invalid authentication input for method ID: "+r.authenticationMethodId));var u=function(){if("getOutput"in i)return Promise.resolve(i.getOutput({input:a})).then(function(e){return n=1,{output:e.output}})}();return Promise.resolve(u&&u.then?u.then(o):o(u))}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.authorization_callback.handle",function(r){var n=r.params;try{var o,i=function(e){if(o)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support authorization callback handling: "+n.authenticationMethodId}))};y();var a=f(e,n.authenticationMethodId),u=function(){if("handleCallback"in a)return Promise.resolve(a.handleCallback({code:n.code,state:n.state,redirectUri:n.redirectUri,input:n.input,clientId:n.clientId,clientSecret:n.clientSecret,scopes:n.scopes})).then(function(e){return o=1,{output:e.output,input:e.input}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.authorization_url.get",function(r){var n=r.params;try{var o,i=function(e){if(o)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support authorization URL retrieval: "+n.authenticationMethodId}))};y();var a=f(e,n.authenticationMethodId),u=function(){if("getAuthorizationUrl"in a)return Promise.resolve(a.getAuthorizationUrl({redirectUri:n.redirectUri,state:n.state,input:n.input,clientId:n.clientId,clientSecret:n.clientSecret,scopes:n.scopes})).then(function(e){return o=1,{authorizationUrl:e.url,input:e.input}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.profile.get",function(r){var n=r.params;try{var o,i=function(e){if(o)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support profile retrieval: "+n.authenticationMethodId}))};y();var a=f(e,n.authenticationMethodId),u=function(){if(a.getProfile)return Promise.resolve(a.getProfile({output:n.output,input:n.input,scopes:n.scopes})).then(function(e){return o=1,{profile:e.profile}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),r.onRequest("slates/auth.token_refresh.handle",function(r){var n=r.params;try{var o,i=function(e){if(o)return e;throw new t.ServiceError(t.preconditionFailedError({message:"Authentication method does not support token refresh handling: "+n.authenticationMethodId}))};y();var a=f(e,n.authenticationMethodId),u=function(){if("handleTokenRefresh"in a&&a.handleTokenRefresh)return Promise.resolve(a.handleTokenRefresh({output:n.output,input:n.input,clientId:n.clientId,clientSecret:n.clientSecret,scopes:n.scopes})).then(function(e){return o=1,{output:e.output,input:e.input}})}();return Promise.resolve(u&&u.then?u.then(i):i(u))}catch(e){return Promise.reject(e)}}),r.onRequest("slates/actions.list",function(t){try{return y(),Promise.resolve({actions:e.actions.map(function(e){return P(0,e)})})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.get",function(t){var r=t.params;try{y();var n=m(e,r.actionId);return Promise.resolve({action:P(0,n)})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.tool.invoke",function(t){var r=t.params;try{var o,i=I(),a=g(e,"tool",r.actionId),u=h(a.inputSchema,r.input,"input","Invalid input for tool ID: "+r.actionId);return Promise.resolve(a.handleInvocation(new n.SlateContext(i.config,u,null==(o=i.auth)?void 0:o.output,e.spec,p))).then(function(e){return{output:e.output,message:e.message}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.trigger.map_event",function(t){var r=t.params;try{var o,i=I(),a=g(e,"trigger",r.actionId),u=h(a.inputSchema,r.input,"input","Invalid event for trigger ID: "+r.actionId);return Promise.resolve(a.handleEvent(new n.SlateContext(i.config,u,null==(o=i.auth)?void 0:o.output,e.spec,p))).then(function(e){return{id:e.id,type:e.type,output:e.output}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.trigger.poll_events",function(r){var o=r.params;try{var i,a=I(),u=g(e,"trigger",o.actionId);if(!u.pollEvents)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support polling: "+o.actionId}));return Promise.resolve(u.pollEvents(new n.SlateContext(a.config,{state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,p))).then(function(e){return{inputs:e.inputs,updatedState:e.updatedState}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.trigger.webhook_handle",function(r){var o=r.params;try{var i,a=I(),u=g(e,"trigger",o.actionId);if(!u.handleRequest)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support webhook requests: "+o.actionId}));var s=new Request(o.url,{method:o.method,headers:o.headers,body:o.body?Uint8Array.from(atob(o.body.content),function(e){return e.charCodeAt(0)}):null});return Promise.resolve(u.handleRequest(new n.SlateContext(a.config,{request:s,state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,p))).then(function(e){return{inputs:e.inputs,updatedState:e.updatedState}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.trigger.webhook_register",function(r){var o=r.params;try{var i,a=I(),u=g(e,"trigger",o.actionId);if(!u.autoRegisterWebhook)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support webhook auto-registration: "+o.actionId}));return Promise.resolve(u.autoRegisterWebhook(new n.SlateContext(a.config,{webhookBaseUrl:o.webhookBaseUrl},null==(i=a.auth)?void 0:i.output,e.spec,p))).then(function(e){return{registrationDetails:e.registrationDetails,state:e.state}})}catch(e){return Promise.reject(e)}}),r.onRequest("slates/action.trigger.webhook_unregister",function(r){var o=r.params;try{var i,a=I(),u=g(e,"trigger",o.actionId);if(!u.autoUnregisterWebhook)throw new t.ServiceError(t.badRequestError({message:"Trigger action does not support webhook auto-unregistration: "+o.actionId}));return Promise.resolve(u.autoUnregisterWebhook(new n.SlateContext(a.config,{webhookBaseUrl:o.webhookBaseUrl,registrationDetails:o.registrationDetails,state:o.state},null==(i=a.auth)?void 0:i.output,e.spec,p))).then(function(){return{}})}catch(e){return Promise.reject(e)}}),Promise.resolve()}catch(e){return Promise.reject(e)}})}});
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@lowerdeck/error"),require("@slates/proto"),require("@slates/provider"),require("zod")):"function"==typeof define&&define.amd?define(["exports","@lowerdeck/error","@slates/proto","@slates/provider","zod"],e):e((t||self).providerHandler={},t.error,t.proto,t.provider,t.zod)}(this,function(t,e,r,n,o){function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a=/*#__PURE__*/i(o);function u(t,e){if(!{}.hasOwnProperty.call(t,e))throw new TypeError("attempted to use private field on non-instance");return t}var s=0;function c(t){return"__private_"+s+++"_"+t}function l(){return l=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},l.apply(null,arguments)}function h(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}var p=function(t,r,n,o){var i=t.safeParse(r);if(!i.success)throw new e.ServiceError(function(t,r,n){return e.validationError({message:r,entity:t,errors:n.issues.map(function(t){return l({},t,{path:t.path.map(function(t){return String(t)})})})})}(n,o,i.error));return i.data},d=function(t){return t.toJSONSchema({unrepresentable:"any",override:function(t){var e=t.zodSchema._zod.def;"date"===e.type&&(t.jsonSchema.type="string",t.jsonSchema.format="date-time"),"bigint"===e.type&&(t.jsonSchema.type="number")}})},f=function(t,r){var n=t.spec.auth.authStack.find(function(t){return t.key==r});if(!n)throw new e.ServiceError(e.badRequestError({message:"Invalid authentication method ID: "+r}));return n},v=function(t,e){var r;return{id:e.key,name:e.name,type:e.type,scopes:"scopes"in e?e.scopes.map(function(t){return{id:t.scope,title:t.title,description:t.description}}):void 0,inputSchema:d(null!=(r=e.inputSchema)?r:a.default.object({})),outputSchema:d(t.spec.auth.outputSchema),capabilities:{getDefaultInput:{enabled:!(!("getDefaultInput"in e)||!e.getDefaultInput)},handleTokenRefresh:{enabled:!(!("handleTokenRefresh"in e)||!e.handleTokenRefresh)},handleChangedInput:{enabled:!!e.onInputChanged},getProfile:{enabled:!!e.getProfile}}}},m=function(t,r){var n=t.actions.find(function(t){return t.key==r});if(!n)throw new e.ServiceError(e.notFoundError("action",r));return n},g=function(t,r,n){var o=m(t,n);if(o.type!=r)throw new e.ServiceError(e.badRequestError({message:"Action with ID "+n+" is not of type "+r}));return o},P=function(t,e){var r;return l({},{id:e.key,name:e.name,description:e.description,instructions:e.instructions,constraints:e.constraints,tags:e.tags,metadata:e.metadata,inputSchema:d(e.inputSchema),outputSchema:d(e.outputSchema)},"tool"==e.type?{type:"action.tool",capabilities:{}}:{type:"action.trigger",capabilities:{},invocation:"polling"==e.source?{type:"polling",intervalSeconds:null!=(r=e.polling.intervalInSeconds)?r:n.SlateDefaultPollingIntervalSeconds}:{type:"webhook",autoRegistration:!!e.autoRegisterWebhook,autoUnregistration:!!e.autoUnregisterWebhook}})},y=/*#__PURE__*/c("value"),w=/*#__PURE__*/function(){function t(t){Object.defineProperty(this,y,{writable:!0,value:void 0}),u(this,y)[y]=t}var e,r,n=t.prototype;return n.get=function(){return u(this,y)[y]},n.set=function(t){u(this,y)[y]=t},e=t,(r=[{key:"value",get:function(){return u(this,y)[y]}}])&&function(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,h(n.key),n)}}(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),e}();t.createProviderHandler=function(t,o){return r.createSlatesProviderProtoHandler(function(r){try{var i=new w(null),a=new w(null),u=new w(null),s=new w(null),c=new w(null),h=new n.SlateLogger(o),y=function(){var t=i.get(),r=a.get();if(!t||!r)throw new e.ServiceError(e.preconditionFailedError({message:"Connection context has not been initialized"}));return{protocol:t,participants:r}},S=function(){var r=y(),n=s.get(),o=c.get(),i=u.get();if(!n||!o||!i&&t.spec.auth.authStack.length>0)throw new e.ServiceError(e.preconditionFailedError({message:"Session context has not been initialized"}));return l({},r,{config:n.value,session:o,auth:i})},b=function(){return new n.SlateContext({},{},{},t.spec,h)};return r.onNotification("slates/hello",function(t){var e=t.params;try{return i.set(e.protocol),Promise.resolve()}catch(t){return Promise.reject(t)}}),r.onNotification("slates/participant.set",function(t){var r=t.params;try{if(!i.get())throw new e.ServiceError(e.preconditionFailedError({message:"Connection protocol has not been initialized"}));return a.set(r.participants),Promise.resolve()}catch(t){return Promise.reject(t)}}),r.onNotification("slates/auth.set",function(e){var r=e.params;try{y(),f(t,r.authenticationMethodId);var n=p(t.spec.authSchema,r.output,"auth","Invalid authentication output for method ID: "+r.authenticationMethodId);return u.set({authenticationMethodId:r.authenticationMethodId,output:n}),Promise.resolve()}catch(t){return Promise.reject(t)}}),r.onNotification("slates/config.set",function(e){var r=e.params;try{y();var n=p(t.spec.configSchema,r.config,"config","Invalid configuration");return s.set({value:n}),Promise.resolve()}catch(t){return Promise.reject(t)}}),r.onNotification("slates/session.start",function(t){var e=t.params;try{return y(),c.set({id:e.sessionId,state:e.state}),Promise.resolve()}catch(t){return Promise.reject(t)}}),r.onRequest("slates/config.changed",function(e){var r=e.params;try{y();var n=p(t.spec.config.configSchema,r.newConfig,"config","Invalid configuration"),o=t.spec.config.handlers.configChanged;return o?Promise.resolve(o({previousConfig:r.previousConfig,newConfig:n})).then(function(t){var e;return{success:!0,config:null!=(e=null==t?void 0:t.config)?e:n}}):Promise.resolve({success:!0,config:n})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/config.get_default",function(e){try{y();var r=t.spec.config.handlers.getDefaultConfig;return r?Promise.resolve(r()).then(function(t){return{config:t}}):Promise.resolve({config:null})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/config.schema.get",function(e){try{return y(),Promise.resolve({schema:d(t.spec.configSchema)})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/provider.identify",function(e){try{return y(),Promise.resolve({protocol:"slates@2026-01-01",provider:{type:"provider",id:t.spec.key,name:t.spec.name,description:t.spec.description,metadata:t.spec.parameters.metadata}})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/auth.methods.list",function(e){try{return y(),Promise.resolve({authenticationMethods:t.spec.auth.authStack.map(function(e){return v(t,e)})})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/auth.method.get",function(e){var r=e.params;try{y();var n=f(t,r.authenticationMethodId);return Promise.resolve({authenticationMethod:v(t,n)})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/auth.input.get_default",function(e){var r=e.params;try{y();var o=f(t,r.authenticationMethodId);return o.getDefaultInput?Promise.resolve(n.runWithContext(b(),function(){return o.getDefaultInput()})).then(function(t){return{input:t}}):Promise.resolve({input:null})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/auth.input.changed",function(e){var r=e.params;try{y();var o=f(t,r.authenticationMethodId);return o.onInputChanged?Promise.resolve(n.runWithContext(b(),function(){return o.onInputChanged({previousInput:r.previousInput,newInput:r.newInput})})).then(function(t){var e;return{success:!0,input:null!=(e=null==t?void 0:t.input)?e:r.newInput}}):Promise.resolve({success:!0,input:r.newInput})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/auth.output.get",function(e){var r=e.params;try{var o,i=function(t){return o?t:{output:u}};y();var a=f(t,r.authenticationMethodId),u=r.input;a.inputSchema&&(u=p(a.inputSchema,u,"auth","Invalid authentication input for method ID: "+r.authenticationMethodId));var s=function(){if("getOutput"in a)return Promise.resolve(n.runWithContext(b(),function(){return a.getOutput({input:u})})).then(function(t){return o=1,{output:t.output}})}();return Promise.resolve(s&&s.then?s.then(i):i(s))}catch(t){return Promise.reject(t)}}),r.onRequest("slates/auth.authorization_callback.handle",function(r){var o=r.params;try{var i,a=function(t){if(i)return t;throw new e.ServiceError(e.preconditionFailedError({message:"Authentication method does not support authorization callback handling: "+o.authenticationMethodId}))};y();var u=f(t,o.authenticationMethodId),s=function(){if("handleCallback"in u)return Promise.resolve(n.runWithContext(b(),function(){return u.handleCallback({code:o.code,state:o.state,redirectUri:o.redirectUri,input:o.input,clientId:o.clientId,clientSecret:o.clientSecret,scopes:o.scopes,callbackState:o.callbackState||{}})})).then(function(t){return i=1,{output:t.output,input:t.input}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),r.onRequest("slates/auth.authorization_url.get",function(r){var o=r.params;try{var i,a=function(t){if(i)return t;throw new e.ServiceError(e.preconditionFailedError({message:"Authentication method does not support authorization URL retrieval: "+o.authenticationMethodId}))};y();var u=f(t,o.authenticationMethodId),s=function(){if("getAuthorizationUrl"in u)return Promise.resolve(n.runWithContext(b(),function(){return u.getAuthorizationUrl({redirectUri:o.redirectUri,state:o.state,input:o.input,clientId:o.clientId,clientSecret:o.clientSecret,scopes:o.scopes})})).then(function(t){return i=1,{authorizationUrl:t.url,input:t.input,callbackState:t.callbackState}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),r.onRequest("slates/auth.profile.get",function(r){var o=r.params;try{var i,a=function(t){if(i)return t;throw new e.ServiceError(e.preconditionFailedError({message:"Authentication method does not support profile retrieval: "+o.authenticationMethodId}))};y();var u=f(t,o.authenticationMethodId),s=function(){if(u.getProfile)return Promise.resolve(n.runWithContext(b(),function(){return u.getProfile({output:o.output,input:o.input,scopes:o.scopes})})).then(function(t){return i=1,{profile:t.profile}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),r.onRequest("slates/auth.token_refresh.handle",function(r){var o=r.params;try{var i,a=function(t){if(i)return t;throw new e.ServiceError(e.preconditionFailedError({message:"Authentication method does not support token refresh handling: "+o.authenticationMethodId}))};y();var u=f(t,o.authenticationMethodId),s=function(){if("handleTokenRefresh"in u&&u.handleTokenRefresh)return Promise.resolve(n.runWithContext(b(),function(){return u.handleTokenRefresh({output:o.output,input:o.input,clientId:o.clientId,clientSecret:o.clientSecret,scopes:o.scopes})})).then(function(t){return i=1,{output:t.output,input:t.input}})}();return Promise.resolve(s&&s.then?s.then(a):a(s))}catch(t){return Promise.reject(t)}}),r.onRequest("slates/actions.list",function(e){try{return y(),Promise.resolve({actions:t.actions.map(function(t){return P(0,t)})})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/action.get",function(e){var r=e.params;try{y();var n=m(t,r.actionId);return Promise.resolve({action:P(0,n)})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/action.tool.invoke",function(e){var r=e.params;try{var o,i=S(),a=g(t,"tool",r.actionId),u=p(a.inputSchema,r.input,"input","Invalid input for tool ID: "+r.actionId),s=new n.SlateContext(i.config,u,null==(o=i.auth)?void 0:o.output,t.spec,h);return Promise.resolve(n.runWithContext(s,function(){return a.handleInvocation(s)})).then(function(t){return{output:t.output,message:t.message}})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/action.trigger.map_event",function(e){var r=e.params;try{var o,i=S(),a=g(t,"trigger",r.actionId),u=p(a.inputSchema,r.input,"input","Invalid event for trigger ID: "+r.actionId),s=new n.SlateContext(i.config,u,null==(o=i.auth)?void 0:o.output,t.spec,h);return Promise.resolve(n.runWithContext(s,function(){return a.handleEvent(s)})).then(function(t){return{id:t.id,type:t.type,output:t.output}})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/action.trigger.poll_events",function(r){var o=r.params;try{var i,a=S(),u=g(t,"trigger",o.actionId);if(!u.pollEvents)throw new e.ServiceError(e.badRequestError({message:"Trigger action does not support polling: "+o.actionId}));var s=new n.SlateContext(a.config,{state:o.state},null==(i=a.auth)?void 0:i.output,t.spec,h);return Promise.resolve(n.runWithContext(s,function(){return u.pollEvents(s)})).then(function(t){return{inputs:t.inputs,updatedState:t.updatedState}})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/action.trigger.webhook_handle",function(r){var o=r.params;try{var i,a=S(),u=g(t,"trigger",o.actionId);if(!u.handleRequest)throw new e.ServiceError(e.badRequestError({message:"Trigger action does not support webhook requests: "+o.actionId}));var s=new Request(o.url,{method:o.method,headers:o.headers,body:o.body?Uint8Array.from(atob(o.body.content),function(t){return t.charCodeAt(0)}):null}),c=new n.SlateContext(a.config,{request:s,state:o.state},null==(i=a.auth)?void 0:i.output,t.spec,h);return Promise.resolve(n.runWithContext(c,function(){return u.handleRequest(c)})).then(function(t){return{inputs:t.inputs,updatedState:t.updatedState}})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/action.trigger.webhook_register",function(r){var o=r.params;try{var i,a=S(),u=g(t,"trigger",o.actionId);if(!u.autoRegisterWebhook)throw new e.ServiceError(e.badRequestError({message:"Trigger action does not support webhook auto-registration: "+o.actionId}));var s=new n.SlateContext(a.config,{webhookBaseUrl:o.webhookBaseUrl},null==(i=a.auth)?void 0:i.output,t.spec,h);return Promise.resolve(n.runWithContext(s,function(){return u.autoRegisterWebhook(s)})).then(function(t){return{registrationDetails:t.registrationDetails,state:t.state}})}catch(t){return Promise.reject(t)}}),r.onRequest("slates/action.trigger.webhook_unregister",function(r){var o=r.params;try{var i,a=S(),u=g(t,"trigger",o.actionId);if(!u.autoUnregisterWebhook)throw new e.ServiceError(e.badRequestError({message:"Trigger action does not support webhook auto-unregistration: "+o.actionId}));var s=new n.SlateContext(a.config,{webhookBaseUrl:o.webhookBaseUrl,registrationDetails:o.registrationDetails,state:o.state},null==(i=a.auth)?void 0:i.output,t.spec,h);return Promise.resolve(n.runWithContext(s,function(){return u.autoUnregisterWebhook(s)})).then(function(){return{}})}catch(t){return Promise.reject(t)}}),Promise.resolve()}catch(t){return Promise.reject(t)}})}});
2
2
  //# sourceMappingURL=index.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/validation.ts","../src/spec.ts","../src/state.ts","../src/index.ts"],"sourcesContent":["import { ServiceError, validationError } from '@lowerdeck/error';\nimport z from 'zod';\n\nexport let zodToValidationError = (entity: string, message: string, e: z.ZodError) => {\n return validationError({\n message,\n entity,\n errors: e.issues.map(i => ({\n ...i,\n path: i.path.map(p => String(p))\n }))\n });\n};\n\nexport let validate = <T>(\n schema: z.ZodType<T>,\n data: unknown,\n entity: string,\n message: string\n): T => {\n let result = schema.safeParse(data);\n if (!result.success) {\n throw new ServiceError(zodToValidationError(entity, message, result.error));\n }\n\n return result.data;\n};\n\nexport let toJsonSchema = (schema: z.ZodType<any>) =>\n schema.toJSONSchema({\n unrepresentable: 'any',\n override: ctx => {\n let def = ctx.zodSchema._zod.def;\n\n if (def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n if (def.type === 'bigint') {\n ctx.jsonSchema.type = 'number';\n }\n }\n });\n","import { badRequestError, notFoundError, ServiceError } from '@lowerdeck/error';\nimport { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';\nimport { Slate, SlateDefaultPollingIntervalSeconds } from '@slates/provider';\nimport z from 'zod';\nimport { toJsonSchema } from './validation';\n\nexport let getAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n authenticationMethodId: string\n) => {\n let authMethod = slate.spec.auth.authStack.find(m => m.key == authenticationMethodId);\n if (!authMethod) {\n throw new ServiceError(\n badRequestError({\n message: `Invalid authentication method ID: ${authenticationMethodId}`\n })\n );\n }\n\n return authMethod;\n};\n\nexport let mapAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>\n): SlateAuthenticationMethod => ({\n id: m.key,\n name: m.name,\n type: m.type,\n\n scopes:\n 'scopes' in m\n ? m.scopes.map(s => ({\n id: s.scope,\n title: s.title,\n description: s.description\n }))\n : undefined,\n\n inputSchema: toJsonSchema(m.inputSchema ?? z.object({})),\n outputSchema: toJsonSchema(slate.spec.auth.outputSchema),\n\n capabilities: {\n getDefaultInput: { enabled: !!('getDefaultInput' in m && m.getDefaultInput) },\n handleTokenRefresh: {\n enabled: !!('handleTokenRefresh' in m && m.handleTokenRefresh)\n },\n handleChangedInput: {\n enabled: !!m.onInputChanged\n },\n getProfile: { enabled: !!m.getProfile }\n }\n});\n\nexport let getAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n actionId: string\n) => {\n let action = slate.actions.find(m => m.key == actionId);\n if (!action) {\n throw new ServiceError(notFoundError(`action`, actionId));\n }\n\n return action;\n};\n\nexport let getActionWithType = <\n Type extends 'tool' | 'trigger',\n ConfigType extends {},\n AuthType extends {}\n>(\n slate: Slate<ConfigType, AuthType>,\n type: Type,\n actionId: string\n): ReturnType<typeof getAction<ConfigType, AuthType>> & { type: Type } => {\n let action = getAction(slate, actionId);\n if (action.type != type) {\n throw new ServiceError(\n badRequestError({\n message: `Action with ID ${actionId} is not of type ${type}`\n })\n );\n }\n\n return action as any;\n};\n\nexport let mapAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n a: ReturnType<typeof getAction<ConfigType, AuthType>>\n): SlatesAction => {\n let base = {\n id: a.key,\n name: a.name,\n description: a.description,\n instructions: a.instructions,\n constraints: a.constraints,\n tags: a.tags,\n metadata: a.metadata,\n\n inputSchema: toJsonSchema(a.inputSchema),\n outputSchema: toJsonSchema(a.outputSchema)\n };\n\n if (a.type == 'tool') {\n return {\n ...base,\n type: 'action.tool',\n capabilities: {}\n };\n }\n\n return {\n ...base,\n type: 'action.trigger',\n capabilities: {},\n\n invocation:\n a.source == 'polling'\n ? {\n type: 'polling',\n intervalSeconds: a.polling.intervalInSeconds ?? SlateDefaultPollingIntervalSeconds\n }\n : {\n type: 'webhook',\n autoRegistration: !!a.autoRegisterWebhook,\n autoUnregistration: !!a.autoUnregisterWebhook\n }\n };\n};\n","export class State<T> {\n #value: T;\n\n get value() {\n return this.#value;\n }\n\n get() {\n return this.#value;\n }\n\n set(value: T) {\n this.#value = value;\n }\n\n constructor(initialValue: T) {\n this.#value = initialValue;\n }\n}\n","import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';\nimport { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';\nimport { Slate, SlateContext, SlateLogger, SlateLogListener } from '@slates/provider';\nimport { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';\nimport { State } from './state';\nimport { toJsonSchema, validate } from './validation';\n\nexport let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n listeners: SlateLogListener[]\n) =>\n createSlatesProviderProtoHandler(async manager => {\n let protocol = new State<string | null>(null);\n let participants = new State<SlatesParticipant[] | null>(null);\n\n let auth = new State<{ authenticationMethodId: string; output: AuthType } | null>(null);\n let config = new State<{ value: ConfigType } | null>(null);\n\n let session = new State<{ id: string; state: any } | null>(null);\n\n let logger = new SlateLogger(listeners);\n\n let getContextBasic = () => {\n let currentProtocol = protocol.get();\n let currentParticipants = participants.get();\n\n if (!currentProtocol || !currentParticipants) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Connection context has not been initialized'\n })\n );\n }\n\n return {\n protocol: currentProtocol,\n participants: currentParticipants\n };\n };\n\n let getContextFull = () => {\n let basic = getContextBasic();\n\n let currentConfig = config.get();\n let currentSession = session.get();\n let currentAuth = auth.get();\n\n if (\n !currentConfig ||\n !currentSession ||\n (!currentAuth && slate.spec.auth.authStack.length > 0)\n ) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Session context has not been initialized'\n })\n );\n }\n\n return {\n ...basic,\n config: currentConfig.value,\n session: currentSession,\n auth: currentAuth\n };\n };\n\n manager.onNotification('slates/hello', async ({ params }) => {\n protocol.set(params.protocol);\n });\n\n manager.onNotification('slates/participant.set', async ({ params }) => {\n if (!protocol.get()) {\n throw new ServiceError(\n preconditionFailedError({ message: 'Connection protocol has not been initialized' })\n );\n }\n\n participants.set(params.participants);\n });\n\n manager.onNotification('slates/auth.set', async ({ params }) => {\n getContextBasic();\n getAuthMethod(slate, params.authenticationMethodId); // validate method ID\n\n let valRes = validate(\n slate.spec.authSchema,\n params.output,\n 'auth',\n `Invalid authentication output for method ID: ${params.authenticationMethodId}`\n );\n\n auth.set({\n authenticationMethodId: params.authenticationMethodId,\n output: valRes\n });\n });\n\n manager.onNotification('slates/config.set', async ({ params }) => {\n getContextBasic();\n\n let value = validate(\n slate.spec.configSchema,\n params.config,\n 'config',\n 'Invalid configuration'\n );\n\n config.set({ value });\n });\n\n manager.onNotification('slates/session.start', async ({ params }) => {\n getContextBasic();\n\n session.set({\n id: params.sessionId,\n state: params.state\n });\n });\n\n manager.onRequest('slates/config.changed', async ({ params }) => {\n getContextBasic();\n\n let newConfig = validate(\n slate.spec.config.configSchema,\n params.newConfig,\n 'config',\n 'Invalid configuration'\n );\n\n let configChanged = slate.spec.config.handlers.configChanged;\n if (!configChanged) {\n return { success: true, config: newConfig };\n }\n\n let updatedConfig = await configChanged({\n previousConfig: params.previousConfig as ConfigType | null,\n newConfig\n });\n\n return { success: true, config: updatedConfig?.config ?? newConfig };\n });\n\n manager.onRequest('slates/config.get_default', async ({ params }) => {\n getContextBasic();\n\n let getDefaultConfig = slate.spec.config.handlers.getDefaultConfig;\n if (!getDefaultConfig) {\n return { config: null };\n }\n\n let defaultConfig = await getDefaultConfig();\n return { config: defaultConfig };\n });\n\n manager.onRequest('slates/config.schema.get', async ({ params }) => {\n getContextBasic();\n\n return { schema: toJsonSchema(slate.spec.configSchema) };\n });\n\n manager.onRequest('slates/provider.identify', async ({ params }) => {\n getContextBasic();\n\n return {\n protocol: 'slates@2026-01-01',\n provider: {\n type: 'provider',\n id: slate.spec.key,\n name: slate.spec.name,\n description: slate.spec.description,\n metadata: slate.spec.parameters.metadata\n }\n };\n });\n\n manager.onRequest('slates/auth.methods.list', async ({ params }) => {\n getContextBasic();\n\n return {\n authenticationMethods: slate.spec.auth.authStack.map(m => mapAuthMethod(slate, m))\n };\n });\n\n manager.onRequest('slates/auth.method.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n return {\n authenticationMethod: mapAuthMethod(slate, authMethod)\n };\n });\n\n manager.onRequest('slates/auth.input.get_default', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.getDefaultInput) {\n return { input: null };\n }\n\n return { input: await authMethod.getDefaultInput() };\n });\n\n manager.onRequest('slates/auth.input.changed', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.onInputChanged) {\n return { success: true, input: params.newInput };\n }\n\n let updatedInput = await authMethod.onInputChanged({\n previousInput: params.previousInput as any | null,\n newInput: params.newInput\n });\n\n return { success: true, input: updatedInput?.input ?? params.newInput };\n });\n\n manager.onRequest('slates/auth.output.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n let input = params.input;\n\n if (authMethod.inputSchema) {\n input = validate(\n authMethod.inputSchema,\n input,\n 'auth',\n `Invalid authentication input for method ID: ${params.authenticationMethodId}`\n );\n }\n\n if ('getOutput' in authMethod) {\n let outputRes = await authMethod.getOutput({ input });\n return { output: outputRes.output };\n }\n\n return { output: input as any };\n });\n\n manager.onRequest('slates/auth.authorization_callback.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleCallback' in authMethod) {\n let callbackRes = await authMethod.handleCallback({\n code: params.code,\n state: params.state,\n redirectUri: params.redirectUri,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n output: callbackRes.output,\n input: callbackRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization callback handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.authorization_url.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('getAuthorizationUrl' in authMethod) {\n let urlRes = await authMethod.getAuthorizationUrl({\n redirectUri: params.redirectUri,\n state: params.state,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n authorizationUrl: urlRes.url,\n input: urlRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization URL retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.profile.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (authMethod.getProfile) {\n let profileRes = await authMethod.getProfile({\n output: params.output as any,\n input: params.input,\n scopes: params.scopes\n });\n\n return {\n profile: profileRes.profile\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support profile retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.token_refresh.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {\n let refreshRes = await authMethod.handleTokenRefresh({\n output: params.output as any,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n });\n\n return {\n output: refreshRes.output,\n input: refreshRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support token refresh handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/actions.list', async ({ params }) => {\n getContextBasic();\n\n return {\n actions: slate.actions.map(a => mapAction(slate, a))\n };\n });\n\n manager.onRequest('slates/action.get', async ({ params }) => {\n getContextBasic();\n let action = getAction(slate, params.actionId);\n\n return {\n action: mapAction(slate, action)\n };\n });\n\n manager.onRequest('slates/action.tool.invoke', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'tool', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid input for tool ID: ${params.actionId}`\n );\n\n let res = await action.handleInvocation(\n new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)\n );\n\n return { output: res.output, message: res.message };\n });\n\n manager.onRequest('slates/action.trigger.map_event', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid event for trigger ID: ${params.actionId}`\n );\n\n let res = await action.handleEvent(\n new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)\n );\n\n return { id: res.id, type: res.type, output: res.output };\n });\n\n manager.onRequest('slates/action.trigger.poll_events', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.pollEvents) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support polling: ${params.actionId}`\n })\n );\n }\n\n let res = await action.pollEvents(\n new SlateContext(\n ctx.config,\n { state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_handle', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.handleRequest) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook requests: ${params.actionId}`\n })\n );\n }\n\n let req = new Request(params.url, {\n method: params.method,\n headers: params.headers,\n body: params.body\n ? Uint8Array.from(atob(params.body.content), c => c.charCodeAt(0))\n : null\n });\n\n let res = await action.handleRequest(\n new SlateContext(\n ctx.config,\n { request: req, state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_register', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoRegisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-registration: ${params.actionId}`\n })\n );\n }\n\n let res = await action.autoRegisterWebhook(\n new SlateContext(\n ctx.config,\n { webhookBaseUrl: params.webhookBaseUrl },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return { registrationDetails: res.registrationDetails, state: res.state };\n });\n\n manager.onRequest('slates/action.trigger.webhook_unregister', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoUnregisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-unregistration: ${params.actionId}`\n })\n );\n }\n\n await action.autoUnregisterWebhook(\n new SlateContext(\n ctx.config,\n {\n webhookBaseUrl: params.webhookBaseUrl,\n registrationDetails: params.registrationDetails,\n state: params.state\n },\n ctx.auth?.output!,\n slate.spec,\n logger\n )\n );\n\n return {};\n });\n });\n"],"names":["validate","schema","data","entity","message","result","safeParse","success","ServiceError","e","validationError","errors","issues","map","i","_extends","path","p","String","zodToValidationError","error","toJsonSchema","toJSONSchema","unrepresentable","override","ctx","def","zodSchema","_zod","type","jsonSchema","format","getAuthMethod","slate","authenticationMethodId","authMethod","spec","auth","authStack","find","m","key","badRequestError","mapAuthMethod","_m$inputSchema","id","name","scopes","s","scope","title","description","undefined","inputSchema","z","object","outputSchema","capabilities","getDefaultInput","enabled","handleTokenRefresh","handleChangedInput","onInputChanged","getProfile","getAction","actionId","action","actions","notFoundError","getActionWithType","mapAction","a","_a$polling$intervalIn","instructions","constraints","tags","metadata","invocation","source","intervalSeconds","polling","intervalInSeconds","SlateDefaultPollingIntervalSeconds","autoRegistration","autoRegisterWebhook","autoUnregistration","autoUnregisterWebhook","State","initialValue","Object","defineProperty","_value","writable","value","_classPrivateFieldLooseBase","_proto","prototype","_createClass","get","this","set","listeners","createSlatesProviderProtoHandler","manager","protocol","participants","config","session","logger","SlateLogger","getContextBasic","currentProtocol","currentParticipants","preconditionFailedError","getContextFull","basic","currentConfig","currentSession","currentAuth","length","onNotification","_ref","params","Promise","resolve","reject","_ref2","_ref3","valRes","authSchema","output","_ref4","configSchema","_ref5","sessionId","state","onRequest","_ref6","newConfig","configChanged","handlers","previousConfig","then","updatedConfig","_updatedConfig$config","_ref7","getDefaultConfig","defaultConfig","_ref8","_ref9","provider","parameters","_ref0","authenticationMethods","_ref1","authenticationMethod","_ref10","_authMethod$getDefaul","input","_ref11","previousInput","newInput","updatedInput","_updatedInput$input","_ref12","_exit","_temp2","_result","_temp","getOutput","outputRes","_output","_ref13","_temp4","_exit2","_result2","_temp3","handleCallback","code","redirectUri","clientId","clientSecret","callbackRes","_output$input","_ref14","_exit3","_temp6","_result3","_temp5","getAuthorizationUrl","urlRes","_authorizationUrl$inp","authorizationUrl","url","_ref15","_temp8","_exit4","_result4","_temp7","profileRes","profile","_ref16","_exit5","_temp0","_result5","_temp9","refreshRes","_ref17","_ref18","_ref19","_ctx$auth","handleInvocation","SlateContext","res","_ref20","_ctx$auth2","handleEvent","_ref21","_ctx$auth3","pollEvents","inputs","updatedState","_ref22","_ctx$auth4","handleRequest","req","Request","method","headers","body","Uint8Array","from","atob","content","c","charCodeAt","request","_ref23","_ctx$auth5","webhookBaseUrl","registrationDetails","_ref24","_ctx$auth6"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.js","sources":["../src/validation.ts","../src/spec.ts","../src/state.ts","../src/index.ts"],"sourcesContent":["import { ServiceError, validationError } from '@lowerdeck/error';\nimport z from 'zod';\n\nexport let zodToValidationError = (entity: string, message: string, e: z.ZodError) => {\n return validationError({\n message,\n entity,\n errors: e.issues.map(i => ({\n ...i,\n path: i.path.map(p => String(p))\n }))\n });\n};\n\nexport let validate = <T>(\n schema: z.ZodType<T>,\n data: unknown,\n entity: string,\n message: string\n): T => {\n let result = schema.safeParse(data);\n if (!result.success) {\n throw new ServiceError(zodToValidationError(entity, message, result.error));\n }\n\n return result.data;\n};\n\nexport let toJsonSchema = (schema: z.ZodType<any>) =>\n schema.toJSONSchema({\n unrepresentable: 'any',\n override: ctx => {\n let def = ctx.zodSchema._zod.def;\n\n if (def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n if (def.type === 'bigint') {\n ctx.jsonSchema.type = 'number';\n }\n }\n });\n","import { badRequestError, notFoundError, ServiceError } from '@lowerdeck/error';\nimport { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';\nimport { Slate, SlateDefaultPollingIntervalSeconds } from '@slates/provider';\nimport z from 'zod';\nimport { toJsonSchema } from './validation';\n\nexport let getAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n authenticationMethodId: string\n) => {\n let authMethod = slate.spec.auth.authStack.find(m => m.key == authenticationMethodId);\n if (!authMethod) {\n throw new ServiceError(\n badRequestError({\n message: `Invalid authentication method ID: ${authenticationMethodId}`\n })\n );\n }\n\n return authMethod;\n};\n\nexport let mapAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>\n): SlateAuthenticationMethod => ({\n id: m.key,\n name: m.name,\n type: m.type,\n\n scopes:\n 'scopes' in m\n ? m.scopes.map(s => ({\n id: s.scope,\n title: s.title,\n description: s.description\n }))\n : undefined,\n\n inputSchema: toJsonSchema(m.inputSchema ?? z.object({})),\n outputSchema: toJsonSchema(slate.spec.auth.outputSchema),\n\n capabilities: {\n getDefaultInput: { enabled: !!('getDefaultInput' in m && m.getDefaultInput) },\n handleTokenRefresh: {\n enabled: !!('handleTokenRefresh' in m && m.handleTokenRefresh)\n },\n handleChangedInput: {\n enabled: !!m.onInputChanged\n },\n getProfile: { enabled: !!m.getProfile }\n }\n});\n\nexport let getAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n actionId: string\n) => {\n let action = slate.actions.find(m => m.key == actionId);\n if (!action) {\n throw new ServiceError(notFoundError(`action`, actionId));\n }\n\n return action;\n};\n\nexport let getActionWithType = <\n Type extends 'tool' | 'trigger',\n ConfigType extends {},\n AuthType extends {}\n>(\n slate: Slate<ConfigType, AuthType>,\n type: Type,\n actionId: string\n): ReturnType<typeof getAction<ConfigType, AuthType>> & { type: Type } => {\n let action = getAction(slate, actionId);\n if (action.type != type) {\n throw new ServiceError(\n badRequestError({\n message: `Action with ID ${actionId} is not of type ${type}`\n })\n );\n }\n\n return action as any;\n};\n\nexport let mapAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n a: ReturnType<typeof getAction<ConfigType, AuthType>>\n): SlatesAction => {\n let base = {\n id: a.key,\n name: a.name,\n description: a.description,\n instructions: a.instructions,\n constraints: a.constraints,\n tags: a.tags,\n metadata: a.metadata,\n\n inputSchema: toJsonSchema(a.inputSchema),\n outputSchema: toJsonSchema(a.outputSchema)\n };\n\n if (a.type == 'tool') {\n return {\n ...base,\n type: 'action.tool',\n capabilities: {}\n };\n }\n\n return {\n ...base,\n type: 'action.trigger',\n capabilities: {},\n\n invocation:\n a.source == 'polling'\n ? {\n type: 'polling',\n intervalSeconds: a.polling.intervalInSeconds ?? SlateDefaultPollingIntervalSeconds\n }\n : {\n type: 'webhook',\n autoRegistration: !!a.autoRegisterWebhook,\n autoUnregistration: !!a.autoUnregisterWebhook\n }\n };\n};\n","export class State<T> {\n #value: T;\n\n get value() {\n return this.#value;\n }\n\n get() {\n return this.#value;\n }\n\n set(value: T) {\n this.#value = value;\n }\n\n constructor(initialValue: T) {\n this.#value = initialValue;\n }\n}\n","import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';\nimport { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';\nimport {\n runWithContext,\n Slate,\n SlateContext,\n SlateLogger,\n SlateLogListener\n} from '@slates/provider';\nimport { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';\nimport { State } from './state';\nimport { toJsonSchema, validate } from './validation';\n\nexport let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n listeners: SlateLogListener[]\n) =>\n createSlatesProviderProtoHandler(async manager => {\n let protocol = new State<string | null>(null);\n let participants = new State<SlatesParticipant[] | null>(null);\n\n let auth = new State<{ authenticationMethodId: string; output: AuthType } | null>(null);\n let config = new State<{ value: ConfigType } | null>(null);\n\n let session = new State<{ id: string; state: any } | null>(null);\n\n let logger = new SlateLogger(listeners);\n\n let getContextBasic = () => {\n let currentProtocol = protocol.get();\n let currentParticipants = participants.get();\n\n if (!currentProtocol || !currentParticipants) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Connection context has not been initialized'\n })\n );\n }\n\n return {\n protocol: currentProtocol,\n participants: currentParticipants\n };\n };\n\n let getContextFull = () => {\n let basic = getContextBasic();\n\n let currentConfig = config.get();\n let currentSession = session.get();\n let currentAuth = auth.get();\n\n if (\n !currentConfig ||\n !currentSession ||\n (!currentAuth && slate.spec.auth.authStack.length > 0)\n ) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Session context has not been initialized'\n })\n );\n }\n\n return {\n ...basic,\n config: currentConfig.value,\n session: currentSession,\n auth: currentAuth\n };\n };\n\n let getEmptyContext = () => new SlateContext({}, {}, {}, slate.spec as any, logger);\n\n manager.onNotification('slates/hello', async ({ params }) => {\n protocol.set(params.protocol);\n });\n\n manager.onNotification('slates/participant.set', async ({ params }) => {\n if (!protocol.get()) {\n throw new ServiceError(\n preconditionFailedError({ message: 'Connection protocol has not been initialized' })\n );\n }\n\n participants.set(params.participants);\n });\n\n manager.onNotification('slates/auth.set', async ({ params }) => {\n getContextBasic();\n getAuthMethod(slate, params.authenticationMethodId); // validate method ID\n\n let valRes = validate(\n slate.spec.authSchema,\n params.output,\n 'auth',\n `Invalid authentication output for method ID: ${params.authenticationMethodId}`\n );\n\n auth.set({\n authenticationMethodId: params.authenticationMethodId,\n output: valRes\n });\n });\n\n manager.onNotification('slates/config.set', async ({ params }) => {\n getContextBasic();\n\n let value = validate(\n slate.spec.configSchema,\n params.config,\n 'config',\n 'Invalid configuration'\n );\n\n config.set({ value });\n });\n\n manager.onNotification('slates/session.start', async ({ params }) => {\n getContextBasic();\n\n session.set({\n id: params.sessionId,\n state: params.state\n });\n });\n\n manager.onRequest('slates/config.changed', async ({ params }) => {\n getContextBasic();\n\n let newConfig = validate(\n slate.spec.config.configSchema,\n params.newConfig,\n 'config',\n 'Invalid configuration'\n );\n\n let configChanged = slate.spec.config.handlers.configChanged;\n if (!configChanged) {\n return { success: true, config: newConfig };\n }\n\n let updatedConfig = await configChanged({\n previousConfig: params.previousConfig as ConfigType | null,\n newConfig\n });\n\n return { success: true, config: updatedConfig?.config ?? newConfig };\n });\n\n manager.onRequest('slates/config.get_default', async ({ params }) => {\n getContextBasic();\n\n let getDefaultConfig = slate.spec.config.handlers.getDefaultConfig;\n if (!getDefaultConfig) {\n return { config: null };\n }\n\n let defaultConfig = await getDefaultConfig();\n return { config: defaultConfig };\n });\n\n manager.onRequest('slates/config.schema.get', async ({ params }) => {\n getContextBasic();\n\n return { schema: toJsonSchema(slate.spec.configSchema) };\n });\n\n manager.onRequest('slates/provider.identify', async ({ params }) => {\n getContextBasic();\n\n return {\n protocol: 'slates@2026-01-01',\n provider: {\n type: 'provider',\n id: slate.spec.key,\n name: slate.spec.name,\n description: slate.spec.description,\n metadata: slate.spec.parameters.metadata\n }\n };\n });\n\n manager.onRequest('slates/auth.methods.list', async ({ params }) => {\n getContextBasic();\n\n return {\n authenticationMethods: slate.spec.auth.authStack.map(m => mapAuthMethod(slate, m))\n };\n });\n\n manager.onRequest('slates/auth.method.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n return {\n authenticationMethod: mapAuthMethod(slate, authMethod)\n };\n });\n\n manager.onRequest('slates/auth.input.get_default', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.getDefaultInput) {\n return { input: null };\n }\n\n return {\n input: await runWithContext(getEmptyContext(), () => authMethod.getDefaultInput!())\n };\n });\n\n manager.onRequest('slates/auth.input.changed', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.onInputChanged) {\n return { success: true, input: params.newInput };\n }\n\n let updatedInput = await runWithContext(getEmptyContext(), () =>\n authMethod.onInputChanged!({\n previousInput: params.previousInput as any | null,\n newInput: params.newInput\n })\n );\n\n return { success: true, input: updatedInput?.input ?? params.newInput };\n });\n\n manager.onRequest('slates/auth.output.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n let input = params.input;\n\n if (authMethod.inputSchema) {\n input = validate(\n authMethod.inputSchema,\n input,\n 'auth',\n `Invalid authentication input for method ID: ${params.authenticationMethodId}`\n );\n }\n\n if ('getOutput' in authMethod) {\n let outputRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getOutput({ input })\n );\n return { output: outputRes.output };\n }\n\n return { output: input as any };\n });\n\n manager.onRequest('slates/auth.authorization_callback.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleCallback' in authMethod) {\n let callbackRes = await runWithContext(getEmptyContext(), () =>\n authMethod.handleCallback({\n code: params.code,\n state: params.state,\n redirectUri: params.redirectUri,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes,\n callbackState: params.callbackState || {}\n })\n );\n\n return {\n output: callbackRes.output,\n input: callbackRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization callback handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.authorization_url.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('getAuthorizationUrl' in authMethod) {\n let urlRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getAuthorizationUrl({\n redirectUri: params.redirectUri,\n state: params.state,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n })\n );\n\n return {\n authorizationUrl: urlRes.url,\n input: urlRes.input,\n callbackState: urlRes.callbackState\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization URL retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.profile.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (authMethod.getProfile) {\n let profileRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getProfile!({\n output: params.output as any,\n input: params.input,\n scopes: params.scopes\n })\n );\n\n return {\n profile: profileRes.profile\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support profile retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.token_refresh.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {\n let refreshRes = await runWithContext(getEmptyContext(), () =>\n authMethod.handleTokenRefresh!({\n output: params.output as any,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n })\n );\n\n return {\n output: refreshRes.output,\n input: refreshRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support token refresh handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/actions.list', async ({ params }) => {\n getContextBasic();\n\n return {\n actions: slate.actions.map(a => mapAction(slate, a))\n };\n });\n\n manager.onRequest('slates/action.get', async ({ params }) => {\n getContextBasic();\n let action = getAction(slate, params.actionId);\n\n return {\n action: mapAction(slate, action)\n };\n });\n\n manager.onRequest('slates/action.tool.invoke', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'tool', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid input for tool ID: ${params.actionId}`\n );\n\n let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);\n let res = await runWithContext(context, () => action.handleInvocation(context));\n\n return { output: res.output, message: res.message };\n });\n\n manager.onRequest('slates/action.trigger.map_event', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid event for trigger ID: ${params.actionId}`\n );\n\n let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);\n let res = await runWithContext(context, () => action.handleEvent(context));\n\n return { id: res.id, type: res.type, output: res.output };\n });\n\n manager.onRequest('slates/action.trigger.poll_events', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.pollEvents) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support polling: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n { state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.pollEvents!(context));\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_handle', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.handleRequest) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook requests: ${params.actionId}`\n })\n );\n }\n\n let req = new Request(params.url, {\n method: params.method,\n headers: params.headers,\n body: params.body\n ? Uint8Array.from(atob(params.body.content), c => c.charCodeAt(0))\n : null\n });\n\n let context = new SlateContext(\n ctx.config,\n { request: req, state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.handleRequest!(context));\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_register', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoRegisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-registration: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n { webhookBaseUrl: params.webhookBaseUrl },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.autoRegisterWebhook!(context));\n\n return { registrationDetails: res.registrationDetails, state: res.state };\n });\n\n manager.onRequest('slates/action.trigger.webhook_unregister', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoUnregisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-unregistration: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n {\n webhookBaseUrl: params.webhookBaseUrl,\n registrationDetails: params.registrationDetails,\n state: params.state\n },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n await runWithContext(context, () => action.autoUnregisterWebhook!(context));\n\n return {};\n });\n });\n"],"names":["validate","schema","data","entity","message","result","safeParse","success","ServiceError","e","validationError","errors","issues","map","i","_extends","path","p","String","zodToValidationError","error","toJsonSchema","toJSONSchema","unrepresentable","override","ctx","def","zodSchema","_zod","type","jsonSchema","format","getAuthMethod","slate","authenticationMethodId","authMethod","spec","auth","authStack","find","m","key","badRequestError","mapAuthMethod","_m$inputSchema","id","name","scopes","s","scope","title","description","undefined","inputSchema","z","object","outputSchema","capabilities","getDefaultInput","enabled","handleTokenRefresh","handleChangedInput","onInputChanged","getProfile","getAction","actionId","action","actions","notFoundError","getActionWithType","mapAction","a","_a$polling$intervalIn","instructions","constraints","tags","metadata","invocation","source","intervalSeconds","polling","intervalInSeconds","SlateDefaultPollingIntervalSeconds","autoRegistration","autoRegisterWebhook","autoUnregistration","autoUnregisterWebhook","State","initialValue","Object","defineProperty","_value","writable","value","_classPrivateFieldLooseBase","_proto","prototype","_createClass","get","this","set","listeners","createSlatesProviderProtoHandler","manager","protocol","participants","config","session","logger","SlateLogger","getContextBasic","currentProtocol","currentParticipants","preconditionFailedError","getContextFull","basic","currentConfig","currentSession","currentAuth","length","getEmptyContext","SlateContext","onNotification","_ref","params","Promise","resolve","reject","_ref2","_ref3","valRes","authSchema","output","_ref4","configSchema","_ref5","sessionId","state","onRequest","_ref6","newConfig","configChanged","handlers","previousConfig","then","updatedConfig","_updatedConfig$config","_ref7","getDefaultConfig","defaultConfig","_ref8","_ref9","provider","parameters","_ref0","authenticationMethods","_ref1","authenticationMethod","_ref10","runWithContext","_runWithContext","input","_ref11","previousInput","newInput","updatedInput","_updatedInput$input","_ref12","_temp2","_exit","_result","_temp","getOutput","outputRes","_ref13","_exit2","_temp4","_result2","_temp3","handleCallback","code","redirectUri","clientId","clientSecret","callbackState","callbackRes","_output$input","_ref14","_temp6","_exit3","_result3","_temp5","getAuthorizationUrl","urlRes","authorizationUrl","url","_ref15","_exit4","_temp8","_result4","_temp7","profileRes","profile","_ref16","_exit5","_temp0","_result5","_temp9","refreshRes","_ref17","_ref18","_ref19","_ctx$auth","context","handleInvocation","res","_ref20","_ctx$auth2","handleEvent","_ref21","_ctx$auth3","pollEvents","inputs","updatedState","_ref22","_ctx$auth4","handleRequest","req","Request","method","headers","body","Uint8Array","from","atob","content","c","charCodeAt","request","_ref23","_ctx$auth5","webhookBaseUrl","registrationDetails","_ref24","_ctx$auth6"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slates/provider-handler",
3
- "version": "1.0.0-rc.4",
3
+ "version": "1.0.0-rc.6",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -31,8 +31,8 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@lowerdeck/error": "^1.0.8",
34
- "@slates/proto": "^1.0.0-rc.5",
35
- "@slates/provider": "^1.0.0-rc.2",
34
+ "@slates/proto": "^1.0.0-rc.6",
35
+ "@slates/provider": "^1.0.0-rc.6",
36
36
  "zod": "^4.2.1"
37
37
  },
38
38
  "devDependencies": {
package/src/index.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';
2
2
  import { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';
3
- import { Slate, SlateContext, SlateLogger, SlateLogListener } from '@slates/provider';
3
+ import {
4
+ runWithContext,
5
+ Slate,
6
+ SlateContext,
7
+ SlateLogger,
8
+ SlateLogListener
9
+ } from '@slates/provider';
4
10
  import { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';
5
11
  import { State } from './state';
6
12
  import { toJsonSchema, validate } from './validation';
@@ -65,6 +71,8 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
65
71
  };
66
72
  };
67
73
 
74
+ let getEmptyContext = () => new SlateContext({}, {}, {}, slate.spec as any, logger);
75
+
68
76
  manager.onNotification('slates/hello', async ({ params }) => {
69
77
  protocol.set(params.protocol);
70
78
  });
@@ -199,7 +207,9 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
199
207
  return { input: null };
200
208
  }
201
209
 
202
- return { input: await authMethod.getDefaultInput() };
210
+ return {
211
+ input: await runWithContext(getEmptyContext(), () => authMethod.getDefaultInput!())
212
+ };
203
213
  });
204
214
 
205
215
  manager.onRequest('slates/auth.input.changed', async ({ params }) => {
@@ -210,10 +220,12 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
210
220
  return { success: true, input: params.newInput };
211
221
  }
212
222
 
213
- let updatedInput = await authMethod.onInputChanged({
214
- previousInput: params.previousInput as any | null,
215
- newInput: params.newInput
216
- });
223
+ let updatedInput = await runWithContext(getEmptyContext(), () =>
224
+ authMethod.onInputChanged!({
225
+ previousInput: params.previousInput as any | null,
226
+ newInput: params.newInput
227
+ })
228
+ );
217
229
 
218
230
  return { success: true, input: updatedInput?.input ?? params.newInput };
219
231
  });
@@ -234,7 +246,9 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
234
246
  }
235
247
 
236
248
  if ('getOutput' in authMethod) {
237
- let outputRes = await authMethod.getOutput({ input });
249
+ let outputRes = await runWithContext(getEmptyContext(), () =>
250
+ authMethod.getOutput({ input })
251
+ );
238
252
  return { output: outputRes.output };
239
253
  }
240
254
 
@@ -246,15 +260,18 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
246
260
  let authMethod = getAuthMethod(slate, params.authenticationMethodId);
247
261
 
248
262
  if ('handleCallback' in authMethod) {
249
- let callbackRes = await authMethod.handleCallback({
250
- code: params.code,
251
- state: params.state,
252
- redirectUri: params.redirectUri,
253
- input: params.input,
254
- clientId: params.clientId,
255
- clientSecret: params.clientSecret,
256
- scopes: params.scopes
257
- });
263
+ let callbackRes = await runWithContext(getEmptyContext(), () =>
264
+ authMethod.handleCallback({
265
+ code: params.code,
266
+ state: params.state,
267
+ redirectUri: params.redirectUri,
268
+ input: params.input,
269
+ clientId: params.clientId,
270
+ clientSecret: params.clientSecret,
271
+ scopes: params.scopes,
272
+ callbackState: params.callbackState || {}
273
+ })
274
+ );
258
275
 
259
276
  return {
260
277
  output: callbackRes.output,
@@ -274,18 +291,21 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
274
291
  let authMethod = getAuthMethod(slate, params.authenticationMethodId);
275
292
 
276
293
  if ('getAuthorizationUrl' in authMethod) {
277
- let urlRes = await authMethod.getAuthorizationUrl({
278
- redirectUri: params.redirectUri,
279
- state: params.state,
280
- input: params.input,
281
- clientId: params.clientId,
282
- clientSecret: params.clientSecret,
283
- scopes: params.scopes
284
- });
294
+ let urlRes = await runWithContext(getEmptyContext(), () =>
295
+ authMethod.getAuthorizationUrl({
296
+ redirectUri: params.redirectUri,
297
+ state: params.state,
298
+ input: params.input,
299
+ clientId: params.clientId,
300
+ clientSecret: params.clientSecret,
301
+ scopes: params.scopes
302
+ })
303
+ );
285
304
 
286
305
  return {
287
306
  authorizationUrl: urlRes.url,
288
- input: urlRes.input
307
+ input: urlRes.input,
308
+ callbackState: urlRes.callbackState
289
309
  };
290
310
  }
291
311
 
@@ -301,11 +321,13 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
301
321
  let authMethod = getAuthMethod(slate, params.authenticationMethodId);
302
322
 
303
323
  if (authMethod.getProfile) {
304
- let profileRes = await authMethod.getProfile({
305
- output: params.output as any,
306
- input: params.input,
307
- scopes: params.scopes
308
- });
324
+ let profileRes = await runWithContext(getEmptyContext(), () =>
325
+ authMethod.getProfile!({
326
+ output: params.output as any,
327
+ input: params.input,
328
+ scopes: params.scopes
329
+ })
330
+ );
309
331
 
310
332
  return {
311
333
  profile: profileRes.profile
@@ -324,13 +346,15 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
324
346
  let authMethod = getAuthMethod(slate, params.authenticationMethodId);
325
347
 
326
348
  if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {
327
- let refreshRes = await authMethod.handleTokenRefresh({
328
- output: params.output as any,
329
- input: params.input,
330
- clientId: params.clientId,
331
- clientSecret: params.clientSecret,
332
- scopes: params.scopes
333
- });
349
+ let refreshRes = await runWithContext(getEmptyContext(), () =>
350
+ authMethod.handleTokenRefresh!({
351
+ output: params.output as any,
352
+ input: params.input,
353
+ clientId: params.clientId,
354
+ clientSecret: params.clientSecret,
355
+ scopes: params.scopes
356
+ })
357
+ );
334
358
 
335
359
  return {
336
360
  output: refreshRes.output,
@@ -373,9 +397,8 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
373
397
  `Invalid input for tool ID: ${params.actionId}`
374
398
  );
375
399
 
376
- let res = await action.handleInvocation(
377
- new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)
378
- );
400
+ let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);
401
+ let res = await runWithContext(context, () => action.handleInvocation(context));
379
402
 
380
403
  return { output: res.output, message: res.message };
381
404
  });
@@ -391,9 +414,8 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
391
414
  `Invalid event for trigger ID: ${params.actionId}`
392
415
  );
393
416
 
394
- let res = await action.handleEvent(
395
- new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger)
396
- );
417
+ let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);
418
+ let res = await runWithContext(context, () => action.handleEvent(context));
397
419
 
398
420
  return { id: res.id, type: res.type, output: res.output };
399
421
  });
@@ -410,15 +432,14 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
410
432
  );
411
433
  }
412
434
 
413
- let res = await action.pollEvents(
414
- new SlateContext(
415
- ctx.config,
416
- { state: params.state },
417
- ctx.auth?.output!,
418
- slate.spec,
419
- logger
420
- )
435
+ let context = new SlateContext(
436
+ ctx.config,
437
+ { state: params.state },
438
+ ctx.auth?.output!,
439
+ slate.spec,
440
+ logger
421
441
  );
442
+ let res = await runWithContext(context, () => action.pollEvents!(context));
422
443
 
423
444
  return { inputs: res.inputs, updatedState: res.updatedState };
424
445
  });
@@ -443,15 +464,14 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
443
464
  : null
444
465
  });
445
466
 
446
- let res = await action.handleRequest(
447
- new SlateContext(
448
- ctx.config,
449
- { request: req, state: params.state },
450
- ctx.auth?.output!,
451
- slate.spec,
452
- logger
453
- )
467
+ let context = new SlateContext(
468
+ ctx.config,
469
+ { request: req, state: params.state },
470
+ ctx.auth?.output!,
471
+ slate.spec,
472
+ logger
454
473
  );
474
+ let res = await runWithContext(context, () => action.handleRequest!(context));
455
475
 
456
476
  return { inputs: res.inputs, updatedState: res.updatedState };
457
477
  });
@@ -468,15 +488,14 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
468
488
  );
469
489
  }
470
490
 
471
- let res = await action.autoRegisterWebhook(
472
- new SlateContext(
473
- ctx.config,
474
- { webhookBaseUrl: params.webhookBaseUrl },
475
- ctx.auth?.output!,
476
- slate.spec,
477
- logger
478
- )
491
+ let context = new SlateContext(
492
+ ctx.config,
493
+ { webhookBaseUrl: params.webhookBaseUrl },
494
+ ctx.auth?.output!,
495
+ slate.spec,
496
+ logger
479
497
  );
498
+ let res = await runWithContext(context, () => action.autoRegisterWebhook!(context));
480
499
 
481
500
  return { registrationDetails: res.registrationDetails, state: res.state };
482
501
  });
@@ -493,19 +512,18 @@ export let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(
493
512
  );
494
513
  }
495
514
 
496
- await action.autoUnregisterWebhook(
497
- new SlateContext(
498
- ctx.config,
499
- {
500
- webhookBaseUrl: params.webhookBaseUrl,
501
- registrationDetails: params.registrationDetails,
502
- state: params.state
503
- },
504
- ctx.auth?.output!,
505
- slate.spec,
506
- logger
507
- )
515
+ let context = new SlateContext(
516
+ ctx.config,
517
+ {
518
+ webhookBaseUrl: params.webhookBaseUrl,
519
+ registrationDetails: params.registrationDetails,
520
+ state: params.state
521
+ },
522
+ ctx.auth?.output!,
523
+ slate.spec,
524
+ logger
508
525
  );
526
+ await runWithContext(context, () => action.autoUnregisterWebhook!(context));
509
527
 
510
528
  return {};
511
529
  });