@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 +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.module.js +1 -1
- package/dist/index.module.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +97 -79
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
|
package/dist/index.cjs.map
CHANGED
|
@@ -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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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
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"}
|
package/dist/index.module.js
CHANGED
|
@@ -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
|
package/dist/index.module.js.map
CHANGED
|
@@ -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
|
package/dist/index.umd.js.map
CHANGED
|
@@ -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":"urCAGW,IAWAA,EAAW,SACpBC,EACAC,EACAC,EACAC,GAEA,IAAIC,EAASJ,EAAOK,UAAUJ,GAC9B,IAAKG,EAAOE,QACV,MAAM,IAAIC,EAAAA,aAnBoB,SAACL,EAAgBC,EAAiBK,GAClE,OAAOC,EAAAA,gBAAgB,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,EAAAA,aACRkC,EAAAA,gBAAgB,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,EAAC,QAACC,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,EAAYA,aAAC4D,EAAaA,cAAWH,SAAAA,IAGjD,OAAOC,CACT,EAEWG,EAAoB,SAK7BpC,EACAJ,EACAoC,GAEA,IAAIC,EAASF,EAAU/B,EAAOgC,GAC9B,GAAIC,EAAOrC,MAAQA,EACjB,UAAUrB,EAAYA,aACpBkC,EAAeA,gBAAC,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,EAAAA,oCAElD,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,2BCFiC,SACjC1D,EACAoE,GAA6B,OAE7BC,EAAAA,0CAAuCC,GAAO,IAC5C,IAAIC,EAAW,IAAIjB,EAAqB,MACpCkB,EAAe,IAAIlB,EAAkC,MAErDlD,EAAO,IAAIkD,EAAmE,MAC9EmB,EAAS,IAAInB,EAAoC,MAEjDoB,EAAU,IAAIpB,EAAyC,MAEvDqB,EAAS,IAAIC,EAAAA,YAAYR,GAEzBS,EAAkB,WACpB,IAAIC,EAAkBP,EAASN,MAC3Bc,EAAsBP,EAAaP,MAEvC,IAAKa,IAAoBC,EACvB,MAAM,IAAIxG,EAAYA,aACpByG,EAAuBA,wBAAC,CACtB7G,QAAS,iDAKf,MAAO,CACLoG,SAAUO,EACVN,aAAcO,EAElB,EAEIE,EAAiB,WACnB,IAAIC,EAAQL,IAERM,EAAgBV,EAAOR,MACvBmB,EAAiBV,EAAQT,MACzBoB,EAAcjF,EAAK6D,MAEvB,IACGkB,IACAC,IACCC,GAAerF,EAAMG,KAAKC,KAAKC,UAAUiF,OAAS,EAEpD,UAAU/G,EAAAA,aACRyG,EAAAA,wBAAwB,CACtB7G,QAAS,8CAKf,OAAAW,KACKoG,EAAK,CACRT,OAAQU,EAAcvB,MACtBc,QAASU,EACThF,KAAMiF,GAEV,EAEIE,EAAkB,WAAM,OAAA,IAAIC,EAAYA,aAAC,GAAI,CAAA,EAAI,CAAA,EAAIxF,EAAMG,KAAawE,EAAO,EAuchF,OArcHL,EAAQmB,eAAe,eAAcC,SAAAA,OAAWC,EAAMD,EAANC,WAChB,OAA9BpB,EAASJ,IAAIwB,EAAOpB,UAAUqB,QAAAC,SAChC,CAAC,MAAArH,UAAAoH,QAAAE,OAAAtH,EAAA,CAAA,GAED8F,EAAQmB,eAAe,kCAAwBM,GAAA,IAAWJ,EAAMI,EAANJ,OAAM,IAC9D,IAAKpB,EAASN,MACZ,MAAU,IAAA1F,EAAYA,aACpByG,EAAuBA,wBAAC,CAAE7G,QAAS,kDAID,OAAtCqG,EAAaL,IAAIwB,EAAOnB,cAAcoB,QAAAC,SACxC,CAAC,MAAArH,GAAAoH,OAAAA,QAAAE,OAAAtH,MAED8F,EAAQmB,eAAe,kBAAiBO,SAAAA,GAAW,IAAAL,EAAMK,EAANL,WACjDd,IACA9E,EAAcC,EAAO2F,EAAO1F,wBAE5B,IAAIgG,EAASlI,EACXiC,EAAMG,KAAK+F,WACXP,EAAOQ,OACP,OACgDR,gDAAAA,EAAO1F,wBAMtD,OAHHG,EAAK+D,IAAI,CACPlE,uBAAwB0F,EAAO1F,uBAC/BkG,OAAQF,IACPL,QAAAC,SACL,CAAC,MAAArH,GAAAoH,OAAAA,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmB,eAAe,oBAAmBW,SAAAA,OAAWT,EAAMS,EAANT,OAAM,IACzDd,IAEA,IAAIjB,EAAQ7F,EACViC,EAAMG,KAAKkG,aACXV,EAAOlB,OACP,SACA,yBAGoB,OAAtBA,EAAON,IAAI,CAAEP,MAAAA,IAASgC,QAAAC,SACxB,CAAC,MAAArH,GAAAoH,OAAAA,QAAAE,OAAAtH,EAAA,CAAA,GAED8F,EAAQmB,eAAe,uBAAsBa,SAAAA,OAAWX,EAAMW,EAANX,WAMnD,OALHd,IAEAH,EAAQP,IAAI,CACVvD,GAAI+E,EAAOY,UACXC,MAAOb,EAAOa,QACbZ,QAAAC,SACL,CAAC,MAAArH,GAAA,OAAAoH,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmC,UAAU,wBAAuB,SAAAC,GAAA,IAAWf,EAAMe,EAANf,OAAY,IAC9Dd,IAEA,IAAI8B,EAAY5I,EACdiC,EAAMG,KAAKsE,OAAO4B,aAClBV,EAAOgB,UACP,SACA,yBAGEC,EAAgB5G,EAAMG,KAAKsE,OAAOoC,SAASD,cAC/C,OAAKA,EAEJhB,QAAAC,QAEyBe,EAAc,CACtCE,eAAgBnB,EAAOmB,eACvBH,UAAAA,KACAI,KAHEC,SAAAA,OAAaC,EAKjB,MAAO,CAAE3I,SAAS,EAAMmG,OAA6B,OAAvBwC,EAAED,MAAAA,OAAAA,EAAAA,EAAevC,QAAMwC,EAAIN,EAAY,GARnEf,QAAAC,QAAO,CAAEvH,SAAS,EAAMmG,OAAQkC,GASpC,CAAC,MAAAnI,GAAAoH,OAAAA,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmC,UAAU,4BAA2BS,SAAAA,GAAiB,IAC5DrC,IAEA,IAAIsC,EAAmBnH,EAAMG,KAAKsE,OAAOoC,SAASM,iBAClD,OAAKA,EAEJvB,QAAAC,QAEyBsB,KAAkBJ,cAAxCK,GACJ,MAAO,CAAE3C,OAAQ2C,EAAgB,GAJ/BxB,QAAAC,QAAO,CAAEpB,OAAQ,MAKrB,CAAC,MAAAjG,UAAAoH,QAAAE,OAAAtH,EAAA,CAAA,GAED8F,EAAQmC,UAAU,oCAA0BY,GAAiB,IAG3D,OAFAxC,IAEAe,QAAAC,QAAO,CAAE7H,OAAQoB,EAAaY,EAAMG,KAAKkG,eAC3C,CAAC,MAAA7H,UAAAoH,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmC,UAAU,oCAA0Ba,GAAiB,IAG3D,OAFAzC,IAEAe,QAAAC,QAAO,CACLtB,SAAU,oBACVgD,SAAU,CACR3H,KAAM,WACNgB,GAAIZ,EAAMG,KAAKK,IACfK,KAAMb,EAAMG,KAAKU,KACjBK,YAAalB,EAAMG,KAAKe,YACxByB,SAAU3C,EAAMG,KAAKqH,WAAW7E,WAGtC,CAAC,MAAAnE,GAAAoH,OAAAA,QAAAE,OAAAtH,EAAA,CAAA,GAED8F,EAAQmC,UAAU,2BAA0BgB,SAAAA,GAAiB,IAG3D,OAFA5C,IAEAe,QAAAC,QAAO,CACL6B,sBAAuB1H,EAAMG,KAAKC,KAAKC,UAAUzB,IAAI,SAAA2B,GAAC,OAAIG,EAAcV,EAAOO,EAAE,IAErF,CAAC,MAAA/B,GAAAoH,OAAAA,QAAAE,OAAAtH,MAED8F,EAAQmC,UAAU,yBAAwBkB,SAAAA,GAAW,IAAAhC,EAAMgC,EAANhC,WACnDd,IACA,IAAI3E,EAAaH,EAAcC,EAAO2F,EAAO1F,wBAE7C,OAAA2F,QAAAC,QAAO,CACL+B,qBAAsBlH,EAAcV,EAAOE,IAE/C,CAAC,MAAA1B,GAAA,OAAAoH,QAAAE,OAAAtH,EAAA,CAAA,GAED8F,EAAQmC,UAAU,gCAA+B,SAAAoB,GAAW,IAAAlC,EAAMkC,EAANlC,OAAY,IACtEd,IACA,IAAI3E,EAAaH,EAAcC,EAAO2F,EAAO1F,wBAE7C,OAAKC,EAAWuB,gBAEfmE,QAAAC,QAGciC,EAAAA,eAAevC,IAAmB,WAAA,OAAMrF,EAAWuB,iBAAkB,IAACsF,KAAA,SAAAgB,GADrF,MAAO,CACLC,MAAKD,EACL,GALAnC,QAAAC,QAAO,CAAEmC,MAAO,MAMpB,CAAC,MAAAxJ,GAAA,OAAAoH,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmC,UAAU,4BAA2B,SAAAwB,GAAW,IAAAtC,EAAMsC,EAANtC,OAAY,IAClEd,IACA,IAAI3E,EAAaH,EAAcC,EAAO2F,EAAO1F,wBAE7C,OAAKC,EAAW2B,eAEf+D,QAAAC,QAEwBiC,EAAAA,eAAevC,IAAmB,WAAA,OACzDrF,EAAW2B,eAAgB,CACzBqG,cAAevC,EAAOuC,cACtBC,SAAUxC,EAAOwC,UACjB,IACHpB,KAAA,SALGqB,GAAYC,IAAAA,EAOhB,MAAO,CAAE/J,SAAS,EAAM0J,MAA0BK,OAArBA,EAAc,MAAZD,OAAY,EAAZA,EAAcJ,OAAKK,EAAI1C,EAAOwC,SAAW,GAVtEvC,QAAAC,QAAO,CAAEvH,SAAS,EAAM0J,MAAOrC,EAAOwC,UAW1C,CAAC,MAAA3J,GAAAoH,OAAAA,QAAAE,OAAAtH,MAED8F,EAAQmC,UAAU,yBAAwB6B,SAAAA,GAAW,IAAA3C,EAAM2C,EAAN3C,WAAY4C,IAsBhCC,EAtBgCD,WAAAE,GAAAD,OAAAA,EAAAC,EAsBxD,CAAEtC,OAAQ6B,EAAc,EArB/BnD,IACA,IAAI3E,EAAaH,EAAcC,EAAO2F,EAAO1F,wBAEzC+H,EAAQrC,EAAOqC,MAEf9H,EAAWkB,cACb4G,EAAQjK,EACNmC,EAAWkB,YACX4G,EACA,OAAM,+CACyCrC,EAAO1F,yBAEzD,IAAAyI,EAEG,WAAA,GAAA,cAAexI,EAAU,OAAA0F,QAAAC,QACLiC,EAAAA,eAAevC,IAAmB,WAAA,OACtDrF,EAAWyI,UAAU,CAAEX,MAAAA,GAAQ,IAChCjB,KAAA,SAFG6B,UAG+BJ,IAA5B,CAAErC,OAAQyC,EAAUzC,OAAQ,EAAA,CAJjC,GAIiC,OAAAP,QAAAC,QAAA6C,GAAAA,EAAA3B,KAAA2B,EAAA3B,KAAAwB,GAAAA,EAAAG,GAIvC,CAAC,MAAAlK,UAAAoH,QAAAE,OAAAtH,MAED8F,EAAQmC,UAAU,qDAA2CoC,GAAA,IAAWlD,EAAMkD,EAANlD,OAAY,IAAA,IA4BhFmD,EA5BgFC,EAAA,SAAAC,GAAA,GAAAF,EAAAE,OAAAA,EAwBlF,MAAM,IAAIzK,EAAAA,aACRyG,EAAAA,wBAAwB,CACtB7G,mFAAoFwH,EAAO1F,yBAE7F,EA3BF4E,IACA,IAAI3E,EAAaH,EAAcC,EAAO2F,EAAO1F,wBAAwBgJ,gBAEjE,mBAAoB/I,EAAU0F,OAAAA,QAAAC,QACRiC,EAAcA,eAACvC,IAAmB,WACxD,OAAArF,EAAWgJ,eAAe,CACxBC,KAAMxD,EAAOwD,KACb3C,MAAOb,EAAOa,MACd4C,YAAazD,EAAOyD,YACpBpB,MAAOrC,EAAOqC,MACdqB,SAAU1D,EAAO0D,SACjBC,aAAc3D,EAAO2D,aACrBxI,OAAQ6E,EAAO7E,OACfyI,cAAe5D,EAAO4D,eAAiB,CAAA,GACvC,IACHxC,cAXGyC,GAgBHC,OAAAX,EAAAW,EAHM,CACLtD,OAAQqD,EAAYrD,OACpB6B,MAAOwB,EAAYxB,MACpB,aAAApC,QAAAC,QAAAoD,GAAAA,EAAAlC,KAAAkC,EAAAlC,KAAAgC,GAAAA,EAAAE,GAQL,CAAC,MAAAzK,GAAAoH,OAAAA,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmC,UAAU,oCAAmCiD,SAAAA,OAAW/D,EAAM+D,EAAN/D,OAAM,IAAMgE,IA2BxEC,EA3BwED,WAAAE,MAAAD,EAAA,OAAAC,EAuB1E,MAAU,IAAAtL,EAAAA,aACRyG,EAAAA,wBAAwB,CACtB7G,QAAgFwH,uEAAAA,EAAO1F,yBAEzF,EA1BF4E,IACA,IAAI3E,EAAaH,EAAcC,EAAO2F,EAAO1F,wBAAwB6J,EAEjE,WAAA,GAAA,wBAAyB5J,EAAU,OAAA0F,QAAAC,QAClBiC,EAAcA,eAACvC,IAAmB,WAAA,OACnDrF,EAAW6J,oBAAoB,CAC7BX,YAAazD,EAAOyD,YACpB5C,MAAOb,EAAOa,MACdwB,MAAOrC,EAAOqC,MACdqB,SAAU1D,EAAO0D,SACjBC,aAAc3D,EAAO2D,aACrBxI,OAAQ6E,EAAO7E,QACf,IACHiG,KAAA,SATGiD,GAeH,OAAAJ,EAAA,EAJM,CACLK,iBAAkBD,EAAOE,IACzBlC,MAAOgC,EAAOhC,MACduB,cAAeS,EAAOT,cACvB,EAAA3D,CAhBC,GAgBDA,OAAAA,QAAAC,QAAAiE,GAAAA,EAAA/C,KAAA+C,EAAA/C,KAAA4C,GAAAA,EAAAG,GAQL,CAAC,MAAAtL,UAAAoH,QAAAE,OAAAtH,EAAA,CAAA,GAED8F,EAAQmC,UAAU,mCAAyB0D,GAAA,IAAWxE,EAAMwE,EAANxE,OAAM,QAsBxDyE,EAtB8DC,EAAA,SAAAC,GAAA,GAAAF,EAAA,OAAAE,EAkBhE,MAAU,IAAA/L,EAAAA,aACRyG,EAAAA,wBAAwB,CACtB7G,QAAsEwH,6DAAAA,EAAO1F,yBAE/E,EArBF4E,IACA,IAAI3E,EAAaH,EAAcC,EAAO2F,EAAO1F,wBAAwBsK,EAAA,WAAA,GAEjErK,EAAW4B,kBAAU8D,QAAAC,QACAiC,EAAcA,eAACvC,IAAmB,WACvD,OAAArF,EAAW4B,WAAY,CACrBqE,OAAQR,EAAOQ,OACf6B,MAAOrC,EAAOqC,MACdlH,OAAQ6E,EAAO7E,QACf,IACHiG,KANGyD,SAAAA,GAUH,OAAAJ,EAAA,EAFM,CACLK,QAASD,EAAWC,QACrB,EAAA7E,CAbkE,GAalEA,OAAAA,QAAAC,QAAA0E,GAAAA,EAAAxD,KAAAwD,EAAAxD,KAAAsD,GAAAA,EAAAE,GAQL,CAAC,MAAA/L,GAAA,OAAAoH,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmC,UAAU,mCAAkC,SAAAiE,GAAW,IAAA/E,EAAM+E,EAAN/E,OAAY,IAAA,IAyBvEgF,EAzBuEC,EAAAA,SAAAC,GAAAF,GAAAA,EAAAE,OAAAA,EAqBzE,UAAUtM,EAAYA,aACpByG,EAAuBA,wBAAC,CACtB7G,QAAO,kEAAoEwH,EAAO1F,yBAEpF,EAxBF4E,IACA,IAAI3E,EAAaH,EAAcC,EAAO2F,EAAO1F,wBAAwB6K,EAAA,WAAA,GAEjE,uBAAwB5K,GAAcA,EAAWyB,mBAAkB,OAAAiE,QAAAC,QAC9CiC,EAAcA,eAACvC,IAAmB,kBACvDrF,EAAWyB,mBAAoB,CAC7BwE,OAAQR,EAAOQ,OACf6B,MAAOrC,EAAOqC,MACdqB,SAAU1D,EAAO0D,SACjBC,aAAc3D,EAAO2D,aACrBxI,OAAQ6E,EAAO7E,QACf,IACHiG,KAAA,SARGgE,GAaH,OAAAJ,EAAA,EAHM,CACLxE,OAAQ4E,EAAW5E,OACnB6B,MAAO+C,EAAW/C,MACnB,EAAApC,CAhBkE,GAgBlEA,OAAAA,QAAAC,QAAAiF,GAAAA,EAAA/D,KAAA+D,EAAA/D,KAAA6D,GAAAA,EAAAE,GAQL,CAAC,MAAAtM,GAAA,OAAAoH,QAAAE,OAAAtH,EAAA,CAAA,GAED8F,EAAQmC,UAAU,sBAAqB,SAAAuE,GAAuB,IAG5D,OAFAnG,IAEAe,QAAAC,QAAO,CACL3D,QAASlC,EAAMkC,QAAQtD,IAAI,SAAA0D,GAAK,OAAAD,EAAUrC,EAAOsC,EAAE,IAEvD,CAAC,MAAA9D,GAAA,OAAAoH,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmC,UAAU,oBAAmB,SAAAwE,GAAW,IAAAtF,EAAMsF,EAANtF,OAAM,IACpDd,IACA,IAAI5C,EAASF,EAAU/B,EAAO2F,EAAO3D,UAErC,OAAA4D,QAAAC,QAAO,CACL5D,OAAQI,EAAUrC,EAAOiC,IAE7B,CAAC,MAAAzD,GAAAoH,OAAAA,QAAAE,OAAAtH,EAAA,CAAA,GAED8F,EAAQmC,UAAU,4BAA2ByE,SAAAA,OAAWvF,EAAMuF,EAANvF,WAAYwF,IAAAA,EAC9D3L,EAAMyF,IACNhD,EAASG,EAAkBpC,EAAO,OAAQ2F,EAAO3D,UAEjDgG,EAAQjK,EACVkE,EAAOb,YACPuE,EAAOqC,MACP,sCAC8BrC,EAAO3D,UAGnCoJ,EAAU,IAAI5F,EAAYA,aAAChG,EAAIiF,OAAQuD,EAAe,OAAVmD,EAAE3L,EAAIY,WAAI,EAAR+K,EAAUhF,OAASnG,EAAMG,KAAMwE,GAAQ,OAAAiB,QAAAC,QACzEiC,EAAcA,eAACsD,EAAS,WAAA,OAAMnJ,EAAOoJ,iBAAiBD,EAAQ,IAACrE,KAAA,SAA3EuE,GAEJ,MAAO,CAAEnF,OAAQmF,EAAInF,OAAQhI,QAASmN,EAAInN,QAAU,EACtD,CAAC,MAAAK,UAAAoH,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmC,UAAU,2CAAiC8E,GAAA,IAAW5F,EAAM4F,EAAN5F,WAAY6F,IAAAA,EACpEhM,EAAMyF,IACNhD,EAASG,EAAkBpC,EAAO,UAAW2F,EAAO3D,UAEpDgG,EAAQjK,EACVkE,EAAOb,YACPuE,EAAOqC,MACP,yCACiCrC,EAAO3D,UAGtCoJ,EAAU,IAAI5F,EAAAA,aAAahG,EAAIiF,OAAQuD,EAAe,OAAVwD,EAAEhM,EAAIY,WAAI,EAARoL,EAAUrF,OAASnG,EAAMG,KAAMwE,GAAQ,OAAAiB,QAAAC,QACzEiC,EAAcA,eAACsD,EAAS,WAAA,OAAMnJ,EAAOwJ,YAAYL,EAAQ,IAACrE,KAAA,SAAtEuE,GAEJ,MAAO,CAAE1K,GAAI0K,EAAI1K,GAAIhB,KAAM0L,EAAI1L,KAAMuG,OAAQmF,EAAInF,OAAS,EAC5D,CAAC,MAAA3H,GAAAoH,OAAAA,QAAAE,OAAAtH,EAAA,CAAA,GAED8F,EAAQmC,UAAU,oCAAmCiF,SAAAA,GAAW,IAAA/F,EAAM+F,EAAN/F,OAAM,QAAMgG,EACtEnM,EAAMyF,IACNhD,EAASG,EAAkBpC,EAAO,UAAW2F,EAAO3D,UAExD,IAAKC,EAAO2J,WACV,MAAU,IAAArN,EAAYA,aACpBkC,EAAeA,gBAAC,CACdtC,QAAqDwH,4CAAAA,EAAO3D,YAKlE,IAAIoJ,EAAU,IAAI5F,EAAYA,aAC5BhG,EAAIiF,OACJ,CAAE+B,MAAOb,EAAOa,OAChBmF,OADuBA,EACvBnM,EAAIY,WAAJuL,EAAAA,EAAUxF,OACVnG,EAAMG,KACNwE,GACA,OAAAiB,QAAAC,QACciC,EAAcA,eAACsD,EAAS,WAAA,OAAMnJ,EAAO2J,WAAYR,EAAQ,IAACrE,KAAA,SAAtEuE,GAEJ,MAAO,CAAEO,OAAQP,EAAIO,OAAQC,aAAcR,EAAIQ,aAAe,EAChE,CAAC,MAAAtN,GAAA,OAAAoH,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmC,UAAU,uCAAsC,SAAAsF,GAAW,IAAApG,EAAMoG,EAANpG,OAAY,IAAA,IAAAqG,EACzExM,EAAMyF,IACNhD,EAASG,EAAkBpC,EAAO,UAAW2F,EAAO3D,UAExD,IAAKC,EAAOgK,cACV,MAAM,IAAI1N,eACRkC,EAAAA,gBAAgB,CACdtC,QAAO,qDAAuDwH,EAAO3D,YAK3E,IAAIkK,EAAM,IAAIC,QAAQxG,EAAOuE,IAAK,CAChCkC,OAAQzG,EAAOyG,OACfC,QAAS1G,EAAO0G,QAChBC,KAAM3G,EAAO2G,KACTC,WAAWC,KAAKC,KAAK9G,EAAO2G,KAAKI,SAAU,SAAAC,GAAK,OAAAA,EAAEC,WAAW,EAAE,GAC/D,OAGFxB,EAAU,IAAI5F,EAAYA,aAC5BhG,EAAIiF,OACJ,CAAEoI,QAASX,EAAK1F,MAAOb,EAAOa,OACtB,OAD6BwF,EACrCxM,EAAIY,WAAI,EAAR4L,EAAU7F,OACVnG,EAAMG,KACNwE,GACA,OAAAiB,QAAAC,QACciC,EAAcA,eAACsD,EAAS,WAAM,OAAAnJ,EAAOgK,cAAeb,EAAQ,IAACrE,KAAA,SAAzEuE,GAEJ,MAAO,CAAEO,OAAQP,EAAIO,OAAQC,aAAcR,EAAIQ,aAAe,EAChE,CAAC,MAAAtN,UAAAoH,QAAAE,OAAAtH,MAED8F,EAAQmC,UAAU,kDAAwCqG,GAAA,IAAWnH,EAAMmH,EAANnH,OAAY,IAAA,IAAAoH,EAC3EvN,EAAMyF,IACNhD,EAASG,EAAkBpC,EAAO,UAAW2F,EAAO3D,UAExD,IAAKC,EAAOkB,oBACV,MAAM,IAAI5E,EAAAA,aACRkC,EAAAA,gBAAgB,CACdtC,sEAAuEwH,EAAO3D,YAKpF,IAAIoJ,EAAU,IAAI5F,EAAAA,aAChBhG,EAAIiF,OACJ,CAAEuI,eAAgBrH,EAAOqH,gBACzBD,OADyCA,EACzCvN,EAAIY,WAAJ2M,EAAAA,EAAU5G,OACVnG,EAAMG,KACNwE,GACA,OAAAiB,QAAAC,QACciC,EAAAA,eAAesD,EAAS,WAAA,OAAMnJ,EAAOkB,oBAAqBiI,EAAQ,IAACrE,cAA/EuE,GAEJ,MAAO,CAAE2B,oBAAqB3B,EAAI2B,oBAAqBzG,MAAO8E,EAAI9E,MAAQ,EAC5E,CAAC,MAAAhI,GAAA,OAAAoH,QAAAE,OAAAtH,EAAC,CAAA,GAEF8F,EAAQmC,UAAU,2CAA0C,SAAAyG,GAAA,IAAWvH,EAAMuH,EAANvH,OAAY,IAAA,IAAAwH,EAC7E3N,EAAMyF,IACNhD,EAASG,EAAkBpC,EAAO,UAAW2F,EAAO3D,UAExD,IAAKC,EAAOoB,sBACV,UAAU9E,EAAYA,aACpBkC,EAAeA,gBAAC,CACdtC,QAAO,gEAAkEwH,EAAO3D,YAKtF,IAAIoJ,EAAU,IAAI5F,EAAAA,aAChBhG,EAAIiF,OACJ,CACEuI,eAAgBrH,EAAOqH,eACvBC,oBAAqBtH,EAAOsH,oBAC5BzG,MAAOb,EAAOa,OAEhB2G,OADCA,EACD3N,EAAIY,WAAJ+M,EAAAA,EAAUhH,OACVnG,EAAMG,KACNwE,GACA,OAAAiB,QAAAC,QACIiC,EAAcA,eAACsD,EAAS,WAAM,OAAAnJ,EAAOoB,sBAAuB+H,EAAQ,IAACrE,KAE3E,WAAA,MAAO,CAAA,CAAG,EACZ,CAAC,MAAAvI,GAAA,OAAAoH,QAAAE,OAAAtH,EAAA,CAAA,GAAEoH,QAAAC,SACL,CAAC,MAAArH,GAAA,OAAAoH,QAAAE,OAAAtH,EAAC,CAAA,EAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slates/provider-handler",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
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.
|
|
35
|
-
"@slates/provider": "^1.0.0-rc.
|
|
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 {
|
|
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 {
|
|
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
|
|
214
|
-
|
|
215
|
-
|
|
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
|
|
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
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
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
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
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
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
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
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
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
|
|
377
|
-
|
|
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
|
|
395
|
-
|
|
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
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
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
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
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
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
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
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
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
|
});
|