@next-bricks/ai-portal 0.70.1 → 0.70.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.
Files changed (271) hide show
  1. package/dist/bricks.json +45 -45
  2. package/dist/chunks/1097.05983e91.js +3 -0
  3. package/dist/chunks/{1097.9e80dcca.js.LICENSE.txt → 1097.05983e91.js.LICENSE.txt} +2 -0
  4. package/dist/chunks/1097.05983e91.js.map +1 -0
  5. package/dist/chunks/{1889.b7766f77.js → 1889.803775eb.js} +2 -2
  6. package/dist/chunks/{1889.b7766f77.js.map → 1889.803775eb.js.map} +1 -1
  7. package/dist/chunks/3171.9d323cbe.js +2 -0
  8. package/dist/chunks/3171.9d323cbe.js.map +1 -0
  9. package/dist/chunks/{3186.f231329a.js → 3186.ca53075a.js} +2 -2
  10. package/dist/chunks/{3186.f231329a.js.map → 3186.ca53075a.js.map} +1 -1
  11. package/dist/chunks/3840.6080d56e.js +3 -0
  12. package/dist/chunks/3840.6080d56e.js.map +1 -0
  13. package/dist/chunks/{4864.bee3bb30.js → 4864.beefe6d5.js} +2 -2
  14. package/dist/chunks/{4864.bee3bb30.js.map → 4864.beefe6d5.js.map} +1 -1
  15. package/dist/chunks/5399.ef4bb3aa.js +2 -0
  16. package/dist/chunks/5399.ef4bb3aa.js.map +1 -0
  17. package/dist/chunks/551.ae5171a6.js +3 -0
  18. package/dist/chunks/551.ae5171a6.js.map +1 -0
  19. package/dist/chunks/5552.53024929.js +2 -0
  20. package/dist/chunks/5552.53024929.js.map +1 -0
  21. package/dist/chunks/6277.c8a6013f.js +2 -0
  22. package/dist/chunks/6277.c8a6013f.js.map +1 -0
  23. package/dist/chunks/6376.c35ff317.js +2 -0
  24. package/dist/chunks/6376.c35ff317.js.map +1 -0
  25. package/dist/chunks/7669.6f177bf2.js +3 -0
  26. package/dist/chunks/7669.6f177bf2.js.map +1 -0
  27. package/dist/chunks/794.214aa08f.js +3 -0
  28. package/dist/chunks/794.214aa08f.js.map +1 -0
  29. package/dist/chunks/948.c96c7036.js +3 -0
  30. package/dist/chunks/948.c96c7036.js.map +1 -0
  31. package/dist/chunks/action-buttons.68666920.js.map +1 -1
  32. package/dist/chunks/activity-timeline.96e7aaea.js.map +1 -1
  33. package/dist/chunks/ai-agents.cffd08a0.js.map +1 -1
  34. package/dist/chunks/ai-employees.267c3626.js.map +1 -1
  35. package/dist/chunks/blank-state.648eea95.js.map +1 -1
  36. package/dist/chunks/chat-box.060b8727.js +3 -0
  37. package/dist/chunks/chat-box.060b8727.js.map +1 -0
  38. package/dist/chunks/chat-input.e913e9ed.js +3 -0
  39. package/dist/chunks/chat-input.e913e9ed.js.map +1 -0
  40. package/dist/chunks/chat-panel-welcome.2f7c6c8b.js.map +1 -1
  41. package/dist/chunks/{chat-panel.3160f2e8.js → chat-panel.63207d2f.js} +2 -2
  42. package/dist/chunks/chat-panel.63207d2f.js.map +1 -0
  43. package/dist/chunks/chat-stream.393c8241.js.map +1 -1
  44. package/dist/chunks/cruise-canvas.bfae3138.js.map +1 -1
  45. package/dist/chunks/dropdown-select.336442ba.js.map +1 -1
  46. package/dist/chunks/elevo-card.49b42ed0.js.map +1 -1
  47. package/dist/chunks/elevo-logo.25e3b889.js.map +1 -1
  48. package/dist/chunks/elevo-sidebar.dfaaf9d1.js +3 -0
  49. package/dist/chunks/elevo-sidebar.dfaaf9d1.js.map +1 -0
  50. package/dist/chunks/flow-tabs.ee1290c2.js.map +1 -1
  51. package/dist/chunks/goal-card-list.74ab5767.js.map +1 -1
  52. package/dist/chunks/home-container.f1829834.js.map +1 -1
  53. package/dist/chunks/icon-button.545ffb24.js.map +1 -1
  54. package/dist/chunks/main.5e1b11a5.js +2 -0
  55. package/dist/chunks/main.5e1b11a5.js.map +1 -0
  56. package/dist/chunks/mcp-tools.f132c502.js.map +1 -1
  57. package/dist/chunks/notice-dropdown.63cb2415.js.map +1 -1
  58. package/dist/chunks/page-container.2185f2e0.js.map +1 -1
  59. package/dist/chunks/preview-container.a0ca6e2f.js.map +1 -1
  60. package/dist/chunks/project-knowledges.51731410.js.map +1 -1
  61. package/dist/chunks/running-flow.37a428cf.js.map +1 -1
  62. package/dist/chunks/show-case.44e995fc.js.map +1 -1
  63. package/dist/chunks/show-cases.c3921ea0.js.map +1 -1
  64. package/dist/chunks/space-chat-guide.b9f77cb5.js +3 -0
  65. package/dist/chunks/space-chat-guide.b9f77cb5.js.map +1 -0
  66. package/dist/chunks/space-logo.994f7a25.js.map +1 -1
  67. package/dist/chunks/space-workbench.9d48eec0.js +2 -0
  68. package/dist/chunks/space-workbench.9d48eec0.js.map +1 -0
  69. package/dist/chunks/stage-flow.9b6fad93.js.map +1 -1
  70. package/dist/chunks/stat-with-mini-chart.1509cf8c.js.map +1 -1
  71. package/dist/chunks/sticky-container.d3f7054e.js.map +1 -1
  72. package/dist/chunks/tab-list.ee97567f.js.map +1 -1
  73. package/dist/examples.json +56 -44
  74. package/dist/index.34851313.js +2 -0
  75. package/dist/index.34851313.js.map +1 -0
  76. package/dist/manifest.json +624 -343
  77. package/dist/types.json +1309 -1309
  78. package/dist-types/action-buttons/i18n.d.ts +1 -1
  79. package/dist-types/action-buttons/index.d.ts +10 -1
  80. package/dist-types/activity-timeline/i18n.d.ts +1 -1
  81. package/dist-types/activity-timeline/index.d.ts +10 -1
  82. package/dist-types/ai-agents/i18n.d.ts +1 -1
  83. package/dist-types/ai-agents/index.d.ts +10 -1
  84. package/dist-types/ai-employees/i18n.d.ts +1 -1
  85. package/dist-types/ai-employees/index.d.ts +16 -1
  86. package/dist-types/blank-state/index.d.ts +10 -1
  87. package/dist-types/chat-box/i18n.d.ts +1 -1
  88. package/dist-types/chat-input/i18n.d.ts +1 -1
  89. package/dist-types/chat-input/index.d.ts +37 -1
  90. package/dist-types/chat-panel/ChatPanelContent.d.ts +2 -2
  91. package/dist-types/chat-panel/index.d.ts +48 -6
  92. package/dist-types/chat-stream/Aside/FlowApp/i18n.d.ts +1 -1
  93. package/dist-types/chat-stream/i18n.d.ts +1 -1
  94. package/dist-types/chat-stream/index.d.ts +62 -1
  95. package/dist-types/cruise-canvas/NodeReplay/i18n.d.ts +1 -1
  96. package/dist-types/cruise-canvas/ToolCallDetail/i18n.d.ts +1 -1
  97. package/dist-types/cruise-canvas/i18n.d.ts +1 -1
  98. package/dist-types/cruise-canvas/index.d.ts +71 -1
  99. package/dist-types/dropdown-select/i18n.d.ts +1 -1
  100. package/dist-types/dropdown-select/index.d.ts +3 -1
  101. package/dist-types/elevo-card/index.d.ts +5 -1
  102. package/dist-types/elevo-logo/index.d.ts +3 -1
  103. package/dist-types/elevo-sidebar/i18n.d.ts +1 -1
  104. package/dist-types/elevo-sidebar/index.d.ts +19 -2
  105. package/dist-types/flow-tabs/index.d.ts +5 -1
  106. package/dist-types/gantt-chart/i18n.d.ts +1 -1
  107. package/dist-types/gantt-chart/index.d.ts +3 -1
  108. package/dist-types/goal-card-list/i18n.d.ts +1 -1
  109. package/dist-types/goal-card-list/index.d.ts +8 -1
  110. package/dist-types/home-container/index.d.ts +4 -1
  111. package/dist-types/icon-button/index.d.ts +4 -1
  112. package/dist-types/mcp-tools/i18n.d.ts +1 -1
  113. package/dist-types/mcp-tools/index.d.ts +3 -1
  114. package/dist-types/notice-dropdown/i18n.d.ts +1 -1
  115. package/dist-types/notice-list/i18n.d.ts +1 -1
  116. package/dist-types/page-container/index.d.ts +7 -0
  117. package/dist-types/preview-container/i18n.d.ts +1 -1
  118. package/dist-types/preview-container/index.d.ts +4 -0
  119. package/dist-types/project-conversations/i18n.d.ts +1 -1
  120. package/dist-types/project-knowledges/i18n.d.ts +1 -1
  121. package/dist-types/project-knowledges/index.d.ts +5 -0
  122. package/dist-types/running-flow/index.d.ts +3 -0
  123. package/dist-types/shared/ActivityPlan/i18n.d.ts +1 -1
  124. package/dist-types/shared/AskUser/i18n.d.ts +1 -1
  125. package/dist-types/shared/ChatBox/i18n.d.ts +1 -1
  126. package/dist-types/shared/CreatedView/i18n.d.ts +1 -1
  127. package/dist-types/shared/FilePreview/i18n.d.ts +1 -1
  128. package/dist-types/shared/FileUpload/i18n.d.ts +1 -1
  129. package/dist-types/shared/NodeFeedback/i18n.d.ts +1 -1
  130. package/dist-types/show-case/i18n.d.ts +1 -1
  131. package/dist-types/show-case/index.d.ts +5 -0
  132. package/dist-types/show-cases/i18n.d.ts +1 -1
  133. package/dist-types/show-cases/index.d.ts +4 -0
  134. package/dist-types/space-workbench/chat-panel-welcome/i18n.d.ts +1 -1
  135. package/dist-types/space-workbench/chat-panel-welcome/index.d.ts +3 -0
  136. package/dist-types/space-workbench/i18n.d.ts +1 -1
  137. package/dist-types/space-workbench/index.d.ts +7 -0
  138. package/dist-types/space-workbench/space-chat-guide/i18n.d.ts +1 -1
  139. package/dist-types/space-workbench/space-chat-guide/index.d.ts +3 -0
  140. package/dist-types/space-workbench/space-logo/index.d.ts +1 -0
  141. package/dist-types/stage-flow/i18n.d.ts +1 -1
  142. package/dist-types/stage-flow/index.d.ts +21 -0
  143. package/dist-types/stat-with-mini-chart/index.d.ts +10 -0
  144. package/dist-types/sticky-container/index.d.ts +3 -0
  145. package/dist-types/tab-list/index.d.ts +4 -0
  146. package/docs/action-buttons.md +59 -10
  147. package/docs/action-buttons.react.md +80 -0
  148. package/docs/activity-timeline.md +51 -7
  149. package/docs/activity-timeline.react.md +109 -0
  150. package/docs/ai-agents.md +62 -2
  151. package/docs/ai-agents.react.md +73 -0
  152. package/docs/ai-employees.md +76 -2
  153. package/docs/ai-employees.react.md +106 -0
  154. package/docs/blank-state.md +62 -2
  155. package/docs/blank-state.react.md +77 -0
  156. package/docs/chat-box.md +134 -52
  157. package/docs/chat-box.react.md +142 -0
  158. package/docs/chat-input.md +117 -1
  159. package/docs/chat-input.react.md +117 -0
  160. package/docs/chat-panel-welcome.md +39 -0
  161. package/docs/chat-panel-welcome.react.md +41 -0
  162. package/docs/chat-panel.md +86 -3
  163. package/docs/chat-panel.react.md +109 -0
  164. package/docs/chat-stream.md +149 -2
  165. package/docs/chat-stream.react.md +155 -0
  166. package/docs/cruise-canvas.md +159 -0
  167. package/docs/cruise-canvas.react.md +159 -0
  168. package/docs/dropdown-select.md +37 -8
  169. package/docs/dropdown-select.react.md +144 -0
  170. package/docs/elevo-card.md +75 -1
  171. package/docs/elevo-card.react.md +104 -0
  172. package/docs/elevo-logo.md +13 -1
  173. package/docs/elevo-logo.react.md +27 -0
  174. package/docs/elevo-sidebar.md +150 -1
  175. package/docs/elevo-sidebar.react.md +149 -0
  176. package/docs/flow-tabs.md +97 -2
  177. package/docs/flow-tabs.react.md +102 -0
  178. package/docs/gantt-chart.md +101 -0
  179. package/docs/gantt-chart.react.md +125 -0
  180. package/docs/goal-card-list.md +149 -13
  181. package/docs/goal-card-list.react.md +185 -0
  182. package/docs/home-container.md +48 -2
  183. package/docs/home-container.react.md +51 -0
  184. package/docs/icon-button.md +128 -2
  185. package/docs/icon-button.react.md +120 -0
  186. package/docs/mcp-tools.md +105 -2
  187. package/docs/mcp-tools.react.md +117 -0
  188. package/docs/notice-dropdown.md +53 -10
  189. package/docs/notice-dropdown.react.md +167 -0
  190. package/docs/notice-list.md +53 -5
  191. package/docs/notice-list.react.md +121 -0
  192. package/docs/page-container.md +80 -3
  193. package/docs/page-container.react.md +83 -0
  194. package/docs/preview-container.md +22 -32
  195. package/docs/preview-container.react.md +71 -0
  196. package/docs/project-conversations.md +85 -4
  197. package/docs/project-conversations.react.md +110 -0
  198. package/docs/project-knowledges.md +73 -8
  199. package/docs/project-knowledges.react.md +85 -0
  200. package/docs/running-flow.md +57 -2
  201. package/docs/running-flow.react.md +90 -0
  202. package/docs/show-case.md +48 -3
  203. package/docs/show-case.react.md +60 -0
  204. package/docs/show-cases.md +52 -2
  205. package/docs/show-cases.react.md +92 -0
  206. package/docs/space-chat-guide.md +32 -0
  207. package/docs/space-chat-guide.react.md +39 -0
  208. package/docs/space-logo.md +53 -0
  209. package/docs/space-logo.react.md +46 -0
  210. package/docs/space-workbench.md +45 -2
  211. package/docs/space-workbench.react.md +102 -0
  212. package/docs/stage-flow.md +122 -26
  213. package/docs/stage-flow.react.md +112 -0
  214. package/docs/stat-with-mini-chart.md +64 -159
  215. package/docs/stat-with-mini-chart.react.md +113 -0
  216. package/docs/sticky-container.md +56 -3
  217. package/docs/sticky-container.react.md +60 -0
  218. package/docs/tab-list.md +74 -3
  219. package/docs/tab-list.react.md +73 -0
  220. package/package.json +2 -2
  221. package/dist/chunks/1097.9e80dcca.js +0 -3
  222. package/dist/chunks/1097.9e80dcca.js.map +0 -1
  223. package/dist/chunks/2341.0e70532b.js +0 -2
  224. package/dist/chunks/2341.0e70532b.js.map +0 -1
  225. package/dist/chunks/3171.45ef4669.js +0 -2
  226. package/dist/chunks/3171.45ef4669.js.map +0 -1
  227. package/dist/chunks/3573.7b0bb780.js +0 -3
  228. package/dist/chunks/3573.7b0bb780.js.map +0 -1
  229. package/dist/chunks/4459.dbfa8706.js +0 -3
  230. package/dist/chunks/4459.dbfa8706.js.map +0 -1
  231. package/dist/chunks/4837.570099ad.js +0 -2
  232. package/dist/chunks/4837.570099ad.js.map +0 -1
  233. package/dist/chunks/5399.501fc322.js +0 -2
  234. package/dist/chunks/5399.501fc322.js.map +0 -1
  235. package/dist/chunks/5552.09658542.js +0 -2
  236. package/dist/chunks/5552.09658542.js.map +0 -1
  237. package/dist/chunks/6380.b8610c4b.js +0 -3
  238. package/dist/chunks/6380.b8610c4b.js.map +0 -1
  239. package/dist/chunks/7202.a893b0e6.js +0 -3
  240. package/dist/chunks/7202.a893b0e6.js.map +0 -1
  241. package/dist/chunks/948.e601f18c.js +0 -3
  242. package/dist/chunks/948.e601f18c.js.map +0 -1
  243. package/dist/chunks/9599.02a5e6e3.js +0 -2
  244. package/dist/chunks/9599.02a5e6e3.js.map +0 -1
  245. package/dist/chunks/9848.4b1f38c9.js +0 -3
  246. package/dist/chunks/9848.4b1f38c9.js.LICENSE.txt +0 -1
  247. package/dist/chunks/9848.4b1f38c9.js.map +0 -1
  248. package/dist/chunks/chat-box.1ac7555a.js +0 -3
  249. package/dist/chunks/chat-box.1ac7555a.js.map +0 -1
  250. package/dist/chunks/chat-input.444c80bb.js +0 -3
  251. package/dist/chunks/chat-input.444c80bb.js.map +0 -1
  252. package/dist/chunks/chat-panel.3160f2e8.js.map +0 -1
  253. package/dist/chunks/elevo-sidebar.a197a77f.js +0 -3
  254. package/dist/chunks/elevo-sidebar.a197a77f.js.map +0 -1
  255. package/dist/chunks/main.9d171af9.js +0 -2
  256. package/dist/chunks/main.9d171af9.js.map +0 -1
  257. package/dist/chunks/space-chat-guide.84f4a1e7.js +0 -3
  258. package/dist/chunks/space-chat-guide.84f4a1e7.js.map +0 -1
  259. package/dist/chunks/space-workbench.8c064898.js +0 -2
  260. package/dist/chunks/space-workbench.8c064898.js.map +0 -1
  261. package/dist/index.0edd6320.js +0 -2
  262. package/dist/index.0edd6320.js.map +0 -1
  263. /package/dist/chunks/{3573.7b0bb780.js.LICENSE.txt → 3840.6080d56e.js.LICENSE.txt} +0 -0
  264. /package/dist/chunks/{4459.dbfa8706.js.LICENSE.txt → 551.ae5171a6.js.LICENSE.txt} +0 -0
  265. /package/dist/chunks/{7202.a893b0e6.js.LICENSE.txt → 7669.6f177bf2.js.LICENSE.txt} +0 -0
  266. /package/dist/chunks/{6380.b8610c4b.js.LICENSE.txt → 794.214aa08f.js.LICENSE.txt} +0 -0
  267. /package/dist/chunks/{948.e601f18c.js.LICENSE.txt → 948.c96c7036.js.LICENSE.txt} +0 -0
  268. /package/dist/chunks/{chat-box.1ac7555a.js.LICENSE.txt → chat-box.060b8727.js.LICENSE.txt} +0 -0
  269. /package/dist/chunks/{chat-input.444c80bb.js.LICENSE.txt → chat-input.e913e9ed.js.LICENSE.txt} +0 -0
  270. /package/dist/chunks/{elevo-sidebar.a197a77f.js.LICENSE.txt → elevo-sidebar.dfaaf9d1.js.LICENSE.txt} +0 -0
  271. /package/dist/chunks/{space-chat-guide.84f4a1e7.js.LICENSE.txt → space-chat-guide.b9f77cb5.js.LICENSE.txt} +0 -0
@@ -1,11 +1,158 @@
1
- 构件 `ai-portal.chat-stream`
1
+ ---
2
+ tagName: ai-portal.chat-stream
3
+ displayName: WrappedAiPortalChatStream
4
+ description: AI 对话流视图,以聊天气泡形式展示对话过程,支持文件上传、命令联想、回放及用户反馈等功能。
5
+ category: ai-portal
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # ai-portal.chat-stream
10
+
11
+ > AI 对话流视图,以聊天气泡形式展示对话过程,支持文件上传、命令联想、回放及用户反馈等功能。
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ----------------------- | -------------------------------------- | ---- | ------ | -------------------------------------------------------- |
17
+ | conversationId | `string \| undefined` | 否 | - | 对话 ID |
18
+ | initialRequest | `RequestStore \| undefined \| null` | 否 | - | 初始请求数据。仅初始设置有效。 |
19
+ | replay | `boolean \| undefined` | 否 | - | 是否启用回放。仅初始设置有效。 |
20
+ | replayDelay | `number \| undefined` | 否 | `2` | 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。 |
21
+ | supports | `Record<string, boolean> \| undefined` | 否 | - | 功能开关配置,键为功能名,值为是否启用 |
22
+ | showHumanActions | `boolean \| undefined` | 否 | - | 是否显示 Human-in-the-loop 操作按钮 |
23
+ | showFeedback | `boolean \| undefined` | 否 | - | 是否显示反馈按钮 |
24
+ | showFeedbackAfterFailed | `boolean \| undefined` | 否 | - | 是否在任务失败时也显示反馈按钮 |
25
+ | showFeedbackOnView | `boolean \| undefined` | 否 | - | 是否在查看生成视图时显示反馈按钮 |
26
+ | showUiSwitch | `boolean \| undefined` | 否 | - | 是否显示切换到画布视图的按钮 |
27
+ | hideMermaid | `boolean \| undefined` | 否 | - | 是否隐藏 Mermaid 图表渲染,通过 CSS 属性选择器控制样式 |
28
+ | previewUrlTemplate | `string \| undefined` | 否 | - | 生成视图预览页的 URL 模板,支持 {viewId} 等字段插值 |
29
+ | showCases | `ShowCaseType[] \| undefined` | 否 | - | 示例场景列表,用于在空对话时展示快速入口 |
30
+ | exampleProjects | `ExampleProject[] \| undefined` | 否 | - | 示例项目列表,用于展示可参考的已有项目 |
31
+ | tryItOutUrl | `string \| undefined` | 否 | - | "试一试"跳转 URL |
32
+ | aiEmployees | `AIEmployee[] \| undefined` | 否 | - | 可 @ 提及的数字人列表 |
33
+ | commands | `Command[] \| undefined` | 否 | - | 命令列表,支持通过 / 或搜索触发联想 |
34
+ | uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
35
+
36
+ ## Events
37
+
38
+ | 事件 | detail | 说明 |
39
+ | ---------------- | ------------------------------------------------------------------------------- | -------------------------------- |
40
+ | share | `void` | 用户点击分享时触发 |
41
+ | terminate | `void` | 用户点击终止任务时触发 |
42
+ | feedback.submit | `FeedbackDetail` — { plan: 计划步骤列表, result: 结果列表, feedback: 反馈文本 } | 用户提交反馈时触发 |
43
+ | feedback.on.view | `string` — 生成视图的 viewId | 用户查看生成视图时的反馈事件触发 |
44
+ | ui.switch | `"canvas"` — 切换目标 UI 模式,值为 "canvas" | 用户点击切换到画布视图按钮时触发 |
45
+ | detail.change | `ConversationDetail` — { projectId: 关联的项目 ID } | 对话详情信息变化时触发 |
46
+ | split.change | `boolean` — 是否已切换到分屏模式 | 分屏状态切换时触发 |
47
+
48
+ ## Methods
49
+
50
+ | 方法 | 参数 | 返回值 | 说明 |
51
+ | -------------------- | -------------------------- | ------ | -------------------------------------- |
52
+ | resumed | `() => void` | `void` | 通知组件任务已恢复,用于继续中断的对话 |
53
+ | feedbackSubmitDone | `() => void` | `void` | 通知组件反馈提交成功 |
54
+ | feedbackSubmitFailed | `() => void` | `void` | 通知组件反馈提交失败 |
55
+ | feedbackOnViewDone | `(viewId: string) => void` | `void` | 通知组件查看视图的反馈处理完成 |
2
56
 
3
57
  ## Examples
4
58
 
5
59
  ### Basic
6
60
 
61
+ 展示 AI 对话流视图的基本用法,通过 conversationId 加载已有对话。
62
+
63
+ ```yaml preview
64
+ brick: ai-portal.chat-stream
65
+ properties:
66
+ conversationId: conv-001
67
+ showFeedback: true
68
+ events:
69
+ share:
70
+ action: console.log
71
+ terminate:
72
+ action: console.log
73
+ ```
74
+
75
+ ### With Feedback
76
+
77
+ 开启反馈功能,并在反馈提交后通知组件结果。
78
+
79
+ ```yaml preview
80
+ - brick: ai-portal.chat-stream
81
+ properties:
82
+ id: chatStream
83
+ conversationId: conv-001
84
+ showFeedback: true
85
+ showFeedbackAfterFailed: true
86
+ showFeedbackOnView: true
87
+ events:
88
+ feedback.submit:
89
+ useProvider: my-feedback-provider
90
+ args:
91
+ - <% EVENT.detail %>
92
+ callback:
93
+ success:
94
+ target: "#chatStream"
95
+ method: feedbackSubmitDone
96
+ error:
97
+ target: "#chatStream"
98
+ method: feedbackSubmitFailed
99
+ ```
100
+
101
+ ### With UI Switch
102
+
103
+ 显示切换到画布视图的按钮,并监听切换事件。
104
+
105
+ ```yaml preview
106
+ brick: ai-portal.chat-stream
107
+ properties:
108
+ conversationId: conv-001
109
+ showUiSwitch: true
110
+ events:
111
+ ui.switch:
112
+ action: console.log
113
+ detail.change:
114
+ action: console.log
115
+ split.change:
116
+ action: console.log
117
+ ```
118
+
119
+ ### Replay Mode
120
+
121
+ 使用回放模式展示历史对话过程。
122
+
123
+ ```yaml preview
124
+ brick: ai-portal.chat-stream
125
+ properties:
126
+ conversationId: conv-001
127
+ replay: true
128
+ replayDelay: 1
129
+ ```
130
+
131
+ ### With File Upload and Employees
132
+
133
+ 配置文件上传与数字人提及功能。
134
+
7
135
  ```yaml preview
8
136
  brick: ai-portal.chat-stream
9
137
  properties:
10
- textContent: Hello world
138
+ conversationId: conv-001
139
+ uploadOptions:
140
+ enabled: true
141
+ accept: image/*,.pdf
142
+ maxFiles: 3
143
+ aiEmployees:
144
+ - employeeId: emp001
145
+ name: 运维工程师小李
146
+ showCases:
147
+ - conversationId: show-001
148
+ title: 服务器故障排查
149
+ summary: 通过 AI 快速定位服务器异常
150
+ scenario: ops
151
+ exampleProjects:
152
+ - instanceId: proj-001
153
+ name: 示例项目
154
+ tryItOutUrl: /try-it-out
155
+ events:
156
+ share:
157
+ action: console.log
11
158
  ```
@@ -0,0 +1,155 @@
1
+ ---
2
+ tagName: ai-portal.chat-stream
3
+ displayName: WrappedAiPortalChatStream
4
+ description: AI 对话流视图,以聊天气泡形式展示对话过程,支持文件上传、命令联想、回放及用户反馈等功能。
5
+ category: ai-portal
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # WrappedAiPortalChatStream
10
+
11
+ > AI 对话流视图,以聊天气泡形式展示对话过程,支持文件上传、命令联想、回放及用户反馈等功能。
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiPortalChatStream } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ----------------------- | -------------------------------------- | ---- | ------ | -------------------------------------------------------- |
23
+ | conversationId | `string \| undefined` | 否 | - | 对话 ID |
24
+ | initialRequest | `RequestStore \| undefined \| null` | 否 | - | 初始请求数据。仅初始设置有效。 |
25
+ | replay | `boolean \| undefined` | 否 | - | 是否启用回放。仅初始设置有效。 |
26
+ | replayDelay | `number \| undefined` | 否 | `2` | 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。 |
27
+ | supports | `Record<string, boolean> \| undefined` | 否 | - | 功能开关配置,键为功能名,值为是否启用 |
28
+ | showHumanActions | `boolean \| undefined` | 否 | - | 是否显示 Human-in-the-loop 操作按钮 |
29
+ | showFeedback | `boolean \| undefined` | 否 | - | 是否显示反馈按钮 |
30
+ | showFeedbackAfterFailed | `boolean \| undefined` | 否 | - | 是否在任务失败时也显示反馈按钮 |
31
+ | showFeedbackOnView | `boolean \| undefined` | 否 | - | 是否在查看生成视图时显示反馈按钮 |
32
+ | showUiSwitch | `boolean \| undefined` | 否 | - | 是否显示切换到画布视图的按钮 |
33
+ | hideMermaid | `boolean \| undefined` | 否 | - | 是否隐藏 Mermaid 图表渲染,通过 CSS 属性选择器控制样式 |
34
+ | previewUrlTemplate | `string \| undefined` | 否 | - | 生成视图预览页的 URL 模板,支持 {viewId} 等字段插值 |
35
+ | showCases | `ShowCaseType[] \| undefined` | 否 | - | 示例场景列表,用于在空对话时展示快速入口 |
36
+ | exampleProjects | `ExampleProject[] \| undefined` | 否 | - | 示例项目列表,用于展示可参考的已有项目 |
37
+ | tryItOutUrl | `string \| undefined` | 否 | - | "试一试"跳转 URL |
38
+ | aiEmployees | `AIEmployee[] \| undefined` | 否 | - | 可 @ 提及的数字人列表 |
39
+ | commands | `Command[] \| undefined` | 否 | - | 命令列表,支持通过 / 或搜索触发联想 |
40
+ | uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
41
+
42
+ ## Events
43
+
44
+ | 事件 | detail | 说明 |
45
+ | ---------------- | ------------------------------------------------------------------------------- | -------------------------------- |
46
+ | onShare | `void` | 用户点击分享时触发 |
47
+ | onTerminate | `void` | 用户点击终止任务时触发 |
48
+ | onFeedbackSubmit | `FeedbackDetail` — { plan: 计划步骤列表, result: 结果列表, feedback: 反馈文本 } | 用户提交反馈时触发 |
49
+ | onFeedbackOnView | `string` — 生成视图的 viewId | 用户查看生成视图时的反馈事件触发 |
50
+ | onUiSwitch | `"canvas"` — 切换目标 UI 模式,值为 "canvas" | 用户点击切换到画布视图按钮时触发 |
51
+ | onDetailChange | `ConversationDetail` — { projectId: 关联的项目 ID } | 对话详情信息变化时触发 |
52
+ | onSplitChange | `boolean` — 是否已切换到分屏模式 | 分屏状态切换时触发 |
53
+
54
+ ## Methods
55
+
56
+ | 方法 | 参数 | 返回值 | 说明 |
57
+ | -------------------- | -------------------------- | ------ | -------------------------------------- |
58
+ | resumed | `() => void` | `void` | 通知组件任务已恢复,用于继续中断的对话 |
59
+ | feedbackSubmitDone | `() => void` | `void` | 通知组件反馈提交成功 |
60
+ | feedbackSubmitFailed | `() => void` | `void` | 通知组件反馈提交失败 |
61
+ | feedbackOnViewDone | `(viewId: string) => void` | `void` | 通知组件查看视图的反馈处理完成 |
62
+
63
+ ## Examples
64
+
65
+ ### Basic
66
+
67
+ 展示 AI 对话流视图的基本用法,通过 conversationId 加载已有对话。
68
+
69
+ ```tsx
70
+ <WrappedAiPortalChatStream
71
+ conversationId="conv-001"
72
+ showFeedback={true}
73
+ onShare={(e) => console.log(e.detail)}
74
+ onTerminate={(e) => console.log(e.detail)}
75
+ />
76
+ ```
77
+
78
+ ### With Feedback
79
+
80
+ 开启反馈功能,并在反馈提交后通知组件结果。
81
+
82
+ ```tsx
83
+ const ref = useRef<any>();
84
+
85
+ const handleFeedbackSubmit = async (e: CustomEvent) => {
86
+ try {
87
+ await submitFeedback(e.detail);
88
+ ref.current?.feedbackSubmitDone();
89
+ } catch {
90
+ ref.current?.feedbackSubmitFailed();
91
+ }
92
+ };
93
+
94
+ <WrappedAiPortalChatStream
95
+ ref={ref}
96
+ conversationId="conv-001"
97
+ showFeedback={true}
98
+ showFeedbackAfterFailed={true}
99
+ showFeedbackOnView={true}
100
+ onFeedbackSubmit={handleFeedbackSubmit}
101
+ />;
102
+ ```
103
+
104
+ ### With UI Switch
105
+
106
+ 显示切换到画布视图的按钮,并监听切换事件。
107
+
108
+ ```tsx
109
+ <WrappedAiPortalChatStream
110
+ conversationId="conv-001"
111
+ showUiSwitch={true}
112
+ onUiSwitch={(e) => console.log(e.detail)}
113
+ onDetailChange={(e) => console.log(e.detail)}
114
+ onSplitChange={(e) => console.log(e.detail)}
115
+ />
116
+ ```
117
+
118
+ ### Replay Mode
119
+
120
+ 使用回放模式展示历史对话过程。
121
+
122
+ ```tsx
123
+ <WrappedAiPortalChatStream
124
+ conversationId="conv-001"
125
+ replay={true}
126
+ replayDelay={1}
127
+ />
128
+ ```
129
+
130
+ ### With File Upload and Employees
131
+
132
+ 配置文件上传与数字人提及功能。
133
+
134
+ ```tsx
135
+ <WrappedAiPortalChatStream
136
+ conversationId="conv-001"
137
+ uploadOptions={{
138
+ enabled: true,
139
+ accept: "image/*,.pdf",
140
+ maxFiles: 3,
141
+ }}
142
+ aiEmployees={[{ employeeId: "emp001", name: "运维工程师小李" }]}
143
+ showCases={[
144
+ {
145
+ conversationId: "show-001",
146
+ title: "服务器故障排查",
147
+ summary: "通过 AI 快速定位服务器异常",
148
+ scenario: "ops",
149
+ },
150
+ ]}
151
+ exampleProjects={[{ instanceId: "proj-001", name: "示例项目" }]}
152
+ tryItOutUrl="/try-it-out"
153
+ onShare={(e) => console.log(e.detail)}
154
+ />
155
+ ```
@@ -0,0 +1,159 @@
1
+ ---
2
+ tagName: ai-portal.cruise-canvas
3
+ displayName: WrappedAiPortalCruiseCanvas
4
+ description: AI 任务执行画布,以节点图形式展示任务的执行过程,支持任务回放、反馈及 UI 切换等功能。
5
+ category: ai-portal
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # ai-portal.cruise-canvas
10
+
11
+ > AI 任务执行画布,以节点图形式展示任务的执行过程,支持任务回放、反馈及 UI 切换等功能。
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ----------------------- | -------------------------------------- | ---- | ------ | -------------------------------------------------------- |
17
+ | conversationId | `string \| undefined` | 否 | - | 对话 ID |
18
+ | initialRequest | `RequestStore \| undefined \| null` | 否 | - | 初始请求数据。仅初始设置有效。 |
19
+ | replay | `boolean \| undefined` | 否 | - | 是否启用回放。仅初始设置有效。 |
20
+ | replayDelay | `number \| undefined` | 否 | `2` | 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。 |
21
+ | supports | `Record<string, boolean> \| undefined` | 否 | - | 功能开关配置,键为功能名,值为是否启用 |
22
+ | showHiddenJobs | `boolean \| undefined` | 否 | - | 是否显示隐藏的 Job 节点 |
23
+ | showHumanActions | `boolean \| undefined` | 否 | - | 是否显示 Human-in-the-loop 操作按钮 |
24
+ | showFeedback | `boolean \| undefined` | 否 | - | 是否显示反馈按钮 |
25
+ | showFeedbackAfterFailed | `boolean \| undefined` | 否 | - | 是否在任务失败时也显示反馈按钮 |
26
+ | showFeedbackOnView | `boolean \| undefined` | 否 | - | 是否在查看生成视图时显示反馈按钮 |
27
+ | showUiSwitch | `boolean \| undefined` | 否 | - | 是否显示切换到对话流视图的按钮 |
28
+ | hideMermaid | `boolean \| undefined` | 否 | - | 是否隐藏 Mermaid 图表渲染,通过 CSS 属性选择器控制样式 |
29
+ | showJsxEditor | `boolean \| undefined` | 否 | - | 是否显示 JSX 编辑器按钮 |
30
+ | previewUrlTemplate | `string \| undefined` | 否 | - | 生成视图预览页的 URL 模板,支持 {viewId} 等字段插值 |
31
+ | showCases | `ShowCaseType[] \| undefined` | 否 | - | 示例场景列表,用于在空对话时展示快速入口 |
32
+ | exampleProjects | `ExampleProject[] \| undefined` | 否 | - | 示例项目列表,用于展示可参考的已有项目 |
33
+ | tryItOutUrl | `string \| undefined` | 否 | - | "试一试"跳转 URL |
34
+ | separateInstructions | `boolean \| undefined` | 否 | - | 是否将任务说明独立展示,而非内联在节点中 |
35
+ | aiEmployees | `AIEmployee[] \| undefined` | 否 | - | 可 @ 提及的数字人列表 |
36
+ | commands | `Command[] \| undefined` | 否 | - | 命令列表,支持通过 / 或搜索触发联想 |
37
+ | uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
38
+
39
+ ## Events
40
+
41
+ | 事件 | detail | 说明 |
42
+ | ---------------- | ------------------------------------------------------------------------------- | ---------------------------------- |
43
+ | share | `void` | 用户点击分享时触发 |
44
+ | terminate | `void` | 用户点击终止任务时触发 |
45
+ | feedback.submit | `FeedbackDetail` — { plan: 计划步骤列表, result: 结果列表, feedback: 反馈文本 } | 用户提交反馈时触发 |
46
+ | feedback.on.view | `string` — 生成视图的 viewId | 用户查看生成视图时的反馈事件触发 |
47
+ | ui.switch | `"chat"` — 切换目标 UI 模式,值为 "chat" | 用户点击切换到对话流视图按钮时触发 |
48
+ | detail.change | `ConversationDetail` — { projectId: 关联的项目 ID } | 对话详情信息变化时触发 |
49
+
50
+ ## Methods
51
+
52
+ | 方法 | 参数 | 返回值 | 说明 |
53
+ | -------------------- | -------------------------- | ------ | -------------------------------------- |
54
+ | resumed | `() => void` | `void` | 通知组件任务已恢复,用于继续中断的对话 |
55
+ | feedbackSubmitDone | `() => void` | `void` | 通知组件反馈提交成功 |
56
+ | feedbackSubmitFailed | `() => void` | `void` | 通知组件反馈提交失败 |
57
+ | feedbackOnViewDone | `(viewId: string) => void` | `void` | 通知组件查看视图的反馈处理完成 |
58
+
59
+ ## Examples
60
+
61
+ ### Basic
62
+
63
+ 展示 AI 任务画布的基本用法,通过 conversationId 加载已有对话的执行过程。
64
+
65
+ ```yaml preview
66
+ brick: ai-portal.cruise-canvas
67
+ properties:
68
+ conversationId: conv-001
69
+ events:
70
+ share:
71
+ action: console.log
72
+ terminate:
73
+ action: console.log
74
+ ```
75
+
76
+ ### With Feedback
77
+
78
+ 开启反馈功能,在任务完成后收集用户反馈。
79
+
80
+ ```yaml preview
81
+ - brick: ai-portal.cruise-canvas
82
+ properties:
83
+ id: cruiseCanvas
84
+ conversationId: conv-001
85
+ showFeedback: true
86
+ showFeedbackAfterFailed: true
87
+ showFeedbackOnView: true
88
+ events:
89
+ feedback.submit:
90
+ useProvider: my-feedback-provider
91
+ args:
92
+ - <% EVENT.detail %>
93
+ callback:
94
+ success:
95
+ target: "#cruiseCanvas"
96
+ method: feedbackSubmitDone
97
+ error:
98
+ target: "#cruiseCanvas"
99
+ method: feedbackSubmitFailed
100
+ detail.change:
101
+ action: console.log
102
+ ```
103
+
104
+ ### With UI Switch and Canvas Options
105
+
106
+ 启用 UI 切换按钮,并展示隐藏节点和独立说明。
107
+
108
+ ```yaml preview
109
+ brick: ai-portal.cruise-canvas
110
+ properties:
111
+ conversationId: conv-001
112
+ showUiSwitch: true
113
+ showHiddenJobs: true
114
+ showHumanActions: true
115
+ separateInstructions: true
116
+ showJsxEditor: true
117
+ events:
118
+ ui.switch:
119
+ action: console.log
120
+ ```
121
+
122
+ ### Replay Mode
123
+
124
+ 使用回放模式展示历史任务的执行过程。
125
+
126
+ ```yaml preview
127
+ brick: ai-portal.cruise-canvas
128
+ properties:
129
+ conversationId: conv-001
130
+ replay: true
131
+ replayDelay: 2
132
+ ```
133
+
134
+ ### With Upload and Show Cases
135
+
136
+ 配置文件上传及示例场景,丰富画布的入口展示。
137
+
138
+ ```yaml preview
139
+ brick: ai-portal.cruise-canvas
140
+ properties:
141
+ conversationId: conv-001
142
+ uploadOptions:
143
+ enabled: true
144
+ accept: image/*,.pdf
145
+ maxFiles: 3
146
+ showCases:
147
+ - conversationId: show-001
148
+ title: 自动化部署流程
149
+ summary: 通过 AI 自动完成服务部署
150
+ scenario: devops
151
+ exampleProjects:
152
+ - instanceId: proj-001
153
+ name: 示例项目
154
+ tryItOutUrl: /try-it-out
155
+ previewUrlTemplate: /preview/{viewId}
156
+ events:
157
+ share:
158
+ action: console.log
159
+ ```
@@ -0,0 +1,159 @@
1
+ ---
2
+ tagName: ai-portal.cruise-canvas
3
+ displayName: WrappedAiPortalCruiseCanvas
4
+ description: AI 任务执行画布,以节点图形式展示任务的执行过程,支持任务回放、反馈及 UI 切换等功能。
5
+ category: ai-portal
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # WrappedAiPortalCruiseCanvas
10
+
11
+ > AI 任务执行画布,以节点图形式展示任务的执行过程,支持任务回放、反馈及 UI 切换等功能。
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiPortalCruiseCanvas } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ----------------------- | -------------------------------------- | ---- | ------ | -------------------------------------------------------- |
23
+ | conversationId | `string \| undefined` | 否 | - | 对话 ID |
24
+ | initialRequest | `RequestStore \| undefined \| null` | 否 | - | 初始请求数据。仅初始设置有效。 |
25
+ | replay | `boolean \| undefined` | 否 | - | 是否启用回放。仅初始设置有效。 |
26
+ | replayDelay | `number \| undefined` | 否 | `2` | 设置回放时消息之间的时间间隔,单位为秒。仅初始设置有效。 |
27
+ | supports | `Record<string, boolean> \| undefined` | 否 | - | 功能开关配置,键为功能名,值为是否启用 |
28
+ | showHiddenJobs | `boolean \| undefined` | 否 | - | 是否显示隐藏的 Job 节点 |
29
+ | showHumanActions | `boolean \| undefined` | 否 | - | 是否显示 Human-in-the-loop 操作按钮 |
30
+ | showFeedback | `boolean \| undefined` | 否 | - | 是否显示反馈按钮 |
31
+ | showFeedbackAfterFailed | `boolean \| undefined` | 否 | - | 是否在任务失败时也显示反馈按钮 |
32
+ | showFeedbackOnView | `boolean \| undefined` | 否 | - | 是否在查看生成视图时显示反馈按钮 |
33
+ | showUiSwitch | `boolean \| undefined` | 否 | - | 是否显示切换到对话流视图的按钮 |
34
+ | hideMermaid | `boolean \| undefined` | 否 | - | 是否隐藏 Mermaid 图表渲染,通过 CSS 属性选择器控制样式 |
35
+ | showJsxEditor | `boolean \| undefined` | 否 | - | 是否显示 JSX 编辑器按钮 |
36
+ | previewUrlTemplate | `string \| undefined` | 否 | - | 生成视图预览页的 URL 模板,支持 {viewId} 等字段插值 |
37
+ | showCases | `ShowCaseType[] \| undefined` | 否 | - | 示例场景列表,用于在空对话时展示快速入口 |
38
+ | exampleProjects | `ExampleProject[] \| undefined` | 否 | - | 示例项目列表,用于展示可参考的已有项目 |
39
+ | tryItOutUrl | `string \| undefined` | 否 | - | "试一试"跳转 URL |
40
+ | separateInstructions | `boolean \| undefined` | 否 | - | 是否将任务说明独立展示,而非内联在节点中 |
41
+ | aiEmployees | `AIEmployee[] \| undefined` | 否 | - | 可 @ 提及的数字人列表 |
42
+ | commands | `Command[] \| undefined` | 否 | - | 命令列表,支持通过 / 或搜索触发联想 |
43
+ | uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
44
+
45
+ ## Events
46
+
47
+ | 事件 | detail | 说明 |
48
+ | ---------------- | ------------------------------------------------------------------------------- | ---------------------------------- |
49
+ | onShare | `void` | 用户点击分享时触发 |
50
+ | onTerminate | `void` | 用户点击终止任务时触发 |
51
+ | onFeedbackSubmit | `FeedbackDetail` — { plan: 计划步骤列表, result: 结果列表, feedback: 反馈文本 } | 用户提交反馈时触发 |
52
+ | onFeedbackOnView | `string` — 生成视图的 viewId | 用户查看生成视图时的反馈事件触发 |
53
+ | onUiSwitch | `"chat"` — 切换目标 UI 模式,值为 "chat" | 用户点击切换到对话流视图按钮时触发 |
54
+ | onDetailChange | `ConversationDetail` — { projectId: 关联的项目 ID } | 对话详情信息变化时触发 |
55
+
56
+ ## Methods
57
+
58
+ | 方法 | 参数 | 返回值 | 说明 |
59
+ | -------------------- | -------------------------- | ------ | -------------------------------------- |
60
+ | resumed | `() => void` | `void` | 通知组件任务已恢复,用于继续中断的对话 |
61
+ | feedbackSubmitDone | `() => void` | `void` | 通知组件反馈提交成功 |
62
+ | feedbackSubmitFailed | `() => void` | `void` | 通知组件反馈提交失败 |
63
+ | feedbackOnViewDone | `(viewId: string) => void` | `void` | 通知组件查看视图的反馈处理完成 |
64
+
65
+ ## Examples
66
+
67
+ ### Basic
68
+
69
+ 展示 AI 任务画布的基本用法,通过 conversationId 加载已有对话的执行过程。
70
+
71
+ ```tsx
72
+ <WrappedAiPortalCruiseCanvas
73
+ conversationId="conv-001"
74
+ onShare={(e) => console.log(e.detail)}
75
+ onTerminate={(e) => console.log(e.detail)}
76
+ />
77
+ ```
78
+
79
+ ### With Feedback
80
+
81
+ 开启反馈功能,在任务完成后收集用户反馈。
82
+
83
+ ```tsx
84
+ const ref = useRef<any>();
85
+
86
+ const handleFeedbackSubmit = async (e: CustomEvent) => {
87
+ try {
88
+ await submitFeedback(e.detail);
89
+ ref.current?.feedbackSubmitDone();
90
+ } catch {
91
+ ref.current?.feedbackSubmitFailed();
92
+ }
93
+ };
94
+
95
+ <WrappedAiPortalCruiseCanvas
96
+ ref={ref}
97
+ conversationId="conv-001"
98
+ showFeedback={true}
99
+ showFeedbackAfterFailed={true}
100
+ showFeedbackOnView={true}
101
+ onFeedbackSubmit={handleFeedbackSubmit}
102
+ onDetailChange={(e) => console.log(e.detail)}
103
+ />;
104
+ ```
105
+
106
+ ### With UI Switch and Canvas Options
107
+
108
+ 启用 UI 切换按钮,并展示隐藏节点和独立说明。
109
+
110
+ ```tsx
111
+ <WrappedAiPortalCruiseCanvas
112
+ conversationId="conv-001"
113
+ showUiSwitch={true}
114
+ showHiddenJobs={true}
115
+ showHumanActions={true}
116
+ separateInstructions={true}
117
+ showJsxEditor={true}
118
+ onUiSwitch={(e) => console.log(e.detail)}
119
+ />
120
+ ```
121
+
122
+ ### Replay Mode
123
+
124
+ 使用回放模式展示历史任务的执行过程。
125
+
126
+ ```tsx
127
+ <WrappedAiPortalCruiseCanvas
128
+ conversationId="conv-001"
129
+ replay={true}
130
+ replayDelay={2}
131
+ />
132
+ ```
133
+
134
+ ### With Upload and Show Cases
135
+
136
+ 配置文件上传及示例场景,丰富画布的入口展示。
137
+
138
+ ```tsx
139
+ <WrappedAiPortalCruiseCanvas
140
+ conversationId="conv-001"
141
+ uploadOptions={{
142
+ enabled: true,
143
+ accept: "image/*,.pdf",
144
+ maxFiles: 3,
145
+ }}
146
+ showCases={[
147
+ {
148
+ conversationId: "show-001",
149
+ title: "自动化部署流程",
150
+ summary: "通过 AI 自动完成服务部署",
151
+ scenario: "devops",
152
+ },
153
+ ]}
154
+ exampleProjects={[{ instanceId: "proj-001", name: "示例项目" }]}
155
+ tryItOutUrl="/try-it-out"
156
+ previewUrlTemplate="/preview/{viewId}"
157
+ onShare={(e) => console.log(e.detail)}
158
+ />
159
+ ```