diff --git a/docs/public/llms-full.txt b/docs/public/llms-full.txt index 3d166931..b5daf3bf 100644 --- a/docs/public/llms-full.txt +++ b/docs/public/llms-full.txt @@ -1826,7 +1826,7 @@ The Archgate VS Code plugin gives AI agents working in [VS Code](https://code.vi ## How it works -VS Code supports **agent plugins** installed from git-based marketplaces. The Archgate plugin is served from a git repository at `plugins.archgate.dev/archgate-vscode.git`. When you add this marketplace to your VS Code user settings, VS Code discovers and installs the plugin automatically. +VS Code supports **agent plugins** installed from git-based marketplaces. The Archgate plugin is served from a git repository at `plugins.archgate.dev/archgate/vscode.git`. When you add this marketplace to your VS Code user settings, VS Code discovers and installs the plugin automatically. The plugin is served in VS Code Copilot's native `.github/plugin/` manifest format, separate from the Claude Code `.claude-plugin/` format. @@ -1894,7 +1894,7 @@ The user-level marketplace setting (added to your `settings.json`): ```json { "chat.plugins.marketplaces": [ - "https://:@plugins.archgate.dev/archgate-vscode.git" + "https://:@plugins.archgate.dev/archgate/vscode.git" ] } ``` diff --git a/docs/src/content/docs/guides/vscode-plugin.mdx b/docs/src/content/docs/guides/vscode-plugin.mdx index 77ce062a..09cd038b 100644 --- a/docs/src/content/docs/guides/vscode-plugin.mdx +++ b/docs/src/content/docs/guides/vscode-plugin.mdx @@ -7,7 +7,7 @@ The Archgate VS Code plugin gives AI agents working in [VS Code](https://code.vi ## How it works -VS Code supports **agent plugins** installed from git-based marketplaces. The Archgate plugin is served from a git repository at `plugins.archgate.dev/archgate-vscode.git`. When you add this marketplace to your VS Code user settings, VS Code discovers and installs the plugin automatically. +VS Code supports **agent plugins** installed from git-based marketplaces. The Archgate plugin is served from a git repository at `plugins.archgate.dev/archgate/vscode.git`. When you add this marketplace to your VS Code user settings, VS Code discovers and installs the plugin automatically. The plugin is served in VS Code Copilot's native `.github/plugin/` manifest format, separate from the Claude Code `.claude-plugin/` format. @@ -79,7 +79,7 @@ The user-level marketplace setting (added to your `settings.json`): ```json { "chat.plugins.marketplaces": [ - "https://:@plugins.archgate.dev/archgate-vscode.git" + "https://:@plugins.archgate.dev/archgate/vscode.git" ] } ``` diff --git a/docs/src/content/docs/pt-br/guides/vscode-plugin.mdx b/docs/src/content/docs/pt-br/guides/vscode-plugin.mdx index 3fffa101..ac56b3fc 100644 --- a/docs/src/content/docs/pt-br/guides/vscode-plugin.mdx +++ b/docs/src/content/docs/pt-br/guides/vscode-plugin.mdx @@ -7,7 +7,7 @@ O plugin Archgate para VS Code oferece aos agentes de IA que trabalham no [VS Co ## Como funciona -O VS Code suporta **plugins de agente** instalados a partir de marketplaces baseados em git. O plugin Archgate é servido a partir de um repositório git em `plugins.archgate.dev/archgate-vscode.git`. Quando você adiciona esse marketplace às suas configurações de usuário do VS Code, o VS Code descobre e instala o plugin automaticamente. +O VS Code suporta **plugins de agente** instalados a partir de marketplaces baseados em git. O plugin Archgate é servido a partir de um repositório git em `plugins.archgate.dev/archgate/vscode.git`. Quando você adiciona esse marketplace às suas configurações de usuário do VS Code, o VS Code descobre e instala o plugin automaticamente. O plugin é servido no formato nativo `.github/plugin/` do VS Code Copilot, separado do formato `.claude-plugin/` do Claude Code. @@ -79,7 +79,7 @@ A configuração do marketplace no nível de usuário (adicionada ao seu `settin ```json { "chat.plugins.marketplaces": [ - "https://:@plugins.archgate.dev/archgate-vscode.git" + "https://:@plugins.archgate.dev/archgate/vscode.git" ] } ``` diff --git a/src/commands/plugin/install.ts b/src/commands/plugin/install.ts index d7a14a03..0719d17f 100644 --- a/src/commands/plugin/install.ts +++ b/src/commands/plugin/install.ts @@ -65,12 +65,15 @@ export function registerPluginInstallCommand(plugin: Command) { await installCopilotPlugin(); logInfo(`Archgate plugin installed for ${label}.`); } else { - const url = buildMarketplaceUrl(); + const url = buildVscodeMarketplaceUrl(); logWarn( "Copilot CLI not found. To install the plugin manually, run:" ); console.log( - ` ${styleText("bold", "copilot plugin install")} ${url}` + ` ${styleText("bold", "copilot plugin marketplace add")} ${url}` + ); + console.log( + ` ${styleText("bold", "copilot plugin install")} archgate@archgate` ); } break; diff --git a/src/helpers/plugin-install.ts b/src/helpers/plugin-install.ts index b4df6d3c..66f54514 100644 --- a/src/helpers/plugin-install.ts +++ b/src/helpers/plugin-install.ts @@ -19,7 +19,7 @@ const PLUGINS_API = "https://plugins.archgate.dev"; const MARKETPLACE_URL = "https://plugins.archgate.dev/archgate.git"; /** Base VS Code marketplace URL — credentials are provided by the git credential manager. */ const VSCODE_MARKETPLACE_URL = - "https://plugins.archgate.dev/archgate-vscode.git"; + "https://plugins.archgate.dev/archgate/vscode.git"; /** * Run a command using Bun.spawn (cross-platform, no shell). @@ -164,16 +164,30 @@ export async function isCopilotCliAvailable(): Promise { * Install the archgate plugin via the `copilot` CLI. * * Runs: - * copilot plugin install + * copilot plugin marketplace add + * copilot plugin install archgate@archgate * * Throws on failure so the caller can fall back to manual instructions. */ export async function installCopilotPlugin(): Promise { - const url = buildMarketplaceUrl(); + const url = buildVscodeMarketplaceUrl(); const cmd = (await resolveCommand("copilot")) ?? "copilot"; + logDebug("Adding archgate marketplace to copilot CLI"); + const addResult = await run([cmd, "plugin", "marketplace", "add", url]); + if (addResult.exitCode !== 0) { + throw new Error( + `copilot plugin marketplace add failed (exit ${addResult.exitCode})` + ); + } + logDebug("Installing archgate plugin via copilot CLI"); - const installResult = await run([cmd, "plugin", "install", url]); + const installResult = await run([ + cmd, + "plugin", + "install", + "archgate@archgate", + ]); if (installResult.exitCode !== 0) { throw new Error( `copilot plugin install failed (exit ${installResult.exitCode})` diff --git a/tests/helpers/plugin-install.test.ts b/tests/helpers/plugin-install.test.ts index 02405863..24eb8652 100644 --- a/tests/helpers/plugin-install.test.ts +++ b/tests/helpers/plugin-install.test.ts @@ -21,9 +21,9 @@ describe("plugin-install", () => { }); describe("buildVscodeMarketplaceUrl", () => { - test("returns bare URL pointing to archgate-vscode.git", () => { + test("returns bare URL pointing to archgate/vscode.git", () => { const url = buildVscodeMarketplaceUrl(); - expect(url).toBe("https://plugins.archgate.dev/archgate-vscode.git"); + expect(url).toBe("https://plugins.archgate.dev/archgate/vscode.git"); }); test("does not contain @ (no embedded credentials)", () => { @@ -31,11 +31,11 @@ describe("plugin-install", () => { expect(url).not.toContain("@"); }); - test("uses archgate-vscode.git repo (not archgate.git)", () => { + test("uses archgate/vscode.git path (not archgate.git)", () => { const vscodeUrl = buildVscodeMarketplaceUrl(); const claudeUrl = buildMarketplaceUrl(); - expect(vscodeUrl).toContain("archgate-vscode.git"); - expect(claudeUrl).not.toContain("archgate-vscode.git"); + expect(vscodeUrl).toContain("archgate/vscode.git"); + expect(claudeUrl).not.toContain("archgate/vscode.git"); expect(claudeUrl).toContain("archgate.git"); }); });