openclaw-lark-multi-agent 1.4.12 → 1.5.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.
@@ -1,5 +1,5 @@
1
1
  /** Coarse phase of the compaction flow, drives the card's primary line. */
2
- export type CompactPhase = "native" | "transcript-trim";
2
+ export type CompactPhase = "native" | "transcript-trim" | "trim";
3
3
  /** Terminal outcome used by the renderer to pick color/emoji. */
4
4
  export type CompactState = "running" | "done" | "failed" | "noop";
5
5
  /** Structured snapshot the renderer turns into a Feishu interactive card. */
@@ -50,6 +50,8 @@ export declare class CompactProgressController {
50
50
  get id(): string | undefined;
51
51
  /** Begin the flow; schedules lazy card creation after delayMs. */
52
52
  start(): void;
53
+ /** Switch straight into explicit transcript-trim mode (user-requested trim). */
54
+ toTrim(): void;
53
55
  /** Native compaction gave up; switch to Gateway-owned transcript-tail trim. */
54
56
  toTranscriptTrim(): Promise<void>;
55
57
  /** Finished successfully; patch the card to the done state with a detail line. */
@@ -45,6 +45,12 @@ export class CompactProgressController {
45
45
  }, this.opts.delayMs ?? DEFAULT_DELAY_MS);
46
46
  this.createTimer.unref?.();
47
47
  }
48
+ /** Switch straight into explicit transcript-trim mode (user-requested trim). */
49
+ toTrim() {
50
+ if (this.finalized || this.phase === "trim" || this.phase === "transcript-trim")
51
+ return;
52
+ this.phase = "trim";
53
+ }
48
54
  /** Native compaction gave up; switch to Gateway-owned transcript-tail trim. */
49
55
  async toTranscriptTrim() {
50
56
  if (this.finalized || this.phase === "transcript-trim")
package/dist/config.d.ts CHANGED
@@ -5,6 +5,8 @@ export interface BotConfig {
5
5
  appSecret: string;
6
6
  model: string;
7
7
  locale?: Locale;
8
+ /** Optional per-bot thinking level (informational fallback for footers). */
9
+ thinking?: string;
8
10
  }
9
11
  export interface OpenClawConfig {
10
12
  baseUrl: string;
@@ -57,6 +57,8 @@ export declare class FeishuBot {
57
57
  * message falls back to a normal run, cancel these before submission so a
58
58
  * later identical steer cannot consume the stale observer/correlation. */
59
59
  private pendingSteerCleanups;
60
+ private errorNoticeTimers;
61
+ private errorNoticeChecks;
60
62
  private adminOpenId;
61
63
  private locale;
62
64
  private configPath?;
@@ -201,6 +203,11 @@ export declare class FeishuBot {
201
203
  private deliverySourceId;
202
204
  private sendSystemDelivery;
203
205
  private enqueueAndDispatchDelivery;
206
+ private inspectErrorNotice;
207
+ private deferErrorNotice;
208
+ private scheduleErrorNoticeCheck;
209
+ /** Bounded read-only diagnosis; known live tasks retain low-frequency observation. */
210
+ private reconcileErrorNotices;
204
211
  private scheduleDeliveryRetry;
205
212
  private dispatchPendingDeliveries;
206
213
  private hasFreeModeBot;
@@ -212,6 +219,10 @@ export declare class FeishuBot {
212
219
  private isBotAvailableInChat;
213
220
  private getDiscussionParticipants;
214
221
  private getChairmanParticipant;
222
+ /** Resolve the session's current thinking label for the live-status footer.
223
+ * Prefers a live session override (set via //think / sessions.patch), falls
224
+ * back to the session's default, then the bot's config-level thinking. */
225
+ private fetchThinkingLabel;
215
226
  private asDiscussionParticipant;
216
227
  private runDiscussionTurn;
217
228
  private buildLiveStatusCard;
@@ -277,6 +288,7 @@ export declare class FeishuBot {
277
288
  /**
278
289
  * Send a proactive message to a chat (not a reply).
279
290
  */
291
+ private sendErrorNotice;
280
292
  private sendFinalMessage;
281
293
  private sendMessage;
282
294
  /**
@@ -308,14 +320,15 @@ export declare class FeishuBot {
308
320
  * Handle /compact command: compress session context.
309
321
  */
310
322
  /**
311
- * Compact a session with a Gateway-owned fallback chain:
312
- * 1. Semantic compaction through `sessions.compact`.
313
- * 2. If summarization cannot run, ask the same RPC to retain only a bounded
314
- * transcript tail via `maxLines`. This works with legacy JSONL and the
315
- * SQLite session store introduced in OpenClaw 2026.8.x, and preserves
316
- * OpenClaw's write locks, transcript invariants, and migration ownership.
323
+ * Compact a session via Gateway-owned RPCs. LMA deliberately never opens or
324
+ * rewrites OpenClaw transcript storage.
317
325
  *
318
- * LMA deliberately never opens or rewrites OpenClaw transcript storage.
326
+ * Modes (kept strictly separate so the flows are never mixed):
327
+ * - "trim" (default): `sessions.compact` with `maxLines` — permanently keeps
328
+ * only the last N transcript events. Model-free, fast, never times out on
329
+ * oversized sessions.
330
+ * - "semantic": LLM summarization via the same RPC; on failure falls back to
331
+ * a trim so the session is still reclaimed.
319
332
  */
320
333
  private compactWithFallback;
321
334
  private handleCompactCommand;
@@ -336,9 +349,6 @@ export declare class FeishuBot {
336
349
  * Called once per chat on first message.
337
350
  */
338
351
  private fetchAndCacheChatInfo;
339
- /**
340
- * Send a model-drift notification to the affected chat.
341
- */
342
352
  private hydrateInlineImageKeys;
343
353
  private hydrateFeishuDocsInMessage;
344
354
  private extractFeishuDocRefs;
@@ -357,5 +367,4 @@ export declare class FeishuBot {
357
367
  * Extract text content from a rich text (post) message.
358
368
  */
359
369
  private extractPostText;
360
- private notifyModelDrift;
361
370
  }