botmux 2.13.2 → 2.14.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/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +10 -4
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +65 -3
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/dashboard-rows.d.ts.map +1 -1
- package/dist/core/dashboard-rows.js +6 -1
- package/dist/core/dashboard-rows.js.map +1 -1
- package/dist/core/scheduler.d.ts +1 -0
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +1 -0
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +90 -52
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/types.d.ts +18 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +14 -3
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +22 -22
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +131 -80
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/operator-selector.d.ts +17 -0
- package/dist/dashboard/operator-selector.d.ts.map +1 -0
- package/dist/dashboard/operator-selector.js +37 -0
- package/dist/dashboard/operator-selector.js.map +1 -0
- package/dist/dashboard/web/groups.d.ts.map +1 -1
- package/dist/dashboard/web/groups.js +61 -7
- package/dist/dashboard/web/groups.js.map +1 -1
- package/dist/dashboard-web/app.js +60 -53
- package/dist/dashboard-web/style.css +10 -1
- package/dist/dashboard.js +119 -34
- package/dist/dashboard.js.map +1 -1
- package/dist/im/lark/card-handler.js +8 -8
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts +20 -0
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +65 -8
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +39 -4
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +84 -49
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/services/groups-store.d.ts +22 -0
- package/dist/services/groups-store.d.ts.map +1 -1
- package/dist/services/groups-store.js +39 -1
- package/dist/services/groups-store.js.map +1 -1
- package/dist/services/schedule-store.d.ts +1 -0
- package/dist/services/schedule-store.d.ts.map +1 -1
- package/dist/services/schedule-store.js +1 -0
- package/dist/services/schedule-store.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ import { createCliAdapterSync } from '../adapters/cli/registry.js';
|
|
|
10
10
|
import { TmuxBackend } from '../adapters/backend/tmux-backend.js';
|
|
11
11
|
import { getBot, getAllBots } from '../bot-registry.js';
|
|
12
12
|
import { validateAdoptTarget } from './session-discovery.js';
|
|
13
|
-
import { sessionKey } from './types.js';
|
|
13
|
+
import { sessionKey, sessionAnchorId } from './types.js';
|
|
14
14
|
// ─── Path helpers ────────────────────────────────────────────────────────────
|
|
15
15
|
export function expandHome(p) {
|
|
16
16
|
return p.startsWith('~') ? join(homedir(), p.slice(1)) : p;
|
|
@@ -288,6 +288,9 @@ export function restoreActiveSessions(activeSessions) {
|
|
|
288
288
|
killStalePids(active);
|
|
289
289
|
logger.info(`Registering ${active.length} active session(s) (no CLI spawn until new messages arrive)...`);
|
|
290
290
|
for (const session of active) {
|
|
291
|
+
// Restored sessions persisted before the scope field was added default to
|
|
292
|
+
// 'thread' — that matches the legacy thread-only behaviour.
|
|
293
|
+
const scope = session.scope === 'chat' ? 'chat' : 'thread';
|
|
291
294
|
// Adopt sessions: restore if original CLI is still alive, otherwise close
|
|
292
295
|
if (session.title?.startsWith('Adopt:') && session.adoptedFrom) {
|
|
293
296
|
const adopted = session.adoptedFrom;
|
|
@@ -297,7 +300,6 @@ export function restoreActiveSessions(activeSessions) {
|
|
|
297
300
|
continue;
|
|
298
301
|
}
|
|
299
302
|
// Original CLI still alive — re-register and fork adopt worker
|
|
300
|
-
messageQueue.ensureQueue(session.rootMessageId);
|
|
301
303
|
const larkAppId = session.larkAppId ?? getAllBots()[0]?.config.larkAppId ?? '';
|
|
302
304
|
const ds = {
|
|
303
305
|
session,
|
|
@@ -307,6 +309,7 @@ export function restoreActiveSessions(activeSessions) {
|
|
|
307
309
|
larkAppId,
|
|
308
310
|
chatId: session.chatId,
|
|
309
311
|
chatType: session.chatType ?? 'group',
|
|
312
|
+
scope,
|
|
310
313
|
spawnedAt: Date.now(),
|
|
311
314
|
cliVersion: getCurrentCliVersion(),
|
|
312
315
|
lastMessageAt: Date.now(),
|
|
@@ -321,9 +324,11 @@ export function restoreActiveSessions(activeSessions) {
|
|
|
321
324
|
currentImageKey: session.currentImageKey,
|
|
322
325
|
currentTurnTitle: session.currentTurnTitle,
|
|
323
326
|
};
|
|
324
|
-
|
|
327
|
+
const anchor = sessionAnchorId(ds);
|
|
328
|
+
messageQueue.ensureQueue(anchor);
|
|
329
|
+
activeSessions.set(sessionKey(anchor, larkAppId), ds);
|
|
325
330
|
forkAdoptWorker(ds, { restoredFromMetadata: true });
|
|
326
|
-
logger.info(`[${session.sessionId.substring(0, 8)}] Restored adopt session (target: ${adopted.tmuxTarget})`);
|
|
331
|
+
logger.info(`[${session.sessionId.substring(0, 8)}] Restored adopt session (target: ${adopted.tmuxTarget}, scope: ${scope})`);
|
|
327
332
|
continue;
|
|
328
333
|
}
|
|
329
334
|
// Adopt sessions without persisted metadata — close (legacy)
|
|
@@ -332,9 +337,8 @@ export function restoreActiveSessions(activeSessions) {
|
|
|
332
337
|
sessionStore.closeSession(session.sessionId);
|
|
333
338
|
continue;
|
|
334
339
|
}
|
|
335
|
-
messageQueue.ensureQueue(session.rootMessageId);
|
|
336
340
|
const larkAppId = session.larkAppId ?? getAllBots()[0]?.config.larkAppId ?? '';
|
|
337
|
-
|
|
341
|
+
const ds = {
|
|
338
342
|
session,
|
|
339
343
|
worker: null,
|
|
340
344
|
workerPort: null,
|
|
@@ -342,6 +346,7 @@ export function restoreActiveSessions(activeSessions) {
|
|
|
342
346
|
larkAppId,
|
|
343
347
|
chatId: session.chatId,
|
|
344
348
|
chatType: session.chatType ?? 'group',
|
|
349
|
+
scope,
|
|
345
350
|
spawnedAt: Date.now(),
|
|
346
351
|
cliVersion: getCurrentCliVersion(),
|
|
347
352
|
lastMessageAt: Date.now(),
|
|
@@ -357,8 +362,11 @@ export function restoreActiveSessions(activeSessions) {
|
|
|
357
362
|
displayMode: session.displayMode ?? (session.streamExpanded ? 'screenshot' : 'hidden'),
|
|
358
363
|
currentImageKey: session.currentImageKey,
|
|
359
364
|
currentTurnTitle: session.currentTurnTitle,
|
|
360
|
-
}
|
|
361
|
-
|
|
365
|
+
};
|
|
366
|
+
const anchor = sessionAnchorId(ds);
|
|
367
|
+
messageQueue.ensureQueue(anchor);
|
|
368
|
+
activeSessions.set(sessionKey(anchor, larkAppId), ds);
|
|
369
|
+
logger.debug(`Registered session ${session.sessionId} (scope: ${scope}, anchor: ${anchor})`);
|
|
362
370
|
}
|
|
363
371
|
// Tmux mode: auto-fork workers for sessions with surviving tmux sessions
|
|
364
372
|
if (config.daemon.backendType === 'tmux') {
|
|
@@ -385,54 +393,81 @@ export async function executeScheduledTask(task, activeSessions, refreshCliVersi
|
|
|
385
393
|
allBots[0];
|
|
386
394
|
const larkAppId = bot.config.larkAppId;
|
|
387
395
|
const { sendMessage, replyMessage } = await import('../im/lark/client.js');
|
|
396
|
+
// Scope resolution — explicit task.scope wins; otherwise fall back to legacy
|
|
397
|
+
// semantics (rootMessageId present → thread, absent → chat). Restoring an
|
|
398
|
+
// older schedule without scope keeps current behaviour.
|
|
399
|
+
const scope = task.scope === 'chat'
|
|
400
|
+
? 'chat'
|
|
401
|
+
: task.scope === 'thread'
|
|
402
|
+
? 'thread'
|
|
403
|
+
: (task.rootMessageId ? 'thread' : 'chat');
|
|
388
404
|
// Decide where to route the "🕐 task started" notification and where the
|
|
389
405
|
// session conversation lands.
|
|
390
406
|
//
|
|
391
|
-
//
|
|
392
|
-
// (
|
|
393
|
-
//
|
|
394
|
-
//
|
|
395
|
-
//
|
|
396
|
-
//
|
|
397
|
-
//
|
|
407
|
+
// Thread-scope (legacy and current default):
|
|
408
|
+
// - cross-thread (creator != target): notify creator's thread; deliver
|
|
409
|
+
// execution into target rootMessageId
|
|
410
|
+
// - same-thread: notify into the bound thread,
|
|
411
|
+
// which doubles as the session anchor
|
|
412
|
+
// - missing rootMessageId: fall back to a fresh top-level
|
|
413
|
+
// post in the chat (one-shot session)
|
|
398
414
|
//
|
|
399
|
-
//
|
|
400
|
-
|
|
415
|
+
// Chat-scope (auto-adopt / 普通群): post the start notification straight to
|
|
416
|
+
// the chat without reply_in_thread; the chat IS the session anchor.
|
|
417
|
+
let anchor;
|
|
401
418
|
let isContinuation = false;
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
});
|
|
411
|
-
// Bind execution to the target thread without posting a start message there
|
|
412
|
-
threadRootId = task.rootMessageId;
|
|
413
|
-
isContinuation = true;
|
|
414
|
-
}
|
|
415
|
-
else if (task.rootMessageId) {
|
|
416
|
-
try {
|
|
417
|
-
// Reply in the original thread — the returned reply message id is just an
|
|
418
|
-
// anchor for this run; the thread's root remains task.rootMessageId, which
|
|
419
|
-
// is what the session/card system keys off.
|
|
420
|
-
await replyMessage(larkAppId, task.rootMessageId, `🕐 定时任务「${task.name}」开始执行`, 'text', true);
|
|
421
|
-
threadRootId = task.rootMessageId;
|
|
422
|
-
isContinuation = true;
|
|
419
|
+
if (scope === 'chat') {
|
|
420
|
+
// Cross-target chat-scope (rare): a creator-thread notification + a fresh
|
|
421
|
+
// chat post in target. We use task.chatId as the runtime anchor.
|
|
422
|
+
if (task.creatorRootMessageId && task.creatorChatId !== task.chatId) {
|
|
423
|
+
const creatorAppId = task.creatorLarkAppId ?? larkAppId;
|
|
424
|
+
replyMessage(creatorAppId, task.creatorRootMessageId, `🕐 定时任务「${task.name}」已在目标群聊触发`, 'text', true).catch((err) => {
|
|
425
|
+
logger.warn(`[scheduler] Failed to notify creator thread ${task.creatorRootMessageId} (${err.message})`);
|
|
426
|
+
});
|
|
423
427
|
}
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
428
|
+
else {
|
|
429
|
+
// Same-chat: post the start banner to the chat as a plain message.
|
|
430
|
+
try {
|
|
431
|
+
await sendMessage(larkAppId, task.chatId, `🕐 定时任务「${task.name}」开始执行`);
|
|
432
|
+
}
|
|
433
|
+
catch (err) {
|
|
434
|
+
logger.warn(`[scheduler] Failed to post start banner in chat ${task.chatId} (${err.message})`);
|
|
435
|
+
}
|
|
427
436
|
}
|
|
437
|
+
anchor = task.chatId;
|
|
438
|
+
isContinuation = !!activeSessions.get(sessionKey(anchor, larkAppId));
|
|
428
439
|
}
|
|
429
440
|
else {
|
|
430
|
-
|
|
441
|
+
// thread-scope path (existing logic)
|
|
442
|
+
const isCrossThread = !!task.creatorRootMessageId &&
|
|
443
|
+
!!task.rootMessageId &&
|
|
444
|
+
task.creatorRootMessageId !== task.rootMessageId;
|
|
445
|
+
if (isCrossThread) {
|
|
446
|
+
const creatorAppId = task.creatorLarkAppId ?? larkAppId;
|
|
447
|
+
replyMessage(creatorAppId, task.creatorRootMessageId, `🕐 定时任务「${task.name}」已在目标话题触发`, 'text', true).catch((err) => {
|
|
448
|
+
logger.warn(`[scheduler] Failed to notify creator thread ${task.creatorRootMessageId} (${err.message})`);
|
|
449
|
+
});
|
|
450
|
+
anchor = task.rootMessageId;
|
|
451
|
+
isContinuation = true;
|
|
452
|
+
}
|
|
453
|
+
else if (task.rootMessageId) {
|
|
454
|
+
try {
|
|
455
|
+
await replyMessage(larkAppId, task.rootMessageId, `🕐 定时任务「${task.name}」开始执行`, 'text', true);
|
|
456
|
+
anchor = task.rootMessageId;
|
|
457
|
+
isContinuation = true;
|
|
458
|
+
}
|
|
459
|
+
catch (err) {
|
|
460
|
+
logger.warn(`[scheduler] Failed to reply in original thread ${task.rootMessageId} (${err.message}); falling back to new thread`);
|
|
461
|
+
anchor = await sendMessage(larkAppId, task.chatId, `🕐 定时任务「${task.name}」开始执行`);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
anchor = await sendMessage(larkAppId, task.chatId, `🕐 定时任务「${task.name}」开始执行`);
|
|
466
|
+
}
|
|
431
467
|
}
|
|
432
468
|
refreshCliVersion(bot.config.cliId, bot.config.cliPathOverride);
|
|
433
|
-
//
|
|
434
|
-
|
|
435
|
-
const existing = activeSessions.get(sessionKey(threadRootId, larkAppId));
|
|
469
|
+
// Inject into a live session if one already exists at this anchor.
|
|
470
|
+
const existing = activeSessions.get(sessionKey(anchor, larkAppId));
|
|
436
471
|
if (isContinuation && existing?.worker && !existing.worker.killed) {
|
|
437
472
|
existing.lastMessageAt = Date.now();
|
|
438
473
|
try {
|
|
@@ -444,12 +479,14 @@ export async function executeScheduledTask(task, activeSessions, refreshCliVersi
|
|
|
444
479
|
logger.warn(`[scheduler] Failed to inject into live session (${err.message}); spawning fresh worker`);
|
|
445
480
|
}
|
|
446
481
|
}
|
|
447
|
-
//
|
|
448
|
-
//
|
|
449
|
-
|
|
482
|
+
// Spawn a fresh session bound to the chosen anchor.
|
|
483
|
+
// Thread-scope: rootMessageId = anchor. Chat-scope: rootMessageId stores the
|
|
484
|
+
// chatId-as-seed for audit (sessionAnchorId() returns chatId via scope).
|
|
485
|
+
const session = sessionStore.createSession(task.chatId, anchor, `[定时] ${task.name}`);
|
|
450
486
|
session.larkAppId = larkAppId;
|
|
487
|
+
session.scope = scope;
|
|
451
488
|
sessionStore.updateSession(session);
|
|
452
|
-
messageQueue.ensureQueue(
|
|
489
|
+
messageQueue.ensureQueue(anchor);
|
|
453
490
|
const prompt = buildNewTopicPrompt(task.prompt, session.sessionId, bot.config.cliId, bot.config.cliPathOverride, undefined, undefined, undefined, undefined, { name: bot.botName, openId: bot.botOpenId });
|
|
454
491
|
const ds = {
|
|
455
492
|
session,
|
|
@@ -459,14 +496,15 @@ export async function executeScheduledTask(task, activeSessions, refreshCliVersi
|
|
|
459
496
|
larkAppId,
|
|
460
497
|
chatId: task.chatId,
|
|
461
498
|
chatType: task.chatType === 'p2p' ? 'p2p' : 'group',
|
|
499
|
+
scope,
|
|
462
500
|
spawnedAt: Date.now(),
|
|
463
501
|
cliVersion: getCurrentCliVersion(),
|
|
464
502
|
lastMessageAt: Date.now(),
|
|
465
|
-
hasHistory: isContinuation,
|
|
503
|
+
hasHistory: isContinuation,
|
|
466
504
|
workingDir: task.workingDir,
|
|
467
505
|
};
|
|
468
|
-
activeSessions.set(sessionKey(
|
|
506
|
+
activeSessions.set(sessionKey(anchor, larkAppId), ds);
|
|
469
507
|
forkWorker(ds, prompt);
|
|
470
|
-
logger.info(`[scheduler] Task "${task.name}" spawned (session: ${session.sessionId},
|
|
508
|
+
logger.info(`[scheduler] Task "${task.name}" spawned (session: ${session.sessionId}, scope: ${scope}, anchor: ${anchor}, continuation: ${isContinuation})`);
|
|
471
509
|
}
|
|
472
510
|
//# sourceMappingURL=session-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/core/session-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/core/session-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -28,6 +28,13 @@ export interface DaemonSession {
|
|
|
28
28
|
larkAppId: string;
|
|
29
29
|
chatId: string;
|
|
30
30
|
chatType: 'group' | 'p2p';
|
|
31
|
+
/** Routing scope:
|
|
32
|
+
* 'thread' → routing key = session.rootMessageId, replies use reply_in_thread=true
|
|
33
|
+
* 'chat' → routing key = chatId, replies are plain chat messages
|
|
34
|
+
* Must be set explicitly at session creation (no implicit default — every
|
|
35
|
+
* caller decides based on event context). Restored sessions without a
|
|
36
|
+
* persisted scope fall back to 'thread' in the restore path. */
|
|
37
|
+
scope: 'thread' | 'chat';
|
|
31
38
|
spawnedAt: number;
|
|
32
39
|
cliVersion: string;
|
|
33
40
|
lastMessageAt: number;
|
|
@@ -87,6 +94,15 @@ export interface DaemonSession {
|
|
|
87
94
|
paneRows?: number;
|
|
88
95
|
};
|
|
89
96
|
}
|
|
90
|
-
/** Composite key for activeSessions — allows multiple bots to have independent
|
|
91
|
-
|
|
97
|
+
/** Composite key for activeSessions — allows multiple bots to have independent
|
|
98
|
+
* sessions anchored on the same id. The first arg is the **routing anchor**:
|
|
99
|
+
* - thread-scope → rootMessageId
|
|
100
|
+
* - chat-scope → chatId
|
|
101
|
+
* Lark message ids start with `om_` and chat ids with `oc_`, so collisions
|
|
102
|
+
* between the two address spaces are not possible. */
|
|
103
|
+
export declare function sessionKey(anchorId: string, larkAppId: string): string;
|
|
104
|
+
/** Resolve the routing anchor for an active session — chatId for chat-scope
|
|
105
|
+
* sessions, rootMessageId for thread-scope. Used to compute `sessionKey()` at
|
|
106
|
+
* storage and lookup time. */
|
|
107
|
+
export declare function sessionAnchorId(ds: DaemonSession): string;
|
|
92
108
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.js
CHANGED
|
@@ -6,8 +6,19 @@ export function frozenDisplayMode(fc) {
|
|
|
6
6
|
return fc.displayMode;
|
|
7
7
|
return fc.expanded ? 'screenshot' : 'hidden';
|
|
8
8
|
}
|
|
9
|
-
/** Composite key for activeSessions — allows multiple bots to have independent
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
/** Composite key for activeSessions — allows multiple bots to have independent
|
|
10
|
+
* sessions anchored on the same id. The first arg is the **routing anchor**:
|
|
11
|
+
* - thread-scope → rootMessageId
|
|
12
|
+
* - chat-scope → chatId
|
|
13
|
+
* Lark message ids start with `om_` and chat ids with `oc_`, so collisions
|
|
14
|
+
* between the two address spaces are not possible. */
|
|
15
|
+
export function sessionKey(anchorId, larkAppId) {
|
|
16
|
+
return `${anchorId}::${larkAppId}`;
|
|
17
|
+
}
|
|
18
|
+
/** Resolve the routing anchor for an active session — chatId for chat-scope
|
|
19
|
+
* sessions, rootMessageId for thread-scope. Used to compute `sessionKey()` at
|
|
20
|
+
* storage and lookup time. */
|
|
21
|
+
export function sessionAnchorId(ds) {
|
|
22
|
+
return ds.scope === 'chat' ? ds.chatId : ds.session.rootMessageId;
|
|
12
23
|
}
|
|
13
24
|
//# sourceMappingURL=types.js.map
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAgBA;;6DAE6D;AAC7D,MAAM,UAAU,iBAAiB,CAAC,EAAc;IAC9C,IAAI,EAAE,CAAC,WAAW,KAAK,YAAY,IAAI,EAAE,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC,WAAW,CAAC;IAC1F,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/C,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAgBA;;6DAE6D;AAC7D,MAAM,UAAU,iBAAiB,CAAC,EAAc;IAC9C,IAAI,EAAE,CAAC,WAAW,KAAK,YAAY,IAAI,EAAE,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC,WAAW,CAAC;IAC1F,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/C,CAAC;AA2ED;;;;;uDAKuD;AACvD,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,SAAiB;IAC5D,OAAO,GAAG,QAAQ,KAAK,SAAS,EAAE,CAAC;AACrC,CAAC;AAED;;+BAE+B;AAC/B,MAAM,UAAU,eAAe,CAAC,EAAiB;IAC/C,OAAO,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;AACpE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../src/core/worker-pool.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAkB,cAAc,EAAE,OAAO,EAAe,MAAM,aAAa,CAAC;AACxF,OAAO,
|
|
1
|
+
{"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../src/core/worker-pool.ts"],"names":[],"mappings":"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"}
|
package/dist/core/worker-pool.js
CHANGED
|
@@ -23,7 +23,7 @@ import { TmuxBackend } from '../adapters/backend/tmux-backend.js';
|
|
|
23
23
|
import { getBot, getAllBots } from '../bot-registry.js';
|
|
24
24
|
import { dashboardEventBus } from './dashboard-events.js';
|
|
25
25
|
import { composeRowFromActive } from './dashboard-rows.js';
|
|
26
|
-
import { sessionKey } from './types.js';
|
|
26
|
+
import { sessionKey, sessionAnchorId } from './types.js';
|
|
27
27
|
const __filename = fileURLToPath(import.meta.url);
|
|
28
28
|
const __dirname = dirname(__filename);
|
|
29
29
|
let callbacks;
|
|
@@ -353,7 +353,7 @@ export async function closeSession(sessionId) {
|
|
|
353
353
|
let killedLive = false;
|
|
354
354
|
if (ds) {
|
|
355
355
|
killWorker(ds);
|
|
356
|
-
activeSessionsRegistry?.delete(sessionKey(ds
|
|
356
|
+
activeSessionsRegistry?.delete(sessionKey(sessionAnchorId(ds), ds.larkAppId));
|
|
357
357
|
killedLive = true;
|
|
358
358
|
if (!ds.exitEventEmitted) {
|
|
359
359
|
ds.exitEventEmitted = true;
|
|
@@ -446,7 +446,7 @@ export function forkWorker(ds, prompt, resume = false) {
|
|
|
446
446
|
type: 'init',
|
|
447
447
|
sessionId: ds.session.sessionId,
|
|
448
448
|
chatId: ds.chatId,
|
|
449
|
-
rootMessageId: ds
|
|
449
|
+
rootMessageId: sessionAnchorId(ds),
|
|
450
450
|
workingDir: cwd,
|
|
451
451
|
cliId: botCfg.cliId,
|
|
452
452
|
cliPathOverride: botCfg.cliPathOverride,
|
|
@@ -533,7 +533,7 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
533
533
|
// Reuse persisted nonce so existing card buttons (toggle/etc) keep working.
|
|
534
534
|
if (!ds.streamCardNonce)
|
|
535
535
|
ds.streamCardNonce = randomBytes(4).toString('hex');
|
|
536
|
-
const streamCardJson = buildStreamingCard(ds.session.sessionId, ds
|
|
536
|
+
const streamCardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readOnlyUrl, initTitle, ds.lastScreenContent ?? '', 'starting', botCfg.cliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover);
|
|
537
537
|
await updateMessage(ds.larkAppId, restoredCardId, streamCardJson);
|
|
538
538
|
persistStreamCardState(ds);
|
|
539
539
|
// Re-sync worker's display mode (it starts fresh in 'hidden')
|
|
@@ -561,8 +561,8 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
561
561
|
try {
|
|
562
562
|
ds.streamCardNonce = randomBytes(4).toString('hex');
|
|
563
563
|
const initTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(botCfg.cliId);
|
|
564
|
-
const streamCardJson = buildStreamingCard(ds.session.sessionId, ds
|
|
565
|
-
ds.streamCardId = await cb.sessionReply(ds
|
|
564
|
+
const streamCardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readOnlyUrl, initTitle, '', 'starting', botCfg.cliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover);
|
|
565
|
+
ds.streamCardId = await cb.sessionReply(sessionAnchorId(ds), streamCardJson, 'interactive', ds.larkAppId);
|
|
566
566
|
persistStreamCardState(ds);
|
|
567
567
|
// New card is live — recall any cards frozen by previous turns.
|
|
568
568
|
// Done after `streamCardId` is committed so we never delete the old
|
|
@@ -582,8 +582,8 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
582
582
|
persistStreamCardState(ds);
|
|
583
583
|
// Fallback: send static session card
|
|
584
584
|
try {
|
|
585
|
-
const cardJson = buildSessionCard(ds.session.sessionId, ds
|
|
586
|
-
await cb.sessionReply(ds
|
|
585
|
+
const cardJson = buildSessionCard(ds.session.sessionId, sessionAnchorId(ds), readOnlyUrl, ds.session.title || getCliDisplayName(botCfg.cliId), botCfg.cliId, undefined, !!ds.adoptedFrom);
|
|
586
|
+
await cb.sessionReply(sessionAnchorId(ds), cardJson, 'interactive', ds.larkAppId);
|
|
587
587
|
}
|
|
588
588
|
catch (fallbackErr) {
|
|
589
589
|
if (fallbackErr instanceof MessageWithdrawnError) {
|
|
@@ -639,12 +639,12 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
639
639
|
// New turn → image_key from previous turn no longer valid
|
|
640
640
|
if (isNewTurn)
|
|
641
641
|
ds.currentImageKey = undefined;
|
|
642
|
-
const cardJson = buildStreamingCard(ds.session.sessionId, ds
|
|
642
|
+
const cardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, isNewTurn ? '' : msg.content, msg.status, botCfg.cliId, mode, ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover);
|
|
643
643
|
// Mark POST in-flight so subsequent screen_updates are dropped,
|
|
644
644
|
// not POSTed as duplicate cards.
|
|
645
645
|
ds.streamCardPending = false;
|
|
646
646
|
ds.streamCardId = CARD_POSTING_SENTINEL;
|
|
647
|
-
cb.sessionReply(ds
|
|
647
|
+
cb.sessionReply(sessionAnchorId(ds), cardJson, 'interactive', ds.larkAppId)
|
|
648
648
|
.then(msgId => {
|
|
649
649
|
ds.streamCardId = msgId;
|
|
650
650
|
persistStreamCardState(ds);
|
|
@@ -673,7 +673,7 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
673
673
|
const statusChanged = prevStatus !== msg.status;
|
|
674
674
|
if (!statusChanged)
|
|
675
675
|
break;
|
|
676
|
-
const cardJson = buildStreamingCard(ds.session.sessionId, ds
|
|
676
|
+
const cardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, msg.content, msg.status, botCfg.cliId, mode, ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover);
|
|
677
677
|
scheduleCardPatch(ds, cardJson);
|
|
678
678
|
}
|
|
679
679
|
break;
|
|
@@ -692,7 +692,7 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
692
692
|
break;
|
|
693
693
|
const readUrl = `http://${config.web.externalHost}:${ds.workerPort}`;
|
|
694
694
|
const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(botCfg.cliId);
|
|
695
|
-
const cardJson = buildStreamingCard(ds.session.sessionId, ds
|
|
695
|
+
const cardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, ds.lastScreenContent ?? '', msg.status, botCfg.cliId, 'screenshot', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover);
|
|
696
696
|
scheduleCardPatch(ds, cardJson);
|
|
697
697
|
break;
|
|
698
698
|
}
|
|
@@ -719,8 +719,8 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
719
719
|
});
|
|
720
720
|
}
|
|
721
721
|
try {
|
|
722
|
-
const cardJson = buildTuiPromptCard(ds
|
|
723
|
-
const cardMsgId = await cb.sessionReply(ds
|
|
722
|
+
const cardJson = buildTuiPromptCard(sessionAnchorId(ds), ds.session.sessionId, msg.description, msg.options, msg.multiSelect);
|
|
723
|
+
const cardMsgId = await cb.sessionReply(sessionAnchorId(ds), cardJson, 'interactive', ds.larkAppId);
|
|
724
724
|
ds.tuiPromptCardId = cardMsgId;
|
|
725
725
|
}
|
|
726
726
|
catch (err) {
|
|
@@ -749,12 +749,12 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
749
749
|
if (ds.streamCardId && ds.workerPort) {
|
|
750
750
|
const readUrl = `http://${config.web.externalHost}:${ds.workerPort}`;
|
|
751
751
|
const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(botCfg.cliId);
|
|
752
|
-
const frozenCard = buildStreamingCard(ds.session.sessionId, ds
|
|
752
|
+
const frozenCard = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, ds.lastScreenContent ?? '', 'idle', botCfg.cliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover);
|
|
753
753
|
scheduleCardPatch(ds, frozenCard);
|
|
754
754
|
}
|
|
755
755
|
killWorker(ds);
|
|
756
756
|
try {
|
|
757
|
-
await cb.sessionReply(ds
|
|
757
|
+
await cb.sessionReply(sessionAnchorId(ds), '\u23cf 已采纳的 CLI 会话已退出', 'text', ds.larkAppId);
|
|
758
758
|
}
|
|
759
759
|
catch { /* best effort */ }
|
|
760
760
|
break;
|
|
@@ -774,14 +774,14 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
774
774
|
if (ds.streamCardId && ds.workerPort) {
|
|
775
775
|
const readUrl = `http://${config.web.externalHost}:${ds.workerPort}`;
|
|
776
776
|
const turnTitle = ds.currentTurnTitle || ds.session.title || getCliDisplayName(botCfg.cliId);
|
|
777
|
-
const frozenCard = buildStreamingCard(ds.session.sessionId, ds
|
|
777
|
+
const frozenCard = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, ds.lastScreenContent ?? '', 'idle', botCfg.cliId, ds.displayMode ?? 'hidden', ds.streamCardNonce, ds.currentImageKey);
|
|
778
778
|
scheduleCardPatch(ds, frozenCard);
|
|
779
779
|
}
|
|
780
780
|
// Kill the worker process to free resources
|
|
781
781
|
killWorker(ds);
|
|
782
782
|
const cliName = getCliDisplayName(botCfg.cliId);
|
|
783
783
|
try {
|
|
784
|
-
await cb.sessionReply(ds
|
|
784
|
+
await cb.sessionReply(sessionAnchorId(ds), `\u26a0\ufe0f ${cliName} 在 1 分钟内崩溃 ${rc.count} 次,已停止自动重启。发消息可触发重新启动。`, 'text', ds.larkAppId);
|
|
785
785
|
}
|
|
786
786
|
catch (replyErr) {
|
|
787
787
|
if (replyErr instanceof MessageWithdrawnError) {
|
|
@@ -805,7 +805,7 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
805
805
|
case 'user_notify': {
|
|
806
806
|
logger.warn(`[${t}] Worker user_notify: ${msg.message}`);
|
|
807
807
|
try {
|
|
808
|
-
await cb.sessionReply(ds
|
|
808
|
+
await cb.sessionReply(sessionAnchorId(ds), msg.message, 'text', ds.larkAppId);
|
|
809
809
|
}
|
|
810
810
|
catch (err) {
|
|
811
811
|
logger.error(`[${t}] Failed to deliver user_notify to Lark: ${err.message}`);
|
|
@@ -850,7 +850,7 @@ function setupWorkerHandlers(ds, worker) {
|
|
|
850
850
|
'🤖 Claude:',
|
|
851
851
|
assistantBlock || '(空)',
|
|
852
852
|
].join('\n');
|
|
853
|
-
cb.sessionReply(ds
|
|
853
|
+
cb.sessionReply(sessionAnchorId(ds), text, 'text', ds.larkAppId).catch((err) => {
|
|
854
854
|
logger.warn(`[${t}] Failed to deliver adopt_preamble to Lark: ${err.message}`);
|
|
855
855
|
});
|
|
856
856
|
break;
|
|
@@ -904,7 +904,7 @@ function deliverFinalOutput(ds, msg, t, attempt) {
|
|
|
904
904
|
// to one the model sent itself. Markdown rendering, tables, code
|
|
905
905
|
// blocks all flow through the shared `buildCardBodyElements`.
|
|
906
906
|
const cardJson = buildMarkdownCard(msg.content, ds.session.ownerOpenId);
|
|
907
|
-
await cb.sessionReply(ds
|
|
907
|
+
await cb.sessionReply(sessionAnchorId(ds), cardJson, 'interactive', ds.larkAppId);
|
|
908
908
|
ds.lastBridgeEmittedUuid = msg.lastUuid;
|
|
909
909
|
logger.info(`[${t}] Bridge final_output forwarded (turn ${msg.turnId.substring(0, 8)}, ${msg.content.length} chars, attempt ${attempt + 1})`);
|
|
910
910
|
}
|
|
@@ -999,7 +999,7 @@ export function forkAdoptWorker(ds, opts) {
|
|
|
999
999
|
type: 'init',
|
|
1000
1000
|
sessionId: ds.session.sessionId,
|
|
1001
1001
|
chatId: ds.chatId,
|
|
1002
|
-
rootMessageId: ds
|
|
1002
|
+
rootMessageId: sessionAnchorId(ds),
|
|
1003
1003
|
workingDir: adopted.cwd,
|
|
1004
1004
|
cliId: adoptedCliId,
|
|
1005
1005
|
cliSessionId: adoptedCliId === 'codex' ? adopted.sessionId : undefined,
|