pcm-agents 1.0.9 → 1.0.10-beta.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 (148) hide show
  1. package/dist/cjs/components-chat-message_33.cjs.entry.js +2 -2
  2. package/dist/cjs/components-oem-virtual-chat-modal.cjs.entry.js +1 -1
  3. package/dist/cjs/{conversation-utils-BTK7DAnU.js → conversation-utils-DQiNVeCN.js} +3 -3
  4. package/dist/cjs/{conversation-utils-BTK7DAnU.js.map → conversation-utils-DQiNVeCN.js.map} +1 -1
  5. package/dist/cjs/index-C_qhED9Z.js.map +1 -1
  6. package/dist/cjs/{index-dOB1Ub7w.js → index-a47Ewe4p.js} +5 -5
  7. package/dist/cjs/{index-dOB1Ub7w.js.map → index-a47Ewe4p.js.map} +1 -1
  8. package/dist/cjs/index.cjs.js +1 -1
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/oem-htws-modal.cjs.entry.js +1 -1
  11. package/dist/cjs/oem-jd-modal.cjs.entry.js +1 -1
  12. package/dist/cjs/oem-jlpp-modal.cjs.entry.js +1 -1
  13. package/dist/cjs/oem-jlzz-modal.cjs.entry.js +1 -1
  14. package/dist/cjs/oem-mnct-modal.cjs.entry.js +1 -1
  15. package/dist/cjs/oem-mnms-modal.cjs.entry.js +25 -7
  16. package/dist/cjs/oem-mnms-modal.cjs.entry.js.map +1 -1
  17. package/dist/cjs/oem-mnms-modal.entry.cjs.js.map +1 -1
  18. package/dist/cjs/oem-qgqjl-modal.cjs.entry.js +2 -2
  19. package/dist/cjs/pcm-agents.cjs.js +1 -1
  20. package/dist/cjs/pcm-hr-chat-modal.cjs.entry.js +1 -1
  21. package/dist/cjs/pcm-jlsx-modal.cjs.entry.js +1 -1
  22. package/dist/collection/components/oem-mnms-modal/oem-mnms-modal.js +44 -6
  23. package/dist/collection/components/oem-mnms-modal/oem-mnms-modal.js.map +1 -1
  24. package/dist/components/components-chat-message.js +1 -1
  25. package/dist/components/components-digital-human.js +1 -1
  26. package/dist/components/components-export-records-modal.js +1 -1
  27. package/dist/components/components-mobile-input-btn.js +1 -1
  28. package/dist/components/components-mobile-upload-btn.js +1 -1
  29. package/dist/components/components-oem-virtual-chat-modal.js +1 -1
  30. package/dist/components/components-position-selector.js +1 -1
  31. package/dist/components/components-thousand-resume-wrapper.js +1 -1
  32. package/dist/components/components-upload.js +1 -1
  33. package/dist/components/components-voice-input-btn.js +1 -1
  34. package/dist/components/index.js +1 -1
  35. package/dist/components/oem-htws-modal.js +5 -5
  36. package/dist/components/oem-jd-modal.js +5 -5
  37. package/dist/components/oem-jlpp-modal.js +7 -7
  38. package/dist/components/oem-jlsx-modal.js +5 -5
  39. package/dist/components/oem-jlzz-modal.js +5 -5
  40. package/dist/components/oem-mnct-modal.js +7 -7
  41. package/dist/components/oem-mnms-modal.js +33 -14
  42. package/dist/components/oem-mnms-modal.js.map +1 -1
  43. package/dist/components/oem-qgqjl-modal.js +9 -9
  44. package/dist/components/oem-zygh-modal.js +5 -5
  45. package/dist/components/{p-BFRi3q0W.js → p-1Og82Ep0.js} +5 -5
  46. package/dist/components/{p-BFRi3q0W.js.map → p-1Og82Ep0.js.map} +1 -1
  47. package/dist/components/{p-bN8cV-6p.js → p-4cH8lpxV.js} +3 -3
  48. package/dist/components/{p-bN8cV-6p.js.map → p-4cH8lpxV.js.map} +1 -1
  49. package/dist/components/{p-BM3Uw2oP.js → p-B67bLHro.js} +3 -3
  50. package/dist/components/{p-BM3Uw2oP.js.map → p-B67bLHro.js.map} +1 -1
  51. package/dist/components/{p-BcfnFx-r.js → p-BEeMMmmh.js} +3 -3
  52. package/dist/components/{p-BcfnFx-r.js.map → p-BEeMMmmh.js.map} +1 -1
  53. package/dist/components/{p-eCq8pG8p.js → p-BpZYnmde.js} +3 -3
  54. package/dist/components/{p-eCq8pG8p.js.map → p-BpZYnmde.js.map} +1 -1
  55. package/dist/components/{p-DMgFwD2E.js → p-CBvY92_l.js} +3 -3
  56. package/dist/components/{p-DMgFwD2E.js.map → p-CBvY92_l.js.map} +1 -1
  57. package/dist/components/{p-DIODYCBp.js → p-CHfls5lB.js} +3 -3
  58. package/dist/components/{p-DIODYCBp.js.map → p-CHfls5lB.js.map} +1 -1
  59. package/dist/components/p-CR7WLzmM.js.map +1 -1
  60. package/dist/components/{p-N4zIHizC.js → p-CwiRXzmz.js} +3 -3
  61. package/dist/components/{p-N4zIHizC.js.map → p-CwiRXzmz.js.map} +1 -1
  62. package/dist/components/{p-BmdNpdnF.js → p-D1ef9m4W.js} +3 -3
  63. package/dist/components/{p-BmdNpdnF.js.map → p-D1ef9m4W.js.map} +1 -1
  64. package/dist/components/{p-BSePHX12.js → p-DLNuvdhM.js} +3 -3
  65. package/dist/components/{p-BSePHX12.js.map → p-DLNuvdhM.js.map} +1 -1
  66. package/dist/components/{p-DZZVv7rD.js → p-DaTn77_9.js} +3 -3
  67. package/dist/components/{p-DZZVv7rD.js.map → p-DaTn77_9.js.map} +1 -1
  68. package/dist/components/{p-CJP8puRZ.js → p-DeIaTwe0.js} +5 -5
  69. package/dist/components/{p-CJP8puRZ.js.map → p-DeIaTwe0.js.map} +1 -1
  70. package/dist/components/{p-CHYVHkii.js → p-DrSY-qKH.js} +4 -4
  71. package/dist/components/{p-CHYVHkii.js.map → p-DrSY-qKH.js.map} +1 -1
  72. package/dist/components/{p-e6CMjPaS.js → p-XAbfe-Eo.js} +3 -3
  73. package/dist/components/{p-e6CMjPaS.js.map → p-XAbfe-Eo.js.map} +1 -1
  74. package/dist/components/pcm-1zhanshi-mnms-modal.js +5 -5
  75. package/dist/components/pcm-app-chat-modal.js +1 -1
  76. package/dist/components/pcm-ats-mnms-modal.js +5 -5
  77. package/dist/components/pcm-card.js +1 -1
  78. package/dist/components/pcm-hr-chat-modal.js +2 -2
  79. package/dist/components/pcm-htws-modal.js +8 -8
  80. package/dist/components/pcm-hyzj-modal.js +5 -5
  81. package/dist/components/pcm-jd-modal.js +6 -6
  82. package/dist/components/pcm-jlpp-modal.js +8 -8
  83. package/dist/components/pcm-jlsx-modal.js +5 -5
  84. package/dist/components/pcm-jlzz-modal.js +6 -6
  85. package/dist/components/pcm-mnct-modal.js +7 -7
  86. package/dist/components/pcm-mnms-modal.js +8 -8
  87. package/dist/components/pcm-mnms-zp-modal.js +8 -8
  88. package/dist/components/pcm-msbg-modal.js +5 -5
  89. package/dist/components/pcm-qgqjl-modal.js +9 -9
  90. package/dist/components/pcm-virtual-chat-modal.js +1 -1
  91. package/dist/components/pcm-zsk-chat-modal.js +2 -2
  92. package/dist/components/pcm-zygh-modal.js +7 -7
  93. package/dist/components/pcm-zygh-v2-modal.js +7 -7
  94. package/dist/esm/components-chat-message_33.entry.js +2 -2
  95. package/dist/esm/components-oem-virtual-chat-modal.entry.js +1 -1
  96. package/dist/esm/{conversation-utils-Bxa39xP4.js → conversation-utils-CJWMre9Q.js} +3 -3
  97. package/dist/esm/{conversation-utils-Bxa39xP4.js.map → conversation-utils-CJWMre9Q.js.map} +1 -1
  98. package/dist/esm/{index-DW5FTRQw.js → index-CqLNn7P_.js} +5 -5
  99. package/dist/esm/{index-DW5FTRQw.js.map → index-CqLNn7P_.js.map} +1 -1
  100. package/dist/esm/index-DA8Myhft.js.map +1 -1
  101. package/dist/esm/index.js +1 -1
  102. package/dist/esm/loader.js +1 -1
  103. package/dist/esm/oem-htws-modal.entry.js +1 -1
  104. package/dist/esm/oem-jd-modal.entry.js +1 -1
  105. package/dist/esm/oem-jlpp-modal.entry.js +1 -1
  106. package/dist/esm/oem-jlzz-modal.entry.js +1 -1
  107. package/dist/esm/oem-mnct-modal.entry.js +1 -1
  108. package/dist/esm/oem-mnms-modal.entry.js +25 -7
  109. package/dist/esm/oem-mnms-modal.entry.js.map +1 -1
  110. package/dist/esm/oem-qgqjl-modal.entry.js +2 -2
  111. package/dist/esm/pcm-agents.js +1 -1
  112. package/dist/esm/pcm-hr-chat-modal.entry.js +1 -1
  113. package/dist/esm/pcm-jlsx-modal.entry.js +1 -1
  114. package/dist/pcm-agents/index.esm.js +1 -1
  115. package/dist/pcm-agents/oem-mnms-modal.entry.esm.js.map +1 -1
  116. package/dist/pcm-agents/{p-3c4c7332.entry.js → p-12a7de69.entry.js} +2 -2
  117. package/dist/pcm-agents/{p-4b452f16.entry.js → p-2c09a5e8.entry.js} +2 -2
  118. package/dist/pcm-agents/{p-e41f71b7.entry.js → p-34cd25b4.entry.js} +2 -2
  119. package/dist/pcm-agents/{p-f083cc3e.entry.js → p-3aaca407.entry.js} +2 -2
  120. package/dist/pcm-agents/{p-41adab36.entry.js → p-4bc79fbc.entry.js} +2 -2
  121. package/dist/pcm-agents/{p-49f7746b.entry.js → p-923201ed.entry.js} +2 -2
  122. package/dist/pcm-agents/p-B45ym-nq.js +2 -0
  123. package/dist/pcm-agents/{p-D9uI2bAc.js.map → p-B45ym-nq.js.map} +1 -1
  124. package/dist/pcm-agents/p-DA8Myhft.js.map +1 -1
  125. package/dist/pcm-agents/{p-CXfG5cJs.js → p-DY_GOKt4.js} +2 -2
  126. package/dist/pcm-agents/{p-CXfG5cJs.js.map → p-DY_GOKt4.js.map} +1 -1
  127. package/dist/pcm-agents/{p-b127df53.entry.js → p-a219b078.entry.js} +2 -2
  128. package/dist/pcm-agents/p-a219b078.entry.js.map +1 -0
  129. package/dist/pcm-agents/{p-2ad0a639.entry.js → p-a9a575de.entry.js} +2 -2
  130. package/dist/pcm-agents/{p-a269af7b.entry.js → p-beef4af4.entry.js} +2 -2
  131. package/dist/pcm-agents/{p-586a52b1.entry.js → p-cc810fd2.entry.js} +2 -2
  132. package/dist/pcm-agents/{p-d6ac43b7.entry.js → p-eb8a3a6a.entry.js} +2 -2
  133. package/dist/pcm-agents/pcm-agents.esm.js +1 -1
  134. package/dist/types/components/oem-mnms-modal/oem-mnms-modal.d.ts +12 -0
  135. package/dist/types/components.d.ts +8 -0
  136. package/package.json +1 -1
  137. package/dist/pcm-agents/p-D9uI2bAc.js +0 -2
  138. package/dist/pcm-agents/p-b127df53.entry.js.map +0 -1
  139. /package/dist/pcm-agents/{p-3c4c7332.entry.js.map → p-12a7de69.entry.js.map} +0 -0
  140. /package/dist/pcm-agents/{p-4b452f16.entry.js.map → p-2c09a5e8.entry.js.map} +0 -0
  141. /package/dist/pcm-agents/{p-e41f71b7.entry.js.map → p-34cd25b4.entry.js.map} +0 -0
  142. /package/dist/pcm-agents/{p-f083cc3e.entry.js.map → p-3aaca407.entry.js.map} +0 -0
  143. /package/dist/pcm-agents/{p-41adab36.entry.js.map → p-4bc79fbc.entry.js.map} +0 -0
  144. /package/dist/pcm-agents/{p-49f7746b.entry.js.map → p-923201ed.entry.js.map} +0 -0
  145. /package/dist/pcm-agents/{p-2ad0a639.entry.js.map → p-a9a575de.entry.js.map} +0 -0
  146. /package/dist/pcm-agents/{p-a269af7b.entry.js.map → p-beef4af4.entry.js.map} +0 -0
  147. /package/dist/pcm-agents/{p-586a52b1.entry.js.map → p-cc810fd2.entry.js.map} +0 -0
  148. /package/dist/pcm-agents/{p-d6ac43b7.entry.js.map → p-eb8a3a6a.entry.js.map} +0 -0
@@ -2,13 +2,13 @@
2
2
 
3
3
  var index$1 = require('./index-C_qhED9Z.js');
4
4
  var index = require('./index-D5RimYc5.js');
5
- var index$2 = require('./index-dOB1Ub7w.js');
5
+ var index$2 = require('./index-a47Ewe4p.js');
6
6
  var errorEvent = require('./error-event-J_ZWIqWF.js');
7
7
  var sentryReporter = require('./sentry-reporter-uulX7WVC.js');
8
8
  var message_service = require('./message.service-BLgUOl2N.js');
9
9
  var config_store = require('./config.store-BIjicJY9.js');
10
10
  var messageUtils = require('./message-utils-C8eJnzLy.js');
11
- var conversationUtils = require('./conversation-utils-BTK7DAnU.js');
11
+ var conversationUtils = require('./conversation-utils-DQiNVeCN.js');
12
12
  require('./exports-Dc-pQh4A.js');
13
13
 
14
14
  var clipboard$1 = {exports: {}};
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-C_qhED9Z.js');
4
- var index$1 = require('./index-dOB1Ub7w.js');
4
+ var index$1 = require('./index-a47Ewe4p.js');
5
5
  var messageUtils = require('./message-utils-C8eJnzLy.js');
6
6
  var errorEvent = require('./error-event-J_ZWIqWF.js');
7
7
  var config_store = require('./config.store-BIjicJY9.js');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-dOB1Ub7w.js');
3
+ var index = require('./index-a47Ewe4p.js');
4
4
  var sentryReporter = require('./sentry-reporter-uulX7WVC.js');
5
5
  var errorEvent = require('./error-event-J_ZWIqWF.js');
6
6
 
@@ -102,6 +102,6 @@ async function fetchHistoryConversations(botId, componentName, lastId = '', limi
102
102
  }
103
103
 
104
104
  exports.fetchHistoryConversations = fetchHistoryConversations;
105
- //# sourceMappingURL=conversation-utils-BTK7DAnU.js.map
105
+ //# sourceMappingURL=conversation-utils-DQiNVeCN.js.map
106
106
 
107
- //# sourceMappingURL=conversation-utils-BTK7DAnU.js.map
107
+ //# sourceMappingURL=conversation-utils-DQiNVeCN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-utils-BTK7DAnU.js","sources":["src/utils/conversation-utils.ts"],"sourcesContent":["import { sendHttpRequest } from './utils';\r\nimport { SentryReporter } from './sentry-reporter';\r\nimport { ErrorEventBus } from './error-event';\r\nimport { ConversationItem, ConversationPageResult, ConversationDetail } from '../interfaces/chat';\r\n\r\ninterface ConversationApiItem {\r\n id: string;\r\n name?: string;\r\n created_at: number | string;\r\n updated_at: number | string;\r\n status?: string;\r\n message_count?: number;\r\n inputs?: any;\r\n}\r\n\r\ninterface ConversationApiData {\r\n data?: ConversationApiItem[];\r\n items?: ConversationApiItem[];\r\n has_more?: boolean;\r\n}\r\n\r\n/**\r\n * 格式化会话时间戳为可读字符串\r\n */\r\nfunction formatConversationTime(createdAt: number | string): string {\r\n try {\r\n const timestamp = typeof createdAt === 'string' ? parseInt(createdAt, 10) : createdAt;\r\n if (isNaN(timestamp) || timestamp <= 0) {\r\n return '未知时间';\r\n }\r\n\r\n const createdTime = new Date(timestamp * 1000);\r\n if (isNaN(createdTime.getTime())) {\r\n return '未知时间';\r\n }\r\n\r\n const now = new Date();\r\n const diffDays = Math.floor((now.getTime() - createdTime.getTime()) / (1000 * 60 * 60 * 24));\r\n const hh = createdTime.getHours().toString().padStart(2, '0');\r\n const mm = createdTime.getMinutes().toString().padStart(2, '0');\r\n const month = (createdTime.getMonth() + 1).toString().padStart(2, '0');\r\n const day = createdTime.getDate().toString().padStart(2, '0');\r\n\r\n if (diffDays === 0) {\r\n return `今天 ${hh}:${mm}`;\r\n }\r\n\r\n if (diffDays === 1) {\r\n return `昨天 ${hh}:${mm}`;\r\n }\r\n\r\n if (diffDays > 1 && diffDays < 7) {\r\n const weekdays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];\r\n return `${weekdays[createdTime.getDay()]} ${hh}:${mm}`;\r\n }\r\n\r\n return `${month}-${day} ${hh}:${mm}`;\r\n } catch {\r\n return '时间解析失败';\r\n }\r\n}\r\n\r\n/**\r\n * 获取历史会话列表\r\n * @param botId 机器人 ID\r\n * @param componentName 调用组件名称\r\n * @param lastId 上一页最后一条会话 ID,空字符串表示第一页\r\n * @param limit 每页数量\r\n * @returns 游标分页结果\r\n */\r\nexport async function fetchHistoryConversations(\r\n botId: string,\r\n componentName: string,\r\n lastId: string = '',\r\n limit: number = 20,\r\n): Promise<ConversationPageResult> {\r\n try {\r\n const result = await sendHttpRequest<ConversationApiData>({\r\n url: '/sdk/v1/chat/conversations',\r\n method: 'GET',\r\n data: {\r\n bot_id: botId,\r\n last_id: lastId,\r\n limit,\r\n },\r\n });\r\n\r\n if (result.success && result.data) {\r\n const rawConversations: ConversationApiItem[] = result.data.data || result.data.items || [];\r\n const hasMore = typeof result.data.has_more === 'boolean'\r\n ? result.data.has_more\r\n : rawConversations.length > limit;\r\n const conversations: ConversationItem[] = rawConversations.slice(0, limit).map((conv: ConversationApiItem) => ({\r\n id: conv.id,\r\n name: conv.name || '新会话',\r\n created_at: Number(conv.created_at),\r\n updated_at: Number(conv.updated_at),\r\n status: conv.status,\r\n message_count: conv.message_count || 0,\r\n timeDisplay: formatConversationTime(conv.created_at),\r\n inputs: conv.inputs,\r\n }));\r\n\r\n return {\r\n items: conversations,\r\n hasMore,\r\n nextCursor: conversations.length > 0 ? conversations[conversations.length - 1].id : '',\r\n };\r\n }\r\n\r\n return {\r\n items: [],\r\n hasMore: false,\r\n nextCursor: '',\r\n };\r\n } catch (error) {\r\n console.error('获取历史会话失败:', error);\r\n SentryReporter.captureError(error, {\r\n action: 'fetchHistoryConversations',\r\n component: componentName,\r\n title: '获取历史会话失败',\r\n });\r\n ErrorEventBus.emitError({ error, message: '获取历史会话失败' });\r\n\r\n return {\r\n items: [],\r\n hasMore: false,\r\n nextCursor: '',\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * 获取单个会话详情\r\n * @param conversationId 会话 ID\r\n * @param componentName 调用组件名称\r\n * @returns 会话详情\r\n */\r\nexport async function fetchConversationDetail(\r\n conversationId: string,\r\n componentName: string,\r\n): Promise<ConversationDetail | null> {\r\n try {\r\n const result = await sendHttpRequest<{ data: ConversationDetail }>({\r\n url: '/sdk/v1/chat/conversation',\r\n method: 'GET',\r\n data: {\r\n conversation_id: conversationId,\r\n },\r\n });\r\n\r\n if (result.success && result.data?.data) {\r\n return result.data.data;\r\n }\r\n\r\n return null;\r\n } catch (error) {\r\n console.error('获取会话详情失败:', error);\r\n SentryReporter.captureError(error, {\r\n action: 'fetchConversationDetail',\r\n component: componentName,\r\n title: '获取会话详情失败',\r\n });\r\n ErrorEventBus.emitError({ error, message: '获取会话详情失败' });\r\n\r\n return null;\r\n }\r\n}\r\n"],"names":["sendHttpRequest","SentryReporter","ErrorEventBus"],"mappings":"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"}
1
+ {"version":3,"file":"conversation-utils-DQiNVeCN.js","sources":["src/utils/conversation-utils.ts"],"sourcesContent":["import { sendHttpRequest } from './utils';\r\nimport { SentryReporter } from './sentry-reporter';\r\nimport { ErrorEventBus } from './error-event';\r\nimport { ConversationItem, ConversationPageResult, ConversationDetail } from '../interfaces/chat';\r\n\r\ninterface ConversationApiItem {\r\n id: string;\r\n name?: string;\r\n created_at: number | string;\r\n updated_at: number | string;\r\n status?: string;\r\n message_count?: number;\r\n inputs?: any;\r\n}\r\n\r\ninterface ConversationApiData {\r\n data?: ConversationApiItem[];\r\n items?: ConversationApiItem[];\r\n has_more?: boolean;\r\n}\r\n\r\n/**\r\n * 格式化会话时间戳为可读字符串\r\n */\r\nfunction formatConversationTime(createdAt: number | string): string {\r\n try {\r\n const timestamp = typeof createdAt === 'string' ? parseInt(createdAt, 10) : createdAt;\r\n if (isNaN(timestamp) || timestamp <= 0) {\r\n return '未知时间';\r\n }\r\n\r\n const createdTime = new Date(timestamp * 1000);\r\n if (isNaN(createdTime.getTime())) {\r\n return '未知时间';\r\n }\r\n\r\n const now = new Date();\r\n const diffDays = Math.floor((now.getTime() - createdTime.getTime()) / (1000 * 60 * 60 * 24));\r\n const hh = createdTime.getHours().toString().padStart(2, '0');\r\n const mm = createdTime.getMinutes().toString().padStart(2, '0');\r\n const month = (createdTime.getMonth() + 1).toString().padStart(2, '0');\r\n const day = createdTime.getDate().toString().padStart(2, '0');\r\n\r\n if (diffDays === 0) {\r\n return `今天 ${hh}:${mm}`;\r\n }\r\n\r\n if (diffDays === 1) {\r\n return `昨天 ${hh}:${mm}`;\r\n }\r\n\r\n if (diffDays > 1 && diffDays < 7) {\r\n const weekdays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];\r\n return `${weekdays[createdTime.getDay()]} ${hh}:${mm}`;\r\n }\r\n\r\n return `${month}-${day} ${hh}:${mm}`;\r\n } catch {\r\n return '时间解析失败';\r\n }\r\n}\r\n\r\n/**\r\n * 获取历史会话列表\r\n * @param botId 机器人 ID\r\n * @param componentName 调用组件名称\r\n * @param lastId 上一页最后一条会话 ID,空字符串表示第一页\r\n * @param limit 每页数量\r\n * @returns 游标分页结果\r\n */\r\nexport async function fetchHistoryConversations(\r\n botId: string,\r\n componentName: string,\r\n lastId: string = '',\r\n limit: number = 20,\r\n): Promise<ConversationPageResult> {\r\n try {\r\n const result = await sendHttpRequest<ConversationApiData>({\r\n url: '/sdk/v1/chat/conversations',\r\n method: 'GET',\r\n data: {\r\n bot_id: botId,\r\n last_id: lastId,\r\n limit,\r\n },\r\n });\r\n\r\n if (result.success && result.data) {\r\n const rawConversations: ConversationApiItem[] = result.data.data || result.data.items || [];\r\n const hasMore = typeof result.data.has_more === 'boolean'\r\n ? result.data.has_more\r\n : rawConversations.length > limit;\r\n const conversations: ConversationItem[] = rawConversations.slice(0, limit).map((conv: ConversationApiItem) => ({\r\n id: conv.id,\r\n name: conv.name || '新会话',\r\n created_at: Number(conv.created_at),\r\n updated_at: Number(conv.updated_at),\r\n status: conv.status,\r\n message_count: conv.message_count || 0,\r\n timeDisplay: formatConversationTime(conv.created_at),\r\n inputs: conv.inputs,\r\n }));\r\n\r\n return {\r\n items: conversations,\r\n hasMore,\r\n nextCursor: conversations.length > 0 ? conversations[conversations.length - 1].id : '',\r\n };\r\n }\r\n\r\n return {\r\n items: [],\r\n hasMore: false,\r\n nextCursor: '',\r\n };\r\n } catch (error) {\r\n console.error('获取历史会话失败:', error);\r\n SentryReporter.captureError(error, {\r\n action: 'fetchHistoryConversations',\r\n component: componentName,\r\n title: '获取历史会话失败',\r\n });\r\n ErrorEventBus.emitError({ error, message: '获取历史会话失败' });\r\n\r\n return {\r\n items: [],\r\n hasMore: false,\r\n nextCursor: '',\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * 获取单个会话详情\r\n * @param conversationId 会话 ID\r\n * @param componentName 调用组件名称\r\n * @returns 会话详情\r\n */\r\nexport async function fetchConversationDetail(\r\n conversationId: string,\r\n componentName: string,\r\n): Promise<ConversationDetail | null> {\r\n try {\r\n const result = await sendHttpRequest<{ data: ConversationDetail }>({\r\n url: '/sdk/v1/chat/conversation',\r\n method: 'GET',\r\n data: {\r\n conversation_id: conversationId,\r\n },\r\n });\r\n\r\n if (result.success && result.data?.data) {\r\n return result.data.data;\r\n }\r\n\r\n return null;\r\n } catch (error) {\r\n console.error('获取会话详情失败:', error);\r\n SentryReporter.captureError(error, {\r\n action: 'fetchConversationDetail',\r\n component: componentName,\r\n title: '获取会话详情失败',\r\n });\r\n ErrorEventBus.emitError({ error, message: '获取会话详情失败' });\r\n\r\n return null;\r\n }\r\n}\r\n"],"names":["sendHttpRequest","SentryReporter","ErrorEventBus"],"mappings":"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"}