@kenkaiiii/ggcoder 4.3.199 → 4.3.200

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.
Files changed (73) hide show
  1. package/package.json +6 -5
  2. package/dist/core/bridge-client.d.ts +0 -31
  3. package/dist/core/bridge-client.d.ts.map +0 -1
  4. package/dist/core/bridge-client.js +0 -124
  5. package/dist/core/bridge-client.js.map +0 -1
  6. package/dist/core/bridge-config.d.ts +0 -8
  7. package/dist/core/bridge-config.d.ts.map +0 -1
  8. package/dist/core/bridge-config.js +0 -52
  9. package/dist/core/bridge-config.js.map +0 -1
  10. package/dist/core/bridge-protocol.d.ts +0 -76
  11. package/dist/core/bridge-protocol.d.ts.map +0 -1
  12. package/dist/core/bridge-protocol.js +0 -30
  13. package/dist/core/bridge-protocol.js.map +0 -1
  14. package/dist/core/oauth/gemini.d.ts +0 -4
  15. package/dist/core/oauth/gemini.d.ts.map +0 -1
  16. package/dist/core/oauth/gemini.js +0 -293
  17. package/dist/core/oauth/gemini.js.map +0 -1
  18. package/dist/core/socket-server.d.ts +0 -15
  19. package/dist/core/socket-server.d.ts.map +0 -1
  20. package/dist/core/socket-server.js +0 -140
  21. package/dist/core/socket-server.js.map +0 -1
  22. package/dist/modes/bridge-mode.d.ts +0 -22
  23. package/dist/modes/bridge-mode.d.ts.map +0 -1
  24. package/dist/modes/bridge-mode.js +0 -281
  25. package/dist/modes/bridge-mode.js.map +0 -1
  26. package/dist/ui/buddy/Buddy.d.ts +0 -15
  27. package/dist/ui/buddy/Buddy.d.ts.map +0 -1
  28. package/dist/ui/buddy/Buddy.js +0 -118
  29. package/dist/ui/buddy/Buddy.js.map +0 -1
  30. package/dist/ui/buddy/gacha.d.ts +0 -8
  31. package/dist/ui/buddy/gacha.d.ts.map +0 -1
  32. package/dist/ui/buddy/gacha.js +0 -94
  33. package/dist/ui/buddy/gacha.js.map +0 -1
  34. package/dist/ui/buddy/species.d.ts +0 -52
  35. package/dist/ui/buddy/species.d.ts.map +0 -1
  36. package/dist/ui/buddy/species.js +0 -257
  37. package/dist/ui/buddy/species.js.map +0 -1
  38. package/dist/ui/components/ScrollableContent.d.ts +0 -22
  39. package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
  40. package/dist/ui/components/ScrollableContent.js +0 -44
  41. package/dist/ui/components/ScrollableContent.js.map +0 -1
  42. package/dist/ui/components/ShimmerLine.d.ts +0 -6
  43. package/dist/ui/components/ShimmerLine.d.ts.map +0 -1
  44. package/dist/ui/components/ShimmerLine.js +0 -46
  45. package/dist/ui/components/ShimmerLine.js.map +0 -1
  46. package/dist/ui/components/SplashScreen.d.ts +0 -7
  47. package/dist/ui/components/SplashScreen.d.ts.map +0 -1
  48. package/dist/ui/components/SplashScreen.js +0 -113
  49. package/dist/ui/components/SplashScreen.js.map +0 -1
  50. package/dist/ui/components/ThinkingIndicator.d.ts +0 -6
  51. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  52. package/dist/ui/components/ThinkingIndicator.js +0 -145
  53. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  54. package/dist/ui/hooks/useMouseScroll.d.ts.map +0 -1
  55. package/dist/ui/hooks/useMouseScroll.js.map +0 -1
  56. package/dist/ui/hooks/useScrollViewport.d.ts +0 -25
  57. package/dist/ui/hooks/useScrollViewport.d.ts.map +0 -1
  58. package/dist/ui/hooks/useScrollViewport.js +0 -32
  59. package/dist/ui/hooks/useScrollViewport.js.map +0 -1
  60. package/dist/ui/utils/item-heights.d.ts +0 -17
  61. package/dist/ui/utils/item-heights.d.ts.map +0 -1
  62. package/dist/ui/utils/item-heights.js +0 -73
  63. package/dist/ui/utils/item-heights.js.map +0 -1
  64. package/dist/ui/utils/scroll-pause.d.ts +0 -13
  65. package/dist/ui/utils/scroll-pause.d.ts.map +0 -1
  66. package/dist/ui/utils/sync-output.d.ts +0 -16
  67. package/dist/ui/utils/sync-output.d.ts.map +0 -1
  68. package/dist/ui/utils/sync-output.js +0 -70
  69. package/dist/ui/utils/sync-output.js.map +0 -1
  70. package/dist/utils/markdown.d.ts +0 -6
  71. package/dist/utils/markdown.d.ts.map +0 -1
  72. package/dist/utils/markdown.js +0 -25
  73. package/dist/utils/markdown.js.map +0 -1
@@ -1,293 +0,0 @@
1
- import http from "node:http";
2
- import net from "node:net";
3
- import crypto from "node:crypto";
4
- // Public "installed app" client — per RFC 8252 / Google OAuth docs, the
5
- // embedded secret is not confidential. This is the same client the official
6
- // Gemini CLI ships with.
7
- const CLIENT_ID = "681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com";
8
- const CLIENT_SECRET = "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";
9
- const AUTHORIZE_URL = "https://accounts.google.com/o/oauth2/v2/auth";
10
- const TOKEN_URL = "https://oauth2.googleapis.com/token";
11
- const SCOPES = [
12
- "https://www.googleapis.com/auth/cloud-platform",
13
- "https://www.googleapis.com/auth/userinfo.email",
14
- "https://www.googleapis.com/auth/userinfo.profile",
15
- ].join(" ");
16
- const CODE_ASSIST_ENDPOINT = "https://cloudcode-pa.googleapis.com";
17
- const CODE_ASSIST_API_VERSION = "v1internal";
18
- const CLIENT_METADATA = {
19
- ideType: "IDE_UNSPECIFIED",
20
- platform: "PLATFORM_UNSPECIFIED",
21
- pluginType: "GEMINI",
22
- };
23
- // ── Login ──────────────────────────────────────────────────
24
- export async function loginGemini(callbacks) {
25
- const port = await getAvailablePort();
26
- const redirectUri = `http://127.0.0.1:${port}/oauth2callback`;
27
- const state = crypto.randomBytes(32).toString("hex");
28
- const url = new URL(AUTHORIZE_URL);
29
- url.searchParams.set("client_id", CLIENT_ID);
30
- url.searchParams.set("redirect_uri", redirectUri);
31
- url.searchParams.set("response_type", "code");
32
- url.searchParams.set("scope", SCOPES);
33
- url.searchParams.set("access_type", "offline");
34
- url.searchParams.set("prompt", "consent");
35
- url.searchParams.set("state", state);
36
- const code = await loginWithServer(url.toString(), state, redirectUri, port, callbacks);
37
- const creds = await exchangeGeminiCode(code, redirectUri);
38
- callbacks.onStatus("Completing Gemini onboarding...");
39
- const projectId = await setupUser(creds.accessToken);
40
- creds.projectId = projectId;
41
- return creds;
42
- }
43
- async function loginWithServer(authUrl, expectedState, redirectUri, port, callbacks) {
44
- return new Promise((resolve, reject) => {
45
- let receivedCode = null;
46
- let receivedError = null;
47
- let timeoutHandle = null;
48
- const server = http.createServer((req, res) => {
49
- const reqUrl = new URL(req.url || "", `http://127.0.0.1:${port}`);
50
- if (reqUrl.pathname !== "/oauth2callback") {
51
- res.statusCode = 404;
52
- res.end("Not found");
53
- return;
54
- }
55
- const err = reqUrl.searchParams.get("error");
56
- if (err) {
57
- receivedError = `${err}: ${reqUrl.searchParams.get("error_description") ?? "no description"}`;
58
- res.writeHead(302, {
59
- Location: "https://developers.google.com/gemini-code-assist/auth_failure_gemini",
60
- });
61
- res.end();
62
- server.closeAllConnections?.();
63
- server.close();
64
- return;
65
- }
66
- if (reqUrl.searchParams.get("state") !== expectedState) {
67
- receivedError = "OAuth state mismatch — possible CSRF. Please try again.";
68
- res.statusCode = 400;
69
- res.end(receivedError);
70
- server.closeAllConnections?.();
71
- server.close();
72
- return;
73
- }
74
- const code = reqUrl.searchParams.get("code");
75
- if (!code) {
76
- receivedError = "No authorization code received from Google.";
77
- res.statusCode = 400;
78
- res.end(receivedError);
79
- server.closeAllConnections?.();
80
- server.close();
81
- return;
82
- }
83
- receivedCode = code;
84
- res.writeHead(302, {
85
- Location: "https://developers.google.com/gemini-code-assist/auth_success_gemini",
86
- });
87
- res.end();
88
- server.closeAllConnections?.();
89
- server.close();
90
- });
91
- server.on("error", (err) => {
92
- reject(err);
93
- });
94
- server.listen(port, "127.0.0.1", () => {
95
- callbacks.onOpenUrl(authUrl);
96
- callbacks.onStatus("Waiting for browser callback...");
97
- });
98
- server.on("close", () => {
99
- if (timeoutHandle) {
100
- clearTimeout(timeoutHandle);
101
- timeoutHandle = null;
102
- }
103
- if (receivedCode) {
104
- resolve(receivedCode);
105
- }
106
- else {
107
- reject(new Error(receivedError ?? "Server closed without receiving code"));
108
- }
109
- });
110
- timeoutHandle = setTimeout(() => {
111
- if (!receivedCode && !receivedError) {
112
- receivedError = "OAuth callback timed out after 2 minutes.";
113
- server.closeAllConnections?.();
114
- server.close();
115
- }
116
- }, 2 * 60 * 1000);
117
- // Don't keep the Node event loop alive on the timer alone — once the
118
- // callback arrives and the server closes, the process should exit.
119
- timeoutHandle.unref();
120
- void redirectUri; // referenced above for URL construction
121
- });
122
- }
123
- async function exchangeGeminiCode(code, redirectUri) {
124
- const response = await fetch(TOKEN_URL, {
125
- method: "POST",
126
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
127
- body: new URLSearchParams({
128
- grant_type: "authorization_code",
129
- client_id: CLIENT_ID,
130
- client_secret: CLIENT_SECRET,
131
- code,
132
- redirect_uri: redirectUri,
133
- }),
134
- });
135
- if (!response.ok) {
136
- const text = await response.text();
137
- throw new Error(`Gemini token exchange failed (${response.status}): ${text}`);
138
- }
139
- const data = (await response.json());
140
- return {
141
- accessToken: data.access_token,
142
- refreshToken: data.refresh_token,
143
- expiresAt: Date.now() + data.expires_in * 1000 - 60_000,
144
- };
145
- }
146
- export async function refreshGeminiToken(refreshToken) {
147
- const response = await fetch(TOKEN_URL, {
148
- method: "POST",
149
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
150
- body: new URLSearchParams({
151
- grant_type: "refresh_token",
152
- client_id: CLIENT_ID,
153
- client_secret: CLIENT_SECRET,
154
- refresh_token: refreshToken,
155
- }),
156
- });
157
- if (!response.ok) {
158
- const text = await response.text();
159
- throw new Error(`Gemini token refresh failed (${response.status}): ${text}`);
160
- }
161
- const data = (await response.json());
162
- return {
163
- accessToken: data.access_token,
164
- // Google may omit refresh_token on refresh; keep the existing one.
165
- refreshToken: data.refresh_token ?? refreshToken,
166
- expiresAt: Date.now() + data.expires_in * 1000 - 60_000,
167
- };
168
- }
169
- /**
170
- * Mirrors the Gemini CLI's `setupUser` flow: loadCodeAssist → onboardUser
171
- * (poll LRO) → return the managed project ID.
172
- */
173
- async function setupUser(accessToken) {
174
- const envProject = process.env.GOOGLE_CLOUD_PROJECT || process.env.GOOGLE_CLOUD_PROJECT_ID;
175
- const loadRes = await codeAssistPost(accessToken, "loadCodeAssist", {
176
- cloudaicompanionProject: envProject,
177
- metadata: {
178
- ...CLIENT_METADATA,
179
- duetProject: envProject,
180
- },
181
- });
182
- // Already onboarded — reuse the managed project.
183
- if (loadRes.currentTier) {
184
- if (loadRes.cloudaicompanionProject)
185
- return loadRes.cloudaicompanionProject;
186
- if (envProject)
187
- return envProject;
188
- throwIneligibleOrMissing(loadRes);
189
- }
190
- const tier = loadRes.allowedTiers?.find((t) => t.isDefault) ?? (envProject ? undefined : undefined);
191
- const tierId = tier?.id ?? "free-tier";
192
- const onboardReq = tierId === "free-tier"
193
- ? {
194
- tierId,
195
- metadata: CLIENT_METADATA,
196
- }
197
- : {
198
- tierId,
199
- cloudaicompanionProject: envProject,
200
- metadata: { ...CLIENT_METADATA, duetProject: envProject },
201
- };
202
- let lro = await codeAssistPost(accessToken, "onboardUser", onboardReq);
203
- if (lro.error) {
204
- throw new Error(`Gemini onboarding failed: ${lro.error.message ?? "unknown error"}`);
205
- }
206
- const start = Date.now();
207
- const MAX_WAIT_MS = 2 * 60 * 1000;
208
- while (!lro.done && lro.name) {
209
- if (Date.now() - start > MAX_WAIT_MS) {
210
- throw new Error("Gemini onboarding timed out (exceeded 2 minutes).");
211
- }
212
- await new Promise((r) => setTimeout(r, 5000));
213
- lro = await codeAssistGetOperation(accessToken, lro.name);
214
- if (lro.error) {
215
- throw new Error(`Gemini onboarding failed: ${lro.error.message ?? "unknown error"}`);
216
- }
217
- }
218
- const projectId = lro.response?.cloudaicompanionProject?.id ?? envProject;
219
- if (!projectId) {
220
- throwIneligibleOrMissing(loadRes);
221
- }
222
- return projectId;
223
- }
224
- function throwIneligibleOrMissing(loadRes) {
225
- if (loadRes.ineligibleTiers && loadRes.ineligibleTiers.length > 0) {
226
- const reasons = loadRes.ineligibleTiers
227
- .map((t) => t.reasonMessage ?? t.reasonCode ?? "unknown")
228
- .join("; ");
229
- throw new Error(`Gemini account is not eligible: ${reasons}`);
230
- }
231
- throw new Error("Gemini onboarding did not return a project ID. Set GOOGLE_CLOUD_PROJECT to a project you own and retry.");
232
- }
233
- // For onboarding calls, match the UA that official Google SDKs use — puts the
234
- // request into the same bucket as cloud-sdk traffic rather than a non-official
235
- // client bucket with tighter per-user rate limits.
236
- const CODE_ASSIST_ONBOARD_UA = "google-api-nodejs-client/9.15.1";
237
- const CODE_ASSIST_API_CLIENT_HEADER = `gl-node/${process.version.replace(/^v/, "")}`;
238
- async function codeAssistPost(accessToken, method, body) {
239
- const url = `${CODE_ASSIST_ENDPOINT}/${CODE_ASSIST_API_VERSION}:${method}`;
240
- const res = await fetch(url, {
241
- method: "POST",
242
- headers: {
243
- "Content-Type": "application/json",
244
- Authorization: `Bearer ${accessToken}`,
245
- "User-Agent": CODE_ASSIST_ONBOARD_UA,
246
- "X-Goog-Api-Client": CODE_ASSIST_API_CLIENT_HEADER,
247
- },
248
- body: JSON.stringify(body),
249
- });
250
- if (!res.ok) {
251
- const text = await res.text().catch(() => "");
252
- throw new Error(`Code Assist ${method} failed (${res.status}): ${text}`);
253
- }
254
- return (await res.json());
255
- }
256
- async function codeAssistGetOperation(accessToken, name) {
257
- const url = `${CODE_ASSIST_ENDPOINT}/${CODE_ASSIST_API_VERSION}/${name}`;
258
- const res = await fetch(url, {
259
- method: "GET",
260
- headers: {
261
- "Content-Type": "application/json",
262
- Authorization: `Bearer ${accessToken}`,
263
- "User-Agent": CODE_ASSIST_ONBOARD_UA,
264
- "X-Goog-Api-Client": CODE_ASSIST_API_CLIENT_HEADER,
265
- },
266
- });
267
- if (!res.ok) {
268
- const text = await res.text().catch(() => "");
269
- throw new Error(`Code Assist getOperation failed (${res.status}): ${text}`);
270
- }
271
- return (await res.json());
272
- }
273
- // ── Helpers ────────────────────────────────────────────────
274
- function getAvailablePort() {
275
- return new Promise((resolve, reject) => {
276
- const envPort = process.env.OAUTH_CALLBACK_PORT;
277
- if (envPort) {
278
- const port = parseInt(envPort, 10);
279
- if (isNaN(port) || port <= 0 || port > 65535) {
280
- return reject(new Error(`Invalid OAUTH_CALLBACK_PORT: "${envPort}"`));
281
- }
282
- return resolve(port);
283
- }
284
- const server = net.createServer();
285
- server.on("error", (err) => reject(err));
286
- server.listen(0, "127.0.0.1", () => {
287
- const address = server.address();
288
- const port = address && typeof address === "object" && "port" in address ? address.port : 0;
289
- server.close(() => resolve(port));
290
- });
291
- });
292
- }
293
- //# sourceMappingURL=gemini.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/core/oauth/gemini.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- export declare class TaskSocketServer {
2
- private server;
3
- private readonly cwd;
4
- private readonly hash;
5
- constructor(cwd: string);
6
- static hashPath(cwd: string): string;
7
- getSocketPath(): string;
8
- private getMetaPath;
9
- start(onPrompt: (text: string) => void): Promise<void>;
10
- stop(): void;
11
- private handleLine;
12
- /** Remove stale sockets whose PID is no longer running. */
13
- private cleanupStale;
14
- }
15
- //# sourceMappingURL=socket-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"socket-server.d.ts","sourceRoot":"","sources":["../../src/core/socket-server.ts"],"names":[],"mappings":"AAmBA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,GAAG,EAAE,MAAM;IAKvB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIpC,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,WAAW;IAIb,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C5D,IAAI,IAAI,IAAI;IAiBZ,OAAO,CAAC,UAAU;IAmBlB,2DAA2D;IAC3D,OAAO,CAAC,YAAY;CAuCrB"}
@@ -1,140 +0,0 @@
1
- import net from "node:net";
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import os from "node:os";
5
- import crypto from "node:crypto";
6
- const SESSIONS_DIR = path.join(os.homedir(), ".gg-tasks", "sessions");
7
- export class TaskSocketServer {
8
- server = null;
9
- cwd;
10
- hash;
11
- constructor(cwd) {
12
- this.cwd = cwd;
13
- this.hash = TaskSocketServer.hashPath(cwd);
14
- }
15
- static hashPath(cwd) {
16
- return crypto.createHash("sha256").update(cwd).digest("hex").slice(0, 16);
17
- }
18
- getSocketPath() {
19
- return path.join(SESSIONS_DIR, `${this.hash}.sock`);
20
- }
21
- getMetaPath() {
22
- return path.join(SESSIONS_DIR, `${this.hash}.json`);
23
- }
24
- async start(onPrompt) {
25
- fs.mkdirSync(SESSIONS_DIR, { recursive: true });
26
- this.cleanupStale();
27
- const sockPath = this.getSocketPath();
28
- // Remove leftover socket file from a previous run
29
- try {
30
- fs.unlinkSync(sockPath);
31
- }
32
- catch {
33
- // ignore
34
- }
35
- // Write metadata
36
- fs.writeFileSync(this.getMetaPath(), JSON.stringify({ cwd: this.cwd, pid: process.pid, startedAt: new Date().toISOString() }));
37
- this.server = net.createServer((conn) => {
38
- let buffer = "";
39
- conn.on("data", (chunk) => {
40
- buffer += chunk.toString();
41
- let newlineIdx;
42
- while ((newlineIdx = buffer.indexOf("\n")) !== -1) {
43
- const line = buffer.slice(0, newlineIdx);
44
- buffer = buffer.slice(newlineIdx + 1);
45
- this.handleLine(line, conn, onPrompt);
46
- }
47
- });
48
- });
49
- await new Promise((resolve, reject) => {
50
- this.server.listen(sockPath, () => resolve());
51
- this.server.on("error", reject);
52
- });
53
- // Clean up on process exit
54
- const cleanup = () => this.stop();
55
- process.on("exit", cleanup);
56
- process.on("SIGINT", cleanup);
57
- process.on("SIGTERM", cleanup);
58
- }
59
- stop() {
60
- if (this.server) {
61
- this.server.close();
62
- this.server = null;
63
- }
64
- try {
65
- fs.unlinkSync(this.getSocketPath());
66
- }
67
- catch {
68
- // ignore
69
- }
70
- try {
71
- fs.unlinkSync(this.getMetaPath());
72
- }
73
- catch {
74
- // ignore
75
- }
76
- }
77
- handleLine(line, conn, onPrompt) {
78
- let msg;
79
- try {
80
- msg = JSON.parse(line);
81
- }
82
- catch {
83
- conn.write(JSON.stringify({ type: "error", message: "invalid JSON" }) + "\n");
84
- return;
85
- }
86
- if (msg.type === "ping") {
87
- conn.write(JSON.stringify({ type: "pong", cwd: this.cwd }) + "\n");
88
- }
89
- else if (msg.type === "prompt" && typeof msg.text === "string") {
90
- onPrompt(msg.text);
91
- conn.write(JSON.stringify({ type: "ack" }) + "\n");
92
- }
93
- else {
94
- conn.write(JSON.stringify({ type: "error", message: "unknown message type" }) + "\n");
95
- }
96
- }
97
- /** Remove stale sockets whose PID is no longer running. */
98
- cleanupStale() {
99
- let entries;
100
- try {
101
- entries = fs.readdirSync(SESSIONS_DIR, { withFileTypes: true });
102
- }
103
- catch {
104
- return;
105
- }
106
- for (const entry of entries) {
107
- if (!entry.name.endsWith(".json"))
108
- continue;
109
- const metaPath = path.join(SESSIONS_DIR, entry.name);
110
- try {
111
- const meta = JSON.parse(fs.readFileSync(metaPath, "utf-8"));
112
- // Check if process is still running
113
- try {
114
- process.kill(meta.pid, 0);
115
- }
116
- catch {
117
- // PID not running — remove stale socket + meta
118
- const baseName = entry.name.replace(/\.json$/, "");
119
- try {
120
- fs.unlinkSync(path.join(SESSIONS_DIR, `${baseName}.sock`));
121
- }
122
- catch {
123
- // ignore
124
- }
125
- fs.unlinkSync(metaPath);
126
- }
127
- }
128
- catch {
129
- // Corrupt meta file — remove it
130
- try {
131
- fs.unlinkSync(metaPath);
132
- }
133
- catch {
134
- // ignore
135
- }
136
- }
137
- }
138
- }
139
- }
140
- //# sourceMappingURL=socket-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"socket-server.js","sourceRoot":"","sources":["../../src/core/socket-server.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAatE,MAAM,OAAO,gBAAgB;IACnB,MAAM,GAAsB,IAAI,CAAC;IACxB,GAAG,CAAS;IACZ,IAAI,CAAS;IAE9B,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC;IACtD,CAAC;IAEO,WAAW;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgC;QAC1C,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEtC,kDAAkD;QAClD,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,iBAAiB;QACjB,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CACzF,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC3B,IAAI,UAAkB,CAAC;gBACvB,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAClD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;oBACzC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;oBACtC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,IAAY,EAAE,IAAgB,EAAE,QAAgC;QACjF,IAAI,GAAoB,CAAC;QACzB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAoB,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,2DAA2D;IACnD,YAAY;QAClB,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,SAAS;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAGzD,CAAC;gBACF,oCAAoC;gBACpC,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,+CAA+C;oBAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAC;wBACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC,CAAC;oBAC7D,CAAC;oBAAC,MAAM,CAAC;wBACP,SAAS;oBACX,CAAC;oBACD,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gCAAgC;gBAChC,IAAI,CAAC;oBACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,22 +0,0 @@
1
- import type { Provider, ThinkingLevel } from "@kenkaiiii/gg-ai";
2
- export interface BridgeModeOptions {
3
- provider: Provider;
4
- model: string;
5
- cwd: string;
6
- version: string;
7
- thinkingLevel?: ThinkingLevel;
8
- agentName?: string;
9
- bridge: {
10
- relayUrl: string;
11
- token: string;
12
- };
13
- }
14
- /**
15
- * Bridge mode: run ggcoder as an Agent Home agent.
16
- *
17
- * Connects to the relay server via WebSocket and registers the current
18
- * project directory as an agent. Messages from the iOS app are forwarded
19
- * here, processed by AgentSession, and streamed back.
20
- */
21
- export declare function runBridgeMode(options: BridgeModeOptions): Promise<void>;
22
- //# sourceMappingURL=bridge-mode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bridge-mode.d.ts","sourceRoot":"","sources":["../../src/modes/bridge-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAShE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqS7E"}