Skip to content

Releases: microsoft/botframework-cli

4.15 Bot Framework CLI Tools

03 Dec 19:09
405c178
Compare
Choose a tag to compare

November 2021 (version 4.15.0)

Welcome to the November 2021 release of the Bot Framework CLI Tools. This release has been focused on bug fixes and general improvements.

SDK [release notes]

Change log for CLI 4.15.0

Full Changelog: 4.14...4.15

4.14 Bot Framework CLI Tools

08 Jul 23:37
55c5ab0
Compare
Choose a tag to compare

June 2021 (version 4.14.0)

Welcome to the June 2021 release of the Bot Framework SDK.

SDK [release notes]

This release addresses several bug fixes and adds Node JS >= 14 support.

IMPORTANT: Node JS versions lower than 14 are no longer supported.

Change log for CLI 4.14.0

  • Add check for reserved prebuilt entities name [PR 1250]
  • Add intent/entities information in luis build config [PR 1245]
  • Changes for R14 [PR 1249]
  • Adding try/catch to prevent endpointkey to stop the update. [PR 1253]
  • Upgrade Antlr to 4.9.2 [PR 1254]
  • add labels to ISSUE_TEMPLATE bug report & feature request [PR 1255]
  • Support passing in information about external functions in lg:analyze [PR 1237]
  • use 4..14.0-preview version of orchestrator-core [PR 1246]
  • updated CLI readme [PR 1243]
  • fix import filtered intents not work in luis:cross-train [PR 1232]
  • [QnAMaker] Rectified chitchat (.qna) files link in docs [PR 1241]
  • Updated optimized chtchat files for new ranker [PR 1240]
  • Upgrading version to address vulnerability [PR 1239]
  • Support extracting more modelTypeId in luis:test command [PR 1229]
  • Replace node-fetch with axios to support using proxy [PR 1200]
  • fix for bf orchestrator:add command [PR 1236]
  • Delete pnpm lock yaml file before component governance job [PR 1231]
  • Deleting temp files before component governance job [PR 1230]

4.13 Bot Framework CLI Tools

17 Apr 02:23
6ad0e74
Compare
Choose a tag to compare

April 2021 (version 4.13.0)

Welcome to the April 2021 release of the Bot Framework SDK.

SDK [release notes]

This release addresses several bug fixes and adds a new command group with the following commands:

Commands

bf orchestrator

Display Orchestrator CLI available commands

USAGE
  $ bf orchestrator

OPTIONS
  -h, --help  Orchestrator commands help

See code: src/commands/orchestrator/index.ts

bf orchestrator:add

Add examples from .lu/.qna/.json/.blu files, LUIS app(s) and QnaMaker kb(s) to Orchestrator snapshot file.

USAGE
  $ bf orchestrator:add

OPTIONS
  -d, --debug
  -e, --entityModel=entityModel  Path to Orchestrator entity base model directory.
  -f, --force                    If --out flag is provided with the path to an existing file, overwrites that file.
  -h, --help                     Orchestrator add command help
  -i, --in=in                    Path to example file (.lu/.qna/.json/.blu).
  -k, --key=key                  LUIS authoring key or QnAMaker service key if type = luis/qna.
  -m, --model=model              Path to Orchestrator model directory.

  -o, --out=out                  Path where generated Orchestrator example file will be placed. Default to current
                                 working directory.

  -t, --type=type                Type of input (luis/qna/file).

  -v, --version=version          Applies only for type=luis, LUIS app version

  --dialog                       Generate multi language or cross train Orchestrator recognizers.

  --endpoint=endpoint            LUIS/QnAMaker endpoint.

  --id=id                        LUIS app id or QnAMaker kb id if type = luis/qna.

  --routingName=routingName      Routing name, default to file name.

EXAMPLE
	
       $ bf orchestrator:add 	
       $ bf orchestrator:add --in ./path/to/file/ --snapshot ./path/to/snapshot/	
       $ bf orchestrator:add --in ./path/to/file/ --snapshot ./path/to/snapshot/ --out ./path/to/output/	
       $ bf orchestrator:add --in ./path/to/file/ --out ./path/to/output/ --model ./path/to/model/directory
       $ bf orchestrator:add -t luis --id LUIS_APP_ID --version LUIS_APP_VERSION --key LUIS_KEY --routingname l_Weather 
  --endpoint 
       $ bf orchestrator:add -t qna --id QNA_KB  --key QNA_KB_SERVICE_KEY --routingname q_kb

See code: src/commands/orchestrator/add.ts

bf orchestrator:basemodel:get

Gets Orchestrator base model

USAGE
  $ bf orchestrator:basemodel:get

OPTIONS
  -d, --debug
  -h, --help             Orchestrator basemodel:get command help

  -o, --out=out          Optional. Path to where Orchestrator base model will be saved to. Default to current working
                         directory.

  -v, --verbose          Enable verbose logging

  --getEntity            Optional. Download default entity model at the same time, which will be placed in the entity
                         subfolder of the output path.

  --versionId=versionId  Optional. Base model version to download -- reference basemodel:list output for options.  If
                         not specified, default model will be downloaded.

See code: src/commands/orchestrator/basemodel/get.ts

bf orchestrator:basemodel:list

Lists all Orchestrator base model versions

USAGE
  $ bf orchestrator:basemodel:list

OPTIONS
  -h, --help  Orchestrator basemodel:list command help
  -r, --raw   Optional. Raw output
  --all       Optional. Display all models

See code: src/commands/orchestrator/basemodel/list.ts

bf orchestrator:build

Creates Orchestrator snapshot file and Orchestrator dialog definition file (optional) for each lu file in input folder.

USAGE
  $ bf orchestrator:build

OPTIONS
  -d, --debug
  -e, --entityModel=entityModel  Path to Orchestrator entity base model directory.
  -h, --help                     Orchestrator build command help
  -i, --in=in                    Path to lu file or folder with lu files.
  -m, --model=model              Path to Orchestrator model.

  -o, --out=out                  Path where Orchestrator snapshot/dialog file(s) will be placed. Default to current
                                 working directory.

  --dialog                       Generate multi language or cross train Orchestrator recognizers.

  --luconfig=luconfig            Path to luconfig.json.

See code: src/commands/orchestrator/build.ts

bf orchestrator:create

Create orchestrator snapshot (.blu) file from .lu/.qna/.json/.tsv/.dispatch files, which represent bot modules

USAGE
  $ bf orchestrator:create

OPTIONS
  -d, --debug
  -e, --entityModel=entityModel  Path to Orchestrator entity base model directory.
  -h, --help                     Orchestrator create command help

  -i, --in=in                    The path to source label files from where orchestrator example file will be created
                                 from. Default to current working directory.

  -m, --model=model              Path to Orchestrator base model directory.

  -o, --out=out                  Path where generated Orchestrator snapshot file will be placed. Default to current
                                 working directory.

  --hierarchical                 Add hierarchical labels based on .lu/.qna file name.  Resulting snapshot file will
                                 contain.lu/.qna file name as labels instead of the intents defined in the .lu file(s).

  --refresh                      Refetch LUIS app(s)/QnAMaker kb(s) previously added and recreate Orchestrator snapshot.

See code: src/commands/orchestrator/create.ts

bf orchestrator:interactive

Real-time interaction with Orchestrator model and analysis. Can return score of given utterance using previously created orchestrator examples

USAGE
  $ bf orchestrator:interactive

OPTIONS
  -d, --debug
  -e, --entityModel=entityModel  Path to Orchestrator entity base model directory.
  -h, --help                     show CLI help
  -l, --in=in                    Optional path to a previously created Orchestrator .blu file.
  -m, --model=model              (required) Directory or hosting Orchestrator config and base model files.
  -o, --out=out                  Optional Directory where analysis and output files will be placed.

EXAMPLE

       $ bf orchestrator:interactive --in=./path/to/snapshot/file --out=./path/to/output/folder/ 
  --model=./path/to/model/directory

See code: src/commands/orchestrator/interactive.ts

bf orchestrator:query

Query Orchestrator base model and a snapshot/train file

USAGE
  $ bf orchestrator:query

OPTIONS
  -d, --debug
  -e, --entityModel=entityModel  Path to Orchestrator entity base model directory.
  -h, --help                     show CLI help
  -i, --in=in                    (required) Path to a previously created Orchestrator snapshot (.blu file).

  -l, --limit=limit              (optional) Limit of number of predictions. Default to 3. Less or equal to 0 for listing
                                 all predictions.

  -m, --model=model              (required) Path to Orchestrator base model directory.

  -q, --query=query              (required) Query string to predict.

EXAMPLE

       $ bf orchestrator:query --in=./path/to/snapshot/file --query=hi --model=./path/to/base/model/directory

See code: src/commands/orchestrator/query.ts

bf orchestrator:test

The "test" command can operate in three modes: test, evaluation, assessment.

USAGE
  $ bf orchestrator:test

OPTIONS
  -d, --debug
  -e, --entityModel=entityModel  Path to Orchestrator entity base model directory.
  -h, --help                     show CLI help
  -i, --in=in                    (required) Path to a previously created Orchestrator .blu file.

  -m, --model=model              Optional directory for hosting Orchestrator config and base model files, not needed for
                                 the "assessment" mode.

  -o, --out=out                  (required) Directory where analysis and output files will be placed.

  -p, --prediction=prediction    Optional path to a prediction label file, or comma-separated paths to a collection of
                                 (e.g., crosss-valiaton) files.

  -t, --test=test                Optional path to a test file. This option enable the "test" mode.

DESCRIPTION
  1) Test mode: test a collection of utterance/label samples loaded from a test file against
         a previously generated Orchestrator .blu snapshot/tra...
Read more

4.12 Bot Framework CLI Tools

23 Feb 18:57
05d0b13
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 CLI 4.12.0

  • Docs for 4.12 [1119]
  • Cleaning component governance alerts [1118]
  • Support for composite entities with prebuilt children [PR 1117]
  • Adding export format option to luis:version:export [PR 1116]
  • Adding fix and test for luis:convert on missing luis members [PR 1115]
  • Fixing try catch in generate/cs [PR 1114]
  • Adding mode flag to train command [PR 1113]
  • Fix luis converter to enable escaping specific chars [PR 1111]
  • Add language support for qnamaker build related api [PR 1083]
  • fix luis objects merging over-filtering issue [PR 1108]
  • Fix expression visitor to make escape work in nested entity definition [PR 1106]
  • enable luis vnext train mode [PR 1099]
  • Add escape brackets in utterance capability [PR 1104]
  • Enable direct version publish [PR 1098]
  • Support wild cards in nuget versions for dialog:merge [PR 1096]
  • Fix the issue caused by additional semicolon at the end of some lu definitions [PR 1093]
  • Hash line ending agnostic and import exclusion bug [PR 1095]
  • Fix entity type case sensitive issue and class definition typo issue [PR 1091]
  • Allow intent or entities using phraseList features of same name [PR 1089]
  • [bf-lu] Fix throwing exception bug in validateResponse when utterance reference is invalid [PR 1079]
  • Lowercase package names [PR 1073]
  • Support to customize user agent for luis and qnamaker build api calls from process env [PR 1070]
  • [Cross-Train] avoid qna questions with brackets to be added to crosstrained lu file [PR 1067]
  • Fix markdown link sytax [PR 1066]
  • support output to file for kb:export command [PR 1065]
  • support special chars in intent name for lu antlr parser [PR 1058]
  • Pin ANTLR version [PR 1061]
  • File was already moved to sdk/orchestrator/docs. [PR 1056]
  • Add runCodesignValidationInjection: false to pipelines [PR 1055]
  • Remove console.log in luis validation. [PR 1049]
  • fix app name comparison logic in luis build [PR 1045]
  • Fix a regression on multiturn extrac...
Read more

4.11 Bot Framework CLI Tools

10 Nov 00:16
a9f9b96
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 CLI 4.11.0

  • Replacing node-fetch with axios to get proxy detection [PR 1036]
  • Fix bug in interface sorting [PR 1034]
  • Fix problem with call to isDirectory [PR 1032]
  • Adjust cross-train to use id as key-value instead of path in config [PR 1030]
  • Remove unused dup hash in luis/qnamaker build when reconstructing files [PR 1026]
  • Update dialog:merge to support author and .ds_store [PR 1027]
  • Orchestrator CLI draft spec [PR 1021]
  • Clean cross-train config discovery code pieces [PR 1024]
  • Refactor error message of luis build and qnamaker build [PR 1025]
  • Fix exit code not thrown issue when cli running into exception [PR 1022]
  • Make prepack scripts more consistent [PR 1020]
  • Fix update section bug when there are errors [PR 1017]
  • Ensure all operations are under checkOnly. [PR 1018]
  • Delete uninstalled imports [PR 1015]
  • Refactor luis build interface to decouple dialog gen from build [PR 990]
  • Fix trailing tab after qna questions is not recognized issue [PR 1008]
  • Add component information to return [[PR 1012]](https://github.c...
Read more

4.10 Bot Framework CLI Tools

17 Aug 23:15
e3d7c37
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.0 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:

  • updating lodash [PR 927]
  • Fix lu parser to handle feature assignment via imports [PR 926]
  • Fix loadContents not working issue when loading both non-empty and empty files in luis/qnamaker:build [PR 925]
  • Add support for URI reference in LU [PR 923]
  • Fix LUIS JSON to LU to handle hierarchical entities correctly [PR 921]
  • fix lu parser to accept quotes and interchanageable label in pharselist definition ...
Read more

4.9 Bot Framework CLI Tools

20 Jul 16:29
5aeb275
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

4.8 Bot Framework CLI Tools

04 May 22:22
03afaab
Compare
Choose a tag to compare

Changelog for v4.8.0:

bf plugins command group

New Commands: This group of commands allow the user to dynamically install Bot Framework preview commands .

bf plugins
Install, uninstall and show installed plugins

USAGE
  $ bf plugins

OPTIONS
  --help  Display plugins commands help.

COMMANDS
  plugins:install    Installs a plugin into the BF CLI
  plugins:list       List installed plugins
  plugins:uninstall  Removes a plugin from the BF CLI

bf luis:build

New Command: Build lu files to train and publish luis applications

USAGE
  $ bf luis:build

OPTIONS
  -f, --force                      If --dialog flag is provided, overwirtes relevant dialog file
  -h, --help                       show CLI help
  -i, --in=in                      Lu file or folder

  -o, --out=out                    Output file or folder name. If not specified, current directory will be used as
                                   output

  --authoringKey=authoringKey      (required) LUIS authoring key

  --botName=botName                Bot name

  --defaultCulture=defaultCulture  Culture code for the content. Infer from .lu if available. Defaults to en-us

  --dialog                         Write out .dialog files

  --fallbackLocale=fallbackLocale  Locale to be used at the fallback if no locale specific recognizer is found. Only
                                   valid if --dialog is set

  --log                            write out log messages to console

  --luConfig=luConfig              Path to config for lu build

  --region=region                  [default: westus] LUIS authoring region [westus|westeurope|australiaeast]

  --suffix=suffix                  Environment name as a suffix identifier to include in LUIS app name. Defaults to
                                   current logged in useralias

EXAMPLE

       $ bf luis:build --in {INPUT_FILE_OR_FOLDER} --authoringKey {AUTHORING_KEY} --botName {BOT_NAME} --dialog {true}

bf luis:generate

Added support for luis new schema 6.0.0

@microsoft/bf-lu v2 API

New API v2 and decoupling of oclif libraries to improve performance.

CI compatibility

The CLI now detects CI environments by reading BF_CLI_TELEMETRY environment variable
--json flag added to luis commands which can be consumed as JSON

PR History

Read more

v4.7.0 Release Notes

18 Dec 17:29
6c531fc
Compare
Choose a tag to compare

New Luis Api commands

4.7 version adds new commands under the Luis command group to access the new LUIS V3 API:

  luis:application:create   Creates a new LUIS application
  luis:application:delete   Deletes a LUIS application
  luis:application:import   Imports LUIS application from JSON or LU content.
  luis:application:list     Lists all applications on LUIS service.
  luis:application:publish  Publishes application's version
  luis:application:query    Queries application for intent predictions
  luis:application:rename   Renames the application and updates its description
  luis:application:show     Shows application information
  luis:endpoints:list       Returns available deployment endpoints
  luis:train:run            Issues asynchronous training request for LUIS application
  luis:train:show           Shows training status
  luis:version:clone        Creates a new version equivalent to the current snapshot of the selected application version.
  luis:version:delete       Deletes a LUIS application version
  luis:version:export       Exports a LUIS application to JSON format
  luis:version:import       Imports a new version into a LUIS application from JSON or LU content.
  luis:version:list         Returns application's versions
  luis:version:rename       Renames application version
  • 317 luis application query [PR 388]
  • chore: fix dialog debugging [PR 387]
  • Chrimc/form [PR 384]
  • Fix to BF-LU to exclude empty descriptors on intents (from JSON -> LU) [PR 383]
  • Add luis:train:run [PR 382]
  • chore: swap to rush/pnpm & azure-pipelines.yml [PR 381]
  • Add luis:train:show cmd [PR 380]
  • Adding luis:application:show cmd [PR 379]
  • Adding luis:version:rename cmd [PR 378]
  • Adding luis:application:rename cmd [PR 377]
  • Add luis:application:publish cmd [PR 376]
  • Adding luis:version:list cmd [PR 375]
  • Adding luis:endpoints:list cmd [PR 374]
  • Adding luis:application:list cmd [PR 371]
  • 307 luis version import [PR 369]
  • Added tool deprecation schedule [PR 368]
  • Adding luis:application:import cmd [PR 367]
  • Fix to update LU parser to support phrase list flags - enabledForAllModels, disabled. [PR 366]
  • Nigao/mergewithmaster [PR 361]
  • LUIS application create - update to bring in line w latest spec [PR 360]
  • Fix luis api spec [PR 359]
  • support special chars in entity type definition [PR 358]
  • Adding luis:version:export cmd [PR 356]
  • Adding luis:version:delete cmd [PR 355]
  • support section and cross-train in bf lu [PR 354]
  • Initial check-in of dialog generation. [PR 353]
  • Adding LUIS app delete command [PR 352]
  • Adding luis:application:create cmd and tests / refactor utils and clo… [PR 351]
  • Create bf luis plugin [PR 349]
  • Adding closed list scenarios to Luis Gen [PR 345]
  • [LU -> LUIS] Fix to clean up phraselists [PR 340]
  • Create bf luis plugin commands [PR 337]
  • bf-luis-cli plugin initial commit [PR 336]
  • Command line usage & form for bf:luis command group [PR 328]
  • Update DialogDevSpec.md [PR 324]
  • Lu parser re architecture to be OO [PR 298]
  • Fixing output file path messages [PR 297]

v4.6.0 Release Notes

30 Oct 17:05
8ca578e
Compare
Choose a tag to compare

Bot Framework Consolidated Command Line Interface

We are happy to announce the first release the consolidated Bot Framework Command Line Interface (BF CLI) along with Bot Framework SDK Version 4.6.

BF CLI is based on Node.js platform and OClif framework where it inherits its command line parsing style, and plugin architecture platform.

Upon the first General Availability release, the BF CLI consolidates the following standalone tools into a single CLI.

Porting Map

Commands invoked by BF [New Command] as follows:

New Command Old Tool(s) Status
chatdown Chatdown GA
qnamaker QnAMaker GA
luis/qnamaker:convert, luis/qnamaker:translate LuDown GA
luis:generate LuisGen GA

Future Commands

We plan to port over (and extend) the following commands:

New Command Old Tool(s)
luis:... LUIS (api)
lg MSLG
dispatch Dispatch
dialog Dialog (internal)

The old tools will be deprecated in subsequent releases. All new investments, bug fixes, and new features will be implemented in the new consolidated BF CLI alone.

Porting Highlights

Chatdown

  • Chatdown functionality in BF CLI is primarily under chatdown:convert
  • Arguments were ported to flags form
  • Static flag was renamed to stamp
  • Allow scanning of directory without glob expression
  • Improved error handling
  • Pipe STDIN input is accepted when --in flag is expected but not specified

QnA Maker:

  • QnaMaker port to BF CLI as bf qnamaker
  • Reverse format of qnamaker commands from [subject|verb] to [verb|subject]
  • Gov environment is now supported by use of endpoint overwrite
  • Pipe STDIN input is accepted when --in flag is expected but not specified

Config:

  • All settings are now stored in the global bf config store for all command groups

Lu:

  • Ludown was ported over into bf luis:convert, qnamaker:convert, luis:translate and qnamaker:translate
  • Improved error handling
  • Added a new nDepth entity support in lu format
  • File extension separated into .lu for Luis, and .qna for QnAMaker
  • Updated Luis schema version 5
  • Pipe STDIN input is accepted when --in flag is expected but not specified
  • Decoupled Disk I/O operations as mandatory for lu transform
  • New support in lu format: Model as a feature to other models
  • New .lu file capability: Ability to tie features to a specific model
  • New entity definition support in LU file format.
  • Address ludown automatically by adding pattern as an utterance
  • Fix a regression with prebuilt entity references in patterns.
  • Improved ludown sort
  • General quality improvement

Luis Gen

  • Luisgen was ported to BF CLI as bf luis:generate:ts and bf luis:generate:cs

Developer Experience:

  • Added auto-generated dev documentation
  • Error handling is now part of command base class
  • Added automatic command usage telemetry (if user opted in)
  • Now using Promise for STDIN input stream in main command with timeout protection
  • Global hooks in CLI for version update and telemetry status