botmux 2.112.0 → 2.114.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/bot-registry.d.ts +31 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +8 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +12 -6
- package/dist/cli.js.map +1 -1
- package/dist/core/ask-broker.d.ts +1 -1
- package/dist/core/ask-broker.d.ts.map +1 -1
- package/dist/core/ask-broker.js +2 -1
- package/dist/core/ask-broker.js.map +1 -1
- package/dist/core/ask-types.d.ts +5 -0
- package/dist/core/ask-types.d.ts.map +1 -1
- package/dist/core/ask-types.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts +10 -0
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +73 -2
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/reply-target.d.ts +30 -1
- package/dist/core/reply-target.d.ts.map +1 -1
- package/dist/core/reply-target.js +70 -7
- package/dist/core/reply-target.js.map +1 -1
- package/dist/core/types.d.ts +8 -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 +18 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +67 -11
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +85 -16
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.d.ts +8 -1
- package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults-page.js +238 -21
- package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
- package/dist/dashboard/web/bot-defaults.d.ts +23 -0
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js +17 -0
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +54 -2
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/ui.d.ts +4 -0
- package/dist/dashboard/web/ui.d.ts.map +1 -1
- package/dist/dashboard/web/ui.js +11 -0
- package/dist/dashboard/web/ui.js.map +1 -1
- package/dist/dashboard-web/app.js +1 -1
- package/dist/dashboard-web/chunks/bot-defaults-page-SRCBF7Z3.js +5 -0
- package/dist/dashboard-web/chunks/{chunk-NYZHARIU.js → chunk-3H6MVXXU.js} +8 -6
- package/dist/dashboard-web/chunks/{chunk-YBOHL7T7.js → chunk-77KD4TK2.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-CMDPZOPK.js → chunk-D2I5F4MY.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-YWCPDL4S.js → chunk-NGRUZCXP.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-page-DAMP7TTV.js → connectors-page-RM3BJVMV.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-BPFA356N.js → groups-page-3D4YSYLA.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-SHOPHTWY.js → insights-page-CRFJKA54.js} +1 -1
- package/dist/dashboard-web/chunks/{monitor-room-PXPJGZCN.js → monitor-room-HLK3XDT2.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-4DF54M5Y.js → monitoring-page-E3SNZFFN.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-6OHU6KMZ.js → office-page-MKQ2TENK.js} +1 -1
- package/dist/dashboard-web/chunks/overview-page-ICFKKRLV.js +1 -0
- package/dist/dashboard-web/chunks/{roles-page-JYTBYKEF.js → roles-page-2DFJ7YRU.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-page-WJ72T7KV.js → schedules-page-S4WDIXH5.js} +1 -1
- package/dist/dashboard-web/chunks/{sessions-page-QC56OIAI.js → sessions-page-4XWGUGB5.js} +1 -1
- package/dist/dashboard-web/chunks/{settings-page-TCKWEXTN.js → settings-page-OBTE4LYP.js} +1 -1
- package/dist/dashboard-web/chunks/{skills-page-RJJNIECW.js → skills-page-CTRQJR47.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-ZMDX3E7K.js → team-federation-page-GICLDKJP.js} +1 -1
- package/dist/dashboard-web/chunks/{v3-page-VLLAUQ33.js → v3-page-DI55IRL5.js} +1 -1
- package/dist/dashboard-web/chunks/{whiteboards-page-NAO53CKM.js → whiteboards-page-7KFWMILV.js} +1 -1
- package/dist/dashboard-web/style.css +113 -1
- package/dist/dashboard.js +48 -0
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +3 -2
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +3 -2
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +9 -2
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts +30 -0
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +63 -13
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +7 -3
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +66 -15
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/substitute-command.d.ts.map +1 -1
- package/dist/im/lark/substitute-command.js +10 -1
- package/dist/im/lark/substitute-command.js.map +1 -1
- package/dist/services/oncall-store.d.ts +8 -0
- package/dist/services/oncall-store.d.ts.map +1 -1
- package/dist/services/oncall-store.js +48 -2
- package/dist/services/oncall-store.js.map +1 -1
- package/dist/services/open-platform-rename.d.ts +31 -3
- package/dist/services/open-platform-rename.d.ts.map +1 -1
- package/dist/services/open-platform-rename.js +262 -48
- package/dist/services/open-platform-rename.js.map +1 -1
- package/dist/services/substitute-mode-normalize.d.ts.map +1 -1
- package/dist/services/substitute-mode-normalize.js +17 -1
- package/dist/services/substitute-mode-normalize.js.map +1 -1
- package/dist/services/substitute-mode-store.d.ts +24 -5
- package/dist/services/substitute-mode-store.d.ts.map +1 -1
- package/dist/services/substitute-mode-store.js +36 -16
- package/dist/services/substitute-mode-store.js.map +1 -1
- package/dist/skills/definitions.d.ts +1 -1
- package/dist/skills/definitions.d.ts.map +1 -1
- package/dist/skills/definitions.js +15 -3
- 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/bot-routing.d.ts +1 -0
- package/dist/utils/bot-routing.d.ts.map +1 -1
- package/dist/utils/bot-routing.js +1 -1
- package/dist/utils/bot-routing.js.map +1 -1
- package/dist/workflows/migration/v2-run-archive-schema.d.ts +2 -2
- package/dist/workflows/v3/run-envelope.d.ts +16 -16
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/bot-defaults-page-RYBL4ZYE.js +0 -4
- package/dist/dashboard-web/chunks/overview-page-IHIZ6F5M.js +0 -1
|
@@ -6,7 +6,32 @@ export type SessionReplyTarget = {
|
|
|
6
6
|
} | {
|
|
7
7
|
mode: 'thread';
|
|
8
8
|
rootMessageId: string;
|
|
9
|
+
} | {
|
|
10
|
+
mode: 'quote';
|
|
11
|
+
rootMessageId: string;
|
|
9
12
|
};
|
|
13
|
+
/** Per-turn reply-target entry persisted in `Session.replyTargets` (keyed by
|
|
14
|
+
* turnId, so the key is not repeated inside the value). */
|
|
15
|
+
export interface ReplyTargetEntry {
|
|
16
|
+
rootMessageId: string;
|
|
17
|
+
updatedAt: string;
|
|
18
|
+
quoteOnly?: boolean;
|
|
19
|
+
substitute?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** The reply target for a SPECIFIC turn: exact per-turn entry first, then the
|
|
22
|
+
* single-slot currentReplyTarget (which only remembers the latest turn — with
|
|
23
|
+
* queued/concurrent turns an earlier turn would otherwise lose its anchor). */
|
|
24
|
+
export declare function pickTurnReplyTarget(s: Pick<Session, 'replyTargets' | 'currentReplyTarget'>, currentTurnId: string | undefined): {
|
|
25
|
+
rootMessageId: string;
|
|
26
|
+
turnId: string;
|
|
27
|
+
quoteOnly?: boolean;
|
|
28
|
+
substitute?: boolean;
|
|
29
|
+
} | undefined;
|
|
30
|
+
/** Whether `turnId` is a substitute (avatar-style) turn. With no turn context,
|
|
31
|
+
* falls back to the latest-accepted turn's flag — callers that have a turnId
|
|
32
|
+
* (screen updates, turn reactions) get an exact per-turn answer so a queued
|
|
33
|
+
* normal turn doesn't inherit a substitute turn's card-off (or vice versa). */
|
|
34
|
+
export declare function isSubstituteTurn(ds: Pick<DaemonSession, 'session' | 'currentReplyTarget'>, turnId?: string): boolean;
|
|
10
35
|
export declare function resolveSessionReplyTarget(ds: Pick<DaemonSession, 'scope' | 'chatId' | 'session' | 'currentReplyTarget'>, turnId?: string): SessionReplyTarget;
|
|
11
36
|
export declare function resolveSendTarget(opts: {
|
|
12
37
|
into?: string;
|
|
@@ -16,9 +41,13 @@ export declare function resolveSendTarget(opts: {
|
|
|
16
41
|
rootMessageId: string;
|
|
17
42
|
replyTargetRootId?: string;
|
|
18
43
|
replyTargetTurnId?: string;
|
|
44
|
+
replyTargetQuoteOnly?: boolean;
|
|
19
45
|
currentTurnId?: string;
|
|
20
46
|
}): SessionReplyTarget;
|
|
21
|
-
export declare function beginReplyTargetTurn(ds: DaemonSession, replyRootId: string | undefined, turnId: string, nowIso?: string
|
|
47
|
+
export declare function beginReplyTargetTurn(ds: DaemonSession, replyRootId: string | undefined, turnId: string, nowIso?: string, opts?: {
|
|
48
|
+
quoteOnly?: boolean;
|
|
49
|
+
substitute?: boolean;
|
|
50
|
+
}): void;
|
|
22
51
|
/**
|
|
23
52
|
* Effective turnId for a daemon-side message. Callers that know their turn
|
|
24
53
|
* (worker final_output, placeholder cards) pass it explicitly and the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reply-target.d.ts","sourceRoot":"","sources":["../../src/core/reply-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"reply-target.d.ts","sourceRoot":"","sources":["../../src/core/reply-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C;4DAC4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AASD;;gFAEgF;AAChF,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,oBAAoB,CAAC,EACvD,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAQlG;AAED;;;gFAGgF;AAChF,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,oBAAoB,CAAC,EACzD,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAYT;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,oBAAoB,CAAC,EAC9E,MAAM,CAAC,EAAE,MAAM,GACd,kBAAkB,CAmBpB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,kBAAkB,CAYrB;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,aAAa,EACjB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,SAA2B,EACjC,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACnD,IAAI,CA+BN;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,oBAAoB,CAAC,EACzD,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAIzE"}
|
|
@@ -1,8 +1,54 @@
|
|
|
1
|
+
/** Bound on `Session.replyTargets`: chat-scope sessions are long-lived and a
|
|
2
|
+
* busy substitute group could otherwise grow the map without limit. 32 keeps
|
|
3
|
+
* every plausibly-still-in-flight turn (queue depth is far smaller) while the
|
|
4
|
+
* oldest entries fall off. Evicted turns degrade to the single-slot
|
|
5
|
+
* currentReplyTarget path — same behavior as before the map existed. */
|
|
6
|
+
const REPLY_TARGETS_MAX = 32;
|
|
7
|
+
/** The reply target for a SPECIFIC turn: exact per-turn entry first, then the
|
|
8
|
+
* single-slot currentReplyTarget (which only remembers the latest turn — with
|
|
9
|
+
* queued/concurrent turns an earlier turn would otherwise lose its anchor). */
|
|
10
|
+
export function pickTurnReplyTarget(s, currentTurnId) {
|
|
11
|
+
if (currentTurnId) {
|
|
12
|
+
const entry = s.replyTargets?.[currentTurnId];
|
|
13
|
+
if (entry?.rootMessageId) {
|
|
14
|
+
return { rootMessageId: entry.rootMessageId, turnId: currentTurnId, quoteOnly: entry.quoteOnly, substitute: entry.substitute };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return s.currentReplyTarget;
|
|
18
|
+
}
|
|
19
|
+
/** Whether `turnId` is a substitute (avatar-style) turn. With no turn context,
|
|
20
|
+
* falls back to the latest-accepted turn's flag — callers that have a turnId
|
|
21
|
+
* (screen updates, turn reactions) get an exact per-turn answer so a queued
|
|
22
|
+
* normal turn doesn't inherit a substitute turn's card-off (or vice versa). */
|
|
23
|
+
export function isSubstituteTurn(ds, turnId) {
|
|
24
|
+
const slot = ds.currentReplyTarget ?? ds.session.currentReplyTarget;
|
|
25
|
+
if (turnId) {
|
|
26
|
+
const entry = ds.session.replyTargets?.[turnId];
|
|
27
|
+
if (entry)
|
|
28
|
+
return entry.substitute === true;
|
|
29
|
+
// With explicit turn context, the single slot only speaks for ITS OWN
|
|
30
|
+
// turn. A rootless normal turn leaves no map entry (begin cleared the
|
|
31
|
+
// slot) — it must not inherit a later substitute turn's flag after that
|
|
32
|
+
// turn overwrote the slot (and vice versa).
|
|
33
|
+
return !!slot && slot.turnId === turnId && slot.substitute === true;
|
|
34
|
+
}
|
|
35
|
+
return slot?.substitute === true;
|
|
36
|
+
}
|
|
1
37
|
export function resolveSessionReplyTarget(ds, turnId) {
|
|
2
|
-
const target = ds.currentReplyTarget ?? ds.session.currentReplyTarget;
|
|
3
38
|
if (ds.scope === 'chat') {
|
|
39
|
+
// Exact per-turn anchor first: survives a later turn overwriting the
|
|
40
|
+
// single slot while this turn is still executing/queued.
|
|
41
|
+
const turnEntry = turnId ? ds.session.replyTargets?.[turnId] : undefined;
|
|
42
|
+
if (turnEntry?.rootMessageId) {
|
|
43
|
+
return turnEntry.quoteOnly
|
|
44
|
+
? { mode: 'quote', rootMessageId: turnEntry.rootMessageId }
|
|
45
|
+
: { mode: 'thread', rootMessageId: turnEntry.rootMessageId };
|
|
46
|
+
}
|
|
47
|
+
const target = ds.currentReplyTarget ?? ds.session.currentReplyTarget;
|
|
4
48
|
if (target?.rootMessageId && !!turnId && target.turnId === turnId) {
|
|
5
|
-
return
|
|
49
|
+
return target.quoteOnly
|
|
50
|
+
? { mode: 'quote', rootMessageId: target.rootMessageId }
|
|
51
|
+
: { mode: 'thread', rootMessageId: target.rootMessageId };
|
|
6
52
|
}
|
|
7
53
|
return { mode: 'plain', chatId: ds.chatId };
|
|
8
54
|
}
|
|
@@ -14,13 +60,16 @@ export function resolveSendTarget(opts) {
|
|
|
14
60
|
if (opts.topLevel)
|
|
15
61
|
return { mode: 'plain', chatId: opts.chatId };
|
|
16
62
|
if (opts.chatScope) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
63
|
+
if (opts.replyTargetRootId && opts.replyTargetTurnId && opts.replyTargetTurnId === opts.currentTurnId) {
|
|
64
|
+
return opts.replyTargetQuoteOnly
|
|
65
|
+
? { mode: 'quote', rootMessageId: opts.replyTargetRootId }
|
|
66
|
+
: { mode: 'thread', rootMessageId: opts.replyTargetRootId };
|
|
67
|
+
}
|
|
68
|
+
return { mode: 'plain', chatId: opts.chatId };
|
|
20
69
|
}
|
|
21
70
|
return { mode: 'thread', rootMessageId: opts.rootMessageId };
|
|
22
71
|
}
|
|
23
|
-
export function beginReplyTargetTurn(ds, replyRootId, turnId, nowIso = new Date().toISOString()) {
|
|
72
|
+
export function beginReplyTargetTurn(ds, replyRootId, turnId, nowIso = new Date().toISOString(), opts) {
|
|
24
73
|
if (ds.scope !== 'chat')
|
|
25
74
|
return;
|
|
26
75
|
if (replyRootId) {
|
|
@@ -29,11 +78,25 @@ export function beginReplyTargetTurn(ds, replyRootId, turnId, nowIso = new Date(
|
|
|
29
78
|
createdAt: aliases[replyRootId]?.createdAt ?? nowIso,
|
|
30
79
|
lastUsedAt: nowIso,
|
|
31
80
|
};
|
|
32
|
-
const target = { rootMessageId: replyRootId, turnId, updatedAt: nowIso };
|
|
81
|
+
const target = { rootMessageId: replyRootId, turnId, updatedAt: nowIso, quoteOnly: opts?.quoteOnly, substitute: opts?.substitute };
|
|
33
82
|
ds.replyThreadAliases = aliases;
|
|
34
83
|
ds.currentReplyTarget = target;
|
|
35
84
|
ds.session.replyThreadAliases = aliases;
|
|
36
85
|
ds.session.currentReplyTarget = target;
|
|
86
|
+
// Per-turn map alongside the single slot: a later turn's begin no longer
|
|
87
|
+
// strands this turn's anchor (session-only field — persisted by the
|
|
88
|
+
// sessionStore.updateSession the daemon calls right after every begin,
|
|
89
|
+
// same lifecycle as docCommentTargets).
|
|
90
|
+
const targets = { ...(ds.session.replyTargets ?? {}) };
|
|
91
|
+
targets[turnId] = { rootMessageId: replyRootId, updatedAt: nowIso, quoteOnly: opts?.quoteOnly, substitute: opts?.substitute };
|
|
92
|
+
const keys = Object.keys(targets);
|
|
93
|
+
if (keys.length > REPLY_TARGETS_MAX) {
|
|
94
|
+
keys
|
|
95
|
+
.sort((a, b) => (targets[a].updatedAt < targets[b].updatedAt ? -1 : 1))
|
|
96
|
+
.slice(0, keys.length - REPLY_TARGETS_MAX)
|
|
97
|
+
.forEach(k => { delete targets[k]; });
|
|
98
|
+
}
|
|
99
|
+
ds.session.replyTargets = targets;
|
|
37
100
|
return;
|
|
38
101
|
}
|
|
39
102
|
ds.currentReplyTarget = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reply-target.js","sourceRoot":"","sources":["../../src/core/reply-target.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reply-target.js","sourceRoot":"","sources":["../../src/core/reply-target.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -145,7 +145,15 @@ export interface DaemonSession {
|
|
|
145
145
|
rootMessageId: string;
|
|
146
146
|
turnId: string;
|
|
147
147
|
updatedAt: string;
|
|
148
|
+
quoteOnly?: boolean;
|
|
149
|
+
substitute?: boolean;
|
|
148
150
|
};
|
|
151
|
+
/** One-shot runtime flag set by the daemon when creating a substitute
|
|
152
|
+
* (分身) session. The worker-pool consumes and clears it once the worker
|
|
153
|
+
* reports ready, triggering a one-time substitute control card post so the
|
|
154
|
+
* new session is immediately controllable. In-memory only (resets on daemon
|
|
155
|
+
* restart). See core/worker-pool.ts and the substitute session creation path. */
|
|
156
|
+
pendingSubstituteControlCard?: boolean;
|
|
149
157
|
currentTurnTitle?: string;
|
|
150
158
|
cardPatchInFlight?: boolean;
|
|
151
159
|
pendingCardJson?: string;
|
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":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,mGAAmG;AACnG,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;6DAE6D;AAC7D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,GAAG,WAAW,CAG7D;AAED;;;+CAG+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;mEAC+D;IAC/D,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;mFAC+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAC;IAC1B;;;;;qEAKiE;IACjE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;mDAE+C;IAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;oFACgF;IAChF,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC;;;;0BAIsB;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;2BAKuB;IACvB,oBAAoB,CAAC,EAAE;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,iBAAiB,CAAC;QAClC;yEACiE;QACjE,uBAAuB,CAAC,EAAE,IAAI,CAAC;KAChC,CAAC;IACF,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IACtC,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,aAAa,EAAE,iBAAiB,CAAC;IACnE;;2EAEuE;IACvE,aAAa,CAAC,EAAE,OAAO,8BAA8B,EAAE,cAAc,CAAC;IACtE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,+BAA+B,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;sDAIkD;IAClD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;8DAG0D;IAC1D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;qEAKiE;IACjE,mBAAmB,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,iGAAiG;IACjG,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC;;;+BAG2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,kBAAkB,CAAC,EAAE;QAAE,CAAC,aAAa,EAAE,MAAM,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC5F,kBAAkB,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC;kFAC8E;IAC9E,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;KAAE,CAAC,CAAC;IACtG;;gFAE4E;IAC5E,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAChC,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;+CAE2C;IAC3C,0BAA0B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD;0EACsE;IACtE,iBAAiB,CAAC,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF;wEACoE;IACpE,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC9G,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;;4DAOwD;IACxD,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D;;;gDAG4C;IAC5C,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/K;;6DAEyD;IACzD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;qEAIiE;IACjE,4BAA4B,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C;;;iFAG6E;IAC7E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;kFAC8E;IAC9E,WAAW,CAAC,EAAE;QACZ,iFAAiF;QACjF,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;QACrC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,0BAA0B,EAAE,KAAK,CAAC;QACjD,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;uDAKuD;AACvD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;+BAE+B;AAC/B,wBAAgB,eAAe,CAAC,EAAE,EAAE,aAAa,GAAG,MAAM,CAEzD;AAED;;;wCAGwC;AACxC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,MAAM,CAK1D;AAED;;0DAE0D;AAC1D,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG,OAAO,CAEvF"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,mGAAmG;AACnG,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;6DAE6D;AAC7D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,GAAG,WAAW,CAG7D;AAED;;;+CAG+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;mEAC+D;IAC/D,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;mFAC+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAC;IAC1B;;;;;qEAKiE;IACjE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;mDAE+C;IAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;oFACgF;IAChF,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC;;;;0BAIsB;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;2BAKuB;IACvB,oBAAoB,CAAC,EAAE;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,iBAAiB,CAAC;QAClC;yEACiE;QACjE,uBAAuB,CAAC,EAAE,IAAI,CAAC;KAChC,CAAC;IACF,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IACtC,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,aAAa,EAAE,iBAAiB,CAAC;IACnE;;2EAEuE;IACvE,aAAa,CAAC,EAAE,OAAO,8BAA8B,EAAE,cAAc,CAAC;IACtE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,+BAA+B,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;sDAIkD;IAClD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;8DAG0D;IAC1D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;qEAKiE;IACjE,mBAAmB,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,iGAAiG;IACjG,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC;;;+BAG2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,kBAAkB,CAAC,EAAE;QAAE,CAAC,aAAa,EAAE,MAAM,GAAG;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC5F,kBAAkB,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7H;;;;sFAIkF;IAClF,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC;kFAC8E;IAC9E,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;KAAE,CAAC,CAAC;IACtG;;gFAE4E;IAC5E,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAChC,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;+CAE2C;IAC3C,0BAA0B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD;0EACsE;IACtE,iBAAiB,CAAC,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF;wEACoE;IACpE,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC9G,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;;4DAOwD;IACxD,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D;;;gDAG4C;IAC5C,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/K;;6DAEyD;IACzD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;qEAIiE;IACjE,4BAA4B,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C;;;iFAG6E;IAC7E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;kFAC8E;IAC9E,WAAW,CAAC,EAAE;QACZ,iFAAiF;QACjF,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;QACrC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,0BAA0B,EAAE,KAAK,CAAC;QACjD,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;uDAKuD;AACvD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;+BAE+B;AAC/B,wBAAgB,eAAe,CAAC,EAAE,EAAE,aAAa,GAAG,MAAM,CAEzD;AAED;;;wCAGwC;AACxC,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,MAAM,CAK1D;AAED;;0DAE0D;AAC1D,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG,OAAO,CAEvF"}
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AA0BA;;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":"AA0BA;;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;AAoND;;;;;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;AAED;;;wCAGwC;AACxC,MAAM,UAAU,gBAAgB,CAAC,EAAiB;IAChD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB;QACzC,CAAC,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE;QACvC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACxB,OAAO,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED;;0DAE0D;AAC1D,MAAM,UAAU,kBAAkB,CAAC,EAA2C;IAC5E,OAAO,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -232,6 +232,14 @@ export interface WriteLinkOwnerDelivery {
|
|
|
232
232
|
total: number;
|
|
233
233
|
channels: Array<'ephemeral' | 'dm' | 'failed'>;
|
|
234
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Build the write-enabled session card (writable terminal URL + manage buttons)
|
|
237
|
+
* for `ds`, or null when the terminal isn't up yet (no worker port/token).
|
|
238
|
+
* Shared by the owner-fanout ({@link deliverWriteLinkCardToOwners}, behind
|
|
239
|
+
* `botmux term-link`) and the single-operator delivery
|
|
240
|
+
* ({@link deliverWritableTerminalCardTo}, behind the `/term` slash command).
|
|
241
|
+
*/
|
|
242
|
+
export declare function buildWritableTerminalCard(ds: DaemonSession): string | null;
|
|
235
243
|
/**
|
|
236
244
|
* Build the write-enabled session card for `ds` and deliver it privately to the
|
|
237
245
|
* bot's owner(s) — the payload behind the `botmux term-link` CLI command.
|
|
@@ -252,6 +260,15 @@ export declare function deliverWriteLinkCardToOwners(ds: DaemonSession): Promise
|
|
|
252
260
|
* 'not_ready' when the terminal isn't up yet, else the channel actually used.
|
|
253
261
|
*/
|
|
254
262
|
export declare function deliverWritableTerminalCardTo(ds: DaemonSession, operatorOpenId: string): Promise<'ephemeral' | 'dm' | 'failed' | 'not_ready'>;
|
|
263
|
+
export interface SubstituteControlCardDelivery {
|
|
264
|
+
sent: number;
|
|
265
|
+
total: number;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* DM a writable-terminal control card to the bot's owner(s) for a substitute-mode session.
|
|
269
|
+
* Guards against duplicate sends via `session.substituteControlCardSent`.
|
|
270
|
+
*/
|
|
271
|
+
export declare function deliverSubstituteControlCard(ds: DaemonSession): Promise<SubstituteControlCardDelivery>;
|
|
255
272
|
/**
|
|
256
273
|
* Deliver a status confirmation (restart / session-closed / resume) as a
|
|
257
274
|
* "visible-to-the-operator-only" ephemeral message in a plain group; on failure
|
|
@@ -274,7 +291,7 @@ export declare function deliverEphemeralOrReply(ds: DaemonSession, operatorOpenI
|
|
|
274
291
|
* Otherwise stores the card JSON on `ds.pendingCardJson` (overwriting
|
|
275
292
|
* any previously queued value — only the latest state matters).
|
|
276
293
|
*/
|
|
277
|
-
export declare function scheduleCardPatch(ds: DaemonSession, cardJson: string): void;
|
|
294
|
+
export declare function scheduleCardPatch(ds: DaemonSession, cardJson: string, turnId?: string): void;
|
|
278
295
|
export declare const restartCounts: Map<string, {
|
|
279
296
|
count: number;
|
|
280
297
|
lastAt: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../src/core/worker-pool.ts"],"names":[],"mappings":"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
|
|
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
|
@@ -17,7 +17,7 @@ import { randomBytes, randomUUID } from 'node:crypto';
|
|
|
17
17
|
import { config } from '../config.js';
|
|
18
18
|
import * as sessionStore from '../services/session-store.js';
|
|
19
19
|
import { persistStreamCardState, rememberLastCliInput } from './session-manager.js';
|
|
20
|
-
import { fallbackTurnId } from './reply-target.js';
|
|
20
|
+
import { fallbackTurnId, isSubstituteTurn } from './reply-target.js';
|
|
21
21
|
import { updateMessage, deleteMessage, sendEphemeralCard, sendUserMessage, addReaction, removeReaction, MessageWithdrawnError } from '../im/lark/client.js';
|
|
22
22
|
import { buildStreamingCard, buildPrivateSnapshotCard, buildSessionCard, buildTuiPromptCard, buildTuiPromptResolvedCard, buildRelayedFrozenCard, getCliDisplayName } from '../im/lark/card-builder.js';
|
|
23
23
|
import { loadFrozenCards, saveFrozenCards } from '../services/frozen-card-store.js';
|
|
@@ -163,7 +163,7 @@ export function isRelayableRealSession(ds) {
|
|
|
163
163
|
// session card. Read fresh from the in-memory registry so a dashboard toggle
|
|
164
164
|
// takes effect without a daemon restart. The `/card` command can override it
|
|
165
165
|
// per-session via `ds.streamingCardForced` (manually summon a live card).
|
|
166
|
-
function streamingCardDisabled(ds) {
|
|
166
|
+
function streamingCardDisabled(ds, turnId) {
|
|
167
167
|
if (isDocNativeSession(ds))
|
|
168
168
|
return true;
|
|
169
169
|
if (ds.streamingCardForced)
|
|
@@ -171,7 +171,10 @@ function streamingCardDisabled(ds) {
|
|
|
171
171
|
try {
|
|
172
172
|
const cfg = getBot(ds.larkAppId).config;
|
|
173
173
|
return cfg.disableStreamingCard === true
|
|
174
|
-
|| (!!ds.chatId && !!cfg.noCardChats?.includes(ds.chatId))
|
|
174
|
+
|| (!!ds.chatId && !!cfg.noCardChats?.includes(ds.chatId))
|
|
175
|
+
// Per-turn substitute gate — see streamingCardDisabledFor in daemon.ts.
|
|
176
|
+
// Callers with a turnId (screen updates) get an exact per-turn answer.
|
|
177
|
+
|| isSubstituteTurn(ds, turnId);
|
|
175
178
|
}
|
|
176
179
|
catch {
|
|
177
180
|
return false;
|
|
@@ -682,7 +685,7 @@ export async function deliverWriteLinkCard(ds, operatorOpenId, cardJson) {
|
|
|
682
685
|
* `botmux term-link`) and the single-operator delivery
|
|
683
686
|
* ({@link deliverWritableTerminalCardTo}, behind the `/term` slash command).
|
|
684
687
|
*/
|
|
685
|
-
function buildWritableTerminalCard(ds) {
|
|
688
|
+
export function buildWritableTerminalCard(ds) {
|
|
686
689
|
// Riff backend: the sandbox URL is the writable link — no local worker/token needed.
|
|
687
690
|
if (ds.riffAccessUrl) {
|
|
688
691
|
const botCfg = getBot(ds.larkAppId).config;
|
|
@@ -745,6 +748,44 @@ export async function deliverWritableTerminalCardTo(ds, operatorOpenId) {
|
|
|
745
748
|
return 'not_ready';
|
|
746
749
|
return deliverWriteLinkCard(ds, operatorOpenId, cardJson);
|
|
747
750
|
}
|
|
751
|
+
/**
|
|
752
|
+
* DM a writable-terminal control card to the bot's owner(s) for a substitute-mode session.
|
|
753
|
+
* Guards against duplicate sends via `session.substituteControlCardSent`.
|
|
754
|
+
*/
|
|
755
|
+
export async function deliverSubstituteControlCard(ds) {
|
|
756
|
+
if (ds.session.substituteControlCardSent)
|
|
757
|
+
return { sent: 0, total: 0 };
|
|
758
|
+
const cardJson = buildWritableTerminalCard(ds);
|
|
759
|
+
if (!cardJson) {
|
|
760
|
+
logger.warn(`[${tag(ds)}] substitute control card skipped: terminal not ready`);
|
|
761
|
+
return { sent: 0, total: 0 };
|
|
762
|
+
}
|
|
763
|
+
const audience = resolvePrivateCardAudience(ds);
|
|
764
|
+
if (audience.length === 0) {
|
|
765
|
+
logger.debug(`[${tag(ds)}] substitute control card skipped: no owner audience`);
|
|
766
|
+
return { sent: 0, total: 0 };
|
|
767
|
+
}
|
|
768
|
+
let sent = 0;
|
|
769
|
+
const CONCURRENCY = 5;
|
|
770
|
+
for (let i = 0; i < audience.length; i += CONCURRENCY) {
|
|
771
|
+
const batch = audience.slice(i, i + CONCURRENCY);
|
|
772
|
+
await Promise.all(batch.map(async (openId) => {
|
|
773
|
+
try {
|
|
774
|
+
await sendUserMessage(ds.larkAppId, openId, cardJson, 'interactive');
|
|
775
|
+
sent++;
|
|
776
|
+
}
|
|
777
|
+
catch (err) {
|
|
778
|
+
logger.warn(`[${tag(ds)}] substitute control card DM to ${openId.substring(0, 8)}… failed: ${err instanceof Error ? err.message : err}`);
|
|
779
|
+
}
|
|
780
|
+
}));
|
|
781
|
+
}
|
|
782
|
+
if (sent > 0) {
|
|
783
|
+
ds.session.substituteControlCardSent = true;
|
|
784
|
+
sessionStore.updateSession(ds.session);
|
|
785
|
+
logger.info(`[${tag(ds)}] substitute control card DM'd to ${sent}/${audience.length} owner(s)`);
|
|
786
|
+
}
|
|
787
|
+
return { sent, total: audience.length };
|
|
788
|
+
}
|
|
748
789
|
/**
|
|
749
790
|
* Deliver a status confirmation (restart / session-closed / resume) as a
|
|
750
791
|
* "visible-to-the-operator-only" ephemeral message in a plain group; on failure
|
|
@@ -791,9 +832,12 @@ export async function deliverEphemeralOrReply(ds, operatorOpenId, content, msgTy
|
|
|
791
832
|
* Otherwise stores the card JSON on `ds.pendingCardJson` (overwriting
|
|
792
833
|
* any previously queued value — only the latest state matters).
|
|
793
834
|
*/
|
|
794
|
-
export function scheduleCardPatch(ds, cardJson) {
|
|
835
|
+
export function scheduleCardPatch(ds, cardJson, turnId) {
|
|
795
836
|
// Bot opted out of the streaming card — never patch one into existence.
|
|
796
|
-
|
|
837
|
+
// Turn-exact when the caller has turn context (screen updates): a substitute
|
|
838
|
+
// turn arriving mid-PATCH must not suppress a normal turn's card (or vice
|
|
839
|
+
// versa) just because it overwrote the latest-turn slot.
|
|
840
|
+
if (streamingCardDisabled(ds, turnId))
|
|
797
841
|
return;
|
|
798
842
|
ds.pendingCardJson = cardJson;
|
|
799
843
|
// Capture the card ID now — by the time flushCardPatch runs, ds.streamCardId
|
|
@@ -2008,6 +2052,13 @@ function setupWorkerHandlers(ds, worker, startupState = { ready: false, failureN
|
|
|
2008
2052
|
patch: { webPort: msg.port },
|
|
2009
2053
|
},
|
|
2010
2054
|
});
|
|
2055
|
+
// Substitute-mode control card: DM owner(s) a writable terminal + manage buttons.
|
|
2056
|
+
// Consumed before any early break below so avatar-style (card-off) sessions
|
|
2057
|
+
// still deliver the owner control card.
|
|
2058
|
+
if (ds.pendingSubstituteControlCard) {
|
|
2059
|
+
ds.pendingSubstituteControlCard = false;
|
|
2060
|
+
void deliverSubstituteControlCard(ds);
|
|
2061
|
+
}
|
|
2011
2062
|
if (managedAuxUiSuppressed(msg.turnId, msg.dispatchAttempt)) {
|
|
2012
2063
|
logger.info(`[${t}] Managed VC receiver — suppressing ready/streaming card output`);
|
|
2013
2064
|
break;
|
|
@@ -2015,8 +2066,11 @@ function setupWorkerHandlers(ds, worker, startupState = { ready: false, failureN
|
|
|
2015
2066
|
// Bot opted out of the streaming card: the terminal is up and the
|
|
2016
2067
|
// final answer will still arrive via `botmux send`; just don't post the
|
|
2017
2068
|
// live status card. (workerPort/token above are still set so the web
|
|
2018
|
-
// terminal + dashboard keep working.)
|
|
2019
|
-
|
|
2069
|
+
// terminal + dashboard keep working.) Ready carries the spawning
|
|
2070
|
+
// turn's id — gate on THAT turn, not on whichever turn was accepted
|
|
2071
|
+
// last (a queued normal turn must not resurrect a substitute turn's
|
|
2072
|
+
// initial card, nor the reverse).
|
|
2073
|
+
if (streamingCardDisabled(ds, msg.turnId)) {
|
|
2020
2074
|
logger.info(`[${t}] Streaming card disabled for this bot — skipping card post`);
|
|
2021
2075
|
break;
|
|
2022
2076
|
}
|
|
@@ -2275,8 +2329,10 @@ function setupWorkerHandlers(ds, worker, startupState = { ready: false, failureN
|
|
|
2275
2329
|
if (managedAuxUiSuppressed(msg.turnId, msg.dispatchAttempt))
|
|
2276
2330
|
break;
|
|
2277
2331
|
// Bot opted out of the streaming card — dashboard SSE above already got
|
|
2278
|
-
// the status patch; just don't touch any Lark card.
|
|
2279
|
-
|
|
2332
|
+
// the status patch; just don't touch any Lark card. Turn-exact: a
|
|
2333
|
+
// substitute turn's screen updates stay card-less even after a queued
|
|
2334
|
+
// normal turn overwrote currentReplyTarget (and vice versa).
|
|
2335
|
+
if (streamingCardDisabled(ds, msg.turnId))
|
|
2280
2336
|
break;
|
|
2281
2337
|
// Restart recovery: a restored worker may emit screen updates as the CLI
|
|
2282
2338
|
// redraws on resume. Stay silent (no post/patch) until the first real
|
|
@@ -2336,7 +2392,7 @@ function setupWorkerHandlers(ds, worker, startupState = { ready: false, failureN
|
|
|
2336
2392
|
if (!statusChanged)
|
|
2337
2393
|
break;
|
|
2338
2394
|
const cardJson = buildStreamingCard(ds.session.sessionId, sessionAnchorId(ds), readUrl, turnTitle, msg.content, ds.lastScreenStatus, effectiveCliId, mode, ds.streamCardNonce, ds.currentImageKey, isAdopt, showTakeover, loc, cardUsageLimit(ds), writableTerminalLinkFor(ds), isLocalCliOpenReady(ds, { cliId: effectiveCliId }));
|
|
2339
|
-
scheduleCardPatch(ds, cardJson);
|
|
2395
|
+
scheduleCardPatch(ds, cardJson, msg.turnId);
|
|
2340
2396
|
}
|
|
2341
2397
|
break;
|
|
2342
2398
|
}
|