Skip to content

Commit

Permalink
Remove all runbook references
Browse files Browse the repository at this point in the history
  • Loading branch information
ColinMcNeil committed Aug 21, 2024
1 parent ae55b37 commit 0570fa8
Show file tree
Hide file tree
Showing 13 changed files with 65 additions and 129 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Change Log

All notable changes to the "make-runbook" extension will be documented in this file.
All notable changes to the "labs-ai-tools-vscode" extension will be documented in this file.

Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.

Expand Down
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Visual Studio Code Extension for Docker Runbooks
Visual Studio Code Extension for Docker Prompts

Copyright (c) Docker Inc

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
## Getting started
Docker internal users: You must be opted-out of mandatory sign-in.

1. Install latest VSIX file https://github.com/docker/labs-make-runbook/releases
1. Install latest VSIX file https://github.com/docker/labs-ai-tools-vscode/releases
2. Open your workspace
3. Execute command `>Set OpenAI API key...` and enter your OpenAI secret key.
4. Execute command `>save-prompt` and enter your prompt URL/ref.
Expand Down
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"publisher": "docker",
"repository": {
"type": "git",
"url": "https://github.com/docker/docker-make-runbook.git"
"url": "https://github.com/docker/docker-labs-ai-tools-vscode.git"
},
"engines": {
"vscode": "^1.88.0"
Expand Down Expand Up @@ -39,11 +39,11 @@
"title": "Run a prompt"
},
{
"command": "docker.make-runbook.run-commands",
"title": "Check runbook commands"
"command": "docker.labs-ai-tools-vscode.run-commands",
"title": "Run markdown commands"
},
{
"command": "docker.make-runbook.set-openai-api-key",
"command": "docker.labs-ai-tools-vscode.set-openai-api-key",
"title": "Set OpenAI API key for Docker AI prompts"
},
{
Expand Down Expand Up @@ -82,4 +82,4 @@
"vscode-languageclient": "^8.1.0"
},
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}
}
8 changes: 4 additions & 4 deletions src/commands/manageSavedPrompts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export const savePrompt = async (prompt: string) => {
return vscode.window.showErrorMessage("No prompt selected");
}

const promptImage = vscode.workspace.getConfiguration('docker.make-runbook').get('prompt-image') as string;
const promptImage = vscode.workspace.getConfiguration('docker.labs-ai-tools-vscode').get('prompt-image') as string;
const args = [
"run",
"--rm",
Expand All @@ -28,12 +28,12 @@ export const savePrompt = async (prompt: string) => {
}
else {
vscode.window.showInformationMessage(`Saved ${prompt}`);
vscode.commands.executeCommand("docker.make-runbook.generate");
vscode.commands.executeCommand("docker.labs-ai-tools-vscode.generate");
}
};

export const deletePrompt = (prompt: string) => {
const promptImage = vscode.workspace.getConfiguration('docker.make-runbook').get('prompt-image') as string;
const promptImage = vscode.workspace.getConfiguration('docker.labs-ai-tools-vscode').get('prompt-image') as string;
const args = [
"run",
"--rm",
Expand All @@ -51,6 +51,6 @@ export const deletePrompt = (prompt: string) => {
}
else {
vscode.window.showInformationMessage(`Deleted ${prompt}`);
vscode.commands.executeCommand("docker.make-runbook.generate");
vscode.commands.executeCommand("docker.labs-ai-tools-vscode.generate");
}
};
10 changes: 5 additions & 5 deletions src/commands/runHotCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,23 @@ const groupCommands = (blocks: (typeof workspaceCommands)[string]) => blocks.red
export const runHotCommand = async () => {
const quickPicks = [];
if (Object.keys(workspaceCommands).length === 0) {
return vscode.window.showErrorMessage('No runbooks found in workspace');
return vscode.window.showErrorMessage('No commands found in workspace');
}
for (const [runbookFSPath, blocks] of Object.entries(workspaceCommands)) {
for (const [promptOutFSPath, blocks] of Object.entries(workspaceCommands)) {
quickPicks.push({
label: runbookFSPath,
label: promptOutFSPath,
description: ``,
detail: ``,
kind: vscode.QuickPickItemKind.Separator,
workspace: runbookFSPath,
workspace: promptOutFSPath,
});

const groupedBlocks = groupCommands(blocks);

quickPicks.push(...Object.entries(groupedBlocks).map(([command, script]) => ({
label: command,
detail: script,
workspace: runbookFSPath,
workspace: promptOutFSPath,
})));
};

Expand Down
15 changes: 6 additions & 9 deletions src/commands/runPrompt.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
import {
spawnSync,
} from "child_process";
import { TextEncoder } from "util";
import * as vscode from "vscode";
import OpenAI from 'openai';
import { prepareProjectPrompt } from "../utils/preparePrompt";
import { verifyHasOpenAIKey } from "../extension";
import { showPromptPicker } from "../utils/promptPicker";
import { prepareRunbookFile } from "../utils/runbookFilename";
import { preparePromptFile } from "../utils/promptFilename";

const START_DOCKER_COMMAND = {
'win32': 'Start-Process -NoNewWindow -Wait -FilePath "C:\\Program Files\\Docker\\Docker\\Docker Desktop.exe"',
Expand All @@ -17,7 +14,7 @@ const START_DOCKER_COMMAND = {

const DEFAULT_USER = "local-user";

export const generateRunbook = (secrets: vscode.SecretStorage) => vscode.window.withProgress({ location: vscode.ProgressLocation.Window }, async progress => {
export const runPrompt = (secrets: vscode.SecretStorage) => vscode.window.withProgress({ location: vscode.ProgressLocation.Window }, async progress => {

// Coerce the error to have an exit code
type DockerSpawnError = Error & { code: number };
Expand Down Expand Up @@ -51,7 +48,7 @@ export const generateRunbook = (secrets: vscode.SecretStorage) => vscode.window.
vscode.env.openExternal(vscode.Uri.parse("https://www.docker.com/products/docker-desktop"));
return;
case "Try again":
return vscode.commands.executeCommand("docker.make-runbook.generate");
return vscode.commands.executeCommand("docker.labs-ai-tools-vscode.generate");
}
});
}
Expand Down Expand Up @@ -88,7 +85,7 @@ export const generateRunbook = (secrets: vscode.SecretStorage) => vscode.window.

let apiKey = await secrets.get("openAIKey");

const { editor, doc } = (await prepareRunbookFile(workspaceFolder, promptOption.id) || {});
const { editor, doc } = (await preparePromptFile(workspaceFolder, promptOption.id) || {});

if (!editor || !doc) {
return;
Expand All @@ -98,11 +95,11 @@ export const generateRunbook = (secrets: vscode.SecretStorage) => vscode.window.

try {
progress.report({ increment: 5, message: "Running..." });

// TODO: Run the prompt
await doc.save();
} catch (e: unknown) {
e = e as Error;
void vscode.window.showErrorMessage("Error generating runbook");
void vscode.window.showErrorMessage("Error running prompt");
await editor.edit((edit) => {
edit.insert(
new vscode.Position(editor.document.lineCount, 0),
Expand Down
26 changes: 13 additions & 13 deletions src/extension.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as vscode from 'vscode';
import { generateRunbook } from './commands/generateRunbook';
import { runPrompt } from './commands/runPrompt';

import { runHotCommand } from './commands/runHotCommand';
import { setOpenAIKey } from './commands/setOpenAIKey';
Expand All @@ -15,7 +15,7 @@ export const workspaceCommands = {} as {
}[]
};

export const extensionId = 'docker.make-runbook';
export const extensionId = 'docker.labs-ai-tools-vscode';

export const packageJSON = vscode.extensions.getExtension(extensionId)?.packageJSON;

Expand All @@ -32,7 +32,7 @@ export const verifyHasOpenAIKey = async (secrets: vscode.SecretStorage, didRunAu
await setOpenAIKey(secrets, true);
}
else if (res === 'Use Ollama') {
await vscode.workspace.getConfiguration('docker.make-runbook').update('openai-base', 'Ollama');
await vscode.workspace.getConfiguration('docker.labs-ai-tools-vscode').update('openai-base', 'Ollama');
}
else {
return false;
Expand All @@ -43,31 +43,31 @@ export const verifyHasOpenAIKey = async (secrets: vscode.SecretStorage, didRunAu

export async function activate(context: vscode.ExtensionContext) {

let setOpenAIKeyCommand = vscode.commands.registerCommand('docker.make-runbook.set-openai-api-key', () => {
let setOpenAIKeyCommand = vscode.commands.registerCommand('docker.labs-ai-tools-vscode.set-openai-api-key', () => {
setOpenAIKey(context.secrets);
});

context.subscriptions.push(setOpenAIKeyCommand);

spawnSync('docker', ['pull', "vonwig/prompts:latest"]);

let makeRunbook = vscode.commands.registerCommand('docker.make-runbook.generate', () => generateRunbook(context.secrets));
let runPromptCommand = vscode.commands.registerCommand('docker.labs-ai-tools-vscode.generate', () => runPrompt(context.secrets));

context.subscriptions.push(makeRunbook);
context.subscriptions.push(runPromptCommand);

let runBoundCommands = vscode.commands.registerCommand('docker.make-runbook.run', runHotCommand);
let runBoundCommands = vscode.commands.registerCommand('docker.labs-ai-tools-vscode.run', runHotCommand);

context.subscriptions.push(runBoundCommands);

let savePromptCommand = vscode.commands.registerCommand('docker.make-runbook.save-prompt', savePrompt);
let savePromptCommand = vscode.commands.registerCommand('docker.labs-ai-tools-vscode.save-prompt', savePrompt);

context.subscriptions.push(savePromptCommand);

let deletePromptCommand = vscode.commands.registerCommand('docker.make-runbook.delete-prompt', deletePrompt);
let deletePromptCommand = vscode.commands.registerCommand('docker.labs-ai-tools-vscode.delete-prompt', deletePrompt);

context.subscriptions.push(deletePromptCommand);

if (vscode.workspace.getConfiguration('docker.make-runbook').get('openai-base') === 'OpenAI') {
if (vscode.workspace.getConfiguration('docker.labs-ai-tools-vscode').get('openai-base') === 'OpenAI') {
void verifyHasOpenAIKey(context.secrets);
}

Expand All @@ -79,13 +79,13 @@ export async function activate(context: vscode.ExtensionContext) {
}) => {
const blocks = args.blocks;

const runbookURI = vscode.Uri.parse(args.uri);
const PromptRespURI = vscode.Uri.parse(args.uri);

workspaceCommands[runbookURI.fsPath] = blocks;
workspaceCommands[PromptRespURI.fsPath] = blocks;
});

nativeClient.onNotification("$terminal/run", async (args: { content: string }) => {
const terminal = vscode.window.createTerminal("Docker Runbook");
const terminal = vscode.window.createTerminal("Markdown Blocks");
terminal.sendText(args.content);
terminal.show();

Expand Down
28 changes: 14 additions & 14 deletions src/test/extension.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import * as assert from 'assert';
// You can import and use all API from the 'vscode' module
// as well as import your extension to test it
import * as vscode from 'vscode';
import { generateFriendlyPromptName } from '../utils/runbookFilename';
import { generateFriendlyPromptName } from '../utils/promptFilename';
import { parseGitHubRef, parseGitHubURL } from '../utils/promptPicker';
// import * as myExtension from '../../extension';

Expand All @@ -16,27 +16,27 @@ suite('Extension Test Suite', () => {
});

test('generateFriendlyPromptName', () => {
assert.strictEqual(generateFriendlyPromptName("github:docker/labs-make-runbook?ref=main&path=prompts/git_smoosh"), "gh-docker-labs-make-runbook-prompts-git_smoosh");
assert.strictEqual(generateFriendlyPromptName("github:docker/labs-ai-tools-vscode?ref=main&path=prompts/git_smoosh"), "gh-docker-labs-ai-tools-vscode-prompts-git_smoosh");
assert.strictEqual(generateFriendlyPromptName("npm"), "npm");
});

test('parseRefs', () => {
const urls = [
"https://github.com/docker/labs-make-runbook/tree/main/prompts/docker",
"https://github.com/docker/labs-make-runbook/tree/main/prompts/npm_setup",
"https://github.com/docker/labs-ai-tools-vscode/tree/main/prompts/docker",
"https://github.com/docker/labs-ai-tools-vscode/tree/main/prompts/npm_setup",
];

const refs = [
"github:docker/labs-make-runbook?ref=main&path=prompts/docker",
"github:docker/labs-make-runbook?ref=main&path=prompts/npm_setup",
"github:docker/labs-ai-tools-vscode?ref=main&path=prompts/docker",
"github:docker/labs-ai-tools-vscode?ref=main&path=prompts/npm_setup",
];

urls.forEach((url, i) => {
const ref = refs[i];
const parsed = parseGitHubURL(url)!;
assert.notStrictEqual(parsed, undefined);
assert.strictEqual(parsed.owner, "docker");
assert.strictEqual(parsed.repo, "labs-make-runbook");
assert.strictEqual(parsed.repo, "labs-ai-tools-vscode");
assert.strictEqual(parsed.ref, "main");
assert.strictEqual(parsed.args.path.length > 0, true);
assert.strictEqual(parsed.toRef(), ref);
Expand All @@ -47,7 +47,7 @@ suite('Extension Test Suite', () => {
const parsed = parseGitHubRef(ref)!;
assert.notStrictEqual(parsed, undefined);
assert.strictEqual(parsed.owner, "docker");
assert.strictEqual(parsed.repo, "labs-make-runbook");
assert.strictEqual(parsed.repo, "labs-ai-tools-vscode");
assert.strictEqual(parsed.ref, "main");
assert.strictEqual(parsed.args.path.length > 0, true);
assert.strictEqual(parsed.toURL(), url);
Expand All @@ -56,15 +56,15 @@ suite('Extension Test Suite', () => {

test('refToRefString', () => {
const urls = [
"https://github.com/docker/labs-make-runbook/tree/main/prompts/docker",
"https://github.com/docker/labs-make-runbook/tree/main/prompts/npm_setup",
"https://github.com/docker/labs-make-runbook/tree/main/",
"https://github.com/docker/labs-ai-tools-vscode/tree/main/prompts/docker",
"https://github.com/docker/labs-ai-tools-vscode/tree/main/prompts/npm_setup",
"https://github.com/docker/labs-ai-tools-vscode/tree/main/",
];

const refs = [
"github:docker/labs-make-runbook?ref=main&path=prompts/docker",
"github:docker/labs-make-runbook?ref=main&path=prompts/npm_setup",
"github:docker/labs-make-runbook?ref=main",
"github:docker/labs-ai-tools-vscode?ref=main&path=prompts/docker",
"github:docker/labs-ai-tools-vscode?ref=main&path=prompts/npm_setup",
"github:docker/labs-ai-tools-vscode?ref=main",
];

urls.forEach((url, i) => {
Expand Down
4 changes: 2 additions & 2 deletions src/utils/lsp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ const dockerrunner = {
"-l",
'com.docker.lsp=true',
"-l",
'com.docker.lsp.extension=labs-make-runbook',
'com.docker.lsp.extension=labs-ai-tools-vscode',
"docker/lsp",
"--workspace",
"/docker",
"--profile",
"labs-make-runbook",
"labs-ai-tools-vscode",
],
};

Expand Down
41 changes: 0 additions & 41 deletions src/utils/preparePrompt.ts

This file was deleted.

Loading

0 comments on commit 0570fa8

Please sign in to comment.