larkcc 0.5.0 → 0.6.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.
package/dist/cardkit.js CHANGED
@@ -3,129 +3,68 @@
3
3
  *
4
4
  * 单卡片架构,对齐飞书官方 OpenClaw 方案。
5
5
  * 全程只有一个卡片消息,通过 CardKit API 实现打字机效果。
6
- * 工具调用不可见,thinking 和最终回答在同一卡片内展示。
6
+ * 工具调用状态作为前缀拼接在流式内容中,thinking 和最终回答在同一卡片内展示。
7
7
  *
8
8
  * API 调用链参考飞书官方 openclaw-lark 项目:
9
9
  * https://github.com/larksuite/openclaw-lark
10
10
  *
11
11
  * 状态机:idle → creating → streaming → completed / aborted
12
12
  *
13
- * API 调用链(对齐官方 SDK):
14
- * 1. POST /cardkit/v1/cards → 创建卡片实体
15
- * 2. im.message.reply({ card_id }) → 发送消息引用卡片
16
- * 3. PUT /cardkit/v1/cards/{id}/elements/{eid}/content → 流式打字机
17
- * 4. PUT /cardkit/v1/cards/{id} 最终更新(关闭 streaming_mode
13
+ * API 调用链(使用 SDK CardKit 客户端):
14
+ * 1. client.cardkit.v1.card.create() → 创建卡片实体
15
+ * 2. im.message.reply({ card_id }) → 发送消息引用卡片
16
+ * 3. client.cardkit.v1.cardElement.content() → 流式打字机
17
+ * 4. client.cardkit.v1.card.settings() 关闭 streaming_mode
18
+ * 5. client.cardkit.v1.card.update() → 最终更新卡片内容
18
19
  */
19
20
  import { optimizeForCard } from "./format/card-optimize.js";
20
- import { parseThinking, stripThinking } from "./format/thinking.js";
21
- import { replyFinalCard, getTenantAccessToken } from "./feishu.js";
22
- // ── API 常量 ──────────────────────────────────────────────────
23
- const CARDKIT_BASE = "https://open.feishu.cn/open-apis/cardkit/v1";
24
- // ── FlushController(从 streaming.ts 导入的接口) ─────────────
25
- /**
26
- * 刷新控制器接口,与 streaming.ts 中的 FlushController 对齐。
27
- * CardKit 模式内部创建实例,避免跨模块耦合。
28
- */
29
- class FlushController {
30
- buffer = "";
31
- sentLength = 0;
32
- flushing = false;
33
- stopped = false;
34
- lastFlushTime = 0;
35
- lastAppendTime = 0;
36
- minIntervalMs;
37
- onFlush;
38
- onError;
39
- flushTimer = null;
40
- gapCheckTimer = null;
41
- static LONG_GAP_MS = 2000;
42
- static GAP_CHECK_INTERVAL = 500;
43
- constructor(options) {
44
- this.minIntervalMs = options.minIntervalMs;
45
- this.onFlush = options.onFlush;
46
- this.onError = options.onError;
47
- }
48
- append(text) {
49
- if (this.stopped)
50
- return;
51
- this.buffer += text;
52
- this.lastAppendTime = Date.now();
53
- this.scheduleFlush();
21
+ import { stripThinking } from "./format/thinking.js";
22
+ import { buildThinkingPanel } from "./format/duration.js";
23
+ import { replyFinalCard, prepareOverflowContext, createOverflowDocument, registerDocument } from "./feishu.js";
24
+ import { FlushController } from "./streaming.js";
25
+ import { countTables } from "./format/index.js";
26
+ // ── 常量 ──────────────────────────────────────────────────
27
+ const TRUNCATE_LIMIT = 4000;
28
+ // ── CardKit API 错误 ──────────────────────────────────────
29
+ class CardKitApiError extends Error {
30
+ code;
31
+ constructor(code, msg, context) {
32
+ super(`${context} failed (${code}): ${msg}`);
33
+ this.name = "CardKitApiError";
34
+ this.code = code;
54
35
  }
55
- start() {
56
- this.lastAppendTime = Date.now();
57
- this.lastFlushTime = Date.now();
58
- this.gapCheckTimer = setInterval(() => this.checkLongGap(), FlushController.GAP_CHECK_INTERVAL);
59
- }
60
- stop() {
61
- this.stopped = true;
62
- if (this.flushTimer) {
63
- clearTimeout(this.flushTimer);
64
- this.flushTimer = null;
65
- }
66
- if (this.gapCheckTimer) {
67
- clearInterval(this.gapCheckTimer);
68
- this.gapCheckTimer = null;
69
- }
36
+ get isRateLimit() {
37
+ return this.code === 230020;
70
38
  }
71
- scheduleFlush() {
72
- if (this.flushTimer || this.stopped)
73
- return;
74
- const elapsed = Date.now() - this.lastFlushTime;
75
- const delay = Math.max(0, this.minIntervalMs - elapsed);
76
- this.flushTimer = setTimeout(() => { this.flushTimer = null; void this.doFlush(); }, delay);
77
- }
78
- async doFlush() {
79
- if (this.flushing || this.stopped)
80
- return;
81
- if (this.buffer.length <= this.sentLength)
82
- return;
83
- this.flushing = true;
84
- try {
85
- await this.onFlush(this.buffer);
86
- this.sentLength = this.buffer.length;
87
- this.lastFlushTime = Date.now();
88
- }
89
- catch (error) {
90
- if (this.onError)
91
- this.onError(error);
92
- this.stop();
93
- return;
94
- }
95
- finally {
96
- this.flushing = false;
97
- }
98
- if (!this.stopped && this.buffer.length > this.sentLength)
99
- this.scheduleFlush();
39
+ get isTableLimit() {
40
+ return this.code === 230099 || this.code === 11310;
100
41
  }
101
- checkLongGap() {
102
- if (this.stopped || this.flushing)
103
- return;
104
- if (Date.now() - this.lastAppendTime > FlushController.LONG_GAP_MS) {
105
- if (this.buffer.length > this.sentLength)
106
- void this.doFlush();
107
- }
42
+ }
43
+ /**
44
+ * 检查 SDK 响应中的错误码,返回 CardKitApiError 或 null
45
+ */
46
+ function checkCardKitError(response, context) {
47
+ if (response?.code !== undefined && response.code !== 0) {
48
+ return new CardKitApiError(response.code, response.msg ?? "unknown", context);
108
49
  }
50
+ return null;
109
51
  }
110
52
  // ── 控制器 ──────────────────────────────────────────────────
111
53
  export class CardKitController {
112
54
  phase = "idle";
113
55
  client;
114
- appId;
115
- appSecret;
116
56
  rootMsgId;
117
57
  cardTitle;
118
58
  thinkingEnabled;
119
59
  context;
120
- token = "";
121
60
  cardId = null;
122
61
  streamElementId = "streaming_content";
123
62
  sequence = 0;
63
+ statusText = "";
64
+ apiMutex = Promise.resolve();
124
65
  flushCtrl;
125
66
  constructor(params) {
126
67
  this.client = params.client;
127
- this.appId = params.appId;
128
- this.appSecret = params.appSecret;
129
68
  this.rootMsgId = params.rootMsgId;
130
69
  this.cardTitle = params.cardTitle;
131
70
  this.thinkingEnabled = params.thinkingEnabled;
@@ -152,70 +91,117 @@ export class CardKitController {
152
91
  this.flushCtrl.append(text);
153
92
  }
154
93
  /**
155
- * 完成:写入最终内容,关闭流式模式
94
+ * 互斥执行 API 调用,防止 sequence 乱序
156
95
  */
157
- async complete(finalContent, options) {
96
+ async withMutex(fn) {
97
+ const prev = this.apiMutex;
98
+ let resolve;
99
+ this.apiMutex = new Promise(r => { resolve = r; });
100
+ await prev;
101
+ try {
102
+ return await fn();
103
+ }
104
+ catch (err) {
105
+ console.error("[CARDKIT] withMutex error:", err);
106
+ throw err;
107
+ }
108
+ finally {
109
+ resolve();
110
+ }
111
+ }
112
+ /**
113
+ * 两步关闭:关闭 streaming_mode → 更新最终卡片内容(对齐 openclaw-lark)
114
+ */
115
+ async closeAndFinalize(cardJson) {
116
+ await this.withMutex(async () => {
117
+ this.sequence++;
118
+ await this.closeStreamingMode();
119
+ this.sequence++;
120
+ await this.updateCard(cardJson);
121
+ });
122
+ }
123
+ /**
124
+ * 设置工具状态文本(拼接在流式内容前缀)
125
+ * 传空字符串清除状态
126
+ */
127
+ async updateStatus(text) {
128
+ this.statusText = text;
158
129
  if (this.phase === "completed" || this.phase === "aborted")
159
130
  return;
131
+ await this.ensureCardCreated();
132
+ if (this.phase === "streaming") {
133
+ await this.flushCtrl.flush();
134
+ }
135
+ }
136
+ /**
137
+ * 清除工具状态
138
+ */
139
+ async clearStatus() {
140
+ this.statusText = "";
141
+ if (this.phase === "streaming") {
142
+ await this.flushCtrl.flush();
143
+ }
144
+ }
145
+ /**
146
+ * 完成:关闭 streaming_mode,写入最终内容
147
+ */
148
+ async complete(finalContent, options) {
149
+ if (this.phase === "completed")
150
+ return;
160
151
  this.flushCtrl.stop();
161
- // 卡片未创建成功,降级为普通消息
162
- if (!this.cardId) {
163
- await replyFinalCard(this.client, this.context.chatId, this.rootMsgId, finalContent, this.context, options);
152
+ this.statusText = "";
153
+ // 卡片未创建成功或创建失败,降级为普通消息
154
+ if (!this.cardId || this.phase === "aborted") {
164
155
  this.phase = "completed";
156
+ const fallbackOptions = { ...options, metadata: this.appendFallbackHint(options?.metadata) };
157
+ await replyFinalCard(this.client, this.context.chatId, this.rootMsgId, finalContent, this.context, fallbackOptions);
165
158
  return;
166
159
  }
167
- // 构建最终内容
160
+ // 构建最终内容(含 metadata)
168
161
  let content = finalContent;
169
162
  if (options?.metadata) {
170
163
  content += `\n\n---\n${options.metadata}`;
171
164
  }
172
- const optimized = optimizeForCard(content);
173
- // 构建 thinking 可折叠区域
174
- const extraElements = [];
175
- if (options?.thinking) {
176
- extraElements.push({
177
- tag: "column_set",
178
- flex_mode: "none",
179
- background_style: "default",
180
- columns: [{
181
- tag: "column",
182
- width: "weighted",
183
- weight: 1,
184
- elements: [{
185
- tag: "markdown",
186
- content: `💭 **思考过程**\n${options.thinking}`,
187
- }],
188
- }],
189
- fold_flag: "fold",
190
- });
191
- extraElements.push({ tag: "hr" });
165
+ // ── 溢出检查(在 optimizeForCard 之前,避免溢出路径的无用计算) ──
166
+ const threshold = this.context.overflow.document.threshold;
167
+ const tableCount = countTables(finalContent);
168
+ const maxTables = this.context.card_table?.max_tables_per_card ?? 5;
169
+ if (content.length > threshold || tableCount > maxTables) {
170
+ await this.handleOverflow(finalContent, options);
171
+ this.phase = "completed";
172
+ return;
192
173
  }
174
+ // ── 正常完成:两步关闭(对齐 openclaw-lark) ──
175
+ const optimized = optimizeForCard(content);
176
+ const extraElements = this.buildThinkingElements(options?.thinking, options?.reasoningElapsedMs);
193
177
  try {
194
178
  const finalCardJson = this.buildFinalCard(optimized, extraElements);
195
- this.sequence++;
196
- await this.updateCard(finalCardJson);
179
+ await this.closeAndFinalize(finalCardJson);
197
180
  }
198
181
  catch (error) {
199
182
  console.error("[CARDKIT] Final update failed, sending as new message:", error);
200
- await replyFinalCard(this.client, this.context.chatId, this.rootMsgId, finalContent, this.context, options);
183
+ const fallbackOptions = { ...options, metadata: this.appendFallbackHint(options?.metadata) };
184
+ await replyFinalCard(this.client, this.context.chatId, this.rootMsgId, finalContent, this.context, fallbackOptions);
201
185
  }
202
186
  this.phase = "completed";
203
187
  }
204
188
  /**
205
- * 中断
189
+ * 中断:保留已有内容,构建完整终态卡片(对齐 openclaw-lark)
206
190
  */
207
- async abort(message) {
191
+ async abort(options) {
208
192
  if (this.phase === "completed" || this.phase === "aborted")
209
193
  return;
210
194
  this.flushCtrl.stop();
195
+ this.statusText = "";
211
196
  this.phase = "aborted";
212
197
  if (!this.cardId)
213
198
  return;
214
- const optimized = optimizeForCard(message);
199
+ const text = options?.content || "⏹ 任务已中断";
200
+ const optimized = optimizeForCard(text);
201
+ const extraElements = this.buildThinkingElements(options?.thinking, options?.reasoningElapsedMs);
215
202
  try {
216
- const abortCardJson = this.buildFinalCard(optimized);
217
- this.sequence++;
218
- await this.updateCard(abortCardJson);
203
+ const abortCardJson = this.buildFinalCard(optimized, extraElements);
204
+ await this.closeAndFinalize(abortCardJson);
219
205
  }
220
206
  catch (error) {
221
207
  console.error("[CARDKIT] Abort update failed:", error);
@@ -227,12 +213,18 @@ export class CardKitController {
227
213
  isDisabled() {
228
214
  return this.phase === "aborted" && !this.cardId;
229
215
  }
216
+ /**
217
+ * 在现有 metadata 后追加降级提示
218
+ */
219
+ appendFallbackHint(existing) {
220
+ const hint = "⚠️ 卡片模式不可用,已降级为普通消息";
221
+ return existing ? `${existing}\n${hint}` : hint;
222
+ }
230
223
  // ── 卡片创建(懒触发) ────────────────────────────────────
231
224
  async ensureCardCreated() {
232
225
  if (this.phase === "streaming")
233
226
  return;
234
227
  if (this.phase === "creating") {
235
- // 等待并发创建完成
236
228
  while (this.phase === "creating") {
237
229
  await new Promise(r => setTimeout(r, 50));
238
230
  }
@@ -251,22 +243,36 @@ export class CardKitController {
251
243
  }
252
244
  }
253
245
  /**
254
- * 创建 CardKit 卡片实体
246
+ * 创建 CardKit 卡片实体(使用 SDK)
255
247
  *
256
- * POST /cardkit/v1/cards
257
- * body: { type: "card_json", data: "<JSON 2.0 string>" }
248
+ * 对齐 openclaw-lark:
249
+ * - config: streaming_mode, wide_screen_mode, update_multi
250
+ * - summary: 对象格式 { content, i18n_content }
251
+ * - 单元素架构:只有 streaming_content,工具状态作为前缀拼接
258
252
  */
259
253
  async createCardEntity() {
260
- this.token = await getTenantAccessToken(this.appId, this.appSecret);
261
254
  const cardJson = {
262
255
  schema: "2.0",
263
- config: { streaming_mode: true },
256
+ config: {
257
+ streaming_mode: true,
258
+ wide_screen_mode: true,
259
+ update_multi: true,
260
+ },
261
+ summary: {
262
+ content: "思考中...",
263
+ i18n_content: {
264
+ zh_cn: "思考中...",
265
+ en_us: "Thinking...",
266
+ },
267
+ },
264
268
  body: {
265
- elements: [{
269
+ elements: [
270
+ {
266
271
  tag: "markdown",
267
272
  content: "⏳ 思考中...",
268
273
  element_id: this.streamElementId,
269
- }],
274
+ },
275
+ ],
270
276
  },
271
277
  };
272
278
  if (this.cardTitle) {
@@ -275,33 +281,26 @@ export class CardKitController {
275
281
  template: "blue",
276
282
  };
277
283
  }
278
- const res = await fetch(`${CARDKIT_BASE}/cards`, {
279
- method: "POST",
280
- headers: {
281
- "Authorization": `Bearer ${this.token}`,
282
- "Content-Type": "application/json",
283
- },
284
- body: JSON.stringify({
284
+ const res = await this.client.cardkit.v1.card.create({
285
+ data: {
285
286
  type: "card_json",
286
287
  data: JSON.stringify(cardJson),
287
- }),
288
+ },
288
289
  });
289
- if (!res.ok) {
290
- const errText = await res.text();
291
- console.error(`[CARDKIT] Create card failed: ${res.status} ${errText.slice(0, 200)}`);
292
- throw new Error(`CardKit create failed: ${res.status}`);
290
+ const err = checkCardKitError(res, "Create card");
291
+ if (err) {
292
+ console.error(`[CARDKIT] ${err.message}`);
293
+ throw err;
293
294
  }
294
- const data = await res.json();
295
- this.cardId = data.data?.card_id;
295
+ this.cardId = res.data?.card_id;
296
296
  if (!this.cardId) {
297
+ console.error(`[CARDKIT] Create card response: ${JSON.stringify(res).slice(0, 500)}`);
297
298
  throw new Error("CardKit: no card_id in response");
298
299
  }
299
300
  console.error(`[CARDKIT] Card created: ${this.cardId}`);
300
301
  }
301
302
  /**
302
303
  * 通过 IM 消息 API 发送卡片到聊天
303
- *
304
- * content: { type: "card", data: { card_id: "..." } }
305
304
  */
306
305
  async sendCardMessage() {
307
306
  await this.client.im.message.reply({
@@ -314,76 +313,110 @@ export class CardKitController {
314
313
  }
315
314
  // ── 流式更新 ──────────────────────────────────────────────
316
315
  /**
317
- * 刷新卡片内容(打字机效果)
318
- *
319
- * PUT /cardkit/v1/cards/{id}/elements/{element_id}/content
320
- * body: { content, sequence }
316
+ * 刷新卡片内容(打字机效果,使用 SDK)
317
+ * 工具状态作为前缀拼接在内容前
321
318
  */
322
319
  async performFlush(content) {
323
320
  if (this.phase !== "streaming" || !this.cardId)
324
321
  return;
325
322
  let displayContent = content;
326
- if (this.thinkingEnabled) {
327
- const parsed = parseThinking(content);
328
- displayContent = parsed.isThinking && !parsed.content
329
- ? "💭 思考中..."
330
- : parsed.content || "💭 思考中...";
331
- }
332
- else {
323
+ if (!this.thinkingEnabled) {
333
324
  displayContent = stripThinking(content);
334
325
  }
326
+ // 拼接工具状态前缀
327
+ if (this.statusText) {
328
+ displayContent = `${this.statusText}\n\n${displayContent}`;
329
+ }
335
330
  if (!displayContent.trim())
336
331
  return;
337
- const optimized = optimizeForCard(displayContent);
338
- const truncated = optimized.length > 4000 ? optimized.slice(0, 4000) + "\n\n..." : optimized;
339
- this.sequence++;
340
- const res = await fetch(`${CARDKIT_BASE}/cards/${this.cardId}/elements/${this.streamElementId}/content`, {
341
- method: "PUT",
342
- headers: {
343
- "Authorization": `Bearer ${this.token}`,
344
- "Content-Type": "application/json",
345
- },
346
- body: JSON.stringify({
347
- content: truncated,
348
- sequence: this.sequence,
349
- }),
332
+ // 先截断再优化,避免对超长内容做无用正则处理
333
+ const preTruncated = displayContent.length > TRUNCATE_LIMIT
334
+ ? displayContent.slice(0, TRUNCATE_LIMIT) + "\n\n..."
335
+ : displayContent;
336
+ const optimized = optimizeForCard(preTruncated);
337
+ await this.withMutex(async () => {
338
+ this.sequence++;
339
+ const res = await this.client.cardkit.v1.cardElement.content({
340
+ path: { card_id: this.cardId, element_id: this.streamElementId },
341
+ data: { content: optimized, sequence: this.sequence },
342
+ });
343
+ const err = checkCardKitError(res, "Stream update");
344
+ if (err) {
345
+ console.error(`[CARDKIT] ${err.message}`);
346
+ throw err;
347
+ }
350
348
  });
351
- if (!res.ok) {
352
- const errText = await res.text();
353
- console.error(`[CARDKIT] Stream update failed: ${res.status} ${errText.slice(0, 200)}`);
354
- throw new Error(`CardKit stream update failed: ${res.status}`);
349
+ }
350
+ // ── 溢出处理 ──────────────────────────────────────────────
351
+ /**
352
+ * 内容溢出时写入云文档,卡片显示文档链接
353
+ */
354
+ async handleOverflow(rawContent, options) {
355
+ try {
356
+ const { token, title, originalMessage, meta } = await prepareOverflowContext(this.client, this.rootMsgId, this.context);
357
+ const { docUrl, docId } = await createOverflowDocument(token, title, rawContent, originalMessage, meta);
358
+ registerDocument(docId, this.context.profile);
359
+ let cardContent = `📝 内容较长,已写入云文档:[${title}](${docUrl})`;
360
+ if (options?.metadata) {
361
+ cardContent += `\n\n---\n${options.metadata}`;
362
+ }
363
+ const extraElements = this.buildThinkingElements(options?.thinking, options?.reasoningElapsedMs);
364
+ const finalCardJson = this.buildFinalCard(cardContent, extraElements);
365
+ await this.closeAndFinalize(finalCardJson);
366
+ }
367
+ catch (error) {
368
+ console.error("[CARDKIT] Overflow document failed, truncating:", error);
369
+ const optimized = optimizeForCard(rawContent);
370
+ const truncated = optimized.length > TRUNCATE_LIMIT
371
+ ? optimized.slice(0, TRUNCATE_LIMIT) + "\n\n..."
372
+ : optimized;
373
+ const finalCardJson = this.buildFinalCard(truncated);
374
+ await this.closeAndFinalize(finalCardJson);
355
375
  }
356
376
  }
357
- // ── 卡片更新 ──────────────────────────────────────────────
377
+ // ── CardKit API helpers(使用 SDK) ──────────────────────
358
378
  /**
359
- * 更新整个卡片
360
- *
361
- * PUT /cardkit/v1/cards/{id}
362
- * body: { card: { type: "card_json", data: "<JSON>" }, sequence }
379
+ * 关闭 streaming_mode(对齐 openclaw-lark 两步关闭的第一步)
363
380
  */
364
- async updateCard(cardJson) {
365
- const res = await fetch(`${CARDKIT_BASE}/cards/${this.cardId}`, {
366
- method: "PUT",
367
- headers: {
368
- "Authorization": `Bearer ${this.token}`,
369
- "Content-Type": "application/json",
381
+ async closeStreamingMode() {
382
+ const res = await this.client.cardkit.v1.card.settings({
383
+ path: { card_id: this.cardId },
384
+ data: {
385
+ settings: JSON.stringify({ streaming_mode: false }),
386
+ sequence: this.sequence,
370
387
  },
371
- body: JSON.stringify({
388
+ });
389
+ const err = checkCardKitError(res, "Close streaming");
390
+ if (err)
391
+ console.error(`[CARDKIT] ${err.message}`);
392
+ }
393
+ /**
394
+ * 更新整个卡片内容(使用 SDK)
395
+ */
396
+ async updateCard(cardJson) {
397
+ const res = await this.client.cardkit.v1.card.update({
398
+ path: { card_id: this.cardId },
399
+ data: {
372
400
  card: { type: "card_json", data: JSON.stringify(cardJson) },
373
401
  sequence: this.sequence,
374
- }),
402
+ },
375
403
  });
376
- if (!res.ok) {
377
- const errText = await res.text();
378
- console.error(`[CARDKIT] Card update failed: ${res.status} ${errText.slice(0, 200)}`);
379
- throw new Error(`CardKit card update failed: ${res.status}`);
404
+ const err = checkCardKitError(res, "Card update");
405
+ if (err) {
406
+ console.error(`[CARDKIT] ${err.message}`);
407
+ throw err;
380
408
  }
381
409
  }
382
410
  // ── 卡片构建 ──────────────────────────────────────────────
411
+ /**
412
+ * 构建最终卡片 JSON
413
+ */
383
414
  buildFinalCard(content, extraElements) {
384
415
  const cardJson = {
385
416
  schema: "2.0",
386
- config: { streaming_mode: false },
417
+ config: {
418
+ wide_screen_mode: true,
419
+ },
387
420
  body: {
388
421
  elements: [
389
422
  ...(extraElements ?? []),
@@ -403,5 +436,13 @@ export class CardKitController {
403
436
  }
404
437
  return cardJson;
405
438
  }
439
+ /**
440
+ * 构建 thinking 折叠面板(委托共享函数)
441
+ */
442
+ buildThinkingElements(thinking, reasoningElapsedMs) {
443
+ if (!thinking)
444
+ return [];
445
+ return buildThinkingPanel({ thinking, reasoningElapsedMs });
446
+ }
406
447
  }
407
448
  //# sourceMappingURL=cardkit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cardkit.js","sourceRoot":"","sources":["../src/cardkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cardkit.js","sourceRoot":"","sources":["../src/cardkit.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -58,7 +58,7 @@ const DEFAULT_FORMAT_GUIDE = {
58
58
  const DEFAULT_STREAMING = {
59
59
  enabled: true,
60
60
  mode: "cardkit",
61
- flush_interval_ms: 300,
61
+ flush_interval_ms: 200,
62
62
  thinking_enabled: true,
63
63
  fallback_on_error: true,
64
64
  };