@know-graph/core 0.4.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.
Files changed (163) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +47 -0
  3. package/dist/connectors/cache.d.ts +25 -0
  4. package/dist/connectors/cache.d.ts.map +1 -0
  5. package/dist/connectors/cache.js +73 -0
  6. package/dist/connectors/cache.js.map +1 -0
  7. package/dist/connectors/index.d.ts +12 -0
  8. package/dist/connectors/index.d.ts.map +1 -0
  9. package/dist/connectors/index.js +7 -0
  10. package/dist/connectors/index.js.map +1 -0
  11. package/dist/connectors/jira-connector.d.ts +26 -0
  12. package/dist/connectors/jira-connector.d.ts.map +1 -0
  13. package/dist/connectors/jira-connector.js +234 -0
  14. package/dist/connectors/jira-connector.js.map +1 -0
  15. package/dist/connectors/notion-connector.d.ts +24 -0
  16. package/dist/connectors/notion-connector.d.ts.map +1 -0
  17. package/dist/connectors/notion-connector.js +246 -0
  18. package/dist/connectors/notion-connector.js.map +1 -0
  19. package/dist/connectors/rate-limiter.d.ts +23 -0
  20. package/dist/connectors/rate-limiter.d.ts.map +1 -0
  21. package/dist/connectors/rate-limiter.js +54 -0
  22. package/dist/connectors/rate-limiter.js.map +1 -0
  23. package/dist/connectors/registry.d.ts +15 -0
  24. package/dist/connectors/registry.d.ts.map +1 -0
  25. package/dist/connectors/registry.js +72 -0
  26. package/dist/connectors/registry.js.map +1 -0
  27. package/dist/connectors/types.d.ts +142 -0
  28. package/dist/connectors/types.d.ts.map +1 -0
  29. package/dist/connectors/types.js +35 -0
  30. package/dist/connectors/types.js.map +1 -0
  31. package/dist/coverage/__tests__/fixtures/mixed-project/annotated.d.ts +9 -0
  32. package/dist/coverage/__tests__/fixtures/mixed-project/annotated.d.ts.map +1 -0
  33. package/dist/coverage/__tests__/fixtures/mixed-project/annotated.js +11 -0
  34. package/dist/coverage/__tests__/fixtures/mixed-project/annotated.js.map +1 -0
  35. package/dist/coverage/__tests__/fixtures/mixed-project/unannotated.d.ts +2 -0
  36. package/dist/coverage/__tests__/fixtures/mixed-project/unannotated.d.ts.map +1 -0
  37. package/dist/coverage/__tests__/fixtures/mixed-project/unannotated.js +4 -0
  38. package/dist/coverage/__tests__/fixtures/mixed-project/unannotated.js.map +1 -0
  39. package/dist/coverage/coverage-calculator.d.ts +3 -0
  40. package/dist/coverage/coverage-calculator.d.ts.map +1 -0
  41. package/dist/coverage/coverage-calculator.js +204 -0
  42. package/dist/coverage/coverage-calculator.js.map +1 -0
  43. package/dist/coverage/index.d.ts +3 -0
  44. package/dist/coverage/index.d.ts.map +1 -0
  45. package/dist/coverage/index.js +2 -0
  46. package/dist/coverage/index.js.map +1 -0
  47. package/dist/coverage/types.d.ts +38 -0
  48. package/dist/coverage/types.d.ts.map +1 -0
  49. package/dist/coverage/types.js +13 -0
  50. package/dist/coverage/types.js.map +1 -0
  51. package/dist/index.d.ts +17 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +16 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/indexer/database.d.ts +32 -0
  56. package/dist/indexer/database.d.ts.map +1 -0
  57. package/dist/indexer/database.js +242 -0
  58. package/dist/indexer/database.js.map +1 -0
  59. package/dist/indexer/index.d.ts +7 -0
  60. package/dist/indexer/index.d.ts.map +1 -0
  61. package/dist/indexer/index.js +4 -0
  62. package/dist/indexer/index.js.map +1 -0
  63. package/dist/indexer/indexer.d.ts +12 -0
  64. package/dist/indexer/indexer.d.ts.map +1 -0
  65. package/dist/indexer/indexer.js +145 -0
  66. package/dist/indexer/indexer.js.map +1 -0
  67. package/dist/indexer/schema.d.ts +21 -0
  68. package/dist/indexer/schema.d.ts.map +1 -0
  69. package/dist/indexer/schema.js +122 -0
  70. package/dist/indexer/schema.js.map +1 -0
  71. package/dist/indexer/types.d.ts +85 -0
  72. package/dist/indexer/types.d.ts.map +1 -0
  73. package/dist/indexer/types.js +2 -0
  74. package/dist/indexer/types.js.map +1 -0
  75. package/dist/parsers/generic-parser.d.ts +3 -0
  76. package/dist/parsers/generic-parser.d.ts.map +1 -0
  77. package/dist/parsers/generic-parser.js +150 -0
  78. package/dist/parsers/generic-parser.js.map +1 -0
  79. package/dist/parsers/go-parser.d.ts +3 -0
  80. package/dist/parsers/go-parser.d.ts.map +1 -0
  81. package/dist/parsers/go-parser.js +437 -0
  82. package/dist/parsers/go-parser.js.map +1 -0
  83. package/dist/parsers/index.d.ts +10 -0
  84. package/dist/parsers/index.d.ts.map +1 -0
  85. package/dist/parsers/index.js +8 -0
  86. package/dist/parsers/index.js.map +1 -0
  87. package/dist/parsers/java-parser.d.ts +3 -0
  88. package/dist/parsers/java-parser.d.ts.map +1 -0
  89. package/dist/parsers/java-parser.js +321 -0
  90. package/dist/parsers/java-parser.js.map +1 -0
  91. package/dist/parsers/metadata-extractor.d.ts +25 -0
  92. package/dist/parsers/metadata-extractor.d.ts.map +1 -0
  93. package/dist/parsers/metadata-extractor.js +137 -0
  94. package/dist/parsers/metadata-extractor.js.map +1 -0
  95. package/dist/parsers/python-parser.d.ts +3 -0
  96. package/dist/parsers/python-parser.d.ts.map +1 -0
  97. package/dist/parsers/python-parser.js +226 -0
  98. package/dist/parsers/python-parser.js.map +1 -0
  99. package/dist/parsers/registry.d.ts +3 -0
  100. package/dist/parsers/registry.d.ts.map +1 -0
  101. package/dist/parsers/registry.js +41 -0
  102. package/dist/parsers/registry.js.map +1 -0
  103. package/dist/parsers/types.d.ts +23 -0
  104. package/dist/parsers/types.d.ts.map +1 -0
  105. package/dist/parsers/types.js +2 -0
  106. package/dist/parsers/types.js.map +1 -0
  107. package/dist/parsers/typescript-parser.d.ts +3 -0
  108. package/dist/parsers/typescript-parser.d.ts.map +1 -0
  109. package/dist/parsers/typescript-parser.js +321 -0
  110. package/dist/parsers/typescript-parser.js.map +1 -0
  111. package/dist/query/index.d.ts +3 -0
  112. package/dist/query/index.d.ts.map +1 -0
  113. package/dist/query/index.js +2 -0
  114. package/dist/query/index.js.map +1 -0
  115. package/dist/query/query-engine.d.ts +40 -0
  116. package/dist/query/query-engine.d.ts.map +1 -0
  117. package/dist/query/query-engine.js +126 -0
  118. package/dist/query/query-engine.js.map +1 -0
  119. package/dist/suggest/index.d.ts +3 -0
  120. package/dist/suggest/index.d.ts.map +1 -0
  121. package/dist/suggest/index.js +2 -0
  122. package/dist/suggest/index.js.map +1 -0
  123. package/dist/suggest/suggestion-engine.d.ts +7 -0
  124. package/dist/suggest/suggestion-engine.d.ts.map +1 -0
  125. package/dist/suggest/suggestion-engine.js +239 -0
  126. package/dist/suggest/suggestion-engine.js.map +1 -0
  127. package/dist/suggest/types.d.ts +29 -0
  128. package/dist/suggest/types.d.ts.map +1 -0
  129. package/dist/suggest/types.js +13 -0
  130. package/dist/suggest/types.js.map +1 -0
  131. package/dist/types/entity.d.ts +336 -0
  132. package/dist/types/entity.d.ts.map +1 -0
  133. package/dist/types/entity.js +99 -0
  134. package/dist/types/entity.js.map +1 -0
  135. package/dist/types/index.d.ts +6 -0
  136. package/dist/types/index.d.ts.map +1 -0
  137. package/dist/types/index.js +3 -0
  138. package/dist/types/index.js.map +1 -0
  139. package/dist/types/manifest.d.ts +488 -0
  140. package/dist/types/manifest.d.ts.map +1 -0
  141. package/dist/types/manifest.js +66 -0
  142. package/dist/types/manifest.js.map +1 -0
  143. package/dist/types/parse-result.d.ts +25 -0
  144. package/dist/types/parse-result.d.ts.map +1 -0
  145. package/dist/types/parse-result.js +2 -0
  146. package/dist/types/parse-result.js.map +1 -0
  147. package/dist/validation/index.d.ts +5 -0
  148. package/dist/validation/index.d.ts.map +1 -0
  149. package/dist/validation/index.js +3 -0
  150. package/dist/validation/index.js.map +1 -0
  151. package/dist/validation/rules.d.ts +9 -0
  152. package/dist/validation/rules.d.ts.map +1 -0
  153. package/dist/validation/rules.js +119 -0
  154. package/dist/validation/rules.js.map +1 -0
  155. package/dist/validation/types.d.ts +34 -0
  156. package/dist/validation/types.d.ts.map +1 -0
  157. package/dist/validation/types.js +2 -0
  158. package/dist/validation/types.js.map +1 -0
  159. package/dist/validation/validator.d.ts +10 -0
  160. package/dist/validation/validator.d.ts.map +1 -0
  161. package/dist/validation/validator.js +111 -0
  162. package/dist/validation/validator.js.map +1 -0
  163. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-parser.js","sourceRoot":"","sources":["../../src/parsers/typescript-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createQueryEngine } from './query-engine.js';
2
+ export type { QueryEngine, QueryOptions, QueryResult } from './query-engine.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createQueryEngine } from './query-engine.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @knowgraph
3
+ * type: module
4
+ * description: Query engine with FTS5 full-text search, filtering, pagination, and dependency traversal
5
+ * owner: knowgraph-core
6
+ * status: stable
7
+ * tags: [query, search, fts5, filtering]
8
+ * context:
9
+ * business_goal: Enable fast, flexible search across the code knowledge graph
10
+ * domain: query-engine
11
+ */
12
+ import type { DatabaseManager } from '../indexer/database.js';
13
+ import type { EntityType, Status } from '../types/index.js';
14
+ import type { IndexStats, StoredEntity } from '../indexer/types.js';
15
+ export interface QueryOptions {
16
+ readonly query?: string;
17
+ readonly type?: EntityType;
18
+ readonly owner?: string;
19
+ readonly status?: Status;
20
+ readonly tags?: readonly string[];
21
+ readonly filePath?: string;
22
+ readonly limit?: number;
23
+ readonly offset?: number;
24
+ }
25
+ export interface QueryResult {
26
+ readonly entities: readonly StoredEntity[];
27
+ readonly total: number;
28
+ readonly query: QueryOptions;
29
+ }
30
+ export interface QueryEngine {
31
+ search(options: QueryOptions): QueryResult;
32
+ getEntity(id: string): StoredEntity | undefined;
33
+ getDependencies(entityId: string): readonly StoredEntity[];
34
+ getDependents(entityId: string): readonly StoredEntity[];
35
+ getByOwner(owner: string): readonly StoredEntity[];
36
+ getByTag(tag: string): readonly StoredEntity[];
37
+ getStats(): IndexStats;
38
+ }
39
+ export declare function createQueryEngine(dbManager: DatabaseManager): QueryEngine;
40
+ //# sourceMappingURL=query-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-engine.d.ts","sourceRoot":"","sources":["../../src/query/query-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAQ,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEpE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAAC;IAC3C,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IAChD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,CAAC;IAC3D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,CAAC;IACzD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,CAAC;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,CAAC;IAC/C,QAAQ,IAAI,UAAU,CAAC;CACxB;AAqFD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,eAAe,GAAG,WAAW,CAgIzE"}
@@ -0,0 +1,126 @@
1
+ function rowToStoredEntity(row, tags, links) {
2
+ return {
3
+ id: row.id,
4
+ filePath: row.file_path,
5
+ name: row.name,
6
+ entityType: row.entity_type,
7
+ description: row.description,
8
+ rawDocstring: row.raw_docstring,
9
+ signature: row.signature,
10
+ parent: row.parent,
11
+ language: row.language,
12
+ line: row.line,
13
+ column: row.column_num,
14
+ owner: row.owner,
15
+ status: row.status,
16
+ metadata: JSON.parse(row.metadata_json),
17
+ tags,
18
+ links,
19
+ fileHash: row.file_hash,
20
+ createdAt: row.created_at,
21
+ updatedAt: row.updated_at,
22
+ };
23
+ }
24
+ function hydrateEntity(db, row) {
25
+ const tags = db
26
+ .prepare('SELECT tag FROM tags WHERE entity_id = ?')
27
+ .all(row.id).map((r) => r.tag);
28
+ const links = db
29
+ .prepare('SELECT link_type, url, title FROM links WHERE entity_id = ?')
30
+ .all(row.id).map((r) => ({
31
+ type: r.link_type,
32
+ url: r.url,
33
+ title: r.title ?? undefined,
34
+ }));
35
+ return rowToStoredEntity(row, tags, links);
36
+ }
37
+ export function createQueryEngine(dbManager) {
38
+ const { db } = dbManager;
39
+ function search(options) {
40
+ const { query, type, owner, status, tags, filePath, limit = 50, offset = 0, } = options;
41
+ const conditions = [];
42
+ const params = {};
43
+ if (query) {
44
+ conditions.push(`e.id IN (SELECT entity_id FROM entities_fts WHERE entities_fts MATCH @query)`);
45
+ params.query = query;
46
+ }
47
+ if (type) {
48
+ conditions.push('e.entity_type = @type');
49
+ params.type = type;
50
+ }
51
+ if (owner) {
52
+ conditions.push('e.owner = @owner');
53
+ params.owner = owner;
54
+ }
55
+ if (status) {
56
+ conditions.push('e.status = @status');
57
+ params.status = status;
58
+ }
59
+ if (filePath) {
60
+ conditions.push('e.file_path = @filePath');
61
+ params.filePath = filePath;
62
+ }
63
+ if (tags && tags.length > 0) {
64
+ const tagPlaceholders = tags.map((_, i) => `@tag${i}`);
65
+ conditions.push(`e.id IN (SELECT entity_id FROM tags WHERE tag IN (${tagPlaceholders.join(', ')}))`);
66
+ for (let i = 0; i < tags.length; i++) {
67
+ params[`tag${i}`] = tags[i];
68
+ }
69
+ }
70
+ const whereClause = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
71
+ const countSql = `SELECT COUNT(*) as count FROM entities e ${whereClause}`;
72
+ const total = db.prepare(countSql).get(params).count;
73
+ const dataSql = `SELECT e.* FROM entities e ${whereClause} ORDER BY e.name ASC LIMIT @limit OFFSET @offset`;
74
+ params.limit = limit;
75
+ params.offset = offset;
76
+ const rows = db.prepare(dataSql).all(params);
77
+ const entities = rows.map((row) => hydrateEntity(db, row));
78
+ return { entities, total, query: options };
79
+ }
80
+ function getEntity(id) {
81
+ return dbManager.getEntityById(id);
82
+ }
83
+ function getDependencies(entityId) {
84
+ const rows = db
85
+ .prepare(`SELECT e.* FROM entities e
86
+ JOIN relationships r ON e.id = r.target_id
87
+ WHERE r.source_id = ?`)
88
+ .all(entityId);
89
+ return rows.map((row) => hydrateEntity(db, row));
90
+ }
91
+ function getDependents(entityId) {
92
+ const rows = db
93
+ .prepare(`SELECT e.* FROM entities e
94
+ JOIN relationships r ON e.id = r.source_id
95
+ WHERE r.target_id = ?`)
96
+ .all(entityId);
97
+ return rows.map((row) => hydrateEntity(db, row));
98
+ }
99
+ function getByOwner(owner) {
100
+ const rows = db
101
+ .prepare('SELECT * FROM entities WHERE owner = ?')
102
+ .all(owner);
103
+ return rows.map((row) => hydrateEntity(db, row));
104
+ }
105
+ function getByTag(tag) {
106
+ const rows = db
107
+ .prepare(`SELECT e.* FROM entities e
108
+ JOIN tags t ON e.id = t.entity_id
109
+ WHERE t.tag = ?`)
110
+ .all(tag);
111
+ return rows.map((row) => hydrateEntity(db, row));
112
+ }
113
+ function getStats() {
114
+ return dbManager.getStats();
115
+ }
116
+ return {
117
+ search,
118
+ getEntity,
119
+ getDependencies,
120
+ getDependents,
121
+ getByOwner,
122
+ getByTag,
123
+ getStats,
124
+ };
125
+ }
126
+ //# sourceMappingURL=query-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-engine.js","sourceRoot":"","sources":["../../src/query/query-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { SuggestionReason, FileSuggestion, SuggestionOptions, SuggestionResult, } from './types.js';
2
+ export { createSuggestionEngine } from './suggestion-engine.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/suggest/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createSuggestionEngine } from './suggestion-engine.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/suggest/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ParserRegistry } from '../parsers/types.js';
2
+ import type { SuggestionOptions, SuggestionResult } from './types.js';
3
+ export interface SuggestionEngine {
4
+ readonly suggest: (options: SuggestionOptions) => SuggestionResult;
5
+ }
6
+ export declare function createSuggestionEngine(_registry: ParserRegistry): SuggestionEngine;
7
+ //# sourceMappingURL=suggestion-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggestion-engine.d.ts","sourceRoot":"","sources":["../../src/suggest/suggestion-engine.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAEV,iBAAiB,EAEjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAmPpB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,gBAAgB,CAAC;CACpE;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,cAAc,GACxB,gBAAgB,CAyBlB"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * @knowgraph
3
+ * type: module
4
+ * description: Suggestion engine that scores and ranks unannotated files by annotation priority
5
+ * owner: knowgraph-core
6
+ * status: experimental
7
+ * tags: [suggest, engine, scoring, heuristics]
8
+ * context:
9
+ * business_goal: Help developers find the most impactful files to annotate next
10
+ * domain: suggest-engine
11
+ */
12
+ import { readFileSync, readdirSync, statSync } from 'node:fs';
13
+ import { join, extname, basename, relative } from 'node:path';
14
+ const KNOWGRAPH_MARKER = '@knowgraph';
15
+ const ENTRY_POINT_NAMES = new Set([
16
+ 'index.ts',
17
+ 'index.js',
18
+ 'index.tsx',
19
+ 'index.jsx',
20
+ 'main.ts',
21
+ 'main.js',
22
+ 'app.ts',
23
+ 'app.js',
24
+ 'main.py',
25
+ 'app.py',
26
+ '__init__.py',
27
+ 'server.ts',
28
+ 'server.js',
29
+ ]);
30
+ const PARSABLE_EXTENSIONS = new Set([
31
+ '.py',
32
+ '.ts',
33
+ '.tsx',
34
+ '.js',
35
+ '.jsx',
36
+ ]);
37
+ const SKIP_DIRS = new Set([
38
+ 'node_modules',
39
+ '.git',
40
+ 'dist',
41
+ 'build',
42
+ '__pycache__',
43
+ '.venv',
44
+ 'venv',
45
+ 'coverage',
46
+ '.next',
47
+ '.knowgraph',
48
+ ]);
49
+ const CONFIG_PATTERNS = new Set([
50
+ 'eslint.config.js',
51
+ 'eslint.config.ts',
52
+ 'vitest.config.ts',
53
+ 'vitest.config.js',
54
+ 'jest.config.ts',
55
+ 'jest.config.js',
56
+ 'tsconfig.json',
57
+ 'babel.config.js',
58
+ 'webpack.config.js',
59
+ 'rollup.config.js',
60
+ 'vite.config.ts',
61
+ 'vite.config.js',
62
+ 'prettier.config.js',
63
+ 'postcss.config.js',
64
+ 'tailwind.config.js',
65
+ 'tailwind.config.ts',
66
+ ]);
67
+ const PRIMARY_LANGUAGE_EXTENSIONS = new Set([
68
+ '.ts',
69
+ '.tsx',
70
+ '.py',
71
+ ]);
72
+ function isTestFile(fileName) {
73
+ return (fileName.includes('.test.') ||
74
+ fileName.includes('.spec.') ||
75
+ fileName.includes('__test__') ||
76
+ fileName.startsWith('test_'));
77
+ }
78
+ function isConfigFile(fileName) {
79
+ return CONFIG_PATTERNS.has(fileName) || fileName.startsWith('.');
80
+ }
81
+ function isFixtureFile(filePath) {
82
+ return (filePath.includes('/fixtures/') ||
83
+ filePath.includes('/__fixtures__/') ||
84
+ filePath.includes('/fixture/'));
85
+ }
86
+ function hasKnowgraphAnnotation(content) {
87
+ return content.includes(KNOWGRAPH_MARKER);
88
+ }
89
+ function countImports(content) {
90
+ const importRegex = /^(?:import\s|from\s|const\s+\w+\s*=\s*require\()/gm;
91
+ const matches = content.match(importRegex);
92
+ return matches?.length ?? 0;
93
+ }
94
+ function countLines(content) {
95
+ if (content.length === 0)
96
+ return 0;
97
+ return content.split('\n').length;
98
+ }
99
+ function extensionToLanguage(ext) {
100
+ switch (ext) {
101
+ case '.py':
102
+ return 'python';
103
+ case '.ts':
104
+ case '.tsx':
105
+ return 'typescript';
106
+ case '.js':
107
+ case '.jsx':
108
+ return 'javascript';
109
+ default:
110
+ return 'unknown';
111
+ }
112
+ }
113
+ function isInSrcDirectory(filePath) {
114
+ return filePath.includes('/src/') || filePath.startsWith('src/');
115
+ }
116
+ function collectFiles(rootDir) {
117
+ const results = [];
118
+ function walk(dir) {
119
+ let entries;
120
+ try {
121
+ entries = readdirSync(dir);
122
+ }
123
+ catch {
124
+ return;
125
+ }
126
+ for (const entry of entries) {
127
+ if (entry.startsWith('.') || SKIP_DIRS.has(entry))
128
+ continue;
129
+ const fullPath = join(dir, entry);
130
+ try {
131
+ const stat = statSync(fullPath);
132
+ if (stat.isDirectory()) {
133
+ walk(fullPath);
134
+ }
135
+ else if (stat.isFile()) {
136
+ const ext = extname(entry);
137
+ if (PARSABLE_EXTENSIONS.has(ext)) {
138
+ results.push(fullPath);
139
+ }
140
+ }
141
+ }
142
+ catch {
143
+ // Skip inaccessible files
144
+ }
145
+ }
146
+ }
147
+ walk(rootDir);
148
+ return results;
149
+ }
150
+ function analyzeFile(filePath, rootDir) {
151
+ try {
152
+ const content = readFileSync(filePath, 'utf-8');
153
+ const fileName = basename(filePath);
154
+ const relativePath = relative(rootDir, filePath);
155
+ return {
156
+ filePath,
157
+ relativePath,
158
+ fileName,
159
+ content,
160
+ lineCount: countLines(content),
161
+ importCount: countImports(content),
162
+ extension: extname(fileName),
163
+ isAnnotated: hasKnowgraphAnnotation(content),
164
+ };
165
+ }
166
+ catch {
167
+ return null;
168
+ }
169
+ }
170
+ function scoreFile(analysis) {
171
+ let score = 0;
172
+ const reasons = [];
173
+ if (ENTRY_POINT_NAMES.has(analysis.fileName)) {
174
+ score += 100;
175
+ reasons.push('entry-point');
176
+ }
177
+ if (analysis.lineCount > 200) {
178
+ score += 100;
179
+ reasons.push('large-file');
180
+ }
181
+ else if (analysis.lineCount > 100) {
182
+ score += 50;
183
+ reasons.push('large-file');
184
+ }
185
+ if (isInSrcDirectory(analysis.relativePath)) {
186
+ score += 20;
187
+ reasons.push('exported-module');
188
+ }
189
+ if (analysis.importCount > 10) {
190
+ score += 60;
191
+ reasons.push('many-imports');
192
+ }
193
+ else if (analysis.importCount > 5) {
194
+ score += 30;
195
+ reasons.push('many-imports');
196
+ }
197
+ if (PRIMARY_LANGUAGE_EXTENSIONS.has(analysis.extension)) {
198
+ score += 10;
199
+ }
200
+ if (reasons.length === 0) {
201
+ reasons.push('uncovered');
202
+ }
203
+ return {
204
+ filePath: analysis.relativePath,
205
+ score,
206
+ reasons,
207
+ language: extensionToLanguage(analysis.extension),
208
+ lineCount: analysis.lineCount,
209
+ };
210
+ }
211
+ function shouldExclude(analysis) {
212
+ return (isTestFile(analysis.fileName) ||
213
+ isConfigFile(analysis.fileName) ||
214
+ isFixtureFile(analysis.relativePath) ||
215
+ analysis.isAnnotated);
216
+ }
217
+ export function createSuggestionEngine(_registry) {
218
+ return {
219
+ suggest(options) {
220
+ const { rootDir, limit = 10 } = options;
221
+ const allFiles = collectFiles(rootDir);
222
+ const analyses = allFiles
223
+ .map((f) => analyzeFile(f, rootDir))
224
+ .filter((a) => a !== null);
225
+ const totalFiles = analyses.length;
226
+ const unannotated = analyses.filter((a) => !shouldExclude(a));
227
+ const totalUnannotated = unannotated.length;
228
+ const scored = unannotated.map(scoreFile);
229
+ const sorted = [...scored].sort((a, b) => b.score - a.score);
230
+ const suggestions = sorted.slice(0, limit);
231
+ return {
232
+ suggestions,
233
+ totalUnannotated,
234
+ totalFiles,
235
+ };
236
+ },
237
+ };
238
+ }
239
+ //# sourceMappingURL=suggestion-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggestion-engine.js","sourceRoot":"","sources":["../../src/suggest/suggestion-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @knowgraph
3
+ * type: interface
4
+ * description: Types for the file suggestion engine that ranks unannotated files by annotation priority
5
+ * owner: knowgraph-core
6
+ * status: experimental
7
+ * tags: [suggest, types, interface]
8
+ * context:
9
+ * business_goal: Define contracts for the suggestion engine output
10
+ * domain: suggest-engine
11
+ */
12
+ export type SuggestionReason = 'entry-point' | 'large-file' | 'many-imports' | 'exported-module' | 'uncovered';
13
+ export interface FileSuggestion {
14
+ readonly filePath: string;
15
+ readonly score: number;
16
+ readonly reasons: readonly SuggestionReason[];
17
+ readonly language: string;
18
+ readonly lineCount: number;
19
+ }
20
+ export interface SuggestionOptions {
21
+ readonly limit?: number;
22
+ readonly rootDir: string;
23
+ }
24
+ export interface SuggestionResult {
25
+ readonly suggestions: readonly FileSuggestion[];
26
+ readonly totalUnannotated: number;
27
+ readonly totalFiles: number;
28
+ }
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/suggest/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,WAAW,CAAC;AAEhB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @knowgraph
3
+ * type: interface
4
+ * description: Types for the file suggestion engine that ranks unannotated files by annotation priority
5
+ * owner: knowgraph-core
6
+ * status: experimental
7
+ * tags: [suggest, types, interface]
8
+ * context:
9
+ * business_goal: Define contracts for the suggestion engine output
10
+ * domain: suggest-engine
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/suggest/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}