@opensumi/cli-engine 3.9.1-next-1747836538.0 → 3.9.1-next-1747897586.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.
@@ -31778,10 +31778,10 @@ ${k.reduce((F,L)=>F.find(B=>B.line===L.line)?F:[...F,L],[]).map(F=>`Line: ${F.li
31778
31778
  Content: ${F.lineText||F.renderLineText}`).join(`
31779
31779
  `)}`),R.push({uri:M,isDirectory:!1});D.resolve(T.join(`
31780
31780
 
31781
- `));const P=this.chatInternalService.sessionModel.history.getMessages(),O=(w=P[P.length-1])===null||w===void 0?void 0:w.id;O&&this.chatInternalService.sessionModel.history.setMessageAdditional(O,{[f.toolCallId]:{files:R}})}),{content:[{type:"text",text:await D.promise}]}}};t.GrepSearchTool=d,n.__decorate([(0,o.Autowired)(m.IWorkspaceService),n.__metadata("design:type",Object)],d.prototype,"workspaceService",void 0),n.__decorate([(0,o.Autowired)(p.IContentSearchClientService),n.__metadata("design:type",v.ContentSearchClientService)],d.prototype,"searchService",void 0),n.__decorate([(0,o.Autowired)(_.IChatInternalService),n.__metadata("design:type",s.ChatInternalService)],d.prototype,"chatInternalService",void 0),t.GrepSearchTool=d=n.__decorate([(0,a.Domain)(g.MCPServerContribution)],d)},9343:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditFileHandler=void 0;const n=e(85608),r=e(76003),o=e(73974);let a=class{async handler(v,m){const{targetFile:_,codeEdit:s,instructions:g}=v,l=await this.applyService.registerCodeBlock(_,s,m,g);return await this.applyService.apply(l)}};t.EditFileHandler=a,n.__decorate([(0,r.Autowired)(o.BaseApplyService),n.__metadata("design:type",o.BaseApplyService)],a.prototype,"applyService",void 0),t.EditFileHandler=a=n.__decorate([(0,r.Injectable)()],a)},64942:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ListDirHandler=void 0;const n=e(85608),r=e(76003),o=e(41869),a=e(14951);class p{constructor(_){this.maxConcurrent=_,this.currentCount=0,this.pendingQueue=[]}async execute(_){this.currentCount>=this.maxConcurrent&&await new Promise(s=>this.pendingQueue.push(s)),this.currentCount++;try{return await _()}finally{if(this.currentCount--,this.pendingQueue.length>0){const s=this.pendingQueue.shift();s?.()}}}}let v=class{constructor(){this.MAX_FILE_SIZE=1024*1024,this.MAX_INDEXED_FILES=50}getWorkspaceDir(){return this.appConfig.workspaceDir}async handler(_){var s,g;const{relativeWorkspacePath:l}=_;if(!l)throw new Error("No list dir parameters provided. Need to give at least the path.");const h=`${this.appConfig.workspaceDir}/${l}`,u=await this.fileSystemService.getFileStat(h,!0);if(!u||!u.isDirectory)throw new Error(`Could not find file ${l} in the workspace.`);const d=((s=u.children)===null||s===void 0?void 0:s.filter(y=>!y.isDirectory&&y.size!==void 0&&y.size<=this.MAX_FILE_SIZE).slice(0,this.MAX_INDEXED_FILES))||[],E=new Set(d.map(y=>new o.URI(y.uri).displayName)),f=new p(4);return{files:await Promise.all(((g=u.children)===null||g===void 0?void 0:g.sort((y,b)=>b.lastModification-y.lastModification).map(async y=>{var b;const A=new o.URI(y.uri),S=`${h}/${A.displayName}`;let D;return E.has(A.displayName)&&(D=await f.execute(async()=>this.countFileLines(S))),{name:A.displayName,isDirectory:y.isDirectory,size:y.size,lastModified:y.lastModification,numChildren:(b=y.children)===null||b===void 0?void 0:b.length,numLines:D}}))||[]),directoryRelativeWorkspacePath:l}}async countFileLines(_){return(await this.fileSystemService.readFile(o.URI.file(_).toString())).toString().split(`
31781
+ `));const P=this.chatInternalService.sessionModel.history.getMessages(),O=(w=P[P.length-1])===null||w===void 0?void 0:w.id;O&&this.chatInternalService.sessionModel.history.setMessageAdditional(O,{[f.toolCallId]:{files:R}})}),{content:[{type:"text",text:await D.promise}]}}};t.GrepSearchTool=d,n.__decorate([(0,o.Autowired)(m.IWorkspaceService),n.__metadata("design:type",Object)],d.prototype,"workspaceService",void 0),n.__decorate([(0,o.Autowired)(p.IContentSearchClientService),n.__metadata("design:type",v.ContentSearchClientService)],d.prototype,"searchService",void 0),n.__decorate([(0,o.Autowired)(_.IChatInternalService),n.__metadata("design:type",s.ChatInternalService)],d.prototype,"chatInternalService",void 0),t.GrepSearchTool=d=n.__decorate([(0,a.Domain)(g.MCPServerContribution)],d)},9343:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EditFileHandler=void 0;const n=e(85608),r=e(76003),o=e(73974);let a=class{async handler(v,m){const{targetFile:_,codeEdit:s,instructions:g}=v,l=await this.applyService.registerCodeBlock(_,s,m,g);return await this.applyService.apply(l)}};t.EditFileHandler=a,n.__decorate([(0,r.Autowired)(o.BaseApplyService),n.__metadata("design:type",o.BaseApplyService)],a.prototype,"applyService",void 0),t.EditFileHandler=a=n.__decorate([(0,r.Injectable)()],a)},64942:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ListDirHandler=void 0;const n=e(85608),r=e(76003),o=e(41869),a=e(14951);class p{constructor(_){this.maxConcurrent=_,this.currentCount=0,this.pendingQueue=[]}async execute(_){this.currentCount>=this.maxConcurrent&&await new Promise(s=>this.pendingQueue.push(s)),this.currentCount++;try{return await _()}finally{if(this.currentCount--,this.pendingQueue.length>0){const s=this.pendingQueue.shift();s?.()}}}}let v=class{constructor(){this.MAX_FILE_SIZE=1024*1024,this.MAX_INDEXED_FILES=50}getWorkspaceDir(){return this.appConfig.workspaceDir}async handler(_){var s,g;const{relativeWorkspacePath:l}=_;if(!l)throw new Error("No list dir parameters provided. Need to give at least the path.");const h=o.path.join(this.appConfig.workspaceDir,l),u=await this.fileSystemService.getFileStat(h,!0);if(!u||!u.isDirectory)throw new Error(`Could not find file ${l} in the workspace.`);const d=((s=u.children)===null||s===void 0?void 0:s.filter(y=>!y.isDirectory&&y.size!==void 0&&y.size<=this.MAX_FILE_SIZE).slice(0,this.MAX_INDEXED_FILES))||[],E=new Set(d.map(y=>new o.URI(y.uri).displayName)),f=new p(4);return{files:await Promise.all(((g=u.children)===null||g===void 0?void 0:g.sort((y,b)=>b.lastModification-y.lastModification).map(async y=>{var b;const A=new o.URI(y.uri),S=`${h}/${A.displayName}`;let D;return E.has(A.displayName)&&(D=await f.execute(async()=>this.countFileLines(S))),{name:A.displayName,isDirectory:y.isDirectory,size:y.size,lastModified:y.lastModification,numChildren:(b=y.children)===null||b===void 0?void 0:b.length,numLines:D}}))||[]),directoryRelativeWorkspacePath:l}}async countFileLines(_){return(await this.fileSystemService.readFile(o.URI.file(_).toString())).toString().split(`
31782
31782
  `).length}};t.ListDirHandler=v,n.__decorate([(0,r.Autowired)(o.AppConfig),n.__metadata("design:type",Object)],v.prototype,"appConfig",void 0),n.__decorate([(0,r.Autowired)(a.IFileServiceClient),n.__metadata("design:type",Object)],v.prototype,"fileSystemService",void 0),t.ListDirHandler=v=n.__decorate([(0,r.Injectable)()],v)},707:(x,t,e)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.FileHandler=void 0;const r=e(85608),o=e(76003),a=e(79240),p=e(41869),v=e(43718),m=e(57517),_=e(14951);let s=n=class{constructor(){this.fileResultMap=new Map}async findSimilarFiles(l,h){return(await this.fileSearchQuickCommandHandler.getQueryFiles(l,new Set,v.CancellationToken.None)).slice(0,h).map(d=>{var E;return(E=d.getUri())===null||E===void 0?void 0:E.codeUri.fsPath}).filter(Boolean)}createFileNotFoundError(l,h){const u=h.length>0?`Could not find file '${l}'. Did you mean one of:
31783
31783
  ${h.map(d=>`- ${d}`).join(`
31784
- `)}`:`Could not find file '${l}' in the workspace.`;return new Error(JSON.stringify({clientVisibleErrorMessage:u,modelVisibleErrorMessage:u,actualErrorMessage:`File not found: ${l}`}))}createFileTooLargeError(l,h){return new Error(JSON.stringify({clientVisibleErrorMessage:`File is too large, >${l}MB`,modelVisibleErrorMessage:`The file is too large to read, was >${l}MB`,actualErrorMessage:`File is too large to read, was >${l}MB, size: ${h} bytes`}))}trimContent(l,h){return l.slice(0,h).split(n.NEWLINE).slice(0,-1).join(n.NEWLINE)}getLineRange(l,h){var u,d;let E=(u=l.startLineOneIndexed)!==null&&u!==void 0?u:1,f=(d=l.endLineOneIndexedInclusive)!==null&&d!==void 0?d:E+n.MAX_LINES-1,c=!1,y=!1;return h?{start:E,end:f,didShorten:c,didSetDefault:y}:(l.endLineOneIndexedInclusive===void 0||l.startLineOneIndexed===void 0?(E=1,f=n.MAX_LINES,y=!0):l.endLineOneIndexedInclusive-l.startLineOneIndexed>n.MAX_LINES&&(f=l.startLineOneIndexed+n.MAX_LINES,c=!0),{start:E,end:f,didShorten:c,didSetDefault:y})}async readFile(l){if(!l)throw new Error("No read file parameters provided. Need to give at least the path.");const h=new v.URI(`${this.appConfig.workspaceDir}/${l.relativeWorkspacePath}`);if(!h){const f=await this.findSimilarFiles(l.relativeWorkspacePath,3);throw this.createFileNotFoundError(l.relativeWorkspacePath,f)}const u=(n.MAX_FILE_SIZE_BYTES/1e6).toFixed(2),d=await this.fileSystemService.getFileStat(h.toString());if(d?.size&&d.size>n.MAX_FILE_SIZE_BYTES)throw this.createFileTooLargeError(u,d.size);let E;try{E=await this.modelService.createModelReference(h);const f=E.instance.getMonacoModel().getValue(),c=f.split(n.NEWLINE),y=!(l.readEntireFile&&l.fileIsAllowedToBeReadEntirely),b=l.readEntireFile&&!l.fileIsAllowedToBeReadEntirely;let A=!1;if(y){const{start:D,end:I,didShorten:w,didSetDefault:T}=this.getLineRange(l,b),R=Math.max(D,1),P=Math.min(I,c.length);let O=c.slice(R-1,P).join(n.NEWLINE);return O.length>n.MAX_CHARS&&(A=!0,O=this.trimContent(O,n.MAX_CHARS)),w&&this.fileResultMap.set(l.relativeWorkspacePath,{content:O,startLineOneIndexed:R,endLineOneIndexedInclusive:P}),{contents:O,didDowngradeToLineRange:b,didShortenLineRange:w,didShortenCharRange:A,didSetDefaultLineRange:T,fullFileContents:f,startLineOneIndexed:R,endLineOneIndexedInclusive:P,relativeWorkspacePath:l.relativeWorkspacePath}}let S=f;return S.length>n.MAX_CHARS&&(A=!0,S=this.trimContent(S,n.MAX_CHARS)),{contents:S,fullFileContents:f,didDowngradeToLineRange:!1,didShortenCharRange:A}}finally{E?.dispose()}}getFileReadResult(l){return this.fileResultMap.get(l)}};t.FileHandler=s,s.MAX_FILE_SIZE_BYTES=2e6,s.MAX_LINES=250,s.MAX_CHARS=1e5,s.NEWLINE=`
31784
+ `)}`:`Could not find file '${l}' in the workspace.`;return new Error(JSON.stringify({clientVisibleErrorMessage:u,modelVisibleErrorMessage:u,actualErrorMessage:`File not found: ${l}`}))}createFileTooLargeError(l,h){return new Error(JSON.stringify({clientVisibleErrorMessage:`File is too large, >${l}MB`,modelVisibleErrorMessage:`The file is too large to read, was >${l}MB`,actualErrorMessage:`File is too large to read, was >${l}MB, size: ${h} bytes`}))}trimContent(l,h){return l.slice(0,h).split(n.NEWLINE).slice(0,-1).join(n.NEWLINE)}getLineRange(l,h){var u,d;let E=(u=l.startLineOneIndexed)!==null&&u!==void 0?u:1,f=(d=l.endLineOneIndexedInclusive)!==null&&d!==void 0?d:E+n.MAX_LINES-1,c=!1,y=!1;return h?{start:E,end:f,didShorten:c,didSetDefault:y}:(l.endLineOneIndexedInclusive===void 0||l.startLineOneIndexed===void 0?(E=1,f=n.MAX_LINES,y=!0):l.endLineOneIndexedInclusive-l.startLineOneIndexed>n.MAX_LINES&&(f=l.startLineOneIndexed+n.MAX_LINES,c=!0),{start:E,end:f,didShorten:c,didSetDefault:y})}async readFile(l){if(!l)throw new Error("No read file parameters provided. Need to give at least the path.");const h=new v.URI(v.path.join(this.appConfig.workspaceDir,l.relativeWorkspacePath));if(!h){const f=await this.findSimilarFiles(l.relativeWorkspacePath,3);throw this.createFileNotFoundError(l.relativeWorkspacePath,f)}const u=(n.MAX_FILE_SIZE_BYTES/1e6).toFixed(2),d=await this.fileSystemService.getFileStat(h.toString());if(d?.size&&d.size>n.MAX_FILE_SIZE_BYTES)throw this.createFileTooLargeError(u,d.size);let E;try{E=await this.modelService.createModelReference(h);const f=E.instance.getMonacoModel().getValue(),c=f.split(n.NEWLINE),y=!(l.readEntireFile&&l.fileIsAllowedToBeReadEntirely),b=l.readEntireFile&&!l.fileIsAllowedToBeReadEntirely;let A=!1;if(y){const{start:D,end:I,didShorten:w,didSetDefault:T}=this.getLineRange(l,b),R=Math.max(D,1),P=Math.min(I,c.length);let O=c.slice(R-1,P).join(n.NEWLINE);return O.length>n.MAX_CHARS&&(A=!0,O=this.trimContent(O,n.MAX_CHARS)),w&&this.fileResultMap.set(l.relativeWorkspacePath,{content:O,startLineOneIndexed:R,endLineOneIndexedInclusive:P}),{contents:O,didDowngradeToLineRange:b,didShortenLineRange:w,didShortenCharRange:A,didSetDefaultLineRange:T,fullFileContents:f,startLineOneIndexed:R,endLineOneIndexedInclusive:P,relativeWorkspacePath:l.relativeWorkspacePath}}let S=f;return S.length>n.MAX_CHARS&&(A=!0,S=this.trimContent(S,n.MAX_CHARS)),{contents:S,fullFileContents:f,didDowngradeToLineRange:!1,didShortenCharRange:A}}finally{E?.dispose()}}getFileReadResult(l){return this.fileResultMap.get(l)}};t.FileHandler=s,s.MAX_FILE_SIZE_BYTES=2e6,s.MAX_LINES=250,s.MAX_CHARS=1e5,s.NEWLINE=`
31785
31785
  `,r.__decorate([(0,o.Autowired)(m.IEditorDocumentModelService),r.__metadata("design:type",Object)],s.prototype,"modelService",void 0),r.__decorate([(0,o.Autowired)(a.FileSearchQuickCommandHandler),r.__metadata("design:type",a.FileSearchQuickCommandHandler)],s.prototype,"fileSearchQuickCommandHandler",void 0),r.__decorate([(0,o.Autowired)(p.AppConfig),r.__metadata("design:type",Object)],s.prototype,"appConfig",void 0),r.__decorate([(0,o.Autowired)(_.IFileServiceClient),r.__metadata("design:type",Object)],s.prototype,"fileSystemService",void 0),t.FileHandler=s=n=r.__decorate([(0,o.Injectable)()],s)},22559:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RunCommandHandler=t.inputSchema=void 0;const n=e(85608),r=n.__importDefault(e(75995)),o=e(76003),a=e(41869),p=e(6487),v=e(69448),m=e(83854),_={italic:"\x1B[3m",reset:"\x1B[0m"};t.inputSchema=r.default.object({command:r.default.string().describe("The terminal command to execute"),is_background:r.default.boolean().describe("Whether the command should be run in the background"),explanation:r.default.string().describe("One sentence explanation as to why this command needs to be run and how it contributes to the goal."),require_user_approval:r.default.boolean().describe("Whether the user must approve the command before it is executed. Only set this to false if the command is safe and if it matches the user's requirements for commands that should be executed automatically.")}).transform(g=>({command:g.command,isBackground:g.is_background,explanation:g.explanation,requireUserApproval:g.require_user_approval}));let s=class{constructor(){this.approvalDeferredMap=new Map,this.terminalId=0}getShellLaunchConfig(l){return{name:`MCP:Terminal_${this.terminalId++}`,cwd:this.appConfig.workspaceDir,args:["-c",l]}}isAlwaysApproval(l){const h=this.preferenceService.get(a.AINativeSettingSectionsId.TerminalAutoRun);return!!(h===m.ETerminalAutoExecutionPolicy.off||h===m.ETerminalAutoExecutionPolicy.auto&&l)}async handler(l,h){if(h.appendLine(`Executing command: ${l.command}`),this.isAlwaysApproval(l.requireUserApproval)){const f=new v.Deferred;if(this.approvalDeferredMap.set(l.toolCallId,f),!await f.promise)return{isError:!1,content:[{type:"text",text:"User rejection"}]}}const u=await this.terminalController.createTerminalWithWidget({config:this.getShellLaunchConfig(l.command),closeWhenExited:!1});this.terminalController.showTerminalPanel();const d=[],E=new v.Deferred;return l.isBackground&&E.resolve({isError:!1,content:[{type:"text",text:`Successful run command ${l.command} in background.`}]}),u.onOutput(f=>{d.push({type:"text",text:f.data.toString()})}),u.onExit(f=>{const c=f.code!==0;E.resolve({isError:c,content:d}),h.appendLine(`Command ${l.command} finished with exit code: ${f.code}`),u.term.writeln(`
31786
31786
  ${_.italic}> Command ${l.command} executed successfully. Terminal will close in ${3e3/1e3} seconds.${_.reset}
31787
31787
  `),setTimeout(()=>{u.dispose(),this.terminalView.removeWidget(u.id)},3e3)}),E.promise}handleApproval(l,h){if(!this.approvalDeferredMap.has(l))return;const u=this.approvalDeferredMap.get(l);u?.resolve(h)}};t.RunCommandHandler=s,n.__decorate([(0,o.Autowired)(p.ITerminalController),n.__metadata("design:type",Object)],s.prototype,"terminalController",void 0),n.__decorate([(0,o.Autowired)(a.AppConfig),n.__metadata("design:type",Object)],s.prototype,"appConfig",void 0),n.__decorate([(0,o.Autowired)(p.ITerminalGroupViewService),n.__metadata("design:type",Object)],s.prototype,"terminalView",void 0),n.__decorate([(0,o.Autowired)(a.PreferenceService),n.__metadata("design:type",Object)],s.prototype,"preferenceService",void 0),t.RunCommandHandler=s=n.__decorate([(0,o.Injectable)()],s)},82248:(x,t,e)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ListDirTool=void 0;const n=e(85608),r=e(75995),o=e(76003),a=e(43718),p=e(19413),v=e(59347),m=e(77633),_=e(95292),s=e(64942),g=r.z.object({relative_workspace_path:r.z.string().describe("Path to list contents of, relative to the workspace root. Ex: './' is the root of the workspace"),explanation:r.z.string().optional().describe("One sentence explanation as to why this tool is being used, and how it contributes to the goal.")}).transform(h=>({relativeWorkspacePath:h.relative_workspace_path}));let l=class{registerMCPServer(u){u.registerMCPTool(this.getToolDefinition()),u.registerToolComponent("list_dir",_.ListDirToolComponent)}getToolDefinition(){return{name:"list_dir",label:"List Directory",order:3,description:"List the contents of a directory. The quick tool to use for discovery, before using more targeted tools like semantic search or file reading. Useful to try to understand the file structure before diving deeper into specific files. Can be used to explore the codebase.",inputSchema:g,handler:this.handler.bind(this)}}async handler(u,d){var E;const f=await this.listDirHandler.handler(u),c=f.files.map(A=>({uri:`${this.listDirHandler.getWorkspaceDir()}/${f.directoryRelativeWorkspacePath}/${A.name}`,isDirectory:A.isDirectory})),y=this.chatInternalService.sessionModel.history.getMessages(),b=(E=y[y.length-1])===null||E===void 0?void 0:E.id;return b&&this.chatInternalService.sessionModel.history.setMessageAdditional(b,{[u.toolCallId]:{files:c,title:`Listed directory "${u.relativeWorkspacePath}"`,details:f.files.map(A=>{var S;return{type:A.isDirectory?"dir":"file",name:A.name,info:A.isDirectory?`${(S=A.numChildren)!==null&&S!==void 0?S:"?"} items`:`${A.size}KB, ${A.numLines} lines`,lastModified:A.lastModified}})}}),d.appendLine(`Listed ${c.length} files in directory "${u.relativeWorkspacePath}"`),{content:[{type:"text",text:`Contents of directory "${u.relativeWorkspacePath}":
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/cli-engine",
3
- "version": "3.9.1-next-1747836538.0",
3
+ "version": "3.9.1-next-1747897586.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.9.1-next-1747836538.0",
30
- "@opensumi/ide-core-common": "3.9.1-next-1747836538.0",
31
- "@opensumi/ide-core-node": "3.9.1-next-1747836538.0",
32
- "@opensumi/ide-express-file-server": "3.9.1-next-1747836538.0",
33
- "@opensumi/ide-extension": "3.9.1-next-1747836538.0",
34
- "@opensumi/ide-i18n": "3.9.1-next-1747836538.0",
35
- "@opensumi/ide-main-layout": "3.9.1-next-1747836538.0",
36
- "@opensumi/ide-startup": "3.9.1-next-1747836538.0",
29
+ "@opensumi/ide-core-browser": "3.9.1-next-1747897586.0",
30
+ "@opensumi/ide-core-common": "3.9.1-next-1747897586.0",
31
+ "@opensumi/ide-core-node": "3.9.1-next-1747897586.0",
32
+ "@opensumi/ide-express-file-server": "3.9.1-next-1747897586.0",
33
+ "@opensumi/ide-extension": "3.9.1-next-1747897586.0",
34
+ "@opensumi/ide-i18n": "3.9.1-next-1747897586.0",
35
+ "@opensumi/ide-main-layout": "3.9.1-next-1747897586.0",
36
+ "@opensumi/ide-startup": "3.9.1-next-1747897586.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": "c3886f039060c8632ae882d0c9875e9dd15e5473"
75
+ "gitHead": "d9d184251a55864b66ad58cef0097d78eed4b4f7"
76
76
  }