@kenkaiiii/ggcoder 4.2.72 → 4.2.74

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 (121) hide show
  1. package/dist/cli.js +174 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/config.d.ts +1 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +1 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/core/settings-manager.d.ts +1 -0
  8. package/dist/core/settings-manager.d.ts.map +1 -1
  9. package/dist/core/settings-manager.js +2 -0
  10. package/dist/core/settings-manager.js.map +1 -1
  11. package/dist/core/slash-commands.d.ts.map +1 -1
  12. package/dist/core/slash-commands.js +14 -0
  13. package/dist/core/slash-commands.js.map +1 -1
  14. package/dist/modes/agent-home-mode.d.ts +21 -0
  15. package/dist/modes/agent-home-mode.d.ts.map +1 -0
  16. package/dist/modes/agent-home-mode.js +553 -0
  17. package/dist/modes/agent-home-mode.js.map +1 -0
  18. package/dist/ui/App.d.ts.map +1 -1
  19. package/dist/ui/App.js +25 -3
  20. package/dist/ui/App.js.map +1 -1
  21. package/dist/ui/buddy/Buddy.d.ts +15 -0
  22. package/dist/ui/buddy/Buddy.d.ts.map +1 -0
  23. package/dist/ui/buddy/Buddy.js +118 -0
  24. package/dist/ui/buddy/Buddy.js.map +1 -0
  25. package/dist/ui/buddy/gacha.d.ts +8 -0
  26. package/dist/ui/buddy/gacha.d.ts.map +1 -0
  27. package/dist/ui/buddy/gacha.js +94 -0
  28. package/dist/ui/buddy/gacha.js.map +1 -0
  29. package/dist/ui/buddy/species.d.ts +52 -0
  30. package/dist/ui/buddy/species.d.ts.map +1 -0
  31. package/dist/ui/buddy/species.js +257 -0
  32. package/dist/ui/buddy/species.js.map +1 -0
  33. package/dist/ui/components/ActivityIndicator.d.ts +6 -1
  34. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
  35. package/dist/ui/components/ActivityIndicator.js +52 -8
  36. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  37. package/dist/ui/components/AnimationContext.d.ts +5 -0
  38. package/dist/ui/components/AnimationContext.d.ts.map +1 -1
  39. package/dist/ui/components/AnimationContext.js +8 -1
  40. package/dist/ui/components/AnimationContext.js.map +1 -1
  41. package/dist/ui/components/AssistantMessage.d.ts.map +1 -1
  42. package/dist/ui/components/AssistantMessage.js +3 -2
  43. package/dist/ui/components/AssistantMessage.js.map +1 -1
  44. package/dist/ui/components/BackgroundTasksBar.js +2 -2
  45. package/dist/ui/components/BackgroundTasksBar.js.map +1 -1
  46. package/dist/ui/components/Footer.d.ts +3 -1
  47. package/dist/ui/components/Footer.d.ts.map +1 -1
  48. package/dist/ui/components/Footer.js +23 -48
  49. package/dist/ui/components/Footer.js.map +1 -1
  50. package/dist/ui/components/Markdown.d.ts +4 -0
  51. package/dist/ui/components/Markdown.d.ts.map +1 -1
  52. package/dist/ui/components/Markdown.js +109 -6
  53. package/dist/ui/components/Markdown.js.map +1 -1
  54. package/dist/ui/components/MessageResponse.d.ts +25 -0
  55. package/dist/ui/components/MessageResponse.d.ts.map +1 -0
  56. package/dist/ui/components/MessageResponse.js +42 -0
  57. package/dist/ui/components/MessageResponse.js.map +1 -0
  58. package/dist/ui/components/NoSelect.d.ts +20 -0
  59. package/dist/ui/components/NoSelect.d.ts.map +1 -0
  60. package/dist/ui/components/NoSelect.js +14 -0
  61. package/dist/ui/components/NoSelect.js.map +1 -0
  62. package/dist/ui/components/Ratchet.d.ts +20 -0
  63. package/dist/ui/components/Ratchet.d.ts.map +1 -0
  64. package/dist/ui/components/Ratchet.js +30 -0
  65. package/dist/ui/components/Ratchet.js.map +1 -0
  66. package/dist/ui/components/ServerToolExecution.d.ts.map +1 -1
  67. package/dist/ui/components/ServerToolExecution.js +5 -6
  68. package/dist/ui/components/ServerToolExecution.js.map +1 -1
  69. package/dist/ui/components/Spinner.d.ts +8 -2
  70. package/dist/ui/components/Spinner.d.ts.map +1 -1
  71. package/dist/ui/components/Spinner.js +51 -5
  72. package/dist/ui/components/Spinner.js.map +1 -1
  73. package/dist/ui/components/StreamingArea.d.ts.map +1 -1
  74. package/dist/ui/components/StreamingArea.js +4 -3
  75. package/dist/ui/components/StreamingArea.js.map +1 -1
  76. package/dist/ui/components/SubAgentPanel.d.ts.map +1 -1
  77. package/dist/ui/components/SubAgentPanel.js +4 -3
  78. package/dist/ui/components/SubAgentPanel.js.map +1 -1
  79. package/dist/ui/components/ToolExecution.d.ts.map +1 -1
  80. package/dist/ui/components/ToolExecution.js +38 -12
  81. package/dist/ui/components/ToolExecution.js.map +1 -1
  82. package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -1
  83. package/dist/ui/components/ToolGroupExecution.js +21 -17
  84. package/dist/ui/components/ToolGroupExecution.js.map +1 -1
  85. package/dist/ui/components/ToolUseLoader.d.ts +19 -0
  86. package/dist/ui/components/ToolUseLoader.d.ts.map +1 -0
  87. package/dist/ui/components/ToolUseLoader.js +42 -0
  88. package/dist/ui/components/ToolUseLoader.js.map +1 -0
  89. package/dist/ui/constants/figures.d.ts +30 -0
  90. package/dist/ui/constants/figures.d.ts.map +1 -0
  91. package/dist/ui/constants/figures.js +41 -0
  92. package/dist/ui/constants/figures.js.map +1 -0
  93. package/dist/ui/hooks/useAgentLoop.d.ts +8 -0
  94. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
  95. package/dist/ui/hooks/useAgentLoop.js +16 -0
  96. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  97. package/dist/ui/hooks/useBlink.d.ts +11 -0
  98. package/dist/ui/hooks/useBlink.d.ts.map +1 -0
  99. package/dist/ui/hooks/useBlink.js +19 -0
  100. package/dist/ui/hooks/useBlink.js.map +1 -0
  101. package/dist/ui/hooks/useMinDisplayTime.d.ts +11 -0
  102. package/dist/ui/hooks/useMinDisplayTime.d.ts.map +1 -0
  103. package/dist/ui/hooks/useMinDisplayTime.js +34 -0
  104. package/dist/ui/hooks/useMinDisplayTime.js.map +1 -0
  105. package/dist/ui/spinner-frames.d.ts +1 -0
  106. package/dist/ui/spinner-frames.d.ts.map +1 -1
  107. package/dist/ui/spinner-frames.js +15 -5
  108. package/dist/ui/spinner-frames.js.map +1 -1
  109. package/dist/ui/theme/dark.json +2 -1
  110. package/dist/ui/theme/light.json +2 -1
  111. package/dist/ui/theme/theme.d.ts +1 -0
  112. package/dist/ui/theme/theme.d.ts.map +1 -1
  113. package/dist/ui/utils/markdown-cache.d.ts +12 -0
  114. package/dist/ui/utils/markdown-cache.d.ts.map +1 -0
  115. package/dist/ui/utils/markdown-cache.js +43 -0
  116. package/dist/ui/utils/markdown-cache.js.map +1 -0
  117. package/dist/ui/utils/word-diff.d.ts +11 -0
  118. package/dist/ui/utils/word-diff.d.ts.map +1 -0
  119. package/dist/ui/utils/word-diff.js +23 -0
  120. package/dist/ui/utils/word-diff.js.map +1 -0
  121. package/package.json +4 -3
@@ -0,0 +1,553 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { AgentHomeClient } from "@kenkaiiii/agent-home-sdk";
4
+ import { AgentSession } from "../core/agent-session.js";
5
+ import { isAbortError } from "@kenkaiiii/gg-agent";
6
+ import chalk from "chalk";
7
+ import { formatUserError } from "../utils/error-handler.js";
8
+ import { log, closeLogger } from "../core/logger.js";
9
+ import { getAppPaths } from "../config.js";
10
+ import { MODELS, getContextWindow } from "../core/model-registry.js";
11
+ import { estimateConversationTokens } from "../core/compaction/token-estimator.js";
12
+ import { PROMPT_COMMANDS } from "../core/prompt-commands.js";
13
+ import { loadCustomCommands } from "../core/custom-commands.js";
14
+ export const AGENT_HOME_RELAY_URL = "wss://agent-home-relay.buzzbeamaustralia.workers.dev/ws";
15
+ // ── Project Discovery ──────────────────────────────────────
16
+ async function discoverProjects() {
17
+ const sessionsDir = getAppPaths().sessionsDir;
18
+ try {
19
+ const entries = await fs.readdir(sessionsDir);
20
+ const projects = [];
21
+ for (const entry of entries) {
22
+ const decoded = "/" + entry.replace(/_/g, "/");
23
+ const dir = path.join(sessionsDir, entry);
24
+ const stat = await fs.stat(dir);
25
+ if (stat.isDirectory()) {
26
+ const files = await fs.readdir(dir);
27
+ if (files.some((f) => f.endsWith(".jsonl"))) {
28
+ projects.push(decoded);
29
+ }
30
+ }
31
+ }
32
+ return projects.sort();
33
+ }
34
+ catch {
35
+ return [];
36
+ }
37
+ }
38
+ // ── Commands handled before the agent loop ────────────────
39
+ const HANDLED_COMMANDS = new Set([
40
+ "help",
41
+ "status",
42
+ "cancel",
43
+ "link",
44
+ "unlink",
45
+ "start",
46
+ "new",
47
+ "n",
48
+ "m",
49
+ "model",
50
+ ]);
51
+ /**
52
+ * Agent Home mode: run ggcoder as an Agent Home agent.
53
+ *
54
+ * Connects to the Agent Home relay via WebSocket and bridges
55
+ * messages between the iOS app and the ggcoder agent loop.
56
+ * Each Agent Home session maps to its own AgentSession.
57
+ */
58
+ export async function runAgentHomeMode(options) {
59
+ const sessionStates = new Map();
60
+ const sessionCreationLocks = new Map();
61
+ const defaultCwd = options.cwd;
62
+ const sessionProjects = new Map();
63
+ const pendingLinkSelections = new Map();
64
+ const pendingModelSelections = new Map();
65
+ const client = new AgentHomeClient({
66
+ relayUrl: AGENT_HOME_RELAY_URL,
67
+ token: options.agentHome.token,
68
+ agent: {
69
+ id: "ggcoder",
70
+ name: "GG Coder",
71
+ description: `AI coding agent — ${options.model}`,
72
+ },
73
+ });
74
+ // ── Helpers ────────────────────────────────────────────
75
+ /** Send a response, tagging with sessionId for new sessions. */
76
+ function reply(stream, text, isNewSession, targetSessionId) {
77
+ if (isNewSession) {
78
+ stream.end(text, { sessionId: targetSessionId });
79
+ }
80
+ else {
81
+ stream.end(text);
82
+ }
83
+ }
84
+ // ── Session lifecycle ──────────────────────────────────
85
+ function resolveProjectPath(sessionId) {
86
+ if (sessionId && sessionProjects.has(sessionId)) {
87
+ return sessionProjects.get(sessionId);
88
+ }
89
+ return defaultCwd;
90
+ }
91
+ async function createSession(sessionId, cwd) {
92
+ const ac = new AbortController();
93
+ const session = new AgentSession({
94
+ provider: options.provider,
95
+ model: options.model,
96
+ cwd,
97
+ thinkingLevel: options.thinkingLevel,
98
+ signal: ac.signal,
99
+ });
100
+ await session.initialize();
101
+ log("INFO", "agent-home", `Session initialized: ${sessionId}`, { cwd });
102
+ const state = {
103
+ sessionId,
104
+ cwd,
105
+ session,
106
+ ac,
107
+ textBuffer: "",
108
+ activeTools: new Map(),
109
+ isProcessing: false,
110
+ };
111
+ sessionStates.set(sessionId, state);
112
+ return state;
113
+ }
114
+ async function getOrCreateSession(sessionId) {
115
+ const existing = sessionStates.get(sessionId);
116
+ if (existing)
117
+ return existing;
118
+ const pending = sessionCreationLocks.get(sessionId);
119
+ if (pending)
120
+ return pending;
121
+ const cwd = resolveProjectPath(sessionId);
122
+ const promise = createSession(sessionId, cwd);
123
+ sessionCreationLocks.set(sessionId, promise);
124
+ try {
125
+ return await promise;
126
+ }
127
+ finally {
128
+ sessionCreationLocks.delete(sessionId);
129
+ }
130
+ }
131
+ async function switchProject(sessionId, projectPath) {
132
+ const existing = sessionStates.get(sessionId);
133
+ if (existing) {
134
+ await existing.session.dispose();
135
+ sessionStates.delete(sessionId);
136
+ }
137
+ sessionProjects.set(sessionId, projectPath);
138
+ await createSession(sessionId, projectPath);
139
+ }
140
+ function pushSessions() {
141
+ const list = Array.from(sessionStates.values()).map((s) => ({
142
+ id: s.sessionId,
143
+ title: `${path.basename(s.cwd)} — ${s.session.getState().model}`,
144
+ updatedAt: Date.now(),
145
+ }));
146
+ client.updateSessions(list);
147
+ }
148
+ // ── Help text builder ──────────────────────────────────
149
+ async function buildHelpText(sessionId) {
150
+ const state = sessionStates.get(sessionId);
151
+ const currentCwd = state?.cwd ?? resolveProjectPath(sessionId);
152
+ const currentModel = state?.session.getState().model ?? options.model;
153
+ const modelInfo = MODELS.find((m) => m.id === currentModel);
154
+ let text = "";
155
+ text += `**GG Coder**\n`;
156
+ text += `Project: **${path.basename(currentCwd)}** \u00b7 Model: **${modelInfo?.name ?? currentModel}**\n\n`;
157
+ text += `**Commands**\n`;
158
+ text += `\`/m\` \u2014 Switch model\n`;
159
+ text += `\`/link\` \u2014 Switch project\n`;
160
+ text += `\`/unlink\` \u2014 Reset to default project\n`;
161
+ text += `\`/status\` \u2014 Current state\n`;
162
+ text += `\`/cancel\` \u2014 Abort current task\n`;
163
+ text += `\`/help\` \u2014 This message\n\n`;
164
+ text += `**Session**\n`;
165
+ text += `\`/compact\` \u2014 Compress context\n`;
166
+ text += `\`/new\` \u2014 Fresh session\n`;
167
+ text += `\`/session\` \u2014 List sessions\n`;
168
+ text += `\`/branch\` \u2014 Fork conversation\n`;
169
+ text += `\`/branches\` \u2014 List branches\n`;
170
+ text += `\`/clear\` \u2014 Clear session\n`;
171
+ text += `\`/settings\` \u2014 Show/modify settings\n`;
172
+ if (PROMPT_COMMANDS.length > 0) {
173
+ text += `\n**Agent**\n`;
174
+ for (const cmd of PROMPT_COMMANDS) {
175
+ text += `\`/${cmd.name}\` \u2014 ${cmd.description}\n`;
176
+ }
177
+ }
178
+ const customCmds = await loadCustomCommands(currentCwd);
179
+ if (customCmds.length > 0) {
180
+ text += `\n**Custom**\n`;
181
+ for (const cmd of customCmds) {
182
+ text += `\`/${cmd.name}\` \u2014 ${cmd.description}\n`;
183
+ }
184
+ }
185
+ text += `\n_Send any message to start coding._`;
186
+ return text;
187
+ }
188
+ // ── Message handler ────────────────────────────────────
189
+ client.onMessage(async (message, stream) => {
190
+ const { content, sessionId } = message;
191
+ const trimmed = content.trim();
192
+ let targetSessionId;
193
+ let isNewSession = false;
194
+ if (sessionId) {
195
+ targetSessionId = sessionId;
196
+ }
197
+ else {
198
+ targetSessionId = `session-${Date.now()}`;
199
+ isNewSession = true;
200
+ }
201
+ // ── Pending link selection ────────────────────────────
202
+ const pendingProjects = pendingLinkSelections.get(targetSessionId);
203
+ if (pendingProjects) {
204
+ pendingLinkSelections.delete(targetSessionId);
205
+ const num = parseInt(trimmed, 10);
206
+ if (isNaN(num) || num < 1 || num > pendingProjects.length) {
207
+ reply(stream, "Invalid selection. Send `/link` to try again.", isNewSession, targetSessionId);
208
+ return;
209
+ }
210
+ const selected = pendingProjects[num - 1];
211
+ await switchProject(targetSessionId, selected);
212
+ pushSessions();
213
+ reply(stream, `\u2713 Switched to **${path.basename(selected)}**`, isNewSession, targetSessionId);
214
+ log("INFO", "agent-home", `Linked session ${targetSessionId} to ${selected}`);
215
+ return;
216
+ }
217
+ // ── Pending model selection ───────────────────────────
218
+ const pendingModels = pendingModelSelections.get(targetSessionId);
219
+ if (pendingModels) {
220
+ pendingModelSelections.delete(targetSessionId);
221
+ const num = parseInt(trimmed, 10);
222
+ if (isNaN(num) || num < 1 || num > pendingModels.length) {
223
+ reply(stream, "Invalid selection. Send `/m` to try again.", isNewSession, targetSessionId);
224
+ return;
225
+ }
226
+ const selected = pendingModels[num - 1];
227
+ const state = await getOrCreateSession(targetSessionId);
228
+ await state.session.switchModel(selected.provider, selected.id);
229
+ pushSessions();
230
+ reply(stream, `\u2713 Switched to **${selected.name}**`, isNewSession, targetSessionId);
231
+ return;
232
+ }
233
+ // ── Command handling ──────────────────────────────────
234
+ if (trimmed.startsWith("/")) {
235
+ const parts = trimmed.split(/\s+/);
236
+ const cmd = parts[0].slice(1).toLowerCase();
237
+ const args = parts.slice(1).join(" ");
238
+ // ── /help ──
239
+ if (cmd === "help" || cmd === "start") {
240
+ const text = await buildHelpText(targetSessionId);
241
+ reply(stream, text, isNewSession, targetSessionId);
242
+ return;
243
+ }
244
+ // ── /status ──
245
+ if (cmd === "status") {
246
+ const state = sessionStates.get(targetSessionId);
247
+ const currentCwd = state?.cwd ?? resolveProjectPath(targetSessionId);
248
+ const projectName = path.basename(currentCwd);
249
+ if (!state) {
250
+ reply(stream, `**${projectName}**\n\n` +
251
+ `Status: _Not started_\n\n` +
252
+ `_Send a message to initialize._`, isNewSession, targetSessionId);
253
+ return;
254
+ }
255
+ const sessionState = state.session.getState();
256
+ const modelInfo = MODELS.find((m) => m.id === sessionState.model);
257
+ const contextWindow = getContextWindow(sessionState.model);
258
+ const contextTokens = estimateConversationTokens(state.session.getMessages());
259
+ const pctRaw = (contextTokens / contextWindow) * 100;
260
+ const contextStr = pctRaw > 0 && pctRaw < 1 ? "<1" : String(Math.round(pctRaw));
261
+ reply(stream, `**${projectName}**\n\n` +
262
+ `| | |\n|---|---|\n` +
263
+ `| Model | **${modelInfo?.name ?? sessionState.model}** |\n` +
264
+ `| Messages | ${sessionState.messageCount} |\n` +
265
+ `| Context | ${contextStr}% |\n` +
266
+ `| Status | ${state.isProcessing ? "Working..." : "Idle"} |`, isNewSession, targetSessionId);
267
+ return;
268
+ }
269
+ // ── /cancel ──
270
+ if (cmd === "cancel") {
271
+ const state = sessionStates.get(targetSessionId);
272
+ if (state?.isProcessing) {
273
+ state.ac.abort();
274
+ const newAc = new AbortController();
275
+ state.ac = newAc;
276
+ state.session.setSignal(newAc.signal);
277
+ reply(stream, "\u2713 Cancelled.", isNewSession, targetSessionId);
278
+ }
279
+ else {
280
+ reply(stream, "_Nothing to cancel._", isNewSession, targetSessionId);
281
+ }
282
+ return;
283
+ }
284
+ // ── /new, /n ──
285
+ if (cmd === "new" || cmd === "n") {
286
+ const state = await getOrCreateSession(targetSessionId);
287
+ await state.session.newSession();
288
+ pushSessions();
289
+ reply(stream, "\u2713 **New session started.**", isNewSession, targetSessionId);
290
+ return;
291
+ }
292
+ // ── /m, /model ──
293
+ if (cmd === "m" || cmd === "model") {
294
+ const state = sessionStates.get(targetSessionId);
295
+ const currentModel = state?.session.getState().model;
296
+ if (args) {
297
+ // Direct switch: /m 3 (number) or /m opus (name fragment)
298
+ const num = parseInt(args, 10);
299
+ if (!isNaN(num) && num >= 1 && num <= MODELS.length) {
300
+ const selected = MODELS[num - 1];
301
+ const s = await getOrCreateSession(targetSessionId);
302
+ await s.session.switchModel(selected.provider, selected.id);
303
+ pushSessions();
304
+ reply(stream, `\u2713 Switched to **${selected.name}**`, isNewSession, targetSessionId);
305
+ return;
306
+ }
307
+ // Try matching by name fragment
308
+ const lower = args.toLowerCase();
309
+ const match = MODELS.find((m) => m.name.toLowerCase().includes(lower) || m.id.toLowerCase().includes(lower));
310
+ if (match) {
311
+ const s = await getOrCreateSession(targetSessionId);
312
+ await s.session.switchModel(match.provider, match.id);
313
+ pushSessions();
314
+ reply(stream, `\u2713 Switched to **${match.name}**`, isNewSession, targetSessionId);
315
+ return;
316
+ }
317
+ reply(stream, `No model matching "${args}". Send \`/m\` to see the list.`, isNewSession, targetSessionId);
318
+ return;
319
+ }
320
+ // No args — show numbered list
321
+ let listText = `**Models**\n\n`;
322
+ const modelList = [...MODELS];
323
+ modelList.forEach((m, i) => {
324
+ const active = m.id === currentModel ? " \u2190" : "";
325
+ listText += `${i + 1}. ${m.name}${active}\n`;
326
+ });
327
+ pendingModelSelections.set(targetSessionId, modelList);
328
+ listText += `\n_Send number or name to switch._`;
329
+ reply(stream, listText, isNewSession, targetSessionId);
330
+ return;
331
+ }
332
+ // ── /link ──
333
+ if (cmd === "link") {
334
+ if (args && path.isAbsolute(args.trim())) {
335
+ const projectPath = args.trim();
336
+ await switchProject(targetSessionId, projectPath);
337
+ pushSessions();
338
+ reply(stream, `\u2713 Switched to **${path.basename(projectPath)}**`, isNewSession, targetSessionId);
339
+ log("INFO", "agent-home", `Linked session ${targetSessionId} to ${projectPath}`);
340
+ return;
341
+ }
342
+ const projects = await discoverProjects();
343
+ if (projects.length === 0) {
344
+ reply(stream, "No projects found.\n\nUse `/link <path>` to link manually.", isNewSession, targetSessionId);
345
+ return;
346
+ }
347
+ const currentCwd = sessionStates.get(targetSessionId)?.cwd ?? resolveProjectPath(targetSessionId);
348
+ const lines = projects.map((p, i) => {
349
+ const name = path.basename(p);
350
+ const marker = p === currentCwd ? " \u2190" : "";
351
+ return `${i + 1}. **${name}**${marker}`;
352
+ });
353
+ pendingLinkSelections.set(targetSessionId, projects);
354
+ reply(stream, `**Projects**\n\n${lines.join("\n")}\n\n_Send the number to switch._`, isNewSession, targetSessionId);
355
+ return;
356
+ }
357
+ // ── /unlink ──
358
+ if (cmd === "unlink") {
359
+ if (!sessionProjects.has(targetSessionId)) {
360
+ reply(stream, "_This session isn't linked to a project._", isNewSession, targetSessionId);
361
+ return;
362
+ }
363
+ const existing = sessionStates.get(targetSessionId);
364
+ if (existing) {
365
+ await existing.session.dispose();
366
+ sessionStates.delete(targetSessionId);
367
+ }
368
+ sessionProjects.delete(targetSessionId);
369
+ pushSessions();
370
+ reply(stream, `\u2713 Unlinked. Reset to **${path.basename(defaultCwd)}**`, isNewSession, targetSessionId);
371
+ return;
372
+ }
373
+ // ── Non-handled slash commands → forward to agent loop ──
374
+ if (!HANDLED_COMMANDS.has(cmd)) {
375
+ // Falls through to the agent loop below
376
+ }
377
+ else {
378
+ // Shouldn't reach here, but guard against it
379
+ return;
380
+ }
381
+ }
382
+ // ── Forward to agent loop ────────────────────────────
383
+ const state = await getOrCreateSession(targetSessionId);
384
+ if (state.isProcessing) {
385
+ stream.error("GG Coder is still processing a previous message. Please wait.");
386
+ return;
387
+ }
388
+ state.isProcessing = true;
389
+ state.textBuffer = "";
390
+ state.activeTools = new Map();
391
+ const unsubs = [];
392
+ const bus = state.session.eventBus;
393
+ unsubs.push(bus.on("text_delta", ({ text }) => {
394
+ state.textBuffer += text;
395
+ stream.token(text);
396
+ }));
397
+ unsubs.push(bus.on("tool_call_start", ({ toolCallId, name, args: toolArgs }) => {
398
+ state.activeTools.set(toolCallId, { name, startTime: Date.now(), args: toolArgs });
399
+ }));
400
+ unsubs.push(bus.on("tool_call_end", ({ toolCallId, isError, durationMs }) => {
401
+ const tool = state.activeTools.get(toolCallId);
402
+ state.activeTools.delete(toolCallId);
403
+ if (tool) {
404
+ const icon = isError ? "\u2717" : "\u2713";
405
+ const argsStr = formatArgs(tool.args);
406
+ const duration = formatDuration(durationMs);
407
+ const argsPart = argsStr ? ` \`${argsStr}\`` : "";
408
+ stream.token(`\n${icon} **${tool.name}**${argsPart} _${duration}_\n`);
409
+ }
410
+ }));
411
+ unsubs.push(bus.on("compaction_end", ({ originalCount, newCount }) => {
412
+ stream.token(`\n\u2713 **Compacted** ${originalCount} \u2192 ${newCount} messages\n`);
413
+ }));
414
+ try {
415
+ await state.session.prompt(content);
416
+ const finalText = state.textBuffer.trim() || "Done.";
417
+ const modelId = state.session.getState().model;
418
+ const contextWindow = getContextWindow(modelId);
419
+ const contextTokens = estimateConversationTokens(state.session.getMessages());
420
+ const contextPctRaw = (contextTokens / contextWindow) * 100;
421
+ const contextStr = contextPctRaw > 0 && contextPctRaw < 1 ? "<1" : String(Math.round(contextPctRaw));
422
+ const footer = `\n\n---\n_${contextStr}% context_`;
423
+ reply(stream, finalText + footer, isNewSession, targetSessionId);
424
+ pushSessions();
425
+ }
426
+ catch (err) {
427
+ if (isAbortError(err)) {
428
+ reply(stream, "Cancelled.", isNewSession, targetSessionId);
429
+ }
430
+ else {
431
+ stream.error(`Error: ${formatUserError(err)}`);
432
+ }
433
+ }
434
+ finally {
435
+ for (const off of unsubs)
436
+ off();
437
+ state.isProcessing = false;
438
+ }
439
+ });
440
+ // ── Session deletion ───────────────────────────────────
441
+ client.onSessionDelete((sessionId) => {
442
+ const state = sessionStates.get(sessionId);
443
+ if (state) {
444
+ state.session.dispose();
445
+ sessionStates.delete(sessionId);
446
+ sessionProjects.delete(sessionId);
447
+ pendingLinkSelections.delete(sessionId);
448
+ pendingModelSelections.delete(sessionId);
449
+ }
450
+ log("INFO", "agent-home", `Session deleted: ${sessionId}`);
451
+ });
452
+ // ── Connection events ──────────────────────────────────
453
+ client.onConnect(() => {
454
+ log("INFO", "agent-home", "Connected to relay");
455
+ console.log(chalk.hex("#4ade80")(" Connected to Agent Home relay."));
456
+ pushSessions();
457
+ });
458
+ client.onDisconnect(() => {
459
+ log("INFO", "agent-home", "Disconnected from relay (will auto-reconnect)");
460
+ console.log(chalk.hex("#ef4444")(" Disconnected from relay. Reconnecting..."));
461
+ });
462
+ // ── Initialize and start ─────────────────────────────
463
+ try {
464
+ process.stdout.write("\x1b[2J\x1b[3J\x1b[H");
465
+ const modelInfo = MODELS.find((m) => m.id === options.model);
466
+ const modelName = modelInfo?.name ?? options.model;
467
+ const home = process.env.HOME ?? "";
468
+ const displayPath = home && options.cwd.startsWith(home) ? "~" + options.cwd.slice(home.length) : options.cwd;
469
+ const LOGO = [
470
+ " \u2584\u2580\u2580\u2580 \u2584\u2580\u2580\u2580",
471
+ " \u2588 \u2580\u2588 \u2588 \u2580\u2588",
472
+ " \u2580\u2584\u2584\u2580 \u2580\u2584\u2584\u2580",
473
+ ];
474
+ const GRADIENT = [
475
+ "#60a5fa",
476
+ "#6da1f9",
477
+ "#7a9df7",
478
+ "#8799f5",
479
+ "#9495f3",
480
+ "#a18ff1",
481
+ "#a78bfa",
482
+ "#a18ff1",
483
+ "#9495f3",
484
+ "#8799f5",
485
+ "#7a9df7",
486
+ "#6da1f9",
487
+ ];
488
+ function gradientText(text) {
489
+ let colorIdx = 0;
490
+ return text
491
+ .split("")
492
+ .map((ch) => {
493
+ if (ch === " ")
494
+ return ch;
495
+ const color = GRADIENT[colorIdx++ % GRADIENT.length];
496
+ return chalk.hex(color)(ch);
497
+ })
498
+ .join("");
499
+ }
500
+ const GAP = " ";
501
+ console.log();
502
+ console.log(` ${gradientText(LOGO[0])}${GAP}` +
503
+ chalk.hex("#60a5fa").bold("GG Coder") +
504
+ chalk.hex("#6b7280")(` v${options.version}`) +
505
+ chalk.hex("#6b7280")(" \u00b7 By ") +
506
+ chalk.white.bold("Ken Kai"));
507
+ console.log(` ${gradientText(LOGO[1])}${GAP}` + chalk.hex("#a78bfa")(modelName));
508
+ console.log(` ${gradientText(LOGO[2])}${GAP}` + chalk.hex("#6b7280")(displayPath));
509
+ console.log();
510
+ console.log(chalk.hex("#6b7280")(" Mode ") +
511
+ chalk.hex("#a78bfa")("Agent Home") +
512
+ chalk.hex("#6b7280")(" \u00b7 Agent ") +
513
+ chalk.white("GG Coder"));
514
+ console.log();
515
+ console.log(chalk.hex("#6b7280")(" Connecting to relay..."));
516
+ console.log();
517
+ const shutdown = async () => {
518
+ console.log("\nShutting down...");
519
+ client.disconnect();
520
+ for (const state of sessionStates.values()) {
521
+ await state.session.dispose();
522
+ }
523
+ closeLogger();
524
+ process.exit(0);
525
+ };
526
+ process.on("SIGINT", shutdown);
527
+ process.on("SIGTERM", shutdown);
528
+ client.connect();
529
+ }
530
+ catch (err) {
531
+ console.error(`Failed to start: ${formatUserError(err)}`);
532
+ for (const state of sessionStates.values()) {
533
+ await state.session.dispose();
534
+ }
535
+ closeLogger();
536
+ process.exit(1);
537
+ }
538
+ }
539
+ // ── Helpers ───────────────────────────────────────────────
540
+ function formatArgs(args) {
541
+ const entries = Object.entries(args);
542
+ if (entries.length === 0)
543
+ return "";
544
+ const [_key, value] = entries[0];
545
+ const str = typeof value === "string" ? value : JSON.stringify(value);
546
+ return str.length > 50 ? str.slice(0, 47) + "..." : str;
547
+ }
548
+ function formatDuration(ms) {
549
+ if (ms < 1000)
550
+ return `${ms}ms`;
551
+ return `${(ms / 1000).toFixed(1)}s`;
552
+ }
553
+ //# sourceMappingURL=agent-home-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-home-mode.js","sourceRoot":"","sources":["../../src/modes/agent-home-mode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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"}