@microsoft/teamsfx-core 2.0.7-alpha.bdb04bd16.0 → 2.0.7-alpha.c6bb96186.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 (210) hide show
  1. package/build/common/constants.d.ts +3 -1
  2. package/build/common/constants.d.ts.map +1 -1
  3. package/build/common/constants.js +3 -1
  4. package/build/common/constants.js.map +1 -1
  5. package/build/common/featureFlags.d.ts +1 -0
  6. package/build/common/featureFlags.d.ts.map +1 -1
  7. package/build/common/featureFlags.js +6 -1
  8. package/build/common/featureFlags.js.map +1 -1
  9. package/build/common/local/packageJsonHelper.d.ts.map +1 -1
  10. package/build/common/local/packageJsonHelper.js +1 -2
  11. package/build/common/local/packageJsonHelper.js.map +1 -1
  12. package/build/common/m365/packageService.d.ts +1 -0
  13. package/build/common/m365/packageService.d.ts.map +1 -1
  14. package/build/common/m365/packageService.js +13 -0
  15. package/build/common/m365/packageService.js.map +1 -1
  16. package/build/common/projectSettingsHelper.d.ts +3 -0
  17. package/build/common/projectSettingsHelper.d.ts.map +1 -1
  18. package/build/common/projectSettingsHelper.js +29 -1
  19. package/build/common/projectSettingsHelper.js.map +1 -1
  20. package/build/common/projectTypeChecker.d.ts.map +1 -1
  21. package/build/common/projectTypeChecker.js +1 -2
  22. package/build/common/projectTypeChecker.js.map +1 -1
  23. package/build/common/samples.d.ts +3 -2
  24. package/build/common/samples.d.ts.map +1 -1
  25. package/build/common/samples.js +84 -40
  26. package/build/common/samples.js.map +1 -1
  27. package/build/common/templates-config.json +1 -1
  28. package/build/component/coordinator/index.d.ts +8 -1
  29. package/build/component/coordinator/index.d.ts.map +1 -1
  30. package/build/component/coordinator/index.js +56 -5
  31. package/build/component/coordinator/index.js.map +1 -1
  32. package/build/component/driver/aad/utility/aadAppClient.d.ts +1 -0
  33. package/build/component/driver/aad/utility/aadAppClient.d.ts.map +1 -1
  34. package/build/component/driver/aad/utility/aadAppClient.js +14 -0
  35. package/build/component/driver/aad/utility/aadAppClient.js.map +1 -1
  36. package/build/component/driver/apiKey/create.js +2 -2
  37. package/build/component/driver/apiKey/create.js.map +1 -1
  38. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts.map +1 -1
  39. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +5 -5
  40. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.map +1 -1
  41. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts +30 -0
  42. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts.map +1 -1
  43. package/build/component/driver/teamsApp/clients/appStudioClient.js +63 -0
  44. package/build/component/driver/teamsApp/clients/appStudioClient.js.map +1 -1
  45. package/build/component/driver/teamsApp/constants.d.ts +3 -0
  46. package/build/component/driver/teamsApp/constants.d.ts.map +1 -1
  47. package/build/component/driver/teamsApp/constants.js +3 -0
  48. package/build/component/driver/teamsApp/constants.js.map +1 -1
  49. package/build/component/driver/teamsApp/createAppPackage.d.ts +3 -0
  50. package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
  51. package/build/component/driver/teamsApp/createAppPackage.js +61 -14
  52. package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
  53. package/build/component/driver/teamsApp/errors.d.ts +4 -0
  54. package/build/component/driver/teamsApp/errors.d.ts.map +1 -1
  55. package/build/component/driver/teamsApp/errors.js +7 -0
  56. package/build/component/driver/teamsApp/errors.js.map +1 -1
  57. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationDetailsResponse.d.ts +21 -0
  58. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationDetailsResponse.d.ts.map +1 -0
  59. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationDetailsResponse.js +5 -0
  60. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationDetailsResponse.js.map +1 -0
  61. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResponse.d.ts +17 -0
  62. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResponse.d.ts.map +1 -0
  63. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResponse.js +16 -0
  64. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResponse.js.map +1 -0
  65. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResultsResponse.d.ts +41 -0
  66. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResultsResponse.d.ts.map +1 -0
  67. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResultsResponse.js +5 -0
  68. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResultsResponse.js.map +1 -0
  69. package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts +1 -0
  70. package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts.map +1 -1
  71. package/build/component/driver/teamsApp/utils/ManifestUtils.js +17 -0
  72. package/build/component/driver/teamsApp/utils/ManifestUtils.js.map +1 -1
  73. package/build/component/driver/teamsApp/utils/PluginManifestUtils.d.ts +8 -0
  74. package/build/component/driver/teamsApp/utils/PluginManifestUtils.d.ts.map +1 -0
  75. package/build/component/driver/teamsApp/utils/PluginManifestUtils.js +63 -0
  76. package/build/component/driver/teamsApp/utils/PluginManifestUtils.js.map +1 -0
  77. package/build/component/generator/copilotPlugin/generator.d.ts +4 -2
  78. package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
  79. package/build/component/generator/copilotPlugin/generator.js +50 -18
  80. package/build/component/generator/copilotPlugin/generator.js.map +1 -1
  81. package/build/component/generator/copilotPlugin/helper.d.ts +5 -3
  82. package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
  83. package/build/component/generator/copilotPlugin/helper.js +67 -25
  84. package/build/component/generator/copilotPlugin/helper.js.map +1 -1
  85. package/build/component/generator/error.d.ts +1 -1
  86. package/build/component/generator/error.d.ts.map +1 -1
  87. package/build/component/generator/error.js +4 -4
  88. package/build/component/generator/error.js.map +1 -1
  89. package/build/component/generator/generator.d.ts +5 -0
  90. package/build/component/generator/generator.d.ts.map +1 -1
  91. package/build/component/generator/generator.js +27 -25
  92. package/build/component/generator/generator.js.map +1 -1
  93. package/build/component/generator/generatorAction.d.ts +5 -15
  94. package/build/component/generator/generatorAction.d.ts.map +1 -1
  95. package/build/component/generator/generatorAction.js +44 -92
  96. package/build/component/generator/generatorAction.js.map +1 -1
  97. package/build/component/generator/officeAddin/config/projectProperties.d.ts +1 -0
  98. package/build/component/generator/officeAddin/config/projectProperties.d.ts.map +1 -1
  99. package/build/component/generator/officeAddin/config/projectProperties.js +1 -0
  100. package/build/component/generator/officeAddin/config/projectProperties.js.map +1 -1
  101. package/build/component/generator/officeAddin/config/projectsJsonData.d.ts +1 -4
  102. package/build/component/generator/officeAddin/config/projectsJsonData.d.ts.map +1 -1
  103. package/build/component/generator/officeAddin/config/projectsJsonData.js +4 -11
  104. package/build/component/generator/officeAddin/config/projectsJsonData.js.map +1 -1
  105. package/build/component/generator/officeAddin/generator.d.ts.map +1 -1
  106. package/build/component/generator/officeAddin/generator.js +13 -7
  107. package/build/component/generator/officeAddin/generator.js.map +1 -1
  108. package/build/component/generator/officeAddin/helperMethods.d.ts +2 -1
  109. package/build/component/generator/officeAddin/helperMethods.d.ts.map +1 -1
  110. package/build/component/generator/officeAddin/helperMethods.js +21 -10
  111. package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
  112. package/build/component/generator/officeXMLAddin/generator.d.ts +9 -0
  113. package/build/component/generator/officeXMLAddin/generator.d.ts.map +1 -0
  114. package/build/component/generator/officeXMLAddin/generator.js +90 -0
  115. package/build/component/generator/officeXMLAddin/generator.js.map +1 -0
  116. package/build/component/generator/officeXMLAddin/projectConfig.d.ts +36 -0
  117. package/build/component/generator/officeXMLAddin/projectConfig.d.ts.map +1 -0
  118. package/build/component/generator/officeXMLAddin/projectConfig.js +127 -0
  119. package/build/component/generator/officeXMLAddin/projectConfig.js.map +1 -0
  120. package/build/component/generator/utils.d.ts +0 -1
  121. package/build/component/generator/utils.d.ts.map +1 -1
  122. package/build/component/generator/utils.js +29 -18
  123. package/build/component/generator/utils.js.map +1 -1
  124. package/build/component/utils/envUtil.d.ts.map +1 -1
  125. package/build/component/utils/envUtil.js +1 -0
  126. package/build/component/utils/envUtil.js.map +1 -1
  127. package/build/core/FxCore.d.ts.map +1 -1
  128. package/build/core/FxCore.js +21 -12
  129. package/build/core/FxCore.js.map +1 -1
  130. package/build/error/arm.d.ts.map +1 -1
  131. package/build/error/arm.js +0 -2
  132. package/build/error/arm.js.map +1 -1
  133. package/build/error/common.d.ts.map +1 -1
  134. package/build/error/common.js +1 -1
  135. package/build/error/common.js.map +1 -1
  136. package/build/error/deploy.d.ts.map +1 -1
  137. package/build/error/deploy.js +17 -6
  138. package/build/error/deploy.js.map +1 -1
  139. package/build/question/constants.d.ts +1 -0
  140. package/build/question/constants.d.ts.map +1 -1
  141. package/build/question/constants.js +2 -1
  142. package/build/question/constants.js.map +1 -1
  143. package/build/question/create.d.ts +27 -2
  144. package/build/question/create.d.ts.map +1 -1
  145. package/build/question/create.js +428 -61
  146. package/build/question/create.js.map +1 -1
  147. package/build/question/inputs/CreateProjectInputs.d.ts +18 -6
  148. package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -1
  149. package/build/question/options/CreateProjectOptions.d.ts.map +1 -1
  150. package/build/question/options/CreateProjectOptions.js +46 -11
  151. package/build/question/options/CreateProjectOptions.js.map +1 -1
  152. package/build/question/questionNames.d.ts +10 -1
  153. package/build/question/questionNames.d.ts.map +1 -1
  154. package/build/question/questionNames.js +9 -0
  155. package/build/question/questionNames.js.map +1 -1
  156. package/package.json +6 -6
  157. package/resource/package.nls.json +157 -78
  158. package/templates/fallback/common.zip +0 -0
  159. package/templates/fallback/csharp.zip +0 -0
  160. package/templates/fallback/js.zip +0 -0
  161. package/templates/fallback/ts.zip +0 -0
  162. package/templates/plugins/resource/aad/auth/V3/Enable SSO.txt +1 -1
  163. package/build/common/spec-parser/adaptiveCardGenerator.d.ts +0 -7
  164. package/build/common/spec-parser/adaptiveCardGenerator.d.ts.map +0 -1
  165. package/build/common/spec-parser/adaptiveCardGenerator.js +0 -168
  166. package/build/common/spec-parser/adaptiveCardGenerator.js.map +0 -1
  167. package/build/common/spec-parser/adaptiveCardWrapper.d.ts +0 -15
  168. package/build/common/spec-parser/adaptiveCardWrapper.d.ts.map +0 -1
  169. package/build/common/spec-parser/adaptiveCardWrapper.js +0 -98
  170. package/build/common/spec-parser/adaptiveCardWrapper.js.map +0 -1
  171. package/build/common/spec-parser/constants.d.ts +0 -41
  172. package/build/common/spec-parser/constants.d.ts.map +0 -1
  173. package/build/common/spec-parser/constants.js +0 -95
  174. package/build/common/spec-parser/constants.js.map +0 -1
  175. package/build/common/spec-parser/index.browser.d.ts +0 -6
  176. package/build/common/spec-parser/index.browser.d.ts.map +0 -1
  177. package/build/common/spec-parser/index.browser.js +0 -16
  178. package/build/common/spec-parser/index.browser.js.map +0 -1
  179. package/build/common/spec-parser/index.d.ts +0 -5
  180. package/build/common/spec-parser/index.d.ts.map +0 -1
  181. package/build/common/spec-parser/index.js +0 -16
  182. package/build/common/spec-parser/index.js.map +0 -1
  183. package/build/common/spec-parser/interfaces.d.ts +0 -180
  184. package/build/common/spec-parser/interfaces.d.ts.map +0 -1
  185. package/build/common/spec-parser/interfaces.js +0 -51
  186. package/build/common/spec-parser/interfaces.js.map +0 -1
  187. package/build/common/spec-parser/manifestUpdater.d.ts +0 -7
  188. package/build/common/spec-parser/manifestUpdater.d.ts.map +0 -1
  189. package/build/common/spec-parser/manifestUpdater.js +0 -98
  190. package/build/common/spec-parser/manifestUpdater.js.map +0 -1
  191. package/build/common/spec-parser/specFilter.d.ts +0 -3
  192. package/build/common/spec-parser/specFilter.d.ts.map +0 -1
  193. package/build/common/spec-parser/specFilter.js +0 -40
  194. package/build/common/spec-parser/specFilter.js.map +0 -1
  195. package/build/common/spec-parser/specParser.browser.d.ts +0 -46
  196. package/build/common/spec-parser/specParser.browser.d.ts.map +0 -1
  197. package/build/common/spec-parser/specParser.browser.js +0 -139
  198. package/build/common/spec-parser/specParser.browser.js.map +0 -1
  199. package/build/common/spec-parser/specParser.d.ts +0 -46
  200. package/build/common/spec-parser/specParser.d.ts.map +0 -1
  201. package/build/common/spec-parser/specParser.js +0 -244
  202. package/build/common/spec-parser/specParser.js.map +0 -1
  203. package/build/common/spec-parser/specParserError.d.ts +0 -6
  204. package/build/common/spec-parser/specParserError.d.ts.map +0 -1
  205. package/build/common/spec-parser/specParserError.js +0 -13
  206. package/build/common/spec-parser/specParserError.js.map +0 -1
  207. package/build/common/spec-parser/utils.d.ts +0 -43
  208. package/build/common/spec-parser/utils.d.ts.map +0 -1
  209. package/build/common/spec-parser/utils.js +0 -587
  210. package/build/common/spec-parser/utils.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.apiOperationQuestion = exports.apiMessageExtensionAuthQuestion = exports.openAIPluginManifestLocationQuestion = exports.apiSpecLocationQuestion = exports.ApiMessageExtensionAuthOptions = exports.RuntimeOptions = exports.appNameQuestion = exports.AppNamePattern = exports.folderQuestion = exports.programmingLanguageQuestion = exports.ProgrammingLanguage = exports.getLanguageOptions = 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.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.AppNamePattern = exports.folderQuestion = exports.programmingLanguageQuestion = exports.ProgrammingLanguage = exports.getLanguageOptions = 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;
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"));
@@ -29,6 +29,7 @@ const questionNames_1 = require("./questionNames");
29
29
  const util_1 = require("./util");
30
30
  const constants_3 = require("./constants");
31
31
  const correlator_1 = require("../common/correlator");
32
+ const projectConfig_1 = require("../component/generator/officeXMLAddin/projectConfig");
32
33
  class ScratchOptions {
33
34
  static yes() {
34
35
  return {
@@ -80,13 +81,27 @@ class ProjectTypeOptions {
80
81
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.detail"),
81
82
  };
82
83
  }
84
+ static officeAddin(platform) {
85
+ return {
86
+ id: "office-addin-type",
87
+ label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(inbox) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.mainEntry.title")}`,
88
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.mainEntry.detail"),
89
+ };
90
+ }
83
91
  static copilotPlugin(platform) {
84
92
  return {
85
93
  id: "copilot-plugin-type",
86
- label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(sparkle) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.label")}`,
94
+ label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(teamsfx-copilot-plugin) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.label")}`,
87
95
  detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.detail"),
88
96
  };
89
97
  }
98
+ static customCopilot(platform) {
99
+ return {
100
+ id: "custom-copilot-type",
101
+ label: `${platform === teamsfx_api_1.Platform.VSCode ? "$(teamsfx-custom-copilot) " : ""}${localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.customCopilot.label")}`,
102
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.customCopilot.detail"),
103
+ };
104
+ }
90
105
  }
91
106
  exports.ProjectTypeOptions = ProjectTypeOptions;
92
107
  function projectTypeQuestion() {
@@ -94,7 +109,9 @@ function projectTypeQuestion() {
94
109
  ProjectTypeOptions.bot(teamsfx_api_1.Platform.CLI),
95
110
  ProjectTypeOptions.tab(teamsfx_api_1.Platform.CLI),
96
111
  ProjectTypeOptions.me(teamsfx_api_1.Platform.CLI),
97
- ProjectTypeOptions.outlookAddin(teamsfx_api_1.Platform.CLI),
112
+ featureFlags_1.isOfficeXMLAddinEnabled()
113
+ ? ProjectTypeOptions.officeAddin(teamsfx_api_1.Platform.CLI)
114
+ : ProjectTypeOptions.outlookAddin(teamsfx_api_1.Platform.CLI),
98
115
  ];
99
116
  return {
100
117
  name: questionNames_1.QuestionNames.ProjectType,
@@ -103,22 +120,12 @@ function projectTypeQuestion() {
103
120
  staticOptions: staticOptions,
104
121
  dynamicOptions: (inputs) => {
105
122
  var _a;
106
- let staticOptions;
123
+ const staticOptions = [];
107
124
  if (featureFlags_1.isApiCopilotPluginEnabled()) {
108
- staticOptions = [
109
- ProjectTypeOptions.copilotPlugin(inputs.platform),
110
- ProjectTypeOptions.bot(inputs.platform),
111
- ProjectTypeOptions.tab(inputs.platform),
112
- ProjectTypeOptions.me(inputs.platform),
113
- ];
114
- }
115
- else {
116
- staticOptions = [
117
- ProjectTypeOptions.bot(inputs.platform),
118
- ProjectTypeOptions.tab(inputs.platform),
119
- ProjectTypeOptions.me(inputs.platform),
120
- ];
125
+ staticOptions.push(ProjectTypeOptions.copilotPlugin(inputs.platform));
121
126
  }
127
+ staticOptions.push(ProjectTypeOptions.customCopilot(inputs.platform));
128
+ staticOptions.push(ProjectTypeOptions.bot(inputs.platform), ProjectTypeOptions.tab(inputs.platform), ProjectTypeOptions.me(inputs.platform));
122
129
  if (developerPortalScaffoldUtils_1.isFromDevPortal(inputs)) {
123
130
  const projectType = (_a = developerPortalScaffoldUtils_1.getProjectTypeAndCapability(inputs.teamsAppFromTdp)) === null || _a === void 0 ? void 0 : _a.projectType;
124
131
  if (projectType) {
@@ -126,7 +133,9 @@ function projectTypeQuestion() {
126
133
  }
127
134
  }
128
135
  else {
129
- staticOptions.push(ProjectTypeOptions.outlookAddin(inputs.platform));
136
+ staticOptions.push(featureFlags_1.isOfficeXMLAddinEnabled()
137
+ ? ProjectTypeOptions.officeAddin(inputs.platform)
138
+ : ProjectTypeOptions.outlookAddin(inputs.platform));
130
139
  }
131
140
  return staticOptions;
132
141
  },
@@ -135,6 +144,30 @@ function projectTypeQuestion() {
135
144
  skipSingleOption: true,
136
145
  };
137
146
  }
147
+ class OfficeAddinCapabilityOptions {
148
+ static word() {
149
+ return {
150
+ id: "word",
151
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.word.title"),
152
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.word.detail"),
153
+ };
154
+ }
155
+ static excel() {
156
+ return {
157
+ id: "excel",
158
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.excel.title"),
159
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.excel.detail"),
160
+ };
161
+ }
162
+ static powerpoint() {
163
+ return {
164
+ id: "powerpoint",
165
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.powerpoint.title"),
166
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.powerpoint.detail"),
167
+ };
168
+ }
169
+ }
170
+ exports.OfficeAddinCapabilityOptions = OfficeAddinCapabilityOptions;
138
171
  class CapabilityOptions {
139
172
  // bot
140
173
  static basicBot() {
@@ -292,11 +325,9 @@ class CapabilityOptions {
292
325
  detail: localizeUtils_1.getLocalizedString("core.MessageExtensionOption.detail"),
293
326
  };
294
327
  }
295
- static bots(inputs, includeAssistant) {
328
+ static bots(inputs) {
296
329
  return [
297
330
  CapabilityOptions.basicBot(),
298
- CapabilityOptions.aiBot(),
299
- ...(includeAssistant === true ? [CapabilityOptions.aiAssistantBot()] : []),
300
331
  CapabilityOptions.notificationBot(),
301
332
  CapabilityOptions.commandBot(),
302
333
  CapabilityOptions.workflowBot(inputs),
@@ -313,7 +344,7 @@ class CapabilityOptions {
313
344
  static dotnetCaps(inputs) {
314
345
  const capabilities = [
315
346
  ...CapabilityOptions.copilotPlugins(),
316
- ...CapabilityOptions.bots(inputs, true),
347
+ ...CapabilityOptions.bots(inputs),
317
348
  CapabilityOptions.nonSsoTab(),
318
349
  CapabilityOptions.tab(),
319
350
  ...CapabilityOptions.collectMECaps(),
@@ -352,7 +383,14 @@ class CapabilityOptions {
352
383
  return [
353
384
  CapabilityOptions.copilotPluginNewApi(),
354
385
  CapabilityOptions.copilotPluginApiSpec(),
355
- CapabilityOptions.copilotPluginOpenAIPlugin(),
386
+ // CapabilityOptions.copilotPluginOpenAIPlugin(),
387
+ ];
388
+ }
389
+ static customCopilots() {
390
+ return [
391
+ CapabilityOptions.customCopilotBasic(),
392
+ // CapabilityOptions.customCopilotRag(),
393
+ CapabilityOptions.customCopilotAssistant(),
356
394
  ];
357
395
  }
358
396
  static tdpIntegrationCapabilities() {
@@ -368,12 +406,23 @@ class CapabilityOptions {
368
406
  */
369
407
  static staticAll(inputs) {
370
408
  const capabilityOptions = [
371
- ...CapabilityOptions.bots(inputs, true),
409
+ ...CapabilityOptions.bots(inputs),
372
410
  ...CapabilityOptions.tabs(),
373
411
  ...CapabilityOptions.collectMECaps(),
374
412
  ...CapabilityOptions.copilotPlugins(),
413
+ ...CapabilityOptions.customCopilots(),
375
414
  ...CapabilityOptions.tdpIntegrationCapabilities(),
376
415
  ];
416
+ if (featureFlags_1.isOfficeXMLAddinEnabled()) {
417
+ capabilityOptions.push(...[
418
+ ...CapabilityOptions.officeXMLAddinHostOptionItems(OfficeAddinCapabilityOptions.word().id),
419
+ ...CapabilityOptions.officeXMLAddinHostOptionItems(OfficeAddinCapabilityOptions.excel().id),
420
+ ...CapabilityOptions.officeXMLAddinHostOptionItems(OfficeAddinCapabilityOptions.powerpoint().id),
421
+ ]);
422
+ }
423
+ else {
424
+ capabilityOptions.push(...CapabilityOptions.officeAddinItems());
425
+ }
377
426
  return capabilityOptions;
378
427
  }
379
428
  /**
@@ -381,13 +430,15 @@ class CapabilityOptions {
381
430
  */
382
431
  static all(inputs) {
383
432
  const capabilityOptions = [
384
- ...CapabilityOptions.bots(inputs, true),
433
+ ...CapabilityOptions.bots(inputs),
385
434
  ...CapabilityOptions.tabs(),
386
435
  ...CapabilityOptions.collectMECaps(),
436
+ ...CapabilityOptions.officeAddinItems(),
387
437
  ];
388
438
  if (featureFlags_1.isApiCopilotPluginEnabled()) {
389
439
  capabilityOptions.push(...CapabilityOptions.copilotPlugins());
390
440
  }
441
+ capabilityOptions.push(...CapabilityOptions.customCopilots());
391
442
  if (featureFlags_1.isTdpTemplateCliTestEnabled()) {
392
443
  // test templates that are used by TDP integration only
393
444
  capabilityOptions.push(...CapabilityOptions.tdpIntegrationCapabilities());
@@ -399,15 +450,20 @@ class CapabilityOptions {
399
450
  id: "import",
400
451
  label: localizeUtils_1.getLocalizedString("core.importAddin.label"),
401
452
  detail: localizeUtils_1.getLocalizedString("core.importAddin.detail"),
402
- description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.previewOnWindow"),
403
453
  };
404
454
  }
455
+ static officeXMLAddinHostOptionItems(host) {
456
+ return projectConfig_1.getOfficeXMLAddinHostProjectOptions(host).map((x) => ({
457
+ id: x.proj,
458
+ label: localizeUtils_1.getLocalizedString(x.title),
459
+ detail: localizeUtils_1.getLocalizedString(x.detail),
460
+ }));
461
+ }
405
462
  static officeAddinItems() {
406
463
  return officeAddinJsonData.getProjectTemplateNames().map((template) => ({
407
464
  id: template,
408
465
  label: localizeUtils_1.getLocalizedString(officeAddinJsonData.getProjectDisplayName(template)),
409
466
  detail: localizeUtils_1.getLocalizedString(officeAddinJsonData.getProjectDetails(template)),
410
- description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.previewOnWindow"),
411
467
  }));
412
468
  }
413
469
  static nonSsoTabAndBot() {
@@ -459,12 +515,47 @@ class CapabilityOptions {
459
515
  description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.preview"),
460
516
  };
461
517
  }
518
+ // custom copilot
519
+ static customCopilotBasic() {
520
+ return {
521
+ id: "custom-copilot-basic",
522
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotBasicOption.label"),
523
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotBasicOption.detail"),
524
+ };
525
+ }
526
+ static customCopilotRag() {
527
+ return {
528
+ id: "custom-copilot-rag",
529
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRagOption.label"),
530
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRagOption.detail"),
531
+ };
532
+ }
533
+ static customCopilotAssistant() {
534
+ return {
535
+ id: "custom-copilot-assistant",
536
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotAssistantOption.label"),
537
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotAssistantOption.detail"),
538
+ };
539
+ }
462
540
  }
463
541
  exports.CapabilityOptions = CapabilityOptions;
464
542
  function capabilityQuestion() {
465
543
  return {
466
544
  name: questionNames_1.QuestionNames.Capabilities,
467
545
  title: (inputs) => {
546
+ // Office Add-in Capability
547
+ if (featureFlags_1.isOfficeXMLAddinEnabled()) {
548
+ switch (inputs[questionNames_1.QuestionNames.OfficeAddinCapability]) {
549
+ case ProjectTypeOptions.outlookAddin().id:
550
+ return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.title");
551
+ case OfficeAddinCapabilityOptions.word().id:
552
+ return localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.word.create.title");
553
+ case OfficeAddinCapabilityOptions.excel().id:
554
+ return localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.excel.create.title");
555
+ case OfficeAddinCapabilityOptions.powerpoint().id:
556
+ return localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.powerpoint.create.title");
557
+ }
558
+ }
468
559
  const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
469
560
  switch (projectType) {
470
561
  case ProjectTypeOptions.bot().id:
@@ -477,6 +568,8 @@ function capabilityQuestion() {
477
568
  return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.outlookAddin.title");
478
569
  case ProjectTypeOptions.copilotPlugin().id:
479
570
  return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.title");
571
+ case ProjectTypeOptions.customCopilot().id:
572
+ return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.customCopilot.title");
480
573
  default:
481
574
  return localizeUtils_1.getLocalizedString("core.createCapabilityQuestion.titleNew");
482
575
  }
@@ -506,8 +599,9 @@ function capabilityQuestion() {
506
599
  }
507
600
  // nodejs capabilities
508
601
  const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
602
+ const officeHost = inputs[questionNames_1.QuestionNames.OfficeAddinCapability];
509
603
  if (projectType === ProjectTypeOptions.bot().id) {
510
- return CapabilityOptions.bots(inputs, true);
604
+ return CapabilityOptions.bots(inputs);
511
605
  }
512
606
  else if (projectType === ProjectTypeOptions.tab().id) {
513
607
  return CapabilityOptions.tabs();
@@ -515,12 +609,21 @@ function capabilityQuestion() {
515
609
  else if (projectType === ProjectTypeOptions.me().id) {
516
610
  return CapabilityOptions.mes();
517
611
  }
518
- else if (projectType === ProjectTypeOptions.outlookAddin().id) {
612
+ else if ((!featureFlags_1.isOfficeXMLAddinEnabled() && projectType === ProjectTypeOptions.outlookAddin().id) ||
613
+ (featureFlags_1.isOfficeXMLAddinEnabled() &&
614
+ projectType === ProjectTypeOptions.officeAddin().id &&
615
+ officeHost === ProjectTypeOptions.outlookAddin().id)) {
519
616
  return [...CapabilityOptions.officeAddinItems(), CapabilityOptions.officeAddinImport()];
520
617
  }
618
+ else if (featureFlags_1.isOfficeXMLAddinEnabled() && projectType === ProjectTypeOptions.officeAddin().id) {
619
+ return CapabilityOptions.officeXMLAddinHostOptionItems(officeHost);
620
+ }
521
621
  else if (projectType === ProjectTypeOptions.copilotPlugin().id) {
522
622
  return CapabilityOptions.copilotPlugins();
523
623
  }
624
+ else if (projectType === ProjectTypeOptions.customCopilot().id) {
625
+ return CapabilityOptions.customCopilots();
626
+ }
524
627
  else {
525
628
  return CapabilityOptions.all(inputs);
526
629
  }
@@ -529,6 +632,9 @@ function capabilityQuestion() {
529
632
  if (inputs[questionNames_1.QuestionNames.ProjectType] === ProjectTypeOptions.copilotPlugin().id) {
530
633
  return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.copilotPlugin.placeholder");
531
634
  }
635
+ else if (inputs[questionNames_1.QuestionNames.ProjectType] === ProjectTypeOptions.customCopilot().id) {
636
+ return localizeUtils_1.getLocalizedString("core.createProjectQuestion.projectType.customCopilot.placeholder");
637
+ }
532
638
  return localizeUtils_1.getLocalizedString("core.createCapabilityQuestion.placeholder");
533
639
  },
534
640
  forgetLastValue: true,
@@ -557,14 +663,14 @@ class MeArchitectureOptions {
557
663
  return {
558
664
  id: "new-api",
559
665
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginNewApiOption.label"),
560
- detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginNewApiOption.detail"),
666
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.messageExtensionNewApiOption.detail"),
561
667
  };
562
668
  }
563
669
  static apiSpec() {
564
670
  return {
565
671
  id: "api-spec",
566
672
  label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginApiSpecOption.label"),
567
- detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.copilotPluginApiSpecOption.detail"),
673
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.messageExtensionApiSpecOption.detail"),
568
674
  };
569
675
  }
570
676
  static all() {
@@ -934,22 +1040,42 @@ function getLanguageOptions(inputs) {
934
1040
  }
935
1041
  // office addin supports language defined in officeAddinJsonData
936
1042
  const projectType = inputs[questionNames_1.QuestionNames.ProjectType];
937
- if (projectType === ProjectTypeOptions.outlookAddin().id) {
1043
+ const officeHost = inputs[questionNames_1.QuestionNames.OfficeAddinCapability];
1044
+ if ((!featureFlags_1.isOfficeXMLAddinEnabled() && projectType === ProjectTypeOptions.outlookAddin().id) ||
1045
+ (featureFlags_1.isOfficeXMLAddinEnabled() &&
1046
+ projectType === ProjectTypeOptions.officeAddin().id &&
1047
+ officeHost === ProjectTypeOptions.outlookAddin().id)) {
938
1048
  const template = exports.getTemplate(inputs);
939
1049
  const supportedTypes = officeAddinJsonData.getSupportedScriptTypes(template);
940
1050
  const options = supportedTypes.map((language) => ({ label: language, id: language }));
941
1051
  return options.length > 0 ? options : [{ label: "No Options", id: "No Options" }];
942
1052
  }
1053
+ if (featureFlags_1.isOfficeXMLAddinEnabled() && projectType === ProjectTypeOptions.officeAddin().id) {
1054
+ const officeProject = inputs[questionNames_1.QuestionNames.Capabilities];
1055
+ return officeProject !== "manifest"
1056
+ ? projectConfig_1.getOfficeXMLAddinHostProjectLangOptions(officeHost, officeProject)
1057
+ : [{ id: "javascript", label: "JavaScript" }];
1058
+ }
943
1059
  const capabilities = inputs[questionNames_1.QuestionNames.Capabilities];
944
- // SPFx only supports typescript
945
1060
  if (capabilities === CapabilityOptions.SPFxTab().id) {
1061
+ // SPFx only supports typescript
946
1062
  return [{ id: "typescript", label: "TypeScript" }];
947
1063
  }
948
- // other case
949
- return [
950
- { id: "javascript", label: "JavaScript" },
951
- { id: "typescript", label: "TypeScript" },
952
- ];
1064
+ else if (constants_3.capabilitiesHavePythonOption.includes(capabilities)) {
1065
+ // support python language
1066
+ return [
1067
+ { id: "javascript", label: "JavaScript" },
1068
+ { id: "typescript", label: "TypeScript" },
1069
+ { id: "python", label: "Python" },
1070
+ ];
1071
+ }
1072
+ else {
1073
+ // other cases
1074
+ return [
1075
+ { id: "javascript", label: "JavaScript" },
1076
+ { id: "typescript", label: "TypeScript" },
1077
+ ];
1078
+ }
953
1079
  }
954
1080
  exports.getLanguageOptions = getLanguageOptions;
955
1081
  var ProgrammingLanguage;
@@ -957,17 +1083,19 @@ var ProgrammingLanguage;
957
1083
  ProgrammingLanguage["JS"] = "javascript";
958
1084
  ProgrammingLanguage["TS"] = "typescript";
959
1085
  ProgrammingLanguage["CSharp"] = "csharp";
1086
+ ProgrammingLanguage["PY"] = "python";
960
1087
  })(ProgrammingLanguage = exports.ProgrammingLanguage || (exports.ProgrammingLanguage = {}));
961
1088
  function programmingLanguageQuestion() {
962
1089
  const programmingLanguageQuestion = {
963
1090
  name: questionNames_1.QuestionNames.ProgrammingLanguage,
964
1091
  cliShortName: "l",
965
- title: "Programming Language",
1092
+ title: localizeUtils_1.getLocalizedString("core.ProgrammingLanguageQuestion.title"),
966
1093
  type: "singleSelect",
967
1094
  staticOptions: [
968
1095
  { id: ProgrammingLanguage.JS, label: "JavaScript" },
969
1096
  { id: ProgrammingLanguage.TS, label: "TypeScript" },
970
1097
  { id: ProgrammingLanguage.CSharp, label: "C#" },
1098
+ { id: ProgrammingLanguage.PY, label: "Python" },
971
1099
  ],
972
1100
  dynamicOptions: getLanguageOptions,
973
1101
  default: (inputs) => {
@@ -1021,7 +1149,7 @@ function appNameQuestion() {
1021
1149
  type: "text",
1022
1150
  name: questionNames_1.QuestionNames.AppName,
1023
1151
  cliShortName: "n",
1024
- title: "Application name",
1152
+ title: localizeUtils_1.getLocalizedString("core.question.appName.title"),
1025
1153
  required: true,
1026
1154
  default: async (inputs) => {
1027
1155
  var _a, _b;
@@ -1075,7 +1203,7 @@ function appNameQuestion() {
1075
1203
  return undefined;
1076
1204
  },
1077
1205
  },
1078
- placeholder: "Application name",
1206
+ placeholder: localizeUtils_1.getLocalizedString("core.question.appName.placeholder"),
1079
1207
  };
1080
1208
  return question;
1081
1209
  }
@@ -1306,14 +1434,14 @@ function selectBotIdsQuestion() {
1306
1434
  }
1307
1435
  const maximumLengthOfDetailsErrorMessageInInputBox = 90;
1308
1436
  function apiSpecLocationQuestion(includeExistingAPIs = true) {
1309
- const correlationId = correlator_1.Correlator.getId(); // This is a workaround for VSCode which will loose correlation id when user accepts the value.
1437
+ const correlationId = correlator_1.Correlator.getId(); // This is a workaround for VSCode which will lose correlation id when user accepts the value.
1310
1438
  const validationOnAccept = async (input, inputs) => {
1311
1439
  try {
1312
1440
  if (!inputs) {
1313
1441
  throw new Error("inputs is undefined"); // should never happen
1314
1442
  }
1315
1443
  const context = utils_4.createContextV3();
1316
- const res = await helper_1.listOperations(context, undefined, input.trim(), inputs[questionNames_1.QuestionNames.ManifestPath], includeExistingAPIs, false, inputs.platform === teamsfx_api_1.Platform.VSCode ? correlationId : undefined);
1444
+ const res = await helper_1.listOperations(context, undefined, input.trim(), inputs, includeExistingAPIs, false, inputs.platform === teamsfx_api_1.Platform.VSCode ? correlationId : undefined);
1317
1445
  if (res.isOk()) {
1318
1446
  inputs.supportedApisFromApiSpec = res.value;
1319
1447
  }
@@ -1380,7 +1508,7 @@ function apiSpecLocationQuestion(includeExistingAPIs = true) {
1380
1508
  exports.apiSpecLocationQuestion = apiSpecLocationQuestion;
1381
1509
  function openAIPluginManifestLocationQuestion() {
1382
1510
  // export for unit test
1383
- const correlationId = correlator_1.Correlator.getId(); // This is a workaround for VSCode which will loose correlation id when user accepts the value.
1511
+ const correlationId = correlator_1.Correlator.getId(); // This is a workaround for VSCode which will lose correlation id when user accepts the value.
1384
1512
  return {
1385
1513
  type: "text",
1386
1514
  name: questionNames_1.QuestionNames.OpenAIPluginManifest,
@@ -1415,7 +1543,7 @@ function openAIPluginManifestLocationQuestion() {
1415
1543
  }
1416
1544
  const context = utils_4.createContextV3();
1417
1545
  try {
1418
- const res = await helper_1.listOperations(context, manifest, inputs[questionNames_1.QuestionNames.ApiSpecLocation], undefined, true, true, inputs.platform === teamsfx_api_1.Platform.VSCode ? correlationId : undefined);
1546
+ const res = await helper_1.listOperations(context, manifest, inputs[questionNames_1.QuestionNames.ApiSpecLocation], inputs, true, true, inputs.platform === teamsfx_api_1.Platform.VSCode ? correlationId : undefined);
1419
1547
  if (res.isOk()) {
1420
1548
  inputs.supportedApisFromApiSpec = res.value;
1421
1549
  }
@@ -1456,17 +1584,36 @@ function apiMessageExtensionAuthQuestion() {
1456
1584
  exports.apiMessageExtensionAuthQuestion = apiMessageExtensionAuthQuestion;
1457
1585
  function apiOperationQuestion(includeExistingAPIs = true) {
1458
1586
  // export for unit test
1587
+ let placeholder = "";
1588
+ const isPlugin = (inputs) => {
1589
+ return (!!inputs && inputs[questionNames_1.QuestionNames.Capabilities] === CapabilityOptions.copilotPluginApiSpec().id);
1590
+ };
1459
1591
  return {
1460
1592
  type: "multiSelect",
1461
1593
  name: questionNames_1.QuestionNames.ApiOperation,
1462
- title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.title"),
1594
+ title: (inputs) => {
1595
+ return isPlugin(inputs)
1596
+ ? localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.copilotOperation.title")
1597
+ : localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.title");
1598
+ },
1463
1599
  cliDescription: "Select Operation(s) Teams Can Interact with.",
1464
1600
  cliShortName: "o",
1465
- placeholder: includeExistingAPIs
1466
- ? featureFlags_1.isApiKeyEnabled()
1467
- ? localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.apikey.placeholder")
1468
- : localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.placeholder")
1469
- : localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.placeholder.skipExisting"),
1601
+ placeholder: (inputs) => {
1602
+ const isPlugin = inputs[questionNames_1.QuestionNames.Capabilities] === CapabilityOptions.copilotPluginApiSpec().id;
1603
+ if (!includeExistingAPIs) {
1604
+ placeholder = localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.placeholder.skipExisting");
1605
+ }
1606
+ else if (isPlugin) {
1607
+ placeholder = ""; // TODO: add placeholder for api plugin
1608
+ }
1609
+ else if (featureFlags_1.isApiKeyEnabled()) {
1610
+ placeholder = localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.apikey.placeholder");
1611
+ }
1612
+ else {
1613
+ placeholder = localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.operation.placeholder");
1614
+ }
1615
+ return placeholder;
1616
+ },
1470
1617
  forgetLastValue: true,
1471
1618
  staticOptions: [],
1472
1619
  validation: {
@@ -1504,6 +1651,153 @@ function apiOperationQuestion(includeExistingAPIs = true) {
1504
1651
  };
1505
1652
  }
1506
1653
  exports.apiOperationQuestion = apiOperationQuestion;
1654
+ class CustomCopilotRagOptions {
1655
+ static customize() {
1656
+ return {
1657
+ id: "custom-copilot-rag-customize",
1658
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRagCustomizeOption.label"),
1659
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRagCustomizeOption.detail"),
1660
+ };
1661
+ }
1662
+ static azureAISearch() {
1663
+ return {
1664
+ id: "custom-copilot-rag-azureAISearch",
1665
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRagAzureAISearchOption.label"),
1666
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRagAzureAISearchOption.detail"),
1667
+ };
1668
+ }
1669
+ static customApi() {
1670
+ return {
1671
+ id: "custom-copilot-rag-customApi",
1672
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRagCustomApiOption.label"),
1673
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRagCustomApiOption.detail"),
1674
+ description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.preview"),
1675
+ };
1676
+ }
1677
+ static microsoft365() {
1678
+ return {
1679
+ id: "custom-copilot-rag-microsoft365",
1680
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRagMicrosoft365Option.label"),
1681
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRagMicrosoft365Option.detail"),
1682
+ };
1683
+ }
1684
+ static all() {
1685
+ return [
1686
+ CustomCopilotRagOptions.customize(),
1687
+ CustomCopilotRagOptions.azureAISearch(),
1688
+ CustomCopilotRagOptions.customApi(),
1689
+ CustomCopilotRagOptions.microsoft365(),
1690
+ ];
1691
+ }
1692
+ }
1693
+ exports.CustomCopilotRagOptions = CustomCopilotRagOptions;
1694
+ class CustomCopilotAssistantOptions {
1695
+ static new() {
1696
+ return {
1697
+ id: "custom-copilot-assistant-new",
1698
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotAssistantNewOption.label"),
1699
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotAssistantNewOption.detail"),
1700
+ };
1701
+ }
1702
+ static assistantsApi() {
1703
+ return {
1704
+ id: "custom-copilot-assistant-assistantsApi",
1705
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotAssistantAssistantsApiOption.label"),
1706
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotAssistantAssistantsApiOption.detail"),
1707
+ description: localizeUtils_1.getLocalizedString("core.createProjectQuestion.option.description.preview"),
1708
+ };
1709
+ }
1710
+ static all() {
1711
+ return [CustomCopilotAssistantOptions.new(), CustomCopilotAssistantOptions.assistantsApi()];
1712
+ }
1713
+ }
1714
+ exports.CustomCopilotAssistantOptions = CustomCopilotAssistantOptions;
1715
+ function customCopilotRagQuestion() {
1716
+ return {
1717
+ type: "singleSelect",
1718
+ name: questionNames_1.QuestionNames.CustomCopilotRag,
1719
+ title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRag.title"),
1720
+ placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotRag.placeholder"),
1721
+ staticOptions: CustomCopilotRagOptions.all(),
1722
+ dynamicOptions: () => CustomCopilotRagOptions.all(),
1723
+ default: CustomCopilotRagOptions.customize().id,
1724
+ };
1725
+ }
1726
+ function customCopilotAssistantQuestion() {
1727
+ return {
1728
+ type: "singleSelect",
1729
+ name: questionNames_1.QuestionNames.CustomCopilotAssistant,
1730
+ title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotAssistant.title"),
1731
+ placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.capability.customCopilotAssistant.placeholder"),
1732
+ staticOptions: CustomCopilotAssistantOptions.all(),
1733
+ dynamicOptions: () => CustomCopilotAssistantOptions.all(),
1734
+ default: CustomCopilotAssistantOptions.new().id,
1735
+ };
1736
+ }
1737
+ function llmServiceQuestion() {
1738
+ return {
1739
+ type: "singleSelect",
1740
+ name: questionNames_1.QuestionNames.LLMService,
1741
+ title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.title"),
1742
+ placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.placeholder"),
1743
+ staticOptions: [
1744
+ {
1745
+ id: "llm-service-azureOpenAI",
1746
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmServiceAzureOpenAIOption.label"),
1747
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmServiceAzureOpenAIOption.detail"),
1748
+ },
1749
+ {
1750
+ id: "llm-service-openAI",
1751
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmServiceOpenAIOption.label"),
1752
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmServiceOpenAIOption.detail"),
1753
+ },
1754
+ ],
1755
+ dynamicOptions: (inputs) => {
1756
+ const options = [];
1757
+ if (inputs[questionNames_1.QuestionNames.CustomCopilotAssistant] !== "custom-copilot-assistant-assistantsApi") {
1758
+ options.push({
1759
+ id: "llm-service-azureOpenAI",
1760
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmServiceAzureOpenAIOption.label"),
1761
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmServiceAzureOpenAIOption.detail"),
1762
+ });
1763
+ }
1764
+ options.push({
1765
+ id: "llm-service-openAI",
1766
+ label: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmServiceOpenAIOption.label"),
1767
+ detail: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmServiceOpenAIOption.detail"),
1768
+ });
1769
+ return options;
1770
+ },
1771
+ skipSingleOption: true,
1772
+ default: "llm-service-azureOpenAI",
1773
+ };
1774
+ }
1775
+ function openAIKeyQuestion() {
1776
+ return {
1777
+ type: "text",
1778
+ password: true,
1779
+ name: questionNames_1.QuestionNames.OpenAIKey,
1780
+ title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.openAIKey.title"),
1781
+ placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.openAIKey.placeholder"),
1782
+ };
1783
+ }
1784
+ function azureOpenAIKeyQuestion() {
1785
+ return {
1786
+ type: "text",
1787
+ password: true,
1788
+ name: questionNames_1.QuestionNames.AzureOpenAIKey,
1789
+ title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.azureOpenAIKey.title"),
1790
+ placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.azureOpenAIKey.placeholder"),
1791
+ };
1792
+ }
1793
+ function azureOpenAIEndpointQuestion() {
1794
+ return {
1795
+ type: "text",
1796
+ name: questionNames_1.QuestionNames.AzureOpenAIEndpoint,
1797
+ title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.azureOpenAIEndpoint.title"),
1798
+ placeholder: localizeUtils_1.getLocalizedString("core.createProjectQuestion.llmService.azureOpenAIEndpoint.placeholder"),
1799
+ };
1800
+ }
1507
1801
  function capabilitySubTree() {
1508
1802
  const node = {
1509
1803
  data: capabilityQuestion(),
@@ -1556,9 +1850,11 @@ function capabilitySubTree() {
1556
1850
  },
1557
1851
  {
1558
1852
  // office addin other items sub-tree
1559
- condition: {
1560
- enum: CapabilityOptions.officeAddinItems().map((i) => i.id),
1561
- },
1853
+ condition: (inputs) => featureFlags_1.isOfficeXMLAddinEnabled()
1854
+ ? false
1855
+ : CapabilityOptions.officeAddinItems()
1856
+ .map((i) => i.id)
1857
+ .includes(inputs[questionNames_1.QuestionNames.Capabilities]),
1562
1858
  data: officeAddinHostingQuestion(),
1563
1859
  },
1564
1860
  {
@@ -1584,10 +1880,10 @@ function capabilitySubTree() {
1584
1880
  },
1585
1881
  data: apiSpecLocationQuestion(),
1586
1882
  },
1587
- {
1588
- condition: { equals: CapabilityOptions.copilotPluginOpenAIPlugin().id },
1589
- data: openAIPluginManifestLocationQuestion(),
1590
- },
1883
+ // {
1884
+ // condition: { equals: CapabilityOptions.copilotPluginOpenAIPlugin().id },
1885
+ // data: openAIPluginManifestLocationQuestion(),
1886
+ // },
1591
1887
  {
1592
1888
  data: apiOperationQuestion(),
1593
1889
  },
@@ -1601,6 +1897,38 @@ function capabilitySubTree() {
1601
1897
  },
1602
1898
  data: apiMessageExtensionAuthQuestion(),
1603
1899
  },
1900
+ /*
1901
+ {
1902
+ condition: (inputs: Inputs) => {
1903
+ return inputs[QuestionNames.Capabilities] == CapabilityOptions.customCopilotRag().id;
1904
+ },
1905
+ data: customCopilotRagQuestion(),
1906
+ children: [
1907
+ {
1908
+ condition: (inputs: Inputs) => {
1909
+ return (
1910
+ inputs[QuestionNames.CustomCopilotRag] === CustomCopilotRagOptions.customApi().id
1911
+ );
1912
+ },
1913
+ data: apiSpecLocationQuestion(),
1914
+ },
1915
+ {
1916
+ condition: (inputs: Inputs) => {
1917
+ return (
1918
+ inputs[QuestionNames.CustomCopilotRag] === CustomCopilotRagOptions.customApi().id
1919
+ );
1920
+ },
1921
+ data: apiOperationQuestion(),
1922
+ },
1923
+ ],
1924
+ },
1925
+ */
1926
+ {
1927
+ condition: (inputs) => {
1928
+ return (inputs[questionNames_1.QuestionNames.Capabilities] == CapabilityOptions.customCopilotAssistant().id);
1929
+ },
1930
+ data: customCopilotAssistantQuestion(),
1931
+ },
1604
1932
  {
1605
1933
  // programming language
1606
1934
  data: programmingLanguageQuestion(),
@@ -1612,6 +1940,33 @@ function capabilitySubTree() {
1612
1940
  inputs[questionNames_1.QuestionNames.MeArchitectureType] !== MeArchitectureOptions.apiSpec().id);
1613
1941
  },
1614
1942
  },
1943
+ {
1944
+ condition: (inputs) => {
1945
+ return (inputs[questionNames_1.QuestionNames.Capabilities] === CapabilityOptions.customCopilotBasic().id ||
1946
+ inputs[questionNames_1.QuestionNames.Capabilities] === CapabilityOptions.customCopilotRag().id ||
1947
+ inputs[questionNames_1.QuestionNames.Capabilities] === CapabilityOptions.customCopilotAssistant().id);
1948
+ },
1949
+ data: llmServiceQuestion(),
1950
+ children: [
1951
+ {
1952
+ condition: { equals: "llm-service-azureOpenAI" },
1953
+ data: azureOpenAIKeyQuestion(),
1954
+ children: [
1955
+ {
1956
+ condition: (inputs) => {
1957
+ var _a;
1958
+ return ((_a = inputs[questionNames_1.QuestionNames.AzureOpenAIKey]) === null || _a === void 0 ? void 0 : _a.length) > 0;
1959
+ },
1960
+ data: azureOpenAIEndpointQuestion(),
1961
+ },
1962
+ ],
1963
+ },
1964
+ {
1965
+ condition: { equals: "llm-service-openAI" },
1966
+ data: openAIKeyQuestion(),
1967
+ },
1968
+ ],
1969
+ },
1615
1970
  {
1616
1971
  // root folder
1617
1972
  data: folderQuestion(),
@@ -1638,6 +1993,21 @@ function createProjectQuestionNode() {
1638
1993
  data: projectTypeQuestion(),
1639
1994
  cliOptionDisabled: "self",
1640
1995
  },
1996
+ {
1997
+ condition: (inputs) => featureFlags_1.isOfficeXMLAddinEnabled() &&
1998
+ inputs[questionNames_1.QuestionNames.ProjectType] === ProjectTypeOptions.officeAddin().id,
1999
+ data: {
2000
+ name: questionNames_1.QuestionNames.OfficeAddinCapability,
2001
+ title: localizeUtils_1.getLocalizedString("core.createProjectQuestion.officeXMLAddin.create.title"),
2002
+ type: "singleSelect",
2003
+ staticOptions: [
2004
+ ProjectTypeOptions.outlookAddin(),
2005
+ OfficeAddinCapabilityOptions.word(),
2006
+ OfficeAddinCapabilityOptions.excel(),
2007
+ OfficeAddinCapabilityOptions.powerpoint(),
2008
+ ],
2009
+ },
2010
+ },
1641
2011
  capabilitySubTree(),
1642
2012
  {
1643
2013
  condition: (inputs) => inputs.teamsAppFromTdp && utils_2.isPersonalApp(inputs.teamsAppFromTdp),
@@ -1701,9 +2071,6 @@ function createProjectCliHelpNode() {
1701
2071
  if (!featureFlags_1.isCLIDotNetEnabled()) {
1702
2072
  deleteNames.push(questionNames_1.QuestionNames.Runtime);
1703
2073
  }
1704
- if (!featureFlags_1.isApiCopilotPluginEnabled()) {
1705
- deleteNames.push(questionNames_1.QuestionNames.CopilotPluginExistingApi);
1706
- }
1707
2074
  trimQuestionTreeForCliHelp(node, deleteNames);
1708
2075
  return node;
1709
2076
  }