* Components: improved authoring experience + component registration refactor
+ BotComponent base class that acts as the base component definition. New Components implement the Startup() method where they can register services
+ Component registration refactor: resource explorer now receives the list of custom types and converters on construction instead of from a global variable. DialogStateManager now receives the memory scopes and path resolvers from turn state instead of from the global component registrations.
+ Component registration backward compat: introduced component registration bridge generic class that allows any new BotComponent to be exposed through component registration for legacy code
+ Bot components for each of our 1st party components: created new component for Adaptive, QnAMaker, Luis, Orchestrator, Dialogs, Declarative, etc. Also updated their respective component registrations to use the new bridge classes to avoid registration duplication.
* Component registration refactor: add path resolvers and memory scopes to turn state through DI -> AdaptiveDialogBot
* Runtime extensions: remove commented line
* Components: Delete Botcomponent attribute, was not needed
* Component: fix xml comment
* ComponentReigstration refactor: fix tests build
* Adaptive bot component: add DialogSetconverter
* Runtime: move to ConfigurationResourceExplorer, adjust tests
* Runtime: remove unused variable
* Components: REname 'plugins' setting to 'components'
* Runtime: Delete component registrations
* Components: Add CommandActivity related declarative type registrations
* Teams + Adaptive: Make teams a component
* Component: Rename BotComponent.Startup() -> BotComponent.ConfigureServices()
* Runtime: Remove teams from built-in components
* Component: remove component registration unused classes in runtime tests
* Microsoft.Bot.Builder.Runtime and tests
* Runtime looks to root
* Applying latest changes from microsoft/botframework-core@main branch,… (#5039)
* Applying latest changes from microsoft/botframework-core@main branch, up to commit 222038687ceaa6fa7b3246b9d6a935100d21d8b6. Also modifying configuration extensions to support utilization of the runtime in Composer bot projects.
* Test Change
Co-authored-by: tracyboehrer <tracyboehrer@users.noreply.github.com>
* Runtime: Reverted to using root paths
* Enable skill authentication and default behaviors on core runtime (#5055)
* Remove AutoEndDialog logic
* Add allowed callers claims validator and tests
* Incorporate PR comments
* Runtime Plugin Support (#5059)
* Fix Cosmos nesting problem (#4973)
* Write failing Cosmos nest test
* Create new exception for Cosmos nesting limit
* Remove BotStateException
* Support Skip() as an operation for form generation (#5025)
* Fix bug where operations without children were dropped.
Preserve expectedEntities for assignments without a property.
Both of these were to support skip as an entity in generation.
* Fix a bug where choosing an entity loses the original operaion.
Co-authored-by: Chris McConnell <chrimc>
* Switch to list to be consistent with other properties. (#5029)
Co-authored-by: Chris McConnell <chrimc>
* add resource tags to FB adapter CI (#5031)
* correct solution folder Parsers and add auth test project (#5030)
* Adding initial implementation of plugin support to Microsoft.Bot.Builder.Runtime, including definition of binding interfaces in separate Microsoft.Bot.Builder.Runtime.Plugins package.
* feat: parity issues for js, python, and java (#5028)
Also supports various parity automation labels.
* [Debugger] add injectable transport, with unit tests (#4921)
* [Debugger] add injectable transport, with unit tests
* use ITestOutputHelper for updated json
* improve determinism for thread phase requests
* introduce HasRest mixin
* sort trace events in canonical order
* use topological sort to canonicalize
* handle Mac LF line endings for trace oracle
* Add daily builds instructions (#5044)
* Change LogAction.Text from stringExpression to IActivityTemplate (#5036)
* Add clarification to EditArray Remove (#5045)
* Claims Validation readme (#5050)
* Claims Validation readme
* Remove comment
* Merging latest changes from main.
* Adding unit test coverage for runtime plugins.
Co-authored-by: Kyle Delaney <v-kydel@microsoft.com>
Co-authored-by: Chris McConnell <chrimc@microsoft.com>
Co-authored-by: Steven Gum <14935595+stevengum@users.noreply.github.com>
Co-authored-by: johnataylor <johtaylo@microsoft.com>
Co-authored-by: Josh Gummersall <1235378+joshgummersall@users.noreply.github.com>
Co-authored-by: Will Portnoy <wportnoy@microsoft.com>
Co-authored-by: Monica Rivera <44449640+mrivera-ms@users.noreply.github.com>
Co-authored-by: Eric Dahlvang <erdahlva@microsoft.com>
* Merge latest from main (#5058)
* Fix Cosmos nesting problem (#4973)
* Write failing Cosmos nest test
* Create new exception for Cosmos nesting limit
* Remove BotStateException
* Support Skip() as an operation for form generation (#5025)
* Fix bug where operations without children were dropped.
Preserve expectedEntities for assignments without a property.
Both of these were to support skip as an entity in generation.
* Fix a bug where choosing an entity loses the original operaion.
Co-authored-by: Chris McConnell <chrimc>
* Switch to list to be consistent with other properties. (#5029)
Co-authored-by: Chris McConnell <chrimc>
* add resource tags to FB adapter CI (#5031)
* correct solution folder Parsers and add auth test project (#5030)
* feat: parity issues for js, python, and java (#5028)
Also supports various parity automation labels.
* [Debugger] add injectable transport, with unit tests (#4921)
* [Debugger] add injectable transport, with unit tests
* use ITestOutputHelper for updated json
* improve determinism for thread phase requests
* introduce HasRest mixin
* sort trace events in canonical order
* use topological sort to canonicalize
* handle Mac LF line endings for trace oracle
* Add daily builds instructions (#5044)
* Change LogAction.Text from stringExpression to IActivityTemplate (#5036)
* Add clarification to EditArray Remove (#5045)
* Claims Validation readme (#5050)
* Claims Validation readme
* Remove comment
* Merging latest changes from main.
Co-authored-by: Kyle Delaney <v-kydel@microsoft.com>
Co-authored-by: Chris McConnell <chrimc@microsoft.com>
Co-authored-by: Steven Gum <14935595+stevengum@users.noreply.github.com>
Co-authored-by: johnataylor <johtaylo@microsoft.com>
Co-authored-by: Josh Gummersall <1235378+joshgummersall@users.noreply.github.com>
Co-authored-by: Will Portnoy <wportnoy@microsoft.com>
Co-authored-by: Monica Rivera <44449640+mrivera-ms@users.noreply.github.com>
Co-authored-by: Eric Dahlvang <erdahlva@microsoft.com>
* Runtime.Plugins icon
* Adding additional prototype for ConfigurationBuilderExtensions.AddBotRuntimeConfiguration() to support specifying relative directory path containing appsettings.json. Also removing invocation of builder.AddEnvironmentVariables(), as this is already added by Host.CreateDefaultBuilder(). (#5116)
* Runtime Plugins: Make BotPluginDefinition IBotPluginEnumenator internal
* Runtime: Move IBotPlugin and IBotPluginLoadContext to Runtime package, remove plugins package
* Runtime: Move static logic from provider to extensions, move skills logic, update tests
+ Credential, auth and skills logic in provider is static, move to service collection extensions
+ Move AllowedCallersClaimsValidator and SkillConversationIdFactory to Skills namespace
+ Remove providers for credentials and channels
+ Update tests. Cred and channel tests commented temporarily, will be tested as part of service collection extensions.
* Runtime: Add strongly typed options and register in extensions
* Runtime: Load plugins from options instead of runtime.json and outside of provider context
* Runtime refactors: adjusting code for new configuration contract
* Runtime tests: delete temporary tests
* Runtime tests: cleanup namespaces
* Runtime tests: cleanup more namespaces
* Runtime: copyright and namespace cleanup
* Runtime: settings documentation
* Runtime: remove plugin filter, fix startup issues.
* Runtime: remove plugin filter part 2
* Runtime: plugin definition cleanup and move from IEnumerable to IList
* Runtime: remove resources section and flatten a bit.
* Runtime: remove usage of IServiceScope except for plugin, let external adapters configure themselves
* Runtime service extensions: reorganize internal extensions and register adapter settings
* Runtime: blob transcript inline object, fix tests, default runtime settings
* Runtime: Move runtime and corresponding tests to integration and rename assemblies
* Runtime: rename integration plugin namespace
* Runtime: Update solution, add adapter schema to preview project
* Runtime: update tests.schema after adding IAdapter schema
* Runtime: Fix wrong namespaces after integration folder move
* Runtime: delete temporary scenarios
* Runtime: cleanup unused namespace and remove unnecesary schema field
* Runtime: Remove unused code, fix typos, remove project specific directory build props
* runtime: add missing docs
* Runtime: make allowed callers claim validator internal.
* Runtime: Add TeamsComponentRegistration
* Update libraries/integration/Microsoft.Bot.Builder.Integration.Runtime/CoreBot.cs
Use var instead of type name
Co-authored-by: Gabo Gilabert <gabog@users.noreply.github.com>
* Update libraries/integration/Microsoft.Bot.Builder.Integration.Runtime/Extensions/ConfigurationBuilderExtensions.cs
Runtime: move string -> var
Co-authored-by: Gabo Gilabert <gabog@users.noreply.github.com>
* Update libraries/integration/Microsoft.Bot.Builder.Integration.Runtime/Extensions/ConfigurationBuilderExtensions.cs
Co-authored-by: Gabo Gilabert <gabog@users.noreply.github.com>
* Update libraries/integration/Microsoft.Bot.Builder.Integration.Runtime/Extensions/ConfigurationBuilderExtensions.cs
Co-authored-by: Gabo Gilabert <gabog@users.noreply.github.com>
* Update libraries/integration/Microsoft.Bot.Builder.Integration.Runtime/Extensions/ConfigurationBuilderExtensions.cs
Co-authored-by: Gabo Gilabert <gabog@users.noreply.github.com>
* Runtime: remove unnecessary IConfiguration registration
* Runtime: error handling tweaks in OnTurnError
* Runtime tests: We are not using JObjectConfigurationProvider and JObjectConfigurationSource right now. Remove from tree until we need them.
* Runtime coreBot: explicit dependencies instead of IServiceProvider.
* Runtime: remove IServicePrvider ctor parameters and remove collection extensions since there is just 1 usage. WE can bring back if it makes sense to justify the extra code and tests.
* Runtime: minor adjustments to skill conversation id test to sdk style such as variable naming and such
* Runtime: Fix plugin registration test
* Runtime: dev appsettings for now. TODO: environment consideration once we revisit the program and startup.cs for the templates
* Update tests schema
* Update tests.schema
* Runtime: content folder for schemas
* Runtime project: add missing nuget dependencies for teams and plugins
Co-authored-by: Peter Innes <53846082+peterinnesmsft@users.noreply.github.com>
Co-authored-by: Ryan Lengel Isgrig <43043272+ryanlengel@users.noreply.github.com>
Co-authored-by: Kyle Delaney <v-kydel@microsoft.com>
Co-authored-by: Chris McConnell <chrimc@microsoft.com>
Co-authored-by: Steven Gum <14935595+stevengum@users.noreply.github.com>
Co-authored-by: johnataylor <johtaylo@microsoft.com>
Co-authored-by: Josh Gummersall <1235378+joshgummersall@users.noreply.github.com>
Co-authored-by: Will Portnoy <wportnoy@microsoft.com>
Co-authored-by: Monica Rivera <44449640+mrivera-ms@users.noreply.github.com>
Co-authored-by: Eric Dahlvang <erdahlva@microsoft.com>
Co-authored-by: carlosscastro <ccastro@microsoft.com>
Co-authored-by: Carlos Castro <carlosscastro@users.noreply.github.com>
Co-authored-by: Gabo Gilabert <gabog@users.noreply.github.com>
* porting of parser tool from SDK version, linting and format fixes pending
* format updates
* Changed target framework to match the rest of the libraries
* Addressing PR feedback.
* Adding data driven tests and further PR fixes
* Using OS dependant fixtures
* test fixes
* Removing all other libraries
* Removed comment
* Add branch lu-parser to CI builds.
* Triggering build
* Revert "Triggering build"
This reverts commit 55b28874d7.
Revert removing libraries.
* Revert "Add branch lu-parser to CI builds."
This reverts commit acda8f460a.
Revert commits
* Revert "Removed comment"
This reverts commit 7876adeef6.
* Revert "Removing all other libraries"
This reverts commit 670677dcdb.
* Add branch lu-parser to CI builds.
* Changing Antlr Runtime to align with LanguageGeneration (#4740)
* Changing Antlr Runtime to aling with LanguageGeneration
* Fixing Unix fixture
* Testing changing target framework for lu parser tests
* Revert "Testing changing target framework for lu parser tests"
This reverts commit a7a44626e5.
Changing back target framework
* Fixing Unix fixture
* Removing Console.WriteLine from LuParser
* Adding tests at Section level
* Fixing docs
* Create README.md
* Fixing conflicts in sln
* Fixing conflicts 2nd try
* Sanitizing files to remove \r in windows
* Fixing tests for mac
* Fixing tests for mac
* FIx tests for Mac 3
* Fix tests for mac 4
* Fix tests for Mac 4
* Fix tests mac 5
* Fix mac tests 6
* Fix tests mac 6
* Fix mac tests 7
* Fix mac test 9
* Fix tests mac 10
* Fix test mac 11
* Fix test mac 11
* Fix mac test 13
* Fix tests mac 13
* Fix tests mac 14
* Fix tests mac 15
* Adding file headers
Co-authored-by: Axel Suarez <axsuarez@microsoft.com>
Co-authored-by: Monica Rivera <moniriv@microsoft.com>
* Changes include
Removed x64 configuration from solution.
Updated Orchestrator project to only target x64 and added TODO notes in the csproj so we remember to remove these settings once we support Any CPU.
Removed redundant settings and packages from Orchestrator.csproj
Migrated orchestrator tests to XUnit.
* Added TODO to remember to change the TargetFramework to netstandard2.0 whenever possible.
Updated path to generate xml documentation
This props file also enfoces warnings as errors.
Left a bunch of excludes in the Streaming project, we can remove that once we merge the outstanting PR.
* Enabled FxCop on the Dialogs project and fixed errors.
* Enabled FxCop and Async usage analyzers on the integration folder projects usinga BuildProps file and fixed errors.
* Fixed some FxCop issues for WebApi projects that only show when targetting Windows in the build.
Added reference to editorconfig to the sln file to make it easier to maintain.
* Configured TreatWarningsAsErrors on all projects in the libraries folder except for Microsoft.Bot.Builder.Dialogs.Adaptive.Testing (that needs to be addressed separatelly).
Created Directory.Build.props for FunctionalTests and Tests to manage excludes for the projects in those folders.
Added NoWarn properties for documentation on each project (these will be addressed by another issue).
Fixed long hanging fruit warnings.
Added Roslyn FxCop analyzer to Microsoft.Bot.Schema and fixed violation or excluded them using #pragma.
* Fixed binary compat issues
* Fixed more binary compat issues
* fix a bunch of schema errors
* fix a bunch of dialog errors
* move compnent schema to using botframework-sdk/component.schema
* get rid of sdk.schema, schema comes from SDK assemblies not from sdk.schema
* create tests.schema which is active schema for unit tests
* create testbot.schema which is active schema for testbot
* fallback to .value property if there is no text.
* pull declarative related testing classes out into new Microsoft.Bot.Builder.Dialogs.Adaptive.Testing assembly
This keeps Bot.Builder..Testing assembly with minimal dependencies
* First pass at SkillDialog
Created preview Skills project and placeholder for unit test.
Added DialotToDialog and SimpleSkillBot for local testing.
Added abstract BotFrameworkClient base class to decouple http dependency.
Added Skills Solution.
* Refactored DialogToDialog to use EchoSkillBot and DialogSkillBot.
Deleted simplebot to bot for now.
Updated code to make it work.
* Forced adding launchSettings.json to code to make it easier to configure locally during dev.
* Added support for InvokeActivities in SkillDialog.
Updated welcome card.
* Added guard in SkillDialog to only process Message and event activities.
Removed invoke handling funcitonality from SkillDialog and sample call.
* Removed Invoke Code from skilldialog
Added new projects to the Mcirosoft.Bot.Builder.sln file
* Revreated Skill.sln after merge and remove 31 suffix from DialogSkill Test projects.
* Removed icon.png ref from csproj file
* Readded projects lost after merge
Removed Expressions.Properties from skills solution.
* Touched to force another build
* Updated SkillDialog to take activities instead of creating them and updated MainDialog to create the activities.
Updated SkillDialogArgs to take the skill and the activity to forward.
Addressed other comments from PR
* merge expression.properties into expression library.
* Cleaned up semantics around switch/case expression and constants
* typing tests are sensitive to speed of machine, need to be longer delays to make it consistent on build servers
* Updated schema.
* Added DynamicList and External entity support to declarative LUIS Recognizer.
Improved MockLuis to pay attention to parameters.
* Update cache files.
* Update LuisRecognizerOptionsV3 to include support for DialogContext.
* ExternalEntity recognizer tests running.
* Move LUIS loader and convert to LUIS library.
* Update TestBot to better handle one dialog.
* Fix TestBot to work more reliably.
* Move expression properties to its own library in order to support using them in LUIS Recognizer without introducing cycles.
* Fix bogus build warnings.
* Connect expresssion to dynamic lists.
* Add LuisAdaptiveRecognizer to wrap LUISRecognizer functionality including expressions. This is also a breaking change because appid, etc. now is expressions.
Fixed bug in ArrayExpressionConverter where other convertes would not be used.
* Add explicit adapter dynamic list to get around serialization/deserialization issues.
Add test that uses expression.
* Update generator unit tests.
* Switch to $role filling in string type.
Get rid of lg and memorypath roles.
* Update tests to run without a secret when LUIS results are cached.
* Add back in extension method.
* Remove LuisRecognizer from Recognizer since LuisAdaptiveRecognizer handles the mismatch.
* Remove unneeded dependency.
* Address code review comments.
* Added MaxCpuCount parameter to runsettings
* Moved adaptive tests to be the beginning of the sln to see the impact on the test duration and reordered projects one more time
* Enabled declarative tests in windows-release configuration
* Added XUnit parallelization to TestBotTests.
* Sync to master and squash form stuff.
* Update to latest sandwich form tests.
* add retry to memory
* fix logic
* Fix casing on generated files. Add card support for confirmation.
* Update schemas and case in generated files.
* Add ignore to runonce expression.
* fix retry issues
* Fix some consitency bugs and extend file tracking to include .lg.
* Merge FormDialog into AdaptiveDialog.
* remove hard-coded help intent detection
* Merge with master
* Fix the wrong format
* Change to have locale independent imports for .lg.
* Fix bug if no expected properties.
Update generated files.
* Update to latest sandwich after merge.
* Fix missing path.
* Merge with master
* Switch to declarative for generator.
Updated expected properties on slot selection.
Update test script to allow setting configuration.
Swallow empty send activtity.
* Properly handle ignore by removing from trigger tree.
Fix expression and semantics.
Add tests for runOnce.
* Support scopes and add tests for change tracker.
* Update LUISRecognizer schema to include prediction options.
Made entities robust wrt missing $instance.
Updated generate form to include instance data.
* Add documentation to LUIS schema.
* Fix baseComponent reference to JSON Schema.
* Add support for utterance and update to latest sandwich example in testbot.
* Simplify sandwich example.
* Update MockLuis to support full LUIS recognizer and enable for generator tests.
Fix bug where utterance was generated for enum properties.
Make entity clarification more robust.
* Fix how empty activities are ignored.
Wire up MockLuis to script tests.
Fix some warnings.
* add test templates
* copy templates to adaptive.tests
* Revert "copy templates to adaptive.tests"
This reverts commit 6196528f26.
* copy test templates to adaptive.tests
* Restore bad scope exception.
Update schema.
* Make MockLuis more robust to not having your own setting file.
* several questions
* remove test2 files from testbot.json and adaptive.tests. add unittests files to adaptive.tests.
* Unittests script
* change name to unitTestsDirectory
* Make it so that trigger priority can be an expression.
Extend IndexOf to work over arrays as well as string.
* Make SendActivity more robust on detecting activity.
* Rip out scope support.
Fix bug where setting root scope caused stack overflow.
* Make path consistent.
* Address code review comments including:
* Documentation
* Pascal casing constans
* New memory scope dialogclass so schema is dialogclass.schema
* Renaming events, SetProperty->AssignEntity, ClarifyEntity->ChooseEntity
* Making schema be a plain JObject
* Switch to upper case constants to avoid an SDK breaking change.
* Remove .net framework projects from debug build.
* Fix casing on directory spec "Files"
* Removed file on lowercased path.
* Switch from OnAsk to OnEndOfActions.
Co-authored-by: Ning Gao <nigao@microsoft.com>
Co-authored-by: Dong Lei <donglei@microsoft.com>
Co-authored-by: BruceHaley <v-bruhal@microsoft.com>
* Refactored SkillHandler to use ContinueConversation.
Added NotImplementedExceptions for unsupported methods in skillhandler
Moved classes in the Integration and BotBuilder assemblies and deleted the skill specific ones.
Added unit tests.
Updated samples
* Touched file to force build
- Updated package versions for Twilio / Slack to preview
- Added appropriate properties to CSPROJ to align with other projects
- Ensure package is generated on build for Facebook / Slack