@microsoft/teamsfx-core 3.0.10-alpha.bd1eea45e.0 → 3.0.10-alpha.c67b3c0ec.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/build/client/graphClient.d.ts +1 -0
- package/build/client/graphClient.d.ts.map +1 -1
- package/build/client/teamsDevPortalClient.d.ts +1 -0
- package/build/client/teamsDevPortalClient.d.ts.map +1 -1
- package/build/common/featureFlags.d.ts +10 -20
- package/build/common/featureFlags.d.ts.map +1 -1
- package/build/common/featureFlags.js +12 -21
- package/build/common/featureFlags.js.map +1 -1
- package/build/common/telemetry.d.ts +2 -0
- package/build/common/telemetry.d.ts.map +1 -1
- package/build/common/telemetry.js +2 -0
- package/build/common/telemetry.js.map +1 -1
- package/build/common/templates-config.json +1 -1
- package/build/component/coordinator/index.d.ts.map +1 -1
- package/build/component/coordinator/index.js +0 -11
- package/build/component/coordinator/index.js.map +1 -1
- package/build/component/deps-checker/internal/dotnetChecker.d.ts +5 -1
- package/build/component/deps-checker/internal/dotnetChecker.d.ts.map +1 -1
- package/build/component/deps-checker/internal/dotnetChecker.js +16 -8
- package/build/component/deps-checker/internal/dotnetChecker.js.map +1 -1
- package/build/component/driver/deploy/spfx/utility/spoClient.d.ts +1 -0
- package/build/component/driver/deploy/spfx/utility/spoClient.d.ts.map +1 -1
- package/build/component/driver/devTool/httpClient.d.ts +1 -0
- package/build/component/driver/devTool/httpClient.d.ts.map +1 -1
- package/build/component/driver/devTool/nodeInstaller.d.ts +1 -0
- package/build/component/driver/devTool/nodeInstaller.d.ts.map +1 -1
- package/build/component/driver/script/scriptDriver.d.ts +1 -0
- package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
- package/build/component/driver/script/scriptDriver.js +1 -1
- package/build/component/driver/script/scriptDriver.js.map +1 -1
- package/build/component/driver/share/utils.d.ts.map +1 -1
- package/build/component/driver/share/utils.js +6 -0
- package/build/component/driver/share/utils.js.map +1 -1
- package/build/component/driver/teamsApp/constants.d.ts +1 -1
- package/build/component/driver/teamsApp/constants.d.ts.map +1 -1
- package/build/component/driver/teamsApp/constants.js +2 -2
- package/build/component/driver/teamsApp/constants.js.map +1 -1
- package/build/component/driver/teamsApp/copyAppPackageToSPFx.d.ts +1 -0
- package/build/component/driver/teamsApp/copyAppPackageToSPFx.d.ts.map +1 -1
- package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/createAppPackage.js +12 -1
- package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
- package/build/component/driver/teamsApp/interfaces/appdefinitions/appPackage.d.ts +1 -0
- package/build/component/driver/teamsApp/interfaces/appdefinitions/appPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts +1 -0
- package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts.map +1 -1
- package/build/component/generator/configFiles/configGenerator.d.ts +15 -0
- package/build/component/generator/configFiles/configGenerator.d.ts.map +1 -0
- package/build/component/generator/configFiles/configGenerator.js +168 -0
- package/build/component/generator/configFiles/configGenerator.js.map +1 -0
- package/build/component/generator/configFiles/copyPolicy.d.ts +12 -0
- package/build/component/generator/configFiles/copyPolicy.d.ts.map +1 -0
- package/build/component/generator/configFiles/copyPolicy.js +63 -0
- package/build/component/generator/configFiles/copyPolicy.js.map +1 -0
- package/build/component/generator/configFiles/jsonMerger.d.ts +11 -0
- package/build/component/generator/configFiles/jsonMerger.d.ts.map +1 -0
- package/build/component/generator/configFiles/jsonMerger.js +83 -0
- package/build/component/generator/configFiles/jsonMerger.js.map +1 -0
- package/build/component/generator/configFiles/renderTemplate.d.ts +2 -0
- package/build/component/generator/configFiles/renderTemplate.d.ts.map +1 -0
- package/build/component/generator/configFiles/renderTemplate.js +16 -0
- package/build/component/generator/configFiles/renderTemplate.js.map +1 -0
- package/build/component/generator/declarativeAgent/generator.d.ts +5 -0
- package/build/component/generator/declarativeAgent/generator.d.ts.map +1 -1
- package/build/component/generator/declarativeAgent/generator.js +76 -36
- package/build/component/generator/declarativeAgent/generator.js.map +1 -1
- package/build/component/generator/declarativeAgent/helper.d.ts.map +1 -1
- package/build/component/generator/declarativeAgent/helper.js +0 -1
- package/build/component/generator/declarativeAgent/helper.js.map +1 -1
- package/build/component/generator/generatorAction.d.ts +1 -0
- package/build/component/generator/generatorAction.d.ts.map +1 -1
- package/build/component/generator/openApiSpec/common.d.ts.map +1 -1
- package/build/component/generator/openApiSpec/common.js +11 -22
- package/build/component/generator/openApiSpec/common.js.map +1 -1
- package/build/component/generator/openApiSpec/kiota.d.ts +0 -6
- package/build/component/generator/openApiSpec/kiota.d.ts.map +1 -1
- package/build/component/generator/openApiSpec/kiota.js +2 -17
- package/build/component/generator/openApiSpec/kiota.js.map +1 -1
- package/build/component/generator/templates/templateInfo.d.ts +1 -1
- package/build/component/generator/templates/templateInfo.d.ts.map +1 -1
- package/build/component/generator/utils.d.ts +3 -2
- package/build/component/generator/utils.d.ts.map +1 -1
- package/build/component/generator/utils.js.map +1 -1
- package/build/component/m365/packageService.d.ts.map +1 -1
- package/build/component/m365/packageService.js +16 -20
- package/build/component/m365/packageService.js.map +1 -1
- package/build/component/middleware/envMW.d.ts.map +1 -1
- package/build/component/middleware/envMW.js +7 -0
- package/build/component/middleware/envMW.js.map +1 -1
- package/build/component/utils/envUtil.d.ts +1 -0
- package/build/component/utils/envUtil.d.ts.map +1 -1
- package/build/component/utils/odrProvider.d.ts +13 -0
- package/build/component/utils/odrProvider.d.ts.map +1 -1
- package/build/component/utils/odrProvider.js +25 -0
- package/build/component/utils/odrProvider.js.map +1 -1
- package/build/component/utils/pathUtils.d.ts +2 -1
- package/build/component/utils/pathUtils.d.ts.map +1 -1
- package/build/component/utils/pathUtils.js +19 -3
- package/build/component/utils/pathUtils.js.map +1 -1
- package/build/component/utils/settingsUtil.d.ts +1 -1
- package/build/component/utils/settingsUtil.d.ts.map +1 -1
- package/build/component/utils/settingsUtil.js +20 -7
- package/build/component/utils/settingsUtil.js.map +1 -1
- package/build/core/FxCore.d.ts +6 -2
- package/build/core/FxCore.d.ts.map +1 -1
- package/build/core/FxCore.declarativeAgent.d.ts +6 -0
- package/build/core/FxCore.declarativeAgent.d.ts.map +1 -0
- package/build/core/FxCore.declarativeAgent.js +210 -0
- package/build/core/FxCore.declarativeAgent.js.map +1 -0
- package/build/core/FxCore.js +45 -231
- package/build/core/FxCore.js.map +1 -1
- package/build/core/generateConfigFiles.d.ts +4 -0
- package/build/core/generateConfigFiles.d.ts.map +1 -0
- package/build/core/generateConfigFiles.js +64 -0
- package/build/core/generateConfigFiles.js.map +1 -0
- package/build/core/middleware/projectSettingsLoader.d.ts.map +1 -1
- package/build/core/middleware/projectSettingsLoader.js +8 -2
- package/build/core/middleware/projectSettingsLoader.js.map +1 -1
- package/build/question/other.d.ts.map +1 -1
- package/build/question/other.js +0 -2
- package/build/question/other.js.map +1 -1
- package/build/question/questionNames.d.ts +0 -3
- package/build/question/questionNames.d.ts.map +1 -1
- package/build/question/questionNames.js +0 -3
- package/build/question/questionNames.js.map +1 -1
- package/build/question/scaffold/vsc/ProjectTypeOptions.d.ts +0 -1
- package/build/question/scaffold/vsc/ProjectTypeOptions.d.ts.map +1 -1
- package/build/question/scaffold/vsc/ProjectTypeOptions.js +1 -14
- package/build/question/scaffold/vsc/ProjectTypeOptions.js.map +1 -1
- package/build/question/scaffold/vsc/createRootNode.d.ts.map +1 -1
- package/build/question/scaffold/vsc/createRootNode.js +1 -5
- package/build/question/scaffold/vsc/createRootNode.js.map +1 -1
- package/build/question/scaffold/vsc/daProjectTypeNode.d.ts.map +1 -1
- package/build/question/scaffold/vsc/daProjectTypeNode.js +1 -2
- package/build/question/scaffold/vsc/daProjectTypeNode.js.map +1 -1
- package/build/question/scaffold/vsc/officeAddinProjectTypeNode.d.ts +0 -1
- package/build/question/scaffold/vsc/officeAddinProjectTypeNode.d.ts.map +1 -1
- package/build/question/scaffold/vsc/officeAddinProjectTypeNode.js +2 -51
- package/build/question/scaffold/vsc/officeAddinProjectTypeNode.js.map +1 -1
- package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts.map +1 -1
- package/build/question/scaffold/vsc/teamsProjectTypeNode.js +5 -16
- package/build/question/scaffold/vsc/teamsProjectTypeNode.js.map +1 -1
- package/package.json +5 -5
- package/resource/package.nls.cs.json +4 -4
- package/resource/package.nls.de.json +16 -16
- package/resource/package.nls.es.json +15 -15
- package/resource/package.nls.fr.json +4 -4
- package/resource/package.nls.it.json +4 -4
- package/resource/package.nls.ja.json +5 -5
- package/resource/package.nls.json +4 -4
- package/resource/package.nls.ko.json +15 -15
- package/resource/package.nls.pl.json +15 -15
- package/resource/package.nls.pt-BR.json +11 -11
- package/resource/package.nls.ru.json +6 -6
- package/resource/package.nls.tr.json +4 -4
- package/resource/package.nls.zh-Hans.json +4 -4
- package/resource/package.nls.zh-Hant.json +9 -9
- package/templates/configs/local/python/.vscode/launch.json.tpl +93 -0
- package/templates/configs/local/python/.vscode/tasks.json.tpl +103 -0
- package/templates/configs/local/python/env/.env.local +6 -0
- package/templates/configs/local/python/m365agents.local.yml.tpl +121 -0
- package/templates/configs/local/typescript/.gitignore +1 -0
- package/templates/configs/local/typescript/.vscode/launch.json.tpl +147 -0
- package/templates/configs/local/typescript/.vscode/tasks.json.tpl +129 -0
- package/templates/configs/local/typescript/env/.env.local +6 -0
- package/templates/configs/local/typescript/m365agents.local.yml.tpl +129 -0
- package/templates/configs/local/typescript/package.json +8 -0
- package/templates/configs/playground/python/.vscode/launch.json +46 -0
- package/templates/configs/playground/python/.vscode/tasks.json +35 -0
- package/templates/configs/playground/python/env/.env.playground +7 -0
- package/templates/configs/playground/python/env/.env.playground.user +0 -0
- package/templates/configs/playground/python/m365agents.playground.yml +14 -0
- package/templates/configs/playground/typescript/.gitignore +4 -0
- package/templates/configs/playground/typescript/.vscode/launch.json +31 -0
- package/templates/configs/playground/typescript/.vscode/tasks.json +104 -0
- package/templates/configs/playground/typescript/env/.env.playground +7 -0
- package/templates/configs/playground/typescript/env/.env.playground.user +0 -0
- package/templates/configs/playground/typescript/m365agents.playground.yml +23 -0
- package/templates/configs/playground/typescript/package.json +9 -0
- package/templates/configs/remote/python/.vscode/launch.json.tpl +70 -0
- package/templates/configs/remote/python/.webappignore +11 -0
- package/templates/configs/remote/python/env/.env.dev +11 -0
- package/templates/configs/remote/python/infra/azure.bicep.tpl +108 -0
- package/templates/configs/remote/python/infra/azure.parameters.json.tpl +20 -0
- package/templates/configs/remote/python/infra/botRegistration/azurebot.bicep +42 -0
- package/templates/configs/remote/python/infra/botRegistration/readme.md +1 -0
- package/templates/configs/remote/python/m365agents.yml.tpl +131 -0
- package/templates/configs/remote/typescript/.vscode/launch.json.tpl +70 -0
- package/templates/configs/remote/typescript/.webappignore +27 -0
- package/templates/configs/remote/typescript/env/.env.dev +11 -0
- package/templates/configs/remote/typescript/infra/azure.bicep.tpl +105 -0
- package/templates/configs/remote/typescript/infra/azure.parameters.json.tpl +17 -0
- package/templates/configs/remote/typescript/infra/botRegistration/azurebot.bicep +42 -0
- package/templates/configs/remote/typescript/infra/botRegistration/readme.md +1 -0
- package/templates/configs/remote/typescript/m365agents.yml.tpl +142 -0
- package/templates/configs/remote/typescript/web.config +60 -0
- package/templates/fallback/common.zip +0 -0
- package/templates/fallback/csharp.zip +0 -0
- package/templates/fallback/js.zip +0 -0
- package/templates/fallback/python.zip +0 -0
- package/templates/fallback/ts.zip +0 -0
- package/templates/metadata.zip +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configGenerator.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/configFiles/configGenerator.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,OAAO,EAEP,OAAO,EACP,eAAe,EAEf,MAAM,EAEP,MAAM,wBAAwB,CAAC;AAchC,qBAAa,eAAe;IAC1B,aAAa,SAAqB;IAWrB,GAAG,CACd,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,EAAE,EAC3D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IA6E5C,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,YAAY;YAIN,kBAAkB;IAsBhC,OAAO,CAAC,+BAA+B;YAKzB,2BAA2B;CAuD1C;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT license.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.configGenerator = exports.ConfigGenerator = void 0;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const lib_1 = require("@feathersjs/hooks/lib");
|
|
8
|
+
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
9
|
+
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
10
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
11
|
+
const uuid = tslib_1.__importStar(require("uuid"));
|
|
12
|
+
const localizeUtils_1 = require("../../../common/localizeUtils");
|
|
13
|
+
const telemetry_1 = require("../../../common/telemetry");
|
|
14
|
+
const folder_1 = require("../../../folder");
|
|
15
|
+
const messages_1 = require("../../messages");
|
|
16
|
+
const actionExecutionMW_1 = require("../../middleware/actionExecutionMW");
|
|
17
|
+
const settingsUtil_1 = require("../../utils/settingsUtil");
|
|
18
|
+
const copyPolicy_1 = require("./copyPolicy");
|
|
19
|
+
const jsonMerger_1 = require("./jsonMerger");
|
|
20
|
+
const renderTemplate_1 = require("./renderTemplate");
|
|
21
|
+
class ConfigGenerator {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.componentName = "ConfigGenerator";
|
|
24
|
+
}
|
|
25
|
+
async run(context, destinationPath, components, features) {
|
|
26
|
+
await context.userInteraction.showMessage("info", "Generating configuration files...", false);
|
|
27
|
+
// telemetry props
|
|
28
|
+
const successComponents = [];
|
|
29
|
+
const failedComponents = [];
|
|
30
|
+
// Process all components: detect conflicts and generate files in a single pass
|
|
31
|
+
for (const component of components) {
|
|
32
|
+
const policyKey = this.getPolicyKey(component);
|
|
33
|
+
const policy = copyPolicy_1.policys[policyKey];
|
|
34
|
+
if (!policy) {
|
|
35
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError(this.componentName, "UnknownPolicyError", (0, localizeUtils_1.getDefaultString)("error.generator.UnknownPolicy", policyKey)));
|
|
36
|
+
}
|
|
37
|
+
const fileDetectionResult = await this.detectFileConflict(destinationPath, policy);
|
|
38
|
+
if (fileDetectionResult.isErr()) {
|
|
39
|
+
await context.userInteraction.showMessage("warn", fileDetectionResult.error.message, false);
|
|
40
|
+
failedComponents.push(policyKey);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const sourcePath = path_1.default.join((0, folder_1.getTemplatesFolder)(), "configs", component.name, component.programmingLanguage);
|
|
44
|
+
await context.userInteraction.showMessage("info", `Processing ${component.name} (${component.programmingLanguage})...`, false);
|
|
45
|
+
const changes = await this.generateConfigFilesByPolicy(sourcePath, destinationPath, policy, features);
|
|
46
|
+
// Show what files were changed
|
|
47
|
+
for (const change of changes) {
|
|
48
|
+
const action = change.action === "added"
|
|
49
|
+
? "Added"
|
|
50
|
+
: change.action === "modified"
|
|
51
|
+
? "Modified"
|
|
52
|
+
: "Skipped";
|
|
53
|
+
await context.userInteraction.showMessage("info", ` ${action}: ${change.file}`, false);
|
|
54
|
+
}
|
|
55
|
+
successComponents.push(policyKey);
|
|
56
|
+
}
|
|
57
|
+
const settingsRes = await settingsUtil_1.settingsUtil.readSettings(destinationPath, false);
|
|
58
|
+
if (settingsRes.isErr())
|
|
59
|
+
return (0, teamsfx_api_1.err)(settingsRes.error);
|
|
60
|
+
const settings = settingsRes.value;
|
|
61
|
+
if (!settings.trackingId) {
|
|
62
|
+
settings.trackingId = uuid.v4();
|
|
63
|
+
}
|
|
64
|
+
await settingsUtil_1.settingsUtil.writeSettings(destinationPath, settings);
|
|
65
|
+
context.telemetryReporter.sendTelemetryEvent(telemetry_1.TelemetryEvent.GenerateConfigSummary, {
|
|
66
|
+
[telemetry_1.ProjectTypeProps.TeamsManifestCapabilities]: this.getCapabilities(features).join(",") || "",
|
|
67
|
+
successComponents: successComponents.join(",") || "",
|
|
68
|
+
failedComponents: failedComponents.join(",") || "",
|
|
69
|
+
trackingId: settings.trackingId || "",
|
|
70
|
+
});
|
|
71
|
+
return (0, teamsfx_api_1.ok)({});
|
|
72
|
+
}
|
|
73
|
+
getCapabilities(features) {
|
|
74
|
+
const capabilities = [];
|
|
75
|
+
if (features["hasTab"])
|
|
76
|
+
capabilities.push("Tab");
|
|
77
|
+
if (features["hasBot"])
|
|
78
|
+
capabilities.push("Bot");
|
|
79
|
+
if (features["hasMessageExtension"])
|
|
80
|
+
capabilities.push("ME");
|
|
81
|
+
if (features["hasDeclarativeAgent"])
|
|
82
|
+
capabilities.push("DA");
|
|
83
|
+
if (features["hasCustomEngineAgent"])
|
|
84
|
+
capabilities.push("CEA");
|
|
85
|
+
return capabilities;
|
|
86
|
+
}
|
|
87
|
+
getPolicyKey(component) {
|
|
88
|
+
return `${component.name}-${component.programmingLanguage}`;
|
|
89
|
+
}
|
|
90
|
+
async detectFileConflict(destinationPath, policy) {
|
|
91
|
+
for (const [filePath, copyPolicy] of Object.entries(policy)) {
|
|
92
|
+
if (!copyPolicy.allowExistingFile) {
|
|
93
|
+
const fullPath = path_1.default.join(destinationPath, filePath);
|
|
94
|
+
const fileExists = await fs_extra_1.default.pathExists(fullPath);
|
|
95
|
+
if (fileExists) {
|
|
96
|
+
return (0, teamsfx_api_1.err)(new teamsfx_api_1.UserError(this.componentName, "ConflictFileError", (0, localizeUtils_1.getDefaultString)("error.generator.FileConflictError", filePath)));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return (0, teamsfx_api_1.ok)(undefined);
|
|
101
|
+
}
|
|
102
|
+
getFileExtensionWithoutTemplate(filePath) {
|
|
103
|
+
const withoutTemplate = filePath.endsWith(".tpl") ? filePath.slice(0, -4) : filePath;
|
|
104
|
+
return path_1.default.extname(withoutTemplate);
|
|
105
|
+
}
|
|
106
|
+
async generateConfigFilesByPolicy(sourcePath, destinationPath, policy, features) {
|
|
107
|
+
const changes = [];
|
|
108
|
+
for (const [filePath, copyPolicy] of Object.entries(policy)) {
|
|
109
|
+
const isTemplate = filePath.endsWith(".tpl");
|
|
110
|
+
let srcFilePath = path_1.default.join(sourcePath, filePath);
|
|
111
|
+
const destFilePath = path_1.default.join(destinationPath, isTemplate ? filePath.slice(0, -4) : filePath);
|
|
112
|
+
const fileExtension = this.getFileExtensionWithoutTemplate(filePath);
|
|
113
|
+
let renderedFilePath = null;
|
|
114
|
+
// Render template if needed
|
|
115
|
+
if (isTemplate) {
|
|
116
|
+
renderedFilePath = destFilePath + ".rendered";
|
|
117
|
+
const renderedContent = (0, renderTemplate_1.renderTemplate)(srcFilePath, features);
|
|
118
|
+
await fs_extra_1.default.outputFile(renderedFilePath, renderedContent, "utf-8");
|
|
119
|
+
srcFilePath = renderedFilePath;
|
|
120
|
+
}
|
|
121
|
+
try {
|
|
122
|
+
// Handle existing files
|
|
123
|
+
const fileExists = await fs_extra_1.default.pathExists(destFilePath);
|
|
124
|
+
const relativeFilePath = path_1.default.relative(destinationPath, destFilePath);
|
|
125
|
+
if (fileExists) {
|
|
126
|
+
if (copyPolicy.policy === "add" && fileExtension === ".json") {
|
|
127
|
+
await (0, jsonMerger_1.mergeJsonFile)(srcFilePath, destFilePath);
|
|
128
|
+
changes.push({ file: relativeFilePath, action: "modified" });
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// For "skip" or non-JSON files, do nothing
|
|
132
|
+
changes.push({ file: relativeFilePath, action: "skipped" });
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
// If the file does not exist, just copy it.
|
|
137
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(destFilePath));
|
|
138
|
+
await fs_extra_1.default.copy(srcFilePath, destFilePath);
|
|
139
|
+
changes.push({ file: relativeFilePath, action: "added" });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
finally {
|
|
143
|
+
// Clean up rendered temp file
|
|
144
|
+
if (renderedFilePath !== null) {
|
|
145
|
+
await fs_extra_1.default.remove(renderedFilePath);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return changes;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
tslib_1.__decorate([
|
|
153
|
+
(0, lib_1.hooks)([
|
|
154
|
+
(0, actionExecutionMW_1.ActionExecutionMW)({
|
|
155
|
+
enableProgressBar: true,
|
|
156
|
+
progressTitle: messages_1.ProgressTitles.create,
|
|
157
|
+
progressSteps: 1,
|
|
158
|
+
enableTelemetry: true,
|
|
159
|
+
telemetryEventName: telemetry_1.TelemetryEvent.GenerateConfig,
|
|
160
|
+
}),
|
|
161
|
+
]),
|
|
162
|
+
tslib_1.__metadata("design:type", Function),
|
|
163
|
+
tslib_1.__metadata("design:paramtypes", [Object, String, Array, Object]),
|
|
164
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
165
|
+
], ConfigGenerator.prototype, "run", null);
|
|
166
|
+
exports.ConfigGenerator = ConfigGenerator;
|
|
167
|
+
exports.configGenerator = new ConfigGenerator();
|
|
168
|
+
//# sourceMappingURL=configGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configGenerator.js","sourceRoot":"","sources":["../../../../src/component/generator/configFiles/configGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface CopyPolicy {
|
|
2
|
+
allowExistingFile: boolean;
|
|
3
|
+
policy: "add" | "skip" | "error";
|
|
4
|
+
}
|
|
5
|
+
export declare const playgroundNode: Record<string, CopyPolicy>;
|
|
6
|
+
export declare const localNode: Record<string, CopyPolicy>;
|
|
7
|
+
export declare const remoteNode: Record<string, CopyPolicy>;
|
|
8
|
+
export declare const playgroundPython: Record<string, CopyPolicy>;
|
|
9
|
+
export declare const localPython: Record<string, CopyPolicy>;
|
|
10
|
+
export declare const remotePython: Record<string, CopyPolicy>;
|
|
11
|
+
export declare const policys: Record<string, Record<string, CopyPolicy>>;
|
|
12
|
+
//# sourceMappingURL=copyPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copyPolicy.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/configFiles/copyPolicy.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAOrD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAMhD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAUjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAMvD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAKlD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CASnD,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAO9D,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT license.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.policys = exports.remotePython = exports.localPython = exports.playgroundPython = exports.remoteNode = exports.localNode = exports.playgroundNode = void 0;
|
|
6
|
+
exports.playgroundNode = {
|
|
7
|
+
"package.json": { allowExistingFile: true, policy: "add" },
|
|
8
|
+
".vscode/launch.json": { allowExistingFile: true, policy: "add" },
|
|
9
|
+
".vscode/tasks.json": { allowExistingFile: true, policy: "add" },
|
|
10
|
+
"env/.env.playground": { allowExistingFile: false, policy: "skip" },
|
|
11
|
+
"env/.env.playground.user": { allowExistingFile: false, policy: "skip" },
|
|
12
|
+
"m365agents.playground.yml": { allowExistingFile: false, policy: "error" },
|
|
13
|
+
};
|
|
14
|
+
exports.localNode = {
|
|
15
|
+
"package.json": { allowExistingFile: true, policy: "add" },
|
|
16
|
+
".vscode/launch.json.tpl": { allowExistingFile: true, policy: "add" },
|
|
17
|
+
".vscode/tasks.json.tpl": { allowExistingFile: true, policy: "add" },
|
|
18
|
+
"env/.env.local": { allowExistingFile: false, policy: "skip" },
|
|
19
|
+
"m365agents.local.yml.tpl": { allowExistingFile: false, policy: "error" },
|
|
20
|
+
};
|
|
21
|
+
exports.remoteNode = {
|
|
22
|
+
".vscode/launch.json.tpl": { allowExistingFile: true, policy: "add" },
|
|
23
|
+
"env/.env.dev": { allowExistingFile: false, policy: "skip" },
|
|
24
|
+
"infra/azure.bicep.tpl": { allowExistingFile: false, policy: "skip" },
|
|
25
|
+
"infra/azure.parameters.json.tpl": { allowExistingFile: false, policy: "skip" },
|
|
26
|
+
"infra/botRegistration/azureBot.bicep": { allowExistingFile: false, policy: "skip" },
|
|
27
|
+
"infra/botRegistration/readme.md": { allowExistingFile: false, policy: "skip" },
|
|
28
|
+
"m365agents.yml.tpl": { allowExistingFile: false, policy: "error" },
|
|
29
|
+
"web.config": { allowExistingFile: true, policy: "skip" },
|
|
30
|
+
".webappignore": { allowExistingFile: true, policy: "skip" },
|
|
31
|
+
};
|
|
32
|
+
exports.playgroundPython = {
|
|
33
|
+
".vscode/launch.json": { allowExistingFile: true, policy: "add" },
|
|
34
|
+
".vscode/tasks.json": { allowExistingFile: true, policy: "add" },
|
|
35
|
+
"env/.env.playground": { allowExistingFile: false, policy: "skip" },
|
|
36
|
+
"env/.env.playground.user": { allowExistingFile: false, policy: "skip" },
|
|
37
|
+
"m365agents.playground.yml": { allowExistingFile: false, policy: "error" },
|
|
38
|
+
};
|
|
39
|
+
exports.localPython = {
|
|
40
|
+
".vscode/launch.json.tpl": { allowExistingFile: true, policy: "add" },
|
|
41
|
+
".vscode/tasks.json.tpl": { allowExistingFile: true, policy: "add" },
|
|
42
|
+
"env/.env.local": { allowExistingFile: false, policy: "skip" },
|
|
43
|
+
"m365agents.local.yml.tpl": { allowExistingFile: false, policy: "error" },
|
|
44
|
+
};
|
|
45
|
+
exports.remotePython = {
|
|
46
|
+
".vscode/launch.json.tpl": { allowExistingFile: true, policy: "add" },
|
|
47
|
+
"env/.env.dev": { allowExistingFile: false, policy: "skip" },
|
|
48
|
+
"infra/azure.bicep.tpl": { allowExistingFile: false, policy: "skip" },
|
|
49
|
+
"infra/azure.parameters.json.tpl": { allowExistingFile: false, policy: "skip" },
|
|
50
|
+
"infra/botRegistration/azureBot.bicep": { allowExistingFile: false, policy: "skip" },
|
|
51
|
+
"infra/botRegistration/readme.md": { allowExistingFile: false, policy: "skip" },
|
|
52
|
+
"m365agents.yml.tpl": { allowExistingFile: false, policy: "error" },
|
|
53
|
+
".webappignore": { allowExistingFile: true, policy: "skip" },
|
|
54
|
+
};
|
|
55
|
+
exports.policys = {
|
|
56
|
+
"playground-typescript": exports.playgroundNode,
|
|
57
|
+
"local-typescript": exports.localNode,
|
|
58
|
+
"remote-typescript": exports.remoteNode,
|
|
59
|
+
"playground-python": exports.playgroundPython,
|
|
60
|
+
"local-python": exports.localPython,
|
|
61
|
+
"remote-python": exports.remotePython,
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=copyPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copyPolicy.js","sourceRoot":"","sources":["../../../../src/component/generator/configFiles/copyPolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merge source JSON file (with comments) into target JSON file (with comments) at node level.
|
|
3
|
+
* Rules:
|
|
4
|
+
* - If a top-level or nested property in source does not exist in target, add it (preserving source value).
|
|
5
|
+
* - If property exists and both values are arrays, append source array elements to target array (with de-duplication).
|
|
6
|
+
* - If property exists and both values are plain objects, recurse.
|
|
7
|
+
* - Otherwise (primitive / mismatched types), keep the existing target value (no overwrite).
|
|
8
|
+
* - Comments present in the existing target file are preserved. New properties won't have comments unless provided in target.
|
|
9
|
+
*/
|
|
10
|
+
export declare function mergeJsonFile(sourcePath: string, targetPath: string): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=jsonMerger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonMerger.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/configFiles/jsonMerger.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBzF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT license.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.mergeJsonFile = void 0;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const commentJson = tslib_1.__importStar(require("comment-json"));
|
|
8
|
+
const fs = tslib_1.__importStar(require("fs-extra"));
|
|
9
|
+
/**
|
|
10
|
+
* Merge source JSON file (with comments) into target JSON file (with comments) at node level.
|
|
11
|
+
* Rules:
|
|
12
|
+
* - If a top-level or nested property in source does not exist in target, add it (preserving source value).
|
|
13
|
+
* - If property exists and both values are arrays, append source array elements to target array (with de-duplication).
|
|
14
|
+
* - If property exists and both values are plain objects, recurse.
|
|
15
|
+
* - Otherwise (primitive / mismatched types), keep the existing target value (no overwrite).
|
|
16
|
+
* - Comments present in the existing target file are preserved. New properties won't have comments unless provided in target.
|
|
17
|
+
*/
|
|
18
|
+
async function mergeJsonFile(sourcePath, targetPath) {
|
|
19
|
+
if (!(await fs.pathExists(sourcePath)))
|
|
20
|
+
return; // nothing to merge
|
|
21
|
+
if (!(await fs.pathExists(targetPath))) {
|
|
22
|
+
// If target does not exist just copy source over
|
|
23
|
+
await fs.copy(sourcePath, targetPath);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const rawSource = await fs.readFile(sourcePath, "utf8");
|
|
27
|
+
const rawTarget = await fs.readFile(targetPath, "utf8");
|
|
28
|
+
// Parse with comment-json to retain comments/whitespace metadata where possible
|
|
29
|
+
// Do NOT pass 'true' as third param (that would strip comments)
|
|
30
|
+
const source = commentJson.parse(rawSource);
|
|
31
|
+
const target = commentJson.parse(rawTarget);
|
|
32
|
+
const merged = mergeNodes(target, source);
|
|
33
|
+
const output = commentJson.stringify(merged, null, 2) + "\n";
|
|
34
|
+
await fs.writeFile(targetPath, output, "utf8");
|
|
35
|
+
}
|
|
36
|
+
exports.mergeJsonFile = mergeJsonFile;
|
|
37
|
+
function isPlainObject(val) {
|
|
38
|
+
return !!val && typeof val === "object" && !Array.isArray(val);
|
|
39
|
+
}
|
|
40
|
+
function arrayContains(arr, el) {
|
|
41
|
+
// For primitives, use strict equality
|
|
42
|
+
if (typeof el !== "object" || el === null) {
|
|
43
|
+
return arr.includes(el);
|
|
44
|
+
}
|
|
45
|
+
// For objects/arrays, use deep equality check
|
|
46
|
+
return arr.some((item) => JSON.stringify(item) === JSON.stringify(el));
|
|
47
|
+
}
|
|
48
|
+
function mergeNodes(target, source) {
|
|
49
|
+
if (Array.isArray(target) && Array.isArray(source)) {
|
|
50
|
+
// Append all elements from source (retain order, no duplicates)
|
|
51
|
+
for (const el of source) {
|
|
52
|
+
if (!arrayContains(target, el)) {
|
|
53
|
+
target.push(el);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return target;
|
|
57
|
+
}
|
|
58
|
+
if (isPlainObject(target) && isPlainObject(source)) {
|
|
59
|
+
for (const key of Object.keys(source)) {
|
|
60
|
+
const sVal = source[key];
|
|
61
|
+
if (!(key in target)) {
|
|
62
|
+
target[key] = sVal;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const tVal = target[key];
|
|
66
|
+
if (Array.isArray(tVal) && Array.isArray(sVal)) {
|
|
67
|
+
for (const el of sVal) {
|
|
68
|
+
if (!arrayContains(tVal, el)) {
|
|
69
|
+
tVal.push(el);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (isPlainObject(tVal) && isPlainObject(sVal)) {
|
|
74
|
+
mergeNodes(tVal, sVal);
|
|
75
|
+
} // else keep existing primitive / mismatched types
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return target;
|
|
79
|
+
}
|
|
80
|
+
// For primitives or mismatched types: do not overwrite target per requirements
|
|
81
|
+
return target;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=jsonMerger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonMerger.js","sourceRoot":"","sources":["../../../../src/component/generator/configFiles/jsonMerger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderTemplate.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/configFiles/renderTemplate.ts"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAK7F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT license.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.renderTemplate = void 0;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
8
|
+
const handlebars_1 = tslib_1.__importDefault(require("handlebars"));
|
|
9
|
+
function renderTemplate(templateFilePath, context) {
|
|
10
|
+
const templateContent = fs_extra_1.default.readFileSync(templateFilePath, "utf-8");
|
|
11
|
+
const template = handlebars_1.default.compile(templateContent);
|
|
12
|
+
const renderedContent = template(context);
|
|
13
|
+
return renderedContent;
|
|
14
|
+
}
|
|
15
|
+
exports.renderTemplate = renderTemplate;
|
|
16
|
+
//# sourceMappingURL=renderTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderTemplate.js","sourceRoot":"","sources":["../../../../src/component/generator/configFiles/renderTemplate.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC,gEAA0B;AAC1B,oEAAoC;AAEpC,SAAgB,cAAc,CAAC,gBAAwB,EAAE,OAA4B;IACnF,MAAM,eAAe,GAAG,kBAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,oBAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,eAAe,CAAC;AACzB,CAAC;AALD,wCAKC"}
|
|
@@ -15,5 +15,10 @@ export declare class DeclarativeAgentGenerator extends DefaultTemplateGenerator
|
|
|
15
15
|
activate(context: Context, inputs: Inputs): boolean;
|
|
16
16
|
getTemplateInfos(context: Context, inputs: Inputs, destinationPath: string, actionContext?: ActionContext): Promise<Result<TemplateInfo[], FxError>>;
|
|
17
17
|
post(context: Context, inputs: Inputs, destinationPath: string, actionContext?: ActionContext): Promise<Result<GeneratorResult, FxError>>;
|
|
18
|
+
/**
|
|
19
|
+
* Process selected MCP local servers from inputs and format for template
|
|
20
|
+
* Handles both single and multiple server selection for backward compatibility
|
|
21
|
+
*/
|
|
22
|
+
private processMCPLocalServers;
|
|
18
23
|
}
|
|
19
24
|
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/declarativeAgent/generator.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,OAAO,EAEL,OAAO,
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/declarativeAgent/generator.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,OAAO,EAEL,OAAO,EAEP,OAAO,EACP,eAAe,EACf,MAAM,EAKN,MAAM,EAGP,MAAM,wBAAwB,CAAC;AAchC,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAYzD;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,wBAAwB;IACrE,aAAa,SAA8C;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAY7C,gBAAgB,CACpC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;IA8DrB,IAAI,CACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAoE5C;;;OAGG;IACH,OAAO,CAAC,sBAAsB;CAqE/B"}
|
|
@@ -8,20 +8,20 @@ const tslib_1 = require("tslib");
|
|
|
8
8
|
* @author yuqzho@microsoft.com
|
|
9
9
|
*/
|
|
10
10
|
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
11
|
+
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
11
12
|
const lodash_1 = require("lodash");
|
|
12
13
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
14
|
+
const featureFlags_1 = require("../../../common/featureFlags");
|
|
15
|
+
const stringUtils_1 = require("../../../common/stringUtils");
|
|
13
16
|
const question_1 = require("../../../question");
|
|
17
|
+
const constants_1 = require("../../driver/teamsApp/constants");
|
|
14
18
|
const CopilotGptManifestUtils_1 = require("../../driver/teamsApp/utils/CopilotGptManifestUtils");
|
|
15
19
|
const common_1 = require("../../utils/common");
|
|
16
20
|
const defaultGenerator_1 = require("../defaultGenerator");
|
|
17
21
|
const generator_1 = require("../generator");
|
|
18
22
|
const templateNames_1 = require("../templates/templateNames");
|
|
19
|
-
const helper_1 = require("./helper");
|
|
20
|
-
const constants_1 = require("../../driver/teamsApp/constants");
|
|
21
|
-
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
22
|
-
const featureFlags_1 = require("../../../common/featureFlags");
|
|
23
|
-
const stringUtils_1 = require("../../../common/stringUtils");
|
|
24
23
|
const utils_1 = require("../utils");
|
|
24
|
+
const helper_1 = require("./helper");
|
|
25
25
|
/**
|
|
26
26
|
* Generator for copilot extensions including declarative copilot with no plugin,
|
|
27
27
|
* declarative copilot with API plugin from scratch, declarative copilot with existing plugin,
|
|
@@ -52,37 +52,36 @@ class DeclarativeAgentGenerator extends defaultGenerator_1.DefaultTemplateGenera
|
|
|
52
52
|
const MCPServerType = inputs[question_1.QuestionNames.MCPServerType];
|
|
53
53
|
const isLocalMCP = MCPServerType === "local";
|
|
54
54
|
const MCPForDAServerUrl = inputs[question_1.QuestionNames.MCPForDAServerUrl];
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
]));
|
|
55
|
+
try {
|
|
56
|
+
const replaceMap = Object.assign(Object.assign(Object.assign({}, generator_1.Generator.getDefaultVariables(inputs[question_1.QuestionNames.TemplateName] === templateNames_1.TemplateNames.DeclarativeAgentWithTypeSpec
|
|
57
|
+
? (0, stringUtils_1.convertToAlphanumericOnly)(appName)
|
|
58
|
+
: appName, safeProjectNameFromVS, solutionNameFromVS, inputs.targetFramework, inputs.placeProjectFileInSolutionDir === "true")), { DeclarativeCopilot: "true", MicrosoftEntra: auth === question_1.ApiAuthOptions.microsoftEntra().id ? "true" : "", IsLocalMCP: isLocalMCP ? "true" : "" }), (isLocalMCP
|
|
59
|
+
? this.processMCPLocalServers(inputs)
|
|
60
|
+
: MCPForDAServerUrl
|
|
61
|
+
? {
|
|
62
|
+
MCPForDAServerUrl,
|
|
63
|
+
ServerName: new URL(MCPForDAServerUrl).host
|
|
64
|
+
.replace(/[^a-zA-Z0-9]/g, "")
|
|
65
|
+
.substring(0, 10),
|
|
66
|
+
}
|
|
67
|
+
: {}));
|
|
68
|
+
const templateName = inputs[question_1.QuestionNames.TemplateName];
|
|
69
|
+
(0, lodash_1.merge)(actionContext === null || actionContext === void 0 ? void 0 : actionContext.telemetryProps, {
|
|
70
|
+
["template-name" /* telemetryProperties.templateName */]: templateName,
|
|
71
|
+
["is-microsoft-entra" /* telemetryProperties.isMicrosoftEntra */]: auth === question_1.ApiAuthOptions.microsoftEntra().id ? "true" : "",
|
|
72
|
+
["need-add-plugin-from-existing" /* telemetryProperties.needAddPluginFromExisting */]: inputs[question_1.QuestionNames.ActionType] === question_1.ActionStartOptions.existingPlugin().id.toString(),
|
|
73
|
+
});
|
|
74
|
+
return Promise.resolve((0, teamsfx_api_1.ok)([
|
|
75
|
+
{
|
|
76
|
+
templateName,
|
|
77
|
+
language: language,
|
|
78
|
+
replaceMap,
|
|
79
|
+
},
|
|
80
|
+
]));
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
return (0, teamsfx_api_1.err)(error);
|
|
84
|
+
}
|
|
86
85
|
}
|
|
87
86
|
async post(context, inputs, destinationPath, actionContext) {
|
|
88
87
|
const teamsManifestPath = path_1.default.join(destinationPath, teamsfx_api_1.AppPackageFolderName, teamsfx_api_1.ManifestTemplateFileName);
|
|
@@ -130,6 +129,47 @@ class DeclarativeAgentGenerator extends defaultGenerator_1.DefaultTemplateGenera
|
|
|
130
129
|
return (0, teamsfx_api_1.ok)({});
|
|
131
130
|
}
|
|
132
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Process selected MCP local servers from inputs and format for template
|
|
134
|
+
* Handles both single and multiple server selection for backward compatibility
|
|
135
|
+
*/
|
|
136
|
+
processMCPLocalServers(inputs) {
|
|
137
|
+
const selectedOptions = inputs[question_1.QuestionNames.MCPLocalServer];
|
|
138
|
+
if (selectedOptions && !Array.isArray(selectedOptions)) {
|
|
139
|
+
throw new teamsfx_api_1.SystemError(this.componentName, "processMCPLocalServers", "Expected MCPLocalServer input to be an array");
|
|
140
|
+
}
|
|
141
|
+
// Handle empty/invalid selection
|
|
142
|
+
if (!selectedOptions || selectedOptions.length === 0) {
|
|
143
|
+
return {
|
|
144
|
+
MCPLocalServers: [],
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
// Map selected options to server configs
|
|
148
|
+
const servers = selectedOptions.map((option, index) => {
|
|
149
|
+
// Validate option structure
|
|
150
|
+
if (!option.data || typeof option.data !== "string") {
|
|
151
|
+
throw new teamsfx_api_1.SystemError(this.componentName, "processMCPLocalServers", "Invalid option data structure");
|
|
152
|
+
}
|
|
153
|
+
const serverData = JSON.parse(option.data);
|
|
154
|
+
// Validate parsed data
|
|
155
|
+
if (!serverData.identifier || !Array.isArray(serverData.args)) {
|
|
156
|
+
throw new teamsfx_api_1.SystemError(this.componentName, "processMCPLocalServers", "Invalid server data format");
|
|
157
|
+
}
|
|
158
|
+
if (!serverData.command || typeof serverData.command !== "string") {
|
|
159
|
+
throw new teamsfx_api_1.UserError(this.componentName, "processMCPLocalServers", "Invalid or missing command in server data");
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
name: option.id,
|
|
163
|
+
identifier: serverData.identifier,
|
|
164
|
+
command: serverData.command,
|
|
165
|
+
args: serverData.args.map((arg) => `"${arg}"`).join(", "),
|
|
166
|
+
notLast: index < selectedOptions.length - 1,
|
|
167
|
+
};
|
|
168
|
+
});
|
|
169
|
+
return {
|
|
170
|
+
MCPLocalServers: servers,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
133
173
|
}
|
|
134
174
|
exports.DeclarativeAgentGenerator = DeclarativeAgentGenerator;
|
|
135
175
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/component/generator/declarativeAgent/generator.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC;;GAEG;AAEH,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/component/generator/declarativeAgent/generator.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC;;GAEG;AAEH,wDAcgC;AAChC,gEAA0B;AAC1B,mCAA+B;AAC/B,wDAAwB;AACxB,+DAAgF;AAChF,6DAAwE;AACxE,gDAK2B;AAC3B,+DAAsF;AACtF,iGAA8F;AAE9F,+CAAqE;AACrE,0DAA+D;AAC/D,4CAAyC;AAEzC,8DAA2D;AAC3D,oCAAsD;AACtD,qCAA6C;AAS7C;;;;GAIG;AACH,MAAa,yBAA0B,SAAQ,2CAAwB;IAAvE;;QACE,kBAAa,GAAG,0CAA0C,CAAC;IAkO7D,CAAC;IAjOiB,QAAQ,CAAC,OAAgB,EAAE,MAAc;QACvD,OAAO;YACL,6BAAa,CAAC,qBAAqB;YACnC,6BAAa,CAAC,qCAAqC;YACnD,6BAAa,CAAC,2CAA2C;YACzD,6BAAa,CAAC,0CAA0C;YACxD,6BAAa,CAAC,kCAAkC;YAChD,6BAAa,CAAC,4BAA4B;YAC1C,6BAAa,CAAC,iCAAiC;SAChD,CAAC,QAAQ,CAAC,MAAM,CAAC,wBAAa,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,CAAC;IAEe,KAAK,CAAC,gBAAgB,CACpC,OAAgB,EAChB,MAAc,EACd,eAAuB,EACvB,aAA6B;QAE7B,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,wBAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,wBAAa,CAAC,mBAAmB,CAAwB,CAAC;QAClF,MAAM,qBAAqB,GACzB,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,kBAAkB,GACtB,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzE,MAAM,aAAa,GAAG,MAAM,CAAC,wBAAa,CAAC,aAAa,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,aAAa,KAAK,OAAO,CAAC;QAC7C,MAAM,iBAAiB,GAAG,MAAM,CAAC,wBAAa,CAAC,iBAAiB,CAAC,CAAC;QAElE,IAAI;YACF,MAAM,UAAU,iDACX,qBAAS,CAAC,mBAAmB,CAC9B,MAAM,CAAC,wBAAa,CAAC,YAAY,CAAC,KAAK,6BAAa,CAAC,4BAA4B;gBAC/E,CAAC,CAAC,IAAA,uCAAyB,EAAC,OAAO,CAAC;gBACpC,CAAC,CAAC,OAAO,EACX,qBAAqB,EACrB,kBAAkB,EAClB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,6BAA6B,KAAK,MAAM,CAChD,KACD,kBAAkB,EAAE,MAAM,EAC1B,cAAc,EAAE,IAAI,KAAK,yBAAc,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACzE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KACjC,CAAC,UAAU;gBACZ,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;gBACrC,CAAC,CAAC,iBAAiB;oBACnB,CAAC,CAAC;wBACE,iBAAiB;wBACjB,UAAU,EAAE,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI;6BACxC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;6BAC5B,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;qBACpB;oBACH,CAAC,CAAC,EAAE,CAAC,CACR,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,CAAC,wBAAa,CAAC,YAAY,CAAC,CAAC;YAExD,IAAA,cAAK,EAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,cAAc,EAAE;gBACnC,wDAAkC,EAAE,YAAY;gBAChD,iEAAsC,EACpC,IAAI,KAAK,yBAAc,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC3D,qFAA+C,EAC7C,MAAM,CAAC,wBAAa,CAAC,UAAU,CAAC,KAAK,6BAAkB,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE;aACzF,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC,OAAO,CACpB,IAAA,gBAAE,EAAC;gBACD;oBACE,YAAY;oBACZ,QAAQ,EAAE,QAAQ;oBAClB,UAAU;iBACX;aACF,CAAC,CACH,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,IAAA,iBAAG,EAAC,KAAK,CAAC,CAAC;SACnB;IACH,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAgB,EAChB,MAAc,EACd,eAAuB,EACvB,aAA6B;QAE7B,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CACjC,eAAe,EACf,kCAAoB,EACpB,sCAAwB,CACzB,CAAC;QACF,MAAM,iCAAiC,GAAG,MAAM,iDAAuB,CAAC,eAAe,CACrF,iBAAiB,CAClB,CAAC;QACF,IAAI,iCAAiC,CAAC,KAAK,EAAE,EAAE;YAC7C,+CAA+C;YAC/C,IAAI,6BAAa,CAAC,kCAAkC,KAAK,MAAM,CAAC,wBAAa,CAAC,YAAY,CAAC,EAAE;gBAC3F,OAAO,IAAA,iBAAG,EAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;aACrD;YACD,OAAO,IAAA,gBAAE,EAAC,EAAE,CAAC,CAAC;SACf;QAED,IAAI,iCAAkB,CAAC,eAAe,CAAC,2BAAY,CAAC,uBAAuB,CAAC,EAAE;YAC5E,cAAc;YACd,MAAM,IAAA,kCAA0B,EAAC,OAAO,EAAE,iCAAiC,CAAC,KAAK,CAAC,CAAC;SACpF;QAED,OAAO;QACP,iEAAiE;QACjE,2FAA2F;QAC3F,MAAM;QACN,uEAAuE;QACvE,mBAAmB;QACnB,IAAI;QAEJ,IACE,iCAAkB,CAAC,eAAe,CAAC,2BAAY,CAAC,wBAAwB,CAAC;YACzE,CAAC,MAAM,CAAC,QAAQ,KAAK,sBAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,KAAK,sBAAQ,CAAC,MAAM,CAAC,EACzE;YACA,yCAAyC;YACzC,MAAM,2BAA2B,GAAG,cAAI,CAAC,IAAI,CAC3C,eAAe,EACf,kCAAoB,EACpB,+CAAmC,CACpC,CAAC;YACF,MAAM,kBAAE,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;SACjD;QACD,IAAI,6BAAa,CAAC,kCAAkC,KAAK,MAAM,CAAC,wBAAa,CAAC,YAAY,CAAC,EAAE;YAC3F,MAAM,YAAY,GAAG,MAAM,IAAA,0BAAiB,EAC1C,iCAAiC,CAAC,KAAK,EACvC,MAAM,CAAC,wBAAa,CAAC,sBAAsB,CAAC,EAC5C,MAAM,CAAC,wBAAa,CAAC,yBAAyB,CAAC,EAC/C,UAAU,EACV,OAAO,EACP,IAAI,CAAC,aAAa,CACnB,CAAC;YAEF,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE;gBACxB,OAAO,IAAA,iBAAG,EAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAChC;iBAAM;gBACL,IAAI,MAAM,CAAC,QAAQ,KAAK,sBAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,KAAK,sBAAQ,CAAC,EAAE,EAAE;oBACvE,MAAM,cAAc,GAAG,IAAA,wCAA+B,EAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACpF,IAAI,cAAc,EAAE;wBAClB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;qBAC1C;iBACF;gBACD,OAAO,IAAA,gBAAE,EAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;aACtD;SACF;aAAM;YACL,OAAO,IAAA,gBAAE,EAAC,EAAE,CAAC,CAAC;SACf;IACH,CAAC;IAED;;;OAGG;IACK,sBAAsB,CAAC,MAAc;QAS3C,MAAM,eAAe,GAAG,MAAM,CAAC,wBAAa,CAAC,cAAc,CAA6B,CAAC;QAEzF,IAAI,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;YACtD,MAAM,IAAI,yBAAW,CACnB,IAAI,CAAC,aAAa,EAClB,wBAAwB,EACxB,8CAA8C,CAC/C,CAAC;SACH;QAED,iCAAiC;QACjC,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YACpD,OAAO;gBACL,eAAe,EAAE,EAAE;aACpB,CAAC;SACH;QAED,yCAAyC;QACzC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACpD,4BAA4B;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACnD,MAAM,IAAI,yBAAW,CACnB,IAAI,CAAC,aAAa,EAClB,wBAAwB,EACxB,+BAA+B,CAChC,CAAC;aACH;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE3C,uBAAuB;YACvB,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBAC7D,MAAM,IAAI,yBAAW,CACnB,IAAI,CAAC,aAAa,EAClB,wBAAwB,EACxB,4BAA4B,CAC7B,CAAC;aACH;YAED,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACjE,MAAM,IAAI,uBAAS,CACjB,IAAI,CAAC,aAAa,EAClB,wBAAwB,EACxB,2CAA2C,CAC5C,CAAC;aACH;YAED,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,EAAE;gBACf,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACjE,OAAO,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;aAC5C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,eAAe,EAAE,OAAO;SACzB,CAAC;IACJ,CAAC;CACF;AAnOD,8DAmOC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/declarativeAgent/helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAIP,OAAO,EACP,eAAe,EACf,MAAM,EAEN,oBAAoB,EACpB,MAAM,EAEN,SAAS,EACT,OAAO,EACR,MAAM,wBAAwB,CAAC;AAYhC,OAAO,EAKL,YAAY,EACb,MAAM,6BAA6B,CAAC;AASrC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,6BAA6B,EAAE,MAAM,CAAC;CACvC;AAMD,wBAAsB,iBAAiB,CACrC,8BAA8B,EAAE,MAAM,EACtC,sBAAsB,EAAE,MAAM,EAC9B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAkGnD;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CA6E9B;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC,CAgE5C;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AACD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuC5D;AAED,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/declarativeAgent/helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAIP,OAAO,EACP,eAAe,EACf,MAAM,EAEN,oBAAoB,EACpB,MAAM,EAEN,SAAS,EACT,OAAO,EACR,MAAM,wBAAwB,CAAC;AAYhC,OAAO,EAKL,YAAY,EACb,MAAM,6BAA6B,CAAC;AASrC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,6BAA6B,EAAE,MAAM,CAAC;CACvC;AAMD,wBAAsB,iBAAiB,CACrC,8BAA8B,EAAE,MAAM,EACtC,sBAAsB,EAAE,MAAM,EAC9B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAkGnD;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CA6E9B;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC,CAgE5C;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AACD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuC5D;AAED,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAiG3C"}
|