paygate-mcp 9.8.0 → 10.0.0
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 +9 -3
- package/dist/budget-policy.d.ts +130 -0
- package/dist/budget-policy.d.ts.map +1 -0
- package/dist/budget-policy.js +326 -0
- package/dist/budget-policy.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/ip-access.d.ts +116 -0
- package/dist/ip-access.d.ts.map +1 -0
- package/dist/ip-access.js +341 -0
- package/dist/ip-access.js.map +1 -0
- package/dist/request-signing.d.ts +112 -0
- package/dist/request-signing.d.ts.map +1 -0
- package/dist/request-signing.js +288 -0
- package/dist/request-signing.js.map +1 -0
- package/dist/request-tracer.d.ts +129 -0
- package/dist/request-tracer.d.ts.map +1 -0
- package/dist/request-tracer.js +271 -0
- package/dist/request-tracer.js.map +1 -0
- package/dist/server.d.ts +18 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +602 -0
- package/dist/server.js.map +1 -1
- package/dist/tenant-isolation.d.ts +168 -0
- package/dist/tenant-isolation.d.ts.map +1 -0
- package/dist/tenant-isolation.js +389 -0
- package/dist/tenant-isolation.js.map +1 -0
- package/dist/tool-deps.d.ts +154 -0
- package/dist/tool-deps.d.ts.map +1 -0
- package/dist/tool-deps.js +394 -0
- package/dist/tool-deps.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ Monetize any MCP server with one command. Add API key auth, per-tool pricing, ra
|
|
|
11
11
|
- [Quick Start](#quick-start)
|
|
12
12
|
- [What It Does](#what-it-does)
|
|
13
13
|
- [Usage](#usage) — Local stdio, remote HTTP, multi-server, client SDK
|
|
14
|
-
- [API Reference](#api-reference) — All
|
|
14
|
+
- [API Reference](#api-reference) — All 187+ endpoints
|
|
15
15
|
- [CLI Options](#cli-options)
|
|
16
16
|
- [Deployment](#deployment) — Docker, docker-compose, systemd, PM2
|
|
17
17
|
- [Load Testing](#load-testing) — k6 benchmarking for production
|
|
@@ -66,7 +66,7 @@ Agent → PayGate (auth + billing) → Your MCP Server (stdio or HTTP)
|
|
|
66
66
|
- **SSE Streaming** — Full MCP Streamable HTTP transport (POST SSE, GET notifications, DELETE sessions)
|
|
67
67
|
- **Audit Log** — Structured audit trail with retention policies, query API, CSV/JSON export
|
|
68
68
|
- **Registry/Discovery** — Agent-discoverable pricing via `/.well-known/mcp-payment`, `/pricing`, and `/.well-known/mcp.json` identity card
|
|
69
|
-
- **OpenAPI 3.1 + Interactive Docs** — Auto-generated spec at `/openapi.json`, Swagger UI at `/docs` — all
|
|
69
|
+
- **OpenAPI 3.1 + Interactive Docs** — Auto-generated spec at `/openapi.json`, Swagger UI at `/docs` — all 187+ endpoints documented
|
|
70
70
|
- **Public Endpoint Rate Limiting** — Configurable per-IP rate limit (default 300/min) on `/health`, `/info`, `/pricing`, `/docs`, `/openapi.json`, `/.well-known/*`, `/robots.txt`, `/` — 429 with Retry-After header
|
|
71
71
|
- **Robots.txt + HEAD Support** — Standard `/robots.txt` (allow public, disallow admin/keys), HEAD method on all public endpoints for uptime monitoring
|
|
72
72
|
- **Prometheus Metrics** — `/metrics` endpoint with counters, gauges, and uptime in standard text format
|
|
@@ -171,6 +171,12 @@ Agent → PayGate (auth + billing) → Your MCP Server (stdio or HTTP)
|
|
|
171
171
|
- **Request Deduplication** — Idempotency layer preventing duplicate billing from agent retries — `X-Idempotency-Key` header with auto-generation fallback (SHA-256), in-flight request coalescing, configurable TTL window, LRU eviction, credits-saved tracking, manage via `GET/POST/DELETE /admin/dedup`
|
|
172
172
|
- **Priority Queue** — Tiered request prioritization (critical/high/normal/low/background) with fair scheduling — per-key priority assignment, configurable max wait times per tier, starvation prevention via automatic promotion, max queue depth limiting, manage via `GET/POST /admin/priority-queue`
|
|
173
173
|
- **Cost Allocation Tags** — Per-request cost attribution via `X-Cost-Tags` header (JSON) for enterprise chargeback — aggregated reports by any tag dimension, cross-tabulation, CSV export, required tag enforcement per key, cardinality limits, manage via `GET/POST/DELETE /admin/cost-tags`
|
|
174
|
+
- **IP Access Control** — Fine-grained IP-based access control with CIDR notation support — global allow/deny lists, per-key IP binding, automatic blocking after configurable violation thresholds, X-Forwarded-For/X-Real-IP trusted proxy depth, IPv6-mapped IPv4 normalization, manage via `GET/POST/DELETE /admin/ip-access`
|
|
175
|
+
- **Request Signing (HMAC-SHA256)** — Cryptographic request authentication with replay protection — `X-Signature: t=<ts>,n=<nonce>,s=<sig>` header, timestamp tolerance with nonce dedup, per-key signing secrets with rotation, timing-safe comparison, manage via `GET/POST/DELETE /admin/signing`
|
|
176
|
+
- **Multi-Tenant Isolation** — Full tenant isolation for platform operators — per-tenant rate limits, credit pools, usage tracking, API key binding, tenant suspension/activation, cross-tenant reporting, configurable limits (10K tenants, 1K keys/tenant), manage via `GET/POST/DELETE /admin/tenants`
|
|
177
|
+
- **Request Tracing** — End-to-end structured tracing with span recording at gate, backend, and transform stages — trace/request ID lookup, timing breakdown (gateMs/backendMs/transformMs), configurable sample rate, retention limits, P95 latency tracking, JSON export, manage via `GET/POST/DELETE /admin/tracing`
|
|
178
|
+
- **Budget Policy Engine** — Burn rate monitoring with progressive throttling — daily/monthly budget enforcement, credits/minute burn rate tracking over configurable windows, three actions (alert/throttle/deny), per-namespace and per-key targeting, budget remaining forecast, automatic daily/monthly reset, manage via `GET/POST/DELETE /admin/budget-policies`
|
|
179
|
+
- **Tool Dependency Graph** — DAG-based workflow validation — register tool dependencies, enforce execution order, failure propagation (upstream failure blocks downstream), topological sort, cycle detection, per-workflow execution tracking, hard vs soft dependencies, group scoping, manage via `GET/POST/DELETE /admin/tool-deps`
|
|
174
180
|
- **Anomaly Detection** — `GET /admin/anomalies` identifies unusual patterns: keys with high denial rates, rapid credit depletion, low remaining credits, with severity ratings and detailed descriptions
|
|
175
181
|
- **Usage Forecasting** — `GET /admin/forecast` predicts future credit consumption with per-key depletion estimates, calls remaining, at-risk key identification, system-wide consumption aggregates, and per-tool cost breakdown
|
|
176
182
|
- **Compliance Report** — `GET /admin/compliance` generates compliance-ready report with key governance (expiry coverage), access control (ACL/IP/spending limit coverage), audit trail completeness, weighted overall score, and actionable recommendations
|
|
@@ -484,7 +490,7 @@ A real-time admin UI for managing keys, viewing usage, and monitoring tool calls
|
|
|
484
490
|
| `/.well-known/mcp-payment` | GET | None | Server payment metadata (SEP-2007) |
|
|
485
491
|
| `/.well-known/mcp.json` | GET | None | MCP Server Identity card (discovery) |
|
|
486
492
|
| `/pricing` | GET | None | Full per-tool pricing breakdown |
|
|
487
|
-
| `/openapi.json` | GET | None | OpenAPI 3.1 spec (all
|
|
493
|
+
| `/openapi.json` | GET | None | OpenAPI 3.1 spec (all 187+ endpoints) |
|
|
488
494
|
| `/docs` | GET | None | Interactive API docs (Swagger UI) |
|
|
489
495
|
| `/robots.txt` | GET | None | Crawler directives (allow public, disallow admin/keys) |
|
|
490
496
|
| `/portal` | GET | None | Self-service API key portal (browser UI, auth via X-API-Key prompt) |
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BudgetPolicyEngine — Spend governance and burn rate control.
|
|
3
|
+
*
|
|
4
|
+
* Protects against unexpected cost explosions from leaked tokens,
|
|
5
|
+
* runaway agents, or usage pattern changes. Monitors burn rates
|
|
6
|
+
* and enforces daily/monthly budgets with progressive throttling.
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Burn rate monitoring with configurable window and threshold
|
|
10
|
+
* - Progressive throttling (auto-reduce rate limits on overspend)
|
|
11
|
+
* - Daily and monthly budget enforcement
|
|
12
|
+
* - Budget remaining forecast via X-Budget-Remaining header
|
|
13
|
+
* - Per-namespace and per-group policy targeting
|
|
14
|
+
* - Stats: budget utilization, burn rate, throttle events
|
|
15
|
+
*
|
|
16
|
+
* Zero external dependencies.
|
|
17
|
+
*/
|
|
18
|
+
export interface BudgetPolicy {
|
|
19
|
+
policyId: string;
|
|
20
|
+
name: string;
|
|
21
|
+
/** Target namespace. Null = global. */
|
|
22
|
+
targetNamespace?: string;
|
|
23
|
+
/** Target API key. Null = all keys in namespace. */
|
|
24
|
+
targetApiKey?: string;
|
|
25
|
+
/** Credits per minute threshold to trigger alert. Default 100. */
|
|
26
|
+
burnRateThreshold: number;
|
|
27
|
+
/** Window in seconds to measure burn rate. Default 60. */
|
|
28
|
+
burnRateWindowSec: number;
|
|
29
|
+
/** Daily budget in credits. 0 = unlimited. */
|
|
30
|
+
dailyBudget: number;
|
|
31
|
+
/** Monthly budget in credits. 0 = unlimited. */
|
|
32
|
+
monthlyBudget: number;
|
|
33
|
+
/** Action when burn rate exceeded. */
|
|
34
|
+
onBurnRateExceeded: 'alert' | 'throttle' | 'deny';
|
|
35
|
+
/** Throttle reduction percent. Default 50. */
|
|
36
|
+
throttleReductionPercent: number;
|
|
37
|
+
/** Throttle cooldown in seconds. Default 300 (5 min). */
|
|
38
|
+
throttleCooldownSec: number;
|
|
39
|
+
active: boolean;
|
|
40
|
+
createdAt: number;
|
|
41
|
+
updatedAt: number;
|
|
42
|
+
}
|
|
43
|
+
export interface BudgetState {
|
|
44
|
+
policyId: string;
|
|
45
|
+
/** Rolling window spend entries. */
|
|
46
|
+
windowSpend: {
|
|
47
|
+
time: number;
|
|
48
|
+
credits: number;
|
|
49
|
+
}[];
|
|
50
|
+
/** Is currently throttled? */
|
|
51
|
+
isThrottled: boolean;
|
|
52
|
+
/** Throttle expires at (epoch ms). */
|
|
53
|
+
throttledUntil: number;
|
|
54
|
+
/** Today's spend. */
|
|
55
|
+
dailySpent: number;
|
|
56
|
+
/** This month's spend. */
|
|
57
|
+
monthlySpent: number;
|
|
58
|
+
/** Day boundary (epoch ms). */
|
|
59
|
+
dailyResetAt: number;
|
|
60
|
+
/** Month boundary (epoch ms). */
|
|
61
|
+
monthlyResetAt: number;
|
|
62
|
+
/** Total burn rate alerts triggered. */
|
|
63
|
+
burnRateAlerts: number;
|
|
64
|
+
/** Total throttle events. */
|
|
65
|
+
throttleEvents: number;
|
|
66
|
+
}
|
|
67
|
+
export interface BudgetCheckResult {
|
|
68
|
+
allowed: boolean;
|
|
69
|
+
reason?: string;
|
|
70
|
+
burnRateExceeded: boolean;
|
|
71
|
+
isThrottled: boolean;
|
|
72
|
+
dailyRemaining?: number;
|
|
73
|
+
monthlyRemaining?: number;
|
|
74
|
+
currentBurnRate: number;
|
|
75
|
+
/** Estimated hours until budget exhaustion at current rate. */
|
|
76
|
+
hoursRemaining?: number;
|
|
77
|
+
}
|
|
78
|
+
export interface BudgetPolicyStats {
|
|
79
|
+
totalPolicies: number;
|
|
80
|
+
activePolicies: number;
|
|
81
|
+
totalBurnRateAlerts: number;
|
|
82
|
+
totalThrottleEvents: number;
|
|
83
|
+
policies: Array<{
|
|
84
|
+
policyId: string;
|
|
85
|
+
name: string;
|
|
86
|
+
dailyUtilization: number;
|
|
87
|
+
monthlyUtilization: number;
|
|
88
|
+
currentBurnRate: number;
|
|
89
|
+
isThrottled: boolean;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
export type BudgetPolicyCreateParams = Omit<BudgetPolicy, 'policyId' | 'createdAt' | 'updatedAt'>;
|
|
93
|
+
export declare class BudgetPolicyEngine {
|
|
94
|
+
private policies;
|
|
95
|
+
private state;
|
|
96
|
+
/**
|
|
97
|
+
* Create a new budget policy.
|
|
98
|
+
*/
|
|
99
|
+
createPolicy(params: BudgetPolicyCreateParams): BudgetPolicy;
|
|
100
|
+
/**
|
|
101
|
+
* Get a policy by ID.
|
|
102
|
+
*/
|
|
103
|
+
getPolicy(policyId: string): BudgetPolicy | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* List all policies.
|
|
106
|
+
*/
|
|
107
|
+
listPolicies(): BudgetPolicy[];
|
|
108
|
+
/**
|
|
109
|
+
* Delete a policy.
|
|
110
|
+
*/
|
|
111
|
+
deletePolicy(policyId: string): boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Record spending and check against budget policies.
|
|
114
|
+
* Returns the most restrictive result from all applicable policies.
|
|
115
|
+
*/
|
|
116
|
+
recordSpend(namespace: string | undefined, apiKey: string | undefined, credits: number): BudgetCheckResult;
|
|
117
|
+
/**
|
|
118
|
+
* Get stats across all policies.
|
|
119
|
+
*/
|
|
120
|
+
stats(): BudgetPolicyStats;
|
|
121
|
+
/**
|
|
122
|
+
* Clear all policies and state.
|
|
123
|
+
*/
|
|
124
|
+
clear(): void;
|
|
125
|
+
private findApplicable;
|
|
126
|
+
private checkPolicy;
|
|
127
|
+
private computeBurnRate;
|
|
128
|
+
private resetIfNeeded;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=budget-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget-policy.d.ts","sourceRoot":"","sources":["../src/budget-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* BudgetPolicyEngine — Spend governance and burn rate control.
|
|
4
|
+
*
|
|
5
|
+
* Protects against unexpected cost explosions from leaked tokens,
|
|
6
|
+
* runaway agents, or usage pattern changes. Monitors burn rates
|
|
7
|
+
* and enforces daily/monthly budgets with progressive throttling.
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - Burn rate monitoring with configurable window and threshold
|
|
11
|
+
* - Progressive throttling (auto-reduce rate limits on overspend)
|
|
12
|
+
* - Daily and monthly budget enforcement
|
|
13
|
+
* - Budget remaining forecast via X-Budget-Remaining header
|
|
14
|
+
* - Per-namespace and per-group policy targeting
|
|
15
|
+
* - Stats: budget utilization, burn rate, throttle events
|
|
16
|
+
*
|
|
17
|
+
* Zero external dependencies.
|
|
18
|
+
*/
|
|
19
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
22
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
23
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(o, k2, desc);
|
|
26
|
+
}) : (function(o, m, k, k2) {
|
|
27
|
+
if (k2 === undefined) k2 = k;
|
|
28
|
+
o[k2] = m[k];
|
|
29
|
+
}));
|
|
30
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
31
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
32
|
+
}) : function(o, v) {
|
|
33
|
+
o["default"] = v;
|
|
34
|
+
});
|
|
35
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
36
|
+
var ownKeys = function(o) {
|
|
37
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
38
|
+
var ar = [];
|
|
39
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
40
|
+
return ar;
|
|
41
|
+
};
|
|
42
|
+
return ownKeys(o);
|
|
43
|
+
};
|
|
44
|
+
return function (mod) {
|
|
45
|
+
if (mod && mod.__esModule) return mod;
|
|
46
|
+
var result = {};
|
|
47
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
48
|
+
__setModuleDefault(result, mod);
|
|
49
|
+
return result;
|
|
50
|
+
};
|
|
51
|
+
})();
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.BudgetPolicyEngine = void 0;
|
|
54
|
+
const crypto = __importStar(require("crypto"));
|
|
55
|
+
// ─── Default values ─────────────────────────────────────────────────────────
|
|
56
|
+
function generatePolicyId() {
|
|
57
|
+
return 'bpol_' + crypto.randomBytes(8).toString('hex');
|
|
58
|
+
}
|
|
59
|
+
function nextDayStart() {
|
|
60
|
+
const d = new Date();
|
|
61
|
+
d.setUTCHours(0, 0, 0, 0);
|
|
62
|
+
d.setUTCDate(d.getUTCDate() + 1);
|
|
63
|
+
return d.getTime();
|
|
64
|
+
}
|
|
65
|
+
function nextMonthStart() {
|
|
66
|
+
const d = new Date();
|
|
67
|
+
d.setUTCDate(1);
|
|
68
|
+
d.setUTCHours(0, 0, 0, 0);
|
|
69
|
+
d.setUTCMonth(d.getUTCMonth() + 1);
|
|
70
|
+
return d.getTime();
|
|
71
|
+
}
|
|
72
|
+
// ─── BudgetPolicyEngine Class ───────────────────────────────────────────────
|
|
73
|
+
class BudgetPolicyEngine {
|
|
74
|
+
policies = new Map();
|
|
75
|
+
state = new Map();
|
|
76
|
+
/**
|
|
77
|
+
* Create a new budget policy.
|
|
78
|
+
*/
|
|
79
|
+
createPolicy(params) {
|
|
80
|
+
const policyId = generatePolicyId();
|
|
81
|
+
const now = Date.now();
|
|
82
|
+
const policy = {
|
|
83
|
+
policyId,
|
|
84
|
+
name: params.name,
|
|
85
|
+
targetNamespace: params.targetNamespace,
|
|
86
|
+
targetApiKey: params.targetApiKey,
|
|
87
|
+
burnRateThreshold: params.burnRateThreshold ?? 100,
|
|
88
|
+
burnRateWindowSec: params.burnRateWindowSec ?? 60,
|
|
89
|
+
dailyBudget: params.dailyBudget ?? 0,
|
|
90
|
+
monthlyBudget: params.monthlyBudget ?? 0,
|
|
91
|
+
onBurnRateExceeded: params.onBurnRateExceeded ?? 'alert',
|
|
92
|
+
throttleReductionPercent: params.throttleReductionPercent ?? 50,
|
|
93
|
+
throttleCooldownSec: params.throttleCooldownSec ?? 300,
|
|
94
|
+
active: params.active ?? true,
|
|
95
|
+
createdAt: now,
|
|
96
|
+
updatedAt: now,
|
|
97
|
+
};
|
|
98
|
+
this.policies.set(policyId, policy);
|
|
99
|
+
this.state.set(policyId, {
|
|
100
|
+
policyId,
|
|
101
|
+
windowSpend: [],
|
|
102
|
+
isThrottled: false,
|
|
103
|
+
throttledUntil: 0,
|
|
104
|
+
dailySpent: 0,
|
|
105
|
+
monthlySpent: 0,
|
|
106
|
+
dailyResetAt: nextDayStart(),
|
|
107
|
+
monthlyResetAt: nextMonthStart(),
|
|
108
|
+
burnRateAlerts: 0,
|
|
109
|
+
throttleEvents: 0,
|
|
110
|
+
});
|
|
111
|
+
return { ...policy };
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get a policy by ID.
|
|
115
|
+
*/
|
|
116
|
+
getPolicy(policyId) {
|
|
117
|
+
const p = this.policies.get(policyId);
|
|
118
|
+
return p ? { ...p } : undefined;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* List all policies.
|
|
122
|
+
*/
|
|
123
|
+
listPolicies() {
|
|
124
|
+
return Array.from(this.policies.values()).map(p => ({ ...p }));
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Delete a policy.
|
|
128
|
+
*/
|
|
129
|
+
deletePolicy(policyId) {
|
|
130
|
+
this.state.delete(policyId);
|
|
131
|
+
return this.policies.delete(policyId);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Record spending and check against budget policies.
|
|
135
|
+
* Returns the most restrictive result from all applicable policies.
|
|
136
|
+
*/
|
|
137
|
+
recordSpend(namespace, apiKey, credits) {
|
|
138
|
+
const applicablePolicies = this.findApplicable(namespace, apiKey);
|
|
139
|
+
if (applicablePolicies.length === 0) {
|
|
140
|
+
return { allowed: true, burnRateExceeded: false, isThrottled: false, currentBurnRate: 0 };
|
|
141
|
+
}
|
|
142
|
+
let mostRestrictive = {
|
|
143
|
+
allowed: true,
|
|
144
|
+
burnRateExceeded: false,
|
|
145
|
+
isThrottled: false,
|
|
146
|
+
currentBurnRate: 0,
|
|
147
|
+
};
|
|
148
|
+
for (const policy of applicablePolicies) {
|
|
149
|
+
const result = this.checkPolicy(policy, credits);
|
|
150
|
+
if (!result.allowed) {
|
|
151
|
+
mostRestrictive = result;
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
if (result.burnRateExceeded)
|
|
155
|
+
mostRestrictive.burnRateExceeded = true;
|
|
156
|
+
if (result.isThrottled)
|
|
157
|
+
mostRestrictive.isThrottled = true;
|
|
158
|
+
if (result.currentBurnRate > mostRestrictive.currentBurnRate) {
|
|
159
|
+
mostRestrictive.currentBurnRate = result.currentBurnRate;
|
|
160
|
+
}
|
|
161
|
+
if (result.dailyRemaining !== undefined) {
|
|
162
|
+
mostRestrictive.dailyRemaining = Math.min(mostRestrictive.dailyRemaining ?? Infinity, result.dailyRemaining);
|
|
163
|
+
}
|
|
164
|
+
if (result.monthlyRemaining !== undefined) {
|
|
165
|
+
mostRestrictive.monthlyRemaining = Math.min(mostRestrictive.monthlyRemaining ?? Infinity, result.monthlyRemaining);
|
|
166
|
+
}
|
|
167
|
+
if (result.hoursRemaining !== undefined) {
|
|
168
|
+
mostRestrictive.hoursRemaining = Math.min(mostRestrictive.hoursRemaining ?? Infinity, result.hoursRemaining);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return mostRestrictive;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get stats across all policies.
|
|
175
|
+
*/
|
|
176
|
+
stats() {
|
|
177
|
+
let totalAlerts = 0;
|
|
178
|
+
let totalThrottles = 0;
|
|
179
|
+
const policyStats = [];
|
|
180
|
+
for (const policy of this.policies.values()) {
|
|
181
|
+
const st = this.state.get(policy.policyId);
|
|
182
|
+
if (!st)
|
|
183
|
+
continue;
|
|
184
|
+
this.resetIfNeeded(st);
|
|
185
|
+
totalAlerts += st.burnRateAlerts;
|
|
186
|
+
totalThrottles += st.throttleEvents;
|
|
187
|
+
const burnRate = this.computeBurnRate(st, policy);
|
|
188
|
+
policyStats.push({
|
|
189
|
+
policyId: policy.policyId,
|
|
190
|
+
name: policy.name,
|
|
191
|
+
dailyUtilization: policy.dailyBudget > 0 ? Math.round((st.dailySpent / policy.dailyBudget) * 100) : 0,
|
|
192
|
+
monthlyUtilization: policy.monthlyBudget > 0 ? Math.round((st.monthlySpent / policy.monthlyBudget) * 100) : 0,
|
|
193
|
+
currentBurnRate: burnRate,
|
|
194
|
+
isThrottled: st.isThrottled && st.throttledUntil > Date.now(),
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
totalPolicies: this.policies.size,
|
|
199
|
+
activePolicies: Array.from(this.policies.values()).filter(p => p.active).length,
|
|
200
|
+
totalBurnRateAlerts: totalAlerts,
|
|
201
|
+
totalThrottleEvents: totalThrottles,
|
|
202
|
+
policies: policyStats,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Clear all policies and state.
|
|
207
|
+
*/
|
|
208
|
+
clear() {
|
|
209
|
+
this.policies.clear();
|
|
210
|
+
this.state.clear();
|
|
211
|
+
}
|
|
212
|
+
// ─── Private ───────────────────────────────────────────────────────────────
|
|
213
|
+
findApplicable(namespace, apiKey) {
|
|
214
|
+
const results = [];
|
|
215
|
+
for (const policy of this.policies.values()) {
|
|
216
|
+
if (!policy.active)
|
|
217
|
+
continue;
|
|
218
|
+
// Check targeting: most specific match wins
|
|
219
|
+
if (policy.targetApiKey && policy.targetApiKey !== apiKey)
|
|
220
|
+
continue;
|
|
221
|
+
if (policy.targetNamespace && policy.targetNamespace !== namespace)
|
|
222
|
+
continue;
|
|
223
|
+
results.push(policy);
|
|
224
|
+
}
|
|
225
|
+
return results;
|
|
226
|
+
}
|
|
227
|
+
checkPolicy(policy, credits) {
|
|
228
|
+
const st = this.state.get(policy.policyId);
|
|
229
|
+
this.resetIfNeeded(st);
|
|
230
|
+
const now = Date.now();
|
|
231
|
+
// Record spend
|
|
232
|
+
st.dailySpent += credits;
|
|
233
|
+
st.monthlySpent += credits;
|
|
234
|
+
st.windowSpend.push({ time: now, credits });
|
|
235
|
+
// Prune old window entries
|
|
236
|
+
const windowCutoff = now - (policy.burnRateWindowSec * 1000);
|
|
237
|
+
st.windowSpend = st.windowSpend.filter(e => e.time >= windowCutoff);
|
|
238
|
+
// Compute burn rate (credits/minute)
|
|
239
|
+
const burnRate = this.computeBurnRate(st, policy);
|
|
240
|
+
const burnRateExceeded = burnRate > policy.burnRateThreshold;
|
|
241
|
+
// Check daily budget
|
|
242
|
+
if (policy.dailyBudget > 0 && st.dailySpent > policy.dailyBudget) {
|
|
243
|
+
return {
|
|
244
|
+
allowed: false,
|
|
245
|
+
reason: 'daily-budget-exceeded',
|
|
246
|
+
burnRateExceeded,
|
|
247
|
+
isThrottled: false,
|
|
248
|
+
dailyRemaining: 0,
|
|
249
|
+
monthlyRemaining: policy.monthlyBudget > 0 ? Math.max(0, policy.monthlyBudget - st.monthlySpent) : undefined,
|
|
250
|
+
currentBurnRate: burnRate,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
// Check monthly budget
|
|
254
|
+
if (policy.monthlyBudget > 0 && st.monthlySpent > policy.monthlyBudget) {
|
|
255
|
+
return {
|
|
256
|
+
allowed: false,
|
|
257
|
+
reason: 'monthly-budget-exceeded',
|
|
258
|
+
burnRateExceeded,
|
|
259
|
+
isThrottled: false,
|
|
260
|
+
dailyRemaining: policy.dailyBudget > 0 ? Math.max(0, policy.dailyBudget - st.dailySpent) : undefined,
|
|
261
|
+
monthlyRemaining: 0,
|
|
262
|
+
currentBurnRate: burnRate,
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
// Handle burn rate exceedance
|
|
266
|
+
if (burnRateExceeded) {
|
|
267
|
+
st.burnRateAlerts++;
|
|
268
|
+
if (policy.onBurnRateExceeded === 'deny') {
|
|
269
|
+
return {
|
|
270
|
+
allowed: false,
|
|
271
|
+
reason: 'burn-rate-exceeded',
|
|
272
|
+
burnRateExceeded: true,
|
|
273
|
+
isThrottled: false,
|
|
274
|
+
currentBurnRate: burnRate,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
if (policy.onBurnRateExceeded === 'throttle' && !st.isThrottled) {
|
|
278
|
+
st.isThrottled = true;
|
|
279
|
+
st.throttledUntil = now + (policy.throttleCooldownSec * 1000);
|
|
280
|
+
st.throttleEvents++;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
// Check if throttle expired
|
|
284
|
+
if (st.isThrottled && now > st.throttledUntil) {
|
|
285
|
+
st.isThrottled = false;
|
|
286
|
+
}
|
|
287
|
+
// Compute remaining
|
|
288
|
+
const dailyRemaining = policy.dailyBudget > 0 ? Math.max(0, policy.dailyBudget - st.dailySpent) : undefined;
|
|
289
|
+
const monthlyRemaining = policy.monthlyBudget > 0 ? Math.max(0, policy.monthlyBudget - st.monthlySpent) : undefined;
|
|
290
|
+
const remaining = dailyRemaining !== undefined ? dailyRemaining : monthlyRemaining;
|
|
291
|
+
const hoursRemaining = remaining !== undefined && burnRate > 0
|
|
292
|
+
? Math.round((remaining / burnRate) * 60) / 60 // convert from minutes
|
|
293
|
+
: undefined;
|
|
294
|
+
return {
|
|
295
|
+
allowed: true,
|
|
296
|
+
burnRateExceeded,
|
|
297
|
+
isThrottled: st.isThrottled,
|
|
298
|
+
dailyRemaining,
|
|
299
|
+
monthlyRemaining,
|
|
300
|
+
currentBurnRate: burnRate,
|
|
301
|
+
hoursRemaining,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
computeBurnRate(st, policy) {
|
|
305
|
+
const now = Date.now();
|
|
306
|
+
const windowCutoff = now - (policy.burnRateWindowSec * 1000);
|
|
307
|
+
const windowCredits = st.windowSpend
|
|
308
|
+
.filter(e => e.time >= windowCutoff)
|
|
309
|
+
.reduce((sum, e) => sum + e.credits, 0);
|
|
310
|
+
// Credits per minute
|
|
311
|
+
return (windowCredits / policy.burnRateWindowSec) * 60;
|
|
312
|
+
}
|
|
313
|
+
resetIfNeeded(st) {
|
|
314
|
+
const now = Date.now();
|
|
315
|
+
if (now >= st.dailyResetAt) {
|
|
316
|
+
st.dailySpent = 0;
|
|
317
|
+
st.dailyResetAt = nextDayStart();
|
|
318
|
+
}
|
|
319
|
+
if (now >= st.monthlyResetAt) {
|
|
320
|
+
st.monthlySpent = 0;
|
|
321
|
+
st.monthlyResetAt = nextMonthStart();
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
exports.BudgetPolicyEngine = BudgetPolicyEngine;
|
|
326
|
+
//# sourceMappingURL=budget-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget-policy.js","sourceRoot":"","sources":["../src/budget-policy.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAAiC;AAwFjC,+EAA+E;AAE/E,SAAS,gBAAgB;IACvB,OAAO,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,+EAA+E;AAE/E,MAAa,kBAAkB;IACrB,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC3C,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE/C;;OAEG;IACH,YAAY,CAAC,MAAgC;QAC3C,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAiB;YAC3B,QAAQ;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,GAAG;YAClD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;YACjD,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC;YACpC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,CAAC;YACxC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,OAAO;YACxD,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,IAAI,EAAE;YAC/D,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,GAAG;YACtD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;YAC7B,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;YACvB,QAAQ;YACR,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,CAAC;YACjB,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,YAAY,EAAE;YAC5B,cAAc,EAAE,cAAc,EAAE;YAChC,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;SAClB,CAAC,CAAC;QAEH,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAgB;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,SAA6B,EAAE,MAA0B,EAAE,OAAe;QACpF,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;QAED,IAAI,eAAe,GAAsB;YACvC,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,CAAC;SACnB,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,eAAe,GAAG,MAAM,CAAC;gBACzB,MAAM;YACR,CAAC;YACD,IAAI,MAAM,CAAC,gBAAgB;gBAAE,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACrE,IAAI,MAAM,CAAC,WAAW;gBAAE,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC;YAC3D,IAAI,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;gBAC7D,eAAe,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;YAC3D,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACxC,eAAe,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,cAAc,IAAI,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;YAC/G,CAAC;YACD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC1C,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,gBAAgB,IAAI,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACrH,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACxC,eAAe,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,cAAc,IAAI,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;YAC/G,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,MAAM,WAAW,GAAkC,EAAE,CAAC;QAEtD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,EAAE;gBAAE,SAAS;YAClB,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACvB,WAAW,IAAI,EAAE,CAAC,cAAc,CAAC;YACjC,cAAc,IAAI,EAAE,CAAC,cAAc,CAAC;YAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAClD,WAAW,CAAC,IAAI,CAAC;gBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,gBAAgB,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrG,kBAAkB,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7G,eAAe,EAAE,QAAQ;gBACzB,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YACjC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;YAC/E,mBAAmB,EAAE,WAAW;YAChC,mBAAmB,EAAE,cAAc;YACnC,QAAQ,EAAE,WAAW;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,8EAA8E;IAEtE,cAAc,CAAC,SAAkB,EAAE,MAAe;QACxD,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,SAAS;YAC7B,4CAA4C;YAC5C,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM;gBAAE,SAAS;YACpE,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS;gBAAE,SAAS;YAC7E,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,MAAoB,EAAE,OAAe;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,eAAe;QACf,EAAE,CAAC,UAAU,IAAI,OAAO,CAAC;QACzB,EAAE,CAAC,YAAY,IAAI,OAAO,CAAC;QAC3B,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAE5C,2BAA2B;QAC3B,MAAM,YAAY,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;QAC7D,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;QAEpE,qCAAqC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAE7D,qBAAqB;QACrB,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,uBAAuB;gBAC/B,gBAAgB;gBAChB,WAAW,EAAE,KAAK;gBAClB,cAAc,EAAE,CAAC;gBACjB,gBAAgB,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC5G,eAAe,EAAE,QAAQ;aAC1B,CAAC;QACJ,CAAC;QAED,uBAAuB;QACvB,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,yBAAyB;gBACjC,gBAAgB;gBAChB,WAAW,EAAE,KAAK;gBAClB,cAAc,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;gBACpG,gBAAgB,EAAE,CAAC;gBACnB,eAAe,EAAE,QAAQ;aAC1B,CAAC;QACJ,CAAC;QAED,8BAA8B;QAC9B,IAAI,gBAAgB,EAAE,CAAC;YACrB,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,kBAAkB,KAAK,MAAM,EAAE,CAAC;gBACzC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,oBAAoB;oBAC5B,gBAAgB,EAAE,IAAI;oBACtB,WAAW,EAAE,KAAK;oBAClB,eAAe,EAAE,QAAQ;iBAC1B,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,kBAAkB,KAAK,UAAU,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;gBAChE,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;gBACtB,EAAE,CAAC,cAAc,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;gBAC9D,EAAE,CAAC,cAAc,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,EAAE,CAAC,WAAW,IAAI,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC;YAC9C,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,CAAC;QAED,oBAAoB;QACpB,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5G,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,MAAM,SAAS,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACnF,MAAM,cAAc,GAAG,SAAS,KAAK,SAAS,IAAI,QAAQ,GAAG,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,uBAAuB;YACtE,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,OAAO,EAAE,IAAI;YACb,gBAAgB;YAChB,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,cAAc;YACd,gBAAgB;YAChB,eAAe,EAAE,QAAQ;YACzB,cAAc;SACf,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,EAAe,EAAE,MAAoB;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC;aACnC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1C,qBAAqB;QACrB,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;IACzD,CAAC;IAEO,aAAa,CAAC,EAAe;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;YAC3B,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC;YAClB,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,GAAG,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;YAC7B,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC;YACpB,EAAE,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;CACF;AAlRD,gDAkRC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -101,6 +101,18 @@ export { PriorityQueue, PRIORITY_ORDER, TIER_VALUES } from './priority-queue';
|
|
|
101
101
|
export type { PriorityTier, PriorityQueueConfig, PriorityQueueStats, QueuedRequest } from './priority-queue';
|
|
102
102
|
export { CostAllocator } from './cost-tags';
|
|
103
103
|
export type { CostTagConfig, CostTagStats, ChargebackReport, ChargebackRow, CrossTabReport, CrossTabRow, CostTagEntry } from './cost-tags';
|
|
104
|
+
export { IpAccessController } from './ip-access';
|
|
105
|
+
export type { IpAccessConfig, IpCheckResult, AutoBlockEntry, IpAccessStats } from './ip-access';
|
|
106
|
+
export { RequestSigner } from './request-signing';
|
|
107
|
+
export type { SigningConfig, SigningSecret, SignatureVerifyResult, SigningStats } from './request-signing';
|
|
108
|
+
export { TenantManager } from './tenant-isolation';
|
|
109
|
+
export type { TenantConfig, TenantRecord, TenantUsageReport, TenantStats, TenantCreateParams } from './tenant-isolation';
|
|
110
|
+
export { RequestTracer } from './request-tracer';
|
|
111
|
+
export type { RequestTrace, TraceSpan, TraceSummary, TracerConfig, TracerStats } from './request-tracer';
|
|
112
|
+
export { BudgetPolicyEngine } from './budget-policy';
|
|
113
|
+
export type { BudgetPolicy, BudgetState, BudgetCheckResult, BudgetPolicyStats, BudgetPolicyCreateParams } from './budget-policy';
|
|
114
|
+
export { ToolDependencyGraph } from './tool-deps';
|
|
115
|
+
export type { ToolDep, DepCheckResult, ExecutionRecord, TopologicalOrder, DepGraphStats, DepGraphConfig } from './tool-deps';
|
|
104
116
|
export type { PayGateConfig, JsonRpcRequest, JsonRpcResponse, JsonRpcError, ToolCallParams, ToolInfo, ToolPricing, ServerBackendConfig, ApiKeyRecord, UsageEvent, UsageSummary, GateDecision, QuotaConfig, BatchToolCall, BatchGateResult, WebhookFilterRule, KeyListQuery, KeyListResult, } from './types';
|
|
105
117
|
export { DEFAULT_CONFIG } from './types';
|
|
106
118
|
//# sourceMappingURL=index.d.ts.map
|
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":"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"}
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.parseLogFormat = exports.parseLogLevel = exports.Logger = exports.KeyGroupManager = exports.PluginManager = exports.VALID_ROLES = exports.ROLE_HIERARCHY = exports.AdminKeyManager = exports.TokenRevocationList = exports.ScopedTokenManager = exports.formatDiagnostics = exports.validateConfig = exports.PayGateError = exports.PayGateClient = exports.RedisSync = exports.RedisSubscriber = exports.parseRedisUrl = exports.RedisClient = exports.TeamManager = exports.AlertEngine = exports.AnalyticsEngine = exports.getPortalHtml = exports.getDashboardHtml = exports.MetricsCollector = exports.ToolRegistry = exports.CreditLedger = exports.maskKeyForAudit = exports.AuditLogger = exports.writeSseKeepAlive = exports.writeSseEvent = exports.writeSseHeaders = exports.SessionManager = exports.OAuthProvider = exports.QuotaTracker = exports.WebhookRouter = exports.WebhookEmitter = exports.BackupManager = exports.StripeCheckout = exports.StripeWebhookHandler = exports.RateLimiter = exports.UsageMeter = exports.KeyStore = exports.MultiServerRouter = exports.HttpMcpProxy = exports.McpProxy = exports.Gate = exports.resolveClientIp = exports.getRequestId = exports.generateRequestId = exports.PayGateServer = void 0;
|
|
20
|
-
exports.DEFAULT_CONFIG = exports.CostAllocator = exports.TIER_VALUES = exports.PRIORITY_ORDER = exports.PriorityQueue = exports.RequestDeduplicator = exports.AdaptiveRateLimiter = exports.RetryPolicy = exports.TransformPipeline = exports.CanaryRouter = exports.ToolSchemaValidator = exports.UsagePlanManager = exports.ToolAliasManager = exports.TrafficMirror = exports.ConcurrencyLimiter = exports.BUILT_IN_RULES = exports.ContentGuardrails = exports.complianceReportToCsv = exports.generateComplianceReport = exports.CircuitBreaker = exports.ResponseCache = exports.VALID_LOG_FORMATS = exports.VALID_LOG_LEVELS = void 0;
|
|
20
|
+
exports.DEFAULT_CONFIG = exports.ToolDependencyGraph = exports.BudgetPolicyEngine = exports.RequestTracer = exports.TenantManager = exports.RequestSigner = exports.IpAccessController = exports.CostAllocator = exports.TIER_VALUES = exports.PRIORITY_ORDER = exports.PriorityQueue = exports.RequestDeduplicator = exports.AdaptiveRateLimiter = exports.RetryPolicy = exports.TransformPipeline = exports.CanaryRouter = exports.ToolSchemaValidator = exports.UsagePlanManager = exports.ToolAliasManager = exports.TrafficMirror = exports.ConcurrencyLimiter = exports.BUILT_IN_RULES = exports.ContentGuardrails = exports.complianceReportToCsv = exports.generateComplianceReport = exports.CircuitBreaker = exports.ResponseCache = exports.VALID_LOG_FORMATS = exports.VALID_LOG_LEVELS = void 0;
|
|
21
21
|
var server_1 = require("./server");
|
|
22
22
|
Object.defineProperty(exports, "PayGateServer", { enumerable: true, get: function () { return server_1.PayGateServer; } });
|
|
23
23
|
Object.defineProperty(exports, "generateRequestId", { enumerable: true, get: function () { return server_1.generateRequestId; } });
|
|
@@ -140,6 +140,18 @@ Object.defineProperty(exports, "PRIORITY_ORDER", { enumerable: true, get: functi
|
|
|
140
140
|
Object.defineProperty(exports, "TIER_VALUES", { enumerable: true, get: function () { return priority_queue_1.TIER_VALUES; } });
|
|
141
141
|
var cost_tags_1 = require("./cost-tags");
|
|
142
142
|
Object.defineProperty(exports, "CostAllocator", { enumerable: true, get: function () { return cost_tags_1.CostAllocator; } });
|
|
143
|
+
var ip_access_1 = require("./ip-access");
|
|
144
|
+
Object.defineProperty(exports, "IpAccessController", { enumerable: true, get: function () { return ip_access_1.IpAccessController; } });
|
|
145
|
+
var request_signing_1 = require("./request-signing");
|
|
146
|
+
Object.defineProperty(exports, "RequestSigner", { enumerable: true, get: function () { return request_signing_1.RequestSigner; } });
|
|
147
|
+
var tenant_isolation_1 = require("./tenant-isolation");
|
|
148
|
+
Object.defineProperty(exports, "TenantManager", { enumerable: true, get: function () { return tenant_isolation_1.TenantManager; } });
|
|
149
|
+
var request_tracer_1 = require("./request-tracer");
|
|
150
|
+
Object.defineProperty(exports, "RequestTracer", { enumerable: true, get: function () { return request_tracer_1.RequestTracer; } });
|
|
151
|
+
var budget_policy_1 = require("./budget-policy");
|
|
152
|
+
Object.defineProperty(exports, "BudgetPolicyEngine", { enumerable: true, get: function () { return budget_policy_1.BudgetPolicyEngine; } });
|
|
153
|
+
var tool_deps_1 = require("./tool-deps");
|
|
154
|
+
Object.defineProperty(exports, "ToolDependencyGraph", { enumerable: true, get: function () { return tool_deps_1.ToolDependencyGraph; } });
|
|
143
155
|
var types_1 = require("./types");
|
|
144
156
|
Object.defineProperty(exports, "DEFAULT_CONFIG", { enumerable: true, get: function () { return types_1.DEFAULT_CONFIG; } });
|
|
145
157
|
//# sourceMappingURL=index.js.map
|
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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"}
|