@agent-trust/gateway 1.2.0 → 1.3.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 +26 -1
- package/dist/behavior-tracker.d.ts +2 -0
- package/dist/behavior-tracker.d.ts.map +1 -1
- package/dist/behavior-tracker.js +55 -2
- package/dist/behavior-tracker.js.map +1 -1
- package/dist/derivative-monitor.d.ts +44 -0
- package/dist/derivative-monitor.d.ts.map +1 -0
- package/dist/derivative-monitor.js +207 -0
- package/dist/derivative-monitor.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +54 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -8,6 +8,11 @@ Express middleware that lets trusted AI agents interact with your website. Part
|
|
|
8
8
|
npm install @agent-trust/gateway
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
> **TypeScript users:** Types are included. You'll also need `@types/express` if you don't already have it:
|
|
12
|
+
> ```bash
|
|
13
|
+
> npm install -D @types/express
|
|
14
|
+
> ```
|
|
15
|
+
|
|
11
16
|
## Quick Start
|
|
12
17
|
|
|
13
18
|
```typescript
|
|
@@ -46,6 +51,12 @@ const gateway = createGateway({
|
|
|
46
51
|
},
|
|
47
52
|
behavior: {
|
|
48
53
|
maxActionsPerMinute: 30,
|
|
54
|
+
derivatives: {
|
|
55
|
+
enabled: true,
|
|
56
|
+
velocityThresholds: { actions_per_minute: 8, failures_per_minute: 3 },
|
|
57
|
+
useAccelerationBlocking: true,
|
|
58
|
+
predictiveBlockingSeconds: 30,
|
|
59
|
+
},
|
|
49
60
|
onSuspiciousActivity: (event) => {
|
|
50
61
|
console.warn('Suspicious agent:', event.flag, event.description);
|
|
51
62
|
}
|
|
@@ -61,8 +72,9 @@ app.listen(3000);
|
|
|
61
72
|
- **Certificate verification** — validates RS256 JWT certificates from the AgentTrust Station
|
|
62
73
|
- **Score-based access** — different actions require different reputation levels
|
|
63
74
|
- **Real-time behavioral tracking** — detects and blocks suspicious agents mid-session
|
|
64
|
-
- **Auto-reporting** — reports agent behavior back to Station automatically
|
|
75
|
+
- **Auto-reporting** — reports agent behavior back to Station automatically (synced to Base L2 on-chain)
|
|
65
76
|
- **Discovery endpoints** — agents can discover available actions programmatically
|
|
77
|
+
- **On-chain trust** — every certificate and reputation score is recorded on Base L2, independently verifiable on [BaseScan](https://basescan.org/address/0xb880bC6b0634812E85EC635B899cA197429069e8)
|
|
66
78
|
|
|
67
79
|
## Behavioral Tracking
|
|
68
80
|
|
|
@@ -76,9 +88,22 @@ The gateway monitors agent behavior in real-time and detects:
|
|
|
76
88
|
| `repeated_action` | Automation (same action on loop) |
|
|
77
89
|
| `scope_violation` | Accessing above trust level |
|
|
78
90
|
| `burst_detected` | Sudden activity after idle |
|
|
91
|
+
| `velocity_spike` | Metric rate-of-change exceeds threshold (ramping attack) |
|
|
92
|
+
| `accelerating_attack` | Metric acceleration indicates escalating threat |
|
|
93
|
+
| `predictive_breach` | Forecasted score will breach block threshold in 30s |
|
|
79
94
|
|
|
80
95
|
Agents get a behavioral score (0-100) that degrades with violations. Drop below threshold = blocked mid-session.
|
|
81
96
|
|
|
97
|
+
### Derivative-Based Detection (NEW)
|
|
98
|
+
|
|
99
|
+
The gateway now computes mathematical derivatives (velocity and acceleration) on behavioral metrics in real-time. This catches attacks that static thresholds miss:
|
|
100
|
+
|
|
101
|
+
- **Velocity spike** — detects slow ramp-up attacks before they hit static limits
|
|
102
|
+
- **Accelerating attack** — catches explosive probing and escalation patterns
|
|
103
|
+
- **Predictive blocking** — forecasts behavioral score 30 seconds ahead and blocks before breach
|
|
104
|
+
|
|
105
|
+
Configure via the `derivatives` option in `behavior` config.
|
|
106
|
+
|
|
82
107
|
## API
|
|
83
108
|
|
|
84
109
|
### Routes (mounted on your chosen path)
|
|
@@ -17,6 +17,8 @@ import { BehaviorConfig, BehaviorFlag, SessionStats } from './types';
|
|
|
17
17
|
export declare class BehaviorTracker {
|
|
18
18
|
private sessions;
|
|
19
19
|
private config;
|
|
20
|
+
private derivativeMonitor;
|
|
21
|
+
private derivativesEnabled;
|
|
20
22
|
private cleanupInterval;
|
|
21
23
|
constructor(config?: BehaviorConfig);
|
|
22
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"behavior-tracker.d.ts","sourceRoot":"","sources":["../src/behavior-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EAEd,YAAY,EAGZ,YAAY,
|
|
1
|
+
{"version":3,"file":"behavior-tracker.d.ts","sourceRoot":"","sources":["../src/behavior-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EAEd,YAAY,EAGZ,YAAY,EAEb,MAAM,SAAS,CAAC;AAGjB;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,MAAM,CAEZ;IACF,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,eAAe,CAAiC;gBAE5C,MAAM,GAAE,cAAmB;IAqBvC;;;OAGG;IACH,YAAY,CACV,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,GAChB;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;IA+JrE;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKnC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAKjC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAM9C;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQjC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACH,iBAAiB,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC;IAYxF;;OAEG;IACH,OAAO,IAAI,IAAI;IAQf,2CAA2C;IAC3C,OAAO,CAAC,cAAc;IAMtB,iCAAiC;IACjC,OAAO,CAAC,oBAAoB;IAK5B,6DAA6D;IAC7D,OAAO,CAAC,sBAAsB;IAO9B,kEAAkE;IAClE,OAAO,CAAC,oBAAoB;IAoB5B,yDAAyD;IACzD,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,eAAe;CAQxB"}
|
package/dist/behavior-tracker.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BehaviorTracker = void 0;
|
|
7
7
|
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
const derivative_monitor_1 = require("./derivative-monitor");
|
|
8
9
|
/**
|
|
9
10
|
* BehaviorTracker — real-time behavioral analysis of agent sessions.
|
|
10
11
|
*
|
|
@@ -34,6 +35,9 @@ class BehaviorTracker {
|
|
|
34
35
|
blockThreshold: config.blockThreshold ?? 20,
|
|
35
36
|
onSuspiciousActivity: config.onSuspiciousActivity,
|
|
36
37
|
};
|
|
38
|
+
// Initialize derivative monitor
|
|
39
|
+
this.derivativesEnabled = config.derivatives?.enabled !== false;
|
|
40
|
+
this.derivativeMonitor = new derivative_monitor_1.DerivativeMonitor(config.derivatives);
|
|
37
41
|
// Clean up expired sessions every 60 seconds
|
|
38
42
|
this.cleanupInterval = setInterval(() => this.cleanupSessions(), 60000);
|
|
39
43
|
}
|
|
@@ -101,6 +105,40 @@ class BehaviorTracker {
|
|
|
101
105
|
if (this.checkBurstPattern(session, now)) {
|
|
102
106
|
newFlags.push('burst_detected');
|
|
103
107
|
}
|
|
108
|
+
// ─── Derivative-based checks (7, 8, 9) ───
|
|
109
|
+
let derivativeResult;
|
|
110
|
+
if (this.derivativesEnabled) {
|
|
111
|
+
// Compute current metric values from session
|
|
112
|
+
const oneMinuteAgo = now - 60000;
|
|
113
|
+
const recentActions = session.actions.filter(a => a.timestamp > oneMinuteAgo);
|
|
114
|
+
const recentFailures = recentActions.filter(a => !a.success).length;
|
|
115
|
+
const recentUnique = new Set(recentActions.map(a => a.actionName)).size;
|
|
116
|
+
const totalSuccessRate = session.actions.length > 0
|
|
117
|
+
? session.actions.filter(a => a.success).length / session.actions.length
|
|
118
|
+
: 1;
|
|
119
|
+
derivativeResult = this.derivativeMonitor.recordMetrics(agentId, {
|
|
120
|
+
actions_per_minute: recentActions.length,
|
|
121
|
+
failures_per_minute: recentFailures,
|
|
122
|
+
unique_actions_per_minute: recentUnique,
|
|
123
|
+
behavioral_score: session.behaviorScore,
|
|
124
|
+
success_rate: totalSuccessRate,
|
|
125
|
+
});
|
|
126
|
+
// Check 7: Velocity spike (rate of change exceeds threshold)
|
|
127
|
+
if (derivativeResult.flags.some(f => f.startsWith('velocity_spike'))) {
|
|
128
|
+
newFlags.push('velocity_spike');
|
|
129
|
+
}
|
|
130
|
+
// Check 8: Accelerating attack (acceleration exceeds threshold)
|
|
131
|
+
if (derivativeResult.flags.some(f => f.startsWith('accelerating_attack'))) {
|
|
132
|
+
newFlags.push('accelerating_attack');
|
|
133
|
+
}
|
|
134
|
+
// Check 9: Predictive breach (forecasted score below block threshold)
|
|
135
|
+
if (derivativeResult.predictedScore !== null &&
|
|
136
|
+
derivativeResult.predictedScore <= this.config.blockThreshold &&
|
|
137
|
+
session.behaviorScore > this.config.blockThreshold // only flag if not already below
|
|
138
|
+
) {
|
|
139
|
+
newFlags.push('predictive_breach');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
104
142
|
// Apply penalties for NEW flags only
|
|
105
143
|
for (const flag of newFlags) {
|
|
106
144
|
if (!session.flags.has(flag)) {
|
|
@@ -180,6 +218,7 @@ class BehaviorTracker {
|
|
|
180
218
|
*/
|
|
181
219
|
clearSession(agentId) {
|
|
182
220
|
this.sessions.delete(agentId);
|
|
221
|
+
this.derivativeMonitor.clearAgent(agentId);
|
|
183
222
|
}
|
|
184
223
|
/**
|
|
185
224
|
* Get all active sessions (for monitoring/dashboard).
|
|
@@ -201,6 +240,7 @@ class BehaviorTracker {
|
|
|
201
240
|
destroy() {
|
|
202
241
|
clearInterval(this.cleanupInterval);
|
|
203
242
|
this.sessions.clear();
|
|
243
|
+
this.derivativeMonitor.clear();
|
|
204
244
|
}
|
|
205
245
|
// ─── Behavioral Checks ───
|
|
206
246
|
/** Check 1: Too many actions per minute */
|
|
@@ -264,7 +304,7 @@ class BehaviorTracker {
|
|
|
264
304
|
const now = Date.now();
|
|
265
305
|
const oneMinuteAgo = now - 60000;
|
|
266
306
|
const recentActions = session.actions.filter(a => a.timestamp > oneMinuteAgo);
|
|
267
|
-
|
|
307
|
+
const stats = {
|
|
268
308
|
totalActions: session.actions.length,
|
|
269
309
|
successfulActions: session.actions.filter(a => a.success).length,
|
|
270
310
|
failedActions: session.actions.filter(a => !a.success).length,
|
|
@@ -274,6 +314,16 @@ class BehaviorTracker {
|
|
|
274
314
|
scopeViolations: session.actions.filter(a => a.scopeViolation).length,
|
|
275
315
|
flagsTriggered: Array.from(session.flags)
|
|
276
316
|
};
|
|
317
|
+
// Include derivative data if available
|
|
318
|
+
if (this.derivativesEnabled) {
|
|
319
|
+
const dState = this.derivativeMonitor.getState(session.agentId);
|
|
320
|
+
if (dState) {
|
|
321
|
+
stats.velocities = dState.velocities;
|
|
322
|
+
stats.accelerations = dState.accelerations;
|
|
323
|
+
stats.predictedScore = dState.predictedScore;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
return stats;
|
|
277
327
|
}
|
|
278
328
|
getDescription(flag) {
|
|
279
329
|
const descriptions = {
|
|
@@ -283,7 +333,10 @@ class BehaviorTracker {
|
|
|
283
333
|
'repeated_action': `Agent repeated the same action ${this.config.maxRepeatedActionsPerMinute}+ times per minute (automation)`,
|
|
284
334
|
'scope_violation': 'Agent attempted an action above their trust level',
|
|
285
335
|
'session_anomaly': 'Unusual session pattern detected',
|
|
286
|
-
'burst_detected': 'Sudden burst of activity after idle period'
|
|
336
|
+
'burst_detected': 'Sudden burst of activity after idle period',
|
|
337
|
+
'velocity_spike': 'Metric rate-of-change exceeds threshold (ramping attack detected)',
|
|
338
|
+
'accelerating_attack': 'Metric acceleration indicates escalating threat pattern',
|
|
339
|
+
'predictive_breach': 'Forecasted behavioral score will breach block threshold within 30 seconds'
|
|
287
340
|
};
|
|
288
341
|
return descriptions[flag];
|
|
289
342
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"behavior-tracker.js","sourceRoot":"","sources":["../src/behavior-tracker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"behavior-tracker.js","sourceRoot":"","sources":["../src/behavior-tracker.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAU5B,6DAAyD;AAEzD;;;;;;;;;;;;;;GAcG;AACH,MAAa,eAAe;IAS1B,YAAY,SAAyB,EAAE;QAR/B,aAAQ,GAA8B,IAAI,GAAG,EAAE,CAAC;QAStD,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;YAC/B,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,MAAO,EAAS,YAAY;YACrE,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,EAAE;YACrD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,CAAC;YACxD,yBAAyB,EAAE,MAAM,CAAC,yBAAyB,IAAI,EAAE;YACjE,2BAA2B,EAAE,MAAM,CAAC,2BAA2B,IAAI,EAAE;YACrE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;YAC/C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;YAC3C,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;SAClD,CAAC;QAEF,gCAAgC;QAChC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,KAAK,KAAK,CAAC;QAChE,IAAI,CAAC,iBAAiB,GAAG,IAAI,sCAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEnE,6CAA6C;QAC7C,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAM,CAAC,CAAC;IAC3E,CAAC;IAED;;;OAGG;IACH,YAAY,CACV,OAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,MAA+B,EAC/B,OAAgB,EAChB,QAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC3D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEzC,4DAA4D;QAC5D,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5E,OAAO,GAAG;gBACR,OAAO;gBACP,UAAU;gBACV,SAAS,EAAE,GAAG;gBACd,cAAc,EAAE,GAAG;gBACnB,aAAa,EAAE,GAAG;gBAClB,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,IAAI,GAAG,EAAE;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAkB;YAC5B,UAAU;YACV,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC;YAC/C,OAAO;YACP,cAAc,EAAE,CAAC,QAAQ;YACzB,SAAS,EAAE,GAAG;SACf,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,CAAC,cAAc,GAAG,GAAG,CAAC;QAE7B,uCAAuC;QACvC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnG,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,GAAmB,EAAE,CAAC;QAEpC,gCAAgC;QAChC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACrC,CAAC;QAED,8BAA8B;QAC9B,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACtC,CAAC;QAED,sCAAsC;QACtC,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnC,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnC,CAAC;QAED,iDAAiD;QACjD,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClC,CAAC;QAED,4CAA4C;QAC5C,IAAI,gBAA8C,CAAC;QACnD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,6CAA6C;YAC7C,MAAM,YAAY,GAAG,GAAG,GAAG,KAAM,CAAC;YAClC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC;YAC9E,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YACpE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;YACxE,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBACjD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM;gBACxE,CAAC,CAAC,CAAC,CAAC;YAEN,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE;gBAC/D,kBAAkB,EAAE,aAAa,CAAC,MAAM;gBACxC,mBAAmB,EAAE,cAAc;gBACnC,yBAAyB,EAAE,YAAY;gBACvC,gBAAgB,EAAE,OAAO,CAAC,aAAa;gBACvC,YAAY,EAAE,gBAAgB;aAC/B,CAAC,CAAC;YAEH,6DAA6D;YAC7D,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;gBACrE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClC,CAAC;YAED,gEAAgE;YAChE,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;gBAC1E,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACvC,CAAC;YAED,sEAAsE;YACtE,IACE,gBAAgB,CAAC,cAAc,KAAK,IAAI;gBACxC,gBAAgB,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc;gBAC7D,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,iCAAiC;cACpF,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;gBAE1F,aAAa;gBACb,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;oBACrC,MAAM,KAAK,GAAkB;wBAC3B,OAAO;wBACP,UAAU;wBACV,IAAI;wBACJ,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;wBACtC,aAAa,EAAE,OAAO,CAAC,aAAa;wBACpC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;wBAC3C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAC1D,6CAA6C;gBAC7C,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5G,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5F,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACxD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,OAAO;YACL,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAe;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAe;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,OAAO,EAAE,aAAa,IAAI,GAAG,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAe;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAe;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,MAAM,MAAM,GAAwE,EAAE,CAAC;QACvF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,4BAA4B;IAE5B,2CAA2C;IACnC,cAAc,CAAC,OAAqB,EAAE,GAAW;QACvD,MAAM,YAAY,GAAG,GAAG,GAAG,KAAM,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC;QAC9E,OAAO,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAChE,CAAC;IAED,iCAAiC;IACzB,oBAAoB,CAAC,OAAqB;QAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAChE,OAAO,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;IACvD,CAAC;IAED,6DAA6D;IACrD,sBAAsB,CAAC,OAAqB,EAAE,GAAW;QAC/D,MAAM,YAAY,GAAG,GAAG,GAAG,KAAM,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC;QAC9E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,OAAO,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC;IACpE,CAAC;IAED,kEAAkE;IAC1D,oBAAoB,CAAC,OAAqB,EAAE,GAAW;QAC7D,MAAM,YAAY,GAAG,GAAG,GAAG,KAAM,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC;QAE9E,uCAAuC;QACvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,uCAAuC;QACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yDAAyD;IACjD,iBAAiB,CAAC,OAAqB,EAAE,GAAW;QAC1D,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,mBAAmB;QAEjE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhF,IAAI,CAAC,cAAc;YAAE,OAAO,KAAK,CAAC;QAElC,2CAA2C;QAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;QAE7D,8BAA8B;QAC9B,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnF,2EAA2E;QAC3E,OAAO,GAAG,GAAG,KAAM,IAAI,UAAU,GAAG,IAAK,CAAC;IAC5C,CAAC;IAED,kBAAkB;IAEV,UAAU,CAAC,UAAkB,EAAE,MAA+B;QACpE,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAClF,OAAO,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEO,eAAe,CAAC,OAAqB;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,GAAG,GAAG,KAAM,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC;QAE9E,MAAM,KAAK,GAAiB;YAC1B,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;YACpC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM;YAChE,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM;YAC7D,iBAAiB,EAAE,aAAa,CAAC,MAAM;YACvC,uBAAuB,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;YAC3E,eAAe,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS;YACxC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,MAAM;YACrE,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;SAC1C,CAAC;QAEF,uCAAuC;QACvC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBACrC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;gBAC3C,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,cAAc,CAAC,IAAkB;QACvC,MAAM,YAAY,GAAiC;YACjD,YAAY,EAAE,kBAAkB,IAAI,CAAC,MAAM,CAAC,mBAAmB,qBAAqB;YACpF,mBAAmB,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,qBAAqB,qCAAqC;YACxG,oBAAoB,EAAE,eAAe,IAAI,CAAC,MAAM,CAAC,yBAAyB,2CAA2C;YACrH,iBAAiB,EAAE,kCAAkC,IAAI,CAAC,MAAM,CAAC,2BAA2B,iCAAiC;YAC7H,iBAAiB,EAAE,mDAAmD;YACtE,iBAAiB,EAAE,kCAAkC;YACrD,gBAAgB,EAAE,4CAA4C;YAC9D,gBAAgB,EAAE,mEAAmE;YACrF,qBAAqB,EAAE,yDAAyD;YAChF,mBAAmB,EAAE,2EAA2E;SACjG,CAAC;QACF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEO,eAAe;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAChE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAxYD,0CAwYC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DerivativeMonitor — time-series velocity and acceleration tracking for agent behavior.
|
|
3
|
+
*
|
|
4
|
+
* Computes mathematical derivatives (rate of change) on behavioral metrics:
|
|
5
|
+
* - 1st derivative (velocity): How fast a metric is changing
|
|
6
|
+
* - 2nd derivative (acceleration): How fast the rate of change is changing
|
|
7
|
+
*
|
|
8
|
+
* This catches attacks that static thresholds miss:
|
|
9
|
+
* - Slow ramp-up attacks (velocity reveals gradual escalation)
|
|
10
|
+
* - Explosive probing (acceleration reveals sudden behavioral shifts)
|
|
11
|
+
* - Credential compromise (negative momentum on success rate)
|
|
12
|
+
*
|
|
13
|
+
* Uses sliding time windows with exponential smoothing to reduce noise.
|
|
14
|
+
* Runs in O(1) per update — no external dependencies.
|
|
15
|
+
*/
|
|
16
|
+
import type { DerivativeConfig, DerivativeResult } from './types';
|
|
17
|
+
export type MetricName = 'actions_per_minute' | 'failures_per_minute' | 'unique_actions_per_minute' | 'behavioral_score' | 'success_rate';
|
|
18
|
+
export declare class DerivativeMonitor {
|
|
19
|
+
private states;
|
|
20
|
+
private config;
|
|
21
|
+
constructor(config?: DerivativeConfig);
|
|
22
|
+
/**
|
|
23
|
+
* Record a new metric sample for an agent.
|
|
24
|
+
* Call this on every action with the current values of each metric.
|
|
25
|
+
*/
|
|
26
|
+
recordMetrics(agentId: string, metrics: Partial<Record<MetricName, number>>): DerivativeResult;
|
|
27
|
+
/**
|
|
28
|
+
* Compute 1st and 2nd derivatives from a metric's history using finite differences.
|
|
29
|
+
*/
|
|
30
|
+
private computeDerivatives;
|
|
31
|
+
/**
|
|
32
|
+
* Get the current derivative state for an agent (for dashboard/monitoring).
|
|
33
|
+
*/
|
|
34
|
+
getState(agentId: string): DerivativeResult | null;
|
|
35
|
+
/**
|
|
36
|
+
* Clear state for an agent (on session reset).
|
|
37
|
+
*/
|
|
38
|
+
clearAgent(agentId: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Clear all state.
|
|
41
|
+
*/
|
|
42
|
+
clear(): void;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=derivative-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derivative-monitor.d.ts","sourceRoot":"","sources":["../src/derivative-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAmC,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAInG,MAAM,MAAM,UAAU,GAClB,oBAAoB,GACpB,qBAAqB,GACrB,2BAA2B,GAC3B,kBAAkB,GAClB,cAAc,CAAC;AA8BnB,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,MAAM,CAA6B;gBAE/B,MAAM,GAAE,gBAAqB;IAczC;;;OAGG;IACH,aAAa,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,GAC3C,gBAAgB;IAyGnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAgBlD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DerivativeMonitor — time-series velocity and acceleration tracking for agent behavior.
|
|
4
|
+
*
|
|
5
|
+
* Computes mathematical derivatives (rate of change) on behavioral metrics:
|
|
6
|
+
* - 1st derivative (velocity): How fast a metric is changing
|
|
7
|
+
* - 2nd derivative (acceleration): How fast the rate of change is changing
|
|
8
|
+
*
|
|
9
|
+
* This catches attacks that static thresholds miss:
|
|
10
|
+
* - Slow ramp-up attacks (velocity reveals gradual escalation)
|
|
11
|
+
* - Explosive probing (acceleration reveals sudden behavioral shifts)
|
|
12
|
+
* - Credential compromise (negative momentum on success rate)
|
|
13
|
+
*
|
|
14
|
+
* Uses sliding time windows with exponential smoothing to reduce noise.
|
|
15
|
+
* Runs in O(1) per update — no external dependencies.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.DerivativeMonitor = void 0;
|
|
19
|
+
// ─── Default Config ───
|
|
20
|
+
const DEFAULT_CONFIG = {
|
|
21
|
+
enabled: true,
|
|
22
|
+
windowSeconds: 180, // 3 minutes of history
|
|
23
|
+
sampleIntervalMs: 10000, // Sample every 10 seconds
|
|
24
|
+
maxSamples: 20, // Keep last 20 samples (~3 min at 10s intervals)
|
|
25
|
+
smoothingFactor: 0.3, // EMA alpha (0.3 = moderate smoothing)
|
|
26
|
+
velocityThresholds: {
|
|
27
|
+
actions_per_minute: 8, // Flag if actions/min velocity > 8
|
|
28
|
+
failures_per_minute: 3, // Flag if failures/min velocity > 3
|
|
29
|
+
unique_actions_per_minute: 5,
|
|
30
|
+
behavioral_score: -15, // Flag if score dropping fast (negative = bad)
|
|
31
|
+
success_rate: -0.3, // Flag if success rate dropping fast
|
|
32
|
+
},
|
|
33
|
+
accelerationThresholds: {
|
|
34
|
+
actions_per_minute: 4, // Flag if accelerating
|
|
35
|
+
failures_per_minute: 2,
|
|
36
|
+
unique_actions_per_minute: 3,
|
|
37
|
+
behavioral_score: -10,
|
|
38
|
+
success_rate: -0.2,
|
|
39
|
+
},
|
|
40
|
+
useAccelerationBlocking: true,
|
|
41
|
+
predictiveBlockingSeconds: 30,
|
|
42
|
+
};
|
|
43
|
+
// ─── DerivativeMonitor Class ───
|
|
44
|
+
class DerivativeMonitor {
|
|
45
|
+
constructor(config = {}) {
|
|
46
|
+
this.states = new Map(); // agentId → state
|
|
47
|
+
this.config = {
|
|
48
|
+
enabled: config.enabled ?? DEFAULT_CONFIG.enabled,
|
|
49
|
+
windowSeconds: config.windowSeconds ?? DEFAULT_CONFIG.windowSeconds,
|
|
50
|
+
sampleIntervalMs: config.sampleIntervalMs ?? DEFAULT_CONFIG.sampleIntervalMs,
|
|
51
|
+
maxSamples: config.maxSamples ?? DEFAULT_CONFIG.maxSamples,
|
|
52
|
+
smoothingFactor: config.smoothingFactor ?? DEFAULT_CONFIG.smoothingFactor,
|
|
53
|
+
velocityThresholds: { ...DEFAULT_CONFIG.velocityThresholds, ...config.velocityThresholds },
|
|
54
|
+
accelerationThresholds: { ...DEFAULT_CONFIG.accelerationThresholds, ...config.accelerationThresholds },
|
|
55
|
+
useAccelerationBlocking: config.useAccelerationBlocking ?? DEFAULT_CONFIG.useAccelerationBlocking,
|
|
56
|
+
predictiveBlockingSeconds: config.predictiveBlockingSeconds ?? DEFAULT_CONFIG.predictiveBlockingSeconds,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Record a new metric sample for an agent.
|
|
61
|
+
* Call this on every action with the current values of each metric.
|
|
62
|
+
*/
|
|
63
|
+
recordMetrics(agentId, metrics) {
|
|
64
|
+
if (!this.config.enabled) {
|
|
65
|
+
return { velocities: {}, accelerations: {}, flags: [], predictedScore: null };
|
|
66
|
+
}
|
|
67
|
+
const now = Date.now();
|
|
68
|
+
let state = this.states.get(agentId);
|
|
69
|
+
if (!state) {
|
|
70
|
+
state = { history: new Map(), lastSampleTime: 0 };
|
|
71
|
+
this.states.set(agentId, state);
|
|
72
|
+
}
|
|
73
|
+
// Only sample at configured interval (avoid noise from rapid-fire updates)
|
|
74
|
+
const shouldSample = (now - state.lastSampleTime) >= this.config.sampleIntervalMs;
|
|
75
|
+
const velocities = {};
|
|
76
|
+
const accelerations = {};
|
|
77
|
+
const flags = [];
|
|
78
|
+
for (const [metric, value] of Object.entries(metrics)) {
|
|
79
|
+
if (value === undefined || value === null)
|
|
80
|
+
continue;
|
|
81
|
+
let history = state.history.get(metric);
|
|
82
|
+
if (!history) {
|
|
83
|
+
history = [];
|
|
84
|
+
state.history.set(metric, history);
|
|
85
|
+
}
|
|
86
|
+
if (shouldSample) {
|
|
87
|
+
// Add new sample
|
|
88
|
+
history.push({ timestamp: now, value, smoothedValue: value });
|
|
89
|
+
// Apply exponential smoothing
|
|
90
|
+
if (history.length >= 2) {
|
|
91
|
+
const prev = history[history.length - 2];
|
|
92
|
+
const alpha = this.config.smoothingFactor;
|
|
93
|
+
history[history.length - 1].smoothedValue =
|
|
94
|
+
alpha * value + (1 - alpha) * prev.smoothedValue;
|
|
95
|
+
}
|
|
96
|
+
// Keep window bounded
|
|
97
|
+
if (history.length > this.config.maxSamples) {
|
|
98
|
+
history.shift();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Calculate derivatives using smoothed values
|
|
102
|
+
const derivatives = this.computeDerivatives(history);
|
|
103
|
+
velocities[metric] = derivatives.velocity;
|
|
104
|
+
accelerations[metric] = derivatives.acceleration;
|
|
105
|
+
// Check velocity thresholds
|
|
106
|
+
const velThreshold = this.config.velocityThresholds[metric];
|
|
107
|
+
if (velThreshold !== undefined && derivatives.velocity !== 0) {
|
|
108
|
+
// For score/success_rate, negative velocity is bad
|
|
109
|
+
if (metric === 'behavioral_score' || metric === 'success_rate') {
|
|
110
|
+
if (derivatives.velocity < velThreshold) {
|
|
111
|
+
flags.push(`velocity_spike:${metric}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
// For action counts, positive velocity is bad
|
|
116
|
+
if (derivatives.velocity > velThreshold) {
|
|
117
|
+
flags.push(`velocity_spike:${metric}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Check acceleration thresholds
|
|
122
|
+
if (this.config.useAccelerationBlocking) {
|
|
123
|
+
const accThreshold = this.config.accelerationThresholds[metric];
|
|
124
|
+
if (accThreshold !== undefined && derivatives.acceleration !== 0) {
|
|
125
|
+
if (metric === 'behavioral_score' || metric === 'success_rate') {
|
|
126
|
+
if (derivatives.acceleration < accThreshold) {
|
|
127
|
+
flags.push(`accelerating_attack:${metric}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
if (derivatives.acceleration > accThreshold) {
|
|
132
|
+
flags.push(`accelerating_attack:${metric}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (shouldSample) {
|
|
139
|
+
state.lastSampleTime = now;
|
|
140
|
+
}
|
|
141
|
+
// Predictive blocking: forecast behavioral score
|
|
142
|
+
let predictedScore = null;
|
|
143
|
+
const scoreVelocity = velocities.behavioral_score;
|
|
144
|
+
const currentScore = metrics.behavioral_score;
|
|
145
|
+
if (scoreVelocity !== undefined &&
|
|
146
|
+
currentScore !== undefined &&
|
|
147
|
+
this.config.predictiveBlockingSeconds > 0) {
|
|
148
|
+
predictedScore = currentScore + scoreVelocity * this.config.predictiveBlockingSeconds;
|
|
149
|
+
predictedScore = Math.max(0, Math.min(100, predictedScore));
|
|
150
|
+
}
|
|
151
|
+
return { velocities, accelerations, flags, predictedScore };
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Compute 1st and 2nd derivatives from a metric's history using finite differences.
|
|
155
|
+
*/
|
|
156
|
+
computeDerivatives(history) {
|
|
157
|
+
if (history.length < 2) {
|
|
158
|
+
return { velocity: 0, acceleration: 0 };
|
|
159
|
+
}
|
|
160
|
+
const n = history.length;
|
|
161
|
+
// 1st derivative (velocity) = change in smoothed value / change in time
|
|
162
|
+
const dt1 = (history[n - 1].timestamp - history[n - 2].timestamp) / 1000; // seconds
|
|
163
|
+
if (dt1 === 0)
|
|
164
|
+
return { velocity: 0, acceleration: 0 };
|
|
165
|
+
const velocity = (history[n - 1].smoothedValue - history[n - 2].smoothedValue) / dt1;
|
|
166
|
+
// 2nd derivative (acceleration) — needs 3+ points
|
|
167
|
+
if (history.length < 3) {
|
|
168
|
+
return { velocity, acceleration: 0 };
|
|
169
|
+
}
|
|
170
|
+
const dt2 = (history[n - 1].timestamp - history[n - 3].timestamp) / 1000 / 2; // average timestep
|
|
171
|
+
if (dt2 === 0)
|
|
172
|
+
return { velocity, acceleration: 0 };
|
|
173
|
+
const acceleration = (history[n - 1].smoothedValue - 2 * history[n - 2].smoothedValue + history[n - 3].smoothedValue) /
|
|
174
|
+
(dt2 * dt2);
|
|
175
|
+
return { velocity, acceleration };
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get the current derivative state for an agent (for dashboard/monitoring).
|
|
179
|
+
*/
|
|
180
|
+
getState(agentId) {
|
|
181
|
+
const state = this.states.get(agentId);
|
|
182
|
+
if (!state)
|
|
183
|
+
return null;
|
|
184
|
+
const velocities = {};
|
|
185
|
+
const accelerations = {};
|
|
186
|
+
for (const [metric, history] of state.history) {
|
|
187
|
+
const d = this.computeDerivatives(history);
|
|
188
|
+
velocities[metric] = d.velocity;
|
|
189
|
+
accelerations[metric] = d.acceleration;
|
|
190
|
+
}
|
|
191
|
+
return { velocities, accelerations, flags: [], predictedScore: null };
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Clear state for an agent (on session reset).
|
|
195
|
+
*/
|
|
196
|
+
clearAgent(agentId) {
|
|
197
|
+
this.states.delete(agentId);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Clear all state.
|
|
201
|
+
*/
|
|
202
|
+
clear() {
|
|
203
|
+
this.states.clear();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
exports.DerivativeMonitor = DerivativeMonitor;
|
|
207
|
+
//# sourceMappingURL=derivative-monitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derivative-monitor.js","sourceRoot":"","sources":["../src/derivative-monitor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ export { AgentGateway, createGateway } from './gateway';
|
|
|
2
2
|
export { StationClient } from './station-client';
|
|
3
3
|
export { ActionRegistry } from './action-registry';
|
|
4
4
|
export { BehaviorTracker } from './behavior-tracker';
|
|
5
|
+
export { DerivativeMonitor } from './derivative-monitor';
|
|
5
6
|
export { MLBehaviorAnalyzer, createMLAnalyzer } from './ml-analyzer';
|
|
6
|
-
export type { GatewayConfig, ActionDefinition, ParameterDefinition, ActionHandler, AgentContext, ActionResult, PublicActionInfo, DiscoveryPayload, GatewayRequest, BehaviorConfig, BehaviorEvent, BehaviorFlag, SessionStats, AgentSession } from './types';
|
|
7
|
+
export type { GatewayConfig, ActionDefinition, ParameterDefinition, ActionHandler, AgentContext, ActionResult, PublicActionInfo, DiscoveryPayload, GatewayRequest, BehaviorConfig, BehaviorEvent, BehaviorFlag, SessionStats, AgentSession, DerivativeConfig, DerivativeResult, DerivativeState, MetricSnapshot } from './types';
|
|
7
8
|
export type { MLAnalyzerConfig, MLThreat, MLThreatType, MLAnalysisResult } from './ml-analyzer';
|
|
8
9
|
//# 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":"AAOA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAErE,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAErE,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EAEZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,gBAAgB,EACjB,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// The gateway verifies the certificate, checks the agent's reputation score,
|
|
7
7
|
// monitors real-time behavior, and executes the requested action if trusted.
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.createMLAnalyzer = exports.MLBehaviorAnalyzer = exports.BehaviorTracker = exports.ActionRegistry = exports.StationClient = exports.createGateway = exports.AgentGateway = void 0;
|
|
9
|
+
exports.createMLAnalyzer = exports.MLBehaviorAnalyzer = exports.DerivativeMonitor = exports.BehaviorTracker = exports.ActionRegistry = exports.StationClient = exports.createGateway = exports.AgentGateway = void 0;
|
|
10
10
|
var gateway_1 = require("./gateway");
|
|
11
11
|
Object.defineProperty(exports, "AgentGateway", { enumerable: true, get: function () { return gateway_1.AgentGateway; } });
|
|
12
12
|
Object.defineProperty(exports, "createGateway", { enumerable: true, get: function () { return gateway_1.createGateway; } });
|
|
@@ -16,6 +16,8 @@ var action_registry_1 = require("./action-registry");
|
|
|
16
16
|
Object.defineProperty(exports, "ActionRegistry", { enumerable: true, get: function () { return action_registry_1.ActionRegistry; } });
|
|
17
17
|
var behavior_tracker_1 = require("./behavior-tracker");
|
|
18
18
|
Object.defineProperty(exports, "BehaviorTracker", { enumerable: true, get: function () { return behavior_tracker_1.BehaviorTracker; } });
|
|
19
|
+
var derivative_monitor_1 = require("./derivative-monitor");
|
|
20
|
+
Object.defineProperty(exports, "DerivativeMonitor", { enumerable: true, get: function () { return derivative_monitor_1.DerivativeMonitor; } });
|
|
19
21
|
var ml_analyzer_1 = require("./ml-analyzer");
|
|
20
22
|
Object.defineProperty(exports, "MLBehaviorAnalyzer", { enumerable: true, get: function () { return ml_analyzer_1.MLBehaviorAnalyzer; } });
|
|
21
23
|
Object.defineProperty(exports, "createMLAnalyzer", { enumerable: true, get: function () { return ml_analyzer_1.createMLAnalyzer; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iEAAiE;AACjE,EAAE;AACF,+EAA+E;AAC/E,qFAAqF;AACrF,6EAA6E;AAC7E,6EAA6E;;;AAE7E,qCAAwD;AAA/C,uGAAA,YAAY,OAAA;AAAE,wGAAA,aAAa,OAAA;AACpC,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,6CAAqE;AAA5D,iHAAA,kBAAkB,OAAA;AAAE,+GAAA,gBAAgB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iEAAiE;AACjE,EAAE;AACF,+EAA+E;AAC/E,qFAAqF;AACrF,6EAA6E;AAC7E,6EAA6E;;;AAE7E,qCAAwD;AAA/C,uGAAA,YAAY,OAAA;AAAE,wGAAA,aAAa,OAAA;AACpC,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,6CAAqE;AAA5D,iHAAA,kBAAkB,OAAA;AAAE,+GAAA,gBAAgB,OAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -35,6 +35,8 @@ export interface BehaviorConfig {
|
|
|
35
35
|
blockThreshold?: number;
|
|
36
36
|
/** Callback when suspicious behavior is detected */
|
|
37
37
|
onSuspiciousActivity?: (event: BehaviorEvent) => void;
|
|
38
|
+
/** Derivative-based behavioral analysis configuration (velocity, acceleration, predictive blocking) */
|
|
39
|
+
derivatives?: DerivativeConfig;
|
|
38
40
|
}
|
|
39
41
|
export interface ActionDefinition {
|
|
40
42
|
/** Human-readable description of what this action does */
|
|
@@ -122,7 +124,7 @@ export interface GatewayRequest extends Request {
|
|
|
122
124
|
/** Behavioral flags detected in this session */
|
|
123
125
|
behaviorFlags?: BehaviorFlag[];
|
|
124
126
|
}
|
|
125
|
-
export type BehaviorFlag = 'rapid_fire' | 'high_failure_rate' | 'action_enumeration' | 'repeated_action' | 'scope_violation' | 'session_anomaly' | 'burst_detected';
|
|
127
|
+
export type BehaviorFlag = 'rapid_fire' | 'high_failure_rate' | 'action_enumeration' | 'repeated_action' | 'scope_violation' | 'session_anomaly' | 'burst_detected' | 'velocity_spike' | 'accelerating_attack' | 'predictive_breach';
|
|
126
128
|
export interface BehaviorEvent {
|
|
127
129
|
/** The agent ID */
|
|
128
130
|
agentId: string;
|
|
@@ -156,6 +158,12 @@ export interface SessionStats {
|
|
|
156
158
|
scopeViolations: number;
|
|
157
159
|
/** Number of behavioral flags triggered */
|
|
158
160
|
flagsTriggered: BehaviorFlag[];
|
|
161
|
+
/** Derivative velocities (rate of change per metric) — null if derivatives disabled */
|
|
162
|
+
velocities?: Partial<Record<string, number>>;
|
|
163
|
+
/** Derivative accelerations (rate of rate-of-change per metric) — null if derivatives disabled */
|
|
164
|
+
accelerations?: Partial<Record<string, number>>;
|
|
165
|
+
/** Predicted behavioral score in N seconds — null if not enough data */
|
|
166
|
+
predictedScore?: number | null;
|
|
159
167
|
}
|
|
160
168
|
export interface AgentSession {
|
|
161
169
|
/** The agent's internal ID (from certificate sub) */
|
|
@@ -187,4 +195,49 @@ export interface SessionAction {
|
|
|
187
195
|
/** Timestamp */
|
|
188
196
|
timestamp: number;
|
|
189
197
|
}
|
|
198
|
+
/** Configuration for derivative-based behavioral analysis */
|
|
199
|
+
export interface DerivativeConfig {
|
|
200
|
+
/** Enable/disable derivative monitoring (default: true) */
|
|
201
|
+
enabled?: boolean;
|
|
202
|
+
/** Time window for derivative calculations in seconds (default: 180 = 3 min) */
|
|
203
|
+
windowSeconds?: number;
|
|
204
|
+
/** Minimum interval between metric samples in ms (default: 10000 = 10s) */
|
|
205
|
+
sampleIntervalMs?: number;
|
|
206
|
+
/** Maximum number of samples to keep per metric (default: 20) */
|
|
207
|
+
maxSamples?: number;
|
|
208
|
+
/** Exponential smoothing factor (0-1). Higher = less smoothing. (default: 0.3) */
|
|
209
|
+
smoothingFactor?: number;
|
|
210
|
+
/** Velocity thresholds per metric — exceeding triggers velocity_spike flag */
|
|
211
|
+
velocityThresholds?: Partial<Record<string, number>>;
|
|
212
|
+
/** Acceleration thresholds per metric — exceeding triggers accelerating_attack flag */
|
|
213
|
+
accelerationThresholds?: Partial<Record<string, number>>;
|
|
214
|
+
/** Whether to use acceleration for blocking decisions (default: true) */
|
|
215
|
+
useAccelerationBlocking?: boolean;
|
|
216
|
+
/** Seconds to forecast ahead for predictive blocking (default: 30) */
|
|
217
|
+
predictiveBlockingSeconds?: number;
|
|
218
|
+
}
|
|
219
|
+
/** Internal state for derivative tracking per agent */
|
|
220
|
+
export interface DerivativeState {
|
|
221
|
+
/** Metric name → time series history */
|
|
222
|
+
history: Map<string, MetricSnapshot[]>;
|
|
223
|
+
/** Last time we recorded a sample */
|
|
224
|
+
lastSampleTime: number;
|
|
225
|
+
}
|
|
226
|
+
/** A single metric observation at a point in time */
|
|
227
|
+
export interface MetricSnapshot {
|
|
228
|
+
timestamp: number;
|
|
229
|
+
value: number;
|
|
230
|
+
smoothedValue: number;
|
|
231
|
+
}
|
|
232
|
+
/** Result of derivative analysis for a single update */
|
|
233
|
+
export interface DerivativeResult {
|
|
234
|
+
/** Current velocity (1st derivative) per metric */
|
|
235
|
+
velocities: Partial<Record<string, number>>;
|
|
236
|
+
/** Current acceleration (2nd derivative) per metric */
|
|
237
|
+
accelerations: Partial<Record<string, number>>;
|
|
238
|
+
/** Derivative-specific flags triggered */
|
|
239
|
+
flags: string[];
|
|
240
|
+
/** Predicted behavioral score in N seconds (null if not enough data) */
|
|
241
|
+
predictedScore: number | null;
|
|
242
|
+
}
|
|
190
243
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAItD,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IAEnB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAElB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAC;IAEtB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE1C,uFAAuF;IACvF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,kHAAkH;IAClH,EAAE,CAAC,EAAE,gBAAgB,CAAC;CACvB;AAID,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,iEAAiE;IACjE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,sFAAsF;IACtF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,4FAA4F;IAC5F,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAItD,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IAEnB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAElB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAC;IAEtB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAE1C,uFAAuF;IACvF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,kHAAkH;IAClH,EAAE,CAAC,EAAE,gBAAgB,CAAC;CACvB;AAID,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,iEAAiE;IACjE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,sFAAsF;IACtF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC,4FAA4F;IAC5F,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oDAAoD;IACpD,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAEtD,uGAAuG;IACvG,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAID,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IAEpB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAEhD,gDAAgD;IAChD,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,qBAAqB;IACrB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAE3D,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAElB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,YAAY,KAChB,OAAO,CAAC,OAAO,CAAC,CAAC;AAItB,MAAM,WAAW,YAAY;IAC3B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAEhB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IAEnB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IAEpB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IAEd,qDAAqD;IACrD,gBAAgB,EAAE,OAAO,CAAC;IAE1B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAID,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wEAAwE;AACxE,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;CAChC;AAID,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,qBAAqB,GACrB,mBAAmB,CAAC;AAExB,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,uBAAuB,EAAE,MAAM,CAAC;IAChC,gDAAgD;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,uFAAuF;IACvF,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,kGAAkG;IAClG,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,qCAAqC;IACrC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACzB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAErD,uFAAuF;IACvF,sBAAsB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzD,yEAAyE;IACzE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,sEAAsE;IACtE,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACvC,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5C,uDAAuD;IACvD,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,0CAA0C;IAC1C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wEAAwE;IACxE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-trust/gateway",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Express middleware that lets trusted AI agents interact with your website. Verifies cryptographic certificates, enforces scope manifests, checks reputation scores, reports behavior, and detects prompt injection attacks with ML.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"README.md"
|
|
10
|
+
],
|
|
7
11
|
"scripts": {
|
|
8
12
|
"build": "tsc",
|
|
9
13
|
"dev": "tsc --watch"
|