mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-19 07:04:21 +01:00
fix: correct deep link install link format (#1830)
This commit is contained in:
@@ -1,5 +1,30 @@
|
|||||||
import type { MCPServer } from "../types/server";
|
import type { MCPServer } from "../types/server";
|
||||||
|
|
||||||
export function getGooseInstallLink(server: MCPServer): string {
|
export function getGooseInstallLink(server: MCPServer): string {
|
||||||
return `goose://install/${encodeURIComponent(server.command)}`;
|
if (server.is_builtin) {
|
||||||
|
const queryParams = [
|
||||||
|
'cmd=goosed',
|
||||||
|
'arg=mcp',
|
||||||
|
`arg=${encodeURIComponent(server.id)}`,
|
||||||
|
`description=${encodeURIComponent(server.id)}`
|
||||||
|
].join('&');
|
||||||
|
return `goose://extension?${queryParams}`;
|
||||||
|
}
|
||||||
|
const parts = server.command.split(" ");
|
||||||
|
const baseCmd = parts[0]; // npx or uvx
|
||||||
|
const args = parts.slice(1); // remaining arguments
|
||||||
|
const queryParams = [
|
||||||
|
`cmd=${encodeURIComponent(baseCmd)}`,
|
||||||
|
...args.map((arg) => `arg=${encodeURIComponent(arg)}`),
|
||||||
|
`id=${encodeURIComponent(server.id)}`,
|
||||||
|
`name=${encodeURIComponent(server.name)}`,
|
||||||
|
`description=${encodeURIComponent(server.description)}`,
|
||||||
|
...server.environmentVariables
|
||||||
|
.filter((env) => env.required)
|
||||||
|
.map(
|
||||||
|
(env) => `env=${encodeURIComponent(`${env.name}=${env.description}`)}`
|
||||||
|
),
|
||||||
|
].join("&");
|
||||||
|
|
||||||
|
return `goose://extension?${queryParams}`;
|
||||||
}
|
}
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
import type { MCPServer } from "../types/server";
|
|
||||||
|
|
||||||
export function getGooseInstallLink(server: MCPServer): string {
|
|
||||||
if (server.is_builtin) {
|
|
||||||
const queryParams = [
|
|
||||||
'cmd=goosed',
|
|
||||||
'arg=mcp',
|
|
||||||
`arg=${encodeURIComponent(server.id)}`,
|
|
||||||
`description=${encodeURIComponent(server.id)}`
|
|
||||||
].join('&');
|
|
||||||
return `goose://extension?${queryParams}`;
|
|
||||||
}
|
|
||||||
const parts = server.command.split(" ");
|
|
||||||
const baseCmd = parts[0]; // npx or uvx
|
|
||||||
const args = parts.slice(1); // remaining arguments
|
|
||||||
const queryParams = [
|
|
||||||
`cmd=${encodeURIComponent(baseCmd)}`,
|
|
||||||
...args.map((arg) => `arg=${encodeURIComponent(arg)}`),
|
|
||||||
`id=${encodeURIComponent(server.id)}`,
|
|
||||||
`name=${encodeURIComponent(server.name)}`,
|
|
||||||
`description=${encodeURIComponent(server.description)}`,
|
|
||||||
...server.environmentVariables
|
|
||||||
.filter((env) => env.required)
|
|
||||||
.map(
|
|
||||||
(env) => `env=${encodeURIComponent(`${env.name}=${env.description}`)}`
|
|
||||||
),
|
|
||||||
].join("&");
|
|
||||||
|
|
||||||
return `goose://extension?${queryParams}`;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user