pi-shazam 0.18.0 → 0.18.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 CHANGED
@@ -6,7 +6,7 @@
6
6
  [![CI](https://github.com/gjczone/pi-shazam/actions/workflows/ci.yml/badge.svg)](https://github.com/gjczone/pi-shazam/actions/workflows/ci.yml)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
8
 
9
- > **100% Vibe Coding** — This entire project (core analysis engine, 9 tools, hooks, LSP integration, MCP server, CI/CD, documentation) was built using [Pi coding agent](https://pi.dev) powered primarily by **DeepSeek-V4-Pro**, **MiMo-V2.5-Pro**, and **Qwen3.7-Max**. Zero hand-written code. Every line, every test, every architecture decision — generated and refined by AI, verified by automated CI.
9
+ > **100% Vibe Coding** — This entire project (core analysis engine, 9 tools, hooks, LSP integration, MCP server, CI/CD, documentation) was built using [Pi coding agent](https://pi.dev) powered primarily by **DeepSeek-V4-Pro**, **GLM-5.2**, **GLM-5.1**, **MiMo-V2.5-Pro**, and **Qwen3.7-Max**. Zero hand-written code. Every line, every test, every architecture decision — generated and refined by AI, verified by automated CI.
10
10
 
11
11
  ## What It Does
12
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"pre-edit.d.ts","sourceRoot":"","sources":["../../hooks/pre-edit.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,0BAA0B,CAAC;AA0BlF;;;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,CAQvC;AA+BD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA4G3D"}
1
+ {"version":3,"file":"pre-edit.d.ts","sourceRoot":"","sources":["../../hooks/pre-edit.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,0BAA0B,CAAC;AA8FlF;;;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,CASvC;AA+BD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA+I3D"}
@@ -10,6 +10,70 @@
10
10
  import { resolve } from "node:path";
11
11
  import { isTrackableEditedPath } from "../core/filter.js";
12
12
  import { hasPendingImpact } from "./impact-state.js";
13
+ /**
14
+ * Filenames that represent project-wide configuration files.
15
+ * Editing any of these can affect the entire project even when only
16
+ * a single file is touched, so they trigger an impact warning regardless
17
+ * of edit count.
18
+ */
19
+ const GLOBAL_CONFIG_FILENAMES = new Set([
20
+ "package.json",
21
+ "tsconfig.json",
22
+ "tsconfig.base.json",
23
+ "tsconfig.build.json",
24
+ "jsconfig.json",
25
+ "Cargo.toml",
26
+ "Cargo.lock",
27
+ "pyproject.toml",
28
+ "setup.py",
29
+ "setup.cfg",
30
+ "go.mod",
31
+ "go.sum",
32
+ "Makefile",
33
+ "CMakeLists.txt",
34
+ "Dockerfile",
35
+ "docker-compose.yml",
36
+ "docker-compose.yaml",
37
+ ".env",
38
+ ".env.example",
39
+ ".env.local",
40
+ "vite.config.ts",
41
+ "vite.config.js",
42
+ "webpack.config.js",
43
+ "rollup.config.js",
44
+ "eslint.config.js",
45
+ "eslint.config.mjs",
46
+ "pnpm-workspace.yaml",
47
+ "lerna.json",
48
+ "nx.json",
49
+ "turbo.json",
50
+ "renovate.json",
51
+ ".github/dependabot.yml",
52
+ "ci.yml",
53
+ ]);
54
+ /**
55
+ * Track warned file groups to prevent repeated impact notifications
56
+ * for the same set of files within a session.
57
+ * Map<sorted-key, timestampMs>. TTL auto-evicts after 5 minutes.
58
+ */
59
+ const _warnedFileGroups = new Map();
60
+ const WARN_GROUP_TTL_MS = 5 * 60 * 1000;
61
+ function _pruneWarnedGroups() {
62
+ const cutoff = Date.now() - WARN_GROUP_TTL_MS;
63
+ for (const [key, ts] of _warnedFileGroups) {
64
+ if (ts < cutoff)
65
+ _warnedFileGroups.delete(key);
66
+ }
67
+ }
68
+ function _wasGroupWarned(files) {
69
+ _pruneWarnedGroups();
70
+ const key = [...files].sort().join(",");
71
+ return _warnedFileGroups.has(key);
72
+ }
73
+ function _markGroupWarned(files) {
74
+ const key = [...files].sort().join(",");
75
+ _warnedFileGroups.set(key, Date.now());
76
+ }
13
77
  /** Maximum number of edited files tracked in the set. */
14
78
  const MAX_EDITED_FILES = 100;
15
79
  /**
@@ -70,6 +134,7 @@ export function clearEditedFiles() {
70
134
  _editedFiles.clear();
71
135
  _editCounter = 0;
72
136
  _tentativeFiles.clear();
137
+ _warnedFileGroups.clear();
73
138
  }
74
139
  /**
75
140
  * Extract file paths from a tool call's input parameters.
@@ -162,11 +227,44 @@ export function registerPreEditGuard(pi) {
162
227
  const allFiles = getEditedFiles();
163
228
  // Check conditions for suggesting impact analysis
164
229
  const reasons = [];
230
+ let hasGlobalConfig = false;
165
231
  // Condition 1: Multiple files edited in this session
166
232
  if (allFiles.length >= 2) {
167
233
  reasons.push(`This session has touched ${allFiles.length} files`);
168
234
  }
169
- if (reasons.length > 0) {
235
+ // Condition 2: At least one file is a global configuration file.
236
+ // Global configs affect the entire project and warrant an impact
237
+ // analysis even when only a single file is being edited.
238
+ for (const f of allFiles) {
239
+ const basename = f.split("/").pop() ?? "";
240
+ if (GLOBAL_CONFIG_FILENAMES.has(basename)) {
241
+ hasGlobalConfig = true;
242
+ reasons.push(`editing global config \`${basename}\``);
243
+ break;
244
+ }
245
+ // Also match well-known config sub-paths like ".github/workflows/ci.yml"
246
+ if (f.includes("/.github/") || f.includes("/.config/")) {
247
+ const relName = f.split("/").slice(-2).join("/");
248
+ if (GLOBAL_CONFIG_FILENAMES.has(relName)) {
249
+ hasGlobalConfig = true;
250
+ reasons.push(`editing global config \`${relName}\``);
251
+ break;
252
+ }
253
+ }
254
+ }
255
+ // Condition 3: Current files include a global config (single-file warning)
256
+ if (!hasGlobalConfig) {
257
+ for (const f of files) {
258
+ const basename = f.split("/").pop() ?? "";
259
+ if (GLOBAL_CONFIG_FILENAMES.has(basename)) {
260
+ hasGlobalConfig = true;
261
+ reasons.push(`editing global config \`${basename}\``);
262
+ break;
263
+ }
264
+ }
265
+ }
266
+ if (reasons.length > 0 && !_wasGroupWarned(allFiles)) {
267
+ _markGroupWarned(allFiles);
170
268
  ctx.ui.notify(`[shazam] Caution: ${reasons.join("; ")}. Run \`shazam_impact --files ${allFiles.join(" ")}\` to assess blast radius before editing.`, "warning");
171
269
  }
172
270
  });
@@ -1 +1 @@
1
- {"version":3,"file":"pre-edit.js","sourceRoot":"","sources":["../../hooks/pre-edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pre-edit.js","sourceRoot":"","sources":["../../hooks/pre-edit.ts"],"names":[],"mappings":"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"}
@@ -124,9 +124,9 @@ export function registerSafetyHooks(pi) {
124
124
  // -- Check 1: Destructive command detection --
125
125
  const destructive = detectDestructiveCommand(cmd);
126
126
  if (destructive) {
127
- const emoji = destructive.level === "HIGH" ? "[HIGH]" : "[MED]";
127
+ const levelTag = destructive.level === "HIGH" ? "HIGH" : "MED";
128
128
  const message = [
129
- `[${emoji}] Destructive command detected [${emoji}]`,
129
+ `[${levelTag}] Destructive command detected [${levelTag}]`,
130
130
  "",
131
131
  `Risk level: ${destructive.level}`,
132
132
  `Pattern: ${destructive.pattern}`,
@@ -1 +1 @@
1
- {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../hooks/safety.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safety.js","sourceRoot":"","sources":["../../hooks/safety.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shazam-guide.d.ts","sourceRoot":"","sources":["../../hooks/shazam-guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,0BAA0B,CAAC;AAsL/E,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA0E1D"}
1
+ {"version":3,"file":"shazam-guide.d.ts","sourceRoot":"","sources":["../../hooks/shazam-guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,0BAA0B,CAAC;AAuL/E,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAkF1D"}
@@ -4,6 +4,7 @@ import { existsSync } from "node:fs";
4
4
  import { readFileAdaptive } from "../core/encoding.js";
5
5
  import { join, extname } from "node:path";
6
6
  import { detectFormatters } from "../core/formatters.js";
7
+ import { hasRecentPassingVerify } from "./verify-state.js";
7
8
  const execFileAsync = promisify(execFile);
8
9
  /**
9
10
  * Check if a tool result contains caller count (>= 2, not >= 1) and suggest impact.
@@ -174,9 +175,14 @@ export function registerShazamGuide(pi) {
174
175
  const input = event.input;
175
176
  const filePath = extractFilePath(input);
176
177
  const formatted = filePath ? await autoFormatFile(filePath, ctx) : false;
177
- // If no native formatter found, suggest shazam_format
178
+ // If no native formatter found: check whether any formatter is configured
179
+ // in the project before suggesting shazam_format. If none is available,
180
+ // skip the suggestion entirely to avoid noise.
178
181
  if (!formatted) {
179
- ctx.ui.notify("run shazam_format to auto-format (prettier/ruff/gofmt/rustfmt)", "info");
182
+ const availableFormatters = detectFormatters(ctx.cwd);
183
+ if (availableFormatters.length > 0) {
184
+ ctx.ui.notify("run shazam_format to auto-format (prettier/ruff/gofmt/rustfmt)", "info");
185
+ }
180
186
  }
181
187
  // Check if multi-file edit was done -- suggest impact analysis
182
188
  if (hasMultiFileEdit(event.content)) {
@@ -213,9 +219,12 @@ export function registerShazamGuide(pi) {
213
219
  });
214
220
  pi.on("tool_call", (event, ctx) => {
215
221
  const name = event.toolName;
216
- // Before impact: suggest verifying first if there are uncommitted changes
222
+ // Before impact: suggest verifying first if there are uncommitted changes.
223
+ // Skip the tip when a recent PASS verify already exists (noise reduction).
217
224
  if (name === "shazam_impact") {
218
- ctx.ui.notify("tip: run shazam_verify first to establish a baseline before assessing impact", "info");
225
+ if (!hasRecentPassingVerify()) {
226
+ ctx.ui.notify("tip: run shazam_verify first to establish a baseline before assessing impact", "info");
227
+ }
219
228
  return;
220
229
  }
221
230
  // Before rename_symbol: suggest impact first
@@ -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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"}
@@ -1,8 +1,10 @@
1
1
  /**
2
- * pi-shazam hooks/stop-verify -- Remind to verify before ending turn.
2
+ * pi-shazam hooks/stop-verify -- Auto-verify guard at turn end.
3
3
  *
4
4
  * When the LLM tries to end its turn after making edits, this hook checks
5
- * if shazam_verify was run. If not, it sends a reminder message.
5
+ * if shazam_verify was run. If not, it injects a steer message that triggers
6
+ * a new turn with a verification instruction, forcing the agent to run
7
+ * shazam_verify before proceeding.
6
8
  *
7
9
  * This prevents the common pattern where LLM edits files and forgets
8
10
  * to check for errors before declaring "done".
@@ -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;AAW7D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA4DzD"}
1
+ {"version":3,"file":"stop-verify.d.ts","sourceRoot":"","sources":["../../hooks/stop-verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAe7D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAgFzD"}
@@ -1,8 +1,10 @@
1
1
  /**
2
- * pi-shazam hooks/stop-verify -- Remind to verify before ending turn.
2
+ * pi-shazam hooks/stop-verify -- Auto-verify guard at turn end.
3
3
  *
4
4
  * When the LLM tries to end its turn after making edits, this hook checks
5
- * if shazam_verify was run. If not, it sends a reminder message.
5
+ * if shazam_verify was run. If not, it injects a steer message that triggers
6
+ * a new turn with a verification instruction, forcing the agent to run
7
+ * shazam_verify before proceeding.
6
8
  *
7
9
  * This prevents the common pattern where LLM edits files and forgets
8
10
  * to check for errors before declaring "done".
@@ -12,6 +14,9 @@
12
14
  */
13
15
  import { getEditedFiles, clearEditedFiles } from "./pre-edit.js";
14
16
  import { markVerifyCalled, hasRecentVerify, onNewEdit, resetVerifyState, markReminderSent, wasReminderSent, } from "./verify-state.js";
17
+ /** Minimum interval between auto-verify steer messages (60 seconds). */
18
+ const REMINDER_DEBOUNCE_MS = 60 * 1000;
19
+ let _lastReminderTimestamp = 0;
15
20
  /**
16
21
  * Register the stop-verify hook.
17
22
  *
@@ -45,8 +50,10 @@ export function registerStopVerify(pi) {
45
50
  // Reset on session start
46
51
  pi.on("session_start", () => {
47
52
  resetVerifyState();
53
+ _lastReminderTimestamp = 0;
48
54
  });
49
- // Check on turn end
55
+ // Check on turn end: if unverified edits exist, inject a steer message
56
+ // that triggers a new turn instructing the agent to run shazam_verify.
50
57
  pi.on("turn_end", (_event, _ctx) => {
51
58
  // Check if there were file edits this session
52
59
  const editedFiles = getEditedFiles();
@@ -58,17 +65,32 @@ export function registerStopVerify(pi) {
58
65
  // Skip if a reminder was already sent for this batch of unverified edits
59
66
  if (wasReminderSent())
60
67
  return;
61
- // Send reminder via sendMessage (injected into next turn context)
62
- const fileList = editedFiles.length <= 3 ? editedFiles.map((f) => `\`${f}\``).join(", ") : `${editedFiles.length} files`;
68
+ // Debounce: skip if last reminder was within REMINDER_DEBOUNCE_MS
69
+ const now = Date.now();
70
+ if (now - _lastReminderTimestamp < REMINDER_DEBOUNCE_MS)
71
+ return;
72
+ _lastReminderTimestamp = now;
73
+ // Build a file list for the message
74
+ const fileList = editedFiles.length <= 3
75
+ ? editedFiles.map((f) => `\`${f}\``).join(", ")
76
+ : `${editedFiles.length} files`;
77
+ // Send a steer message that triggers a new turn, forcing the agent
78
+ // to run shazam_verify before continuing. deliverAs: "steer" makes
79
+ // the message more prominent; triggerTurn: true schedules an
80
+ // immediate internal continuation.
63
81
  pi.sendMessage({
64
82
  customType: "shazam-reminder",
65
83
  content: [
66
- "[shazam] Verification reminder",
84
+ "[shazam] Verification required",
67
85
  "",
68
86
  `You edited ${fileList} this session but haven't run \`shazam_verify\`.`,
69
- "Run it now to check for type errors, lint issues, and broken references.",
87
+ "Run \`shazam_verify\` now to check for type errors, lint issues, and broken references.",
88
+ "After verify passes, continue with your task.",
70
89
  ].join("\n"),
71
90
  display: false,
91
+ }, {
92
+ triggerTurn: true,
93
+ deliverAs: "steer",
72
94
  });
73
95
  markReminderSent();
74
96
  });
@@ -1 +1 @@
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,EACN,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GACf,MAAM,mBAAmB,CAAC;AAE3B;;;;;;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,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACpB,8DAA8D;gBAC9D,MAAM,IAAI,GACT,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;oBACjD,CAAC,CAAC,KAAK,CAAC,OAAO;yBACZ,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;yBACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;yBAClB,IAAI,CAAC,IAAI,CAAC;oBACb,CAAC,CAAC,SAAS,CAAC;gBACd,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvB,gBAAgB,EAAE,CAAC;YACpB,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,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,yEAAyE;QACzE,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;QAEH,gBAAgB,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"stop-verify.js","sourceRoot":"","sources":["../../hooks/stop-verify.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.18.0",
3
+ "version": "0.18.1",
4
4
  "description": "Pi coding agent native codebase awareness toolkit — 9 structural analysis tools. Also supports MCP (Cursor, Claude Desktop, Windsurf, etc.)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",