@tencent-ai/codebuddy-code 1.1.5 → 1.1.6
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 +20 -0
- package/dist/422.codebuddy.js +1 -1
- package/dist/566.codebuddy.js +1 -1
- package/dist/codebuddy.js +1 -1
- package/package.json +1 -1
- package/product.internal.json +4 -4
- package/product.ioa.json +4 -4
- package/product.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,26 @@ CodeBuddy Code 的所有重要更新都会记录在这里。
|
|
|
4
4
|
|
|
5
5
|
我们遵循 [语义化版本](https://semver.org/spec/v2.0.0.html) 规范。
|
|
6
6
|
|
|
7
|
+
## [1.1.6] - 2025-09-22
|
|
8
|
+
|
|
9
|
+
### ✨ 新功能
|
|
10
|
+
- **图像拖拽支持**:新增图像文件拖拽识别和处理功能,支持自动检测图像文件路径
|
|
11
|
+
- **文件路径引用**:支持通过 @filepath 语法引用文件,自动读取并处理图像和文本文件
|
|
12
|
+
- **增强输入解析**:新增输入解析系统,支持扩展的输入处理能力
|
|
13
|
+
- **子代理颜色标识**:新增子代理颜色支持,支持在配置中自定义颜色或自动生成一致的颜色标识
|
|
14
|
+
- **界面视觉增强**:子代理消息和工具调用现在会显示带颜色背景的代理名称标识,提升界面可读性
|
|
15
|
+
|
|
16
|
+
### 🔧 功能改进
|
|
17
|
+
- **输入体验增强**:改进文本输入组件,支持增强输入事件处理
|
|
18
|
+
- **图像处理优化**:支持临时和非临时图像文件的统一处理机制
|
|
19
|
+
- **文件类型检测**:增强文件类型识别能力,支持更多图像和文本格式
|
|
20
|
+
- **工具配置优化**:调整工具列表顺序,将Task工具提升至列表顶部,优化工具调用优先级
|
|
21
|
+
- **权限管理增强**:改进MCP服务器权限检查机制,支持绕过权限模式和更精细的权限控制
|
|
22
|
+
- **自定义请求头支持**:新增环境变量和配置支持,允许为 API 请求添加自定义 HTTP 头
|
|
23
|
+
- **UI渲染优化**:优化工具调用结果的高度计算和渲染逻辑,提升界面显示效果
|
|
24
|
+
- **启动流程重构**:改进应用启动状态管理,采用步骤化处理提升启动体验
|
|
25
|
+
- **界面显示增强**:统一使用图标替代emoji,改进提示信息显示样式
|
|
26
|
+
|
|
7
27
|
## [1.1.5] - 2025-09-21
|
|
8
28
|
|
|
9
29
|
### 🔧 功能改进
|
package/dist/422.codebuddy.js
CHANGED
|
@@ -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),o=n(80932),a=n(14083),c=n(96540),i=n(66814),s=n(79413),u=n(
|
|
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),o=n(80932),a=n(14083),c=n(96540),i=n(66814),s=n(79413),u=n(45036),E=n(82101),m=n(34209),d=n(53829),g=n(49034),h=n(47693),b=n(83175),y=n(42790),p=e([a,E,d,g,y]);[a,E,d,g,y]=p.then?(await p)():p;const LoginView=()=>{const e=(0,i.i7)(d.Gb,(e=>e.staticKey));return c.createElement(c.Fragment,null,c.createElement(a.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(a.az,{paddingLeft:1,borderStyle:"round",borderColor:b.Q.brand,width:t},c.createElement(a.EY,{color:b.Q.brand},"✻ ",e)),c.createElement(y.H,null))},f={iOA:"iOA",WeChat:"internal","Google / Github":"external"},LoginBox=()=>{const{authSession:e,replace:t,history:n}=(0,i.i7)(d.aO,(e=>({authSession:e.authSession,replace:e.replace,history:e.history}))),r=(0,i.i7)(d.Gb,(e=>e.refreshStatic)),[m,y]=(0,c.useState)("idle"),[p,C]=(0,c.useState)(""),[w,A]=(0,c.useState)(!1),[G,S]=(0,c.useState)(""),[O,Y]=(0,c.useState)("iOA"),[k,z]=(0,c.useState)(!1),x=(0,c.useRef)(new AbortController),W=(0,c.useMemo)((()=>{const e=["Google / Github","WeChat"];return k&&e.unshift("iOA"),Y((()=>e[0])),e}),[k]);(0,c.useEffect)((()=>{const e=(0,h.bi)().urlSubject.subscribe(C);return()=>e.unsubscribe()}),[]),(0,c.useEffect)((()=>{(async()=>{if(p){const e=await u.E.copyToClipboard(p);A(e)}})()}),[p]),(0,c.useEffect)((()=>{(async()=>{try{const e=l.ContainerUtil.get(s.Oc),t=await e.isIntranet();z(t),t||"iOA"!==O||Y("Google / Github")}catch(e){z(!1),"iOA"===O&&Y("Google / Github")}})()}),[O]);const R=(0,c.useCallback)((()=>{if(n.length){const e=n[n.length-1];t(e,{onAfterRender:()=>r()})}}),[n,r,t]);return(0,a.Ge)(((t,n)=>{if("idle"===m)if(g.Om.RETURN(n))try{y("loading"),S(""),(0,h.Yf)().login({type:f[O],abortController:x.current,errorHandler:e=>{y("error"),S((()=>e instanceof Error?e.message:"Unknown error occurred"))}})}catch(e){y("error"),S((()=>e instanceof Error?e.message:"Unknown error occurred"))}else if(n.upArrow||n.downArrow){const e=k?["iOA","Google / Github","WeChat"]:["Google / Github","WeChat"],t=e.indexOf(O);let r;r=n.upArrow?t<=0?e.length-1:t-1:t>=e.length-1?0:t+1,Y(e[r])}else g.Om.ESCAPE(n)&&R();else g.Om.ESCAPE(n)&&("loading"===m?(x.current.abort(),x.current=new AbortController):e?R():y("idle"))})),c.createElement(a.az,{marginTop:2,paddingX:1,flexDirection:"column",gap:1},"idle"===m?c.createElement(c.Fragment,null,c.createElement(a.az,null,c.createElement(a.EY,null,"Select login method:")),W.map((e=>c.createElement(a.az,{key:e},c.createElement(a.EY,{color:O===e?b.Q.brand:"grey"},O===e?o.Ay.pointer:" "," Login with ",e)))),c.createElement(a.az,{justifyContent:"space-between"},c.createElement(a.EY,{color:"grey"},"(Use ↑↓ to select, Enter to login)"))):"loading"===m?c.createElement(a.az,{paddingY:1,gap:1,flexDirection:"column"},c.createElement(a.az,null,c.createElement(a.EY,{color:"grey"},"Browser didn't open? Use the url below to sign in: "+(w?"(Copied link to clipboard)":""))),p&&c.createElement(a.az,null,c.createElement(a.EY,{color:"grey"},u.nO.createHyperlink(p))),c.createElement(a.az,{marginTop:1,gap:1},c.createElement(a.EY,{color:b.Q.brand},c.createElement(E.y$,{type:"star"})),c.createElement(a.EY,null,"Waiting for auth... (Press ESC to cancel)"))):"error"===m?c.createElement(c.Fragment,null,c.createElement(a.EY,{color:"red"},"Failed to login. Press esc to return to login"),G&&c.createElement(a.EY,{color:"red"},"Message: ",G)):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),o=n(14083),a=n(96540),c=n(66814),i=n(53829),s=n(83175),u=e([o,i]);[o,i]=u.then?(await u)():u;const LogoText=()=>{const e=(0,c.i7)(i.Gb,(e=>e.terminalWidth)),t=(0,a.useRef)((0,l.Ay)(s.Q.GradientColors)),n=(0,a.useCallback)((e=>t.current.multiline(e)),[t]),r=(0,a.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 a.createElement(o.dL,{transform:n},a.createElement(o.EY,null,r()))};r()}catch(e){r(e)}}))}};
|
package/dist/566.codebuddy.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=566,exports.ids=[566],exports.modules={19250:(e,t,a)=>{a.a(e,(async(e,n)=>{try{a.d(t,{NH:()=>i.NH,pF:()=>
|
|
1
|
+
"use strict";exports.id=566,exports.ids=[566],exports.modules={19250:(e,t,a)=>{a.a(e,(async(e,n)=>{try{a.d(t,{NH:()=>i.NH,pF:()=>c.pF});var s=a(77146),l=a(89536),r=a(70790),c=a(62875),i=a(82388),m=e([s,l,r,c,i]);[s,l,r,c,i]=m.then?(await m)():m,n()}catch(e){n(e)}}))},90566:(e,t,a)=>{a.a(e,(async(e,n)=>{try{a.r(t),a.d(t,{ChatView:()=>ChatView});var s=a(14083),l=a(96540),r=a(66814),c=a(67886),i=a(26730),m=a(53829),u=a(59505),o=a(19250),d=a(66530),g=a(92709),p=e([s,i,m,u,o,d,g]);[s,i,m,u,o,d,g]=p.then?(await p)():p;const f=2,h={[c.L3.BASH]:5},E=2,y=l.memo((({availableHeight:e})=>{const t=(0,r.i7)(m.Gb,(e=>e.staticKey)),{messageGroups:a,agentState:n}=(0,r.i7)(m.rZ,(e=>({messageGroups:e.messageGroups,agentState:e.agentState}))),c=(0,l.useMemo)((()=>Boolean(n&&"agent_end"!==n)),[n]),i=(0,g.A)(a),[u,o]=(0,l.useState)([]),[p,E]=(0,l.useState)([]),y=(0,l.useMemo)((()=>{const t=p.reduce(((e,t)=>{if("function_call"===t.type)return e+f;if("function_call_result"===t.type){return e+(t.name in h?h[t.name]:2)}return e}),0);return Math.min(t,e)}),[p]);(0,l.useEffect)((()=>{const e=[],t=[];for(const n of a){if(c&&"function_call_group"===n.type){if(!n.messages.find((e=>"function_call"===e.type&&(!!u.find((t=>t.id===e.id))||!(!e.status||!["completed","incomplete"].includes(e.status)))))){t.push(...n.messages);continue}}e.push(...n.messages)}o(e),E(t)}),[a]);const x=l.useMemo((()=>[l.createElement(d.f,{key:"chat-header-box"}),...u.map((e=>l.createElement(g.h,{key:`message-item-${e.type}-${e.id}`,msg:e,expanded:i(e.id)})))]),[u,i]);return l.createElement(l.Fragment,null,l.createElement(s.jC,{key:t,items:x},(e=>e)),p.length?l.createElement(s.az,{flexDirection:"column",height:y,overflow:"hidden"},...p.map((e=>l.createElement(g.h,{key:`message-item-${e.id}-pending`,msg:e,expanded:i(e.id)})))):l.createElement(l.Fragment,null))})),ChatContainer=()=>{const e=(0,r.i7)(m.Gb,(e=>e.terminalHeight)),[t,a]=(0,l.useState)(0);return(0,l.useEffect)((()=>{a(e-E)}),[e]),(0,i.o)(),(0,u.f)(),l.createElement(l.Fragment,null,l.createElement(y,{availableHeight:t}),l.createElement(s.az,{flexDirection:"column"},l.createElement(o.NH,null,l.createElement(o.pF,{availableHeight:t}))))},ChatView=()=>l.createElement(m.N7,null,l.createElement(m.Y5,null,l.createElement(ChatContainer,null)));n()}catch(e){n(e)}}))}};
|