UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

42 lines (35 loc) 1.41 kB
import { buildSchema, SchemaValues } from '@sprucelabs/schema' import AbstractAction from '../../AbstractAction' import { FeatureActionResponse } from '../../features.types' export const optionsSchema = buildSchema({ id: 'publish', name: 'Publish', description: 'Publish a skill to make it available to the world!', fields: { isInstallable: { type: 'boolean', label: 'Make skill installable', hint: 'Defaults to true. If disabled, your skill is available without needing to be installed. Note: This requires owner role at the platform level.', }, }, }) export type PublishActionDefinition = typeof optionsSchema export default class PublishAction extends AbstractAction<PublishActionDefinition> { public optionsSchema = optionsSchema public commandAliases = ['publish'] public invocationMessage = 'Publishing... ⚡️' public async execute( options?: PublishActionOptions ): Promise<FeatureActionResponse> { const { isInstallable } = this.validateAndNormalizeOptions( options ?? {} ) const skills = this.Store('skill') await skills.publish({ isInstallable }) return { summaryLines: ['Your skill has been published!'], } } } type OptionsSchema = typeof optionsSchema export type PublishActionOptions = SchemaValues<OptionsSchema>