@tencent-ai/codebuddy-code 1.0.6 → 1.0.8

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/CHANGELOG.md CHANGED
@@ -4,6 +4,35 @@ CodeBuddy Code 的所有重要更新都会记录在这里。
4
4
 
5
5
  我们遵循 [语义化版本](https://semver.org/spec/v2.0.0.html) 规范。
6
6
 
7
+ ## [1.0.8] - 2025-09-10
8
+
9
+ ### ✨ 新功能
10
+ - **🚀 GPT5 支持**:新增对 GPT5 模型的完整支持,提供更强大的推理能力
11
+ - **🔌 MCP 协议增强**:优化 Model Context Protocol 集成,支持 HTTP 和 SSE 传输协议,新增 OAuth2 认证支持,提供更灵活的外部工具集成
12
+ - **⚡ 自定义斜杠命令**:新增自定义斜杠命令功能,用户可根据需要扩展 CLI 功能
13
+ - **📝 日志持久化**:增加日志持久化功能,便于问题排查和调试
14
+
15
+ ### 🔧 功能改进
16
+ - **Windows 兼容性**:优化 Windows 平台下的快捷键体验
17
+ - **认证体验**:改进服务器认证逻辑,提升登录稳定性
18
+ - **文件搜索**:优化文件搜索功能,修复重复搜索问题
19
+
20
+ ### 🐛 问题修复
21
+ - **MCP 连接**:修复 MCP 服务器连接状态检测问题
22
+ - **登录流程**:修复登录页面重复跳转问题,改善用户体验
23
+
24
+ ## [1.0.7] - 2025-09-08
25
+
26
+ ### ✨ 新功能
27
+ - **模型上下文初始化**:新增模型上下文初始化功能,提升AI对话体验
28
+
29
+ ### 🔧 技术改进
30
+ - **代码优化**:优化了部分代码逻辑,提升系统性能
31
+
32
+ ### 🐛 问题修复
33
+ - **登录状态修复**:修复在登陆状态执行完logout后esc会跳转至登陆页问题
34
+ - **消息清除修复**:修复切换login时没有清除消息问题
35
+
7
36
  ## [1.0.6] - 2025-09-08
8
37
 
9
38
  ### ✨ 新功能
@@ -1 +1 @@
1
- "use strict";exports.id=422,exports.ids=[422],exports.modules={7422:(e,t,n)=>{n.a(e,(async(e,r)=>{try{n.r(t),n.d(t,{LoginView:()=>LoginView});var l=n(80699),a=n(80932),o=n(14083),c=n(96540),i=n(66814),s=n(79413),u=n(30481),E=n(82101),m=n(34209),g=n(53829),d=n(49034),b=n(47693),h=n(83175),y=n(42790),p=e([o,E,g,d,y]);[o,E,g,d,y]=p.then?(await p)():p;const LoginView=()=>{const e=(0,i.i7)(g.Gb,(e=>e.staticKey));return c.createElement(c.Fragment,null,c.createElement(o.jC,{key:`login-view-${e}`,items:[c.createElement(LogoBox,{key:"logo-box"})]},(e=>e)),c.createElement(LoginBox,null))},LogoBox=()=>{const e=`Welcome to ${m.KR}`,t=e.length+8;return c.createElement(c.Fragment,null,c.createElement(o.az,{marginBottom:1,paddingLeft:1,borderStyle:"round",borderColor:h.Q.brand,width:t},c.createElement(o.EY,{color:h.Q.brand},"✻ ",e)),c.createElement(y.H,null))},f={iOA:"iOA",WeChat:"internal","Google / Github":"external"},LoginBox=()=>{const{authSession:e,navigate:t}=(0,i.i7)(g.aO,(e=>({authSession:e.authSession,navigate:e.navigate}))),[n,r]=(0,c.useState)("idle"),[m,y]=(0,c.useState)(""),[p,C]=(0,c.useState)(""),[G,w]=(0,c.useState)("iOA"),[A,S]=(0,c.useState)(!1),Y=(0,c.useRef)(new AbortController);(0,c.useEffect)((()=>{const e=(0,b.bi)().urlSubject.subscribe(y);return()=>e.unsubscribe()}),[]),(0,c.useEffect)((()=>{m&&u.E.copyToClipboard(m)}),[m]),(0,c.useEffect)((()=>{(async()=>{try{const e=l.ContainerUtil.get(s.Oc),t=await e.isIntranet();S(t),t||"iOA"!==G||w("Google / Github")}catch(e){S(!1),"iOA"===G&&w("Google / Github")}})()}),[G]),(0,o.Ge)(((l,a)=>{if("idle"===n){if(d.Om.RETURN(a))try{r("loading"),C(""),(0,b.Yf)().login({type:f[G],abortController:Y.current})}catch(e){r("error"),C(e instanceof Error?e.message:"Unknown error occurred")}else if(a.upArrow||a.downArrow){const e=A?["iOA","Google / Github","WeChat"]:["Google / Github","WeChat"],t=e.indexOf(G);let n;n=a.upArrow?t<=0?e.length-1:t-1:t>=e.length-1?0:t+1,w(e[n])}}else d.Om.ESCAPE(a)&&("loading"===n?(Y.current.abort(),r("idle")):e&&t("/chat"))}));const O=A?["iOA","Google / Github","WeChat"]:["Google / Github","WeChat"];return c.createElement(o.az,{paddingX:1,flexDirection:"column",gap:1,borderStyle:"round",borderColor:"grey"},"idle"===n?c.createElement(c.Fragment,null,c.createElement(o.az,null,c.createElement(o.EY,null,"Select login method:")),O.map((e=>c.createElement(o.az,{key:e},c.createElement(o.EY,{color:G===e?"green":"grey"},G===e?a.Ay.bullet:" "," Login with ",e)))),c.createElement(o.az,{justifyContent:"space-between"},c.createElement(o.EY,{color:"grey"},"(Use ↑↓ to select, Enter to login)"))):"loading"===n?c.createElement(o.az,{paddingY:1,gap:1,flexDirection:"column"},c.createElement(o.az,null,c.createElement(o.EY,{color:"grey"},"Browser didn't open? Use the url below to sign in: (Copied link to clipboard)")),m&&c.createElement(o.az,null,c.createElement(o.EY,{color:"grey"},m)),c.createElement(o.az,{marginTop:1,gap:1},c.createElement(o.EY,{color:h.Q.brand},c.createElement(E.y$,{type:"star"})),c.createElement(o.EY,null,"Waiting for auth... (Press ESC to cancel)"))):"error"===n?c.createElement(c.Fragment,null,c.createElement(o.EY,{color:"red"},"Failed to login."),p&&c.createElement(o.EY,{color:"red"},"Message: ",p)):void 0)};r()}catch(e){r(e)}}))},42790:(e,t,n)=>{n.a(e,(async(e,r)=>{try{n.d(t,{H:()=>LogoText});var l=n(1597),a=n(14083),o=n(96540),c=n(66814),i=n(53829),s=n(83175),u=e([a,i]);[a,i]=u.then?(await u)():u;const LogoText=()=>{const e=(0,c.i7)(i.Gb,(e=>e.terminalWidth)),t=(0,o.useRef)((0,l.Ay)(s.Q.GradientColors)),n=(0,o.useCallback)((e=>t.current.multiline(e)),[t]),r=(0,o.useCallback)((()=>e>115?"\n ██████╗ ██████╗ ██████╗ ███████╗██████╗ ██╗ ██╗██████╗ ██████╗ ██╗ ██╗ ██████╗ ██████╗ ██████╗ ███████╗\n██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗██║ ██║██╔══██╗██╔══██╗╚██╗ ██╔╝ ██╔════╝██╔═══██╗██╔══██╗██╔════╝\n██║ ██║ ██║██║ ██║█████╗ ██████╔╝██║ ██║██║ ██║██║ ██║ ╚████╔╝ ██║ ██║ ██║██║ ██║█████╗ \n██║ ██║ ██║██║ ██║██╔══╝ ██╔══██╗██║ ██║██║ ██║██║ ██║ ╚██╔╝ ██║ ██║ ██║██║ ██║██╔══╝ \n╚██████╗╚██████╔╝██████╔╝███████╗██████╔╝╚██████╔╝██████╔╝██████╔╝ ██║ ╚██████╗╚██████╔╝██████╔╝███████╗\n ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝\n \n\n . * . * . *\n /\\_/\\ \n ( o.o ) * . * \n > ^ < . \n":" \n ██████╗ ██████╗ ██████╗ ███████╗██████╗ ██╗ ██╗██████╗ ██████╗ ██╗ ██╗\n██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗██║ ██║██╔══██╗██╔══██╗╚██╗ ██╔╝\n██║ ██║ ██║██║ ██║█████╗ ██████╔╝██║ ██║██║ ██║██║ ██║ ╚████╔╝ \n██║ ██║ ██║██║ ██║██╔══╝ ██╔══██╗██║ ██║██║ ██║██║ ██║ ╚██╔╝ \n╚██████╗╚██████╔╝██████╔╝███████╗██████╔╝╚██████╔╝██████╔╝██████╔╝ ██║ \n ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ \n \n ██████╗ ██████╗ ██████╗ ███████╗ \n██╔════╝██╔═══██╗██╔══██╗██╔════╝ \n██║ ██║ ██║██║ ██║█████╗ \n██║ ██║ ██║██║ ██║██╔══╝ \n╚██████╗╚██████╔╝██████╔╝███████╗ \n ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝ \n "),[e]);return o.createElement(a.dL,{transform:n},o.createElement(a.EY,null,r()))};r()}catch(e){r(e)}}))}};
1
+ "use strict";exports.id=422,exports.ids=[422],exports.modules={7422:(e,t,n)=>{n.a(e,(async(e,r)=>{try{n.r(t),n.d(t,{LoginView:()=>LoginView});var a=n(80699),l=n(80932),o=n(14083),c=n(96540),i=n(66814),s=n(79413),u=n(45814),E=n(82101),m=n(34209),g=n(53829),d=n(49034),b=n(47693),h=n(83175),y=n(42790),p=e([o,E,g,d,y]);[o,E,g,d,y]=p.then?(await p)():p;const LoginView=()=>{const e=(0,i.i7)(g.Gb,(e=>e.staticKey));return c.createElement(c.Fragment,null,c.createElement(o.jC,{key:`login-view-${e}`,items:[c.createElement(LogoBox,{key:"logo-box"})]},(e=>e)),c.createElement(LoginBox,null))},LogoBox=()=>{const e=`Welcome to ${m.KR}`,t=e.length+8;return c.createElement(c.Fragment,null,c.createElement(o.az,{paddingLeft:1,borderStyle:"round",borderColor:h.Q.brand,width:t},c.createElement(o.EY,{color:h.Q.brand},"✻ ",e)),c.createElement(y.H,null))},f={iOA:"iOA",WeChat:"internal","Google / Github":"external"},LoginBox=()=>{const{authSession:e,navigate:t}=(0,i.i7)(g.aO,(e=>({authSession:e.authSession,navigate:e.navigate}))),[n,r]=(0,c.useState)("idle"),[m,y]=(0,c.useState)(""),[p,w]=(0,c.useState)(!1),[C,G]=(0,c.useState)(""),[A,S]=(0,c.useState)("iOA"),[O,Y]=(0,c.useState)(!1),z=(0,c.useRef)(new AbortController),k=(0,c.useMemo)((()=>{const e=["Google / Github","WeChat"];return O&&e.unshift("iOA"),e}),[O]);return(0,c.useEffect)((()=>{const e=(0,b.bi)().urlSubject.subscribe(y);return()=>e.unsubscribe()}),[]),(0,c.useEffect)((()=>{(async()=>{if(m){const e=await u.E.copyToClipboard(m);w(e)}})()}),[m]),(0,c.useEffect)((()=>{(async()=>{try{const e=a.ContainerUtil.get(s.Oc),t=await e.isIntranet();Y(t),t||"iOA"!==A||S("Google / Github")}catch(e){Y(!1),"iOA"===A&&S("Google / Github")}})()}),[A]),(0,o.Ge)(((a,l)=>{if("idle"===n){if(d.Om.RETURN(l))try{r("loading"),G(""),(0,b.Yf)().login({type:f[A],abortController:z.current})}catch(e){r("error"),G(e instanceof Error?e.message:"Unknown error occurred")}else if(l.upArrow||l.downArrow){const e=O?["iOA","Google / Github","WeChat"]:["Google / Github","WeChat"],t=e.indexOf(A);let n;n=l.upArrow?t<=0?e.length-1:t-1:t>=e.length-1?0:t+1,S(e[n])}}else d.Om.ESCAPE(l)&&("loading"===n?(z.current.abort(),r("idle")):e&&t("/chat"))})),c.createElement(o.az,{marginTop:2,paddingX:1,flexDirection:"column",gap:1},"idle"===n?c.createElement(c.Fragment,null,c.createElement(o.az,null,c.createElement(o.EY,null,"Select login method:")),k.map((e=>c.createElement(o.az,{key:e},c.createElement(o.EY,{color:A===e?h.Q.brand:"grey"},A===e?l.Ay.pointer:" "," Login with ",e)))),c.createElement(o.az,{justifyContent:"space-between"},c.createElement(o.EY,{color:"grey"},"(Use ↑↓ to select, Enter to login)"))):"loading"===n?c.createElement(o.az,{paddingY:1,gap:1,flexDirection:"column"},c.createElement(o.az,null,c.createElement(o.EY,{color:"grey"},"Browser didn't open? Use the url below to sign in: "+(p?"(Copied link to clipboard)":""))),m&&c.createElement(o.az,null,c.createElement(o.EY,{color:"grey"},u.nO.createHyperlink(m))),c.createElement(o.az,{marginTop:1,gap:1},c.createElement(o.EY,{color:h.Q.brand},c.createElement(E.y$,{type:"star"})),c.createElement(o.EY,null,"Waiting for auth... (Press ESC to cancel)"))):"error"===n?c.createElement(c.Fragment,null,c.createElement(o.EY,{color:"red"},"Failed to login."),C&&c.createElement(o.EY,{color:"red"},"Message: ",C)):void 0)};r()}catch(e){r(e)}}))},42790:(e,t,n)=>{n.a(e,(async(e,r)=>{try{n.d(t,{H:()=>LogoText});var a=n(1597),l=n(14083),o=n(96540),c=n(66814),i=n(53829),s=n(83175),u=e([l,i]);[l,i]=u.then?(await u)():u;const LogoText=()=>{const e=(0,c.i7)(i.Gb,(e=>e.terminalWidth)),t=(0,o.useRef)((0,a.Ay)(s.Q.GradientColors)),n=(0,o.useCallback)((e=>t.current.multiline(e)),[t]),r=(0,o.useCallback)((()=>e>115?"\n ██████╗ ██████╗ ██████╗ ███████╗██████╗ ██╗ ██╗██████╗ ██████╗ ██╗ ██╗ ██████╗ ██████╗ ██████╗ ███████╗\n██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗██║ ██║██╔══██╗██╔══██╗╚██╗ ██╔╝ ██╔════╝██╔═══██╗██╔══██╗██╔════╝\n██║ ██║ ██║██║ ██║█████╗ ██████╔╝██║ ██║██║ ██║██║ ██║ ╚████╔╝ ██║ ██║ ██║██║ ██║█████╗ \n██║ ██║ ██║██║ ██║██╔══╝ ██╔══██╗██║ ██║██║ ██║██║ ██║ ╚██╔╝ ██║ ██║ ██║██║ ██║██╔══╝ \n╚██████╗╚██████╔╝██████╔╝███████╗██████╔╝╚██████╔╝██████╔╝██████╔╝ ██║ ╚██████╗╚██████╔╝██████╔╝███████╗\n ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝\n ":" \n ██████╗ ██████╗ ██████╗ ███████╗██████╗ ██╗ ██╗██████╗ ██████╗ ██╗ ██╗\n██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗██║ ██║██╔══██╗██╔══██╗╚██╗ ██╔╝\n██║ ██║ ██║██║ ██║█████╗ ██████╔╝██║ ██║██║ ██║██║ ██║ ╚████╔╝ \n██║ ██║ ██║██║ ██║██╔══╝ ██╔══██╗██║ ██║██║ ██║██║ ██║ ╚██╔╝ \n╚██████╗╚██████╔╝██████╔╝███████╗██████╔╝╚██████╔╝██████╔╝██████╔╝ ██║ \n ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ \n \n ██████╗ ██████╗ ██████╗ ███████╗ \n██╔════╝██╔═══██╗██╔══██╗██╔════╝ \n██║ ██║ ██║██║ ██║█████╗ \n██║ ██║ ██║██║ ██║██╔══╝ \n╚██████╗╚██████╔╝██████╔╝███████╗ \n ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝ \n "),[e]);return o.createElement(l.dL,{transform:n},o.createElement(l.EY,null,r()))};r()}catch(e){r(e)}}))}};
@@ -1 +1 @@
1
- "use strict";exports.id=632,exports.ids=[632],exports.modules={11632:(e,r,t)=>{t.a(e,(async(e,c)=>{try{t.r(r),t.d(r,{McpView:()=>McpView});var l=t(14083),a=t(96540),o=t(66814),n=t(53165),s=t(82101),i=t(53829),u=t(49034),m=e([l,s,i,u]);[l,s,i,u]=m.then?(await m)():m;const McpView=()=>a.createElement(MultipleServersConfirm,{servers:[{value:"echo-server4",label:"echo-server4",checked:!0},{value:"echo-server5",label:"echo-server5",checked:!1},{value:"Github-MCP-Server6",label:"Github-MCP-Server6",checked:!0}]}),MultipleServersConfirm=({servers:e})=>{const r=(0,o.i7)(i.aO,(e=>e.navigate)),[t,c]=(0,a.useState)(e),m=(0,a.useRef)(void 0),d=(0,a.useCallback)((e=>{m.current=e}),[]),{links:h}=(0,u.Ip)();(0,l.Ge)(((e,t)=>{if(u.Om.ESCAPE(t)&&r("/chat")," "===e&&m.current){const e=m.current;c((r=>r.map((r=>r.value===e.value?{...r,checked:!r.checked}:r))))}}));const v=t.length;return a.createElement(a.Fragment,null,a.createElement(l.az,{padding:1,gap:1,flexDirection:"column",borderColor:"yellowBright",borderStyle:"round"},a.createElement(l.EY,{color:"yellowBright"},v," new MCP servers found in ",n.DZ),a.createElement(l.EY,null,"Select any you wish to enable."),a.createElement(l.EY,null,"MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the MCP documentation ( ",h.mcpHelpDocument||""," )."),a.createElement(s.pp,{items:t,limit:5,itemComponent:ServerItemComponent,onHighlight:d})),a.createElement(l.az,{paddingX:2},a.createElement(l.EY,{color:"grey"},"Space to select · Enter to confirm · Esc to reject all")))},ServerItemComponent=({value:e,checked:r})=>a.createElement(l.EY,{color:r?"green":void 0},e," ",r?"✓":"");c()}catch(e){c(e)}}))}};
1
+ "use strict";exports.id=632,exports.ids=[632],exports.modules={11632:(e,r,t)=>{t.a(e,(async(e,c)=>{try{t.r(r),t.d(r,{McpView:()=>McpView});var l=t(14083),a=t(96540),o=t(66814),n=t(92236),s=t(82101),i=t(53829),u=t(49034),m=e([l,s,i,u]);[l,s,i,u]=m.then?(await m)():m;const McpView=()=>a.createElement(MultipleServersConfirm,{servers:[{value:"echo-server4",label:"echo-server4",checked:!0},{value:"echo-server5",label:"echo-server5",checked:!1},{value:"Github-MCP-Server6",label:"Github-MCP-Server6",checked:!0}]}),MultipleServersConfirm=({servers:e})=>{const r=(0,o.i7)(i.aO,(e=>e.navigate)),[t,c]=(0,a.useState)(e),m=(0,a.useRef)(void 0),d=(0,a.useCallback)((e=>{m.current=e}),[]),{links:h}=(0,u.Ip)();(0,l.Ge)(((e,t)=>{if(u.Om.ESCAPE(t)&&r("/chat")," "===e&&m.current){const e=m.current;c((r=>r.map((r=>r.value===e.value?{...r,checked:!r.checked}:r))))}}));const v=t.length;return a.createElement(a.Fragment,null,a.createElement(l.az,{padding:1,gap:1,flexDirection:"column",borderColor:"yellowBright",borderStyle:"round"},a.createElement(l.EY,{color:"yellowBright"},v," new MCP servers found in ",n.DZ),a.createElement(l.EY,null,"Select any you wish to enable."),a.createElement(l.EY,null,"MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the MCP documentation ( ",h.mcpHelpDocument||""," )."),a.createElement(s.pp,{items:t,limit:5,itemComponent:ServerItemComponent,onHighlight:d})),a.createElement(l.az,{paddingX:2},a.createElement(l.EY,{color:"grey"},"Space to select · Enter to confirm · Esc to reject all")))},ServerItemComponent=({value:e,checked:r})=>a.createElement(l.EY,{color:r?"green":void 0},e," ",r?"✓":"");c()}catch(e){c(e)}}))}};