botmux 2.11.1 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/backend/pty-backend.d.ts +6 -0
- package/dist/adapters/backend/pty-backend.d.ts.map +1 -1
- package/dist/adapters/backend/pty-backend.js +6 -0
- package/dist/adapters/backend/pty-backend.js.map +1 -1
- package/dist/adapters/backend/tmux-backend.d.ts +16 -2
- package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
- package/dist/adapters/backend/tmux-backend.js +40 -10
- package/dist/adapters/backend/tmux-backend.js.map +1 -1
- package/dist/adapters/backend/tmux-pipe-backend.d.ts +59 -0
- package/dist/adapters/backend/tmux-pipe-backend.d.ts.map +1 -0
- package/dist/adapters/backend/tmux-pipe-backend.js +288 -0
- package/dist/adapters/backend/tmux-pipe-backend.js.map +1 -0
- package/dist/adapters/cli/claude-code.d.ts +15 -0
- package/dist/adapters/cli/claude-code.d.ts.map +1 -1
- package/dist/adapters/cli/claude-code.js +205 -24
- package/dist/adapters/cli/claude-code.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +78 -16
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +10 -0
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/cli.js +63 -8
- package/dist/cli.js.map +1 -1
- package/dist/core/command-handler.d.ts +10 -0
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +29 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/scheduler.d.ts +3 -0
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +3 -0
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/session-manager.d.ts +17 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +51 -3
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/types.d.ts +4 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker-pool.d.ts +13 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +115 -4
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +59 -120
- package/dist/daemon.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts +2 -1
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +23 -9
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +26 -93
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/merge-forward.d.ts +32 -0
- package/dist/im/lark/merge-forward.d.ts.map +1 -0
- package/dist/im/lark/merge-forward.js +99 -0
- package/dist/im/lark/merge-forward.js.map +1 -0
- package/dist/services/bridge-fallback-gate.d.ts +42 -0
- package/dist/services/bridge-fallback-gate.d.ts.map +1 -0
- package/dist/services/bridge-fallback-gate.js +12 -0
- package/dist/services/bridge-fallback-gate.js.map +1 -0
- package/dist/services/bridge-turn-queue.d.ts +111 -0
- package/dist/services/bridge-turn-queue.d.ts.map +1 -0
- package/dist/services/bridge-turn-queue.js +213 -0
- package/dist/services/bridge-turn-queue.js.map +1 -0
- package/dist/services/claude-transcript.d.ts +168 -0
- package/dist/services/claude-transcript.d.ts.map +1 -0
- package/dist/services/claude-transcript.js +524 -0
- package/dist/services/claude-transcript.js.map +1 -0
- package/dist/services/schedule-store.d.ts +3 -0
- package/dist/services/schedule-store.d.ts.map +1 -1
- package/dist/services/schedule-store.js +6 -0
- package/dist/services/schedule-store.js.map +1 -1
- package/dist/services/session-store.d.ts +10 -0
- package/dist/services/session-store.d.ts.map +1 -1
- package/dist/services/session-store.js +40 -0
- package/dist/services/session-store.js.map +1 -1
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +2 -1
- package/dist/skills/definitions.js.map +1 -1
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/render-dimensions.d.ts +48 -0
- package/dist/utils/render-dimensions.d.ts.map +1 -0
- package/dist/utils/render-dimensions.js +55 -0
- package/dist/utils/render-dimensions.js.map +1 -0
- package/dist/utils/terminal-renderer.d.ts.map +1 -1
- package/dist/utils/terminal-renderer.js +5 -2
- package/dist/utils/terminal-renderer.js.map +1 -1
- package/dist/worker.js +1068 -37
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
package/dist/core/worker-pool.js
CHANGED
|
@@ -16,6 +16,7 @@ import { updateMessage, MessageWithdrawnError } from '../im/lark/client.js';
|
|
|
16
16
|
import { buildStreamingCard, buildSessionCard, buildTuiPromptCard, buildTuiPromptResolvedCard, getCliDisplayName } from '../im/lark/card-builder.js';
|
|
17
17
|
import { logger } from '../utils/logger.js';
|
|
18
18
|
import { createCliAdapterSync } from '../adapters/cli/registry.js';
|
|
19
|
+
import { claudeJsonlPathForSession } from '../adapters/cli/claude-code.js';
|
|
19
20
|
import { TmuxBackend } from '../adapters/backend/tmux-backend.js';
|
|
20
21
|
import { getBot, getAllBots } from '../bot-registry.js';
|
|
21
22
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -297,6 +298,7 @@ export function forkWorker(ds, prompt, resume = false) {
|
|
|
297
298
|
backendType: botCfg.backendType ?? config.daemon.backendType,
|
|
298
299
|
prompt,
|
|
299
300
|
resume,
|
|
301
|
+
cliSessionId: ds.session.cliSessionId,
|
|
300
302
|
ownerOpenId: ds.ownerOpenId,
|
|
301
303
|
webPort: ds.session.webPort,
|
|
302
304
|
larkAppId: botCfg.larkAppId,
|
|
@@ -320,9 +322,15 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
320
322
|
const t = tag(ds);
|
|
321
323
|
const bot = getBot(ds.larkAppId);
|
|
322
324
|
const botCfg = bot.config;
|
|
323
|
-
// Adopt mode flags — computed once, used in all buildStreamingCard calls
|
|
325
|
+
// Adopt mode flags — computed once, used in all buildStreamingCard calls.
|
|
326
|
+
// Bridge mode (the v3 default for /adopt) hides the legacy takeover
|
|
327
|
+
// button: the model never sees botmux, daemon harvests final output via
|
|
328
|
+
// the transcript watcher, and the old takeover path would SIGKILL the
|
|
329
|
+
// user's original CLI 1.5s after fork — incompatible with bridge intent.
|
|
330
|
+
// Explicit takeover will be re-introduced as `/adopt --takeover` in a
|
|
331
|
+
// follow-up patch with safe semantics (no implicit kill).
|
|
324
332
|
const isAdopt = !!ds.adoptedFrom;
|
|
325
|
-
const showTakeover =
|
|
333
|
+
const showTakeover = false;
|
|
326
334
|
worker.on('message', async (msg) => {
|
|
327
335
|
switch (msg.type) {
|
|
328
336
|
case 'ready': {
|
|
@@ -388,7 +396,7 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
388
396
|
persistStreamCardState(ds);
|
|
389
397
|
// Fallback: send static session card
|
|
390
398
|
try {
|
|
391
|
-
const cardJson = buildSessionCard(ds.session.sessionId, ds.session.rootMessageId, readOnlyUrl, ds.session.title || getCliDisplayName(botCfg.cliId), botCfg.cliId);
|
|
399
|
+
const cardJson = buildSessionCard(ds.session.sessionId, ds.session.rootMessageId, readOnlyUrl, ds.session.title || getCliDisplayName(botCfg.cliId), botCfg.cliId, undefined, !!ds.adoptedFrom);
|
|
392
400
|
await cb.sessionReply(ds.session.rootMessageId, cardJson, 'interactive', ds.larkAppId);
|
|
393
401
|
}
|
|
394
402
|
catch (fallbackErr) {
|
|
@@ -582,6 +590,49 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
582
590
|
}
|
|
583
591
|
break;
|
|
584
592
|
}
|
|
593
|
+
case 'final_output': {
|
|
594
|
+
// Adopt-bridge: worker harvested the assistant turn from Claude Code's
|
|
595
|
+
// transcript JSONL and forwarded it to us. Dedup by lastUuid so a
|
|
596
|
+
// re-drain after a noisy idle doesn't re-send the same answer.
|
|
597
|
+
if (!msg.content || !msg.content.trim())
|
|
598
|
+
break;
|
|
599
|
+
if (msg.lastUuid && ds.lastBridgeEmittedUuid === msg.lastUuid) {
|
|
600
|
+
logger.debug(`[${t}] final_output deduped (uuid ${msg.lastUuid.substring(0, 8)})`);
|
|
601
|
+
break;
|
|
602
|
+
}
|
|
603
|
+
// Worker pops the turn off its queue right after emit, so it will
|
|
604
|
+
// NOT re-send this payload on its own. Daemon owns retry on
|
|
605
|
+
// transient Lark failures.
|
|
606
|
+
deliverFinalOutput(ds, msg, t, 0);
|
|
607
|
+
break;
|
|
608
|
+
}
|
|
609
|
+
case 'adopt_preamble': {
|
|
610
|
+
// Adopt-bridge: surface the last completed user/assistant exchange
|
|
611
|
+
// from the adopted Claude session so the Lark thread has context
|
|
612
|
+
// to continue from. Best-effort — failure here just means the
|
|
613
|
+
// user won't see the preamble; adopt itself isn't blocked.
|
|
614
|
+
if (!ds.adoptedFrom) {
|
|
615
|
+
logger.warn(`[${t}] Ignored adopt_preamble from non-adopt worker`);
|
|
616
|
+
break;
|
|
617
|
+
}
|
|
618
|
+
const userBlock = msg.userText.trim();
|
|
619
|
+
const assistantBlock = msg.assistantText.trim();
|
|
620
|
+
if (!userBlock && !assistantBlock)
|
|
621
|
+
break;
|
|
622
|
+
const text = [
|
|
623
|
+
'📜 /adopt 前最后一轮',
|
|
624
|
+
'',
|
|
625
|
+
'👤 你:',
|
|
626
|
+
userBlock || '(空)',
|
|
627
|
+
'',
|
|
628
|
+
'🤖 Claude:',
|
|
629
|
+
assistantBlock || '(空)',
|
|
630
|
+
].join('\n');
|
|
631
|
+
cb.sessionReply(ds.session.rootMessageId, text, 'text', ds.larkAppId).catch((err) => {
|
|
632
|
+
logger.warn(`[${t}] Failed to deliver adopt_preamble to Lark: ${err.message}`);
|
|
633
|
+
});
|
|
634
|
+
break;
|
|
635
|
+
}
|
|
585
636
|
}
|
|
586
637
|
});
|
|
587
638
|
worker.on('exit', (code) => {
|
|
@@ -594,6 +645,52 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
594
645
|
}
|
|
595
646
|
});
|
|
596
647
|
}
|
|
648
|
+
// ─── Bridge final-output delivery (with retry) ──────────────────────────────
|
|
649
|
+
const FINAL_OUTPUT_RETRY_BACKOFF_MS = [0, 5000, 15000]; // immediate, +5s, +15s
|
|
650
|
+
/** Deliver a bridge `final_output` to Lark. The worker emits each turn
|
|
651
|
+
* exactly once (it pops the turn off its queue at emit time), so the
|
|
652
|
+
* daemon owns retries on transient failures. After 3 attempts we log
|
|
653
|
+
* and give up — the user's answer is lost; better than leaking memory
|
|
654
|
+
* via an unbounded retry loop. */
|
|
655
|
+
function deliverFinalOutput(ds, msg, t, attempt) {
|
|
656
|
+
const cb = requireCallbacks();
|
|
657
|
+
setTimeout(async () => {
|
|
658
|
+
// Guard: if the user closed the session (or it was torn down for any
|
|
659
|
+
// other reason) between attempts, don't post a stale final answer to
|
|
660
|
+
// a closed thread.
|
|
661
|
+
if (ds.session.status === 'closed') {
|
|
662
|
+
logger.info(`[${t}] Bridge final_output abandoned — session closed (turn ${msg.turnId.substring(0, 8)})`);
|
|
663
|
+
return;
|
|
664
|
+
}
|
|
665
|
+
try {
|
|
666
|
+
await cb.sessionReply(ds.session.rootMessageId, msg.content, 'text', ds.larkAppId);
|
|
667
|
+
ds.lastBridgeEmittedUuid = msg.lastUuid;
|
|
668
|
+
logger.info(`[${t}] Bridge final_output forwarded (turn ${msg.turnId.substring(0, 8)}, ${msg.content.length} chars, attempt ${attempt + 1})`);
|
|
669
|
+
}
|
|
670
|
+
catch (err) {
|
|
671
|
+
if (err instanceof MessageWithdrawnError) {
|
|
672
|
+
// Root message gone — no point retrying. Mark as emitted so any
|
|
673
|
+
// duplicate IPC is correctly deduped, and tear the session down.
|
|
674
|
+
ds.lastBridgeEmittedUuid = msg.lastUuid;
|
|
675
|
+
logger.warn(`[${t}] Root message withdrawn while forwarding final_output, closing session`);
|
|
676
|
+
cb.closeSession(ds);
|
|
677
|
+
return;
|
|
678
|
+
}
|
|
679
|
+
const next = attempt + 1;
|
|
680
|
+
if (next >= FINAL_OUTPUT_RETRY_BACKOFF_MS.length) {
|
|
681
|
+
logger.error(`[${t}] Bridge final_output gave up after ${next} attempts (turn ${msg.turnId.substring(0, 8)}): ${err.message}`);
|
|
682
|
+
// Don't commit the dedup marker — leave room for any future
|
|
683
|
+
// retransmit (e.g. daemon restart that re-fires the IPC).
|
|
684
|
+
return;
|
|
685
|
+
}
|
|
686
|
+
logger.warn(`[${t}] Bridge final_output attempt ${next} failed (${err.message}); retrying in ${FINAL_OUTPUT_RETRY_BACKOFF_MS[next]}ms`);
|
|
687
|
+
deliverFinalOutput(ds, msg, t, next);
|
|
688
|
+
}
|
|
689
|
+
}, FINAL_OUTPUT_RETRY_BACKOFF_MS[attempt] ?? 0);
|
|
690
|
+
}
|
|
691
|
+
/** Test-only alias so the retry pipeline can be exercised without a real
|
|
692
|
+
* fork. Intentionally underscored to discourage non-test callers. */
|
|
693
|
+
export const __testOnly_deliverFinalOutput = deliverFinalOutput;
|
|
597
694
|
// ─── Fork adopt worker ──────────────────────────────────────────────────────
|
|
598
695
|
export function forkAdoptWorker(ds) {
|
|
599
696
|
const cb = requireCallbacks();
|
|
@@ -646,13 +743,20 @@ export function forkAdoptWorker(ds) {
|
|
|
646
743
|
logger.error(`[${t}:worker] ${trimmed}`);
|
|
647
744
|
}
|
|
648
745
|
});
|
|
746
|
+
// Bridge mode is gated on (Claude Code adopt + sessionId). For other CLIs
|
|
747
|
+
// or sessions without a known CLI sessionId we fall back to the legacy
|
|
748
|
+
// shared-pane behaviour (screen capture only).
|
|
749
|
+
const adoptedCliId = adopted.cliId ?? 'claude-code';
|
|
750
|
+
const bridgeJsonlPath = adoptedCliId === 'claude-code' && adopted.sessionId
|
|
751
|
+
? claudeJsonlPathForSession(adopted.sessionId, adopted.cwd)
|
|
752
|
+
: undefined;
|
|
649
753
|
const initMsg = {
|
|
650
754
|
type: 'init',
|
|
651
755
|
sessionId: ds.session.sessionId,
|
|
652
756
|
chatId: ds.chatId,
|
|
653
757
|
rootMessageId: ds.session.rootMessageId,
|
|
654
758
|
workingDir: adopted.cwd,
|
|
655
|
-
cliId:
|
|
759
|
+
cliId: adoptedCliId,
|
|
656
760
|
backendType: 'tmux',
|
|
657
761
|
prompt: '',
|
|
658
762
|
resume: false,
|
|
@@ -666,6 +770,13 @@ export function forkAdoptWorker(ds) {
|
|
|
666
770
|
adoptTmuxTarget: adopted.tmuxTarget,
|
|
667
771
|
adoptPaneCols: adopted.paneCols,
|
|
668
772
|
adoptPaneRows: adopted.paneRows,
|
|
773
|
+
bridgeJsonlPath,
|
|
774
|
+
// Adopt PID + cwd let the worker re-resolve Claude's authoritative
|
|
775
|
+
// current sessionId via ~/.claude/sessions/<pid>.json on every poll —
|
|
776
|
+
// catches /clear / /resume rotations that the fingerprint-based
|
|
777
|
+
// fallback alone can miss when no Lark message has been sent yet.
|
|
778
|
+
adoptCliPid: adoptedCliId === 'claude-code' ? adopted.originalCliPid : undefined,
|
|
779
|
+
adoptCwd: adoptedCliId === 'claude-code' ? adopted.cwd : undefined,
|
|
669
780
|
};
|
|
670
781
|
worker.send(initMsg);
|
|
671
782
|
ds.initConfig = initMsg;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../../src/core/worker-pool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../../src/core/worker-pool.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAkBA,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAysBrD,wBAAsB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHlE"}
|
package/dist/daemon.js
CHANGED
|
@@ -6,11 +6,12 @@ import { fileURLToPath } from 'node:url';
|
|
|
6
6
|
const __filename = fileURLToPath(import.meta.url);
|
|
7
7
|
const __dirname = dirname(__filename);
|
|
8
8
|
import { config } from './config.js';
|
|
9
|
-
import { replyMessage, resolveAllowedUsers
|
|
9
|
+
import { replyMessage, resolveAllowedUsers } from './im/lark/client.js';
|
|
10
10
|
import { loadBotConfigs, registerBot, getBot, getAllBots, findOncallChat } from './bot-registry.js';
|
|
11
11
|
import * as sessionStore from './services/session-store.js';
|
|
12
12
|
import * as messageQueue from './services/message-queue.js';
|
|
13
|
-
import { parseEventMessage,
|
|
13
|
+
import { parseEventMessage, resolveNonsupportMessage, stripLeadingMentions } from './im/lark/message-parser.js';
|
|
14
|
+
import { expandMergeForward } from './im/lark/merge-forward.js';
|
|
14
15
|
import { logger } from './utils/logger.js';
|
|
15
16
|
import { ensureCjkFontsInstalled } from './utils/font-installer.js';
|
|
16
17
|
import { sessionKey } from './core/types.js';
|
|
@@ -20,12 +21,11 @@ import { buildRepoSelectCard, buildStreamingCard, getCliDisplayName } from './im
|
|
|
20
21
|
import { createCliAdapterSync } from './adapters/cli/registry.js';
|
|
21
22
|
import { initWorkerPool, forkWorker, killWorker, scheduleCardPatch, setCurrentCliVersion, CARD_POSTING_SENTINEL, } from './core/worker-pool.js';
|
|
22
23
|
import { saveFrozenCards } from './services/frozen-card-store.js';
|
|
23
|
-
import { DAEMON_COMMANDS, PASSTHROUGH_COMMANDS, handleCommand } from './core/command-handler.js';
|
|
24
|
+
import { DAEMON_COMMANDS, PASSTHROUGH_COMMANDS, handleCommand, parseSlashCommandInvocation } from './core/command-handler.js';
|
|
24
25
|
import { isCallbackUrl, handleCallbackUrl } from './utils/user-token.js';
|
|
25
|
-
import { getSessionWorkingDir, getProjectScanDirs, downloadResources, formatAttachmentsHint, buildNewTopicPrompt, buildFollowUpContent, getAvailableBots, restoreActiveSessions, executeScheduledTask, persistStreamCardState, } from './core/session-manager.js';
|
|
26
|
+
import { getSessionWorkingDir, getProjectScanDirs, downloadResources, formatAttachmentsHint, buildNewTopicPrompt, buildFollowUpContent, buildBridgeInputContent, getAvailableBots, restoreActiveSessions, executeScheduledTask, persistStreamCardState, } from './core/session-manager.js';
|
|
26
27
|
import { handleCardAction } from './im/lark/card-handler.js';
|
|
27
28
|
import { isBotMentioned, probeBotOpenId, startLarkEventDispatcher, writeBotInfoFile, canOperate } from './im/lark/event-dispatcher.js';
|
|
28
|
-
import { renderForwardedXml } from './im/lark/forwarded-renderer.js';
|
|
29
29
|
// ─── State ───────────────────────────────────────────────────────────────────
|
|
30
30
|
const activeSessions = new Map();
|
|
31
31
|
// Cache last /repo scan results per chat for /repo <number> fallback
|
|
@@ -164,99 +164,6 @@ const cardDeps = {
|
|
|
164
164
|
sessionReply,
|
|
165
165
|
lastRepoScan,
|
|
166
166
|
};
|
|
167
|
-
// ─── Merge-forward expansion ────────────────────────────────────────────────
|
|
168
|
-
/** Extract a useful one-liner from an AxiosError / generic error.
|
|
169
|
-
* Lark's SDK rethrows AxiosError whose default toString just says
|
|
170
|
-
* "Request failed with status code 400" — hiding the actual server reason. */
|
|
171
|
-
function describeAxiosErr(err) {
|
|
172
|
-
const detail = err?.response?.data ?? err?.message ?? String(err);
|
|
173
|
-
return typeof detail === 'string' ? detail : JSON.stringify(detail);
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Build a tree of ForwardedNode + collect attachment resources from a
|
|
177
|
-
* merge_forward message. Lark's im.v1.message.get returns ALL descendants
|
|
178
|
-
* in one shot via the `items` array, each with `upper_message_id` pointing
|
|
179
|
-
* to its parent — so we make exactly one API call per top-level expand and
|
|
180
|
-
* walk the tree purely in memory. Recursing per nested merge_forward via
|
|
181
|
-
* separate API calls fails (Lark 230002 "Bot/User can NOT be out of the chat")
|
|
182
|
-
* because the bot may be in the outer chat but not in the original chat the
|
|
183
|
-
* nested merge_forward came from. The single-call design sidesteps that.
|
|
184
|
-
*/
|
|
185
|
-
async function buildForwardedTree(larkAppId, rootMessageId, numberer, maxDepth) {
|
|
186
|
-
// user_card_content combined with merge_forward triggers HTTP 500 — keep
|
|
187
|
-
// it off. Sub-messages come back in the simplified "Format A" card shape
|
|
188
|
-
// which extractCardContent already handles.
|
|
189
|
-
const detail = await getMessageDetail(larkAppId, rootMessageId, { userCardContent: false });
|
|
190
|
-
const allItems = detail?.items ?? [];
|
|
191
|
-
const extraResources = [];
|
|
192
|
-
// Index children by upper_message_id for O(1) lookup during the walk.
|
|
193
|
-
const childrenByParent = new Map();
|
|
194
|
-
for (const msg of allItems) {
|
|
195
|
-
const parent = msg.upper_message_id ?? '';
|
|
196
|
-
if (!parent)
|
|
197
|
-
continue;
|
|
198
|
-
const list = childrenByParent.get(parent) ?? [];
|
|
199
|
-
list.push(msg);
|
|
200
|
-
childrenByParent.set(parent, list);
|
|
201
|
-
}
|
|
202
|
-
function walk(parentId, depth) {
|
|
203
|
-
const children = childrenByParent.get(parentId) ?? [];
|
|
204
|
-
const nodes = [];
|
|
205
|
-
for (const msg of children) {
|
|
206
|
-
const senderType = msg.sender?.sender_type === 'app' ? 'app'
|
|
207
|
-
: msg.sender?.sender_type === 'user' ? 'user'
|
|
208
|
-
: 'unknown';
|
|
209
|
-
const senderOpenId = msg.sender?.id ?? '';
|
|
210
|
-
// Interactive sub-messages arrive via REST as a simplified fallback.
|
|
211
|
-
// Lark's im.message.get never returns user_dsl (even for the bot's own
|
|
212
|
-
// messages), so we can only unwrap when a user_dsl somehow got through.
|
|
213
|
-
// For third-party cards whose simplified form is the "请升级至最新版本"
|
|
214
|
-
// fallback, the real body is unrecoverable from REST.
|
|
215
|
-
if (msg.msg_type === 'interactive') {
|
|
216
|
-
const unwrapped = unwrapUserDslContent(msg.body?.content ?? '');
|
|
217
|
-
if (unwrapped !== null) {
|
|
218
|
-
msg.body = { ...(msg.body ?? {}), content: unwrapped };
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
// Resources first so the numberer assigns [图片 N] in attachment order;
|
|
222
|
-
// text extraction below reuses those numbers. Do NOT override messageId —
|
|
223
|
-
// Lark requires the parent merge_forward's message_id to download
|
|
224
|
-
// resources (error 234003 if sub-message ID is used).
|
|
225
|
-
const subResources = extractResources(msg.msg_type ?? 'text', msg.body?.content ?? '', numberer);
|
|
226
|
-
extraResources.push(...subResources);
|
|
227
|
-
if (msg.msg_type === 'merge_forward' && depth < maxDepth) {
|
|
228
|
-
const inner = walk(msg.message_id, depth + 1);
|
|
229
|
-
nodes.push({ senderOpenId, senderType, children: inner });
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
const sub = parseApiMessage(msg, numberer);
|
|
233
|
-
nodes.push({ senderOpenId, senderType, content: sub.content });
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
return nodes;
|
|
237
|
-
}
|
|
238
|
-
return { nodes: walk(rootMessageId, 0), extraResources };
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Expand a merge_forward message by fetching sub-messages via Lark API.
|
|
242
|
-
* Replaces parsed.content with an XML-rendered forward tree (deduplicated
|
|
243
|
-
* participants, alias-referenced messages) and collects additional resources.
|
|
244
|
-
*/
|
|
245
|
-
async function expandMergeForward(larkAppId, messageId, parsed, numberer = createImgNumberer()) {
|
|
246
|
-
const MAX_DEPTH = 5;
|
|
247
|
-
try {
|
|
248
|
-
const { nodes, extraResources } = await buildForwardedTree(larkAppId, messageId, numberer, MAX_DEPTH);
|
|
249
|
-
if (nodes.length === 0)
|
|
250
|
-
return { extraResources };
|
|
251
|
-
parsed.content = renderForwardedXml(nodes);
|
|
252
|
-
parsed.msgType = 'merge_forward_expanded';
|
|
253
|
-
return { extraResources };
|
|
254
|
-
}
|
|
255
|
-
catch (err) {
|
|
256
|
-
logger.warn(`Failed to expand merge_forward ${messageId}: ${describeAxiosErr(err)}`);
|
|
257
|
-
return { extraResources: [] };
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
167
|
// ─── Event handling ──────────────────────────────────────────────────────────
|
|
261
168
|
async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkAppId) {
|
|
262
169
|
await resolveNonsupportMessage(data, larkAppId);
|
|
@@ -273,8 +180,9 @@ async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkA
|
|
|
273
180
|
const botCfg = getBot(larkAppId).config;
|
|
274
181
|
logger.info(`New topic: "${content.substring(0, 60)}" (resources: ${resources.length}, active: ${getActiveCount()}, messageId: ${messageId}, chatId: ${chatId}`);
|
|
275
182
|
// Intercept daemon commands in new topics (no session needed for some commands)
|
|
276
|
-
|
|
277
|
-
|
|
183
|
+
const invocation = parseSlashCommandInvocation(cmdContent);
|
|
184
|
+
if (invocation) {
|
|
185
|
+
const { cmd, content: commandContent } = invocation;
|
|
278
186
|
if (PASSTHROUGH_COMMANDS.has(cmd)) {
|
|
279
187
|
await sessionReply(messageId, `${cmd} 需要在已有会话内使用(先发一条普通消息启动 CLI)。`, 'text', larkAppId);
|
|
280
188
|
return;
|
|
@@ -306,7 +214,7 @@ async function handleNewTopic(data, chatId, messageId, chatType = 'group', larkA
|
|
|
306
214
|
ownerOpenId: senderOpenId,
|
|
307
215
|
});
|
|
308
216
|
// Pass mention-stripped content so /command argument parsing works.
|
|
309
|
-
await handleCommand(cmd, messageId, { ...parsed, content:
|
|
217
|
+
await handleCommand(cmd, messageId, { ...parsed, content: commandContent }, commandDeps, larkAppId);
|
|
310
218
|
return;
|
|
311
219
|
}
|
|
312
220
|
}
|
|
@@ -404,12 +312,13 @@ async function handleThreadReply(data, rootId, larkAppId) {
|
|
|
404
312
|
}
|
|
405
313
|
}
|
|
406
314
|
// Intercept daemon commands
|
|
407
|
-
|
|
408
|
-
|
|
315
|
+
const invocation = parseSlashCommandInvocation(cmdContent);
|
|
316
|
+
if (invocation) {
|
|
317
|
+
const { cmd, content: commandContent } = invocation;
|
|
409
318
|
if (PASSTHROUGH_COMMANDS.has(cmd)) {
|
|
410
319
|
const ds = activeSessions.get(sessionKey(rootId, larkAppId));
|
|
411
320
|
if (ds?.worker && !ds.worker.killed) {
|
|
412
|
-
ds.worker.send({ type: 'raw_input', content:
|
|
321
|
+
ds.worker.send({ type: 'raw_input', content: commandContent });
|
|
413
322
|
ds.lastMessageAt = Date.now();
|
|
414
323
|
logger.info(`[${rootId.substring(0, 12)}] Passthrough ${cmd} → worker`);
|
|
415
324
|
}
|
|
@@ -428,7 +337,7 @@ async function handleThreadReply(data, rootId, larkAppId) {
|
|
|
428
337
|
return;
|
|
429
338
|
}
|
|
430
339
|
// Pass mention-stripped content so /command argument parsing works.
|
|
431
|
-
handleCommand(cmd, rootId, { ...parsed, content:
|
|
340
|
+
handleCommand(cmd, rootId, { ...parsed, content: commandContent }, commandDeps, larkAppId);
|
|
432
341
|
return;
|
|
433
342
|
}
|
|
434
343
|
}
|
|
@@ -506,6 +415,19 @@ async function handleThreadReply(data, rootId, larkAppId) {
|
|
|
506
415
|
// Oncall group: pin working dir from binding, skip repo selection entirely
|
|
507
416
|
// (mirrors handleNewTopic — auto-create was missing this check).
|
|
508
417
|
const oncallEntry = findOncallChat(larkAppId, chatId);
|
|
418
|
+
// Cross-bot inheritance: when another bot already pinned a working dir for
|
|
419
|
+
// this thread (typical: Bot A is mid-task and @mentions Bot B for review),
|
|
420
|
+
// inherit it so we can spawn immediately with the @-content as the prompt
|
|
421
|
+
// — same shape as a human-initiated start, no repo selection round-trip.
|
|
422
|
+
let inheritedFrom = null;
|
|
423
|
+
if (!oncallEntry) {
|
|
424
|
+
const peers = sessionStore.findActiveSessionsByRoot(rootId);
|
|
425
|
+
const peer = peers.find(p => p.larkAppId !== larkAppId && !!p.workingDir);
|
|
426
|
+
if (peer && peer.workingDir) {
|
|
427
|
+
inheritedFrom = { sessionId: peer.sessionId, larkAppId: peer.larkAppId, workingDir: peer.workingDir };
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
const pinnedWorkingDir = oncallEntry?.workingDir ?? inheritedFrom?.workingDir;
|
|
509
431
|
const newDs = {
|
|
510
432
|
session,
|
|
511
433
|
worker: null,
|
|
@@ -518,25 +440,29 @@ async function handleThreadReply(data, rootId, larkAppId) {
|
|
|
518
440
|
cliVersion: cliVersionCache.get(botCfg.cliId)?.version ?? 'unknown',
|
|
519
441
|
lastMessageAt: Date.now(),
|
|
520
442
|
hasHistory: false,
|
|
521
|
-
pendingRepo: !
|
|
443
|
+
pendingRepo: !pinnedWorkingDir,
|
|
522
444
|
pendingPrompt: parsed.content,
|
|
523
445
|
pendingAttachments: attachments.length > 0 ? attachments : undefined,
|
|
524
446
|
pendingMentions: parsed.mentions,
|
|
525
447
|
ownerOpenId: senderOId,
|
|
526
448
|
currentTurnTitle: parsed.content.substring(0, 50),
|
|
527
|
-
workingDir:
|
|
449
|
+
workingDir: pinnedWorkingDir,
|
|
528
450
|
};
|
|
529
|
-
if (
|
|
530
|
-
newDs.session.workingDir =
|
|
451
|
+
if (pinnedWorkingDir) {
|
|
452
|
+
newDs.session.workingDir = pinnedWorkingDir;
|
|
531
453
|
sessionStore.updateSession(newDs.session);
|
|
532
454
|
}
|
|
533
455
|
activeSessions.set(sessionKey(rootId, larkAppId), newDs);
|
|
534
|
-
//
|
|
535
|
-
|
|
456
|
+
// Pinned (oncall binding or inherited from peer bot in same thread):
|
|
457
|
+
// spawn CLI immediately, skip repo selection.
|
|
458
|
+
if (pinnedWorkingDir) {
|
|
536
459
|
const selfBot = getBot(larkAppId);
|
|
537
460
|
const prompt = buildNewTopicPrompt(parsed.content, session.sessionId, botCfg.cliId, botCfg.cliPathOverride, attachments, parsed.mentions, await getAvailableBots(larkAppId, chatId), undefined, { name: selfBot.botName, openId: selfBot.botOpenId });
|
|
538
461
|
forkWorker(newDs, prompt);
|
|
539
|
-
|
|
462
|
+
const reason = oncallEntry
|
|
463
|
+
? `oncall-bound chat ${chatId}`
|
|
464
|
+
: `inherited from peer session ${inheritedFrom.sessionId.substring(0, 8)} (app=${inheritedFrom.larkAppId ?? 'unknown'})`;
|
|
465
|
+
logger.info(`[${tag(newDs)}] ${reason} → workingDir=${pinnedWorkingDir}, skipped repo select`);
|
|
540
466
|
return;
|
|
541
467
|
}
|
|
542
468
|
// Show repo selection card (same as handleNewTopic)
|
|
@@ -564,20 +490,33 @@ async function handleThreadReply(data, rootId, larkAppId) {
|
|
|
564
490
|
// Send message to worker via IPC
|
|
565
491
|
if (ds.worker && !ds.worker.killed) {
|
|
566
492
|
const dsBotCfgForMsg = getBot(ds.larkAppId).config;
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
493
|
+
// Bridge mode: adopted Claude Code session with a known sessionId — model
|
|
494
|
+
// sees the user's message as plain input, daemon harvests the assistant
|
|
495
|
+
// reply from the transcript out-of-band. No botmux_reminder / session_id
|
|
496
|
+
// injection here, otherwise the model would try to use botmux tools that
|
|
497
|
+
// it isn't actually equipped with in bridge mode.
|
|
498
|
+
const isBridge = !!ds.adoptedFrom &&
|
|
499
|
+
dsBotCfgForMsg.cliId === 'claude-code' &&
|
|
500
|
+
!!ds.adoptedFrom.sessionId;
|
|
501
|
+
const msgContent = isBridge
|
|
502
|
+
? buildBridgeInputContent(parsed.content, {
|
|
503
|
+
attachments,
|
|
504
|
+
mentions: parsed.mentions,
|
|
505
|
+
})
|
|
506
|
+
: buildFollowUpContent(parsed.content, ds.session.sessionId, {
|
|
507
|
+
attachments,
|
|
508
|
+
mentions: parsed.mentions,
|
|
509
|
+
isAdoptMode: !!ds.adoptedFrom,
|
|
510
|
+
cliId: dsBotCfgForMsg.cliId,
|
|
511
|
+
cliPathOverride: dsBotCfgForMsg.cliPathOverride,
|
|
512
|
+
});
|
|
574
513
|
// Freeze the previous turn's card at "idle" before starting a new turn
|
|
575
514
|
if (ds.streamCardId && ds.workerPort) {
|
|
576
515
|
const readUrl = `http://${config.web.externalHost}:${ds.workerPort}`;
|
|
577
516
|
const dsBotCfg = getBot(ds.larkAppId).config;
|
|
578
517
|
const prevTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(dsBotCfg.cliId);
|
|
579
518
|
const prevMode = ds.displayMode ?? 'hidden';
|
|
580
|
-
const frozenCard = buildStreamingCard(ds.session.sessionId, ds.session.rootMessageId, readUrl, prevTitle, ds.lastScreenContent ?? '', 'idle', dsBotCfg.cliId, prevMode, ds.streamCardNonce, ds.currentImageKey);
|
|
519
|
+
const frozenCard = buildStreamingCard(ds.session.sessionId, ds.session.rootMessageId, readUrl, prevTitle, ds.lastScreenContent ?? '', 'idle', dsBotCfg.cliId, prevMode, ds.streamCardNonce, ds.currentImageKey, !!ds.adoptedFrom, false);
|
|
581
520
|
// Freeze through the serialization queue to avoid racing with an in-flight PATCH.
|
|
582
521
|
// scheduleCardPatch replaces any stale pending item (latest-wins).
|
|
583
522
|
scheduleCardPatch(ds, frozenCard);
|