@antonytm/mcp-sitecore-server 0.15.1 → 0.17.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/README.md +8 -1
- package/dist/bundle.js +218 -6
- package/dist/register.js +14 -0
- package/dist/register.js.map +1 -1
- package/dist/tools/powershell/composite/logging/get-logs.d.ts +3 -0
- package/dist/tools/powershell/composite/logging/get-logs.js +59 -0
- package/dist/tools/powershell/composite/logging/get-logs.js.map +1 -0
- package/dist/tools/powershell/composite/logging/utils.d.ts +13 -0
- package/dist/tools/powershell/composite/logging/utils.js +63 -0
- package/dist/tools/powershell/composite/logging/utils.js.map +1 -0
- package/dist/tools/powershell/composite/presentation/set-layout-by-id.d.ts +3 -0
- package/dist/tools/powershell/composite/presentation/set-layout-by-id.js +24 -0
- package/dist/tools/powershell/composite/presentation/set-layout-by-id.js.map +1 -0
- package/dist/tools/powershell/composite/presentation/set-layout-by-path.d.ts +3 -0
- package/dist/tools/powershell/composite/presentation/set-layout-by-path.js +23 -0
- package/dist/tools/powershell/composite/presentation/set-layout-by-path.js.map +1 -0
- package/dist/tools/powershell/simple/indexing/get-search-index.js +3 -3
- package/dist/tools/powershell/simple/presentation/get-layout-by-id.d.ts +3 -0
- package/dist/tools/powershell/simple/presentation/get-layout-by-id.js +28 -0
- package/dist/tools/powershell/simple/presentation/get-layout-by-id.js.map +1 -0
- package/dist/tools/powershell/simple/presentation/get-layout-by-path.d.ts +3 -0
- package/dist/tools/powershell/simple/presentation/get-layout-by-path.js +27 -0
- package/dist/tools/powershell/simple/presentation/get-layout-by-path.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -72,7 +72,12 @@
|
|
|
72
72
|
- [x] `provider-get-item-by-id`: returns an item by ID
|
|
73
73
|
- [x] `provider-get-item-by-path`: returns an item by path
|
|
74
74
|
- [x] `provider-get-item-by-query`: returns an item by query
|
|
75
|
-
- [x] `provider-get-item-by-path`: returns an item by path
|
|
75
|
+
- [x] `provider-get-item-by-path`: returns an item by path
|
|
76
|
+
- [x] Presentation
|
|
77
|
+
- [x] `presentation-get-layout-by-id`: returns item presentation layout by ID
|
|
78
|
+
- [x] `presentation-get-layout-by-path`: returns item presentation layout by path
|
|
79
|
+
- [x] `presentation-set-layout-by-id`: sets item presentation layout by ID
|
|
80
|
+
- [x] `presentation-set-layout-by-path`: sets item presentation layout by path
|
|
76
81
|
- [x] Indexing
|
|
77
82
|
- [x] `indexing-initialize-search-index`: initializes one or more search indexes
|
|
78
83
|
- [x] `indexing-get-search-index`: returns a search index
|
|
@@ -94,6 +99,8 @@
|
|
|
94
99
|
- [x] `common-get-item-reference-by-path`: returns item references (where it is used) for a Sitecore item by path
|
|
95
100
|
- [x] `common-get-item-referrer-by-id`: returns items referring to a Sitecore item by ID (which items reference it)
|
|
96
101
|
- [x] `common-get-item-referrer-by-path`: returns items referring to a Sitecore item by path (which items reference it)
|
|
102
|
+
- [x] Logging
|
|
103
|
+
- [x] `logging-get-logs`: retrieves Sitecore logs from the log directory with filtering options
|
|
97
104
|
|
|
98
105
|
- [ ] Sitecore CLI
|
|
99
106
|
|
package/dist/bundle.js
CHANGED
|
@@ -22805,7 +22805,7 @@ function readDocType(xmlData, i){
|
|
|
22805
22805
|
const {index} = readNotationExp(xmlData,i+1);
|
|
22806
22806
|
i = index;
|
|
22807
22807
|
}else if( hasSeq(xmlData, "!--",i) ) comment = true;
|
|
22808
|
-
else throw new Error(
|
|
22808
|
+
else throw new Error(`Invalid DOCTYPE`);
|
|
22809
22809
|
|
|
22810
22810
|
angleBracketsCount++;
|
|
22811
22811
|
exp = "";
|
|
@@ -22978,8 +22978,8 @@ function readElementExp(xmlData, i) {
|
|
|
22978
22978
|
i = skipWhitespace(xmlData, i);
|
|
22979
22979
|
let contentModel = "";
|
|
22980
22980
|
// Expect '(' to start content model
|
|
22981
|
-
if(xmlData[i] === "E" && hasSeq(xmlData, "MPTY",i)) i+=
|
|
22982
|
-
else if(xmlData[i] === "A" && hasSeq(xmlData, "NY",i)) i+=
|
|
22981
|
+
if(xmlData[i] === "E" && hasSeq(xmlData, "MPTY",i)) i+=4;
|
|
22982
|
+
else if(xmlData[i] === "A" && hasSeq(xmlData, "NY",i)) i+=2;
|
|
22983
22983
|
else if (xmlData[i] === "(") {
|
|
22984
22984
|
i++; // Move past '('
|
|
22985
22985
|
|
|
@@ -25116,9 +25116,9 @@ function initializeSearchIndexPowerShellTool(server, config) {
|
|
|
25116
25116
|
function getSearchIndexPowerShellTool(server, config) {
|
|
25117
25117
|
server.tool("indexing-get-search-index", "Get information about Sitecore search indexes. Can filter by name, database, running status, or corrupted status.", {
|
|
25118
25118
|
name: stringType().optional().describe("The name of the index to retrieve information for. Supports wildcards."),
|
|
25119
|
-
database: stringType().optional().describe("Filter
|
|
25120
|
-
running: booleanType().optional().describe("Filter to show only running
|
|
25121
|
-
corrupted: booleanType().optional().describe("Filter to show only corrupted
|
|
25119
|
+
database: stringType().optional().describe("Filter indexes by database name."),
|
|
25120
|
+
running: booleanType().optional().describe("Filter to show only running indexes."),
|
|
25121
|
+
corrupted: booleanType().optional().describe("Filter to show only corrupted indexes."),
|
|
25122
25122
|
}, async (params) => {
|
|
25123
25123
|
const command = `Get-SearchIndex`;
|
|
25124
25124
|
const options = {};
|
|
@@ -25784,6 +25784,209 @@ function getItemReferrerByPathPowerShellTool(server, config) {
|
|
|
25784
25784
|
});
|
|
25785
25785
|
}
|
|
25786
25786
|
|
|
25787
|
+
function getLayoutByIdPowershellTool(server, config) {
|
|
25788
|
+
server.tool("presentation-get-layout-by-id", "Gets item layout by Id.", {
|
|
25789
|
+
id: stringType().describe("The ID of the item to retrieve layout for."),
|
|
25790
|
+
finalLayout: booleanType()
|
|
25791
|
+
.optional()
|
|
25792
|
+
.describe("Specifies layout to be retrieved. If 'true', the final layout is retrieved, otherwise - shared layout."),
|
|
25793
|
+
language: stringType()
|
|
25794
|
+
.optional()
|
|
25795
|
+
.describe("Specifies the item language to retrieve layout."),
|
|
25796
|
+
}, async (params) => {
|
|
25797
|
+
const command = `Get-Layout`;
|
|
25798
|
+
const options = {};
|
|
25799
|
+
options["Id"] = params.id;
|
|
25800
|
+
if (params.finalLayout === true) {
|
|
25801
|
+
options["FinalLayout"] = "";
|
|
25802
|
+
}
|
|
25803
|
+
if (params.language) {
|
|
25804
|
+
options["Language"] = params.language;
|
|
25805
|
+
}
|
|
25806
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
25807
|
+
});
|
|
25808
|
+
}
|
|
25809
|
+
|
|
25810
|
+
function getLayoutByPathPowershellTool(server, config) {
|
|
25811
|
+
server.tool("presentation-get-layout-by-path", "Gets item layout by path.", {
|
|
25812
|
+
path: stringType().describe("The path of the item to retrieve layout for.").default("master:"),
|
|
25813
|
+
finalLayout: booleanType()
|
|
25814
|
+
.optional()
|
|
25815
|
+
.describe("Specifies layout to be retrieved. If 'true', the final layout is retrieved, otherwise - shared layout."),
|
|
25816
|
+
language: stringType()
|
|
25817
|
+
.optional()
|
|
25818
|
+
.describe("Specifies the item language to retrieve layout."),
|
|
25819
|
+
}, async (params) => {
|
|
25820
|
+
const command = `Get-Layout`;
|
|
25821
|
+
const options = {};
|
|
25822
|
+
options["Path"] = params.path;
|
|
25823
|
+
if (params.finalLayout === true) {
|
|
25824
|
+
options["FinalLayout"] = "";
|
|
25825
|
+
}
|
|
25826
|
+
if (params.language) {
|
|
25827
|
+
options["Language"] = params.language;
|
|
25828
|
+
}
|
|
25829
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
25830
|
+
});
|
|
25831
|
+
}
|
|
25832
|
+
|
|
25833
|
+
function setLayoutIdPowershellTool(server, config) {
|
|
25834
|
+
server.tool("presentation-set-layout-by-id", "Sets layout for an item specified by Id.", {
|
|
25835
|
+
itemId: stringType().describe("The Id of the item to set the layout for."),
|
|
25836
|
+
layoutPath: stringType().describe("The path of the layout.").default("master:"),
|
|
25837
|
+
layoutId: stringType().describe("The ID of the layout to set for the item."),
|
|
25838
|
+
language: stringType().describe("The language of the item to set layout for.").optional(),
|
|
25839
|
+
finalLayout: booleanType()
|
|
25840
|
+
.describe("Specifies layout to be updated. If 'true', the final layout is set, otherwise - shared layout.")
|
|
25841
|
+
.optional(),
|
|
25842
|
+
}, async (params) => {
|
|
25843
|
+
const command = `
|
|
25844
|
+
$layout = Get-Item -Path ${params.layoutPath} -Id ${params.layoutId};
|
|
25845
|
+
$device = Get-LayoutDevice -Default;
|
|
25846
|
+
Set-Layout -Id ${params.itemId} -Layout $layout -Device $device ${params.language ? `-Language ${params.language}` : ""}
|
|
25847
|
+
${params.finalLayout ? "-FinalLayout" : ""};
|
|
25848
|
+
`.replaceAll(/[\n]+/g, "");
|
|
25849
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, {}));
|
|
25850
|
+
});
|
|
25851
|
+
}
|
|
25852
|
+
|
|
25853
|
+
function setLayoutByPathPowershellTool(server, config) {
|
|
25854
|
+
server.tool("presentation-set-layout-by-path", "Sets layout for an item specified by path.", {
|
|
25855
|
+
itemId: stringType().describe("The Id of the item to set the layout for."),
|
|
25856
|
+
layoutPath: stringType().describe("The path of the layout.").default("master:"),
|
|
25857
|
+
language: stringType().describe("The language of the item to set layout for.").optional(),
|
|
25858
|
+
finalLayout: booleanType()
|
|
25859
|
+
.describe("Specifies layout to be updated. If 'true', the final layout is set, otherwise - shared layout.")
|
|
25860
|
+
.optional(),
|
|
25861
|
+
}, async (params) => {
|
|
25862
|
+
const command = `
|
|
25863
|
+
$layout = Get-Item -Path '${params.layoutPath}';
|
|
25864
|
+
$device = Get-LayoutDevice -Default;
|
|
25865
|
+
Set-Layout -Id ${params.itemId} -Layout $layout -Device $device ${params.language ? `-Language ${params.language}` : ""}
|
|
25866
|
+
${params.finalLayout ? "-FinalLayout" : ""};
|
|
25867
|
+
`.replaceAll(/[\n]+/g, "");
|
|
25868
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, {}));
|
|
25869
|
+
});
|
|
25870
|
+
}
|
|
25871
|
+
|
|
25872
|
+
var LogLevel;
|
|
25873
|
+
(function (LogLevel) {
|
|
25874
|
+
LogLevel["DEBUG"] = "DEBUG";
|
|
25875
|
+
LogLevel["INFO"] = "INFO";
|
|
25876
|
+
LogLevel["WARN"] = "WARN";
|
|
25877
|
+
LogLevel["ERROR"] = "ERROR";
|
|
25878
|
+
LogLevel["FATAL"] = "FATAL";
|
|
25879
|
+
})(LogLevel || (LogLevel = {}));
|
|
25880
|
+
function filterByLogLevel(logs, level) {
|
|
25881
|
+
const logsArray = (logs.Obj || []).map((log) => {
|
|
25882
|
+
return log.undefined;
|
|
25883
|
+
});
|
|
25884
|
+
const filteredLogs = logsArray.reduce((acc, log) => {
|
|
25885
|
+
// Skip empty lines
|
|
25886
|
+
if (log === undefined || log.trim() === "") {
|
|
25887
|
+
return acc;
|
|
25888
|
+
}
|
|
25889
|
+
const match1 = log.match(/^(ManagedPoolThread #\d+|[0-9]+) (\d{2} \w{3} \d{4} \d{2}:\d{2}:\d{2}) (\w+) (.*)$/);
|
|
25890
|
+
const match2 = log.match(/^(\d+|[0-9]+) (\d{2} \w{3} \d{4} \d{2}:\d{2}:\d{2}) (\w+) (.*)$/);
|
|
25891
|
+
if (!match1 && !match2) {
|
|
25892
|
+
// It is the line that continues the previous log entry
|
|
25893
|
+
if (acc.length > 0) {
|
|
25894
|
+
acc[acc.length - 1].message += ` \r\n${log.trim()}`;
|
|
25895
|
+
}
|
|
25896
|
+
}
|
|
25897
|
+
else {
|
|
25898
|
+
if (match1) {
|
|
25899
|
+
const [_, __, timestamp, level, message] = match1;
|
|
25900
|
+
acc.push({ timestamp, level: level, message });
|
|
25901
|
+
}
|
|
25902
|
+
else if (match2) {
|
|
25903
|
+
const [_, __, timestamp, level, message] = match2;
|
|
25904
|
+
acc.push({ timestamp, level: level, message });
|
|
25905
|
+
}
|
|
25906
|
+
}
|
|
25907
|
+
return acc;
|
|
25908
|
+
}, []);
|
|
25909
|
+
return filteredLogs.filter((log) => {
|
|
25910
|
+
switch (level) {
|
|
25911
|
+
case LogLevel.DEBUG:
|
|
25912
|
+
return log.level === LogLevel.DEBUG
|
|
25913
|
+
|| log.level === LogLevel.INFO
|
|
25914
|
+
|| log.level === LogLevel.WARN
|
|
25915
|
+
|| log.level === LogLevel.ERROR
|
|
25916
|
+
|| log.level === LogLevel.FATAL;
|
|
25917
|
+
case LogLevel.INFO:
|
|
25918
|
+
return log.level === LogLevel.INFO
|
|
25919
|
+
|| log.level === LogLevel.WARN
|
|
25920
|
+
|| log.level === LogLevel.ERROR
|
|
25921
|
+
|| log.level === LogLevel.FATAL;
|
|
25922
|
+
case LogLevel.WARN:
|
|
25923
|
+
return log.level === LogLevel.WARN
|
|
25924
|
+
|| log.level === LogLevel.ERROR
|
|
25925
|
+
|| log.level === LogLevel.FATAL;
|
|
25926
|
+
case LogLevel.ERROR:
|
|
25927
|
+
return log.level === LogLevel.ERROR
|
|
25928
|
+
|| log.level === LogLevel.FATAL;
|
|
25929
|
+
case LogLevel.FATAL:
|
|
25930
|
+
return log.level === LogLevel.FATAL;
|
|
25931
|
+
}
|
|
25932
|
+
});
|
|
25933
|
+
}
|
|
25934
|
+
|
|
25935
|
+
const logFilePrefixes = [
|
|
25936
|
+
"log",
|
|
25937
|
+
"Crawiling.log",
|
|
25938
|
+
"Search.log",
|
|
25939
|
+
"SPE.log",
|
|
25940
|
+
"Client.log",
|
|
25941
|
+
"OWin.log",
|
|
25942
|
+
"Publising.log",
|
|
25943
|
+
];
|
|
25944
|
+
function formatDate(date) {
|
|
25945
|
+
const d = date ? new Date(date) : new Date();
|
|
25946
|
+
let month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear();
|
|
25947
|
+
if (month.length < 2) {
|
|
25948
|
+
month = '0' + month;
|
|
25949
|
+
}
|
|
25950
|
+
if (day.length < 2) {
|
|
25951
|
+
day = '0' + day;
|
|
25952
|
+
}
|
|
25953
|
+
return [year, month, day].join("");
|
|
25954
|
+
}
|
|
25955
|
+
function getLogsPowerShellTool(server, config) {
|
|
25956
|
+
server.tool(`logging-get-logs`, `Retrieves Sitecore logs from the log directory.`, {
|
|
25957
|
+
name: stringType()
|
|
25958
|
+
.default("log")
|
|
25959
|
+
.optional()
|
|
25960
|
+
.describe(`The name of the log file to retrieve. If not provided, defaults to log.*. Possible options: ${logFilePrefixes.join(", ")}.`),
|
|
25961
|
+
level: enumType(Object.values(LogLevel))
|
|
25962
|
+
.default(LogLevel.DEBUG)
|
|
25963
|
+
.optional(),
|
|
25964
|
+
date: stringType()
|
|
25965
|
+
.optional()
|
|
25966
|
+
.describe(`The date of the log file to retrieve. If not provided, defaults to today. Date format should be in ISO 8601 format (e.g., '2023-10-01T00:00:00Z'`),
|
|
25967
|
+
tail: numberType()
|
|
25968
|
+
.default(500)
|
|
25969
|
+
.optional()
|
|
25970
|
+
.describe("The number of lines to retrieve from the end of the log file. Defaults to 500."),
|
|
25971
|
+
}, async (params) => {
|
|
25972
|
+
const stringDate = formatDate(params.date);
|
|
25973
|
+
const command = `Get-ChildItem -Path $SitecoreDataFolder/logs/${params.name}*${stringDate}*.* | Sort LastWriteTime | Get-Content -Tail ${params.tail} `;
|
|
25974
|
+
return safeMcpResponse((async () => {
|
|
25975
|
+
const json = await runGenericPowershellCommand(config, command, {});
|
|
25976
|
+
const filteredLogs = filterByLogLevel(JSON.parse(json.content[0].text), LogLevel[params.level] || LogLevel.DEBUG);
|
|
25977
|
+
return {
|
|
25978
|
+
content: [
|
|
25979
|
+
{
|
|
25980
|
+
type: "text",
|
|
25981
|
+
text: JSON.stringify(filteredLogs, null, 2),
|
|
25982
|
+
},
|
|
25983
|
+
],
|
|
25984
|
+
isError: false,
|
|
25985
|
+
};
|
|
25986
|
+
})());
|
|
25987
|
+
});
|
|
25988
|
+
}
|
|
25989
|
+
|
|
25787
25990
|
async function register(array, server, config) {
|
|
25788
25991
|
for (const register of array) {
|
|
25789
25992
|
await register(server, config);
|
|
@@ -25855,6 +26058,15 @@ async function registerAll(server, config) {
|
|
|
25855
26058
|
getItemReferenceByPathPowerShellTool,
|
|
25856
26059
|
getItemReferrerByIdPowerShellTool,
|
|
25857
26060
|
getItemReferrerByPathPowerShellTool,
|
|
26061
|
+
//Layout
|
|
26062
|
+
//Simple Layout PowerShell Tools
|
|
26063
|
+
getLayoutByIdPowershellTool,
|
|
26064
|
+
getLayoutByPathPowershellTool,
|
|
26065
|
+
//Composite Layout PowerShell Tools
|
|
26066
|
+
setLayoutIdPowershellTool,
|
|
26067
|
+
setLayoutByPathPowershellTool,
|
|
26068
|
+
//Logging
|
|
26069
|
+
getLogsPowerShellTool,
|
|
25858
26070
|
//Provider
|
|
25859
26071
|
getItemPowerShellTool,
|
|
25860
26072
|
//Indexing PowerShell Tools
|
package/dist/register.js
CHANGED
|
@@ -64,6 +64,11 @@ import { getItemReferenceByIdPowerShellTool } from "./tools/powershell/simple/co
|
|
|
64
64
|
import { getItemReferenceByPathPowerShellTool } from "./tools/powershell/simple/common/get-item-reference-by-path.js";
|
|
65
65
|
import { getItemReferrerByIdPowerShellTool } from "./tools/powershell/simple/common/get-item-referrer-by-id.js";
|
|
66
66
|
import { getItemReferrerByPathPowerShellTool } from "./tools/powershell/simple/common/get-item-referrer-by-path.js";
|
|
67
|
+
import { getLayoutByIdPowershellTool } from "./tools/powershell/simple/presentation/get-layout-by-id.js";
|
|
68
|
+
import { getLayoutByPathPowershellTool } from "./tools/powershell/simple/presentation/get-layout-by-path.js";
|
|
69
|
+
import { setLayoutIdPowershellTool } from "./tools/powershell/composite/presentation/set-layout-by-id.js";
|
|
70
|
+
import { setLayoutByPathPowershellTool } from "./tools/powershell/composite/presentation/set-layout-by-path.js";
|
|
71
|
+
import { getLogsPowerShellTool } from "./tools/powershell/composite/logging/get-logs.js";
|
|
67
72
|
export async function register(array, server, config) {
|
|
68
73
|
for (const register of array) {
|
|
69
74
|
await register(server, config);
|
|
@@ -135,6 +140,15 @@ export async function registerAll(server, config) {
|
|
|
135
140
|
getItemReferenceByPathPowerShellTool,
|
|
136
141
|
getItemReferrerByIdPowerShellTool,
|
|
137
142
|
getItemReferrerByPathPowerShellTool,
|
|
143
|
+
//Layout
|
|
144
|
+
//Simple Layout PowerShell Tools
|
|
145
|
+
getLayoutByIdPowershellTool,
|
|
146
|
+
getLayoutByPathPowershellTool,
|
|
147
|
+
//Composite Layout PowerShell Tools
|
|
148
|
+
setLayoutIdPowershellTool,
|
|
149
|
+
setLayoutByPathPowershellTool,
|
|
150
|
+
//Logging
|
|
151
|
+
getLogsPowerShellTool,
|
|
138
152
|
//Provider
|
|
139
153
|
getItemPowerShellTool,
|
|
140
154
|
//Indexing PowerShell Tools
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../../simple/generic.js";
|
|
4
|
+
import { filterByLogLevel, LogLevel } from "./utils.js";
|
|
5
|
+
const logFilePrefixes = [
|
|
6
|
+
"log",
|
|
7
|
+
"Crawiling.log",
|
|
8
|
+
"Search.log",
|
|
9
|
+
"SPE.log",
|
|
10
|
+
"Client.log",
|
|
11
|
+
"OWin.log",
|
|
12
|
+
"Publising.log",
|
|
13
|
+
];
|
|
14
|
+
function formatDate(date) {
|
|
15
|
+
const d = date ? new Date(date) : new Date();
|
|
16
|
+
let month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear();
|
|
17
|
+
if (month.length < 2) {
|
|
18
|
+
month = '0' + month;
|
|
19
|
+
}
|
|
20
|
+
if (day.length < 2) {
|
|
21
|
+
day = '0' + day;
|
|
22
|
+
}
|
|
23
|
+
return [year, month, day].join("");
|
|
24
|
+
}
|
|
25
|
+
export function getLogsPowerShellTool(server, config) {
|
|
26
|
+
server.tool(`logging-get-logs`, `Retrieves Sitecore logs from the log directory.`, {
|
|
27
|
+
name: z.string()
|
|
28
|
+
.default("log")
|
|
29
|
+
.optional()
|
|
30
|
+
.describe(`The name of the log file to retrieve. If not provided, defaults to log.*. Possible options: ${logFilePrefixes.join(", ")}.`),
|
|
31
|
+
level: z.enum(Object.values(LogLevel))
|
|
32
|
+
.default(LogLevel.DEBUG)
|
|
33
|
+
.optional(),
|
|
34
|
+
date: z.string()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe(`The date of the log file to retrieve. If not provided, defaults to today. Date format should be in ISO 8601 format (e.g., '2023-10-01T00:00:00Z'`),
|
|
37
|
+
tail: z.number()
|
|
38
|
+
.default(500)
|
|
39
|
+
.optional()
|
|
40
|
+
.describe("The number of lines to retrieve from the end of the log file. Defaults to 500."),
|
|
41
|
+
}, async (params) => {
|
|
42
|
+
const stringDate = formatDate(params.date);
|
|
43
|
+
const command = `Get-ChildItem -Path $SitecoreDataFolder/logs/${params.name}*${stringDate}*.* | Sort LastWriteTime | Get-Content -Tail ${params.tail} `;
|
|
44
|
+
return safeMcpResponse((async () => {
|
|
45
|
+
const json = await runGenericPowershellCommand(config, command, {});
|
|
46
|
+
const filteredLogs = filterByLogLevel(JSON.parse(json.content[0].text), LogLevel[params.level] || LogLevel.DEBUG);
|
|
47
|
+
return {
|
|
48
|
+
content: [
|
|
49
|
+
{
|
|
50
|
+
type: "text",
|
|
51
|
+
text: JSON.stringify(filteredLogs, null, 2),
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
isError: false,
|
|
55
|
+
};
|
|
56
|
+
})());
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=get-logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-logs.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/composite/logging/get-logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare enum LogLevel {
|
|
2
|
+
DEBUG = "DEBUG",
|
|
3
|
+
INFO = "INFO",
|
|
4
|
+
WARN = "WARN",
|
|
5
|
+
ERROR = "ERROR",
|
|
6
|
+
FATAL = "FATAL"
|
|
7
|
+
}
|
|
8
|
+
export interface LogEntry {
|
|
9
|
+
level: LogLevel;
|
|
10
|
+
message: string;
|
|
11
|
+
timestamp: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function filterByLogLevel(logs: any, level: LogLevel): LogEntry[];
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export var LogLevel;
|
|
2
|
+
(function (LogLevel) {
|
|
3
|
+
LogLevel["DEBUG"] = "DEBUG";
|
|
4
|
+
LogLevel["INFO"] = "INFO";
|
|
5
|
+
LogLevel["WARN"] = "WARN";
|
|
6
|
+
LogLevel["ERROR"] = "ERROR";
|
|
7
|
+
LogLevel["FATAL"] = "FATAL";
|
|
8
|
+
})(LogLevel || (LogLevel = {}));
|
|
9
|
+
export function filterByLogLevel(logs, level) {
|
|
10
|
+
const logsArray = (logs.Obj || []).map((log) => {
|
|
11
|
+
return log.undefined;
|
|
12
|
+
});
|
|
13
|
+
const filteredLogs = logsArray.reduce((acc, log) => {
|
|
14
|
+
// Skip empty lines
|
|
15
|
+
if (log === undefined || log.trim() === "") {
|
|
16
|
+
return acc;
|
|
17
|
+
}
|
|
18
|
+
const match1 = log.match(/^(ManagedPoolThread #\d+|[0-9]+) (\d{2} \w{3} \d{4} \d{2}:\d{2}:\d{2}) (\w+) (.*)$/);
|
|
19
|
+
const match2 = log.match(/^(\d+|[0-9]+) (\d{2} \w{3} \d{4} \d{2}:\d{2}:\d{2}) (\w+) (.*)$/);
|
|
20
|
+
if (!match1 && !match2) {
|
|
21
|
+
// It is the line that continues the previous log entry
|
|
22
|
+
if (acc.length > 0) {
|
|
23
|
+
acc[acc.length - 1].message += ` \r\n${log.trim()}`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
if (match1) {
|
|
28
|
+
const [_, __, timestamp, level, message] = match1;
|
|
29
|
+
acc.push({ timestamp, level: level, message });
|
|
30
|
+
}
|
|
31
|
+
else if (match2) {
|
|
32
|
+
const [_, __, timestamp, level, message] = match2;
|
|
33
|
+
acc.push({ timestamp, level: level, message });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return acc;
|
|
37
|
+
}, []);
|
|
38
|
+
return filteredLogs.filter((log) => {
|
|
39
|
+
switch (level) {
|
|
40
|
+
case LogLevel.DEBUG:
|
|
41
|
+
return log.level === LogLevel.DEBUG
|
|
42
|
+
|| log.level === LogLevel.INFO
|
|
43
|
+
|| log.level === LogLevel.WARN
|
|
44
|
+
|| log.level === LogLevel.ERROR
|
|
45
|
+
|| log.level === LogLevel.FATAL;
|
|
46
|
+
case LogLevel.INFO:
|
|
47
|
+
return log.level === LogLevel.INFO
|
|
48
|
+
|| log.level === LogLevel.WARN
|
|
49
|
+
|| log.level === LogLevel.ERROR
|
|
50
|
+
|| log.level === LogLevel.FATAL;
|
|
51
|
+
case LogLevel.WARN:
|
|
52
|
+
return log.level === LogLevel.WARN
|
|
53
|
+
|| log.level === LogLevel.ERROR
|
|
54
|
+
|| log.level === LogLevel.FATAL;
|
|
55
|
+
case LogLevel.ERROR:
|
|
56
|
+
return log.level === LogLevel.ERROR
|
|
57
|
+
|| log.level === LogLevel.FATAL;
|
|
58
|
+
case LogLevel.FATAL:
|
|
59
|
+
return log.level === LogLevel.FATAL;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/composite/logging/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../../simple/generic.js";
|
|
4
|
+
export function setLayoutIdPowershellTool(server, config) {
|
|
5
|
+
server.tool("presentation-set-layout-by-id", "Sets layout for an item specified by Id.", {
|
|
6
|
+
itemId: z.string().describe("The Id of the item to set the layout for."),
|
|
7
|
+
layoutPath: z.string().describe("The path of the layout.").default("master:"),
|
|
8
|
+
layoutId: z.string().describe("The ID of the layout to set for the item."),
|
|
9
|
+
language: z.string().describe("The language of the item to set layout for.").optional(),
|
|
10
|
+
finalLayout: z
|
|
11
|
+
.boolean()
|
|
12
|
+
.describe("Specifies layout to be updated. If 'true', the final layout is set, otherwise - shared layout.")
|
|
13
|
+
.optional(),
|
|
14
|
+
}, async (params) => {
|
|
15
|
+
const command = `
|
|
16
|
+
$layout = Get-Item -Path ${params.layoutPath} -Id ${params.layoutId};
|
|
17
|
+
$device = Get-LayoutDevice -Default;
|
|
18
|
+
Set-Layout -Id ${params.itemId} -Layout $layout -Device $device ${params.language ? `-Language ${params.language}` : ""}
|
|
19
|
+
${params.finalLayout ? "-FinalLayout" : ""};
|
|
20
|
+
`.replaceAll(/[\n]+/g, "");
|
|
21
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, {}));
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=set-layout-by-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-layout-by-id.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/composite/presentation/set-layout-by-id.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAc;IACvE,MAAM,CAAC,IAAI,CACP,+BAA+B,EAC/B,0CAA0C,EAC1C;QACI,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACxE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAC1E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC,QAAQ,EAAE;QACvF,WAAW,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,CAAC,gGAAgG,CAAC;aAC1G,QAAQ,EAAE;KAClB,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG;2CACe,MAAM,CAAC,UAAU,QAAQ,MAAM,CAAC,QAAQ;;iCAElD,MAAM,CAAC,MAAM,oCAAoC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;sBACjH,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;aACjD,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE3B,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../../simple/generic.js";
|
|
4
|
+
export function setLayoutByPathPowershellTool(server, config) {
|
|
5
|
+
server.tool("presentation-set-layout-by-path", "Sets layout for an item specified by path.", {
|
|
6
|
+
itemId: z.string().describe("The Id of the item to set the layout for."),
|
|
7
|
+
layoutPath: z.string().describe("The path of the layout.").default("master:"),
|
|
8
|
+
language: z.string().describe("The language of the item to set layout for.").optional(),
|
|
9
|
+
finalLayout: z
|
|
10
|
+
.boolean()
|
|
11
|
+
.describe("Specifies layout to be updated. If 'true', the final layout is set, otherwise - shared layout.")
|
|
12
|
+
.optional(),
|
|
13
|
+
}, async (params) => {
|
|
14
|
+
const command = `
|
|
15
|
+
$layout = Get-Item -Path '${params.layoutPath}';
|
|
16
|
+
$device = Get-LayoutDevice -Default;
|
|
17
|
+
Set-Layout -Id ${params.itemId} -Layout $layout -Device $device ${params.language ? `-Language ${params.language}` : ""}
|
|
18
|
+
${params.finalLayout ? "-FinalLayout" : ""};
|
|
19
|
+
`.replaceAll(/[\n]+/g, "");
|
|
20
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, {}));
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=set-layout-by-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-layout-by-path.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/composite/presentation/set-layout-by-path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,MAAc;IAC3E,MAAM,CAAC,IAAI,CACP,iCAAiC,EACjC,4CAA4C,EAC5C;QACI,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACxE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC,QAAQ,EAAE;QACvF,WAAW,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,CAAC,gGAAgG,CAAC;aAC1G,QAAQ,EAAE;KAClB,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG;4CACgB,MAAM,CAAC,UAAU;;iCAE5B,MAAM,CAAC,MAAM,oCAAoC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;sBACjH,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;aACjD,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE3B,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -4,9 +4,9 @@ import { runGenericPowershellCommand } from "../generic.js";
|
|
|
4
4
|
export function getSearchIndexPowerShellTool(server, config) {
|
|
5
5
|
server.tool("indexing-get-search-index", "Get information about Sitecore search indexes. Can filter by name, database, running status, or corrupted status.", {
|
|
6
6
|
name: z.string().optional().describe("The name of the index to retrieve information for. Supports wildcards."),
|
|
7
|
-
database: z.string().optional().describe("Filter
|
|
8
|
-
running: z.boolean().optional().describe("Filter to show only running
|
|
9
|
-
corrupted: z.boolean().optional().describe("Filter to show only corrupted
|
|
7
|
+
database: z.string().optional().describe("Filter indexes by database name."),
|
|
8
|
+
running: z.boolean().optional().describe("Filter to show only running indexes."),
|
|
9
|
+
corrupted: z.boolean().optional().describe("Filter to show only corrupted indexes."),
|
|
10
10
|
}, async (params) => {
|
|
11
11
|
const command = `Get-SearchIndex`;
|
|
12
12
|
const options = {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../generic.js";
|
|
4
|
+
export function getLayoutByIdPowershellTool(server, config) {
|
|
5
|
+
server.tool("presentation-get-layout-by-id", "Gets item layout by Id.", {
|
|
6
|
+
id: z.string().describe("The ID of the item to retrieve layout for."),
|
|
7
|
+
finalLayout: z
|
|
8
|
+
.boolean()
|
|
9
|
+
.optional()
|
|
10
|
+
.describe("Specifies layout to be retrieved. If 'true', the final layout is retrieved, otherwise - shared layout."),
|
|
11
|
+
language: z.string()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe("Specifies the item language to retrieve layout."),
|
|
14
|
+
}, async (params) => {
|
|
15
|
+
const command = `Get-Layout`;
|
|
16
|
+
const options = {};
|
|
17
|
+
options["Id"] = params.id;
|
|
18
|
+
if (params.finalLayout === true) {
|
|
19
|
+
options["FinalLayout"] = "";
|
|
20
|
+
}
|
|
21
|
+
if (params.language) {
|
|
22
|
+
options["Language"] = params.language;
|
|
23
|
+
}
|
|
24
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
;
|
|
28
|
+
//# sourceMappingURL=get-layout-by-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-layout-by-id.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/presentation/get-layout-by-id.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,2BAA2B,CAAC,MAAiB,EAAE,MAAc;IACzE,MAAM,CAAC,IAAI,CACP,+BAA+B,EAC/B,yBAAyB,EACzB;QACI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACrE,WAAW,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,wGAAwG,CAAC;QACvH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;aACf,QAAQ,EAAE;aACV,QAAQ,CAAC,iDAAiD,CAAC;KACnE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,YAAY,CAAC;QAC7B,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QAE1B,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAC/B,CAAC;YACG,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EACnB,CAAC;YACG,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1C,CAAC;QAED,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;AACN,CAAC;AAAA,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../generic.js";
|
|
4
|
+
export function getLayoutByPathPowershellTool(server, config) {
|
|
5
|
+
server.tool("presentation-get-layout-by-path", "Gets item layout by path.", {
|
|
6
|
+
path: z.string().describe("The path of the item to retrieve layout for.").default("master:"),
|
|
7
|
+
finalLayout: z
|
|
8
|
+
.boolean()
|
|
9
|
+
.optional()
|
|
10
|
+
.describe("Specifies layout to be retrieved. If 'true', the final layout is retrieved, otherwise - shared layout."),
|
|
11
|
+
language: z.string()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe("Specifies the item language to retrieve layout."),
|
|
14
|
+
}, async (params) => {
|
|
15
|
+
const command = `Get-Layout`;
|
|
16
|
+
const options = {};
|
|
17
|
+
options["Path"] = params.path;
|
|
18
|
+
if (params.finalLayout === true) {
|
|
19
|
+
options["FinalLayout"] = "";
|
|
20
|
+
}
|
|
21
|
+
if (params.language) {
|
|
22
|
+
options["Language"] = params.language;
|
|
23
|
+
}
|
|
24
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=get-layout-by-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-layout-by-path.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/presentation/get-layout-by-path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,MAAc;IAC3E,MAAM,CAAC,IAAI,CACP,iCAAiC,EACjC,2BAA2B,EAC3B;QACI,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5F,WAAW,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,wGAAwG,CAAC;QACvH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;aACf,QAAQ,EAAE;aACV,QAAQ,CAAC,iDAAiD,CAAC;KACnE,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,YAAY,CAAC;QAC7B,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAE9B,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAC/B,CAAC;YACG,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EACnB,CAAC;YACG,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1C,CAAC;QAED,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;AACN,CAAC"}
|