filecat 5.20.0 → 5.20.1
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/README.md +2 -2
- package/build/dist/444.1c0b5a856646f5828fc4.js +2 -0
- package/build/dist/{523.55990257f208307ed45d.js → 523.ab499e12e423e518ed7a.js} +2 -2
- package/build/dist/{943.485b15764940dfd97193.js → 943.a69256243464a4a2c05e.js} +2 -2
- package/build/dist/index.html +1 -1
- package/build/dist/main.429e7e5798b654d0cf8d.js +2 -0
- package/build/main.js +1 -1
- package/package.json +1 -1
- package/build/dist/444.92d2f1dc1074003c8d81.js +0 -2
- package/build/dist/main.9d82d7364985c9907faa.js +0 -2
- /package/build/dist/{444.92d2f1dc1074003c8d81.js.LICENSE.txt → 444.1c0b5a856646f5828fc4.js.LICENSE.txt} +0 -0
- /package/build/dist/{523.55990257f208307ed45d.js.LICENSE.txt → 523.ab499e12e423e518ed7a.js.LICENSE.txt} +0 -0
- /package/build/dist/{943.485b15764940dfd97193.js.LICENSE.txt → 943.a69256243464a4a2c05e.js.LICENSE.txt} +0 -0
- /package/build/dist/{main.9d82d7364985c9907faa.js.LICENSE.txt → main.429e7e5798b654d0cf8d.js.LICENSE.txt} +0 -0
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ account/password: admin/admin
|
|
|
51
51
|
|:------------------------:|:------------------------:|:------------------------------------------------------------------------------------:|
|
|
52
52
|
|  |  |  |
|
|
53
53
|
| AI问答 | | |
|
|
54
|
-
|  | | |
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
- **文件管理**: 支持断点分块上传、多个根目录、代码\图片编辑、编辑器模式、白板绘图...
|
|
@@ -60,7 +60,7 @@ account/password: admin/admin
|
|
|
60
60
|
- **ssh代理**: 可以管理多个linux服务器,作用和winscp类似,让终端和文件管理更方便。除此之外还支持http代理,rdp远程桌面(windows)等代理
|
|
61
61
|
- **网站导航**: 记录管理自己的多个链接地址
|
|
62
62
|
- **系统、docker、进程 等信息的监控**: 对于系统进程查询,采用了高效的实现方式,监控全部进程的状态只需要非常小的cpu占用率
|
|
63
|
-
- **AI 问答**,通过与ai进行交互来执行命令获取服务器资源,同时支持权限过滤,避免AI
|
|
63
|
+
- **AI 问答**,通过与ai进行交互来执行命令获取服务器资源,同时支持权限过滤,避免AI执行危险命令行为,需要自己注册配置任何符合openai风格的模型api
|
|
64
64
|
|
|
65
65
|
More: https://filecat.xiaobaidadada.fun
|
|
66
66
|
## qq群
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! For license information please see 444.1c0b5a856646f5828fc4.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunkfilecat=self.webpackChunkfilecat||[]).push([[10,444],{840(e){e.exports="data:image/svg+xml,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 version=%271.1%27 aria-hidden=%27true%27><path fill-rule=%27evenodd%27 d=%27M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z%27></path></svg>"},861(e,t,n){n.r(t),n.d(t,{default:()=>ee,getMessagesFromLocal:()=>z,learAllMessages:()=>Z,pushMessageToLocal:()=>Y,setMessagesToLocal:()=>Q});var r=n(6540),o=n(3298),a=n(4299),i=n(9844),u=n(7444),c=n(6417),l=n(2389),s=n(5997),f=n(7952),m=n(5725),d=n(7481),p=n(1443),v=n(447);function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,u=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(u.push(r.value),u.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return u}}(e,t)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var b=n(3459),g=n(2042),w=n(7523),E=n(8247),_=n(3430),S=n(4777);function A(e){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A(e)}function j(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?j(Object(n),!0).forEach(function(t){x(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function x(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=A(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=A(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==A(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function k(e){return function(e){if(Array.isArray(e))return L(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||M(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function a(n,r,o,a){var c=r&&r.prototype instanceof u?r:u,l=Object.create(c.prototype);return I(l,"_invoke",function(n,r,o){var a,u,c,l=0,s=o||[],f=!1,m={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,n){return a=t,u=0,c=e,m.n=n,i}};function d(n,r){for(u=n,c=r,t=0;!f&&l&&!o&&t<s.length;t++){var o,a=s[t],d=m.p,p=a[2];n>3?(o=p===r)&&(c=a[(u=a[4])?5:(u=3,3)],a[4]=a[5]=e):a[0]<=d&&((o=n<2&&d<a[1])?(u=0,m.v=r,m.n=a[1]):d<p&&(o=n<3||a[0]>r||r>p)&&(a[4]=n,a[5]=r,m.n=p,u=0))}if(o||n>1)return i;throw f=!0,r}return function(o,s,p){if(l>1)throw TypeError("Generator is already running");for(f&&1===s&&d(s,p),u=s,c=p;(t=u<2?e:c)||!f;){a||(u?u<3?(u>1&&(m.n=-1),d(u,c)):m.n=c:m.v=c);try{if(l=2,a){if(u||(o="next"),t=a[o]){if(!(t=t.call(a,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=a.return)&&t.call(a),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);a=e}else if((t=(f=m.n<0)?c:n.call(r,m))!==i)break}catch(t){a=e,u=1,c=t}finally{l=1}}return{value:t,done:f}}}(n,o,a),!0),l}var i={};function u(){}function c(){}function l(){}t=Object.getPrototypeOf;var s=[][r]?t(t([][r]())):(I(t={},r,function(){return this}),t),f=l.prototype=u.prototype=Object.create(s);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,I(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,I(f,"constructor",l),I(l,"constructor",c),c.displayName="GeneratorFunction",I(l,o,"GeneratorFunction"),I(f),I(f,o,"Generator"),I(f,r,function(){return this}),I(f,"toString",function(){return"[object Generator]"}),(C=function(){return{w:a,m}})()}function I(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}I=function(e,t,n,r){function a(t,n){I(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(a("next",0),a("throw",1),a("return",2))},I(e,t,n,r)}function P(e,t,n,r,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void n(e)}u.done?t(c):Promise.resolve(c).then(r,o)}function T(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){P(a,r,o,i,u,"next",e)}function u(e){P(a,r,o,i,u,"throw",e)}i(void 0)})}}function N(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,u=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(u.push(r.value),u.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return u}}(e,t)||M(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function M(e,t){if(e){if("string"==typeof e)return L(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function F(){var e=(0,l.Bd)().t,t=(0,r.useContext)(w.F),n=(t.initUserInfo,t.reloadUserInfo,N((0,u.L4)(c.A.ai_agent_chat_setting),2)),i=(n[0],n[1]),h=[e("编号"),e("url"),e("是否开启"),e("token"),"model",e("prompt|model|setting"),e("备注")],A=N((0,r.useState)([]),2),j=A[0],x=A[1],I=function(){var e=y((0,u.L4)(c.A.prompt_card),2),t=(e[0],e[1]);return function(e){t({open:!0,title:"信息",context_div:r.createElement("div",null,r.createElement(a.default,{context:e}))})}}(),P=(0,E.MH)().check_user_auth,M=N((0,u.L4)(c.A.editorSetting),2),L=(M[0],M[1]),F=function(){var e=T(C().m(function e(){var t;return C().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.XO.get("ai_agent_setting");case 1:(t=e.v).code===b.m.Sucess&&x(t.data.models);case 2:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();(0,r.useEffect)(function(){F()},[]);var G=function(){var e=T(C().m(function e(t){var n;return C().w(function(e){for(;;)switch(e.n){case 0:for(n=0;n<j.length;n++)j[n].index=n;return e.n=1,o.XO.post("ai_agent_setting/save",{models:null!=t?t:j});case 1:e.v.code===b.m.Sucess&&(0,g.LW)("保存成功");case 2:return e.a(2)}},e)}));return function(t){return e.apply(this,arguments)}}();return r.createElement("div",null,r.createElement(f.A,null,P(_.oV.ai_agent_setting)&&r.createElement(s.rA,{icon:"close",title:e("关闭"),onClick:function(){i(!1)}})),r.createElement(m.jW,{isFull:!0,more:!0},r.createElement(m.NN,null,r.createElement(m.VP,{widthPer:70},r.createElement(v.uF,{self_title:r.createElement("span",{className:" div-row "},r.createElement("h2",null,e("Model设置"))," ",r.createElement(s.rA,{icon:"info",onClick:function(){I('\n1. 只能使用符合openai风格的ai接口\n2. 对话的历史越长,消耗的大模型token费用越贵,目前不具备长期记忆简化能力,可以在系统prompt中设置一下让AI回答的简洁一点,节省tokens\n3. model请求参数json编写,里面只能编写json,来用于编写openai风格ai支持的属性,比如 temperature thinking(豆包的深度思考开关)等\n4. 可以再model请求参数中开启 "stream":true 提高响应速度\n5. 深度思考现在会影响输出速度,建议设置`{\n "thinking" : { \n "type":"disabled"\n }\n}`关闭(豆包例子)\n\n')},title:"信息"})),titleCom:r.createElement("div",null,r.createElement(s.rA,{icon:"add",title:e("添加"),onClick:function(){x([].concat(k(j),[{note:"",open:!1,path:""}]))}}),r.createElement(s.rA,{icon:"save",title:e("保存"),onClick:function(){G()}}))},r.createElement(d.X,{headers:h,rows:j.map(function(t,n){var o=[r.createElement("div",null,n),r.createElement(p.Sm,{value:t.url,handleInputChange:function(e){t.url=e},no_border:!0}),r.createElement(p.l6,{value:t.open,onChange:function(e){!function(e,t,n){for(var r=[],o=0;o<j.length;o++)j[o].open=o===n&&"true"===t,r.push(j[o]);x(r)}(0,e,n)},options:[{title:e("是"),value:!0},{title:e("否"),value:!1}],no_border:!0}),r.createElement(p.Sm,{value:t.token,handleInputChange:function(e){t.token=e},no_border:!0}),r.createElement(p.Sm,{value:t.model,handleInputChange:function(e){t.model=e},no_border:!0}),r.createElement("div",null,r.createElement(s.rA,{icon:"short_text",title:"prompt",onClick:function(){var e,t;E.xK.set_value_temp(null!==(e=j[n].sys_prompt)&&void 0!==e?e:""),L({model:"ace/mode/text",open:!0,fileName:"",save:(t=T(C().m(function e(t){return C().w(function(e){for(;;)switch(e.n){case 0:j[n].sys_prompt=t,x(j),E.xK.set_value_temp(""),G(j);case 1:return e.a(2)}},e)})),function(e){return t.apply(this,arguments)})})}}),r.createElement(s.rA,{icon:"edit_attributes",title:"model请求参数json编写",onClick:function(){var e,t;E.xK.set_value_temp(null!==(e=j[n].json_params)&&void 0!==e?e:S.cL),L({model:"ace/mode/json",open:!0,fileName:"",save:(t=T(C().m(function e(t){return C().w(function(e){for(;;)switch(e.n){case 0:j[n].json_params=t,x(j),E.xK.set_value_temp(""),G(j);case 1:return e.a(2)}},e)})),function(e){return t.apply(this,arguments)}),can_format:!0})}}),r.createElement(s.rA,{icon:"settings",title:"额外参数设置",onClick:function(){var e,t;E.xK.set_value_temp(null!==(e=j[n].dotenv)&&void 0!==e?e:S.CP),L({model:"ace/mode/ini",open:!0,fileName:"",save:(t=T(C().m(function e(t){return C().w(function(e){for(;;)switch(e.n){case 0:j[n].dotenv=t,x(j),E.xK.set_value_temp(""),G(j);case 1:return e.a(2)}},e)})),function(e){return t.apply(this,arguments)})})}})),r.createElement(p.Sm,{value:t.note,handleInputChange:function(e){t.note=e},no_border:!0}),r.createElement("div",null,r.createElement(s.rA,{icon:"delete",title:e("删除"),onClick:function(){return function(e){j.splice(e,1),x(k(j))}(n)}}),r.createElement(s.rA,{icon:"copy_all",title:e("复制"),onClick:function(){return function(e){x([].concat(k(j),[O(O({},j[e]),{},{open:!1})]))}(n)}}))];return o}),width:"10rem"}))))))}var G=n(505);function D(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,u=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(u.push(r.value),u.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return u}}(e,t)||function(e,t){if(e){if("string"==typeof e)return H(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?H(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function K(e){return function(e){if(Array.isArray(e))return J(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||$(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function U(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",o=n.toStringTag||"@@toStringTag";function a(n,r,o,a){var c=r&&r.prototype instanceof u?r:u,l=Object.create(c.prototype);return B(l,"_invoke",function(n,r,o){var a,u,c,l=0,s=o||[],f=!1,m={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,n){return a=t,u=0,c=e,m.n=n,i}};function d(n,r){for(u=n,c=r,t=0;!f&&l&&!o&&t<s.length;t++){var o,a=s[t],d=m.p,p=a[2];n>3?(o=p===r)&&(c=a[(u=a[4])?5:(u=3,3)],a[4]=a[5]=e):a[0]<=d&&((o=n<2&&d<a[1])?(u=0,m.v=r,m.n=a[1]):d<p&&(o=n<3||a[0]>r||r>p)&&(a[4]=n,a[5]=r,m.n=p,u=0))}if(o||n>1)return i;throw f=!0,r}return function(o,s,p){if(l>1)throw TypeError("Generator is already running");for(f&&1===s&&d(s,p),u=s,c=p;(t=u<2?e:c)||!f;){a||(u?u<3?(u>1&&(m.n=-1),d(u,c)):m.n=c:m.v=c);try{if(l=2,a){if(u||(o="next"),t=a[o]){if(!(t=t.call(a,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,u<2&&(u=0)}else 1===u&&(t=a.return)&&t.call(a),u<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),u=1);a=e}else if((t=(f=m.n<0)?c:n.call(r,m))!==i)break}catch(t){a=e,u=1,c=t}finally{l=1}}return{value:t,done:f}}}(n,o,a),!0),l}var i={};function u(){}function c(){}function l(){}t=Object.getPrototypeOf;var s=[][r]?t(t([][r]())):(B(t={},r,function(){return this}),t),f=l.prototype=u.prototype=Object.create(s);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,B(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return c.prototype=l,B(f,"constructor",l),B(l,"constructor",c),c.displayName="GeneratorFunction",B(l,o,"GeneratorFunction"),B(f),B(f,o,"Generator"),B(f,r,function(){return this}),B(f,"toString",function(){return"[object Generator]"}),(U=function(){return{w:a,m}})()}function B(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}B=function(e,t,n,r){function a(t,n){B(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(a("next",0),a("throw",1),a("return",2))},B(e,t,n,r)}function R(e,t,n,r,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void n(e)}u.done?t(c):Promise.resolve(c).then(r,o)}function V(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){R(a,r,o,i,u,"next",e)}function u(e){R(a,r,o,i,u,"throw",e)}i(void 0)})}}function X(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,u=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(u.push(r.value),u.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return u}}(e,t)||$(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $(e,t){if(e){if("string"==typeof e)return J(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?J(e,t):void 0}}function J(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var q="chat_messages";function W(e){var t=e.onDelete,n=e.onCopy,o=(0,l.Bd)().t;return r.createElement("div",{className:"message-actions"},r.createElement("button",{onClick:t},o("删除")),r.createElement("button",{onClick:n},o("复制")))}function z(){try{var e=localStorage.getItem(q);if(!e)return[];var t=JSON.parse(e);return Array.isArray(t)?t:[]}catch(e){return console.error("读取 messages 失败",e),[]}}function Q(e){try{var t=e.slice(-200);localStorage.setItem(q,JSON.stringify(t))}catch(e){console.error("保存 messages 到 localStorage 失败",e)}}function Y(e,t){var n=z();if(!((null==n?void 0:n.length)>0&&n[n.length-1].id===e.id)){n.push(e);var r=n;n.length>t&&(r=n.slice(-t)),Q(r)}}function Z(){Q([])}function ee(){var e=X((0,r.useState)([]),2),t=e[0],n=e[1],l=(0,r.useRef)((0,i.sg)(function(e){var t=e;e.length>P.current.messages_show_max&&(t=e.slice(-P.current.messages_show_max)),n(t),I.current&&T(!1)},50)).current,m=X((0,r.useState)(!1),2),d=m[0],p=m[1],v=(0,E.MH)().check_user_auth,y=X((0,r.useState)(""),2),h=y[0],w=y[1],A=(0,r.useRef)(null),j=X((0,u.L4)(c.A.ai_agent_chat_setting),2),O=j[0],x=j[1],k=(0,r.useRef)(null),C=function(){var e=D((0,u.L4)(c.A.confirm),2),t=(e[0],e[1]);return function(e){var n=e.sub_title,r=e.confirm_fun,o=e.title;t({open:!0,sub_title:n,handle:function(){r(),t({open:!1,handle:null})},title:o})}}(),I=(0,r.useRef)(!0),P=(0,r.useRef)(new S.qq),T=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=k.current;t&&t.scrollTo({top:t.scrollHeight,behavior:e?"smooth":"auto"})},N=function(){var e=V(U().m(function e(){var t;return U().w(function(e){for(;;)switch(e.n){case 0:return n(z()),e.n=1,o.XO.get("ai_agent_setting/env");case 1:(t=e.v).code===b.m.Sucess&&(P.current=t.data);case 2:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}();(0,r.useEffect)(function(){N(),requestAnimationFrame(function(){T(!1)})},[]),(0,r.useEffect)(function(){var e=k.current;if(e){var t=function(){I.current=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:120,n=e.scrollTop;return e.scrollHeight-(n+e.clientHeight)<t}(e)};return e.addEventListener("scroll",t),function(){return e.removeEventListener("scroll",t)}}},[]),(0,r.useLayoutEffect)(function(){I.current&&T(!1)},[t]);var M=function(){var e=h.trim();if(e){var r={id:Date.now(),sender:"user",text:e},a=[].concat(K(t),[r]);Y(r,P.current.messages_show_max),n(a),w(""),p(!0);var u,c,s=(u=a,c=P.current.messages_current_max,(u.length<c?u:u.slice(-c)).map(function(e){return{content:e.text,role:"bot"===e.sender?"system":"user"}})),f={id:r.id+1,sender:"bot",text:"AI思考中..."};a.push(f),n(a);var m=!0;o.jV.sse_post("chat",{messages:s},{onMessage:function(e){m&&(f.text="",m=!1);try{var t,n=JSON.parse(e),r=null==n||null===(t=n.choices[0])||void 0===t?void 0:t.delta.content;r&&(f.text+=r)}catch(t){try{f.text+=JSON.parse(e)}catch(t){f.text+=e}}l(K(a))},onDone:(0,i.nF)(function(){p(!1),Y(f,P.current.messages_show_max),T(!0)},100)})}},L=function(){var e=V(U().m(function e(t){return U().w(function(e){for(;;)switch(e.n){case 0:(0,G.l)(t),(0,g.LW)("复制成功");case 1:return e.a(2)}},e)}));return function(t){return e.apply(this,arguments)}}();return r.createElement(r.Fragment,null,r.createElement(f.A,null,r.createElement(s.rA,{icon:"delete_sweep",title:"清空聊天历史",onClick:function(){C({sub_title:"确认删除全部聊天内容吗",confirm_fun:function(){Z(),N()}})}}),v(_.oV.ai_agent_setting)&&r.createElement(s.rA,{icon:"settings",title:"ai setting",onClick:function(){x(!0)}})),r.createElement("div",{className:"chat-page"},0===(null==t?void 0:t.length)&&r.createElement("div",{className:"chat-header"},"询问服务器的一切"),r.createElement("div",{className:"chat-messages",ref:k},t.map(function(e){return r.createElement("div",{key:e.id,className:"chat-message ".concat(e.sender)},r.createElement(a.default,{context:e.text}),r.createElement(W,{onDelete:function(){return r=e.id,o=t.filter(function(e){return e.id!==r}),n(o),void Q(o);var r,o},onCopy:function(){return L(e.text)}}))}),r.createElement("div",{ref:A})),r.createElement("div",{className:"chat-input-area"},r.createElement("textarea",{value:h,onChange:function(e){var t=e.target;t.style.height="auto",t.style.height=Math.min(t.scrollHeight,200)+"px",w(t.value)},onKeyDown:function(e){"Enter"!==e.key||e.shiftKey||(e.preventDefault(),M())},placeholder:"输入消息,Shift+Enter换行",className:"chat-input"}),!1===d&&r.createElement("button",{onClick:M},"发送"))),O&&r.createElement(F,null))}},4299(e,t,n){n.r(t),n.d(t,{default:()=>p});var r=n(6540),o=n(3557),a=n(3311),i=n(950),u=n(7979),c=n(8263),l=n(9428),s=n.n(l),f=(n(3775),n(1499)),m=n(9214),d=new o.A({html:!0,highlight:function(e,t){return'<pre class="custom-code-block"><code>'.concat(d.utils.escapeHtml(e),"</code></pre>")}});function p(e){return(0,m.VD)(),r.createElement("div",{dangerouslySetInnerHTML:{__html:d.render(e.context)}})}d.use(a.BB).use(i.A).use(u.A).use(c.A).use(s()).use(function(e){e.renderer.rules.fence;e.renderer.rules.fence=function(t,n,r,o,a){var i=t[n].content.trim();return'\n <div class="code-block-with-copy">\n <button class="copy-btn" data-code="'.concat(e.utils.escapeHtml(i),'">复制</button>\n <pre><code>').concat(e.utils.escapeHtml(i),"</code></pre>\n </div>")}}).use(function(e){var t=e.renderer.rules.link_open||function(e,t,n,r,o){return o.renderToken(e,t,n)};e.renderer.rules.link_open=function(e,n,r,o,a){var i=e[n],u=i.attrIndex("href");if(u>=0){var c=i.attrs[u][1];i.attrs[u][1]=(0,f.bi)(window.location.href,c)}return t(e,n,r,o,a)}})},7481(e,t,n){n.d(t,{S:()=>u,X:()=>i});var r=n(6540);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,u=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(u.push(r.value),u.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw o}}return u}}(e,t)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function i(e){var t,n=o(r.useState([]),2),a=n[0],i=n[1];return(0,r.useEffect)(function(){e.children?i(Array.isArray(e.children)?e.children:[e.children]):i(e.rows)},[e.rows,e.children]),r.createElement("table",null,r.createElement("thead",null,r.createElement("tr",null,null===(t=e.headers)||void 0===t?void 0:t.map(function(e,t){return r.createElement("th",{key:t},e)}))),r.createElement("tbody",null,a.map(function(t,n){return r.createElement("tr",{key:n,onContextMenu:function(){e.handleContextMenu&&e.handleContextMenu(t)}},t.map(function(t,n){var o;return r.createElement("td",{style:{width:null!==(o=e.width)&&void 0!==o?o:"auto"},key:n,className:n===a.length-1?"small":""},t)}))})))}function u(e){return r.createElement("div",{style:{display:e.isFlex?"flex":"block"}},e.columns.map(function(e,t){return r.createElement("div",{key:t},e)}))}}}]);
|