Updates from: 02/15/2024 06:23:21
Service Microsoft Docs article Related commit history on GitHub Change details
platform Teams Conversation Ai Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/Teams conversational AI/teams-conversation-ai-overview.md
Title: Teams AI library
description: In this article, learn about Teams conversation AI. ms.localizationpriority: medium - Previously updated : 11/27/2023++ Last updated : 02/12/2024 # Teams AI library
The Teams AI Library is available in JavaScript and C# languages allowing you to
The following are some of the main features available through Teams AI library:
-* [Simple Teams-centric component scaffolding](#simple-teams-centric-component-scaffolding)
-* [Natural language modeling](#natural-language-modeling)
-* [Prompt engineering](#prompt-engineering)
-* [Conversational session history](#conversational-session-history)
-* [Localization](#localization)
-* [LLM modularity](#llm-modularity)
-* [Responsible AI](#responsible-ai)
-* [Predictive engine for mapping intents to actions](#predictive-engine-for-mapping-intents-to-actions)
-* [Action Planner](#action-planner)
-* [Prompt management](#prompt-management)
-* [Augmentation](#augmentation)
-* [Vector data sources](#vector-data-sources)
-* [Enhanced reasoning](#enhanced-reasoning)
-* [Feedback loop](#feedback-loop)
- ## Simple Teams-centric component scaffolding The Teams AI library simplifies the Teams app model to focus on the extension needed versus the protocol required. You can use prebuilt templates and add your business logic to this scaffold to add modules such as bots, message extensions, Adaptive Cards, or link unfurling.
Action Planner is the main component calling your Large Language Model (LLM) and
## Prompt management
-Dynamic prompt management is a feature of the AI system that allows it to adjust the size and content of the prompt that is sent to the language model, based on the available token budget and the data sources or augmentations. It can improve the efficiency and accuracy of the model by ensuring that the prompt doesn't exceed the context window or include irrelevant information.
+Dynamic prompt management is a feature of the AI system that allows it to adjust the size and content of the prompt that is sent to the language model, based on the available token budget and the data sources or augmentations. It can improve the efficiency and accuracy of the model by ensuring that the prompt doesn't exceed the context window or include irrelevant information.
## Augmentation
Efficiently enhance and direct your AI modelΓÇÖs responses with Augmentation. Us
* **Monologue**: Create AutoGPT-style agents capable of performing multi-step actions independently and reliability with full schema validation and automatic repair included.
-* **Sequences**: Enable your AI assistant to return a sequence of actions for execution with schema validation increasing reliability.
+* **Sequence**: Enable your AI assistant to return a sequence of actions for execution with schema validation increasing reliability.
* **Functions**: Produce structured responses from your model by employing user-defined Functions. These functions are customizable using JSON schemas to define the parameters and their format. The ActionPlanner assesses model responses against the schema, making repairs as needed increasing response reliability and consistency. ### Vector data sources
-Vector databases are a new type of database designed to store vectors and enable efficient search over them. They return the most relevant results for a user's query. The vector search feature in a vector database allows retrieval-augmented generation to use LLMs and custom data or domain-specific information. This involves extracting relevant information from a custom data source and integrating it into the model request through prompt engineering. Before sending a request to the LLM, the user input, query, or request is transformed into an embedding, and vector search techniques are used to find the most similar embeddings in the database.
-
+Vector databases are a new type of database designed to store vectors and enable efficient search over them. They return the most relevant results for a user's query. The vector search feature in a vector database allows retrieval-augmented generation to use LLMs and custom data or domain-specific information. This involves extracting relevant information from a custom data source and integrating it into the model request through prompt engineering. Before sending a request to the LLM, the user input, query, or request is transformed into an embedding, and vector search techniques are used to find the most similar embeddings in the database.
## Enhanced reasoning
The following table lists the updates to the Teams AI library:
|OpenAIModel |The OpenAIModel class lets you call both OAI and Azure OAI with one single component. New models can be defined for other model types like LLaMA2. | ✔️ |✔️| |Embeddings | The OpenAIEmbeddings class lets you generate embeddings using either OAI or Azure OAI. New embeddings can be defined for things like OSS Embeddings. | ✔️ |❌| |Prompts | A new object-based prompt system enables better token management and reduces the likelihood of overflowing the model's context window. | ✔️ |✔️|
-| Augmentation | Augmentations simplify prompt engineering tasks by letting the developer add named augmentations to their prompt. Only `functions`, `sequences`, and `monologue` style augmentations are supported. | ✔️ |✔️|
+| Augmentation | Augmentations simplify prompt engineering tasks by letting the developer add named augmentations to their prompt. Only `functions`, `sequence`, and `monologue` style augmentations are supported. | ✔️ |✔️|
|Data Sources | A new DataSource plugin makes it easy to add RAG to any prompt. You can register a named data source with the planner and then specify the name[s] of the data sources they wish to augment the prompt. | ✔️ |❌| - ## Code samples |Sample name | Description |.NET | Node.js |
The following table lists the updates to the Teams AI library:
|Math tutor assistant|This example shows how to create a basic conversational experience using OpenAI's Assistants APIs. It uses OpenAI's Code Interpreter tool to create an assistant that's an expert on math.|[View](https://github.com/microsoft/teams-ai/tree/main/dotnet/samples/06.assistants.a.mathBot)|[View](https://github.com/microsoft/teams-ai/tree/main/js/samples/06.assistants.a.mathBot) | |Food ordering assistant|This example shows how to create a conversational assistant that uses tools to call actions in your bots code. It's a food ordering assistant for a fictional restaurant called The Pub and is capable of complex interactions with the user as it takes their order.|[View](https://github.com/microsoft/teams-ai/tree/main/dotnet/samples/06.assistants.b.orderBot)|[View](https://github.com/microsoft/teams-ai/tree/main/js/samples/06.assistants.b.orderBot) | -- ## Next step > [!div class="nextstepaction"]
platform Develop Your Apps With Teams Toolkit https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/develop-your-apps-with-teams-toolkit.md
Teams Toolkit scaffolds the necessary files based on the feature and configurati
## Open your app in Visual Studio Code
-In Teams Developer Portal, you can open and launch your project in Visual Studio Code.
+In Teams Developer Portal, you can open and launch your project (React app) in Visual Studio Code.
Following are the steps to open your app in Visual Studio Code:
platform Copilot Plugin Faq https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/copilot-plugin-faq.md
Get answers to your common queries about building a message extension and extend
<summary>Why isn't Microsoft 365 Chat including my plugin in a response?</summary>
-Ensure your app manifest (previously called Teams app manifest) is descriptive. The app manifest helps in plugin matching in response to a user prompt. Also, make sure you've uploaded the app package to Outlook and interacted with the app, including authentication.
+Ensure your app manifest (previously called Teams app manifest) is descriptive. The app manifest helps in plugin matching in response to a user prompt. Also, ensure that you upload the app package to Outlook and interacted with the app, including authentication.
If the problem continues, use the thumbs down indicator in the Microsoft 365 Chat reply and prefix your reply with [MessageExtension].
Use the downvoting option in the Microsoft 365 Chat reply and prefix your reply
<summary> Can I build my own Teams message extension? </summary>
-Yes, you can. Ensure that you have a descriptive app manifest and have uploaded the app to Outlook and interacted with it, including authentication.</br>
+Yes, you can. Ensure that you have a descriptive app manifest and upload the app to Outlook and interacted with it.</br>
</details> </br> <details>
Yes, you can. Ensure that you have a descriptive app manifest and have uploaded
</details> </br>+
+<details>
+<summary>What are the guidelines for Teams apps extensible as plugin for Microsoft Copilot for Microsoft 365? </summary>
+
+You can read the [Teams Store validation guidelines](../concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md#teams-apps-extensible-as-plugin-for-microsoft-copilot-for-microsoft-365) for Teams apps extensible as plugin for Microsoft Copilot for Microsoft 365.
+
+</details>
+</br>
+ <details> <summary> What is the certification process?</summary>
-After publishing their plugin, developers opt into the App Compliance flow in Partner Center. If they haven't completed Publisher Verification, they'll be prompted to do so before starting the Microsoft 365 Certification process. The next step is to complete Publisher Attestation, which collects self-attested information about their plugin, company, and operations. This information is published on a [Microsoft 365 App Compliance Program site](/microsoft-365-app-certification/teams/teams-apps). The developer then starts the Microsoft 365 Certification process by uploading initial documents to help scope the assessment to their plugin and operating environment. Based on the scope, the developer will then be required to provide evidence for specific controls related to application security, operational security, and data handling/privacy. Developers that build on Azure can also use the App Compliance Automation Tool (ACAT). This tool automatically scans their environment and produces evidence for several controls, reducing the developer's manual work.
+After publishing the plugin, start the App Compliance flow in Partner Center. If [Publisher verification](/entra/identity-platform/publisher-verification-overview) is incomplete, ensure that the App Compliance flow is completed before Microsoft 365 Certification. Then, complete [Publisher Attestation](/microsoft-365-app-certification/docs/attestation), which gathers self-attested data about the plugin, company, and operations. For more information, see [Microsoft 365 App Compliance Program](/microsoft-365-app-certification/overview).
+
+To start the [Microsoft 365 Certification process](/microsoft-365-app-certification/docs/certification), upload initial documents that define the assessment scope for the plugin and operating environment. Depending on the scope, provide evidence for specific controls related to application security, operational security, and data handling or privacy. If you build your plugin on Azure, you can use the App Compliance Automation Tool (ACAT) to scan the environment and generate evidence for several controls, reducing the manual workload. For more information, see [App Compliance Automation Tool for Microsoft 365](/microsoft-365-app-certification/docs/acat-overview).
</details> </br>
After publishing their plugin, developers opt into the App Compliance flow in Pa
<summary> How are plugins certified?</summary>
-After passing the proactive validation, developers of both existing and new message extensions that haven't been certified will be encouraged to certify their plugin. This will be communicated through an email confirming their message extension has been validated.
+After the app passes the proactive validation, developers of both existing and new message extensions that aren't certified will be encouraged to certify their plugin. This is communicated through an email confirming their message extension is validated.
</details> </br> <details>
After passing the proactive validation, developers of both existing and new mess
Developers will be encouraged to certify their new plugin after successfully completing validation. </details>
+</br>
+
+<details>
+<summary>How can I create or upgrade a message extension plugin for Copilot for Microsoft 365?</summary>
+
+ You can [create or upgrade a message extension as a plugin in Copilot for Microsoft 365](build-bot-based-plugin.md) to interact with third-party tools and services and achieve more with Copilot for Microsoft 365. Additionally, your extensions must meet the standards for compliance, performance, security, and user experience outlined in [guidelines to create or upgrade a message extension plugin for Copilot for Microsoft 365](high-quality-message-extension.md).
+</details>
platform Developer Preview Intro https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/dev-preview/developer-preview-intro.md
Developer Preview is a public program for developers, which provides early acces
## Developer preview app manifest
-Many features enabled in developer preview require alterations to your app manifest (previously called Teams app manifest) JSON file. To do so, you need to use the [developer preview app manifest schema](~/resources/schem) to make these changes, nor you can use it to upload your app for testing. To upload your app, you need to select the `More apps` icon on the app bar, then select the `Upload a custom app link`. Using this method, you can only upload a zipped version of your app package.
+Many features enabled in developer preview require alterations to your app manifest (previously called Teams app manifest) JSON file. To do so, you need to use the [developer preview app manifest schema](~/resources/schem) to make these changes, nor you can use it to upload your app for testing. To upload your app, you need to select the `More apps` icon on the app bar, then select the `Upload a custom app link`. Using this method, you can only upload a zipped version of your app package.
You might find it useful to use Developer Portal for Teams to create the non-developer preview portions of your app package, then export that package and manually edit the `manifest.json` file to add the developer preview features you wish to use. After you added the developer preview features to the `manifest.json` file, you can't reimport the package into Developer Portal for Teams.
You might find it useful to use Developer Portal for Teams to create the non-dev
Developer preview is enabled on a per-client basis, but the option to turn on developer preview is controlled at the organization level. To enable the option to turn on developer preview for an individual, you must ensure that they have the ability to upload custom apps. For more information, see [setting up your tenant](~/concepts/build-and-test/prepare-your-o365-tenant.md).
-Using an app that contains developer preview features might cause clients that haven't enabled developer preview to behave unexpectedly. If you don't see an entry for developer preview, the most likely reason is your organization isn't configured for app uploading.
+Using an app that contains developer preview features might cause clients that didn't enable developer preview to behave unexpectedly. If you don't see an entry for developer preview, the most likely reason is your organization isn't configured for app uploading.
-### On a desktop or web client
+### Desktop or web client
> [!NOTE] > If your tenant is enrolled for [Microsoft 365 Targeted Releases](/microsoft-365/admin/manage/release-options-in-office-365), developer preview is automatically enabled and the developer preview switch isn't available.
-To enable the public developer preview on a desktop or web client:
+# [New Teams client](#tab/new-teams-client)
+
+To enable the public developer preview on Teams desktop or web client:
+
+1. Enable custom app upload for your developer tenant. For more information, see [enable custom app upload](../../concepts/build-and-test/prepare-your-o365-tenant.md#enable-custom-teams-apps-and-turn-on-custom-app-uploading).
+1. Select **Settings and more** (**...**) next to your user profile.
+1. Select **Settings** > **About Teams**.
+1. Under **Early access**, select the **Public preview** checkbox.
++
+# [Classic Teams](#tab/classic-teams)
+
+To enable the public developer preview on Teams desktop or web client:
1. Enable custom app upload for your developer tenant. For more information, see [enable custom app upload](../../concepts/build-and-test/prepare-your-o365-tenant.md#enable-custom-teams-apps-and-turn-on-custom-app-uploading).
-1. Select the ellipsis (...) menu next to your user profile to display the Teams menu.
+1. Select the **Settings and more** (**...**) next to your user profile.
1. Select **About** > **Developer preview**.
-1. Select **Switch to Developer preview**.
-### On a mobile client
+ :::image type="content" source="../../assets/images/classic-teams-developer-preview.png" alt-text="Screenshot shows the Developer preview option in the About section in Classic Teams.":::
+
+1. Select **Switch to developer preview**.
+++
+### Mobile client
-To enable the public developer preview on a mobile client:
+To enable the public developer preview on Teams mobile client:
1. Enable custom app upload for your developer tenant. For more information, see [enable custom app upload](../../concepts/build-and-test/prepare-your-o365-tenant.md#enable-custom-teams-apps-and-turn-on-custom-app-uploading).
-1. Open the hamburger menu on the top left, then select **Settings**.
+1. In the upper-left corner, select your user profile.
+1. Select **Settings**.
1. Select **About**. 1. Turn on the **Developer preview** toggle.
platform Integrate Web Apps Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/samples/integrate-web-apps-overview.md
You can get a rich integration experience between Teams and SharePoint by adding
You can create deep links to the entities in Teams. You can create links to information and features within Teams. These deep links navigate to content and information within your tab. You can use deep links to link your app with Teams as they tie together multiple pieces of an app for a more native Teams experience.
+For more information, see [Configure deep links.](../concepts/build-and-test/deep-links.md)
+ ## Integrate device capabilities Teams platform is continuously enhancing developer capabilities aligning with built-in first-party experiences. The enhanced Teams platform allows partners to access and integrate the native device capabilities, such as camera, QR or barcode scanner, photo gallery, microphone, and location using dedicated APIs available in Microsoft Teams JavaScript client library.
You can integrate the Teams native people picker control that allows users to se
## Integrate Teams in your external app
-You can embed your own experiences into Teams by building Teams apps. If you'd like to *reverse* this model and integrate Teams or other communication capabilities into your own external app experience, see [Azure Communication Services](/azure/communication-services/overview). Azure Communication Services are cloud-based services with REST APIs and client libraries to help you integrate communication into your own custom applications. You can embed generic or Teams-styled React Web components for calling and chat with the help of the [UI library](https://azure.github.io/communication-ui-library/).
+You can embed your own experiences into Teams by building Teams apps. If you'd like to *reverse* this model and integrate Teams or other communication capabilities into your own external app experience, see [Azure Communication Services](/azure/communication-services/overview). Azure Communication Services is cloud-based services with REST APIs and client libraries to help you integrate communication into your own custom applications. You can embed generic or Teams-styled React Web components for calling and chat with the help of the [UI library](https://azure.github.io/communication-ui-library/).
Azure Communication Services applications can use public preview functionality to [interoperate with Teams](/azure/communication-services/concepts/teams-interop) and enable your custom application to join Teams meetings anonymously. For example, you can integrate video calling into a mobile banking application and allow end-users to virtually meet with bank employees using Teams.
platform Teams Faq https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/teams-faq.md
App registration is disabled for the user or the user doesn't have enough permis
<summary>Why isn't Microsoft 365 Chat including my plugin in a response?</summary>
-Ensure your app manifest (previously called Teams app manifest) is descriptive. The app manifest helps in plugin matching in response to a user prompt. Also, make sure you've uploaded the app package to Outlook and interacted with the app, including authentication.
+Ensure your app manifest (previously called Teams app manifest) is descriptive. The app manifest helps in plugin matching in response to a user prompt. Also, ensure that you upload the app package to Outlook and interacted with the app, including authentication.
-If the problem continues, use the downvoting option in the Microsoft 365 Chat reply and prefix your reply with [MessageExtension].
-<br>
-&nbsp;
+If the problem continues, use the thumbs down indicator in the Microsoft 365 Chat reply and prefix your reply with [MessageExtension].
</details>
+</br>
<details> <summary> What descriptions should I include in app manifest? </summary>
Here's an example description that work for NPM Finder.
```
-<br>
-&nbsp;
- </details>-
+</br>
<details> <summary> Microsoft 365 Chat includes my plugin in the response, but the Microsoft 365 ChatΓÇÖs response doesnΓÇÖt meet my expectations. What should I do?</summary> Use the downvoting option in the Microsoft 365 Chat reply and prefix your reply with [MessageExtension].
-<br>
-&nbsp;
-</details>
+</details>
+</br>
<details> <summary> Can I build my own Teams message extension? </summary>
-Yes, you can. Ensure that you have a descriptive app manifest and have uploaded the app to Outlook and interacted with it, including authentication.
-<br>
-&nbsp;
+Yes, you can. Ensure that you have a descriptive app manifest and upload the app to Outlook and interacted with it.</br>
</details>-
+</br>
<details>
-<summary> How can I get my existing Teams message extension to work with Microsoft Copilot for Microsoft 365? </summary>
+<summary> How can I get my existing Teams message extension to work with Microsoft 365 Chat? </summary>
1. Register the bot channel in Azure Bot Service. 1. Upload the app to Outlook.
-<br>
-&nbsp;
</details>
+</br>
<details>
+<summary>What are the guidelines for Teams apps extensible as plugin for Microsoft Copilot for Microsoft 365? </summary>
-<summary> What is the certification process?</summary>
+You can read the [Teams Store validation guidelines](concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md#teams-apps-extensible-as-plugin-for-microsoft-copilot-for-microsoft-365) for Teams apps extensible as plugin for Microsoft Copilot for Microsoft 365.
-After publishing their plugin, developers opt into the App Compliance flow in Partner Center. If they haven't completed Publisher Verification, they'll be prompted to do so before starting the Microsoft 365 Certification process. The next step is to complete Publisher Attestation, which collects self-attested information about their plugin, company, and operations. This information is published on a [Microsoft 365 App Compliance Program site](/microsoft-365-app-certification/teams/teams-apps). The developer then starts the Microsoft 365 Certification process by uploading initial documents to help scope the assessment to their plugin and operating environment. Based on the scope, the developer will then be required to provide evidence for specific controls related to application security, operational security, and data handling/privacy. Developers that build on Azure can also use the App Compliance Automation Tool (ACAT). This tool automatically scans their environment and produces evidence for several controls, reducing the developer's manual work.
-<br>
-&nbsp;
</details>
+</br>
<details>
-<summary> How are plugins certified?</summary>
+<summary> What is the certification process?</summary>
+
+After publishing the plugin, start the App Compliance flow in Partner Center. If [Publisher verification](/entra/identity-platform/publisher-verification-overview) is incomplete, ensure that the App Compliance flow is completed before Microsoft 365 Certification. Then, complete [Publisher Attestation](/microsoft-365-app-certification/docs/attestation), which gathers self-attested data about the plugin, company, and operations. For more information, see [Microsoft 365 App Compliance Program](/microsoft-365-app-certification/overview).
+
+To start the [Microsoft 365 Certification process](/microsoft-365-app-certification/docs/certification), upload initial documents that define the assessment scope for the plugin and operating environment. Depending on the scope, provide evidence for specific controls related to application security, operational security, and data handling or privacy. If you build your plugin on Azure, you can use the App Compliance Automation Tool (ACAT) to scan the environment and generate evidence for several controls, reducing the manual workload. For more information, see [App Compliance Automation Tool for Microsoft 365](/microsoft-365-app-certification/docs/acat-overview).
-After passing the proactive validation, developers of both existing and new message extensions that haven't been certified will be encouraged to certify their plugin. This will be communicated through an email confirming their message extension has been validated.
-<br>
-&nbsp;
</details>
+</br>
+<details>
+<summary> How are plugins certified?</summary>
+
+After the app passes the proactive validation, developers of both existing and new message extensions that aren't certified will be encouraged to certify their plugin. This is communicated through an email confirming their message extension is validated.
+</details>
+</br>
<details> <summary> How are new plugins certified?</summary> Developers will be encouraged to certify their new plugin after successfully completing validation.
-<br>
-&nbsp;
+</details>
+</br>
+
+<details>
+<summary>How can I create or upgrade a message extension plugin for Copilot for Microsoft 365?</summary>
+
+ You can [create or upgrade a message extension as a plugin in Copilot for Microsoft 365](messaging-extensions/build-bot-based-plugin.md) to interact with third-party tools and services and achieve more with Copilot for Microsoft 365. Additionally, your extensions must meet the standards for compliance, performance, security, and user experience outlined in [guidelines to create or upgrade a message extension plugin for Copilot for Microsoft 365](messaging-extensions/high-quality-message-extension.md).
</details> ## Live share
Developers will be encouraged to certify their new plugin after successfully com
<details> <summary>Can I use my own Azure Fluid Relay service?</summary>
-Yes! When initializing Live Share, you can define your own `AzureConnectionConfig`. Live Share associates containers you create with meetings, but you'll need to implement the `ITokenProvider` interface to sign tokens for your containers. For example, you can use a provided `AzureFunctionTokenProvider`, which uses an Azure cloud function to request an access token from a server.
+Yes! When initializing Live Share, you can define your own `AzureConnectionConfig`. Live Share associates containers you create with meetings, but you need to implement the `ITokenProvider` interface to sign tokens for your containers. For example, you can use a provided `AzureFunctionTokenProvider`, which uses an Azure cloud function to request an access token from a server.
-While most of you find it beneficial to use our free hosted service, there may still be times where it's beneficial to use your own Azure Fluid Relay service for your Live Share app. Consider using a custom AFR service connection if you:
+While most of you find it beneficial to use our free hosted service, there might still be times where it's beneficial to use your own Azure Fluid Relay service for your Live Share app. Consider using a custom AFR service connection if you:
* Require storage of data in Fluid containers beyond the lifetime of a meeting. * Transmit sensitive data through the service that requires a custom security policy.
Currently, Live Share supports a maximum of 100 attendees per session. If it's s
<details> <summary>Can I use Live Share's data structures outside of Teams?</summary>
-Currently, Live Share packages require the Teams Client SDK to function properly. Features in `@microsoft/live-share` or `@microsoft/live-share-media` won't work outside Microsoft Teams. If this is something you're interested in, you can [start a discussion here](https://github.com/microsoft/live-share-sdk/discussions).
+Currently, Live Share packages require the Teams Client SDK to function properly. Features in `@microsoft/live-share` or `@microsoft/live-share-media` don't work outside Microsoft Teams. If this is something you're interested in, you can [start a discussion here](https://github.com/microsoft/live-share-sdk/discussions).
<br> &nbsp; </details>
platform Build Environments https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/build-environments.md
The apps built with JavaScript or TypeScript have the following advantages:
* Provides quick upgrades to the existing apps. * Distributes apps on multiple platforms, such as Android and iOS. * Compatible for creating an app with the existing APIs.
+* An app created in Teams Toolkit also supports React.
Teams Toolkit in Visual Studio Code supports building the following apps using JavaScript or TypeScript: