@gramatr/mcp 0.13.72 → 0.13.74

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.
@@ -3,11 +3,51 @@
3
3
  *
4
4
  * Enforces behavioral gates on dangerous git operations:
5
5
  * 1. git push to main/master — denied (use a PR)
6
- * 2. git tag — denied unless binaries are built for current version
7
- * 3. git push --force / git reset --hard — denied (requires explicit user approval)
6
+ * 2. git tag — denied unless binaries are built for current version.
7
+ * Supports both single-package npm libs and Turborepo / pnpm-workspace
8
+ * monorepos. Each workspace package that declares a `dist/`-targeted
9
+ * entry (`main`, `module`, `exports`, `bin`, `types` referencing
10
+ * `dist/...`) is verified independently. App packages that build to
11
+ * `.next/`, `out/`, etc. declare no `dist/` entry and are skipped.
12
+ * Stale builds — any `src/**\/*.ts` newer than the most recent file in
13
+ * `dist/` — are also rejected so a `git pull && git tag` without a
14
+ * rebuild is caught.
15
+ * 3. git push --force / git reset --hard — denied (requires explicit
16
+ * user approval)
8
17
  *
9
18
  * All other Bash commands are allowed unconditionally.
19
+ *
20
+ * No external deps: pure Node built-ins (fs, path).
21
+ */
22
+ export interface BuildCheckResult {
23
+ ok: boolean;
24
+ reason?: string;
25
+ }
26
+ /**
27
+ * True iff workDir is a monorepo (pnpm-workspace.yaml present, or
28
+ * package.json declares a non-empty `workspaces` array).
29
+ */
30
+ export declare function isMonorepo(workDir: string): boolean;
31
+ /**
32
+ * Returns absolute paths to each workspace package directory.
33
+ * Source priority: pnpm-workspace.yaml, then package.json `workspaces`.
34
+ */
35
+ export declare function listWorkspacePackages(workDir: string): string[];
36
+ /**
37
+ * True iff the package.json declares any `dist/`-targeted entry.
38
+ */
39
+ export declare function packageDeclaresDistEntry(pkgJson: Record<string, unknown>): boolean;
40
+ /**
41
+ * Verify a single package: dist/ exists, has .js files, and no src/**\/*.ts
42
+ * is newer than the newest dist/ file. Packages that don't declare a
43
+ * dist/ entry are skipped (ok:true).
44
+ */
45
+ export declare function verifyPackageBuilt(pkgPath: string): BuildCheckResult;
46
+ /**
47
+ * Top-level entry — verify build artifacts for the working tree before a
48
+ * tag is allowed. Single-package and monorepo aware.
10
49
  */
50
+ export declare function verifyBuildBeforeTag(workDir: string, version: string): BuildCheckResult;
11
51
  /**
12
52
  * Check whether a Bash command triggers any git behavioral gate.
13
53
  * Exported for direct unit testing.
@@ -1 +1 @@
1
- {"version":3,"file":"git-gate.d.ts","sourceRoot":"","sources":["../../src/hooks/git-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA0DH;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAmErC;AAID,wBAAsB,cAAc,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB1E"}
1
+ {"version":3,"file":"git-gate.d.ts","sourceRoot":"","sources":["../../src/hooks/git-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAqBH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyCD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAmBnD;AA4FD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAyC/D;AAkBD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAQlF;AA+CD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CA6CpE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAqBvF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAoErC;AAID,wBAAsB,cAAc,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB1E"}
@@ -3,12 +3,23 @@
3
3
  *
4
4
  * Enforces behavioral gates on dangerous git operations:
5
5
  * 1. git push to main/master — denied (use a PR)
6
- * 2. git tag — denied unless binaries are built for current version
7
- * 3. git push --force / git reset --hard — denied (requires explicit user approval)
6
+ * 2. git tag — denied unless binaries are built for current version.
7
+ * Supports both single-package npm libs and Turborepo / pnpm-workspace
8
+ * monorepos. Each workspace package that declares a `dist/`-targeted
9
+ * entry (`main`, `module`, `exports`, `bin`, `types` referencing
10
+ * `dist/...`) is verified independently. App packages that build to
11
+ * `.next/`, `out/`, etc. declare no `dist/` entry and are skipped.
12
+ * Stale builds — any `src/**\/*.ts` newer than the most recent file in
13
+ * `dist/` — are also rejected so a `git pull && git tag` without a
14
+ * rebuild is caught.
15
+ * 3. git push --force / git reset --hard — denied (requires explicit
16
+ * user approval)
8
17
  *
9
18
  * All other Bash commands are allowed unconditionally.
19
+ *
20
+ * No external deps: pure Node built-ins (fs, path).
10
21
  */
11
- import { existsSync, readFileSync } from "node:fs";
22
+ import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
12
23
  import { join } from "node:path";
13
24
  import { HOOK_STDIN_DEFAULT_TIMEOUT_MS } from "./generated/hook-timeouts.js";
14
25
  // ── Stdin ──
@@ -44,6 +55,313 @@ function buildPreToolUseOutput(allow, reason) {
44
55
  },
45
56
  };
46
57
  }
58
+ // ── Workspace / build verification helpers (exported for tests) ──
59
+ /**
60
+ * True iff workDir is a monorepo (pnpm-workspace.yaml present, or
61
+ * package.json declares a non-empty `workspaces` array).
62
+ */
63
+ export function isMonorepo(workDir) {
64
+ if (existsSync(join(workDir, "pnpm-workspace.yaml")))
65
+ return true;
66
+ try {
67
+ const pkg = JSON.parse(readFileSync(join(workDir, "package.json"), "utf8"));
68
+ if (Array.isArray(pkg.workspaces) && pkg.workspaces.length > 0)
69
+ return true;
70
+ if (pkg.workspaces &&
71
+ typeof pkg.workspaces === "object" &&
72
+ Array.isArray(pkg.workspaces.packages) &&
73
+ (pkg.workspaces.packages.length ?? 0) > 0) {
74
+ return true;
75
+ }
76
+ }
77
+ catch {
78
+ // ignore
79
+ }
80
+ return false;
81
+ }
82
+ /**
83
+ * Tiny YAML extractor: returns the strings from `packages:` array entries.
84
+ * Handles the simple shape used by pnpm-workspace.yaml. Returns null if the
85
+ * file uses something more complex (so callers can fall back).
86
+ */
87
+ function readPnpmWorkspacePatterns(workDir) {
88
+ const yamlPath = join(workDir, "pnpm-workspace.yaml");
89
+ if (!existsSync(yamlPath))
90
+ return null;
91
+ let body;
92
+ try {
93
+ body = readFileSync(yamlPath, "utf8");
94
+ }
95
+ catch {
96
+ return null;
97
+ }
98
+ const lines = body.split(/\r?\n/);
99
+ const patterns = [];
100
+ let inPackages = false;
101
+ for (const raw of lines) {
102
+ const line = raw.replace(/#.*$/, "").trimEnd();
103
+ if (!line.trim())
104
+ continue;
105
+ if (/^packages\s*:/.test(line)) {
106
+ inPackages = true;
107
+ continue;
108
+ }
109
+ if (inPackages) {
110
+ // Top-level key (no leading whitespace, ends with ':') ends the array.
111
+ if (/^[A-Za-z0-9_-]+\s*:/.test(line)) {
112
+ inPackages = false;
113
+ continue;
114
+ }
115
+ const m = line.match(/^\s*-\s*(?:"([^"]+)"|'([^']+)'|(\S+))\s*$/);
116
+ if (m) {
117
+ patterns.push(m[1] ?? m[2] ?? m[3] ?? "");
118
+ }
119
+ else {
120
+ // Unknown shape inside packages: bail out.
121
+ return null;
122
+ }
123
+ }
124
+ }
125
+ return patterns;
126
+ }
127
+ /**
128
+ * Expand a simple glob pattern into directory paths. Supports literal
129
+ * segments and single `*` wildcard segments only. Returns empty list if
130
+ * the pattern uses anything more complex (`**`, character classes, etc.)
131
+ * — caller can decide what to do.
132
+ */
133
+ function expandSimpleGlob(workDir, pattern) {
134
+ // Reject `**` and character classes: too complex.
135
+ if (pattern.includes("**") || /[\[\]{}]/.test(pattern))
136
+ return null;
137
+ const segments = pattern.split("/").filter((s) => s.length > 0);
138
+ let current = [workDir];
139
+ for (const seg of segments) {
140
+ const next = [];
141
+ if (seg === "*") {
142
+ for (const dir of current) {
143
+ let entries;
144
+ try {
145
+ entries = readdirSync(dir);
146
+ }
147
+ catch {
148
+ continue;
149
+ }
150
+ for (const entry of entries) {
151
+ const full = join(dir, entry);
152
+ try {
153
+ if (statSync(full).isDirectory())
154
+ next.push(full);
155
+ }
156
+ catch {
157
+ // skip unreadable
158
+ }
159
+ }
160
+ }
161
+ }
162
+ else if (seg.includes("*")) {
163
+ // Partial wildcard inside a segment — treat as too complex.
164
+ return null;
165
+ }
166
+ else {
167
+ for (const dir of current) {
168
+ const full = join(dir, seg);
169
+ try {
170
+ if (statSync(full).isDirectory())
171
+ next.push(full);
172
+ }
173
+ catch {
174
+ // skip
175
+ }
176
+ }
177
+ }
178
+ current = next;
179
+ }
180
+ return current;
181
+ }
182
+ /**
183
+ * Returns absolute paths to each workspace package directory.
184
+ * Source priority: pnpm-workspace.yaml, then package.json `workspaces`.
185
+ */
186
+ export function listWorkspacePackages(workDir) {
187
+ let patterns = readPnpmWorkspacePatterns(workDir);
188
+ if (!patterns) {
189
+ try {
190
+ const pkg = JSON.parse(readFileSync(join(workDir, "package.json"), "utf8"));
191
+ if (Array.isArray(pkg.workspaces)) {
192
+ patterns = pkg.workspaces.filter((p) => typeof p === "string");
193
+ }
194
+ else if (pkg.workspaces &&
195
+ typeof pkg.workspaces === "object" &&
196
+ Array.isArray(pkg.workspaces.packages)) {
197
+ patterns = (pkg.workspaces.packages).filter((p) => typeof p === "string");
198
+ }
199
+ }
200
+ catch {
201
+ patterns = null;
202
+ }
203
+ }
204
+ if (!patterns || patterns.length === 0)
205
+ return [];
206
+ const out = new Set();
207
+ for (const pat of patterns) {
208
+ const expanded = expandSimpleGlob(workDir, pat);
209
+ if (expanded === null) {
210
+ process.stderr.write(`[git-gate] complex glob "${pat}" — falling back to single-package check\n`);
211
+ return [];
212
+ }
213
+ for (const dir of expanded) {
214
+ // Only count directories that have a package.json
215
+ if (existsSync(join(dir, "package.json")))
216
+ out.add(dir);
217
+ }
218
+ }
219
+ return Array.from(out);
220
+ }
221
+ /**
222
+ * Walk an `exports` map looking for any string referencing `dist/`.
223
+ */
224
+ function exportsReferenceDist(value) {
225
+ if (typeof value === "string") {
226
+ return /(^|\/)dist\//.test(value);
227
+ }
228
+ if (Array.isArray(value)) {
229
+ return value.some(exportsReferenceDist);
230
+ }
231
+ if (value && typeof value === "object") {
232
+ return Object.values(value).some(exportsReferenceDist);
233
+ }
234
+ return false;
235
+ }
236
+ /**
237
+ * True iff the package.json declares any `dist/`-targeted entry.
238
+ */
239
+ export function packageDeclaresDistEntry(pkgJson) {
240
+ for (const field of ["main", "module", "types", "typings"]) {
241
+ const v = pkgJson[field];
242
+ if (typeof v === "string" && /(^|\/)dist\//.test(v))
243
+ return true;
244
+ }
245
+ if (exportsReferenceDist(pkgJson.exports))
246
+ return true;
247
+ if (exportsReferenceDist(pkgJson.bin))
248
+ return true;
249
+ return false;
250
+ }
251
+ /**
252
+ * Recursively find the newest mtime (ms) under a directory. Returns 0 if
253
+ * nothing matches. `predicate` filters file paths.
254
+ */
255
+ function newestMtimeUnder(dir, predicate, acc = { mtime: 0, path: "" }) {
256
+ let entries;
257
+ try {
258
+ entries = readdirSync(dir);
259
+ }
260
+ catch {
261
+ return acc;
262
+ }
263
+ for (const entry of entries) {
264
+ const full = join(dir, entry);
265
+ let s;
266
+ try {
267
+ s = statSync(full);
268
+ }
269
+ catch {
270
+ continue;
271
+ }
272
+ if (s.isDirectory()) {
273
+ // Skip nested node_modules
274
+ if (entry === "node_modules")
275
+ continue;
276
+ newestMtimeUnder(full, predicate, acc);
277
+ }
278
+ else if (s.isFile() && predicate(full)) {
279
+ const m = s.mtimeMs;
280
+ if (m > acc.mtime) {
281
+ acc.mtime = m;
282
+ acc.path = full;
283
+ }
284
+ }
285
+ }
286
+ return acc;
287
+ }
288
+ /**
289
+ * Returns true iff dist/ contains at least one .js file.
290
+ */
291
+ function distHasJs(distDir) {
292
+ return newestMtimeUnder(distDir, (p) => p.endsWith(".js")).mtime > 0;
293
+ }
294
+ /**
295
+ * Verify a single package: dist/ exists, has .js files, and no src/**\/*.ts
296
+ * is newer than the newest dist/ file. Packages that don't declare a
297
+ * dist/ entry are skipped (ok:true).
298
+ */
299
+ export function verifyPackageBuilt(pkgPath) {
300
+ const pkgJsonPath = join(pkgPath, "package.json");
301
+ let pkgJson;
302
+ try {
303
+ pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf8"));
304
+ }
305
+ catch {
306
+ // Not a real package — skip silently.
307
+ return { ok: true };
308
+ }
309
+ if (!packageDeclaresDistEntry(pkgJson))
310
+ return { ok: true };
311
+ const pkgName = typeof pkgJson.name === "string" && pkgJson.name.length > 0 ? pkgJson.name : pkgPath;
312
+ const distDir = join(pkgPath, "dist");
313
+ if (!existsSync(distDir)) {
314
+ return {
315
+ ok: false,
316
+ reason: `Run pnpm build before tagging. No dist/ directory in ${pkgName}.`,
317
+ };
318
+ }
319
+ const newestDist = newestMtimeUnder(distDir, (p) => p.endsWith(".js"));
320
+ if (newestDist.mtime === 0) {
321
+ return {
322
+ ok: false,
323
+ reason: `Run pnpm build before tagging. No .js files in dist/ for ${pkgName}.`,
324
+ };
325
+ }
326
+ const srcDir = join(pkgPath, "src");
327
+ if (existsSync(srcDir)) {
328
+ const newestSrc = newestMtimeUnder(srcDir, (p) => (p.endsWith(".ts") || p.endsWith(".tsx")) && !p.endsWith(".d.ts"));
329
+ if (newestSrc.mtime > newestDist.mtime) {
330
+ return {
331
+ ok: false,
332
+ reason: `Stale build for ${pkgName}: ${newestSrc.path} newer than dist/. ` +
333
+ `Re-run pnpm build.`,
334
+ };
335
+ }
336
+ }
337
+ return { ok: true };
338
+ }
339
+ /**
340
+ * Top-level entry — verify build artifacts for the working tree before a
341
+ * tag is allowed. Single-package and monorepo aware.
342
+ */
343
+ export function verifyBuildBeforeTag(workDir, version) {
344
+ if (!version) {
345
+ return {
346
+ ok: false,
347
+ reason: "Cannot read version from package.json. Run pnpm build before tagging.",
348
+ };
349
+ }
350
+ if (isMonorepo(workDir)) {
351
+ const pkgs = listWorkspacePackages(workDir);
352
+ if (pkgs.length === 0) {
353
+ // Fallback to single-package mode if we couldn't enumerate.
354
+ return verifyPackageBuilt(workDir);
355
+ }
356
+ for (const pkg of pkgs) {
357
+ const r = verifyPackageBuilt(pkg);
358
+ if (!r.ok)
359
+ return r;
360
+ }
361
+ return { ok: true };
362
+ }
363
+ return verifyPackageBuilt(workDir);
364
+ }
47
365
  /**
48
366
  * Check whether a Bash command triggers any git behavioral gate.
49
367
  * Exported for direct unit testing.
@@ -81,21 +399,10 @@ export function checkGitCommand(command, cwd) {
81
399
  if (/git\s+tag\b/.test(trimmed)) {
82
400
  const workDir = cwd || process.cwd();
83
401
  if (!existsSync(join(workDir, "Cargo.toml"))) {
402
+ let version;
84
403
  try {
85
404
  const pkg = JSON.parse(readFileSync(join(workDir, "package.json"), "utf8"));
86
- const version = pkg.version;
87
- if (!version) {
88
- return {
89
- allow: false,
90
- reason: "Cannot read version from package.json. Run pnpm build before tagging.",
91
- };
92
- }
93
- if (!existsSync(join(workDir, "dist"))) {
94
- return {
95
- allow: false,
96
- reason: `Run pnpm build and build-all-targets before tagging v${version}. No dist/ directory found.`,
97
- };
98
- }
405
+ version = pkg.version;
99
406
  }
100
407
  catch {
101
408
  return {
@@ -103,6 +410,16 @@ export function checkGitCommand(command, cwd) {
103
410
  reason: "Run pnpm build and build-all-targets before tagging. Could not verify build artifacts.",
104
411
  };
105
412
  }
413
+ if (!version) {
414
+ return {
415
+ allow: false,
416
+ reason: "Cannot read version from package.json. Run pnpm build before tagging.",
417
+ };
418
+ }
419
+ const result = verifyBuildBeforeTag(workDir, version);
420
+ if (!result.ok) {
421
+ return { allow: false, reason: result.reason };
422
+ }
106
423
  }
107
424
  }
108
425
  return { allow: true };
@@ -1 +1 @@
1
- {"version":3,"file":"git-gate.js","sourceRoot":"","sources":["../../src/hooks/git-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-gate.js","sourceRoot":"","sources":["../../src/hooks/git-gate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gramatr/mcp",
3
- "version": "0.13.72",
3
+ "version": "0.13.74",
4
4
  "description": "grāmatr — Intelligence middleware for AI agents. Pre-classifies every request, injects relevant memory and behavioral context, enforces data quality, and maintains session continuity across Claude, ChatGPT, Codex, Cursor, Gemini, and any MCP-compatible client.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "publishConfig": {