@kenkaiiii/ggcoder 4.11.3 → 4.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-sidecar.js +368 -53
- package/dist/app-sidecar.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -3
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +57 -11
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +196 -38
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/api-benchmark.d.ts +64 -0
- package/dist/core/api-benchmark.d.ts.map +1 -0
- package/dist/core/api-benchmark.js +381 -0
- package/dist/core/api-benchmark.js.map +1 -0
- package/dist/core/encode-cwd.d.ts +25 -0
- package/dist/core/encode-cwd.d.ts.map +1 -0
- package/dist/core/encode-cwd.js +40 -0
- package/dist/core/encode-cwd.js.map +1 -0
- package/dist/core/encode-cwd.test.d.ts +2 -0
- package/dist/core/encode-cwd.test.d.ts.map +1 -0
- package/dist/core/encode-cwd.test.js +61 -0
- package/dist/core/encode-cwd.test.js.map +1 -0
- package/dist/core/event-bus.d.ts +1 -0
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/mcp/client.d.ts +32 -0
- package/dist/core/mcp/client.d.ts.map +1 -1
- package/dist/core/mcp/client.js +232 -27
- package/dist/core/mcp/client.js.map +1 -1
- package/dist/core/mcp/index.d.ts +3 -1
- package/dist/core/mcp/index.d.ts.map +1 -1
- package/dist/core/mcp/index.js +2 -0
- package/dist/core/mcp/index.js.map +1 -1
- package/dist/core/mcp/loopback.d.ts +27 -0
- package/dist/core/mcp/loopback.d.ts.map +1 -0
- package/dist/core/mcp/loopback.js +66 -0
- package/dist/core/mcp/loopback.js.map +1 -0
- package/dist/core/mcp/loopback.test.d.ts +2 -0
- package/dist/core/mcp/loopback.test.d.ts.map +1 -0
- package/dist/core/mcp/loopback.test.js +87 -0
- package/dist/core/mcp/loopback.test.js.map +1 -0
- package/dist/core/mcp/oauth-provider.d.ts +51 -0
- package/dist/core/mcp/oauth-provider.d.ts.map +1 -0
- package/dist/core/mcp/oauth-provider.js +95 -0
- package/dist/core/mcp/oauth-provider.js.map +1 -0
- package/dist/core/mcp/oauth-store.d.ts +39 -0
- package/dist/core/mcp/oauth-store.d.ts.map +1 -0
- package/dist/core/mcp/oauth-store.js +63 -0
- package/dist/core/mcp/oauth-store.js.map +1 -0
- package/dist/core/mcp/oauth-store.test.d.ts +2 -0
- package/dist/core/mcp/oauth-store.test.d.ts.map +1 -0
- package/dist/core/mcp/oauth-store.test.js +94 -0
- package/dist/core/mcp/oauth-store.test.js.map +1 -0
- package/dist/core/mcp/parse-add-command.d.ts.map +1 -1
- package/dist/core/mcp/parse-add-command.js +1 -0
- package/dist/core/mcp/parse-add-command.js.map +1 -1
- package/dist/core/mcp/parse-add-command.test.js +8 -2
- package/dist/core/mcp/parse-add-command.test.js.map +1 -1
- package/dist/core/mcp/store.d.ts +4 -4
- package/dist/core/mcp/store.d.ts.map +1 -1
- package/dist/core/mcp/store.js +7 -1
- package/dist/core/mcp/store.js.map +1 -1
- package/dist/core/mcp/store.test.js +11 -2
- package/dist/core/mcp/store.test.js.map +1 -1
- package/dist/core/mcp/types.d.ts +5 -1
- package/dist/core/mcp/types.d.ts.map +1 -1
- package/dist/core/process-manager.d.ts.map +1 -1
- package/dist/core/process-manager.js +5 -1
- package/dist/core/process-manager.js.map +1 -1
- package/dist/core/project-discovery.d.ts.map +1 -1
- package/dist/core/project-discovery.js +2 -9
- package/dist/core/project-discovery.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +1 -3
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +4 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +5 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/shell.d.ts +51 -0
- package/dist/core/shell.d.ts.map +1 -0
- package/dist/core/shell.js +82 -0
- package/dist/core/shell.js.map +1 -0
- package/dist/core/shell.test.d.ts +2 -0
- package/dist/core/shell.test.d.ts.map +1 -0
- package/dist/core/shell.test.js +87 -0
- package/dist/core/shell.test.js.map +1 -0
- package/dist/core/speed-benchmark.d.ts +133 -0
- package/dist/core/speed-benchmark.d.ts.map +1 -0
- package/dist/core/speed-benchmark.js +410 -0
- package/dist/core/speed-benchmark.js.map +1 -0
- package/dist/core/speed-benchmark.test.d.ts +2 -0
- package/dist/core/speed-benchmark.test.d.ts.map +1 -0
- package/dist/core/speed-benchmark.test.js +97 -0
- package/dist/core/speed-benchmark.test.js.map +1 -0
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +4 -3
- package/dist/interactive.js.map +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +1 -3
- package/dist/session.js.map +1 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +17 -1
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/edit-diff.d.ts.map +1 -1
- package/dist/tools/edit-diff.js +25 -8
- package/dist/tools/edit-diff.js.map +1 -1
- package/dist/tools/generate-image.d.ts +39 -0
- package/dist/tools/generate-image.d.ts.map +1 -0
- package/dist/tools/generate-image.js +301 -0
- package/dist/tools/generate-image.js.map +1 -0
- package/dist/tools/generate-image.test.d.ts +2 -0
- package/dist/tools/generate-image.test.d.ts.map +1 -0
- package/dist/tools/generate-image.test.js +223 -0
- package/dist/tools/generate-image.test.js.map +1 -0
- package/dist/tools/index.d.ts +12 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +16 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/ls.d.ts.map +1 -1
- package/dist/tools/ls.js +7 -4
- package/dist/tools/ls.js.map +1 -1
- package/dist/tools/plan-mode.test.js +5 -5
- package/dist/tools/plan-mode.test.js.map +1 -1
- package/dist/tools/prompt-hints.d.ts.map +1 -1
- package/dist/tools/prompt-hints.js +2 -0
- package/dist/tools/prompt-hints.js.map +1 -1
- package/dist/tools/safe-env.d.ts.map +1 -1
- package/dist/tools/safe-env.js +27 -0
- package/dist/tools/safe-env.js.map +1 -1
- package/dist/ui/App.d.ts +1 -1
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/hooks/usePixelFixFlow.d.ts +1 -1
- package/dist/ui/hooks/usePixelFixFlow.d.ts.map +1 -1
- package/dist/ui/hooks/usePixelFixFlow.js +1 -1
- package/dist/ui/hooks/usePixelFixFlow.js.map +1 -1
- package/dist/ui/render.d.ts +1 -1
- package/dist/ui/render.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-benchmark.js","sourceRoot":"","sources":["../../src/core/api-benchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encode a project cwd into a filesystem-safe session-directory name.
|
|
3
|
+
*
|
|
4
|
+
* This is the single source of truth for the cwd → folder-name mapping used by
|
|
5
|
+
* session persistence (`SessionManager`, legacy `session.ts`) and project
|
|
6
|
+
* discovery. Previously three copies drifted; the bug was repeated three times.
|
|
7
|
+
*
|
|
8
|
+
* ## Windows extended-length paths
|
|
9
|
+
*
|
|
10
|
+
* Windows canonicalizes working directories to extended-length form:
|
|
11
|
+
* `\\?\C:\Users\brams`. The `\\?\` prefix — and the `?` it introduces — are
|
|
12
|
+
* illegal in Windows folder names, so `mkdir` throws ENOENT and the sidecar
|
|
13
|
+
* dies on startup. We strip the prefix first so the encoded name is:
|
|
14
|
+
*
|
|
15
|
+
* 1. free of illegal characters, and
|
|
16
|
+
* 2. identical to what the plain (non-canonicalized) path produces.
|
|
17
|
+
*
|
|
18
|
+
* The UNC variant `\\?\UNC\server\share` is normalized to `\\server\share`
|
|
19
|
+
* so it matches a plain UNC path too.
|
|
20
|
+
*
|
|
21
|
+
* The encoding is intentionally one-way; display-time decoding
|
|
22
|
+
* (e.g. `serve-mode`) is best-effort.
|
|
23
|
+
*/
|
|
24
|
+
export declare function encodeCwd(cwd: string): string;
|
|
25
|
+
//# sourceMappingURL=encode-cwd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-cwd.d.ts","sourceRoot":"","sources":["../../src/core/encode-cwd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiB7C"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encode a project cwd into a filesystem-safe session-directory name.
|
|
3
|
+
*
|
|
4
|
+
* This is the single source of truth for the cwd → folder-name mapping used by
|
|
5
|
+
* session persistence (`SessionManager`, legacy `session.ts`) and project
|
|
6
|
+
* discovery. Previously three copies drifted; the bug was repeated three times.
|
|
7
|
+
*
|
|
8
|
+
* ## Windows extended-length paths
|
|
9
|
+
*
|
|
10
|
+
* Windows canonicalizes working directories to extended-length form:
|
|
11
|
+
* `\\?\C:\Users\brams`. The `\\?\` prefix — and the `?` it introduces — are
|
|
12
|
+
* illegal in Windows folder names, so `mkdir` throws ENOENT and the sidecar
|
|
13
|
+
* dies on startup. We strip the prefix first so the encoded name is:
|
|
14
|
+
*
|
|
15
|
+
* 1. free of illegal characters, and
|
|
16
|
+
* 2. identical to what the plain (non-canonicalized) path produces.
|
|
17
|
+
*
|
|
18
|
+
* The UNC variant `\\?\UNC\server\share` is normalized to `\\server\share`
|
|
19
|
+
* so it matches a plain UNC path too.
|
|
20
|
+
*
|
|
21
|
+
* The encoding is intentionally one-way; display-time decoding
|
|
22
|
+
* (e.g. `serve-mode`) is best-effort.
|
|
23
|
+
*/
|
|
24
|
+
export function encodeCwd(cwd) {
|
|
25
|
+
return (cwd
|
|
26
|
+
// Normalize Windows extended-length prefixes so canonicalized and plain
|
|
27
|
+
// forms of the same path produce the same folder name.
|
|
28
|
+
// \\?\UNC\server\share → \\server\share
|
|
29
|
+
.replace(/^\\\\\?\\UNC\\/i, "\\\\")
|
|
30
|
+
// \\?\C:\… → C:\…
|
|
31
|
+
.replace(/^\\\\\?\\/i, "")
|
|
32
|
+
// Path separators → underscore
|
|
33
|
+
.replace(/[\\/]/g, "_")
|
|
34
|
+
// Strip every Windows-reserved character (<>:"|?*) — also covers the
|
|
35
|
+
// drive-letter colon on `C:\`.
|
|
36
|
+
.replace(/[<>:"|?*]/g, "")
|
|
37
|
+
// Drop a leading underscore left by a Unix root slash
|
|
38
|
+
.replace(/^_/, ""));
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=encode-cwd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-cwd.js","sourceRoot":"","sources":["../../src/core/encode-cwd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,CACL,GAAG;QACD,wEAAwE;QACxE,uDAAuD;QACvD,4CAA4C;SAC3C,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,sBAAsB;SACrB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;QAC1B,+BAA+B;SAC9B,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;QACvB,qEAAqE;QACrE,+BAA+B;SAC9B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;QAC1B,sDAAsD;SACrD,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-cwd.test.d.ts","sourceRoot":"","sources":["../../src/core/encode-cwd.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { encodeCwd } from "./encode-cwd.js";
|
|
3
|
+
describe("encodeCwd — Unix paths (unchanged behavior)", () => {
|
|
4
|
+
it("encodes a typical Unix project path", () => {
|
|
5
|
+
expect(encodeCwd("/Users/kenkai/Documents/gg-coder")).toBe("Users_kenkai_Documents_gg-coder");
|
|
6
|
+
});
|
|
7
|
+
it("drops only the leading slash, keeping interior underscores from the path", () => {
|
|
8
|
+
expect(encodeCwd("/home/user/project")).toBe("home_user_project");
|
|
9
|
+
});
|
|
10
|
+
it("encodes a Windows path with a drive letter (plain form)", () => {
|
|
11
|
+
expect(encodeCwd("C:\\Users\\brams")).toBe("C_Users_brams");
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
describe("encodeCwd — Windows extended-length prefix (the crash bug)", () => {
|
|
15
|
+
it("strips the \\\\?\\ prefix so ? never reaches the folder name", () => {
|
|
16
|
+
const encoded = encodeCwd("\\\\?\\C:\\Users\\brams");
|
|
17
|
+
// The whole point: no illegal characters survive.
|
|
18
|
+
expect(encoded).not.toMatch(/[<>:"|?*]/);
|
|
19
|
+
expect(encoded).toBe("C_Users_brams");
|
|
20
|
+
});
|
|
21
|
+
it("produces the SAME folder for canonicalized and plain Windows paths", () => {
|
|
22
|
+
const plain = encodeCwd("C:\\Users\\brams\\project");
|
|
23
|
+
const canonical = encodeCwd("\\\\?\\C:\\Users\\brams\\project");
|
|
24
|
+
expect(canonical).toBe(plain);
|
|
25
|
+
});
|
|
26
|
+
it("normalizes the UNC extended-length variant to match plain UNC", () => {
|
|
27
|
+
const plain = encodeCwd("\\\\server\\share\\project");
|
|
28
|
+
const canonical = encodeCwd("\\\\?\\UNC\\server\\share\\project");
|
|
29
|
+
expect(canonical).toBe(plain);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe("encodeCwd — Windows-reserved characters are all stripped", () => {
|
|
33
|
+
// On Windows these characters are illegal in file/folder names:
|
|
34
|
+
// < > : " | ? *
|
|
35
|
+
// A path won't normally contain most of these, but the encoder must be a
|
|
36
|
+
// hard guarantee — `mkdir` will throw ENOENT/EINVAL if any survive.
|
|
37
|
+
const reserved = ["<", ">", ":", '"', "|", "?", "*"];
|
|
38
|
+
for (const ch of reserved) {
|
|
39
|
+
it(`strips "${ch}"`, () => {
|
|
40
|
+
const encoded = encodeCwd(`C:\\Users\\proj${ch}name`);
|
|
41
|
+
expect(encoded).not.toContain(ch);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
describe("encodeCwd — produces a valid folder name (no mkdir failure)", () => {
|
|
46
|
+
it("never emits a name with a Windows-illegal character for realistic inputs", () => {
|
|
47
|
+
const inputs = [
|
|
48
|
+
"\\\\?\\C:\\Users\\brams",
|
|
49
|
+
"\\\\?\\C:\\Users\\brams\\gg-projects\\my-app",
|
|
50
|
+
"\\\\?\\UNC\\fileserver\\shared\\repo",
|
|
51
|
+
"/Users/kenkai/Documents/gg-coder",
|
|
52
|
+
"D:\\dev\\workspace",
|
|
53
|
+
];
|
|
54
|
+
for (const input of inputs) {
|
|
55
|
+
const encoded = encodeCwd(input);
|
|
56
|
+
expect(encoded).toMatch(/^[^<>:"|?*\\/\s]+$/);
|
|
57
|
+
expect(encoded.length).toBeGreaterThan(0);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=encode-cwd.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode-cwd.test.js","sourceRoot":"","sources":["../../src/core/encode-cwd.test.ts"],"names":[],"mappings":"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"}
|
package/dist/core/event-bus.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,MAAM,WAAW,WAAW;IAE1B,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,eAAe,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IACrF,gBAAgB,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1D,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,kEAAkE;QAClE,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/F,CAAC;IACF,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE;YACV,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IACF,KAAK,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IAGxB,gBAAgB,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/D,kBAAkB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAI7E,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,YAAY,GAAG,aAAa,CAAA;KAAE,CAAC;IAGvD,aAAa,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,YAAY,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,15 @@ export interface MCPConnectResult {
|
|
|
7
7
|
toolCount: number;
|
|
8
8
|
tools: AgentTool[];
|
|
9
9
|
error?: string;
|
|
10
|
+
/** True when the server returned 401/Unauthorized and an OAuth login is
|
|
11
|
+
* required before it can connect. The UI surfaces this as "requires login". */
|
|
12
|
+
requiresAuth?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** Outcome of an interactive remote-MCP OAuth login. */
|
|
15
|
+
export interface MCPLoginResult {
|
|
16
|
+
ok: boolean;
|
|
17
|
+
toolCount: number;
|
|
18
|
+
error?: string;
|
|
10
19
|
}
|
|
11
20
|
export declare class MCPClientManager {
|
|
12
21
|
private servers;
|
|
@@ -23,7 +32,30 @@ export declare class MCPClientManager {
|
|
|
23
32
|
* server before persisting it.
|
|
24
33
|
*/
|
|
25
34
|
probe(config: MCPServerConfig): Promise<MCPConnectResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Run the interactive OAuth login for one remote MCP server end-to-end:
|
|
37
|
+
* start a loopback callback server, let the SDK open the browser via
|
|
38
|
+
* `onAuthorizationUrl`, capture the redirect, exchange the code, then verify
|
|
39
|
+
* the authorized connection by listing tools. Tokens are persisted by the
|
|
40
|
+
* provider so later (non-interactive) connects succeed silently.
|
|
41
|
+
*
|
|
42
|
+
* `onAuthorizationUrl` is invoked with the authorize URL so the host can open
|
|
43
|
+
* it (the gg-app broadcasts it to the webview, which opens the system
|
|
44
|
+
* browser; the CLI prints it). Never throws — returns `{ ok:false, error }`.
|
|
45
|
+
*/
|
|
46
|
+
login(config: MCPServerConfig, onAuthorizationUrl: (url: string) => void, timeoutMs?: number): Promise<MCPLoginResult>;
|
|
26
47
|
private connectServer;
|
|
48
|
+
/**
|
|
49
|
+
* Connect a single HTTP (Streamable HTTP or SSE) server and return the live
|
|
50
|
+
* client + transport. Transport selection:
|
|
51
|
+
* - `transport === "sse"` → legacy SSE directly (Playwright MCP `--port`).
|
|
52
|
+
* - otherwise → Streamable HTTP first, SSE fallback for older servers.
|
|
53
|
+
*
|
|
54
|
+
* An OAuth provider is attached only for REMOTE servers — localhost never
|
|
55
|
+
* needs OAuth and attaching it there is dead weight that can misdiagnose a
|
|
56
|
+
* protocol mismatch as a login requirement.
|
|
57
|
+
*/
|
|
58
|
+
private connectHttp;
|
|
27
59
|
dispose(): Promise<void>;
|
|
28
60
|
}
|
|
29
61
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAgBlD,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;oFACgF;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAyB;IAElC,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKlE;;;;OAIG;IACG,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAuBjF;;;;OAIG;IACG,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoB/D;;;;;;;;;;OAUG;IACG,KAAK,CACT,MAAM,EAAE,eAAe,EACvB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EACzC,SAAS,SAAU,GAClB,OAAO,CAAC,cAAc,CAAC;YAwHZ,aAAa;IAwH3B;;;;;;;;;OASG;YACW,WAAW;IAiDnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAU/B"}
|
package/dist/core/mcp/client.js
CHANGED
|
@@ -2,9 +2,14 @@ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
|
2
2
|
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
3
3
|
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
|
|
4
4
|
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
5
|
+
import { UnauthorizedError } from "@modelcontextprotocol/sdk/client/auth.js";
|
|
5
6
|
import { z } from "zod";
|
|
7
|
+
import http from "node:http";
|
|
6
8
|
import os from "node:os";
|
|
7
9
|
import { log } from "../logger.js";
|
|
10
|
+
import { McpOAuthProvider, MCP_OAUTH_CALLBACK_PORT, MCP_OAUTH_CALLBACK_PATH, } from "./oauth-provider.js";
|
|
11
|
+
import { McpOAuthStore } from "./oauth-store.js";
|
|
12
|
+
import { isLocalhost, alternateLoopback, isNetworkError } from "./loopback.js";
|
|
8
13
|
export class MCPClientManager {
|
|
9
14
|
servers = [];
|
|
10
15
|
async connectAll(configs) {
|
|
@@ -26,9 +31,10 @@ export class MCPClientManager {
|
|
|
26
31
|
if (result.status === "fulfilled") {
|
|
27
32
|
return { name, ok: true, toolCount: result.value.length, tools: result.value };
|
|
28
33
|
}
|
|
29
|
-
const
|
|
34
|
+
const requiresAuth = isUnauthorized(result.reason);
|
|
35
|
+
const error = requiresAuth ? "Requires login." : formatConnectError(result.reason);
|
|
30
36
|
log("WARN", "mcp", `Failed to connect to MCP server "${name}"`, { error });
|
|
31
|
-
return { name, ok: false, toolCount: 0, tools: [], error };
|
|
37
|
+
return { name, ok: false, toolCount: 0, tools: [], error, requiresAuth };
|
|
32
38
|
});
|
|
33
39
|
const connected = results.filter((r) => r.ok).length;
|
|
34
40
|
const toolCount = results.reduce((sum, r) => sum + r.toolCount, 0);
|
|
@@ -56,8 +62,133 @@ export class MCPClientManager {
|
|
|
56
62
|
return { name: config.name, ok: true, toolCount: tools.length, tools };
|
|
57
63
|
}
|
|
58
64
|
catch (err) {
|
|
59
|
-
const
|
|
60
|
-
|
|
65
|
+
const requiresAuth = isUnauthorized(err);
|
|
66
|
+
const error = requiresAuth ? "Requires login." : formatConnectError(err);
|
|
67
|
+
return { name: config.name, ok: false, toolCount: 0, tools: [], error, requiresAuth };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Run the interactive OAuth login for one remote MCP server end-to-end:
|
|
72
|
+
* start a loopback callback server, let the SDK open the browser via
|
|
73
|
+
* `onAuthorizationUrl`, capture the redirect, exchange the code, then verify
|
|
74
|
+
* the authorized connection by listing tools. Tokens are persisted by the
|
|
75
|
+
* provider so later (non-interactive) connects succeed silently.
|
|
76
|
+
*
|
|
77
|
+
* `onAuthorizationUrl` is invoked with the authorize URL so the host can open
|
|
78
|
+
* it (the gg-app broadcasts it to the webview, which opens the system
|
|
79
|
+
* browser; the CLI prints it). Never throws — returns `{ ok:false, error }`.
|
|
80
|
+
*/
|
|
81
|
+
async login(config, onAuthorizationUrl, timeoutMs = 180_000) {
|
|
82
|
+
if (!config.url) {
|
|
83
|
+
return { ok: false, toolCount: 0, error: "Login is only supported for HTTP MCP servers." };
|
|
84
|
+
}
|
|
85
|
+
const url = new URL(config.url);
|
|
86
|
+
const store = new McpOAuthStore();
|
|
87
|
+
// Fresh PKCE/state for this attempt so a previous half-finished login can't
|
|
88
|
+
// poison the exchange.
|
|
89
|
+
await store.patch(config.name, { codeVerifier: undefined, state: undefined });
|
|
90
|
+
let codeResolve;
|
|
91
|
+
let codeReject;
|
|
92
|
+
const codePromise = new Promise((resolve, reject) => {
|
|
93
|
+
codeResolve = resolve;
|
|
94
|
+
codeReject = reject;
|
|
95
|
+
});
|
|
96
|
+
const provider = new McpOAuthProvider({
|
|
97
|
+
serverName: config.name,
|
|
98
|
+
store,
|
|
99
|
+
onRedirect: (authUrl) => onAuthorizationUrl(authUrl.toString()),
|
|
100
|
+
});
|
|
101
|
+
const expectedState = await provider.state();
|
|
102
|
+
// Loopback server that receives the OAuth redirect. Bound to the fixed
|
|
103
|
+
// callback port that the registered redirect_uri points at.
|
|
104
|
+
const server = http.createServer((req, res) => {
|
|
105
|
+
const reqUrl = new URL(req.url || "", `http://localhost:${MCP_OAUTH_CALLBACK_PORT}`);
|
|
106
|
+
if (reqUrl.pathname !== MCP_OAUTH_CALLBACK_PATH) {
|
|
107
|
+
res.statusCode = 404;
|
|
108
|
+
res.end("Not found");
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const err = reqUrl.searchParams.get("error");
|
|
112
|
+
const code = reqUrl.searchParams.get("code");
|
|
113
|
+
const state = reqUrl.searchParams.get("state");
|
|
114
|
+
res.writeHead(200, { "Content-Type": "text/html" });
|
|
115
|
+
if (err) {
|
|
116
|
+
res.end(`<html><body><h1>Login failed</h1><p>${escapeHtml(err)}</p></body></html>`);
|
|
117
|
+
codeReject?.(new Error(`Authorization failed: ${err}`));
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (!code) {
|
|
121
|
+
res.end("<html><body><h1>Login failed</h1><p>No authorization code.</p></body></html>");
|
|
122
|
+
codeReject?.(new Error("No authorization code in callback."));
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (state !== expectedState) {
|
|
126
|
+
res.end("<html><body><h1>Login failed</h1><p>State mismatch.</p></body></html>");
|
|
127
|
+
codeReject?.(new Error("OAuth state mismatch."));
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
res.end("<html><body><h1>Login successful!</h1><p>You can close this tab and return to GG Coder.</p></body></html>");
|
|
131
|
+
codeResolve?.(code);
|
|
132
|
+
});
|
|
133
|
+
try {
|
|
134
|
+
await new Promise((resolve, reject) => {
|
|
135
|
+
server.once("error", reject);
|
|
136
|
+
server.listen(MCP_OAUTH_CALLBACK_PORT, "127.0.0.1", () => resolve());
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
141
|
+
const hint = msg.includes("EADDRINUSE") || msg.includes("in use")
|
|
142
|
+
? `Port ${MCP_OAUTH_CALLBACK_PORT} is in use — close whatever is using it and retry.`
|
|
143
|
+
: msg;
|
|
144
|
+
return { ok: false, toolCount: 0, error: `Could not start login callback server: ${hint}` };
|
|
145
|
+
}
|
|
146
|
+
const overallTimeout = setTimeout(() => {
|
|
147
|
+
codeReject?.(new Error("Login timed out waiting for the browser callback."));
|
|
148
|
+
}, timeoutMs);
|
|
149
|
+
overallTimeout.unref();
|
|
150
|
+
try {
|
|
151
|
+
// First connect triggers the redirect (browser opens) then throws
|
|
152
|
+
// UnauthorizedError — that's the expected, not a failure.
|
|
153
|
+
const loginTransport = new StreamableHTTPClientTransport(url, {
|
|
154
|
+
requestInit: config.headers ? { headers: config.headers } : undefined,
|
|
155
|
+
authProvider: provider,
|
|
156
|
+
});
|
|
157
|
+
const loginClient = new Client({ name: "ggcoder", version: "1.0.0" });
|
|
158
|
+
try {
|
|
159
|
+
await loginClient.connect(loginTransport);
|
|
160
|
+
// Already authorized (had valid tokens) — nothing more to do.
|
|
161
|
+
const { tools } = await loginClient.listTools();
|
|
162
|
+
await loginClient.close().catch(() => { });
|
|
163
|
+
return { ok: true, toolCount: tools.length };
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
if (!isUnauthorized(err))
|
|
167
|
+
throw err;
|
|
168
|
+
}
|
|
169
|
+
const code = await codePromise;
|
|
170
|
+
// Exchange the code for tokens (persisted via provider.saveTokens).
|
|
171
|
+
await loginTransport.finishAuth(code);
|
|
172
|
+
await loginClient.close().catch(() => { });
|
|
173
|
+
// Verify the authorized connection on a fresh transport + list tools.
|
|
174
|
+
const verifyTransport = new StreamableHTTPClientTransport(url, {
|
|
175
|
+
requestInit: config.headers ? { headers: config.headers } : undefined,
|
|
176
|
+
authProvider: provider,
|
|
177
|
+
});
|
|
178
|
+
const verifyClient = new Client({ name: "ggcoder", version: "1.0.0" });
|
|
179
|
+
await verifyClient.connect(verifyTransport);
|
|
180
|
+
const { tools } = await verifyClient.listTools();
|
|
181
|
+
await verifyClient.close().catch(() => { });
|
|
182
|
+
return { ok: true, toolCount: tools.length };
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
return { ok: false, toolCount: 0, error: formatConnectError(err) };
|
|
186
|
+
}
|
|
187
|
+
finally {
|
|
188
|
+
clearTimeout(overallTimeout);
|
|
189
|
+
server.close();
|
|
190
|
+
// Clear the now-consumed in-flight PKCE/state so the store only keeps tokens.
|
|
191
|
+
await store.patch(config.name, { codeVerifier: undefined, state: undefined });
|
|
61
192
|
}
|
|
62
193
|
}
|
|
63
194
|
async connectServer(config) {
|
|
@@ -99,28 +230,31 @@ export class MCPClientManager {
|
|
|
99
230
|
}
|
|
100
231
|
}
|
|
101
232
|
else {
|
|
102
|
-
// HTTP transport
|
|
233
|
+
// HTTP transport (Streamable HTTP or SSE). See connectHttp for the
|
|
234
|
+
// transport-selection + auth logic.
|
|
103
235
|
const url = new URL(config.url);
|
|
104
|
-
const
|
|
236
|
+
const isLocal = isLocalhost(url);
|
|
105
237
|
try {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
client = new Client({ name: "ggcoder", version: "1.0.0" });
|
|
110
|
-
await client.connect(transport, { timeout });
|
|
238
|
+
const r = await this.connectHttp(url, config, isLocal, timeout);
|
|
239
|
+
client = r.client;
|
|
240
|
+
transport = r.transport;
|
|
111
241
|
}
|
|
112
|
-
catch (
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
242
|
+
catch (err) {
|
|
243
|
+
// Windows 11 resolves `localhost` → ::1 (IPv6) first; if the server
|
|
244
|
+
// binds IPv4-only (127.0.0.1) the first fetch gets ECONNREFUSED.
|
|
245
|
+
// Retry once with the alternate loopback hostname. macOS resolves
|
|
246
|
+
// both stacks so this only bites Windows/Linux in practice.
|
|
247
|
+
const alt = isLocal ? alternateLoopback(url.hostname) : undefined;
|
|
248
|
+
if (!alt || !isNetworkError(err))
|
|
249
|
+
throw err;
|
|
250
|
+
log("INFO", "mcp", `localhost connect failed for "${config.name}", retrying as ${alt}`, {
|
|
251
|
+
error: String(err),
|
|
121
252
|
});
|
|
122
|
-
|
|
123
|
-
|
|
253
|
+
const altUrl = new URL(url);
|
|
254
|
+
altUrl.hostname = alt;
|
|
255
|
+
const r = await this.connectHttp(altUrl, config, isLocal, timeout);
|
|
256
|
+
client = r.client;
|
|
257
|
+
transport = r.transport;
|
|
124
258
|
}
|
|
125
259
|
}
|
|
126
260
|
this.servers.push({ name: config.name, client, transport, lastCallTime: 0 });
|
|
@@ -169,6 +303,55 @@ export class MCPClientManager {
|
|
|
169
303
|
};
|
|
170
304
|
});
|
|
171
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* Connect a single HTTP (Streamable HTTP or SSE) server and return the live
|
|
308
|
+
* client + transport. Transport selection:
|
|
309
|
+
* - `transport === "sse"` → legacy SSE directly (Playwright MCP `--port`).
|
|
310
|
+
* - otherwise → Streamable HTTP first, SSE fallback for older servers.
|
|
311
|
+
*
|
|
312
|
+
* An OAuth provider is attached only for REMOTE servers — localhost never
|
|
313
|
+
* needs OAuth and attaching it there is dead weight that can misdiagnose a
|
|
314
|
+
* protocol mismatch as a login requirement.
|
|
315
|
+
*/
|
|
316
|
+
async connectHttp(url, config, isLocal, timeout) {
|
|
317
|
+
const reqInit = config.headers ? { headers: config.headers } : undefined;
|
|
318
|
+
const authProvider = isLocal ? undefined : new McpOAuthProvider({ serverName: config.name });
|
|
319
|
+
const sseTransport = () => new SSEClientTransport(url, {
|
|
320
|
+
eventSourceInit: config.headers ? { fetch: createHeaderFetch(config.headers) } : undefined,
|
|
321
|
+
requestInit: reqInit,
|
|
322
|
+
authProvider,
|
|
323
|
+
});
|
|
324
|
+
if (config.transport === "sse") {
|
|
325
|
+
const transport = sseTransport();
|
|
326
|
+
const client = new Client({ name: "ggcoder", version: "1.0.0" });
|
|
327
|
+
await client.connect(transport, { timeout });
|
|
328
|
+
return { client, transport };
|
|
329
|
+
}
|
|
330
|
+
try {
|
|
331
|
+
const transport = new StreamableHTTPClientTransport(url, {
|
|
332
|
+
requestInit: reqInit,
|
|
333
|
+
authProvider,
|
|
334
|
+
});
|
|
335
|
+
const client = new Client({ name: "ggcoder", version: "1.0.0" });
|
|
336
|
+
await client.connect(transport, { timeout });
|
|
337
|
+
return { client, transport };
|
|
338
|
+
}
|
|
339
|
+
catch (streamableErr) {
|
|
340
|
+
// For localhost, always try the SSE fallback — a 401 from localhost is
|
|
341
|
+
// almost certainly a protocol mismatch (e.g. Playwright MCP serves SSE),
|
|
342
|
+
// not an auth requirement. For remote servers, a 401 means OAuth is needed
|
|
343
|
+
// so skip the fallback and surface "requires login".
|
|
344
|
+
if (!isLocal && isUnauthorized(streamableErr))
|
|
345
|
+
throw streamableErr;
|
|
346
|
+
log("INFO", "mcp", `StreamableHTTP failed for "${config.name}", trying SSE fallback`, {
|
|
347
|
+
error: String(streamableErr),
|
|
348
|
+
});
|
|
349
|
+
const transport = sseTransport();
|
|
350
|
+
const client = new Client({ name: "ggcoder", version: "1.0.0" });
|
|
351
|
+
await client.connect(transport, { timeout });
|
|
352
|
+
return { client, transport };
|
|
353
|
+
}
|
|
354
|
+
}
|
|
172
355
|
async dispose() {
|
|
173
356
|
for (const server of this.servers) {
|
|
174
357
|
try {
|
|
@@ -181,11 +364,6 @@ export class MCPClientManager {
|
|
|
181
364
|
this.servers = [];
|
|
182
365
|
}
|
|
183
366
|
}
|
|
184
|
-
/**
|
|
185
|
-
* Create a custom fetch wrapper that injects extra headers into every request.
|
|
186
|
-
* Used for SSEClientTransport's eventSourceInit to pass auth headers
|
|
187
|
-
* on the initial SSE GET connection (which doesn't use requestInit).
|
|
188
|
-
*/
|
|
189
367
|
/**
|
|
190
368
|
* Turn a thrown connection error into a short human-readable string. Surfaces
|
|
191
369
|
* the common rate-limit case explicitly; otherwise the underlying message.
|
|
@@ -197,6 +375,33 @@ function formatConnectError(reason) {
|
|
|
197
375
|
}
|
|
198
376
|
return msg;
|
|
199
377
|
}
|
|
378
|
+
/**
|
|
379
|
+
* Whether a connect error means the server needs OAuth login. The SDK throws
|
|
380
|
+
* its typed `UnauthorizedError` when auth is required, but a raw 401 from the
|
|
381
|
+
* initial request (before the auth machinery engages) can also surface as a
|
|
382
|
+
* plain error message — so we check both.
|
|
383
|
+
*/
|
|
384
|
+
function isUnauthorized(reason) {
|
|
385
|
+
if (reason instanceof UnauthorizedError)
|
|
386
|
+
return true;
|
|
387
|
+
const msg = reason instanceof Error ? reason.message : String(reason);
|
|
388
|
+
return (msg.includes("Unauthorized") ||
|
|
389
|
+
msg.includes("401") ||
|
|
390
|
+
msg.toLowerCase().includes("invalid_token"));
|
|
391
|
+
}
|
|
392
|
+
/** Minimal HTML-escape for echoing an OAuth error string into the callback page. */
|
|
393
|
+
function escapeHtml(value) {
|
|
394
|
+
return value
|
|
395
|
+
.replace(/&/g, "&")
|
|
396
|
+
.replace(/</g, "<")
|
|
397
|
+
.replace(/>/g, ">")
|
|
398
|
+
.replace(/"/g, """);
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Create a custom fetch wrapper that injects extra headers into every request.
|
|
402
|
+
* Used for SSEClientTransport's eventSourceInit to pass auth headers
|
|
403
|
+
* on the initial SSE GET connection (which doesn't use requestInit).
|
|
404
|
+
*/
|
|
200
405
|
function createHeaderFetch(extraHeaders) {
|
|
201
406
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
202
407
|
return (url, init) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/mcp/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/mcp/client.ts"],"names":[],"mappings":"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"}
|