@microsoft/agents-hosting-dialogs 1.3.0-beta.31.g024f219993 → 1.3.0-beta.40.g1dda8c3a1e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/choices/findValues.d.ts +0 -3
- package/dist/src/choices/findValues.js +0 -3
- package/dist/src/choices/findValues.js.map +1 -1
- package/dist/src/choices/recognizeChoices.js +53 -11
- package/dist/src/choices/recognizeChoices.js.map +1 -1
- package/dist/src/dialogHelper.d.ts +0 -7
- package/dist/src/dialogHelper.js +0 -1
- package/dist/src/dialogHelper.js.map +1 -1
- package/package.json +5 -3
- package/src/choices/findValues.ts +0 -3
- package/src/choices/recognizeChoices.ts +25 -11
- package/src/dialogHelper.ts +1 -1
- package/dist/src/template.d.ts +0 -18
- package/dist/src/template.js +0 -7
- package/dist/src/template.js.map +0 -1
- package/src/template.ts +0 -20
|
@@ -129,8 +129,5 @@ export interface SortedValue {
|
|
|
129
129
|
* Higher level functions like `findChoices()` and `recognizeChoices()` are layered above this function. In most
|
|
130
130
|
* cases its easier to just call one of the higher level functions instead but this function contains
|
|
131
131
|
* the fuzzy search algorithm that drives choice recognition.
|
|
132
|
-
*
|
|
133
|
-
* @internal
|
|
134
|
-
|
|
135
132
|
*/
|
|
136
133
|
export declare function findValues(utterance: string, values: SortedValue[], options?: FindValuesOptions): ModelResult<FoundValue>[];
|
|
@@ -14,9 +14,6 @@ const tokenizer_1 = require("./tokenizer");
|
|
|
14
14
|
* Higher level functions like `findChoices()` and `recognizeChoices()` are layered above this function. In most
|
|
15
15
|
* cases its easier to just call one of the higher level functions instead but this function contains
|
|
16
16
|
* the fuzzy search algorithm that drives choice recognition.
|
|
17
|
-
*
|
|
18
|
-
* @internal
|
|
19
|
-
|
|
20
17
|
*/
|
|
21
18
|
function findValues(utterance, values, options) {
|
|
22
19
|
function indexOfToken(token, startPos) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findValues.js","sourceRoot":"","sources":["../../../src/choices/findValues.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"findValues.js","sourceRoot":"","sources":["../../../src/choices/findValues.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.recognizeChoices = recognizeChoices;
|
|
4
37
|
/**
|
|
@@ -7,6 +40,7 @@ exports.recognizeChoices = recognizeChoices;
|
|
|
7
40
|
*/
|
|
8
41
|
const findChoices_1 = require("./findChoices");
|
|
9
42
|
const logger_1 = require("@microsoft/agents-activity/logger");
|
|
43
|
+
const Recognizers = __importStar(require("@microsoft/recognizers-text-number"));
|
|
10
44
|
const logger = (0, logger_1.debug)('dialogs:recognizeChoices');
|
|
11
45
|
/**
|
|
12
46
|
* High level function for recognizing a choice in a users utterance.
|
|
@@ -17,9 +51,17 @@ const logger = (0, logger_1.debug)('dialogs:recognizeChoices');
|
|
|
17
51
|
* @returns A list of found choices, sorted by most relevant first.
|
|
18
52
|
*/
|
|
19
53
|
function recognizeChoices(utterance, choices, options) {
|
|
54
|
+
var _a, _b;
|
|
20
55
|
function matchChoiceByIndex(match) {
|
|
21
56
|
try {
|
|
22
|
-
|
|
57
|
+
if (!match.resolution || match.resolution.value === undefined || match.resolution.value === null) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const value = Number(match.resolution.value);
|
|
61
|
+
if (!Number.isFinite(value) || !Number.isInteger(value)) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const index = value - 1;
|
|
23
65
|
if (index >= 0 && index < list.length) {
|
|
24
66
|
const choice = list[index];
|
|
25
67
|
matched.push({
|
|
@@ -57,24 +99,24 @@ function recognizeChoices(utterance, choices, options) {
|
|
|
57
99
|
// a numerical index or ordinal as well.
|
|
58
100
|
let matched = (0, findChoices_1.findChoices)(utterance, list, options);
|
|
59
101
|
if (matched.length === 0) {
|
|
60
|
-
//
|
|
102
|
+
// Try finding by ordinal
|
|
61
103
|
if (options.recognizeOrdinals) {
|
|
62
|
-
|
|
63
|
-
// const ordinals: ModelResult[] = Recognizers.recognizeOrdinal(utterance, options.locale ?? '')
|
|
64
|
-
const ordinals = [];
|
|
104
|
+
const ordinals = Recognizers.recognizeOrdinal(utterance, (_a = options.locale) !== null && _a !== void 0 ? _a : '');
|
|
65
105
|
ordinals.forEach(matchChoiceByIndex);
|
|
66
106
|
}
|
|
67
|
-
//
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
// const numbers: ModelResult[] = Recognizers.recognizeNumber(utterance, options.locale ?? '').forEach(matchChoiceByIndex)
|
|
71
|
-
const numbers = [];
|
|
107
|
+
// Try finding by numerical index
|
|
108
|
+
if (options.recognizeNumbers) {
|
|
109
|
+
const numbers = Recognizers.recognizeNumber(utterance, (_b = options.locale) !== null && _b !== void 0 ? _b : '');
|
|
72
110
|
numbers.forEach(matchChoiceByIndex);
|
|
73
111
|
}
|
|
74
|
-
// Sort
|
|
112
|
+
// Sort matches by position and remove duplicates
|
|
75
113
|
// - The results from findChoices() are already properly sorted so we just need this
|
|
76
114
|
// for ordinal & numerical lookups.
|
|
77
115
|
matched = matched.sort((a, b) => a.start - b.start);
|
|
116
|
+
// Remove duplicates with overlapping spans (keep the first match for each span)
|
|
117
|
+
matched = matched.filter((match, index, self) => index === self.findIndex((m) => m.start === match.start && m.end === match.end));
|
|
118
|
+
// Remove duplicates selecting the same choice (keep the first match for each choice index)
|
|
119
|
+
matched = matched.filter((match, index, self) => index === self.findIndex((m) => m.resolution.index === match.resolution.index));
|
|
78
120
|
}
|
|
79
121
|
return matched;
|
|
80
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recognizeChoices.js","sourceRoot":"","sources":["../../../src/choices/recognizeChoices.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recognizeChoices.js","sourceRoot":"","sources":["../../../src/choices/recognizeChoices.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,10 +23,3 @@ export declare function runDialog(dialog: Dialog, context: TurnContext, accessor
|
|
|
23
23
|
* @returns {Promise<DialogTurnResult>} a promise resolving to the dialog turn result.
|
|
24
24
|
*/
|
|
25
25
|
export declare function internalRun(context: TurnContext, dialogId: string, dialogContext: DialogContext, dialogStateManagerConfiguration?: DialogStateManagerConfiguration): Promise<DialogTurnResult>;
|
|
26
|
-
/**
|
|
27
|
-
* Recursively walk up the dialog context stack to find the active DC.
|
|
28
|
-
*
|
|
29
|
-
* @param dialogContext DialogContext for the current turn of conversation with the user.
|
|
30
|
-
* @returns Active DialogContext.
|
|
31
|
-
*/
|
|
32
|
-
export declare function getActiveDialogContext(dialogContext: DialogContext): DialogContext;
|
package/dist/src/dialogHelper.js
CHANGED
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.runDialog = runDialog;
|
|
8
8
|
exports.internalRun = internalRun;
|
|
9
|
-
exports.getActiveDialogContext = getActiveDialogContext;
|
|
10
9
|
const agents_activity_1 = require("@microsoft/agents-activity");
|
|
11
10
|
const errorHelper_1 = require("./errorHelper");
|
|
12
11
|
const dialogEvents_1 = require("./dialogEvents");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialogHelper.js","sourceRoot":"","sources":["../../src/dialogHelper.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAuBH,8BAuCC;AASD,kCA6CC;
|
|
1
|
+
{"version":3,"file":"dialogHelper.js","sourceRoot":"","sources":["../../src/dialogHelper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@microsoft/agents-hosting-dialogs",
|
|
4
|
-
"version": "1.3.0-beta.
|
|
4
|
+
"version": "1.3.0-beta.40.g1dda8c3a1e",
|
|
5
5
|
"homepage": "https://github.com/microsoft/Agents-for-js",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -16,14 +16,16 @@
|
|
|
16
16
|
"main": "dist/index.js",
|
|
17
17
|
"types": "dist/src/index.d.ts",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@microsoft/agents-hosting": "1.3.0-beta.
|
|
19
|
+
"@microsoft/agents-hosting": "1.3.0-beta.40.g1dda8c3a1e",
|
|
20
|
+
"@microsoft/agents-activity": "1.3.0-beta.40.g1dda8c3a1e",
|
|
20
21
|
"@types/lodash": "^4.17.23",
|
|
21
22
|
"dependency-graph": "^1.0.0",
|
|
22
23
|
"@microsoft/recognizers-text-suite": "^1.3.1",
|
|
23
24
|
"@microsoft/recognizers-text-number": "^1.3.1",
|
|
24
25
|
"@microsoft/recognizers-text-date-time": "^1.3.2",
|
|
25
26
|
"@microsoft/recognizers-text-choice": "^1.3.1",
|
|
26
|
-
"globalize": "^1.7.1"
|
|
27
|
+
"globalize": "^1.7.1",
|
|
28
|
+
"zod": "^3.25.75"
|
|
27
29
|
},
|
|
28
30
|
"license": "MIT",
|
|
29
31
|
"files": [
|
|
@@ -139,9 +139,6 @@ export interface SortedValue {
|
|
|
139
139
|
* Higher level functions like `findChoices()` and `recognizeChoices()` are layered above this function. In most
|
|
140
140
|
* cases its easier to just call one of the higher level functions instead but this function contains
|
|
141
141
|
* the fuzzy search algorithm that drives choice recognition.
|
|
142
|
-
*
|
|
143
|
-
* @internal
|
|
144
|
-
|
|
145
142
|
*/
|
|
146
143
|
export function findValues (
|
|
147
144
|
utterance: string,
|
|
@@ -6,6 +6,7 @@ import { findChoices, FindChoicesOptions, FoundChoice } from './findChoices'
|
|
|
6
6
|
import { ModelResult } from './modelResult'
|
|
7
7
|
import { Choice } from './choice'
|
|
8
8
|
import { debug } from '@microsoft/agents-activity/logger'
|
|
9
|
+
import * as Recognizers from '@microsoft/recognizers-text-number'
|
|
9
10
|
|
|
10
11
|
const logger = debug('dialogs:recognizeChoices')
|
|
11
12
|
|
|
@@ -24,7 +25,14 @@ export function recognizeChoices (
|
|
|
24
25
|
): ModelResult<FoundChoice>[] {
|
|
25
26
|
function matchChoiceByIndex (match: ModelResult<any>): void {
|
|
26
27
|
try {
|
|
27
|
-
|
|
28
|
+
if (!match.resolution || match.resolution.value === undefined || match.resolution.value === null) {
|
|
29
|
+
return
|
|
30
|
+
}
|
|
31
|
+
const value = Number(match.resolution.value)
|
|
32
|
+
if (!Number.isFinite(value) || !Number.isInteger(value)) {
|
|
33
|
+
return
|
|
34
|
+
}
|
|
35
|
+
const index: number = value - 1
|
|
28
36
|
if (index >= 0 && index < list.length) {
|
|
29
37
|
const choice: Choice = list[index]
|
|
30
38
|
matched.push({
|
|
@@ -68,26 +76,32 @@ export function recognizeChoices (
|
|
|
68
76
|
// a numerical index or ordinal as well.
|
|
69
77
|
let matched: ModelResult<FoundChoice>[] = findChoices(utterance, list, options)
|
|
70
78
|
if (matched.length === 0) {
|
|
71
|
-
//
|
|
79
|
+
// Try finding by ordinal
|
|
72
80
|
if (options.recognizeOrdinals) {
|
|
73
|
-
|
|
74
|
-
// const ordinals: ModelResult[] = Recognizers.recognizeOrdinal(utterance, options.locale ?? '')
|
|
75
|
-
const ordinals: ModelResult[] = []
|
|
81
|
+
const ordinals: ModelResult[] = Recognizers.recognizeOrdinal(utterance, options.locale ?? '')
|
|
76
82
|
ordinals.forEach(matchChoiceByIndex)
|
|
77
83
|
}
|
|
78
84
|
|
|
79
|
-
//
|
|
80
|
-
if (
|
|
81
|
-
|
|
82
|
-
// const numbers: ModelResult[] = Recognizers.recognizeNumber(utterance, options.locale ?? '').forEach(matchChoiceByIndex)
|
|
83
|
-
const numbers: ModelResult[] = []
|
|
85
|
+
// Try finding by numerical index
|
|
86
|
+
if (options.recognizeNumbers) {
|
|
87
|
+
const numbers: ModelResult[] = Recognizers.recognizeNumber(utterance, options.locale ?? '')
|
|
84
88
|
numbers.forEach(matchChoiceByIndex)
|
|
85
89
|
}
|
|
86
90
|
|
|
87
|
-
// Sort
|
|
91
|
+
// Sort matches by position and remove duplicates
|
|
88
92
|
// - The results from findChoices() are already properly sorted so we just need this
|
|
89
93
|
// for ordinal & numerical lookups.
|
|
90
94
|
matched = matched.sort((a: ModelResult<FoundChoice>, b: ModelResult<FoundChoice>) => a.start - b.start)
|
|
95
|
+
|
|
96
|
+
// Remove duplicates with overlapping spans (keep the first match for each span)
|
|
97
|
+
matched = matched.filter((match, index, self) =>
|
|
98
|
+
index === self.findIndex((m) => m.start === match.start && m.end === match.end)
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
// Remove duplicates selecting the same choice (keep the first match for each choice index)
|
|
102
|
+
matched = matched.filter((match, index, self) =>
|
|
103
|
+
index === self.findIndex((m) => m.resolution.index === match.resolution.index)
|
|
104
|
+
)
|
|
91
105
|
}
|
|
92
106
|
|
|
93
107
|
return matched
|
package/src/dialogHelper.ts
CHANGED
|
@@ -149,7 +149,7 @@ async function innerRun (
|
|
|
149
149
|
* @param dialogContext DialogContext for the current turn of conversation with the user.
|
|
150
150
|
* @returns Active DialogContext.
|
|
151
151
|
*/
|
|
152
|
-
|
|
152
|
+
function getActiveDialogContext (dialogContext: DialogContext): DialogContext {
|
|
153
153
|
const child = dialogContext.child
|
|
154
154
|
if (!child) {
|
|
155
155
|
return dialogContext
|
package/dist/src/template.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { DialogContext } from './dialogContext';
|
|
6
|
-
/**
|
|
7
|
-
* Defines Template interface for binding data to T.
|
|
8
|
-
*/
|
|
9
|
-
export interface TemplateInterface<T, D = Record<string, unknown>> {
|
|
10
|
-
/**
|
|
11
|
-
* Given the turn context bind to the data to create the object
|
|
12
|
-
*
|
|
13
|
-
* @param dialogContext DialogContext.
|
|
14
|
-
* @param data Data to bind to.
|
|
15
|
-
* @returns Instance of T.
|
|
16
|
-
*/
|
|
17
|
-
bind(dialogContext: DialogContext, data?: D): Promise<T>;
|
|
18
|
-
}
|
package/dist/src/template.js
DELETED
package/dist/src/template.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/template.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
package/src/template.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { DialogContext } from './dialogContext'
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Defines Template interface for binding data to T.
|
|
10
|
-
*/
|
|
11
|
-
export interface TemplateInterface<T, D = Record<string, unknown>> {
|
|
12
|
-
/**
|
|
13
|
-
* Given the turn context bind to the data to create the object
|
|
14
|
-
*
|
|
15
|
-
* @param dialogContext DialogContext.
|
|
16
|
-
* @param data Data to bind to.
|
|
17
|
-
* @returns Instance of T.
|
|
18
|
-
*/
|
|
19
|
-
bind(dialogContext: DialogContext, data?: D): Promise<T>;
|
|
20
|
-
}
|