pi-shazam 0.8.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -55
- package/dist/core/treesitter.d.ts +1 -0
- package/dist/core/treesitter.d.ts.map +1 -1
- package/dist/core/treesitter.js +18 -1
- package/dist/core/treesitter.js.map +1 -1
- package/dist/hooks/before-start.d.ts +4 -0
- package/dist/hooks/before-start.d.ts.map +1 -1
- package/dist/hooks/before-start.js +7 -3
- package/dist/hooks/before-start.js.map +1 -1
- package/dist/hooks/pre-edit.d.ts +5 -0
- package/dist/hooks/pre-edit.d.ts.map +1 -1
- package/dist/hooks/pre-edit.js +14 -7
- package/dist/hooks/pre-edit.js.map +1 -1
- package/dist/hooks/safety.d.ts +2 -2
- package/dist/hooks/safety.d.ts.map +1 -1
- package/dist/hooks/safety.js +11 -63
- package/dist/hooks/safety.js.map +1 -1
- package/dist/hooks/shazam-guide.d.ts +2 -2
- package/dist/hooks/shazam-guide.js +13 -13
- package/dist/hooks/shazam-guide.js.map +1 -1
- package/dist/hooks/stop-verify.d.ts +3 -2
- package/dist/hooks/stop-verify.d.ts.map +1 -1
- package/dist/hooks/stop-verify.js +14 -29
- package/dist/hooks/stop-verify.js.map +1 -1
- package/dist/hooks/tool-logger.d.ts.map +1 -1
- package/dist/hooks/tool-logger.js +12 -0
- package/dist/hooks/tool-logger.js.map +1 -1
- package/dist/hooks/verify-state.d.ts +28 -0
- package/dist/hooks/verify-state.d.ts.map +1 -0
- package/dist/hooks/verify-state.js +43 -0
- package/dist/hooks/verify-state.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/entry.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pi-shazam
|
|
2
2
|
|
|
3
|
-
> **Pi coding agent native codebase awareness toolkit** — 14 structural analysis tools built natively for Pi agent. MCP support available for non-Pi agents (Cursor, Claude
|
|
3
|
+
> **Pi coding agent native codebase awareness toolkit** — 14 structural analysis tools built natively for Pi agent. MCP support available for non-Pi agents (Cursor, Claude Code, Qoder, Trae, Codebuddy, etc.)
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/pi-shazam)
|
|
6
6
|
[](https://github.com/gjczone/pi-shazam/actions/workflows/ci.yml)
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
**pi-shazam** is a native codebase analysis toolkit built for the **Pi coding agent**. It provides 14 structural analysis tools that help AI agents understand project architecture before reading code.
|
|
12
12
|
|
|
13
|
-
For non-Pi agents, pi-shazam also exposes the same tools via **MCP (Model Context Protocol)**. Supported MCP clients include Cursor, Claude
|
|
13
|
+
For non-Pi agents, pi-shazam also exposes the same tools via **MCP (Model Context Protocol)**. Supported MCP clients include Cursor, Claude Code, Qoder, Trae, Codebuddy, Kimi Code, and more. **Note: the MCP interface is a compatibility layer — the primary and recommended deployment model is as a native Pi extension.**
|
|
14
14
|
|
|
15
15
|
## Core Capabilities
|
|
16
16
|
|
|
17
|
-
- **Tree-sitter parsing** —
|
|
17
|
+
- **Tree-sitter parsing** — 6 programming languages (Python, TypeScript, JavaScript, Go, Rust, JSON), full symbol dependency graph
|
|
18
18
|
- **PageRank ranking** — Identify core files and key symbols
|
|
19
19
|
- **LSP integration** — Type checking, diagnostics, type hierarchy (5 languages)
|
|
20
20
|
- **Incremental analysis** — Baseline comparison, focus on changes
|
|
@@ -38,12 +38,12 @@ Use this only if you are **not** using Pi agent. The MCP interface provides the
|
|
|
38
38
|
|
|
39
39
|
```json
|
|
40
40
|
{
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
"mcpServers": {
|
|
42
|
+
"pi-shazam": {
|
|
43
|
+
"command": "npx",
|
|
44
|
+
"args": ["-y", "-p", "pi-shazam", "pi-shazam-mcp"]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
47
|
}
|
|
48
48
|
```
|
|
49
49
|
|
|
@@ -53,37 +53,43 @@ Compatible with any MCP-capable client. Same analysis engine, JSON-based tool in
|
|
|
53
53
|
|
|
54
54
|
### Query (Read-Only)
|
|
55
55
|
|
|
56
|
-
| Tool
|
|
57
|
-
|
|
58
|
-
| `shazam_overview`
|
|
59
|
-
| `shazam_impact`
|
|
60
|
-
| `shazam_codesearch`
|
|
61
|
-
| `shazam_symbol`
|
|
62
|
-
| `shazam_hover`
|
|
63
|
-
| `shazam_file_detail`
|
|
64
|
-
| `shazam_call_chain`
|
|
65
|
-
| `shazam_find_tests`
|
|
66
|
-
| `shazam_hotspots`
|
|
67
|
-
| `shazam_type_hierarchy` | Class/interface inheritance chain
|
|
56
|
+
| Tool | What It Does |
|
|
57
|
+
| ----------------------- | ---------------------------------------------------------------------------------- |
|
|
58
|
+
| `shazam_overview` | Project structure, top-10 core files by PageRank, key dependencies, recent commits |
|
|
59
|
+
| `shazam_impact` | Change impact analysis: affected files, symbols, tests |
|
|
60
|
+
| `shazam_codesearch` | BM25 symbol search — ranked alternative to grep |
|
|
61
|
+
| `shazam_symbol` | Symbol definition, signature, callers, callees |
|
|
62
|
+
| `shazam_hover` | Type signatures and JSDoc — rich info from LSP |
|
|
63
|
+
| `shazam_file_detail` | All symbols in a file: signatures, PageRank, call counts, LSP hierarchy |
|
|
64
|
+
| `shazam_call_chain` | Full upstream/downstream call graph |
|
|
65
|
+
| `shazam_find_tests` | Find test files covering a module |
|
|
66
|
+
| `shazam_hotspots` | Files ranked by complexity — where bugs hurt most |
|
|
67
|
+
| `shazam_type_hierarchy` | Class/interface inheritance chain |
|
|
68
68
|
|
|
69
69
|
### Write & Verify
|
|
70
70
|
|
|
71
|
-
| Tool
|
|
72
|
-
|
|
73
|
-
| `shazam_verify`
|
|
74
|
-
| `shazam_fix`
|
|
75
|
-
| `shazam_rename_symbol` | Safe project-wide rename — verify references first
|
|
76
|
-
| `shazam_safe_delete`
|
|
71
|
+
| Tool | What It Does |
|
|
72
|
+
| ---------------------- | ---------------------------------------------------------------------------- |
|
|
73
|
+
| `shazam_verify` | Post-edit verification: LSP diagnostics + risk assessment + orphan detection |
|
|
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
|
|
|
80
|
-
### Pi Agent
|
|
80
|
+
### Pi Agent Hooks
|
|
81
81
|
|
|
82
|
-
| Hook
|
|
83
|
-
|
|
84
|
-
| `
|
|
85
|
-
| `
|
|
86
|
-
| `
|
|
82
|
+
| Hook | Event | What It Does |
|
|
83
|
+
| ------------------ | --------------------------- | -------------------------------------------------------------------------------------------- |
|
|
84
|
+
| `before-start` | `before_agent_start` | Inject project structure overview + proactive recommendations into system prompt |
|
|
85
|
+
| `safety` | `tool_call` (bash) | Destructive command confirmation dialog + Pre-commit gate (blocks git commit without verify) |
|
|
86
|
+
| `shazam-guide` | `tool_result` | Auto-format files after write/edit + contextual tool suggestions |
|
|
87
|
+
| `stop-verify` | `turn_end` | Remind to run `shazam_verify` before ending turn |
|
|
88
|
+
| `failure-recovery` | `tool_result` | Detect consecutive failures (3x/5x) and suggest alternatives |
|
|
89
|
+
| `pre-edit` | `tool_call` | Detect multi-file edits, warn about blast radius |
|
|
90
|
+
| `tool-logger` | `tool_call` + `tool_result` | Log all shazam tool calls to `~/.pi/hooks/audit/shazam-calls.log` |
|
|
91
|
+
|
|
92
|
+
**Auto-format support**: ruff (Python), prettier (JS/TS/JSON/MD), gofmt (Go), rustfmt (Rust), biome (JS/TS)
|
|
87
93
|
|
|
88
94
|
Additional commands: `/shazam-setup`, `/shazam-doctor`, `/shazam-install-git-hooks`, etc.
|
|
89
95
|
|
|
@@ -92,9 +98,10 @@ Additional commands: `/shazam-setup`, `/shazam-doctor`, `/shazam-install-git-hoo
|
|
|
92
98
|
pi-shazam's MCP server supports all MCP-compatible clients:
|
|
93
99
|
|
|
94
100
|
- **Cursor** — Built-in MCP support
|
|
95
|
-
- **Claude
|
|
96
|
-
- **Windsurf** — Native MCP support
|
|
101
|
+
- **Claude Code** — Anthropic's coding agent (CLI)
|
|
97
102
|
- **Qoder** — AI coding assistant
|
|
103
|
+
- **Trae** — ByteDance's AI coding IDE
|
|
104
|
+
- **Codebuddy** — Tencent's AI coding assistant
|
|
98
105
|
- **Kimi Code** — Moonshot AI coding assistant
|
|
99
106
|
- **Others** — Any tool implementing MCP protocol
|
|
100
107
|
|
|
@@ -104,9 +111,9 @@ pi-shazam's MCP server supports all MCP-compatible clients:
|
|
|
104
111
|
|
|
105
112
|
pi-shazam is published via npm with automatic platform support:
|
|
106
113
|
|
|
107
|
-
| Platform
|
|
108
|
-
|
|
109
|
-
| **Linux** | x64, arm64
|
|
114
|
+
| Platform | Architecture | Status |
|
|
115
|
+
| --------- | ---------------------------------- | --------------- |
|
|
116
|
+
| **Linux** | x64, arm64 | Fully supported |
|
|
110
117
|
| **macOS** | x64 (Intel), arm64 (Apple Silicon) | Fully supported |
|
|
111
118
|
|
|
112
119
|
> **Note**: Windows is not supported due to path handling differences.
|
|
@@ -120,6 +127,7 @@ Supported Node.js versions: **>= 18.0.0**
|
|
|
120
127
|
### Community Format/Version Support
|
|
121
128
|
|
|
122
129
|
- **TypeScript**: `.ts`, `.tsx`, `.mts`, `.cts`
|
|
130
|
+
- **JavaScript**: `.js`, `.jsx`, `.mjs`, `.cjs`
|
|
123
131
|
- **Python**: `.py`, `.pyi`
|
|
124
132
|
- **Go**: `.go`
|
|
125
133
|
- **Rust**: `.rs`
|
|
@@ -129,19 +137,50 @@ Supported Node.js versions: **>= 18.0.0**
|
|
|
129
137
|
|
|
130
138
|
```
|
|
131
139
|
pi-shazam (npm package)
|
|
132
|
-
├── Pi Extension MCP Server
|
|
133
|
-
│ index.ts ──tools/*.ts mcp/entry.ts ──mcp/tools.ts
|
|
134
|
-
│ │ │ │ │
|
|
135
|
-
│ └──── core/ + lsp/ ───────────────┘──────────────┘
|
|
136
|
-
│ (shared core, zero duplication)
|
|
137
140
|
│
|
|
138
|
-
├── hooks/
|
|
139
|
-
│ ├── before-start.ts
|
|
140
|
-
│ ├──
|
|
141
|
-
│ ├──
|
|
142
|
-
│
|
|
141
|
+
├── hooks/ Automatic hooks (hooks → tools → core)
|
|
142
|
+
│ ├── before-start.ts Inject project overview into system prompt
|
|
143
|
+
│ ├── safety.ts Destructive command confirmation + pre-commit gate
|
|
144
|
+
│ ├── pre-edit.ts Multi-file edit protection
|
|
145
|
+
│ ├── shazam-guide.ts Auto-format + tool usage guidance
|
|
146
|
+
│ ├── stop-verify.ts Turn-end verification reminder
|
|
147
|
+
│ ├── failure-recovery.ts Consecutive failure detection
|
|
148
|
+
│ └── tool-logger.ts Usage analytics
|
|
149
|
+
│
|
|
150
|
+
├── tools/ Pi tool wrappers (tools → core + lsp)
|
|
151
|
+
│ ├── definitions.ts Shared tool definitions (names, descriptions, schemas)
|
|
152
|
+
│ ├── _factory.ts Tool registration factory
|
|
153
|
+
│ ├── _context.ts Shared LSP manager holder
|
|
154
|
+
│ ├── lsp_enrich.ts LSP enrichment wrappers
|
|
155
|
+
│ ├── overview.ts ─── impact.ts ─── codesearch.ts
|
|
156
|
+
│ ├── symbol.ts ─── hover.ts ─── file_detail.ts
|
|
157
|
+
│ ├── call_chain.ts ─── verify.ts ─── fix.ts
|
|
158
|
+
│ ├── hotspots.ts ─── find_tests.ts ─── type_hierarchy.ts
|
|
159
|
+
│ ├── rename_symbol.ts ─── safe_delete.ts
|
|
160
|
+
│ │
|
|
161
|
+
│ └── Pi Extension (index.ts) MCP Server (mcp/entry.ts ── mcp/tools.ts)
|
|
162
|
+
│ │ │
|
|
163
|
+
│ └────────── core/ + lsp/ ───────────┘
|
|
164
|
+
│ (shared engine, zero duplication)
|
|
165
|
+
│
|
|
166
|
+
├── lsp/ Language server management
|
|
167
|
+
│ ├── manager.ts Server lifecycle (spawn, stdio, health, shutdown)
|
|
168
|
+
│ ├── client.ts LSP protocol via vscode-jsonrpc
|
|
169
|
+
│ ├── servers.ts Language → server config (6 languages)
|
|
170
|
+
│ └── setup.ts /shazam-setup command
|
|
143
171
|
│
|
|
144
|
-
└── core/
|
|
172
|
+
└── core/ Pure analysis engine (zero dependencies)
|
|
173
|
+
├── treesitter.ts AST parsing + symbol extraction (6 languages)
|
|
174
|
+
├── treesitter-queries.ts Tree-sitter query patterns
|
|
175
|
+
├── graph.ts Symbol dependency graph
|
|
176
|
+
├── pagerank.ts PageRank symbol importance scoring
|
|
177
|
+
├── scanner.ts Project file scanning + graph building
|
|
178
|
+
├── encoding.ts UTF-8 → GBK → GB2312 adaptive encoding
|
|
179
|
+
├── cache.ts Graph baseline save/diff + persistent cache
|
|
180
|
+
├── baseline.ts In-memory session baseline
|
|
181
|
+
├── filter.ts Shared file filtering (source vs config/generated)
|
|
182
|
+
├── output.ts Standardized tool output formatting
|
|
183
|
+
└── git-hooks.ts Git pre-commit hook management
|
|
145
184
|
```
|
|
146
185
|
|
|
147
186
|
## Development
|
|
@@ -159,13 +198,13 @@ npm run build # tsc → dist/
|
|
|
159
198
|
|
|
160
199
|
## LSP Support
|
|
161
200
|
|
|
162
|
-
| Language
|
|
163
|
-
|
|
201
|
+
| Language | LSP Server | Status |
|
|
202
|
+
| --------------------- | -------------------------- | --------- |
|
|
164
203
|
| TypeScript/JavaScript | typescript-language-server | Supported |
|
|
165
|
-
| Python
|
|
166
|
-
| Go
|
|
167
|
-
| Rust
|
|
168
|
-
| YAML
|
|
204
|
+
| Python | pyright-langserver / pylsp | Supported |
|
|
205
|
+
| Go | gopls | Supported |
|
|
206
|
+
| Rust | rust-analyzer | Supported |
|
|
207
|
+
| YAML | yaml-language-server | Supported |
|
|
169
208
|
|
|
170
209
|
When LSP servers are unavailable, tools automatically fall back to tree-sitter mode.
|
|
171
210
|
|
|
@@ -55,6 +55,7 @@ export declare class TreeSitterAdapter {
|
|
|
55
55
|
extractJsTsImportBindings(tree: Tree, lang: string): JSImportBinding[];
|
|
56
56
|
private _walkTree;
|
|
57
57
|
private _firstChildOfType;
|
|
58
|
+
private _isExported;
|
|
58
59
|
private _within;
|
|
59
60
|
private _callRefKind;
|
|
60
61
|
private _moduleLiteral;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treesitter.d.ts","sourceRoot":"","sources":["../../core/treesitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAW1D,UAAU,IAAI;IACb,QAAQ,EAAE,UAAU,CAAC;CACrB;AAED,UAAU,UAAU;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,iBAAiB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;CACpD;AAQD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"treesitter.d.ts","sourceRoot":"","sources":["../../core/treesitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAW1D,UAAU,IAAI;IACb,QAAQ,EAAE,UAAU,CAAC;CACrB;AAED,UAAU,UAAU;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,iBAAiB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;CACpD;AAQD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAc9C,CAAC;AAIF,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,GAAG,CAAwB;gBAEvB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;IAOvC,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,kBAAkB;IA2B1B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IA6BhD,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAShE,OAAO,CAAC,uBAAuB;IAsF/B,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,mBAAmB;IAoC3B,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAgC5D,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IA2BlE,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAqEtE,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,UAAU;CAKlB"}
|
package/dist/core/treesitter.js
CHANGED
|
@@ -36,6 +36,10 @@ export const EXT_TO_LANG = {
|
|
|
36
36
|
".tsx": "tsx",
|
|
37
37
|
".mts": "typescript",
|
|
38
38
|
".cts": "typescript",
|
|
39
|
+
".js": "javascript",
|
|
40
|
+
".jsx": "javascript",
|
|
41
|
+
".mjs": "javascript",
|
|
42
|
+
".cjs": "javascript",
|
|
39
43
|
".go": "go",
|
|
40
44
|
".rs": "rust",
|
|
41
45
|
".json": "json",
|
|
@@ -53,6 +57,7 @@ export class TreeSitterAdapter {
|
|
|
53
57
|
_initParsers() {
|
|
54
58
|
const grammars = [
|
|
55
59
|
["python", "tree-sitter-python", "python"],
|
|
60
|
+
["javascript", "tree-sitter-javascript"],
|
|
56
61
|
["go", "tree-sitter-go", "go"],
|
|
57
62
|
["rust", "tree-sitter-rust", "rust"],
|
|
58
63
|
["json", "tree-sitter-json", "json"],
|
|
@@ -219,7 +224,7 @@ export class TreeSitterAdapter {
|
|
|
219
224
|
});
|
|
220
225
|
for (const [defNode, defCap] of matchingDefs) {
|
|
221
226
|
const kind = defCap.includes(".") ? defCap.split(".").pop() : defCap;
|
|
222
|
-
let vis =
|
|
227
|
+
let vis = this._isExported(defNode) ? "exported" : "public";
|
|
223
228
|
const name = nameNode.text;
|
|
224
229
|
if (!name)
|
|
225
230
|
break;
|
|
@@ -475,6 +480,18 @@ export class TreeSitterAdapter {
|
|
|
475
480
|
}
|
|
476
481
|
return null;
|
|
477
482
|
}
|
|
483
|
+
_isExported(node) {
|
|
484
|
+
// Walk up the parent chain looking for an export node
|
|
485
|
+
// (e.g., export_statement in tree-sitter-typescript/tree-sitter-javascript)
|
|
486
|
+
let ancestor = node;
|
|
487
|
+
while (ancestor) {
|
|
488
|
+
if (ancestor.type.includes("export")) {
|
|
489
|
+
return true;
|
|
490
|
+
}
|
|
491
|
+
ancestor = ancestor.parent;
|
|
492
|
+
}
|
|
493
|
+
return false;
|
|
494
|
+
}
|
|
478
495
|
_within(inner, outer) {
|
|
479
496
|
// Compare positions as (row, column) pairs with proper lexicographic ordering.
|
|
480
497
|
// A position (r1, c1) is <= (r2, c2) iff r1 < r2 or (r1 === r2 and c1 <= c2).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treesitter.js","sourceRoot":"","sources":["../../core/treesitter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"treesitter.js","sourceRoot":"","sources":["../../core/treesitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
* - buildProactiveRecommendations: builds context-aware recommendations
|
|
14
14
|
* - buildSessionBaselineSection: builds baseline summary
|
|
15
15
|
* - generateOverviewForPrompt: orchestrates all parts
|
|
16
|
+
*
|
|
17
|
+
* NOTE: This handler MUST be registered AFTER the LSP init handler in index.ts.
|
|
18
|
+
* Only this handler returns { systemPrompt }. If ordering changes, the system
|
|
19
|
+
* prompt injection could be silently lost.
|
|
16
20
|
*/
|
|
17
21
|
import type { ExtensionAPI } from "../types/pi-extension.js";
|
|
18
22
|
/**
|
|
@@ -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;;;;;;;;;;;;;;;;;;;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,CAuB9D"}
|
|
@@ -13,11 +13,15 @@
|
|
|
13
13
|
* - buildProactiveRecommendations: builds context-aware recommendations
|
|
14
14
|
* - buildSessionBaselineSection: builds baseline summary
|
|
15
15
|
* - generateOverviewForPrompt: orchestrates all parts
|
|
16
|
+
*
|
|
17
|
+
* NOTE: This handler MUST be registered AFTER the LSP init handler in index.ts.
|
|
18
|
+
* Only this handler returns { systemPrompt }. If ordering changes, the system
|
|
19
|
+
* prompt injection could be silently lost.
|
|
16
20
|
*/
|
|
17
21
|
import { scanProject } from "../core/scanner.js";
|
|
18
22
|
import { executeOverview } from "../tools/overview.js";
|
|
19
23
|
import { hasTestFiles, hasHierarchyKinds } from "../core/output.js";
|
|
20
|
-
import { createBaseline,
|
|
24
|
+
import { createBaseline, getBaseline, formatBaselineSummary } from "../core/baseline.js";
|
|
21
25
|
import { execSync } from "node:child_process";
|
|
22
26
|
/**
|
|
23
27
|
* Get the number of uncommitted changes in the working tree.
|
|
@@ -83,8 +87,8 @@ function buildSessionBaselineSection(_projectRoot, graph) {
|
|
|
83
87
|
try {
|
|
84
88
|
const branch = execSync("git branch --show-current 2>/dev/null", { encoding: "utf-8", timeout: 3000 }).trim();
|
|
85
89
|
const commit = execSync("git rev-parse HEAD 2>/dev/null", { encoding: "utf-8", timeout: 3000 }).trim();
|
|
86
|
-
//
|
|
87
|
-
clearBaseline()
|
|
90
|
+
// createBaseline immediately reassigns _baseline and _previousOrphans,
|
|
91
|
+
// so no explicit clearBaseline() is needed here.
|
|
88
92
|
createBaseline(graph, 0, 0, branch || "unknown", commit || "unknown");
|
|
89
93
|
const baseline = getBaseline();
|
|
90
94
|
return baseline ? formatBaselineSummary(baseline) : "";
|
|
@@ -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":"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"}
|
package/dist/hooks/pre-edit.d.ts
CHANGED
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
* shazam_impact first to assess blast radius.
|
|
11
11
|
*/
|
|
12
12
|
import type { ExtensionAPI } from "../types/pi-extension.js";
|
|
13
|
+
/**
|
|
14
|
+
* Normalize a file path to prevent duplicate tracking of the same file
|
|
15
|
+
* under different path representations (e.g. "./src/foo.ts" vs "src/foo.ts").
|
|
16
|
+
*/
|
|
17
|
+
export declare function normalizeEditedPath(filePath: string, cwd: string): string;
|
|
13
18
|
/**
|
|
14
19
|
* Get the list of files that have been edited so far in this session.
|
|
15
20
|
*/
|
|
@@ -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;AAkB7D;;;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,CA6E3D"}
|
package/dist/hooks/pre-edit.js
CHANGED
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
* When triggered, it sends a warning message suggesting the user run
|
|
10
10
|
* shazam_impact first to assess blast radius.
|
|
11
11
|
*/
|
|
12
|
+
import { resolve } from "node:path";
|
|
12
13
|
/** Maximum number of edited files tracked in the set. */
|
|
13
14
|
const MAX_EDITED_FILES = 100;
|
|
14
15
|
/**
|
|
15
16
|
* Track files edited in the current session for multi-edit detection.
|
|
16
|
-
* Key: file path, Value: insertion order timestamp.
|
|
17
|
+
* Key: normalized file path, Value: insertion order timestamp.
|
|
17
18
|
*/
|
|
18
19
|
const _editedFiles = new Map();
|
|
19
20
|
let _editCounter = 0;
|
|
@@ -21,6 +22,13 @@ let _editCounter = 0;
|
|
|
21
22
|
* Track tentative file additions from tool_call for removal on failed tool_result.
|
|
22
23
|
*/
|
|
23
24
|
const _tentativeFiles = new Map();
|
|
25
|
+
/**
|
|
26
|
+
* Normalize a file path to prevent duplicate tracking of the same file
|
|
27
|
+
* under different path representations (e.g. "./src/foo.ts" vs "src/foo.ts").
|
|
28
|
+
*/
|
|
29
|
+
export function normalizeEditedPath(filePath, cwd) {
|
|
30
|
+
return resolve(cwd, filePath);
|
|
31
|
+
}
|
|
24
32
|
/**
|
|
25
33
|
* Get the list of files that have been edited so far in this session.
|
|
26
34
|
*/
|
|
@@ -96,9 +104,11 @@ export function registerPreEditGuard(pi) {
|
|
|
96
104
|
if (event.toolName !== "write" && event.toolName !== "edit")
|
|
97
105
|
return;
|
|
98
106
|
const input = "input" in event ? event.input : {};
|
|
99
|
-
const
|
|
100
|
-
if (
|
|
107
|
+
const rawFiles = extractFilesFromInput(input);
|
|
108
|
+
if (rawFiles.length === 0)
|
|
101
109
|
return;
|
|
110
|
+
// Normalize paths to avoid duplicate tracking
|
|
111
|
+
const files = rawFiles.map((f) => normalizeEditedPath(f, ctx.cwd));
|
|
102
112
|
// Track tentatively for this tool call (for removal on failure).
|
|
103
113
|
// Also schedule TTL-based eviction in case tool_result never arrives.
|
|
104
114
|
const toolId = event.toolCallId;
|
|
@@ -130,11 +140,8 @@ export function registerPreEditGuard(pi) {
|
|
|
130
140
|
if (allFiles.length >= 2) {
|
|
131
141
|
reasons.push(`This session has touched ${allFiles.length} files`);
|
|
132
142
|
}
|
|
133
|
-
// Condition 2: Shared/exported module check is deferred to graph availability.
|
|
134
|
-
// Formerly used blocking execSync("grep -r ..."); now relies on multi-file
|
|
135
|
-
// detection (Condition 1) which catches most risky edit patterns.
|
|
136
143
|
if (reasons.length > 0) {
|
|
137
|
-
ctx.ui
|
|
144
|
+
ctx.ui.notify(`[shazam] Caution: ${reasons.join("; ")}. Run \`shazam_impact --files ${allFiles.join(" ")}\` to assess blast radius before editing.`, "warning");
|
|
138
145
|
}
|
|
139
146
|
});
|
|
140
147
|
// On tool_result: remove tentatively tracked files if the tool call failed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-edit.js","sourceRoot":"","sources":["../../hooks/pre-edit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"pre-edit.js","sourceRoot":"","sources":["../../hooks/pre-edit.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/safety.d.ts
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* 1. Destructive command detection — shows confirmation dialog for dangerous commands
|
|
6
6
|
* 2. Pre-commit gate — blocks git commit if shazam_verify was not run recently
|
|
7
7
|
*
|
|
8
|
-
* Uses Pi's ctx.ui.confirm() for interactive confirmation
|
|
9
|
-
*
|
|
8
|
+
* Uses Pi's ctx.ui.confirm() for interactive confirmation.
|
|
9
|
+
* Uses shared verify-state module for reliable verify detection.
|
|
10
10
|
*/
|
|
11
11
|
import type { ExtensionAPI } from "../types/pi-extension.js";
|
|
12
12
|
/**
|
|
@@ -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;
|
|
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,CA0F1D"}
|
package/dist/hooks/safety.js
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
* 1. Destructive command detection — shows confirmation dialog for dangerous commands
|
|
6
6
|
* 2. Pre-commit gate — blocks git commit if shazam_verify was not run recently
|
|
7
7
|
*
|
|
8
|
-
* Uses Pi's ctx.ui.confirm() for interactive confirmation
|
|
9
|
-
*
|
|
8
|
+
* Uses Pi's ctx.ui.confirm() for interactive confirmation.
|
|
9
|
+
* Uses shared verify-state module for reliable verify detection.
|
|
10
10
|
*/
|
|
11
|
+
import { hasRecentVerify } from "./verify-state.js";
|
|
11
12
|
/**
|
|
12
13
|
* High-risk patterns that should always trigger confirmation.
|
|
13
14
|
* Matched as substrings in the command.
|
|
@@ -67,49 +68,6 @@ function detectDestructiveCommand(cmd) {
|
|
|
67
68
|
}
|
|
68
69
|
return null;
|
|
69
70
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Check if shazam_verify was called recently in this session.
|
|
72
|
-
* Uses the tool-logger's audit log or checks in-memory state.
|
|
73
|
-
*/
|
|
74
|
-
function hasRecentVerify() {
|
|
75
|
-
// Check if shazam_verify appears in recent tool results
|
|
76
|
-
// We can't directly access the tool history, so we check the audit log
|
|
77
|
-
try {
|
|
78
|
-
const { readFileSync, statSync } = require("node:fs");
|
|
79
|
-
const { join } = require("node:path");
|
|
80
|
-
const { homedir } = require("node:os");
|
|
81
|
-
const logFile = join(homedir(), ".pi", "hooks", "audit", "shazam-calls.log");
|
|
82
|
-
// Check if log file exists and was modified recently (within 5 minutes)
|
|
83
|
-
try {
|
|
84
|
-
const stat = statSync(logFile);
|
|
85
|
-
const fiveMinutesAgo = Date.now() - 5 * 60 * 1000;
|
|
86
|
-
if (stat.mtimeMs < fiveMinutesAgo) {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
return false; // File doesn't exist
|
|
92
|
-
}
|
|
93
|
-
// Read last 20 lines to check for recent shazam_verify calls
|
|
94
|
-
const content = readFileSync(logFile, "utf-8");
|
|
95
|
-
const lines = content.trim().split("\n").slice(-20);
|
|
96
|
-
for (const line of lines) {
|
|
97
|
-
try {
|
|
98
|
-
const entry = JSON.parse(line);
|
|
99
|
-
if (entry.tool === "shazam_verify" && entry.event === "result") {
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
catch {
|
|
104
|
-
// Skip malformed lines
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
catch {
|
|
109
|
-
// If we can't check, assume verify was not run
|
|
110
|
-
}
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
113
71
|
/**
|
|
114
72
|
* Register the safety hooks.
|
|
115
73
|
*
|
|
@@ -126,7 +84,7 @@ export function registerSafetyHooks(pi) {
|
|
|
126
84
|
const cmd = input.command;
|
|
127
85
|
if (!cmd || typeof cmd !== "string")
|
|
128
86
|
return;
|
|
129
|
-
//
|
|
87
|
+
// -- Check 1: Destructive command detection --
|
|
130
88
|
const destructive = detectDestructiveCommand(cmd);
|
|
131
89
|
if (destructive) {
|
|
132
90
|
const emoji = destructive.level === "HIGH" ? "!!!" : "!";
|
|
@@ -148,7 +106,7 @@ export function registerSafetyHooks(pi) {
|
|
|
148
106
|
};
|
|
149
107
|
}
|
|
150
108
|
// User confirmed, allow the command
|
|
151
|
-
ctx.ui.notify
|
|
109
|
+
ctx.ui.notify(`Proceeding with ${destructive.level}-risk command...`, "warning");
|
|
152
110
|
}
|
|
153
111
|
catch {
|
|
154
112
|
// If confirm dialog fails (e.g., non-interactive mode), block high-risk
|
|
@@ -162,31 +120,21 @@ export function registerSafetyHooks(pi) {
|
|
|
162
120
|
}
|
|
163
121
|
return;
|
|
164
122
|
}
|
|
165
|
-
//
|
|
123
|
+
// -- Check 2: Pre-commit gate --
|
|
166
124
|
if (GIT_COMMIT_PATTERN.test(cmd)) {
|
|
167
125
|
// Skip if --no-verify flag is present
|
|
168
126
|
if (cmd.includes("--no-verify")) {
|
|
169
127
|
return;
|
|
170
128
|
}
|
|
171
|
-
// Check if shazam_verify was run recently
|
|
129
|
+
// Check if shazam_verify was run recently (via shared state)
|
|
172
130
|
if (!hasRecentVerify()) {
|
|
173
131
|
try {
|
|
174
132
|
const choice = await ctx.ui.select("Pre-Commit Gate", [
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
label: "Skip verification",
|
|
181
|
-
description: "Commit without verification",
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
label: "Cancel commit",
|
|
185
|
-
description: "Don't commit yet",
|
|
186
|
-
},
|
|
133
|
+
"Run shazam_verify first (Recommended)",
|
|
134
|
+
"Skip verification",
|
|
135
|
+
"Cancel commit",
|
|
187
136
|
]);
|
|
188
137
|
if (choice === "Run shazam_verify first (Recommended)") {
|
|
189
|
-
// Block the commit and suggest running verify
|
|
190
138
|
return {
|
|
191
139
|
block: true,
|
|
192
140
|
reason: "Run shazam_verify first, then try committing again.",
|
|
@@ -202,7 +150,7 @@ export function registerSafetyHooks(pi) {
|
|
|
202
150
|
}
|
|
203
151
|
catch {
|
|
204
152
|
// Non-interactive mode: just warn but allow
|
|
205
|
-
ctx.ui.notify
|
|
153
|
+
ctx.ui.notify("[shazam] Tip: Run shazam_verify before committing to catch errors early.", "warning");
|
|
206
154
|
}
|
|
207
155
|
}
|
|
208
156
|
}
|
package/dist/hooks/safety.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../hooks/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"safety.js","sourceRoot":"","sources":["../../hooks/safety.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* - before_agent_start: inject shazam tool list into system prompt
|
|
6
6
|
* - tool_result (write/edit): auto-format + suggest running shazam_verify
|
|
7
7
|
* - tool_result (shazam_symbol): suggest call_chain when symbol has many callers
|
|
8
|
-
* - tool_call (
|
|
9
|
-
* - tool_call (
|
|
8
|
+
* - tool_call (shazam_impact): suggest running shazam_verify first
|
|
9
|
+
* - tool_call (shazam_rename_symbol): suggest running shazam_call_chain first
|
|
10
10
|
*
|
|
11
11
|
* Auto-format feature (v0.6.4):
|
|
12
12
|
* - After write/edit, detect file type and run native formatter
|
|
@@ -70,7 +70,7 @@ async function autoFormatFile(filePath, ctx) {
|
|
|
70
70
|
existsSync(join(projectRoot, "pyproject.toml"));
|
|
71
71
|
if (hasRuff) {
|
|
72
72
|
execSync(`ruff format "${absPath}"`, { cwd: projectRoot, timeout: 10000, stdio: "pipe" });
|
|
73
|
-
ctx.ui
|
|
73
|
+
ctx.ui.notify(`[auto-format] Formatted ${filePath} with ruff`, "info");
|
|
74
74
|
return true;
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -83,7 +83,7 @@ async function autoFormatFile(filePath, ctx) {
|
|
|
83
83
|
existsSync(join(projectRoot, "prettier.config.mjs"));
|
|
84
84
|
if (hasPrettier) {
|
|
85
85
|
execSync(`npx prettier --write "${absPath}"`, { cwd: projectRoot, timeout: 15000, stdio: "pipe" });
|
|
86
|
-
ctx.ui
|
|
86
|
+
ctx.ui.notify(`[auto-format] Formatted ${filePath} with prettier`, "info");
|
|
87
87
|
return true;
|
|
88
88
|
}
|
|
89
89
|
// Biome
|
|
@@ -91,26 +91,26 @@ async function autoFormatFile(filePath, ctx) {
|
|
|
91
91
|
existsSync(join(projectRoot, "biome.jsonc"));
|
|
92
92
|
if (hasBiome) {
|
|
93
93
|
execSync(`npx biome format --write "${absPath}"`, { cwd: projectRoot, timeout: 15000, stdio: "pipe" });
|
|
94
|
-
ctx.ui
|
|
94
|
+
ctx.ui.notify(`[auto-format] Formatted ${filePath} with biome`, "info");
|
|
95
95
|
return true;
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
// Go: gofmt
|
|
99
99
|
if (ext === ".go") {
|
|
100
100
|
execSync(`gofmt -w "${absPath}"`, { cwd: projectRoot, timeout: 10000, stdio: "pipe" });
|
|
101
|
-
ctx.ui
|
|
101
|
+
ctx.ui.notify(`[auto-format] Formatted ${filePath} with gofmt`, "info");
|
|
102
102
|
return true;
|
|
103
103
|
}
|
|
104
104
|
// Rust: rustfmt
|
|
105
105
|
if (ext === ".rs") {
|
|
106
106
|
execSync(`rustfmt "${absPath}"`, { cwd: projectRoot, timeout: 10000, stdio: "pipe" });
|
|
107
|
-
ctx.ui
|
|
107
|
+
ctx.ui.notify(`[auto-format] Formatted ${filePath} with rustfmt`, "info");
|
|
108
108
|
return true;
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
catch (err) {
|
|
112
112
|
// Formatter failed — warn but don't block
|
|
113
|
-
ctx.ui
|
|
113
|
+
ctx.ui.notify(`[auto-format] Formatter failed for ${filePath}: ${err instanceof Error ? err.message : String(err)}`, "warning");
|
|
114
114
|
return true; // We attempted formatting
|
|
115
115
|
}
|
|
116
116
|
return false; // No formatter found
|
|
@@ -142,11 +142,11 @@ export function registerShazamGuide(pi) {
|
|
|
142
142
|
const formatted = filePath ? await autoFormatFile(filePath, ctx) : false;
|
|
143
143
|
// If no native formatter found, suggest shazam_fix
|
|
144
144
|
if (!formatted) {
|
|
145
|
-
ctx.ui
|
|
145
|
+
ctx.ui.notify("run shazam_fix to auto-format (prettier/ruff/gofmt/rustfmt)", "info");
|
|
146
146
|
}
|
|
147
147
|
// Check if multi-file edit was done — suggest impact analysis
|
|
148
148
|
if (hasMultiFileEdit(event.content)) {
|
|
149
|
-
ctx.ui
|
|
149
|
+
ctx.ui.notify("suggestion: you edited multiple files — shazam_impact assesses blast radius before continuing", "info");
|
|
150
150
|
}
|
|
151
151
|
return;
|
|
152
152
|
}
|
|
@@ -154,7 +154,7 @@ export function registerShazamGuide(pi) {
|
|
|
154
154
|
if (event.toolName === "shazam_symbol") {
|
|
155
155
|
const symbolName = hasManyCallers(event.content);
|
|
156
156
|
if (symbolName && !event.isError) {
|
|
157
|
-
ctx.ui
|
|
157
|
+
ctx.ui.notify(`recommended: shazam_call_chain --symbol ${symbolName} traces all callers before changing this symbol`, "info");
|
|
158
158
|
}
|
|
159
159
|
return;
|
|
160
160
|
}
|
|
@@ -169,10 +169,10 @@ export function registerShazamGuide(pi) {
|
|
|
169
169
|
}
|
|
170
170
|
const combined = texts.join("\n");
|
|
171
171
|
if (combined.includes("[FAIL]")) {
|
|
172
|
-
ctx.ui
|
|
172
|
+
ctx.ui.notify("shazam_verify reported FAIL — fix errors before proceeding", "warning");
|
|
173
173
|
}
|
|
174
174
|
else if (combined.includes("[WARN]")) {
|
|
175
|
-
ctx.ui
|
|
175
|
+
ctx.ui.notify("shazam_verify reported WARN — review warnings, then run shazam_fix if needed", "info");
|
|
176
176
|
}
|
|
177
177
|
return;
|
|
178
178
|
}
|
|
@@ -181,12 +181,12 @@ export function registerShazamGuide(pi) {
|
|
|
181
181
|
const name = event.toolName;
|
|
182
182
|
// Before impact: suggest verifying first if there are uncommitted changes
|
|
183
183
|
if (name === "shazam_impact") {
|
|
184
|
-
ctx.ui
|
|
184
|
+
ctx.ui.notify("tip: run shazam_verify first to establish a baseline before assessing impact", "info");
|
|
185
185
|
return;
|
|
186
186
|
}
|
|
187
187
|
// Before rename_symbol: suggest call_chain first
|
|
188
188
|
if (name === "shazam_rename_symbol") {
|
|
189
|
-
ctx.ui
|
|
189
|
+
ctx.ui.notify("tip: run shazam_call_chain first to verify all references before renaming", "info");
|
|
190
190
|
return;
|
|
191
191
|
}
|
|
192
192
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shazam-guide.js","sourceRoot":"","sources":["../../hooks/shazam-guide.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shazam-guide.js","sourceRoot":"","sources":["../../hooks/shazam-guide.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,13 +8,14 @@
|
|
|
8
8
|
* to check for errors before declaring "done".
|
|
9
9
|
*
|
|
10
10
|
* Uses turn_end event to detect when the agent is about to finish.
|
|
11
|
-
* Tracks verify calls
|
|
11
|
+
* Tracks verify calls via shared verify-state module.
|
|
12
12
|
*/
|
|
13
13
|
import type { ExtensionAPI } from "../types/pi-extension.js";
|
|
14
14
|
/**
|
|
15
15
|
* Register the stop-verify hook.
|
|
16
16
|
*
|
|
17
|
-
* On tool_result for shazam_verify, marks verify as called.
|
|
17
|
+
* On tool_result for shazam_verify, marks verify as called and clears edit tracker.
|
|
18
|
+
* On tool_call for write/edit after verify, resets verify flag (post-verify edit detection).
|
|
18
19
|
* On turn_end, checks if there were file edits that haven't been verified.
|
|
19
20
|
*/
|
|
20
21
|
export declare function registerStopVerify(pi: ExtensionAPI): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-verify.d.ts","sourceRoot":"","sources":["../../hooks/stop-verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"stop-verify.d.ts","sourceRoot":"","sources":["../../hooks/stop-verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA6CzD"}
|
|
@@ -8,49 +8,34 @@
|
|
|
8
8
|
* to check for errors before declaring "done".
|
|
9
9
|
*
|
|
10
10
|
* Uses turn_end event to detect when the agent is about to finish.
|
|
11
|
-
* Tracks verify calls
|
|
11
|
+
* Tracks verify calls via shared verify-state module.
|
|
12
12
|
*/
|
|
13
|
-
import { getEditedFiles } from "./pre-edit.js";
|
|
14
|
-
|
|
15
|
-
* Track whether shazam_verify was called in this session.
|
|
16
|
-
* More reliable than checking audit log file.
|
|
17
|
-
*/
|
|
18
|
-
let _verifyCalledInSession = false;
|
|
19
|
-
let _lastVerifyTimestamp = 0;
|
|
20
|
-
/**
|
|
21
|
-
* Mark that shazam_verify was called.
|
|
22
|
-
*/
|
|
23
|
-
function markVerifyCalled() {
|
|
24
|
-
_verifyCalledInSession = true;
|
|
25
|
-
_lastVerifyTimestamp = Date.now();
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Check if shazam_verify was called recently (within 5 minutes).
|
|
29
|
-
*/
|
|
30
|
-
function hasRecentVerify() {
|
|
31
|
-
if (!_verifyCalledInSession)
|
|
32
|
-
return false;
|
|
33
|
-
// Also check if it was recent (within 5 minutes)
|
|
34
|
-
const fiveMinutesAgo = Date.now() - 5 * 60 * 1000;
|
|
35
|
-
return _lastVerifyTimestamp > fiveMinutesAgo;
|
|
36
|
-
}
|
|
13
|
+
import { getEditedFiles, clearEditedFiles } from "./pre-edit.js";
|
|
14
|
+
import { markVerifyCalled, hasRecentVerify, onNewEdit, resetVerifyState } from "./verify-state.js";
|
|
37
15
|
/**
|
|
38
16
|
* Register the stop-verify hook.
|
|
39
17
|
*
|
|
40
|
-
* On tool_result for shazam_verify, marks verify as called.
|
|
18
|
+
* On tool_result for shazam_verify, marks verify as called and clears edit tracker.
|
|
19
|
+
* On tool_call for write/edit after verify, resets verify flag (post-verify edit detection).
|
|
41
20
|
* On turn_end, checks if there were file edits that haven't been verified.
|
|
42
21
|
*/
|
|
43
22
|
export function registerStopVerify(pi) {
|
|
44
|
-
// Track shazam_verify calls
|
|
23
|
+
// Track shazam_verify calls and clear edit history (edits are now verified)
|
|
45
24
|
pi.on("tool_result", (event) => {
|
|
46
25
|
if (event.toolName === "shazam_verify" && !event.isError) {
|
|
47
26
|
markVerifyCalled();
|
|
27
|
+
clearEditedFiles();
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
// Reset verify flag when new edits happen after verify
|
|
31
|
+
pi.on("tool_call", (event) => {
|
|
32
|
+
if (event.toolName === "write" || event.toolName === "edit") {
|
|
33
|
+
onNewEdit();
|
|
48
34
|
}
|
|
49
35
|
});
|
|
50
36
|
// Reset on session start
|
|
51
37
|
pi.on("session_start", () => {
|
|
52
|
-
|
|
53
|
-
_lastVerifyTimestamp = 0;
|
|
38
|
+
resetVerifyState();
|
|
54
39
|
});
|
|
55
40
|
// Check on turn end
|
|
56
41
|
pi.on("turn_end", (_event, _ctx) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-verify.js","sourceRoot":"","sources":["../../hooks/stop-verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"stop-verify.js","sourceRoot":"","sources":["../../hooks/stop-verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAgB;IAClD,4EAA4E;IAC5E,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;QAC9B,IAAI,KAAK,CAAC,QAAQ,KAAK,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1D,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;QACpB,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,uDAAuD;IACvD,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5B,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC7D,SAAS,EAAE,CAAC;QACb,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,gBAAgB,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAClC,8CAA8C;QAC9C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAErC,0CAA0C;QAC1C,IAAI,eAAe,EAAE;YAAE,OAAO;QAE9B,kEAAkE;QAClE,MAAM,QAAQ,GACb,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,QAAQ,CAAC;QAEzG,EAAE,CAAC,WAAW,CAAC;YACd,UAAU,EAAE,iBAAiB;YAC7B,OAAO,EAAE;gBACR,gCAAgC;gBAChC,EAAE;gBACF,cAAc,QAAQ,kDAAkD;gBACxE,0EAA0E;aAC1E,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,KAAK;SACd,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AA6D7D,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAuDzD"}
|
|
@@ -30,6 +30,7 @@ function write(entry) {
|
|
|
30
30
|
try {
|
|
31
31
|
ensureDir();
|
|
32
32
|
appendFileSync(LOG_FILE, JSON.stringify(entry) + "\n", "utf-8");
|
|
33
|
+
_writeFailed = false;
|
|
33
34
|
}
|
|
34
35
|
catch (err) {
|
|
35
36
|
if (!_writeFailed) {
|
|
@@ -57,6 +58,10 @@ function summarize(v) {
|
|
|
57
58
|
}
|
|
58
59
|
return v;
|
|
59
60
|
}
|
|
61
|
+
function cleanupState() {
|
|
62
|
+
_starts.clear();
|
|
63
|
+
_writeFailed = false;
|
|
64
|
+
}
|
|
60
65
|
export function registerToolLogger(pi) {
|
|
61
66
|
pi.on("tool_call", (event, ctx) => {
|
|
62
67
|
if (!isShazam(event.toolName))
|
|
@@ -101,5 +106,12 @@ export function registerToolLogger(pi) {
|
|
|
101
106
|
result: truncated,
|
|
102
107
|
});
|
|
103
108
|
});
|
|
109
|
+
// Clean up orphaned entries on session boundaries
|
|
110
|
+
pi.on("session_start", () => {
|
|
111
|
+
cleanupState();
|
|
112
|
+
});
|
|
113
|
+
pi.on("session_shutdown", () => {
|
|
114
|
+
cleanupState();
|
|
115
|
+
});
|
|
104
116
|
}
|
|
105
117
|
//# sourceMappingURL=tool-logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-logger.js","sourceRoot":"","sources":["../../hooks/tool-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC1C,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB,SAAS,SAAS;IACjB,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,EAAE;IACV,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAClC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;IACrF,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;AAClJ,CAAC;AAED,SAAS,KAAK,CAAC,KAA8B;IAC5C,IAAI,CAAC;QACJ,SAAS,EAAE,CAAC;QACZ,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-logger.js","sourceRoot":"","sources":["../../hooks/tool-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pi-shazam hooks/verify-state — Shared verify tracking state.
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for "was shazam_verify called recently?"
|
|
5
|
+
* Used by both safety.ts (pre-commit gate) and stop-verify.ts (turn-end reminder).
|
|
6
|
+
*
|
|
7
|
+
* State machine:
|
|
8
|
+
* idle → verified (markVerifyCalled) → idle (onNewEdit or timeout)
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Record that shazam_verify completed successfully.
|
|
12
|
+
*/
|
|
13
|
+
export declare function markVerifyCalled(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Check if shazam_verify was called within the last 5 minutes
|
|
16
|
+
* and no new edits have occurred since.
|
|
17
|
+
*/
|
|
18
|
+
export declare function hasRecentVerify(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Signal that a new write/edit occurred after the last verify.
|
|
21
|
+
* Resets the verify flag so reminders re-trigger for unverified edits.
|
|
22
|
+
*/
|
|
23
|
+
export declare function onNewEdit(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Reset all state. Called on session_start/session_shutdown and in tests.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resetVerifyState(): void;
|
|
28
|
+
//# sourceMappingURL=verify-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-state.d.ts","sourceRoot":"","sources":["../../hooks/verify-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pi-shazam hooks/verify-state — Shared verify tracking state.
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for "was shazam_verify called recently?"
|
|
5
|
+
* Used by both safety.ts (pre-commit gate) and stop-verify.ts (turn-end reminder).
|
|
6
|
+
*
|
|
7
|
+
* State machine:
|
|
8
|
+
* idle → verified (markVerifyCalled) → idle (onNewEdit or timeout)
|
|
9
|
+
*/
|
|
10
|
+
const FIVE_MINUTES_MS = 5 * 60 * 1000;
|
|
11
|
+
let _verifyCalled = false;
|
|
12
|
+
let _lastVerifyTimestamp = 0;
|
|
13
|
+
/**
|
|
14
|
+
* Record that shazam_verify completed successfully.
|
|
15
|
+
*/
|
|
16
|
+
export function markVerifyCalled() {
|
|
17
|
+
_verifyCalled = true;
|
|
18
|
+
_lastVerifyTimestamp = Date.now();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Check if shazam_verify was called within the last 5 minutes
|
|
22
|
+
* and no new edits have occurred since.
|
|
23
|
+
*/
|
|
24
|
+
export function hasRecentVerify() {
|
|
25
|
+
if (!_verifyCalled)
|
|
26
|
+
return false;
|
|
27
|
+
return _lastVerifyTimestamp > Date.now() - FIVE_MINUTES_MS;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Signal that a new write/edit occurred after the last verify.
|
|
31
|
+
* Resets the verify flag so reminders re-trigger for unverified edits.
|
|
32
|
+
*/
|
|
33
|
+
export function onNewEdit() {
|
|
34
|
+
_verifyCalled = false;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Reset all state. Called on session_start/session_shutdown and in tests.
|
|
38
|
+
*/
|
|
39
|
+
export function resetVerifyState() {
|
|
40
|
+
_verifyCalled = false;
|
|
41
|
+
_lastVerifyTimestamp = 0;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=verify-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-state.js","sourceRoot":"","sources":["../../hooks/verify-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEtC,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,IAAI,oBAAoB,GAAG,CAAC,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC/B,aAAa,GAAG,IAAI,CAAC;IACrB,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC9B,IAAI,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACxB,aAAa,GAAG,KAAK,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC/B,aAAa,GAAG,KAAK,CAAC;IACtB,oBAAoB,GAAG,CAAC,CAAC;AAC1B,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,CAuL/C"}
|
package/dist/index.js
CHANGED
|
@@ -45,7 +45,9 @@ export default function (pi) {
|
|
|
45
45
|
const lspManager = new LspManager(projectRoot, log);
|
|
46
46
|
// Share LspManager with tools via global reference
|
|
47
47
|
setLspManager(lspManager);
|
|
48
|
-
// Auto-initialize LSP on agent start (with overall 15s timeout guard)
|
|
48
|
+
// Auto-initialize LSP on agent start (with overall 15s timeout guard).
|
|
49
|
+
// IMPORTANT: This handler MUST be registered before registerBeforeStartHook.
|
|
50
|
+
// Only the before-start handler returns { systemPrompt }; ordering matters.
|
|
49
51
|
pi.on("before_agent_start", async (_event, _ctx) => {
|
|
50
52
|
try {
|
|
51
53
|
await awaitPreviousShutdown();
|
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,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;QAC3B,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI;YAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,2EAA2E;IAE3E,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAEpD,mDAAmD;IACnD,aAAa,CAAC,UAAU,CAAC,CAAC;IAE1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/entry.js
CHANGED
|
@@ -15,7 +15,7 @@ const PROJECT_ROOT = process.argv[2] || ".";
|
|
|
15
15
|
async function main() {
|
|
16
16
|
const server = new McpServer({
|
|
17
17
|
name: "pi-shazam",
|
|
18
|
-
version: "0.
|
|
18
|
+
version: "0.9.1",
|
|
19
19
|
});
|
|
20
20
|
// Scan project (builds symbol graph, may take 1-5s for large projects)
|
|
21
21
|
const graph = scanProject(PROJECT_ROOT);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-shazam",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Pi coding agent native codebase awareness toolkit — 14 structural analysis tools. Also supports MCP (Cursor, Claude Desktop, Windsurf, etc.)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|