@vaultcompass/vault-guard-mcp 1.0.3 → 1.0.4

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.
Files changed (2) hide show
  1. package/dist/index.js +28 -4
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -86,7 +86,7 @@ async function scanWorkspaceDirectory(root, scanner, concurrency = 10) {
86
86
  }
87
87
 
88
88
  // src/server.ts
89
- var SERVER_VERSION = true ? "1.0.3" : "0.0.0-dev";
89
+ var SERVER_VERSION = true ? "1.0.4" : "0.0.0-dev";
90
90
  function makeScanner() {
91
91
  const cwd = process.cwd();
92
92
  let cfg;
@@ -110,7 +110,7 @@ function toolPayload(obj) {
110
110
  content: [{ type: "text", text: JSON.stringify(obj, null, 2) }]
111
111
  };
112
112
  }
113
- function createMcpServer() {
113
+ function createMcpServer(options = {}) {
114
114
  const server = new import_mcp.McpServer(
115
115
  { name: "vault-guard", version: SERVER_VERSION },
116
116
  {
@@ -120,7 +120,27 @@ function createMcpServer() {
120
120
  instructions: "Vault Guard MCP: scan workspaces/files/text for secrets (SARIF-shaped JSON), report token estimates, and record opt-in session/usage events to local ~/.vault-guard/usage.sqlite."
121
121
  }
122
122
  );
123
- const telemetry = new import_vault_guard_telemetry.TelemetryStore();
123
+ const telemetryFactory = options.telemetryFactory ?? (() => new import_vault_guard_telemetry.TelemetryStore());
124
+ let telemetry = null;
125
+ let telemetryUnavailable = false;
126
+ function getTelemetry() {
127
+ if (telemetry) return telemetry;
128
+ if (telemetryUnavailable) return null;
129
+ try {
130
+ telemetry = telemetryFactory();
131
+ return telemetry;
132
+ } catch (e) {
133
+ if (e instanceof import_vault_guard_telemetry.TelemetryUnavailableError) {
134
+ telemetryUnavailable = true;
135
+ process.stderr.write(
136
+ `vault-guard MCP: telemetry unavailable; session events will not be recorded: ${e.message}
137
+ `
138
+ );
139
+ return null;
140
+ }
141
+ throw e;
142
+ }
143
+ }
124
144
  const tokenCounter = new import_vault_guard_core2.TokenCounter();
125
145
  server.registerTool(
126
146
  "scan_workspace",
@@ -276,7 +296,11 @@ function createMcpServer() {
276
296
  }
277
297
  },
278
298
  async (args) => {
279
- telemetry.recordSession({
299
+ const store = getTelemetry();
300
+ if (!store) {
301
+ return toolPayload({ ok: false, telemetry: "unavailable" });
302
+ }
303
+ store.recordSession({
280
304
  eventType: args.event_type,
281
305
  model: args.model,
282
306
  cwd: args.cwd,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaultcompass/vault-guard-mcp",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Let Cursor and Claude scan AI-proposed edits for secrets before applying. Local MCP server.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -26,8 +26,8 @@
26
26
  "dependencies": {
27
27
  "@modelcontextprotocol/sdk": "^1.29.0",
28
28
  "zod": "^4.4.3",
29
- "@vaultcompass/vault-guard-telemetry": "1.0.3",
30
- "@vaultcompass/vault-guard-core": "1.0.3"
29
+ "@vaultcompass/vault-guard-core": "1.0.4",
30
+ "@vaultcompass/vault-guard-telemetry": "1.0.4"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/jest": "^30.0.0",