@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.
Files changed (77) hide show
  1. package/dist/auto-updater.d.ts +101 -0
  2. package/dist/auto-updater.d.ts.map +1 -0
  3. package/dist/auto-updater.js +402 -0
  4. package/dist/auto-updater.js.map +1 -0
  5. package/dist/database.d.ts +229 -0
  6. package/dist/database.d.ts.map +1 -0
  7. package/dist/database.js +959 -0
  8. package/dist/database.js.map +1 -0
  9. package/dist/index.d.ts +298 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +436 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/io.d.ts +77 -0
  14. package/dist/io.d.ts.map +1 -0
  15. package/dist/io.js +403 -0
  16. package/dist/io.js.map +1 -0
  17. package/dist/kgpr/diff-engine.d.ts +110 -0
  18. package/dist/kgpr/diff-engine.d.ts.map +1 -0
  19. package/dist/kgpr/diff-engine.js +335 -0
  20. package/dist/kgpr/diff-engine.js.map +1 -0
  21. package/dist/kgpr/index.d.ts +16 -0
  22. package/dist/kgpr/index.d.ts.map +1 -0
  23. package/dist/kgpr/index.js +14 -0
  24. package/dist/kgpr/index.js.map +1 -0
  25. package/dist/kgpr/kgpr-manager.d.ts +122 -0
  26. package/dist/kgpr/kgpr-manager.d.ts.map +1 -0
  27. package/dist/kgpr/kgpr-manager.js +344 -0
  28. package/dist/kgpr/kgpr-manager.js.map +1 -0
  29. package/dist/kgpr/privacy-filter.d.ts +109 -0
  30. package/dist/kgpr/privacy-filter.d.ts.map +1 -0
  31. package/dist/kgpr/privacy-filter.js +295 -0
  32. package/dist/kgpr/privacy-filter.js.map +1 -0
  33. package/dist/kgpr/types.d.ts +234 -0
  34. package/dist/kgpr/types.d.ts.map +1 -0
  35. package/dist/kgpr/types.js +54 -0
  36. package/dist/kgpr/types.js.map +1 -0
  37. package/dist/query-engine.d.ts +78 -0
  38. package/dist/query-engine.d.ts.map +1 -0
  39. package/dist/query-engine.js +368 -0
  40. package/dist/query-engine.js.map +1 -0
  41. package/dist/reasoning.d.ts +112 -0
  42. package/dist/reasoning.d.ts.map +1 -0
  43. package/dist/reasoning.js +455 -0
  44. package/dist/reasoning.js.map +1 -0
  45. package/dist/types.d.ts +580 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +37 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/wake-sleep/cycle-manager.d.ts +76 -0
  50. package/dist/wake-sleep/cycle-manager.d.ts.map +1 -0
  51. package/dist/wake-sleep/cycle-manager.js +291 -0
  52. package/dist/wake-sleep/cycle-manager.js.map +1 -0
  53. package/dist/wake-sleep/index.d.ts +15 -0
  54. package/dist/wake-sleep/index.d.ts.map +1 -0
  55. package/dist/wake-sleep/index.js +19 -0
  56. package/dist/wake-sleep/index.js.map +1 -0
  57. package/dist/wake-sleep/pattern-compressor.d.ts +86 -0
  58. package/dist/wake-sleep/pattern-compressor.d.ts.map +1 -0
  59. package/dist/wake-sleep/pattern-compressor.js +333 -0
  60. package/dist/wake-sleep/pattern-compressor.js.map +1 -0
  61. package/dist/wake-sleep/sleep-phase.d.ts +79 -0
  62. package/dist/wake-sleep/sleep-phase.d.ts.map +1 -0
  63. package/dist/wake-sleep/sleep-phase.js +329 -0
  64. package/dist/wake-sleep/sleep-phase.js.map +1 -0
  65. package/dist/wake-sleep/types.d.ts +244 -0
  66. package/dist/wake-sleep/types.d.ts.map +1 -0
  67. package/dist/wake-sleep/types.js +35 -0
  68. package/dist/wake-sleep/types.js.map +1 -0
  69. package/dist/wake-sleep/wake-phase.d.ts +83 -0
  70. package/dist/wake-sleep/wake-phase.d.ts.map +1 -0
  71. package/dist/wake-sleep/wake-phase.js +457 -0
  72. package/dist/wake-sleep/wake-phase.js.map +1 -0
  73. package/dist/yata-bridge.d.ts +78 -0
  74. package/dist/yata-bridge.d.ts.map +1 -0
  75. package/dist/yata-bridge.js +193 -0
  76. package/dist/yata-bridge.js.map +1 -0
  77. package/package.json +60 -0
@@ -0,0 +1,295 @@
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 { DEFAULT_LOCAL_PRIVACY_STRICT, DEFAULT_LOCAL_PRIVACY_MODERATE, DEFAULT_LOCAL_PRIVACY_NONE, } 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 class LocalPrivacyFilter {
22
+ config;
23
+ excludeRegexes;
24
+ constructor(config) {
25
+ this.config = config;
26
+ this.excludeRegexes = config.excludePatterns.map((pattern) => new RegExp(pattern, 'i'));
27
+ }
28
+ /**
29
+ * Get the current configuration
30
+ */
31
+ getConfig() {
32
+ return { ...this.config };
33
+ }
34
+ /**
35
+ * Filter a complete diff
36
+ *
37
+ * @param diff - The diff to filter
38
+ * @returns Filtered diff with sensitive data removed
39
+ */
40
+ filterDiff(diff) {
41
+ const filteredEntities = {
42
+ added: this.filterEntityChanges(diff.entities.added),
43
+ updated: this.filterEntityChanges(diff.entities.updated),
44
+ deleted: this.filterEntityChanges(diff.entities.deleted),
45
+ };
46
+ const filteredRelationships = {
47
+ added: this.filterRelationshipChanges(diff.relationships.added),
48
+ updated: this.filterRelationshipChanges(diff.relationships.updated),
49
+ deleted: this.filterRelationshipChanges(diff.relationships.deleted),
50
+ };
51
+ return {
52
+ entities: filteredEntities,
53
+ relationships: filteredRelationships,
54
+ stats: this.calculateStats(filteredEntities, filteredRelationships),
55
+ };
56
+ }
57
+ /**
58
+ * Filter entity changes
59
+ */
60
+ filterEntityChanges(changes) {
61
+ return changes
62
+ .filter((change) => this.shouldIncludeEntity(change))
63
+ .map((change) => this.sanitizeEntity(change));
64
+ }
65
+ /**
66
+ * Filter relationship changes
67
+ */
68
+ filterRelationshipChanges(changes) {
69
+ return changes
70
+ .filter((change) => this.shouldIncludeRelationship(change))
71
+ .map((change) => this.sanitizeRelationship(change));
72
+ }
73
+ /**
74
+ * Check if an entity should be included
75
+ */
76
+ shouldIncludeEntity(entity) {
77
+ // Check namespace exclusion
78
+ if (this.isNamespaceExcluded(entity.namespace)) {
79
+ return false;
80
+ }
81
+ // Check name pattern exclusion
82
+ if (this.isNameExcluded(entity.name)) {
83
+ return false;
84
+ }
85
+ // Check file path exclusion
86
+ if (entity.filePath && this.isPathExcluded(entity.filePath)) {
87
+ return false;
88
+ }
89
+ return true;
90
+ }
91
+ /**
92
+ * Check if a relationship should be included
93
+ */
94
+ shouldIncludeRelationship(rel) {
95
+ // Exclude if either endpoint is in excluded namespace
96
+ if (this.isNamespaceExcluded(rel.sourceNamespace) || this.isNamespaceExcluded(rel.targetNamespace)) {
97
+ return false;
98
+ }
99
+ // Check name pattern exclusion for both endpoints
100
+ if (this.isNameExcluded(rel.sourceName) || this.isNameExcluded(rel.targetName)) {
101
+ return false;
102
+ }
103
+ return true;
104
+ }
105
+ /**
106
+ * Sanitize an entity change
107
+ */
108
+ sanitizeEntity(entity) {
109
+ const sanitized = {
110
+ changeType: entity.changeType,
111
+ localId: entity.localId,
112
+ name: this.applyReplacements(entity.name),
113
+ entityType: entity.entityType,
114
+ namespace: this.applyReplacements(entity.namespace),
115
+ };
116
+ // Conditionally include file path
117
+ if (!this.config.removeFilePaths && entity.filePath) {
118
+ sanitized.filePath = this.sanitizePath(entity.filePath);
119
+ }
120
+ // Conditionally include line number
121
+ if (!this.config.removeLineNumbers && entity.line !== undefined) {
122
+ sanitized.line = entity.line;
123
+ }
124
+ // Conditionally include metadata
125
+ if (!this.config.removeMetadata && entity.metadata) {
126
+ sanitized.metadata = this.sanitizeMetadata(entity.metadata);
127
+ }
128
+ return sanitized;
129
+ }
130
+ /**
131
+ * Sanitize a relationship change
132
+ */
133
+ sanitizeRelationship(rel) {
134
+ const sanitized = {
135
+ changeType: rel.changeType,
136
+ sourceName: this.applyReplacements(rel.sourceName),
137
+ sourceNamespace: this.applyReplacements(rel.sourceNamespace),
138
+ targetName: this.applyReplacements(rel.targetName),
139
+ targetNamespace: this.applyReplacements(rel.targetNamespace),
140
+ relationshipType: rel.relationshipType,
141
+ };
142
+ if (rel.localId) {
143
+ sanitized.localId = rel.localId;
144
+ }
145
+ // Conditionally include metadata
146
+ if (!this.config.removeMetadata && rel.metadata) {
147
+ sanitized.metadata = this.sanitizeMetadata(rel.metadata);
148
+ }
149
+ return sanitized;
150
+ }
151
+ /**
152
+ * Check if a namespace should be excluded
153
+ */
154
+ isNamespaceExcluded(namespace) {
155
+ const lowerNs = namespace.toLowerCase();
156
+ return this.config.excludeNamespaces.some((excluded) => lowerNs.includes(excluded.toLowerCase()));
157
+ }
158
+ /**
159
+ * Check if a name should be excluded
160
+ */
161
+ isNameExcluded(name) {
162
+ return this.excludeRegexes.some((regex) => regex.test(name));
163
+ }
164
+ /**
165
+ * Check if a file path should be excluded
166
+ */
167
+ isPathExcluded(filePath) {
168
+ const lowerPath = filePath.toLowerCase();
169
+ return this.config.excludeNamespaces.some((excluded) => lowerPath.includes(excluded.toLowerCase()));
170
+ }
171
+ /**
172
+ * Sanitize a file path
173
+ */
174
+ sanitizePath(filePath) {
175
+ // Apply replacements to path
176
+ return this.applyReplacements(filePath);
177
+ }
178
+ /**
179
+ * Sanitize metadata object
180
+ */
181
+ sanitizeMetadata(metadata) {
182
+ const sanitized = {};
183
+ for (const [key, value] of Object.entries(metadata)) {
184
+ // Skip keys that match exclude patterns
185
+ if (this.isNameExcluded(key)) {
186
+ continue;
187
+ }
188
+ // Sanitize string values
189
+ if (typeof value === 'string') {
190
+ sanitized[key] = this.applyReplacements(value);
191
+ }
192
+ else if (typeof value === 'object' && value !== null) {
193
+ // Recursively sanitize nested objects
194
+ sanitized[key] = this.sanitizeMetadata(value);
195
+ }
196
+ else {
197
+ sanitized[key] = value;
198
+ }
199
+ }
200
+ return sanitized;
201
+ }
202
+ /**
203
+ * Apply configured string replacements
204
+ */
205
+ applyReplacements(str) {
206
+ let result = str;
207
+ for (const { pattern, replacement } of this.config.replacements) {
208
+ result = result.replace(new RegExp(pattern, 'gi'), replacement);
209
+ }
210
+ return result;
211
+ }
212
+ /**
213
+ * Calculate stats from filtered changes
214
+ */
215
+ calculateStats(entities, relationships) {
216
+ const entitiesAdded = entities.added.length;
217
+ const entitiesUpdated = entities.updated.length;
218
+ const entitiesDeleted = entities.deleted.length;
219
+ const relationshipsAdded = relationships.added.length;
220
+ const relationshipsUpdated = relationships.updated.length;
221
+ const relationshipsDeleted = relationships.deleted.length;
222
+ return {
223
+ entitiesAdded,
224
+ entitiesUpdated,
225
+ entitiesDeleted,
226
+ relationshipsAdded,
227
+ relationshipsUpdated,
228
+ relationshipsDeleted,
229
+ totalChanges: entitiesAdded +
230
+ entitiesUpdated +
231
+ entitiesDeleted +
232
+ relationshipsAdded +
233
+ relationshipsUpdated +
234
+ relationshipsDeleted,
235
+ };
236
+ }
237
+ }
238
+ /**
239
+ * Create a privacy filter with a preset level
240
+ *
241
+ * @param level - Privacy level preset
242
+ * @param customConfig - Custom configuration to merge with preset
243
+ * @returns Configured privacy filter
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * // Use strict preset
248
+ * const strictFilter = createLocalPrivacyFilter('strict');
249
+ *
250
+ * // Use moderate with custom exclusions
251
+ * const customFilter = createLocalPrivacyFilter('moderate', {
252
+ * excludePatterns: [...DEFAULT_LOCAL_PRIVACY_MODERATE.excludePatterns, 'my_secret'],
253
+ * });
254
+ * ```
255
+ */
256
+ export function createLocalPrivacyFilter(level, customConfig) {
257
+ let baseConfig;
258
+ switch (level) {
259
+ case 'strict':
260
+ baseConfig = { ...DEFAULT_LOCAL_PRIVACY_STRICT };
261
+ break;
262
+ case 'moderate':
263
+ baseConfig = { ...DEFAULT_LOCAL_PRIVACY_MODERATE };
264
+ break;
265
+ case 'none':
266
+ baseConfig = { ...DEFAULT_LOCAL_PRIVACY_NONE };
267
+ break;
268
+ default:
269
+ baseConfig = { ...DEFAULT_LOCAL_PRIVACY_MODERATE };
270
+ }
271
+ // Merge custom config if provided
272
+ if (customConfig) {
273
+ return new LocalPrivacyFilter({
274
+ ...baseConfig,
275
+ ...customConfig,
276
+ // Merge arrays instead of replacing
277
+ excludeNamespaces: [
278
+ ...baseConfig.excludeNamespaces,
279
+ ...(customConfig.excludeNamespaces || []),
280
+ ],
281
+ excludePatterns: [
282
+ ...baseConfig.excludePatterns,
283
+ ...(customConfig.excludePatterns || []),
284
+ ],
285
+ replacements: [
286
+ ...baseConfig.replacements,
287
+ ...(customConfig.replacements || []),
288
+ ],
289
+ });
290
+ }
291
+ return new LocalPrivacyFilter(baseConfig);
292
+ }
293
+ // Re-export default configs
294
+ export { DEFAULT_LOCAL_PRIVACY_STRICT, DEFAULT_LOCAL_PRIVACY_MODERATE, DEFAULT_LOCAL_PRIVACY_NONE, } from './types.js';
295
+ //# sourceMappingURL=privacy-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-filter.js","sourceRoot":"","sources":["../../src/kgpr/privacy-filter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,234 @@
1
+ /**
2
+ * YATA Local KGPR Types
3
+ *
4
+ * Type definitions for local Knowledge Graph Pull Requests
5
+ *
6
+ * @packageDocumentation
7
+ * @module @nahisaho/yata-local/kgpr
8
+ *
9
+ * @see REQ-YL-EXT-KGPR-001
10
+ */
11
+ import type { Entity, EntityType, RelationType, KGPRStatusLocal, PrivacyLevel as BasePrivacyLevel } from '../types.js';
12
+ export type { KGPRStatusLocal, PrivacyLevel } from '../types.js';
13
+ /**
14
+ * Change type
15
+ */
16
+ export type ChangeType = 'add' | 'update' | 'delete';
17
+ /**
18
+ * Entity change in a KGPR diff
19
+ */
20
+ export interface LocalEntityChange {
21
+ /** Change type */
22
+ changeType: ChangeType;
23
+ /** Local entity ID */
24
+ localId: string;
25
+ /** Entity name */
26
+ name: string;
27
+ /** Entity type */
28
+ entityType: EntityType;
29
+ /** Namespace */
30
+ namespace: string;
31
+ /** File path (may be sanitized) */
32
+ filePath?: string;
33
+ /** Line number */
34
+ line?: number;
35
+ /** Metadata */
36
+ metadata?: Record<string, unknown>;
37
+ /** Previous value (for updates) */
38
+ previousValue?: Partial<Entity>;
39
+ }
40
+ /**
41
+ * Relationship change in a KGPR diff
42
+ */
43
+ export interface LocalRelationshipChange {
44
+ /** Change type */
45
+ changeType: ChangeType;
46
+ /** Local relationship ID */
47
+ localId?: string;
48
+ /** Source entity name */
49
+ sourceName: string;
50
+ /** Source namespace */
51
+ sourceNamespace: string;
52
+ /** Target entity name */
53
+ targetName: string;
54
+ /** Target namespace */
55
+ targetNamespace: string;
56
+ /** Relationship type */
57
+ relationshipType: RelationType;
58
+ /** Metadata */
59
+ metadata?: Record<string, unknown>;
60
+ }
61
+ /**
62
+ * KGPR diff - all changes
63
+ */
64
+ export interface LocalKGPRDiff {
65
+ /** Entity changes */
66
+ entities: {
67
+ added: LocalEntityChange[];
68
+ updated: LocalEntityChange[];
69
+ deleted: LocalEntityChange[];
70
+ };
71
+ /** Relationship changes */
72
+ relationships: {
73
+ added: LocalRelationshipChange[];
74
+ updated: LocalRelationshipChange[];
75
+ deleted: LocalRelationshipChange[];
76
+ };
77
+ /** Statistics */
78
+ stats: LocalDiffStats;
79
+ }
80
+ /**
81
+ * Diff statistics
82
+ */
83
+ export interface LocalDiffStats {
84
+ entitiesAdded: number;
85
+ entitiesUpdated: number;
86
+ entitiesDeleted: number;
87
+ relationshipsAdded: number;
88
+ relationshipsUpdated: number;
89
+ relationshipsDeleted: number;
90
+ totalChanges: number;
91
+ }
92
+ /**
93
+ * KGPR review from local storage
94
+ */
95
+ export interface LocalKGPRReviewEntry {
96
+ /** Review ID */
97
+ id: string;
98
+ /** KGPR ID */
99
+ kgprId: string;
100
+ /** Reviewer ID */
101
+ reviewerId: string;
102
+ /** Review status */
103
+ status: 'approved' | 'changes_requested' | 'commented';
104
+ /** Review comment */
105
+ comment?: string;
106
+ /** Created timestamp */
107
+ createdAt: Date;
108
+ }
109
+ /**
110
+ * Local KGPR info (full object with parsed diff)
111
+ */
112
+ export interface LocalKGPRInfo {
113
+ /** KGPR ID */
114
+ id: string;
115
+ /** Title */
116
+ title: string;
117
+ /** Description */
118
+ description: string;
119
+ /** Status */
120
+ status: KGPRStatusLocal;
121
+ /** Source namespace */
122
+ namespace: string;
123
+ /** Diff (parsed) */
124
+ diff: LocalKGPRDiff;
125
+ /** Privacy level used */
126
+ privacyLevel: BasePrivacyLevel;
127
+ /** Entity types included */
128
+ entityTypes: EntityType[];
129
+ /** Reviews */
130
+ reviews: LocalKGPRReviewEntry[];
131
+ /** Created timestamp */
132
+ createdAt: Date;
133
+ /** Updated timestamp */
134
+ updatedAt: Date;
135
+ /** Submitted timestamp */
136
+ submittedAt?: Date;
137
+ }
138
+ /**
139
+ * Options for creating a KGPR
140
+ */
141
+ export interface CreateLocalKGPROptions {
142
+ /** Title */
143
+ title: string;
144
+ /** Description */
145
+ description?: string;
146
+ /** Author ID */
147
+ author?: string;
148
+ /** Source namespace to include (optional filter) */
149
+ namespace?: string;
150
+ /** Entity types to include (optional filter) */
151
+ entityTypes?: EntityType[];
152
+ /** Privacy level */
153
+ privacyLevel?: BasePrivacyLevel;
154
+ /** Baseline snapshot ID (for diff) */
155
+ baselineId?: string;
156
+ }
157
+ /**
158
+ * Options for listing KGPRs
159
+ */
160
+ export interface ListLocalKGPROptions {
161
+ /** Filter by status */
162
+ status?: KGPRStatusLocal | KGPRStatusLocal[];
163
+ /** Filter by namespace */
164
+ namespace?: string;
165
+ /** Search in title/description */
166
+ search?: string;
167
+ /** Sort by field */
168
+ sortBy?: 'created' | 'updated' | 'title';
169
+ /** Sort order */
170
+ sortOrder?: 'asc' | 'desc';
171
+ /** Limit results */
172
+ limit?: number;
173
+ /** Offset for pagination */
174
+ offset?: number;
175
+ }
176
+ /**
177
+ * Privacy filter configuration
178
+ */
179
+ export interface LocalPrivacyFilterConfig {
180
+ /** Remove file paths from output */
181
+ removeFilePaths: boolean;
182
+ /** Remove line numbers from output */
183
+ removeLineNumbers: boolean;
184
+ /** Remove metadata from output */
185
+ removeMetadata: boolean;
186
+ /** Namespace patterns to exclude */
187
+ excludeNamespaces: string[];
188
+ /** Entity name patterns to exclude (regex) */
189
+ excludePatterns: string[];
190
+ /** String replacements */
191
+ replacements: {
192
+ pattern: string;
193
+ replacement: string;
194
+ }[];
195
+ }
196
+ /**
197
+ * Default strict privacy filter
198
+ */
199
+ export declare const DEFAULT_LOCAL_PRIVACY_STRICT: LocalPrivacyFilterConfig;
200
+ /**
201
+ * Default moderate privacy filter
202
+ */
203
+ export declare const DEFAULT_LOCAL_PRIVACY_MODERATE: LocalPrivacyFilterConfig;
204
+ /**
205
+ * Default no privacy filter
206
+ */
207
+ export declare const DEFAULT_LOCAL_PRIVACY_NONE: LocalPrivacyFilterConfig;
208
+ /**
209
+ * Snapshot of the knowledge graph at a point in time
210
+ */
211
+ export interface KGSnapshot {
212
+ /** Snapshot ID */
213
+ id: string;
214
+ /** Snapshot timestamp */
215
+ timestamp: Date;
216
+ /** Entity hashes (id -> hash) */
217
+ entityHashes: Map<string, string>;
218
+ /** Relationship hashes (id -> hash) */
219
+ relationshipHashes: Map<string, string>;
220
+ /** Description */
221
+ description?: string;
222
+ }
223
+ /**
224
+ * Diff generation options
225
+ */
226
+ export interface DiffOptions {
227
+ /** Namespace filter */
228
+ namespace?: string;
229
+ /** Entity types filter */
230
+ entityTypes?: EntityType[];
231
+ /** Include deleted entities */
232
+ includeDeleted?: boolean;
233
+ }
234
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/kgpr/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * YATA Local KGPR Types
3
+ *
4
+ * Type definitions for local Knowledge Graph Pull Requests
5
+ *
6
+ * @packageDocumentation
7
+ * @module @nahisaho/yata-local/kgpr
8
+ *
9
+ * @see REQ-YL-EXT-KGPR-001
10
+ */
11
+ /**
12
+ * Default strict privacy filter
13
+ */
14
+ export const DEFAULT_LOCAL_PRIVACY_STRICT = {
15
+ removeFilePaths: true,
16
+ removeLineNumbers: true,
17
+ removeMetadata: true,
18
+ excludeNamespaces: ['internal', 'private', 'secret', 'config', 'test', '__tests__'],
19
+ excludePatterns: [
20
+ 'password',
21
+ 'secret',
22
+ 'token',
23
+ 'api[_-]?key',
24
+ 'credential',
25
+ 'auth',
26
+ 'private',
27
+ '\\$_',
28
+ '_internal',
29
+ ],
30
+ replacements: [],
31
+ };
32
+ /**
33
+ * Default moderate privacy filter
34
+ */
35
+ export const DEFAULT_LOCAL_PRIVACY_MODERATE = {
36
+ removeFilePaths: false,
37
+ removeLineNumbers: false,
38
+ removeMetadata: false,
39
+ excludeNamespaces: ['secret', 'config'],
40
+ excludePatterns: ['password', 'secret', 'token', 'api[_-]?key'],
41
+ replacements: [],
42
+ };
43
+ /**
44
+ * Default no privacy filter
45
+ */
46
+ export const DEFAULT_LOCAL_PRIVACY_NONE = {
47
+ removeFilePaths: false,
48
+ removeLineNumbers: false,
49
+ removeMetadata: false,
50
+ excludeNamespaces: [],
51
+ excludePatterns: [],
52
+ replacements: [],
53
+ };
54
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/kgpr/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqMH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAA6B;IACpE,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC;IACnF,eAAe,EAAE;QACf,UAAU;QACV,QAAQ;QACR,OAAO;QACP,aAAa;QACb,YAAY;QACZ,MAAM;QACN,SAAS;QACT,MAAM;QACN,WAAW;KACZ;IACD,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAA6B;IACtE,eAAe,EAAE,KAAK;IACtB,iBAAiB,EAAE,KAAK;IACxB,cAAc,EAAE,KAAK;IACrB,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACvC,eAAe,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC;IAC/D,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAA6B;IAClE,eAAe,EAAE,KAAK;IACtB,iBAAiB,EAAE,KAAK;IACxB,cAAc,EAAE,KAAK;IACrB,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;IACnB,YAAY,EAAE,EAAE;CACjB,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * YATA Local - Query Engine
3
+ *
4
+ * @packageDocumentation
5
+ * @module @nahisaho/yata-local/query-engine
6
+ *
7
+ * @see REQ-YL-QUERY-001 ~ REQ-YL-QUERY-005
8
+ */
9
+ import type { Entity, EntityType, Relationship, RelationType, GraphQuery, QueryResult, Path, Subgraph, GraphPattern, PatternMatch, QueryOptions } from './types.js';
10
+ import type { YataDatabase } from './database.js';
11
+ /**
12
+ * Query engine for traversing and querying the knowledge graph
13
+ */
14
+ export declare class QueryEngine {
15
+ private db;
16
+ constructor(db: YataDatabase);
17
+ /**
18
+ * Execute graph query
19
+ * @see REQ-YL-QUERY-001
20
+ */
21
+ query(query: GraphQuery, options?: Partial<QueryOptions>): QueryResult;
22
+ /**
23
+ * Find shortest path between two entities
24
+ * @see REQ-YL-QUERY-002
25
+ */
26
+ findPath(startId: string, endId: string, options?: {
27
+ maxDepth?: number;
28
+ relationshipTypes?: RelationType[];
29
+ direction?: 'forward' | 'backward' | 'both';
30
+ }): Path | null;
31
+ /**
32
+ * Extract subgraph around entity
33
+ * @see REQ-YL-QUERY-003
34
+ */
35
+ extractSubgraph(rootId: string, options?: {
36
+ depth?: number;
37
+ entityTypes?: EntityType[];
38
+ relationshipTypes?: RelationType[];
39
+ direction?: 'in' | 'out' | 'both';
40
+ }): Subgraph;
41
+ /**
42
+ * Pattern matching on graph
43
+ * @see REQ-YL-QUERY-004
44
+ */
45
+ matchPattern(pattern: GraphPattern): PatternMatch[];
46
+ /**
47
+ * Recursive pattern matching helper
48
+ */
49
+ private tryMatchPattern;
50
+ /**
51
+ * Check if name matches pattern
52
+ */
53
+ private matchNamePattern;
54
+ /**
55
+ * Find entities by traversing relationships
56
+ */
57
+ traverse(startId: string, relationshipTypes: RelationType[], direction: 'forward' | 'backward', maxHops?: number): Entity[];
58
+ /**
59
+ * Get entity neighbors
60
+ */
61
+ getNeighbors(entityId: string, options?: {
62
+ direction?: 'in' | 'out' | 'both';
63
+ relationshipTypes?: RelationType[];
64
+ entityTypes?: EntityType[];
65
+ }): Array<{
66
+ entity: Entity;
67
+ relationship: Relationship;
68
+ }>;
69
+ /**
70
+ * Find all paths between two entities (up to limit)
71
+ */
72
+ findAllPaths(startId: string, endId: string, options?: {
73
+ maxDepth?: number;
74
+ maxPaths?: number;
75
+ relationshipTypes?: RelationType[];
76
+ }): Path[];
77
+ }
78
+ //# sourceMappingURL=query-engine.d.ts.map