@nahisaho/yata-global 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 (45) hide show
  1. package/dist/api-client.d.ts +71 -0
  2. package/dist/api-client.d.ts.map +1 -0
  3. package/dist/api-client.js +165 -0
  4. package/dist/api-client.js.map +1 -0
  5. package/dist/cache-manager.d.ts +122 -0
  6. package/dist/cache-manager.d.ts.map +1 -0
  7. package/dist/cache-manager.js +376 -0
  8. package/dist/cache-manager.js.map +1 -0
  9. package/dist/index.d.ts +138 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +548 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/kgpr/index.d.ts +12 -0
  14. package/dist/kgpr/index.d.ts.map +1 -0
  15. package/dist/kgpr/index.js +12 -0
  16. package/dist/kgpr/index.js.map +1 -0
  17. package/dist/kgpr/kgpr-manager.d.ts +162 -0
  18. package/dist/kgpr/kgpr-manager.d.ts.map +1 -0
  19. package/dist/kgpr/kgpr-manager.js +465 -0
  20. package/dist/kgpr/kgpr-manager.js.map +1 -0
  21. package/dist/kgpr/merge-engine.d.ts +269 -0
  22. package/dist/kgpr/merge-engine.d.ts.map +1 -0
  23. package/dist/kgpr/merge-engine.js +451 -0
  24. package/dist/kgpr/merge-engine.js.map +1 -0
  25. package/dist/kgpr/notification-service.d.ts +227 -0
  26. package/dist/kgpr/notification-service.d.ts.map +1 -0
  27. package/dist/kgpr/notification-service.js +440 -0
  28. package/dist/kgpr/notification-service.js.map +1 -0
  29. package/dist/kgpr/privacy-filter.d.ts +61 -0
  30. package/dist/kgpr/privacy-filter.d.ts.map +1 -0
  31. package/dist/kgpr/privacy-filter.js +191 -0
  32. package/dist/kgpr/privacy-filter.js.map +1 -0
  33. package/dist/kgpr/types.d.ts +303 -0
  34. package/dist/kgpr/types.d.ts.map +1 -0
  35. package/dist/kgpr/types.js +40 -0
  36. package/dist/kgpr/types.js.map +1 -0
  37. package/dist/sync-engine.d.ts +104 -0
  38. package/dist/sync-engine.d.ts.map +1 -0
  39. package/dist/sync-engine.js +275 -0
  40. package/dist/sync-engine.js.map +1 -0
  41. package/dist/types.d.ts +353 -0
  42. package/dist/types.d.ts.map +1 -0
  43. package/dist/types.js +19 -0
  44. package/dist/types.js.map +1 -0
  45. package/package.json +59 -0
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Knowledge Graph Pull Request (KGPR) - Manager
3
+ *
4
+ * Core logic for creating, managing, and merging KGPRs
5
+ *
6
+ * @packageDocumentation
7
+ * @module @nahisaho/yata-global/kgpr
8
+ *
9
+ * @see REQ-KGPR-001
10
+ */
11
+ import { EventEmitter } from 'events';
12
+ import type { KGPR, KGPRDiff, KGPRStatus, KGPRComment, KGPRReview, CreateKGPROptions, KGPRSubmitResult, ListKGPROptions, MergeKGPROptions, MergeKGPRResult } from './types.js';
13
+ import type { ApiClient } from '../api-client.js';
14
+ /**
15
+ * KGPR manager events
16
+ */
17
+ export interface KGPRManagerEvents {
18
+ 'kgpr:created': {
19
+ kgpr: KGPR;
20
+ };
21
+ 'kgpr:submitted': {
22
+ kgprId: string;
23
+ };
24
+ 'kgpr:updated': {
25
+ kgprId: string;
26
+ status: KGPRStatus;
27
+ };
28
+ 'kgpr:merged': {
29
+ kgprId: string;
30
+ };
31
+ 'kgpr:closed': {
32
+ kgprId: string;
33
+ };
34
+ 'error': Error;
35
+ }
36
+ /**
37
+ * Local knowledge graph interface (for reading from YATA Local)
38
+ */
39
+ export interface LocalKnowledgeGraph {
40
+ /** Query all entities */
41
+ queryEntities(namespace?: string): Promise<Array<{
42
+ id: string;
43
+ name: string;
44
+ type: string;
45
+ namespace: string;
46
+ filePath?: string;
47
+ line?: number;
48
+ metadata?: Record<string, unknown>;
49
+ }>>;
50
+ /** Query all relationships */
51
+ queryRelationships(namespace?: string): Promise<Array<{
52
+ id: string;
53
+ sourceName: string;
54
+ sourceNamespace: string;
55
+ targetName: string;
56
+ targetNamespace: string;
57
+ type: string;
58
+ metadata?: Record<string, unknown>;
59
+ }>>;
60
+ /** Get entities modified since timestamp */
61
+ getModifiedSince?(since: Date): Promise<{
62
+ entities: Array<{
63
+ entity: unknown;
64
+ changeType: 'add' | 'update' | 'delete';
65
+ }>;
66
+ relationships: Array<{
67
+ relationship: unknown;
68
+ changeType: 'add' | 'update' | 'delete';
69
+ }>;
70
+ }>;
71
+ }
72
+ /**
73
+ * KGPR Manager
74
+ */
75
+ export declare class KGPRManager extends EventEmitter {
76
+ private apiClient;
77
+ private localKG;
78
+ private drafts;
79
+ private userId;
80
+ private userName;
81
+ constructor(options?: {
82
+ apiClient?: ApiClient;
83
+ userId?: string;
84
+ userName?: string;
85
+ });
86
+ /**
87
+ * Connect to local knowledge graph
88
+ */
89
+ connectLocalKG(localKG: LocalKnowledgeGraph): void;
90
+ /**
91
+ * Generate unique KGPR ID
92
+ */
93
+ private generateId;
94
+ /**
95
+ * Create a new KGPR from local knowledge graph
96
+ */
97
+ create(options: CreateKGPROptions): Promise<KGPR>;
98
+ /**
99
+ * Get diff preview before creating KGPR
100
+ */
101
+ previewDiff(options?: {
102
+ sourceNamespace?: string;
103
+ entityTypes?: string[];
104
+ privacyLevel?: 'strict' | 'moderate' | 'none';
105
+ }): Promise<KGPRDiff>;
106
+ /**
107
+ * Get a draft KGPR
108
+ */
109
+ getDraft(id: string): KGPR | undefined;
110
+ /**
111
+ * List all drafts
112
+ */
113
+ listDrafts(): KGPR[];
114
+ /**
115
+ * Update a draft KGPR
116
+ */
117
+ updateDraft(id: string, updates: Partial<Pick<KGPR, 'title' | 'description' | 'labels'>>): KGPR;
118
+ /**
119
+ * Delete a draft KGPR
120
+ */
121
+ deleteDraft(id: string): boolean;
122
+ /**
123
+ * Submit a KGPR to YATA Global
124
+ */
125
+ submit(id: string): Promise<KGPRSubmitResult>;
126
+ /**
127
+ * List KGPRs from YATA Global
128
+ */
129
+ list(options?: ListKGPROptions): Promise<{
130
+ kgprs: KGPR[];
131
+ total: number;
132
+ }>;
133
+ /**
134
+ * Get a specific KGPR
135
+ */
136
+ get(id: string): Promise<KGPR | null>;
137
+ /**
138
+ * Add a comment to a KGPR
139
+ */
140
+ addComment(kgprId: string, body: string, targetId?: string, targetType?: 'entity' | 'relationship'): Promise<KGPRComment | null>;
141
+ /**
142
+ * Submit a review for a KGPR
143
+ */
144
+ submitReview(kgprId: string, status: 'approved' | 'changes_requested' | 'commented', body?: string): Promise<KGPRReview | null>;
145
+ /**
146
+ * Merge a KGPR into the global knowledge graph
147
+ */
148
+ merge(kgprId: string, options?: MergeKGPROptions): Promise<MergeKGPRResult>;
149
+ /**
150
+ * Close a KGPR without merging
151
+ */
152
+ close(kgprId: string, reason?: string): Promise<boolean>;
153
+ }
154
+ /**
155
+ * Create KGPR manager instance
156
+ */
157
+ export declare function createKGPRManager(options?: {
158
+ apiClient?: ApiClient;
159
+ userId?: string;
160
+ userName?: string;
161
+ }): KGPRManager;
162
+ //# sourceMappingURL=kgpr-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kgpr-manager.d.ts","sourceRoot":"","sources":["../../src/kgpr/kgpr-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,465 @@
1
+ /**
2
+ * Knowledge Graph Pull Request (KGPR) - Manager
3
+ *
4
+ * Core logic for creating, managing, and merging KGPRs
5
+ *
6
+ * @packageDocumentation
7
+ * @module @nahisaho/yata-global/kgpr
8
+ *
9
+ * @see REQ-KGPR-001
10
+ */
11
+ import { EventEmitter } from 'events';
12
+ import { createPrivacyFilter, } from './privacy-filter.js';
13
+ /**
14
+ * KGPR Manager
15
+ */
16
+ export class KGPRManager extends EventEmitter {
17
+ apiClient;
18
+ localKG = null;
19
+ drafts = new Map();
20
+ userId;
21
+ userName;
22
+ constructor(options = {}) {
23
+ super();
24
+ this.apiClient = options.apiClient ?? null;
25
+ this.userId = options.userId ?? 'local-user';
26
+ this.userName = options.userName ?? 'Local User';
27
+ }
28
+ /**
29
+ * Connect to local knowledge graph
30
+ */
31
+ connectLocalKG(localKG) {
32
+ this.localKG = localKG;
33
+ }
34
+ /**
35
+ * Generate unique KGPR ID
36
+ */
37
+ generateId() {
38
+ const timestamp = Date.now().toString(36);
39
+ const random = Math.random().toString(36).substring(2, 8);
40
+ return `KGPR-${timestamp}-${random}`;
41
+ }
42
+ /**
43
+ * Create a new KGPR from local knowledge graph
44
+ */
45
+ async create(options) {
46
+ if (!this.localKG) {
47
+ throw new Error('Local knowledge graph not connected');
48
+ }
49
+ const { title, description, sourceNamespace, labels, entityTypes, privacyLevel } = options;
50
+ // Query local KG
51
+ const entities = await this.localKG.queryEntities(sourceNamespace);
52
+ const relationships = await this.localKG.queryRelationships(sourceNamespace);
53
+ // Filter by entity types if specified
54
+ const filteredEntities = entityTypes
55
+ ? entities.filter((e) => entityTypes.includes(e.type))
56
+ : entities;
57
+ // Build diff (all as "add" for new KGPR)
58
+ const diff = {
59
+ entities: {
60
+ added: filteredEntities.map((e) => ({
61
+ changeType: 'add',
62
+ localId: e.id,
63
+ name: e.name,
64
+ entityType: e.type,
65
+ namespace: e.namespace,
66
+ filePath: e.filePath,
67
+ line: e.line,
68
+ metadata: e.metadata,
69
+ })),
70
+ updated: [],
71
+ deleted: [],
72
+ },
73
+ relationships: {
74
+ added: relationships.map((r) => ({
75
+ changeType: 'add',
76
+ localId: r.id,
77
+ sourceName: r.sourceName,
78
+ sourceNamespace: r.sourceNamespace,
79
+ targetName: r.targetName,
80
+ targetNamespace: r.targetNamespace,
81
+ relationshipType: r.type,
82
+ metadata: r.metadata,
83
+ })),
84
+ updated: [],
85
+ deleted: [],
86
+ },
87
+ stats: {
88
+ entitiesAdded: filteredEntities.length,
89
+ entitiesUpdated: 0,
90
+ entitiesDeleted: 0,
91
+ relationshipsAdded: relationships.length,
92
+ relationshipsUpdated: 0,
93
+ relationshipsDeleted: 0,
94
+ totalChanges: filteredEntities.length + relationships.length,
95
+ },
96
+ };
97
+ // Apply privacy filter
98
+ const filter = createPrivacyFilter(privacyLevel ?? 'moderate');
99
+ const filteredDiff = filter.filterDiff(diff);
100
+ // Create KGPR
101
+ const kgpr = {
102
+ id: this.generateId(),
103
+ title,
104
+ description: description ?? '',
105
+ authorId: this.userId,
106
+ authorName: this.userName,
107
+ status: 'draft',
108
+ sourceNamespace: sourceNamespace ?? 'default',
109
+ diff: filteredDiff,
110
+ labels: labels ?? [],
111
+ reviews: [],
112
+ comments: [],
113
+ createdAt: new Date(),
114
+ updatedAt: new Date(),
115
+ };
116
+ // Store as draft
117
+ this.drafts.set(kgpr.id, kgpr);
118
+ this.emit('kgpr:created', { kgpr });
119
+ // Auto-submit if requested
120
+ if (options.autoSubmit) {
121
+ await this.submit(kgpr.id);
122
+ }
123
+ return kgpr;
124
+ }
125
+ /**
126
+ * Get diff preview before creating KGPR
127
+ */
128
+ async previewDiff(options = {}) {
129
+ if (!this.localKG) {
130
+ throw new Error('Local knowledge graph not connected');
131
+ }
132
+ const { sourceNamespace, entityTypes, privacyLevel } = options;
133
+ // Query local KG
134
+ const entities = await this.localKG.queryEntities(sourceNamespace);
135
+ const relationships = await this.localKG.queryRelationships(sourceNamespace);
136
+ // Filter by entity types if specified
137
+ const filteredEntities = entityTypes
138
+ ? entities.filter((e) => entityTypes.includes(e.type))
139
+ : entities;
140
+ // Build diff
141
+ const diff = {
142
+ entities: {
143
+ added: filteredEntities.map((e) => ({
144
+ changeType: 'add',
145
+ localId: e.id,
146
+ name: e.name,
147
+ entityType: e.type,
148
+ namespace: e.namespace,
149
+ filePath: e.filePath,
150
+ line: e.line,
151
+ metadata: e.metadata,
152
+ })),
153
+ updated: [],
154
+ deleted: [],
155
+ },
156
+ relationships: {
157
+ added: relationships.map((r) => ({
158
+ changeType: 'add',
159
+ localId: r.id,
160
+ sourceName: r.sourceName,
161
+ sourceNamespace: r.sourceNamespace,
162
+ targetName: r.targetName,
163
+ targetNamespace: r.targetNamespace,
164
+ relationshipType: r.type,
165
+ metadata: r.metadata,
166
+ })),
167
+ updated: [],
168
+ deleted: [],
169
+ },
170
+ stats: {
171
+ entitiesAdded: filteredEntities.length,
172
+ entitiesUpdated: 0,
173
+ entitiesDeleted: 0,
174
+ relationshipsAdded: relationships.length,
175
+ relationshipsUpdated: 0,
176
+ relationshipsDeleted: 0,
177
+ totalChanges: filteredEntities.length + relationships.length,
178
+ },
179
+ };
180
+ // Apply privacy filter
181
+ const filter = createPrivacyFilter(privacyLevel ?? 'moderate');
182
+ return filter.filterDiff(diff);
183
+ }
184
+ /**
185
+ * Get a draft KGPR
186
+ */
187
+ getDraft(id) {
188
+ return this.drafts.get(id);
189
+ }
190
+ /**
191
+ * List all drafts
192
+ */
193
+ listDrafts() {
194
+ return Array.from(this.drafts.values());
195
+ }
196
+ /**
197
+ * Update a draft KGPR
198
+ */
199
+ updateDraft(id, updates) {
200
+ const draft = this.drafts.get(id);
201
+ if (!draft) {
202
+ throw new Error(`Draft KGPR not found: ${id}`);
203
+ }
204
+ if (draft.status !== 'draft') {
205
+ throw new Error(`Cannot update non-draft KGPR: ${id}`);
206
+ }
207
+ const updated = {
208
+ ...draft,
209
+ ...updates,
210
+ updatedAt: new Date(),
211
+ };
212
+ this.drafts.set(id, updated);
213
+ return updated;
214
+ }
215
+ /**
216
+ * Delete a draft KGPR
217
+ */
218
+ deleteDraft(id) {
219
+ return this.drafts.delete(id);
220
+ }
221
+ /**
222
+ * Submit a KGPR to YATA Global
223
+ */
224
+ async submit(id) {
225
+ const draft = this.drafts.get(id);
226
+ if (!draft) {
227
+ return { success: false, error: `Draft KGPR not found: ${id}` };
228
+ }
229
+ if (!this.apiClient) {
230
+ // Offline mode - just update status
231
+ draft.status = 'open';
232
+ draft.updatedAt = new Date();
233
+ return {
234
+ success: true,
235
+ kgprId: id,
236
+ kgprUrl: undefined,
237
+ qualityScore: undefined,
238
+ duplicateWarnings: [],
239
+ };
240
+ }
241
+ try {
242
+ // Submit to server
243
+ const response = await this.apiClient.post('/kgpr', {
244
+ title: draft.title,
245
+ description: draft.description,
246
+ sourceNamespace: draft.sourceNamespace,
247
+ diff: draft.diff,
248
+ labels: draft.labels,
249
+ });
250
+ if (!response.success || !response.data) {
251
+ return {
252
+ success: false,
253
+ error: response.error ?? 'Failed to submit KGPR',
254
+ };
255
+ }
256
+ // Update draft with server response
257
+ draft.id = response.data.id;
258
+ draft.status = 'open';
259
+ draft.qualityScore = response.data.qualityScore;
260
+ draft.duplicateWarnings = response.data.duplicateWarnings;
261
+ draft.updatedAt = new Date();
262
+ // Remove from drafts (now on server)
263
+ this.drafts.delete(id);
264
+ this.emit('kgpr:submitted', { kgprId: response.data.id });
265
+ return {
266
+ success: true,
267
+ kgprId: response.data.id,
268
+ kgprUrl: response.data.url,
269
+ qualityScore: response.data.qualityScore,
270
+ duplicateWarnings: response.data.duplicateWarnings,
271
+ };
272
+ }
273
+ catch (error) {
274
+ return {
275
+ success: false,
276
+ error: error instanceof Error ? error.message : 'Unknown error',
277
+ };
278
+ }
279
+ }
280
+ /**
281
+ * List KGPRs from YATA Global
282
+ */
283
+ async list(options = {}) {
284
+ if (!this.apiClient) {
285
+ // Offline mode - return only local drafts
286
+ const drafts = this.listDrafts();
287
+ return { kgprs: drafts, total: drafts.length };
288
+ }
289
+ try {
290
+ const params = {};
291
+ if (options.status) {
292
+ params.status = Array.isArray(options.status)
293
+ ? options.status.join(',')
294
+ : options.status;
295
+ }
296
+ if (options.authorId)
297
+ params.authorId = options.authorId;
298
+ if (options.labels)
299
+ params.labels = options.labels.join(',');
300
+ if (options.search)
301
+ params.search = options.search;
302
+ if (options.sortBy)
303
+ params.sortBy = options.sortBy;
304
+ if (options.sortOrder)
305
+ params.sortOrder = options.sortOrder;
306
+ if (options.limit)
307
+ params.limit = options.limit;
308
+ if (options.offset)
309
+ params.offset = options.offset;
310
+ const response = await this.apiClient.get('/kgpr', params);
311
+ if (!response.success || !response.data) {
312
+ return { kgprs: [], total: 0 };
313
+ }
314
+ return response.data;
315
+ }
316
+ catch {
317
+ return { kgprs: [], total: 0 };
318
+ }
319
+ }
320
+ /**
321
+ * Get a specific KGPR
322
+ */
323
+ async get(id) {
324
+ // Check drafts first
325
+ const draft = this.drafts.get(id);
326
+ if (draft)
327
+ return draft;
328
+ if (!this.apiClient) {
329
+ return null;
330
+ }
331
+ try {
332
+ const response = await this.apiClient.get(`/kgpr/${id}`);
333
+ return response.success && response.data ? response.data : null;
334
+ }
335
+ catch {
336
+ return null;
337
+ }
338
+ }
339
+ /**
340
+ * Add a comment to a KGPR
341
+ */
342
+ async addComment(kgprId, body, targetId, targetType) {
343
+ const comment = {
344
+ id: `comment-${Date.now()}`,
345
+ authorId: this.userId,
346
+ authorName: this.userName,
347
+ body,
348
+ targetId,
349
+ targetType,
350
+ createdAt: new Date(),
351
+ };
352
+ // Check if it's a local draft
353
+ const draft = this.drafts.get(kgprId);
354
+ if (draft) {
355
+ draft.comments.push(comment);
356
+ draft.updatedAt = new Date();
357
+ return comment;
358
+ }
359
+ if (!this.apiClient) {
360
+ return null;
361
+ }
362
+ try {
363
+ const response = await this.apiClient.post(`/kgpr/${kgprId}/comments`, { body, targetId, targetType });
364
+ return response.success && response.data ? response.data : null;
365
+ }
366
+ catch {
367
+ return null;
368
+ }
369
+ }
370
+ /**
371
+ * Submit a review for a KGPR
372
+ */
373
+ async submitReview(kgprId, status, body) {
374
+ if (!this.apiClient) {
375
+ return null;
376
+ }
377
+ try {
378
+ const response = await this.apiClient.post(`/kgpr/${kgprId}/reviews`, { status, body });
379
+ if (response.success && response.data) {
380
+ this.emit('kgpr:updated', { kgprId, status: status === 'approved' ? 'approved' : 'changes_requested' });
381
+ return response.data;
382
+ }
383
+ return null;
384
+ }
385
+ catch {
386
+ return null;
387
+ }
388
+ }
389
+ /**
390
+ * Merge a KGPR into the global knowledge graph
391
+ */
392
+ async merge(kgprId, options = {}) {
393
+ if (!this.apiClient) {
394
+ return {
395
+ success: false,
396
+ entitiesMerged: 0,
397
+ relationshipsMerged: 0,
398
+ conflictsResolved: 0,
399
+ skipped: 0,
400
+ error: 'Not connected to YATA Global',
401
+ };
402
+ }
403
+ try {
404
+ const response = await this.apiClient.post(`/kgpr/${kgprId}/merge`, options);
405
+ if (response.success && response.data) {
406
+ this.emit('kgpr:merged', { kgprId });
407
+ return response.data;
408
+ }
409
+ return {
410
+ success: false,
411
+ entitiesMerged: 0,
412
+ relationshipsMerged: 0,
413
+ conflictsResolved: 0,
414
+ skipped: 0,
415
+ error: response.error ?? 'Merge failed',
416
+ };
417
+ }
418
+ catch (error) {
419
+ return {
420
+ success: false,
421
+ entitiesMerged: 0,
422
+ relationshipsMerged: 0,
423
+ conflictsResolved: 0,
424
+ skipped: 0,
425
+ error: error instanceof Error ? error.message : 'Unknown error',
426
+ };
427
+ }
428
+ }
429
+ /**
430
+ * Close a KGPR without merging
431
+ */
432
+ async close(kgprId, reason) {
433
+ // Check if it's a local draft
434
+ const draft = this.drafts.get(kgprId);
435
+ if (draft) {
436
+ draft.status = 'closed';
437
+ draft.closedAt = new Date();
438
+ draft.closedBy = this.userId;
439
+ draft.updatedAt = new Date();
440
+ this.emit('kgpr:closed', { kgprId });
441
+ return true;
442
+ }
443
+ if (!this.apiClient) {
444
+ return false;
445
+ }
446
+ try {
447
+ const response = await this.apiClient.post(`/kgpr/${kgprId}/close`, { reason });
448
+ if (response.success) {
449
+ this.emit('kgpr:closed', { kgprId });
450
+ return true;
451
+ }
452
+ return false;
453
+ }
454
+ catch {
455
+ return false;
456
+ }
457
+ }
458
+ }
459
+ /**
460
+ * Create KGPR manager instance
461
+ */
462
+ export function createKGPRManager(options) {
463
+ return new KGPRManager(options);
464
+ }
465
+ //# 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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"}