@microsoft/teamsfx-core 3.0.15 → 3.0.16-alpha.72fee7faf8.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/aadAppClient.d.ts.map +1 -1
- package/build/client/aadAppClient.js +6 -6
- package/build/client/aadAppClient.js.map +1 -1
- package/build/common/featureFlags.d.ts +0 -5
- package/build/common/featureFlags.d.ts.map +1 -1
- package/build/common/featureFlags.js +0 -5
- package/build/common/featureFlags.js.map +1 -1
- package/build/common/httpProxy.d.ts +21 -0
- package/build/common/httpProxy.d.ts.map +1 -0
- package/build/common/httpProxy.js +117 -0
- package/build/common/httpProxy.js.map +1 -0
- package/build/common/mcpToolFetcher.d.ts +90 -0
- package/build/common/mcpToolFetcher.d.ts.map +1 -0
- package/build/common/mcpToolFetcher.js +404 -0
- package/build/common/mcpToolFetcher.js.map +1 -0
- package/build/common/odrProvider.d.ts +43 -0
- package/build/common/odrProvider.d.ts.map +1 -0
- package/build/common/odrProvider.js +154 -0
- package/build/common/odrProvider.js.map +1 -0
- package/build/common/openApiParserOptions.d.ts +3 -0
- package/build/common/openApiParserOptions.d.ts.map +1 -0
- package/build/common/openApiParserOptions.js +61 -0
- package/build/common/openApiParserOptions.js.map +1 -0
- package/build/common/secretmasker/dict.d.ts.map +1 -1
- package/build/common/secretmasker/dict.js +5 -2
- package/build/common/secretmasker/dict.js.map +1 -1
- package/build/common/secretmasker/feature.js.map +1 -1
- package/build/common/templates-config.json +4 -4
- package/build/component/coordinator/index.d.ts.map +1 -1
- package/build/component/coordinator/index.js.map +1 -1
- package/build/component/deps-checker/internal/dotnetChecker.js.map +1 -1
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts +3 -0
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts.map +1 -1
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +38 -3
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.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/teamsApp/create.d.ts.map +1 -1
- package/build/component/driver/teamsApp/create.js +3 -3
- package/build/component/driver/teamsApp/create.js.map +1 -1
- package/build/component/driver/teamsApp/createAppPackage.d.ts +1 -0
- package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/createAppPackage.js +23 -0
- package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
- package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.js.map +1 -1
- package/build/component/generator/declarativeAgent/helper.d.ts.map +1 -1
- package/build/component/generator/declarativeAgent/helper.js +25 -2
- package/build/component/generator/declarativeAgent/helper.js.map +1 -1
- package/build/component/generator/generatorAction.d.ts +3 -1
- package/build/component/generator/generatorAction.d.ts.map +1 -1
- package/build/component/generator/generatorAction.js.map +1 -1
- package/build/component/generator/officeAddin/generator.d.ts +1 -0
- package/build/component/generator/officeAddin/generator.d.ts.map +1 -1
- package/build/component/generator/officeAddin/generator.js +109 -2
- package/build/component/generator/officeAddin/generator.js.map +1 -1
- package/build/component/generator/openApiSpec/helper.d.ts +2 -3
- package/build/component/generator/openApiSpec/helper.d.ts.map +1 -1
- package/build/component/generator/openApiSpec/helper.js +19 -57
- package/build/component/generator/openApiSpec/helper.js.map +1 -1
- package/build/component/generator/templateHelper.d.ts +10 -2
- package/build/component/generator/templateHelper.d.ts.map +1 -1
- package/build/component/generator/templateHelper.js +16 -3
- package/build/component/generator/templateHelper.js.map +1 -1
- package/build/component/generator/templates/metadata/index.d.ts +15 -0
- package/build/component/generator/templates/metadata/index.d.ts.map +1 -1
- package/build/component/generator/templates/metadata/index.js +39 -0
- package/build/component/generator/templates/metadata/index.js.map +1 -1
- package/build/component/generator/templates/templateNames.d.ts +2 -0
- package/build/component/generator/templates/templateNames.d.ts.map +1 -1
- package/build/component/generator/templates/templateNames.js +2 -0
- package/build/component/generator/templates/templateNames.js.map +1 -1
- package/build/component/generator/utils.d.ts.map +1 -1
- package/build/component/generator/utils.js +6 -0
- package/build/component/generator/utils.js.map +1 -1
- package/build/component/generator/v4TemplateBridge.d.ts +4 -1
- package/build/component/generator/v4TemplateBridge.d.ts.map +1 -1
- package/build/component/generator/v4TemplateBridge.js +19 -3
- package/build/component/generator/v4TemplateBridge.js.map +1 -1
- package/build/component/utils/envUtil.d.ts.map +1 -1
- package/build/component/utils/envUtil.js +2 -2
- package/build/component/utils/envUtil.js.map +1 -1
- package/build/component/utils/fileOperation.d.ts.map +1 -1
- package/build/component/utils/fileOperation.js +4 -1
- package/build/component/utils/fileOperation.js.map +1 -1
- package/build/component/utils/mcpAuthScaffolder.d.ts +28 -0
- package/build/component/utils/mcpAuthScaffolder.d.ts.map +1 -1
- package/build/component/utils/mcpAuthScaffolder.js +39 -4
- package/build/component/utils/mcpAuthScaffolder.js.map +1 -1
- package/build/component/utils/mcpToolFetcher.d.ts +1 -72
- package/build/component/utils/mcpToolFetcher.d.ts.map +1 -1
- package/build/component/utils/mcpToolFetcher.js +1 -227
- package/build/component/utils/mcpToolFetcher.js.map +1 -1
- package/build/component/utils/odrProvider.d.ts +1 -55
- package/build/component/utils/odrProvider.d.ts.map +1 -1
- package/build/component/utils/odrProvider.js +1 -101
- package/build/component/utils/odrProvider.js.map +1 -1
- package/build/core/FxCore.d.ts.map +1 -1
- package/build/core/FxCore.declarativeAgent.d.ts.map +1 -1
- package/build/core/FxCore.declarativeAgent.js +110 -3
- package/build/core/FxCore.declarativeAgent.js.map +1 -1
- package/build/core/FxCore.js +4 -6
- package/build/core/FxCore.js.map +1 -1
- package/build/core/createFrontDoorAdapters.d.ts +4 -27
- package/build/core/createFrontDoorAdapters.d.ts.map +1 -1
- package/build/core/createFrontDoorAdapters.js +17 -157
- package/build/core/createFrontDoorAdapters.js.map +1 -1
- package/build/core/createProjectFrontDoor.d.ts +10 -12
- package/build/core/createProjectFrontDoor.d.ts.map +1 -1
- package/build/core/createProjectFrontDoor.js +143 -106
- package/build/core/createProjectFrontDoor.js.map +1 -1
- package/build/core/modifyProjectFrontDoor.d.ts +0 -1
- package/build/core/modifyProjectFrontDoor.d.ts.map +1 -1
- package/build/core/modifyProjectFrontDoor.js +0 -2
- package/build/core/modifyProjectFrontDoor.js.map +1 -1
- package/build/index.d.ts +3 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +9 -1
- package/build/index.js.map +1 -1
- package/build/question/create.d.ts.map +1 -1
- package/build/question/create.js +2 -1
- package/build/question/create.js.map +1 -1
- package/build/question/inputs/AddKnowledgeInputs.d.ts.map +1 -1
- package/build/question/inputs/CreateProjectInputs.d.ts +4 -0
- package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -1
- package/build/question/options/CreateProjectOptions.d.ts.map +1 -1
- package/build/question/options/CreateProjectOptions.js +14 -0
- package/build/question/options/CreateProjectOptions.js.map +1 -1
- package/build/question/other.d.ts.map +1 -1
- package/build/question/other.js +11 -1
- package/build/question/other.js.map +1 -1
- package/build/question/questionNames.d.ts +2 -0
- package/build/question/questionNames.d.ts.map +1 -1
- package/build/question/questionNames.js +2 -0
- package/build/question/questionNames.js.map +1 -1
- package/build/question/scaffold/constructNode.d.ts +3 -1
- package/build/question/scaffold/constructNode.d.ts.map +1 -1
- package/build/question/scaffold/constructNode.js +50 -0
- package/build/question/scaffold/constructNode.js.map +1 -1
- package/build/question/scaffold/vsc/CapabilityOptions.d.ts +2 -0
- package/build/question/scaffold/vsc/CapabilityOptions.d.ts.map +1 -1
- package/build/question/scaffold/vsc/CapabilityOptions.js +16 -0
- package/build/question/scaffold/vsc/CapabilityOptions.js.map +1 -1
- package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts +19 -1
- package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts.map +1 -1
- package/build/question/scaffold/vsc/teamsProjectTypeNode.js +39 -7
- package/build/question/scaffold/vsc/teamsProjectTypeNode.js.map +1 -1
- package/build/v4/buildTarget/parseSelector.d.ts +6 -2
- package/build/v4/buildTarget/parseSelector.d.ts.map +1 -1
- package/build/v4/buildTarget/parseSelector.js +58 -45
- package/build/v4/buildTarget/parseSelector.js.map +1 -1
- package/build/v4/buildTarget/resolveBuildTarget.d.ts +21 -7
- package/build/v4/buildTarget/resolveBuildTarget.d.ts.map +1 -1
- package/build/v4/buildTarget/resolveBuildTarget.js +97 -52
- package/build/v4/buildTarget/resolveBuildTarget.js.map +1 -1
- package/build/v4/collectInputs/collectInputs.d.ts +51 -10
- package/build/v4/collectInputs/collectInputs.d.ts.map +1 -1
- package/build/v4/collectInputs/collectInputs.js +287 -91
- package/build/v4/collectInputs/collectInputs.js.map +1 -1
- package/build/v4/distribution/createQuestions.d.ts.map +1 -1
- package/build/v4/distribution/createQuestions.js +2 -29
- package/build/v4/distribution/createQuestions.js.map +1 -1
- package/build/v4/distribution/declarativePackage.d.ts.map +1 -1
- package/build/v4/distribution/declarativePackage.js +2 -30
- package/build/v4/distribution/declarativePackage.js.map +1 -1
- package/build/v4/distribution/questionFragments.d.ts +11 -0
- package/build/v4/distribution/questionFragments.d.ts.map +1 -0
- package/build/v4/distribution/questionFragments.js +130 -0
- package/build/v4/distribution/questionFragments.js.map +1 -0
- package/build/v4/engineVersion.d.ts +7 -0
- package/build/v4/engineVersion.d.ts.map +1 -0
- package/build/v4/engineVersion.js +12 -0
- package/build/v4/engineVersion.js.map +1 -0
- package/build/v4/expression/evaluateExpression.d.ts +13 -0
- package/build/v4/expression/evaluateExpression.d.ts.map +1 -1
- package/build/v4/expression/evaluateExpression.js +57 -0
- package/build/v4/expression/evaluateExpression.js.map +1 -1
- package/build/v4/index.d.ts +7 -0
- package/build/v4/index.d.ts.map +1 -1
- package/build/v4/index.js +7 -0
- package/build/v4/index.js.map +1 -1
- package/build/v4/inspection/scaffoldCatalog.d.ts +28 -0
- package/build/v4/inspection/scaffoldCatalog.d.ts.map +1 -0
- package/build/v4/inspection/scaffoldCatalog.js +66 -0
- package/build/v4/inspection/scaffoldCatalog.js.map +1 -0
- package/build/v4/inspection/scaffoldMetadataSource.d.ts +6 -0
- package/build/v4/inspection/scaffoldMetadataSource.d.ts.map +1 -0
- package/build/v4/inspection/scaffoldMetadataSource.js +78 -0
- package/build/v4/inspection/scaffoldMetadataSource.js.map +1 -0
- package/build/v4/mcp/mcpAuthAction.d.ts +36 -0
- package/build/v4/mcp/mcpAuthAction.d.ts.map +1 -0
- package/build/v4/mcp/mcpAuthAction.js +177 -0
- package/build/v4/mcp/mcpAuthAction.js.map +1 -0
- package/build/v4/mcp/mcpAuthScaffold.d.ts +37 -0
- package/build/v4/mcp/mcpAuthScaffold.d.ts.map +1 -0
- package/build/v4/mcp/mcpAuthScaffold.js +162 -0
- package/build/v4/mcp/mcpAuthScaffold.js.map +1 -0
- package/build/v4/model/dataModel.d.ts +1 -1
- package/build/v4/model/dataModel.d.ts.map +1 -1
- package/build/v4/pipeline/runScaffoldPipeline.d.ts +27 -5
- package/build/v4/pipeline/runScaffoldPipeline.d.ts.map +1 -1
- package/build/v4/pipeline/runScaffoldPipeline.js +64 -10
- package/build/v4/pipeline/runScaffoldPipeline.js.map +1 -1
- package/build/v4/providers/createOptionsProviders.d.ts +11 -0
- package/build/v4/providers/createOptionsProviders.d.ts.map +1 -0
- package/build/v4/providers/createOptionsProviders.js +268 -0
- package/build/v4/providers/createOptionsProviders.js.map +1 -0
- package/build/v4/renderContext/buildRenderContext.d.ts.map +1 -1
- package/build/v4/renderContext/buildRenderContext.js +4 -6
- package/build/v4/renderContext/buildRenderContext.js.map +1 -1
- package/build/v4/runtime/generalSensitivityLabel.d.ts +5 -0
- package/build/v4/runtime/generalSensitivityLabel.d.ts.map +1 -0
- package/build/v4/runtime/generalSensitivityLabel.js +36 -0
- package/build/v4/runtime/generalSensitivityLabel.js.map +1 -0
- package/build/v4/runtime/inMemoryRuntime.d.ts +7 -1
- package/build/v4/runtime/inMemoryRuntime.d.ts.map +1 -1
- package/build/v4/runtime/inMemoryRuntime.js +25 -3
- package/build/v4/runtime/inMemoryRuntime.js.map +1 -1
- package/build/v4/runtime/packageParse.d.ts.map +1 -1
- package/build/v4/runtime/packageParse.js +64 -8
- package/build/v4/runtime/packageParse.js.map +1 -1
- package/build/v4/runtime/realRuntime.d.ts +3 -1
- package/build/v4/runtime/realRuntime.d.ts.map +1 -1
- package/build/v4/runtime/realRuntime.js +3 -2
- package/build/v4/runtime/realRuntime.js.map +1 -1
- package/build/v4/runtime/renderMustache.d.ts.map +1 -1
- package/build/v4/runtime/renderMustache.js +13 -4
- package/build/v4/runtime/renderMustache.js.map +1 -1
- package/build/v4/runtime/runtimeRegistry.d.ts +12 -3
- package/build/v4/runtime/runtimeRegistry.d.ts.map +1 -1
- package/build/v4/runtime/runtimeRegistry.js +123 -17
- package/build/v4/runtime/runtimeRegistry.js.map +1 -1
- package/build/v4/runtime/scaffold.d.ts +1 -0
- package/build/v4/runtime/scaffold.d.ts.map +1 -1
- package/build/v4/runtime/scaffold.js +1 -20
- package/build/v4/runtime/scaffold.js.map +1 -1
- package/build/v4/runtime/steps/daAction.d.ts.map +1 -1
- package/build/v4/runtime/steps/daAction.js +3 -111
- package/build/v4/runtime/steps/daAction.js.map +1 -1
- package/build/v4/runtime/steps/daSensitivity.d.ts +14 -0
- package/build/v4/runtime/steps/daSensitivity.d.ts.map +1 -0
- package/build/v4/runtime/steps/daSensitivity.js +50 -0
- package/build/v4/runtime/steps/daSensitivity.js.map +1 -0
- package/build/v4/runtime/steps/mcpAuth.d.ts +5 -2
- package/build/v4/runtime/steps/mcpAuth.d.ts.map +1 -1
- package/build/v4/runtime/steps/mcpAuth.js +37 -66
- package/build/v4/runtime/steps/mcpAuth.js.map +1 -1
- package/build/v4/runtime/steps/mcpLocal.d.ts +0 -4
- package/build/v4/runtime/steps/mcpLocal.d.ts.map +1 -1
- package/build/v4/runtime/steps/mcpLocal.js +11 -31
- package/build/v4/runtime/steps/mcpLocal.js.map +1 -1
- package/build/v4/runtime/steps/mcpStatic.d.ts +1 -1
- package/build/v4/runtime/steps/mcpStatic.d.ts.map +1 -1
- package/build/v4/runtime/steps/mcpStatic.js +14 -32
- package/build/v4/runtime/steps/mcpStatic.js.map +1 -1
- package/build/v4/runtime/steps/metaOs.d.ts.map +1 -1
- package/build/v4/runtime/steps/metaOs.js +39 -51
- package/build/v4/runtime/steps/metaOs.js.map +1 -1
- package/build/v4/runtime/steps/officeAddin.d.ts.map +1 -1
- package/build/v4/runtime/steps/officeAddin.js +7 -12
- package/build/v4/runtime/steps/officeAddin.js.map +1 -1
- package/build/v4/runtime/steps/openApi.d.ts.map +1 -1
- package/build/v4/runtime/steps/openApi.js +85 -566
- package/build/v4/runtime/steps/openApi.js.map +1 -1
- package/build/v4/runtime/steps/openApiCustomApi.d.ts +5 -0
- package/build/v4/runtime/steps/openApiCustomApi.d.ts.map +1 -0
- package/build/v4/runtime/steps/openApiCustomApi.js +385 -0
- package/build/v4/runtime/steps/openApiCustomApi.js.map +1 -0
- package/build/v4/runtime/whitelist.d.ts +27 -0
- package/build/v4/runtime/whitelist.d.ts.map +1 -1
- package/build/v4/runtime/whitelist.js +156 -1
- package/build/v4/runtime/whitelist.js.map +1 -1
- package/build/v4/runtime/withTempDirectory.d.ts +10 -0
- package/build/v4/runtime/withTempDirectory.d.ts.map +1 -0
- package/build/v4/runtime/withTempDirectory.js +41 -0
- package/build/v4/runtime/withTempDirectory.js.map +1 -0
- package/build/v4/surface/createFloorTail.d.ts +12 -0
- package/build/v4/surface/createFloorTail.d.ts.map +1 -0
- package/build/v4/surface/createFloorTail.js +138 -0
- package/build/v4/surface/createFloorTail.js.map +1 -0
- package/build/v4/surface/createInputs.d.ts +25 -3
- package/build/v4/surface/createInputs.d.ts.map +1 -1
- package/build/v4/surface/createInputs.js +54 -431
- package/build/v4/surface/createInputs.js.map +1 -1
- package/build/v4/surface/createSelectorWalk.d.ts +8 -3
- package/build/v4/surface/createSelectorWalk.d.ts.map +1 -1
- package/build/v4/surface/createSelectorWalk.js +21 -11
- package/build/v4/surface/createSelectorWalk.js.map +1 -1
- package/build/v4/surface/deriveCreateOptions.d.ts.map +1 -1
- package/build/v4/surface/deriveCreateOptions.js +5 -2
- package/build/v4/surface/deriveCreateOptions.js.map +1 -1
- package/build/v4/surface/localizePrompt.d.ts +11 -0
- package/build/v4/surface/localizePrompt.d.ts.map +1 -0
- package/build/v4/surface/localizePrompt.js +32 -0
- package/build/v4/surface/localizePrompt.js.map +1 -0
- package/build/v4/surface/modifySelectorWalk.d.ts.map +1 -1
- package/build/v4/surface/modifySelectorWalk.js +0 -3
- package/build/v4/surface/modifySelectorWalk.js.map +1 -1
- package/build/v4/surface/uiPromptUI.d.ts.map +1 -1
- package/build/v4/surface/uiPromptUI.js +45 -45
- package/build/v4/surface/uiPromptUI.js.map +1 -1
- package/build/v4/validation/capabilityCatalog.d.ts +8 -0
- package/build/v4/validation/capabilityCatalog.d.ts.map +1 -0
- package/build/v4/validation/capabilityCatalog.js +62 -0
- package/build/v4/validation/capabilityCatalog.js.map +1 -0
- package/build/v4/validation/templateArchiveValidation.d.ts +15 -0
- package/build/v4/validation/templateArchiveValidation.d.ts.map +1 -0
- package/build/v4/validation/templateArchiveValidation.js +297 -0
- package/build/v4/validation/templateArchiveValidation.js.map +1 -0
- package/build/v4/validation/validateTemplatePackage.d.ts +21 -2
- package/build/v4/validation/validateTemplatePackage.d.ts.map +1 -1
- package/build/v4/validation/validateTemplatePackage.js +155 -31
- package/build/v4/validation/validateTemplatePackage.js.map +1 -1
- package/build/v4/validators/createInputValidators.d.ts +7 -0
- package/build/v4/validators/createInputValidators.d.ts.map +1 -0
- package/build/v4/validators/createInputValidators.js +77 -0
- package/build/v4/validators/createInputValidators.js.map +1 -0
- package/build/v4/validators/mcpCredentialValidators.d.ts +5 -0
- package/build/v4/validators/mcpCredentialValidators.d.ts.map +1 -0
- package/build/v4/validators/mcpCredentialValidators.js +13 -0
- package/build/v4/validators/mcpCredentialValidators.js.map +1 -0
- package/build/v4/validators/mcpServerUrlValidator.d.ts +9 -0
- package/build/v4/validators/mcpServerUrlValidator.d.ts.map +1 -0
- package/build/v4/validators/mcpServerUrlValidator.js +15 -0
- package/build/v4/validators/mcpServerUrlValidator.js.map +1 -0
- package/package.json +29 -23
- package/resource/package.nls.cs.json +56 -54
- package/resource/package.nls.de.json +56 -54
- package/resource/package.nls.es.json +55 -53
- package/resource/package.nls.fr.json +56 -54
- package/resource/package.nls.it.json +55 -53
- package/resource/package.nls.ja.json +56 -54
- package/resource/package.nls.json +10 -3
- package/resource/package.nls.ko.json +56 -54
- package/resource/package.nls.pl.json +56 -54
- package/resource/package.nls.pt-BR.json +56 -54
- package/resource/package.nls.ru.json +56 -54
- package/resource/package.nls.tr.json +56 -54
- package/resource/package.nls.zh-Hans.json +56 -54
- package/resource/package.nls.zh-Hant.json +56 -54
- package/resource/templates/package.nls.cs.json +22 -9
- package/resource/templates/package.nls.de.json +22 -9
- package/resource/templates/package.nls.es.json +22 -9
- package/resource/templates/package.nls.fr.json +22 -9
- package/resource/templates/package.nls.it.json +22 -9
- package/resource/templates/package.nls.ja.json +22 -9
- package/resource/templates/package.nls.json +16 -3
- package/resource/templates/package.nls.ko.json +22 -9
- package/resource/templates/package.nls.pl.json +22 -9
- package/resource/templates/package.nls.pt-BR.json +22 -9
- package/resource/templates/package.nls.ru.json +22 -9
- package/resource/templates/package.nls.tr.json +22 -9
- package/resource/templates/package.nls.zh-Hans.json +22 -9
- package/resource/templates/package.nls.zh-Hant.json +22 -9
- package/resource/templates/package.nls.zh-cn.json +7 -1
- package/resource/templates/package.nls.zh-tw.json +7 -1
- 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/allTemplates.json +16 -2
- package/templates/metadata.zip +0 -0
- package/templates/ui/wizardNode.json +24 -0
- package/templates/v4/create-selector.json +30 -5
- package/templates/v4/floor.json +1 -1
- package/templates/v4/modify-selector.json +1 -6
- package/templates/v4/templates-metadata.zip +0 -0
- package/templates/v4/templates.zip +0 -0
- package/templates/configs/local/typescript/.gitignore +0 -1
- package/templates/configs/playground/typescript/.gitignore +0 -4
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT license.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.inspectScaffoldCatalog = inspectScaffoldCatalog;
|
|
6
|
+
const neverthrow_1 = require("neverthrow");
|
|
7
|
+
const resolveBuildTarget_1 = require("../buildTarget/resolveBuildTarget");
|
|
8
|
+
const createSelector_1 = require("../distribution/createSelector");
|
|
9
|
+
const declarativePackage_1 = require("../distribution/declarativePackage");
|
|
10
|
+
function compareTemplateIds(left, right) {
|
|
11
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
12
|
+
}
|
|
13
|
+
/** Inspect one metadata source without executing any declared scaffold behavior. */
|
|
14
|
+
function inspectScaffoldCatalog(source, kind) {
|
|
15
|
+
const loaded = source.load();
|
|
16
|
+
if (loaded.isErr()) {
|
|
17
|
+
return (0, neverthrow_1.err)(loaded.error);
|
|
18
|
+
}
|
|
19
|
+
const selector = (0, createSelector_1.openSelector)(loaded.value, kind);
|
|
20
|
+
if (selector.isErr()) {
|
|
21
|
+
return (0, neverthrow_1.err)(selector.error);
|
|
22
|
+
}
|
|
23
|
+
const presentation = (0, createSelector_1.openSelectorPresentation)(loaded.value, kind);
|
|
24
|
+
if (presentation.isErr()) {
|
|
25
|
+
return (0, neverthrow_1.err)(presentation.error);
|
|
26
|
+
}
|
|
27
|
+
const routesByTemplate = new Map();
|
|
28
|
+
const externalRoutes = [];
|
|
29
|
+
for (const route of selector.value.routes) {
|
|
30
|
+
const routeShape = (0, resolveBuildTarget_1.validateSelectorRouteShape)(route);
|
|
31
|
+
if (routeShape.isErr()) {
|
|
32
|
+
return (0, neverthrow_1.err)(routeShape.error);
|
|
33
|
+
}
|
|
34
|
+
if (route.engine !== "v4") {
|
|
35
|
+
externalRoutes.push(route);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (route.templateId !== undefined) {
|
|
39
|
+
const routes = routesByTemplate.get(route.templateId) ?? [];
|
|
40
|
+
routes.push(route);
|
|
41
|
+
routesByTemplate.set(route.templateId, routes);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const templates = [];
|
|
45
|
+
const templateIds = [...routesByTemplate.keys()].sort(compareTemplateIds);
|
|
46
|
+
for (const templateId of templateIds) {
|
|
47
|
+
const metadata = (0, declarativePackage_1.openDeclarativePackageMetadata)(loaded.value, { kind, templateId });
|
|
48
|
+
if (metadata.isErr()) {
|
|
49
|
+
return (0, neverthrow_1.err)(metadata.error);
|
|
50
|
+
}
|
|
51
|
+
templates.push({
|
|
52
|
+
templateId,
|
|
53
|
+
routes: routesByTemplate.get(templateId) ?? [],
|
|
54
|
+
descriptor: metadata.value.descriptor,
|
|
55
|
+
questions: metadata.value.questions,
|
|
56
|
+
pipeline: metadata.value.pipeline,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return (0, neverthrow_1.ok)({
|
|
60
|
+
kind,
|
|
61
|
+
questions: presentation.value.questions,
|
|
62
|
+
templates,
|
|
63
|
+
externalRoutes,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=scaffoldCatalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffoldCatalog.js","sourceRoot":"","sources":["../../../src/v4/inspection/scaffoldCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ScaffoldMetadataSource } from "./scaffoldCatalog";
|
|
2
|
+
/** Adapt immutable staged metadata archive bytes to the catalog source port. */
|
|
3
|
+
export declare function metadataArchiveSource(bytes: Buffer): ScaffoldMetadataSource;
|
|
4
|
+
/** Adapt the authored `templates/v4` directory to a metadata-only in-memory archive. */
|
|
5
|
+
export declare function authoredDirectoryMetadataSource(root: string): ScaffoldMetadataSource;
|
|
6
|
+
//# sourceMappingURL=scaffoldMetadataSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffoldMetadataSource.d.ts","sourceRoot":"","sources":["../../../src/v4/inspection/scaffoldMetadataSource.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AA+C3D,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAE3E;AAED,wFAAwF;AACxF,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAiBpF"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT license.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.metadataArchiveSource = metadataArchiveSource;
|
|
6
|
+
exports.authoredDirectoryMetadataSource = authoredDirectoryMetadataSource;
|
|
7
|
+
const tslib_1 = require("tslib");
|
|
8
|
+
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
9
|
+
const adm_zip_1 = tslib_1.__importDefault(require("adm-zip"));
|
|
10
|
+
const fs = tslib_1.__importStar(require("fs-extra"));
|
|
11
|
+
const neverthrow_1 = require("neverthrow");
|
|
12
|
+
const path = tslib_1.__importStar(require("path"));
|
|
13
|
+
const localizeUtils_1 = require("../../common/localizeUtils");
|
|
14
|
+
const SOURCE = "Scaffold";
|
|
15
|
+
const PACKAGE_METADATA_FILES = new Set(["descriptor.json", "questions.json", "pipeline.json"]);
|
|
16
|
+
function metadataSourceError(error) {
|
|
17
|
+
const options = {
|
|
18
|
+
source: SOURCE,
|
|
19
|
+
name: "ScaffoldMetadataSourceReadFailed",
|
|
20
|
+
message: (0, localizeUtils_1.getLocalizedString)("core.v4.scaffoldMetadataSourceReadFailed"),
|
|
21
|
+
};
|
|
22
|
+
return error instanceof Error ? new teamsfx_api_1.SystemError({ ...options, error }) : new teamsfx_api_1.SystemError(options);
|
|
23
|
+
}
|
|
24
|
+
function isMetadataFile(relativePath) {
|
|
25
|
+
const segments = relativePath.split("/");
|
|
26
|
+
if (segments.length === 3 && segments[0] === "_shared" && segments[1] === "questions") {
|
|
27
|
+
return segments[2].endsWith(".json");
|
|
28
|
+
}
|
|
29
|
+
if (segments[0] !== "create" && segments[0] !== "modify") {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (segments.length === 2 && segments[1] === "selector.json") {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
return segments.length > 2 && PACKAGE_METADATA_FILES.has(segments[segments.length - 1]);
|
|
36
|
+
}
|
|
37
|
+
function collectMetadataFiles(directory, relativeDirectory, files) {
|
|
38
|
+
const entries = fs
|
|
39
|
+
.readdirSync(directory, { withFileTypes: true })
|
|
40
|
+
.sort((left, right) => (left.name < right.name ? -1 : left.name > right.name ? 1 : 0));
|
|
41
|
+
for (const entry of entries) {
|
|
42
|
+
const relativePath = path.posix.join(relativeDirectory, entry.name);
|
|
43
|
+
if (entry.isDirectory()) {
|
|
44
|
+
if (entry.name !== "content" &&
|
|
45
|
+
!(relativeDirectory.length === 0 && entry.name === "schema")) {
|
|
46
|
+
collectMetadataFiles(path.join(directory, entry.name), relativePath, files);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (entry.isFile() && isMetadataFile(relativePath)) {
|
|
50
|
+
files.push(relativePath);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** Adapt immutable staged metadata archive bytes to the catalog source port. */
|
|
55
|
+
function metadataArchiveSource(bytes) {
|
|
56
|
+
return { load: () => (0, neverthrow_1.ok)(bytes) };
|
|
57
|
+
}
|
|
58
|
+
/** Adapt the authored `templates/v4` directory to a metadata-only in-memory archive. */
|
|
59
|
+
function authoredDirectoryMetadataSource(root) {
|
|
60
|
+
return {
|
|
61
|
+
load: () => {
|
|
62
|
+
try {
|
|
63
|
+
const resolvedRoot = path.resolve(root);
|
|
64
|
+
const files = [];
|
|
65
|
+
collectMetadataFiles(resolvedRoot, "", files);
|
|
66
|
+
const zip = new adm_zip_1.default();
|
|
67
|
+
for (const file of files) {
|
|
68
|
+
zip.addFile(`v4/${file}`, fs.readFileSync(path.join(resolvedRoot, file)));
|
|
69
|
+
}
|
|
70
|
+
return (0, neverthrow_1.ok)(zip.toBuffer());
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
return (0, neverthrow_1.err)(metadataSourceError(error));
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=scaffoldMetadataSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffoldMetadataSource.js","sourceRoot":"","sources":["../../../src/v4/inspection/scaffoldMetadataSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { FxError } from "@microsoft/teamsfx-api";
|
|
2
|
+
import { Result } from "neverthrow";
|
|
3
|
+
export declare const MCP_DCR_WELL_KNOWN_URL_PLACEHOLDER = "<PLEASE_FILL_IN_WELL_KNOWN_AUTHORIZATION_SERVER_URL>";
|
|
4
|
+
/**
|
|
5
|
+
* Placeholders for a static `oauth` action whose authorization / token URLs could not be
|
|
6
|
+
* discovered. `identityProvider: Custom` is unusable without both, and omitting the fields
|
|
7
|
+
* hides the gap; the placeholders make it visible and editable.
|
|
8
|
+
*/
|
|
9
|
+
export declare const MCP_OAUTH_AUTHORIZATION_URL_PLACEHOLDER = "<PLEASE_FILL_IN_AUTHORIZATION_URL>";
|
|
10
|
+
export declare const MCP_OAUTH_TOKEN_URL_PLACEHOLDER = "<PLEASE_FILL_IN_TOKEN_URL>";
|
|
11
|
+
export interface ResolvedMCPAuthEndpoints {
|
|
12
|
+
authorizationUrl?: string;
|
|
13
|
+
tokenUrl?: string;
|
|
14
|
+
refreshUrl?: string;
|
|
15
|
+
wellKnownUrl?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface MCPAuthActionArgs {
|
|
18
|
+
authType: string;
|
|
19
|
+
authName: string;
|
|
20
|
+
registrationId: string;
|
|
21
|
+
mcpServerUrl: string;
|
|
22
|
+
endpoints: ResolvedMCPAuthEndpoints;
|
|
23
|
+
credentialEnvNames?: {
|
|
24
|
+
clientId: string;
|
|
25
|
+
clientSecret?: string;
|
|
26
|
+
scope?: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface MCPAuthActionResult {
|
|
30
|
+
yaml: string;
|
|
31
|
+
wellKnownUrlPlaceholderUsed: boolean;
|
|
32
|
+
oauthUrlPlaceholderUsed: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** Add an MCP auth provision action while preserving the surrounding YAML document. */
|
|
35
|
+
export declare function injectMcpAuthActionYaml(yaml: string, args: MCPAuthActionArgs): Result<MCPAuthActionResult, FxError>;
|
|
36
|
+
//# sourceMappingURL=mcpAuthAction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpAuthAction.d.ts","sourceRoot":"","sources":["../../../src/v4/mcp/mcpAuthAction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAe,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAO7C,eAAO,MAAM,kCAAkC,yDACS,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,uCAAuC,uCAAuC,CAAC;AAC5F,eAAO,MAAM,+BAA+B,+BAA+B,CAAC;AAE5E,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,wBAAwB,CAAC;IACpC,kBAAkB,CAAC,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B,EAAE,OAAO,CAAC;IACrC,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAwHD,uFAAuF;AACvF,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,iBAAiB,GACtB,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CA6DtC"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT license.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.MCP_OAUTH_TOKEN_URL_PLACEHOLDER = exports.MCP_OAUTH_AUTHORIZATION_URL_PLACEHOLDER = exports.MCP_DCR_WELL_KNOWN_URL_PLACEHOLDER = void 0;
|
|
6
|
+
exports.injectMcpAuthActionYaml = injectMcpAuthActionYaml;
|
|
7
|
+
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
8
|
+
const neverthrow_1 = require("neverthrow");
|
|
9
|
+
const yaml_1 = require("yaml");
|
|
10
|
+
const SOURCE = "Scaffold";
|
|
11
|
+
const MIN_DCR_YAML_VERSION = "v1.13";
|
|
12
|
+
const SUPPORTED_AUTH_TYPES = new Set(["none", "oauth", "entra-sso", "oauth-dynamic"]);
|
|
13
|
+
exports.MCP_DCR_WELL_KNOWN_URL_PLACEHOLDER = "<PLEASE_FILL_IN_WELL_KNOWN_AUTHORIZATION_SERVER_URL>";
|
|
14
|
+
/**
|
|
15
|
+
* Placeholders for a static `oauth` action whose authorization / token URLs could not be
|
|
16
|
+
* discovered. `identityProvider: Custom` is unusable without both, and omitting the fields
|
|
17
|
+
* hides the gap; the placeholders make it visible and editable.
|
|
18
|
+
*/
|
|
19
|
+
exports.MCP_OAUTH_AUTHORIZATION_URL_PLACEHOLDER = "<PLEASE_FILL_IN_AUTHORIZATION_URL>";
|
|
20
|
+
exports.MCP_OAUTH_TOKEN_URL_PLACEHOLDER = "<PLEASE_FILL_IN_TOKEN_URL>";
|
|
21
|
+
function failure(message) {
|
|
22
|
+
return (0, neverthrow_1.err)(new teamsfx_api_1.SystemError({ source: SOURCE, name: "McpAuthInjectFailed", message }));
|
|
23
|
+
}
|
|
24
|
+
function registrationId(item) {
|
|
25
|
+
if (!(0, yaml_1.isMap)(item)) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
const output = item.get("writeToEnvironmentFile", true);
|
|
29
|
+
if (!(0, yaml_1.isMap)(output)) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const value = output.get("configurationId");
|
|
33
|
+
return typeof value === "string" ? value : undefined;
|
|
34
|
+
}
|
|
35
|
+
function uses(item) {
|
|
36
|
+
if (!(0, yaml_1.isMap)(item)) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
const value = item.get("uses");
|
|
40
|
+
return typeof value === "string" ? value : undefined;
|
|
41
|
+
}
|
|
42
|
+
function teamsAppId(item) {
|
|
43
|
+
if (uses(item) !== "teamsApp/create" || !(0, yaml_1.isMap)(item)) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
const output = item.get("writeToEnvironmentFile", true);
|
|
47
|
+
if (!(0, yaml_1.isMap)(output)) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
const value = output.get("teamsAppId");
|
|
51
|
+
return typeof value === "string" ? value : undefined;
|
|
52
|
+
}
|
|
53
|
+
function ensureMinimumVersion(current, minimum) {
|
|
54
|
+
if (typeof current !== "string") {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
const parse = (version) => {
|
|
58
|
+
const match = /^v?(\d+(?:\.\d+){1,2})$/.exec(version);
|
|
59
|
+
return match?.[1].split(".").map((part) => Number.parseInt(part, 10));
|
|
60
|
+
};
|
|
61
|
+
const currentParts = parse(current);
|
|
62
|
+
const minimumParts = parse(minimum);
|
|
63
|
+
if (!currentParts || !minimumParts) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
const width = Math.max(currentParts.length, minimumParts.length);
|
|
67
|
+
for (let index = 0; index < width; index++) {
|
|
68
|
+
const currentPart = currentParts[index] ?? 0;
|
|
69
|
+
const minimumPart = minimumParts[index] ?? 0;
|
|
70
|
+
if (currentPart > minimumPart) {
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
if (currentPart < minimumPart) {
|
|
74
|
+
return minimum;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
function oauthAction(args, appIdEnvName) {
|
|
80
|
+
const endpointFields = {};
|
|
81
|
+
if (args.authType === "oauth") {
|
|
82
|
+
endpointFields.authorizationUrl =
|
|
83
|
+
args.endpoints.authorizationUrl ?? exports.MCP_OAUTH_AUTHORIZATION_URL_PLACEHOLDER;
|
|
84
|
+
endpointFields.tokenUrl = args.endpoints.tokenUrl ?? exports.MCP_OAUTH_TOKEN_URL_PLACEHOLDER;
|
|
85
|
+
if (args.endpoints.refreshUrl) {
|
|
86
|
+
endpointFields.refreshUrl = args.endpoints.refreshUrl;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
uses: "oauth/register",
|
|
91
|
+
with: {
|
|
92
|
+
name: args.authName,
|
|
93
|
+
appId: `\${{${appIdEnvName}}}`,
|
|
94
|
+
flow: "authorizationCode",
|
|
95
|
+
...(args.authType === "oauth"
|
|
96
|
+
? { ...endpointFields, identityProvider: "Custom" }
|
|
97
|
+
: { identityProvider: "MicrosoftEntra" }),
|
|
98
|
+
baseUrl: args.mcpServerUrl,
|
|
99
|
+
...(args.credentialEnvNames
|
|
100
|
+
? {
|
|
101
|
+
clientId: `\${{${args.credentialEnvNames.clientId}}}`,
|
|
102
|
+
...(args.credentialEnvNames.clientSecret
|
|
103
|
+
? { clientSecret: `\${{${args.credentialEnvNames.clientSecret}}}` }
|
|
104
|
+
: {}),
|
|
105
|
+
...(args.credentialEnvNames.scope
|
|
106
|
+
? { scope: `\${{${args.credentialEnvNames.scope}}}` }
|
|
107
|
+
: {}),
|
|
108
|
+
}
|
|
109
|
+
: {}),
|
|
110
|
+
},
|
|
111
|
+
writeToEnvironmentFile: { configurationId: args.registrationId },
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function dcrAction(args, appIdEnvName, wellKnownUrl) {
|
|
115
|
+
return {
|
|
116
|
+
uses: "dcr/register",
|
|
117
|
+
with: {
|
|
118
|
+
name: args.authName,
|
|
119
|
+
appId: `\${{${appIdEnvName}}}`,
|
|
120
|
+
applicableToApps: "AnyApp",
|
|
121
|
+
targetAudience: "HomeTenant",
|
|
122
|
+
wellKnownAuthorizationServer: wellKnownUrl,
|
|
123
|
+
targetUrlsShouldStartWith: [args.mcpServerUrl],
|
|
124
|
+
},
|
|
125
|
+
writeToEnvironmentFile: { configurationId: args.registrationId },
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/** Add an MCP auth provision action while preserving the surrounding YAML document. */
|
|
129
|
+
function injectMcpAuthActionYaml(yaml, args) {
|
|
130
|
+
if (!SUPPORTED_AUTH_TYPES.has(args.authType)) {
|
|
131
|
+
return failure(`Unsupported MCP auth type '${args.authType}'.`);
|
|
132
|
+
}
|
|
133
|
+
if (args.authType === "none") {
|
|
134
|
+
return (0, neverthrow_1.ok)({ yaml, wellKnownUrlPlaceholderUsed: false, oauthUrlPlaceholderUsed: false });
|
|
135
|
+
}
|
|
136
|
+
const document = (0, yaml_1.parseDocument)(yaml);
|
|
137
|
+
if (document.errors.length > 0) {
|
|
138
|
+
return failure("The rendered m365agents.yml is not valid YAML.");
|
|
139
|
+
}
|
|
140
|
+
const provision = document.get("provision", true);
|
|
141
|
+
if (!(0, yaml_1.isSeq)(provision)) {
|
|
142
|
+
return failure("The rendered m365agents.yml does not declare a provision sequence.");
|
|
143
|
+
}
|
|
144
|
+
const actionUses = args.authType === "oauth-dynamic" ? "dcr/register" : "oauth/register";
|
|
145
|
+
const alreadyRegistered = provision.items.some((item) => uses(item) === actionUses && registrationId(item) === args.registrationId);
|
|
146
|
+
if (alreadyRegistered) {
|
|
147
|
+
return (0, neverthrow_1.ok)({
|
|
148
|
+
yaml: document.toString(),
|
|
149
|
+
wellKnownUrlPlaceholderUsed: false,
|
|
150
|
+
oauthUrlPlaceholderUsed: false,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
provision.items = provision.items.filter((item) => uses(item) !== undefined);
|
|
154
|
+
const teamsAppIndex = provision.items.findIndex((item) => uses(item) === "teamsApp/create");
|
|
155
|
+
const appIdEnvName = teamsAppIndex >= 0 ? teamsAppId(provision.items[teamsAppIndex]) : undefined;
|
|
156
|
+
if (!appIdEnvName) {
|
|
157
|
+
return failure("The rendered m365agents.yml does not expose a Teams app id.");
|
|
158
|
+
}
|
|
159
|
+
const placeholderUsed = args.authType === "oauth-dynamic" && !args.endpoints.wellKnownUrl;
|
|
160
|
+
const oauthUrlPlaceholderUsed = args.authType === "oauth" && (!args.endpoints.authorizationUrl || !args.endpoints.tokenUrl);
|
|
161
|
+
const action = args.authType === "oauth-dynamic"
|
|
162
|
+
? dcrAction(args, appIdEnvName, args.endpoints.wellKnownUrl ?? exports.MCP_DCR_WELL_KNOWN_URL_PLACEHOLDER)
|
|
163
|
+
: oauthAction(args, appIdEnvName);
|
|
164
|
+
provision.items.splice(teamsAppIndex + 1, 0, document.createNode(action));
|
|
165
|
+
if (args.authType === "oauth-dynamic") {
|
|
166
|
+
const version = ensureMinimumVersion(document.get("version"), MIN_DCR_YAML_VERSION);
|
|
167
|
+
if (version) {
|
|
168
|
+
document.set("version", version);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return (0, neverthrow_1.ok)({
|
|
172
|
+
yaml: document.toString(),
|
|
173
|
+
wellKnownUrlPlaceholderUsed: placeholderUsed,
|
|
174
|
+
oauthUrlPlaceholderUsed,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=mcpAuthAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpAuthAction.js","sourceRoot":"","sources":["../../../src/v4/mcp/mcpAuthAction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { FxError } from "@microsoft/teamsfx-api";
|
|
2
|
+
import { Result } from "neverthrow";
|
|
3
|
+
import { probeMCPServerAuth, resolveMCPOAuthMetadata } from "../../common/mcpToolFetcher";
|
|
4
|
+
import { StepContext } from "../pipeline/runScaffoldPipeline";
|
|
5
|
+
/** Indirection seam so unit tests can stub the network probes on a plain object. */
|
|
6
|
+
export declare const mcpAuthScaffoldDeps: {
|
|
7
|
+
probeMCPServerAuth: typeof probeMCPServerAuth;
|
|
8
|
+
resolveMCPOAuthMetadata: typeof resolveMCPOAuthMetadata;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Inject the `oauth/register` (or `dcr/register`) provision action into the rendered
|
|
12
|
+
* `m365agents.yml` (idempotent; inserted after `teamsApp/create`, which writes the
|
|
13
|
+
* `${{TEAMS_APP_ID}}` the action references).
|
|
14
|
+
*/
|
|
15
|
+
export declare function injectMcpAuthAction(ctx: StepContext, args: {
|
|
16
|
+
ymlPath: string;
|
|
17
|
+
authType: string;
|
|
18
|
+
mcpServerUrl: string;
|
|
19
|
+
credentialFields?: {
|
|
20
|
+
clientId: boolean;
|
|
21
|
+
clientSecret: boolean;
|
|
22
|
+
scope: boolean;
|
|
23
|
+
};
|
|
24
|
+
}): Promise<Result<void, FxError>>;
|
|
25
|
+
/**
|
|
26
|
+
* Persist the deterministic registration placeholder and the static credentials collected during
|
|
27
|
+
* create. The runtime routes `SECRET_*` through its encrypted user-environment storage.
|
|
28
|
+
*/
|
|
29
|
+
export declare function persistMcpAuthRegistrationEnv(ctx: StepContext, args: {
|
|
30
|
+
authType: string;
|
|
31
|
+
mcpServerUrl: string;
|
|
32
|
+
oauthClientId?: string;
|
|
33
|
+
oauthClientSecret?: string;
|
|
34
|
+
oauthScopes?: string;
|
|
35
|
+
entraClientId?: string;
|
|
36
|
+
}): Promise<Result<void, FxError>>;
|
|
37
|
+
//# sourceMappingURL=mcpAuthScaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpAuthScaffold.d.ts","sourceRoot":"","sources":["../../../src/v4/mcp/mcpAuthScaffold.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAwB,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAkB9D,oFAAoF;AACpF,eAAO,MAAM,mBAAmB;;;CAG/B,CAAC;AAgFF;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CACjF,GACA,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAkDhC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAiBhC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT license.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.mcpAuthScaffoldDeps = void 0;
|
|
6
|
+
exports.injectMcpAuthAction = injectMcpAuthAction;
|
|
7
|
+
exports.persistMcpAuthRegistrationEnv = persistMcpAuthRegistrationEnv;
|
|
8
|
+
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
9
|
+
const neverthrow_1 = require("neverthrow");
|
|
10
|
+
const localizeUtils_1 = require("../../common/localizeUtils");
|
|
11
|
+
const mcpAuthAction_1 = require("./mcpAuthAction");
|
|
12
|
+
const mcpToolFetcher_1 = require("../../common/mcpToolFetcher");
|
|
13
|
+
const whitelist_1 = require("../runtime/whitelist");
|
|
14
|
+
/**
|
|
15
|
+
* v4 MCP-auth facade. The v4-owned YAML action mutator produces the create/add auth action shape
|
|
16
|
+
* for every auth type (`oauth`/`entra-sso` -> `oauth/register`, `oauth-dynamic` -> `dcr/register`
|
|
17
|
+
* with the v1.13 schema bump).
|
|
18
|
+
*
|
|
19
|
+
* Static OAuth and Entra credentials follow the v3 contract: the action references deterministic
|
|
20
|
+
* environment names and the runtime environment writer persists regular values separately from
|
|
21
|
+
* `SECRET_*` values. Dynamic registration has no static credential fields.
|
|
22
|
+
*/
|
|
23
|
+
const SOURCE = "Scaffold";
|
|
24
|
+
/** MCP create scaffolding persists collected credentials to the default development environment. */
|
|
25
|
+
const CREATE_ENVIRONMENT = "dev";
|
|
26
|
+
/** Indirection seam so unit tests can stub the network probes on a plain object. */
|
|
27
|
+
exports.mcpAuthScaffoldDeps = {
|
|
28
|
+
probeMCPServerAuth: mcpToolFetcher_1.probeMCPServerAuth,
|
|
29
|
+
resolveMCPOAuthMetadata: mcpToolFetcher_1.resolveMCPOAuthMetadata,
|
|
30
|
+
};
|
|
31
|
+
function systemError(name, message) {
|
|
32
|
+
return new teamsfx_api_1.SystemError({ source: SOURCE, name, message });
|
|
33
|
+
}
|
|
34
|
+
function errorMessage(error) {
|
|
35
|
+
return error instanceof Error ? error.message : String(error);
|
|
36
|
+
}
|
|
37
|
+
/** The MCP namespace, registration id, and uppercase server name derived from the server URL. */
|
|
38
|
+
function mcpAuthIdentifiers(mcpServerUrl) {
|
|
39
|
+
const namespace = (0, whitelist_1.deriveMcpServerName)(mcpServerUrl);
|
|
40
|
+
const uppercaseNamespace = namespace.toUpperCase();
|
|
41
|
+
return {
|
|
42
|
+
namespace,
|
|
43
|
+
registrationId: `MCP_DA_AUTH_ID_${uppercaseNamespace}`,
|
|
44
|
+
clientId: `MCP_DA_OAUTH_CLIENT_ID_${uppercaseNamespace}`,
|
|
45
|
+
clientSecret: `SECRET_MCP_DA_OAUTH_CLIENT_SECRET_${uppercaseNamespace}`,
|
|
46
|
+
scope: `MCP_DA_OAUTH_SCOPE_${uppercaseNamespace}`,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Best-effort resolution of the authorization-server endpoints for `oauth` / `oauth-dynamic`,
|
|
51
|
+
* mirroring the v3 create flow: probe the server for its `resource_metadata`, then resolve the
|
|
52
|
+
* well-known OAuth metadata. Any failure yields empty endpoints — the action is still injected and
|
|
53
|
+
* the developer fills the URLs before provisioning, matching v3's best-effort behavior. `entra-sso`
|
|
54
|
+
* and `none` need no endpoints (no network).
|
|
55
|
+
*/
|
|
56
|
+
async function resolveEndpoints(authType, mcpServerUrl, warn) {
|
|
57
|
+
if (authType !== "oauth" && authType !== "oauth-dynamic") {
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
const probe = await exports.mcpAuthScaffoldDeps.probeMCPServerAuth(mcpServerUrl);
|
|
62
|
+
// A mistyped server URL would otherwise leave no trace: endpoint discovery falls back to
|
|
63
|
+
// the host and happily returns its authorization server, so the scaffold looks complete.
|
|
64
|
+
// Advisory, so it covers every `notEndpoint` shape — not just the 404 that blocks at input
|
|
65
|
+
// time (ADR-0020).
|
|
66
|
+
if (probe.endpointStatus === "notEndpoint") {
|
|
67
|
+
warn?.({
|
|
68
|
+
type: "mcpServerUrlNotAnEndpoint",
|
|
69
|
+
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpServerUrlNotAnEndpoint", mcpServerUrl, String(probe.responseStatus)),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
const metadata = await exports.mcpAuthScaffoldDeps.resolveMCPOAuthMetadata(probe.authMetadataUrl, undefined, mcpServerUrl);
|
|
73
|
+
return {
|
|
74
|
+
authorizationUrl: metadata.authorizationUrl,
|
|
75
|
+
tokenUrl: metadata.tokenUrl,
|
|
76
|
+
refreshUrl: metadata.refreshUrl,
|
|
77
|
+
wellKnownUrl: metadata.wellKnownUrl,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
warn?.({
|
|
82
|
+
type: "mcpAuthMetadataError",
|
|
83
|
+
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthMetadataMissingError", errorMessage(error)),
|
|
84
|
+
});
|
|
85
|
+
return {};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Inject the `oauth/register` (or `dcr/register`) provision action into the rendered
|
|
90
|
+
* `m365agents.yml` (idempotent; inserted after `teamsApp/create`, which writes the
|
|
91
|
+
* `${{TEAMS_APP_ID}}` the action references).
|
|
92
|
+
*/
|
|
93
|
+
async function injectMcpAuthAction(ctx, args) {
|
|
94
|
+
const current = ctx.read(args.ymlPath);
|
|
95
|
+
if (current === undefined) {
|
|
96
|
+
return (0, neverthrow_1.err)(systemError("McpAuthYmlMissing", `Cannot inject the auth action: '${args.ymlPath}' was not produced by the render phase.`));
|
|
97
|
+
}
|
|
98
|
+
const identifiers = mcpAuthIdentifiers(args.mcpServerUrl);
|
|
99
|
+
const endpoints = await resolveEndpoints(args.authType, args.mcpServerUrl, ctx.warn);
|
|
100
|
+
const injectResult = (0, mcpAuthAction_1.injectMcpAuthActionYaml)(current.toString("utf8"), {
|
|
101
|
+
authType: args.authType,
|
|
102
|
+
authName: identifiers.namespace,
|
|
103
|
+
registrationId: identifiers.registrationId,
|
|
104
|
+
mcpServerUrl: args.mcpServerUrl,
|
|
105
|
+
endpoints,
|
|
106
|
+
...(args.authType === "oauth" && args.credentialFields?.clientId
|
|
107
|
+
? {
|
|
108
|
+
credentialEnvNames: {
|
|
109
|
+
clientId: identifiers.clientId,
|
|
110
|
+
...(args.credentialFields.clientSecret
|
|
111
|
+
? { clientSecret: identifiers.clientSecret }
|
|
112
|
+
: {}),
|
|
113
|
+
...(args.credentialFields.scope ? { scope: identifiers.scope } : {}),
|
|
114
|
+
},
|
|
115
|
+
}
|
|
116
|
+
: {}),
|
|
117
|
+
...(args.authType === "entra-sso" && args.credentialFields?.clientId
|
|
118
|
+
? { credentialEnvNames: { clientId: identifiers.clientId } }
|
|
119
|
+
: {}),
|
|
120
|
+
});
|
|
121
|
+
if (injectResult.isErr()) {
|
|
122
|
+
return (0, neverthrow_1.err)(injectResult.error);
|
|
123
|
+
}
|
|
124
|
+
if (injectResult.value.wellKnownUrlPlaceholderUsed) {
|
|
125
|
+
ctx.warn?.({
|
|
126
|
+
type: "mcpAuthDcrWellKnownUrlPlaceholder",
|
|
127
|
+
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthDcrPlaceholderWarning"),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
if (injectResult.value.oauthUrlPlaceholderUsed) {
|
|
131
|
+
ctx.warn?.({
|
|
132
|
+
type: "mcpAuthOAuthUrlPlaceholder",
|
|
133
|
+
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthOAuthPlaceholderWarning"),
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
ctx.write(args.ymlPath, Buffer.from(injectResult.value.yaml, "utf8"));
|
|
137
|
+
return (0, neverthrow_1.ok)(undefined);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Persist the deterministic registration placeholder and the static credentials collected during
|
|
141
|
+
* create. The runtime routes `SECRET_*` through its encrypted user-environment storage.
|
|
142
|
+
*/
|
|
143
|
+
function persistMcpAuthRegistrationEnv(ctx, args) {
|
|
144
|
+
const identifiers = mcpAuthIdentifiers(args.mcpServerUrl);
|
|
145
|
+
const values = { [identifiers.registrationId]: "" };
|
|
146
|
+
if (args.authType === "oauth") {
|
|
147
|
+
if (args.oauthClientId !== undefined) {
|
|
148
|
+
values[identifiers.clientId] = args.oauthClientId;
|
|
149
|
+
}
|
|
150
|
+
if (args.oauthClientSecret !== undefined) {
|
|
151
|
+
values[identifiers.clientSecret] = args.oauthClientSecret;
|
|
152
|
+
}
|
|
153
|
+
if (args.oauthScopes?.trim()) {
|
|
154
|
+
values[identifiers.scope] = args.oauthScopes;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else if (args.authType === "entra-sso" && args.entraClientId !== undefined) {
|
|
158
|
+
values[identifiers.clientId] = args.entraClientId;
|
|
159
|
+
}
|
|
160
|
+
return ctx.writeEnvironment(CREATE_ENVIRONMENT, values);
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=mcpAuthScaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpAuthScaffold.js","sourceRoot":"","sources":["../../../src/v4/mcp/mcpAuthScaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export interface TemplateLocator {
|
|
|
13
13
|
/** Names which declarative package inside the channel zip to open. */
|
|
14
14
|
export interface DeclarativeLocator {
|
|
15
15
|
/** The package namespace: `create` or `modify`. */
|
|
16
|
-
kind:
|
|
16
|
+
kind: "create" | "modify";
|
|
17
17
|
/** The package id within the kind, e.g. `da/mcp-server`. */
|
|
18
18
|
templateId: string;
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataModel.d.ts","sourceRoot":"","sources":["../../../src/v4/model/dataModel.ts"],"names":[],"mappings":"AAGA,4DAA4D;AAI5D,wEAAwE;AACxE,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAIxD,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD,yEAAyE;AACzE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAI3D,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"dataModel.d.ts","sourceRoot":"","sources":["../../../src/v4/model/dataModel.ts"],"names":[],"mappings":"AAGA,4DAA4D;AAI5D,wEAAwE;AACxE,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAIxD,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD,yEAAyE;AACzE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAI3D,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;CACd"}
|