@aiready/pattern-detect 0.16.19 → 0.16.21

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 (56) hide show
  1. package/dist/analyzer-entry/index.d.mts +3 -0
  2. package/dist/analyzer-entry/index.d.ts +3 -0
  3. package/dist/analyzer-entry/index.js +693 -0
  4. package/dist/analyzer-entry/index.mjs +12 -0
  5. package/dist/analyzer-entry.d.mts +100 -3
  6. package/dist/analyzer-entry.d.ts +100 -3
  7. package/dist/analyzer-entry.js +9 -126
  8. package/dist/analyzer-entry.mjs +2 -2
  9. package/dist/chunk-65UQ5J2J.mjs +64 -0
  10. package/dist/chunk-6JTVOBJX.mjs +64 -0
  11. package/dist/chunk-BKRPSTT2.mjs +64 -0
  12. package/dist/chunk-CMWW24HW.mjs +259 -0
  13. package/dist/chunk-DNZS4ESD.mjs +391 -0
  14. package/dist/chunk-GLKAGFKX.mjs +391 -0
  15. package/dist/chunk-GREN7X5H.mjs +143 -0
  16. package/dist/chunk-JBUZ6YHE.mjs +391 -0
  17. package/dist/chunk-KWMNN3TG.mjs +391 -0
  18. package/dist/chunk-LYKRYBSM.mjs +64 -0
  19. package/dist/chunk-MHU3CL4R.mjs +64 -0
  20. package/dist/chunk-RS73WLNI.mjs +251 -0
  21. package/dist/chunk-SVCSIZ2A.mjs +259 -0
  22. package/dist/chunk-VGMM3L3O.mjs +143 -0
  23. package/dist/chunk-XNPID6FU.mjs +391 -0
  24. package/dist/cli.js +29 -147
  25. package/dist/cli.mjs +27 -25
  26. package/dist/context-rules-entry/index.d.mts +2 -0
  27. package/dist/context-rules-entry/index.d.ts +2 -0
  28. package/dist/context-rules-entry/index.js +207 -0
  29. package/dist/context-rules-entry/index.mjs +12 -0
  30. package/dist/context-rules-entry.d.mts +55 -2
  31. package/dist/context-rules-entry.d.ts +55 -2
  32. package/dist/detector-entry/index.d.mts +14 -0
  33. package/dist/detector-entry/index.d.ts +14 -0
  34. package/dist/detector-entry/index.js +301 -0
  35. package/dist/detector-entry/index.mjs +7 -0
  36. package/dist/detector-entry.d.mts +2 -2
  37. package/dist/detector-entry.d.ts +2 -2
  38. package/dist/detector-entry.js +9 -126
  39. package/dist/detector-entry.mjs +1 -1
  40. package/dist/index-BVz-HnZd.d.mts +119 -0
  41. package/dist/index-BwuoiCNm.d.ts +119 -0
  42. package/dist/index-y2uJSngh.d.mts +60 -0
  43. package/dist/index-y2uJSngh.d.ts +60 -0
  44. package/dist/index.d.mts +4 -4
  45. package/dist/index.d.ts +4 -4
  46. package/dist/index.js +9 -126
  47. package/dist/index.mjs +3 -3
  48. package/dist/scoring-entry/index.d.mts +23 -0
  49. package/dist/scoring-entry/index.d.ts +23 -0
  50. package/dist/scoring-entry/index.js +133 -0
  51. package/dist/scoring-entry/index.mjs +6 -0
  52. package/dist/scoring-entry.d.mts +1 -1
  53. package/dist/scoring-entry.d.ts +1 -1
  54. package/dist/types-C4lmb2Yh.d.mts +36 -0
  55. package/dist/types-C4lmb2Yh.d.ts +36 -0
  56. package/package.json +16 -16
@@ -0,0 +1,36 @@
1
+ import { Severity } from '@aiready/core';
2
+
3
+ type PatternType = 'api-handler' | 'validator' | 'utility' | 'class-method' | 'component' | 'function' | 'unknown';
4
+ interface DuplicatePattern {
5
+ file1: string;
6
+ line1: number;
7
+ endLine1: number;
8
+ file2: string;
9
+ line2: number;
10
+ endLine2: number;
11
+ code1: string;
12
+ code2: string;
13
+ similarity: number;
14
+ confidence: number;
15
+ patternType: PatternType;
16
+ tokenCost: number;
17
+ severity: Severity;
18
+ reason?: string;
19
+ suggestion?: string;
20
+ matchedRule?: string;
21
+ }
22
+ interface DetectionOptions {
23
+ minSimilarity: number;
24
+ minLines: number;
25
+ batchSize: number;
26
+ approx: boolean;
27
+ minSharedTokens: number;
28
+ maxCandidatesPerBlock: number;
29
+ streamResults: boolean;
30
+ excludePatterns?: string[];
31
+ confidenceThreshold?: number;
32
+ ignoreWhitelist?: string[];
33
+ onProgress?: (processed: number, total: number, message: string) => void;
34
+ }
35
+
36
+ export type { DetectionOptions as D, PatternType as P, DuplicatePattern as a };
@@ -0,0 +1,36 @@
1
+ import { Severity } from '@aiready/core';
2
+
3
+ type PatternType = 'api-handler' | 'validator' | 'utility' | 'class-method' | 'component' | 'function' | 'unknown';
4
+ interface DuplicatePattern {
5
+ file1: string;
6
+ line1: number;
7
+ endLine1: number;
8
+ file2: string;
9
+ line2: number;
10
+ endLine2: number;
11
+ code1: string;
12
+ code2: string;
13
+ similarity: number;
14
+ confidence: number;
15
+ patternType: PatternType;
16
+ tokenCost: number;
17
+ severity: Severity;
18
+ reason?: string;
19
+ suggestion?: string;
20
+ matchedRule?: string;
21
+ }
22
+ interface DetectionOptions {
23
+ minSimilarity: number;
24
+ minLines: number;
25
+ batchSize: number;
26
+ approx: boolean;
27
+ minSharedTokens: number;
28
+ maxCandidatesPerBlock: number;
29
+ streamResults: boolean;
30
+ excludePatterns?: string[];
31
+ confidenceThreshold?: number;
32
+ ignoreWhitelist?: string[];
33
+ onProgress?: (processed: number, total: number, message: string) => void;
34
+ }
35
+
36
+ export type { DetectionOptions as D, PatternType as P, DuplicatePattern as a };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiready/pattern-detect",
3
- "version": "0.16.19",
3
+ "version": "0.16.21",
4
4
  "description": "Semantic duplicate pattern detection for AI-generated code - finds similar implementations that waste AI context tokens",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -15,24 +15,24 @@
15
15
  "import": "./dist/index.mjs"
16
16
  },
17
17
  "./analyzer": {
18
- "types": "./dist/analyzer-entry.d.ts",
19
- "require": "./dist/analyzer-entry.js",
20
- "import": "./dist/analyzer-entry.mjs"
18
+ "types": "./dist/analyzer-entry/index.d.ts",
19
+ "require": "./dist/analyzer-entry/index.js",
20
+ "import": "./dist/analyzer-entry/index.mjs"
21
21
  },
22
22
  "./detector": {
23
- "types": "./dist/detector-entry.d.ts",
24
- "require": "./dist/detector-entry.js",
25
- "import": "./dist/detector-entry.mjs"
23
+ "types": "./dist/detector-entry/index.d.ts",
24
+ "require": "./dist/detector-entry/index.js",
25
+ "import": "./dist/detector-entry/index.mjs"
26
26
  },
27
27
  "./scoring": {
28
- "types": "./dist/scoring-entry.d.ts",
29
- "require": "./dist/scoring-entry.js",
30
- "import": "./dist/scoring-entry.mjs"
28
+ "types": "./dist/scoring-entry/index.d.ts",
29
+ "require": "./dist/scoring-entry/index.js",
30
+ "import": "./dist/scoring-entry/index.mjs"
31
31
  },
32
32
  "./context-rules": {
33
- "types": "./dist/context-rules-entry.d.ts",
34
- "require": "./dist/context-rules-entry.js",
35
- "import": "./dist/context-rules-entry.mjs"
33
+ "types": "./dist/context-rules-entry/index.d.ts",
34
+ "require": "./dist/context-rules-entry/index.js",
35
+ "import": "./dist/context-rules-entry/index.mjs"
36
36
  }
37
37
  },
38
38
  "keywords": [
@@ -65,7 +65,7 @@
65
65
  "dependencies": {
66
66
  "commander": "^14.0.0",
67
67
  "chalk": "^5.3.0",
68
- "@aiready/core": "0.23.20"
68
+ "@aiready/core": "0.23.22"
69
69
  },
70
70
  "devDependencies": {
71
71
  "tsup": "^8.3.5",
@@ -84,8 +84,8 @@
84
84
  "access": "public"
85
85
  },
86
86
  "scripts": {
87
- "build": "tsup src/index.ts src/cli.ts src/analyzer-entry.ts src/detector-entry.ts src/scoring-entry.ts src/context-rules-entry.ts --format cjs,esm --dts",
88
- "dev": "tsup src/index.ts src/cli.ts src/analyzer-entry.ts src/detector-entry.ts src/scoring-entry.ts src/context-rules-entry.ts --format cjs,esm --dts --watch",
87
+ "build": "tsup src/index.ts src/cli.ts src/analyzer-entry/index.ts src/detector-entry/index.ts src/scoring-entry/index.ts src/context-rules-entry/index.ts --format cjs,esm --dts",
88
+ "dev": "tsup src/index.ts src/cli.ts src/analyzer-entry/index.ts src/detector-entry/index.ts src/scoring-entry/index.ts src/context-rules-entry/index.ts --format cjs,esm --dts --watch",
89
89
  "test": "vitest run",
90
90
  "lint": "eslint src",
91
91
  "clean": "rm -rf dist",