@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 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,EACb,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,MAAM,CAEZ;IACF,OAAO,CAAC,eAAe,CAAiC;gBAE5C,MAAM,GAAE,cAAmB;IAiBvC;;;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;IAuHrE;;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;IAInC;;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;IAOf,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;IAiBvB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,eAAe;CAQxB"}
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"}
@@ -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
- return {
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":"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"}
@@ -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
@@ -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,EACb,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,gBAAgB,EACjB,MAAM,eAAe,CAAC"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@agent-trust/gateway",
3
- "version": "1.2.0",
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"