Skip to content

Releases: microsoft/botbuilder-js

Bot Framework SDK 4.12.0

23 Feb 18:22
8f903a6
Compare
Choose a tag to compare

March 2021 (version 4.12.0)

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!

Telephony (preview)

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

Cloud Adapter (C# only, preview 2)

• 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

Microsoft Teams

• 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.

Bot Framework CLI Tools

• 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 (preview 3)

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

Adaptive Cards Invoke (preview, C# sdk only)

• Support for Adaptive Cards Action.Execute is now available in the C# sdk.
• See also Universal Bot

Bug fixes and improvements

• 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

Composer

• Please see the detailed Bot Framework Composer release notes

Azure Health Bot

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

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

Change log for Javascript 4.12.0:

  • Upgrade package parse-url to fix the security issue [PR 3337]
  • removed jsonpath [PR 3331]
  • hotfix: add botbuilder-stdlib package.json reference [Commit 9c743d9f]
  • hotfix: version number patterns [Commit 21510a0c]
  • fix: bump orchestrator-core to 4.12.0-preview [PR 3319]
  • fix: replace execute with wsrun package [PR 3317]
  • hotfix: --noPrivate instead of --no-private [Commit 9864ea7e]
  • Add Teams Tabs adaptive [PR 3309]
  • Updated twitter account name [PR 3300]
  • fix: support null memory values [PR 3290]
  • fix: add eslint-plugin-import [PR 3293]
  • fix: limit logging in github tests [PR 3291]
  • add --no-flat flag to browserify script in AEL [PR 3292]
  • feat: Added GetConversationReference/ContinueConversation actions [PR 3283]
  • port: add action policies to .schema [PR 3287]
  • port: remove trust service url references [PR 3285]
  • add stringOrValue function [PR 3282]
  • feat: LuisAdaptiveRecognizer and test mocks [PR 3275]
  • Add properties property for Template class [PR 3272]
  • fix: correct QnAMaker response types and expose error from server [PR 3279]
  • feat: adaptive dialog functions [PR 3250]
  • feat: Mock QnAMaker via http request mocks [PR 3278]
  • [PORT]Use Number.Epsilon for equal check in expression [PR 3267]
  • port dotnet 4966 PR [PR 3277]
  • fix: luis telemetry test typos [PR 3245]
  • Updated dialogManager to send EoC code like dialogHelper [PR 3270]
  • [PORT]Add test for NumericEvaluator [PR 3262]
  • Teams Adaptive Card Tabs [PR 3224]
  • change to locale string in the string function [PR 3249]
  • mark generated files [PR 3257]
  • Orchestrator Recognizer: Rename misleading parameter names [PR 3251]
  • Fix getting token using client certificate [PR 3247]
  • fix: update access modifiers in QnAMakerDialog [PR 3230]
  • fix createHandoffEvent activity.type & cleanup [[PR 3243]...
Read more

Bot Framework SDK 4.11.0

10 Nov 00:06
5017465
Compare
Choose a tag to compare

November 2020 (version 4.11.0)

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:

  • Teams Introduction of Teams Meeting Participant API along with new features and fixes.
  • Skills We continue our 'skills everywhere!' mission by reducing development friction, enabling interruptions, and additional features.
  • Composer Continued improvements in deployment, Skills integration, features flags, and more!
  • Orchestrator (preview) Improved samples, models, and Bot Framework Composer support
  • Bot Framework Documentation We've added Adaptive Dialog support, updated docs around Adaptive Expressions, and custom .lg functions.
  • CLI Improvements to merging and importing of dialogs and assets
  • Virtual Assistant Improved core runtime, advancements in skills features
  • Power Virtual Agents Thanks to the Bot Framework SDK, it is easier and easier to build a PVA Bot!
  • HealthBot Health Bot, built using the Bot Framework, continues to advance in support of multiple Health related initiatives!

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!

Microsoft Teams

Continued improvements enabling features for creating bots and apps in Teams.

  • Get Participant Meeting API
  • CacheInfo support on Invoke responses
  • OAuthInput fix
  • Meeting specific notification support
  • Add on_teams_team_renamed (python only)

Skills

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:

  • Interruptions are enabled in BeginSkill.
  • Update and Delete activities from a skill.

Overall SDK Improvements

Code quality and testing infrastructure have continued to be a focus for the this SDK release.

  • The default branch on all repositories has been renamed to 'main'.
  • We have improved typing and transcript logger middleware behavior and error handling.
  • Dotnet SDK tests have been ported to xunit.
  • Configurable Adaptive Dialog cycle detection.
  • Form Dialog preview

Documentation

Updates and improvements to existing documentation have continued.

  • Updated and expanded documentation for adaptive dialogs.
  • Updated and reorganized the security and authentication topics.
  • Updated information about: .lg custom functions, adaptive expressions, and memory scopes.
  • Added Java (preview) reference documentation: https://docs.microsoft.com/en-us/java/api/?term=microsoft.bot.builder
  • Added information on how to use the Bot Framework CLI commands in support of various adaptive dialog features.
  • Updated skills documentation.
  • The claims validator is now required for bot a skill and skill consumer.
  • Updated information about Direct Line extensions.
  • Updated how to connect to some of the channels: Slack, Webex.
  • Archived the SDK v3 content, available at: https://docs.microsoft.com/previous-versions/azure/bot-service/index-bf-sdk
  • Updated information about the dialogs library and the overall architecture of a bot.

Cloud Adapter (not yet feature complete, dotnet only)

The Cloud Adapter introduces an enriched configuration model and enables hosting a bot in any cloud environment.

  • Supports the Bot Framework protocol and auth model.
  • All the constants defining the auth model are configurable.
  • Note: 4.11.0 does not have full feature parity with BotFrameworkAdapter
    • Streaming support, OAuthPrompt support and full Skill support are coming soon.
    • Preview: The recommendation is to continue using BotFrameworkAapter in the 4.11.0 release unless the environment requires configurable auth constants.

Orchestrator Preview

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.

  • It is a transformer based solution that is optimized for conversational AI applications.
  • It is built to run locally in your bot.
  • It is written in C++ and is available as a library in C#, Node.js and soon Python and Java.
  • The current release is designed to be used only for intent detection. Entity recognition is on the roadmap.
  • Orchestrator can be used in code-first solutions or directly in Composer.
    This is a preview release with improved documentation and language models.

CLI

  • The CLI will now download an merge dialog assets.
  • Ordering of names while merging.
  • Expose import resolver interface for cross-train/luis:build/qnamaker:build
  • Region support in lg translate

Virtual Assistant

  • Skills improvements
  • Core runtime design updates

Composer

HealthBot

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

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.

  • Use Bot Framework Composer to create and connect to Bot Framework skills.
  • Publish directly from Bot Framework Composer to PVA portal into PVA Topics runtime (coming soon).

4.11.0 Change Logs

Change log for Javascript 4.11.0

  • Fix: add adaptive-expressions-ie11 to lerna.json [PR 2960]
  • Publish umd bundle to be used as script tag for expressions library [PR 2940]
  • Use QnAMakerOptions, Telemetry, and logPersonalInformation flag in QnAMakerDialog [PR 2939]
  • Revert "skip OrchestratorAdaptiveRecognizer tests (#2946)" [PR 2947]
  • Browserify botframework-streaming [PR 2942]
  • Fix fetch in token server used in E2E Streaming Test [PR 2944]
  • Update issuers [PR 2949]
  • Add trace activity-buffering logic when DeliveryMode is "expectReplies" [PR 2738]
  • Revert "Change vmImage to ubuntu for all JS pipelines (#2931)" [PR 2948]
  • Skip OrchestratorAdaptiveRecognizer tests [PR 2946]
  • Documentation updates [PR 2941]
  • Fix locale determination in confirm/choice prompts/inputs [PR 2534]
  • Remove trusted URL logic [PR 2938]
  • New botbuilder-azure-blobs package [PR 2923]
  • Skills: support update and delete activities [PR 2912]
  • Remove unnecessary verbose trace logging [PR 2936]
  • Teams: Get Participant meeting API [PR 2884]
  • Skills: local ...
Read more

Bot Framework SDK 4.10.3

09 Sep 21:04
37c938c
Compare
Choose a tag to compare

Fixed

  • Fix Content Security Policy issue in using unsafe new Function(), by @stevengum in PR #2753

Breaking Changes:

Bot Framework SDK 4.10

17 Aug 23:13
339b6ec
Compare
Choose a tag to compare

August 2020 (version 4.10.0)

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!

Documentation

BF Docs GitHub

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.

  • Code comment documentation
  • Samples readme improvements
  • SDK repository readme and wiki updates
  • New documents addressing recurring bot developer issues

Customer Supportability

BF Supportability GitHub

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.

  • Creation of internal bots and improved tools for customer support
  • Improved analytics of trends in customer reported feature requests and issues
  • Coordination of labels across GitHub repositories

Customer Ask

BF Customer Ask GitHub

  • Additional Teams channel lifecycle events
  • Improved Application Insights integration
  • Coordination of labels across Git Hub repositories
  • Add Locale to ConversationUpdate
  • Update CardAction to support alt text for images on buttons
  • Update Skill Handler to return Resource Response
  • Release of library using latest Azure Blobs storage
  • Enable custom fields for Entity
  • Fixes to OAuthPrompt timeout and addition of EndOnInvalidMessage
  • Various bug fixes and telemetry improvements

Code Quality

  • Analyzer rules in place and running (code style and format)
  • Unit test code coverage and quality
  • Increased profiling of the code base
  • Swagger file unified across SDK repositories and version # introduced
  • Specific SDKs asks and needs:
    • Settings object pattern for C# adapters
    • LG dependent files testing (C#)
    • Dependency policing (JS)
    • Integration tests with Direct Line JS and adaptive cards

Team Agility

BF Team Agility GitHub

Improvements have been made across SDK repositories towards decreased CI pipeline times, improved testing, including both functional integration and unit tests.

Speed​

  • Reduce time to build for SDKs (local and remote)​
  • Reduce SDK unit test duration through refactoring and/or concurrent approaches​
  • Refactor ADO pipelines into smaller, separate jobs or stages​
  • Run as-applicable pipelines (e.g. no style-checks on .yaml files)​

​Reliability​

  • Refine or replace current monorepo/”mono-solution” setups as necessary​
  • Address nondeterministic build/test failures
  • Enable continuous integration for forked pull request submissions
  • Complete integration tests added with bots dynamically created

Other Updates and Enhancements

Microsoft Teams

  • SDK and OAuthPrompt now support Teams SSO
  • Increased Adaptive Dialog support for Teams events
  • SDK supprot for lifecyle events: ChannelRestored, TeamArchived, TeamUnarchived,TeamRestored, TeamDeleted, and TeamHardDeleted
  • InstallationUpdate activity type support
  • LinkToMessage added to MessageActionsPayload

Bot Framework CLI Tools

  • Lg added as BF-CLI core plugin
  • Enhancements and fixes to lu parser
  • QnaMaker support extended
  • Publish daily builds and RCs of botframework-cli to npm

Samples

  • Readme updates and consolidation across language samples
  • Build pipelines for samples CI
  • Demonstreate using Locale in ConversationUpdate welcome message sample
  • Additional Teams samples in Typescript
  • Teams TaskModule samples now includes HTML/JavaScript task modules

Composer

  • The Bot Framework SDK continues to support the Bot Framework Composer.

See Composer 1.1.1 Release Notes

Web Chat

  • Many accessibility improvements and fixes
  • Group activity by timestamp and sender
  • Convert emoticon to Emoji
  • Added scrolling API: allow save/restore scroll position and scroll to specific activity

Emulator

  • Added an additional log panel entry on conversation start that displays the current bot's endpoint
  • Fixed a bug where trying to open the sign-in link on an OAuth card when ngrok was not configured would cause the Windows File Explorer to open
  • Improved CONTRIBUTING.md to more accurately reflect requisites to build the Emulator from source
  • Updates to Cosmos DB service editor dialog

Additional New SDK Features

Changelog for v4.10.0:

  • Refactor SkillDialog to call ConversationFactory.createConversationId only once [PR 2666]
  • Adding unit test for custom entity strip checking [PR 2665]
  • [Port] properly escape slashes in constant strings with StringExpression/ValueExpression [PR 2660]
  • Change AdaptiveExpressions pre-built classes from Public to Internal [PR 2658]
  • Add additionalProperties to Entity [PR 2648]
  • Track unhandled events in dialog con...
Read more

Bot Framework SDK 4.9

12 May 19:09
1f4cef9
Compare
Choose a tag to compare

May 2020 (version 4.9.0)

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:

  • Skills - Skills now support adaptive dialogs and all activity types, and have improved support for SSO and OAuth. The v2.1 skill manifest is now GA. We also added Bot Framework Composer support for building and consuming Skills.
  • Microsoft Teams - Improvements in Microsoft Teams API support, including support in Java!
  • Bot Telemetry - Mapping of Dialogs into Azure AppInsights Page View Events.
  • Health Check APIs - Quickly verify a bot is running.
  • Adaptive Dialogs - A more flexible, event driven dialog system for implementing multi-turn conversational patterns.
  • CLI tools for Adaptive Dialogs - new ability to merge and validate adaptive schema assets.
  • Language Generation - Add language and personality responses to your bot conversations.
  • Adaptive Expressions - Use bot aware expressions to react to user input and drive bot functionality.
  • Authentication Improvements - SSO between Bots and Skills and improvements to X.509 auth.
  • Generated Dialogs (Early Preview) - Automatically create robust Bot Framework Composer assets from JSON or JSON Schema that leverage Adaptive Dialogs.
  • VS Code debugger for Adaptive Dialogs (Early Preview) - Create & validate .lu and .lg documents as well as debug declaratively defined adaptive dialogs.

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

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.

Microsoft Teams

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).

Bot Telemetry

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.
Telemetry In AppInsights

Health Check APIs

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.

Adaptive Dialogs

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

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.

  • bf-dialog supports merging dialog schema files and verify file format correctness.
  • bf-luis Adds commands to augment lu files and create/ update/ replace/ train/ publish LUIS
  • bf-qnamaker Adds commands to augment qna files and create/ update/ replace/ train/ publish QnAMaker
  • bf-lg Parse, collate, expand and translate lg files.

Language Generation

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:

  • Achieve a coherent personality, tone of voice for your bot.
  • Separate business logic from presentation.
  • Include variations and sophisticated composition for any of your bot's replies.
  • Construct cards, suggested actions and attachments using a structured response template.

Language Generation is achieved through:

  • A markdown based .lg file that contains the templates and their composition.
    Full access to the current bot's memory so you can data bind language to the state of memory.
  • Parser and runtime libraries that help achieve runtime resolution.

Adaptive Expressions

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.

Authentication Improvements

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.

Generated Dialogs - Early Preview

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 dialog...

Read more

Bot Framework SDK 4.8

17 Mar 21:30
ea0506d
Compare
Choose a tag to compare

What's in this release?

SSO

  • SSO support with AAD and WebChat (Docs WIP)(Sample)

Adaptive Expressions, & Language Generation

  • 🎉 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.
  • 🪓 BREAKING CHANGES - There is a number of breaking changes. Please see the details here: LG/ expressions

Skills

Expanded support for a number of scenarios in Skills, including

  • Support for custom adapters that require a request/response flow
  • Authentication with OAuth and SSO
  • Expanded definitions possible in the Skills manifest file
  • Handing off to a skill as part of a dialog
  • v3 SDK and cross-language interop

Teams

Added support for a new get single member endpoint, and expanded support for the get paged members endpoint.

Changelog for v4.8.0:

  • apply PayloadSender fix from #1886 and add unit test [PR 1887]
  • API naming for LG [PR 1883]
  • BufferedReplies to ExpectReplies in skill test parentBot [PR 1882]
  • Clean LG/Expression [PR 1873]
  • clean up activityhandler invoke path [PR 1872]
  • [SSO] [Port] support for SSO to parent and child bot projects for manual testing [PR 1870]
  • DONOTMERGE: Change DeliveryMode bufferedReplies to expectReplies [PR 1869]
  • Add interruption support to SkillDialog and runDialog helper method [PR 1867]
  • [PORT] Update Constant Expression ToString method [PR 1862]
  • Add tests for SkillDialog [PR 1861]
  • add memberCount and channelCount to TeamDetails [PR 1858]
  • Add ephemeral option to Activity.DeliveryMode [PR 1856]
  • Port: API naming for Expression [PR 1853]
  • BotFrameworkAdapter and Skills classes OAuthScope changes [PR 1852]
  • Update LG template content range [PR 1849]
  • Adding helper for starting thread in teams [PR 1847]
  • Pass custom functions to imported .lg files [PR 1845]
  • add BFAdapter tests for bufferedReplies and invokeResponses [PR 1842]
  • Support Skills in Azure Government [PR 1835]
  • Port some LG and Expression from BotBuilder-Dotnet [PR 1834]
  • add getMember and getPagedMember to teamsInfo [PR 1833]
  • add protected method to allow injection of cert by overriding [PR 1830]
  • Update nyc dependency [PR 1828]
  • Added null check for activity.text in ConfirmPrompt [PR 1826]
  • Fix expression built-in function errors and test errors [PR 1824]
  • ci: add auto tagging [PR 1823]
  • Update docs on valid scoreThreshold range for QnAMakerOptions [PR 1822]
  • Added flags to disable recognizing choices by number or ordinal. [PR 1820]
  • Marked config classes as deprecated [PR 1819]
  • Initial check-in of flatten, unique and [PR 1813]
  • Ensure that ABS OAuth cards are not sent by the community adapters [PR 1812]
  • Add null check for from [PR 1807]
  • [Expression] Fix result when the second arg is null in lastIndexOf function [PR 1805]
  • added getSignInLink overload [PR 1803]
  • Hond/indexof [PR 1797]
  • Remove @types node dev dependency from botframework-streaming [PR 1795]
  • Updating Teams Types [PR 1789]
  • Add gitpod config [PR 1786]
  • Port: LG error related changes [PR 1785]
  • Plumb custom functions throughout. [PR 1784]
  • Added buffered delivery mode support. [PR 1783]
  • add skillDialog and associated classes [PR 1771]
  • Port QnAMakerDialog from C# [PR 1769]
  • [PORT] Treat '@{' an error instead of text in LG [PR 1768]
  • create browser (es5) output in botframework-streaming [PR 1764]
  • Move BotIdentityKey to BotAdapter from BotFrameworkAdapter [PR 1763]
  • [Port] Forced re-execution expression within template [PR 1762]
  • Updated ShowTypingMiddleware to re throw errors [PR 1761]
  • [Port] Add tests around memory access path [PR 1760]
  • [PORT] add string interpolation feature [PR 1759]
  • Added Channels enum in botbuilder-schema for ChannelIds constants [PR 1757]
  • return http state [PR 1755]
  • Port: Optimize LG performace [PR 1752]
  • Add documentation for public code [PR 1751]
  • Enhance the functionality of the + operator [PR 1749]
  • Added error messages to abortWebSocketUpgrade() [PR 1741]
  • Port: Refactor LG Api [PR 1740]
  • Port SSO changes from C# to JS [PR 1738]
  • treat everything after first '=' as value for the property [PR 1737]
  • add isTemplate function [PR 1735]
  • support constant [] and {} expression [PR 1734]
  • parity of extending foreach and where to work with object [PR 1733]
  • parity indicesAndValues builtin function [PR 1731]
  • Migrate expression namespace to adaptive-expressions [PR 1718]
  • ${} instead of @{} as bounding syntax. [PR 1717]
  • Add deprecate to CosmosDbStorage [PR 1715]
  • Port refactor Structure LG and Analyzer [PR 1713]
  • add EndOfConversation and Typing activities to ActivityHandler [PR 1706]
  • migrate c# change in for adding oauth app credentials as a parameter [PR 1697]
  • fix export and update unit test import [PR 1693]
  • Port nested foreach\where\select in Expression from C# [PR 1688]
  • [Expression] Expanding max/min functions take numeric list as arguments [PR 1674]
  • [Cherry-pick to master] add generic socket closure handling [PR 1664]
  • Parity of split function with C# in Expression [PR 1661]
  • Update sample in Connector readme from v3 to v4 [PR 1657]
  • Fix browser bot functional tests [PR 1648]
  • Hash conversationId for App Insights sessionID [PR 1642]
  • Kyled...
Read more

Bot Framework SDK for JavaScript v4.7.1

04 Feb 23:44
976d1d9
Compare
Choose a tag to compare

Welcome to the 4.7.1 release of the Bot Framework SDK for JavaScript available via NPM.

What's in this release?

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.

Changelog for v4.7.1:

  • Fix incorrect "typings" value in botframework-streaming [PR 1572] (Thank you @qinezh!)
  • remove "dom" from bf-streaming tsconfig and refactor code [PR 1575]
  • TrustServiceUrl from original conversationReference in SkillHandler [PR 1586]

Bot Framework SDK for Javascript v4.7.0

18 Dec 17:26
05e8d9f
Compare
Choose a tag to compare

Welcome to the 4.7.0 release of the Bot Framework SDK for JavaScript available via MyGet!

What's in this release?

Skills

Adds Skills support for JS SDK. Skills enable bots to call other bots.

Streaming GA

Streaming support for JS SDK is now GA.

LUIS V3 support

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.

LG/expressions support in preview

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.

QnA Maker improvements

Adds isTest and rankerType options which enable test flows and filtering of rankings.

Cosmos DB Storage Provider improvements

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.

Payments deprecation

Bot Framework no longer supports payments. All associated types are marked as deprecated.

Changelog for v4.7.0:

  • LuisRecognizer refactor and addition of V3 endpoint [PR 1479]
  • [QnA Maker] Support for IsTest and RankerType in QnAMaker.getAnswer() [PR 1478]
  • [Skills] Better exception handling and typing [PR 1474]
  • [Skills] add skill support in BotFrameworkAdapter [PR 1473]
  • Johtaylo/skills protocol [PR 1472]
  • Update README.md with the Browser Functional Tests badge [PR 1471]
  • [Skills] Use AuthenticationConfiguration [PR 1470]
  • [Browser-Functional-Tests] Add browser test build YAML file [PR 1469]
  • Add KeySuffix and CompatibilityMode to CosmosDbPartitionedStorage [PR 1468]
  • [Streaming] Merge streaming branch into master [PR 1464]
  • Update LG README.MD [PR 1463]
  • Deprecate Payments [PR 1462]
  • [Skills] Add SkillValidation class [PR 1461]
  • Fix attemptCount [PR 1459]
  • LG/Expression parity with C# (till Nov 25) [PR 1453]
  • [Skills] Add BFHttpClient, ChannelServiceHandler & necessary Auth pieces for Skills [PR 1448]
  • refactor: remove direct cldr-data dep [PR 1444]
  • [R7, Cherry-pick] Cherry-pick TypeScript 3.5.3 pin from 4.6 branch [PR 1442]
  • allows Inspection to attach anywhere within a Teams Team [PR 1434]
  • Fixed several typos [PR 1422]
  • Fixed a small issue in var name [PR 1421]
  • Fixed the wrong function name [PR 1420]
  • fix template additional newline bug [PR 1419]
  • [BotFramework-schema] Add License [PR 1407]
  • update package.json [PR 1402]
  • add Activityfactory [PR 1401]
  • Parity ChoicePrompt fix with dotnet [PR 1400]
  • [Engineering] Remove typescript devDependency from botframework-streaming [PR 1392]
  • [Teams] Call defaultNextEvent after .invoke activity is processed [PR 1390]
  • [Functional-test] Add chrome browser functional tests [PR 1389]
  • Stevenic/4.6 dialog parity [PR 1384]
  • Add LG/Expression library [PR 1381]
  • Fix integrationBot to match C# [PR 1379]
  • Fix ChoicePrompt ListStyle.none when set via PromptOptions [PR 1373]
  • [Engineering] Remove .js and .ts from .gitignore, change *.map to *.js.map [PR 1365]
  • Fixed passing of CosmosClientOptions [PR 1363]
  • [QnAMaker] Active learning low score variation multiplier value [PR 1359]
  • added local teamsCreateConversation helper [PR 1357]

Bot Framework SDK for JavaScript v4.6.0-preview2

04 Nov 17:08
d2d81d1
Compare
Choose a tag to compare

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.

Changes:

Breaking Changes:

  • botframework-streaming-extensions and botbuilder-streaming-extensions have been delisted from MyGet
    • botbuilder contains the updated BotFrameworkAdapter class which is used to interpret incoming streaming requests (formerly botbuilder-streaming-extensions and BotFrameworkStreamingAdapter)
    • botframework-streaming now contains the Request and Transport layer specific code (formerly botframework-streaming-extensions)

Changes:

  • Developers must set enableWebSockets to true in BotFrameworkAdapterSettings to enable WebSockets
  • BotFrameworkAdapter now uses a Factory pattern for more extensibility when using WebSockets
    • Developers can pass in an instance of a NodeWebSocketFactoryBase to the BotFrameworkAdapter via BotFrameworkAdapterSettings.webSocketFactory
    • If enableWebSockets is true and no factory is passed in, the BotFrameworkAdapter will default to a NodeWebSocketFactory
  • BotFrameworkAdapter.useWebSocket() and BotFrameworkAdapter.useNamedPipe() are now public
  • Fixed filename casing issues
  • Minor cleanup and bug fixes

Samples:

For 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: microsoft/BotBuilder-Samples@651f405

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);
    });
});

Bot Framework SDK for Javascript v4.6

30 Oct 17:03
1057eed
Compare
Choose a tag to compare

v4.6.0

Welcome to the 4.6 release of the Bot Framework SDK for JavaScript!

Bot Framework SDK for Microsoft Teams (GA)

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 Dialog (Preview)

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 (Preview)

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 (Preview)

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.

Changelog:

  • Helper to send a trace activity [PR 1355]
  • Integration bot to master [PR 1351]
  • Expand ChannelAccount to TeamsChannelAccount [PR 1350]
  • Update typeDoc comments for DialogContext [PR 1349]
  • Pull out streaming bits from botbuilder and move to botframework-streaming [PR 1348]
  • Drop teams specific send [PR 1347]
  • Fix daily CI build after adding botframework-streaming to packages [PR 1343]
  • Rename Prompt -> QnAMakerPrompt [PR 1342]
  • Auth and browser compatibility fixes, linting, refactoring [PR 1338]
  • Add working ws websocket implementation for Node environment [PR 1334]
  • Create NodeWebSocketFactory, refactor code, new tests [PR 1331]
  • Fix malformatted user agent JSON [PR 1323]
  • Adds createChildContext method to ComponentDialog [PR 1318]
  • Rename onTeams*-Invoke methods to handleTeams*, add TeamsInfo.getTeamMembers [PR 1315]
  • Missing link unfurling scenario [PR 1313]
  • Add teamsTenantFilteringMiddleware to roster bot scenario [PR 1311]
  • Added promptCultureModels - parity w/ dotnet [PR 1309]
  • Part of Teams Hackathon Feedback [PR 1308]
  • Refactor streaming into adapter. General improvements and quality. [PR 1306]
  • Update onTeamsMessagingExtensionFetchTask() & add tests for TeamsActivityHandler [PR 1305]
  • Normalize azure blob timestamp properties to be iso1806 format [PR 1303]
  • Remove browser compat libs [PR 1300]
  • Removing unused libraries botbuilder-applicationinsights [PR 1298]
  • move nock to devDependency [PR 1297]
  • Relax the rules for what counts as a well formed GUID. [PR 1294]
  • Let WebSocketClient take in a disconnection callback [PR 1291]
  • Adding OAuthCard support for Streaming Extensions [PR 1284]
  • Lint Teams scenarios, minor refactor [PR 1283]
  • Cosmos partitioning [PR 1282]
  • Add some tests for teamsCreateConversation [PR 1280]
  • Fix typedoc vulnerability [PR 1279]
  • add more TeamsInfo tests [PR 1275]
  • add tests and mocks for TeamsInfo [PR 1274]
  • Fix names of Messaging Extension projects [PR 1272]
  • Delete unused -teams packages, update lerna.json & package.json [PR 1271]
  • Add IStreamingTransportClient to exports [PR 1270]
  • Add reply to channel bot [PR 1269]
  • Add search based messaging extension from samples (thanks Steven!) [PR 1267]
  • Remove await when starting up a named pipe server. [PR 1266]
  • Add composeMessagingExtensionBot [PR 1265]
  • Update typedoc comments [PR 1264]
  • Populate ChannelData.aadObjectId property and updated Roster bot after testing [PR 1262]
  • Add update and delete bot scenario [PR 1260]
  • Port of ActionBasedMessagingExtension Fetch Task [PR 1258]
  • Fix teams activity handler null ref exception [PR 1257]
  • Office365 Connector Card Scenario [PR 1255]
  • Add TeamsInfo helper class, minor fix in ConversationUpdateBot scenario [PR 1253]
  • Add message reaction bot [PR 1252]
  • adaptivecards bot [PR 1251]
  • ComposeMessageExtensionAuthBot teams scenario [PR 1250]
  • Add TeamsConnectorClient and fix BotFrameworkAdapter bug [PR 1249]
  • Add Notification-only scenario [PR 1248]
  • BotFrameworkAdapter.processActivity() doesn't log or send entire "body" [PR 1246]
  • Mentions scenario [PR 1245]
  • Add Cards scenario [PR 1243]
  • Fix Teams Handler for task/fetch and submit | TaskModule scenario [PR 1242]
  • teams file upload [PR 1241]
  • Fix the content type on the wire to be consistent with the C# implemetation. [PR 1237]
  • Refactor TeamsActivityHandler with refactored ActivityHandler class [PR 1236]
  • Add TelemetryInitializerMiddleware [PR 1233]
  • Change TS output to ES6 for all libraries [PR 1232]
  • updated sample bot to match signature of TeamsActivityHandler [PR 1231]
  • adding openApp card action type [PR 1230]
  • Update choice prompt unit test for hero card prompt with attachment [PR 1229]
  • add actionBasedMessagingExtension from samples repo, update .gitignore [PR 1225]
  • Create ActivityHandlerBase, rewrite ActivityHandler for increased extensibility points [PR 1223]
  • Add Teams schemas and initial TeamsActivityHandler [PR 1220]
  • Ran eslint on streaming extension library [PR 1219]
  • Update nyc dev dependency [PR 1194]
  • Refactored start method to use Promise.all [PR 1193]
  • Choice prompt fixes 1175 [PR 1192]
  • Avoid a buffer getting overwritten during calls to send [PR 1187]
  • Fixed multiple issues in BotFramework-Streaming-Extension Library [[PR 1174]](https://github.com/...
Read more