@agentguard-run/spend 0.15.10 → 0.15.12
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 +65 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +5 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/route-demo.d.ts +16 -0
- package/dist/cli/route-demo.d.ts.map +1 -0
- package/dist/cli/route-demo.js +211 -0
- package/dist/cli/route-demo.js.map +1 -0
- package/dist/frameworks/index.d.ts +2 -0
- package/dist/frameworks/index.d.ts.map +1 -1
- package/dist/frameworks/index.js +2 -0
- package/dist/frameworks/index.js.map +1 -1
- package/dist/frameworks/langchain.d.ts +52 -0
- package/dist/frameworks/langchain.d.ts.map +1 -0
- package/dist/frameworks/langchain.js +84 -0
- package/dist/frameworks/langchain.js.map +1 -0
- package/dist/frameworks/openai.d.ts +33 -0
- package/dist/frameworks/openai.d.ts.map +1 -0
- package/dist/frameworks/openai.js +38 -0
- package/dist/frameworks/openai.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/router-engine.d.ts +123 -0
- package/dist/router-engine.d.ts.map +1 -0
- package/dist/router-engine.js +246 -0
- package/dist/router-engine.js.map +1 -0
- package/dist/router.d.ts +1 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +6 -0
- package/dist/router.js.map +1 -1
- package/dist/spend-guard.d.ts +20 -1
- package/dist/spend-guard.d.ts.map +1 -1
- package/dist/spend-guard.js +37 -0
- package/dist/spend-guard.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -1
- package/src/frameworks/README.md +35 -0
- package/src/frameworks/index.ts +2 -0
- package/src/frameworks/langchain.ts +159 -0
- package/src/frameworks/openai.ts +36 -0
- package/src/router.ts +16 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/frameworks/openai.ts"],"names":[],"mappings":";;;AA8BA,oDAEC;AAhCD,gDAA2E;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,SAAgB,oBAAoB,CAAU,MAAe,EAAE,IAA0B;IACvF,OAAO,IAAA,4BAAc,EAAC,MAAM,EAAE,IAAI,CAAY,CAAC;AACjD,CAAC;AAEY,QAAA,oBAAoB,GAAG,oBAAoB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -33,8 +33,9 @@ export { SpendGuard, withSpendGuard, AgentGuardBlockedError, type SpendGuardConf
|
|
|
33
33
|
export { withSpendGuardAnthropic, type AnthropicBindingOptions } from './bindings/anthropic';
|
|
34
34
|
export { withSpendGuardBedrock, type BedrockBindingOptions } from './bindings/bedrock';
|
|
35
35
|
export { recommend, defaultKey, type ModelRouteRecommendation, type RecommendOptions } from './router';
|
|
36
|
+
export { createRouter, RoutingExhaustedError, type ModelRouter, type CreateRouterConfig, type RouterCandidate, type RouterPolicy, type RouterProvider, type RouterRequest, type RouteResult, type RouteReason, type RouteFallback, } from './router-engine';
|
|
36
37
|
export { DEFAULT_LOCALE, SUPPORTED_LOCALES, TRANSLATIONS, type SupportedLocale, resolveLocale, t, formatBlockedTrace, type BlockedTraceArgs, } from './i18n';
|
|
37
|
-
export declare const AGENTGUARD_SPEND_VERSION = "0.15.
|
|
38
|
+
export declare const AGENTGUARD_SPEND_VERSION = "0.15.12";
|
|
38
39
|
export declare const agentguard: {
|
|
39
40
|
workflow: typeof runWorkflow;
|
|
40
41
|
};
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7D,YAAY,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,eAAe,EACf,cAAc,EACd,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,KAAK,SAAS,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAGvK,OAAO,EACL,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,sBAAsB,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG1F,OAAO,EACL,8BAA8B,EAC9B,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,GACjC,MAAM,wBAAwB,CAAC;AAKhC,YAAY,EACV,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAChK,OAAO,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG/J,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3H,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGxG,OAAO,EACL,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,wBAAwB,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACvG,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,KAAK,eAAe,EACpB,aAAa,EACb,CAAC,EACD,kBAAkB,EAClB,KAAK,gBAAgB,GACtB,MAAM,QAAQ,CAAC;AAEhB,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAGlD,eAAO,MAAM,UAAU;;CAEtB,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,aAAa,QAG8B,CAAC;AACzD,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AAEtB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,GACjC,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG3F,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,QAAQ,EACb,KAAK,SAAS,GACf,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -22,8 +22,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
exports.receiptSchemaVersion = exports.isReceiptV3 = exports.assertReceiptV3 = exports.isOpenRouterHost = exports.clearManagedOpenRouterKeyCache = exports.fetchManagedOpenRouterKey = exports.modelCostFromOpenRouter = exports.persistOverrides = exports.syncPricingIntoCostTable = exports.getCachedCatalog = exports.fetchCatalog = exports.recordTelemetryEvent = exports.resetTelemetryInstallId = exports.disableTelemetry = exports.enableTelemetry = exports.telemetryStatus = exports.licenseKeyFingerprint = exports.clearConfiguredLicenseKey = exports.writeConfiguredLicenseKey = exports.readConfiguredLicenseKey = exports.validateAndRegisterLicense = exports.validateLicenseKey = exports.AgentGuardLicenseRequiredError = exports.NdjsonDecisionLogStore = exports.InMemorySpendStore = exports.InMemoryDecisionLogStore = exports.GENESIS_PREVIOUS_HASH = exports.detectSequenceGaps = exports.verifyChain = exports.verifyEntry = exports.signDecision = exports.computeSignerFingerprint = exports.computeEntryHash = exports.sha256Hex = exports.canonicalJson = exports.BUILT_IN_KEYWORD_WATCHLISTS = exports.findCustomKeywordWatchlists = exports.enforcePolicyLicenseGates = exports.adjustPolicyWindowSpend = exports.buildScopeKey = exports.evaluatePolicy = exports.knownModelCosts = exports.persistCostOverrides = exports.loadPersistedCostOverrides = exports.listCostOverrides = exports.inferProvider = exports.computeCallCents = exports.clearCostOverrides = exports.setCostOverride = exports.getModelCost = void 0;
|
|
25
|
-
exports.
|
|
26
|
-
exports.formatLineage = exports.workloadProvenance = exports.buildSampleVerifierHtml = exports.SAMPLE_FLOWS = exports.isSampleFlow = exports.buildSampleReceipt = exports.anchorDir = exports.anchorProofPath = exports.anchorIndexPath = exports.findAnchorForHead = exports.readAnchorIndexAt = exports.readAnchorIndex = exports.writeAnchorProof = exports.defaultOtsLib = exports.DEFAULT_OTS_CALENDARS = exports.OpenTimestampsAnchor = exports.merkleRootHex = exports.chainHeadDigestHex = exports.createAnchorFromEnv = exports.createAnchor = exports.BONUS_THRESHOLD_PCT = exports.DEFAULT_FREE_LIMIT = exports.bonusMessage = exports.readFreeTierState = exports.maybeGrantFirstTimeBonus = exports.getMonthlyUsage = exports.centsToUsd = exports.decisionCents = exports.classifyOrigin = exports.aggregateLedger = exports.PATENT_NOTICE = exports.agentguard = exports.AGENTGUARD_SPEND_VERSION = exports.formatBlockedTrace = exports.t = void 0;
|
|
25
|
+
exports.SUPPORTED_LOCALES = exports.DEFAULT_LOCALE = exports.RoutingExhaustedError = exports.createRouter = exports.defaultKey = exports.recommend = exports.withSpendGuardBedrock = exports.withSpendGuardAnthropic = exports.AgentGuardBlockedError = exports.withSpendGuard = exports.SpendGuard = exports.writeAdvisorOutputs = exports.createAdvisorSessionLogger = exports.resolveAdvisorApiKey = exports.createAdvisorClient = exports.projectedSavings = exports.buildPolicyFromProfile = exports.buildBusinessProfile = exports.AdvisorConversation = exports.AgentGuardWorkflowStateError = exports.AgentGuardDurationCapError = exports.AgentGuardChainCorruptError = exports.AgentGuardBudgetCapError = exports.validateReceiptChain = exports.computeChainHash = exports.WorkflowContext = exports.workflow = exports.verifyConsentReceipt = exports.enforceCompliance = exports.AgentGuardConsentRequiredError = exports.AgentGuardComplianceError = exports.isForeignOriginModel = exports.inferCompliance = exports.inferHosting = exports.inferModelIdentity = exports.inferProviderRoute = exports.PROVIDER_REGISTRY = exports.captureProvenance = exports.verifyReceiptDag = exports.verifyInclusion = exports.signDagNode = exports.msgHashForDecision = exports.merkleRoot = exports.merkleInclusionProof = exports.gateCapability = exports.deriveTrustScore = exports.deriveCapability = exports.dagEnvelopeFromEntries = exports.computeDagEntryHash = exports.compressReceiptDag = void 0;
|
|
26
|
+
exports.formatLineage = exports.workloadProvenance = exports.buildSampleVerifierHtml = exports.SAMPLE_FLOWS = exports.isSampleFlow = exports.buildSampleReceipt = exports.anchorDir = exports.anchorProofPath = exports.anchorIndexPath = exports.findAnchorForHead = exports.readAnchorIndexAt = exports.readAnchorIndex = exports.writeAnchorProof = exports.defaultOtsLib = exports.DEFAULT_OTS_CALENDARS = exports.OpenTimestampsAnchor = exports.merkleRootHex = exports.chainHeadDigestHex = exports.createAnchorFromEnv = exports.createAnchor = exports.BONUS_THRESHOLD_PCT = exports.DEFAULT_FREE_LIMIT = exports.bonusMessage = exports.readFreeTierState = exports.maybeGrantFirstTimeBonus = exports.getMonthlyUsage = exports.centsToUsd = exports.decisionCents = exports.classifyOrigin = exports.aggregateLedger = exports.PATENT_NOTICE = exports.agentguard = exports.AGENTGUARD_SPEND_VERSION = exports.formatBlockedTrace = exports.t = exports.resolveLocale = exports.TRANSLATIONS = void 0;
|
|
27
27
|
const context_1 = require("./workflow/context");
|
|
28
28
|
// Cost table
|
|
29
29
|
var cost_table_1 = require("./cost-table");
|
|
@@ -156,6 +156,9 @@ Object.defineProperty(exports, "withSpendGuardBedrock", { enumerable: true, get:
|
|
|
156
156
|
var router_1 = require("./router");
|
|
157
157
|
Object.defineProperty(exports, "recommend", { enumerable: true, get: function () { return router_1.recommend; } });
|
|
158
158
|
Object.defineProperty(exports, "defaultKey", { enumerable: true, get: function () { return router_1.defaultKey; } });
|
|
159
|
+
var router_engine_1 = require("./router-engine");
|
|
160
|
+
Object.defineProperty(exports, "createRouter", { enumerable: true, get: function () { return router_engine_1.createRouter; } });
|
|
161
|
+
Object.defineProperty(exports, "RoutingExhaustedError", { enumerable: true, get: function () { return router_engine_1.RoutingExhaustedError; } });
|
|
159
162
|
// Localization (en-US, es-419, pt-BR)
|
|
160
163
|
var i18n_1 = require("./i18n");
|
|
161
164
|
Object.defineProperty(exports, "DEFAULT_LOCALE", { enumerable: true, get: function () { return i18n_1.DEFAULT_LOCALE; } });
|
|
@@ -164,7 +167,7 @@ Object.defineProperty(exports, "TRANSLATIONS", { enumerable: true, get: function
|
|
|
164
167
|
Object.defineProperty(exports, "resolveLocale", { enumerable: true, get: function () { return i18n_1.resolveLocale; } });
|
|
165
168
|
Object.defineProperty(exports, "t", { enumerable: true, get: function () { return i18n_1.t; } });
|
|
166
169
|
Object.defineProperty(exports, "formatBlockedTrace", { enumerable: true, get: function () { return i18n_1.formatBlockedTrace; } });
|
|
167
|
-
exports.AGENTGUARD_SPEND_VERSION = '0.15.
|
|
170
|
+
exports.AGENTGUARD_SPEND_VERSION = '0.15.12';
|
|
168
171
|
exports.agentguard = {
|
|
169
172
|
workflow: context_1.workflow,
|
|
170
173
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentGuard Spend: spend-and-policy-aware model router.
|
|
3
|
+
*
|
|
4
|
+
* `createRouter(...)` composes the EXISTING pieces of this SDK into one call
|
|
5
|
+
* that:
|
|
6
|
+
* 1. selects a candidate model across providers by a routing policy
|
|
7
|
+
* (cost-first / explicit priority / capability-tag filter),
|
|
8
|
+
* 2. enforces the spend cap using the EXISTING enforcement path
|
|
9
|
+
* (`SpendGuard.decide` -> `evaluatePolicy`) — block / downgrade / allow,
|
|
10
|
+
* 3. executes via the candidate's provider client,
|
|
11
|
+
* 4. FAILS OVER to the next viable candidate on a provider error/timeout OR a
|
|
12
|
+
* cap breach (block) on the chosen model — this removes vendor lock-in,
|
|
13
|
+
* 5. signs a routing receipt that records the decision, hash-chained onto the
|
|
14
|
+
* SAME signed log as the enforcement decisions using the EXISTING Ed25519 +
|
|
15
|
+
* canonical-JSON receipt infra (`SpendGuard.recordRoutingReceipt`).
|
|
16
|
+
*
|
|
17
|
+
* ZERO DATA PLANE: prompts, completions and provider keys never leave the
|
|
18
|
+
* process, and the routing receipt is payload-minimized (provider + model +
|
|
19
|
+
* projected cost only — never content).
|
|
20
|
+
*
|
|
21
|
+
* Patent notice: Protected by U.S. patent-pending technology
|
|
22
|
+
* (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
|
|
23
|
+
* 64/071,781; 64/071,789).
|
|
24
|
+
*/
|
|
25
|
+
import { SpendGuard, type SpendGuardConfig } from './spend-guard';
|
|
26
|
+
import type { CapabilityTier, SignedDecisionLogEntry, SpendDecision, SpendPolicy, SpendScope } from './types';
|
|
27
|
+
/** A provider the router knows how to dispatch a call to. */
|
|
28
|
+
export type RouterProvider = 'openai' | 'anthropic' | 'bedrock' | 'openrouter';
|
|
29
|
+
/** One routable model on a concrete provider client. */
|
|
30
|
+
export interface RouterCandidate {
|
|
31
|
+
/** Provider family. Drives cost lookup, dispatch and receipt labeling. */
|
|
32
|
+
provider: RouterProvider;
|
|
33
|
+
/** Model id as passed to the provider. */
|
|
34
|
+
model: string;
|
|
35
|
+
/** The provider SDK client used to execute the call. */
|
|
36
|
+
client: any;
|
|
37
|
+
/** Optional capability tags for capability-filter routing (e.g. 'vision'). */
|
|
38
|
+
capabilities?: string[];
|
|
39
|
+
}
|
|
40
|
+
/** How the router chooses among candidates. */
|
|
41
|
+
export interface RouterPolicy {
|
|
42
|
+
/**
|
|
43
|
+
* - `cost`: cheapest capable candidate first (projected cents ascending).
|
|
44
|
+
* - `priority`: honor the given candidate order (explicit failover order).
|
|
45
|
+
* - `capability`: keep only candidates whose `capabilities` include
|
|
46
|
+
* `requireCapability`, then order cheapest-first.
|
|
47
|
+
*/
|
|
48
|
+
mode: 'cost' | 'priority' | 'capability';
|
|
49
|
+
/** Required capability tag when `mode === 'capability'`. */
|
|
50
|
+
requireCapability?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface CreateRouterConfig {
|
|
53
|
+
/** Ordered list of routable candidates across providers. */
|
|
54
|
+
candidates: RouterCandidate[];
|
|
55
|
+
/** Selection policy. Defaults to cost-first. */
|
|
56
|
+
policy?: RouterPolicy;
|
|
57
|
+
/** The spend policy enforced by the EXISTING enforcement path. */
|
|
58
|
+
spendPolicy: SpendPolicy;
|
|
59
|
+
/** Ed25519 signing keys for the receipt chain. Reused, not re-invented. */
|
|
60
|
+
signingKeys?: SpendGuardConfig['signingKeys'];
|
|
61
|
+
/** Decision log store shared by enforcement + routing receipts. */
|
|
62
|
+
logStore?: SpendGuardConfig['logStore'];
|
|
63
|
+
/** Spend state store. */
|
|
64
|
+
spendStore?: SpendGuardConfig['spendStore'];
|
|
65
|
+
/** Any remaining SpendGuard config (posture, license, locale, hooks, ...). */
|
|
66
|
+
guardConfig?: Omit<SpendGuardConfig, 'policy' | 'signingKeys' | 'logStore' | 'spendStore'>;
|
|
67
|
+
}
|
|
68
|
+
/** A single inference request routed across candidates. */
|
|
69
|
+
export interface RouterRequest {
|
|
70
|
+
/** Identity scope for enforcement. Defaults to the spend policy scope. */
|
|
71
|
+
scope?: SpendScope;
|
|
72
|
+
/** Provider-native messages (openai/anthropic style). Used for token estimate. */
|
|
73
|
+
messages?: unknown[];
|
|
74
|
+
/** Extra provider params merged into the call (max_tokens, temperature, ...). */
|
|
75
|
+
params?: Record<string, unknown>;
|
|
76
|
+
/** Explicit input token count. Overrides estimation from `messages`. */
|
|
77
|
+
inputTokens?: number;
|
|
78
|
+
/** Expected output token count. Falls back to params.max_tokens or 512. */
|
|
79
|
+
outputTokens?: number;
|
|
80
|
+
/** Capability tier claim forwarded to enforcement. */
|
|
81
|
+
capabilityClaim?: CapabilityTier;
|
|
82
|
+
/** Optional label for the call (metadata only). */
|
|
83
|
+
label?: string;
|
|
84
|
+
}
|
|
85
|
+
export type RouteReason = 'cost' | 'priority' | 'capability' | 'failover' | 'downgrade';
|
|
86
|
+
/** A candidate that was considered but not chosen, and why. */
|
|
87
|
+
export interface RouteFallback {
|
|
88
|
+
provider: RouterProvider;
|
|
89
|
+
model: string;
|
|
90
|
+
/** 'cap_breach' (blocked by spend cap) or 'provider_error'. */
|
|
91
|
+
reason: 'cap_breach' | 'provider_error';
|
|
92
|
+
detail?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface RouteResult<T = unknown> {
|
|
95
|
+
/** The provider response from the winning candidate. */
|
|
96
|
+
response: T;
|
|
97
|
+
/** Chosen provider + model actually executed. */
|
|
98
|
+
chosen: {
|
|
99
|
+
provider: RouterProvider;
|
|
100
|
+
model: string;
|
|
101
|
+
};
|
|
102
|
+
/** Why this candidate won. */
|
|
103
|
+
reason: RouteReason;
|
|
104
|
+
/** Resolved cost in cents (settled from usage when available, else projected). */
|
|
105
|
+
resolvedCents: number;
|
|
106
|
+
/** Candidates skipped before the winner, with cause. */
|
|
107
|
+
fallbacks: RouteFallback[];
|
|
108
|
+
/** The winning enforcement decision (already signed onto the chain). */
|
|
109
|
+
decision: SpendDecision;
|
|
110
|
+
/** The signed routing receipt entry (null when signing keys are absent). */
|
|
111
|
+
routingReceipt: SignedDecisionLogEntry | null;
|
|
112
|
+
}
|
|
113
|
+
export declare class RoutingExhaustedError extends Error {
|
|
114
|
+
fallbacks: RouteFallback[];
|
|
115
|
+
constructor(fallbacks: RouteFallback[]);
|
|
116
|
+
}
|
|
117
|
+
export interface ModelRouter {
|
|
118
|
+
route<T = unknown>(request: RouterRequest): Promise<RouteResult<T>>;
|
|
119
|
+
/** The underlying SpendGuard (shared enforcement + signed chain). */
|
|
120
|
+
readonly guard: SpendGuard;
|
|
121
|
+
}
|
|
122
|
+
export declare function createRouter(config: CreateRouterConfig): ModelRouter;
|
|
123
|
+
//# sourceMappingURL=router-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router-engine.d.ts","sourceRoot":"","sources":["../src/router-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* AgentGuard Spend: spend-and-policy-aware model router.
|
|
4
|
+
*
|
|
5
|
+
* `createRouter(...)` composes the EXISTING pieces of this SDK into one call
|
|
6
|
+
* that:
|
|
7
|
+
* 1. selects a candidate model across providers by a routing policy
|
|
8
|
+
* (cost-first / explicit priority / capability-tag filter),
|
|
9
|
+
* 2. enforces the spend cap using the EXISTING enforcement path
|
|
10
|
+
* (`SpendGuard.decide` -> `evaluatePolicy`) — block / downgrade / allow,
|
|
11
|
+
* 3. executes via the candidate's provider client,
|
|
12
|
+
* 4. FAILS OVER to the next viable candidate on a provider error/timeout OR a
|
|
13
|
+
* cap breach (block) on the chosen model — this removes vendor lock-in,
|
|
14
|
+
* 5. signs a routing receipt that records the decision, hash-chained onto the
|
|
15
|
+
* SAME signed log as the enforcement decisions using the EXISTING Ed25519 +
|
|
16
|
+
* canonical-JSON receipt infra (`SpendGuard.recordRoutingReceipt`).
|
|
17
|
+
*
|
|
18
|
+
* ZERO DATA PLANE: prompts, completions and provider keys never leave the
|
|
19
|
+
* process, and the routing receipt is payload-minimized (provider + model +
|
|
20
|
+
* projected cost only — never content).
|
|
21
|
+
*
|
|
22
|
+
* Patent notice: Protected by U.S. patent-pending technology
|
|
23
|
+
* (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
|
|
24
|
+
* 64/071,781; 64/071,789).
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.RoutingExhaustedError = void 0;
|
|
28
|
+
exports.createRouter = createRouter;
|
|
29
|
+
const spend_guard_1 = require("./spend-guard");
|
|
30
|
+
const cost_table_1 = require("./cost-table");
|
|
31
|
+
class RoutingExhaustedError extends Error {
|
|
32
|
+
fallbacks;
|
|
33
|
+
constructor(fallbacks) {
|
|
34
|
+
super('agentguard router: every candidate was exhausted (' +
|
|
35
|
+
fallbacks.map((f) => `${f.provider}/${f.model}:${f.reason}`).join(', ') +
|
|
36
|
+
')');
|
|
37
|
+
this.name = 'RoutingExhaustedError';
|
|
38
|
+
this.fallbacks = fallbacks;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.RoutingExhaustedError = RoutingExhaustedError;
|
|
42
|
+
const ROUTER_PROVIDER_TO_ENFORCEMENT = {
|
|
43
|
+
openai: 'openai',
|
|
44
|
+
openrouter: 'openai',
|
|
45
|
+
anthropic: 'anthropic',
|
|
46
|
+
bedrock: 'bedrock',
|
|
47
|
+
};
|
|
48
|
+
function createRouter(config) {
|
|
49
|
+
if (!Array.isArray(config.candidates) || config.candidates.length === 0) {
|
|
50
|
+
throw new Error('createRouter: at least one candidate is required');
|
|
51
|
+
}
|
|
52
|
+
const policy = config.policy ?? { mode: 'cost' };
|
|
53
|
+
const guard = new spend_guard_1.SpendGuard({
|
|
54
|
+
policy: config.spendPolicy,
|
|
55
|
+
...(config.guardConfig ?? {}),
|
|
56
|
+
...(config.signingKeys ? { signingKeys: config.signingKeys } : {}),
|
|
57
|
+
...(config.logStore ? { logStore: config.logStore } : {}),
|
|
58
|
+
...(config.spendStore ? { spendStore: config.spendStore } : {}),
|
|
59
|
+
});
|
|
60
|
+
async function route(request) {
|
|
61
|
+
const scope = request.scope ?? config.spendPolicy.scope;
|
|
62
|
+
const inputTokens = request.inputTokens ?? guard.estimateTokens(estimateText(request.messages));
|
|
63
|
+
const outputTokens = normalizeTokens(request.outputTokens ?? paramsMaxTokens(request.params), 512);
|
|
64
|
+
const ordered = selectCandidates(config.candidates, policy, inputTokens, outputTokens);
|
|
65
|
+
const considered = ordered.map((c) => ({
|
|
66
|
+
provider: c.provider,
|
|
67
|
+
model: c.model,
|
|
68
|
+
projectedCents: projectCents(c.model, inputTokens, outputTokens),
|
|
69
|
+
}));
|
|
70
|
+
const firstChoiceModel = ordered[0]?.model ?? request.params?.model ?? 'unknown';
|
|
71
|
+
const fallbacks = [];
|
|
72
|
+
for (let i = 0; i < ordered.length; i++) {
|
|
73
|
+
const candidate = ordered[i];
|
|
74
|
+
const call = buildCall(candidate, request, scope, inputTokens, outputTokens);
|
|
75
|
+
const { decision } = await guard.decide(call);
|
|
76
|
+
// (d) cap breach on the chosen model -> fail over to the next candidate.
|
|
77
|
+
if (decision.action === 'block') {
|
|
78
|
+
fallbacks.push({
|
|
79
|
+
provider: candidate.provider,
|
|
80
|
+
model: candidate.model,
|
|
81
|
+
reason: 'cap_breach',
|
|
82
|
+
detail: decision.reasons[0],
|
|
83
|
+
});
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const executedModel = decision.action === 'downgrade' && decision.modelResolved !== decision.modelRequested
|
|
87
|
+
? decision.modelResolved
|
|
88
|
+
: candidate.model;
|
|
89
|
+
let response;
|
|
90
|
+
try {
|
|
91
|
+
// (c) execute via the correct provider binding.
|
|
92
|
+
response = (await executeCandidate(candidate, executedModel, request));
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
// (d) provider error/timeout -> fail over to the next candidate.
|
|
96
|
+
fallbacks.push({
|
|
97
|
+
provider: candidate.provider,
|
|
98
|
+
model: candidate.model,
|
|
99
|
+
reason: 'provider_error',
|
|
100
|
+
detail: errorDetail(err),
|
|
101
|
+
});
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
// (b) settle the true cost against the EXISTING spend window.
|
|
105
|
+
const resolvedCents = await settleUsage(guard, decision, response, executedModel, inputTokens, outputTokens);
|
|
106
|
+
const reason = resolveReason(policy, i, decision.action === 'downgrade');
|
|
107
|
+
// (e) sign a routing receipt onto the same chain via the existing infra.
|
|
108
|
+
const receiptPayload = {
|
|
109
|
+
policy: policy.mode,
|
|
110
|
+
...(policy.requireCapability ? { requireCapability: policy.requireCapability } : {}),
|
|
111
|
+
candidates: considered,
|
|
112
|
+
chosen: { provider: candidate.provider, model: executedModel },
|
|
113
|
+
reason,
|
|
114
|
+
resolvedCents,
|
|
115
|
+
fallbacks,
|
|
116
|
+
enforcementDecisionId: decision.decisionId,
|
|
117
|
+
};
|
|
118
|
+
const { signed } = await guard.recordRoutingReceipt({
|
|
119
|
+
provider: ROUTER_PROVIDER_TO_ENFORCEMENT[candidate.provider],
|
|
120
|
+
modelRequested: firstChoiceModel,
|
|
121
|
+
modelResolved: executedModel,
|
|
122
|
+
projectedCents: resolvedCents,
|
|
123
|
+
reason,
|
|
124
|
+
routingReceipt: receiptPayload,
|
|
125
|
+
});
|
|
126
|
+
return {
|
|
127
|
+
response,
|
|
128
|
+
chosen: { provider: candidate.provider, model: executedModel },
|
|
129
|
+
reason,
|
|
130
|
+
resolvedCents,
|
|
131
|
+
fallbacks,
|
|
132
|
+
decision,
|
|
133
|
+
routingReceipt: signed,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
throw new RoutingExhaustedError(fallbacks);
|
|
137
|
+
}
|
|
138
|
+
return { route, guard };
|
|
139
|
+
}
|
|
140
|
+
function selectCandidates(candidates, policy, inputTokens, outputTokens) {
|
|
141
|
+
let pool = candidates.slice();
|
|
142
|
+
if (policy.mode === 'capability') {
|
|
143
|
+
const tag = policy.requireCapability;
|
|
144
|
+
pool = pool.filter((c) => !tag || (c.capabilities ?? []).includes(tag));
|
|
145
|
+
}
|
|
146
|
+
if (policy.mode === 'priority') {
|
|
147
|
+
return pool; // honor the given order verbatim
|
|
148
|
+
}
|
|
149
|
+
// cost-first (also the tiebreaker within capability mode). Stable on ties by
|
|
150
|
+
// preserving original index order.
|
|
151
|
+
return pool
|
|
152
|
+
.map((candidate, index) => ({ candidate, index, cents: projectCents(candidate.model, inputTokens, outputTokens) }))
|
|
153
|
+
.sort((a, b) => a.cents - b.cents || a.index - b.index)
|
|
154
|
+
.map((entry) => entry.candidate);
|
|
155
|
+
}
|
|
156
|
+
function resolveReason(policy, winnerIndex, downgraded) {
|
|
157
|
+
if (downgraded)
|
|
158
|
+
return 'downgrade';
|
|
159
|
+
if (winnerIndex > 0)
|
|
160
|
+
return 'failover';
|
|
161
|
+
return policy.mode;
|
|
162
|
+
}
|
|
163
|
+
function buildCall(candidate, request, scope, inputTokens, outputTokens) {
|
|
164
|
+
return {
|
|
165
|
+
provider: ROUTER_PROVIDER_TO_ENFORCEMENT[candidate.provider],
|
|
166
|
+
model: candidate.model,
|
|
167
|
+
inputTokens,
|
|
168
|
+
outputTokens,
|
|
169
|
+
scope,
|
|
170
|
+
...(request.capabilityClaim ? { capabilityClaim: request.capabilityClaim } : {}),
|
|
171
|
+
...(request.label ? { label: request.label } : {}),
|
|
172
|
+
requestShape: { model: candidate.model, maxTokens: outputTokens, routedProvider: candidate.provider },
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
async function executeCandidate(candidate, model, request) {
|
|
176
|
+
const client = candidate.client;
|
|
177
|
+
const baseParams = { ...(request.params ?? {}) };
|
|
178
|
+
if (request.messages !== undefined && baseParams.messages === undefined) {
|
|
179
|
+
baseParams.messages = request.messages;
|
|
180
|
+
}
|
|
181
|
+
const params = { ...baseParams, model };
|
|
182
|
+
if ((candidate.provider === 'openai' || candidate.provider === 'openrouter') && client?.chat?.completions?.create) {
|
|
183
|
+
return client.chat.completions.create(params);
|
|
184
|
+
}
|
|
185
|
+
if (candidate.provider === 'anthropic' && client?.messages?.create) {
|
|
186
|
+
return client.messages.create(params);
|
|
187
|
+
}
|
|
188
|
+
if (candidate.provider === 'bedrock' && typeof client?.send === 'function') {
|
|
189
|
+
return client.send({
|
|
190
|
+
constructor: { name: 'InvokeModelCommand' },
|
|
191
|
+
input: { modelId: model, body: JSON.stringify(params) },
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
// Structural fallbacks so any minimal/mocked client still routes.
|
|
195
|
+
if (client?.chat?.completions?.create)
|
|
196
|
+
return client.chat.completions.create(params);
|
|
197
|
+
if (client?.messages?.create)
|
|
198
|
+
return client.messages.create(params);
|
|
199
|
+
if (typeof client?.create === 'function')
|
|
200
|
+
return client.create(params);
|
|
201
|
+
throw new Error(`router: candidate client for ${candidate.provider} exposes no known invoke method`);
|
|
202
|
+
}
|
|
203
|
+
async function settleUsage(guard, decision, response, executedModel, inputTokens, outputTokens) {
|
|
204
|
+
const usage = (0, spend_guard_1.extractUsage)(response);
|
|
205
|
+
if (usage) {
|
|
206
|
+
const settlement = await guard.settleStreamUsage(decision.decisionId, usage.inputTokens, usage.outputTokens, {
|
|
207
|
+
partial: false,
|
|
208
|
+
});
|
|
209
|
+
if (settlement && Number.isFinite(settlement.decision.actualCents)) {
|
|
210
|
+
return settlement.decision.actualCents;
|
|
211
|
+
}
|
|
212
|
+
const settled = (0, cost_table_1.computeCallCents)(executedModel, usage.inputTokens, usage.outputTokens);
|
|
213
|
+
if (settled !== null)
|
|
214
|
+
return settled;
|
|
215
|
+
}
|
|
216
|
+
return projectCents(executedModel, inputTokens, outputTokens);
|
|
217
|
+
}
|
|
218
|
+
function projectCents(model, inputTokens, outputTokens) {
|
|
219
|
+
const cents = (0, cost_table_1.computeCallCents)(model, inputTokens, outputTokens);
|
|
220
|
+
return cents === null ? Number.POSITIVE_INFINITY : cents;
|
|
221
|
+
}
|
|
222
|
+
function estimateText(messages) {
|
|
223
|
+
if (!Array.isArray(messages))
|
|
224
|
+
return '';
|
|
225
|
+
return messages
|
|
226
|
+
.map((message) => {
|
|
227
|
+
const content = message?.content;
|
|
228
|
+
if (typeof content === 'string')
|
|
229
|
+
return content;
|
|
230
|
+
return content == null ? '' : JSON.stringify(content);
|
|
231
|
+
})
|
|
232
|
+
.join('\n');
|
|
233
|
+
}
|
|
234
|
+
function paramsMaxTokens(params) {
|
|
235
|
+
const value = params?.max_tokens ?? params?.maxTokens ?? params?.max_completion_tokens;
|
|
236
|
+
return Number.isSafeInteger(value) && value >= 0 ? value : undefined;
|
|
237
|
+
}
|
|
238
|
+
function normalizeTokens(value, fallback) {
|
|
239
|
+
return Number.isSafeInteger(value) && value >= 0 ? value : fallback;
|
|
240
|
+
}
|
|
241
|
+
function errorDetail(err) {
|
|
242
|
+
if (err instanceof Error && err.message)
|
|
243
|
+
return err.message.slice(0, 160);
|
|
244
|
+
return 'provider_error';
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=router-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router-engine.js","sourceRoot":"","sources":["../src/router-engine.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;AAoIH,oCAsGC;AAxOD,+CAAgF;AAChF,6CAAgD;AAuGhD,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAS,CAAkB;IAC3B,YAAY,SAA0B;QACpC,KAAK,CACH,oDAAoD;YAClD,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACvE,GAAG,CACN,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAXD,sDAWC;AAQD,MAAM,8BAA8B,GAAqC;IACvE,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,SAAgB,YAAY,CAAC,MAA0B;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,GAAiB,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAG,IAAI,wBAAU,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC,WAAW;QAC1B,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC,CAAC;IAEH,KAAK,UAAU,KAAK,CAAI,OAAsB;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;QACxD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChG,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAEnG,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACvF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC;SACjE,CAAC,CAAC,CAAC;QACJ,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC;QACjF,MAAM,SAAS,GAAoB,EAAE,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YAC7E,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE9C,yEAAyE;YACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC;oBACb,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,MAAM,EAAE,YAAY;oBACpB,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC5B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GACjB,QAAQ,CAAC,MAAM,KAAK,WAAW,IAAI,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,cAAc;gBACnF,CAAC,CAAC,QAAQ,CAAC,aAAa;gBACxB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;YAEtB,IAAI,QAAW,CAAC;YAChB,IAAI,CAAC;gBACH,gDAAgD;gBAChD,QAAQ,GAAG,CAAC,MAAM,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAM,CAAC;YAC9E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,iEAAiE;gBACjE,SAAS,CAAC,IAAI,CAAC;oBACb,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,MAAM,EAAE,gBAAgB;oBACxB,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC;iBACzB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,8DAA8D;YAC9D,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YAC7G,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;YAEzE,yEAAyE;YACzE,MAAM,cAAc,GAA4B;gBAC9C,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;gBAC9D,MAAM;gBACN,aAAa;gBACb,SAAS;gBACT,qBAAqB,EAAE,QAAQ,CAAC,UAAU;aAC3C,CAAC;YACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC;gBAClD,QAAQ,EAAE,8BAA8B,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAC5D,cAAc,EAAE,gBAAgB;gBAChC,aAAa,EAAE,aAAa;gBAC5B,cAAc,EAAE,aAAa;gBAC7B,MAAM;gBACN,cAAc,EAAE,cAAc;aAC/B,CAAC,CAAC;YAEH,OAAO;gBACL,QAAQ;gBACR,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE;gBAC9D,MAAM;gBACN,aAAa;gBACb,SAAS;gBACT,QAAQ;gBACR,cAAc,EAAE,MAAM;aACvB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CACvB,UAA6B,EAC7B,MAAoB,EACpB,WAAmB,EACnB,YAAoB;IAEpB,IAAI,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACrC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,CAAC,iCAAiC;IAChD,CAAC;IACD,6EAA6E;IAC7E,mCAAmC;IACnC,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;SAClH,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACtD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,MAAoB,EAAE,WAAmB,EAAE,UAAmB;IACnF,IAAI,UAAU;QAAE,OAAO,WAAW,CAAC;IACnC,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,SAAS,CAChB,SAA0B,EAC1B,OAAsB,EACtB,KAAiB,EACjB,WAAmB,EACnB,YAAoB;IAEpB,OAAO;QACL,QAAQ,EAAE,8BAA8B,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC5D,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,WAAW;QACX,YAAY;QACZ,KAAK;QACL,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,CAAC,QAAQ,EAAE;KACtG,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,SAA0B,EAC1B,KAAa,EACb,OAAsB;IAEtB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACxE,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzC,CAAC;IACD,MAAM,MAAM,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,CAAC;IAExC,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,KAAK,YAAY,CAAC,IAAI,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAClH,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,MAAM,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QAC3E,OAAO,MAAM,CAAC,IAAI,CAAC;YACjB,WAAW,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE;YAC3C,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;SACxD,CAAC,CAAC;IACL,CAAC;IACD,kEAAkE;IAClE,IAAI,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrF,IAAI,MAAM,EAAE,QAAQ,EAAE,MAAM;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpE,IAAI,OAAO,MAAM,EAAE,MAAM,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,CAAC,QAAQ,iCAAiC,CAAC,CAAC;AACvG,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAiB,EACjB,QAAuB,EACvB,QAAiB,EACjB,aAAqB,EACrB,WAAmB,EACnB,YAAoB;IAEpB,MAAM,KAAK,GAAG,IAAA,0BAAY,EAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE;YAC3G,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACnE,OAAO,UAAU,CAAC,QAAQ,CAAC,WAAqB,CAAC;QACnD,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,6BAAgB,EAAC,aAAa,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACvF,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC;IACvC,CAAC;IACD,OAAO,YAAY,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,WAAmB,EAAE,YAAoB;IAC5E,MAAM,KAAK,GAAG,IAAA,6BAAgB,EAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IACjE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,QAAiB;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,OAAO,GAAI,OAAwC,EAAE,OAAO,CAAC;QACnE,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QAChD,OAAO,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,MAA2C;IAClE,MAAM,KAAK,GAAG,MAAM,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,IAAI,MAAM,EAAE,qBAAqB,CAAC;IACvF,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC,CAAC,CAAC,CAAE,KAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/F,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB,EAAE,QAAgB;IAClE,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC,CAAC,CAAC,CAAE,KAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9F,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1E,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
|
package/dist/router.d.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
|
|
9
9
|
* 64/071,781; 64/071,789).
|
|
10
10
|
*/
|
|
11
|
+
export { createRouter, RoutingExhaustedError, type ModelRouter, type CreateRouterConfig, type RouterCandidate, type RouterPolicy, type RouterProvider, type RouterRequest, type RouteResult, type RouteReason, type RouteFallback, } from './router-engine';
|
|
11
12
|
export interface RouterCatalogModel {
|
|
12
13
|
id: string;
|
|
13
14
|
in_per_mtok: number;
|
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,aAAa,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,cAAc,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AA4lCD,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,wBAAwB,CA+BlF;AAaD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAKrE"}
|
package/dist/router.js
CHANGED
|
@@ -10,9 +10,15 @@
|
|
|
10
10
|
* 64/071,781; 64/071,789).
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.RoutingExhaustedError = exports.createRouter = void 0;
|
|
13
14
|
exports.recommend = recommend;
|
|
14
15
|
exports.defaultKey = defaultKey;
|
|
15
16
|
const openrouter_catalog_1 = require("./openrouter-catalog");
|
|
17
|
+
// Spend-and-policy-aware model router (removes vendor risk). Re-exported here so
|
|
18
|
+
// the `./router` subpath exposes both the config recommender and the executor.
|
|
19
|
+
var router_engine_1 = require("./router-engine");
|
|
20
|
+
Object.defineProperty(exports, "createRouter", { enumerable: true, get: function () { return router_engine_1.createRouter; } });
|
|
21
|
+
Object.defineProperty(exports, "RoutingExhaustedError", { enumerable: true, get: function () { return router_engine_1.RoutingExhaustedError; } });
|
|
16
22
|
const DEFAULTS = {
|
|
17
23
|
"version": 2,
|
|
18
24
|
"compliance_verticals": [
|