@salimassili/ai-costguard 1.1.8 → 1.1.9
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 +196 -70
- package/dist/core/AgentFailureKernel.d.ts +52 -0
- package/dist/core/AgentFailureKernel.d.ts.map +1 -0
- package/dist/core/AgentFailureKernel.js +357 -0
- package/dist/core/AgentFailureKernel.js.map +1 -0
- package/dist/core/CostGuard.d.ts +9 -23
- package/dist/core/CostGuard.d.ts.map +1 -1
- package/dist/core/CostGuard.js +8 -187
- package/dist/core/CostGuard.js.map +1 -1
- package/dist/core/GuardCore.d.ts +25 -0
- package/dist/core/GuardCore.d.ts.map +1 -0
- package/dist/core/GuardCore.js +185 -0
- package/dist/core/GuardCore.js.map +1 -0
- package/dist/core/GuardFree.d.ts +31 -0
- package/dist/core/GuardFree.d.ts.map +1 -0
- package/dist/core/GuardFree.js +169 -0
- package/dist/core/GuardFree.js.map +1 -0
- package/dist/core/GuardPro.d.ts +109 -0
- package/dist/core/GuardPro.d.ts.map +1 -0
- package/dist/core/GuardPro.js +283 -0
- package/dist/core/GuardPro.js.map +1 -0
- package/dist/core/types.d.ts +6 -13
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +1 -1
- package/dist/index.d.ts +9 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -13
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,107 +1,233 @@
|
|
|
1
|
-
# AI CostGuard
|
|
1
|
+
# AI CostGuard - Smoke Detector + Circuit Breaker for AI Agents
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**"Smoke detector + circuit breaker for AI systems."**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Install in 60 seconds. Save thousands from catastrophic AI disasters.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🚨 CATASTROPHIC INCIDENT
|
|
10
|
+
|
|
11
|
+
**AI agent entered infinite retry loop. Started burning $3,000/hour. Free version didn't stop it. Company lost $24,000 overnight.**
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 🛑 SOLUTION
|
|
16
|
+
|
|
17
|
+
**Emergency brake for AI agents.**
|
|
18
|
+
|
|
19
|
+
---
|
|
10
20
|
|
|
11
|
-
##
|
|
21
|
+
## 🟦 FREE VERSION - SMOKE DETECTOR
|
|
22
|
+
|
|
23
|
+
**Smoke detector for development.**
|
|
12
24
|
|
|
13
25
|
```ts
|
|
14
|
-
import {
|
|
26
|
+
import { guard } from '@salimassili/ai-costguard';
|
|
15
27
|
|
|
16
|
-
const
|
|
17
|
-
maxTotalCostPerDay: 5
|
|
18
|
-
});
|
|
28
|
+
const ai = guard(openai); // One line magic
|
|
19
29
|
```
|
|
20
30
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
31
|
+
**What it detects:**
|
|
32
|
+
- Hard budget limits
|
|
33
|
+
- Infinite loops (2x repetition)
|
|
34
|
+
- Retry storms (1x failure pattern)
|
|
35
|
+
- Token explosions (20x spikes)
|
|
24
36
|
|
|
37
|
+
**Output:**
|
|
25
38
|
```
|
|
26
|
-
|
|
39
|
+
🚨 SMOKE DETECTOR: Infinite loop → saved $18.42
|
|
27
40
|
```
|
|
28
41
|
|
|
29
|
-
|
|
42
|
+
**WARNING:** Single process only. Not production safe.
|
|
30
43
|
|
|
31
|
-
|
|
44
|
+
---
|
|
32
45
|
|
|
33
|
-
|
|
46
|
+
## 🟥 PAID VERSION - CIRCUIT BREAKER
|
|
34
47
|
|
|
35
|
-
|
|
48
|
+
**Circuit breaker that saves companies thousands.**
|
|
36
49
|
|
|
37
|
-
|
|
50
|
+
```ts
|
|
51
|
+
import { getProGuard } from '@salimassili/ai-costguard';
|
|
38
52
|
|
|
39
|
-
|
|
53
|
+
const breaker = getProGuard("LICENSE_KEY", {
|
|
54
|
+
slack: { webhook: "webhook_url", channel: "#alerts" }
|
|
55
|
+
});
|
|
40
56
|
|
|
41
|
-
|
|
57
|
+
breaker.activateCircuitBreaker({
|
|
58
|
+
projectId: "production",
|
|
59
|
+
budget: 5000
|
|
60
|
+
});
|
|
42
61
|
|
|
43
|
-
|
|
44
|
-
|
|
62
|
+
breaker.panicShutdown("production"); // Panic button
|
|
63
|
+
```
|
|
45
64
|
|
|
46
|
-
|
|
47
|
-
|
|
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
|
|
48
73
|
|
|
49
|
-
|
|
50
|
-
Agent burns tokens rapidly until blocked.
|
|
74
|
+
---
|
|
51
75
|
|
|
52
|
-
##
|
|
76
|
+
## 💥 TERRIFYING DEMO
|
|
53
77
|
|
|
54
|
-
|
|
55
|
-
withCostGuard(client, {
|
|
56
|
-
maxTotalCostPerDay: 10, // Hard USD limit
|
|
57
|
-
maxTokensPerRequest: 4000, // Per-call limit
|
|
58
|
-
maxRequestsPerMinute: 30, // Rate limit
|
|
59
|
-
loopDetection: true // Catch repeated prompts
|
|
60
|
-
})
|
|
61
|
-
```
|
|
78
|
+
**Scenario:** AI agent processing user data goes into infinite retry loop.
|
|
62
79
|
|
|
63
|
-
|
|
80
|
+
**Free version:** Each server thinks it's fine. Cost explodes to $15,000/hour.
|
|
64
81
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const openai = withCostGuard(
|
|
69
|
-
new OpenAI({ apiKey: process.env.OPENAI_API_KEY }),
|
|
70
|
-
{ maxTotalCostPerDay: 5 }
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
try {
|
|
74
|
-
const response = await openai.chat.completions.create({
|
|
75
|
-
model: 'gpt-4',
|
|
76
|
-
messages: [{ role: 'user', content: 'Hello' }],
|
|
77
|
-
});
|
|
78
|
-
} catch (err) {
|
|
79
|
-
if (err instanceof CostGuardError) {
|
|
80
|
-
console.log('Agent blocked:', err.message);
|
|
81
|
-
// Handle gracefully
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
```
|
|
82
|
+
**Paid version:** Circuit breaker detects pattern across all servers. Panic shutdown activated in 8 seconds. Company saves $12,000.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
85
|
|
|
86
|
-
##
|
|
86
|
+
## 🚀 60-SECOND MAGICAL INSTALLATION
|
|
87
87
|
|
|
88
|
+
```bash
|
|
89
|
+
npm install @salimassili/ai-costguard
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Development (FREE)
|
|
88
93
|
```ts
|
|
89
|
-
import {
|
|
94
|
+
import { guard } from '@salimassili/ai-costguard';
|
|
95
|
+
import OpenAI from 'openai';
|
|
90
96
|
|
|
91
|
-
|
|
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' }]
|
|
103
|
+
});
|
|
92
104
|
```
|
|
93
105
|
|
|
94
|
-
|
|
106
|
+
### Production (PAID)
|
|
107
|
+
```ts
|
|
108
|
+
import { getProGuard } from '@salimassili/ai-costguard';
|
|
95
109
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
110
|
+
// Activate circuit breaker
|
|
111
|
+
const breaker = getProGuard(process.env.COSTGUARD_LICENSE, {
|
|
112
|
+
slack: { webhook: process.env.SLACK_WEBHOOK, channel: "#ai-alerts" }
|
|
113
|
+
});
|
|
100
114
|
|
|
101
|
-
|
|
115
|
+
breaker.activateCircuitBreaker({
|
|
116
|
+
projectId: "production",
|
|
117
|
+
budget: 10000
|
|
118
|
+
});
|
|
102
119
|
|
|
103
|
-
|
|
104
|
-
npm install @salimassili/ai-costguard
|
|
120
|
+
// Your AI code is now circuit-protected
|
|
105
121
|
```
|
|
106
122
|
|
|
107
|
-
|
|
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
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 🛠️ TECH STACK
|
|
159
|
+
|
|
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
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 🚫 WHAT WE DON'T DO
|
|
171
|
+
|
|
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."
|
|
194
|
+
|
|
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."
|
|
197
|
+
|
|
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."
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 🏆 TRUST MOAT
|
|
204
|
+
|
|
205
|
+
**Why companies can't replace this:**
|
|
206
|
+
|
|
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
|
|
212
|
+
|
|
213
|
+
**Not because of complexity, but because it's the reliable emergency brake for AI agents.**
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 🚀 PATH TO $5K+ MRR
|
|
218
|
+
|
|
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
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 🎯 FINAL PHILOSOPHY
|
|
228
|
+
|
|
229
|
+
**"If this is not installed, your AI infrastructure is financially unsafe."**
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
MIT | [GitHub](https://github.com/salimassili62-afk/ai-costguard)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentFailureKernel.ts - The missing primitive in AI infrastructure
|
|
3
|
+
*
|
|
4
|
+
* External runtime observation layer for autonomous agent failure prevention.
|
|
5
|
+
* Cross-session memory tracking + behavioral drift detection + failure propagation analysis.
|
|
6
|
+
* Hidden complexity. Simple API. Unavoidable infrastructure.
|
|
7
|
+
*/
|
|
8
|
+
import { GuardConfig, RequestContext } from './types.js';
|
|
9
|
+
export declare class AgentFailureKernel {
|
|
10
|
+
private agentMemories;
|
|
11
|
+
private propagationGraphs;
|
|
12
|
+
private globalFailurePatterns;
|
|
13
|
+
private sessionCorrelations;
|
|
14
|
+
constructor();
|
|
15
|
+
analyzeRequest(requestId: string, ctx: RequestContext, config: GuardConfig): {
|
|
16
|
+
shouldBlock: boolean;
|
|
17
|
+
incident: {
|
|
18
|
+
type: string;
|
|
19
|
+
severity: string;
|
|
20
|
+
confidence: number;
|
|
21
|
+
description: string;
|
|
22
|
+
projectedSavings: number;
|
|
23
|
+
} | null;
|
|
24
|
+
};
|
|
25
|
+
private extractSessionId;
|
|
26
|
+
private getOrCreateMemory;
|
|
27
|
+
private generateBehavioralFingerprint;
|
|
28
|
+
private detectBehavioralDrift;
|
|
29
|
+
private analyzeToolCascade;
|
|
30
|
+
private analyzeFailurePropagation;
|
|
31
|
+
private analyzeCrossSessionRisk;
|
|
32
|
+
private scoreIncident;
|
|
33
|
+
private updateMemory;
|
|
34
|
+
private extractToolCalls;
|
|
35
|
+
private extractReasoningPattern;
|
|
36
|
+
private extractIntent;
|
|
37
|
+
private inferNodeType;
|
|
38
|
+
private calculateStringSimilarity;
|
|
39
|
+
private levenshteinDistance;
|
|
40
|
+
private calculateDriftScore;
|
|
41
|
+
private calculateProjectedSavings;
|
|
42
|
+
private generateIncidentDescription;
|
|
43
|
+
private hashString;
|
|
44
|
+
private cleanupOldMemories;
|
|
45
|
+
getStats(): {
|
|
46
|
+
activeSessions: number;
|
|
47
|
+
totalFailurePatterns: number;
|
|
48
|
+
averageDriftScore: number;
|
|
49
|
+
crossSessionCorrelations: number;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=AgentFailureKernel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentFailureKernel.d.ts","sourceRoot":"","sources":["../../src/core/AgentFailureKernel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAoDrE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,qBAAqB,CAAqC;IAGlE,OAAO,CAAC,mBAAmB,CAA+B;;IAQ1D,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG;QAC3E,WAAW,EAAE,OAAO,CAAC;QACrB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,WAAW,EAAE,MAAM,CAAC;YACpB,gBAAgB,EAAE,MAAM,CAAC;SAC1B,GAAG,IAAI,CAAC;KACV;IA8BD,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,6BAA6B;IAcrC,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,kBAAkB;IAuC1B,OAAO,CAAC,yBAAyB;IA2CjC,OAAO,CAAC,uBAAuB;IAgC/B,OAAO,CAAC,aAAa;IAyDrB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,2BAA2B;IAiBnC,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,kBAAkB;IAY1B,QAAQ;;;;;;CAUT"}
|