@agentscope-ai/chat 1.1.39 → 1.1.41-beta.1764749089549

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 (233) hide show
  1. package/bin/starter_webui.zip +0 -0
  2. package/components/AgentScopeRuntimeWebUI/core/AgentScopeRuntime/Response/Builder.tsx +8 -4
  3. package/components/ImageGenerator/index.tsx +1 -1
  4. package/components/Markdown/Markdown.tsx +105 -0
  5. package/components/Markdown/{Markdown/defaultComponents → core/components}/CodeBlock.tsx +1 -1
  6. package/components/Markdown/core/components/Null.tsx +1 -0
  7. package/components/Markdown/core/components/Raw.tsx +18 -0
  8. package/components/Markdown/{Markdown → core}/hooks/useCitationsData.tsx +3 -7
  9. package/components/Markdown/core/hooks/useCursorContent.tsx +15 -0
  10. package/components/Markdown/{Markdown/hooks/useTyping.ts → core/hooks/useTyping.tsx} +4 -1
  11. package/components/Markdown/core/index.tsx +18 -0
  12. package/components/Markdown/{plugins → core/plugins}/citations/CitationComponent.tsx +5 -3
  13. package/components/Markdown/{plugins → core/plugins}/citations/index.tsx +3 -4
  14. package/components/Markdown/{plugins → core/plugins}/cursor/Underline.tsx +1 -1
  15. package/components/Markdown/{plugins → core/plugins}/cursor/index.tsx +8 -8
  16. package/components/Markdown/demo/cursor.tsx +2 -3
  17. package/components/Markdown/index.en-US.md +1 -2
  18. package/components/Markdown/index.tsx +6 -0
  19. package/components/Markdown/index.zh-CN.md +1 -2
  20. package/components/Markdown/{Markdown/style.ts → styles.ts} +12 -21
  21. package/components/Markdown/types.tsx +94 -0
  22. package/components/index.ts +1 -3
  23. package/lib/AgentScopeRuntimeWebUI/core/AgentScopeRuntime/Response/Builder.js +5 -3
  24. package/lib/ImageGenerator/index.js +1 -1
  25. package/lib/Markdown/Markdown.d.ts +4 -0
  26. package/lib/Markdown/Markdown.js +110 -0
  27. package/lib/Markdown/core/components/Null.d.ts +2 -0
  28. package/lib/Markdown/core/components/Null.js +3 -0
  29. package/lib/Markdown/core/components/Raw.d.ts +8 -0
  30. package/lib/Markdown/core/components/Raw.js +13 -0
  31. package/lib/Markdown/core/hooks/useCitationsData.d.ts +6 -0
  32. package/lib/Markdown/{Markdown → core}/hooks/useCitationsData.js +1 -1
  33. package/lib/Markdown/core/hooks/useCursorContent.d.ts +4 -0
  34. package/lib/Markdown/core/hooks/useCursorContent.js +14 -0
  35. package/lib/Markdown/core/hooks/useTyping.d.ts +5 -0
  36. package/lib/Markdown/{Markdown → core}/hooks/useTyping.js +3 -2
  37. package/lib/Markdown/core/index.d.ts +2 -0
  38. package/lib/Markdown/{Markdown/hooks/useAnimation.js → core/index.js} +23 -23
  39. package/lib/Markdown/{plugins → core/plugins}/citations/CitationComponent.js +5 -5
  40. package/lib/Markdown/{plugins → core/plugins}/citations/index.d.ts +1 -2
  41. package/lib/Markdown/{plugins → core/plugins}/citations/index.js +1 -1
  42. package/lib/Markdown/{plugins → core/plugins}/cursor/Dot.js +1 -1
  43. package/lib/Markdown/{plugins → core/plugins}/cursor/Underline.js +1 -1
  44. package/lib/Markdown/{plugins → core/plugins}/cursor/index.js +4 -4
  45. package/lib/Markdown/index.d.ts +2 -1
  46. package/lib/Markdown/styles.js +32 -0
  47. package/lib/Markdown/types.d.ts +78 -0
  48. package/lib/index.d.ts +0 -2
  49. package/lib/index.js +0 -2
  50. package/package.json +7 -31
  51. package/components/AGUI/components/HelpModal/icons.tsx +0 -68
  52. package/components/AGUI/components/HelpModal/index.tsx +0 -1
  53. package/components/AGUI/components/HelpModal/modal.tsx +0 -101
  54. package/components/AGUI/components/chat/Button.tsx +0 -18
  55. package/components/AGUI/components/chat/Chat.tsx +0 -780
  56. package/components/AGUI/components/chat/ChatContext.tsx +0 -248
  57. package/components/AGUI/components/chat/CodeBlock.tsx +0 -406
  58. package/components/AGUI/components/chat/Header.tsx +0 -22
  59. package/components/AGUI/components/chat/Icons.tsx +0 -237
  60. package/components/AGUI/components/chat/ImageUploadQueue.tsx +0 -77
  61. package/components/AGUI/components/chat/Input.tsx +0 -24
  62. package/components/AGUI/components/chat/Markdown.tsx +0 -134
  63. package/components/AGUI/components/chat/Messages.tsx +0 -259
  64. package/components/AGUI/components/chat/Modal.tsx +0 -133
  65. package/components/AGUI/components/chat/Popup.tsx +0 -57
  66. package/components/AGUI/components/chat/PoweredByTag.tsx +0 -29
  67. package/components/AGUI/components/chat/Sidebar.tsx +0 -74
  68. package/components/AGUI/components/chat/Suggestion.tsx +0 -132
  69. package/components/AGUI/components/chat/Suggestions.tsx +0 -20
  70. package/components/AGUI/components/chat/Textarea.tsx +0 -61
  71. package/components/AGUI/components/chat/Window.tsx +0 -152
  72. package/components/AGUI/components/chat/index.tsx +0 -11
  73. package/components/AGUI/components/chat/messages/AssistantMessage.tsx +0 -69
  74. package/components/AGUI/components/chat/messages/RenderActionExecutionMessage.tsx +0 -129
  75. package/components/AGUI/components/chat/messages/RenderAgentStateMessage.tsx +0 -116
  76. package/components/AGUI/components/chat/messages/RenderImageMessage.tsx +0 -64
  77. package/components/AGUI/components/chat/messages/RenderResultMessage.tsx +0 -26
  78. package/components/AGUI/components/chat/messages/RenderTextMessage.tsx +0 -51
  79. package/components/AGUI/components/chat/messages/UserMessage.tsx +0 -10
  80. package/components/AGUI/components/chat/props.ts +0 -186
  81. package/components/AGUI/components/index.ts +0 -1
  82. package/components/AGUI/context/index.ts +0 -1
  83. package/components/AGUI/hooks/index.ts +0 -1
  84. package/components/AGUI/hooks/use-copilot-chat-suggestions.tsx +0 -122
  85. package/components/AGUI/hooks/use-copy-to-clipboard.tsx +0 -29
  86. package/components/AGUI/hooks/use-dark-mode.ts +0 -10
  87. package/components/AGUI/hooks/use-push-to-talk.tsx +0 -166
  88. package/components/AGUI/index.tsx +0 -4
  89. package/components/AGUI/lib/utils.test.ts +0 -7
  90. package/components/AGUI/lib/utils.ts +0 -27
  91. package/components/AGUI/styles.css +0 -0
  92. package/components/AGUI/types/css.ts +0 -0
  93. package/components/AGUI/types/index.ts +0 -1
  94. package/components/AGUI/types/suggestions.ts +0 -6
  95. package/components/Markdown/Markdown/AnimationNode.tsx +0 -89
  96. package/components/Markdown/Markdown/Markdown.tsx +0 -61
  97. package/components/Markdown/Markdown/core/Parser.ts +0 -52
  98. package/components/Markdown/Markdown/core/Renderer.ts +0 -121
  99. package/components/Markdown/Markdown/core/index.ts +0 -4
  100. package/components/Markdown/Markdown/hooks/index.ts +0 -4
  101. package/components/Markdown/Markdown/hooks/useAnimation.tsx +0 -27
  102. package/components/Markdown/Markdown/hooks/useStreaming.ts +0 -503
  103. package/components/Markdown/Markdown/index.tsx +0 -198
  104. package/components/Markdown/Markdown/interface.ts +0 -217
  105. package/components/Markdown/demo/typing.tsx +0 -82
  106. package/components/Markdown/index.ts +0 -1
  107. package/components/Markdown/plugins/latex/index.ts +0 -109
  108. package/components/Markdown/plugins/type.ts +0 -71
  109. package/lib/AGUI/components/HelpModal/icons.d.ts +0 -5
  110. package/lib/AGUI/components/HelpModal/icons.js +0 -84
  111. package/lib/AGUI/components/HelpModal/index.d.ts +0 -1
  112. package/lib/AGUI/components/HelpModal/index.js +0 -1
  113. package/lib/AGUI/components/HelpModal/modal.d.ts +0 -1
  114. package/lib/AGUI/components/HelpModal/modal.js +0 -104
  115. package/lib/AGUI/components/chat/Button.d.ts +0 -2
  116. package/lib/AGUI/components/chat/Button.js +0 -27
  117. package/lib/AGUI/components/chat/Chat.d.ts +0 -242
  118. package/lib/AGUI/components/chat/Chat.js +0 -634
  119. package/lib/AGUI/components/chat/ChatContext.d.ts +0 -142
  120. package/lib/AGUI/components/chat/ChatContext.js +0 -75
  121. package/lib/AGUI/components/chat/CodeBlock.d.ts +0 -12
  122. package/lib/AGUI/components/chat/CodeBlock.js +0 -398
  123. package/lib/AGUI/components/chat/Header.d.ts +0 -2
  124. package/lib/AGUI/components/chat/Header.js +0 -28
  125. package/lib/AGUI/components/chat/Icons.d.ts +0 -16
  126. package/lib/AGUI/components/chat/Icons.js +0 -247
  127. package/lib/AGUI/components/chat/ImageUploadQueue.d.ts +0 -11
  128. package/lib/AGUI/components/chat/ImageUploadQueue.js +0 -65
  129. package/lib/AGUI/components/chat/Input.d.ts +0 -2
  130. package/lib/AGUI/components/chat/Input.js +0 -30
  131. package/lib/AGUI/components/chat/Markdown.d.ts +0 -7
  132. package/lib/AGUI/components/chat/Markdown.js +0 -187
  133. package/lib/AGUI/components/chat/Messages.d.ts +0 -7
  134. package/lib/AGUI/components/chat/Messages.js +0 -242
  135. package/lib/AGUI/components/chat/Modal.d.ts +0 -43
  136. package/lib/AGUI/components/chat/Modal.js +0 -113
  137. package/lib/AGUI/components/chat/Popup.d.ts +0 -49
  138. package/lib/AGUI/components/chat/Popup.js +0 -64
  139. package/lib/AGUI/components/chat/PoweredByTag.d.ts +0 -3
  140. package/lib/AGUI/components/chat/PoweredByTag.js +0 -27
  141. package/lib/AGUI/components/chat/Sidebar.d.ts +0 -2
  142. package/lib/AGUI/components/chat/Sidebar.js +0 -85
  143. package/lib/AGUI/components/chat/Suggestion.d.ts +0 -16
  144. package/lib/AGUI/components/chat/Suggestion.js +0 -146
  145. package/lib/AGUI/components/chat/Suggestions.d.ts +0 -2
  146. package/lib/AGUI/components/chat/Suggestions.js +0 -21
  147. package/lib/AGUI/components/chat/Textarea.d.ts +0 -11
  148. package/lib/AGUI/components/chat/Textarea.js +0 -60
  149. package/lib/AGUI/components/chat/Window.d.ts +0 -2
  150. package/lib/AGUI/components/chat/Window.js +0 -115
  151. package/lib/AGUI/components/chat/index.d.ts +0 -11
  152. package/lib/AGUI/components/chat/index.js +0 -11
  153. package/lib/AGUI/components/chat/messages/AssistantMessage.d.ts +0 -2
  154. package/lib/AGUI/components/chat/messages/AssistantMessage.js +0 -56
  155. package/lib/AGUI/components/chat/messages/RenderActionExecutionMessage.d.ts +0 -2
  156. package/lib/AGUI/components/chat/messages/RenderActionExecutionMessage.js +0 -114
  157. package/lib/AGUI/components/chat/messages/RenderAgentStateMessage.d.ts +0 -2
  158. package/lib/AGUI/components/chat/messages/RenderAgentStateMessage.js +0 -97
  159. package/lib/AGUI/components/chat/messages/RenderImageMessage.d.ts +0 -2
  160. package/lib/AGUI/components/chat/messages/RenderImageMessage.js +0 -61
  161. package/lib/AGUI/components/chat/messages/RenderResultMessage.d.ts +0 -2
  162. package/lib/AGUI/components/chat/messages/RenderResultMessage.js +0 -27
  163. package/lib/AGUI/components/chat/messages/RenderTextMessage.d.ts +0 -2
  164. package/lib/AGUI/components/chat/messages/RenderTextMessage.js +0 -47
  165. package/lib/AGUI/components/chat/messages/UserMessage.d.ts +0 -2
  166. package/lib/AGUI/components/chat/messages/UserMessage.js +0 -9
  167. package/lib/AGUI/components/chat/props.d.ts +0 -157
  168. package/lib/AGUI/components/index.d.ts +0 -1
  169. package/lib/AGUI/components/index.js +0 -1
  170. package/lib/AGUI/context/index.d.ts +0 -1
  171. package/lib/AGUI/context/index.js +0 -1
  172. package/lib/AGUI/hooks/index.d.ts +0 -1
  173. package/lib/AGUI/hooks/index.js +0 -1
  174. package/lib/AGUI/hooks/use-copilot-chat-suggestions.d.ts +0 -87
  175. package/lib/AGUI/hooks/use-copilot-chat-suggestions.js +0 -95
  176. package/lib/AGUI/hooks/use-copy-to-clipboard.d.ts +0 -7
  177. package/lib/AGUI/hooks/use-copy-to-clipboard.js +0 -34
  178. package/lib/AGUI/hooks/use-dark-mode.d.ts +0 -1
  179. package/lib/AGUI/hooks/use-dark-mode.js +0 -4
  180. package/lib/AGUI/hooks/use-push-to-talk.d.ts +0 -16
  181. package/lib/AGUI/hooks/use-push-to-talk.js +0 -260
  182. package/lib/AGUI/index.d.ts +0 -4
  183. package/lib/AGUI/index.js +0 -4
  184. package/lib/AGUI/lib/utils.d.ts +0 -2
  185. package/lib/AGUI/lib/utils.js +0 -52
  186. package/lib/AGUI/styles.css +0 -0
  187. package/lib/AGUI/types/css.d.ts +0 -0
  188. package/lib/AGUI/types/css.js +0 -0
  189. package/lib/AGUI/types/index.d.ts +0 -1
  190. package/lib/AGUI/types/index.js +0 -1
  191. package/lib/AGUI/types/suggestions.d.ts +0 -6
  192. package/lib/AGUI/types/suggestions.js +0 -1
  193. package/lib/Markdown/Markdown/AnimationNode.d.ts +0 -20
  194. package/lib/Markdown/Markdown/AnimationNode.js +0 -84
  195. package/lib/Markdown/Markdown/Markdown.d.ts +0 -4
  196. package/lib/Markdown/Markdown/Markdown.js +0 -58
  197. package/lib/Markdown/Markdown/core/Parser.d.ts +0 -16
  198. package/lib/Markdown/Markdown/core/Parser.js +0 -65
  199. package/lib/Markdown/Markdown/core/Renderer.d.ts +0 -24
  200. package/lib/Markdown/Markdown/core/Renderer.js +0 -137
  201. package/lib/Markdown/Markdown/core/index.d.ts +0 -3
  202. package/lib/Markdown/Markdown/core/index.js +0 -3
  203. package/lib/Markdown/Markdown/hooks/index.d.ts +0 -3
  204. package/lib/Markdown/Markdown/hooks/index.js +0 -3
  205. package/lib/Markdown/Markdown/hooks/useAnimation.d.ts +0 -4
  206. package/lib/Markdown/Markdown/hooks/useCitationsData.d.ts +0 -7
  207. package/lib/Markdown/Markdown/hooks/useStreaming.d.ts +0 -3
  208. package/lib/Markdown/Markdown/hooks/useStreaming.js +0 -521
  209. package/lib/Markdown/Markdown/hooks/useTyping.d.ts +0 -4
  210. package/lib/Markdown/Markdown/index.d.ts +0 -84
  211. package/lib/Markdown/Markdown/index.js +0 -161
  212. package/lib/Markdown/Markdown/interface.d.ts +0 -203
  213. package/lib/Markdown/Markdown/interface.js +0 -1
  214. package/lib/Markdown/Markdown/style.js +0 -32
  215. package/lib/Markdown/plugins/latex/index.d.ts +0 -9
  216. package/lib/Markdown/plugins/latex/index.js +0 -97
  217. package/lib/Markdown/plugins/type.d.ts +0 -60
  218. package/lib/Markdown/plugins/type.js +0 -1
  219. /package/components/Markdown/{Markdown/defaultComponents/DisabledImage.tsx → core/components/DisableImage.tsx} +0 -0
  220. /package/components/Markdown/{Markdown/defaultComponents → core/components}/Media.tsx +0 -0
  221. /package/components/Markdown/{plugins → core/plugins}/cursor/Dot.tsx +0 -0
  222. /package/lib/Markdown/{Markdown/defaultComponents → core/components}/CodeBlock.d.ts +0 -0
  223. /package/lib/Markdown/{Markdown/defaultComponents → core/components}/CodeBlock.js +0 -0
  224. /package/lib/Markdown/{Markdown/defaultComponents/DisabledImage.d.ts → core/components/DisableImage.d.ts} +0 -0
  225. /package/lib/Markdown/{Markdown/defaultComponents/DisabledImage.js → core/components/DisableImage.js} +0 -0
  226. /package/lib/Markdown/{Markdown/defaultComponents → core/components}/Media.d.ts +0 -0
  227. /package/lib/Markdown/{Markdown/defaultComponents → core/components}/Media.js +0 -0
  228. /package/lib/Markdown/{plugins → core/plugins}/citations/CitationComponent.d.ts +0 -0
  229. /package/lib/Markdown/{plugins → core/plugins}/cursor/Dot.d.ts +0 -0
  230. /package/lib/Markdown/{plugins → core/plugins}/cursor/Underline.d.ts +0 -0
  231. /package/lib/Markdown/{plugins → core/plugins}/cursor/index.d.ts +0 -0
  232. /package/lib/Markdown/{Markdown/style.d.ts → styles.d.ts} +0 -0
  233. /package/lib/{AGUI/components/chat/props.js → Markdown/types.js} +0 -0
@@ -1,634 +0,0 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
8
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
9
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
11
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
12
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
13
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
14
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
19
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
- /**
21
- * <br/>
22
- * <img src="/images/CopilotChat.gif" width="500" />
23
- *
24
- * A chatbot panel component for the CopilotKit framework. The component allows for a high degree
25
- * of customization through various props and custom CSS.
26
- *
27
- * ## Install Dependencies
28
- *
29
- * This component is part of the [@copilotkit/react-ui](https://npmjs.com/package/@copilotkit/react-ui) package.
30
- *
31
- * ```shell npm2yarn \"@copilotkit/react-ui"\
32
- * npm install @copilotkit/react-core @copilotkit/react-ui
33
- * ```
34
- *
35
- * ## Usage
36
- *
37
- * ```tsx
38
- * import { CopilotChat } from "@copilotkit/react-ui";
39
- * import "@copilotkit/react-ui/styles.css";
40
- *
41
- * <CopilotChat
42
- * labels={{
43
- * title: "Your Assistant",
44
- * initial: "Hi! 👋 How can I assist you today?",
45
- * }}
46
- * />
47
- * ```
48
- *
49
- * ### Look & Feel
50
- *
51
- * By default, CopilotKit components do not have any styles. You can import CopilotKit's stylesheet at the root of your project:
52
- * ```tsx title="YourRootComponent.tsx"
53
- * ...
54
- * import "@copilotkit/react-ui/styles.css"; // [!code highlight]
55
- *
56
- * export function YourRootComponent() {
57
- * return (
58
- * <CopilotKit>
59
- * ...
60
- * </CopilotKit>
61
- * );
62
- * }
63
- * ```
64
- * For more information about how to customize the styles, check out the [Customize Look & Feel](/guides/custom-look-and-feel/customize-built-in-ui-components) guide.
65
- */
66
-
67
- import { ChatContext, ChatContextProvider } from "./ChatContext";
68
- import { Messages as DefaultMessages } from "./Messages";
69
- import { Input as DefaultInput } from "./Input";
70
- import { RenderTextMessage as DefaultRenderTextMessage } from "./messages/RenderTextMessage";
71
- import { RenderActionExecutionMessage as DefaultRenderActionExecutionMessage } from "./messages/RenderActionExecutionMessage";
72
- import { RenderResultMessage as DefaultRenderResultMessage } from "./messages/RenderResultMessage";
73
- import { RenderAgentStateMessage as DefaultRenderAgentStateMessage } from "./messages/RenderAgentStateMessage";
74
- import { RenderImageMessage as DefaultRenderImageMessage } from "./messages/RenderImageMessage";
75
- import { AssistantMessage as DefaultAssistantMessage } from "./messages/AssistantMessage";
76
- import { UserMessage as DefaultUserMessage } from "./messages/UserMessage";
77
- import React, { useEffect, useRef, useState } from "react";
78
- import { useCopilotChat, useCopilotContext, useCopilotMessagesContext } from "@copilotkit/react-core";
79
- import { reloadSuggestions } from "./Suggestion";
80
- import { Role, TextMessage, ImageMessage } from "@copilotkit/runtime-client-gql";
81
- import { randomId } from "@copilotkit/shared";
82
- import { runAgent, stopAgent } from "@copilotkit/react-core";
83
- import { Suggestions as DefaultRenderSuggestionsList } from "./Suggestions";
84
-
85
- /**
86
- * Props for CopilotChat component.
87
- */
88
- import { jsx as _jsx } from "react/jsx-runtime";
89
- import { jsxs as _jsxs } from "react/jsx-runtime";
90
- import { Fragment as _Fragment } from "react/jsx-runtime";
91
- export function CopilotChat(_ref) {
92
- var instructions = _ref.instructions,
93
- onSubmitMessage = _ref.onSubmitMessage,
94
- makeSystemMessage = _ref.makeSystemMessage,
95
- onInProgress = _ref.onInProgress,
96
- onStopGeneration = _ref.onStopGeneration,
97
- onReloadMessages = _ref.onReloadMessages,
98
- onRegenerate = _ref.onRegenerate,
99
- onCopy = _ref.onCopy,
100
- onThumbsUp = _ref.onThumbsUp,
101
- onThumbsDown = _ref.onThumbsDown,
102
- markdownTagRenderers = _ref.markdownTagRenderers,
103
- _ref$Messages = _ref.Messages,
104
- Messages = _ref$Messages === void 0 ? DefaultMessages : _ref$Messages,
105
- _ref$RenderTextMessag = _ref.RenderTextMessage,
106
- RenderTextMessage = _ref$RenderTextMessag === void 0 ? DefaultRenderTextMessage : _ref$RenderTextMessag,
107
- _ref$RenderActionExec = _ref.RenderActionExecutionMessage,
108
- RenderActionExecutionMessage = _ref$RenderActionExec === void 0 ? DefaultRenderActionExecutionMessage : _ref$RenderActionExec,
109
- _ref$RenderAgentState = _ref.RenderAgentStateMessage,
110
- RenderAgentStateMessage = _ref$RenderAgentState === void 0 ? DefaultRenderAgentStateMessage : _ref$RenderAgentState,
111
- _ref$RenderResultMess = _ref.RenderResultMessage,
112
- RenderResultMessage = _ref$RenderResultMess === void 0 ? DefaultRenderResultMessage : _ref$RenderResultMess,
113
- _ref$RenderImageMessa = _ref.RenderImageMessage,
114
- RenderImageMessage = _ref$RenderImageMessa === void 0 ? DefaultRenderImageMessage : _ref$RenderImageMessa,
115
- _ref$RenderSuggestion = _ref.RenderSuggestionsList,
116
- RenderSuggestionsList = _ref$RenderSuggestion === void 0 ? DefaultRenderSuggestionsList : _ref$RenderSuggestion,
117
- _ref$Input = _ref.Input,
118
- Input = _ref$Input === void 0 ? DefaultInput : _ref$Input,
119
- className = _ref.className,
120
- icons = _ref.icons,
121
- labels = _ref.labels,
122
- _ref$AssistantMessage = _ref.AssistantMessage,
123
- AssistantMessage = _ref$AssistantMessage === void 0 ? DefaultAssistantMessage : _ref$AssistantMessage,
124
- _ref$UserMessage = _ref.UserMessage,
125
- UserMessage = _ref$UserMessage === void 0 ? DefaultUserMessage : _ref$UserMessage,
126
- imageUploadsEnabled = _ref.imageUploadsEnabled,
127
- _ref$inputFileAccept = _ref.inputFileAccept,
128
- inputFileAccept = _ref$inputFileAccept === void 0 ? "image/*" : _ref$inputFileAccept,
129
- hideStopButton = _ref.hideStopButton;
130
- var _useCopilotContext = useCopilotContext(),
131
- additionalInstructions = _useCopilotContext.additionalInstructions,
132
- setChatInstructions = _useCopilotContext.setChatInstructions;
133
- var _useState = useState([]),
134
- _useState2 = _slicedToArray(_useState, 2),
135
- selectedImages = _useState2[0],
136
- setSelectedImages = _useState2[1];
137
- var fileInputRef = useRef(null);
138
-
139
- // Clipboard paste handler
140
- useEffect(function () {
141
- if (!imageUploadsEnabled) return;
142
- var handlePaste = /*#__PURE__*/function () {
143
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(e) {
144
- var _target$parentElement, _e$clipboardData;
145
- var target, items, imageItems, imagePromises, loadedImages;
146
- return _regeneratorRuntime().wrap(function _callee$(_context) {
147
- while (1) switch (_context.prev = _context.next) {
148
- case 0:
149
- target = e.target;
150
- if ((_target$parentElement = target.parentElement) !== null && _target$parentElement !== void 0 && _target$parentElement.classList.contains("copilotKitInput")) {
151
- _context.next = 3;
152
- break;
153
- }
154
- return _context.abrupt("return");
155
- case 3:
156
- items = Array.from(((_e$clipboardData = e.clipboardData) === null || _e$clipboardData === void 0 ? void 0 : _e$clipboardData.items) || []);
157
- imageItems = items.filter(function (item) {
158
- return item.type.startsWith("image/");
159
- });
160
- if (!(imageItems.length === 0)) {
161
- _context.next = 7;
162
- break;
163
- }
164
- return _context.abrupt("return");
165
- case 7:
166
- e.preventDefault(); // Prevent default paste behavior for images
167
- imagePromises = imageItems.map(function (item) {
168
- var file = item.getAsFile();
169
- if (!file) return Promise.resolve(null);
170
- return new Promise(function (resolve, reject) {
171
- var reader = new FileReader();
172
- reader.onload = function (e) {
173
- var _e$target;
174
- var base64String = (_e$target = e.target) === null || _e$target === void 0 || (_e$target = _e$target.result) === null || _e$target === void 0 ? void 0 : _e$target.split(",")[1];
175
- if (base64String) {
176
- resolve({
177
- contentType: file.type,
178
- bytes: base64String
179
- });
180
- } else {
181
- resolve(null);
182
- }
183
- };
184
- reader.onerror = reject;
185
- reader.readAsDataURL(file);
186
- });
187
- });
188
- _context.prev = 9;
189
- _context.next = 12;
190
- return Promise.all(imagePromises);
191
- case 12:
192
- loadedImages = _context.sent.filter(function (img) {
193
- return img !== null;
194
- });
195
- setSelectedImages(function (prev) {
196
- return [].concat(_toConsumableArray(prev), _toConsumableArray(loadedImages));
197
- });
198
- _context.next = 19;
199
- break;
200
- case 16:
201
- _context.prev = 16;
202
- _context.t0 = _context["catch"](9);
203
- // TODO: Show an error message to the user
204
- console.error("Error processing pasted images:", _context.t0);
205
- case 19:
206
- case "end":
207
- return _context.stop();
208
- }
209
- }, _callee, null, [[9, 16]]);
210
- }));
211
- return function handlePaste(_x) {
212
- return _ref2.apply(this, arguments);
213
- };
214
- }();
215
- document.addEventListener("paste", handlePaste);
216
- return function () {
217
- return document.removeEventListener("paste", handlePaste);
218
- };
219
- }, [imageUploadsEnabled]);
220
- useEffect(function () {
221
- if (!(additionalInstructions !== null && additionalInstructions !== void 0 && additionalInstructions.length)) {
222
- setChatInstructions(instructions || "");
223
- return;
224
- }
225
-
226
- /*
227
- Will result in a prompt like:
228
- You are a helpful assistant.
229
- Additionally, follow these instructions:
230
- - Do not answer questions about the weather.
231
- - Do not answer questions about the stock market."
232
- */
233
- var combinedAdditionalInstructions = [instructions, "Additionally, follow these instructions:"].concat(_toConsumableArray(additionalInstructions.map(function (instruction) {
234
- return "- ".concat(instruction);
235
- })));
236
- console.log("combinedAdditionalInstructions", combinedAdditionalInstructions);
237
- setChatInstructions(combinedAdditionalInstructions.join("\n") || "");
238
- }, [instructions, additionalInstructions]);
239
- var _useCopilotChatLogic = useCopilotChatLogic(makeSystemMessage, onInProgress, onSubmitMessage, onStopGeneration, onReloadMessages),
240
- visibleMessages = _useCopilotChatLogic.visibleMessages,
241
- isLoading = _useCopilotChatLogic.isLoading,
242
- currentSuggestions = _useCopilotChatLogic.currentSuggestions,
243
- sendMessage = _useCopilotChatLogic.sendMessage,
244
- stopGeneration = _useCopilotChatLogic.stopGeneration,
245
- reloadMessages = _useCopilotChatLogic.reloadMessages;
246
-
247
- // Wrapper for sendMessage to clear selected images
248
- var handleSendMessage = function handleSendMessage(text) {
249
- var images = selectedImages;
250
- setSelectedImages([]);
251
- if (fileInputRef.current) {
252
- fileInputRef.current.value = "";
253
- }
254
- return sendMessage(text, images);
255
- };
256
- var chatContext = React.useContext(ChatContext);
257
- var isVisible = chatContext ? chatContext.open : true;
258
- var handleRegenerate = function handleRegenerate(messageId) {
259
- if (onRegenerate) {
260
- onRegenerate(messageId);
261
- }
262
- reloadMessages(messageId);
263
- };
264
- var handleCopy = function handleCopy(message) {
265
- if (onCopy) {
266
- onCopy(message);
267
- }
268
- };
269
- var handleImageUpload = /*#__PURE__*/function () {
270
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(event) {
271
- var files, fileReadPromises, loadedImages;
272
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
273
- while (1) switch (_context2.prev = _context2.next) {
274
- case 0:
275
- if (!(!event.target.files || event.target.files.length === 0)) {
276
- _context2.next = 2;
277
- break;
278
- }
279
- return _context2.abrupt("return");
280
- case 2:
281
- files = Array.from(event.target.files).filter(function (file) {
282
- return file.type.startsWith("image/");
283
- });
284
- if (!(files.length === 0)) {
285
- _context2.next = 5;
286
- break;
287
- }
288
- return _context2.abrupt("return");
289
- case 5:
290
- fileReadPromises = files.map(function (file) {
291
- return new Promise(function (resolve, reject) {
292
- var reader = new FileReader();
293
- reader.onload = function (e) {
294
- var _e$target2;
295
- var base64String = ((_e$target2 = e.target) === null || _e$target2 === void 0 || (_e$target2 = _e$target2.result) === null || _e$target2 === void 0 ? void 0 : _e$target2.split(",")[1]) || "";
296
- if (base64String) {
297
- resolve({
298
- contentType: file.type,
299
- bytes: base64String
300
- });
301
- }
302
- };
303
- reader.onerror = reject;
304
- reader.readAsDataURL(file);
305
- });
306
- });
307
- _context2.prev = 6;
308
- _context2.next = 9;
309
- return Promise.all(fileReadPromises);
310
- case 9:
311
- loadedImages = _context2.sent;
312
- setSelectedImages(function (prev) {
313
- return [].concat(_toConsumableArray(prev), _toConsumableArray(loadedImages));
314
- });
315
- _context2.next = 16;
316
- break;
317
- case 13:
318
- _context2.prev = 13;
319
- _context2.t0 = _context2["catch"](6);
320
- // TODO: Show an error message to the user
321
- console.error("Error reading files:", _context2.t0);
322
- case 16:
323
- case "end":
324
- return _context2.stop();
325
- }
326
- }, _callee2, null, [[6, 13]]);
327
- }));
328
- return function handleImageUpload(_x2) {
329
- return _ref3.apply(this, arguments);
330
- };
331
- }();
332
- var removeSelectedImage = function removeSelectedImage(index) {
333
- setSelectedImages(function (prev) {
334
- return prev.filter(function (_, i) {
335
- return i !== index;
336
- });
337
- });
338
- };
339
- return /*#__PURE__*/_jsxs(WrappedCopilotChat, {
340
- icons: icons,
341
- labels: labels,
342
- className: className,
343
- children: [/*#__PURE__*/_jsx(Messages, {
344
- AssistantMessage: AssistantMessage,
345
- UserMessage: UserMessage,
346
- RenderTextMessage: RenderTextMessage,
347
- RenderActionExecutionMessage: RenderActionExecutionMessage,
348
- RenderAgentStateMessage: RenderAgentStateMessage,
349
- RenderResultMessage: RenderResultMessage,
350
- RenderImageMessage: RenderImageMessage,
351
- messages: visibleMessages,
352
- inProgress: isLoading,
353
- onRegenerate: handleRegenerate,
354
- onCopy: handleCopy,
355
- onThumbsUp: onThumbsUp,
356
- onThumbsDown: onThumbsDown,
357
- markdownTagRenderers: markdownTagRenderers,
358
- children: currentSuggestions.length > 0 && /*#__PURE__*/_jsx(RenderSuggestionsList, {
359
- onSuggestionClick: handleSendMessage,
360
- suggestions: currentSuggestions
361
- })
362
- }), /*#__PURE__*/_jsx(Input, {
363
- inProgress: isLoading,
364
- onSend: handleSendMessage,
365
- onStop: stopGeneration
366
- // onUpload={imageUploadsEnabled ? () => fileInputRef.current?.click() : undefined}
367
- // hideStopButton={hideStopButton}
368
- })]
369
- });
370
- }
371
- export function WrappedCopilotChat(_ref4) {
372
- var children = _ref4.children,
373
- icons = _ref4.icons,
374
- labels = _ref4.labels,
375
- className = _ref4.className;
376
- var chatContext = React.useContext(ChatContext);
377
- if (!chatContext) {
378
- return /*#__PURE__*/_jsx(ChatContextProvider, {
379
- icons: icons,
380
- labels: labels,
381
- open: true,
382
- setOpen: function setOpen() {},
383
- children: /*#__PURE__*/_jsx("div", {
384
- className: "copilotKitChat ".concat(className !== null && className !== void 0 ? className : ""),
385
- children: children
386
- })
387
- });
388
- }
389
- return /*#__PURE__*/_jsx(_Fragment, {
390
- children: children
391
- });
392
- }
393
- var SUGGESTIONS_DEBOUNCE_TIMEOUT = 1000;
394
- export var useCopilotChatLogic = function useCopilotChatLogic(makeSystemMessage, onInProgress, onSubmitMessage, onStopGeneration, onReloadMessages) {
395
- var _generalContext$agent;
396
- var _useCopilotChat = useCopilotChat({
397
- id: randomId(),
398
- makeSystemMessage: makeSystemMessage
399
- }),
400
- visibleMessages = _useCopilotChat.visibleMessages,
401
- appendMessage = _useCopilotChat.appendMessage,
402
- defaultReloadMessages = _useCopilotChat.reloadMessages,
403
- defaultStopGeneration = _useCopilotChat.stopGeneration,
404
- runChatCompletion = _useCopilotChat.runChatCompletion,
405
- isLoading = _useCopilotChat.isLoading;
406
- var _useState3 = useState([]),
407
- _useState4 = _slicedToArray(_useState3, 2),
408
- currentSuggestions = _useState4[0],
409
- setCurrentSuggestions = _useState4[1];
410
- var suggestionsAbortControllerRef = useRef(null);
411
- var debounceTimerRef = useRef();
412
- var abortSuggestions = function abortSuggestions() {
413
- var _suggestionsAbortCont;
414
- (_suggestionsAbortCont = suggestionsAbortControllerRef.current) === null || _suggestionsAbortCont === void 0 || _suggestionsAbortCont.abort();
415
- suggestionsAbortControllerRef.current = null;
416
- };
417
- var generalContext = useCopilotContext();
418
- var messagesContext = useCopilotMessagesContext();
419
- var context = _objectSpread(_objectSpread({}, generalContext), messagesContext);
420
- useEffect(function () {
421
- onInProgress === null || onInProgress === void 0 || onInProgress(isLoading);
422
- abortSuggestions();
423
- debounceTimerRef.current = setTimeout(function () {
424
- if (!isLoading && Object.keys(context.chatSuggestionConfiguration).length !== 0) {
425
- suggestionsAbortControllerRef.current = new AbortController();
426
- reloadSuggestions(context, context.chatSuggestionConfiguration, setCurrentSuggestions, suggestionsAbortControllerRef);
427
- }
428
- }, currentSuggestions.length == 0 ? 0 : SUGGESTIONS_DEBOUNCE_TIMEOUT);
429
- return function () {
430
- clearTimeout(debounceTimerRef.current);
431
- };
432
- }, [isLoading, context.chatSuggestionConfiguration,
433
- // hackish way to trigger suggestions reload on reset, but better than moving suggestions to the
434
- // global context
435
- visibleMessages.length == 0]);
436
- var sendMessage = /*#__PURE__*/function () {
437
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(messageContent, imagesToUse) {
438
- var images, firstMessage, textMessage, i, imageMessage;
439
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
440
- while (1) switch (_context3.prev = _context3.next) {
441
- case 0:
442
- // Use images passed in the call OR the ones from the state (passed via props)
443
- images = imagesToUse || [];
444
- abortSuggestions();
445
- setCurrentSuggestions([]);
446
- firstMessage = null; // If there's text content, send a text message first
447
- if (!(messageContent.trim().length > 0)) {
448
- _context3.next = 18;
449
- break;
450
- }
451
- textMessage = new TextMessage({
452
- content: messageContent,
453
- role: Role.User
454
- });
455
- if (!onSubmitMessage) {
456
- _context3.next = 15;
457
- break;
458
- }
459
- _context3.prev = 7;
460
- _context3.next = 10;
461
- return onSubmitMessage(messageContent);
462
- case 10:
463
- _context3.next = 15;
464
- break;
465
- case 12:
466
- _context3.prev = 12;
467
- _context3.t0 = _context3["catch"](7);
468
- console.error("Error in onSubmitMessage:", _context3.t0);
469
- case 15:
470
- _context3.next = 17;
471
- return appendMessage(textMessage, {
472
- followUp: images.length === 0
473
- });
474
- case 17:
475
- if (!firstMessage) {
476
- firstMessage = textMessage;
477
- }
478
- case 18:
479
- if (!(images.length > 0)) {
480
- _context3.next = 28;
481
- break;
482
- }
483
- i = 0;
484
- case 20:
485
- if (!(i < images.length)) {
486
- _context3.next = 28;
487
- break;
488
- }
489
- imageMessage = new ImageMessage({
490
- format: images[i].contentType.replace("image/", ""),
491
- bytes: images[i].bytes,
492
- role: Role.User
493
- });
494
- _context3.next = 24;
495
- return appendMessage(imageMessage, {
496
- followUp: i === images.length - 1
497
- });
498
- case 24:
499
- if (!firstMessage) {
500
- firstMessage = imageMessage;
501
- }
502
- case 25:
503
- i++;
504
- _context3.next = 20;
505
- break;
506
- case 28:
507
- if (firstMessage) {
508
- _context3.next = 30;
509
- break;
510
- }
511
- return _context3.abrupt("return", new TextMessage({
512
- content: "",
513
- role: Role.User
514
- }));
515
- case 30:
516
- return _context3.abrupt("return", firstMessage);
517
- case 31:
518
- case "end":
519
- return _context3.stop();
520
- }
521
- }, _callee3, null, [[7, 12]]);
522
- }));
523
- return function sendMessage(_x3, _x4) {
524
- return _ref5.apply(this, arguments);
525
- };
526
- }();
527
- var messages = visibleMessages;
528
- var setMessages = messagesContext.setMessages;
529
- var currentAgentName = (_generalContext$agent = generalContext.agentSession) === null || _generalContext$agent === void 0 ? void 0 : _generalContext$agent.agentName;
530
- var restartCurrentAgent = /*#__PURE__*/function () {
531
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(hint) {
532
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
533
- while (1) switch (_context4.prev = _context4.next) {
534
- case 0:
535
- if (generalContext.agentSession) {
536
- generalContext.setAgentSession(_objectSpread(_objectSpread({}, generalContext.agentSession), {}, {
537
- nodeName: undefined,
538
- threadId: undefined
539
- }));
540
- generalContext.setCoagentStates(function (prevAgentStates) {
541
- return _objectSpread(_objectSpread({}, prevAgentStates), {}, _defineProperty({}, generalContext.agentSession.agentName, _objectSpread(_objectSpread({}, prevAgentStates[generalContext.agentSession.agentName]), {}, {
542
- threadId: undefined,
543
- nodeName: undefined,
544
- runId: undefined
545
- })));
546
- });
547
- }
548
- case 1:
549
- case "end":
550
- return _context4.stop();
551
- }
552
- }, _callee4);
553
- }));
554
- return function restartCurrentAgent(_x5) {
555
- return _ref6.apply(this, arguments);
556
- };
557
- }();
558
- var runCurrentAgent = /*#__PURE__*/function () {
559
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(hint) {
560
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
561
- while (1) switch (_context5.prev = _context5.next) {
562
- case 0:
563
- if (!generalContext.agentSession) {
564
- _context5.next = 3;
565
- break;
566
- }
567
- _context5.next = 3;
568
- return runAgent(generalContext.agentSession.agentName, context, appendMessage, runChatCompletion, hint);
569
- case 3:
570
- case "end":
571
- return _context5.stop();
572
- }
573
- }, _callee5);
574
- }));
575
- return function runCurrentAgent(_x6) {
576
- return _ref7.apply(this, arguments);
577
- };
578
- }();
579
- var stopCurrentAgent = function stopCurrentAgent() {
580
- if (generalContext.agentSession) {
581
- stopAgent(generalContext.agentSession.agentName, context);
582
- }
583
- };
584
- var setCurrentAgentState = function setCurrentAgentState(state) {
585
- if (generalContext.agentSession) {
586
- generalContext.setCoagentStates(function (prevAgentStates) {
587
- return _objectSpread(_objectSpread({}, prevAgentStates), {}, _defineProperty({}, generalContext.agentSession.agentName, {
588
- state: state
589
- }));
590
- });
591
- }
592
- };
593
- function stopGeneration() {
594
- if (onStopGeneration) {
595
- onStopGeneration({
596
- messages: messages,
597
- setMessages: setMessages,
598
- stopGeneration: defaultStopGeneration,
599
- currentAgentName: currentAgentName,
600
- restartCurrentAgent: restartCurrentAgent,
601
- stopCurrentAgent: stopCurrentAgent,
602
- runCurrentAgent: runCurrentAgent,
603
- setCurrentAgentState: setCurrentAgentState
604
- });
605
- } else {
606
- defaultStopGeneration();
607
- }
608
- }
609
- function reloadMessages(messageId) {
610
- if (onReloadMessages) {
611
- onReloadMessages({
612
- messages: messages,
613
- setMessages: setMessages,
614
- stopGeneration: defaultStopGeneration,
615
- currentAgentName: currentAgentName,
616
- restartCurrentAgent: restartCurrentAgent,
617
- stopCurrentAgent: stopCurrentAgent,
618
- runCurrentAgent: runCurrentAgent,
619
- setCurrentAgentState: setCurrentAgentState,
620
- messageId: messageId
621
- });
622
- } else {
623
- defaultReloadMessages(messageId);
624
- }
625
- }
626
- return {
627
- visibleMessages: visibleMessages,
628
- isLoading: isLoading,
629
- currentSuggestions: currentSuggestions,
630
- sendMessage: sendMessage,
631
- stopGeneration: stopGeneration,
632
- reloadMessages: reloadMessages
633
- };
634
- };