@claude-flow/aidefence 3.0.0-alpha.1
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/domain/entities/index.d.ts +2 -0
- package/dist/domain/entities/index.d.ts.map +1 -0
- package/dist/domain/entities/index.js +2 -0
- package/dist/domain/entities/index.js.map +1 -0
- package/dist/domain/entities/threat.d.ts +59 -0
- package/dist/domain/entities/threat.d.ts.map +1 -0
- package/dist/domain/entities/threat.js +21 -0
- package/dist/domain/entities/threat.js.map +1 -0
- package/dist/domain/services/index.d.ts +3 -0
- package/dist/domain/services/index.d.ts.map +1 -0
- package/dist/domain/services/index.js +3 -0
- package/dist/domain/services/index.js.map +1 -0
- package/dist/domain/services/threat-detection-service.d.ts +81 -0
- package/dist/domain/services/threat-detection-service.d.ts.map +1 -0
- package/dist/domain/services/threat-detection-service.js +407 -0
- package/dist/domain/services/threat-detection-service.js.map +1 -0
- package/dist/domain/services/threat-learning-service.d.ts +173 -0
- package/dist/domain/services/threat-learning-service.d.ts.map +1 -0
- package/dist/domain/services/threat-learning-service.js +264 -0
- package/dist/domain/services/threat-learning-service.js.map +1 -0
- package/dist/index.d.ts +162 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +188 -0
- package/dist/index.js.map +1 -0
- package/package.json +76 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/aidefence
|
|
3
|
+
*
|
|
4
|
+
* AI Manipulation Defense System with self-learning capabilities.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - 50+ prompt injection patterns
|
|
8
|
+
* - HNSW-indexed threat pattern search (150x-12,500x faster with AgentDB)
|
|
9
|
+
* - ReasoningBank-style pattern learning
|
|
10
|
+
* - Adaptive mitigation with effectiveness tracking
|
|
11
|
+
* - Strange-loop meta-learning integration
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { createAIDefence } from '@claude-flow/aidefence';
|
|
16
|
+
*
|
|
17
|
+
* const aidefence = createAIDefence({ enableLearning: true });
|
|
18
|
+
*
|
|
19
|
+
* // Detect threats
|
|
20
|
+
* const result = await aidefence.detect('Ignore all previous instructions');
|
|
21
|
+
* console.log(result.safe); // false
|
|
22
|
+
*
|
|
23
|
+
* // Search similar patterns (uses HNSW when connected to AgentDB)
|
|
24
|
+
* const similar = await aidefence.searchSimilarThreats('system prompt injection');
|
|
25
|
+
*
|
|
26
|
+
* // Learn from feedback
|
|
27
|
+
* await aidefence.learnFromDetection(input, result, { wasAccurate: true });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export { createThreat } from './domain/entities/threat.js';
|
|
31
|
+
// Domain services
|
|
32
|
+
export { ThreatDetectionService, createThreatDetectionService } from './domain/services/threat-detection-service.js';
|
|
33
|
+
export { ThreatLearningService, createThreatLearningService, InMemoryVectorStore, } from './domain/services/threat-learning-service.js';
|
|
34
|
+
// Import for internal use
|
|
35
|
+
import { createThreatDetectionService } from './domain/services/threat-detection-service.js';
|
|
36
|
+
import { createThreatLearningService } from './domain/services/threat-learning-service.js';
|
|
37
|
+
/**
|
|
38
|
+
* Create an AIDefence instance with optional learning capabilities
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* // Simple usage (detection only)
|
|
43
|
+
* const simple = createAIDefence();
|
|
44
|
+
*
|
|
45
|
+
* // With learning enabled
|
|
46
|
+
* const learning = createAIDefence({ enableLearning: true });
|
|
47
|
+
*
|
|
48
|
+
* // With AgentDB for HNSW search (150x-12,500x faster)
|
|
49
|
+
* import { AgentDB } from 'agentdb';
|
|
50
|
+
* const agentdb = new AgentDB({ path: './data/aidefence' });
|
|
51
|
+
* const fast = createAIDefence({
|
|
52
|
+
* enableLearning: true,
|
|
53
|
+
* vectorStore: agentdb
|
|
54
|
+
* });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export function createAIDefence(config = {}) {
|
|
58
|
+
const detectionService = createThreatDetectionService();
|
|
59
|
+
const learningService = config.enableLearning
|
|
60
|
+
? createThreatLearningService(config.vectorStore)
|
|
61
|
+
: null;
|
|
62
|
+
return {
|
|
63
|
+
async detect(input) {
|
|
64
|
+
const result = detectionService.detect(input);
|
|
65
|
+
// Auto-learn if enabled
|
|
66
|
+
if (learningService && result.threats.length > 0) {
|
|
67
|
+
await learningService.learnFromDetection(input, result);
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
},
|
|
71
|
+
quickScan(input) {
|
|
72
|
+
return detectionService.quickScan(input);
|
|
73
|
+
},
|
|
74
|
+
hasPII(input) {
|
|
75
|
+
return detectionService.detectPII(input);
|
|
76
|
+
},
|
|
77
|
+
async searchSimilarThreats(query, options) {
|
|
78
|
+
if (!learningService) {
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
return learningService.searchSimilarThreats(query, options);
|
|
82
|
+
},
|
|
83
|
+
async learnFromDetection(input, result, feedback) {
|
|
84
|
+
if (!learningService) {
|
|
85
|
+
console.warn('Learning not enabled. Pass { enableLearning: true } to createAIDefence()');
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
await learningService.learnFromDetection(input, result, feedback);
|
|
89
|
+
},
|
|
90
|
+
async recordMitigation(threatType, strategy, success) {
|
|
91
|
+
if (!learningService)
|
|
92
|
+
return;
|
|
93
|
+
await learningService.recordMitigation(threatType, strategy, success);
|
|
94
|
+
},
|
|
95
|
+
async getBestMitigation(threatType) {
|
|
96
|
+
if (!learningService)
|
|
97
|
+
return null;
|
|
98
|
+
return learningService.getBestMitigation(threatType);
|
|
99
|
+
},
|
|
100
|
+
startTrajectory(sessionId, task) {
|
|
101
|
+
learningService?.startTrajectory(sessionId, task);
|
|
102
|
+
},
|
|
103
|
+
async endTrajectory(sessionId, verdict) {
|
|
104
|
+
await learningService?.endTrajectory(sessionId, verdict);
|
|
105
|
+
},
|
|
106
|
+
async getStats() {
|
|
107
|
+
const detectionStats = detectionService.getStats();
|
|
108
|
+
const learningStats = learningService
|
|
109
|
+
? await learningService.getStats()
|
|
110
|
+
: { learnedPatterns: 0, mitigationStrategies: 0, avgEffectiveness: 0 };
|
|
111
|
+
return {
|
|
112
|
+
detectionCount: detectionStats.detectionCount,
|
|
113
|
+
avgDetectionTimeMs: detectionStats.avgDetectionTimeMs,
|
|
114
|
+
learnedPatterns: learningStats.learnedPatterns,
|
|
115
|
+
mitigationStrategies: learningStats.mitigationStrategies,
|
|
116
|
+
avgMitigationEffectiveness: learningStats.avgEffectiveness,
|
|
117
|
+
};
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Singleton instance for convenience
|
|
123
|
+
*/
|
|
124
|
+
let defaultInstance = null;
|
|
125
|
+
/**
|
|
126
|
+
* Get the default AIDefence instance (singleton, learning enabled)
|
|
127
|
+
*/
|
|
128
|
+
export function getAIDefence() {
|
|
129
|
+
if (!defaultInstance) {
|
|
130
|
+
defaultInstance = createAIDefence({ enableLearning: true });
|
|
131
|
+
}
|
|
132
|
+
return defaultInstance;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Convenience function for quick threat check
|
|
136
|
+
*/
|
|
137
|
+
export function isSafe(input) {
|
|
138
|
+
const service = createThreatDetectionService();
|
|
139
|
+
return service.detect(input).safe;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Convenience function for quick threat check with details
|
|
143
|
+
*/
|
|
144
|
+
export function checkThreats(input) {
|
|
145
|
+
const service = createThreatDetectionService();
|
|
146
|
+
return service.detect(input);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Calculate security consensus from multiple agent assessments
|
|
150
|
+
* Uses attention-based weighting for flash attention integration
|
|
151
|
+
*/
|
|
152
|
+
export function calculateSecurityConsensus(assessments) {
|
|
153
|
+
if (assessments.length === 0) {
|
|
154
|
+
return { consensus: 'uncertain', confidence: 0, criticalThreats: [] };
|
|
155
|
+
}
|
|
156
|
+
// Normalize weights
|
|
157
|
+
const totalWeight = assessments.reduce((sum, a) => sum + a.weight, 0);
|
|
158
|
+
const normalized = assessments.map(a => ({
|
|
159
|
+
...a,
|
|
160
|
+
weight: a.weight / totalWeight,
|
|
161
|
+
}));
|
|
162
|
+
// Calculate weighted threat score
|
|
163
|
+
let threatScore = 0;
|
|
164
|
+
const allThreats = [];
|
|
165
|
+
for (const assessment of normalized) {
|
|
166
|
+
if (!assessment.threatAssessment.safe) {
|
|
167
|
+
threatScore += assessment.weight;
|
|
168
|
+
allThreats.push(...assessment.threatAssessment.threats);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Determine consensus
|
|
172
|
+
const criticalThreats = allThreats.filter(t => t.severity === 'critical');
|
|
173
|
+
if (criticalThreats.length > 0) {
|
|
174
|
+
return {
|
|
175
|
+
consensus: 'threat',
|
|
176
|
+
confidence: Math.max(...criticalThreats.map(t => t.confidence)),
|
|
177
|
+
criticalThreats,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
if (threatScore > 0.5) {
|
|
181
|
+
return { consensus: 'threat', confidence: threatScore, criticalThreats: [] };
|
|
182
|
+
}
|
|
183
|
+
if (threatScore < 0.2) {
|
|
184
|
+
return { consensus: 'safe', confidence: 1 - threatScore, criticalThreats: [] };
|
|
185
|
+
}
|
|
186
|
+
return { consensus: 'uncertain', confidence: 0.5, criticalThreats: [] };
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@claude-flow/aidefence",
|
|
3
|
+
"version": "3.0.0-alpha.1",
|
|
4
|
+
"description": "AI Manipulation Defense System (AIMDS) with self-learning, prompt injection detection, and vector search integration",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./detection": {
|
|
14
|
+
"import": "./dist/domain/services/threat-detection-service.js",
|
|
15
|
+
"types": "./dist/domain/services/threat-detection-service.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./learning": {
|
|
18
|
+
"import": "./dist/domain/services/threat-learning-service.js",
|
|
19
|
+
"types": "./dist/domain/services/threat-learning-service.d.ts"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"README.md"
|
|
25
|
+
],
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc",
|
|
28
|
+
"prepublishOnly": "npm run build",
|
|
29
|
+
"test": "vitest",
|
|
30
|
+
"test:unit": "vitest run src",
|
|
31
|
+
"typecheck": "tsc --noEmit"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"agentdb": ">=2.0.0-alpha.1"
|
|
35
|
+
},
|
|
36
|
+
"peerDependenciesMeta": {
|
|
37
|
+
"agentdb": {
|
|
38
|
+
"optional": true
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/node": "^20.10.0",
|
|
43
|
+
"typescript": "^5.3.3",
|
|
44
|
+
"vitest": "^1.1.0"
|
|
45
|
+
},
|
|
46
|
+
"keywords": [
|
|
47
|
+
"ai-security",
|
|
48
|
+
"prompt-injection",
|
|
49
|
+
"jailbreak-detection",
|
|
50
|
+
"threat-detection",
|
|
51
|
+
"pii-detection",
|
|
52
|
+
"claude-flow",
|
|
53
|
+
"vector-search",
|
|
54
|
+
"self-learning",
|
|
55
|
+
"aimds",
|
|
56
|
+
"llm-security"
|
|
57
|
+
],
|
|
58
|
+
"author": "rUv <hello@ruv.io>",
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"repository": {
|
|
61
|
+
"type": "git",
|
|
62
|
+
"url": "git+https://github.com/ruvnet/claude-flow.git",
|
|
63
|
+
"directory": "v3/@claude-flow/aidefence"
|
|
64
|
+
},
|
|
65
|
+
"bugs": {
|
|
66
|
+
"url": "https://github.com/ruvnet/claude-flow/issues"
|
|
67
|
+
},
|
|
68
|
+
"homepage": "https://github.com/ruvnet/claude-flow/tree/main/v3/@claude-flow/aidefence#readme",
|
|
69
|
+
"publishConfig": {
|
|
70
|
+
"access": "public",
|
|
71
|
+
"tag": "alpha"
|
|
72
|
+
},
|
|
73
|
+
"engines": {
|
|
74
|
+
"node": ">=18.0.0"
|
|
75
|
+
}
|
|
76
|
+
}
|