@opensumi/cli-engine 3.8.3-next-1747129752.0 → 3.8.3-next-1747189218.0

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.
@@ -31563,7 +31563,7 @@ Use the appropriate tools to fulfill the USER\u2019s request, ensuring all requi
31563
31563
  The user's OS is ${(0,p.getOperatingSystemName)()}. The absolute path of the user's workspace is ${this.appConfig.workspaceDir}.
31564
31564
  </user_info>`},invoke:async(f,c,y,b)=>{this.chatDeferred=new p.Deferred;const{message:A,command:S}=f;let w=A;if(S){const D=this.chatFeatureRegistry.getSlashCommandHandler(S);if(D&&D.providerPrompt){const I=this.monacoCommandRegistry.getActiveCodeEditor();w=await D.providerPrompt(A,I)}}const T=await this.aiBackService.requestStream(w,{requestId:f.requestId,sessionId:f.sessionId,history:y,images:f.images,...this.getRequestOptions()},b);return(0,s.listenReadable)(T,{onData:D=>{c(D)},onEnd:()=>{this.chatDeferred.resolve()},onError:D=>{this.messageService.error(D.message),this.aiReporter.end(f.sessionId+"_"+f.requestId,{message:D.message,success:!1,command:S})}}),await this.chatDeferred.promise,{}},provideSlashCommands:async f=>this.chatFeatureRegistry.getAllSlashCommand().map(c=>({...c,name:c.name,description:c.description||""})),provideChatWelcomeMessage:async f=>{}})),queueMicrotask(()=>{this.chatAgentService.updateAgent(n.AGENT_ID,{})})}};t.ChatProxyService=d,d.AGENT_ID="Default_Chat_Agent",r.__decorate([(0,o.Autowired)(g.IChatAgentService),r.__metadata("design:type",Object)],d.prototype,"chatAgentService",void 0),r.__decorate([(0,o.Autowired)(p.AIBackSerivcePath),r.__metadata("design:type",Object)],d.prototype,"aiBackService",void 0),r.__decorate([(0,o.Autowired)(p.ChatFeatureRegistryToken),r.__metadata("design:type",u.ChatFeatureRegistry)],d.prototype,"chatFeatureRegistry",void 0),r.__decorate([(0,o.Autowired)(m.MonacoCommandRegistry),r.__metadata("design:type",m.MonacoCommandRegistry)],d.prototype,"monacoCommandRegistry",void 0),r.__decorate([(0,o.Autowired)(p.ChatServiceToken),r.__metadata("design:type",h.ChatService)],d.prototype,"aiChatService",void 0),r.__decorate([(0,o.Autowired)(p.IAIReporter),r.__metadata("design:type",Object)],d.prototype,"aiReporter",void 0),r.__decorate([(0,o.Autowired)(p.ChatAgentViewServiceToken),r.__metadata("design:type",Object)],d.prototype,"chatAgentViewService",void 0),r.__decorate([(0,o.Autowired)(l.PreferenceService),r.__metadata("design:type",Object)],d.prototype,"preferenceService",void 0),r.__decorate([(0,o.Autowired)(p.IApplicationService),r.__metadata("design:type",Object)],d.prototype,"applicationService",void 0),r.__decorate([(0,o.Autowired)(_.IMessageService),r.__metadata("design:type",Object)],d.prototype,"messageService",void 0),r.__decorate([(0,o.Autowired)(l.AppConfig),r.__metadata("design:type",Object)],d.prototype,"appConfig",void 0),t.ChatProxyService=d=n=r.__decorate([(0,o.Injectable)()],d)},29770:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChatService=void 0;const n=e(85608),r=e(76003),o=e(43718),l=e(63067),p=e(19413),v=e(59347);let m=class extends o.Disposable{constructor(){super(),this._onChatMessageLaunch=new o.Emitter,this.onChatMessageLaunch=this._onChatMessageLaunch.event,this._onChatReplyMessageLaunch=new o.Emitter,this.onChatReplyMessageLaunch=this._onChatReplyMessageLaunch.event,this._onChatMessageListLaunch=new o.Emitter,this.onChatMessageListLaunch=this._onChatMessageListLaunch.event,this._onScrollToBottom=new o.Emitter,this.onScrollToBottom=this._onScrollToBottom.event}showChatView(){this.mainLayoutService.toggleSlot(p.AI_CHAT_VIEW_ID,!0)}sendMessage(s){this.showChatView(),this._onChatMessageLaunch.fire(s)}clearHistoryMessages(){var s;(s=this.chatInternalService.sessionModel)===null||s===void 0||s.history.clearMessages()}sendReplyMessage(s){typeof s=="string"?this._onChatReplyMessageLaunch.fire({kind:"content",content:s}):this._onChatReplyMessageLaunch.fire(s)}sendMessageList(s){this._onChatMessageListLaunch.fire(s)}scrollToBottom(){this._onScrollToBottom.fire()}};t.ChatService=m,n.__decorate([(0,r.Autowired)(p.IChatInternalService),n.__metadata("design:type",v.ChatInternalService)],m.prototype,"chatInternalService",void 0),n.__decorate([(0,r.Autowired)(l.IMainLayoutService),n.__metadata("design:type",Object)],m.prototype,"mainLayoutService",void 0),t.ChatService=m=n.__decorate([(0,r.Injectable)(),n.__metadata("design:paramtypes",[])],m)},11735:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChatFeatureRegistry=void 0;const n=e(85608),r=e(76003),o=e(43718),l=e(19413),p=e(42033),v=e(51081);let m=class extends o.Disposable{constructor(){super(...arguments),this.logger=(0,o.getDebugLogger)(),this.slashCommandsMap=new Map,this.slashCommandsHandlerMap=new Map,this._onDidWelcomeMessageChange=new o.Emitter,this.onDidWelcomeMessageChange=this._onDidWelcomeMessageChange.event}registerImageUploadProvider(s){this.imageUploadProvider=s}getImageUploadProvider(){return this.imageUploadProvider}dispose(){super.dispose(),this.slashCommandsMap.clear(),this.slashCommandsHandlerMap.clear()}registerWelcome(s,g){this.chatWelcomeMessageModel=new p.ChatWelcomeMessageModel(s,g),this._onDidWelcomeMessageChange.fire()}registerSlashCommand(s,g){const{name:a}=s;if(this.slashCommandsMap.has(a)){this.logger.warn(`ChatFeatureRegistry: commands name ${a} already exists`);return}this.slashCommandsMap.set(a,new p.ChatSlashCommandItemModel(s,a,v.ChatProxyService.AGENT_ID)),this.slashCommandsHandlerMap.set(a,g)}getSlashCommandHandler(s){return this.slashCommandsHandlerMap.get(s)}getSlashCommand(s){return this.slashCommandsMap.get(s)}getSlashCommandHandlerBySlashName(s){const g=this.getAllSlashCommand().find(a=>a.nameWithSlash===s);if(g)return this.getSlashCommandHandler(g.name)}getSlashCommandBySlashName(s){const g=this.getAllSlashCommand().find(a=>a.nameWithSlash===s);if(g)return this.getSlashCommand(g.name)}getAllSlashCommand(){return Array.from(this.slashCommandsMap.values())}getAllShortcutSlashCommand(){return this.getAllSlashCommand().filter(s=>s.isShortcut===!0)}parseSlashCommand(s){if(s.startsWith(l.SLASH_SYMBOL)){const g=this.getAllSlashCommand();for(const a of g){const{nameWithSlash:h}=a;if(s.startsWith(h))return{value:s.slice(h.length),nameWithSlash:h}}}return{value:s,nameWithSlash:""}}};t.ChatFeatureRegistry=m,t.ChatFeatureRegistry=m=n.__decorate([(0,r.Injectable)()],m)},59347:(x,t,e)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.ChatInternalService=void 0;const r=e(85608),o=e(76003),l=e(41869),p=e(43718),v=e(19413),m=e(61282);let _=class extends p.Disposable{constructor(){super(...arguments),this._onChangeRequestId=new p.Emitter,this.onChangeRequestId=this._onChangeRequestId.event,this._onChangeSession=new p.Emitter,this.onChangeSession=this._onChangeSession.event,this._onCancelRequest=new p.Emitter,this.onCancelRequest=this._onCancelRequest.event,this._onWillClearSession=new p.Emitter,this.onWillClearSession=this._onWillClearSession.event,this._onRegenerateRequest=new p.Emitter,this.onRegenerateRequest=this._onRegenerateRequest.event,n.set(this,void 0)}get latestRequestId(){return this._latestRequestId}get sessionModel(){return r.__classPrivateFieldGet(this,n,"f")}init(){this.chatManagerService.onStorageInit(()=>{const g=this.chatManagerService.getSessions();g.length>0?this.activateSession(g[g.length-1].sessionId):this.createSessionModel()})}setLatestRequestId(g){this._latestRequestId=g,this._onChangeRequestId.fire(g)}createRequest(g,a,h,u){return this.chatManagerService.createRequest(r.__classPrivateFieldGet(this,n,"f").sessionId,g,a,u,h)}sendRequest(g,a=!1){const h=this.chatManagerService.sendRequest(r.__classPrivateFieldGet(this,n,"f").sessionId,g,a);return a&&this._onRegenerateRequest.fire(),h}cancelRequest(){this.chatManagerService.cancelRequest(r.__classPrivateFieldGet(this,n,"f").sessionId),this._onCancelRequest.fire()}createSessionModel(){r.__classPrivateFieldSet(this,n,this.chatManagerService.startSession(),"f"),this._onChangeSession.fire(r.__classPrivateFieldGet(this,n,"f").sessionId)}clearSessionModel(g){g=g||r.__classPrivateFieldGet(this,n,"f").sessionId,this._onWillClearSession.fire(g),this.chatManagerService.clearSession(g),g===r.__classPrivateFieldGet(this,n,"f").sessionId&&r.__classPrivateFieldSet(this,n,this.chatManagerService.startSession(),"f"),this._onChangeSession.fire(r.__classPrivateFieldGet(this,n,"f").sessionId)}getSessions(){return this.chatManagerService.getSessions()}getSession(g){return this.chatManagerService.getSession(g)}activateSession(g){const a=this.chatManagerService.getSession(g);if(!a)throw new Error(`There is no session with session id ${g}`);r.__classPrivateFieldSet(this,n,a,"f"),this._onChangeSession.fire(r.__classPrivateFieldGet(this,n,"f").sessionId)}dispose(){var g;(g=r.__classPrivateFieldGet(this,n,"f"))===null||g===void 0||g.dispose(),super.dispose()}};t.ChatInternalService=_,n=new WeakMap,r.__decorate([(0,o.Autowired)(p.AIBackSerivcePath),r.__metadata("design:type",Object)],_.prototype,"aiBackService",void 0),r.__decorate([(0,o.Autowired)(l.PreferenceService),r.__metadata("design:type",Object)],_.prototype,"preferenceService",void 0),r.__decorate([(0,o.Autowired)(v.IChatManagerService),r.__metadata("design:type",m.ChatManagerService)],_.prototype,"chatManagerService",void 0),t.ChatInternalService=_=r.__decorate([(0,o.Injectable)()],_)},70394:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChatRenderRegistry=void 0;const n=e(85608),r=e(76003),o=e(43718);let l=class extends o.Disposable{registerWelcomeRender(v){this.chatWelcomeRender=v}registerAIRoleRender(v){this.chatAIRoleRender=v}registerUserRoleRender(v){this.chatUserRoleRender=v}registerThinkingRender(v){this.chatThinkingRender=v}registerInputRender(v){this.chatInputRender=v}registerThinkingResultRender(v){this.chatThinkingResultRender=v}registerChatViewHeaderRender(v){this.chatViewHeaderRender=v}};t.ChatRenderRegistry=l,t.ChatRenderRegistry=l=n.__decorate([(0,r.Injectable)()],l)},76154:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AIChatView=void 0,t.DefaultChatViewHeader=U;const n=e(85608),r=n.__importStar(e(14041)),o=e(68392),l=e(41869),p=e(81878),v=e(89195),m=e(43718),_=e(54414),s=e(63067),g=e(72665);e(41937);const a=e(51500),h=e(19413),u=e(46044),d=e(98864),E=e(87785),f=e(25834),c=n.__importDefault(e(90103)),y=e(57987),b=e(56474),A=e(49601),S=e(15016),w=e(29039),T=e(78048),D=e(86556),I=e(73974),R=e(77633),P=e(42033),O=e(51081),M=n.__importDefault(e(77256)),k="chat_scroll",F=100,L=W=>W.map(j=>{var $;const G=(($=j.applyResult)===null||$===void 0?void 0:$.diff.split(`
31565
31565
  `).reduce(([Z,Y],V)=>(V.startsWith("-")?Z+=1:V.startsWith("+")&&(Y+=1),[Z,Y]),[0,0]))||[0,0];return{path:j.relativePath,additions:G[1],deletions:G[0],status:j.status}}).reduce((j,$)=>{const G=j.find(Z=>Z.path===$.path);return G?(G.additions+=$.additions,G.deletions+=$.deletions,G.status=$.status):j.push($),j},[]),B=()=>{const W=(0,l.useInjectable)(h.IChatInternalService),j=(0,l.useInjectable)(m.ChatServiceToken),$=(0,l.useInjectable)(m.IAIReporter),G=(0,l.useInjectable)(h.IChatAgentService),Z=(0,l.useInjectable)(m.ChatFeatureRegistryToken),Y=(0,l.useInjectable)(m.ChatRenderRegistryToken),V=(0,l.useInjectable)(R.TokenMCPServerRegistry),H=(0,l.useInjectable)(l.AINativeConfigService),K=(0,l.useInjectable)(u.LLMContextServiceToken),Q=(0,l.useInjectable)(s.IMainLayoutService),X=W.sessionModel.history,oe=r.useRef(null),ie=r.useRef(!0),fe=r.useRef(null),_e=(0,l.useInjectable)(_.WorkbenchEditorService),q=(0,l.useInjectable)(l.AppConfig),Se=(0,l.useInjectable)(I.BaseApplyService),ge=(0,l.useInjectable)(l.LabelService),te=(0,l.useInjectable)(a.IWorkspaceService),le=(0,l.useInjectable)(m.CommandService),[Ae,Re]=r.useState([]),[Ee,Ce]=r.useState(W.sessionModel.modelId),[ve,me]=r.useState(L(Se.getSessionCodeBlocks())),[Pe,we]=r.useReducer((We,Ke)=>{switch(Ke.type){case"add":return[...We,...Ke.payload||[]];case"clear":return[];case"init":return Array.isArray(Ke.payload)?Ke.payload:[];default:return We}},[]),[Ne,pe]=r.useState(!1),[re,he]=r.useState(""),[Me,Te]=r.useState(""),[Fe,Ge]=r.useState(""),[Ue,ft]=r.useState(null);r.useEffect(()=>{Ce(W.sessionModel.modelId)},[Ne,W.sessionModel]),r.useEffect(()=>{const We=new m.Disposable,Ke=()=>{const Je=L(Se.getSessionCodeBlocks());me(Je)};return We.addDispose(W.onChangeSession(Ke)),We.addDispose(Se.onCodeBlockUpdate(Ke)),()=>We.dispose()},[]),r.useEffect(()=>{const We=Z.getAllShortcutSlashCommand(),Ke=G.onDidChangeAgents(()=>{const Je=G.getCommands().filter(Yt=>Yt.isShortcut).map(Yt=>new P.ChatSlashCommandItemModel({icon:"",name:`${Yt.name} `,description:Yt.description,isShortcut:Yt.isShortcut},Yt.name,Yt.agentId));Re(We.concat(Je))});return Re(We),()=>Ke.dispose()},[Z,G]),(0,l.useUpdateOnEvent)(W.onChangeSession);const ht=r.useMemo(()=>Y.chatInputRender?Y.chatInputRender:H.capabilities.supportsMCP?A.ChatMentionInput:y.ChatInput,[Y.chatInputRender]),Rt=r.useMemo(()=>(0,T.createMessageByAI)({id:(0,m.uuid)(6),relationId:"",text:r.createElement(D.WelcomeMessage,null)}),[]),at=r.useCallback(We=>{We.deltaY<0?ie.current=!1:ie.current=!0},[ie]);r.useEffect(()=>{if(oe.current)return oe.current.addEventListener("wheel",at),()=>{var We;(We=oe.current)===null||We===void 0||We.removeEventListener("wheel",at)}},[ie]);const At=r.useCallback(()=>{if(oe&&oe.current&&ie.current){const We=oe.current.lastElementChild;We&&We.scrollIntoView({behavior:"smooth",block:"end"}),oe.current.scrollHeight>oe.current.clientHeight&&oe.current.classList.add(k)}},[oe,ie]),rt=r.useCallback(We=>{we(We),requestAnimationFrame(()=>{At()})},[we,At]);r.useEffect(()=>{rt({type:"init",payload:[Rt]})},[]),r.useEffect(()=>{const We=new m.Disposable;return We.addDispose(j.onScrollToBottom(()=>{requestAnimationFrame(()=>{})})),We.addDispose(j.onChatMessageLaunch(async Ke=>{var Je;if(Ke.immediate!==!1){if(Ne)return;await li(Ke.message,Ke.images,Ke.agentId,Ke.command)}else Ke.agentId&&he(Ke.agentId),Ke.command&&Ge(Ke.command),(Je=fe?.current)===null||Je===void 0||Je.setInputValue(Ke.message)})),We.addDispose(j.onChatReplyMessageLaunch(Ke=>{if(Ke.kind==="content"){const Je=$.start(m.AIServiceType.CustomReply,{message:Ke.content,sessionId:W.sessionModel.sessionId});X.addAssistantMessage({content:Ke.content,relationId:Je}),Wt({chunk:Ke.content,relationId:Je})}else{const Je=$.start(m.AIServiceType.CustomReply,{message:"component#"+Ke.component,sessionId:W.sessionModel.sessionId});X.addAssistantMessage({componentId:Ke.component,componentValue:Ke.value,content:"",relationId:Je}),pn({chunk:Ke,relationId:Je})}})),We.addDispose(j.onChatMessageListLaunch(Ke=>{const Je=[];Ke.forEach(Yt=>{const{role:vn}=Yt,Zn=$.start(m.AIServiceType.Chat,{message:"",sessionId:W.sessionModel.sessionId});if(vn==="assistant"){const ni=Yt;Je.push((0,T.createMessageByAI)({id:(0,m.uuid)(6),relationId:Zn,text:r.createElement(S.ChatNotify,{requestId:Zn,chunk:ni})},M.default.chat_notify))}if(vn==="user"){const{message:ni}=Yt,Mi=O.ChatProxyService.AGENT_ID,vi=Y.chatUserRoleRender,Wi=Mi===O.ChatProxyService.AGENT_ID?"":Mi;Je.push((0,T.createMessageByUser)({id:(0,m.uuid)(6),relationId:Zn,text:vi?r.createElement(vi,{content:ni,agentId:Wi}):r.createElement(f.CodeBlockWrapperInput,{relationId:Zn,text:ni,agentId:Wi,command:Fe,labelService:ge,workspaceService:te,commandService:le})},M.default.chat_message_code))}}),rt({type:"add",payload:Je}),setTimeout(At,0)})),()=>We.dispose()},[j,Y.chatAIRoleRender,X]),r.useEffect(()=>{const We=new m.Disposable;return We.addDispose(G.onDidSendMessage(Ke=>{const Je=Ke,Yt=$.start(m.AIServiceType.Agent,{message:""}),vn=(0,T.createMessageByAI)({id:(0,m.uuid)(6),relationId:Yt,text:r.createElement(S.ChatNotify,{requestId:W.latestRequestId,chunk:Je})},M.default.chat_notify);rt({type:"add",payload:[vn]})})),We.addDispose(G.onDidChangeAgents(async()=>{const Ke=G.getDefaultAgentId();Te(Ke??"")})),()=>We.dispose()},[G,X,W]);const ot=r.useCallback(async We=>{const{userMessage:Ke,relationId:Je,requestId:Yt,render:vn,startTime:Zn,command:ni,agentId:Mi}=We;X.addAssistantMessage({type:"component",content:""});const vi=(0,T.createMessageByAI)({id:(0,m.uuid)(6),relationId:Je,className:M.default.chat_with_more_actions,text:r.createElement(w.SlashCustomRender,{userMessage:Ke,startTime:Zn,relationId:Je,requestId:Yt,renderContent:vn,command:ni,agentId:Mi})});rt({type:"add",payload:[vi]})},[oe,X]),dt=r.useCallback(async We=>{const Ke=Y.chatUserRoleRender,{message:Je,images:Yt,agentId:vn,relationId:Zn,command:ni}=We,Mi=vn===O.ChatProxyService.AGENT_ID?"":vn,vi=(0,T.createMessageByUser)({id:(0,m.uuid)(6),relationId:Zn,text:Ke?r.createElement(Ke,{content:Je,images:Yt,agentId:Mi,command:ni}):r.createElement(f.CodeBlockWrapperInput,{labelService:ge,relationId:Zn,text:Je,images:Yt,agentId:Mi,command:ni,workspaceService:te,commandService:le})},M.default.chat_message_code);rt({type:"add",payload:[vi]})},[Y,Y.chatUserRoleRender,X,At]),bt=r.useCallback(async We=>{const{message:Ke,agentId:Je,request:Yt,relationId:vn,command:Zn,startTime:ni,msgId:Mi}=We,vi=Je===O.ChatProxyService.AGENT_ID?"":Je;if(Je===O.ChatProxyService.AGENT_ID&&Zn){const kn=Z.getSlashCommandHandler(Zn);if(kn&&kn.providerRender)return pe(!1),ot({userMessage:Ke,render:kn.providerRender,relationId:vn,requestId:Yt.requestId,startTime:ni,agentId:Je,command:Zn})}const Wi=(0,T.createMessageByAI)({id:(0,m.uuid)(6),relationId:vn,className:M.default.chat_with_more_actions,text:r.createElement(S.ChatReply,{relationId:vn,request:Yt,startTime:ni,agentId:vi,command:Zn,onDidChange:()=>{At()},history:X,onDone:()=>{pe(!1)},onRegenerate:()=>{Yt&&W.sendRequest(Yt,!0)},msgId:Mi})});rt({type:"add",payload:[Wi]})},[Y,X,At]),Wt=r.useCallback(We=>{const{chunk:Ke,relationId:Je}=We;let Yt=r.createElement(b.ChatMarkdown,{markdown:Ke,fillInIncompleteTokens:!0,agentId:re,command:Fe});if(Y.chatAIRoleRender){const Zn=Y.chatAIRoleRender;Yt=r.createElement(Zn,{content:Ke})}const vn=(0,T.createMessageByAI)({id:(0,m.uuid)(6),relationId:Je,text:Yt,className:M.default.chat_with_more_actions});rt({type:"add",payload:[vn]})},[Y,X,At]),pn=r.useCallback(We=>{const{chunk:Ke,relationId:Je}=We,Yt=(0,T.createMessageByAI)({id:(0,m.uuid)(6),relationId:Je,text:r.createElement(S.ChatNotify,{requestId:Je,chunk:Ke})},M.default.chat_notify);rt({type:"add",payload:[Yt]})},[Y,X,At]),In=r.useCallback(async We=>{const{message:Ke,images:Je,agentId:Yt,command:vn,reportExtra:Zn}=We,{actionType:ni,actionSource:Mi}=Zn||{},vi=W.createRequest(Ke,Yt,Je,vn);if(!vi)return;pe(!0),W.setLatestRequestId(vi.requestId);const Wi=Date.now(),kn=O.ChatProxyService.AGENT_ID===Yt?m.AIServiceType.Chat:m.AIServiceType.Agent,bn=$.start(vn||kn,{agentId:Yt,userMessage:Ke,actionType:ni,actionSource:Mi,sessionId:W.sessionModel.sessionId},600*1e3);X.addUserMessage({content:Ke.replaceAll(u.LLM_CONTEXT_KEY_REGEX,""),images:Je||[],agentId:Yt,agentCommand:vn,relationId:bn}),await dt({relationId:bn,message:Ke,images:Je,command:vn,agentId:Yt}),W.sendRequest(vi);const ei=X.addAssistantMessage({content:"",relationId:bn,requestId:vi.requestId,replyStartTime:Wi});V.activeMessageInfo={messageId:ei,sessionId:W.sessionModel.sessionId},await bt({startTime:Wi,relationId:bn,message:Ke,agentId:Yt,command:vn,request:vi,msgId:ei})},[Y,Y.chatUserRoleRender,X,At,Ne]),li=r.useCallback(async(We,Ke,Je,Yt)=>{var vn,Zn,ni;const Mi={actionSource:m.ActionSourceEnum.Chat,actionType:m.ActionTypeEnum.Send};Je=Je||O.ChatProxyService.AGENT_ID;let vi=We;const Wi=/\{\{@file:(.*?)\}\}/g,kn=We.match(Wi);let bn=!1;if(kn)for(const dn of kn){const Hn=dn.replace(/\{\{@file:(.*?)\}\}/,"$1");Hn&&!bn&&(bn=!0,K.cleanFileContext());const Qt=new m.URI(Hn),$e=((vn=await te.asRelativePath(Qt))===null||vn===void 0?void 0:vn.path)||Qt.displayName;vi=vi.replace(dn,`\`${u.LLM_CONTEXT_KEY.AttachedFile}${$e}\``)}const ei=/\{\{@folder:(.*?)\}\}/g,Ri=vi.match(ei);if(Ri)for(const dn of Ri){const Hn=dn.replace(/\{\{@folder:(.*?)\}\}/,"$1"),Qt=new m.URI(Hn),$e=((Zn=await te.asRelativePath(Qt))===null||Zn===void 0?void 0:Zn.path)||Qt.displayName;vi=vi.replace(dn,`\`${u.LLM_CONTEXT_KEY.AttachedFolder}${$e}\``)}const Ki=/\{\{@code:(.*?)\}\}/g,bi=vi.match(Ki);if(bi)for(const dn of bi){const Hn=dn.replace(/\{\{@code:(.*?)\}\}/,"$1"),[Qt,$e]=Hn.split(":");let pt=[0,0];if($e){const[tn,zt]=$e.slice(1).split("-");pt=[parseInt(tn,10),parseInt(zt,10)]}const mt=new m.URI(Qt),ut=((ni=await te.asRelativePath(mt))===null||ni===void 0?void 0:ni.path)||mt.displayName;vi=vi.replace(dn,`\`${u.LLM_CONTEXT_KEY.AttachedFile}${ut}:L${pt[0]}-${pt[1]}\``)}return In({message:vi,images:Ke,agentId:Je,command:Yt,reportExtra:Mi})},[In]),Mn=r.useCallback(()=>{W.clearSessionModel(),j.clearHistoryMessages(),cn()},[Pe]),cn=r.useCallback(()=>{var We;(We=oe?.current)===null||We===void 0||We.classList.remove(k),rt({type:"init",payload:[Rt]})},[Pe]),Un=We=>{Ne||(ft(We.nameWithSlash),he(We.agentId),Ge(We.command))},fn=r.useCallback(()=>{Q.toggleSlot(h.AI_CHAT_VIEW_ID)},[Q]),Vt=Y.chatViewHeaderRender||U,vt=r.useCallback(async We=>{for(const Ke of X.getMessages()){if(We.isCancellationRequested)return;if(Ke.role===1)await dt({relationId:Ke.relationId,message:Ke.content,agentId:Ke.agentId,command:Ke.agentCommand,images:Ke.images});else if(Ke.role===2&&Ke.requestId){const Je=W.sessionModel.getRequest(Ke.requestId);Je&&!Je.response.isComplete&&pe(!0),await bt({msgId:Ke.id,relationId:Ke.relationId,message:Ke.content,agentId:Ke.agentId,command:Ke.agentCommand,startTime:Ke.replyStartTime,request:Je})}else Ke.role===2&&Ke.content?await Wt({relationId:Ke.relationId,chunk:Ke.content}):Ke.role===2&&Ke.componentId&&await pn({relationId:Ke.relationId,chunk:{kind:"component",component:Ke.componentId,value:Ke.componentValue}})}},[bt]);return r.useEffect(()=>{cn();const We=new m.CancellationTokenSource;return pe(!1),vt(We.token),()=>{We.cancel()}},[W.sessionModel]),r.createElement("div",{id:M.default.ai_chat_view},r.createElement("div",{className:M.default.header_container},r.createElement(Vt,{handleClear:Mn,handleCloseChatView:fn})),r.createElement("div",{className:M.default.body_container},r.createElement("div",{className:M.default.left_bar,id:"ai_chat_left_container"},r.createElement("div",{className:M.default.chat_container,ref:oe},r.createElement(o.MessageList,{className:M.default.message_list,lockable:!0,toBottomHeight:"100%",dataSource:Pe})),W.sessionModel.slicedMessageCount?r.createElement("div",{className:M.default.chat_tips_text},r.createElement("div",{className:M.default.chat_tips_container},(0,m.formatLocalize)("aiNative.chat.ai.assistant.limit.message",W.sessionModel.slicedMessageCount))):null,r.createElement("div",{className:M.default.chat_input_wrap},r.createElement("div",{className:M.default.header_operate},r.createElement("div",{className:M.default.header_operate_left},Ae.map(We=>r.createElement(p.Popover,{id:`ai-chat-shortcut-${We.name}`,key:`ai-chat-shortcut-${We.name}`,title:We.tooltip||We.name},r.createElement("div",{className:M.default.tag,onClick:()=>Un(We)},We.name))))),ve.length>0&&r.createElement(E.FileListDisplay,{files:ve,hideActions:Ne,onFileClick:We=>{_e.open(m.URI.file(m.path.join(q.workspaceDir,We)))},onRejectAll:()=>{Se.processAll("reject")},onAcceptAll:()=>{Se.processAll("accept")}}),r.createElement(ht,{onSend:li,disabled:Ne,enableOptions:!0,theme:Ue,setTheme:ft,agentId:re,setAgentId:he,defaultAgentId:Me,command:Fe,setCommand:Ge,contextService:K,ref:fe,disableModelSelector:Ee!==void 0||Ne,sessionModelId:Ee})))))};t.AIChatView=B;function U({handleClear:W,handleCloseChatView:j}){const $=(0,l.useInjectable)(h.IChatInternalService),G=(0,l.useInjectable)(g.IMessageService),[Z,Y]=r.useState([]),[V,H]=r.useState(""),K=r.useCallback(()=>{if($.sessionModel.history.getMessages().length>0)try{$.createSessionModel()}catch(oe){G.error(oe.message)}},[$]),Q=r.useCallback(oe=>{$.activateSession(oe.id)},[$]),X=r.useCallback(oe=>{$.clearSessionModel(oe.id)},[$]);return r.useEffect(()=>{const oe=()=>{const q=$.sessionModel.history.getMessages().findLast(Se=>Se.role===1);H(q?(0,d.cleanAttachedTextWrapper)(q.content).slice(0,F):""),Y($.getSessions().map(Se=>{const te=Se.history.getMessages(),le=te.length>0?(0,d.cleanAttachedTextWrapper)(te[0].content).slice(0,F):"",Ae=te.length>0&&te[te.length-1].replyStartTime||0;return{id:Se.sessionId,title:le,updatedAt:Ae,loading:!1}}))};oe();const ie=new m.DisposableCollection,fe=new Set;return ie.push($.onChangeSession(_e=>{oe(),!fe.has(_e)&&(fe.add(_e),ie.push($.sessionModel.history.onMessageChange(()=>{oe()})))})),ie.push($.sessionModel.history.onMessageChange(()=>{oe()})),()=>{ie.dispose()}},[$]),r.createElement("div",{className:M.default.header},r.createElement(c.default,{className:M.default.chat_history,currentId:$.sessionModel.sessionId,title:V||(0,m.localize)("aiNative.chat.ai.assistant.name"),historyList:Z,onNewChat:K,onHistoryItemSelect:Q,onHistoryItemDelete:X,onHistoryItemChange:()=>{}}),r.createElement(p.Popover,{overlayClassName:M.default.popover_icon,id:"ai-chat-header-clear",title:(0,m.localize)("aiNative.operate.clear.title")},r.createElement(v.EnhanceIcon,{wrapperClassName:M.default.action_btn,className:(0,l.getIcon)("clear"),onClick:W,tabIndex:0,role:"button",ariaLabel:(0,m.localize)("aiNative.operate.clear.title")})),r.createElement(p.Popover,{overlayClassName:M.default.popover_icon,id:"ai-chat-header-close",position:p.PopoverPosition.left,title:(0,m.localize)("aiNative.operate.close.title")},r.createElement(v.EnhanceIcon,{wrapperClassName:M.default.action_btn,className:(0,l.getIcon)("window-close"),onClick:j,tabIndex:0,role:"button",ariaLabel:(0,m.localize)("aiNative.operate.close.title")})))}},21967:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApplyStatus=void 0;const n=e(85608),r=n.__importDefault(e(14041)),o=e(97267),l=n.__importDefault(e(6960)),p=({status:v,error:m})=>{const _=()=>{switch(v){case"generating":return r.default.createElement(o.Loading,null);case"pending":return r.default.createElement(o.Popover,{title:"Pending",id:"edit-file-tool-status-pending"},r.default.createElement(o.Icon,{iconClass:"codicon codicon-circle-large"}));case"success":return r.default.createElement(o.Popover,{title:"Success",id:"edit-file-tool-status-success"},r.default.createElement(o.Icon,{iconClass:"codicon codicon-pass"}));case"failed":return r.default.createElement(o.Popover,{title:`Failed (${m||"Unknown error"})`,id:"edit-file-tool-status-failed"},r.default.createElement(o.Icon,{iconClass:"codicon codicon-error"}));case"cancelled":return r.default.createElement(o.Popover,{title:"Cancelled",id:"edit-file-tool-status-cancelled"},r.default.createElement(o.Icon,{iconClass:"codicon codicon-circle-slash",style:{color:"var(--input-placeholderForeground)"}}));default:return null}};return r.default.createElement("span",{className:l.default.status},_())};t.ApplyStatus=p},87785:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FileListDisplay=void 0;const n=e(85608),r=n.__importStar(e(14041)),o=e(97267),l=e(41869),p=e(54414),v=e(42995),m=e(21967),_=n.__importDefault(e(80919)),s=g=>{const{files:a,onFileClick:h,onRejectAll:u,onAcceptAll:d,hideActions:E}=g,[f,c]=(0,r.useState)(!0),y=(0,l.useInjectable)(p.WorkbenchEditorService),b=(0,l.useInjectable)(l.LabelService),A=(0,r.useMemo)(()=>a.map(R=>{const P=l.URI.parse(R.path),O=b.getIcon(P);return r.default.createElement("span",{className:O})}),[a]),S=a.length,w=a.reduce((R,P)=>({additions:R.additions+P.additions,deletions:R.deletions+P.deletions}),{additions:0,deletions:0}),T=()=>{c(!f)},D=R=>R?r.default.createElement("span",{className:_.default.viewChanges,onClick:P=>{P.stopPropagation(),y.open(l.URI.from({scheme:v.ChatMultiDiffResolver.CHAT_EDITING_MULTI_DIFF_SOURCE_RESOLVER_SCHEME,path:"chat-editing-multi-diff-source"}),{label:(0,l.localize)("aiNative.chat.view-changes")})}},r.default.createElement(o.Icon,{icon:"unorderedlist",size:"small"}),(0,l.localize)("aiNative.chat.view-changes")):null,I=(R,P)=>{const O=[];return R>0&&O.push(r.default.createElement("span",{key:"add",className:_.default.additions},"+",R)),P>0&&(O.length>0&&O.push(" "),O.push(r.default.createElement("span",{key:"del",className:_.default.deletions},"-",P))),O.length===0&&O.push(r.default.createElement("span",{key:"no-change",className:_.default.noChange},"No changes")),O};return r.default.createElement("div",{className:_.default.container},r.default.createElement("div",{className:_.default.header},r.default.createElement("span",{className:_.default.title},r.default.createElement("button",{className:_.default.toggleButton,onClick:T},f?r.default.createElement(o.Icon,{icon:"down"}):r.default.createElement(o.Icon,{icon:"right"})," Changed Files(",S,")"),I(w.additions,w.deletions),!E&&D(a.length)),!E&&a.some(R=>R.status==="pending")&&r.default.createElement("div",{className:_.default.actions},r.default.createElement(o.Button,{type:"link",size:"small",onClick:R=>{R.stopPropagation(),u()}},"Reject"),r.default.createElement(o.Button,{size:"small",onClick:R=>{R.stopPropagation(),d()}},"Accept"))),r.default.createElement("ul",{className:`${_.default.fileList} ${f?"":_.default.collapsed}`},a.map((R,P)=>r.default.createElement("li",{key:P,className:_.default.fileItem,onClick:()=>h(R.path)},r.default.createElement("span",{className:_.default.fileIcon},A[P]||"\u{1F4C4}"),r.default.createElement("div",{className:_.default.fileInfo},r.default.createElement("div",{className:_.default.filePath},R.path),r.default.createElement("div",{className:_.default.fileStats},I(R.additions,R.deletions)),r.default.createElement(m.ApplyStatus,{status:R.status}))))))};t.FileListDisplay=s},25834:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeBlockWrapperInput=t.CodeBlockWrapper=t.CodeEditorWithHighlight=void 0;const n=e(85608),r=n.__importDefault(e(56005)),o=n.__importStar(e(14041)),l=n.__importDefault(e(10580)),p=e(46541),v=e(41869),m=e(81878),_=e(89195),s=e(43718),g=e(71624),a=e(9447),h=e(52416),u=n.__importDefault(e(6960)),d=e(83933),E=e(44692);e(38191);const f=A=>{const{input:S,language:w,relationId:T,agentId:D,command:I,hideInsert:R}=A,P=o.default.useRef(null),O=(0,v.useInjectable)(a.MonacoCommandRegistry),M=(0,v.useInjectable)(v.IClipboardService),k=(0,v.useInjectable)(h.IThemeService),F=(0,v.useInjectable)(s.IAIReporter),[L,B]=(0,o.useState)(!1),U=(0,o.useMemo)(()=>(0,v.uuid)(12),[P,P.current]);(0,o.useEffect)(()=>{const $=Y=>{Y.type==="dark"||Y.type==="hcDark"?e.e(622).then(e.bind(e,51622)):(Y.type==="light"||Y.type==="hcLight")&&e.e(412).then(e.bind(e,50412))},G=k.onThemeChange(Y=>{$(Y)}),Z=k.getCurrentThemeSync();return $(Z),()=>G.dispose()},[]),(0,o.useEffect)(()=>{var $;if(P.current){const G=P.current,Z=($=G?.querySelector)===null||$===void 0?void 0:$.call(G,"pre");Z&&(Z.scrollTop=Z.scrollHeight)}},[S]);const W=(0,o.useCallback)(async()=>{B(!0),await M.writeText(S),F.end(T,{copy:!0,code:S,language:w,agentId:D,command:I,actionSource:s.ActionSourceEnum.Chat,actionType:s.ActionTypeEnum.ChatCopyCode}),(0,s.runWhenIdle)(()=>{B(!1)},1e3)},[M,S,T]),j=(0,o.useCallback)(()=>{const $=O.getActiveCodeEditor();if($){const G=$.getSelection();G&&((0,g.insertSnippetWithMonacoEditor)($,S,[G],{undoStopBefore:!1,undoStopAfter:!1}),F.end(T,{insert:!0,code:S,language:w,agentId:D,command:I,actionSource:s.ActionSourceEnum.Chat,actionType:s.ActionTypeEnum.ChatInsertCode}))}},[O]);return o.default.createElement("div",{className:u.default.monaco_wrapper},o.default.createElement("div",{className:u.default.action_toolbar},!R&&o.default.createElement(m.Popover,{id:`ai-chat-inser-${U}`,title:(0,s.localize)("aiNative.chat.code.insert")},o.default.createElement(_.EnhanceIcon,{className:(0,v.getIcon)("insert"),onClick:()=>j(),tabIndex:0,role:"button",ariaLabel:(0,s.localize)("aiNative.chat.code.insert")})),o.default.createElement(m.Popover,{id:`ai-chat-copy-${U}`,title:(0,s.localize)(L?"aiNative.chat.code.copy.success":"aiNative.chat.code.copy")},o.default.createElement(_.EnhanceIcon,{className:(0,v.getIcon)("copy"),onClick:()=>W(),tabIndex:0,role:"button",ariaLabel:(0,s.localize)("aiNative.chat.code.copy")}))),o.default.createElement(l.default,{language:w,ref:P,className:u.default.highlight_editor},S))};t.CodeEditorWithHighlight=f;const c=({content:A="",relationId:S,renderText:w,agentId:T="",command:D="",labelService:I,commandService:R,workspaceService:P})=>{const O=/`([^`]+)`/g,M=/```([^]+?)```/g,k=/```([^]+)?/g,F=/<attached_file>(.*)/g,L=/<attached_folder>(.*)/g,B=(0,o.useCallback)(async($,G)=>{const Z=await P?.roots;let Y;if(Z)for(const V of Z){Y=new s.URI(V.uri).resolve($);try{await R?.executeCommand(v.FILE_COMMANDS.REVEAL_IN_EXPLORER.id,Y),G===E.MentionType.FILE&&await R?.executeCommand(v.EDITOR_COMMANDS.OPEN_RESOURCE.id,Y);break}catch{continue}}},[R,P]),U=($,G=!1,Z)=>o.default.createElement("span",{className:u.default.attachment,key:Z,onClick:()=>B($,G?E.MentionType.FOLDER:E.MentionType.FILE)},o.default.createElement(m.Icon,{iconClass:G?(0,v.getIcon)("folder"):I?.getIcon(new s.URI($||"file"))}),o.default.createElement("span",{className:u.default.attachment_text},$)),W=$=>{const G=$.split(`
31566
- `)[0].trim().toLowerCase(),Z=d.highLightLanguageSupport.find(Y=>Y===G)||"plaintext";return $=$.replace(/.*?\n/,""),$=$.trim(),o.default.createElement("div",{className:u.default.code_block},o.default.createElement("div",{className:u.default.code_language},(0,r.default)(Z)),o.default.createElement(t.CodeEditorWithHighlight,{input:$,language:G,relationId:S,agentId:T,command:D}))},j=(0,o.useMemo)(()=>{const $=A.split(M),G=[];return $.map((Z,Y)=>{Y%2===0?Z.split(O).map((V,H)=>{if(H%2===0){if(V.includes("```")){const K=V.split(k).filter(Boolean);if(K.length===2){G.push(K[0]),G.push(W(K[1]));return}}w?G.push(w(V)):G.push(V)}else{const K=V,Q=[...V.matchAll(F)],X=[...V.matchAll(L)];if(Q.length||X.length){let oe=0;const ie=[],fe=(_e,q)=>{_e.forEach((Se,ge)=>{if(Se.index!==void 0){const te=K.slice(oe,Se.index);te&&ie.push(o.default.createElement("span",{key:`${H}-${ge}-${q?"folder":"file"}`},te)),ie.push(U(Se[1],q,`${H}-tag-${ge}-${q?"folder":"file"}`)),oe=Se.index+Se[0].length}})};fe(Q,!1),fe(X,!0),ie.push(K.slice(oe)),G.push(...ie)}else G.push(o.default.createElement("span",{className:u.default.code_inline,key:H},V))}}):G.push(W(Z))}),G},[A,w]);return o.default.createElement(o.default.Fragment,null,j)},y=({text:A,renderText:S,relationId:w,agentId:T,labelService:D,commandService:I,workspaceService:R})=>o.default.createElement("div",{className:u.default.ai_chat_code_wrapper},o.default.createElement("div",{className:u.default.render_text},o.default.createElement(c,{content:A,labelService:D,renderText:S,relationId:w,agentId:T,commandService:I,workspaceService:R})));t.CodeBlockWrapper=y;const b=({text:A,images:S,relationId:w,agentId:T,command:D,labelService:I,workspaceService:R,commandService:P})=>{const O=(0,v.useInjectable)(s.ChatFeatureRegistryToken),[M,k]=(0,o.useState)(""),[F,L]=(0,o.useState)(A);return o.default.useEffect(()=>{const{value:B,nameWithSlash:U}=O.parseSlashCommand(A);if(U){k(U),L(B);return}else L(A)},[A,O]),o.default.createElement("div",{className:u.default.ai_chat_code_wrapper},S?.map(B=>o.default.createElement("div",{className:u.default.image_wrapper},o.default.createElement(p.Image,{src:B}))),o.default.createElement("div",{className:u.default.render_text},M&&o.default.createElement("div",{className:u.default.tag_wrapper},o.default.createElement("span",{className:u.default.tag},M)),T&&o.default.createElement("div",{className:u.default.tag,style:{marginRight:4}},"@",T),D&&o.default.createElement("div",{className:u.default.tag},"/ ",D),o.default.createElement(c,{content:F,labelService:I,relationId:w,agentId:T,command:D,workspaceService:R,commandService:P})))};t.CodeBlockWrapperInput=b},90103:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=e(85608),r=n.__importDefault(e(53373)),o=n.__importStar(e(14041)),l=e(97267),p=e(41869),v=e(89195),m=n.__importDefault(e(35553)),_=100,s=(0,o.memo)(({title:g,historyList:a,currentId:h,onNewChat:u,onHistoryItemSelect:d,onHistoryItemChange:E,onHistoryItemDelete:f,className:c})=>{const[y,b]=(0,o.useState)(null),[A,S]=(0,o.useState)(""),w=(0,o.useRef)(null),T=(0,o.useCallback)(W=>{S(W.target.value)},[A]),D=(0,o.useCallback)(W=>{d(W),S("")},[d,A]),I=(0,o.useCallback)(W=>{b({[W.id]:!0})},[y]),R=(0,o.useCallback)((W,j)=>{b({[W.id]:!1}),E(W,j)},[E,y]),P=(0,o.useCallback)(W=>{b({[W.id]:!1})},[y]),O=(0,o.useCallback)(()=>{u()},[u]);(0,o.useEffect)(()=>{var W;y&&((W=w.current)===null||W===void 0||W.focus({cursor:"end"}))},[y]);const M=(0,o.useCallback)(W=>{f(W)},[f]),k=(0,o.useCallback)(W=>{if(W<60*60*1e3){const $=Math.floor(W/6e4);return $===0?"Just now":`${$}m ago`}else{if(W<24*60*60*1e3)return`${Math.floor(W/36e5)}h ago`;if(W<7*24*60*60*1e3)return`${Math.floor(W/864e5)}d ago`;if(W<30*24*60*60*1e3)return`${Math.floor(W/6048e5)}w ago`;if(W<365*24*60*60*1e3)return`${Math.floor(W/2592e6)}mo ago`}return`${Math.floor(W/(365*24*60*60*1e3))}y ago`},[]),F=(0,o.useCallback)(W=>{const j=new Date,$=[];return W.forEach(G=>{const Z=new Date(G.updatedAt),Y=j.getTime()-Z.getTime(),V=k(Y),H=$.find(K=>K.key===V);H?H.items.push(G):$.push({key:V,items:[G]})}),$},[k]),L=(0,o.useCallback)(W=>o.default.createElement("div",{key:W.id,className:(0,r.default)(m.default.chat_history_item,W.id===h?m.default.chat_history_item_selected:""),onClick:()=>D(W)},o.default.createElement("div",{className:m.default.chat_history_item_content},W.loading?o.default.createElement(l.Loading,null):o.default.createElement(l.Icon,{icon:"message",style:{width:"16px",height:"16px",marginRight:4}}),y?.[W.id]?o.default.createElement(l.Input,{className:m.default.chat_history_item_title,defaultValue:W.title,ref:w,onPressEnter:j=>{R(W,j.target.value)},onBlur:()=>P(W)}):o.default.createElement("span",{id:`chat-history-item-title-${W.id}`,className:m.default.chat_history_item_title},W.title)),o.default.createElement("div",{className:m.default.chat_history_item_actions},o.default.createElement(v.EnhanceIcon,{className:(0,r.default)(m.default.chat_history_item_actions_delete,(0,l.getIcon)("delete")),onClick:j=>{j.preventDefault(),j.stopPropagation(),M(W)},ariaLabel:(0,p.localize)("aiNative.operate.chatHistory.delete")}))),[y,D,R,P,I,M,h,w]),B=(0,o.useCallback)(()=>{const W=a.slice(0,_).filter($=>$.title&&$.title.includes(A)),j=F(W);return o.default.createElement("div",null,o.default.createElement(l.Input,{placeholder:(0,p.localize)("aiNative.operate.chatHistory.searchPlaceholder"),className:m.default.chat_history_search,value:A,onChange:T}),o.default.createElement("div",{className:m.default.chat_history_list},j.map($=>o.default.createElement("div",{key:$.key,style:{padding:"4px"}},o.default.createElement("div",{className:m.default.chat_history_time},$.key),$.items.map(L)))))},[a,A,F,T,L]),U=(0,o.useCallback)(W=>W.parentElement,[]);return o.default.createElement("div",{className:(0,r.default)(m.default.chat_history_header,c)},o.default.createElement("div",{className:m.default.chat_history_header_title},o.default.createElement("span",null,g)),o.default.createElement("div",{className:m.default.chat_history_header_actions},o.default.createElement(l.Popover,{id:"chat-history-header-actions-history",content:B(),trigger:l.PopoverTriggerType.click,position:l.PopoverPosition.bottomRight,title:(0,p.localize)("aiNative.operate.chatHistory.title"),getPopupContainer:U},o.default.createElement("div",{className:m.default.chat_history_header_actions_history,title:(0,p.localize)("aiNative.operate.chatHistory.title")},o.default.createElement(v.EnhanceIcon,{className:(0,r.default)(m.default.chat_history_header_actions_history,"codicon codicon-history")}))),o.default.createElement(l.Popover,{id:"ai-chat-header-new",position:l.PopoverPosition.top,title:(0,p.localize)("aiNative.operate.newChat.title")},o.default.createElement(v.EnhanceIcon,{className:(0,r.default)(m.default.chat_history_header_actions_new,(0,l.getIcon)("plus")),onClick:O}))))});t.default=s},57987:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChatInput=void 0;const n=e(85608),r=n.__importDefault(e(53373)),o=n.__importStar(e(14041)),l=e(41869),p=e(81878),v=e(89195),m=e(83913),_=e(43718),s=e(92323),g=e(9447),a=e(72665),h=e(19413),u=e(42033),d=e(51081),E=e(27397),f=e(30703),c=n.__importDefault(e(6960)),y=8,b=68,A=({icon:D,name:I,description:R,agentId:P,command:O,selectedAgentId:M})=>{const k=(0,o.useMemo)(()=>!M&&P&&P!==d.ChatProxyService.AGENT_ID&&O?o.default.createElement("span",{className:c.default.agent_label},"@",P):null,[]);return o.default.createElement("div",{className:c.default.block},D&&o.default.createElement(v.EnhanceIcon,{className:D}),I&&o.default.createElement("span",{className:c.default.name},I),R&&o.default.createElement("span",{className:c.default.text},R),k)},S=({onClick:D,bottom:I,trigger:R,agentId:P})=>{const O=(0,l.useInjectable)(h.IChatAgentService),M=(0,l.useInjectable)(_.ChatAgentViewServiceToken),k=(0,o.useMemo)(()=>R===h.AT_SIGN_SYMBOL?M.getRenderAgents().map(L=>new u.ChatSlashCommandItemModel({icon:"",name:`${h.AT_SIGN_SYMBOL}${L.id} `,description:L.metadata.description},"",L.id)):O.getCommands().map(L=>new u.ChatSlashCommandItemModel({icon:"",name:`${h.SLASH_SYMBOL} ${L.name} `,description:L.description},L.name,L.agentId)).filter(L=>!P||L.agentId===P),[R,O]),F=(0,o.useCallback)((L,B,U)=>{D&&D(L||"",B,U)},[D]);return k.length===0?null:o.default.createElement("div",{className:c.default.instruction_options_container,style:{bottom:I+"px"}},o.default.createElement("div",{className:c.default.options},o.default.createElement("ul",null,k.map(({icon:L,name:B,nameWithSlash:U,description:W,agentId:j,command:$})=>o.default.createElement("li",{key:`${j||""}-${B}`,onMouseDown:()=>F(U,j,$)},o.default.createElement(A,{icon:L,name:B,description:W,agentId:j,command:$,selectedAgentId:P}))))))},w=({themeBlock:D})=>o.default.createElement("div",{className:c.default.theme_container},o.default.createElement("div",{className:c.default.theme_block},D)),T=({agentId:D,command:I})=>o.default.createElement("div",{className:c.default.theme_container},D!==d.ChatProxyService.AGENT_ID&&o.default.createElement("div",{className:c.default.theme_block,style:{marginRight:4}},"@",D),I&&o.default.createElement("div",{className:c.default.theme_block},h.SLASH_SYMBOL," ",I));t.ChatInput=o.default.forwardRef((D,I)=>{const{onSend:R,onValueChange:P,enableOptions:O=!1,disabled:M=!1,defaultHeight:k=32,autoFocus:F,setTheme:L,theme:B,setAgentId:U,agentId:W,defaultAgentId:j,setCommand:$,command:G,sendBtnClassName:Z}=D,Y=W||j,V=(0,o.useRef)(null),H=(0,o.useRef)(null),[K,Q]=(0,o.useState)(D.value||""),[X,oe]=(0,o.useState)(!1),[ie,fe]=(0,o.useState)(k),[_e,q]=(0,o.useState)(!1),[Se,ge]=(0,o.useState)(!1),[te,le]=(0,o.useState)(!1),[Ae,Re]=(0,o.useState)((0,_.localize)("aiNative.chat.input.placeholder.default")),Ee=(0,l.useInjectable)(h.IChatInternalService),Ce=(0,l.useInjectable)(a.IDialogService),ve=(0,l.useInjectable)(l.AINativeConfigService),me=(0,l.useInjectable)(h.TokenMCPServerProxyService),Pe=(0,l.useInjectable)(g.MonacoCommandRegistry),we=(0,l.useInjectable)(h.IChatAgentService),Ne=(0,l.useInjectable)(_.ChatFeatureRegistryToken),pe=(0,l.useInjectable)(s.CommandService),re=(0,l.useLatest)(Y),he=o.default.useCallback(()=>{pe.executeCommand(E.MCPConfigCommands.OPEN_MCP_CONFIG.id)},[pe]),Me=o.default.useCallback(async()=>{const ot=await me.getAllMCPTools();Ce.open({message:o.default.createElement(f.MCPToolsDialog,{tools:ot}),type:_.MessageType.Empty,buttons:[(0,_.localize)("dialog.file.close")]})},[me,Ce]);(0,o.useImperativeHandle)(I,()=>({setInputValue:ot=>{Q(ot),(0,_.runWhenIdle)(()=>{var dt;(dt=V.current)===null||dt===void 0||dt.focus()},120)}})),(0,o.useEffect)(()=>{D.value!==K&&Q(D.value||"")},[D.value]),(0,o.useEffect)(()=>{var ot;(ot=V.current)===null||ot===void 0||ot.focus();const dt=(0,_.localize)("aiNative.chat.input.placeholder.default"),bt=Ne.getSlashCommandHandler(G);if(bt&&bt.providerInputPlaceholder){const Wt=Pe.getActiveCodeEditor(),pn=bt.providerInputPlaceholder(K,Wt);Re(pn||dt)}else Re(dt)},[Ne,G]),(0,o.useEffect)(()=>{Ue(B||"",Y,G)},[B,Y,G]),(0,o.useEffect)(()=>{var ot;V&&F&&((ot=V.current)===null||ot===void 0||ot.focus())},[V,F,D.value]),(0,o.useEffect)(()=>{if(O&&((K===h.SLASH_SYMBOL||K===h.AT_SIGN_SYMBOL&&we.getAgents().length>0)&&!te?oe(!0):oe(!1)),K.startsWith(h.SLASH_SYMBOL)){const{value:ot,nameWithSlash:dt}=Ne.parseSlashCommand(K);if(dt){const bt=Ne.getSlashCommandBySlashName(dt);Q(ot),L(dt),bt&&(U(bt.agentId),$(bt.command));return}}if(we.getAgents().length){const ot=we.parseMessage(K,re.current);(ot.agentId||ot.command)&&(L(""),Q(ot.message),ot.agentId&&U(ot.agentId),ot.command&&$(ot.command))}},[V,K,O,Ne]),(0,o.useEffect)(()=>{K||(fe(k),ge(!1),le(!1))},[K]);const Te=(0,o.useCallback)(ot=>{Q(ot),P&&P(ot)},[]),Fe=(0,o.useCallback)(()=>{Ee.cancelRequest()},[]),Ge=(0,o.useCallback)(async()=>{if(M)return;const ot=(dt=K)=>{R(dt,[],Y,G),Q(""),L(""),U(""),$("")};if(G){const dt=Ne.getSlashCommandHandler(G);if(dt&&dt.execute){const bt=Pe.getActiveCodeEditor();await dt.execute(K,Wt=>ot(Wt),bt);return}}ot()},[R,K,Y,G,Ne]),Ue=(0,o.useCallback)((ot,dt,bt)=>{if(dt){if(oe(!1),L(""),U(dt),$(bt||""),V?.current){const Wt=V.current.value;(Wt===h.AT_SIGN_SYMBOL||bt&&Wt===h.SLASH_SYMBOL)&&Q(""),(0,_.runWhenIdle)(()=>V.current.focus())}}else if(ot){oe(!1),U(""),$("");const Wt=Ne.getSlashCommandBySlashName(ot);if(L(Wt?Wt.nameWithSlash:""),V&&V.current){const pn=V.current.value;pn.length===1&&pn.startsWith(h.SLASH_SYMBOL)&&Q(""),(0,_.runWhenIdle)(()=>V.current.focus())}}},[V,Ne]),ft=(0,o.useMemo)(()=>{const ot=y+ie;return te&&oe(!1),ot},[ie]),ht=ot=>{var dt,bt;if(ot.key==="Backspace"&&((dt=V.current)===null||dt===void 0?void 0:dt.selectionEnd)===0&&((bt=V.current)===null||bt===void 0?void 0:bt.selectionStart)===0){if(L(""),Y===d.ChatProxyService.AGENT_ID){$(""),U("");return}Y&&(G?$(""):U(""))}},Rt=(0,o.useCallback)(ot=>{fe(ot),ot>b?ge(!0):ge(!1)},[]),at=(0,o.useCallback)(()=>{q(!1),oe(!1)},[V]),At=(0,o.useCallback)(()=>{q(!0)},[V]),rt=(0,o.useCallback)(()=>{const ot=te;if(le(!ot),ot)fe(k),ge(!1);else{const bt=document.querySelector("#ai_chat_left_container").clientHeight-68-(B?32:0)-16;fe(bt)}},[te]);return o.default.createElement("div",{className:(0,r.default)(c.default.chat_input_container,_e?c.default.active:null)},X&&o.default.createElement("div",{ref:H},o.default.createElement(S,{onClick:Ue,bottom:ft,trigger:K,agentId:Y})),B&&o.default.createElement(w,{themeBlock:B}),Y&&o.default.createElement(T,{agentId:Y,command:G}),Se&&o.default.createElement("div",{className:c.default.expand_icon,onClick:()=>rt()},o.default.createElement(p.Popover,{id:"ai_chat_input_expand",title:(0,_.localize)(te?"aiNative.chat.expand.unfullscreen":"aiNative.chat.expand.fullescreen")},o.default.createElement(p.Icon,{className:(0,r.default)(te?(0,p.getIcon)("unfullscreen"):(0,p.getIcon)("fullescreen"))}))),o.default.createElement(m.InteractiveInput,{ref:V,placeholder:Ae,value:K,onKeyDown:ht,onBlur:at,onFocus:At,onValueChange:Te,disabled:M,className:c.default.input_wrapper,onSend:Ge,onStop:Fe,sendBtnClassName:Z,onHeightChange:Rt,height:ie,popoverPosition:p.PopoverPosition.left}),o.default.createElement("div",{className:c.default.chat_input_footer},ve.capabilities.supportsMCP&&o.default.createElement("div",{className:c.default.mcp_desc},o.default.createElement(p.Popover,{overlayClassName:c.default.popover_icon,id:"ai-chat-header-mcp-server",position:p.PopoverPosition.left,title:"MCP Server"},o.default.createElement(v.EnhanceIcon,{wrapperClassName:c.default.action_btn,className:"codicon codicon-radio-tower",onClick:he,tabIndex:0,role:"button",ariaLabel:"MCP Server"})),o.default.createElement(p.Popover,{overlayClassName:c.default.popover_icon,id:"ai-chat-header-tools",position:p.PopoverPosition.left,title:(0,_.localize)("aiNative.operate.tools.title")},o.default.createElement(v.EnhanceIcon,{wrapperClassName:c.default.action_btn,className:(0,p.getIcon)("menubar-tool"),onClick:Me,tabIndex:0,role:"button",ariaLabel:(0,_.localize)("aiNative.operate.tools.title")})))))})},56474:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChatMarkdown=void 0,t.postProcessCodeBlockLanguageId=a,t.fillInIncompleteTokens=h;const n=e(85608),r=n.__importDefault(e(53373)),o=n.__importStar(e(14041)),l=e(13719),p=e(84605),v=e(41869),m=e(90684),_=e(25834),s=n.__importDefault(e(6960)),g=I=>{const R=(0,o.useRef)(null),P=(0,v.useInjectable)(v.AppConfig),[O,M]=(0,o.useState)(),[k,F]=(0,o.useState)();return(0,o.useEffect)(()=>{var L,B;if(!R.current)return;const W=typeof I.markdown=="string"?new m.MarkdownString(I.markdown):I.markdown,j=new l.MarkdownReactRenderer;j.code=(H,K)=>{const Q=a(K);return o.default.createElement("div",{className:s.default.code},o.default.createElement(v.ConfigProvider,{value:P},o.default.createElement("div",{className:s.default.code_block},o.default.createElement("div",{className:(0,r.default)(s.default.code_language,"language-badge")},Q),o.default.createElement(_.CodeEditorWithHighlight,{input:H,language:Q,relationId:I.relationId||"",agentId:I.agentId,command:I.command,hideInsert:I.hideInsert}))))},j.codespan=H=>o.default.createElement("code",{className:s.default.code_inline},H);const $=new l.MarkdownReactParser({renderer:j}),G=(L=I.markedOptions)!==null&&L!==void 0?L:{};G.renderer=$;let Z=(B=W.value)!==null&&B!==void 0?B:"";Z.length>1e5&&(Z=`${Z.slice(0,1e5)}\u2026`);let Y,V;if(I.fillInIncompleteTokens){const H={...p.marked.defaults,...G},K=p.marked.lexer(Z,H),Q=h(K);Y=p.marked.parser(Q,H),V=Q}else{const H=p.marked.lexer(Z,p.marked.defaults);Y=p.marked.parser(H,G),V=H}F(V),M($)},[I.markdown]),o.default.createElement("div",{className:(0,r.default)(s.default.markdown_container,I.className),ref:R,tabIndex:0},k&&O&&O.parse(k))};t.ChatMarkdown=g;function a(I){if(!I)return"";const R=I.split(/[\s+|:|,|\{|\?]/,1);return R.length?R[0]:I}function h(I){let R,P;for(R=0;R<I.length;R++){const O=I[R];if(O.type==="paragraph"&&O.raw.match(/(\n|^)```/)){P=u(I.slice(R));break}if(O.type==="paragraph"&&O.raw.match(/(\n|^)\|/)){P=w(I.slice(R));break}if(O.type==="paragraph"&&R===I.length-1){const M=D(O);if(M){P=[M];break}}}if(P){const O=[...I.slice(0,R),...P];return O.links=I.links,O}return I}function u(I){const R=T(I);return p.marked.lexer(R+"\n```")}function d(I){return S(I,"`")}function E(I){return S(I,"*")}function f(I){return S(I,"_")}function c(I){return S(I,")")}function y(I){return S(I,"](about:blank)")}function b(I){return S(I,"**")}function A(I){return S(I,"__")}function S(I,R){const P=T(Array.isArray(I)?I:[I]);return p.marked.lexer(P+R)[0]}function w(I){const R=T(I),P=R.split(`
31566
+ `)[0].trim().toLowerCase(),Z=d.highLightLanguageSupport.find(Y=>Y===G)||"plaintext";return $=$.replace(/.*?\n/,""),$=$.trim(),o.default.createElement("div",{className:u.default.code_block},o.default.createElement("div",{className:u.default.code_language},(0,r.default)(Z)),o.default.createElement(t.CodeEditorWithHighlight,{input:$,language:G,relationId:S,agentId:T,command:D}))},j=(0,o.useMemo)(()=>{const $=A.split(M),G=[];return $.map((Z,Y)=>{Y%2===0?Z.split(O).map((V,H)=>{if(H%2===0){if(V.includes("```")){const K=V.split(k).filter(Boolean);if(K.length===2){G.push(K[0]),G.push(W(K[1]));return}}w?G.push(w(V)):G.push(V)}else{const K=V,Q=[...V.matchAll(F)],X=[...V.matchAll(L)];if(Q.length||X.length){let oe=0;const ie=[],fe=(_e,q)=>{_e.forEach((Se,ge)=>{if(Se.index!==void 0){const te=K.slice(oe,Se.index);te&&ie.push(o.default.createElement("span",{key:`${H}-${ge}-${q?"folder":"file"}`},te)),ie.push(U(Se[1],q,`${H}-tag-${ge}-${q?"folder":"file"}`)),oe=Se.index+Se[0].length}})};fe(Q,!1),fe(X,!0),ie.push(K.slice(oe)),G.push(...ie)}else G.push(o.default.createElement("span",{className:u.default.code_inline,key:H},V))}}):G.push(W(Z))}),G},[A,w]);return o.default.createElement(o.default.Fragment,null,j)},y=({text:A,renderText:S,relationId:w,agentId:T,labelService:D,commandService:I,workspaceService:R})=>o.default.createElement("div",{className:u.default.ai_chat_code_wrapper},o.default.createElement("div",{className:u.default.render_text},o.default.createElement(c,{content:A,labelService:D,renderText:S,relationId:w,agentId:T,commandService:I,workspaceService:R})));t.CodeBlockWrapper=y;const b=({text:A,images:S,relationId:w,agentId:T,command:D,labelService:I,workspaceService:R,commandService:P})=>{const O=(0,v.useInjectable)(s.ChatFeatureRegistryToken),[M,k]=(0,o.useState)(""),[F,L]=(0,o.useState)(A);return o.default.useEffect(()=>{const{value:B,nameWithSlash:U}=O.parseSlashCommand(A);if(U){k(U),L(B);return}else L(A)},[A,O]),o.default.createElement("div",{className:u.default.ai_chat_code_wrapper},S?.map(B=>o.default.createElement("div",{className:u.default.image_wrapper},o.default.createElement(p.Image,{src:B}))),o.default.createElement("div",{className:u.default.render_text},M&&o.default.createElement("div",{className:u.default.tag_wrapper},o.default.createElement("span",{className:u.default.tag},M)),T&&o.default.createElement("div",{className:u.default.tag,style:{marginRight:4}},"@",T),D&&o.default.createElement("div",{className:u.default.tag},"/ ",D),o.default.createElement(c,{content:F,labelService:I,relationId:w,agentId:T,command:D,workspaceService:R,commandService:P})))};t.CodeBlockWrapperInput=b},90103:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=e(85608),r=n.__importDefault(e(53373)),o=n.__importStar(e(14041)),l=e(97267),p=e(41869),v=e(89195),m=n.__importDefault(e(35553)),_=100,s=(0,o.memo)(({title:g,historyList:a,currentId:h,onNewChat:u,onHistoryItemSelect:d,onHistoryItemChange:E,onHistoryItemDelete:f,className:c})=>{const[y,b]=(0,o.useState)(null),[A,S]=(0,o.useState)(""),w=(0,o.useRef)(null),T=(0,o.useCallback)(W=>{S(W.target.value)},[A]),D=(0,o.useCallback)(W=>{d(W),S("")},[d,A]),I=(0,o.useCallback)(W=>{b({[W.id]:!0})},[y]),R=(0,o.useCallback)((W,j)=>{b({[W.id]:!1}),E(W,j)},[E,y]),P=(0,o.useCallback)(W=>{b({[W.id]:!1})},[y]),O=(0,o.useCallback)(()=>{u()},[u]);(0,o.useEffect)(()=>{var W;y&&((W=w.current)===null||W===void 0||W.focus({cursor:"end"}))},[y]);const M=(0,o.useCallback)(W=>{f(W)},[f]),k=(0,o.useCallback)(W=>{if(W<60*60*1e3){const $=Math.floor(W/6e4);return $===0?"Just now":`${$}m ago`}else{if(W<24*60*60*1e3)return`${Math.floor(W/36e5)}h ago`;if(W<7*24*60*60*1e3)return`${Math.floor(W/864e5)}d ago`;if(W<30*24*60*60*1e3)return`${Math.floor(W/6048e5)}w ago`;if(W<365*24*60*60*1e3)return`${Math.floor(W/2592e6)}mo ago`}return`${Math.floor(W/(365*24*60*60*1e3))}y ago`},[]),F=(0,o.useCallback)(W=>{const j=new Date,$=[];return W.forEach(G=>{const Z=new Date(G.updatedAt),Y=j.getTime()-Z.getTime(),V=k(Y),H=$.find(K=>K.key===V);H?H.items.push(G):$.push({key:V,items:[G]})}),$},[k]),L=(0,o.useCallback)(W=>o.default.createElement("div",{key:W.id,className:(0,r.default)(m.default.chat_history_item,W.id===h?m.default.chat_history_item_selected:""),onClick:()=>D(W)},o.default.createElement("div",{className:m.default.chat_history_item_content},W.loading?o.default.createElement(l.Loading,null):o.default.createElement(l.Icon,{icon:"message",style:{width:"16px",height:"16px",marginRight:4}}),y?.[W.id]?o.default.createElement(l.Input,{className:m.default.chat_history_item_title,defaultValue:W.title,ref:w,onPressEnter:j=>{R(W,j.target.value)},onBlur:()=>P(W)}):o.default.createElement("span",{id:`chat-history-item-title-${W.id}`,className:m.default.chat_history_item_title},W.title)),o.default.createElement("div",{className:m.default.chat_history_item_actions},o.default.createElement(v.EnhanceIcon,{className:(0,r.default)(m.default.chat_history_item_actions_delete,(0,l.getIcon)("delete")),onClick:j=>{j.preventDefault(),j.stopPropagation(),M(W)},ariaLabel:(0,p.localize)("aiNative.operate.chatHistory.delete")}))),[y,D,R,P,I,M,h,w]),B=(0,o.useCallback)(()=>{const W=a.slice(0,_).filter($=>$.title&&$.title.includes(A)),j=F(W);return o.default.createElement("div",null,o.default.createElement(l.Input,{placeholder:(0,p.localize)("aiNative.operate.chatHistory.searchPlaceholder"),className:m.default.chat_history_search,value:A,onChange:T}),o.default.createElement("div",{className:m.default.chat_history_list},j.map($=>o.default.createElement("div",{key:$.key,style:{padding:"4px"}},o.default.createElement("div",{className:m.default.chat_history_time},$.key),$.items.map(L)))))},[a,A,F,T,L]),U=(0,o.useCallback)(W=>W.parentElement,[]);return o.default.createElement("div",{className:(0,r.default)(m.default.chat_history_header,c)},o.default.createElement("div",{className:m.default.chat_history_header_title},o.default.createElement("span",null,g)),o.default.createElement("div",{className:m.default.chat_history_header_actions},o.default.createElement(l.Popover,{id:"chat-history-header-actions-history",content:B(),trigger:l.PopoverTriggerType.click,position:l.PopoverPosition.bottomRight,title:(0,p.localize)("aiNative.operate.chatHistory.title"),getPopupContainer:U},o.default.createElement("div",{className:m.default.chat_history_header_actions_history,title:(0,p.localize)("aiNative.operate.chatHistory.title")},o.default.createElement(v.EnhanceIcon,{className:(0,r.default)(m.default.chat_history_header_actions_history,"codicon codicon-history")}))),o.default.createElement(l.Popover,{id:"ai-chat-header-new",position:l.PopoverPosition.top,title:(0,p.localize)("aiNative.operate.newChat.title")},o.default.createElement(v.EnhanceIcon,{className:(0,r.default)(m.default.chat_history_header_actions_new,(0,l.getIcon)("plus")),onClick:O}))))});t.default=s},57987:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChatInput=void 0;const n=e(85608),r=n.__importDefault(e(53373)),o=n.__importStar(e(14041)),l=e(41869),p=e(81878),v=e(89195),m=e(83913),_=e(43718),s=e(92323),g=e(9447),a=e(72665),h=e(19413),u=e(42033),d=e(51081),E=e(27397),f=e(30703),c=n.__importDefault(e(6960)),y=8,b=68,A=({icon:D,name:I,description:R,agentId:P,command:O,selectedAgentId:M})=>{const k=(0,o.useMemo)(()=>!M&&P&&P!==d.ChatProxyService.AGENT_ID&&O?o.default.createElement("span",{className:c.default.agent_label},"@",P):null,[]);return o.default.createElement("div",{className:c.default.block},D&&o.default.createElement(v.EnhanceIcon,{className:D}),I&&o.default.createElement("span",{className:c.default.name},I),R&&o.default.createElement("span",{className:c.default.text},R),k)},S=({onClick:D,bottom:I,trigger:R,agentId:P})=>{const O=(0,l.useInjectable)(h.IChatAgentService),M=(0,l.useInjectable)(_.ChatAgentViewServiceToken),k=(0,o.useMemo)(()=>R===h.AT_SIGN_SYMBOL?M.getRenderAgents().map(L=>new u.ChatSlashCommandItemModel({icon:"",name:`${h.AT_SIGN_SYMBOL}${L.id} `,description:L.metadata.description},"",L.id)):O.getCommands().map(L=>new u.ChatSlashCommandItemModel({icon:"",name:`${h.SLASH_SYMBOL} ${L.name} `,description:L.description},L.name,L.agentId)).filter(L=>!P||L.agentId===P),[R,O]),F=(0,o.useCallback)((L,B,U)=>{D&&D(L||"",B,U)},[D]);return k.length===0?null:o.default.createElement("div",{className:c.default.instruction_options_container,style:{bottom:I+"px"}},o.default.createElement("div",{className:c.default.options},o.default.createElement("ul",null,k.map(({icon:L,name:B,nameWithSlash:U,description:W,agentId:j,command:$})=>o.default.createElement("li",{key:`${j||""}-${B}`,onMouseDown:()=>F(U,j,$)},o.default.createElement(A,{icon:L,name:B,description:W,agentId:j,command:$,selectedAgentId:P}))))))},w=({themeBlock:D})=>o.default.createElement("div",{className:c.default.theme_container},o.default.createElement("div",{className:c.default.theme_block},D)),T=({agentId:D,command:I})=>o.default.createElement("div",{className:c.default.theme_container},D!==d.ChatProxyService.AGENT_ID&&o.default.createElement("div",{className:c.default.theme_block,style:{marginRight:4}},"@",D),I&&o.default.createElement("div",{className:c.default.theme_block},h.SLASH_SYMBOL," ",I));t.ChatInput=o.default.forwardRef((D,I)=>{const{onSend:R,onValueChange:P,enableOptions:O=!1,disabled:M=!1,defaultHeight:k=32,autoFocus:F,setTheme:L,theme:B,setAgentId:U,agentId:W,defaultAgentId:j,setCommand:$,command:G,sendBtnClassName:Z}=D,Y=W||j,V=(0,o.useRef)(null),H=(0,o.useRef)(null),[K,Q]=(0,o.useState)(D.value||""),[X,oe]=(0,o.useState)(!1),[ie,fe]=(0,o.useState)(k),[_e,q]=(0,o.useState)(!1),[Se,ge]=(0,o.useState)(!1),[te,le]=(0,o.useState)(!1),[Ae,Re]=(0,o.useState)((0,_.localize)("aiNative.chat.input.placeholder.default")),Ee=(0,l.useInjectable)(h.IChatInternalService),Ce=(0,l.useInjectable)(a.IDialogService),ve=(0,l.useInjectable)(l.AINativeConfigService),me=(0,l.useInjectable)(h.TokenMCPServerProxyService),Pe=(0,l.useInjectable)(g.MonacoCommandRegistry),we=(0,l.useInjectable)(h.IChatAgentService),Ne=(0,l.useInjectable)(_.ChatFeatureRegistryToken),pe=(0,l.useInjectable)(s.CommandService),re=(0,l.useLatest)(Y),he=o.default.useCallback(()=>{pe.executeCommand(E.MCPConfigCommands.OPEN_MCP_CONFIG.id)},[pe]),Me=o.default.useCallback(async()=>{const ot=await me.getAllMCPTools();Ce.open({message:o.default.createElement(f.MCPToolsDialog,{tools:ot}),type:_.MessageType.Empty,buttons:[(0,_.localize)("dialog.file.close")]})},[me,Ce]);(0,o.useImperativeHandle)(I,()=>({setInputValue:ot=>{Q(ot),(0,_.runWhenIdle)(()=>{var dt;(dt=V.current)===null||dt===void 0||dt.focus()},120)}})),(0,o.useEffect)(()=>{D.value!==K&&Q(D.value||"")},[D.value]),(0,o.useEffect)(()=>{var ot;(ot=V.current)===null||ot===void 0||ot.focus();const dt=(0,_.localize)("aiNative.chat.input.placeholder.default"),bt=Ne.getSlashCommandHandler(G);if(bt&&bt.providerInputPlaceholder){const Wt=Pe.getActiveCodeEditor(),pn=bt.providerInputPlaceholder(K,Wt);Re(pn||dt)}else Re(dt)},[Ne,G]),(0,o.useEffect)(()=>{Ue(B||"",Y,G)},[B,Y,G]),(0,o.useEffect)(()=>{var ot;V&&F&&((ot=V.current)===null||ot===void 0||ot.focus())},[V,F,D.value]),(0,o.useEffect)(()=>{if(O&&((K===h.SLASH_SYMBOL||K===h.AT_SIGN_SYMBOL&&we.getAgents().length>0)&&!te?oe(!0):oe(!1)),K.startsWith(h.SLASH_SYMBOL)){const{value:ot,nameWithSlash:dt}=Ne.parseSlashCommand(K);if(dt){const bt=Ne.getSlashCommandBySlashName(dt);Q(ot),L(dt),bt&&(U(bt.agentId),$(bt.command));return}}if(we.getAgents().length){const ot=we.parseMessage(K,re.current);(ot.agentId||ot.command)&&(L(""),Q(ot.message),ot.agentId&&U(ot.agentId),ot.command&&$(ot.command))}},[V,K,O,Ne]),(0,o.useEffect)(()=>{K||(fe(k),ge(!1),le(!1))},[K]);const Te=(0,o.useCallback)(ot=>{Q(ot),P&&P(ot)},[]),Fe=(0,o.useCallback)(()=>{Ee.cancelRequest()},[]),Ge=(0,o.useCallback)(async()=>{if(M)return;const ot=(dt=K)=>{R(dt,[],Y,G),Q(""),L(""),U(""),$("")};if(G){const dt=Ne.getSlashCommandHandler(G);if(dt&&dt.execute){const bt=Pe.getActiveCodeEditor();await dt.execute(K,Wt=>ot(Wt),bt);return}}ot()},[R,K,Y,G,Ne]),Ue=(0,o.useCallback)((ot,dt,bt)=>{if(dt){if(oe(!1),L(""),U(dt),$(bt||""),V?.current){const Wt=V.current.value;(Wt===h.AT_SIGN_SYMBOL||bt&&Wt===h.SLASH_SYMBOL)&&Q(""),(0,_.runWhenIdle)(()=>V.current.focus())}}else if(ot){oe(!1),U(""),$("");const Wt=Ne.getSlashCommandBySlashName(ot);if(L(Wt?Wt.nameWithSlash:""),V&&V.current){const pn=V.current.value;pn.length===1&&pn.startsWith(h.SLASH_SYMBOL)&&Q(""),(0,_.runWhenIdle)(()=>V.current.focus())}}},[V,Ne]),ft=(0,o.useMemo)(()=>{const ot=y+ie;return te&&oe(!1),ot},[ie]),ht=ot=>{var dt,bt;if(ot.key==="Backspace"&&((dt=V.current)===null||dt===void 0?void 0:dt.selectionEnd)===0&&((bt=V.current)===null||bt===void 0?void 0:bt.selectionStart)===0){if(L(""),Y===d.ChatProxyService.AGENT_ID){$(""),U("");return}Y&&(G?$(""):U(""))}},Rt=(0,o.useCallback)(ot=>{fe(ot),ot>b?ge(!0):ge(!1)},[]),at=(0,o.useCallback)(()=>{q(!1),oe(!1)},[V]),At=(0,o.useCallback)(()=>{q(!0)},[V]),rt=(0,o.useCallback)(()=>{const ot=te;if(le(!ot),ot)fe(k),ge(!1);else{const bt=document.querySelector("#ai_chat_left_container").clientHeight-68-(B?32:0)-16;fe(bt)}},[te]);return o.default.createElement("div",{className:(0,r.default)(c.default.chat_input_container,_e?c.default.active:null)},X&&o.default.createElement("div",{ref:H},o.default.createElement(S,{onClick:Ue,bottom:ft,trigger:K,agentId:Y})),B&&o.default.createElement(w,{themeBlock:B}),Y&&o.default.createElement(T,{agentId:Y,command:G}),Se&&o.default.createElement("div",{className:c.default.expand_icon,onClick:()=>rt()},o.default.createElement(p.Popover,{id:"ai_chat_input_expand",title:(0,_.localize)(te?"aiNative.chat.expand.unfullscreen":"aiNative.chat.expand.fullescreen")},o.default.createElement(p.Icon,{className:(0,r.default)(te?(0,p.getIcon)("unfullscreen"):(0,p.getIcon)("fullescreen"))}))),o.default.createElement(m.InteractiveInput,{ref:V,placeholder:Ae,value:K,onKeyDown:ht,onBlur:at,onFocus:At,onValueChange:Te,disabled:M,className:c.default.input_wrapper,onSend:Ge,onStop:Fe,sendBtnClassName:Z,onHeightChange:Rt,height:ie,popoverPosition:p.PopoverPosition.left}),o.default.createElement("div",{className:c.default.chat_input_footer},ve.capabilities.supportsMCP&&o.default.createElement("div",{className:c.default.mcp_desc},o.default.createElement(p.Popover,{overlayClassName:c.default.popover_icon,id:"ai-chat-header-mcp-server",position:p.PopoverPosition.left,title:"MCP Server"},o.default.createElement(v.EnhanceIcon,{wrapperClassName:c.default.action_btn,className:"codicon codicon-radio-tower",onClick:he,tabIndex:0,role:"button",ariaLabel:"MCP Server"})),o.default.createElement(p.Popover,{overlayClassName:c.default.popover_icon,id:"ai-chat-header-tools",position:p.PopoverPosition.left,title:(0,_.localize)("aiNative.operate.tools.title")},o.default.createElement(v.EnhanceIcon,{wrapperClassName:c.default.action_btn,className:(0,p.getIcon)("menubar-tool"),onClick:Me,tabIndex:0,role:"button",ariaLabel:(0,_.localize)("aiNative.operate.tools.title")})))))})},56474:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ChatMarkdown=void 0,t.postProcessCodeBlockLanguageId=a,t.fillInIncompleteTokens=h;const n=e(85608),r=n.__importDefault(e(53373)),o=n.__importStar(e(14041)),l=e(13719),p=e(84605),v=e(41869),m=e(90684),_=e(25834),s=n.__importDefault(e(6960)),g=I=>{const R=(0,o.useRef)(null),P=(0,v.useInjectable)(v.AppConfig),[O,M]=(0,o.useState)(),[k,F]=(0,o.useState)();return(0,o.useEffect)(()=>{var L;if(!R.current)return;const U=typeof I.markdown=="string"?new m.MarkdownString(I.markdown):I.markdown,W=new l.MarkdownReactRenderer;W.code=(V,H)=>{const K=a(H);return o.default.createElement("div",{className:s.default.code},o.default.createElement(v.ConfigProvider,{value:P},o.default.createElement("div",{className:s.default.code_block},o.default.createElement("div",{className:(0,r.default)(s.default.code_language,"language-badge")},K),o.default.createElement(_.CodeEditorWithHighlight,{input:V,language:K,relationId:I.relationId||"",agentId:I.agentId,command:I.command,hideInsert:I.hideInsert}))))},W.codespan=V=>o.default.createElement("code",{className:s.default.code_inline},V);const j=new l.MarkdownReactParser({renderer:W}),$={...p.marked.defaults,...I.markedOptions,renderer:j,mangle:!1,headerIds:!1,smartypants:!1};let G=(L=U.value)!==null&&L!==void 0?L:"";G.length>1e5&&(G=`${G.slice(0,1e5)}\u2026`);let Z,Y;if(I.fillInIncompleteTokens){const V={...$},H=p.marked.lexer(G,V),K=h(H);Z=p.marked.parser(K,V),Y=K}else{const V=p.marked.lexer(G,$);Z=p.marked.parser(V,$),Y=V}F(Y),M(j)},[I.markdown]),o.default.createElement("div",{className:(0,r.default)(s.default.markdown_container,I.className),ref:R,tabIndex:0},k&&O&&O.parse(k))};t.ChatMarkdown=g;function a(I){if(!I)return"";const R=I.split(/[\s+|:|,|\{|\?]/,1);return R.length?R[0]:I}function h(I){let R,P;for(R=0;R<I.length;R++){const O=I[R];if(O.type==="paragraph"&&O.raw.match(/(\n|^)```/)){P=u(I.slice(R));break}if(O.type==="paragraph"&&O.raw.match(/(\n|^)\|/)){P=w(I.slice(R));break}if(O.type==="paragraph"&&R===I.length-1){const M=D(O);if(M){P=[M];break}}}if(P){const O=[...I.slice(0,R),...P];return O.links=I.links,O}return I}function u(I){const R=T(I);return p.marked.lexer(R+"\n```")}function d(I){return S(I,"`")}function E(I){return S(I,"*")}function f(I){return S(I,"_")}function c(I){return S(I,")")}function y(I){return S(I,"](about:blank)")}function b(I){return S(I,"**")}function A(I){return S(I,"__")}function S(I,R){const P=T(Array.isArray(I)?I:[I]);return p.marked.lexer(P+R)[0]}function w(I){const R=T(I),P=R.split(`
31567
31567
  `);let O=0,M=!1;for(let k=0;k<P.length;k++){const F=P[k].trim();if(typeof O>"u"&&F.match(/^\s*\|/)){const L=F.match(/(\|[^\|]+)(?=\||$)/g);L&&(O=L.length)}else if(typeof O=="number")if(F.match(/^\s*\|/)&&k===P.length-1)M=!0;else return}if(O>0){const k=M?P.slice(0,-1).join(`
31568
31568
  `):R,F=!!k.match(/\|\s*$/),L=k+(F?"":"|")+`
31569
31569
  |${" --- |".repeat(O)}`;return p.marked.lexer(L)}}function T(I){return I.reduce((R,P)=>R+P.raw,"")}function D(I){for(const{type:R,raw:P}of I.tokens){if(R!=="text")continue;const O=P.split(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/cli-engine",
3
- "version": "3.8.3-next-1747129752.0",
3
+ "version": "3.8.3-next-1747189218.0",
4
4
  "description": "Integration engine runtime for opensumi-cli and opensumi extension",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -26,14 +26,14 @@
26
26
  "dependencies": {
27
27
  "@koa/cors": "^5.0.0",
28
28
  "@opensumi/di": "^1.8.0",
29
- "@opensumi/ide-core-browser": "3.8.3-next-1747129752.0",
30
- "@opensumi/ide-core-common": "3.8.3-next-1747129752.0",
31
- "@opensumi/ide-core-node": "3.8.3-next-1747129752.0",
32
- "@opensumi/ide-express-file-server": "3.8.3-next-1747129752.0",
33
- "@opensumi/ide-extension": "3.8.3-next-1747129752.0",
34
- "@opensumi/ide-i18n": "3.8.3-next-1747129752.0",
35
- "@opensumi/ide-main-layout": "3.8.3-next-1747129752.0",
36
- "@opensumi/ide-startup": "3.8.3-next-1747129752.0",
29
+ "@opensumi/ide-core-browser": "3.8.3-next-1747189218.0",
30
+ "@opensumi/ide-core-common": "3.8.3-next-1747189218.0",
31
+ "@opensumi/ide-core-node": "3.8.3-next-1747189218.0",
32
+ "@opensumi/ide-express-file-server": "3.8.3-next-1747189218.0",
33
+ "@opensumi/ide-extension": "3.8.3-next-1747189218.0",
34
+ "@opensumi/ide-i18n": "3.8.3-next-1747189218.0",
35
+ "@opensumi/ide-main-layout": "3.8.3-next-1747189218.0",
36
+ "@opensumi/ide-startup": "3.8.3-next-1747189218.0",
37
37
  "chalk": "^4.1.2",
38
38
  "ejs": "^3.1.7",
39
39
  "ip": "^1.1.8",
@@ -72,5 +72,5 @@
72
72
  "webpack": "^5.90.0",
73
73
  "webpack-cli": "^5.1.4"
74
74
  },
75
- "gitHead": "1142c0bc3da3b334ce2cfd30794ff56e2ea919f1"
75
+ "gitHead": "17bc06552abfed074695d61bc340398c4dfc8aca"
76
76
  }