@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.
Files changed (44) hide show
  1. package/README.md +65 -0
  2. package/dist/cli/main.d.ts.map +1 -1
  3. package/dist/cli/main.js +5 -0
  4. package/dist/cli/main.js.map +1 -1
  5. package/dist/cli/route-demo.d.ts +16 -0
  6. package/dist/cli/route-demo.d.ts.map +1 -0
  7. package/dist/cli/route-demo.js +211 -0
  8. package/dist/cli/route-demo.js.map +1 -0
  9. package/dist/frameworks/index.d.ts +2 -0
  10. package/dist/frameworks/index.d.ts.map +1 -1
  11. package/dist/frameworks/index.js +2 -0
  12. package/dist/frameworks/index.js.map +1 -1
  13. package/dist/frameworks/langchain.d.ts +52 -0
  14. package/dist/frameworks/langchain.d.ts.map +1 -0
  15. package/dist/frameworks/langchain.js +84 -0
  16. package/dist/frameworks/langchain.js.map +1 -0
  17. package/dist/frameworks/openai.d.ts +33 -0
  18. package/dist/frameworks/openai.d.ts.map +1 -0
  19. package/dist/frameworks/openai.js +38 -0
  20. package/dist/frameworks/openai.js.map +1 -0
  21. package/dist/index.d.ts +2 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +6 -3
  24. package/dist/index.js.map +1 -1
  25. package/dist/router-engine.d.ts +123 -0
  26. package/dist/router-engine.d.ts.map +1 -0
  27. package/dist/router-engine.js +246 -0
  28. package/dist/router-engine.js.map +1 -0
  29. package/dist/router.d.ts +1 -0
  30. package/dist/router.d.ts.map +1 -1
  31. package/dist/router.js +6 -0
  32. package/dist/router.js.map +1 -1
  33. package/dist/spend-guard.d.ts +20 -1
  34. package/dist/spend-guard.d.ts.map +1 -1
  35. package/dist/spend-guard.js +37 -0
  36. package/dist/spend-guard.js.map +1 -1
  37. package/dist/types.d.ts +3 -1
  38. package/dist/types.d.ts.map +1 -1
  39. package/package.json +11 -1
  40. package/src/frameworks/README.md +35 -0
  41. package/src/frameworks/index.ts +2 -0
  42. package/src/frameworks/langchain.ts +159 -0
  43. package/src/frameworks/openai.ts +36 -0
  44. 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.10";
38
+ export declare const AGENTGUARD_SPEND_VERSION = "0.15.12";
38
39
  export declare const agentguard: {
39
40
  workflow: typeof runWorkflow;
40
41
  };
@@ -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.resolveLocale = exports.TRANSLATIONS = exports.SUPPORTED_LOCALES = exports.DEFAULT_LOCALE = 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 = 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.10';
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":"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"}
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;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,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"}
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": [