src / index.ts
import { type PluginContext } from "@lmstudio/sdk";
import { z } from 'zod'
import { tool } from '@lmstudio/sdk'
import { run } from '@/utils'
import config from '@/config'
export const CreateRepository = tool({
name: 'CreateRepository',
description: 'create a new repository in our private git server',
parameters: { name: z.string() },
implementation: async ({ name }) => run(`ssh ${config.git.server} repos create ${name}`)
})
export const ListRepositories = tool({
name: 'ListRepositories',
description: 'list all repositories in our private git server',
parameters: {},
implementation: async () => run(`ssh ${config.git.server} repos list`)
})
export const CloneRepository = tool({
name: 'CloneRepository',
description: 'clone a repository from our private git server',
parameters: { name: z.string() },
implementation: async ({ name }) => run(`git clone ssh://${config.git.server}:${config.git.port}/${name}.git`)
})
export async function main(context: PluginContext) {
context.withToolsProvider(() => Promise.resolve([CreateRepository, ListRepositories, CloneRepository]));
}