@opensumi/cli-engine 3.7.1-next-1739521933.0 → 3.7.1-next-1739756477.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.
- package/lib/browser/browser.js +4 -4
- package/package.json +10 -10
package/lib/browser/browser.js
CHANGED
|
@@ -28316,11 +28316,11 @@ ${S.slice(1).join(`
|
|
|
28316
28316
|
`).slice(d.startPosition.row);return`${g[0].slice(d.startPosition.column)}${g.length>1?`
|
|
28317
28317
|
${g.slice(1).join(`
|
|
28318
28318
|
`)}`:""}`}}return c.text}findTypeIdentifier(c){let h=c;for(;h;){if(h.type==="type_identifier")return h.text;const u=h.child(1);if(!u)break;h=u}return""}async extractImportPaths(c){var h;const u=[],d=await this.parser.parse(c),v=d?.rootNode,g=[],a=[];if(v)for(let b=0;b<v?.childCount;b++){const y=v.child(b);if(y?.type==="import_statement")g.push(y);else if(y?.type==="type_annotation"){const S=y.child(1);S&&a.push(S.text)}else if(y?.type==="lexical_declaration"){const S=this.findTypeIdentifier(y);S&&a.push(S)}}for(const b of g)if(a.some(y=>b.text.includes(y))){let y=(h=b.child(3))===null||h===void 0?void 0:h.text;(y?.includes("'")||y?.includes('"'))&&(y=y.slice(1,-1)),y&&u.push(y)}return u}async extractInterfaceOrTypeCode(c){var h;const u=[];if(this.language==="typescript"){await this.parserLoaded.promise;const d=(h=this.parser)===null||h===void 0?void 0:h.parse(c),v=d?.rootNode;if(v)for(let g=0;g<v?.childCount;g++){const a=v.child(g);if(a?.type==="export_statement"){const b=a.child(1);(b?.type==="interface_declaration"||b?.type==="type_alias_declaration")&&u.push(b.text)}else(a?.type==="interface_declaration"||a?.type==="type_alias_declaration")&&u.push(a.text)}}return u}async findSyntaxErrorCount(c){var h;await this.parserLoaded.promise;const u=(h=this.parser)===null||h===void 0?void 0:h.parse(c),d=u?.rootNode;if(!d)return 0;let v=0;const g=a=>{(a.type==="function_declaration"||a.type==="class_declaration"||a.type==="variable_declarator"||a.type==="statement_block"||a.type==="expression_statement")&&(a.hasError||a.isMissing||a.type==="ERROR")&&v++;for(let y=0;y<a.childCount;y++){const S=a.child(y);S&&g(S)}};return g(d),v}async findNearestCodeBlockWithPosition(c,h){const u=await this.parser.parse(c);if(u){const{rootNode:d}=u,v=d.namedDescendantForIndex(h),g=this.findContainingCodeBlockWithPosition(v,h);if(!g)return null;let b=c.split(`
|
|
28319
|
-
`).slice(0,g.startPosition.row).reduce((y,S)=>y+S.length,0);return b+=g.startPosition.row,b+=g.startPosition.column,{codeBlock:g.text,range:{start:{line:g.startPosition.row,character:0},end:{line:g.endPosition.row,character:1/0}},offset:b,type:g.startPosition.row===g.endPosition.row?m.NearestCodeBlockType.Line:m.NearestCodeBlockType.Block}}return null}dispose(){this.parser.delete(),this.lruCache.clear()}};t.LanguageParser=s,n.__decorate([(0,o.Autowired)(_.WasmModuleManager),n.__metadata("design:type",_.WasmModuleManager)],s.prototype,"wasmModuleManager",void 0),n.__decorate([(0,o.Autowired)(p.TreeSitterLanguageFacts),n.__metadata("design:type",p.TreeSitterLanguageFacts)],s.prototype,"languageFacts",void 0),t.LanguageParser=s=n.__decorate([(0,o.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[String])],s)},85679:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LanguageParserService=void 0;const n=e(85608),r=e(76003),o=e(3073),l=e(22486);let m=class{constructor(){this.pool=new Map}createParser(p){const _=l.parserNameMap[p];if(_)return this.pool.has(_)||this.pool.set(_,this.injector.get(o.LanguageParser,[_])),this.pool.get(_)}dispose(){this.pool.forEach(p=>p.dispose()),this.pool.clear()}};t.LanguageParserService=m,n.__decorate([(0,r.Autowired)(r.INJECTOR_TOKEN),n.__metadata("design:type",r.Injector)],m.prototype,"injector",void 0),t.LanguageParserService=m=n.__decorate([(0,r.Injectable)()],m)},53374:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toMonacoRange=e;function e(n){return{startLineNumber:n.startPosition.row+1,startColumn:n.startPosition.column+1,endLineNumber:n.endPosition.row+1,endColumn:n.endPosition.column+1}}},19584:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GolangLanguageFacts=void 0;const e=["function_declaration","method_declaration","block","if_statement","else_statement","switch_statement","case_clause","for_statement","range_clause","type_switch_statement","type_case_clause","comm_clause","select_statement","go_statement","defer_statement"],n=new Set(e);class r{constructor(){this.name="go",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return n}isCodeBlock(l){return n.has(l)}}t.GolangLanguageFacts=r},22486:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TreeSitterLanguageFacts=t.knownLanguageFacts=void 0;const n=e(85608);n.__exportStar(e(17973),t);const r=e(76003),o=e(19584),l=e(44606),m=e(82381),E=e(41486),p=e(98588),_=e(96436),s=e(2349),f=e(78542),c=new Set;t.knownLanguageFacts=[o.GolangLanguageFacts,l.JavaLanguageFacts,m.JavaScriptLanguageFacts,E.JavaScriptReactLanguageFacts,p.PythonLanguageFacts,_.RustLanguageFacts,s.TypeScriptLanguageFacts,f.TypeScriptReactLanguageFacts];let h=class{constructor(){this.langs=new Map,t.knownLanguageFacts.forEach(d=>{const v=new d;this.langs.set(v.name,v)})}isCodeBlock(d,v){const g=this.langs.get(d);return g&&g.isCodeBlock?g.isCodeBlock(v):!1}isFunctionCodeBlock(d,v){const g=this.langs.get(d);return g&&g.isFunctionCodeBlocks?g.isFunctionCodeBlocks(v):!1}provideFunctionInfo(d,v){const g=this.langs.get(d);return g&&g.provideFunctionInfo?g.provideFunctionInfo(v):null}getCodeBlockTypes(d){const v=this.langs.get(d);return v?v.provideCodeBlocks():c}};t.TreeSitterLanguageFacts=h,t.TreeSitterLanguageFacts=h=n.__decorate([(0,r.Injectable)(),n.__metadata("design:paramtypes",[])],h)},44606:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaLanguageFacts=void 0;const e=["compilation_unit","class_declaration","interface_declaration","enum_declaration","method_declaration","constructor_declaration","block","static_initializer","instance_initializer","if_statement","switch_statement","while_statement","do_statement","for_statement","enhanced_for_statement","try_statement","catch_clause","finally_clause"],n=new Set(["method_declaration","constructor_declaration"]),r=new Set(e);class o{constructor(){this.name="java",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return r}isCodeBlock(m){return r.has(m)}isFunctionCodeBlocks(m){return n.has(m)}}t.JavaLanguageFacts=o},82381:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptLanguageFacts=t.functionBlockCodeTypes=t.javascriptBlockCodeTypes=void 0;const n=e(53374);t.javascriptBlockCodeTypes=["function","function_declaration","function_expression","arrow_function","class_declaration","method_definition","if_statement","switch_case","while_statement","do_statement","for_statement","for_in_statement","try_statement","catch_clause","block","export_statement","lexical_declaration"],t.functionBlockCodeTypes=["function","function_declaration","function_expression","arrow_function","method_definition"];const r=new Set(t.functionBlockCodeTypes),o=new Set(t.javascriptBlockCodeTypes);class l{constructor(){this.name="javascript",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return o}isCodeBlock(E){return o.has(E)}isFunctionCodeBlocks(E){return r.has(E)}provideFunctionInfo(E){var p,_,s;switch(E.type){case"function_declaration":case"function_expression":return{infoCategory:"function",type:E.type,name:((p=E.firstNamedChild)===null||p===void 0?void 0:p.text)||"",signatures:E.children.filter(f=>f.type==="parameter").map(f=>{var c;return((c=f.firstChild)===null||c===void 0?void 0:c.text)||""}),range:(0,n.toMonacoRange)(E)};case"arrow_function":{const f=E.parent;return f&&f.type==="variable_declarator"&&f.parent&&(f.parent.type==="lexical_declaration"||f.parent.type==="export_statement"||f.parent.type==="variable_declaration")?{infoCategory:"function",type:E.type,name:((_=f.firstChild)===null||_===void 0?void 0:_.text)||"",signatures:E.children.filter(c=>c.type==="parameter").map(c=>{var h;return((h=c.firstChild)===null||h===void 0?void 0:h.text)||""}),range:(0,n.toMonacoRange)(f.parent)}:null}case"method_definition":return{infoCategory:"function",type:E.type,name:((s=E.firstNamedChild)===null||s===void 0?void 0:s.text)||"",signatures:E.children.filter(f=>f.type==="parameter").map(f=>{var c;return((c=f.firstChild)===null||c===void 0?void 0:c.text)||""}),range:(0,n.toMonacoRange)(E)}}return null}}t.JavaScriptLanguageFacts=l},41486:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptReactLanguageFacts=t.javascriptreactBlockCodeTypes=void 0;const n=e(82381);t.javascriptreactBlockCodeTypes=[...n.javascriptBlockCodeTypes,"jsx_element","jsx_self_closing_element","jsx_expression","jsx_fragment"];const r=new Set(t.javascriptreactBlockCodeTypes);class o{constructor(){this.name="jsx",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return r}isCodeBlock(m){return r.has(m)}}t.JavaScriptReactLanguageFacts=o},98588:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PythonLanguageFacts=t.pythonBlockCodeTypes=void 0,t.pythonBlockCodeTypes=["function_definition","class_definition","compound_statement","if_statement","elif_clause","else_clause","for_statement","while_statement","try_statement","except_clause","with_statement","decorated_definition"];const e=new Set(t.pythonBlockCodeTypes);class n{constructor(){this.name="python",this.listCommentStyle="# ",this.blockCommentStyle={start:"'''",end:"'''",linePrefix:""}}provideCodeBlocks(){return e}isCodeBlock(o){return e.has(o)}}t.PythonLanguageFacts=n},96436:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RustLanguageFacts=t.rustBlockCodeTypes=void 0,t.rustBlockCodeTypes=["function_item","impl_item","trait_item","block","if_expression","match_expression","while_expression","loop_expression","for_expression","closure_expression","struct_item","enum_item","union_item","mod_item"];const e=new Set(t.rustBlockCodeTypes);class n{constructor(){this.name="rust",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return e}isCodeBlock(o){return e.has(o)}}t.RustLanguageFacts=n},17973:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parserIdentifierMap=t.parserNameMap=void 0;const r=e(85608).__importDefault(e(19891)),o={typescript:"typescript",typescriptreact:"tsx",javascript:"javascript",javascriptreact:"jsx",rust:"rust",python:"python",java:"java",go:"go"};t.parserNameMap=o,t.parserIdentifierMap=(0,r.default)(t.parserNameMap)},2349:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TypeScriptLanguageFacts=t.typescriptBlockTypes=void 0,t.typescriptBlockTypes=["function","function_declaration","function_expression","arrow_function","class_declaration","interface_declaration","method_definition","method_signature","enum_declaration","type_alias_declaration","lexical_declaration","if_statement","switch_case","while_statement","do_statement","for_statement","for_in_statement","for_of_statement","try_statement","catch_clause","block","module","public_field_definition","private_field_definition","export_statement"];const e=new Set(t.typescriptBlockTypes);class n{constructor(){this.name="typescript",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return e}isCodeBlock(o){return e.has(o)}}t.TypeScriptLanguageFacts=n},78542:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TypeScriptReactLanguageFacts=t.typescriptreactBlockTypes=void 0;const n=e(2349);t.typescriptreactBlockTypes=[...n.typescriptBlockTypes,"jsx_element","jsx_self_closing_element","jsx_expression","jsx_fragment"];const r=new Set(t.typescriptreactBlockTypes);class o{constructor(){this.name="tsx",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return r}isCodeBlock(m){return r.has(m)}}t.TypeScriptReactLanguageFacts=o},67045:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WasmModuleManager=void 0;const n=e(85608),r=n.__importDefault(e(13833)),o=e(76003),l=e(6858),m=e(70392);let E=class{async resolveResourceUri(){const _=await this.rendererRuntime.provideResourceUri(l.EKnownResources.TreeSitterWasmDirectory);this.resolvedResourceUriDeferred.resolve(_)}constructor(){this.resolvedResourceUriDeferred=new m.Deferred,this.cachedRuntime=new Map,this.parserInitialized=!1,this.resolveResourceUri()}async initParser(){const _=await this.resolvedResourceUriDeferred.promise;let s;return _.endsWith("/")?s=`${_}tree-sitter.wasm`:s=`${_}/tree-sitter.wasm`,this.parserInitialized||(await r.default.init({locateFile:()=>s}),this.parserInitialized=!0),new r.default}async loadLanguage(_){if(!this.cachedRuntime.has(_)){const s=new m.Deferred;this.cachedRuntime.set(_,s);const f=await this.resolvedResourceUriDeferred.promise;let c;f.endsWith("/")?c=`${f}tree-sitter-${_}.wasm`:c=`${f}/tree-sitter-${_}.wasm`,fetch(c).then(h=>h.arrayBuffer()).then(h=>{s.resolve(h)})}return this.cachedRuntime.get(_).promise}};t.WasmModuleManager=E,n.__decorate([(0,o.Autowired)(l.RendererRuntime),n.__metadata("design:type",l.RendererRuntime)],E.prototype,"rendererRuntime",void 0),t.WasmModuleManager=E=n.__decorate([(0,o.Injectable)(),n.__metadata("design:paramtypes",[])],E)},4972:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AIRightTabRenderer=t.AILeftTabRenderer=t.AIChatTabRendererWithTab=t.AIChatTabRenderer=void 0;const n=e(85608),r=n.__importDefault(e(53373)),o=n.__importStar(e(14041)),l=e(41869),m=e(89195),E=e(1149),p=e(43718),_=e(11090),s=e(63067),f=e(46245),c=e(66368),h=e(19951),u=e(752),d=e(19413),v=n.__importDefault(e(87708)),g=()=>{const{side:T}=o.default.useContext(h.TabbarConfig),w=(0,l.useInjectable)(u.TabbarServiceFactory)(T);return(0,o.useEffect)(()=>{w.setIsLatter(!0)},[w]),o.default.createElement("div",{style:{width:0}},o.default.createElement(f.TabbarViewBase,{tabSize:0,MoreTabView:f.IconElipses,TabView:f.IconTabView,barSize:0,panelBorderSize:1}))},a=({className:T,components:w})=>o.default.createElement(h.TabRendererBase,{side:d.AI_CHAT_VIEW_ID,direction:"left-to-right",id:v.default.ai_chat_panel,className:(0,r.default)(T,`${d.AI_CHAT_VIEW_ID}-slot`),components:w,TabbarView:()=>o.default.createElement(g,null),TabpanelView:()=>o.default.createElement(c.BaseTabPanelView,{PanelView:c.ContainerView,PanelViewProps:{className:v.default.ai_chat_view_container}})});t.AIChatTabRenderer=a;const b=({className:T,components:w})=>o.default.createElement(h.TabRendererBase,{side:d.AI_CHAT_VIEW_ID,direction:"right-to-left",id:v.default.ai_chat_panel,className:(0,r.default)(T,`${d.AI_CHAT_VIEW_ID}-slot`,"design_right_slot"),components:w,TabbarView:()=>o.default.createElement(f.ChatTabbarRenderer2,null),TabpanelView:()=>o.default.createElement(c.BaseTabPanelView,{PanelView:c.ContainerView,PanelViewProps:{className:v.default.ai_chat_view_container}})});t.AIChatTabRendererWithTab=b;const y=({className:T,components:w})=>o.default.createElement(_.DesignLeftTabRenderer,{className:T,components:w,tabbarView:S});t.AILeftTabRenderer=y;const S=()=>{const T=(0,l.useInjectable)(s.IMainLayoutService),w=(0,l.useInjectable)(u.TabbarServiceFactory)(l.SlotLocation.right),D=(0,l.useAutorun)(w.currentContainerId),I=o.default.useMemo(()=>T.getExtraMenu(),[T]),[O]=(0,l.useContextMenus)(I),P=(0,o.useCallback)(({renderContainers:R})=>{const M=w.visibleContainers.filter(k=>{var B;return!(!((B=k.options)===null||B===void 0)&&B.hideTab)});return o.default.createElement(o.default.Fragment,null,M.length>0&&o.default.createElement(m.HorizontalVertical,{margin:"8px auto 0px",width:"60%"}),M.map(k=>R(k,w,D)))},[D,w]);return o.default.createElement(f.LeftTabbarRenderer,{renderOtherVisibleContainers:P,isRenderExtraTopMenus:!1,renderExtraMenus:o.default.createElement("div",{className:v.default.extra_bottom_icon_container},O.length>=0?O.map(R=>o.default.createElement(m.EnhanceIconWithCtxMenu,{key:R.id,id:R.id,wrapperClassName:v.default.extra_bottom_icon,iconClass:R.icon,menuNodes:R.children,skew:{x:-8,y:-4}})):null)})},A=({className:T,components:w})=>{const D=(0,l.useInjectable)(u.TabbarServiceFactory)(l.SlotLocation.right),I=(0,l.useInjectable)(E.DesignLayoutConfig),O=(0,o.useCallback)(()=>{D.updateCurrentContainerId("")},[]),P=(0,o.useCallback)(M=>{const{component:k}=M,{options:B}=k;return o.default.createElement(c.ContainerView,{...M,renderContainerWrap:({children:x})=>o.default.createElement("div",{className:v.default.right_slot_container_wrap},o.default.createElement("div",{className:v.default.header},o.default.createElement("span",{className:v.default.title},B&&B.title),o.default.createElement("div",{className:v.default.side},o.default.createElement(m.EnhancePopover,{id:"ai_right_panel_header_close",title:(0,p.localize)("editor.title.context.close")},o.default.createElement(m.EnhanceIcon,{icon:"close",onClick:O})))),o.default.createElement("div",{className:v.default.container},x))})},[]),R=(0,o.useMemo)(()=>I.useMergeRightWithLeftPanel?v.default.right_tab_renderer:"",[I]);return o.default.createElement(_.DesignRightTabRenderer,{components:w,className:R,tabbarView:()=>o.default.createElement(f.RightTabbarRenderer,{barSize:0,style:{width:0}}),tabpanelView:()=>o.default.createElement(c.BaseTabPanelView,{PanelView:P})})};t.AIRightTabRenderer=A},82983:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AIChatLogoAvatar=void 0;const n=e(85608),r=n.__importDefault(e(14041)),o=e(41869),l=e(89195),m=e(63067),E=e(19413),p=n.__importDefault(e(88473)),_=()=>{const s=(0,o.useInjectable)(m.IMainLayoutService),f=r.default.useCallback(()=>{s.toggleSlot(E.AI_CHAT_VIEW_ID)},[s]);return r.default.createElement("div",{className:p.default.ai_switch,onClick:f},r.default.createElement(l.AILogoAvatar,{iconClassName:p.default.avatar_icon_large}))};t.AIChatLogoAvatar=_},53617:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EnhanceDecorationsCollection=t.DeltaDecorations=void 0;const n=e(43718);class r{get isHidden(){return this._hidden}get codeEditor(){return this.metadata.codeEditor}get deltaData(){return this.metadata.deltaData}get id(){return this.metadata.id}get decorationId(){return this._decorationId}get editorDecoration(){return this.metadata.editorDecoration}get group(){return this._group}constructor(m){this.metadata=m,this._hidden=!1;const{editorDecoration:E,deltaData:p,isHidden:_,group:s}=m;(0,n.isUndefined)(p.length)?this.length=E.range.endLineNumber-E.range.startLineNumber:this.length=p.length,this.range=E.range,this.options=E.options,this.resumeRange=this.range,this._hidden=!!_,this._hidden&&this.hide(),(0,n.isDefined)(s)&&this.setGroup(s)}setGroup(m){this._group=m}setRange(m){this.range=m}getRange(){return this.range}dispose(){var m,E;this.hide(),(E=(m=this.deltaData).dispose)===null||E===void 0||E.call(m)}show(){this.codeEditor.changeDecorations(m=>{this._decorationId=m.addDecoration(this.range,this.options)})}hide(){this.resumeRange=this.range,this._hidden=!0,this._decorationId&&this.codeEditor.changeDecorations(m=>{m.removeDecoration(this._decorationId)})}resume(){this._hidden&&(this._hidden=!1,this.codeEditor.changeDecorations(m=>{this._decorationId=m.addDecoration(this.resumeRange,this.options)}))}}t.DeltaDecorations=r;class o extends n.Disposable{get model(){return this.codeEditor.getModel()}constructor(m){super(),this.codeEditor=m,this.deltaDecorations=[],this._onDidDecorationsChange=this.registerDispose(new n.Emitter),this.onDidDecorationsChange=this._onDidDecorationsChange.event,this.addDispose(this.codeEditor.onDidContentSizeChange(E=>{const{contentHeightChanged:p}=E;p&&this.flush()}))}flush(){this.deltaDecorations=this.deltaDecorations.map(m=>{const{decorationId:E,editorDecoration:{range:p}}=m,_=this.model.getDecorationRange(E);return m.setRange(_??p),m}),this._onDidDecorationsChange.fire(this.deltaDecorations)}delete(m){this.deltaDecorations=this.deltaDecorations.filter(E=>E.id!==m)}createDecorations(m){return new r(m)}set(m){this.clear(),this.deltaDecorations=m.map(E=>{const p=(0,n.uuid)(6),_=this.createDecorations({id:p,editorDecoration:E,codeEditor:this.codeEditor,isHidden:E.isHidden,group:E.group,deltaData:{dispose:()=>this.delete(p),length:E.length}});return _.show(),_})}getDecorations(){return this.deltaDecorations}getDecorationByGroup(m){return this.deltaDecorations.find(E=>E.group===m)}getDecorationByLineNumber(m){return this.deltaDecorations.find(E=>E.getRange().startLineNumber===m)}clear(){this.deltaDecorations.map(m=>m.dispose()),this.deltaDecorations=[]}}t.EnhanceDecorationsCollection=o},44260:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MsgHistoryManager=void 0;const n=e(85608),r=e(76003),o=e(43718);let l=class extends o.Disposable{constructor(){super(...arguments),this.messageMap=new Map,this._onMessageChange=new o.Emitter,this.onMessageChange=this._onMessageChange.event}dispose(){this.clearMessages(),super.dispose()}clearMessages(){this.messageMap.clear()}doAddMessage(E){const p=(0,o.uuid)(6),_=this.messageMap.size,s={...E,id:p,order:_,type:E.type||"string"};return this.messageMap.set(p,s),this._onMessageChange.fire(this.getMessages()),p}getMessages(){return Array.from(this.messageMap.values()).sort((E,p)=>E.order-p.order)}addUserMessage(E){return this.doAddMessage({...E,role:1})}addAssistantMessage(E){return this.doAddMessage({...E,role:2})}updateAssistantMessage(E,p){if(!this.messageMap.has(E))return;const _=this.messageMap.get(E);this.messageMap.set(E,{..._,content:p.content})}};t.MsgHistoryManager=l,t.MsgHistoryManager=l=n.__decorate([(0,r.Injectable)({multiple:!1})],l)},3841:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AINativePreferencesContribution=void 0;const n=e(85608),r=e(41869),o=e(83854);let l=class{constructor(){this.schema=o.aiNativePreferenceSchema}};t.AINativePreferencesContribution=l,t.AINativePreferencesContribution=l=n.__decorate([(0,r.Domain)(r.PreferenceContribution)],l)},83854:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.aiNativePreferenceSchema=t.EInlineDiffPreviewMode=void 0;const n=e(41869),r=e(43718);var o;(function(l){l.inlineLive="inlineLive",l.sideBySide="sideBySide"})(o||(t.EInlineDiffPreviewMode=o={})),t.aiNativePreferenceSchema={properties:{[n.AINativeSettingSectionsId.InlineDiffPreviewMode]:{type:"string",enum:[o.inlineLive,o.sideBySide],enumDescriptions:[(0,r.localize)("preference.ai.native.inlineDiff.preview.mode.inlineLive"),(0,r.localize)("preference.ai.native.inlineDiff.preview.mode.sideBySide")],default:o.inlineLive},[n.AINativeSettingSectionsId.InlineChatAutoVisible]:{type:"boolean",default:!0},[n.AINativeSettingSectionsId.InlineChatCodeActionEnabled]:{type:"boolean",default:!0},[n.AINativeSettingSectionsId.InterfaceQuickNavigationEnabled]:{type:"boolean",default:!0},[n.AINativeSettingSectionsId.ChatVisibleType]:{type:"string",enum:["never","always","default"],default:"default"},[n.AINativeSettingSectionsId.IntelligentCompletionsPromptEngineeringEnabled]:{type:"boolean",default:!0},[n.AINativeSettingSectionsId.IntelligentCompletionsDebounceTime]:{type:"number",default:150},[n.AINativeSettingSectionsId.IntelligentCompletionsCacheEnabled]:{type:"boolean",default:!0},[n.AINativeSettingSectionsId.IntelligentCompletionsAlwaysVisible]:{type:"boolean",default:!1},[n.AINativeSettingSectionsId.CodeEditsLintErrors]:{type:"boolean",default:!1},[n.AINativeSettingSectionsId.CodeEditsLineChange]:{type:"boolean",default:!1},[n.AINativeSettingSectionsId.CodeEditsTyping]:{type:"boolean",default:!1}}}},77633:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AINativeCoreContribution=t.TerminalSuggestionReadableStream=t.ERunStrategy=void 0;const n=e(93062);var r;(function(l){l.EXECUTE="EXECUTE",l.PREVIEW="PREVIEW"})(r||(t.ERunStrategy=r={}));class o extends n.SumiReadableStream{static create(){return new o}}t.TerminalSuggestionReadableStream=o,t.AINativeCoreContribution=Symbol("AINativeCoreContribution")},24522:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ttPolicy=t.renderLines=void 0;const n=e(85608),r=e(55405),o=n.__importStar(e(98236)),l=e(27357),m=e(31324),E=e(33892),p=e(24315),_=(s,f,c,h)=>{const u=h.get(m.EditorOption.disableMonospaceOptimizations),d=h.get(m.EditorOption.stopRenderingLineAfter),v="none",g=h.get(m.EditorOption.renderControlCharacters),a=h.get(m.EditorOption.fontLigatures),b=h.get(m.EditorOption.fontInfo),y=h.get(m.EditorOption.lineHeight),S=new E.StringBuilder(1e4);S.appendString('<div class="suggest-preview-text">');for(let w=0,D=c.length;w<D;w++){const I=c[w],O=I.content;S.appendString('<div class="view-line'),S.appendString('" style="top:'),S.appendString(String(w*y)),S.appendString('px;width:1000000px;">');const P=o.isBasicASCII(O),R=o.containsRTL(O);(0,p.renderViewLine)(new p.RenderLineInput(b.isMonospace&&!u,b.canUseHalfwidthRightwardsArrow,O,!1,P,R,0,I.lineTokens,I.decorations,f,0,b.spaceWidth,b.middotWidth,b.wsmiddotWidth,d,v,g,a!==m.EditorFontLigatures.OFF,null),S),S.appendString("</div>")}S.appendString("</div>"),(0,l.applyFontInfo)(s,b);const A=S.build(),T=t.ttPolicy?t.ttPolicy.createHTML(A):A;s.innerHTML=T};t.renderLines=_,t.ttPolicy=(0,r.createTrustedTypesPolicy)("editorGhostText",{createHTML:s=>s})},90614:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineResultAction=void 0;const r=e(85608).__importStar(e(14041)),o=e(66205),l=e(89195),m=e(43718),E=e(31031),p=({onResultClick:_})=>{const s=(0,r.useMemo)(()=>[{icon:"check",text:(0,m.localize)("aiNative.inline.chat.operate.check.title"),btnType:"default",onClick:()=>_(E.EResultKind.ACCEPT)},{icon:"discard",text:(0,m.localize)("aiNative.operate.discard.title"),onClick:()=>_(E.EResultKind.DISCARD)},{icon:"afresh",text:(0,m.localize)("aiNative.operate.afresh.title"),onClick:()=>_(E.EResultKind.REGENERATE)}],[_]);return r.default.createElement(o.ContentWidgetContainerPanel,{style:{transform:"translateY(4px)"}},r.default.createElement(l.AIInlineResult,{iconItems:s}))};t.InlineResultAction=p},40111:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineChatController=void 0;const n=e(43718),r=e(93062),o=e(98864);class l{static is(E){return E instanceof l&&typeof E.mountReadable=="function"}constructor(E){this.options=E,this._onData=new n.Emitter,this.onData=this._onData.event,this._onEnd=new n.Emitter,this.onEnd=this._onEnd.event,this._onAbort=new n.Emitter,this.onAbort=this._onAbort.event,this._onError=new n.Emitter,this.onError=this._onError.event,this._stream=null,this._listened=!1}calculateCodeBlocks(E){var p;return!((p=this.options)===null||p===void 0)&&p.enableCodeblockRender?(0,o.extractCodeBlocks)(E):E}mountReadable(E){this._stream=E}get isListened(){return this._listened}listen(){if(this._listened)return;if(!this._stream)throw new Error("No Stream mounted");this._listened=!0;const E=new n.ReplyResponse("");let p="";(0,r.listenReadable)(this._stream,{onData:_=>{p+=_.content;const s=this.calculateCodeBlocks(p);E.updateMessage(s),this._onData.fire(E)},onEnd:()=>{this._onEnd.fire()},onError:_=>{n.AbortError.is(_)?this._onAbort.fire():this._onError.fire(new n.ErrorResponse(_))}})}}t.InlineChatController=l},51221:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineChatEditorController=void 0;const n=e(41869),r=e(43718),o=e(66482),l=e(54414),m=e(52902),E=e(77659),p=e(99906),_=e(89132),s=e(38890),f=e(40111),c=e(31031),h=e(26664);class u extends p.BaseAIMonacoEditorController{constructor(){super(...arguments),this.aiInlineChatDisposable=new r.Disposable,this.aiInlineChatOperationDisposable=new r.Disposable,this.inlineChatInUsing=!1}static get(v){return v.getContribution(u.ID)}get aiNativeConfigService(){return this.injector.get(n.AINativeConfigService)}get aiInlineChatService(){return this.injector.get(n.IAIInlineChatService)}get inlineChatFeatureRegistry(){return this.injector.get(r.InlineChatFeatureRegistryToken)}get preferenceService(){return this.injector.get(n.PreferenceService)}get aiReporter(){return this.injector.get(r.IAIReporter)}get workbenchEditorService(){return this.injector.get(l.WorkbenchEditorService)}get codeActionService(){return this.injector.get(_.CodeActionService)}get logger(){return this.injector.get(r.ILogger)}get contextKeyService(){return this.injector.get(n.IContextKeyService)}mount(){if(this.aiNativeContextKey=this.injector.get(E.AINativeContextKey,[this.monacoEditor.contextKeyService]),this.inlineDiffController=s.InlineDiffController.get(this.monacoEditor),!this.monacoEditor)return this.featureDisposable;this.featureDisposable.addDispose(this.aiInlineChatService.onInlineChatVisible(a=>{a?this.showInlineChat(this.monacoEditor):(this.cancelToken(),this.disposeAllWidget())})),this.featureDisposable.addDispose(this.codeActionService.onCodeActionRun(({id:a,range:b})=>{const y=this.workbenchEditorService.currentEditor;y?.getId()===this.monacoEditor.getId()&&(this.monacoEditor.setSelection(b),this.showInlineChat(this.monacoEditor),this.aiInlineContentWidget&&this.aiInlineContentWidget.clickActionId(a,"codeAction"))})),this.featureDisposable.addDispose(this.monacoEditor.onWillChangeModel(()=>{this.disposeAllWidget()}));let v=!1;this.featureDisposable.addDispose(this.monacoEditor.onMouseDown(a=>{const y=a.target.detail;v=!1,!(y&&typeof y=="string"&&y===r.AIInlineChatContentWidgetId)&&this.aiInlineContentWidget&&!this.aiInlineContentWidget.isPersisted&&this.disposeAllWidget()})),this.featureDisposable.addDispose(this.monacoEditor.onMouseUp(a=>{const y=a.target.detail;y&&typeof y=="string"&&y===r.AIInlineChatContentWidgetId?v=!1:v=!0}));let g=this.preferenceService.getValid(r.AINativeSettingSectionsId.InlineChatAutoVisible,!0);return this.featureDisposable.addDispose(this.preferenceService.onSpecificPreferenceChange(r.AINativeSettingSectionsId.InlineChatAutoVisible,({newValue:a})=>{g=a})),this.featureDisposable.addDispose(r.Event.debounce(r.Event.any(this.monacoEditor.onDidChangeCursorSelection,this.monacoEditor.onMouseUp),(a,b)=>b,r.FRAME_THREE)(()=>{!g||!v||this.aiInlineContentWidget&&this.aiInlineContentWidget.isPersisted||this.showInlineChat(this.monacoEditor)})),this.featureDisposable}disposeAllWidget(){[this.aiInlineContentWidget,this.aiInlineChatDisposable,this.aiInlineChatOperationDisposable].forEach(v=>{v?.dispose()}),this.inlineChatInUsing=!1,this.cancelToken()}showInlineContentWidget(v,g){this.aiInlineContentWidget&&this.aiInlineContentWidget.dispose(),this.aiInlineContentWidget=this.injector.get(h.AIInlineContentWidget,[v]),this.aiInlineContentWidget.show({selection:g})}async showInlineChat(v){if(this.contextKeyService.getContextValue(o.CONTEXT_IN_DEBUG_MODE_KEY)||this.aiNativeContextKey.inlineInputWidgetIsVisible.get()||this.aiNativeContextKey.inlineInputWidgetIsStreaming.get()||!this.aiNativeConfigService.capabilities.supportsInlineChat||this.inlineChatInUsing)return;this.inlineChatInUsing=!0,this.disposeAllWidget();const y=v.getSelection();!y||y.isEmpty()||(this.showInlineContentWidget(v,y),this.aiInlineChatDisposable.addDispose(this.aiInlineContentWidget.onActionClick(({actionId:S,source:A})=>{const T=this.inlineChatFeatureRegistry.getEditorHandler(S),w=this.inlineChatFeatureRegistry.getAction(S);if(!T||!w)return;const D=this.getCrossSelection(v);if(!D)return;const I=()=>{const O=T.providerDiffPreviewStrategy?T.providerDiffPreviewStrategy:T.providePreviewStrategy;if(O)return O.bind(this,v,this.token)};this.runAction({monacoEditor:v,crossSelection:D,reporterFn:()=>this.aiReporter.start(w.name,{message:w.name,type:r.AIServiceType.InlineChat,source:A,runByCodeAction:A==="codeAction",actionSource:A==="codeAction"?r.ActionSourceEnum.CodeAction:r.ActionSourceEnum.InlineChat,actionType:w.name}),execute:T.execute?T.execute.bind(this,v,this.token):void 0,providerPreview:I(),extraData:{actionSource:A==="codeAction"?r.ActionSourceEnum.CodeAction:r.ActionSourceEnum.InlineChat,actionType:w.name}})})))}getCrossSelection(v){const g=v.getSelection();if(!g){this.logger.error("No selection found, aborting inline chat action.");return}return g.setStartPosition(g.startLineNumber,1).setEndPosition(g.endLineNumber,v.getModel().getLineMaxColumn(g.endLineNumber))}convertInlineChatStatus(v,g){if(!this.aiInlineContentWidget)return;const{relationId:a,message:b,startTime:y,isRetry:S,isStop:A}=g;let T;v===c.EInlineChatStatus.DONE&&(T=this.inlineDiffController.getModifyContent()),this.aiInlineChatDisposable.addDispose(this.aiInlineContentWidget.launchChatStatus(v)),this.aiReporter.end(a,{message:b,success:v!==c.EInlineChatStatus.ERROR,replytime:Date.now()-y,isStop:A,isRetry:S,code:T,actionType:g?.actionType,actionSource:g?.actionSource})}visibleDiffWidget(v){const{monacoEditor:g,options:a,reportInfo:b}=v,{chatResponse:y}=a,{relationId:S,startTime:A,isRetry:T,actionType:w,actionSource:D}=b;if(f.InlineChatController.is(y))this.aiInlineChatOperationDisposable.addDispose([y.onError(O=>{this.convertInlineChatStatus(c.EInlineChatStatus.ERROR,{relationId:S,message:O.message||"",startTime:A,isRetry:T,actionSource:D,actionType:w})}),y.onAbort(()=>{this.convertInlineChatStatus(c.EInlineChatStatus.READY,{relationId:S,message:"abort",startTime:A,isRetry:T,isStop:!0,actionSource:D,actionType:w})}),y.onEnd(()=>{this.convertInlineChatStatus(c.EInlineChatStatus.DONE,{relationId:S,message:"",startTime:A,isRetry:T,actionSource:D,actionType:w})})]);else{if(this.aiInlineContentWidget&&this.aiInlineChatDisposable.disposed||r.CancelResponse.is(y)){this.convertInlineChatStatus(c.EInlineChatStatus.READY,{relationId:S,message:y.message||"",startTime:A,isRetry:T,isStop:!0,actionSource:D,actionType:w});return}if(r.ErrorResponse.is(y)){this.convertInlineChatStatus(c.EInlineChatStatus.ERROR,{relationId:S,message:y.message||"",startTime:A,isRetry:T,actionSource:D,actionType:w});return}this.convertInlineChatStatus(c.EInlineChatStatus.DONE,{relationId:S,message:"",startTime:A,isRetry:T,actionSource:D,actionType:w})}this.inlineDiffController.showPreviewerByStream(g,a).mountWidget(this.aiInlineContentWidget)}ensureInlineChatVisible(v,g){this.aiInlineContentWidget.disposed?this.showInlineContentWidget(v,g):this.aiInlineContentWidget.isHidden&&this.aiInlineContentWidget.resume()}async handleDiffPreviewStrategy(v){if(!this.aiInlineContentWidget)return;const{monacoEditor:g,strategy:a,crossSelection:b,relationId:y,isRetry:S,actionType:A,actionSource:T}=v,w=g.getModel();this.aiInlineChatOperationDisposable.dispose(),this.ensureInlineChatVisible(g,b),this.aiInlineChatDisposable.addDispose(this.aiInlineContentWidget.launchChatStatus(c.EInlineChatStatus.THINKING));const D=Date.now();if(this.token.isCancellationRequested){this.convertInlineChatStatus(c.EInlineChatStatus.READY,{relationId:y,message:"abort",startTime:D,isRetry:S,isStop:!0,actionSource:T,actionType:A});return}const I=await a();if(r.CancelResponse.is(I)){this.convertInlineChatStatus(c.EInlineChatStatus.READY,{relationId:y,message:"abort",startTime:D,isRetry:S,isStop:!0,actionSource:T,actionType:A}),this.disposeAllWidget();return}this.visibleDiffWidget({monacoEditor:g,options:{crossSelection:b,chatResponse:I},reportInfo:{relationId:y,startTime:D,isRetry:S,actionType:A,actionSource:T}}),this.aiInlineChatOperationDisposable.addDispose([this.aiInlineContentWidget.onResultClick(O=>{const P=this.inlineDiffController.getModifyContent(),R=this.inlineDiffController.getOriginContent();this.inlineDiffController.handleAction(O),O===c.EResultKind.ACCEPT?(this.aiReporter.end(y,{message:"accept",success:!0,isReceive:!0,isDrop:!1,code:P,originCode:R,actionType:r.ActionTypeEnum.Accept}),(0,r.runWhenIdle)(()=>{this.disposeAllWidget()})):O===c.EResultKind.DISCARD?(this.aiReporter.end(y,{message:"discard",success:!0,isDrop:!0,isReceive:!1,code:P,originCode:R,actionType:r.ActionTypeEnum.Discard}),(0,r.runWhenIdle)(()=>{this.disposeAllWidget()})):O===c.EResultKind.REGENERATE&&(this.aiReporter.end(y,{message:"regenerate",success:!0,isDrop:!0,isReceive:!1,code:P,originCode:R,actionType:r.ActionTypeEnum.Regenerate}),this.handleDiffPreviewStrategy({monacoEditor:g,strategy:a,crossSelection:b,relationId:y,isRetry:!0,actionSource:T,actionType:A}))}),this.aiInlineChatService.onThumbs(O=>{this.aiReporter.end(y,{isLike:O})}),this.inlineDiffController.onMaxLineCount(O=>{requestAnimationFrame(()=>{if(b.endLineNumber===w.getLineCount()){const P=g.getOption(m.monacoApi.editor.EditorOption.lineHeight);this.aiInlineContentWidget.setOffsetTop(P*O+12)}})})])}async runAction(v){const{monacoEditor:g,crossSelection:a,reporterFn:b,execute:y,providerPreview:S,extraData:A}=v;if(y&&(await y(),this.disposeAllWidget()),S){const T=b();await this.handleDiffPreviewStrategy({monacoEditor:g,strategy:S,crossSelection:a,relationId:T,isRetry:!1,actionSource:A?.actionSource,actionType:A?.actionType})}}}t.InlineChatEditorController=u,u.ID="editor.contrib.ai.inline.chat"},2281:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineChatFeatureRegistry=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(57925),m=e(43718),E=e(89132),p=e(74353),_=e(86443);let s=class extends m.Disposable{constructor(){super(...arguments),this.actionsMap=new Map,this.editorHandlerMap=new Map,this.terminalHandlerMap=new Map}dispose(){super.dispose(),this.actionsMap.clear(),this.editorHandlerMap.clear(),this.terminalHandlerMap.clear()}collectActions(c){const{id:h}=c;return this.actionsMap.has(h)?(this.logger.warn(`InlineChatFeatureRegistry: id ${h} already exists`),!1):((0,m.isUndefined)(c.renderType)&&(c.renderType="button"),(0,m.isUndefined)(c.order)&&(c.order=0),this.actionsMap.set(h,c),!0)}removeCollectedActions(c){this.actionsMap.delete(c.id),this.codeActionService.deleteCodeActionById(c.id)}registerEditorInlineChat(c,h){return this.collectActions(c)&&(this.editorHandlerMap.set(c.id,h),this.codeActionService.registerCodeAction(c)),{dispose:()=>{this.removeCollectedActions(c)}}}unregisterEditorInlineChat(c){return this.removeCollectedActions(c)}registerTerminalInlineChat(c,h){return this.collectActions(c)&&((0,m.isUndefined)(h.triggerRules)&&(h.triggerRules="selection"),this.terminalHandlerMap.set(c.id,h)),{dispose:()=>{this.removeCollectedActions(c)}}}unregisterTerminalInlineChat(c){return this.removeCollectedActions(c)}registerInteractiveInput(c,h){const u=()=>{const d=String(this.inlineInputService.getSequenceKeyString());if(!d)return;const v={id:_.InteractiveInputModel.ID,name:(0,m.formatLocalize)("aiNative.inline.chat.operate.chat.title",d.toLocaleUpperCase()),renderType:"button",order:Number.MAX_SAFE_INTEGER};this.actionsMap.has(v.id)?this.actionsMap.set(v.id,v):this.collectActions(v)};return this.addDispose(m.Event.filter(this.keybindingRegistry.onKeybindingsChanged,({affectsCommands:d})=>d.includes(l.AI_INLINE_CHAT_INTERACTIVE_INPUT_VISIBLE.id))(()=>u())),u(),this.inlineInputService.registerInlineInput(c,h)}getEditorActionButtons(){const c=Array.from(this.editorHandlerMap.keys()).filter(h=>{const u=this.actionsMap.get(h);return u&&u.renderType==="button"}).map(h=>this.actionsMap.get(h)).sort((h,u)=>h.order-u.order);return this.actionsMap.has(_.InteractiveInputModel.ID)&&c.push(this.actionsMap.get(_.InteractiveInputModel.ID)),c}getEditorActionMenus(){return Array.from(this.editorHandlerMap.keys()).filter(c=>{const h=this.actionsMap.get(c);return h&&h.renderType==="dropdown"}).map(c=>this.actionsMap.get(c))}getEditorHandler(c){return this.editorHandlerMap.get(c)}getTerminalHandler(c){return this.terminalHandlerMap.get(c)}getTerminalActions(){return Array.from(this.terminalHandlerMap.keys()).map(c=>this.actionsMap.get(c))}getAction(c){return this.actionsMap.get(c)}};t.InlineChatFeatureRegistry=s,n.__decorate([(0,r.Autowired)(o.Logger),n.__metadata("design:type",o.Logger)],s.prototype,"logger",void 0),n.__decorate([(0,r.Autowired)(E.CodeActionService),n.__metadata("design:type",E.CodeActionService)],s.prototype,"codeActionService",void 0),n.__decorate([(0,r.Autowired)(p.InlineInputService),n.__metadata("design:type",p.InlineInputService)],s.prototype,"inlineInputService",void 0),n.__decorate([(0,r.Autowired)(o.KeybindingRegistry),n.__metadata("design:type",Object)],s.prototype,"keybindingRegistry",void 0),t.InlineChatFeatureRegistry=s=n.__decorate([(0,r.Injectable)()],s)},31031:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineChatService=t.EResultKind=t.EInlineChatStatus=void 0;const n=e(85608),r=e(76003),o=e(43718);var l=e(19413);Object.defineProperty(t,"EInlineChatStatus",{enumerable:!0,get:function(){return l.EInlineChatStatus}}),Object.defineProperty(t,"EResultKind",{enumerable:!0,get:function(){return l.EResultKind}});let m=class{constructor(){this._onInlineChatVisible=new o.Emitter,this.onInlineChatVisible=this._onInlineChatVisible.event,this._onThumbs=new o.Emitter,this.onThumbs=this._onThumbs.event}fireThumbsEvent(p){this._onThumbs.fire(p)}};t.InlineChatService=m,t.InlineChatService=m=n.__decorate([(0,r.Injectable)({multiple:!1})],m)},26664:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AIInlineContentWidget=void 0;const n=e(85608),r=n.__importStar(e(14041)),o=e(76003),l=e(41869),m=e(89195),E=e(64102),p=e(43718),_=n.__importStar(e(20868)),s=e(62663),f=e(52659),c=e(77659),h=e(90614),u=e(74353),d=e(86443),v=n.__importDefault(e(26899)),g=e(31031),a=y=>{const{onClickActions:S,onClose:A,onChatStatus:T,onResultClick:w}=y,D=(0,l.useInjectable)(l.IAIInlineChatService),I=(0,l.useInjectable)(p.InlineChatFeatureRegistryToken),[O,P]=(0,r.useState)(g.EInlineChatStatus.READY);(0,r.useEffect)(()=>{const U=new p.Disposable;return U.addDispose(T($=>P($))),()=>{U.dispose()}},[T,D]),(0,r.useEffect)(()=>{O===g.EInlineChatStatus.ERROR&&A?.()},[A]);const R=(0,r.useMemo)(()=>O===g.EInlineChatStatus.THINKING,[O]),M=(0,r.useMemo)(()=>O===g.EInlineChatStatus.DONE,[O]),k=(0,r.useMemo)(()=>O===g.EInlineChatStatus.ERROR,[O]),B=(0,r.useMemo)(()=>I.getEditorActionButtons(),[I]),x=(0,r.useCallback)(U=>{S?.(U)},[S]),N=(0,r.useCallback)(()=>{A?.()},[A]),K=(0,r.useMemo)(()=>I.getEditorActionMenus().map(U=>new E.MenuNode({id:`ai.menu.operation.${U.id}`,label:U.name,className:v.default.more_operation_menu_item,execute:()=>{x(U.id)}})),[I]),j=(0,r.useCallback)(()=>B.length===0&&K.length===0||k?null:M?r.default.createElement(h.InlineResultAction,{onResultClick:w}):r.default.createElement(m.AIAction,{operationList:B,moreOperation:K,onClickItem:x,onClose:N,loading:R}),[B,K,w,O]);return r.default.createElement("div",{className:v.default.inline_chat_controller_box},j())};let b=class extends f.ReactInlineContentWidget{get status(){return this._status}get isPersisted(){return!this.isHidden&&this.status!==g.EInlineChatStatus.READY&&this.status!==g.EInlineChatStatus.ERROR}constructor(S){super(S),this.editor=S,this.allowEditorOverflow=!0,this._onActionClickEmitter=new p.Emitter,this.onActionClick=this._onActionClickEmitter.event,this._onStatusChange=new p.Emitter,this.onStatusChange=this._onStatusChange.event,this._onResultClick=new p.Emitter,this.onResultClick=this._onResultClick.event,this._status=g.EInlineChatStatus.READY,this.aiNativeContextKey=this.injector.get(c.AINativeContextKey,[this.editor.contextKeyService])}launchChatStatus(S){return(0,p.runWhenIdle)(()=>{this._status=S,this._onStatusChange.fire(S)})}dispose(){this.launchChatStatus(g.EInlineChatStatus.READY),super.dispose()}clickActionId(S,A){var T;if(S===d.InteractiveInputModel.ID&&(!((T=this.options)===null||T===void 0)&&T.selection)){this.hide(),this.inlineInputService.visibleBySelection(this.options.selection);return}this._onActionClickEmitter.fire({actionId:S,source:A})}renderView(){return r.default.createElement(a,{onClickActions:S=>this.clickActionId(S,"widget"),onClose:()=>this.dispose(),onChatStatus:this.onStatusChange.bind(this),onResultClick:S=>{this._onResultClick.fire(S)}})}async show(S){super.show(S),this.aiNativeContextKey.inlineChatIsVisible.set(!0)}getDomNode(){const S=super.getDomNode();return requestAnimationFrame(()=>{S.style.zIndex=(l.StackingLevel.FindWidget-1).toString()}),S}async hide(){this.aiNativeContextKey.inlineChatIsVisible.set(!1),super.hide()}setOptions(S){this.options=S}setOffsetTop(S){this.domNode.style.transform=`translateY(${S}px)`}id(){return p.AIInlineChatContentWidgetId}getPosition(){const S=super.getPosition();if(S)return S;if(!this.options)return null;const{selection:A}=this.options;if(!A)return null;const T=this.computePosition(A);return T||null}safeGetLineLastNonWhitespaceColumn(S){const A=this.editor.getModel();S<1&&(S=1);const T=A.getLineCount();return S>T&&(S=T),A.getLineLastNonWhitespaceColumn(S)}toAbovePosition(S,A){return{position:new _.Position(S,A),preference:[s.monacoBrowser.editor.ContentWidgetPositionPreference.ABOVE,s.monacoBrowser.editor.ContentWidgetPositionPreference.BELOW]}}toBelowPosition(S,A){return{position:new _.Position(S,A),preference:[s.monacoBrowser.editor.ContentWidgetPositionPreference.BELOW,s.monacoBrowser.editor.ContentWidgetPositionPreference.ABOVE]}}recheckSelection(S){const A=S.getStartPosition(),T=S.getEndPosition(),D=this.editor.getModel().getLineCount(),I=Math.max(1,T.lineNumber-1),O=Math.min(D,T.lineNumber+1),P=A.with(I,1),R=T.with(O,this.safeGetLineLastNonWhitespaceColumn(O));if(D===1)return this.toBelowPosition(O,this.safeGetLineLastNonWhitespaceColumn(O));if(R.lineNumber===1&&T.lineNumber!==A.lineNumber)return this.computePosition(_.Selection.fromPositions(P,R));const M=this.safeGetLineLastNonWhitespaceColumn(I),k=this.safeGetLineLastNonWhitespaceColumn(O),B=this.safeGetLineLastNonWhitespaceColumn(T.lineNumber);return k>B&&k>M?this.computePosition(_.Selection.fromPositions(R,P)):this.computePosition(_.Selection.fromPositions(P,R))}isProtrudeAbove(S){const A=this.safeGetLineLastNonWhitespaceColumn(S);return A>=this.safeGetLineLastNonWhitespaceColumn(S-1)&&A>=this.safeGetLineLastNonWhitespaceColumn(S-2)}isProtrudeBelow(S){const A=this.safeGetLineLastNonWhitespaceColumn(S);return A>=this.safeGetLineLastNonWhitespaceColumn(S+1)&&A>=this.safeGetLineLastNonWhitespaceColumn(S+2)}computePosition(S){const A=S.getStartPosition(),T=S.getEndPosition();let w=S.getPosition();const I=this.editor.getModel().getLineCount();if(A.lineNumber===T.lineNumber)return this.recheckSelection(S);T.lineNumber-A.lineNumber===1&&(w=T);const O=this.safeGetLineLastNonWhitespaceColumn(w.lineNumber);let P=w.lineNumber,R="below";if(w.equals(A)){if(Math.max(this.safeGetLineLastNonWhitespaceColumn(w.lineNumber-1),this.safeGetLineLastNonWhitespaceColumn(w.lineNumber-2))<=O)return this.toAbovePosition(w.lineNumber,O);for(let B=A.lineNumber;B<=T.lineNumber;B++){if(this.isProtrudeAbove(B)){P=B,R="above";break}if(this.isProtrudeBelow(B)){P=B,R="below";break}}}else if(w.equals(T)){if(Math.max(this.safeGetLineLastNonWhitespaceColumn(w.lineNumber+1),this.safeGetLineLastNonWhitespaceColumn(w.lineNumber+2))<=O)return this.toBelowPosition(w.lineNumber,O);for(let B=Math.min(I,T.lineNumber+1);B>=A.lineNumber;B--){if(this.isProtrudeBelow(B)){P=B,R="below";break}if(this.isProtrudeAbove(B)){P=B,R="above";break}}}const M=this.safeGetLineLastNonWhitespaceColumn(P)+1;return R==="below"?this.toBelowPosition(P,M):this.toAbovePosition(P,M)}};t.AIInlineContentWidget=b,n.__decorate([(0,o.Autowired)(o.INJECTOR_TOKEN),n.__metadata("design:type",o.Injector)],b.prototype,"injector",void 0),n.__decorate([(0,o.Autowired)(u.InlineInputService),n.__metadata("design:type",u.InlineInputService)],b.prototype,"inlineInputService",void 0),t.AIInlineContentWidget=b=n.__decorate([(0,o.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[Object])],b)},15989:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=e(85608);n.__exportStar(e(38890),t),n.__exportStar(e(49444),t),n.__exportStar(e(37679),t),n.__exportStar(e(51347),t)},49444:(L,t,e)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.LiveInlineDiffPreviewer=t.SideBySideInlineDiffWidget=t.BaseInlineDiffPreviewer=void 0;const r=e(85608),o=e(76003),l=e(43718),m=e(20868),E=e(90052),p=e(77714),_=e(52451),s=e(43255),f=e(74547),c=e(11827),h=e(9491),u=e(31031),d=e(33062),v=e(37679);let g=class extends l.Disposable{constructor(S){super(),this.monacoEditor=S,this.inlineContentWidget=null,this.model=this.monacoEditor.getModel(),this.modelId=this.model.id,this.addDispose(l.Disposable.create(()=>{this.inlineContentWidget&&this.inlineContentWidget.dispose(),this.attachNode(void 0)}))}formatIndentation(S){const A=this.selection.startLineNumber,T=(0,p.getLeadingWhitespace)(this.model.getLineContent(A));if(S===p.empty||T===p.empty)return S;const{tabSize:w,insertSpaces:D}=this.model.getOptions(),I=this.model.getEOL(),O=(0,h.getSpaceCnt)(T,w);let P=(0,h.generateIndent)(O,w,D);const R=S.split(I),M=R[0];let k=!1;if(M){const x=(0,p.getLeadingWhitespace)(M);P===x?P="":P.length>x.length?P=P.slice(x.length):(P=x.slice(P.length),k=!0)}return R.map(x=>{if(k){const N=(0,p.getLeadingWhitespace)(x);return x=P+x.substring(N.length),x}return P+x}).join(I)}getNode(){return this.node}mountWidget(S){this.inlineContentWidget=S}layout(){var S,A;(S=this.inlineContentWidget)===null||S===void 0||S.setOptions({position:this.getPosition()}),(A=this.inlineContentWidget)===null||A===void 0||A.layoutContentWidget()}onReady(S){return S(),l.Disposable.NULL}create(S,A={disposeWhenEditorClosed:!0}){this.selection=S,this.node=this.createNode(),this.node.setPreviewerOptions(A)}attachNode(S){this.node=S}show(S,A){}onLineCount(S){return this}setValue(S){}getValue(){return""}getOriginValue(){return""}onError(S){}onAbort(){}onEnd(){}revealFirstDiff(){}render(){}hide(){}resume(){}isModel(S){return this.model.uri.toString()===S}};t.BaseInlineDiffPreviewer=g,r.__decorate([(0,o.Autowired)(o.INJECTOR_TOKEN),r.__metadata("design:type",o.Injector)],g.prototype,"injector",void 0),t.BaseInlineDiffPreviewer=g=r.__decorate([(0,o.Injectable)({multiple:!0}),r.__metadata("design:paramtypes",[Object])],g);let a=n=class extends g{createNode(){const S=this.injector.get(v.InlineDiffWidget,[n.AI_DIFF_WIDGET_ID,{editor:this.monacoEditor,selection:this.selection}]);return S.create(),this.addDispose(S),S}mountWidget(S){super.mountWidget(S),S.addDispose(this)}getPosition(){return m.Position.lift({lineNumber:this.selection.endLineNumber+1,column:1})}layout(){var S;(S=this.inlineContentWidget)===null||S===void 0||S.setPositionPreference([E.ContentWidgetPositionPreference.BELOW]),super.layout()}onReady(S){return this.node?this.node.onReady(S.bind(this)):l.Disposable.NULL}show(S,A){var T;(T=this.node)===null||T===void 0||T.showByLine(S,A)}setValue(S){var A;const T=(A=this.node)===null||A===void 0?void 0:A.getModifiedModel();T?.setValue(this.formatIndentation(S))}getValue(){var S;return((S=this.node)===null||S===void 0?void 0:S.getModifiedModel()).getValue()}getOriginValue(){var S;return((S=this.node)===null||S===void 0?void 0:S.getOriginModel()).getValue()||""}handleAction(S){if(S===u.EResultKind.ACCEPT){const A=this.getValue();this.model.pushEditOperations(null,[{range:this.selection,text:A}],()=>null),this.model.pushStackElement()}}onLineCount(S){var A;return(A=this.node)===null||A===void 0||A.onMaxLineCount(S.bind(this)),this}onData(S){var A,T;const{message:w}=S,D=this.formatIndentation(w),I=(A=this.node)===null||A===void 0?void 0:A.getModifiedModel(),O=I.getEOL()===`\r
|
|
28320
|
-
`?s.DefaultEndOfLine.CRLF:s.DefaultEndOfLine.LF,{textBuffer:P,disposable:R}=(0,f.createTextBuffer)(D,O),M=c.ModelService._computeEdits(I,P);I.pushEditOperations([],M,()=>[]),R.dispose(),(T=this.node)===null||T===void 0||T.layout()}onError(S){var A;(A=this.node)===null||A===void 0||A.layout()}onAbort(){var S;(S=this.node)===null||S===void 0||S.layout()}onEnd(){var S;(S=this.node)===null||S===void 0||S.layout()}};t.SideBySideInlineDiffWidget=a,a.AI_DIFF_WIDGET_ID="AI-DIFF-WIDGET",t.SideBySideInlineDiffWidget=a=n=r.__decorate([(0,o.Injectable)({multiple:!0})],a);let b=class extends g{listenNode(S){S.addDispose(S.onDidEditChange(()=>this.layout())),S.addDispose(S.onPartialEditWidgetListChange(T=>{var w;T.every(D=>D.isHidden)&&(this.dispose(),(w=this.inlineContentWidget)===null||w===void 0||w.dispose())}));const A=S.onDispose(()=>{this.dispose(),A.dispose()});this.addDispose(S)}createNode(){const S=this.injector.get(d.InlineStreamDiffHandler,[this.monacoEditor]);return S.initialize(this.selection),this.listenNode(S),S}getPosition(){var S;const A=(S=this.node)===null||S===void 0?void 0:S.getZone();return A?m.Position.lift({lineNumber:A.startLineNumber,column:1}):m.Position.lift({lineNumber:1,column:1})}handleAction(S){var A,T;switch(S){case u.EResultKind.ACCEPT:(A=this.node)===null||A===void 0||A.acceptAll();break;case u.EResultKind.DISCARD:case u.EResultKind.REGENERATE:(T=this.node)===null||T===void 0||T.rejectAll();break;default:break}}onLineCount(){return l.Disposable.NULL}layout(){var S,A,T;(S=this.inlineContentWidget)===null||S===void 0||S.setPositionPreference([E.ContentWidgetPositionPreference.ABOVE,E.ContentWidgetPositionPreference.BELOW]),super.layout();const w=this.getPosition();if(w&&this.inlineContentWidget){const D=(A=this.node)===null||A===void 0?void 0:A.livePreviewDiffDecorationModel.getRemovedWidgets();if(D?.length){const I=w.lineNumber,O=D[0];if(O)if(((T=O.getLastPosition())===null||T===void 0?void 0:T.lineNumber)<=I){const R=this.inlineContentWidget.getLineHeight(),M=O.height+1;this.inlineContentWidget.setOffsetTop(-R*M-4)}else this.inlineContentWidget.setOffsetTop(0)}else this.inlineContentWidget.setOffsetTop(0)}}render(){var S,A;(S=this.inlineContentWidget)===null||S===void 0||S.show(),(A=this.node)===null||A===void 0||A.rateRenderEditController()}hide(){var S,A;(S=this.inlineContentWidget)===null||S===void 0||S.hide(),(A=this.node)===null||A===void 0||A.hide()}resume(){var S,A;(S=this.inlineContentWidget)===null||S===void 0||S.show(),(A=this.node)===null||A===void 0||A.resume()}onData(S){var A;const{message:T}=S;(A=this.node)===null||A===void 0||A.addLinesToDiff(this.formatIndentation(T))}onAbort(){var S,A;const T=(S=this.node)===null||S===void 0?void 0:S.recompute(d.EComputerMode.default);T&&(T.activeLine=0,T.pendingRange=new _.LineRange(0,0),(A=this.node)===null||A===void 0||A.finallyRender(T))}onEnd(){var S,A;const T=(S=this.node)===null||S===void 0?void 0:S.recompute(d.EComputerMode.legacy);T&&((A=this.node)===null||A===void 0||A.pushRateFinallyDiffStack(T))}getValue(){var S;return((S=this.node)===null||S===void 0?void 0:S.getVirtualModelValue())||""}getOriginValue(){var S;return((S=this.node)===null||S===void 0?void 0:S.getOriginModelValue())||""}setValue(S){var A,T;const w=(A=this.node)===null||A===void 0?void 0:A.recompute(d.EComputerMode.legacy,this.formatIndentation(S));w&&((T=this.node)===null||T===void 0||T.finallyRender(w))}revealFirstDiff(){var S;(S=this.node)===null||S===void 0||S.revealFirstDiff()}};t.LiveInlineDiffPreviewer=b,t.LiveInlineDiffPreviewer=b=r.__decorate([(0,o.Injectable)({multiple:!0})],b)},37679:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineDiffWidget=void 0;const n=e(85608),r=n.__importStar(e(14041)),o=e(43144),l=n.__importDefault(e(25873)),m=e(76003),E=e(41869),p=n.__importStar(e(20868)),_=e(87822),s=e(34819),f=e(90626),c=n.__importDefault(e(69790)),h={fixedOverflowWidgets:!0,readOnly:!1,enableSplitViewResizing:!0,ignoreTrimWhitespace:!0,renderSideBySide:!0,lineNumbers:"on",glyphMargin:!0,scrollbar:{useShadows:!1,alwaysConsumeMouseWheel:!1,vertical:"hidden"},scrollBeyondLastLine:!1,renderMarginRevertIcon:!1,renderOverviewRuler:!1,rulers:void 0,overviewRulerBorder:void 0,overviewRulerLanes:0,padding:{top:0,bottom:0},folding:!1,diffCodeLens:!1,stickyScroll:{enabled:!1},minimap:{enabled:!1},automaticLayout:!0,renderIndicators:!1,inDiffEditor:!0},u=r.default.memo(v=>{const{range:g,onMaxLineCount:a,editor:b,onReady:y}=v,S=(0,E.useInjectable)(E.MonacoService),A=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(!g)return;const T=b.getModel();if(!T)return;const w=T.getValueInRange(g),D=S.createDiffEditor(A.current,{...h,lineDecorationsWidth:b.getLayoutInfo().decorationsWidth,lineNumbersMinChars:b.getOption(p.editor.EditorOption.lineNumbersMinChars)}),I=f.StandaloneServices.get(_.IModelService),O={languageId:T.getLanguageId(),onDidChange:E.Event.None},P=I.createModel(w,O,p.Uri.from({scheme:E.Schemes.inMemory,path:"inline-diff-widget/"+(0,E.randomString)(8)}),!0),R=I.createModel("",O,p.Uri.from({scheme:E.Schemes.inMemory,path:"inline-diff-widget/"+(0,E.randomString)(8)}),!0);D.setModel({original:P,modified:R}),D.revealLine(g.startLineNumber,p.editor.ScrollType.Immediate);const M=()=>{if(a){const k=P.getLineCount(),B=R.getLineCount();a(Math.max(k,B)+1)}};return y&&y({getModifiedModel:()=>R,getOriginModel:()=>P,layout:M}),M(),()=>{D&&D.dispose()}},[g,b]),r.default.createElement("div",{ref:A,className:c.default.diff_editor_widget})});let d=class extends s.ZoneWidget{setPreviewerOptions(g){this.previewerOptions=g}_fillContainer(g){this.setCssClass("inline-diff-widget"),this.root=l.default.createRoot(g);let a=null;if(this._resolveResultWidget)if(g.parentNode){const b=document.createElement("div");requestAnimationFrame(()=>{b.className=c.default.ai_diff_editor_resolve_result_widget;const y=this.editor.getLayoutInfo();b.style.width=`${y.contentWidth}px`,b.style.left=`${y.contentLeft}px`}),g.parentNode.appendChild(b),a=(0,o.createPortal)(this._resolveResultWidget,b),this.resultContainer=b}else throw new Error("[impossible path] container.parentNode is null");this.root.render(r.default.createElement(E.ConfigProvider,{value:this.configContext},r.default.createElement("div",{className:c.default.ai_diff_editor_container},r.default.createElement(u,{range:this.range,editor:this.editor,onMaxLineCount:b=>{b&&(this._relayout(b),this._onMaxLineCount.fire(b))},onReady:b=>{this.diffWidgetHandler=b,this._onReady.fire()}})),a))}computeResultWidgetWidth(){const g=this.editor.getLayoutInfo();return g.contentWidth+g.contentLeft}_onWidth(g){super._onWidth(g),requestAnimationFrame(()=>{this.resultContainer&&(this.resultContainer.style.width=`${this.computeResultWidgetWidth()}px`)})}getModifiedModel(){var g;return(g=this.diffWidgetHandler)===null||g===void 0?void 0:g.getModifiedModel()}getOriginModel(){var g;return(g=this.diffWidgetHandler)===null||g===void 0?void 0:g.getOriginModel()}layout(){var g;return(g=this.diffWidgetHandler)===null||g===void 0?void 0:g.layout()}constructor(g,a){super(a.editor,{showArrow:!1,showFrame:!1,arrowColor:void 0,frameColor:void 0,keepEditorSelection:!0,showInHiddenAreas:!0}),this.id=g,this._onMaxLineCount=new E.Emitter,this.onMaxLineCount=this._onMaxLineCount.event,this._onReady=new E.Emitter,this.onReady=this._onReady.event,this.diffWidgetHandler=null,this.resultContainer=null,this._resolveResultWidget=null;const{selection:b,hiddenArea:y,editor:S}=a;this.range=b,this.hiddenArea=y||b,S.setHiddenAreas([this.hiddenArea],this.id)}revealRange(g,a){}setContainerStyle(g){var a;const b=Object.keys(g);for(const y of b)Object.prototype.hasOwnProperty.call((a=this.container)===null||a===void 0?void 0:a.style,y)&&(this.container.style[y]=g[y])}addClassName(g){return this.setCssClass(g),this}dispose(){this.hide(),super.dispose()}hide(){this.editor.setHiddenAreas([],this.id),super.hide(),this.root&&this.root.unmount()}showByLine(g,a=20){this.editor._modelData.viewModel.coordinatesConverter.modelPositionIsVisible=()=>!0,super.show({startLineNumber:g,startColumn:1,endLineNumber:g,endColumn:Number.MAX_SAFE_INTEGER},a)}setResolveResultWidget(g){this._resolveResultWidget=g}};t.InlineDiffWidget=d,n.__decorate([(0,m.Autowired)(E.AppConfig),n.__metadata("design:type",Object)],d.prototype,"configContext",void 0),t.InlineDiffWidget=d=n.__decorate([(0,m.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[String,Object])],d)},38890:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineDiffController=void 0;const n=e(41869),r=e(43718),o=e(28423),l=e(99906),m=e(83854),E=e(40111),p=e(49444);class _ extends l.BaseAIMonacoEditorController{constructor(){super(...arguments),this._onMaxLineCount=new r.Emitter,this.onMaxLineCount=this._onMaxLineCount.event}static get(f){return f.getContribution(_.ID)}get preferenceService(){return this.injector.get(n.PreferenceService)}mount(){return this.previewerStore=new Map,this.currentPreviewer=(0,o.observableValue)(this,void 0),this.modelChangeObs=(0,o.observableFromEvent)(this,this.monacoEditor.onDidChangeModel,()=>this.monacoEditor.getModel()),this.featureDisposable.addDispose((0,o.autorun)(f=>{const c=this.modelChangeObs.read(f);if(!c)return;const h=c.id,u=this.currentPreviewer.read(f);u&&u.modelId!==h&&!u.disposed&&u.hide();const d=this.previewerStore.get(c.id);(0,o.transaction)(v=>{d&&d.modelId===h?(this.currentPreviewer.set(d,v),d.resume()):this.currentPreviewer.set(void 0,v)})})),this.featureDisposable}getPreviewer(){return this.currentPreviewer.get()}renderDiff(f,c){var h;f&&(f.onData(c),((h=this.modelChangeObs.get())===null||h===void 0?void 0:h.id)===f.modelId&&f.render())}showPreviewerByStream(f,c){const{crossSelection:h,chatResponse:u}=c,d=new r.Disposable,v=this.createDiffPreviewer(f,h,c.previewerOptions);(0,o.transaction)(a=>{this.currentPreviewer.set(v,a),this.previewerStore.set(v.modelId,v)});const g=()=>{v.layout(),d.dispose()};return d.addDispose(v.onReady(()=>{if(E.InlineChatController.is(u)){const a=u;d.addDispose([a.onData(b=>{r.ReplyResponse.is(b)&&this.renderDiff(v,b)}),a.onError(b=>{v.onError(b),g()}),a.onAbort(()=>{v.onAbort(),g()}),a.onEnd(()=>{v.onEnd(),g()})]),a.listen()}else v.setValue(u.message),g()})),v.layout(),v}createDiffPreviewer(f,c,h){const u=this.preferenceService.getValid(r.AINativeSettingSectionsId.InlineDiffPreviewMode,m.EInlineDiffPreviewMode.inlineLive);let d;return u===m.EInlineDiffPreviewMode.sideBySide?d=this.injector.get(p.SideBySideInlineDiffWidget,[f]):d=this.injector.get(p.LiveInlineDiffPreviewer,[f]),d.create(c,h),d.show(c.startLineNumber-1,c.endLineNumber-c.startLineNumber+2),d.addDispose(d.onLineCount(v=>this._onMaxLineCount.fire(v))),d.addDispose(r.Disposable.create(()=>{this.previewerStore.delete(d.modelId)})),d}handleAction(f){const c=this.getPreviewer();c&&c.handleAction(f)}getModifyContent(){const f=this.getPreviewer();if(f)return f.getValue()}getOriginContent(){const f=this.getPreviewer();if(f)return f.getOriginValue()}revealFirstDiff(){const f=this.getPreviewer();f&&f.revealFirstDiff()}}t.InlineDiffController=_,_.ID="editor.contrib.ai.inline.diff"},51347:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineDiffService=void 0;const n=e(85608),r=e(76003),o=e(70392);let l=class{constructor(){this._partialEventEmitter=new o.Emitter,this.onPartialEdit=this._partialEventEmitter.event}firePartialEdit(E){this._partialEventEmitter.fire(E)}};t.InlineDiffService=l,t.InlineDiffService=l=n.__decorate([(0,r.Injectable)()],l)},53182:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineHintLineDecoration=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(57925),m=e(43718),E=e(20868),p=e(60304),_=e(52416),s=e(75189),f="inline_hint_description",c="inline_hint_description_key";let h=class extends m.Disposable{constructor(d){super(),this.monacoEditor=d,this.colorRegister=(0,_.getColorRegistry)(),p.StandaloneServices.get(s.ICodeEditorService).registerDecorationType(f,c,{isWholeLine:!0}),this.addDispose(m.Disposable.create(()=>{this.monacoEditor.setDecorationsByType(f,c,[])}))}getSequenceKeyString(d="+"){var v;const a=(v=this.keybindingRegistry.getKeybindingsForCommand(l.AI_INLINE_CHAT_INTERACTIVE_INPUT_VISIBLE.id)[0])===null||v===void 0?void 0:v.resolved;return a?this.keybindingRegistry.acceleratorForSequence(a,d):""}async show(d){var v;const g=(0,m.formatLocalize)("aiNative.inline.hint.widget.placeholder",this.getSequenceKeyString("")),a=await this.themeService.getCurrentTheme(),b=this.colorRegister.resolveDefaultColor(_.inputPlaceholderForeground,a);this.monacoEditor.setDecorationsByType(f,c,[{range:E.Range.fromPositions(d),renderOptions:{after:{contentText:g,opacity:"0.5",color:(v=b?.toString())!==null&&v!==void 0?v:"",padding:"0 0 0 12px",width:"max-content",fontFamily:"-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,sans-serif"}}}])}};t.InlineHintLineDecoration=h,n.__decorate([(0,r.Autowired)(o.KeybindingRegistry),n.__metadata("design:type",Object)],h.prototype,"keybindingRegistry",void 0),n.__decorate([(0,r.Autowired)(_.IThemeService),n.__metadata("design:type",Object)],h.prototype,"themeService",void 0),t.InlineHintLineDecoration=h=n.__decorate([(0,r.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[Object])],h)},77886:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineHintController=void 0;const n=e(85608),r=n.__importDefault(e(97331)),o=e(43718),l=n.__importStar(e(20868)),m=e(77659),E=e(99906),p=e(71863),_=e(19520),s=e(53182);class f extends E.BaseAIMonacoEditorController{static get(h){return h.getContribution(f.ID)}get inlineCompletionsService(){return this.injector.get(p.AICompletionsService)}mount(){return this.registerHintLineFeature(this.monacoEditor)}registerHintLineFeature(h){const u=new o.Disposable,d=this.injector.get(m.AINativeContextKey,[h.contextKeyService]),v=()=>{u.dispose()},g=b=>{var y;const S=h.getModel();if(!S||this.inlineCompletionsService.isVisibleCompletion)return;if(!S.getLineDecorations(b.lineNumber).some(w=>w.options.description===_.InlineInputPreviewDecorationID)){const w=this.injector.get(s.InlineHintLineDecoration,[h]),D=(y=h.getModel())===null||y===void 0?void 0:y.getLineContent(b.lineNumber);D?.trim()||w.show(b),d.inlineHintWidgetIsVisible.set(!0),u.addDispose(w.onDispose(()=>{d.inlineHintWidgetIsVisible.set(!1)})),u.addDispose(w)}},a=(0,r.default)(async b=>{v(),g(b)},100);return this.featureDisposable.addDispose(h.onDidChangeCursorPosition(b=>{a(b.position)})),this.featureDisposable.addDispose(h.onDidChangeModelContent(b=>{var y,S;a(new l.Position((y=b.changes[0])===null||y===void 0?void 0:y.range.endLineNumber,(S=b.changes[0])===null||S===void 0?void 0:S.range.endColumn))})),this.featureDisposable.addDispose(h.onDidFocusEditorWidget(()=>{const b=h.getPosition();b&&(v(),g(b))})),this.featureDisposable.addDispose(h.onDidBlurEditorWidget(()=>{v()})),this.featureDisposable.addDispose(this.inlineCompletionsService.onVisibleCompletion(b=>{b&&v()})),this.featureDisposable.addDispose(u),this.featureDisposable}}t.InlineHintController=f,f.ID="editor.contrib.ai.inline.hint"},32213:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineInputWidget=void 0;const n=e(85608),r=n.__importStar(e(14041)),o=e(76003),l=e(41869),m=e(89195),E=e(43718),p=e(90052),_=e(90614),s=e(31031),f=e(26664),c=n.__importDefault(e(13185)),h=d=>{const{defaultValue:v,onClose:g,onInteractiveInputSend:a,onLayoutChange:b,onChatStatus:y,onResultClick:S,onValueChange:A}=d,[T,w]=(0,r.useState)(s.EInlineChatStatus.READY),D=(0,l.useInjectable)(l.AINativeConfigService);(0,r.useEffect)(()=>{const k=new E.Disposable;return k.addDispose(y(B=>w(B))),()=>{k.dispose()}},[y]);const I=(0,r.useMemo)(()=>T===s.EInlineChatStatus.THINKING,[T]),O=(0,r.useMemo)(()=>T===s.EInlineChatStatus.DONE,[T]),P=(0,r.useMemo)(()=>T===s.EInlineChatStatus.ERROR,[T]),R=(0,r.useCallback)(()=>{g?.()},[g]),M=(0,r.useCallback)(k=>{a?.(k)},[a]);return P?null:O?r.default.createElement(_.InlineResultAction,{onResultClick:S}):r.default.createElement(m.AIAction,{loadingShowOperation:!0,onClose:R,loading:I,customOperationRender:r.default.createElement(m.InteractiveInput,{autoFocus:!0,defaultValue:v,onValueChange:A,onHeightChange:k=>b(k),size:"small",placeholder:(0,E.localize)("aiNative.inline.chat.input.placeholder.default"),width:D.inlineChat.inputWidth,disabled:I,onSend:M})})};let u=class extends f.AIInlineContentWidget{constructor(v,g){super(v),this.editor=v,this.defaultValue=g,this.allowEditorOverflow=!0,this.positionPreference=[p.ContentWidgetPositionPreference.ABOVE],this._onSend=new E.Emitter,this.onSend=this._onSend.event,this._onClose=new E.Emitter,this.onClose=this._onClose.event,this._onValueChange=new E.Emitter,this.onValueChange=this._onValueChange.event}dispose(){super.dispose(),this.inlineInputService.hide()}id(){return E.AIInlineInputChatContentWidgetId}renderView(){return r.default.createElement("div",{className:c.default.input_wrapper},r.default.createElement(h,{defaultValue:this.defaultValue,onClose:()=>this._onClose.fire(),onChatStatus:this.onStatusChange.bind(this),onLayoutChange:()=>{this.editor.layoutContentWidget(this)},onValueChange:v=>{this._onValueChange.fire(v)},onInteractiveInputSend:v=>{this.launchChatStatus(s.EInlineChatStatus.THINKING),this._onSend.fire(v)},onResultClick:v=>{this._onResultClick.fire(v)}}))}};t.InlineInputWidget=u,t.InlineInputWidget=u=n.__decorate([(0,o.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[Object,String])],u)},89060:(L,t,e)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.InlineInputController=void 0;const r=e(85608),o=e(76003),l=e(43718),m=e(57517),E=r.__importStar(e(20868)),p=e(28423),_=e(75124),s=e(2261),f=e(52451),c=e(74547),h=e(77659),u=e(99906),d=e(77633),v=e(40111),g=e(31031),a=e(15989),b=e(19520),y=e(32213),S=r.__importDefault(e(13185)),A=e(74353),T=e(86443);let w=n=class extends u.BaseAIMonacoEditorController{static get(I){return I.getContribution(n.ID)}get inlineInputService(){return this.injector.get(A.InlineInputService)}get aiReporter(){return this.injector.get(l.IAIReporter)}get eventBus(){return this.injector.get(l.IEventBus)}get messageService(){return this.injector.get(_.MessageService)}mount(){return this.inputDisposable=new l.Disposable,this.aiNativeContextKey=this.injector.get(h.AINativeContextKey,[this.monacoEditor.contextKeyService]),this.inlineDiffController=a.InlineDiffController.get(this.monacoEditor),this.inputValue=(0,p.observableValue)(this,""),this.modelChangeObs=(0,p.observableFromEvent)(this,this.monacoEditor.onDidChangeModel,()=>this.monacoEditor.getModel()),this.inlineInputWidgetStore=new Map,this.featureDisposable.addDispose(this.eventBus.on(m.EditorGroupCloseEvent,I=>{var O;if(!this.aiNativeContextKey.inlineInputWidgetIsStreaming.get())return;const R=I.payload.resource.uri.toString();if(((O=this.monacoEditor.getModel())===null||O===void 0?void 0:O.uri.toString())===R){this.hideInput();const k=(0,l.localize)("aiNative.inline.chat.generating.canceled");k&&this.messageService.info(k)}})),this.featureDisposable.addDispose(this.inlineInputService.onHidden(()=>{this.hideInput()})),this.featureDisposable.addDispose(this.inlineInputService.onInteractiveInputVisibleInPosition(async I=>{I?this.showInputInEmptyLine(I,this.monacoEditor):setTimeout(()=>this.monacoEditor.focus(),0)})),this.featureDisposable.addDispose(this.inlineInputService.onInteractiveInputVisibleInSelection(I=>{I&&this.showInputInSelection(I,this.monacoEditor)})),this.featureDisposable.addDispose(this.inputDisposable),this.featureDisposable}cancelToken(){super.cancelToken(),this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1)}hideInput(){this.inlineInputWidgetStore.delete(this.monacoEditor.getModel().id),this.inputDisposable.dispose()}async showInputInEmptyLine(I,O,P){const R=O.getModel();if(!R)return;const M=O.getSelection();if(M&&!M.isEmpty())return;this.inputValue.set(P||"",void 0),this.inlineInputWidgetStore.set(R.id,new T.InlineInputWidgetStoreInEmptyLine(I,P)),this.inputDisposable&&(this.inputDisposable.dispose(),this.inputDisposable=new l.Disposable);const k=O.createDecorationsCollection(),B=this.injector.get(y.InlineInputWidget,[O,this.inputValue.get()]);k.append([{range:E.Range.fromPositions(I),options:c.ModelDecorationOptions.register({description:b.InlineInputPreviewDecorationID,isWholeLine:!0,className:S.default.input_decoration_readable_container,inlineClassName:S.default.inline_chat_inserted_range})}]);const x=k.getRange(0);let N;x&&(N=f.LineRange.fromRange(x),B.show({position:x.getStartPosition()}),this.aiNativeContextKey.inlineInputWidgetIsVisible.set(!0)),this.inputDisposable.addDispose(B.onDispose(()=>{this.cancelToken(),k.clear(),this.aiNativeContextKey.inlineInputWidgetIsVisible.set(!1)})),this.inputDisposable.addDispose(B.onValueChange(K=>{this.inputValue.set(K,void 0);const j=this.inlineInputWidgetStore.get(R.id);j instanceof T.InlineInputWidgetStoreInEmptyLine&&j.setValue(K)})),this.inputDisposable.addDispose(B.onResultClick(async K=>{const j=()=>{const U=k.getRange(0);R.pushStackElement(),R.pushEditOperations(null,[s.EditOperation.delete(U)],()=>null),R.pushStackElement()};switch(K){case g.EResultKind.ACCEPT:this.hideInput();break;case g.EResultKind.DISCARD:j(),this.hideInput();break;case g.EResultKind.REGENERATE:j(),requestAnimationFrame(()=>{const $=k.getRange(0).getStartPosition();this.showInputInEmptyLine($,O,this.inputValue.get())});break;default:break}})),this.inputDisposable.addDispose(l.Event.debounce(k.onDidChange.bind(k),()=>{},l.FRAME_THREE)(()=>{if(!k.getRange(0))return;const K=k.getRange(0),j=f.LineRange.fromRange(K);N.equals(j)||(B.setOptions({position:K.getStartPosition()}),B.layoutContentWidget()),N=j})),this.inputDisposable.addDispose(B.onClose(()=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.get()?this.cancelToken():this.hideInput()})),this.inputDisposable.addDispose(B.onSend(async K=>{O.focus();const j=this.inlineInputService.getInteractiveInputHandler(),U=O.getModel();if(!j||!U)return;B.launchChatStatus(g.EInlineChatStatus.THINKING);const $=await this.inlineInputService.getInteractiveInputStrategyHandler()(O,K),z=E.Selection.fromPositions(I);if($===d.ERunStrategy.EXECUTE&&j.execute){j.execute(O,z,K,this.token),B.launchChatStatus(g.EInlineChatStatus.DONE),this.hideInput();return}if($===d.ERunStrategy.PREVIEW&&j.providePreviewStrategy){const G=await j.providePreviewStrategy(O,z,K,this.token);if(l.CancelResponse.is(G)){B.launchChatStatus(g.EInlineChatStatus.READY),this.hideInput();return}if(v.InlineChatController.is(G)){const Y=G;let Z;const X=this.registerDispose(new l.RunOnceScheduler(()=>{const H=k.getRange(0);H&&Z&&U.pushEditOperations(null,[s.EditOperation.replace(H,Z)],()=>null)},l.FRAME_FIVE));this.inputDisposable.addDispose([Y.onData(async H=>{l.ReplyResponse.is(H)&&(this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!0),Z=H.message,X.isScheduled()||X.schedule())}),Y.onError(H=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),B.launchChatStatus(g.EInlineChatStatus.READY)}),Y.onAbort(()=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),U.pushStackElement(),B.launchChatStatus(g.EInlineChatStatus.DONE)}),Y.onEnd(()=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),U.pushStackElement(),B.launchChatStatus(g.EInlineChatStatus.DONE)})]),Y.listen()}}})),this.inputDisposable.addDispose(B)}async showInputInSelection(I,O,P){this.inputDisposable&&(this.inputDisposable.dispose(),this.inputDisposable=new l.Disposable);const R=O.getModel();if(!R)return;const M=O.createDecorationsCollection();M.set([{range:E.Range.fromPositions({lineNumber:I.startLineNumber,column:1},{lineNumber:I.endLineNumber,column:O.getModel().getLineMaxColumn(I.endLineNumber)}),options:c.ModelDecorationOptions.register({description:b.InlineInputPreviewDecorationID,isWholeLine:!0,className:S.default.input_decoration_pending_container})}]);const k=E.Selection.fromRange(M.getRange(0),I.getDirection());this.inputValue.set(P||"",void 0),this.inlineInputWidgetStore.set(R.id,new T.InlineInputWidgetStoreInSelection(k,P));const B=this.injector.get(y.InlineInputWidget,[O,this.inputValue.get()]);B.show({selection:k}),this.aiNativeContextKey.inlineInputWidgetIsVisible.set(!0),this.inputDisposable.addDispose(B.onDispose(()=>{this.cancelToken(),M.clear(),this.aiNativeContextKey.inlineInputWidgetIsVisible.set(!1)})),this.inputDisposable.addDispose(B.onValueChange(x=>{this.inputValue.set(x,void 0);const N=this.inlineInputWidgetStore.get(R.id);N instanceof T.InlineInputWidgetStoreInSelection&&N.setValue(x)})),this.inputDisposable.addDispose(B.onClose(()=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.get()?this.cancelToken():this.hideInput()})),this.inputDisposable.addDispose(B.onSend(async x=>{O.focus();const N=this.inlineInputService.getInteractiveInputHandler();if(!N)return;if(B.launchChatStatus(g.EInlineChatStatus.THINKING),await this.inlineInputService.getInteractiveInputStrategyHandler()(O,x)===d.ERunStrategy.PREVIEW&&N.providePreviewStrategy){const j=await N.providePreviewStrategy(O,k,x,this.token);if(l.CancelResponse.is(j)){M.clear(),this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),B.launchChatStatus(g.EInlineChatStatus.DONE);return}if(v.InlineChatController.is(j)){const U=j;this.inputDisposable.addDispose([U.onData(z=>{M.clear(),l.ReplyResponse.is(z)&&this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!0)}),U.onError(z=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),B.launchChatStatus(g.EInlineChatStatus.READY)}),U.onAbort(()=>{M.clear(),this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),B.launchChatStatus(g.EInlineChatStatus.DONE)}),U.onEnd(()=>{M.clear(),this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),B.launchChatStatus(g.EInlineChatStatus.DONE)})]),this.inlineDiffController.showPreviewerByStream(O,{crossSelection:k,chatResponse:U}).mountWidget(B),U.listen()}}else M.clear(),B.launchChatStatus(g.EInlineChatStatus.READY),this.hideInput()})),this.inputDisposable.addDispose(B.onResultClick(x=>{this.inlineDiffController.handleAction(x),this.hideInput(),x===g.EResultKind.REGENERATE&&requestAnimationFrame(()=>{this.showInputInSelection(k,O,this.inputValue.get())})})),this.inputDisposable.addDispose(B)}};t.InlineInputController=w,w.ID="editor.contrib.ai.inline.input",t.InlineInputController=w=n=r.__decorate([(0,o.Injectable)()],w)},74353:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineInputService=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(57925),m=e(43718),E=e(20868),p=e(85679),_=e(77633),s=e(86443);let f=class extends m.Disposable{constructor(){super(...arguments),this.interactiveInputModel=new s.InteractiveInputModel,this._onInteractiveInputVisibleInPosition=new m.Emitter,this.onInteractiveInputVisibleInPosition=this._onInteractiveInputVisibleInPosition.event,this._onInteractiveInputVisibleInSelection=new m.Emitter,this.onInteractiveInputVisibleInSelection=this._onInteractiveInputVisibleInSelection.event,this._onHidden=new m.Emitter,this.onHidden=this._onHidden.event}visibleByPosition(h){this._onInteractiveInputVisibleInPosition.fire(h)}visibleBySelection(h){this._onInteractiveInputVisibleInSelection.fire(h)}async visibleByNearestCodeBlock(h,u){const d=await this.findNearestCodeBlockWithPosition(h,u);d&&this.visibleBySelection(d)}hide(){this._onHidden.fire()}getInteractiveInputHandler(){return this.interactiveInputModel.handler()}getInteractiveInputStrategyHandler(){return this.interactiveInputModel.strategyHandler()}async findNearestCodeBlockWithPosition(h,u){const d=u.getModel(),v=d?.getOffsetAt(h),g=d?.getLanguageId(),a=this.languageParserService.createParser(g),b=await a?.findNearestCodeBlockWithPosition(d?.getValue()||"",v);if(b)return new E.Selection(b.range.start.line+1,b.range.start.character,b.range.end.line+1,b.range.end.character)}getSequenceKeyString(){var h;const d=(h=this.keybindingRegistry.getKeybindingsForCommand(l.AI_INLINE_CHAT_INTERACTIVE_INPUT_VISIBLE.id)[0])===null||h===void 0?void 0:h.resolved;return d?this.keybindingRegistry.acceleratorForSequence(d,"+"):""}registerInlineInput(h,u){return this.interactiveInputModel.setHandler(u),h.handleStrategy?this.interactiveInputModel.setStrategyHandler(h.handleStrategy):this.interactiveInputModel.setStrategyHandler(()=>h.strategy||_.ERunStrategy.EXECUTE),this.interactiveInputModel}};t.InlineInputService=f,n.__decorate([(0,r.Autowired)(o.KeybindingRegistry),n.__metadata("design:type",Object)],f.prototype,"keybindingRegistry",void 0),n.__decorate([(0,r.Autowired)(p.LanguageParserService),n.__metadata("design:type",p.LanguageParserService)],f.prototype,"languageParserService",void 0),t.InlineInputService=f=n.__decorate([(0,r.Injectable)()],f)},86443:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineInputWidgetStoreInSelection=t.InlineInputWidgetStoreInEmptyLine=t.InteractiveInputModel=void 0;const n=e(89195),r=e(43718);class o{setHandler(p){this._handler=p}handler(){return this._handler}setStrategyHandler(p){this._strategyHandler=p}strategyHandler(){return this._strategyHandler}dispose(){this._handler=void 0}}t.InteractiveInputModel=o,o.ID=`${n.InteractiveInput.displayName}:${(0,r.uuid)(4)}`;class l{constructor(p,_){this.position=p,this.value=_}getPosition(){return this.position}setPosition(p){this.position=p}getValue(){return this.value}setValue(p){this.value=p}}t.InlineInputWidgetStoreInEmptyLine=l;class m{constructor(p,_){this.selection=p,this.value=_}getSelection(){return this.selection}setSelection(p){this.selection=p}getValue(){return this.value}setValue(p){this.value=p}}t.InlineInputWidgetStoreInSelection=m},76755:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineStreamDiffComputer=void 0;const n=e(9514),r=e(52451),o=e(37348),l=e(44781),m=e(68450),E=e(56702),p=e(89216),_=e(10438),s=e(30861),f=e(46739),c=(u,d,v=m.InfiniteTimeout.instance)=>{if(!u.length||!d.length)return m.DiffAlgorithmResult.trivial(u,d);const g=new _.Array2D(2*u.length+1,d.length+1),a=new _.Array2D(2*u.length+1,d.length+1);for(let D=0;D<=d.length;D++)g.set(0,D,D),a.set(0,D,D>0);for(let D=0;D<=2*u.length;D++)g.set(D,0,Math.floor((D+1)/2)),a.set(D,0,!1);for(let D=1;D<=d.length;D++)for(let I=1;I<=2*u.length;I++){if(!v.isValid())return m.DiffAlgorithmResult.trivialTimedOut(u,d);if(I%2===0){const O=g.get(I,D-1)+1,P=g.get(I-1,D),R=O<P;g.set(I,D,R?O:P),a.set(I,D,R)}else{const O=g.get(I-1,D)+.4,P=u.getElement(Math.floor(I/2))===d.getElement(D-1)?g.get(I-1,D-1):Number.MAX_VALUE,R=P<O;g.set(I,D,R?P:O),a.set(I,D,R)}}let b=Number.MAX_VALUE,y=-1;for(let D=0;D<=2*u.length;D++){const I=g.get(D,d.length);I<b&&(b=I,y=D)}const S=[];let A=y,T=d.length;A<=2*u.length-2&&S.push(new m.SequenceDiff(new o.OffsetRange(Math.floor((A+1)/2),u.length),new o.OffsetRange(T,T)));let w;for(;A>=0&&T>=0;)a.get(A,T)?(A%2===0?w===void 0&&(w={originalLineIndex:Math.floor(A/2),modifiedLineIndex:T}):(w!==void 0&&((w.originalLineIndex!==Math.floor(A/2)+1||w.modifiedLineIndex!==T)&&S.push(new m.SequenceDiff(new o.OffsetRange(Math.floor(A/2)+1,w.originalLineIndex),new o.OffsetRange(T,w.modifiedLineIndex))),w=void 0),A-=1),T-=1):(w=w||{originalLineIndex:Math.floor((A+1)/2),modifiedLineIndex:T},A-=1);return w!==void 0&&((w.originalLineIndex!==Math.floor(A/2)+1||w.modifiedLineIndex!==T)&&S.push(new m.SequenceDiff(new o.OffsetRange(Math.floor(A/2)+1,w.originalLineIndex),new o.OffsetRange(T,w.modifiedLineIndex))),w=void 0),S.reverse(),new m.DiffAlgorithmResult(S,!1)};class h extends E.DefaultLinesDiffComputer{computeDiff(d,v,g){if(d.length<=1&&(0,n.equals)(d,v,(M,k)=>M===k))return new s.LinesDiff([],[],!1);if(d.length===1&&d[0].length===0||v.length===1&&v[0].length===0)return new s.LinesDiff([new f.DetailedLineRangeMapping(new r.LineRange(1,d.length+1),new r.LineRange(1,v.length+1),[new f.RangeMapping(new l.Range(1,1,d.length,d[d.length-1].length+1),new l.Range(1,1,v.length,v[v.length-1].length+1))])],[],!1);const a=g.maxComputationTimeMs===0?m.InfiniteTimeout.instance:new m.DateTimeout(g.maxComputationTimeMs),b=new Map;function y(M){let k=b.get(M);return k===void 0&&(k=b.size,b.set(M,k)),k}const S=d.length*v.length<1e6&&g.onlyCareAboutPrefixOfOriginalLines,A=d.map(M=>y(S?M:M.trim())),T=v.map(M=>y(S?M:M.trim())),w=new p.LineSequence(A,d),D=new p.LineSequence(T,v),I=d.every(M=>M.trim().length===0);let O;S?I?O=m.DiffAlgorithmResult.trivial(w,D):O=c(w,D,a):w.length+D.length<1700?O=this.dynamicProgrammingDiffing.compute(w,D,a,(M,k)=>d[M]===v[k]?v[k].length===0?.1:1+Math.log(1+v[k].length):.99):O=this.myersDiffingAlgorithm.compute(w,D,a);const P=O.diffs,R=O.hitTimeout;if(S){const M=P.map(k=>new f.DetailedLineRangeMapping(new r.LineRange(k.seq1Range.start+1,k.seq1Range.endExclusive+1),new r.LineRange(k.seq2Range.start+1,k.seq2Range.endExclusive+1),[]));return new s.LinesDiff(M,[],R)}return super.computeDiff(d,v,g)}}t.InlineStreamDiffComputer=h},33062:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineStreamDiffHandler=t.EComputerMode=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(20868),m=e(60304),E=e(28423),p=e(52451),_=e(84968),s=e(46739),f=e(87822),c=e(25539),h=e(76755),u=e(80715);var d;(function(a){a.legacy="legacy",a.default="default"})(d||(t.EComputerMode=d={}));const v=new h.InlineStreamDiffComputer;let g=class extends o.Disposable{constructor(b){super(),this.monacoEditor=b,this._onDidEditChange=this.registerDispose(new o.Emitter),this.onDidEditChange=this._onDidEditChange.event,this.rawOriginalTextLinesTokens=[],this.undoRedoGroup=new c.UndoRedoGroup,this.diffModel=(0,E.observableValue)(this,void 0),this.finallyDiffModel=(0,E.observableValue)(this,void 0),this.currentEditLine=0,this.isEditing=!1;const y=m.StandaloneServices.get(f.IModelService);this.virtualModel=y.createModel("",null,o.Uri.from({scheme:o.Schemes.inMemory,path:"inline-stream-diff/"+(0,o.randomString)(8)}),!0),this.originalModel=this.monacoEditor.getModel(),this.livePreviewDiffDecorationModel=this.injector.get(u.LivePreviewDiffDecorationModel,[this.monacoEditor]),this.addDispose(this.livePreviewDiffDecorationModel),this.addDispose(this.virtualModel);const S=this.livePreviewDiffDecorationModel.onDispose(()=>{this.dispose(),S.dispose()})}setPreviewerOptions(b){this.previewerOptions=b,this.livePreviewDiffDecorationModel.setPreviewerOptions({partialEditWidgetOptions:{hideAcceptPartialEditWidget:b.hideAcceptPartialEditWidget},renderRemovedWidgetImmediately:b.renderRemovedWidgetImmediately})}initialize(b){const y=this.originalModel.getEOL(),S=b.getStartPosition(),A=b.getEndPosition();this.rawOriginalTextLines=this.originalModel.getValueInRange(l.Range.fromPositions(S,A)).split(y),this.rawOriginalTextLinesTokens=this.rawOriginalTextLines.map((w,D)=>{const I=S.lineNumber+D;return this.originalModel.tokenization.forceTokenization(I),this.originalModel.tokenization.getLineTokens(I)});const T=p.LineRange.fromRangeInclusive(l.Range.fromPositions({lineNumber:b.startLineNumber,column:1},{lineNumber:b.endLineNumber,column:Number.MAX_SAFE_INTEGER}));this.livePreviewDiffDecorationModel.initialize(T)}getVirtualModelValue(){return this.virtualModel.getValue()}getOriginModelValue(){return this.rawOriginalTextLines.join(`
|
|
28321
|
-
`)}get onPartialEditWidgetListChange(){return this.livePreviewDiffDecorationModel.onPartialEditWidgetListChange}computeDiff(b,y,S=d.default){const A=(S===d.default?v:_.linesDiffComputers.getLegacy()).computeDiff(b,y,{computeMoves:!1,maxComputationTimeMs:200,ignoreTrimWhitespace:!1,onlyCareAboutPrefixOfOriginalLines:!0});let T=A.changes;A.hitTimeout&&(T=[new s.DetailedLineRangeMapping(new p.LineRange(1,b.length+1),new p.LineRange(1,y.length+1),void 0)]);const w=[];let D=[];for(const R of T)if(R.modified.endLineNumberExclusive===y.length+1&&S===d.default){if(D=b.slice(R.original.startLineNumber-1,R.original.endLineNumberExclusive-1),R.modified.isEmpty)continue;w.push({removedTextLines:[],removedLinesOriginalRange:new p.LineRange(R.original.startLineNumber,R.original.startLineNumber),addedRange:R.modified,relativeInnerChanges:void 0})}else w.push({removedTextLines:b.slice(R.original.startLineNumber-1,R.original.endLineNumberExclusive-1),removedLinesOriginalRange:R.original,addedRange:R.modified,relativeInnerChanges:R.innerChanges?R.innerChanges.map(M=>({originalRange:M.originalRange.delta(-R.original.startLineNumber+1),modifiedRange:M.modifiedRange.delta(-R.modified.startLineNumber+1)})):void 0});const I=[...y,...D];let O=0,P=new p.LineRange(1,1);return D.length>0&&(O=y.length+1,P=new p.LineRange(y.length+1,y.length+1+D.length)),{changes:w,newFullRangeTextLines:I,activeLine:O,pendingRange:P}}calculateAddedDecorationCollectionState(b){const y=this.getZone();return b.changes.map(A=>{const T=A.addedRange,w={lineNumber:y.startLineNumber+T.startLineNumber-1,column:1},D={lineNumber:y.startLineNumber+T.endLineNumberExclusive-2,column:1};return{startPosition:w,endPosition:D,len:T.endLineNumberExclusive-T.startLineNumber}})}renderPartialEditWidgets(b){const y=this.calculateAddedDecorationCollectionState(b);this.livePreviewDiffDecorationModel.touchPartialEditWidgets(y.map(S=>S.startPosition.lineNumber))}renderAddedRangeDecoration(b){const y=this.calculateAddedDecorationCollectionState(b);this.livePreviewDiffDecorationModel.touchAddedRange(y)}renderRemovedRangeDecoration(b){const{changes:y}=b,S=this.getZone();let A=0;const T=[];for(const w of y){const{removedTextLines:D,removedLinesOriginalRange:I,addedRange:O}=w;D.length>0&&T.push({position:{column:1,lineNumber:S.startLineNumber+I.startLineNumber-2-A},textLines:D.map((P,R)=>({text:P,lineTokens:this.rawOriginalTextLinesTokens[I.startLineNumber-1+R]}))}),A+=I.length-O.length}this.livePreviewDiffDecorationModel.touchRemovedWidget(T,()=>{this._onDidEditChange.fire()})}pushStackElement(){const b=this.livePreviewDiffDecorationModel.createEditStackElement(this.undoRedoGroup);b.attachModel(this.livePreviewDiffDecorationModel),b.registerUndo(y=>{y.dispose()})}renderDiffEdits(b){const{activeLine:y,newFullRangeTextLines:S,pendingRange:A}=b,T=this.originalModel.getEOL(),w=this.getZone(),D=w.startLineNumber<w.endLineNumberExclusive?new l.Range(w.startLineNumber,1,w.endLineNumberExclusive-1,this.originalModel.getLineMaxColumn(w.endLineNumberExclusive-1)):new l.Range(w.startLineNumber,1,w.startLineNumber,1),I=this.originalModel.getValueInRange(D).split(T),O=_.linesDiffComputers.getDefault().computeDiff(I,S,{computeMoves:!1,maxComputationTimeMs:200,ignoreTrimWhitespace:!1}),P=[];if(O.hitTimeout){let R=S.join(T);D.isEmpty()&&(R+=T);const M={range:D,text:R,forceMoveMarkers:!1};P.push(M)}else for(const R of O.changes){let M=S.slice(R.modified.startLineNumber-1,R.modified.endLineNumberExclusive-1).join(T),k;R.original.isEmpty?(k=new l.Range(D.startLineNumber+R.original.startLineNumber-1,1,D.startLineNumber+R.original.startLineNumber-1,1),M+=T):R.modified.isEmpty?(k=new l.Range(D.startLineNumber+R.original.startLineNumber-1,1,D.startLineNumber+R.original.endLineNumberExclusive-1,1),M=null):k=new l.Range(D.startLineNumber+R.original.startLineNumber-1,1,D.startLineNumber+R.original.endLineNumberExclusive-2,this.originalModel.getLineMaxColumn(D.startLineNumber+R.original.endLineNumberExclusive-2));const B={range:k,text:M,forceMoveMarkers:!1};P.push(B)}this.originalModel.pushEditOperations(null,P,()=>null,this.undoRedoGroup),this.livePreviewDiffDecorationModel.updateZone(new p.LineRange(w.startLineNumber,w.startLineNumber+S.length)),y>0?this.livePreviewDiffDecorationModel.touchActiveLine(y):this.livePreviewDiffDecorationModel.clearActiveLine(),this.renderAddedRangeDecoration(b),A.length>0?this.livePreviewDiffDecorationModel.touchPendingRange(A):this.livePreviewDiffDecorationModel.clearPendingLine(),this.renderRemovedRangeDecoration(b),this._onDidEditChange.fire()}recompute(b,y){y&&this.virtualModel.setValue(y);const S=this.virtualModel.getLinesContent();return this.computeDiff(this.rawOriginalTextLines,S,b)}async rateRenderEditController(){var b;if(this.isEditing===!1){for(this.isEditing=!0;this.currentEditLine<=this.virtualModel.getLinesContent().length;){if(this.disposed)return;const A=this.virtualModel.getLinesContent().slice(0,this.currentEditLine),T=this.computeDiff(this.rawOriginalTextLines,A);(0,E.transaction)(w=>{this.diffModel.set(T,w)}),this.originalModel.id===((b=this.monacoEditor.getModel())===null||b===void 0?void 0:b.id)&&this.renderDiffEdits(T),this.currentEditLine+=1,await(0,o.sleep)(o.FRAME_THREE)}const y=this.finallyDiffModel.get();y&&this.finallyRender(y),this.isEditing=!1}}addLinesToDiff(b,y=d.default){const S=this.recompute(y,b);(0,E.transaction)(A=>{this.diffModel.set(S,A)})}pushRateFinallyDiffStack(b){(0,E.transaction)(y=>{this.finallyDiffModel.set(b,y),this.isEditing===!1&&this.finallyRender(b)})}finallyRender(b){var y;(0,E.transaction)(S=>{this.diffModel.set(b,S)}),this.originalModel.id===((y=this.monacoEditor.getModel())===null||y===void 0?void 0:y.id)&&(this.renderPartialEditWidgets(b),this.renderDiffEdits(b),this.pushStackElement(),this.monacoEditor.focus())}hide(){this.livePreviewDiffDecorationModel.hide()}resume(){this.finallyDiffModel.get()||this.rateRenderEditController(),this.livePreviewDiffDecorationModel.resume()}acceptAll(){this.livePreviewDiffDecorationModel.acceptUnProcessed(),this.dispose()}rejectAll(){this.livePreviewDiffDecorationModel.discardUnProcessed(),this.dispose()}revealFirstDiff(){this.livePreviewDiffDecorationModel.revealFirstDiff()}getZone(){return this.livePreviewDiffDecorationModel.getZone()}getTotalCodeInfo(){return this.livePreviewDiffDecorationModel.getTotalCodeInfo()}};t.InlineStreamDiffHandler=g,n.__decorate([(0,r.Autowired)(r.INJECTOR_TOKEN),n.__metadata("design:type",r.Injector)],g.prototype,"injector",void 0),t.InlineStreamDiffHandler=g=n.__decorate([(0,r.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[Object])],g)},22169:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineStreamDiffService=void 0;const n=e(85608),r=e(76003),o=e(43718);let l=class{constructor(){this._onAcceptDiscardPartialEdit=new o.Emitter,this.onAcceptDiscardPartialEdit=this._onAcceptDiscardPartialEdit.event}launchAcceptDiscardPartialEdit(E){this._onAcceptDiscardPartialEdit.fire(E)}};t.InlineStreamDiffService=l,t.InlineStreamDiffService=l=n.__decorate([(0,r.Injectable)()],l)},54362:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LivePreviewUndoRedoStackElement=void 0;const n=e(25539);class r{get type(){return n.UndoRedoElementType.Resource}get label(){return"Live.Preview.UndoRedo"}get code(){return"Live.Preview.UndoRedo"}get resource(){return this.model.uri}constructor(l){this.model=l,this.confirmBeforeUndo=!1}attachModel(l){this.decorationModel=l}registerUndo(l){this._undo=l}undo(){var l;(l=this._undo)===null||l===void 0||l.call(this,this.decorationModel)}registerRedo(l){this._redo=l}redo(){var l;(l=this._redo)===null||l===void 0||l.call(this,this.decorationModel)}}t.LivePreviewUndoRedoStackElement=r},8106:(L,t,e)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.AddedRangeDecorationsCollection=t.RemovedZoneWidget=t.AcceptPartialEditWidget=t.EPartialEdit=t.PendingRangeDecoration=t.AddedRangeDecoration=t.ActiveLineDecoration=void 0;const r=e(85608),o=r.__importDefault(e(53373)),l=r.__importStar(e(14041)),m=r.__importDefault(e(25873)),E=e(76003),p=e(41869),_=e(57925),s=e(43718),f=e(52659),c=e(90052),h=e(31324),u=e(34819),d=e(53617),v=e(24522),g=r.__importDefault(e(71749));t.ActiveLineDecoration="activeLine-decoration",t.AddedRangeDecoration="added-range-decoration",t.PendingRangeDecoration="pending-range-decoration";var a;(function(D){D.accept="accept",D.discard="discard"})(a||(t.EPartialEdit=a={}));const b=D=>{const{keyStrings:I,onAccept:O,onDiscard:P,editor:R}=D,[M,k]=l.default.useState(0),B=(0,l.useCallback)(()=>{O?.()},[O]),x=(0,l.useCallback)(()=>{P?.()},[P]);return(0,p.useDisposable)(()=>R.onDidScrollChange(N=>{const{scrollLeftChanged:K,scrollLeft:j}=N;K&&k(j)}),[R]),l.default.createElement("div",{className:(0,o.default)("kt-inline-diff-accept-partial-widget-container",g.default.inline_diff_accept_partial_widget_container),style:{marginLeft:M}},l.default.createElement("div",{className:g.default.content},l.default.createElement("span",{className:(0,o.default)(g.default.accept_btn,g.default.btn),onClick:B},(0,s.localize)("aiNative.inline.diff.accept"),l.default.createElement("span",null,I.acceptSequence)),l.default.createElement("span",{className:(0,o.default)(g.default.discard_btn,g.default.btn),onClick:x},(0,s.localize)("aiNative.inline.diff.reject"),l.default.createElement("span",null,I.discardSequence))))};let y=n=class extends f.ReactInlineContentWidget{constructor(I,O){super(I),this.editor=I,this.editWidgetOptions=O,this._onAccept=this.registerDispose(new s.Emitter),this.onAccept=this._onAccept.event,this._onDiscard=this.registerDispose(new s.Emitter),this.onDiscard=this._onDiscard.event,this.positionPreference=[c.ContentWidgetPositionPreference.EXACT],this.addedLinesCount=0,this.deletedLinesCount=0,this.status="pending"}get group(){return this._group}getSequenceKeyStrings(){let I=this.keybindingRegistry.getKeybindingsForCommand(_.AI_INLINE_DIFF_PARTIAL_EDIT.id);if(I=I.sort((O,P)=>P.args-O.args),!(!I||I.length!==2&&I.some(O=>(0,s.isUndefined)(O.resolved))))return{acceptSequence:this.keybindingRegistry.acceleratorForSequence(I[0].resolved,"")[0],discardSequence:this.keybindingRegistry.acceleratorForSequence(I[1].resolved,"")[0]}}renderView(){var I;if(!((I=this.editWidgetOptions)===null||I===void 0)&&I.hideAcceptPartialEditWidget)return;const O=this.getSequenceKeyStrings();if(O)return l.default.createElement(b,{keyStrings:O,onAccept:()=>this._onAccept.fire(),onDiscard:()=>this._onDiscard.fire(),editor:this.editor})}id(){return this._id||(this._id=`${n.ID}_${(0,s.uuid)(4)}`),this._id}getClassName(){return g.default.accept_partial_edit_widget_id}recordAddedRangeId(I){this._addedRangeId=I}getAddedRangeId(){return this._addedRangeId}resume(){this.status="pending",this.addedLinesCount=0,this.deletedLinesCount=0,super.resume()}setGroup(I){this._group=I}get isPending(){return this.status==="pending"}accept(I,O){this.status="accept",this.addedLinesCount=I,this.deletedLinesCount=O,super.hide()}get isAccepted(){return this.status==="accept"}discard(I,O){this.status="discard",this.addedLinesCount=I,this.deletedLinesCount=O,super.hide()}get isRejected(){return this.status==="discard"}};t.AcceptPartialEditWidget=y,y.ID="AcceptPartialEditWidgetID",r.__decorate([(0,E.Autowired)(p.KeybindingRegistry),r.__metadata("design:type",Object)],y.prototype,"keybindingRegistry",void 0),t.AcceptPartialEditWidget=y=n=r.__decorate([(0,E.Injectable)({multiple:!0}),r.__metadata("design:paramtypes",[Object,Object])],y);const S=({dom:D,editor:I})=>{const O=l.default.useRef(null),[P,R]=l.default.useState(0),[M,k]=l.default.useState(0);return(0,l.useEffect)(()=>{D&&O&&O.current&&O.current.appendChild(D)},[D,O]),(0,p.useDisposable)(()=>I.onDidScrollChange(B=>{const{scrollLeftChanged:x,scrollLeft:N}=B;x&&R(N)}),[I]),(0,p.useDisposable)(()=>(k(I.getOption(h.EditorOption.layoutInfo).contentLeft),I.onDidChangeConfiguration(B=>{B.hasChanged(h.EditorOption.layoutInfo)&&k(I.getOption(h.EditorOption.layoutInfo).contentLeft)})),[I]),l.default.createElement("div",{className:g.default.inline_diff_remove_zone_fixed_box,style:{marginLeft:M+"px"}},l.default.createElement("div",{className:g.default.inline_diff_remove_zone,ref:O,style:{marginLeft:-P+"px"}}))};class A extends u.ZoneWidget{get isHidden(){return this._hidden}get group(){return this._group}constructor(I,O,P){super(I,P),this.textLines=O,this._hidden=!1,this.status="pending",(0,s.isDefined)(P.isHidden)&&(this._hidden=P.isHidden),(0,s.isDefined)(P.recordPosition)&&(this._recordPosition=P.recordPosition),(0,s.isDefined)(P.undoRedoGroup)&&(this._group=P.undoRedoGroup);const R=this._positionMarkerId;this._disposables.add(R.onDidChange(M=>{const k=R.getRange(0);k&&(this._recordPosition=k.getStartPosition())}))}setGroup(I){this._group=I}_fillContainer(I){I.classList.add(g.default.inline_diff_remove_zone_widget_container),this.root=m.default.createRoot(I)}getRemovedTextLines(){return this.textLines.map(I=>I.text)}get height(){return this.textLines.length}getLastPosition(){return this.position||this._recordPosition}accept(){this.status="accept",this.hide()}discard(){this.status="discard",super.hide()}hide(){this._hidden=!0,super.hide()}resume(){this.status="pending";const I=this.getLastPosition();I&&this.show(I,this.height)}show(I,O){this._hidden=!1,this.status="pending",super.show(I,O)}revealRange(){}create(){super.create(),this.mountRender()}mountRender(){const I=document.createElement("div");(0,v.renderLines)(I,this.editor.getOption(h.EditorOption.tabIndex),this.textLines.map(({text:O,lineTokens:P})=>({content:O,decorations:[],lineTokens:P})),this.editor.getOptions()),this.root.render(l.default.createElement(S,{dom:I,editor:this.editor}))}dispose(){this.root.unmount(),super.dispose()}}t.RemovedZoneWidget=A;class T extends d.DeltaDecorations{constructor(){super(...arguments),this.status="pending"}accept(){this.status="accept",super.hide()}discard(){this.status="discard",super.hide()}}class w extends d.EnhanceDecorationsCollection{createDecorations(I){return new T(I)}}t.AddedRangeDecorationsCollection=w},80715:(L,t,e)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.LivePreviewDiffDecorationModel=void 0;const r=e(85608),o=e(76003),l=e(41869),m=e(43718),E=e(20868),p=e(60304),_=e(2261),s=e(74547),f=e(25539),c=e(77659),h=e(15989),u=r.__importDefault(e(71749)),d=e(22169),v=e(54362),g=e(8106);let a=n=class extends m.Disposable{constructor(y){super(),this.monacoEditor=y,this._onPartialEditWidgetListChange=this.registerDispose(new m.Emitter),this.onPartialEditWidgetListChange=this._onPartialEditWidgetListChange.event,this.options={partialEditWidgetOptions:{}},this.partialEditWidgetList=[],this.removedZoneWidgets=[],this.model=this.monacoEditor.getModel(),this.undoRedoService=p.StandaloneServices.get(f.IUndoRedoService),this.aiNativeContextKey=this.injector.get(c.AINativeContextKey,[this.monacoEditor.contextKeyService]),this.activeLineDec=this.monacoEditor.createDecorationsCollection(),this.pendingRangeDec=this.monacoEditor.createDecorationsCollection(),this.addDispose(this.inlineStreamDiffService.onAcceptDiscardPartialEdit(S=>{const A=this.monacoEditor.getPosition(),T=this.partialEditWidgetList.filter(w=>!w.isHidden).sort((w,D)=>{var I,O,P,R;const M=((O=(I=w.getPosition())===null||I===void 0?void 0:I.position)===null||O===void 0?void 0:O.lineNumber)||1,k=((R=(P=D.getPosition())===null||P===void 0?void 0:P.position)===null||R===void 0?void 0:R.lineNumber)||1,B=Math.abs(A.lineNumber-M),x=Math.abs(A.lineNumber-k);return B-x});T.length>0&&this.handlePartialEditAction(S?g.EPartialEdit.accept:g.EPartialEdit.discard,T[0])})),this.addedRangeDec=new g.AddedRangeDecorationsCollection(this.monacoEditor),this.addDispose(this.addedRangeDec.onDidDecorationsChange(S=>{this.aiNativeContextKey.inlineDiffPartialEditsIsVisible.get()&&this.partialEditWidgetList.forEach(T=>{const w=S.find(D=>T.getAddedRangeId()===D.id);if(w){const D=w.getRange();T.setOptions({position:{lineNumber:D.startLineNumber,column:1}}),T.layoutContentWidget()}})})),this.addDispose(m.Disposable.create(()=>this.clear()))}clear(){this.clearPendingLine(),this.clearActiveLine(),this.clearAddedLine(),this.clearRemovedWidgets(),this.clearPartialEditWidgetList()}hide(){this.addedRangeDec.getDecorations().forEach(y=>y.hide()),this.partialEditWidgetList.forEach(y=>y.hide()),this.removedZoneWidgets.forEach(y=>y.hide()),this.activeLineDec.clear(),this.pendingRangeDec.clear()}resume(){this.addedRangeDec.getDecorations().forEach(y=>y.status==="pending"&&y.resume()),this.partialEditWidgetList.forEach(y=>y.status==="pending"&&y.resume()),this.removedZoneWidgets.forEach(y=>y.status==="pending"&&y.resume())}initialize(y){this.updateZone(y)}getRemovedWidgets(){return this.removedZoneWidgets}showRemovedWidgetByLineNumber(y,S,A){const T=new E.Position(y,1),w=S.length,D=new g.RemovedZoneWidget(this.monacoEditor,S,{...A,showInHiddenAreas:!0,showFrame:!1,showArrow:!1});D.create(),this.removedZoneWidgets.push(D),A.isHidden?D.hide():D.show(T,w)}updateZone(y){this.zone=y}getZone(){return this.zone}touchActiveLine(y){const S=this.getZone();this.activeLineDec.set([{range:E.Range.fromPositions({lineNumber:S.startLineNumber+y-1,column:0}),options:s.ModelDecorationOptions.register({description:g.ActiveLineDecoration,isWholeLine:!0,className:u.default.inline_diff_current,zIndex:l.StackingLevel.Workbench})}])}doDiscardPartialWidget(y,S,A){let T=null,w=0,D=0;if(S&&S.length>0){const I=S.getRange();T=_.EditOperation.delete(E.Range.lift({startLineNumber:I.startLineNumber,startColumn:I.startColumn,endLineNumber:I.endLineNumber+1,endColumn:1})),w=S.length,S.hide()}if(A){const I=A.getLastPosition(),O=this.model.getEOL(),P=A.getRemovedTextLines();D=P.length;const R=P.join(O)+O;T?T=_.EditOperation.replace(E.Range.lift(T.range),R):T=_.EditOperation.insert(I.delta(1),R),A.hide()}return y.discard(w,D),T}handlePartialEditAction(y,S,A=!0,T=!1){const w=S.getPosition().position,D=this.aiReporter.getRelationId(),I=this.model,O=this.removedZoneWidgets.find(Z=>Z.getLastPosition().lineNumber===Math.max(1,w.lineNumber-1)),P=this.addedRangeDec.getDecorationByLineNumber(w.lineNumber),R=P?.length||0,M=O?.height||0,k=new f.UndoRedoGroup;S.setGroup(k),O?.setGroup(k),P?.setGroup(k);const B=Z=>Z.partialEditWidgetList.find(X=>X.group===k),x=Z=>Z.removedZoneWidgets.find(X=>X.group===k),N=Z=>Z.addedRangeDec.getDecorationByGroup(k);let K;const j=O?.getRemovedTextLines().join(`
|
|
28319
|
+
`).slice(0,g.startPosition.row).reduce((y,S)=>y+S.length,0);return b+=g.startPosition.row,b+=g.startPosition.column,{codeBlock:g.text,range:{start:{line:g.startPosition.row,character:0},end:{line:g.endPosition.row,character:1/0}},offset:b,type:g.startPosition.row===g.endPosition.row?m.NearestCodeBlockType.Line:m.NearestCodeBlockType.Block}}return null}dispose(){this.parser.delete(),this.lruCache.clear()}};t.LanguageParser=s,n.__decorate([(0,o.Autowired)(_.WasmModuleManager),n.__metadata("design:type",_.WasmModuleManager)],s.prototype,"wasmModuleManager",void 0),n.__decorate([(0,o.Autowired)(p.TreeSitterLanguageFacts),n.__metadata("design:type",p.TreeSitterLanguageFacts)],s.prototype,"languageFacts",void 0),t.LanguageParser=s=n.__decorate([(0,o.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[String])],s)},85679:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LanguageParserService=void 0;const n=e(85608),r=e(76003),o=e(3073),l=e(22486);let m=class{constructor(){this.pool=new Map}createParser(p){const _=l.parserNameMap[p];if(_)return this.pool.has(_)||this.pool.set(_,this.injector.get(o.LanguageParser,[_])),this.pool.get(_)}dispose(){this.pool.forEach(p=>p.dispose()),this.pool.clear()}};t.LanguageParserService=m,n.__decorate([(0,r.Autowired)(r.INJECTOR_TOKEN),n.__metadata("design:type",r.Injector)],m.prototype,"injector",void 0),t.LanguageParserService=m=n.__decorate([(0,r.Injectable)()],m)},53374:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toMonacoRange=e;function e(n){return{startLineNumber:n.startPosition.row+1,startColumn:n.startPosition.column+1,endLineNumber:n.endPosition.row+1,endColumn:n.endPosition.column+1}}},19584:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GolangLanguageFacts=void 0;const e=["function_declaration","method_declaration","block","if_statement","else_statement","switch_statement","case_clause","for_statement","range_clause","type_switch_statement","type_case_clause","comm_clause","select_statement","go_statement","defer_statement"],n=new Set(e);class r{constructor(){this.name="go",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return n}isCodeBlock(l){return n.has(l)}}t.GolangLanguageFacts=r},22486:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TreeSitterLanguageFacts=t.knownLanguageFacts=void 0;const n=e(85608);n.__exportStar(e(17973),t);const r=e(76003),o=e(19584),l=e(44606),m=e(82381),E=e(41486),p=e(98588),_=e(96436),s=e(2349),f=e(78542),c=new Set;t.knownLanguageFacts=[o.GolangLanguageFacts,l.JavaLanguageFacts,m.JavaScriptLanguageFacts,E.JavaScriptReactLanguageFacts,p.PythonLanguageFacts,_.RustLanguageFacts,s.TypeScriptLanguageFacts,f.TypeScriptReactLanguageFacts];let h=class{constructor(){this.langs=new Map,t.knownLanguageFacts.forEach(d=>{const v=new d;this.langs.set(v.name,v)})}isCodeBlock(d,v){const g=this.langs.get(d);return g&&g.isCodeBlock?g.isCodeBlock(v):!1}isFunctionCodeBlock(d,v){const g=this.langs.get(d);return g&&g.isFunctionCodeBlocks?g.isFunctionCodeBlocks(v):!1}provideFunctionInfo(d,v){const g=this.langs.get(d);return g&&g.provideFunctionInfo?g.provideFunctionInfo(v):null}getCodeBlockTypes(d){const v=this.langs.get(d);return v?v.provideCodeBlocks():c}};t.TreeSitterLanguageFacts=h,t.TreeSitterLanguageFacts=h=n.__decorate([(0,r.Injectable)(),n.__metadata("design:paramtypes",[])],h)},44606:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaLanguageFacts=void 0;const e=["compilation_unit","class_declaration","interface_declaration","enum_declaration","method_declaration","constructor_declaration","block","static_initializer","instance_initializer","if_statement","switch_statement","while_statement","do_statement","for_statement","enhanced_for_statement","try_statement","catch_clause","finally_clause"],n=new Set(["method_declaration","constructor_declaration"]),r=new Set(e);class o{constructor(){this.name="java",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return r}isCodeBlock(m){return r.has(m)}isFunctionCodeBlocks(m){return n.has(m)}}t.JavaLanguageFacts=o},82381:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptLanguageFacts=t.functionBlockCodeTypes=t.javascriptBlockCodeTypes=void 0;const n=e(53374);t.javascriptBlockCodeTypes=["function","function_declaration","function_expression","arrow_function","class_declaration","method_definition","if_statement","switch_case","while_statement","do_statement","for_statement","for_in_statement","try_statement","catch_clause","block","export_statement","lexical_declaration"],t.functionBlockCodeTypes=["function","function_declaration","function_expression","arrow_function","method_definition"];const r=new Set(t.functionBlockCodeTypes),o=new Set(t.javascriptBlockCodeTypes);class l{constructor(){this.name="javascript",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return o}isCodeBlock(E){return o.has(E)}isFunctionCodeBlocks(E){return r.has(E)}provideFunctionInfo(E){var p,_,s;switch(E.type){case"function_declaration":case"function_expression":return{infoCategory:"function",type:E.type,name:((p=E.firstNamedChild)===null||p===void 0?void 0:p.text)||"",signatures:E.children.filter(f=>f.type==="parameter").map(f=>{var c;return((c=f.firstChild)===null||c===void 0?void 0:c.text)||""}),range:(0,n.toMonacoRange)(E)};case"arrow_function":{const f=E.parent;return f&&f.type==="variable_declarator"&&f.parent&&(f.parent.type==="lexical_declaration"||f.parent.type==="export_statement"||f.parent.type==="variable_declaration")?{infoCategory:"function",type:E.type,name:((_=f.firstChild)===null||_===void 0?void 0:_.text)||"",signatures:E.children.filter(c=>c.type==="parameter").map(c=>{var h;return((h=c.firstChild)===null||h===void 0?void 0:h.text)||""}),range:(0,n.toMonacoRange)(f.parent)}:null}case"method_definition":return{infoCategory:"function",type:E.type,name:((s=E.firstNamedChild)===null||s===void 0?void 0:s.text)||"",signatures:E.children.filter(f=>f.type==="parameter").map(f=>{var c;return((c=f.firstChild)===null||c===void 0?void 0:c.text)||""}),range:(0,n.toMonacoRange)(E)}}return null}}t.JavaScriptLanguageFacts=l},41486:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JavaScriptReactLanguageFacts=t.javascriptreactBlockCodeTypes=void 0;const n=e(82381);t.javascriptreactBlockCodeTypes=[...n.javascriptBlockCodeTypes,"jsx_element","jsx_self_closing_element","jsx_expression","jsx_fragment"];const r=new Set(t.javascriptreactBlockCodeTypes);class o{constructor(){this.name="jsx",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return r}isCodeBlock(m){return r.has(m)}}t.JavaScriptReactLanguageFacts=o},98588:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PythonLanguageFacts=t.pythonBlockCodeTypes=void 0,t.pythonBlockCodeTypes=["function_definition","class_definition","compound_statement","if_statement","elif_clause","else_clause","for_statement","while_statement","try_statement","except_clause","with_statement","decorated_definition"];const e=new Set(t.pythonBlockCodeTypes);class n{constructor(){this.name="python",this.listCommentStyle="# ",this.blockCommentStyle={start:"'''",end:"'''",linePrefix:""}}provideCodeBlocks(){return e}isCodeBlock(o){return e.has(o)}}t.PythonLanguageFacts=n},96436:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RustLanguageFacts=t.rustBlockCodeTypes=void 0,t.rustBlockCodeTypes=["function_item","impl_item","trait_item","block","if_expression","match_expression","while_expression","loop_expression","for_expression","closure_expression","struct_item","enum_item","union_item","mod_item"];const e=new Set(t.rustBlockCodeTypes);class n{constructor(){this.name="rust",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return e}isCodeBlock(o){return e.has(o)}}t.RustLanguageFacts=n},17973:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parserIdentifierMap=t.parserNameMap=void 0;const r=e(85608).__importDefault(e(19891)),o={typescript:"typescript",typescriptreact:"tsx",javascript:"javascript",javascriptreact:"jsx",rust:"rust",python:"python",java:"java",go:"go"};t.parserNameMap=o,t.parserIdentifierMap=(0,r.default)(t.parserNameMap)},2349:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TypeScriptLanguageFacts=t.typescriptBlockTypes=void 0,t.typescriptBlockTypes=["function","function_declaration","function_expression","arrow_function","class_declaration","interface_declaration","method_definition","method_signature","enum_declaration","type_alias_declaration","lexical_declaration","if_statement","switch_case","while_statement","do_statement","for_statement","for_in_statement","for_of_statement","try_statement","catch_clause","block","module","public_field_definition","private_field_definition","export_statement"];const e=new Set(t.typescriptBlockTypes);class n{constructor(){this.name="typescript",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return e}isCodeBlock(o){return e.has(o)}}t.TypeScriptLanguageFacts=n},78542:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TypeScriptReactLanguageFacts=t.typescriptreactBlockTypes=void 0;const n=e(2349);t.typescriptreactBlockTypes=[...n.typescriptBlockTypes,"jsx_element","jsx_self_closing_element","jsx_expression","jsx_fragment"];const r=new Set(t.typescriptreactBlockTypes);class o{constructor(){this.name="tsx",this.listCommentStyle="// ",this.blockCommentStyle={start:"/**",end:" */",linePrefix:" * "}}provideCodeBlocks(){return r}isCodeBlock(m){return r.has(m)}}t.TypeScriptReactLanguageFacts=o},67045:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WasmModuleManager=void 0;const n=e(85608),r=n.__importDefault(e(13833)),o=e(76003),l=e(6858),m=e(70392);let E=class{async resolveResourceUri(){const _=await this.rendererRuntime.provideResourceUri(l.EKnownResources.TreeSitterWasmDirectory);this.resolvedResourceUriDeferred.resolve(_)}constructor(){this.resolvedResourceUriDeferred=new m.Deferred,this.cachedRuntime=new Map,this.parserInitialized=!1,this.resolveResourceUri()}async initParser(){const _=await this.resolvedResourceUriDeferred.promise;let s;return _.endsWith("/")?s=`${_}tree-sitter.wasm`:s=`${_}/tree-sitter.wasm`,this.parserInitialized||(await r.default.init({locateFile:()=>s}),this.parserInitialized=!0),new r.default}async loadLanguage(_){if(!this.cachedRuntime.has(_)){const s=new m.Deferred;this.cachedRuntime.set(_,s);const f=await this.resolvedResourceUriDeferred.promise;let c;f.endsWith("/")?c=`${f}tree-sitter-${_}.wasm`:c=`${f}/tree-sitter-${_}.wasm`,fetch(c).then(h=>h.arrayBuffer()).then(h=>{s.resolve(h)})}return this.cachedRuntime.get(_).promise}};t.WasmModuleManager=E,n.__decorate([(0,o.Autowired)(l.RendererRuntime),n.__metadata("design:type",l.RendererRuntime)],E.prototype,"rendererRuntime",void 0),t.WasmModuleManager=E=n.__decorate([(0,o.Injectable)(),n.__metadata("design:paramtypes",[])],E)},4972:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AIRightTabRenderer=t.AILeftTabRenderer=t.AIChatTabRendererWithTab=t.AIChatTabRenderer=void 0;const n=e(85608),r=n.__importDefault(e(53373)),o=n.__importStar(e(14041)),l=e(41869),m=e(89195),E=e(1149),p=e(43718),_=e(11090),s=e(63067),f=e(46245),c=e(66368),h=e(19951),u=e(752),d=e(19413),v=n.__importDefault(e(87708)),g=()=>{const{side:T}=o.default.useContext(h.TabbarConfig),w=(0,l.useInjectable)(u.TabbarServiceFactory)(T);return(0,o.useEffect)(()=>{w.setIsLatter(!0)},[w]),o.default.createElement("div",{style:{width:0}},o.default.createElement(f.TabbarViewBase,{tabSize:0,MoreTabView:f.IconElipses,TabView:f.IconTabView,barSize:0,panelBorderSize:1}))},a=({className:T,components:w})=>o.default.createElement(h.TabRendererBase,{side:d.AI_CHAT_VIEW_ID,direction:"left-to-right",id:v.default.ai_chat_panel,className:(0,r.default)(T,`${d.AI_CHAT_VIEW_ID}-slot`),components:w,TabbarView:()=>o.default.createElement(g,null),TabpanelView:()=>o.default.createElement(c.BaseTabPanelView,{PanelView:c.ContainerView,PanelViewProps:{className:v.default.ai_chat_view_container}})});t.AIChatTabRenderer=a;const b=({className:T,components:w})=>o.default.createElement(h.TabRendererBase,{side:d.AI_CHAT_VIEW_ID,direction:"right-to-left",id:v.default.ai_chat_panel,className:(0,r.default)(T,`${d.AI_CHAT_VIEW_ID}-slot`,"design_right_slot"),components:w,TabbarView:()=>o.default.createElement(f.ChatTabbarRenderer2,null),TabpanelView:()=>o.default.createElement(c.BaseTabPanelView,{PanelView:c.ContainerView,PanelViewProps:{className:v.default.ai_chat_view_container}})});t.AIChatTabRendererWithTab=b;const y=({className:T,components:w})=>o.default.createElement(_.DesignLeftTabRenderer,{className:T,components:w,tabbarView:S});t.AILeftTabRenderer=y;const S=()=>{const T=(0,l.useInjectable)(s.IMainLayoutService),w=(0,l.useInjectable)(u.TabbarServiceFactory)(l.SlotLocation.right),D=(0,l.useAutorun)(w.currentContainerId),I=o.default.useMemo(()=>T.getExtraMenu(),[T]),[O]=(0,l.useContextMenus)(I),P=(0,o.useCallback)(({renderContainers:R})=>{const M=w.visibleContainers.filter(k=>{var B;return!(!((B=k.options)===null||B===void 0)&&B.hideTab)});return o.default.createElement(o.default.Fragment,null,M.length>0&&o.default.createElement(m.HorizontalVertical,{margin:"8px auto 0px",width:"60%"}),M.map(k=>R(k,w,D)))},[D,w]);return o.default.createElement(f.LeftTabbarRenderer,{renderOtherVisibleContainers:P,isRenderExtraTopMenus:!1,renderExtraMenus:o.default.createElement("div",{className:v.default.extra_bottom_icon_container},O.length>=0?O.map(R=>o.default.createElement(m.EnhanceIconWithCtxMenu,{key:R.id,id:R.id,wrapperClassName:v.default.extra_bottom_icon,iconClass:R.icon,menuNodes:R.children,skew:{x:-8,y:-4}})):null)})},A=({className:T,components:w})=>{const D=(0,l.useInjectable)(u.TabbarServiceFactory)(l.SlotLocation.right),I=(0,l.useInjectable)(E.DesignLayoutConfig),O=(0,o.useCallback)(()=>{D.updateCurrentContainerId("")},[]),P=(0,o.useCallback)(M=>{const{component:k}=M,{options:B}=k;return o.default.createElement(c.ContainerView,{...M,renderContainerWrap:({children:x})=>o.default.createElement("div",{className:v.default.right_slot_container_wrap},o.default.createElement("div",{className:v.default.header},o.default.createElement("span",{className:v.default.title},B&&B.title),o.default.createElement("div",{className:v.default.side},o.default.createElement(m.EnhancePopover,{id:"ai_right_panel_header_close",title:(0,p.localize)("editor.title.context.close")},o.default.createElement(m.EnhanceIcon,{icon:"close",onClick:O})))),o.default.createElement("div",{className:v.default.container},x))})},[]),R=(0,o.useMemo)(()=>I.useMergeRightWithLeftPanel?v.default.right_tab_renderer:"",[I]);return o.default.createElement(_.DesignRightTabRenderer,{components:w,className:R,tabbarView:()=>o.default.createElement(f.RightTabbarRenderer,{barSize:0,style:{width:0}}),tabpanelView:()=>o.default.createElement(c.BaseTabPanelView,{PanelView:P})})};t.AIRightTabRenderer=A},82983:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AIChatLogoAvatar=void 0;const n=e(85608),r=n.__importDefault(e(14041)),o=e(41869),l=e(89195),m=e(63067),E=e(19413),p=n.__importDefault(e(88473)),_=()=>{const s=(0,o.useInjectable)(m.IMainLayoutService),f=r.default.useCallback(()=>{s.toggleSlot(E.AI_CHAT_VIEW_ID)},[s]);return r.default.createElement("div",{className:p.default.ai_switch,onClick:f},r.default.createElement(l.AILogoAvatar,{iconClassName:p.default.avatar_icon_large}))};t.AIChatLogoAvatar=_},53617:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EnhanceDecorationsCollection=t.DeltaDecorations=void 0;const n=e(43718);class r{get isHidden(){return this._hidden}get codeEditor(){return this.metadata.codeEditor}get deltaData(){return this.metadata.deltaData}get id(){return this.metadata.id}get decorationId(){return this._decorationId}get editorDecoration(){return this.metadata.editorDecoration}get group(){return this._group}constructor(m){this.metadata=m,this._hidden=!1;const{editorDecoration:E,deltaData:p,isHidden:_,group:s}=m;(0,n.isUndefined)(p.length)?this.length=E.range.endLineNumber-E.range.startLineNumber:this.length=p.length,this.range=E.range,this.options=E.options,this.resumeRange=this.range,this._hidden=!!_,this._hidden&&this.hide(),(0,n.isDefined)(s)&&this.setGroup(s)}setGroup(m){this._group=m}setRange(m){this.range=m}getRange(){return this.range}dispose(){var m,E;this.hide(),(E=(m=this.deltaData).dispose)===null||E===void 0||E.call(m)}show(){this.codeEditor.changeDecorations(m=>{this._decorationId=m.addDecoration(this.range,this.options)})}hide(){this.resumeRange=this.range,this._hidden=!0,this._decorationId&&this.codeEditor.changeDecorations(m=>{m.removeDecoration(this._decorationId)})}resume(){this._hidden&&(this._hidden=!1,this.codeEditor.changeDecorations(m=>{this._decorationId=m.addDecoration(this.resumeRange,this.options)}))}}t.DeltaDecorations=r;class o extends n.Disposable{get model(){return this.codeEditor.getModel()}constructor(m){super(),this.codeEditor=m,this.deltaDecorations=[],this._onDidDecorationsChange=this.registerDispose(new n.Emitter),this.onDidDecorationsChange=this._onDidDecorationsChange.event,this.addDispose(this.codeEditor.onDidContentSizeChange(E=>{const{contentHeightChanged:p}=E;p&&this.flush()}))}flush(){this.deltaDecorations=this.deltaDecorations.map(m=>{const{decorationId:E,editorDecoration:{range:p}}=m,_=this.model.getDecorationRange(E);return m.setRange(_??p),m}),this._onDidDecorationsChange.fire(this.deltaDecorations)}delete(m){this.deltaDecorations=this.deltaDecorations.filter(E=>E.id!==m)}createDecorations(m){return new r(m)}set(m){this.clear(),this.deltaDecorations=m.map(E=>{const p=(0,n.uuid)(6),_=this.createDecorations({id:p,editorDecoration:E,codeEditor:this.codeEditor,isHidden:E.isHidden,group:E.group,deltaData:{dispose:()=>this.delete(p),length:E.length}});return _.show(),_})}getDecorations(){return this.deltaDecorations}getDecorationByGroup(m){return this.deltaDecorations.find(E=>E.group===m)}getDecorationByLineNumber(m){return this.deltaDecorations.find(E=>E.getRange().startLineNumber===m)}clear(){this.deltaDecorations.map(m=>m.dispose()),this.deltaDecorations=[]}}t.EnhanceDecorationsCollection=o},44260:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MsgHistoryManager=void 0;const n=e(85608),r=e(76003),o=e(43718);let l=class extends o.Disposable{constructor(){super(...arguments),this.messageMap=new Map,this._onMessageChange=new o.Emitter,this.onMessageChange=this._onMessageChange.event}dispose(){this.clearMessages(),super.dispose()}clearMessages(){this.messageMap.clear()}doAddMessage(E){const p=(0,o.uuid)(6),_=this.messageMap.size,s={...E,id:p,order:_,type:E.type||"string"};return this.messageMap.set(p,s),this._onMessageChange.fire(this.getMessages()),p}getMessages(){return Array.from(this.messageMap.values()).sort((E,p)=>E.order-p.order)}addUserMessage(E){return this.doAddMessage({...E,role:1})}addAssistantMessage(E){return this.doAddMessage({...E,role:2})}updateAssistantMessage(E,p){if(!this.messageMap.has(E))return;const _=this.messageMap.get(E);this.messageMap.set(E,{..._,content:p.content})}};t.MsgHistoryManager=l,t.MsgHistoryManager=l=n.__decorate([(0,r.Injectable)({multiple:!1})],l)},3841:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AINativePreferencesContribution=void 0;const n=e(85608),r=e(41869),o=e(83854);let l=class{constructor(){this.schema=o.aiNativePreferenceSchema}};t.AINativePreferencesContribution=l,t.AINativePreferencesContribution=l=n.__decorate([(0,r.Domain)(r.PreferenceContribution)],l)},83854:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.aiNativePreferenceSchema=t.EInlineDiffPreviewMode=void 0;const n=e(41869),r=e(43718);var o;(function(l){l.inlineLive="inlineLive",l.sideBySide="sideBySide"})(o||(t.EInlineDiffPreviewMode=o={})),t.aiNativePreferenceSchema={properties:{[n.AINativeSettingSectionsId.InlineDiffPreviewMode]:{type:"string",enum:[o.inlineLive,o.sideBySide],enumDescriptions:[(0,r.localize)("preference.ai.native.inlineDiff.preview.mode.inlineLive"),(0,r.localize)("preference.ai.native.inlineDiff.preview.mode.sideBySide")],default:o.inlineLive},[n.AINativeSettingSectionsId.InlineChatAutoVisible]:{type:"boolean",default:!0},[n.AINativeSettingSectionsId.InlineChatCodeActionEnabled]:{type:"boolean",default:!0},[n.AINativeSettingSectionsId.InterfaceQuickNavigationEnabled]:{type:"boolean",default:!0},[n.AINativeSettingSectionsId.ChatVisibleType]:{type:"string",enum:["never","always","default"],default:"default"},[n.AINativeSettingSectionsId.IntelligentCompletionsPromptEngineeringEnabled]:{type:"boolean",default:!0},[n.AINativeSettingSectionsId.IntelligentCompletionsDebounceTime]:{type:"number",default:150},[n.AINativeSettingSectionsId.IntelligentCompletionsCacheEnabled]:{type:"boolean",default:!0},[n.AINativeSettingSectionsId.IntelligentCompletionsAlwaysVisible]:{type:"boolean",default:!1},[n.AINativeSettingSectionsId.CodeEditsLintErrors]:{type:"boolean",default:!1},[n.AINativeSettingSectionsId.CodeEditsLineChange]:{type:"boolean",default:!1},[n.AINativeSettingSectionsId.CodeEditsTyping]:{type:"boolean",default:!1}}}},77633:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AINativeCoreContribution=t.TerminalSuggestionReadableStream=t.ERunStrategy=void 0;const n=e(93062);var r;(function(l){l.EXECUTE="EXECUTE",l.PREVIEW="PREVIEW"})(r||(t.ERunStrategy=r={}));class o extends n.SumiReadableStream{static create(){return new o}}t.TerminalSuggestionReadableStream=o,t.AINativeCoreContribution=Symbol("AINativeCoreContribution")},24522:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ttPolicy=t.renderLines=void 0;const n=e(85608),r=e(55405),o=n.__importStar(e(98236)),l=e(27357),m=e(31324),E=e(33892),p=e(24315),_=(s,f,c,h)=>{const u=h.get(m.EditorOption.disableMonospaceOptimizations),d=h.get(m.EditorOption.stopRenderingLineAfter),v="none",g=h.get(m.EditorOption.renderControlCharacters),a=h.get(m.EditorOption.fontLigatures),b=h.get(m.EditorOption.fontInfo),y=h.get(m.EditorOption.lineHeight),S=new E.StringBuilder(1e4);S.appendString('<div class="suggest-preview-text">');for(let w=0,D=c.length;w<D;w++){const I=c[w],O=I.content;S.appendString('<div class="view-line'),S.appendString('" style="top:'),S.appendString(String(w*y)),S.appendString('px;width:1000000px;">');const P=o.isBasicASCII(O),R=o.containsRTL(O);(0,p.renderViewLine)(new p.RenderLineInput(b.isMonospace&&!u,b.canUseHalfwidthRightwardsArrow,O,!1,P,R,0,I.lineTokens,I.decorations,f,0,b.spaceWidth,b.middotWidth,b.wsmiddotWidth,d,v,g,a!==m.EditorFontLigatures.OFF,null),S),S.appendString("</div>")}S.appendString("</div>"),(0,l.applyFontInfo)(s,b);const A=S.build(),T=t.ttPolicy?t.ttPolicy.createHTML(A):A;s.innerHTML=T};t.renderLines=_,t.ttPolicy=(0,r.createTrustedTypesPolicy)("editorGhostText",{createHTML:s=>s})},90614:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineResultAction=void 0;const r=e(85608).__importStar(e(14041)),o=e(66205),l=e(89195),m=e(43718),E=e(31031),p=({onResultClick:_})=>{const s=(0,r.useMemo)(()=>[{icon:"check",text:(0,m.localize)("aiNative.inline.chat.operate.check.title"),btnType:"default",onClick:()=>_(E.EResultKind.ACCEPT)},{icon:"discard",text:(0,m.localize)("aiNative.operate.discard.title"),onClick:()=>_(E.EResultKind.DISCARD)},{icon:"afresh",text:(0,m.localize)("aiNative.operate.afresh.title"),onClick:()=>_(E.EResultKind.REGENERATE)}],[_]);return r.default.createElement(o.ContentWidgetContainerPanel,{style:{transform:"translateY(4px)"}},r.default.createElement(l.AIInlineResult,{iconItems:s}))};t.InlineResultAction=p},40111:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineChatController=void 0;const n=e(43718),r=e(93062),o=e(98864);class l{static is(E){return E instanceof l&&typeof E.mountReadable=="function"}constructor(E){this.options=E,this._onData=new n.Emitter,this.onData=this._onData.event,this._onEnd=new n.Emitter,this.onEnd=this._onEnd.event,this._onAbort=new n.Emitter,this.onAbort=this._onAbort.event,this._onError=new n.Emitter,this.onError=this._onError.event,this._stream=null,this._listened=!1}calculateCodeBlocks(E){var p;return!((p=this.options)===null||p===void 0)&&p.enableCodeblockRender?(0,o.extractCodeBlocks)(E):E}mountReadable(E){this._stream=E}get isListened(){return this._listened}listen(){if(this._listened)return;if(!this._stream)throw new Error("No Stream mounted");this._listened=!0;const E=new n.ReplyResponse("");let p="";(0,r.listenReadable)(this._stream,{onData:_=>{p+=_.content;const s=this.calculateCodeBlocks(p);E.updateMessage(s),this._onData.fire(E)},onEnd:()=>{this._onEnd.fire()},onError:_=>{n.AbortError.is(_)?this._onAbort.fire():this._onError.fire(new n.ErrorResponse(_))}})}}t.InlineChatController=l},51221:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineChatEditorController=void 0;const n=e(41869),r=e(43718),o=e(66482),l=e(54414),m=e(52902),E=e(77659),p=e(99906),_=e(89132),s=e(38890),f=e(40111),c=e(31031),h=e(26664);class u extends p.BaseAIMonacoEditorController{constructor(){super(...arguments),this.aiInlineChatDisposable=new r.Disposable,this.aiInlineChatOperationDisposable=new r.Disposable,this.inlineChatInUsing=!1}static get(v){return v.getContribution(u.ID)}get aiNativeConfigService(){return this.injector.get(n.AINativeConfigService)}get aiInlineChatService(){return this.injector.get(n.IAIInlineChatService)}get inlineChatFeatureRegistry(){return this.injector.get(r.InlineChatFeatureRegistryToken)}get preferenceService(){return this.injector.get(n.PreferenceService)}get aiReporter(){return this.injector.get(r.IAIReporter)}get workbenchEditorService(){return this.injector.get(l.WorkbenchEditorService)}get codeActionService(){return this.injector.get(_.CodeActionService)}get logger(){return this.injector.get(r.ILogger)}get contextKeyService(){return this.injector.get(n.IContextKeyService)}mount(){if(this.aiNativeContextKey=this.injector.get(E.AINativeContextKey,[this.monacoEditor.contextKeyService]),this.inlineDiffController=s.InlineDiffController.get(this.monacoEditor),!this.monacoEditor)return this.featureDisposable;this.featureDisposable.addDispose(this.aiInlineChatService.onInlineChatVisible(a=>{a?this.showInlineChat(this.monacoEditor):(this.cancelToken(),this.disposeAllWidget())})),this.featureDisposable.addDispose(this.codeActionService.onCodeActionRun(({id:a,range:b})=>{const y=this.workbenchEditorService.currentEditor;y?.getId()===this.monacoEditor.getId()&&(this.monacoEditor.setSelection(b),this.showInlineChat(this.monacoEditor),this.aiInlineContentWidget&&this.aiInlineContentWidget.clickActionId(a,"codeAction"))})),this.featureDisposable.addDispose(this.monacoEditor.onWillChangeModel(()=>{this.disposeAllWidget()}));let v=!1;this.featureDisposable.addDispose(this.monacoEditor.onMouseDown(a=>{const y=a.target.detail;v=!1,!(y&&typeof y=="string"&&y===r.AIInlineChatContentWidgetId)&&this.aiInlineContentWidget&&!this.aiInlineContentWidget.isPersisted&&this.disposeAllWidget()})),this.featureDisposable.addDispose(this.monacoEditor.onMouseUp(a=>{const y=a.target.detail;y&&typeof y=="string"&&y===r.AIInlineChatContentWidgetId?v=!1:v=!0}));let g=this.preferenceService.getValid(r.AINativeSettingSectionsId.InlineChatAutoVisible,!0);return this.featureDisposable.addDispose(this.preferenceService.onSpecificPreferenceChange(r.AINativeSettingSectionsId.InlineChatAutoVisible,({newValue:a})=>{g=a})),this.featureDisposable.addDispose(r.Event.debounce(r.Event.any(this.monacoEditor.onDidChangeCursorSelection,this.monacoEditor.onMouseUp),(a,b)=>b,r.FRAME_THREE)(()=>{!g||!v||this.aiInlineContentWidget&&this.aiInlineContentWidget.isPersisted||this.showInlineChat(this.monacoEditor)})),this.featureDisposable}disposeAllWidget(){[this.aiInlineContentWidget,this.aiInlineChatDisposable,this.aiInlineChatOperationDisposable].forEach(v=>{v?.dispose()}),this.inlineChatInUsing=!1,this.cancelToken()}showInlineContentWidget(v,g){this.aiInlineContentWidget&&this.aiInlineContentWidget.dispose(),this.aiInlineContentWidget=this.injector.get(h.AIInlineContentWidget,[v]),this.aiInlineContentWidget.show({selection:g})}async showInlineChat(v){if(this.contextKeyService.getContextValue(o.CONTEXT_IN_DEBUG_MODE_KEY)||this.aiNativeContextKey.inlineInputWidgetIsVisible.get()||this.aiNativeContextKey.inlineInputWidgetIsStreaming.get()||!this.aiNativeConfigService.capabilities.supportsInlineChat||this.inlineChatInUsing)return;this.inlineChatInUsing=!0,this.disposeAllWidget();const y=v.getSelection();!y||y.isEmpty()||(this.showInlineContentWidget(v,y),this.aiInlineChatDisposable.addDispose(this.aiInlineContentWidget.onActionClick(({actionId:S,source:A})=>{const T=this.inlineChatFeatureRegistry.getEditorHandler(S),w=this.inlineChatFeatureRegistry.getAction(S);if(!T||!w)return;const D=this.getCrossSelection(v);if(!D)return;const I=()=>{const O=T.providerDiffPreviewStrategy?T.providerDiffPreviewStrategy:T.providePreviewStrategy;if(O)return O.bind(this,v,D,this.token)};this.runAction({monacoEditor:v,crossSelection:D,reporterFn:()=>this.aiReporter.start(w.name,{message:w.name,type:r.AIServiceType.InlineChat,source:A,runByCodeAction:A==="codeAction",actionSource:A==="codeAction"?r.ActionSourceEnum.CodeAction:r.ActionSourceEnum.InlineChat,actionType:w.name}),execute:T.execute?T.execute.bind(this,v,D,this.token):void 0,providerPreview:I(),extraData:{actionSource:A==="codeAction"?r.ActionSourceEnum.CodeAction:r.ActionSourceEnum.InlineChat,actionType:w.name}})})))}getCrossSelection(v){const g=v.getSelection();if(!g){this.logger.error("No selection found, aborting inline chat action.");return}return g.setStartPosition(g.startLineNumber,1).setEndPosition(g.endLineNumber,v.getModel().getLineMaxColumn(g.endLineNumber))}convertInlineChatStatus(v,g){if(!this.aiInlineContentWidget)return;const{relationId:a,message:b,startTime:y,isRetry:S,isStop:A}=g;let T;v===c.EInlineChatStatus.DONE&&(T=this.inlineDiffController.getModifyContent()),this.aiInlineChatDisposable.addDispose(this.aiInlineContentWidget.launchChatStatus(v)),this.aiReporter.end(a,{message:b,success:v!==c.EInlineChatStatus.ERROR,replytime:Date.now()-y,isStop:A,isRetry:S,code:T,actionType:g?.actionType,actionSource:g?.actionSource})}visibleDiffWidget(v){const{monacoEditor:g,options:a,reportInfo:b}=v,{chatResponse:y}=a,{relationId:S,startTime:A,isRetry:T,actionType:w,actionSource:D}=b;if(f.InlineChatController.is(y))this.aiInlineChatOperationDisposable.addDispose([y.onError(O=>{this.convertInlineChatStatus(c.EInlineChatStatus.ERROR,{relationId:S,message:O.message||"",startTime:A,isRetry:T,actionSource:D,actionType:w})}),y.onAbort(()=>{this.convertInlineChatStatus(c.EInlineChatStatus.READY,{relationId:S,message:"abort",startTime:A,isRetry:T,isStop:!0,actionSource:D,actionType:w})}),y.onEnd(()=>{this.convertInlineChatStatus(c.EInlineChatStatus.DONE,{relationId:S,message:"",startTime:A,isRetry:T,actionSource:D,actionType:w})})]);else{if(this.aiInlineContentWidget&&this.aiInlineChatDisposable.disposed||r.CancelResponse.is(y)){this.convertInlineChatStatus(c.EInlineChatStatus.READY,{relationId:S,message:y.message||"",startTime:A,isRetry:T,isStop:!0,actionSource:D,actionType:w});return}if(r.ErrorResponse.is(y)){this.convertInlineChatStatus(c.EInlineChatStatus.ERROR,{relationId:S,message:y.message||"",startTime:A,isRetry:T,actionSource:D,actionType:w});return}this.convertInlineChatStatus(c.EInlineChatStatus.DONE,{relationId:S,message:"",startTime:A,isRetry:T,actionSource:D,actionType:w})}this.inlineDiffController.showPreviewerByStream(g,a).mountWidget(this.aiInlineContentWidget)}ensureInlineChatVisible(v,g){this.aiInlineContentWidget.disposed?this.showInlineContentWidget(v,g):this.aiInlineContentWidget.isHidden&&this.aiInlineContentWidget.resume()}async handleDiffPreviewStrategy(v){if(!this.aiInlineContentWidget)return;const{monacoEditor:g,strategy:a,crossSelection:b,relationId:y,isRetry:S,actionType:A,actionSource:T}=v,w=g.getModel();this.aiInlineChatOperationDisposable.dispose(),this.ensureInlineChatVisible(g,b),this.aiInlineChatDisposable.addDispose(this.aiInlineContentWidget.launchChatStatus(c.EInlineChatStatus.THINKING));const D=Date.now();if(this.token.isCancellationRequested){this.convertInlineChatStatus(c.EInlineChatStatus.READY,{relationId:y,message:"abort",startTime:D,isRetry:S,isStop:!0,actionSource:T,actionType:A});return}const I=await a();if(r.CancelResponse.is(I)){this.convertInlineChatStatus(c.EInlineChatStatus.READY,{relationId:y,message:"abort",startTime:D,isRetry:S,isStop:!0,actionSource:T,actionType:A}),this.disposeAllWidget();return}this.aiInlineChatOperationDisposable.addDispose([this.aiInlineContentWidget.onResultClick(O=>{const P=this.inlineDiffController.getModifyContent(),R=this.inlineDiffController.getOriginContent();this.inlineDiffController.handleAction(O),O===c.EResultKind.ACCEPT?(this.aiReporter.end(y,{message:"accept",success:!0,isReceive:!0,isDrop:!1,code:P,originCode:R,actionType:r.ActionTypeEnum.Accept}),(0,r.runWhenIdle)(()=>{this.disposeAllWidget()})):O===c.EResultKind.DISCARD?(this.aiReporter.end(y,{message:"discard",success:!0,isDrop:!0,isReceive:!1,code:P,originCode:R,actionType:r.ActionTypeEnum.Discard}),(0,r.runWhenIdle)(()=>{this.disposeAllWidget()})):O===c.EResultKind.REGENERATE&&(this.aiReporter.end(y,{message:"regenerate",success:!0,isDrop:!0,isReceive:!1,code:P,originCode:R,actionType:r.ActionTypeEnum.Regenerate}),this.handleDiffPreviewStrategy({monacoEditor:g,strategy:a,crossSelection:b,relationId:y,isRetry:!0,actionSource:T,actionType:A}))}),this.aiInlineChatService.onThumbs(O=>{this.aiReporter.end(y,{isLike:O})}),this.inlineDiffController.onMaxLineCount(O=>{requestAnimationFrame(()=>{if(b.endLineNumber===w.getLineCount()){const P=g.getOption(m.monacoApi.editor.EditorOption.lineHeight);this.aiInlineContentWidget.setOffsetTop(P*O+12)}})})]),this.visibleDiffWidget({monacoEditor:g,options:{crossSelection:b,chatResponse:I},reportInfo:{relationId:y,startTime:D,isRetry:S,actionType:A,actionSource:T}})}async runAction(v){const{monacoEditor:g,crossSelection:a,reporterFn:b,execute:y,providerPreview:S,extraData:A}=v;if(y&&(await y(),this.disposeAllWidget()),S){const T=b();await this.handleDiffPreviewStrategy({monacoEditor:g,strategy:S,crossSelection:a,relationId:T,isRetry:!1,actionSource:A?.actionSource,actionType:A?.actionType})}}}t.InlineChatEditorController=u,u.ID="editor.contrib.ai.inline.chat"},2281:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineChatFeatureRegistry=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(57925),m=e(43718),E=e(89132),p=e(74353),_=e(86443);let s=class extends m.Disposable{constructor(){super(...arguments),this.actionsMap=new Map,this.editorHandlerMap=new Map,this.terminalHandlerMap=new Map}dispose(){super.dispose(),this.actionsMap.clear(),this.editorHandlerMap.clear(),this.terminalHandlerMap.clear()}collectActions(c){const{id:h}=c;return this.actionsMap.has(h)?(this.logger.warn(`InlineChatFeatureRegistry: id ${h} already exists`),!1):((0,m.isUndefined)(c.renderType)&&(c.renderType="button"),(0,m.isUndefined)(c.order)&&(c.order=0),this.actionsMap.set(h,c),!0)}removeCollectedActions(c){this.actionsMap.delete(c.id),this.codeActionService.deleteCodeActionById(c.id)}registerEditorInlineChat(c,h){return this.collectActions(c)&&(this.editorHandlerMap.set(c.id,h),this.codeActionService.registerCodeAction(c)),{dispose:()=>{this.removeCollectedActions(c)}}}unregisterEditorInlineChat(c){return this.removeCollectedActions(c)}registerTerminalInlineChat(c,h){return this.collectActions(c)&&((0,m.isUndefined)(h.triggerRules)&&(h.triggerRules="selection"),this.terminalHandlerMap.set(c.id,h)),{dispose:()=>{this.removeCollectedActions(c)}}}unregisterTerminalInlineChat(c){return this.removeCollectedActions(c)}registerInteractiveInput(c,h){const u=()=>{const d=String(this.inlineInputService.getSequenceKeyString());if(!d)return;const v={id:_.InteractiveInputModel.ID,name:(0,m.formatLocalize)("aiNative.inline.chat.operate.chat.title",d.toLocaleUpperCase()),renderType:"button",order:Number.MAX_SAFE_INTEGER};this.actionsMap.has(v.id)?this.actionsMap.set(v.id,v):this.collectActions(v)};return this.addDispose(m.Event.filter(this.keybindingRegistry.onKeybindingsChanged,({affectsCommands:d})=>d.includes(l.AI_INLINE_CHAT_INTERACTIVE_INPUT_VISIBLE.id))(()=>u())),u(),this.inlineInputService.registerInlineInput(c,h)}getEditorActionButtons(){const c=Array.from(this.editorHandlerMap.keys()).filter(h=>{const u=this.actionsMap.get(h);return u&&u.renderType==="button"}).map(h=>this.actionsMap.get(h)).sort((h,u)=>h.order-u.order);return this.actionsMap.has(_.InteractiveInputModel.ID)&&c.push(this.actionsMap.get(_.InteractiveInputModel.ID)),c}getEditorActionMenus(){return Array.from(this.editorHandlerMap.keys()).filter(c=>{const h=this.actionsMap.get(c);return h&&h.renderType==="dropdown"}).map(c=>this.actionsMap.get(c))}getEditorHandler(c){return this.editorHandlerMap.get(c)}getTerminalHandler(c){return this.terminalHandlerMap.get(c)}getTerminalActions(){return Array.from(this.terminalHandlerMap.keys()).map(c=>this.actionsMap.get(c))}getAction(c){return this.actionsMap.get(c)}};t.InlineChatFeatureRegistry=s,n.__decorate([(0,r.Autowired)(o.Logger),n.__metadata("design:type",o.Logger)],s.prototype,"logger",void 0),n.__decorate([(0,r.Autowired)(E.CodeActionService),n.__metadata("design:type",E.CodeActionService)],s.prototype,"codeActionService",void 0),n.__decorate([(0,r.Autowired)(p.InlineInputService),n.__metadata("design:type",p.InlineInputService)],s.prototype,"inlineInputService",void 0),n.__decorate([(0,r.Autowired)(o.KeybindingRegistry),n.__metadata("design:type",Object)],s.prototype,"keybindingRegistry",void 0),t.InlineChatFeatureRegistry=s=n.__decorate([(0,r.Injectable)()],s)},31031:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineChatService=t.EResultKind=t.EInlineChatStatus=void 0;const n=e(85608),r=e(76003),o=e(43718);var l=e(19413);Object.defineProperty(t,"EInlineChatStatus",{enumerable:!0,get:function(){return l.EInlineChatStatus}}),Object.defineProperty(t,"EResultKind",{enumerable:!0,get:function(){return l.EResultKind}});let m=class{constructor(){this._onInlineChatVisible=new o.Emitter,this.onInlineChatVisible=this._onInlineChatVisible.event,this._onThumbs=new o.Emitter,this.onThumbs=this._onThumbs.event}fireThumbsEvent(p){this._onThumbs.fire(p)}};t.InlineChatService=m,t.InlineChatService=m=n.__decorate([(0,r.Injectable)({multiple:!1})],m)},26664:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AIInlineContentWidget=void 0;const n=e(85608),r=n.__importStar(e(14041)),o=e(76003),l=e(41869),m=e(89195),E=e(64102),p=e(43718),_=n.__importStar(e(20868)),s=e(62663),f=e(52659),c=e(77659),h=e(90614),u=e(74353),d=e(86443),v=n.__importDefault(e(26899)),g=e(31031),a=y=>{const{onClickActions:S,onClose:A,onChatStatus:T,onResultClick:w}=y,D=(0,l.useInjectable)(l.IAIInlineChatService),I=(0,l.useInjectable)(p.InlineChatFeatureRegistryToken),[O,P]=(0,r.useState)(g.EInlineChatStatus.READY);(0,r.useEffect)(()=>{const U=new p.Disposable;return U.addDispose(T($=>P($))),()=>{U.dispose()}},[T,D]),(0,r.useEffect)(()=>{O===g.EInlineChatStatus.ERROR&&A?.()},[A]);const R=(0,r.useMemo)(()=>O===g.EInlineChatStatus.THINKING,[O]),M=(0,r.useMemo)(()=>O===g.EInlineChatStatus.DONE,[O]),k=(0,r.useMemo)(()=>O===g.EInlineChatStatus.ERROR,[O]),B=(0,r.useMemo)(()=>I.getEditorActionButtons(),[I]),x=(0,r.useCallback)(U=>{S?.(U)},[S]),N=(0,r.useCallback)(()=>{A?.()},[A]),K=(0,r.useMemo)(()=>I.getEditorActionMenus().map(U=>new E.MenuNode({id:`ai.menu.operation.${U.id}`,label:U.name,className:v.default.more_operation_menu_item,execute:()=>{x(U.id)}})),[I]),j=(0,r.useCallback)(()=>B.length===0&&K.length===0||k?null:M?r.default.createElement(h.InlineResultAction,{onResultClick:w}):r.default.createElement(m.AIAction,{operationList:B,moreOperation:K,onClickItem:x,onClose:N,loading:R}),[B,K,w,O]);return r.default.createElement("div",{className:v.default.inline_chat_controller_box},j())};let b=class extends f.ReactInlineContentWidget{get status(){return this._status}get isPersisted(){return!this.isHidden&&this.status!==g.EInlineChatStatus.READY&&this.status!==g.EInlineChatStatus.ERROR}constructor(S){super(S),this.editor=S,this.allowEditorOverflow=!0,this._onActionClickEmitter=new p.Emitter,this.onActionClick=this._onActionClickEmitter.event,this._onStatusChange=new p.Emitter,this.onStatusChange=this._onStatusChange.event,this._onResultClick=new p.Emitter,this.onResultClick=this._onResultClick.event,this._status=g.EInlineChatStatus.READY,this.aiNativeContextKey=this.injector.get(c.AINativeContextKey,[this.editor.contextKeyService])}launchChatStatus(S){return(0,p.runWhenIdle)(()=>{this._status=S,this._onStatusChange.fire(S)})}dispose(){this.launchChatStatus(g.EInlineChatStatus.READY),super.dispose()}clickActionId(S,A){var T;if(S===d.InteractiveInputModel.ID&&(!((T=this.options)===null||T===void 0)&&T.selection)){this.hide(),this.inlineInputService.visibleBySelection(this.options.selection);return}this._onActionClickEmitter.fire({actionId:S,source:A})}renderView(){return r.default.createElement(a,{onClickActions:S=>this.clickActionId(S,"widget"),onClose:()=>this.dispose(),onChatStatus:this.onStatusChange.bind(this),onResultClick:S=>{this._onResultClick.fire(S)}})}async show(S){super.show(S),this.aiNativeContextKey.inlineChatIsVisible.set(!0)}getDomNode(){const S=super.getDomNode();return requestAnimationFrame(()=>{S.style.zIndex=(l.StackingLevel.FindWidget-1).toString()}),S}async hide(){this.aiNativeContextKey.inlineChatIsVisible.set(!1),super.hide()}setOptions(S){this.options=S}setOffsetTop(S){this.domNode.style.transform=`translateY(${S}px)`}id(){return p.AIInlineChatContentWidgetId}getPosition(){const S=super.getPosition();if(S)return S;if(!this.options)return null;const{selection:A}=this.options;if(!A)return null;const T=this.computePosition(A);return T||null}safeGetLineLastNonWhitespaceColumn(S){const A=this.editor.getModel();S<1&&(S=1);const T=A.getLineCount();return S>T&&(S=T),A.getLineLastNonWhitespaceColumn(S)}toAbovePosition(S,A){return{position:new _.Position(S,A),preference:[s.monacoBrowser.editor.ContentWidgetPositionPreference.ABOVE,s.monacoBrowser.editor.ContentWidgetPositionPreference.BELOW]}}toBelowPosition(S,A){return{position:new _.Position(S,A),preference:[s.monacoBrowser.editor.ContentWidgetPositionPreference.BELOW,s.monacoBrowser.editor.ContentWidgetPositionPreference.ABOVE]}}recheckSelection(S){const A=S.getStartPosition(),T=S.getEndPosition(),D=this.editor.getModel().getLineCount(),I=Math.max(1,T.lineNumber-1),O=Math.min(D,T.lineNumber+1),P=A.with(I,1),R=T.with(O,this.safeGetLineLastNonWhitespaceColumn(O));if(D===1)return this.toBelowPosition(O,this.safeGetLineLastNonWhitespaceColumn(O));if(R.lineNumber===1&&T.lineNumber!==A.lineNumber)return this.computePosition(_.Selection.fromPositions(P,R));const M=this.safeGetLineLastNonWhitespaceColumn(I),k=this.safeGetLineLastNonWhitespaceColumn(O),B=this.safeGetLineLastNonWhitespaceColumn(T.lineNumber);return k>B&&k>M?this.computePosition(_.Selection.fromPositions(R,P)):this.computePosition(_.Selection.fromPositions(P,R))}isProtrudeAbove(S){const A=this.safeGetLineLastNonWhitespaceColumn(S);return A>=this.safeGetLineLastNonWhitespaceColumn(S-1)&&A>=this.safeGetLineLastNonWhitespaceColumn(S-2)}isProtrudeBelow(S){const A=this.safeGetLineLastNonWhitespaceColumn(S);return A>=this.safeGetLineLastNonWhitespaceColumn(S+1)&&A>=this.safeGetLineLastNonWhitespaceColumn(S+2)}computePosition(S){const A=S.getStartPosition(),T=S.getEndPosition();let w=S.getPosition();const I=this.editor.getModel().getLineCount();if(A.lineNumber===T.lineNumber)return this.recheckSelection(S);T.lineNumber-A.lineNumber===1&&(w=T);const O=this.safeGetLineLastNonWhitespaceColumn(w.lineNumber);let P=w.lineNumber,R="below";if(w.equals(A)){if(Math.max(this.safeGetLineLastNonWhitespaceColumn(w.lineNumber-1),this.safeGetLineLastNonWhitespaceColumn(w.lineNumber-2))<=O)return this.toAbovePosition(w.lineNumber,O);for(let B=A.lineNumber;B<=T.lineNumber;B++){if(this.isProtrudeAbove(B)){P=B,R="above";break}if(this.isProtrudeBelow(B)){P=B,R="below";break}}}else if(w.equals(T)){if(Math.max(this.safeGetLineLastNonWhitespaceColumn(w.lineNumber+1),this.safeGetLineLastNonWhitespaceColumn(w.lineNumber+2))<=O)return this.toBelowPosition(w.lineNumber,O);for(let B=Math.min(I,T.lineNumber+1);B>=A.lineNumber;B--){if(this.isProtrudeBelow(B)){P=B,R="below";break}if(this.isProtrudeAbove(B)){P=B,R="above";break}}}const M=this.safeGetLineLastNonWhitespaceColumn(P)+1;return R==="below"?this.toBelowPosition(P,M):this.toAbovePosition(P,M)}};t.AIInlineContentWidget=b,n.__decorate([(0,o.Autowired)(o.INJECTOR_TOKEN),n.__metadata("design:type",o.Injector)],b.prototype,"injector",void 0),n.__decorate([(0,o.Autowired)(u.InlineInputService),n.__metadata("design:type",u.InlineInputService)],b.prototype,"inlineInputService",void 0),t.AIInlineContentWidget=b=n.__decorate([(0,o.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[Object])],b)},15989:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=e(85608);n.__exportStar(e(38890),t),n.__exportStar(e(49444),t),n.__exportStar(e(37679),t),n.__exportStar(e(51347),t)},49444:(L,t,e)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.LiveInlineDiffPreviewer=t.SideBySideInlineDiffWidget=t.BaseInlineDiffPreviewer=void 0;const r=e(85608),o=e(76003),l=e(43718),m=e(20868),E=e(90052),p=e(77714),_=e(52451),s=e(43255),f=e(74547),c=e(11827),h=e(9491),u=e(31031),d=e(33062),v=e(37679);let g=class extends l.Disposable{constructor(S){super(),this.monacoEditor=S,this.inlineContentWidget=null,this.model=this.monacoEditor.getModel(),this.modelId=this.model.id,this.addDispose(l.Disposable.create(()=>{this.inlineContentWidget&&this.inlineContentWidget.dispose(),this.attachNode(void 0)}))}formatIndentation(S){const A=this.selection.startLineNumber,T=(0,p.getLeadingWhitespace)(this.model.getLineContent(A));if(S===p.empty||T===p.empty)return S;const{tabSize:w,insertSpaces:D}=this.model.getOptions(),I=this.model.getEOL(),O=(0,h.getSpaceCnt)(T,w);let P=(0,h.generateIndent)(O,w,D);const R=S.split(I),M=R[0];let k=!1;if(M){const x=(0,p.getLeadingWhitespace)(M);P===x?P="":P.length>x.length?P=P.slice(x.length):(P=x.slice(P.length),k=!0)}return R.map(x=>{if(k){const N=(0,p.getLeadingWhitespace)(x);return x=P+x.substring(N.length),x}return P+x}).join(I)}getNode(){return this.node}mountWidget(S){this.inlineContentWidget=S}layout(){var S,A;(S=this.inlineContentWidget)===null||S===void 0||S.setOptions({position:this.getPosition()}),(A=this.inlineContentWidget)===null||A===void 0||A.layoutContentWidget()}onReady(S){return S(),l.Disposable.NULL}create(S,A={disposeWhenEditorClosed:!0}){this.selection=S,this.node=this.createNode(),this.node.setPreviewerOptions(A)}attachNode(S){this.node=S}show(S,A){}onLineCount(S){return this}setValue(S){}getValue(){return""}getOriginValue(){return""}onError(S){}onAbort(){}onEnd(){}revealFirstDiff(){}render(){}hide(){}resume(){}isModel(S){return this.model.uri.toString()===S}};t.BaseInlineDiffPreviewer=g,r.__decorate([(0,o.Autowired)(o.INJECTOR_TOKEN),r.__metadata("design:type",o.Injector)],g.prototype,"injector",void 0),t.BaseInlineDiffPreviewer=g=r.__decorate([(0,o.Injectable)({multiple:!0}),r.__metadata("design:paramtypes",[Object])],g);let a=n=class extends g{createNode(){const S=this.injector.get(v.InlineDiffWidget,[n.AI_DIFF_WIDGET_ID,{editor:this.monacoEditor,selection:this.selection}]);return S.create(),this.addDispose(S),S}mountWidget(S){super.mountWidget(S),S.addDispose(this)}getPosition(){return m.Position.lift({lineNumber:this.selection.endLineNumber+1,column:1})}layout(){var S;(S=this.inlineContentWidget)===null||S===void 0||S.setPositionPreference([E.ContentWidgetPositionPreference.BELOW]),super.layout()}onReady(S){return this.node?this.node.onReady(S.bind(this)):l.Disposable.NULL}show(S,A){var T;(T=this.node)===null||T===void 0||T.showByLine(S,A)}setValue(S){var A;const T=(A=this.node)===null||A===void 0?void 0:A.getModifiedModel();T?.setValue(this.formatIndentation(S))}getValue(){var S;return((S=this.node)===null||S===void 0?void 0:S.getModifiedModel()).getValue()}getOriginValue(){var S;return((S=this.node)===null||S===void 0?void 0:S.getOriginModel()).getValue()||""}handleAction(S){if(S===u.EResultKind.ACCEPT){const A=this.getValue();this.model.pushEditOperations(null,[{range:this.selection,text:A}],()=>null),this.model.pushStackElement()}}onLineCount(S){var A;return(A=this.node)===null||A===void 0||A.onMaxLineCount(S.bind(this)),this}onData(S){var A,T;const{message:w}=S,D=this.formatIndentation(w),I=(A=this.node)===null||A===void 0?void 0:A.getModifiedModel(),O=I.getEOL()===`\r
|
|
28320
|
+
`?s.DefaultEndOfLine.CRLF:s.DefaultEndOfLine.LF,{textBuffer:P,disposable:R}=(0,f.createTextBuffer)(D,O),M=c.ModelService._computeEdits(I,P);I.pushEditOperations([],M,()=>[]),R.dispose(),(T=this.node)===null||T===void 0||T.layout()}onError(S){var A;(A=this.node)===null||A===void 0||A.layout()}onAbort(){var S;(S=this.node)===null||S===void 0||S.layout()}onEnd(){var S;(S=this.node)===null||S===void 0||S.layout()}};t.SideBySideInlineDiffWidget=a,a.AI_DIFF_WIDGET_ID="AI-DIFF-WIDGET",t.SideBySideInlineDiffWidget=a=n=r.__decorate([(0,o.Injectable)({multiple:!0})],a);let b=class extends g{listenNode(S){S.addDispose(S.onDidEditChange(()=>this.layout())),S.addDispose(S.onPartialEditWidgetListChange(T=>{var w;T.every(D=>D.isHidden)&&(this.dispose(),(w=this.inlineContentWidget)===null||w===void 0||w.dispose())}));const A=S.onDispose(()=>{this.dispose(),A.dispose()});this.addDispose(S)}createNode(){const S=this.injector.get(d.InlineStreamDiffHandler,[this.monacoEditor]);return S.initialize(this.selection),this.listenNode(S),S}getPosition(){var S;const A=(S=this.node)===null||S===void 0?void 0:S.getZone();return A?m.Position.lift({lineNumber:A.startLineNumber,column:1}):m.Position.lift({lineNumber:1,column:1})}handleAction(S){var A,T;switch(S){case u.EResultKind.ACCEPT:(A=this.node)===null||A===void 0||A.acceptAll();break;case u.EResultKind.DISCARD:case u.EResultKind.REGENERATE:(T=this.node)===null||T===void 0||T.rejectAll();break;default:break}}onLineCount(){return l.Disposable.NULL}layout(){var S,A,T;(S=this.inlineContentWidget)===null||S===void 0||S.setPositionPreference([E.ContentWidgetPositionPreference.ABOVE,E.ContentWidgetPositionPreference.BELOW]),super.layout();const w=this.getPosition();if(w&&this.inlineContentWidget){const D=(A=this.node)===null||A===void 0?void 0:A.livePreviewDiffDecorationModel.getRemovedWidgets();if(D?.length){const I=w.lineNumber,O=D[0];if(O)if(((T=O.getLastPosition())===null||T===void 0?void 0:T.lineNumber)<=I){const R=this.inlineContentWidget.getLineHeight(),M=O.height+1;this.inlineContentWidget.setOffsetTop(-R*M-4)}else this.inlineContentWidget.setOffsetTop(0)}else this.inlineContentWidget.setOffsetTop(0)}}render(){var S,A;(S=this.inlineContentWidget)===null||S===void 0||S.show(),(A=this.node)===null||A===void 0||A.rateRenderEditController()}hide(){var S,A;(S=this.inlineContentWidget)===null||S===void 0||S.hide(),(A=this.node)===null||A===void 0||A.hide()}resume(){var S,A;(S=this.inlineContentWidget)===null||S===void 0||S.show(),(A=this.node)===null||A===void 0||A.resume()}onData(S){var A;const{message:T}=S;(A=this.node)===null||A===void 0||A.addLinesToDiff(this.formatIndentation(T))}onAbort(){var S,A;const T=(S=this.node)===null||S===void 0?void 0:S.recompute(d.EComputerMode.default);T&&(T.activeLine=0,T.pendingRange=new _.LineRange(0,0),(A=this.node)===null||A===void 0||A.finallyRender(T))}onEnd(){var S,A;const T=(S=this.node)===null||S===void 0?void 0:S.recompute(d.EComputerMode.legacy);T&&((A=this.node)===null||A===void 0||A.pushRateFinallyDiffStack(T))}getValue(){var S;return((S=this.node)===null||S===void 0?void 0:S.getVirtualModelValue())||""}getOriginValue(){var S;return((S=this.node)===null||S===void 0?void 0:S.getOriginModelValue())||""}setValue(S){var A,T;const w=(A=this.node)===null||A===void 0?void 0:A.recompute(d.EComputerMode.legacy,this.formatIndentation(S));w&&((T=this.node)===null||T===void 0||T.finallyRender(w))}revealFirstDiff(){var S;(S=this.node)===null||S===void 0||S.revealFirstDiff()}};t.LiveInlineDiffPreviewer=b,t.LiveInlineDiffPreviewer=b=r.__decorate([(0,o.Injectable)({multiple:!0})],b)},37679:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineDiffWidget=void 0;const n=e(85608),r=n.__importStar(e(14041)),o=e(43144),l=n.__importDefault(e(25873)),m=e(76003),E=e(41869),p=n.__importStar(e(20868)),_=e(87822),s=e(34819),f=e(90626),c=n.__importDefault(e(69790)),h={fixedOverflowWidgets:!0,readOnly:!1,enableSplitViewResizing:!0,ignoreTrimWhitespace:!0,renderSideBySide:!0,lineNumbers:"on",glyphMargin:!0,scrollbar:{useShadows:!1,alwaysConsumeMouseWheel:!1,vertical:"hidden"},scrollBeyondLastLine:!1,renderMarginRevertIcon:!1,renderOverviewRuler:!1,rulers:void 0,overviewRulerBorder:void 0,overviewRulerLanes:0,padding:{top:0,bottom:0},folding:!1,diffCodeLens:!1,stickyScroll:{enabled:!1},minimap:{enabled:!1},automaticLayout:!0,renderIndicators:!1,inDiffEditor:!0},u=r.default.memo(v=>{const{range:g,onMaxLineCount:a,editor:b,onReady:y}=v,S=(0,E.useInjectable)(E.MonacoService),A=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(!g)return;const T=b.getModel();if(!T)return;const w=T.getValueInRange(g),D=S.createDiffEditor(A.current,{...h,lineDecorationsWidth:b.getLayoutInfo().decorationsWidth,lineNumbersMinChars:b.getOption(p.editor.EditorOption.lineNumbersMinChars)}),I=f.StandaloneServices.get(_.IModelService),O={languageId:T.getLanguageId(),onDidChange:E.Event.None},P=I.createModel(w,O,p.Uri.from({scheme:E.Schemes.inMemory,path:"inline-diff-widget/"+(0,E.randomString)(8)}),!0),R=I.createModel("",O,p.Uri.from({scheme:E.Schemes.inMemory,path:"inline-diff-widget/"+(0,E.randomString)(8)}),!0);D.setModel({original:P,modified:R}),D.revealLine(g.startLineNumber,p.editor.ScrollType.Immediate);const M=()=>{if(a){const k=P.getLineCount(),B=R.getLineCount();a(Math.max(k,B)+1)}};return y&&y({getModifiedModel:()=>R,getOriginModel:()=>P,layout:M}),M(),()=>{D&&D.dispose()}},[g,b]),r.default.createElement("div",{ref:A,className:c.default.diff_editor_widget})});let d=class extends s.ZoneWidget{setPreviewerOptions(g){this.previewerOptions=g}_fillContainer(g){this.setCssClass("inline-diff-widget"),this.root=l.default.createRoot(g);let a=null;if(this._resolveResultWidget)if(g.parentNode){const b=document.createElement("div");requestAnimationFrame(()=>{b.className=c.default.ai_diff_editor_resolve_result_widget;const y=this.editor.getLayoutInfo();b.style.width=`${y.contentWidth}px`,b.style.left=`${y.contentLeft}px`}),g.parentNode.appendChild(b),a=(0,o.createPortal)(this._resolveResultWidget,b),this.resultContainer=b}else throw new Error("[impossible path] container.parentNode is null");this.root.render(r.default.createElement(E.ConfigProvider,{value:this.configContext},r.default.createElement("div",{className:c.default.ai_diff_editor_container},r.default.createElement(u,{range:this.range,editor:this.editor,onMaxLineCount:b=>{b&&(this._relayout(b),this._onMaxLineCount.fire(b))},onReady:b=>{this.diffWidgetHandler=b,this._onReady.fire()}})),a))}computeResultWidgetWidth(){const g=this.editor.getLayoutInfo();return g.contentWidth+g.contentLeft}_onWidth(g){super._onWidth(g),requestAnimationFrame(()=>{this.resultContainer&&(this.resultContainer.style.width=`${this.computeResultWidgetWidth()}px`)})}getModifiedModel(){var g;return(g=this.diffWidgetHandler)===null||g===void 0?void 0:g.getModifiedModel()}getOriginModel(){var g;return(g=this.diffWidgetHandler)===null||g===void 0?void 0:g.getOriginModel()}layout(){var g;return(g=this.diffWidgetHandler)===null||g===void 0?void 0:g.layout()}constructor(g,a){super(a.editor,{showArrow:!1,showFrame:!1,arrowColor:void 0,frameColor:void 0,keepEditorSelection:!0,showInHiddenAreas:!0}),this.id=g,this._onMaxLineCount=new E.Emitter,this.onMaxLineCount=this._onMaxLineCount.event,this._onReady=new E.Emitter,this.onReady=this._onReady.event,this.diffWidgetHandler=null,this.resultContainer=null,this._resolveResultWidget=null;const{selection:b,hiddenArea:y,editor:S}=a;this.range=b,this.hiddenArea=y||b,S.setHiddenAreas([this.hiddenArea],this.id)}revealRange(g,a){}setContainerStyle(g){var a;const b=Object.keys(g);for(const y of b)Object.prototype.hasOwnProperty.call((a=this.container)===null||a===void 0?void 0:a.style,y)&&(this.container.style[y]=g[y])}addClassName(g){return this.setCssClass(g),this}dispose(){this.hide(),super.dispose()}hide(){this.editor.setHiddenAreas([],this.id),super.hide(),this.root&&this.root.unmount()}showByLine(g,a=20){this.editor._modelData.viewModel.coordinatesConverter.modelPositionIsVisible=()=>!0,super.show({startLineNumber:g,startColumn:1,endLineNumber:g,endColumn:Number.MAX_SAFE_INTEGER},a)}setResolveResultWidget(g){this._resolveResultWidget=g}};t.InlineDiffWidget=d,n.__decorate([(0,m.Autowired)(E.AppConfig),n.__metadata("design:type",Object)],d.prototype,"configContext",void 0),t.InlineDiffWidget=d=n.__decorate([(0,m.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[String,Object])],d)},38890:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineDiffController=void 0;const n=e(41869),r=e(43718),o=e(28423),l=e(99906),m=e(83854),E=e(40111),p=e(49444);class _ extends l.BaseAIMonacoEditorController{constructor(){super(...arguments),this._onMaxLineCount=new r.Emitter,this.onMaxLineCount=this._onMaxLineCount.event}static get(f){return f.getContribution(_.ID)}get preferenceService(){return this.injector.get(n.PreferenceService)}mount(){return this.previewerStore=new Map,this.currentPreviewer=(0,o.observableValue)(this,void 0),this.modelChangeObs=(0,o.observableFromEvent)(this,this.monacoEditor.onDidChangeModel,()=>this.monacoEditor.getModel()),this.featureDisposable.addDispose((0,o.autorun)(f=>{const c=this.modelChangeObs.read(f);if(!c)return;const h=c.id,u=this.currentPreviewer.get();u&&u.modelId!==h&&!u.disposed&&u.hide();const d=this.previewerStore.get(c.id);(0,o.transaction)(v=>{d&&d.modelId===h?(this.currentPreviewer.set(d,v),d.resume()):this.currentPreviewer.set(void 0,v)})})),this.featureDisposable}getPreviewer(){return this.currentPreviewer.get()}renderDiff(f,c){var h;f&&(f.onData(c),((h=this.modelChangeObs.get())===null||h===void 0?void 0:h.id)===f.modelId&&f.render())}showPreviewerByStream(f,c){const{crossSelection:h,chatResponse:u}=c,d=new r.Disposable,v=this.createDiffPreviewer(f,h,c.previewerOptions);(0,o.transaction)(a=>{this.currentPreviewer.set(v,a),this.previewerStore.set(v.modelId,v)});const g=()=>{v.layout(),d.dispose()};return d.addDispose(v.onReady(()=>{if(E.InlineChatController.is(u)){const a=u;d.addDispose([a.onData(b=>{r.ReplyResponse.is(b)&&this.renderDiff(v,b)}),a.onError(b=>{v.onError(b),g()}),a.onAbort(()=>{v.onAbort(),g()}),a.onEnd(()=>{v.onEnd(),g()})]),a.listen()}else v.setValue(u.message),g()})),v.layout(),v}createDiffPreviewer(f,c,h){const u=this.preferenceService.getValid(r.AINativeSettingSectionsId.InlineDiffPreviewMode,m.EInlineDiffPreviewMode.inlineLive);let d;return u===m.EInlineDiffPreviewMode.sideBySide?d=this.injector.get(p.SideBySideInlineDiffWidget,[f]):d=this.injector.get(p.LiveInlineDiffPreviewer,[f]),d.create(c,h),d.show(c.startLineNumber-1,c.endLineNumber-c.startLineNumber+2),d.addDispose(d.onLineCount(v=>this._onMaxLineCount.fire(v))),d.addDispose(r.Disposable.create(()=>{this.previewerStore.delete(d.modelId)})),d}handleAction(f){const c=this.getPreviewer();c&&c.handleAction(f)}getModifyContent(){const f=this.getPreviewer();if(f)return f.getValue()}getOriginContent(){const f=this.getPreviewer();if(f)return f.getOriginValue()}revealFirstDiff(){const f=this.getPreviewer();f&&f.revealFirstDiff()}}t.InlineDiffController=_,_.ID="editor.contrib.ai.inline.diff"},51347:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineDiffService=void 0;const n=e(85608),r=e(76003),o=e(70392);let l=class{constructor(){this._partialEventEmitter=new o.Emitter,this.onPartialEdit=this._partialEventEmitter.event}firePartialEdit(E){this._partialEventEmitter.fire(E)}};t.InlineDiffService=l,t.InlineDiffService=l=n.__decorate([(0,r.Injectable)()],l)},53182:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineHintLineDecoration=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(57925),m=e(43718),E=e(20868),p=e(60304),_=e(52416),s=e(75189),f="inline_hint_description",c="inline_hint_description_key";let h=class extends m.Disposable{constructor(d){super(),this.monacoEditor=d,this.colorRegister=(0,_.getColorRegistry)(),p.StandaloneServices.get(s.ICodeEditorService).registerDecorationType(f,c,{isWholeLine:!0}),this.addDispose(m.Disposable.create(()=>{this.monacoEditor.setDecorationsByType(f,c,[])}))}getSequenceKeyString(d="+"){var v;const a=(v=this.keybindingRegistry.getKeybindingsForCommand(l.AI_INLINE_CHAT_INTERACTIVE_INPUT_VISIBLE.id)[0])===null||v===void 0?void 0:v.resolved;return a?this.keybindingRegistry.acceleratorForSequence(a,d):""}async show(d){var v;const g=(0,m.formatLocalize)("aiNative.inline.hint.widget.placeholder",this.getSequenceKeyString("")),a=await this.themeService.getCurrentTheme(),b=this.colorRegister.resolveDefaultColor(_.inputPlaceholderForeground,a);this.monacoEditor.setDecorationsByType(f,c,[{range:E.Range.fromPositions(d),renderOptions:{after:{contentText:g,opacity:"0.5",color:(v=b?.toString())!==null&&v!==void 0?v:"",padding:"0 0 0 12px",width:"max-content",fontFamily:"-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,sans-serif"}}}])}};t.InlineHintLineDecoration=h,n.__decorate([(0,r.Autowired)(o.KeybindingRegistry),n.__metadata("design:type",Object)],h.prototype,"keybindingRegistry",void 0),n.__decorate([(0,r.Autowired)(_.IThemeService),n.__metadata("design:type",Object)],h.prototype,"themeService",void 0),t.InlineHintLineDecoration=h=n.__decorate([(0,r.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[Object])],h)},77886:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineHintController=void 0;const n=e(85608),r=n.__importDefault(e(97331)),o=e(43718),l=n.__importStar(e(20868)),m=e(77659),E=e(99906),p=e(71863),_=e(19520),s=e(53182);class f extends E.BaseAIMonacoEditorController{static get(h){return h.getContribution(f.ID)}get inlineCompletionsService(){return this.injector.get(p.AICompletionsService)}mount(){return this.registerHintLineFeature(this.monacoEditor)}registerHintLineFeature(h){const u=new o.Disposable,d=this.injector.get(m.AINativeContextKey,[h.contextKeyService]),v=()=>{u.dispose()},g=b=>{var y;const S=h.getModel();if(!S||this.inlineCompletionsService.isVisibleCompletion)return;if(!S.getLineDecorations(b.lineNumber).some(w=>w.options.description===_.InlineInputPreviewDecorationID)){const w=this.injector.get(s.InlineHintLineDecoration,[h]),D=(y=h.getModel())===null||y===void 0?void 0:y.getLineContent(b.lineNumber);D?.trim()||w.show(b),d.inlineHintWidgetIsVisible.set(!0),u.addDispose(w.onDispose(()=>{d.inlineHintWidgetIsVisible.set(!1)})),u.addDispose(w)}},a=(0,r.default)(async b=>{v(),g(b)},100);return this.featureDisposable.addDispose(h.onDidChangeCursorPosition(b=>{a(b.position)})),this.featureDisposable.addDispose(h.onDidChangeModelContent(b=>{var y,S;a(new l.Position((y=b.changes[0])===null||y===void 0?void 0:y.range.endLineNumber,(S=b.changes[0])===null||S===void 0?void 0:S.range.endColumn))})),this.featureDisposable.addDispose(h.onDidFocusEditorWidget(()=>{const b=h.getPosition();b&&(v(),g(b))})),this.featureDisposable.addDispose(h.onDidBlurEditorWidget(()=>{v()})),this.featureDisposable.addDispose(this.inlineCompletionsService.onVisibleCompletion(b=>{b&&v()})),this.featureDisposable.addDispose(u),this.featureDisposable}}t.InlineHintController=f,f.ID="editor.contrib.ai.inline.hint"},32213:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineInputWidget=void 0;const n=e(85608),r=n.__importStar(e(14041)),o=e(76003),l=e(41869),m=e(89195),E=e(43718),p=e(90052),_=e(90614),s=e(31031),f=e(26664),c=n.__importDefault(e(13185)),h=d=>{const{defaultValue:v,onClose:g,onInteractiveInputSend:a,onLayoutChange:b,onChatStatus:y,onResultClick:S,onValueChange:A}=d,[T,w]=(0,r.useState)(s.EInlineChatStatus.READY),D=(0,l.useInjectable)(l.AINativeConfigService);(0,r.useEffect)(()=>{const k=new E.Disposable;return k.addDispose(y(B=>w(B))),()=>{k.dispose()}},[y]);const I=(0,r.useMemo)(()=>T===s.EInlineChatStatus.THINKING,[T]),O=(0,r.useMemo)(()=>T===s.EInlineChatStatus.DONE,[T]),P=(0,r.useMemo)(()=>T===s.EInlineChatStatus.ERROR,[T]),R=(0,r.useCallback)(()=>{g?.()},[g]),M=(0,r.useCallback)(k=>{a?.(k)},[a]);return P?null:O?r.default.createElement(_.InlineResultAction,{onResultClick:S}):r.default.createElement(m.AIAction,{loadingShowOperation:!0,onClose:R,loading:I,customOperationRender:r.default.createElement(m.InteractiveInput,{autoFocus:!0,defaultValue:v,onValueChange:A,onHeightChange:k=>b(k),size:"small",placeholder:(0,E.localize)("aiNative.inline.chat.input.placeholder.default"),width:D.inlineChat.inputWidth,disabled:I,onSend:M})})};let u=class extends f.AIInlineContentWidget{constructor(v,g){super(v),this.editor=v,this.defaultValue=g,this.allowEditorOverflow=!0,this.positionPreference=[p.ContentWidgetPositionPreference.ABOVE],this._onSend=new E.Emitter,this.onSend=this._onSend.event,this._onClose=new E.Emitter,this.onClose=this._onClose.event,this._onValueChange=new E.Emitter,this.onValueChange=this._onValueChange.event}dispose(){super.dispose(),this.inlineInputService.hide()}id(){return E.AIInlineInputChatContentWidgetId}renderView(){return r.default.createElement("div",{className:c.default.input_wrapper},r.default.createElement(h,{defaultValue:this.defaultValue,onClose:()=>this._onClose.fire(),onChatStatus:this.onStatusChange.bind(this),onLayoutChange:()=>{this.editor.layoutContentWidget(this)},onValueChange:v=>{this._onValueChange.fire(v)},onInteractiveInputSend:v=>{this.launchChatStatus(s.EInlineChatStatus.THINKING),this._onSend.fire(v)},onResultClick:v=>{this._onResultClick.fire(v)}}))}};t.InlineInputWidget=u,t.InlineInputWidget=u=n.__decorate([(0,o.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[Object,String])],u)},89060:(L,t,e)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.InlineInputController=void 0;const r=e(85608),o=e(76003),l=e(43718),m=e(57517),E=r.__importStar(e(20868)),p=e(28423),_=e(75124),s=e(2261),f=e(52451),c=e(74547),h=e(77659),u=e(99906),d=e(77633),v=e(40111),g=e(31031),a=e(15989),b=e(19520),y=e(32213),S=r.__importDefault(e(13185)),A=e(74353),T=e(86443);let w=n=class extends u.BaseAIMonacoEditorController{static get(I){return I.getContribution(n.ID)}get inlineInputService(){return this.injector.get(A.InlineInputService)}get aiReporter(){return this.injector.get(l.IAIReporter)}get eventBus(){return this.injector.get(l.IEventBus)}get messageService(){return this.injector.get(_.MessageService)}mount(){return this.inputDisposable=new l.Disposable,this.aiNativeContextKey=this.injector.get(h.AINativeContextKey,[this.monacoEditor.contextKeyService]),this.inlineDiffController=a.InlineDiffController.get(this.monacoEditor),this.inputValue=(0,p.observableValue)(this,""),this.modelChangeObs=(0,p.observableFromEvent)(this,this.monacoEditor.onDidChangeModel,()=>this.monacoEditor.getModel()),this.inlineInputWidgetStore=new Map,this.featureDisposable.addDispose(this.eventBus.on(m.EditorGroupCloseEvent,I=>{var O;if(!this.aiNativeContextKey.inlineInputWidgetIsStreaming.get())return;const R=I.payload.resource.uri.toString();if(((O=this.monacoEditor.getModel())===null||O===void 0?void 0:O.uri.toString())===R){this.hideInput();const k=(0,l.localize)("aiNative.inline.chat.generating.canceled");k&&this.messageService.info(k)}})),this.featureDisposable.addDispose(this.inlineInputService.onHidden(()=>{this.hideInput()})),this.featureDisposable.addDispose(this.inlineInputService.onInteractiveInputVisibleInPosition(async I=>{I?this.showInputInEmptyLine(I,this.monacoEditor):setTimeout(()=>this.monacoEditor.focus(),0)})),this.featureDisposable.addDispose(this.inlineInputService.onInteractiveInputVisibleInSelection(I=>{I&&this.showInputInSelection(I,this.monacoEditor)})),this.featureDisposable.addDispose(this.inputDisposable),this.featureDisposable}cancelToken(){super.cancelToken(),this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1)}hideInput(){this.inlineInputWidgetStore.delete(this.monacoEditor.getModel().id),this.inputDisposable.dispose()}async showInputInEmptyLine(I,O,P){const R=O.getModel();if(!R)return;const M=O.getSelection();if(M&&!M.isEmpty())return;this.inputValue.set(P||"",void 0),this.inlineInputWidgetStore.set(R.id,new T.InlineInputWidgetStoreInEmptyLine(I,P)),this.inputDisposable&&(this.inputDisposable.dispose(),this.inputDisposable=new l.Disposable);const k=O.createDecorationsCollection(),B=this.injector.get(y.InlineInputWidget,[O,this.inputValue.get()]);k.append([{range:E.Range.fromPositions(I),options:c.ModelDecorationOptions.register({description:b.InlineInputPreviewDecorationID,isWholeLine:!0,className:S.default.input_decoration_readable_container,inlineClassName:S.default.inline_chat_inserted_range})}]);const x=k.getRange(0);let N;x&&(N=f.LineRange.fromRange(x),B.show({position:x.getStartPosition()}),this.aiNativeContextKey.inlineInputWidgetIsVisible.set(!0)),this.inputDisposable.addDispose(B.onDispose(()=>{this.cancelToken(),k.clear(),this.aiNativeContextKey.inlineInputWidgetIsVisible.set(!1)})),this.inputDisposable.addDispose(B.onValueChange(K=>{this.inputValue.set(K,void 0);const j=this.inlineInputWidgetStore.get(R.id);j instanceof T.InlineInputWidgetStoreInEmptyLine&&j.setValue(K)})),this.inputDisposable.addDispose(B.onResultClick(async K=>{const j=()=>{const U=k.getRange(0);R.pushStackElement(),R.pushEditOperations(null,[s.EditOperation.delete(U)],()=>null),R.pushStackElement()};switch(K){case g.EResultKind.ACCEPT:this.hideInput();break;case g.EResultKind.DISCARD:j(),this.hideInput();break;case g.EResultKind.REGENERATE:j(),requestAnimationFrame(()=>{const $=k.getRange(0).getStartPosition();this.showInputInEmptyLine($,O,this.inputValue.get())});break;default:break}})),this.inputDisposable.addDispose(l.Event.debounce(k.onDidChange.bind(k),()=>{},l.FRAME_THREE)(()=>{if(!k.getRange(0))return;const K=k.getRange(0),j=f.LineRange.fromRange(K);N.equals(j)||(B.setOptions({position:K.getStartPosition()}),B.layoutContentWidget()),N=j})),this.inputDisposable.addDispose(B.onClose(()=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.get()?this.cancelToken():this.hideInput()})),this.inputDisposable.addDispose(B.onSend(async K=>{O.focus();const j=this.inlineInputService.getInteractiveInputHandler(),U=O.getModel();if(!j||!U)return;B.launchChatStatus(g.EInlineChatStatus.THINKING);const $=await this.inlineInputService.getInteractiveInputStrategyHandler()(O,K),z=E.Selection.fromPositions(I);if($===d.ERunStrategy.EXECUTE&&j.execute){j.execute(O,z,K,this.token),B.launchChatStatus(g.EInlineChatStatus.DONE),this.hideInput();return}if($===d.ERunStrategy.PREVIEW&&j.providePreviewStrategy){const G=await j.providePreviewStrategy(O,z,K,this.token);if(l.CancelResponse.is(G)){B.launchChatStatus(g.EInlineChatStatus.READY),this.hideInput();return}if(v.InlineChatController.is(G)){const Y=G;let Z;const X=this.registerDispose(new l.RunOnceScheduler(()=>{const H=k.getRange(0);H&&Z&&U.pushEditOperations(null,[s.EditOperation.replace(H,Z)],()=>null)},l.FRAME_FIVE));this.inputDisposable.addDispose([Y.onData(async H=>{l.ReplyResponse.is(H)&&(this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!0),Z=H.message,X.isScheduled()||X.schedule())}),Y.onError(H=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),B.launchChatStatus(g.EInlineChatStatus.READY)}),Y.onAbort(()=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),U.pushStackElement(),B.launchChatStatus(g.EInlineChatStatus.DONE)}),Y.onEnd(()=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),U.pushStackElement(),B.launchChatStatus(g.EInlineChatStatus.DONE)})]),Y.listen()}}})),this.inputDisposable.addDispose(B)}async showInputInSelection(I,O,P){this.inputDisposable&&(this.inputDisposable.dispose(),this.inputDisposable=new l.Disposable);const R=O.getModel();if(!R)return;const M=O.createDecorationsCollection();M.set([{range:E.Range.fromPositions({lineNumber:I.startLineNumber,column:1},{lineNumber:I.endLineNumber,column:O.getModel().getLineMaxColumn(I.endLineNumber)}),options:c.ModelDecorationOptions.register({description:b.InlineInputPreviewDecorationID,isWholeLine:!0,className:S.default.input_decoration_pending_container})}]);const k=E.Selection.fromRange(M.getRange(0),I.getDirection());this.inputValue.set(P||"",void 0),this.inlineInputWidgetStore.set(R.id,new T.InlineInputWidgetStoreInSelection(k,P));const B=this.injector.get(y.InlineInputWidget,[O,this.inputValue.get()]);B.show({selection:k}),this.aiNativeContextKey.inlineInputWidgetIsVisible.set(!0),this.inputDisposable.addDispose(B.onDispose(()=>{this.cancelToken(),M.clear(),this.aiNativeContextKey.inlineInputWidgetIsVisible.set(!1)})),this.inputDisposable.addDispose(B.onValueChange(x=>{this.inputValue.set(x,void 0);const N=this.inlineInputWidgetStore.get(R.id);N instanceof T.InlineInputWidgetStoreInSelection&&N.setValue(x)})),this.inputDisposable.addDispose(B.onClose(()=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.get()?this.cancelToken():this.hideInput()})),this.inputDisposable.addDispose(B.onSend(async x=>{O.focus();const N=this.inlineInputService.getInteractiveInputHandler();if(!N)return;if(B.launchChatStatus(g.EInlineChatStatus.THINKING),await this.inlineInputService.getInteractiveInputStrategyHandler()(O,x)===d.ERunStrategy.PREVIEW&&N.providePreviewStrategy){const j=await N.providePreviewStrategy(O,k,x,this.token);if(l.CancelResponse.is(j)){M.clear(),this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),B.launchChatStatus(g.EInlineChatStatus.DONE);return}if(v.InlineChatController.is(j)){const U=j;this.inputDisposable.addDispose([U.onData(z=>{M.clear(),l.ReplyResponse.is(z)&&this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!0)}),U.onError(z=>{this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),B.launchChatStatus(g.EInlineChatStatus.READY)}),U.onAbort(()=>{M.clear(),this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),B.launchChatStatus(g.EInlineChatStatus.DONE)}),U.onEnd(()=>{M.clear(),this.aiNativeContextKey.inlineInputWidgetIsStreaming.set(!1),B.launchChatStatus(g.EInlineChatStatus.DONE)})]),this.inlineDiffController.showPreviewerByStream(O,{crossSelection:k,chatResponse:U}).mountWidget(B),U.listen()}}else M.clear(),B.launchChatStatus(g.EInlineChatStatus.READY),this.hideInput()})),this.inputDisposable.addDispose(B.onResultClick(x=>{this.inlineDiffController.handleAction(x),this.hideInput(),x===g.EResultKind.REGENERATE&&requestAnimationFrame(()=>{this.showInputInSelection(k,O,this.inputValue.get())})})),this.inputDisposable.addDispose(B)}};t.InlineInputController=w,w.ID="editor.contrib.ai.inline.input",t.InlineInputController=w=n=r.__decorate([(0,o.Injectable)()],w)},74353:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineInputService=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(57925),m=e(43718),E=e(20868),p=e(85679),_=e(77633),s=e(86443);let f=class extends m.Disposable{constructor(){super(...arguments),this.interactiveInputModel=new s.InteractiveInputModel,this._onInteractiveInputVisibleInPosition=new m.Emitter,this.onInteractiveInputVisibleInPosition=this._onInteractiveInputVisibleInPosition.event,this._onInteractiveInputVisibleInSelection=new m.Emitter,this.onInteractiveInputVisibleInSelection=this._onInteractiveInputVisibleInSelection.event,this._onHidden=new m.Emitter,this.onHidden=this._onHidden.event}visibleByPosition(h){this._onInteractiveInputVisibleInPosition.fire(h)}visibleBySelection(h){this._onInteractiveInputVisibleInSelection.fire(h)}async visibleByNearestCodeBlock(h,u){const d=await this.findNearestCodeBlockWithPosition(h,u);d&&this.visibleBySelection(d)}hide(){this._onHidden.fire()}getInteractiveInputHandler(){return this.interactiveInputModel.handler()}getInteractiveInputStrategyHandler(){return this.interactiveInputModel.strategyHandler()}async findNearestCodeBlockWithPosition(h,u){const d=u.getModel(),v=d?.getOffsetAt(h),g=d?.getLanguageId(),a=this.languageParserService.createParser(g),b=await a?.findNearestCodeBlockWithPosition(d?.getValue()||"",v);if(b)return new E.Selection(b.range.start.line+1,b.range.start.character,b.range.end.line+1,b.range.end.character)}getSequenceKeyString(){var h;const d=(h=this.keybindingRegistry.getKeybindingsForCommand(l.AI_INLINE_CHAT_INTERACTIVE_INPUT_VISIBLE.id)[0])===null||h===void 0?void 0:h.resolved;return d?this.keybindingRegistry.acceleratorForSequence(d,"+"):""}registerInlineInput(h,u){return this.interactiveInputModel.setHandler(u),h.handleStrategy?this.interactiveInputModel.setStrategyHandler(h.handleStrategy):this.interactiveInputModel.setStrategyHandler(()=>h.strategy||_.ERunStrategy.EXECUTE),this.interactiveInputModel}};t.InlineInputService=f,n.__decorate([(0,r.Autowired)(o.KeybindingRegistry),n.__metadata("design:type",Object)],f.prototype,"keybindingRegistry",void 0),n.__decorate([(0,r.Autowired)(p.LanguageParserService),n.__metadata("design:type",p.LanguageParserService)],f.prototype,"languageParserService",void 0),t.InlineInputService=f=n.__decorate([(0,r.Injectable)()],f)},86443:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineInputWidgetStoreInSelection=t.InlineInputWidgetStoreInEmptyLine=t.InteractiveInputModel=void 0;const n=e(89195),r=e(43718);class o{setHandler(p){this._handler=p}handler(){return this._handler}setStrategyHandler(p){this._strategyHandler=p}strategyHandler(){return this._strategyHandler}dispose(){this._handler=void 0}}t.InteractiveInputModel=o,o.ID=`${n.InteractiveInput.displayName}:${(0,r.uuid)(4)}`;class l{constructor(p,_){this.position=p,this.value=_}getPosition(){return this.position}setPosition(p){this.position=p}getValue(){return this.value}setValue(p){this.value=p}}t.InlineInputWidgetStoreInEmptyLine=l;class m{constructor(p,_){this.selection=p,this.value=_}getSelection(){return this.selection}setSelection(p){this.selection=p}getValue(){return this.value}setValue(p){this.value=p}}t.InlineInputWidgetStoreInSelection=m},76755:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineStreamDiffComputer=void 0;const n=e(9514),r=e(52451),o=e(37348),l=e(44781),m=e(68450),E=e(56702),p=e(89216),_=e(10438),s=e(30861),f=e(46739),c=(u,d,v=m.InfiniteTimeout.instance)=>{if(!u.length||!d.length)return m.DiffAlgorithmResult.trivial(u,d);const g=new _.Array2D(2*u.length+1,d.length+1),a=new _.Array2D(2*u.length+1,d.length+1);for(let D=0;D<=d.length;D++)g.set(0,D,D),a.set(0,D,D>0);for(let D=0;D<=2*u.length;D++)g.set(D,0,Math.floor((D+1)/2)),a.set(D,0,!1);for(let D=1;D<=d.length;D++)for(let I=1;I<=2*u.length;I++){if(!v.isValid())return m.DiffAlgorithmResult.trivialTimedOut(u,d);if(I%2===0){const O=g.get(I,D-1)+1,P=g.get(I-1,D),R=O<P;g.set(I,D,R?O:P),a.set(I,D,R)}else{const O=g.get(I-1,D)+.4,P=u.getElement(Math.floor(I/2))===d.getElement(D-1)?g.get(I-1,D-1):Number.MAX_VALUE,R=P<O;g.set(I,D,R?P:O),a.set(I,D,R)}}let b=Number.MAX_VALUE,y=-1;for(let D=0;D<=2*u.length;D++){const I=g.get(D,d.length);I<b&&(b=I,y=D)}const S=[];let A=y,T=d.length;A<=2*u.length-2&&S.push(new m.SequenceDiff(new o.OffsetRange(Math.floor((A+1)/2),u.length),new o.OffsetRange(T,T)));let w;for(;A>=0&&T>=0;)a.get(A,T)?(A%2===0?w===void 0&&(w={originalLineIndex:Math.floor(A/2),modifiedLineIndex:T}):(w!==void 0&&((w.originalLineIndex!==Math.floor(A/2)+1||w.modifiedLineIndex!==T)&&S.push(new m.SequenceDiff(new o.OffsetRange(Math.floor(A/2)+1,w.originalLineIndex),new o.OffsetRange(T,w.modifiedLineIndex))),w=void 0),A-=1),T-=1):(w=w||{originalLineIndex:Math.floor((A+1)/2),modifiedLineIndex:T},A-=1);return w!==void 0&&((w.originalLineIndex!==Math.floor(A/2)+1||w.modifiedLineIndex!==T)&&S.push(new m.SequenceDiff(new o.OffsetRange(Math.floor(A/2)+1,w.originalLineIndex),new o.OffsetRange(T,w.modifiedLineIndex))),w=void 0),S.reverse(),new m.DiffAlgorithmResult(S,!1)};class h extends E.DefaultLinesDiffComputer{computeDiff(d,v,g){if(d.length<=1&&(0,n.equals)(d,v,(M,k)=>M===k))return new s.LinesDiff([],[],!1);if(d.length===1&&d[0].length===0||v.length===1&&v[0].length===0)return new s.LinesDiff([new f.DetailedLineRangeMapping(new r.LineRange(1,d.length+1),new r.LineRange(1,v.length+1),[new f.RangeMapping(new l.Range(1,1,d.length,d[d.length-1].length+1),new l.Range(1,1,v.length,v[v.length-1].length+1))])],[],!1);const a=g.maxComputationTimeMs===0?m.InfiniteTimeout.instance:new m.DateTimeout(g.maxComputationTimeMs),b=new Map;function y(M){let k=b.get(M);return k===void 0&&(k=b.size,b.set(M,k)),k}const S=d.length*v.length<1e6&&g.onlyCareAboutPrefixOfOriginalLines,A=d.map(M=>y(S?M:M.trim())),T=v.map(M=>y(S?M:M.trim())),w=new p.LineSequence(A,d),D=new p.LineSequence(T,v),I=d.every(M=>M.trim().length===0);let O;S?I?O=m.DiffAlgorithmResult.trivial(w,D):O=c(w,D,a):w.length+D.length<1700?O=this.dynamicProgrammingDiffing.compute(w,D,a,(M,k)=>d[M]===v[k]?v[k].length===0?.1:1+Math.log(1+v[k].length):.99):O=this.myersDiffingAlgorithm.compute(w,D,a);const P=O.diffs,R=O.hitTimeout;if(S){const M=P.map(k=>new f.DetailedLineRangeMapping(new r.LineRange(k.seq1Range.start+1,k.seq1Range.endExclusive+1),new r.LineRange(k.seq2Range.start+1,k.seq2Range.endExclusive+1),[]));return new s.LinesDiff(M,[],R)}return super.computeDiff(d,v,g)}}t.InlineStreamDiffComputer=h},33062:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineStreamDiffHandler=t.EComputerMode=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(20868),m=e(60304),E=e(28423),p=e(52451),_=e(84968),s=e(46739),f=e(87822),c=e(25539),h=e(76755),u=e(80715);var d;(function(a){a.legacy="legacy",a.default="default"})(d||(t.EComputerMode=d={}));const v=new h.InlineStreamDiffComputer;let g=class extends o.Disposable{constructor(b){super(),this.monacoEditor=b,this._onDidEditChange=this.registerDispose(new o.Emitter),this.onDidEditChange=this._onDidEditChange.event,this.rawOriginalTextLinesTokens=[],this.undoRedoGroup=new c.UndoRedoGroup,this.diffModel=(0,E.observableValue)(this,void 0),this.finallyDiffModel=(0,E.observableValue)(this,void 0),this.currentEditLine=0,this.isEditing=!1;const y=m.StandaloneServices.get(f.IModelService);this.virtualModel=y.createModel("",null,o.Uri.from({scheme:o.Schemes.inMemory,path:"inline-stream-diff/"+(0,o.randomString)(8)}),!0),this.originalModel=this.monacoEditor.getModel(),this.livePreviewDiffDecorationModel=this.injector.get(u.LivePreviewDiffDecorationModel,[this.monacoEditor]),this.addDispose(this.livePreviewDiffDecorationModel),this.addDispose(this.virtualModel);const S=this.livePreviewDiffDecorationModel.onDispose(()=>{this.dispose(),S.dispose()})}setPreviewerOptions(b){this.previewerOptions=b,this.livePreviewDiffDecorationModel.setPreviewerOptions({partialEditWidgetOptions:{hideAcceptPartialEditWidget:b.hideAcceptPartialEditWidget},renderRemovedWidgetImmediately:b.renderRemovedWidgetImmediately})}initialize(b){const y=this.originalModel.getEOL(),S=b.getStartPosition(),A=b.getEndPosition();this.rawOriginalTextLines=this.originalModel.getValueInRange(l.Range.fromPositions(S,A)).split(y),this.rawOriginalTextLinesTokens=this.rawOriginalTextLines.map((w,D)=>{const I=S.lineNumber+D;return this.originalModel.tokenization.forceTokenization(I),this.originalModel.tokenization.getLineTokens(I)});const T=p.LineRange.fromRangeInclusive(l.Range.fromPositions({lineNumber:b.startLineNumber,column:1},{lineNumber:b.endLineNumber,column:Number.MAX_SAFE_INTEGER}));this.livePreviewDiffDecorationModel.initialize(T)}getVirtualModelValue(){return this.virtualModel.getValue()}getOriginModelValue(){return this.rawOriginalTextLines.join(`
|
|
28321
|
+
`)}get onPartialEditWidgetListChange(){return this.livePreviewDiffDecorationModel.onPartialEditWidgetListChange}computeDiff(b,y,S=d.default){const A=(S===d.default?v:_.linesDiffComputers.getLegacy()).computeDiff(b,y,{computeMoves:!1,maxComputationTimeMs:200,ignoreTrimWhitespace:!1,onlyCareAboutPrefixOfOriginalLines:!0});let T=A.changes;A.hitTimeout&&(T=[new s.DetailedLineRangeMapping(new p.LineRange(1,b.length+1),new p.LineRange(1,y.length+1),void 0)]);const w=[];let D=[];for(const R of T)if(R.modified.endLineNumberExclusive===y.length+1&&S===d.default){if(D=b.slice(R.original.startLineNumber-1,R.original.endLineNumberExclusive-1),R.modified.isEmpty)continue;w.push({removedTextLines:[],removedLinesOriginalRange:new p.LineRange(R.original.startLineNumber,R.original.startLineNumber),addedRange:R.modified,relativeInnerChanges:void 0})}else w.push({removedTextLines:b.slice(R.original.startLineNumber-1,R.original.endLineNumberExclusive-1),removedLinesOriginalRange:R.original,addedRange:R.modified,relativeInnerChanges:R.innerChanges?R.innerChanges.map(M=>({originalRange:M.originalRange.delta(-R.original.startLineNumber+1),modifiedRange:M.modifiedRange.delta(-R.modified.startLineNumber+1)})):void 0});const I=[...y,...D];let O=0,P=new p.LineRange(1,1);return D.length>0&&(O=y.length+1,P=new p.LineRange(y.length+1,y.length+1+D.length)),{changes:w,newFullRangeTextLines:I,activeLine:O,pendingRange:P}}calculateAddedDecorationCollectionState(b){const y=this.getZone();return b.changes.map(A=>{const T=A.addedRange,w={lineNumber:y.startLineNumber+T.startLineNumber-1,column:1},D={lineNumber:y.startLineNumber+T.endLineNumberExclusive-2,column:1};return{startPosition:w,endPosition:D,len:T.endLineNumberExclusive-T.startLineNumber}})}renderPartialEditWidgets(b){const y=this.calculateAddedDecorationCollectionState(b);this.livePreviewDiffDecorationModel.touchPartialEditWidgets(y.map(S=>S.startPosition.lineNumber))}renderAddedRangeDecoration(b){const y=this.calculateAddedDecorationCollectionState(b);this.livePreviewDiffDecorationModel.touchAddedRange(y)}renderRemovedRangeDecoration(b){const{changes:y}=b,S=this.getZone();let A=0;const T=[];for(const w of y){const{removedTextLines:D,removedLinesOriginalRange:I,addedRange:O}=w;D.length>0&&T.push({position:{column:1,lineNumber:S.startLineNumber+I.startLineNumber-2-A},textLines:D.map((P,R)=>({text:P,lineTokens:this.rawOriginalTextLinesTokens[I.startLineNumber-1+R]}))}),A+=I.length-O.length}this.livePreviewDiffDecorationModel.touchRemovedWidget(T,()=>{this._onDidEditChange.fire()})}pushStackElement(){const b=this.livePreviewDiffDecorationModel.createEditStackElement(this.undoRedoGroup);b.attachModel(this.livePreviewDiffDecorationModel),b.registerUndo(y=>{y.dispose()})}renderDiffEdits(b){const{activeLine:y,newFullRangeTextLines:S,pendingRange:A}=b,T=this.originalModel.getEOL(),w=this.getZone(),D=w.startLineNumber<w.endLineNumberExclusive?new l.Range(w.startLineNumber,1,w.endLineNumberExclusive-1,this.originalModel.getLineMaxColumn(w.endLineNumberExclusive-1)):new l.Range(w.startLineNumber,1,w.startLineNumber,1),I=this.originalModel.getValueInRange(D).split(T),O=_.linesDiffComputers.getDefault().computeDiff(I,S,{computeMoves:!1,maxComputationTimeMs:200,ignoreTrimWhitespace:!1}),P=[];if(O.hitTimeout){let R=S.join(T);D.isEmpty()&&(R+=T);const M={range:D,text:R,forceMoveMarkers:!1};P.push(M)}else for(const R of O.changes){let M=S.slice(R.modified.startLineNumber-1,R.modified.endLineNumberExclusive-1).join(T),k;R.original.isEmpty?(k=new l.Range(D.startLineNumber+R.original.startLineNumber-1,1,D.startLineNumber+R.original.startLineNumber-1,1),M+=T):R.modified.isEmpty?(k=new l.Range(D.startLineNumber+R.original.startLineNumber-1,1,D.startLineNumber+R.original.endLineNumberExclusive-1,1),M=null):k=new l.Range(D.startLineNumber+R.original.startLineNumber-1,1,D.startLineNumber+R.original.endLineNumberExclusive-2,this.originalModel.getLineMaxColumn(D.startLineNumber+R.original.endLineNumberExclusive-2));const B={range:k,text:M,forceMoveMarkers:!1};P.push(B)}this.originalModel.pushEditOperations(null,P,()=>null,this.undoRedoGroup),this.livePreviewDiffDecorationModel.updateZone(new p.LineRange(w.startLineNumber,w.startLineNumber+S.length)),y>0?this.livePreviewDiffDecorationModel.touchActiveLine(y):this.livePreviewDiffDecorationModel.clearActiveLine(),this.renderAddedRangeDecoration(b),A.length>0?this.livePreviewDiffDecorationModel.touchPendingRange(A):this.livePreviewDiffDecorationModel.clearPendingLine(),this.renderRemovedRangeDecoration(b),this._onDidEditChange.fire()}recompute(b,y){y&&this.virtualModel.setValue(y);const S=this.virtualModel.getLinesContent();return this.computeDiff(this.rawOriginalTextLines,S,b)}async rateRenderEditController(){var b;if(this.isEditing===!1){for(this.isEditing=!0;this.currentEditLine<=this.virtualModel.getLinesContent().length;){if(this.disposed)return;const A=this.virtualModel.getLinesContent().slice(0,this.currentEditLine),T=this.computeDiff(this.rawOriginalTextLines,A);(0,E.transaction)(w=>{this.diffModel.set(T,w)}),this.originalModel.id===((b=this.monacoEditor.getModel())===null||b===void 0?void 0:b.id)&&this.renderDiffEdits(T),this.currentEditLine+=1,await(0,o.sleep)(o.FRAME_THREE)}const y=this.finallyDiffModel.get();y&&this.finallyRender(y),this.isEditing=!1}}addLinesToDiff(b,y=d.default){const S=this.recompute(y,b);(0,E.transaction)(A=>{this.diffModel.set(S,A)})}pushRateFinallyDiffStack(b){this.isEditing===!1&&this.finallyRender(b)}finallyRender(b){var y;(0,E.transaction)(S=>{this.finallyDiffModel.set(b,S),this.diffModel.set(b,S)}),this.originalModel.id===((y=this.monacoEditor.getModel())===null||y===void 0?void 0:y.id)&&(this.renderPartialEditWidgets(b),this.renderDiffEdits(b),this.pushStackElement(),this.monacoEditor.focus())}hide(){this.livePreviewDiffDecorationModel.hide()}resume(){this.finallyDiffModel.get()||this.rateRenderEditController(),this.livePreviewDiffDecorationModel.resume()}acceptAll(){this.livePreviewDiffDecorationModel.acceptUnProcessed(),this.dispose()}rejectAll(){this.livePreviewDiffDecorationModel.discardUnProcessed(),this.dispose()}revealFirstDiff(){this.livePreviewDiffDecorationModel.revealFirstDiff()}getZone(){return this.livePreviewDiffDecorationModel.getZone()}getTotalCodeInfo(){return this.livePreviewDiffDecorationModel.getTotalCodeInfo()}};t.InlineStreamDiffHandler=g,n.__decorate([(0,r.Autowired)(r.INJECTOR_TOKEN),n.__metadata("design:type",r.Injector)],g.prototype,"injector",void 0),t.InlineStreamDiffHandler=g=n.__decorate([(0,r.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[Object])],g)},22169:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineStreamDiffService=void 0;const n=e(85608),r=e(76003),o=e(43718);let l=class{constructor(){this._onAcceptDiscardPartialEdit=new o.Emitter,this.onAcceptDiscardPartialEdit=this._onAcceptDiscardPartialEdit.event}launchAcceptDiscardPartialEdit(E){this._onAcceptDiscardPartialEdit.fire(E)}};t.InlineStreamDiffService=l,t.InlineStreamDiffService=l=n.__decorate([(0,r.Injectable)()],l)},54362:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LivePreviewUndoRedoStackElement=void 0;const n=e(25539);class r{get type(){return n.UndoRedoElementType.Resource}get label(){return"Live.Preview.UndoRedo"}get code(){return"Live.Preview.UndoRedo"}get resource(){return this.model.uri}constructor(l){this.model=l,this.confirmBeforeUndo=!1}attachModel(l){this.decorationModel=l}registerUndo(l){this._undo=l}undo(){var l;(l=this._undo)===null||l===void 0||l.call(this,this.decorationModel)}registerRedo(l){this._redo=l}redo(){var l;(l=this._redo)===null||l===void 0||l.call(this,this.decorationModel)}}t.LivePreviewUndoRedoStackElement=r},8106:(L,t,e)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.AddedRangeDecorationsCollection=t.RemovedZoneWidget=t.AcceptPartialEditWidget=t.EPartialEdit=t.PendingRangeDecoration=t.AddedRangeDecoration=t.ActiveLineDecoration=void 0;const r=e(85608),o=r.__importDefault(e(53373)),l=r.__importStar(e(14041)),m=r.__importDefault(e(25873)),E=e(76003),p=e(41869),_=e(57925),s=e(43718),f=e(52659),c=e(90052),h=e(31324),u=e(34819),d=e(53617),v=e(24522),g=r.__importDefault(e(71749));t.ActiveLineDecoration="activeLine-decoration",t.AddedRangeDecoration="added-range-decoration",t.PendingRangeDecoration="pending-range-decoration";var a;(function(D){D.accept="accept",D.discard="discard"})(a||(t.EPartialEdit=a={}));const b=D=>{const{keyStrings:I,onAccept:O,onDiscard:P,editor:R}=D,[M,k]=l.default.useState(0),B=(0,l.useCallback)(()=>{O?.()},[O]),x=(0,l.useCallback)(()=>{P?.()},[P]);return(0,p.useDisposable)(()=>R.onDidScrollChange(N=>{const{scrollLeftChanged:K,scrollLeft:j}=N;K&&k(j)}),[R]),l.default.createElement("div",{className:(0,o.default)("kt-inline-diff-accept-partial-widget-container",g.default.inline_diff_accept_partial_widget_container),style:{marginLeft:M}},l.default.createElement("div",{className:g.default.content},l.default.createElement("span",{className:(0,o.default)(g.default.accept_btn,g.default.btn),onClick:B},(0,s.localize)("aiNative.inline.diff.accept"),l.default.createElement("span",null,I.acceptSequence)),l.default.createElement("span",{className:(0,o.default)(g.default.discard_btn,g.default.btn),onClick:x},(0,s.localize)("aiNative.inline.diff.reject"),l.default.createElement("span",null,I.discardSequence))))};let y=n=class extends f.ReactInlineContentWidget{constructor(I,O){super(I),this.editor=I,this.editWidgetOptions=O,this._onAccept=this.registerDispose(new s.Emitter),this.onAccept=this._onAccept.event,this._onDiscard=this.registerDispose(new s.Emitter),this.onDiscard=this._onDiscard.event,this.positionPreference=[c.ContentWidgetPositionPreference.EXACT],this.addedLinesCount=0,this.deletedLinesCount=0,this.status="pending"}get group(){return this._group}getSequenceKeyStrings(){let I=this.keybindingRegistry.getKeybindingsForCommand(_.AI_INLINE_DIFF_PARTIAL_EDIT.id);if(I=I.sort((O,P)=>P.args-O.args),!(!I||I.length!==2&&I.some(O=>(0,s.isUndefined)(O.resolved))))return{acceptSequence:this.keybindingRegistry.acceleratorForSequence(I[0].resolved,"")[0],discardSequence:this.keybindingRegistry.acceleratorForSequence(I[1].resolved,"")[0]}}renderView(){var I;if(!((I=this.editWidgetOptions)===null||I===void 0)&&I.hideAcceptPartialEditWidget)return;const O=this.getSequenceKeyStrings();if(O)return l.default.createElement(b,{keyStrings:O,onAccept:()=>this._onAccept.fire(),onDiscard:()=>this._onDiscard.fire(),editor:this.editor})}id(){return this._id||(this._id=`${n.ID}_${(0,s.uuid)(4)}`),this._id}getClassName(){return g.default.accept_partial_edit_widget_id}recordAddedRangeId(I){this._addedRangeId=I}getAddedRangeId(){return this._addedRangeId}resume(){this.status="pending",this.addedLinesCount=0,this.deletedLinesCount=0,super.resume()}setGroup(I){this._group=I}get isPending(){return this.status==="pending"}accept(I,O){this.status="accept",this.addedLinesCount=I,this.deletedLinesCount=O,super.hide()}get isAccepted(){return this.status==="accept"}discard(I,O){this.status="discard",this.addedLinesCount=I,this.deletedLinesCount=O,super.hide()}get isRejected(){return this.status==="discard"}};t.AcceptPartialEditWidget=y,y.ID="AcceptPartialEditWidgetID",r.__decorate([(0,E.Autowired)(p.KeybindingRegistry),r.__metadata("design:type",Object)],y.prototype,"keybindingRegistry",void 0),t.AcceptPartialEditWidget=y=n=r.__decorate([(0,E.Injectable)({multiple:!0}),r.__metadata("design:paramtypes",[Object,Object])],y);const S=({dom:D,editor:I})=>{const O=l.default.useRef(null),[P,R]=l.default.useState(0),[M,k]=l.default.useState(0);return(0,l.useEffect)(()=>{D&&O&&O.current&&O.current.appendChild(D)},[D,O]),(0,p.useDisposable)(()=>I.onDidScrollChange(B=>{const{scrollLeftChanged:x,scrollLeft:N}=B;x&&R(N)}),[I]),(0,p.useDisposable)(()=>(k(I.getOption(h.EditorOption.layoutInfo).contentLeft),I.onDidChangeConfiguration(B=>{B.hasChanged(h.EditorOption.layoutInfo)&&k(I.getOption(h.EditorOption.layoutInfo).contentLeft)})),[I]),l.default.createElement("div",{className:g.default.inline_diff_remove_zone_fixed_box,style:{marginLeft:M+"px"}},l.default.createElement("div",{className:g.default.inline_diff_remove_zone,ref:O,style:{marginLeft:-P+"px"}}))};class A extends u.ZoneWidget{get isHidden(){return this._hidden}get group(){return this._group}constructor(I,O,P){super(I,P),this.textLines=O,this._hidden=!1,this.status="pending",(0,s.isDefined)(P.isHidden)&&(this._hidden=P.isHidden),(0,s.isDefined)(P.recordPosition)&&(this._recordPosition=P.recordPosition),(0,s.isDefined)(P.undoRedoGroup)&&(this._group=P.undoRedoGroup);const R=this._positionMarkerId;this._disposables.add(R.onDidChange(M=>{const k=R.getRange(0);k&&(this._recordPosition=k.getStartPosition())}))}setGroup(I){this._group=I}_fillContainer(I){I.classList.add(g.default.inline_diff_remove_zone_widget_container),this.root=m.default.createRoot(I)}getRemovedTextLines(){return this.textLines.map(I=>I.text)}get height(){return this.textLines.length}getLastPosition(){return this.position||this._recordPosition}accept(){this.status="accept",this.hide()}discard(){this.status="discard",super.hide()}hide(){this._hidden=!0,super.hide()}resume(){this.status="pending";const I=this.getLastPosition();I&&this.show(I,this.height)}show(I,O){this._hidden=!1,this.status="pending",super.show(I,O)}revealRange(){}create(){super.create(),this.mountRender()}mountRender(){const I=document.createElement("div");(0,v.renderLines)(I,this.editor.getOption(h.EditorOption.tabIndex),this.textLines.map(({text:O,lineTokens:P})=>({content:O,decorations:[],lineTokens:P})),this.editor.getOptions()),this.root.render(l.default.createElement(S,{dom:I,editor:this.editor}))}dispose(){this.root.unmount(),super.dispose()}}t.RemovedZoneWidget=A;class T extends d.DeltaDecorations{constructor(){super(...arguments),this.status="pending"}accept(){this.status="accept",super.hide()}discard(){this.status="discard",super.hide()}}class w extends d.EnhanceDecorationsCollection{createDecorations(I){return new T(I)}}t.AddedRangeDecorationsCollection=w},80715:(L,t,e)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.LivePreviewDiffDecorationModel=void 0;const r=e(85608),o=e(76003),l=e(41869),m=e(43718),E=e(20868),p=e(60304),_=e(2261),s=e(74547),f=e(25539),c=e(77659),h=e(15989),u=r.__importDefault(e(71749)),d=e(22169),v=e(54362),g=e(8106);let a=n=class extends m.Disposable{constructor(y){super(),this.monacoEditor=y,this._onPartialEditWidgetListChange=this.registerDispose(new m.Emitter),this.onPartialEditWidgetListChange=this._onPartialEditWidgetListChange.event,this.options={partialEditWidgetOptions:{}},this.partialEditWidgetList=[],this.removedZoneWidgets=[],this.model=this.monacoEditor.getModel(),this.undoRedoService=p.StandaloneServices.get(f.IUndoRedoService),this.aiNativeContextKey=this.injector.get(c.AINativeContextKey,[this.monacoEditor.contextKeyService]),this.activeLineDec=this.monacoEditor.createDecorationsCollection(),this.pendingRangeDec=this.monacoEditor.createDecorationsCollection(),this.addDispose(this.inlineStreamDiffService.onAcceptDiscardPartialEdit(S=>{const A=this.monacoEditor.getPosition(),T=this.partialEditWidgetList.filter(w=>!w.isHidden).sort((w,D)=>{var I,O,P,R;const M=((O=(I=w.getPosition())===null||I===void 0?void 0:I.position)===null||O===void 0?void 0:O.lineNumber)||1,k=((R=(P=D.getPosition())===null||P===void 0?void 0:P.position)===null||R===void 0?void 0:R.lineNumber)||1,B=Math.abs(A.lineNumber-M),x=Math.abs(A.lineNumber-k);return B-x});T.length>0&&this.handlePartialEditAction(S?g.EPartialEdit.accept:g.EPartialEdit.discard,T[0])})),this.addedRangeDec=new g.AddedRangeDecorationsCollection(this.monacoEditor),this.addDispose(this.addedRangeDec.onDidDecorationsChange(S=>{this.aiNativeContextKey.inlineDiffPartialEditsIsVisible.get()&&this.partialEditWidgetList.forEach(T=>{const w=S.find(D=>T.getAddedRangeId()===D.id);if(w){const D=w.getRange();T.setOptions({position:{lineNumber:D.startLineNumber,column:1}}),T.layoutContentWidget()}})})),this.addDispose(m.Disposable.create(()=>this.clear()))}clear(){this.clearPendingLine(),this.clearActiveLine(),this.clearAddedLine(),this.clearRemovedWidgets(),this.clearPartialEditWidgetList()}hide(){this.addedRangeDec.getDecorations().forEach(y=>y.hide()),this.partialEditWidgetList.forEach(y=>y.hide()),this.removedZoneWidgets.forEach(y=>y.hide()),this.activeLineDec.clear(),this.pendingRangeDec.clear()}resume(){this.addedRangeDec.getDecorations().forEach(y=>y.status==="pending"&&y.resume()),this.partialEditWidgetList.forEach(y=>y.status==="pending"&&y.resume()),this.removedZoneWidgets.forEach(y=>y.status==="pending"&&y.resume())}initialize(y){this.updateZone(y)}getRemovedWidgets(){return this.removedZoneWidgets}showRemovedWidgetByLineNumber(y,S,A){const T=new E.Position(y,1),w=S.length,D=new g.RemovedZoneWidget(this.monacoEditor,S,{...A,showInHiddenAreas:!0,showFrame:!1,showArrow:!1});D.create(),this.removedZoneWidgets.push(D),A.isHidden?D.hide():D.show(T,w)}updateZone(y){this.zone=y}getZone(){return this.zone}touchActiveLine(y){const S=this.getZone();this.activeLineDec.set([{range:E.Range.fromPositions({lineNumber:S.startLineNumber+y-1,column:0}),options:s.ModelDecorationOptions.register({description:g.ActiveLineDecoration,isWholeLine:!0,className:u.default.inline_diff_current,zIndex:l.StackingLevel.Workbench})}])}doDiscardPartialWidget(y,S,A){let T=null,w=0,D=0;if(S&&S.length>0){const I=S.getRange();T=_.EditOperation.delete(E.Range.lift({startLineNumber:I.startLineNumber,startColumn:I.startColumn,endLineNumber:I.endLineNumber+1,endColumn:1})),w=S.length,S.hide()}if(A){const I=A.getLastPosition(),O=this.model.getEOL(),P=A.getRemovedTextLines();D=P.length;const R=P.join(O)+O;T?T=_.EditOperation.replace(E.Range.lift(T.range),R):T=_.EditOperation.insert(I.delta(1),R),A.hide()}return y.discard(w,D),T}handlePartialEditAction(y,S,A=!0,T=!1){const w=S.getPosition().position,D=this.aiReporter.getRelationId(),I=this.model,O=this.removedZoneWidgets.find(Z=>Z.getLastPosition().lineNumber===Math.max(1,w.lineNumber-1)),P=this.addedRangeDec.getDecorationByLineNumber(w.lineNumber),R=P?.length||0,M=O?.height||0,k=new f.UndoRedoGroup;S.setGroup(k),O?.setGroup(k),P?.setGroup(k);const B=Z=>Z.partialEditWidgetList.find(X=>X.group===k),x=Z=>Z.removedZoneWidgets.find(X=>X.group===k),N=Z=>Z.addedRangeDec.getDecorationByGroup(k);let K;const j=O?.getRemovedTextLines().join(`
|
|
28322
28322
|
`)||"",U=P?.getRange();U&&(K=I.getValueInRange({...U,endColumn:I.getLineMaxColumn(U.endLineNumber)}));const $=Z=>{T&&this.aiReporter.end(D,{message:"discard",success:!0,isDrop:!0,code:K,originCode:j,actionSource:m.ActionSourceEnum.InlineChat,actionType:m.ActionTypeEnum.LineDiscard});const X=x(Z);X?.discard();const H=N(Z);H?.discard();const Q=B(Z);return this.doDiscardPartialWidget(Q,H,X)},z=Z=>{T&&this.aiReporter.end(D,{message:"accept",success:!0,isReceive:!0,code:K,originCode:j,actionSource:m.ActionSourceEnum.InlineChat,actionType:m.ActionTypeEnum.lineAccept});const X=B(Z);X?.accept(R,M);const H=x(Z);H?.accept();const Q=N(Z);Q?.accept()},G=Z=>{const X=B(Z);X?.resume();const H=x(Z);H?.resume();const Q=N(Z);Q?.resume()};switch(y){case g.EPartialEdit.accept:if(z(this),A){const Z=this.createEditStackElement(k);Z.attachModel(this),Z.registerUndo(X=>{G(X)}),Z.registerRedo(X=>{z(X)})}break;case g.EPartialEdit.discard:{const Z=$(this);if(Z){if(A){const X=this.createEditStackElement(k);X.attachModel(this),X.registerUndo(H=>{G(H)}),X.registerRedo(H=>{$(H)})}I.pushStackElement(),I.pushEditOperations(null,[Z],()=>null,k),I.pushStackElement()}}break;default:break}const Y={uri:this.model.uri,totalPartialEditCount:this.partialEditWidgetList.length,resolvedPartialEditCount:this.partialEditWidgetList.filter(Z=>Z.isHidden).length,currentPartialEdit:{addedLinesCount:R,deletedLinesCount:M,type:y},...this.getTotalCodeInfo()};this.monacoEditor.focus(),this.inlineDiffService.firePartialEdit(Y),this.firePartialEditWidgetList()}firePartialEditWidgetList(){this._onPartialEditWidgetListChange.fire(this.partialEditWidgetList);const y=this.partialEditWidgetList.filter(S=>!S.isHidden);this.aiNativeContextKey.inlineDiffPartialEditsIsVisible.set(y.length!==0)}createEditStackElement(y){const S=new v.LivePreviewUndoRedoStackElement(this.model);return this.undoRedoService.pushElement(S,y),S}static computeCodeInfo(y,S,A){const T=D(y),w={added:0,deleted:0,changed:0};return y.forEach((I,O)=>{if(I.status==="pending"){const P=S[O],R=A[O],M=P?.length||0,k=R?.height||0;w.added+=M,w.deleted+=k,w.changed+=Math.max(M,k)}}),{totalAddedLinesCount:T.added,totalDeletedLinesCount:T.deleted,totalChangedLinesCount:T.changed,unresolvedAddedLinesCount:w.added,unresolvedDeletedLinesCount:w.deleted,unresolvedChangedLinesCount:w.changed};function D(I){const O={added:0,deleted:0,changed:0};return I.forEach(P=>{const R=P.addedLinesCount,M=P.deletedLinesCount;O.added+=R,O.deleted+=M,O.changed+=Math.max(R,M)}),O}}getTotalCodeInfo(){const y=this.partialEditWidgetList,S=this.addedRangeDec.getDecorations(),A=this.removedZoneWidgets;return n.computeCodeInfo(y,S,A)}recordPartialEditWidgetWithAddedDec(){this.partialEditWidgetList.forEach(y=>{var S,A;const T=(A=(S=y.getPosition())===null||S===void 0?void 0:S.position)===null||A===void 0?void 0:A.lineNumber;if(T){const w=this.addedRangeDec.getDecorationByLineNumber(T);w&&y.recordAddedRangeId(w.id)}})}acceptUnProcessed(){this.partialEditWidgetList.filter(S=>!S.isHidden).forEach(S=>{this.handlePartialEditAction(g.EPartialEdit.accept,S,!1)})}discardUnProcessed(){this.partialEditWidgetList.filter(S=>!S.isHidden).forEach(S=>{this.handlePartialEditAction(g.EPartialEdit.discard,S,!1)})}createPartialEditWidget(y){const S=this.injector.get(g.AcceptPartialEditWidget,[this.monacoEditor,this.options.partialEditWidgetOptions]);S.show({position:{lineNumber:y,column:1}});const A=S.onDispose(()=>{const T=S.getId();this.partialEditWidgetList=this.partialEditWidgetList.filter(w=>w.getId()!==T),A.dispose()});return S.addDispose([S.onAccept(()=>{this.handlePartialEditAction(g.EPartialEdit.accept,S,!0,!0)}),S.onDiscard(()=>{this.handlePartialEditAction(g.EPartialEdit.discard,S,!0,!0)})]),S}touchPartialEditWidgets(y){this.clearPartialEditWidgetList(),this.partialEditWidgetList=y.map(S=>this.createPartialEditWidget(S)),this.firePartialEditWidgetList()}touchAddedRange(y){this.addedRangeDec.set(y.map(S=>{const A=S.startPosition,T=S.endPosition,w=S.len;let D=E.Range.fromPositions(A,T),I=u.default.inline_diff_added_range+" ";return w===0&&(D=E.Range.fromPositions(A),I+=u.default.hide),{length:w,range:D,isHidden:w===0,options:s.ModelDecorationOptions.register({description:g.AddedRangeDecoration,isWholeLine:!0,className:I})}})),this.recordPartialEditWidgetWithAddedDec()}touchRemovedWidget(y,S){const A=()=>{this.clearRemovedWidgets(),y.forEach(({textLines:T,position:w})=>{this.showRemovedWidgetByLineNumber(w.lineNumber,T,{})}),S?.()};this.options.renderRemovedWidgetImmediately?A():(0,m.runWhenIdle)(A)}touchPendingRange(y){const S=this.getZone();this.pendingRangeDec.set([{range:E.Range.fromPositions({lineNumber:S.startLineNumber+y.startLineNumber-1,column:0},{lineNumber:S.startLineNumber+y.endLineNumberExclusive-2,column:Number.MAX_SAFE_INTEGER}),options:s.ModelDecorationOptions.register({description:g.PendingRangeDecoration,isWholeLine:!0,className:u.default.inline_diff_pending_range})}])}clearPendingLine(){this.pendingRangeDec.clear()}clearActiveLine(){this.activeLineDec.clear()}clearAddedLine(){this.addedRangeDec.clear()}clearPartialEditWidgetList(){this.partialEditWidgetList.forEach(y=>{y.dispose()}),this.partialEditWidgetList=[],this.aiNativeContextKey.inlineDiffPartialEditsIsVisible.set(!1)}clearRemovedWidgets(){this.removedZoneWidgets.forEach(y=>{y.dispose()}),this.removedZoneWidgets=[]}revealFirstDiff(){const y=this.removedZoneWidgets[0];if(y){const S=y.getLastPosition();S&&this.monacoEditor.revealLineInCenterIfOutsideViewport(S.lineNumber)}}setPreviewerOptions(y){this.options=y}};t.LivePreviewDiffDecorationModel=a,r.__decorate([(0,o.Autowired)(o.INJECTOR_TOKEN),r.__metadata("design:type",o.Injector)],a.prototype,"injector",void 0),r.__decorate([(0,o.Autowired)(m.IAIReporter),r.__metadata("design:type",Object)],a.prototype,"aiReporter",void 0),r.__decorate([(0,o.Autowired)(d.InlineStreamDiffService),r.__metadata("design:type",d.InlineStreamDiffService)],a.prototype,"inlineStreamDiffService",void 0),r.__decorate([(0,o.Autowired)(h.InlineDiffService),r.__metadata("design:type",h.InlineDiffService)],a.prototype,"inlineDiffService",void 0),t.LivePreviewDiffDecorationModel=a=n=r.__decorate([(0,o.Injectable)({multiple:!0}),r.__metadata("design:paramtypes",[Object])],a)},19520:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InlineInputPreviewDecorationID=void 0,t.InlineInputPreviewDecorationID="InlineInputPreviewDecorationID"},90058:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SumiLightBulbWidget=void 0;const n=e(41869),r=e(3908),o=e(19202);class l extends o.LightBulbWidget{_updateLightBulbTitleAndIcon(){super._updateLightBulbTitleAndIcon();const E=super.state;if(E.type!==1)return;let p=super.icon;(E.actions.allAIFixes||E.actions.hasAutoFix&&E.actions.hasAIFix||E.actions.hasAIFix)&&(p=r.Sumicon.magicWand),p&&(this.getDomNode().classList.remove(...this._iconClasses),this.getDomNode().classList.add(...(0,n.asClassNameArrayWrapper)(p)))}}t.SumiLightBulbWidget=l},8191:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RewriteWidget=t.REWRITE_DECORATION_INLINE_ADD=void 0;const n=e(85608),r=n.__importDefault(e(53373)),o=n.__importStar(e(14041)),l=n.__importDefault(e(25873)),m=e(76003),E=e(41869),p=n.__importStar(e(20868)),_=e(52659),s=e(90052),f=e(77714),c=e(2261),h=e(87822),u=e(90626),d=n.__importDefault(e(32518)),v={fixedOverflowWidgets:!0,readOnly:!0,domReadOnly:!0,lineNumbers:"off",glyphMargin:!1,scrollBeyondLastLine:!1,rulers:void 0,overviewRulerBorder:void 0,overviewRulerLanes:0,padding:{top:0,bottom:0},folding:!1,stickyScroll:{enabled:!1},minimap:{enabled:!1},automaticLayout:!0,scrollbar:{horizontal:"hidden",vertical:"hidden",horizontalScrollbarSize:0,verticalScrollbarSize:0,arrowSize:0,verticalSliderSize:0,horizontalSliderSize:0,ignoreHorizontalScrollbarInContentHeight:!0},hover:{enabled:!1},guides:{indentation:!1}};t.REWRITE_DECORATION_INLINE_ADD="rewrite-decoration-inline-add";const g=o.default.memo(b=>{const{editor:y,onReady:S}=b,A=(0,E.useInjectable)(E.MonacoService),T=(0,o.useRef)(null),w=(0,o.useRef)(null),[D,I]=(0,o.useState)(null),[O,P]=(0,o.useState)(0),[R,M]=(0,o.useState)(null),k=(0,o.useCallback)((K,j,U)=>{const $=y.getModel().getEOL();let z=j.startLineNumber,G=j.startColumn;const Y=K.getModel();K.changeDecorations(ce=>{if(K){Y.getAllDecorations().map(ge=>ge.id).forEach(ge=>ce.removeDecoration(ge));for(const ge of U){if(ge.removed)continue;const Se=ge.value.split($);for(let te=0;te<Se.length;te++){const Me=Se[te];te!==0&&(z++,G=1),ge.added&&ce.addDecoration(new p.Range(z,G,z,G+Me.length),{description:t.REWRITE_DECORATION_INLINE_ADD,className:d.default.ghost_text_decoration_inline_add}),G+=Me.length}}}});const Z=K.getOption(p.editor.EditorOption.lineHeight);K?.setScrollTop(Math.max(j.startLineNumber-1,0)*Z);const X=z-j.startLineNumber,H=K.getOption(p.editor.EditorOption.fontInfo).spaceWidth,Q=K.getOption(p.editor.EditorOption.layoutInfo).contentLeft;let J=0;const oe=Y.getOptions().tabSize;Array.from({length:X+1},(ce,ge)=>j.startLineNumber+ge).forEach(ce=>{const ge=Y.getLineContent(ce);let Se=0;for(const te of ge)te===f.space?Se+=oe:Se+=1,J=Math.max(J,Se)}),I({width:J*H+Q*2,height:Z*(X+1)})},[D,y]);(0,o.useEffect)(()=>{if(y.getModel())return S&&S({getVirtualEditor:()=>R,renderVirtualEditor:(j,U,$)=>B(j,U,$),renderTextLineThrough:j=>x(j),layout:j=>N(j)}),()=>{R&&R.dispose(),w.current&&(0,E.runWhenIdle)(()=>{var j;(j=w.current)===null||j===void 0||j.unmount(),w.current=null})}},[y,S,R]);const B=(0,o.useCallback)((K,j,U)=>{if(!T.current)return;const $=y.getModel();if(!$)return;let z=R;if(!z){z=A.createCodeEditor(T.current,v);const G=u.StandaloneServices.get(h.IModelService),Y={languageId:$.getLanguageId(),onDidChange:E.Event.None},Z=G.createModel("",Y);z.setModel(Z),M(z)}z.setValue(K),k(z,j,U)},[T,R]),x=(0,o.useCallback)(K=>{if(!T.current)return;R&&(R.dispose(),M(null));const j=({changes:U})=>{const $=y.getOption(p.editor.EditorOption.lineHeight),z=y.getOption(p.editor.EditorOption.fontInfo).spaceWidth,G=(Z,X=d.default.ghost_text_decoration)=>o.default.createElement("span",{className:(0,r.default)(d.default.space_span,X),style:{width:`${z*Z}px`}},f.space.repeat(Z)),Y=(Z,X)=>o.default.createElement("span",{className:(0,r.default)(d.default.text_span,X)},Z);return o.default.createElement(o.default.Fragment,null,U.map((Z,X)=>{let H=!0,Q="",J=0;const oe=[];for(const ce of Z){const{value:ge,added:Se,removed:te}=ce;if(te)Q+=ge;else{H=!1,J+=ge.length;const Me=ge.length-ge.trimStart().length,we=ge.length-ge.trimEnd().length,re=ge.trim();oe.push(G(Me)),re&&(oe.push(Y(re,Se?d.default.ghost_text_decoration_inline_add:d.default.ghost_text_decoration)),oe.push(G(we)))}}if(H){const ce=Q.length-Q.trimStart().length,ge=Q.length-Q.trimEnd().length,Se=Q.trim();oe.push(G(ce,d.default.ghost_text_decoration_remove)),Se&&(oe.push(Y(Se,d.default.ghost_text_decoration_inline_remove)),oe.push(G(ge,d.default.ghost_text_decoration_inline_remove)))}return o.default.createElement("div",{key:X,className:d.default.deletions_code_line,style:{height:`${$}px`}},oe)}))};w.current&&(w.current.unmount(),w.current=null),w.current=l.default.createRoot(T.current),w.current.render(o.default.createElement(o.default.Fragment,null,K.map((U,$)=>o.default.createElement(j,{key:$,changes:U.changes}))))},[y,T,R,w]),N=(0,o.useCallback)(K=>{const j=y.getOption(p.editor.EditorOption.fontInfo).spaceWidth;let U=0;for(let $=K.startLineNumber;$<=K.endLineNumber;$++){const z=y.getModel().getLineMaxColumn($);U=Math.max(U,z)}P(U*j+10)},[y]);return o.default.createElement("div",{className:d.default.rewrite_widget_container,style:{width:D?.width,height:D?.height,marginLeft:O}},o.default.createElement("div",{className:d.default.virtual_editor_container,ref:T}))});let a=class extends _.ReactInlineContentWidget{constructor(){super(...arguments),this.virtualEditorHandler=null,this.positionPreference=[s.ContentWidgetPositionPreference.EXACT],this.defered=new E.Deferred,this.updateFontStyle=()=>{const y=this.editor.getOption(p.editor.EditorOption.fontInfo);this.domNode.style.fontFamily=y.fontFamily,this.domNode.style.fontSize=y.fontSize+"px"}}renderView(){return this.updateFontStyle(),o.default.createElement(g,{editor:this.editor,onReady:y=>{this.defered.resolve(),this.virtualEditorHandler=y}})}id(){return"RewriteWidget"}show(y){const{position:S}=y;if(!S)return;const{lineNumber:A}=S;super.show({position:p.Position.lift({lineNumber:A,column:1})})}setInsertText(y){this.insertText=y}setEditArea(y){this.editArea=y}getEditArea(){return this.editArea}getVirtualEditor(){var y,S;return(S=(y=this.virtualEditorHandler)===null||y===void 0?void 0:y.getVirtualEditor())!==null&&S!==void 0?S:null}renderTextLineThrough(y){var S,A;(S=this.virtualEditorHandler)===null||S===void 0||S.renderTextLineThrough(y),(A=this.virtualEditorHandler)===null||A===void 0||A.layout(this.editArea)}renderVirtualEditor(y,S){this.virtualEditorHandler.renderVirtualEditor(y,this.editArea,S),this.virtualEditorHandler.layout(this.editArea)}accept(){(0,E.isUndefined)(this.insertText)||(this.editor.pushUndoStop(),this.editor.getModel().pushEditOperations(null,[c.EditOperation.replace(p.Range.lift(this.editArea),this.insertText)],()=>null))}};t.RewriteWidget=a,t.RewriteWidget=a=n.__decorate([(0,m.Injectable)({multiple:!0})],a)},19413:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IAIInlineCompletionsProvider=t.EResultKind=t.EInlineChatStatus=t.ChatProxyServiceToken=t.IChatAgentService=t.IChatManagerService=t.IChatInternalService=t.ChatCompletionRequestMessageRoleEnum=t.AT_SIGN_SYMBOL=t.SLASH_SYMBOL=t.AI_MENUBAR_CONTAINER_VIEW_ID=t.AI_MENU_BAR_DEBUG_TOOLBAR=t.AI_CHAT_LOGO_AVATAR_ID=t.AI_CHAT_CONTAINER_ID=t.AI_CHAT_VIEW_ID=t.AIInlineChatContentWidget=t.IAINativeService=void 0;const n=e(43718),r=e(66338);t.IAINativeService=Symbol("IAINativeService"),t.AIInlineChatContentWidget=n.AIInlineChatContentWidgetId,t.AI_CHAT_VIEW_ID="AI-Chat",t.AI_CHAT_CONTAINER_ID="AI-Chat-Container",t.AI_CHAT_LOGO_AVATAR_ID="AI-Chat-Logo-Avatar",t.AI_MENU_BAR_DEBUG_TOOLBAR="AI_MENU_BAR_DEBUG_TOOLBAR",t.AI_MENUBAR_CONTAINER_VIEW_ID=r.DESIGN_MENUBAR_CONTAINER_VIEW_ID,t.SLASH_SYMBOL="/",t.AT_SIGN_SYMBOL="@";var o;(function(E){E.System="system",E.User="user",E.Assistant="assistant"})(o||(t.ChatCompletionRequestMessageRoleEnum=o={})),t.IChatInternalService=Symbol("IChatInternalService"),t.IChatManagerService=Symbol("IChatManagerService"),t.IChatAgentService=Symbol("IChatAgentService"),t.ChatProxyServiceToken=Symbol("ChatProxyServiceToken");var l;(function(E){E[E.READY=0]="READY",E[E.THINKING=1]="THINKING",E[E.DONE=2]="DONE",E[E.ERROR=3]="ERROR"})(l||(t.EInlineChatStatus=l={}));var m;(function(E){E.ACCEPT="ACCEPT",E.DISCARD="DISCARD",E.REGENERATE="REGENERATE"})(m||(t.EResultKind=m={})),t.IAIInlineCompletionsProvider=Symbol("IAIInlineCompletionsProvider")},69820:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NearestCodeBlockType=void 0;var e;(function(n){n.Block="block",n.Line="line"})(e||(t.NearestCodeBlockType=e={}))},98864:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extractCodeBlocks=t.isDocumentValid=t.isDocumentTooShort=t.isDocumentTooLarge=void 0;const e="```",n=10,r=E=>{try{E.getText()}catch(p){if(p instanceof RangeError)return!0}return!1};t.isDocumentTooLarge=r;const o=E=>E.getText().length<n;t.isDocumentTooShort=o;const l=E=>!((0,t.isDocumentTooLarge)(E)||(0,t.isDocumentTooShort)(E));t.isDocumentValid=l;const m=E=>{const p=E.split(`
|
|
28323
|
-
`);let _=[],s=!1,f=0;return p.forEach((c,h)=>{if(!s&&c.startsWith(e))s=!0,f=h+1;else if(s&&c.startsWith(e)){s=!1;const u=h;_=p.slice(f,u)}s&&f!==h+1&&_.push(c)}),_.join(`
|
|
28323
|
+
`);let _=[],s=!1,f=0;return p.forEach((c,h)=>{if(!s&&c.trim().startsWith(e))s=!0,f=h+1;else if(s&&c.trim().startsWith(e)){s=!1;const u=h;_=p.slice(f,u)}s&&f!==h+1&&_.push(c)}),_.join(`
|
|
28324
28324
|
`)};t.extractCodeBlocks=m},26471:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),e(85608).__exportStar(e(19413),t)},15504:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentReactions=t.CommentReactionSwitcher=void 0;const n=e(85608),r=n.__importDefault(e(14041)),o=e(41869),l=e(81878),m=e(25918),E=e(93899),p=e(52416),_=e(69635),s=n.__importDefault(e(38877)),f=({thread:h,comment:u,className:d})=>{const v=`${h.providerId}_${h.id}_${u.id}`,g=`${E.MenuId.CommentReactionSwitcherMenu}_${v}`,a=(0,o.useInjectable)(E.IMenuRegistry),b=(0,o.useInjectable)(E.AbstractMenuService);r.default.useEffect(()=>{const S=new o.Disposable,A=`${E.MenuId.CommentReactionSwitcherSubmenu}_${v}`;return S.addDispose(a.registerMenuItem(g,{submenu:A,label:A,iconClass:(0,o.getExternalIcon)("reactions"),group:"navigation"})),S.addDispose(a.registerMenuItems(A,u.reactions.map(T=>({command:{id:_.SwitchCommandReaction,label:T.label},extraTailArgs:[{thread:h,comment:u,reaction:T}]})))),()=>S.dispose()},[]);const y=r.default.useMemo(()=>b.createMenu(g),[]);return r.default.createElement(m.InlineActionBar,{className:d,menus:y,regroup:S=>[S,[]],type:"icon"})};t.CommentReactionSwitcher=f;const c=({thread:h,comment:u})=>{var d;const v=(0,o.useInjectable)(o.IEventBus),g=(0,o.useInjectable)(p.IIconService),a=r.default.useCallback(b=>{v.fire(new _.CommentReactionClick({thread:h,comment:u,reaction:b}))},[]);return r.default.createElement("div",{className:s.default.comment_reactions},(d=u.reactions)===null||d===void 0?void 0:d.filter(b=>b.count!==0).map(b=>r.default.createElement(l.Button,{key:b.label,onClick:()=>a(b),type:"secondary",size:"small",title:b.label,className:s.default.comment_reaction,iconClass:g.fromIcon("",b.iconPath.toString(),p.IconType.Background)},"\xA0",b.count)))};t.CommentReactions=c},54143:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsBody=void 0;const n=e(85608),r=n.__importDefault(e(14041)),o=n.__importDefault(e(43144)),l=e(84605),m=n.__importDefault(e(38877)),E=e(70154),p=({root:_,children:s})=>o.default.createPortal(s,_);t.CommentsBody=r.default.memo(({body:_})=>{const s=r.default.useRef(null),[f,c]=r.default.useState(null),h=r.default.useMemo(()=>{const u=(0,l.createMarkedRenderer)();return u.link=(d,v,g)=>`<a target="_blank" rel="noopener" href="${d}" title="${v}">${g}</a>`,u},[]);return r.default.useEffect(()=>{if(s.current){const u=s.current.attachShadow({mode:"open"});f||c(u)}},[]),r.default.createElement("div",{ref:s,className:m.default.comment_shadow_box},f&&r.default.createElement(p,{root:f},r.default.createElement("style",null,E.markdownCss),r.default.createElement("div",{dangerouslySetInnerHTML:{__html:(0,l.toMarkdownHtml)(typeof _=="string"?_:_.value,{gfm:!0,breaks:!1,pedantic:!1,smartLists:!0,smartypants:!1,renderer:h})}})))})},66480:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsFeatureRegistry=void 0;const n=e(85608),r=e(76003);let o=class{constructor(){this.config={},this.options={},this.panelTreeNodeHandlers=[],this.mentionsOptions={},this.providerFeature=new Map}registerConfig(m){this.config={...this.config,...m}}registerPanelTreeNodeHandler(m){this.panelTreeNodeHandlers.push(m)}registerPanelOptions(m){this.options={...this.options,...m}}registerFileUploadHandler(m){this.fileUploadHandler=m}registerMentionsOptions(m){this.mentionsOptions=m}registerZoneWidgetRender(m){this.zoneWidgetRender=m}getConfig(){return this.config}getCommentsPanelOptions(){return this.options}getCommentsPanelTreeNodeHandlers(){return this.panelTreeNodeHandlers}getFileUploadHandler(){return this.fileUploadHandler}getMentionsOptions(){return this.mentionsOptions}getZoneWidgetRender(){return this.zoneWidgetRender}registerProviderFeature(m,E){this.providerFeature.set(m,E)}getProviderFeature(m){return this.providerFeature.get(m)}};t.CommentsFeatureRegistry=o,t.CommentsFeatureRegistry=o=n.__decorate([(0,r.Injectable)()],o)},37357:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentItem=void 0;const n=e(85608),r=n.__importDefault(e(14041)),o=e(97267),l=e(41869),m=e(25918),E=e(93899),p=e(69635),_=e(15504),s=e(54143),f=e(42018),c=n.__importDefault(e(38877)),h=({timestamp:g})=>{const a=r.default.useMemo(()=>{const b=new Date(g);return(0,l.toLocalString)(b)},[g]);return r.default.createElement("span",{className:c.default.comment_item_timestamp},a)},u=(g,a)=>{const b=(0,l.useInjectable)(E.AbstractMenuService),{body:y,contextValue:S}=a,[A,T]=r.default.useState(""),w=(0,l.useInjectable)(p.ICommentsFeatureRegistry),D=r.default.useMemo(()=>w.getFileUploadHandler(),[]);r.default.useEffect(()=>{T(y)},[y]);const I=r.default.useMemo(()=>g.createScoped(),[]),O=r.default.useMemo(()=>I.createKey("commentIsEmpty",!a.body),[]),P=r.default.useMemo(()=>b.createMenu(E.MenuId.CommentsCommentContext,I),[]),R=r.default.useMemo(()=>b.createMenu(E.MenuId.CommentsCommentTitle,I),[]),M=r.default.useRef(I.createKey("comment",S));r.default.useEffect(()=>{M.current.set(S)},[S]);const k=r.default.useCallback(x=>{O.set(!x.target.value),T(x.target.value)},[]),B=r.default.useCallback(async x=>{if(D){const N=await D(A,x);T(K=>{const j=K+N;return O.set(!j),j})}},[A]);return[A,T,k,P,R,B]},d=({reply:g,thread:a})=>{var b;const{contextKeyService:y}=a,{author:S,label:A,body:T,mode:w,timestamp:D}=g,I=(b=S.iconPath)===null||b===void 0?void 0:b.toString(),[O,P,R,M,k,B]=u(y,g),x=r.default.useMemo(()=>{const N=(0,l.toMarkdownHtml)(typeof T=="string"?T:T.value);return/^\<p\>[^<>]+\<\/p\>\n$/.test(N)},[T]);return r.default.createElement("div",{className:c.default.reply_item},(0,l.isUndefined)(w)||w===p.CommentMode.Preview?r.default.createElement("div",null,x?r.default.createElement(r.default.Fragment,null,I&&r.default.createElement("img",{className:c.default.reply_item_icon,src:I,alt:S.name}),r.default.createElement("span",{className:c.default.comment_item_author_name},S.name),D&&r.default.createElement(h,{timestamp:D}),typeof A=="string"?r.default.createElement("span",{className:c.default.comment_item_label},A):A," : ",r.default.createElement("span",{className:c.default.comment_item_body},typeof T=="string"?T:T.value),g.reactions&&g.reactions.length>0&&r.default.createElement(_.CommentReactionSwitcher,{className:c.default.reply_item_title,thread:a,comment:g}),r.default.createElement(m.InlineActionBar,{separator:"inline",className:c.default.reply_item_title,menus:k,context:[{thread:a,comment:g,menuId:E.MenuId.CommentsCommentTitle}],type:"icon"})):r.default.createElement(r.default.Fragment,null,r.default.createElement("div",{className:c.default.comment_item_markdown_header},r.default.createElement("div",null,I&&r.default.createElement("img",{className:c.default.reply_item_icon,src:I,alt:S.name}),r.default.createElement("span",{className:c.default.comment_item_author_name},S.name),D&&r.default.createElement(h,{timestamp:D}),typeof A=="string"?r.default.createElement("span",{className:c.default.comment_item_label},A):A," : "),r.default.createElement(m.InlineActionBar,{separator:"inline",className:c.default.reply_item_title,menus:k,context:[{thread:a,comment:g,menuId:E.MenuId.CommentsCommentTitle}],type:"icon"})),r.default.createElement(s.CommentsBody,{body:T}))):r.default.createElement("div",null,r.default.createElement(f.CommentsTextArea,{value:typeof O=="string"?O:O.value,autoFocus:!0,onChange:R,dragFiles:B}),r.default.createElement(m.InlineActionBar,{className:c.default.comment_item_reply,menus:M,context:[{thread:a,comment:g,body:O,menuId:E.MenuId.CommentsCommentContext}],type:"button",separator:"inline",afterClick:()=>{P(T)}})),g.reactions&&g.reactions.length>0&&r.default.createElement(_.CommentReactions,{thread:a,comment:g}))},v=({thread:g,commentThreadContext:a,widget:b})=>{var y,S;const[A,T]=r.default.useState(!1),[w,D]=r.default.useState(""),{contextKeyService:I}=g,O=(0,l.useAutorun)(g.readOnly),[P,...R]=(0,l.useAutorun)(g.comments),{author:M,label:k,body:B,mode:x,timestamp:N}=P,K=(0,l.isString)(M.iconPath)?M.iconPath:!((y=M.iconPath)===null||y===void 0)&&y.authority?(S=M.iconPath)===null||S===void 0?void 0:S.toString():"",[j,U,$,z,G,Y]=u(I,P),Z=(0,l.useInjectable)(p.ICommentsFeatureRegistry),X=r.default.useMemo(()=>Z.getFileUploadHandler(),[]),H=r.default.useMemo(()=>I.createKey("commentIsEmpty",!0),[]);function Q(oe){H.set(!oe.target.value),D(oe.target.value)}const J=r.default.useCallback(async oe=>{if(X){const ce=await X(j,oe);D(ge=>{const Se=ge+ce;return H.set(!Se),Se})}},[w]);return r.default.createElement("div",{className:c.default.comment_item},K&&r.default.createElement("img",{className:c.default.comment_item_icon,src:K,alt:M.name}),r.default.createElement("div",{className:c.default.comment_item_content},r.default.createElement("div",{className:c.default.comment_item_head},r.default.createElement("div",{className:c.default.comment_item_name},r.default.createElement("span",{className:c.default.comment_item_author_name},M.name),N&&r.default.createElement(h,{timestamp:N}),typeof k=="string"?r.default.createElement("span",{className:c.default.comment_item_label},k):k),r.default.createElement("div",{className:c.default.comment_item_actions},P.reactions&&P.reactions.length>0&&r.default.createElement(_.CommentReactionSwitcher,{thread:g,comment:P}),!O&&r.default.createElement(o.Button,{className:c.default.comment_item_reply_button,size:"small",type:"secondary",onClick:()=>T(!0)},(0,l.localize)("comments.thread.action.reply")),r.default.createElement(m.InlineActionBar,{menus:G,context:[{thread:g,comment:P,menuId:E.MenuId.CommentsCommentTitle}],type:"button"}))),(0,l.isUndefined)(x)||x===p.CommentMode.Preview?r.default.createElement(s.CommentsBody,{body:B}):r.default.createElement("div",null,r.default.createElement(f.CommentsTextArea,{value:typeof j=="string"?j:j.value,autoFocus:!0,onChange:$,dragFiles:Y}),r.default.createElement(m.InlineActionBar,{className:c.default.comment_item_context,menus:z,context:[{thread:g,comment:P,body:j,menuId:E.MenuId.CommentsCommentContext}],separator:"inline",type:"button",afterClick:()=>{U(B)}})),P.reactions&&P.reactions.length>0&&r.default.createElement(_.CommentReactions,{thread:g,comment:P}),(R.length>0||A)&&r.default.createElement("div",{className:c.default.comment_item_reply_wrap},R.map(oe=>r.default.createElement(d,{key:oe.id,thread:g,reply:oe})),A&&r.default.createElement("div",null,r.default.createElement(f.CommentsTextArea,{autoFocus:!0,value:w,onChange:Q,placeholder:`${(0,l.localize)("comments.reply.placeholder")}...`,dragFiles:J}),r.default.createElement(m.InlineActionBar,{className:c.default.comment_item_reply,menus:a,context:[{thread:g,text:w,widget:b,menuId:E.MenuId.CommentsCommentThreadContext}],separator:"inline",type:"button",afterClick:()=>{D(""),T(!1)}})))))};t.CommentItem=v},53878:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsPanel=void 0;const n=e(85608),r=n.__importStar(e(14041)),o=e(97267),l=e(41869),m=e(69635),E=n.__importDefault(e(38877)),p=e(5167),_=e(47842),s=({viewState:f})=>{const c=(0,l.useInjectable)(_.CommentModelService),[h,u]=(0,r.useState)(),d=(0,r.useRef)(null),v=(0,l.useInjectable)(m.ICommentsFeatureRegistry),{handleTreeBlur:g}=c;(0,r.useEffect)(()=>{u(c.treeModel);const w=c.onDidUpdateTreeModel(D=>{u(D)});return()=>{w.dispose()}},[]);const a=(0,r.useCallback)(w=>{c.handleTreeHandler(w)},[c]),b=(0,r.useCallback)(w=>r.default.createElement(p.CommentNodeRendered,{item:w.item,itemType:w.itemType,decorations:c.decorations.getDecorations(w.item),defaultLeftPadding:8,onTwistierClick:c.handleTwistierClick,onClick:c.handleItemClick,leftPadding:8}),[h]),y=(0,r.useMemo)(()=>v.getCommentsPanelOptions(),[]),S=(0,r.useMemo)(()=>y.header,[y]),A=(0,r.useMemo)(()=>r.default.createElement("div",{className:E.default.panel_placeholder},y.defaultPlaceholder||(0,l.localize)("comments.panel.placeholder")),[y]),T=(0,r.useCallback)(()=>h?r.default.createElement(o.RecycleTree,{height:f.height-(S?.height||0),itemHeight:p.COMMENT_TREE_NODE_HEIGHT,onReady:a,model:h,placeholder:()=>A},b):A,[h,S,f.height]);return r.default.createElement("div",{className:E.default.comment_panel,tabIndex:-1,onBlur:g,ref:d},S?.component,T())};t.CommentsPanel=s},42018:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsTextArea=void 0;const n=e(85608),r=n.__importDefault(e(14041)),o=e(34801),l=e(97267),m=e(41869),E=e(69635),p=e(54143),_=n.__importDefault(e(38877)),s=e(73136),f="@",c="@[__display__](__id__)",h=(u,d)=>`@${d}`;t.CommentsTextArea=r.default.forwardRef((u,d)=>{const{focusDelay:v=0,autoFocus:g=!1,placeholder:a="",onFocus:b,onBlur:y,onChange:S,maxRows:A=10,minRows:T=2,value:w,initialHeight:D,dragFiles:I}=u,[O,P]=r.default.useState(0),R=(0,m.useInjectable)(E.ICommentsFeatureRegistry),M=r.default.useRef(null),k=r.default.useRef(null),B=r.default.useRef(null);r.default.useImperativeHandle(d,()=>M.current);const x=r.default.useCallback(async z=>{var G;z.stopPropagation(),z.preventDefault();const Y=(G=z.dataTransfer)===null||G===void 0?void 0:G.files;Y&&I&&await I(Y),M.current&&(M.current.focus(),K(M.current.value))},[I]),N=r.default.useCallback(z=>{z.stopPropagation(),z.preventDefault(),z.dataTransfer.dropEffect="copy"},[]),K=r.default.useCallback(z=>{const G=M.current;if(G){const Y=z.toString().length;G.setSelectionRange(Y,Y)}},[]);r.default.useEffect(()=>{var z;const G=M.current;if(!G)return;D&&G.style&&(G.style.height=D),v&&setTimeout(()=>{G.focus({preventScroll:!0})},v),K(w);function Y(Z){var X,H,Q;const J=Z.target;J&&(J.nodeName.toUpperCase()==="TEXTAREA"&&J.scrollHeight>J.clientHeight||J.nodeName.toUpperCase()==="UL"||((X=J.parentElement)===null||X===void 0?void 0:X.nodeName.toUpperCase())==="UL"||((Q=(H=J.parentElement)===null||H===void 0?void 0:H.parentElement)===null||Q===void 0?void 0:Q.nodeName.toUpperCase())==="UL")&&Z.stopPropagation()}return(z=k.current)===null||z===void 0||z.addEventListener("mousewheel",Y,!0),()=>{var Z;(Z=k.current)===null||Z===void 0||Z.removeEventListener("mousewheel",Y,!0)}},[]),r.default.useEffect(()=>{O===0&&(setTimeout(()=>{var z;(z=M.current)===null||z===void 0||z.focus({preventScroll:!0})},v),K(w))},[O]);const j=r.default.useMemo(()=>(0,s.getMentionBoxStyle)({minRows:T,maxRows:A}),[T,A]),U=r.default.useMemo(()=>R.getMentionsOptions(),[R]),$=r.default.useCallback(async(z,G)=>{if(U.providerData){const Y=await U.providerData(z);G(Y)}else G([])},[U]);return r.default.createElement("div",{className:_.default.textarea_container},r.default.createElement(l.Tabs,{mini:!0,value:O,onChange:z=>P(z),tabs:[(0,m.localize)("comments.thread.textarea.write"),(0,m.localize)("comments.thread.textarea.preview")]}),r.default.createElement("div",null,O===0?r.default.createElement("div",{ref:k},r.default.createElement(o.MentionsInput,{autoFocus:g,onDragOver:N,onDrop:x,inputRef:M,ref:B,value:w,placeholder:a,onChange:S,onFocus:b,onBlur:y,style:j},r.default.createElement(o.Mention,{markup:U.markup||c,renderSuggestion:U.renderSuggestion,trigger:f,data:$,displayTransform:U.displayTransform||h}))):r.default.createElement("div",{className:_.default.textarea_preview},r.default.createElement(p.CommentsBody,{body:w}))))})},49867:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsThread=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(91830),m=e(54414),E=e(28423),p=e(69635),_=e(90366);let s=class extends o.Disposable{set contextValue(c){this._contextKeyService.createKey("thread",c)}get contextValue(){return this._contextKeyService.getContextValue("thread")}get onDidChangeCollapsibleState(){return this.onDidChangeCollapsibleStateEmitter.event}get onDidChange(){return this.onDidChangeEmitter.event}constructor(c,h,u,d){super(),this.uri=c,this.range=h,this.providerId=u,this.options=d,this.comments=(0,E.observableValue)(this,[]),this.label=(0,E.observableValue)(this,void 0),this.readOnly=(0,E.observableValue)(this,!1),this.isCollapsed=(0,E.observableValue)(this,!1),this.onDidChangeCollapsibleStateEmitter=new o.Emitter,this.widgets=new Map,this._id=`thread_${(0,o.uuid)()}`,this.onDidChangeEmitter=new o.Emitter,this.threadHeaderTitle=(0,E.derived)(this,S=>{const A=this.label.read(S);if(A)return A;const T=this.comments.read(S);if(T.length){const w=new Set(T.map(D=>`@${D.author.name}`));return`${(0,o.localize)("comments.participants")}: `+[...w].join(" ")}else return(0,o.localize)("comments.zone.title")}),this.toggle=S=>{if(this.comments.get().length>0){const T=this.widgets.get(S);T&&T.toggle()}else this.dispose()},this.updateComments(d.comments?d.comments.map(S=>({...S,id:(0,o.uuid)()})):[]),this.data=this.options.data,this._contextKeyService=this.registerDispose(this.globalContextKeyService.createScoped()),new l.ResourceContextKey(this._contextKeyService).set(c),this._contextKeyService.createKey("thread",d.contextValue),(0,E.transaction)(S=>{this.setReadOnly(!!d.readOnly),this.label.set(d.label,S),this.isCollapsed.set(!!this.options.isCollapsed,S)});const g=this._contextKeyService.createKey("threadsLength",this.commentsService.getThreadsByUri(c).length),a=this.comments.get(),b=this._contextKeyService.createKey("commentsLength",a.length),y=this._contextKeyService.createKey("commentThreadIsEmpty",!a.length);this._contextKeyService.createKey("commentController",u),this.addDispose((0,E.autorun)(S=>{const A=this.comments.read(S).length;b.set(A),y.set(!A)})),this.addDispose((0,E.autorun)(S=>{this.isCollapsed.read(S)?this.hideAll():this.showAll()})),this.addDispose(this.commentsService.onThreadsChanged(S=>{S.uri.isEqual(c)&&g.set(this.commentsService.getThreadsByUri(c).length)})),this.addDispose({dispose:()=>{this.updateComments([])}}),this.onDidChangeEmitter.fire()}updateComments(c){(0,E.transaction)(h=>{this.comments.set(c,h)})}getWidgetByEditor(c){return this.widgets.get(c)}get id(){return this._id}get contextKeyService(){return this._contextKeyService}setReadOnly(c){(0,E.transaction)(h=>{this.readOnly.set(c,h),this._contextKeyService.createKey("readOnly",c)})}getEditorsByUri(c){return this.editorCollectionService.listEditors().filter(h=>{var u;return(u=h.currentUri)===null||u===void 0?void 0:u.isEqual(c)})}addWidgetByEditor(c){const h=this.injector.get(_.CommentsZoneWidget,[c,this,{arrowColor:"var(--peekView-border)"}]);return this.addDispose(h.onChangeZoneWidget(()=>{const u=this.commentsService.commentsThreads.filter(g=>this.isEqual(g)),d=u.findIndex(g=>g===this),v=u.slice(d+1);for(const g of v)if(g.isShowWidget(c)){const a=g.getWidgetByEditor(c);a?.resize()}})),this.addDispose(h),this.widgets.set(c,h),c.onDispose(()=>{h.dispose(),this.widgets.delete(c)}),h}show(c){if(c){let h=this.widgets.get(c);h||(h=this.addWidgetByEditor(c)),h.show()}else this.getEditorsByUri(this.uri).forEach(u=>{var d;let v=this.widgets.get(u);v||(v=this.addWidgetByEditor(u)),!((d=u.currentUri)===null||d===void 0)&&d.isEqual(this.uri)&&v.show()})}showWidgetsIfShowed(){var c;for(const h of this.getEditorsByUri(this.uri)){let u=this.widgets.get(h);u||(u=this.addWidgetByEditor(h)),!((c=h.currentUri)===null||c===void 0)&&c.isEqual(this.uri)&&u.isShow&&u.show()}}hideWidgetsByDispose(){var c;for(const[h,u]of this.widgets)!(!((c=h.currentUri)===null||c===void 0)&&c.isEqual(this.uri))&&u.dispose()}isShowWidget(c){if(c){const h=this.widgets.get(c);return h?h.isShow:!1}else{for(const[,h]of this.widgets)return h.isShow;return!1}}hide(c){if(c){const h=this.widgets.get(c);h?.hide()}else this.hideAll()}showAll(){(0,E.transaction)(c=>{this.isCollapsed.set(!1,c)});for(const[,c]of this.widgets)c.show();this.onDidChangeCollapsibleStateEmitter.fire(p.CommentThreadCollapsibleState.Expanded)}hideAll(c){var h;(0,E.transaction)(u=>{this.isCollapsed.set(!0,u)});for(const[u,d]of this.widgets)c?!(!((h=u.currentUri)===null||h===void 0)&&h.isEqual(this.uri))&&d.dispose():d.hide();this.onDidChangeCollapsibleStateEmitter.fire(p.CommentThreadCollapsibleState.Collapsed)}addComment(...c){const h=this.comments.get();(0,E.transaction)(u=>{this.comments.set([...h,...c.map(d=>({...d,id:(0,o.uuid)()}))],u)}),this.onDidChangeEmitter.fire()}removeComment(c){(0,E.transaction)(h=>{this.comments.set(this.comments.get().filter(u=>u!==c),h)}),this.onDidChangeEmitter.fire()}isEqual(c){return c.uri.isEqual(this.uri)&&c.range.startLineNumber===this.range.startLineNumber&&c.range.endLineNumber===this.range.endLineNumber}};t.CommentsThread=s,n.__decorate([(0,r.Autowired)(p.ICommentsService),n.__metadata("design:type",Object)],s.prototype,"commentsService",void 0),n.__decorate([(0,r.Autowired)(o.IContextKeyService),n.__metadata("design:type",Object)],s.prototype,"globalContextKeyService",void 0),n.__decorate([(0,r.Autowired)(m.EditorCollectionService),n.__metadata("design:type",m.EditorCollectionService)],s.prototype,"editorCollectionService",void 0),n.__decorate([(0,r.Autowired)(r.INJECTOR_TOKEN),n.__metadata("design:type",r.Injector)],s.prototype,"injector",void 0),t.CommentsThread=s=n.__decorate([(0,r.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[o.URI,Object,String,Object])],s)},73804:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsZoneService=void 0;const n=e(85608),r=e(76003),o=e(93899),l=e(43718),m=e(69635),E=e(49867);let p=class extends l.Disposable{constructor(s){super(),this.thread=s}setCurrentCommentThread(s){this.commentService.setCurrentCommentThread(s)}get commentThreadTitle(){return this.registerDispose(this.menuService.createMenu(o.MenuId.CommentsCommentThreadTitle,this.thread.contextKeyService))}get commentThreadContext(){return this.registerDispose(this.menuService.createMenu(o.MenuId.CommentsCommentThreadContext,this.thread.contextKeyService))}};t.CommentsZoneService=p,n.__decorate([(0,r.Autowired)(o.AbstractMenuService),n.__metadata("design:type",o.AbstractMenuService)],p.prototype,"menuService",void 0),n.__decorate([(0,r.Autowired)(m.ICommentsService),n.__metadata("design:type",Object)],p.prototype,"commentService",void 0),n.__decorate([l.memoize,n.__metadata("design:type",Object),n.__metadata("design:paramtypes",[])],p.prototype,"commentThreadTitle",null),n.__decorate([l.memoize,n.__metadata("design:type",Object),n.__metadata("design:paramtypes",[])],p.prototype,"commentThreadContext",null),t.CommentsZoneService=p=n.__decorate([(0,r.Injectable)({multiple:!0}),n.__param(0,(0,r.Optional)()),n.__metadata("design:paramtypes",[E.CommentsThread])],p)},90366:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsZoneWidget=void 0;const n=e(85608),r=n.__importDefault(e(53373)),o=n.__importDefault(e(14041)),l=n.__importDefault(e(25873)),m=e(76003),E=e(41869),p=e(25918),_=e(93899),s=e(20303),f=e(69635),c=e(37357),h=e(42018),u=e(73804),d=n.__importDefault(e(38877)),v=({thread:a,widget:b})=>{const{contextKeyService:y}=a,S=(0,E.useAutorun)(a.comments),A=(0,E.useAutorun)(a.threadHeaderTitle),w=(0,E.useInjectable)(m.INJECTOR_TOKEN).get(u.CommentsZoneService,[a]),D=(0,E.useInjectable)(f.ICommentsFeatureRegistry),I=o.default.useMemo(()=>D.getFileUploadHandler(),[]),[O,P]=o.default.useState(""),R=o.default.useMemo(()=>y.createKey("commentIsEmpty",!O),[]),M=w.commentThreadTitle,k=w.commentThreadContext,B=o.default.useCallback(z=>{const{value:G}=z.target;P(G),R.set(!G)},[]),x=o.default.useMemo(()=>{var z;return((z=D.getProviderFeature(a.providerId))===null||z===void 0?void 0:z.placeholder)||`${(0,E.localize)("comments.reply.placeholder")}...`},[]),N=o.default.useCallback(async z=>{if(I){const G=await I(O,z);P(Y=>{const Z=Y+G;return R.set(!Z),Z})}},[O]);o.default.useEffect(()=>{const z=b.onFirstDisplay(()=>{setTimeout(()=>{b.coreEditor.monacoEditor.revealLine(a.range.endLineNumber+1)},0)});return()=>{z.dispose()}},[]);const K=o.default.useCallback(()=>{w.setCurrentCommentThread(w.thread)},[]),j=o.default.useCallback(()=>{w.setCurrentCommentThread(void 0)},[]),U=o.default.useCallback(()=>{w.setCurrentCommentThread(w.thread)},[]),$=o.default.useCallback(()=>{w.setCurrentCommentThread(void 0)},[]);return o.default.createElement("div",{tabIndex:-1,onMouseOver:K,onMouseOut:j,onFocus:U,onBlur:$,className:(0,r.default)(a.options.threadClassName,d.default.comment_container)},o.default.createElement("div",{className:(0,r.default)(a.options.threadHeadClassName,d.default.head)},o.default.createElement("div",{className:d.default.review_title},A),o.default.createElement(p.InlineActionBar,{menus:M,context:[{thread:a,widget:b,menuId:_.MenuId.CommentsCommentThreadTitle}],separator:"inline",type:"icon"})),o.default.createElement("div",{className:d.default.comment_body},S.length>0?o.default.createElement(c.CommentItem,{widget:b,commentThreadContext:k,thread:a}):o.default.createElement("div",null,o.default.createElement(h.CommentsTextArea,{focusDelay:100,initialHeight:"auto",value:O,onChange:B,placeholder:x,dragFiles:N}),o.default.createElement("div",{className:d.default.comment_bottom_actions},o.default.createElement(p.InlineActionBar,{className:d.default.comment_reply_actions,separator:"inline",type:"button",context:[{text:O,widget:b,thread:a,menuId:_.MenuId.CommentsCommentThreadContext}],menus:k})))))};let g=class extends s.ResizeZoneWidget{_fillContainer(){}constructor(b,y,S){super(b.monacoEditor,y.range,{...S,showInHiddenAreas:!0}),this._onShow=new E.Emitter,this.onShow=this._onShow.event,this._onHide=new E.Emitter,this.onHide=this._onHide.event,this._editor=b;const A=document.createElement("div");this._isShow=!y.isCollapsed.get(),this._container.appendChild(A),this.observeContainer(A);const T=this.commentsFeatureRegistry.getZoneWidgetRender();this.wrapperRoot=l.default.createRoot(A),this.wrapperRoot.render(o.default.createElement(E.ConfigProvider,{value:this.appConfig},T?T(y,this):o.default.createElement(v,{thread:y,widget:this}))),this.addDispose({dispose:()=>{this.wrapperRoot.unmount()}})}get coreEditor(){return this._editor}get isShow(){return this._isShow}show(){super.show(),this._isShow=!0,this._onShow.fire()}hide(){super.dispose(),this._isShow=!1,this._onHide.fire()}toggle(){this._isShow?this.hide():this.show()}applyClass(){}applyStyle(){}};t.CommentsZoneWidget=g,n.__decorate([(0,m.Autowired)(E.AppConfig),n.__metadata("design:type",Object)],g.prototype,"appConfig",void 0),n.__decorate([(0,m.Autowired)(f.ICommentsFeatureRegistry),n.__metadata("design:type",Object)],g.prototype,"commentsFeatureRegistry",void 0),t.CommentsZoneWidget=g=n.__decorate([(0,m.Injectable)({multiple:!0}),n.__metadata("design:paramtypes",[Object,Object,Object])],g)},62604:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsBrowserContribution=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(93899),m=e(57517),E=e(63067),p=e(69635),_=e(47842);let s=class extends o.Disposable{onStart(){this.registerCommentsFeature(),this.listenToCreateCommentsPanel(),this.commentsService.init()}get panelBadge(){const c=this.commentsService.commentsThreads.length;return c?c+"":""}registerCommands(c){c.registerCommand({id:p.CollapseId,label:"%comments.panel.action.collapse%",iconClass:(0,o.getIcon)("collapse-all")},{execute:()=>{this.commentModelService.collapsedAll()}}),c.registerCommand({id:p.CloseThreadId,label:"%comments.thread.action.close%",iconClass:(0,o.getIcon)("up")},{execute:h=>{const{thread:u,widget:d}=h;u.comments.get().length?d.isShow&&d.toggle():u.dispose()}}),c.registerCommand({id:p.SwitchCommandReaction},{execute:h=>{this.eventBus.fire(new p.CommentReactionClick(h))}})}registerMenus(c){c.registerMenuItem(l.MenuId.CommentsCommentThreadTitle,{command:p.CloseThreadId,group:"inline",order:Number.MAX_SAFE_INTEGER})}registerToolbarItems(c){c.registerItem({id:p.CollapseId,viewId:p.CommentPanelId,command:p.CollapseId,tooltip:(0,o.localize)("comments.panel.action.collapse")})}registerCommentsFeature(){this.contributions.getContributions().forEach((c,h)=>{this.addDispose(this.commentsService.registerCommentRangeProvider(`contribution_${h}`,{getCommentingRanges:u=>c.provideCommentingRanges(u)})),c.registerCommentsFeature&&c.registerCommentsFeature(this.commentsFeatureRegistry)})}listenToCreateCommentsPanel(){this.commentsFeatureRegistry.getCommentsPanelOptions().defaultShow?this.commentsService.registerCommentPanel():o.Event.once(this.commentsService.onThreadsCreated)(()=>{this.commentsService.registerCommentPanel()}),this.addDispose(o.Event.debounce(this.commentsService.onThreadsChanged,()=>{},100)(()=>{const c=this.layoutService.getTabbarHandler(p.CommentPanelId);c?.setBadge(this.panelBadge)},this))}registerEditorFeature(c){c.registerEditorFeatureContribution({contribute:h=>this.commentsService.handleOnCreateEditor(h),provideEditorOptionsForUri:async h=>(await this.commentsService.getContributionRanges(h)).length?{lineDecorationsWidth:25,lineNumbersMinChars:5}:{}})}};t.CommentsBrowserContribution=s,n.__decorate([(0,r.Autowired)(p.ICommentsService),n.__metadata("design:type",Object)],s.prototype,"commentsService",void 0),n.__decorate([(0,r.Autowired)(E.IMainLayoutService),n.__metadata("design:type",Object)],s.prototype,"layoutService",void 0),n.__decorate([(0,r.Autowired)(p.ICommentsFeatureRegistry),n.__metadata("design:type",Object)],s.prototype,"commentsFeatureRegistry",void 0),n.__decorate([(0,r.Autowired)(p.CommentsContribution),n.__metadata("design:type",Object)],s.prototype,"contributions",void 0),n.__decorate([(0,r.Autowired)(o.IEventBus),n.__metadata("design:type",Object)],s.prototype,"eventBus",void 0),n.__decorate([(0,r.Autowired)(_.CommentModelService),n.__metadata("design:type",_.CommentModelService)],s.prototype,"commentModelService",void 0),t.CommentsBrowserContribution=s=n.__decorate([(0,o.Domain)(o.ClientAppContribution,m.BrowserEditorContribution,o.CommandContribution,o.TabBarToolbarContribution,l.MenuContribution)],s)},55011:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsService=void 0;const n=e(85608),r=n.__importDefault(e(53435)),o=n.__importDefault(e(87809)),l=e(76003),m=e(41869),E=e(57517),p=e(63067),_=e(20868),s=n.__importStar(e(20868)),f=e(62663),c=e(52416),h=n.__importStar(e(74547)),u=e(69635),d=e(53878),v=e(49867),g=e(53711);let a=class extends m.Disposable{constructor(){super(...arguments),this.decorationChangeEmitter=new m.Emitter,this.threads=new Map,this.threadsChangeEmitter=new m.Emitter,this.threadsCommentChangeEmitter=new m.Emitter,this.commentRangeProviderChangeEmitter=new m.Emitter,this.onDidChangeCurrentCommentThreadEmitter=new m.Emitter,this.threadsCreatedEmitter=new m.Emitter,this.rangeProviderMap=new Map,this.rangeOwner=new Map,this.providerDecorationCache=new m.LRUCache(1e4),this.commentRangeDecorationMap=new Map,this.shouldShowCommentsSchemes=new Set(["file","git","diff"]),this.decorationProviderDisposer=m.Disposable.NULL,this.activeThreadDecorationIds=[],this.allEditors=[],this.editorCommentingRangeSpaceReservedMap=new Map,this.editorLineDecorationsWidthMap=new Map}get commentsThreads(){return[...this.threads.values()]}get isMultiCommentsForSingleLine(){var y;return!!(!((y=this.commentsFeatureRegistry.getConfig())===null||y===void 0)&&y.isMultiCommentsForSingleLine)}get currentAuthorAvatar(){var y,S;return(S=(y=this.commentsFeatureRegistry.getConfig())===null||y===void 0?void 0:y.author)===null||S===void 0?void 0:S.avatar}get filterThreadDecoration(){var y;return(y=this.commentsFeatureRegistry.getConfig())===null||y===void 0?void 0:y.filterThreadDecoration}get onThreadsChanged(){return this.threadsChangeEmitter.event}get onThreadsCommentChange(){return this.threadsCommentChangeEmitter.event}get onThreadsCreated(){return this.threadsCreatedEmitter.event}get onCommentRangeProviderChange(){return this.commentRangeProviderChangeEmitter.event}get onDidChangeCurrentCommentThread(){return this.onDidChangeCurrentCommentThreadEmitter.event}setCurrentCommentThread(y){this.onDidChangeCurrentCommentThreadEmitter.fire(y)}createThreadDecoration(y){var S;const A=y.comments.get(),T=A.length===0?this.currentAuthorAvatar:(S=A[0].author.iconPath)===null||S===void 0?void 0:S.toString(),w=T?`${this.iconService.fromIcon("",T,c.IconType.Background)} avatar-icon`:this.iconService.fromString("$(comment)"),D={description:"comments-thread-decoration",glyphMarginClassName:T?["comment-thread",w].join(" "):["comment-range","comment-thread",w].join(" ")};return h.ModelDecorationOptions.createDynamic(D)}updateActiveThreadDecoration(y){var S;const A=this.getCurrentEditor(y?.uri);if(!A)return;(S=this.currentThreadCollapseStateListener)===null||S===void 0||S.dispose();const T=[];if(y){const w=y.range;y.isCollapsed.get()||(this.currentThreadCollapseStateListener=y.onDidChangeCollapsibleState(D=>{D===u.CommentThreadCollapsibleState.Collapsed&&this.updateActiveThreadDecoration(void 0)}),T.push({range:w,options:this.createThreadRangeActiveDecoration()}))}this.activeThreadDecorationIds=A.monacoEditor.deltaDecorations(this.activeThreadDecorationIds,T)}createDottedRangeDecoration(){const y={description:"comments-multiline-hover-decoration",linesDecorationsClassName:["comment-range","multiline-add"].join(" ")};return h.ModelDecorationOptions.createDynamic(y)}createHoverDecoration(){const y={description:"comments-hover-decoration",linesDecorationsClassName:["comment-range","line-hover","comment-add"].join(" ")};return h.ModelDecorationOptions.createDynamic(y)}createThreadRangeActiveDecoration(){const y={description:"comments-thread-range-active-decoration",isWholeLine:!1,zIndex:20,className:"comment-thread-range-current",shouldFillLineOnLineBreak:!0};return h.ModelDecorationOptions.createDynamic(y)}createThreadRangeDecoration(){const y={description:"comments-thread-range-decoration",isWholeLine:!1,zIndex:20,className:"comment-thread-range",shouldFillLineOnLineBreak:!0};return h.ModelDecorationOptions.createDynamic(y)}createCommentRangeDecoration(){const y={description:"comments-range-decoration",linesDecorationsClassName:["comment-range","comment-diff-added"].join(" ")};return h.ModelDecorationOptions.createDynamic(y)}init(){const y=this.resourceService.getSupportedSchemes();for(const S of y)this.shouldShowCommentsSchemes.add(S);this.addDispose(this.resourceService.onRegisterResourceProvider(S=>{S.scheme&&(this.shouldShowCommentsSchemes.add(S.scheme),this.registerDecorationProvider())})),this.addDispose(this.resourceService.onUnregisterResourceProvider(S=>{S.scheme&&(this.shouldShowCommentsSchemes.delete(S.scheme),this.registerDecorationProvider())})),this.registerDecorationProvider()}getCurrentEditor(y){var S;if(y){for(const A of this.allEditors)if(!((S=A.currentUri)===null||S===void 0)&&S.isEqual(y))return this.editor=A,A}return this.editor}handleOnCreateEditor(y){this.allEditors.push(y),this.editor=y;const S=new m.Disposable;let A=[],T=!1;return S.addDispose(y.monacoEditor.onMouseDown(w=>{if(w.target.type===f.monacoBrowser.editor.MouseTargetType.GUTTER_LINE_DECORATIONS&&w.target.element&&w.target.element.className.indexOf("comment-add")>-1){const{target:D}=w;if(D&&D.range){const{range:I}=D;this.startCommentRange=I,w.event.stopPropagation()}}else if(w.target.type===f.monacoBrowser.editor.MouseTargetType.GUTTER_GLYPH_MARGIN&&w.target.element&&w.target.element.className.indexOf("comment-thread")>-1){const{target:D}=w;if(D&&D.range){const{range:I}=D,O=this.commentsThreads.filter(P=>y.currentUri&&P.uri.isEqual(y.currentUri)&&P.range.endLineNumber===I.endLineNumber);O.length&&(O.some(R=>R.isShowWidget(y))?O.forEach(R=>R.hide(y)):O.forEach(R=>R.show(y)))}w.event.stopPropagation()}})),S.addDispose(y.monacoEditor.onMouseUp(async w=>{if(this.startCommentRange){if(T){this.renderCommentRange(y),T=!1,this.startCommentRange=null,this.endCommentRange=null;return}let D=this.startCommentRange;this.endCommentRange&&(this.endCommentRange.startLineNumber<this.startCommentRange.startLineNumber?(D.startColumn=this.endCommentRange.startColumn,D.startLineNumber=this.endCommentRange.startLineNumber):(D.endColumn=this.endCommentRange.endColumn,D.endLineNumber=this.endCommentRange.endLineNumber)),y.currentUri&&(D=await this.getValidRange(D,y.currentUri)),D&&(this.commentsThreads.some(I=>I.comments.get().length===0&&y.currentUri&&I.uri.isEqual(y.currentUri)&&I.range.startLineNumber===D.startLineNumber&&I.range.endLineNumber===D.endLineNumber)||this.createThread(y.currentUri,D).show(y),w.event.stopPropagation())}else if(w.target.type===f.monacoBrowser.editor.MouseTargetType.GUTTER_LINE_DECORATIONS&&w.target.element&&w.target.element.className.indexOf("comment-range")>-1&&w.target.element.className.indexOf("comment-thread")<0){const{target:D}=w,I=D.range;I&&(this.commentsThreads.some(O=>O.comments.get().length===0&&y.currentUri&&O.uri.isEqual(y.currentUri)&&O.range.startLineNumber===I.startLineNumber&&O.range.endLineNumber===I.endLineNumber)||this.createThread(y.currentUri,I).show(y),w.event.stopPropagation())}this.startCommentRange=null,this.endCommentRange=null})),S.addDispose(y.monacoEditor.onMouseMove(async w=>{var D,I,O;const P=y.currentUri,R=w.target.range;if(this.startCommentRange){if(!((D=w.target.element)===null||D===void 0)&&D.className||!((O=(I=w.target.element)===null||I===void 0?void 0:I.offsetParent)===null||O===void 0)&&O.className.includes("diff-hidden-lines")&&(T=!0),P&&R){let M={startLineNumber:this.startCommentRange.startLineNumber,endLineNumber:R.endLineNumber,startColumn:this.startCommentRange.startColumn,endColumn:R.endColumn};this.startCommentRange.startLineNumber>R.startLineNumber&&(M={startLineNumber:R.startLineNumber,endLineNumber:this.startCommentRange.endLineNumber,startColumn:R.startColumn,endColumn:this.startCommentRange.endColumn}),this.renderCommentRange(y,M),this.endCommentRange=R}}else if(P&&R&&await this.shouldShowHoverDecoration(P,R)){const M=[{range:(0,_.positionToRange)(R.startLineNumber),options:this.createHoverDecoration()}];A=y.monacoEditor.deltaDecorations(A,M)}})),S.addDispose(y.monacoEditor.onMouseLeave(async w=>{var D;const I=(D=w.target)===null||D===void 0?void 0:D.range,O=[];!this.startCommentRange&&I&&O.push({range:(0,_.positionToRange)(I.startLineNumber),options:this.createCommentRangeDecoration()}),A=y.monacoEditor.deltaDecorations(A,O)})),S.addDispose(this.onCommentRangeProviderChange(()=>{this.renderCommentRange(y)})),S.addDispose(m.Event.any(this.onThreadsChanged,this.onThreadsCommentChange,this.onThreadsCreated)(w=>{const D=this.getCurrentEditor(w.uri);D&&this.renderCommentRange(D),this.updateActiveThreadDecoration(void 0)})),S.addDispose(this.onDidChangeCurrentCommentThread(w=>{this.updateActiveThreadDecoration(w)})),this.tryUpdateReservedSpace(y),S.addDispose(y.monacoEditor.onDidChangeModel(()=>{this.renderCommentRange(y),this.tryUpdateReservedSpace(y)})),S}async getValidRange(y,S){if(!S)return y;const A=await this.getContributionRanges(S);if(A.length===0)return y;const T=A.find(w=>{if(y.startLineNumber>=w.startLineNumber&&y.startLineNumber<=w.endLineNumber)return!0});return T&&T.endLineNumber<y.endLineNumber?{startLineNumber:y.startLineNumber,startColumn:y.startColumn,endLineNumber:T.endLineNumber,endColumn:T.endColumn}:y}ensureCommentingRangeReservedAmount(y){const S=this.getExistingCommentEditorOptions(y),A=this.editorLineDecorationsWidthMap.get(y.getId());S.lineDecorationsWidth!==A&&y.updateOptions({lineDecorationsWidth:this.getWithCommentsLineDecorationWidth(y,S.lineDecorationsWidth)})}async tryUpdateReservedSpace(y){if(!y)return;let S=this.editorCommentingRangeSpaceReservedMap.get(y.getId())||!1;const A=y.currentUri?this.shouldShowCommentsSchemes.has(y.currentUri.scheme):!1,T=this.commentsThreads.some(D=>y.currentUri&&D.uri.isEqual(y.currentUri)&&D.comments.get().length>0),w=A||T;if(w)if(S)this.ensureCommentingRangeReservedAmount(y);else{S=!0;const{lineDecorationsWidth:D,extraEditorClassName:I}=this.getExistingCommentEditorOptions(y),O=this.getWithCommentsEditorOptions(y,I,D);this.updateEditorLayoutOptions(y,O.extraEditorClassName,O.lineDecorationsWidth)}else if(!w&&S){S=!1;const{lineDecorationsWidth:D,extraEditorClassName:I}=this.getExistingCommentEditorOptions(y),O=this.getWithoutCommentsEditorOptions(y,I,D);this.updateEditorLayoutOptions(y,O.extraEditorClassName,O.lineDecorationsWidth)}this.editorCommentingRangeSpaceReservedMap.set(y.getId(),S)}getExistingCommentEditorOptions(y){const S=y.monacoEditor.getOption(s.EditorOption.lineDecorationsWidth);let A=[];const T=y.monacoEditor.getRawOptions().extraEditorClassName;return T&&(A=T.split(" ")),{lineDecorationsWidth:S,extraEditorClassName:A}}getWithoutCommentsEditorOptions(y,S,A){let T=A;const w=S.findIndex(I=>I==="inline-comment");w>=0&&S.splice(w,1);const D=y.monacoEditor.getOptions();return D.get(s.EditorOption.folding)&&D.get(s.EditorOption.showFoldingControls)!=="never"&&(T+=11),T-=24,{extraEditorClassName:S,lineDecorationsWidth:T}}updateEditorLayoutOptions(y,S,A){y.updateOptions({extraEditorClassName:S.join(" "),lineDecorationsWidth:A})}getWithCommentsEditorOptions(y,S,A){return S.push("inline-comment"),{lineDecorationsWidth:this.getWithCommentsLineDecorationWidth(y,A),extraEditorClassName:S}}getWithCommentsLineDecorationWidth(y,S){let A=S;const T=y.monacoEditor.getOptions();return T.get(s.EditorOption.folding)&&T.get(s.EditorOption.showFoldingControls)!=="never"&&(A-=11),A+=24,this.editorLineDecorationsWidthMap.set(y.getId(),A),A}async renderCommentRange(y,S={startLineNumber:0,endLineNumber:0,startColumn:0,endColumn:0}){if(!y.currentUri)return;const A=await this.getContributionRanges(y.currentUri);if(A.length>0){const T=[];A.map(D=>{if(S.startLineNumber===0&&S.endLineNumber===0)T.push({range:D,options:this.createCommentRangeDecoration()});else if(S.startLineNumber<=D.startLineNumber&&S.endLineNumber>=D.endLineNumber)T.push({range:D,options:this.createDottedRangeDecoration()},{range:D,options:this.createThreadRangeDecoration()});else if(S.endLineNumber>=D.endLineNumber)if(S.startLineNumber<=D.endLineNumber){const I={startLineNumber:S.startLineNumber,endLineNumber:D.endLineNumber,startColumn:S.startColumn,endColumn:D.endColumn},O={startLineNumber:D.startLineNumber,endLineNumber:I.startLineNumber-1,startColumn:D.startColumn,endColumn:I.endColumn};T.push({range:O,options:this.createCommentRangeDecoration()},{range:I,options:this.createDottedRangeDecoration()},{range:I,options:this.createThreadRangeDecoration()})}else T.push({range:D,options:this.createCommentRangeDecoration()});else if(S.endLineNumber<D.endLineNumber)if(S.endLineNumber>=D.startLineNumber)if(S.startLineNumber>=D.startLineNumber){const I={startLineNumber:D.startLineNumber,startColumn:D.startColumn,endLineNumber:S.startLineNumber-1,endColumn:S.startColumn},O={startLineNumber:S.endLineNumber+1,startColumn:S.endColumn,endLineNumber:D.endLineNumber,endColumn:D.endColumn},P=S.startLineNumber!==D.startLineNumber?[{range:I,options:this.createCommentRangeDecoration()}]:[];P.push({range:S,options:this.createDottedRangeDecoration()}),P.push({range:S,options:this.createThreadRangeDecoration()}),P.push({range:O,options:this.createCommentRangeDecoration()}),T.push(...P)}else{const I={startLineNumber:D.startLineNumber,startColumn:D.startColumn,endLineNumber:S.endLineNumber,endColumn:S.endColumn},O={startLineNumber:I.endLineNumber+1,startColumn:I.endColumn,endLineNumber:D.endLineNumber,endColumn:D.endColumn};T.push({range:I,options:this.createDottedRangeDecoration()},{range:I,options:this.createThreadRangeDecoration()},{range:O,options:this.createCommentRangeDecoration()})}else T.push({range:D,options:this.createCommentRangeDecoration()})});const w=this.commentRangeDecorationMap.get(y.currentUri.toString())||[];this.commentRangeDecorationMap.set(y.currentUri.toString(),y.monacoEditor.deltaDecorations(w,T))}else this.commentRangeDecorationMap.set(y.currentUri.toString(),[])}async shouldShowHoverDecoration(y,S){return this.shouldShowCommentsSchemes.has(y.scheme)?(await this.getContributionRanges(y)).some(w=>S.startLineNumber<=w.endLineNumber):!1}createThread(y,S,A={comments:[],readOnly:!1}){const T=this.getProviderIdsByLine(S.endLineNumber)[0],w=this.injector.get(v.CommentsThread,[y,S,T,A]);return w.onDispose(()=>{this.threads.delete(w.id),this.threadsChangeEmitter.fire(w),this.decorationChangeEmitter.fire(y)}),w.onDidChange(()=>{this.threadsChangeEmitter.fire(w)}),this.threads.set(w.id,w),this.addDispose(w),this.threadsChangeEmitter.fire(w),this.threadsCreatedEmitter.fire(w),this.decorationChangeEmitter.fire(y),w}getThreadsByUri(y){return this.commentsThreads.filter(S=>S.uri.isEqual(y)).sort((S,A)=>S.range.startLineNumber-A.range.startLineNumber)}handleCommentFileNode(y){const S=[],A=[...this.threads.values()].filter(w=>w.comments.get().length),T=(0,o.default)(A,w=>w.uri);return Object.keys(T).map(w=>{var D;const I=T[w];if(I.length===0)return;const O=new m.URI(this.appConfig.workspaceDir),P=new m.URI(w),R=(D=O.relative(P))===null||D===void 0?void 0:D.toString();S.push(new g.CommentFileNode(this,I,R,P.codeUri.fsPath,this.labelService.getIcon(P),P,y))}),S}handleCommentContentNode(y){var S;const A=[];for(const T of y.threads){const w=T.comments.get(),[D]=w,I=typeof D.body=="string"?D.body:D.body.value;let O=`[Ln ${T.range.startLineNumber}]`;T.range.startLineNumber!==T.range.endLineNumber&&(O=`[Ln ${T.range.startLineNumber}-${T.range.endLineNumber}]`),A.push(new g.CommentContentNode(this,T,I,O,D.author.iconPath&&(!((S=D.author.iconPath)===null||S===void 0)&&S.authority)?this.iconService.fromIcon("",D.author.iconPath.toString(),c.IconType.Background):(0,m.getIcon)("message"),D.author,y.resource,y))}return A}handleCommentReplyNode(y){const S=[],A=y.thread,T=A.comments.get(),[w,...D]=T,I=D[D.length-1].author.name;return S.push(new g.CommentReplyNode(this,A,(0,m.formatLocalize)("comment.reply.count",D?.length||0),(0,m.formatLocalize)("comment.reply.lastReply",I),"",y.resource,y)),S}async resolveChildren(y){let S=[];if(y?g.CommentRoot.isRoot(y)?S=this.handleCommentFileNode(y):g.CommentFileNode.is(y)?S=this.handleCommentContentNode(y):g.CommentContentNode.is(y)&&(S=this.handleCommentReplyNode(y)):S.push(new g.CommentRoot(this)),S.length===1&&g.CommentRoot.isRoot(S[0]))return S;const A=this.commentsFeatureRegistry.getCommentsPanelTreeNodeHandlers();if(A.length>0)for(const T of A)S=T(S);return S}async getContributionRanges(y){const S=this.providerDecorationCache.get(y.toString());if(S)return await S.promise;const A=this.documentService.getModelReference(y,"Get Comment Range"),T=[];for(const O of this.rangeProviderMap){const[P,R]=O;T.push((async()=>{if(!A?.instance)return;const M=await R.getCommentingRanges(A.instance);return M&&M.length&&this.rangeOwner.set(P,M),M})())}const w=new m.Deferred;this.providerDecorationCache.set(y.toString(),w);const D=(await Promise.all(T)).filter(Boolean);A?.dispose();const I=(0,r.default)(D).filter(Boolean);return w.resolve(I),I}fireThreadCommentChange(y){this.threadsCommentChangeEmitter.fire(y)}registerDecorationProvider(){this.decorationProviderDisposer.dispose(),this.decorationProviderDisposer=this.editorDecorationCollectionService.registerDecorationProvider({schemes:[...this.shouldShowCommentsSchemes.values()],key:"comments",onDidDecorationChange:this.decorationChangeEmitter.event,provideEditorDecoration:y=>this.commentsThreads.map(S=>(S.uri.isEqual(y)?S.comments.get().length&&S.showWidgetsIfShowed():S.hideWidgetsByDispose(),S)).filter(S=>{const A=S.uri.isEqual(y);return this.filterThreadDecoration?A&&this.filterThreadDecoration(S):A}).map(S=>({range:{startLineNumber:S.range.endLineNumber,endLineNumber:S.range.endLineNumber,startColumn:S.range.endColumn,endColumn:S.range.endColumn},options:this.createThreadDecoration(S)}))}),this.addDispose(this.decorationProviderDisposer)}registerCommentPanel(){this.layoutService.getTabbarHandler(u.CommentPanelId)||this.layoutService.collectTabbarComponent([{id:u.CommentPanelId,component:d.CommentsPanel}],{badge:this.panelBadge,containerId:u.CommentPanelId,title:(0,m.localize)("comments").toUpperCase(),hidden:!1,activateKeyBinding:"ctrlcmd+shift+c",...this.commentsFeatureRegistry.getCommentsPanelOptions()},"bottom")}get panelBadge(){const y=this.commentsThreads.length;return y?y+"":""}registerCommentRangeProvider(y,S){return this.rangeProviderMap.set(y,S),this.providerDecorationCache.clear(),this.commentRangeProviderChangeEmitter.fire(),m.Disposable.create(()=>{this.rangeProviderMap.delete(y),this.rangeOwner.delete(y),this.providerDecorationCache.clear()})}forceUpdateDecoration(){var y,S,A;const T=(y=this.workbenchEditorService.currentEditor)===null||y===void 0?void 0:y.currentUri;T&&this.decorationChangeEmitter.fire(T);const w=(A=(S=this.workbenchEditorService.currentEditorGroup)===null||S===void 0?void 0:S.diffEditor)===null||A===void 0?void 0:A.originalEditor.currentUri;w&&this.decorationChangeEmitter.fire(w)}getProviderIdsByLine(y){const S=[];if(this.rangeOwner.size===1)return[this.rangeOwner.keys().next().value];for(const A of this.rangeOwner){const[T,w]=A;w&&w.some(D=>D.startLineNumber<=y&&y<=D.endLineNumber)&&S.push(T)}return S}};t.CommentsService=a,n.__decorate([(0,l.Autowired)(l.INJECTOR_TOKEN),n.__metadata("design:type",l.Injector)],a.prototype,"injector",void 0),n.__decorate([(0,l.Autowired)(m.AppConfig),n.__metadata("design:type",Object)],a.prototype,"appConfig",void 0),n.__decorate([(0,l.Autowired)(E.IEditorDecorationCollectionService),n.__metadata("design:type",Object)],a.prototype,"editorDecorationCollectionService",void 0),n.__decorate([(0,l.Autowired)(c.IIconService),n.__metadata("design:type",Object)],a.prototype,"iconService",void 0),n.__decorate([(0,l.Autowired)(m.LabelService),n.__metadata("design:type",m.LabelService)],a.prototype,"labelService",void 0),n.__decorate([(0,l.Autowired)(u.ICommentsFeatureRegistry),n.__metadata("design:type",Object)],a.prototype,"commentsFeatureRegistry",void 0),n.__decorate([(0,l.Autowired)(E.IEditorDocumentModelService),n.__metadata("design:type",Object)],a.prototype,"documentService",void 0),n.__decorate([(0,l.Autowired)(p.IMainLayoutService),n.__metadata("design:type",Object)],a.prototype,"layoutService",void 0),n.__decorate([(0,l.Autowired)(E.WorkbenchEditorService),n.__metadata("design:type",E.WorkbenchEditorService)],a.prototype,"workbenchEditorService",void 0),n.__decorate([(0,l.Autowired)(E.ResourceService),n.__metadata("design:type",E.ResourceService)],a.prototype,"resourceService",void 0),n.__decorate([m.memoize,n.__metadata("design:type",Object),n.__metadata("design:paramtypes",[])],a.prototype,"isMultiCommentsForSingleLine",null),n.__decorate([m.memoize,n.__metadata("design:type",Object),n.__metadata("design:paramtypes",[])],a.prototype,"currentAuthorAvatar",null),n.__decorate([m.memoize,n.__metadata("design:type",Object),n.__metadata("design:paramtypes",[])],a.prototype,"filterThreadDecoration",null),t.CommentsService=a=n.__decorate([(0,l.Injectable)()],a)},54230:(L,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CommentsModule=void 0;const n=e(85608),r=e(76003),o=e(41869),l=e(69635),m=e(66480),E=e(62604),p=e(55011),_=e(47842);let s=class extends o.BrowserModule{constructor(){super(...arguments),this.contributionProvider=l.CommentsContribution,this.providers=[{token:l.ICommentsService,useClass:p.CommentsService},{token:_.CommentModelService,useClass:_.CommentModelService},{token:l.ICommentsFeatureRegistry,useClass:m.CommentsFeatureRegistry},E.CommentsBrowserContribution]}};t.CommentsModule=s,t.CommentsModule=s=n.__decorate([(0,r.Injectable)()],s)},70154:(L,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.markdownCss=void 0,t.markdownCss=`
|
|
28325
28325
|
h1, h2, h3, h4, h5, h6, p {
|
|
28326
28326
|
color: var(--foreground);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/cli-engine",
|
|
3
|
-
"version": "3.7.1-next-
|
|
3
|
+
"version": "3.7.1-next-1739756477.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.7.1-next-
|
|
30
|
-
"@opensumi/ide-core-common": "3.7.1-next-
|
|
31
|
-
"@opensumi/ide-core-node": "3.7.1-next-
|
|
32
|
-
"@opensumi/ide-express-file-server": "3.7.1-next-
|
|
33
|
-
"@opensumi/ide-extension": "3.7.1-next-
|
|
34
|
-
"@opensumi/ide-i18n": "3.7.1-next-
|
|
35
|
-
"@opensumi/ide-main-layout": "3.7.1-next-
|
|
36
|
-
"@opensumi/ide-startup": "3.7.1-next-
|
|
29
|
+
"@opensumi/ide-core-browser": "3.7.1-next-1739756477.0",
|
|
30
|
+
"@opensumi/ide-core-common": "3.7.1-next-1739756477.0",
|
|
31
|
+
"@opensumi/ide-core-node": "3.7.1-next-1739756477.0",
|
|
32
|
+
"@opensumi/ide-express-file-server": "3.7.1-next-1739756477.0",
|
|
33
|
+
"@opensumi/ide-extension": "3.7.1-next-1739756477.0",
|
|
34
|
+
"@opensumi/ide-i18n": "3.7.1-next-1739756477.0",
|
|
35
|
+
"@opensumi/ide-main-layout": "3.7.1-next-1739756477.0",
|
|
36
|
+
"@opensumi/ide-startup": "3.7.1-next-1739756477.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": "
|
|
75
|
+
"gitHead": "41a185328fc491d40ec885f2a3434171c6e6df89"
|
|
76
76
|
}
|