pi-shazam 0.9.1 → 0.9.3
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/README.md +9 -9
- package/dist/core/filter.d.ts +12 -2
- package/dist/core/filter.d.ts.map +1 -1
- package/dist/core/filter.js +34 -27
- package/dist/core/filter.js.map +1 -1
- package/dist/hooks/before-start.d.ts.map +1 -1
- package/dist/hooks/before-start.js +6 -3
- package/dist/hooks/before-start.js.map +1 -1
- package/dist/hooks/pre-edit.d.ts.map +1 -1
- package/dist/hooks/pre-edit.js +9 -2
- package/dist/hooks/pre-edit.js.map +1 -1
- package/dist/hooks/safety.d.ts.map +1 -1
- package/dist/hooks/safety.js +8 -25
- package/dist/hooks/safety.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/lsp/client.d.ts +5 -1
- package/dist/lsp/client.d.ts.map +1 -1
- package/dist/lsp/client.js +95 -0
- package/dist/lsp/client.js.map +1 -1
- package/dist/lsp/manager.d.ts +8 -0
- package/dist/lsp/manager.d.ts.map +1 -1
- package/dist/lsp/manager.js +14 -0
- package/dist/lsp/manager.js.map +1 -1
- package/dist/mcp/entry.js +1 -1
- package/dist/tools/file_detail.d.ts.map +1 -1
- package/dist/tools/file_detail.js +22 -2
- package/dist/tools/file_detail.js.map +1 -1
- package/dist/tools/hover.d.ts +1 -0
- package/dist/tools/hover.d.ts.map +1 -1
- package/dist/tools/hover.js +42 -0
- package/dist/tools/hover.js.map +1 -1
- package/dist/tools/lsp_enrich.d.ts +22 -1
- package/dist/tools/lsp_enrich.d.ts.map +1 -1
- package/dist/tools/lsp_enrich.js +84 -0
- package/dist/tools/lsp_enrich.js.map +1 -1
- package/dist/tools/type_hierarchy.d.ts +1 -0
- package/dist/tools/type_hierarchy.d.ts.map +1 -1
- package/dist/tools/type_hierarchy.js +33 -0
- package/dist/tools/type_hierarchy.js.map +1 -1
- package/dist/tools/verify.d.ts.map +1 -1
- package/dist/tools/verify.js +39 -0
- package/dist/tools/verify.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -59,21 +59,21 @@ Compatible with any MCP-capable client. Same analysis engine, JSON-based tool in
|
|
|
59
59
|
| `shazam_impact` | Change impact analysis: affected files, symbols, tests |
|
|
60
60
|
| `shazam_codesearch` | BM25 symbol search — ranked alternative to grep |
|
|
61
61
|
| `shazam_symbol` | Symbol definition, signature, callers, callees |
|
|
62
|
-
| `shazam_hover` | Type signatures
|
|
63
|
-
| `shazam_file_detail` |
|
|
62
|
+
| `shazam_hover` | Type signatures, JSDoc, signatureHelp for function call context |
|
|
63
|
+
| `shazam_file_detail` | File structure: symbols, PageRank, call counts, LSP hierarchy, codeLens refs |
|
|
64
64
|
| `shazam_call_chain` | Full upstream/downstream call graph |
|
|
65
65
|
| `shazam_find_tests` | Find test files covering a module |
|
|
66
66
|
| `shazam_hotspots` | Files ranked by complexity — where bugs hurt most |
|
|
67
|
-
| `shazam_type_hierarchy` | Class/interface inheritance chain
|
|
67
|
+
| `shazam_type_hierarchy` | Class/interface inheritance chain + implementation locations |
|
|
68
68
|
|
|
69
69
|
### Write & Verify
|
|
70
70
|
|
|
71
|
-
| Tool | What It Does
|
|
72
|
-
| ---------------------- |
|
|
73
|
-
| `shazam_verify` | Post-edit verification: LSP diagnostics +
|
|
74
|
-
| `shazam_fix` | Auto-fix format issues (prettier, biome, eslint, ruff, gofmt)
|
|
75
|
-
| `shazam_rename_symbol` | Safe project-wide rename — verify references first
|
|
76
|
-
| `shazam_safe_delete` | Delete with zero-reference confirmation
|
|
71
|
+
| Tool | What It Does |
|
|
72
|
+
| ---------------------- | --------------------------------------------------------------------------- |
|
|
73
|
+
| `shazam_verify` | Post-edit verification: LSP diagnostics + codeAction fixes + risk + orphans |
|
|
74
|
+
| `shazam_fix` | Auto-fix format issues (prettier, biome, eslint, ruff, gofmt) |
|
|
75
|
+
| `shazam_rename_symbol` | Safe project-wide rename — verify references first |
|
|
76
|
+
| `shazam_safe_delete` | Delete with zero-reference confirmation |
|
|
77
77
|
|
|
78
78
|
## Platform Support
|
|
79
79
|
|
package/dist/core/filter.d.ts
CHANGED
|
@@ -15,6 +15,16 @@ import type { RepoGraph } from "./graph.js";
|
|
|
15
15
|
*/
|
|
16
16
|
export declare const SKIP_DIRS: Set<string>;
|
|
17
17
|
export declare function isNonSourceFile(file: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Check whether a normalized absolute path should be tracked by the
|
|
20
|
+
* pre-edit guard. Returns false for paths inside non-source trees
|
|
21
|
+
* (SKIP_DIRS, dot-directories not in SKIP_DIRS, node_modules, dist, etc.).
|
|
22
|
+
*
|
|
23
|
+
* Single source of truth mirroring scanner.ts's directory filtering so
|
|
24
|
+
* pre-edit.ts does not flag writes to /tmp/, ~/.pi/, or build outputs
|
|
25
|
+
* as "unverified edits".
|
|
26
|
+
*/
|
|
27
|
+
export declare function isTrackableEditedPath(normalizedPath: string): boolean;
|
|
18
28
|
/**
|
|
19
29
|
* Shared orphan symbol detection.
|
|
20
30
|
*
|
|
@@ -24,15 +34,15 @@ export declare function isNonSourceFile(file: string): boolean;
|
|
|
24
34
|
*
|
|
25
35
|
* Returns symbols with zero incoming references, excluding:
|
|
26
36
|
* - Non-source files (config, lockfiles, node_modules, dist)
|
|
27
|
-
* -
|
|
37
|
+
* - ALL exported symbols (consumers are external to the scanned graph)
|
|
28
38
|
* - Anonymous functions (no name to reference)
|
|
29
39
|
* - Test files
|
|
30
40
|
* - Registration functions (register*, createTool) called by MCP/extension frameworks
|
|
31
|
-
* - Exported symbols in registration/entry-point files (called externally)
|
|
32
41
|
* - Language-specific entry point symbols (dunder methods, main, traits)
|
|
33
42
|
* - Framework handler patterns (handle_*, on_*, middleware, *_handler)
|
|
34
43
|
*
|
|
35
44
|
* Returns structured result with separate lists for internal and exported orphans.
|
|
45
|
+
* The exported list is always empty under the current policy (all exports excluded).
|
|
36
46
|
*/
|
|
37
47
|
export declare function findOrphans(graph: RepoGraph): {
|
|
38
48
|
all: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../core/filter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../core/filter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAuB5C;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,aA4BpB,CAAC;AAEH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAarE;AAyDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG;IAC9C,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACvF,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvE,CA8BA"}
|
package/dist/core/filter.js
CHANGED
|
@@ -18,8 +18,11 @@ const NON_SOURCE_FILE_PATTERNS = [
|
|
|
18
18
|
/package-lock\.json$/,
|
|
19
19
|
/^package\.json$/,
|
|
20
20
|
/(?:^|\/)tsconfig[^/]*\.json$/,
|
|
21
|
-
/node_modules
|
|
22
|
-
|
|
21
|
+
/node_modules(?:\/|$)/,
|
|
22
|
+
/(?:^|\/)dist(?:\/|$)/,
|
|
23
|
+
/(?:^|\/)build(?:\/|$)/,
|
|
24
|
+
/(?:^|\/)out(?:\/|$)/,
|
|
25
|
+
/(?:^|\/)target(?:\/|$)/,
|
|
23
26
|
/\.json$/,
|
|
24
27
|
];
|
|
25
28
|
/**
|
|
@@ -62,16 +65,28 @@ export function isNonSourceFile(file) {
|
|
|
62
65
|
return NON_SOURCE_FILE_PATTERNS.some((p) => p.test(file));
|
|
63
66
|
}
|
|
64
67
|
/**
|
|
65
|
-
* Check
|
|
66
|
-
*
|
|
68
|
+
* Check whether a normalized absolute path should be tracked by the
|
|
69
|
+
* pre-edit guard. Returns false for paths inside non-source trees
|
|
70
|
+
* (SKIP_DIRS, dot-directories not in SKIP_DIRS, node_modules, dist, etc.).
|
|
71
|
+
*
|
|
72
|
+
* Single source of truth mirroring scanner.ts's directory filtering so
|
|
73
|
+
* pre-edit.ts does not flag writes to /tmp/, ~/.pi/, or build outputs
|
|
74
|
+
* as "unverified edits".
|
|
67
75
|
*/
|
|
68
|
-
function
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
76
|
+
export function isTrackableEditedPath(normalizedPath) {
|
|
77
|
+
// Fast path: reject non-source files by pattern (node_modules, dist, *.json)
|
|
78
|
+
if (isNonSourceFile(normalizedPath))
|
|
79
|
+
return false;
|
|
80
|
+
// Segment-based check: reject any path that traverses a skipped directory
|
|
81
|
+
// or a dot-directory not in SKIP_DIRS (e.g. .pi, .git, .cache)
|
|
82
|
+
const segments = normalizedPath.split("/").filter(Boolean);
|
|
83
|
+
for (const seg of segments) {
|
|
84
|
+
if (SKIP_DIRS.has(seg))
|
|
85
|
+
return false;
|
|
86
|
+
if (seg.startsWith(".") && !SKIP_DIRS.has(seg))
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
return true;
|
|
75
90
|
}
|
|
76
91
|
/**
|
|
77
92
|
* Check if a symbol name matches a registration pattern.
|
|
@@ -140,15 +155,15 @@ function isFrameworkHandler(name) {
|
|
|
140
155
|
*
|
|
141
156
|
* Returns symbols with zero incoming references, excluding:
|
|
142
157
|
* - Non-source files (config, lockfiles, node_modules, dist)
|
|
143
|
-
* -
|
|
158
|
+
* - ALL exported symbols (consumers are external to the scanned graph)
|
|
144
159
|
* - Anonymous functions (no name to reference)
|
|
145
160
|
* - Test files
|
|
146
161
|
* - Registration functions (register*, createTool) called by MCP/extension frameworks
|
|
147
|
-
* - Exported symbols in registration/entry-point files (called externally)
|
|
148
162
|
* - Language-specific entry point symbols (dunder methods, main, traits)
|
|
149
163
|
* - Framework handler patterns (handle_*, on_*, middleware, *_handler)
|
|
150
164
|
*
|
|
151
165
|
* Returns structured result with separate lists for internal and exported orphans.
|
|
166
|
+
* The exported list is always empty under the current policy (all exports excluded).
|
|
152
167
|
*/
|
|
153
168
|
export function findOrphans(graph) {
|
|
154
169
|
const all = [];
|
|
@@ -157,11 +172,12 @@ export function findOrphans(graph) {
|
|
|
157
172
|
for (const sym of graph.symbols.values()) {
|
|
158
173
|
if (isNonSourceFile(sym.file))
|
|
159
174
|
continue;
|
|
175
|
+
// Skip ALL exported symbols — external consumers are invisible to
|
|
176
|
+
// tree-sitter scan, so zero internal refs does not mean dead code.
|
|
177
|
+
if (sym.visibility === "exported")
|
|
178
|
+
continue;
|
|
160
179
|
const incoming = graph.incoming.get(sym.id);
|
|
161
180
|
if (!incoming || incoming.length === 0) {
|
|
162
|
-
// Skip high-PageRank exported symbols (public API)
|
|
163
|
-
if (sym.visibility === "exported" && sym.pagerank > 0.01)
|
|
164
|
-
continue;
|
|
165
181
|
// Skip anonymous functions
|
|
166
182
|
if (sym.kind === "anonymous_function")
|
|
167
183
|
continue;
|
|
@@ -177,18 +193,9 @@ export function findOrphans(graph) {
|
|
|
177
193
|
// Skip framework handler patterns
|
|
178
194
|
if (isFrameworkHandler(sym.name))
|
|
179
195
|
continue;
|
|
180
|
-
// Skip exported symbols in registration/entry-point files
|
|
181
|
-
if (sym.visibility === "exported" && isRegistrationFile(sym.file))
|
|
182
|
-
continue;
|
|
183
|
-
const isExported = sym.visibility === "exported";
|
|
184
196
|
const orphan = { name: sym.name, kind: sym.kind, file: sym.file, line: sym.line };
|
|
185
|
-
all.push({ ...orphan, isExported });
|
|
186
|
-
|
|
187
|
-
exported.push(orphan);
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
internal.push(orphan);
|
|
191
|
-
}
|
|
197
|
+
all.push({ ...orphan, isExported: false });
|
|
198
|
+
internal.push(orphan);
|
|
192
199
|
}
|
|
193
200
|
}
|
|
194
201
|
return { all, internal, exported };
|
package/dist/core/filter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../core/filter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;GAQG;AACH,MAAM,wBAAwB,GAAsB;IACnD,qBAAqB;IACrB,iBAAiB;IACjB,8BAA8B;IAC9B,
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../core/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"before-start.d.ts","sourceRoot":"","sources":["../../hooks/before-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAoG7D;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,MAAM,CAe7F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"before-start.d.ts","sourceRoot":"","sources":["../../hooks/before-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAoG7D;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,MAAM,CAe7F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA0B9D"}
|
|
@@ -140,10 +140,13 @@ export function registerBeforeStartHook(pi) {
|
|
|
140
140
|
pi.on("session_start", () => {
|
|
141
141
|
_hasShownOverview = false;
|
|
142
142
|
});
|
|
143
|
-
pi.on("before_agent_start", async (event,
|
|
143
|
+
pi.on("before_agent_start", async (event, ctx) => {
|
|
144
144
|
try {
|
|
145
|
-
// Use
|
|
146
|
-
|
|
145
|
+
// Use ctx.cwd (Pi's detected project root) instead of "." so the
|
|
146
|
+
// overview scans the right directory when pi is started from a
|
|
147
|
+
// parent directory (issue #241).
|
|
148
|
+
const projectRoot = ctx.cwd || ".";
|
|
149
|
+
const overviewText = generateOverviewForPrompt(projectRoot, _hasShownOverview);
|
|
147
150
|
// Append overview to the existing system prompt (AGENTS.md, skills, etc.)
|
|
148
151
|
// NOT replace — returning systemPrompt alone would wipe global rules and skill descriptions
|
|
149
152
|
const existing = event.systemPrompt ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"before-start.js","sourceRoot":"","sources":["../../hooks/before-start.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"before-start.js","sourceRoot":"","sources":["../../hooks/before-start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-edit.d.ts","sourceRoot":"","sources":["../../hooks/pre-edit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"pre-edit.d.ts","sourceRoot":"","sources":["../../hooks/pre-edit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAmB7D;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAqBD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AA+BD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAkF3D"}
|
package/dist/hooks/pre-edit.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* shazam_impact first to assess blast radius.
|
|
11
11
|
*/
|
|
12
12
|
import { resolve } from "node:path";
|
|
13
|
+
import { isTrackableEditedPath } from "../core/filter.js";
|
|
13
14
|
/** Maximum number of edited files tracked in the set. */
|
|
14
15
|
const MAX_EDITED_FILES = 100;
|
|
15
16
|
/**
|
|
@@ -107,8 +108,14 @@ export function registerPreEditGuard(pi) {
|
|
|
107
108
|
const rawFiles = extractFilesFromInput(input);
|
|
108
109
|
if (rawFiles.length === 0)
|
|
109
110
|
return;
|
|
110
|
-
// Normalize paths to avoid duplicate tracking
|
|
111
|
-
|
|
111
|
+
// Normalize paths to avoid duplicate tracking, then drop paths that
|
|
112
|
+
// point outside the project tree (tmp, dot-dirs, node_modules, dist,
|
|
113
|
+
// json files). Tracking those would trigger spurious verify reminders.
|
|
114
|
+
const files = rawFiles
|
|
115
|
+
.map((f) => normalizeEditedPath(f, ctx.cwd))
|
|
116
|
+
.filter(isTrackableEditedPath);
|
|
117
|
+
if (files.length === 0)
|
|
118
|
+
return;
|
|
112
119
|
// Track tentatively for this tool call (for removal on failure).
|
|
113
120
|
// Also schedule TTL-based eviction in case tool_result never arrives.
|
|
114
121
|
const toolId = event.toolCallId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-edit.js","sourceRoot":"","sources":["../../hooks/pre-edit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pre-edit.js","sourceRoot":"","sources":["../../hooks/pre-edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../hooks/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAsE7D;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../hooks/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAsE7D;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAuE1D"}
|
package/dist/hooks/safety.js
CHANGED
|
@@ -121,37 +121,20 @@ export function registerSafetyHooks(pi) {
|
|
|
121
121
|
return;
|
|
122
122
|
}
|
|
123
123
|
// -- Check 2: Pre-commit gate --
|
|
124
|
+
// Auto-block commit when shazam_verify was not run recently.
|
|
125
|
+
// The stop-verify hook already sends LLM reminders about unverified
|
|
126
|
+
// edits, so we do not need an interactive selector here. Popups
|
|
127
|
+
// would also break non-interactive (print/RPC) modes.
|
|
124
128
|
if (GIT_COMMIT_PATTERN.test(cmd)) {
|
|
125
129
|
// Skip if --no-verify flag is present
|
|
126
130
|
if (cmd.includes("--no-verify")) {
|
|
127
131
|
return;
|
|
128
132
|
}
|
|
129
|
-
// Check if shazam_verify was run recently (via shared state)
|
|
130
133
|
if (!hasRecentVerify()) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
"Cancel commit",
|
|
136
|
-
]);
|
|
137
|
-
if (choice === "Run shazam_verify first (Recommended)") {
|
|
138
|
-
return {
|
|
139
|
-
block: true,
|
|
140
|
-
reason: "Run shazam_verify first, then try committing again.",
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
else if (choice === "Cancel commit") {
|
|
144
|
-
return {
|
|
145
|
-
block: true,
|
|
146
|
-
reason: "Commit cancelled by user.",
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
// "Skip verification" — allow the commit
|
|
150
|
-
}
|
|
151
|
-
catch {
|
|
152
|
-
// Non-interactive mode: just warn but allow
|
|
153
|
-
ctx.ui.notify("[shazam] Tip: Run shazam_verify before committing to catch errors early.", "warning");
|
|
154
|
-
}
|
|
134
|
+
return {
|
|
135
|
+
block: true,
|
|
136
|
+
reason: "Run shazam_verify first, then try committing again.",
|
|
137
|
+
};
|
|
155
138
|
}
|
|
156
139
|
}
|
|
157
140
|
return;
|
package/dist/hooks/safety.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../hooks/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,kBAAkB,GAAG;IAC1B,QAAQ;IACR,QAAQ;IACR,gBAAgB;IAChB,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,eAAe,EAAE,YAAY;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,oBAAoB,GAAG;IAC5B,cAAc;IACd,aAAa;IACb,UAAU;IACV,WAAW;IACX,aAAa;IACb,eAAe;IACf,UAAU;IACV,UAAU;IACV,UAAU;IACV,aAAa;IACb,aAAa;IACb,SAAS;CACT,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAE1C;;;GAGG;AACH,SAAS,wBAAwB,CAAC,GAAW;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAEhC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QACnC,CAAC;IACF,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QACrC,CAAC;IACF,CAAC;IAED,8BAA8B;IAC9B,IAAI,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAgB;IACnD,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,+BAA+B;QAC/B,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM;YAAE,OAAO;QAEtC,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAE,KAA4C,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,GAAG,GAAI,KAAiC,CAAC,OAAiB,CAAC;QAEjE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO;QAE5C,+CAA+C;QAC/C,MAAM,WAAW,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;YACzD,MAAM,OAAO,GAAG;gBACf,IAAI,KAAK,mCAAmC,KAAK,GAAG;gBACpD,EAAE;gBACF,eAAe,WAAW,CAAC,KAAK,EAAE;gBAClC,YAAY,WAAW,CAAC,OAAO,EAAE;gBACjC,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/D,EAAE;gBACF,0BAA0B;aAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;gBAElE,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChB,OAAO;wBACN,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,oCAAoC,WAAW,CAAC,OAAO,EAAE;qBACjE,CAAC;gBACH,CAAC;gBAED,oCAAoC;gBACpC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,WAAW,CAAC,KAAK,kBAAkB,EAAE,SAAS,CAAC,CAAC;YAClF,CAAC;YAAC,MAAM,CAAC;gBACR,wEAAwE;gBACxE,IAAI,WAAW,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBAClC,OAAO;wBACN,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,sDAAsD,WAAW,CAAC,OAAO,EAAE;qBACnF,CAAC;gBACH,CAAC;gBACD,4CAA4C;YAC7C,CAAC;YAED,OAAO;QACR,CAAC;QAED,iCAAiC;QACjC,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,sCAAsC;YACtC,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,OAAO;YACR,CAAC;YAED,
|
|
1
|
+
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../hooks/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,kBAAkB,GAAG;IAC1B,QAAQ;IACR,QAAQ;IACR,gBAAgB;IAChB,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,eAAe,EAAE,YAAY;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,oBAAoB,GAAG;IAC5B,cAAc;IACd,aAAa;IACb,UAAU;IACV,WAAW;IACX,aAAa;IACb,eAAe;IACf,UAAU;IACV,UAAU;IACV,UAAU;IACV,aAAa;IACb,aAAa;IACb,SAAS;CACT,CAAC;AAEF;;GAEG;AACH,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAE1C;;;GAGG;AACH,SAAS,wBAAwB,CAAC,GAAW;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAEhC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QACnC,CAAC;IACF,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QACrC,CAAC;IACF,CAAC;IAED,8BAA8B;IAC9B,IAAI,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAgB;IACnD,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,+BAA+B;QAC/B,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM;YAAE,OAAO;QAEtC,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAE,KAA4C,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,GAAG,GAAI,KAAiC,CAAC,OAAiB,CAAC;QAEjE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO;QAE5C,+CAA+C;QAC/C,MAAM,WAAW,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;YACzD,MAAM,OAAO,GAAG;gBACf,IAAI,KAAK,mCAAmC,KAAK,GAAG;gBACpD,EAAE;gBACF,eAAe,WAAW,CAAC,KAAK,EAAE;gBAClC,YAAY,WAAW,CAAC,OAAO,EAAE;gBACjC,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/D,EAAE;gBACF,0BAA0B;aAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,IAAI,CAAC;gBACJ,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;gBAElE,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChB,OAAO;wBACN,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,oCAAoC,WAAW,CAAC,OAAO,EAAE;qBACjE,CAAC;gBACH,CAAC;gBAED,oCAAoC;gBACpC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,WAAW,CAAC,KAAK,kBAAkB,EAAE,SAAS,CAAC,CAAC;YAClF,CAAC;YAAC,MAAM,CAAC;gBACR,wEAAwE;gBACxE,IAAI,WAAW,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBAClC,OAAO;wBACN,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,sDAAsD,WAAW,CAAC,OAAO,EAAE;qBACnF,CAAC;gBACH,CAAC;gBACD,4CAA4C;YAC7C,CAAC;YAED,OAAO;QACR,CAAC;QAED,iCAAiC;QACjC,6DAA6D;QAC7D,oEAAoE;QACpE,gEAAgE;QAChE,sDAAsD;QACtD,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,sCAAsC;YACtC,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,OAAO;YACR,CAAC;YAED,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;gBACxB,OAAO;oBACN,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,qDAAqD;iBAC7D,CAAC;YACH,CAAC;QACF,CAAC;QAED,OAAO;IACR,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,yBAAyB,CAAC;AA+BrF,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,yBAAyB,CAAC;AA+BrF,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,GAAG,IAAI,CAiM/C"}
|
package/dist/index.js
CHANGED
|
@@ -36,7 +36,7 @@ import { registerTypeHierarchy } from "./tools/type_hierarchy.js";
|
|
|
36
36
|
import { registerRenameSymbol } from "./tools/rename_symbol.js";
|
|
37
37
|
import { registerSafeDelete } from "./tools/safe_delete.js";
|
|
38
38
|
export default function (pi) {
|
|
39
|
-
|
|
39
|
+
let projectRoot = process.cwd();
|
|
40
40
|
const log = (msg) => {
|
|
41
41
|
if (pi.logger?.info)
|
|
42
42
|
pi.logger.info(`[pi-shazam] ${msg}`);
|
|
@@ -48,8 +48,17 @@ export default function (pi) {
|
|
|
48
48
|
// Auto-initialize LSP on agent start (with overall 15s timeout guard).
|
|
49
49
|
// IMPORTANT: This handler MUST be registered before registerBeforeStartHook.
|
|
50
50
|
// Only the before-start handler returns { systemPrompt }; ordering matters.
|
|
51
|
-
pi.on("before_agent_start", async (_event,
|
|
51
|
+
pi.on("before_agent_start", async (_event, ctx) => {
|
|
52
52
|
try {
|
|
53
|
+
// Update projectRoot from Pi's detected project directory when it
|
|
54
|
+
// differs from process.cwd(). Handles the case where pi is started
|
|
55
|
+
// from a parent directory but detects the project in a subdirectory
|
|
56
|
+
// (issue #241).
|
|
57
|
+
if (ctx.cwd && ctx.cwd !== projectRoot) {
|
|
58
|
+
projectRoot = ctx.cwd;
|
|
59
|
+
lspManager.setProjectRoot(ctx.cwd);
|
|
60
|
+
log(`Project root updated from Pi context: ${ctx.cwd}`);
|
|
61
|
+
}
|
|
53
62
|
await awaitPreviousShutdown();
|
|
54
63
|
const languages = lspManager.detectLanguages();
|
|
55
64
|
if (languages.length > 0) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEpG,4EAA4E;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,6EAA6E;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,CAAC,OAAO,WAAW,EAAgB;IACxC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/lsp/client.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Ported from repomap/src/lsp.py (StdioLspClient).
|
|
8
8
|
*/
|
|
9
|
-
import type { Location, PublishDiagnosticsParams, Hover, SymbolInformation, DocumentSymbol, WorkspaceSymbol, SemanticTokens, FoldingRange, WorkspaceEdit } from "vscode-languageserver-protocol";
|
|
9
|
+
import type { Location, PublishDiagnosticsParams, Hover, SymbolInformation, DocumentSymbol, WorkspaceSymbol, SemanticTokens, FoldingRange, WorkspaceEdit, CodeAction, SignatureHelp, CodeLens } from "vscode-languageserver-protocol";
|
|
10
10
|
/**
|
|
11
11
|
* Discriminated union for LSP protocol method results.
|
|
12
12
|
* Callers can distinguish "no data" (status: "ok", data: null) from
|
|
@@ -83,6 +83,10 @@ export declare class LspClient {
|
|
|
83
83
|
* Returns a WorkspaceEdit describing all changes, or null on failure.
|
|
84
84
|
*/
|
|
85
85
|
rename(filePath: string, line: number, character: number, newName: string): Promise<LspResult<WorkspaceEdit>>;
|
|
86
|
+
codeAction(filePath: string, startLine: number, startChar: number, endLine: number, endChar: number): Promise<LspResult<(CodeAction | import("vscode-languageserver-protocol").Command)[]>>;
|
|
87
|
+
signatureHelp(filePath: string, line: number, character: number): Promise<LspResult<SignatureHelp>>;
|
|
88
|
+
implementation(filePath: string, line: number, character: number): Promise<LspResult<Location | Location[]>>;
|
|
89
|
+
codeLens(filePath: string): Promise<LspResult<CodeLens[]>>;
|
|
86
90
|
/**
|
|
87
91
|
* Race a request against a per-request timeout.
|
|
88
92
|
* Uses this.timeout (default 8000ms) when no custom timeout is provided.
|
package/dist/lsp/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../lsp/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmBH,OAAO,KAAK,EAMX,QAAQ,EACR,wBAAwB,EAKxB,KAAK,EACL,iBAAiB,EACjB,cAAc,EAEd,eAAe,EAEf,cAAc,EAEd,YAAY,EACZ,aAAa,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../lsp/client.ts"],"names":[],"mappings":"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"}
|
package/dist/lsp/client.js
CHANGED
|
@@ -183,6 +183,10 @@ export class LspClient {
|
|
|
183
183
|
definition: {},
|
|
184
184
|
references: {},
|
|
185
185
|
hover: {},
|
|
186
|
+
codeAction: {},
|
|
187
|
+
signatureHelp: {},
|
|
188
|
+
implementation: {},
|
|
189
|
+
codeLens: {},
|
|
186
190
|
documentSymbol: {
|
|
187
191
|
hierarchicalDocumentSymbolSupport: true,
|
|
188
192
|
},
|
|
@@ -494,6 +498,97 @@ export class LspClient {
|
|
|
494
498
|
return { status: "error", reason: msg, timeout: isTimeout };
|
|
495
499
|
}
|
|
496
500
|
}
|
|
501
|
+
async codeAction(filePath, startLine, startChar, endLine, endChar) {
|
|
502
|
+
if (!this.isFileOpened(filePath))
|
|
503
|
+
return { status: "ok", data: null };
|
|
504
|
+
const cap = this._serverCapabilities;
|
|
505
|
+
if (!cap || !cap.codeActionProvider) {
|
|
506
|
+
return { status: "error", reason: "codeAction provider not supported", timeout: false };
|
|
507
|
+
}
|
|
508
|
+
const params = {
|
|
509
|
+
textDocument: { uri: pathToUri(filePath) },
|
|
510
|
+
range: {
|
|
511
|
+
start: { line: startLine, character: startChar },
|
|
512
|
+
end: { line: endLine, character: endChar },
|
|
513
|
+
},
|
|
514
|
+
context: { diagnostics: [] },
|
|
515
|
+
};
|
|
516
|
+
try {
|
|
517
|
+
const result = await this.withTimeout(this.connection.sendRequest("textDocument/codeAction", params));
|
|
518
|
+
return { status: "ok", data: result ?? null };
|
|
519
|
+
}
|
|
520
|
+
catch (err) {
|
|
521
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
522
|
+
const isTimeout = msg.includes("timed out");
|
|
523
|
+
this._log(`[lsp] codeAction failed: ${msg}`);
|
|
524
|
+
return { status: "error", reason: msg, timeout: isTimeout };
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
async signatureHelp(filePath, line, character) {
|
|
528
|
+
if (!this.isFileOpened(filePath))
|
|
529
|
+
return { status: "ok", data: null };
|
|
530
|
+
const cap = this._serverCapabilities;
|
|
531
|
+
if (!cap || !cap.signatureHelpProvider) {
|
|
532
|
+
return { status: "error", reason: "signatureHelp provider not supported", timeout: false };
|
|
533
|
+
}
|
|
534
|
+
const params = {
|
|
535
|
+
textDocument: { uri: pathToUri(filePath) },
|
|
536
|
+
position: { line, character },
|
|
537
|
+
};
|
|
538
|
+
try {
|
|
539
|
+
const result = await this.withTimeout(this.connection.sendRequest("textDocument/signatureHelp", params));
|
|
540
|
+
return { status: "ok", data: result ?? null };
|
|
541
|
+
}
|
|
542
|
+
catch (err) {
|
|
543
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
544
|
+
const isTimeout = msg.includes("timed out");
|
|
545
|
+
this._log(`[lsp] signatureHelp failed: ${msg}`);
|
|
546
|
+
return { status: "error", reason: msg, timeout: isTimeout };
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
async implementation(filePath, line, character) {
|
|
550
|
+
if (!this.isFileOpened(filePath))
|
|
551
|
+
return { status: "ok", data: null };
|
|
552
|
+
const cap = this._serverCapabilities;
|
|
553
|
+
if (!cap || !cap.implementationProvider) {
|
|
554
|
+
return { status: "error", reason: "implementation provider not supported", timeout: false };
|
|
555
|
+
}
|
|
556
|
+
const params = {
|
|
557
|
+
textDocument: { uri: pathToUri(filePath) },
|
|
558
|
+
position: { line, character },
|
|
559
|
+
};
|
|
560
|
+
try {
|
|
561
|
+
const result = await this.withTimeout(this.connection.sendRequest("textDocument/implementation", params));
|
|
562
|
+
return { status: "ok", data: result ?? null };
|
|
563
|
+
}
|
|
564
|
+
catch (err) {
|
|
565
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
566
|
+
const isTimeout = msg.includes("timed out");
|
|
567
|
+
this._log(`[lsp] implementation failed: ${msg}`);
|
|
568
|
+
return { status: "error", reason: msg, timeout: isTimeout };
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
async codeLens(filePath) {
|
|
572
|
+
if (!this.isFileOpened(filePath))
|
|
573
|
+
return { status: "ok", data: null };
|
|
574
|
+
const cap = this._serverCapabilities;
|
|
575
|
+
if (!cap || !cap.codeLensProvider) {
|
|
576
|
+
return { status: "error", reason: "codeLens provider not supported", timeout: false };
|
|
577
|
+
}
|
|
578
|
+
const params = {
|
|
579
|
+
textDocument: { uri: pathToUri(filePath) },
|
|
580
|
+
};
|
|
581
|
+
try {
|
|
582
|
+
const result = await this.withTimeout(this.connection.sendRequest("textDocument/codeLens", params));
|
|
583
|
+
return { status: "ok", data: result ?? null };
|
|
584
|
+
}
|
|
585
|
+
catch (err) {
|
|
586
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
587
|
+
const isTimeout = msg.includes("timed out");
|
|
588
|
+
this._log(`[lsp] codeLens failed: ${msg}`);
|
|
589
|
+
return { status: "error", reason: msg, timeout: isTimeout };
|
|
590
|
+
}
|
|
591
|
+
}
|
|
497
592
|
/**
|
|
498
593
|
* Race a request against a per-request timeout.
|
|
499
594
|
* Uses this.timeout (default 8000ms) when no custom timeout is provided.
|