@salimassili/ai-costguard 1.1.9 → 1.2.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 CHANGED
@@ -1,233 +1,202 @@
1
- # AI CostGuard - Smoke Detector + Circuit Breaker for AI Agents
1
+ # AI CostGuard
2
2
 
3
- **"Smoke detector + circuit breaker for AI systems."**
3
+ AI CostGuard is a small TypeScript library that wraps OpenAI-like clients and blocks requests before they run when local safety checks predict unsafe AI API spend.
4
4
 
5
- Install in 60 seconds. Save thousands from catastrophic AI disasters.
5
+ It is ESM-only, targets Node.js 18+, and is built with `tsc`.
6
6
 
7
- ---
7
+ ## What Works Today
8
8
 
9
- ## 🚨 CATASTROPHIC INCIDENT
9
+ - `guard()` wraps a client with budget, loop, and retry protection.
10
+ - `GuardError` is thrown when a request is blocked.
11
+ - Budget blocking estimates request cost before the API call.
12
+ - Loop detection blocks repeated prompts within the current process.
13
+ - Retry detection blocks repeated failure/retry prompts within the current process.
14
+ - `middleware()` adds the same local checks to web request flows.
15
+ - `getPricing()` returns known built-in model pricing.
16
+ - `registerPricing()` and `listPricing()` let you manage runtime pricing entries.
10
17
 
11
- **AI agent entered infinite retry loop. Started burning $3,000/hour. Free version didn't stop it. Company lost $24,000 overnight.**
18
+ ## Install
12
19
 
13
- ---
14
-
15
- ## 🛑 SOLUTION
16
-
17
- **Emergency brake for AI agents.**
18
-
19
- ---
20
-
21
- ## 🟦 FREE VERSION - SMOKE DETECTOR
20
+ ```bash
21
+ npm install @salimassili/ai-costguard
22
+ ```
22
23
 
23
- **Smoke detector for development.**
24
+ ## Basic Usage
24
25
 
25
26
  ```ts
26
- import { guard } from '@salimassili/ai-costguard';
27
-
28
- const ai = guard(openai); // One line magic
27
+ import OpenAI from 'openai';
28
+ import { guard, GuardError } from '@salimassili/ai-costguard';
29
+
30
+ const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
31
+ const ai = guard(client, { budget: 1 });
32
+
33
+ try {
34
+ const response = await ai.chat.completions.create({
35
+ model: 'gpt-4o-mini',
36
+ messages: [{ role: 'user', content: 'Write a short project summary.' }],
37
+ max_tokens: 200
38
+ });
39
+
40
+ console.log(response);
41
+ } catch (error) {
42
+ if (error instanceof GuardError) {
43
+ console.error('AI request blocked:', error.message, error.context);
44
+ } else {
45
+ throw error;
46
+ }
47
+ }
29
48
  ```
30
49
 
31
- **What it detects:**
32
- - Hard budget limits
33
- - Infinite loops (2x repetition)
34
- - Retry storms (1x failure pattern)
35
- - Token explosions (20x spikes)
36
-
37
- **Output:**
38
- ```
39
- 🚨 SMOKE DETECTOR: Infinite loop → saved $18.42
40
- ```
50
+ ## How `guard()` Works
41
51
 
42
- **WARNING:** Single process only. Not production safe.
52
+ `guard(client, config)` returns a `Proxy` around your client. When code calls a method such as `client.chat.completions.create(...)`, CostGuard:
43
53
 
44
- ---
54
+ 1. Reads the request model, messages, and `max_tokens`.
55
+ 2. Estimates input tokens from message length and combines them with the requested output limit.
56
+ 3. Looks up pricing for the model.
57
+ 4. Estimates the request cost.
58
+ 5. Blocks the call with `GuardError` if the local budget would be exceeded.
59
+ 6. Blocks repeated prompts that look like loops.
60
+ 7. Blocks repeated prompts that look like retry storms.
61
+ 8. Lets the original client method run when checks pass.
45
62
 
46
- ## 🟥 PAID VERSION - CIRCUIT BREAKER
63
+ The free guard state is process-local. Separate Node.js processes do not share budget state.
47
64
 
48
- **Circuit breaker that saves companies thousands.**
65
+ ## Budget Blocking
49
66
 
50
67
  ```ts
51
- import { getProGuard } from '@salimassili/ai-costguard';
68
+ import { guard } from '@salimassili/ai-costguard';
52
69
 
53
- const breaker = getProGuard("LICENSE_KEY", {
54
- slack: { webhook: "webhook_url", channel: "#alerts" }
55
- });
70
+ const ai = guard(openai, { budget: 0.25 });
56
71
 
57
- breaker.activateCircuitBreaker({
58
- projectId: "production",
59
- budget: 5000
72
+ await ai.chat.completions.create({
73
+ model: 'gpt-4o-mini',
74
+ messages: [{ role: 'user', content: 'Hello' }],
75
+ max_tokens: 100
60
76
  });
61
-
62
- breaker.panicShutdown("production"); // Panic button
63
77
  ```
64
78
 
65
- **What it saves:**
66
- - Hard global budget limits (cross-instance)
67
- - Instant emergency shutdown
68
- - Global usage caps
69
- - Real-time spend tracking
70
- - Slack/Discord panic alerts
71
- - Distributed coordination (2-second sync)
72
- - Simple policy rules
73
-
74
- ---
75
-
76
- ## 💥 TERRIFYING DEMO
77
-
78
- **Scenario:** AI agent processing user data goes into infinite retry loop.
79
+ When the estimated cumulative spend in the current process would exceed `budget`, CostGuard throws `GuardError` before calling the underlying AI client.
79
80
 
80
- **Free version:** Each server thinks it's fine. Cost explodes to $15,000/hour.
81
+ ## Loop And Retry Detection
81
82
 
82
- **Paid version:** Circuit breaker detects pattern across all servers. Panic shutdown activated in 8 seconds. Company saves $12,000.
83
+ CostGuard keeps a short in-memory history of recent prompts for the wrapped client:
83
84
 
84
- ---
85
+ - Loop detection blocks repeated prompt hashes.
86
+ - Retry detection blocks repeated prompts containing retry/failure language such as `retry`, `again`, `repeat`, `error`, `fail`, or `timeout`.
85
87
 
86
- ## 🚀 60-SECOND MAGICAL INSTALLATION
88
+ These checks are intentionally local and lightweight.
87
89
 
88
- ```bash
89
- npm install @salimassili/ai-costguard
90
- ```
90
+ ## Middleware
91
91
 
92
- ### Development (FREE)
93
92
  ```ts
94
- import { guard } from '@salimassili/ai-costguard';
95
- import OpenAI from 'openai';
96
-
97
- const ai = guard(new OpenAI({ apiKey: process.env.OPENAI_API_KEY }));
98
-
99
- // Your AI code works normally, but protected
100
- const response = await ai.chat.completions.create({
101
- model: 'gpt-4',
102
- messages: [{ role: 'user', content: 'Hello' }]
93
+ import express from 'express';
94
+ import { middleware, GuardError } from '@salimassili/ai-costguard';
95
+
96
+ const app = express();
97
+
98
+ app.use(middleware({ budget: 2 }));
99
+
100
+ app.post('/chat', async (req, res, next) => {
101
+ try {
102
+ req.localSafety.check({
103
+ model: 'gpt-4o-mini',
104
+ tokens: 1000,
105
+ estimatedCost: 0.001,
106
+ timestamp: Date.now(),
107
+ prompt: req.body?.prompt ?? ''
108
+ });
109
+
110
+ res.json({ ok: true });
111
+ } catch (error) {
112
+ if (error instanceof GuardError) {
113
+ res.status(402).json({ error: error.message, context: error.context });
114
+ return;
115
+ }
116
+
117
+ next(error);
118
+ }
103
119
  });
104
120
  ```
105
121
 
106
- ### Production (PAID)
122
+ ## Pricing
123
+
107
124
  ```ts
108
- import { getProGuard } from '@salimassili/ai-costguard';
125
+ import { getPricing, listPricing, registerPricing } from '@salimassili/ai-costguard';
109
126
 
110
- // Activate circuit breaker
111
- const breaker = getProGuard(process.env.COSTGUARD_LICENSE, {
112
- slack: { webhook: process.env.SLACK_WEBHOOK, channel: "#ai-alerts" }
113
- });
127
+ console.log(getPricing('gpt-4o-mini'));
114
128
 
115
- breaker.activateCircuitBreaker({
116
- projectId: "production",
117
- budget: 10000
118
- });
129
+ registerPricing([
130
+ {
131
+ model: 'custom-model',
132
+ inputPer1kTokens: 0.001,
133
+ outputPer1kTokens: 0.002,
134
+ lastUpdated: '2026-05-21',
135
+ source: 'internal'
136
+ }
137
+ ]);
119
138
 
120
- // Your AI code is now circuit-protected
139
+ console.log(listPricing());
121
140
  ```
122
141
 
123
- ---
124
-
125
- ## 🎯 TARGET USERS
126
-
127
- - **AI agent startups** - Can't afford $10k mistakes
128
- - **Founders using OpenAI/Claude in production** - Need sleep at night
129
- - **Teams running autonomous workflows** - Multiple instances, high risk
130
- - **Companies spending $1k+/month on AI APIs** - High exposure
131
-
132
- ---
133
-
134
- ## 💰 ROI
135
-
136
- **Free:** Saves $100s in development, proves value immediately
137
- **Paid:** Prevents $5,000-$50,000 production disasters
138
-
139
- **Question:** Can you afford NOT to have this installed?
140
-
141
- ---
142
-
143
- ## 🔧 CORE FEATURES (ONLY 10)
144
-
145
- 1. **Hard global budget limits** - Stop spending instantly
146
- 2. **Instant kill switch** - Emergency shutdown button
147
- 3. **Infinite loop detection** - Stop runaway agents
148
- 4. **Retry storm detection** - Kill retry explosions
149
- 5. **Token explosion detection** - Prevent cost spikes
150
- 6. **Emergency execution shutdown** - Panic button for all instances
151
- 7. **Global usage caps** - Cross-instance coordination
152
- 8. **Slack/Discord panic alerts** - Real-time emergency notifications
153
- 9. **Real-time spend tracking** - Live monitoring
154
- 10. **Simple policy rules** - Configurable thresholds
142
+ `getPricing(model)` returns an exact match when available, then falls back to simple fuzzy matching. Unknown models return `undefined`.
155
143
 
156
- ---
144
+ ## Pro Features (Coming Soon)
157
145
 
158
- ## 🛠️ TECH STACK
146
+ > These features are under active development and not yet available:
147
+ > - Distributed Redis-backed budget state
148
+ > - Real Slack/Discord webhook alerts
149
+ > - Multi-instance coordination
150
+ > - Production license validation
159
151
 
160
- - **TypeScript-first** - Full type safety
161
- - **Redis-ready** - Distributed state management
162
- - **Proxy-based** - Zero integration overhead
163
- - **OpenAI + Anthropic** - Major providers supported
164
- - **Minimal dependencies** - Lightweight, secure
165
- - **Serverless-friendly** - Works anywhere
166
- - **Production-ready** - Battle tested
152
+ ## API
167
153
 
168
- ---
154
+ ### `guard(client, config)`
169
155
 
170
- ## 🚫 WHAT WE DON'T DO
156
+ Wraps an OpenAI-like client.
171
157
 
172
- ❌ No dashboards
173
- No analytics
174
- ❌ No enterprise complexity
175
- ❌ No governance systems
176
- ❌ No features nobody pays for
177
-
178
- **We do ONE thing: Prevent catastrophic AI cost disasters.**
179
-
180
- ---
181
-
182
- ## 🎯 POSITIONING
183
-
184
- **"Every production AI system should have this installed."**
185
-
186
- **This is not a tool. This is insurance.**
187
-
188
- ---
189
-
190
- ## 💥 MARKETING STORIES
191
-
192
- ### Story 1: The $15,000 Mistake
193
- "AI agent processing customer feedback entered infinite retry loop. Free version on each server thought everything was fine. Cost exploded to $15,000/hour. Circuit breaker killed all instances in 8 seconds. Company saved $12,000."
158
+ ```ts
159
+ guard(client, { budget: 10 });
160
+ ```
194
161
 
195
- ### Story 2: The $3,000 Overnight Bill
196
- "Background job processing user data got stuck in recursive tool calls. Each server kept retrying independently. Free version didn't coordinate across instances. Paid version detected global pattern and panic shutdown. Saved $3,000."
162
+ ### `GuardError`
197
163
 
198
- ### Story 3: The $50,000 Disaster
199
- "Autonomous workflow system went into runaway execution chain. 12 servers burning $4,000/hour each. Circuit breaker detected anomaly across all instances and emergency shutdown. Prevented $50,000 disaster."
164
+ Thrown when CostGuard blocks a request.
200
165
 
201
- ---
166
+ ```ts
167
+ try {
168
+ await ai.chat.completions.create(params);
169
+ } catch (error) {
170
+ if (error instanceof GuardError) {
171
+ console.log(error.context);
172
+ }
173
+ }
174
+ ```
202
175
 
203
- ## 🏆 TRUST MOAT
176
+ ### `middleware(config)`
204
177
 
205
- **Why companies can't replace this:**
178
+ Creates request middleware with local budget, loop, and retry checks.
206
179
 
207
- **Reliability** - Works when everything else fails
208
- ✅ **Trust** - Saves companies thousands, proves value instantly
209
- ✅ **Integration** - One-line installation, zero overhead
210
- ✅ **Emergency response** - Panic button works in seconds
211
- ✅ **Distributed coordination** - Handles multi-instance disasters
180
+ ### `getPricing(model, overrides?)`
212
181
 
213
- **Not because of complexity, but because it's the reliable emergency brake for AI agents.**
182
+ Returns pricing for a model from overrides, runtime registrations, or built-in entries.
214
183
 
215
- ---
184
+ ### `registerPricing(entries)`
216
185
 
217
- ## 🚀 PATH TO $5K+ MRR
186
+ Registers or replaces runtime pricing entries by model name.
218
187
 
219
- 1. **Free version drives viral adoption** - Developers install in 60 seconds
220
- 2. **Production incidents create urgency** - Real disasters create immediate need
221
- 3. **Paid version becomes unavoidable** - Can't safely run AI in production without it
222
- 4. **Emergency alerts prove value** - Slack notifications save thousands
223
- 5. **Trust creates lock-in** - Reliable circuit breaker becomes infrastructure
188
+ ### `listPricing()`
224
189
 
225
- ---
190
+ Returns built-in and runtime pricing entries, deduplicated by model name.
226
191
 
227
- ## 🎯 FINAL PHILOSOPHY
192
+ ## Limitations
228
193
 
229
- **"If this is not installed, your AI infrastructure is financially unsafe."**
194
+ - Free guard state is stored in memory only.
195
+ - Budget checks are estimates, not billing records.
196
+ - Token estimation is approximate.
197
+ - Pricing entries are static until the package or runtime registry is updated.
198
+ - The library does not include dashboards, analytics, governance workflows, or hosted services.
230
199
 
231
- ---
200
+ ## License
232
201
 
233
- MIT | [GitHub](https://github.com/salimassili62-afk/ai-costguard)
202
+ MIT
@@ -1,13 +1,7 @@
1
- /**
2
- * CostGuard.ts - RUNTIME FINANCIAL EXECUTION CONTROL LAYER
3
- *
4
- * 🟦 FREE: Local illusion of safety (each process thinks it is safe)
5
- * 🟥 PAID: System-wide financial control (the system sees everything as one budget)
6
- *
7
- * NOT: logging, monitoring, middleware, analytics
8
- * IS: distributed cost firewall for AI systems
9
- */
10
- export { guard, GuardError, middleware, getPricing } from './GuardFree.js';
1
+ export { guard, GuardError, middleware } from './GuardFree.js';
11
2
  export { GuardPro, validateLicense, getProGuard } from './GuardPro.js';
3
+ export type { GuardProConfig } from './GuardPro.js';
4
+ export { getPricing, registerPricing, listPricing } from '../pricing/index.js';
5
+ export type { ModelPricing } from '../pricing/index.js';
12
6
  export type { GuardConfig } from './types.js';
13
7
  //# sourceMappingURL=CostGuard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CostGuard.d.ts","sourceRoot":"","sources":["../../src/core/CostGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"CostGuard.d.ts","sourceRoot":"","sources":["../../src/core/CostGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/E,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -1,12 +1,4 @@
1
- /**
2
- * CostGuard.ts - RUNTIME FINANCIAL EXECUTION CONTROL LAYER
3
- *
4
- * 🟦 FREE: Local illusion of safety (each process thinks it is safe)
5
- * 🟥 PAID: System-wide financial control (the system sees everything as one budget)
6
- *
7
- * NOT: logging, monitoring, middleware, analytics
8
- * IS: distributed cost firewall for AI systems
9
- */
10
- export { guard, GuardError, middleware, getPricing } from './GuardFree.js';
1
+ export { guard, GuardError, middleware } from './GuardFree.js';
11
2
  export { GuardPro, validateLicense, getProGuard } from './GuardPro.js';
3
+ export { getPricing, registerPricing, listPricing } from '../pricing/index.js';
12
4
  //# sourceMappingURL=CostGuard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CostGuard.js","sourceRoot":"","sources":["../../src/core/CostGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"CostGuard.js","sourceRoot":"","sources":["../../src/core/CostGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
@@ -18,8 +18,5 @@ export declare class GuardError extends Error {
18
18
  context: RequestContext;
19
19
  constructor(message: string, context: RequestContext);
20
20
  }
21
- export declare function getPricing(model: string): {
22
- input: number;
23
- output: number;
24
- } | undefined;
21
+ export { getPricing } from '../pricing/index.js';
25
22
  //# sourceMappingURL=GuardCore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuardCore.d.ts","sourceRoot":"","sources":["../../src/core/GuardCore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAYrE;;;GAGG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,OAgF/E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,IAGpC,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,UAiCtC;AA+DD,qBAAa,UAAW,SAAQ,KAAK;IACnC,OAAO,EAAE,cAAc,CAAC;gBACZ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;CAKrD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAEvF"}
1
+ {"version":3,"file":"GuardCore.d.ts","sourceRoot":"","sources":["../../src/core/GuardCore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErE;;;GAGG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,OAgF/E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,IAGpC,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,UAiCtC;AAiED,qBAAa,UAAW,SAAQ,KAAK;IACnC,OAAO,EAAE,cAAc,CAAC;gBACZ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;CAKrD;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
@@ -4,15 +4,7 @@
4
4
  * Maximum simplicity. Maximum virality. Zero complexity.
5
5
  * Instant safety layer every AI developer installs by default.
6
6
  */
7
- const MODEL_PRICING = {
8
- 'gpt-4': { input: 0.03, output: 0.06 },
9
- 'gpt-4o': { input: 0.005, output: 0.015 },
10
- 'gpt-4o-mini': { input: 0.00015, output: 0.0006 },
11
- 'gpt-3.5-turbo': { input: 0.0005, output: 0.0015 },
12
- 'claude-3-opus': { input: 0.015, output: 0.075 },
13
- 'claude-3-sonnet': { input: 0.003, output: 0.015 },
14
- 'claude-3-haiku': { input: 0.00025, output: 0.00125 },
15
- };
7
+ import { getPricing as lookupPricing } from '../pricing/index.js';
16
8
  /**
17
9
  * Guard your AI client from wasting money
18
10
  * FREE CORE: Local protection + viral logs + real-time risk warnings
@@ -158,9 +150,11 @@ function extractContext(args, prop) {
158
150
  const estimatedInputTokens = Math.ceil(inputText.length / 4);
159
151
  const maxOutputTokens = params.max_tokens || 1000;
160
152
  const tokens = estimatedInputTokens + maxOutputTokens;
161
- const pricing = MODEL_PRICING[model] || { input: 0.01, output: 0.03 };
162
- const estimatedCost = (estimatedInputTokens / 1000) * pricing.input +
163
- (maxOutputTokens / 1000) * pricing.output;
153
+ const pricing = lookupPricing(model);
154
+ const inputPer1kTokens = pricing?.inputPer1kTokens ?? 0.01;
155
+ const outputPer1kTokens = pricing?.outputPer1kTokens ?? 0.03;
156
+ const estimatedCost = (estimatedInputTokens / 1000) * inputPer1kTokens +
157
+ (maxOutputTokens / 1000) * outputPer1kTokens;
164
158
  return {
165
159
  model,
166
160
  tokens,
@@ -178,8 +172,5 @@ export class GuardError extends Error {
178
172
  this.context = context;
179
173
  }
180
174
  }
181
- // Get pricing for model (FREE CORE - LOCAL ONLY)
182
- export function getPricing(model) {
183
- return MODEL_PRICING[model];
184
- }
175
+ export { getPricing } from '../pricing/index.js';
185
176
  //# sourceMappingURL=GuardCore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuardCore.js","sourceRoot":"","sources":["../../src/core/GuardCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GuardCore.js","sourceRoot":"","sources":["../../src/core/GuardCore.ts"],"names":[],"mappings":"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"}
@@ -22,10 +22,6 @@ export declare function guard(client: any, config: GuardConfig, sharedState?: Gu
22
22
  export declare function middleware(config: GuardConfig): (req: any, res: any, next: any) => void;
23
23
  export declare class GuardError extends Error {
24
24
  context: RequestContext;
25
- constructor(message: string, context: RequestContext);
25
+ constructor(message: string, context?: RequestContext);
26
26
  }
27
- export declare function getPricing(model: string): {
28
- input: number;
29
- output: number;
30
- } | undefined;
31
27
  //# sourceMappingURL=GuardFree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuardFree.d.ts","sourceRoot":"","sources":["../../src/core/GuardFree.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAYrE;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,OAmE/E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,IAGpC,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,UAwBtC;AA6DD,qBAAa,UAAW,SAAQ,KAAK;IACnC,OAAO,EAAE,cAAc,CAAC;gBACZ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc;CAKrD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAEvF"}
1
+ {"version":3,"file":"GuardFree.d.ts","sourceRoot":"","sources":["../../src/core/GuardFree.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,UAAU,OAmE/E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,IAGpC,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,UAwBtC;AA+DD,qBAAa,UAAW,SAAQ,KAAK;IACnC,OAAO,EAAE,cAAc,CAAC;gBACZ,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;CAKtD"}
@@ -6,15 +6,7 @@
6
6
  *
7
7
  * INSTALL: const ai = guard(openai)
8
8
  */
9
- const MODEL_PRICING = {
10
- 'gpt-4': { input: 0.03, output: 0.06 },
11
- 'gpt-4o': { input: 0.005, output: 0.015 },
12
- 'gpt-4o-mini': { input: 0.00015, output: 0.0006 },
13
- 'gpt-3.5-turbo': { input: 0.0005, output: 0.0015 },
14
- 'claude-3-opus': { input: 0.015, output: 0.075 },
15
- 'claude-3-sonnet': { input: 0.003, output: 0.015 },
16
- 'claude-3-haiku': { input: 0.00025, output: 0.00125 },
17
- };
9
+ import { getPricing as lookupPricing } from '../pricing/index.js';
18
10
  /**
19
11
  * Local Safety Illusion - FREE VERSION
20
12
  *
@@ -142,9 +134,11 @@ function extractContext(args, prop) {
142
134
  const estimatedInputTokens = Math.ceil(inputText.length / 4);
143
135
  const maxOutputTokens = params.max_tokens || 1000;
144
136
  const tokens = estimatedInputTokens + maxOutputTokens;
145
- const pricing = MODEL_PRICING[model] || { input: 0.01, output: 0.03 };
146
- const estimatedCost = (estimatedInputTokens / 1000) * pricing.input +
147
- (maxOutputTokens / 1000) * pricing.output;
137
+ const pricing = lookupPricing(model);
138
+ const inputPer1kTokens = pricing?.inputPer1kTokens ?? 0.01;
139
+ const outputPer1kTokens = pricing?.outputPer1kTokens ?? 0.03;
140
+ const estimatedCost = (estimatedInputTokens / 1000) * inputPer1kTokens +
141
+ (maxOutputTokens / 1000) * outputPer1kTokens;
148
142
  return {
149
143
  model,
150
144
  tokens,
@@ -162,8 +156,4 @@ export class GuardError extends Error {
162
156
  this.context = context;
163
157
  }
164
158
  }
165
- // Get pricing for model (local only)
166
- export function getPricing(model) {
167
- return MODEL_PRICING[model];
168
- }
169
159
  //# sourceMappingURL=GuardFree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuardFree.js","sourceRoot":"","sources":["../../src/core/GuardFree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GuardFree.js","sourceRoot":"","sources":["../../src/core/GuardFree.ts"],"names":[],"mappings":"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"}