pi-lens 2.0.37 → 2.0.39

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 (46) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +1 -1
  3. package/clients/architect-client.js +50 -20
  4. package/clients/architect-client.ts +61 -22
  5. package/clients/ast-grep-client.js +32 -127
  6. package/clients/ast-grep-client.test.js +2 -14
  7. package/clients/ast-grep-client.test.ts +2 -16
  8. package/clients/ast-grep-client.ts +34 -150
  9. package/clients/auto-loop.js +117 -0
  10. package/clients/auto-loop.ts +171 -0
  11. package/clients/biome-client.js +25 -22
  12. package/clients/biome-client.ts +28 -25
  13. package/clients/complexity-client.js +111 -74
  14. package/clients/complexity-client.ts +149 -105
  15. package/clients/dependency-checker.js +16 -30
  16. package/clients/dependency-checker.ts +15 -35
  17. package/clients/fix-scanners.js +195 -0
  18. package/clients/fix-scanners.ts +297 -0
  19. package/clients/interviewer-templates.js +75 -0
  20. package/clients/interviewer-templates.ts +90 -0
  21. package/clients/interviewer.js +73 -101
  22. package/clients/interviewer.ts +195 -140
  23. package/clients/knip-client.js +12 -4
  24. package/clients/knip-client.ts +21 -16
  25. package/clients/metrics-history.js +215 -0
  26. package/clients/metrics-history.ts +300 -0
  27. package/clients/scan-architectural-debt.js +62 -72
  28. package/clients/scan-architectural-debt.ts +79 -64
  29. package/clients/scan-utils.js +98 -0
  30. package/clients/scan-utils.ts +112 -0
  31. package/clients/sg-runner.js +138 -0
  32. package/clients/sg-runner.ts +168 -0
  33. package/clients/subprocess-client.js +0 -37
  34. package/clients/subprocess-client.ts +0 -60
  35. package/clients/ts-service.ts +1 -7
  36. package/clients/type-safety-client.js +3 -8
  37. package/clients/type-safety-client.ts +10 -14
  38. package/clients/typescript-client.js +55 -56
  39. package/clients/typescript-client.ts +94 -52
  40. package/default-architect.yaml +87 -0
  41. package/index.ts +143 -1165
  42. package/package.json +2 -1
  43. package/rules/ast-grep-rules/rules/large-class.yml +6 -2
  44. package/rules/ast-grep-rules/rules/long-method.yml +1 -1
  45. package/rules/ast-grep-rules/rules/no-single-char-var.yml +2 -2
  46. package/rules/ast-grep-rules/rules/switch-without-default.yml +0 -12
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-lens",
3
- "version": "2.0.37",
3
+ "version": "2.0.39",
4
4
  "description": "Real-time code quality feedback for pi — TypeScript LSP, Biome, ast-grep, Ruff, complexity metrics, duplicate detection. Includes automated fix loop (/lens-booboo-fix) and interactive architectural refactoring (/lens-booboo-refactor) with browser-based interviews.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,6 +34,7 @@
34
34
  "index.ts",
35
35
  "clients/",
36
36
  "rules/",
37
+ "default-architect.yaml",
37
38
  "tsconfig.json",
38
39
  "README.md",
39
40
  "CHANGELOG.md"
@@ -5,6 +5,10 @@ severity: hint
5
5
  note: |
6
6
  Classes with more than 20 methods are harder to maintain.
7
7
  Consider extracting related functionality into separate classes.
8
- Grade 2.3 moderate complexity, better architecture.
8
+ Note: For precise method counts, use complexity metrics.
9
9
  rule:
10
- kind: class_declaration
10
+ all:
11
+ - kind: class_declaration
12
+ - has:
13
+ field: body
14
+ regex: "(public |private |protected |readonly )?(async )?[a-zA-Z_][a-zA-Z0-9_]*\s*\("
@@ -12,4 +12,4 @@ rule:
12
12
  - kind: method_definition
13
13
  - kind: arrow_function
14
14
  pattern: $FUNC
15
- regex: "(.*\n){30,}" # Approximate 30 lines
15
+ regex: "(.*\n){45,}" # Approximate 45 lines
@@ -4,9 +4,9 @@ message: "Avoid single-character variable names — use descriptive names"
4
4
  severity: info
5
5
  note: |
6
6
  Single-character variable names reduce readability.
7
- Exception: loop counters (i, j, k) in short loops are acceptable.
7
+ Exception: loop counters (i, j, k, n) and underscore (_) are acceptable.
8
8
  rule:
9
9
  pattern: const $VAR = $VALUE
10
10
  constraints:
11
11
  VAR:
12
- regex: "^[a-z]$"
12
+ regex: "^[a-df-hm-z]$" # Excludes i, j, k, n
@@ -1,12 +0,0 @@
1
- id: switch-without-default
2
- language: TypeScript
3
- message: "Switch statement is missing a default case"
4
- severity: warning
5
- note: |
6
- Every switch should have a default case. Without it, new enum values won't be caught at runtime.
7
- rule:
8
- all:
9
- - pattern: switch ($EXPR) { $$$CASES }
10
- - not:
11
- has:
12
- pattern: "default: $$$"