Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/public/llms-full.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -1894,7 +1894,7 @@ The user-level marketplace setting (added to your `settings.json`):
```json
{
"chat.plugins.marketplaces": [
"https://<github-user>:<token>@plugins.archgate.dev/archgate-vscode.git"
"https://<github-user>:<token>@plugins.archgate.dev/archgate/vscode.git"
]
}
```
Expand Down
4 changes: 2 additions & 2 deletions docs/src/content/docs/guides/vscode-plugin.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -79,7 +79,7 @@ The user-level marketplace setting (added to your `settings.json`):
```json
{
"chat.plugins.marketplaces": [
"https://<github-user>:<token>@plugins.archgate.dev/archgate-vscode.git"
"https://<github-user>:<token>@plugins.archgate.dev/archgate/vscode.git"
]
}
```
Expand Down
4 changes: 2 additions & 2 deletions docs/src/content/docs/pt-br/guides/vscode-plugin.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -79,7 +79,7 @@ A configuração do marketplace no nível de usuário (adicionada ao seu `settin
```json
{
"chat.plugins.marketplaces": [
"https://<github-user>:<token>@plugins.archgate.dev/archgate-vscode.git"
"https://<github-user>:<token>@plugins.archgate.dev/archgate/vscode.git"
]
}
```
Expand Down
7 changes: 5 additions & 2 deletions src/commands/plugin/install.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
22 changes: 18 additions & 4 deletions src/helpers/plugin-install.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down Expand Up @@ -164,16 +164,30 @@ export async function isCopilotCliAvailable(): Promise<boolean> {
* Install the archgate plugin via the `copilot` CLI.
*
* Runs:
* copilot plugin install <authenticated-git-url>
* copilot plugin marketplace add <vscode-marketplace-url>
* copilot plugin install archgate@archgate
*
* Throws on failure so the caller can fall back to manual instructions.
*/
export async function installCopilotPlugin(): Promise<void> {
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})`
Expand Down
10 changes: 5 additions & 5 deletions tests/helpers/plugin-install.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,21 @@ 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)", () => {
const url = buildVscodeMarketplaceUrl();
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");
});
});
Expand Down
Loading