@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.
Files changed (370) hide show
  1. package/build/client/aadAppClient.d.ts.map +1 -1
  2. package/build/client/aadAppClient.js +6 -6
  3. package/build/client/aadAppClient.js.map +1 -1
  4. package/build/common/featureFlags.d.ts +0 -5
  5. package/build/common/featureFlags.d.ts.map +1 -1
  6. package/build/common/featureFlags.js +0 -5
  7. package/build/common/featureFlags.js.map +1 -1
  8. package/build/common/httpProxy.d.ts +21 -0
  9. package/build/common/httpProxy.d.ts.map +1 -0
  10. package/build/common/httpProxy.js +117 -0
  11. package/build/common/httpProxy.js.map +1 -0
  12. package/build/common/mcpToolFetcher.d.ts +90 -0
  13. package/build/common/mcpToolFetcher.d.ts.map +1 -0
  14. package/build/common/mcpToolFetcher.js +404 -0
  15. package/build/common/mcpToolFetcher.js.map +1 -0
  16. package/build/common/odrProvider.d.ts +43 -0
  17. package/build/common/odrProvider.d.ts.map +1 -0
  18. package/build/common/odrProvider.js +154 -0
  19. package/build/common/odrProvider.js.map +1 -0
  20. package/build/common/openApiParserOptions.d.ts +3 -0
  21. package/build/common/openApiParserOptions.d.ts.map +1 -0
  22. package/build/common/openApiParserOptions.js +61 -0
  23. package/build/common/openApiParserOptions.js.map +1 -0
  24. package/build/common/secretmasker/dict.d.ts.map +1 -1
  25. package/build/common/secretmasker/dict.js +5 -2
  26. package/build/common/secretmasker/dict.js.map +1 -1
  27. package/build/common/secretmasker/feature.js.map +1 -1
  28. package/build/common/templates-config.json +4 -4
  29. package/build/component/coordinator/index.d.ts.map +1 -1
  30. package/build/component/coordinator/index.js.map +1 -1
  31. package/build/component/deps-checker/internal/dotnetChecker.js.map +1 -1
  32. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts +3 -0
  33. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts.map +1 -1
  34. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +38 -3
  35. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.map +1 -1
  36. package/build/component/driver/script/scriptDriver.js +1 -1
  37. package/build/component/driver/script/scriptDriver.js.map +1 -1
  38. package/build/component/driver/teamsApp/create.d.ts.map +1 -1
  39. package/build/component/driver/teamsApp/create.js +3 -3
  40. package/build/component/driver/teamsApp/create.js.map +1 -1
  41. package/build/component/driver/teamsApp/createAppPackage.d.ts +1 -0
  42. package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
  43. package/build/component/driver/teamsApp/createAppPackage.js +23 -0
  44. package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
  45. package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.js.map +1 -1
  46. package/build/component/generator/declarativeAgent/helper.d.ts.map +1 -1
  47. package/build/component/generator/declarativeAgent/helper.js +25 -2
  48. package/build/component/generator/declarativeAgent/helper.js.map +1 -1
  49. package/build/component/generator/generatorAction.d.ts +3 -1
  50. package/build/component/generator/generatorAction.d.ts.map +1 -1
  51. package/build/component/generator/generatorAction.js.map +1 -1
  52. package/build/component/generator/officeAddin/generator.d.ts +1 -0
  53. package/build/component/generator/officeAddin/generator.d.ts.map +1 -1
  54. package/build/component/generator/officeAddin/generator.js +109 -2
  55. package/build/component/generator/officeAddin/generator.js.map +1 -1
  56. package/build/component/generator/openApiSpec/helper.d.ts +2 -3
  57. package/build/component/generator/openApiSpec/helper.d.ts.map +1 -1
  58. package/build/component/generator/openApiSpec/helper.js +19 -57
  59. package/build/component/generator/openApiSpec/helper.js.map +1 -1
  60. package/build/component/generator/templateHelper.d.ts +10 -2
  61. package/build/component/generator/templateHelper.d.ts.map +1 -1
  62. package/build/component/generator/templateHelper.js +16 -3
  63. package/build/component/generator/templateHelper.js.map +1 -1
  64. package/build/component/generator/templates/metadata/index.d.ts +15 -0
  65. package/build/component/generator/templates/metadata/index.d.ts.map +1 -1
  66. package/build/component/generator/templates/metadata/index.js +39 -0
  67. package/build/component/generator/templates/metadata/index.js.map +1 -1
  68. package/build/component/generator/templates/templateNames.d.ts +2 -0
  69. package/build/component/generator/templates/templateNames.d.ts.map +1 -1
  70. package/build/component/generator/templates/templateNames.js +2 -0
  71. package/build/component/generator/templates/templateNames.js.map +1 -1
  72. package/build/component/generator/utils.d.ts.map +1 -1
  73. package/build/component/generator/utils.js +6 -0
  74. package/build/component/generator/utils.js.map +1 -1
  75. package/build/component/generator/v4TemplateBridge.d.ts +4 -1
  76. package/build/component/generator/v4TemplateBridge.d.ts.map +1 -1
  77. package/build/component/generator/v4TemplateBridge.js +19 -3
  78. package/build/component/generator/v4TemplateBridge.js.map +1 -1
  79. package/build/component/utils/envUtil.d.ts.map +1 -1
  80. package/build/component/utils/envUtil.js +2 -2
  81. package/build/component/utils/envUtil.js.map +1 -1
  82. package/build/component/utils/fileOperation.d.ts.map +1 -1
  83. package/build/component/utils/fileOperation.js +4 -1
  84. package/build/component/utils/fileOperation.js.map +1 -1
  85. package/build/component/utils/mcpAuthScaffolder.d.ts +28 -0
  86. package/build/component/utils/mcpAuthScaffolder.d.ts.map +1 -1
  87. package/build/component/utils/mcpAuthScaffolder.js +39 -4
  88. package/build/component/utils/mcpAuthScaffolder.js.map +1 -1
  89. package/build/component/utils/mcpToolFetcher.d.ts +1 -72
  90. package/build/component/utils/mcpToolFetcher.d.ts.map +1 -1
  91. package/build/component/utils/mcpToolFetcher.js +1 -227
  92. package/build/component/utils/mcpToolFetcher.js.map +1 -1
  93. package/build/component/utils/odrProvider.d.ts +1 -55
  94. package/build/component/utils/odrProvider.d.ts.map +1 -1
  95. package/build/component/utils/odrProvider.js +1 -101
  96. package/build/component/utils/odrProvider.js.map +1 -1
  97. package/build/core/FxCore.d.ts.map +1 -1
  98. package/build/core/FxCore.declarativeAgent.d.ts.map +1 -1
  99. package/build/core/FxCore.declarativeAgent.js +110 -3
  100. package/build/core/FxCore.declarativeAgent.js.map +1 -1
  101. package/build/core/FxCore.js +4 -6
  102. package/build/core/FxCore.js.map +1 -1
  103. package/build/core/createFrontDoorAdapters.d.ts +4 -27
  104. package/build/core/createFrontDoorAdapters.d.ts.map +1 -1
  105. package/build/core/createFrontDoorAdapters.js +17 -157
  106. package/build/core/createFrontDoorAdapters.js.map +1 -1
  107. package/build/core/createProjectFrontDoor.d.ts +10 -12
  108. package/build/core/createProjectFrontDoor.d.ts.map +1 -1
  109. package/build/core/createProjectFrontDoor.js +143 -106
  110. package/build/core/createProjectFrontDoor.js.map +1 -1
  111. package/build/core/modifyProjectFrontDoor.d.ts +0 -1
  112. package/build/core/modifyProjectFrontDoor.d.ts.map +1 -1
  113. package/build/core/modifyProjectFrontDoor.js +0 -2
  114. package/build/core/modifyProjectFrontDoor.js.map +1 -1
  115. package/build/index.d.ts +3 -2
  116. package/build/index.d.ts.map +1 -1
  117. package/build/index.js +9 -1
  118. package/build/index.js.map +1 -1
  119. package/build/question/create.d.ts.map +1 -1
  120. package/build/question/create.js +2 -1
  121. package/build/question/create.js.map +1 -1
  122. package/build/question/inputs/AddKnowledgeInputs.d.ts.map +1 -1
  123. package/build/question/inputs/CreateProjectInputs.d.ts +4 -0
  124. package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -1
  125. package/build/question/options/CreateProjectOptions.d.ts.map +1 -1
  126. package/build/question/options/CreateProjectOptions.js +14 -0
  127. package/build/question/options/CreateProjectOptions.js.map +1 -1
  128. package/build/question/other.d.ts.map +1 -1
  129. package/build/question/other.js +11 -1
  130. package/build/question/other.js.map +1 -1
  131. package/build/question/questionNames.d.ts +2 -0
  132. package/build/question/questionNames.d.ts.map +1 -1
  133. package/build/question/questionNames.js +2 -0
  134. package/build/question/questionNames.js.map +1 -1
  135. package/build/question/scaffold/constructNode.d.ts +3 -1
  136. package/build/question/scaffold/constructNode.d.ts.map +1 -1
  137. package/build/question/scaffold/constructNode.js +50 -0
  138. package/build/question/scaffold/constructNode.js.map +1 -1
  139. package/build/question/scaffold/vsc/CapabilityOptions.d.ts +2 -0
  140. package/build/question/scaffold/vsc/CapabilityOptions.d.ts.map +1 -1
  141. package/build/question/scaffold/vsc/CapabilityOptions.js +16 -0
  142. package/build/question/scaffold/vsc/CapabilityOptions.js.map +1 -1
  143. package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts +19 -1
  144. package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts.map +1 -1
  145. package/build/question/scaffold/vsc/teamsProjectTypeNode.js +39 -7
  146. package/build/question/scaffold/vsc/teamsProjectTypeNode.js.map +1 -1
  147. package/build/v4/buildTarget/parseSelector.d.ts +6 -2
  148. package/build/v4/buildTarget/parseSelector.d.ts.map +1 -1
  149. package/build/v4/buildTarget/parseSelector.js +58 -45
  150. package/build/v4/buildTarget/parseSelector.js.map +1 -1
  151. package/build/v4/buildTarget/resolveBuildTarget.d.ts +21 -7
  152. package/build/v4/buildTarget/resolveBuildTarget.d.ts.map +1 -1
  153. package/build/v4/buildTarget/resolveBuildTarget.js +97 -52
  154. package/build/v4/buildTarget/resolveBuildTarget.js.map +1 -1
  155. package/build/v4/collectInputs/collectInputs.d.ts +51 -10
  156. package/build/v4/collectInputs/collectInputs.d.ts.map +1 -1
  157. package/build/v4/collectInputs/collectInputs.js +287 -91
  158. package/build/v4/collectInputs/collectInputs.js.map +1 -1
  159. package/build/v4/distribution/createQuestions.d.ts.map +1 -1
  160. package/build/v4/distribution/createQuestions.js +2 -29
  161. package/build/v4/distribution/createQuestions.js.map +1 -1
  162. package/build/v4/distribution/declarativePackage.d.ts.map +1 -1
  163. package/build/v4/distribution/declarativePackage.js +2 -30
  164. package/build/v4/distribution/declarativePackage.js.map +1 -1
  165. package/build/v4/distribution/questionFragments.d.ts +11 -0
  166. package/build/v4/distribution/questionFragments.d.ts.map +1 -0
  167. package/build/v4/distribution/questionFragments.js +130 -0
  168. package/build/v4/distribution/questionFragments.js.map +1 -0
  169. package/build/v4/engineVersion.d.ts +7 -0
  170. package/build/v4/engineVersion.d.ts.map +1 -0
  171. package/build/v4/engineVersion.js +12 -0
  172. package/build/v4/engineVersion.js.map +1 -0
  173. package/build/v4/expression/evaluateExpression.d.ts +13 -0
  174. package/build/v4/expression/evaluateExpression.d.ts.map +1 -1
  175. package/build/v4/expression/evaluateExpression.js +57 -0
  176. package/build/v4/expression/evaluateExpression.js.map +1 -1
  177. package/build/v4/index.d.ts +7 -0
  178. package/build/v4/index.d.ts.map +1 -1
  179. package/build/v4/index.js +7 -0
  180. package/build/v4/index.js.map +1 -1
  181. package/build/v4/inspection/scaffoldCatalog.d.ts +28 -0
  182. package/build/v4/inspection/scaffoldCatalog.d.ts.map +1 -0
  183. package/build/v4/inspection/scaffoldCatalog.js +66 -0
  184. package/build/v4/inspection/scaffoldCatalog.js.map +1 -0
  185. package/build/v4/inspection/scaffoldMetadataSource.d.ts +6 -0
  186. package/build/v4/inspection/scaffoldMetadataSource.d.ts.map +1 -0
  187. package/build/v4/inspection/scaffoldMetadataSource.js +78 -0
  188. package/build/v4/inspection/scaffoldMetadataSource.js.map +1 -0
  189. package/build/v4/mcp/mcpAuthAction.d.ts +36 -0
  190. package/build/v4/mcp/mcpAuthAction.d.ts.map +1 -0
  191. package/build/v4/mcp/mcpAuthAction.js +177 -0
  192. package/build/v4/mcp/mcpAuthAction.js.map +1 -0
  193. package/build/v4/mcp/mcpAuthScaffold.d.ts +37 -0
  194. package/build/v4/mcp/mcpAuthScaffold.d.ts.map +1 -0
  195. package/build/v4/mcp/mcpAuthScaffold.js +162 -0
  196. package/build/v4/mcp/mcpAuthScaffold.js.map +1 -0
  197. package/build/v4/model/dataModel.d.ts +1 -1
  198. package/build/v4/model/dataModel.d.ts.map +1 -1
  199. package/build/v4/pipeline/runScaffoldPipeline.d.ts +27 -5
  200. package/build/v4/pipeline/runScaffoldPipeline.d.ts.map +1 -1
  201. package/build/v4/pipeline/runScaffoldPipeline.js +64 -10
  202. package/build/v4/pipeline/runScaffoldPipeline.js.map +1 -1
  203. package/build/v4/providers/createOptionsProviders.d.ts +11 -0
  204. package/build/v4/providers/createOptionsProviders.d.ts.map +1 -0
  205. package/build/v4/providers/createOptionsProviders.js +268 -0
  206. package/build/v4/providers/createOptionsProviders.js.map +1 -0
  207. package/build/v4/renderContext/buildRenderContext.d.ts.map +1 -1
  208. package/build/v4/renderContext/buildRenderContext.js +4 -6
  209. package/build/v4/renderContext/buildRenderContext.js.map +1 -1
  210. package/build/v4/runtime/generalSensitivityLabel.d.ts +5 -0
  211. package/build/v4/runtime/generalSensitivityLabel.d.ts.map +1 -0
  212. package/build/v4/runtime/generalSensitivityLabel.js +36 -0
  213. package/build/v4/runtime/generalSensitivityLabel.js.map +1 -0
  214. package/build/v4/runtime/inMemoryRuntime.d.ts +7 -1
  215. package/build/v4/runtime/inMemoryRuntime.d.ts.map +1 -1
  216. package/build/v4/runtime/inMemoryRuntime.js +25 -3
  217. package/build/v4/runtime/inMemoryRuntime.js.map +1 -1
  218. package/build/v4/runtime/packageParse.d.ts.map +1 -1
  219. package/build/v4/runtime/packageParse.js +64 -8
  220. package/build/v4/runtime/packageParse.js.map +1 -1
  221. package/build/v4/runtime/realRuntime.d.ts +3 -1
  222. package/build/v4/runtime/realRuntime.d.ts.map +1 -1
  223. package/build/v4/runtime/realRuntime.js +3 -2
  224. package/build/v4/runtime/realRuntime.js.map +1 -1
  225. package/build/v4/runtime/renderMustache.d.ts.map +1 -1
  226. package/build/v4/runtime/renderMustache.js +13 -4
  227. package/build/v4/runtime/renderMustache.js.map +1 -1
  228. package/build/v4/runtime/runtimeRegistry.d.ts +12 -3
  229. package/build/v4/runtime/runtimeRegistry.d.ts.map +1 -1
  230. package/build/v4/runtime/runtimeRegistry.js +123 -17
  231. package/build/v4/runtime/runtimeRegistry.js.map +1 -1
  232. package/build/v4/runtime/scaffold.d.ts +1 -0
  233. package/build/v4/runtime/scaffold.d.ts.map +1 -1
  234. package/build/v4/runtime/scaffold.js +1 -20
  235. package/build/v4/runtime/scaffold.js.map +1 -1
  236. package/build/v4/runtime/steps/daAction.d.ts.map +1 -1
  237. package/build/v4/runtime/steps/daAction.js +3 -111
  238. package/build/v4/runtime/steps/daAction.js.map +1 -1
  239. package/build/v4/runtime/steps/daSensitivity.d.ts +14 -0
  240. package/build/v4/runtime/steps/daSensitivity.d.ts.map +1 -0
  241. package/build/v4/runtime/steps/daSensitivity.js +50 -0
  242. package/build/v4/runtime/steps/daSensitivity.js.map +1 -0
  243. package/build/v4/runtime/steps/mcpAuth.d.ts +5 -2
  244. package/build/v4/runtime/steps/mcpAuth.d.ts.map +1 -1
  245. package/build/v4/runtime/steps/mcpAuth.js +37 -66
  246. package/build/v4/runtime/steps/mcpAuth.js.map +1 -1
  247. package/build/v4/runtime/steps/mcpLocal.d.ts +0 -4
  248. package/build/v4/runtime/steps/mcpLocal.d.ts.map +1 -1
  249. package/build/v4/runtime/steps/mcpLocal.js +11 -31
  250. package/build/v4/runtime/steps/mcpLocal.js.map +1 -1
  251. package/build/v4/runtime/steps/mcpStatic.d.ts +1 -1
  252. package/build/v4/runtime/steps/mcpStatic.d.ts.map +1 -1
  253. package/build/v4/runtime/steps/mcpStatic.js +14 -32
  254. package/build/v4/runtime/steps/mcpStatic.js.map +1 -1
  255. package/build/v4/runtime/steps/metaOs.d.ts.map +1 -1
  256. package/build/v4/runtime/steps/metaOs.js +39 -51
  257. package/build/v4/runtime/steps/metaOs.js.map +1 -1
  258. package/build/v4/runtime/steps/officeAddin.d.ts.map +1 -1
  259. package/build/v4/runtime/steps/officeAddin.js +7 -12
  260. package/build/v4/runtime/steps/officeAddin.js.map +1 -1
  261. package/build/v4/runtime/steps/openApi.d.ts.map +1 -1
  262. package/build/v4/runtime/steps/openApi.js +85 -566
  263. package/build/v4/runtime/steps/openApi.js.map +1 -1
  264. package/build/v4/runtime/steps/openApiCustomApi.d.ts +5 -0
  265. package/build/v4/runtime/steps/openApiCustomApi.d.ts.map +1 -0
  266. package/build/v4/runtime/steps/openApiCustomApi.js +385 -0
  267. package/build/v4/runtime/steps/openApiCustomApi.js.map +1 -0
  268. package/build/v4/runtime/whitelist.d.ts +27 -0
  269. package/build/v4/runtime/whitelist.d.ts.map +1 -1
  270. package/build/v4/runtime/whitelist.js +156 -1
  271. package/build/v4/runtime/whitelist.js.map +1 -1
  272. package/build/v4/runtime/withTempDirectory.d.ts +10 -0
  273. package/build/v4/runtime/withTempDirectory.d.ts.map +1 -0
  274. package/build/v4/runtime/withTempDirectory.js +41 -0
  275. package/build/v4/runtime/withTempDirectory.js.map +1 -0
  276. package/build/v4/surface/createFloorTail.d.ts +12 -0
  277. package/build/v4/surface/createFloorTail.d.ts.map +1 -0
  278. package/build/v4/surface/createFloorTail.js +138 -0
  279. package/build/v4/surface/createFloorTail.js.map +1 -0
  280. package/build/v4/surface/createInputs.d.ts +25 -3
  281. package/build/v4/surface/createInputs.d.ts.map +1 -1
  282. package/build/v4/surface/createInputs.js +54 -431
  283. package/build/v4/surface/createInputs.js.map +1 -1
  284. package/build/v4/surface/createSelectorWalk.d.ts +8 -3
  285. package/build/v4/surface/createSelectorWalk.d.ts.map +1 -1
  286. package/build/v4/surface/createSelectorWalk.js +21 -11
  287. package/build/v4/surface/createSelectorWalk.js.map +1 -1
  288. package/build/v4/surface/deriveCreateOptions.d.ts.map +1 -1
  289. package/build/v4/surface/deriveCreateOptions.js +5 -2
  290. package/build/v4/surface/deriveCreateOptions.js.map +1 -1
  291. package/build/v4/surface/localizePrompt.d.ts +11 -0
  292. package/build/v4/surface/localizePrompt.d.ts.map +1 -0
  293. package/build/v4/surface/localizePrompt.js +32 -0
  294. package/build/v4/surface/localizePrompt.js.map +1 -0
  295. package/build/v4/surface/modifySelectorWalk.d.ts.map +1 -1
  296. package/build/v4/surface/modifySelectorWalk.js +0 -3
  297. package/build/v4/surface/modifySelectorWalk.js.map +1 -1
  298. package/build/v4/surface/uiPromptUI.d.ts.map +1 -1
  299. package/build/v4/surface/uiPromptUI.js +45 -45
  300. package/build/v4/surface/uiPromptUI.js.map +1 -1
  301. package/build/v4/validation/capabilityCatalog.d.ts +8 -0
  302. package/build/v4/validation/capabilityCatalog.d.ts.map +1 -0
  303. package/build/v4/validation/capabilityCatalog.js +62 -0
  304. package/build/v4/validation/capabilityCatalog.js.map +1 -0
  305. package/build/v4/validation/templateArchiveValidation.d.ts +15 -0
  306. package/build/v4/validation/templateArchiveValidation.d.ts.map +1 -0
  307. package/build/v4/validation/templateArchiveValidation.js +297 -0
  308. package/build/v4/validation/templateArchiveValidation.js.map +1 -0
  309. package/build/v4/validation/validateTemplatePackage.d.ts +21 -2
  310. package/build/v4/validation/validateTemplatePackage.d.ts.map +1 -1
  311. package/build/v4/validation/validateTemplatePackage.js +155 -31
  312. package/build/v4/validation/validateTemplatePackage.js.map +1 -1
  313. package/build/v4/validators/createInputValidators.d.ts +7 -0
  314. package/build/v4/validators/createInputValidators.d.ts.map +1 -0
  315. package/build/v4/validators/createInputValidators.js +77 -0
  316. package/build/v4/validators/createInputValidators.js.map +1 -0
  317. package/build/v4/validators/mcpCredentialValidators.d.ts +5 -0
  318. package/build/v4/validators/mcpCredentialValidators.d.ts.map +1 -0
  319. package/build/v4/validators/mcpCredentialValidators.js +13 -0
  320. package/build/v4/validators/mcpCredentialValidators.js.map +1 -0
  321. package/build/v4/validators/mcpServerUrlValidator.d.ts +9 -0
  322. package/build/v4/validators/mcpServerUrlValidator.d.ts.map +1 -0
  323. package/build/v4/validators/mcpServerUrlValidator.js +15 -0
  324. package/build/v4/validators/mcpServerUrlValidator.js.map +1 -0
  325. package/package.json +29 -23
  326. package/resource/package.nls.cs.json +56 -54
  327. package/resource/package.nls.de.json +56 -54
  328. package/resource/package.nls.es.json +55 -53
  329. package/resource/package.nls.fr.json +56 -54
  330. package/resource/package.nls.it.json +55 -53
  331. package/resource/package.nls.ja.json +56 -54
  332. package/resource/package.nls.json +10 -3
  333. package/resource/package.nls.ko.json +56 -54
  334. package/resource/package.nls.pl.json +56 -54
  335. package/resource/package.nls.pt-BR.json +56 -54
  336. package/resource/package.nls.ru.json +56 -54
  337. package/resource/package.nls.tr.json +56 -54
  338. package/resource/package.nls.zh-Hans.json +56 -54
  339. package/resource/package.nls.zh-Hant.json +56 -54
  340. package/resource/templates/package.nls.cs.json +22 -9
  341. package/resource/templates/package.nls.de.json +22 -9
  342. package/resource/templates/package.nls.es.json +22 -9
  343. package/resource/templates/package.nls.fr.json +22 -9
  344. package/resource/templates/package.nls.it.json +22 -9
  345. package/resource/templates/package.nls.ja.json +22 -9
  346. package/resource/templates/package.nls.json +16 -3
  347. package/resource/templates/package.nls.ko.json +22 -9
  348. package/resource/templates/package.nls.pl.json +22 -9
  349. package/resource/templates/package.nls.pt-BR.json +22 -9
  350. package/resource/templates/package.nls.ru.json +22 -9
  351. package/resource/templates/package.nls.tr.json +22 -9
  352. package/resource/templates/package.nls.zh-Hans.json +22 -9
  353. package/resource/templates/package.nls.zh-Hant.json +22 -9
  354. package/resource/templates/package.nls.zh-cn.json +7 -1
  355. package/resource/templates/package.nls.zh-tw.json +7 -1
  356. package/templates/fallback/common.zip +0 -0
  357. package/templates/fallback/csharp.zip +0 -0
  358. package/templates/fallback/js.zip +0 -0
  359. package/templates/fallback/python.zip +0 -0
  360. package/templates/fallback/ts.zip +0 -0
  361. package/templates/metadata/allTemplates.json +16 -2
  362. package/templates/metadata.zip +0 -0
  363. package/templates/ui/wizardNode.json +24 -0
  364. package/templates/v4/create-selector.json +30 -5
  365. package/templates/v4/floor.json +1 -1
  366. package/templates/v4/modify-selector.json +1 -6
  367. package/templates/v4/templates-metadata.zip +0 -0
  368. package/templates/v4/templates.zip +0 -0
  369. package/templates/configs/local/typescript/.gitignore +0 -1
  370. 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: string;
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,MAAM,CAAC;IACb,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"}
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"}