@dbx-tools/appkit-model-gateway 0.9.190 → 0.9.193
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/README.md +6 -0
- package/index.ts +7 -1
- package/lib/index.d.ts +7 -1
- package/lib/index.js +6 -2
- package/lib/src/ai-decide.d.ts +50 -0
- package/lib/src/ai-decide.js +406 -0
- package/lib/src/gateway.d.ts +6 -2
- package/lib/src/gateway.js +72 -16
- package/lib/src/model-context.d.ts +32 -0
- package/lib/src/model-context.js +270 -0
- package/lib/src/models.d.ts +3 -3
- package/lib/src/models.js +55 -8
- package/lib/src/reasoning-adapt.js +2 -5
- package/lib/src/routes.js +18 -2
- package/lib/src/smart-router.d.ts +4 -7
- package/lib/src/smart-router.js +7 -175
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/ai-decide.ts +552 -0
- package/src/gateway.ts +96 -14
- package/src/model-context.ts +306 -0
- package/src/models.ts +66 -4
- package/src/reasoning-adapt.ts +1 -5
- package/src/routes.ts +16 -0
- package/src/smart-router.ts +8 -187
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
10
|
import { learnReasoningLevelsFromError, modelReasoningLevelsFor, adaptRequestReasoning, parseReasoningLevels, } from "@dbx-tools/model";
|
|
11
|
-
import { log } from "@dbx-tools/shared-core";
|
|
11
|
+
import { isRecord, log } from "@dbx-tools/shared-core";
|
|
12
12
|
const logger = log.logger("appkit/model-gateway/reasoning");
|
|
13
13
|
const INVALID_ENCRYPTED_REASONING_PATTERN = /invalid encrypted reasoning|invalid_encrypted_content|encrypted content .+ could not be verified/i;
|
|
14
14
|
const REASONING_UNSUPPORTED_PATTERN = /does not support ['"]reasoning['"]/i;
|
|
@@ -92,7 +92,4 @@ function stripRequestReasoning(body) {
|
|
|
92
92
|
delete stripped.reasoning_effort;
|
|
93
93
|
return stripped;
|
|
94
94
|
}
|
|
95
|
-
|
|
96
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc29uaW5nLWFkYXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlYXNvbmluZy1hZGFwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixvQkFBb0IsR0FDckIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0MsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0FBQzVELE1BQU0sbUNBQW1DLEdBQ3ZDLG1HQUFtRyxDQUFDO0FBQ3RHLE1BQU0sNkJBQTZCLEdBQUcscUNBQXFDLENBQUM7QUFTNUUsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsS0FBYSxFQUNiLElBQXVDO0lBRXZDLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVFLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQUMsMENBQTBDLEVBQUU7WUFDdkQsS0FBSztZQUNMLE1BQU0sRUFBRSxPQUFPLENBQUMsVUFBVTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUNsQixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDOUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO0tBQ3pCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsMkJBQTJCLENBQUMsS0FLakQ7SUFDQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxR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LENBQUM7QUFDNUIsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQzVCLElBQXVDO0lBRXZDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNsRixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQzdCLE9BQU8sUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUMxQixPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsS0FBYztJQUM5QixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZWFzb25pbmctZWZmb3J0IGFkYXB0YXRpb24gZm9yIGdhdGV3YXkgcm91bmQgdHJpcHMuXG4gKlxuICogUHJvYWN0aXZlbHkgcmVtYXBzIGNsaWVudCBlZmZvcnRzIG9udG8gdGhlIGtub3duIGxhZGRlciwgdGhlbiBvbiBhIHNpbmdsZVxuICogdW5zdXBwb3J0ZWQtdmFsdWUgNDAwIHJlc29sdmVzIHRoZSBwcmVmZXJyZWQgcHVibGlzaGVkLW9yLWxlYXJuZWQgbGFkZGVyXG4gKiBhbmQgcmV0cmllcyBvbmNlLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQge1xuICBsZWFyblJlYXNvbmluZ0xldmVsc0Zyb21FcnJvcixcbiAgbW9kZWxSZWFzb25pbmdMZXZlbHNGb3IsXG4gIGFkYXB0UmVxdWVzdFJlYXNvbmluZyxcbiAgcGFyc2VSZWFzb25pbmdMZXZlbHMsXG59IGZyb20gXCJAZGJ4LXRvb2xzL21vZGVsXCI7XG5pbXBvcnQgeyBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwiYXBwa2l0L21vZGVsLWdhdGV3YXkvcmVhc29uaW5nXCIpO1xuY29uc3QgSU5WQUxJRF9FTkNSWVBURURfUkVBU09OSU5HX1BBVFRFUk4gPVxuICAvaW52YWxpZCBlbmNyeXB0ZWQgcmVhc29uaW5nfGludmFsaWRfZW5jcnlwdGVkX2NvbnRlbnR8ZW5jcnlwdGVkIGNvbnRlbnQgLisgY291bGQgbm90IGJlIHZlcmlmaWVkL2k7XG5jb25zdCBSRUFTT05JTkdfVU5TVVBQT1JURURfUEFUVEVSTiA9IC9kb2VzIG5vdCBzdXBwb3J0IFsnXCJdcmVhc29uaW5nWydcIl0vaTtcblxuLyoqIFJlc3VsdCBvZiB0aGUgZmlyc3QgcHJvYWN0aXZlIGFkYXB0YXRpb24gcGFzcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRhcHRlZEluZmVyZW5jZUJvZHkge1xuICByZWFkb25seSBib2R5OiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG4gIHJlYWRvbmx5IHdpcmVFZmZvcnQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNoYW5nZWQ6IGJvb2xlYW47XG59XG5cbi8qKiBBZGFwdCBhIHJlcXVlc3QgYm9keSBvbnRvIHRoZSBjdXJyZW50IGtub3duIGxhZGRlciBmb3IgYG1vZGVsYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGFwdEluZmVyZW5jZVJlYXNvbmluZyhcbiAgbW9kZWw6IHN0cmluZyxcbiAgYm9keTogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+LFxuKTogQWRhcHRlZEluZmVyZW5jZUJvZHkge1xuICBjb25zdCBhZGFwdGVkID0gYWRhcHRSZXF1ZXN0UmVhc29uaW5nKGJvZHksIG1vZGVsUmVhc29uaW5nTGV2ZWxzRm9yKG1vZGVsKSk7XG4gIGlmIChhZGFwdGVkLmNoYW5nZWQpIHtcbiAgICBsb2dnZXIuZGVidWcoXCJhZGFwdGVkIHJlYXNvbmluZyBlZmZvcnQgYmVmb3JlIHVwc3RyZWFtXCIsIHtcbiAgICAgIG1vZGVsLFxuICAgICAgZWZmb3J0OiBhZGFwdGVkLndpcmVFZmZvcnQsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBib2R5OiBhZGFwdGVkLmJvZHksXG4gICAgd2lyZUVmZm9ydDogYWRhcHRlZC53aXJlRWZmb3J0LFxuICAgIGNoYW5nZWQ6IGFkYXB0ZWQuY2hhbmdlZCxcbiAgfTtcbn1cblxuLyoqXG4gKiBPbiBhIHJlYXNvbmluZy1yZWxhdGVkIDQwMCwgcmVtb3ZlIGludmFsaWQgcmVwbGF5IHN0YXRlLCByZW1vdmUgdW5zdXBwb3J0ZWRcbiAqIHJlYXNvbmluZywgb3IgcmVzb2x2ZSB0aGUgcHJlZmVycmVkIGxhZGRlciBhbmQgcHJvZHVjZSBhIHJlbWFwcGVkIHJldHJ5IGJvZHkuXG4gKiBSZXR1cm5zIGB1bmRlZmluZWRgIHdoZW4gbm8gcmV0cnkgc2hvdWxkIG9jY3VyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGVhcm5BbmRBZGFwdFJlYXNvbmluZ1JldHJ5KGlucHV0OiB7XG4gIHJlYWRvbmx5IG1vZGVsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJvZHk6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgcmVhZG9ubHkgcmVzcG9uc2U6IFJlc3BvbnNlO1xuICByZWFkb25seSBwcmV2aW91c1dpcmVFZmZvcnQ/OiBzdHJpbmc7XG59KTogUHJvbWlzZTxSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gfCB1bmRlZmluZWQ+IHtcbiAgaWYgKGlucHV0LnJlc3BvbnNlLm9rIHx8IGlucHV0LnJlc3BvbnNlLnN0YXR1cyAhPT0gNDAwKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGxldCBlcnJvckJvZHk6IHVua25vd247XG4gIHRyeSB7XG4gICAgZXJyb3JCb2R5ID0gSlNPTi5wYXJzZShhd2FpdCBpbnB1dC5yZXNwb25zZS5jbG9uZSgpLnRleHQoKSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBzZXJpYWxpemVkRXJyb3IgPSBKU09OLnN0cmluZ2lmeShlcnJvckJvZHkpO1xuICBpZiAoSU5WQUxJRF9FTkNSWVBURURfUkVBU09OSU5HX1BBVFRFUk4udGVzdChzZXJpYWxpemVkRXJyb3IpKSB7XG4gICAgY29uc3Qgc3RyaXBwZWQgPSBzdHJpcFJlYXNvbmluZ0hpc3RvcnkoaW5wdXQuYm9keSk7XG4gICAgaWYgKCFzdHJpcHBlZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBsb2dnZXIuaW5mbyhcInJldHJ5aW5nIHdpdGhvdXQgaW52YWxpZCBlbmNyeXB0ZWQgcmVhc29uaW5nIGhpc3RvcnlcIiwgeyBtb2RlbDogaW5wdXQubW9kZWwgfSk7XG4gICAgcmV0dXJuIHN0cmlwcGVkO1xuICB9XG5cbiAgaWYgKFJFQVNPTklOR19VTlNVUFBPUlRFRF9QQVRURVJOLnRlc3Qoc2VyaWFsaXplZEVycm9yKSkge1xuICAgIGNvbnN0IHN0cmlwcGVkID0gc3RyaXBSZXF1ZXN0UmVhc29uaW5nKGlucHV0LmJvZHkpO1xuICAgIGlmICghc3RyaXBwZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgbG9nZ2VyLmluZm8oXCJyZXRyeWluZyB3aXRob3V0IHVuc3VwcG9ydGVkIHJlYXNvbmluZ1wiLCB7IG1vZGVsOiBpbnB1dC5tb2RlbCB9KTtcbiAgICByZXR1cm4gc3RyaXBwZWQ7XG4gIH1cblxuICBpZiAocGFyc2VSZWFzb25pbmdMZXZlbHMoZXJyb3JCb2R5KS5sZW5ndGggPT09IDApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgbGV2ZWxzID0gYXdhaXQgbGVhcm5SZWFzb25pbmdMZXZlbHNGcm9tRXJyb3IoaW5wdXQubW9kZWwsIGVycm9yQm9keSk7XG4gIGxvZ2dlci5pbmZvKFwicmVzb2x2ZWQgcmVhc29uaW5nIGxldmVscyBhZnRlciB1cHN0cmVhbSBlcnJvclwiLCB7XG4gICAgbW9kZWw6IGlucHV0Lm1vZGVsLFxuICAgIGxldmVscyxcbiAgfSk7XG5cbiAgY29uc3QgYWRhcHRlZCA9IGFkYXB0UmVxdWVzdFJlYXNvbmluZyhpbnB1dC5ib2R5LCBsZXZlbHMpO1xuICBpZiAoYWRhcHRlZC53aXJlRWZmb3J0ID09PSB1bmRlZmluZWQgfHwgYWRhcHRlZC53aXJlRWZmb3J0ID09PSBpbnB1dC5wcmV2aW91c1dpcmVFZmZvcnQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgbG9nZ2VyLmluZm8oXCJyZXRyeWluZyB3aXRoIGFkYXB0ZWQgcmVhc29uaW5nIGVmZm9ydFwiLCB7XG4gICAgbW9kZWw6IGlucHV0Lm1vZGVsLFxuICAgIGZyb206IGlucHV0LnByZXZpb3VzV2lyZUVmZm9ydCxcbiAgICB0bzogYWRhcHRlZC53aXJlRWZmb3J0LFxuICB9KTtcbiAgcmV0dXJuIGFkYXB0ZWQuYm9keTtcbn1cblxuZnVuY3Rpb24gc3RyaXBSZWFzb25pbmdIaXN0b3J5KFxuICBib2R5OiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4sXG4pOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gfCB1bmRlZmluZWQge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYm9keS5pbnB1dCkpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IGlucHV0ID0gYm9keS5pbnB1dC5maWx0ZXIoKGl0ZW0pID0+ICFpc1JlY29yZChpdGVtKSB8fCBpdGVtLnR5cGUgIT09IFwicmVhc29uaW5nXCIpO1xuICBpZiAoaW5wdXQubGVuZ3RoID09PSBib2R5LmlucHV0Lmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgcmV0dXJuIHsgLi4uYm9keSwgaW5wdXQgfTtcbn1cblxuZnVuY3Rpb24gc3RyaXBSZXF1ZXN0UmVhc29uaW5nKFxuICBib2R5OiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4sXG4pOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gfCB1bmRlZmluZWQge1xuICBpZiAoIU9iamVjdC5oYXNPd24oYm9keSwgXCJyZWFzb25pbmdcIikgJiYgIU9iamVjdC5oYXNPd24oYm9keSwgXCJyZWFzb25pbmdfZWZmb3J0XCIpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBzdHJpcHBlZCA9IHsgLi4uYm9keSB9O1xuICBkZWxldGUgc3RyaXBwZWQucmVhc29uaW5nO1xuICBkZWxldGUgc3RyaXBwZWQucmVhc29uaW5nX2VmZm9ydDtcbiAgcmV0dXJuIHN0cmlwcGVkO1xufVxuXG5mdW5jdGlvbiBpc1JlY29yZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUgIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpO1xufVxuIl19
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc29uaW5nLWFkYXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlYXNvbmluZy1hZGFwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixvQkFBb0IsR0FDckIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUM1RCxNQUFNLG1DQUFtQyxHQUN2QyxtR0FBbUcsQ0FBQztBQUN0RyxNQUFNLDZCQUE2QixHQUFHLHFDQUFxQyxDQUFDO0FBUzVFLHNFQUFzRTtBQUN0RSxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLEtBQWEsRUFDYixJQUF1QztJQUV2QyxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1RSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxFQUFFO1lBQ3ZELEtBQUs7WUFDTCxNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVU7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzlCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztLQUN6QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLDJCQUEyQixDQUFDLEtBS2pEO0lBQ0MsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxL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LEtBQUssRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUM1QixJQUF1QztJQUV2QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7UUFDbEYsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUM3QixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFDMUIsT0FBTyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVhc29uaW5nLWVmZm9ydCBhZGFwdGF0aW9uIGZvciBnYXRld2F5IHJvdW5kIHRyaXBzLlxuICpcbiAqIFByb2FjdGl2ZWx5IHJlbWFwcyBjbGllbnQgZWZmb3J0cyBvbnRvIHRoZSBrbm93biBsYWRkZXIsIHRoZW4gb24gYSBzaW5nbGVcbiAqIHVuc3VwcG9ydGVkLXZhbHVlIDQwMCByZXNvbHZlcyB0aGUgcHJlZmVycmVkIHB1Ymxpc2hlZC1vci1sZWFybmVkIGxhZGRlclxuICogYW5kIHJldHJpZXMgb25jZS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHtcbiAgbGVhcm5SZWFzb25pbmdMZXZlbHNGcm9tRXJyb3IsXG4gIG1vZGVsUmVhc29uaW5nTGV2ZWxzRm9yLFxuICBhZGFwdFJlcXVlc3RSZWFzb25pbmcsXG4gIHBhcnNlUmVhc29uaW5nTGV2ZWxzLFxufSBmcm9tIFwiQGRieC10b29scy9tb2RlbFwiO1xuaW1wb3J0IHsgaXNSZWNvcmQsIGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJhcHBraXQvbW9kZWwtZ2F0ZXdheS9yZWFzb25pbmdcIik7XG5jb25zdCBJTlZBTElEX0VOQ1JZUFRFRF9SRUFTT05JTkdfUEFUVEVSTiA9XG4gIC9pbnZhbGlkIGVuY3J5cHRlZCByZWFzb25pbmd8aW52YWxpZF9lbmNyeXB0ZWRfY29udGVudHxlbmNyeXB0ZWQgY29udGVudCAuKyBjb3VsZCBub3QgYmUgdmVyaWZpZWQvaTtcbmNvbnN0IFJFQVNPTklOR19VTlNVUFBPUlRFRF9QQVRURVJOID0gL2RvZXMgbm90IHN1cHBvcnQgWydcIl1yZWFzb25pbmdbJ1wiXS9pO1xuXG4vKiogUmVzdWx0IG9mIHRoZSBmaXJzdCBwcm9hY3RpdmUgYWRhcHRhdGlvbiBwYXNzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGFwdGVkSW5mZXJlbmNlQm9keSB7XG4gIHJlYWRvbmx5IGJvZHk6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgcmVhZG9ubHkgd2lyZUVmZm9ydD86IHN0cmluZztcbiAgcmVhZG9ubHkgY2hhbmdlZDogYm9vbGVhbjtcbn1cblxuLyoqIEFkYXB0IGEgcmVxdWVzdCBib2R5IG9udG8gdGhlIGN1cnJlbnQga25vd24gbGFkZGVyIGZvciBgbW9kZWxgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0SW5mZXJlbmNlUmVhc29uaW5nKFxuICBtb2RlbDogc3RyaW5nLFxuICBib2R5OiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4sXG4pOiBBZGFwdGVkSW5mZXJlbmNlQm9keSB7XG4gIGNvbnN0IGFkYXB0ZWQgPSBhZGFwdFJlcXVlc3RSZWFzb25pbmcoYm9keSwgbW9kZWxSZWFzb25pbmdMZXZlbHNGb3IobW9kZWwpKTtcbiAgaWYgKGFkYXB0ZWQuY2hhbmdlZCkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcImFkYXB0ZWQgcmVhc29uaW5nIGVmZm9ydCBiZWZvcmUgdXBzdHJlYW1cIiwge1xuICAgICAgbW9kZWwsXG4gICAgICBlZmZvcnQ6IGFkYXB0ZWQud2lyZUVmZm9ydCxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGJvZHk6IGFkYXB0ZWQuYm9keSxcbiAgICB3aXJlRWZmb3J0OiBhZGFwdGVkLndpcmVFZmZvcnQsXG4gICAgY2hhbmdlZDogYWRhcHRlZC5jaGFuZ2VkLFxuICB9O1xufVxuXG4vKipcbiAqIE9uIGEgcmVhc29uaW5nLXJlbGF0ZWQgNDAwLCByZW1vdmUgaW52YWxpZCByZXBsYXkgc3RhdGUsIHJlbW92ZSB1bnN1cHBvcnRlZFxuICogcmVhc29uaW5nLCBvciByZXNvbHZlIHRoZSBwcmVmZXJyZWQgbGFkZGVyIGFuZCBwcm9kdWNlIGEgcmVtYXBwZWQgcmV0cnkgYm9keS5cbiAqIFJldHVybnMgYHVuZGVmaW5lZGAgd2hlbiBubyByZXRyeSBzaG91bGQgb2NjdXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsZWFybkFuZEFkYXB0UmVhc29uaW5nUmV0cnkoaW5wdXQ6IHtcbiAgcmVhZG9ubHkgbW9kZWw6IHN0cmluZztcbiAgcmVhZG9ubHkgYm9keTogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuICByZWFkb25seSByZXNwb25zZTogUmVzcG9uc2U7XG4gIHJlYWRvbmx5IHByZXZpb3VzV2lyZUVmZm9ydD86IHN0cmluZztcbn0pOiBQcm9taXNlPFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IHVuZGVmaW5lZD4ge1xuICBpZiAoaW5wdXQucmVzcG9uc2Uub2sgfHwgaW5wdXQucmVzcG9uc2Uuc3RhdHVzICE9PSA0MDApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgbGV0IGVycm9yQm9keTogdW5rbm93bjtcbiAgdHJ5IHtcbiAgICBlcnJvckJvZHkgPSBKU09OLnBhcnNlKGF3YWl0IGlucHV0LnJlc3BvbnNlLmNsb25lKCkudGV4dCgpKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHNlcmlhbGl6ZWRFcnJvciA9IEpTT04uc3RyaW5naWZ5KGVycm9yQm9keSk7XG4gIGlmIChJTlZBTElEX0VOQ1JZUFRFRF9SRUFTT05JTkdfUEFUVEVSTi50ZXN0KHNlcmlhbGl6ZWRFcnJvcikpIHtcbiAgICBjb25zdCBzdHJpcHBlZCA9IHN0cmlwUmVhc29uaW5nSGlzdG9yeShpbnB1dC5ib2R5KTtcbiAgICBpZiAoIXN0cmlwcGVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGxvZ2dlci5pbmZvKFwicmV0cnlpbmcgd2l0aG91dCBpbnZhbGlkIGVuY3J5cHRlZCByZWFzb25pbmcgaGlzdG9yeVwiLCB7IG1vZGVsOiBpbnB1dC5tb2RlbCB9KTtcbiAgICByZXR1cm4gc3RyaXBwZWQ7XG4gIH1cblxuICBpZiAoUkVBU09OSU5HX1VOU1VQUE9SVEVEX1BBVFRFUk4udGVzdChzZXJpYWxpemVkRXJyb3IpKSB7XG4gICAgY29uc3Qgc3RyaXBwZWQgPSBzdHJpcFJlcXVlc3RSZWFzb25pbmcoaW5wdXQuYm9keSk7XG4gICAgaWYgKCFzdHJpcHBlZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBsb2dnZXIuaW5mbyhcInJldHJ5aW5nIHdpdGhvdXQgdW5zdXBwb3J0ZWQgcmVhc29uaW5nXCIsIHsgbW9kZWw6IGlucHV0Lm1vZGVsIH0pO1xuICAgIHJldHVybiBzdHJpcHBlZDtcbiAgfVxuXG4gIGlmIChwYXJzZVJlYXNvbmluZ0xldmVscyhlcnJvckJvZHkpLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBjb25zdCBsZXZlbHMgPSBhd2FpdCBsZWFyblJlYXNvbmluZ0xldmVsc0Zyb21FcnJvcihpbnB1dC5tb2RlbCwgZXJyb3JCb2R5KTtcbiAgbG9nZ2VyLmluZm8oXCJyZXNvbHZlZCByZWFzb25pbmcgbGV2ZWxzIGFmdGVyIHVwc3RyZWFtIGVycm9yXCIsIHtcbiAgICBtb2RlbDogaW5wdXQubW9kZWwsXG4gICAgbGV2ZWxzLFxuICB9KTtcblxuICBjb25zdCBhZGFwdGVkID0gYWRhcHRSZXF1ZXN0UmVhc29uaW5nKGlucHV0LmJvZHksIGxldmVscyk7XG4gIGlmIChhZGFwdGVkLndpcmVFZmZvcnQgPT09IHVuZGVmaW5lZCB8fCBhZGFwdGVkLndpcmVFZmZvcnQgPT09IGlucHV0LnByZXZpb3VzV2lyZUVmZm9ydCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBsb2dnZXIuaW5mbyhcInJldHJ5aW5nIHdpdGggYWRhcHRlZCByZWFzb25pbmcgZWZmb3J0XCIsIHtcbiAgICBtb2RlbDogaW5wdXQubW9kZWwsXG4gICAgZnJvbTogaW5wdXQucHJldmlvdXNXaXJlRWZmb3J0LFxuICAgIHRvOiBhZGFwdGVkLndpcmVFZmZvcnQsXG4gIH0pO1xuICByZXR1cm4gYWRhcHRlZC5ib2R5O1xufVxuXG5mdW5jdGlvbiBzdHJpcFJlYXNvbmluZ0hpc3RvcnkoXG4gIGJvZHk6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pixcbik6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IHVuZGVmaW5lZCB7XG4gIGlmICghQXJyYXkuaXNBcnJheShib2R5LmlucHV0KSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgaW5wdXQgPSBib2R5LmlucHV0LmZpbHRlcigoaXRlbSkgPT4gIWlzUmVjb3JkKGl0ZW0pIHx8IGl0ZW0udHlwZSAhPT0gXCJyZWFzb25pbmdcIik7XG4gIGlmIChpbnB1dC5sZW5ndGggPT09IGJvZHkuaW5wdXQubGVuZ3RoKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4geyAuLi5ib2R5LCBpbnB1dCB9O1xufVxuXG5mdW5jdGlvbiBzdHJpcFJlcXVlc3RSZWFzb25pbmcoXG4gIGJvZHk6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pixcbik6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IHVuZGVmaW5lZCB7XG4gIGlmICghT2JqZWN0Lmhhc093bihib2R5LCBcInJlYXNvbmluZ1wiKSAmJiAhT2JqZWN0Lmhhc093bihib2R5LCBcInJlYXNvbmluZ19lZmZvcnRcIikpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHN0cmlwcGVkID0geyAuLi5ib2R5IH07XG4gIGRlbGV0ZSBzdHJpcHBlZC5yZWFzb25pbmc7XG4gIGRlbGV0ZSBzdHJpcHBlZC5yZWFzb25pbmdfZWZmb3J0O1xuICByZXR1cm4gc3RyaXBwZWQ7XG59XG4iXX0=
|
package/lib/src/routes.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { Readable } from "node:stream";
|
|
7
7
|
import { pipeline } from "node:stream/promises";
|
|
8
8
|
import { log, toError } from "@dbx-tools/shared-core";
|
|
9
|
+
import { AiDecideRouterError } from "./ai-decide.js";
|
|
9
10
|
import { ModelGatewayError } from "./gateway.js";
|
|
10
11
|
import { UnsupportedGatewayFeatureError } from "./router.js";
|
|
11
12
|
import { SmartRouterError } from "./smart-router.js";
|
|
@@ -19,7 +20,7 @@ export async function sendModels(gateway, request, response) {
|
|
|
19
20
|
const startedAt = Date.now();
|
|
20
21
|
logger.debug("models request", requestContext(request));
|
|
21
22
|
try {
|
|
22
|
-
const payload = await gateway.models(request.header("originator"), optionalSearch(request.query.search));
|
|
23
|
+
const payload = await gateway.models(request.header("originator"), optionalSearch(request.query.search), optionalModelSource(request.query.model_source ?? request.query.modelSource), optionalBoolean(request.query.metadata, "metadata"));
|
|
23
24
|
response.json(payload);
|
|
24
25
|
logger.debug("models response", {
|
|
25
26
|
...requestContext(request),
|
|
@@ -107,6 +108,7 @@ export async function sendInference(gateway, protocol, request, response) {
|
|
|
107
108
|
}
|
|
108
109
|
function sendError(protocol, response, error) {
|
|
109
110
|
const status = error instanceof ModelGatewayError ||
|
|
111
|
+
error instanceof AiDecideRouterError ||
|
|
110
112
|
error instanceof SmartRouterError ||
|
|
111
113
|
error instanceof UnsupportedGatewayFeatureError
|
|
112
114
|
? error.status
|
|
@@ -151,6 +153,20 @@ function optionalSearch(value) {
|
|
|
151
153
|
}
|
|
152
154
|
return value;
|
|
153
155
|
}
|
|
156
|
+
function optionalModelSource(value) {
|
|
157
|
+
if (value === undefined)
|
|
158
|
+
return "foundation";
|
|
159
|
+
if (value === "foundation" || value === "custom" || value === "all")
|
|
160
|
+
return value;
|
|
161
|
+
throw new ModelGatewayError(400, "model_source must be foundation, custom, or all");
|
|
162
|
+
}
|
|
163
|
+
function optionalBoolean(value, name) {
|
|
164
|
+
if (value === undefined || value === "false")
|
|
165
|
+
return false;
|
|
166
|
+
if (value === "true")
|
|
167
|
+
return true;
|
|
168
|
+
throw new ModelGatewayError(400, `${name} must be true or false`);
|
|
169
|
+
}
|
|
154
170
|
function requestContext(request) {
|
|
155
171
|
return {
|
|
156
172
|
method: request.method,
|
|
@@ -158,4 +174,4 @@ function requestContext(request) {
|
|
|
158
174
|
requestId: request.header("x-request-id") ?? request.header("request-id"),
|
|
159
175
|
};
|
|
160
176
|
}
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl0RCxPQUFPLEVBQWdCLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9ELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFdkQsMERBQTBEO0FBQzFELE1BQU0sVUFBVSxVQUFVLENBQUMsUUFBMEI7SUFDbkQsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCwyREFBMkQ7QUFDM0QsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQzlCLE9BQXFCLEVBQ3JCLE9BQXdCLEVBQ3hCLFFBQTBCO0lBRTFCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM3QixNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3hELElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FDbEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFDNUIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQ3JDLENB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QUFDLE9BQXdCO0lBQzlDLE9BQU87UUFDTCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLFNBQVMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0tBQzFFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHByZXNzIGFkYXB0ZXJzIGZvciB0aGUgc2hhcmVkIG1vZGVsLWdhdGV3YXkgc2VydmljZS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgUmVhZGFibGUgfSBmcm9tIFwibm9kZTpzdHJlYW1cIjtcbmltcG9ydCB7IHBpcGVsaW5lIH0gZnJvbSBcIm5vZGU6c3RyZWFtL3Byb21pc2VzXCI7XG5pbXBvcnQgeyBsb2csIHRvRXJyb3IgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBDbGllbnRQcm90b2NvbCB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbC1nYXRld2F5XCI7XG5pbXBvcnQgdHlwZSBleHByZXNzIGZyb20gXCJleHByZXNzXCI7XG5cbmltcG9ydCB7IE1vZGVsR2F0ZXdheSwgTW9kZWxHYXRld2F5RXJyb3IgfSBmcm9tIFwiLi9nYXRld2F5LnRzXCI7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZEdhdGV3YXlGZWF0dXJlRXJyb3IgfSBmcm9tIFwiLi9yb3V0ZXIudHNcIjtcbmltcG9ydCB7IFNtYXJ0Um91dGVyRXJyb3IgfSBmcm9tIFwiLi9zbWFydC1yb3V0ZXIudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcImFwcGtpdC9tb2RlbC1nYXRld2F5L2h0dHBcIik7XG5cbi8qKiBTZW5kIHRoZSBsaWdodHdlaWdodCBjb21wYXRpYmlsaXR5IGhlYWx0aCByZXNwb25zZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZW5kSGVhbHRoKHJlc3BvbnNlOiBleHByZXNzLlJlc3BvbnNlKTogdm9pZCB7XG4gIHJlc3BvbnNlLmpzb24oeyByZWFkeTogdHJ1ZSB9KTtcbn1cblxuLyoqIFNlbmQgdGhlIGFjdGl2ZSBwcmluY2lwYWwncyBkeW5hbWljIG1vZGVsIGNhdGFsb2d1ZS4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kTW9kZWxzKFxuICBnYXRld2F5OiBNb2RlbEdhdGV3YXksXG4gIHJlcXVlc3Q6IGV4cHJlc3MuUmVxdWVzdCxcbiAgcmVzcG9uc2U6IGV4cHJlc3MuUmVzcG9uc2UsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgc3RhcnRlZEF0ID0gRGF0ZS5ub3coKTtcbiAgbG9nZ2VyLmRlYnVnKFwibW9kZWxzIHJlcXVlc3RcIiwgcmVxdWVzdENvbnRleHQocmVxdWVzdCkpO1xuICB0cnkge1xuICAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCBnYXRld2F5Lm1vZGVscyhcbiAgICAgIHJlcXVlc3QuaGVhZGVyKFwib3JpZ2luYXRvclwiKSxcbiAgICAgIG9wdGlvbmFsU2VhcmNoKHJlcXVlc3QucXVlcnkuc2VhcmNoKSxcbiAgICApO1xuICAgIHJlc3BvbnNlLmpzb24ocGF5bG9hZCk7XG4gICAgbG9nZ2VyLmRlYnVnKFwibW9kZWxzIHJlc3BvbnNlXCIsIHtcbiAgICAgIC4uLnJlcXVlc3RDb250ZXh0KHJlcXVlc3QpLFxuICAgICAgZWxhcHNlZE1zOiBEYXRlLm5vdygpIC0gc3RhcnRlZEF0LFxuICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ2dlci5lcnJvcihcIm1vZGVscyByZXF1ZXN0IGZhaWxlZFwiLCB7XG4gICAgICAuLi5yZXF1ZXN0Q29udGV4dChyZXF1ZXN0KSxcbiAgICAgIGVsYXBzZWRNczogRGF0ZS5ub3coKSAtIHN0YXJ0ZWRBdCxcbiAgICAgIGVycm9yOiB0b0Vycm9yKGVycm9yKSxcbiAgICB9KTtcbiAgICBzZW5kRXJyb3IoXCJvcGVuYWktcmVzcG9uc2VzXCIsIHJlc3BvbnNlLCBlcnJvcik7XG4gIH1cbn1cblxuLyoqIEV4ZWN1dGUgYW5kIHN0cmVhbSBvbmUgbW9kZWwgcmVxdWVzdCB0aHJvdWdoIEV4cHJlc3Mgd2l0aCBjYW5jZWxsYXRpb24uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZEluZmVyZW5jZShcbiAgZ2F0ZXdheTogTW9kZWxHYXRld2F5LFxuICBwcm90b2NvbDogQ2xpZW50UHJvdG9jb2wsXG4gIHJlcXVlc3Q6IGV4cHJlc3MuUmVxdWVzdCxcbiAgcmVzcG9uc2U6IGV4cHJlc3MuUmVzcG9uc2UsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgc3RhcnRlZEF0ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgY29uc3QgYWJvcnQgPSAoKSA9PiB7XG4gICAgaWYgKHJlc3BvbnNlLndyaXRhYmxlRW5kZWQpIHJldHVybjtcbiAgICBsb2dnZXIuZGVidWcoXCJjbGllbnQgZGlzY29ubmVjdGVkXCIsIHtcbiAgICAgIC4uLnJlcXVlc3RDb250ZXh0KHJlcXVlc3QpLFxuICAgICAgZWxhcHNlZE1zOiBEYXRlLm5vdygpIC0gc3RhcnRlZEF0LFxuICAgICAgcHJvdG9jb2wsXG4gICAgfSk7XG4gICAgY29udHJvbGxlci5hYm9ydChuZXcgRXJyb3IoXCJNb2RlbCBnYXRld2F5IGNsaWVudCBkaXNjb25uZWN0ZWRcIikpO1xuICB9O1xuICByZXF1ZXN0Lm9uY2UoXCJhYm9ydGVkXCIsIGFib3J0KTtcbiAgcmVzcG9uc2Uub25jZShcImNsb3NlXCIsIGFib3J0KTtcbiAgdHJ5IHtcbiAgICBjb25zdCBib2R5ID0gcmVjb3JkKHJlcXVlc3QuYm9keSk7XG4gICAgbG9nZ2VyLmRlYnVnKFwiaW5mZXJlbmNlIHJlcXVlc3RcIiwge1xuICAgICAgLi4ucmVxdWVzdENvbnRleHQocmVxdWVzdCksXG4gICAgICBtb2RlbDogdHlwZW9mIGJvZHkubW9kZWwgPT09IFwic3RyaW5nXCIgPyBib2R5Lm1vZGVsIDogdW5kZWZpbmVkLFxuICAgICAgcHJvdG9jb2wsXG4gICAgICBzdHJlYW06IGJvZHkuc3RyZWFtID09PSB0cnVlLFxuICAgIH0pO1xuICAgIGNvbnN0IHVwc3RyZWFtID0gYXdhaXQgZ2F0ZXdheS5pbmZlcmVuY2UoXG4gICAgICBwcm90b2NvbCxcbiAgICAgIGJvZHksXG4gICAgICByZXF1ZXN0SGVhZGVycyhyZXF1ZXN0KSxcbiAgICAgIGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICk7XG4gICAgcmVzcG9uc2Uuc3RhdHVzKHVwc3RyZWFtLnN0YXR1cyk7XG4gICAgdXBzdHJlYW0uaGVhZGVycy5mb3JFYWNoKCh2YWx1ZSwgbmFtZSkgPT4gcmVzcG9uc2Uuc2V0SGVhZGVyKG5hbWUsIHZhbHVlKSk7XG4gICAgaWYgKCF1cHN0cmVhbS5ib2R5KSB7XG4gICAgICByZXNwb25zZS5lbmQoKTtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcImluZmVyZW5jZSByZXNwb25zZVwiLCB7XG4gICAgICAgIC4uLnJlcXVlc3RDb250ZXh0KHJlcXVlc3QpLFxuICAgICAgICBlbGFwc2VkTXM6IERhdGUubm93KCkgLSBzdGFydGVkQXQsXG4gICAgICAgIHByb3RvY29sLFxuICAgICAgICBzdGF0dXM6IHVwc3RyZWFtLnN0YXR1cyxcbiAgICAgICAgdXBzdHJlYW1Qcm90b2NvbDogdXBzdHJlYW0uaGVhZGVycy5nZXQoXCJ4LWRieC10b29scy11cHN0cmVhbVwiKSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCBwaXBlbGluZShSZWFkYWJsZS5mcm9tV2ViKHVwc3RyZWFtLmJvZHkgYXMgbmV2ZXIpLCByZXNwb25zZSk7XG4gICAgbG9nZ2VyLmRlYnVnKFwiaW5mZXJlbmNlIHN0cmVhbSBjb21wbGV0ZWRcIiwge1xuICAgICAgLi4ucmVxdWVzdENvbnRleHQocmVxdWVzdCksXG4gICAgICBlbGFwc2VkTXM6IERhdGUubm93KCkgLSBzdGFydGVkQXQsXG4gICAgICBwcm90b2NvbCxcbiAgICAgIHN0YXR1czogdXBzdHJlYW0uc3RhdHVzLFxuICAgICAgdXBzdHJlYW1Qcm90b2NvbDogdXBzdHJlYW0uaGVhZGVycy5nZXQoXCJ4LWRieC10b29scy11cHN0cmVhbVwiKSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoY29udHJvbGxlci5zaWduYWwuYWJvcnRlZCkge1xuICAgICAgcmVzcG9uc2UuZGVzdHJveSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsb2dnZXIuZXJyb3IoXCJpbmZlcmVuY2UgcmVxdWVzdCBmYWlsZWRcIiwge1xuICAgICAgLi4ucmVxdWVzdENvbnRleHQocmVxdWVzdCksXG4gICAgICBlbGFwc2VkTXM6IERhdGUubm93KCkgLSBzdGFydGVkQXQsXG4gICAgICBlcnJvcjogdG9FcnJvcihlcnJvciksXG4gICAgICBwcm90b2NvbCxcbiAgICB9KTtcbiAgICBpZiAocmVzcG9uc2UuaGVhZGVyc1NlbnQpIHtcbiAgICAgIHJlc3BvbnNlLmRlc3Ryb3koZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yIDogdW5kZWZpbmVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2VuZEVycm9yKHByb3RvY29sLCByZXNwb25zZSwgZXJyb3IpO1xuICB9IGZpbmFsbHkge1xuICAgIHJlcXVlc3Qub2ZmKFwiYWJvcnRlZFwiLCBhYm9ydCk7XG4gICAgcmVzcG9uc2Uub2ZmKFwiY2xvc2VcIiwgYWJvcnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNlbmRFcnJvcihwcm90b2NvbDogQ2xpZW50UHJvdG9jb2wsIHJlc3BvbnNlOiBleHByZXNzLlJlc3BvbnNlLCBlcnJvcjogdW5rbm93bik6IHZvaWQge1xuICBjb25zdCBzdGF0dXMgPVxuICAgIGVycm9yIGluc3RhbmNlb2YgTW9kZWxHYXRld2F5RXJyb3IgfHxcbiAgICBlcnJvciBpbnN0YW5jZW9mIFNtYXJ0Um91dGVyRXJyb3IgfHxcbiAgICBlcnJvciBpbnN0YW5jZW9mIFVuc3VwcG9ydGVkR2F0ZXdheUZlYXR1cmVFcnJvclxuICAgICAgPyBlcnJvci5zdGF0dXNcbiAgICAgIDogNTAwO1xuICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBcIk1vZGVsIGdhdGV3YXkgcmVxdWVzdCBmYWlsZWRcIjtcbiAgaWYgKHByb3RvY29sID09PSBcImFudGhyb3BpYy1tZXNzYWdlc1wiKSB7XG4gICAgcmVzcG9uc2Uuc3RhdHVzKHN0YXR1cykuanNvbih7XG4gICAgICB0eXBlOiBcImVycm9yXCIsXG4gICAgICBlcnJvcjogeyB0eXBlOiBzdGF0dXMgPCA1MDAgPyBcImludmFsaWRfcmVxdWVzdF9lcnJvclwiIDogXCJhcGlfZXJyb3JcIiwgbWVzc2FnZSB9LFxuICAgIH0pO1xuICAgIHJldHVybjtcbiAgfVxuICByZXNwb25zZS5zdGF0dXMoc3RhdHVzKS5qc29uKHtcbiAgICBlcnJvcjoge1xuICAgICAgbWVzc2FnZSxcbiAgICAgIHR5cGU6IHN0YXR1cyA8IDUwMCA/IFwiaW52YWxpZF9yZXF1ZXN0X2Vycm9yXCIgOiBcImFwaV9lcnJvclwiLFxuICAgICAgY29kZTogc3RhdHVzLFxuICAgIH0sXG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXF1ZXN0SGVhZGVycyhyZXF1ZXN0OiBleHByZXNzLlJlcXVlc3QpOiBIZWFkZXJzIHtcbiAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7XG4gIGZvciAoY29uc3QgW25hbWUsIHJhd10gb2YgT2JqZWN0LmVudHJpZXMocmVxdWVzdC5oZWFkZXJzKSkge1xuICAgIGlmICh0eXBlb2YgcmF3ID09PSBcInN0cmluZ1wiKSBoZWFkZXJzLnNldChuYW1lLCByYXcpO1xuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocmF3KSkgaGVhZGVycy5zZXQobmFtZSwgcmF3LmpvaW4oXCIsIFwiKSk7XG4gIH1cbiAgcmV0dXJuIGhlYWRlcnM7XG59XG5cbmZ1bmN0aW9uIHJlY29yZCh2YWx1ZTogdW5rbm93bik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIH1cbiAgdGhyb3cgbmV3IE1vZGVsR2F0ZXdheUVycm9yKDQwMCwgXCJSZXF1ZXN0IGJvZHkgbXVzdCBiZSBhIEpTT04gb2JqZWN0XCIpO1xufVxuXG5mdW5jdGlvbiBvcHRpb25hbFNlYXJjaCh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgdGhyb3cgbmV3IE1vZGVsR2F0ZXdheUVycm9yKDQwMCwgXCJzZWFyY2ggbXVzdCBiZSBhIHN0cmluZ1wiKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHJlcXVlc3RDb250ZXh0KHJlcXVlc3Q6IGV4cHJlc3MuUmVxdWVzdCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIHtcbiAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuICAgIHBhdGg6IHJlcXVlc3QucGF0aCxcbiAgICByZXF1ZXN0SWQ6IHJlcXVlc3QuaGVhZGVyKFwieC1yZXF1ZXN0LWlkXCIpID8/IHJlcXVlc3QuaGVhZGVyKFwicmVxdWVzdC1pZFwiKSxcbiAgfTtcbn1cbiJdfQ==
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQWdCLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9ELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFdkQsMERBQTBEO0FBQzFELE1BQU0sVUFBVSxVQUFVLENBQUMsUUFBMEI7SUFDbkQsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCwyREFBMkQ7QUFDM0QsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVLENBQzlCLE9BQXFCLEVBQ3JCLE9BQXdCLEVBQ3hCLFFBQTBCO0lBRTFCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM3QixNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3hELElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FDbEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFDNUIsY0FB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Z2F0ZXdheSBzZXJ2aWNlLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gXCJub2RlOnN0cmVhbVwiO1xuaW1wb3J0IHsgcGlwZWxpbmUgfSBmcm9tIFwibm9kZTpzdHJlYW0vcHJvbWlzZXNcIjtcbmltcG9ydCB7IGxvZywgdG9FcnJvciB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgdHlwZSB7IENsaWVudFByb3RvY29sIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLW1vZGVsLWdhdGV3YXlcIjtcbmltcG9ydCB0eXBlIGV4cHJlc3MgZnJvbSBcImV4cHJlc3NcIjtcblxuaW1wb3J0IHsgQWlEZWNpZGVSb3V0ZXJFcnJvciB9IGZyb20gXCIuL2FpLWRlY2lkZS50c1wiO1xuaW1wb3J0IHsgTW9kZWxHYXRld2F5LCBNb2RlbEdhdGV3YXlFcnJvciB9IGZyb20gXCIuL2dhdGV3YXkudHNcIjtcbmltcG9ydCB7IFVuc3VwcG9ydGVkR2F0ZXdheUZlYXR1cmVFcnJvciB9IGZyb20gXCIuL3JvdXRlci50c1wiO1xuaW1wb3J0IHsgU21hcnRSb3V0ZXJFcnJvciB9IGZyb20gXCIuL3NtYXJ0LXJvdXRlci50c1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwiYXBwa2l0L21vZGVsLWdhdGV3YXkvaHR0cFwiKTtcblxuLyoqIFNlbmQgdGhlIGxpZ2h0d2VpZ2h0IGNvbXBhdGliaWxpdHkgaGVhbHRoIHJlc3BvbnNlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbmRIZWFsdGgocmVzcG9uc2U6IGV4cHJlc3MuUmVzcG9uc2UpOiB2b2lkIHtcbiAgcmVzcG9uc2UuanNvbih7IHJlYWR5OiB0cnVlIH0pO1xufVxuXG4vKiogU2VuZCB0aGUgYWN0aXZlIHByaW5jaXBhbCdzIGR5bmFtaWMgbW9kZWwgY2F0YWxvZ3VlLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRNb2RlbHMoXG4gIGdhdGV3YXk6IE1vZGVsR2F0ZXdheSxcbiAgcmVxdWVzdDogZXhwcmVzcy5SZXF1ZXN0LFxuICByZXNwb25zZTogZXhwcmVzcy5SZXNwb25zZSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBzdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuICBsb2dnZXIuZGVidWcoXCJtb2RlbHMgcmVxdWVzdFwiLCByZXF1ZXN0Q29udGV4dChyZXF1ZXN0KSk7XG4gIHRyeSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IGF3YWl0IGdhdGV3YXkubW9kZWxzKFxuICAgICAgcmVxdWVzdC5oZWFkZXIoXCJvcmlnaW5hdG9yXCIpLFxuICAgICAgb3B0aW9uYWxTZWFyY2gocmVxdWVzdC5xdWVyeS5zZWFyY2gpLFxuICAgICAgb3B0aW9uYWxNb2RlbFNvdXJjZShyZXF1ZXN0LnF1ZXJ5Lm1vZGVsX3NvdXJjZSA/PyByZXF1ZXN0LnF1ZXJ5Lm1vZGVsU291cmNlKSxcbiAgICAgIG9wdGlvbmFsQm9vbGVhbihyZXF1ZXN0LnF1ZXJ5Lm1ldGFkYXRhLCBcIm1ldGFkYXRhXCIpLFxuICAgICk7XG4gICAgcmVzcG9uc2UuanNvbihwYXlsb2FkKTtcbiAgICBsb2dnZXIuZGVidWcoXCJtb2RlbHMgcmVzcG9uc2VcIiwge1xuICAgICAgLi4ucmVxdWVzdENvbnRleHQocmVxdWVzdCksXG4gICAgICBlbGFwc2VkTXM6IERhdGUubm93KCkgLSBzdGFydGVkQXQsXG4gICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1c0NvZGUsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nZ2VyLmVycm9yKFwibW9kZWxzIHJlcXVlc3QgZmFpbGVkXCIsIHtcbiAgICAgIC4uLnJlcXVlc3RDb250ZXh0KHJlcXVlc3QpLFxuICAgICAgZWxhcHNlZE1zOiBEYXRlLm5vdygpIC0gc3RhcnRlZEF0LFxuICAgICAgZXJyb3I6IHRvRXJyb3IoZXJyb3IpLFxuICAgIH0pO1xuICAgIHNlbmRFcnJvcihcIm9wZW5haS1yZXNwb25zZXNcIiwgcmVzcG9uc2UsIGVycm9yKTtcbiAgfVxufVxuXG4vKiogRXhlY3V0ZSBhbmQgc3RyZWFtIG9uZSBtb2RlbCByZXF1ZXN0IHRocm91Z2ggRXhwcmVzcyB3aXRoIGNhbmNlbGxhdGlvbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kSW5mZXJlbmNlKFxuICBnYXRld2F5OiBNb2RlbEdhdGV3YXksXG4gIHByb3RvY29sOiBDbGllbnRQcm90b2NvbCxcbiAgcmVxdWVzdDogZXhwcmVzcy5SZXF1ZXN0LFxuICByZXNwb25zZTogZXhwcmVzcy5SZXNwb25zZSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBzdGFydGVkQXQgPSBEYXRlLm5vdygpO1xuICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBjb25zdCBhYm9ydCA9ICgpID0+IHtcbiAgICBpZiAocmVzcG9uc2Uud3JpdGFibGVFbmRlZCkgcmV0dXJuO1xuICAgIGxvZ2dlci5kZWJ1ZyhcImNsaWVudCBkaXNjb25uZWN0ZWRcIiwge1xuICAgICAgLi4ucmVxdWVzdENvbnRleHQocmVxdWVzdCksXG4gICAgICBlbGFwc2VkTXM6IERhdGUubm93KCkgLSBzdGFydGVkQXQsXG4gICAgICBwcm90b2NvbCxcbiAgICB9KTtcbiAgICBjb250cm9sbGVyLmFib3J0KG5ldyBFcnJvcihcIk1vZGVsIGdhdGV3YXkgY2xpZW50IGRpc2Nvbm5lY3RlZFwiKSk7XG4gIH07XG4gIHJlcXVlc3Qub25jZShcImFib3J0ZWRcIiwgYWJvcnQpO1xuICByZXNwb25zZS5vbmNlKFwiY2xvc2VcIiwgYWJvcnQpO1xuICB0cnkge1xuICAgIGNvbnN0IGJvZHkgPSByZWNvcmQocmVxdWVzdC5ib2R5KTtcbiAgICBsb2dnZXIuZGVidWcoXCJpbmZlcmVuY2UgcmVxdWVzdFwiLCB7XG4gICAgICAuLi5yZXF1ZXN0Q29udGV4dChyZXF1ZXN0KSxcbiAgICAgIG1vZGVsOiB0eXBlb2YgYm9keS5tb2RlbCA9PT0gXCJzdHJpbmdcIiA/IGJvZHkubW9kZWwgOiB1bmRlZmluZWQsXG4gICAgICBwcm90b2NvbCxcbiAgICAgIHN0cmVhbTogYm9keS5zdHJlYW0gPT09IHRydWUsXG4gICAgfSk7XG4gICAgY29uc3QgdXBzdHJlYW0gPSBhd2FpdCBnYXRld2F5LmluZmVyZW5jZShcbiAgICAgIHByb3RvY29sLFxuICAgICAgYm9keSxcbiAgICAgIHJlcXVlc3RIZWFkZXJzKHJlcXVlc3QpLFxuICAgICAgY29udHJvbGxlci5zaWduYWwsXG4gICAgKTtcbiAgICByZXNwb25zZS5zdGF0dXModXBzdHJlYW0uc3RhdHVzKTtcbiAgICB1cHN0cmVhbS5oZWFkZXJzLmZvckVhY2goKHZhbHVlLCBuYW1lKSA9PiByZXNwb25zZS5zZXRIZWFkZXIobmFtZSwgdmFsdWUpKTtcbiAgICBpZiAoIXVwc3RyZWFtLmJvZHkpIHtcbiAgICAgIHJlc3BvbnNlLmVuZCgpO1xuICAgICAgbG9nZ2VyLmRlYnVnKFwiaW5mZXJlbmNlIHJlc3BvbnNlXCIsIHtcbiAgICAgICAgLi4ucmVxdWVzdENvbnRleHQocmVxdWVzdCksXG4gICAgICAgIGVsYXBzZWRNczogRGF0ZS5ub3coKSAtIHN0YXJ0ZWRBdCxcbiAgICAgICAgcHJvdG9jb2wsXG4gICAgICAgIHN0YXR1czogdXBzdHJlYW0uc3RhdHVzLFxuICAgICAgICB1cHN0cmVhbVByb3RvY29sOiB1cHN0cmVhbS5oZWFkZXJzLmdldChcIngtZGJ4LXRvb2xzLXVwc3RyZWFtXCIpLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IHBpcGVsaW5lKFJlYWRhYmxlLmZyb21XZWIodXBzdHJlYW0uYm9keSBhcyBuZXZlciksIHJlc3BvbnNlKTtcbiAgICBsb2dnZXIuZGVidWcoXCJpbmZlcmVuY2Ugc3RyZWFtIGNvbXBsZXRlZFwiLCB7XG4gICAgICAuLi5yZXF1ZXN0Q29udGV4dChyZXF1ZXN0KSxcbiAgICAgIGVsYXBzZWRNczogRGF0ZS5ub3coKSAtIHN0YXJ0ZWRBdCxcbiAgICAgIHByb3RvY29sLFxuICAgICAgc3RhdHVzOiB1cHN0cmVhbS5zdGF0dXMsXG4gICAgICB1cHN0cmVhbVByb3RvY29sOiB1cHN0cmVhbS5oZWFkZXJzLmdldChcIngtZGJ4LXRvb2xzLXVwc3RyZWFtXCIpLFxuICAgIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChjb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICByZXNwb25zZS5kZXN0cm95KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxvZ2dlci5lcnJvcihcImluZmVyZW5jZSByZXF1ZXN0IGZhaWxlZFwiLCB7XG4gICAgICAuLi5yZXF1ZXN0Q29udGV4dChyZXF1ZXN0KSxcbiAgICAgIGVsYXBzZWRNczogRGF0ZS5ub3coKSAtIHN0YXJ0ZWRBdCxcbiAgICAgIGVycm9yOiB0b0Vycm9yKGVycm9yKSxcbiAgICAgIHByb3RvY29sLFxuICAgIH0pO1xuICAgIGlmIChyZXNwb25zZS5oZWFkZXJzU2VudCkge1xuICAgICAgcmVzcG9uc2UuZGVzdHJveShlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiB1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZW5kRXJyb3IocHJvdG9jb2wsIHJlc3BvbnNlLCBlcnJvcik7XG4gIH0gZmluYWxseSB7XG4gICAgcmVxdWVzdC5vZmYoXCJhYm9ydGVkXCIsIGFib3J0KTtcbiAgICByZXNwb25zZS5vZmYoXCJjbG9zZVwiLCBhYm9ydCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2VuZEVycm9yKHByb3RvY29sOiBDbGllbnRQcm90b2NvbCwgcmVzcG9uc2U6IGV4cHJlc3MuUmVzcG9uc2UsIGVycm9yOiB1bmtub3duKTogdm9pZCB7XG4gIGNvbnN0IHN0YXR1cyA9XG4gICAgZXJyb3IgaW5zdGFuY2VvZiBNb2RlbEdhdGV3YXlFcnJvciB8fFxuICAgIGVycm9yIGluc3RhbmNlb2YgQWlEZWNpZGVSb3V0ZXJFcnJvciB8fFxuICAgIGVycm9yIGluc3RhbmNlb2YgU21hcnRSb3V0ZXJFcnJvciB8fFxuICAgIGVycm9yIGluc3RhbmNlb2YgVW5zdXBwb3J0ZWRHYXRld2F5RmVhdHVyZUVycm9yXG4gICAgICA/IGVycm9yLnN0YXR1c1xuICAgICAgOiA1MDA7XG4gIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFwiTW9kZWwgZ2F0ZXdheSByZXF1ZXN0IGZhaWxlZFwiO1xuICBpZiAocHJvdG9jb2wgPT09IFwiYW50aHJvcGljLW1lc3NhZ2VzXCIpIHtcbiAgICByZXNwb25zZS5zdGF0dXMoc3RhdHVzKS5qc29uKHtcbiAgICAgIHR5cGU6IFwiZXJyb3JcIixcbiAgICAgIGVycm9yOiB7IHR5cGU6IHN0YXR1cyA8IDUwMCA/IFwiaW52YWxpZF9yZXF1ZXN0X2Vycm9yXCIgOiBcImFwaV9lcnJvclwiLCBtZXNzYWdlIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHJlc3BvbnNlLnN0YXR1cyhzdGF0dXMpLmpzb24oe1xuICAgIGVycm9yOiB7XG4gICAgICBtZXNzYWdlLFxuICAgICAgdHlwZTogc3RhdHVzIDwgNTAwID8gXCJpbnZhbGlkX3JlcXVlc3RfZXJyb3JcIiA6IFwiYXBpX2Vycm9yXCIsXG4gICAgICBjb2RlOiBzdGF0dXMsXG4gICAgfSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlcXVlc3RIZWFkZXJzKHJlcXVlc3Q6IGV4cHJlc3MuUmVxdWVzdCk6IEhlYWRlcnMge1xuICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgZm9yIChjb25zdCBbbmFtZSwgcmF3XSBvZiBPYmplY3QuZW50cmllcyhyZXF1ZXN0LmhlYWRlcnMpKSB7XG4gICAgaWYgKHR5cGVvZiByYXcgPT09IFwic3RyaW5nXCIpIGhlYWRlcnMuc2V0KG5hbWUsIHJhdyk7XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyYXcpKSBoZWFkZXJzLnNldChuYW1lLCByYXcuam9pbihcIiwgXCIpKTtcbiAgfVxuICByZXR1cm4gaGVhZGVycztcbn1cblxuZnVuY3Rpb24gcmVjb3JkKHZhbHVlOiB1bmtub3duKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfVxuICB0aHJvdyBuZXcgTW9kZWxHYXRld2F5RXJyb3IoNDAwLCBcIlJlcXVlc3QgYm9keSBtdXN0IGJlIGEgSlNPTiBvYmplY3RcIik7XG59XG5cbmZ1bmN0aW9uIG9wdGlvbmFsU2VhcmNoKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICB0aHJvdyBuZXcgTW9kZWxHYXRld2F5RXJyb3IoNDAwLCBcInNlYXJjaCBtdXN0IGJlIGEgc3RyaW5nXCIpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gb3B0aW9uYWxNb2RlbFNvdXJjZSh2YWx1ZTogdW5rbm93bik6IFwiZm91bmRhdGlvblwiIHwgXCJjdXN0b21cIiB8IFwiYWxsXCIge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFwiZm91bmRhdGlvblwiO1xuICBpZiAodmFsdWUgPT09IFwiZm91bmRhdGlvblwiIHx8IHZhbHVlID09PSBcImN1c3RvbVwiIHx8IHZhbHVlID09PSBcImFsbFwiKSByZXR1cm4gdmFsdWU7XG4gIHRocm93IG5ldyBNb2RlbEdhdGV3YXlFcnJvcig0MDAsIFwibW9kZWxfc291cmNlIG11c3QgYmUgZm91bmRhdGlvbiwgY3VzdG9tLCBvciBhbGxcIik7XG59XG5cbmZ1bmN0aW9uIG9wdGlvbmFsQm9vbGVhbih2YWx1ZTogdW5rbm93biwgbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgaWYgKHZhbHVlID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gIHRocm93IG5ldyBNb2RlbEdhdGV3YXlFcnJvcig0MDAsIGAke25hbWV9IG11c3QgYmUgdHJ1ZSBvciBmYWxzZWApO1xufVxuXG5mdW5jdGlvbiByZXF1ZXN0Q29udGV4dChyZXF1ZXN0OiBleHByZXNzLlJlcXVlc3QpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHJldHVybiB7XG4gICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICBwYXRoOiByZXF1ZXN0LnBhdGgsXG4gICAgcmVxdWVzdElkOiByZXF1ZXN0LmhlYWRlcihcIngtcmVxdWVzdC1pZFwiKSA/PyByZXF1ZXN0LmhlYWRlcihcInJlcXVlc3QtaWRcIiksXG4gIH07XG59XG4iXX0=
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { type WorkspaceClient } from "@databricks/appkit";
|
|
7
7
|
import { type ClientProtocol, type ModelTarget, type RequestedFeatures, type SmartRouterHarness, type SmartRouterObservation, type SmartRouterRequest } from "@dbx-tools/shared-model-gateway";
|
|
8
8
|
import { z } from "zod";
|
|
9
|
+
import { type NormalizedModelContext } from "./model-context.ts";
|
|
9
10
|
/** Runtime settings for Smart Router. */
|
|
10
11
|
export interface SmartRouterSettings {
|
|
11
12
|
readonly contextTokenBudget: number;
|
|
@@ -55,11 +56,7 @@ export interface SmartRouterResult {
|
|
|
55
56
|
readonly target: ModelTarget;
|
|
56
57
|
}
|
|
57
58
|
/** Bounded task context extracted from an arbitrary supported input shape. */
|
|
58
|
-
export
|
|
59
|
-
readonly continuation: boolean;
|
|
60
|
-
readonly logicalTurn: string;
|
|
61
|
-
readonly task: string;
|
|
62
|
-
}
|
|
59
|
+
export type SmartRouterContext = NormalizedModelContext;
|
|
63
60
|
/** Error carrying an HTTP status for Smart Router validation or availability failures. */
|
|
64
61
|
export declare class SmartRouterError extends Error {
|
|
65
62
|
readonly status: number;
|
|
@@ -128,9 +125,9 @@ export declare class SmartRouterContextBuilder {
|
|
|
128
125
|
private readonly tokenBudget;
|
|
129
126
|
constructor(tokenBudget?: number);
|
|
130
127
|
/** Return only the bounded task prompt required by routes:select. */
|
|
131
|
-
build(input: unknown): string
|
|
128
|
+
build(input: unknown): Promise<string>;
|
|
132
129
|
/** Return bounded task text plus logical-turn metadata used for pinning. */
|
|
133
|
-
analyze(input: unknown): SmartRouterContext
|
|
130
|
+
analyze(input: unknown): Promise<SmartRouterContext>;
|
|
134
131
|
}
|
|
135
132
|
/** Smart Router orchestration shared by Responses, Chat Completions, and Messages. */
|
|
136
133
|
export declare class SmartModelRouter {
|