ccgateway 0.2.1 → 0.2.3

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.
@@ -92,7 +92,12 @@ export default function createDiscordGateway(pluginConfig) {
92
92
  const channelLocks = new Map();
93
93
  // Message deduplication — Discord gateway can replay events after reconnection.
94
94
  // Track recently seen message IDs to prevent processing the same message twice.
95
- const seenMessages = new Set();
95
+ // Uses a Map<string, number> (key → timestamp) instead of a Set for better
96
+ // debuggability and to avoid any edge-case with Set identity checks.
97
+ const seenMessages = new Map();
98
+ // Secondary dedup: tracks messages actively being processed (belt-and-suspenders).
99
+ // Prevents double-processing even if the primary dedup is somehow bypassed.
100
+ const activeProcessing = new Set();
96
101
  // Cross-agent loop prevention — tracks channels where the last message we
97
102
  // processed was from a bot. If ANOTHER bot message arrives in the same channel
98
103
  // before a human message resets it, we skip it (caps at 1 hop).
@@ -135,14 +140,19 @@ export default function createDiscordGateway(pluginConfig) {
135
140
  // Discord gateway can deliver the same event multiple times per bot.
136
141
  // Key includes botId so different bots can still process the same message.
137
142
  const dedupKey = `${botId}:${msg.id}`;
138
- if (seenMessages.has(dedupKey))
143
+ if (seenMessages.has(dedupKey)) {
144
+ logger.info(`discord-gateway: bot "${botId}" dedup caught duplicate ${msg.id} in channel ${msg.channelId}`);
139
145
  return;
140
- seenMessages.add(dedupKey);
146
+ }
147
+ seenMessages.set(dedupKey, Date.now());
141
148
  if (seenMessages.size > 5000) {
142
- const all = [...seenMessages];
149
+ // Keep the 2500 most recent entries
150
+ const entries = [...seenMessages.entries()]
151
+ .sort((a, b) => a[1] - b[1]);
143
152
  seenMessages.clear();
144
- for (const id of all.slice(-2500))
145
- seenMessages.add(id);
153
+ for (const [k, v] of entries.slice(-2500)) {
154
+ seenMessages.set(k, v);
155
+ }
146
156
  }
147
157
  try {
148
158
  await enqueueMessage(msg, botId);
@@ -196,96 +206,108 @@ export default function createDiscordGateway(pluginConfig) {
196
206
  }
197
207
  // ── Internal message handler ──────────────────────────────────────────
198
208
  async function handleMessage(msg, receivingBotId) {
199
- logger.info(`discord-gateway: bot "${receivingBotId}" received message ${msg.id} in channel ${msg.channelId} from ${msg.author.tag} (bot=${msg.author.bot})`);
200
- // Cross-agent communication: allow messages from our own bots, but
201
- // prevent loops. External bots are always ignored.
202
- if (msg.author.bot) {
203
- // Ignore external bots entirely
204
- if (!ownBotUserIds.has(msg.author.id))
209
+ // Secondary dedup guard against the primary dedup being bypassed
210
+ const activeKey = `${receivingBotId}:${msg.id}`;
211
+ if (activeProcessing.has(activeKey)) {
212
+ logger.info(`discord-gateway: bot "${receivingBotId}" secondary dedup caught duplicate ${msg.id}`);
213
+ return;
214
+ }
215
+ activeProcessing.add(activeKey);
216
+ try {
217
+ logger.info(`discord-gateway: bot "${receivingBotId}" received message ${msg.id} in channel ${msg.channelId} from ${msg.author.tag} (bot=${msg.author.bot})`);
218
+ // Cross-agent communication: allow messages from our own bots, but
219
+ // prevent loops. External bots are always ignored.
220
+ if (msg.author.bot) {
221
+ // Ignore external bots entirely
222
+ if (!ownBotUserIds.has(msg.author.id))
223
+ return;
224
+ // Ignore self — a bot never responds to its own messages
225
+ const client = clients.get(receivingBotId);
226
+ if (client?.user?.id === msg.author.id)
227
+ return;
228
+ // Loop prevention: only allow 1 hop of bot-to-bot per channel.
229
+ // If we already responded to a bot message here, skip until a human resets.
230
+ const chainKey = `${receivingBotId}:${msg.channelId}`;
231
+ if (botChainActive.has(chainKey)) {
232
+ logger.info(`discord-gateway: bot "${receivingBotId}" skipping bot message in ${msg.channelId} (chain limit)`);
233
+ return;
234
+ }
235
+ // Mark chain active — next bot message in this channel will be skipped
236
+ botChainActive.add(chainKey);
237
+ }
238
+ else {
239
+ // Human message resets the chain for all bots in this channel
240
+ for (const botId of clients.keys()) {
241
+ botChainActive.delete(`${botId}:${msg.channelId}`);
242
+ }
243
+ }
244
+ // Only handle messages if THIS bot is the one bound to this channel.
245
+ // This prevents "several people typing" — only the correct bot responds.
246
+ const binding = core.config.bindings.find((b) => b.gateway === "discord" && b.channel === msg.channelId && b.bot === receivingBotId);
247
+ if (!binding) {
248
+ logger.info(`discord-gateway: bot "${receivingBotId}" no binding for channel ${msg.channelId}`);
249
+ return; // this bot is not bound to this channel
250
+ }
251
+ const agentId = binding.agent;
252
+ // Check if user is in allowedUsers
253
+ if (!pluginConfig.allowedUsers.includes(msg.author.id)) {
205
254
  return;
206
- // Ignore self — a bot never responds to its own messages
207
- const client = clients.get(receivingBotId);
208
- if (client?.user?.id === msg.author.id)
255
+ }
256
+ // Handle slash commands
257
+ const trimmed = msg.content.trim().toLowerCase();
258
+ if (trimmed === "/new" || trimmed === "/reset") {
259
+ const sessionKey = await core.sessions.getOrCreateSession(agentId, "discord", msg.channelId);
260
+ await core.sessions.resetSession(agentId, sessionKey);
261
+ await msg.channel.send(`Session reset for **${agentId}**. Starting fresh.`);
209
262
  return;
210
- // Loop prevention: only allow 1 hop of bot-to-bot per channel.
211
- // If we already responded to a bot message here, skip until a human resets.
212
- const chainKey = `${receivingBotId}:${msg.channelId}`;
213
- if (botChainActive.has(chainKey)) {
214
- logger.info(`discord-gateway: bot "${receivingBotId}" skipping bot message in ${msg.channelId} (chain limit)`);
263
+ }
264
+ if (trimmed === "/status") {
265
+ const sessionKey = await core.sessions.getOrCreateSession(agentId, "discord", msg.channelId);
266
+ await msg.channel.send(`**Agent:** ${agentId}\n**Session:** \`${sessionKey}\`\n**Channel:** ${msg.channelId}`);
215
267
  return;
216
268
  }
217
- // Mark chain active next bot message in this channel will be skipped
218
- botChainActive.add(chainKey);
219
- }
220
- else {
221
- // Human message resets the chain for all bots in this channel
222
- for (const botId of clients.keys()) {
223
- botChainActive.delete(`${botId}:${msg.channelId}`);
269
+ // Normalize to IncomingMessage and route
270
+ const incomingMessage = normalizeMessage(msg, agentId);
271
+ // Show typing indicator while processing
272
+ const typingInterval = setInterval(() => {
273
+ msg.channel.sendTyping().catch(() => { });
274
+ }, 5000);
275
+ await msg.channel.sendTyping().catch(() => { });
276
+ // Send initial "thinking" message that we'll edit with streaming content
277
+ const sentMsg = await msg.channel.send("Thinking...");
278
+ let lastEditTime = 0;
279
+ // Throttled streaming callback — edits the message at most every EDIT_THROTTLE_MS
280
+ const onChunk = (accumulated) => {
281
+ const now = Date.now();
282
+ if (now - lastEditTime < EDIT_THROTTLE_MS)
283
+ return;
284
+ lastEditTime = now;
285
+ // During streaming, show first chunk (truncated if too long)
286
+ const preview = accumulated.length > DISCORD_CHAR_LIMIT - 3
287
+ ? accumulated.slice(0, DISCORD_CHAR_LIMIT - 3) + "..."
288
+ : accumulated;
289
+ sentMsg.edit(preview).catch(() => { });
290
+ };
291
+ try {
292
+ const response = await core.router.route(incomingMessage, onChunk);
293
+ // Final response: replace initial message + send overflow chunks
294
+ const chunks = splitMessage(response);
295
+ await sentMsg.edit(chunks[0]);
296
+ for (let i = 1; i < chunks.length; i++) {
297
+ await msg.channel.send(chunks[i]);
298
+ }
224
299
  }
225
- }
226
- // Only handle messages if THIS bot is the one bound to this channel.
227
- // This prevents "several people typing" — only the correct bot responds.
228
- const binding = core.config.bindings.find((b) => b.gateway === "discord" && b.channel === msg.channelId && b.bot === receivingBotId);
229
- if (!binding) {
230
- logger.info(`discord-gateway: bot "${receivingBotId}" no binding for channel ${msg.channelId}`);
231
- return; // this bot is not bound to this channel
232
- }
233
- const agentId = binding.agent;
234
- // Check if user is in allowedUsers
235
- if (!pluginConfig.allowedUsers.includes(msg.author.id)) {
236
- return;
237
- }
238
- // Handle slash commands
239
- const trimmed = msg.content.trim().toLowerCase();
240
- if (trimmed === "/new" || trimmed === "/reset") {
241
- const sessionKey = await core.sessions.getOrCreateSession(agentId, "discord", msg.channelId);
242
- await core.sessions.resetSession(agentId, sessionKey);
243
- await msg.channel.send(`Session reset for **${agentId}**. Starting fresh.`);
244
- return;
245
- }
246
- if (trimmed === "/status") {
247
- const sessionKey = await core.sessions.getOrCreateSession(agentId, "discord", msg.channelId);
248
- await msg.channel.send(`**Agent:** ${agentId}\n**Session:** \`${sessionKey}\`\n**Channel:** ${msg.channelId}`);
249
- return;
250
- }
251
- // Normalize to IncomingMessage and route
252
- const incomingMessage = normalizeMessage(msg, agentId);
253
- // Show typing indicator while processing
254
- const typingInterval = setInterval(() => {
255
- msg.channel.sendTyping().catch(() => { });
256
- }, 5000);
257
- await msg.channel.sendTyping().catch(() => { });
258
- // Send initial "thinking" message that we'll edit with streaming content
259
- const sentMsg = await msg.channel.send("Thinking...");
260
- let lastEditTime = 0;
261
- // Throttled streaming callback — edits the message at most every EDIT_THROTTLE_MS
262
- const onChunk = (accumulated) => {
263
- const now = Date.now();
264
- if (now - lastEditTime < EDIT_THROTTLE_MS)
265
- return;
266
- lastEditTime = now;
267
- // During streaming, show first chunk (truncated if too long)
268
- const preview = accumulated.length > DISCORD_CHAR_LIMIT - 3
269
- ? accumulated.slice(0, DISCORD_CHAR_LIMIT - 3) + "..."
270
- : accumulated;
271
- sentMsg.edit(preview).catch(() => { });
272
- };
273
- try {
274
- const response = await core.router.route(incomingMessage, onChunk);
275
- // Final response: replace initial message + send overflow chunks
276
- const chunks = splitMessage(response);
277
- await sentMsg.edit(chunks[0]);
278
- for (let i = 1; i < chunks.length; i++) {
279
- await msg.channel.send(chunks[i]);
300
+ catch (err) {
301
+ const errMsg = err instanceof Error ? err.message : String(err);
302
+ logger.error(`discord-gateway: error handling message: ${errMsg}`);
303
+ await sentMsg.edit(`⚠️ Error: ${errMsg}`).catch(() => { });
304
+ }
305
+ finally {
306
+ clearInterval(typingInterval);
280
307
  }
281
- }
282
- catch (err) {
283
- const errMsg = err instanceof Error ? err.message : String(err);
284
- logger.error(`discord-gateway: error handling message: ${errMsg}`);
285
- await sentMsg.edit(`⚠️ Error: ${errMsg}`).catch(() => { });
286
308
  }
287
309
  finally {
288
- clearInterval(typingInterval);
310
+ activeProcessing.delete(activeKey);
289
311
  }
290
312
  }
291
313
  }
@@ -1 +1 @@
1
- {"version":3,"file":"discord-gateway.js","sourceRoot":"","sources":["../../src/plugins/discord-gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discord-gateway.js","sourceRoot":"","sources":["../../src/plugins/discord-gateway.ts"],"names":[],"mappings":"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"}
package/dist/router.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { AgentRegistry } from "./agents.js";
2
2
  import type { SessionManager } from "./sessions.js";
3
3
  import type { ContextBuilder } from "./context.js";
4
4
  import type { CCSpawner, StreamCallback } from "./spawner.js";
5
+ import type { AsyncTaskWatcher } from "./async-watcher.js";
5
6
  import type { IncomingMessage, BindingConfig } from "./types.js";
6
7
  export declare class MessageRouter {
7
8
  private agents;
@@ -9,7 +10,12 @@ export declare class MessageRouter {
9
10
  private context;
10
11
  private spawner;
11
12
  private bindings;
13
+ private watcher;
12
14
  constructor(agents: AgentRegistry, sessions: SessionManager, context: ContextBuilder, spawner: CCSpawner, bindings: BindingConfig[]);
15
+ /**
16
+ * Set the async task watcher (called after watcher is created in daemon).
17
+ */
18
+ setWatcher(watcher: AsyncTaskWatcher): void;
13
19
  /**
14
20
  * Resolve which agent handles a message based on bindings.
15
21
  * Given (gateway, channelId), find the matching binding and return binding.agent.
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAc,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAc,aAAa,EAAE,MAAM,YAAY,CAAC;AAwB7E,qBAAa,aAAa;IAEtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;gBAJR,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,aAAa,EAAE;IAGnC;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOpE;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOrE;;;;;;;;;;;;;;;OAeG;IACG,KAAK,CACT,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IAgIlB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIxC;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAIrD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI7D;;;;OAIG;YACW,mBAAmB;CAmDlC;AAkDD,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAY/E"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAc,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAc,aAAa,EAAE,MAAM,YAAY,CAAC;AA0B7E,qBAAa,aAAa;IAItB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAPlB,OAAO,CAAC,OAAO,CAAiC;gBAGtC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,aAAa,EAAE;IAGnC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI3C;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOpE;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOrE;;;;;;;;;;;;;;;OAeG;IACG,KAAK,CACT,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IAqLlB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIxC;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAIrD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI7D;;;;OAIG;YACW,mBAAmB;CAmDlC;AAkDD,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAY/E"}
package/dist/router.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { writeFile, mkdir, rm } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { tmpdir } from "node:os";
4
+ import { getCcgHome } from "./config.js";
5
+ import { logger } from "./logger.js";
4
6
  // ── Trivial message short-circuit ─────────────────────────────────────────
5
7
  const TRIVIAL_PATTERN = /^(thanks|thank you|ty|thx|ok|okay|k|got it|cool|nice|great|awesome|perfect|sounds good|lgtm|np|no worries|👍|🙏|❤️|💯)[\s!.\-]*$/i;
6
8
  const TRIVIAL_REPLIES = [
@@ -20,6 +22,7 @@ export class MessageRouter {
20
22
  context;
21
23
  spawner;
22
24
  bindings;
25
+ watcher = null;
23
26
  constructor(agents, sessions, context, spawner, bindings) {
24
27
  this.agents = agents;
25
28
  this.sessions = sessions;
@@ -27,6 +30,12 @@ export class MessageRouter {
27
30
  this.spawner = spawner;
28
31
  this.bindings = bindings;
29
32
  }
33
+ /**
34
+ * Set the async task watcher (called after watcher is created in daemon).
35
+ */
36
+ setWatcher(watcher) {
37
+ this.watcher = watcher;
38
+ }
30
39
  /**
31
40
  * Resolve which agent handles a message based on bindings.
32
41
  * Given (gateway, channelId), find the matching binding and return binding.agent.
@@ -121,7 +130,53 @@ export class MessageRouter {
121
130
  }
122
131
  // 6. Build context
123
132
  const systemPrompt = await this.context.build(agentId, sessionKey);
124
- // 7. Spawn claude
133
+ // 7. Triage: sync or async?
134
+ // Skip async triage for non-interactive gateways (bitbucket, jira) —
135
+ // tmux interactive mode requires a trusted workspace prompt which
136
+ // cannot be answered in headless mode. Use sync + long timeout instead.
137
+ const interactiveGateways = new Set(["slack", "discord"]);
138
+ const allowAsync = interactiveGateways.has(message.from.gateway);
139
+ if (this.watcher && allowAsync) {
140
+ const triageResult = await this.spawner.triage(messageContent);
141
+ if (triageResult === "async") {
142
+ logger.info(`router: async triage for agent=${agentId}, dispatching to tmux`);
143
+ const asyncResult = await this.spawner.spawnAsync({
144
+ workspace: agent.workspace,
145
+ message: messageContent,
146
+ systemPrompt,
147
+ model: agent.model,
148
+ agentId,
149
+ ccgHome: getCcgHome(),
150
+ });
151
+ // Find the bot ID from the binding for this agent + gateway
152
+ const binding = this.bindings.find((b) => b.agent === agentId && b.gateway === message.from.gateway);
153
+ const botId = binding?.bot ?? agentId;
154
+ // Register with watcher
155
+ this.watcher.register({
156
+ sessionName: asyncResult.sessionName,
157
+ taskDir: asyncResult.taskDir,
158
+ agentId,
159
+ gateway: message.from.gateway,
160
+ channel: message.from.channel,
161
+ botId,
162
+ startedAt: Date.now(),
163
+ });
164
+ // Append placeholder to session and return immediately
165
+ const placeholder = `[async] Task dispatched to tmux session \`${asyncResult.sessionName}\`. I'll post the result here when done.`;
166
+ await this.sessions.appendMessage(agentId, sessionKey, {
167
+ role: "assistant",
168
+ content: placeholder,
169
+ ts: Date.now(),
170
+ tokens: { in: 0, out: 0 },
171
+ });
172
+ // Clean up attachment temp dir
173
+ if (attachmentDir) {
174
+ rm(attachmentDir, { recursive: true, force: true }).catch(() => { });
175
+ }
176
+ return placeholder;
177
+ }
178
+ }
179
+ // 8. Spawn claude (sync path)
125
180
  const spawnOptions = {
126
181
  workspace: agent.workspace,
127
182
  message: messageContent,
@@ -134,33 +189,29 @@ export class MessageRouter {
134
189
  const result = onChunk
135
190
  ? await this.spawner.spawnStreaming(spawnOptions, onChunk)
136
191
  : await this.spawner.spawn(spawnOptions);
137
- // 8. Clean up attachment temp dir
192
+ // 9. Clean up attachment temp dir
138
193
  if (attachmentDir) {
139
194
  rm(attachmentDir, { recursive: true, force: true }).catch(() => { });
140
195
  }
141
- // 9. Handle failure: append error to session and throw
196
+ // 10. Handle failure: throw without persisting errors to session history.
197
+ // Error responses pollute conversation context and waste tokens on
198
+ // subsequent requests — the user already sees the error in Discord/Slack.
142
199
  if (result.exitCode !== 0) {
143
200
  const isTimeout = result.exitCode === 124;
144
201
  const stderrHint = result.stderr ? `\n\nDetails: ${result.stderr.slice(0, 500)}` : "";
145
202
  const errorContent = isTimeout
146
- ? "The task timed out — no activity was detected for over 5 minutes. Try breaking it into smaller steps."
203
+ ? "The task timed out — no activity was detected for over 15 minutes. Try breaking it into smaller steps."
147
204
  : (result.response || `Spawner failed with exit code ${result.exitCode}`) + stderrHint;
148
- await this.sessions.appendMessage(agentId, sessionKey, {
149
- role: "assistant",
150
- content: `[error] ${errorContent}`,
151
- ts: Date.now(),
152
- tokens: result.tokensEstimate,
153
- });
154
205
  throw new Error(errorContent);
155
206
  }
156
- // 10. Append assistant response to session
207
+ // 11. Append assistant response to session
157
208
  await this.sessions.appendMessage(agentId, sessionKey, {
158
209
  role: "assistant",
159
210
  content: result.response,
160
211
  ts: Date.now(),
161
212
  tokens: result.tokensEstimate,
162
213
  });
163
- // 11. Return response text (guard against empty responses)
214
+ // 12. Return response text (guard against empty responses)
164
215
  return result.response.trim() || "(no response)";
165
216
  }
166
217
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
package/dist/spawner.d.ts CHANGED
@@ -22,9 +22,47 @@ export interface SpawnOptions {
22
22
  * sent as content blocks directly (no Read-tool round-trip). */
23
23
  images?: ImageInput[];
24
24
  }
25
+ export interface AsyncSpawnOptions {
26
+ workspace: string;
27
+ message: string;
28
+ systemPrompt: string;
29
+ model: string;
30
+ agentId: string;
31
+ ccgHome: string;
32
+ }
33
+ export interface AsyncSpawnResult {
34
+ sessionName: string;
35
+ taskDir: string;
36
+ }
37
+ export type TriageResult = "sync" | "async";
25
38
  /** Callback fired during streaming with the accumulated text so far. */
26
39
  export type StreamCallback = (accumulated: string) => void;
27
40
  export declare class CCSpawner {
41
+ private _muxBinary;
42
+ /**
43
+ * Quick Sonnet call to classify a message as "sync" or "async".
44
+ * Defaults to "sync" on any failure (timeout, parse error, etc.).
45
+ */
46
+ triage(message: string): Promise<TriageResult>;
47
+ /**
48
+ * Launch Claude Code in interactive mode inside a detached tmux session.
49
+ *
50
+ * - No `--print` flag — runs the full interactive REPL
51
+ * - `--dangerously-skip-permissions` so it won't block on tool approvals
52
+ * - System prompt injected via `--append-system-prompt-file`
53
+ * - User's message sent via `tmux send-keys` after a short init delay
54
+ * - Returns immediately with the session name and task directory
55
+ */
56
+ spawnAsync(options: AsyncSpawnOptions): Promise<AsyncSpawnResult>;
57
+ /**
58
+ * Detect available terminal multiplexer. Cached after first call.
59
+ * Returns "tmux", "screen", or null.
60
+ */
61
+ detectMux(): Promise<string | null>;
62
+ /**
63
+ * Check if a tmux/screen session is still alive.
64
+ */
65
+ isSessionAlive(sessionName: string): Promise<boolean>;
28
66
  /**
29
67
  * Spawn a `claude --print` invocation (batch mode — collects full output).
30
68
  *
@@ -1 +1 @@
1
- {"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../src/spawner.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;qEACiE;IACjE,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;AAa3D,qBAAa,SAAS;IACpB;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAKxD;;;;;;;;OAQG;IACG,cAAc,CAClB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC;IA8KvB,OAAO,CAAC,SAAS;IAkFjB,OAAO,CAAC,eAAe;CAmHxB;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAyCxD"}
1
+ {"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../src/spawner.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;qEACiE;IACjE,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;AAsC3D,qBAAa,SAAS;IACpB,OAAO,CAAC,UAAU,CAAwC;IAI1D;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA6BpD;;;;;;;;OAQG;IACG,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8EvE;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAuBzC;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB3D;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAKxD;;;;;;;;OAQG;IACG,cAAc,CAClB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC;IAmLvB,OAAO,CAAC,SAAS;IAmFjB,OAAO,CAAC,eAAe;CAoHxB;AA8BD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAyCxD"}