@esportsplus/typescript 0.29.6 → 0.31.1

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 (129) hide show
  1. package/README.md +97 -3
  2. package/bin/tsc-alias +1 -1
  3. package/bin/tsc-lsp +3 -0
  4. package/build/cli/diagnostics.d.ts +8 -0
  5. package/build/cli/diagnostics.js +95 -0
  6. package/build/cli/tsc.d.ts +12 -2
  7. package/build/cli/tsc.js +343 -52
  8. package/build/compiler/ast.d.ts +7 -5
  9. package/build/compiler/ast.js +6 -6
  10. package/build/compiler/code.d.ts +5 -4
  11. package/build/compiler/code.js +12 -1
  12. package/build/compiler/coordinator.d.ts +16 -7
  13. package/build/compiler/coordinator.js +75 -41
  14. package/build/compiler/imports.d.ts +8 -3
  15. package/build/compiler/imports.js +34 -24
  16. package/build/compiler/index.d.ts +3 -0
  17. package/build/compiler/index.js +1 -0
  18. package/build/compiler/language-service.d.ts +36 -6
  19. package/build/compiler/language-service.js +252 -58
  20. package/build/compiler/plugins/index.d.ts +4 -2
  21. package/build/compiler/plugins/tsc.d.ts +1 -1
  22. package/build/compiler/plugins/vite.d.ts +6 -3
  23. package/build/compiler/plugins/vite.js +15 -8
  24. package/build/compiler/sourcemap.d.ts +52 -0
  25. package/build/compiler/sourcemap.js +265 -0
  26. package/build/compiler/types.d.ts +7 -6
  27. package/build/compiler/uid.d.ts +5 -2
  28. package/build/compiler/uid.js +33 -4
  29. package/build/index.d.ts +1 -1
  30. package/build/index.js +1 -1
  31. package/build/jsonc.d.ts +2 -0
  32. package/build/jsonc.js +85 -0
  33. package/build/lsp/bin.d.ts +1 -0
  34. package/build/lsp/bin.js +2 -0
  35. package/build/lsp/diagnostics.d.ts +10 -0
  36. package/build/lsp/diagnostics.js +69 -0
  37. package/build/lsp/index.d.ts +2 -0
  38. package/build/lsp/index.js +2 -0
  39. package/build/lsp/server.d.ts +4 -0
  40. package/build/lsp/server.js +130 -0
  41. package/build/lsp/workspace.d.ts +14 -0
  42. package/build/lsp/workspace.js +46 -0
  43. package/build/probe/adapter.d.ts +14 -0
  44. package/build/probe/adapter.js +42 -0
  45. package/build/probe/async/channel.d.ts +4 -0
  46. package/build/probe/async/channel.js +560 -0
  47. package/build/probe/async/value.d.ts +9 -0
  48. package/build/probe/async/value.js +16 -0
  49. package/build/probe/channels.d.ts +4 -0
  50. package/build/probe/channels.js +16 -0
  51. package/build/probe/exceptions/channel.d.ts +5 -0
  52. package/build/probe/exceptions/channel.js +657 -0
  53. package/build/probe/exceptions/jsdoc.d.ts +8 -0
  54. package/build/probe/exceptions/jsdoc.js +34 -0
  55. package/build/probe/exceptions/value.d.ts +39 -0
  56. package/build/probe/exceptions/value.js +158 -0
  57. package/build/probe/kernel/analyze.d.ts +8 -0
  58. package/build/probe/kernel/analyze.js +68 -0
  59. package/build/probe/kernel/ast.d.ts +11 -0
  60. package/build/probe/kernel/ast.js +49 -0
  61. package/build/probe/kernel/config.d.ts +5 -0
  62. package/build/probe/kernel/config.js +209 -0
  63. package/build/probe/kernel/fixpoint.d.ts +6 -0
  64. package/build/probe/kernel/fixpoint.js +206 -0
  65. package/build/probe/kernel/format.d.ts +4 -0
  66. package/build/probe/kernel/format.js +32 -0
  67. package/build/probe/kernel/graph.d.ts +4 -0
  68. package/build/probe/kernel/graph.js +507 -0
  69. package/build/probe/kernel/ids.d.ts +8 -0
  70. package/build/probe/kernel/ids.js +66 -0
  71. package/build/probe/kernel/program.d.ts +8 -0
  72. package/build/probe/kernel/program.js +13 -0
  73. package/build/probe/kernel/types.d.ts +134 -0
  74. package/build/probe/kernel/types.js +1 -0
  75. package/build/probe/overlay/base/async.jsonc +13 -0
  76. package/build/probe/overlay/base/exceptions.jsonc +54 -0
  77. package/build/probe/overlay/base/resources.jsonc +57 -0
  78. package/build/probe/overlay/load.d.ts +18 -0
  79. package/build/probe/overlay/load.js +302 -0
  80. package/build/probe/overlay/presets/express.jsonc +25 -0
  81. package/build/probe/overlay/presets/node.jsonc +17 -0
  82. package/build/probe/resources/channel.d.ts +4 -0
  83. package/build/probe/resources/channel.js +798 -0
  84. package/build/probe/resources/value.d.ts +9 -0
  85. package/build/probe/resources/value.js +36 -0
  86. package/build/ts.d.ts +3 -0
  87. package/build/ts.js +3 -0
  88. package/build/tsconfig.d.ts +2 -0
  89. package/build/tsconfig.js +150 -0
  90. package/package.json +29 -9
  91. package/tsconfig.base.json +19 -0
  92. package/tsconfig.dev.json +13 -0
  93. package/tsconfig.package.json +4 -1
  94. package/.claude/skills/code-audit/registry-typescript.json +0 -326
  95. package/.editorconfig +0 -9
  96. package/.gitattributes +0 -2
  97. package/.github/dependabot.yml +0 -25
  98. package/.github/workflows/bump.yml +0 -27
  99. package/.github/workflows/dependabot.yml +0 -58
  100. package/.github/workflows/publish.yml +0 -42
  101. package/.github/workflows/templates/bump.yml +0 -9
  102. package/.github/workflows/templates/dependabot.yml +0 -12
  103. package/.github/workflows/templates/publish.yml +0 -16
  104. package/pnpm-workspace.yaml +0 -6
  105. package/src/cli/tsc.ts +0 -235
  106. package/src/compiler/ast.ts +0 -60
  107. package/src/compiler/code.ts +0 -27
  108. package/src/compiler/coordinator.ts +0 -284
  109. package/src/compiler/imports.ts +0 -185
  110. package/src/compiler/index.ts +0 -7
  111. package/src/compiler/language-service.ts +0 -121
  112. package/src/compiler/plugins/index.ts +0 -5
  113. package/src/compiler/plugins/tsc.ts +0 -6
  114. package/src/compiler/plugins/vite.ts +0 -91
  115. package/src/compiler/types.ts +0 -83
  116. package/src/compiler/uid.ts +0 -10
  117. package/src/constants.ts +0 -4
  118. package/src/index.ts +0 -1
  119. package/tests/cli/tsc.test.ts +0 -155
  120. package/tests/compiler/ast.test.ts +0 -131
  121. package/tests/compiler/code.test.ts +0 -73
  122. package/tests/compiler/coordinator.bench.ts +0 -101
  123. package/tests/compiler/coordinator.test.ts +0 -872
  124. package/tests/compiler/imports.test.ts +0 -167
  125. package/tests/compiler/language-service.test.ts +0 -90
  126. package/tests/compiler/plugins.test.ts +0 -172
  127. package/tests/compiler/uid.test.ts +0 -70
  128. package/tsconfig.json +0 -3
  129. package/vitest.config.ts +0 -14
@@ -0,0 +1,9 @@
1
+ type ResourcesValue = {
2
+ readonly ownsParams: ReadonlySet<number>;
3
+ };
4
+ declare function bottom(): ResourcesValue;
5
+ declare function fromParams(indices: Iterable<number>): ResourcesValue;
6
+ declare function join(a: ResourcesValue, b: ResourcesValue): ResourcesValue;
7
+ declare function equals(a: ResourcesValue, b: ResourcesValue): boolean;
8
+ declare function widen(_prev: ResourcesValue, next: ResourcesValue, _round: number): ResourcesValue;
9
+ export { bottom, equals, fromParams, join, type ResourcesValue, widen };
@@ -0,0 +1,36 @@
1
+ const EMPTY = new Set();
2
+ function bottom() {
3
+ return { ownsParams: EMPTY };
4
+ }
5
+ function fromParams(indices) {
6
+ const set = new Set(indices);
7
+ return { ownsParams: set.size === 0 ? EMPTY : set };
8
+ }
9
+ function join(a, b) {
10
+ if (a.ownsParams.size === 0) {
11
+ return b;
12
+ }
13
+ if (b.ownsParams.size === 0) {
14
+ return a;
15
+ }
16
+ const set = new Set(a.ownsParams);
17
+ for (const i of b.ownsParams) {
18
+ set.add(i);
19
+ }
20
+ return { ownsParams: set };
21
+ }
22
+ function equals(a, b) {
23
+ if (a.ownsParams.size !== b.ownsParams.size) {
24
+ return false;
25
+ }
26
+ for (const i of a.ownsParams) {
27
+ if (!b.ownsParams.has(i)) {
28
+ return false;
29
+ }
30
+ }
31
+ return true;
32
+ }
33
+ function widen(_prev, next, _round) {
34
+ return next;
35
+ }
36
+ export { bottom, equals, fromParams, join, widen };
package/build/ts.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from 'typescript/unstable/ast';
2
+ export * from 'typescript/unstable/sync';
3
+ export { ModifierFlags } from 'typescript/unstable/ast';
package/build/ts.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from 'typescript/unstable/ast';
2
+ export * from 'typescript/unstable/sync';
3
+ export { ModifierFlags } from 'typescript/unstable/ast';
@@ -0,0 +1,2 @@
1
+ declare const readPlugins: (tsconfigPath: string) => ReadonlyArray<unknown> | undefined;
2
+ export { readPlugins };
@@ -0,0 +1,150 @@
1
+ import { createRequire } from 'node:module';
2
+ import * as fs from 'node:fs';
3
+ import * as path from 'node:path';
4
+ import { stripJsonc } from './jsonc.js';
5
+ let require = createRequire(import.meta.url);
6
+ function extendsTarget(specifier, fromDir) {
7
+ if (typeof specifier !== 'string') {
8
+ return null;
9
+ }
10
+ if (specifier.startsWith('.')) {
11
+ let resolved = path.resolve(fromDir, specifier);
12
+ if (fs.existsSync(resolved) && fs.statSync(resolved).isFile()) {
13
+ return resolved;
14
+ }
15
+ if (fs.existsSync(resolved + '.json')) {
16
+ return resolved + '.json';
17
+ }
18
+ let nested = path.join(resolved, 'tsconfig.json');
19
+ return fs.existsSync(nested) ? nested : null;
20
+ }
21
+ try {
22
+ return require.resolve(specifier, { paths: [fromDir] });
23
+ }
24
+ catch {
25
+ try {
26
+ return require.resolve(specifier + '/tsconfig.json', { paths: [fromDir] });
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ }
32
+ }
33
+ function legacyStripJsonc(text) {
34
+ let escaped = false, inBlockComment = false, inLineComment = false, inString = false, stripped = '';
35
+ for (let i = 0, n = text.length; i < n; i++) {
36
+ let char = text[i], next = text[i + 1];
37
+ if (inLineComment) {
38
+ if (char === '\n') {
39
+ inLineComment = false;
40
+ stripped += char;
41
+ }
42
+ continue;
43
+ }
44
+ if (inBlockComment) {
45
+ if (char === '*' && next === '/') {
46
+ inBlockComment = false;
47
+ i++;
48
+ }
49
+ continue;
50
+ }
51
+ if (inString) {
52
+ stripped += char;
53
+ if (escaped) {
54
+ escaped = false;
55
+ }
56
+ else if (char === '\\') {
57
+ escaped = true;
58
+ }
59
+ else if (char === '"') {
60
+ inString = false;
61
+ }
62
+ continue;
63
+ }
64
+ if (char === '"') {
65
+ inString = true;
66
+ stripped += char;
67
+ continue;
68
+ }
69
+ if (char === '/' && next === '/') {
70
+ inLineComment = true;
71
+ i++;
72
+ continue;
73
+ }
74
+ if (char === '/' && next === '*') {
75
+ inBlockComment = true;
76
+ i++;
77
+ continue;
78
+ }
79
+ stripped += char;
80
+ }
81
+ escaped = false;
82
+ inString = false;
83
+ let result = '';
84
+ for (let i = 0, n = stripped.length; i < n; i++) {
85
+ let char = stripped[i];
86
+ if (inString) {
87
+ result += char;
88
+ if (escaped) {
89
+ escaped = false;
90
+ }
91
+ else if (char === '\\') {
92
+ escaped = true;
93
+ }
94
+ else if (char === '"') {
95
+ inString = false;
96
+ }
97
+ continue;
98
+ }
99
+ if (char === '"') {
100
+ inString = true;
101
+ result += char;
102
+ continue;
103
+ }
104
+ if (char === ',') {
105
+ let j = i + 1;
106
+ while (j < n && /\s/.test(stripped[j])) {
107
+ j++;
108
+ }
109
+ if (stripped[j] === ']' || stripped[j] === '}') {
110
+ continue;
111
+ }
112
+ }
113
+ result += char;
114
+ }
115
+ return result;
116
+ }
117
+ void legacyStripJsonc;
118
+ const readPlugins = (tsconfigPath) => {
119
+ let seen = new Set();
120
+ function read(configPath) {
121
+ let id = path.resolve(configPath);
122
+ if (seen.has(id)) {
123
+ return undefined;
124
+ }
125
+ seen.add(id);
126
+ let config;
127
+ try {
128
+ config = JSON.parse(stripJsonc(fs.readFileSync(id, 'utf8')));
129
+ }
130
+ catch {
131
+ return undefined;
132
+ }
133
+ let plugins;
134
+ if (config.extends !== undefined) {
135
+ let bases = Array.isArray(config.extends) ? config.extends : [config.extends];
136
+ for (let base of bases) {
137
+ let target = extendsTarget(base, path.dirname(id));
138
+ if (target) {
139
+ let inherited = read(target);
140
+ if (inherited !== undefined) {
141
+ plugins = inherited;
142
+ }
143
+ }
144
+ }
145
+ }
146
+ return Array.isArray(config.compilerOptions?.plugins) ? config.compilerOptions.plugins : plugins;
147
+ }
148
+ return read(tsconfigPath);
149
+ };
150
+ export { readPlugins };
package/package.json CHANGED
@@ -3,34 +3,51 @@
3
3
  "bin": {
4
4
  "esportsplus-tsc": "./bin/tsc",
5
5
  "esportsplus-tsc-alias": "./bin/tsc-alias",
6
+ "esportsplus-tsc-lsp": "./bin/tsc-lsp",
6
7
  "tsc": "./bin/tsc",
7
8
  "tsc-alias": "./bin/tsc-alias"
8
9
  },
9
10
  "dependencies": {
10
11
  "@esportsplus/cli-passthrough": "^0.0.15",
11
12
  "@esportsplus/utilities": "^0.28.0",
12
- "@types/node": "^26.0.1",
13
- "tsc-alias": "^1.8.17",
14
- "typescript": "^6.0.3"
13
+ "@types/node": "^26.1.1",
14
+ "tsc-alias": "^1.9.1",
15
+ "typescript": "7.0.2",
16
+ "vscode-languageserver": "^10.1.0",
17
+ "vscode-languageserver-textdocument": "^1.0.12"
15
18
  },
16
19
  "devDependencies": {
17
- "vite": "^8.1.0",
18
- "vitest": "^4.1.9"
20
+ "vite": "^8.1.5",
21
+ "vitest": "^4.1.10"
19
22
  },
20
23
  "exports": {
21
24
  "./package.json": "./package.json",
22
25
  "./tsconfig.browser.json": "./tsconfig.browser.json",
26
+ "./tsconfig.dev.json": "./tsconfig.dev.json",
23
27
  "./tsconfig.node.json": "./tsconfig.node.json",
24
28
  "./tsconfig.package.json": "./tsconfig.package.json",
25
29
  "./compiler": {
26
30
  "types": "./build/compiler/index.d.ts",
27
31
  "default": "./build/compiler/index.js"
28
32
  },
33
+ "./lsp": {
34
+ "types": "./build/lsp/index.d.ts",
35
+ "default": "./build/lsp/index.js"
36
+ },
29
37
  ".": {
30
38
  "types": "./build/index.d.ts",
31
39
  "default": "./build/index.js"
32
40
  }
33
41
  },
42
+ "files": [
43
+ "bin",
44
+ "build",
45
+ "tsconfig.base.json",
46
+ "tsconfig.browser.json",
47
+ "tsconfig.dev.json",
48
+ "tsconfig.node.json",
49
+ "tsconfig.package.json"
50
+ ],
34
51
  "main": "build/index.js",
35
52
  "name": "@esportsplus/typescript",
36
53
  "overrides": {
@@ -43,11 +60,14 @@
43
60
  },
44
61
  "type": "module",
45
62
  "types": "build/index.d.ts",
46
- "version": "0.29.6",
63
+ "version": "0.31.1",
47
64
  "scripts": {
65
+ "agent:bench": "pnpm bench:run",
66
+ "agent:build": "pnpm build",
67
+ "agent:test": "pnpm typecheck && pnpm test",
48
68
  "bench:run": "vitest bench --run",
49
- "build": "tsc && tsc-alias",
50
- "-": "-",
51
- "test": "vitest run"
69
+ "build": "tsc -p tsconfig.package.json && tsc-alias -p tsconfig.package.json && node -e \"const fs=require('fs');fs.cpSync('src/probe/overlay','build/probe/overlay',{recursive:true,filter:(s)=>!/\\.[cm]?tsx?$/.test(s)})\"",
70
+ "test": "vitest run",
71
+ "typecheck": "tsc"
52
72
  }
53
73
  }
@@ -23,6 +23,25 @@
23
23
  "${configDir}/storage/*"
24
24
  ]
25
25
  },
26
+ "plugins": [
27
+ {
28
+ "name": "ts-probe",
29
+ // Editor squiggle color; "warn" opts down. CLI/build ignore this.
30
+ "severity": "error",
31
+ // Fail the tsc/build run when there are findings.
32
+ "failOnFindings": true,
33
+ "channels": {
34
+ "exceptions": {
35
+ "enabled": true,
36
+ "report": "consumers",
37
+ // Flag `throw`s inside `catch` that drop the caught error's cause.
38
+ "errorCause": true
39
+ }
40
+ },
41
+ // Model third-party throw behavior: "node", "express".
42
+ "presets": ["node"]
43
+ }
44
+ ],
26
45
  "removeComments": true,
27
46
  "resolveJsonModule": true,
28
47
  "rootDir": "${configDir}/src",
@@ -0,0 +1,13 @@
1
+ {
2
+ "compilerOptions": {
3
+ "noEmit": true,
4
+ "rootDir": "${configDir}"
5
+ },
6
+ "extends": "./tsconfig.package.json",
7
+ "include": [
8
+ "${configDir}/*.config.ts",
9
+ "${configDir}/bench/**/*",
10
+ "${configDir}/src/**/*",
11
+ "${configDir}/test/**/*"
12
+ ]
13
+ }
@@ -6,7 +6,10 @@
6
6
  "dom",
7
7
  "dom.iterable",
8
8
  "es2024"
9
+ ],
10
+ "types": [
11
+ "node"
9
12
  ]
10
13
  },
11
14
  "extends": "./tsconfig.base.json"
12
- }
15
+ }
@@ -1,326 +0,0 @@
1
- {
2
- "project": "@esportsplus/typescript",
3
- "version": "0.29.0",
4
- "target": "src/ tests/",
5
- "runs": [
6
- {
7
- "date": "2026-04-11",
8
- "commit": "e0657fe",
9
- "mode": "full",
10
- "files_audited": 13,
11
- "files_skipped": 0,
12
- "findings_new": 2,
13
- "findings_recurring": 0,
14
- "sqale_rating": "A",
15
- "agent_results": {
16
- "correctness": { "status": "ok", "symbols": 26, "sub_targets": 1, "findings": 1 },
17
- "security": { "status": "ok", "symbols": 14, "sub_targets": 1, "findings": 0 },
18
- "performance": { "status": "ok", "symbols": 15, "sub_targets": 1, "findings": 1 },
19
- "architecture": { "status": "ok", "symbols": 32, "sub_targets": 1, "findings": 0 },
20
- "testing": { "status": "ok", "symbols": 16, "sub_targets": 1, "findings": 1 }
21
- },
22
- "agent_overlap": {},
23
- "estimated_remaining": null
24
- },
25
- {
26
- "date": "2026-04-11",
27
- "commit": "e0657fe",
28
- "mode": "incremental",
29
- "files_audited": 13,
30
- "files_skipped": 0,
31
- "findings_new": 0,
32
- "findings_recurring": 1,
33
- "sqale_rating": "A",
34
- "agent_results": {
35
- "correctness": { "status": "ok", "symbols": 26, "sub_targets": 1, "findings": 0 },
36
- "security": { "status": "ok", "symbols": 14, "sub_targets": 1, "findings": 0 },
37
- "performance": { "status": "ok", "symbols": 15, "sub_targets": 1, "findings": 0 },
38
- "architecture": { "status": "ok", "symbols": 32, "sub_targets": 1, "findings": 0 },
39
- "testing": { "status": "ok", "symbols": 16, "sub_targets": 1, "findings": 1 }
40
- },
41
- "agent_overlap": {},
42
- "estimated_remaining": null
43
- },
44
- {
45
- "date": "2026-04-11",
46
- "commit": "e0657fe",
47
- "mode": "incremental",
48
- "files_audited": 13,
49
- "files_skipped": 0,
50
- "findings_new": 0,
51
- "findings_recurring": 0,
52
- "sqale_rating": "A",
53
- "agent_results": {
54
- "correctness": { "status": "ok", "symbols": 26, "sub_targets": 1, "findings": 0 },
55
- "security": { "status": "ok", "symbols": 14, "sub_targets": 1, "findings": 0 },
56
- "performance": { "status": "ok", "symbols": 15, "sub_targets": 1, "findings": 0 },
57
- "architecture": { "status": "ok", "symbols": 32, "sub_targets": 1, "findings": 0 },
58
- "testing": { "status": "ok", "symbols": 16, "sub_targets": 1, "findings": 0 }
59
- },
60
- "agent_overlap": {},
61
- "estimated_remaining": null
62
- },
63
- {
64
- "date": "2026-04-11",
65
- "commit": "59ea7a3",
66
- "mode": "incremental",
67
- "files_audited": 19,
68
- "files_skipped": 0,
69
- "findings_new": 9,
70
- "findings_recurring": 1,
71
- "sqale_rating": "B",
72
- "agent_results": {
73
- "correctness": { "status": "ok", "symbols": 26, "sub_targets": 1, "findings": 0 },
74
- "security": { "status": "ok", "symbols": 14, "sub_targets": 1, "findings": 0 },
75
- "performance": { "status": "ok", "symbols": 15, "sub_targets": 1, "findings": 0 },
76
- "architecture": { "status": "ok", "symbols": 32, "sub_targets": 1, "findings": 2 },
77
- "testing": { "status": "ok", "symbols": 35, "sub_targets": 1, "findings": 7 }
78
- },
79
- "agent_overlap": {},
80
- "estimated_remaining": null
81
- },
82
- {
83
- "date": "2026-04-11",
84
- "commit": "59ea7a3",
85
- "mode": "incremental",
86
- "files_audited": 21,
87
- "files_skipped": 0,
88
- "findings_new": 0,
89
- "findings_recurring": 0,
90
- "sqale_rating": "A",
91
- "agent_results": {
92
- "correctness": { "status": "ok", "symbols": 24, "sub_targets": 1, "findings": 0 },
93
- "security": { "status": "ok", "symbols": 14, "sub_targets": 1, "findings": 0 },
94
- "performance": { "status": "ok", "symbols": 13, "sub_targets": 1, "findings": 0 },
95
- "architecture": { "status": "ok", "symbols": 30, "sub_targets": 1, "findings": 0 },
96
- "testing": { "status": "ok", "symbols": 35, "sub_targets": 1, "findings": 0 }
97
- },
98
- "agent_overlap": {},
99
- "estimated_remaining": null
100
- },
101
- {
102
- "date": "2026-04-11",
103
- "commit": "59ea7a3",
104
- "mode": "incremental",
105
- "files_audited": 21,
106
- "files_skipped": 0,
107
- "findings_new": 0,
108
- "findings_recurring": 0,
109
- "sqale_rating": "A",
110
- "agent_results": {
111
- "correctness": { "status": "ok", "symbols": 24, "sub_targets": 1, "findings": 0 },
112
- "security": { "status": "ok", "symbols": 14, "sub_targets": 1, "findings": 0 },
113
- "performance": { "status": "ok", "symbols": 13, "sub_targets": 1, "findings": 0 },
114
- "architecture": { "status": "ok", "symbols": 30, "sub_targets": 1, "findings": 0 },
115
- "testing": { "status": "ok", "symbols": 35, "sub_targets": 1, "findings": 0 }
116
- },
117
- "agent_overlap": {},
118
- "estimated_remaining": null
119
- }
120
- ],
121
- "findings": {
122
- "F-001": {
123
- "status": "implemented",
124
- "file": "src/compiler/coordinator.ts",
125
- "symbol": "transform",
126
- "category": "correctness",
127
- "title": "AST Position Staleness After Code Modification",
128
- "content_hash": "ast-position-staleness-coordinator-transform",
129
- "file_hash": "",
130
- "first_seen": "2026-04-11",
131
- "last_seen": "2026-04-11",
132
- "found_by": ["correctness"],
133
- "priority_score": 66
134
- },
135
- "F-002": {
136
- "status": "deferred",
137
- "file": "src/compiler/coordinator.ts",
138
- "symbol": "applyImports",
139
- "category": "optimize",
140
- "title": "Redundant SourceFile Recreation in applyImports Loop",
141
- "content_hash": "redundant-sourcefile-recreation-applyimports",
142
- "file_hash": "",
143
- "first_seen": "2026-04-11",
144
- "last_seen": "2026-04-11",
145
- "found_by": ["performance"],
146
- "priority_score": 44
147
- },
148
- "F-003": {
149
- "status": "implemented",
150
- "file": "src/",
151
- "symbol": "*",
152
- "category": "coverage",
153
- "title": "Complete Absence of Test Infrastructure",
154
- "content_hash": "missing-test-infrastructure",
155
- "file_hash": "",
156
- "first_seen": "2026-04-11",
157
- "last_seen": "2026-04-11",
158
- "found_by": ["testing"],
159
- "priority_score": 114
160
- },
161
- "F-004": {
162
- "status": "implemented",
163
- "file": "src/compiler/language-service.ts",
164
- "symbol": "get",
165
- "category": "loc",
166
- "title": "languageService.get() is dead code",
167
- "content_hash": "dead-code-language-service-get",
168
- "file_hash": "",
169
- "first_seen": "2026-04-11",
170
- "last_seen": "2026-04-11",
171
- "found_by": ["architecture"],
172
- "priority_score": 45
173
- },
174
- "F-005": {
175
- "status": "implemented",
176
- "file": "src/compiler/language-service.ts",
177
- "symbol": "delete",
178
- "category": "loc",
179
- "title": "languageService.delete() is dead code",
180
- "content_hash": "dead-code-language-service-delete",
181
- "file_hash": "",
182
- "first_seen": "2026-04-11",
183
- "last_seen": "2026-04-11",
184
- "found_by": ["architecture"],
185
- "priority_score": 45
186
- },
187
- "F-006": {
188
- "status": "implemented",
189
- "file": "src/compiler/language-service.ts",
190
- "symbol": "*",
191
- "category": "coverage",
192
- "title": "language-service.ts has 0 test coverage",
193
- "content_hash": "no-test-coverage-language-service",
194
- "file_hash": "",
195
- "first_seen": "2026-04-11",
196
- "last_seen": "2026-04-11",
197
- "found_by": ["testing"],
198
- "priority_score": 50
199
- },
200
- "F-007": {
201
- "status": "open",
202
- "file": "src/cli/tsc.ts",
203
- "symbol": "*",
204
- "category": "coverage",
205
- "title": "cli/tsc.ts has 0 test coverage",
206
- "content_hash": "no-test-coverage-cli-tsc",
207
- "file_hash": "",
208
- "first_seen": "2026-04-11",
209
- "last_seen": "2026-04-11",
210
- "found_by": ["testing"],
211
- "priority_score": 35
212
- },
213
- "F-008": {
214
- "status": "implemented",
215
- "file": "src/compiler/coordinator.ts",
216
- "symbol": "transform",
217
- "category": "test-quality",
218
- "title": "coordinator plugin.transform() throw path untested",
219
- "content_hash": "test-quality-coordinator-throw-path",
220
- "file_hash": "",
221
- "first_seen": "2026-04-11",
222
- "last_seen": "2026-04-11",
223
- "found_by": ["testing"],
224
- "priority_score": 48
225
- },
226
- "F-009": {
227
- "status": "implemented",
228
- "file": "src/compiler/coordinator.ts",
229
- "symbol": "transform",
230
- "category": "test-quality",
231
- "title": "coordinator null sourceFile fallback path untested",
232
- "content_hash": "test-quality-coordinator-null-sourcefile",
233
- "file_hash": "",
234
- "first_seen": "2026-04-11",
235
- "last_seen": "2026-04-11",
236
- "found_by": ["testing"],
237
- "priority_score": 48
238
- },
239
- "F-010": {
240
- "status": "implemented",
241
- "file": "src/compiler/plugins/vite.ts",
242
- "symbol": "transform",
243
- "category": "test-quality",
244
- "title": "vite plugin error catch path untested",
245
- "content_hash": "test-quality-vite-error-catch",
246
- "file_hash": "",
247
- "first_seen": "2026-04-11",
248
- "last_seen": "2026-04-11",
249
- "found_by": ["testing"],
250
- "priority_score": 48
251
- },
252
- "F-011": {
253
- "status": "implemented",
254
- "file": "src/compiler/plugins/vite.ts",
255
- "symbol": "transform",
256
- "category": "test-quality",
257
- "title": "vite plugin sourceFile undefined fallback untested",
258
- "content_hash": "test-quality-vite-sourcefile-fallback",
259
- "file_hash": "",
260
- "first_seen": "2026-04-11",
261
- "last_seen": "2026-04-11",
262
- "found_by": ["testing"],
263
- "priority_score": 45
264
- },
265
- "F-012": {
266
- "status": "implemented",
267
- "file": "src/compiler/imports.ts",
268
- "symbol": "includes",
269
- "category": "test-quality",
270
- "title": "imports.includes() getAliasedSymbol catch block untested",
271
- "content_hash": "test-quality-imports-aliased-catch",
272
- "file_hash": "",
273
- "first_seen": "2026-04-11",
274
- "last_seen": "2026-04-11",
275
- "found_by": ["testing"],
276
- "priority_score": 42
277
- }
278
- },
279
- "clean_symbols": {},
280
- "convergence": {
281
- "per_category": {
282
- "correctness": {
283
- "findings_per_run": [1, 0, 0, 0, 0, 0],
284
- "successful_runs": 6,
285
- "consecutive_zero": 5,
286
- "last_agent_success": true,
287
- "status": "CONVERGED",
288
- "reason": "0 new findings on 5 consecutive successful runs"
289
- },
290
- "security": {
291
- "findings_per_run": [0, 0, 0, 0, 0, 0],
292
- "successful_runs": 6,
293
- "consecutive_zero": 6,
294
- "last_agent_success": true,
295
- "status": "CONVERGED",
296
- "reason": "0 new findings on 6 consecutive successful runs"
297
- },
298
- "performance": {
299
- "findings_per_run": [1, 0, 0, 0, 0, 0],
300
- "successful_runs": 6,
301
- "consecutive_zero": 5,
302
- "last_agent_success": true,
303
- "status": "CONVERGED",
304
- "reason": "0 new findings on 5 consecutive successful runs"
305
- },
306
- "architecture": {
307
- "findings_per_run": [0, 0, 0, 2, 0, 0],
308
- "successful_runs": 6,
309
- "consecutive_zero": 2,
310
- "last_agent_success": true,
311
- "status": "CONVERGED",
312
- "reason": "0 new findings on 2 consecutive runs after fixes"
313
- },
314
- "testing": {
315
- "findings_per_run": [1, 1, 0, 7, 0, 0],
316
- "successful_runs": 6,
317
- "consecutive_zero": 2,
318
- "last_agent_success": true,
319
- "status": "CONVERGED",
320
- "reason": "0 new findings on 2 consecutive runs after fixes"
321
- }
322
- },
323
- "overall": "CONVERGED",
324
- "reason": "all 5 categories converged with 0 findings on 2+ consecutive runs"
325
- }
326
- }
package/.editorconfig DELETED
@@ -1,9 +0,0 @@
1
- root = true
2
-
3
- [*]
4
- indent_style = space
5
- indent_size = 4
6
- charset = utf-8
7
- trim_trailing_whitespace = true
8
- insert_final_newline = true
9
- end_of_line = lf