@dbx-tools/appkit-model-gateway 0.9.185 → 0.9.188

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/appkit-model-gateway";
6
- export const PACKAGE_VERSION = "0.9.185";
6
+ export const PACKAGE_VERSION = "0.9.188";
7
7
  export * as gateway from "./src/gateway.ts";
8
8
  export * as models from "./src/models.ts";
9
9
  export * as plugin from "./src/plugin.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-model-gateway";
2
- export declare const PACKAGE_VERSION = "0.9.185";
2
+ export declare const PACKAGE_VERSION = "0.9.188";
3
3
  export * as gateway from "./src/gateway.ts";
4
4
  export * as models from "./src/models.ts";
5
5
  export * as plugin from "./src/plugin.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/appkit-model-gateway";
5
- export const PACKAGE_VERSION = "0.9.185";
5
+ export const PACKAGE_VERSION = "0.9.188";
6
6
  export * as gateway from "./src/gateway.js";
7
7
  export * as models from "./src/models.js";
8
8
  export * as plugin from "./src/plugin.js";
@@ -23,4 +23,4 @@ export { sendHealth, sendModels, sendInference } from "./src/routes.js";
23
23
  export { SMART_ROUTER_DEFAULT_SETTINGS, SmartRouterProbeRecordSchema, SmartRouterError, AppKitSmartRouterStore, AppKitSmartRouterProbeStore, SmartRouterService, smartRouterCandidates, SmartRouterContextBuilder, SmartModelRouter, smartRouterTurnKey } from "./src/smart-router.js";
24
24
  export { translateGatewayRequest } from "./src/translation.js";
25
25
  export { fetchDatabricks, directDatabricksRequestBody, gatewayResponseHeaders } from "./src/transport.js";
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxjQUFjLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssV0FBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSw0QkFBNEIsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSwyQkFBMkIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZSLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LW1vZGVsLWdhdGV3YXlcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xODVcIjtcbmV4cG9ydCAqIGFzIGdhdGV3YXkgZnJvbSBcIi4vc3JjL2dhdGV3YXkudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVscyBmcm9tIFwiLi9zcmMvbW9kZWxzLnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcmVhc29uaW5nQWRhcHQgZnJvbSBcIi4vc3JjL3JlYXNvbmluZy1hZGFwdC50c1wiO1xuZXhwb3J0ICogYXMgcmVnaXN0cnkgZnJvbSBcIi4vc3JjL3JlZ2lzdHJ5LnRzXCI7XG5leHBvcnQgKiBhcyByb3V0ZXIgZnJvbSBcIi4vc3JjL3JvdXRlci50c1wiO1xuZXhwb3J0ICogYXMgcm91dGVzIGZyb20gXCIuL3NyYy9yb3V0ZXMudHNcIjtcbmV4cG9ydCAqIGFzIHNtYXJ0Um91dGVyIGZyb20gXCIuL3NyYy9zbWFydC1yb3V0ZXIudHNcIjtcbmV4cG9ydCAqIGFzIHRyYW5zbGF0aW9uIGZyb20gXCIuL3NyYy90cmFuc2xhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgdHJhbnNwb3J0IGZyb20gXCIuL3NyYy90cmFuc3BvcnQudHNcIjtcbmV4cG9ydCB7IE1vZGVsR2F0ZXdheUVycm9yLCBNb2RlbEdhdGV3YXksIHNhbml0aXplSW5mZXJlbmNlQm9keSwgYWRhcHRJbmZlcmVuY2VUZW1wZXJhdHVyZSwgZ2F0ZXdheU1vZGVsU2VsZWN0aW9uIH0gZnJvbSBcIi4vc3JjL2dhdGV3YXkudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxHYXRld2F5T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9nYXRld2F5LnRzXCI7XG5leHBvcnQgeyBsaXN0TW9kZWxzUGF5bG9hZCwgY29kZXhNb2RlbFNsdWcgfSBmcm9tIFwiLi9zcmMvbW9kZWxzLnRzXCI7XG5leHBvcnQgeyBNb2RlbEdhdGV3YXlQbHVnaW4sIG1vZGVsR2F0ZXdheSB9IGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxHYXRld2F5UGx1Z2luQ29uZmlnIH0gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0IHsgYWRhcHRJbmZlcmVuY2VSZWFzb25pbmcsIGxlYXJuQW5kQWRhcHRSZWFzb25pbmdSZXRyeSB9IGZyb20gXCIuL3NyYy9yZWFzb25pbmctYWRhcHQudHNcIjtcbmV4cG9ydCB0eXBlIHsgQWRhcHRlZEluZmVyZW5jZUJvZHkgfSBmcm9tIFwiLi9zcmMvcmVhc29uaW5nLWFkYXB0LnRzXCI7XG5leHBvcnQgeyBEYXRhYnJpY2tzTW9kZWxSZWdpc3RyeSB9IGZyb20gXCIuL3NyYy9yZWdpc3RyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb2RlbFJlZ2lzdHJ5UmVzb2x2ZU9wdGlvbnMsIE1vZGVsUmVnaXN0cnksIE1vZGVsUmVnaXN0cnlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3JlZ2lzdHJ5LnRzXCI7XG5leHBvcnQgeyBVbnN1cHBvcnRlZEdhdGV3YXlGZWF0dXJlRXJyb3IsIHJlc29sdmVSb3V0ZSwgcmVxdWVzdGVkRmVhdHVyZXMsIGlzQ29kZXhPcmlnaW5hdG9yIH0gZnJvbSBcIi4vc3JjL3JvdXRlci50c1wiO1xuZXhwb3J0IHsgc2VuZEhlYWx0aCwgc2VuZE1vZGVscywgc2VuZEluZmVyZW5jZSB9IGZyb20gXCIuL3NyYy9yb3V0ZXMudHNcIjtcbmV4cG9ydCB7IFNNQVJUX1JPVVRFUl9ERUZBVUxUX1NFVFRJTkdTLCBTbWFydFJvdXRlclByb2JlUmVjb3JkU2NoZW1hLCBTbWFydFJvdXRlckVycm9yLCBBcHBLaXRTbWFydFJvdXRlclN0b3JlLCBBcHBLaXRTbWFydFJvdXRlclByb2JlU3RvcmUsIFNtYXJ0Um91dGVyU2VydmljZSwgc21hcnRSb3V0ZXJDYW5kaWRhdGVzLCBTbWFydFJvdXRlckNvbnRleHRCdWlsZGVyLCBTbWFydE1vZGVsUm91dGVyLCBzbWFydFJvdXRlclR1cm5LZXkgfSBmcm9tIFwiLi9zcmMvc21hcnQtcm91dGVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNtYXJ0Um91dGVyU2V0dGluZ3MsIFNtYXJ0Um91dGVyQ2FuZGlkYXRlLCBTbWFydFJvdXRlclNlbGVjdGlvbiwgU21hcnRSb3V0ZXJTdG9yZSwgU21hcnRSb3V0ZXJQcm9iZVJlY29yZCwgU21hcnRSb3V0ZXJQcm9iZVN0b3JlLCBTbWFydFJvdXRlclJlc3VsdCwgU21hcnRSb3V0ZXJDb250ZXh0LCBTbWFydFJvdXRlclNlbGVjdE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc21hcnQtcm91dGVyLnRzXCI7XG5leHBvcnQgeyB0cmFuc2xhdGVHYXRld2F5UmVxdWVzdCB9IGZyb20gXCIuL3NyYy90cmFuc2xhdGlvbi50c1wiO1xuZXhwb3J0IHsgZmV0Y2hEYXRhYnJpY2tzLCBkaXJlY3REYXRhYnJpY2tzUmVxdWVzdEJvZHksIGdhdGV3YXlSZXNwb25zZUhlYWRlcnMgfSBmcm9tIFwiLi9zcmMvdHJhbnNwb3J0LnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NUcmFuc3BvcnRSZXF1ZXN0IH0gZnJvbSBcIi4vc3JjL3RyYW5zcG9ydC50c1wiO1xuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxjQUFjLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssV0FBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSw0QkFBNEIsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSwyQkFBMkIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZSLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LW1vZGVsLWdhdGV3YXlcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xODhcIjtcbmV4cG9ydCAqIGFzIGdhdGV3YXkgZnJvbSBcIi4vc3JjL2dhdGV3YXkudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVscyBmcm9tIFwiLi9zcmMvbW9kZWxzLnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcmVhc29uaW5nQWRhcHQgZnJvbSBcIi4vc3JjL3JlYXNvbmluZy1hZGFwdC50c1wiO1xuZXhwb3J0ICogYXMgcmVnaXN0cnkgZnJvbSBcIi4vc3JjL3JlZ2lzdHJ5LnRzXCI7XG5leHBvcnQgKiBhcyByb3V0ZXIgZnJvbSBcIi4vc3JjL3JvdXRlci50c1wiO1xuZXhwb3J0ICogYXMgcm91dGVzIGZyb20gXCIuL3NyYy9yb3V0ZXMudHNcIjtcbmV4cG9ydCAqIGFzIHNtYXJ0Um91dGVyIGZyb20gXCIuL3NyYy9zbWFydC1yb3V0ZXIudHNcIjtcbmV4cG9ydCAqIGFzIHRyYW5zbGF0aW9uIGZyb20gXCIuL3NyYy90cmFuc2xhdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgdHJhbnNwb3J0IGZyb20gXCIuL3NyYy90cmFuc3BvcnQudHNcIjtcbmV4cG9ydCB7IE1vZGVsR2F0ZXdheUVycm9yLCBNb2RlbEdhdGV3YXksIHNhbml0aXplSW5mZXJlbmNlQm9keSwgYWRhcHRJbmZlcmVuY2VUZW1wZXJhdHVyZSwgZ2F0ZXdheU1vZGVsU2VsZWN0aW9uIH0gZnJvbSBcIi4vc3JjL2dhdGV3YXkudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxHYXRld2F5T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9nYXRld2F5LnRzXCI7XG5leHBvcnQgeyBsaXN0TW9kZWxzUGF5bG9hZCwgY29kZXhNb2RlbFNsdWcgfSBmcm9tIFwiLi9zcmMvbW9kZWxzLnRzXCI7XG5leHBvcnQgeyBNb2RlbEdhdGV3YXlQbHVnaW4sIG1vZGVsR2F0ZXdheSB9IGZyb20gXCIuL3NyYy9wbHVnaW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxHYXRld2F5UGx1Z2luQ29uZmlnIH0gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0IHsgYWRhcHRJbmZlcmVuY2VSZWFzb25pbmcsIGxlYXJuQW5kQWRhcHRSZWFzb25pbmdSZXRyeSB9IGZyb20gXCIuL3NyYy9yZWFzb25pbmctYWRhcHQudHNcIjtcbmV4cG9ydCB0eXBlIHsgQWRhcHRlZEluZmVyZW5jZUJvZHkgfSBmcm9tIFwiLi9zcmMvcmVhc29uaW5nLWFkYXB0LnRzXCI7XG5leHBvcnQgeyBEYXRhYnJpY2tzTW9kZWxSZWdpc3RyeSB9IGZyb20gXCIuL3NyYy9yZWdpc3RyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb2RlbFJlZ2lzdHJ5UmVzb2x2ZU9wdGlvbnMsIE1vZGVsUmVnaXN0cnksIE1vZGVsUmVnaXN0cnlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3JlZ2lzdHJ5LnRzXCI7XG5leHBvcnQgeyBVbnN1cHBvcnRlZEdhdGV3YXlGZWF0dXJlRXJyb3IsIHJlc29sdmVSb3V0ZSwgcmVxdWVzdGVkRmVhdHVyZXMsIGlzQ29kZXhPcmlnaW5hdG9yIH0gZnJvbSBcIi4vc3JjL3JvdXRlci50c1wiO1xuZXhwb3J0IHsgc2VuZEhlYWx0aCwgc2VuZE1vZGVscywgc2VuZEluZmVyZW5jZSB9IGZyb20gXCIuL3NyYy9yb3V0ZXMudHNcIjtcbmV4cG9ydCB7IFNNQVJUX1JPVVRFUl9ERUZBVUxUX1NFVFRJTkdTLCBTbWFydFJvdXRlclByb2JlUmVjb3JkU2NoZW1hLCBTbWFydFJvdXRlckVycm9yLCBBcHBLaXRTbWFydFJvdXRlclN0b3JlLCBBcHBLaXRTbWFydFJvdXRlclByb2JlU3RvcmUsIFNtYXJ0Um91dGVyU2VydmljZSwgc21hcnRSb3V0ZXJDYW5kaWRhdGVzLCBTbWFydFJvdXRlckNvbnRleHRCdWlsZGVyLCBTbWFydE1vZGVsUm91dGVyLCBzbWFydFJvdXRlclR1cm5LZXkgfSBmcm9tIFwiLi9zcmMvc21hcnQtcm91dGVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNtYXJ0Um91dGVyU2V0dGluZ3MsIFNtYXJ0Um91dGVyQ2FuZGlkYXRlLCBTbWFydFJvdXRlclNlbGVjdGlvbiwgU21hcnRSb3V0ZXJTdG9yZSwgU21hcnRSb3V0ZXJQcm9iZVJlY29yZCwgU21hcnRSb3V0ZXJQcm9iZVN0b3JlLCBTbWFydFJvdXRlclJlc3VsdCwgU21hcnRSb3V0ZXJDb250ZXh0LCBTbWFydFJvdXRlclNlbGVjdE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc21hcnQtcm91dGVyLnRzXCI7XG5leHBvcnQgeyB0cmFuc2xhdGVHYXRld2F5UmVxdWVzdCB9IGZyb20gXCIuL3NyYy90cmFuc2xhdGlvbi50c1wiO1xuZXhwb3J0IHsgZmV0Y2hEYXRhYnJpY2tzLCBkaXJlY3REYXRhYnJpY2tzUmVxdWVzdEJvZHksIGdhdGV3YXlSZXNwb25zZUhlYWRlcnMgfSBmcm9tIFwiLi9zcmMvdHJhbnNwb3J0LnRzXCI7XG5leHBvcnQgdHlwZSB7IERhdGFicmlja3NUcmFuc3BvcnRSZXF1ZXN0IH0gZnJvbSBcIi4vc3JjL3RyYW5zcG9ydC50c1wiO1xuIl19
@@ -16,9 +16,9 @@ export interface AdaptedInferenceBody {
16
16
  /** Adapt a request body onto the current known ladder for `model`. */
17
17
  export declare function adaptInferenceReasoning(model: string, body: Readonly<Record<string, unknown>>): AdaptedInferenceBody;
18
18
  /**
19
- * On a reasoning-related 400, remove unsupported reasoning or resolve the
20
- * preferred ladder and produce a remapped retry body. Returns `undefined` when
21
- * no retry should occur.
19
+ * On a reasoning-related 400, remove invalid replay state, remove unsupported
20
+ * reasoning, or resolve the preferred ladder and produce a remapped retry body.
21
+ * Returns `undefined` when no retry should occur.
22
22
  */
23
23
  export declare function learnAndAdaptReasoningRetry(input: {
24
24
  readonly model: string;
@@ -10,6 +10,7 @@
10
10
  import { learnReasoningLevelsFromError, modelReasoningLevelsFor, adaptRequestReasoning, parseReasoningLevels, } from "@dbx-tools/model";
11
11
  import { log } from "@dbx-tools/shared-core";
12
12
  const logger = log.logger("appkit/model-gateway/reasoning");
13
+ const INVALID_ENCRYPTED_REASONING_PATTERN = /invalid encrypted reasoning|invalid_encrypted_content|encrypted content .+ could not be verified/i;
13
14
  const REASONING_UNSUPPORTED_PATTERN = /does not support ['"]reasoning['"]/i;
14
15
  /** Adapt a request body onto the current known ladder for `model`. */
15
16
  export function adaptInferenceReasoning(model, body) {
@@ -27,9 +28,9 @@ export function adaptInferenceReasoning(model, body) {
27
28
  };
28
29
  }
29
30
  /**
30
- * On a reasoning-related 400, remove unsupported reasoning or resolve the
31
- * preferred ladder and produce a remapped retry body. Returns `undefined` when
32
- * no retry should occur.
31
+ * On a reasoning-related 400, remove invalid replay state, remove unsupported
32
+ * reasoning, or resolve the preferred ladder and produce a remapped retry body.
33
+ * Returns `undefined` when no retry should occur.
33
34
  */
34
35
  export async function learnAndAdaptReasoningRetry(input) {
35
36
  if (input.response.ok || input.response.status !== 400)
@@ -41,7 +42,15 @@ export async function learnAndAdaptReasoningRetry(input) {
41
42
  catch {
42
43
  return undefined;
43
44
  }
44
- if (REASONING_UNSUPPORTED_PATTERN.test(JSON.stringify(errorBody))) {
45
+ const serializedError = JSON.stringify(errorBody);
46
+ if (INVALID_ENCRYPTED_REASONING_PATTERN.test(serializedError)) {
47
+ const stripped = stripReasoningHistory(input.body);
48
+ if (!stripped)
49
+ return undefined;
50
+ logger.info("retrying without invalid encrypted reasoning history", { model: input.model });
51
+ return stripped;
52
+ }
53
+ if (REASONING_UNSUPPORTED_PATTERN.test(serializedError)) {
45
54
  const stripped = stripRequestReasoning(input.body);
46
55
  if (!stripped)
47
56
  return undefined;
@@ -66,6 +75,14 @@ export async function learnAndAdaptReasoningRetry(input) {
66
75
  });
67
76
  return adapted.body;
68
77
  }
78
+ function stripReasoningHistory(body) {
79
+ if (!Array.isArray(body.input))
80
+ return undefined;
81
+ const input = body.input.filter((item) => !isRecord(item) || item.type !== "reasoning");
82
+ if (input.length === body.input.length)
83
+ return undefined;
84
+ return { ...body, input };
85
+ }
69
86
  function stripRequestReasoning(body) {
70
87
  if (!Object.hasOwn(body, "reasoning") && !Object.hasOwn(body, "reasoning_effort")) {
71
88
  return undefined;
@@ -75,4 +92,7 @@ function stripRequestReasoning(body) {
75
92
  delete stripped.reasoning_effort;
76
93
  return stripped;
77
94
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhc29uaW5nLWFkYXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlYXNvbmluZy1hZGFwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixvQkFBb0IsR0FDckIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0MsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0FBQzVELE1BQU0sNkJBQTZCLEdBQUcscUNBQXFDLENBQUM7QUFTNUUsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsS0FBYSxFQUNiLElBQXVDO0lBRXZDLE1BQU0sT0FBTyxHQUFHLHFCQUFxQixDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVFLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQUMsMENBQTBDLEVBQUU7WUFDdkQsS0FBSztZQUNMLE1BQU0sRUFBRSxPQUFPLENBQUMsVUFBVTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtRQUNsQixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDOUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO0tBQ3pCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsMkJBQTJCLENBQUMsS0FLakQ7SUFDQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUV6RSxJQUFJLFNBQWtCLENBQUM7SUFDdkIsSUFBSSxDQUFDO1FBQ0gsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLDZCQUE2QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxNQUFNLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNoQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFFbkUsTUFBTSxNQUFNLEdBQUcsTUFBTSw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0RBQWdELEVBQUU7UUFDNUQsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ2xCLE1BQU07S0FDUCxDQUFDLENBQUM7SUFFSCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN4RixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsRUFBRTtRQUNwRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxrQkFBa0I7UUFDOUIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxVQUFVO0tBQ3ZCLENBQUMsQ0FBQztJQUNILE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQztBQUN0QixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FDNUIsSUFBdUM7SUFFdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1FBQ2xGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDN0IsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQzFCLE9BQU8sUUFBUSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlYXNvbmluZy1lZmZvcnQgYWRhcHRhdGlvbiBmb3IgZ2F0ZXdheSByb3VuZCB0cmlwcy5cbiAqXG4gKiBQcm9hY3RpdmVseSByZW1hcHMgY2xpZW50IGVmZm9ydHMgb250byB0aGUga25vd24gbGFkZGVyLCB0aGVuIG9uIGEgc2luZ2xlXG4gKiB1bnN1cHBvcnRlZC12YWx1ZSA0MDAgcmVzb2x2ZXMgdGhlIHByZWZlcnJlZCBwdWJsaXNoZWQtb3ItbGVhcm5lZCBsYWRkZXJcbiAqIGFuZCByZXRyaWVzIG9uY2UuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7XG4gIGxlYXJuUmVhc29uaW5nTGV2ZWxzRnJvbUVycm9yLFxuICBtb2RlbFJlYXNvbmluZ0xldmVsc0ZvcixcbiAgYWRhcHRSZXF1ZXN0UmVhc29uaW5nLFxuICBwYXJzZVJlYXNvbmluZ0xldmVscyxcbn0gZnJvbSBcIkBkYngtdG9vbHMvbW9kZWxcIjtcbmltcG9ydCB7IGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJhcHBraXQvbW9kZWwtZ2F0ZXdheS9yZWFzb25pbmdcIik7XG5jb25zdCBSRUFTT05JTkdfVU5TVVBQT1JURURfUEFUVEVSTiA9IC9kb2VzIG5vdCBzdXBwb3J0IFsnXCJdcmVhc29uaW5nWydcIl0vaTtcblxuLyoqIFJlc3VsdCBvZiB0aGUgZmlyc3QgcHJvYWN0aXZlIGFkYXB0YXRpb24gcGFzcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRhcHRlZEluZmVyZW5jZUJvZHkge1xuICByZWFkb25seSBib2R5OiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG4gIHJlYWRvbmx5IHdpcmVFZmZvcnQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNoYW5nZWQ6IGJvb2xlYW47XG59XG5cbi8qKiBBZGFwdCBhIHJlcXVlc3QgYm9keSBvbnRvIHRoZSBjdXJyZW50IGtub3duIGxhZGRlciBmb3IgYG1vZGVsYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGFwdEluZmVyZW5jZVJlYXNvbmluZyhcbiAgbW9kZWw6IHN0cmluZyxcbiAgYm9keTogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+LFxuKTogQWRhcHRlZEluZmVyZW5jZUJvZHkge1xuICBjb25zdCBhZGFwdGVkID0gYWRhcHRSZXF1ZXN0UmVhc29uaW5nKGJvZHksIG1vZGVsUmVhc29uaW5nTGV2ZWxzRm9yKG1vZGVsKSk7XG4gIGlmIChhZGFwdGVkLmNoYW5nZWQpIHtcbiAgICBsb2dnZXIuZGVidWcoXCJhZGFwdGVkIHJlYXNvbmluZyBlZmZvcnQgYmVmb3JlIHVwc3RyZWFtXCIsIHtcbiAgICAgIG1vZGVsLFxuICAgICAgZWZmb3J0OiBhZGFwdGVkLndpcmVFZmZvcnQsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBib2R5OiBhZGFwdGVkLmJvZHksXG4gICAgd2lyZUVmZm9ydDogYWRhcHRlZC53aXJlRWZmb3J0LFxuICAgIGNoYW5nZWQ6IGFkYXB0ZWQuY2hhbmdlZCxcbiAgfTtcbn1cblxuLyoqXG4gKiBPbiBhIHJlYXNvbmluZy1yZWxhdGVkIDQwMCwgcmVtb3ZlIHVuc3VwcG9ydGVkIHJlYXNvbmluZyBvciByZXNvbHZlIHRoZVxuICogcHJlZmVycmVkIGxhZGRlciBhbmQgcHJvZHVjZSBhIHJlbWFwcGVkIHJldHJ5IGJvZHkuIFJldHVybnMgYHVuZGVmaW5lZGAgd2hlblxuICogbm8gcmV0cnkgc2hvdWxkIG9jY3VyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGVhcm5BbmRBZGFwdFJlYXNvbmluZ1JldHJ5KGlucHV0OiB7XG4gIHJlYWRvbmx5IG1vZGVsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJvZHk6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgcmVhZG9ubHkgcmVzcG9uc2U6IFJlc3BvbnNlO1xuICByZWFkb25seSBwcmV2aW91c1dpcmVFZmZvcnQ/OiBzdHJpbmc7XG59KTogUHJvbWlzZTxSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gfCB1bmRlZmluZWQ+IHtcbiAgaWYgKGlucHV0LnJlc3BvbnNlLm9rIHx8IGlucHV0LnJlc3BvbnNlLnN0YXR1cyAhPT0gNDAwKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIGxldCBlcnJvckJvZHk6IHVua25vd247XG4gIHRyeSB7XG4gICAgZXJyb3JCb2R5ID0gSlNPTi5wYXJzZShhd2FpdCBpbnB1dC5yZXNwb25zZS5jbG9uZSgpLnRleHQoKSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoUkVBU09OSU5HX1VOU1VQUE9SVEVEX1BBVFRFUk4udGVzdChKU09OLnN0cmluZ2lmeShlcnJvckJvZHkpKSkge1xuICAgIGNvbnN0IHN0cmlwcGVkID0gc3RyaXBSZXF1ZXN0UmVhc29uaW5nKGlucHV0LmJvZHkpO1xuICAgIGlmICghc3RyaXBwZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgbG9nZ2VyLmluZm8oXCJyZXRyeWluZyB3aXRob3V0IHVuc3VwcG9ydGVkIHJlYXNvbmluZ1wiLCB7IG1vZGVsOiBpbnB1dC5tb2RlbCB9KTtcbiAgICByZXR1cm4gc3RyaXBwZWQ7XG4gIH1cblxuICBpZiAocGFyc2VSZWFzb25pbmdMZXZlbHMoZXJyb3JCb2R5KS5sZW5ndGggPT09IDApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgbGV2ZWxzID0gYXdhaXQgbGVhcm5SZWFzb25pbmdMZXZlbHNGcm9tRXJyb3IoaW5wdXQubW9kZWwsIGVycm9yQm9keSk7XG4gIGxvZ2dlci5pbmZvKFwicmVzb2x2ZWQgcmVhc29uaW5nIGxldmVscyBhZnRlciB1cHN0cmVhbSBlcnJvclwiLCB7XG4gICAgbW9kZWw6IGlucHV0Lm1vZGVsLFxuICAgIGxldmVscyxcbiAgfSk7XG5cbiAgY29uc3QgYWRhcHRlZCA9IGFkYXB0UmVxdWVzdFJlYXNvbmluZyhpbnB1dC5ib2R5LCBsZXZlbHMpO1xuICBpZiAoYWRhcHRlZC53aXJlRWZmb3J0ID09PSB1bmRlZmluZWQgfHwgYWRhcHRlZC53aXJlRWZmb3J0ID09PSBpbnB1dC5wcmV2aW91c1dpcmVFZmZvcnQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgbG9nZ2VyLmluZm8oXCJyZXRyeWluZyB3aXRoIGFkYXB0ZWQgcmVhc29uaW5nIGVmZm9ydFwiLCB7XG4gICAgbW9kZWw6IGlucHV0Lm1vZGVsLFxuICAgIGZyb206IGlucHV0LnByZXZpb3VzV2lyZUVmZm9ydCxcbiAgICB0bzogYWRhcHRlZC53aXJlRWZmb3J0LFxuICB9KTtcbiAgcmV0dXJuIGFkYXB0ZWQuYm9keTtcbn1cblxuZnVuY3Rpb24gc3RyaXBSZXF1ZXN0UmVhc29uaW5nKFxuICBib2R5OiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4sXG4pOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gfCB1bmRlZmluZWQge1xuICBpZiAoIU9iamVjdC5oYXNPd24oYm9keSwgXCJyZWFzb25pbmdcIikgJiYgIU9iamVjdC5oYXNPd24oYm9keSwgXCJyZWFzb25pbmdfZWZmb3J0XCIpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBzdHJpcHBlZCA9IHsgLi4uYm9keSB9O1xuICBkZWxldGUgc3RyaXBwZWQucmVhc29uaW5nO1xuICBkZWxldGUgc3RyaXBwZWQucmVhc29uaW5nX2VmZm9ydDtcbiAgcmV0dXJuIHN0cmlwcGVkO1xufVxuIl19
95
+ function isRecord(value) {
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
package/package.json CHANGED
@@ -27,13 +27,13 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@databricks/appkit": "0.81.0",
30
- "@dbx-tools/cache": "^0.9.185",
31
- "@dbx-tools/databricks": "^0.9.185",
32
- "@dbx-tools/model": "^0.9.185",
33
- "@dbx-tools/model-protocol": "^0.9.185",
34
- "@dbx-tools/shared-core": "^0.9.185",
35
- "@dbx-tools/shared-model": "^0.9.185",
36
- "@dbx-tools/shared-model-gateway": "^0.9.185",
30
+ "@dbx-tools/cache": "^0.9.188",
31
+ "@dbx-tools/databricks": "^0.9.188",
32
+ "@dbx-tools/model": "^0.9.188",
33
+ "@dbx-tools/model-protocol": "^0.9.188",
34
+ "@dbx-tools/shared-core": "^0.9.188",
35
+ "@dbx-tools/shared-model": "^0.9.188",
36
+ "@dbx-tools/shared-model-gateway": "^0.9.188",
37
37
  "ai": "^7.0.0",
38
38
  "js-tiktoken": "^1.0.21",
39
39
  "zod": "4.3.6"
@@ -52,7 +52,7 @@
52
52
  "./package.json": "./package.json"
53
53
  }
54
54
  },
55
- "version": "0.9.185",
55
+ "version": "0.9.188",
56
56
  "types": "./lib/index.d.ts",
57
57
  "dbxToolsConfig": {
58
58
  "tags": [
@@ -17,6 +17,8 @@ import {
17
17
  import { log } from "@dbx-tools/shared-core";
18
18
 
19
19
  const logger = log.logger("appkit/model-gateway/reasoning");
20
+ const INVALID_ENCRYPTED_REASONING_PATTERN =
21
+ /invalid encrypted reasoning|invalid_encrypted_content|encrypted content .+ could not be verified/i;
20
22
  const REASONING_UNSUPPORTED_PATTERN = /does not support ['"]reasoning['"]/i;
21
23
 
22
24
  /** Result of the first proactive adaptation pass. */
@@ -46,9 +48,9 @@ export function adaptInferenceReasoning(
46
48
  }
47
49
 
48
50
  /**
49
- * On a reasoning-related 400, remove unsupported reasoning or resolve the
50
- * preferred ladder and produce a remapped retry body. Returns `undefined` when
51
- * no retry should occur.
51
+ * On a reasoning-related 400, remove invalid replay state, remove unsupported
52
+ * reasoning, or resolve the preferred ladder and produce a remapped retry body.
53
+ * Returns `undefined` when no retry should occur.
52
54
  */
53
55
  export async function learnAndAdaptReasoningRetry(input: {
54
56
  readonly model: string;
@@ -65,7 +67,15 @@ export async function learnAndAdaptReasoningRetry(input: {
65
67
  return undefined;
66
68
  }
67
69
 
68
- if (REASONING_UNSUPPORTED_PATTERN.test(JSON.stringify(errorBody))) {
70
+ const serializedError = JSON.stringify(errorBody);
71
+ if (INVALID_ENCRYPTED_REASONING_PATTERN.test(serializedError)) {
72
+ const stripped = stripReasoningHistory(input.body);
73
+ if (!stripped) return undefined;
74
+ logger.info("retrying without invalid encrypted reasoning history", { model: input.model });
75
+ return stripped;
76
+ }
77
+
78
+ if (REASONING_UNSUPPORTED_PATTERN.test(serializedError)) {
69
79
  const stripped = stripRequestReasoning(input.body);
70
80
  if (!stripped) return undefined;
71
81
  logger.info("retrying without unsupported reasoning", { model: input.model });
@@ -93,6 +103,15 @@ export async function learnAndAdaptReasoningRetry(input: {
93
103
  return adapted.body;
94
104
  }
95
105
 
106
+ function stripReasoningHistory(
107
+ body: Readonly<Record<string, unknown>>,
108
+ ): Readonly<Record<string, unknown>> | undefined {
109
+ if (!Array.isArray(body.input)) return undefined;
110
+ const input = body.input.filter((item) => !isRecord(item) || item.type !== "reasoning");
111
+ if (input.length === body.input.length) return undefined;
112
+ return { ...body, input };
113
+ }
114
+
96
115
  function stripRequestReasoning(
97
116
  body: Readonly<Record<string, unknown>>,
98
117
  ): Readonly<Record<string, unknown>> | undefined {
@@ -104,3 +123,7 @@ function stripRequestReasoning(
104
123
  delete stripped.reasoning_effort;
105
124
  return stripped;
106
125
  }
126
+
127
+ function isRecord(value: unknown): value is Readonly<Record<string, unknown>> {
128
+ return typeof value === "object" && value !== null && !Array.isArray(value);
129
+ }