From 8d8754762241bd7c8a0af405637294cc5501699d Mon Sep 17 00:00:00 2001 From: Lu Han <32191031+luhan2017@users.noreply.github.com> Date: Mon, 9 Sep 2019 14:43:52 +0800 Subject: [PATCH] Update package to 829 4.Future and update all the samples[draft] (#767) * Update package to 829 4.Future and update all the samples * Update 4.Future to include the Regex Recognizer change * schema update * Migrate Visual Editor to new schema (#790) * update demo json * migrate to new keys * rename rule types * fix test cases related to key changes * Replace other appearances of 'rules' and '*Rule' to new schema (#792) * migrate 'rules' to 'events' * fix indexer key * replace 4 rule names to new format * fix * Update tests * Fix more samples * Update ActionsTests.cs * change designer -> composer * update form schema * update ui schema * update from code to reference events / actions * fix switch case test --- BotProject/CSharp/BotProject.csproj | 14 +- .../Dialogs/Microsoft.AdaptiveDialog.schema | 51 - .../Dialogs/Microsoft.AttachmentInput.schema | 25 - .../Dialogs/Microsoft.ChoiceInput.schema | 134 - .../Dialogs/Microsoft.ConfirmInput.schema | 101 - .../Dialogs/Microsoft.NumberInput.schema | 32 - .../Dialogs/Microsoft.OAuthInput.schema | 24 - .../Dialogs/Microsoft.TextInput.schema | 28 - .../Schemas/Dialogs/baseInputSchema.json | 86 - .../CSharp/Schemas/Dialogs/baseSchema.json | 33 - .../Microsoft.IActivityTemplate.schema | 11 - .../CSharp/Schemas/Microsoft.IDialog.schema | 11 - .../Microsoft.ILanguageGenerator.schema | 11 - .../Schemas/Microsoft.ILanguagePolicy.schema | 12 - .../Schemas/Microsoft.IRecognizer.schema | 11 - .../CSharp/Schemas/Microsoft.IRule.schema | 6 - .../Schemas/Microsoft.IRuleSelector.schema | 6 - .../Schemas/Microsoft.ITextTemplate.schema | 11 - .../Schemas/Microsoft.LanguagePolicy.schema | 14 - .../Microsoft.LuisRecognizer.schema | 24 - .../Microsoft.MultiLanguageRecognizer.schema | 26 - .../Microsoft.RegexRecognizer.schema | 20 - .../Schemas/Rules/Microsoft.EventRule.schema | 39 - .../Schemas/Rules/Microsoft.IntentRule.schema | 34 - .../Schemas/Rules/Microsoft.Rule.schema | 27 - .../Rules/Microsoft.UnknownIntentRule.schema | 9 - .../Steps/Microsoft.BeginDialog.schema | 28 - .../Steps/Microsoft.CancelAllDialogs.schema | 9 - .../Schemas/Steps/Microsoft.DebugBreak.schema | 7 - .../Steps/Microsoft.DeleteProperty.schema | 15 - .../Schemas/Steps/Microsoft.EditArray.schema | 43 - .../Schemas/Steps/Microsoft.EditSteps.schema | 33 - .../Schemas/Steps/Microsoft.EmitEvent.schema | 46 - .../Schemas/Steps/Microsoft.EndDialog.schema | 16 - .../Schemas/Steps/Microsoft.EndTurn.schema | 8 - .../Schemas/Steps/Microsoft.Foreach.schema | 41 - .../Steps/Microsoft.ForeachPage.schema | 41 - .../Steps/Microsoft.HttpRequest.schema | 66 - .../Steps/Microsoft.IfCondition.schema | 38 - .../Steps/Microsoft.InitProperty.schema | 28 - .../Schemas/Steps/Microsoft.LogStep.schema | 23 - .../Steps/Microsoft.RepeatDialog.schema | 9 - .../Steps/Microsoft.ReplaceDialog.schema | 27 - .../Steps/Microsoft.SendActivity.schema | 14 - .../Steps/Microsoft.SetProperty.schema | 27 - .../Steps/Microsoft.SwitchCondition.schema | 55 - .../Steps/Microsoft.TraceActivity.schema | 24 - BotProject/CSharp/Schemas/app.schema | 3698 --------- BotProject/CSharp/Schemas/sdk.schema | 7174 +++++++++++++++++ BotProject/CSharp/Tests/ActionsTests.cs | 248 + BotProject/CSharp/Tests/InputsTests.cs | 10 +- BotProject/CSharp/Tests/StepsTests.cs | 248 - .../integration/SwitchCondition.spec.js | 14 +- .../integration/VisualDesigner.spec.js | 8 +- .../packages/client/__tests__/constants.json | 48 +- .../client/src/store/reducer/index.ts | 2 +- .../packages/client/src/utils/dialogUtil.ts | 8 +- .../obiformeditor/demo/src/editorschema.json | 12 +- .../src/Form/fields/CasesField.tsx | 8 +- .../src/Form/fields/RulesField.tsx | 4 +- .../obiformeditor/src/schema/appschema.ts | 3318 ++++++-- .../obiformeditor/src/schema/types.d.ts | 14 +- .../obiformeditor/src/schema/uischema.ts | 173 +- .../extensions/obiformeditor/src/types.ts | 5 + .../components/nodes/RuleCard.test.tsx | 10 +- .../visual-designer/__tests__/index.test.tsx | 4 +- .../__tests__/transformers/todoBot.main.json | 248 +- .../transformers/transformForeach.test.ts | 22 +- .../transformIfCondition.test.tsx | 14 +- .../transformers/transformObiRules.test.tsx | 14 +- .../transformers/transformRootDialog.test.tsx | 10 +- .../transformSwitchCondition.test.tsx | 20 +- .../visual-designer/demo/src/index.js | 4 + .../visual-designer/demo/src/samples/index.js | 2 - .../demo/src/samples/todo/AddToDo.json | 141 +- .../demo/src/samples/todo/ClearToDos.json | 74 +- .../demo/src/samples/todo/DeleteToDo.json | 114 +- .../demo/src/samples/todo/ShowToDos.json | 86 +- .../src/samples/todo/SwitchCondition.json | 66 - .../demo/src/samples/todo/ToDoBot.main.json | 248 +- .../demo/src/stories/StepEditorDemo.js | 4 +- .../components/nodes/templates/RuleCard.tsx | 21 +- .../components/renderers/EventRenderer.tsx | 18 +- .../src/constants/ObiFieldNames.ts | 8 + .../visual-designer/src/constants/ObiTypes.ts | 12 +- .../src/transformers/transformForeach.ts | 6 +- .../src/transformers/transformIfCondition.ts | 5 +- .../src/transformers/transformObiRules.ts | 5 +- .../src/transformers/transformRootDialog.ts | 11 +- .../transformers/transformSwitchCondition.ts | 13 +- .../src/utils/outlineObiJson.ts | 9 +- .../lib/shared-menus/src/appschema.ts | 8 +- .../lib/shared-menus/src/dialogFactory.ts | 4 +- .../packages/lib/shared-menus/src/labelMap.ts | 8 +- .../mocks/samplebots/bot1/Main.dialog | 2 +- .../assets/projects/EchoBot/Main/Main.dialog | 4 +- .../assets/projects/EmptyBot/Main/Main.dialog | 2 +- .../assets/projects/ToDoBot/Main/Main.dialog | 16 +- .../packages/server/schemas/editor.schema | 8 +- Composer/packages/server/schemas/sdk.schema | 5443 ++++++++++--- .../src/models/bot/indexers/dialogIndexers.ts | 10 +- Composer/yarn.lock | 6 +- SampleBots/Cards_Samples/Main/Main.dialog | 26 +- .../ForeachPageStep/ForeachPageStep.dialog | 15 +- .../ForeachStep/ForeachStep.dialog | 13 +- .../IfCondition/IfCondition.dialog | 15 +- .../ControllingConversation/Main/Main.dialog | 95 +- .../RepeatDialog/RepeatDialog.dialog | 15 +- .../SwitchCondition/SwitchCondition.dialog | 13 +- .../AttachmentInput/AttachmentInput.dialog | 13 +- .../ChoiceInput/ChoiceInput.dialog | 7 +- .../ConfirmInput/ConfirmInput.dialog | 7 +- .../DateTimeInput/DateTimeInput.dialog | 9 +- SampleBots/Inputs_Samples/Main/Main.dialog | 102 +- .../NumberInput/NumberInput.dialog | 15 +- .../OAuthInput/OAuthInput.dialog | 11 +- .../Inputs_Samples/TextInput/TextInput.dialog | 9 +- SampleBots/Inputs_Samples/common/common.lg | 2 +- .../Interrupt/GetProfile/GetProfile.dialog | 25 +- SampleBots/Interrupt/Main/Main.dialog | 34 +- SampleBots/Interrupt/Main/Main.lu | 10 +- .../LGComposition/LGComposition.dialog | 11 +- .../LGWithParam/LGWithParam.dialog | 11 +- SampleBots/Message_Samples/Main/Main.dialog | 281 +- .../SimpleText/SimpleText.dialog | 9 +- .../TextWithLG/TextWithLG.dialog | 9 +- .../TextWithMemory/TextWithMemory.dialog | 9 +- .../DeleteContactInfo.dialog | 9 +- .../DeleteForwardInfo.dialog | 9 +- .../DeleteReplyInfo/DeleteReplyInfo.dialog | 9 +- .../DeleteSendInfo/DeleteSendInfo.dialog | 9 +- .../EmailPage/EmailPage.dialog | 46 +- .../FindMyContact/FindMyContact.dialog | 15 +- .../ForwardMyEmail/ForwardMyEmail.dialog | 13 +- .../ForwardMyEmailThroughGraph.dialog | 9 +- .../GetMyEmail/GetMyEmail.dialog | 15 +- .../GetMyEmailFromGraph.dialog | 9 +- .../GetMySentItems/GetMySentItems.dialog | 16 +- .../GetRecipientFromGraph.dialog | 10 +- .../GetSentItemsFromGraph.dialog | 10 +- .../Initialization/Initialization.dialog | 10 +- .../MyEmailBot_composer/Main/Main.dialog | 42 +- .../ReplyMyEmail/ReplyMyEmail.dialog | 16 +- .../ReplyMyEmailThroughGraph.dialog | 10 +- .../SendMyEmail/SendMyEmail.dialog | 14 +- .../SendMyEmailToGraph.dialog | 10 +- .../ShowMyCurrentEmail.dialog | 14 +- .../ShowMyEmail/ShowMyEmail.dialog | 22 +- .../ShowMyLastPage/ShowMyLastPage.dialog | 12 +- .../ShowMyNextPage/ShowMyNextPage.dialog | 10 +- .../ShowSentItems/ShowSentItems.dialog | 22 +- .../ShowSentLastPage/ShowSentLastPage.dialog | 12 +- .../ShowSentNextPage/ShowSentNextPage.dialog | 10 +- .../SignInToGraph/SignInToGraph.dialog | 12 +- .../AddReminder/AddReminder.dialog | 18 +- .../ClearUserData/ClearUserData.dialog | 10 +- .../DeleteReminder/DeleteReminder.dialog | 14 +- SampleBots/ReminderBot/Main/Main.dialog | 43 +- .../ShowReminder/ShowReminder.dialog | 22 +- SampleBots/ReminderBot/common/common.lg | 6 +- SampleBots/Sandwich/Main/Main.dialog | 33 +- .../OrderSandwich/OrderSandwich.dialog | 70 +- .../Steps.dialog => Actions/Actions.dialog} | 14 +- .../EditSteps.lu => Actions/Actions.lu} | 0 .../EditActions.dialog} | 22 +- .../Steps.lu => EditActions/EditActions.lu} | 0 .../Steps_Samples/EditArray/EditArray.dialog | 18 +- .../Steps_Samples/EmitEvent/EmitEvent.dialog | 42 +- .../Steps_Samples/EndDialog/EndDialog.dialog | 38 +- .../TellJoke/EndDialog.TellJoke.dialog | 25 +- .../Steps_Samples/EndTurn/EndTurn.dialog | 10 +- .../HttpRequest/HttpRequest.dialog | 19 +- .../IfCondition/IfCondition.dialog | 12 +- SampleBots/Steps_Samples/Main/Main.dialog | 165 +- .../RepeatDialog/RepeatDialog.dialog | 10 +- .../FortuneTellerDialog.dialog | 10 +- .../ReplaceDialog/Replace.dialog | 38 +- .../TellJokeDialog/TellJokeDialog.dialog | 10 +- .../SwitchCondition/SwitchCondition.dialog | 14 +- .../TraceAndLog/TraceAndLog.dialog | 18 +- SampleBots/Steps_Samples/common/common.lg | 12 +- SampleBots/ToDoBot/AddToDo/AddToDo.dialog | 19 +- .../ToDoBot/ClearToDos/ClearToDos.dialog | 14 +- .../ToDoBot/DeleteToDo/DeleteToDo.dialog | 16 +- SampleBots/ToDoBot/Main/Main.dialog | 80 +- SampleBots/ToDoBot/ShowToDos/ShowToDos.dialog | 14 +- SampleBots/ToDoLuisBot/AddItem/AddItem.dialog | 25 +- .../ToDoLuisBot/DeleteItem/DeleteItem.dialog | 28 +- SampleBots/ToDoLuisBot/Main/Main.dialog | 29 +- .../ToDoLuisBot/ShowItems/ShowItems.dialog | 20 +- 190 files changed, 16413 insertions(+), 8776 deletions(-) delete mode 100644 BotProject/CSharp/Schemas/Dialogs/Microsoft.AdaptiveDialog.schema delete mode 100644 BotProject/CSharp/Schemas/Dialogs/Microsoft.AttachmentInput.schema delete mode 100644 BotProject/CSharp/Schemas/Dialogs/Microsoft.ChoiceInput.schema delete mode 100644 BotProject/CSharp/Schemas/Dialogs/Microsoft.ConfirmInput.schema delete mode 100644 BotProject/CSharp/Schemas/Dialogs/Microsoft.NumberInput.schema delete mode 100644 BotProject/CSharp/Schemas/Dialogs/Microsoft.OAuthInput.schema delete mode 100644 BotProject/CSharp/Schemas/Dialogs/Microsoft.TextInput.schema delete mode 100644 BotProject/CSharp/Schemas/Dialogs/baseInputSchema.json delete mode 100644 BotProject/CSharp/Schemas/Dialogs/baseSchema.json delete mode 100644 BotProject/CSharp/Schemas/Microsoft.IActivityTemplate.schema delete mode 100644 BotProject/CSharp/Schemas/Microsoft.IDialog.schema delete mode 100644 BotProject/CSharp/Schemas/Microsoft.ILanguageGenerator.schema delete mode 100644 BotProject/CSharp/Schemas/Microsoft.ILanguagePolicy.schema delete mode 100644 BotProject/CSharp/Schemas/Microsoft.IRecognizer.schema delete mode 100644 BotProject/CSharp/Schemas/Microsoft.IRule.schema delete mode 100644 BotProject/CSharp/Schemas/Microsoft.IRuleSelector.schema delete mode 100644 BotProject/CSharp/Schemas/Microsoft.ITextTemplate.schema delete mode 100644 BotProject/CSharp/Schemas/Microsoft.LanguagePolicy.schema delete mode 100644 BotProject/CSharp/Schemas/Recognizers/Microsoft.LuisRecognizer.schema delete mode 100644 BotProject/CSharp/Schemas/Recognizers/Microsoft.MultiLanguageRecognizer.schema delete mode 100644 BotProject/CSharp/Schemas/Recognizers/Microsoft.RegexRecognizer.schema delete mode 100644 BotProject/CSharp/Schemas/Rules/Microsoft.EventRule.schema delete mode 100644 BotProject/CSharp/Schemas/Rules/Microsoft.IntentRule.schema delete mode 100644 BotProject/CSharp/Schemas/Rules/Microsoft.Rule.schema delete mode 100644 BotProject/CSharp/Schemas/Rules/Microsoft.UnknownIntentRule.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.BeginDialog.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.CancelAllDialogs.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.DebugBreak.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.DeleteProperty.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.EditArray.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.EditSteps.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.EmitEvent.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.EndDialog.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.EndTurn.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.Foreach.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.ForeachPage.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.HttpRequest.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.IfCondition.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.InitProperty.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.LogStep.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.RepeatDialog.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.ReplaceDialog.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.SendActivity.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.SetProperty.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.SwitchCondition.schema delete mode 100644 BotProject/CSharp/Schemas/Steps/Microsoft.TraceActivity.schema delete mode 100644 BotProject/CSharp/Schemas/app.schema create mode 100644 BotProject/CSharp/Schemas/sdk.schema create mode 100644 BotProject/CSharp/Tests/ActionsTests.cs delete mode 100644 BotProject/CSharp/Tests/StepsTests.cs delete mode 100644 Composer/packages/extensions/visual-designer/demo/src/samples/todo/SwitchCondition.json create mode 100644 Composer/packages/extensions/visual-designer/src/constants/ObiFieldNames.ts rename SampleBots/Steps_Samples/{Steps/Steps.dialog => Actions/Actions.dialog} (94%) rename SampleBots/Steps_Samples/{EditSteps/EditSteps.lu => Actions/Actions.lu} (100%) rename SampleBots/Steps_Samples/{EditSteps/EditSteps.dialog => EditActions/EditActions.dialog} (81%) rename SampleBots/Steps_Samples/{Steps/Steps.lu => EditActions/EditActions.lu} (100%) diff --git a/BotProject/CSharp/BotProject.csproj b/BotProject/CSharp/BotProject.csproj index f5ba749870..0164fcb07a 100644 --- a/BotProject/CSharp/BotProject.csproj +++ b/BotProject/CSharp/BotProject.csproj @@ -21,13 +21,13 @@ - - - - - - - + + + + + + + diff --git a/BotProject/CSharp/Schemas/Dialogs/Microsoft.AdaptiveDialog.schema b/BotProject/CSharp/Schemas/Dialogs/Microsoft.AdaptiveDialog.schema deleted file mode 100644 index 9bf8cdd524..0000000000 --- a/BotProject/CSharp/Schemas/Dialogs/Microsoft.AdaptiveDialog.schema +++ /dev/null @@ -1,51 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Adaptive Dialog", - "description": "Configures a data driven dialog via a collection of steps/dialogs.", - "type": "object", - "allOf": [ - { - "$ref": "./baseSchema.json" - }, - { - "properties": { - "autoEndDialog": { - "type": "boolean", - "title": "Auto End Dialog", - "description": "IF this is true the dialog will automatically end when there are no more steps to run. If this is false it is the responsbility of the author to call EndDialog at an appropriate time.", - "default": "true" - }, - "recognizer": { - "$type": "Microsoft.IRecognizer", - "title": "Recognizer", - "description": "Configured recognizer to generate intent and entites from user utterance" - }, - "generator": { - "$type": "Microsoft.ILanguageGenerator", - "title": "Language Generator", - "description": "Language generator to use for this dialog. (aka: LG file)" - }, - "selector": { - "$type": "Microsoft.IRuleSelector", - "title": "Selector", - "description": "Policy for how to select rule to execute next" - }, - "steps": { - "type": "array", - "description": "Initial Sequence of steps or dialogs to execute when dialog is started", - "items": { - "$type": "Microsoft.IDialog" - } - }, - "rules": { - "type": "array", - "description": "Array of rules to use to evaluate conversation", - "items": { - "$type": "Microsoft.IRule" - } - } - } - } - ] -} diff --git a/BotProject/CSharp/Schemas/Dialogs/Microsoft.AttachmentInput.schema b/BotProject/CSharp/Schemas/Dialogs/Microsoft.AttachmentInput.schema deleted file mode 100644 index 7221df30e4..0000000000 --- a/BotProject/CSharp/Schemas/Dialogs/Microsoft.AttachmentInput.schema +++ /dev/null @@ -1,25 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "ConfirmInput Dialog", - "description": "This represents a dialog which gathers a yes/no style responses", - "allOf": [ - { - "$ref": "./baseInputSchema.json" - }, - { - "properties": { - "outputFormat": { - "type": "string", - "enum": [ - "all", - "first" - ], - "title": "Output Format", - "description": "The attachment output format.", - "default": "first" - } - } - } - ], -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Dialogs/Microsoft.ChoiceInput.schema b/BotProject/CSharp/Schemas/Dialogs/Microsoft.ChoiceInput.schema deleted file mode 100644 index 534feeea92..0000000000 --- a/BotProject/CSharp/Schemas/Dialogs/Microsoft.ChoiceInput.schema +++ /dev/null @@ -1,134 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "ChoiceInput Dialog", - "description": "This represents a dialog which gathers a choice responses", - "type": "object", - "allOf": [ - { - "$ref": "./baseInputSchema.json" - }, - { - "properties": { - "outputFormat": { - "type": "string", - "enum": [ - "value", - "index" - ], - "title": "Output Format", - "description": "The output format.", - "default": "value" - }, - "choices": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/choice" - } - ] - }, - "appendChoices": { - "type": "boolean", - "title": "Append Choices", - "description": "Compose an output activity containing a set of choices", - "default": "true" - }, - "defaultLocale": { - "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" - }, - "style": { - "type": "string", - "enum": [ - "None", - "Auto", - "Inline", - "List", - "SuggestedAction", - "HeroCard" - ], - "title": "List Style", - "description": "The kind of choice list style to generate", - "default": "Auto" - }, - "choiceOptions": { - "type": "object", - "properties": { - "inlineSeparator": { - "type": "string", - "title": "Inline Seperator", - "description": "Character used to separate individual choices when there are more than 2 choices", - "default": ", " - }, - "inlineOr": { - "type": "string", - "title": "Inline Or", - "description": "Separator inserted between the choices when their are only 2 choices", - "default": " or " - }, - "inlineOrMore": { - "type": "string", - "title": "Inline OrMore", - "description": "Separator inserted between the last 2 choices when their are more than 2 choices.", - "default": ", or " - }, - "includeNumbers": { - "type": "boolean", - "title": "Include Numbers", - "description": "if true, inline and list style choices will be prefixed with the index of the choice.", - "default": true - } - } - }, - "recognizerOptions": { - "type": "object", - "properties": { - "noValue": { - "type": "boolean", - "title": "No Value", - "description": "If true, the choices value field will NOT be search over", - "default": false - }, - "noAction": { - "type": "boolean", - "title": "No Action", - "description": "If true, the the choices action.title field will NOT be searched over", - "default": false - } - } - } - } - } - ], - "definitions": { - "choice": { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "the value to return when selected." - }, - "action": { - "$ref": "#/definitions/CardAction", - "title": "Action", - "description": "Card action for the choice" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "the list of synonyms to recognize in addition to the value. This is optional.", - "items": { - "type": "string" - } - } - } - }, - "CardAction": { - "type": "object" - } - } -} diff --git a/BotProject/CSharp/Schemas/Dialogs/Microsoft.ConfirmInput.schema b/BotProject/CSharp/Schemas/Dialogs/Microsoft.ConfirmInput.schema deleted file mode 100644 index c7ea0db6a4..0000000000 --- a/BotProject/CSharp/Schemas/Dialogs/Microsoft.ConfirmInput.schema +++ /dev/null @@ -1,101 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "ConfirmInput Dialog", - "description": "This represents a dialog which gathers a yes/no style responses", - "type": "object", - "allOf": [ - { - "$ref": "./baseInputSchema.json" - }, - { - "properties": { - "defaultLocale": { - "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" - }, - "style": { - "type": "string", - "enum": [ - "None", - "Auto", - "Inline", - "List", - "SuggestedAction", - "HeroCard" - ], - "title": "List Style", - "description": "The kind of choice list style to generate", - "default": "Auto" - }, - "choiceOptions": { - "type": "object", - "properties": { - "inlineSeparator": { - "type": "string", - "title": "Inline Seperator", - "description": "Character used to separate individual choices when there are more than 2 choices", - "default": ", " - }, - "inlineOr": { - "type": "string", - "title": "Inline Or", - "description": "Separator inserted between the choices when their are only 2 choices", - "default": " or " - }, - "inlineOrMore": { - "type": "string", - "title": "Inline OrMore", - "description": "Separator inserted between the last 2 choices when their are more than 2 choices.", - "default": ", or " - }, - "includeNumbers": { - "type": "boolean", - "title": "Include Numbers", - "description": "if true, inline and list style choices will be prefixed with the index of the choice.", - "default": true - } - } - }, - "confirmChoices": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/choice" - } - ] - } - } - } - ], - "definitions": { - "choice": { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "the value to return when selected." - }, - "action": { - "$ref": "#/definitions/CardAction", - "title": "Action", - "description": "Card action for the choice" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "the list of synonyms to recognize in addition to the value. This is optional.", - "items": { - "type": "string" - } - } - } - }, - "CardAction": { - "type": "object" - } - } -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Dialogs/Microsoft.NumberInput.schema b/BotProject/CSharp/Schemas/Dialogs/Microsoft.NumberInput.schema deleted file mode 100644 index b78c777c06..0000000000 --- a/BotProject/CSharp/Schemas/Dialogs/Microsoft.NumberInput.schema +++ /dev/null @@ -1,32 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Number prompt", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "type": "object", - "allOf": [ - { - "$ref": "./baseInputSchema.json" - }, - { - "properties": { - "outputFormat": { - "type": "string", - "enum": [ - "float", - "interger" - ], - "title": "Output Format", - "description": "The NumberInput output format.", - "default": "float" - }, - "defaultLocale": { - "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" - } - } - } - ] -} diff --git a/BotProject/CSharp/Schemas/Dialogs/Microsoft.OAuthInput.schema b/BotProject/CSharp/Schemas/Dialogs/Microsoft.OAuthInput.schema deleted file mode 100644 index a1047f005c..0000000000 --- a/BotProject/CSharp/Schemas/Dialogs/Microsoft.OAuthInput.schema +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Number prompt", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "type": "object", - "allOf": [ - { - "$ref": "./baseInputSchema.json" - }, - { - "properties": { - "connectionName": { - "type": "string", - "title": "Connection Name", - "description": "The connection name set in Azure", - "examples": [ - "msgraphconnection" - ] - } - } - } - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Dialogs/Microsoft.TextInput.schema b/BotProject/CSharp/Schemas/Dialogs/Microsoft.TextInput.schema deleted file mode 100644 index 7aa37a06a3..0000000000 --- a/BotProject/CSharp/Schemas/Dialogs/Microsoft.TextInput.schema +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Text prompt", - "description": "This represents a dialog which gathers a text from the user", - "type": "object", - "allOf": [ - { - "$ref": "./baseInputSchema.json" - }, - { - "properties": { - "outputFormat": { - "type": "string", - "enum": [ - "none", - "trim", - "lowercase", - "uppercase" - ], - "title": "Output Format", - "description": "The TextInput output format.", - "default": "none" - } - } - } - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Dialogs/baseInputSchema.json b/BotProject/CSharp/Schemas/Dialogs/baseInputSchema.json deleted file mode 100644 index 8c0f031c0e..0000000000 --- a/BotProject/CSharp/Schemas/Dialogs/baseInputSchema.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "type": "object", - "allOf": [ - { - "$ref": "./baseSchema.json" - }, - { - "properties": { - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": [ - "What is your birth date?" - ] - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": [ - "Let's try again. What is your birth date?" - ] - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": [ - "No date was recognized" - ] - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "items": { - "$role": "expression" - }, - "title": "Validation Expressions", - "description": "Expressions to validate an input." - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input." - }, - "property": { - "$role": "memoryPath", - "title": "Value Property", - "description": "It is where you want to the putput of the input written to", - "examples": [ - "user.name" - ] - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated." - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [ false ] - }, - "allowInterruptions": { - "type": "boolean", - "title": "Allow Interruptions", - "description": "If set to true this will always consult the parent dialog whether it will be interupt or not.", - "default": true, - "examples": [ true ] - } - } - } - ] -} diff --git a/BotProject/CSharp/Schemas/Dialogs/baseSchema.json b/BotProject/CSharp/Schemas/Dialogs/baseSchema.json deleted file mode 100644 index 593ca8dec6..0000000000 --- a/BotProject/CSharp/Schemas/Dialogs/baseSchema.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/SchemaGen/packages/DialogSchema/src/dialogSchema.schema", - "type": "object", - "properties": { - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": [ - "value.birthday" - ] - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "additionalProperties": { - "type": "string" - }, - "examples": [ - "value.birthday" - ] - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": [ - "value.birthday" - ] - } - } -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Microsoft.IActivityTemplate.schema b/BotProject/CSharp/Schemas/Microsoft.IActivityTemplate.schema deleted file mode 100644 index 8b05fdaf1b..0000000000 --- a/BotProject/CSharp/Schemas/Microsoft.IActivityTemplate.schema +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "title": "Microsoft ActivityTemplate", - "description": "Union of components which implement the IActivityTemplate interface", - "$role": "unionType", - "oneOf": [ - { - "$role": "lg" - } - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Microsoft.IDialog.schema b/BotProject/CSharp/Schemas/Microsoft.IDialog.schema deleted file mode 100644 index d3495a5299..0000000000 --- a/BotProject/CSharp/Schemas/Microsoft.IDialog.schema +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "title": "Microsoft IDialog", - "description": "Union of components which implement the IDialog interface", - "$role": "unionType", - "oneOf": [ - { - "type": "string" - } - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Microsoft.ILanguageGenerator.schema b/BotProject/CSharp/Schemas/Microsoft.ILanguageGenerator.schema deleted file mode 100644 index f6ab3be95c..0000000000 --- a/BotProject/CSharp/Schemas/Microsoft.ILanguageGenerator.schema +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "title": "Microsoft ILanguageGenerator", - "description": "Union of components which implement the ILanguageGenerator interface", - "$role": "unionType", - "oneOf": [ - { - "type": "string" - } - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Microsoft.ILanguagePolicy.schema b/BotProject/CSharp/Schemas/Microsoft.ILanguagePolicy.schema deleted file mode 100644 index e4147a48bd..0000000000 --- a/BotProject/CSharp/Schemas/Microsoft.ILanguagePolicy.schema +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "title": "Microsoft Language Policy", - "description": "Union of components which implement the ILanguagePolicy interface", - "$role": "unionType", - "oneOf": [ - { - "type": "string", - "title": "The id of a language policy definition" - } - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Microsoft.IRecognizer.schema b/BotProject/CSharp/Schemas/Microsoft.IRecognizer.schema deleted file mode 100644 index a45e1cc24c..0000000000 --- a/BotProject/CSharp/Schemas/Microsoft.IRecognizer.schema +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "title": "Microsoft IRecognizer", - "description": "Union of components which implement the IRecognizer interface", - "$role": "unionType", - "oneOf": [ - { - "type": "string" - } - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Microsoft.IRule.schema b/BotProject/CSharp/Schemas/Microsoft.IRule.schema deleted file mode 100644 index 8b06eb8419..0000000000 --- a/BotProject/CSharp/Schemas/Microsoft.IRule.schema +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "title": "Microsoft IRule", - "description": "Union of components which implement the IRule interface", - "$role": "unionType" -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Microsoft.IRuleSelector.schema b/BotProject/CSharp/Schemas/Microsoft.IRuleSelector.schema deleted file mode 100644 index 4e518e0f10..0000000000 --- a/BotProject/CSharp/Schemas/Microsoft.IRuleSelector.schema +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "title": "Microsoft IRuleSelector", - "description": "Union of components which implement the IRuleSelector interface", - "$role": "unionType" -} diff --git a/BotProject/CSharp/Schemas/Microsoft.ITextTemplate.schema b/BotProject/CSharp/Schemas/Microsoft.ITextTemplate.schema deleted file mode 100644 index 606cf7bd5c..0000000000 --- a/BotProject/CSharp/Schemas/Microsoft.ITextTemplate.schema +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "title": "Microsoft TextTemplate", - "description": "Union of components which implement the ITextTemplate interface", - "$role": "unionType", - "oneOf": [ - { - "type": "string" - } - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Microsoft.LanguagePolicy.schema b/BotProject/CSharp/Schemas/Microsoft.LanguagePolicy.schema deleted file mode 100644 index 3a77bd6e1c..0000000000 --- a/BotProject/CSharp/Schemas/Microsoft.LanguagePolicy.schema +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.ILanguagePolicy)", - "title": "Language Policy", - "description": "This represents a dialog which gathers a DateTime in a specified range", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string", - "title": "language code like en-us" - } - } -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Recognizers/Microsoft.LuisRecognizer.schema b/BotProject/CSharp/Schemas/Recognizers/Microsoft.LuisRecognizer.schema deleted file mode 100644 index b9c1a69019..0000000000 --- a/BotProject/CSharp/Schemas/Recognizers/Microsoft.LuisRecognizer.schema +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IRecognizer)", - "title": "LUIS Recognizer", - "description": "LUIS recognizer.", - "type": "object", - "additionalProperties": false, - "properties": { - "applicationId": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "endpointKey": { - "type": "string" - } - }, - "required": [ - "applicationId", - "endpoint", - "endpointKey" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Recognizers/Microsoft.MultiLanguageRecognizer.schema b/BotProject/CSharp/Schemas/Recognizers/Microsoft.MultiLanguageRecognizer.schema deleted file mode 100644 index ce0bf69e51..0000000000 --- a/BotProject/CSharp/Schemas/Recognizers/Microsoft.MultiLanguageRecognizer.schema +++ /dev/null @@ -1,26 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IRecognizer)", - "title": "Multi Language Recognizer", - "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", - "type": "object", - "properties": { - "languagePolicy": { - "$type": "Microsoft.ILanguagePolicy", - "type": "object", - "title": "Language Policy", - "description": "Defines languages to try per language." - }, - "recognizers": { - "type": "object", - "title": "Recognizers", - "description": "Map of language -> IRecognizer", - "additionalProperties": { - "$type": "Microsoft.IRecognizer" - } - } - }, - "required": [ - "recognizers" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Recognizers/Microsoft.RegexRecognizer.schema b/BotProject/CSharp/Schemas/Recognizers/Microsoft.RegexRecognizer.schema deleted file mode 100644 index c4d9cf67bb..0000000000 --- a/BotProject/CSharp/Schemas/Recognizers/Microsoft.RegexRecognizer.schema +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IRecognizer)", - "title": "Regex Recognizer", - "description": "Recognizer which uses regex expressions to generate intents and entities.", - "type": "object", - "properties": { - "intents": { - "type": "object", - "title": "RegEx patterns to intents", - "description": "Pattern->Intents mappings", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "intents" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Rules/Microsoft.EventRule.schema b/BotProject/CSharp/Schemas/Rules/Microsoft.EventRule.schema deleted file mode 100644 index ffadfb1b53..0000000000 --- a/BotProject/CSharp/Schemas/Rules/Microsoft.EventRule.schema +++ /dev/null @@ -1,39 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$ref": "./Microsoft.Rule.schema#", - "title": "Event Rule", - "description": "Defines a rule for an event which is triggered by some source", - "type": "object", - "allOf": [ - { - "$ref": "./Microsoft.Rule.schema" - }, - { - "properties": { - "events": { - "type": "array", - "description": "Events to trigger this rule for", - "items": { - "type": "string", - "enum": [ - "beginDialog", - "consultDialog", - "cancelDialog", - "activityReceived", - "recognizedIntent", - "unknownIntent", - "stepsStarted", - "stepsSaved", - "stepsEnded", - "stepsResumed" - ] - } - } - }, - "required": [ - "events", - "steps" - ] - } - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Rules/Microsoft.IntentRule.schema b/BotProject/CSharp/Schemas/Rules/Microsoft.IntentRule.schema deleted file mode 100644 index 862487dd20..0000000000 --- a/BotProject/CSharp/Schemas/Rules/Microsoft.IntentRule.schema +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$ref": "./Microsoft.EventRule.schema#", - "$role": "unionType(Microsoft.IRule)", - "title": "Intent Rule", - "description": "This defines the steps to take when an Intent is recognized (and optionally entities)", - "type": "object", - "allOf": [ - { - "$ref": "./Microsoft.Rule.schema" - }, - { - "properties": { - "intent": { - "type": "string", - "title": "Intent", - "description": "Intent name to trigger on" - }, - "entities": { - "type": "array", - "title": "Entities", - "description": "The entities required to trigger this rule", - "items": { - "type": "string" - } - } - }, - "required": [ - "intent", - "steps" - ] - } - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Rules/Microsoft.Rule.schema b/BotProject/CSharp/Schemas/Rules/Microsoft.Rule.schema deleted file mode 100644 index 7da6f87b7b..0000000000 --- a/BotProject/CSharp/Schemas/Rules/Microsoft.Rule.schema +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IRule)", - "title": "Event Rule", - "description": "Defines a rule for an event which is triggered by some source", - "type": "object", - "properties": { - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ] - }, - "steps": { - "type": "array", - "description": "Sequence of steps or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog" - } - } - }, - "required": [ - "steps" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Rules/Microsoft.UnknownIntentRule.schema b/BotProject/CSharp/Schemas/Rules/Microsoft.UnknownIntentRule.schema deleted file mode 100644 index 7fda10ac04..0000000000 --- a/BotProject/CSharp/Schemas/Rules/Microsoft.UnknownIntentRule.schema +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$ref": "./Microsoft.Rule.schema#", - "title": "This defines the steps to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", - "description": "Defines a sequence of steps to take if there is no other trigger or plan operating", - "required": [ - "steps" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.BeginDialog.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.BeginDialog.schema deleted file mode 100644 index 62597a755f..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.BeginDialog.schema +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Begin Dialog", - "description": "Step which begins another dialog (and when that dialog is done, it will return the caller).", - "type": "object", - "properties": { - "dialog": { - "$type": "Microsoft.IDialog", - "title": "Dialog", - "description": "This is the dialog to call." - }, - "options": { - "type": "object", - "additionalProperties": true, - "title": "Options", - "description": "Options to pass to the dialog." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The property to bind to the dialog and store the result in", - "examples": [ - "user.name" - ] - } - } -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.CancelAllDialogs.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.CancelAllDialogs.schema deleted file mode 100644 index fc04fb75c5..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.CancelAllDialogs.schema +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Cancel All Dialogs", - "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", - "type": "object", - "properties": { - } -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.DebugBreak.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.DebugBreak.schema deleted file mode 100644 index 437dbf5e80..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.DebugBreak.schema +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Debugger Break Step", - "description": "If debugger is attached, do a debugger break at this point", - "type": "object" -} diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.DeleteProperty.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.DeleteProperty.schema deleted file mode 100644 index 441980f9f7..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.DeleteProperty.schema +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Delete Property", - "description": "This is a step which allows you to remove a property from memory", - "type": "object", - "properties": { - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The Memory property path to delete" - } - }, - "required": [ "property" ] -} diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.EditArray.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.EditArray.schema deleted file mode 100644 index cd488aa226..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.EditArray.schema +++ /dev/null @@ -1,43 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Edit Array Step", - "description": "This is a step which allows you to modify an array in memory", - "type": "object", - "properties": { - "changeType": { - "type": "string", - "title": "Change Type", - "description": "The array operation to perform", - "enum": [ - "Push", - "Pop", - "Take", - "Remove", - "Clear" - ] - }, - "arrayProperty": { - "$role": "memoryPath", - "title": "Array Property", - "description": "Memory expression of the array to manipulate." - }, - "resultProperty": { - "$role": "memoryPath", - "title": "Result Property", - "description": "Memory expression of the result of this action." - }, - "value": { - "$role": "expression", - "title": "Value of the Item", - "description": "Expression to evaluate.", - "examples": [ - "dialog.todo" - ] - } - }, - "required": [ - "changeType", - "arrayProperty" - ] -} diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.EditSteps.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.EditSteps.schema deleted file mode 100644 index b48444ddba..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.EditSteps.schema +++ /dev/null @@ -1,33 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "EditSteps Step", - "description": "Edit current dialog with changeType and Steps", - "type": "object", - "properties": { - "changeType": { - "type": "string", - "title": "Change Type", - "description": "The change type to apply to current dialog", - "enum": [ - "InsertSteps", - "InsertStepsBeforeTags", - "AppendSteps", - "EndSequence", - "ReplaceSequence" - ] - }, - "steps": { - "type": "array", - "items": { - "$type": "Microsoft.IDialog" - }, - "title": "Steps", - "description": "Steps to execute" - } - }, - "required": [ - "changeType", - "steps" - ] -} diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.EmitEvent.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.EmitEvent.schema deleted file mode 100644 index 4225692b75..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.EmitEvent.schema +++ /dev/null @@ -1,46 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Emit Event Step", - "description": "This is a step which allows you to emit an event", - "type": "object", - "properties": { - "eventName": { - "title": "Event Name", - "description": "The name of event to emit", - "anyOf": [ - { - "enum": [ - "beginDialog", - "consultDialog", - "cancelDialog", - "activityReceived", - "recognizedIntent", - "unknownIntent", - "stepsStarted", - "stepsSaved", - "stepsEnded", - "stepsResumed" - ] - }, - { - "type": "string" - } - ] - }, - "eventValue": { - "type": "object", - "title": "Event Value", - "description": "Optional value to emit along with the event", - "additionalProperties": true - }, - "bubbleEvent": { - "type": "boolean", - "title": "Bubble Event", - "description": "If true this event should propagate to parent dialogs" - } - }, - "required": [ - "eventName" - ] -} diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.EndDialog.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.EndDialog.schema deleted file mode 100644 index 8a85df4a2f..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.EndDialog.schema +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "End Dialog", - "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", - "type": "object", - "properties": { - "property": { - "$role": "memoryPath", - "description": "Specifies a path to memory should be returned as the result to the calling dialog.", - "examples": [ - "dialog.name" - ] - } - } -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.EndTurn.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.EndTurn.schema deleted file mode 100644 index 244ee85366..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.EndTurn.schema +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "End Turn", - "description": "End the current turn without ending the dialog.", - "type": "object" -} - diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.Foreach.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.Foreach.schema deleted file mode 100644 index b69cb4d19c..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.Foreach.schema +++ /dev/null @@ -1,41 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Foreach Step", - "description": "Step which executes steps per item in a collection.", - "type": "object", - "properties": { - "listProperty": { - "$role": "expression", - "title": "ListProperty", - "description": "Expression to evaluate.", - "examples": [ - "user.todoList" - ] - }, - "steps": { - "type": "array", - "items": { - "$type": "Microsoft.IDialog" - }, - "title": "Steps", - "description": "Steps to execute" - }, - "indexProperty": { - "$role": "memoryPath", - "title": "Index Property", - "description": "The memory path which refers to the index of the item", - "default": "dialog.index" - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "The memory path which refers to the value of the item", - "default": "dialog.value" - } - }, - "required": [ - "listProperty", - "steps" - ] -} diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.ForeachPage.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.ForeachPage.schema deleted file mode 100644 index d144050181..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.ForeachPage.schema +++ /dev/null @@ -1,41 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Foreach Page Step", - "description": "Step which execute steps per item page in a collection.", - "type": "object", - "properties": { - "listProperty": { - "$role": "expression", - "title": "ListProperty", - "description": "Expression to evaluate.", - "examples": [ - "user.todoList" - ] - }, - "steps": { - "type": "array", - "items": { - "$type": "Microsoft.IDialog" - }, - "title": "Steps", - "description": "Steps to execute" - }, - "pageSize": { - "type": "integer", - "title": "Page Size", - "description": "The page size", - "default": 10 - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "The memory path which refers to the value of the item", - "default": "dialog.value" - } - }, - "required": [ - "listProperty", - "steps" - ] -} diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.HttpRequest.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.HttpRequest.schema deleted file mode 100644 index c41983abfb..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.HttpRequest.schema +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Http Request", - "description": "This is a step which replaces the current dialog with the target dialog", - "properties": { - "method": { - "type": "string", - "title": "Method", - "description": "The HTTP method to use", - "enum": [ - "GET", - "POST" - ], - "examples": [ - "GET", - "POST" - ] - }, - "url": { - "type": "string", - "title": "Url", - "description": "The url to call (supports data binding)", - "examples": [ - "https://contoso.com" - ] - }, - "body": { - "type": "object", - "title": "Body", - "description": "The body to send in the HTTP call (supports data binding)", - "additionalProperties": true - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The property to store the result of the HTTP call in (as object or string)", - "examples": [ - "dialog.contosodata" - ] - }, - "headers": { - "type": "object", - "additionProperties": true, - "title": "Http headers", - "description": "Http headers to include with the HTTP request (supports data binding)" - }, - "responseTypes": { - "type": "string", - "title": "Response Types", - "description": "Describes how to parse the response from the http request. If Activity or Activities, then the they will be sent to the user.", - "enum": [ - "none", - "json", - "activity", - "activities" - ], - "default": "json" - } - }, - "required": [ - "url", - "entity" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.IfCondition.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.IfCondition.schema deleted file mode 100644 index cf81b00196..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.IfCondition.schema +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "If Condition Step", - "description": "Step which conditionally decides which step to execute next.", - "type": "object", - "properties": { - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Expression to evaluate.", - "examples": [ - "user.age > 3" - ] - }, - "steps": { - "type": "array", - "items": { - "$type": "Microsoft.IDialog" - }, - "title": "Steps", - "description": "Step to execute if condition is true." - }, - "elseSteps": { - "type": "array", - "items": { - "$type": "Microsoft.IDialog" - }, - "title": "Else Steps", - "description": "Step to execute if condition is false." - } - - }, - "required": [ - "condition", - "steps" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.InitProperty.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.InitProperty.schema deleted file mode 100644 index 26e660fff9..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.InitProperty.schema +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Init Property Step", - "description": "This step allows you to innitial a property to either an object or array", - "type": "object", - "properties": { - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The property to set the value of", - "examples": [ "user.age" ] - }, - "type": { - "type": "string", - "title": "type", - "description": "type of value to set the property to, object or array.", - "enum": [ - "object", - "array" - ] - } - }, - "required": [ - "property", - "type" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.LogStep.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.LogStep.schema deleted file mode 100644 index f2043cf5ef..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.LogStep.schema +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Log Step", - "description": "This is a step which writes to console.log and optional creates a TraceActivity around a text binding", - "type": "object", - "properties": { - "text": { - "type": "string", - "title": "Text", - "description": "LG Expression to write to the log" - }, - "traceActivity": { - "type": "boolean", - "title": "Send Trace Activity", - "description": "Set to true to also create a TraceActivity with the log text", - "default": false - } - }, - "required": [ - "text" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.RepeatDialog.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.RepeatDialog.schema deleted file mode 100644 index 7c4b60c44f..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.RepeatDialog.schema +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Repeat Dialog", - "description": "This is a step which repeats the current dialog with the same dialog.", - "properties": { - } -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.ReplaceDialog.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.ReplaceDialog.schema deleted file mode 100644 index a90b030f8c..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.ReplaceDialog.schema +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Replace Dialog", - "description": "This is a step which replaces the current dialog with the target dialog", - "properties": { - "dialog": { - "$type": "Microsoft.IDialog", - "title": "Dialog", - "description": "This is the dialog to switch to." - }, - "options": { - "type": "object", - "additionalProperties": true, - "title": "Options", - "description": "Options to pass to the dialog." - }, - "property": { - "$role": "memoryPath", - "description": "The property to bind to the dialog and store the result in", - "examples": [ - "user.name" - ] - } - } -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.SendActivity.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.SendActivity.schema deleted file mode 100644 index 0ee505b3f1..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.SendActivity.schema +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Send Activity Step", - "description": "This is a step which sends an activity to the user", - "type": "object", - "properties": { - "activity": { - "$type": "Microsoft.IActivityTemplate", - "title": "Activity", - "description": "Activity to send to the user" - } - } -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.SetProperty.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.SetProperty.schema deleted file mode 100644 index eceacbee3c..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.SetProperty.schema +++ /dev/null @@ -1,27 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Set Property Step", - "description": "This step allows you to set memory to the value of an expression", - "type": "object", - "properties": { - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The property to set the value of", - "examples": [ "user.age" ] - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "Expression against memory to use to get the value.", - "examples": [ - "dialog.result" - ] - } - }, - "required": [ - "property", - "value" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.SwitchCondition.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.SwitchCondition.schema deleted file mode 100644 index dad0d7c27c..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.SwitchCondition.schema +++ /dev/null @@ -1,55 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Switch Step", - "description": "Step which conditionally decides which step to execute next.", - "type": "object", - "properties": { - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Expression to evaluate to switch on.", - "examples": [ - "user.age > 3" - ] - }, - "cases": { - "type": "array", - "title": "Cases", - "desc": "Cases to evaluate against condition", - "items": { - "type": "object", - "properties": { - "value": { - "$role": "expression", - "title": "Value", - "description": "Value which must match the condition property" - }, - "steps": { - "type": "array", - "items": { - "$type": "Microsoft.IDialog" - }, - "title": "Steps", - "description": "Steps to execute if case is equal to condition" - } - }, - "required": [ - "value", - "case" - ] - } - }, - "default": { - "type": "array", - "items": { - "$type": "Microsoft.IDialog" - }, - "title": "Default", - "description": "Step to execute if no case is equal to condition" - } - }, - "required": [ - "condition" - ] -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/Steps/Microsoft.TraceActivity.schema b/BotProject/CSharp/Schemas/Steps/Microsoft.TraceActivity.schema deleted file mode 100644 index 5a0747321d..0000000000 --- a/BotProject/CSharp/Schemas/Steps/Microsoft.TraceActivity.schema +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$role": "unionType(Microsoft.IDialog)", - "title": "Trace Activity Step", - "description": "This is a step which sends an TraceActivity to the transcript", - "type": "object", - "properties": { - "name": { - "type": "string", - "title": "Name", - "description": "Name of the trace activity" - }, - "valueType": { - "type": "string", - "title": "Value Type", - "description": "Value type of the trace activity" - }, - "value": { - "$role": "memoryPath", - "title": "Value", - "description": "Property path to memory object to send as the value of the trace activity" - } - } -} \ No newline at end of file diff --git a/BotProject/CSharp/Schemas/app.schema b/BotProject/CSharp/Schemas/app.schema deleted file mode 100644 index 20e9c84ee4..0000000000 --- a/BotProject/CSharp/Schemas/app.schema +++ /dev/null @@ -1,3698 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", - "$id": "app.schema", - "type": "object", - "title": "Component types", - "description": "These are all of the types that can be created by the loader.", - "oneOf": [ - { - "title": "Microsoft.AdaptiveDialog", - "description": "Configures a data driven dialog via a collection of steps/dialogs.", - "$ref": "#/definitions/Microsoft.AdaptiveDialog" - }, - { - "title": "Microsoft.AttachmentInput", - "description": "This represents a dialog which gathers an attachment such as image or music", - "$ref": "#/definitions/Microsoft.AttachmentInput" - }, - { - "title": "Microsoft.BeginDialog", - "description": "Step which begins another dialog (and when that dialog is done, it will return the caller).", - "$ref": "#/definitions/Microsoft.BeginDialog" - }, - { - "title": "Microsoft.CancelAllDialogs", - "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", - "$ref": "#/definitions/Microsoft.CancelAllDialogs" - }, - { - "title": "Microsoft.ChoiceInput", - "description": "This represents a dialog which gathers a choice responses", - "$ref": "#/definitions/Microsoft.ChoiceInput" - }, - { - "title": "Microsoft.ConfirmInput", - "description": "This represents a dialog which gathers a yes/no style responses", - "$ref": "#/definitions/Microsoft.ConfirmInput" - }, - { - "title": "Microsoft.DateTimeInput", - "description": "This represents a dialog which gathers Date or Time or DateTime from the user", - "$ref": "#/definitions/Microsoft.DateTimeInput" - }, - { - "title": "Microsoft.DebugBreak", - "description": "If debugger is attached, do a debugger break at this point", - "$ref": "#/definitions/Microsoft.DebugBreak" - }, - { - "title": "Microsoft.DeleteProperty", - "description": "This is a step which allows you to remove a property from memory", - "$ref": "#/definitions/Microsoft.DeleteProperty" - }, - { - "title": "Microsoft.EditArray", - "description": "This is a step which allows you to modify an array in memory", - "$ref": "#/definitions/Microsoft.EditArray" - }, - { - "title": "Microsoft.EditSteps", - "description": "Edit current dialog with changeType and Steps", - "$ref": "#/definitions/Microsoft.EditSteps" - }, - { - "title": "Microsoft.EmitEvent", - "description": "This is a step which allows you to emit an event", - "$ref": "#/definitions/Microsoft.EmitEvent" - }, - { - "title": "Microsoft.EndDialog", - "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", - "$ref": "#/definitions/Microsoft.EndDialog" - }, - { - "title": "Microsoft.EndTurn", - "description": "End the current turn without ending the dialog.", - "$ref": "#/definitions/Microsoft.EndTurn" - }, - { - "title": "Microsoft.EventRule", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.EventRule" - }, - { - "title": "Microsoft.Foreach", - "description": "Step which executes steps per item in a collection.", - "$ref": "#/definitions/Microsoft.Foreach" - }, - { - "title": "Microsoft.ForeachPage", - "description": "Step which execute steps per item page in a collection.", - "$ref": "#/definitions/Microsoft.ForeachPage" - }, - { - "title": "Microsoft.HttpRequest", - "description": "This is a step which replaces the current dialog with the target dialog", - "$ref": "#/definitions/Microsoft.HttpRequest" - }, - { - "title": "Microsoft.IfCondition", - "description": "Step which conditionally decides which step to execute next.", - "$ref": "#/definitions/Microsoft.IfCondition" - }, - { - "title": "Microsoft.InitProperty", - "description": "This step allows you to innitial a property to either an object or array", - "$ref": "#/definitions/Microsoft.InitProperty" - }, - { - "title": "Microsoft.IntentRule", - "description": "This defines the steps to take when an Intent is recognized (and optionally entities)", - "$ref": "#/definitions/Microsoft.IntentRule" - }, - { - "title": "Microsoft.LanguagePolicy", - "description": "This represents a dialog which gathers a DateTime in a specified range", - "$ref": "#/definitions/Microsoft.LanguagePolicy" - }, - { - "title": "Microsoft.LogStep", - "description": "This is a step which writes to console.log and optional creates a TraceActivity around a text binding", - "$ref": "#/definitions/Microsoft.LogStep" - }, - { - "title": "Microsoft.LuisRecognizer", - "description": "LUIS recognizer.", - "$ref": "#/definitions/Microsoft.LuisRecognizer" - }, - { - "title": "Microsoft.MultiLanguageRecognizer", - "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", - "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" - }, - { - "title": "Microsoft.NumberInput", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "$ref": "#/definitions/Microsoft.NumberInput" - }, - { - "title": "Microsoft.OAuthInput", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "$ref": "#/definitions/Microsoft.OAuthInput" - }, - { - "title": "Microsoft.RegexRecognizer", - "description": "Recognizer which uses regex expressions to generate intents and entities.", - "$ref": "#/definitions/Microsoft.RegexRecognizer" - }, - { - "title": "Microsoft.RepeatDialog", - "description": "This is a step which repeats the current dialog with the same dialog.", - "$ref": "#/definitions/Microsoft.RepeatDialog" - }, - { - "title": "Microsoft.ReplaceDialog", - "description": "This is a step which replaces the current dialog with the target dialog", - "$ref": "#/definitions/Microsoft.ReplaceDialog" - }, - { - "title": "Microsoft.Rule", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.Rule" - }, - { - "title": "Microsoft.SendActivity", - "description": "This is a step which sends an activity to the user", - "$ref": "#/definitions/Microsoft.SendActivity" - }, - { - "title": "Microsoft.SetProperty", - "description": "This step allows you to set memory to the value of an expression", - "$ref": "#/definitions/Microsoft.SetProperty" - }, - { - "title": "Microsoft.SwitchCondition", - "description": "Step which conditionally decides which step to execute next.", - "$ref": "#/definitions/Microsoft.SwitchCondition" - }, - { - "title": "Microsoft.TextInput", - "description": "This represents a dialog which gathers a text from the user", - "$ref": "#/definitions/Microsoft.TextInput" - }, - { - "title": "Microsoft.TraceActivity", - "description": "This is a step which sends an TraceActivity to the transcript", - "$ref": "#/definitions/Microsoft.TraceActivity" - }, - { - "title": "Microsoft.UnknownIntentRule", - "description": "Defines a sequence of steps to take if there is no other trigger or plan operating", - "$ref": "#/definitions/Microsoft.UnknownIntentRule" - } - ], - "definitions": { - "Microsoft.AdaptiveDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Adaptive Dialog", - "description": "Configures a data driven dialog via a collection of steps/dialogs.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.AdaptiveDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": ["value.birthday"], - "additionalProperties": { - "type": "string" - } - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "autoEndDialog": { - "type": "boolean", - "title": "Auto End Dialog", - "description": "If this is true the dialog will automatically end when there are no more steps to run. If this is false it is the responsbility of the author to call EndDialog at an appropriate time.", - "default": "true" - }, - "defaultResultProperty": { - "type": "string", - "title": "Default Result Property", - "description": "Property path to the memory to return as the result of this dialog ending because AutoEndDialog is true and there are no more steps to execute.", - "default": "dialog.result" - }, - "recognizer": { - "$type": "Microsoft.IRecognizer", - "title": "Recognizer", - "description": "Configured recognizer to generate intent and entites from user utterance", - "$ref": "#/definitions/Microsoft.IRecognizer" - }, - "generator": { - "$type": "Microsoft.ILanguageGenerator", - "title": "Language Generator", - "description": "Language generator to use for this dialog. (aka: LG file)", - "$ref": "#/definitions/Microsoft.ILanguageGenerator" - }, - "selector": { - "$type": "Microsoft.IRuleSelector", - "title": "Selector", - "description": "Policy for how to select rule to execute next", - "$ref": "#/definitions/Microsoft.IRuleSelector" - }, - "steps": { - "type": "array", - "description": "Initial Sequence of steps or dialogs to execute when dialog is started", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "rules": { - "type": "array", - "description": "Array of rules to use to evaluate conversation", - "items": { - "$type": "Microsoft.IRule", - "$ref": "#/definitions/Microsoft.IRule" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.AttachmentInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "AttachmentInput Dialog", - "description": "This represents a dialog which gathers an attachment such as image or music", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.AttachmentInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": ["value.birthday"], - "additionalProperties": { - "type": "string" - } - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": ["What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": ["Let's try again. What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": ["No date was recognized"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [3] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "It is where you want to the putput of the input written to", - "examples": ["user.name"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [false] - }, - "allowInterruptions": { - "type": "boolean", - "title": "Allow Interruptions", - "description": "If set to true this will always consult the parent dialog whether it will be interupt or not.", - "default": false, - "examples": [true] - }, - "outputFormat": { - "type": "string", - "enum": ["all", "first"], - "title": "Output Format", - "description": "The attachment output format.", - "default": "first" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.BeginDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Begin Dialog", - "description": "Step which begins another dialog (and when that dialog is done, it will return the caller).", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.BeginDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "dialog": { - "$type": "Microsoft.IDialog", - "title": "Dialog", - "description": "This is the dialog to call.", - "$ref": "#/definitions/Microsoft.IDialog" - }, - "options": { - "type": "object", - "title": "Options", - "description": "Options to pass to the dialog.", - "additionalProperties": true - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The property to bind to the dialog and store the result in", - "examples": ["user.name"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.CancelAllDialogs": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Cancel All Dialogs", - "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.CancelAllDialogs" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.ChoiceInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "ChoiceInput Dialog", - "description": "This represents a dialog which gathers a choice responses", - "type": "object", - "definitions": { - "choice": { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "the value to return when selected." - }, - "action": { - "title": "Action", - "description": "Card action for the choice", - "type": "object" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "the list of synonyms to recognize in addition to the value. This is optional.", - "items": { - "type": "string" - } - } - } - }, - "cardAction": { - "type": "object" - } - }, - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ChoiceInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": ["value.birthday"], - "additionalProperties": { - "type": "string" - } - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": ["What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": ["Let's try again. What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": ["No date was recognized"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [3] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "It is where you want to the putput of the input written to", - "examples": ["user.name"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [false] - }, - "allowInterruptions": { - "type": "boolean", - "title": "Allow Interruptions", - "description": "If set to true this will always consult the parent dialog whether it will be interupt or not.", - "default": false, - "examples": [true] - }, - "outputFormat": { - "type": "string", - "enum": ["value", "index"], - "title": "Output Format", - "description": "The output format.", - "default": "value" - }, - "choices": { - "type": "array", - "items": [ - { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "the value to return when selected." - }, - "action": { - "title": "Action", - "description": "Card action for the choice", - "type": "object" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "the list of synonyms to recognize in addition to the value. This is optional.", - "items": { - "type": "string" - } - } - } - } - ] - }, - "appendChoices": { - "type": "boolean", - "title": "Append Choices", - "description": "Compose an output activity containing a set of choices", - "default": "true" - }, - "defaultLocale": { - "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" - }, - "style": { - "type": "string", - "enum": [ - "None", - "Auto", - "Inline", - "List", - "SuggestedAction", - "HeroCard" - ], - "title": "List Style", - "description": "The kind of choice list style to generate", - "default": "Auto" - }, - "choiceOptions": { - "type": "object", - "properties": { - "inlineSeparator": { - "type": "string", - "title": "Inline Seperator", - "description": "Character used to separate individual choices when there are more than 2 choices", - "default": ", " - }, - "inlineOr": { - "type": "string", - "title": "Inline Or", - "description": "Separator inserted between the choices when their are only 2 choices", - "default": " or " - }, - "inlineOrMore": { - "type": "string", - "title": "Inline OrMore", - "description": "Separator inserted between the last 2 choices when their are more than 2 choices.", - "default": ", or " - }, - "includeNumbers": { - "type": "boolean", - "title": "Include Numbers", - "description": "If true, inline and list style choices will be prefixed with the index of the choice.", - "default": true - } - } - }, - "recognizerOptions": { - "type": "object", - "properties": { - "noValue": { - "type": "boolean", - "title": "No Value", - "description": "If true, the choices value field will NOT be search over", - "default": false - }, - "noAction": { - "type": "boolean", - "title": "No Action", - "description": "If true, the the choices action.title field will NOT be searched over", - "default": false - } - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.ConfirmInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "ConfirmInput Dialog", - "description": "This represents a dialog which gathers a yes/no style responses", - "type": "object", - "definitions": { - "choice": { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "the value to return when selected." - }, - "action": { - "title": "Action", - "description": "Card action for the choice", - "type": "object" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "The list of synonyms to recognize in addition to the value. This is optional.", - "items": { - "type": "string" - } - } - } - }, - "CardAction": { - "type": "object" - } - }, - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ConfirmInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": ["value.birthday"], - "additionalProperties": { - "type": "string" - } - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": ["What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": ["Let's try again. What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": ["No date was recognized"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [3] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "It is where you want to the putput of the input written to", - "examples": ["user.name"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [false] - }, - "allowInterruptions": { - "type": "boolean", - "title": "Allow Interruptions", - "description": "If set to true this will always consult the parent dialog whether it will be interupt or not.", - "default": false, - "examples": [true] - }, - "defaultLocale": { - "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" - }, - "style": { - "type": "string", - "enum": [ - "None", - "Auto", - "Inline", - "List", - "SuggestedAction", - "HeroCard" - ], - "title": "List Style", - "description": "The kind of choice list style to generate", - "default": "Auto" - }, - "choiceOptions": { - "type": "object", - "properties": { - "inlineSeparator": { - "type": "string", - "title": "Inline Seperator", - "description": "Character used to separate individual choices when there are more than 2 choices", - "default": ", " - }, - "inlineOr": { - "type": "string", - "title": "Inline Or", - "description": "Separator inserted between the choices when their are only 2 choices", - "default": " or " - }, - "inlineOrMore": { - "type": "string", - "title": "Inline OrMore", - "description": "Separator inserted between the last 2 choices when their are more than 2 choices.", - "default": ", or " - }, - "includeNumbers": { - "type": "boolean", - "title": "Include Numbers", - "description": "If true, inline and list style choices will be prefixed with the index of the choice.", - "default": true - } - } - }, - "confirmChoices": { - "type": "array", - "items": [ - { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "the value to return when selected." - }, - "action": { - "title": "Action", - "description": "Card action for the choice", - "type": "object" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "The list of synonyms to recognize in addition to the value. This is optional.", - "items": { - "type": "string" - } - } - } - } - ] - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.DateTimeInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "DateTimeInput Dialog", - "description": "This represents a dialog which gathers Date or Time or DateTime from the user", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.DateTimeInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": ["value.birthday"], - "additionalProperties": { - "type": "string" - } - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": ["What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": ["Let's try again. What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": ["No date was recognized"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [3] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "It is where you want to the putput of the input written to", - "examples": ["user.name"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [false] - }, - "allowInterruptions": { - "type": "boolean", - "title": "Allow Interruptions", - "description": "If set to true this will always consult the parent dialog whether it will be interupt or not.", - "default": false, - "examples": [true] - }, - "defaultLocale": { - "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.DebugBreak": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Debugger Break Step", - "description": "If debugger is attached, do a debugger break at this point", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.DebugBreak" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.DeleteProperty": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Delete Property", - "description": "This is a step which allows you to remove a property from memory", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.DeleteProperty" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The Memory property path to delete", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["property", "$type"] - } - ] - }, - "Microsoft.EditArray": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Edit Array Step", - "description": "This is a step which allows you to modify an array in memory", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EditArray" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "changeType": { - "type": "string", - "title": "Change Type", - "description": "The array operation to perform", - "enum": ["Push", "Pop", "Take", "Remove", "Clear"] - }, - "arrayProperty": { - "$role": "memoryPath", - "title": "Array Property", - "description": "Memory expression of the array to manipulate.", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "resultProperty": { - "$role": "memoryPath", - "title": "Result Property", - "description": "Memory expression of the result of this action.", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "value": { - "$role": "expression", - "title": "Value of the Item", - "description": "Expression to evaluate.", - "examples": ["dialog.todo"], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["changeType", "arrayProperty", "$type"] - } - ] - }, - "Microsoft.EditSteps": { - "$role": "unionType(Microsoft.IDialog)", - "title": "EditSteps Step", - "description": "Edit current dialog with changeType and Steps", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EditSteps" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "changeType": { - "type": "string", - "title": "Change Type", - "description": "The change type to apply to current dialog", - "enum": [ - "InsertSteps", - "InsertStepsBeforeTags", - "AppendSteps", - "EndSequence", - "ReplaceSequence" - ] - }, - "steps": { - "type": "array", - "title": "Steps", - "description": "Steps to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["changeType", "steps", "$type"] - } - ] - }, - "Microsoft.EmitEvent": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Emit Event Step", - "description": "This is a step which allows you to emit an event", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EmitEvent" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "eventName": { - "title": "Event Name", - "description": "The name of event to emit", - "anyOf": [ - { - "enum": [ - "beginDialog", - "consultDialog", - "cancelDialog", - "activityReceived", - "recognizedIntent", - "unknownIntent", - "stepsStarted", - "stepsSaved", - "stepsEnded", - "stepsResumed" - ] - }, - { - "type": "string" - } - ] - }, - "eventValue": { - "type": "object", - "title": "Event Value", - "description": "Optional value to emit along with the event", - "additionalProperties": true - }, - "bubbleEvent": { - "type": "boolean", - "title": "Bubble Event", - "description": "If true this event should propagate to parent dialogs" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["eventName", "$type"] - } - ] - }, - "Microsoft.EndDialog": { - "$role": "unionType(Microsoft.IDialog)", - "title": "End Dialog", - "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EndDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "description": "Specifies a path to memory should be returned as the result to the calling dialog.", - "examples": ["dialog.name"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.EndTurn": { - "$role": "unionType(Microsoft.IDialog)", - "title": "End Turn", - "description": "End the current turn without ending the dialog.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EndTurn" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.EventRule": { - "title": "Event Rule", - "description": "Defines a rule for an event which is triggered by some source", - "type": "object", - "$role": "unionType(Microsoft.IRule)", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EventRule" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": ["user.vip == true"], - "type": "string" - }, - "steps": { - "type": "array", - "description": "Sequence of steps or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "events": { - "type": "array", - "description": "Events to trigger this rule for", - "items": { - "type": "string", - "enum": [ - "beginDialog", - "consultDialog", - "cancelDialog", - "activityReceived", - "recognizedIntent", - "unknownIntent", - "stepsStarted", - "stepsSaved", - "stepsEnded", - "stepsResumed" - ] - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["events", "steps", "$type"] - } - ] - }, - "Microsoft.Foreach": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Foreach Step", - "description": "Step which executes steps per item in a collection.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.Foreach" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "listProperty": { - "$role": "expression", - "title": "ListProperty", - "description": "Expression to evaluate.", - "examples": ["user.todoList"], - "type": "string" - }, - "steps": { - "type": "array", - "title": "Steps", - "description": "Steps to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "indexProperty": { - "$role": "memoryPath", - "title": "Index Property", - "description": "The memory path which refers to the index of the item", - "default": "dialog.index", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "The memory path which refers to the value of the item", - "default": "dialog.value", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["listProperty", "steps", "$type"] - } - ] - }, - "Microsoft.ForeachPage": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Foreach Page Step", - "description": "Step which execute steps per item page in a collection.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ForeachPage" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "listProperty": { - "$role": "expression", - "title": "ListProperty", - "description": "Expression to evaluate.", - "examples": ["user.todoList"], - "type": "string" - }, - "steps": { - "type": "array", - "title": "Steps", - "description": "Steps to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "pageSize": { - "type": "integer", - "title": "Page Size", - "description": "The page size", - "default": 10 - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "The memory path which refers to the value of the item", - "default": "dialog.value", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["listProperty", "steps", "$type"] - } - ] - }, - "Microsoft.HttpRequest": { - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Http Request", - "description": "This is a step which replaces the current dialog with the target dialog", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.HttpRequest" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "method": { - "type": "string", - "title": "Method", - "description": "The HTTP method to use", - "enum": ["GET", "POST"], - "examples": ["GET", "POST"] - }, - "url": { - "type": "string", - "title": "Url", - "description": "The url to call (supports data binding)", - "examples": ["https://contoso.com"] - }, - "body": { - "type": "object", - "title": "Body", - "description": "The body to send in the HTTP call (supports data binding)", - "additionalProperties": true - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The property to store the result of the HTTP call in (as object or string)", - "examples": ["dialog.contosodata"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "headers": { - "type": "object", - "additionProperties": true, - "title": "Http headers", - "description": "Http headers to include with the HTTP request (supports data binding)" - }, - "responseTypes": { - "type": "string", - "title": "Response Types", - "description": "Describes how to parse the response from the http request. If Activity or Activities, then the they will be sent to the user.", - "enum": ["none", "json", "activity", "activities"], - "default": "json" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["url", "entity", "$type"] - } - ] - }, - "Microsoft.IActivityTemplate": { - "title": "Microsoft ActivityTemplate", - "description": "Union of components which implement the IActivityTemplate interface", - "$role": "unionType", - "oneOf": [ - { - "$role": "lg", - "type": "string", - "description": "String is used for language generation.", - "title": "string" - } - ] - }, - "Microsoft.IDialog": { - "title": "Microsoft IDialog", - "description": "Union of components which implement the IDialog interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.AdaptiveDialog", - "description": "Configures a data driven dialog via a collection of steps/dialogs.", - "$ref": "#/definitions/Microsoft.AdaptiveDialog" - }, - { - "title": "Microsoft.AttachmentInput", - "description": "This represents a dialog which gathers an attachment such as image or music", - "$ref": "#/definitions/Microsoft.AttachmentInput" - }, - { - "title": "Microsoft.BeginDialog", - "description": "Step which begins another dialog (and when that dialog is done, it will return the caller).", - "$ref": "#/definitions/Microsoft.BeginDialog" - }, - { - "title": "Microsoft.CancelAllDialogs", - "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", - "$ref": "#/definitions/Microsoft.CancelAllDialogs" - }, - { - "title": "Microsoft.ChoiceInput", - "description": "This represents a dialog which gathers a choice responses", - "$ref": "#/definitions/Microsoft.ChoiceInput" - }, - { - "title": "Microsoft.ConfirmInput", - "description": "This represents a dialog which gathers a yes/no style responses", - "$ref": "#/definitions/Microsoft.ConfirmInput" - }, - { - "title": "Microsoft.DateTimeInput", - "description": "This represents a dialog which gathers Date or Time or DateTime from the user", - "$ref": "#/definitions/Microsoft.DateTimeInput" - }, - { - "title": "Microsoft.DebugBreak", - "description": "If debugger is attached, do a debugger break at this point", - "$ref": "#/definitions/Microsoft.DebugBreak" - }, - { - "title": "Microsoft.DeleteProperty", - "description": "This is a step which allows you to remove a property from memory", - "$ref": "#/definitions/Microsoft.DeleteProperty" - }, - { - "title": "Microsoft.EditArray", - "description": "This is a step which allows you to modify an array in memory", - "$ref": "#/definitions/Microsoft.EditArray" - }, - { - "title": "Microsoft.EditSteps", - "description": "Edit current dialog with changeType and Steps", - "$ref": "#/definitions/Microsoft.EditSteps" - }, - { - "title": "Microsoft.EmitEvent", - "description": "This is a step which allows you to emit an event", - "$ref": "#/definitions/Microsoft.EmitEvent" - }, - { - "title": "Microsoft.EndDialog", - "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", - "$ref": "#/definitions/Microsoft.EndDialog" - }, - { - "title": "Microsoft.EndTurn", - "description": "End the current turn without ending the dialog.", - "$ref": "#/definitions/Microsoft.EndTurn" - }, - { - "title": "Microsoft.Foreach", - "description": "Step which executes steps per item in a collection.", - "$ref": "#/definitions/Microsoft.Foreach" - }, - { - "title": "Microsoft.ForeachPage", - "description": "Step which execute steps per item page in a collection.", - "$ref": "#/definitions/Microsoft.ForeachPage" - }, - { - "title": "Microsoft.HttpRequest", - "description": "This is a step which replaces the current dialog with the target dialog", - "$ref": "#/definitions/Microsoft.HttpRequest" - }, - { - "title": "Microsoft.IfCondition", - "description": "Step which conditionally decides which step to execute next.", - "$ref": "#/definitions/Microsoft.IfCondition" - }, - { - "title": "Microsoft.InitProperty", - "description": "This step allows you to innitial a property to either an object or array", - "$ref": "#/definitions/Microsoft.InitProperty" - }, - { - "title": "Microsoft.LogStep", - "description": "This is a step which writes to console.log and optional creates a TraceActivity around a text binding", - "$ref": "#/definitions/Microsoft.LogStep" - }, - { - "title": "Microsoft.NumberInput", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "$ref": "#/definitions/Microsoft.NumberInput" - }, - { - "title": "Microsoft.OAuthInput", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "$ref": "#/definitions/Microsoft.OAuthInput" - }, - { - "title": "Microsoft.RepeatDialog", - "description": "This is a step which repeats the current dialog with the same dialog.", - "$ref": "#/definitions/Microsoft.RepeatDialog" - }, - { - "title": "Microsoft.ReplaceDialog", - "description": "This is a step which replaces the current dialog with the target dialog", - "$ref": "#/definitions/Microsoft.ReplaceDialog" - }, - { - "title": "Microsoft.SendActivity", - "description": "This is a step which sends an activity to the user", - "$ref": "#/definitions/Microsoft.SendActivity" - }, - { - "title": "Microsoft.SetProperty", - "description": "This step allows you to set memory to the value of an expression", - "$ref": "#/definitions/Microsoft.SetProperty" - }, - { - "title": "Microsoft.SwitchCondition", - "description": "Step which conditionally decides which step to execute next.", - "$ref": "#/definitions/Microsoft.SwitchCondition" - }, - { - "title": "Microsoft.TextInput", - "description": "This represents a dialog which gathers a text from the user", - "$ref": "#/definitions/Microsoft.TextInput" - }, - { - "title": "Microsoft.TraceActivity", - "description": "This is a step which sends an TraceActivity to the transcript", - "$ref": "#/definitions/Microsoft.TraceActivity" - }, - { - "type": "string", - "title": "string" - } - ] - }, - "Microsoft.ILanguageGenerator": { - "title": "Microsoft ILanguageGenerator", - "description": "Union of components which implement the ILanguageGenerator interface", - "$role": "unionType", - "oneOf": [ - { - "type": "string", - "title": "string" - } - ] - }, - "Microsoft.ILanguagePolicy": { - "title": "Microsoft Language Policy", - "description": "Union of components which implement the ILanguagePolicy interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.LanguagePolicy", - "description": "This represents a dialog which gathers a DateTime in a specified range", - "$ref": "#/definitions/Microsoft.LanguagePolicy" - }, - { - "type": "string", - "title": "string" - } - ] - }, - "Microsoft.IRecognizer": { - "title": "Microsoft IRecognizer", - "description": "Union of components which implement the IRecognizer interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.LuisRecognizer", - "description": "LUIS recognizer.", - "$ref": "#/definitions/Microsoft.LuisRecognizer" - }, - { - "title": "Microsoft.MultiLanguageRecognizer", - "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", - "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" - }, - { - "title": "Microsoft.RegexRecognizer", - "description": "Recognizer which uses regex expressions to generate intents and entities.", - "$ref": "#/definitions/Microsoft.RegexRecognizer" - }, - { - "type": "string", - "title": "string" - } - ] - }, - "Microsoft.IRule": { - "title": "Microsoft IRule", - "description": "Union of components which implement the IRule interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.EventRule", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.EventRule" - }, - { - "title": "Microsoft.IntentRule", - "description": "This defines the steps to take when an Intent is recognized (and optionally entities)", - "$ref": "#/definitions/Microsoft.IntentRule" - }, - { - "title": "Microsoft.Rule", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.Rule" - }, - { - "title": "Microsoft.UnknownIntentRule", - "description": "Defines a sequence of steps to take if there is no other trigger or plan operating", - "$ref": "#/definitions/Microsoft.UnknownIntentRule" - } - ] - }, - "Microsoft.IRuleSelector": { - "title": "Microsoft IRuleSelector", - "description": "Union of components which implement the IRuleSelector interface", - "$role": "unionType" - }, - "Microsoft.ITextTemplate": { - "title": "Microsoft TextTemplate", - "description": "Union of components which implement the ITextTemplate interface", - "$role": "unionType", - "oneOf": [ - { - "type": "string", - "title": "string" - } - ] - }, - "Microsoft.IfCondition": { - "$role": "unionType(Microsoft.IDialog)", - "title": "If Condition Step", - "description": "Step which conditionally decides which step to execute next.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.IfCondition" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Expression to evaluate.", - "examples": ["user.age > 3"], - "type": "string" - }, - "steps": { - "type": "array", - "title": "Steps", - "description": "Step to execute if condition is true.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "elseSteps": { - "type": "array", - "title": "Else Steps", - "description": "Step to execute if condition is false.", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["condition", "steps", "$type"] - } - ] - }, - "Microsoft.InitProperty": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Init Property Step", - "description": "This step allows you to innitial a property to either an object or array", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.InitProperty" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The property to set the value of", - "examples": ["user.age"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "type": { - "type": "string", - "title": "type", - "description": "type of value to set the property to, object or array.", - "enum": ["object", "array"] - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["property", "type", "$type"] - } - ] - }, - "Microsoft.IntentRule": { - "$role": "unionType(Microsoft.IRule)", - "title": "Intent Rule", - "description": "This defines the steps to take when an Intent is recognized (and optionally entities)", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.IntentRule" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": ["user.vip == true"], - "type": "string" - }, - "steps": { - "type": "array", - "description": "Sequence of steps or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "intent": { - "type": "string", - "title": "Intent", - "description": "Intent name to trigger on" - }, - "entities": { - "type": "array", - "title": "Entities", - "description": "The entities required to trigger this rule", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["intent", "steps", "$type"] - } - ] - }, - "Microsoft.LanguagePolicy": { - "$role": "unionType(Microsoft.ILanguagePolicy)", - "title": "Language Policy", - "description": "This represents a dialog which gathers a DateTime in a specified range", - "type": "object", - "additionalProperties": false, - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.LanguagePolicy" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - } - }, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.LogStep": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Log Step", - "description": "This is a step which writes to console.log and optional creates a TraceActivity around a text binding", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.LogStep" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "text": { - "type": "string", - "title": "Text", - "description": "LG Expression to write to the log" - }, - "traceActivity": { - "type": "boolean", - "title": "Send Trace Activity", - "description": "Set to true to also create a TraceActivity with the log text", - "default": false - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["text", "$type"] - } - ] - }, - "Microsoft.LuisRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "LUIS Recognizer", - "description": "LUIS recognizer.", - "type": "object", - "additionalProperties": false, - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.LuisRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "applicationId": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "endpointKey": { - "type": "string" - } - }, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["applicationId", "endpoint", "endpointKey", "$type"] - } - ] - }, - "Microsoft.MultiLanguageRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "Multi Language Recognizer", - "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.MultiLanguageRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "languagePolicy": { - "$type": "Microsoft.ILanguagePolicy", - "type": "object", - "title": "Language Policy", - "description": "Defines languages to try per language.", - "$ref": "#/definitions/Microsoft.ILanguagePolicy" - }, - "recognizers": { - "type": "object", - "title": "Recognizers", - "description": "Map of language -> IRecognizer", - "additionalProperties": { - "$type": "Microsoft.IRecognizer", - "$ref": "#/definitions/Microsoft.IRecognizer" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["recognizers", "$type"] - } - ] - }, - "Microsoft.NumberInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "NumberInput Dialog", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.NumberInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": ["value.birthday"], - "additionalProperties": { - "type": "string" - } - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": ["What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": ["Let's try again. What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": ["No date was recognized"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [3] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "It is where you want to the putput of the input written to", - "examples": ["user.name"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [false] - }, - "allowInterruptions": { - "type": "boolean", - "title": "Allow Interruptions", - "description": "If set to true this will always consult the parent dialog whether it will be interupt or not.", - "default": false, - "examples": [true] - }, - "outputFormat": { - "type": "string", - "enum": ["float", "interger"], - "title": "Output Format", - "description": "The NumberInput output format.", - "default": "float" - }, - "defaultLocale": { - "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.OAuthInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Number prompt", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OAuthInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": ["value.birthday"], - "additionalProperties": { - "type": "string" - } - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "connectionName": { - "type": "string", - "title": "Connection Name", - "description": "The connection name set in Azure", - "examples": ["msgraphconnection"] - }, - "text": { - "type": "string", - "title": "Text", - "description": "The text shown in the OAuthPrompt.", - "examples": ["Please log in msgraph service first."] - }, - "title": { - "type": "string", - "title": "Title", - "description": "The title shown in the OAuthPrompt.", - "examples": ["Log in"] - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.RegexRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "Regex Recognizer", - "description": "Recognizer which uses regex expressions to generate intents and entities.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.RegexRecognizer" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "intents": { - "type": "object", - "title": "RegEx patterns to intents", - "description": "Pattern->Intents mappings", - "additionalProperties": { - "type": "string" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["intents", "$type"] - } - ] - }, - "Microsoft.RepeatDialog": { - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Repeat Dialog", - "description": "This is a step which repeats the current dialog with the same dialog.", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.RepeatDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.ReplaceDialog": { - "$role": "unionType(Microsoft.IDialog)", - "type": "object", - "title": "Replace Dialog", - "description": "This is a step which replaces the current dialog with the target dialog", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ReplaceDialog" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "dialog": { - "$type": "Microsoft.IDialog", - "title": "Dialog", - "description": "This is the dialog to switch to.", - "$ref": "#/definitions/Microsoft.IDialog" - }, - "options": { - "type": "object", - "title": "Options", - "description": "Options to pass to the dialog.", - "additionalProperties": true - }, - "property": { - "$role": "memoryPath", - "description": "The property to bind to the dialog and store the result in", - "examples": ["user.name"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.Rule": { - "$role": "unionType(Microsoft.IRule)", - "title": "Event Rule", - "description": "Defines a rule for an event which is triggered by some source", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.Rule" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": ["user.vip == true"], - "type": "string" - }, - "steps": { - "type": "array", - "description": "Sequence of steps or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["steps", "$type"] - } - ] - }, - "Microsoft.SendActivity": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Send Activity Step", - "description": "This is a step which sends an activity to the user", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.SendActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "activity": { - "$type": "Microsoft.IActivityTemplate", - "title": "Activity", - "description": "Activity to send to the user", - "$ref": "#/definitions/Microsoft.IActivityTemplate" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.SetProperty": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Set Property Step", - "description": "This step allows you to set memory to the value of an expression", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.SetProperty" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The property to set the value of", - "examples": ["user.age"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "Expression against memory to use to get the value.", - "examples": ["dialog.result"], - "type": "string" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["property", "value", "$type"] - } - ] - }, - "Microsoft.SwitchCondition": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Switch Step", - "description": "Step which conditionally decides which step to execute next.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.SwitchCondition" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "condition": { - "$role": "expression", - "title": "Condition", - "description": "Expression to evaluate to switch on.", - "examples": ["user.age > 3"], - "type": "string" - }, - "cases": { - "type": "array", - "title": "Cases", - "desc": "Cases to evaluate against condition", - "items": { - "type": "object", - "required": ["value", "case"], - "properties": { - "value": { - "$role": "expression", - "title": "Value", - "description": "Value which must match the condition property", - "type": "string" - }, - "steps": { - "type": "array", - "title": "Steps", - "description": "Steps to execute if case is equal to condition", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - } - } - }, - "default": { - "type": "array", - "title": "Default", - "description": "Step to execute if no case is equal to condition", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["condition", "$type"] - } - ] - }, - "Microsoft.TextInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "TextInput Dialog", - "description": "This represents a dialog which gathers a text from the user", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.TextInput" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": ["value.birthday"], - "additionalProperties": { - "type": "string" - } - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": ["value.birthday"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": ["What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": ["Let's try again. What is your birth date?"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": ["No date was recognized"], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [3] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "It is where you want to the putput of the input written to", - "examples": ["user.name"], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", - "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [false] - }, - "allowInterruptions": { - "type": "boolean", - "title": "Allow Interruptions", - "description": "If set to true this will always consult the parent dialog whether it will be interupt or not.", - "default": false, - "examples": [true] - }, - "outputFormat": { - "type": "string", - "enum": ["none", "trim", "lowercase", "uppercase"], - "title": "Output Format", - "description": "The TextInput output format.", - "default": "none" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.TraceActivity": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Trace Activity Step", - "description": "This is a step which sends an TraceActivity to the transcript", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.TraceActivity" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "name": { - "type": "string", - "title": "Name", - "description": "Name of the trace activity" - }, - "valueType": { - "type": "string", - "title": "Value Type", - "description": "Value type of the trace activity" - }, - "value": { - "$role": "memoryPath", - "title": "Value", - "description": "Property path to memory object to send as the value of the trace activity", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["$type"] - } - ] - }, - "Microsoft.UnknownIntentRule": { - "title": "This defines the steps to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", - "description": "Defines a sequence of steps to take if there is no other trigger or plan operating", - "$role": "unionType(Microsoft.IRule)", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.UnknownIntentRule" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" - }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", - "type": "object", - "description": "Extra information for the Bot Framework Composer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": ["user.vip == true"], - "type": "string" - }, - "steps": { - "type": "array", - "description": "Sequence of steps or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": ["$copy"] - }, - { - "title": "Type", - "required": ["steps", "$type"] - } - ] - } - } -} diff --git a/BotProject/CSharp/Schemas/sdk.schema b/BotProject/CSharp/Schemas/sdk.schema new file mode 100644 index 0000000000..c071385d77 --- /dev/null +++ b/BotProject/CSharp/Schemas/sdk.schema @@ -0,0 +1,7174 @@ +{ + "$schema": "https://raw.githubusercontent.com/microsoft/botbuilder-dotnet/4.Future/schemas/component.schema", + "$id": "sdk.schema", + "type": "object", + "title": "Component types", + "description": "These are all of the types that can be created by the loader.", + "oneOf": [ + { + "title": "Microsoft.AdaptiveDialog", + "description": "Configures a data driven dialog via a collection of actions/dialogs.", + "$ref": "#/definitions/Microsoft.AdaptiveDialog" + }, + { + "title": "Microsoft.AgeEntityRecognizer", + "description": "Recognizer which recognizes age.", + "$ref": "#/definitions/Microsoft.AgeEntityRecognizer" + }, + { + "title": "Microsoft.AttachmentInput", + "description": "This represents a dialog which gathers an attachment such as image or music", + "$ref": "#/definitions/Microsoft.AttachmentInput" + }, + { + "title": "Microsoft.BeginDialog", + "description": "Action which begins another dialog (and when that dialog is done, it will return the caller).", + "$ref": "#/definitions/Microsoft.BeginDialog" + }, + { + "title": "Microsoft.CancelAllDialogs", + "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", + "$ref": "#/definitions/Microsoft.CancelAllDialogs" + }, + { + "title": "Microsoft.ChoiceInput", + "description": "This represents a dialog which gathers a choice responses", + "$ref": "#/definitions/Microsoft.ChoiceInput" + }, + { + "title": "Microsoft.ConditionalSelector", + "description": "Use a rule selector based on a condition", + "$ref": "#/definitions/Microsoft.ConditionalSelector" + }, + { + "title": "Microsoft.ConfirmInput", + "description": "This represents a dialog which gathers a yes/no style responses", + "$ref": "#/definitions/Microsoft.ConfirmInput" + }, + { + "title": "Microsoft.ConfirmationEntityRecognizer", + "description": "Recognizer which recognizes confirmation choices (yes/no).", + "$ref": "#/definitions/Microsoft.ConfirmationEntityRecognizer" + }, + { + "title": "Microsoft.CurrencyEntityRecognizer", + "description": "Recognizer which recognizes currency.", + "$ref": "#/definitions/Microsoft.CurrencyEntityRecognizer" + }, + { + "title": "Microsoft.DateTimeEntityRecognizer", + "description": "Recognizer which recognizes dates and time fragments.", + "$ref": "#/definitions/Microsoft.DateTimeEntityRecognizer" + }, + { + "title": "Microsoft.DateTimeInput", + "description": "This represents a dialog which gathers Date or Time or DateTime from the user", + "$ref": "#/definitions/Microsoft.DateTimeInput" + }, + { + "title": "Microsoft.DebugBreak", + "description": "If debugger is attached, do a debugger break at this point", + "$ref": "#/definitions/Microsoft.DebugBreak" + }, + { + "title": "Microsoft.DeleteProperty", + "description": "This is a action which allows you to remove a property from memory", + "$ref": "#/definitions/Microsoft.DeleteProperty" + }, + { + "title": "Microsoft.DimensionEntityRecognizer", + "description": "Recognizer which recognizes dimension.", + "$ref": "#/definitions/Microsoft.DimensionEntityRecognizer" + }, + { + "title": "Microsoft.EditActions", + "description": "Edit current dialog with changeType and Actions", + "$ref": "#/definitions/Microsoft.EditActions" + }, + { + "title": "Microsoft.EditArray", + "description": "This is a action which allows you to modify an array in memory", + "$ref": "#/definitions/Microsoft.EditArray" + }, + { + "title": "Microsoft.EmailEntityRecognizer", + "description": "Recognizer which recognizes email.", + "$ref": "#/definitions/Microsoft.EmailEntityRecognizer" + }, + { + "title": "Microsoft.EmitEvent", + "description": "This is a action which allows you to emit an event", + "$ref": "#/definitions/Microsoft.EmitEvent" + }, + { + "title": "Microsoft.EndDialog", + "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", + "$ref": "#/definitions/Microsoft.EndDialog" + }, + { + "title": "Microsoft.EndTurn", + "description": "End the current turn without ending the dialog.", + "$ref": "#/definitions/Microsoft.EndTurn" + }, + { + "title": "Microsoft.FirstSelector", + "description": "Selector for first true rule", + "$ref": "#/definitions/Microsoft.FirstSelector" + }, + { + "title": "Microsoft.Foreach", + "description": "Action which executes actions per item in a collection.", + "$ref": "#/definitions/Microsoft.Foreach" + }, + { + "title": "Microsoft.ForeachPage", + "description": "Action which execute actions per item page in a collection.", + "$ref": "#/definitions/Microsoft.ForeachPage" + }, + { + "title": "Microsoft.GuidEntityRecognizer", + "description": "Recognizer which recognizes guids.", + "$ref": "#/definitions/Microsoft.GuidEntityRecognizer" + }, + { + "title": "Microsoft.HashtagEntityRecognizer", + "description": "Recognizer which recognizes Hashtags.", + "$ref": "#/definitions/Microsoft.HashtagEntityRecognizer" + }, + { + "title": "Microsoft.HttpRequest", + "description": "This is a action which replaces the current dialog with the target dialog", + "$ref": "#/definitions/Microsoft.HttpRequest" + }, + { + "title": "Microsoft.IfCondition", + "description": "Action which conditionally decides which action to execute next.", + "$ref": "#/definitions/Microsoft.IfCondition" + }, + { + "title": "Microsoft.InitProperty", + "description": "This action allows you to innitial a property to either an object or array", + "$ref": "#/definitions/Microsoft.InitProperty" + }, + { + "title": "Microsoft.IpEntityRecognizer", + "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", + "$ref": "#/definitions/Microsoft.IpEntityRecognizer" + }, + { + "title": "Microsoft.LanguagePolicy", + "description": "This represents a dialog which gathers a DateTime in a specified range", + "$ref": "#/definitions/Microsoft.LanguagePolicy" + }, + { + "title": "Microsoft.LogAction", + "description": "This is a action which writes to console.log and optional creates a TraceActivity around a text binding", + "$ref": "#/definitions/Microsoft.LogAction" + }, + { + "title": "Microsoft.LuisRecognizer", + "description": "LUIS recognizer.", + "$ref": "#/definitions/Microsoft.LuisRecognizer" + }, + { + "title": "Microsoft.MentionEntityRecognizer", + "description": "Recognizer which recognizes @Mentions", + "$ref": "#/definitions/Microsoft.MentionEntityRecognizer" + }, + { + "title": "Microsoft.MostSpecificSelector", + "description": "Select most specific true events with optional additional selector", + "$ref": "#/definitions/Microsoft.MostSpecificSelector" + }, + { + "title": "Microsoft.MultiLanguageRecognizer", + "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", + "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" + }, + { + "title": "Microsoft.NumberEntityRecognizer", + "description": "Recognizer which recognizes numbers.", + "$ref": "#/definitions/Microsoft.NumberEntityRecognizer" + }, + { + "title": "Microsoft.NumberInput", + "description": "This represents a dialog which gathers a decimal number in a specified range", + "$ref": "#/definitions/Microsoft.NumberInput" + }, + { + "title": "Microsoft.NumberRangeEntityRecognizer", + "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", + "$ref": "#/definitions/Microsoft.NumberRangeEntityRecognizer" + }, + { + "title": "Microsoft.OAuthInput", + "description": "This represents a dialog which gathers an OAuth token from user", + "$ref": "#/definitions/Microsoft.OAuthInput" + }, + { + "title": "Microsoft.OnActivity", + "description": "This defines the actions to take when an custom activity is received", + "$ref": "#/definitions/Microsoft.OnActivity" + }, + { + "title": "Microsoft.OnBeginDialog", + "description": "This defines the actions to take when a dialog is started via BeginDialog()", + "$ref": "#/definitions/Microsoft.OnBeginDialog" + }, + { + "title": "Microsoft.OnConversationUpdateActivity", + "description": "This defines the actions to take when an ConversationUpdate activity is received", + "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" + }, + { + "title": "Microsoft.OnDialogEvent", + "description": "Defines a rule for an event which is triggered by some source", + "$ref": "#/definitions/Microsoft.OnDialogEvent" + }, + { + "title": "Microsoft.OnEndOfConversationActivity", + "description": "This defines the actions to take when an EndOfConversation Activity is received", + "$ref": "#/definitions/Microsoft.OnEndOfConversationActivity" + }, + { + "title": "Microsoft.OnEvent", + "description": "Defines a rule for an event which is triggered by some source", + "$ref": "#/definitions/Microsoft.OnEvent" + }, + { + "title": "Microsoft.OnEventActivity", + "description": "This defines the actions to take when an Event activity is received", + "$ref": "#/definitions/Microsoft.OnEventActivity" + }, + { + "title": "Microsoft.OnHandoffActivity", + "description": "This defines the actions to take when an Handoff activity is received", + "$ref": "#/definitions/Microsoft.OnHandoffActivity" + }, + { + "title": "Microsoft.OnIntent", + "description": "This defines the actions to take when an Intent is recognized (and optionally entities)", + "$ref": "#/definitions/Microsoft.OnIntent" + }, + { + "title": "Microsoft.OnInvokeActivity", + "description": "This defines the actions to take when an Invoke activity is received", + "$ref": "#/definitions/Microsoft.OnInvokeActivity" + }, + { + "title": "Microsoft.OnMessageActivity", + "description": "This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation", + "$ref": "#/definitions/Microsoft.OnMessageActivity" + }, + { + "title": "Microsoft.OnMessageDeleteActivity", + "description": "This defines the actions to take when an MessageDelete activity is received", + "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" + }, + { + "title": "Microsoft.OnMessageReactionActivity", + "description": "This defines the actions to take when a MessageReaction activity is received", + "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" + }, + { + "title": "Microsoft.OnMessageUpdateActivity", + "description": "This defines the actions to take when an MessageUpdate ctivity is received", + "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" + }, + { + "title": "Microsoft.OnTypingActivity", + "description": "This defines the actions to take when a Typing activity is received", + "$ref": "#/definitions/Microsoft.OnTypingActivity" + }, + { + "title": "Microsoft.OnUnknownIntent", + "description": "This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", + "$ref": "#/definitions/Microsoft.OnUnknownIntent" + }, + { + "title": "Microsoft.OrdinalEntityRecognizer", + "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", + "$ref": "#/definitions/Microsoft.OrdinalEntityRecognizer" + }, + { + "title": "Microsoft.PercentageEntityRecognizer", + "description": "Recognizer which recognizes percentages.", + "$ref": "#/definitions/Microsoft.PercentageEntityRecognizer" + }, + { + "title": "Microsoft.PhoneNumberEntityRecognizer", + "description": "Recognizer which recognizes phone numbers.", + "$ref": "#/definitions/Microsoft.PhoneNumberEntityRecognizer" + }, + { + "title": "Microsoft.QnAMakerDialog", + "description": "This represents a dialog which is driven by a call to QnAMaker.ai knowledge base", + "$ref": "#/definitions/Microsoft.QnAMakerDialog" + }, + { + "title": "Microsoft.RandomSelector", + "description": "Select most specific true rule", + "$ref": "#/definitions/Microsoft.RandomSelector" + }, + { + "title": "Microsoft.RegexEntityRecognizer", + "description": "Recognizer which recognizes patterns of input based on regex.", + "$ref": "#/definitions/Microsoft.RegexEntityRecognizer" + }, + { + "title": "Microsoft.RegexRecognizer", + "description": "Recognizer which uses regex expressions to generate intents and entities.", + "$ref": "#/definitions/Microsoft.RegexRecognizer" + }, + { + "title": "Microsoft.RepeatDialog", + "description": "This is a action which repeats the current dialog with the same dialog.", + "$ref": "#/definitions/Microsoft.RepeatDialog" + }, + { + "title": "Microsoft.ReplaceDialog", + "description": "This is a action which replaces the current dialog with the target dialog", + "$ref": "#/definitions/Microsoft.ReplaceDialog" + }, + { + "title": "Microsoft.SendActivity", + "description": "This is a action which sends an activity to the user", + "$ref": "#/definitions/Microsoft.SendActivity" + }, + { + "title": "Microsoft.SetProperty", + "description": "This action allows you to set memory to the value of an expression", + "$ref": "#/definitions/Microsoft.SetProperty" + }, + { + "title": "Microsoft.SwitchCondition", + "description": "Action which conditionally decides which action to execute next.", + "$ref": "#/definitions/Microsoft.SwitchCondition" + }, + { + "title": "Microsoft.TemperatureEntityRecognizer", + "description": "Recognizer which recognizes temperatures.", + "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" + }, + { + "title": "Microsoft.TextInput", + "description": "This represents a dialog which gathers a text from the user", + "$ref": "#/definitions/Microsoft.TextInput" + }, + { + "title": "Microsoft.TraceActivity", + "description": "This is a action which sends an TraceActivity to the transcript", + "$ref": "#/definitions/Microsoft.TraceActivity" + }, + { + "title": "Microsoft.TrueSelector", + "description": "Selector for all true events", + "$ref": "#/definitions/Microsoft.TrueSelector" + }, + { + "title": "Microsoft.UrlEntityRecognizer", + "description": "Recognizer which recognizes urls (example: http://bing.com)", + "$ref": "#/definitions/Microsoft.UrlEntityRecognizer" + } + ], + "definitions": { + "Microsoft.AdaptiveDialog": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Adaptive Dialog", + "description": "Configures a data driven dialog via a collection of actions/dialogs.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.AdaptiveDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "inputBindings": { + "type": "object", + "title": "Input Bindings", + "description": "This defines properties which be passed as arguments to this dialog", + "examples": [ + "value.birthday" + ], + "additionalProperties": { + "type": "string" + } + }, + "outputBinding": { + "$role": "memoryPath", + "title": "Output Property binding", + "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", + "examples": [ + "value.birthday" + ], + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + }, + "autoEndDialog": { + "type": "boolean", + "title": "Auto End Dialog", + "description": "If this is true the dialog will automatically end when there are no more actions to run. If this is false it is the responsbility of the author to call EndDialog at an appropriate time.", + "default": "true" + }, + "defaultResultProperty": { + "type": "string", + "title": "Default Result Property", + "description": "Property path to the memory to return as the result of this dialog ending because AutoEndDialog is true and there are no more actions to execute.", + "default": "dialog.result" + }, + "recognizer": { + "$type": "Microsoft.IRecognizer", + "title": "Recognizer", + "description": "Configured recognizer to generate intent and entites from user utterance", + "$ref": "#/definitions/Microsoft.IRecognizer" + }, + "generator": { + "$type": "Microsoft.ILanguageGenerator", + "title": "Language Generator", + "description": "Language generator to use for this dialog. (aka: LG file)", + "$ref": "#/definitions/Microsoft.ILanguageGenerator" + }, + "selector": { + "$type": "Microsoft.IEventSelector", + "title": "Selector", + "description": "Policy for how to select rule to execute next", + "$ref": "#/definitions/Microsoft.IEventSelector" + }, + "events": { + "type": "array", + "description": "Events to use to evaluate conversation", + "items": { + "$type": "Microsoft.IOnEvent", + "$ref": "#/definitions/Microsoft.IOnEvent" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.AgeEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Age Entity Recognizer", + "description": "Recognizer which recognizes age.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.AgeEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.AttachmentInput": { + "$role": "unionType(Microsoft.IDialog)", + "title": "AttachmentInput Dialog", + "description": "This represents a dialog which gathers an attachment such as image or music", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.AttachmentInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "prompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Initial Prompt", + "description": "The message to send to as prompt for this input.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Unrecognized Prompt", + "description": "The message to send if the last input is not recognized.", + "examples": [ + "Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Invalid Prompt", + "description": "The message to send to when then input was not valid for the input type.", + "examples": [ + "No date was recognized" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max Turn Count", + "description": "The max retry count for this prompt.", + "default": 2147483647, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation Expressions", + "description": "Expressions to validate an input.", + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "The expression that you evaluated for input.", + "type": "string" + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default Value", + "description": "Value to return if the value expression can't be evaluated.", + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always Prompt", + "description": "If set to true this will always prompt the user regardless if you already have the value or not.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "type": "string", + "enum": [ + "always", + "never", + "notRecognized" + ], + "title": "Allow Interruptions", + "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "default": "notRecognized", + "examples": [ + "notRecognized" + ] + }, + "outputFormat": { + "type": "string", + "enum": [ + "all", + "first" + ], + "title": "Output Format", + "description": "The attachment output format.", + "default": "first" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.BeginDialog": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Begin Dialog", + "description": "Action which begins another dialog (and when that dialog is done, it will return the caller).", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.BeginDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "dialog": { + "$type": "Microsoft.IDialog", + "title": "Dialog", + "description": "This is the dialog to call.", + "$ref": "#/definitions/Microsoft.IDialog" + }, + "options": { + "type": "object", + "title": "Options binding", + "description": "Bindings to configure the options object to pass to the dialog.", + "additionalProperties": { + "type": "string", + "title": "Options" + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "The property to bind to the dialog and store the result in", + "examples": [ + "user.name" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.CancelAllDialogs": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Cancel All Dialogs", + "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.CancelAllDialogs" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "eventName": { + "title": "Event Name", + "description": "The name of event to emit", + "type": "string" + }, + "eventValue": { + "type": "object", + "title": "Event Value", + "description": "Optional value to emit along with the event", + "additionalProperties": true + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.ChoiceInput": { + "$role": "unionType(Microsoft.IDialog)", + "title": "ChoiceInput Dialog", + "description": "This represents a dialog which gathers a choice responses", + "type": "object", + "definitions": { + "choice": { + "type": "object", + "properties": { + "value": { + "type": "string", + "title": "Value", + "description": "the value to return when selected." + }, + "action": { + "title": "Action", + "description": "Card action for the choice", + "type": "object" + }, + "synonyms": { + "type": "array", + "title": "Synonyms", + "description": "the list of synonyms to recognize in addition to the value. This is optional.", + "items": { + "type": "string" + } + } + } + }, + "cardAction": { + "type": "object" + } + }, + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ChoiceInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "prompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Initial Prompt", + "description": "The message to send to as prompt for this input.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Unrecognized Prompt", + "description": "The message to send if the last input is not recognized.", + "examples": [ + "Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Invalid Prompt", + "description": "The message to send to when then input was not valid for the input type.", + "examples": [ + "No date was recognized" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max Turn Count", + "description": "The max retry count for this prompt.", + "default": 2147483647, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation Expressions", + "description": "Expressions to validate an input.", + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "The expression that you evaluated for input.", + "type": "string" + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default Value", + "description": "Value to return if the value expression can't be evaluated.", + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always Prompt", + "description": "If set to true this will always prompt the user regardless if you already have the value or not.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "type": "string", + "enum": [ + "always", + "never", + "notRecognized" + ], + "title": "Allow Interruptions", + "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "default": "notRecognized", + "examples": [ + "notRecognized" + ] + }, + "outputFormat": { + "type": "string", + "enum": [ + "value", + "index" + ], + "title": "Output Format", + "description": "The output format.", + "default": "value" + }, + "choices": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "value": { + "type": "string", + "title": "Value", + "description": "the value to return when selected." + }, + "action": { + "title": "Action", + "description": "Card action for the choice", + "type": "object" + }, + "synonyms": { + "type": "array", + "title": "Synonyms", + "description": "the list of synonyms to recognize in addition to the value. This is optional.", + "items": { + "type": "string" + } + } + } + } + ] + }, + "appendChoices": { + "type": "boolean", + "title": "Append Choices", + "description": "Compose an output activity containing a set of choices", + "default": "true" + }, + "defaultLocale": { + "type": "string", + "title": "Default Locale", + "description": "The prompts default locale that should be recognized.", + "default": "en-us" + }, + "style": { + "type": "string", + "enum": [ + "None", + "Auto", + "Inline", + "List", + "SuggestedAction", + "HeroCard" + ], + "title": "List Style", + "description": "The kind of choice list style to generate", + "default": "Auto" + }, + "choiceOptions": { + "type": "object", + "properties": { + "inlineSeparator": { + "type": "string", + "title": "Inline Seperator", + "description": "Character used to separate individual choices when there are more than 2 choices", + "default": ", " + }, + "inlineOr": { + "type": "string", + "title": "Inline Or", + "description": "Separator inserted between the choices when their are only 2 choices", + "default": " or " + }, + "inlineOrMore": { + "type": "string", + "title": "Inline OrMore", + "description": "Separator inserted between the last 2 choices when their are more than 2 choices.", + "default": ", or " + }, + "includeNumbers": { + "type": "boolean", + "title": "Include Numbers", + "description": "If true, inline and list style choices will be prefixed with the index of the choice.", + "default": true + } + } + }, + "recognizerOptions": { + "type": "object", + "properties": { + "noValue": { + "type": "boolean", + "title": "No Value", + "description": "If true, the choices value field will NOT be search over", + "default": false + }, + "noAction": { + "type": "boolean", + "title": "No Action", + "description": "If true, the the choices action.title field will NOT be searched over", + "default": false + } + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.ConditionalSelector": { + "$role": "unionType(Microsoft.IEventSelector)", + "title": "Condtional Event Selector", + "description": "Use a rule selector based on a condition", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ConditionalSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "condition": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + }, + "ifTrue": { + "$type": "Microsoft.IEventSelector", + "$ref": "#/definitions/Microsoft.IEventSelector" + }, + "ifFalse": { + "$type": "Microsoft.IEventSelector", + "$ref": "#/definitions/Microsoft.IEventSelector" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "condition", + "ifTrue", + "ifFalse", + "$type" + ] + } + ] + }, + "Microsoft.ConfirmInput": { + "$role": "unionType(Microsoft.IDialog)", + "title": "ConfirmInput Dialog", + "description": "This represents a dialog which gathers a yes/no style responses", + "type": "object", + "definitions": { + "choice": { + "type": "object", + "properties": { + "value": { + "type": "string", + "title": "Value", + "description": "the value to return when selected." + }, + "action": { + "title": "Action", + "description": "Card action for the choice", + "type": "object" + }, + "synonyms": { + "type": "array", + "title": "Synonyms", + "description": "The list of synonyms to recognize in addition to the value. This is optional.", + "items": { + "type": "string" + } + } + } + }, + "CardAction": { + "type": "object" + } + }, + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ConfirmInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "prompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Initial Prompt", + "description": "The message to send to as prompt for this input.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Unrecognized Prompt", + "description": "The message to send if the last input is not recognized.", + "examples": [ + "Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Invalid Prompt", + "description": "The message to send to when then input was not valid for the input type.", + "examples": [ + "No date was recognized" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max Turn Count", + "description": "The max retry count for this prompt.", + "default": 2147483647, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation Expressions", + "description": "Expressions to validate an input.", + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "The expression that you evaluated for input.", + "type": "string" + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default Value", + "description": "Value to return if the value expression can't be evaluated.", + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always Prompt", + "description": "If set to true this will always prompt the user regardless if you already have the value or not.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "type": "string", + "enum": [ + "always", + "never", + "notRecognized" + ], + "title": "Allow Interruptions", + "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "default": "notRecognized", + "examples": [ + "notRecognized" + ] + }, + "defaultLocale": { + "type": "string", + "title": "Default Locale", + "description": "The prompts default locale that should be recognized.", + "default": "en-us" + }, + "style": { + "type": "string", + "enum": [ + "None", + "Auto", + "Inline", + "List", + "SuggestedAction", + "HeroCard" + ], + "title": "List Style", + "description": "The kind of choice list style to generate", + "default": "Auto" + }, + "choiceOptions": { + "type": "object", + "properties": { + "inlineSeparator": { + "type": "string", + "title": "Inline Seperator", + "description": "Character used to separate individual choices when there are more than 2 choices", + "default": ", " + }, + "inlineOr": { + "type": "string", + "title": "Inline Or", + "description": "Separator inserted between the choices when their are only 2 choices", + "default": " or " + }, + "inlineOrMore": { + "type": "string", + "title": "Inline OrMore", + "description": "Separator inserted between the last 2 choices when their are more than 2 choices.", + "default": ", or " + }, + "includeNumbers": { + "type": "boolean", + "title": "Include Numbers", + "description": "If true, inline and list style choices will be prefixed with the index of the choice.", + "default": true + } + } + }, + "confirmChoices": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "value": { + "type": "string", + "title": "Value", + "description": "the value to return when selected." + }, + "action": { + "title": "Action", + "description": "Card action for the choice", + "type": "object" + }, + "synonyms": { + "type": "array", + "title": "Synonyms", + "description": "The list of synonyms to recognize in addition to the value. This is optional.", + "items": { + "type": "string" + } + } + } + } + ] + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.ConfirmationEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Confirmation Entity Recognizer", + "description": "Recognizer which recognizes confirmation choices (yes/no).", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ConfirmationEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.CurrencyEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Currency Entity Recognizer", + "description": "Recognizer which recognizes currency.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.CurrencyEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.DateTimeEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "DateTime Entity Recognizer", + "description": "Recognizer which recognizes dates and time fragments.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DateTimeEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.DateTimeInput": { + "$role": "unionType(Microsoft.IDialog)", + "title": "DateTimeInput Dialog", + "description": "This represents a dialog which gathers Date or Time or DateTime from the user", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DateTimeInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "prompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Initial Prompt", + "description": "The message to send to as prompt for this input.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Unrecognized Prompt", + "description": "The message to send if the last input is not recognized.", + "examples": [ + "Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Invalid Prompt", + "description": "The message to send to when then input was not valid for the input type.", + "examples": [ + "No date was recognized" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max Turn Count", + "description": "The max retry count for this prompt.", + "default": 2147483647, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation Expressions", + "description": "Expressions to validate an input.", + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "The expression that you evaluated for input.", + "type": "string" + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default Value", + "description": "Value to return if the value expression can't be evaluated.", + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always Prompt", + "description": "If set to true this will always prompt the user regardless if you already have the value or not.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "type": "string", + "enum": [ + "always", + "never", + "notRecognized" + ], + "title": "Allow Interruptions", + "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "default": "notRecognized", + "examples": [ + "notRecognized" + ] + }, + "defaultLocale": { + "type": "string", + "title": "Default Locale", + "description": "The prompts default locale that should be recognized.", + "default": "en-us" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.DebugBreak": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Debugger Break Action", + "description": "If debugger is attached, do a debugger break at this point", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DebugBreak" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.DeleteProperty": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Delete Property", + "description": "This is a action which allows you to remove a property from memory", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DeleteProperty" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "The Memory property path to delete", + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "property", + "$type" + ] + } + ] + }, + "Microsoft.DimensionEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Dimension Entity Recognizer", + "description": "Recognizer which recognizes dimension.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DimensionEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.EditActions": { + "$role": "unionType(Microsoft.IDialog)", + "title": "EditActions Action", + "description": "Edit current dialog with changeType and Actions", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EditActions" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "changeType": { + "type": "string", + "title": "Change Type", + "description": "The change type to apply to current dialog", + "enum": [ + "InsertActions", + "InsertActionsBeforeTags", + "AppendActions", + "EndSequence", + "ReplaceSequence" + ] + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "changeType", + "actions", + "$type" + ] + } + ] + }, + "Microsoft.EditArray": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Edit Array Action", + "description": "This is a action which allows you to modify an array in memory", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EditArray" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "changeType": { + "type": "string", + "title": "Change Type", + "description": "The array operation to perform", + "enum": [ + "Push", + "Pop", + "Take", + "Remove", + "Clear" + ] + }, + "arrayProperty": { + "$role": "expression", + "title": "Array Property", + "description": "Memory expression of the array to manipulate.", + "type": "string" + }, + "resultProperty": { + "$role": "expression", + "title": "Result Property", + "description": "Memory expression of the result of this action.", + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value of the Item", + "description": "Expression to evaluate.", + "examples": [ + "dialog.todo" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "changeType", + "arrayProperty", + "$type" + ] + } + ] + }, + "Microsoft.EmailEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Email Entity Recognizer", + "description": "Recognizer which recognizes email.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EmailEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.EmitEvent": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Emit Event Action", + "description": "This is a action which allows you to emit an event", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EmitEvent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "eventName": { + "title": "Event Name", + "description": "The name of event to emit", + "anyOf": [ + { + "enum": [ + "beginDialog", + "resumeDialog", + "repromptDialog", + "cancelDialog", + "endDialog", + "activityReceived", + "recognizedIntent", + "unknownIntent", + "actionsStarted", + "actionsSaved", + "actionsEnded", + "actionsResumed" + ] + }, + { + "type": "string" + } + ] + }, + "eventValue": { + "type": "object", + "title": "Event Value", + "description": "Optional value to emit along with the event", + "additionalProperties": true + }, + "bubbleEvent": { + "type": "boolean", + "title": "Bubble Event", + "description": "If true this event should propagate to parent dialogs" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "eventName", + "$type" + ] + } + ] + }, + "Microsoft.EndDialog": { + "$role": "unionType(Microsoft.IDialog)", + "title": "End Dialog", + "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EndDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "property": { + "$role": "expression", + "description": "Specifies a path to memory should be returned as the result to the calling dialog.", + "examples": [ + "dialog.name" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.EndTurn": { + "$role": "unionType(Microsoft.IDialog)", + "title": "End Turn", + "description": "End the current turn without ending the dialog.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.EndTurn" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.EntityRecognizer": { + "$role": "unionType", + "title": "Entity Recognizer", + "description": "Union of components which derive from EntityRecognizer abstract class.", + "type": "object", + "oneOf": [ + { + "title": "Microsoft.AgeEntityRecognizer", + "description": "Recognizer which recognizes age.", + "$ref": "#/definitions/Microsoft.AgeEntityRecognizer" + }, + { + "title": "Microsoft.ConfirmationEntityRecognizer", + "description": "Recognizer which recognizes confirmation choices (yes/no).", + "$ref": "#/definitions/Microsoft.ConfirmationEntityRecognizer" + }, + { + "title": "Microsoft.CurrencyEntityRecognizer", + "description": "Recognizer which recognizes currency.", + "$ref": "#/definitions/Microsoft.CurrencyEntityRecognizer" + }, + { + "title": "Microsoft.DateTimeEntityRecognizer", + "description": "Recognizer which recognizes dates and time fragments.", + "$ref": "#/definitions/Microsoft.DateTimeEntityRecognizer" + }, + { + "title": "Microsoft.DimensionEntityRecognizer", + "description": "Recognizer which recognizes dimension.", + "$ref": "#/definitions/Microsoft.DimensionEntityRecognizer" + }, + { + "title": "Microsoft.EmailEntityRecognizer", + "description": "Recognizer which recognizes email.", + "$ref": "#/definitions/Microsoft.EmailEntityRecognizer" + }, + { + "title": "Microsoft.GuidEntityRecognizer", + "description": "Recognizer which recognizes guids.", + "$ref": "#/definitions/Microsoft.GuidEntityRecognizer" + }, + { + "title": "Microsoft.HashtagEntityRecognizer", + "description": "Recognizer which recognizes Hashtags.", + "$ref": "#/definitions/Microsoft.HashtagEntityRecognizer" + }, + { + "title": "Microsoft.IpEntityRecognizer", + "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", + "$ref": "#/definitions/Microsoft.IpEntityRecognizer" + }, + { + "title": "Microsoft.MentionEntityRecognizer", + "description": "Recognizer which recognizes @Mentions", + "$ref": "#/definitions/Microsoft.MentionEntityRecognizer" + }, + { + "title": "Microsoft.NumberEntityRecognizer", + "description": "Recognizer which recognizes numbers.", + "$ref": "#/definitions/Microsoft.NumberEntityRecognizer" + }, + { + "title": "Microsoft.NumberRangeEntityRecognizer", + "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", + "$ref": "#/definitions/Microsoft.NumberRangeEntityRecognizer" + }, + { + "title": "Microsoft.OrdinalEntityRecognizer", + "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", + "$ref": "#/definitions/Microsoft.OrdinalEntityRecognizer" + }, + { + "title": "Microsoft.PercentageEntityRecognizer", + "description": "Recognizer which recognizes percentages.", + "$ref": "#/definitions/Microsoft.PercentageEntityRecognizer" + }, + { + "title": "Microsoft.PhoneNumberEntityRecognizer", + "description": "Recognizer which recognizes phone numbers.", + "$ref": "#/definitions/Microsoft.PhoneNumberEntityRecognizer" + }, + { + "title": "Microsoft.RegexEntityRecognizer", + "description": "Recognizer which recognizes patterns of input based on regex.", + "$ref": "#/definitions/Microsoft.RegexEntityRecognizer" + }, + { + "title": "Microsoft.TemperatureEntityRecognizer", + "description": "Recognizer which recognizes temperatures.", + "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" + }, + { + "title": "Microsoft.UrlEntityRecognizer", + "description": "Recognizer which recognizes urls (example: http://bing.com)", + "$ref": "#/definitions/Microsoft.UrlEntityRecognizer" + } + ] + }, + "Microsoft.FirstSelector": { + "$role": "unionType(Microsoft.IEventSelector)", + "title": "First Event Selector", + "description": "Selector for first true rule", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.FirstSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.Foreach": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Foreach Action", + "description": "Action which executes actions per item in a collection.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Foreach" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "listProperty": { + "$role": "expression", + "title": "ListProperty", + "description": "Expression to evaluate.", + "examples": [ + "user.todoList" + ], + "type": "string" + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "indexProperty": { + "$role": "expression", + "title": "Index Property", + "description": "The memory path which refers to the index of the item", + "default": "dialog.index", + "type": "string" + }, + "valueProperty": { + "$role": "expression", + "title": "Value Property", + "description": "The memory path which refers to the value of the item", + "default": "dialog.value", + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "listProperty", + "actions", + "$type" + ] + } + ] + }, + "Microsoft.ForeachPage": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Foreach Page Action", + "description": "Action which execute actions per item page in a collection.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ForeachPage" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "listProperty": { + "$role": "expression", + "title": "ListProperty", + "description": "Expression to evaluate.", + "examples": [ + "user.todoList" + ], + "type": "string" + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "pageSize": { + "type": "integer", + "title": "Page Size", + "description": "The page size", + "default": 10 + }, + "valueProperty": { + "$role": "expression", + "title": "Value Property", + "description": "The memory path which refers to the value of the item", + "default": "dialog.value", + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "listProperty", + "actions", + "$type" + ] + } + ] + }, + "Microsoft.GuidEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Guid Entity Recognizer", + "description": "Recognizer which recognizes guids.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.GuidEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.HashtagEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Hashtag Entity Recognizer", + "description": "Recognizer which recognizes Hashtags.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.HashtagEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.HttpRequest": { + "$role": "unionType(Microsoft.IDialog)", + "type": "object", + "title": "Http Request", + "description": "This is a action which replaces the current dialog with the target dialog", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.HttpRequest" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "method": { + "type": "string", + "title": "Method", + "description": "The HTTP method to use", + "enum": [ + "GET", + "POST" + ], + "examples": [ + "GET", + "POST" + ] + }, + "url": { + "type": "string", + "title": "Url", + "description": "The url to call (supports data binding)", + "examples": [ + "https://contoso.com" + ] + }, + "body": { + "type": "object", + "title": "Body", + "description": "The body to send in the HTTP call (supports data binding)", + "additionalProperties": true + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "The property to store the result of the HTTP call in. The result will have 4 properties from the http response: statusCode|reasonPhrase|content|headers. If the content is json it will be an deserialized object, otherwise it will be a string", + "examples": [ + "dialog.contosodata" + ], + "type": "string" + }, + "headers": { + "type": "object", + "additionProperties": true, + "title": "Http headers", + "description": "Http headers to include with the HTTP request (supports data binding)" + }, + "responseType": { + "type": "string", + "title": "Response Type", + "description": "Describes how to parse the response from the http request. If Activity or Activities, then the they will be sent to the user.", + "enum": [ + "None", + "Json", + "Activity", + "Activities" + ], + "default": "Json" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "url", + "method", + "$type" + ] + } + ] + }, + "Microsoft.IActivityTemplate": { + "title": "Microsoft ActivityTemplate", + "description": "Union of components which implement the IActivityTemplate interface", + "$role": "unionType", + "oneOf": [ + { + "$role": "lg", + "type": "string", + "description": "String is used for language generation.", + "title": "string" + } + ] + }, + "Microsoft.IDialog": { + "title": "Microsoft IDialog", + "description": "Union of components which implement the IDialog interface", + "$role": "unionType", + "oneOf": [ + { + "title": "Microsoft.AdaptiveDialog", + "description": "Configures a data driven dialog via a collection of actions/dialogs.", + "$ref": "#/definitions/Microsoft.AdaptiveDialog" + }, + { + "title": "Microsoft.AttachmentInput", + "description": "This represents a dialog which gathers an attachment such as image or music", + "$ref": "#/definitions/Microsoft.AttachmentInput" + }, + { + "title": "Microsoft.BeginDialog", + "description": "Action which begins another dialog (and when that dialog is done, it will return the caller).", + "$ref": "#/definitions/Microsoft.BeginDialog" + }, + { + "title": "Microsoft.CancelAllDialogs", + "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", + "$ref": "#/definitions/Microsoft.CancelAllDialogs" + }, + { + "title": "Microsoft.ChoiceInput", + "description": "This represents a dialog which gathers a choice responses", + "$ref": "#/definitions/Microsoft.ChoiceInput" + }, + { + "title": "Microsoft.ConfirmInput", + "description": "This represents a dialog which gathers a yes/no style responses", + "$ref": "#/definitions/Microsoft.ConfirmInput" + }, + { + "title": "Microsoft.DateTimeInput", + "description": "This represents a dialog which gathers Date or Time or DateTime from the user", + "$ref": "#/definitions/Microsoft.DateTimeInput" + }, + { + "title": "Microsoft.DebugBreak", + "description": "If debugger is attached, do a debugger break at this point", + "$ref": "#/definitions/Microsoft.DebugBreak" + }, + { + "title": "Microsoft.DeleteProperty", + "description": "This is a action which allows you to remove a property from memory", + "$ref": "#/definitions/Microsoft.DeleteProperty" + }, + { + "title": "Microsoft.EditActions", + "description": "Edit current dialog with changeType and Actions", + "$ref": "#/definitions/Microsoft.EditActions" + }, + { + "title": "Microsoft.EditArray", + "description": "This is a action which allows you to modify an array in memory", + "$ref": "#/definitions/Microsoft.EditArray" + }, + { + "title": "Microsoft.EmitEvent", + "description": "This is a action which allows you to emit an event", + "$ref": "#/definitions/Microsoft.EmitEvent" + }, + { + "title": "Microsoft.EndDialog", + "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", + "$ref": "#/definitions/Microsoft.EndDialog" + }, + { + "title": "Microsoft.EndTurn", + "description": "End the current turn without ending the dialog.", + "$ref": "#/definitions/Microsoft.EndTurn" + }, + { + "title": "Microsoft.Foreach", + "description": "Action which executes actions per item in a collection.", + "$ref": "#/definitions/Microsoft.Foreach" + }, + { + "title": "Microsoft.ForeachPage", + "description": "Action which execute actions per item page in a collection.", + "$ref": "#/definitions/Microsoft.ForeachPage" + }, + { + "title": "Microsoft.HttpRequest", + "description": "This is a action which replaces the current dialog with the target dialog", + "$ref": "#/definitions/Microsoft.HttpRequest" + }, + { + "title": "Microsoft.IfCondition", + "description": "Action which conditionally decides which action to execute next.", + "$ref": "#/definitions/Microsoft.IfCondition" + }, + { + "title": "Microsoft.InitProperty", + "description": "This action allows you to innitial a property to either an object or array", + "$ref": "#/definitions/Microsoft.InitProperty" + }, + { + "title": "Microsoft.LogAction", + "description": "This is a action which writes to console.log and optional creates a TraceActivity around a text binding", + "$ref": "#/definitions/Microsoft.LogAction" + }, + { + "title": "Microsoft.NumberInput", + "description": "This represents a dialog which gathers a decimal number in a specified range", + "$ref": "#/definitions/Microsoft.NumberInput" + }, + { + "title": "Microsoft.OAuthInput", + "description": "This represents a dialog which gathers an OAuth token from user", + "$ref": "#/definitions/Microsoft.OAuthInput" + }, + { + "title": "Microsoft.QnAMakerDialog", + "description": "This represents a dialog which is driven by a call to QnAMaker.ai knowledge base", + "$ref": "#/definitions/Microsoft.QnAMakerDialog" + }, + { + "title": "Microsoft.RepeatDialog", + "description": "This is a action which repeats the current dialog with the same dialog.", + "$ref": "#/definitions/Microsoft.RepeatDialog" + }, + { + "title": "Microsoft.ReplaceDialog", + "description": "This is a action which replaces the current dialog with the target dialog", + "$ref": "#/definitions/Microsoft.ReplaceDialog" + }, + { + "title": "Microsoft.SendActivity", + "description": "This is a action which sends an activity to the user", + "$ref": "#/definitions/Microsoft.SendActivity" + }, + { + "title": "Microsoft.SetProperty", + "description": "This action allows you to set memory to the value of an expression", + "$ref": "#/definitions/Microsoft.SetProperty" + }, + { + "title": "Microsoft.SwitchCondition", + "description": "Action which conditionally decides which action to execute next.", + "$ref": "#/definitions/Microsoft.SwitchCondition" + }, + { + "title": "Microsoft.TextInput", + "description": "This represents a dialog which gathers a text from the user", + "$ref": "#/definitions/Microsoft.TextInput" + }, + { + "title": "Microsoft.TraceActivity", + "description": "This is a action which sends an TraceActivity to the transcript", + "$ref": "#/definitions/Microsoft.TraceActivity" + }, + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.IEventSelector": { + "title": "Microsoft IEventSelector", + "description": "Union of components which implement the IEventSelector interface", + "$role": "unionType", + "oneOf": [ + { + "title": "Microsoft.ConditionalSelector", + "description": "Use a rule selector based on a condition", + "$ref": "#/definitions/Microsoft.ConditionalSelector" + }, + { + "title": "Microsoft.FirstSelector", + "description": "Selector for first true rule", + "$ref": "#/definitions/Microsoft.FirstSelector" + }, + { + "title": "Microsoft.MostSpecificSelector", + "description": "Select most specific true events with optional additional selector", + "$ref": "#/definitions/Microsoft.MostSpecificSelector" + }, + { + "title": "Microsoft.RandomSelector", + "description": "Select most specific true rule", + "$ref": "#/definitions/Microsoft.RandomSelector" + }, + { + "title": "Microsoft.TrueSelector", + "description": "Selector for all true events", + "$ref": "#/definitions/Microsoft.TrueSelector" + } + ] + }, + "Microsoft.ILanguageGenerator": { + "title": "Microsoft ILanguageGenerator", + "description": "Union of components which implement the ILanguageGenerator interface", + "$role": "unionType", + "oneOf": [ + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.ILanguagePolicy": { + "title": "Microsoft Language Policy", + "description": "Union of components which implement the ILanguagePolicy interface", + "$role": "unionType", + "oneOf": [ + { + "title": "Microsoft.LanguagePolicy", + "description": "This represents a dialog which gathers a DateTime in a specified range", + "$ref": "#/definitions/Microsoft.LanguagePolicy" + }, + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.IOnEvent": { + "title": "Microsoft IOnEvent", + "description": "Union of components which implement the IOnEvent interface", + "$role": "unionType", + "oneOf": [ + { + "title": "Microsoft.OnActivity", + "description": "This defines the actions to take when an custom activity is received", + "$ref": "#/definitions/Microsoft.OnActivity" + }, + { + "title": "Microsoft.OnBeginDialog", + "description": "This defines the actions to take when a dialog is started via BeginDialog()", + "$ref": "#/definitions/Microsoft.OnBeginDialog" + }, + { + "title": "Microsoft.OnConversationUpdateActivity", + "description": "This defines the actions to take when an ConversationUpdate activity is received", + "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" + }, + { + "title": "Microsoft.OnDialogEvent", + "description": "Defines a rule for an event which is triggered by some source", + "$ref": "#/definitions/Microsoft.OnDialogEvent" + }, + { + "title": "Microsoft.OnEndOfConversationActivity", + "description": "This defines the actions to take when an EndOfConversation Activity is received", + "$ref": "#/definitions/Microsoft.OnEndOfConversationActivity" + }, + { + "title": "Microsoft.OnEvent", + "description": "Defines a rule for an event which is triggered by some source", + "$ref": "#/definitions/Microsoft.OnEvent" + }, + { + "title": "Microsoft.OnEventActivity", + "description": "This defines the actions to take when an Event activity is received", + "$ref": "#/definitions/Microsoft.OnEventActivity" + }, + { + "title": "Microsoft.OnHandoffActivity", + "description": "This defines the actions to take when an Handoff activity is received", + "$ref": "#/definitions/Microsoft.OnHandoffActivity" + }, + { + "title": "Microsoft.OnIntent", + "description": "This defines the actions to take when an Intent is recognized (and optionally entities)", + "$ref": "#/definitions/Microsoft.OnIntent" + }, + { + "title": "Microsoft.OnInvokeActivity", + "description": "This defines the actions to take when an Invoke activity is received", + "$ref": "#/definitions/Microsoft.OnInvokeActivity" + }, + { + "title": "Microsoft.OnMessageActivity", + "description": "This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation", + "$ref": "#/definitions/Microsoft.OnMessageActivity" + }, + { + "title": "Microsoft.OnMessageDeleteActivity", + "description": "This defines the actions to take when an MessageDelete activity is received", + "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" + }, + { + "title": "Microsoft.OnMessageReactionActivity", + "description": "This defines the actions to take when a MessageReaction activity is received", + "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" + }, + { + "title": "Microsoft.OnMessageUpdateActivity", + "description": "This defines the actions to take when an MessageUpdate ctivity is received", + "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" + }, + { + "title": "Microsoft.OnTypingActivity", + "description": "This defines the actions to take when a Typing activity is received", + "$ref": "#/definitions/Microsoft.OnTypingActivity" + }, + { + "title": "Microsoft.OnUnknownIntent", + "description": "This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", + "$ref": "#/definitions/Microsoft.OnUnknownIntent" + } + ] + }, + "Microsoft.IRecognizer": { + "title": "Microsoft IRecognizer", + "description": "Union of components which implement the IRecognizer interface", + "$role": "unionType", + "oneOf": [ + { + "title": "Microsoft.LuisRecognizer", + "description": "LUIS recognizer.", + "$ref": "#/definitions/Microsoft.LuisRecognizer" + }, + { + "title": "Microsoft.MultiLanguageRecognizer", + "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", + "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" + }, + { + "title": "Microsoft.RegexRecognizer", + "description": "Recognizer which uses regex expressions to generate intents and entities.", + "$ref": "#/definitions/Microsoft.RegexRecognizer" + }, + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.ITextTemplate": { + "title": "Microsoft TextTemplate", + "description": "Union of components which implement the ITextTemplate interface", + "$role": "unionType", + "oneOf": [ + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.IfCondition": { + "$role": "unionType(Microsoft.IDialog)", + "title": "If Condition Action", + "description": "Action which conditionally decides which action to execute next.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.IfCondition" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Expression to evaluate.", + "examples": [ + "user.age > 3" + ], + "type": "string" + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Action to execute if condition is true.", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "elseActions": { + "type": "array", + "title": "Else Actions", + "description": "Action to execute if condition is false.", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "condition", + "actions", + "$type" + ] + } + ] + }, + "Microsoft.InitProperty": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Init Property Action", + "description": "This action allows you to innitial a property to either an object or array", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.InitProperty" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "The property to set the value of", + "examples": [ + "user.age" + ], + "type": "string" + }, + "type": { + "type": "string", + "title": "type", + "description": "type of value to set the property to, object or array.", + "enum": [ + "object", + "array" + ] + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "property", + "type", + "$type" + ] + } + ] + }, + "Microsoft.IpEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Ip Entity Recognizer", + "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.IpEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.LanguagePolicy": { + "$role": "unionType(Microsoft.ILanguagePolicy)", + "title": "Language Policy", + "description": "This represents a dialog which gathers a DateTime in a specified range", + "type": "object", + "additionalProperties": false, + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.LanguagePolicy" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.LogAction": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Log Action", + "description": "This is a action which writes to console.log and optional creates a TraceActivity around a text binding", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.LogAction" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "text": { + "type": "string", + "title": "Text", + "description": "LG Expression to write to the log" + }, + "traceActivity": { + "type": "boolean", + "title": "Send Trace Activity", + "description": "Set to true to also create a TraceActivity with the log text", + "default": false + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "text", + "$type" + ] + } + ] + }, + "Microsoft.LuisRecognizer": { + "$role": "unionType(Microsoft.IRecognizer)", + "title": "LUIS Recognizer", + "description": "LUIS recognizer.", + "type": "object", + "additionalProperties": false, + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.LuisRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "applicationId": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "endpointKey": { + "type": "string" + } + }, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "applicationId", + "endpoint", + "endpointKey", + "$type" + ] + } + ] + }, + "Microsoft.MentionEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Mentions Entity Recognizer", + "description": "Recognizer which recognizes @Mentions", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.MentionEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.MostSpecificSelector": { + "$role": "unionType(Microsoft.IEventSelector)", + "title": "Most Specific Event Selector", + "description": "Select most specific true events with optional additional selector", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.MostSpecificSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "selector": { + "$type": "Microsoft.IEventSelector", + "$ref": "#/definitions/Microsoft.IEventSelector" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.MultiLanguageRecognizer": { + "$role": "unionType(Microsoft.IRecognizer)", + "title": "Multi Language Recognizer", + "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.MultiLanguageRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "languagePolicy": { + "$type": "Microsoft.ILanguagePolicy", + "type": "object", + "title": "Language Policy", + "description": "Defines languages to try per language.", + "$ref": "#/definitions/Microsoft.ILanguagePolicy" + }, + "recognizers": { + "type": "object", + "title": "Recognizers", + "description": "Map of language -> IRecognizer", + "additionalProperties": { + "$type": "Microsoft.IRecognizer", + "$ref": "#/definitions/Microsoft.IRecognizer" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "recognizers", + "$type" + ] + } + ] + }, + "Microsoft.NumberEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Number Entity Recognizer", + "description": "Recognizer which recognizes numbers.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.NumberEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.NumberInput": { + "$role": "unionType(Microsoft.IDialog)", + "title": "NumberInput Dialog", + "description": "This represents a dialog which gathers a decimal number in a specified range", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.NumberInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "prompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Initial Prompt", + "description": "The message to send to as prompt for this input.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Unrecognized Prompt", + "description": "The message to send if the last input is not recognized.", + "examples": [ + "Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Invalid Prompt", + "description": "The message to send to when then input was not valid for the input type.", + "examples": [ + "No date was recognized" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max Turn Count", + "description": "The max retry count for this prompt.", + "default": 2147483647, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation Expressions", + "description": "Expressions to validate an input.", + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "The expression that you evaluated for input.", + "type": "string" + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default Value", + "description": "Value to return if the value expression can't be evaluated.", + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always Prompt", + "description": "If set to true this will always prompt the user regardless if you already have the value or not.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "type": "string", + "enum": [ + "always", + "never", + "notRecognized" + ], + "title": "Allow Interruptions", + "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "default": "notRecognized", + "examples": [ + "notRecognized" + ] + }, + "outputFormat": { + "type": "string", + "enum": [ + "float", + "integer" + ], + "title": "Output Format", + "description": "The NumberInput output format.", + "default": "float" + }, + "defaultLocale": { + "type": "string", + "title": "Default Locale", + "description": "The prompts default locale that should be recognized.", + "default": "en-us" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.NumberRangeEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "NumberRange Entity Recognizer", + "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.NumberRangeEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.OAuthInput": { + "$role": "unionType(Microsoft.IDialog)", + "title": "OAuthInput Dialog", + "description": "This represents a dialog which gathers an OAuth token from user", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OAuthInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "prompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Initial Prompt", + "description": "The message to send to as prompt for this input.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Unrecognized Prompt", + "description": "The message to send if the last input is not recognized.", + "examples": [ + "Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Invalid Prompt", + "description": "The message to send to when then input was not valid for the input type.", + "examples": [ + "No date was recognized" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max Turn Count", + "description": "The max retry count for this prompt.", + "default": 2147483647, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation Expressions", + "description": "Expressions to validate an input.", + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "The expression that you evaluated for input.", + "type": "string" + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default Value", + "description": "Value to return if the value expression can't be evaluated.", + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always Prompt", + "description": "If set to true this will always prompt the user regardless if you already have the value or not.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "type": "string", + "enum": [ + "always", + "never", + "notRecognized" + ], + "title": "Allow Interruptions", + "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "default": "notRecognized", + "examples": [ + "notRecognized" + ] + }, + "connectionName": { + "type": "string", + "title": "Connection Name", + "description": "The connection name configured in Azure Web App Bot OAuth settings." + }, + "text": { + "type": "string", + "title": "Text", + "description": "Text shown in the OAuth signin card." + }, + "title": { + "type": "string", + "title": "Title", + "description": "Title shown in the OAuth signin card." + }, + "timeout": { + "type": "integer", + "title": "Timeout", + "description": "Time out setting for the OAuth signin card.", + "default": "900000" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.OnActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnActivity", + "description": "This defines the actions to take when an custom activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "type": { + "type": "string", + "title": "Type", + "description": "Activity type" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "type", + "$type" + ] + } + ] + }, + "Microsoft.OnBeginDialog": { + "title": "OnBeginDialog", + "description": "This defines the actions to take when a dialog is started via BeginDialog()", + "$role": "unionType(Microsoft.IOnEvent)", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnBeginDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnConversationUpdateActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnConversationUpdateActivity", + "description": "This defines the actions to take when an ConversationUpdate activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnConversationUpdateActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnDialogEvent": { + "title": "Event Event", + "description": "Defines a rule for an event which is triggered by some source", + "type": "object", + "$role": "unionType(Microsoft.IOnEvent)", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnDialogEvent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "events": { + "type": "array", + "description": "Events to trigger this rule for", + "items": { + "type": "string", + "enum": [ + "beginDialog", + "consultDialog", + "cancelDialog", + "activityReceived", + "recognizedIntent", + "unknownIntent", + "actionsStarted", + "actionsSaved", + "actionsEnded", + "actionsResumed" + ] + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "events", + "$type" + ] + } + ] + }, + "Microsoft.OnEndOfConversationActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnEndOfConversationActivity", + "description": "This defines the actions to take when an EndOfConversation Activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnEndOfConversationActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnEvent": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "Event Event", + "description": "Defines a rule for an event which is triggered by some source", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnEvent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnEventActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnEventActivity", + "description": "This defines the actions to take when an Event activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnEventActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnHandoffActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnHandoffActivity", + "description": "This defines the actions to take when an Handoff activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnHandoffActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnIntent": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "Intent Event", + "description": "This defines the actions to take when an Intent is recognized (and optionally entities)", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnIntent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "intent": { + "type": "string", + "title": "Intent", + "description": "Intent name to trigger on" + }, + "entities": { + "type": "array", + "title": "Entities", + "description": "The entities required to trigger this rule", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "intent", + "$type" + ] + } + ] + }, + "Microsoft.OnInvokeActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnInvokeActivity", + "description": "This defines the actions to take when an Invoke activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnInvokeActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnMessageActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnMessageActivity", + "description": "This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnMessageActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnMessageDeleteActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "MessageDeleteActivity", + "description": "This defines the actions to take when an MessageDelete activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnMessageDeleteActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnMessageReactionActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "MessageReactionActivity", + "description": "This defines the actions to take when a MessageReaction activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnMessageReactionActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnMessageUpdateActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "MessageUpdateActivity", + "description": "This defines the actions to take when an MessageUpdate ctivity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnMessageUpdateActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnTypingActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "TypingActivity", + "description": "This defines the actions to take when a Typing activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnTypingActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnUnknownIntent": { + "title": "OnUnknownIntent", + "description": "This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", + "$role": "unionType(Microsoft.IOnEvent)", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnUnknownIntent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "type", + "$type" + ] + } + ] + }, + "Microsoft.OrdinalEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Ordinal Entity Recognizer", + "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OrdinalEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.PercentageEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Percentage Entity Recognizer", + "description": "Recognizer which recognizes percentages.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.PercentageEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.PhoneNumberEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Phone Number Entity Recognizer", + "description": "Recognizer which recognizes phone numbers.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.PhoneNumberEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.QnAMakerDialog": { + "$role": "unionType(Microsoft.IDialog)", + "title": "QnAMaker Dialog", + "description": "This represents a dialog which is driven by a call to QnAMaker.ai knowledge base", + "type": "object", + "additionalProperties": false, + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.QnAMakerDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "endpoint": { + "type": "object", + "title": "Endpoint", + "description": "This is the QnAMaker endpoint to use", + "required": [ + "knowledgeBaseId", + "endpointKey", + "host" + ], + "properties": { + "knowledgeBaseId": { + "type": "string", + "title": "Knowledgebase Id", + "description": "the knowledge base ID." + }, + "endpointKey": { + "type": "string", + "title": "Endpoint Key", + "description": "sets the endpoint key for the knowledge base" + }, + "host": { + "type": "string", + "title": "Host", + "description": "sets the host path", + "examples": [ + "https://yourserver.azurewebsites.net/qnamaker" + ] + } + } + }, + "options": { + "type": "object", + "title": "Options", + "properties": { + "scoreThreshold": { + "type": "number", + "title": "Score Threshold", + "description": "\"sets the minimum score threshold, used to filter returned results. Scores are normalized to the range of 0.0 to 1.0" + } + } + } + }, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "endpoint", + "$type" + ] + } + ] + }, + "Microsoft.RandomSelector": { + "$role": "unionType(Microsoft.IEventSelector)", + "title": "Random rule selector", + "description": "Select most specific true rule", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.RandomSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "seed": { + "type": "integer" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.RegexEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Regex Entity Recognizer", + "description": "Recognizer which recognizes patterns of input based on regex.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.RegexEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "name": { + "type": "string", + "title": "Name", + "description": "Name of the entity" + }, + "pattern": { + "type": "string", + "title": "Pattern", + "description": "Pattern expressed as regular expression." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "name", + "pattern", + "$type" + ] + } + ] + }, + "Microsoft.RegexRecognizer": { + "$role": "unionType(Microsoft.IRecognizer)", + "title": "Regex Recognizer", + "description": "Recognizer which uses regex expressions to generate intents and entities.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.RegexRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "intents": { + "type": "array", + "title": "RegEx patterns to intents", + "description": "Collection of patterns to match intents", + "items": { + "type": "object", + "properties": { + "intent": { + "type": "string", + "title": "Intent", + "description": "The intent name" + }, + "pattern": { + "type": "string", + "title": "Pattern", + "description": "The regular expression pattern for matching" + } + } + } + }, + "entities": { + "type": "array", + "title": "Entitie Recognizers", + "description": "Entity Recognizers to use", + "items": { + "$type": "Microsoft.EntityRecognizer", + "$ref": "#/definitions/Microsoft.EntityRecognizer" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "intents", + "$type" + ] + } + ] + }, + "Microsoft.RepeatDialog": { + "$role": "unionType(Microsoft.IDialog)", + "type": "object", + "title": "Repeat Dialog", + "description": "This is a action which repeats the current dialog with the same dialog.", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.RepeatDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.ReplaceDialog": { + "$role": "unionType(Microsoft.IDialog)", + "type": "object", + "title": "Replace Dialog", + "description": "This is a action which replaces the current dialog with the target dialog", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ReplaceDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "dialog": { + "$type": "Microsoft.IDialog", + "title": "Dialog", + "description": "This is the dialog to switch to.", + "$ref": "#/definitions/Microsoft.IDialog" + }, + "options": { + "type": "object", + "title": "Options binding", + "description": "Bindings to configure the options object to pass to the dialog.", + "additionalProperties": { + "type": "string", + "title": "Options" + } + }, + "property": { + "$role": "expression", + "description": "The property to bind to the dialog and store the result in", + "examples": [ + "user.name" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.SendActivity": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Send Activity Action", + "description": "This is a action which sends an activity to the user", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.SendActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "activity": { + "$type": "Microsoft.IActivityTemplate", + "title": "Activity", + "description": "Activity to send to the user", + "$ref": "#/definitions/Microsoft.IActivityTemplate" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.SetProperty": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Set Property Action", + "description": "This action allows you to set memory to the value of an expression", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.SetProperty" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "The property to set the value of", + "examples": [ + "user.age" + ], + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "Expression against memory to use to get the value.", + "examples": [ + "dialog.result" + ], + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "property", + "value", + "$type" + ] + } + ] + }, + "Microsoft.SwitchCondition": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Switch Action", + "description": "Action which conditionally decides which action to execute next.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.SwitchCondition" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Expression to evaluate to switch on.", + "examples": [ + "user.age > 3" + ], + "type": "string" + }, + "cases": { + "type": "array", + "title": "Cases", + "desc": "Cases to evaluate against condition", + "items": { + "type": "object", + "required": [ + "value", + "case" + ], + "properties": { + "value": { + "$role": "expression", + "title": "Value", + "description": "Value which must match the condition property", + "type": "string" + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to execute if case is equal to condition", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + } + } + }, + "default": { + "type": "array", + "title": "Default", + "description": "Action to execute if no case is equal to condition", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "condition", + "$type" + ] + } + ] + }, + "Microsoft.TemperatureEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Temperature Entity Recognizer", + "description": "Recognizer which recognizes temperatures.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TemperatureEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.TextInput": { + "$role": "unionType(Microsoft.IDialog)", + "title": "TextInput Dialog", + "description": "This represents a dialog which gathers a text from the user", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TextInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "prompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Initial Prompt", + "description": "The message to send to as prompt for this input.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Unrecognized Prompt", + "description": "The message to send if the last input is not recognized.", + "examples": [ + "Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Invalid Prompt", + "description": "The message to send to when then input was not valid for the input type.", + "examples": [ + "No date was recognized" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max Turn Count", + "description": "The max retry count for this prompt.", + "default": 2147483647, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation Expressions", + "description": "Expressions to validate an input.", + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "The expression that you evaluated for input.", + "type": "string" + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default Value", + "description": "Value to return if the value expression can't be evaluated.", + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always Prompt", + "description": "If set to true this will always prompt the user regardless if you already have the value or not.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "type": "string", + "enum": [ + "always", + "never", + "notRecognized" + ], + "title": "Allow Interruptions", + "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "default": "notRecognized", + "examples": [ + "notRecognized" + ] + }, + "outputFormat": { + "type": "string", + "enum": [ + "none", + "trim", + "lowercase", + "uppercase" + ], + "title": "Output Format", + "description": "The TextInput output format.", + "default": "none" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.TraceActivity": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Trace Activity Action", + "description": "This is a action which sends an TraceActivity to the transcript", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TraceActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "name": { + "type": "string", + "title": "Name", + "description": "Name of the trace activity" + }, + "valueType": { + "type": "string", + "title": "Value Type", + "description": "Value type of the trace activity" + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "Property path to memory object to send as the value of the trace activity", + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.TrueSelector": { + "$role": "unionType(Microsoft.IEventSelector)", + "title": "True Event Selector", + "description": "Selector for all true events", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TrueSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.UrlEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Url Entity Recognizer", + "description": "Recognizer which recognizes urls (example: http://bing.com)", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.UrlEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Composer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + } + } +} diff --git a/BotProject/CSharp/Tests/ActionsTests.cs b/BotProject/CSharp/Tests/ActionsTests.cs new file mode 100644 index 0000000000..6645a95de2 --- /dev/null +++ b/BotProject/CSharp/Tests/ActionsTests.cs @@ -0,0 +1,248 @@ +using Microsoft.Bot.Builder; +using Microsoft.Bot.Builder.Adapters; +using Microsoft.Bot.Builder.Dialogs; +using Microsoft.Bot.Builder.Dialogs.Adaptive; +using Microsoft.Bot.Builder.Dialogs.Debugging; +using Microsoft.Bot.Builder.Dialogs.Declarative; +using Microsoft.Bot.Builder.Dialogs.Declarative.Resources; +using Microsoft.Bot.Builder.Dialogs.Declarative.Types; +using Microsoft.Bot.Builder.TestBot.Json; +using Microsoft.Bot.Schema; +using Microsoft.Extensions.Configuration; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; + +namespace Tests +{ + [TestClass] + public class ActionsTests + { + private static string getOsPath(string path) => Path.Combine(path.TrimEnd('\\').Split('\\')); + + private static readonly string samplesDirectory = getOsPath(@"..\..\..\..\..\..\SampleBots"); + + private static string getFolderPath(string path) + { + return Path.Combine(samplesDirectory, path); + } + + + [ClassInitialize] + public static void ClassInitialize(TestContext context) + { + TypeFactory.Configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); + TypeFactory.RegisterAdaptiveTypes(); + string path = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, samplesDirectory)); + } + + public TestContext TestContext { get; set; } + + [TestMethod] + public async Task Actions_01Actions() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("01") + .AssertReply("Step 1") + .AssertReply("Step 2") + .AssertReply("Step 3") + .AssertReply("user.age is set to 18") + .AssertReply("user.age is set to null") + .StartTestAsync(); + } + + [TestMethod] + public async Task Actions_02EndTurn() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("02") + .AssertReply("What's up?") + .Send("Nothing") + .AssertReply("Oh I see!") + .StartTestAsync(); + } + + [TestMethod] + public async Task Actions_03IfCondition() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("03") + .AssertReply("Hello, I'm Zoidberg. What is your name?") + .Send("Carlos") + .AssertReply("Hello Carlos, nice to talk to you!") + .StartTestAsync(); + } + + [TestMethod] + public async Task Actions_04EditArray() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("04") + .AssertReply("Here are the index and values in the array.") + .AssertReply("0: 11111") + .AssertReply("1: 40000") + .AssertReply("2: 222222") + .AssertReply("If each page shows two items, here are the index and values") + .AssertReply("0: 11111") + .AssertReply("1: 40000") + .AssertReply("0: 222222") + .StartTestAsync(); + } + + [TestMethod] + public async Task Actions_05EndDialog() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("05") + .AssertReply("Hello, I'm Zoidberg. What is your name?") + .Send("luhan") + .AssertReply("Hello luhan, nice to talk to you!") + .AssertReply("I'm a joke bot. To get started say \"joke\".") + .Send("joke") + .AssertReply("Why did the chicken cross the road?") + .Send("I don't know") + .AssertReply("To get to the other side!") + .StartTestAsync(); + } + + [TestMethod] + public async Task Actions_06SwitchCondition() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("07") + .AssertReply("Please select a value from below:\n\n 1. Test1\n 2. Test2\n 3. Test3") + .Send("Test1") + .AssertReply("You select: Test1") + .AssertReply("You select: 1") + .StartTestAsync(); + } + + [TestMethod] + public async Task Actions_07RepeatDialog() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("08") + .AssertReply("Hello, what is your name?") + .Send("luhan") + .AssertReply("Hello luhan, nice to meet you!") + .Send("hi") + .AssertReply("Hello, what is your name?") + .Send("luhan") + .AssertReply("Hello luhan, nice to meet you!") + .StartTestAsync(); + } + + [TestMethod] + public async Task Actions_08TraceAndLog() + { + await BuildTestFlow(getFolderPath("Steps_Samples"), sendTrace: true) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("09") + .AssertReply("Hello, what is your name?") + .Send("luhan") + .AssertReply(activity => + { + var trace = (Activity)activity; + Assert.AreEqual(ActivityTypes.Trace, trace.Type, "should be trace activity"); + Assert.AreEqual("memory", trace.ValueType, "value type should be memory"); + }) + .StartTestAsync(); + } + + [TestMethod] + public async Task Actions_09EditActions() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("10") + .AssertReply("Hello, I'm Zoidberg. What is your name?") + .Send("luhan") + .AssertReply("Hello luhan, nice to talk to you!") + .AssertReply("Goodbye!") + .StartTestAsync(); + } + + [TestMethod] + public async Task Actions_10ReplaceDialog() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("11") + .AssertReply("Hello, I'm Zoidberg. What is your name?") + .Send("luhan") + .AssertReply("Hello luhan, nice to talk to you!") + .Send("joke") + .AssertReply("Why did the chicken cross the road?") + .Send("Why?") + .AssertReply("To get to the other side!") + .Send("future") + .AssertReply("Seeing into your future...") + .AssertReply("I see great things in your future!") + .AssertReply("Potentially a successful demo") + .StartTestAsync(); + } + + [TestMethod] + public async Task Actions_11EmitEvent() + { + await BuildTestFlow(getFolderPath("Steps_Samples")) + .SendConversationUpdate() + .AssertReply("I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action.\n01 - Actions\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditActions\n11 - ReplaceDialog\n12 - EmitEvent\n") + .Send("12") + .AssertReply("Say moo to get a response, say emit to emit a event.") + .Send("moo") + .AssertReply("Yippee ki-yay!") + .Send("emit") + .AssertReply("CustomEvent Fired.") + .StartTestAsync(); + } + + private TestFlow BuildTestFlow(string folderPath, bool sendTrace = false) + { + TypeFactory.Configuration = new ConfigurationBuilder().Build(); + var storage = new MemoryStorage(); + var convoState = new ConversationState(storage); + var userState = new UserState(storage); + var adapter = new TestAdapter(TestAdapter.CreateConversation(TestContext.TestName), sendTrace); + var resourceExplorer = new ResourceExplorer(); + resourceExplorer.AddFolder(folderPath); + adapter + .UseStorage(storage) + .UseState(userState, convoState) + .UseLanguageGeneration(resourceExplorer) + .UseResourceExplorer(resourceExplorer) + .Use(new TranscriptLoggerMiddleware(new FileTranscriptLogger())); + + var resource = resourceExplorer.GetResource("Main.dialog"); + var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceRegistry); + DialogManager dm = new DialogManager(dialog); + + return new TestFlow(adapter, async (turnContext, cancellationToken) => + { + if (dialog is AdaptiveDialog planningDialog) + { + await dm.OnTurnAsync(turnContext, null, cancellationToken).ConfigureAwait(false); + } + }); + } + } +} diff --git a/BotProject/CSharp/Tests/InputsTests.cs b/BotProject/CSharp/Tests/InputsTests.cs index 5b2f1944b9..60266ed97f 100644 --- a/BotProject/CSharp/Tests/InputsTests.cs +++ b/BotProject/CSharp/Tests/InputsTests.cs @@ -49,7 +49,7 @@ public async Task Inputs_01TextInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use Steps, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") + .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use actions, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") .Send("01") .AssertReply("Hello, I'm Zoidberg. What is your name?") .Send("02") @@ -65,7 +65,7 @@ public async Task Inputs_02NumberInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use Steps, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") + .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use actions, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") .Send("02") .AssertReply("What is your age?") .Send("18") @@ -81,7 +81,7 @@ public async Task Inputs_03ConfirmInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use Steps, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") + .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use actions, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") .Send("03") .AssertReply("yes or no (1) Yes or (2) No") .Send("asdasd") @@ -99,7 +99,7 @@ public async Task Inputs_04ChoiceInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use Steps, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") + .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use actions, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") .Send("04") .AssertReply("Please select a value from below:\n\n 1. Test1\n 2. Test2\n 3. Test3") .Send("Test1") @@ -112,7 +112,7 @@ public async Task Inputs_06DateTimeInput() { await BuildTestFlow() .SendConversationUpdate() - .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use Steps, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") + .AssertReply("Welcome to Input Sample Bot.\nI can show you examples on how to use actions, You can enter number 01-04\n01 - TextInput\n02 - NumberInput\n03 - ConfirmInput\n04 - ChoiceInput\n05 - AttachmentInput\n06 - DateTimeInput\n07 - OAuthInput\n") .Send("06") .AssertReply("Please enter a date.") .Send("June 1st") diff --git a/BotProject/CSharp/Tests/StepsTests.cs b/BotProject/CSharp/Tests/StepsTests.cs deleted file mode 100644 index 8eccd59d45..0000000000 --- a/BotProject/CSharp/Tests/StepsTests.cs +++ /dev/null @@ -1,248 +0,0 @@ -using Microsoft.Bot.Builder; -using Microsoft.Bot.Builder.Adapters; -using Microsoft.Bot.Builder.Dialogs; -using Microsoft.Bot.Builder.Dialogs.Adaptive; -using Microsoft.Bot.Builder.Dialogs.Debugging; -using Microsoft.Bot.Builder.Dialogs.Declarative; -using Microsoft.Bot.Builder.Dialogs.Declarative.Resources; -using Microsoft.Bot.Builder.Dialogs.Declarative.Types; -using Microsoft.Bot.Builder.TestBot.Json; -using Microsoft.Bot.Schema; -using Microsoft.Extensions.Configuration; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using System; -using System.Collections.Generic; -using System.IO; -using System.Threading.Tasks; - -namespace Tests -{ - [TestClass] - public class StepsTests - { - private static string getOsPath(string path) => Path.Combine(path.TrimEnd('\\').Split('\\')); - - private static readonly string samplesDirectory = getOsPath(@"..\..\..\..\..\..\SampleBots"); - - private static string getFolderPath(string path) - { - return Path.Combine(samplesDirectory, path); - } - - - [ClassInitialize] - public static void ClassInitialize(TestContext context) - { - TypeFactory.Configuration = new ConfigurationBuilder().AddInMemoryCollection().Build(); - TypeFactory.RegisterAdaptiveTypes(); - string path = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, samplesDirectory)); - } - - public TestContext TestContext { get; set; } - - [TestMethod] - public async Task Steps_01Steps() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("01") - .AssertReply("Step 1") - .AssertReply("Step 2") - .AssertReply("Step 3") - .AssertReply("user.age is set to 18") - .AssertReply("user.age is set to null") - .StartTestAsync(); - } - - [TestMethod] - public async Task Steps_02EndTurn() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("02") - .AssertReply("What's up?") - .Send("Nothing") - .AssertReply("Oh I see!") - .StartTestAsync(); - } - - [TestMethod] - public async Task Steps_03IfCondition() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("03") - .AssertReply("Hello, I'm Zoidberg. What is your name?") - .Send("Carlos") - .AssertReply("Hello Carlos, nice to talk to you!") - .StartTestAsync(); - } - - [TestMethod] - public async Task Steps_04EditArray() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("04") - .AssertReply("Here are the index and values in the array.") - .AssertReply("0: 11111") - .AssertReply("1: 40000") - .AssertReply("2: 222222") - .AssertReply("If each page shows two items, here are the index and values") - .AssertReply("0: 11111") - .AssertReply("1: 40000") - .AssertReply("0: 222222") - .StartTestAsync(); - } - - [TestMethod] - public async Task Steps_05EndDialog() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("05") - .AssertReply("Hello, I'm Zoidberg. What is your name?") - .Send("luhan") - .AssertReply("Hello luhan, nice to talk to you!") - .AssertReply("I'm a joke bot. To get started say \"joke\".") - .Send("joke") - .AssertReply("Why did the chicken cross the road?") - .Send("I don't know") - .AssertReply("To get to the other side!") - .StartTestAsync(); - } - - [TestMethod] - public async Task Steps_06SwitchCondition() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("07") - .AssertReply("Please select a value from below:\n\n 1. Test1\n 2. Test2\n 3. Test3") - .Send("Test1") - .AssertReply("You select: Test1") - .AssertReply("You select: 1") - .StartTestAsync(); - } - - [TestMethod] - public async Task Steps_07RepeatDialog() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("08") - .AssertReply("Hello, what is your name?") - .Send("luhan") - .AssertReply("Hello luhan, nice to meet you!") - .Send("hi") - .AssertReply("Hello, what is your name?") - .Send("luhan") - .AssertReply("Hello luhan, nice to meet you!") - .StartTestAsync(); - } - - [TestMethod] - public async Task Steps_08TraceAndLog() - { - await BuildTestFlow(getFolderPath("Steps_Samples"), sendTrace: true) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("09") - .AssertReply("Hello, what is your name?") - .Send("luhan") - .AssertReply(activity => - { - var trace = (Activity)activity; - Assert.AreEqual(ActivityTypes.Trace, trace.Type, "should be trace activity"); - Assert.AreEqual("memory", trace.ValueType, "value type should be memory"); - }) - .StartTestAsync(); - } - - [TestMethod] - public async Task Steps_09EditSteps() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("10") - .AssertReply("Hello, I'm Zoidberg. What is your name?") - .Send("luhan") - .AssertReply("Hello luhan, nice to talk to you!") - .AssertReply("Goodbye!") - .StartTestAsync(); - } - - [TestMethod] - public async Task Steps_10ReplaceDialog() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("11") - .AssertReply("Hello, I'm Zoidberg. What is your name?") - .Send("luhan") - .AssertReply("Hello luhan, nice to talk to you!") - .Send("joke") - .AssertReply("Why did the chicken cross the road?") - .Send("Why?") - .AssertReply("To get to the other side!") - .Send("future") - .AssertReply("Seeing into your future...") - .AssertReply("I see great things in your future!") - .AssertReply("Potentially a successful demo") - .StartTestAsync(); - } - - [TestMethod] - public async Task Steps_11EmitEvent() - { - await BuildTestFlow(getFolderPath("Steps_Samples")) - .SendConversationUpdate() - .AssertReply("I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action.\n01 - Steps\n02 - EndTurn\n03 - IfCondiftion\n04 - EditArray, Foreach\n05 - EndDialog\n06 - HttpRequest\n07 - SwitchCondition\n08 - RepeatDialog\n09 - TraceAndLog\n10 - EditSteps\n11 - ReplaceDialog\n12 - EmitEvent\n") - .Send("12") - .AssertReply("Say moo to get a response, say emit to emit a event.") - .Send("moo") - .AssertReply("Yippee ki-yay!") - .Send("emit") - .AssertReply("CustomEvent Fired.") - .StartTestAsync(); - } - - private TestFlow BuildTestFlow(string folderPath, bool sendTrace = false) - { - TypeFactory.Configuration = new ConfigurationBuilder().Build(); - var storage = new MemoryStorage(); - var convoState = new ConversationState(storage); - var userState = new UserState(storage); - var adapter = new TestAdapter(TestAdapter.CreateConversation(TestContext.TestName), sendTrace); - var resourceExplorer = new ResourceExplorer(); - resourceExplorer.AddFolder(folderPath); - adapter - .UseStorage(storage) - .UseState(userState, convoState) - .UseLanguageGeneration(resourceExplorer) - .UseResourceExplorer(resourceExplorer) - .Use(new TranscriptLoggerMiddleware(new FileTranscriptLogger())); - - var resource = resourceExplorer.GetResource("Main.dialog"); - var dialog = DeclarativeTypeLoader.Load(resource, resourceExplorer, DebugSupport.SourceRegistry); - DialogManager dm = new DialogManager(dialog); - - return new TestFlow(adapter, async (turnContext, cancellationToken) => - { - if (dialog is AdaptiveDialog planningDialog) - { - await dm.OnTurnAsync(turnContext, null, cancellationToken).ConfigureAwait(false); - } - }); - } - } -} diff --git a/Composer/cypress/integration/SwitchCondition.spec.js b/Composer/cypress/integration/SwitchCondition.spec.js index e47ea190d9..0c33c69889 100644 --- a/Composer/cypress/integration/SwitchCondition.spec.js +++ b/Composer/cypress/integration/SwitchCondition.spec.js @@ -11,7 +11,7 @@ context('SwitchCondition', () => { cy.addEventHandler('Handle Unknown Intent'); cy.withinEditor('VisualEditor', () => { - cy.getByText(/UnknownIntentRule/).click({ force: true }); + cy.getByText(/OnUnknownIntent/).click({ force: true }); cy.wait(100); cy.getByText(/UnknownIntent/).click({ force: true }); cy.wait(100); @@ -37,17 +37,17 @@ context('SwitchCondition', () => { // Send activity // Use { force: true } can disable error checking like dom not visible or width and height '0 * 0' pixels. // So if a button is in a popup window, using { force: true } to button click can make the tests more stable. - cy.getByText('Add New Step for Case1').click({ force: true }); + cy.getByText('Add New Action for Case1').click({ force: true }); cy.getByText('Send Messages').click({ force: true }); cy.getByText('Send an Activity').click({ force: true }); // Edit array - cy.getByText('Add New Step for Case1').click({ force: true }); + cy.getByText('Add New Action for Case1').click({ force: true }); cy.getByText('Memory manipulation').click({ force: true }); cy.getByText('Edit an Array Property').click({ force: true }); // Log step - cy.getByText('Add New Step for Case1').click({ force: true }); + cy.getByText('Add New Action for Case1').click({ force: true }); cy.getByText('Debugging').click({ force: true }); cy.getByText('Log to console').click({ force: true }); @@ -116,7 +116,7 @@ context('SwitchCondition', () => { cy.wait(100); }); - cy.get('[role="separator"]:contains(Branch)') + cy.get('[role="separator"]') .filter(':not(:contains(Branch: Switch))') .should('have.length', 3) .eq(1) @@ -137,11 +137,11 @@ context('SwitchCondition', () => { cy.wait(100); }); - cy.get('[role="separator"]:contains(Branch)') + cy.get('[role="separator"]') .filter(':not(:contains(Branch: Switch))') .should('have.length', 2) .eq(1) - .should('have.text', 'Default Branch'); + .should('have.text', 'Default'); }); }); }); diff --git a/Composer/cypress/integration/VisualDesigner.spec.js b/Composer/cypress/integration/VisualDesigner.spec.js index 5aab72ec65..4891f2d376 100644 --- a/Composer/cypress/integration/VisualDesigner.spec.js +++ b/Composer/cypress/integration/VisualDesigner.spec.js @@ -12,28 +12,28 @@ context('Visual Designer', () => { cy.wait(100); cy.withinEditor('VisualEditor', () => { - cy.contains('Microsoft.EventRule').should('exist'); + cy.contains('Microsoft.OnEvent').should('exist'); }); cy.addEventHandler('Handle an Intent'); cy.wait(100); cy.withinEditor('VisualEditor', () => { - cy.contains('Microsoft.IntentRule').should('exist'); + cy.contains('Microsoft.OnIntent').should('exist'); }); cy.addEventHandler('Handle Unknown Intent'); cy.wait(100); cy.withinEditor('VisualEditor', () => { - cy.contains('Microsoft.UnknownIntentRule').should('exist'); + cy.contains('Microsoft.OnUnknownIntent').should('exist'); }); cy.addEventHandler('Handle ConversationUpdate'); cy.wait(100); cy.withinEditor('VisualEditor', () => { - cy.contains('Microsoft.ConversationUpdateActivityRule').should('exist'); + cy.contains('Microsoft.OnConversationUpdateActivity').should('exist'); }); }); }); diff --git a/Composer/packages/client/__tests__/constants.json b/Composer/packages/client/__tests__/constants.json index faeecd6fd2..329e14379f 100644 --- a/Composer/packages/client/__tests__/constants.json +++ b/Composer/packages/client/__tests__/constants.json @@ -10,7 +10,7 @@ }, "rules": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnEvent", "$designer": { "id": "335456", "updatedAt": "2019-07-22T08:10:44.402Z" @@ -23,7 +23,7 @@ { "id": "rules[0]", "displayName": "", - "type": "Microsoft.EventRule", + "type": "Microsoft.OnEvent", "isIntent": false } ] @@ -39,7 +39,7 @@ }, "rules": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnEvent", "$designer": { "id": "480162", "updatedAt": "2019-07-22T08:10:50.068Z" @@ -55,7 +55,7 @@ { "id": "rules[0]", "displayName": "", - "type": "Microsoft.EventRule", + "type": "Microsoft.OnEvent", "isIntent": false } ] @@ -73,7 +73,7 @@ "$schema": "../../app.schema", "rules": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnEvent", "$designer": { "id": "768658" }, @@ -85,7 +85,7 @@ { "id": "rules[0]", "displayName": "", - "type": "Microsoft.EventRule", + "type": "Microsoft.OnEvent", "isIntent": false } ] @@ -102,14 +102,14 @@ }, "rules": [ { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "id": "376720" }, "steps": [] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "id": "064505" }, @@ -117,7 +117,7 @@ "intent": "AddIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "id": "114961" }, @@ -125,7 +125,7 @@ "intent": "DeleteIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "id": "088050" }, @@ -133,7 +133,7 @@ "intent": "ClearIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "id": "633942" }, @@ -141,7 +141,7 @@ "intent": "HelpIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "id": "794124" }, @@ -149,7 +149,7 @@ "intent": "ShowIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "id": "179728" }, @@ -157,7 +157,7 @@ "intent": "CancelIntent" }, { - "$type": "Microsoft.UnknownIntentRule", + "$type": "Microsoft.OnUnknownIntent", "$designer": { "id": "677447" }, @@ -170,49 +170,49 @@ { "id": "rules[0]", "displayName": "", - "type": "Microsoft.ConversationUpdateActivityRule", + "type": "Microsoft.OnConversationUpdateActivity", "isIntent": false }, { "id": "rules[1]", "displayName": "#AddIntent", - "type": "Microsoft.IntentRule", + "type": "Microsoft.OnIntent", "isIntent": true }, { "id": "rules[2]", "displayName": "#DeleteIntent", - "type": "Microsoft.IntentRule", + "type": "Microsoft.OnIntent", "isIntent": true }, { "id": "rules[3]", "displayName": "#ClearIntent", - "type": "Microsoft.IntentRule", + "type": "Microsoft.OnIntent", "isIntent": true }, { "id": "rules[4]", "displayName": "#HelpIntent", - "type": "Microsoft.IntentRule", + "type": "Microsoft.OnIntent", "isIntent": true }, { "id": "rules[5]", "displayName": "#ShowIntent", - "type": "Microsoft.IntentRule", + "type": "Microsoft.OnIntent", "isIntent": true }, { "id": "rules[6]", "displayName": "#CancelIntent", - "type": "Microsoft.IntentRule", + "type": "Microsoft.OnIntent", "isIntent": true }, { "id": "rules[7]", "displayName": "", - "type": "Microsoft.UnknownIntentRule", + "type": "Microsoft.OnUnknownIntent", "isIntent": false } ] @@ -228,7 +228,7 @@ }, "rules": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnEvent", "$designer": { "id": "783343" }, @@ -240,7 +240,7 @@ { "id": "rules[0]", "displayName": "", - "type": "Microsoft.EventRule", + "type": "Microsoft.OnEvent", "isIntent": false } ] diff --git a/Composer/packages/client/src/store/reducer/index.ts b/Composer/packages/client/src/store/reducer/index.ts index cf74013780..21667aac52 100644 --- a/Composer/packages/client/src/store/reducer/index.ts +++ b/Composer/packages/client/src/store/reducer/index.ts @@ -139,7 +139,7 @@ const setDesignPageLocation: ReducerFunc = (state, { dialogId, selected, focused //add current path to the breadcrumb breadcrumb.push({ dialogId, selected, focused }); - //if use navigateto to design page, add rules[0] for default select + //if use navigateto to design page, add events[0] for default select if (!selected) { selected = createSelectedPath(0); breadcrumb = [...breadcrumb, { dialogId, selected, focused }]; diff --git a/Composer/packages/client/src/utils/dialogUtil.ts b/Composer/packages/client/src/utils/dialogUtil.ts index 2b810e1f81..f2e8c7b010 100644 --- a/Composer/packages/client/src/utils/dialogUtil.ts +++ b/Composer/packages/client/src/utils/dialogUtil.ts @@ -55,22 +55,22 @@ export function insert(content, path: string, position: number | undefined, $typ export function addNewTrigger(dialogs: DialogInfo[], dialogId: string, $type: string) { const dialogCopy = getDialog(dialogs, dialogId); if (!dialogCopy) return; - return insert(dialogCopy.content, 'rules', undefined, $type); + return insert(dialogCopy.content, 'events', undefined, $type); } export function createSelectedPath(selected: number) { - return `rules[${selected}]`; + return `events[${selected}]`; } export function createFocusedPath(selected: number, focused: number) { - return `rules[${selected}].steps[${focused}]`; + return `events[${selected}].actions[${focused}]`; } export function deleteTrigger(dialogs: DialogInfo[], dialogId: string, index: number) { const dialogCopy = getDialog(dialogs, dialogId); if (!dialogCopy) return null; const content = dialogCopy.content; - content.rules.splice(index, 1); + content.events.splice(index, 1); return content; } diff --git a/Composer/packages/extensions/obiformeditor/demo/src/editorschema.json b/Composer/packages/extensions/obiformeditor/demo/src/editorschema.json index cdc668f94d..37f3fb0fe0 100644 --- a/Composer/packages/extensions/obiformeditor/demo/src/editorschema.json +++ b/Composer/packages/extensions/obiformeditor/demo/src/editorschema.json @@ -47,8 +47,8 @@ "Microsoft.EndTurn": { "title": "EndTurn" }, - "Microsoft.EventRule": { - "title": "EventRule" + "Microsoft.OnEvent": { + "title": "OnEvent" }, "Microsoft.FirstSelector": { "title": "FirstSelector" @@ -62,8 +62,8 @@ "Microsoft.InitProperty": { "title": "InitProperty" }, - "Microsoft.IntentRule": { - "title": "IntentRule" + "Microsoft.OnIntent": { + "title": "OnIntent" }, "Microsoft.LanguagePolicy": { "title": "LanguagePolicy" @@ -129,8 +129,8 @@ "Microsoft.TrueSelector": { "title": "TrueSelector" }, - "Microsoft.UnknownIntentRule": { - "title": "UnknownIntentRule" + "Microsoft.OnUnknownIntent": { + "title": "OnUnknownIntent" }, "Microsoft.OAuthInput": { "title": "OAuth Login" diff --git a/Composer/packages/extensions/obiformeditor/src/Form/fields/CasesField.tsx b/Composer/packages/extensions/obiformeditor/src/Form/fields/CasesField.tsx index ff36619fc4..d3052c6236 100644 --- a/Composer/packages/extensions/obiformeditor/src/Form/fields/CasesField.tsx +++ b/Composer/packages/extensions/obiformeditor/src/Form/fields/CasesField.tsx @@ -103,7 +103,7 @@ export const CasesField: React.FC> = props => { if (i.value === caseName) { return { ...i, - steps: caseSteps, + actions: caseSteps, }; } @@ -134,8 +134,8 @@ export const CasesField: React.FC> = props => { {...props} title={`Branch: ${item.value}`} - formData={item.steps} - navPrefix={`cases[${itemIdx}].steps`} + formData={item.actions} + navPrefix={`cases[${itemIdx}].actions`} onChange={handleStepsUpdate(item.value)} > {({ createNewItemAtIndex }) => ( @@ -160,7 +160,7 @@ export const CasesField: React.FC> = props => { }} type="button" > - {formatMessage('Add New Step for { caseName }', { caseName: item.value })} + {formatMessage('Add New Action for { caseName }', { caseName: item.value })} )} diff --git a/Composer/packages/extensions/obiformeditor/src/Form/fields/RulesField.tsx b/Composer/packages/extensions/obiformeditor/src/Form/fields/RulesField.tsx index be0f7bb64d..834af0c0f4 100644 --- a/Composer/packages/extensions/obiformeditor/src/Form/fields/RulesField.tsx +++ b/Composer/packages/extensions/obiformeditor/src/Form/fields/RulesField.tsx @@ -16,7 +16,7 @@ const renderTitle = (item: MicrosoftIRule) => { return friendlyName; } - const intentName = (item as IntentRule).intent; + const intentName = (item as OnIntent).intent; if (intentName) { return intentName; } @@ -33,7 +33,7 @@ export function RulesField(props: FieldProps) { {...overrides} dialogOptionsOpts={{ include: [DialogGroup.EVENTS], subMenu: false }} label={formatMessage('Add New Rule')} - navPrefix="rules" + navPrefix="events" renderTitle={renderTitle} > {({ createNewItemAtIndex }) => ( diff --git a/Composer/packages/extensions/obiformeditor/src/schema/appschema.ts b/Composer/packages/extensions/obiformeditor/src/schema/appschema.ts index fb46ca36c4..98c8a87ec8 100644 --- a/Composer/packages/extensions/obiformeditor/src/schema/appschema.ts +++ b/Composer/packages/extensions/obiformeditor/src/schema/appschema.ts @@ -4,10 +4,10 @@ export const FIELDS_TO_HIDE = ['$id', '$type', '$copy', '$designer', 'inputBindi /** Types that can be represented by a sub tree in the graph */ export const COMPOUND_TYPES = [ 'Microsoft.AdaptiveDialog', - 'Microsoft.EventRule', - 'Microsoft.IntentRule', - 'Microsoft.UnknownIntentRule', - 'Microsoft.ConversationUpdateActivityRule', + 'Microsoft.OnEvent', + 'Microsoft.OnIntent', + 'Microsoft.OnUnknownIntent', + 'Microsoft.OnConversationUpdateActivity', ]; export const appschema: JSONSchema6 = { @@ -21,13 +21,13 @@ export const appschema: JSONSchema6 = { 'Microsoft.AdaptiveDialog': { $role: 'unionType(Microsoft.IDialog)', title: 'Adaptive Dialog', - description: 'This configures a data driven dialog via a collection of steps/dialogs.', + description: 'Configures a data driven dialog via a collection of actions/dialogs.', type: 'object', properties: { $type: { title: '$type', description: - 'This defines the valid properties for the component being configured (from a dialog .schema file)', + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', const: 'Microsoft.AdaptiveDialog', @@ -49,19 +49,26 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - property: { - $role: 'memoryPath', - title: 'Property', - description: 'The property in memory used to store customer input.', - examples: ['turn.birthday'], + id: { type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, }, inputBindings: { type: 'object', title: 'Input Bindings', description: 'This defines properties which be passed as arguments to this dialog', - examples: ['turn.birthday'], + examples: ['value.birthday'], additionalProperties: { type: 'string', }, @@ -70,7 +77,7 @@ export const appschema: JSONSchema6 = { $role: 'memoryPath', title: 'Output Property binding', description: 'This is the property which the EndDialog(result) will be set to when EndDialog() is called', - examples: ['turn.birthday'], + examples: ['value.birthday'], type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', }, @@ -78,12 +85,18 @@ export const appschema: JSONSchema6 = { type: 'boolean', title: 'Auto End Dialog', description: - 'If this is true the dialog will automatically end when there are no more steps to run. If this is false it is the responsbility of the author to call EndDialog at an appropriate time.', - default: true, + 'If this is true the dialog will automatically end when there are no more actions to run. If this is false it is the responsbility of the author to call EndDialog at an appropriate time.', + default: 'true', + }, + defaultResultProperty: { + type: 'string', + title: 'Default Result Property', + description: + 'Property path to the memory to return as the result of this dialog ending because AutoEndDialog is true and there are no more actions to execute.', + default: 'dialog.result', }, recognizer: { $type: 'Microsoft.IRecognizer', - type: 'object', title: 'Recognizer', description: 'Configured recognizer to generate intent and entites from user utterance', $ref: '#/definitions/Microsoft.IRecognizer', @@ -92,30 +105,60 @@ export const appschema: JSONSchema6 = { $type: 'Microsoft.ILanguageGenerator', title: 'Language Generator', description: 'Language generator to use for this dialog. (aka: LG file)', - type: 'string', + $ref: '#/definitions/Microsoft.ILanguageGenerator', }, // selector: { - // $type: 'Microsoft.IRuleSelector', + // $type: 'Microsoft.IEventSelector', // title: 'Selector', // description: 'Policy for how to select rule to execute next', - // $ref: '#/definitions/Microsoft.IRuleSelector', + // $ref: '#/definitions/Microsoft.IEventSelector', // }, - steps: { + events: { type: 'array', - title: 'Actions', - description: 'This is the initial sequence of steps to execute when this dialog is started.', + description: 'Events to use to evaluate conversation', items: { - $type: 'Microsoft.IDialog', - $ref: '#/definitions/Microsoft.IDialog', + $type: 'Microsoft.IOnEvent', + $ref: '#/definitions/Microsoft.IOnEvent', }, }, - rules: { - type: 'array', - description: 'This is the array of rules to use to evaluate conversation', - items: { - $type: 'Microsoft.IRule', - $ref: '#/definitions/Microsoft.IRule', - }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.AgeEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Age Entity Recognizer', + description: 'Recognizer which recognizes age.', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.AgeEntityRecognizer', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Designer.', }, }, additionalProperties: false, @@ -154,33 +197,23 @@ export const appschema: JSONSchema6 = { $designer: { title: '$designer', type: 'object', - description: 'Extra information for the Bot Framework Designer.', + description: 'Extra information for the Bot Framework Composer.', }, - property: { - $role: 'memoryPath', - title: 'Property', - description: 'This is that will be passed in as InputProperty and also set as the OutputProperty', - examples: ['value.birthday', 'user.name'], + id: { type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], }, - inputBindings: { - type: 'object', - title: 'Input Bindings', - description: 'This defines properties which be passed as arguments to this dialog', - examples: ['value.birthday'], - additionalProperties: { + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { type: 'string', }, }, - outputBinding: { - $role: 'memoryPath', - title: 'Output Property binding', - description: 'This is the property which the EndDialog(result) will be set to when EndDialog() is called', - examples: ['value.birthday'], - type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - }, prompt: { $type: 'Microsoft.IActivityTemplate', title: 'Initial Prompt', @@ -202,6 +235,16 @@ export const appschema: JSONSchema6 = { examples: ['No date was recognized'], $ref: '#/definitions/Microsoft.IActivityTemplate', }, + defaultValueResponse: { + $type: 'Microsoft.IActivityTemplate', + title: 'Default Value Response', + description: + 'The message to send to when max turn count has been exceeded and the default value is selected as the value.', + examples: [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it.", + ], + $ref: '#/definitions/Microsoft.IActivityTemplate', + }, maxTurnCount: { type: 'integer', title: 'Max Turn Count', @@ -212,8 +255,7 @@ export const appschema: JSONSchema6 = { validations: { type: 'array', title: 'Validation Expressions', - description: - 'These are expressions used to validate the customer response. The response is considered invalid if any of these evaluate to false.', + description: 'Expressions to validate an input.', items: { $role: 'expression', type: 'string', @@ -226,6 +268,13 @@ export const appschema: JSONSchema6 = { description: 'The expression that you evaluated for input.', type: 'string', }, + property: { + $role: 'expression', + title: 'Property', + description: 'Property that this input dialog is bound to', + examples: ['$birthday'], + type: 'string', + }, defaultValue: { $role: 'expression', title: 'Default Value', @@ -246,7 +295,7 @@ export const appschema: JSONSchema6 = { title: 'Allow Interruptions', description: "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - default: 'never', + default: 'notRecognized', examples: ['notRecognized'], }, outputFormat: { @@ -267,13 +316,13 @@ export const appschema: JSONSchema6 = { 'Microsoft.BeginDialog': { $role: 'unionType(Microsoft.IDialog)', title: 'Begin Dialog', - description: 'Begin a child dialog, then resume from this point.', + description: 'Action which begins another dialog (and when that dialog is done, it will return the caller).', type: 'object', properties: { $type: { title: '$type', description: - 'This defines the valid properties for the component being configured (from a dialog .schema file)', + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', const: 'Microsoft.BeginDialog', @@ -295,26 +344,42 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, dialog: { $type: 'Microsoft.IDialog', title: 'Dialog', - description: 'Select a dialog to call at this point.', + description: 'This is the dialog to call.', type: 'string', }, options: { type: 'object', - title: 'Options', - description: - 'Define options to pass to this dialog. These will be available in the child dialog as dialog.options..', - additionalProperties: true, + title: 'Options binding', + description: 'Bindings to configure the options object to pass to the dialog.', + additionalProperties: { + type: 'string', + title: 'Options', + }, }, property: { - $role: 'memoryPath', + $role: 'expression', title: 'Property', - description: 'The property in memory used to store the results of this dialog.', + description: 'The property to bind to the dialog and store the result in', examples: ['user.name'], type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', }, }, additionalProperties: false, @@ -327,7 +392,8 @@ export const appschema: JSONSchema6 = { 'Microsoft.CancelAllDialogs': { $role: 'unionType(Microsoft.IDialog)', title: 'Cancel All Dialogs', - description: 'The command used to cancel all current dialogs running.', + description: + 'Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.', type: 'object', properties: { $type: { @@ -355,6 +421,21 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, eventName: { title: 'Event Name', description: 'The name of event to emit', @@ -377,8 +458,7 @@ export const appschema: JSONSchema6 = { 'Microsoft.ChoiceInput': { $role: 'unionType(Microsoft.IDialog)', title: 'ChoiceInput Dialog', - description: - 'This represents a dialog that confirms multiple choices; for instance it might ask customers to select one from a list offered.', + description: 'This represents a dialog which gathers a choice responses', type: 'object', definitions: { choice: { @@ -398,7 +478,7 @@ export const appschema: JSONSchema6 = { synonyms: { type: 'array', title: 'Synonyms', - description: 'An optional list of synonyms that can be used to select this choice.', + description: 'the list of synonyms to recognize in addition to the value. This is optional.', items: { type: 'string', }, @@ -433,33 +513,23 @@ export const appschema: JSONSchema6 = { $designer: { title: '$designer', type: 'object', - description: 'Extra information for the Bot Framework Designer.', + description: 'Extra information for the Bot Framework Composer.', }, - property: { - $role: 'memoryPath', - title: 'Property', - description: 'The property in memory used to store customer input.', - examples: ['value.birthday', 'user.name'], + id: { type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], }, - inputBindings: { - type: 'object', - title: 'Input Bindings', - description: 'This defines properties which be passed as arguments to this dialog', - examples: ['value.birthday'], - additionalProperties: { + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { type: 'string', }, }, - outputBinding: { - $role: 'memoryPath', - title: 'Output Property binding', - description: 'This is the property which the EndDialog(result) will be set to when EndDialog() is called', - examples: ['value.birthday'], - type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - }, prompt: { $type: 'Microsoft.IActivityTemplate', title: 'Initial Prompt', @@ -481,6 +551,16 @@ export const appschema: JSONSchema6 = { examples: ['No date was recognized'], $ref: '#/definitions/Microsoft.IActivityTemplate', }, + defaultValueResponse: { + $type: 'Microsoft.IActivityTemplate', + title: 'Default Value Response', + description: + 'The message to send to when max turn count has been exceeded and the default value is selected as the value.', + examples: [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it.", + ], + $ref: '#/definitions/Microsoft.IActivityTemplate', + }, maxTurnCount: { type: 'integer', title: 'Max Turn Count', @@ -491,8 +571,7 @@ export const appschema: JSONSchema6 = { validations: { type: 'array', title: 'Validation Expressions', - description: - 'These are expressions used to validate the customer response. The response is considered invalid if any of these evaluate to false.', + description: 'Expressions to validate an input.', items: { $role: 'expression', type: 'string', @@ -505,6 +584,13 @@ export const appschema: JSONSchema6 = { description: 'The expression that you evaluated for input.', type: 'string', }, + property: { + $role: 'expression', + title: 'Property', + description: 'Property that this input dialog is bound to', + examples: ['$birthday'], + type: 'string', + }, defaultValue: { $role: 'expression', title: 'Default Value', @@ -525,7 +611,7 @@ export const appschema: JSONSchema6 = { title: 'Allow Interruptions', description: "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - default: 'never', + default: 'notRecognized', examples: ['notRecognized'], }, outputFormat: { @@ -664,7 +750,7 @@ export const appschema: JSONSchema6 = { }, }, }, - cardAction: { + CardAction: { type: 'object', }, }, @@ -692,33 +778,23 @@ export const appschema: JSONSchema6 = { $designer: { title: '$designer', type: 'object', - description: 'Extra information for the Bot Framework Designer.', + description: 'Extra information for the Bot Framework Composer.', }, - property: { - $role: 'memoryPath', - title: 'Property', - description: 'This is that will be passed in as InputProperty and also set as the OutputProperty', - examples: ['value.birthday', 'user.name'], + id: { type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], }, - inputBindings: { - type: 'object', - title: 'Input Bindings', - description: 'This defines properties which be passed as arguments to this dialog', - examples: ['value.birthday'], - additionalProperties: { + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { type: 'string', }, }, - outputBinding: { - $role: 'memoryPath', - title: 'Output Property binding', - description: 'This is the property which the EndDialog(result) will be set to when EndDialog() is called', - examples: ['value.birthday'], - type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - }, prompt: { $type: 'Microsoft.IActivityTemplate', title: 'Initial Prompt', @@ -740,6 +816,16 @@ export const appschema: JSONSchema6 = { examples: ['No date was recognized'], $ref: '#/definitions/Microsoft.IActivityTemplate', }, + defaultValueResponse: { + $type: 'Microsoft.IActivityTemplate', + title: 'Default Value Response', + description: + 'The message to send to when max turn count has been exceeded and the default value is selected as the value.', + examples: [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it.", + ], + $ref: '#/definitions/Microsoft.IActivityTemplate', + }, maxTurnCount: { type: 'integer', title: 'Max Turn Count', @@ -750,8 +836,7 @@ export const appschema: JSONSchema6 = { validations: { type: 'array', title: 'Validation Expressions', - description: - 'These are expressions used to validate the customer response. The response is considered invalid if any of these evaluate to false.', + description: 'Expressions to validate an input.', items: { $role: 'expression', type: 'string', @@ -764,6 +849,13 @@ export const appschema: JSONSchema6 = { description: 'The expression that you evaluated for input.', type: 'string', }, + property: { + $role: 'expression', + title: 'Property', + description: 'Property that this input dialog is bound to', + examples: ['$birthday'], + type: 'string', + }, defaultValue: { $role: 'expression', title: 'Default Value', @@ -784,7 +876,7 @@ export const appschema: JSONSchema6 = { title: 'Allow Interruptions', description: "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - default: 'never', + default: 'notRecognized', examples: ['notRecognized'], }, defaultLocale: { @@ -865,10 +957,10 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.DateTimeInput': { - $role: 'unionType(Microsoft.IDialog)', - title: 'DateTimeInput Dialog', - description: 'This represents a dialog which gathers Date or Time or DateTime from the user', + 'Microsoft.ConfirmationEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Confirmation Entity Recognizer', + description: 'Recognizer which recognizes confirmation choices (yes/no).', type: 'object', properties: { $type: { @@ -877,7 +969,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.DateTimeInput', + const: 'Microsoft.ConfirmationEntityRecognizer', }, $copy: { title: '$copy', @@ -894,53 +986,170 @@ export const appschema: JSONSchema6 = { $designer: { title: '$designer', type: 'object', - description: 'Extra information for the Bot Framework Designer.', + description: 'Extra information for the Bot Framework Composer.', }, - property: { - $role: 'memoryPath', - title: 'Property', - description: 'This is that will be passed in as InputProperty and also set as the OutputProperty', - examples: ['value.birthday', 'user.name'], + }, + additionalProperties: false, + patternProperties: { + '^\\$': { type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - }, - inputBindings: { - type: 'object', - title: 'Input Bindings', - description: 'This defines properties which be passed as arguments to this dialog', - examples: ['value.birthday'], - additionalProperties: { - type: 'string', - }, }, - outputBinding: { - $role: 'memoryPath', - title: 'Output Property binding', - description: 'This is the property which the EndDialog(result) will be set to when EndDialog() is called', - examples: ['value.birthday'], + }, + }, + 'Microsoft.CurrencyEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Currency Entity Recognizer', + description: 'Recognizer which recognizes currency.', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.CurrencyEntityRecognizer', }, - prompt: { - $type: 'Microsoft.IActivityTemplate', - title: 'Initial Prompt', - description: 'The message to send to as prompt for this input.', - examples: ['What is your birth date?'], - $ref: '#/definitions/Microsoft.IActivityTemplate', + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', }, - unrecognizedPrompt: { - $type: 'Microsoft.IActivityTemplate', - title: 'Unrecognized Prompt', - description: 'The message to send if the last input is not recognized.', - examples: ["Let's try again. What is your birth date?"], - $ref: '#/definitions/Microsoft.IActivityTemplate', + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', }, - invalidPrompt: { - $type: 'Microsoft.IActivityTemplate', - title: 'Invalid Prompt', - description: 'The message to send to when then input was not valid for the input type.', - examples: ['No date was recognized'], - $ref: '#/definitions/Microsoft.IActivityTemplate', + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.DateTimeEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'DateTime Entity Recognizer', + description: 'Recognizer which recognizes dates and time fragments.', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.DateTimeEntityRecognizer', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.DateTimeInput': { + $role: 'unionType(Microsoft.IDialog)', + title: 'DateTimeInput Dialog', + description: 'This represents a dialog which gathers Date or Time or DateTime from the user', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.DateTimeInput', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, + prompt: { + $type: 'Microsoft.IActivityTemplate', + title: 'Initial Prompt', + description: 'The message to send to as prompt for this input.', + examples: ['What is your birth date?'], + $ref: '#/definitions/Microsoft.IActivityTemplate', + }, + unrecognizedPrompt: { + $type: 'Microsoft.IActivityTemplate', + title: 'Unrecognized Prompt', + description: 'The message to send if the last input is not recognized.', + examples: ["Let's try again. What is your birth date?"], + $ref: '#/definitions/Microsoft.IActivityTemplate', + }, + invalidPrompt: { + $type: 'Microsoft.IActivityTemplate', + title: 'Invalid Prompt', + description: 'The message to send to when then input was not valid for the input type.', + examples: ['No date was recognized'], + $ref: '#/definitions/Microsoft.IActivityTemplate', + }, + defaultValueResponse: { + $type: 'Microsoft.IActivityTemplate', + title: 'Default Value Response', + description: + 'The message to send to when max turn count has been exceeded and the default value is selected as the value.', + examples: [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it.", + ], + $ref: '#/definitions/Microsoft.IActivityTemplate', }, maxTurnCount: { type: 'integer', @@ -952,8 +1161,7 @@ export const appschema: JSONSchema6 = { validations: { type: 'array', title: 'Validation Expressions', - description: - 'These are expressions used to validate the customer response. The response is considered invalid if any of these evaluate to false.', + description: 'Expressions to validate an input.', items: { $role: 'expression', type: 'string', @@ -966,6 +1174,13 @@ export const appschema: JSONSchema6 = { description: 'The expression that you evaluated for input.', type: 'string', }, + property: { + $role: 'expression', + title: 'Property', + description: 'Property that this input dialog is bound to', + examples: ['$birthday'], + type: 'string', + }, defaultValue: { $role: 'expression', title: 'Default Value', @@ -986,7 +1201,7 @@ export const appschema: JSONSchema6 = { title: 'Allow Interruptions', description: "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - default: 'never', + default: 'notRecognized', examples: ['notRecognized'], }, defaultLocale: { @@ -1005,14 +1220,14 @@ export const appschema: JSONSchema6 = { }, 'Microsoft.DebugBreak': { $role: 'unionType(Microsoft.IDialog)', - title: 'Debugger Break Step', - description: 'If the debugger is attached, do a debugger break at this point', + title: 'Debugger Break Action', + description: 'If debugger is attached, do a debugger break at this point', type: 'object', properties: { $type: { title: '$type', description: - 'This defines the valid properties for the component being configured (from a dialog .schema file)', + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', const: 'Microsoft.DebugBreak', @@ -1034,6 +1249,21 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, }, additionalProperties: false, patternProperties: { @@ -1044,8 +1274,8 @@ export const appschema: JSONSchema6 = { }, 'Microsoft.DeleteProperty': { $role: 'unionType(Microsoft.IDialog)', - title: 'Delete PropertyS', - description: 'Remove a property from memory.', + title: 'Delete Property', + description: 'This is a action which allows you to remove a property from memory', type: 'object', properties: { $type: { @@ -1073,12 +1303,26 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, property: { - $role: 'memoryPath', + $role: 'expression', title: 'Property', - description: 'The property in memory to delete.', + description: 'The Memory property path to delete', type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', }, }, additionalProperties: false, @@ -1088,10 +1332,10 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.EditArray': { - $role: 'unionType(Microsoft.IDialog)', - title: 'Edit Array Step', - description: 'This lets you add or remove items from an array in the memory of the bot.', + 'Microsoft.DimensionEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Dimension Entity Recognizer', + description: 'Recognizer which recognizes dimension.', type: 'object', properties: { $type: { @@ -1100,7 +1344,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.EditArray', + const: 'Microsoft.DimensionEntityRecognizer', }, $copy: { title: '$copy', @@ -1119,31 +1363,6 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - changeType: { - type: 'string', - title: 'Change Type', - description: 'This specifies which operation to perform in the array, like adding or removing an item.', - enum: ['Push', 'Pop', 'Take', 'Remove', 'Clear'], - }, - arrayProperty: { - $role: 'memoryPath', - type: 'string', - title: 'Array Property', - description: 'Property in memory containing the array to manipulate.', - }, - resultProperty: { - $role: 'memoryPath', - type: 'string', - title: 'Result Property', - description: 'Property in memory where the result of this action will be stored.', - }, - value: { - $role: 'expression', - type: 'string', - title: 'Value of the Item', - description: 'Expression or property in memory that contains the item to add or remove.', - examples: ['dialog.todo'], - }, }, additionalProperties: false, patternProperties: { @@ -1152,19 +1371,19 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.EditSteps': { + 'Microsoft.EditActions': { $role: 'unionType(Microsoft.IDialog)', - title: 'EditSteps', - description: 'This provides a mechanism to edit the content of the current dialog at run time.', + title: 'EditActions Action', + description: 'Edit current dialog with changeType and Actions', type: 'object', properties: { $type: { title: '$type', description: - 'Defines the valid properties for the component you are configuring (from a dialog .schema file).', + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.EditSteps', + const: 'Microsoft.EditActions', }, $copy: { title: '$copy', @@ -1183,16 +1402,31 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, changeType: { type: 'string', title: 'Change Type', - description: 'Specify the type of change to apply to this dialog.', - enum: ['InsertSteps', 'InsertStepsBeforeTags', 'AppendSteps', 'EndSequence', 'ReplaceSequence'], + description: 'The change type to apply to current dialog', + enum: ['InsertActions', 'InsertActionsBeforeTags', 'AppendActions', 'EndSequence', 'ReplaceSequence'], }, - steps: { + actions: { type: 'array', title: 'Actions', - description: 'These new actions will be applied bas.', + description: 'Actions to execute', items: { $type: 'Microsoft.IDialog', $ref: '#/definitions/Microsoft.IDialog', @@ -1206,10 +1440,10 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.EmitEvent': { + 'Microsoft.EditArray': { $role: 'unionType(Microsoft.IDialog)', - title: 'Emit Event Step', - description: 'Emit a custom event.', + title: 'Edit Array Action', + description: 'This is a action which allows you to modify an array in memory', type: 'object', properties: { $type: { @@ -1218,7 +1452,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.EmitEvent', + const: 'Microsoft.EditArray', }, $copy: { title: '$copy', @@ -1237,22 +1471,45 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - eventName: { - title: 'Event Name', - description: 'The name of the event to emit.', + id: { type: 'string', - pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], }, - eventValue: { - type: 'object', - title: 'Event Value', - description: 'An optional value to include in the custom event.', - additionalProperties: true, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, }, - bubbleEvent: { - type: 'boolean', - title: 'Bubble Event', - description: 'If set, this event will propagate to parent dialogs.', + changeType: { + type: 'string', + title: 'Change Type', + description: 'The array operation to perform', + enum: ['Push', 'Pop', 'Take', 'Remove', 'Clear'], + }, + arrayProperty: { + $role: 'expression', + title: 'Array Property', + description: 'Memory expression of the array to manipulate.', + type: 'string', + }, + resultProperty: { + $role: 'expression', + title: 'Result Property', + description: 'Memory expression of the result of this action.', + type: 'string', + }, + value: { + $role: 'expression', + title: 'Value of the Item', + description: 'Expression to evaluate.', + examples: ['dialog.todo'], + type: 'string', }, }, additionalProperties: false, @@ -1262,10 +1519,10 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.EndDialog': { - $role: 'unionType(Microsoft.IDialog)', - title: 'End Dialog', - description: 'Command which ends the current dialog, returning the resultProperty as the result of the dialog.', + 'Microsoft.EmailEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Email Entity Recognizer', + description: 'Recognizer which recognizes email.', type: 'object', properties: { $type: { @@ -1274,7 +1531,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.EndDialog', + const: 'Microsoft.EmailEntityRecognizer', }, $copy: { title: '$copy', @@ -1293,14 +1550,6 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - property: { - $role: 'memoryPath', - title: 'Return Value', - description: 'The property in memory that is returned to the parent dialog.', - examples: ['dialog.name'], - type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - }, }, additionalProperties: false, patternProperties: { @@ -1309,10 +1558,10 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.EndTurn': { + 'Microsoft.EmitEvent': { $role: 'unionType(Microsoft.IDialog)', - title: 'End Turn', - description: 'End the current turn without ending the dialog, causing the bot to pause for additional input.', + title: 'Emit Event Action', + description: 'This is a action which allows you to emit an event', type: 'object', properties: { $type: { @@ -1321,7 +1570,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.EndTurn', + const: 'Microsoft.EmitEvent', }, $copy: { title: '$copy', @@ -1340,6 +1589,58 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, + eventName: { + title: 'Event Name', + description: 'The name of event to emit', + type: 'string', + // anyOf: [ + // { + // enum: [ + // 'beginDialog', + // 'resumeDialog', + // 'repromptDialog', + // 'cancelDialog', + // 'endDialog', + // 'activityReceived', + // 'recognizedIntent', + // 'unknownIntent', + // 'actionsStarted', + // 'actionsSaved', + // 'actionsEnded', + // 'actionsResumed', + // ], + // }, + // { + // type: 'string', + // }, + // ], + }, + eventValue: { + type: 'object', + title: 'Event Value', + description: 'Optional value to emit along with the event', + additionalProperties: true, + }, + bubbleEvent: { + type: 'boolean', + title: 'Bubble Event', + description: 'If true this event should propagate to parent dialogs', + }, }, additionalProperties: false, patternProperties: { @@ -1348,11 +1649,11 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.EventRule': { - title: 'Event Rule', - description: 'Defines actions the bot will take in response to an event.', + 'Microsoft.EndDialog': { + $role: 'unionType(Microsoft.IDialog)', + title: 'End Dialog', + description: 'Command which ends the current dialog, returning the resultProperty as the result of the dialog.', type: 'object', - $role: 'unionType(Microsoft.IRule)', properties: { $type: { title: '$type', @@ -1360,7 +1661,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.EventRule', + const: 'Microsoft.EndDialog', }, $copy: { title: '$copy', @@ -1379,43 +1680,79 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - constraint: { - $role: 'expression', - title: 'Constraint', - description: - 'An optional expression containing additional requirements which must be met for this event to fire.', - examples: ['user.vip == true'], + id: { type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], }, - steps: { + tags: { type: 'array', - title: 'Actions', - description: 'These are the steps the bot will be execute when this event fires.', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], items: { - $type: 'Microsoft.IDialog', - $ref: '#/definitions/Microsoft.IDialog', + type: 'string', }, }, - events: { - title: 'Events', - type: 'array', - description: 'Select the types of event that will trigger this handler.', - items: { + property: { + $role: 'expression', + description: 'Specifies a path to memory should be returned as the result to the calling dialog.', + examples: ['dialog.name'], + type: 'string', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.EndTurn': { + $role: 'unionType(Microsoft.IDialog)', + title: 'End Turn', + description: 'End the current turn without ending the dialog.', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.EndTurn', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { type: 'string', - enum: [ - 'beginDialog', - 'resumeDialog', - 'repromptDialog', - 'cancelDialog', - 'endDialog', - 'activityReceived', - 'recognizedIntent', - 'unknownIntent', - 'stepsStarted', - 'stepsSaved', - 'stepsEnded', - 'stepsResumed', - ], }, }, }, @@ -1426,10 +1763,109 @@ export const appschema: JSONSchema6 = { }, }, }, + 'Microsoft.EntityRecognizer': { + $role: 'unionType', + title: 'Entity Recognizer', + description: 'Union of components which derive from EntityRecognizer abstract class.', + type: 'object', + oneOf: [ + { + title: 'Microsoft.AgeEntityRecognizer', + description: 'Recognizer which recognizes age.', + $ref: '#/definitions/Microsoft.AgeEntityRecognizer', + }, + { + title: 'Microsoft.ConfirmationEntityRecognizer', + description: 'Recognizer which recognizes confirmation choices (yes/no).', + $ref: '#/definitions/Microsoft.ConfirmationEntityRecognizer', + }, + { + title: 'Microsoft.CurrencyEntityRecognizer', + description: 'Recognizer which recognizes currency.', + $ref: '#/definitions/Microsoft.CurrencyEntityRecognizer', + }, + { + title: 'Microsoft.DateTimeEntityRecognizer', + description: 'Recognizer which recognizes dates and time fragments.', + $ref: '#/definitions/Microsoft.DateTimeEntityRecognizer', + }, + { + title: 'Microsoft.DimensionEntityRecognizer', + description: 'Recognizer which recognizes dimension.', + $ref: '#/definitions/Microsoft.DimensionEntityRecognizer', + }, + { + title: 'Microsoft.EmailEntityRecognizer', + description: 'Recognizer which recognizes email.', + $ref: '#/definitions/Microsoft.EmailEntityRecognizer', + }, + { + title: 'Microsoft.GuidEntityRecognizer', + description: 'Recognizer which recognizes guids.', + $ref: '#/definitions/Microsoft.GuidEntityRecognizer', + }, + { + title: 'Microsoft.HashtagEntityRecognizer', + description: 'Recognizer which recognizes Hashtags.', + $ref: '#/definitions/Microsoft.HashtagEntityRecognizer', + }, + { + title: 'Microsoft.IpEntityRecognizer', + description: 'Recognizer which recognizes internet IP patterns (like 192.1.1.1).', + $ref: '#/definitions/Microsoft.IpEntityRecognizer', + }, + { + title: 'Microsoft.MentionEntityRecognizer', + description: 'Recognizer which recognizes @Mentions', + $ref: '#/definitions/Microsoft.MentionEntityRecognizer', + }, + { + title: 'Microsoft.NumberEntityRecognizer', + description: 'Recognizer which recognizes numbers.', + $ref: '#/definitions/Microsoft.NumberEntityRecognizer', + }, + { + title: 'Microsoft.NumberRangeEntityRecognizer', + description: 'Recognizer which recognizes ranges of numbers (Example:2 to 5).', + $ref: '#/definitions/Microsoft.NumberRangeEntityRecognizer', + }, + { + title: 'Microsoft.OrdinalEntityRecognizer', + description: 'Recognizer which recognizes ordinals (example: first, second, 3rd).', + $ref: '#/definitions/Microsoft.OrdinalEntityRecognizer', + }, + { + title: 'Microsoft.PercentageEntityRecognizer', + description: 'Recognizer which recognizes percentages.', + $ref: '#/definitions/Microsoft.PercentageEntityRecognizer', + }, + { + title: 'Microsoft.PhoneNumberEntityRecognizer', + description: 'Recognizer which recognizes phone numbers.', + $ref: '#/definitions/Microsoft.PhoneNumberEntityRecognizer', + }, + { + title: 'Microsoft.RegexEntityRecognizer', + description: 'Recognizer which recognizes patterns of input based on regex.', + $ref: '#/definitions/Microsoft.RegexEntityRecognizer', + }, + { + title: 'Microsoft.TemperatureEntityRecognizer', + description: 'Recognizer which recognizes temperatures.', + $ref: '#/definitions/Microsoft.TemperatureEntityRecognizer', + }, + { + title: 'Microsoft.UrlEntityRecognizer', + description: 'Recognizer which recognizes urls (example: http://bing.com)', + $ref: '#/definitions/Microsoft.UrlEntityRecognizer', + }, + ], + }, + 'Microsoft.Foreach': { $role: 'unionType(Microsoft.IDialog)', - title: 'Foreach Step', - description: 'Step which execute steps per item in a collection', + title: 'Foreach Action', + description: 'Action which executes actions per item in a collection.', type: 'object', properties: { $type: { @@ -1457,37 +1893,50 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, listProperty: { $role: 'expression', title: 'List Property', - description: 'An expression or property in memory that evaluates to a list of items.', + description: 'Expression to evaluate.', examples: ['user.todoList'], type: 'string', }, - steps: { + actions: { type: 'array', title: 'Actions', - description: 'These steps will be executed for each item in the list.', + description: 'Actions to execute', items: { $type: 'Microsoft.IDialog', $ref: '#/definitions/Microsoft.IDialog', }, }, indexProperty: { - $role: 'memoryPath', + $role: 'expression', title: 'Index Property', - description: 'The property in memory that contains the index of the current item.', + description: 'The memory path which refers to the index of the item', default: 'dialog.index', type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', }, valueProperty: { - $role: 'memoryPath', + $role: 'expression', title: 'Value Property', - description: 'The property in memory that will contain the value of the current item.', + description: 'The memory path which refers to the value of the item', default: 'dialog.value', type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', }, }, additionalProperties: false, @@ -1499,8 +1948,8 @@ export const appschema: JSONSchema6 = { }, 'Microsoft.ForeachPage': { $role: 'unionType(Microsoft.IDialog)', - title: 'Foreach Page Step', - description: 'Step which execute steps per item page in a list.', + title: 'Foreach Page Action', + description: 'Action which execute actions per item page in a collection.', type: 'object', properties: { $type: { @@ -1528,17 +1977,32 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, listProperty: { $role: 'expression', title: 'List Property', - description: 'An expression or property in memory that evaluates to a list of items.', + description: 'Expression to evaluate.', examples: ['user.todoList'], type: 'string', }, - steps: { + actions: { type: 'array', title: 'Actions', - description: 'These steps will be executed for each page of data in the list.', + description: 'Actions to execute', items: { $type: 'Microsoft.IDialog', $ref: '#/definitions/Microsoft.IDialog', @@ -1547,16 +2011,93 @@ export const appschema: JSONSchema6 = { pageSize: { type: 'integer', title: 'Page Size', - description: 'The number of items to include in each page.', + description: 'The page size', default: 10, }, valueProperty: { - $role: 'memoryPath', + $role: 'expression', title: 'Value Property', - description: 'The property in memory containing the current set of items.', + description: 'The memory path which refers to the value of the item', default: 'dialog.value', type: 'string', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.GuidEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Guid Entity Recognizer', + description: 'Recognizer which recognizes guids.', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.GuidEntityRecognizer', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.HashtagEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Hashtag Entity Recognizer', + description: 'Recognizer which recognizes Hashtags.', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.HashtagEntityRecognizer', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', }, }, additionalProperties: false, @@ -1569,8 +2110,8 @@ export const appschema: JSONSchema6 = { 'Microsoft.HttpRequest': { $role: 'unionType(Microsoft.IDialog)', type: 'object', - title: 'HTTP Request', - description: 'This is a step which makes a call to an external HTTP resource.', + title: 'Http Request', + description: 'This is a action which replaces the current dialog with the target dialog', properties: { $type: { title: '$type', @@ -1597,16 +2138,31 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, method: { type: 'string', title: 'Method', - description: 'The HTTP method to use.', + description: 'The HTTP method to use', enum: ['GET', 'POST'], examples: ['GET', 'POST'], }, url: { type: 'string', - title: 'URL', + title: 'Url', description: 'The url to call. This may reference properties in memory as {property.name}.', examples: ['https://contoso.com'], }, @@ -1617,26 +2173,27 @@ export const appschema: JSONSchema6 = { additionalProperties: true, }, property: { - $role: 'memoryPath', + $role: 'expression', title: 'Property', - description: 'The property in memory used to store the result of the HTTP call.', + description: + 'The property to store the result of the HTTP call in. The result will have 4 properties from the http response: statusCode|reasonPhrase|content|headers. If the content is json it will be an deserialized object, otherwise it will be a string', examples: ['dialog.contosodata'], type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', }, headers: { type: 'object', additionalProperties: true, - title: 'HTTP Headers', + title: 'Http headers', description: 'Additional headers to include with the HTTP request. This may reference properties in memory as {property.name}.', }, responseType: { type: 'string', - title: 'Expected Response Type', + title: 'Response Type', description: - 'This specifies the method used to parse the response from the HTTP request. If Activity or Activities, the results will be forwarded immediately to the customer as messages.', + 'Describes how to parse the response from the http request. If Activity or Activities, then the they will be sent to the user.', enum: ['None', 'Json', 'Activity', 'Activities'], + default: 'Json', }, }, additionalProperties: false, @@ -1660,17 +2217,17 @@ export const appschema: JSONSchema6 = { oneOf: [ { title: 'Microsoft.AdaptiveDialog', - description: 'Configures a data driven dialog via a collection of steps/dialogs.', + description: 'Configures a data driven dialog via a collection of actions/dialogs.', $ref: '#/definitions/Microsoft.AdaptiveDialog', }, { title: 'Microsoft.AttachmentInput', - description: 'This represents a dialog which gathers a yes/no style responses', + description: 'This represents a dialog which gathers an attachment such as image or music', $ref: '#/definitions/Microsoft.AttachmentInput', }, { title: 'Microsoft.BeginDialog', - description: 'Step which begins another dialog (and when that dialog is done, it will return the caller).', + description: 'Action which begins another dialog (and when that dialog is done, it will return the caller).', $ref: '#/definitions/Microsoft.BeginDialog', }, { @@ -1689,11 +2246,6 @@ export const appschema: JSONSchema6 = { description: 'This represents a dialog which gathers a yes/no style responses', $ref: '#/definitions/Microsoft.ConfirmInput', }, - { - title: 'Microsoft.ConversationUpdateActivityRule', - description: 'This defines the steps to take when a ConversationUpdate Activity is recieved', - $ref: '#/definitions/Microsoft.ConversationUpdateActivityRule', - }, { title: 'Microsoft.DateTimeInput', description: 'This represents a dialog which gathers Date or Time or DateTime from the user', @@ -1706,70 +2258,69 @@ export const appschema: JSONSchema6 = { }, { title: 'Microsoft.DeleteProperty', - description: 'This is a step which allows you to remove a property from memory', + description: 'This is a action which allows you to remove a property from memory', $ref: '#/definitions/Microsoft.DeleteProperty', }, { - title: 'Microsoft.EditArray', - description: 'This is a step which allows you to modify an array in memory', - $ref: '#/definitions/Microsoft.EditArray', + title: 'Microsoft.EditActions', + description: 'Edit current dialog with changeType and Actions', + $ref: '#/definitions/Microsoft.EditActions', }, { - title: 'Microsoft.EditSteps', - description: 'Edit current dialog with changeType and Steps', - $ref: '#/definitions/Microsoft.EditSteps', + title: 'Microsoft.EditArray', + description: 'This is a action which allows you to modify an array in memory', + $ref: '#/definitions/Microsoft.EditArray', }, { title: 'Microsoft.EmitEvent', - description: 'This is the action that allows you to emit an event.', + description: 'This is a action which allows you to emit an event', $ref: '#/definitions/Microsoft.EmitEvent', }, { title: 'Microsoft.EndDialog', description: - 'This is the command that ends the current dialog running, and returns the resultProperty as a result of that dialog.', + 'Command which ends the current dialog, returning the resultProperty as the result of the dialog.', $ref: '#/definitions/Microsoft.EndDialog', }, { title: 'Microsoft.EndTurn', - description: 'This will end the current turn without ending the dialog.', + description: 'End the current turn without ending the dialog.', $ref: '#/definitions/Microsoft.EndTurn', }, { title: 'Microsoft.Foreach', - description: 'Step which executes steps per item in a collection.', + description: 'Action which executes actions per item in a collection.', $ref: '#/definitions/Microsoft.Foreach', }, { title: 'Microsoft.ForeachPage', - description: 'Step which execute steps per item page in a collection.', + description: 'Action which execute actions per item page in a collection.', $ref: '#/definitions/Microsoft.ForeachPage', }, { title: 'Microsoft.HttpRequest', - description: 'This action replaces the current dialog with a target dialog, which is a request for a URL.', + description: 'This is a action which replaces the current dialog with the target dialog', $ref: '#/definitions/Microsoft.HttpRequest', }, { title: 'Microsoft.IfCondition', - description: - 'The action that conditionally decides which step to execute next in the line up of actions needed.', + description: 'Action which conditionally decides which action to execute next.', $ref: '#/definitions/Microsoft.IfCondition', }, { title: 'Microsoft.InitProperty', - description: 'This action lets you initialize a property to either an object or array.', + description: 'This action allows you to innitial a property to either an object or array', $ref: '#/definitions/Microsoft.InitProperty', }, { - title: 'Microsoft.LogStep', + title: 'Microsoft.LogAction', description: - 'This is a step which writes to console.log and optionally creates a TraceActivity around a text binding', - $ref: '#/definitions/Microsoft.LogStep', + 'This is a action which writes to console.log and optional creates a TraceActivity around a text binding', + $ref: '#/definitions/Microsoft.LogAction', }, { title: 'Microsoft.NumberInput', - description: 'This prompts the customer to provide a number.', + description: 'This represents a dialog which gathers a decimal number in a specified range', $ref: '#/definitions/Microsoft.NumberInput', }, { @@ -1777,39 +2328,44 @@ export const appschema: JSONSchema6 = { description: 'This represents a dialog which gathers an OAuth token from user', $ref: '#/definitions/Microsoft.OAuthInput', }, + { + title: 'Microsoft.QnAMakerDialog', + description: 'This represents a dialog which is driven by a call to QnAMaker.ai knowledge base', + $ref: '#/definitions/Microsoft.QnAMakerDialog', + }, { title: 'Microsoft.RepeatDialog', - description: 'An action that repeats the current dialog running.', + description: 'This is a action which repeats the current dialog with the same dialog.', $ref: '#/definitions/Microsoft.RepeatDialog', }, { title: 'Microsoft.ReplaceDialog', - description: 'An action that replaces the current dialog running with a target dialog', + description: 'This is a action which replaces the current dialog with the target dialog', $ref: '#/definitions/Microsoft.ReplaceDialog', }, { title: 'Microsoft.SendActivity', - description: 'This will send a message to the user and may include language generation rules.', + description: 'This is a action which sends an activity to the user', $ref: '#/definitions/Microsoft.SendActivity', }, { title: 'Microsoft.SetProperty', - description: 'This will set or update a property to the value of an expression.', + description: 'This action allows you to set memory to the value of an expression', $ref: '#/definitions/Microsoft.SetProperty', }, { title: 'Microsoft.SwitchCondition', - description: 'This is an action that decides which action to execute next, depending on certain conditions.', + description: 'Action which conditionally decides which action to execute next.', $ref: '#/definitions/Microsoft.SwitchCondition', }, { title: 'Microsoft.TextInput', - description: 'A prompt to the customer to provide a response in text format.', + description: 'This represents a dialog which gathers a text from the user', $ref: '#/definitions/Microsoft.TextInput', }, { title: 'Microsoft.TraceActivity', - description: 'This is a debugging message that is used to track progress through the code.', + description: 'This is a action which sends an TraceActivity to the transcript', $ref: '#/definitions/Microsoft.TraceActivity', }, { @@ -1846,6 +2402,95 @@ export const appschema: JSONSchema6 = { }, ], }, + 'Microsoft.IOnEvent': { + title: 'Microsoft IOnEvent', + description: 'Union of components which implement the IOnEvent interface', + $role: 'unionType', + oneOf: [ + { + title: 'Microsoft.OnActivity', + description: 'This defines the actions to take when an custom activity is received', + $ref: '#/definitions/Microsoft.OnActivity', + }, + { + title: 'Microsoft.OnBeginDialog', + description: 'This defines the actions to take when a dialog is started via BeginDialog()', + $ref: '#/definitions/Microsoft.OnBeginDialog', + }, + { + title: 'Microsoft.OnConversationUpdateActivity', + description: 'This defines the actions to take when an ConversationUpdate activity is received', + $ref: '#/definitions/Microsoft.OnConversationUpdateActivity', + }, + { + title: 'Microsoft.OnDialogEvent', + description: 'Defines a rule for an event which is triggered by some source', + $ref: '#/definitions/Microsoft.OnDialogEvent', + }, + { + title: 'Microsoft.OnEndOfConversationActivity', + description: 'This defines the actions to take when an EndOfConversation Activity is received', + $ref: '#/definitions/Microsoft.OnEndOfConversationActivity', + }, + { + title: 'Microsoft.OnEvent', + description: 'Defines a rule for an event which is triggered by some source', + $ref: '#/definitions/Microsoft.OnEvent', + }, + { + title: 'Microsoft.OnEventActivity', + description: 'This defines the actions to take when an Event activity is received', + $ref: '#/definitions/Microsoft.OnEventActivity', + }, + { + title: 'Microsoft.OnHandoffActivity', + description: 'This defines the actions to take when an Handoff activity is received', + $ref: '#/definitions/Microsoft.OnHandoffActivity', + }, + { + title: 'Microsoft.OnIntent', + description: 'This defines the actions to take when an Intent is recognized (and optionally entities)', + $ref: '#/definitions/Microsoft.OnIntent', + }, + { + title: 'Microsoft.OnInvokeActivity', + description: 'This defines the actions to take when an Invoke activity is received', + $ref: '#/definitions/Microsoft.OnInvokeActivity', + }, + { + title: 'Microsoft.OnMessageActivity', + description: + 'This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation', + $ref: '#/definitions/Microsoft.OnMessageActivity', + }, + { + title: 'Microsoft.OnMessageDeleteActivity', + description: 'This defines the actions to take when an MessageDelete activity is received', + $ref: '#/definitions/Microsoft.OnMessageDeleteActivity', + }, + { + title: 'Microsoft.OnMessageReactionActivity', + description: 'This defines the actions to take when a MessageReaction activity is received', + $ref: '#/definitions/Microsoft.OnMessageReactionActivity', + }, + { + title: 'Microsoft.OnMessageUpdateActivity', + description: 'This defines the actions to take when an MessageUpdate ctivity is received', + $ref: '#/definitions/Microsoft.OnMessageUpdateActivity', + }, + { + title: 'Microsoft.OnTypingActivity', + description: 'This defines the actions to take when a Typing activity is received', + $ref: '#/definitions/Microsoft.OnTypingActivity', + }, + { + title: 'Microsoft.OnUnknownIntent', + description: + 'This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog', + $ref: '#/definitions/Microsoft.OnUnknownIntent', + }, + ], + }, 'Microsoft.IRecognizer': { title: 'Microsoft IRecognizer', description: 'Union of components which implement the IRecognizer interface', @@ -1882,19 +2527,19 @@ export const appschema: JSONSchema6 = { $role: 'unionType', oneOf: [ { - title: 'Microsoft.ConversationUpdateActivityRule', + title: 'Microsoft.OnConversationUpdateActivity', description: 'This defines the steps to take when a ConversationUpdate Activity is recieved', - $ref: '#/definitions/Microsoft.ConversationUpdateActivityRule', + $ref: '#/definitions/Microsoft.OnConversationUpdateActivity', }, { - title: 'Microsoft.EventRule', + title: 'Microsoft.OnEvent', description: 'This defines a rule for an event that is triggered by some source', - $ref: '#/definitions/Microsoft.EventRule', + $ref: '#/definitions/Microsoft.OnEvent', }, { - title: 'Microsoft.IntentRule', + title: 'Microsoft.OnIntent', description: 'This defines the actions to take when an Intent is recognized (and optionally entities)', - $ref: '#/definitions/Microsoft.IntentRule', + $ref: '#/definitions/Microsoft.OnIntent', }, { title: 'Microsoft.Rule', @@ -1902,9 +2547,9 @@ export const appschema: JSONSchema6 = { $ref: '#/definitions/Microsoft.Rule', }, { - title: 'Microsoft.UnknownIntentRule', + title: 'Microsoft.OnUnknownIntent', description: 'Defines a sequence of actions to take if there is no other trigger or plan operating', - $ref: '#/definitions/Microsoft.UnknownIntentRule', + $ref: '#/definitions/Microsoft.OnUnknownIntent', }, ], }, @@ -1921,9 +2566,8 @@ export const appschema: JSONSchema6 = { }, 'Microsoft.IfCondition': { $role: 'unionType(Microsoft.IDialog)', - title: 'If Condition Step', - description: - 'This is an action that tests a boolean expression and executes one of two alternate branches of the dialog.', + title: 'If Condition Action', + description: 'Action which conditionally decides which action to execute next.', type: 'object', properties: { $type: { @@ -1951,26 +2595,41 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, condition: { $role: 'expression', title: 'Condition', - description: 'A boolean expression used to choose a branch.', + description: 'Expression to evaluate.', examples: ['user.age > 3'], type: 'string', }, - steps: { + actions: { type: 'array', title: 'Actions: True Branch', - description: 'Steps to execute if the condition evalutes to true.', + description: 'Action to execute if condition is true.', items: { $type: 'Microsoft.IDialog', $ref: '#/definitions/Microsoft.IDialog', }, }, - elseSteps: { + elseActions: { type: 'array', title: 'Actions: False Branch', - description: 'Steps to execute if the condition evalutes to false.', + description: 'Action to execute if condition is false.', items: { $type: 'Microsoft.IDialog', $ref: '#/definitions/Microsoft.IDialog', @@ -1986,8 +2645,8 @@ export const appschema: JSONSchema6 = { }, 'Microsoft.InitProperty': { $role: 'unionType(Microsoft.IDialog)', - title: 'Init Property Step', - description: 'Create a new property to hold an object or array.', + title: 'Init Property Action', + description: 'This action allows you to innitial a property to either an object or array', type: 'object', properties: { $type: { @@ -2015,18 +2674,32 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, property: { - $role: 'memoryPath', + $role: 'expression', title: 'Property', - description: 'A property in memory.', + description: 'The property to set the value of', examples: ['user.age'], type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', }, type: { type: 'string', title: 'Type', - description: 'The type of value this property will contain: an object or an array.', + description: 'type of value to set the property to, object or array.', enum: ['object', 'array'], }, }, @@ -2037,11 +2710,10 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.IntentRule': { - $role: 'unionType(Microsoft.IRule)', - title: 'Intent Rule', - description: - 'Defines the actions to take when an intent is identified by a recognizer service such as RegEx, or LUIS.', + 'Microsoft.IpEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Ip Entity Recognizer', + description: 'Recognizer which recognizes internet IP patterns (like 192.1.1.1).', type: 'object', properties: { $type: { @@ -2050,7 +2722,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.IntentRule', + const: 'Microsoft.IpEntityRecognizer', }, $copy: { title: '$copy', @@ -2069,36 +2741,6 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - constraint: { - $role: 'expression', - title: 'Constraint', - description: - 'An optional expression containing additional requirements which must be met for this event to fire.', - examples: ['user.vip == true'], - type: 'string', - }, - steps: { - type: 'array', - title: 'Actions', - description: 'These are the steps the bot will be execute when this event fires.', - items: { - $type: 'Microsoft.IDialog', - $ref: '#/definitions/Microsoft.IDialog', - }, - }, - intent: { - type: 'string', - title: 'Intent', - description: 'The name of the intent that, when identified by a recognizer, causes this event to fire.', - }, - entities: { - type: 'array', - title: 'Entities', - description: 'A list of any entities that must be found by the recognizer in order for this event to fire.', - items: { - type: 'string', - }, - }, }, additionalProperties: false, patternProperties: { @@ -2107,11 +2749,12 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.ConversationUpdateActivityRule': { - $role: 'unionType(Microsoft.IRule)', - title: 'ConversationUpdateActivity Rule', - description: 'This defines the steps to take when a ConversationUpdate Activity is recieved', + 'Microsoft.LanguagePolicy': { + $role: 'unionType(Microsoft.ILanguagePolicy)', + title: 'Language Policy', + description: 'This represents a dialog which gathers a DateTime in a specified range', type: 'object', + additionalProperties: false, properties: { $type: { title: '$type', @@ -2119,7 +2762,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.ConversationUpdateActivityRule', + const: 'Microsoft.LanguagePolicy', }, $copy: { title: '$copy', @@ -2138,37 +2781,19 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - constraint: { - $role: 'expression', - title: 'Constraint', - description: - 'An optional expression containing additional requirements which must be met for this event to fire.', - examples: ['user.vip == true'], - type: 'string', - }, - steps: { - type: 'array', - title: 'Actions', - description: 'These are the steps the bot will be execute when this event fires.', - items: { - $type: 'Microsoft.IDialog', - $ref: '#/definitions/Microsoft.IDialog', - }, - }, }, - additionalProperties: false, patternProperties: { '^\\$': { type: 'string', }, }, }, - 'Microsoft.LanguagePolicy': { - $role: 'unionType(Microsoft.ILanguagePolicy)', - title: 'Language Policy', - description: 'This represents a dialog which gathers a DateTime in a specified range', + 'Microsoft.LogAction': { + $role: 'unionType(Microsoft.IDialog)', + title: 'Log Action', + description: + 'This is a action which writes to console.log and optional creates a TraceActivity around a text binding', type: 'object', - additionalProperties: false, properties: { $type: { title: '$type', @@ -2176,7 +2801,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.LanguagePolicy', + const: 'Microsoft.LogAction', }, $copy: { title: '$copy', @@ -2195,19 +2820,46 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, + text: { + type: 'string', + title: 'Text', + description: 'LG Expression to write to the log', + }, + traceActivity: { + type: 'boolean', + title: 'Send Trace Activity', + description: 'Set to true to also create a TraceActivity with the log text', + default: false, + }, }, + additionalProperties: false, patternProperties: { '^\\$': { type: 'string', }, }, }, - 'Microsoft.LogStep': { - $role: 'unionType(Microsoft.IDialog)', - title: 'Log Step', - description: - "This is a debugging message that's used to track progress through the code by writing messages to the log.", + 'Microsoft.LuisRecognizer': { + $role: 'unionType(Microsoft.IRecognizer)', + title: 'LUIS Recognizer', + description: 'LUIS recognizer.', type: 'object', + additionalProperties: false, properties: { $type: { title: '$type', @@ -2215,7 +2867,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.LogStep', + const: 'Microsoft.LuisRecognizer', }, $copy: { title: '$copy', @@ -2234,31 +2886,27 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - text: { + applicationId: { type: 'string', - title: 'Text', - description: 'This is the text to write to the log. It may include language generation rules.', }, - traceActivity: { - type: 'boolean', - title: 'Send TraceActivity', - description: 'If set, also create a TraceActivity with then same log text.', - default: false, + endpoint: { + type: 'string', + }, + endpointKey: { + type: 'string', }, }, - additionalProperties: false, patternProperties: { '^\\$': { type: 'string', }, }, }, - 'Microsoft.LuisRecognizer': { - $role: 'unionType(Microsoft.IRecognizer)', - title: 'LUIS Recognizer', - description: 'LUIS recognizer.', + 'Microsoft.MentionEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Mentions Entity Recognizer', + description: 'Recognizer which recognizes @Mentions', type: 'object', - additionalProperties: false, properties: { $type: { title: '$type', @@ -2266,7 +2914,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.LuisRecognizer', + const: 'Microsoft.MentionEntityRecognizer', }, $copy: { title: '$copy', @@ -2285,16 +2933,8 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - applicationId: { - type: 'string', - }, - endpoint: { - type: 'string', - }, - endpointKey: { - type: 'string', - }, }, + additionalProperties: false, patternProperties: { '^\\$': { type: 'string', @@ -2357,6 +2997,45 @@ export const appschema: JSONSchema6 = { // }, // }, // }, + 'Microsoft.NumberEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Number Entity Recognizer', + description: 'Recognizer which recognizes numbers.', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.NumberEntityRecognizer', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, 'Microsoft.NumberInput': { $role: 'unionType(Microsoft.IDialog)', title: 'NumberInput Dialog', @@ -2386,33 +3065,23 @@ export const appschema: JSONSchema6 = { $designer: { title: '$designer', type: 'object', - description: 'Extra information for the Bot Framework Designer.', + description: 'Extra information for the Bot Framework Composer.', }, - property: { - $role: 'memoryPath', - title: 'Property', - description: 'This is that will be passed in as InputProperty and also set as the OutputProperty', - examples: ['value.birthday', 'user.name'], + id: { type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], }, - inputBindings: { - type: 'object', - title: 'Input Bindings', - description: 'This defines properties which be passed as arguments to this dialog', - examples: ['value.birthday'], - additionalProperties: { + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { type: 'string', }, }, - outputBinding: { - $role: 'memoryPath', - title: 'Output Property binding', - description: 'This is the property which the EndDialog(result) will be set to when EndDialog() is called', - examples: ['value.birthday'], - type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - }, prompt: { $type: 'Microsoft.IActivityTemplate', title: 'Initial Prompt', @@ -2434,6 +3103,16 @@ export const appschema: JSONSchema6 = { examples: ['No date was recognized'], $ref: '#/definitions/Microsoft.IActivityTemplate', }, + defaultValueResponse: { + $type: 'Microsoft.IActivityTemplate', + title: 'Default Value Response', + description: + 'The message to send to when max turn count has been exceeded and the default value is selected as the value.', + examples: [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it.", + ], + $ref: '#/definitions/Microsoft.IActivityTemplate', + }, maxTurnCount: { type: 'integer', title: 'Max Turn Count', @@ -2458,6 +3137,13 @@ export const appschema: JSONSchema6 = { description: 'The expression that you evaluated for input.', type: 'string', }, + property: { + $role: 'expression', + title: 'Property', + description: 'Property that this input dialog is bound to', + examples: ['$birthday'], + type: 'string', + }, defaultValue: { $role: 'expression', title: 'Default Value', @@ -2478,7 +3164,7 @@ export const appschema: JSONSchema6 = { title: 'Allow Interruptions', description: "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - default: 'never', + default: 'notRecognized', examples: ['notRecognized'], }, outputFormat: { @@ -2502,6 +3188,45 @@ export const appschema: JSONSchema6 = { }, }, }, + 'Microsoft.NumberRangeEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'NumberRange Entity Recognizer', + description: 'Recognizer which recognizes ranges of numbers (Example:2 to 5).', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.NumberRangeEntityRecognizer', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, 'Microsoft.OAuthInput': { $role: 'unionType(Microsoft.IDialog)', title: 'OAuthInput Dialog', @@ -2531,39 +3256,113 @@ export const appschema: JSONSchema6 = { $designer: { title: '$designer', type: 'object', - description: 'Extra information for the Bot Framework Designer.', + description: 'Extra information for the Bot Framework Composer.', }, - property: { - $role: 'memoryPath', - title: 'Property', - description: 'This is that will be passed in as InputProperty and also set as the OutputProperty', - examples: ['value.birthday'], + id: { type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], }, - inputBindings: { - type: 'object', - title: 'Input Bindings', - description: 'This defines properties which be passed as arguments to this dialog', - examples: ['value.birthday'], - additionalProperties: { + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { type: 'string', }, }, - outputBinding: { - $role: 'memoryPath', - title: 'Output Property binding', - description: 'This is the property which the EndDialog(result) will be set to when EndDialog() is called', - examples: ['value.birthday'], - type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + prompt: { + $type: 'Microsoft.IActivityTemplate', + title: 'Initial Prompt', + description: 'The message to send to as prompt for this input.', + examples: ['What is your birth date?'], + $ref: '#/definitions/Microsoft.IActivityTemplate', }, - connectionName: { - type: 'string', - title: 'Connection Name', - description: 'The connection name configured in Azure Web App Bot OAuth settings.', + unrecognizedPrompt: { + $type: 'Microsoft.IActivityTemplate', + title: 'Unrecognized Prompt', + description: 'The message to send if the last input is not recognized.', + examples: ["Let's try again. What is your birth date?"], + $ref: '#/definitions/Microsoft.IActivityTemplate', }, - text: { + invalidPrompt: { + $type: 'Microsoft.IActivityTemplate', + title: 'Invalid Prompt', + description: 'The message to send to when then input was not valid for the input type.', + examples: ['No date was recognized'], + $ref: '#/definitions/Microsoft.IActivityTemplate', + }, + defaultValueResponse: { + $type: 'Microsoft.IActivityTemplate', + title: 'Default Value Response', + description: + 'The message to send to when max turn count has been exceeded and the default value is selected as the value.', + examples: [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it.", + ], + $ref: '#/definitions/Microsoft.IActivityTemplate', + }, + maxTurnCount: { + type: 'integer', + title: 'Max Turn Count', + description: 'The max retry count for this prompt.', + default: 2147483647, + examples: [3], + }, + validations: { + type: 'array', + title: 'Validation Expressions', + description: 'Expressions to validate an input.', + items: { + $role: 'expression', + type: 'string', + description: 'String must contain an expression.', + }, + }, + value: { + $role: 'expression', + title: 'Value', + description: 'The expression that you evaluated for input.', + type: 'string', + }, + property: { + $role: 'expression', + title: 'Property', + description: 'Property that this input dialog is bound to', + examples: ['$birthday'], + type: 'string', + }, + defaultValue: { + $role: 'expression', + title: 'Default Value', + description: "Value to return if the value expression can't be evaluated.", + type: 'string', + }, + alwaysPrompt: { + type: 'boolean', + title: 'Always Prompt', + description: + 'If set to true this will always prompt the user regardless if you already have the value or not.', + default: false, + examples: [false], + }, + allowInterruptions: { + type: 'string', + enum: ['always', 'never', 'notRecognized'], + title: 'Allow Interruptions', + description: + "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + default: 'notRecognized', + examples: ['notRecognized'], + }, + connectionName: { + type: 'string', + title: 'Connection Name', + description: 'The connection name configured in Azure Web App Bot OAuth settings.', + }, + text: { type: 'string', title: 'Text', description: 'Text shown in the OAuth signin card.', @@ -2573,24 +3372,1119 @@ export const appschema: JSONSchema6 = { title: 'Title', description: 'Title shown in the OAuth signin card.', }, - timeout: { - type: 'integer', - title: 'Timeout', - description: 'Time out setting for the OAuth signin card.', - default: '900000', + timeout: { + type: 'integer', + title: 'Timeout', + description: 'Time out setting for the OAuth signin card.', + default: '900000', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'OnActivity', + description: 'This defines the actions to take when an custom activity is received', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + type: { + type: 'string', + title: 'Type', + description: 'Activity type', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnBeginDialog': { + title: 'OnBeginDialog', + description: 'This defines the actions to take when a dialog is started via BeginDialog()', + $role: 'unionType(Microsoft.IOnEvent)', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnBeginDialog', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnConversationUpdateActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'OnConversationUpdateActivity', + description: 'This defines the actions to take when an ConversationUpdate activity is received', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnConversationUpdateActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnDialogEvent': { + title: 'Event Event', + description: 'Defines a rule for an event which is triggered by some source', + type: 'object', + $role: 'unionType(Microsoft.IOnEvent)', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnDialogEvent', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + events: { + type: 'array', + description: 'Events to trigger this rule for', + items: { + type: 'string', + enum: [ + 'beginDialog', + 'consultDialog', + 'cancelDialog', + 'activityReceived', + 'recognizedIntent', + 'unknownIntent', + 'actionsStarted', + 'actionsSaved', + 'actionsEnded', + 'actionsResumed', + ], + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnEndOfConversationActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'OnEndOfConversationActivity', + description: 'This defines the actions to take when an EndOfConversation Activity is received', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnEndOfConversationActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnEvent': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'Event Event', + description: 'Defines a rule for an event which is triggered by some source', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnEvent', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnEventActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'OnEventActivity', + description: 'This defines the actions to take when an Event activity is received', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnEventActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnHandoffActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'OnHandoffActivity', + description: 'This defines the actions to take when an Handoff activity is received', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnHandoffActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnIntent': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'Intent Event', + description: 'This defines the actions to take when an Intent is recognized (and optionally entities)', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnIntent', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + intent: { + type: 'string', + title: 'Intent', + description: 'Intent name to trigger on', + }, + entities: { + type: 'array', + title: 'Entities', + description: 'The entities required to trigger this rule', + items: { + type: 'string', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnInvokeActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'OnInvokeActivity', + description: 'This defines the actions to take when an Invoke activity is received', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnInvokeActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnMessageActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'OnMessageActivity', + description: + 'This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnMessageActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnMessageDeleteActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'MessageDeleteActivity', + description: 'This defines the actions to take when an MessageDelete activity is received', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnMessageDeleteActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnMessageReactionActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'MessageReactionActivity', + description: 'This defines the actions to take when a MessageReaction activity is received', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnMessageReactionActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnMessageUpdateActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'MessageUpdateActivity', + description: 'This defines the actions to take when an MessageUpdate ctivity is received', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnMessageUpdateActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnTypingActivity': { + $role: 'unionType(Microsoft.IOnEvent)', + title: 'TypingActivity', + description: 'This defines the actions to take when a Typing activity is received', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnTypingActivity', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OnUnknownIntent': { + title: 'OnUnknownIntent', + description: + 'This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog', + $role: 'unionType(Microsoft.IOnEvent)', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OnUnknownIntent', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + constraint: { + $role: 'expression', + title: 'Constraint', + description: 'Optional constraint to which must be met for this rule to fire', + examples: ['user.vip == true'], + type: 'string', + }, + actions: { + type: 'array', + description: 'Sequence of actions or dialogs to execute', + items: { + $type: 'Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', + }, + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.OrdinalEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Ordinal Entity Recognizer', + description: 'Recognizer which recognizes ordinals (example: first, second, 3rd).', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.OrdinalEntityRecognizer', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.PercentageEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Percentage Entity Recognizer', + description: 'Recognizer which recognizes percentages.', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.PercentageEntityRecognizer', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.PhoneNumberEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Phone Number Entity Recognizer', + description: 'Recognizer which recognizes phone numbers.', + type: 'object', + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.PhoneNumberEntityRecognizer', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + }, + additionalProperties: false, + patternProperties: { + '^\\$': { + type: 'string', + }, + }, + }, + 'Microsoft.QnAMakerDialog': { + $role: 'unionType(Microsoft.IDialog)', + title: 'QnAMaker Dialog', + description: 'This represents a dialog which is driven by a call to QnAMaker.ai knowledge base', + type: 'object', + additionalProperties: false, + properties: { + $type: { + title: '$type', + description: + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', + type: 'string', + pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.QnAMakerDialog', + }, + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', + type: 'object', + description: 'Extra information for the Bot Framework Composer.', + }, + endpoint: { + type: 'object', + title: 'Endpoint', + description: 'This is the QnAMaker endpoint to use', + required: ['knowledgeBaseId', 'endpointKey', 'host'], + properties: { + knowledgeBaseId: { + type: 'string', + title: 'Knowledgebase Id', + description: 'the knowledge base ID.', + }, + endpointKey: { + type: 'string', + title: 'Endpoint Key', + description: 'sets the endpoint key for the knowledge base', + }, + host: { + type: 'string', + title: 'Host', + description: 'sets the host path', + examples: ['https://yourserver.azurewebsites.net/qnamaker'], + }, + }, + }, + options: { + type: 'object', + title: 'Options', + properties: { + scoreThreshold: { + type: 'number', + title: 'Score Threshold', + description: + 'sets the minimum score threshold, used to filter returned results. Scores are normalized to the range of 0.0 to 1.0', + }, + }, }, }, - additionalProperties: false, patternProperties: { '^\\$': { type: 'string', }, }, }, - 'Microsoft.RegexRecognizer': { - $role: 'unionType(Microsoft.IRecognizer)', - title: 'Regex Recognizer', - description: 'Recognizer which uses regex expressions to generate intents and entities.', + 'Microsoft.RegexEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Regex Entity Recognizer', + description: 'Recognizer which recognizes patterns of input based on regex.', type: 'object', properties: { $type: { @@ -2599,7 +4493,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.RegexRecognizer', + const: 'Microsoft.RegexEntityRecognizer', }, $copy: { title: '$copy', @@ -2618,16 +4512,15 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - intents: { - type: 'object', - title: 'RegEx patterns to intents', - description: 'Pattern->Intents mappings', - propertyNames: { - title: 'Intent Name', - }, - additionalProperties: { - type: 'string', - }, + name: { + type: 'string', + title: 'Name', + description: 'Name of the entity', + }, + pattern: { + type: 'string', + title: 'Pattern', + description: 'Pattern expressed as regular expression.', }, }, additionalProperties: false, @@ -2637,11 +4530,11 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.RepeatDialog': { - $role: 'unionType(Microsoft.IDialog)', + 'Microsoft.RegexRecognizer': { + $role: 'unionType(Microsoft.IRecognizer)', + title: 'Regex Recognizer', + description: 'Recognizer which uses regex expressions to generate intents and entities.', type: 'object', - title: 'Repeat Dialog', - description: 'Repeat the current dialog.', properties: { $type: { title: '$type', @@ -2649,7 +4542,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.RepeatDialog', + const: 'Microsoft.RegexRecognizer', }, $copy: { title: '$copy', @@ -2668,6 +4561,35 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + intents: { + type: 'array', + title: 'RegEx patterns to intents', + description: 'Collection of patterns to match intents', + items: { + type: 'object', + properties: { + intent: { + type: 'string', + title: 'Intent', + description: 'The intent name', + }, + pattern: { + type: 'string', + title: 'Pattern', + description: 'The regular expression pattern for matching', + }, + }, + }, + }, + entities: { + type: 'array', + title: 'Entity Recognizers', + description: 'Entity Recognizers to use', + items: { + $type: 'Microsoft.EntityRecognizer', + $ref: '#/definitions/Microsoft.EntityRecognizer', + }, + }, }, additionalProperties: false, patternProperties: { @@ -2676,11 +4598,11 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.ReplaceDialog': { + 'Microsoft.RepeatDialog': { $role: 'unionType(Microsoft.IDialog)', type: 'object', - title: 'Replace Dialog', - description: 'Ends the current dialog and replaces it with a different one.', + title: 'Repeat Dialog', + description: 'This is a action which repeats the current dialog with the same dialog.', properties: { $type: { title: '$type', @@ -2688,7 +4610,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.ReplaceDialog', + const: 'Microsoft.RepeatDialog', }, $copy: { title: '$copy', @@ -2707,25 +4629,20 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - dialog: { - $type: 'Microsoft.IDialog', - title: 'Dialog', - description: 'Select a dialog to call at this point.', + id: { type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], }, - options: { - type: 'object', - title: 'Options', - description: - 'Define options to pass to this dialog. These will be available in the child dialog as dialog.options..', - additionalProperties: true, - }, - property: { - $role: 'memoryPath', - description: 'The property in memory used to store the result of the child dialog.', - examples: ['user.name'], - type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, }, }, additionalProperties: false, @@ -2735,11 +4652,11 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.Rule': { - $role: 'unionType(Microsoft.IRule)', - title: 'Event Rule', - description: 'Defines a rule for an event which is triggered by some source', + 'Microsoft.ReplaceDialog': { + $role: 'unionType(Microsoft.IDialog)', type: 'object', + title: 'Replace Dialog', + description: 'This is a action which replaces the current dialog with the target dialog', properties: { $type: { title: '$type', @@ -2747,7 +4664,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.Rule', + const: 'Microsoft.ReplaceDialog', }, $copy: { title: '$copy', @@ -2766,23 +4683,42 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - constraint: { - $role: 'expression', - title: 'Constraint', - description: - 'An optional expression containing additional requirements which must be met for this event to fire.', - examples: ['user.vip == true'], + id: { type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], }, - steps: { + tags: { type: 'array', - title: 'Actions', - description: 'These are the steps the bot will be execute when this event fires.', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], items: { - $type: 'Microsoft.IDialog', - $ref: '#/definitions/Microsoft.IDialog', + type: 'string', + }, + }, + dialog: { + $type: 'Microsoft.IDialog', + title: 'Dialog', + description: 'This is the dialog to switch to.', + type: 'string', + }, + options: { + type: 'object', + title: 'Options binding', + description: 'Bindings to configure the options object to pass to the dialog.', + additionalProperties: { + type: 'string', + title: 'Options', }, }, + property: { + $role: 'expression', + description: 'The property to bind to the dialog and store the result in', + examples: ['user.name'], + type: 'string', + }, }, additionalProperties: false, patternProperties: { @@ -2793,8 +4729,8 @@ export const appschema: JSONSchema6 = { }, 'Microsoft.SendActivity': { $role: 'unionType(Microsoft.IDialog)', - title: 'Send Activity Step', - description: 'This will send a message to the user.', + title: 'Send Activity Action', + description: 'This is a action which sends an activity to the user', type: 'object', properties: { $type: { @@ -2822,10 +4758,25 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, activity: { $type: 'Microsoft.IActivityTemplate', title: 'Activity', - description: 'This is the message to sent to the customer. It may include language generation rules.', + description: 'Activity to send to the user', $ref: '#/definitions/Microsoft.IActivityTemplate', }, }, @@ -2838,8 +4789,8 @@ export const appschema: JSONSchema6 = { }, 'Microsoft.SetProperty': { $role: 'unionType(Microsoft.IDialog)', - title: 'Set Property Step', - description: 'Set a property in memory to the value of an expression.', + title: 'Set Property Action', + description: 'This action allows you to set memory to the value of an expression', type: 'object', properties: { $type: { @@ -2867,18 +4818,32 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, property: { - $role: 'memoryPath', + $role: 'expression', title: 'Property', - description: 'The property in memory to set.', + description: 'The property to set the value of', examples: ['user.age'], type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', }, value: { $role: 'expression', title: 'Value', - description: 'This is the expression that will be evaluated to set the property.', + description: 'Expression against memory to use to get the value.', examples: ['dialog.result'], type: 'string', }, @@ -2892,9 +4857,8 @@ export const appschema: JSONSchema6 = { }, 'Microsoft.SwitchCondition': { $role: 'unionType(Microsoft.IDialog)', - title: 'Switch Step', - description: - 'This is an action that evaluates an expression and executes one of multiple alternate branches of the dialog.', + title: 'Switch Action', + description: 'Action which conditionally decides which action to execute next.', type: 'object', properties: { $type: { @@ -2922,43 +4886,58 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, + id: { + type: 'string', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, + }, condition: { $role: 'expression', title: 'Condition', - description: 'The expression used to choose a branch.', + description: 'Expression to evaluate to switch on.', examples: ['user.age > 3'], type: 'string', }, cases: { type: 'array', title: 'Cases', - description: 'If the conditional expression matches this case, the following actions will be executed.', + description: 'Cases to evaluate against condition', items: { type: 'object', + required: ['value', 'case'], properties: { value: { $role: 'expression', title: 'Value', - description: 'Value to match against condition.', + description: 'Value which must match the condition property', type: 'string', }, - steps: { + actions: { type: 'array', title: 'Actions', - description: 'Steps to execute if this case matches the condition.', + description: 'Actions to execute if case is equal to condition', items: { $type: 'Microsoft.IDialog', - $ref: '#/defintions/Microsoft.IDialog', + $ref: '#/definitions/Microsoft.IDialog', }, }, }, - required: ['value', 'case'], }, }, default: { type: 'array', - title: 'Default Branch', - description: 'Steps to execute if no case matches the condition.', + title: 'Default', + description: 'Action to execute if no case is equal to condition', items: { $type: 'Microsoft.IDialog', $ref: '#/definitions/Microsoft.IDialog', @@ -2972,10 +4951,10 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.TextInput': { - $role: 'unionType(Microsoft.IDialog)', - title: 'TextInput Dialog', - description: 'This represents a dialog which gathers a text from the user', + 'Microsoft.TemperatureEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Temperature Entity Recognizer', + description: 'Recognizer which recognizes temperatures.', type: 'object', properties: { $type: { @@ -2984,7 +4963,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.TextInput', + const: 'Microsoft.TemperatureEntityRecognizer', }, $copy: { title: '$copy', @@ -3001,48 +4980,61 @@ export const appschema: JSONSchema6 = { $designer: { title: '$designer', type: 'object', - description: 'Extra information for the Bot Framework Designer.', + description: 'Extra information for the Bot Framework Composer.', }, - outputFormat: { + }, + additionalProperties: false, + patternProperties: { + '^\\$': { type: 'string', - enum: ['none', 'trim', 'lowercase', 'uppercase'], - title: 'Output Format', - description: 'The TextInput output format.', - default: 'none', }, - allowInterruptions: { - default: 'never', - type: 'string', - enum: ['always', 'never', 'notRecognized'], - title: 'Allow Interruptions', + }, + }, + 'Microsoft.TextInput': { + $role: 'unionType(Microsoft.IDialog)', + title: 'TextInput Dialog', + description: 'This represents a dialog which gathers a text from the user', + type: 'object', + properties: { + $type: { + title: '$type', description: - "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - examples: ['notRecognized'], - }, - property: { - $role: 'memoryPath', - title: 'Property', - description: 'This is that will be passed in as InputProperty and also set as the OutputProperty', - examples: ['value.birthday', 'user.name'], + 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + const: 'Microsoft.TextInput', }, - inputBindings: { + $copy: { + title: '$copy', + description: 'Copy the definition by id from a .dialog file.', + type: 'string', + pattern: '^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$', + }, + $id: { + title: '$id', + description: 'Inline id for reuse of an inline definition', + type: 'string', + pattern: '^([a-zA-Z][a-zA-Z0-9.]*)$', + }, + $designer: { + title: '$designer', type: 'object', - title: 'Input Bindings', - description: 'This defines properties which be passed as arguments to this dialog', - examples: ['value.birthday'], - additionalProperties: { - type: 'string', - }, + description: 'Extra information for the Bot Framework Composer.', }, - outputBinding: { - $role: 'memoryPath', - title: 'Output Property binding', - description: 'This is the property which the EndDialog(result) will be set to when EndDialog() is called', - examples: ['value.birthday'], + id: { type: 'string', - pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', + title: 'Id', + description: '(Optional) id for the dialog', + examples: ['Dialog2'], + }, + tags: { + type: 'array', + title: 'Tags', + description: 'Tags are optional strings that you can use to organize components', + examples: ['input', 'confirmation'], + items: { + type: 'string', + }, }, prompt: { $type: 'Microsoft.IActivityTemplate', @@ -3065,6 +5057,16 @@ export const appschema: JSONSchema6 = { examples: ['No date was recognized'], $ref: '#/definitions/Microsoft.IActivityTemplate', }, + defaultValueResponse: { + $type: 'Microsoft.IActivityTemplate', + title: 'Default Value Response', + description: + 'The message to send to when max turn count has been exceeded and the default value is selected as the value.', + examples: [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it.", + ], + $ref: '#/definitions/Microsoft.IActivityTemplate', + }, maxTurnCount: { type: 'integer', title: 'Max Turn Count', @@ -3075,8 +5077,7 @@ export const appschema: JSONSchema6 = { validations: { type: 'array', title: 'Validation Expressions', - description: - 'These are expressions used to validate the customer response. The response is considered invalid if any of these evaluate to false.', + description: 'Expressions to validate an input.', items: { $role: 'expression', type: 'string', @@ -3089,6 +5090,13 @@ export const appschema: JSONSchema6 = { description: 'The expression that you evaluated for input.', type: 'string', }, + property: { + $role: 'expression', + title: 'Property', + description: 'Property that this input dialog is bound to', + examples: ['$birthday'], + type: 'string', + }, defaultValue: { $role: 'expression', title: 'Default Value', @@ -3103,6 +5111,22 @@ export const appschema: JSONSchema6 = { default: false, examples: [false], }, + allowInterruptions: { + type: 'string', + enum: ['always', 'never', 'notRecognized'], + title: 'Allow Interruptions', + description: + "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + default: 'notRecognized', + examples: ['notRecognized'], + }, + outputFormat: { + type: 'string', + enum: ['none', 'trim', 'lowercase', 'uppercase'], + title: 'Output Format', + description: 'The TextInput output format.', + default: 'none', + }, }, additionalProperties: false, patternProperties: { @@ -3168,11 +5192,10 @@ export const appschema: JSONSchema6 = { }, }, }, - 'Microsoft.UnknownIntentRule': { - title: - 'This defines the steps to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog', - description: 'Defines a sequence of steps to take if there is no other trigger or plan operating', - $role: 'unionType(Microsoft.IRule)', + 'Microsoft.UrlEntityRecognizer': { + $role: 'unionType(Microsoft.EntityRecognizer)', + title: 'Url Entity Recognizer', + description: 'Recognizer which recognizes urls (example: http://bing.com)', type: 'object', properties: { $type: { @@ -3181,7 +5204,7 @@ export const appschema: JSONSchema6 = { 'Defines the valid properties for the component you are configuring (from a dialog .schema file)', type: 'string', pattern: '^[a-zA-Z][a-zA-Z0-9.]*$', - const: 'Microsoft.UnknownIntentRule', + const: 'Microsoft.UrlEntityRecognizer', }, $copy: { title: '$copy', @@ -3200,23 +5223,6 @@ export const appschema: JSONSchema6 = { type: 'object', description: 'Extra information for the Bot Framework Composer.', }, - constraint: { - $role: 'expression', - title: 'Constraint', - description: - 'An optional expression containing additional requirements which must be met for this event to fire.', - examples: ['user.vip == true'], - type: 'string', - }, - steps: { - type: 'array', - title: 'Actions', - description: 'These are the steps the bot will be execute when this event fires.', - items: { - $type: 'Microsoft.IDialog', - $ref: '#/definitions/Microsoft.IDialog', - }, - }, }, additionalProperties: false, patternProperties: { diff --git a/Composer/packages/extensions/obiformeditor/src/schema/types.d.ts b/Composer/packages/extensions/obiformeditor/src/schema/types.d.ts index 6fc6a3f4c3..aa464e094b 100644 --- a/Composer/packages/extensions/obiformeditor/src/schema/types.d.ts +++ b/Composer/packages/extensions/obiformeditor/src/schema/types.d.ts @@ -135,13 +135,13 @@ interface RuleBase extends BaseSchema { } /** Defines a rule for an event which is triggered by some source */ -interface EventRule extends RuleBase { +interface OnEvent extends RuleBase { /** Events to trigger this rule for */ events: DialogEvent[]; } /** This defines the steps to take when an Intent is recognized (and optionally entities) */ -interface IntentRule extends RuleBase { +interface OnIntent extends RuleBase { /** Intent name to trigger on */ intent: string; /** The entities required to trigger this rule */ @@ -152,9 +152,9 @@ interface IntentRule extends RuleBase { interface Rule extends RuleBase {} /** Defines a sequence of steps to take if there is no other trigger or plan operating */ -interface UnknownIntentRule extends RuleBase {} +interface OnUnknownIntent extends RuleBase {} -type MicrosoftIRule = EventRule | IntentRule | Rule | UnknownIntentRule; +type MicrosoftIRule = OnEvent | OnIntent | Rule | OnUnknownIntent; /** * Conversational Flow and Dialog Management @@ -164,7 +164,7 @@ interface CaseCondition { /** Value which must match the condition property */ value: string; /** Steps to execute if case is equal to condition */ - steps: MicrosoftIDialog[]; + actions: MicrosoftIDialog[]; } /** Step which conditionally decides which step to execute next. */ @@ -185,10 +185,8 @@ interface MicrosoftAdaptiveDialog extends BaseSchema { recognizer?: MicrosoftIRecognizer; /** Language generator to use for this dialog. (aka: LG file) */ generator?: string; - /** This is the initial sequence of steps to execute when this dialog is started. */ - steps: MicrosoftIDialog[]; /** This is the array of rules to use to evaluate conversation */ - rules: MicrosoftIRule[]; + events: MicrosoftIRule[]; } /* Union of components which implement the IDialog interface */ diff --git a/Composer/packages/extensions/obiformeditor/src/schema/uischema.ts b/Composer/packages/extensions/obiformeditor/src/schema/uischema.ts index 85b8494546..767b0e3071 100644 --- a/Composer/packages/extensions/obiformeditor/src/schema/uischema.ts +++ b/Composer/packages/extensions/obiformeditor/src/schema/uischema.ts @@ -8,9 +8,21 @@ const globalFields = { outputBinding: { 'ui:field': 'NullField', }, + id: { + 'ui:field': 'NullField', + }, + tags: { + 'ui:field': 'NullField', + }, }; const activityFields = { + id: { + 'ui:field': 'NullField', + }, + tags: { + 'ui:field': 'NullField', + }, prompt: { 'ui:widget': 'TextareaWidget', }, @@ -30,13 +42,10 @@ export const uiSchema = { recognizer: { 'ui:field': 'RecognizerField', }, - rules: { + events: { 'ui:field': 'RulesField', }, - selector: { - 'ui:field': 'SelectorField', - }, - steps: { + actions: { 'ui:field': 'StepsField', }, autoEndDialog: { @@ -46,7 +55,7 @@ export const uiSchema = { 'ui:field': 'NullField', }, ...globalFields, - 'ui:order': ['property', 'outputBinding', 'recognizer', 'rules', 'steps', '*', 'selector'], + 'ui:order': ['property', 'outputBinding', 'recognizer', 'events', '*'], }, 'Microsoft.BeginDialog': { dialog: { @@ -74,36 +83,22 @@ export const uiSchema = { }, ...globalFields, }, - 'Microsoft.EditSteps': { - steps: { + 'Microsoft.EditActions': { + actions: { 'ui:field': 'StepsField', }, }, - 'Microsoft.ConversationUpdateActivityRule': { - steps: { - 'ui:field': 'StepsField', - }, - ...globalFields, - 'ui:order': ['events', 'constraint', '*', 'steps'], - }, - 'Microsoft.EventRule': { - steps: { - 'ui:field': 'StepsField', - }, - ...globalFields, - 'ui:order': ['events', 'constraint', '*', 'steps'], - }, 'Microsoft.Foreach': { - steps: { + actions: { 'ui:field': 'StepsField', }, - 'ui:order': ['listProperty', 'valueProperty', 'indexProperty', 'steps', '*'], + 'ui:order': ['listProperty', 'valueProperty', 'indexProperty', 'actions', '*'], }, 'Microsoft.ForeachPage': { - steps: { + actions: { 'ui:field': 'StepsField', }, - 'ui:order': ['listProperty', 'pageSize', 'valueProperty', 'steps', '*'], + 'ui:order': ['listProperty', 'pageSize', 'valueProperty', 'actions', '*'], }, 'Microsoft.HttpRequest': { body: { @@ -113,10 +108,10 @@ export const uiSchema = { 'ui:order': ['method', 'url', 'body', 'property', 'responseTypes', 'headers', '*'], }, 'Microsoft.IfCondition': { - elseSteps: { + actions: { 'ui:field': 'StepsField', }, - steps: { + elseActions: { 'ui:field': 'StepsField', }, ...globalFields, @@ -124,23 +119,128 @@ export const uiSchema = { 'Microsoft.IfPropertyRule': { conditionals: { items: { - rules: { + events: { 'ui:field': 'RulesField', }, }, }, ...globalFields, }, - 'Microsoft.IntentRule': { + 'Microsoft.OnActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnBeginDialog': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnConversationUpdateActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnDialogEvent': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['events', 'constraint', '*', 'actions'], + }, + 'Microsoft.OnEndOfConversationActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnEvent': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnEventActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnHandoffActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnIntent': { intent: { 'ui:widget': 'IntentWidget', }, - steps: { + actions: { 'ui:field': 'StepsField', }, ...globalFields, 'ui:order': ['intent', 'constraint', 'entities', '*'], }, + 'Microsoft.OnInvokeActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnMessageActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnMessageDeleteActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnMessageReactionActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnMessageUpdateActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnTypingActivity': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, + 'Microsoft.OnUnknownIntent': { + actions: { + 'ui:field': 'StepsField', + }, + ...globalFields, + 'ui:order': ['constraint', '*', 'actions'], + }, 'Microsoft.MostSpecificSelector': { selector: { 'ui:field': 'SelectorField', @@ -205,7 +305,7 @@ export const uiSchema = { }, // ConfirmInput defaults to YES/NO. using confirmchoices is complex // - must provide yes/no in special format along with alternatives that have to be handled - // TODO: Implement confirmChoices-specific widget with appropriate business rules. + // TODO: Implement confirmChoices-specific widget with appropriate business events. confirmChoices: { 'ui:field': 'NullField', }, @@ -307,7 +407,7 @@ export const uiSchema = { ...globalFields, }, 'Microsoft.Rule': { - steps: { + actions: { 'ui:field': 'StepsField', }, ...globalFields, @@ -321,13 +421,8 @@ export const uiSchema = { }, ...globalFields, }, - 'Microsoft.UnknownIntentRule': { - steps: { - 'ui:field': 'StepsField', - }, - ...globalFields, - }, 'Microsoft.SendActivity': { + ...globalFields, activity: { 'ui:field': 'LgEditorField', }, diff --git a/Composer/packages/extensions/obiformeditor/src/types.ts b/Composer/packages/extensions/obiformeditor/src/types.ts index 352a029f94..85db3643aa 100644 --- a/Composer/packages/extensions/obiformeditor/src/types.ts +++ b/Composer/packages/extensions/obiformeditor/src/types.ts @@ -87,6 +87,11 @@ declare module 'json-schema' { interface OBISchema { $role?: string; $type?: string; + $copy?: string; + $id?: string; + $designer?: { + [key: string]: any; + }; } interface JSONSchema6 extends OBISchema { diff --git a/Composer/packages/extensions/visual-designer/__tests__/components/nodes/RuleCard.test.tsx b/Composer/packages/extensions/visual-designer/__tests__/components/nodes/RuleCard.test.tsx index f26c8aa7fe..d11e91dfbb 100644 --- a/Composer/packages/extensions/visual-designer/__tests__/components/nodes/RuleCard.test.tsx +++ b/Composer/packages/extensions/visual-designer/__tests__/components/nodes/RuleCard.test.tsx @@ -21,10 +21,10 @@ describe('', () => { afterEach(cleanup); describe('focusedId is equal to id', () => { beforeEach(() => { - focusedId = id = 'steps[0]'; + focusedId = id = 'actions[0]'; }); - describe('data has no steps', () => { + describe('data has no actions', () => { beforeEach(() => { data = {}; renderResult = render( @@ -45,10 +45,10 @@ describe('', () => { expect(clickResults.onEvent).toEqual([[NodeEventTypes.Expand, id]]); }); }); - describe('data has steps', () => { + describe('data has actions', () => { beforeEach(() => { data = { - steps: [ + actions: [ { $type: 'Microsoft.BeginDialog', dialog: 'CalleeDialog', @@ -123,7 +123,7 @@ describe('', () => { describe('data has steps', () => { beforeEach(() => { data = { - steps: [ + actions: [ { $type: 'Microsoft.BeginDialog', dialog: 'CalleeDialog', diff --git a/Composer/packages/extensions/visual-designer/__tests__/index.test.tsx b/Composer/packages/extensions/visual-designer/__tests__/index.test.tsx index 732ff99554..333a8981b7 100644 --- a/Composer/packages/extensions/visual-designer/__tests__/index.test.tsx +++ b/Composer/packages/extensions/visual-designer/__tests__/index.test.tsx @@ -23,8 +23,8 @@ describe('', () => { data={{ content: '{"json": "some data"}' }} currentDialog={{ id: 'Main', displayName: 'Main', isRoot: false }} dialogId="SomeDialog" - focusedEvent="rules[0]" - focusedSteps={['rules[0].steps[0]']} + focusedEvent="events[0]" + focusedSteps={['events[0].steps[0]']} shellApi={{}} /> ); diff --git a/Composer/packages/extensions/visual-designer/__tests__/transformers/todoBot.main.json b/Composer/packages/extensions/visual-designer/__tests__/transformers/todoBot.main.json index 58b1e8f7c4..c910a32ce0 100644 --- a/Composer/packages/extensions/visual-designer/__tests__/transformers/todoBot.main.json +++ b/Composer/packages/extensions/visual-designer/__tests__/transformers/todoBot.main.json @@ -1,97 +1,193 @@ { - "$schema": "../../app.schema", "$type": "Microsoft.AdaptiveDialog", + "$designer": { + "createdAt": "2019-07-04T08:14:01.139Z", + "updatedAt": "2019-08-01T23:45:38.308Z", + "id": "288769", + "description": "This is a bot that demonstrates how to manage a ToDo list using Regular Expressions." + }, "autoEndDialog": false, "recognizer": { - "$type": "Microsoft.RegexRecognizer", - "intents": { - "AddIntent": "(?i)(?:add|create) .*(?:to-do|todo|task)(?: )?(?:named (?.*))?", - "DeleteIntent": "(?i)(?:delete|remove|clear) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?", - "ShowIntent": "(?i)(?:show|see|view) .*(?:to-do|todo|task)", - "ClearIntent": "(?i)(?:delete|remove|clear) (?:all|every) (?:to-dos|todos|tasks)", - "HelpIntent": "(?i)help", - "CancelIntent": "(?i)cancel|never mind" - } - }, - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "Hi! I'm a ToDo bot. Say \"add a todo named first\" to get started. test reload" - } - ], - "rules": [ + "$type": "Microsoft.RegexRecognizer", + "intents": [ { - "$type": "Microsoft.IntentRule", + + "$type": "Microsoft.IntentPattern", "intent": "AddIntent", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "dialog": "AddToDo" - } - - ] + "pattern": "(?i)(?:add|create) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?" }, { - "$type": "Microsoft.IntentRule", - "intent": "DeleteIntent", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "dialog": "DeleteToDo" - } - ] + + "$type": "Microsoft.IntentPattern", + "intent": "ClearIntent", + "pattern": "(?i)(?:delete|remove|clear) (?:all|every) (?:to-dos|todos|tasks)" }, { - "$type": "Microsoft.IntentRule", - "intent": "ClearIntent", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "dialog": "ClearToDos" - } - ] + + "$type": "Microsoft.IntentPattern", + "intent": "DeleteIntent", + "pattern": "(?i)(?:delete|remove|clear) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?" }, { - "$type": "Microsoft.IntentRule", + + "$type": "Microsoft.IntentPattern", "intent": "ShowIntent", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "dialog": "ShowToDos" - } - ] + "pattern": "(?i)(?:show|see|view) .*(?:to-do|todo|task)" }, { - "$type": "Microsoft.IntentRule", + + "$type": "Microsoft.IntentPattern", "intent": "HelpIntent", - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "I can add a todo, show todos, remove a todo, and clear all todos\n" - } - ] + "pattern": "(?i)help" }, { - "$type": "Microsoft.IntentRule", + + "$type": "Microsoft.IntentPattern", "intent": "CancelIntent", - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "ok." - }, - { - "$type": "Microsoft.EndDialog" - } - ] - }, - { - "$type": "Microsoft.UnknownIntentRule", - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "Hi! I'm a ToDo bot. Say \"add a todo named first\" to get started." - } - ] + "pattern": "(?i)cancel|never mind" } ] -} + }, + "generator": "common.lg", + "events": [ + { + "$type": "Microsoft.OnConversationUpdateActivity", + "$designer": { + "createdAt": "2019-07-01T22:02:14.960Z", + "updatedAt": "2019-07-16T20:00:24.788Z", + "id": "376720" + }, + "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-08-02T22:18:56.943Z", + "updatedAt": "2019-08-02T22:36:20.947Z", + "id": "157674" + }, + "activity": "[bfdactivity-157674]" + } + ] + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T19:59:32.772Z", + "updatedAt": "2019-07-16T19:59:36.277Z", + "id": "064505" + }, + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "dialog": "AddToDo" + } + ], + "intent": "AddIntent" + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T19:59:37.184Z", + "updatedAt": "2019-08-01T23:46:50.759Z", + "id": "114961" + }, + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "dialog": "DeleteToDo", + "$designer": { + "createdAt": "2019-08-01T23:47:15.255Z", + "updatedAt": "2019-08-01T23:47:15.258Z", + "id": "978613" + } + } + ], + "intent": "DeleteIntent" + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T19:59:41.352Z", + "updatedAt": "2019-07-16T19:59:44.427Z", + "id": "088050" + }, + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "dialog": "ClearToDos" + } + ], + "intent": "ClearIntent" + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T19:59:50.315Z", + "updatedAt": "2019-07-16T19:59:54.774Z", + "id": "633942" + }, + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-08-01T23:44:56.704Z", + "updatedAt": "2019-08-01T23:44:57.629Z", + "id": "696707" + }, + "activity": "[bfdactivity-696707]" + } + ], + "intent": "HelpIntent" + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T20:00:00.082Z", + "updatedAt": "2019-07-16T20:00:03.344Z", + "id": "794124" + }, + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "dialog": "ShowToDos" + } + ], + "intent": "ShowIntent" + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T20:00:08.499Z", + "updatedAt": "2019-07-16T20:00:12.504Z", + "id": "179728" + }, + "actions": [ + { + "$type": "Microsoft.SendActivity", + "activity": "ok." + }, + { + "$type": "Microsoft.EndDialog" + } + ], + "intent": "CancelIntent" + }, + { + "$type": "Microsoft.OnUnknownIntent", + "$designer": { + "createdAt": "2019-07-16T20:00:13.577Z", + "updatedAt": "2019-07-16T20:00:19.435Z", + "id": "677447" + }, + "actions": [ + { + "$type": "Microsoft.SendActivity", + "activity": "Hi! I'm a ToDo bot. Say \"add a todo named first\" to get started." + } + ] + } + ], + "$schema": "../../app.schema" + } + \ No newline at end of file diff --git a/Composer/packages/extensions/visual-designer/__tests__/transformers/transformForeach.test.ts b/Composer/packages/extensions/visual-designer/__tests__/transformers/transformForeach.test.ts index 6c65663258..b64c15abb0 100644 --- a/Composer/packages/extensions/visual-designer/__tests__/transformers/transformForeach.test.ts +++ b/Composer/packages/extensions/visual-designer/__tests__/transformers/transformForeach.test.ts @@ -14,7 +14,7 @@ test('should return correct schema when input a Foreach schema', () => { steps: [], }; - const result = transformForeach(json, 'steps[0]'); + const result = transformForeach(json, 'actions[0]'); if (!result) throw new Error('transform Foreach got a wrong result'); expect(result).toBeDefined(); @@ -22,21 +22,21 @@ test('should return correct schema when input a Foreach schema', () => { const { foreachDetail, stepGroup, loopBegin, loopEnd } = result; expect(foreachDetail).toBeDefined(); - expect(foreachDetail.id).toEqual('steps[0]'); + expect(foreachDetail.id).toEqual('actions[0]'); expect(foreachDetail.json.$type).toEqual(ObiTypes.ForeachDetail); expect(foreachDetail.json.listProperty).toEqual(json.listProperty); expect(stepGroup).toBeDefined(); - expect(stepGroup.id).toEqual('steps[0].steps'); + expect(stepGroup.id).toEqual('actions[0].actions'); expect(stepGroup.json.$type).toEqual(ObiTypes.StepGroup); expect(stepGroup.json.children.length).toEqual(0); expect(loopBegin).toBeDefined(); - expect(loopBegin.id).toEqual('steps[0]'); + expect(loopBegin.id).toEqual('actions[0]'); expect(loopBegin.json.$type).toEqual(ObiTypes.LoopIndicator); expect(loopEnd).toBeDefined(); - expect(loopEnd.id).toEqual('steps[0]'); + expect(loopEnd.id).toEqual('actions[0]'); expect(loopEnd.json.$type).toEqual(ObiTypes.LoopIndicator); }); @@ -45,10 +45,10 @@ test('should return correct schema when input a ForeachPage schema', () => { $type: 'Microsoft.ForeachPage', listProperty: 'users.todo', pageSize: 2, - steps: [], + actions: [], }; - const result = transformForeach(json, 'steps[0]'); + const result = transformForeach(json, 'actions[0]'); if (!result) throw new Error('transform Foreach got a wrong result'); expect(result).toBeDefined(); @@ -56,20 +56,20 @@ test('should return correct schema when input a ForeachPage schema', () => { const { foreachDetail, stepGroup, loopBegin, loopEnd } = result; expect(foreachDetail).toBeDefined(); - expect(foreachDetail.id).toEqual('steps[0]'); + expect(foreachDetail.id).toEqual('actions[0]'); expect(foreachDetail.json.$type).toEqual(ObiTypes.ForeachPageDetail); expect(foreachDetail.json.listProperty).toEqual(json.listProperty); expect(stepGroup).toBeDefined(); - expect(stepGroup.id).toEqual('steps[0].steps'); + expect(stepGroup.id).toEqual('actions[0].actions'); expect(stepGroup.json.$type).toEqual(ObiTypes.StepGroup); expect(stepGroup.json.children.length).toEqual(0); expect(loopBegin).toBeDefined(); - expect(loopBegin.id).toEqual('steps[0]'); + expect(loopBegin.id).toEqual('actions[0]'); expect(loopBegin.json.$type).toEqual(ObiTypes.LoopIndicator); expect(loopEnd).toBeDefined(); - expect(loopEnd.id).toEqual('steps[0]'); + expect(loopEnd.id).toEqual('actions[0]'); expect(loopEnd.json.$type).toEqual(ObiTypes.LoopIndicator); }); diff --git a/Composer/packages/extensions/visual-designer/__tests__/transformers/transformIfCondition.test.tsx b/Composer/packages/extensions/visual-designer/__tests__/transformers/transformIfCondition.test.tsx index 88b8947453..52220122da 100644 --- a/Composer/packages/extensions/visual-designer/__tests__/transformers/transformIfCondition.test.tsx +++ b/Composer/packages/extensions/visual-designer/__tests__/transformers/transformIfCondition.test.tsx @@ -8,7 +8,7 @@ test('should return {} when input is not IfCondition', () => { }); test('should return correct schema when input choice and empty branches', () => { - const json = { $type: ObiTypes.IfCondition, conditon: 'a==b', steps: [], elseSteps: [] }; + const json = { $type: ObiTypes.IfCondition, conditon: 'a==b', actions: [], elseActions: [] }; const result = transformIfCondtion(json, ''); if (!result) throw new Error('IfCondition got a wrong result'); @@ -47,8 +47,8 @@ test('should return correct schema when input complete json', () => { const json = { $type: ObiTypes.IfCondition, conditon: 'a==b', - steps: [{ $type: 'any' }], - elseSteps: [{ $type: 'any' }, { $type: 'any' }], + actions: [{ $type: 'any' }], + elseActions: [{ $type: 'any' }, { $type: 'any' }], }; const result = transformIfCondtion(json, ''); if (!result) throw new Error('IfCondition got a wrong result'); @@ -68,8 +68,8 @@ test('should jsonpath be passed down to children', () => { const json = { $type: ObiTypes.IfCondition, conditon: 'a==b', - steps: [{ $type: 'any' }], - elseSteps: [{ $type: 'any' }, { $type: 'any' }], + actions: [{ $type: 'any' }], + elseActions: [{ $type: 'any' }, { $type: 'any' }], }; const currentPath = 'current'; const result = transformIfCondtion(json, currentPath); @@ -79,8 +79,8 @@ test('should jsonpath be passed down to children', () => { expect(result.choice.id).toEqual(currentPath); expect(result.ifGroup).toBeTruthy(); - expect(result.ifGroup.id).toEqual(`${currentPath}.steps`); + expect(result.ifGroup.id).toEqual(`${currentPath}.actions`); expect(result.elseGroup).toBeTruthy(); - expect(result.elseGroup.id).toEqual(`${currentPath}.elseSteps`); + expect(result.elseGroup.id).toEqual(`${currentPath}.elseActions`); }); diff --git a/Composer/packages/extensions/visual-designer/__tests__/transformers/transformObiRules.test.tsx b/Composer/packages/extensions/visual-designer/__tests__/transformers/transformObiRules.test.tsx index 9fc649ca07..a3545b22e4 100644 --- a/Composer/packages/extensions/visual-designer/__tests__/transformers/transformObiRules.test.tsx +++ b/Composer/packages/extensions/visual-designer/__tests__/transformers/transformObiRules.test.tsx @@ -8,25 +8,25 @@ test('should return safely when input null value', () => { test('should parse single rule correctly with empty parentPath', () => { const json = { $type: 'Microsoft.IntentRule', - steps: [{ $type: 'any' }], + actions: [{ $type: 'any' }], }; const result = transformObiRules(json, ''); if (!result) throw new Error('transformObiRules got a wrong result'); expect(result.stepGroup).toBeTruthy(); - expect(result.stepGroup.id).toEqual('steps'); - expect(result.stepGroup.json.children.length === json.steps.length).toBeTruthy(); + expect(result.stepGroup.id).toEqual('actions'); + expect(result.stepGroup.json.children.length === json.actions.length).toBeTruthy(); }); test('should parse single rule correctly with real parentPath', () => { const json = { $type: 'Microsoft.IntentRule', - steps: [{ $type: 'any' }], + actions: [{ $type: 'any' }], }; - const result = transformObiRules(json, 'rules[0]'); + const result = transformObiRules(json, 'events[0]'); if (!result) throw new Error('transformObiRules got a wrong result'); expect(result.stepGroup).toBeTruthy(); - expect(result.stepGroup.id).toEqual('rules[0].steps'); - expect(result.stepGroup.json.children.length === json.steps.length).toBeTruthy(); + expect(result.stepGroup.id).toEqual('events[0].actions'); + expect(result.stepGroup.json.children.length === json.actions.length).toBeTruthy(); }); diff --git a/Composer/packages/extensions/visual-designer/__tests__/transformers/transformRootDialog.test.tsx b/Composer/packages/extensions/visual-designer/__tests__/transformers/transformRootDialog.test.tsx index be6de6a283..1af55e1399 100644 --- a/Composer/packages/extensions/visual-designer/__tests__/transformers/transformRootDialog.test.tsx +++ b/Composer/packages/extensions/visual-designer/__tests__/transformers/transformRootDialog.test.tsx @@ -10,14 +10,14 @@ test('should return safely when input null value', () => { test('should parse stepGroup when input TodoBotMain with steps', () => { const jsonWithSteps = { ...TodoBotMain, - steps: [{ $type: 'any' }], + actions: [{ $type: 'any' }], }; const result = transformRootDialog(jsonWithSteps); if (!result) throw new Error('transformRootDialog got null result.'); expect(result.stepGroup).toBeTruthy(); - expect(result.stepGroup.id).toEqual('steps'); - expect(result.stepGroup.json.children.length === jsonWithSteps.steps.length).toBeTruthy(); + expect(result.stepGroup.id).toEqual('actions'); + expect(result.stepGroup.json.children.length === jsonWithSteps.actions.length).toBeTruthy(); }); test('should parse ruleGroup and stepGroup when input TodoBotMain without recognizer', () => { @@ -29,6 +29,6 @@ test('should parse ruleGroup and stepGroup when input TodoBotMain without recogn if (!result) throw new Error('transformRootDialog got null result.'); expect(result.ruleGroup).toBeTruthy(); - expect(result.ruleGroup.id).toEqual('rules'); - expect(result.ruleGroup.json.children.length === jsonWithoutRecognizer.rules.length).toBeTruthy(); + expect(result.ruleGroup.id).toEqual('events'); + expect(result.ruleGroup.json.children.length === jsonWithoutRecognizer.events.length).toBeTruthy(); }); diff --git a/Composer/packages/extensions/visual-designer/__tests__/transformers/transformSwitchCondition.test.tsx b/Composer/packages/extensions/visual-designer/__tests__/transformers/transformSwitchCondition.test.tsx index c8208fc871..da80e3a6db 100644 --- a/Composer/packages/extensions/visual-designer/__tests__/transformers/transformSwitchCondition.test.tsx +++ b/Composer/packages/extensions/visual-designer/__tests__/transformers/transformSwitchCondition.test.tsx @@ -15,19 +15,19 @@ test('should return correct schema when input empty cases', () => { default: [], }; - const result: any = transformSwitchCondition(json, 'steps[0]'); + const result: any = transformSwitchCondition(json, 'actions[0]'); expect(result).toBeTruthy(); expect(result.condition).toBeTruthy(); - expect(result.condition.id).toEqual('steps[0]'); + expect(result.condition.id).toEqual('actions[0]'); expect(result.choice).toBeTruthy(); - expect(result.choice.id).toEqual('steps[0]'); + expect(result.choice.id).toEqual('actions[0]'); expect(result.branches).toBeTruthy(); expect(result.branches.length).toEqual(1); - expect(result.branches[0].id).toEqual('steps[0].default'); + expect(result.branches[0].id).toEqual('actions[0].default'); }); test('should return correct schema when input empty cases', () => { @@ -37,29 +37,29 @@ test('should return correct schema when input empty cases', () => { cases: [ { value: '1', - steps: [{ $type: ObiTypes.SendActivity }], + actions: [{ $type: ObiTypes.SendActivity }], }, ], default: [{ $type: ObiTypes.SendActivity }], }; - const result: any = transformSwitchCondition(json, 'steps[0]'); + const result: any = transformSwitchCondition(json, 'actions[0]'); expect(result).toBeTruthy(); expect(result.condition).toBeTruthy(); - expect(result.condition.id).toEqual('steps[0]'); + expect(result.condition.id).toEqual('actions[0]'); expect(result.choice).toBeTruthy(); - expect(result.choice.id).toEqual('steps[0]'); + expect(result.choice.id).toEqual('actions[0]'); expect(result.branches).toBeTruthy(); expect(result.branches.length).toEqual(2); - expect(result.branches[0].id).toEqual('steps[0].default'); + expect(result.branches[0].id).toEqual('actions[0].default'); expect(result.branches[0].json.children.length).toEqual(1); - expect(result.branches[1].id).toEqual('steps[0].cases[0].steps'); + expect(result.branches[1].id).toEqual('actions[0].cases[0].actions'); expect(result.branches[1].json.children.length).toEqual(1); expect(result.branches[1].json.label).toEqual(json.cases[0].value); }); diff --git a/Composer/packages/extensions/visual-designer/demo/src/index.js b/Composer/packages/extensions/visual-designer/demo/src/index.js index 22723ef832..50f88e8146 100644 --- a/Composer/packages/extensions/visual-designer/demo/src/index.js +++ b/Composer/packages/extensions/visual-designer/demo/src/index.js @@ -3,6 +3,8 @@ import { render } from 'react-dom'; import { Nav } from 'office-ui-fabric-react'; import { initializeIcons } from 'office-ui-fabric-react/lib/Icons'; +import { EditorConfig } from '../../src/editors/editorConfig'; + import { VisualEditorDemo } from './stories/VisualEditorDemo'; import { StepEditorDemo } from './stories/StepEditorDemo'; import { EventsEditorDemo } from './stories/EventsEditorDemo'; @@ -10,6 +12,8 @@ import './index.css'; initializeIcons(undefined, { disableWarnings: true }); +EditorConfig.features.showEvents = true; + const DemoMaps = { VisualEditorDemo: { key: 'VisualEditorDemo', diff --git a/Composer/packages/extensions/visual-designer/demo/src/samples/index.js b/Composer/packages/extensions/visual-designer/demo/src/samples/index.js index a568c9760d..470c1759b6 100644 --- a/Composer/packages/extensions/visual-designer/demo/src/samples/index.js +++ b/Composer/packages/extensions/visual-designer/demo/src/samples/index.js @@ -3,7 +3,6 @@ import ClearToDos from './todo/ClearToDos.json'; import DeleteToDo from './todo/DeleteToDo.json'; import ShowToDos from './todo/ShowToDos.json'; import ToDoBotMain from './todo/ToDoBot.main.json'; -import SwitchCondition from './todo/SwitchCondition.json'; export const ObiExamples = { AddToDo, @@ -11,5 +10,4 @@ export const ObiExamples = { DeleteToDo, ShowToDos, ToDoBotMain, - SwitchCondition, }; diff --git a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/AddToDo.json b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/AddToDo.json index 09f7438fd2..845351494f 100644 --- a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/AddToDo.json +++ b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/AddToDo.json @@ -1,58 +1,87 @@ { - "$schema": "../../app.schema", - "$type": "Microsoft.AdaptiveDialog", - "steps": [ - { - "$type": "Microsoft.SaveEntity", - "entity": "title", - "property": "dialog.todo" + "$type": "Microsoft.AdaptiveDialog", + "$designer": { + "createdAt": "2019-07-03T06:51:37.526Z", + "updatedAt": "2019-07-16T20:00:39.131Z", + "id": "808722" }, - { - "$type": "Microsoft.IfCondition", - "condition": "dialog.todo == null", - "steps": [ - { - "$type": "Microsoft.TextInput", - "prompt": "OK, please enter the title of your todo.", - "property": "dialog.todo" - } - ] - }, - { - "$type": "Microsoft.IfCondition", - "condition": "user.todos == null", - "steps": [ - { - "$type": "Microsoft.InitProperty", - "property": "user.todos", - "type": "array" - } - ] - }, - { - "$type": "Microsoft.EditArray", - "changeType": "Push", - "arrayProperty": "user.todos", - "itemProperty": "dialog.todo" - }, - { - "$type": "Microsoft.SendActivity", - "activity": "Successfully added a todo named \"{dialog.todo}\"" - }, - { - "$type": "Microsoft.DeleteProperty", - "property": "dialog.todo" - } - ], - "rules": [ - { - "$type": "Microsoft.IntentRule", - "intent": "CancelIntent", - "steps": [ - { - "$type": "Microsoft.CancelAllDialog" - } - ] - } - ] -} + "autoEndDialog": true, + "$schema": "../../app.schema", + "events": [ + { + "$type": "Microsoft.OnBeginDialog", + "$designer": { + "id": "335456", + "updatedAt": "2019-07-22T08:10:44.402Z" + }, + "actions": [ + { + "$type": "Microsoft.SetProperty", + "$designer": { + "createdAt": "2019-07-16T20:00:51.769Z", + "updatedAt": "2019-08-02T22:30:32.704Z", + "id": "201694" + }, + "property": "dialog.todo", + "value": "@title" + }, + { + "$type": "Microsoft.TextInput", + "$designer": { + "createdAt": "2019-07-16T20:00:55.825Z", + "updatedAt": "2019-07-16T20:00:59.346Z", + "id": "298897" + }, + "property": "dialog.todo", + "prompt": "OK, please enter the title of your todo.", + "maxTurnCount": 3, + "alwaysPrompt": false, + "allowInterruptions": "always", + "outputFormat": "none" + }, + { + "$type": "Microsoft.IfCondition", + "$designer": { + "createdAt": "2019-07-16T20:01:05.970Z", + "updatedAt": "2019-07-16T20:01:13.866Z", + "id": "015420" + }, + "condition": "user.todos == null", + "actions": [ + { + "$type": "Microsoft.InitProperty", + "$designer": { + "createdAt": "2019-07-16T20:01:05.970Z", + "updatedAt": "2019-07-16T20:01:13.866Z", + "id": "015420" + }, + "property": "user.todos", + "type": "array" + } + ] + }, + { + "$type": "Microsoft.EditArray", + "$designer": { + "createdAt": "2019-07-01T22:02:54.672Z", + "updatedAt": "2019-08-02T22:32:37.062Z", + "id": "567087" + }, + "changeType": "Push", + "arrayProperty": "user.todos", + "value": "dialog.todo" + }, + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-07-01T22:02:53.545Z", + "updatedAt": "2019-07-16T20:01:26.980Z", + "id": "116673" + }, + "activity": "[bfdactivity-116673]" + } + ] + } + ] + } + \ No newline at end of file diff --git a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ClearToDos.json b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ClearToDos.json index 1d5eb6c8fa..69a893e2b6 100644 --- a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ClearToDos.json +++ b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ClearToDos.json @@ -1,26 +1,64 @@ { - "$schema": "../../app.schema", "$type": "Microsoft.AdaptiveDialog", - "steps": [ - { - "$type": "Microsoft.EditArray", - "changeType": "Clear", - "arrayProperty": "user.todos" - }, - { - "$type": "Microsoft.SendActivity", - "activity": "Successfully clear the todo list." - } - ], - "rules": [ + "$designer": { + "createdAt": "2019-07-03T06:51:38.784Z", + "updatedAt": "2019-07-16T20:00:42.988Z", + "id": "316336" + }, + "autoEndDialog": true, + "$schema": "../../app.schema", + "events": [ { - "$type": "Microsoft.IntentRule", - "intent": "CancelIntent", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "$designer": { + "id": "480162", + "updatedAt": "2019-07-22T08:10:50.068Z" + }, + + "actions": [ + { + "$type": "Microsoft.EditArray", + "$designer": { + "createdAt": "2019-07-01T22:03:18.901Z", + "updatedAt": "2019-07-16T20:01:43.249Z", + "id": "832307" + }, + "changeType": "Clear", + "arrayProperty": "user.todos", + "resultProperty": "dialog.cleared" + }, { - "$type": "Microsoft.CancelAllDialog" + "$type": "Microsoft.IfCondition", + "$designer": { + "createdAt": "2019-07-01T22:03:36.091Z", + "updatedAt": "2019-07-16T20:01:47.803Z", + "id": "983761" + }, + "condition": "dialog.cleared", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-07-01T22:03:18.901Z", + "updatedAt": "2019-07-16T20:01:43.249Z", + "id": "832307" + }, + "activity": "[bfdactivity-832307]" + } + ], + "elseActions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-07-01T22:03:36.091Z", + "updatedAt": "2019-07-16T20:01:47.803Z", + "id": "983761" + }, + "activity": "[bfdactivity-983761]" + } + ] } ] } ] -} +} \ No newline at end of file diff --git a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/DeleteToDo.json b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/DeleteToDo.json index 0dbf812471..df2da5f86b 100644 --- a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/DeleteToDo.json +++ b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/DeleteToDo.json @@ -1,47 +1,89 @@ { - "$schema": "../../app.schema", "$type": "Microsoft.AdaptiveDialog", - "steps": [ - { - "$type": "Microsoft.SaveEntity", - "entity": "title", - "property": "dialog.todo" - }, + "$designer": { + "createdAt": "2019-07-03T06:51:41.186Z", + "updatedAt": "2019-07-16T20:00:46.804Z", + "id": "114909" + }, + "autoEndDialog": true, + "$schema": "../../app.schema", + "events": [ { - "$type": "Microsoft.IfCondition", - "condition": "dialog.todo == null", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "$designer": { + "id": "768658", + "updatedAt": "2019-07-22T08:10:54.685Z" + }, + + "actions": [ + { + "$type": "Microsoft.SetProperty", + "$designer": { + "createdAt": "2019-07-01T22:04:05.322Z", + "updatedAt": "2019-07-16T20:02:14.365Z", + "id": "725469" + }, + "property": "dialog.todo", + "value": "@title" + }, { "$type": "Microsoft.TextInput", + "$designer": { + "createdAt": "2019-07-16T20:01:55.761Z", + "updatedAt": "2019-07-16T20:01:59.761Z", + "id": "870620" + }, + "property": "dialog.todo", "prompt": "OK, please enter the title of the todo you want to remove.", - "property": "dialog.todo" - } - ] - }, - { - "$type": "Microsoft.EditArray", - "changeType": "Remove", - "arrayProperty": "user.todos", - "itemProperty": "dialog.todo" - }, - { - "$type": "Microsoft.SendActivity", - "activity": "Successfully removed a todo named \"{dialog.todo}\"" - }, - { - "$type": "Microsoft.DeleteProperty", - "property": "dialog.todo" - } - ], - "rules": [ - { - "$type": "Microsoft.IntentRule", - "intent": "CancelIntent", - "steps": [ + "maxTurnCount": 3, + "alwaysPrompt": false, + "allowInterruptions": "never", + "outputFormat": "none" + }, + { + "$type": "Microsoft.EditArray", + "$designer": { + "createdAt": "2019-07-16T20:02:01.004Z", + "updatedAt": "2019-07-16T20:02:06.091Z", + "id": "492096" + }, + "changeType": "Remove", + "arrayProperty": "user.todos", + "resultProperty": "dialog.removed", + "value": "dialog.todo" + }, { - "$type": "Microsoft.CancelAllDialog" + "$type": "Microsoft.IfCondition", + "$designer": { + "createdAt": "2019-07-01T22:04:45.788Z", + "updatedAt": "2019-07-16T20:02:19.199Z", + "id": "549615" + }, + "condition": "dialog.removed", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-07-01T22:04:05.322Z", + "updatedAt": "2019-07-16T20:02:14.365Z", + "id": "725469" + }, + "activity": "[bfdactivity-725469]" + } + ], + "elseActions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-07-01T22:04:45.788Z", + "updatedAt": "2019-07-16T20:02:19.199Z", + "id": "549615" + }, + "activity": "[bfdactivity-549615]" + } + ] } ] } ] -} +} \ No newline at end of file diff --git a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ShowToDos.json b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ShowToDos.json index 9508a169be..3976214862 100644 --- a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ShowToDos.json +++ b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ShowToDos.json @@ -1,33 +1,55 @@ { - "$schema": "../../app.schema", - "$type": "Microsoft.AdaptiveDialog", - "steps": [ - { - "$type": "Microsoft.IfCondition", - "condition": "user.todos == null", - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "You have no todos." - } - ], - "elseSteps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "[ShowTodo]" - } - ] - } - ], - "rules": [ - { - "$type": "Microsoft.IntentRule", - "intent": "CancelIntent", - "steps": [ - { - "$type": "Microsoft.CancelAllDialog" - } - ] - } - ] -} + "$type": "Microsoft.AdaptiveDialog", + "$designer": { + "createdAt": "2019-07-03T06:51:43.763Z", + "updatedAt": "2019-07-16T20:00:49.889Z", + "id": "709692" + }, + "autoEndDialog": true, + "$schema": "../../app.schema", + "events": [ + { + "$type": "Microsoft.OnBeginDialog", + "$designer": { + "id": "783343", + "updatedAt": "2019-07-22T08:11:00.380Z" + }, + + "actions": [ + { + "$type": "Microsoft.IfCondition", + "$designer": { + "createdAt": "2019-07-01T22:05:03.290Z", + "updatedAt": "2019-07-16T20:02:34.141Z", + "id": "662084" + }, + "condition": "user.todos == null", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-07-01T22:04:54.741Z", + "updatedAt": "2019-07-16T20:02:29.357Z", + "id": "339580", + "name": "Send an Activity" + }, + "activity": "[bfdactivity-339580]" + } + ], + "elseActions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-07-01T22:05:03.290Z", + "updatedAt": "2019-07-16T20:02:34.141Z", + "id": "662084", + "name": "Send an Activity" + }, + "activity": "[bfdactivity-662084]" + } + ] + } + ] + } + ] + } \ No newline at end of file diff --git a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/SwitchCondition.json b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/SwitchCondition.json deleted file mode 100644 index dcb61dd073..0000000000 --- a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/SwitchCondition.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema": "../../app.schema", - "$type": "Microsoft.AdaptiveDialog", - "steps": [ - { - "$type": "Microsoft.ChoiceInput", - "property": "user.style", - "choices": [ - { - "value": "Test1" - }, - { - "value": "Test2" - }, - { - "value": "Test3" - } - ], - "prompt": "Please select a value from below:", - "style": "List" - }, - { - "$type": "Microsoft.SendActivity", - "activity": "You select: {user.style}" - }, - { - "$type": "Microsoft.SwitchCondition", - "condition": "user.style", - "default": [ - { - "$type": "Microsoft.SendActivity", - "activity": "You select: default" - } - ], - "cases": [ - { - "value": "'Test1'", - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "You select: 1" - } - ] - }, - { - "value": "'Test2'", - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "You select: 2" - } - ] - }, - { - "value": "'Test3'", - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "You select: 3" - } - ] - } - ] - } - ] -} diff --git a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ToDoBot.main.json b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ToDoBot.main.json index 58b1e8f7c4..c910a32ce0 100644 --- a/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ToDoBot.main.json +++ b/Composer/packages/extensions/visual-designer/demo/src/samples/todo/ToDoBot.main.json @@ -1,97 +1,193 @@ { - "$schema": "../../app.schema", "$type": "Microsoft.AdaptiveDialog", + "$designer": { + "createdAt": "2019-07-04T08:14:01.139Z", + "updatedAt": "2019-08-01T23:45:38.308Z", + "id": "288769", + "description": "This is a bot that demonstrates how to manage a ToDo list using Regular Expressions." + }, "autoEndDialog": false, "recognizer": { - "$type": "Microsoft.RegexRecognizer", - "intents": { - "AddIntent": "(?i)(?:add|create) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?", - "DeleteIntent": "(?i)(?:delete|remove|clear) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?", - "ShowIntent": "(?i)(?:show|see|view) .*(?:to-do|todo|task)", - "ClearIntent": "(?i)(?:delete|remove|clear) (?:all|every) (?:to-dos|todos|tasks)", - "HelpIntent": "(?i)help", - "CancelIntent": "(?i)cancel|never mind" - } - }, - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "Hi! I'm a ToDo bot. Say \"add a todo named first\" to get started. test reload" - } - ], - "rules": [ + "$type": "Microsoft.RegexRecognizer", + "intents": [ { - "$type": "Microsoft.IntentRule", + + "$type": "Microsoft.IntentPattern", "intent": "AddIntent", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "dialog": "AddToDo" - } - - ] + "pattern": "(?i)(?:add|create) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?" }, { - "$type": "Microsoft.IntentRule", - "intent": "DeleteIntent", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "dialog": "DeleteToDo" - } - ] + + "$type": "Microsoft.IntentPattern", + "intent": "ClearIntent", + "pattern": "(?i)(?:delete|remove|clear) (?:all|every) (?:to-dos|todos|tasks)" }, { - "$type": "Microsoft.IntentRule", - "intent": "ClearIntent", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "dialog": "ClearToDos" - } - ] + + "$type": "Microsoft.IntentPattern", + "intent": "DeleteIntent", + "pattern": "(?i)(?:delete|remove|clear) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?" }, { - "$type": "Microsoft.IntentRule", + + "$type": "Microsoft.IntentPattern", "intent": "ShowIntent", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "dialog": "ShowToDos" - } - ] + "pattern": "(?i)(?:show|see|view) .*(?:to-do|todo|task)" }, { - "$type": "Microsoft.IntentRule", + + "$type": "Microsoft.IntentPattern", "intent": "HelpIntent", - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "I can add a todo, show todos, remove a todo, and clear all todos\n" - } - ] + "pattern": "(?i)help" }, { - "$type": "Microsoft.IntentRule", + + "$type": "Microsoft.IntentPattern", "intent": "CancelIntent", - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "ok." - }, - { - "$type": "Microsoft.EndDialog" - } - ] - }, - { - "$type": "Microsoft.UnknownIntentRule", - "steps": [ - { - "$type": "Microsoft.SendActivity", - "activity": "Hi! I'm a ToDo bot. Say \"add a todo named first\" to get started." - } - ] + "pattern": "(?i)cancel|never mind" } ] -} + }, + "generator": "common.lg", + "events": [ + { + "$type": "Microsoft.OnConversationUpdateActivity", + "$designer": { + "createdAt": "2019-07-01T22:02:14.960Z", + "updatedAt": "2019-07-16T20:00:24.788Z", + "id": "376720" + }, + "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-08-02T22:18:56.943Z", + "updatedAt": "2019-08-02T22:36:20.947Z", + "id": "157674" + }, + "activity": "[bfdactivity-157674]" + } + ] + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T19:59:32.772Z", + "updatedAt": "2019-07-16T19:59:36.277Z", + "id": "064505" + }, + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "dialog": "AddToDo" + } + ], + "intent": "AddIntent" + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T19:59:37.184Z", + "updatedAt": "2019-08-01T23:46:50.759Z", + "id": "114961" + }, + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "dialog": "DeleteToDo", + "$designer": { + "createdAt": "2019-08-01T23:47:15.255Z", + "updatedAt": "2019-08-01T23:47:15.258Z", + "id": "978613" + } + } + ], + "intent": "DeleteIntent" + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T19:59:41.352Z", + "updatedAt": "2019-07-16T19:59:44.427Z", + "id": "088050" + }, + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "dialog": "ClearToDos" + } + ], + "intent": "ClearIntent" + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T19:59:50.315Z", + "updatedAt": "2019-07-16T19:59:54.774Z", + "id": "633942" + }, + "actions": [ + { + "$type": "Microsoft.SendActivity", + "$designer": { + "createdAt": "2019-08-01T23:44:56.704Z", + "updatedAt": "2019-08-01T23:44:57.629Z", + "id": "696707" + }, + "activity": "[bfdactivity-696707]" + } + ], + "intent": "HelpIntent" + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T20:00:00.082Z", + "updatedAt": "2019-07-16T20:00:03.344Z", + "id": "794124" + }, + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "dialog": "ShowToDos" + } + ], + "intent": "ShowIntent" + }, + { + "$type": "Microsoft.OnIntent", + "$designer": { + "createdAt": "2019-07-16T20:00:08.499Z", + "updatedAt": "2019-07-16T20:00:12.504Z", + "id": "179728" + }, + "actions": [ + { + "$type": "Microsoft.SendActivity", + "activity": "ok." + }, + { + "$type": "Microsoft.EndDialog" + } + ], + "intent": "CancelIntent" + }, + { + "$type": "Microsoft.OnUnknownIntent", + "$designer": { + "createdAt": "2019-07-16T20:00:13.577Z", + "updatedAt": "2019-07-16T20:00:19.435Z", + "id": "677447" + }, + "actions": [ + { + "$type": "Microsoft.SendActivity", + "activity": "Hi! I'm a ToDo bot. Say \"add a todo named first\" to get started." + } + ] + } + ], + "$schema": "../../app.schema" + } + \ No newline at end of file diff --git a/Composer/packages/extensions/visual-designer/demo/src/stories/StepEditorDemo.js b/Composer/packages/extensions/visual-designer/demo/src/stories/StepEditorDemo.js index e616e007fe..0d31f9a371 100644 --- a/Composer/packages/extensions/visual-designer/demo/src/stories/StepEditorDemo.js +++ b/Composer/packages/extensions/visual-designer/demo/src/stories/StepEditorDemo.js @@ -1,6 +1,6 @@ import React, { Component } from 'react'; -import { transformRootDialog } from '../../../src/transformers/transformRootDialog'; +import { transformObiRules } from '../../../src/transformers/transformObiRules'; import { NodeEventTypes } from '../../../src/constants/NodeEventTypes'; import { StepEditor } from '../../../src/editors/StepEditor'; import { NodeRendererContext } from '../../../src/store/NodeRendererContext'; @@ -15,7 +15,7 @@ const defaultFile = sampleFileNames[1]; // Simulate the condition that json is always mutated. const copyJson = json => JSON.parse(JSON.stringify(json)); -const getStepData = obiJson => transformRootDialog(obiJson).stepGroup; +const getStepData = obiJson => transformObiRules(obiJson.events[0]).stepGroup; export class StepEditorDemo extends Component { state = { diff --git a/Composer/packages/extensions/visual-designer/src/components/nodes/templates/RuleCard.tsx b/Composer/packages/extensions/visual-designer/src/components/nodes/templates/RuleCard.tsx index c8ade3b93b..1d4604620b 100644 --- a/Composer/packages/extensions/visual-designer/src/components/nodes/templates/RuleCard.tsx +++ b/Composer/packages/extensions/visual-designer/src/components/nodes/templates/RuleCard.tsx @@ -4,6 +4,7 @@ import { ConceptLabels } from 'shared-menus'; import formatMessage from 'format-message'; import { NodeEventTypes } from '../../../constants/NodeEventTypes'; +import { ObiFieldNames } from '../../../constants/ObiFieldNames'; import { ObiTypes } from '../../../constants/ObiTypes'; import { EventColor } from '../../../constants/ElementColors'; import { normalizeObiStep } from '../../../utils/stepBuilder'; @@ -11,8 +12,10 @@ import { NodeMenu } from '../../menus/NodeMenu'; import { IconCard } from './IconCard'; +const StepsKey = ObiFieldNames.Actions; + const getDirectJumpDialog = data => { - const { steps } = data; + const steps = data[StepsKey]; if (!Array.isArray(steps) || steps.length !== 1) { return null; } @@ -45,7 +48,7 @@ export const RuleCard = ({ id, data, label, focused, onEvent }): JSX.Element => let dialog = null; switch (data.$type) { - case ObiTypes.IntentRule: + case ObiTypes.OnIntent: if (data.intent) { trigger = data.intent; } else { @@ -53,7 +56,7 @@ export const RuleCard = ({ id, data, label, focused, onEvent }): JSX.Element => } break; - case ObiTypes.EventRule: + case ObiTypes.OnEvent: if (data.events && data.events.length) { trigger = formatMessage( `{event} { @@ -71,19 +74,19 @@ export const RuleCard = ({ id, data, label, focused, onEvent }): JSX.Element => } break; - case ObiTypes.UnknownIntentRule: + case ObiTypes.OnUnknownIntent: trigger = formatMessage('Unknown Intent'); break; - case ObiTypes.ConversationUpdateActivityRule: + case ObiTypes.OnConversationUpdateActivity: trigger = formatMessage('Conversation Update'); break; } - if (!data.steps) { + if (!data[StepsKey]) { summary = formatMessage('No actions'); - } else if (data.steps.length == 1) { - const step = normalizeObiStep(data.steps[0]); + } else if (data[StepsKey].length == 1) { + const step = normalizeObiStep(data[StepsKey][0]); if (step.$type === ObiTypes.BeginDialog) { dialog = step.dialog; summary = ConceptLabels[step.$type].title || step.$type; @@ -91,7 +94,7 @@ export const RuleCard = ({ id, data, label, focused, onEvent }): JSX.Element => summary = formatMessage('1 action: {step}', { step: (ConceptLabels[step.$type] || {}).title || step.$type }); } } else { - summary = formatMessage('{count} actions', { count: data.steps.length }); + summary = formatMessage('{count} actions', { count: data[StepsKey].length }); } return ( diff --git a/Composer/packages/extensions/visual-designer/src/components/renderers/EventRenderer.tsx b/Composer/packages/extensions/visual-designer/src/components/renderers/EventRenderer.tsx index e2fd980b74..fd8b5e38b2 100644 --- a/Composer/packages/extensions/visual-designer/src/components/renderers/EventRenderer.tsx +++ b/Composer/packages/extensions/visual-designer/src/components/renderers/EventRenderer.tsx @@ -5,22 +5,16 @@ import classnames from 'classnames'; import { ObiTypes } from '../../constants/ObiTypes'; import { NodeRendererContext } from '../../store/NodeRendererContext'; -import { - DefaultRenderer, - IntentRule, - ConversationUpdateActivityRule, - EventRule, - UnknownIntentRule, -} from '../nodes/index'; +import { IntentRule, ConversationUpdateActivityRule, EventRule, UnknownIntentRule } from '../nodes/index'; import { NodeProps, defaultNodeProps } from '../nodes/nodeProps'; const rendererByObiType = { - [ObiTypes.EventRule]: EventRule, - [ObiTypes.IntentRule]: IntentRule, - [ObiTypes.UnknownIntentRule]: UnknownIntentRule, - [ObiTypes.ConversationUpdateActivityRule]: ConversationUpdateActivityRule, + [ObiTypes.OnEvent]: EventRule, + [ObiTypes.OnIntent]: IntentRule, + [ObiTypes.OnUnknownIntent]: UnknownIntentRule, + [ObiTypes.OnConversationUpdateActivity]: ConversationUpdateActivityRule, }; -const DEFAULT_RENDERER = DefaultRenderer; +const DEFAULT_RENDERER = UnknownIntentRule; function chooseRendererByType($type): FC<NodeProps> | ComponentClass<NodeProps> { const renderer = rendererByObiType[$type] || DEFAULT_RENDERER; diff --git a/Composer/packages/extensions/visual-designer/src/constants/ObiFieldNames.ts b/Composer/packages/extensions/visual-designer/src/constants/ObiFieldNames.ts new file mode 100644 index 0000000000..224a79de5a --- /dev/null +++ b/Composer/packages/extensions/visual-designer/src/constants/ObiFieldNames.ts @@ -0,0 +1,8 @@ +export const ObiFieldNames = { + Events: 'events', + Actions: 'actions', + ElseActions: 'elseActions', + Condition: 'condition', + DefaultCase: 'default', + Cases: 'cases', +}; diff --git a/Composer/packages/extensions/visual-designer/src/constants/ObiTypes.ts b/Composer/packages/extensions/visual-designer/src/constants/ObiTypes.ts index aa92d9b7bc..3fc7fe9e11 100644 --- a/Composer/packages/extensions/visual-designer/src/constants/ObiTypes.ts +++ b/Composer/packages/extensions/visual-designer/src/constants/ObiTypes.ts @@ -8,12 +8,11 @@ export const ObiTypes = { MultiLanguageRecognizer: 'Microsoft.MultiLanguageRecognizer', QnARecognizer: 'Microsoft.QnARecognizer', - // rules - RuleGroup: 'Microsoft.RuleGroup', - UnknownIntentRule: 'Microsoft.UnknownIntentRule', - IntentRule: 'Microsoft.IntentRule', - EventRule: 'Microsoft.EventRule', - ConversationUpdateActivityRule: 'Microsoft.ConversationUpdateActivityRule', + // events + OnUnknownIntent: 'Microsoft.OnUnknownIntent', + OnIntent: 'Microsoft.OnIntent', + OnEvent: 'Microsoft.OnEvent', + OnConversationUpdateActivity: 'Microsoft.OnConversationUpdateActivity', // steps BeginDialog: 'Microsoft.BeginDialog', @@ -55,6 +54,7 @@ export const ObiTypes = { TraceActivity: 'Microsoft.TraceActivity', // virtual + RuleGroup: 'VisualSDK.RuleGroup', StepGroup: 'VisualSDK.StepGroup', ChoiceDiamond: 'VisualSDK.ChoiceDiamond', ConditionNode: 'VisualSDK.ConditionNode', diff --git a/Composer/packages/extensions/visual-designer/src/transformers/transformForeach.ts b/Composer/packages/extensions/visual-designer/src/transformers/transformForeach.ts index 906ecf86df..c0a0840ab6 100644 --- a/Composer/packages/extensions/visual-designer/src/transformers/transformForeach.ts +++ b/Composer/packages/extensions/visual-designer/src/transformers/transformForeach.ts @@ -1,7 +1,9 @@ +import { ObiFieldNames } from '../constants/ObiFieldNames'; import { ObiTypes } from '../constants/ObiTypes'; import { IndexedNode } from '../models/IndexedNode'; -const StepsKey = 'steps'; +const StepsKey = ObiFieldNames.Actions; + export function transformForeach( input: any, jsonpath: string @@ -14,7 +16,7 @@ export function transformForeach( }); const steps = input[StepsKey] || []; - const stepsNode = new IndexedNode(`${jsonpath}.steps`, { + const stepsNode = new IndexedNode(`${jsonpath}.${StepsKey}`, { $type: ObiTypes.StepGroup, children: steps, }); diff --git a/Composer/packages/extensions/visual-designer/src/transformers/transformIfCondition.ts b/Composer/packages/extensions/visual-designer/src/transformers/transformIfCondition.ts index 4013f2971d..11331168b5 100644 --- a/Composer/packages/extensions/visual-designer/src/transformers/transformIfCondition.ts +++ b/Composer/packages/extensions/visual-designer/src/transformers/transformIfCondition.ts @@ -1,8 +1,9 @@ +import { ObiFieldNames } from '../constants/ObiFieldNames'; import { ObiTypes } from '../constants/ObiTypes'; import { IndexedNode } from '../models/IndexedNode'; -const IfBranchKey = 'steps'; -const ElseBranchKey = 'elseSteps'; +const IfBranchKey = ObiFieldNames.Actions; +const ElseBranchKey = ObiFieldNames.ElseActions; export function transformIfCondtion( input, diff --git a/Composer/packages/extensions/visual-designer/src/transformers/transformObiRules.ts b/Composer/packages/extensions/visual-designer/src/transformers/transformObiRules.ts index 49d5c8c64a..f124e1edda 100644 --- a/Composer/packages/extensions/visual-designer/src/transformers/transformObiRules.ts +++ b/Composer/packages/extensions/visual-designer/src/transformers/transformObiRules.ts @@ -1,3 +1,4 @@ +import { ObiFieldNames } from '../constants/ObiFieldNames'; import { ObiTypes } from '../constants/ObiTypes'; import { IndexedNode } from '../models/IndexedNode'; import { normalizeObiStep } from '../utils/stepBuilder'; @@ -6,8 +7,8 @@ export function transformObiRules(input, parentPath = ''): { stepGroup: IndexedN if (!input) return null; const prefix = parentPath ? parentPath + '.' : ''; - const steps = input.steps || []; - const stepGroup = new IndexedNode(`${prefix}steps`, { + const steps = input[ObiFieldNames.Actions] || []; + const stepGroup = new IndexedNode(`${prefix}${ObiFieldNames.Actions}`, { $type: ObiTypes.StepGroup, children: steps.map(x => normalizeObiStep(x)), }); diff --git a/Composer/packages/extensions/visual-designer/src/transformers/transformRootDialog.ts b/Composer/packages/extensions/visual-designer/src/transformers/transformRootDialog.ts index 6edf6b9187..8eca85c0b1 100644 --- a/Composer/packages/extensions/visual-designer/src/transformers/transformRootDialog.ts +++ b/Composer/packages/extensions/visual-designer/src/transformers/transformRootDialog.ts @@ -1,19 +1,22 @@ +import { ObiFieldNames } from '../constants/ObiFieldNames'; import { ObiTypes } from '../constants/ObiTypes'; import { IndexedNode } from '../models/IndexedNode'; import { normalizeObiStep } from '../utils/stepBuilder'; +const { Events, Actions } = ObiFieldNames; + function transformSimpleDialog(input): { ruleGroup: IndexedNode; stepGroup: IndexedNode } | null { if (!input) return null; - const rules = input.rules || []; - const steps = input.steps || []; + const rules = input[Events] || []; + const steps = input[Actions] || []; - const ruleGroup = new IndexedNode('rules', { + const ruleGroup = new IndexedNode(Events, { $type: ObiTypes.RuleGroup, children: [...rules], }); - const stepGroup = new IndexedNode('steps', { + const stepGroup = new IndexedNode(Actions, { $type: ObiTypes.StepGroup, children: steps.map(x => normalizeObiStep(x)), }); diff --git a/Composer/packages/extensions/visual-designer/src/transformers/transformSwitchCondition.ts b/Composer/packages/extensions/visual-designer/src/transformers/transformSwitchCondition.ts index acfd8fe163..4ebf2a83c0 100644 --- a/Composer/packages/extensions/visual-designer/src/transformers/transformSwitchCondition.ts +++ b/Composer/packages/extensions/visual-designer/src/transformers/transformSwitchCondition.ts @@ -1,10 +1,11 @@ +import { ObiFieldNames } from '../constants/ObiFieldNames'; import { ObiTypes } from '../constants/ObiTypes'; import { IndexedNode } from '../models/IndexedNode'; -const ConditionKey = 'condition'; -const CasesKey = 'cases'; -const CaseStepKey = 'steps'; -const DefaultBranchKey = 'default'; +const ConditionKey = ObiFieldNames.Condition; +const CasesKey = ObiFieldNames.Cases; +const CaseStepKey = ObiFieldNames.Actions; +const DefaultBranchKey = ObiFieldNames.DefaultCase; export function transformSwitchCondition( input, @@ -39,12 +40,12 @@ export function transformSwitchCondition( if (!cases || !Array.isArray(cases)) return result; result.branches.push( - ...cases.map(({ value, steps }, index) => { + ...cases.map(({ value, actions }, index) => { const prefix = `${jsonpath}.${CasesKey}[${index}]`; return new IndexedNode(`${prefix}.${CaseStepKey}`, { $type: ObiTypes.StepGroup, label: value, - children: steps || [], + children: actions || [], }); }) ); diff --git a/Composer/packages/extensions/visual-designer/src/utils/outlineObiJson.ts b/Composer/packages/extensions/visual-designer/src/utils/outlineObiJson.ts index 9ace4f97ba..1a6f789e6a 100644 --- a/Composer/packages/extensions/visual-designer/src/utils/outlineObiJson.ts +++ b/Composer/packages/extensions/visual-designer/src/utils/outlineObiJson.ts @@ -1,10 +1,11 @@ +import { ObiFieldNames } from '../constants/ObiFieldNames'; import { ObiTypes } from '../constants/ObiTypes'; -const DEFAULT_CHILDREN_KEYS = ['steps']; +const DEFAULT_CHILDREN_KEYS = [ObiFieldNames.Actions]; const childrenMap = { - [ObiTypes.AdaptiveDialog]: ['steps'], - [ObiTypes.IfCondition]: ['steps', 'elseSteps'], - [ObiTypes.SwitchCondition]: ['cases', 'default'], + [ObiTypes.AdaptiveDialog]: [ObiFieldNames.Actions], + [ObiTypes.IfCondition]: [ObiFieldNames.Actions, ObiFieldNames.ElseActions], + [ObiTypes.SwitchCondition]: [ObiFieldNames.Cases, ObiFieldNames.DefaultCase], }; export function outlineObiJson(input: any) { diff --git a/Composer/packages/lib/shared-menus/src/appschema.ts b/Composer/packages/lib/shared-menus/src/appschema.ts index 95dda05246..46db283482 100644 --- a/Composer/packages/lib/shared-menus/src/appschema.ts +++ b/Composer/packages/lib/shared-menus/src/appschema.ts @@ -78,10 +78,10 @@ export const dialogGroups: DialogGroupsMap = { [DialogGroup.EVENTS]: { label: 'Events', types: [ - 'Microsoft.EventRule', - 'Microsoft.IntentRule', - 'Microsoft.UnknownIntentRule', - 'Microsoft.ConversationUpdateActivityRule', + 'Microsoft.OnEvent', + 'Microsoft.OnIntent', + 'Microsoft.OnUnknownIntent', + 'Microsoft.OnConversationUpdateActivity', ], }, [DialogGroup.RECOGNIZER]: { diff --git a/Composer/packages/lib/shared-menus/src/dialogFactory.ts b/Composer/packages/lib/shared-menus/src/dialogFactory.ts index 25d4e8cf34..262fb764f5 100644 --- a/Composer/packages/lib/shared-menus/src/dialogFactory.ts +++ b/Composer/packages/lib/shared-menus/src/dialogFactory.ts @@ -1,6 +1,6 @@ const initialDialogShape = { - 'Microsoft.ConversationUpdateActivityRule': { - $type: 'Microsoft.ConversationUpdateActivityRule', + 'Microsoft.OnConversationUpdateActivity': { + $type: 'Microsoft.OnConversationUpdateActivity', constraint: "toLower(turn.Activity.membersAdded[0].name) != 'bot'", }, }; diff --git a/Composer/packages/lib/shared-menus/src/labelMap.ts b/Composer/packages/lib/shared-menus/src/labelMap.ts index 8a16750bdb..c8f96e2f61 100644 --- a/Composer/packages/lib/shared-menus/src/labelMap.ts +++ b/Composer/packages/lib/shared-menus/src/labelMap.ts @@ -48,7 +48,7 @@ export const ConceptLabels = { 'Microsoft.EndTurn': { title: formatMessage('End Turn'), }, - 'Microsoft.EventRule': { + 'Microsoft.OnEvent': { title: formatMessage('Handle an Event'), }, 'Microsoft.FirstSelector': { @@ -63,7 +63,7 @@ export const ConceptLabels = { 'Microsoft.InitProperty': { title: formatMessage('Initialize a Property'), }, - 'Microsoft.IntentRule': { + 'Microsoft.OnIntent': { title: formatMessage('Handle an Intent'), }, 'Microsoft.LanguagePolicy': { @@ -142,10 +142,10 @@ export const ConceptLabels = { 'Microsoft.TrueSelector': { title: formatMessage('TrueSelector'), }, - 'Microsoft.UnknownIntentRule': { + 'Microsoft.OnUnknownIntent': { title: formatMessage('Handle Unknown Intent'), }, - 'Microsoft.ConversationUpdateActivityRule': { + 'Microsoft.OnConversationUpdateActivity': { title: formatMessage('Handle ConversationUpdate'), }, 'Microsoft.Foreach': { diff --git a/Composer/packages/server/__tests__/mocks/samplebots/bot1/Main.dialog b/Composer/packages/server/__tests__/mocks/samplebots/bot1/Main.dialog index 4acbcd6545..f813a15a2d 100644 --- a/Composer/packages/server/__tests__/mocks/samplebots/bot1/Main.dialog +++ b/Composer/packages/server/__tests__/mocks/samplebots/bot1/Main.dialog @@ -26,7 +26,7 @@ "activity": "[bye3] See you again" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "ShowIntent", "steps": [ { diff --git a/Composer/packages/server/assets/projects/EchoBot/Main/Main.dialog b/Composer/packages/server/assets/projects/EchoBot/Main/Main.dialog index 5e461b98f9..5a5f74329e 100644 --- a/Composer/packages/server/assets/projects/EchoBot/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/EchoBot/Main/Main.dialog @@ -11,7 +11,7 @@ "$schema": "../../app.schema", "rules": [ { - "$type": "Microsoft.UnknownIntentRule", + "$type": "Microsoft.OnUnknownIntent", "$designer": { "id": "821845" }, @@ -28,7 +28,7 @@ ] }, { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "id": "376720" }, diff --git a/Composer/packages/server/assets/projects/EmptyBot/Main/Main.dialog b/Composer/packages/server/assets/projects/EmptyBot/Main/Main.dialog index b84b81dd3a..6bb7b74cb1 100644 --- a/Composer/packages/server/assets/projects/EmptyBot/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/EmptyBot/Main/Main.dialog @@ -7,7 +7,7 @@ "generator": "common.lg", "rules": [ { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "id": "376720" }, diff --git a/Composer/packages/server/assets/projects/ToDoBot/Main/Main.dialog b/Composer/packages/server/assets/projects/ToDoBot/Main/Main.dialog index 876106fdcc..2823727f3b 100644 --- a/Composer/packages/server/assets/projects/ToDoBot/Main/Main.dialog +++ b/Composer/packages/server/assets/projects/ToDoBot/Main/Main.dialog @@ -16,7 +16,7 @@ }, "rules": [ { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "AddIntent", "steps": [ { @@ -26,7 +26,7 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "DeleteIntent", "steps": [ { @@ -36,7 +36,7 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "ClearIntent", "steps": [ { @@ -46,7 +46,7 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "ShowIntent", "steps": [ { @@ -56,7 +56,7 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "HelpIntent", "steps": [ { @@ -66,7 +66,7 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "CancelIntent", "steps": [ { @@ -79,7 +79,7 @@ ] }, { - "$type": "Microsoft.UnknownIntentRule", + "$type": "Microsoft.OnUnknownIntent", "steps": [ { "$type": "Microsoft.SendActivity", @@ -88,7 +88,7 @@ ] }, { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "id": "376720" }, diff --git a/Composer/packages/server/schemas/editor.schema b/Composer/packages/server/schemas/editor.schema index c1fd38e5a6..311dc4bf92 100644 --- a/Composer/packages/server/schemas/editor.schema +++ b/Composer/packages/server/schemas/editor.schema @@ -26,7 +26,7 @@ "Microsoft.ConfirmInput": { "title": "Prompt for confirmation" }, - "Microsoft.ConversationUpdateActivityRule": { + "Microsoft.OnConversationUpdateActivity": { "title": "Conversation Update Activity", "description": "Handle the events fired when a user begins a new conversation with the bot. <a href=\"https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-conversations?view=azure-bot-service-4.0#conversation-lifetime\" target=\"_blank\">Learn more</a>" }, @@ -48,7 +48,7 @@ "Microsoft.EndTurn": { "title": "End Turn" }, - "Microsoft.EventRule": { + "Microsoft.OnEvent": { "title": "Handle an Event" }, "Microsoft.FirstSelector": { @@ -63,7 +63,7 @@ "Microsoft.InitProperty": { "title": "Initialize Property" }, - "Microsoft.IntentRule": { + "Microsoft.OnIntent": { "title": "Handle an Intent" }, "Microsoft.LanguagePolicy": { @@ -140,7 +140,7 @@ "Microsoft.TrueSelector": { "title": "TrueSelector" }, - "Microsoft.UnknownIntentRule": { + "Microsoft.OnUnknownIntent": { "title": "Handle Unknown Intent" }, "Microsoft.Foreach": { diff --git a/Composer/packages/server/schemas/sdk.schema b/Composer/packages/server/schemas/sdk.schema index 094cacddb7..175312c93c 100644 --- a/Composer/packages/server/schemas/sdk.schema +++ b/Composer/packages/server/schemas/sdk.schema @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/Microsoft/botbuilder-tools/master/packages/DialogSchema/src/dialogSchema.schema", + "$schema": "https://raw.githubusercontent.com/microsoft/botbuilder-dotnet/4.Future/schemas/component.schema", "$id": "sdk.schema", "type": "object", "title": "Component types", @@ -7,9 +7,14 @@ "oneOf": [ { "title": "Microsoft.AdaptiveDialog", - "description": "Configures a data driven dialog via a collection of steps/dialogs.", + "description": "Configures a data driven dialog via a collection of actions/dialogs.", "$ref": "#/definitions/Microsoft.AdaptiveDialog" }, + { + "title": "Microsoft.AgeEntityRecognizer", + "description": "Recognizer which recognizes age.", + "$ref": "#/definitions/Microsoft.AgeEntityRecognizer" + }, { "title": "Microsoft.AttachmentInput", "description": "This represents a dialog which gathers an attachment such as image or music", @@ -17,7 +22,7 @@ }, { "title": "Microsoft.BeginDialog", - "description": "Step which begins another dialog (and when that dialog is done, it will return the caller).", + "description": "Action which begins another dialog (and when that dialog is done, it will return the caller).", "$ref": "#/definitions/Microsoft.BeginDialog" }, { @@ -30,39 +35,69 @@ "description": "This represents a dialog which gathers a choice responses", "$ref": "#/definitions/Microsoft.ChoiceInput" }, + { + "title": "Microsoft.ConditionalSelector", + "description": "Use a rule selector based on a condition", + "$ref": "#/definitions/Microsoft.ConditionalSelector" + }, { "title": "Microsoft.ConfirmInput", "description": "This represents a dialog which gathers a yes/no style responses", "$ref": "#/definitions/Microsoft.ConfirmInput" }, { - "title": "Microsoft.ConversationUpdateActivityRule", - "description": "This defines the steps to take when an ConversationUpdate activity is received", - "$ref": "#/definitions/Microsoft.ConversationUpdateActivityRule" + "title": "Microsoft.ConfirmationEntityRecognizer", + "description": "Recognizer which recognizes confirmation choices (yes/no).", + "$ref": "#/definitions/Microsoft.ConfirmationEntityRecognizer" + }, + { + "title": "Microsoft.CurrencyEntityRecognizer", + "description": "Recognizer which recognizes currency.", + "$ref": "#/definitions/Microsoft.CurrencyEntityRecognizer" + }, + { + "title": "Microsoft.DateTimeEntityRecognizer", + "description": "Recognizer which recognizes dates and time fragments.", + "$ref": "#/definitions/Microsoft.DateTimeEntityRecognizer" }, { "title": "Microsoft.DateTimeInput", "description": "This represents a dialog which gathers Date or Time or DateTime from the user", "$ref": "#/definitions/Microsoft.DateTimeInput" }, + { + "title": "Microsoft.DebugBreak", + "description": "If debugger is attached, do a debugger break at this point", + "$ref": "#/definitions/Microsoft.DebugBreak" + }, { "title": "Microsoft.DeleteProperty", - "description": "This is a step which allows you to remove a property from memory", + "description": "This is a action which allows you to remove a property from memory", "$ref": "#/definitions/Microsoft.DeleteProperty" }, + { + "title": "Microsoft.DimensionEntityRecognizer", + "description": "Recognizer which recognizes dimension.", + "$ref": "#/definitions/Microsoft.DimensionEntityRecognizer" + }, + { + "title": "Microsoft.EditActions", + "description": "Edit current dialog with changeType and Actions", + "$ref": "#/definitions/Microsoft.EditActions" + }, { "title": "Microsoft.EditArray", - "description": "This is a step which allows you to modify an array in memory", + "description": "This is a action which allows you to modify an array in memory", "$ref": "#/definitions/Microsoft.EditArray" }, { - "title": "Microsoft.EditSteps", - "description": "Edit current dialog with changeType and Steps", - "$ref": "#/definitions/Microsoft.EditSteps" + "title": "Microsoft.EmailEntityRecognizer", + "description": "Recognizer which recognizes email.", + "$ref": "#/definitions/Microsoft.EmailEntityRecognizer" }, { "title": "Microsoft.EmitEvent", - "description": "This is a step which allows you to emit an event", + "description": "This is a action which allows you to emit an event", "$ref": "#/definitions/Microsoft.EmitEvent" }, { @@ -76,39 +111,49 @@ "$ref": "#/definitions/Microsoft.EndTurn" }, { - "title": "Microsoft.EventRule", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.EventRule" + "title": "Microsoft.FirstSelector", + "description": "Selector for first true rule", + "$ref": "#/definitions/Microsoft.FirstSelector" }, { "title": "Microsoft.Foreach", - "description": "Step which executes steps per item in a collection.", + "description": "Action which executes actions per item in a collection.", "$ref": "#/definitions/Microsoft.Foreach" }, { "title": "Microsoft.ForeachPage", - "description": "Step which execute steps per item page in a collection.", + "description": "Action which execute actions per item page in a collection.", "$ref": "#/definitions/Microsoft.ForeachPage" }, + { + "title": "Microsoft.GuidEntityRecognizer", + "description": "Recognizer which recognizes guids.", + "$ref": "#/definitions/Microsoft.GuidEntityRecognizer" + }, + { + "title": "Microsoft.HashtagEntityRecognizer", + "description": "Recognizer which recognizes Hashtags.", + "$ref": "#/definitions/Microsoft.HashtagEntityRecognizer" + }, { "title": "Microsoft.HttpRequest", - "description": "This is a step which replaces the current dialog with the target dialog", + "description": "This is a action which replaces the current dialog with the target dialog", "$ref": "#/definitions/Microsoft.HttpRequest" }, { "title": "Microsoft.IfCondition", - "description": "Step which conditionally decides which step to execute next.", + "description": "Action which conditionally decides which action to execute next.", "$ref": "#/definitions/Microsoft.IfCondition" }, { "title": "Microsoft.InitProperty", - "description": "This step allows you to innitial a property to either an object or array", + "description": "This action allows you to innitial a property to either an object or array", "$ref": "#/definitions/Microsoft.InitProperty" }, { - "title": "Microsoft.IntentRule", - "description": "This defines the steps to take when an Intent is recognized (and optionally entities)", - "$ref": "#/definitions/Microsoft.IntentRule" + "title": "Microsoft.IpEntityRecognizer", + "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", + "$ref": "#/definitions/Microsoft.IpEntityRecognizer" }, { "title": "Microsoft.LanguagePolicy", @@ -116,30 +161,160 @@ "$ref": "#/definitions/Microsoft.LanguagePolicy" }, { - "title": "Microsoft.LogStep", - "description": "This is a step which writes to console.log and optional creates a TraceActivity around a text binding", - "$ref": "#/definitions/Microsoft.LogStep" + "title": "Microsoft.LogAction", + "description": "This is a action which writes to console.log and optional creates a TraceActivity around a text binding", + "$ref": "#/definitions/Microsoft.LogAction" }, { "title": "Microsoft.LuisRecognizer", "description": "LUIS recognizer.", "$ref": "#/definitions/Microsoft.LuisRecognizer" }, + { + "title": "Microsoft.MentionEntityRecognizer", + "description": "Recognizer which recognizes @Mentions", + "$ref": "#/definitions/Microsoft.MentionEntityRecognizer" + }, + { + "title": "Microsoft.MostSpecificSelector", + "description": "Select most specific true events with optional additional selector", + "$ref": "#/definitions/Microsoft.MostSpecificSelector" + }, { "title": "Microsoft.MultiLanguageRecognizer", "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" }, + { + "title": "Microsoft.NumberEntityRecognizer", + "description": "Recognizer which recognizes numbers.", + "$ref": "#/definitions/Microsoft.NumberEntityRecognizer" + }, { "title": "Microsoft.NumberInput", "description": "This represents a dialog which gathers a decimal number in a specified range", "$ref": "#/definitions/Microsoft.NumberInput" }, + { + "title": "Microsoft.NumberRangeEntityRecognizer", + "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", + "$ref": "#/definitions/Microsoft.NumberRangeEntityRecognizer" + }, { "title": "Microsoft.OAuthInput", "description": "This represents a dialog which gathers an OAuth token from user", "$ref": "#/definitions/Microsoft.OAuthInput" }, + { + "title": "Microsoft.OnActivity", + "description": "This defines the actions to take when an custom activity is received", + "$ref": "#/definitions/Microsoft.OnActivity" + }, + { + "title": "Microsoft.OnBeginDialog", + "description": "This defines the actions to take when a dialog is started via BeginDialog()", + "$ref": "#/definitions/Microsoft.OnBeginDialog" + }, + { + "title": "Microsoft.OnConversationUpdateActivity", + "description": "This defines the actions to take when an ConversationUpdate activity is received", + "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" + }, + { + "title": "Microsoft.OnDialogEvent", + "description": "Defines a rule for an event which is triggered by some source", + "$ref": "#/definitions/Microsoft.OnDialogEvent" + }, + { + "title": "Microsoft.OnEndOfConversationActivity", + "description": "This defines the actions to take when an EndOfConversation Activity is received", + "$ref": "#/definitions/Microsoft.OnEndOfConversationActivity" + }, + { + "title": "Microsoft.OnEvent", + "description": "Defines a rule for an event which is triggered by some source", + "$ref": "#/definitions/Microsoft.OnEvent" + }, + { + "title": "Microsoft.OnEventActivity", + "description": "This defines the actions to take when an Event activity is received", + "$ref": "#/definitions/Microsoft.OnEventActivity" + }, + { + "title": "Microsoft.OnHandoffActivity", + "description": "This defines the actions to take when an Handoff activity is received", + "$ref": "#/definitions/Microsoft.OnHandoffActivity" + }, + { + "title": "Microsoft.OnIntent", + "description": "This defines the actions to take when an Intent is recognized (and optionally entities)", + "$ref": "#/definitions/Microsoft.OnIntent" + }, + { + "title": "Microsoft.OnInvokeActivity", + "description": "This defines the actions to take when an Invoke activity is received", + "$ref": "#/definitions/Microsoft.OnInvokeActivity" + }, + { + "title": "Microsoft.OnMessageActivity", + "description": "This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation", + "$ref": "#/definitions/Microsoft.OnMessageActivity" + }, + { + "title": "Microsoft.OnMessageDeleteActivity", + "description": "This defines the actions to take when an MessageDelete activity is received", + "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" + }, + { + "title": "Microsoft.OnMessageReactionActivity", + "description": "This defines the actions to take when a MessageReaction activity is received", + "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" + }, + { + "title": "Microsoft.OnMessageUpdateActivity", + "description": "This defines the actions to take when an MessageUpdate ctivity is received", + "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" + }, + { + "title": "Microsoft.OnTypingActivity", + "description": "This defines the actions to take when a Typing activity is received", + "$ref": "#/definitions/Microsoft.OnTypingActivity" + }, + { + "title": "Microsoft.OnUnknownIntent", + "description": "This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", + "$ref": "#/definitions/Microsoft.OnUnknownIntent" + }, + { + "title": "Microsoft.OrdinalEntityRecognizer", + "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", + "$ref": "#/definitions/Microsoft.OrdinalEntityRecognizer" + }, + { + "title": "Microsoft.PercentageEntityRecognizer", + "description": "Recognizer which recognizes percentages.", + "$ref": "#/definitions/Microsoft.PercentageEntityRecognizer" + }, + { + "title": "Microsoft.PhoneNumberEntityRecognizer", + "description": "Recognizer which recognizes phone numbers.", + "$ref": "#/definitions/Microsoft.PhoneNumberEntityRecognizer" + }, + { + "title": "Microsoft.QnAMakerDialog", + "description": "This represents a dialog which is driven by a call to QnAMaker.ai knowledge base", + "$ref": "#/definitions/Microsoft.QnAMakerDialog" + }, + { + "title": "Microsoft.RandomSelector", + "description": "Select most specific true rule", + "$ref": "#/definitions/Microsoft.RandomSelector" + }, + { + "title": "Microsoft.RegexEntityRecognizer", + "description": "Recognizer which recognizes patterns of input based on regex.", + "$ref": "#/definitions/Microsoft.RegexEntityRecognizer" + }, { "title": "Microsoft.RegexRecognizer", "description": "Recognizer which uses regex expressions to generate intents and entities.", @@ -147,34 +322,34 @@ }, { "title": "Microsoft.RepeatDialog", - "description": "This is a step which repeats the current dialog with the same dialog.", + "description": "This is a action which repeats the current dialog with the same dialog.", "$ref": "#/definitions/Microsoft.RepeatDialog" }, { "title": "Microsoft.ReplaceDialog", - "description": "This is a step which replaces the current dialog with the target dialog", + "description": "This is a action which replaces the current dialog with the target dialog", "$ref": "#/definitions/Microsoft.ReplaceDialog" }, - { - "title": "Microsoft.Rule", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.Rule" - }, { "title": "Microsoft.SendActivity", - "description": "This is a step which sends an activity to the user", + "description": "This is a action which sends an activity to the user", "$ref": "#/definitions/Microsoft.SendActivity" }, { "title": "Microsoft.SetProperty", - "description": "This step allows you to set memory to the value of an expression", + "description": "This action allows you to set memory to the value of an expression", "$ref": "#/definitions/Microsoft.SetProperty" }, { "title": "Microsoft.SwitchCondition", - "description": "Step which conditionally decides which step to execute next.", + "description": "Action which conditionally decides which action to execute next.", "$ref": "#/definitions/Microsoft.SwitchCondition" }, + { + "title": "Microsoft.TemperatureEntityRecognizer", + "description": "Recognizer which recognizes temperatures.", + "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" + }, { "title": "Microsoft.TextInput", "description": "This represents a dialog which gathers a text from the user", @@ -182,20 +357,25 @@ }, { "title": "Microsoft.TraceActivity", - "description": "This is a step which sends an TraceActivity to the transcript", + "description": "This is a action which sends an TraceActivity to the transcript", "$ref": "#/definitions/Microsoft.TraceActivity" }, { - "title": "Microsoft.UnknownIntentRule", - "description": "Defines a sequence of steps to take if there is no other trigger or plan operating", - "$ref": "#/definitions/Microsoft.UnknownIntentRule" + "title": "Microsoft.TrueSelector", + "description": "Selector for all true events", + "$ref": "#/definitions/Microsoft.TrueSelector" + }, + { + "title": "Microsoft.UrlEntityRecognizer", + "description": "Recognizer which recognizes urls (example: http://bing.com)", + "$ref": "#/definitions/Microsoft.UrlEntityRecognizer" } ], "definitions": { "Microsoft.AdaptiveDialog": { "$role": "unionType(Microsoft.IDialog)", "title": "Adaptive Dialog", - "description": "Configures a data driven dialog via a collection of steps/dialogs.", + "description": "Configures a data driven dialog via a collection of actions/dialogs.", "type": "object", "properties": { "$type": { @@ -222,15 +402,25 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", "examples": [ - "value.birthday" + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "items": { + "type": "string" + } }, "inputBindings": { "type": "object", @@ -256,13 +446,13 @@ "autoEndDialog": { "type": "boolean", "title": "Auto End Dialog", - "description": "If this is true the dialog will automatically end when there are no more steps to run. If this is false it is the responsbility of the author to call EndDialog at an appropriate time.", + "description": "If this is true the dialog will automatically end when there are no more actions to run. If this is false it is the responsbility of the author to call EndDialog at an appropriate time.", "default": "true" }, "defaultResultProperty": { "type": "string", "title": "Default Result Property", - "description": "Property path to the memory to return as the result of this dialog ending because AutoEndDialog is true and there are no more steps to execute.", + "description": "Property path to the memory to return as the result of this dialog ending because AutoEndDialog is true and there are no more actions to execute.", "default": "dialog.result" }, "recognizer": { @@ -278,26 +468,70 @@ "$ref": "#/definitions/Microsoft.ILanguageGenerator" }, "selector": { - "$type": "Microsoft.IRuleSelector", + "$type": "Microsoft.IEventSelector", "title": "Selector", "description": "Policy for how to select rule to execute next", - "$ref": "#/definitions/Microsoft.IRuleSelector" + "$ref": "#/definitions/Microsoft.IEventSelector" }, - "steps": { + "events": { "type": "array", - "description": "Initial Sequence of steps or dialogs to execute when dialog is started", + "description": "Events to use to evaluate conversation", "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" + "$type": "Microsoft.IOnEvent", + "$ref": "#/definitions/Microsoft.IOnEvent" } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] }, - "rules": { - "type": "array", - "description": "Array of rules to use to evaluate conversation", - "items": { - "$type": "Microsoft.IRule", - "$ref": "#/definitions/Microsoft.IRule" - } + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.AgeEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Age Entity Recognizer", + "description": "Recognizer which recognizes age.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.AgeEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." } }, "additionalProperties": false, @@ -351,38 +585,26 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": [ - "value.birthday", - "user.name" - ], + "id": { "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", "examples": [ - "value.birthday" + "input", + "confirmation" ], - "additionalProperties": { + "items": { "type": "string" } }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": [ - "value.birthday" - ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, "prompt": { "$type": "Microsoft.IActivityTemplate", "title": "Initial Prompt", @@ -410,6 +632,15 @@ ], "$ref": "#/definitions/Microsoft.IActivityTemplate" }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, "maxTurnCount": { "type": "integer", "title": "Max Turn Count", @@ -435,6 +666,15 @@ "description": "The expression that you evaluated for input.", "type": "string" }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, "defaultValue": { "$role": "expression", "title": "Default Value", @@ -459,7 +699,7 @@ ], "title": "Allow Interruptions", "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "never", + "default": "notRecognized", "examples": [ "notRecognized" ] @@ -499,7 +739,7 @@ "Microsoft.BeginDialog": { "$role": "unionType(Microsoft.IDialog)", "title": "Begin Dialog", - "description": "Step which begins another dialog (and when that dialog is done, it will return the caller).", + "description": "Action which begins another dialog (and when that dialog is done, it will return the caller).", "type": "object", "properties": { "$type": { @@ -526,6 +766,26 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, "dialog": { "$type": "Microsoft.IDialog", "title": "Dialog", @@ -534,19 +794,21 @@ }, "options": { "type": "object", - "title": "Options", - "description": "Options to pass to the dialog.", - "additionalProperties": true + "title": "Options binding", + "description": "Bindings to configure the options object to pass to the dialog.", + "additionalProperties": { + "type": "string", + "title": "Options" + } }, "property": { - "$role": "memoryPath", + "$role": "expression", "title": "Property", "description": "The property to bind to the dialog and store the result in", "examples": [ "user.name" ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "type": "string" } }, "additionalProperties": false, @@ -600,6 +862,26 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, "eventName": { "title": "Event Name", "description": "The name of event to emit", @@ -691,38 +973,26 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": [ - "value.birthday", - "user.name" - ], + "id": { "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", "examples": [ - "value.birthday" + "input", + "confirmation" ], - "additionalProperties": { + "items": { "type": "string" } }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": [ - "value.birthday" - ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, "prompt": { "$type": "Microsoft.IActivityTemplate", "title": "Initial Prompt", @@ -750,6 +1020,15 @@ ], "$ref": "#/definitions/Microsoft.IActivityTemplate" }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, "maxTurnCount": { "type": "integer", "title": "Max Turn Count", @@ -775,6 +1054,15 @@ "description": "The expression that you evaluated for input.", "type": "string" }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, "defaultValue": { "$role": "expression", "title": "Default Value", @@ -799,7 +1087,7 @@ ], "title": "Allow Interruptions", "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "never", + "default": "notRecognized", "examples": [ "notRecognized" ] @@ -816,30 +1104,31 @@ }, "choices": { "type": "array", - "items": - { - "type": "object", - "properties": { - "value": { - "type": "string", - "title": "Value", - "description": "the value to return when selected." - }, - "action": { - "title": "Action", - "description": "Card action for the choice", - "type": "object" - }, - "synonyms": { - "type": "array", - "title": "Synonyms", - "description": "the list of synonyms to recognize in addition to the value. This is optional.", - "items": { - "type": "string" + "items": [ + { + "type": "object", + "properties": { + "value": { + "type": "string", + "title": "Value", + "description": "the value to return when selected." + }, + "action": { + "title": "Action", + "description": "Card action for the choice", + "type": "object" + }, + "synonyms": { + "type": "array", + "title": "Synonyms", + "description": "the list of synonyms to recognize in addition to the value. This is optional.", + "items": { + "type": "string" + } } } } - } + ] }, "appendChoices": { "type": "boolean", @@ -935,6 +1224,74 @@ } ] }, + "Microsoft.ConditionalSelector": { + "$role": "unionType(Microsoft.IEventSelector)", + "title": "Condtional Event Selector", + "description": "Use a rule selector based on a condition", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.ConditionalSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "condition": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + }, + "ifTrue": { + "$type": "Microsoft.IEventSelector", + "$ref": "#/definitions/Microsoft.IEventSelector" + }, + "ifFalse": { + "$type": "Microsoft.IEventSelector", + "$ref": "#/definitions/Microsoft.IEventSelector" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "condition", + "ifTrue", + "ifFalse", + "$type" + ] + } + ] + }, "Microsoft.ConfirmInput": { "$role": "unionType(Microsoft.IDialog)", "title": "ConfirmInput Dialog", @@ -964,7 +1321,7 @@ } } }, - "cardAction": { + "CardAction": { "type": "object" } }, @@ -993,38 +1350,26 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": [ - "value.birthday", - "user.name" - ], + "id": { "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", "examples": [ - "value.birthday" + "input", + "confirmation" ], - "additionalProperties": { + "items": { "type": "string" } }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": [ - "value.birthday" - ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, "prompt": { "$type": "Microsoft.IActivityTemplate", "title": "Initial Prompt", @@ -1052,6 +1397,15 @@ ], "$ref": "#/definitions/Microsoft.IActivityTemplate" }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, "maxTurnCount": { "type": "integer", "title": "Max Turn Count", @@ -1077,6 +1431,15 @@ "description": "The expression that you evaluated for input.", "type": "string" }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, "defaultValue": { "$role": "expression", "title": "Default Value", @@ -1101,7 +1464,7 @@ ], "title": "Allow Interruptions", "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "never", + "default": "notRecognized", "examples": [ "notRecognized" ] @@ -1205,10 +1568,10 @@ } ] }, - "Microsoft.ConversationUpdateActivityRule": { - "$role": "unionType(Microsoft.IRule)", - "title": "ConversationUpdateActivity Rule", - "description": "This defines the steps to take when an ConversationUpdate activity is received", + "Microsoft.ConfirmationEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Confirmation Entity Recognizer", + "description": "Recognizer which recognizes confirmation choices (yes/no).", "type": "object", "properties": { "$type": { @@ -1216,7 +1579,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ConversationUpdateActivityRule" + "const": "Microsoft.ConfirmationEntityRecognizer" }, "$copy": { "title": "$copy", @@ -1234,23 +1597,110 @@ "title": "$designer", "type": "object", "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.CurrencyEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Currency Entity Recognizer", + "description": "Recognizer which recognizes currency.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.CurrencyEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] }, - "steps": { - "type": "array", - "description": "Sequence of steps or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.DateTimeEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "DateTime Entity Recognizer", + "description": "Recognizer which recognizes dates and time fragments.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.DateTimeEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." } }, "additionalProperties": false, @@ -1269,7 +1719,6 @@ { "title": "Type", "required": [ - "steps", "$type" ] } @@ -1305,38 +1754,26 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": [ - "value.birthday", - "user.name" - ], + "id": { "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", "examples": [ - "value.birthday" + "input", + "confirmation" ], - "additionalProperties": { + "items": { "type": "string" } }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": [ - "value.birthday" - ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, "prompt": { "$type": "Microsoft.IActivityTemplate", "title": "Initial Prompt", @@ -1364,7 +1801,16 @@ ], "$ref": "#/definitions/Microsoft.IActivityTemplate" }, - "maxTurnCount": { + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { "type": "integer", "title": "Max Turn Count", "description": "The max retry count for this prompt.", @@ -1389,6 +1835,15 @@ "description": "The expression that you evaluated for input.", "type": "string" }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, "defaultValue": { "$role": "expression", "title": "Default Value", @@ -1413,7 +1868,7 @@ ], "title": "Allow Interruptions", "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "never", + "default": "notRecognized", "examples": [ "notRecognized" ] @@ -1446,10 +1901,10 @@ } ] }, - "Microsoft.DeleteProperty": { + "Microsoft.DebugBreak": { "$role": "unionType(Microsoft.IDialog)", - "title": "Delete Property", - "description": "This is a step which allows you to remove a property from memory", + "title": "Debugger Break Action", + "description": "If debugger is attached, do a debugger break at this point", "type": "object", "properties": { "$type": { @@ -1457,7 +1912,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.DeleteProperty" + "const": "Microsoft.DebugBreak" }, "$copy": { "title": "$copy", @@ -1476,12 +1931,25 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The Memory property path to delete", + "id": { "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } } }, "additionalProperties": false, @@ -1500,16 +1968,15 @@ { "title": "Type", "required": [ - "property", "$type" ] } ] }, - "Microsoft.EditArray": { + "Microsoft.DeleteProperty": { "$role": "unionType(Microsoft.IDialog)", - "title": "Edit Array Step", - "description": "This is a step which allows you to modify an array in memory", + "title": "Delete Property", + "description": "This is a action which allows you to remove a property from memory", "type": "object", "properties": { "$type": { @@ -1517,7 +1984,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EditArray" + "const": "Microsoft.DeleteProperty" }, "$copy": { "title": "$copy", @@ -1536,39 +2003,30 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "changeType": { + "id": { "type": "string", - "title": "Change Type", - "description": "The array operation to perform", - "enum": [ - "Push", - "Pop", - "Take", - "Remove", - "Clear" + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" ] }, - "arrayProperty": { - "$role": "memoryPath", - "title": "Array Property", - "description": "Memory expression of the array to manipulate.", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "resultProperty": { - "$role": "memoryPath", - "title": "Result Property", - "description": "Memory expression of the result of this action.", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "value": { - "$role": "expression", - "title": "Value of the Item", - "description": "Expression to evaluate.", + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", "examples": [ - "dialog.todo" + "input", + "confirmation" ], + "items": { + "type": "string" + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "The Memory property path to delete", "type": "string" } }, @@ -1588,17 +2046,16 @@ { "title": "Type", "required": [ - "changeType", - "arrayProperty", + "property", "$type" ] } ] }, - "Microsoft.EditSteps": { - "$role": "unionType(Microsoft.IDialog)", - "title": "EditSteps Step", - "description": "Edit current dialog with changeType and Steps", + "Microsoft.DimensionEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Dimension Entity Recognizer", + "description": "Recognizer which recognizes dimension.", "type": "object", "properties": { "$type": { @@ -1606,7 +2063,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EditSteps" + "const": "Microsoft.DimensionEntityRecognizer" }, "$copy": { "title": "$copy", @@ -1624,27 +2081,6 @@ "title": "$designer", "type": "object", "description": "Extra information for the Bot Framework Designer." - }, - "changeType": { - "type": "string", - "title": "Change Type", - "description": "The change type to apply to current dialog", - "enum": [ - "InsertSteps", - "InsertStepsBeforeTags", - "AppendSteps", - "EndSequence", - "ReplaceSequence" - ] - }, - "steps": { - "type": "array", - "title": "Steps", - "description": "Steps to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } } }, "additionalProperties": false, @@ -1663,17 +2099,15 @@ { "title": "Type", "required": [ - "changeType", - "steps", "$type" ] } ] }, - "Microsoft.EmitEvent": { + "Microsoft.EditActions": { "$role": "unionType(Microsoft.IDialog)", - "title": "Emit Event Step", - "description": "This is a step which allows you to emit an event", + "title": "EditActions Action", + "description": "Edit current dialog with changeType and Actions", "type": "object", "properties": { "$type": { @@ -1681,7 +2115,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EmitEvent" + "const": "Microsoft.EditActions" }, "$copy": { "title": "$copy", @@ -1700,41 +2134,46 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "eventName": { - "title": "Event Name", - "description": "The name of event to emit", - "anyOf": [ - { - "enum": [ - "beginDialog", - "resumeDialog", - "repromptDialog", - "cancelDialog", - "endDialog", - "activityReceived", - "recognizedIntent", - "unknownIntent", - "stepsStarted", - "stepsSaved", - "stepsEnded", - "stepsResumed" - ] - }, - { - "type": "string" - } + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" ] }, - "eventValue": { - "type": "object", - "title": "Event Value", - "description": "Optional value to emit along with the event", - "additionalProperties": true + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } }, - "bubbleEvent": { - "type": "boolean", - "title": "Bubble Event", - "description": "If true this event should propagate to parent dialogs" + "changeType": { + "type": "string", + "title": "Change Type", + "description": "The change type to apply to current dialog", + "enum": [ + "InsertActions", + "InsertActionsBeforeTags", + "AppendActions", + "EndSequence", + "ReplaceSequence" + ] + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } } }, "additionalProperties": false, @@ -1753,16 +2192,17 @@ { "title": "Type", "required": [ - "eventName", + "changeType", + "actions", "$type" ] } ] }, - "Microsoft.EndDialog": { + "Microsoft.EditArray": { "$role": "unionType(Microsoft.IDialog)", - "title": "End Dialog", - "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", + "title": "Edit Array Action", + "description": "This is a action which allows you to modify an array in memory", "type": "object", "properties": { "$type": { @@ -1770,7 +2210,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EndDialog" + "const": "Microsoft.EditArray" }, "$copy": { "title": "$copy", @@ -1789,14 +2229,58 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "property": { - "$role": "memoryPath", - "description": "Specifies a path to memory should be returned as the result to the calling dialog.", + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", "examples": [ - "dialog.name" + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" ], + "items": { + "type": "string" + } + }, + "changeType": { "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "title": "Change Type", + "description": "The array operation to perform", + "enum": [ + "Push", + "Pop", + "Take", + "Remove", + "Clear" + ] + }, + "arrayProperty": { + "$role": "expression", + "title": "Array Property", + "description": "Memory expression of the array to manipulate.", + "type": "string" + }, + "resultProperty": { + "$role": "expression", + "title": "Result Property", + "description": "Memory expression of the result of this action.", + "type": "string" + }, + "value": { + "$role": "expression", + "title": "Value of the Item", + "description": "Expression to evaluate.", + "examples": [ + "dialog.todo" + ], + "type": "string" } }, "additionalProperties": false, @@ -1815,15 +2299,17 @@ { "title": "Type", "required": [ + "changeType", + "arrayProperty", "$type" ] } ] }, - "Microsoft.EndTurn": { - "$role": "unionType(Microsoft.IDialog)", - "title": "End Turn", - "description": "End the current turn without ending the dialog.", + "Microsoft.EmailEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Email Entity Recognizer", + "description": "Recognizer which recognizes email.", "type": "object", "properties": { "$type": { @@ -1831,7 +2317,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EndTurn" + "const": "Microsoft.EmailEntityRecognizer" }, "$copy": { "title": "$copy", @@ -1872,18 +2358,18 @@ } ] }, - "Microsoft.EventRule": { - "title": "Event Rule", - "description": "Defines a rule for an event which is triggered by some source", + "Microsoft.EmitEvent": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Emit Event Action", + "description": "This is a action which allows you to emit an event", "type": "object", - "$role": "unionType(Microsoft.IRule)", "properties": { "$type": { "title": "$type", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.EventRule" + "const": "Microsoft.EmitEvent" }, "$copy": { "title": "$copy", @@ -1902,129 +2388,61 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", "examples": [ - "user.vip == true" - ], - "type": "string" - }, - "steps": { - "type": "array", - "description": "Sequence of steps or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } + "Dialog2" + ] }, - "events": { + "tags": { "type": "array", - "description": "Events to trigger this rule for", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], "items": { - "type": "string", - "enum": [ - "beginDialog", - "consultDialog", - "cancelDialog", - "activityReceived", - "recognizedIntent", - "unknownIntent", - "stepsStarted", - "stepsSaved", - "stepsEnded", - "stepsResumed" - ] + "type": "string" } - } - }, - "additionalProperties": false, - "patternProperties": { - "^\\$": { - "type": "string" - } - }, - "anyOf": [ - { - "title": "Reference", - "required": [ - "$copy" - ] }, - { - "title": "Type", - "required": [ - "events", - "steps", - "$type" + "eventName": { + "title": "Event Name", + "description": "The name of event to emit", + "anyOf": [ + { + "enum": [ + "beginDialog", + "resumeDialog", + "repromptDialog", + "cancelDialog", + "endDialog", + "activityReceived", + "recognizedIntent", + "unknownIntent", + "actionsStarted", + "actionsSaved", + "actionsEnded", + "actionsResumed" + ] + }, + { + "type": "string" + } ] - } - ] - }, - "Microsoft.Foreach": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Foreach Step", - "description": "Step which executes steps per item in a collection.", - "type": "object", - "properties": { - "$type": { - "title": "$type", - "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.Foreach" - }, - "$copy": { - "title": "$copy", - "description": "Copy the definition by id from a .dialog file.", - "type": "string", - "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" }, - "$id": { - "title": "$id", - "description": "Inline id for reuse of an inline definition", - "type": "string", - "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" - }, - "$designer": { - "title": "$designer", + "eventValue": { "type": "object", - "description": "Extra information for the Bot Framework Designer." - }, - "listProperty": { - "$role": "expression", - "title": "ListProperty", - "description": "Expression to evaluate.", - "examples": [ - "user.todoList" - ], - "type": "string" - }, - "steps": { - "type": "array", - "title": "Steps", - "description": "Steps to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } - }, - "indexProperty": { - "$role": "memoryPath", - "title": "Index Property", - "description": "The memory path which refers to the index of the item", - "default": "dialog.index", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "title": "Event Value", + "description": "Optional value to emit along with the event", + "additionalProperties": true }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "The memory path which refers to the value of the item", - "default": "dialog.value", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "bubbleEvent": { + "type": "boolean", + "title": "Bubble Event", + "description": "If true this event should propagate to parent dialogs" } }, "additionalProperties": false, @@ -2043,17 +2461,16 @@ { "title": "Type", "required": [ - "listProperty", - "steps", + "eventName", "$type" ] } ] }, - "Microsoft.ForeachPage": { + "Microsoft.EndDialog": { "$role": "unionType(Microsoft.IDialog)", - "title": "Foreach Page Step", - "description": "Step which execute steps per item page in a collection.", + "title": "End Dialog", + "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", "type": "object", "properties": { "$type": { @@ -2061,7 +2478,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ForeachPage" + "const": "Microsoft.EndDialog" }, "$copy": { "title": "$copy", @@ -2080,37 +2497,33 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "listProperty": { - "$role": "expression", - "title": "ListProperty", - "description": "Expression to evaluate.", + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", "examples": [ - "user.todoList" - ], - "type": "string" + "Dialog2" + ] }, - "steps": { + "tags": { "type": "array", - "title": "Steps", - "description": "Steps to execute", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" + "type": "string" } }, - "pageSize": { - "type": "integer", - "title": "Page Size", - "description": "The page size", - "default": 10 - }, - "valueProperty": { - "$role": "memoryPath", - "title": "Value Property", - "description": "The memory path which refers to the value of the item", - "default": "dialog.value", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "property": { + "$role": "expression", + "description": "Specifies a path to memory should be returned as the result to the calling dialog.", + "examples": [ + "dialog.name" + ], + "type": "string" } }, "additionalProperties": false, @@ -2129,25 +2542,23 @@ { "title": "Type", "required": [ - "listProperty", - "steps", "$type" ] } ] }, - "Microsoft.HttpRequest": { + "Microsoft.EndTurn": { "$role": "unionType(Microsoft.IDialog)", + "title": "End Turn", + "description": "End the current turn without ending the dialog.", "type": "object", - "title": "Http Request", - "description": "This is a step which replaces the current dialog with the target dialog", "properties": { "$type": { "title": "$type", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.HttpRequest" + "const": "Microsoft.EndTurn" }, "$copy": { "title": "$copy", @@ -2166,60 +2577,25 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "method": { - "type": "string", - "title": "Method", - "description": "The HTTP method to use", - "enum": [ - "GET", - "POST" - ], - "examples": [ - "GET", - "POST" - ] - }, - "url": { + "id": { "type": "string", - "title": "Url", - "description": "The url to call (supports data binding)", + "title": "Id", + "description": "(Optional) id for the dialog", "examples": [ - "https://contoso.com" + "Dialog2" ] }, - "body": { - "type": "object", - "title": "Body", - "description": "The body to send in the HTTP call (supports data binding)", - "additionalProperties": true - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The property to store the result of the HTTP call in (as object or string)", + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", "examples": [ - "dialog.contosodata" - ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "headers": { - "type": "object", - "additionProperties": true, - "title": "Http headers", - "description": "Http headers to include with the HTTP request (supports data binding)" - }, - "responseType": { - "type": "string", - "title": "Response Type", - "description": "Describes how to parse the response from the http request. If Activity or Activities, then the they will be sent to the user.", - "enum": [ - "None", - "Json", - "Activity", - "Activities" + "input", + "confirmation" ], - "default": "Json" + "items": { + "type": "string" + } } }, "additionalProperties": false, @@ -2238,282 +2614,271 @@ { "title": "Type", "required": [ - "url", - "method", "$type" ] } ] }, - "Microsoft.IActivityTemplate": { - "title": "Microsoft ActivityTemplate", - "description": "Union of components which implement the IActivityTemplate interface", - "$role": "unionType", - "oneOf": [ - { - "$role": "lg", - "type": "string", - "description": "String is used for language generation.", - "title": "string" - } - ] - }, - "Microsoft.IDialog": { - "title": "Microsoft IDialog", - "description": "Union of components which implement the IDialog interface", + "Microsoft.EntityRecognizer": { "$role": "unionType", + "title": "Entity Recognizer", + "description": "Union of components which derive from EntityRecognizer abstract class.", + "type": "object", "oneOf": [ { - "title": "Microsoft.AdaptiveDialog", - "description": "Configures a data driven dialog via a collection of steps/dialogs.", - "$ref": "#/definitions/Microsoft.AdaptiveDialog" - }, - { - "title": "Microsoft.AttachmentInput", - "description": "This represents a dialog which gathers an attachment such as image or music", - "$ref": "#/definitions/Microsoft.AttachmentInput" - }, - { - "title": "Microsoft.BeginDialog", - "description": "Step which begins another dialog (and when that dialog is done, it will return the caller).", - "$ref": "#/definitions/Microsoft.BeginDialog" + "title": "Microsoft.AgeEntityRecognizer", + "description": "Recognizer which recognizes age.", + "$ref": "#/definitions/Microsoft.AgeEntityRecognizer" }, { - "title": "Microsoft.CancelAllDialogs", - "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", - "$ref": "#/definitions/Microsoft.CancelAllDialogs" + "title": "Microsoft.ConfirmationEntityRecognizer", + "description": "Recognizer which recognizes confirmation choices (yes/no).", + "$ref": "#/definitions/Microsoft.ConfirmationEntityRecognizer" }, { - "title": "Microsoft.ChoiceInput", - "description": "This represents a dialog which gathers a choice responses", - "$ref": "#/definitions/Microsoft.ChoiceInput" + "title": "Microsoft.CurrencyEntityRecognizer", + "description": "Recognizer which recognizes currency.", + "$ref": "#/definitions/Microsoft.CurrencyEntityRecognizer" }, { - "title": "Microsoft.ConfirmInput", - "description": "This represents a dialog which gathers a yes/no style responses", - "$ref": "#/definitions/Microsoft.ConfirmInput" + "title": "Microsoft.DateTimeEntityRecognizer", + "description": "Recognizer which recognizes dates and time fragments.", + "$ref": "#/definitions/Microsoft.DateTimeEntityRecognizer" }, { - "title": "Microsoft.DateTimeInput", - "description": "This represents a dialog which gathers Date or Time or DateTime from the user", - "$ref": "#/definitions/Microsoft.DateTimeInput" + "title": "Microsoft.DimensionEntityRecognizer", + "description": "Recognizer which recognizes dimension.", + "$ref": "#/definitions/Microsoft.DimensionEntityRecognizer" }, { - "title": "Microsoft.DeleteProperty", - "description": "This is a step which allows you to remove a property from memory", - "$ref": "#/definitions/Microsoft.DeleteProperty" + "title": "Microsoft.EmailEntityRecognizer", + "description": "Recognizer which recognizes email.", + "$ref": "#/definitions/Microsoft.EmailEntityRecognizer" }, { - "title": "Microsoft.EditArray", - "description": "This is a step which allows you to modify an array in memory", - "$ref": "#/definitions/Microsoft.EditArray" + "title": "Microsoft.GuidEntityRecognizer", + "description": "Recognizer which recognizes guids.", + "$ref": "#/definitions/Microsoft.GuidEntityRecognizer" }, { - "title": "Microsoft.EditSteps", - "description": "Edit current dialog with changeType and Steps", - "$ref": "#/definitions/Microsoft.EditSteps" + "title": "Microsoft.HashtagEntityRecognizer", + "description": "Recognizer which recognizes Hashtags.", + "$ref": "#/definitions/Microsoft.HashtagEntityRecognizer" }, { - "title": "Microsoft.EmitEvent", - "description": "This is a step which allows you to emit an event", - "$ref": "#/definitions/Microsoft.EmitEvent" + "title": "Microsoft.IpEntityRecognizer", + "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", + "$ref": "#/definitions/Microsoft.IpEntityRecognizer" }, { - "title": "Microsoft.EndDialog", - "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", - "$ref": "#/definitions/Microsoft.EndDialog" + "title": "Microsoft.MentionEntityRecognizer", + "description": "Recognizer which recognizes @Mentions", + "$ref": "#/definitions/Microsoft.MentionEntityRecognizer" }, { - "title": "Microsoft.EndTurn", - "description": "End the current turn without ending the dialog.", - "$ref": "#/definitions/Microsoft.EndTurn" + "title": "Microsoft.NumberEntityRecognizer", + "description": "Recognizer which recognizes numbers.", + "$ref": "#/definitions/Microsoft.NumberEntityRecognizer" }, { - "title": "Microsoft.Foreach", - "description": "Step which executes steps per item in a collection.", - "$ref": "#/definitions/Microsoft.Foreach" + "title": "Microsoft.NumberRangeEntityRecognizer", + "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", + "$ref": "#/definitions/Microsoft.NumberRangeEntityRecognizer" }, { - "title": "Microsoft.ForeachPage", - "description": "Step which execute steps per item page in a collection.", - "$ref": "#/definitions/Microsoft.ForeachPage" + "title": "Microsoft.OrdinalEntityRecognizer", + "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", + "$ref": "#/definitions/Microsoft.OrdinalEntityRecognizer" }, { - "title": "Microsoft.HttpRequest", - "description": "This is a step which replaces the current dialog with the target dialog", - "$ref": "#/definitions/Microsoft.HttpRequest" + "title": "Microsoft.PercentageEntityRecognizer", + "description": "Recognizer which recognizes percentages.", + "$ref": "#/definitions/Microsoft.PercentageEntityRecognizer" }, { - "title": "Microsoft.IfCondition", - "description": "Step which conditionally decides which step to execute next.", - "$ref": "#/definitions/Microsoft.IfCondition" + "title": "Microsoft.PhoneNumberEntityRecognizer", + "description": "Recognizer which recognizes phone numbers.", + "$ref": "#/definitions/Microsoft.PhoneNumberEntityRecognizer" }, { - "title": "Microsoft.InitProperty", - "description": "This step allows you to innitial a property to either an object or array", - "$ref": "#/definitions/Microsoft.InitProperty" + "title": "Microsoft.RegexEntityRecognizer", + "description": "Recognizer which recognizes patterns of input based on regex.", + "$ref": "#/definitions/Microsoft.RegexEntityRecognizer" }, { - "title": "Microsoft.LogStep", - "description": "This is a step which writes to console.log and optional creates a TraceActivity around a text binding", - "$ref": "#/definitions/Microsoft.LogStep" + "title": "Microsoft.TemperatureEntityRecognizer", + "description": "Recognizer which recognizes temperatures.", + "$ref": "#/definitions/Microsoft.TemperatureEntityRecognizer" }, { - "title": "Microsoft.NumberInput", - "description": "This represents a dialog which gathers a decimal number in a specified range", - "$ref": "#/definitions/Microsoft.NumberInput" - }, - { - "title": "Microsoft.OAuthInput", - "description": "This represents a dialog which gathers an OAuth token from user", - "$ref": "#/definitions/Microsoft.OAuthInput" - }, - { - "title": "Microsoft.RepeatDialog", - "description": "This is a step which repeats the current dialog with the same dialog.", - "$ref": "#/definitions/Microsoft.RepeatDialog" - }, - { - "title": "Microsoft.ReplaceDialog", - "description": "This is a step which replaces the current dialog with the target dialog", - "$ref": "#/definitions/Microsoft.ReplaceDialog" - }, - { - "title": "Microsoft.SendActivity", - "description": "This is a step which sends an activity to the user", - "$ref": "#/definitions/Microsoft.SendActivity" - }, - { - "title": "Microsoft.SetProperty", - "description": "This step allows you to set memory to the value of an expression", - "$ref": "#/definitions/Microsoft.SetProperty" + "title": "Microsoft.UrlEntityRecognizer", + "description": "Recognizer which recognizes urls (example: http://bing.com)", + "$ref": "#/definitions/Microsoft.UrlEntityRecognizer" + } + ] + }, + "Microsoft.FirstSelector": { + "$role": "unionType(Microsoft.IEventSelector)", + "title": "First Event Selector", + "description": "Selector for first true rule", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.FirstSelector" }, - { - "title": "Microsoft.SwitchCondition", - "description": "Step which conditionally decides which step to execute next.", - "$ref": "#/definitions/Microsoft.SwitchCondition" + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" }, - { - "title": "Microsoft.TextInput", - "description": "This represents a dialog which gathers a text from the user", - "$ref": "#/definitions/Microsoft.TextInput" + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ { - "title": "Microsoft.TraceActivity", - "description": "This is a step which sends an TraceActivity to the transcript", - "$ref": "#/definitions/Microsoft.TraceActivity" + "title": "Reference", + "required": [ + "$copy" + ] }, { - "type": "string", - "title": "string" + "title": "Type", + "required": [ + "$type" + ] } ] }, - "Microsoft.ILanguageGenerator": { - "title": "Microsoft ILanguageGenerator", - "description": "Union of components which implement the ILanguageGenerator interface", - "$role": "unionType", - "oneOf": [ - { + "Microsoft.Foreach": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Foreach Action", + "description": "Action which executes actions per item in a collection.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", - "title": "string" - } - ] - }, - "Microsoft.ILanguagePolicy": { - "title": "Microsoft Language Policy", - "description": "Union of components which implement the ILanguagePolicy interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.LanguagePolicy", - "description": "This represents a dialog which gathers a DateTime in a specified range", - "$ref": "#/definitions/Microsoft.LanguagePolicy" + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.Foreach" }, - { + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", "type": "string", - "title": "string" - } - ] - }, - "Microsoft.IRecognizer": { - "title": "Microsoft IRecognizer", - "description": "Union of components which implement the IRecognizer interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.LuisRecognizer", - "description": "LUIS recognizer.", - "$ref": "#/definitions/Microsoft.LuisRecognizer" + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" }, - { - "title": "Microsoft.MultiLanguageRecognizer", - "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", - "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" }, - { - "title": "Microsoft.RegexRecognizer", - "description": "Recognizer which uses regex expressions to generate intents and entities.", - "$ref": "#/definitions/Microsoft.RegexRecognizer" + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." }, - { + "id": { "type": "string", - "title": "string" - } - ] - }, - "Microsoft.IRule": { - "title": "Microsoft IRule", - "description": "Union of components which implement the IRule interface", - "$role": "unionType", - "oneOf": [ - { - "title": "Microsoft.ConversationUpdateActivityRule", - "description": "This defines the steps to take when an ConversationUpdate activity is received", - "$ref": "#/definitions/Microsoft.ConversationUpdateActivityRule" + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] }, - { - "title": "Microsoft.EventRule", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.EventRule" + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } }, - { - "title": "Microsoft.IntentRule", - "description": "This defines the steps to take when an Intent is recognized (and optionally entities)", - "$ref": "#/definitions/Microsoft.IntentRule" + "listProperty": { + "$role": "expression", + "title": "ListProperty", + "description": "Expression to evaluate.", + "examples": [ + "user.todoList" + ], + "type": "string" }, - { - "title": "Microsoft.Rule", - "description": "Defines a rule for an event which is triggered by some source", - "$ref": "#/definitions/Microsoft.Rule" + "actions": { + "type": "array", + "title": "Actions", + "description": "Actions to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } }, - { - "title": "Microsoft.UnknownIntentRule", - "description": "Defines a sequence of steps to take if there is no other trigger or plan operating", - "$ref": "#/definitions/Microsoft.UnknownIntentRule" + "indexProperty": { + "$role": "expression", + "title": "Index Property", + "description": "The memory path which refers to the index of the item", + "default": "dialog.index", + "type": "string" + }, + "valueProperty": { + "$role": "expression", + "title": "Value Property", + "description": "The memory path which refers to the value of the item", + "default": "dialog.value", + "type": "string" } - ] - }, - "Microsoft.IRuleSelector": { - "title": "Microsoft IRuleSelector", - "description": "Union of components which implement the IRuleSelector interface", - "$role": "unionType" - }, - "Microsoft.ITextTemplate": { - "title": "Microsoft TextTemplate", - "description": "Union of components which implement the ITextTemplate interface", - "$role": "unionType", - "oneOf": [ + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ { - "type": "string", - "title": "string" + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "listProperty", + "actions", + "$type" + ] } ] }, - "Microsoft.IfCondition": { + "Microsoft.ForeachPage": { "$role": "unionType(Microsoft.IDialog)", - "title": "If Condition Step", - "description": "Step which conditionally decides which step to execute next.", + "title": "Foreach Page Action", + "description": "Action which execute actions per item page in a collection.", "type": "object", "properties": { "$type": { @@ -2521,7 +2886,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.IfCondition" + "const": "Microsoft.ForeachPage" }, "$copy": { "title": "$copy", @@ -2540,28 +2905,2557 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "condition": { + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "listProperty": { "$role": "expression", - "title": "Condition", + "title": "ListProperty", "description": "Expression to evaluate.", "examples": [ - "user.age > 3" + "user.todoList" ], "type": "string" }, - "steps": { + "actions": { "type": "array", - "title": "Steps", - "description": "Step to execute if condition is true.", + "title": "Actions", + "description": "Actions to execute", "items": { "$type": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } }, - "elseSteps": { + "pageSize": { + "type": "integer", + "title": "Page Size", + "description": "The page size", + "default": 10 + }, + "valueProperty": { + "$role": "expression", + "title": "Value Property", + "description": "The memory path which refers to the value of the item", + "default": "dialog.value", + "type": "string" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "listProperty", + "actions", + "$type" + ] + } + ] + }, + "Microsoft.GuidEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Guid Entity Recognizer", + "description": "Recognizer which recognizes guids.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.GuidEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.HashtagEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Hashtag Entity Recognizer", + "description": "Recognizer which recognizes Hashtags.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.HashtagEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.HttpRequest": { + "$role": "unionType(Microsoft.IDialog)", + "type": "object", + "title": "Http Request", + "description": "This is a action which replaces the current dialog with the target dialog", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.HttpRequest" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "method": { + "type": "string", + "title": "Method", + "description": "The HTTP method to use", + "enum": [ + "GET", + "POST" + ], + "examples": [ + "GET", + "POST" + ] + }, + "url": { + "type": "string", + "title": "Url", + "description": "The url to call (supports data binding)", + "examples": [ + "https://contoso.com" + ] + }, + "body": { + "type": "object", + "title": "Body", + "description": "The body to send in the HTTP call (supports data binding)", + "additionalProperties": true + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "The property to store the result of the HTTP call in. The result will have 4 properties from the http response: statusCode|reasonPhrase|content|headers. If the content is json it will be an deserialized object, otherwise it will be a string", + "examples": [ + "dialog.contosodata" + ], + "type": "string" + }, + "headers": { + "type": "object", + "additionProperties": true, + "title": "Http headers", + "description": "Http headers to include with the HTTP request (supports data binding)" + }, + "responseType": { + "type": "string", + "title": "Response Type", + "description": "Describes how to parse the response from the http request. If Activity or Activities, then the they will be sent to the user.", + "enum": [ + "None", + "Json", + "Activity", + "Activities" + ], + "default": "Json" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "url", + "method", + "$type" + ] + } + ] + }, + "Microsoft.IActivityTemplate": { + "title": "Microsoft ActivityTemplate", + "description": "Union of components which implement the IActivityTemplate interface", + "$role": "unionType", + "oneOf": [ + { + "$role": "lg", + "type": "string", + "description": "String is used for language generation.", + "title": "string" + } + ] + }, + "Microsoft.IDialog": { + "title": "Microsoft IDialog", + "description": "Union of components which implement the IDialog interface", + "$role": "unionType", + "oneOf": [ + { + "title": "Microsoft.AdaptiveDialog", + "description": "Configures a data driven dialog via a collection of actions/dialogs.", + "$ref": "#/definitions/Microsoft.AdaptiveDialog" + }, + { + "title": "Microsoft.AttachmentInput", + "description": "This represents a dialog which gathers an attachment such as image or music", + "$ref": "#/definitions/Microsoft.AttachmentInput" + }, + { + "title": "Microsoft.BeginDialog", + "description": "Action which begins another dialog (and when that dialog is done, it will return the caller).", + "$ref": "#/definitions/Microsoft.BeginDialog" + }, + { + "title": "Microsoft.CancelAllDialogs", + "description": "Command to cancel all of the current dialogs by emitting an event which must be caught to prevent cancelation from propagating.", + "$ref": "#/definitions/Microsoft.CancelAllDialogs" + }, + { + "title": "Microsoft.ChoiceInput", + "description": "This represents a dialog which gathers a choice responses", + "$ref": "#/definitions/Microsoft.ChoiceInput" + }, + { + "title": "Microsoft.ConfirmInput", + "description": "This represents a dialog which gathers a yes/no style responses", + "$ref": "#/definitions/Microsoft.ConfirmInput" + }, + { + "title": "Microsoft.DateTimeInput", + "description": "This represents a dialog which gathers Date or Time or DateTime from the user", + "$ref": "#/definitions/Microsoft.DateTimeInput" + }, + { + "title": "Microsoft.DebugBreak", + "description": "If debugger is attached, do a debugger break at this point", + "$ref": "#/definitions/Microsoft.DebugBreak" + }, + { + "title": "Microsoft.DeleteProperty", + "description": "This is a action which allows you to remove a property from memory", + "$ref": "#/definitions/Microsoft.DeleteProperty" + }, + { + "title": "Microsoft.EditActions", + "description": "Edit current dialog with changeType and Actions", + "$ref": "#/definitions/Microsoft.EditActions" + }, + { + "title": "Microsoft.EditArray", + "description": "This is a action which allows you to modify an array in memory", + "$ref": "#/definitions/Microsoft.EditArray" + }, + { + "title": "Microsoft.EmitEvent", + "description": "This is a action which allows you to emit an event", + "$ref": "#/definitions/Microsoft.EmitEvent" + }, + { + "title": "Microsoft.EndDialog", + "description": "Command which ends the current dialog, returning the resultProperty as the result of the dialog.", + "$ref": "#/definitions/Microsoft.EndDialog" + }, + { + "title": "Microsoft.EndTurn", + "description": "End the current turn without ending the dialog.", + "$ref": "#/definitions/Microsoft.EndTurn" + }, + { + "title": "Microsoft.Foreach", + "description": "Action which executes actions per item in a collection.", + "$ref": "#/definitions/Microsoft.Foreach" + }, + { + "title": "Microsoft.ForeachPage", + "description": "Action which execute actions per item page in a collection.", + "$ref": "#/definitions/Microsoft.ForeachPage" + }, + { + "title": "Microsoft.HttpRequest", + "description": "This is a action which replaces the current dialog with the target dialog", + "$ref": "#/definitions/Microsoft.HttpRequest" + }, + { + "title": "Microsoft.IfCondition", + "description": "Action which conditionally decides which action to execute next.", + "$ref": "#/definitions/Microsoft.IfCondition" + }, + { + "title": "Microsoft.InitProperty", + "description": "This action allows you to innitial a property to either an object or array", + "$ref": "#/definitions/Microsoft.InitProperty" + }, + { + "title": "Microsoft.LogAction", + "description": "This is a action which writes to console.log and optional creates a TraceActivity around a text binding", + "$ref": "#/definitions/Microsoft.LogAction" + }, + { + "title": "Microsoft.NumberInput", + "description": "This represents a dialog which gathers a decimal number in a specified range", + "$ref": "#/definitions/Microsoft.NumberInput" + }, + { + "title": "Microsoft.OAuthInput", + "description": "This represents a dialog which gathers an OAuth token from user", + "$ref": "#/definitions/Microsoft.OAuthInput" + }, + { + "title": "Microsoft.QnAMakerDialog", + "description": "This represents a dialog which is driven by a call to QnAMaker.ai knowledge base", + "$ref": "#/definitions/Microsoft.QnAMakerDialog" + }, + { + "title": "Microsoft.RepeatDialog", + "description": "This is a action which repeats the current dialog with the same dialog.", + "$ref": "#/definitions/Microsoft.RepeatDialog" + }, + { + "title": "Microsoft.ReplaceDialog", + "description": "This is a action which replaces the current dialog with the target dialog", + "$ref": "#/definitions/Microsoft.ReplaceDialog" + }, + { + "title": "Microsoft.SendActivity", + "description": "This is a action which sends an activity to the user", + "$ref": "#/definitions/Microsoft.SendActivity" + }, + { + "title": "Microsoft.SetProperty", + "description": "This action allows you to set memory to the value of an expression", + "$ref": "#/definitions/Microsoft.SetProperty" + }, + { + "title": "Microsoft.SwitchCondition", + "description": "Action which conditionally decides which action to execute next.", + "$ref": "#/definitions/Microsoft.SwitchCondition" + }, + { + "title": "Microsoft.TextInput", + "description": "This represents a dialog which gathers a text from the user", + "$ref": "#/definitions/Microsoft.TextInput" + }, + { + "title": "Microsoft.TraceActivity", + "description": "This is a action which sends an TraceActivity to the transcript", + "$ref": "#/definitions/Microsoft.TraceActivity" + }, + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.IEventSelector": { + "title": "Microsoft IEventSelector", + "description": "Union of components which implement the IEventSelector interface", + "$role": "unionType", + "oneOf": [ + { + "title": "Microsoft.ConditionalSelector", + "description": "Use a rule selector based on a condition", + "$ref": "#/definitions/Microsoft.ConditionalSelector" + }, + { + "title": "Microsoft.FirstSelector", + "description": "Selector for first true rule", + "$ref": "#/definitions/Microsoft.FirstSelector" + }, + { + "title": "Microsoft.MostSpecificSelector", + "description": "Select most specific true events with optional additional selector", + "$ref": "#/definitions/Microsoft.MostSpecificSelector" + }, + { + "title": "Microsoft.RandomSelector", + "description": "Select most specific true rule", + "$ref": "#/definitions/Microsoft.RandomSelector" + }, + { + "title": "Microsoft.TrueSelector", + "description": "Selector for all true events", + "$ref": "#/definitions/Microsoft.TrueSelector" + } + ] + }, + "Microsoft.ILanguageGenerator": { + "title": "Microsoft ILanguageGenerator", + "description": "Union of components which implement the ILanguageGenerator interface", + "$role": "unionType", + "oneOf": [ + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.ILanguagePolicy": { + "title": "Microsoft Language Policy", + "description": "Union of components which implement the ILanguagePolicy interface", + "$role": "unionType", + "oneOf": [ + { + "title": "Microsoft.LanguagePolicy", + "description": "This represents a dialog which gathers a DateTime in a specified range", + "$ref": "#/definitions/Microsoft.LanguagePolicy" + }, + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.IOnEvent": { + "title": "Microsoft IOnEvent", + "description": "Union of components which implement the IOnEvent interface", + "$role": "unionType", + "oneOf": [ + { + "title": "Microsoft.OnActivity", + "description": "This defines the actions to take when an custom activity is received", + "$ref": "#/definitions/Microsoft.OnActivity" + }, + { + "title": "Microsoft.OnBeginDialog", + "description": "This defines the actions to take when a dialog is started via BeginDialog()", + "$ref": "#/definitions/Microsoft.OnBeginDialog" + }, + { + "title": "Microsoft.OnConversationUpdateActivity", + "description": "This defines the actions to take when an ConversationUpdate activity is received", + "$ref": "#/definitions/Microsoft.OnConversationUpdateActivity" + }, + { + "title": "Microsoft.OnDialogEvent", + "description": "Defines a rule for an event which is triggered by some source", + "$ref": "#/definitions/Microsoft.OnDialogEvent" + }, + { + "title": "Microsoft.OnEndOfConversationActivity", + "description": "This defines the actions to take when an EndOfConversation Activity is received", + "$ref": "#/definitions/Microsoft.OnEndOfConversationActivity" + }, + { + "title": "Microsoft.OnEvent", + "description": "Defines a rule for an event which is triggered by some source", + "$ref": "#/definitions/Microsoft.OnEvent" + }, + { + "title": "Microsoft.OnEventActivity", + "description": "This defines the actions to take when an Event activity is received", + "$ref": "#/definitions/Microsoft.OnEventActivity" + }, + { + "title": "Microsoft.OnHandoffActivity", + "description": "This defines the actions to take when an Handoff activity is received", + "$ref": "#/definitions/Microsoft.OnHandoffActivity" + }, + { + "title": "Microsoft.OnIntent", + "description": "This defines the actions to take when an Intent is recognized (and optionally entities)", + "$ref": "#/definitions/Microsoft.OnIntent" + }, + { + "title": "Microsoft.OnInvokeActivity", + "description": "This defines the actions to take when an Invoke activity is received", + "$ref": "#/definitions/Microsoft.OnInvokeActivity" + }, + { + "title": "Microsoft.OnMessageActivity", + "description": "This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation", + "$ref": "#/definitions/Microsoft.OnMessageActivity" + }, + { + "title": "Microsoft.OnMessageDeleteActivity", + "description": "This defines the actions to take when an MessageDelete activity is received", + "$ref": "#/definitions/Microsoft.OnMessageDeleteActivity" + }, + { + "title": "Microsoft.OnMessageReactionActivity", + "description": "This defines the actions to take when a MessageReaction activity is received", + "$ref": "#/definitions/Microsoft.OnMessageReactionActivity" + }, + { + "title": "Microsoft.OnMessageUpdateActivity", + "description": "This defines the actions to take when an MessageUpdate ctivity is received", + "$ref": "#/definitions/Microsoft.OnMessageUpdateActivity" + }, + { + "title": "Microsoft.OnTypingActivity", + "description": "This defines the actions to take when a Typing activity is received", + "$ref": "#/definitions/Microsoft.OnTypingActivity" + }, + { + "title": "Microsoft.OnUnknownIntent", + "description": "This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", + "$ref": "#/definitions/Microsoft.OnUnknownIntent" + } + ] + }, + "Microsoft.IRecognizer": { + "title": "Microsoft IRecognizer", + "description": "Union of components which implement the IRecognizer interface", + "$role": "unionType", + "oneOf": [ + { + "title": "Microsoft.LuisRecognizer", + "description": "LUIS recognizer.", + "$ref": "#/definitions/Microsoft.LuisRecognizer" + }, + { + "title": "Microsoft.MultiLanguageRecognizer", + "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", + "$ref": "#/definitions/Microsoft.MultiLanguageRecognizer" + }, + { + "title": "Microsoft.RegexRecognizer", + "description": "Recognizer which uses regex expressions to generate intents and entities.", + "$ref": "#/definitions/Microsoft.RegexRecognizer" + }, + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.ITextTemplate": { + "title": "Microsoft TextTemplate", + "description": "Union of components which implement the ITextTemplate interface", + "$role": "unionType", + "oneOf": [ + { + "type": "string", + "title": "string" + } + ] + }, + "Microsoft.IfCondition": { + "$role": "unionType(Microsoft.IDialog)", + "title": "If Condition Action", + "description": "Action which conditionally decides which action to execute next.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.IfCondition" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "condition": { + "$role": "expression", + "title": "Condition", + "description": "Expression to evaluate.", + "examples": [ + "user.age > 3" + ], + "type": "string" + }, + "actions": { + "type": "array", + "title": "Actions", + "description": "Action to execute if condition is true.", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "elseActions": { + "type": "array", + "title": "Else Actions", + "description": "Action to execute if condition is false.", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "condition", + "actions", + "$type" + ] + } + ] + }, + "Microsoft.InitProperty": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Init Property Action", + "description": "This action allows you to innitial a property to either an object or array", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.InitProperty" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "The property to set the value of", + "examples": [ + "user.age" + ], + "type": "string" + }, + "type": { + "type": "string", + "title": "type", + "description": "type of value to set the property to, object or array.", + "enum": [ + "object", + "array" + ] + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "property", + "type", + "$type" + ] + } + ] + }, + "Microsoft.IpEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Ip Entity Recognizer", + "description": "Recognizer which recognizes internet IP patterns (like 192.1.1.1).", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.IpEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.LanguagePolicy": { + "$role": "unionType(Microsoft.ILanguagePolicy)", + "title": "Language Policy", + "description": "This represents a dialog which gathers a DateTime in a specified range", + "type": "object", + "additionalProperties": false, + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.LanguagePolicy" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.LogAction": { + "$role": "unionType(Microsoft.IDialog)", + "title": "Log Action", + "description": "This is a action which writes to console.log and optional creates a TraceActivity around a text binding", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.LogAction" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "text": { + "type": "string", + "title": "Text", + "description": "LG Expression to write to the log" + }, + "traceActivity": { + "type": "boolean", + "title": "Send Trace Activity", + "description": "Set to true to also create a TraceActivity with the log text", + "default": false + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "text", + "$type" + ] + } + ] + }, + "Microsoft.LuisRecognizer": { + "$role": "unionType(Microsoft.IRecognizer)", + "title": "LUIS Recognizer", + "description": "LUIS recognizer.", + "type": "object", + "additionalProperties": false, + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.LuisRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "applicationId": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "endpointKey": { + "type": "string" + } + }, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "applicationId", + "endpoint", + "endpointKey", + "$type" + ] + } + ] + }, + "Microsoft.MentionEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Mentions Entity Recognizer", + "description": "Recognizer which recognizes @Mentions", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.MentionEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.MostSpecificSelector": { + "$role": "unionType(Microsoft.IEventSelector)", + "title": "Most Specific Event Selector", + "description": "Select most specific true events with optional additional selector", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.MostSpecificSelector" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "selector": { + "$type": "Microsoft.IEventSelector", + "$ref": "#/definitions/Microsoft.IEventSelector" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.MultiLanguageRecognizer": { + "$role": "unionType(Microsoft.IRecognizer)", + "title": "Multi Language Recognizer", + "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.MultiLanguageRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "languagePolicy": { + "$type": "Microsoft.ILanguagePolicy", + "type": "object", + "title": "Language Policy", + "description": "Defines languages to try per language.", + "$ref": "#/definitions/Microsoft.ILanguagePolicy" + }, + "recognizers": { + "type": "object", + "title": "Recognizers", + "description": "Map of language -> IRecognizer", + "additionalProperties": { + "$type": "Microsoft.IRecognizer", + "$ref": "#/definitions/Microsoft.IRecognizer" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "recognizers", + "$type" + ] + } + ] + }, + "Microsoft.NumberEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Number Entity Recognizer", + "description": "Recognizer which recognizes numbers.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.NumberEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.NumberInput": { + "$role": "unionType(Microsoft.IDialog)", + "title": "NumberInput Dialog", + "description": "This represents a dialog which gathers a decimal number in a specified range", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.NumberInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "prompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Initial Prompt", + "description": "The message to send to as prompt for this input.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Unrecognized Prompt", + "description": "The message to send if the last input is not recognized.", + "examples": [ + "Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Invalid Prompt", + "description": "The message to send to when then input was not valid for the input type.", + "examples": [ + "No date was recognized" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max Turn Count", + "description": "The max retry count for this prompt.", + "default": 2147483647, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation Expressions", + "description": "Expressions to validate an input.", + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "The expression that you evaluated for input.", + "type": "string" + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default Value", + "description": "Value to return if the value expression can't be evaluated.", + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always Prompt", + "description": "If set to true this will always prompt the user regardless if you already have the value or not.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "type": "string", + "enum": [ + "always", + "never", + "notRecognized" + ], + "title": "Allow Interruptions", + "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "default": "notRecognized", + "examples": [ + "notRecognized" + ] + }, + "outputFormat": { + "type": "string", + "enum": [ + "float", + "integer" + ], + "title": "Output Format", + "description": "The NumberInput output format.", + "default": "float" + }, + "defaultLocale": { + "type": "string", + "title": "Default Locale", + "description": "The prompts default locale that should be recognized.", + "default": "en-us" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.NumberRangeEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "NumberRange Entity Recognizer", + "description": "Recognizer which recognizes ranges of numbers (Example:2 to 5).", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.NumberRangeEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.OAuthInput": { + "$role": "unionType(Microsoft.IDialog)", + "title": "OAuthInput Dialog", + "description": "This represents a dialog which gathers an OAuth token from user", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OAuthInput" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "prompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Initial Prompt", + "description": "The message to send to as prompt for this input.", + "examples": [ + "What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "unrecognizedPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Unrecognized Prompt", + "description": "The message to send if the last input is not recognized.", + "examples": [ + "Let's try again. What is your birth date?" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "invalidPrompt": { + "$type": "Microsoft.IActivityTemplate", + "title": "Invalid Prompt", + "description": "The message to send to when then input was not valid for the input type.", + "examples": [ + "No date was recognized" + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, + "maxTurnCount": { + "type": "integer", + "title": "Max Turn Count", + "description": "The max retry count for this prompt.", + "default": 2147483647, + "examples": [ + 3 + ] + }, + "validations": { + "type": "array", + "title": "Validation Expressions", + "description": "Expressions to validate an input.", + "items": { + "$role": "expression", + "type": "string", + "description": "String must contain an expression." + } + }, + "value": { + "$role": "expression", + "title": "Value", + "description": "The expression that you evaluated for input.", + "type": "string" + }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, + "defaultValue": { + "$role": "expression", + "title": "Default Value", + "description": "Value to return if the value expression can't be evaluated.", + "type": "string" + }, + "alwaysPrompt": { + "type": "boolean", + "title": "Always Prompt", + "description": "If set to true this will always prompt the user regardless if you already have the value or not.", + "default": false, + "examples": [ + false + ] + }, + "allowInterruptions": { + "type": "string", + "enum": [ + "always", + "never", + "notRecognized" + ], + "title": "Allow Interruptions", + "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "default": "notRecognized", + "examples": [ + "notRecognized" + ] + }, + "connectionName": { + "type": "string", + "title": "Connection Name", + "description": "The connection name configured in Azure Web App Bot OAuth settings." + }, + "text": { + "type": "string", + "title": "Text", + "description": "Text shown in the OAuth signin card." + }, + "title": { + "type": "string", + "title": "Title", + "description": "Title shown in the OAuth signin card." + }, + "timeout": { + "type": "integer", + "title": "Timeout", + "description": "Time out setting for the OAuth signin card.", + "default": "900000" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.OnActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnActivity", + "description": "This defines the actions to take when an custom activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "type": { + "type": "string", + "title": "Type", + "description": "Activity type" + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "type", + "$type" + ] + } + ] + }, + "Microsoft.OnBeginDialog": { + "title": "OnBeginDialog", + "description": "This defines the actions to take when a dialog is started via BeginDialog()", + "$role": "unionType(Microsoft.IOnEvent)", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnBeginDialog" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnConversationUpdateActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnConversationUpdateActivity", + "description": "This defines the actions to take when an ConversationUpdate activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnConversationUpdateActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnDialogEvent": { + "title": "Event Event", + "description": "Defines a rule for an event which is triggered by some source", + "type": "object", + "$role": "unionType(Microsoft.IOnEvent)", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnDialogEvent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "events": { + "type": "array", + "description": "Events to trigger this rule for", + "items": { + "type": "string", + "enum": [ + "beginDialog", + "consultDialog", + "cancelDialog", + "activityReceived", + "recognizedIntent", + "unknownIntent", + "actionsStarted", + "actionsSaved", + "actionsEnded", + "actionsResumed" + ] + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "events", + "$type" + ] + } + ] + }, + "Microsoft.OnEndOfConversationActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnEndOfConversationActivity", + "description": "This defines the actions to take when an EndOfConversation Activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnEndOfConversationActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnEvent": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "Event Event", + "description": "Defines a rule for an event which is triggered by some source", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnEvent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnEventActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnEventActivity", + "description": "This defines the actions to take when an Event activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnEventActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnHandoffActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnHandoffActivity", + "description": "This defines the actions to take when an Handoff activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnHandoffActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnIntent": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "Intent Event", + "description": "This defines the actions to take when an Intent is recognized (and optionally entities)", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnIntent" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + }, + "intent": { + "type": "string", + "title": "Intent", + "description": "Intent name to trigger on" + }, + "entities": { + "type": "array", + "title": "Entities", + "description": "The entities required to trigger this rule", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "intent", + "$type" + ] + } + ] + }, + "Microsoft.OnInvokeActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnInvokeActivity", + "description": "This defines the actions to take when an Invoke activity is received", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnInvokeActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "actions", + "$type" + ] + } + ] + }, + "Microsoft.OnMessageActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "OnMessageActivity", + "description": "This defines the actions to take when an Message activity is received. NOTE: If this triggers it will override any Recognizer/Intent rule calculation", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.OnMessageActivity" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { "type": "array", - "title": "Else Steps", - "description": "Step to execute if condition is false.", + "description": "Sequence of actions or dialogs to execute", "items": { "$type": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" @@ -2584,17 +5478,16 @@ { "title": "Type", "required": [ - "condition", - "steps", + "actions", "$type" ] } ] }, - "Microsoft.InitProperty": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Init Property Step", - "description": "This step allows you to innitial a property to either an object or array", + "Microsoft.OnMessageDeleteActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "MessageDeleteActivity", + "description": "This defines the actions to take when an MessageDelete activity is received", "type": "object", "properties": { "$type": { @@ -2602,7 +5495,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.InitProperty" + "const": "Microsoft.OnMessageDeleteActivity" }, "$copy": { "title": "$copy", @@ -2621,24 +5514,22 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "The property to set the value of", + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", "examples": [ - "user.age" + "user.vip == true" ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "type": "string" }, - "type": { - "type": "string", - "title": "type", - "description": "type of value to set the property to, object or array.", - "enum": [ - "object", - "array" - ] + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } } }, "additionalProperties": false, @@ -2657,17 +5548,16 @@ { "title": "Type", "required": [ - "property", - "type", + "actions", "$type" ] } ] }, - "Microsoft.IntentRule": { - "$role": "unionType(Microsoft.IRule)", - "title": "Intent Rule", - "description": "This defines the steps to take when an Intent is recognized (and optionally entities)", + "Microsoft.OnMessageReactionActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "MessageReactionActivity", + "description": "This defines the actions to take when a MessageReaction activity is received", "type": "object", "properties": { "$type": { @@ -2675,7 +5565,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.IntentRule" + "const": "Microsoft.OnMessageReactionActivity" }, "$copy": { "title": "$copy", @@ -2703,26 +5593,13 @@ ], "type": "string" }, - "steps": { + "actions": { "type": "array", - "description": "Sequence of steps or dialogs to execute", + "description": "Sequence of actions or dialogs to execute", "items": { "$type": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" } - }, - "intent": { - "type": "string", - "title": "Intent", - "description": "Intent name to trigger on" - }, - "entities": { - "type": "array", - "title": "Entities", - "description": "The entities required to trigger this rule", - "items": { - "type": "string" - } } }, "additionalProperties": false, @@ -2741,26 +5618,24 @@ { "title": "Type", "required": [ - "intent", - "steps", + "actions", "$type" ] } ] }, - "Microsoft.LanguagePolicy": { - "$role": "unionType(Microsoft.ILanguagePolicy)", - "title": "Language Policy", - "description": "This represents a dialog which gathers a DateTime in a specified range", + "Microsoft.OnMessageUpdateActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "MessageUpdateActivity", + "description": "This defines the actions to take when an MessageUpdate ctivity is received", "type": "object", - "additionalProperties": false, "properties": { "$type": { "title": "$type", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.LanguagePolicy" + "const": "Microsoft.OnMessageUpdateActivity" }, "$copy": { "title": "$copy", @@ -2778,8 +5653,26 @@ "title": "$designer", "type": "object", "description": "Extra information for the Bot Framework Designer." + }, + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" + }, + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } } }, + "additionalProperties": false, "patternProperties": { "^\\$": { "type": "string" @@ -2795,15 +5688,16 @@ { "title": "Type", "required": [ + "actions", "$type" ] } ] }, - "Microsoft.LogStep": { - "$role": "unionType(Microsoft.IDialog)", - "title": "Log Step", - "description": "This is a step which writes to console.log and optional creates a TraceActivity around a text binding", + "Microsoft.OnTypingActivity": { + "$role": "unionType(Microsoft.IOnEvent)", + "title": "TypingActivity", + "description": "This defines the actions to take when a Typing activity is received", "type": "object", "properties": { "$type": { @@ -2811,7 +5705,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.LogStep" + "const": "Microsoft.OnTypingActivity" }, "$copy": { "title": "$copy", @@ -2830,16 +5724,22 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "text": { - "type": "string", - "title": "Text", - "description": "LG Expression to write to the log" + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], + "type": "string" }, - "traceActivity": { - "type": "boolean", - "title": "Send Trace Activity", - "description": "Set to true to also create a TraceActivity with the log text", - "default": false + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } } }, "additionalProperties": false, @@ -2858,25 +5758,24 @@ { "title": "Type", "required": [ - "text", + "actions", "$type" ] } ] }, - "Microsoft.LuisRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "LUIS Recognizer", - "description": "LUIS recognizer.", + "Microsoft.OnUnknownIntent": { + "title": "OnUnknownIntent", + "description": "This defines the actions to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", + "$role": "unionType(Microsoft.IOnEvent)", "type": "object", - "additionalProperties": false, "properties": { "$type": { "title": "$type", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.LuisRecognizer" + "const": "Microsoft.OnUnknownIntent" }, "$copy": { "title": "$copy", @@ -2895,16 +5794,25 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "applicationId": { - "type": "string" - }, - "endpoint": { + "constraint": { + "$role": "expression", + "title": "Constraint", + "description": "Optional constraint to which must be met for this rule to fire", + "examples": [ + "user.vip == true" + ], "type": "string" }, - "endpointKey": { - "type": "string" + "actions": { + "type": "array", + "description": "Sequence of actions or dialogs to execute", + "items": { + "$type": "Microsoft.IDialog", + "$ref": "#/definitions/Microsoft.IDialog" + } } }, + "additionalProperties": false, "patternProperties": { "^\\$": { "type": "string" @@ -2920,18 +5828,17 @@ { "title": "Type", "required": [ - "applicationId", - "endpoint", - "endpointKey", + "actions", + "type", "$type" ] } ] }, - "Microsoft.MultiLanguageRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "Multi Language Recognizer", - "description": "Recognizer which allows you to configure the recognizer per language, and to define the policy for using them", + "Microsoft.OrdinalEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Ordinal Entity Recognizer", + "description": "Recognizer which recognizes ordinals (example: first, second, 3rd).", "type": "object", "properties": { "$type": { @@ -2939,7 +5846,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.MultiLanguageRecognizer" + "const": "Microsoft.OrdinalEntityRecognizer" }, "$copy": { "title": "$copy", @@ -2957,22 +5864,6 @@ "title": "$designer", "type": "object", "description": "Extra information for the Bot Framework Designer." - }, - "languagePolicy": { - "$type": "Microsoft.ILanguagePolicy", - "type": "object", - "title": "Language Policy", - "description": "Defines languages to try per language.", - "$ref": "#/definitions/Microsoft.ILanguagePolicy" - }, - "recognizers": { - "type": "object", - "title": "Recognizers", - "description": "Map of language -> IRecognizer", - "additionalProperties": { - "$type": "Microsoft.IRecognizer", - "$ref": "#/definitions/Microsoft.IRecognizer" - } } }, "additionalProperties": false, @@ -2991,16 +5882,15 @@ { "title": "Type", "required": [ - "recognizers", "$type" ] } ] }, - "Microsoft.NumberInput": { - "$role": "unionType(Microsoft.IDialog)", - "title": "NumberInput Dialog", - "description": "This represents a dialog which gathers a decimal number in a specified range", + "Microsoft.PercentageEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Percentage Entity Recognizer", + "description": "Recognizer which recognizes percentages.", "type": "object", "properties": { "$type": { @@ -3008,7 +5898,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.NumberInput" + "const": "Microsoft.PercentageEntityRecognizer" }, "$copy": { "title": "$copy", @@ -3026,135 +5916,58 @@ "title": "$designer", "type": "object", "description": "Extra information for the Bot Framework Designer." - }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": [ - "value.birthday", - "user.name" - ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": [ - "value.birthday" - ], - "additionalProperties": { - "type": "string" - } - }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": [ - "value.birthday" - ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "prompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Initial Prompt", - "description": "The message to send to as prompt for this input.", - "examples": [ - "What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "unrecognizedPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Unrecognized Prompt", - "description": "The message to send if the last input is not recognized.", - "examples": [ - "Let's try again. What is your birth date?" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "invalidPrompt": { - "$type": "Microsoft.IActivityTemplate", - "title": "Invalid Prompt", - "description": "The message to send to when then input was not valid for the input type.", - "examples": [ - "No date was recognized" - ], - "$ref": "#/definitions/Microsoft.IActivityTemplate" - }, - "maxTurnCount": { - "type": "integer", - "title": "Max Turn Count", - "description": "The max retry count for this prompt.", - "default": 2147483647, - "examples": [ - 3 - ] - }, - "validations": { - "type": "array", - "title": "Validation Expressions", - "description": "Expressions to validate an input.", - "items": { - "$role": "expression", - "type": "string", - "description": "String must contain an expression." - } - }, - "value": { - "$role": "expression", - "title": "Value", - "description": "The expression that you evaluated for input.", - "type": "string" - }, - "defaultValue": { - "$role": "expression", - "title": "Default Value", - "description": "Value to return if the value expression can't be evaluated.", + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { "type": "string" - }, - "alwaysPrompt": { - "type": "boolean", - "title": "Always Prompt", - "description": "If set to true this will always prompt the user regardless if you already have the value or not.", - "default": false, - "examples": [ - false + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" ] }, - "allowInterruptions": { - "type": "string", - "enum": [ - "always", - "never", - "notRecognized" - ], - "title": "Allow Interruptions", - "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", - "default": "never", - "examples": [ - "notRecognized" + { + "title": "Type", + "required": [ + "$type" ] + } + ] + }, + "Microsoft.PhoneNumberEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Phone Number Entity Recognizer", + "description": "Recognizer which recognizes phone numbers.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.PhoneNumberEntityRecognizer" }, - "outputFormat": { + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", "type": "string", - "enum": [ - "float", - "integer" - ], - "title": "Output Format", - "description": "The NumberInput output format.", - "default": "float" + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" }, - "defaultLocale": { + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", "type": "string", - "title": "Default Locale", - "description": "The prompts default locale that should be recognized.", - "default": "en-us" + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." } }, "additionalProperties": false, @@ -3178,18 +5991,19 @@ } ] }, - "Microsoft.OAuthInput": { + "Microsoft.QnAMakerDialog": { "$role": "unionType(Microsoft.IDialog)", - "title": "OAuthInput Dialog", - "description": "This represents a dialog which gathers an OAuth token from user", + "title": "QnAMaker Dialog", + "description": "This represents a dialog which is driven by a call to QnAMaker.ai knowledge base", "type": "object", + "additionalProperties": false, "properties": { "$type": { "title": "$type", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.OAuthInput" + "const": "Microsoft.QnAMakerDialog" }, "$copy": { "title": "$copy", @@ -3208,57 +6022,101 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": [ - "value.birthday" + "endpoint": { + "type": "object", + "title": "Endpoint", + "description": "This is the QnAMaker endpoint to use", + "required": [ + "knowledgeBaseId", + "endpointKey", + "host" ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "properties": { + "knowledgeBaseId": { + "type": "string", + "title": "Knowledgebase Id", + "description": "the knowledge base ID." + }, + "endpointKey": { + "type": "string", + "title": "Endpoint Key", + "description": "sets the endpoint key for the knowledge base" + }, + "host": { + "type": "string", + "title": "Host", + "description": "sets the host path", + "examples": [ + "https://yourserver.azurewebsites.net/qnamaker" + ] + } + } }, - "inputBindings": { + "options": { "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", - "examples": [ - "value.birthday" - ], - "additionalProperties": { - "type": "string" + "title": "Options", + "properties": { + "scoreThreshold": { + "type": "number", + "title": "Score Threshold", + "description": "\"sets the minimum score threshold, used to filter returned results. Scores are normalized to the range of 0.0 to 1.0" + } } + } + }, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": [ - "value.birthday" - ], + { + "title": "Type", + "required": [ + "endpoint", + "$type" + ] + } + ] + }, + "Microsoft.RandomSelector": { + "$role": "unionType(Microsoft.IEventSelector)", + "title": "Random rule selector", + "description": "Select most specific true rule", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.RandomSelector" }, - "connectionName": { + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", "type": "string", - "title": "Connection Name", - "description": "The connection name configured in Azure Web App Bot OAuth settings." + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" }, - "text": { + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", "type": "string", - "title": "Text", - "description": "Text shown in the OAuth signin card." + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" }, - "title": { - "type": "string", - "title": "Title", - "description": "Title shown in the OAuth signin card." + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." }, - "timeout": { - "type": "integer", - "title": "Timeout", - "description": "Time out setting for the OAuth signin card.", - "default": "900000" + "seed": { + "type": "integer" } }, "additionalProperties": false, @@ -3282,10 +6140,10 @@ } ] }, - "Microsoft.RegexRecognizer": { - "$role": "unionType(Microsoft.IRecognizer)", - "title": "Regex Recognizer", - "description": "Recognizer which uses regex expressions to generate intents and entities.", + "Microsoft.RegexEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Regex Entity Recognizer", + "description": "Recognizer which recognizes patterns of input based on regex.", "type": "object", "properties": { "$type": { @@ -3293,7 +6151,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.RegexRecognizer" + "const": "Microsoft.RegexEntityRecognizer" }, "$copy": { "title": "$copy", @@ -3312,13 +6170,15 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "intents": { - "type": "object", - "title": "RegEx patterns to intents", - "description": "Pattern->Intents mappings", - "additionalProperties": { - "type": "string" - } + "name": { + "type": "string", + "title": "Name", + "description": "Name of the entity" + }, + "pattern": { + "type": "string", + "title": "Pattern", + "description": "Pattern expressed as regular expression." } }, "additionalProperties": false, @@ -3337,24 +6197,25 @@ { "title": "Type", "required": [ - "intents", + "name", + "pattern", "$type" ] } ] }, - "Microsoft.RepeatDialog": { - "$role": "unionType(Microsoft.IDialog)", + "Microsoft.RegexRecognizer": { + "$role": "unionType(Microsoft.IRecognizer)", + "title": "Regex Recognizer", + "description": "Recognizer which uses regex expressions to generate intents and entities.", "type": "object", - "title": "Repeat Dialog", - "description": "This is a step which repeats the current dialog with the same dialog.", "properties": { "$type": { "title": "$type", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.RepeatDialog" + "const": "Microsoft.RegexRecognizer" }, "$copy": { "title": "$copy", @@ -3372,6 +6233,35 @@ "title": "$designer", "type": "object", "description": "Extra information for the Bot Framework Designer." + }, + "intents": { + "type": "array", + "title": "RegEx patterns to intents", + "description": "Collection of patterns to match intents", + "items": { + "type": "object", + "properties": { + "intent": { + "type": "string", + "title": "Intent", + "description": "The intent name" + }, + "pattern": { + "type": "string", + "title": "Pattern", + "description": "The regular expression pattern for matching" + } + } + } + }, + "entities": { + "type": "array", + "title": "Entitie Recognizers", + "description": "Entity Recognizers to use", + "items": { + "$type": "Microsoft.EntityRecognizer", + "$ref": "#/definitions/Microsoft.EntityRecognizer" + } } }, "additionalProperties": false, @@ -3390,23 +6280,24 @@ { "title": "Type", "required": [ + "intents", "$type" ] } ] }, - "Microsoft.ReplaceDialog": { + "Microsoft.RepeatDialog": { "$role": "unionType(Microsoft.IDialog)", "type": "object", - "title": "Replace Dialog", - "description": "This is a step which replaces the current dialog with the target dialog", + "title": "Repeat Dialog", + "description": "This is a action which repeats the current dialog with the same dialog.", "properties": { "$type": { "title": "$type", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.ReplaceDialog" + "const": "Microsoft.RepeatDialog" }, "$copy": { "title": "$copy", @@ -3425,26 +6316,25 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "dialog": { - "$type": "Microsoft.IDialog", - "title": "Dialog", - "description": "This is the dialog to switch to.", - "$ref": "#/definitions/Microsoft.IDialog" - }, - "options": { - "type": "object", - "title": "Options", - "description": "Options to pass to the dialog.", - "additionalProperties": true + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] }, - "property": { - "$role": "memoryPath", - "description": "The property to bind to the dialog and store the result in", + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", "examples": [ - "user.name" + "input", + "confirmation" ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "items": { + "type": "string" + } } }, "additionalProperties": false, @@ -3468,18 +6358,18 @@ } ] }, - "Microsoft.Rule": { - "$role": "unionType(Microsoft.IRule)", - "title": "Event Rule", - "description": "Defines a rule for an event which is triggered by some source", + "Microsoft.ReplaceDialog": { + "$role": "unionType(Microsoft.IDialog)", "type": "object", + "title": "Replace Dialog", + "description": "This is a action which replaces the current dialog with the target dialog", "properties": { "$type": { "title": "$type", "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.Rule" + "const": "Microsoft.ReplaceDialog" }, "$copy": { "title": "$copy", @@ -3498,22 +6388,48 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "constraint": { + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, + "dialog": { + "$type": "Microsoft.IDialog", + "title": "Dialog", + "description": "This is the dialog to switch to.", + "$ref": "#/definitions/Microsoft.IDialog" + }, + "options": { + "type": "object", + "title": "Options binding", + "description": "Bindings to configure the options object to pass to the dialog.", + "additionalProperties": { + "type": "string", + "title": "Options" + } + }, + "property": { "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", + "description": "The property to bind to the dialog and store the result in", "examples": [ - "user.vip == true" + "user.name" ], "type": "string" - }, - "steps": { - "type": "array", - "description": "Sequence of steps or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } } }, "additionalProperties": false, @@ -3532,7 +6448,6 @@ { "title": "Type", "required": [ - "steps", "$type" ] } @@ -3540,8 +6455,8 @@ }, "Microsoft.SendActivity": { "$role": "unionType(Microsoft.IDialog)", - "title": "Send Activity Step", - "description": "This is a step which sends an activity to the user", + "title": "Send Activity Action", + "description": "This is a action which sends an activity to the user", "type": "object", "properties": { "$type": { @@ -3568,6 +6483,26 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, "activity": { "$type": "Microsoft.IActivityTemplate", "title": "Activity", @@ -3598,8 +6533,8 @@ }, "Microsoft.SetProperty": { "$role": "unionType(Microsoft.IDialog)", - "title": "Set Property Step", - "description": "This step allows you to set memory to the value of an expression", + "title": "Set Property Action", + "description": "This action allows you to set memory to the value of an expression", "type": "object", "properties": { "$type": { @@ -3626,15 +6561,34 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, "property": { - "$role": "memoryPath", + "$role": "expression", "title": "Property", "description": "The property to set the value of", "examples": [ "user.age" ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "type": "string" }, "value": { "$role": "expression", @@ -3671,8 +6625,8 @@ }, "Microsoft.SwitchCondition": { "$role": "unionType(Microsoft.IDialog)", - "title": "Switch Step", - "description": "Step which conditionally decides which step to execute next.", + "title": "Switch Action", + "description": "Action which conditionally decides which action to execute next.", "type": "object", "properties": { "$type": { @@ -3699,6 +6653,26 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, "condition": { "$role": "expression", "title": "Condition", @@ -3725,10 +6699,10 @@ "description": "Value which must match the condition property", "type": "string" }, - "steps": { + "actions": { "type": "array", - "title": "Steps", - "description": "Steps to execute if case is equal to condition", + "title": "Actions", + "description": "Actions to execute if case is equal to condition", "items": { "$type": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" @@ -3740,7 +6714,7 @@ "default": { "type": "array", "title": "Default", - "description": "Step to execute if no case is equal to condition", + "description": "Action to execute if no case is equal to condition", "items": { "$type": "Microsoft.IDialog", "$ref": "#/definitions/Microsoft.IDialog" @@ -3769,6 +6743,58 @@ } ] }, + "Microsoft.TemperatureEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Temperature Entity Recognizer", + "description": "Recognizer which recognizes temperatures.", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.TemperatureEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { + "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] + }, + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, "Microsoft.TextInput": { "$role": "unionType(Microsoft.IDialog)", "title": "TextInput Dialog", @@ -3799,64 +6825,26 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, - "outputFormat": { - "type": "string", - "enum": [ - "none", - "trim", - "lowercase", - "uppercase" - ], - "title": "Output Format", - "description": "The TextInput output format.", - "default": "none" - }, - "allowInterruptions": { - "default": "never", + "id": { "type": "string", - "enum": [ - "always", - "never", - "notRecognized" - ], - "title": "Allow Interruptions", - "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "title": "Id", + "description": "(Optional) id for the dialog", "examples": [ - "notRecognized" + "Dialog2" ] }, - "property": { - "$role": "memoryPath", - "title": "Property", - "description": "This is that will be passed in as InputProperty and also set as the OutputProperty", - "examples": [ - "value.birthday", - "user.name" - ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, - "inputBindings": { - "type": "object", - "title": "Input Bindings", - "description": "This defines properties which be passed as arguments to this dialog", + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", "examples": [ - "value.birthday" + "input", + "confirmation" ], - "additionalProperties": { + "items": { "type": "string" } }, - "outputBinding": { - "$role": "memoryPath", - "title": "Output Property binding", - "description": "This is the property which the EndDialog(result) will be set to when EndDialog() is called", - "examples": [ - "value.birthday" - ], - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" - }, "prompt": { "$type": "Microsoft.IActivityTemplate", "title": "Initial Prompt", @@ -3884,6 +6872,15 @@ ], "$ref": "#/definitions/Microsoft.IActivityTemplate" }, + "defaultValueResponse": { + "$type": "Microsoft.IActivityTemplate", + "title": "Default Value Response", + "description": "The message to send to when max turn count has been exceeded and the default value is selected as the value.", + "examples": [ + "I didn't understand your responses, so I will just use the default value of 10. Let me know if you want to change it." + ], + "$ref": "#/definitions/Microsoft.IActivityTemplate" + }, "maxTurnCount": { "type": "integer", "title": "Max Turn Count", @@ -3909,6 +6906,15 @@ "description": "The expression that you evaluated for input.", "type": "string" }, + "property": { + "$role": "expression", + "title": "Property", + "description": "Property that this input dialog is bound to", + "examples": [ + "$birthday" + ], + "type": "string" + }, "defaultValue": { "$role": "expression", "title": "Default Value", @@ -3923,6 +6929,32 @@ "examples": [ false ] + }, + "allowInterruptions": { + "type": "string", + "enum": [ + "always", + "never", + "notRecognized" + ], + "title": "Allow Interruptions", + "description": "Always will always consult parent dialogs first, never will not consult parent dialogs, notRecognized will consult parent only when it's not recognized", + "default": "notRecognized", + "examples": [ + "notRecognized" + ] + }, + "outputFormat": { + "type": "string", + "enum": [ + "none", + "trim", + "lowercase", + "uppercase" + ], + "title": "Output Format", + "description": "The TextInput output format.", + "default": "none" } }, "additionalProperties": false, @@ -3948,8 +6980,8 @@ }, "Microsoft.TraceActivity": { "$role": "unionType(Microsoft.IDialog)", - "title": "Trace Activity Step", - "description": "This is a step which sends an TraceActivity to the transcript", + "title": "Trace Activity Action", + "description": "This is a action which sends an TraceActivity to the transcript", "type": "object", "properties": { "$type": { @@ -3976,6 +7008,26 @@ "type": "object", "description": "Extra information for the Bot Framework Designer." }, + "id": { + "type": "string", + "title": "Id", + "description": "(Optional) id for the dialog", + "examples": [ + "Dialog2" + ] + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags are optional strings that you can use to organize components", + "examples": [ + "input", + "confirmation" + ], + "items": { + "type": "string" + } + }, "name": { "type": "string", "title": "Name", @@ -3987,11 +7039,10 @@ "description": "Value type of the trace activity" }, "value": { - "$role": "memoryPath", + "$role": "expression", "title": "Value", "description": "Property path to memory object to send as the value of the trace activity", - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$" + "type": "string" } }, "additionalProperties": false, @@ -4015,10 +7066,10 @@ } ] }, - "Microsoft.UnknownIntentRule": { - "title": "This defines the steps to take when an utterence is not recognized (aka, the None Intent). NOTE: UnknownIntent will defer to any specific intent that fires in a parent dialog", - "description": "Defines a sequence of steps to take if there is no other trigger or plan operating", - "$role": "unionType(Microsoft.IRule)", + "Microsoft.TrueSelector": { + "$role": "unionType(Microsoft.IEventSelector)", + "title": "True Event Selector", + "description": "Selector for all true events", "type": "object", "properties": { "$type": { @@ -4026,7 +7077,7 @@ "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", - "const": "Microsoft.UnknownIntentRule" + "const": "Microsoft.TrueSelector" }, "$copy": { "title": "$copy", @@ -4044,23 +7095,58 @@ "title": "$designer", "type": "object", "description": "Extra information for the Bot Framework Designer." - }, - "constraint": { - "$role": "expression", - "title": "Constraint", - "description": "Optional constraint to which must be met for this rule to fire", - "examples": [ - "user.vip == true" - ], + } + }, + "additionalProperties": false, + "patternProperties": { + "^\\$": { "type": "string" + } + }, + "anyOf": [ + { + "title": "Reference", + "required": [ + "$copy" + ] }, - "steps": { - "type": "array", - "description": "Sequence of steps or dialogs to execute", - "items": { - "$type": "Microsoft.IDialog", - "$ref": "#/definitions/Microsoft.IDialog" - } + { + "title": "Type", + "required": [ + "$type" + ] + } + ] + }, + "Microsoft.UrlEntityRecognizer": { + "$role": "unionType(Microsoft.EntityRecognizer)", + "title": "Url Entity Recognizer", + "description": "Recognizer which recognizes urls (example: http://bing.com)", + "type": "object", + "properties": { + "$type": { + "title": "$type", + "description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)", + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9.]*$", + "const": "Microsoft.UrlEntityRecognizer" + }, + "$copy": { + "title": "$copy", + "description": "Copy the definition by id from a .dialog file.", + "type": "string", + "pattern": "^(([a-zA-Z][a-zA-Z0-9.]*)?(#[a-zA-Z][a-zA-Z0-9.]*)?)$" + }, + "$id": { + "title": "$id", + "description": "Inline id for reuse of an inline definition", + "type": "string", + "pattern": "^([a-zA-Z][a-zA-Z0-9.]*)$" + }, + "$designer": { + "title": "$designer", + "type": "object", + "description": "Extra information for the Bot Framework Designer." } }, "additionalProperties": false, @@ -4079,7 +7165,6 @@ { "title": "Type", "required": [ - "steps", "$type" ] } diff --git a/Composer/packages/server/src/models/bot/indexers/dialogIndexers.ts b/Composer/packages/server/src/models/bot/indexers/dialogIndexers.ts index d58b054b68..d50554877d 100644 --- a/Composer/packages/server/src/models/bot/indexers/dialogIndexers.ts +++ b/Composer/packages/server/src/models/bot/indexers/dialogIndexers.ts @@ -74,7 +74,7 @@ export class DialogIndexer { */ const visitor: VisitorFunc = (path: string, value: any): boolean => { // it's a valid schema dialog node. - if (has(value, '$type') && value.$type === 'Microsoft.IntentRule') { + if (has(value, '$type') && value.$type === 'Microsoft.OnIntent') { const intentName = value.intent; intents.push(intentName); } @@ -99,13 +99,13 @@ export class DialogIndexer { */ const visitor: VisitorFunc = (path: string, value: any): boolean => { // it's a valid schema dialog node. - if (has(value, 'rules')) { - value.rules.forEach((rule: any, index: number) => { + if (has(value, 'events')) { + value.events.forEach((rule: any, index: number) => { const trigger: ITrigger = { - id: `rules[${index}]`, + id: `events[${index}]`, displayName: '', type: rule.$type, - isIntent: rule.$type === 'Microsoft.IntentRule', + isIntent: rule.$type === 'Microsoft.OnIntent', }; if (has(rule, '$designer.name')) { diff --git a/Composer/yarn.lock b/Composer/yarn.lock index c3525a1e9c..820782486c 100644 --- a/Composer/yarn.lock +++ b/Composer/yarn.lock @@ -2308,10 +2308,10 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.8.13", "@types/react@^16.8.23", "@types/react@^16.9.2": +"@types/react@*", "@types/react@^16.8.0", "@types/react@^16.8.13", "@types/react@^16.8.23", "@types/react@^16.9.2": version "16.9.2" - resolved "https://botbuilder.myget.org/F/botbuilder-declarative/npm/@types/react/-/@types/react-16.9.2.tgz#6d1765431a1ad1877979013906731aae373de268" - integrity sha1-bRdlQxoa0Yd5eQE5BnMarjc94mg= + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.2.tgz#6d1765431a1ad1877979013906731aae373de268" + integrity sha512-jYP2LWwlh+FTqGd9v7ynUKZzjj98T8x7Yclz479QdRhHfuW9yQ+0jjnD31eXSXutmBpppj5PYNLYLRfnZJvcfg== dependencies: "@types/prop-types" "*" csstype "^2.2.0" diff --git a/SampleBots/Cards_Samples/Main/Main.dialog b/SampleBots/Cards_Samples/Main/Main.dialog index 8fb315bd76..49f976eca2 100644 --- a/SampleBots/Cards_Samples/Main/Main.dialog +++ b/SampleBots/Cards_Samples/Main/Main.dialog @@ -8,10 +8,10 @@ }, "autoEndDialog": false, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.UnknownIntentRule", - "steps": [ + "$type": "Microsoft.OnUnknownIntent", + "actions": [ { "$type": "Microsoft.ChoiceInput", "$designer": { @@ -71,7 +71,7 @@ "cases": [ { "value": "HeroCard", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -85,7 +85,7 @@ }, { "value": "ThumbnailCard", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -99,7 +99,7 @@ }, { "value": "SigninCard", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -113,7 +113,7 @@ }, { "value": "AnimationCard", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -127,7 +127,7 @@ }, { "value": "VideoCard", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -141,7 +141,7 @@ }, { "value": "AudioCard", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -155,7 +155,7 @@ }, { "value": "AdaptiveCard", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -169,7 +169,7 @@ }, { "value": "AllCards", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -204,9 +204,9 @@ } }, { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/ControllingConversation/ForeachPageStep/ForeachPageStep.dialog b/SampleBots/ControllingConversation/ForeachPageStep/ForeachPageStep.dialog index b03529abcd..efbe77f0f9 100644 --- a/SampleBots/ControllingConversation/ForeachPageStep/ForeachPageStep.dialog +++ b/SampleBots/ControllingConversation/ForeachPageStep/ForeachPageStep.dialog @@ -6,17 +6,14 @@ "id": "847208" }, "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "455902", "updatedAt": "2019-07-22T07:40:35.808Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -25,7 +22,7 @@ "id": "400171" }, "condition": "dialog.ids == null", - "steps": [ + "actions": [ { "$type": "Microsoft.InitProperty", "$designer": { @@ -91,11 +88,11 @@ "listProperty": "dialog.ids", "PageSize": "2", "ValueProperty": "dialog.page", - "Steps": [ + "actions": [ { "$type": "Microsoft.Foreach", "listProperty": "dialog.page", - "Steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "{dialog.index}: {dialog.value}" diff --git a/SampleBots/ControllingConversation/ForeachStep/ForeachStep.dialog b/SampleBots/ControllingConversation/ForeachStep/ForeachStep.dialog index 51a2df9023..c860f7ef52 100644 --- a/SampleBots/ControllingConversation/ForeachStep/ForeachStep.dialog +++ b/SampleBots/ControllingConversation/ForeachStep/ForeachStep.dialog @@ -6,17 +6,14 @@ "id": "178401" }, "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "614429", "updatedAt": "2019-07-22T07:44:57.223Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -25,7 +22,7 @@ "id": "810905" }, "condition": "dialog.ids == null", - "steps": [ + "actions": [ { "$type": "Microsoft.InitProperty", "$designer": { @@ -89,7 +86,7 @@ "indexProperty": "dialog.index", "valueProperty": "dialog.value", "listProperty": "dialog.ids", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "{dialog.index}: {dialog.value}" diff --git a/SampleBots/ControllingConversation/IfCondition/IfCondition.dialog b/SampleBots/ControllingConversation/IfCondition/IfCondition.dialog index 37664f1ebf..f33dbece78 100644 --- a/SampleBots/ControllingConversation/IfCondition/IfCondition.dialog +++ b/SampleBots/ControllingConversation/IfCondition/IfCondition.dialog @@ -6,17 +6,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "057973", "updatedAt": "2019-07-22T07:36:15.077Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.NumberInput", "$designer": { @@ -25,7 +22,7 @@ }, "property": "user.age", "prompt": "Hello, What's your age?", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": false, "allowInterruptions": false, "outputFormat": "float", @@ -38,7 +35,7 @@ "id": "463418" }, "condition": "user.age >= 18", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -48,7 +45,7 @@ "activity": "[bfdactivity-164444]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/ControllingConversation/Main/Main.dialog b/SampleBots/ControllingConversation/Main/Main.dialog index 114a012e97..ff94cdd320 100644 --- a/SampleBots/ControllingConversation/Main/Main.dialog +++ b/SampleBots/ControllingConversation/Main/Main.dialog @@ -10,26 +10,61 @@ "autoEndDialog": false, "recognizer": { "$type": "Microsoft.RegexRecognizer", - "intents": { - "IfCondition": "IfCondition|01", - "SwitchCondition": "SwitchCondition|02", - "ForeachStep": "ForeachStep|03", - "ForeachPageStep": "ForeachPageStep|04", - "Cancel": "Cancel|05", - "EndTurn": "EndTurn|06", - "RepeatDialog": "RepeatDialog|07" - } + "intents": [ + { + + "$type": "Microsoft.IntentPattern", + "intent": "IfCondition", + "pattern": "(?i)IfCondition|01" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "SwitchCondition", + "pattern": "SwitchCondition|02" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "ForeachStep", + "pattern": "ForeachStep|03" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "ForeachPageStep", + "pattern": "ForeachPageStep|04" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "Cancel", + "pattern": "Cancel|05" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "EndTurn", + "pattern": "EndTurn|06" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "RepeatDialog", + "pattern": "RepeatDialog|07" + } + ] }, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:47:02.069Z", "updatedAt": "2019-07-16T18:47:06.232Z", "id": "139291" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "IfCondition" @@ -38,13 +73,13 @@ "intent": "IfCondition" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:47:07.473Z", "updatedAt": "2019-07-16T18:47:10.789Z", "id": "606805" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "SwitchCondition" @@ -53,13 +88,13 @@ "intent": "SwitchCondition" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:47:12.071Z", "updatedAt": "2019-07-16T18:47:15.570Z", "id": "175644" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ForeachStep" @@ -68,13 +103,13 @@ "intent": "ForeachStep" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:47:16.917Z", "updatedAt": "2019-07-16T18:47:20.109Z", "id": "973338" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ForeachPageStep" @@ -83,13 +118,13 @@ "intent": "ForeachPageStep" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:47:21.301Z", "updatedAt": "2019-07-16T18:47:24.658Z", "id": "329460" }, - "steps": [ + "actions": [ { "$type": "Microsoft.CancelAllDialogs" } @@ -97,13 +132,13 @@ "intent": "Cancel" }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "$designer": { "createdAt": "2019-07-16T18:47:25.995Z", "updatedAt": "2019-07-16T18:47:29.138Z", "id": "132038" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "Canceled." @@ -115,13 +150,13 @@ "events": ["cancelDialog"] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:47:30.457Z", "updatedAt": "2019-07-16T18:47:34.267Z", "id": "043417" }, - "steps": [ + "actions": [ { "$type": "Microsoft.EndTurn" } @@ -129,13 +164,13 @@ "intent": "EndTurn" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:47:35.642Z", "updatedAt": "2019-07-16T18:47:38.774Z", "id": "294228" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "RepeatDialog" @@ -144,13 +179,13 @@ "intent": "RepeatDialog" }, { - "$type": "Microsoft.UnknownIntentRule", + "$type": "Microsoft.OnUnknownIntent", "$designer": { "createdAt": "2019-07-04T19:53:46.534Z", "updatedAt": "2019-07-16T18:47:46.616Z", "id": "094908" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -162,14 +197,14 @@ ] }, { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "name": "Handle ConversationUpdate", "id": "791275", "updatedAt": "2019-07-18T10:16:47.781Z" }, "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/ControllingConversation/RepeatDialog/RepeatDialog.dialog b/SampleBots/ControllingConversation/RepeatDialog/RepeatDialog.dialog index 72947c2161..a2375795a7 100644 --- a/SampleBots/ControllingConversation/RepeatDialog/RepeatDialog.dialog +++ b/SampleBots/ControllingConversation/RepeatDialog/RepeatDialog.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "695225", "updatedAt": "2019-07-22T07:45:52.118Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.ConfirmInput", "$designer": { @@ -28,7 +25,7 @@ "property": "user.confirmed", "prompt": "Do you want to repeat this dialog, yes to repeat, no to end this dialog", "unrecognizedPrompt": "I need a yes or no.", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": true, "allowInterruptions": false, "defaultLocale": "en-us", @@ -48,7 +45,7 @@ "id": "365292" }, "condition": "user.confirmed", - "steps": [ + "actions": [ { "$type": "Microsoft.RepeatDialog", "$designer": { @@ -58,7 +55,7 @@ } } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.EndDialog", "$designer": { diff --git a/SampleBots/ControllingConversation/SwitchCondition/SwitchCondition.dialog b/SampleBots/ControllingConversation/SwitchCondition/SwitchCondition.dialog index edca22b9fb..150416a3e0 100644 --- a/SampleBots/ControllingConversation/SwitchCondition/SwitchCondition.dialog +++ b/SampleBots/ControllingConversation/SwitchCondition/SwitchCondition.dialog @@ -7,15 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "050101", "updatedAt": "2019-07-22T07:46:06.571Z" }, - "events": ["beginDialog"], - "steps": [ + "actions": [ { "$type": "Microsoft.ChoiceInput", "$designer": { @@ -73,7 +72,7 @@ "cases": [ { "value": "Susan", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -86,7 +85,7 @@ }, { "value": "Nick", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -99,7 +98,7 @@ }, { "value": "Tom", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Inputs_Samples/AttachmentInput/AttachmentInput.dialog b/SampleBots/Inputs_Samples/AttachmentInput/AttachmentInput.dialog index 57dea440e8..85d44a656f 100644 --- a/SampleBots/Inputs_Samples/AttachmentInput/AttachmentInput.dialog +++ b/SampleBots/Inputs_Samples/AttachmentInput/AttachmentInput.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "883342", "updatedAt": "2019-07-22T07:50:42.820Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.AttachmentInput", "$designer": { @@ -27,9 +24,9 @@ }, "property": "dialog.attachments", "prompt": "Please send an image or music.", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": false, + "allowInterruptions": "never", "outputFormat": "All" }, { diff --git a/SampleBots/Inputs_Samples/ChoiceInput/ChoiceInput.dialog b/SampleBots/Inputs_Samples/ChoiceInput/ChoiceInput.dialog index d9a489f350..19ca15f922 100644 --- a/SampleBots/Inputs_Samples/ChoiceInput/ChoiceInput.dialog +++ b/SampleBots/Inputs_Samples/ChoiceInput/ChoiceInput.dialog @@ -7,15 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "865027", "updatedAt": "2019-07-22T07:50:53.182Z" }, - "events": ["beginDialog"], - "steps": [ + "actions": [ { "$type": "Microsoft.ChoiceInput", "$designer": { diff --git a/SampleBots/Inputs_Samples/ConfirmInput/ConfirmInput.dialog b/SampleBots/Inputs_Samples/ConfirmInput/ConfirmInput.dialog index 61f0c17e53..1bf640d0e9 100644 --- a/SampleBots/Inputs_Samples/ConfirmInput/ConfirmInput.dialog +++ b/SampleBots/Inputs_Samples/ConfirmInput/ConfirmInput.dialog @@ -6,15 +6,14 @@ "id": "556076" }, "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "030235", "updatedAt": "2019-07-22T07:51:03.850Z" }, - "events": ["beginDialog"], - "steps": [ + "actions": [ { "$type": "Microsoft.ConfirmInput", "$designer": { diff --git a/SampleBots/Inputs_Samples/DateTimeInput/DateTimeInput.dialog b/SampleBots/Inputs_Samples/DateTimeInput/DateTimeInput.dialog index 0ac3244af4..6d7c8b57a1 100644 --- a/SampleBots/Inputs_Samples/DateTimeInput/DateTimeInput.dialog +++ b/SampleBots/Inputs_Samples/DateTimeInput/DateTimeInput.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "309212", "updatedAt": "2019-07-22T07:51:11.884Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.DateTimeInput", "$designer": { diff --git a/SampleBots/Inputs_Samples/Main/Main.dialog b/SampleBots/Inputs_Samples/Main/Main.dialog index 5998414444..83ead77433 100644 --- a/SampleBots/Inputs_Samples/Main/Main.dialog +++ b/SampleBots/Inputs_Samples/Main/Main.dialog @@ -10,23 +10,63 @@ "autoEndDialog": false, "recognizer": { "$type": "Microsoft.RegexRecognizer", - "intents": { - "TextInput": "TextInput|01", - "NumberInput": "NumberInput|02", - "ConfirmInput": "ConfirmInput|03", - "ChoiceInput": "ChoiceInput|04", - "AttachmentInput": "AttachmentInput|05", - "DateTimeInput": "DateTimeInput|06", - "OAuthInput": "OAuthInput|07", - "CancelIntent": "cancel" - } + "intents":[ + { + + "$type": "Microsoft.IntentPattern", + "intent": "TextInput", + "pattern": "TextInput|01" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "NumberInput", + "pattern": "NumberInput|02" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "ConfirmInput", + "pattern": "ConfirmInput|03" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "ChoiceInput", + "pattern": "ChoiceInput|04" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "AttachmentInput", + "pattern": "AttachmentInput|05" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "DateTimeInput", + "pattern": "DateTimeInput|06" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "OAuthInput", + "pattern": "OAuthInput|07" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "cancel", + "pattern": "cancel" + } + ] }, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[help]" @@ -39,13 +79,13 @@ } }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:54:25.506Z", "updatedAt": "2019-07-16T18:54:29.045Z", "id": "872701" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "TextInput" @@ -54,13 +94,13 @@ "intent": "TextInput" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:54:30.230Z", "updatedAt": "2019-07-16T18:54:34.404Z", "id": "454567" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "NumberInput" @@ -69,13 +109,13 @@ "intent": "NumberInput" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:54:35.719Z", "updatedAt": "2019-07-16T18:54:39.007Z", "id": "543817" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "DateTimeInput" @@ -84,13 +124,13 @@ "intent": "DateTimeInput" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:54:40.362Z", "updatedAt": "2019-07-16T18:54:43.491Z", "id": "034901" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ConfirmInput" @@ -99,13 +139,13 @@ "intent": "ConfirmInput" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:54:44.886Z", "updatedAt": "2019-07-16T18:54:50.293Z", "id": "374825" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ChoiceInput" @@ -114,13 +154,13 @@ "intent": "ChoiceInput" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T18:54:51.534Z", "updatedAt": "2019-07-16T18:54:54.454Z", "id": "832993" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "AttachmentInput" @@ -129,13 +169,13 @@ "intent": "AttachmentInput" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-11T06:07:25.376Z", "updatedAt": "2019-07-16T18:54:58.779Z", "id": "268314" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "OAuthInput" @@ -144,13 +184,13 @@ "intent": "OAuthInput" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-01T21:58:18.063Z", "updatedAt": "2019-07-16T18:55:04.129Z", "id": "566255" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -164,13 +204,13 @@ "intent": "CancelIntent" }, { - "$type": "Microsoft.UnknownIntentRule", + "$type": "Microsoft.OnUnknownIntent", "$designer": { "createdAt": "2019-07-11T06:53:07.521Z", "updatedAt": "2019-07-16T18:55:15.093Z", "id": "487768" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Inputs_Samples/NumberInput/NumberInput.dialog b/SampleBots/Inputs_Samples/NumberInput/NumberInput.dialog index 800987f585..94536dd596 100644 --- a/SampleBots/Inputs_Samples/NumberInput/NumberInput.dialog +++ b/SampleBots/Inputs_Samples/NumberInput/NumberInput.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "272503", "updatedAt": "2019-07-22T07:51:20.256Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.NumberInput", "$designer": { @@ -54,7 +51,7 @@ "prompt": "2 * 2.2 equals?", "maxTurnCount": 2147483647, "alwaysPrompt": true, - "allowInterruptions": false, + "allowInterruptions": "never", "outputFormat": "float", "defaultLocale": "en-us" }, @@ -66,7 +63,7 @@ "id": "622462" }, "condition": "(user.result - 4.4) < 0.0000001", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -77,7 +74,7 @@ "activity": "[bfdactivity-284482]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Inputs_Samples/OAuthInput/OAuthInput.dialog b/SampleBots/Inputs_Samples/OAuthInput/OAuthInput.dialog index 4ec44becde..4d5fc978ac 100644 --- a/SampleBots/Inputs_Samples/OAuthInput/OAuthInput.dialog +++ b/SampleBots/Inputs_Samples/OAuthInput/OAuthInput.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "823674", "updatedAt": "2019-07-22T07:51:27.421Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -26,7 +23,7 @@ "id": "245482" }, "condition": "user.token == null", - "steps": [ + "actions": [ { "$type": "Microsoft.OAuthInput", "$designer": { diff --git a/SampleBots/Inputs_Samples/TextInput/TextInput.dialog b/SampleBots/Inputs_Samples/TextInput/TextInput.dialog index 13e587aee1..e30cfce552 100644 --- a/SampleBots/Inputs_Samples/TextInput/TextInput.dialog +++ b/SampleBots/Inputs_Samples/TextInput/TextInput.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "235447", "updatedAt": "2019-07-22T07:51:38.546Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { diff --git a/SampleBots/Inputs_Samples/common/common.lg b/SampleBots/Inputs_Samples/common/common.lg index 448d5cbf78..fd1268efe3 100644 --- a/SampleBots/Inputs_Samples/common/common.lg +++ b/SampleBots/Inputs_Samples/common/common.lg @@ -1,7 +1,7 @@ # help -``` Welcome to Input Sample Bot. - I can show you examples on how to use Steps, You can enter number 01-04 + I can show you examples on how to use actions, You can enter number 01-04 [Suggestions=TextInput|NumberInput|ConfirmInput|ChoiceInput|AttachmentInput|DateTimeInput|OAuthInput] 01 - TextInput 02 - NumberInput diff --git a/SampleBots/Interrupt/GetProfile/GetProfile.dialog b/SampleBots/Interrupt/GetProfile/GetProfile.dialog index 3dad91fb29..61bcabf9e4 100644 --- a/SampleBots/Interrupt/GetProfile/GetProfile.dialog +++ b/SampleBots/Interrupt/GetProfile/GetProfile.dialog @@ -7,18 +7,15 @@ "name": "GetProfile" }, "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "name": "Handle an Event", "id": "151697", "updatedAt": "2019-08-02T21:23:15.465Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { @@ -74,14 +71,14 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "name": "Handle an Intent", "id": "661298", "updatedAt": "2019-08-02T21:43:30.949Z" }, "intent": "Why", - "steps": [ + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -90,7 +87,7 @@ "updatedAt": "2019-08-02T21:43:47.008Z" }, "condition": "exists(user.profile.name)", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -101,7 +98,7 @@ "activity": "[bfdactivity-907674]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -116,14 +113,14 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "name": "Handle an Intent", "id": "449648", "updatedAt": "2019-08-02T21:43:34.915Z" }, "intent": "NoValue", - "steps": [ + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -132,7 +129,7 @@ "updatedAt": "2019-08-02T21:45:15.030Z" }, "condition": "exists(user.profile.name)", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -153,7 +150,7 @@ "value": "30" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Interrupt/Main/Main.dialog b/SampleBots/Interrupt/Main/Main.dialog index a116988bbd..44962bf8ef 100644 --- a/SampleBots/Interrupt/Main/Main.dialog +++ b/SampleBots/Interrupt/Main/Main.dialog @@ -8,16 +8,16 @@ }, "autoEndDialog": true, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "id": "376720", "name": "Welcome user", "updatedAt": "2019-08-02T20:09:41.562Z" }, "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -30,14 +30,14 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "name": "Handle an Intent", "id": "629539", "updatedAt": "2019-08-02T20:26:11.592Z" }, "intent": "GetStarted", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "$designer": { @@ -50,23 +50,23 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "name": "Handle an Intent", "id": "921175", "updatedAt": "2019-08-02T20:26:16.856Z" }, "intent": "ResetProfile", - "steps": [ + "actions": [ { - "$type": "Microsoft.EditSteps", + "$type": "Microsoft.EditActions", "$designer": { "name": "Modify active dialog", "id": "216094", "updatedAt": "2019-08-06T13:56:16.000Z" }, "changeType": "ReplaceSequence", - "steps": [ + "actions": [ { "$type": "Microsoft.DeleteProperty", "$designer": { @@ -90,14 +90,14 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "name": "Handle an Intent", "id": "870441", "updatedAt": "2019-08-02T20:26:22.051Z" }, "intent": "Cancel", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -117,14 +117,14 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "name": "Handle an Intent", "id": "171791", "updatedAt": "2019-08-02T20:29:37.653Z" }, "intent": "ShowProfile", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -142,7 +142,7 @@ "updatedAt": "2019-08-06T00:33:52.643Z" }, "condition": "user.profile != null && (user.profile.name != null || user.profile.age != null)", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -153,7 +153,7 @@ "activity": "[bfdactivity-309274]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -168,14 +168,14 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "name": "Handle an Intent", "id": "160085", "updatedAt": "2019-08-06T00:31:55.445Z" }, "intent": "Help", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Interrupt/Main/Main.lu b/SampleBots/Interrupt/Main/Main.lu index 3d6f7b44b3..ca00a16bd1 100644 --- a/SampleBots/Interrupt/Main/Main.lu +++ b/SampleBots/Interrupt/Main/Main.lu @@ -1,32 +1,32 @@ >To learn more about the LU file format, read the documentation at > https://github.com/Microsoft/botbuilder-tools/blob/master/packages/Ludown/docs/lu-file-format.md#lu-file-format -# GetStarted +## GetStarted - Get started - let's get started - hi - hello - howdy -# ResetProfile +## ResetProfile - reset profile - please reset profile - forget me -# Cancel +## Cancel - Cancel - Please cancel that - Abort - Stop that -# ShowProfile +## ShowProfile - What do you know about me? - Show profile - Show my profile - What information do you have about me? - what do you know about me? -# Help +## Help - Help - what can you do? - who are you? diff --git a/SampleBots/Message_Samples/LGComposition/LGComposition.dialog b/SampleBots/Message_Samples/LGComposition/LGComposition.dialog index ceec3929a1..43eef09452 100644 --- a/SampleBots/Message_Samples/LGComposition/LGComposition.dialog +++ b/SampleBots/Message_Samples/LGComposition/LGComposition.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "432892", "updatedAt": "2019-07-22T07:54:16.386Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { @@ -27,7 +24,7 @@ }, "property": "user.name", "prompt": "Hello, I'm Zoidberg. What is your name?", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": false, "allowInterruptions": "never", "outputFormat": "none" diff --git a/SampleBots/Message_Samples/LGWithParam/LGWithParam.dialog b/SampleBots/Message_Samples/LGWithParam/LGWithParam.dialog index 22a45cbbda..28d80a568d 100644 --- a/SampleBots/Message_Samples/LGWithParam/LGWithParam.dialog +++ b/SampleBots/Message_Samples/LGWithParam/LGWithParam.dialog @@ -8,17 +8,14 @@ "autoEndDialog": true, "generator": "common.lg", "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "514780", "updatedAt": "2019-07-22T07:54:25.331Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { @@ -28,7 +25,7 @@ }, "property": "user.name", "prompt": "Hello, I'm Zoidberg. What is your name?", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": false, "allowInterruptions": "never", "outputFormat": "none" diff --git a/SampleBots/Message_Samples/Main/Main.dialog b/SampleBots/Message_Samples/Main/Main.dialog index 70924a1ffa..49adc05e17 100644 --- a/SampleBots/Message_Samples/Main/Main.dialog +++ b/SampleBots/Message_Samples/Main/Main.dialog @@ -7,149 +7,15 @@ }, "autoEndDialog": false, "generator": "common.lg", - "steps": [ + "events": [ { - "$type": "Microsoft.ChoiceInput", - "$designer": { - "createdAt": "2019-07-16T19:33:40.769Z", - "updatedAt": "2019-07-16T19:33:46.468Z", - "id": "289770" - }, - "property": "user.choice", - "prompt": "What type of message would you like to send?", - "maxTurnCount": 0, - "alwaysPrompt": true, - "allowInterruptions": "never", - "outputFormat": "value", - "choices": [ - { - "value": "Simple Text" - }, - { - "value": "Text With Memory" - }, - { - "value": "Text With LG" - }, - { - "value": "LGWithParam" - }, - { - "value": "LGComposition" - } - ], - "appendChoices": true, - "defaultLocale": "en-us", - "style": "List", - "choiceOptions": { - "inlineSeparator": ", ", - "inlineOr": " or ", - "inlineOrMore": ", or ", - "includeNumbers": true - }, - "recognizerOptions": { - "noValue": false - } - }, - { - "$type": "Microsoft.SwitchCondition", - "$designer": { - "createdAt": "2019-07-16T19:33:48.266Z", - "updatedAt": "2019-07-16T19:33:52.059Z", - "id": "981997" - }, - "condition": "user.choice", - "cases": [ - { - "value": "Simple Text", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "$designer": { - "createdAt": "2019-07-16T19:33:53.985Z", - "updatedAt": "2019-07-16T19:33:58.958Z", - "id": "256544" - }, - "dialog": "SimpleText" - } - ] - }, - { - "value": "Text With Memory", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "$designer": { - "createdAt": "2019-07-16T19:34:01.452Z", - "updatedAt": "2019-07-16T19:34:04.489Z", - "id": "598449" - }, - "dialog": "TextWithMemory" - } - ] - }, - { - "value": "Text With LG", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "$designer": { - "createdAt": "2019-07-16T19:34:07.118Z", - "updatedAt": "2019-07-16T19:34:11.776Z", - "id": "791050" - }, - "dialog": "TextWithLG" - } - ] - }, - { - "value": "LGWithParam", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "$designer": { - "createdAt": "2019-07-16T19:34:14.518Z", - "updatedAt": "2019-07-16T19:34:20.351Z", - "id": "078497" - }, - "dialog": "LGWithParam" - } - ] - }, - { - "value": "LGComposition", - "steps": [ - { - "$type": "Microsoft.BeginDialog", - "$designer": { - "createdAt": "2019-07-16T19:34:22.754Z", - "updatedAt": "2019-07-16T19:34:27.469Z", - "id": "349641" - }, - "dialog": "LGComposition" - } - ] - } - ] - }, - { - "$type": "Microsoft.RepeatDialog", - "$designer": { - "createdAt": "2019-07-16T19:34:30.447Z", - "updatedAt": "2019-07-16T19:34:34.636Z", - "id": "938048" - } - } - ], - "rules": [ - { - "$type": "Microsoft.UnknownIntentRule", + "$type": "Microsoft.OnUnknownIntent", "$designer": { "createdAt": "2019-07-16T19:35:20.436Z", "updatedAt": "2019-07-16T19:35:25.861Z", "id": "807187" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -162,14 +28,14 @@ ] }, { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "name": "Handle ConversationUpdate", "id": "452701", "updatedAt": "2019-07-18T10:34:46.562Z" }, "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -180,6 +46,143 @@ "activity": "[bfdactivity-576166]" } ] + }, + { + "$type": "Microsoft.OnBeginDialog", + "actions": [ + { + "$type": "Microsoft.ChoiceInput", + "$designer": { + "createdAt": "2019-07-16T19:33:40.769Z", + "updatedAt": "2019-07-16T19:33:46.468Z", + "id": "289770" + }, + "property": "user.choice", + "prompt": "What type of message would you like to send?", + "maxTurnCount": 3, + "alwaysPrompt": true, + "allowInterruptions": "never", + "outputFormat": "value", + "choices": [ + { + "value": "Simple Text" + }, + { + "value": "Text With Memory" + }, + { + "value": "Text With LG" + }, + { + "value": "LGWithParam" + }, + { + "value": "LGComposition" + } + ], + "appendChoices": true, + "defaultLocale": "en-us", + "style": "List", + "choiceOptions": { + "inlineSeparator": ", ", + "inlineOr": " or ", + "inlineOrMore": ", or ", + "includeNumbers": true + }, + "recognizerOptions": { + "noValue": false + } + }, + { + "$type": "Microsoft.SwitchCondition", + "$designer": { + "createdAt": "2019-07-16T19:33:48.266Z", + "updatedAt": "2019-07-16T19:33:52.059Z", + "id": "981997" + }, + "condition": "user.choice", + "cases": [ + { + "value": "Simple Text", + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "$designer": { + "createdAt": "2019-07-16T19:33:53.985Z", + "updatedAt": "2019-07-16T19:33:58.958Z", + "id": "256544" + }, + "dialog": "SimpleText" + } + ] + }, + { + "value": "Text With Memory", + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "$designer": { + "createdAt": "2019-07-16T19:34:01.452Z", + "updatedAt": "2019-07-16T19:34:04.489Z", + "id": "598449" + }, + "dialog": "TextWithMemory" + } + ] + }, + { + "value": "Text With LG", + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "$designer": { + "createdAt": "2019-07-16T19:34:07.118Z", + "updatedAt": "2019-07-16T19:34:11.776Z", + "id": "791050" + }, + "dialog": "TextWithLG" + } + ] + }, + { + "value": "LGWithParam", + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "$designer": { + "createdAt": "2019-07-16T19:34:14.518Z", + "updatedAt": "2019-07-16T19:34:20.351Z", + "id": "078497" + }, + "dialog": "LGWithParam" + } + ] + }, + { + "value": "LGComposition", + "actions": [ + { + "$type": "Microsoft.BeginDialog", + "$designer": { + "createdAt": "2019-07-16T19:34:22.754Z", + "updatedAt": "2019-07-16T19:34:27.469Z", + "id": "349641" + }, + "dialog": "LGComposition" + } + ] + } + ] + }, + { + "$type": "Microsoft.RepeatDialog", + "$designer": { + "createdAt": "2019-07-16T19:34:30.447Z", + "updatedAt": "2019-07-16T19:34:34.636Z", + "id": "938048" + } + } + ] } ], "$schema": "../../app.schema" diff --git a/SampleBots/Message_Samples/SimpleText/SimpleText.dialog b/SampleBots/Message_Samples/SimpleText/SimpleText.dialog index 6fc4229fc1..fc79105ce7 100644 --- a/SampleBots/Message_Samples/SimpleText/SimpleText.dialog +++ b/SampleBots/Message_Samples/SimpleText/SimpleText.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "265236", "updatedAt": "2019-07-22T07:54:30.409Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Message_Samples/TextWithLG/TextWithLG.dialog b/SampleBots/Message_Samples/TextWithLG/TextWithLG.dialog index a6693216e9..deaa581ba9 100644 --- a/SampleBots/Message_Samples/TextWithLG/TextWithLG.dialog +++ b/SampleBots/Message_Samples/TextWithLG/TextWithLG.dialog @@ -8,18 +8,15 @@ "autoEndDialog": true, "generator": "common.lg", "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "createdAt": "2019-07-16T19:37:46.188Z", "updatedAt": "2019-07-16T19:37:51.260Z", "id": "105188" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Message_Samples/TextWithMemory/TextWithMemory.dialog b/SampleBots/Message_Samples/TextWithMemory/TextWithMemory.dialog index c47b594ce1..845d6911ae 100644 --- a/SampleBots/Message_Samples/TextWithMemory/TextWithMemory.dialog +++ b/SampleBots/Message_Samples/TextWithMemory/TextWithMemory.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "822789", "updatedAt": "2019-07-22T07:54:44.419Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { diff --git a/SampleBots/MyEmailBot_composer/DeleteContactInfo/DeleteContactInfo.dialog b/SampleBots/MyEmailBot_composer/DeleteContactInfo/DeleteContactInfo.dialog index c769e7e937..8525adc69b 100644 --- a/SampleBots/MyEmailBot_composer/DeleteContactInfo/DeleteContactInfo.dialog +++ b/SampleBots/MyEmailBot_composer/DeleteContactInfo/DeleteContactInfo.dialog @@ -7,18 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "createdAt": "2019-08-08T06:39:20.949Z", "updatedAt": "2019-08-08T06:39:20.967Z", "id": "987708" }, - "events": [ - "beginDialog" - ], - "steps": [ + "actions": [ { "$type": "Microsoft.DeleteProperty", "property": "user.recipient", diff --git a/SampleBots/MyEmailBot_composer/DeleteForwardInfo/DeleteForwardInfo.dialog b/SampleBots/MyEmailBot_composer/DeleteForwardInfo/DeleteForwardInfo.dialog index 3df2d01887..091b179c19 100644 --- a/SampleBots/MyEmailBot_composer/DeleteForwardInfo/DeleteForwardInfo.dialog +++ b/SampleBots/MyEmailBot_composer/DeleteForwardInfo/DeleteForwardInfo.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.DeleteProperty", "property": "user.fwSubject", @@ -24,9 +24,6 @@ } } ], - "events": [ - "beginDialog" - ], "$designer": { "createdAt": "2019-08-08T06:58:34.761Z", "updatedAt": "2019-08-08T06:58:34.781Z", diff --git a/SampleBots/MyEmailBot_composer/DeleteReplyInfo/DeleteReplyInfo.dialog b/SampleBots/MyEmailBot_composer/DeleteReplyInfo/DeleteReplyInfo.dialog index d588a1497f..c4f71c2a3c 100644 --- a/SampleBots/MyEmailBot_composer/DeleteReplyInfo/DeleteReplyInfo.dialog +++ b/SampleBots/MyEmailBot_composer/DeleteReplyInfo/DeleteReplyInfo.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.DeleteProperty", "property": "user.toSubject", @@ -24,9 +24,6 @@ } } ], - "events": [ - "beginDialog" - ], "$designer": { "createdAt": "2019-08-08T06:59:23.316Z", "updatedAt": "2019-08-08T06:59:23.330Z", diff --git a/SampleBots/MyEmailBot_composer/DeleteSendInfo/DeleteSendInfo.dialog b/SampleBots/MyEmailBot_composer/DeleteSendInfo/DeleteSendInfo.dialog index f03f0a03aa..423ed7dd84 100644 --- a/SampleBots/MyEmailBot_composer/DeleteSendInfo/DeleteSendInfo.dialog +++ b/SampleBots/MyEmailBot_composer/DeleteSendInfo/DeleteSendInfo.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.DeleteProperty", "property": "user.subject", @@ -24,9 +24,6 @@ } } ], - "events": [ - "beginDialog" - ], "$designer": { "createdAt": "2019-08-08T06:53:37.746Z", "updatedAt": "2019-08-08T06:53:37.765Z", diff --git a/SampleBots/MyEmailBot_composer/EmailPage/EmailPage.dialog b/SampleBots/MyEmailBot_composer/EmailPage/EmailPage.dialog index 03c2fd372f..3c969a233b 100644 --- a/SampleBots/MyEmailBot_composer/EmailPage/EmailPage.dialog +++ b/SampleBots/MyEmailBot_composer/EmailPage/EmailPage.dialog @@ -3,17 +3,32 @@ "autoEndDialog": false, "recognizer": { "$type": "Microsoft.RegexRecognizer", - "intents": { - "ShowEmailIntent": "(?i)show inbox email", - "SendEmailIntent": "(?i)send email", - "SentItemsIntent": "(?i)show sent items" - } + "intents":[ + { + + "$type": "Microsoft.IntentPattern", + "intent": "ShowEmailIntent", + "pattern": "(?i)show inbox email" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "SendEmailIntent", + "pattern": "(?i)send email" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "SentItemsIntent", + "pattern": "(?i)show sent items" + } + ] }, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.TextInput", "outputFormat": "none", @@ -37,9 +52,6 @@ } } ], - "events": [ - "beginDialog" - ], "$designer": { "createdAt": "2019-08-08T07:00:15.777Z", "updatedAt": "2019-08-08T07:00:15.790Z", @@ -47,8 +59,8 @@ } }, { - "$type": "Microsoft.IntentRule", - "steps": [ + "$type": "Microsoft.OnIntent", + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ShowMyEmail", @@ -67,8 +79,8 @@ } }, { - "$type": "Microsoft.IntentRule", - "steps": [ + "$type": "Microsoft.OnIntent", + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ShowSentItems" @@ -82,8 +94,8 @@ } }, { - "$type": "Microsoft.IntentRule", - "steps": [ + "$type": "Microsoft.OnIntent", + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "SendMyEmail" diff --git a/SampleBots/MyEmailBot_composer/FindMyContact/FindMyContact.dialog b/SampleBots/MyEmailBot_composer/FindMyContact/FindMyContact.dialog index e677738b96..09119dc32a 100644 --- a/SampleBots/MyEmailBot_composer/FindMyContact/FindMyContact.dialog +++ b/SampleBots/MyEmailBot_composer/FindMyContact/FindMyContact.dialog @@ -2,10 +2,10 @@ "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "DeleteContactInfo", @@ -41,7 +41,7 @@ { "$type": "Microsoft.IfCondition", "condition": "not(contains(user.recipient, '@'))", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "GetRecipientFromGraph", @@ -63,7 +63,7 @@ { "$type": "Microsoft.IfCondition", "condition": "count(user.intentRecipient.value) != 1", - "steps": [ + "actions": [ { "$type": "Microsoft.RepeatDialog", "$designer": { @@ -99,7 +99,7 @@ "activity": "[bfdactivity-993453]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SetProperty", "property": "user.emailAddr", @@ -127,9 +127,6 @@ } } ], - "events": [ - "beginDialog" - ], "$designer": { "createdAt": "2019-08-08T07:01:31.939Z", "updatedAt": "2019-08-08T07:01:31.952Z", diff --git a/SampleBots/MyEmailBot_composer/ForwardMyEmail/ForwardMyEmail.dialog b/SampleBots/MyEmailBot_composer/ForwardMyEmail/ForwardMyEmail.dialog index 2b583d0e81..4adf87fdce 100644 --- a/SampleBots/MyEmailBot_composer/ForwardMyEmail/ForwardMyEmail.dialog +++ b/SampleBots/MyEmailBot_composer/ForwardMyEmail/ForwardMyEmail.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "OK! Let's Start To Forward this Email. ", @@ -78,7 +78,7 @@ { "$type": "Microsoft.IfCondition", "condition": "dialog.confirmed", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ForwardMyEmailThroughGraph" @@ -88,7 +88,7 @@ "activity": "Your Email has been Sent Succsessfully. " } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "activity": "[MissionCancel]" @@ -96,9 +96,6 @@ ] } ], - "events": [ - "beginDialog" - ], "$designer": { "createdAt": "2019-08-08T06:53:45.695Z", "updatedAt": "2019-08-08T06:53:45.714Z", diff --git a/SampleBots/MyEmailBot_composer/ForwardMyEmailThroughGraph/ForwardMyEmailThroughGraph.dialog b/SampleBots/MyEmailBot_composer/ForwardMyEmailThroughGraph/ForwardMyEmailThroughGraph.dialog index 019d4636bf..8fbcf445e0 100644 --- a/SampleBots/MyEmailBot_composer/ForwardMyEmailThroughGraph/ForwardMyEmailThroughGraph.dialog +++ b/SampleBots/MyEmailBot_composer/ForwardMyEmailThroughGraph/ForwardMyEmailThroughGraph.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.HttpRequest", "method": "POST", @@ -30,9 +30,6 @@ } } ], - "events": [ - "beginDialog" - ], "$designer": { "createdAt": "2019-08-08T06:53:50.746Z", "updatedAt": "2019-08-08T06:53:50.759Z", diff --git a/SampleBots/MyEmailBot_composer/GetMyEmail/GetMyEmail.dialog b/SampleBots/MyEmailBot_composer/GetMyEmail/GetMyEmail.dialog index 4eff074bad..fff0a6bee3 100644 --- a/SampleBots/MyEmailBot_composer/GetMyEmail/GetMyEmail.dialog +++ b/SampleBots/MyEmailBot_composer/GetMyEmail/GetMyEmail.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.EditArray", "changeType": "Clear", @@ -24,24 +24,21 @@ "$type": "Microsoft.EditArray", "changeType": "Push", "arrayProperty": "user.emails", - "value": "user.getGraphEmails.value[{user.pages}*{user.itemsPerPage}]" + "value": "user.getGraphEmails.value[user.pages*user.itemsPerPage]" }, { "$type": "Microsoft.EditArray", "changeType": "Push", "arrayProperty": "user.emails", - "value": "user.getGraphEmails.value[{user.pages}*{user.itemsPerPage}+1]" + "value": "user.getGraphEmails.value[user.pages*user.itemsPerPage+1]" }, { "$type": "Microsoft.EditArray", "changeType": "Push", "arrayProperty": "user.emails", - "value": "user.getGraphEmails.value[{user.pages}*{user.itemsPerPage}+2]" + "value": "user.getGraphEmails.value[user.pages*user.itemsPerPage+2]" } ], - "events": [ - "beginDialog" - ], "$designer": { "createdAt": "2019-08-08T07:01:26.311Z", "updatedAt": "2019-08-08T07:01:26.323Z", diff --git a/SampleBots/MyEmailBot_composer/GetMyEmailFromGraph/GetMyEmailFromGraph.dialog b/SampleBots/MyEmailBot_composer/GetMyEmailFromGraph/GetMyEmailFromGraph.dialog index e070a0e6bf..ffac9de402 100644 --- a/SampleBots/MyEmailBot_composer/GetMyEmailFromGraph/GetMyEmailFromGraph.dialog +++ b/SampleBots/MyEmailBot_composer/GetMyEmailFromGraph/GetMyEmailFromGraph.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.HttpRequest", "url": "https://graph.microsoft.com/beta/me/mailFolders/inbox/messages", @@ -15,9 +15,6 @@ "Property": "user.getGraphEmails" } ], - "events": [ - "beginDialog" - ], "$designer": { "createdAt": "2019-08-08T07:01:23.594Z", "updatedAt": "2019-08-08T07:01:23.607Z", diff --git a/SampleBots/MyEmailBot_composer/GetMySentItems/GetMySentItems.dialog b/SampleBots/MyEmailBot_composer/GetMySentItems/GetMySentItems.dialog index 932e4deb20..12e52001f2 100644 --- a/SampleBots/MyEmailBot_composer/GetMySentItems/GetMySentItems.dialog +++ b/SampleBots/MyEmailBot_composer/GetMySentItems/GetMySentItems.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.EditArray", "changeType": "Clear", @@ -24,24 +24,22 @@ "$type": "Microsoft.EditArray", "changeType": "Push", "arrayProperty": "user.sentItems", - "value": "user.getGraphSentItems.value[{user.sentPages}*{user.itemsPerPage}]" + "value": "user.getGraphSentItems.value[user.sentPages*user.itemsPerPage]" }, { "$type": "Microsoft.EditArray", "changeType": "Push", "arrayProperty": "user.sentItems", - "value": "user.getGraphSentItems.value[{user.sentPages}*{user.itemsPerPage}+1]" + "value": "user.getGraphSentItems.value[user.sentPages*user.itemsPerPage+1]" }, { "$type": "Microsoft.EditArray", "changeType": "Push", "arrayProperty": "user.sentItems", - "value": "user.getGraphSentItems.value[{user.sentPages}*{user.itemsPerPage}+2]" + "value": "user.getGraphSentItems.value[user.sentPages*user.itemsPerPage+2]" } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:01:21.073Z", "updatedAt": "2019-08-08T07:01:21.087Z", diff --git a/SampleBots/MyEmailBot_composer/GetRecipientFromGraph/GetRecipientFromGraph.dialog b/SampleBots/MyEmailBot_composer/GetRecipientFromGraph/GetRecipientFromGraph.dialog index 0f28e5429f..35a01b4a06 100644 --- a/SampleBots/MyEmailBot_composer/GetRecipientFromGraph/GetRecipientFromGraph.dialog +++ b/SampleBots/MyEmailBot_composer/GetRecipientFromGraph/GetRecipientFromGraph.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.HttpRequest", "url": "https://graph.microsoft.com/v1.0/me/contacts?$filter=startswith(displayName,'{user.recipient}')or startswith(surname, '{user.recipient}')", @@ -15,9 +15,7 @@ "Property": "user.intentRecipient" } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:01:19.426Z", "updatedAt": "2019-08-08T07:01:19.437Z", diff --git a/SampleBots/MyEmailBot_composer/GetSentItemsFromGraph/GetSentItemsFromGraph.dialog b/SampleBots/MyEmailBot_composer/GetSentItemsFromGraph/GetSentItemsFromGraph.dialog index 9964a88093..cf8d042788 100644 --- a/SampleBots/MyEmailBot_composer/GetSentItemsFromGraph/GetSentItemsFromGraph.dialog +++ b/SampleBots/MyEmailBot_composer/GetSentItemsFromGraph/GetSentItemsFromGraph.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.HttpRequest", "method": "GET", @@ -20,9 +20,7 @@ } } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:01:16.786Z", "updatedAt": "2019-08-08T07:01:16.798Z", diff --git a/SampleBots/MyEmailBot_composer/Initialization/Initialization.dialog b/SampleBots/MyEmailBot_composer/Initialization/Initialization.dialog index 4c06a81874..96bcea5123 100644 --- a/SampleBots/MyEmailBot_composer/Initialization/Initialization.dialog +++ b/SampleBots/MyEmailBot_composer/Initialization/Initialization.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.SetProperty", "value": "3", @@ -68,9 +68,7 @@ } } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:01:13.154Z", "updatedAt": "2019-08-08T07:01:13.171Z", diff --git a/SampleBots/MyEmailBot_composer/Main/Main.dialog b/SampleBots/MyEmailBot_composer/Main/Main.dialog index 10fff4863b..45035768f2 100644 --- a/SampleBots/MyEmailBot_composer/Main/Main.dialog +++ b/SampleBots/MyEmailBot_composer/Main/Main.dialog @@ -3,16 +3,26 @@ "autoEndDialog": false, "recognizer": { "$type": "Microsoft.RegexRecognizer", - "intents": { - "SignInIntent": "(?i)sign in", - "HelpIntent": "(?i)help" - } + "intents":[ + { + + "$type": "Microsoft.IntentPattern", + "intent": "SignInIntent", + "pattern": "(?i)sign in" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "HelpIntent", + "pattern": "(?i)help" + } + ] }, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.TextInput", "prompt": "[WelcomeCard]", @@ -21,7 +31,7 @@ { "$type": "Microsoft.IfCondition", "condition": "isMatch(user.ans, '(?i)cancel')", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[MissionCancel]" @@ -35,9 +45,7 @@ "$type": "Microsoft.RepeatDialog" } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:26:47.918Z", "updatedAt": "2019-08-08T07:26:47.936Z", @@ -45,8 +53,8 @@ } }, { - "$type": "Microsoft.UnknownIntentRule", - "steps": [ + "$type": "Microsoft.OnUnknownIntent", + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[help]" @@ -59,8 +67,8 @@ } }, { - "$type": "Microsoft.IntentRule", - "steps": [ + "$type": "Microsoft.OnIntent", + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "Initialization", @@ -88,8 +96,8 @@ } }, { - "$type": "Microsoft.IntentRule", - "steps": [ + "$type": "Microsoft.OnIntent", + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/MyEmailBot_composer/ReplyMyEmail/ReplyMyEmail.dialog b/SampleBots/MyEmailBot_composer/ReplyMyEmail/ReplyMyEmail.dialog index 0278449bc2..ee4e97fe2f 100644 --- a/SampleBots/MyEmailBot_composer/ReplyMyEmail/ReplyMyEmail.dialog +++ b/SampleBots/MyEmailBot_composer/ReplyMyEmail/ReplyMyEmail.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "DeleteReplyInfo" @@ -44,7 +44,7 @@ { "$type": "Microsoft.IfCondition", "condition": "dialog.addTime", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "property": "user.toContent", @@ -88,7 +88,7 @@ { "$type": "Microsoft.IfCondition", "condition": "dialog.confirmed", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ReplyMyEmailThroughGraph", @@ -108,7 +108,7 @@ "activity": "[bfdactivity-477196]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -126,9 +126,7 @@ } } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:01:10.603Z", "updatedAt": "2019-08-08T07:01:10.610Z", diff --git a/SampleBots/MyEmailBot_composer/ReplyMyEmailThroughGraph/ReplyMyEmailThroughGraph.dialog b/SampleBots/MyEmailBot_composer/ReplyMyEmailThroughGraph/ReplyMyEmailThroughGraph.dialog index 6002f5523b..7c658aa864 100644 --- a/SampleBots/MyEmailBot_composer/ReplyMyEmailThroughGraph/ReplyMyEmailThroughGraph.dialog +++ b/SampleBots/MyEmailBot_composer/ReplyMyEmailThroughGraph/ReplyMyEmailThroughGraph.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.HttpRequest", "url": "https://graph.microsoft.com/v1.0/me/messages/{user.selectedEmail.id}/reply", @@ -18,9 +18,7 @@ "Property": "dialog.postResponse" } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:01:08.490Z", "updatedAt": "2019-08-08T07:01:08.502Z", diff --git a/SampleBots/MyEmailBot_composer/SendMyEmail/SendMyEmail.dialog b/SampleBots/MyEmailBot_composer/SendMyEmail/SendMyEmail.dialog index 20d887ada9..a3ec41fd8d 100644 --- a/SampleBots/MyEmailBot_composer/SendMyEmail/SendMyEmail.dialog +++ b/SampleBots/MyEmailBot_composer/SendMyEmail/SendMyEmail.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "DeleteSendInfo" @@ -38,7 +38,7 @@ { "$type": "Microsoft.IfCondition", "condition": "dialog.confirmed", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "SendMyEmailToGraph" @@ -48,7 +48,7 @@ "activity": "Your Email has been Sent Succsessfully. " } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "activity": "[MissionCancel]" @@ -56,9 +56,7 @@ ] } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:01:06.051Z", "updatedAt": "2019-08-08T07:01:06.063Z", diff --git a/SampleBots/MyEmailBot_composer/SendMyEmailToGraph/SendMyEmailToGraph.dialog b/SampleBots/MyEmailBot_composer/SendMyEmailToGraph/SendMyEmailToGraph.dialog index a2703e9bce..11ec02833a 100644 --- a/SampleBots/MyEmailBot_composer/SendMyEmailToGraph/SendMyEmailToGraph.dialog +++ b/SampleBots/MyEmailBot_composer/SendMyEmailToGraph/SendMyEmailToGraph.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.HttpRequest", "url": "https://graph.microsoft.com/v1.0/me/sendMail", @@ -31,9 +31,7 @@ "Property": "user.response" } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:01:04.468Z", "updatedAt": "2019-08-08T07:01:04.477Z", diff --git a/SampleBots/MyEmailBot_composer/ShowMyCurrentEmail/ShowMyCurrentEmail.dialog b/SampleBots/MyEmailBot_composer/ShowMyCurrentEmail/ShowMyCurrentEmail.dialog index 2ae3beb04e..e2207377e0 100644 --- a/SampleBots/MyEmailBot_composer/ShowMyCurrentEmail/ShowMyCurrentEmail.dialog +++ b/SampleBots/MyEmailBot_composer/ShowMyCurrentEmail/ShowMyCurrentEmail.dialog @@ -2,10 +2,10 @@ "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[ShowEmailCard(user.selectedEmail)]" @@ -34,7 +34,7 @@ "cases": [ { "value": "Reply This Email", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ReplyMyEmail", @@ -48,7 +48,7 @@ }, { "value": "Forward This Email", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ForwardMyEmail", @@ -66,9 +66,7 @@ ] } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:00:58.789Z", "updatedAt": "2019-08-08T07:00:58.799Z", diff --git a/SampleBots/MyEmailBot_composer/ShowMyEmail/ShowMyEmail.dialog b/SampleBots/MyEmailBot_composer/ShowMyEmail/ShowMyEmail.dialog index 0d79047296..0198ccf13f 100644 --- a/SampleBots/MyEmailBot_composer/ShowMyEmail/ShowMyEmail.dialog +++ b/SampleBots/MyEmailBot_composer/ShowMyEmail/ShowMyEmail.dialog @@ -2,10 +2,10 @@ "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": false, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ "GetMyEmail", { "$type": "Microsoft.SendActivity", @@ -85,7 +85,7 @@ "cases": [ { "value": "Show me the 1st Email. ", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "property": "user.selectedEmail", @@ -104,7 +104,7 @@ }, { "value": "Show me the 2nd Email. ", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "property": "user.selectedEmail", @@ -123,7 +123,7 @@ }, { "value": "Show me the 3rd Email. ", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "property": "user.selectedEmail", @@ -137,7 +137,7 @@ }, { "value": "Next Page. ", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ShowMyNextPage" @@ -146,7 +146,7 @@ }, { "value": "Last Page. ", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ShowMyLastPage" @@ -155,7 +155,7 @@ }, { "value": "Go back. ", - "steps": [ + "actions": [ { "$type": "Microsoft.EndDialog" } @@ -167,9 +167,7 @@ "$type": "Microsoft.RepeatDialog" } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:00:56.276Z", "updatedAt": "2019-08-08T07:00:56.283Z", diff --git a/SampleBots/MyEmailBot_composer/ShowMyLastPage/ShowMyLastPage.dialog b/SampleBots/MyEmailBot_composer/ShowMyLastPage/ShowMyLastPage.dialog index ef03ecede1..608814c274 100644 --- a/SampleBots/MyEmailBot_composer/ShowMyLastPage/ShowMyLastPage.dialog +++ b/SampleBots/MyEmailBot_composer/ShowMyLastPage/ShowMyLastPage.dialog @@ -1,14 +1,14 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.IfCondition", "condition": "equals(user.pages, 0)", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -39,9 +39,7 @@ "property": "user.pages" } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:00:52.754Z", "updatedAt": "2019-08-08T07:00:52.763Z", diff --git a/SampleBots/MyEmailBot_composer/ShowMyNextPage/ShowMyNextPage.dialog b/SampleBots/MyEmailBot_composer/ShowMyNextPage/ShowMyNextPage.dialog index 647d6bb9de..7f3a07a214 100644 --- a/SampleBots/MyEmailBot_composer/ShowMyNextPage/ShowMyNextPage.dialog +++ b/SampleBots/MyEmailBot_composer/ShowMyNextPage/ShowMyNextPage.dialog @@ -1,19 +1,17 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.SetProperty", "value": "user.pages + 1", "property": "user.pages" } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:00:50.884Z", "updatedAt": "2019-08-08T07:00:50.890Z", diff --git a/SampleBots/MyEmailBot_composer/ShowSentItems/ShowSentItems.dialog b/SampleBots/MyEmailBot_composer/ShowSentItems/ShowSentItems.dialog index ad90090e78..464fe6c83e 100644 --- a/SampleBots/MyEmailBot_composer/ShowSentItems/ShowSentItems.dialog +++ b/SampleBots/MyEmailBot_composer/ShowSentItems/ShowSentItems.dialog @@ -2,10 +2,10 @@ "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": false, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "GetMySentItems" @@ -69,7 +69,7 @@ "cases": [ { "value": "Show me the 1st Email. ", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "property": "user.selectedSentItems", @@ -88,7 +88,7 @@ }, { "value": "Show me the 2nd Email. ", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "property": "user.selectedSentItems", @@ -102,7 +102,7 @@ }, { "value": "Show me the 3rd Email. ", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "property": "user.selectedSentItems", @@ -116,7 +116,7 @@ }, { "value": "Next Page. ", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ShowSentNextPage" @@ -125,7 +125,7 @@ }, { "value": "Last Page. ", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ShowSentLastPage" @@ -134,7 +134,7 @@ }, { "value": "Go Back. ", - "steps": [ + "actions": [ { "$type": "Microsoft.EndDialog" } @@ -146,9 +146,7 @@ "$type": "Microsoft.RepeatDialog" } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:00:32.291Z", "updatedAt": "2019-08-08T07:00:32.305Z", diff --git a/SampleBots/MyEmailBot_composer/ShowSentLastPage/ShowSentLastPage.dialog b/SampleBots/MyEmailBot_composer/ShowSentLastPage/ShowSentLastPage.dialog index 1af2db6fdf..ec87c89d8e 100644 --- a/SampleBots/MyEmailBot_composer/ShowSentLastPage/ShowSentLastPage.dialog +++ b/SampleBots/MyEmailBot_composer/ShowSentLastPage/ShowSentLastPage.dialog @@ -1,14 +1,14 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.IfCondition", "condition": "user.sentPages == 0", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "This Is the First Page !" @@ -24,9 +24,7 @@ "property": "user.sentPages" } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:00:45.925Z", "updatedAt": "2019-08-08T07:00:45.932Z", diff --git a/SampleBots/MyEmailBot_composer/ShowSentNextPage/ShowSentNextPage.dialog b/SampleBots/MyEmailBot_composer/ShowSentNextPage/ShowSentNextPage.dialog index 838e4b6c7e..ffe261c1a5 100644 --- a/SampleBots/MyEmailBot_composer/ShowSentNextPage/ShowSentNextPage.dialog +++ b/SampleBots/MyEmailBot_composer/ShowSentNextPage/ShowSentNextPage.dialog @@ -1,10 +1,10 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.SetProperty", "property": "user.sentPages", @@ -16,9 +16,7 @@ } } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:00:43.392Z", "updatedAt": "2019-08-08T07:00:43.404Z", diff --git a/SampleBots/MyEmailBot_composer/SignInToGraph/SignInToGraph.dialog b/SampleBots/MyEmailBot_composer/SignInToGraph/SignInToGraph.dialog index aad0c8797d..688030ffaa 100644 --- a/SampleBots/MyEmailBot_composer/SignInToGraph/SignInToGraph.dialog +++ b/SampleBots/MyEmailBot_composer/SignInToGraph/SignInToGraph.dialog @@ -1,14 +1,14 @@ { "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.IfCondition", "condition": "dialog.token == null", - "steps": [ + "actions": [ { "$type": "Microsoft.OAuthInput", "timeout": "900000", @@ -54,9 +54,7 @@ } } ], - "events": [ - "beginDialog" - ], + "$designer": { "createdAt": "2019-08-08T07:00:40.216Z", "updatedAt": "2019-08-08T07:00:40.230Z", diff --git a/SampleBots/ReminderBot/AddReminder/AddReminder.dialog b/SampleBots/ReminderBot/AddReminder/AddReminder.dialog index 4121fce9e0..949ccc4ea8 100644 --- a/SampleBots/ReminderBot/AddReminder/AddReminder.dialog +++ b/SampleBots/ReminderBot/AddReminder/AddReminder.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "028243", "updatedAt": "2019-07-22T08:01:24.349Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -60,7 +58,7 @@ "id": "530560" }, "condition": "user.remindtime != null", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -72,7 +70,7 @@ "value": "user.remindtime.datetime[0].timex[0]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.DateTimeInput", "$designer": { @@ -131,7 +129,7 @@ "id": "819123" }, "condition": "user.confirmresult", - "steps": [ + "actions": [ { "$type": "Microsoft.HttpRequest", "$designer": { @@ -168,7 +166,7 @@ "dialog": "ClearUserData" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.BeginDialog", "$designer": { diff --git a/SampleBots/ReminderBot/ClearUserData/ClearUserData.dialog b/SampleBots/ReminderBot/ClearUserData/ClearUserData.dialog index d54b78e1d6..5216d955ef 100644 --- a/SampleBots/ReminderBot/ClearUserData/ClearUserData.dialog +++ b/SampleBots/ReminderBot/ClearUserData/ClearUserData.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../BotProject/CSharp/Schemas/app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "258852", "updatedAt": "2019-07-22T08:01:38.855Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.DeleteProperty", "$designer": { diff --git a/SampleBots/ReminderBot/DeleteReminder/DeleteReminder.dialog b/SampleBots/ReminderBot/DeleteReminder/DeleteReminder.dialog index 061f875732..8ae7d7ca63 100644 --- a/SampleBots/ReminderBot/DeleteReminder/DeleteReminder.dialog +++ b/SampleBots/ReminderBot/DeleteReminder/DeleteReminder.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "453840", "updatedAt": "2019-07-22T08:01:46.134Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -46,7 +44,7 @@ "id": "043822" }, "condition": "user.remindtime != null", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -80,7 +78,7 @@ "responseTypes": "json" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.TextInput", "$designer": { diff --git a/SampleBots/ReminderBot/Main/Main.dialog b/SampleBots/ReminderBot/Main/Main.dialog index 8832ea03e0..f7ea7a7ce8 100644 --- a/SampleBots/ReminderBot/Main/Main.dialog +++ b/SampleBots/ReminderBot/Main/Main.dialog @@ -9,30 +9,35 @@ "autoEndDialog": false, "recognizer": "Main.lu", "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "createdAt": "2019-07-08T08:29:34.449Z", "updatedAt": "2019-07-16T19:38:54.655Z", "id": "134916" }, "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", - "activity": "[help]" + "$designer": { + "createdAt": "2019-09-05T02:51:48.096Z", + "updatedAt": "2019-09-05T02:51:49.063Z", + "id": "060246" + }, + "activity": "[bfdactivity-060246]" } ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-08T08:28:10.898Z", "updatedAt": "2019-07-16T19:39:00.986Z", "id": "899834" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "$designer": { @@ -46,13 +51,13 @@ "intent": "AddReminder" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-08T08:28:19.739Z", "updatedAt": "2019-07-16T19:39:04.451Z", "id": "295024" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "$designer": { @@ -66,13 +71,13 @@ "intent": "DeleteReminder" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-08T08:28:40.553Z", "updatedAt": "2019-07-16T19:39:07.824Z", "id": "583948" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "$designer": { @@ -86,13 +91,13 @@ "intent": "DeleteAllReminders" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-08T08:28:45.611Z", "updatedAt": "2019-07-16T19:39:11.639Z", "id": "622298" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "$designer": { @@ -106,13 +111,13 @@ "intent": "ShowReminder" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-08T08:28:57.477Z", "updatedAt": "2019-07-16T19:39:15.047Z", "id": "597721" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[help]" @@ -121,13 +126,13 @@ "intent": "HelpIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-08T08:28:58.020Z", "updatedAt": "2019-07-16T19:39:18.070Z", "id": "720611" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "ok." @@ -139,13 +144,13 @@ "intent": "CancelIntent" }, { - "$type": "Microsoft.UnknownIntentRule", + "$type": "Microsoft.OnUnknownIntent", "$designer": { "createdAt": "2019-07-08T08:28:58.881Z", "updatedAt": "2019-07-16T19:39:23.811Z", "id": "146624" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "Hi! I'm a ToDo bot. Say \"add a todo named first\" to get started.", @@ -159,4 +164,4 @@ } ], "$schema": "../../app.schema" -} \ No newline at end of file +} diff --git a/SampleBots/ReminderBot/ShowReminder/ShowReminder.dialog b/SampleBots/ReminderBot/ShowReminder/ShowReminder.dialog index 7bff6ca36d..d6c5c0aa78 100644 --- a/SampleBots/ReminderBot/ShowReminder/ShowReminder.dialog +++ b/SampleBots/ReminderBot/ShowReminder/ShowReminder.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "560402", "updatedAt": "2019-07-22T08:01:54.930Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -26,7 +24,7 @@ "id": "755693" }, "condition": "user.index == null", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -58,7 +56,7 @@ "id": "999357" }, "condition": "user.remindtime != null", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -92,7 +90,7 @@ "responseTypes": "json" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.HttpRequest", "$designer": { @@ -134,7 +132,7 @@ "id": "633090" }, "condition": "(user.index + 1) * 5 < count(user.data)", - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -197,7 +195,7 @@ "id": "152409" }, "condition": "user.choice == true", - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -217,7 +215,7 @@ } } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/ReminderBot/common/common.lg b/SampleBots/ReminderBot/common/common.lg index 146c0bd3e4..2fb5d957ee 100644 --- a/SampleBots/ReminderBot/common/common.lg +++ b/SampleBots/ReminderBot/common/common.lg @@ -8,7 +8,7 @@ - IF: {count(singlepage) > 0} - ``` Your have following reminders: - @{join(foreach(singlepage, x, lgTemplate('showSingleReminder', x)), '\n')} + @{join(foreach(singlepage, x, showSingleReminder(x)), '\n')} ``` @@ -35,3 +35,7 @@ # bfdactivity-670207 -OK. + + +# bfdactivity-060246 +-[help] diff --git a/SampleBots/Sandwich/Main/Main.dialog b/SampleBots/Sandwich/Main/Main.dialog index b0651c5429..af0e5abeb6 100644 --- a/SampleBots/Sandwich/Main/Main.dialog +++ b/SampleBots/Sandwich/Main/Main.dialog @@ -3,17 +3,17 @@ "autoEndDialog": false, "recognizer": "Main.lu", "generator": "Main.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.IntentRule", - "steps": [ + "$type": "Microsoft.OnIntent", + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "OrderSandwich" } ], "intent": "OrderSandwich", - "$comment": "**** This is the start of top-level intent rules ****", + "$comment": "**** This is the start of top-level intent events ****", "$designer": { "createdAt": "2019-05-14T20:33:33.353Z", "updatedAt": "2019-05-14T20:33:33.451Z", @@ -21,9 +21,9 @@ } }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "SandwichOptions", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[SandwichOptions]" @@ -31,9 +31,9 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "BreadOptions", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[BreadOptions]" @@ -41,9 +41,9 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "ToppingOptions", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[ToppingOptions]" @@ -51,9 +51,9 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "CheeseOptions", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[CheeseOptions]" @@ -61,9 +61,9 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "Greeting", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[Greeting]" @@ -71,9 +71,8 @@ ] }, { - "$type": "Microsoft.EventRule", - "events": ["beginDialog"], - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[Initial]" diff --git a/SampleBots/Sandwich/OrderSandwich/OrderSandwich.dialog b/SampleBots/Sandwich/OrderSandwich/OrderSandwich.dialog index f56bf941b9..7f03a9ef26 100644 --- a/SampleBots/Sandwich/OrderSandwich/OrderSandwich.dialog +++ b/SampleBots/Sandwich/OrderSandwich/OrderSandwich.dialog @@ -2,11 +2,11 @@ "$type": "Microsoft.AdaptiveDialog", "autoEndDialog": true, "recognizer": "Main.lu", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "constraint": "@meat && ignore(!turn.setmeat)", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "Set conversation.order.meat to {@meat}" @@ -39,9 +39,9 @@ } }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "constraint": "@cheese && ignore(!turn.setcheese)", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "Set conversation.order.cheese to {@cheese}" @@ -72,12 +72,12 @@ } }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "@bread && ignore(!turn.setbread)", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "Set conversation.order.bread to {@bread}" @@ -100,12 +100,12 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "@topping && ignore(!turn.settopping)", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "Set conversation.order.topping to {join(foreach(@@topping, list, first(list)), ', ')}" @@ -128,12 +128,12 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "@confirmation && ignore(!turn.setconfirmation)", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "Set conversation.order.confirmation to {@confirmation}" @@ -157,12 +157,12 @@ }, { "$comment": "**** This is the start of prompts ****", - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "!conversation.order.meat && !conversation.order.bread", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[MeatAndBread]" @@ -170,12 +170,12 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "conversation.order.meat && conversation.order.bread && !conversation.order.cheese && !conversation.order.topping", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[CheeseAndToppingsWithMeatAndBread]" @@ -183,12 +183,12 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "!conversation.order.confirmation && conversation.order.meat && conversation.order.bread && conversation.order.cheese && conversation.order.topping", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[Confirmation]" @@ -196,13 +196,13 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "$comment": "Should update this to use actual http with failure.", "events": [ "recognizedIntent" ], "constraint": "conversation.order.confirmation == 'yes' && !conversation.order.alldone", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[BeingProcessed]" @@ -215,12 +215,12 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "conversation.order.confirmation == 'no'", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[StartAgain]" @@ -236,12 +236,12 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "$comment": "This is the kind of thing we should build in a default for.", "events": [ "recognizedIntent" ], - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[NoIntent]" @@ -249,12 +249,12 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "conversation.order.meat && conversation.order.cheese && !conversation.order.bread && !conversation.order.topping", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[BreadAndToppingsWithMeatAndCheese]" @@ -262,12 +262,12 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "!conversation.order.meat && conversation.order.bread", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[MeatWithBread]" @@ -276,12 +276,12 @@ }, { "$comment": "*** Ideally these would be a generic template rule against any slot value. ***", - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "!conversation.order.meat", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[Meat]" @@ -292,9 +292,9 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "constraint": "!conversation.order.cheese", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[Cheese]" @@ -310,12 +310,12 @@ } }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "!conversation.order.bread", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[Bread]" @@ -323,12 +323,12 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnDialogEvent", "events": [ "recognizedIntent" ], "constraint": "!conversation.order.topping", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "[Toppings]" diff --git a/SampleBots/Steps_Samples/Steps/Steps.dialog b/SampleBots/Steps_Samples/Actions/Actions.dialog similarity index 94% rename from SampleBots/Steps_Samples/Steps/Steps.dialog rename to SampleBots/Steps_Samples/Actions/Actions.dialog index a38714f76e..2e2241683e 100644 --- a/SampleBots/Steps_Samples/Steps/Steps.dialog +++ b/SampleBots/Steps_Samples/Actions/Actions.dialog @@ -6,17 +6,15 @@ "id": "126960" }, "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "218388", "updatedAt": "2019-07-22T08:05:04.387Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -80,7 +78,7 @@ "id": "634904" }, "condition": "user.age != null", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -91,7 +89,7 @@ "activity": "[bfdactivity-166131]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Steps_Samples/EditSteps/EditSteps.lu b/SampleBots/Steps_Samples/Actions/Actions.lu similarity index 100% rename from SampleBots/Steps_Samples/EditSteps/EditSteps.lu rename to SampleBots/Steps_Samples/Actions/Actions.lu diff --git a/SampleBots/Steps_Samples/EditSteps/EditSteps.dialog b/SampleBots/Steps_Samples/EditActions/EditActions.dialog similarity index 81% rename from SampleBots/Steps_Samples/EditSteps/EditSteps.dialog rename to SampleBots/Steps_Samples/EditActions/EditActions.dialog index 80a8d5e817..8d5e318b06 100644 --- a/SampleBots/Steps_Samples/EditSteps/EditSteps.dialog +++ b/SampleBots/Steps_Samples/EditActions/EditActions.dialog @@ -7,27 +7,25 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "createdAt": "2019-07-16T19:52:15.850Z", "updatedAt": "2019-07-16T19:52:21.863Z", "id": "250234" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { - "$type": "Microsoft.EditSteps", + "$type": "Microsoft.EditActions", "$designer": { "createdAt": "2019-07-16T19:52:15.850Z", "updatedAt": "2019-07-16T19:52:21.863Z", "id": "250234" }, - "changeType": "InsertSteps", - "steps": [ + "changeType": "Insertactions", + "actions": [ { "$type": "Microsoft.TextInput", "prompt": "Hello, I'm Zoidberg. What is your name?", @@ -36,14 +34,14 @@ ] }, { - "$type": "Microsoft.EditSteps", + "$type": "Microsoft.EditActions", "$designer": { "createdAt": "2019-07-01T21:33:10.633Z", "updatedAt": "2019-07-16T19:52:26.709Z", "id": "443878" }, - "changeType": "AppendSteps", - "steps": [ + "changeType": "Appendactions", + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "Goodbye!" diff --git a/SampleBots/Steps_Samples/Steps/Steps.lu b/SampleBots/Steps_Samples/EditActions/EditActions.lu similarity index 100% rename from SampleBots/Steps_Samples/Steps/Steps.lu rename to SampleBots/Steps_Samples/EditActions/EditActions.lu diff --git a/SampleBots/Steps_Samples/EditArray/EditArray.dialog b/SampleBots/Steps_Samples/EditArray/EditArray.dialog index 9f13106fe7..6aeabfa55f 100644 --- a/SampleBots/Steps_Samples/EditArray/EditArray.dialog +++ b/SampleBots/Steps_Samples/EditArray/EditArray.dialog @@ -6,18 +6,16 @@ "id": "395991" }, "autoEndDialog": true, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "createdAt": "2019-07-16T19:49:28.473Z", "updatedAt": "2019-07-16T19:50:52.267Z", "id": "356862" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -26,7 +24,7 @@ "id": "356862" }, "condition": "user.ids == null", - "steps": [ + "actions": [ { "$type": "Microsoft.InitProperty", "$designer": { @@ -91,7 +89,7 @@ "indexProperty": "dialog.index", "valueProperty": "dialog.value", "listProperty": "user.ids", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "{dialog.index}: {dialog.value}" @@ -117,13 +115,13 @@ "pageSize": "2", "valueProperty": "dialog.page", "listProperty": "user.ids", - "steps": [ + "actions": [ { "$type": "Microsoft.Foreach", "listProperty": "dialog.page", "indexProperty": "dialog.index", "valueProperty": "dialog.value", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "{dialog.index}: {dialog.value}" diff --git a/SampleBots/Steps_Samples/EmitEvent/EmitEvent.dialog b/SampleBots/Steps_Samples/EmitEvent/EmitEvent.dialog index 50370d27ac..11be4645bd 100644 --- a/SampleBots/Steps_Samples/EmitEvent/EmitEvent.dialog +++ b/SampleBots/Steps_Samples/EmitEvent/EmitEvent.dialog @@ -6,10 +6,10 @@ "id": "701087" }, "autoEndDialog": false, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", - "steps": [ + "$type": "Microsoft.OnBeginDialog", + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "CustomEvent Fired." @@ -25,15 +25,13 @@ } }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "360314", "updatedAt": "2019-07-22T08:03:52.948Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -55,16 +53,26 @@ "autoEndDialog": false, "recognizer": { "$type": "Microsoft.RegexRecognizer", - "intents": { - "EmitEvent": "emit", - "CowboyIntent": "moo" - } + "intents": [ + { + + "$type": "Microsoft.IntentPattern", + "intent": "EmitEvent", + "pattern": "emit" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "CowboyIntent", + "pattern": "moo" + } + ] }, - "rules": [ + "events": [ { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "EmitEvent", - "steps": [ + "actions": [ { "$type": "Microsoft.EmitEvent", "EventName": "CustomEvent", @@ -73,9 +81,9 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "CowboyIntent", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "Yippee ki-yay!" diff --git a/SampleBots/Steps_Samples/EndDialog/EndDialog.dialog b/SampleBots/Steps_Samples/EndDialog/EndDialog.dialog index ee6580302b..621c693449 100644 --- a/SampleBots/Steps_Samples/EndDialog/EndDialog.dialog +++ b/SampleBots/Steps_Samples/EndDialog/EndDialog.dialog @@ -8,18 +8,28 @@ "autoEndDialog": false, "recognizer": { "$type": "Microsoft.RegexRecognizer", - "intents": { - "JokeIntent": "(?i)joke", - "CancelIntent": "(?i)cancel|never mind" - } + "intents":[ + { + + "$type": "Microsoft.IntentPattern", + "intent": "JokeIntent", + "pattern": "(?i)joke" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "CancelIntent", + "pattern": "(?i)cancel|never mind" + } + ] }, - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "events": [ "cancelDialog" ], - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "ok." @@ -30,9 +40,9 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "intent": "JokeIntent", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "EndDialog.TellJoke" @@ -40,15 +50,13 @@ ] }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "917307", "updatedAt": "2019-07-22T08:04:02.873Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -57,7 +65,7 @@ "id": "964165" }, "condition": "user.name == null", - "steps": [ + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { diff --git a/SampleBots/Steps_Samples/EndDialog/TellJoke/EndDialog.TellJoke.dialog b/SampleBots/Steps_Samples/EndDialog/TellJoke/EndDialog.TellJoke.dialog index 4dd17ae6dd..d6c8a510ec 100644 --- a/SampleBots/Steps_Samples/EndDialog/TellJoke/EndDialog.TellJoke.dialog +++ b/SampleBots/Steps_Samples/EndDialog/TellJoke/EndDialog.TellJoke.dialog @@ -8,19 +8,24 @@ "autoEndDialog": true, "recognizer": { "$type": "Microsoft.RegexRecognizer", - "intents": { - "CancelIntent": "(?i)cancel|never mind" - } + "intents":[ + { + + "$type": "Microsoft.IntentPattern", + "intent": "CancelIntent", + "pattern": "(?i)cancel|never mind" + } + ] }, - "rules": [ + "events": [ { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:53:25.585Z", "updatedAt": "2019-07-16T19:53:31.381Z", "id": "241317" }, - "steps": [ + "actions": [ { "$type": "Microsoft.CancelAllDialogs" } @@ -28,15 +33,13 @@ "intent": "CancelIntent" }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "120822", "updatedAt": "2019-07-22T08:04:13.891Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Steps_Samples/EndTurn/EndTurn.dialog b/SampleBots/Steps_Samples/EndTurn/EndTurn.dialog index 4a83816bfb..71106fed86 100644 --- a/SampleBots/Steps_Samples/EndTurn/EndTurn.dialog +++ b/SampleBots/Steps_Samples/EndTurn/EndTurn.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "064818", "updatedAt": "2019-07-22T08:04:20.667Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Steps_Samples/HttpRequest/HttpRequest.dialog b/SampleBots/Steps_Samples/HttpRequest/HttpRequest.dialog index f11291dfcb..fa0b246a8b 100644 --- a/SampleBots/Steps_Samples/HttpRequest/HttpRequest.dialog +++ b/SampleBots/Steps_Samples/HttpRequest/HttpRequest.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "898827", "updatedAt": "2019-07-22T08:04:27.826Z" - }, - "events": [ - "beginDialog" - ], - "steps": [ + }, + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { @@ -50,7 +47,7 @@ }, "property": "user.petid", "prompt": "Now please enter the id of your pet, this could help you find your pet later.", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": false, "allowInterruptions": "never", "outputFormat": "none" @@ -83,7 +80,7 @@ "status": "available" }, "property": "user.postResponse", - "header": { + "headers": { "test": "test", "test2": "test2" } @@ -105,8 +102,8 @@ "id": "797897" }, "property": "user.id", - "prompt": "Now try to specify the id of your pet, and I will help your find it out from the store.", - "maxTurnCount": 0, + "prompt": "Now try to specify the id of your pet, and I will help your find it out from the store.", + "maxTurnCount": 3, "alwaysPrompt": false, "allowInterruptions": "never", "outputFormat": "none" diff --git a/SampleBots/Steps_Samples/IfCondition/IfCondition.dialog b/SampleBots/Steps_Samples/IfCondition/IfCondition.dialog index 27f6b09c8e..c8fbddc7a9 100644 --- a/SampleBots/Steps_Samples/IfCondition/IfCondition.dialog +++ b/SampleBots/Steps_Samples/IfCondition/IfCondition.dialog @@ -7,18 +7,16 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "createdAt": "2019-07-16T19:55:03.213Z", "updatedAt": "2019-07-16T19:55:06.022Z", "id": "475044" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -27,7 +25,7 @@ "id": "719594" }, "condition": "user.name == null", - "steps": [ + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { diff --git a/SampleBots/Steps_Samples/Main/Main.dialog b/SampleBots/Steps_Samples/Main/Main.dialog index 6bbde48b23..75a3f82e0b 100644 --- a/SampleBots/Steps_Samples/Main/Main.dialog +++ b/SampleBots/Steps_Samples/Main/Main.dialog @@ -8,35 +8,100 @@ "autoEndDialog": false, "recognizer": { "$type": "Microsoft.RegexRecognizer", - "intents": { - "Steps": "Steps|01", - "EndTurn": "EndTurn|02", - "IfCondition": "IfCondition|03", - "EditArray": "EditArray|04", - "EndDialog": "EndDialog|05", - "HttpRequest": "HttpRequest|06", - "SwitchCondition": "SwitchCondition|07", - "RepeatDialog": "RepeatDialog|08", - "TraceAndLog": "TraceAndLog|trace|log|09", - "EditSteps": "EditSteps|10", - "ReplaceDialog": "ReplaceDialog|11", - "EmitEvent": "EmitEvent|12", - "CancelIntent": "cancel" - } + "intents": [ + { + + "$type": "Microsoft.IntentPattern", + "intent": "Actions", + "pattern": "Actions|01" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "EndTurn", + "pattern": "EndTurn|02" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "IfCondition", + "pattern": "IfCondition|03" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "EditArray", + "pattern": "EditArray|04" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "EndDialog", + "pattern": "EndDialog|05" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "HttpRequest", + "pattern": "HttpRequest|06" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "SwitchCondition", + "pattern": "SwitchCondition|07" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "RepeatDialog", + "pattern": "RepeatDialog|08" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "TraceAndLog", + "pattern": "TraceAndLog|trace|log|09" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "EditActions", + "pattern": "EditActions|10" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "ReplaceDialog", + "pattern": "ReplaceDialog|11" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "EmitEvent", + "pattern": "EmitEvent|12" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "CancelIntent", + "pattern": "(?i)cancel|never mind" + } + ] }, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:47:51.216Z", "updatedAt": "2019-07-16T19:47:55.250Z", "id": "764307" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", - "dialog": "Steps", + "dialog": "Actions", "$designer": { "createdAt": "2019-07-22T07:32:51.372Z", "updatedAt": "2019-07-22T07:32:51.385Z", @@ -44,16 +109,16 @@ } } ], - "intent": "Steps" + "intent": "Actions" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:47:56.248Z", "updatedAt": "2019-07-16T19:47:59.827Z", "id": "691722" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "EndTurn" @@ -62,13 +127,13 @@ "intent": "EndTurn" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:48:01.339Z", "updatedAt": "2019-07-16T19:48:04.483Z", "id": "343907" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "IfCondition" @@ -77,13 +142,13 @@ "intent": "IfCondition" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:48:06.249Z", "updatedAt": "2019-07-16T19:48:12.601Z", "id": "608729" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "EndDialog" @@ -92,13 +157,13 @@ "intent": "EndDialog" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:48:13.837Z", "updatedAt": "2019-07-16T19:48:17.400Z", "id": "818726" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "EditArray" @@ -107,13 +172,13 @@ "intent": "EditArray" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:48:18.386Z", "updatedAt": "2019-07-16T19:48:21.918Z", "id": "894760" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "HttpRequest" @@ -122,13 +187,13 @@ "intent": "HttpRequest" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:48:23.804Z", "updatedAt": "2019-07-16T19:48:30.199Z", "id": "273555" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "SwitchCondition" @@ -137,13 +202,13 @@ "intent": "SwitchCondition" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:48:31.492Z", "updatedAt": "2019-07-16T19:48:35.496Z", "id": "277723" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "RepeatDialog" @@ -152,13 +217,13 @@ "intent": "RepeatDialog" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:48:36.440Z", "updatedAt": "2019-07-16T19:48:40.412Z", "id": "226996" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "TraceAndLog" @@ -167,28 +232,28 @@ "intent": "TraceAndLog" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:48:42.911Z", "updatedAt": "2019-07-16T19:48:46.325Z", "id": "602168" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", - "dialog": "EditSteps" + "dialog": "EditActions" } ], - "intent": "EditSteps" + "intent": "EditActions" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:48:48.073Z", "updatedAt": "2019-07-16T19:48:58.391Z", "id": "413376" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "Replace" @@ -197,13 +262,13 @@ "intent": "ReplaceDialog" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:48:55.889Z", "updatedAt": "2019-07-16T19:49:02.918Z", "id": "173056" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "EmitEvent" @@ -212,13 +277,13 @@ "intent": "EmitEvent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:49:03.945Z", "updatedAt": "2019-07-16T19:49:07.358Z", "id": "242117" }, - "steps": [ + "actions": [ { "$type": "Microsoft.EndDialog" } @@ -226,13 +291,13 @@ "intent": "CancelIntent" }, { - "$type": "Microsoft.UnknownIntentRule", + "$type": "Microsoft.OnUnknownIntent", "$designer": { "createdAt": "2019-07-01T21:30:37.124Z", "updatedAt": "2019-07-16T19:49:14.554Z", "id": "560915" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -245,14 +310,14 @@ ] }, { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "name": "Handle ConversationUpdate", "id": "954390", "updatedAt": "2019-07-18T11:25:59.878Z" }, "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Steps_Samples/RepeatDialog/RepeatDialog.dialog b/SampleBots/Steps_Samples/RepeatDialog/RepeatDialog.dialog index 6cd7295642..c07a017847 100644 --- a/SampleBots/Steps_Samples/RepeatDialog/RepeatDialog.dialog +++ b/SampleBots/Steps_Samples/RepeatDialog/RepeatDialog.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "099628", "updatedAt": "2019-07-22T08:04:38.805Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { diff --git a/SampleBots/Steps_Samples/ReplaceDialog/FortuneTellerDialog/FortuneTellerDialog.dialog b/SampleBots/Steps_Samples/ReplaceDialog/FortuneTellerDialog/FortuneTellerDialog.dialog index 6ac91843bd..97f021681b 100644 --- a/SampleBots/Steps_Samples/ReplaceDialog/FortuneTellerDialog/FortuneTellerDialog.dialog +++ b/SampleBots/Steps_Samples/ReplaceDialog/FortuneTellerDialog/FortuneTellerDialog.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "777661", "updatedAt": "2019-07-22T08:04:46.738Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Steps_Samples/ReplaceDialog/Replace.dialog b/SampleBots/Steps_Samples/ReplaceDialog/Replace.dialog index f942ece053..bd328bafa9 100644 --- a/SampleBots/Steps_Samples/ReplaceDialog/Replace.dialog +++ b/SampleBots/Steps_Samples/ReplaceDialog/Replace.dialog @@ -8,20 +8,30 @@ "autoEndDialog": false, "recognizer": { "$type": "Microsoft.RegexRecognizer", - "intents": { - "JokeIntent": "(?i)joke", - "FortuneTellerIntent": "(?i)fortune|future" - } + "intents": [ + { + + "$type": "Microsoft.IntentPattern", + "intent": "JokeIntent", + "pattern": "(?i)joke" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "FortuneTellerIntent", + "pattern": "(?i)fortune|future" + } + ] }, - "rules": [ + "events": [ { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:55:56.379Z", "updatedAt": "2019-07-16T19:56:03.854Z", "id": "563828" }, - "steps": [ + "actions": [ { "$type": "Microsoft.ReplaceDialog", "dialog": "TellJokeDialog" @@ -30,13 +40,13 @@ "intent": "JokeIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:56:04.841Z", "updatedAt": "2019-07-16T19:56:11.047Z", "id": "473201" }, - "steps": [ + "actions": [ { "$type": "Microsoft.ReplaceDialog", "dialog": "FortuneTellerDialog" @@ -45,15 +55,13 @@ "intent": "FortuneTellerIntent" }, { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "644475", "updatedAt": "2019-07-22T08:04:53.812Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -62,7 +70,7 @@ "id": "646692" }, "condition": "user.name == null", - "steps": [ + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { diff --git a/SampleBots/Steps_Samples/ReplaceDialog/TellJokeDialog/TellJokeDialog.dialog b/SampleBots/Steps_Samples/ReplaceDialog/TellJokeDialog/TellJokeDialog.dialog index 7cf4017d01..7a3276f174 100644 --- a/SampleBots/Steps_Samples/ReplaceDialog/TellJokeDialog/TellJokeDialog.dialog +++ b/SampleBots/Steps_Samples/ReplaceDialog/TellJokeDialog/TellJokeDialog.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "513313", "updatedAt": "2019-07-22T08:04:59.688Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Steps_Samples/SwitchCondition/SwitchCondition.dialog b/SampleBots/Steps_Samples/SwitchCondition/SwitchCondition.dialog index 85c9063033..65dc20c605 100644 --- a/SampleBots/Steps_Samples/SwitchCondition/SwitchCondition.dialog +++ b/SampleBots/Steps_Samples/SwitchCondition/SwitchCondition.dialog @@ -7,20 +7,20 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "851391", "updatedAt": "2019-07-22T08:05:10.334Z" }, "events": ["beginDialog"], - "steps": [ + "actions": [ { "$type": "Microsoft.ChoiceInput", "property": "user.style", "prompt": "Please select a value from below:", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": true, "allowInterruptions": "never", "outputFormat": "value", @@ -73,7 +73,7 @@ "cases": [ { "value": "Test1", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -87,7 +87,7 @@ }, { "value": "Test2", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -101,7 +101,7 @@ }, { "value": "Test3", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/Steps_Samples/TraceAndLog/TraceAndLog.dialog b/SampleBots/Steps_Samples/TraceAndLog/TraceAndLog.dialog index 8a7c36d6f8..8a23e68dbc 100644 --- a/SampleBots/Steps_Samples/TraceAndLog/TraceAndLog.dialog +++ b/SampleBots/Steps_Samples/TraceAndLog/TraceAndLog.dialog @@ -8,17 +8,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "044028", "updatedAt": "2019-07-22T08:05:18.175Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { @@ -26,9 +24,9 @@ "updatedAt": "2019-07-16T19:58:19.512Z", "id": "107670" }, - "outputBinding": "user.name", + "property": "user.name", "prompt": "Hello, what is your name?", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": false, "allowInterruptions": "never", "outputFormat": "none" @@ -41,10 +39,10 @@ "id": "774586" }, "valueType": "memory", - "value": "{user}" + "value": "user" }, { - "$type": "Microsoft.LogStep", + "$type": "Microsoft.LogAction", "$designer": { "createdAt": "2019-07-16T19:58:24.944Z", "updatedAt": "2019-07-16T19:58:29.674Z", diff --git a/SampleBots/Steps_Samples/common/common.lg b/SampleBots/Steps_Samples/common/common.lg index 8d2d05fdc1..d4ad030edc 100644 --- a/SampleBots/Steps_Samples/common/common.lg +++ b/SampleBots/Steps_Samples/common/common.lg @@ -1,8 +1,8 @@ # help - ``` - I can show you examples on how to use Steps. Enter the number next to the entity that you with to see in action. - [Suggestions=Steps|EndTurn|IfCondition|EditArray|EndDialog|HttpRequest|SwitchCondition|RepeatDialog|TraceAndLog|EditSteps|ReplaceDialog|EmitEvent] - 01 - Steps + I can show you examples on how to use actions. Enter the number next to the entity that you with to see in action. + [Suggestions=Actions|EndTurn|IfCondition|EditArray|EndDialog|HttpRequest|SwitchCondition|RepeatDialog|TraceAndLog|Editactions|ReplaceDialog|EmitEvent] + 01 - Actions 02 - EndTurn 03 - IfCondiftion 04 - EditArray, Foreach @@ -11,7 +11,7 @@ 07 - SwitchCondition 08 - RepeatDialog 09 - TraceAndLog - 10 - EditSteps + 10 - EditActions 11 - ReplaceDialog 12 - EmitEvent ``` @@ -50,10 +50,10 @@ -Great! Your pet's name is {user.petname} # bfdactivity-200761 --Done! You have added a pet named "{user.postResponse.name}" with id "{user.postResponse.id}" +-Done! You have added a pet named "{user.postResponse.content.name}" with id "{user.postResponse.content.id}" # bfdactivity-212615 --Great! I found your pet named "{user.getResponse.name}" +-Great! I found your pet named "{user.getResponse.content.name}" # bfdactivity-485963 -Hello {user.name}, nice to talk to you! diff --git a/SampleBots/ToDoBot/AddToDo/AddToDo.dialog b/SampleBots/ToDoBot/AddToDo/AddToDo.dialog index b361889121..ddc6de1024 100644 --- a/SampleBots/ToDoBot/AddToDo/AddToDo.dialog +++ b/SampleBots/ToDoBot/AddToDo/AddToDo.dialog @@ -7,17 +7,14 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "335456", "updatedAt": "2019-07-22T08:10:44.402Z" - }, - "events": [ - "beginDialog" - ], - "steps": [ + }, + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -27,7 +24,7 @@ }, "property": "dialog.todo", "value": "@title" - }, + }, { "$type": "Microsoft.TextInput", "$designer": { @@ -37,9 +34,9 @@ }, "property": "dialog.todo", "prompt": "OK, please enter the title of your todo.", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": false, - "allowInterruptions": "never", + "allowInterruptions": "always", "outputFormat": "none" }, { @@ -50,7 +47,7 @@ "id": "015420" }, "condition": "user.todos == null", - "steps": [ + "actions": [ { "$type": "Microsoft.InitProperty", "$designer": { diff --git a/SampleBots/ToDoBot/ClearToDos/ClearToDos.dialog b/SampleBots/ToDoBot/ClearToDos/ClearToDos.dialog index fca2c91b09..69a893e2b6 100644 --- a/SampleBots/ToDoBot/ClearToDos/ClearToDos.dialog +++ b/SampleBots/ToDoBot/ClearToDos/ClearToDos.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "480162", "updatedAt": "2019-07-22T08:10:50.068Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.EditArray", "$designer": { @@ -37,7 +35,7 @@ "id": "983761" }, "condition": "dialog.cleared", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -48,7 +46,7 @@ "activity": "[bfdactivity-832307]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/ToDoBot/DeleteToDo/DeleteToDo.dialog b/SampleBots/ToDoBot/DeleteToDo/DeleteToDo.dialog index c02134d912..df2da5f86b 100644 --- a/SampleBots/ToDoBot/DeleteToDo/DeleteToDo.dialog +++ b/SampleBots/ToDoBot/DeleteToDo/DeleteToDo.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "768658", "updatedAt": "2019-07-22T08:10:54.685Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -37,7 +35,7 @@ }, "property": "dialog.todo", "prompt": "OK, please enter the title of the todo you want to remove.", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": false, "allowInterruptions": "never", "outputFormat": "none" @@ -62,7 +60,7 @@ "id": "549615" }, "condition": "dialog.removed", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -73,7 +71,7 @@ "activity": "[bfdactivity-725469]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/ToDoBot/Main/Main.dialog b/SampleBots/ToDoBot/Main/Main.dialog index 06b2020fbe..eebaa13bf1 100644 --- a/SampleBots/ToDoBot/Main/Main.dialog +++ b/SampleBots/ToDoBot/Main/Main.dialog @@ -9,26 +9,56 @@ "autoEndDialog": false, "recognizer": { "$type": "Microsoft.RegexRecognizer", - "intents": { - "AddIntent": "(?i)(?:add|create) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?", - "ClearIntent": "(?i)(?:delete|remove|clear) (?:all|every) (?:to-dos|todos|tasks)", - "DeleteIntent": "(?i)(?:delete|remove|clear) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?", - "ShowIntent": "(?i)(?:show|see|view) .*(?:to-do|todo|task)", - "HelpIntent": "(?i)help", - "CancelIntent": "(?i)cancel|never mind" - } + "intents": [ + { + + "$type": "Microsoft.IntentPattern", + "intent": "AddIntent", + "pattern": "(?i)(?:add|create) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "ClearIntent", + "pattern": "(?i)(?:delete|remove|clear) (?:all|every) (?:to-dos|todos|tasks)" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "DeleteIntent", + "pattern": "(?i)(?:delete|remove|clear) .*(?:to-do|todo|task)(?: )?(?:named (?<title>.*))?" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "ShowIntent", + "pattern": "(?i)(?:show|see|view) .*(?:to-do|todo|task)" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "HelpIntent", + "pattern": "(?i)help" + }, + { + + "$type": "Microsoft.IntentPattern", + "intent": "CancelIntent", + "pattern": "(?i)cancel|never mind" + } + ] }, "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "createdAt": "2019-07-01T22:02:14.960Z", "updatedAt": "2019-07-16T20:00:24.788Z", "id": "376720" }, "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -41,13 +71,13 @@ ] }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:59:32.772Z", "updatedAt": "2019-07-16T19:59:36.277Z", "id": "064505" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "AddToDo" @@ -56,13 +86,13 @@ "intent": "AddIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:59:37.184Z", "updatedAt": "2019-08-01T23:46:50.759Z", "id": "114961" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "DeleteToDo", @@ -76,13 +106,13 @@ "intent": "DeleteIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:59:41.352Z", "updatedAt": "2019-07-16T19:59:44.427Z", "id": "088050" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ClearToDos" @@ -91,13 +121,13 @@ "intent": "ClearIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T19:59:50.315Z", "updatedAt": "2019-07-16T19:59:54.774Z", "id": "633942" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -111,13 +141,13 @@ "intent": "HelpIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T20:00:00.082Z", "updatedAt": "2019-07-16T20:00:03.344Z", "id": "794124" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ShowToDos" @@ -126,13 +156,13 @@ "intent": "ShowIntent" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T20:00:08.499Z", "updatedAt": "2019-07-16T20:00:12.504Z", "id": "179728" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "ok." @@ -144,13 +174,13 @@ "intent": "CancelIntent" }, { - "$type": "Microsoft.UnknownIntentRule", + "$type": "Microsoft.OnUnknownIntent", "$designer": { "createdAt": "2019-07-16T20:00:13.577Z", "updatedAt": "2019-07-16T20:00:19.435Z", "id": "677447" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "activity": "Hi! I'm a ToDo bot. Say \"add a todo named first\" to get started." diff --git a/SampleBots/ToDoBot/ShowToDos/ShowToDos.dialog b/SampleBots/ToDoBot/ShowToDos/ShowToDos.dialog index d3cc1f3713..9217e40755 100644 --- a/SampleBots/ToDoBot/ShowToDos/ShowToDos.dialog +++ b/SampleBots/ToDoBot/ShowToDos/ShowToDos.dialog @@ -7,17 +7,15 @@ }, "autoEndDialog": true, "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "783343", "updatedAt": "2019-07-22T08:11:00.380Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.IfCondition", "$designer": { @@ -26,7 +24,7 @@ "id": "662084" }, "condition": "user.todos == null", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -38,7 +36,7 @@ "activity": "[bfdactivity-339580]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/ToDoLuisBot/AddItem/AddItem.dialog b/SampleBots/ToDoLuisBot/AddItem/AddItem.dialog index 8ed68f04a6..b42caca31a 100644 --- a/SampleBots/ToDoLuisBot/AddItem/AddItem.dialog +++ b/SampleBots/ToDoLuisBot/AddItem/AddItem.dialog @@ -8,15 +8,14 @@ "autoEndDialog": true, "generator": "common.lg", "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "735800", "updatedAt": "2019-07-22T08:12:19.686Z" }, - "events": ["beginDialog"], - "steps": [ + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -45,7 +44,7 @@ "id": "965232" }, "condition": "dialog.listName != null && dialog.listName != \"shopping\" && dialog.listName != \"grocery\" && dialog.listName != \"todo\"", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -73,7 +72,7 @@ "id": "739777" }, "condition": "user.lists == null", - "steps": [ + "actions": [ { "$type": "Microsoft.InitProperty", "$designer": { @@ -94,7 +93,7 @@ "id": "431309" }, "condition": "dialog.listName == null", - "steps": [ + "actions": [ { "$type": "Microsoft.ChoiceInput", "$designer": { @@ -104,7 +103,7 @@ }, "property": "dialog.listName", "prompt": "Which list do you want to expand?", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": true, "allowInterruptions": "never", "outputFormat": "value", @@ -145,7 +144,7 @@ "id": "982253" }, "condition": "dialog.item == null", - "steps": [ + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { @@ -155,7 +154,7 @@ }, "property": "dialog.item", "prompt": "Please enter the title of your item.", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": false, "allowInterruptions": "never", "outputFormat": "none" @@ -170,7 +169,7 @@ "id": "075604" }, "condition": "(dialog.listName == \"shopping\" && user.lists.shopping == null) || (dialog.listName == \"grocery\" && user.lists.grocery == null) || (dialog.listName == \"todo\" && user.lists.todo == null)", - "steps": [ + "actions": [ { "$type": "Microsoft.InitProperty", "$designer": { @@ -178,7 +177,7 @@ "updatedAt": "2019-07-16T20:19:25.307Z", "id": "907210" }, - "property": "user.lists.{dialog.listName}", + "property": "getProperty(user.lists, dialog.listName)", "type": "array" } ] @@ -191,7 +190,7 @@ "id": "644924" }, "changeType": "Push", - "arrayProperty": "user.lists.{dialog.listName}", + "arrayProperty": "getProperty(user.lists, dialog.listName)", "value": "dialog.item" }, { diff --git a/SampleBots/ToDoLuisBot/DeleteItem/DeleteItem.dialog b/SampleBots/ToDoLuisBot/DeleteItem/DeleteItem.dialog index 03c20bb9e2..85339d563c 100644 --- a/SampleBots/ToDoLuisBot/DeleteItem/DeleteItem.dialog +++ b/SampleBots/ToDoLuisBot/DeleteItem/DeleteItem.dialog @@ -8,17 +8,15 @@ "autoEndDialog": true, "generator": "common.lg", "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "833026", "updatedAt": "2019-07-22T08:12:26.158Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -47,7 +45,7 @@ "id": "626333" }, "condition": "dialog.listName != null && dialog.listName != \"shopping\" && dialog.listName != \"grocery\" && dialog.listName != \"todo\"", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -75,7 +73,7 @@ "id": "082258" }, "condition": "dialog.listName == null", - "steps": [ + "actions": [ { "$type": "Microsoft.ChoiceInput", "$designer": { @@ -85,7 +83,7 @@ }, "property": "dialog.listName", "prompt": "Which list do you want to remove?", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": true, "allowInterruptions": false, "outputFormat": "value", @@ -142,7 +140,7 @@ "id": "297609" }, "condition": "user.lists == null", - "steps": [ + "actions": [ { "$type": "Microsoft.InitProperty", "$designer": { @@ -163,7 +161,7 @@ "id": "135758" }, "condition": "dialog.item == null", - "steps": [ + "actions": [ { "$type": "Microsoft.TextInput", "$designer": { @@ -173,7 +171,7 @@ }, "property": "dialog.item", "prompt": "Please enter the title of your item.", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": false, "allowInterruptions": "never", "outputFormat": "none" @@ -188,7 +186,7 @@ "id": "577484" }, "condition": "(dialog.listName == \"shopping\" && user.lists.shopping == null) || (dialog.listName == \"grocery\" && user.lists.grocery == null) || (dialog.listName == \"todo\" && user.lists.todo == null)", - "steps": [ + "actions": [ { "$type": "Microsoft.InitProperty", "$designer": { @@ -196,7 +194,7 @@ "updatedAt": "2019-07-16T20:17:39.938Z", "id": "678664" }, - "property": "user.lists.{dialog.listName}", + "property": "getProperty(user.lists, dialog.listName)", "type": "array" } ] @@ -209,7 +207,7 @@ "id": "451376" }, "changeType": "Remove", - "arrayProperty": "user.lists.{dialog.listName}", + "arrayProperty": "getProperty(user.lists, dialog.listName)", "value": "dialog.item" }, { diff --git a/SampleBots/ToDoLuisBot/Main/Main.dialog b/SampleBots/ToDoLuisBot/Main/Main.dialog index c2f881e913..b75e995a6c 100644 --- a/SampleBots/ToDoLuisBot/Main/Main.dialog +++ b/SampleBots/ToDoLuisBot/Main/Main.dialog @@ -10,31 +10,36 @@ "autoEndDialog": false, "recognizer": "Main.lu", "generator": "common.lg", - "rules": [ + "events": [ { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-04T07:31:13.192Z", "updatedAt": "2019-07-16T20:03:51.301Z", "id": "842277" }, "constraint": "#AddToDo.score>0.6", - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", - "dialog": "AddItem" + "dialog": "AddItem", + "$designer": { + "createdAt": "2019-09-05T08:31:25.267Z", + "updatedAt": "2019-09-05T08:31:25.279Z", + "id": "618477" + } } ], "intent": "AddToDo" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-04T07:31:14.654Z", "updatedAt": "2019-07-16T20:03:54.762Z", "id": "905057" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "DeleteItem" @@ -44,13 +49,13 @@ "constraint": "#DeleteToDo.score>0.6" }, { - "$type": "Microsoft.IntentRule", + "$type": "Microsoft.OnIntent", "$designer": { "createdAt": "2019-07-16T20:03:55.674Z", "updatedAt": "2019-07-16T20:03:58.931Z", "id": "735961" }, - "steps": [ + "actions": [ { "$type": "Microsoft.BeginDialog", "dialog": "ShowItems" @@ -60,13 +65,13 @@ "constraint": "#ShowToDo.score>0.6" }, { - "$type": "Microsoft.UnknownIntentRule", + "$type": "Microsoft.OnUnknownIntent", "$designer": { "createdAt": "2019-07-04T19:37:38.354Z", "updatedAt": "2019-07-16T20:04:06.035Z", "id": "265106" }, - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -79,14 +84,14 @@ ] }, { - "$type": "Microsoft.ConversationUpdateActivityRule", + "$type": "Microsoft.OnConversationUpdateActivity", "$designer": { "name": "Handle ConversationUpdate", "id": "954390", "updatedAt": "2019-08-02T03:17:42.774Z" }, "constraint": "toLower(turn.Activity.membersAdded[0].name) != 'bot'", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { diff --git a/SampleBots/ToDoLuisBot/ShowItems/ShowItems.dialog b/SampleBots/ToDoLuisBot/ShowItems/ShowItems.dialog index 3007569534..3346864bf3 100644 --- a/SampleBots/ToDoLuisBot/ShowItems/ShowItems.dialog +++ b/SampleBots/ToDoLuisBot/ShowItems/ShowItems.dialog @@ -8,17 +8,15 @@ "autoEndDialog": true, "generator": "common.lg", "$schema": "../../app.schema", - "rules": [ + "events": [ { - "$type": "Microsoft.EventRule", + "$type": "Microsoft.OnBeginDialog", "$designer": { "id": "515654", "updatedAt": "2019-07-22T08:12:34.596Z" }, - "events": [ - "beginDialog" - ], - "steps": [ + + "actions": [ { "$type": "Microsoft.SetProperty", "$designer": { @@ -37,7 +35,7 @@ "id": "049005" }, "condition": "user.lists == null", - "steps": [ + "actions": [ { "$type": "Microsoft.InitProperty", "$designer": { @@ -58,7 +56,7 @@ "id": "488882" }, "condition": "dialog.listName == null", - "steps": [ + "actions": [ { "$type": "Microsoft.ChoiceInput", "$designer": { @@ -68,7 +66,7 @@ }, "property": "dialog.listName", "prompt": "Which list do you want to show?", - "maxTurnCount": 0, + "maxTurnCount": 3, "alwaysPrompt": true, "allowInterruptions": false, "outputFormat": "value", @@ -125,7 +123,7 @@ "id": "064151" }, "condition": "(dialog.listName == \"shopping\" && user.lists.shopping == null) || (dialog.listName == \"grocery\" && user.lists.grocery == null) || (dialog.listName == \"todo\" && user.lists.todo == null)", - "steps": [ + "actions": [ { "$type": "Microsoft.SendActivity", "$designer": { @@ -136,7 +134,7 @@ "activity": "[bfdactivity-896478]" } ], - "elseSteps": [ + "elseActions": [ { "$type": "Microsoft.SendActivity", "$designer": {