@microsoft/teamsfx-core 2.0.8-alpha.e17ffd4d1.0 → 2.0.8-alpha.e1b11d5b2.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 (390) hide show
  1. package/build/common/constants.d.ts +6 -19
  2. package/build/common/constants.d.ts.map +1 -1
  3. package/build/common/constants.js +6 -20
  4. package/build/common/constants.js.map +1 -1
  5. package/build/common/deps-checker/constant/message.d.ts +1 -1
  6. package/build/common/deps-checker/constant/message.d.ts.map +1 -1
  7. package/build/common/deps-checker/constant/message.js +1 -1
  8. package/build/common/deps-checker/constant/message.js.map +1 -1
  9. package/build/common/deps-checker/util/fileHelper.js +1 -1
  10. package/build/common/deps-checker/util/fileHelper.js.map +1 -1
  11. package/build/common/featureFlags.d.ts +70 -7
  12. package/build/common/featureFlags.d.ts.map +1 -1
  13. package/build/common/featureFlags.js +66 -42
  14. package/build/common/featureFlags.js.map +1 -1
  15. package/build/common/m365/launchHelper.d.ts +1 -1
  16. package/build/common/m365/launchHelper.d.ts.map +1 -1
  17. package/build/common/m365/launchHelper.js +3 -6
  18. package/build/common/m365/launchHelper.js.map +1 -1
  19. package/build/common/m365/packageService.d.ts +1 -1
  20. package/build/common/m365/packageService.d.ts.map +1 -1
  21. package/build/common/m365/packageService.js +18 -39
  22. package/build/common/m365/packageService.js.map +1 -1
  23. package/build/common/projectSettingsHelper.d.ts +7 -2
  24. package/build/common/projectSettingsHelper.d.ts.map +1 -1
  25. package/build/common/projectSettingsHelper.js +25 -7
  26. package/build/common/projectSettingsHelper.js.map +1 -1
  27. package/build/common/projectTypeChecker.d.ts +2 -0
  28. package/build/common/projectTypeChecker.d.ts.map +1 -1
  29. package/build/common/projectTypeChecker.js +16 -0
  30. package/build/common/projectTypeChecker.js.map +1 -1
  31. package/build/common/samples.d.ts +1 -2
  32. package/build/common/samples.d.ts.map +1 -1
  33. package/build/common/samples.js +37 -83
  34. package/build/common/samples.js.map +1 -1
  35. package/build/common/stringUtils.d.ts +10 -0
  36. package/build/common/stringUtils.d.ts.map +1 -0
  37. package/build/common/stringUtils.js +121 -0
  38. package/build/common/stringUtils.js.map +1 -0
  39. package/build/common/telemetry.d.ts +20 -2
  40. package/build/common/telemetry.d.ts.map +1 -1
  41. package/build/common/telemetry.js +43 -6
  42. package/build/common/telemetry.js.map +1 -1
  43. package/build/common/templates-config.json +1 -1
  44. package/build/common/wrappedAxiosClient.d.ts.map +1 -1
  45. package/build/common/wrappedAxiosClient.js +7 -5
  46. package/build/common/wrappedAxiosClient.js.map +1 -1
  47. package/build/component/configManager/constant.d.ts +2 -1
  48. package/build/component/configManager/constant.d.ts.map +1 -1
  49. package/build/component/configManager/constant.js +1 -0
  50. package/build/component/configManager/constant.js.map +1 -1
  51. package/build/component/configManager/validator.js +1 -1
  52. package/build/component/configManager/validator.js.map +1 -1
  53. package/build/component/constants.js +2 -2
  54. package/build/component/constants.js.map +1 -1
  55. package/build/component/coordinator/index.d.ts +0 -38
  56. package/build/component/coordinator/index.d.ts.map +1 -1
  57. package/build/component/coordinator/index.js +133 -199
  58. package/build/component/coordinator/index.js.map +1 -1
  59. package/build/component/driver/aad/create.d.ts +1 -0
  60. package/build/component/driver/aad/create.d.ts.map +1 -1
  61. package/build/component/driver/aad/create.js +22 -11
  62. package/build/component/driver/aad/create.js.map +1 -1
  63. package/build/component/driver/aad/error/aadManifestError.d.ts +6 -0
  64. package/build/component/driver/aad/error/aadManifestError.d.ts.map +1 -1
  65. package/build/component/driver/aad/error/aadManifestError.js +25 -1
  66. package/build/component/driver/aad/error/aadManifestError.js.map +1 -1
  67. package/build/component/driver/aad/error/clientSecretNotAllowedError.d.ts +5 -0
  68. package/build/component/driver/aad/error/clientSecretNotAllowedError.d.ts.map +1 -0
  69. package/build/component/driver/aad/error/clientSecretNotAllowedError.js +23 -0
  70. package/build/component/driver/aad/error/clientSecretNotAllowedError.js.map +1 -0
  71. package/build/component/driver/aad/error/credentialInvalidLifetimeError.d.ts +5 -0
  72. package/build/component/driver/aad/error/credentialInvalidLifetimeError.d.ts.map +1 -0
  73. package/build/component/driver/aad/error/credentialInvalidLifetimeError.js +23 -0
  74. package/build/component/driver/aad/error/credentialInvalidLifetimeError.js.map +1 -0
  75. package/build/component/driver/aad/interface/IAADDefinition.d.ts +1 -0
  76. package/build/component/driver/aad/interface/IAADDefinition.d.ts.map +1 -1
  77. package/build/component/driver/aad/interface/createAadAppArgs.d.ts +3 -0
  78. package/build/component/driver/aad/interface/createAadAppArgs.d.ts.map +1 -1
  79. package/build/component/driver/aad/permissions/index.d.ts.map +1 -1
  80. package/build/component/driver/aad/permissions/index.js +9 -0
  81. package/build/component/driver/aad/permissions/index.js.map +1 -1
  82. package/build/component/driver/aad/utility/aadAppClient.d.ts +3 -2
  83. package/build/component/driver/aad/utility/aadAppClient.d.ts.map +1 -1
  84. package/build/component/driver/aad/utility/aadAppClient.js +35 -17
  85. package/build/component/driver/aad/utility/aadAppClient.js.map +1 -1
  86. package/build/component/driver/aad/utility/aadManifestHelper.d.ts.map +1 -1
  87. package/build/component/driver/aad/utility/aadManifestHelper.js +9 -1
  88. package/build/component/driver/aad/utility/aadManifestHelper.js.map +1 -1
  89. package/build/component/driver/aad/utility/constants.d.ts +6 -0
  90. package/build/component/driver/aad/utility/constants.d.ts.map +1 -1
  91. package/build/component/driver/aad/utility/constants.js +8 -2
  92. package/build/component/driver/aad/utility/constants.js.map +1 -1
  93. package/build/component/driver/apiKey/create.d.ts +0 -3
  94. package/build/component/driver/apiKey/create.d.ts.map +1 -1
  95. package/build/component/driver/apiKey/create.js +23 -48
  96. package/build/component/driver/apiKey/create.js.map +1 -1
  97. package/build/component/driver/apiKey/interface/createApiKeyArgs.d.ts +2 -0
  98. package/build/component/driver/apiKey/interface/createApiKeyArgs.d.ts.map +1 -1
  99. package/build/component/driver/apiKey/interface/updateApiKeyArgs.d.ts +9 -0
  100. package/build/component/driver/apiKey/interface/updateApiKeyArgs.d.ts.map +1 -0
  101. package/build/component/driver/apiKey/interface/updateApiKeyArgs.js +5 -0
  102. package/build/component/driver/apiKey/interface/updateApiKeyArgs.js.map +1 -0
  103. package/build/component/driver/apiKey/update.d.ts +13 -0
  104. package/build/component/driver/apiKey/update.d.ts.map +1 -0
  105. package/build/component/driver/apiKey/update.js +182 -0
  106. package/build/component/driver/apiKey/update.js.map +1 -0
  107. package/build/component/driver/apiKey/utility/constants.d.ts +2 -0
  108. package/build/component/driver/apiKey/utility/constants.d.ts.map +1 -1
  109. package/build/component/driver/apiKey/utility/constants.js +2 -0
  110. package/build/component/driver/apiKey/utility/constants.js.map +1 -1
  111. package/build/component/driver/apiKey/utility/utility.d.ts +7 -0
  112. package/build/component/driver/apiKey/utility/utility.d.ts.map +1 -0
  113. package/build/component/driver/apiKey/utility/utility.js +55 -0
  114. package/build/component/driver/apiKey/utility/utility.js.map +1 -0
  115. package/build/component/driver/deploy/spfx/utility/spoClient.d.ts.map +1 -1
  116. package/build/component/driver/deploy/spfx/utility/spoClient.js +3 -1
  117. package/build/component/driver/deploy/spfx/utility/spoClient.js.map +1 -1
  118. package/build/component/driver/index.d.ts +3 -0
  119. package/build/component/driver/index.d.ts.map +1 -1
  120. package/build/component/driver/index.js +3 -0
  121. package/build/component/driver/index.js.map +1 -1
  122. package/build/component/driver/middleware/addSWADeployTelemetry.js +2 -2
  123. package/build/component/driver/middleware/addSWADeployTelemetry.js.map +1 -1
  124. package/build/component/driver/oauth/create.d.ts +12 -0
  125. package/build/component/driver/oauth/create.d.ts.map +1 -0
  126. package/build/component/driver/oauth/create.js +193 -0
  127. package/build/component/driver/oauth/create.js.map +1 -0
  128. package/build/component/driver/oauth/error/oauthAuthInfoInvalid.d.ts +5 -0
  129. package/build/component/driver/oauth/error/oauthAuthInfoInvalid.d.ts.map +1 -0
  130. package/build/component/driver/oauth/error/oauthAuthInfoInvalid.js +21 -0
  131. package/build/component/driver/oauth/error/oauthAuthInfoInvalid.js.map +1 -0
  132. package/build/component/driver/oauth/error/oauthDomainInvalid.d.ts +5 -0
  133. package/build/component/driver/oauth/error/oauthDomainInvalid.d.ts.map +1 -0
  134. package/build/component/driver/oauth/error/oauthDomainInvalid.js +22 -0
  135. package/build/component/driver/oauth/error/oauthDomainInvalid.js.map +1 -0
  136. package/build/component/driver/oauth/error/oauthFailedToGetDomain.d.ts +5 -0
  137. package/build/component/driver/oauth/error/oauthFailedToGetDomain.d.ts.map +1 -0
  138. package/build/component/driver/oauth/error/oauthFailedToGetDomain.js +21 -0
  139. package/build/component/driver/oauth/error/oauthFailedToGetDomain.js.map +1 -0
  140. package/build/component/driver/oauth/error/oauthNameTooLong.d.ts +5 -0
  141. package/build/component/driver/oauth/error/oauthNameTooLong.d.ts.map +1 -0
  142. package/build/component/driver/oauth/error/oauthNameTooLong.js +21 -0
  143. package/build/component/driver/oauth/error/oauthNameTooLong.js.map +1 -0
  144. package/build/component/driver/oauth/interface/createOauthArgs.d.ts +12 -0
  145. package/build/component/driver/oauth/interface/createOauthArgs.d.ts.map +1 -0
  146. package/build/component/driver/oauth/interface/createOauthArgs.js +5 -0
  147. package/build/component/driver/oauth/interface/createOauthArgs.js.map +1 -0
  148. package/build/component/driver/oauth/interface/createOauthOutputs.d.ts +7 -0
  149. package/build/component/driver/oauth/interface/createOauthOutputs.d.ts.map +1 -0
  150. package/build/component/driver/oauth/interface/createOauthOutputs.js +10 -0
  151. package/build/component/driver/oauth/interface/createOauthOutputs.js.map +1 -0
  152. package/build/component/driver/oauth/interface/updateOauthArgs.d.ts +9 -0
  153. package/build/component/driver/oauth/interface/updateOauthArgs.d.ts.map +1 -0
  154. package/build/component/driver/oauth/interface/updateOauthArgs.js +5 -0
  155. package/build/component/driver/oauth/interface/updateOauthArgs.js.map +1 -0
  156. package/build/component/driver/oauth/update.d.ts +13 -0
  157. package/build/component/driver/oauth/update.d.ts.map +1 -0
  158. package/build/component/driver/oauth/update.js +181 -0
  159. package/build/component/driver/oauth/update.js.map +1 -0
  160. package/build/component/driver/oauth/utility/constants.d.ts +13 -0
  161. package/build/component/driver/oauth/utility/constants.d.ts.map +1 -0
  162. package/build/component/driver/oauth/utility/constants.js +18 -0
  163. package/build/component/driver/oauth/utility/constants.js.map +1 -0
  164. package/build/component/driver/oauth/utility/utility.d.ts +12 -0
  165. package/build/component/driver/oauth/utility/utility.d.ts.map +1 -0
  166. package/build/component/driver/oauth/utility/utility.js +90 -0
  167. package/build/component/driver/oauth/utility/utility.js.map +1 -0
  168. package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
  169. package/build/component/driver/script/scriptDriver.js +8 -8
  170. package/build/component/driver/script/scriptDriver.js.map +1 -1
  171. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts +11 -3
  172. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts.map +1 -1
  173. package/build/component/driver/teamsApp/clients/appStudioClient.js +54 -2
  174. package/build/component/driver/teamsApp/clients/appStudioClient.js.map +1 -1
  175. package/build/component/driver/teamsApp/constants.d.ts +4 -0
  176. package/build/component/driver/teamsApp/constants.d.ts.map +1 -1
  177. package/build/component/driver/teamsApp/constants.js +4 -0
  178. package/build/component/driver/teamsApp/constants.js.map +1 -1
  179. package/build/component/driver/teamsApp/createAppPackage.d.ts +19 -1
  180. package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
  181. package/build/component/driver/teamsApp/createAppPackage.js +97 -26
  182. package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
  183. package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.d.ts +20 -0
  184. package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.d.ts.map +1 -1
  185. package/build/component/driver/teamsApp/interfaces/ApiSecretRegistration.js.map +1 -1
  186. package/build/component/driver/teamsApp/interfaces/OauthConfigurationId.d.ts +7 -0
  187. package/build/component/driver/teamsApp/interfaces/OauthConfigurationId.d.ts.map +1 -0
  188. package/build/component/driver/teamsApp/interfaces/OauthConfigurationId.js +5 -0
  189. package/build/component/driver/teamsApp/interfaces/OauthConfigurationId.js.map +1 -0
  190. package/build/component/driver/teamsApp/interfaces/OauthRegistration.d.ts +44 -0
  191. package/build/component/driver/teamsApp/interfaces/OauthRegistration.d.ts.map +1 -0
  192. package/build/component/driver/teamsApp/interfaces/OauthRegistration.js +21 -0
  193. package/build/component/driver/teamsApp/interfaces/OauthRegistration.js.map +1 -0
  194. package/build/component/driver/teamsApp/teamsappMgr.d.ts.map +1 -1
  195. package/build/component/driver/teamsApp/teamsappMgr.js +22 -8
  196. package/build/component/driver/teamsApp/teamsappMgr.js.map +1 -1
  197. package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.d.ts +8 -0
  198. package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.d.ts.map +1 -0
  199. package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.js +65 -0
  200. package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.js.map +1 -0
  201. package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts.map +1 -1
  202. package/build/component/driver/teamsApp/utils/ManifestUtils.js +3 -15
  203. package/build/component/driver/teamsApp/utils/ManifestUtils.js.map +1 -1
  204. package/build/component/driver/teamsApp/utils/telemetry.d.ts +2 -0
  205. package/build/component/driver/teamsApp/utils/telemetry.d.ts.map +1 -1
  206. package/build/component/driver/teamsApp/utils/telemetry.js +2 -0
  207. package/build/component/driver/teamsApp/utils/telemetry.js.map +1 -1
  208. package/build/component/driver/teamsApp/utils/utils.d.ts +1 -0
  209. package/build/component/driver/teamsApp/utils/utils.d.ts.map +1 -1
  210. package/build/component/driver/teamsApp/utils/utils.js +5 -1
  211. package/build/component/driver/teamsApp/utils/utils.js.map +1 -1
  212. package/build/component/driver/teamsApp/validateTestCases.d.ts +18 -0
  213. package/build/component/driver/teamsApp/validateTestCases.d.ts.map +1 -1
  214. package/build/component/driver/teamsApp/validateTestCases.js +132 -50
  215. package/build/component/driver/teamsApp/validateTestCases.js.map +1 -1
  216. package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
  217. package/build/component/generator/copilotPlugin/generator.js +20 -26
  218. package/build/component/generator/copilotPlugin/generator.js.map +1 -1
  219. package/build/component/generator/copilotPlugin/helper.d.ts +7 -2
  220. package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
  221. package/build/component/generator/copilotPlugin/helper.js +156 -51
  222. package/build/component/generator/copilotPlugin/helper.js.map +1 -1
  223. package/build/component/generator/generator.d.ts +4 -2
  224. package/build/component/generator/generator.d.ts.map +1 -1
  225. package/build/component/generator/generator.js +11 -7
  226. package/build/component/generator/generator.js.map +1 -1
  227. package/build/component/generator/generatorProvider.d.ts +3 -0
  228. package/build/component/generator/generatorProvider.d.ts.map +1 -0
  229. package/build/component/generator/generatorProvider.js +18 -0
  230. package/build/component/generator/generatorProvider.js.map +1 -0
  231. package/build/component/generator/officeAddin/generator.d.ts +16 -2
  232. package/build/component/generator/officeAddin/generator.d.ts.map +1 -1
  233. package/build/component/generator/officeAddin/generator.js +96 -44
  234. package/build/component/generator/officeAddin/generator.js.map +1 -1
  235. package/build/component/generator/officeAddin/helperMethods.d.ts +0 -3
  236. package/build/component/generator/officeAddin/helperMethods.d.ts.map +1 -1
  237. package/build/component/generator/officeAddin/helperMethods.js +1 -67
  238. package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
  239. package/build/component/generator/officeXMLAddin/generator.d.ts +6 -2
  240. package/build/component/generator/officeXMLAddin/generator.d.ts.map +1 -1
  241. package/build/component/generator/officeXMLAddin/generator.js +39 -19
  242. package/build/component/generator/officeXMLAddin/generator.js.map +1 -1
  243. package/build/component/generator/officeXMLAddin/projectConfig.d.ts +21 -33
  244. package/build/component/generator/officeXMLAddin/projectConfig.d.ts.map +1 -1
  245. package/build/component/generator/officeXMLAddin/projectConfig.js +85 -86
  246. package/build/component/generator/officeXMLAddin/projectConfig.js.map +1 -1
  247. package/build/component/generator/spfx/spfxGenerator.d.ts +18 -5
  248. package/build/component/generator/spfx/spfxGenerator.d.ts.map +1 -1
  249. package/build/component/generator/spfx/spfxGenerator.js +123 -20
  250. package/build/component/generator/spfx/spfxGenerator.js.map +1 -1
  251. package/build/component/generator/templates/ssrTabGenerator.d.ts +12 -0
  252. package/build/component/generator/templates/ssrTabGenerator.d.ts.map +1 -0
  253. package/build/component/generator/templates/ssrTabGenerator.js +36 -0
  254. package/build/component/generator/templates/ssrTabGenerator.js.map +1 -0
  255. package/build/component/generator/templates/templateGenerator.d.ts +12 -0
  256. package/build/component/generator/templates/templateGenerator.d.ts.map +1 -0
  257. package/build/component/generator/templates/templateGenerator.js +99 -0
  258. package/build/component/generator/templates/templateGenerator.js.map +1 -0
  259. package/build/component/generator/templates/templateInfo.d.ts +10 -0
  260. package/build/component/generator/templates/templateInfo.d.ts.map +1 -0
  261. package/build/component/generator/templates/templateInfo.js +3 -0
  262. package/build/component/generator/templates/templateInfo.js.map +1 -0
  263. package/build/component/generator/templates/templateNames.d.ts +52 -0
  264. package/build/component/generator/templates/templateNames.d.ts.map +1 -0
  265. package/build/component/generator/templates/templateNames.js +304 -0
  266. package/build/component/generator/templates/templateNames.js.map +1 -0
  267. package/build/component/generator/templates/templateReplaceMap.d.ts +5 -0
  268. package/build/component/generator/templates/templateReplaceMap.d.ts.map +1 -0
  269. package/build/component/generator/templates/templateReplaceMap.js +39 -0
  270. package/build/component/generator/templates/templateReplaceMap.js.map +1 -0
  271. package/build/component/generator/utils.d.ts +1 -0
  272. package/build/component/generator/utils.d.ts.map +1 -1
  273. package/build/component/generator/utils.js +2 -1
  274. package/build/component/generator/utils.js.map +1 -1
  275. package/build/component/middleware/actionExecutionMW.d.ts.map +1 -1
  276. package/build/component/middleware/actionExecutionMW.js +5 -4
  277. package/build/component/middleware/actionExecutionMW.js.map +1 -1
  278. package/build/component/middleware/questionMW.d.ts.map +1 -1
  279. package/build/component/middleware/questionMW.js +9 -1
  280. package/build/component/middleware/questionMW.js.map +1 -1
  281. package/build/component/utils/envUtil.d.ts +0 -1
  282. package/build/component/utils/envUtil.d.ts.map +1 -1
  283. package/build/component/utils/envUtil.js +1 -13
  284. package/build/component/utils/envUtil.js.map +1 -1
  285. package/build/component/utils/metadataGraphPermssion.d.ts +8 -6
  286. package/build/component/utils/metadataGraphPermssion.d.ts.map +1 -1
  287. package/build/component/utils/metadataGraphPermssion.js +10 -2
  288. package/build/component/utils/metadataGraphPermssion.js.map +1 -1
  289. package/build/component/utils/metadataRscPermission.d.ts +17 -0
  290. package/build/component/utils/metadataRscPermission.d.ts.map +1 -0
  291. package/build/component/utils/metadataRscPermission.js +81 -0
  292. package/build/component/utils/metadataRscPermission.js.map +1 -0
  293. package/build/component/utils/metadataUtil.d.ts.map +1 -1
  294. package/build/component/utils/metadataUtil.js +2 -0
  295. package/build/component/utils/metadataUtil.js.map +1 -1
  296. package/build/component/utils.d.ts +2 -1
  297. package/build/component/utils.d.ts.map +1 -1
  298. package/build/component/utils.js +43 -1
  299. package/build/component/utils.js.map +1 -1
  300. package/build/core/FxCore.d.ts +10 -5
  301. package/build/core/FxCore.d.ts.map +1 -1
  302. package/build/core/FxCore.js +287 -26
  303. package/build/core/FxCore.js.map +1 -1
  304. package/build/error/common.js +1 -1
  305. package/build/error/common.js.map +1 -1
  306. package/build/error/index.d.ts +1 -0
  307. package/build/error/index.d.ts.map +1 -1
  308. package/build/error/index.js +1 -0
  309. package/build/error/index.js.map +1 -1
  310. package/build/error/script.d.ts +2 -2
  311. package/build/error/script.d.ts.map +1 -1
  312. package/build/error/script.js +6 -6
  313. package/build/error/script.js.map +1 -1
  314. package/build/index.d.ts +4 -0
  315. package/build/index.d.ts.map +1 -1
  316. package/build/index.js +7 -1
  317. package/build/index.js.map +1 -1
  318. package/build/question/constants.d.ts.map +1 -1
  319. package/build/question/constants.js +6 -1
  320. package/build/question/constants.js.map +1 -1
  321. package/build/question/create.d.ts +24 -9
  322. package/build/question/create.d.ts.map +1 -1
  323. package/build/question/create.js +410 -240
  324. package/build/question/create.js.map +1 -1
  325. package/build/question/generator.js +2 -0
  326. package/build/question/generator.js.map +1 -1
  327. package/build/question/index.d.ts +2 -0
  328. package/build/question/index.d.ts.map +1 -1
  329. package/build/question/index.js +6 -0
  330. package/build/question/index.js.map +1 -1
  331. package/build/question/inputs/AddPluginInputs.d.ts +18 -0
  332. package/build/question/inputs/AddPluginInputs.d.ts.map +1 -0
  333. package/build/question/inputs/AddPluginInputs.js +5 -0
  334. package/build/question/inputs/AddPluginInputs.js.map +1 -0
  335. package/build/question/inputs/CreateProjectInputs.d.ts +9 -7
  336. package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -1
  337. package/build/question/inputs/PermissionGrantInputs.d.ts +1 -1
  338. package/build/question/inputs/PermissionListInputs.d.ts +1 -1
  339. package/build/question/inputs/PreviewTeamsAppInputs.d.ts +1 -1
  340. package/build/question/inputs/SPFxAddWebpartInputs.d.ts +1 -1
  341. package/build/question/inputs/SelectTeamsManifestInputs.d.ts +1 -1
  342. package/build/question/inputs/ValidateTeamsAppInputs.d.ts +2 -2
  343. package/build/question/inputs/index.d.ts +1 -0
  344. package/build/question/inputs/index.d.ts.map +1 -1
  345. package/build/question/inputs/index.js +1 -0
  346. package/build/question/inputs/index.js.map +1 -1
  347. package/build/question/options/AddPluginOptions.d.ts +10 -0
  348. package/build/question/options/AddPluginOptions.d.ts.map +1 -0
  349. package/build/question/options/AddPluginOptions.js +39 -0
  350. package/build/question/options/AddPluginOptions.js.map +1 -0
  351. package/build/question/options/CreateProjectOptions.d.ts.map +1 -1
  352. package/build/question/options/CreateProjectOptions.js +41 -13
  353. package/build/question/options/CreateProjectOptions.js.map +1 -1
  354. package/build/question/options/PermissionGrantOptions.js +1 -1
  355. package/build/question/options/PermissionGrantOptions.js.map +1 -1
  356. package/build/question/options/PermissionListOptions.js +1 -1
  357. package/build/question/options/PermissionListOptions.js.map +1 -1
  358. package/build/question/options/PreviewTeamsAppOptions.js +1 -1
  359. package/build/question/options/PreviewTeamsAppOptions.js.map +1 -1
  360. package/build/question/options/SPFxAddWebpartOptions.js +1 -1
  361. package/build/question/options/SPFxAddWebpartOptions.js.map +1 -1
  362. package/build/question/options/SelectTeamsManifestOptions.js +1 -1
  363. package/build/question/options/SelectTeamsManifestOptions.js.map +1 -1
  364. package/build/question/options/ValidateTeamsAppOptions.js +1 -1
  365. package/build/question/options/ValidateTeamsAppOptions.js.map +1 -1
  366. package/build/question/options/index.d.ts +1 -0
  367. package/build/question/options/index.d.ts.map +1 -1
  368. package/build/question/options/index.js +1 -0
  369. package/build/question/options/index.js.map +1 -1
  370. package/build/question/other.d.ts +9 -0
  371. package/build/question/other.d.ts.map +1 -1
  372. package/build/question/other.js +169 -8
  373. package/build/question/other.js.map +1 -1
  374. package/build/question/questionNames.d.ts +6 -2
  375. package/build/question/questionNames.d.ts.map +1 -1
  376. package/build/question/questionNames.js +5 -1
  377. package/build/question/questionNames.js.map +1 -1
  378. package/package.json +16 -11
  379. package/resource/package.nls.json +138 -79
  380. package/resource/yaml-schema/v1.5/yaml.schema.json +1784 -0
  381. package/resource/yaml-schema/yaml.schema.json +198 -2
  382. package/templates/fallback/common.zip +0 -0
  383. package/templates/fallback/csharp.zip +0 -0
  384. package/templates/fallback/js.zip +0 -0
  385. package/templates/fallback/python.zip +0 -0
  386. package/templates/fallback/ts.zip +0 -0
  387. package/build/component/generator/officeAddin/config/projectsJsonData.d.ts +0 -26
  388. package/build/component/generator/officeAddin/config/projectsJsonData.d.ts.map +0 -1
  389. package/build/component/generator/officeAddin/config/projectsJsonData.js +0 -165
  390. package/build/component/generator/officeAddin/config/projectsJsonData.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.createProjectCliHelpNode = exports.createSampleProjectQuestionNode = exports.createProjectQuestionNode = exports.capabilitySubTree = exports.CustomCopilotAssistantOptions = exports.CustomCopilotRagOptions = exports.apiOperationQuestion = exports.apiMessageExtensionAuthQuestion = exports.openAIPluginManifestLocationQuestion = exports.apiSpecLocationQuestion = exports.ApiMessageExtensionAuthOptions = exports.RuntimeOptions = exports.appNameQuestion = exports.AppNamePattern = exports.folderQuestion = exports.programmingLanguageQuestion = exports.ProgrammingLanguage = exports.getLanguageOptions = exports.OfficeAddinFrameworkQuestion = exports.getAddinHostOptions = exports.officeAddinHostingQuestion = exports.getTemplate = exports.SPFxImportFolderQuestion = exports.SPFxVersionOptionIds = exports.SPFxWebpartNameQuestion = exports.SPFxFrameworkQuestion = exports.SPFxPackageSelectQuestion = exports.NotificationTriggerOptions = exports.meArchitectureQuestion = exports.MeArchitectureOptions = exports.capabilityQuestion = exports.CapabilityOptions = exports.OfficeAddinCapabilityOptions = exports.ProjectTypeOptions = exports.ScratchOptions = void 0;
5
+ exports.createProjectCliHelpNode = exports.createSampleProjectQuestionNode = exports.createProjectQuestionNode = exports.capabilitySubTree = exports.CustomCopilotAssistantOptions = exports.CustomCopilotRagOptions = exports.apiOperationQuestion = exports.apiMessageExtensionAuthQuestion = exports.openAIPluginManifestLocationQuestion = exports.apiSpecLocationQuestion = exports.ApiMessageExtensionAuthOptions = exports.RuntimeOptions = exports.appNameQuestion = exports.getSolutionName = exports.AppNamePattern = exports.folderQuestion = exports.programmingLanguageQuestion = exports.ProgrammingLanguage = exports.getLanguageOptions = exports.getOfficeAddinFramework = exports.getAddinFrameworkOptions = exports.officeAddinFrameworkQuestion = exports.officeAddinHostingQuestion = exports.SPFxImportFolderQuestion = exports.SPFxVersionOptionIds = exports.SPFxWebpartNameQuestion = exports.SPFxFrameworkQuestion = exports.SPFxPackageSelectQuestion = exports.NotificationTriggerOptions = exports.meArchitectureQuestion = exports.MeArchitectureOptions = exports.capabilityQuestion = exports.CapabilityOptions = exports.OfficeAddinHostOptions = exports.projectTypeQuestion = exports.ProjectTypeOptions = exports.ScratchOptions = void 0;
6
6
  const tslib_1 = require("tslib");
7
7
  const teamsfx_api_1 = require("@microsoft/teamsfx-api");
8
8
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
@@ -11,6 +11,7 @@ const lodash_1 = require("lodash");
11
11
  const os = tslib_1.__importStar(require("os"));
12
12
  const path = tslib_1.__importStar(require("path"));
13
13
  const constants_1 = require("../common/constants");
14
+ const correlator_1 = require("../common/correlator");
14
15
  const featureFlags_1 = require("../common/featureFlags");
15
16
  const localizeUtils_1 = require("../common/localizeUtils");
16
17
  const samples_1 = require("../common/samples");
@@ -18,18 +19,15 @@ const utils_1 = require("../common/utils");
18
19
  const developerPortalScaffoldUtils_1 = require("../component/developerPortalScaffoldUtils");
19
20
  const utils_2 = require("../component/driver/teamsApp/utils/utils");
20
21
  const helper_1 = require("../component/generator/copilotPlugin/helper");
21
- const projectsJsonData_1 = tslib_1.__importDefault(require("../component/generator/officeAddin/config/projectsJsonData"));
22
+ const projectConfig_1 = require("../component/generator/officeXMLAddin/projectConfig");
22
23
  const error_1 = require("../component/generator/spfx/error");
23
- const spfxGenerator_1 = require("../component/generator/spfx/spfxGenerator");
24
24
  const constants_2 = require("../component/generator/spfx/utils/constants");
25
25
  const utils_3 = require("../component/generator/spfx/utils/utils");
26
26
  const utils_4 = require("../component/utils");
27
27
  const error_2 = require("../error");
28
+ const constants_3 = require("./constants");
28
29
  const questionNames_1 = require("./questionNames");
29
30
  const util_1 = require("./util");
30
- const constants_3 = require("./constants");
31
- const correlator_1 = require("../common/correlator");
32
- const projectConfig_1 = require("../component/generator/officeXMLAddin/projectConfig");
33
31
  class ScratchOptions {
34
32
  static yes() {
35
33
  return {
@@ -56,6 +54,7 @@ class ProjectTypeOptions {
56
54
  id: "tab-type",
57
55
  label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(browser) " : ""}${localizeUtils_1.getLocalizedString("core.TabOption.label")}`,
58
56
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.tab.detail"),
57
+ groupName: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.createGroup.title"),
59
58
  };
60
59
  }
61
60
  static bot(platform) {
@@ -63,6 +62,7 @@ class ProjectTypeOptions {
63
62
  id: "bot-type",
64
63
  label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(hubot) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.bot.label")}`,
65
64
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.bot.detail"),
65
+ groupName: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.createGroup.title"),
66
66
  };
67
67
  }
68
68
  static me(platform) {
@@ -72,6 +72,7 @@ class ProjectTypeOptions {
72
72
  detail: featureFlags_1.isCopilotPluginEnabled()
73
73
  ? localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.messageExtension.copilotEnabled.detail")
74
74
  : localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.messageExtension.detail"),
75
+ groupName: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.createGroup.title"),
75
76
  };
76
77
  }
77
78
  static outlookAddin(platform) {
@@ -79,13 +80,15 @@ class ProjectTypeOptions {
79
80
  id: "outlook-addin-type",
80
81
  label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(mail) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.label")}`,
81
82
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.detail"),
83
+ groupName: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.createGroup.title"),
82
84
  };
83
85
  }
84
86
  static officeXMLAddin(platform) {
85
87
  return {
86
88
  id: "office-xml-addin-type",
87
- label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(inbox) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.mainEntry.title")}`,
89
+ label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(teamsfx-m365) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.mainEntry.title")}`,
88
90
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.mainEntry.detail"),
91
+ groupName: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.createGroup.title"),
89
92
  };
90
93
  }
91
94
  static officeAddin(platform) {
@@ -93,13 +96,22 @@ class ProjectTypeOptions {
93
96
  id: "office-addin-type",
94
97
  label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(extensions) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.officeAddin.label")}`,
95
98
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.officeAddin.detail"),
99
+ groupName: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.createGroup.title"),
96
100
  };
97
101
  }
102
+ static officeAddinAllIds(platform) {
103
+ return [
104
+ ProjectTypeOptions.officeAddin(platform).id,
105
+ ProjectTypeOptions.officeXMLAddin(platform).id,
106
+ ProjectTypeOptions.outlookAddin(platform).id,
107
+ ];
108
+ }
98
109
  static copilotPlugin(platform) {
99
110
  return {
100
111
  id: "copilot-plugin-type",
101
112
  label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(teamsfx-copilot-plugin) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.label")}`,
102
113
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.detail"),
114
+ groupName: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.createGroup.title"),
103
115
  };
104
116
  }
105
117
  static customCopilot(platform) {
@@ -107,6 +119,23 @@ class ProjectTypeOptions {
107
119
  id: "custom-copilot-type",
108
120
  label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(teamsfx-custom-copilot) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.customCopilot.label")}`,
109
121
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.customCopilot.detail"),
122
+ groupName: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.createGroup.title"),
123
+ };
124
+ }
125
+ static startWithGithubCopilot() {
126
+ return {
127
+ id: "start-with-github-copilot",
128
+ label: `$(comment-discussion) ${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotHelp.label")}`,
129
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotHelp.detail"),
130
+ groupName: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotGroup.title"),
131
+ };
132
+ }
133
+ static customizeGpt() {
134
+ return {
135
+ id: "customize-gpt-type",
136
+ label: "Declarative Copilot",
137
+ detail: "Author a Declarative Copilot",
138
+ groupName: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.createGroup.title"),
110
139
  };
111
140
  }
112
141
  }
@@ -116,10 +145,9 @@ function projectTypeQuestion() {
116
145
  ProjectTypeOptions.bot(teamsfx_api_1.Platform.CLI),
117
146
  ProjectTypeOptions.tab(teamsfx_api_1.Platform.CLI),
118
147
  ProjectTypeOptions.me(teamsfx_api_1.Platform.CLI),
119
- featureFlags_1.isOfficeXMLAddinEnabled()
120
- ? ProjectTypeOptions.officeXMLAddin(teamsfx_api_1.Platform.CLI)
121
- : ProjectTypeOptions.outlookAddin(teamsfx_api_1.Platform.CLI),
148
+ ProjectTypeOptions.officeXMLAddin(teamsfx_api_1.Platform.CLI),
122
149
  ProjectTypeOptions.officeAddin(teamsfx_api_1.Platform.CLI),
150
+ ProjectTypeOptions.outlookAddin(teamsfx_api_1.Platform.CLI),
123
151
  ];
124
152
  return {
125
153
  name: questionNames_1.QuestionNames.ProjectType,
@@ -129,6 +157,11 @@ function projectTypeQuestion() {
129
157
  dynamicOptions: (inputs) => {
130
158
  var _a;
131
159
  const staticOptions = [];
160
+ if (teamsfx_api_1.CLIPlatforms.includes(inputs.platform) &&
161
+ featureFlags_1.featureFlagManager.getBooleanValue(featureFlags_1.FeatureFlags.CustomizeGpt)) {
162
+ // Show in CLI only
163
+ staticOptions.push(ProjectTypeOptions.customizeGpt());
164
+ }
132
165
  if (featureFlags_1.isApiCopilotPluginEnabled()) {
133
166
  staticOptions.push(ProjectTypeOptions.copilotPlugin(inputs.platform));
134
167
  }
@@ -141,11 +174,23 @@ function projectTypeQuestion() {
141
174
  }
142
175
  }
143
176
  else {
144
- staticOptions.push(featureFlags_1.isOfficeXMLAddinEnabled() && !featureFlags_1.isOfficeJSONAddinEnabled()
145
- ? ProjectTypeOptions.officeXMLAddin(inputs.platform)
146
- : featureFlags_1.isOfficeJSONAddinEnabled()
147
- ? ProjectTypeOptions.officeAddin(inputs.platform)
148
- : ProjectTypeOptions.outlookAddin(inputs.platform));
177
+ if (inputs.agent === "office") {
178
+ //only for @office agent, officeXMLAddin are supported
179
+ staticOptions.push(ProjectTypeOptions.officeXMLAddin(inputs.platform));
180
+ }
181
+ else {
182
+ if (featureFlags_1.isOfficeJSONAddinEnabled()) {
183
+ staticOptions.push(ProjectTypeOptions.officeAddin(inputs.platform));
184
+ }
185
+ else {
186
+ staticOptions.push(ProjectTypeOptions.outlookAddin(inputs.platform));
187
+ }
188
+ }
189
+ }
190
+ if (inputs.platform === teamsfx_api_1.Platform.VSCode &&
191
+ featureFlags_1.isChatParticipantEnabled() &&
192
+ !inputs.teamsAppFromTdp) {
193
+ staticOptions.push(ProjectTypeOptions.startWithGithubCopilot());
149
194
  }
150
195
  return staticOptions;
151
196
  },
@@ -154,12 +199,30 @@ function projectTypeQuestion() {
154
199
  skipSingleOption: true,
155
200
  };
156
201
  }
157
- class OfficeAddinCapabilityOptions {
202
+ exports.projectTypeQuestion = projectTypeQuestion;
203
+ class OfficeAddinHostOptions {
204
+ static all(platform) {
205
+ return [
206
+ OfficeAddinHostOptions.outlook(platform),
207
+ OfficeAddinHostOptions.word(),
208
+ OfficeAddinHostOptions.excel(),
209
+ OfficeAddinHostOptions.powerpoint(),
210
+ ];
211
+ }
212
+ static outlook(platform) {
213
+ return {
214
+ id: "outlook",
215
+ label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(mail) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.label")}`,
216
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.detail"),
217
+ data: "Outlook",
218
+ };
219
+ }
158
220
  static word() {
159
221
  return {
160
222
  id: "word",
161
223
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.word.title"),
162
224
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.word.detail"),
225
+ data: "Word",
163
226
  };
164
227
  }
165
228
  static excel() {
@@ -167,6 +230,7 @@ class OfficeAddinCapabilityOptions {
167
230
  id: "excel",
168
231
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.excel.title"),
169
232
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.excel.detail"),
233
+ data: "Excel",
170
234
  };
171
235
  }
172
236
  static powerpoint() {
@@ -174,10 +238,11 @@ class OfficeAddinCapabilityOptions {
174
238
  id: "powerpoint",
175
239
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.powerpoint.title"),
176
240
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.powerpoint.detail"),
241
+ data: "PowerPoint",
177
242
  };
178
243
  }
179
244
  }
180
- exports.OfficeAddinCapabilityOptions = OfficeAddinCapabilityOptions;
245
+ exports.OfficeAddinHostOptions = OfficeAddinHostOptions;
181
246
  class CapabilityOptions {
182
247
  // bot
183
248
  static basicBot() {
@@ -399,8 +464,61 @@ class CapabilityOptions {
399
464
  CapabilityOptions.linkUnfurling(),
400
465
  ];
401
466
  }
402
- static officeAll() {
403
- return [...CapabilityOptions.officeAddinItems(), CapabilityOptions.officeAddinImport()];
467
+ static officeAddinStaticCapabilities(host) {
468
+ const items = [];
469
+ for (const h of Object.keys(projectConfig_1.OfficeAddinProjectConfig)) {
470
+ if (host && h !== host)
471
+ continue;
472
+ const hostValue = projectConfig_1.OfficeAddinProjectConfig[h];
473
+ for (const capability of Object.keys(hostValue)) {
474
+ const capabilityValue = hostValue[capability];
475
+ items.push({
476
+ id: capability,
477
+ label: localizeUtils_1.getLocalizedString(capabilityValue.title),
478
+ detail: localizeUtils_1.getLocalizedString(capabilityValue.detail),
479
+ });
480
+ }
481
+ }
482
+ return items;
483
+ }
484
+ static officeAddinDynamicCapabilities(projectType, host) {
485
+ const items = [];
486
+ const isOutlookAddin = projectType === ProjectTypeOptions.outlookAddin().id;
487
+ const isOfficeAddin = projectType === ProjectTypeOptions.officeAddin().id;
488
+ const isOfficeXMLAddinForOutlook = projectType === ProjectTypeOptions.officeXMLAddin().id &&
489
+ host === OfficeAddinHostOptions.outlook().id;
490
+ const pushToItems = (option) => {
491
+ const capabilityValue = projectConfig_1.OfficeAddinProjectConfig.json[option];
492
+ items.push({
493
+ id: option,
494
+ label: localizeUtils_1.getLocalizedString(capabilityValue.title),
495
+ detail: localizeUtils_1.getLocalizedString(capabilityValue.detail),
496
+ });
497
+ };
498
+ if (isOutlookAddin || isOfficeAddin || isOfficeXMLAddinForOutlook) {
499
+ pushToItems("json-taskpane");
500
+ if (isOutlookAddin || isOfficeXMLAddinForOutlook) {
501
+ items.push(CapabilityOptions.outlookAddinImport());
502
+ }
503
+ else if (isOfficeAddin) {
504
+ items.push(CapabilityOptions.officeContentAddin());
505
+ items.push(CapabilityOptions.officeAddinImport());
506
+ }
507
+ }
508
+ else {
509
+ if (host) {
510
+ const hostValue = projectConfig_1.OfficeAddinProjectConfig[host];
511
+ for (const capability of Object.keys(hostValue)) {
512
+ const capabilityValue = hostValue[capability];
513
+ items.push({
514
+ id: capability,
515
+ label: localizeUtils_1.getLocalizedString(capabilityValue.title),
516
+ detail: localizeUtils_1.getLocalizedString(capabilityValue.detail),
517
+ });
518
+ }
519
+ }
520
+ }
521
+ return items;
404
522
  }
405
523
  static copilotPlugins() {
406
524
  return [
@@ -412,7 +530,7 @@ class CapabilityOptions {
412
530
  static customCopilots() {
413
531
  return [
414
532
  CapabilityOptions.customCopilotBasic(),
415
- // CapabilityOptions.customCopilotRag(),
533
+ CapabilityOptions.customCopilotRag(),
416
534
  CapabilityOptions.customCopilotAssistant(),
417
535
  ];
418
536
  }
@@ -424,6 +542,9 @@ class CapabilityOptions {
424
542
  CapabilityOptions.nonSsoTabAndBot(),
425
543
  ];
426
544
  }
545
+ static customizeGptOptions() {
546
+ return [CapabilityOptions.customizeGptBasic(), CapabilityOptions.customizeGptWithPlugin()];
547
+ }
427
548
  /**
428
549
  * static capability list, which does not depend on any feature flags
429
550
  */
@@ -435,17 +556,9 @@ class CapabilityOptions {
435
556
  ...CapabilityOptions.copilotPlugins(),
436
557
  ...CapabilityOptions.customCopilots(),
437
558
  ...CapabilityOptions.tdpIntegrationCapabilities(),
559
+ ...CapabilityOptions.customizeGptOptions(),
438
560
  ];
439
- if (featureFlags_1.isOfficeXMLAddinEnabled()) {
440
- capabilityOptions.push(...[
441
- ...CapabilityOptions.officeXMLAddinHostOptionItems(OfficeAddinCapabilityOptions.word().id),
442
- ...CapabilityOptions.officeXMLAddinHostOptionItems(OfficeAddinCapabilityOptions.excel().id),
443
- ...CapabilityOptions.officeXMLAddinHostOptionItems(OfficeAddinCapabilityOptions.powerpoint().id),
444
- ]);
445
- }
446
- else {
447
- capabilityOptions.push(...CapabilityOptions.outlookAddinItems());
448
- }
561
+ capabilityOptions.push(...CapabilityOptions.officeAddinStaticCapabilities());
449
562
  return capabilityOptions;
450
563
  }
451
564
  /**
@@ -456,55 +569,67 @@ class CapabilityOptions {
456
569
  ...CapabilityOptions.bots(inputs),
457
570
  ...CapabilityOptions.tabs(),
458
571
  ...CapabilityOptions.collectMECaps(),
459
- ...CapabilityOptions.outlookAddinItems(),
460
572
  ];
461
573
  if (featureFlags_1.isApiCopilotPluginEnabled()) {
462
574
  capabilityOptions.push(...CapabilityOptions.copilotPlugins());
463
575
  }
576
+ if (featureFlags_1.featureFlagManager.getBooleanValue(featureFlags_1.FeatureFlags.CustomizeGpt)) {
577
+ capabilityOptions.push(...CapabilityOptions.customizeGptOptions());
578
+ }
464
579
  capabilityOptions.push(...CapabilityOptions.customCopilots());
465
580
  if (featureFlags_1.isTdpTemplateCliTestEnabled()) {
466
581
  // test templates that are used by TDP integration only
467
582
  capabilityOptions.push(...CapabilityOptions.tdpIntegrationCapabilities());
468
583
  }
584
+ capabilityOptions.push(...CapabilityOptions.officeAddinDynamicCapabilities(inputs === null || inputs === void 0 ? void 0 : inputs.projectType, inputs === null || inputs === void 0 ? void 0 : inputs.host));
469
585
  return capabilityOptions;
470
586
  }
471
587
  static outlookAddinImport() {
472
588
  return {
473
- id: "import",
589
+ id: "outlook-addin-import",
474
590
  label: localizeUtils_1.getLocalizedString("core.importAddin.label"),
475
591
  detail: localizeUtils_1.getLocalizedString("core.importAddin.detail"),
476
592
  };
477
593
  }
478
594
  static officeAddinImport() {
479
595
  return {
480
- id: "import",
596
+ id: "office-addin-import",
481
597
  label: localizeUtils_1.getLocalizedString("core.importOfficeAddin.label"),
482
598
  detail: localizeUtils_1.getLocalizedString("core.importAddin.detail"),
483
599
  description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.previewOnWindow"),
484
600
  };
485
601
  }
486
- static officeXMLAddinHostOptionItems(host) {
487
- return projectConfig_1.getOfficeXMLAddinHostProjectOptions(host).map((x) => ({
488
- id: x.proj,
489
- label: localizeUtils_1.getLocalizedString(x.title),
490
- detail: localizeUtils_1.getLocalizedString(x.detail),
491
- }));
492
- }
493
- static outlookAddinItems() {
494
- return officeAddinJsonData.getProjectTemplateNames().map((template) => ({
495
- id: template,
496
- label: localizeUtils_1.getLocalizedString(officeAddinJsonData.getProjectDisplayName(template)),
497
- detail: localizeUtils_1.getLocalizedString(officeAddinJsonData.getProjectDetails(template)),
498
- description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.previewOnWindow"),
499
- }));
500
- }
501
- static officeAddinItems() {
502
- return officeAddinJsonData.getProjectTemplateNames().map((template) => ({
503
- id: template,
504
- label: localizeUtils_1.getLocalizedString(officeAddinJsonData.getProjectDisplayName(template)),
505
- detail: localizeUtils_1.getLocalizedString(officeAddinJsonData.getProjectDetails(template)),
506
- }));
602
+ static officeContentAddin() {
603
+ return {
604
+ id: "office-content-addin",
605
+ label: localizeUtils_1.getLocalizedString("core.officeContentAddin.label"),
606
+ detail: localizeUtils_1.getLocalizedString("core.officeContentAddin.detail"),
607
+ };
507
608
  }
609
+ // static officeXMLAddinHostOptionItems(host: string): OptionItem[] {
610
+ // return getOfficeXMLAddinHostProjectOptions(host).map((x) => ({
611
+ // id: x.proj,
612
+ // label: getLocalizedString(x.title),
613
+ // detail: getLocalizedString(x.detail),
614
+ // }));
615
+ // }
616
+ // static jsonAddinTaskpane(): OptionItem {
617
+ // return {
618
+ // id: "json-taskpane",
619
+ // label: getLocalizedString("core.newTaskpaneAddin.label"),
620
+ // detail: getLocalizedString("core.newTaskpaneAddin.detail"),
621
+ // description: getLocalizedString(
622
+ // "core.createProjectQuestion.option.description.previewOnWindow"
623
+ // ),
624
+ // };
625
+ // }
626
+ // static officeAddinItems(): OptionItem[] {
627
+ // return officeAddinJsonData.getProjectTemplateNames().map((template) => ({
628
+ // id: template,
629
+ // label: getLocalizedString(officeAddinJsonData.getProjectDisplayName(template)),
630
+ // detail: getLocalizedString(officeAddinJsonData.getProjectDetails(template)),
631
+ // }));
632
+ // }
508
633
  static nonSsoTabAndBot() {
509
634
  return {
510
635
  id: "TabNonSsoAndBot",
@@ -576,25 +701,27 @@ class CapabilityOptions {
576
701
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotAssistantOption.detail"),
577
702
  };
578
703
  }
704
+ // customize GPT
705
+ static customizeGptBasic() {
706
+ return {
707
+ id: "basic-declarative-copilot",
708
+ label: "Basic Declarative Copilot",
709
+ detail: "A declarative Copilot skeleton you can author without any plugin",
710
+ };
711
+ }
712
+ static customizeGptWithPlugin() {
713
+ return {
714
+ id: "declarative-copilot-with-plugin-from-scratch",
715
+ label: "Declarative Copilot with a plugin using Azure Functions",
716
+ detail: "A declarative Copilot containing a Copilot plugin with a new API from Azure Functions",
717
+ };
718
+ }
579
719
  }
580
720
  exports.CapabilityOptions = CapabilityOptions;
581
721
  function capabilityQuestion() {
582
722
  return {
583
723
  name: questionNames_1.QuestionNames.Capabilities,
584
724
  title: (inputs) => {
585
- // Office Add-in Capability
586
- if (featureFlags_1.isOfficeXMLAddinEnabled()) {
587
- switch (inputs[questionNames_1.QuestionNames.OfficeAddinCapability]) {
588
- case ProjectTypeOptions.outlookAddin().id:
589
- return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.title");
590
- case OfficeAddinCapabilityOptions.word().id:
591
- return localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.word.create.title");
592
- case OfficeAddinCapabilityOptions.excel().id:
593
- return localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.excel.create.title");
594
- case OfficeAddinCapabilityOptions.powerpoint().id:
595
- return localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.powerpoint.create.title");
596
- }
597
- }
598
725
  const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
599
726
  switch (projectType) {
600
727
  case ProjectTypeOptions.bot().id:
@@ -604,13 +731,26 @@ function capabilityQuestion() {
604
731
  case ProjectTypeOptions.me().id:
605
732
  return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.messageExtension.title");
606
733
  case ProjectTypeOptions.outlookAddin().id:
607
- return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.title");
608
734
  case ProjectTypeOptions.officeAddin().id:
735
+ case ProjectTypeOptions.officeXMLAddin().id: {
736
+ switch (inputs[questionNames_1.QuestionNames.OfficeAddinHost]) {
737
+ case OfficeAddinHostOptions.outlook().id:
738
+ return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.title");
739
+ case OfficeAddinHostOptions.word().id:
740
+ return localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.word.create.title");
741
+ case OfficeAddinHostOptions.excel().id:
742
+ return localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.excel.create.title");
743
+ case OfficeAddinHostOptions.powerpoint().id:
744
+ return localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.powerpoint.create.title");
745
+ }
609
746
  return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.officeAddin.title");
747
+ }
610
748
  case ProjectTypeOptions.copilotPlugin().id:
611
749
  return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.title");
612
750
  case ProjectTypeOptions.customCopilot().id:
613
751
  return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.customCopilot.title");
752
+ case ProjectTypeOptions.customizeGpt().id:
753
+ return "Choose Declarative Copilot type";
614
754
  default:
615
755
  return localizeUtils_1.getLocalizedString("core.createCapabilityQuestion.titleNew");
616
756
  }
@@ -640,7 +780,6 @@ function capabilityQuestion() {
640
780
  }
641
781
  // nodejs capabilities
642
782
  const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
643
- const officeHost = inputs[questionNames_1.QuestionNames.OfficeAddinCapability];
644
783
  if (projectType === ProjectTypeOptions.bot().id) {
645
784
  return CapabilityOptions.bots(inputs);
646
785
  }
@@ -650,18 +789,8 @@ function capabilityQuestion() {
650
789
  else if (projectType === ProjectTypeOptions.me().id) {
651
790
  return CapabilityOptions.mes();
652
791
  }
653
- else if ((!featureFlags_1.isOfficeXMLAddinEnabled() && projectType === ProjectTypeOptions.outlookAddin().id) ||
654
- (featureFlags_1.isOfficeXMLAddinEnabled() &&
655
- projectType === ProjectTypeOptions.officeXMLAddin().id &&
656
- officeHost === ProjectTypeOptions.outlookAddin().id)) {
657
- return [...CapabilityOptions.outlookAddinItems(), CapabilityOptions.outlookAddinImport()];
658
- }
659
- else if (featureFlags_1.isOfficeXMLAddinEnabled() &&
660
- projectType === ProjectTypeOptions.officeXMLAddin().id) {
661
- return CapabilityOptions.officeXMLAddinHostOptionItems(officeHost);
662
- }
663
- else if (projectType === ProjectTypeOptions.officeAddin().id) {
664
- return CapabilityOptions.officeAll();
792
+ else if (ProjectTypeOptions.officeAddinAllIds().includes(projectType)) {
793
+ return CapabilityOptions.officeAddinDynamicCapabilities(projectType, inputs[questionNames_1.QuestionNames.OfficeAddinHost]);
665
794
  }
666
795
  else if (projectType === ProjectTypeOptions.copilotPlugin().id) {
667
796
  return CapabilityOptions.copilotPlugins();
@@ -669,6 +798,9 @@ function capabilityQuestion() {
669
798
  else if (projectType === ProjectTypeOptions.customCopilot().id) {
670
799
  return CapabilityOptions.customCopilots();
671
800
  }
801
+ else if (projectType === ProjectTypeOptions.customizeGpt().id) {
802
+ return CapabilityOptions.customizeGptOptions();
803
+ }
672
804
  else {
673
805
  return CapabilityOptions.all(inputs);
674
806
  }
@@ -1042,124 +1174,129 @@ function SPFxImportFolderQuestion(hasDefaultFunc = false) {
1042
1174
  };
1043
1175
  }
1044
1176
  exports.SPFxImportFolderQuestion = SPFxImportFolderQuestion;
1045
- const getTemplate = (inputs) => {
1046
- const capabilities = inputs[questionNames_1.QuestionNames.Capabilities];
1047
- const templates = officeAddinJsonData.getProjectTemplateNames();
1048
- const foundTemplate = templates.find((template) => {
1049
- return capabilities && capabilities.includes(template);
1050
- });
1051
- return foundTemplate !== null && foundTemplate !== void 0 ? foundTemplate : "";
1052
- };
1053
- exports.getTemplate = getTemplate;
1054
1177
  function officeAddinHostingQuestion() {
1055
- const OfficeHostQuestion = {
1056
- type: "singleSelect",
1178
+ return {
1057
1179
  name: questionNames_1.QuestionNames.OfficeAddinHost,
1058
- title: "Add-in Host",
1059
- staticOptions: [],
1060
- dynamicOptions: getAddinHostOptions,
1061
- default: (inputs) => {
1062
- const template = exports.getTemplate(inputs);
1063
- const options = officeAddinJsonData.getHostTemplateNames(template);
1064
- return options[0] || "No Options";
1065
- },
1066
- skipSingleOption: true,
1180
+ title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.create.title"),
1181
+ type: "singleSelect",
1182
+ staticOptions: OfficeAddinHostOptions.all(),
1067
1183
  };
1068
- return OfficeHostQuestion;
1069
1184
  }
1070
1185
  exports.officeAddinHostingQuestion = officeAddinHostingQuestion;
1071
- function getAddinHostOptions(inputs) {
1072
- // office addin supports host defined in officeAddinJsonData
1073
- const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
1074
- const template = exports.getTemplate(inputs);
1075
- const hostTypes = officeAddinJsonData.getHostTemplateNames(template);
1076
- const options = [];
1077
- hostTypes.forEach((host) => {
1078
- options.push({ label: officeAddinJsonData.getHostDisplayName(host), id: host });
1079
- });
1080
- // Outlook addin only supports outlook
1081
- if (projectType === ProjectTypeOptions.outlookAddin().id) {
1082
- return [options[0] || { label: "No Options", id: "No Options" }];
1083
- }
1084
- else if (projectType === ProjectTypeOptions.officeAddin().id) {
1085
- return options;
1086
- }
1087
- return options || "No Options";
1088
- }
1089
- exports.getAddinHostOptions = getAddinHostOptions;
1090
- function OfficeAddinFrameworkQuestion() {
1186
+ function officeAddinFrameworkQuestion() {
1091
1187
  return {
1092
1188
  type: "singleSelect",
1093
1189
  name: questionNames_1.QuestionNames.OfficeAddinFramework,
1094
1190
  cliShortName: "f",
1095
1191
  cliDescription: "Framework for WXP extension.",
1096
1192
  title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.officeAddin.framework.title"),
1193
+ dynamicOptions: getAddinFrameworkOptions,
1097
1194
  staticOptions: [
1098
1195
  { id: "default", label: "Default" },
1099
1196
  { id: "react", label: "React" },
1100
1197
  ],
1101
1198
  placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.officeAddin.framework.placeholder"),
1102
- default: "default",
1199
+ skipSingleOption: true,
1103
1200
  };
1104
1201
  }
1105
- exports.OfficeAddinFrameworkQuestion = OfficeAddinFrameworkQuestion;
1106
- const officeAddinJsonData = new projectsJsonData_1.default();
1202
+ exports.officeAddinFrameworkQuestion = officeAddinFrameworkQuestion;
1203
+ function getAddinFrameworkOptions(inputs) {
1204
+ const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
1205
+ const capabilities = inputs[questionNames_1.QuestionNames.Capabilities];
1206
+ const host = inputs[questionNames_1.QuestionNames.OfficeAddinHost];
1207
+ if (projectType === ProjectTypeOptions.outlookAddin().id ||
1208
+ (projectType === ProjectTypeOptions.officeXMLAddin().id &&
1209
+ host === OfficeAddinHostOptions.outlook().id)) {
1210
+ return [{ id: "default", label: "Default" }];
1211
+ }
1212
+ else if ((projectType === ProjectTypeOptions.officeAddin().id &&
1213
+ capabilities === CapabilityOptions.officeContentAddin().id) ||
1214
+ capabilities === CapabilityOptions.officeAddinImport().id) {
1215
+ return [{ id: "default", label: "Default" }];
1216
+ }
1217
+ else {
1218
+ return [
1219
+ { id: "default", label: "Default" },
1220
+ { id: "react", label: "React" },
1221
+ ];
1222
+ }
1223
+ }
1224
+ exports.getAddinFrameworkOptions = getAddinFrameworkOptions;
1225
+ /**
1226
+ * when project-type=office-addin-type(office-addin-framework-type=default or react), use selected value;
1227
+ * when project-type=outlook-addin-type, no framework to select, office-addin-framework-type=default_old
1228
+ * when project-type=office-xml-addin-type, no framework to select, office-addin-framework-type=default_old
1229
+ */
1230
+ function getOfficeAddinFramework(inputs) {
1231
+ const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
1232
+ if (projectType === ProjectTypeOptions.officeAddin().id &&
1233
+ inputs[questionNames_1.QuestionNames.OfficeAddinFramework]) {
1234
+ return inputs[questionNames_1.QuestionNames.OfficeAddinFramework];
1235
+ }
1236
+ else if ((projectType === ProjectTypeOptions.officeXMLAddin().id &&
1237
+ inputs[questionNames_1.QuestionNames.OfficeAddinHost] === OfficeAddinHostOptions.outlook().id) ||
1238
+ projectType === ProjectTypeOptions.outlookAddin().id) {
1239
+ return "default_old";
1240
+ }
1241
+ else {
1242
+ return "default";
1243
+ }
1244
+ }
1245
+ exports.getOfficeAddinFramework = getOfficeAddinFramework;
1107
1246
  function getLanguageOptions(inputs) {
1108
1247
  const runtime = getRuntime(inputs);
1109
1248
  // dotnet runtime only supports C#
1110
1249
  if (runtime === RuntimeOptions.DotNet().id) {
1111
- return [{ id: "csharp", label: "C#" }];
1250
+ return [{ id: ProgrammingLanguage.CSharp, label: "C#" }];
1112
1251
  }
1252
+ const capabilities = inputs[questionNames_1.QuestionNames.Capabilities];
1253
+ const host = inputs[questionNames_1.QuestionNames.OfficeAddinHost];
1113
1254
  // office addin supports language defined in officeAddinJsonData
1114
1255
  const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
1115
- const officeHost = inputs[questionNames_1.QuestionNames.OfficeAddinCapability];
1116
- if ((!featureFlags_1.isOfficeXMLAddinEnabled() && projectType === ProjectTypeOptions.outlookAddin().id) ||
1117
- (featureFlags_1.isOfficeXMLAddinEnabled() &&
1118
- projectType === ProjectTypeOptions.officeXMLAddin().id &&
1119
- officeHost === ProjectTypeOptions.outlookAddin().id)) {
1120
- const template = exports.getTemplate(inputs);
1121
- const supportedTypes = officeAddinJsonData.getSupportedScriptTypes(template);
1122
- const options = supportedTypes.map((language) => ({ label: language, id: language }));
1123
- return options.length > 0 ? options : [{ label: "No Options", id: "No Options" }];
1124
- }
1125
- if (featureFlags_1.isOfficeXMLAddinEnabled() && projectType === ProjectTypeOptions.officeXMLAddin().id) {
1126
- const officeProject = inputs[questionNames_1.QuestionNames.Capabilities];
1127
- return officeProject !== "manifest"
1128
- ? projectConfig_1.getOfficeXMLAddinHostProjectLangOptions(officeHost, officeProject)
1129
- : [{ id: "javascript", label: "JavaScript" }];
1130
- }
1131
- if (projectType === ProjectTypeOptions.officeAddin().id) {
1132
- const template = exports.getTemplate(inputs);
1133
- const supportedTypes = officeAddinJsonData.getSupportedScriptTypesNew(template);
1134
- const options = [];
1135
- supportedTypes.forEach((language) => {
1136
- if (language === "TypeScript") {
1137
- options.push({ label: "TypeScript", id: "typescript" });
1138
- }
1139
- else if (language === "JavaScript") {
1140
- options.push({ label: "JavaScript", id: "javascript" });
1141
- }
1142
- });
1143
- return options.length > 0 ? options : [{ label: "No Options", id: "No Options" }];
1256
+ if (ProjectTypeOptions.officeAddinAllIds().includes(projectType)) {
1257
+ if (capabilities.endsWith("-manifest")) {
1258
+ return [{ id: ProgrammingLanguage.JS, label: "JavaScript" }];
1259
+ }
1260
+ if (projectType === ProjectTypeOptions.outlookAddin().id ||
1261
+ (projectType === ProjectTypeOptions.officeXMLAddin().id &&
1262
+ host === OfficeAddinHostOptions.outlook().id)) {
1263
+ return [{ id: ProgrammingLanguage.TS, label: "TypeScript" }];
1264
+ }
1265
+ const officeXMLAddinLangConfig = projectConfig_1.getOfficeAddinTemplateConfig(projectType, host)[capabilities]
1266
+ .framework["default"];
1267
+ const officeXMLAddinLangOptions = [];
1268
+ if (!!officeXMLAddinLangConfig.typescript)
1269
+ officeXMLAddinLangOptions.push({ id: ProgrammingLanguage.TS, label: "TypeScript" });
1270
+ if (!!officeXMLAddinLangConfig.javascript)
1271
+ officeXMLAddinLangOptions.push({ id: ProgrammingLanguage.JS, label: "JavaScript" });
1272
+ return officeXMLAddinLangOptions;
1144
1273
  }
1145
- const capabilities = inputs[questionNames_1.QuestionNames.Capabilities];
1146
1274
  if (capabilities === CapabilityOptions.SPFxTab().id) {
1147
1275
  // SPFx only supports typescript
1148
- return [{ id: "typescript", label: "TypeScript" }];
1276
+ return [{ id: ProgrammingLanguage.TS, label: "TypeScript" }];
1149
1277
  }
1150
- else if (constants_3.capabilitiesHavePythonOption.includes(capabilities)) {
1278
+ else if (constants_3.capabilitiesHavePythonOption.includes(inputs[capabilities] ? inputs[capabilities] : capabilities) &&
1279
+ !(capabilities == CapabilityOptions.customCopilotRag().id &&
1280
+ (inputs[CapabilityOptions.customCopilotRag().id] ==
1281
+ CustomCopilotRagOptions.microsoft365().id ||
1282
+ inputs[CapabilityOptions.customCopilotRag().id] == CustomCopilotRagOptions.customApi().id))) {
1151
1283
  // support python language
1152
1284
  return [
1153
- { id: "javascript", label: "JavaScript" },
1154
- { id: "typescript", label: "TypeScript" },
1155
- { id: "python", label: "Python" },
1285
+ { id: ProgrammingLanguage.JS, label: "JavaScript" },
1286
+ { id: ProgrammingLanguage.TS, label: "TypeScript" },
1287
+ {
1288
+ id: ProgrammingLanguage.PY,
1289
+ label: "Python",
1290
+ detail: "",
1291
+ description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.preview"),
1292
+ },
1156
1293
  ];
1157
1294
  }
1158
1295
  else {
1159
1296
  // other cases
1160
1297
  return [
1161
- { id: "javascript", label: "JavaScript" },
1162
- { id: "typescript", label: "TypeScript" },
1298
+ { id: ProgrammingLanguage.JS, label: "JavaScript" },
1299
+ { id: ProgrammingLanguage.TS, label: "TypeScript" },
1163
1300
  ];
1164
1301
  }
1165
1302
  }
@@ -1193,14 +1330,14 @@ function programmingLanguageQuestion() {
1193
1330
  if (runtime === RuntimeOptions.DotNet().id) {
1194
1331
  return "";
1195
1332
  }
1196
- // office addin
1197
- const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
1198
- if (projectType === ProjectTypeOptions.outlookAddin().id) {
1199
- const template = exports.getTemplate(inputs);
1200
- const options = officeAddinJsonData.getSupportedScriptTypesNew(template);
1201
- return options[0] || "No Options";
1202
- }
1203
1333
  const capabilities = inputs[questionNames_1.QuestionNames.Capabilities];
1334
+ // // office addin
1335
+ // const projectType = inputs[QuestionNames.ProjectType];
1336
+ // if (projectType === ProjectTypeOptions.outlookAddin().id) {
1337
+ // const template = getTemplate(inputs);
1338
+ // const options = officeAddinJsonData.getSupportedScriptTypesNew(template);
1339
+ // return options[0] || "No Options";
1340
+ // }
1204
1341
  // SPFx
1205
1342
  if (capabilities === CapabilityOptions.SPFxTab().id) {
1206
1343
  return localizeUtils_1.getLocalizedString("core.ProgrammingLanguageQuestion.placeholder.spfx");
@@ -1230,6 +1367,22 @@ function folderQuestion() {
1230
1367
  }
1231
1368
  exports.folderQuestion = folderQuestion;
1232
1369
  exports.AppNamePattern = '^(?=(.*[\\da-zA-Z]){2})[a-zA-Z][^"<>:\\?/*&|\u0000-\u001F]*[^"\\s.<>:\\?/*&|\u0000-\u001F]$';
1370
+ async function getSolutionName(spfxFolder) {
1371
+ const yoInfoPath = path.join(spfxFolder, constants_2.Constants.YO_RC_FILE);
1372
+ if (await fs_extra_1.default.pathExists(yoInfoPath)) {
1373
+ const yoInfo = await fs_extra_1.default.readJson(yoInfoPath);
1374
+ if (yoInfo["@microsoft/generator-sharepoint"]) {
1375
+ return yoInfo["@microsoft/generator-sharepoint"][constants_2.Constants.YO_RC_SOLUTION_NAME];
1376
+ }
1377
+ else {
1378
+ return undefined;
1379
+ }
1380
+ }
1381
+ else {
1382
+ throw new error_2.FileNotFoundError(constants_2.Constants.PLUGIN_NAME, yoInfoPath, constants_2.Constants.IMPORT_HELP_LINK);
1383
+ }
1384
+ }
1385
+ exports.getSolutionName = getSolutionName;
1233
1386
  function appNameQuestion() {
1234
1387
  const question = {
1235
1388
  type: "text",
@@ -1244,7 +1397,7 @@ function appNameQuestion() {
1244
1397
  defaultName = utils_1.convertToAlphanumericOnly((_b = inputs.teamsAppFromTdp) === null || _b === void 0 ? void 0 : _b.appName);
1245
1398
  }
1246
1399
  else if (inputs[questionNames_1.QuestionNames.SPFxSolution] == "import") {
1247
- defaultName = await spfxGenerator_1.SPFxGenerator.getSolutionName(inputs[questionNames_1.QuestionNames.SPFxFolder]);
1400
+ defaultName = await getSolutionName(inputs[questionNames_1.QuestionNames.SPFxFolder]);
1248
1401
  }
1249
1402
  else if (inputs.openAIPluginManifest) {
1250
1403
  defaultName = inputs.openAIPluginManifest.name_for_human;
@@ -1495,8 +1648,18 @@ class ApiMessageExtensionAuthOptions {
1495
1648
  label: "API Key",
1496
1649
  };
1497
1650
  }
1651
+ static microsoftEntra() {
1652
+ return {
1653
+ id: "microsoft-entra",
1654
+ label: "Microsoft Entra",
1655
+ };
1656
+ }
1498
1657
  static all() {
1499
- return [ApiMessageExtensionAuthOptions.none(), ApiMessageExtensionAuthOptions.apiKey()];
1658
+ return [
1659
+ ApiMessageExtensionAuthOptions.none(),
1660
+ ApiMessageExtensionAuthOptions.apiKey(),
1661
+ ApiMessageExtensionAuthOptions.microsoftEntra(),
1662
+ ];
1500
1663
  }
1501
1664
  }
1502
1665
  exports.ApiMessageExtensionAuthOptions = ApiMessageExtensionAuthOptions;
@@ -1664,15 +1827,18 @@ function apiMessageExtensionAuthQuestion() {
1664
1827
  placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiMessageExtensionAuth.placeholder"),
1665
1828
  cliDescription: "The authentication type for the API.",
1666
1829
  staticOptions: ApiMessageExtensionAuthOptions.all(),
1830
+ dynamicOptions: () => ApiMessageExtensionAuthOptions.all(),
1667
1831
  default: ApiMessageExtensionAuthOptions.none().id,
1668
1832
  };
1669
1833
  }
1670
1834
  exports.apiMessageExtensionAuthQuestion = apiMessageExtensionAuthQuestion;
1671
- function apiOperationQuestion(includeExistingAPIs = true) {
1835
+ function apiOperationQuestion(includeExistingAPIs = true, isAddPlugin = false) {
1672
1836
  // export for unit test
1673
1837
  let placeholder = "";
1674
1838
  const isPlugin = (inputs) => {
1675
- return (!!inputs && inputs[questionNames_1.QuestionNames.Capabilities] === CapabilityOptions.copilotPluginApiSpec().id);
1839
+ return (isAddPlugin ||
1840
+ (!!inputs &&
1841
+ inputs[questionNames_1.QuestionNames.Capabilities] === CapabilityOptions.copilotPluginApiSpec().id));
1676
1842
  };
1677
1843
  return {
1678
1844
  type: "multiSelect",
@@ -1682,7 +1848,9 @@ function apiOperationQuestion(includeExistingAPIs = true) {
1682
1848
  ? localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.copilotOperation.title")
1683
1849
  : localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.title");
1684
1850
  },
1685
- cliDescription: "Select Operation(s) Teams Can Interact with.",
1851
+ cliDescription: isAddPlugin
1852
+ ? "Select operation(s) Copilot can interact with."
1853
+ : "Select operation(s) Teams can interact with.",
1686
1854
  cliShortName: "o",
1687
1855
  placeholder: (inputs) => {
1688
1856
  const isPlugin = inputs[questionNames_1.QuestionNames.Capabilities] === CapabilityOptions.copilotPluginApiSpec().id;
@@ -1692,11 +1860,8 @@ function apiOperationQuestion(includeExistingAPIs = true) {
1692
1860
  else if (isPlugin) {
1693
1861
  placeholder = ""; // TODO: add placeholder for api plugin
1694
1862
  }
1695
- else if (featureFlags_1.isApiKeyEnabled()) {
1696
- placeholder = localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.apikey.placeholder");
1697
- }
1698
1863
  else {
1699
- placeholder = localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.placeholder");
1864
+ placeholder = localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.apikey.placeholder");
1700
1865
  }
1701
1866
  return placeholder;
1702
1867
  },
@@ -1704,10 +1869,15 @@ function apiOperationQuestion(includeExistingAPIs = true) {
1704
1869
  staticOptions: [],
1705
1870
  validation: {
1706
1871
  validFunc: (input, inputs) => {
1707
- if (input.length < 1 || input.length > 10) {
1872
+ if (!inputs) {
1873
+ throw new Error("inputs is undefined"); // should never happen
1874
+ }
1875
+ if (input.length < 1 ||
1876
+ (input.length > 10 &&
1877
+ inputs[questionNames_1.QuestionNames.CustomCopilotRag] != CustomCopilotRagOptions.customApi().id)) {
1708
1878
  return localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.invalidMessage", input.length, 10);
1709
1879
  }
1710
- const operations = inputs === null || inputs === void 0 ? void 0 : inputs.supportedApisFromApiSpec;
1880
+ const operations = inputs.supportedApisFromApiSpec;
1711
1881
  const authNames = new Set();
1712
1882
  const serverUrls = new Set();
1713
1883
  for (const inputItem of input) {
@@ -1725,6 +1895,10 @@ function apiOperationQuestion(includeExistingAPIs = true) {
1725
1895
  if (serverUrls.size > 1) {
1726
1896
  return localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.multipleServer", Array.from(serverUrls).join(", "));
1727
1897
  }
1898
+ const authApi = operations.find((api) => !!api.data.authName && input.includes(api.id));
1899
+ if (authApi) {
1900
+ inputs.apiAuthData = authApi.data;
1901
+ }
1728
1902
  },
1729
1903
  },
1730
1904
  dynamicOptions: (inputs) => {
@@ -1885,6 +2059,14 @@ function azureOpenAIEndpointQuestion() {
1885
2059
  placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.azureOpenAIEndpoint.placeholder"),
1886
2060
  };
1887
2061
  }
2062
+ function azureOpenAIDeploymentNameQuestion() {
2063
+ return {
2064
+ type: "text",
2065
+ name: questionNames_1.QuestionNames.AzureOpenAIDeploymentName,
2066
+ title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.azureOpenAIDeploymentName.title"),
2067
+ placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.azureOpenAIDeploymentName.placeholder"),
2068
+ };
2069
+ }
1888
2070
  function capabilitySubTree() {
1889
2071
  const node = {
1890
2072
  data: capabilityQuestion(),
@@ -1915,8 +2097,13 @@ function capabilitySubTree() {
1915
2097
  ],
1916
2098
  },
1917
2099
  {
1918
- // office addin import sub-tree
1919
- condition: { equals: CapabilityOptions.outlookAddinImport().id },
2100
+ // office addin import sub-tree (capabilities=office-addin-import | outlook-addin-import)
2101
+ condition: {
2102
+ enum: [
2103
+ CapabilityOptions.outlookAddinImport().id,
2104
+ CapabilityOptions.officeAddinImport().id,
2105
+ ],
2106
+ },
1920
2107
  data: { type: "group", name: questionNames_1.QuestionNames.OfficeAddinImport },
1921
2108
  children: [
1922
2109
  {
@@ -1935,15 +2122,6 @@ function capabilitySubTree() {
1935
2122
  },
1936
2123
  ],
1937
2124
  },
1938
- {
1939
- // office addin other items sub-tree
1940
- condition: (inputs) => featureFlags_1.isOfficeXMLAddinEnabled()
1941
- ? false
1942
- : CapabilityOptions.outlookAddinItems()
1943
- .map((i) => i.id)
1944
- .includes(inputs[questionNames_1.QuestionNames.Capabilities]),
1945
- data: officeAddinHostingQuestion(),
1946
- },
1947
2125
  {
1948
2126
  // Search ME sub-tree
1949
2127
  condition: { equals: CapabilityOptions.m365SearchMe().id },
@@ -1960,11 +2138,6 @@ function capabilitySubTree() {
1960
2138
  data: { type: "group", name: questionNames_1.QuestionNames.CopilotPluginExistingApi },
1961
2139
  children: [
1962
2140
  {
1963
- condition: (inputs) => {
1964
- return (inputs[questionNames_1.QuestionNames.Capabilities] ===
1965
- CapabilityOptions.copilotPluginApiSpec().id ||
1966
- inputs[questionNames_1.QuestionNames.MeArchitectureType] === MeArchitectureOptions.apiSpec().id);
1967
- },
1968
2141
  data: apiSpecLocationQuestion(),
1969
2142
  },
1970
2143
  // {
@@ -1978,38 +2151,30 @@ function capabilitySubTree() {
1978
2151
  },
1979
2152
  {
1980
2153
  condition: (inputs) => {
1981
- return (featureFlags_1.isApiKeyEnabled() &&
1982
- (inputs[questionNames_1.QuestionNames.MeArchitectureType] == MeArchitectureOptions.newApi().id ||
1983
- inputs[questionNames_1.QuestionNames.Capabilities] == CapabilityOptions.copilotPluginNewApi().id));
2154
+ return inputs[questionNames_1.QuestionNames.MeArchitectureType] == MeArchitectureOptions.newApi().id;
1984
2155
  },
1985
2156
  data: apiMessageExtensionAuthQuestion(),
1986
2157
  },
1987
- /*
1988
2158
  {
1989
- condition: (inputs: Inputs) => {
1990
- return inputs[QuestionNames.Capabilities] == CapabilityOptions.customCopilotRag().id;
1991
- },
1992
- data: customCopilotRagQuestion(),
1993
- children: [
1994
- {
1995
- condition: (inputs: Inputs) => {
1996
- return (
1997
- inputs[QuestionNames.CustomCopilotRag] === CustomCopilotRagOptions.customApi().id
1998
- );
1999
- },
2000
- data: apiSpecLocationQuestion(),
2001
- },
2002
- {
2003
- condition: (inputs: Inputs) => {
2004
- return (
2005
- inputs[QuestionNames.CustomCopilotRag] === CustomCopilotRagOptions.customApi().id
2006
- );
2007
- },
2008
- data: apiOperationQuestion(),
2159
+ condition: (inputs) => {
2160
+ return inputs[questionNames_1.QuestionNames.Capabilities] == CapabilityOptions.customCopilotRag().id;
2009
2161
  },
2010
- ],
2162
+ data: customCopilotRagQuestion(),
2163
+ children: [
2164
+ {
2165
+ condition: (inputs) => {
2166
+ return (inputs[questionNames_1.QuestionNames.CustomCopilotRag] === CustomCopilotRagOptions.customApi().id);
2167
+ },
2168
+ data: apiSpecLocationQuestion(),
2169
+ },
2170
+ {
2171
+ condition: (inputs) => {
2172
+ return (inputs[questionNames_1.QuestionNames.CustomCopilotRag] === CustomCopilotRagOptions.customApi().id);
2173
+ },
2174
+ data: apiOperationQuestion(),
2175
+ },
2176
+ ],
2011
2177
  },
2012
- */
2013
2178
  {
2014
2179
  condition: (inputs) => {
2015
2180
  return (inputs[questionNames_1.QuestionNames.Capabilities] == CapabilityOptions.customCopilotAssistant().id);
@@ -2024,7 +2189,10 @@ function capabilitySubTree() {
2024
2189
  inputs[questionNames_1.QuestionNames.Capabilities] !== CapabilityOptions.copilotPluginApiSpec().id &&
2025
2190
  inputs[questionNames_1.QuestionNames.Capabilities] !==
2026
2191
  CapabilityOptions.copilotPluginOpenAIPlugin().id &&
2027
- inputs[questionNames_1.QuestionNames.MeArchitectureType] !== MeArchitectureOptions.apiSpec().id);
2192
+ inputs[questionNames_1.QuestionNames.Capabilities] !== CapabilityOptions.customizeGptBasic().id &&
2193
+ inputs[questionNames_1.QuestionNames.MeArchitectureType] !== MeArchitectureOptions.apiSpec().id &&
2194
+ inputs[questionNames_1.QuestionNames.Capabilities] !== CapabilityOptions.officeAddinImport().id &&
2195
+ inputs[questionNames_1.QuestionNames.Capabilities] !== CapabilityOptions.outlookAddinImport().id);
2028
2196
  },
2029
2197
  },
2030
2198
  {
@@ -2045,6 +2213,15 @@ function capabilitySubTree() {
2045
2213
  return ((_a = inputs[questionNames_1.QuestionNames.AzureOpenAIKey]) === null || _a === void 0 ? void 0 : _a.length) > 0;
2046
2214
  },
2047
2215
  data: azureOpenAIEndpointQuestion(),
2216
+ children: [
2217
+ {
2218
+ condition: (inputs) => {
2219
+ var _a;
2220
+ return ((_a = inputs[questionNames_1.QuestionNames.AzureOpenAIEndpoint]) === null || _a === void 0 ? void 0 : _a.length) > 0;
2221
+ },
2222
+ data: azureOpenAIDeploymentNameQuestion(),
2223
+ },
2224
+ ],
2048
2225
  },
2049
2226
  ],
2050
2227
  },
@@ -2055,11 +2232,12 @@ function capabilitySubTree() {
2055
2232
  ],
2056
2233
  },
2057
2234
  {
2058
- // WXP addin framework
2235
+ // Office addin framework for json manifest
2236
+ data: officeAddinFrameworkQuestion(),
2059
2237
  condition: (inputs) => {
2060
- return inputs[questionNames_1.QuestionNames.ProjectType] === ProjectTypeOptions.officeAddin().id;
2238
+ return (inputs[questionNames_1.QuestionNames.ProjectType] === ProjectTypeOptions.officeAddin().id &&
2239
+ inputs[questionNames_1.QuestionNames.Capabilities] !== CapabilityOptions.officeAddinImport().id);
2061
2240
  },
2062
- data: OfficeAddinFrameworkQuestion(),
2063
2241
  },
2064
2242
  {
2065
2243
  // root folder
@@ -2070,6 +2248,9 @@ function capabilitySubTree() {
2070
2248
  data: appNameQuestion(),
2071
2249
  },
2072
2250
  ],
2251
+ condition: (inputs) => {
2252
+ return inputs[questionNames_1.QuestionNames.ProjectType] !== ProjectTypeOptions.startWithGithubCopilot().id;
2253
+ },
2073
2254
  };
2074
2255
  return node;
2075
2256
  }
@@ -2088,19 +2269,8 @@ function createProjectQuestionNode() {
2088
2269
  cliOptionDisabled: "self",
2089
2270
  },
2090
2271
  {
2091
- condition: (inputs) => featureFlags_1.isOfficeXMLAddinEnabled() &&
2092
- inputs[questionNames_1.QuestionNames.ProjectType] === ProjectTypeOptions.officeXMLAddin().id,
2093
- data: {
2094
- name: questionNames_1.QuestionNames.OfficeAddinCapability,
2095
- title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.create.title"),
2096
- type: "singleSelect",
2097
- staticOptions: [
2098
- ProjectTypeOptions.outlookAddin(),
2099
- OfficeAddinCapabilityOptions.word(),
2100
- OfficeAddinCapabilityOptions.excel(),
2101
- OfficeAddinCapabilityOptions.powerpoint(),
2102
- ],
2103
- },
2272
+ condition: (inputs) => inputs[questionNames_1.QuestionNames.ProjectType] === ProjectTypeOptions.officeXMLAddin().id,
2273
+ data: officeAddinHostingQuestion(),
2104
2274
  },
2105
2275
  capabilitySubTree(),
2106
2276
  {