Skip to main content
Glama

GenAIScript

Official
by microsoft
MIT License
43
2,820
  • Linux
  • Apple
extension.ts4.17 kB
import * as vscode from "vscode" import { ExtensionContext } from "vscode" import { ExtensionState } from "./state" import { activateStatusBar } from "./statusbar" import { activateFragmentCommands } from "./fragmentcommands" import { activateMarkdownTextDocumentContentProvider } from "./markdowndocumentprovider" import { activatePromptTreeDataProvider } from "./prompttree" import { activatePromptCommands, commandButtons } from "./promptcommands" import { activateTestController } from "./testcontroller" import { activateDocsNotebook } from "./docsnotebook" import { activateTraceTreeDataProvider } from "./tracetree" import { registerCommand } from "./commands" import { EXTENSION_ID, TOOL_NAME } from "../../core/src/constants" import type MarkdownIt from "markdown-it" import MarkdownItGitHubAlerts from "markdown-it-github-alerts" import { activateConnectionInfoTree } from "./connectioninfotree" import { activeTaskProvider } from "./taskprovider" import { activateChatParticipant } from "./chatparticipant" import { activeWebview } from "./webview" import { activateFixCommand } from "./fixcommand" export async function activate(context: ExtensionContext) { const state = new ExtensionState(context) activatePromptCommands(state) activateFragmentCommands(state) activateFixCommand(state) activateMarkdownTextDocumentContentProvider(state) activateTraceTreeDataProvider(state) activatePromptTreeDataProvider(state) activateConnectionInfoTree(state) activateStatusBar(state) activateDocsNotebook(state) activeTaskProvider(state) activateChatParticipant(state) activeWebview(state) context.subscriptions.push( registerCommand("genaiscript.server.start", async () => { await state.host.server.start() }), registerCommand("genaiscript.server.stop", async () => { await state.host.server.close() }), registerCommand("genaiscript.server.show", async () => { await state.host.server.show() }), registerCommand("genaiscript.request.abort", async () => { await state.cancelAiRequest() await vscode.window.showInformationMessage( `${TOOL_NAME} - request aborted.` ) }), registerCommand("genaiscript.request.status", async () => { const cmds = commandButtons(state) const res = await vscode.window.showQuickPick(cmds, { canPickMany: false, }) if (res) vscode.commands.executeCommand(res.cmd) }), registerCommand( "genaiscript.openIssueReporter", async (body: string[]) => { const issueBody: string[] = body || [ `## Describe the issue`, `A clear and concise description of what the bug is.`, ``, `## To Reproduce`, `Steps to reproduce the behavior`, ``, `## Expected behavior`, `A clear and concise description of what you expected to happen.`, ``, ] issueBody.push( `## Environment`, ``, `vscode: ${vscode.version}`, `extension: ${context.extension?.packageJSON?.version || "?"}` ) if (state.aiRequest?.trace) { issueBody.push(`## Trace\n\n`) issueBody.push(state.aiRequest?.trace?.content) issueBody.push(`\n\n`) } await vscode.commands.executeCommand( "workbench.action.openIssueReporter", { extensionId: EXTENSION_ID, issueBody: issueBody.join("\n"), } ) } ) ) await state.activate() await activateTestController(state) return { extendMarkdownIt: (md: MarkdownIt) => { return md.use(MarkdownItGitHubAlerts) }, } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/microsoft/genaiscript'

If you have feedback or need assistance with the MCP directory API, please join our Discord server