larkcc 0.4.0 → 0.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +26 -12
  2. package/README.md +177 -23
  3. package/dist/agent.js +138 -32
  4. package/dist/agent.js.map +1 -1
  5. package/dist/app.js.map +1 -1
  6. package/dist/cardkit.d.ts +92 -0
  7. package/dist/cardkit.js +407 -0
  8. package/dist/cardkit.js.map +1 -0
  9. package/dist/config.d.ts +23 -3
  10. package/dist/config.js +43 -47
  11. package/dist/config.js.map +1 -1
  12. package/dist/feishu.d.ts +34 -4
  13. package/dist/feishu.js +260 -63
  14. package/dist/feishu.js.map +1 -1
  15. package/dist/format/builder.d.ts +126 -37
  16. package/dist/format/builder.js +276 -116
  17. package/dist/format/builder.js.map +1 -1
  18. package/dist/format/card-optimize.d.ts +42 -0
  19. package/dist/format/card-optimize.js +74 -0
  20. package/dist/format/card-optimize.js.map +1 -0
  21. package/dist/format/constants.d.ts +80 -9
  22. package/dist/format/constants.js +140 -53
  23. package/dist/format/constants.js.map +1 -1
  24. package/dist/format/document.d.ts +4 -2
  25. package/dist/format/document.js +57 -35
  26. package/dist/format/document.js.map +1 -1
  27. package/dist/format/guide.d.ts +19 -0
  28. package/dist/format/guide.js +201 -0
  29. package/dist/format/guide.js.map +1 -0
  30. package/dist/format/image-resolver.d.ts +31 -0
  31. package/dist/format/image-resolver.js +202 -0
  32. package/dist/format/image-resolver.js.map +1 -0
  33. package/dist/format/index.d.ts +8 -3
  34. package/dist/format/index.js +8 -2
  35. package/dist/format/index.js.map +1 -1
  36. package/dist/format/parser.d.ts +16 -0
  37. package/dist/format/parser.js +26 -12
  38. package/dist/format/parser.js.map +1 -1
  39. package/dist/format/sanitize.d.ts +3 -0
  40. package/dist/format/sanitize.js +16 -7
  41. package/dist/format/sanitize.js.map +1 -1
  42. package/dist/format/thinking.d.ts +29 -0
  43. package/dist/format/thinking.js +50 -0
  44. package/dist/format/thinking.js.map +1 -0
  45. package/dist/resources/format-guide.md +109 -0
  46. package/dist/streaming.d.ts +77 -0
  47. package/dist/streaming.js +293 -0
  48. package/dist/streaming.js.map +1 -0
  49. package/dist/version.d.ts +1 -1
  50. package/dist/version.js +1 -1
  51. package/package.json +4 -3
package/dist/feishu.js CHANGED
@@ -2,7 +2,7 @@ import * as lark from "@larksuiteoapi/node-sdk";
2
2
  import * as fs from "fs";
3
3
  import * as path from "path";
4
4
  import * as os from "os";
5
- import { sanitizeContent, formatWarnings, markdownToBlocks, countTables } from "./format/index.js";
5
+ import { sanitizeContent, formatWarnings, markdownToBlocks, countTables, optimizeForCard, BlockType } from "./format/index.js";
6
6
  const DOC_REGISTRY_DIR = path.join(os.homedir(), ".larkcc");
7
7
  function getDocRegistryPath(profile) {
8
8
  if (!profile || profile === "default") {
@@ -88,7 +88,6 @@ export async function updateText(client, msgId, text) {
88
88
  // 最终回复卡片,超长分段发送,卡片失败 fallback 到普通文本
89
89
  const CHUNK_SIZE = 2800;
90
90
  const DEFAULT_MAX_TABLES_PER_CARD = 5;
91
- const DEFAULT_MAX_TABLES_SPLIT = 10;
92
91
  function splitMarkdown(text, size) {
93
92
  if (text.length <= size)
94
93
  return [text];
@@ -183,62 +182,56 @@ function splitMarkdownByTables(markdown, maxTables) {
183
182
  flushChunk();
184
183
  return chunks;
185
184
  }
186
- export async function replyFinalCard(client, chatId, rootMsgId, markdown, context) {
185
+ export async function replyFinalCard(client, chatId, rootMsgId, markdown, context, options) {
187
186
  const threshold = context?.overflow.mode === "document"
188
187
  ? context.overflow.document.threshold
189
188
  : context?.overflow.chunk.threshold ?? CHUNK_SIZE;
190
- // 统计表格数量
191
189
  const tableCount = countTables(markdown);
192
190
  const maxTablesPerCard = context?.card_table?.max_tables_per_card ?? DEFAULT_MAX_TABLES_PER_CARD;
193
- const maxTablesSplit = context?.card_table?.max_tables_split ?? DEFAULT_MAX_TABLES_SPLIT;
194
- // 表格数量超过阈值,写文档
195
- if (tableCount > maxTablesSplit) {
196
- if (context?.overflow.mode === "document") {
191
+ // 表格数量超过卡片承载能力
192
+ if (tableCount > maxTablesPerCard) {
193
+ if (context?.overflow.mode === "document" && markdown.length > threshold) {
194
+ // 表格多 + 内容长 → 文档(文档比分片更适合承载大量表格+长文本)
197
195
  await replyWithDocument(client, chatId, rootMsgId, markdown, context);
198
196
  }
199
197
  else {
200
- // 没有 document 模式,回退到分片
201
- await sendMessageChunk(client, rootMsgId, `⚠️ 表格数量过多(${tableCount} 个),建议使用 document 模式`);
202
- const chunks = splitMarkdown(markdown, threshold);
203
- for (let i = 0; i < chunks.length; i++) {
204
- const content = chunks.length > 1
205
- ? `**(${i + 1}/${chunks.length})**\n${chunks[i]}`
206
- : chunks[i];
207
- await sendMessageChunk(client, rootMsgId, content);
198
+ // 表格多 + 内容短 → 按表格拆分为多个卡片
199
+ const chunks = splitMarkdownByTables(markdown, maxTablesPerCard);
200
+ for (const chunk of chunks) {
201
+ await sendMessageChunk(client, rootMsgId, chunk);
208
202
  }
209
203
  }
210
204
  return;
211
205
  }
212
- // 表格数量需要拆分发送
213
- if (tableCount > maxTablesPerCard) {
214
- const chunks = splitMarkdownByTables(markdown, maxTablesPerCard);
215
- for (const chunk of chunks) {
216
- await sendMessageChunk(client, rootMsgId, chunk);
217
- }
218
- return;
219
- }
220
206
  // 不超限,直接发送
221
207
  if (markdown.length <= threshold) {
222
- await sendMessageChunk(client, rootMsgId, markdown);
208
+ const finalContent = options?.metadata
209
+ ? `${markdown}\n\n---\n${options.metadata}`
210
+ : markdown;
211
+ await sendMessageChunk(client, rootMsgId, finalContent, options?.thinking, options?.cardTitle);
223
212
  return;
224
213
  }
225
214
  // 超限处理
226
215
  if (context?.overflow.mode === "document") {
227
- // 写入云文档
216
+ // 文档模式:不追加 metadata 和 thinking
228
217
  await replyWithDocument(client, chatId, rootMsgId, markdown, context);
229
218
  }
230
219
  else {
231
- // 分片发送
232
220
  const chunks = splitMarkdown(markdown, context?.overflow.chunk.threshold ?? CHUNK_SIZE);
233
221
  for (let i = 0; i < chunks.length; i++) {
222
+ const isLast = i === chunks.length - 1;
234
223
  const content = chunks.length > 1
235
224
  ? `**(${i + 1}/${chunks.length})**\n${chunks[i]}`
236
225
  : chunks[i];
237
- await sendMessageChunk(client, rootMsgId, content);
226
+ // 仅在最后一个 chunk 追加 metadata 和 thinking
227
+ const finalContent = isLast && options?.metadata
228
+ ? `${content}\n\n---\n${options.metadata}`
229
+ : content;
230
+ await sendMessageChunk(client, rootMsgId, finalContent, isLast ? options?.thinking : undefined, isLast ? options?.cardTitle : undefined);
238
231
  }
239
232
  }
240
233
  }
241
- async function sendMessageChunk(client, rootMsgId, content) {
234
+ async function sendMessageChunk(client, rootMsgId, content, thinking, cardTitle) {
242
235
  // 过滤 blob URL 和外部图片
243
236
  const { content: sanitizedContent, warnings } = sanitizeContent(content);
244
237
  // 追加警告消息
@@ -247,7 +240,8 @@ async function sendMessageChunk(client, rootMsgId, content) {
247
240
  finalContent += formatWarnings(warnings);
248
241
  }
249
242
  try {
250
- const card = buildMarkdownCard(finalContent);
243
+ const optimizedContent = optimizeForCard(finalContent);
244
+ const card = buildMarkdownCard(optimizedContent, [], { thinking, cardTitle });
251
245
  await client.im.message.reply({
252
246
  path: { message_id: rootMsgId },
253
247
  data: { content: JSON.stringify(card), msg_type: "interactive", reply_in_thread: false },
@@ -263,7 +257,8 @@ async function sendMessageChunk(client, rootMsgId, content) {
263
257
  }
264
258
  async function replyWithDocument(client, chatId, rootMsgId, markdown, context) {
265
259
  try {
266
- // 获取 tenant_access_token
260
+ // 获取 tenant_access_token(强制刷新,避免长文档写入中途过期)
261
+ invalidateTokenCache();
267
262
  const token = await getTenantAccessToken(context.appId, context.appSecret);
268
263
  // 构建文档标题
269
264
  const now = new Date();
@@ -304,11 +299,14 @@ async function replyWithDocument(client, chatId, rootMsgId, markdown, context) {
304
299
  datetime: datetime,
305
300
  };
306
301
  // 创建文档(在应用云空间)
307
- const { docUrl, docId } = await createOverflowDocument(token, title, markdown, originalMessage, meta);
302
+ const { docUrl, docId, warnings: docWarnings } = await createOverflowDocument(token, title, markdown, originalMessage, meta);
308
303
  // 注册新文档到本地记录
309
304
  registerDocument(docId, context.profile);
310
305
  // 构建回复消息
311
306
  let replyMsg = `📝 内容较长,已写入云文档:${docUrl}`;
307
+ if (docWarnings.length > 0) {
308
+ replyMsg += `\n⚠️ ${docWarnings.join(";")}`;
309
+ }
312
310
  if (cleanupConfig?.notify && cleanupResult && (cleanupResult.deleted > 0 || cleanupResult.failed > 0)) {
313
311
  if (cleanupResult.failed > 0) {
314
312
  replyMsg += `\n🗑️ 已清理 ${cleanupResult.deleted} 个旧文档,${cleanupResult.failed} 个删除失败`;
@@ -331,15 +329,29 @@ async function replyWithDocument(client, chatId, rootMsgId, markdown, context) {
331
329
  }
332
330
  }
333
331
  }
334
- export async function sendToolCard(client, chatId, rootMsgId, label, detail, status = "running", thinkingWords) {
332
+ // 按工具名匹配的状态词
333
+ const TOOL_STATUS_WORDS = {
334
+ Read: ["📖 Reading...", "📖 Scanning..."],
335
+ Write: ["📝 Writing...", "📝 Creating..."],
336
+ Edit: ["✏️ Editing...", "✏️ Modifying..."],
337
+ Bash: ["⚡ Running...", "⚡ Executing..."],
338
+ Glob: ["📂 Finding files...", "📂 Scanning..."],
339
+ Grep: ["🔍 Searching...", "🔍 Analyzing..."],
340
+ LS: ["📁 Listing...", "📁 Browsing..."],
341
+ };
342
+ export async function sendToolCard(client, chatId, rootMsgId, label, detail, status = "running", toolName) {
335
343
  const DEFAULT_STATUS = {
336
- running: "⏳ 进行中...",
344
+ running: "⏳ Processing...",
337
345
  done: "✅ 完成",
338
346
  error: "❌ 失败",
339
347
  };
340
- const statusIcon = status === "running" && thinkingWords?.length
341
- ? thinkingWords[Math.floor(Math.random() * thinkingWords.length)]
342
- : DEFAULT_STATUS[status];
348
+ let statusIcon = DEFAULT_STATUS[status];
349
+ if (status === "running" && toolName) {
350
+ const words = TOOL_STATUS_WORDS[toolName];
351
+ if (words?.length) {
352
+ statusIcon = words[Math.floor(Math.random() * words.length)];
353
+ }
354
+ }
343
355
  const content = `${label}\n\`${detail}\`\n${statusIcon}`;
344
356
  const card = buildMarkdownCard(content);
345
357
  const res = await client.im.message.reply({
@@ -482,16 +494,53 @@ export async function downloadFile(client, messageId, fileKey, tempDir, filename
482
494
  return null;
483
495
  }
484
496
  }
485
- // ── 卡片构建 ─────────────────────────────────────────────────
486
- function buildMarkdownCard(markdown, warnings = []) {
497
+ /**
498
+ * 构建飞书卡片 JSON
499
+ *
500
+ * 支持可选的思考过程折叠区域:
501
+ * - thinkingInProgress: 流式中间态,显示"💭 思考中..."提示
502
+ * - thinking: 完成态,显示可折叠的思考过程
503
+ */
504
+ export function buildMarkdownCard(markdown, warnings = [], options) {
487
505
  let content = markdown;
488
506
  if (warnings.length > 0) {
489
507
  content += formatWarnings(warnings);
490
508
  }
491
- return {
509
+ const elements = [];
510
+ // 思考过程区域
511
+ if (options?.thinkingInProgress) {
512
+ elements.push({ tag: "markdown", content: "💭 思考中..." });
513
+ }
514
+ else if (options?.thinking) {
515
+ elements.push({
516
+ tag: "column_set",
517
+ flex_mode: "none",
518
+ background_style: "default",
519
+ columns: [{
520
+ tag: "column",
521
+ width: "weighted",
522
+ weight: 1,
523
+ elements: [{
524
+ tag: "markdown",
525
+ content: `💭 **思考过程**\n${options.thinking}`,
526
+ }],
527
+ }],
528
+ fold_flag: "fold",
529
+ });
530
+ elements.push({ tag: "hr" });
531
+ }
532
+ elements.push({ tag: "markdown", content });
533
+ const card = {
492
534
  schema: "2.0",
493
- body: { elements: [{ tag: "markdown", content }] },
535
+ body: { elements },
494
536
  };
537
+ if (options?.cardTitle) {
538
+ card.header = {
539
+ title: { tag: "plain_text", content: options.cardTitle },
540
+ template: "blue",
541
+ };
542
+ }
543
+ return card;
495
544
  }
496
545
  /**
497
546
  * 安全解析 JSON 响应
@@ -510,10 +559,15 @@ async function safeJsonParse(res, context) {
510
559
  }
511
560
  /**
512
561
  * 创建云文档并写入内容(在应用云空间)
562
+ *
563
+ * 写入流程(严格保序):
564
+ * - 简单块:分批通过 children API 写入
565
+ * - 表格/高亮块:通过 descendants API 写入
566
+ * - 保持原始文档顺序
513
567
  */
514
568
  export async function createOverflowDocument(token, title, markdown, originalMessage, meta) {
515
- // 1. 将 markdown 转换为文档块(同时过滤 blob URL)
516
- const { blocks } = markdownToBlocks(markdown, originalMessage, meta);
569
+ // 1. 将 markdown 转换为文档块
570
+ const { items } = markdownToBlocks(markdown, originalMessage, meta);
517
571
  // 2. 创建文档(不指定 folder_token,创建在应用云空间)
518
572
  const createRes = await fetch("https://open.feishu.cn/open-apis/docx/v1/documents", {
519
573
  method: "POST",
@@ -528,40 +582,183 @@ export async function createOverflowDocument(token, title, markdown, originalMes
528
582
  if (!docId) {
529
583
  throw new Error("Failed to create document");
530
584
  }
531
- // 3. 写入内容到文档(分批写入,每批最多 50 个块)
585
+ // 3. 严格保序写入(带容错)
532
586
  const BATCH_SIZE = 50;
533
- for (let i = 0; i < blocks.length; i += BATCH_SIZE) {
534
- const batch = blocks.slice(i, i + BATCH_SIZE);
535
- // 第一批用 index: 0 插入开头,后续用 index: -1 追加到末尾
536
- const index = i === 0 ? 0 : -1;
537
- const updateRes = await fetch(`https://open.feishu.cn/open-apis/docx/v1/documents/${docId}/blocks/${docId}/children`, {
538
- method: "POST",
539
- headers: {
540
- "Authorization": `Bearer ${token}`,
541
- "Content-Type": "application/json",
542
- },
543
- body: JSON.stringify({
544
- children: batch,
545
- index,
546
- }),
547
- });
548
- const updateData = await safeJsonParse(updateRes, "Write content");
549
- if (updateData.code !== 0) {
550
- throw new Error(`Write content failed (${updateData.code}): ${updateData.msg}`);
587
+ let simpleBatch = [];
588
+ let isFirstBatch = true;
589
+ let batchIndex = 0;
590
+ const writeWarnings = [];
591
+ const flushSimpleBatch = async () => {
592
+ if (simpleBatch.length === 0)
593
+ return;
594
+ batchIndex++;
595
+ const index = isFirstBatch ? 0 : -1;
596
+ const batchTypes = simpleBatch.map(b => b.block_type);
597
+ try {
598
+ await batchCreateBlocks(token, docId, simpleBatch, index);
599
+ isFirstBatch = false;
600
+ }
601
+ catch (error) {
602
+ const errMsg = `Batch ${batchIndex} 写入失败(${simpleBatch.length} 个块),已跳过`;
603
+ console.error(`[DOC] ${errMsg}:`, error);
604
+ console.error(`[DOC] Block types: [${batchTypes.join(", ")}]`);
605
+ writeWarnings.push(errMsg);
606
+ // 不抛出,继续后续处理
607
+ }
608
+ finally {
609
+ simpleBatch = [];
610
+ }
611
+ };
612
+ for (let i = 0; i < items.length; i++) {
613
+ const item = items[i];
614
+ switch (item.type) {
615
+ case "simple":
616
+ simpleBatch.push(item.block);
617
+ if (simpleBatch.length >= BATCH_SIZE) {
618
+ await flushSimpleBatch();
619
+ }
620
+ break;
621
+ case "table":
622
+ await flushSimpleBatch();
623
+ try {
624
+ await createTableDescendants(token, docId, item.data);
625
+ }
626
+ catch (error) {
627
+ console.error(`[DOC] Table descendants failed at item ${i}:`, error);
628
+ // 降级为代码块:包含原始 Markdown 保留可读性
629
+ const tableInfo = item.data.tableBlock.table.property;
630
+ const rawMd = item.data.rawMarkdown ?? "";
631
+ writeWarnings.push(`表格渲染失败(${tableInfo.row_size}行 × ${tableInfo.column_size}列)`);
632
+ const fallbackContent = rawMd
633
+ ? `⚠️ 表格渲染失败(${tableInfo.row_size}行 × ${tableInfo.column_size}列),原始内容:\n${rawMd}`
634
+ : `⚠️ 表格渲染失败(${tableInfo.row_size}行 × ${tableInfo.column_size}列)`;
635
+ simpleBatch.push({
636
+ block_type: BlockType.CODE,
637
+ code: {
638
+ style: { language: 1, wrap: true },
639
+ elements: [{
640
+ text_run: { content: fallbackContent },
641
+ }],
642
+ },
643
+ });
644
+ }
645
+ break;
646
+ case "callout":
647
+ await flushSimpleBatch();
648
+ try {
649
+ await createCalloutDescendants(token, docId, item.data);
650
+ }
651
+ catch (error) {
652
+ console.error(`[DOC] Callout descendants failed at item ${i}:`, error);
653
+ writeWarnings.push("高亮块渲染失败");
654
+ // 降级为普通引用块
655
+ const calloutTexts = item.data.contentDescendants
656
+ .map(d => d.text?.elements?.map(e => e.text_run?.content ?? "").join("") ?? "")
657
+ .filter(Boolean);
658
+ simpleBatch.push({
659
+ block_type: BlockType.QUOTE,
660
+ quote: { elements: [{ text_run: { content: calloutTexts.join("\n") } }] },
661
+ });
662
+ }
663
+ break;
551
664
  }
552
665
  }
666
+ // 写入剩余的简单块
667
+ await flushSimpleBatch();
553
668
  // 返回文档链接和 ID
554
669
  return {
555
670
  docUrl: `https://feishu.cn/docx/${docId}`,
556
671
  docId,
672
+ warnings: writeWarnings,
673
+ };
674
+ }
675
+ /**
676
+ * 批量创建文档块(children API)
677
+ */
678
+ async function batchCreateBlocks(token, docId, children, index) {
679
+ const url = `https://open.feishu.cn/open-apis/docx/v1/documents/${docId}/blocks/${docId}/children`;
680
+ const res = await fetch(url, {
681
+ method: "POST",
682
+ headers: {
683
+ "Authorization": `Bearer ${token}`,
684
+ "Content-Type": "application/json",
685
+ },
686
+ body: JSON.stringify({ children, index }),
687
+ });
688
+ const data = await safeJsonParse(res, "Batch create blocks");
689
+ if (data.code !== 0) {
690
+ console.error(`[DOC] API error response:`, JSON.stringify(data, null, 2));
691
+ throw new Error(`Write content failed (${data.code}): ${data.msg}`);
692
+ }
693
+ }
694
+ /**
695
+ * 通过 Descendants API 创建表格
696
+ * 一次性创建 table + table_cell + cell text blocks
697
+ */
698
+ async function createTableDescendants(token, docId, table) {
699
+ const url = `https://open.feishu.cn/open-apis/docx/v1/documents/${docId}/blocks/${docId}/descendants`;
700
+ const body = {
701
+ children_id: [docId],
702
+ descendants: [
703
+ table.tableBlock,
704
+ ...table.cellDescendants,
705
+ ],
557
706
  };
707
+ const res = await fetch(url, {
708
+ method: "POST",
709
+ headers: {
710
+ "Authorization": `Bearer ${token}`,
711
+ "Content-Type": "application/json",
712
+ },
713
+ body: JSON.stringify(body),
714
+ });
715
+ const data = await safeJsonParse(res, "Create table descendants");
716
+ if (data.code !== 0) {
717
+ console.error(`[DOC] Table API error response:`, JSON.stringify(data, null, 2));
718
+ console.error(`[DOC] Table payload (truncated):`, JSON.stringify(table.tableBlock, null, 2).slice(0, 500));
719
+ throw new Error(`Create table failed (${data.code}): ${data.msg}`);
720
+ }
721
+ }
722
+ /**
723
+ * 通过 Descendants API 创建高亮块
724
+ * 一次性创建 callout + content text blocks
725
+ */
726
+ async function createCalloutDescendants(token, docId, callout) {
727
+ const url = `https://open.feishu.cn/open-apis/docx/v1/documents/${docId}/blocks/${docId}/descendants`;
728
+ const body = {
729
+ children_id: [docId],
730
+ descendants: [
731
+ callout.calloutBlock,
732
+ ...callout.contentDescendants,
733
+ ],
734
+ };
735
+ const res = await fetch(url, {
736
+ method: "POST",
737
+ headers: {
738
+ "Authorization": `Bearer ${token}`,
739
+ "Content-Type": "application/json",
740
+ },
741
+ body: JSON.stringify(body),
742
+ });
743
+ const data = await safeJsonParse(res, "Create callout descendants");
744
+ if (data.code !== 0) {
745
+ console.error(`[DOC] Callout API error response:`, JSON.stringify(data, null, 2));
746
+ console.error(`[DOC] Callout payload:`, JSON.stringify(callout.calloutBlock, null, 2).slice(0, 500));
747
+ throw new Error(`Create callout failed (${data.code}): ${data.msg}`);
748
+ }
558
749
  }
559
750
  /**
560
751
  * 获取 tenant_access_token
561
752
  * 直接使用 appId 和 appSecret 获取
562
753
  */
563
754
  let cachedToken = null;
564
- async function getTenantAccessToken(appId, appSecret) {
755
+ /**
756
+ * 使缓存的 token 失效,下次调用 getTenantAccessToken 时强制刷新
757
+ */
758
+ function invalidateTokenCache() {
759
+ cachedToken = null;
760
+ }
761
+ export async function getTenantAccessToken(appId, appSecret) {
565
762
  // 检查缓存
566
763
  if (cachedToken && cachedToken.expiresAt > Date.now()) {
567
764
  return cachedToken.token;
@@ -1 +1 @@
1
- {"version":3,"file":"feishu.js","sourceRoot":"","sources":["../src/feishu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feishu.js","sourceRoot":"","sources":["../src/feishu.ts"],"names":[],"mappings":"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"}