@gettrace/cli 2.0.5 → 2.0.7

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.
package/dist/ast.js DELETED
@@ -1,203 +0,0 @@
1
- // ============================================================
2
- // TRACE AST ENGINE
3
- // Precise, AST-based source code modification for JSX/TSX files.
4
- //
5
- // Complements fuzzyReplace (EDIT_FILE) with guaranteed-correct
6
- // structural edits that survive Prettier reformatting and
7
- // dynamic className expressions that string matching cannot handle.
8
- //
9
- // Two exported functions:
10
- // editJSXClassName — update a className attribute in JSX/TSX
11
- // editCSSRule — patch properties inside a CSS selector block
12
- //
13
- // Deps (runtime): @babel/parser, @babel/traverse, @babel/generator, @babel/types
14
- // Used by: EDIT_CLASSNAME handler in index.ts
15
- // ============================================================
16
- import { parse } from '@babel/parser';
17
- import { createRequire } from 'module';
18
- import * as t from '@babel/types';
19
- // @babel/traverse and @babel/generator ship CJS-only bundles.
20
- // Use createRequire so they work inside an ESM project (module:NodeNext).
21
- const _require = createRequire(import.meta.url);
22
- const _traverse = _require('@babel/traverse');
23
- const _generate = _require('@babel/generator');
24
- const traverse = (_traverse.default ?? _traverse);
25
- const generate = (_generate.default ?? _generate);
26
- // ── JSX className editing ─────────────────────────────────────────────────
27
- /**
28
- * Parse JSX/TSX source and replace a className attribute value.
29
- *
30
- * Matching priority (higher score wins):
31
- * 1. Line-exact — node is within ±1 line of lineHint AND className contains oldValue (+100 line, +80 value)
32
- * 2. Line-nearby — node is within ±5 lines of lineHint (+50 line)
33
- * 3. Value-exact — className === oldValue (any line) (+80 value)
34
- * 4. Value-partial— className.includes(oldValue) (any line) (+40 value)
35
- * 5. Any — first className found (when no oldValue given) (+20)
36
- *
37
- * Returns { success: false } without modifying source if no match scores > 0.
38
- */
39
- export function editJSXClassName(source, edit) {
40
- let ast;
41
- try {
42
- ast = parse(source, {
43
- sourceType: 'module',
44
- plugins: ['jsx', 'typescript'],
45
- errorRecovery: true, // tolerate minor syntax errors in source file
46
- });
47
- }
48
- catch (err) {
49
- const msg = err instanceof Error ? err.message : String(err);
50
- return { success: false, error: `Parse error: ${msg}` };
51
- }
52
- const candidates = [];
53
- traverse(ast, {
54
- JSXOpeningElement(nodePath) {
55
- for (const attr of nodePath.node.attributes) {
56
- if (!t.isJSXAttribute(attr))
57
- continue;
58
- if (!t.isJSXIdentifier(attr.name, { name: 'className' }))
59
- continue;
60
- const line = attr.loc?.start.line ?? 0;
61
- let score = 0;
62
- // ── Score by line proximity ──
63
- if (edit.lineHint && line > 0) {
64
- const dist = Math.abs(line - edit.lineHint);
65
- if (dist <= 1)
66
- score += 100;
67
- else if (dist <= 5)
68
- score += 50;
69
- else if (dist <= 15)
70
- score += 15;
71
- }
72
- // ── Score by value match ──
73
- const currentValue = _extractClassNameString(attr.value);
74
- if (edit.oldValue) {
75
- if (currentValue === edit.oldValue)
76
- score += 80;
77
- else if (currentValue?.includes(edit.oldValue))
78
- score += 40;
79
- // Dynamic expression (null) — can't verify value, give small score
80
- else if (currentValue === null && edit.lineHint)
81
- score += 20;
82
- }
83
- else {
84
- // No oldValue specified — any className is a candidate
85
- score += 20;
86
- }
87
- if (score > 0) {
88
- candidates.push({ nodePath, attrNode: attr, score, line });
89
- }
90
- }
91
- },
92
- });
93
- if (candidates.length === 0) {
94
- return { success: false, error: 'No className attribute found matching the given hints.' };
95
- }
96
- // Pick the highest-scoring candidate
97
- candidates.sort((a, b) => b.score - a.score);
98
- const best = candidates[0];
99
- // Classify strategy for caller transparency
100
- let strategy;
101
- if (best.score >= 180)
102
- strategy = 'line_exact';
103
- else if (best.score >= 100)
104
- strategy = 'line_proximity';
105
- else if (best.score >= 80)
106
- strategy = 'value_exact';
107
- else
108
- strategy = 'value_partial';
109
- // Apply the edit — replace with StringLiteral
110
- best.attrNode.value = t.stringLiteral(edit.newValue);
111
- // Generate source back. retainLines keeps line numbers stable so diffs
112
- // are minimal; jsescOption minimal avoids unnecessary unicode escaping.
113
- const output = generate(ast, { retainLines: true, jsescOption: { minimal: true } }, source);
114
- return {
115
- success: true,
116
- code: output.code,
117
- strategy,
118
- matchedLine: best.line,
119
- };
120
- }
121
- /**
122
- * Extract a plain string from a className JSXAttribute value.
123
- * Returns null for dynamic expressions (template literals with interpolations,
124
- * variables, function calls) — these cannot safely be string-replaced.
125
- */
126
- function _extractClassNameString(value) {
127
- if (!value)
128
- return '';
129
- if (t.isStringLiteral(value))
130
- return value.value;
131
- if (t.isJSXExpressionContainer(value)) {
132
- const expr = value.expression;
133
- if (t.isStringLiteral(expr))
134
- return expr.value;
135
- // Simple template literal with no expressions: `bg-red-500 p-4`
136
- if (t.isTemplateLiteral(expr) && expr.expressions.length === 0) {
137
- return expr.quasis[0]?.value.cooked ?? null;
138
- }
139
- }
140
- return null; // dynamic — caller should use EDIT_FILE fuzzy replacer instead
141
- }
142
- // ── CSS rule editing ──────────────────────────────────────────────────────
143
- /**
144
- * Edit CSS properties within a specific selector block.
145
- *
146
- * - If the selector exists: updates existing properties in-place, appends new ones.
147
- * - If the selector does not exist: appends a new rule at the end of the file.
148
- * - Leaves all properties not mentioned in `edit.properties` untouched.
149
- * - Strips any existing `!important` from injected values (clean code output).
150
- *
151
- * Uses a regex-based approach — a full CSS AST is overkill for targeted property
152
- * edits and would add another large dep.
153
- */
154
- export function editCSSRule(source, edit) {
155
- // Clean properties: strip !important (Trace injected them for browser specificity;
156
- // they don't belong in authored source files)
157
- const props = {};
158
- for (const [k, v] of Object.entries(edit.properties)) {
159
- props[k] = v.replace(/\s*!important\s*$/, '').trim();
160
- }
161
- // Escape selector for use in RegExp
162
- const escapedSel = edit.selector.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
163
- const ruleRegex = new RegExp(`(${escapedSel}\\s*\\{)([^}]*)(\\})`, 'ms');
164
- const match = ruleRegex.exec(source);
165
- if (!match) {
166
- // Selector not found — append new rule
167
- const newRule = _buildCSSRule(edit.selector, props);
168
- return {
169
- success: true,
170
- code: source.trimEnd() + '\n\n' + newRule + '\n',
171
- strategy: 'value_partial', // reuse field to signal "appended"
172
- };
173
- }
174
- const [full, open, body, close] = match;
175
- let patchedBody = body;
176
- for (const [prop, val] of Object.entries(props)) {
177
- // Match `prop:` with optional surrounding whitespace
178
- const propRegex = new RegExp(`([ \\t]*${prop.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\s*:\\s*)[^;\\n]+;?`, 'm');
179
- if (propRegex.test(patchedBody)) {
180
- patchedBody = patchedBody.replace(propRegex, `$1${val};`);
181
- }
182
- else {
183
- // Append missing property before closing brace
184
- const indent = _detectIndent(patchedBody);
185
- patchedBody = patchedBody.trimEnd() + `\n${indent}${prop}: ${val};`;
186
- }
187
- }
188
- return {
189
- success: true,
190
- code: source.replace(full, open + patchedBody + close),
191
- strategy: 'value_exact',
192
- };
193
- }
194
- function _buildCSSRule(selector, props) {
195
- const lines = Object.entries(props).map(([k, v]) => ` ${k}: ${v};`).join('\n');
196
- return `${selector} {\n${lines}\n}`;
197
- }
198
- function _detectIndent(body) {
199
- // Detect the indentation used by existing properties in this block
200
- const match = body.match(/^([ \t]+)\S/m);
201
- return match ? match[1] : ' ';
202
- }
203
- //# sourceMappingURL=ast.js.map
package/dist/ast.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Per-file async write-lock for the Trace IDE bridge.
3
- *
4
- * Problem: Node.js is single-threaded but WebSocket message handlers are
5
- * async. Two EDIT_FILE messages arriving in quick succession will both
6
- * start processing, and if a second message begins its read after the first
7
- * has written but before the first's `await autoFormat` resolves, the second
8
- * write lands on correctly-updated content. The real risk is a future where
9
- * parallelism is added — e.g., multiple WS connections dispatching concurrent
10
- * edits to the same file — where without a lock, the second write overwrites
11
- * the first silently.
12
- *
13
- * Solution: Promise-chain semaphore keyed on the absolute file path.
14
- * Each caller waits for the previous write to the same file to fully complete
15
- * (including the async autoFormat step) before starting its own write.
16
- *
17
- * Usage:
18
- * await withFileLock(filePath, async () => {
19
- * fs.writeFileSync(filePath, newContent, 'utf-8');
20
- * await autoFormat(filePath, projectPath);
21
- * });
22
- */
23
- export declare function withFileLock<T>(filePath: string, fn: () => Promise<T>): Promise<T>;
package/dist/file-lock.js DELETED
@@ -1,47 +0,0 @@
1
- /**
2
- * Per-file async write-lock for the Trace IDE bridge.
3
- *
4
- * Problem: Node.js is single-threaded but WebSocket message handlers are
5
- * async. Two EDIT_FILE messages arriving in quick succession will both
6
- * start processing, and if a second message begins its read after the first
7
- * has written but before the first's `await autoFormat` resolves, the second
8
- * write lands on correctly-updated content. The real risk is a future where
9
- * parallelism is added — e.g., multiple WS connections dispatching concurrent
10
- * edits to the same file — where without a lock, the second write overwrites
11
- * the first silently.
12
- *
13
- * Solution: Promise-chain semaphore keyed on the absolute file path.
14
- * Each caller waits for the previous write to the same file to fully complete
15
- * (including the async autoFormat step) before starting its own write.
16
- *
17
- * Usage:
18
- * await withFileLock(filePath, async () => {
19
- * fs.writeFileSync(filePath, newContent, 'utf-8');
20
- * await autoFormat(filePath, projectPath);
21
- * });
22
- */
23
- // Map: absolute filePath → the Promise representing the current (or last) write.
24
- const _locks = new Map();
25
- export async function withFileLock(filePath, fn) {
26
- // Grab any in-progress write for this file (or a resolved no-op if none).
27
- const prior = _locks.get(filePath) ?? Promise.resolve();
28
- // Create a "hold" promise that keeps this slot in the chain alive
29
- // until our fn() completes and we call release().
30
- let release;
31
- const hold = new Promise(resolve => (release = resolve));
32
- // Register this write as the current holder for this path.
33
- // Anyone queueing after us will wait on `hold`.
34
- _locks.set(filePath, hold);
35
- try {
36
- await prior; // Wait for any preceding write to finish
37
- return await fn(); // Execute our write (includes autoFormat await)
38
- }
39
- finally {
40
- release(); // Unblock the next write in the chain
41
- // Clean up the map if nothing queued behind us
42
- if (_locks.get(filePath) === hold) {
43
- _locks.delete(filePath);
44
- }
45
- }
46
- }
47
- //# sourceMappingURL=file-lock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../src/file-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,iFAAiF;AACjF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,QAAgB,EAChB,EAAoB;IAEpB,0EAA0E;IAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAExD,kEAAkE;IAClE,kDAAkD;IAClD,IAAI,OAAoB,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAE/D,2DAA2D;IAC3D,gDAAgD;IAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE3B,IAAI,CAAC;QACD,MAAM,KAAK,CAAC,CAAO,yCAAyC;QAC5D,OAAO,MAAM,EAAE,EAAE,CAAC,CAAC,gDAAgD;IACvE,CAAC;YAAS,CAAC;QACP,OAAO,EAAE,CAAC,CAAS,sCAAsC;QACzD,+CAA+C;QAC/C,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;AACL,CAAC"}
package/dist/format.d.ts DELETED
@@ -1,20 +0,0 @@
1
- /**
2
- * Auto-format a project file after agent writes.
3
- *
4
- * Cascade: Prettier → ESLint --fix
5
- *
6
- * - Prettier handles JS/TS/CSS/HTML/JSON/Markdown formatting.
7
- * - ESLint --fix handles import ordering, unused imports, and React-specific
8
- * rules that Prettier does not enforce (runs only if Prettier is absent or
9
- * fails its own config check).
10
- *
11
- * Both are discovered from the *project's own* node_modules — not a global
12
- * install — so they respect the project's configured rules and parser options.
13
- *
14
- * Errors from either formatter are intentionally swallowed: a format failure
15
- * must never block an agent's write. The function returns:
16
- * 'prettier' — Prettier ran successfully
17
- * 'eslint' — ESLint ran successfully (Prettier was absent/failed)
18
- * null — file type is not formattable, or no formatter found
19
- */
20
- export declare function autoFormat(filePath: string, projectPath: string): Promise<string | null>;
package/dist/format.js DELETED
@@ -1,68 +0,0 @@
1
- /**
2
- * Auto-format a project file after agent writes.
3
- *
4
- * Cascade: Prettier → ESLint --fix
5
- *
6
- * - Prettier handles JS/TS/CSS/HTML/JSON/Markdown formatting.
7
- * - ESLint --fix handles import ordering, unused imports, and React-specific
8
- * rules that Prettier does not enforce (runs only if Prettier is absent or
9
- * fails its own config check).
10
- *
11
- * Both are discovered from the *project's own* node_modules — not a global
12
- * install — so they respect the project's configured rules and parser options.
13
- *
14
- * Errors from either formatter are intentionally swallowed: a format failure
15
- * must never block an agent's write. The function returns:
16
- * 'prettier' — Prettier ran successfully
17
- * 'eslint' — ESLint ran successfully (Prettier was absent/failed)
18
- * null — file type is not formattable, or no formatter found
19
- */
20
- import * as fs from 'fs';
21
- import * as path from 'path';
22
- import { exec } from 'child_process';
23
- import { promisify } from 'util';
24
- const execAsync = promisify(exec);
25
- const JS_EXTS = new Set(['.js', '.jsx', '.ts', '.tsx', '.mjs', '.cjs', '.mts', '.cts']);
26
- const CSS_EXTS = new Set(['.css', '.scss', '.less']);
27
- const HTML_EXTS = new Set(['.html', '.htm', '.vue', '.svelte']);
28
- const ALL_FORMATTABLE = new Set([
29
- ...JS_EXTS, ...CSS_EXTS, ...HTML_EXTS,
30
- '.json', '.md', '.yaml', '.yml',
31
- ]);
32
- export async function autoFormat(filePath, projectPath) {
33
- const ext = path.extname(filePath).toLowerCase();
34
- if (!ALL_FORMATTABLE.has(ext))
35
- return null;
36
- // ── 1. Prettier (first choice) ────────────────────────────────────────────
37
- // Handles JS/TS/CSS/HTML/JSON/Markdown. Respects .prettierrc / prettier.config.js.
38
- const prettierBin = path.join(projectPath, 'node_modules', '.bin', 'prettier');
39
- if (fs.existsSync(prettierBin)) {
40
- try {
41
- await execAsync(`"${prettierBin}" --write "${filePath}"`, { cwd: projectPath });
42
- return 'prettier';
43
- }
44
- catch {
45
- // Prettier config error or unparseable file — fall through to ESLint.
46
- }
47
- }
48
- // ── 2. ESLint --fix (JS/TS only) ─────────────────────────────────────────
49
- // Handles import ordering (eslint-plugin-import), unused imports
50
- // (eslint-plugin-unused-imports), and React-specific rules that Prettier
51
- // does not enforce. Runs after Prettier so lint rules don't fight formatting.
52
- if (JS_EXTS.has(ext)) {
53
- const eslintBin = path.join(projectPath, 'node_modules', '.bin', 'eslint');
54
- if (fs.existsSync(eslintBin)) {
55
- try {
56
- // --fix mutates the file; lint violations that can't be auto-fixed
57
- // are reported to stderr (ignored here) but the file is still improved.
58
- await execAsync(`"${eslintBin}" --fix "${filePath}"`, { cwd: projectPath });
59
- return 'eslint';
60
- }
61
- catch {
62
- // Lint violations are expected — fixable ones were still applied.
63
- }
64
- }
65
- }
66
- return null;
67
- }
68
- //# sourceMappingURL=format.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACxF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC5B,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,SAAS;IACrC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,WAAmB;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,6EAA6E;IAC7E,mFAAmF;IACnF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/E,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,IAAI,WAAW,cAAc,QAAQ,GAAG,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAChF,OAAO,UAAU,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,sEAAsE;QAC1E,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,iEAAiE;IACjE,yEAAyE;IACzE,8EAA8E;IAC9E,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACD,mEAAmE;gBACnE,wEAAwE;gBACxE,MAAM,SAAS,CAAC,IAAI,SAAS,YAAY,QAAQ,GAAG,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC5E,OAAO,QAAQ,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACL,kEAAkE;YACtE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/lsp.d.ts DELETED
@@ -1,46 +0,0 @@
1
- /**
2
- * Post-write multi-language diagnostic checker for Trace IDE Bridge.
3
- *
4
- * Mirrors OpenCode's lsp.touchFile + lsp.diagnostics() but without a
5
- * persistent LSP daemon. Instead we run the project's own toolchain
6
- * directly after every successful file write.
7
- *
8
- * Language coverage:
9
- * .ts / .tsx / .mts / .cts → tsc --noEmit (type errors)
10
- * .js / .jsx / .mjs / .cjs → ESLint --format json (lint errors)
11
- * .ts / .tsx (+ JS if allowJs) → tsc (includes JS when tsconfig says so)
12
- * .css / .scss / .less → stylelint --formatter json (if installed)
13
- *
14
- * Design principles:
15
- * 1. Non-blocking — hard 6s timeout per checker, never stalls a response.
16
- * 2. Project-local binaries first (tsc, eslint, stylelint) → global fallback.
17
- * 3. Structured output: { file, line, col, severity, code, message }[]
18
- * 4. Silent on failure — missing tooling / timeout → returns [].
19
- * 5. Results prioritised: edited file's errors first, then other files.
20
- */
21
- export interface LspDiagnostic {
22
- /** Relative path from the project root */
23
- file: string;
24
- line: number;
25
- col: number;
26
- severity: 'error' | 'warning';
27
- /** Tool-specific code: "TS2345", "no-unused-vars", "color-no-invalid-hex" */
28
- code: string;
29
- message: string;
30
- /** Which checker produced this: "tsc" | "eslint" | "stylelint" */
31
- source: 'tsc' | 'eslint' | 'stylelint';
32
- }
33
- export interface LspResult {
34
- diagnostics: LspDiagnostic[];
35
- /** Human-readable summary injected into the tool response */
36
- summary: string | null;
37
- /** Which checkers actually ran */
38
- checkers: string[];
39
- /** false = all checkers were skipped (non-applicable file type, tooling absent) */
40
- ran: boolean;
41
- }
42
- /**
43
- * Run all applicable checkers for the given file and return structured
44
- * diagnostics. Always resolves, never rejects.
45
- */
46
- export declare function checkDiagnostics(filePath: string, projectPath: string): Promise<LspResult>;