@kenkaiiii/ggcoder 4.2.65 → 4.2.66

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.
@@ -0,0 +1,22 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,281 @@
1
+ import path from "node:path";
2
+ import crypto from "node:crypto";
3
+ import { isAbortError } from "@kenkaiiii/gg-agent";
4
+ import chalk from "chalk";
5
+ import { AgentSession } from "../core/agent-session.js";
6
+ import { BridgeClient } from "../core/bridge-client.js";
7
+ import { MessageType } from "../core/bridge-protocol.js";
8
+ import { formatUserError } from "../utils/error-handler.js";
9
+ import { log, closeLogger } from "../core/logger.js";
10
+ /**
11
+ * Bridge mode: run ggcoder as an Agent Home agent.
12
+ *
13
+ * Connects to the relay server via WebSocket and registers the current
14
+ * project directory as an agent. Messages from the iOS app are forwarded
15
+ * here, processed by AgentSession, and streamed back.
16
+ */
17
+ export async function runBridgeMode(options) {
18
+ const agentId = crypto.createHash("sha256").update(options.cwd).digest("hex").slice(0, 16);
19
+ const agentName = options.agentName ?? path.basename(options.cwd);
20
+ const client = new BridgeClient(options.bridge.relayUrl, options.bridge.token);
21
+ client.setAgentIds([agentId]);
22
+ let session = null;
23
+ const ac = new AbortController();
24
+ let isProcessing = false;
25
+ let textBuffer = "";
26
+ let currentMessageId = "";
27
+ const activeTools = new Map();
28
+ // ── Session lifecycle ──────────────────────────────────
29
+ async function getOrCreateSession() {
30
+ if (session)
31
+ return session;
32
+ session = new AgentSession({
33
+ provider: options.provider,
34
+ model: options.model,
35
+ cwd: options.cwd,
36
+ thinkingLevel: options.thinkingLevel,
37
+ signal: ac.signal,
38
+ });
39
+ await session.initialize();
40
+ wireSessionEvents();
41
+ log("INFO", "bridge", `Session initialized`, { cwd: options.cwd });
42
+ return session;
43
+ }
44
+ // ── Agent → Relay bridge ───────────────────────────────
45
+ function wireSessionEvents() {
46
+ if (!session)
47
+ return;
48
+ session.eventBus.on("text_delta", ({ text }) => {
49
+ textBuffer += text;
50
+ // Stream tokens to relay
51
+ client.send({
52
+ id: BridgeClient.newId(),
53
+ type: MessageType.CHAT_STREAM,
54
+ timestamp: Date.now(),
55
+ agentId,
56
+ token: text,
57
+ messageId: currentMessageId,
58
+ });
59
+ });
60
+ session.eventBus.on("tool_call_start", ({ toolCallId, name, args }) => {
61
+ activeTools.set(toolCallId, { name, startTime: Date.now(), args });
62
+ const argsStr = formatArgs(args);
63
+ const token = `\n🔧 \`${name}\` ${argsStr}\n`;
64
+ client.send({
65
+ id: BridgeClient.newId(),
66
+ type: MessageType.CHAT_STREAM,
67
+ timestamp: Date.now(),
68
+ agentId,
69
+ token,
70
+ messageId: currentMessageId,
71
+ });
72
+ });
73
+ session.eventBus.on("tool_call_end", ({ toolCallId, isError, durationMs }) => {
74
+ const tool = activeTools.get(toolCallId);
75
+ activeTools.delete(toolCallId);
76
+ if (tool) {
77
+ const icon = isError ? "✗" : "✓";
78
+ const token = `${icon} \`${tool.name}\` ${formatDuration(durationMs)}\n`;
79
+ client.send({
80
+ id: BridgeClient.newId(),
81
+ type: MessageType.CHAT_STREAM,
82
+ timestamp: Date.now(),
83
+ agentId,
84
+ token,
85
+ messageId: currentMessageId,
86
+ });
87
+ }
88
+ });
89
+ session.eventBus.on("agent_done", () => {
90
+ const content = textBuffer.trim();
91
+ client.send({
92
+ id: BridgeClient.newId(),
93
+ type: MessageType.CHAT_STREAM_END,
94
+ timestamp: Date.now(),
95
+ agentId,
96
+ messageId: currentMessageId,
97
+ content,
98
+ });
99
+ textBuffer = "";
100
+ isProcessing = false;
101
+ currentMessageId = "";
102
+ log("INFO", "bridge", `Agent done`);
103
+ });
104
+ session.eventBus.on("error", ({ error }) => {
105
+ const content = textBuffer.trim() + `\n\n✗ Error: ${error.message}`;
106
+ client.send({
107
+ id: BridgeClient.newId(),
108
+ type: MessageType.CHAT_STREAM_END,
109
+ timestamp: Date.now(),
110
+ agentId,
111
+ messageId: currentMessageId,
112
+ content,
113
+ });
114
+ textBuffer = "";
115
+ isProcessing = false;
116
+ currentMessageId = "";
117
+ });
118
+ session.eventBus.on("compaction_end", ({ originalCount, newCount }) => {
119
+ const token = `\n✓ Compacted — ${originalCount} → ${newCount} messages\n`;
120
+ client.send({
121
+ id: BridgeClient.newId(),
122
+ type: MessageType.CHAT_STREAM,
123
+ timestamp: Date.now(),
124
+ agentId,
125
+ token,
126
+ messageId: currentMessageId,
127
+ });
128
+ });
129
+ }
130
+ // ── Handle incoming messages ───────────────────────────
131
+ client.on(MessageType.CHAT_FORWARD, async (msg) => {
132
+ const forward = msg;
133
+ if (forward.agentId !== agentId)
134
+ return;
135
+ if (isProcessing) {
136
+ client.send({
137
+ id: BridgeClient.newId(),
138
+ type: MessageType.CHAT_STREAM_END,
139
+ timestamp: Date.now(),
140
+ agentId,
141
+ messageId: BridgeClient.newId(),
142
+ content: "Agent is busy processing a previous message. Please wait.",
143
+ });
144
+ return;
145
+ }
146
+ isProcessing = true;
147
+ textBuffer = "";
148
+ activeTools.clear();
149
+ currentMessageId = BridgeClient.newId();
150
+ console.log(chalk.hex("#60a5fa")(` ← ${forward.content.slice(0, 80)}${forward.content.length > 80 ? "..." : ""}`));
151
+ try {
152
+ const s = await getOrCreateSession();
153
+ await s.prompt(forward.content);
154
+ }
155
+ catch (err) {
156
+ if (!isAbortError(err)) {
157
+ const content = `Error: ${formatUserError(err)}`;
158
+ client.send({
159
+ id: BridgeClient.newId(),
160
+ type: MessageType.CHAT_STREAM_END,
161
+ timestamp: Date.now(),
162
+ agentId,
163
+ messageId: currentMessageId,
164
+ content,
165
+ });
166
+ }
167
+ isProcessing = false;
168
+ currentMessageId = "";
169
+ }
170
+ });
171
+ // ── Connect and register ───────────────────────────────
172
+ client.onConnect(() => {
173
+ client.send({
174
+ id: BridgeClient.newId(),
175
+ type: MessageType.AGENT_REGISTER,
176
+ timestamp: Date.now(),
177
+ agent: {
178
+ id: agentId,
179
+ name: agentName,
180
+ description: `GG Coder agent — ${options.cwd}`,
181
+ capabilities: ["chat"],
182
+ },
183
+ });
184
+ console.log(chalk.hex("#4ade80")(" Connected to relay"));
185
+ console.log(chalk.hex("#6b7280")(` Agent registered: ${agentName} (${agentId})`));
186
+ });
187
+ client.onDisconnect(() => {
188
+ console.log(chalk.hex("#f59e0b")(" Disconnected from relay — reconnecting..."));
189
+ });
190
+ // ── Display banner ─────────────────────────────────────
191
+ process.stdout.write("\x1b[2J\x1b[3J\x1b[H");
192
+ const LOGO = [
193
+ " \u2584\u2580\u2580\u2580 \u2584\u2580\u2580\u2580",
194
+ " \u2588 \u2580\u2588 \u2588 \u2580\u2588",
195
+ " \u2580\u2584\u2584\u2580 \u2580\u2584\u2584\u2580",
196
+ ];
197
+ const GRADIENT = [
198
+ "#60a5fa",
199
+ "#6da1f9",
200
+ "#7a9df7",
201
+ "#8799f5",
202
+ "#9495f3",
203
+ "#a18ff1",
204
+ "#a78bfa",
205
+ "#a18ff1",
206
+ "#9495f3",
207
+ "#8799f5",
208
+ "#7a9df7",
209
+ "#6da1f9",
210
+ ];
211
+ function gradientText(text) {
212
+ let colorIdx = 0;
213
+ return text
214
+ .split("")
215
+ .map((ch) => {
216
+ if (ch === " ")
217
+ return ch;
218
+ const color = GRADIENT[colorIdx++ % GRADIENT.length];
219
+ return chalk.hex(color)(ch);
220
+ })
221
+ .join("");
222
+ }
223
+ const home = process.env.HOME ?? "";
224
+ const displayPath = home && options.cwd.startsWith(home) ? "~" + options.cwd.slice(home.length) : options.cwd;
225
+ const GAP = " ";
226
+ console.log();
227
+ console.log(` ${gradientText(LOGO[0])}${GAP}` +
228
+ chalk.hex("#60a5fa").bold("GG Coder") +
229
+ chalk.hex("#6b7280")(` v${options.version}`) +
230
+ chalk.hex("#6b7280")(" · By ") +
231
+ chalk.white.bold("Ken Kai"));
232
+ console.log(` ${gradientText(LOGO[1])}${GAP}` + chalk.hex("#a78bfa")(agentName));
233
+ console.log(` ${gradientText(LOGO[2])}${GAP}` + chalk.hex("#6b7280")(displayPath));
234
+ console.log();
235
+ console.log(chalk.hex("#6b7280")(" Mode ") +
236
+ chalk.hex("#a78bfa")("Agent Home Bridge") +
237
+ chalk.hex("#6b7280")(" · Agent ") +
238
+ chalk.white(agentName));
239
+ console.log();
240
+ console.log(chalk.hex("#6b7280")(" Connecting to relay..."));
241
+ console.log();
242
+ // ── Start connection ───────────────────────────────────
243
+ client.connect();
244
+ // ── Graceful shutdown ──────────────────────────────────
245
+ const shutdown = async () => {
246
+ console.log("\nShutting down...");
247
+ client.send({
248
+ id: BridgeClient.newId(),
249
+ type: MessageType.AGENT_UNREGISTER,
250
+ timestamp: Date.now(),
251
+ agentId,
252
+ });
253
+ client.disconnect();
254
+ if (session) {
255
+ ac.abort();
256
+ await session.dispose();
257
+ }
258
+ closeLogger();
259
+ process.exit(0);
260
+ };
261
+ process.on("SIGINT", shutdown);
262
+ process.on("SIGTERM", shutdown);
263
+ // Keep the process alive
264
+ await new Promise(() => { });
265
+ }
266
+ // ── Helpers ───────────────────────────────────────────────
267
+ function formatArgs(args) {
268
+ const entries = Object.entries(args);
269
+ if (entries.length === 0)
270
+ return "";
271
+ const [_key, value] = entries[0];
272
+ const str = typeof value === "string" ? value : JSON.stringify(value);
273
+ const truncated = str.length > 60 ? str.slice(0, 57) + "..." : str;
274
+ return `\`${truncated}\``;
275
+ }
276
+ function formatDuration(ms) {
277
+ if (ms < 1000)
278
+ return `${ms}ms`;
279
+ return `${(ms / 1000).toFixed(1)}s`;
280
+ }
281
+ //# sourceMappingURL=bridge-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-mode.js","sourceRoot":"","sources":["../../src/modes/bridge-mode.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export { runPrintMode, type PrintModeOptions } from "./print-mode.js";
2
2
  export { runRpcMode, type RpcModeOptions } from "./rpc-mode.js";
3
+ export { runBridgeMode, type BridgeModeOptions } from "./bridge-mode.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { runPrintMode } from "./print-mode.js";
2
2
  export { runRpcMode } from "./rpc-mode.js";
3
+ export { runBridgeMode } from "./bridge-mode.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAuB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAuB,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAA0B,MAAM,kBAAkB,CAAC"}
package/dist/ui/App.d.ts CHANGED
@@ -4,7 +4,6 @@ import type { PasteInfo } from "./components/InputArea.js";
4
4
  import { type SubAgentInfo } from "./components/SubAgentPanel.js";
5
5
  import type { ProcessManager } from "../core/process-manager.js";
6
6
  import type { Skill } from "../core/skills.js";
7
- import { type PlanStep } from "../utils/plan-steps.js";
8
7
  import type { MCPClientManager } from "../core/mcp/index.js";
9
8
  import type { AuthStorage } from "../core/auth-storage.js";
10
9
  interface UserItem {
@@ -111,11 +110,6 @@ interface PlanTransitionItem {
111
110
  active: boolean;
112
111
  id: string;
113
112
  }
114
- interface PlanProgressItem {
115
- kind: "plan_progress";
116
- steps: PlanStep[];
117
- id: string;
118
- }
119
113
  interface TombstoneItem {
120
114
  kind: "tombstone";
121
115
  id: string;
@@ -133,7 +127,7 @@ export interface ToolGroupItem {
133
127
  tools: ToolGroupTool[];
134
128
  id: string;
135
129
  }
136
- export type CompletedItem = UserItem | TaskItem | AssistantItem | ToolStartItem | ToolDoneItem | ServerToolStartItem | ServerToolDoneItem | ErrorItem | InfoItem | QueuedItem | CompactingItem | CompactedItem | DurationItem | BannerItem | SubAgentGroupItem | ToolGroupItem | PlanTransitionItem | PlanProgressItem | TombstoneItem;
130
+ export type CompletedItem = UserItem | TaskItem | AssistantItem | ToolStartItem | ToolDoneItem | ServerToolStartItem | ServerToolDoneItem | ErrorItem | InfoItem | QueuedItem | CompactingItem | CompactedItem | DurationItem | BannerItem | SubAgentGroupItem | ToolGroupItem | PlanTransitionItem | TombstoneItem;
137
131
  export interface AppProps {
138
132
  provider: Provider;
139
133
  model: string;
@@ -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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"}
package/dist/ui/App.js CHANGED
@@ -39,7 +39,6 @@ import { estimateConversationTokens } from "../core/compaction/token-estimator.j
39
39
  import { PROMPT_COMMANDS, getPromptCommand } from "../core/prompt-commands.js";
40
40
  import { loadCustomCommands } from "../core/custom-commands.js";
41
41
  import { buildSystemPrompt } from "../system-prompt.js";
42
- import { PlanProgress } from "./components/PlanProgress.js";
43
42
  import { extractPlanSteps, findCompletedMarkers, markStepsCompleted, stripDoneMarkers, } from "../utils/plan-steps.js";
44
43
  import { getMCPServers } from "../core/mcp/index.js";
45
44
  import { trimFlushedItems, flushOnTurnText, flushOnTurnEnd } from "./live-item-flush.js";
@@ -1322,8 +1321,6 @@ export function App(props) {
1322
1321
  return (_jsx(Box, { marginTop: 1, flexShrink: 1, children: _jsx(Text, { color: theme.textDim, wrap: "wrap", children: item.text }) }, item.id));
1323
1322
  case "plan_transition":
1324
1323
  return (_jsx(Box, { marginTop: 1, flexShrink: 1, children: _jsxs(Text, { color: theme.planPrimary, bold: true, wrap: "wrap", children: [item.active ? "⊞ " : "⊟ ", item.text] }) }, item.id));
1325
- case "plan_progress":
1326
- return _jsx(PlanProgress, { steps: item.steps }, item.id);
1327
1324
  case "queued":
1328
1325
  return (_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: theme.accent, bold: true, children: "⏳ Queued: " }), _jsxs(Text, { color: theme.text, wrap: "wrap", children: [item.text, item.imageCount
1329
1326
  ? ` (+${item.imageCount} image${item.imageCount > 1 ? "s" : ""})`
@@ -1471,9 +1468,9 @@ export function App(props) {
1471
1468
  { kind: "info", text: `Plan rejected — "${feedback}"`, id: getId() },
1472
1469
  ]);
1473
1470
  void agentLoop.run(msg);
1474
- } })) : (_jsxs(_Fragment, { children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingRight: 1, children: [liveItems.map((item) => renderItem(item)), planSteps.length > 0 && agentLoop.isRunning && _jsx(PlanProgress, { steps: planSteps }), _jsx(StreamingArea, { isRunning: agentLoop.isRunning, streamingText: agentLoop.streamingText, streamingThinking: agentLoop.streamingThinking, showThinking: props.showThinking, thinkingMs: agentLoop.thinkingMs, planMode: planMode })] }), agentLoop.isRunning && agentLoop.activityPhase !== "idle" ? (_jsx(Box, { marginTop: 1, borderStyle: "round", borderColor: agentLoop.activityPhase === "thinking"
1471
+ } })) : (_jsxs(_Fragment, { children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, paddingRight: 1, children: [liveItems.map((item) => renderItem(item)), _jsx(StreamingArea, { isRunning: agentLoop.isRunning, streamingText: agentLoop.streamingText, streamingThinking: agentLoop.streamingThinking, showThinking: props.showThinking, thinkingMs: agentLoop.thinkingMs, planMode: planMode })] }), agentLoop.isRunning && agentLoop.activityPhase !== "idle" ? (_jsx(Box, { marginTop: 1, borderStyle: "round", borderColor: agentLoop.activityPhase === "thinking"
1475
1472
  ? THINKING_BORDER_COLORS[thinkingBorderFrame]
1476
- : "transparent", paddingLeft: 1, paddingRight: 1, width: columns, children: _jsx(ActivityIndicator, { phase: agentLoop.activityPhase, elapsedMs: agentLoop.elapsedMs, thinkingMs: agentLoop.thinkingMs, isThinking: agentLoop.isThinking, tokenEstimate: agentLoop.streamedTokenEstimate, userMessage: lastUserMessage, activeToolNames: agentLoop.activeToolCalls.map((tc) => tc.name), planMode: planMode, retryInfo: agentLoop.retryInfo }) })) : (doneStatus && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: theme.success, children: ["✻ ", doneStatus.verb, " ", formatDuration(doneStatus.durationMs)] }) }))), agentLoop.queuedCount > 0 && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: theme.accent, children: ["⏳ ", agentLoop.queuedCount, " message", agentLoop.queuedCount > 1 ? "s" : "", " queued"] }) })), _jsx(InputArea, { onSubmit: handleSubmit, onAbort: handleAbort, disabled: agentLoop.isRunning, isActive: !taskBarFocused && !overlay, onDownAtEnd: handleFocusTaskBar, onShiftTab: handleToggleThinking, onToggleTasks: () => {
1473
+ : "transparent", paddingLeft: 1, paddingRight: 1, width: columns, children: _jsx(ActivityIndicator, { phase: agentLoop.activityPhase, elapsedMs: agentLoop.elapsedMs, thinkingMs: agentLoop.thinkingMs, isThinking: agentLoop.isThinking, tokenEstimate: agentLoop.streamedTokenEstimate, userMessage: lastUserMessage, activeToolNames: agentLoop.activeToolCalls.map((tc) => tc.name), planMode: planMode, retryInfo: agentLoop.retryInfo, planDone: planSteps.filter((s) => s.completed).length, planTotal: planSteps.length }) })) : (doneStatus && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: theme.success, children: ["✻ ", doneStatus.verb, " ", formatDuration(doneStatus.durationMs)] }) }))), agentLoop.queuedCount > 0 && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: theme.accent, children: ["⏳ ", agentLoop.queuedCount, " message", agentLoop.queuedCount > 1 ? "s" : "", " queued"] }) })), _jsx(InputArea, { onSubmit: handleSubmit, onAbort: handleAbort, disabled: agentLoop.isRunning, isActive: !taskBarFocused && !overlay, onDownAtEnd: handleFocusTaskBar, onShiftTab: handleToggleThinking, onToggleTasks: () => {
1477
1474
  stdout?.write("\x1b[2J\x1b[3J\x1b[H");
1478
1475
  setOverlay("tasks");
1479
1476
  }, onToggleSkills: () => {