@a1hvdy/cc-openclaw 0.23.0 → 0.25.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/src/channels/telegram/injector.js +71 -0
- package/dist/src/channels/telegram/injector.js.map +1 -1
- package/dist/src/channels/telegram-mirror/burst-accumulator.d.ts +96 -0
- package/dist/src/channels/telegram-mirror/burst-accumulator.js +130 -0
- package/dist/src/channels/telegram-mirror/burst-accumulator.js.map +1 -0
- package/dist/src/channels/telegram-mirror/callback-mapping.d.ts +61 -0
- package/dist/src/channels/telegram-mirror/callback-mapping.js +99 -0
- package/dist/src/channels/telegram-mirror/callback-mapping.js.map +1 -0
- package/dist/src/channels/telegram-mirror/card-renderer.d.ts +74 -0
- package/dist/src/channels/telegram-mirror/card-renderer.js +131 -0
- package/dist/src/channels/telegram-mirror/card-renderer.js.map +1 -0
- package/dist/src/channels/telegram-mirror/commands.d.ts +142 -0
- package/dist/src/channels/telegram-mirror/commands.js +389 -0
- package/dist/src/channels/telegram-mirror/commands.js.map +1 -0
- package/dist/src/channels/telegram-mirror/compose-buffer.d.ts +71 -0
- package/dist/src/channels/telegram-mirror/compose-buffer.js +110 -0
- package/dist/src/channels/telegram-mirror/compose-buffer.js.map +1 -0
- package/dist/src/channels/telegram-mirror/cost-views.d.ts +58 -0
- package/dist/src/channels/telegram-mirror/cost-views.js +121 -0
- package/dist/src/channels/telegram-mirror/cost-views.js.map +1 -0
- package/dist/src/channels/telegram-mirror/failure/callback-data-overflow.d.ts +21 -0
- package/dist/src/channels/telegram-mirror/failure/callback-data-overflow.js +30 -0
- package/dist/src/channels/telegram-mirror/failure/callback-data-overflow.js.map +1 -0
- package/dist/src/channels/telegram-mirror/failure/gateway-down.d.ts +15 -0
- package/dist/src/channels/telegram-mirror/failure/gateway-down.js +27 -0
- package/dist/src/channels/telegram-mirror/failure/gateway-down.js.map +1 -0
- package/dist/src/channels/telegram-mirror/failure/in-flight-conflict.d.ts +15 -0
- package/dist/src/channels/telegram-mirror/failure/in-flight-conflict.js +27 -0
- package/dist/src/channels/telegram-mirror/failure/in-flight-conflict.js.map +1 -0
- package/dist/src/channels/telegram-mirror/failure/index.d.ts +23 -0
- package/dist/src/channels/telegram-mirror/failure/index.js +35 -0
- package/dist/src/channels/telegram-mirror/failure/index.js.map +1 -0
- package/dist/src/channels/telegram-mirror/failure/model-5xx.d.ts +16 -0
- package/dist/src/channels/telegram-mirror/failure/model-5xx.js +24 -0
- package/dist/src/channels/telegram-mirror/failure/model-5xx.js.map +1 -0
- package/dist/src/channels/telegram-mirror/failure/network-blip.d.ts +17 -0
- package/dist/src/channels/telegram-mirror/failure/network-blip.js +25 -0
- package/dist/src/channels/telegram-mirror/failure/network-blip.js.map +1 -0
- package/dist/src/channels/telegram-mirror/failure/pool-exhausted-fallback.d.ts +15 -0
- package/dist/src/channels/telegram-mirror/failure/pool-exhausted-fallback.js +24 -0
- package/dist/src/channels/telegram-mirror/failure/pool-exhausted-fallback.js.map +1 -0
- package/dist/src/channels/telegram-mirror/failure/rate-limit.d.ts +16 -0
- package/dist/src/channels/telegram-mirror/failure/rate-limit.js +26 -0
- package/dist/src/channels/telegram-mirror/failure/rate-limit.js.map +1 -0
- package/dist/src/channels/telegram-mirror/failure/returning-after-24h.d.ts +14 -0
- package/dist/src/channels/telegram-mirror/failure/returning-after-24h.js +33 -0
- package/dist/src/channels/telegram-mirror/failure/returning-after-24h.js.map +1 -0
- package/dist/src/channels/telegram-mirror/failure/types.d.ts +30 -0
- package/dist/src/channels/telegram-mirror/failure/types.js +9 -0
- package/dist/src/channels/telegram-mirror/failure/types.js.map +1 -0
- package/dist/src/channels/telegram-mirror/index.d.ts +30 -0
- package/dist/src/channels/telegram-mirror/index.js +41 -0
- package/dist/src/channels/telegram-mirror/index.js.map +1 -0
- package/dist/src/channels/telegram-mirror/plan-attachment.d.ts +120 -0
- package/dist/src/channels/telegram-mirror/plan-attachment.js +138 -0
- package/dist/src/channels/telegram-mirror/plan-attachment.js.map +1 -0
- package/dist/src/channels/telegram-mirror/quota-reader.d.ts +41 -0
- package/dist/src/channels/telegram-mirror/quota-reader.js +29 -0
- package/dist/src/channels/telegram-mirror/quota-reader.js.map +1 -0
- package/dist/src/channels/telegram-mirror/sessions-keyboard.d.ts +84 -0
- package/dist/src/channels/telegram-mirror/sessions-keyboard.js +113 -0
- package/dist/src/channels/telegram-mirror/sessions-keyboard.js.map +1 -0
- package/dist/src/channels/telegram-mirror/soak-log.d.ts +98 -0
- package/dist/src/channels/telegram-mirror/soak-log.js +136 -0
- package/dist/src/channels/telegram-mirror/soak-log.js.map +1 -0
- package/dist/src/channels/telegram-mirror/state-machine.d.ts +102 -0
- package/dist/src/channels/telegram-mirror/state-machine.js +117 -0
- package/dist/src/channels/telegram-mirror/state-machine.js.map +1 -0
- package/dist/src/channels/telegram-mirror/sync-commands.d.ts +63 -0
- package/dist/src/channels/telegram-mirror/sync-commands.js +51 -0
- package/dist/src/channels/telegram-mirror/sync-commands.js.map +1 -0
- package/dist/src/channels/telegram-mirror/threshold-watcher.d.ts +54 -0
- package/dist/src/channels/telegram-mirror/threshold-watcher.js +77 -0
- package/dist/src/channels/telegram-mirror/threshold-watcher.js.map +1 -0
- package/dist/src/command-router/cc-handler.js +13 -30
- package/dist/src/command-router/cc-handler.js.map +1 -1
- package/dist/src/engines/persistent-session.js +5 -0
- package/dist/src/engines/persistent-session.js.map +1 -1
- package/dist/src/index.js +22 -20
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/auto-recovery.js +1 -1
- package/dist/src/lib/auto-recovery.js.map +1 -1
- package/dist/src/lib/drift-detector.js +1 -1
- package/dist/src/lib/drift-detector.js.map +1 -1
- package/dist/src/lib/error-renderer.d.ts +23 -0
- package/dist/src/lib/error-renderer.js +106 -0
- package/dist/src/lib/error-renderer.js.map +1 -0
- package/dist/src/lib/perf/speculative-bubble.d.ts +27 -0
- package/dist/src/lib/perf/speculative-bubble.js +36 -0
- package/dist/src/lib/perf/speculative-bubble.js.map +1 -0
- package/dist/src/lib/session-registry.d.ts +66 -0
- package/dist/src/lib/session-registry.js +188 -0
- package/dist/src/lib/session-registry.js.map +1 -0
- package/dist/src/lib/telegram-bot-api.d.ts +100 -0
- package/dist/src/lib/telegram-bot-api.js +204 -0
- package/dist/src/lib/telegram-bot-api.js.map +1 -0
- package/dist/src/openai-compat/openai-compat.d.ts +2 -0
- package/dist/src/openai-compat/openai-compat.js +85 -0
- package/dist/src/openai-compat/openai-compat.js.map +1 -1
- package/dist/src/patches/sysprompt-strip.spec.d.ts +33 -0
- package/dist/src/patches/sysprompt-strip.spec.js +53 -0
- package/dist/src/patches/sysprompt-strip.spec.js.map +1 -0
- package/dist/src/session/session-manager.d.ts +4 -0
- package/dist/src/session/session-manager.js +99 -5
- package/dist/src/session/session-manager.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/lib/perf/resident-cli-pool.d.ts +0 -39
- package/dist/src/lib/perf/resident-cli-pool.js +0 -60
- package/dist/src/lib/perf/resident-cli-pool.js.map +0 -1
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/channels/telegram-mirror/state-machine.ts — v0.25.0 M2.
|
|
3
|
+
*
|
|
4
|
+
* Per-chat turn-lifecycle state machine for the Telegram Terminal Mirror.
|
|
5
|
+
* Consumes Claude stream events (tool_use / tool_result / text / turn_done)
|
|
6
|
+
* and produces a Turn object the card-renderer (sibling module) can format
|
|
7
|
+
* into Telegram message bodies.
|
|
8
|
+
*
|
|
9
|
+
* Naming note: this is NOT a 1:1 port of the legacy state-machine.ts —
|
|
10
|
+
* legacy is a message_sending cross-path-dedup hook. Per ADR-001 (mimic
|
|
11
|
+
* the terminal flow) the mirror's state-machine models what a user sees
|
|
12
|
+
* during a turn (running tools → completion), which is closer to a UI
|
|
13
|
+
* controller than legacy's API-dispatch hook. The name is reused for
|
|
14
|
+
* cross-reference clarity; the shape diverges intentionally.
|
|
15
|
+
*
|
|
16
|
+
* Pure module — no I/O, no Telegram-API calls. Wiring into register() and
|
|
17
|
+
* the actual gateway event bus lands in M3/M4 once /sessions provides a
|
|
18
|
+
* user-facing entry point. M2's scope: the abstraction + tests.
|
|
19
|
+
*/
|
|
20
|
+
export class TurnStateMachine {
|
|
21
|
+
turns = new Map();
|
|
22
|
+
/**
|
|
23
|
+
* Start (or restart) a turn for the given chat. If a turn already exists,
|
|
24
|
+
* its 'done' state is preserved as the prior turn until a new start
|
|
25
|
+
* overwrites it — the mirror does not keep history at this layer.
|
|
26
|
+
*/
|
|
27
|
+
start(chatId, now = Date.now()) {
|
|
28
|
+
const turn = {
|
|
29
|
+
chatId,
|
|
30
|
+
state: 'working',
|
|
31
|
+
startedAt: now,
|
|
32
|
+
toolCalls: [],
|
|
33
|
+
assistantText: '',
|
|
34
|
+
thinkingText: '',
|
|
35
|
+
};
|
|
36
|
+
this.turns.set(chatId, turn);
|
|
37
|
+
return turn;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Apply a stream event. Returns the updated turn, or undefined if no
|
|
41
|
+
* turn is active for the chat. The state machine accepts:
|
|
42
|
+
* - tool_use → push a ToolCallRecord
|
|
43
|
+
* - tool_result → resolve the matching ToolCallRecord
|
|
44
|
+
* - text → append to assistantText
|
|
45
|
+
* Other event types are ignored at this layer; downstream milestones add
|
|
46
|
+
* thinking/insight handling (M6) and plan-mode handling (M9).
|
|
47
|
+
*/
|
|
48
|
+
applyEvent(chatId, event) {
|
|
49
|
+
const turn = this.turns.get(chatId);
|
|
50
|
+
if (!turn)
|
|
51
|
+
return undefined;
|
|
52
|
+
if (turn.state !== 'working')
|
|
53
|
+
return turn;
|
|
54
|
+
if (event.type === 'tool_use') {
|
|
55
|
+
turn.toolCalls.push({
|
|
56
|
+
name: event.tool?.name ?? 'Unknown',
|
|
57
|
+
input: event.tool?.input ?? {},
|
|
58
|
+
toolUseId: event.id ?? event.tool_use_id ?? '',
|
|
59
|
+
});
|
|
60
|
+
return turn;
|
|
61
|
+
}
|
|
62
|
+
if (event.type === 'tool_result') {
|
|
63
|
+
const useId = event.tool_use_id ?? event.id ?? '';
|
|
64
|
+
const match = turn.toolCalls.find((tc) => tc.toolUseId === useId);
|
|
65
|
+
if (match) {
|
|
66
|
+
match.result = event.content ?? event.output ?? '';
|
|
67
|
+
match.isError = Boolean(event.is_error || event.error);
|
|
68
|
+
}
|
|
69
|
+
return turn;
|
|
70
|
+
}
|
|
71
|
+
if (event.type === 'text') {
|
|
72
|
+
turn.assistantText += event.result ?? '';
|
|
73
|
+
return turn;
|
|
74
|
+
}
|
|
75
|
+
if (event.type === 'thinking') {
|
|
76
|
+
// M6: extended-thinking deltas land here. Claude's API emits these
|
|
77
|
+
// separately from 'text' events; the mirror accumulates them so the
|
|
78
|
+
// renderer can surface them above the assistant text per ADR-001
|
|
79
|
+
// (mimic the terminal flow — terminal users see thinking before
|
|
80
|
+
// the response renders).
|
|
81
|
+
const piece = typeof event.result === 'string'
|
|
82
|
+
? event.result
|
|
83
|
+
: typeof event.content === 'string'
|
|
84
|
+
? event.content
|
|
85
|
+
: '';
|
|
86
|
+
turn.thinkingText += piece;
|
|
87
|
+
return turn;
|
|
88
|
+
}
|
|
89
|
+
return turn;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* End the active turn for chatId. Transitions state to 'done' and stamps
|
|
93
|
+
* endedAt. Returns the finalized turn, or undefined if no turn was active.
|
|
94
|
+
*/
|
|
95
|
+
end(chatId, now = Date.now()) {
|
|
96
|
+
const turn = this.turns.get(chatId);
|
|
97
|
+
if (!turn)
|
|
98
|
+
return undefined;
|
|
99
|
+
turn.state = 'done';
|
|
100
|
+
turn.endedAt = now;
|
|
101
|
+
return turn;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Returns the active or most-recently-ended turn for chatId.
|
|
105
|
+
*/
|
|
106
|
+
getTurn(chatId) {
|
|
107
|
+
return this.turns.get(chatId);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Drop the cached turn. Test-only convenience; production code starts a
|
|
111
|
+
* new turn instead.
|
|
112
|
+
*/
|
|
113
|
+
clear(chatId) {
|
|
114
|
+
this.turns.delete(chatId);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=state-machine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../../../src/channels/telegram-mirror/state-machine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAwDH,MAAM,OAAO,gBAAgB;IACV,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAEjD;;;;OAIG;IACH,KAAK,CAAC,MAAc,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAS;YACjB,MAAM;YACN,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,EAAE;SACjB,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,MAAc,EAAE,KAAkB;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAE1C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS;gBACnC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC9B,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE;aAC/C,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;YAClE,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;gBACnD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,mEAAmE;YACnE,oEAAoE;YACpE,iEAAiE;YACjE,gEAAgE;YAChE,yBAAyB;YACzB,MAAM,KAAK,GACT,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;gBAC9B,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBACjC,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,MAAc,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAc;QAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/channels/telegram-mirror/sync-commands.ts — v0.25.0 M5.
|
|
3
|
+
*
|
|
4
|
+
* ADR-009 — Bot calls Telegram's setMyCommands exactly once per plugin
|
|
5
|
+
* boot. Re-syncing per-session creates a race with the client cache; per
|
|
6
|
+
* invocation wastes API calls; never syncing forfeits the autocomplete UX
|
|
7
|
+
* win. Boot-only is the saddle point.
|
|
8
|
+
*
|
|
9
|
+
* R-6 monitoring: if A1 installs a new skill or top-7 changes mid-session
|
|
10
|
+
* and expects autocomplete to update without a gateway restart, that's
|
|
11
|
+
* the documented exception per ADR-009.
|
|
12
|
+
*
|
|
13
|
+
* Idempotency is process-scope. The synced flag is reset when the call
|
|
14
|
+
* itself throws, so a retry on the next register() attempt can succeed.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Telegram setMyCommands payload shape. Pinned to the subset cc-openclaw
|
|
18
|
+
* actually uses; full upstream payload supports scope/language_code params
|
|
19
|
+
* that the mirror doesn't need.
|
|
20
|
+
*/
|
|
21
|
+
export interface SetMyCommandsPayload {
|
|
22
|
+
commands: Array<{
|
|
23
|
+
command: string;
|
|
24
|
+
description: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Minimum logger surface (works with console or api.logger). Made narrow
|
|
29
|
+
* deliberately so callers can pass any structured logger.
|
|
30
|
+
*/
|
|
31
|
+
export interface SyncLogger {
|
|
32
|
+
info: (msg: string, ...rest: unknown[]) => void;
|
|
33
|
+
warn: (msg: string, ...rest: unknown[]) => void;
|
|
34
|
+
}
|
|
35
|
+
export interface SyncOptions {
|
|
36
|
+
/**
|
|
37
|
+
* Telegram setMyCommands dispatcher — accepts the payload and returns a
|
|
38
|
+
* promise that resolves on success or rejects on network/API error.
|
|
39
|
+
* Tests pass the G-3 mock; production wires a fetch-based caller.
|
|
40
|
+
*/
|
|
41
|
+
setMyCommands: (payload: SetMyCommandsPayload) => Promise<unknown>;
|
|
42
|
+
logger?: SyncLogger;
|
|
43
|
+
}
|
|
44
|
+
export interface SyncResult {
|
|
45
|
+
/** True when this invocation was a no-op because a prior boot already synced. */
|
|
46
|
+
alreadySynced: boolean;
|
|
47
|
+
/** Number of commands in the payload sent (0 when alreadySynced). */
|
|
48
|
+
commandCount: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Sync the top-7 phone-tier commands to Telegram. Idempotent across a
|
|
52
|
+
* process — subsequent calls return alreadySynced:true without dispatching.
|
|
53
|
+
*
|
|
54
|
+
* On dispatcher error, the synced flag is reset so a follow-up call can
|
|
55
|
+
* retry. The error is propagated to the caller; M5's plugin-boot wire-up
|
|
56
|
+
* catches it and emits the warn log so register() never blocks on it.
|
|
57
|
+
*/
|
|
58
|
+
export declare function syncMyCommands(opts: SyncOptions): Promise<SyncResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Test-only reset for the per-process synced flag. Production never calls
|
|
61
|
+
* this; each gateway boot starts a fresh process with synced=false.
|
|
62
|
+
*/
|
|
63
|
+
export declare function _resetSyncedForTests(): void;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/channels/telegram-mirror/sync-commands.ts — v0.25.0 M5.
|
|
3
|
+
*
|
|
4
|
+
* ADR-009 — Bot calls Telegram's setMyCommands exactly once per plugin
|
|
5
|
+
* boot. Re-syncing per-session creates a race with the client cache; per
|
|
6
|
+
* invocation wastes API calls; never syncing forfeits the autocomplete UX
|
|
7
|
+
* win. Boot-only is the saddle point.
|
|
8
|
+
*
|
|
9
|
+
* R-6 monitoring: if A1 installs a new skill or top-7 changes mid-session
|
|
10
|
+
* and expects autocomplete to update without a gateway restart, that's
|
|
11
|
+
* the documented exception per ADR-009.
|
|
12
|
+
*
|
|
13
|
+
* Idempotency is process-scope. The synced flag is reset when the call
|
|
14
|
+
* itself throws, so a retry on the next register() attempt can succeed.
|
|
15
|
+
*/
|
|
16
|
+
import { TOP_7_COMMANDS } from './commands.js';
|
|
17
|
+
let synced = false;
|
|
18
|
+
/**
|
|
19
|
+
* Sync the top-7 phone-tier commands to Telegram. Idempotent across a
|
|
20
|
+
* process — subsequent calls return alreadySynced:true without dispatching.
|
|
21
|
+
*
|
|
22
|
+
* On dispatcher error, the synced flag is reset so a follow-up call can
|
|
23
|
+
* retry. The error is propagated to the caller; M5's plugin-boot wire-up
|
|
24
|
+
* catches it and emits the warn log so register() never blocks on it.
|
|
25
|
+
*/
|
|
26
|
+
export async function syncMyCommands(opts) {
|
|
27
|
+
if (synced) {
|
|
28
|
+
return { alreadySynced: true, commandCount: 0 };
|
|
29
|
+
}
|
|
30
|
+
synced = true;
|
|
31
|
+
const payload = { commands: TOP_7_COMMANDS.slice() };
|
|
32
|
+
try {
|
|
33
|
+
await opts.setMyCommands(payload);
|
|
34
|
+
opts.logger?.info(`[cc-openclaw/telegram-mirror] setMyCommands synced — ${payload.commands.length} commands.`);
|
|
35
|
+
return { alreadySynced: false, commandCount: payload.commands.length };
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
synced = false;
|
|
39
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
40
|
+
opts.logger?.warn(`[cc-openclaw/telegram-mirror] setMyCommands failed (will retry on next boot): ${msg}`);
|
|
41
|
+
throw err;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Test-only reset for the per-process synced flag. Production never calls
|
|
46
|
+
* this; each gateway boot starts a fresh process with synced=false.
|
|
47
|
+
*/
|
|
48
|
+
export function _resetSyncedForTests() {
|
|
49
|
+
synced = false;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=sync-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-commands.js","sourceRoot":"","sources":["../../../../src/channels/telegram-mirror/sync-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAqC/C,IAAI,MAAM,GAAG,KAAK,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAiB;IACpD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAClD,CAAC;IACD,MAAM,GAAG,IAAI,CAAC;IACd,MAAM,OAAO,GAAyB,EAAE,QAAQ,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;IAC3E,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,wDAAwD,OAAO,CAAC,QAAQ,CAAC,MAAM,YAAY,CAC5F,CAAC;QACF,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,KAAK,CAAC;QACf,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,iFAAiF,GAAG,EAAE,CACvF,CAAC;QACF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/channels/telegram-mirror/threshold-watcher.ts — v0.25.0 M11.
|
|
3
|
+
*
|
|
4
|
+
* Per-chat stateful detector for Max 20x quota thresholds. The dispatcher
|
|
5
|
+
* polls check(chatId, currentPercent) on a cadence (typically once per
|
|
6
|
+
* minute via status-tee freshness); the watcher fires AT MOST ONCE per
|
|
7
|
+
* upward crossing of each threshold. Hysteresis: dropping below a
|
|
8
|
+
* threshold re-arms it for the next upward crossing.
|
|
9
|
+
*
|
|
10
|
+
* Default thresholds (per PRP M11): 70% / 90% / 95%.
|
|
11
|
+
*
|
|
12
|
+
* Pause-now UX surfaces at the 95% level only — the lower thresholds are
|
|
13
|
+
* advisory.
|
|
14
|
+
*
|
|
15
|
+
* Risk reference: R-8 (Telegram rate limits) is mitigated by the
|
|
16
|
+
* once-per-crossing semantic — heavy bursts don't drown the chat in
|
|
17
|
+
* advisory pings.
|
|
18
|
+
*/
|
|
19
|
+
export interface ThresholdWatcherOptions {
|
|
20
|
+
/** Ascending list of percent thresholds (default 70/90/95). */
|
|
21
|
+
thresholds?: number[];
|
|
22
|
+
}
|
|
23
|
+
export interface ThresholdCheckResult {
|
|
24
|
+
/**
|
|
25
|
+
* When this check forced a fresh upward crossing, this is the HIGHEST
|
|
26
|
+
* threshold crossed in this call. Undefined when no crossing fired.
|
|
27
|
+
*/
|
|
28
|
+
fired?: number;
|
|
29
|
+
}
|
|
30
|
+
export declare class ThresholdWatcher {
|
|
31
|
+
private readonly states;
|
|
32
|
+
private readonly thresholds;
|
|
33
|
+
constructor(opts?: ThresholdWatcherOptions);
|
|
34
|
+
/**
|
|
35
|
+
* Inspect the latest quota percent for the chat. Returns
|
|
36
|
+
* `{ fired: <threshold> }` when one or more thresholds were crossed
|
|
37
|
+
* upward in this call (the highest crossed is reported). Returns `{}`
|
|
38
|
+
* when no fresh crossing occurred. Sub-threshold drops re-arm the
|
|
39
|
+
* corresponding threshold for a future crossing.
|
|
40
|
+
*
|
|
41
|
+
* The first call for a chatId initialises state with lastPercent=0 so
|
|
42
|
+
* the very first check above a threshold reports it as a fresh crossing.
|
|
43
|
+
*/
|
|
44
|
+
check(chatId: string, currentPercent: number): ThresholdCheckResult;
|
|
45
|
+
/** Reset state for a chatId. Used after an explicit user pause. */
|
|
46
|
+
reset(chatId: string): void;
|
|
47
|
+
/** Read-only inspector for tests / monitoring. */
|
|
48
|
+
inspect(chatId: string): {
|
|
49
|
+
lastPercent: number;
|
|
50
|
+
crossed: number[];
|
|
51
|
+
} | undefined;
|
|
52
|
+
/** Thresholds list (for tests). */
|
|
53
|
+
thresholdList(): readonly number[];
|
|
54
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/channels/telegram-mirror/threshold-watcher.ts — v0.25.0 M11.
|
|
3
|
+
*
|
|
4
|
+
* Per-chat stateful detector for Max 20x quota thresholds. The dispatcher
|
|
5
|
+
* polls check(chatId, currentPercent) on a cadence (typically once per
|
|
6
|
+
* minute via status-tee freshness); the watcher fires AT MOST ONCE per
|
|
7
|
+
* upward crossing of each threshold. Hysteresis: dropping below a
|
|
8
|
+
* threshold re-arms it for the next upward crossing.
|
|
9
|
+
*
|
|
10
|
+
* Default thresholds (per PRP M11): 70% / 90% / 95%.
|
|
11
|
+
*
|
|
12
|
+
* Pause-now UX surfaces at the 95% level only — the lower thresholds are
|
|
13
|
+
* advisory.
|
|
14
|
+
*
|
|
15
|
+
* Risk reference: R-8 (Telegram rate limits) is mitigated by the
|
|
16
|
+
* once-per-crossing semantic — heavy bursts don't drown the chat in
|
|
17
|
+
* advisory pings.
|
|
18
|
+
*/
|
|
19
|
+
const DEFAULT_THRESHOLDS = [70, 90, 95];
|
|
20
|
+
export class ThresholdWatcher {
|
|
21
|
+
states = new Map();
|
|
22
|
+
thresholds;
|
|
23
|
+
constructor(opts = {}) {
|
|
24
|
+
this.thresholds = [...(opts.thresholds ?? DEFAULT_THRESHOLDS)].sort((a, b) => a - b);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Inspect the latest quota percent for the chat. Returns
|
|
28
|
+
* `{ fired: <threshold> }` when one or more thresholds were crossed
|
|
29
|
+
* upward in this call (the highest crossed is reported). Returns `{}`
|
|
30
|
+
* when no fresh crossing occurred. Sub-threshold drops re-arm the
|
|
31
|
+
* corresponding threshold for a future crossing.
|
|
32
|
+
*
|
|
33
|
+
* The first call for a chatId initialises state with lastPercent=0 so
|
|
34
|
+
* the very first check above a threshold reports it as a fresh crossing.
|
|
35
|
+
*/
|
|
36
|
+
check(chatId, currentPercent) {
|
|
37
|
+
const state = this.states.get(chatId) ?? { lastPercent: 0, crossed: new Set() };
|
|
38
|
+
// Hysteresis: if we've dropped below any previously-crossed threshold,
|
|
39
|
+
// remove it from crossed so the next upward move re-fires.
|
|
40
|
+
for (const t of this.thresholds) {
|
|
41
|
+
if (currentPercent < t && state.crossed.has(t)) {
|
|
42
|
+
state.crossed.delete(t);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Find every threshold that this call CROSSED upward (prev < t,
|
|
46
|
+
// current >= t) AND that isn't already marked crossed. Then fire on
|
|
47
|
+
// the highest one. Mark all of them crossed so a no-op re-poll
|
|
48
|
+
// doesn't refire.
|
|
49
|
+
let highestFired;
|
|
50
|
+
for (const t of this.thresholds) {
|
|
51
|
+
if (state.lastPercent < t && currentPercent >= t && !state.crossed.has(t)) {
|
|
52
|
+
state.crossed.add(t);
|
|
53
|
+
if (highestFired === undefined || t > highestFired)
|
|
54
|
+
highestFired = t;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
state.lastPercent = currentPercent;
|
|
58
|
+
this.states.set(chatId, state);
|
|
59
|
+
return highestFired !== undefined ? { fired: highestFired } : {};
|
|
60
|
+
}
|
|
61
|
+
/** Reset state for a chatId. Used after an explicit user pause. */
|
|
62
|
+
reset(chatId) {
|
|
63
|
+
this.states.delete(chatId);
|
|
64
|
+
}
|
|
65
|
+
/** Read-only inspector for tests / monitoring. */
|
|
66
|
+
inspect(chatId) {
|
|
67
|
+
const s = this.states.get(chatId);
|
|
68
|
+
if (!s)
|
|
69
|
+
return undefined;
|
|
70
|
+
return { lastPercent: s.lastPercent, crossed: [...s.crossed].sort((a, b) => a - b) };
|
|
71
|
+
}
|
|
72
|
+
/** Thresholds list (for tests). */
|
|
73
|
+
thresholdList() {
|
|
74
|
+
return this.thresholds;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=threshold-watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threshold-watcher.js","sourceRoot":"","sources":["../../../../src/channels/telegram-mirror/threshold-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAqBxC,MAAM,OAAO,gBAAgB;IACV,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC3C,UAAU,CAAW;IAEtC,YAAY,OAAgC,EAAE;QAC5C,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvF,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAc,EAAE,cAAsB;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QAEhF,uEAAuE;QACvE,2DAA2D;QAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,cAAc,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,oEAAoE;QACpE,+DAA+D;QAC/D,kBAAkB;QAClB,IAAI,YAAgC,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,GAAG,YAAY;oBAAE,YAAY,GAAG,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,KAAK,CAAC,WAAW,GAAG,cAAc,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,MAAc;QAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,kDAAkD;IAClD,OAAO,CAAC,MAAc;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACzB,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IACvF,CAAC;IAED,mCAAmC;IACnC,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -375,38 +375,21 @@ export function register(api) {
|
|
|
375
375
|
const sessionId = generateSessionId();
|
|
376
376
|
const sessionName = `cc-${slug}`;
|
|
377
377
|
logger.info(`${PLUGIN_TAG} /cc claimed: id=${sessionId} slug=${slug} sender=${senderId} chat=${chatId}`);
|
|
378
|
-
//
|
|
379
|
-
//
|
|
380
|
-
//
|
|
381
|
-
//
|
|
382
|
-
|
|
378
|
+
// v0.24.0: M10 + M11 relocated to openai-compat default path.
|
|
379
|
+
// - M10 haiku-route → openai-compat.ts:applyDefaultPathPerfHooks (active override)
|
|
380
|
+
// - M11 predictive-continuation → same site (active injection)
|
|
381
|
+
// /cc messages skip openai-compat (they take cc-handler's claim path),
|
|
382
|
+
// so /cc explicitly does NOT inherit those mutations — by design:
|
|
383
|
+
// /cc is a power-user override of routing/model decisions, and silent
|
|
384
|
+
// model-switching on /cc would surprise users. The previous v0.23.0
|
|
385
|
+
// observability-only logs for M10/M11 on /cc are deleted as dead code.
|
|
386
|
+
//
|
|
387
|
+
// M9 spec-bubble is preserved here for /cc users. The default-path
|
|
388
|
+
// injector handler (channels/telegram/injector.ts) skips slash-prefixed
|
|
389
|
+
// messages, so without this call /cc would lose the bubble.
|
|
390
|
+
void import('../lib/perf/speculative-bubble.js')
|
|
383
391
|
.then(({ emitSpeculativeThinking }) => emitSpeculativeThinking({ chatId, threadId }))
|
|
384
392
|
.catch(() => { });
|
|
385
|
-
// M11 — predictive continuation. If user typed "more"/"continue"/"and?",
|
|
386
|
-
// route through the continuation handler. Flag-off path is a no-op.
|
|
387
|
-
// Deliberately checked LATE (after the formal /cc dispatch claim) so the
|
|
388
|
-
// pattern only fires when /cc itself is engaged, not on bare chat.
|
|
389
|
-
void import('../lib/perf/predictive-continuation.js')
|
|
390
|
-
.then(({ isPredictiveContinuation }) => {
|
|
391
|
-
const decision = isPredictiveContinuation(prompt);
|
|
392
|
-
if (decision.isContinuation) {
|
|
393
|
-
logger.info(`${PLUGIN_TAG} M11 predictive continuation matched: ${decision.matched}`);
|
|
394
|
-
}
|
|
395
|
-
})
|
|
396
|
-
.catch(() => { });
|
|
397
|
-
// M10 — Haiku cheap-route classifier observability. Logs the route
|
|
398
|
-
// decision so M8 baseline data can show how often the trivial-pattern
|
|
399
|
-
// matcher would fire. Actual model-switching is a follow-up integration
|
|
400
|
-
// pending baseline data — invented routing logic without measurement
|
|
401
|
-
// would risk false positives (user-visible quality regressions).
|
|
402
|
-
void import('../lib/perf/haiku-route.js')
|
|
403
|
-
.then(({ classifyForHaikuRoute }) => {
|
|
404
|
-
const route = classifyForHaikuRoute(prompt);
|
|
405
|
-
if (route.routeToHaiku) {
|
|
406
|
-
logger.info(`${PLUGIN_TAG} M10 haiku-route trivial-match (reason=${route.reason})`);
|
|
407
|
-
}
|
|
408
|
-
})
|
|
409
|
-
.catch(() => { });
|
|
410
393
|
const meta = {
|
|
411
394
|
id: sessionId,
|
|
412
395
|
slug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cc-handler.js","sourceRoot":"","sources":["../../../src/command-router/cc-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cc-handler.js","sourceRoot":"","sources":["../../../src/command-router/cc-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,6 +78,11 @@ export class PersistentClaudeSession extends EventEmitter {
|
|
|
78
78
|
}
|
|
79
79
|
// ─── Start ───────────────────────────────────────────────────────────────
|
|
80
80
|
async start() {
|
|
81
|
+
// v0.24.0: idempotency guard. Pool callers (SubprocessPool._spawnWarm)
|
|
82
|
+
// have already started the subprocess before handing the session to a
|
|
83
|
+
// borrower; SessionManager calling start() again here would respawn.
|
|
84
|
+
if (this._isReady && this.proc)
|
|
85
|
+
return this;
|
|
81
86
|
const resolvedBin = this.claudeBin;
|
|
82
87
|
// v0.6.0: --include-partial-messages was hardcoded ON, emitting one NDJSON
|
|
83
88
|
// line per generated token (1000+ events for a 1000-token reply). The
|