@nahisaho/yata-local 1.6.6
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/auto-updater.d.ts +101 -0
- package/dist/auto-updater.d.ts.map +1 -0
- package/dist/auto-updater.js +402 -0
- package/dist/auto-updater.js.map +1 -0
- package/dist/database.d.ts +229 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +959 -0
- package/dist/database.js.map +1 -0
- package/dist/index.d.ts +298 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +436 -0
- package/dist/index.js.map +1 -0
- package/dist/io.d.ts +77 -0
- package/dist/io.d.ts.map +1 -0
- package/dist/io.js +403 -0
- package/dist/io.js.map +1 -0
- package/dist/kgpr/diff-engine.d.ts +110 -0
- package/dist/kgpr/diff-engine.d.ts.map +1 -0
- package/dist/kgpr/diff-engine.js +335 -0
- package/dist/kgpr/diff-engine.js.map +1 -0
- package/dist/kgpr/index.d.ts +16 -0
- package/dist/kgpr/index.d.ts.map +1 -0
- package/dist/kgpr/index.js +14 -0
- package/dist/kgpr/index.js.map +1 -0
- package/dist/kgpr/kgpr-manager.d.ts +122 -0
- package/dist/kgpr/kgpr-manager.d.ts.map +1 -0
- package/dist/kgpr/kgpr-manager.js +344 -0
- package/dist/kgpr/kgpr-manager.js.map +1 -0
- package/dist/kgpr/privacy-filter.d.ts +109 -0
- package/dist/kgpr/privacy-filter.d.ts.map +1 -0
- package/dist/kgpr/privacy-filter.js +295 -0
- package/dist/kgpr/privacy-filter.js.map +1 -0
- package/dist/kgpr/types.d.ts +234 -0
- package/dist/kgpr/types.d.ts.map +1 -0
- package/dist/kgpr/types.js +54 -0
- package/dist/kgpr/types.js.map +1 -0
- package/dist/query-engine.d.ts +78 -0
- package/dist/query-engine.d.ts.map +1 -0
- package/dist/query-engine.js +368 -0
- package/dist/query-engine.js.map +1 -0
- package/dist/reasoning.d.ts +112 -0
- package/dist/reasoning.d.ts.map +1 -0
- package/dist/reasoning.js +455 -0
- package/dist/reasoning.js.map +1 -0
- package/dist/types.d.ts +580 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +37 -0
- package/dist/types.js.map +1 -0
- package/dist/wake-sleep/cycle-manager.d.ts +76 -0
- package/dist/wake-sleep/cycle-manager.d.ts.map +1 -0
- package/dist/wake-sleep/cycle-manager.js +291 -0
- package/dist/wake-sleep/cycle-manager.js.map +1 -0
- package/dist/wake-sleep/index.d.ts +15 -0
- package/dist/wake-sleep/index.d.ts.map +1 -0
- package/dist/wake-sleep/index.js +19 -0
- package/dist/wake-sleep/index.js.map +1 -0
- package/dist/wake-sleep/pattern-compressor.d.ts +86 -0
- package/dist/wake-sleep/pattern-compressor.d.ts.map +1 -0
- package/dist/wake-sleep/pattern-compressor.js +333 -0
- package/dist/wake-sleep/pattern-compressor.js.map +1 -0
- package/dist/wake-sleep/sleep-phase.d.ts +79 -0
- package/dist/wake-sleep/sleep-phase.d.ts.map +1 -0
- package/dist/wake-sleep/sleep-phase.js +329 -0
- package/dist/wake-sleep/sleep-phase.js.map +1 -0
- package/dist/wake-sleep/types.d.ts +244 -0
- package/dist/wake-sleep/types.d.ts.map +1 -0
- package/dist/wake-sleep/types.js +35 -0
- package/dist/wake-sleep/types.js.map +1 -0
- package/dist/wake-sleep/wake-phase.d.ts +83 -0
- package/dist/wake-sleep/wake-phase.d.ts.map +1 -0
- package/dist/wake-sleep/wake-phase.js +457 -0
- package/dist/wake-sleep/wake-phase.js.map +1 -0
- package/dist/yata-bridge.d.ts +78 -0
- package/dist/yata-bridge.d.ts.map +1 -0
- package/dist/yata-bridge.js +193 -0
- package/dist/yata-bridge.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YATA Local KGPR Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages Knowledge Graph Pull Requests in local storage
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module @nahisaho/yata-local/kgpr
|
|
8
|
+
*
|
|
9
|
+
* @see REQ-YL-EXT-KGPR-001
|
|
10
|
+
*/
|
|
11
|
+
import { randomUUID } from 'crypto';
|
|
12
|
+
import { createLocalDiffEngine } from './diff-engine.js';
|
|
13
|
+
import { createLocalPrivacyFilter } from './privacy-filter.js';
|
|
14
|
+
/**
|
|
15
|
+
* KGPR Manager for local knowledge graphs
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const manager = createLocalKGPRManager(db);
|
|
20
|
+
*
|
|
21
|
+
* // Create a KGPR
|
|
22
|
+
* const kgpr = await manager.createKGPR({
|
|
23
|
+
* title: 'Add UserService patterns',
|
|
24
|
+
* description: 'Learned patterns from user authentication flow',
|
|
25
|
+
* namespace: 'app.services',
|
|
26
|
+
* privacyLevel: 'strict',
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* // Preview diff
|
|
30
|
+
* const diff = await manager.previewDiff(kgpr.id);
|
|
31
|
+
*
|
|
32
|
+
* // Submit for review
|
|
33
|
+
* await manager.submitKGPR(kgpr.id);
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export class LocalKGPRManager {
|
|
37
|
+
db;
|
|
38
|
+
diffEngine;
|
|
39
|
+
snapshots = new Map();
|
|
40
|
+
constructor(db) {
|
|
41
|
+
this.db = db;
|
|
42
|
+
this.diffEngine = createLocalDiffEngine();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a new KGPR
|
|
46
|
+
*
|
|
47
|
+
* @param options - Creation options
|
|
48
|
+
* @returns Created KGPR info
|
|
49
|
+
*/
|
|
50
|
+
async createKGPR(options) {
|
|
51
|
+
const id = `KGPR-${Date.now()}-${randomUUID().substring(0, 8)}`;
|
|
52
|
+
const now = new Date();
|
|
53
|
+
// Get current entities and relationships
|
|
54
|
+
const entities = await this.getEntities(options.namespace, options.entityTypes);
|
|
55
|
+
const relationships = await this.getRelationships();
|
|
56
|
+
// Generate diff from baseline (if provided) or full diff
|
|
57
|
+
const baseline = options.baselineId ? this.snapshots.get(options.baselineId) ?? null : null;
|
|
58
|
+
let diff = this.diffEngine.generateDiff(baseline, entities, relationships, {
|
|
59
|
+
namespace: options.namespace,
|
|
60
|
+
entityTypes: options.entityTypes,
|
|
61
|
+
});
|
|
62
|
+
// Apply privacy filter
|
|
63
|
+
const privacyLevel = options.privacyLevel || 'moderate';
|
|
64
|
+
const privacyFilter = createLocalPrivacyFilter(privacyLevel);
|
|
65
|
+
diff = privacyFilter.filterDiff(diff);
|
|
66
|
+
const kgprInfo = {
|
|
67
|
+
id,
|
|
68
|
+
title: options.title,
|
|
69
|
+
description: options.description || '',
|
|
70
|
+
status: 'draft',
|
|
71
|
+
namespace: options.namespace || '*',
|
|
72
|
+
diff,
|
|
73
|
+
privacyLevel,
|
|
74
|
+
entityTypes: options.entityTypes || [],
|
|
75
|
+
reviews: [],
|
|
76
|
+
createdAt: now,
|
|
77
|
+
updatedAt: now,
|
|
78
|
+
};
|
|
79
|
+
// Save to database
|
|
80
|
+
this.db.insertKGPR({
|
|
81
|
+
id: kgprInfo.id,
|
|
82
|
+
title: kgprInfo.title,
|
|
83
|
+
description: kgprInfo.description,
|
|
84
|
+
status: kgprInfo.status,
|
|
85
|
+
author: options.author || 'local',
|
|
86
|
+
namespace: kgprInfo.namespace,
|
|
87
|
+
diffJson: JSON.stringify(kgprInfo.diff),
|
|
88
|
+
privacyLevel: kgprInfo.privacyLevel,
|
|
89
|
+
entityTypesJson: JSON.stringify(kgprInfo.entityTypes),
|
|
90
|
+
createdAt: kgprInfo.createdAt.toISOString(),
|
|
91
|
+
updatedAt: kgprInfo.updatedAt.toISOString(),
|
|
92
|
+
});
|
|
93
|
+
return kgprInfo;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get a KGPR by ID
|
|
97
|
+
*
|
|
98
|
+
* @param id - KGPR ID
|
|
99
|
+
* @returns KGPR info or null if not found
|
|
100
|
+
*/
|
|
101
|
+
async getKGPR(id) {
|
|
102
|
+
const kgpr = this.db.getKGPR(id);
|
|
103
|
+
if (!kgpr)
|
|
104
|
+
return null;
|
|
105
|
+
const reviews = this.db.getKGPRReviews(id);
|
|
106
|
+
return this.dbKGPRToInfo(kgpr, reviews);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* List KGPRs with filtering
|
|
110
|
+
*
|
|
111
|
+
* @param options - List options
|
|
112
|
+
* @returns Array of KGPRs
|
|
113
|
+
*/
|
|
114
|
+
async listKGPRs(options) {
|
|
115
|
+
const kgprs = this.db.listKGPRs({
|
|
116
|
+
status: Array.isArray(options?.status) ? options?.status[0] : options?.status,
|
|
117
|
+
namespace: options?.namespace,
|
|
118
|
+
limit: options?.limit,
|
|
119
|
+
offset: options?.offset,
|
|
120
|
+
});
|
|
121
|
+
// Convert to LocalKGPRInfo format
|
|
122
|
+
const results = [];
|
|
123
|
+
for (const kgpr of kgprs) {
|
|
124
|
+
const reviews = this.db.getKGPRReviews(kgpr.id);
|
|
125
|
+
results.push(this.dbKGPRToInfo(kgpr, reviews));
|
|
126
|
+
}
|
|
127
|
+
// Apply search filter if provided
|
|
128
|
+
let filtered = results;
|
|
129
|
+
if (options?.search) {
|
|
130
|
+
const searchLower = options.search.toLowerCase();
|
|
131
|
+
filtered = results.filter((k) => k.title.toLowerCase().includes(searchLower) ||
|
|
132
|
+
k.description.toLowerCase().includes(searchLower));
|
|
133
|
+
}
|
|
134
|
+
// Sort
|
|
135
|
+
if (options?.sortBy) {
|
|
136
|
+
const sortOrder = options.sortOrder === 'desc' ? -1 : 1;
|
|
137
|
+
filtered.sort((a, b) => {
|
|
138
|
+
switch (options.sortBy) {
|
|
139
|
+
case 'created':
|
|
140
|
+
return (a.createdAt.getTime() - b.createdAt.getTime()) * sortOrder;
|
|
141
|
+
case 'updated':
|
|
142
|
+
return (a.updatedAt.getTime() - b.updatedAt.getTime()) * sortOrder;
|
|
143
|
+
case 'title':
|
|
144
|
+
return a.title.localeCompare(b.title) * sortOrder;
|
|
145
|
+
default:
|
|
146
|
+
return 0;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
return filtered;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Preview diff for a KGPR (recalculate current state)
|
|
154
|
+
*
|
|
155
|
+
* @param id - KGPR ID
|
|
156
|
+
* @returns Current diff
|
|
157
|
+
*/
|
|
158
|
+
async previewDiff(id) {
|
|
159
|
+
const kgpr = await this.getKGPR(id);
|
|
160
|
+
if (!kgpr)
|
|
161
|
+
return null;
|
|
162
|
+
// Get current state
|
|
163
|
+
const entities = await this.getEntities(kgpr.namespace !== '*' ? kgpr.namespace : undefined, kgpr.entityTypes.length > 0 ? kgpr.entityTypes : undefined);
|
|
164
|
+
const relationships = await this.getRelationships();
|
|
165
|
+
// Generate fresh diff
|
|
166
|
+
const diff = this.diffEngine.generateDiff(null, entities, relationships, {
|
|
167
|
+
namespace: kgpr.namespace !== '*' ? kgpr.namespace : undefined,
|
|
168
|
+
entityTypes: kgpr.entityTypes.length > 0 ? kgpr.entityTypes : undefined,
|
|
169
|
+
});
|
|
170
|
+
// Apply privacy filter
|
|
171
|
+
const privacyFilter = createLocalPrivacyFilter(kgpr.privacyLevel);
|
|
172
|
+
return privacyFilter.filterDiff(diff);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Update KGPR status
|
|
176
|
+
*
|
|
177
|
+
* @param id - KGPR ID
|
|
178
|
+
* @param status - New status
|
|
179
|
+
*/
|
|
180
|
+
async updateStatus(id, status) {
|
|
181
|
+
this.db.updateKGPRStatus(id, status);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Submit a KGPR for review
|
|
185
|
+
*
|
|
186
|
+
* @param id - KGPR ID
|
|
187
|
+
*/
|
|
188
|
+
async submitKGPR(id) {
|
|
189
|
+
const kgpr = await this.getKGPR(id);
|
|
190
|
+
if (!kgpr) {
|
|
191
|
+
throw new Error(`KGPR not found: ${id}`);
|
|
192
|
+
}
|
|
193
|
+
if (kgpr.status !== 'draft') {
|
|
194
|
+
throw new Error(`Cannot submit KGPR in status: ${kgpr.status}`);
|
|
195
|
+
}
|
|
196
|
+
this.db.updateKGPRStatus(id, 'open');
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Add a review to a KGPR
|
|
200
|
+
*
|
|
201
|
+
* @param kgprId - KGPR ID
|
|
202
|
+
* @param review - Review data
|
|
203
|
+
*/
|
|
204
|
+
async addReview(kgprId, review) {
|
|
205
|
+
const kgpr = await this.getKGPR(kgprId);
|
|
206
|
+
if (!kgpr) {
|
|
207
|
+
throw new Error(`KGPR not found: ${kgprId}`);
|
|
208
|
+
}
|
|
209
|
+
const reviewEntry = {
|
|
210
|
+
id: `REV-${Date.now()}-${randomUUID().substring(0, 8)}`,
|
|
211
|
+
kgprId,
|
|
212
|
+
reviewerId: review.reviewerId,
|
|
213
|
+
status: review.status,
|
|
214
|
+
comment: review.comment,
|
|
215
|
+
createdAt: new Date(),
|
|
216
|
+
};
|
|
217
|
+
this.db.insertKGPRReview({
|
|
218
|
+
id: reviewEntry.id,
|
|
219
|
+
kgprId: reviewEntry.kgprId,
|
|
220
|
+
reviewer: reviewEntry.reviewerId,
|
|
221
|
+
action: reviewEntry.status,
|
|
222
|
+
comment: reviewEntry.comment ?? null,
|
|
223
|
+
createdAt: reviewEntry.createdAt.toISOString(),
|
|
224
|
+
});
|
|
225
|
+
// Update KGPR status based on review
|
|
226
|
+
if (review.status === 'approved') {
|
|
227
|
+
this.db.updateKGPRStatus(kgprId, 'approved');
|
|
228
|
+
}
|
|
229
|
+
else if (review.status === 'changes_requested') {
|
|
230
|
+
this.db.updateKGPRStatus(kgprId, 'changes_requested');
|
|
231
|
+
}
|
|
232
|
+
return reviewEntry;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Close a KGPR
|
|
236
|
+
*
|
|
237
|
+
* @param id - KGPR ID
|
|
238
|
+
*/
|
|
239
|
+
async closeKGPR(id) {
|
|
240
|
+
const kgpr = await this.getKGPR(id);
|
|
241
|
+
if (!kgpr) {
|
|
242
|
+
throw new Error(`KGPR not found: ${id}`);
|
|
243
|
+
}
|
|
244
|
+
this.db.updateKGPRStatus(id, 'merged');
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Create a snapshot of current KG state
|
|
248
|
+
*
|
|
249
|
+
* @param description - Snapshot description
|
|
250
|
+
* @returns Snapshot ID
|
|
251
|
+
*/
|
|
252
|
+
async createSnapshot(description) {
|
|
253
|
+
const entities = await this.getEntities();
|
|
254
|
+
const relationships = await this.getRelationships();
|
|
255
|
+
const snapshot = this.diffEngine.createSnapshot(entities, relationships, description);
|
|
256
|
+
this.snapshots.set(snapshot.id, snapshot);
|
|
257
|
+
return snapshot.id;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Convert DB KGPR to LocalKGPRInfo
|
|
261
|
+
*/
|
|
262
|
+
dbKGPRToInfo(kgpr, reviews) {
|
|
263
|
+
return {
|
|
264
|
+
id: kgpr.id,
|
|
265
|
+
title: kgpr.title,
|
|
266
|
+
description: kgpr.description || '',
|
|
267
|
+
status: kgpr.status,
|
|
268
|
+
namespace: kgpr.namespace,
|
|
269
|
+
diff: JSON.parse(kgpr.diffJson),
|
|
270
|
+
privacyLevel: kgpr.privacyLevel,
|
|
271
|
+
entityTypes: kgpr.entityTypesJson ? JSON.parse(kgpr.entityTypesJson) : [],
|
|
272
|
+
reviews: reviews.map(r => ({
|
|
273
|
+
id: r.id,
|
|
274
|
+
kgprId: r.kgprId,
|
|
275
|
+
reviewerId: r.reviewer,
|
|
276
|
+
status: r.action === 'approve' ? 'approved' : r.action,
|
|
277
|
+
comment: r.comment,
|
|
278
|
+
createdAt: r.createdAt,
|
|
279
|
+
})),
|
|
280
|
+
createdAt: kgpr.createdAt,
|
|
281
|
+
updatedAt: kgpr.updatedAt,
|
|
282
|
+
submittedAt: kgpr.submittedAt,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Get entities from the database
|
|
287
|
+
*/
|
|
288
|
+
async getEntities(namespace, entityTypes) {
|
|
289
|
+
// Use query engine to get entities
|
|
290
|
+
const db = this.db.getDb();
|
|
291
|
+
if (!db)
|
|
292
|
+
return [];
|
|
293
|
+
let query = 'SELECT * FROM entities WHERE 1=1';
|
|
294
|
+
const params = [];
|
|
295
|
+
if (namespace) {
|
|
296
|
+
query += ' AND namespace LIKE ?';
|
|
297
|
+
params.push(`${namespace}%`);
|
|
298
|
+
}
|
|
299
|
+
if (entityTypes && entityTypes.length > 0) {
|
|
300
|
+
query += ` AND type IN (${entityTypes.map(() => '?').join(',')})`;
|
|
301
|
+
params.push(...entityTypes);
|
|
302
|
+
}
|
|
303
|
+
const rows = db.prepare(query).all(...params);
|
|
304
|
+
return rows.map((row) => ({
|
|
305
|
+
id: row.id,
|
|
306
|
+
type: row.type,
|
|
307
|
+
name: row.name,
|
|
308
|
+
namespace: row.namespace,
|
|
309
|
+
filePath: row.file_path || undefined,
|
|
310
|
+
line: row.line || undefined,
|
|
311
|
+
metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
|
|
312
|
+
createdAt: new Date(row.created_at),
|
|
313
|
+
updatedAt: new Date(row.updated_at),
|
|
314
|
+
}));
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Get relationships from the database
|
|
318
|
+
*/
|
|
319
|
+
async getRelationships() {
|
|
320
|
+
const db = this.db.getDb();
|
|
321
|
+
if (!db)
|
|
322
|
+
return [];
|
|
323
|
+
const rows = db.prepare('SELECT * FROM relationships').all();
|
|
324
|
+
return rows.map((row) => ({
|
|
325
|
+
id: row.id,
|
|
326
|
+
type: row.type,
|
|
327
|
+
sourceId: row.source_id,
|
|
328
|
+
targetId: row.target_id,
|
|
329
|
+
weight: row.weight,
|
|
330
|
+
metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
|
|
331
|
+
createdAt: new Date(row.created_at),
|
|
332
|
+
}));
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Create a new KGPR manager
|
|
337
|
+
*
|
|
338
|
+
* @param db - YataDatabase instance
|
|
339
|
+
* @returns New KGPR manager
|
|
340
|
+
*/
|
|
341
|
+
export function createLocalKGPRManager(db) {
|
|
342
|
+
return new LocalKGPRManager(db);
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=kgpr-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kgpr-manager.js","sourceRoot":"","sources":["../../src/kgpr/kgpr-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YATA Local KGPR - Privacy Filter
|
|
3
|
+
*
|
|
4
|
+
* Removes sensitive information before sharing local knowledge graphs
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module @nahisaho/yata-local/kgpr
|
|
8
|
+
*
|
|
9
|
+
* @see REQ-YL-EXT-KGPR-002
|
|
10
|
+
*/
|
|
11
|
+
import type { LocalEntityChange, LocalRelationshipChange, LocalKGPRDiff, LocalPrivacyFilterConfig, PrivacyLevel } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Privacy filter for local KGPR
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const filter = createLocalPrivacyFilter('strict');
|
|
18
|
+
* const sanitizedDiff = filter.filterDiff(diff);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare class LocalPrivacyFilter {
|
|
22
|
+
private config;
|
|
23
|
+
private excludeRegexes;
|
|
24
|
+
constructor(config: LocalPrivacyFilterConfig);
|
|
25
|
+
/**
|
|
26
|
+
* Get the current configuration
|
|
27
|
+
*/
|
|
28
|
+
getConfig(): LocalPrivacyFilterConfig;
|
|
29
|
+
/**
|
|
30
|
+
* Filter a complete diff
|
|
31
|
+
*
|
|
32
|
+
* @param diff - The diff to filter
|
|
33
|
+
* @returns Filtered diff with sensitive data removed
|
|
34
|
+
*/
|
|
35
|
+
filterDiff(diff: LocalKGPRDiff): LocalKGPRDiff;
|
|
36
|
+
/**
|
|
37
|
+
* Filter entity changes
|
|
38
|
+
*/
|
|
39
|
+
filterEntityChanges(changes: LocalEntityChange[]): LocalEntityChange[];
|
|
40
|
+
/**
|
|
41
|
+
* Filter relationship changes
|
|
42
|
+
*/
|
|
43
|
+
filterRelationshipChanges(changes: LocalRelationshipChange[]): LocalRelationshipChange[];
|
|
44
|
+
/**
|
|
45
|
+
* Check if an entity should be included
|
|
46
|
+
*/
|
|
47
|
+
shouldIncludeEntity(entity: LocalEntityChange): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Check if a relationship should be included
|
|
50
|
+
*/
|
|
51
|
+
shouldIncludeRelationship(rel: LocalRelationshipChange): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Sanitize an entity change
|
|
54
|
+
*/
|
|
55
|
+
private sanitizeEntity;
|
|
56
|
+
/**
|
|
57
|
+
* Sanitize a relationship change
|
|
58
|
+
*/
|
|
59
|
+
private sanitizeRelationship;
|
|
60
|
+
/**
|
|
61
|
+
* Check if a namespace should be excluded
|
|
62
|
+
*/
|
|
63
|
+
private isNamespaceExcluded;
|
|
64
|
+
/**
|
|
65
|
+
* Check if a name should be excluded
|
|
66
|
+
*/
|
|
67
|
+
private isNameExcluded;
|
|
68
|
+
/**
|
|
69
|
+
* Check if a file path should be excluded
|
|
70
|
+
*/
|
|
71
|
+
private isPathExcluded;
|
|
72
|
+
/**
|
|
73
|
+
* Sanitize a file path
|
|
74
|
+
*/
|
|
75
|
+
private sanitizePath;
|
|
76
|
+
/**
|
|
77
|
+
* Sanitize metadata object
|
|
78
|
+
*/
|
|
79
|
+
private sanitizeMetadata;
|
|
80
|
+
/**
|
|
81
|
+
* Apply configured string replacements
|
|
82
|
+
*/
|
|
83
|
+
private applyReplacements;
|
|
84
|
+
/**
|
|
85
|
+
* Calculate stats from filtered changes
|
|
86
|
+
*/
|
|
87
|
+
private calculateStats;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Create a privacy filter with a preset level
|
|
91
|
+
*
|
|
92
|
+
* @param level - Privacy level preset
|
|
93
|
+
* @param customConfig - Custom configuration to merge with preset
|
|
94
|
+
* @returns Configured privacy filter
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* // Use strict preset
|
|
99
|
+
* const strictFilter = createLocalPrivacyFilter('strict');
|
|
100
|
+
*
|
|
101
|
+
* // Use moderate with custom exclusions
|
|
102
|
+
* const customFilter = createLocalPrivacyFilter('moderate', {
|
|
103
|
+
* excludePatterns: [...DEFAULT_LOCAL_PRIVACY_MODERATE.excludePatterns, 'my_secret'],
|
|
104
|
+
* });
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export declare function createLocalPrivacyFilter(level: PrivacyLevel, customConfig?: Partial<LocalPrivacyFilterConfig>): LocalPrivacyFilter;
|
|
108
|
+
export { DEFAULT_LOCAL_PRIVACY_STRICT, DEFAULT_LOCAL_PRIVACY_MODERATE, DEFAULT_LOCAL_PRIVACY_NONE, } from './types.js';
|
|
109
|
+
//# sourceMappingURL=privacy-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"privacy-filter.d.ts","sourceRoot":"","sources":["../../src/kgpr/privacy-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,wBAAwB,EAExB,YAAY,EACb,MAAM,YAAY,CAAC;AAOpB;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,cAAc,CAAW;gBAErB,MAAM,EAAE,wBAAwB;IAO5C;;OAEG;IACH,SAAS,IAAI,wBAAwB;IAIrC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa;IAoB9C;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE;IAMtE;;OAEG;IACH,yBAAyB,CAAC,OAAO,EAAE,uBAAuB,EAAE,GAAG,uBAAuB,EAAE;IAMxF;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO;IAmBvD;;OAEG;IACH,yBAAyB,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO;IAchE;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,cAAc;CA2BvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,YAAY,EACnB,YAAY,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAC/C,kBAAkB,CAuCpB;AAGD,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,YAAY,CAAC"}
|