driftdetect-core 0.1.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 (221) hide show
  1. package/dist/analyzers/ast-analyzer.d.ts +251 -0
  2. package/dist/analyzers/ast-analyzer.d.ts.map +1 -0
  3. package/dist/analyzers/ast-analyzer.js +548 -0
  4. package/dist/analyzers/ast-analyzer.js.map +1 -0
  5. package/dist/analyzers/flow-analyzer.d.ts +241 -0
  6. package/dist/analyzers/flow-analyzer.d.ts.map +1 -0
  7. package/dist/analyzers/flow-analyzer.js +1219 -0
  8. package/dist/analyzers/flow-analyzer.js.map +1 -0
  9. package/dist/analyzers/index.d.ts +18 -0
  10. package/dist/analyzers/index.d.ts.map +1 -0
  11. package/dist/analyzers/index.js +19 -0
  12. package/dist/analyzers/index.js.map +1 -0
  13. package/dist/analyzers/semantic-analyzer.d.ts +252 -0
  14. package/dist/analyzers/semantic-analyzer.d.ts.map +1 -0
  15. package/dist/analyzers/semantic-analyzer.js +1182 -0
  16. package/dist/analyzers/semantic-analyzer.js.map +1 -0
  17. package/dist/analyzers/type-analyzer.d.ts +289 -0
  18. package/dist/analyzers/type-analyzer.d.ts.map +1 -0
  19. package/dist/analyzers/type-analyzer.js +1269 -0
  20. package/dist/analyzers/type-analyzer.js.map +1 -0
  21. package/dist/analyzers/types.d.ts +537 -0
  22. package/dist/analyzers/types.d.ts.map +1 -0
  23. package/dist/analyzers/types.js +11 -0
  24. package/dist/analyzers/types.js.map +1 -0
  25. package/dist/config/config-loader.d.ts +166 -0
  26. package/dist/config/config-loader.d.ts.map +1 -0
  27. package/dist/config/config-loader.js +429 -0
  28. package/dist/config/config-loader.js.map +1 -0
  29. package/dist/config/config-validator.d.ts +204 -0
  30. package/dist/config/config-validator.d.ts.map +1 -0
  31. package/dist/config/config-validator.js +632 -0
  32. package/dist/config/config-validator.js.map +1 -0
  33. package/dist/config/defaults.d.ts +8 -0
  34. package/dist/config/defaults.d.ts.map +1 -0
  35. package/dist/config/defaults.js +26 -0
  36. package/dist/config/defaults.js.map +1 -0
  37. package/dist/config/index.d.ts +10 -0
  38. package/dist/config/index.d.ts.map +1 -0
  39. package/dist/config/index.js +10 -0
  40. package/dist/config/index.js.map +1 -0
  41. package/dist/config/types.d.ts +47 -0
  42. package/dist/config/types.d.ts.map +1 -0
  43. package/dist/config/types.js +7 -0
  44. package/dist/config/types.js.map +1 -0
  45. package/dist/index.d.ts +37 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +39 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/manifest/exporter.d.ts +21 -0
  50. package/dist/manifest/exporter.d.ts.map +1 -0
  51. package/dist/manifest/exporter.js +339 -0
  52. package/dist/manifest/exporter.js.map +1 -0
  53. package/dist/manifest/index.d.ts +14 -0
  54. package/dist/manifest/index.d.ts.map +1 -0
  55. package/dist/manifest/index.js +15 -0
  56. package/dist/manifest/index.js.map +1 -0
  57. package/dist/manifest/manifest-store.d.ts +111 -0
  58. package/dist/manifest/manifest-store.d.ts.map +1 -0
  59. package/dist/manifest/manifest-store.js +418 -0
  60. package/dist/manifest/manifest-store.js.map +1 -0
  61. package/dist/manifest/types.d.ts +238 -0
  62. package/dist/manifest/types.d.ts.map +1 -0
  63. package/dist/manifest/types.js +11 -0
  64. package/dist/manifest/types.js.map +1 -0
  65. package/dist/matcher/confidence-scorer.d.ts +188 -0
  66. package/dist/matcher/confidence-scorer.d.ts.map +1 -0
  67. package/dist/matcher/confidence-scorer.js +302 -0
  68. package/dist/matcher/confidence-scorer.js.map +1 -0
  69. package/dist/matcher/index.d.ts +24 -0
  70. package/dist/matcher/index.d.ts.map +1 -0
  71. package/dist/matcher/index.js +26 -0
  72. package/dist/matcher/index.js.map +1 -0
  73. package/dist/matcher/outlier-detector.d.ts +252 -0
  74. package/dist/matcher/outlier-detector.d.ts.map +1 -0
  75. package/dist/matcher/outlier-detector.js +544 -0
  76. package/dist/matcher/outlier-detector.js.map +1 -0
  77. package/dist/matcher/pattern-matcher.d.ts +169 -0
  78. package/dist/matcher/pattern-matcher.d.ts.map +1 -0
  79. package/dist/matcher/pattern-matcher.js +692 -0
  80. package/dist/matcher/pattern-matcher.js.map +1 -0
  81. package/dist/matcher/types.d.ts +476 -0
  82. package/dist/matcher/types.d.ts.map +1 -0
  83. package/dist/matcher/types.js +36 -0
  84. package/dist/matcher/types.js.map +1 -0
  85. package/dist/parsers/base-parser.d.ts +282 -0
  86. package/dist/parsers/base-parser.d.ts.map +1 -0
  87. package/dist/parsers/base-parser.js +421 -0
  88. package/dist/parsers/base-parser.js.map +1 -0
  89. package/dist/parsers/css-parser.d.ts +225 -0
  90. package/dist/parsers/css-parser.d.ts.map +1 -0
  91. package/dist/parsers/css-parser.js +477 -0
  92. package/dist/parsers/css-parser.js.map +1 -0
  93. package/dist/parsers/index.d.ts +15 -0
  94. package/dist/parsers/index.d.ts.map +1 -0
  95. package/dist/parsers/index.js +15 -0
  96. package/dist/parsers/index.js.map +1 -0
  97. package/dist/parsers/json-parser.d.ts +219 -0
  98. package/dist/parsers/json-parser.d.ts.map +1 -0
  99. package/dist/parsers/json-parser.js +602 -0
  100. package/dist/parsers/json-parser.js.map +1 -0
  101. package/dist/parsers/markdown-parser.d.ts +276 -0
  102. package/dist/parsers/markdown-parser.d.ts.map +1 -0
  103. package/dist/parsers/markdown-parser.js +731 -0
  104. package/dist/parsers/markdown-parser.js.map +1 -0
  105. package/dist/parsers/parser-manager.d.ts +294 -0
  106. package/dist/parsers/parser-manager.d.ts.map +1 -0
  107. package/dist/parsers/parser-manager.js +738 -0
  108. package/dist/parsers/parser-manager.js.map +1 -0
  109. package/dist/parsers/python-parser.d.ts +204 -0
  110. package/dist/parsers/python-parser.d.ts.map +1 -0
  111. package/dist/parsers/python-parser.js +517 -0
  112. package/dist/parsers/python-parser.js.map +1 -0
  113. package/dist/parsers/types.d.ts +43 -0
  114. package/dist/parsers/types.d.ts.map +1 -0
  115. package/dist/parsers/types.js +7 -0
  116. package/dist/parsers/types.js.map +1 -0
  117. package/dist/parsers/typescript-parser.d.ts +264 -0
  118. package/dist/parsers/typescript-parser.d.ts.map +1 -0
  119. package/dist/parsers/typescript-parser.js +658 -0
  120. package/dist/parsers/typescript-parser.js.map +1 -0
  121. package/dist/rules/evaluator.d.ts +305 -0
  122. package/dist/rules/evaluator.d.ts.map +1 -0
  123. package/dist/rules/evaluator.js +579 -0
  124. package/dist/rules/evaluator.js.map +1 -0
  125. package/dist/rules/index.d.ts +13 -0
  126. package/dist/rules/index.d.ts.map +1 -0
  127. package/dist/rules/index.js +13 -0
  128. package/dist/rules/index.js.map +1 -0
  129. package/dist/rules/quick-fix-generator.d.ts +334 -0
  130. package/dist/rules/quick-fix-generator.d.ts.map +1 -0
  131. package/dist/rules/quick-fix-generator.js +1075 -0
  132. package/dist/rules/quick-fix-generator.js.map +1 -0
  133. package/dist/rules/rule-engine.d.ts +241 -0
  134. package/dist/rules/rule-engine.d.ts.map +1 -0
  135. package/dist/rules/rule-engine.js +585 -0
  136. package/dist/rules/rule-engine.js.map +1 -0
  137. package/dist/rules/severity-manager.d.ts +394 -0
  138. package/dist/rules/severity-manager.d.ts.map +1 -0
  139. package/dist/rules/severity-manager.js +619 -0
  140. package/dist/rules/severity-manager.js.map +1 -0
  141. package/dist/rules/types.d.ts +370 -0
  142. package/dist/rules/types.d.ts.map +1 -0
  143. package/dist/rules/types.js +133 -0
  144. package/dist/rules/types.js.map +1 -0
  145. package/dist/rules/variant-manager.d.ts +388 -0
  146. package/dist/rules/variant-manager.d.ts.map +1 -0
  147. package/dist/rules/variant-manager.js +777 -0
  148. package/dist/rules/variant-manager.js.map +1 -0
  149. package/dist/scanner/change-detector.d.ts +164 -0
  150. package/dist/scanner/change-detector.d.ts.map +1 -0
  151. package/dist/scanner/change-detector.js +263 -0
  152. package/dist/scanner/change-detector.js.map +1 -0
  153. package/dist/scanner/dependency-graph.d.ts +270 -0
  154. package/dist/scanner/dependency-graph.d.ts.map +1 -0
  155. package/dist/scanner/dependency-graph.js +436 -0
  156. package/dist/scanner/dependency-graph.js.map +1 -0
  157. package/dist/scanner/file-walker.d.ts +127 -0
  158. package/dist/scanner/file-walker.d.ts.map +1 -0
  159. package/dist/scanner/file-walker.js +526 -0
  160. package/dist/scanner/file-walker.js.map +1 -0
  161. package/dist/scanner/index.d.ts +12 -0
  162. package/dist/scanner/index.d.ts.map +1 -0
  163. package/dist/scanner/index.js +12 -0
  164. package/dist/scanner/index.js.map +1 -0
  165. package/dist/scanner/types.d.ts +218 -0
  166. package/dist/scanner/types.d.ts.map +1 -0
  167. package/dist/scanner/types.js +10 -0
  168. package/dist/scanner/types.js.map +1 -0
  169. package/dist/scanner/worker-pool.d.ts +317 -0
  170. package/dist/scanner/worker-pool.d.ts.map +1 -0
  171. package/dist/scanner/worker-pool.js +571 -0
  172. package/dist/scanner/worker-pool.js.map +1 -0
  173. package/dist/store/cache-manager.d.ts +179 -0
  174. package/dist/store/cache-manager.d.ts.map +1 -0
  175. package/dist/store/cache-manager.js +391 -0
  176. package/dist/store/cache-manager.js.map +1 -0
  177. package/dist/store/history-store.d.ts +314 -0
  178. package/dist/store/history-store.d.ts.map +1 -0
  179. package/dist/store/history-store.js +707 -0
  180. package/dist/store/history-store.js.map +1 -0
  181. package/dist/store/index.d.ts +20 -0
  182. package/dist/store/index.d.ts.map +1 -0
  183. package/dist/store/index.js +26 -0
  184. package/dist/store/index.js.map +1 -0
  185. package/dist/store/lock-file-manager.d.ts +202 -0
  186. package/dist/store/lock-file-manager.d.ts.map +1 -0
  187. package/dist/store/lock-file-manager.js +475 -0
  188. package/dist/store/lock-file-manager.js.map +1 -0
  189. package/dist/store/pattern-store.d.ts +289 -0
  190. package/dist/store/pattern-store.d.ts.map +1 -0
  191. package/dist/store/pattern-store.js +936 -0
  192. package/dist/store/pattern-store.js.map +1 -0
  193. package/dist/store/schema-validator.d.ts +159 -0
  194. package/dist/store/schema-validator.d.ts.map +1 -0
  195. package/dist/store/schema-validator.js +1096 -0
  196. package/dist/store/schema-validator.js.map +1 -0
  197. package/dist/store/types.d.ts +585 -0
  198. package/dist/store/types.d.ts.map +1 -0
  199. package/dist/store/types.js +82 -0
  200. package/dist/store/types.js.map +1 -0
  201. package/dist/types/analysis.d.ts +19 -0
  202. package/dist/types/analysis.d.ts.map +1 -0
  203. package/dist/types/analysis.js +5 -0
  204. package/dist/types/analysis.js.map +1 -0
  205. package/dist/types/common.d.ts +7 -0
  206. package/dist/types/common.d.ts.map +1 -0
  207. package/dist/types/common.js +5 -0
  208. package/dist/types/common.js.map +1 -0
  209. package/dist/types/index.d.ts +12 -0
  210. package/dist/types/index.d.ts.map +1 -0
  211. package/dist/types/index.js +10 -0
  212. package/dist/types/index.js.map +1 -0
  213. package/dist/types/patterns.d.ts +40 -0
  214. package/dist/types/patterns.d.ts.map +1 -0
  215. package/dist/types/patterns.js +7 -0
  216. package/dist/types/patterns.js.map +1 -0
  217. package/dist/types/violations.d.ts +7 -0
  218. package/dist/types/violations.d.ts.map +1 -0
  219. package/dist/types/violations.js +7 -0
  220. package/dist/types/violations.js.map +1 -0
  221. package/package.json +46 -0
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Config Defaults - Default configuration values
3
+ *
4
+ * @requirements 36.1
5
+ */
6
+ export const DEFAULT_CONFIG = {
7
+ severity: {},
8
+ ignore: ['node_modules', '.git', 'dist', 'build'],
9
+ ai: {
10
+ provider: 'openai',
11
+ },
12
+ ci: {
13
+ failOn: 'error',
14
+ reportFormat: 'text',
15
+ },
16
+ learning: {
17
+ autoApproveThreshold: 0.95,
18
+ minOccurrences: 3,
19
+ },
20
+ performance: {
21
+ maxWorkers: 4,
22
+ cacheEnabled: true,
23
+ incrementalAnalysis: true,
24
+ },
25
+ };
26
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IACjD,EAAE,EAAE;QACF,QAAQ,EAAE,QAAQ;KACnB;IACD,EAAE,EAAE;QACF,MAAM,EAAE,OAAO;QACf,YAAY,EAAE,MAAM;KACrB;IACD,QAAQ,EAAE;QACR,oBAAoB,EAAE,IAAI;QAC1B,cAAc,EAAE,CAAC;KAClB;IACD,WAAW,EAAE;QACX,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,IAAI;QAClB,mBAAmB,EAAE,IAAI;KAC1B;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Config module exports
3
+ *
4
+ * Provides configuration loading and validation.
5
+ */
6
+ export * from './types.js';
7
+ export * from './defaults.js';
8
+ export * from './config-loader.js';
9
+ export * from './config-validator.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Config module exports
3
+ *
4
+ * Provides configuration loading and validation.
5
+ */
6
+ export * from './types.js';
7
+ export * from './defaults.js';
8
+ export * from './config-loader.js';
9
+ export * from './config-validator.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Config type definitions
3
+ *
4
+ * @requirements 36.1
5
+ */
6
+ import type { Severity } from '../store/types.js';
7
+ export interface DriftConfig {
8
+ /** Severity overrides per pattern */
9
+ severity?: Record<string, Severity>;
10
+ /** Files/folders to ignore */
11
+ ignore?: string[];
12
+ /** AI configuration (BYOK) */
13
+ ai?: AIConfig;
14
+ /** CI mode settings */
15
+ ci?: CIConfig;
16
+ /** Learning settings */
17
+ learning?: LearningConfig;
18
+ /** Performance settings */
19
+ performance?: PerformanceConfig;
20
+ }
21
+ export interface AIConfig {
22
+ /** AI provider to use */
23
+ provider: 'openai' | 'anthropic' | 'ollama';
24
+ /** Model to use */
25
+ model?: string;
26
+ }
27
+ export interface CIConfig {
28
+ /** Severity level that causes failure */
29
+ failOn: 'error' | 'warning' | 'none';
30
+ /** Report format */
31
+ reportFormat: 'json' | 'text' | 'github' | 'gitlab';
32
+ }
33
+ export interface LearningConfig {
34
+ /** Auto-approve patterns above this confidence */
35
+ autoApproveThreshold: number;
36
+ /** Minimum occurrences to detect pattern */
37
+ minOccurrences: number;
38
+ }
39
+ export interface PerformanceConfig {
40
+ /** Maximum worker threads */
41
+ maxWorkers: number;
42
+ /** Enable caching */
43
+ cacheEnabled: boolean;
44
+ /** Enable incremental analysis */
45
+ incrementalAnalysis: boolean;
46
+ }
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEpC,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,8BAA8B;IAC9B,EAAE,CAAC,EAAE,QAAQ,CAAC;IAEd,uBAAuB;IACvB,EAAE,CAAC,EAAE,QAAQ,CAAC;IAEd,wBAAwB;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,2BAA2B;IAC3B,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,QAAQ;IACvB,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,yCAAyC;IACzC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACrC,oBAAoB;IACpB,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACrD;AAED,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,kCAAkC;IAClC,mBAAmB,EAAE,OAAO,CAAC;CAC9B"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Config type definitions
3
+ *
4
+ * @requirements 36.1
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @drift/core - Core pattern detection and analysis engine
3
+ *
4
+ * This package provides the foundational components for Drift:
5
+ * - Scanner: File system analysis and dependency graph
6
+ * - Parsers: Multi-language AST parsing via Tree-sitter
7
+ * - Analyzers: AST, type, semantic, and flow analysis
8
+ * - Matcher: Pattern matching and confidence scoring
9
+ * - Store: Pattern persistence and history tracking
10
+ * - Rules: Violation evaluation and quick fix generation
11
+ * - Config: Configuration loading and validation
12
+ */
13
+ export declare const VERSION = "0.0.1";
14
+ export * from './types/index.js';
15
+ export * from './scanner/index.js';
16
+ export type { Language, AST, ASTNode, ParseResult, ParseError, Position as ParserPosition, } from './parsers/types.js';
17
+ export { BaseParser } from './parsers/base-parser.js';
18
+ export { ParserManager } from './parsers/parser-manager.js';
19
+ export { TypeScriptParser } from './parsers/typescript-parser.js';
20
+ export { PythonParser } from './parsers/python-parser.js';
21
+ export { CSSParser } from './parsers/css-parser.js';
22
+ export { JSONParser } from './parsers/json-parser.js';
23
+ export { MarkdownParser } from './parsers/markdown-parser.js';
24
+ export * from './analyzers/index.js';
25
+ export type { PatternMatch, PatternMatchResult, AggregatedMatchResult, Location as MatchLocation, SourceRange, MatchType, ExtendedMatchType, ConfidenceLevel, ConfidenceScore, ConfidenceWeights, ConfidenceInput, PatternDefinition, ASTMatchConfig, RegexMatchConfig, StructuralMatchConfig, PatternMetadata as MatcherPatternMetadata, OutlierInfo, OutlierType, OutlierSignificance, OutlierContext, OutlierStatistics, OutlierDetectionResult, OutlierDetectionMethod, MatcherConfig, MatcherCacheConfig, MatcherContext, MatchingResult, MatchingError, } from './matcher/types.js';
26
+ export { CONFIDENCE_THRESHOLDS, DEFAULT_CONFIDENCE_WEIGHTS, } from './matcher/types.js';
27
+ export type { PatternFile, StoredPattern, DetectorConfig, ConfidenceInfo, PatternLocation, OutlierLocation, PatternStoreConfig, PatternCategory, PatternStatus, Pattern, VariantScope, PatternVariant } from './store/types.js';
28
+ export { CacheManager } from './store/cache-manager.js';
29
+ export type { CacheManagerOptions, CacheEntry, CacheStats } from './store/cache-manager.js';
30
+ export { PatternStore, PatternNotFoundError, InvalidStateTransitionError, PatternStoreError } from './store/pattern-store.js';
31
+ export type { Position as RulePosition, Violation, QuickFix, Range, Severity, ViolationInput, RuleEvaluationResult, RuleEvaluationSummary, RuleEvaluationError } from './rules/types.js';
32
+ export { Evaluator, createEvaluator, createEvaluatorWithConfig, createEvaluatorWithAI, type EvaluatorConfig, type EvaluationInput, type EvaluationResult, type EvaluationSummary } from './rules/evaluator.js';
33
+ export { RuleEngine, createRuleEngine, createRuleEngineWithConfig, createRuleEngineWithAI, type RuleEngineConfig, type RuleEvaluationInput, type PatternWithContext } from './rules/rule-engine.js';
34
+ export { VariantManager, VariantNotFoundError, VariantManagerError, InvalidVariantInputError, type CreateVariantInput, type UpdateVariantInput, type VariantQuery, type VariantManagerEvent, type VariantManagerEventType, type VariantManagerConfig } from './rules/variant-manager.js';
35
+ export * from './config/index.js';
36
+ export * from './manifest/index.js';
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAGnC,YAAY,EACV,QAAQ,EACR,GAAG,EACH,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,IAAI,cAAc,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,cAAc,sBAAsB,CAAC;AAGrC,YAAY,EAEV,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,IAAI,aAAa,EACzB,WAAW,EAGX,SAAS,EACT,iBAAiB,EAGjB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,eAAe,EAGf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,IAAI,sBAAsB,EAGzC,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EAGtB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChO,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG9H,YAAY,EAAE,QAAQ,IAAI,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzL,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/M,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACpM,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGzR,cAAc,mBAAmB,CAAC;AAGlC,cAAc,qBAAqB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @drift/core - Core pattern detection and analysis engine
3
+ *
4
+ * This package provides the foundational components for Drift:
5
+ * - Scanner: File system analysis and dependency graph
6
+ * - Parsers: Multi-language AST parsing via Tree-sitter
7
+ * - Analyzers: AST, type, semantic, and flow analysis
8
+ * - Matcher: Pattern matching and confidence scoring
9
+ * - Store: Pattern persistence and history tracking
10
+ * - Rules: Violation evaluation and quick fix generation
11
+ * - Config: Configuration loading and validation
12
+ */
13
+ // Export version
14
+ export const VERSION = '0.0.1';
15
+ // Type exports (main public API)
16
+ export * from './types/index.js';
17
+ // Scanner exports
18
+ export * from './scanner/index.js';
19
+ export { BaseParser } from './parsers/base-parser.js';
20
+ export { ParserManager } from './parsers/parser-manager.js';
21
+ export { TypeScriptParser } from './parsers/typescript-parser.js';
22
+ export { PythonParser } from './parsers/python-parser.js';
23
+ export { CSSParser } from './parsers/css-parser.js';
24
+ export { JSONParser } from './parsers/json-parser.js';
25
+ export { MarkdownParser } from './parsers/markdown-parser.js';
26
+ // Analyzer exports
27
+ export * from './analyzers/index.js';
28
+ // Matcher constants
29
+ export { CONFIDENCE_THRESHOLDS, DEFAULT_CONFIDENCE_WEIGHTS, } from './matcher/types.js';
30
+ export { CacheManager } from './store/cache-manager.js';
31
+ export { PatternStore, PatternNotFoundError, InvalidStateTransitionError, PatternStoreError } from './store/pattern-store.js';
32
+ export { Evaluator, createEvaluator, createEvaluatorWithConfig, createEvaluatorWithAI } from './rules/evaluator.js';
33
+ export { RuleEngine, createRuleEngine, createRuleEngineWithConfig, createRuleEngineWithAI } from './rules/rule-engine.js';
34
+ export { VariantManager, VariantNotFoundError, VariantManagerError, InvalidVariantInputError } from './rules/variant-manager.js';
35
+ // Config exports
36
+ export * from './config/index.js';
37
+ // Manifest exports (pattern location discovery)
38
+ export * from './manifest/index.js';
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,iBAAiB;AACjB,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,iCAAiC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,kBAAkB;AAClB,cAAc,oBAAoB,CAAC;AAWnC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,mBAAmB;AACnB,cAAc,sBAAsB,CAAC;AA6CrC,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI9H,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,yBAAyB,EAAE,qBAAqB,EAA6F,MAAM,sBAAsB,CAAC;AAC/M,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,sBAAsB,EAA4E,MAAM,wBAAwB,CAAC;AACpM,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,wBAAwB,EAA0J,MAAM,4BAA4B,CAAC;AAEzR,iBAAiB;AACjB,cAAc,mBAAmB,CAAC;AAElC,gDAAgD;AAChD,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Manifest Exporter - Export manifest in various formats
3
+ *
4
+ * Supports:
5
+ * - JSON: Full manifest as JSON
6
+ * - AI Context: Optimized markdown for LLM consumption
7
+ * - Summary: Human-readable summary
8
+ * - Markdown: Detailed markdown report
9
+ *
10
+ * @requirements PATTERN-LOCATION-DISCOVERY.md
11
+ */
12
+ import type { Manifest, ExportOptions, TokenEstimate } from './types.js';
13
+ /**
14
+ * Export manifest in the specified format
15
+ */
16
+ export declare function exportManifest(manifest: Manifest, options: ExportOptions): string;
17
+ /**
18
+ * Estimate token count for content
19
+ */
20
+ export declare function estimateTokens(content: string): TokenEstimate;
21
+ //# sourceMappingURL=exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../src/manifest/exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,QAAQ,EAGR,aAAa,EACb,aAAa,EACd,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAgBjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAwB7D"}
@@ -0,0 +1,339 @@
1
+ /**
2
+ * Manifest Exporter - Export manifest in various formats
3
+ *
4
+ * Supports:
5
+ * - JSON: Full manifest as JSON
6
+ * - AI Context: Optimized markdown for LLM consumption
7
+ * - Summary: Human-readable summary
8
+ * - Markdown: Detailed markdown report
9
+ *
10
+ * @requirements PATTERN-LOCATION-DISCOVERY.md
11
+ */
12
+ /** Token thresholds for warnings */
13
+ const TOKEN_THRESHOLDS = {
14
+ SMALL: 4000,
15
+ MEDIUM: 8000,
16
+ LARGE: 32000,
17
+ XLARGE: 128000,
18
+ };
19
+ /**
20
+ * Export manifest in the specified format
21
+ */
22
+ export function exportManifest(manifest, options) {
23
+ // Filter patterns based on options
24
+ const filteredPatterns = filterPatterns(manifest, options);
25
+ switch (options.format) {
26
+ case 'json':
27
+ return exportJson(manifest, filteredPatterns, options);
28
+ case 'ai-context':
29
+ return exportAiContext(manifest, filteredPatterns, options);
30
+ case 'summary':
31
+ return exportSummary(manifest, filteredPatterns, options);
32
+ case 'markdown':
33
+ return exportMarkdown(manifest, filteredPatterns, options);
34
+ default:
35
+ throw new Error(`Unknown export format: ${options.format}`);
36
+ }
37
+ }
38
+ /**
39
+ * Estimate token count for content
40
+ */
41
+ export function estimateTokens(content) {
42
+ // Rough estimate: ~4 characters per token for code/technical content
43
+ const tokens = Math.ceil(content.length / 4);
44
+ let category;
45
+ let warning;
46
+ if (tokens < TOKEN_THRESHOLDS.SMALL) {
47
+ category = 'small';
48
+ }
49
+ else if (tokens < TOKEN_THRESHOLDS.MEDIUM) {
50
+ category = 'medium';
51
+ }
52
+ else if (tokens < TOKEN_THRESHOLDS.LARGE) {
53
+ category = 'large';
54
+ warning = `Output is ~${tokens} tokens. Consider using --compact or filtering categories.`;
55
+ }
56
+ else {
57
+ category = 'xlarge';
58
+ warning = `Output is ~${tokens} tokens (very large). Use --compact and filter categories.`;
59
+ }
60
+ const result = { tokens, category };
61
+ if (warning) {
62
+ result.warning = warning;
63
+ }
64
+ return result;
65
+ }
66
+ // ============================================================================
67
+ // Export Formats
68
+ // ============================================================================
69
+ function exportJson(manifest, patterns, options) {
70
+ const output = {
71
+ version: manifest.version,
72
+ generated: manifest.generated,
73
+ codebaseHash: manifest.codebaseHash,
74
+ summary: manifest.summary,
75
+ patterns: options.compact
76
+ ? patterns.map(p => ({
77
+ id: p.id,
78
+ name: p.name,
79
+ category: p.category,
80
+ status: p.status,
81
+ confidence: p.confidence,
82
+ locationCount: p.locations.length,
83
+ outlierCount: p.outliers.length,
84
+ }))
85
+ : patterns,
86
+ };
87
+ return JSON.stringify(output, null, options.compact ? 0 : 2);
88
+ }
89
+ function exportAiContext(manifest, patterns, options) {
90
+ const lines = [];
91
+ // Header
92
+ lines.push('# Architecture Manifest');
93
+ lines.push('');
94
+ lines.push(`Generated: ${manifest.generated.split('T')[0]} | Patterns: ${patterns.length} | Files: ${manifest.summary.totalFiles}`);
95
+ lines.push('');
96
+ // Group patterns by category
97
+ const byCategory = groupByCategory(patterns);
98
+ for (const [category, categoryPatterns] of Object.entries(byCategory)) {
99
+ lines.push(`## ${formatCategory(category)} (${categoryPatterns.length} patterns)`);
100
+ lines.push('');
101
+ for (const pattern of categoryPatterns) {
102
+ const locationSummary = summarizeLocations(pattern.locations, options.compact);
103
+ lines.push(`- **${pattern.name}** [${pattern.status}] (${Math.round(pattern.confidence * 100)}% confidence)`);
104
+ if (options.compact) {
105
+ lines.push(` ${pattern.locations.length} locations in ${countUniqueFiles(pattern.locations)} files`);
106
+ }
107
+ else {
108
+ for (const loc of locationSummary) {
109
+ lines.push(` → \`${loc.file}:${loc.range.start}-${loc.range.end}\``);
110
+ if (loc.type !== 'file') {
111
+ lines.push(` ${loc.type}: \`${loc.name}\`${loc.signature ? ` - ${loc.signature}` : ''}`);
112
+ }
113
+ if (loc.members && loc.members.length > 0) {
114
+ const memberNames = loc.members.map(m => m.name).join(', ');
115
+ lines.push(` Members: ${memberNames}`);
116
+ }
117
+ }
118
+ }
119
+ if (pattern.outliers.length > 0) {
120
+ lines.push(` ⚠️ ${pattern.outliers.length} outliers`);
121
+ }
122
+ lines.push('');
123
+ }
124
+ }
125
+ // File index (compact)
126
+ if (!options.compact && Object.keys(manifest.files).length <= 50) {
127
+ lines.push('## File Index');
128
+ lines.push('');
129
+ lines.push('| File | Patterns |');
130
+ lines.push('|------|----------|');
131
+ const sortedFiles = Object.entries(manifest.files)
132
+ .sort(([a], [b]) => a.localeCompare(b))
133
+ .slice(0, 50);
134
+ for (const [file, data] of sortedFiles) {
135
+ const patternCount = data.patterns.length;
136
+ lines.push(`| ${file} | ${patternCount} |`);
137
+ }
138
+ }
139
+ let output = lines.join('\n');
140
+ // Check token limit
141
+ if (options.maxTokens) {
142
+ const estimate = estimateTokens(output);
143
+ if (estimate.tokens > options.maxTokens) {
144
+ // Truncate and add warning
145
+ const targetLength = options.maxTokens * 4; // Rough char estimate
146
+ output = output.substring(0, targetLength);
147
+ output += '\n\n---\n*[Truncated due to token limit]*';
148
+ }
149
+ }
150
+ return output;
151
+ }
152
+ function exportSummary(manifest, patterns, _options) {
153
+ const lines = [];
154
+ lines.push('╔══════════════════════════════════════════════════════════════╗');
155
+ lines.push('║ DRIFT ARCHITECTURE SUMMARY ║');
156
+ lines.push('╚══════════════════════════════════════════════════════════════╝');
157
+ lines.push('');
158
+ lines.push(`Generated: ${manifest.generated}`);
159
+ lines.push(`Codebase Hash: ${manifest.codebaseHash}`);
160
+ lines.push('');
161
+ // Summary stats
162
+ lines.push('┌─────────────────────────────────────────────────────────────┐');
163
+ lines.push('│ SUMMARY │');
164
+ lines.push('├─────────────────────────────────────────────────────────────┤');
165
+ lines.push(`│ Total Patterns: ${String(patterns.length).padStart(6)} │`);
166
+ lines.push(`│ Total Files: ${String(manifest.summary.totalFiles).padStart(6)} │`);
167
+ lines.push(`│ Total Locations: ${String(manifest.summary.totalLocations).padStart(6)} │`);
168
+ lines.push(`│ Total Outliers: ${String(manifest.summary.totalOutliers).padStart(6)} │`);
169
+ lines.push('└─────────────────────────────────────────────────────────────┘');
170
+ lines.push('');
171
+ // By status
172
+ lines.push('BY STATUS:');
173
+ lines.push(` Discovered: ${manifest.summary.patternsByStatus.discovered}`);
174
+ lines.push(` Approved: ${manifest.summary.patternsByStatus.approved}`);
175
+ lines.push(` Ignored: ${manifest.summary.patternsByStatus.ignored}`);
176
+ lines.push('');
177
+ // By category
178
+ lines.push('BY CATEGORY:');
179
+ const byCategory = groupByCategory(patterns);
180
+ for (const [category, categoryPatterns] of Object.entries(byCategory)) {
181
+ const outlierCount = categoryPatterns.reduce((sum, p) => sum + p.outliers.length, 0);
182
+ lines.push(` ${formatCategory(category).padEnd(15)} ${String(categoryPatterns.length).padStart(3)} patterns, ${String(outlierCount).padStart(4)} outliers`);
183
+ }
184
+ lines.push('');
185
+ // High confidence patterns
186
+ const highConfidence = patterns.filter(p => p.confidence >= 0.85);
187
+ if (highConfidence.length > 0) {
188
+ lines.push('HIGH CONFIDENCE PATTERNS (ready for approval):');
189
+ for (const p of highConfidence.slice(0, 10)) {
190
+ lines.push(` • ${p.name} (${Math.round(p.confidence * 100)}%)`);
191
+ }
192
+ if (highConfidence.length > 10) {
193
+ lines.push(` ... and ${highConfidence.length - 10} more`);
194
+ }
195
+ }
196
+ return lines.join('\n');
197
+ }
198
+ function exportMarkdown(manifest, patterns, options) {
199
+ const lines = [];
200
+ lines.push('# Drift Architecture Report');
201
+ lines.push('');
202
+ lines.push(`**Generated:** ${manifest.generated}`);
203
+ lines.push(`**Codebase Hash:** \`${manifest.codebaseHash}\``);
204
+ lines.push('');
205
+ // Summary table
206
+ lines.push('## Summary');
207
+ lines.push('');
208
+ lines.push('| Metric | Value |');
209
+ lines.push('|--------|-------|');
210
+ lines.push(`| Total Patterns | ${patterns.length} |`);
211
+ lines.push(`| Total Files | ${manifest.summary.totalFiles} |`);
212
+ lines.push(`| Total Locations | ${manifest.summary.totalLocations} |`);
213
+ lines.push(`| Total Outliers | ${manifest.summary.totalOutliers} |`);
214
+ lines.push('');
215
+ // Patterns by category
216
+ const byCategory = groupByCategory(patterns);
217
+ for (const [category, categoryPatterns] of Object.entries(byCategory)) {
218
+ lines.push(`## ${formatCategory(category)}`);
219
+ lines.push('');
220
+ for (const pattern of categoryPatterns) {
221
+ lines.push(`### ${pattern.name}`);
222
+ lines.push('');
223
+ lines.push(`- **ID:** \`${pattern.id}\``);
224
+ lines.push(`- **Status:** ${pattern.status}`);
225
+ lines.push(`- **Confidence:** ${Math.round(pattern.confidence * 100)}%`);
226
+ lines.push(`- **Locations:** ${pattern.locations.length}`);
227
+ lines.push(`- **Outliers:** ${pattern.outliers.length}`);
228
+ lines.push('');
229
+ if (pattern.description) {
230
+ lines.push(pattern.description);
231
+ lines.push('');
232
+ }
233
+ // Location details
234
+ if (!options.compact && pattern.locations.length > 0) {
235
+ lines.push('**Locations:**');
236
+ lines.push('');
237
+ for (const loc of pattern.locations.slice(0, 10)) {
238
+ lines.push(`- \`${loc.file}:${loc.range.start}-${loc.range.end}\` - ${loc.type} \`${loc.name}\``);
239
+ if (options.includeSnippets && loc.snippet) {
240
+ lines.push(' ```');
241
+ lines.push(` ${loc.snippet}`);
242
+ lines.push(' ```');
243
+ }
244
+ }
245
+ if (pattern.locations.length > 10) {
246
+ lines.push(`- ... and ${pattern.locations.length - 10} more`);
247
+ }
248
+ lines.push('');
249
+ }
250
+ // Outlier details
251
+ if (pattern.outliers.length > 0) {
252
+ lines.push('**Outliers:**');
253
+ lines.push('');
254
+ for (const outlier of pattern.outliers.slice(0, 5)) {
255
+ lines.push(`- ⚠️ \`${outlier.file}:${outlier.range.start}\` - ${outlier.name}`);
256
+ }
257
+ if (pattern.outliers.length > 5) {
258
+ lines.push(`- ... and ${pattern.outliers.length - 5} more`);
259
+ }
260
+ lines.push('');
261
+ }
262
+ }
263
+ }
264
+ return lines.join('\n');
265
+ }
266
+ // ============================================================================
267
+ // Helper Functions
268
+ // ============================================================================
269
+ function filterPatterns(manifest, options) {
270
+ let patterns = Object.values(manifest.patterns);
271
+ // Filter by category
272
+ if (options.categories && options.categories.length > 0) {
273
+ patterns = patterns.filter(p => options.categories.includes(p.category));
274
+ }
275
+ // Filter by status
276
+ if (options.statuses && options.statuses.length > 0) {
277
+ patterns = patterns.filter(p => options.statuses.includes(p.status));
278
+ }
279
+ // Filter by confidence
280
+ if (options.minConfidence !== undefined) {
281
+ patterns = patterns.filter(p => p.confidence >= options.minConfidence);
282
+ }
283
+ // Sort by category, then by name
284
+ patterns.sort((a, b) => {
285
+ if (a.category !== b.category) {
286
+ return a.category.localeCompare(b.category);
287
+ }
288
+ return a.name.localeCompare(b.name);
289
+ });
290
+ return patterns;
291
+ }
292
+ function groupByCategory(patterns) {
293
+ const grouped = {};
294
+ for (const pattern of patterns) {
295
+ if (!grouped[pattern.category]) {
296
+ grouped[pattern.category] = [];
297
+ }
298
+ grouped[pattern.category].push(pattern);
299
+ }
300
+ return grouped;
301
+ }
302
+ function formatCategory(category) {
303
+ return category
304
+ .split('-')
305
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
306
+ .join(' ');
307
+ }
308
+ function summarizeLocations(locations, compact) {
309
+ if (compact) {
310
+ // Return just first 3 locations
311
+ return locations.slice(0, 3);
312
+ }
313
+ // Group by file and return representative locations
314
+ const byFile = new Map();
315
+ for (const loc of locations) {
316
+ if (!byFile.has(loc.file)) {
317
+ byFile.set(loc.file, []);
318
+ }
319
+ byFile.get(loc.file).push(loc);
320
+ }
321
+ // Return first location from each file (up to 10 files)
322
+ const result = [];
323
+ let fileCount = 0;
324
+ for (const [, fileLocs] of byFile) {
325
+ if (fileCount >= 10)
326
+ break;
327
+ const firstLoc = fileLocs[0];
328
+ if (firstLoc) {
329
+ result.push(firstLoc);
330
+ }
331
+ fileCount++;
332
+ }
333
+ return result;
334
+ }
335
+ function countUniqueFiles(locations) {
336
+ const files = new Set(locations.map(l => l.file));
337
+ return files.size;
338
+ }
339
+ //# sourceMappingURL=exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exporter.js","sourceRoot":"","sources":["../../src/manifest/exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Manifest module - Pattern location discovery and storage
3
+ *
4
+ * This module provides:
5
+ * - SemanticLocation: Rich location data with class/function names, signatures
6
+ * - ManifestStore: Storage and querying of pattern locations
7
+ * - Exporter: Export manifest in various formats (JSON, AI context, etc.)
8
+ *
9
+ * @requirements PATTERN-LOCATION-DISCOVERY.md
10
+ */
11
+ export type { SemanticType, SemanticLocation, ManifestPattern, ManifestFile, Manifest, ManifestSummary, ExportFormat, ExportOptions, TokenEstimate, PatternQuery, PatternQueryResult, FileQuery, FileQueryResult, } from './types.js';
12
+ export { ManifestStore, hashContent, createSemanticLocation } from './manifest-store.js';
13
+ export { exportManifest, estimateTokens } from './exporter.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGzF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Manifest module - Pattern location discovery and storage
3
+ *
4
+ * This module provides:
5
+ * - SemanticLocation: Rich location data with class/function names, signatures
6
+ * - ManifestStore: Storage and querying of pattern locations
7
+ * - Exporter: Export manifest in various formats (JSON, AI context, etc.)
8
+ *
9
+ * @requirements PATTERN-LOCATION-DISCOVERY.md
10
+ */
11
+ // ManifestStore
12
+ export { ManifestStore, hashContent, createSemanticLocation } from './manifest-store.js';
13
+ // Exporter
14
+ export { exportManifest, estimateTokens } from './exporter.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmBH,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEzF,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}