@a1hvdy/cc-openclaw 0.26.0 → 0.26.1

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.
@@ -30,6 +30,8 @@ export const MAX_STORE_SIZE = 100;
30
30
  const metadataStore = new Map();
31
31
  // ── Idempotency Guard ─────────────────────────────────────────────────────
32
32
  import { defaultRegisterGuard } from '../../lib/register-guard.js';
33
+ import { emitSpeculativeThinking } from './speculative-bubble.js';
34
+ import { notifyTyping } from '../../lib/perf/typing-prefetch.js';
33
35
  // ── Helpers ───────────────────────────────────────────────────────────────
34
36
  function isEnabled() {
35
37
  return process.env[ENV_FLAG] === 'true';
@@ -123,6 +125,75 @@ export function register(api) {
123
125
  // Non-claiming — let the message proceed to cc-handler or model
124
126
  return undefined;
125
127
  });
128
+ // ── v0.24.0 default-path perf hooks: M9 spec-bubble + M2 first-arrival ──
129
+ //
130
+ // Second, independent before_dispatch registration. Deliberately NOT gated
131
+ // on UX_BRIDGE_ALL_SESSIONS — this handler is responsible for perf wins
132
+ // that should fire on every non-/cc Telegram message regardless of the
133
+ // UX bridge flag. Flag-gated individually via:
134
+ // - CC_OPENCLAW_PERF_TYPING_PREFETCH (M2 first-arrival prefetch)
135
+ // - CC_OPENCLAW_PERF_SPEC_BUBBLE (M9 speculative "Thinking…" bubble)
136
+ // Slash-prefixed messages (/cc, slash skills) are skipped to avoid
137
+ // double-bubble with cc-handler's claim path.
138
+ api.on('before_dispatch', async (...args) => {
139
+ try {
140
+ const event = args[0];
141
+ const ctx = args[1];
142
+ if (event.channel !== 'telegram')
143
+ return undefined;
144
+ const content = (typeof event.content === 'string'
145
+ ? (event.content)
146
+ : '').trim();
147
+ if (content.startsWith('/'))
148
+ return undefined;
149
+ const sessionKey = ctx.sessionKey;
150
+ if (!sessionKey)
151
+ return undefined;
152
+ const { chatId, threadId } = parseConversationId(ctx.conversationId ?? '');
153
+ if (!chatId)
154
+ return undefined;
155
+ // M2 — first-arrival prefetch. The helper has its own 4s cooldown
156
+ // (typing-prefetch.ts:WARMUP_COOLDOWN_MS) so calling per-message is safe;
157
+ // duplicate calls within the cooldown are no-ops.
158
+ if (process.env.CC_OPENCLAW_PERF_TYPING_PREFETCH === '1') {
159
+ try {
160
+ notifyTyping(chatId);
161
+ }
162
+ catch {
163
+ // notifyTyping is sync + best-effort; never fail dispatch
164
+ }
165
+ }
166
+ // M9 — speculative bubble. The helper has its own getPerfSpecBubbleEnabled()
167
+ // check, so the outer env gate here is belt-and-braces. We persist the
168
+ // returned message_id under sk:${sessionKey} so a future live-card
169
+ // adoption pass (deferred to v0.25.0) can edit the same Telegram message
170
+ // in place instead of sending a fresh ack.
171
+ if (process.env.CC_OPENCLAW_PERF_SPEC_BUBBLE === '1') {
172
+ void emitSpeculativeThinking({ chatId, threadId })
173
+ .then((msgId) => {
174
+ if (msgId == null)
175
+ return;
176
+ const UX_META = Symbol.for('telegram-ux-bridge:metadata');
177
+ const store = globalThis[UX_META];
178
+ if (store instanceof Map) {
179
+ const existing = store.get(`sk:${sessionKey}`) ?? {};
180
+ store.set(`sk:${sessionKey}`, {
181
+ ...existing,
182
+ speculativeAckMessageId: msgId,
183
+ storedAt: Date.now(),
184
+ });
185
+ }
186
+ })
187
+ .catch(() => {
188
+ // best-effort; never fail dispatch on a bubble error
189
+ });
190
+ }
191
+ }
192
+ catch {
193
+ // any error in perf hooks must never claim/break dispatch
194
+ }
195
+ return undefined;
196
+ });
126
197
  // ── before_tool_call: inject metadata into claude_session_send ────────
127
198
  //
128
199
  // When Savvy (GPT) decides to delegate and calls claude_session_send,
@@ -1 +1 @@
1
- {"version":3,"file":"injector.js","sourceRoot":"","sources":["../../../../src/channels/telegram/injector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"injector.js","sourceRoot":"","sources":["../../../../src/channels/telegram/injector.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * src/channels/telegram-mirror/card-state.ts — v0.26.0.
2
+ * src/channels/telegram-mirror/card-state.ts — v0.26.1.
3
3
  *
4
4
  * Module-scope shared state for the active Telegram mirror cards. Extracted
5
5
  * from inbound-handler.ts so the openai-compat handlers (which see the real
@@ -9,6 +9,25 @@
9
9
  * Single source of truth: one Map<chatId, CardEntry>. Both inbound-handler
10
10
  * (writer on before_dispatch / reply_dispatch) and turn-bridge (writer from
11
11
  * streaming + non-streaming handlers) read+write here.
12
+ *
13
+ * ── v0.26.1 live-mirror fix: globalThis singleton ──────────────────────────
14
+ * A plain `new Map()` at module scope is only a singleton if every importer
15
+ * shares the same module INSTANCE. That assumption breaks here: the inbound
16
+ * handler is loaded via the plugin's register() graph, but the openai-compat
17
+ * handlers are loaded via cwd-patch's EAGER `await import(<abs path>)` of the
18
+ * embedded server (session-bootstrap/cwd-patch.ts:906/336). When the same
19
+ * file is reached through two different load roots, Node can hold TWO module
20
+ * instances → two different Maps. The card the inbound handler registers
21
+ * (so the user sees "▶ Working" and later "✓ Done") then lives in instance A,
22
+ * while turn-bridge's pushToolUse/pushAssistantText run against instance B's
23
+ * empty Map → every push silently no-ops. That is the exact "card frame
24
+ * renders, body never fills" symptom that survived v0.25.7/0.25.9/0.26.0.
25
+ *
26
+ * Fix: anchor the Map on globalThis under a Symbol.for() key so ALL instances
27
+ * resolve to ONE Map regardless of how the module was loaded. This mirrors
28
+ * the codebase's existing cross-instance pattern (cwd-patch's
29
+ * `Symbol.for('telegram-ux-bridge:metadata')` UX_META store). Harmless if the
30
+ * single-instance assumption already held — it's the same one Map either way.
12
31
  */
13
32
  import type { TurnStateMachine } from './state-machine.js';
14
33
  export interface CardEntry {
@@ -19,5 +38,16 @@ export interface CardEntry {
19
38
  /** Telegram message_thread_id when the chat is a forum/group topic. */
20
39
  threadId?: number;
21
40
  }
22
- /** chatId → active card. Cleared when reply_dispatch finalizes the turn. */
41
+ /**
42
+ * chatId → active card. Cleared at model-turn end by
43
+ * turn-bridge.finalizeActiveCards(). Process-global singleton (see header) so
44
+ * the inbound handler and the openai-compat handlers share ONE Map even across
45
+ * module-instance splits.
46
+ */
23
47
  export declare const cardState: Map<string, CardEntry>;
48
+ /**
49
+ * Compact card-state summary for the turn-bridge push logs and the
50
+ * openai-compat handler entry log — the permanent live-mirror success-gate
51
+ * signal (cards>0 during a turn means events are reaching the active card).
52
+ */
53
+ export declare function cardStateDebug(): string;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * src/channels/telegram-mirror/card-state.ts — v0.26.0.
2
+ * src/channels/telegram-mirror/card-state.ts — v0.26.1.
3
3
  *
4
4
  * Module-scope shared state for the active Telegram mirror cards. Extracted
5
5
  * from inbound-handler.ts so the openai-compat handlers (which see the real
@@ -9,7 +9,41 @@
9
9
  * Single source of truth: one Map<chatId, CardEntry>. Both inbound-handler
10
10
  * (writer on before_dispatch / reply_dispatch) and turn-bridge (writer from
11
11
  * streaming + non-streaming handlers) read+write here.
12
+ *
13
+ * ── v0.26.1 live-mirror fix: globalThis singleton ──────────────────────────
14
+ * A plain `new Map()` at module scope is only a singleton if every importer
15
+ * shares the same module INSTANCE. That assumption breaks here: the inbound
16
+ * handler is loaded via the plugin's register() graph, but the openai-compat
17
+ * handlers are loaded via cwd-patch's EAGER `await import(<abs path>)` of the
18
+ * embedded server (session-bootstrap/cwd-patch.ts:906/336). When the same
19
+ * file is reached through two different load roots, Node can hold TWO module
20
+ * instances → two different Maps. The card the inbound handler registers
21
+ * (so the user sees "▶ Working" and later "✓ Done") then lives in instance A,
22
+ * while turn-bridge's pushToolUse/pushAssistantText run against instance B's
23
+ * empty Map → every push silently no-ops. That is the exact "card frame
24
+ * renders, body never fills" symptom that survived v0.25.7/0.25.9/0.26.0.
25
+ *
26
+ * Fix: anchor the Map on globalThis under a Symbol.for() key so ALL instances
27
+ * resolve to ONE Map regardless of how the module was loaded. This mirrors
28
+ * the codebase's existing cross-instance pattern (cwd-patch's
29
+ * `Symbol.for('telegram-ux-bridge:metadata')` UX_META store). Harmless if the
30
+ * single-instance assumption already held — it's the same one Map either way.
31
+ */
32
+ const CARD_STATE_KEY = Symbol.for('cc-openclaw:telegram-mirror:card-state');
33
+ const _g = globalThis;
34
+ /**
35
+ * chatId → active card. Cleared at model-turn end by
36
+ * turn-bridge.finalizeActiveCards(). Process-global singleton (see header) so
37
+ * the inbound handler and the openai-compat handlers share ONE Map even across
38
+ * module-instance splits.
39
+ */
40
+ export const cardState = _g[CARD_STATE_KEY] ?? (_g[CARD_STATE_KEY] = new Map());
41
+ /**
42
+ * Compact card-state summary for the turn-bridge push logs and the
43
+ * openai-compat handler entry log — the permanent live-mirror success-gate
44
+ * signal (cards>0 during a turn means events are reaching the active card).
12
45
  */
13
- /** chatId active card. Cleared when reply_dispatch finalizes the turn. */
14
- export const cardState = new Map();
46
+ export function cardStateDebug() {
47
+ return `cards=${cardState.size}`;
48
+ }
15
49
  //# sourceMappingURL=card-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"card-state.js","sourceRoot":"","sources":["../../../../src/channels/telegram-mirror/card-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC"}
1
+ {"version":3,"file":"card-state.js","sourceRoot":"","sources":["../../../../src/channels/telegram-mirror/card-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAaH,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;AAC5E,MAAM,EAAE,GAAG,UAA2E,CAAC;AAEvF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GACpB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,EAAqB,CAAC,CAAC;AAE5E;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,SAAS,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC"}
@@ -28,7 +28,7 @@ import { CallbackMap } from './callback-mapping.js';
28
28
  import { ComposeBuffer } from './compose-buffer.js';
29
29
  import { TurnStateMachine } from './state-machine.js';
30
30
  import { renderTurn } from './card-renderer.js';
31
- import { cardState as _cardState } from './card-state.js';
31
+ import { cardState as _cardState, cardStateDebug } from './card-state.js';
32
32
  const PLUGIN_TAG = '[cc-openclaw/telegram-mirror/inbound]';
33
33
  /**
34
34
  * Parse Telegram chat id out of a session key. Session keys look like
@@ -342,7 +342,7 @@ export function registerInboundHandler(api, state = createHandlerState()) {
342
342
  const msgId = res?.result?.message_id;
343
343
  if (typeof msgId === 'number') {
344
344
  _cardState.set(chatId, { messageId: msgId, sm, threadId });
345
- process.stderr.write(`[cc-openclaw/telegram-mirror/turn] working card sent: chat=${chatId} msg=${msgId} text=${JSON.stringify(text.slice(0, 60))}\n`);
345
+ process.stderr.write(`[cc-openclaw/telegram-mirror/turn] working card sent: pid=${process.pid} ${cardStateDebug()} chat=${chatId} msg=${msgId} text=${JSON.stringify(text.slice(0, 60))}\n`);
346
346
  }
347
347
  }
348
348
  catch (err) {
@@ -403,43 +403,24 @@ export function registerInboundHandler(api, state = createHandlerState()) {
403
403
  dumpShapeOnce('before_agent_finalize', event);
404
404
  return undefined;
405
405
  });
406
- // reply_dispatch — finalize the working card by editing it to "✓ Done".
407
- // Event shape (verified 2026-05-19 production capture): nested under
408
- // `event.ctx.SessionKey` / `event.ctx.SenderId`, NOT top-level.
406
+ // reply_dispatch — v0.26.1: this handler NO LONGER finalizes/deletes the card.
407
+ //
408
+ // Root-cause finding (2026-05-20 production capture): `reply_dispatch` fires at
409
+ // reply-lifecycle START — it fired in the SAME second the working card was
410
+ // created, ~9s BEFORE the model turn's handler even started. The old code
411
+ // deleted the card here, so by the time the model emitted tool/text events
412
+ // every turn-bridge push landed on an empty cardState map (size=0). That was
413
+ // the real "card frame renders (▶ Working → ✓ Done) but body never fills" bug
414
+ // that survived v0.25.7 / v0.25.9 / v0.26.0.
415
+ //
416
+ // Card finalization (flip to "✓ Done" + delete) now happens at the TRUE end of
417
+ // the model turn in turn-bridge.finalizeActiveCards(), invoked from the
418
+ // openai-compat streaming/non-streaming handlers — the only place that knows
419
+ // when the model call actually completes. The card survives the whole turn, so
420
+ // the live tool/text pushes accumulate and render. We keep the subscription
421
+ // solely to dump the event shape once for diagnostics; it mutates no state.
409
422
  api.on('reply_dispatch', async (...args) => {
410
- const event = args[0];
411
- dumpShapeOnce('reply_dispatch', event);
412
- const ev = event;
413
- const ctx = ev?.ctx ?? undefined;
414
- const evId = _eventId({
415
- sessionKey: (ev?.sessionKey ?? ctx?.['SessionKey']),
416
- timestamp: (ev?.timestamp ?? ctx?.['Timestamp']),
417
- content: `reply:${String((ctx?.['MessageSid'] ?? ev?.messageId ?? ''))}`,
418
- });
419
- if (_seenOrMark('reply', evId))
420
- return undefined;
421
- const sessionKey = ev?.sessionKey ?? ctx?.['SessionKey'];
422
- const fromKey = chatIdFromSessionKey(sessionKey);
423
- const senderId = ev?.senderId ?? ctx?.['SenderId'];
424
- const chatId = fromKey.chatId || (senderId !== undefined ? String(senderId) : undefined);
425
- // If no chatId in event, finalize ALL active cards (best-effort).
426
- const targets = chatId ? [chatId] : Array.from(_cardState.keys());
427
- for (const target of targets) {
428
- const card = _cardState.get(target);
429
- if (!card)
430
- continue;
431
- card.sm.end(target);
432
- try {
433
- await editTg(target, card.messageId, renderTurn(card.sm.getTurn(target)));
434
- }
435
- catch (err) {
436
- const m = err.message;
437
- if (!/message is not modified/i.test(m)) {
438
- process.stderr.write(`[cc-openclaw/telegram-mirror/turn] finalize edit failed: ${m}\n`);
439
- }
440
- }
441
- _cardState.delete(target);
442
- }
423
+ dumpShapeOnce('reply_dispatch', args[0]);
443
424
  return undefined;
444
425
  });
445
426
  process.stderr.write(`${PLUGIN_TAG} turn-render pipeline armed (before_tool_call, after_tool_call, before_agent_finalize, reply_dispatch).\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-handler.js","sourceRoot":"","sources":["../../../../src/channels/telegram-mirror/inbound-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAuB,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,GAAG,uCAAuC,CAAC;AAwC3D;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,UAA8B;IAI1D,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,kDAAkD;IAClD,8DAA8D;IAC9D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC5C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC;IACxD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAA0C,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC;QACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,QAAQ,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxB,CAAC;AAqBD,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,WAAW,EAAE,IAAI,WAAW,EAAE;QAC9B,aAAa,EAAE,IAAI,aAAa,EAAE;KACnC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE/D;;;;;;;GAOG;AACH,KAAK,UAAU,aAAa,CAC1B,MAAsB,EACtB,QAA4B,EAC5B,MAAqB;IAErB,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAClC,MAAM,MAAM,CACV,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EACtB,MAAM,CAAC,IAAI,EACX,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,EACrD,MAAM,CAAC,YAAY,CACpB,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACtC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QACD,wDAAwD;QACxD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,iBAAiB,MAAM,CAAC,IAAI,2CAA2C,CAAC,CAAC;IACpG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,0BAA2B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,2BAA2B;AAC5E,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,2EAA2E;AAC3E,6EAA6E;AAC7E,oDAAoD;AACpD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;AACvC,MAAM,OAAO,GAAsB,IAAI,GAAG,EAAE,CAAC;AAE7C,SAAS,QAAQ,CAAC,EAAuI;IACvJ,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,IAAK,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAwB,IAAI,EAAE,CAAC;IACjF,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,IAAK,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,CAAwB,IAAI,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,IAAK,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAwB,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IACtG,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,EAAU;IAC9C,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,EAAE,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,aAAa,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,GAAG,GAAG,gBAAgB,CAAC;QACtC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,MAAM;gBAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,0BAA0B;IACxC,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,UAAU,CAAC,KAAK,EAAE,CAAC;IACnB,YAAY,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAAsB,EACtB,QAAsB,kBAAkB,EAAE;IAE1C,MAAM,MAAM,GAAkB,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAkB,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnB,iFAAiF;IACjF,+EAA+E;IAC/E,2DAA2D;IAE3D,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,IAAe,EAAgC,EAAE;QACnF,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAA8B,CAAC;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU;YAAE,OAAO,SAAS,CAAC;QACnD,IAAI,KAAK,CAAC,GAAG,EAAE,cAAc;YAAE,OAAO,SAAS,CAAC;QAEhD,wDAAwD;QACxD,IAAI,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAE5D,oEAAoE;QACpE,wEAAwE;QACxE,MAAM,IAAI,GACR,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC;QAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oEAAoE,CACrE,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,oEAAoE;QACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oEAAoE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAC1G,CAAC;QAEF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0DAA0D,MAAM,CAAC,GAAG,kBAAkB,CACvF,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,+DAA+D;QAC/D,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC5B,IAAI,QAAQ,GAAuB,OAAO,CAAC,QAAQ,CAAC;QACpD,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1G,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8EAA8E,KAAK,CAAC,UAAU,IAAI,GAAG,cAAc,KAAK,CAAC,QAAQ,IAAI,GAAG,KAAK,CAC9I,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS;YAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,iBAAiB,CAAC;QAE7E,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE;YACrC,MAAM;YACN,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,UAAU,gBAAgB,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,MAAM,aAAa,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACzK,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;QACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,mEAAmE;IACnE,kEAAkE;IAClE,qEAAqE;IACrE,0DAA0D;IAC1D,SAAS,aAAa,CAAC,SAAiB,EAAE,KAAc;QACtD,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO;QACxC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sCAAsC,SAAS,kBAAkB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CACzF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sCAAsC,SAAS,uBAAwB,GAAa,CAAC,OAAO,IAAI,CACjG,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,SAAS,cAAc,CAAC,EAAuC;QAC7D,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAC1B,MAAM,GAAG,GAAI,EAAE,CAAC,GAA2C,IAAI,SAAS,CAAC;QACzE,MAAM,UAAU,GAAI,EAAE,CAAC,UAAiC,IAAK,GAAG,EAAE,CAAC,YAAY,CAAwB,CAAC;QACxG,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAI,EAAE,CAAC,QAAwC,IAAK,GAAG,EAAE,CAAC,UAAU,CAAiC,CAAC;QACpH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzF,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,MAAM,IAAI,GAAI,EAAE,CAAC,IAA4C,IAAK,GAAG,EAAE,CAAC,MAAM,CAAyC,CAAC;QACxH,MAAM,QAAQ,GAAI,EAAE,CAAC,QAA+B;eAC9C,IAAI,EAAE,CAAC,MAAM,CAAwB;eACrC,EAAE,CAAC,IAA2B;eAC9B,GAAG,EAAE,CAAC,UAAU,CAAwB,CAAC;QAC/C,MAAM,KAAK,GAAI,EAAE,CAAC,KAA6C;eACzD,IAAI,EAAE,CAAC,OAAO,CAAyC;eACvD,EAAE,CAAC,SAAiD;eACpD,GAAG,EAAE,CAAC,WAAW,CAAyC;eAC3D,EAAE,CAAC;QACR,MAAM,SAAS,GAAI,EAAE,CAAC,EAAyB;eACzC,EAAE,CAAC,WAAkC;eACrC,IAAI,EAAE,CAAC,IAAI,CAAwB;eACnC,EAAE,CAAC,SAAgC;eACpC,EAAE,CAAC;QAER,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC5E,CAAC;IAED,SAAS,iBAAiB,CAAC,EAAuC;QAChE,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAC1B,MAAM,GAAG,GAAI,EAAE,CAAC,GAA2C,IAAI,SAAS,CAAC;QACzE,MAAM,UAAU,GAAI,EAAE,CAAC,UAAiC,IAAK,GAAG,EAAE,CAAC,YAAY,CAAwB,CAAC;QACxG,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAI,EAAE,CAAC,QAAwC,IAAK,GAAG,EAAE,CAAC,UAAU,CAAiC,CAAC;QACpH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzF,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,MAAM,SAAS,GAAI,EAAE,CAAC,WAAkC;eAClD,EAAE,CAAC,EAAyB;eAC5B,EAAE,CAAC,SAAgC;eACpC,EAAE,CAAC;QACR,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,MAAc;QACvC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qEAAqE;YACrE,yDAAyD;YACzD,MAAM,CAAC,GAAI,GAAa,CAAC,OAAO,CAAC;YACjC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sDAAsD,CAAC,IAAI,CAC5D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,sEAAsE;IACtE,4EAA4E;IAC5E,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,IAAe,EAAgC,EAAE;QACnF,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAA8B,CAAC;QACnD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU;YAAE,OAAO,SAAS,CAAC;QAC7D,IAAI,KAAK,CAAC,GAAG,EAAE,cAAc;YAAE,OAAO,SAAS,CAAC;QAEhD,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAE3D,MAAM,IAAI,GACR,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC;QAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAE/C,+DAA+D;QAC/D,qDAAqD;QACrD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAEhE,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,iBAAiB,CAAC;QAE5F,mEAAmE;QACnE,MAAM,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAClC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,MAAM,EACN,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC,EAC/B,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CACtD,CAAC;YACF,MAAM,KAAK,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC;YACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8DAA8D,MAAM,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAChI,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gEAAiE,GAAa,CAAC,OAAO,IAAI,CAC3F,CAAC;QACJ,CAAC;QACD,gEAAgE;QAChE,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,oEAAoE;IACpE,qEAAqE;IACrE,oCAAoC;IACpC,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAG,IAAe,EAAsB,EAAE;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,aAAa,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,KAA4C,CAAC;QACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,UAAU,IAAK,EAAE,EAAE,GAA2C,EAAE,CAAC,YAAY,CAAC,CAAuB,EAAE,SAAS,EAAE,EAAE,EAAE,SAA+B,EAAE,OAAO,EAAE,YAAY,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,IAAI,EAAE,CAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9Q,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACpD,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACtD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE;YACnC,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,SAAS,CAAC,SAAS;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,IAAI,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE,EAAE;SAC3E,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAG,IAAe,EAAsB,EAAE;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,aAAa,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,KAA4C,CAAC;QACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,UAAU,IAAK,EAAE,EAAE,GAA2C,EAAE,CAAC,YAAY,CAAC,CAAuB,EAAE,SAAS,EAAE,EAAE,EAAE,SAA+B,EAAE,OAAO,EAAE,eAAe,MAAM,CAAC,CAAC,EAAE,EAAE,WAAW,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QACjR,IAAI,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACvD,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACtD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE;YACnC,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,SAAS,CAAC,SAAS;YAChC,OAAO,EAAE,SAAS,CAAC,MAAM;YACzB,QAAQ,EAAE,SAAS,CAAC,OAAO;SAC5B,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAG,IAAe,EAAsB,EAAE;QAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,aAAa,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,qEAAqE;IACrE,gEAAgE;IAChE,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,IAAe,EAAsB,EAAE;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,aAAa,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,KAA4C,CAAC;QACxD,MAAM,GAAG,GAAI,EAAE,EAAE,GAA2C,IAAI,SAAS,CAAC;QAE1E,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,UAAU,EAAE,CAAC,EAAE,EAAE,UAAU,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,CAAuB;YACzE,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,CAAuB;YACtE,OAAO,EAAE,SAAS,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,SAAS,IAAI,EAAE,CAAW,CAAC,EAAE;SACnF,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAEjD,MAAM,UAAU,GAAI,EAAE,EAAE,UAAiC,IAAK,GAAG,EAAE,CAAC,YAAY,CAAwB,CAAC;QACzG,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAI,EAAE,EAAE,QAAwC,IAAK,GAAG,EAAE,CAAC,UAAU,CAAiC,CAAC;QACrH,MAAM,MAAM,GAAuB,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE7G,kEAAkE;QAClE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAI,GAAa,CAAC,OAAO,CAAC;gBACjC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4DAA4D,CAAC,IAAI,CAClE,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,UAAU,2GAA2G,CACzH,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,oCAAoC,eAAe,CAAC,IAAI,kBAAkB,CAAC,CAAC;IACrG,wEAAwE;IACxE,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,UAAU,oCAAoC,eAAe,CAAC,IAAI,oBAAoB,CAC1F,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"inbound-handler.js","sourceRoot":"","sources":["../../../../src/channels/telegram-mirror/inbound-handler.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,10 @@
24
24
  * per REPAINT_MIN_MS per chat — Telegram rate-limits edits and we don't
25
25
  * want to spam edits while text streams in.
26
26
  */
27
+ /** Number of active mirror cards visible to THIS module instance. Used by the
28
+ * openai-compat handlers' entry log to detect a cross-instance cardState
29
+ * split (handler sees 0 while inbound registered 1). */
30
+ export declare function activeCardCount(): number;
27
31
  /**
28
32
  * Record a tool_use event into every active card. Called from the Claude
29
33
  * subprocess output stream the moment a tool is invoked.
@@ -46,6 +50,20 @@ export declare function pushToolResult(toolUseId: string | undefined, output: un
46
50
  * don't hammer Telegram with edits.
47
51
  */
48
52
  export declare function pushAssistantText(text: string): void;
53
+ /**
54
+ * Finalize every active card at the END of a model turn. Flips each card's
55
+ * turn to 'done' (so renderTurn shows "✓ Done"), repaints once, and removes
56
+ * it from cardState.
57
+ *
58
+ * v0.26.1 — this REPLACES the inbound handler's reply_dispatch finalize. That
59
+ * gateway event fires at reply-lifecycle START (before the model produces any
60
+ * tool/text events) and was deleting the card mid-turn, so every bridge push
61
+ * landed on an empty map. The openai-compat handler is the correct lifecycle
62
+ * owner: it runs for the full duration of the actual model call, pushes events
63
+ * into the card during the turn, then calls this on turn end. Single-tenant:
64
+ * finalizes ALL active cards (one at a time in practice).
65
+ */
66
+ export declare function finalizeActiveCards(): Promise<void>;
49
67
  /**
50
68
  * Test-only — reset module-level repaint state. Card state lives in
51
69
  * card-state.ts so import that and clear directly if your test needs it.
@@ -24,7 +24,7 @@
24
24
  * per REPAINT_MIN_MS per chat — Telegram rate-limits edits and we don't
25
25
  * want to spam edits while text streams in.
26
26
  */
27
- import { cardState } from './card-state.js';
27
+ import { cardState, cardStateDebug } from './card-state.js';
28
28
  import { renderTurn } from './card-renderer.js';
29
29
  import { editTg } from '../../lib/telegram-bot-api.js';
30
30
  const _lastRepaintAt = new Map();
@@ -54,12 +54,27 @@ async function repaint(chatId, force) {
54
54
  function activeChatIds() {
55
55
  return Array.from(cardState.keys());
56
56
  }
57
+ /** Number of active mirror cards visible to THIS module instance. Used by the
58
+ * openai-compat handlers' entry log to detect a cross-instance cardState
59
+ * split (handler sees 0 while inbound registered 1). */
60
+ export function activeCardCount() {
61
+ return cardState.size;
62
+ }
63
+ // v0.26.1 observability: the brief's success gate is "gateway log shows a
64
+ // bridge push count > 0 on a real turn". pushToolUse/pushToolResult are
65
+ // low-frequency, so log every call (including the cards=0 failure case, logged
66
+ // BEFORE the early return). pushAssistantText is per-chunk, so throttle it.
67
+ let _lastTextLogAt = 0;
68
+ function logPush(kind, cards, extra) {
69
+ process.stderr.write(`[cc-openclaw/turn-bridge] ${kind} pid=${process.pid} ${cardStateDebug()}${extra}\n`);
70
+ }
57
71
  /**
58
72
  * Record a tool_use event into every active card. Called from the Claude
59
73
  * subprocess output stream the moment a tool is invoked.
60
74
  */
61
75
  export function pushToolUse(name, input, toolUseId) {
62
76
  const chats = activeChatIds();
77
+ logPush('pushToolUse', chats.length, ` name=${name}`);
63
78
  if (chats.length === 0)
64
79
  return;
65
80
  const id = toolUseId || `toolu_${Date.now().toString(36)}`;
@@ -82,6 +97,7 @@ export function pushToolUse(name, input, toolUseId) {
82
97
  */
83
98
  export function pushToolResult(toolUseId, output, isError = false) {
84
99
  const chats = activeChatIds();
100
+ logPush('pushToolResult', chats.length, isError ? ' err' : '');
85
101
  if (chats.length === 0)
86
102
  return;
87
103
  for (const chatId of chats) {
@@ -109,6 +125,11 @@ export function pushToolResult(toolUseId, output, isError = false) {
109
125
  */
110
126
  export function pushAssistantText(text) {
111
127
  const chats = activeChatIds();
128
+ const now = Date.now();
129
+ if (chats.length === 0 || now - _lastTextLogAt > 1500) {
130
+ _lastTextLogAt = now;
131
+ logPush('pushAssistantText', chats.length, ` len=${text.length}`);
132
+ }
112
133
  if (chats.length === 0)
113
134
  return;
114
135
  for (const chatId of chats) {
@@ -122,6 +143,44 @@ export function pushAssistantText(text) {
122
143
  void repaint(chatId, /* force */ false);
123
144
  }
124
145
  }
146
+ /**
147
+ * Finalize every active card at the END of a model turn. Flips each card's
148
+ * turn to 'done' (so renderTurn shows "✓ Done"), repaints once, and removes
149
+ * it from cardState.
150
+ *
151
+ * v0.26.1 — this REPLACES the inbound handler's reply_dispatch finalize. That
152
+ * gateway event fires at reply-lifecycle START (before the model produces any
153
+ * tool/text events) and was deleting the card mid-turn, so every bridge push
154
+ * landed on an empty map. The openai-compat handler is the correct lifecycle
155
+ * owner: it runs for the full duration of the actual model call, pushes events
156
+ * into the card during the turn, then calls this on turn end. Single-tenant:
157
+ * finalizes ALL active cards (one at a time in practice).
158
+ */
159
+ export async function finalizeActiveCards() {
160
+ const chats = activeChatIds();
161
+ if (chats.length === 0)
162
+ return;
163
+ logPush('finalizeActiveCards', chats.length, '');
164
+ for (const chatId of chats) {
165
+ const card = cardState.get(chatId);
166
+ if (!card)
167
+ continue;
168
+ card.sm.end(chatId);
169
+ const turn = card.sm.getTurn(chatId);
170
+ if (turn) {
171
+ try {
172
+ await editTg(chatId, card.messageId, renderTurn(turn));
173
+ }
174
+ catch (err) {
175
+ const m = err.message;
176
+ if (!/message is not modified/i.test(m)) {
177
+ process.stderr.write(`[cc-openclaw/turn-bridge] finalize edit failed chat=${chatId}: ${m}\n`);
178
+ }
179
+ }
180
+ }
181
+ cardState.delete(chatId);
182
+ }
183
+ }
125
184
  /**
126
185
  * Test-only — reset module-level repaint state. Card state lives in
127
186
  * card-state.ts so import that and clear directly if your test needs it.
@@ -1 +1 @@
1
- {"version":3,"file":"turn-bridge.js","sourceRoot":"","sources":["../../../../src/channels/telegram-mirror/turn-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-bridge.js","sourceRoot":"","sources":["../../../../src/channels/telegram-mirror/turn-bridge.ts"],"names":[],"mappings":"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"}
@@ -374,7 +374,9 @@ export class PersistentClaudeSession extends EventEmitter {
374
374
  const block = inner.content_block;
375
375
  if (block?.type === 'tool_use') {
376
376
  this.stats.toolCalls++;
377
- const toolEvent = { tool: { name: block.name, input: {} } };
377
+ // v0.26.1: carry the tool_use block id so the Telegram mirror can
378
+ // match the later tool_result event and flip the glyph … → ✓/✗.
379
+ const toolEvent = { tool: { name: block.name, input: {}, id: block.id } };
378
380
  try {
379
381
  this._streamCallbacks?.onToolUse?.(toolEvent);
380
382
  }
@@ -472,6 +474,8 @@ export class PersistentClaudeSession extends EventEmitter {
472
474
  tool: {
473
475
  name: block.name,
474
476
  input: block.input || {},
477
+ // v0.26.1: carry id for tool_result glyph resolution (see above).
478
+ id: block.id,
475
479
  },
476
480
  };
477
481
  try {