@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.
- package/bin/starter_webui.zip +0 -0
- package/components/AgentScopeRuntimeWebUI/core/AgentScopeRuntime/Response/Builder.tsx +8 -4
- package/components/ImageGenerator/index.tsx +1 -1
- package/components/Markdown/Markdown.tsx +105 -0
- package/components/Markdown/{Markdown/defaultComponents → core/components}/CodeBlock.tsx +1 -1
- package/components/Markdown/core/components/Null.tsx +1 -0
- package/components/Markdown/core/components/Raw.tsx +18 -0
- package/components/Markdown/{Markdown → core}/hooks/useCitationsData.tsx +3 -7
- package/components/Markdown/core/hooks/useCursorContent.tsx +15 -0
- package/components/Markdown/{Markdown/hooks/useTyping.ts → core/hooks/useTyping.tsx} +4 -1
- package/components/Markdown/core/index.tsx +18 -0
- package/components/Markdown/{plugins → core/plugins}/citations/CitationComponent.tsx +5 -3
- package/components/Markdown/{plugins → core/plugins}/citations/index.tsx +3 -4
- package/components/Markdown/{plugins → core/plugins}/cursor/Underline.tsx +1 -1
- package/components/Markdown/{plugins → core/plugins}/cursor/index.tsx +8 -8
- package/components/Markdown/demo/cursor.tsx +2 -3
- package/components/Markdown/index.en-US.md +1 -2
- package/components/Markdown/index.tsx +6 -0
- package/components/Markdown/index.zh-CN.md +1 -2
- package/components/Markdown/{Markdown/style.ts → styles.ts} +12 -21
- package/components/Markdown/types.tsx +94 -0
- package/components/index.ts +1 -3
- package/lib/AgentScopeRuntimeWebUI/core/AgentScopeRuntime/Response/Builder.js +5 -3
- package/lib/ImageGenerator/index.js +1 -1
- package/lib/Markdown/Markdown.d.ts +4 -0
- package/lib/Markdown/Markdown.js +110 -0
- package/lib/Markdown/core/components/Null.d.ts +2 -0
- package/lib/Markdown/core/components/Null.js +3 -0
- package/lib/Markdown/core/components/Raw.d.ts +8 -0
- package/lib/Markdown/core/components/Raw.js +13 -0
- package/lib/Markdown/core/hooks/useCitationsData.d.ts +6 -0
- package/lib/Markdown/{Markdown → core}/hooks/useCitationsData.js +1 -1
- package/lib/Markdown/core/hooks/useCursorContent.d.ts +4 -0
- package/lib/Markdown/core/hooks/useCursorContent.js +14 -0
- package/lib/Markdown/core/hooks/useTyping.d.ts +5 -0
- package/lib/Markdown/{Markdown → core}/hooks/useTyping.js +3 -2
- package/lib/Markdown/core/index.d.ts +2 -0
- package/lib/Markdown/{Markdown/hooks/useAnimation.js → core/index.js} +23 -23
- package/lib/Markdown/{plugins → core/plugins}/citations/CitationComponent.js +5 -5
- package/lib/Markdown/{plugins → core/plugins}/citations/index.d.ts +1 -2
- package/lib/Markdown/{plugins → core/plugins}/citations/index.js +1 -1
- package/lib/Markdown/{plugins → core/plugins}/cursor/Dot.js +1 -1
- package/lib/Markdown/{plugins → core/plugins}/cursor/Underline.js +1 -1
- package/lib/Markdown/{plugins → core/plugins}/cursor/index.js +4 -4
- package/lib/Markdown/index.d.ts +2 -1
- package/lib/Markdown/styles.js +32 -0
- package/lib/Markdown/types.d.ts +78 -0
- package/lib/index.d.ts +0 -2
- package/lib/index.js +0 -2
- package/package.json +7 -31
- package/components/AGUI/components/HelpModal/icons.tsx +0 -68
- package/components/AGUI/components/HelpModal/index.tsx +0 -1
- package/components/AGUI/components/HelpModal/modal.tsx +0 -101
- package/components/AGUI/components/chat/Button.tsx +0 -18
- package/components/AGUI/components/chat/Chat.tsx +0 -780
- package/components/AGUI/components/chat/ChatContext.tsx +0 -248
- package/components/AGUI/components/chat/CodeBlock.tsx +0 -406
- package/components/AGUI/components/chat/Header.tsx +0 -22
- package/components/AGUI/components/chat/Icons.tsx +0 -237
- package/components/AGUI/components/chat/ImageUploadQueue.tsx +0 -77
- package/components/AGUI/components/chat/Input.tsx +0 -24
- package/components/AGUI/components/chat/Markdown.tsx +0 -134
- package/components/AGUI/components/chat/Messages.tsx +0 -259
- package/components/AGUI/components/chat/Modal.tsx +0 -133
- package/components/AGUI/components/chat/Popup.tsx +0 -57
- package/components/AGUI/components/chat/PoweredByTag.tsx +0 -29
- package/components/AGUI/components/chat/Sidebar.tsx +0 -74
- package/components/AGUI/components/chat/Suggestion.tsx +0 -132
- package/components/AGUI/components/chat/Suggestions.tsx +0 -20
- package/components/AGUI/components/chat/Textarea.tsx +0 -61
- package/components/AGUI/components/chat/Window.tsx +0 -152
- package/components/AGUI/components/chat/index.tsx +0 -11
- package/components/AGUI/components/chat/messages/AssistantMessage.tsx +0 -69
- package/components/AGUI/components/chat/messages/RenderActionExecutionMessage.tsx +0 -129
- package/components/AGUI/components/chat/messages/RenderAgentStateMessage.tsx +0 -116
- package/components/AGUI/components/chat/messages/RenderImageMessage.tsx +0 -64
- package/components/AGUI/components/chat/messages/RenderResultMessage.tsx +0 -26
- package/components/AGUI/components/chat/messages/RenderTextMessage.tsx +0 -51
- package/components/AGUI/components/chat/messages/UserMessage.tsx +0 -10
- package/components/AGUI/components/chat/props.ts +0 -186
- package/components/AGUI/components/index.ts +0 -1
- package/components/AGUI/context/index.ts +0 -1
- package/components/AGUI/hooks/index.ts +0 -1
- package/components/AGUI/hooks/use-copilot-chat-suggestions.tsx +0 -122
- package/components/AGUI/hooks/use-copy-to-clipboard.tsx +0 -29
- package/components/AGUI/hooks/use-dark-mode.ts +0 -10
- package/components/AGUI/hooks/use-push-to-talk.tsx +0 -166
- package/components/AGUI/index.tsx +0 -4
- package/components/AGUI/lib/utils.test.ts +0 -7
- package/components/AGUI/lib/utils.ts +0 -27
- package/components/AGUI/styles.css +0 -0
- package/components/AGUI/types/css.ts +0 -0
- package/components/AGUI/types/index.ts +0 -1
- package/components/AGUI/types/suggestions.ts +0 -6
- package/components/Markdown/Markdown/AnimationNode.tsx +0 -89
- package/components/Markdown/Markdown/Markdown.tsx +0 -61
- package/components/Markdown/Markdown/core/Parser.ts +0 -52
- package/components/Markdown/Markdown/core/Renderer.ts +0 -121
- package/components/Markdown/Markdown/core/index.ts +0 -4
- package/components/Markdown/Markdown/hooks/index.ts +0 -4
- package/components/Markdown/Markdown/hooks/useAnimation.tsx +0 -27
- package/components/Markdown/Markdown/hooks/useStreaming.ts +0 -503
- package/components/Markdown/Markdown/index.tsx +0 -198
- package/components/Markdown/Markdown/interface.ts +0 -217
- package/components/Markdown/demo/typing.tsx +0 -82
- package/components/Markdown/index.ts +0 -1
- package/components/Markdown/plugins/latex/index.ts +0 -109
- package/components/Markdown/plugins/type.ts +0 -71
- package/lib/AGUI/components/HelpModal/icons.d.ts +0 -5
- package/lib/AGUI/components/HelpModal/icons.js +0 -84
- package/lib/AGUI/components/HelpModal/index.d.ts +0 -1
- package/lib/AGUI/components/HelpModal/index.js +0 -1
- package/lib/AGUI/components/HelpModal/modal.d.ts +0 -1
- package/lib/AGUI/components/HelpModal/modal.js +0 -104
- package/lib/AGUI/components/chat/Button.d.ts +0 -2
- package/lib/AGUI/components/chat/Button.js +0 -27
- package/lib/AGUI/components/chat/Chat.d.ts +0 -242
- package/lib/AGUI/components/chat/Chat.js +0 -634
- package/lib/AGUI/components/chat/ChatContext.d.ts +0 -142
- package/lib/AGUI/components/chat/ChatContext.js +0 -75
- package/lib/AGUI/components/chat/CodeBlock.d.ts +0 -12
- package/lib/AGUI/components/chat/CodeBlock.js +0 -398
- package/lib/AGUI/components/chat/Header.d.ts +0 -2
- package/lib/AGUI/components/chat/Header.js +0 -28
- package/lib/AGUI/components/chat/Icons.d.ts +0 -16
- package/lib/AGUI/components/chat/Icons.js +0 -247
- package/lib/AGUI/components/chat/ImageUploadQueue.d.ts +0 -11
- package/lib/AGUI/components/chat/ImageUploadQueue.js +0 -65
- package/lib/AGUI/components/chat/Input.d.ts +0 -2
- package/lib/AGUI/components/chat/Input.js +0 -30
- package/lib/AGUI/components/chat/Markdown.d.ts +0 -7
- package/lib/AGUI/components/chat/Markdown.js +0 -187
- package/lib/AGUI/components/chat/Messages.d.ts +0 -7
- package/lib/AGUI/components/chat/Messages.js +0 -242
- package/lib/AGUI/components/chat/Modal.d.ts +0 -43
- package/lib/AGUI/components/chat/Modal.js +0 -113
- package/lib/AGUI/components/chat/Popup.d.ts +0 -49
- package/lib/AGUI/components/chat/Popup.js +0 -64
- package/lib/AGUI/components/chat/PoweredByTag.d.ts +0 -3
- package/lib/AGUI/components/chat/PoweredByTag.js +0 -27
- package/lib/AGUI/components/chat/Sidebar.d.ts +0 -2
- package/lib/AGUI/components/chat/Sidebar.js +0 -85
- package/lib/AGUI/components/chat/Suggestion.d.ts +0 -16
- package/lib/AGUI/components/chat/Suggestion.js +0 -146
- package/lib/AGUI/components/chat/Suggestions.d.ts +0 -2
- package/lib/AGUI/components/chat/Suggestions.js +0 -21
- package/lib/AGUI/components/chat/Textarea.d.ts +0 -11
- package/lib/AGUI/components/chat/Textarea.js +0 -60
- package/lib/AGUI/components/chat/Window.d.ts +0 -2
- package/lib/AGUI/components/chat/Window.js +0 -115
- package/lib/AGUI/components/chat/index.d.ts +0 -11
- package/lib/AGUI/components/chat/index.js +0 -11
- package/lib/AGUI/components/chat/messages/AssistantMessage.d.ts +0 -2
- package/lib/AGUI/components/chat/messages/AssistantMessage.js +0 -56
- package/lib/AGUI/components/chat/messages/RenderActionExecutionMessage.d.ts +0 -2
- package/lib/AGUI/components/chat/messages/RenderActionExecutionMessage.js +0 -114
- package/lib/AGUI/components/chat/messages/RenderAgentStateMessage.d.ts +0 -2
- package/lib/AGUI/components/chat/messages/RenderAgentStateMessage.js +0 -97
- package/lib/AGUI/components/chat/messages/RenderImageMessage.d.ts +0 -2
- package/lib/AGUI/components/chat/messages/RenderImageMessage.js +0 -61
- package/lib/AGUI/components/chat/messages/RenderResultMessage.d.ts +0 -2
- package/lib/AGUI/components/chat/messages/RenderResultMessage.js +0 -27
- package/lib/AGUI/components/chat/messages/RenderTextMessage.d.ts +0 -2
- package/lib/AGUI/components/chat/messages/RenderTextMessage.js +0 -47
- package/lib/AGUI/components/chat/messages/UserMessage.d.ts +0 -2
- package/lib/AGUI/components/chat/messages/UserMessage.js +0 -9
- package/lib/AGUI/components/chat/props.d.ts +0 -157
- package/lib/AGUI/components/index.d.ts +0 -1
- package/lib/AGUI/components/index.js +0 -1
- package/lib/AGUI/context/index.d.ts +0 -1
- package/lib/AGUI/context/index.js +0 -1
- package/lib/AGUI/hooks/index.d.ts +0 -1
- package/lib/AGUI/hooks/index.js +0 -1
- package/lib/AGUI/hooks/use-copilot-chat-suggestions.d.ts +0 -87
- package/lib/AGUI/hooks/use-copilot-chat-suggestions.js +0 -95
- package/lib/AGUI/hooks/use-copy-to-clipboard.d.ts +0 -7
- package/lib/AGUI/hooks/use-copy-to-clipboard.js +0 -34
- package/lib/AGUI/hooks/use-dark-mode.d.ts +0 -1
- package/lib/AGUI/hooks/use-dark-mode.js +0 -4
- package/lib/AGUI/hooks/use-push-to-talk.d.ts +0 -16
- package/lib/AGUI/hooks/use-push-to-talk.js +0 -260
- package/lib/AGUI/index.d.ts +0 -4
- package/lib/AGUI/index.js +0 -4
- package/lib/AGUI/lib/utils.d.ts +0 -2
- package/lib/AGUI/lib/utils.js +0 -52
- package/lib/AGUI/styles.css +0 -0
- package/lib/AGUI/types/css.d.ts +0 -0
- package/lib/AGUI/types/css.js +0 -0
- package/lib/AGUI/types/index.d.ts +0 -1
- package/lib/AGUI/types/index.js +0 -1
- package/lib/AGUI/types/suggestions.d.ts +0 -6
- package/lib/AGUI/types/suggestions.js +0 -1
- package/lib/Markdown/Markdown/AnimationNode.d.ts +0 -20
- package/lib/Markdown/Markdown/AnimationNode.js +0 -84
- package/lib/Markdown/Markdown/Markdown.d.ts +0 -4
- package/lib/Markdown/Markdown/Markdown.js +0 -58
- package/lib/Markdown/Markdown/core/Parser.d.ts +0 -16
- package/lib/Markdown/Markdown/core/Parser.js +0 -65
- package/lib/Markdown/Markdown/core/Renderer.d.ts +0 -24
- package/lib/Markdown/Markdown/core/Renderer.js +0 -137
- package/lib/Markdown/Markdown/core/index.d.ts +0 -3
- package/lib/Markdown/Markdown/core/index.js +0 -3
- package/lib/Markdown/Markdown/hooks/index.d.ts +0 -3
- package/lib/Markdown/Markdown/hooks/index.js +0 -3
- package/lib/Markdown/Markdown/hooks/useAnimation.d.ts +0 -4
- package/lib/Markdown/Markdown/hooks/useCitationsData.d.ts +0 -7
- package/lib/Markdown/Markdown/hooks/useStreaming.d.ts +0 -3
- package/lib/Markdown/Markdown/hooks/useStreaming.js +0 -521
- package/lib/Markdown/Markdown/hooks/useTyping.d.ts +0 -4
- package/lib/Markdown/Markdown/index.d.ts +0 -84
- package/lib/Markdown/Markdown/index.js +0 -161
- package/lib/Markdown/Markdown/interface.d.ts +0 -203
- package/lib/Markdown/Markdown/interface.js +0 -1
- package/lib/Markdown/Markdown/style.js +0 -32
- package/lib/Markdown/plugins/latex/index.d.ts +0 -9
- package/lib/Markdown/plugins/latex/index.js +0 -97
- package/lib/Markdown/plugins/type.d.ts +0 -60
- package/lib/Markdown/plugins/type.js +0 -1
- /package/components/Markdown/{Markdown/defaultComponents/DisabledImage.tsx → core/components/DisableImage.tsx} +0 -0
- /package/components/Markdown/{Markdown/defaultComponents → core/components}/Media.tsx +0 -0
- /package/components/Markdown/{plugins → core/plugins}/cursor/Dot.tsx +0 -0
- /package/lib/Markdown/{Markdown/defaultComponents → core/components}/CodeBlock.d.ts +0 -0
- /package/lib/Markdown/{Markdown/defaultComponents → core/components}/CodeBlock.js +0 -0
- /package/lib/Markdown/{Markdown/defaultComponents/DisabledImage.d.ts → core/components/DisableImage.d.ts} +0 -0
- /package/lib/Markdown/{Markdown/defaultComponents/DisabledImage.js → core/components/DisableImage.js} +0 -0
- /package/lib/Markdown/{Markdown/defaultComponents → core/components}/Media.d.ts +0 -0
- /package/lib/Markdown/{Markdown/defaultComponents → core/components}/Media.js +0 -0
- /package/lib/Markdown/{plugins → core/plugins}/citations/CitationComponent.d.ts +0 -0
- /package/lib/Markdown/{plugins → core/plugins}/cursor/Dot.d.ts +0 -0
- /package/lib/Markdown/{plugins → core/plugins}/cursor/Underline.d.ts +0 -0
- /package/lib/Markdown/{plugins → core/plugins}/cursor/index.d.ts +0 -0
- /package/lib/Markdown/{Markdown/style.d.ts → styles.d.ts} +0 -0
- /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
|
-
};
|