@agent-trust/gateway 1.0.0 → 1.1.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/dist/gateway.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Router } from 'express';
2
2
  import { BehaviorTracker } from './behavior-tracker';
3
+ import { MLBehaviorAnalyzer } from './ml-analyzer';
3
4
  import { GatewayConfig } from './types';
4
5
  /**
5
6
  * AgentGateway — the core class that website owners instantiate.
@@ -14,12 +15,17 @@ export declare class AgentGateway {
14
15
  private stationClient;
15
16
  private actionRegistry;
16
17
  private behaviorTracker;
18
+ private mlAnalyzer;
17
19
  private config;
18
20
  constructor(config: GatewayConfig);
19
21
  /**
20
22
  * Get the behavior tracker instance (for monitoring/dashboard).
21
23
  */
22
24
  getBehaviorTracker(): BehaviorTracker;
25
+ /**
26
+ * Get the ML analyzer instance (for monitoring/status checks).
27
+ */
28
+ getMLAnalyzer(): MLBehaviorAnalyzer;
23
29
  /**
24
30
  * Create and return the Express router for this gateway.
25
31
  * Mount it on any path: app.use('/agent-gateway', gateway.router())
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,aAAa,EAId,MAAM,SAAS,CAAC;AAEjB;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa;IAWjC;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;;OAGG;IACH,MAAM,IAAI,MAAM;IA6MhB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,YAAY,CAEjE"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EACL,aAAa,EAId,MAAM,SAAS,CAAC;AAEjB;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa;IAiBjC;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,aAAa,IAAI,kBAAkB;IAInC;;;OAGG;IACH,MAAM,IAAI,MAAM;IAkQhB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,YAAY,CAEjE"}
package/dist/gateway.js CHANGED
@@ -6,6 +6,7 @@ const express_1 = require("express");
6
6
  const station_client_1 = require("./station-client");
7
7
  const action_registry_1 = require("./action-registry");
8
8
  const behavior_tracker_1 = require("./behavior-tracker");
9
+ const ml_analyzer_1 = require("./ml-analyzer");
9
10
  const certificate_1 = require("./middleware/certificate");
10
11
  /**
11
12
  * AgentGateway — the core class that website owners instantiate.
@@ -23,6 +24,11 @@ class AgentGateway {
23
24
  );
24
25
  this.actionRegistry = new action_registry_1.ActionRegistry(config.actions);
25
26
  this.behaviorTracker = new behavior_tracker_1.BehaviorTracker(config.behavior ?? {});
27
+ this.mlAnalyzer = new ml_analyzer_1.MLBehaviorAnalyzer(config.ml ?? {});
28
+ // Initialize ML models in the background (non-blocking)
29
+ this.mlAnalyzer.initialize().catch(() => {
30
+ // Silently handled — ML is optional
31
+ });
26
32
  }
27
33
  /**
28
34
  * Get the behavior tracker instance (for monitoring/dashboard).
@@ -30,6 +36,12 @@ class AgentGateway {
30
36
  getBehaviorTracker() {
31
37
  return this.behaviorTracker;
32
38
  }
39
+ /**
40
+ * Get the ML analyzer instance (for monitoring/status checks).
41
+ */
42
+ getMLAnalyzer() {
43
+ return this.mlAnalyzer;
44
+ }
33
45
  /**
34
46
  * Create and return the Express router for this gateway.
35
47
  * Mount it on any path: app.use('/agent-gateway', gateway.router())
@@ -47,7 +59,11 @@ class AgentGateway {
47
59
  gatewayId: this.config.gatewayId,
48
60
  actions: this.actionRegistry.getDiscoveryPayload(),
49
61
  certificateIssuer: 'agent-trust-station',
50
- version: '1.0.0'
62
+ version: '1.0.0',
63
+ security: {
64
+ behavioralTracking: true,
65
+ mlAnalysis: this.mlAnalyzer.isAvailable()
66
+ }
51
67
  };
52
68
  res.json(payload);
53
69
  });
@@ -131,6 +147,45 @@ class AgentGateway {
131
147
  });
132
148
  return;
133
149
  }
150
+ // ─── ML Analysis: Check params for threats (prompt injection, malicious URLs) ───
151
+ if (this.mlAnalyzer.isAvailable()) {
152
+ const mlResult = await this.mlAnalyzer.analyzeRequest(params, certificate.sub);
153
+ if (!mlResult.safe) {
154
+ // Record the ML-detected threat as a behavioral event
155
+ this.behaviorTracker.recordAction(certificate.sub, certificate.agentExternalId, actionName, params, false, false);
156
+ // Report to station
157
+ this.stationClient.submitReport({
158
+ agentId: certificate.sub,
159
+ gatewayId: this.config.gatewayId,
160
+ certificateJti: certificate.jti,
161
+ actions: [{
162
+ actionType: actionName,
163
+ outcome: 'failure',
164
+ metadata: {
165
+ reason: 'ml_threat_detected',
166
+ threats: mlResult.threats,
167
+ analysisTimeMs: mlResult.analysisTimeMs,
168
+ params
169
+ },
170
+ performedAt: new Date().toISOString()
171
+ }]
172
+ }).catch(err => {
173
+ console.error(`[@agent-trust/gateway] Failed to submit ML threat report:`, err.message);
174
+ });
175
+ res.status(403).json({
176
+ success: false,
177
+ error: 'Request blocked: Threat detected in parameters',
178
+ threats: mlResult.threats.map(t => ({
179
+ type: t.type,
180
+ field: t.field,
181
+ confidence: t.confidence
182
+ })),
183
+ analysisTimeMs: mlResult.analysisTimeMs,
184
+ hint: 'Your request parameters contain content flagged as potentially malicious.'
185
+ });
186
+ return;
187
+ }
188
+ }
134
189
  // Build agent context from certificate
135
190
  const agentContext = {
136
191
  agentId: certificate.sub,
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,5 +2,7 @@ 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 { MLBehaviorAnalyzer, createMLAnalyzer } from './ml-analyzer';
5
6
  export type { GatewayConfig, ActionDefinition, ParameterDefinition, ActionHandler, AgentContext, ActionResult, PublicActionInfo, DiscoveryPayload, GatewayRequest, BehaviorConfig, BehaviorEvent, BehaviorFlag, SessionStats, AgentSession } from './types';
7
+ export type { MLAnalyzerConfig, MLThreat, MLThreatType, MLAnalysisResult } from './ml-analyzer';
6
8
  //# 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;AAErD,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"}
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"}
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.BehaviorTracker = exports.ActionRegistry = exports.StationClient = exports.createGateway = exports.AgentGateway = void 0;
9
+ exports.createMLAnalyzer = exports.MLBehaviorAnalyzer = 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,4 +16,7 @@ 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 ml_analyzer_1 = require("./ml-analyzer");
20
+ Object.defineProperty(exports, "MLBehaviorAnalyzer", { enumerable: true, get: function () { return ml_analyzer_1.MLBehaviorAnalyzer; } });
21
+ Object.defineProperty(exports, "createMLAnalyzer", { enumerable: true, get: function () { return ml_analyzer_1.createMLAnalyzer; } });
19
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";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"}
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"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * ML-Enhanced Behavioral Analysis
3
+ *
4
+ * Uses HuggingFace Transformers.js (ONNX Runtime) to run cybersecurity
5
+ * models directly in Node.js for advanced threat detection:
6
+ *
7
+ * 1. Prompt Injection Detection — catches jailbreak attempts in agent params
8
+ *
9
+ * This module is OPTIONAL. If @huggingface/transformers is not installed,
10
+ * the gateway works fine with rule-based detection only.
11
+ *
12
+ * Default model: protectai/deberta-v3-base-prompt-injection-v2 (157K+ downloads)
13
+ * — DeBERTa-v3-base fine-tuned on prompt injection datasets
14
+ * — Has proper onnx/ directory for Transformers.js compatibility
15
+ *
16
+ * Install: npm install @huggingface/transformers
17
+ */
18
+ export type MLThreatType = 'prompt_injection' | 'malicious_url';
19
+ export interface MLThreat {
20
+ type: MLThreatType;
21
+ field: string;
22
+ confidence: number;
23
+ value: string;
24
+ }
25
+ export interface MLAnalysisResult {
26
+ safe: boolean;
27
+ threats: MLThreat[];
28
+ analysisTimeMs: number;
29
+ }
30
+ export interface MLAnalyzerConfig {
31
+ /** Enable/disable ML analysis (default: true if @huggingface/transformers is installed) */
32
+ enabled?: boolean;
33
+ /** Confidence threshold for prompt injection detection (0-1, default: 0.85) */
34
+ injectionThreshold?: number;
35
+ /** Confidence threshold for malicious URL detection (0-1, default: 0.80) */
36
+ urlThreshold?: number;
37
+ /** Minimum text length to analyze for injection (default: 10) */
38
+ minTextLength?: number;
39
+ /**
40
+ * Custom prompt injection model ID.
41
+ * Must have onnx/ directory on HuggingFace for Transformers.js compatibility.
42
+ * Default: protectai/deberta-v3-base-prompt-injection-v2
43
+ */
44
+ injectionModel?: string;
45
+ /**
46
+ * Custom URL detection model ID (optional).
47
+ * Must have onnx/ directory on HuggingFace for Transformers.js compatibility.
48
+ * Default: none (URL detection uses pattern matching only)
49
+ */
50
+ urlModel?: string;
51
+ /** Callback when an ML threat is detected */
52
+ onThreatDetected?: (threat: MLThreat, agentId: string) => void;
53
+ }
54
+ /**
55
+ * MLBehaviorAnalyzer — optional ML layer for the gateway.
56
+ *
57
+ * Loads HuggingFace models on first use and caches them.
58
+ * Models run locally via ONNX Runtime — no API calls to HuggingFace after download.
59
+ *
60
+ * Usage:
61
+ * const ml = new MLBehaviorAnalyzer({ injectionThreshold: 0.9 });
62
+ * await ml.initialize(); // Loads models (first time downloads them)
63
+ * const result = await ml.analyzeRequest(params, agentId);
64
+ * if (!result.safe) { // block or flag the request }
65
+ */
66
+ export declare class MLBehaviorAnalyzer {
67
+ private config;
68
+ private injectionDetector;
69
+ private urlDetector;
70
+ private initialized;
71
+ private initPromise;
72
+ private available;
73
+ constructor(config?: MLAnalyzerConfig);
74
+ /**
75
+ * Initialize the ML models. Call this once at startup.
76
+ * Models are downloaded on first run and cached locally.
77
+ * If @huggingface/transformers is not installed, this is a no-op.
78
+ */
79
+ initialize(): Promise<boolean>;
80
+ private _doInitialize;
81
+ /**
82
+ * Check if ML analysis is available and active.
83
+ */
84
+ isAvailable(): boolean;
85
+ /**
86
+ * Analyze an agent's request parameters for threats.
87
+ *
88
+ * Checks:
89
+ * 1. All string params for prompt injection attempts
90
+ * 2. All URL-like params for phishing/malware (if URL model is loaded)
91
+ *
92
+ * Returns { safe: true } if no threats detected or ML is unavailable.
93
+ */
94
+ analyzeRequest(params: Record<string, unknown>, agentId?: string): Promise<MLAnalysisResult>;
95
+ /**
96
+ * Recursively extract string values from nested objects/arrays.
97
+ */
98
+ private extractStrings;
99
+ /**
100
+ * Check if a string looks like a URL.
101
+ */
102
+ private isUrlLike;
103
+ /**
104
+ * Extract domain from a URL string.
105
+ */
106
+ private extractDomain;
107
+ }
108
+ /**
109
+ * Factory function — creates an MLBehaviorAnalyzer instance.
110
+ *
111
+ * Example:
112
+ * const ml = createMLAnalyzer({
113
+ * injectionThreshold: 0.9,
114
+ * onThreatDetected: (threat, agentId) => {
115
+ * console.warn(`ML threat from ${agentId}:`, threat);
116
+ * }
117
+ * });
118
+ * await ml.initialize();
119
+ */
120
+ export declare function createMLAnalyzer(config?: MLAnalyzerConfig): MLBehaviorAnalyzer;
121
+ //# sourceMappingURL=ml-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ml-analyzer.d.ts","sourceRoot":"","sources":["../src/ml-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAEhE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChE;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA8H;IAC5I,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,GAAE,gBAAqB;IAYzC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;YAYtB,aAAa;IA4D3B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;;OAQG;IACG,cAAc,CAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC;IA0F5B;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,aAAa;CAQtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,kBAAkB,CAE9E"}
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+ /**
3
+ * ML-Enhanced Behavioral Analysis
4
+ *
5
+ * Uses HuggingFace Transformers.js (ONNX Runtime) to run cybersecurity
6
+ * models directly in Node.js for advanced threat detection:
7
+ *
8
+ * 1. Prompt Injection Detection — catches jailbreak attempts in agent params
9
+ *
10
+ * This module is OPTIONAL. If @huggingface/transformers is not installed,
11
+ * the gateway works fine with rule-based detection only.
12
+ *
13
+ * Default model: protectai/deberta-v3-base-prompt-injection-v2 (157K+ downloads)
14
+ * — DeBERTa-v3-base fine-tuned on prompt injection datasets
15
+ * — Has proper onnx/ directory for Transformers.js compatibility
16
+ *
17
+ * Install: npm install @huggingface/transformers
18
+ */
19
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ var desc = Object.getOwnPropertyDescriptor(m, k);
22
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
23
+ desc = { enumerable: true, get: function() { return m[k]; } };
24
+ }
25
+ Object.defineProperty(o, k2, desc);
26
+ }) : (function(o, m, k, k2) {
27
+ if (k2 === undefined) k2 = k;
28
+ o[k2] = m[k];
29
+ }));
30
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
31
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
32
+ }) : function(o, v) {
33
+ o["default"] = v;
34
+ });
35
+ var __importStar = (this && this.__importStar) || (function () {
36
+ var ownKeys = function(o) {
37
+ ownKeys = Object.getOwnPropertyNames || function (o) {
38
+ var ar = [];
39
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
40
+ return ar;
41
+ };
42
+ return ownKeys(o);
43
+ };
44
+ return function (mod) {
45
+ if (mod && mod.__esModule) return mod;
46
+ var result = {};
47
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
48
+ __setModuleDefault(result, mod);
49
+ return result;
50
+ };
51
+ })();
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.MLBehaviorAnalyzer = void 0;
54
+ exports.createMLAnalyzer = createMLAnalyzer;
55
+ /**
56
+ * MLBehaviorAnalyzer — optional ML layer for the gateway.
57
+ *
58
+ * Loads HuggingFace models on first use and caches them.
59
+ * Models run locally via ONNX Runtime — no API calls to HuggingFace after download.
60
+ *
61
+ * Usage:
62
+ * const ml = new MLBehaviorAnalyzer({ injectionThreshold: 0.9 });
63
+ * await ml.initialize(); // Loads models (first time downloads them)
64
+ * const result = await ml.analyzeRequest(params, agentId);
65
+ * if (!result.safe) { // block or flag the request }
66
+ */
67
+ class MLBehaviorAnalyzer {
68
+ constructor(config = {}) {
69
+ this.injectionDetector = null;
70
+ this.urlDetector = null;
71
+ this.initialized = false;
72
+ this.initPromise = null;
73
+ this.available = false;
74
+ this.config = {
75
+ enabled: config.enabled ?? true,
76
+ injectionThreshold: config.injectionThreshold ?? 0.85,
77
+ urlThreshold: config.urlThreshold ?? 0.80,
78
+ minTextLength: config.minTextLength ?? 10,
79
+ injectionModel: config.injectionModel ?? 'protectai/deberta-v3-base-prompt-injection-v2',
80
+ urlModel: config.urlModel,
81
+ onThreatDetected: config.onThreatDetected
82
+ };
83
+ }
84
+ /**
85
+ * Initialize the ML models. Call this once at startup.
86
+ * Models are downloaded on first run and cached locally.
87
+ * If @huggingface/transformers is not installed, this is a no-op.
88
+ */
89
+ async initialize() {
90
+ if (this.initialized)
91
+ return this.available;
92
+ if (this.initPromise) {
93
+ await this.initPromise;
94
+ return this.available;
95
+ }
96
+ this.initPromise = this._doInitialize();
97
+ await this.initPromise;
98
+ return this.available;
99
+ }
100
+ async _doInitialize() {
101
+ if (!this.config.enabled) {
102
+ this.initialized = true;
103
+ this.available = false;
104
+ return;
105
+ }
106
+ try {
107
+ // Dynamic import — if the package isn't installed, this throws
108
+ // Use string variable to avoid TypeScript module resolution error
109
+ const moduleName = '@huggingface/transformers';
110
+ const transformers = await Promise.resolve(`${moduleName}`).then(s => __importStar(require(s)));
111
+ const pipeline = transformers.pipeline;
112
+ console.log('[@agent-trust/gateway] Loading ML models for behavioral analysis...');
113
+ // Load prompt injection detector
114
+ // protectai/deberta-v3-base-prompt-injection-v2 has onnx/ directory
115
+ const startInjection = Date.now();
116
+ this.injectionDetector = await pipeline('text-classification', this.config.injectionModel);
117
+ console.log(`[@agent-trust/gateway] Prompt injection model loaded (${Date.now() - startInjection}ms)`);
118
+ // Optionally load URL detector if a model is specified
119
+ if (this.config.urlModel) {
120
+ try {
121
+ const startUrl = Date.now();
122
+ this.urlDetector = await pipeline('text-classification', this.config.urlModel);
123
+ console.log(`[@agent-trust/gateway] URL detection model loaded (${Date.now() - startUrl}ms)`);
124
+ }
125
+ catch (urlErr) {
126
+ const urlMsg = urlErr instanceof Error ? urlErr.message : String(urlErr);
127
+ console.warn(`[@agent-trust/gateway] URL model failed to load (continuing without it):`, urlMsg);
128
+ }
129
+ }
130
+ this.available = true;
131
+ console.log('[@agent-trust/gateway] ML behavioral analysis ACTIVE');
132
+ }
133
+ catch (error) {
134
+ const message = error instanceof Error ? error.message : String(error);
135
+ if (message.includes('Cannot find module') || message.includes('MODULE_NOT_FOUND')) {
136
+ console.log('[@agent-trust/gateway] ML analysis disabled: @huggingface/transformers not installed. ' +
137
+ 'Install it with: npm install @huggingface/transformers');
138
+ }
139
+ else {
140
+ console.warn('[@agent-trust/gateway] ML analysis disabled due to error:', message);
141
+ }
142
+ this.available = false;
143
+ }
144
+ this.initialized = true;
145
+ }
146
+ /**
147
+ * Check if ML analysis is available and active.
148
+ */
149
+ isAvailable() {
150
+ return this.available && this.initialized;
151
+ }
152
+ /**
153
+ * Analyze an agent's request parameters for threats.
154
+ *
155
+ * Checks:
156
+ * 1. All string params for prompt injection attempts
157
+ * 2. All URL-like params for phishing/malware (if URL model is loaded)
158
+ *
159
+ * Returns { safe: true } if no threats detected or ML is unavailable.
160
+ */
161
+ async analyzeRequest(params, agentId) {
162
+ const startTime = Date.now();
163
+ // If ML isn't available, return safe (rule-based checks still apply)
164
+ if (!this.available || !this.initialized) {
165
+ return { safe: true, threats: [], analysisTimeMs: 0 };
166
+ }
167
+ const threats = [];
168
+ // Recursively extract string values from params
169
+ const stringValues = this.extractStrings(params);
170
+ for (const { key, value } of stringValues) {
171
+ // Check for prompt injection
172
+ if (value.length >= this.config.minTextLength && this.injectionDetector) {
173
+ try {
174
+ const result = await this.injectionDetector(value);
175
+ // protectai model uses "INJECTION" label
176
+ // Other models may use "LABEL_1", "1", or "jailbreak"
177
+ const injectionResult = result.find(r => r.label.toUpperCase() === 'INJECTION' ||
178
+ r.label.toLowerCase().includes('injection') ||
179
+ r.label.toLowerCase().includes('jailbreak') ||
180
+ r.label === 'LABEL_1' ||
181
+ r.label === '1');
182
+ if (injectionResult && injectionResult.score >= this.config.injectionThreshold) {
183
+ const threat = {
184
+ type: 'prompt_injection',
185
+ field: key,
186
+ confidence: Math.round(injectionResult.score * 100) / 100,
187
+ value: value.substring(0, 100) + (value.length > 100 ? '...' : '')
188
+ };
189
+ threats.push(threat);
190
+ if (this.config.onThreatDetected && agentId) {
191
+ this.config.onThreatDetected(threat, agentId);
192
+ }
193
+ }
194
+ }
195
+ catch (e) {
196
+ // Model inference failed for this value — skip it
197
+ console.warn('[@agent-trust/gateway] ML injection check failed for field:', key);
198
+ }
199
+ }
200
+ // Check for malicious URLs (only if URL model is loaded)
201
+ if (this.isUrlLike(value) && this.urlDetector) {
202
+ try {
203
+ const domain = this.extractDomain(value);
204
+ if (domain) {
205
+ const result = await this.urlDetector(domain);
206
+ const malwareResult = result.find(r => r.label.toLowerCase().includes('malware') ||
207
+ r.label.toLowerCase().includes('malicious') ||
208
+ r.label.toLowerCase().includes('phishing') ||
209
+ r.label === 'LABEL_1' ||
210
+ r.label === '1');
211
+ if (malwareResult && malwareResult.score >= this.config.urlThreshold) {
212
+ const threat = {
213
+ type: 'malicious_url',
214
+ field: key,
215
+ confidence: Math.round(malwareResult.score * 100) / 100,
216
+ value: value.substring(0, 200)
217
+ };
218
+ threats.push(threat);
219
+ if (this.config.onThreatDetected && agentId) {
220
+ this.config.onThreatDetected(threat, agentId);
221
+ }
222
+ }
223
+ }
224
+ }
225
+ catch (e) {
226
+ console.warn('[@agent-trust/gateway] ML URL check failed for field:', key);
227
+ }
228
+ }
229
+ }
230
+ return {
231
+ safe: threats.length === 0,
232
+ threats,
233
+ analysisTimeMs: Date.now() - startTime
234
+ };
235
+ }
236
+ // ─── Helpers ───
237
+ /**
238
+ * Recursively extract string values from nested objects/arrays.
239
+ */
240
+ extractStrings(obj, prefix = '') {
241
+ const result = [];
242
+ for (const [key, value] of Object.entries(obj)) {
243
+ const fullKey = prefix ? `${prefix}.${key}` : key;
244
+ if (typeof value === 'string') {
245
+ result.push({ key: fullKey, value });
246
+ }
247
+ else if (Array.isArray(value)) {
248
+ value.forEach((item, i) => {
249
+ if (typeof item === 'string') {
250
+ result.push({ key: `${fullKey}[${i}]`, value: item });
251
+ }
252
+ else if (typeof item === 'object' && item !== null) {
253
+ result.push(...this.extractStrings(item, `${fullKey}[${i}]`));
254
+ }
255
+ });
256
+ }
257
+ else if (typeof value === 'object' && value !== null) {
258
+ result.push(...this.extractStrings(value, fullKey));
259
+ }
260
+ }
261
+ return result;
262
+ }
263
+ /**
264
+ * Check if a string looks like a URL.
265
+ */
266
+ isUrlLike(value) {
267
+ return /^https?:\/\//i.test(value) || /^www\./i.test(value);
268
+ }
269
+ /**
270
+ * Extract domain from a URL string.
271
+ */
272
+ extractDomain(url) {
273
+ try {
274
+ const parsed = new URL(url.startsWith('www.') ? `https://${url}` : url);
275
+ return parsed.hostname;
276
+ }
277
+ catch {
278
+ return null;
279
+ }
280
+ }
281
+ }
282
+ exports.MLBehaviorAnalyzer = MLBehaviorAnalyzer;
283
+ /**
284
+ * Factory function — creates an MLBehaviorAnalyzer instance.
285
+ *
286
+ * Example:
287
+ * const ml = createMLAnalyzer({
288
+ * injectionThreshold: 0.9,
289
+ * onThreatDetected: (threat, agentId) => {
290
+ * console.warn(`ML threat from ${agentId}:`, threat);
291
+ * }
292
+ * });
293
+ * await ml.initialize();
294
+ */
295
+ function createMLAnalyzer(config) {
296
+ return new MLBehaviorAnalyzer(config);
297
+ }
298
+ //# sourceMappingURL=ml-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ml-analyzer.js","sourceRoot":"","sources":["../src/ml-analyzer.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Request } from 'express';
2
+ import type { MLAnalyzerConfig } from './ml-analyzer';
2
3
  export interface GatewayConfig {
3
4
  /** URL of the Agent Trust Station (e.g., "https://station.example.com") */
4
5
  stationUrl: string;
@@ -12,6 +13,8 @@ export interface GatewayConfig {
12
13
  publicKeyRefreshInterval?: number;
13
14
  /** Behavioral tracking configuration (optional — enabled by default) */
14
15
  behavior?: BehaviorConfig;
16
+ /** ML-based threat detection configuration (optional — auto-enabled if @huggingface/transformers is installed) */
17
+ ml?: MLAnalyzerConfig;
15
18
  }
16
19
  export interface BehaviorConfig {
17
20
  /** Enable/disable behavioral tracking (default: true) */
@@ -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,7 +1,7 @@
1
1
  {
2
2
  "name": "@agent-trust/gateway",
3
- "version": "1.0.0",
4
- "description": "Express middleware that lets trusted AI agents interact with your website. Verifies cryptographic certificates, checks reputation scores, and reports behavior.",
3
+ "version": "1.1.0",
4
+ "description": "Express middleware that lets trusted AI agents interact with your website. Verifies cryptographic certificates, 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
7
  "scripts": {
@@ -19,7 +19,13 @@
19
19
  "certificate",
20
20
  "reputation",
21
21
  "ai-agents",
22
- "agenttrust"
22
+ "agenttrust",
23
+ "prompt-injection",
24
+ "ml",
25
+ "security",
26
+ "behavioral-analysis",
27
+ "huggingface",
28
+ "onnx"
23
29
  ],
24
30
  "author": "AgentTrust",
25
31
  "license": "MIT",
@@ -38,6 +44,9 @@
38
44
  "dependencies": {
39
45
  "jsonwebtoken": "^9.0.2"
40
46
  },
47
+ "optionalDependencies": {
48
+ "@huggingface/transformers": "^3.8.1"
49
+ },
41
50
  "devDependencies": {
42
51
  "@types/express": "^4.17.21",
43
52
  "@types/jsonwebtoken": "^9.0.6",