Welcome to the Bot Framework SDK for JavaScript repository, which is the home for the libraries and packages that enable developers to build sophisticated bot applications using JavaScript.
MIT License
Bot releases are hidden (Show)
Published by EricDahlvang over 3 years ago
Welcome to the June 2021 release of the Bot Framework SDK. A few notable items include the introduction of the Cloud Adapter (#3790) and supporting authentication types (#3820, #3534), as well as several Teams features (#3757, #3738). See below for the full set of changes.
catch
with assert.rejects|throws
in tests (part 3 of 3) [PR 3661]
catch
with assert.rejects|throws
in tests (part 2) [PR 3653]
Published by EricDahlvang over 3 years ago
Welcome to the April 2021 release of the Bot Framework SDK. The release introduces several new preview packages that support writing Javascript Bots inside Botframework Composer. Along with this, several bug fixes and usability improvements are included that should make writing Bots in Javascript even better.
General release notes [Draft]
jsonpath
[PR 3331]
Published by EricDahlvang over 3 years ago
Welcome to the March 2021 release of the Bot Framework SDK.
Telephony Bot Framework Telephony channel is now available with samples in early preview.
Teams New and improved samples, Adaptive Card Tabs, Action.Execute (preview, C#) and Composer support (preview).
Cloud Adapter Cloud Adapter (preview 2, C#) has improved platform support with increased functionality.
Orchestrator Orchestrator (preview 3) now supports more languages, and documentation has been improved.
CLI Bot Framework CLI Tools LUIS applications neural training technology support, and more!
Azure Health Bot Microsoft Healthcare Bot service is moving to Azure, further empowering organizations to benefit from Azure’s enhanced tooling, security, and compliance offerings.
Power Virtual Agents PVA Bot creation, editing and publishing made easy!
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build [C#] [JS] [Python] [CLI] and try the latest updates as soon as they are available. And for the latest Bot Framework news, updates, and content, follow us on Twitter @msbotframework!
The Telephony channel is a channel in Microsoft Bot Framework that enables a bot to interact with users over the phone. It leverages the power of Microsoft Bot Framework combined with the Azure Communication Services and the Azure Speech Services.
Note: Telephony Channel is currently in Public Preview, available broadly for the US-based Azure subscriptions. Get started building a Telephony Bot today: Botframework-Telephony
• Platform alignment improved with HttpClientFactory
• User authentication improvements with UserTokenClient
• Streaming protocol support integrated into Cloud Adapter
• TurnContext, TurnState and ConnectorClient object lifetime is now properly handled by the SDK, disposing these objects after they are out of scope.
• Cloud Adapter has been deprecated from WebApi
• Adaptive Card Tabs with samples
• Adaptive Dialog responses with new Teams triggers and Actions (preview), available in the C# and JavaScript SDKs as well as the Composer nightly.
• New and improved samples.
• Added support for LUIS applications neural training technology.
• Enhancements and fixes to LU Parser to support special characters and name duplication on Intents and features.
• Enable direct version publish in luis:build.
Orchestrator recognizer has been updated for preview 3 as follows:
• Improved language recognition models and samples
• New multilingual models for New multilingual models for Chinese, French, German, Italian, Portuguese and Spanish.
• Updated CLI with support for dispatch migration scenarios.
• Improved support of Composer scenarios.
• Support for 32bit windows for limited scenarios. For production you must use 64bit.
• Updated documentation
• Support for Adaptive Cards Action.Execute
is now available in the C# sdk.
• See also Universal Bot
• Add DialogManager support in python sdk
• Fix DialogManager does not return EoC code when a dialog ends
• Fixes in dotnet streaming library
• Localization fixes and improved support for Composer scenarios
• Please see the detailed Bot Framework Composer release notes
The Health Bot Service is a cloud platform for developers, built on top of Microsoft Azure and uses Bot Framework under the hood. Health Bot Overview.
Introducing Azure Health Bot—an evolution of Microsoft Healthcare Bot with new functionality
by Lili Cheng Corporate Vice President, Conversational AI
Power Virtual Agents (PVA) is part of Microsoft Power Platform. In PVA, chatbots can be created with a guided, no-code graphical interface - and without the need for data scientists or developers.
In the latest integration with Bot Framework SDK, Power Virtual Agents support for Teams channel Single Sign-on is available in preview.
PVA Teams SSO—Public Preview
by Cleber Mori Senior Program Manager, Power Virtual Agents
jsonpath
[PR 3331]false
[PR 3059]
Published by cleemullins almost 4 years ago
Welcome to the November 2020 release of the Bot Framework SDK. We continue to focus on code quality, improving developer experience, customer requests, overall SDK improvements and partner support. We are previewing a new Cloud Adapter and other exciting things, including:
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build [C#] [JS] [Python] [CLI] and try the latest updates as soon as they are available. And for the latest Bot Framework news, updates, and content, follow us on Twitter @msbotframework!
Continued improvements enabling features for creating bots and apps in Teams.
To reduce development friction, you can now run and test skills locally with the Emulator without needing an AppId and password.
Quality for skills is critical, and we're making large invements in automated testing. That work is (mostly) still in the design phase, and feedback is very welcome:
We're also continuing to bring features to skills to enable additional scenarios:
Code quality and testing infrastructure have continued to be a focus for the this SDK release.
Updates and improvements to existing documentation have continued.
The Cloud Adapter introduces an enriched configuration model and enables hosting a bot in any cloud environment.
Orchestrator is a Language Understanding arbitration (“dispatch”) technology to route incoming user utterances to an appropriate skill or to subsequent language processing service such as LUIS or QnA Maker.
The Health Bot Service is a cloud platform for virtual health assistants and health bots, Health Bot uses Bot Framework under the hood. With the latest upgrade to the Bot Framework SDK V4 foundation, Health Bot can be called as a Bot Framework skill or call subsequent custom Bot Framework skills. See more here: Health Bot Overview.
Power Virtual Agents (PVA) is part of Microsoft Power Platform. In PVA, chatbots can be created with a guided, no-code graphical interface - and without the need for data scientists or developers. In the latest integration with Bot Framework SDK, PVA can be extended to create custom solutions.
Published by stevengum about 4 years ago
new Function()
, by @stevengum in PR #2753
Published by cleemullins about 4 years ago
Welcome to the August 2020 release of the Bot Framework SDK. We are introducing some exciting Additional New Features with Updates and Enhancements. This milestone we focused on all-up quality and engineering debt, broken down across the following pillars:
Documentation Includes improvements to existing documentation and net new documentation centered on recurring issues and developer pain points.
Customer Supportability Improvements focused on developers seeking assistance using the Bot Framework, tools and SDKs.
Customer Ask Implemented enhancements and feature requests from the developer community and 3rd parties using the Bot Framework SDK and tools.
Code Quality Enforcement of code styling and format rules, increased testing code coverage, and functional tests.
Team Agility Improved validation of SDK code and integration with supporting libraries and environments. Continuous integarion and build pipleline improvements.
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build [C#] [JS] [Python] [CLI] and try the latest updates as soon as they are available. And for the latest Bot Framework news, updates, and content, follow us on Twitter @msbotframework!
Following feedback from customers and the Bot Framework Support Team, a number of net new documents have been written as well as updates to existing documentation. These are helpful towards providing answers and information relating to recurring issues from bot developers.
Developers using the Microsoft Bot Framework have many avenues for getting help. See additional resources Internal tools have been improved to increase the responsiveness of the engineering team in areas of most interest to developers.
GitHub
repositoriesApplication Insights
integrationGit Hub
repositoriesConversationUpdate
CardAction
to support alt text for images on buttonsSkill Handler
to return Resource Response
Azure Blobs
storageEntity
Improvements have been made across SDK repositories towards decreased CI pipeline times, improved testing, including both functional integration and unit tests.
Lg
added as core plugin, publish preview builds to npm, other improvementsTypescript
samplesOAuthPrompt
now support Teams SSOAdaptive Dialog
support for Teams eventsChannelRestored
, TeamArchived
, TeamUnarchived
,TeamRestored
, TeamDeleted
, and TeamHardDeleted
InstallationUpdate
activity type supportLinkToMessage
added to MessageActionsPayload
Lg
added as BF-CLI core pluginlu
parserQnaMaker
support extendedbotframework-cli
to npmConversationUpdate
welcome message sampleTaskModule
samples now includes HTML/JavaScript task modules
Bot Framework Composer
.See Composer 1.1.1 Release Notes
Orchestrator: Transformer based solution that runs locally with your bot to dispatch across one or more Bot Builder Skills or LUIS applications or QnA Maker Knowledgebase.
Microsoft.Bot.Builder.Azure.Queues (preview) Enables more easily interacting with Azure Queues and ContinueConversationLater
Dialog. (Currently .NET only, coming soon to other languages)
Microsoft.Bot.Builder.Azure.Blobs BlobsStorage
and BlobsTranscriptStore
implementations replacing AzureBlobStorage
and AzureBlobTranscriptStore
. This library uses Azure.Storage.Blobs and is a replacement for the older Microsoft.Azure.Storage.Blob used by Microsoft.Bot.Builder.Azure. (Currently .NET only, coming soon to other languages)
Published by cleemullins over 4 years ago
Welcome to the May 2020 release of the Bot Framework SDK. There are a number of updates in this version that we hope you will like; some of the key highlights include:
Insiders: Want to try new features as soon as possible? You can download the nightly Insiders build [C#] [JS] [Python] [CLI] and try the latest updates as soon as they are available. And for the latest Bot Framework news, updates, and content, follow us on Twitter @msbotframework!
Skills have been updated to work with adaptive dialogs, and both adaptive and traditional dialogs will now accept all types of activities.
The skill manifest schema has been updated to version 2.1. Improvements in this version include the ability to declare & share your language models, and define any type of activity that your skill can receive.
This release also includes authentication improvements with skills, including using SSO with dialogs, and OAuth without needing a magic code in WebChat and DirectLine.
We continue to focus on making sure all the Teams-specific APIs are fully supported across our SDKs. This release brings full support for Microsoft Teams APIs in the preview Java SDK, including samples.
The OnTeamsMemberAdded
event in the activity handler has been updated to use the get single member endpoint under the covers, which should significantly reduce latency and reliability of this event in large teams.
The TeamsChannelAccount
object has been updated to include userRole
(one of owner, member, or guest) and tenantId
(for the user's tenantId).
Bots now capture Page View events, native to Application Insights, whenever a dialog is started. This allows you to use the User Flows dashboard in Application Insights to see how users move through your bot, between dialogs and where they drop out.
Support was added for a new invoke named healthCheck
that allows a sender to verify if a bot is responding to requests, and if trust can be established between the sender and the bot. The bot also has the option of overriding the response to add additional health information in the response.
We’re also excited to make Adaptive Dialogs generally available in C# and as a preview release in JavaScript!
Adaptive Dialogs, which underpin the dialog design and management authoring features found in Bot Framework Composer, enable developers to dynamically update conversation flow based on context and events. This is especially useful when dealing with more sophisticated conversation requirements, such as context switches and interruptions. Bot Framework Skills can now also leverage Adaptive Dialogs.
Adaptive Dialogs also now support Telemetry. Data from Adaptive Dialogs, including triggers, actions and recognizers now flow into your Azure Application Insights instance.
CLI tools for Adaptive Dialogs, Language Generation, QnaMaker and Luis Cross-train - new ability to merge and validate adaptive schema assets, augment qna and lu files, create/ update/ replace/ train/ publish LUIS and or QnA maker application and Language Generation templates manipulation.
New CLI Tools were added for management of Adaptive Dialogs.
LG is Generally Available (GA) on both the C# and JS Platforms.
Language Generation (LG) enables you to define multiple variations of a phrase, execute simple expressions based on context, and refer to conversational memory. At the core of language generation lies template expansion and entity substitution. You can provide one-off variation for expansion as well as conditionally expanding a template. The output from language generation can be a simple text string or multi-line response or a complex object payload that a layer above language generation will use to construct a complete activity. The Bot Framework Composer natively supports language generation to produce output activities using the LG templating system.
You can use Language Generation to:
Language Generation is achieved through:
Adaptive Expressions are Generally Available (GA) on both the C# and JS Platforms.
Bots use expressions to evaluate the outcome of a condition based on runtime information available in memory to the dialog or the Language Generation system. These evaluations determine how your bot reacts to user input and other factors that impact bot functionality.
Adaptive expressions were created to address this core need as well as provide an adaptive expression language that can used with the Bot Framework SDK and other conversational AI components, like Bot Framework Composer, Language Generation, Adaptive dialogs, and Adaptive Cards.
An adaptive expression can contain one or more explicit values, pre-built functions or [custom functions. Consumers of adaptive expressions also have the capability to inject additional supported functions. For example, all Language Generation templates are available as functions as well as additional functions that are only available within that component's use of adaptive expressions.
We added support for single sign-on while using Expect Replies. This applies to SSO performed between a pair of bots: host and a skill.
For Bot Identification we've added the ability to specify sendx5c
parameter for certificate authentication. This feature was requested by customers and allows for more flexibility when using cert auth.
Additional Sovereign Clouds are supported.
The Bot Framework has a rich collection of conversational building blocks, but
creating a bot that feels natural to converse with requires understanding and
coordinating across language understanding, language generation and dialog
management. To simplify this process and capture best practices, we've created
the bf-generate plugin for the BotFramework CLI tool. The
generated dialogs make use of event-driven adaptive dialogs with a rich and
evolving set of capabilities including:
Adaptive tools is a brand new Visual studio code extension you can use to create/ validate .lu and .lg documents as well as debug declaratively defined adaptive dialogs. This extension provides rich authoring & editing capabilities for .lu and .lg file formats including syntax highlighting, auto-suggest and auto-complete.
We anticipate adding an early preview to the VS Marketplace shortly after this release.
During this release, the Bot Builder Community has further raised the bar by adding more features, more adapters, and fixing more bugs.
A revised C# Alexa Adapter and Google Home Adapter Re-built from the ground up, starting with Alexa, to allow the adapters to be consumed by Azure Bot Service and made available as channels. Improvements include better native activity type mapping, improved markdown rendering and support for more complex scenarios (such as merging multiple outgoing activities).
A new C# Zoom Adapter. Currently supports Zoom 1:1 and channel chat capabilities, being converted to native BF activity types. Also supports the subscribing to any event a Zoom as supports (translated into Event activities), with full support for Zoom interactive messages and rich message templates.
A RingCentral Adapter. The RingCentral Engage adapter allows you to add an additional endpoint to your bot for RingCentral Engage Digital Platform integration. The RingCentral endpoint can be used in conjunction with other channels meaning, for example, you can have a bot exposed on out of the box channels such as Facebook and Teams, but also integrated as an RingCentral Engage Digital Source SDK into RingCentral.
Published by cleemullins over 4 years ago
rc0
- this is our first release candidate for Adaptive Adaptive Expressions, & Language generation. We encourage folks to give this a try in development and non-critical scenarios.Expanded support for a number of scenarios in Skills, including
Added support for a new get single member endpoint, and expanded support for the get paged members endpoint.
Published by stevengum over 4 years ago
Welcome to the 4.7.1 release of the Bot Framework SDK for JavaScript available via NPM.
This release contains bugfixes for the botframework-streaming library's typings, not forcing downstream TypeScript dependencies to adopt our tsconfig.json
settings and a TrustServiceUrl fix for proactive messages from Skills.
Published by CoHealer almost 5 years ago
Welcome to the 4.7.0 release of the Bot Framework SDK for JavaScript available via MyGet!
Adds Skills support for JS SDK. Skills enable bots to call other bots.
Streaming support for JS SDK is now GA.
This release introduces a new constructor overload for LuisRecognizer
which takes an options bag for either the V2 or V3 API. We plan on using this pattern for future API releases, as well. We're looking forward to any feedback on this.
This change also deprecates the includeApiResults
argument option which is now encompassed by the options bag.
botbuilder-lg
and botframework-expressions
are released in preview. They enable support for language generation and expressions syntax in the JS SDK. You can learn more in the samples repo.
Adds isTest
and rankerType
options which enable test flows and filtering of rankings.
Adds keySuffix
and compatibilityMode
options. keySuffix
makes it easy to use the same Cosmos DB container for multiple bots without worrying about collision (keySuffix
should be unique per bot app). compatibilityMode
allows you to use existing non-partitioned storage collections. In general, we recommend not enabling compatibilityMode
unless you're in a pinch as it will hit the same issues of partition key filling up after 10GB of data.
Bot Framework no longer supports payments. All associated types are marked as deprecated.
Published by stevengum almost 5 years ago
Welcome to the 4.6.0-preview2 release of the Bot Framework SDK for JavaScript available via MyGet!
This is a preview release for streaming support in the Bot Framework SDKs for JavaScript.
botframework-streaming-extensions
and botbuilder-streaming-extensions
have been delisted from MyGet
botbuilder-streaming-extensions
and BotFrameworkStreamingAdapter
)
botframework-streaming-extensions
)
enableWebSockets
to true
in BotFrameworkAdapterSettings to enable WebSocketsBotFrameworkAdapterSettings.webSocketFactory
enableWebSockets
is true and no factory is passed in, the BotFrameworkAdapter will default to a NodeWebSocketFactoryBotFrameworkAdapter.useWebSocket()
and BotFrameworkAdapter.useNamedPipe()
are now publicFor an example of how to configure your bot to use WebSockets and Direct Line Speech, please visit the botbuilder-samples repository. Navigate to the /experimental/directline-speech/javascript_nodejs/02.echo-bot
sample which was updated via this commit: https://github.com/microsoft/BotBuilder-Samples/commit/651f4053ed5f99332454fe057f8af832150e56cf
Here is a modified snippet from the sample which shows how to set configure a bot to use WebSockets:
// Create HTTP server and configure the Server to handle for Upgrade requests.
const server = restify.createServer({ handleUpgrades: true });
server.listen(process.env.port || process.env.PORT || 3978);
// BotFrameworkAdapterSettings configuration object.
const adapterSettings = {
appId: process.env.MicrosoftAppId,
appPassword: process.env.MicrosoftAppPassword
};
const myBot = new EchoBot();
// Listen for GET requests to the same route to accept Upgrade requests for Streaming.
server.get('/api/messages', (req, res) => {
// Create an adapter scoped to this WebSocket connection to allow storing session data.
// Get the appId and appPassword from the above settings object and set enableWebSockets to true.
const streamingAdapter = new BotFrameworkAdapter({
...adapterSettings,
enableWebSockets: true
});
// Set onTurnError for the BotFrameworkAdapter created for each connection.
streamingAdapter.onTurnError = onTurnErrorHandler;
streamingAdapter.processActivity(req, res, async (context) => {
// After connecting via WebSocket, run this logic for every request sent over
// the WebSocket connection.
await myBot.run(context);
});
});
Published by CoHealer almost 5 years ago
Welcome to the 4.6 release of the Bot Framework SDK for JavaScript!
The Bot Framework SDK v4.6 release fully integrates support for building Teams bots allowing users to use them in channel or group chat conversations. By adding a bot to a team or chat, all users of the conversation can take advantage of the bot functionality right in the conversation.
Adaptive Dialogs enable developers to build conversations that can be dynamically changed as the conversation progresses. It allows developers to dynamically update conversation flow based on context and events. This is especially handy when dealing with conversation context switches and interruptions in the middle of a conversation.
Language Generation enables developers to separate logic used to generate bot's respones including ability to define multiple variations on a phrase, execute simple expressions based on context, refer to conversational memory.
Common Expression Language allows you to evaluate the outcome of a condition-based logic at runtime information. We provide a common language that can be used across the Bot Framework SDK and conversational AI components, such as Adaptive Dialogs and Language Generation.
The issues list can be viewed here.
-teams
packages, update lerna.json & package.json [PR 1271]
any
- Fixes #1155 [PR 1156]
Proxy
object capability check [PR 1074]
Published by CoHealer over 5 years ago
Welcome to the 4.5 release of the Bot Framework SDK for Javascript!
Today, we are happy to announce the Bot Framework support for Emulator Channel Testing is generally available. This enables developers to debug and test your Bot Framework SDK v4 bots on channels like Microsoft Teams, Slack, Cortana, Facebook Messenger, Skype, etc. As you have the conversation, messages will be mirrored to the Bot Framework Emulator where you can inspect the message data that the bot received. Additionally, a snapshot of the bot state for any given turn between the channel and the bot is rendered as well.
We also added capabilities for Unit Testing your bots. The Microsoft.Bot.Builder.Testing package simplifies the process of unit testing dialogs in your bot.
As with any release, we fixed a number of bugs, continue to improve LUIS and QnA integration and further clean our engineering practices. There were additional updates across other areas like Language, Prompts, Dialogs, State and Storage.
Review all changes that went into 4.5 in the detailed Change Log
Published by cleemullins over 5 years ago
Welcome to the 4.4 release of the Bot Framework SDK for NODE.js!
In this release, the team focused on improving and simplifying message and activities handling. The Bot Framework Activity Schema is the underlying schema used to define the interaction model for bots.
As with any release, we fixed a number of bugs, continue to improve LUIS and QnA integration and further clean our engineering practices. There were additional updates across other areas like Language, Prompts, Dialogs, State and Storage.
Review all changes that went into 4.4 in the detailed Change Log
Published by cleemullins over 5 years ago
In this release, the team focused on improving and simplifying message and activities handling. The Bot Framework Activity Schema is the underlying schema used to define the interaction model for bots. With the 4.3 release, we have streamlined some of the activity types in the Bot Framework Activity Schema. Exposing a simple On* methods (OnMessage, OnEvent, OnConversationUpdate, etc.), simplifying the usage of these activities.
We are in the process of updating the docs and samples to reflect these changes. As with any release, we fixed a number of bugs, continue to improve LUIS and QnA integration and further clean our engineering practices. There were additional updates across the other area like Language, Prompt and Dialogs, and Connectors and Adapters.
Review all changes that went into 4.3 in the detailed Change Log
See the list of all issues
Published by cleemullins almost 6 years ago
In this release, the team focused on enhancing monitoring, telemetry, and analytics capabilities of the SDK by improving the integration with Azure App Insights. We have streamlined the integration and default telemetry emitted from the SDK. This include (Waterfall) dialog instrumentation, docs, and examples for querying data, and a PowerBid dashboard. As with any release, we fixed a number of bugs, continue to improve LUIS and QnA integration and further clean our engineering practices. There were additional updates across other areas like Language, Prompt and Dialogs, and Connectors and Adapters.
Review all changes that went into 4.2 in the detailed Change Log
See the list of all issues
note breaking change
Published by cleemullins almost 6 years ago
The 4.1.5 release incorporates changes to the Bot Framework to support activity
PR #601
Authentication in the US Government data centers has also been added.
Published by cleemullins almost 6 years ago
In this release the team focused improving engineering practices with better builds, test automation and integration testing. We updated to the latest CosmosDB provider and fix a number of Cosmos DB bugs. There were additional updates across addigional area like Language, Prompt and Dialogs, and Connectors and Adapters.
Detailed merged pull-requests that went into 4.1.3
Published by Stevenic about 6 years ago
This release adds support needed for deploying bots to Azure Government based data centers.
Published by Stevenic over 6 years ago
This is the preview1.2 (release) of all packages to npm. To install you will need to include an @preview tag:
npm install --save botbuilder@preview
npm install --save botbuilder-ai@preview
npm install --save botbuilder-azure@preview
npm install --save botbuilder-choices@preview
npm install --save botbuilder-prompts@preview
npm install --save botbuilder-dialogs@preview