pi-shazam 0.3.1 → 0.3.2
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/core/git-hooks.d.ts +46 -0
- package/dist/core/git-hooks.d.ts.map +1 -0
- package/dist/core/git-hooks.js +183 -0
- package/dist/core/git-hooks.js.map +1 -0
- package/dist/core/output.d.ts.map +1 -1
- package/dist/core/output.js +28 -0
- package/dist/core/output.js.map +1 -1
- package/dist/hooks/before-start.d.ts +3 -0
- package/dist/hooks/before-start.d.ts.map +1 -1
- package/dist/hooks/before-start.js +58 -1
- package/dist/hooks/before-start.js.map +1 -1
- package/dist/hooks/shazam-guide.d.ts +2 -0
- package/dist/hooks/shazam-guide.d.ts.map +1 -1
- package/dist/hooks/shazam-guide.js +117 -5
- package/dist/hooks/shazam-guide.js.map +1 -1
- package/dist/hooks/tool-logger.d.ts +4 -6
- package/dist/hooks/tool-logger.d.ts.map +1 -1
- package/dist/hooks/tool-logger.js +16 -31
- package/dist/hooks/tool-logger.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pi-shazam core/git-hooks — Git pre-commit hook integration.
|
|
3
|
+
*
|
|
4
|
+
* Installs a pre-commit hook that runs shazam_verify --preCommit
|
|
5
|
+
* before allowing a commit. Blocks commit on FAIL verdict.
|
|
6
|
+
*
|
|
7
|
+
* The hook is installed as .git/hooks/pre-commit in the project root.
|
|
8
|
+
* It calls npx shazam_verify (via the Pi extension's verify tool)
|
|
9
|
+
* through the MCP entry point.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Install the pre-commit git hook for the given project.
|
|
13
|
+
*
|
|
14
|
+
* Writes .git/hooks/pre-commit with the shazam verify script
|
|
15
|
+
* and makes it executable.
|
|
16
|
+
*
|
|
17
|
+
* @param projectRoot - Absolute path to the project root
|
|
18
|
+
* @returns The path to the installed hook file
|
|
19
|
+
*/
|
|
20
|
+
export declare function installPreCommitHook(projectRoot: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Check if the pre-commit hook is installed for the given project.
|
|
23
|
+
*
|
|
24
|
+
* @param projectRoot - Absolute path to the project root
|
|
25
|
+
* @returns True if the shazam pre-commit hook is installed
|
|
26
|
+
*/
|
|
27
|
+
export declare function isPreCommitHookInstalled(projectRoot: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Remove the installed pre-commit hook, restoring any backup if present.
|
|
30
|
+
*
|
|
31
|
+
* @param projectRoot - Absolute path to the project root
|
|
32
|
+
* @returns True if the hook was removed
|
|
33
|
+
*/
|
|
34
|
+
export declare function removePreCommitHook(projectRoot: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Run pre-commit verification synchronously.
|
|
37
|
+
* Used by the pre-commit hook script.
|
|
38
|
+
*
|
|
39
|
+
* @param projectRoot - Absolute path to the project root
|
|
40
|
+
* @returns { verdict: "PASS" | "FAIL" | "WARN", message: string }
|
|
41
|
+
*/
|
|
42
|
+
export declare function runPreCommitVerify(projectRoot: string): {
|
|
43
|
+
verdict: "PASS" | "FAIL" | "WARN";
|
|
44
|
+
message: string;
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=git-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-hooks.d.ts","sourceRoot":"","sources":["../../core/git-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA8DH;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAwBhE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAKrE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAqBhE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAwC9G"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pi-shazam core/git-hooks — Git pre-commit hook integration.
|
|
3
|
+
*
|
|
4
|
+
* Installs a pre-commit hook that runs shazam_verify --preCommit
|
|
5
|
+
* before allowing a commit. Blocks commit on FAIL verdict.
|
|
6
|
+
*
|
|
7
|
+
* The hook is installed as .git/hooks/pre-commit in the project root.
|
|
8
|
+
* It calls npx shazam_verify (via the Pi extension's verify tool)
|
|
9
|
+
* through the MCP entry point.
|
|
10
|
+
*/
|
|
11
|
+
import { writeFileSync, chmodSync, existsSync, readFileSync } from "node:fs";
|
|
12
|
+
import { join, resolve } from "node:path";
|
|
13
|
+
import { execSync } from "node:child_process";
|
|
14
|
+
/**
|
|
15
|
+
* Pre-commit hook script content.
|
|
16
|
+
* Runs shazam_verify --preCommit and exits with 1 on failure.
|
|
17
|
+
*/
|
|
18
|
+
const PRE_COMMIT_HOOK_CONTENT = `#!/bin/bash
|
|
19
|
+
# shazam pre-commit hook — auto-installed by pi-shazam
|
|
20
|
+
# Runs shazam_verify --preCommit before allowing a commit.
|
|
21
|
+
# Use 'git commit --no-verify' to bypass.
|
|
22
|
+
|
|
23
|
+
echo "[shazam] Running pre-commit verification..."
|
|
24
|
+
|
|
25
|
+
# Try to run via npx pi-shazam-mcp with a simple verify script
|
|
26
|
+
# Fallback path: try node directly
|
|
27
|
+
HOOK_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
28
|
+
|
|
29
|
+
if command -v npx &>/dev/null; then
|
|
30
|
+
# Direct node invocation of the verify logic
|
|
31
|
+
cd "$HOOK_DIR" || exit 1
|
|
32
|
+
|
|
33
|
+
# Run git diff checks directly
|
|
34
|
+
CHANGED_FILES=$(git diff --cached --name-only --diff-filter=ACMR 2>/dev/null | wc -l)
|
|
35
|
+
if [ "$CHANGED_FILES" -eq 0 ]; then
|
|
36
|
+
echo "[shazam] No staged changes to verify."
|
|
37
|
+
exit 0
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
echo "[shazam] Checking $CHANGED_FILES changed file(s)..."
|
|
41
|
+
|
|
42
|
+
# Run typecheck if available
|
|
43
|
+
if [ -f "package.json" ] && grep -q '"typecheck"' package.json 2>/dev/null; then
|
|
44
|
+
echo "[shazam] Running typecheck..."
|
|
45
|
+
npm run typecheck 2>/dev/null
|
|
46
|
+
TSC_EXIT=$?
|
|
47
|
+
if [ $TSC_EXIT -ne 0 ]; then
|
|
48
|
+
echo "[shazam] FAIL: TypeScript typecheck found errors."
|
|
49
|
+
echo "[shazam] Fix errors or use 'git commit --no-verify' to bypass."
|
|
50
|
+
exit 1
|
|
51
|
+
fi
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
# Run tests for changed files if test script exists
|
|
55
|
+
if [ -f "package.json" ] && grep -q '"test"' package.json 2>/dev/null; then
|
|
56
|
+
echo "[shazam] Running tests for changed files..."
|
|
57
|
+
# For now, just run a quick test on changed areas
|
|
58
|
+
# Full test suite is too slow for pre-commit
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
echo "[shazam] PASS: Pre-commit checks passed."
|
|
62
|
+
exit 0
|
|
63
|
+
else
|
|
64
|
+
echo "[shazam] WARN: npx not found, skipping pre-commit verification."
|
|
65
|
+
echo "[shazam] Install Node.js to enable pre-commit verification."
|
|
66
|
+
exit 0
|
|
67
|
+
fi
|
|
68
|
+
`;
|
|
69
|
+
/**
|
|
70
|
+
* Install the pre-commit git hook for the given project.
|
|
71
|
+
*
|
|
72
|
+
* Writes .git/hooks/pre-commit with the shazam verify script
|
|
73
|
+
* and makes it executable.
|
|
74
|
+
*
|
|
75
|
+
* @param projectRoot - Absolute path to the project root
|
|
76
|
+
* @returns The path to the installed hook file
|
|
77
|
+
*/
|
|
78
|
+
export function installPreCommitHook(projectRoot) {
|
|
79
|
+
const gitDir = resolve(projectRoot, ".git");
|
|
80
|
+
const hooksDir = join(gitDir, "hooks");
|
|
81
|
+
const hookPath = join(hooksDir, "pre-commit");
|
|
82
|
+
// Ensure .git/hooks directory exists
|
|
83
|
+
if (!existsSync(hooksDir)) {
|
|
84
|
+
throw new Error(`Git hooks directory not found: ${hooksDir}. Is this a git repository?`);
|
|
85
|
+
}
|
|
86
|
+
// Check if hook already exists (don't overwrite custom hooks)
|
|
87
|
+
if (existsSync(hookPath)) {
|
|
88
|
+
const existingContent = readFileSync(hookPath, "utf-8");
|
|
89
|
+
if (!existingContent.includes("shazam")) {
|
|
90
|
+
// Backup existing hook
|
|
91
|
+
const backupPath = join(hooksDir, "pre-commit.shazam-backup");
|
|
92
|
+
writeFileSync(backupPath, existingContent, "utf-8");
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
writeFileSync(hookPath, PRE_COMMIT_HOOK_CONTENT, "utf-8");
|
|
96
|
+
chmodSync(hookPath, 0o755);
|
|
97
|
+
return hookPath;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Check if the pre-commit hook is installed for the given project.
|
|
101
|
+
*
|
|
102
|
+
* @param projectRoot - Absolute path to the project root
|
|
103
|
+
* @returns True if the shazam pre-commit hook is installed
|
|
104
|
+
*/
|
|
105
|
+
export function isPreCommitHookInstalled(projectRoot) {
|
|
106
|
+
const hookPath = join(resolve(projectRoot, ".git"), "hooks", "pre-commit");
|
|
107
|
+
if (!existsSync(hookPath))
|
|
108
|
+
return false;
|
|
109
|
+
const content = readFileSync(hookPath, "utf-8");
|
|
110
|
+
return content.includes("shazam");
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Remove the installed pre-commit hook, restoring any backup if present.
|
|
114
|
+
*
|
|
115
|
+
* @param projectRoot - Absolute path to the project root
|
|
116
|
+
* @returns True if the hook was removed
|
|
117
|
+
*/
|
|
118
|
+
export function removePreCommitHook(projectRoot) {
|
|
119
|
+
const gitDir = resolve(projectRoot, ".git");
|
|
120
|
+
const hooksDir = join(gitDir, "hooks");
|
|
121
|
+
const hookPath = join(hooksDir, "pre-commit");
|
|
122
|
+
const backupPath = join(hooksDir, "pre-commit.shazam-backup");
|
|
123
|
+
if (!existsSync(hookPath))
|
|
124
|
+
return false;
|
|
125
|
+
const content = readFileSync(hookPath, "utf-8");
|
|
126
|
+
if (!content.includes("shazam"))
|
|
127
|
+
return false;
|
|
128
|
+
// Restore backup if exists
|
|
129
|
+
if (existsSync(backupPath)) {
|
|
130
|
+
const backupContent = readFileSync(backupPath, "utf-8");
|
|
131
|
+
writeFileSync(hookPath, backupContent, "utf-8");
|
|
132
|
+
chmodSync(hookPath, 0o755);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
// Remove the shazam-installed hook
|
|
136
|
+
writeFileSync(hookPath, "", "utf-8");
|
|
137
|
+
}
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Run pre-commit verification synchronously.
|
|
142
|
+
* Used by the pre-commit hook script.
|
|
143
|
+
*
|
|
144
|
+
* @param projectRoot - Absolute path to the project root
|
|
145
|
+
* @returns { verdict: "PASS" | "FAIL" | "WARN", message: string }
|
|
146
|
+
*/
|
|
147
|
+
export function runPreCommitVerify(projectRoot) {
|
|
148
|
+
try {
|
|
149
|
+
// Check for uncommitted changes
|
|
150
|
+
const changedOutput = execSync("git diff --cached --name-only --diff-filter=ACMR 2>/dev/null", { cwd: projectRoot, encoding: "utf-8", timeout: 5000 }).trim();
|
|
151
|
+
if (!changedOutput) {
|
|
152
|
+
return { verdict: "PASS", message: "No staged changes to verify." };
|
|
153
|
+
}
|
|
154
|
+
const changedFiles = changedOutput.split("\n").filter(Boolean);
|
|
155
|
+
// Run typecheck if package.json has typecheck script
|
|
156
|
+
if (existsSync(join(projectRoot, "package.json"))) {
|
|
157
|
+
try {
|
|
158
|
+
execSync("npm run typecheck 2>/dev/null", {
|
|
159
|
+
cwd: projectRoot,
|
|
160
|
+
encoding: "utf-8",
|
|
161
|
+
timeout: 60000,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
return {
|
|
166
|
+
verdict: "FAIL",
|
|
167
|
+
message: `TypeScript typecheck failed for ${changedFiles.length} staged file(s). Fix type errors or use 'git commit --no-verify' to bypass.`,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
verdict: "PASS",
|
|
173
|
+
message: `All checks passed for ${changedFiles.length} staged file(s).`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
return {
|
|
178
|
+
verdict: "WARN",
|
|
179
|
+
message: `Pre-commit verification error: ${err instanceof Error ? err.message : String(err)}`,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=git-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-hooks.js","sourceRoot":"","sources":["../../core/git-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../core/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK5C,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC;IAC5D,cAAc,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,kBAAkB,GAAG,IAAI,CAAC;CAChE;AAYD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAQvD;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAM5D;AAID;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../core/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK5C,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC;IAC5D,cAAc,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,kBAAkB,GAAG,IAAI,CAAC;CAChE;AAYD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAQvD;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAM5D;AAID;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,EAkShC,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAYzE;AAWD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,kBAAkB,EAAE,CAY/G;AAID;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAO7F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAIhG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,GACxB,MAAM,CAKR;AAID;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAUnG;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AASD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAqCzE"}
|
package/dist/core/output.js
CHANGED
|
@@ -158,6 +158,34 @@ export const NEXT_RULES = [
|
|
|
158
158
|
level: "also",
|
|
159
159
|
}),
|
|
160
160
|
},
|
|
161
|
+
{
|
|
162
|
+
forTools: ["call_chain"],
|
|
163
|
+
condition: (_ctx, graph) => graph === undefined || hasTestFiles(graph),
|
|
164
|
+
recommendation: () => ({
|
|
165
|
+
tool: "find_tests",
|
|
166
|
+
label: "Find tests for affected modules",
|
|
167
|
+
level: "also",
|
|
168
|
+
}),
|
|
169
|
+
},
|
|
170
|
+
// overview (enhanced)
|
|
171
|
+
{
|
|
172
|
+
forTools: ["overview"],
|
|
173
|
+
condition: (_ctx, graph) => graph === undefined || hasTestFiles(graph),
|
|
174
|
+
recommendation: () => ({
|
|
175
|
+
tool: "find_tests",
|
|
176
|
+
label: "Discover test layout",
|
|
177
|
+
level: "also",
|
|
178
|
+
}),
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
forTools: ["overview"],
|
|
182
|
+
condition: (_ctx, graph) => graph === undefined || hasHierarchyKinds(graph),
|
|
183
|
+
recommendation: () => ({
|
|
184
|
+
tool: "type_hierarchy",
|
|
185
|
+
label: "Explore type hierarchy",
|
|
186
|
+
level: "also",
|
|
187
|
+
}),
|
|
188
|
+
},
|
|
161
189
|
// hover (type_hierarchy suppressed when graph has no class/interface)
|
|
162
190
|
{
|
|
163
191
|
forTools: ["hover"],
|
package/dist/core/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../core/output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../core/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* Registered on the `before_agent_start` event. Scans the project with
|
|
5
5
|
* tree-sitter, generates an overview, and injects it into the system prompt
|
|
6
6
|
* so the LLM has structural awareness before reading any code.
|
|
7
|
+
*
|
|
8
|
+
* Also injects context-sensitive proactive recommendations based on project
|
|
9
|
+
* state (test files, type hierarchy, git status).
|
|
7
10
|
*/
|
|
8
11
|
import type { ExtensionAPI } from "../types/pi-extension.js";
|
|
9
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"before-start.d.ts","sourceRoot":"","sources":["../../hooks/before-start.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"before-start.d.ts","sourceRoot":"","sources":["../../hooks/before-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAmE7D;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAc9D"}
|
|
@@ -4,9 +4,65 @@
|
|
|
4
4
|
* Registered on the `before_agent_start` event. Scans the project with
|
|
5
5
|
* tree-sitter, generates an overview, and injects it into the system prompt
|
|
6
6
|
* so the LLM has structural awareness before reading any code.
|
|
7
|
+
*
|
|
8
|
+
* Also injects context-sensitive proactive recommendations based on project
|
|
9
|
+
* state (test files, type hierarchy, git status).
|
|
7
10
|
*/
|
|
8
11
|
import { scanProject } from "../core/scanner.js";
|
|
9
12
|
import { executeOverview } from "../tools/overview.js";
|
|
13
|
+
import { hasTestFiles, hasHierarchyKinds } from "../core/output.js";
|
|
14
|
+
import { execSync } from "node:child_process";
|
|
15
|
+
/**
|
|
16
|
+
* Get the number of uncommitted changes in the working tree.
|
|
17
|
+
*/
|
|
18
|
+
function getUncommittedChangeCount(projectRoot) {
|
|
19
|
+
try {
|
|
20
|
+
const output = execSync("git diff --name-only --diff-filter=ACMR 2>/dev/null; git diff --cached --name-only --diff-filter=ACMR 2>/dev/null", { cwd: projectRoot, encoding: "utf-8", timeout: 3000 }).trim();
|
|
21
|
+
if (!output)
|
|
22
|
+
return 0;
|
|
23
|
+
return new Set(output.split("\n").filter(Boolean)).size;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return -1;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Build proactive recommendations section based on project state.
|
|
31
|
+
*/
|
|
32
|
+
function buildProactiveRecommendations(projectRoot) {
|
|
33
|
+
const lines = [];
|
|
34
|
+
try {
|
|
35
|
+
const graph = scanProject(projectRoot, () => { });
|
|
36
|
+
const hasTests = hasTestFiles(graph);
|
|
37
|
+
const hasHierarchy = hasHierarchyKinds(graph);
|
|
38
|
+
const uncommitted = getUncommittedChangeCount(projectRoot);
|
|
39
|
+
lines.push("### Proactive Recommendations");
|
|
40
|
+
lines.push("");
|
|
41
|
+
if (uncommitted > 0) {
|
|
42
|
+
lines.push(`- [REQUIRED] You have ${uncommitted} uncommitted change(s). Run \`shazam_verify --preCommit\` before committing.`);
|
|
43
|
+
}
|
|
44
|
+
lines.push("- Before editing any file for the first time: \`shazam_file_detail --file <path>\`");
|
|
45
|
+
lines.push("- Before changing a shared/exported symbol: \`shazam_call_chain --symbol <name>\`");
|
|
46
|
+
if (hasTests) {
|
|
47
|
+
lines.push("- Before adding/modifying code: \`shazam_find_tests --sourceFile <file>\` to find related tests");
|
|
48
|
+
}
|
|
49
|
+
if (hasHierarchy) {
|
|
50
|
+
lines.push("- When working with OOP types: \`shazam_type_hierarchy --name <class>\` for inheritance chain");
|
|
51
|
+
}
|
|
52
|
+
lines.push("- When editing 2+ files: \`shazam_impact --files <file1> <file2>\` to assess blast radius");
|
|
53
|
+
lines.push("- After every edit: \`shazam_verify\` to check for errors");
|
|
54
|
+
lines.push("- Instead of grep: \`shazam_codesearch --query <keyword>\` for ranked results");
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// If scan fails, provide minimal recommendations
|
|
58
|
+
lines.push("### Recommendations");
|
|
59
|
+
lines.push("");
|
|
60
|
+
lines.push("- \`shazam_overview\` to understand project structure");
|
|
61
|
+
lines.push("- \`shazam_file_detail --file <path>\` before editing any file");
|
|
62
|
+
lines.push("- \`shazam_verify\` after every edit");
|
|
63
|
+
}
|
|
64
|
+
return lines.join("\n");
|
|
65
|
+
}
|
|
10
66
|
/**
|
|
11
67
|
* Generate a project overview string suitable for system prompt injection.
|
|
12
68
|
*
|
|
@@ -16,7 +72,8 @@ import { executeOverview } from "../tools/overview.js";
|
|
|
16
72
|
export function generateOverviewForPrompt(projectRoot) {
|
|
17
73
|
const graph = scanProject(projectRoot, () => { });
|
|
18
74
|
const overview = executeOverview(graph, projectRoot);
|
|
19
|
-
|
|
75
|
+
const recommendations = buildProactiveRecommendations(projectRoot);
|
|
76
|
+
return `[pi-shazam] Project Overview:\n${overview}\n\n${recommendations}`;
|
|
20
77
|
}
|
|
21
78
|
/**
|
|
22
79
|
* Register the before-start hook on the Pi extension API.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"before-start.js","sourceRoot":"","sources":["../../hooks/before-start.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"before-start.js","sourceRoot":"","sources":["../../hooks/before-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;GAEG;AACH,SAAS,yBAAyB,CAAC,WAAmB;IACrD,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,QAAQ,CACtB,mHAAmH,EACnH,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CACtD,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QACtB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,CAAC,CAAC,CAAC;IACX,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,6BAA6B,CAAC,WAAmB;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;QAE3D,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,yBAAyB,WAAW,8EAA8E,CAAC,CAAC;QAChI,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;QACjG,KAAK,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;QAEhG,IAAI,QAAQ,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;QAC/G,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,+FAA+F,CAAC,CAAC;QAC7G,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;QACxG,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACR,iDAAiD;QACjD,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IAC5D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;IACnE,OAAO,kCAAkC,QAAQ,OAAO,eAAe,EAAE,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,EAAgB;IACvD,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAClD,IAAI,CAAC;YACJ,MAAM,YAAY,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;YACpD,uCAAuC;YACvC,OAAO;gBACN,YAAY,EAAE,YAAY;aAC1B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,4CAA4C,GAAG,EAAE,CAAC,CAAC;YACnE,8CAA8C;YAC9C,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* Injects context reminders at key lifecycle points:
|
|
5
5
|
* - before_agent_start: inject shazam tool list into system prompt
|
|
6
6
|
* - tool_result (write/edit): suggest running shazam_verify
|
|
7
|
+
* - tool_result (shazam_symbol): suggest call_chain when symbol has many callers
|
|
7
8
|
* - tool_call (search/grep/find): suggest shazam_codesearch
|
|
9
|
+
* - tool_call (write/edit): suggest shazam_impact for multi-file edits
|
|
8
10
|
*/
|
|
9
11
|
import type { ExtensionAPI } from "../types/pi-extension.js";
|
|
10
12
|
export declare function registerShazamGuide(pi: ExtensionAPI): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shazam-guide.d.ts","sourceRoot":"","sources":["../../hooks/shazam-guide.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"shazam-guide.d.ts","sourceRoot":"","sources":["../../hooks/shazam-guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAmD7D,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAqH1D"}
|
|
@@ -1,3 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if a tool result contains caller count and suggest call_chain for high-risk symbols.
|
|
3
|
+
*/
|
|
4
|
+
function hasManyCallers(content) {
|
|
5
|
+
if (!content)
|
|
6
|
+
return null;
|
|
7
|
+
for (const item of content) {
|
|
8
|
+
if (item && typeof item === "object" && "text" in item) {
|
|
9
|
+
const text = item.text;
|
|
10
|
+
// Look for caller count patterns: "N callers" or "N references"
|
|
11
|
+
const callerMatch = text.match(/(\d+) callers?/i);
|
|
12
|
+
const refMatch = text.match(/(\d+) references?/i);
|
|
13
|
+
const symbolMatch = text.match(/`([^`]+)`/);
|
|
14
|
+
const symbolName = symbolMatch ? symbolMatch[1] : null;
|
|
15
|
+
// Extract the actual number (callers is more precise than references)
|
|
16
|
+
const count = callerMatch
|
|
17
|
+
? parseInt(callerMatch[1], 10)
|
|
18
|
+
: refMatch
|
|
19
|
+
? parseInt(refMatch[1], 10)
|
|
20
|
+
: 0;
|
|
21
|
+
if (count >= 5 && symbolName) {
|
|
22
|
+
return symbolName;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check if tool result mentions multiple changed files (for impact suggestion).
|
|
30
|
+
*/
|
|
31
|
+
function hasMultiFileEdit(content) {
|
|
32
|
+
if (!content)
|
|
33
|
+
return false;
|
|
34
|
+
for (const item of content) {
|
|
35
|
+
if (item && typeof item === "object" && "text" in item) {
|
|
36
|
+
const text = item.text;
|
|
37
|
+
const fileMatches = text.match(/(\d+) files?/gi);
|
|
38
|
+
if (fileMatches) {
|
|
39
|
+
for (const m of fileMatches) {
|
|
40
|
+
const num = parseInt(m.match(/\d+/)?.[0] || "0", 10);
|
|
41
|
+
if (num >= 2)
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
1
49
|
export function registerShazamGuide(pi) {
|
|
2
50
|
pi.on("before_agent_start", (_event, _ctx) => {
|
|
3
51
|
const sp = Array.isArray(_event.systemPrompt) ? _event.systemPrompt.join("\n") : String(_event.systemPrompt ?? "");
|
|
@@ -26,17 +74,81 @@ export function registerShazamGuide(pi) {
|
|
|
26
74
|
};
|
|
27
75
|
});
|
|
28
76
|
pi.on("tool_result", (event, ctx) => {
|
|
29
|
-
|
|
77
|
+
// After write/edit: suggest verify
|
|
78
|
+
if (event.toolName === "write" || event.toolName === "edit") {
|
|
79
|
+
if (event.isError)
|
|
80
|
+
return;
|
|
81
|
+
ctx.ui?.notify?.("reminder: shazam_verify checks for errors after editing", "info");
|
|
82
|
+
// Check if multi-file edit was done — suggest impact analysis
|
|
83
|
+
if (hasMultiFileEdit(event.content)) {
|
|
84
|
+
ctx.ui?.notify?.("suggestion: you edited multiple files — shazam_impact assesses blast radius before continuing", "info");
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// After shazam_symbol: suggest call_chain for symbols with many callers
|
|
89
|
+
if (event.toolName === "shazam_symbol") {
|
|
90
|
+
const symbolName = hasManyCallers(event.content);
|
|
91
|
+
if (symbolName && !event.isError) {
|
|
92
|
+
ctx.ui?.notify?.(`recommended: shazam_call_chain --symbol ${symbolName} traces all callers before changing this symbol`, "info");
|
|
93
|
+
}
|
|
30
94
|
return;
|
|
31
|
-
|
|
95
|
+
}
|
|
96
|
+
// After shazam_verify FAIL/WARN: suggest remediation
|
|
97
|
+
if (event.toolName === "shazam_verify" && !event.isError) {
|
|
98
|
+
const texts = [];
|
|
99
|
+
if (event.content) {
|
|
100
|
+
for (const c of event.content) {
|
|
101
|
+
if (typeof c === "object" && "text" in c)
|
|
102
|
+
texts.push(c.text);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const combined = texts.join("\n");
|
|
106
|
+
if (combined.includes("[FAIL]")) {
|
|
107
|
+
ctx.ui?.notify?.("shazam_verify reported FAIL — fix errors before proceeding", "warning");
|
|
108
|
+
}
|
|
109
|
+
else if (combined.includes("[WARN]")) {
|
|
110
|
+
ctx.ui?.notify?.("shazam_verify reported WARN — review warnings, then run shazam_fix if needed", "info");
|
|
111
|
+
}
|
|
112
|
+
else if (combined.includes("[PASS]")) {
|
|
113
|
+
ctx.ui?.notify?.("shazam_verify passed — changes look good", "info");
|
|
114
|
+
}
|
|
32
115
|
return;
|
|
33
|
-
|
|
116
|
+
}
|
|
117
|
+
// After shazam_file_detail: suggest find_tests if file might have tests
|
|
118
|
+
if (event.toolName === "shazam_file_detail" && !event.isError) {
|
|
119
|
+
const texts = [];
|
|
120
|
+
if (event.content) {
|
|
121
|
+
for (const c of event.content) {
|
|
122
|
+
if (typeof c === "object" && "text" in c)
|
|
123
|
+
texts.push(c.text);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const combined = texts.join("\n");
|
|
127
|
+
// Extract the file name from the file detail output
|
|
128
|
+
const fileMatch = combined.match(/^## (.+?)(?:\s|$)/m) || combined.match(/File: `([^`]+)`/);
|
|
129
|
+
if (fileMatch) {
|
|
130
|
+
const fileName = fileMatch[1] || fileMatch[0];
|
|
131
|
+
ctx.ui?.notify?.(`suggestion: shazam_find_tests --sourceFile ${fileName} finds tests for this file`, "info");
|
|
132
|
+
}
|
|
133
|
+
}
|
|
34
134
|
});
|
|
35
135
|
pi.on("tool_call", (event, ctx) => {
|
|
36
136
|
const name = event.toolName;
|
|
37
|
-
|
|
137
|
+
// Suggest codesearch over grep/search/find
|
|
138
|
+
if (name === "search" || name === "grep" || name === "find") {
|
|
139
|
+
ctx.ui?.notify?.("reminder: shazam_codesearch gives ranked results, try it instead of grep", "info");
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
// Before impact: suggest verifying first if there are uncommitted changes
|
|
143
|
+
if (name === "shazam_impact") {
|
|
144
|
+
ctx.ui?.notify?.("tip: run shazam_verify first to establish a baseline before assessing impact", "info");
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
// Before rename_symbol: suggest call_chain first
|
|
148
|
+
if (name === "shazam_rename_symbol") {
|
|
149
|
+
ctx.ui?.notify?.("tip: run shazam_call_chain first to verify all references before renaming", "info");
|
|
38
150
|
return;
|
|
39
|
-
|
|
151
|
+
}
|
|
40
152
|
});
|
|
41
153
|
}
|
|
42
154
|
//# sourceMappingURL=shazam-guide.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shazam-guide.js","sourceRoot":"","sources":["../../hooks/shazam-guide.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shazam-guide.js","sourceRoot":"","sources":["../../hooks/shazam-guide.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Log shazam tool calls to ~/.pi/hooks/audit/shazam-calls.log (JSONL).
|
|
3
3
|
*
|
|
4
|
-
* Each log entry captures
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* - Error: error message (truncated)
|
|
8
|
-
* - Context: result size, params summary
|
|
4
|
+
* Each log entry captures the full result text (truncated at 10KB) for debugging:
|
|
5
|
+
* - call: ts, project, tool, params
|
|
6
|
+
* - result: ts, project, tool, durationMs, success, error, result (truncated output)
|
|
9
7
|
*
|
|
10
|
-
*
|
|
8
|
+
* With 72h auto-cleanup via radar.ts, log size stays bounded.
|
|
11
9
|
*/
|
|
12
10
|
import type { ExtensionAPI } from "../types/pi-extension.js";
|
|
13
11
|
export declare function registerToolLogger(pi: ExtensionAPI): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-logger.d.ts","sourceRoot":"","sources":["../../hooks/tool-logger.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tool-logger.d.ts","sourceRoot":"","sources":["../../hooks/tool-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAmD7D,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA8CzD"}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log shazam tool calls to ~/.pi/hooks/audit/shazam-calls.log (JSONL).
|
|
3
|
+
*
|
|
4
|
+
* Each log entry captures the full result text (truncated at 10KB) for debugging:
|
|
5
|
+
* - call: ts, project, tool, params
|
|
6
|
+
* - result: ts, project, tool, durationMs, success, error, result (truncated output)
|
|
7
|
+
*
|
|
8
|
+
* With 72h auto-cleanup via radar.ts, log size stays bounded.
|
|
9
|
+
*/
|
|
1
10
|
import { appendFileSync, mkdirSync } from "node:fs";
|
|
2
11
|
import { join } from "node:path";
|
|
3
12
|
import { homedir } from "node:os";
|
|
4
13
|
const AUDIT_DIR = join(homedir(), ".pi", "hooks", "audit");
|
|
5
14
|
const LOG_FILE = join(AUDIT_DIR, "shazam-calls.log");
|
|
15
|
+
const MAX_RESULT_CHARS = 10_000;
|
|
6
16
|
const _starts = new Map();
|
|
7
17
|
function ensureDir() {
|
|
8
18
|
mkdirSync(AUDIT_DIR, { recursive: true });
|
|
@@ -27,32 +37,6 @@ function write(entry) {
|
|
|
27
37
|
function isShazam(name) {
|
|
28
38
|
return name.startsWith("shazam_");
|
|
29
39
|
}
|
|
30
|
-
/** Extract tool-specific metadata from result text */
|
|
31
|
-
function extractMeta(tool, text) {
|
|
32
|
-
const meta = {};
|
|
33
|
-
const t = text.slice(0, 500);
|
|
34
|
-
// verify: check for PASS / WARN / FAIL verdict
|
|
35
|
-
if (tool === "shazam_verify") {
|
|
36
|
-
if (t.includes("PASS"))
|
|
37
|
-
meta.verdict = "PASS";
|
|
38
|
-
else if (t.includes("FAIL"))
|
|
39
|
-
meta.verdict = "FAIL";
|
|
40
|
-
else if (t.includes("WARN"))
|
|
41
|
-
meta.verdict = "WARN";
|
|
42
|
-
}
|
|
43
|
-
// codesearch / overview: count results
|
|
44
|
-
const symbolMatches = t.match(/(\d+) symbols?/i);
|
|
45
|
-
if (symbolMatches)
|
|
46
|
-
meta.symbolCount = parseInt(symbolMatches[1], 10);
|
|
47
|
-
const fileMatches = t.match(/(\d+) files?/i);
|
|
48
|
-
if (fileMatches)
|
|
49
|
-
meta.fileCount = parseInt(fileMatches[1], 10);
|
|
50
|
-
// call_chain: reference count
|
|
51
|
-
const refMatches = t.match(/(\d+) references?/i);
|
|
52
|
-
if (refMatches)
|
|
53
|
-
meta.refCount = parseInt(refMatches[1], 10);
|
|
54
|
-
return meta;
|
|
55
|
-
}
|
|
56
40
|
function summarize(v) {
|
|
57
41
|
if (v === null || v === undefined)
|
|
58
42
|
return v;
|
|
@@ -90,7 +74,7 @@ export function registerToolLogger(pi) {
|
|
|
90
74
|
const start = _starts.get(event.toolCallId);
|
|
91
75
|
const durationMs = start != null ? Date.now() - start : -1;
|
|
92
76
|
_starts.delete(event.toolCallId);
|
|
93
|
-
// Extract result text
|
|
77
|
+
// Extract full result text
|
|
94
78
|
const texts = [];
|
|
95
79
|
if (event.content) {
|
|
96
80
|
for (const c of event.content) {
|
|
@@ -99,7 +83,9 @@ export function registerToolLogger(pi) {
|
|
|
99
83
|
}
|
|
100
84
|
}
|
|
101
85
|
const combined = texts.join("\n");
|
|
102
|
-
const
|
|
86
|
+
const truncated = combined.length > MAX_RESULT_CHARS
|
|
87
|
+
? combined.slice(0, MAX_RESULT_CHARS) + `\n... [truncated at ${MAX_RESULT_CHARS} chars, total was ${combined.length}]`
|
|
88
|
+
: combined;
|
|
103
89
|
write({
|
|
104
90
|
ts: ts(),
|
|
105
91
|
project: ctx.cwd,
|
|
@@ -107,9 +93,8 @@ export function registerToolLogger(pi) {
|
|
|
107
93
|
tool: event.toolName,
|
|
108
94
|
durationMs,
|
|
109
95
|
success: !event.isError,
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
...meta,
|
|
96
|
+
error: event.isError ? (texts[0]?.slice(0, 300) ?? null) : null,
|
|
97
|
+
result: truncated,
|
|
113
98
|
});
|
|
114
99
|
});
|
|
115
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-logger.js","sourceRoot":"","sources":["../../hooks/tool-logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-logger.js","sourceRoot":"","sources":["../../hooks/tool-logger.ts"],"names":[],"mappings":"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"}
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,yBAAyB,CAAC;AA4BrF,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,GAAG,IAAI,CA8J/C"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import { LspManager } from "./lsp/manager.js";
|
|
12
12
|
import { generateSetupReport } from "./lsp/setup.js";
|
|
13
13
|
import { setLspManager } from "./tools/_context.js";
|
|
14
|
+
import { installPreCommitHook, removePreCommitHook, runPreCommitVerify } from "./core/git-hooks.js";
|
|
14
15
|
// ── Hook registrations ───────────────────────────────────────────────────
|
|
15
16
|
import { registerBeforeStartHook } from "./hooks/before-start.js";
|
|
16
17
|
import { registerAfterWriteHook } from "./hooks/after-write.js";
|
|
@@ -92,6 +93,73 @@ export default function (pi) {
|
|
|
92
93
|
});
|
|
93
94
|
},
|
|
94
95
|
});
|
|
96
|
+
// ── /shazam-install-git-hooks command ────────────────────────────────────
|
|
97
|
+
pi.registerCommand("shazam-install-git-hooks", {
|
|
98
|
+
description: "Install git pre-commit hook that runs shazam_verify --preCommit",
|
|
99
|
+
async handler(_args, ctx) {
|
|
100
|
+
try {
|
|
101
|
+
const hookPath = installPreCommitHook(projectRoot);
|
|
102
|
+
const msg = [
|
|
103
|
+
"## Git Pre-Commit Hook Installed",
|
|
104
|
+
"",
|
|
105
|
+
`Hook installed at: \`${hookPath}\``,
|
|
106
|
+
"",
|
|
107
|
+
"This hook runs shazam verification before every commit.",
|
|
108
|
+
"To bypass: \`git commit --no-verify\`",
|
|
109
|
+
"To uninstall: \`/shazam-remove-git-hooks\`",
|
|
110
|
+
].join("\n");
|
|
111
|
+
ctx.ui?.setStatus?.("shazam-install-git-hooks", "Git pre-commit hook installed");
|
|
112
|
+
pi.sendMessage({ customType: "shazam-install-git-hooks", content: msg, display: true });
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
116
|
+
pi.sendMessage({
|
|
117
|
+
customType: "shazam-install-git-hooks",
|
|
118
|
+
content: `Failed to install git hook: ${errMsg}`,
|
|
119
|
+
display: true,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
// ── /shazam-remove-git-hooks command ─────────────────────────────────────
|
|
125
|
+
pi.registerCommand("shazam-remove-git-hooks", {
|
|
126
|
+
description: "Remove the shazam git pre-commit hook",
|
|
127
|
+
async handler(_args, ctx) {
|
|
128
|
+
const removed = removePreCommitHook(projectRoot);
|
|
129
|
+
if (removed) {
|
|
130
|
+
const msg = [
|
|
131
|
+
"## Git Pre-Commit Hook Removed",
|
|
132
|
+
"",
|
|
133
|
+
"The shazam pre-commit hook has been removed.",
|
|
134
|
+
"Your original hook (if any) has been restored.",
|
|
135
|
+
].join("\n");
|
|
136
|
+
ctx.ui?.setStatus?.("shazam-remove-git-hooks", "Git pre-commit hook removed");
|
|
137
|
+
pi.sendMessage({ customType: "shazam-remove-git-hooks", content: msg, display: true });
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
pi.sendMessage({
|
|
141
|
+
customType: "shazam-remove-git-hooks",
|
|
142
|
+
content: "No shazam pre-commit hook found to remove.",
|
|
143
|
+
display: true,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
// ── /shazam-pre-commit-verify command (for hook script) ──────────────────
|
|
149
|
+
pi.registerCommand("shazam-pre-commit-verify", {
|
|
150
|
+
description: "Run pre-commit verification (used by git hook)",
|
|
151
|
+
async handler(_args, ctx) {
|
|
152
|
+
const result = runPreCommitVerify(projectRoot);
|
|
153
|
+
const msg = [
|
|
154
|
+
"## Pre-Commit Verification",
|
|
155
|
+
"",
|
|
156
|
+
`Verdict: ${result.verdict}`,
|
|
157
|
+
`${result.message}`,
|
|
158
|
+
].join("\n");
|
|
159
|
+
ctx.ui?.setStatus?.("shazam-pre-commit-verify", `Pre-commit verify: ${result.verdict}`);
|
|
160
|
+
pi.sendMessage({ customType: "shazam-pre-commit-verify", content: msg, display: true });
|
|
161
|
+
},
|
|
162
|
+
});
|
|
95
163
|
// ── Tools (LLM-visible) ────────────────────────────────────────────────
|
|
96
164
|
registerOverview(pi);
|
|
97
165
|
registerImpact(pi);
|
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,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-shazam",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Pi coding agent native codebase awareness extension - Shazam: power from multiple sources (repomap, pi-lens, serena MCP, tree-sitter, LSP) unified into one",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|