@dbx-tools/model 0.9.37 → 0.9.40

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/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
 
5
5
  export const PACKAGE_IDENTIFIER = "@dbx-tools/model";
6
- export const PACKAGE_VERSION = "0.9.37";
6
+ export const PACKAGE_VERSION = "0.9.40";
7
7
  export * as classes from "./src/classes.ts";
8
8
  export * as classify from "./src/classify.ts";
9
9
  export * as fallback from "./src/fallback.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/model";
2
- export declare const PACKAGE_VERSION = "0.9.37";
2
+ export declare const PACKAGE_VERSION = "0.9.40";
3
3
  export * as classes from "./src/classes.ts";
4
4
  export * as classify from "./src/classify.ts";
5
5
  export * as fallback from "./src/fallback.ts";
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // Regenerated from the exporting modules in ./src.
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
  export const PACKAGE_IDENTIFIER = "@dbx-tools/model";
5
- export const PACKAGE_VERSION = "0.9.37";
5
+ export const PACKAGE_VERSION = "0.9.40";
6
6
  export * as classes from "./src/classes.js";
7
7
  export * as classify from "./src/classify.js";
8
8
  export * as fallback from "./src/fallback.js";
@@ -23,4 +23,4 @@ export { DEFAULT_MODEL_CACHE_TTL_MS, DEFAULT_FUZZY_THRESHOLD } from "./src/model
23
23
  export { DEFAULT_MODEL_CLIENT_CACHE_TTL_MS } from "./src/model-client.js";
24
24
  export { REASONING_LEVELS } from "./src/reasoning-translation.js";
25
25
  export * from "./exports.js";
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssYUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxvQkFBb0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxXQUFXLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNLLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxMLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSWxFLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9tb2RlbFwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjM3XCI7XG5leHBvcnQgKiBhcyBjbGFzc2VzIGZyb20gXCIuL3NyYy9jbGFzc2VzLnRzXCI7XG5leHBvcnQgKiBhcyBjbGFzc2lmeSBmcm9tIFwiLi9zcmMvY2xhc3NpZnkudHNcIjtcbmV4cG9ydCAqIGFzIGZhbGxiYWNrIGZyb20gXCIuL3NyYy9mYWxsYmFjay50c1wiO1xuZXhwb3J0ICogYXMgaW52b2tlIGZyb20gXCIuL3NyYy9pbnZva2UudHNcIjtcbmV4cG9ydCAqIGFzIG1ldGFkYXRhIGZyb20gXCIuL3NyYy9tZXRhZGF0YS50c1wiO1xuZXhwb3J0ICogYXMgbWV0YWRhdGFDYWNoZSBmcm9tIFwiLi9zcmMvbWV0YWRhdGEtY2FjaGUudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsQ2F0YWxvZyBmcm9tIFwiLi9zcmMvbW9kZWwtY2F0YWxvZy50c1wiO1xuZXhwb3J0ICogYXMgbW9kZWxDbGllbnQgZnJvbSBcIi4vc3JjL21vZGVsLWNsaWVudC50c1wiO1xuZXhwb3J0ICogYXMgcG9saWN5IGZyb20gXCIuL3NyYy9wb2xpY3kudHNcIjtcbmV4cG9ydCAqIGFzIHJlYXNvbmluZ1RyYW5zbGF0aW9uIGZyb20gXCIuL3NyYy9yZWFzb25pbmctdHJhbnNsYXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIHJlc29sdmUgZnJvbSBcIi4vc3JjL3Jlc29sdmUudHNcIjtcbmV4cG9ydCAqIGFzIHNlcnZpbmdXaXJlIGZyb20gXCIuL3NyYy9zZXJ2aW5nLXdpcmUudHNcIjtcbmV4cG9ydCB7IENIQVRfQ0xBU1NfT1JERVIsIE1PREVMX0NMQVNTX09SREVSIH0gZnJvbSBcIi4vc3JjL2NsYXNzZXMudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX01PREVMX0lEUyB9IGZyb20gXCIuL3NyYy9mYWxsYmFjay50c1wiO1xuZXhwb3J0IHsgSU5WT0NBVElPTlNfU1VGRklYLCBSRVNQT05TRVNfUEFUSCwgT1BFTl9SRVNQT05TRVNfUEFUSCwgQ0hBVF9DT01QTEVUSU9OU19QQVRILCBBSV9HQVRFV0FZX0NPREVYX1JFU1BPTlNFU19QQVRILCBBTlRIUk9QSUNfTUVTU0FHRVNfUEFUSCB9IGZyb20gXCIuL3NyYy9pbnZva2UudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aGVudGljYXRpbmdDbGllbnRMaWtlIH0gZnJvbSBcIi4vc3JjL2ludm9rZS50c1wiO1xuZXhwb3J0IHsgTU9ERUxfTUVUQURBVEFfVFRMX01TLCBNT0RFTF9SQVRFX0xJTUlUU19VUkwsIE9QRU5BSV9SRVNQT05TRVNfTU9ERUxTX1VSTCwgUVVFUllfUkVBU09OX01PREVMU19VUkwsIFJFVElSRURfTU9ERUxTX1VSTCwgV0VCX1NFQVJDSF9NT0RFTFNfVVJMIH0gZnJvbSBcIi4vc3JjL21ldGFkYXRhLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1ldGFkYXRhQ2FjaGVSZWNvcmQsIE1ldGFkYXRhQ2FjaGVPcHRpb25zLCBNZXRhZGF0YUNhY2hlTWVyZ2VJbnB1dCwgTWV0YWRhdGFDYWNoZSB9IGZyb20gXCIuL3NyYy9tZXRhZGF0YS1jYWNoZS50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9NT0RFTF9DQUNIRV9UVExfTVMsIERFRkFVTFRfRlVaWllfVEhSRVNIT0xEIH0gZnJvbSBcIi4vc3JjL21vZGVsLWNhdGFsb2cudHNcIjtcbmV4cG9ydCB0eXBlIHsgV29ya3NwYWNlQ2xpZW50TGlrZSwgTGlzdFNlcnZpbmdFbmRwb2ludHNPcHRpb25zIH0gZnJvbSBcIi4vc3JjL21vZGVsLWNhdGFsb2cudHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfTU9ERUxfQ0xJRU5UX0NBQ0hFX1RUTF9NUyB9IGZyb20gXCIuL3NyYy9tb2RlbC1jbGllbnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxBdXRoT3B0aW9ucywgTW9kZWxDbGllbnRPcHRpb25zLCBNb2RlbENsaWVudFN0YXR1cywgTW9kZWxQcm90b2NvbCwgTW9kZWxSb3V0ZUlucHV0LCBNb2RlbFJvdXRlLCBNb2RlbENsaWVudCB9IGZyb20gXCIuL3NyYy9tb2RlbC1jbGllbnQudHNcIjtcbmV4cG9ydCB7IFJFQVNPTklOR19MRVZFTFMgfSBmcm9tIFwiLi9zcmMvcmVhc29uaW5nLXRyYW5zbGF0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlYXNvbmluZ0xldmVsLCBSZWFzb25pbmdNb2RlbENhdGFsb2d1ZSwgQWRhcHRlZFJlcXVlc3RSZWFzb25pbmcgfSBmcm9tIFwiLi9zcmMvcmVhc29uaW5nLXRyYW5zbGF0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNlbGVjdE1vZGVsSW5wdXQsIFNlYXJjaE1vZGVsc0lucHV0IH0gZnJvbSBcIi4vc3JjL3Jlc29sdmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgU2VydmluZ0NoYXRNZXNzYWdlLCBSZXdyaXR0ZW5TZXJ2aW5nUmVxdWVzdCB9IGZyb20gXCIuL3NyYy9zZXJ2aW5nLXdpcmUudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4cG9ydHMudHNcIjtcbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNyRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssYUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxvQkFBb0IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxXQUFXLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNLLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxMLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSWxFLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9tb2RlbFwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjQwXCI7XG5leHBvcnQgKiBhcyBjbGFzc2VzIGZyb20gXCIuL3NyYy9jbGFzc2VzLnRzXCI7XG5leHBvcnQgKiBhcyBjbGFzc2lmeSBmcm9tIFwiLi9zcmMvY2xhc3NpZnkudHNcIjtcbmV4cG9ydCAqIGFzIGZhbGxiYWNrIGZyb20gXCIuL3NyYy9mYWxsYmFjay50c1wiO1xuZXhwb3J0ICogYXMgaW52b2tlIGZyb20gXCIuL3NyYy9pbnZva2UudHNcIjtcbmV4cG9ydCAqIGFzIG1ldGFkYXRhIGZyb20gXCIuL3NyYy9tZXRhZGF0YS50c1wiO1xuZXhwb3J0ICogYXMgbWV0YWRhdGFDYWNoZSBmcm9tIFwiLi9zcmMvbWV0YWRhdGEtY2FjaGUudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVsQ2F0YWxvZyBmcm9tIFwiLi9zcmMvbW9kZWwtY2F0YWxvZy50c1wiO1xuZXhwb3J0ICogYXMgbW9kZWxDbGllbnQgZnJvbSBcIi4vc3JjL21vZGVsLWNsaWVudC50c1wiO1xuZXhwb3J0ICogYXMgcG9saWN5IGZyb20gXCIuL3NyYy9wb2xpY3kudHNcIjtcbmV4cG9ydCAqIGFzIHJlYXNvbmluZ1RyYW5zbGF0aW9uIGZyb20gXCIuL3NyYy9yZWFzb25pbmctdHJhbnNsYXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIHJlc29sdmUgZnJvbSBcIi4vc3JjL3Jlc29sdmUudHNcIjtcbmV4cG9ydCAqIGFzIHNlcnZpbmdXaXJlIGZyb20gXCIuL3NyYy9zZXJ2aW5nLXdpcmUudHNcIjtcbmV4cG9ydCB7IENIQVRfQ0xBU1NfT1JERVIsIE1PREVMX0NMQVNTX09SREVSIH0gZnJvbSBcIi4vc3JjL2NsYXNzZXMudHNcIjtcbmV4cG9ydCB7IEZBTExCQUNLX01PREVMX0lEUyB9IGZyb20gXCIuL3NyYy9mYWxsYmFjay50c1wiO1xuZXhwb3J0IHsgSU5WT0NBVElPTlNfU1VGRklYLCBSRVNQT05TRVNfUEFUSCwgT1BFTl9SRVNQT05TRVNfUEFUSCwgQ0hBVF9DT01QTEVUSU9OU19QQVRILCBBSV9HQVRFV0FZX0NPREVYX1JFU1BPTlNFU19QQVRILCBBTlRIUk9QSUNfTUVTU0FHRVNfUEFUSCB9IGZyb20gXCIuL3NyYy9pbnZva2UudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aGVudGljYXRpbmdDbGllbnRMaWtlIH0gZnJvbSBcIi4vc3JjL2ludm9rZS50c1wiO1xuZXhwb3J0IHsgTU9ERUxfTUVUQURBVEFfVFRMX01TLCBNT0RFTF9SQVRFX0xJTUlUU19VUkwsIE9QRU5BSV9SRVNQT05TRVNfTU9ERUxTX1VSTCwgUVVFUllfUkVBU09OX01PREVMU19VUkwsIFJFVElSRURfTU9ERUxTX1VSTCwgV0VCX1NFQVJDSF9NT0RFTFNfVVJMIH0gZnJvbSBcIi4vc3JjL21ldGFkYXRhLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1ldGFkYXRhQ2FjaGVSZWNvcmQsIE1ldGFkYXRhQ2FjaGVPcHRpb25zLCBNZXRhZGF0YUNhY2hlTWVyZ2VJbnB1dCwgTWV0YWRhdGFDYWNoZSB9IGZyb20gXCIuL3NyYy9tZXRhZGF0YS1jYWNoZS50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9NT0RFTF9DQUNIRV9UVExfTVMsIERFRkFVTFRfRlVaWllfVEhSRVNIT0xEIH0gZnJvbSBcIi4vc3JjL21vZGVsLWNhdGFsb2cudHNcIjtcbmV4cG9ydCB0eXBlIHsgV29ya3NwYWNlQ2xpZW50TGlrZSwgTGlzdFNlcnZpbmdFbmRwb2ludHNPcHRpb25zIH0gZnJvbSBcIi4vc3JjL21vZGVsLWNhdGFsb2cudHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfTU9ERUxfQ0xJRU5UX0NBQ0hFX1RUTF9NUyB9IGZyb20gXCIuL3NyYy9tb2RlbC1jbGllbnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxBdXRoT3B0aW9ucywgTW9kZWxDbGllbnRPcHRpb25zLCBNb2RlbENsaWVudFN0YXR1cywgTW9kZWxQcm90b2NvbCwgTW9kZWxSb3V0ZUlucHV0LCBNb2RlbFJvdXRlLCBNb2RlbENsaWVudCB9IGZyb20gXCIuL3NyYy9tb2RlbC1jbGllbnQudHNcIjtcbmV4cG9ydCB7IFJFQVNPTklOR19MRVZFTFMgfSBmcm9tIFwiLi9zcmMvcmVhc29uaW5nLXRyYW5zbGF0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlYXNvbmluZ0xldmVsLCBSZWFzb25pbmdNb2RlbENhdGFsb2d1ZSwgQWRhcHRlZFJlcXVlc3RSZWFzb25pbmcgfSBmcm9tIFwiLi9zcmMvcmVhc29uaW5nLXRyYW5zbGF0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNlbGVjdE1vZGVsSW5wdXQsIFNlYXJjaE1vZGVsc0lucHV0IH0gZnJvbSBcIi4vc3JjL3Jlc29sdmUudHNcIjtcbmV4cG9ydCB0eXBlIHsgU2VydmluZ0NoYXRNZXNzYWdlLCBSZXdyaXR0ZW5TZXJ2aW5nUmVxdWVzdCB9IGZyb20gXCIuL3NyYy9zZXJ2aW5nLXdpcmUudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4cG9ydHMudHNcIjtcbiJdfQ==
@@ -2,6 +2,8 @@
2
2
  import { type ReasoningEffort, type ServingEndpointSummary } from "@dbx-tools/shared-model/contracts";
3
3
  /** Return the normalized family parsed from a model identity. */
4
4
  export declare function modelFamily(name: string): string | undefined;
5
+ /** Rank a family by how major it is; unrecognized families sort last. */
6
+ export declare function modelFamilyRank(family: string): number;
5
7
  /** Normalize a recognized model identity into family, version, and variant tokens. */
6
8
  export declare function modelSearchQuery(name: string): string | undefined;
7
9
  /** Return the reasoning efforts accepted by a model family. */
package/lib/src/policy.js CHANGED
@@ -2,19 +2,19 @@
2
2
  import { ModelClass, } from "@dbx-tools/shared-model/contracts";
3
3
  import { supportsToolsByFamily } from "./classify.js";
4
4
  const FAMILIES = [
5
- "bge",
6
5
  "claude",
7
- "deepseek",
8
- "gemini",
9
- "gemma",
10
- "glm",
11
6
  "gpt",
12
- "grok",
13
- "gte",
14
- "inkling",
15
- "kimi",
7
+ "gemini",
16
8
  "llama",
9
+ "grok",
10
+ "deepseek",
17
11
  "qwen",
12
+ "glm",
13
+ "kimi",
14
+ "gemma",
15
+ "inkling",
16
+ "bge",
17
+ "gte",
18
18
  ];
19
19
  const STANDARD = ["low", "medium", "high"];
20
20
  const GPT_5_6 = ["none", "low", "medium", "high", "xhigh", "max"];
@@ -25,6 +25,11 @@ const GEMINI = ["minimal", "low", "medium", "high"];
25
25
  export function modelFamily(name) {
26
26
  return parseModelName(name)?.family;
27
27
  }
28
+ /** Rank a family by how major it is; unrecognized families sort last. */
29
+ export function modelFamilyRank(family) {
30
+ const index = FAMILIES.indexOf(family);
31
+ return index >= 0 ? index : FAMILIES.length;
32
+ }
28
33
  /** Normalize a recognized model identity into family, version, and variant tokens. */
29
34
  export function modelSearchQuery(name) {
30
35
  const parsed = parseModelName(name);
@@ -182,4 +187,4 @@ function parseModelName(name) {
182
187
  model: [...remainder.slice(0, versionStart), ...remainder.slice(cursor)],
183
188
  };
184
189
  }
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtRUFBbUU7QUFFbkUsT0FBTyxFQUNMLFVBQVUsR0FHWCxNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxNQUFNLFFBQVEsR0FBRztJQUNmLEtBQUs7SUFDTCxRQUFRO0lBQ1IsVUFBVTtJQUNWLFFBQVE7SUFDUixPQUFPO0lBQ1AsS0FBSztJQUNMLEtBQUs7SUFDTCxNQUFNO0lBQ04sS0FBSztJQUNMLFNBQVM7SUFDVCxNQUFNO0lBQ04sT0FBTztJQUNQLE1BQU07Q0FDRSxDQUFDO0FBRVgsTUFBTSxRQUFRLEdBQXNCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5RCxNQUFNLE9BQU8sR0FBc0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JGLE1BQU0sV0FBVyxHQUFzQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkUsTUFBTSxNQUFNLEdBQXNCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0YsTUFBTSxNQUFNLEdBQXNCLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFRdkUsaUVBQWlFO0FBQ2pFLE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUN0QyxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7QUFDdEMsQ0FBQztBQUVELHNGQUFzRjtBQUN0RixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWTtJ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RyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxRQUFRLElBQUksQ0FBQztZQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLFlBQVksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN0QixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxRQUFRLElBQUksQ0FBQztZQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLFlBQVksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxJQUFJLFlBQVksR0FBRyxDQUFDO1FBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUN2RSxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDN0IsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDO0lBQzFCLE9BQU8sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdEYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU87UUFDTCxNQUFNO1FBQ04sT0FBTztRQUNQLEtBQUssRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3pFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFR5cGVTY3JpcHQtb3duZWQgbW9kZWwtZmFtaWx5IGFuZCBzZXJ2aW5nIGNhcGFiaWxpdHkgcG9saWN5LiAqL1xuXG5pbXBvcnQge1xuICBNb2RlbENsYXNzLFxuICB0eXBlIFJlYXNvbmluZ0VmZm9ydCxcbiAgdHlwZSBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5LFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbW9kZWwvY29udHJhY3RzXCI7XG5cbmltcG9ydCB7IHN1cHBvcnRzVG9vbHNCeUZhbWlseSB9IGZyb20gXCIuL2NsYXNzaWZ5LnRzXCI7XG5cbmNvbnN0IEZBTUlMSUVTID0gW1xuICBcImJnZVwiLFxuICBcImNsYXVkZVwiLFxuICBcImRlZXBzZWVrXCIsXG4gIFwiZ2VtaW5pXCIsXG4gIFwiZ2VtbWFcIixcbiAgXCJnbG1cIixcbiAgXCJncHRcIixcbiAgXCJncm9rXCIsXG4gIFwiZ3RlXCIsXG4gIFwiaW5rbGluZ1wiLFxuICBcImtpbWlcIixcbiAgXCJsbGFtYVwiLFxuICBcInF3ZW5cIixcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IFNUQU5EQVJEOiBSZWFzb25pbmdFZmZvcnRbXSA9IFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5jb25zdCBHUFRfNV82OiBSZWFzb25pbmdFZmZvcnRbXSA9IFtcIm5vbmVcIiwgXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIiwgXCJtYXhcIl07XG5jb25zdCBHUFRfNV81X1BSTzogUmVhc29uaW5nRWZmb3J0W10gPSBbXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIl07XG5jb25zdCBDTEFVREU6IFJlYXNvbmluZ0VmZm9ydFtdID0gW1wibm9uZVwiLCBcIm1pbmltYWxcIiwgXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIiwgXCJtYXhcIl07XG5jb25zdCBHRU1JTkk6IFJlYXNvbmluZ0VmZm9ydFtdID0gW1wibWluaW1hbFwiLCBcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5cbmludGVyZmFjZSBQYXJzZWRNb2RlbE5hbWUge1xuICBmYW1pbHk6ICh0eXBlb2YgRkFNSUxJRVMpW251bWJlcl07XG4gIHZlcnNpb246IG51bWJlcltdO1xuICBtb2RlbDogc3RyaW5nW107XG59XG5cbi8qKiBSZXR1cm4gdGhlIG5vcm1hbGl6ZWQgZmFtaWx5IHBhcnNlZCBmcm9tIGEgbW9kZWwgaWRlbnRpdHkuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxGYW1pbHkobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHBhcnNlTW9kZWxOYW1lKG5hbWUpPy5mYW1pbHk7XG59XG5cbi8qKiBOb3JtYWxpemUgYSByZWNvZ25pemVkIG1vZGVsIGlkZW50aXR5IGludG8gZmFtaWx5LCB2ZXJzaW9uLCBhbmQgdmFyaWFudCB0b2tlbnMuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxTZWFyY2hRdWVyeShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZU1vZGVsTmFtZShuYW1lKTtcbiAgaWYgKCFwYXJzZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiBbcGFyc2VkLmZhbWlseSwgLi4ucGFyc2VkLnZlcnNpb24ubWFwKFN0cmluZyksIC4uLnBhcnNlZC5tb2RlbF0uam9pbihcIiBcIik7XG59XG5cbi8qKiBSZXR1cm4gdGhlIHJlYXNvbmluZyBlZmZvcnRzIGFjY2VwdGVkIGJ5IGEgbW9kZWwgZmFtaWx5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsUmVhc29uaW5nRWZmb3J0cyhuYW1lOiBzdHJpbmcpOiBSZWFzb25pbmdFZmZvcnRbXSB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlTW9kZWxOYW1lKG5hbWUpO1xuICBsZXQgZWZmb3J0czogUmVhc29uaW5nRWZmb3J0W10gPSBbXTtcbiAgaWYgKHBhcnNlZD8uZmFtaWx5ID09PSBcImdwdFwiICYmIHBhcnNlZC52ZXJzaW9uLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBbbWFqb3IgPSAwLCBtaW5vciA9IDBdID0gcGFyc2VkLnZlcnNpb247XG4gICAgaWYgKG1ham9yID49IDUpIHtcbiAgICAgIGVmZm9ydHMgPVxuICAgICAgICBtYWpvciA9PT0gNSAmJiBtaW5vciA9PT0gNSAmJiBwYXJzZWQubW9kZWwuaW5jbHVkZXMoXCJwcm9cIilcbiAgICAgICAgICA/IEdQVF81XzVfUFJPXG4gICAgICAgICAgOiBtYWpvciA9PT0gNSAmJiBtaW5vciA9PT0gNlxuICAgICAgICAgICAgPyBHUFRfNV82XG4gICAgICAgICAgICA6IFNUQU5EQVJEO1xuICAgIH1cbiAgfVxuICBpZiAocGFyc2VkPy5mYW1pbHkgPT09IFwiZ3B0XCIgJiYgcGFyc2VkLm1vZGVsLmluY2x1ZGVzKFwib3NzXCIpKSBlZmZvcnRzID0gU1RBTkRBUkQ7XG4gIGlmIChwYXJzZWQ/LmZhbWlseSA9PT0gXCJjbGF1ZGVcIikge1xuICAgIGNvbnN0IFttYWpvciA9IDAsIG1pbm9yID0gMF0gPSBwYXJzZWQudmVyc2lvbjtcbiAgICBpZiAobWFqb3IgPiAzIHx8IChtYWpvciA9PT0gMyAmJiBtaW5vciA+PSA3KSkgZWZmb3J0cyA9IENMQVVERTtcbiAgfVxuICBpZiAocGFyc2VkPy5mYW1pbHkgPT09IFwiZ2VtaW5pXCIpIGVmZm9ydHMgPSBHRU1JTkk7XG4gIGlmIChub3JtYWxpemVkLmluY2x1ZGVzKFwiY29kZXhcIikgfHwgLyg/Ol58Wy1fLi9dKW8oPzoxfDN8NCkoPzpbLV8uL118JCkvaS50ZXN0KG5hbWUpKSB7XG4gICAgZWZmb3J0cyA9IFNUQU5EQVJEO1xuICB9XG4gIHJldHVybiBlZmZvcnRzO1xufVxuXG4vKiogUmV0dXJuIHdoZXRoZXIgcG9saWN5IHZlcmlmaWVzIGEgY29tcGxldGUgdG9vbC1jYWxsaW5nIHJvdW5kIHRyaXAuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxTdXBwb3J0c1Rvb2xzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gc3VwcG9ydHNUb29sc0J5RmFtaWx5KG5hbWUpO1xufVxuXG4vKiogUmV0dXJuIHdoZXRoZXIgYSBkaXNjb3ZlcmVkIGVuZHBvaW50IGNhbiBiZSB1c2VkIGZvciBhIHRvb2wtY2FsbGluZyBjaGF0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuZHBvaW50U3VwcG9ydHNUb29scyhlbmRwb2ludDogU2VydmluZ0VuZHBvaW50U3VtbWFyeSk6IGJvb2xlYW4ge1xuICBjb25zdCBlbWJlZGRpbmcgPVxuICAgIGVuZHBvaW50LnRhc2sgPT09IFwibGxtL3YxL2VtYmVkZGluZ3NcIiB8fCBlbmRwb2ludC5jbGFzcyA9PT0gTW9kZWxDbGFzcy5FbWJlZGRpbmc7XG4gIGNvbnN0IGNoYXQgPSAhZW1iZWRkaW5nICYmIChlbmRwb2ludC50YXNrID09PSBcImxsbS92MS9jaGF0XCIgfHwgZW5kcG9pbnQuY2xhc3MgIT09IHVuZGVmaW5lZCk7XG4gIHJldHVybiBjaGF0ICYmIChlbmRwb2ludC5zdXBwb3J0c1Rvb2xzID8/IG1vZGVsU3VwcG9ydHNUb29scyhlbmRwb2ludC5uYW1lKSk7XG59XG5cbi8qKiBSZXR1cm4gd2hldGhlciBhIG1vZGVsIHJlcXVpcmVzIERhdGFicmlja3MnIG5hdGl2ZSBSZXNwb25zZXMgZW5kcG9pbnQuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZXNwb25zZXNPbmx5KG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAobmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiY29kZXhcIikpIHJldHVybiB0cnVlO1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZU1vZGVsTmFtZShuYW1lKTtcbiAgaWYgKCFwYXJzZWQgfHwgcGFyc2VkLmZhbWlseSAhPT0gXCJncHRcIiB8fCBwYXJzZWQubW9kZWwuaW5jbHVkZXMoXCJvc3NcIikpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgW21ham9yID0gMCwgbWlub3IgPSAwXSA9IHBhcnNlZC52ZXJzaW9uO1xuICByZXR1cm4gbWFqb3IgPiA1IHx8IChtYWpvciA9PT0gNSAmJiBtaW5vciA+PSA0KTtcbn1cblxuLyoqIFJldHVybiB0aGUgRGF0YWJyaWNrcyBpbmZlcmVuY2UgcHJvdG9jb2wgcmVxdWlyZWQgYnkgYSBtb2RlbC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbFNlcnZpbmdBcGkobmFtZTogc3RyaW5nKTogXCJjaGF0XCIgfCBcInJlc3BvbnNlc1wiIHtcbiAgcmV0dXJuIGlzUmVzcG9uc2VzT25seShuYW1lKSA/IFwicmVzcG9uc2VzXCIgOiBcImNoYXRcIjtcbn1cblxuLyoqIFJldHVybiB0aGUgQ2hhdCBDb21wbGV0aW9ucyBlZmZvcnQgcmVxdWlyZWQgd2hlbiBmdW5jdGlvbiB0b29scyBhcmUgcHJlc2VudC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGF0VG9vbFJlYXNvbmluZ0VmZm9ydChuYW1lOiBzdHJpbmcpOiBSZWFzb25pbmdFZmZvcnQgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZU1vZGVsTmFtZShuYW1lKTtcbiAgaWYgKCFwYXJzZWQgfHwgcGFyc2VkLmZhbWlseSAhPT0gXCJncHRcIikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgW21ham9yID0gMCwgbWlub3IgPSAwXSA9IHBhcnNlZC52ZXJzaW9uO1xuICByZXR1cm4gbWFqb3IgPT09IDUgJiYgbWlub3IgPT09IDYgPyBcIm5vbmVcIiA6IHVuZGVmaW5lZDtcbn1cblxuLyoqIERlcml2ZSBwcm92aWRlci1zcGVjaWZpYyBtb2RlbCBuYW1lcyBmcm9tIGEgRGF0YWJyaWNrcyBtb2RlbCBpZGVudGl0eS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbFNlcnZpY2VOYW1lcyhuYW1lOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VNb2RlbE5hbWUobmFtZSk7XG4gIGlmICghcGFyc2VkKSByZXR1cm4ge307XG4gIGNvbnN0IHZlcnNpb24gPSBwYXJzZWQudmVyc2lvbi5qb2luKFwiLlwiKTtcbiAgY29uc3Qgc3VmZml4ID0gcGFyc2VkLm1vZGVsLmxlbmd0aCA/IGAtJHtwYXJzZWQubW9kZWwuam9pbihcIi1cIil9YCA6IFwiXCI7XG4gIHN3aXRjaCAocGFyc2VkLmZhbWlseSkge1xuICAgIGNhc2UgXCJncHRcIjpcbiAgICAgIHJldHVybiBwYXJzZWQubW9kZWwuaW5jbHVkZXMoXCJvc3NcIikgPyB7fSA6IHsgb3BlbmFpOiBgZ3B0LSR7dmVyc2lvbn0ke3N1ZmZpeH1gIH07XG4gICAgY2FzZSBcImNsYXVkZVwiOiB7XG4gICAgICBjb25zdCBbdmFyaWFudCwgLi4ucmVzdF0gPSBwYXJzZWQubW9kZWw7XG4gICAgICByZXR1cm4gdmFyaWFudFxuICAgICAgICA/IHsgYW50aHJvcGljOiBgY2xhdWRlLSR7dmFyaWFudH0tJHt2ZXJzaW9ufSR7cmVzdC5sZW5ndGggPyBgLSR7cmVzdC5qb2luKFwiLVwiKX1gIDogXCJcIn1gIH1cbiAgICAgICAgOiB7fTtcbiAgICB9XG4gICAgY2FzZSBcImdlbWluaVwiOlxuICAgIGNhc2UgXCJnZW1tYVwiOlxuICAgICAgcmV0dXJuIHsgZ29vZ2xlOiBgJHtwYXJzZWQuZmFtaWx5fS0ke3ZlcnNpb259JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJnbG1cIjpcbiAgICAgIHJldHVybiB7IHpoaXB1OiBgZ2xtLSR7dmVyc2lvbn0ke3N1ZmZpeH1gIH07XG4gICAgY2FzZSBcImdyb2tcIjpcbiAgICAgIHJldHVybiB7IHhhaTogYGdyb2stJHt2ZXJzaW9ufSR7c3VmZml4fWAgfTtcbiAgICBjYXNlIFwibGxhbWFcIjpcbiAgICAgIHJldHVybiB7IG1ldGE6IGBsbGFtYS0ke3ZlcnNpb259JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJxd2VuXCI6XG4gICAgICByZXR1cm4geyBhbGliYWJhOiBgcXdlbiR7dmVyc2lvbn0ke3N1ZmZpeH1gIH07XG4gICAgY2FzZSBcImRlZXBzZWVrXCI6XG4gICAgICByZXR1cm4geyBkZWVwc2VlazogYGRlZXBzZWVrLXYke3BhcnNlZC52ZXJzaW9uWzBdID8/IFwiXCJ9JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJraW1pXCI6XG4gICAgICByZXR1cm4geyBtb29uc2hvdDogYGtpbWktayR7cGFyc2VkLnZlcnNpb25bMF0gPz8gXCJcIn0ke3N1ZmZpeH1gIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZU1vZGVsTmFtZShuYW1lOiBzdHJpbmcpOiBQYXJzZWRNb2RlbE5hbWUgfCB1bmRlZmluZWQge1xuICBjb25zdCB0b2tlbnMgPSBuYW1lLnRvTG93ZXJDYXNlKCkubWF0Y2goL1thLXowLTldKy9nKSA/PyBbXTtcbiAgbGV0IGZhbWlseUluZGV4ID0gLTE7XG4gIGxldCBmYW1pbHk6IFBhcnNlZE1vZGVsTmFtZVtcImZhbWlseVwiXSB8IHVuZGVmaW5lZDtcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRva2Vucy5sZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBjb25zdCB0b2tlbiA9IHRva2Vuc1tpbmRleF0hO1xuICAgIGNvbnN0IGNvbXBhY3RRd2VuID0gL15xd2VuKFxcZCspJC8uZXhlYyh0b2tlbik7XG4gICAgaWYgKGNvbXBhY3RRd2VuKSB7XG4gICAgICBmYW1pbHlJbmRleCA9IGluZGV4O1xuICAgICAgZmFtaWx5ID0gXCJxd2VuXCI7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKEZBTUlMSUVTLmluY2x1ZGVzKHRva2VuIGFzIFBhcnNlZE1vZGVsTmFtZVtcImZhbWlseVwiXSkpIHtcbiAgICAgIGZhbWlseUluZGV4ID0gaW5kZXg7XG4gICAgICBmYW1pbHkgPSB0b2tlbiBhcyBQYXJzZWRNb2RlbE5hbWVbXCJmYW1pbHlcIl07XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKCFmYW1pbHkgfHwgZmFtaWx5SW5kZXggPCAwKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCByZW1haW5kZXIgPSB0b2tlbnMuc2xpY2UoZmFtaWx5SW5kZXggKyAxKTtcbiAgY29uc3QgbnVtZXJpYyA9ICh2YWx1ZTogc3RyaW5nKSA9PiAvXlxcZCskLy50ZXN0KHZhbHVlKTtcbiAgbGV0IHZlcnNpb25TdGFydCA9IHJlbWFpbmRlci5maW5kSW5kZXgobnVtZXJpYyk7XG4gIGlmIChmYW1pbHkgPT09IFwicXdlblwiICYmIC9ecXdlblxcZCskLy50ZXN0KHRva2Vuc1tmYW1pbHlJbmRleF0hKSkge1xuICAgIHZlcnNpb25TdGFydCA9IDA7XG4gICAgcmVtYWluZGVyLnVuc2hpZnQodG9rZW5zW2ZhbWlseUluZGV4XSEuc2xpY2UoNCkpO1xuICB9XG4gIGlmIChmYW1pbHkgPT09IFwiZGVlcHNlZWtcIikge1xuICAgIGNvbnN0IHByZWZpeGVkID0gcmVtYWluZGVyLmZpbmRJbmRleCgodmFsdWUpID0+IC9edlxcZCskLy50ZXN0KHZhbHVlKSk7XG4gICAgaWYgKHByZWZpeGVkID49IDApIHJlbWFpbmRlcltwcmVmaXhlZF0gPSByZW1haW5kZXJbcHJlZml4ZWRdIS5zbGljZSgxKTtcbiAgICB2ZXJzaW9uU3RhcnQgPSByZW1haW5kZXIuZmluZEluZGV4KG51bWVyaWMpO1xuICB9XG4gIGlmIChmYW1pbHkgPT09IFwia2ltaVwiKSB7XG4gICAgY29uc3QgcHJlZml4ZWQgPSByZW1haW5kZXIuZmluZEluZGV4KCh2YWx1ZSkgPT4gL15rXFxkKyQvLnRlc3QodmFsdWUpKTtcbiAgICBpZiAocHJlZml4ZWQgPj0gMCkgcmVtYWluZGVyW3ByZWZpeGVkXSA9IHJlbWFpbmRlcltwcmVmaXhlZF0hLnNsaWNlKDEpO1xuICAgIHZlcnNpb25TdGFydCA9IHJlbWFpbmRlci5maW5kSW5kZXgobnVtZXJpYyk7XG4gIH1cbiAgaWYgKHZlcnNpb25TdGFydCA8IDApIHJldHVybiB7IGZhbWlseSwgdmVyc2lvbjogW10sIG1vZGVsOiByZW1haW5kZXIgfTtcbiAgY29uc3QgdmVyc2lvbjogbnVtYmVyW10gPSBbXTtcbiAgbGV0IGN1cnNvciA9IHZlcnNpb25TdGFydDtcbiAgd2hpbGUgKGN1cnNvciA8IHJlbWFpbmRlci5sZW5ndGggJiYgdmVyc2lvbi5sZW5ndGggPCAyICYmIG51bWVyaWMocmVtYWluZGVyW2N1cnNvcl0hKSkge1xuICAgIHZlcnNpb24ucHVzaChOdW1iZXIocmVtYWluZGVyW2N1cnNvcl0pKTtcbiAgICBjdXJzb3IgKz0gMTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGZhbWlseSxcbiAgICB2ZXJzaW9uLFxuICAgIG1vZGVsOiBbLi4ucmVtYWluZGVyLnNsaWNlKDAsIHZlcnNpb25TdGFydCksIC4uLnJlbWFpbmRlci5zbGljZShjdXJzb3IpXSxcbiAgfTtcbn1cbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtRUFBbUU7QUFFbkUsT0FBTyxFQUNMLFVBQVUsR0FHWCxNQUFNLG1DQUFtQyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxNQUFNLFFBQVEsR0FBRztJQUNmLFFBQVE7SUFDUixLQUFLO0lBQ0wsUUFBUTtJQUNSLE9BQU87SUFDUCxNQUFNO0lBQ04sVUFBVTtJQUNWLE1BQU07SUFDTixLQUFLO0lBQ0wsTUFBTTtJQUNOLE9BQU87SUFDUCxTQUFTO0lBQ1QsS0FBSztJQUNMLEtBQUs7Q0FDRyxDQUFDO0FBRVgsTUFBTSxRQUFRLEdBQXNCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5RCxNQUFNLE9BQU8sR0FBc0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3JGLE1BQU0sV0FBVyxHQUFzQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbkUsTUFBTSxNQUFNLEdBQXNCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0YsTUFBTSxNQUFNLEdBQXNCLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFRdkUsaUVBQWlFO0FBQ2pFLE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUN0QyxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7QUFDdEMsQ0FBQztBQUVELHlFQUF5RTtBQUN6RSxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQWM7SUFD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QUcsWUFBWSxDQUFDO0lBQzFCLE9BQU8sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdEYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU87UUFDTCxNQUFNO1FBQ04sT0FBTztRQUNQLEtBQUssRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3pFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFR5cGVTY3JpcHQtb3duZWQgbW9kZWwtZmFtaWx5IGFuZCBzZXJ2aW5nIGNhcGFiaWxpdHkgcG9saWN5LiAqL1xuXG5pbXBvcnQge1xuICBNb2RlbENsYXNzLFxuICB0eXBlIFJlYXNvbmluZ0VmZm9ydCxcbiAgdHlwZSBTZXJ2aW5nRW5kcG9pbnRTdW1tYXJ5LFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbW9kZWwvY29udHJhY3RzXCI7XG5cbmltcG9ydCB7IHN1cHBvcnRzVG9vbHNCeUZhbWlseSB9IGZyb20gXCIuL2NsYXNzaWZ5LnRzXCI7XG5cbmNvbnN0IEZBTUlMSUVTID0gW1xuICBcImNsYXVkZVwiLFxuICBcImdwdFwiLFxuICBcImdlbWluaVwiLFxuICBcImxsYW1hXCIsXG4gIFwiZ3Jva1wiLFxuICBcImRlZXBzZWVrXCIsXG4gIFwicXdlblwiLFxuICBcImdsbVwiLFxuICBcImtpbWlcIixcbiAgXCJnZW1tYVwiLFxuICBcImlua2xpbmdcIixcbiAgXCJiZ2VcIixcbiAgXCJndGVcIixcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IFNUQU5EQVJEOiBSZWFzb25pbmdFZmZvcnRbXSA9IFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5jb25zdCBHUFRfNV82OiBSZWFzb25pbmdFZmZvcnRbXSA9IFtcIm5vbmVcIiwgXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIiwgXCJtYXhcIl07XG5jb25zdCBHUFRfNV81X1BSTzogUmVhc29uaW5nRWZmb3J0W10gPSBbXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIl07XG5jb25zdCBDTEFVREU6IFJlYXNvbmluZ0VmZm9ydFtdID0gW1wibm9uZVwiLCBcIm1pbmltYWxcIiwgXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCIsIFwieGhpZ2hcIiwgXCJtYXhcIl07XG5jb25zdCBHRU1JTkk6IFJlYXNvbmluZ0VmZm9ydFtdID0gW1wibWluaW1hbFwiLCBcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5cbmludGVyZmFjZSBQYXJzZWRNb2RlbE5hbWUge1xuICBmYW1pbHk6ICh0eXBlb2YgRkFNSUxJRVMpW251bWJlcl07XG4gIHZlcnNpb246IG51bWJlcltdO1xuICBtb2RlbDogc3RyaW5nW107XG59XG5cbi8qKiBSZXR1cm4gdGhlIG5vcm1hbGl6ZWQgZmFtaWx5IHBhcnNlZCBmcm9tIGEgbW9kZWwgaWRlbnRpdHkuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxGYW1pbHkobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHBhcnNlTW9kZWxOYW1lKG5hbWUpPy5mYW1pbHk7XG59XG5cbi8qKiBSYW5rIGEgZmFtaWx5IGJ5IGhvdyBtYWpvciBpdCBpczsgdW5yZWNvZ25pemVkIGZhbWlsaWVzIHNvcnQgbGFzdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbEZhbWlseVJhbmsoZmFtaWx5OiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCBpbmRleCA9IEZBTUlMSUVTLmluZGV4T2YoZmFtaWx5IGFzICh0eXBlb2YgRkFNSUxJRVMpW251bWJlcl0pO1xuICByZXR1cm4gaW5kZXggPj0gMCA/IGluZGV4IDogRkFNSUxJRVMubGVuZ3RoO1xufVxuXG4vKiogTm9ybWFsaXplIGEgcmVjb2duaXplZCBtb2RlbCBpZGVudGl0eSBpbnRvIGZhbWlseSwgdmVyc2lvbiwgYW5kIHZhcmlhbnQgdG9rZW5zLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsU2VhcmNoUXVlcnkobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VNb2RlbE5hbWUobmFtZSk7XG4gIGlmICghcGFyc2VkKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gW3BhcnNlZC5mYW1pbHksIC4uLnBhcnNlZC52ZXJzaW9uLm1hcChTdHJpbmcpLCAuLi5wYXJzZWQubW9kZWxdLmpvaW4oXCIgXCIpO1xufVxuXG4vKiogUmV0dXJuIHRoZSByZWFzb25pbmcgZWZmb3J0cyBhY2NlcHRlZCBieSBhIG1vZGVsIGZhbWlseS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RlbFJlYXNvbmluZ0VmZm9ydHMobmFtZTogc3RyaW5nKTogUmVhc29uaW5nRWZmb3J0W10ge1xuICBjb25zdCBub3JtYWxpemVkID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBwYXJzZWQgPSBwYXJzZU1vZGVsTmFtZShuYW1lKTtcbiAgbGV0IGVmZm9ydHM6IFJlYXNvbmluZ0VmZm9ydFtdID0gW107XG4gIGlmIChwYXJzZWQ/LmZhbWlseSA9PT0gXCJncHRcIiAmJiBwYXJzZWQudmVyc2lvbi5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgW21ham9yID0gMCwgbWlub3IgPSAwXSA9IHBhcnNlZC52ZXJzaW9uO1xuICAgIGlmIChtYWpvciA+PSA1KSB7XG4gICAgICBlZmZvcnRzID1cbiAgICAgICAgbWFqb3IgPT09IDUgJiYgbWlub3IgPT09IDUgJiYgcGFyc2VkLm1vZGVsLmluY2x1ZGVzKFwicHJvXCIpXG4gICAgICAgICAgPyBHUFRfNV81X1BST1xuICAgICAgICAgIDogbWFqb3IgPT09IDUgJiYgbWlub3IgPT09IDZcbiAgICAgICAgICAgID8gR1BUXzVfNlxuICAgICAgICAgICAgOiBTVEFOREFSRDtcbiAgICB9XG4gIH1cbiAgaWYgKHBhcnNlZD8uZmFtaWx5ID09PSBcImdwdFwiICYmIHBhcnNlZC5tb2RlbC5pbmNsdWRlcyhcIm9zc1wiKSkgZWZmb3J0cyA9IFNUQU5EQVJEO1xuICBpZiAocGFyc2VkPy5mYW1pbHkgPT09IFwiY2xhdWRlXCIpIHtcbiAgICBjb25zdCBbbWFqb3IgPSAwLCBtaW5vciA9IDBdID0gcGFyc2VkLnZlcnNpb247XG4gICAgaWYgKG1ham9yID4gMyB8fCAobWFqb3IgPT09IDMgJiYgbWlub3IgPj0gNykpIGVmZm9ydHMgPSBDTEFVREU7XG4gIH1cbiAgaWYgKHBhcnNlZD8uZmFtaWx5ID09PSBcImdlbWluaVwiKSBlZmZvcnRzID0gR0VNSU5JO1xuICBpZiAobm9ybWFsaXplZC5pbmNsdWRlcyhcImNvZGV4XCIpIHx8IC8oPzpefFstXy4vXSlvKD86MXwzfDQpKD86Wy1fLi9dfCQpL2kudGVzdChuYW1lKSkge1xuICAgIGVmZm9ydHMgPSBTVEFOREFSRDtcbiAgfVxuICByZXR1cm4gZWZmb3J0cztcbn1cblxuLyoqIFJldHVybiB3aGV0aGVyIHBvbGljeSB2ZXJpZmllcyBhIGNvbXBsZXRlIHRvb2wtY2FsbGluZyByb3VuZCB0cmlwLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsU3VwcG9ydHNUb29scyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHN1cHBvcnRzVG9vbHNCeUZhbWlseShuYW1lKTtcbn1cblxuLyoqIFJldHVybiB3aGV0aGVyIGEgZGlzY292ZXJlZCBlbmRwb2ludCBjYW4gYmUgdXNlZCBmb3IgYSB0b29sLWNhbGxpbmcgY2hhdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmRwb2ludFN1cHBvcnRzVG9vbHMoZW5kcG9pbnQ6IFNlcnZpbmdFbmRwb2ludFN1bW1hcnkpOiBib29sZWFuIHtcbiAgY29uc3QgZW1iZWRkaW5nID1cbiAgICBlbmRwb2ludC50YXNrID09PSBcImxsbS92MS9lbWJlZGRpbmdzXCIgfHwgZW5kcG9pbnQuY2xhc3MgPT09IE1vZGVsQ2xhc3MuRW1iZWRkaW5nO1xuICBjb25zdCBjaGF0ID0gIWVtYmVkZGluZyAmJiAoZW5kcG9pbnQudGFzayA9PT0gXCJsbG0vdjEvY2hhdFwiIHx8IGVuZHBvaW50LmNsYXNzICE9PSB1bmRlZmluZWQpO1xuICByZXR1cm4gY2hhdCAmJiAoZW5kcG9pbnQuc3VwcG9ydHNUb29scyA/PyBtb2RlbFN1cHBvcnRzVG9vbHMoZW5kcG9pbnQubmFtZSkpO1xufVxuXG4vKiogUmV0dXJuIHdoZXRoZXIgYSBtb2RlbCByZXF1aXJlcyBEYXRhYnJpY2tzJyBuYXRpdmUgUmVzcG9uc2VzIGVuZHBvaW50LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzcG9uc2VzT25seShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKG5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImNvZGV4XCIpKSByZXR1cm4gdHJ1ZTtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VNb2RlbE5hbWUobmFtZSk7XG4gIGlmICghcGFyc2VkIHx8IHBhcnNlZC5mYW1pbHkgIT09IFwiZ3B0XCIgfHwgcGFyc2VkLm1vZGVsLmluY2x1ZGVzKFwib3NzXCIpKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IFttYWpvciA9IDAsIG1pbm9yID0gMF0gPSBwYXJzZWQudmVyc2lvbjtcbiAgcmV0dXJuIG1ham9yID4gNSB8fCAobWFqb3IgPT09IDUgJiYgbWlub3IgPj0gNCk7XG59XG5cbi8qKiBSZXR1cm4gdGhlIERhdGFicmlja3MgaW5mZXJlbmNlIHByb3RvY29sIHJlcXVpcmVkIGJ5IGEgbW9kZWwuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxTZXJ2aW5nQXBpKG5hbWU6IHN0cmluZyk6IFwiY2hhdFwiIHwgXCJyZXNwb25zZXNcIiB7XG4gIHJldHVybiBpc1Jlc3BvbnNlc09ubHkobmFtZSkgPyBcInJlc3BvbnNlc1wiIDogXCJjaGF0XCI7XG59XG5cbi8qKiBSZXR1cm4gdGhlIENoYXQgQ29tcGxldGlvbnMgZWZmb3J0IHJlcXVpcmVkIHdoZW4gZnVuY3Rpb24gdG9vbHMgYXJlIHByZXNlbnQuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhdFRvb2xSZWFzb25pbmdFZmZvcnQobmFtZTogc3RyaW5nKTogUmVhc29uaW5nRWZmb3J0IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VNb2RlbE5hbWUobmFtZSk7XG4gIGlmICghcGFyc2VkIHx8IHBhcnNlZC5mYW1pbHkgIT09IFwiZ3B0XCIpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IFttYWpvciA9IDAsIG1pbm9yID0gMF0gPSBwYXJzZWQudmVyc2lvbjtcbiAgcmV0dXJuIG1ham9yID09PSA1ICYmIG1pbm9yID09PSA2ID8gXCJub25lXCIgOiB1bmRlZmluZWQ7XG59XG5cbi8qKiBEZXJpdmUgcHJvdmlkZXItc3BlY2lmaWMgbW9kZWwgbmFtZXMgZnJvbSBhIERhdGFicmlja3MgbW9kZWwgaWRlbnRpdHkuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxTZXJ2aWNlTmFtZXMobmFtZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlTW9kZWxOYW1lKG5hbWUpO1xuICBpZiAoIXBhcnNlZCkgcmV0dXJuIHt9O1xuICBjb25zdCB2ZXJzaW9uID0gcGFyc2VkLnZlcnNpb24uam9pbihcIi5cIik7XG4gIGNvbnN0IHN1ZmZpeCA9IHBhcnNlZC5tb2RlbC5sZW5ndGggPyBgLSR7cGFyc2VkLm1vZGVsLmpvaW4oXCItXCIpfWAgOiBcIlwiO1xuICBzd2l0Y2ggKHBhcnNlZC5mYW1pbHkpIHtcbiAgICBjYXNlIFwiZ3B0XCI6XG4gICAgICByZXR1cm4gcGFyc2VkLm1vZGVsLmluY2x1ZGVzKFwib3NzXCIpID8ge30gOiB7IG9wZW5haTogYGdwdC0ke3ZlcnNpb259JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJjbGF1ZGVcIjoge1xuICAgICAgY29uc3QgW3ZhcmlhbnQsIC4uLnJlc3RdID0gcGFyc2VkLm1vZGVsO1xuICAgICAgcmV0dXJuIHZhcmlhbnRcbiAgICAgICAgPyB7IGFudGhyb3BpYzogYGNsYXVkZS0ke3ZhcmlhbnR9LSR7dmVyc2lvbn0ke3Jlc3QubGVuZ3RoID8gYC0ke3Jlc3Quam9pbihcIi1cIil9YCA6IFwiXCJ9YCB9XG4gICAgICAgIDoge307XG4gICAgfVxuICAgIGNhc2UgXCJnZW1pbmlcIjpcbiAgICBjYXNlIFwiZ2VtbWFcIjpcbiAgICAgIHJldHVybiB7IGdvb2dsZTogYCR7cGFyc2VkLmZhbWlseX0tJHt2ZXJzaW9ufSR7c3VmZml4fWAgfTtcbiAgICBjYXNlIFwiZ2xtXCI6XG4gICAgICByZXR1cm4geyB6aGlwdTogYGdsbS0ke3ZlcnNpb259JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJncm9rXCI6XG4gICAgICByZXR1cm4geyB4YWk6IGBncm9rLSR7dmVyc2lvbn0ke3N1ZmZpeH1gIH07XG4gICAgY2FzZSBcImxsYW1hXCI6XG4gICAgICByZXR1cm4geyBtZXRhOiBgbGxhbWEtJHt2ZXJzaW9ufSR7c3VmZml4fWAgfTtcbiAgICBjYXNlIFwicXdlblwiOlxuICAgICAgcmV0dXJuIHsgYWxpYmFiYTogYHF3ZW4ke3ZlcnNpb259JHtzdWZmaXh9YCB9O1xuICAgIGNhc2UgXCJkZWVwc2Vla1wiOlxuICAgICAgcmV0dXJuIHsgZGVlcHNlZWs6IGBkZWVwc2Vlay12JHtwYXJzZWQudmVyc2lvblswXSA/PyBcIlwifSR7c3VmZml4fWAgfTtcbiAgICBjYXNlIFwia2ltaVwiOlxuICAgICAgcmV0dXJuIHsgbW9vbnNob3Q6IGBraW1pLWske3BhcnNlZC52ZXJzaW9uWzBdID8/IFwiXCJ9JHtzdWZmaXh9YCB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge307XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VNb2RlbE5hbWUobmFtZTogc3RyaW5nKTogUGFyc2VkTW9kZWxOYW1lIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdG9rZW5zID0gbmFtZS50b0xvd2VyQ2FzZSgpLm1hdGNoKC9bYS16MC05XSsvZykgPz8gW107XG4gIGxldCBmYW1pbHlJbmRleCA9IC0xO1xuICBsZXQgZmFtaWx5OiBQYXJzZWRNb2RlbE5hbWVbXCJmYW1pbHlcIl0gfCB1bmRlZmluZWQ7XG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0b2tlbnMubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaW5kZXhdITtcbiAgICBjb25zdCBjb21wYWN0UXdlbiA9IC9ecXdlbihcXGQrKSQvLmV4ZWModG9rZW4pO1xuICAgIGlmIChjb21wYWN0UXdlbikge1xuICAgICAgZmFtaWx5SW5kZXggPSBpbmRleDtcbiAgICAgIGZhbWlseSA9IFwicXdlblwiO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChGQU1JTElFUy5pbmNsdWRlcyh0b2tlbiBhcyBQYXJzZWRNb2RlbE5hbWVbXCJmYW1pbHlcIl0pKSB7XG4gICAgICBmYW1pbHlJbmRleCA9IGluZGV4O1xuICAgICAgZmFtaWx5ID0gdG9rZW4gYXMgUGFyc2VkTW9kZWxOYW1lW1wiZmFtaWx5XCJdO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmICghZmFtaWx5IHx8IGZhbWlseUluZGV4IDwgMCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgcmVtYWluZGVyID0gdG9rZW5zLnNsaWNlKGZhbWlseUluZGV4ICsgMSk7XG4gIGNvbnN0IG51bWVyaWMgPSAodmFsdWU6IHN0cmluZykgPT4gL15cXGQrJC8udGVzdCh2YWx1ZSk7XG4gIGxldCB2ZXJzaW9uU3RhcnQgPSByZW1haW5kZXIuZmluZEluZGV4KG51bWVyaWMpO1xuICBpZiAoZmFtaWx5ID09PSBcInF3ZW5cIiAmJiAvXnF3ZW5cXGQrJC8udGVzdCh0b2tlbnNbZmFtaWx5SW5kZXhdISkpIHtcbiAgICB2ZXJzaW9uU3RhcnQgPSAwO1xuICAgIHJlbWFpbmRlci51bnNoaWZ0KHRva2Vuc1tmYW1pbHlJbmRleF0hLnNsaWNlKDQpKTtcbiAgfVxuICBpZiAoZmFtaWx5ID09PSBcImRlZXBzZWVrXCIpIHtcbiAgICBjb25zdCBwcmVmaXhlZCA9IHJlbWFpbmRlci5maW5kSW5kZXgoKHZhbHVlKSA9PiAvXnZcXGQrJC8udGVzdCh2YWx1ZSkpO1xuICAgIGlmIChwcmVmaXhlZCA+PSAwKSByZW1haW5kZXJbcHJlZml4ZWRdID0gcmVtYWluZGVyW3ByZWZpeGVkXSEuc2xpY2UoMSk7XG4gICAgdmVyc2lvblN0YXJ0ID0gcmVtYWluZGVyLmZpbmRJbmRleChudW1lcmljKTtcbiAgfVxuICBpZiAoZmFtaWx5ID09PSBcImtpbWlcIikge1xuICAgIGNvbnN0IHByZWZpeGVkID0gcmVtYWluZGVyLmZpbmRJbmRleCgodmFsdWUpID0+IC9ea1xcZCskLy50ZXN0KHZhbHVlKSk7XG4gICAgaWYgKHByZWZpeGVkID49IDApIHJlbWFpbmRlcltwcmVmaXhlZF0gPSByZW1haW5kZXJbcHJlZml4ZWRdIS5zbGljZSgxKTtcbiAgICB2ZXJzaW9uU3RhcnQgPSByZW1haW5kZXIuZmluZEluZGV4KG51bWVyaWMpO1xuICB9XG4gIGlmICh2ZXJzaW9uU3RhcnQgPCAwKSByZXR1cm4geyBmYW1pbHksIHZlcnNpb246IFtdLCBtb2RlbDogcmVtYWluZGVyIH07XG4gIGNvbnN0IHZlcnNpb246IG51bWJlcltdID0gW107XG4gIGxldCBjdXJzb3IgPSB2ZXJzaW9uU3RhcnQ7XG4gIHdoaWxlIChjdXJzb3IgPCByZW1haW5kZXIubGVuZ3RoICYmIHZlcnNpb24ubGVuZ3RoIDwgMiAmJiBudW1lcmljKHJlbWFpbmRlcltjdXJzb3JdISkpIHtcbiAgICB2ZXJzaW9uLnB1c2goTnVtYmVyKHJlbWFpbmRlcltjdXJzb3JdKSk7XG4gICAgY3Vyc29yICs9IDE7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBmYW1pbHksXG4gICAgdmVyc2lvbixcbiAgICBtb2RlbDogWy4uLnJlbWFpbmRlci5zbGljZSgwLCB2ZXJzaW9uU3RhcnQpLCAuLi5yZW1haW5kZXIuc2xpY2UoY3Vyc29yKV0sXG4gIH07XG59XG4iXX0=
package/package.json CHANGED
@@ -27,11 +27,11 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@databricks/appkit": "0.81.0",
30
- "@dbx-tools/appkit": "^0.9.37",
31
- "@dbx-tools/auth": "^0.9.37",
32
- "@dbx-tools/shared-auth": "^0.9.37",
33
- "@dbx-tools/shared-core": "^0.9.37",
34
- "@dbx-tools/shared-model": "^0.9.37",
30
+ "@dbx-tools/appkit": "^0.9.40",
31
+ "@dbx-tools/auth": "^0.9.40",
32
+ "@dbx-tools/shared-auth": "^0.9.40",
33
+ "@dbx-tools/shared-core": "^0.9.40",
34
+ "@dbx-tools/shared-model": "^0.9.40",
35
35
  "cacache": "^21.0.1",
36
36
  "env-paths": "^4.0.0",
37
37
  "fuse.js": "^7.4.2"
@@ -98,7 +98,7 @@
98
98
  "./package.json": "./package.json"
99
99
  }
100
100
  },
101
- "version": "0.9.37",
101
+ "version": "0.9.40",
102
102
  "types": "./lib/index.d.ts",
103
103
  "dbxToolsConfig": {
104
104
  "tags": [
package/src/policy.ts CHANGED
@@ -9,19 +9,19 @@ import {
9
9
  import { supportsToolsByFamily } from "./classify.ts";
10
10
 
11
11
  const FAMILIES = [
12
- "bge",
13
12
  "claude",
14
- "deepseek",
15
- "gemini",
16
- "gemma",
17
- "glm",
18
13
  "gpt",
19
- "grok",
20
- "gte",
21
- "inkling",
22
- "kimi",
14
+ "gemini",
23
15
  "llama",
16
+ "grok",
17
+ "deepseek",
24
18
  "qwen",
19
+ "glm",
20
+ "kimi",
21
+ "gemma",
22
+ "inkling",
23
+ "bge",
24
+ "gte",
25
25
  ] as const;
26
26
 
27
27
  const STANDARD: ReasoningEffort[] = ["low", "medium", "high"];
@@ -41,6 +41,12 @@ export function modelFamily(name: string): string | undefined {
41
41
  return parseModelName(name)?.family;
42
42
  }
43
43
 
44
+ /** Rank a family by how major it is; unrecognized families sort last. */
45
+ export function modelFamilyRank(family: string): number {
46
+ const index = FAMILIES.indexOf(family as (typeof FAMILIES)[number]);
47
+ return index >= 0 ? index : FAMILIES.length;
48
+ }
49
+
44
50
  /** Normalize a recognized model identity into family, version, and variant tokens. */
45
51
  export function modelSearchQuery(name: string): string | undefined {
46
52
  const parsed = parseModelName(name);