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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/index.cjs +954 -2
  2. package/dist/index.d.cts +8 -0
  3. package/dist/index.d.ts +6 -3
  4. package/dist/index.module.js +926 -2
  5. package/package.json +10 -9
  6. package/src/index.ts +480 -84
  7. package/src/spec.ts +9 -8
  8. package/src/validation.ts +1 -1
  9. package/dist/action/action.d.ts +0 -90
  10. package/dist/action/action.d.ts.map +0 -1
  11. package/dist/action/builder.d.ts +0 -27
  12. package/dist/action/builder.d.ts.map +0 -1
  13. package/dist/action/index.d.ts +0 -5
  14. package/dist/action/index.d.ts.map +0 -1
  15. package/dist/action/tool.d.ts +0 -11
  16. package/dist/action/tool.d.ts.map +0 -1
  17. package/dist/action/trigger.d.ts +0 -14
  18. package/dist/action/trigger.d.ts.map +0 -1
  19. package/dist/auth/auth.d.ts +0 -26
  20. package/dist/auth/auth.d.ts.map +0 -1
  21. package/dist/auth/index.d.ts +0 -3
  22. package/dist/auth/index.d.ts.map +0 -1
  23. package/dist/auth/types.d.ts +0 -148
  24. package/dist/auth/types.d.ts.map +0 -1
  25. package/dist/axios/index.d.ts +0 -4
  26. package/dist/axios/index.d.ts.map +0 -1
  27. package/dist/config/config.d.ts +0 -22
  28. package/dist/config/config.d.ts.map +0 -1
  29. package/dist/config/index.d.ts +0 -2
  30. package/dist/config/index.d.ts.map +0 -1
  31. package/dist/context/context.d.ts +0 -20
  32. package/dist/context/context.d.ts.map +0 -1
  33. package/dist/context/hook.d.ts +0 -4
  34. package/dist/context/hook.d.ts.map +0 -1
  35. package/dist/context/index.d.ts +0 -2
  36. package/dist/context/index.d.ts.map +0 -1
  37. package/dist/error/base.d.ts +0 -5
  38. package/dist/error/base.d.ts.map +0 -1
  39. package/dist/error/declaration.d.ts +0 -6
  40. package/dist/error/declaration.d.ts.map +0 -1
  41. package/dist/error/index.d.ts +0 -3
  42. package/dist/error/index.d.ts.map +0 -1
  43. package/dist/index.cjs.map +0 -1
  44. package/dist/index.d.ts.map +0 -1
  45. package/dist/index.modern.js +0 -2
  46. package/dist/index.modern.js.map +0 -1
  47. package/dist/index.module.js.map +0 -1
  48. package/dist/index.umd.js +0 -2
  49. package/dist/index.umd.js.map +0 -1
  50. package/dist/spec.d.ts +0 -14
  51. package/dist/spec.d.ts.map +0 -1
  52. package/dist/specification/index.d.ts +0 -3
  53. package/dist/specification/index.d.ts.map +0 -1
  54. package/dist/specification/slate.d.ts +0 -15
  55. package/dist/specification/slate.d.ts.map +0 -1
  56. package/dist/specification/specification.d.ts +0 -30
  57. package/dist/specification/specification.d.ts.map +0 -1
  58. package/dist/specification/zero.d.ts +0 -13
  59. package/dist/specification/zero.d.ts.map +0 -1
  60. package/dist/state.d.ts +0 -8
  61. package/dist/state.d.ts.map +0 -1
  62. package/dist/tokens.d.ts +0 -34
  63. package/dist/tokens.d.ts.map +0 -1
  64. package/dist/validation.d.ts +0 -5
  65. package/dist/validation.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/validation.ts","../src/spec.ts","../src/state.ts","../src/index.ts"],"sourcesContent":["import { ServiceError, validationError } from '@lowerdeck/error';\nimport z from 'zod';\n\nexport let zodToValidationError = (entity: string, message: string, e: z.ZodError) => {\n return validationError({\n message,\n entity,\n errors: e.issues.map(i => ({\n ...i,\n path: i.path.map(p => String(p))\n }))\n });\n};\n\nexport let validate = <T>(\n schema: z.ZodType<T>,\n data: unknown,\n entity: string,\n message: string\n): T => {\n let result = schema.safeParse(data);\n if (!result.success) {\n throw new ServiceError(zodToValidationError(entity, message, result.error));\n }\n\n return result.data;\n};\n\nexport let toJsonSchema = (schema: z.ZodType<any>) =>\n schema.toJSONSchema({\n unrepresentable: 'any',\n override: ctx => {\n let def = ctx.zodSchema._zod.def;\n\n if (def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n if (def.type === 'bigint') {\n ctx.jsonSchema.type = 'number';\n }\n }\n });\n","import { badRequestError, notFoundError, ServiceError } from '@lowerdeck/error';\nimport { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';\nimport { Slate, SlateDefaultPollingIntervalSeconds } from '@slates/provider';\nimport z from 'zod';\nimport { toJsonSchema } from './validation';\n\nexport let getAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n authenticationMethodId: string\n) => {\n let authMethod = slate.spec.auth.authStack.find(m => m.key == authenticationMethodId);\n if (!authMethod) {\n throw new ServiceError(\n badRequestError({\n message: `Invalid authentication method ID: ${authenticationMethodId}`\n })\n );\n }\n\n return authMethod;\n};\n\nexport let mapAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>\n): SlateAuthenticationMethod => ({\n id: m.key,\n name: m.name,\n type: m.type,\n\n scopes:\n 'scopes' in m\n ? m.scopes.map(s => ({\n id: s.scope,\n title: s.title,\n description: s.description\n }))\n : undefined,\n\n inputSchema: toJsonSchema(m.inputSchema ?? z.object({})),\n outputSchema: toJsonSchema(slate.spec.auth.outputSchema),\n\n capabilities: {\n getDefaultInput: { enabled: !!('getDefaultInput' in m && m.getDefaultInput) },\n handleTokenRefresh: {\n enabled: !!('handleTokenRefresh' in m && m.handleTokenRefresh)\n },\n handleChangedInput: {\n enabled: !!m.onInputChanged\n },\n getProfile: { enabled: !!m.getProfile }\n }\n});\n\nexport let getAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n actionId: string\n) => {\n let action = slate.actions.find(m => m.key == actionId);\n if (!action) {\n throw new ServiceError(notFoundError(`action`, actionId));\n }\n\n return action;\n};\n\nexport let getActionWithType = <\n Type extends 'tool' | 'trigger',\n ConfigType extends {},\n AuthType extends {}\n>(\n slate: Slate<ConfigType, AuthType>,\n type: Type,\n actionId: string\n): ReturnType<typeof getAction<ConfigType, AuthType>> & { type: Type } => {\n let action = getAction(slate, actionId);\n if (action.type != type) {\n throw new ServiceError(\n badRequestError({\n message: `Action with ID ${actionId} is not of type ${type}`\n })\n );\n }\n\n return action as any;\n};\n\nexport let mapAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n a: ReturnType<typeof getAction<ConfigType, AuthType>>\n): SlatesAction => {\n let base = {\n id: a.key,\n name: a.name,\n description: a.description,\n instructions: a.instructions,\n constraints: a.constraints,\n tags: a.tags,\n metadata: a.metadata,\n\n inputSchema: toJsonSchema(a.inputSchema),\n outputSchema: toJsonSchema(a.outputSchema)\n };\n\n if (a.type == 'tool') {\n return {\n ...base,\n type: 'action.tool',\n capabilities: {}\n };\n }\n\n return {\n ...base,\n type: 'action.trigger',\n capabilities: {},\n\n invocation:\n a.source == 'polling'\n ? {\n type: 'polling',\n intervalSeconds: a.polling.intervalInSeconds ?? SlateDefaultPollingIntervalSeconds\n }\n : {\n type: 'webhook',\n autoRegistration: !!a.autoRegisterWebhook,\n autoUnregistration: !!a.autoUnregisterWebhook\n }\n };\n};\n","export class State<T> {\n #value: T;\n\n get value() {\n return this.#value;\n }\n\n get() {\n return this.#value;\n }\n\n set(value: T) {\n this.#value = value;\n }\n\n constructor(initialValue: T) {\n this.#value = initialValue;\n }\n}\n","import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';\nimport { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';\nimport {\n runWithContext,\n Slate,\n SlateContext,\n SlateLogger,\n SlateLogListener\n} from '@slates/provider';\nimport { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';\nimport { State } from './state';\nimport { toJsonSchema, validate } from './validation';\n\nexport let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n listeners: SlateLogListener[]\n) =>\n createSlatesProviderProtoHandler(async manager => {\n let protocol = new State<string | null>(null);\n let participants = new State<SlatesParticipant[] | null>(null);\n\n let auth = new State<{ authenticationMethodId: string; output: AuthType } | null>(null);\n let config = new State<{ value: ConfigType } | null>(null);\n\n let session = new State<{ id: string; state: any } | null>(null);\n\n let logger = new SlateLogger(listeners);\n\n let getContextBasic = () => {\n let currentProtocol = protocol.get();\n let currentParticipants = participants.get();\n\n if (!currentProtocol || !currentParticipants) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Connection context has not been initialized'\n })\n );\n }\n\n return {\n protocol: currentProtocol,\n participants: currentParticipants\n };\n };\n\n let getContextFull = () => {\n let basic = getContextBasic();\n\n let currentConfig = config.get();\n let currentSession = session.get();\n let currentAuth = auth.get();\n\n if (\n !currentConfig ||\n !currentSession ||\n (!currentAuth && slate.spec.auth.authStack.length > 0)\n ) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Session context has not been initialized'\n })\n );\n }\n\n return {\n ...basic,\n config: currentConfig.value,\n session: currentSession,\n auth: currentAuth\n };\n };\n\n let getEmptyContext = () => new SlateContext({}, {}, {}, slate.spec as any, logger);\n\n manager.onNotification('slates/hello', async ({ params }) => {\n protocol.set(params.protocol);\n });\n\n manager.onNotification('slates/participant.set', async ({ params }) => {\n if (!protocol.get()) {\n throw new ServiceError(\n preconditionFailedError({ message: 'Connection protocol has not been initialized' })\n );\n }\n\n participants.set(params.participants);\n });\n\n manager.onNotification('slates/auth.set', async ({ params }) => {\n getContextBasic();\n getAuthMethod(slate, params.authenticationMethodId); // validate method ID\n\n let valRes = validate(\n slate.spec.authSchema,\n params.output,\n 'auth',\n `Invalid authentication output for method ID: ${params.authenticationMethodId}`\n );\n\n auth.set({\n authenticationMethodId: params.authenticationMethodId,\n output: valRes\n });\n });\n\n manager.onNotification('slates/config.set', async ({ params }) => {\n getContextBasic();\n\n let value = validate(\n slate.spec.configSchema,\n params.config,\n 'config',\n 'Invalid configuration'\n );\n\n config.set({ value });\n });\n\n manager.onNotification('slates/session.start', async ({ params }) => {\n getContextBasic();\n\n session.set({\n id: params.sessionId,\n state: params.state\n });\n });\n\n manager.onRequest('slates/config.changed', async ({ params }) => {\n getContextBasic();\n\n let newConfig = validate(\n slate.spec.config.configSchema,\n params.newConfig,\n 'config',\n 'Invalid configuration'\n );\n\n let configChanged = slate.spec.config.handlers.configChanged;\n if (!configChanged) {\n return { success: true, config: newConfig };\n }\n\n let updatedConfig = await configChanged({\n previousConfig: params.previousConfig as ConfigType | null,\n newConfig\n });\n\n return { success: true, config: updatedConfig?.config ?? newConfig };\n });\n\n manager.onRequest('slates/config.get_default', async ({ params }) => {\n getContextBasic();\n\n let getDefaultConfig = slate.spec.config.handlers.getDefaultConfig;\n if (!getDefaultConfig) {\n return { config: null };\n }\n\n let defaultConfig = await getDefaultConfig();\n return { config: defaultConfig };\n });\n\n manager.onRequest('slates/config.schema.get', async ({ params }) => {\n getContextBasic();\n\n return { schema: toJsonSchema(slate.spec.configSchema) };\n });\n\n manager.onRequest('slates/provider.identify', async ({ params }) => {\n getContextBasic();\n\n return {\n protocol: 'slates@2026-01-01',\n provider: {\n type: 'provider',\n id: slate.spec.key,\n name: slate.spec.name,\n description: slate.spec.description,\n metadata: slate.spec.parameters.metadata\n }\n };\n });\n\n manager.onRequest('slates/auth.methods.list', async ({ params }) => {\n getContextBasic();\n\n return {\n authenticationMethods: slate.spec.auth.authStack.map(m => mapAuthMethod(slate, m))\n };\n });\n\n manager.onRequest('slates/auth.method.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n return {\n authenticationMethod: mapAuthMethod(slate, authMethod)\n };\n });\n\n manager.onRequest('slates/auth.input.get_default', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.getDefaultInput) {\n return { input: null };\n }\n\n return {\n input: await runWithContext(getEmptyContext(), () => authMethod.getDefaultInput!())\n };\n });\n\n manager.onRequest('slates/auth.input.changed', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.onInputChanged) {\n return { success: true, input: params.newInput };\n }\n\n let updatedInput = await runWithContext(getEmptyContext(), () =>\n authMethod.onInputChanged!({\n previousInput: params.previousInput as any | null,\n newInput: params.newInput\n })\n );\n\n return { success: true, input: updatedInput?.input ?? params.newInput };\n });\n\n manager.onRequest('slates/auth.output.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n let input = params.input;\n\n if (authMethod.inputSchema) {\n input = validate(\n authMethod.inputSchema,\n input,\n 'auth',\n `Invalid authentication input for method ID: ${params.authenticationMethodId}`\n );\n }\n\n if ('getOutput' in authMethod) {\n let outputRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getOutput({ input })\n );\n return { output: outputRes.output };\n }\n\n return { output: input as any };\n });\n\n manager.onRequest('slates/auth.authorization_callback.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleCallback' in authMethod) {\n let callbackRes = await runWithContext(getEmptyContext(), () =>\n authMethod.handleCallback({\n code: params.code,\n state: params.state,\n redirectUri: params.redirectUri,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes,\n callbackState: params.callbackState || {}\n })\n );\n\n return {\n output: callbackRes.output,\n input: callbackRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization callback handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.authorization_url.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('getAuthorizationUrl' in authMethod) {\n let urlRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getAuthorizationUrl({\n redirectUri: params.redirectUri,\n state: params.state,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n })\n );\n\n return {\n authorizationUrl: urlRes.url,\n input: urlRes.input,\n callbackState: urlRes.callbackState\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization URL retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.profile.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (authMethod.getProfile) {\n let profileRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getProfile!({\n output: params.output as any,\n input: params.input,\n scopes: params.scopes\n })\n );\n\n return {\n profile: profileRes.profile\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support profile retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.token_refresh.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {\n let refreshRes = await runWithContext(getEmptyContext(), () =>\n authMethod.handleTokenRefresh!({\n output: params.output as any,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n })\n );\n\n return {\n output: refreshRes.output,\n input: refreshRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support token refresh handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/actions.list', async ({ params }) => {\n getContextBasic();\n\n return {\n actions: slate.actions.map(a => mapAction(slate, a))\n };\n });\n\n manager.onRequest('slates/action.get', async ({ params }) => {\n getContextBasic();\n let action = getAction(slate, params.actionId);\n\n return {\n action: mapAction(slate, action)\n };\n });\n\n manager.onRequest('slates/action.tool.invoke', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'tool', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid input for tool ID: ${params.actionId}`\n );\n\n let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);\n let res = await runWithContext(context, () => action.handleInvocation(context));\n\n return { output: res.output, message: res.message };\n });\n\n manager.onRequest('slates/action.trigger.map_event', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid event for trigger ID: ${params.actionId}`\n );\n\n let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);\n let res = await runWithContext(context, () => action.handleEvent(context));\n\n return { id: res.id, type: res.type, output: res.output };\n });\n\n manager.onRequest('slates/action.trigger.poll_events', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.pollEvents) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support polling: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n { state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.pollEvents!(context));\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_handle', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.handleRequest) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook requests: ${params.actionId}`\n })\n );\n }\n\n let req = new Request(params.url, {\n method: params.method,\n headers: params.headers,\n body: params.body\n ? Uint8Array.from(atob(params.body.content), c => c.charCodeAt(0))\n : null\n });\n\n let context = new SlateContext(\n ctx.config,\n { request: req, state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.handleRequest!(context));\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_register', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoRegisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-registration: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n { webhookBaseUrl: params.webhookBaseUrl },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.autoRegisterWebhook!(context));\n\n return { registrationDetails: res.registrationDetails, state: res.state };\n });\n\n manager.onRequest('slates/action.trigger.webhook_unregister', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoUnregisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-unregistration: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n {\n webhookBaseUrl: params.webhookBaseUrl,\n registrationDetails: params.registrationDetails,\n state: params.state\n },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n await runWithContext(context, () => action.autoUnregisterWebhook!(context));\n\n return {};\n });\n });\n"],"names":["validate","schema","data","entity","message","result","safeParse","success","ServiceError","e","validationError","errors","issues","map","i","_extends","path","p","String","zodToValidationError","error","toJsonSchema","toJSONSchema","unrepresentable","override","ctx","def","zodSchema","_zod","type","jsonSchema","format","getAuthMethod","slate","authenticationMethodId","authMethod","spec","auth","authStack","find","m","key","badRequestError","mapAuthMethod","_m$inputSchema","id","name","scopes","s","scope","title","description","undefined","inputSchema","z","object","outputSchema","capabilities","getDefaultInput","enabled","handleTokenRefresh","handleChangedInput","onInputChanged","getProfile","getAction","actionId","action","actions","notFoundError","getActionWithType","mapAction","a","_a$polling$intervalIn","instructions","constraints","tags","metadata","invocation","source","intervalSeconds","polling","intervalInSeconds","SlateDefaultPollingIntervalSeconds","autoRegistration","autoRegisterWebhook","autoUnregistration","autoUnregisterWebhook","State","initialValue","Object","defineProperty","_value","writable","value","_classPrivateFieldLooseBase","_proto","prototype","_createClass","get","this","set","listeners","createSlatesProviderProtoHandler","manager","protocol","participants","config","session","logger","SlateLogger","getContextBasic","currentProtocol","currentParticipants","preconditionFailedError","getContextFull","basic","currentConfig","currentSession","currentAuth","length","getEmptyContext","SlateContext","onNotification","_ref","params","Promise","resolve","reject","_ref2","_ref3","valRes","authSchema","output","_ref4","configSchema","_ref5","sessionId","state","onRequest","_ref6","newConfig","configChanged","handlers","previousConfig","then","updatedConfig","_updatedConfig$config","_ref7","getDefaultConfig","defaultConfig","_ref8","_ref9","provider","parameters","_ref0","authenticationMethods","_ref1","authenticationMethod","_ref10","runWithContext","_runWithContext","input","_ref11","previousInput","newInput","updatedInput","_updatedInput$input","_ref12","_temp2","_exit","_result","_temp","getOutput","outputRes","_ref13","_exit2","_temp4","_result2","_temp3","handleCallback","code","redirectUri","clientId","clientSecret","callbackState","callbackRes","_output$input","_ref14","_temp6","_exit3","_result3","_temp5","getAuthorizationUrl","urlRes","authorizationUrl","url","_ref15","_exit4","_temp8","_result4","_temp7","profileRes","profile","_ref16","_exit5","_temp0","_result5","_temp9","refreshRes","_ref17","_ref18","_ref19","_ctx$auth","context","handleInvocation","res","_ref20","_ctx$auth2","handleEvent","_ref21","_ctx$auth3","pollEvents","inputs","updatedState","_ref22","_ctx$auth4","handleRequest","req","Request","method","headers","body","Uint8Array","from","atob","content","c","charCodeAt","request","_ref23","_ctx$auth5","webhookBaseUrl","registrationDetails","_ref24","_ctx$auth6"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,EAGL,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAK1B,eAAO,IAAI,qBAAqB,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAC5E,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EAClC,WAAW,gBAAgB,EAAE;;CAkgB3B,CAAC"}
@@ -1,2 +0,0 @@
1
- import{base62 as e}from"@lowerdeck/base62";import{memo as t}from"@lowerdeck/memo";class r{constructor(r){this.keys=void 0,this.signer=void 0,this.keys=r,this.signer=(r=>{if("secret"in r){let n=t(()=>crypto.subtle.importKey("raw",(new TextEncoder).encode(r.secret),{name:"HMAC",hash:{name:"SHA-384"}},!1,["sign","verify"]));return{async sign(t){let r=await crypto.subtle.sign({name:"HMAC",hash:{name:"SHA-384"}},await n(),(new TextEncoder).encode(t));return e.encode(new Uint8Array(r))},verify:async(t,r)=>crypto.subtle.verify({name:"HMAC",hash:{name:"SHA-384"}},await n(),new Uint8Array(e.decodeRaw(r)),(new TextEncoder).encode(t))}}{let n=t(async()=>{if("string"==typeof r.privateKey){let e=JSON.parse(r.privateKey);return await crypto.subtle.importKey("jwk",e,{name:"EC"==e.kty?"ECDSA":e.kty,namedCurve:e.crv},!0,["sign"])}return await r.privateKey()}),i=t(async()=>{if("string"==typeof r.publicKey){let e=JSON.parse(r.publicKey);return await crypto.subtle.importKey("jwk",JSON.parse(r.publicKey),{name:"EC"==e.kty?"ECDSA":e.kty,namedCurve:e.crv},!0,["verify"])}return await r.publicKey()});return{async sign(t){let r=await n(),i=await crypto.subtle.sign({name:r.algorithm.name,hash:{name:"SHA-384"}},r,(new TextEncoder).encode(t));return e.encode(new Uint8Array(i))},verify:async(t,r)=>crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-384"}},await i(),new Uint8Array(e.decodeRaw(r)),(new TextEncoder).encode(t))}}})(r)}async sign({type:t,data:r,expiresAt:n}){let i=`${t}_v1_${e.encode(JSON.stringify({d:r,e:null==n?void 0:n.getTime(),c:Date.now()}))}`;return`${i}_${await this.signer.sign(i)}`}async verify({token:t,expectedType:r}){let n=t.split("_");if(n.length<4)return{verified:!1};let i=n.pop(),a=n.pop(),s=n.pop(),c=n.join("_");if(c!=r)return{verified:!1};if("v1"!=s)return{verified:!1};let o=`${c}_${s}_${a}`;if(!await this.signer.verify(o,i))return{verified:!1};let y=JSON.parse(e.decode(a)),d=y.e?new Date(y.e):null;return d&&d<new Date?{verified:!1}:{verified:!0,type:c,expiresAt:d,createdAt:new Date(y.c),data:y.d}}static decode(t){let r=t.split("_");return r.length<4?null:JSON.parse(e.decode(r[r.length-2]))}}export{r as Tokens};
2
- //# sourceMappingURL=index.modern.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/tokens.ts"],"sourcesContent":["import { base62 } from '@lowerdeck/base62';\nimport { memo } from '@lowerdeck/memo';\n\nexport type TokenKeys =\n | {\n privateKey: string | (() => Promise<CryptoKey> | CryptoKey);\n publicKey: string | (() => Promise<CryptoKey> | CryptoKey);\n }\n | {\n secret: string;\n };\n\ntype Signer = {\n sign: (data: string) => Promise<string>;\n verify: (data: string, signature: string) => Promise<boolean>;\n};\n\nlet getSigner = (keys: TokenKeys): Signer => {\n if ('secret' in keys) {\n let keyMemo = memo(() =>\n crypto.subtle.importKey(\n 'raw',\n new TextEncoder().encode(keys.secret),\n { name: 'HMAC', hash: { name: 'SHA-384' } },\n false,\n ['sign', 'verify']\n )\n );\n\n return {\n async sign(data) {\n let signature = await crypto.subtle.sign(\n { name: 'HMAC', hash: { name: 'SHA-384' } },\n await keyMemo(),\n new TextEncoder().encode(data)\n );\n\n return base62.encode(new Uint8Array(signature));\n },\n\n async verify(data, signature) {\n return crypto.subtle.verify(\n { name: 'HMAC', hash: { name: 'SHA-384' } },\n await keyMemo(),\n new Uint8Array(base62.decodeRaw(signature)),\n new TextEncoder().encode(data)\n );\n }\n };\n } else {\n let privateKeyMemo = memo(async () => {\n if (typeof keys.privateKey == 'string') {\n let data = JSON.parse(keys.privateKey) as any;\n\n return await crypto.subtle.importKey(\n 'jwk',\n data,\n { name: data.kty == 'EC' ? 'ECDSA' : data.kty, namedCurve: data.crv },\n true,\n ['sign']\n );\n } else {\n return (await keys.privateKey()) as CryptoKey;\n }\n });\n\n let publicKeyMemo = memo(async () => {\n if (typeof keys.publicKey == 'string') {\n let data = JSON.parse(keys.publicKey) as any;\n\n return await crypto.subtle.importKey(\n 'jwk',\n JSON.parse(keys.publicKey) as any,\n { name: data.kty == 'EC' ? 'ECDSA' : data.kty, namedCurve: data.crv },\n true,\n ['verify']\n );\n } else {\n return (await keys.publicKey()) as CryptoKey;\n }\n });\n\n return {\n async sign(data) {\n let key = await privateKeyMemo();\n\n let signature = await crypto.subtle.sign(\n { name: key.algorithm.name, hash: { name: 'SHA-384' } },\n key,\n new TextEncoder().encode(data)\n );\n\n return base62.encode(new Uint8Array(signature));\n },\n\n async verify(data, signature) {\n return crypto.subtle.verify(\n { name: 'ECDSA', hash: { name: 'SHA-384' } },\n await publicKeyMemo(),\n new Uint8Array(base62.decodeRaw(signature)),\n new TextEncoder().encode(data)\n );\n }\n };\n }\n};\n\nexport class Tokens {\n private signer: Signer;\n constructor(readonly keys: TokenKeys) {\n this.signer = getSigner(keys);\n }\n\n async sign({ type, data, expiresAt }: { type: string; data: any; expiresAt?: Date }) {\n let token = `${type}_v1_${base62.encode(\n JSON.stringify({\n d: data,\n e: expiresAt?.getTime(),\n c: Date.now()\n })\n )}`;\n\n let signature = await this.signer.sign(token);\n return `${token}_${signature}`;\n }\n\n async verify({ token, expectedType }: { expectedType: string; token: string }) {\n let parts = token.split('_');\n if (parts.length < 4) return { verified: false as const };\n\n let signatureBase62 = parts.pop()!;\n let dataBase62 = parts.pop()!;\n let version = parts.pop()!;\n let type = parts.join('_');\n if (type != expectedType) return { verified: false as const };\n\n if (version != 'v1') return { verified: false as const };\n\n let main = `${type}_${version}_${dataBase62}`;\n\n let verified = await this.signer.verify(main, signatureBase62);\n if (!verified) return { verified: false as const };\n\n let data = JSON.parse(base62.decode(dataBase62));\n let expiresAt = data.e ? new Date(data.e) : null;\n if (expiresAt && expiresAt < new Date()) return { verified: false as const };\n\n let createdAt = new Date(data.c);\n\n return {\n verified: true as const,\n\n type,\n expiresAt,\n createdAt,\n data: data.d\n };\n }\n\n static decode(token: string) {\n let parts = token.split('_');\n if (parts.length < 4) return null;\n\n let dataBase62 = parts[parts.length - 2];\n return JSON.parse(base62.decode(dataBase62));\n }\n}\n"],"names":["Tokens","constructor","keys","this","signer","keyMemo","memo","crypto","subtle","importKey","TextEncoder","encode","secret","name","hash","sign","data","signature","base62","Uint8Array","async","verify","decodeRaw","privateKeyMemo","privateKey","JSON","parse","kty","namedCurve","crv","publicKeyMemo","publicKey","key","algorithm","getSigner","type","expiresAt","token","stringify","d","e","getTime","c","Date","now","expectedType","parts","split","length","verified","signatureBase62","pop","dataBase62","version","join","main","decode","createdAt"],"mappings":"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"}
@@ -1 +0,0 @@
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 DELETED
@@ -1,2 +0,0 @@
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
- //# sourceMappingURL=index.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/validation.ts","../src/spec.ts","../src/state.ts","../src/index.ts"],"sourcesContent":["import { ServiceError, validationError } from '@lowerdeck/error';\nimport z from 'zod';\n\nexport let zodToValidationError = (entity: string, message: string, e: z.ZodError) => {\n return validationError({\n message,\n entity,\n errors: e.issues.map(i => ({\n ...i,\n path: i.path.map(p => String(p))\n }))\n });\n};\n\nexport let validate = <T>(\n schema: z.ZodType<T>,\n data: unknown,\n entity: string,\n message: string\n): T => {\n let result = schema.safeParse(data);\n if (!result.success) {\n throw new ServiceError(zodToValidationError(entity, message, result.error));\n }\n\n return result.data;\n};\n\nexport let toJsonSchema = (schema: z.ZodType<any>) =>\n schema.toJSONSchema({\n unrepresentable: 'any',\n override: ctx => {\n let def = ctx.zodSchema._zod.def;\n\n if (def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n if (def.type === 'bigint') {\n ctx.jsonSchema.type = 'number';\n }\n }\n });\n","import { badRequestError, notFoundError, ServiceError } from '@lowerdeck/error';\nimport { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';\nimport { Slate, SlateDefaultPollingIntervalSeconds } from '@slates/provider';\nimport z from 'zod';\nimport { toJsonSchema } from './validation';\n\nexport let getAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n authenticationMethodId: string\n) => {\n let authMethod = slate.spec.auth.authStack.find(m => m.key == authenticationMethodId);\n if (!authMethod) {\n throw new ServiceError(\n badRequestError({\n message: `Invalid authentication method ID: ${authenticationMethodId}`\n })\n );\n }\n\n return authMethod;\n};\n\nexport let mapAuthMethod = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>\n): SlateAuthenticationMethod => ({\n id: m.key,\n name: m.name,\n type: m.type,\n\n scopes:\n 'scopes' in m\n ? m.scopes.map(s => ({\n id: s.scope,\n title: s.title,\n description: s.description\n }))\n : undefined,\n\n inputSchema: toJsonSchema(m.inputSchema ?? z.object({})),\n outputSchema: toJsonSchema(slate.spec.auth.outputSchema),\n\n capabilities: {\n getDefaultInput: { enabled: !!('getDefaultInput' in m && m.getDefaultInput) },\n handleTokenRefresh: {\n enabled: !!('handleTokenRefresh' in m && m.handleTokenRefresh)\n },\n handleChangedInput: {\n enabled: !!m.onInputChanged\n },\n getProfile: { enabled: !!m.getProfile }\n }\n});\n\nexport let getAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n actionId: string\n) => {\n let action = slate.actions.find(m => m.key == actionId);\n if (!action) {\n throw new ServiceError(notFoundError(`action`, actionId));\n }\n\n return action;\n};\n\nexport let getActionWithType = <\n Type extends 'tool' | 'trigger',\n ConfigType extends {},\n AuthType extends {}\n>(\n slate: Slate<ConfigType, AuthType>,\n type: Type,\n actionId: string\n): ReturnType<typeof getAction<ConfigType, AuthType>> & { type: Type } => {\n let action = getAction(slate, actionId);\n if (action.type != type) {\n throw new ServiceError(\n badRequestError({\n message: `Action with ID ${actionId} is not of type ${type}`\n })\n );\n }\n\n return action as any;\n};\n\nexport let mapAction = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n a: ReturnType<typeof getAction<ConfigType, AuthType>>\n): SlatesAction => {\n let base = {\n id: a.key,\n name: a.name,\n description: a.description,\n instructions: a.instructions,\n constraints: a.constraints,\n tags: a.tags,\n metadata: a.metadata,\n\n inputSchema: toJsonSchema(a.inputSchema),\n outputSchema: toJsonSchema(a.outputSchema)\n };\n\n if (a.type == 'tool') {\n return {\n ...base,\n type: 'action.tool',\n capabilities: {}\n };\n }\n\n return {\n ...base,\n type: 'action.trigger',\n capabilities: {},\n\n invocation:\n a.source == 'polling'\n ? {\n type: 'polling',\n intervalSeconds: a.polling.intervalInSeconds ?? SlateDefaultPollingIntervalSeconds\n }\n : {\n type: 'webhook',\n autoRegistration: !!a.autoRegisterWebhook,\n autoUnregistration: !!a.autoUnregisterWebhook\n }\n };\n};\n","export class State<T> {\n #value: T;\n\n get value() {\n return this.#value;\n }\n\n get() {\n return this.#value;\n }\n\n set(value: T) {\n this.#value = value;\n }\n\n constructor(initialValue: T) {\n this.#value = initialValue;\n }\n}\n","import { badRequestError, preconditionFailedError, ServiceError } from '@lowerdeck/error';\nimport { createSlatesProviderProtoHandler, SlatesParticipant } from '@slates/proto';\nimport {\n runWithContext,\n Slate,\n SlateContext,\n SlateLogger,\n SlateLogListener\n} from '@slates/provider';\nimport { getAction, getActionWithType, getAuthMethod, mapAction, mapAuthMethod } from './spec';\nimport { State } from './state';\nimport { toJsonSchema, validate } from './validation';\n\nexport let createProviderHandler = <ConfigType extends {}, AuthType extends {}>(\n slate: Slate<ConfigType, AuthType>,\n listeners: SlateLogListener[]\n) =>\n createSlatesProviderProtoHandler(async manager => {\n let protocol = new State<string | null>(null);\n let participants = new State<SlatesParticipant[] | null>(null);\n\n let auth = new State<{ authenticationMethodId: string; output: AuthType } | null>(null);\n let config = new State<{ value: ConfigType } | null>(null);\n\n let session = new State<{ id: string; state: any } | null>(null);\n\n let logger = new SlateLogger(listeners);\n\n let getContextBasic = () => {\n let currentProtocol = protocol.get();\n let currentParticipants = participants.get();\n\n if (!currentProtocol || !currentParticipants) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Connection context has not been initialized'\n })\n );\n }\n\n return {\n protocol: currentProtocol,\n participants: currentParticipants\n };\n };\n\n let getContextFull = () => {\n let basic = getContextBasic();\n\n let currentConfig = config.get();\n let currentSession = session.get();\n let currentAuth = auth.get();\n\n if (\n !currentConfig ||\n !currentSession ||\n (!currentAuth && slate.spec.auth.authStack.length > 0)\n ) {\n throw new ServiceError(\n preconditionFailedError({\n message: 'Session context has not been initialized'\n })\n );\n }\n\n return {\n ...basic,\n config: currentConfig.value,\n session: currentSession,\n auth: currentAuth\n };\n };\n\n let getEmptyContext = () => new SlateContext({}, {}, {}, slate.spec as any, logger);\n\n manager.onNotification('slates/hello', async ({ params }) => {\n protocol.set(params.protocol);\n });\n\n manager.onNotification('slates/participant.set', async ({ params }) => {\n if (!protocol.get()) {\n throw new ServiceError(\n preconditionFailedError({ message: 'Connection protocol has not been initialized' })\n );\n }\n\n participants.set(params.participants);\n });\n\n manager.onNotification('slates/auth.set', async ({ params }) => {\n getContextBasic();\n getAuthMethod(slate, params.authenticationMethodId); // validate method ID\n\n let valRes = validate(\n slate.spec.authSchema,\n params.output,\n 'auth',\n `Invalid authentication output for method ID: ${params.authenticationMethodId}`\n );\n\n auth.set({\n authenticationMethodId: params.authenticationMethodId,\n output: valRes\n });\n });\n\n manager.onNotification('slates/config.set', async ({ params }) => {\n getContextBasic();\n\n let value = validate(\n slate.spec.configSchema,\n params.config,\n 'config',\n 'Invalid configuration'\n );\n\n config.set({ value });\n });\n\n manager.onNotification('slates/session.start', async ({ params }) => {\n getContextBasic();\n\n session.set({\n id: params.sessionId,\n state: params.state\n });\n });\n\n manager.onRequest('slates/config.changed', async ({ params }) => {\n getContextBasic();\n\n let newConfig = validate(\n slate.spec.config.configSchema,\n params.newConfig,\n 'config',\n 'Invalid configuration'\n );\n\n let configChanged = slate.spec.config.handlers.configChanged;\n if (!configChanged) {\n return { success: true, config: newConfig };\n }\n\n let updatedConfig = await configChanged({\n previousConfig: params.previousConfig as ConfigType | null,\n newConfig\n });\n\n return { success: true, config: updatedConfig?.config ?? newConfig };\n });\n\n manager.onRequest('slates/config.get_default', async ({ params }) => {\n getContextBasic();\n\n let getDefaultConfig = slate.spec.config.handlers.getDefaultConfig;\n if (!getDefaultConfig) {\n return { config: null };\n }\n\n let defaultConfig = await getDefaultConfig();\n return { config: defaultConfig };\n });\n\n manager.onRequest('slates/config.schema.get', async ({ params }) => {\n getContextBasic();\n\n return { schema: toJsonSchema(slate.spec.configSchema) };\n });\n\n manager.onRequest('slates/provider.identify', async ({ params }) => {\n getContextBasic();\n\n return {\n protocol: 'slates@2026-01-01',\n provider: {\n type: 'provider',\n id: slate.spec.key,\n name: slate.spec.name,\n description: slate.spec.description,\n metadata: slate.spec.parameters.metadata\n }\n };\n });\n\n manager.onRequest('slates/auth.methods.list', async ({ params }) => {\n getContextBasic();\n\n return {\n authenticationMethods: slate.spec.auth.authStack.map(m => mapAuthMethod(slate, m))\n };\n });\n\n manager.onRequest('slates/auth.method.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n return {\n authenticationMethod: mapAuthMethod(slate, authMethod)\n };\n });\n\n manager.onRequest('slates/auth.input.get_default', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.getDefaultInput) {\n return { input: null };\n }\n\n return {\n input: await runWithContext(getEmptyContext(), () => authMethod.getDefaultInput!())\n };\n });\n\n manager.onRequest('slates/auth.input.changed', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (!authMethod.onInputChanged) {\n return { success: true, input: params.newInput };\n }\n\n let updatedInput = await runWithContext(getEmptyContext(), () =>\n authMethod.onInputChanged!({\n previousInput: params.previousInput as any | null,\n newInput: params.newInput\n })\n );\n\n return { success: true, input: updatedInput?.input ?? params.newInput };\n });\n\n manager.onRequest('slates/auth.output.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n let input = params.input;\n\n if (authMethod.inputSchema) {\n input = validate(\n authMethod.inputSchema,\n input,\n 'auth',\n `Invalid authentication input for method ID: ${params.authenticationMethodId}`\n );\n }\n\n if ('getOutput' in authMethod) {\n let outputRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getOutput({ input })\n );\n return { output: outputRes.output };\n }\n\n return { output: input as any };\n });\n\n manager.onRequest('slates/auth.authorization_callback.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleCallback' in authMethod) {\n let callbackRes = await runWithContext(getEmptyContext(), () =>\n authMethod.handleCallback({\n code: params.code,\n state: params.state,\n redirectUri: params.redirectUri,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes,\n callbackState: params.callbackState || {}\n })\n );\n\n return {\n output: callbackRes.output,\n input: callbackRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization callback handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.authorization_url.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('getAuthorizationUrl' in authMethod) {\n let urlRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getAuthorizationUrl({\n redirectUri: params.redirectUri,\n state: params.state,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n })\n );\n\n return {\n authorizationUrl: urlRes.url,\n input: urlRes.input,\n callbackState: urlRes.callbackState\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support authorization URL retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.profile.get', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if (authMethod.getProfile) {\n let profileRes = await runWithContext(getEmptyContext(), () =>\n authMethod.getProfile!({\n output: params.output as any,\n input: params.input,\n scopes: params.scopes\n })\n );\n\n return {\n profile: profileRes.profile\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support profile retrieval: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/auth.token_refresh.handle', async ({ params }) => {\n getContextBasic();\n let authMethod = getAuthMethod(slate, params.authenticationMethodId);\n\n if ('handleTokenRefresh' in authMethod && authMethod.handleTokenRefresh) {\n let refreshRes = await runWithContext(getEmptyContext(), () =>\n authMethod.handleTokenRefresh!({\n output: params.output as any,\n input: params.input,\n clientId: params.clientId,\n clientSecret: params.clientSecret,\n scopes: params.scopes\n })\n );\n\n return {\n output: refreshRes.output,\n input: refreshRes.input\n };\n }\n\n throw new ServiceError(\n preconditionFailedError({\n message: `Authentication method does not support token refresh handling: ${params.authenticationMethodId}`\n })\n );\n });\n\n manager.onRequest('slates/actions.list', async ({ params }) => {\n getContextBasic();\n\n return {\n actions: slate.actions.map(a => mapAction(slate, a))\n };\n });\n\n manager.onRequest('slates/action.get', async ({ params }) => {\n getContextBasic();\n let action = getAction(slate, params.actionId);\n\n return {\n action: mapAction(slate, action)\n };\n });\n\n manager.onRequest('slates/action.tool.invoke', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'tool', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid input for tool ID: ${params.actionId}`\n );\n\n let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);\n let res = await runWithContext(context, () => action.handleInvocation(context));\n\n return { output: res.output, message: res.message };\n });\n\n manager.onRequest('slates/action.trigger.map_event', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n let input = validate(\n action.inputSchema,\n params.input,\n 'input',\n `Invalid event for trigger ID: ${params.actionId}`\n );\n\n let context = new SlateContext(ctx.config, input, ctx.auth?.output!, slate.spec, logger);\n let res = await runWithContext(context, () => action.handleEvent(context));\n\n return { id: res.id, type: res.type, output: res.output };\n });\n\n manager.onRequest('slates/action.trigger.poll_events', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.pollEvents) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support polling: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n { state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.pollEvents!(context));\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_handle', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.handleRequest) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook requests: ${params.actionId}`\n })\n );\n }\n\n let req = new Request(params.url, {\n method: params.method,\n headers: params.headers,\n body: params.body\n ? Uint8Array.from(atob(params.body.content), c => c.charCodeAt(0))\n : null\n });\n\n let context = new SlateContext(\n ctx.config,\n { request: req, state: params.state },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.handleRequest!(context));\n\n return { inputs: res.inputs, updatedState: res.updatedState };\n });\n\n manager.onRequest('slates/action.trigger.webhook_register', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoRegisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-registration: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n { webhookBaseUrl: params.webhookBaseUrl },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n let res = await runWithContext(context, () => action.autoRegisterWebhook!(context));\n\n return { registrationDetails: res.registrationDetails, state: res.state };\n });\n\n manager.onRequest('slates/action.trigger.webhook_unregister', async ({ params }) => {\n let ctx = getContextFull();\n let action = getActionWithType(slate, 'trigger', params.actionId);\n\n if (!action.autoUnregisterWebhook) {\n throw new ServiceError(\n badRequestError({\n message: `Trigger action does not support webhook auto-unregistration: ${params.actionId}`\n })\n );\n }\n\n let context = new SlateContext(\n ctx.config,\n {\n webhookBaseUrl: params.webhookBaseUrl,\n registrationDetails: params.registrationDetails,\n state: params.state\n },\n ctx.auth?.output!,\n slate.spec,\n logger\n );\n await runWithContext(context, () => action.autoUnregisterWebhook!(context));\n\n return {};\n });\n });\n"],"names":["validate","schema","data","entity","message","result","safeParse","success","ServiceError","e","validationError","errors","issues","map","i","_extends","path","p","String","zodToValidationError","error","toJsonSchema","toJSONSchema","unrepresentable","override","ctx","def","zodSchema","_zod","type","jsonSchema","format","getAuthMethod","slate","authenticationMethodId","authMethod","spec","auth","authStack","find","m","key","badRequestError","mapAuthMethod","_m$inputSchema","id","name","scopes","s","scope","title","description","undefined","inputSchema","z","object","outputSchema","capabilities","getDefaultInput","enabled","handleTokenRefresh","handleChangedInput","onInputChanged","getProfile","getAction","actionId","action","actions","notFoundError","getActionWithType","mapAction","a","_a$polling$intervalIn","instructions","constraints","tags","metadata","invocation","source","intervalSeconds","polling","intervalInSeconds","SlateDefaultPollingIntervalSeconds","autoRegistration","autoRegisterWebhook","autoUnregistration","autoUnregisterWebhook","State","initialValue","Object","defineProperty","_value","writable","value","_classPrivateFieldLooseBase","_proto","prototype","_createClass","get","this","set","listeners","createSlatesProviderProtoHandler","manager","protocol","participants","config","session","logger","SlateLogger","getContextBasic","currentProtocol","currentParticipants","preconditionFailedError","getContextFull","basic","currentConfig","currentSession","currentAuth","length","getEmptyContext","SlateContext","onNotification","_ref","params","Promise","resolve","reject","_ref2","_ref3","valRes","authSchema","output","_ref4","configSchema","_ref5","sessionId","state","onRequest","_ref6","newConfig","configChanged","handlers","previousConfig","then","updatedConfig","_updatedConfig$config","_ref7","getDefaultConfig","defaultConfig","_ref8","_ref9","provider","parameters","_ref0","authenticationMethods","_ref1","authenticationMethod","_ref10","runWithContext","_runWithContext","input","_ref11","previousInput","newInput","updatedInput","_updatedInput$input","_ref12","_temp2","_exit","_result","_temp","getOutput","outputRes","_ref13","_exit2","_temp4","_result2","_temp3","handleCallback","code","redirectUri","clientId","clientSecret","callbackState","callbackRes","_output$input","_ref14","_temp6","_exit3","_result3","_temp5","getAuthorizationUrl","urlRes","authorizationUrl","url","_ref15","_exit4","_temp8","_result4","_temp7","profileRes","profile","_ref16","_exit5","_temp0","_result5","_temp9","refreshRes","_ref17","_ref18","_ref19","_ctx$auth","context","handleInvocation","res","_ref20","_ctx$auth2","handleEvent","_ref21","_ctx$auth3","pollEvents","inputs","updatedState","_ref22","_ctx$auth4","handleRequest","req","Request","method","headers","body","Uint8Array","from","atob","content","c","charCodeAt","request","_ref23","_ctx$auth5","webhookBaseUrl","registrationDetails","_ref24","_ctx$auth6"],"mappings":"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"}
package/dist/spec.d.ts DELETED
@@ -1,14 +0,0 @@
1
- import { SlateAuthenticationMethod, SlatesAction } from '@slates/proto';
2
- import { Slate } from '@slates/provider';
3
- export declare let getAuthMethod: <ConfigType extends {}, AuthType extends {}>(slate: Slate<ConfigType, AuthType>, authenticationMethodId: string) => import("@slates/provider").SlateAuthWithOauth<any, AuthType & {
4
- token: string;
5
- }> | import("@slates/provider").SlateAuthWithToken<any, AuthType & {
6
- token?: string;
7
- }> | import("@slates/provider").SlateAuthWithServiceAccount<any, AuthType> | import("@slates/provider").SlateAuthWithCustomData<any, AuthType>;
8
- export declare let mapAuthMethod: <ConfigType extends {}, AuthType extends {}>(slate: Slate<ConfigType, AuthType>, m: ReturnType<typeof getAuthMethod<ConfigType, AuthType>>) => SlateAuthenticationMethod;
9
- export declare let getAction: <ConfigType extends {}, AuthType extends {}>(slate: Slate<ConfigType, AuthType>, actionId: string) => import("@slates/provider").SlateTrigger<ConfigType, AuthType, any, any> | import("@slates/provider").SlateTool<ConfigType, AuthType, any, any>;
10
- export declare let getActionWithType: <Type extends "tool" | "trigger", ConfigType extends {}, AuthType extends {}>(slate: Slate<ConfigType, AuthType>, type: Type, actionId: string) => ReturnType<typeof getAction<ConfigType, AuthType>> & {
11
- type: Type;
12
- };
13
- export declare let mapAction: <ConfigType extends {}, AuthType extends {}>(slate: Slate<ConfigType, AuthType>, a: ReturnType<typeof getAction<ConfigType, AuthType>>) => SlatesAction;
14
- //# sourceMappingURL=spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,KAAK,EAAsC,MAAM,kBAAkB,CAAC;AAI7E,eAAO,IAAI,aAAa,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EACpE,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EAClC,wBAAwB,MAAM;;;;8IAY/B,CAAC;AAEF,eAAO,IAAI,aAAa,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EACpE,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EAClC,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,KACxD,yBA2BD,CAAC;AAEH,eAAO,IAAI,SAAS,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAChE,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EAClC,UAAU,MAAM,mJAQjB,CAAC;AAEF,eAAO,IAAI,iBAAiB,GAC1B,IAAI,SAAS,MAAM,GAAG,SAAS,EAC/B,UAAU,SAAS,EAAE,EACrB,QAAQ,SAAS,EAAE,EAEnB,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EAClC,MAAM,IAAI,EACV,UAAU,MAAM,KACf,UAAU,CAAC,OAAO,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAWnE,CAAC;AAEF,eAAO,IAAI,SAAS,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAChE,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,EAClC,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,KACpD,YAuCF,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './slate';
2
- export * from './specification';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/specification/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC"}
@@ -1,15 +0,0 @@
1
- import { SlateAction, SlateActionType } from '../action';
2
- import { SlateSpecification } from './specification';
3
- export declare class Slate<ConfigType extends {}, AuthType extends {}> {
4
- private readonly _spec;
5
- private readonly _actions;
6
- private constructor();
7
- static create<ConfigType extends {}, AuthType extends {}>(params: {
8
- spec: SlateSpecification<ConfigType, AuthType>;
9
- triggers: SlateAction<'trigger', ConfigType, AuthType, any, any>[];
10
- tools: SlateAction<'tool', ConfigType, AuthType, any, any>[];
11
- }): Slate<ConfigType, AuthType>;
12
- get spec(): SlateSpecification<ConfigType, AuthType>;
13
- get actions(): SlateAction<SlateActionType, ConfigType, AuthType, any, any>[];
14
- }
15
- //# sourceMappingURL=slate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slate.d.ts","sourceRoot":"","sources":["../../src/specification/slate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,qBAAa,KAAK,CAAC,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE;IAEzD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAF3B,OAAO;IAKP,MAAM,CAAC,MAAM,CAAC,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAAE,MAAM,EAAE;QAChE,IAAI,EAAE,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC/C,QAAQ,EAAE,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QACnE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;KAC9D;IAID,IAAI,IAAI,6CAEP;IAED,IAAI,OAAO,mEAEV;CACF"}
@@ -1,30 +0,0 @@
1
- import z from 'zod';
2
- import { SlateAuth } from '../auth';
3
- import { SlateConfig } from '../config';
4
- export interface SlateSpecificationParameters {
5
- key: string;
6
- name: string;
7
- description?: string;
8
- metadata?: Record<string, any>;
9
- }
10
- export interface SlateSpecificationCreateParameters<ConfigType extends {}, AuthType extends {}> extends SlateSpecificationParameters {
11
- config: SlateConfig<ConfigType>;
12
- auth: SlateAuth<AuthType>;
13
- }
14
- export declare class SlateSpecification<ConfigType extends {}, AuthType extends {}> {
15
- private readonly _config;
16
- private readonly _auth;
17
- private readonly _params;
18
- private constructor();
19
- static create<ConfigType extends {}, AuthType extends {}>(params: SlateSpecificationCreateParameters<ConfigType, AuthType>): SlateSpecification<ConfigType, AuthType>;
20
- get configSchema(): z.ZodType<ConfigType, unknown, z.core.$ZodTypeInternals<ConfigType, unknown>>;
21
- get authSchema(): z.ZodType<AuthType>;
22
- get config(): SlateConfig<ConfigType>;
23
- get auth(): SlateAuth<AuthType>;
24
- get parameters(): SlateSpecificationParameters;
25
- get key(): string;
26
- get name(): string;
27
- get description(): string | undefined;
28
- }
29
- export declare let spec: <ConfigType extends {}, AuthType extends {}>(params: SlateSpecificationCreateParameters<ConfigType, AuthType>) => SlateSpecification<ConfigType, AuthType>;
30
- //# sourceMappingURL=specification.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../../src/specification/specification.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,4BAA4B;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,kCAAkC,CACjD,UAAU,SAAS,EAAE,EACrB,QAAQ,SAAS,EAAE,CACnB,SAAQ,4BAA4B;IACpC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAChC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC3B;AAED,qBAAa,kBAAkB,CAAC,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE;IAEtE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH1B,OAAO;IAMP,MAAM,CAAC,MAAM,CAAC,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EACtD,MAAM,EAAE,kCAAkC,CAAC,UAAU,EAAE,QAAQ,CAAC,GAC/D,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC;IAI3C,IAAI,YAAY,kFAEf;IAED,IAAI,UAAU,IAGP,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CACzB;IAED,IAAI,MAAM,4BAET;IAED,IAAI,IAAI,wBAEP;IAED,IAAI,UAAU,iCAEb;IAED,IAAI,GAAG,WAEN;IAED,IAAI,IAAI,WAEP;IAED,IAAI,WAAW,uBAEd;CACF;AAED,eAAO,IAAI,IAAI,GAAI,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAC3D,QAAQ,kCAAkC,CAAC,UAAU,EAAE,QAAQ,CAAC,KAC/D,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAsC,CAAC"}
@@ -1,13 +0,0 @@
1
- import { ZeroAction } from '../action';
2
- import { ZeroSpecification } from './specification';
3
- export declare class Zero<ConfigType extends {}, AuthType extends {}> {
4
- private readonly _spec;
5
- private readonly _actions;
6
- private constructor();
7
- static create<ConfigType extends {}, AuthType extends {}>(params: {
8
- spec: ZeroSpecification<ConfigType, AuthType>;
9
- triggers: ZeroAction<'trigger', ConfigType, AuthType, any, any>[];
10
- tools: ZeroAction<'tool', ConfigType, AuthType, any, any>[];
11
- }): Zero<ConfigType, AuthType>;
12
- }
13
- //# sourceMappingURL=zero.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zero.d.ts","sourceRoot":"","sources":["../../src/specification/zero.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,qBAAa,IAAI,CAAC,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE;IAExD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAF3B,OAAO;IAKP,MAAM,CAAC,MAAM,CAAC,UAAU,SAAS,EAAE,EAAE,QAAQ,SAAS,EAAE,EAAE,MAAM,EAAE;QAChE,IAAI,EAAE,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9C,QAAQ,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QAClE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;KAC7D;CAGF"}
package/dist/state.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export declare class State<T> {
2
- #private;
3
- get value(): T;
4
- get(): T;
5
- set(value: T): void;
6
- constructor(initialValue: T);
7
- }
8
- //# sourceMappingURL=state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,qBAAa,KAAK,CAAC,CAAC;;IAGlB,IAAI,KAAK,MAER;IAED,GAAG;IAIH,GAAG,CAAC,KAAK,EAAE,CAAC;gBAIA,YAAY,EAAE,CAAC;CAG5B"}
package/dist/tokens.d.ts DELETED
@@ -1,34 +0,0 @@
1
- export type TokenKeys = {
2
- privateKey: string | (() => Promise<CryptoKey> | CryptoKey);
3
- publicKey: string | (() => Promise<CryptoKey> | CryptoKey);
4
- } | {
5
- secret: string;
6
- };
7
- export declare class Tokens {
8
- readonly keys: TokenKeys;
9
- private signer;
10
- constructor(keys: TokenKeys);
11
- sign({ type, data, expiresAt }: {
12
- type: string;
13
- data: any;
14
- expiresAt?: Date;
15
- }): Promise<string>;
16
- verify({ token, expectedType }: {
17
- expectedType: string;
18
- token: string;
19
- }): Promise<{
20
- verified: false;
21
- type?: undefined;
22
- expiresAt?: undefined;
23
- createdAt?: undefined;
24
- data?: undefined;
25
- } | {
26
- verified: true;
27
- type: string;
28
- expiresAt: Date | null;
29
- createdAt: Date;
30
- data: any;
31
- }>;
32
- static decode(token: string): any;
33
- }
34
- //# sourceMappingURL=tokens.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GACjB;IACE,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;IAC5D,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5D,GACD;IACE,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAiGN,qBAAa,MAAM;IAEL,QAAQ,CAAC,IAAI,EAAE,SAAS;IADpC,OAAO,CAAC,MAAM,CAAS;gBACF,IAAI,EAAE,SAAS;IAI9B,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE;IAa7E,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;IAiC7E,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM;CAO5B"}
@@ -1,5 +0,0 @@
1
- import z from 'zod';
2
- export declare let zodToValidationError: (entity: string, message: string, e: z.ZodError) => import("@lowerdeck/error").ErrorRecord<"invalid_data", 400>;
3
- export declare let validate: <T>(schema: z.ZodType<T>, data: unknown, entity: string, message: string) => T;
4
- export declare let toJsonSchema: (schema: z.ZodType<any>) => z.core.ZodStandardJSONSchemaPayload<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
5
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,IAAI,oBAAoB,GAAI,QAAQ,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,gEAShF,CAAC;AAEF,eAAO,IAAI,QAAQ,GAAI,CAAC,EACtB,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,OAAO,EACb,QAAQ,MAAM,EACd,SAAS,MAAM,KACd,CAOF,CAAC;AAEF,eAAO,IAAI,YAAY,GAAI,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,yGAc7C,CAAC"}