openclaw-lark-multi-agent 1.4.2 → 1.4.3

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/README.md CHANGED
@@ -10,7 +10,7 @@ This project is a bridge layer for OpenClaw. It does **not** implement an agent
10
10
 
11
11
  Lark/Feishu gives each bot its own app identity, but OpenClaw normally exposes one assistant identity per channel account. This bridge lets you create several Lark bots such as:
12
12
 
13
- - `GPT Bot` → `github-copilot/gpt-5.5`
13
+ - `GPT Bot` → `phgeek-gw/gpt-5.6-sol`
14
14
  - `Gemini Bot` → `github-copilot/gemini-3.1-pro-preview`
15
15
  - `Claude Bot` → `github-copilot/claude-opus-4.7`
16
16
 
@@ -149,7 +149,7 @@ Edit `config.json`:
149
149
  "name": "GPT",
150
150
  "appId": "cli_xxx",
151
151
  "appSecret": "YOUR_LARK_APP_SECRET",
152
- "model": "github-copilot/gpt-5.5"
152
+ "model": "phgeek-gw/gpt-5.6-sol"
153
153
  },
154
154
  {
155
155
  "name": "Gemini",
package/README.zh-CN.md CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  Lark/飞书里每个机器人都有自己的 App 身份,但 OpenClaw 通常在一个 channel account 下暴露一个助手身份。这个桥接层可以让你创建多个飞书机器人,例如:
12
12
 
13
- - `GPT Bot` → `github-copilot/gpt-5.5`
13
+ - `GPT Bot` → `phgeek-gw/gpt-5.6-sol`
14
14
  - `Gemini Bot` → `github-copilot/gemini-3.1-pro-preview`
15
15
  - `Claude Bot` → `github-copilot/claude-opus-4.7`
16
16
 
@@ -127,7 +127,7 @@ cp config.example.json config.json
127
127
  "name": "GPT",
128
128
  "appId": "cli_xxx",
129
129
  "appSecret": "YOUR_LARK_APP_SECRET",
130
- "model": "github-copilot/gpt-5.5"
130
+ "model": "phgeek-gw/gpt-5.6-sol"
131
131
  },
132
132
  {
133
133
  "name": "Gemini",
@@ -14,7 +14,7 @@
14
14
  "name": "GPT",
15
15
  "appId": "cli_xxx2",
16
16
  "appSecret": "xxx2",
17
- "model": "github-copilot/gpt-5.5"
17
+ "model": "phgeek-gw/gpt-5.6-sol"
18
18
  },
19
19
  {
20
20
  "name": "Gemini",
package/dist/cli.js CHANGED
@@ -65,7 +65,7 @@ function sampleConfig() {
65
65
  name: "GPT",
66
66
  appId: "cli_xxx",
67
67
  appSecret: "YOUR_LARK_APP_SECRET",
68
- model: "github-copilot/gpt-5.5",
68
+ model: "phgeek-gw/gpt-5.6-sol",
69
69
  },
70
70
  {
71
71
  name: "Gemini",
@@ -35,6 +35,8 @@ export declare class FeishuBot {
35
35
  private sendQueue;
36
36
  /** Per-chat delayed runtime failure notifications, canceled if a real reply arrives. */
37
37
  private delayedFailureTimers;
38
+ /** Per-chat durable outbox retry timer. */
39
+ private deliveryRetryTimers;
38
40
  /** Last time a real assistant-visible reply was successfully handed to the delivery pipeline. */
39
41
  private lastRealDeliveryAt;
40
42
  /** Per-chat: whether we've already sent the high-context alert this cycle. */
@@ -118,6 +120,14 @@ export declare class FeishuBot {
118
120
  private cleanMentions;
119
121
  private stripLeadingCommandMentions;
120
122
  private buildMarkdownCard;
123
+ private deliveryOwnsVisiblePayload;
124
+ private completionSummary;
125
+ /** Final answer card used to replace the running live-status card in place. */
126
+ private buildFinalAnswerCard;
127
+ private patchFinalAnswerCard;
128
+ /** Best-effort cleanup when a final-card patch was too large/failed and the
129
+ * answer had to be delivered as a separate message. */
130
+ private patchLiveStatusDoneSummary;
121
131
  private formatUserVisibleError;
122
132
  private isBridgeControlReply;
123
133
  private isLegacyBridgeControlMessage;
@@ -126,16 +136,14 @@ export declare class FeishuBot {
126
136
  * Heuristic: does this reply look truncated / cut off mid-task? Used as the
127
137
  * SOLE auto-retry trigger — if true, we ask the session a one-line “done?” probe.
128
138
  *
129
- * Signals (any one is enough):
130
- * 1. Unbalanced code fence — almost certainly cut off mid code block.
131
- * 2. Trailing clause-joining punctuation (comma/colon/semicolon/、) — a
132
- * sentence was left hanging.
133
- * 3. A dangling connector / lead-in (“然后”, “接下来”, “let me”, “and”…).
134
- * 4. Ends without ANY sentence-ending punctuation / closer (no terminal
135
- * punctuation, closing bracket/quote, code fence, or wrap-up emoji).
136
- * Per Stephen: a reply that ends with no punctuation at all is also
137
- * treated as likely unfinished. A false positive only costs one cheap,
138
- * invisible confirmation probe; the session itself is the real arbiter.
139
+ * Signals are intentionally HIGH PRECISION. A reply is suspicious only when:
140
+ * 1. Its Markdown/code structure is visibly unclosed; or
141
+ * 2. It ends on punctuation/words that grammatically demand continuation.
142
+ *
143
+ * Merely lacking a final punctuation mark is NOT enough. Short answers,
144
+ * headings, model lists, paths, hashes, commands, English labels, and normal
145
+ * chat prose routinely end without punctuation; treating all of them as
146
+ * truncated caused obvious false-positive confirmation probes.
139
147
  */
140
148
  private looksTruncated;
141
149
  /** Current context usage percent for a session (totalTokens / contextTokens),
@@ -178,6 +186,7 @@ export declare class FeishuBot {
178
186
  private deliverySourceId;
179
187
  private sendSystemDelivery;
180
188
  private enqueueAndDispatchDelivery;
189
+ private scheduleDeliveryRetry;
181
190
  private dispatchPendingDeliveries;
182
191
  private hasFreeModeBot;
183
192
  private mentionedBotNames;