@gramatr/mcp 0.13.55 → 0.13.57

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.
@@ -0,0 +1,46 @@
1
+ /**
2
+ * install-detect.ts — detect how gramatr was installed.
3
+ *
4
+ * Distinguishes three layouts:
5
+ * - 'npm-global' — binary lives under an npm global prefix
6
+ * (e.g. /usr/local/lib/node_modules, ~/.npm-global/lib/…)
7
+ * - 'direct' — binary lives under ~/.gramatr/ (direct install)
8
+ * - 'unknown' — neither pattern matched
9
+ *
10
+ * Design constraints:
11
+ * - Never throws. Returns 'unknown' on any error.
12
+ * - Zero runtime dependencies beyond Node built-ins.
13
+ * - Works on Linux, macOS, Windows.
14
+ * - Fully injectable for unit tests (all I/O via options).
15
+ */
16
+ export type InstallLayout = "npm-global" | "direct" | "unknown";
17
+ export interface DetectInstallLayoutOptions {
18
+ /**
19
+ * Override the running binary path (default: process.argv[1]).
20
+ * In tests, pass a synthetic path to simulate different layouts.
21
+ */
22
+ argv1?: string;
23
+ /**
24
+ * Override the home directory (default: os.homedir()).
25
+ */
26
+ home?: string;
27
+ /**
28
+ * Override npm global prefix candidates.
29
+ * Defaults to a set of well-known platform-specific paths.
30
+ */
31
+ npmGlobalPrefixes?: string[];
32
+ }
33
+ /**
34
+ * Detect the install layout based on the running binary's path.
35
+ *
36
+ * Strategy:
37
+ * 1. Resolve process.argv[1] to an absolute path.
38
+ * 2. If it starts with ~/.gramatr/ → 'direct'
39
+ * 3. If it starts with any npm global prefix candidate → 'npm-global'
40
+ * We also accept paths that contain '/lib/node_modules/' or
41
+ * '/node_modules/.bin/' which are reliable npm-global fingerprints,
42
+ * regardless of the prefix root.
43
+ * 4. Otherwise → 'unknown'
44
+ */
45
+ export declare function detectInstallLayout(options?: DetectInstallLayoutOptions): InstallLayout;
46
+ //# sourceMappingURL=install-detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-detect.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/install-detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEhE,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAoDD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,aAAa,CA0C3F"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * install-detect.ts — detect how gramatr was installed.
3
+ *
4
+ * Distinguishes three layouts:
5
+ * - 'npm-global' — binary lives under an npm global prefix
6
+ * (e.g. /usr/local/lib/node_modules, ~/.npm-global/lib/…)
7
+ * - 'direct' — binary lives under ~/.gramatr/ (direct install)
8
+ * - 'unknown' — neither pattern matched
9
+ *
10
+ * Design constraints:
11
+ * - Never throws. Returns 'unknown' on any error.
12
+ * - Zero runtime dependencies beyond Node built-ins.
13
+ * - Works on Linux, macOS, Windows.
14
+ * - Fully injectable for unit tests (all I/O via options).
15
+ */
16
+ import { homedir } from "node:os";
17
+ import { join, resolve } from "node:path";
18
+ /**
19
+ * Compute the default npm global prefix candidates for the current
20
+ * platform. These are the directory roots under which `npm i -g` places
21
+ * packages (i.e. `{prefix}/lib/node_modules/{pkg}`).
22
+ *
23
+ * We include:
24
+ * - npm_config_prefix env var (set by npm when running scripts)
25
+ * - npm_config_globalconfig env var prefix (indirect indicator)
26
+ * - Well-known platform paths: /usr/local, /usr, /opt/homebrew
27
+ * - ~/.npm-global (common nvm / manual prefix)
28
+ * - $NVM_DIR/versions/node/{version} paths
29
+ * - $VOLTA_HOME / .volta paths
30
+ * - Derived from $PATH: any bin dir whose parent looks like an npm prefix
31
+ */
32
+ function defaultNpmGlobalPrefixes(home) {
33
+ const candidates = [];
34
+ // 1. npm sets npm_config_prefix when it runs scripts.
35
+ const envPrefix = process.env["npm_config_prefix"];
36
+ if (envPrefix) {
37
+ candidates.push(envPrefix);
38
+ }
39
+ // 2. Common fixed system prefixes.
40
+ candidates.push("/usr/local", "/usr", "/opt/homebrew");
41
+ // 3. ~/.npm-global — conventional manual global prefix.
42
+ candidates.push(join(home, ".npm-global"));
43
+ // 4. NVM: $NVM_DIR/versions/node — each version is a prefix.
44
+ const nvmDir = process.env["NVM_DIR"];
45
+ if (nvmDir) {
46
+ candidates.push(join(nvmDir, "versions", "node"));
47
+ }
48
+ // 5. Volta: ~/.volta/tools/image/node
49
+ const voltaHome = process.env["VOLTA_HOME"] ?? join(home, ".volta");
50
+ candidates.push(join(voltaHome, "tools", "image", "node"));
51
+ // 6. Windows: %APPDATA%\npm
52
+ if (process.platform === "win32") {
53
+ const appdata = process.env["APPDATA"];
54
+ if (appdata) {
55
+ candidates.push(join(appdata, "npm"));
56
+ }
57
+ }
58
+ return candidates;
59
+ }
60
+ /**
61
+ * Detect the install layout based on the running binary's path.
62
+ *
63
+ * Strategy:
64
+ * 1. Resolve process.argv[1] to an absolute path.
65
+ * 2. If it starts with ~/.gramatr/ → 'direct'
66
+ * 3. If it starts with any npm global prefix candidate → 'npm-global'
67
+ * We also accept paths that contain '/lib/node_modules/' or
68
+ * '/node_modules/.bin/' which are reliable npm-global fingerprints,
69
+ * regardless of the prefix root.
70
+ * 4. Otherwise → 'unknown'
71
+ */
72
+ export function detectInstallLayout(options = {}) {
73
+ try {
74
+ const home = options.home ?? homedir();
75
+ const argv1 = options.argv1 ?? process.argv[1];
76
+ if (typeof argv1 !== "string" || argv1 === "")
77
+ return "unknown";
78
+ const binaryPath = resolve(argv1);
79
+ // Check for direct ~/.gramatr/ install first — more specific.
80
+ const directRoot = join(home, ".gramatr") + "/";
81
+ if (binaryPath.startsWith(directRoot) || binaryPath === join(home, ".gramatr")) {
82
+ return "direct";
83
+ }
84
+ // Fingerprint: paths that npm places binaries in always contain one of
85
+ // these substrings on any platform.
86
+ const npmFingerprints = [
87
+ "/lib/node_modules/",
88
+ "/node_modules/.bin/",
89
+ "\\node_modules\\.bin\\",
90
+ "\\lib\\node_modules\\",
91
+ ];
92
+ for (const fp of npmFingerprints) {
93
+ if (binaryPath.includes(fp)) {
94
+ return "npm-global";
95
+ }
96
+ }
97
+ // Check against known prefix candidates (prefix + any of its subdirs).
98
+ const prefixes = options.npmGlobalPrefixes ?? defaultNpmGlobalPrefixes(home);
99
+ for (const prefix of prefixes) {
100
+ if (!prefix)
101
+ continue;
102
+ const normalised = prefix.endsWith("/") ? prefix : prefix + "/";
103
+ if (binaryPath.startsWith(normalised)) {
104
+ return "npm-global";
105
+ }
106
+ }
107
+ return "unknown";
108
+ }
109
+ catch {
110
+ return "unknown";
111
+ }
112
+ }
113
+ //# sourceMappingURL=install-detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-detect.js","sourceRoot":"","sources":["../../../src/hooks/lib/install-detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqB1C;;;;;;;;;;;;;GAaG;AACH,SAAS,wBAAwB,CAAC,IAAY;IAC5C,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,sDAAsD;IACtD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACnD,IAAI,SAAS,EAAE,CAAC;QACd,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,mCAAmC;IACnC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAEvD,wDAAwD;IACxD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAE3C,6DAA6D;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,sCAAsC;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3D,4BAA4B;IAC5B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAsC,EAAE;IAC1E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,SAAS,CAAC;QAEhE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAElC,8DAA8D;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC;QAChD,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;YAC/E,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,uEAAuE;QACvE,oCAAoC;QACpC,MAAM,eAAe,GAAG;YACtB,oBAAoB;YACpB,qBAAqB;YACrB,wBAAwB;YACxB,uBAAuB;SACxB,CAAC;QACF,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;YACjC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC7E,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;YAChE,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -11,6 +11,8 @@
11
11
  * - Fast cache-hit path (no network, no heavy work).
12
12
  * - Zero new runtime dependencies. Uses global fetch (Node 18+).
13
13
  */
14
+ import { type InstallLayout } from "./install-detect.js";
15
+ export type { InstallLayout };
14
16
  export interface VersionCheckResult {
15
17
  latestVersion: string;
16
18
  installedVersion: string;
@@ -60,26 +62,42 @@ export interface AutoUpgradeResult {
60
62
  triggered: boolean;
61
63
  version: string;
62
64
  reason?: string;
65
+ /** The detected install layout that determined the upgrade decision. */
66
+ layout?: InstallLayout;
63
67
  }
68
+ /**
69
+ * Format the hint message shown when auto-upgrade is skipped because the
70
+ * package was installed via `npm i -g` or via an unknown layout.
71
+ *
72
+ * Safe to call from any hook — no I/O, no side effects.
73
+ */
74
+ export declare function formatUpgradeHint(installed: string, latest: string): string;
64
75
  /**
65
76
  * Auto-upgrade gramatr when a newer version is available.
66
77
  *
67
- * Spawns `npx @gramatr/mcp@{version} install claude-code --yes` as a
68
- * detached background process. The install is idempotent: copies files to
69
- * ~/.gramatr/, merges hooks into ~/.claude/settings.json, re-registers MCP.
70
- * Existing auth token and URL are preserved (merge, not overwrite).
78
+ * Behaviour depends on the detected install layout:
71
79
  *
72
- * The upgrade runs in the background so it doesn't block session start.
73
- * New hook code won't take effect until the user restarts Claude Code.
80
+ * 'direct' — Spawns `npx @gramatr/mcp@{version} install claude-code
81
+ * --yes` as a detached background process. Files are written
82
+ * to ~/.gramatr/. New hook code takes effect after restart.
83
+ * 'npm-global' — Skips the background spawn entirely (writing to ~/.gramatr/
84
+ * has no effect when the on-PATH binary is npm-managed). The
85
+ * caller should surface formatUpgradeHint() instead.
86
+ * 'unknown' — Same as 'npm-global': skip, let caller surface the hint.
74
87
  *
75
88
  * Safety:
76
- * - Lock file prevents concurrent upgrades (10min TTL)
77
- * - --yes flag ensures non-interactive (no stdin prompts)
78
- * - Detached + unref'd so the parent process can exit
79
- * - Never throws returns result indicating what happened
89
+ * - Layout detection runs before any I/O.
90
+ * - Lock file prevents concurrent upgrades (10min TTL).
91
+ * - --yes flag ensures non-interactive (no stdin prompts).
92
+ * - Detached + unref'd so the parent process can exit.
93
+ * - Never throws — returns result indicating what happened.
80
94
  */
81
95
  export declare function autoUpgrade(latestVersion: string, options?: {
82
96
  stream?: NodeJS.WritableStream;
83
97
  lockPath?: string;
98
+ /** Override layout detection for tests. Pass undefined to auto-detect. */
99
+ layout?: InstallLayout;
100
+ /** Override argv[1] for layout detection (used in tests). */
101
+ argv1?: string;
84
102
  }): AutoUpgradeResult;
85
103
  //# sourceMappingURL=version-check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/version-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAQD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAW5D;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAE7D;AA8CD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAiCpC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,GAAE,MAAuB,GAAG,IAAI,CAQ5F;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,EAC1B,SAAS,GAAE,MAAuB,GACjC,OAAO,CAKT;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBnF;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;CAAO,GACnE,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAcpC;AA+BD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CACzB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAClE,iBAAiB,CA6CnB"}
1
+ {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/version-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE9E,YAAY,EAAE,aAAa,EAAE,CAAC;AAI9B,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAQD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAW5D;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAE7D;AA8CD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAiCpC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,GAAE,MAAuB,GAAG,IAAI,CAQ5F;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,EAC1B,SAAS,GAAE,MAAuB,GACjC,OAAO,CAKT;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBnF;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;CAAO,GACnE,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAcpC;AA+BD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK3E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CACzB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,GACL,iBAAiB,CAsEnB"}
@@ -11,12 +11,13 @@
11
11
  * - Fast cache-hit path (no network, no heavy work).
12
12
  * - Zero new runtime dependencies. Uses global fetch (Node 18+).
13
13
  */
14
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
15
- import { dirname, join } from 'path';
16
- import { homedir } from 'os';
17
- import { spawn } from 'child_process';
18
- import { VERSION_FETCH_TIMEOUT_MS, VERSION_CACHE_TTL_MS } from '../generated/hook-timeouts.js';
19
- const REGISTRY_URL = 'https://registry.npmjs.org/@gramatr%2fmcp/latest';
14
+ import { spawn } from "child_process";
15
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
16
+ import { homedir } from "os";
17
+ import { dirname, join } from "path";
18
+ import { VERSION_CACHE_TTL_MS, VERSION_FETCH_TIMEOUT_MS } from "../generated/hook-timeouts.js";
19
+ import { detectInstallLayout } from "./install-detect.js";
20
+ const REGISTRY_URL = "https://registry.npmjs.org/@gramatr%2fmcp/latest";
20
21
  /**
21
22
  * Compare two semver-style version strings ("X.Y.Z").
22
23
  * Returns:
@@ -27,8 +28,8 @@ const REGISTRY_URL = 'https://registry.npmjs.org/@gramatr%2fmcp/latest';
27
28
  * Non-numeric or missing segments are treated as 0.
28
29
  */
29
30
  export function compareVersions(a, b) {
30
- const pa = a.split('.').map((x) => parseInt(x, 10) || 0);
31
- const pb = b.split('.').map((x) => parseInt(x, 10) || 0);
31
+ const pa = a.split(".").map((x) => parseInt(x, 10) || 0);
32
+ const pb = b.split(".").map((x) => parseInt(x, 10) || 0);
32
33
  const len = Math.max(pa.length, pb.length);
33
34
  for (let i = 0; i < len; i++) {
34
35
  const av = pa[i] ?? 0;
@@ -41,15 +42,15 @@ export function compareVersions(a, b) {
41
42
  return 0;
42
43
  }
43
44
  export function getCachePath(home = homedir()) {
44
- return join(home, '.gramatr', '.cache', 'version-check.json');
45
+ return join(home, ".gramatr", ".cache", "version-check.json");
45
46
  }
46
47
  function readCache(path) {
47
48
  try {
48
49
  if (!existsSync(path))
49
50
  return null;
50
- const raw = readFileSync(path, 'utf8');
51
+ const raw = readFileSync(path, "utf8");
51
52
  const parsed = JSON.parse(raw);
52
- if (typeof parsed.latestVersion !== 'string' || typeof parsed.fetchedAt !== 'number') {
53
+ if (typeof parsed.latestVersion !== "string" || typeof parsed.fetchedAt !== "number") {
53
54
  return null;
54
55
  }
55
56
  return parsed;
@@ -61,7 +62,7 @@ function readCache(path) {
61
62
  function writeCache(path, data) {
62
63
  try {
63
64
  mkdirSync(dirname(path), { recursive: true });
64
- writeFileSync(path, JSON.stringify(data, null, 2) + '\n', 'utf8');
65
+ writeFileSync(path, JSON.stringify(data, null, 2) + "\n", "utf8");
65
66
  }
66
67
  catch {
67
68
  // Cache is best-effort. Silent failure is acceptable.
@@ -74,12 +75,12 @@ async function fetchLatestVersion() {
74
75
  try {
75
76
  const res = await fetch(REGISTRY_URL, {
76
77
  signal: controller.signal,
77
- headers: { Accept: 'application/json' },
78
+ headers: { Accept: "application/json" },
78
79
  });
79
80
  if (!res.ok)
80
81
  return null;
81
82
  const body = (await res.json());
82
- if (typeof body?.version !== 'string')
83
+ if (typeof body?.version !== "string")
83
84
  return null;
84
85
  return body.version;
85
86
  }
@@ -155,25 +156,25 @@ export function shouldNotify(result, cachePath = getCachePath()) {
155
156
  * (must be stderr — stdout is reserved for Claude context).
156
157
  */
157
158
  export function formatUpgradeNotification(installed, latest) {
158
- const bar = '\u2501'.repeat(60);
159
+ const bar = "\u2501".repeat(60);
159
160
  return [
160
161
  bar,
161
- ' gramatr update available',
162
- '',
162
+ " gramatr update available",
163
+ "",
163
164
  ` Installed: ${installed}`,
164
165
  ` Latest: ${latest}`,
165
- '',
166
- ' To upgrade:',
167
- ' 1. Type /exit to leave Claude Code',
168
- ' 2. Run: npm install -g @gramatr/mcp@latest',
169
- ' 3. If gramatr --version still shows the old version: hash -r (bash) or rehash (zsh)',
170
- ' 4. Restart: claude --resume',
171
- '',
166
+ "",
167
+ " To upgrade:",
168
+ " 1. Type /exit to leave Claude Code",
169
+ " 2. Run: npm install -g @gramatr/mcp@latest",
170
+ " 3. If gramatr --version still shows the old version: hash -r (bash) or rehash (zsh)",
171
+ " 4. Restart: claude --resume",
172
+ "",
172
173
  " Why restart? gramatr's hooks are loaded by Claude Code at",
173
- ' session start. New hook code requires a fresh session.',
174
+ " session start. New hook code requires a fresh session.",
174
175
  bar,
175
- '',
176
- ].join('\n');
176
+ "",
177
+ ].join("\n");
177
178
  }
178
179
  /**
179
180
  * One-shot helper for hooks: check and, if appropriate, print the
@@ -200,15 +201,15 @@ export async function runVersionCheckAndNotify(installedVersion, options = {}) {
200
201
  // ── Auto-upgrade ──────────────────────────────────────────────────────────
201
202
  const UPGRADE_LOCK_TTL_MS = 10 * 60 * 1000; // 10 minutes — prevent concurrent upgrades
202
203
  function getUpgradeLockPath(home = homedir()) {
203
- return join(home, '.gramatr', '.cache', 'upgrade.lock');
204
+ return join(home, ".gramatr", ".cache", "upgrade.lock");
204
205
  }
205
206
  function isUpgradeLocked(lockPath = getUpgradeLockPath()) {
206
207
  try {
207
208
  if (!existsSync(lockPath))
208
209
  return false;
209
- const raw = readFileSync(lockPath, 'utf8');
210
+ const raw = readFileSync(lockPath, "utf8");
210
211
  const lock = JSON.parse(raw);
211
- if (typeof lock.startedAt !== 'number')
212
+ if (typeof lock.startedAt !== "number")
212
213
  return false;
213
214
  return Date.now() - lock.startedAt < UPGRADE_LOCK_TTL_MS;
214
215
  }
@@ -219,63 +220,98 @@ function isUpgradeLocked(lockPath = getUpgradeLockPath()) {
219
220
  function writeUpgradeLock(version, lockPath = getUpgradeLockPath()) {
220
221
  try {
221
222
  mkdirSync(dirname(lockPath), { recursive: true });
222
- writeFileSync(lockPath, JSON.stringify({ version, startedAt: Date.now() }) + '\n');
223
+ writeFileSync(lockPath, JSON.stringify({ version, startedAt: Date.now() }) + "\n");
223
224
  }
224
225
  catch {
225
226
  // Best-effort.
226
227
  }
227
228
  }
229
+ /**
230
+ * Format the hint message shown when auto-upgrade is skipped because the
231
+ * package was installed via `npm i -g` or via an unknown layout.
232
+ *
233
+ * Safe to call from any hook — no I/O, no side effects.
234
+ */
235
+ export function formatUpgradeHint(installed, latest) {
236
+ return (`gramatr update available: v${installed} → v${latest}\n` +
237
+ `To upgrade: npm i -g @gramatr/mcp@latest`);
238
+ }
228
239
  /**
229
240
  * Auto-upgrade gramatr when a newer version is available.
230
241
  *
231
- * Spawns `npx @gramatr/mcp@{version} install claude-code --yes` as a
232
- * detached background process. The install is idempotent: copies files to
233
- * ~/.gramatr/, merges hooks into ~/.claude/settings.json, re-registers MCP.
234
- * Existing auth token and URL are preserved (merge, not overwrite).
242
+ * Behaviour depends on the detected install layout:
235
243
  *
236
- * The upgrade runs in the background so it doesn't block session start.
237
- * New hook code won't take effect until the user restarts Claude Code.
244
+ * 'direct' — Spawns `npx @gramatr/mcp@{version} install claude-code
245
+ * --yes` as a detached background process. Files are written
246
+ * to ~/.gramatr/. New hook code takes effect after restart.
247
+ * 'npm-global' — Skips the background spawn entirely (writing to ~/.gramatr/
248
+ * has no effect when the on-PATH binary is npm-managed). The
249
+ * caller should surface formatUpgradeHint() instead.
250
+ * 'unknown' — Same as 'npm-global': skip, let caller surface the hint.
238
251
  *
239
252
  * Safety:
240
- * - Lock file prevents concurrent upgrades (10min TTL)
241
- * - --yes flag ensures non-interactive (no stdin prompts)
242
- * - Detached + unref'd so the parent process can exit
243
- * - Never throws returns result indicating what happened
253
+ * - Layout detection runs before any I/O.
254
+ * - Lock file prevents concurrent upgrades (10min TTL).
255
+ * - --yes flag ensures non-interactive (no stdin prompts).
256
+ * - Detached + unref'd so the parent process can exit.
257
+ * - Never throws — returns result indicating what happened.
244
258
  */
245
259
  export function autoUpgrade(latestVersion, options = {}) {
246
260
  const stream = options.stream ?? process.stderr;
247
261
  const lockPath = options.lockPath ?? getUpgradeLockPath();
262
+ // Detect (or accept an injected) install layout before touching the lock.
263
+ const layout = options.layout ?? detectInstallLayout({ argv1: options.argv1 });
264
+ if (layout === "npm-global" || layout === "unknown") {
265
+ return {
266
+ triggered: false,
267
+ version: latestVersion,
268
+ reason: layout === "npm-global"
269
+ ? "npm-global install — run: npm i -g @gramatr/mcp@latest"
270
+ : "unknown install layout — run: npm i -g @gramatr/mcp@latest",
271
+ layout,
272
+ };
273
+ }
248
274
  if (isUpgradeLocked(lockPath)) {
249
- return { triggered: false, version: latestVersion, reason: 'upgrade already in progress' };
275
+ return {
276
+ triggered: false,
277
+ version: latestVersion,
278
+ reason: "upgrade already in progress",
279
+ layout,
280
+ };
250
281
  }
251
282
  writeUpgradeLock(latestVersion, lockPath);
252
283
  try {
253
- const npxBin = process.platform === 'win32' ? 'npx.cmd' : 'npx';
254
- const child = spawn(npxBin, ['@gramatr/mcp@' + latestVersion, 'install', 'claude-code', '--yes'], {
284
+ const npxBin = process.platform === "win32" ? "npx.cmd" : "npx";
285
+ const child = spawn(npxBin, ["@gramatr/mcp@" + latestVersion, "install", "claude-code", "--yes"], {
255
286
  detached: true,
256
- stdio: 'ignore',
257
- env: { ...process.env, GRAMATR_AUTO_UPGRADE: '1' },
287
+ stdio: "ignore",
288
+ env: { ...process.env, GRAMATR_AUTO_UPGRADE: "1" },
258
289
  });
259
290
  child.unref();
260
- const bar = ''.repeat(60);
291
+ const bar = "".repeat(60);
261
292
  stream.write([
262
- '',
293
+ "",
263
294
  bar,
264
295
  ` gramatr upgrading: v${latestVersion} — getting smarter`,
265
- '',
266
- ' Downloading and installing in the background...',
267
- ' When done, restart Claude Code to activate new hooks.',
268
- '',
269
- ' After restart, if gramatr --version still shows the old version:',
270
- ' hash -r # bash',
271
- ' rehash # zsh',
296
+ "",
297
+ " Downloading and installing in the background...",
298
+ " When done, restart Claude Code to activate new hooks.",
299
+ "",
300
+ " After restart, if gramatr --version still shows the old version:",
301
+ " hash -r # bash",
302
+ " rehash # zsh",
272
303
  bar,
273
- '',
274
- ].join('\n'));
275
- return { triggered: true, version: latestVersion };
304
+ "",
305
+ ].join("\n"));
306
+ return { triggered: true, version: latestVersion, layout };
276
307
  }
277
308
  catch (err) {
278
- return { triggered: false, version: latestVersion, reason: err?.message || 'spawn failed' };
309
+ return {
310
+ triggered: false,
311
+ version: latestVersion,
312
+ reason: err?.message || "spawn failed",
313
+ layout,
314
+ };
279
315
  }
280
316
  }
281
317
  //# sourceMappingURL=version-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../../src/hooks/lib/version-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../../src/hooks/lib/version-check.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/hooks/session-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqXH;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAud/E"}
1
+ {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/hooks/session-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAsYH;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAke/E"}
@@ -19,11 +19,12 @@ import { normalizeSessionStartResponse, persistSessionRegistration, prepareProje
19
19
  /** Swallow any rejection from drainOutbox — best-effort at session start. */
20
20
  function swallowDrainError(_err) { }
21
21
  import { getGramatrDirFromEnv, getGramatrUrlFromEnv, getHomeDir } from "../config-runtime.js";
22
+ import { SESSION_START_REMOTE_TIMEOUT_MS } from "./generated/hook-timeouts.js";
22
23
  import { resolveHookClientRuntime } from "./lib/client-runtime.js";
24
+ import { detectInstallLayout } from "./lib/install-detect.js";
23
25
  import { startPeriodicSync, syncProjectsFromServer } from "./lib/sync-projects.js";
24
- import { SESSION_START_REMOTE_TIMEOUT_MS } from "./generated/hook-timeouts.js";
25
26
  import { VERSION } from "./lib/version.js";
26
- import { autoUpgrade, runVersionCheckAndNotify } from "./lib/version-check.js";
27
+ import { autoUpgrade, formatUpgradeHint, runVersionCheckAndNotify } from "./lib/version-check.js";
27
28
  // ── stdout (Claude context injection) ──
28
29
  // Claude Code captures stdout from SessionStart hooks and injects it as context.
29
30
  // stderr (via log()) is for terminal display only.
@@ -160,17 +161,17 @@ function syncRatingsInBackground() {
160
161
  // ── Schema version drift check ──
161
162
  async function checkSchemaVersionDrift() {
162
163
  try {
163
- const { resolveMcpUrl } = await import('./lib/gramatr-hook-utils.js');
164
- const baseUrl = resolveMcpUrl().replace(/\/mcp$/, '');
164
+ const { resolveMcpUrl } = await import("./lib/gramatr-hook-utils.js");
165
+ const baseUrl = resolveMcpUrl().replace(/\/mcp$/, "");
165
166
  const res = await fetch(`${baseUrl}/api/v1/stats`, { signal: AbortSignal.timeout(2000) });
166
167
  if (!res.ok)
167
168
  return;
168
- const data = await res.json();
169
- const serverVersion = typeof data['server_version'] === 'string' ? data['server_version'] : null;
169
+ const data = (await res.json());
170
+ const serverVersion = typeof data["server_version"] === "string" ? data["server_version"] : null;
170
171
  if (!serverVersion)
171
172
  return;
172
- const clientMinor = parseInt(VERSION.split('.')[1] ?? '0', 10);
173
- const serverMinor = parseInt(serverVersion.split('.')[1] ?? '0', 10);
173
+ const clientMinor = parseInt(VERSION.split(".")[1] ?? "0", 10);
174
+ const serverMinor = parseInt(serverVersion.split(".")[1] ?? "0", 10);
174
175
  if (serverMinor > clientMinor) {
175
176
  process.stderr.write(`[gramatr] Schema drift warning: server is v${serverVersion}, client schema-constants is v${VERSION}. ` +
176
177
  `Run \`npm install -g @gramatr/mcp@latest\` to update.\n`);
@@ -194,10 +195,10 @@ async function checkSchemaVersionDrift() {
194
195
  */
195
196
  function healUngracefulShutdown(cwd) {
196
197
  try {
197
- const claudeJsonPath = join(getHomeDir(), '.claude.json');
198
+ const claudeJsonPath = join(getHomeDir(), ".claude.json");
198
199
  if (!existsSync(claudeJsonPath))
199
200
  return;
200
- const raw = readFileSync(claudeJsonPath, 'utf8');
201
+ const raw = readFileSync(claudeJsonPath, "utf8");
201
202
  let config;
202
203
  try {
203
204
  config = JSON.parse(raw);
@@ -205,28 +206,28 @@ function healUngracefulShutdown(cwd) {
205
206
  catch {
206
207
  return;
207
208
  }
208
- const projects = config['projects'];
209
+ const projects = config["projects"];
209
210
  if (!projects)
210
211
  return;
211
212
  const projectEntry = projects[cwd];
212
213
  if (!projectEntry)
213
214
  return;
214
- if (projectEntry['lastGracefulShutdown'] !== false)
215
+ if (projectEntry["lastGracefulShutdown"] !== false)
215
216
  return;
216
- const lastSessionId = projectEntry['lastSessionId'];
217
+ const lastSessionId = projectEntry["lastSessionId"];
217
218
  if (!lastSessionId)
218
219
  return;
219
220
  // Check if the referenced transcript file exists
220
221
  // Claude Code stores transcripts at ~/.claude/projects/<encoded-path>/<sessionId>.jsonl
221
- const encodedPath = cwd.replace(/\//g, '-');
222
- const transcriptPath = join(getHomeDir(), '.claude', 'projects', encodedPath, `${lastSessionId}.jsonl`);
222
+ const encodedPath = cwd.replace(/\//g, "-");
223
+ const transcriptPath = join(getHomeDir(), ".claude", "projects", encodedPath, `${lastSessionId}.jsonl`);
223
224
  if (!existsSync(transcriptPath)) {
224
225
  // Transcript is gone — patch the entry so Claude doesn't hang next startup
225
- projectEntry['lastGracefulShutdown'] = true;
226
- projectEntry['lastSessionId'] = null;
226
+ projectEntry["lastGracefulShutdown"] = true;
227
+ projectEntry["lastSessionId"] = null;
227
228
  try {
228
- writeFileSync(claudeJsonPath, JSON.stringify(config, null, 2), 'utf8');
229
- log(' Patched stale lastGracefulShutdown entry (transcript missing) — next startup will be clean');
229
+ writeFileSync(claudeJsonPath, JSON.stringify(config, null, 2), "utf8");
230
+ log(" Patched stale lastGracefulShutdown entry (transcript missing) — next startup will be clean");
230
231
  }
231
232
  catch {
232
233
  // Non-fatal — best effort
@@ -263,7 +264,7 @@ async function checkIdentityAndNotify(serverHealthy) {
263
264
  });
264
265
  if (!res.ok)
265
266
  return;
266
- const data = await res.json();
267
+ const data = (await res.json());
267
268
  if (data.reauth_required === true) {
268
269
  log("");
269
270
  log("⚠ grāmatr requires re-authentication.");
@@ -372,10 +373,10 @@ export async function runSessionStartHook(_args = []) {
372
373
  // Sprint 1: ensure daemon is running before making any remote tool calls.
373
374
  // Only session-start is responsible for launching the daemon.
374
375
  try {
375
- const { isDaemonRunning, launchDaemon, waitForSocket } = await import('../daemon/startup.js');
376
+ const { isDaemonRunning, launchDaemon, waitForSocket } = await import("../daemon/startup.js");
376
377
  if (!isDaemonRunning()) {
377
378
  const result = launchDaemon();
378
- if (result === 'launched') {
379
+ if (result === "launched") {
379
380
  await waitForSocket(3000);
380
381
  }
381
382
  }
@@ -464,9 +465,9 @@ export async function runSessionStartHook(_args = []) {
464
465
  await pushSessionContextToLocal(sessionCtx);
465
466
  // Orchestration task pickup — check if this session should execute a queued task
466
467
  try {
467
- const { pickupOrchestrationTask } = await import('./lib/orchestration-pickup.js');
468
+ const { pickupOrchestrationTask } = await import("./lib/orchestration-pickup.js");
468
469
  const pickup = await pickupOrchestrationTask({
469
- projectId: projectId ?? '',
470
+ projectId: projectId ?? "",
470
471
  sessionId,
471
472
  });
472
473
  if (pickup) {
@@ -658,14 +659,16 @@ export async function runSessionStartHook(_args = []) {
658
659
  log(` ${line}`);
659
660
  }
660
661
  }
661
- // Opportunistic version check + auto-upgrade.
662
- // 1. Check npm registry for newer @gramatr/mcp
663
- // 2. If outdated, auto-install in background (detached, non-interactive)
664
- // 3. Inject context so Claude tells the user to restart for new hooks
662
+ // Opportunistic version check + layout-aware upgrade.
663
+ // 1. Detect install layout (npm-global vs direct vs unknown).
664
+ // 2. Check npm registry for newer @gramatr/mcp.
665
+ // 3a. npm-global / unknown: never write files surface a hint instead.
666
+ // 3b. direct (~/.gramatr/): auto-install in background, then emit success.
665
667
  try {
668
+ const installLayout = detectInstallLayout();
666
669
  const versionResult = await runVersionCheckAndNotify(VERSION);
667
670
  if (versionResult?.isOutdated) {
668
- const upgrade = autoUpgrade(versionResult.latestVersion);
671
+ const upgrade = autoUpgrade(versionResult.latestVersion, { layout: installLayout });
669
672
  if (upgrade.triggered) {
670
673
  log(` Auto-upgrading gramatr: v${versionResult.installedVersion} → v${versionResult.latestVersion}`);
671
674
  emitStdout(`gramatr auto-upgrade in progress: v${versionResult.installedVersion} → v${versionResult.latestVersion}. ` +
@@ -673,7 +676,13 @@ export async function runSessionStartHook(_args = []) {
673
676
  `Restart ${runtime.agentName} to activate the new hooks and features. ` +
674
677
  `If gramatr --version still shows the old version after restarting, run: hash -r (bash) or rehash (zsh) — this clears the shell's command path cache."`);
675
678
  }
679
+ else if (installLayout === "npm-global" || installLayout === "unknown") {
680
+ // npm-global / unknown: file writes would be a no-op on the live PATH binary.
681
+ // Surface a clear hint without claiming an upgrade is in progress.
682
+ emitStdout(formatUpgradeHint(versionResult.installedVersion, versionResult.latestVersion));
683
+ }
676
684
  else {
685
+ // direct layout but upgrade failed for another reason (lock, spawn error, etc.)
677
686
  emitStdout(`gramatr update available: v${versionResult.installedVersion} → v${versionResult.latestVersion}. ` +
678
687
  `Auto-upgrade skipped (${upgrade.reason}). Recommend reinstalling the local gramatr client integration for ${runtime.agentName} and restarting the client.`);
679
688
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/hooks/session-start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/hooks/session-start.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * AUTO-GENERATED — do not edit manually.
3
3
  * Source: contracts/methodology/instruction-blocks.yaml
4
4
  * Generator: contracts/generator/generate.ts
5
- * Generated: 2026-04-29T13:05:50.521Z
5
+ * Generated: 2026-05-01T19:50:21.735Z
6
6
  */
7
7
  /** Mandatory contract fields from the v2 intelligence packet */
8
8
  export declare const CONTRACT_RULES = "**Mandatory contract fields \u2014 treat as execution requirements:**\n- `directives.hard_gates` \u2014 non-negotiable behavioral constraints\n- `directives.behavioral_rules` \u2014 algorithm phases, code rules, safety rules\n- `directives.behavioral_directives` \u2014 per-turn instructions from the classifier\n- `process.phase_template` \u2014 effort-gated phase sequence (MUST follow)\n- `process.quality_gate_config` \u2014 Quality Gate verification rules (MUST pass before done)\n- `enrichment.data.reasoning` \u2014 RE + Quality Gate scaffold when present (MUST consume)";
@@ -23,7 +23,7 @@ export declare const IDENTITY = "**Identity:** Your name is `gr\u0101matr`. The
23
23
  /** Behavior when server is unavailable */
24
24
  export declare const DEGRADED_MODE = "**If the server is unavailable:** Degrade cleanly and keep working. Use the\n7-phase structure. Create Quality Gates before work. Never combine phases.";
25
25
  /** Show classification details to user on non-instant responses */
26
- export declare const CLASSIFICATION_SUMMARY = "**Classification summary (MANDATORY for non-instant effort):**\nStart each response with a one-line gr\u0101matr classification summary.\nFormat: `gr\u0101matr | {effort}/{intent} | {confidence}% | {tokens_saved_all_time} saved`\nRead effort/intent/confidence from classification. Read tokens_saved_all_time from execution.token_savings.all_time.\nIf the intelligence packet was degraded or failed to deliver, prefix with `gr\u0101matr [degraded] |` so the user sees the trust signal immediately.\nIf memories were loaded, append `| {memories_delivered} memories` so the user knows context was retrieved.\nSkip for instant effort only.";
26
+ export declare const CLASSIFICATION_SUMMARY = "**Classification summary (MANDATORY for non-instant effort):**\nStart each response with a one-line gr\u0101matr classification summary.\nFormat: `gr\u0101matr | {effort}/{intent} | {confidence}% | {tokens_saved_all_time} saved`\nRead effort/intent/confidence from classification. Read tokens_saved_all_time from execution.token_savings.all_time.\nIf the intelligence packet was degraded or failed to deliver, prefix with `gr\u0101matr [degraded] |` so the user sees the trust signal immediately.\nIf memories were loaded, append `| {memories_delivered} memories` so the user knows context was retrieved.\nIf `manifest.update_available` is set, append `| \u26A0 update \u2192 v{latest}: {install_cmd}` to the classification line.\nSkip for instant effort only.";
27
27
  /** Legacy alias — kept for backward compat, content now points to the three sub-blocks */
28
28
  export declare const PROJECT_RESOLUTION = "**Project resolution:** When `project_resolution_needed: true` appears in\nthe v2 intelligence packet, call `resolve_project` with\n`action: 'list'` to show the user their projects. Once they pick one,\ncall `resolve_project` with `action: 'resolve'` and the slug,\nthen use the returned project_id for all subsequent tool calls.";
29
29
  /** No project context — prompt user to pick */
@@ -1 +1 @@
1
- {"version":3,"file":"instruction-blocks.d.ts","sourceRoot":"","sources":["../../../src/setup/generated/instruction-blocks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gEAAgE;AAChE,eAAO,MAAM,cAAc,skBAAmiB,CAAC;AAE/jB,8BAA8B;AAC9B,eAAO,MAAM,YAAY,oJAAoJ,CAAC;AAE9K,oDAAoD;AACpD,eAAO,MAAM,eAAe,sJAAsJ,CAAC;AAEnL,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,oeAA+d,CAAC;AAErgB,sDAAsD;AACtD,eAAO,MAAM,cAAc,+XAAgX,CAAC;AAE5Y,mDAAmD;AACnD,eAAO,MAAM,cAAc,k8BAAg5B,CAAC;AAE56B,mCAAmC;AACnC,eAAO,MAAM,aAAa,iTAA+P,CAAC;AAE1R,wCAAwC;AACxC,eAAO,MAAM,QAAQ,4JAAkJ,CAAC;AAExK,0CAA0C;AAC1C,eAAO,MAAM,aAAa,4JAA4J,CAAC;AAEvL,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,goBAAinB,CAAC;AAErpB,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,8UAA8U,CAAC;AAE9W,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,ijBAA4iB,CAAC;AAE5kB,mDAAmD;AACnD,eAAO,MAAM,WAAW,4VAA4V,CAAC;AAErX,kDAAkD;AAClD,eAAO,MAAM,eAAe,sYAAsY,CAAC;AAEna,gGAAgG;AAChG,eAAO,MAAM,aAAa,4dAAkd,CAAC;AAE7e,sEAAsE;AACtE,eAAO,MAAM,yBAAyB,0aAAqa,CAAC;AAE5c,sGAAsG;AACtG,eAAO,MAAM,mBAAmB,8jCAAojC,CAAC;AAErlC,oGAAoG;AACpG,eAAO,MAAM,cAAc,mnCAA2kC,CAAC"}
1
+ {"version":3,"file":"instruction-blocks.d.ts","sourceRoot":"","sources":["../../../src/setup/generated/instruction-blocks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gEAAgE;AAChE,eAAO,MAAM,cAAc,skBAAmiB,CAAC;AAE/jB,8BAA8B;AAC9B,eAAO,MAAM,YAAY,oJAAoJ,CAAC;AAE9K,oDAAoD;AACpD,eAAO,MAAM,eAAe,sJAAsJ,CAAC;AAEnL,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,oeAA+d,CAAC;AAErgB,sDAAsD;AACtD,eAAO,MAAM,cAAc,+XAAgX,CAAC;AAE5Y,mDAAmD;AACnD,eAAO,MAAM,cAAc,k8BAAg5B,CAAC;AAE56B,mCAAmC;AACnC,eAAO,MAAM,aAAa,iTAA+P,CAAC;AAE1R,wCAAwC;AACxC,eAAO,MAAM,QAAQ,4JAAkJ,CAAC;AAExK,0CAA0C;AAC1C,eAAO,MAAM,aAAa,4JAA4J,CAAC;AAEvL,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,6vBAAouB,CAAC;AAExwB,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,8UAA8U,CAAC;AAE9W,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,ijBAA4iB,CAAC;AAE5kB,mDAAmD;AACnD,eAAO,MAAM,WAAW,4VAA4V,CAAC;AAErX,kDAAkD;AAClD,eAAO,MAAM,eAAe,sYAAsY,CAAC;AAEna,gGAAgG;AAChG,eAAO,MAAM,aAAa,4dAAkd,CAAC;AAE7e,sEAAsE;AACtE,eAAO,MAAM,yBAAyB,0aAAqa,CAAC;AAE5c,sGAAsG;AACtG,eAAO,MAAM,mBAAmB,8jCAAojC,CAAC;AAErlC,oGAAoG;AACpG,eAAO,MAAM,cAAc,mnCAA2kC,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * AUTO-GENERATED — do not edit manually.
3
3
  * Source: contracts/methodology/instruction-blocks.yaml
4
4
  * Generator: contracts/generator/generate.ts
5
- * Generated: 2026-04-29T13:05:50.521Z
5
+ * Generated: 2026-05-01T19:50:21.735Z
6
6
  */
7
7
  /** Mandatory contract fields from the v2 intelligence packet */
8
8
  export const CONTRACT_RULES = "**Mandatory contract fields — treat as execution requirements:**\n- `directives.hard_gates` — non-negotiable behavioral constraints\n- `directives.behavioral_rules` — algorithm phases, code rules, safety rules\n- `directives.behavioral_directives` — per-turn instructions from the classifier\n- `process.phase_template` — effort-gated phase sequence (MUST follow)\n- `process.quality_gate_config` — Quality Gate verification rules (MUST pass before done)\n- `enrichment.data.reasoning` — RE + Quality Gate scaffold when present (MUST consume)";
@@ -23,7 +23,7 @@ export const IDENTITY = "**Identity:** Your name is `grāmatr`. The user's name
23
23
  /** Behavior when server is unavailable */
24
24
  export const DEGRADED_MODE = "**If the server is unavailable:** Degrade cleanly and keep working. Use the\n7-phase structure. Create Quality Gates before work. Never combine phases.";
25
25
  /** Show classification details to user on non-instant responses */
26
- export const CLASSIFICATION_SUMMARY = "**Classification summary (MANDATORY for non-instant effort):**\nStart each response with a one-line grāmatr classification summary.\nFormat: `grāmatr | {effort}/{intent} | {confidence}% | {tokens_saved_all_time} saved`\nRead effort/intent/confidence from classification. Read tokens_saved_all_time from execution.token_savings.all_time.\nIf the intelligence packet was degraded or failed to deliver, prefix with `grāmatr [degraded] |` so the user sees the trust signal immediately.\nIf memories were loaded, append `| {memories_delivered} memories` so the user knows context was retrieved.\nSkip for instant effort only.";
26
+ export const CLASSIFICATION_SUMMARY = "**Classification summary (MANDATORY for non-instant effort):**\nStart each response with a one-line grāmatr classification summary.\nFormat: `grāmatr | {effort}/{intent} | {confidence}% | {tokens_saved_all_time} saved`\nRead effort/intent/confidence from classification. Read tokens_saved_all_time from execution.token_savings.all_time.\nIf the intelligence packet was degraded or failed to deliver, prefix with `grāmatr [degraded] |` so the user sees the trust signal immediately.\nIf memories were loaded, append `| {memories_delivered} memories` so the user knows context was retrieved.\nIf `manifest.update_available` is set, append `| ⚠ update → v{latest}: {install_cmd}` to the classification line.\nSkip for instant effort only.";
27
27
  /** Legacy alias — kept for backward compat, content now points to the three sub-blocks */
28
28
  export const PROJECT_RESOLUTION = "**Project resolution:** When `project_resolution_needed: true` appears in\nthe v2 intelligence packet, call `resolve_project` with\n`action: 'list'` to show the user their projects. Once they pick one,\ncall `resolve_project` with `action: 'resolve'` and the slug,\nthen use the returned project_id for all subsequent tool calls.";
29
29
  /** No project context — prompt user to pick */
@@ -1 +1 @@
1
- {"version":3,"file":"instruction-blocks.js","sourceRoot":"","sources":["../../../src/setup/generated/instruction-blocks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,cAAc,GAAG,giBAAgiB,CAAC;AAE/jB,8BAA8B;AAC9B,MAAM,CAAC,MAAM,YAAY,GAAG,iJAAiJ,CAAC;AAE9K,oDAAoD;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG,mJAAmJ,CAAC;AAEnL,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAG,4dAA4d,CAAC;AAErgB,sDAAsD;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,6WAA6W,CAAC;AAE5Y,mDAAmD;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,64BAA64B,CAAC;AAE56B,mCAAmC;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,4PAA4P,CAAC;AAE1R,wCAAwC;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,+IAA+I,CAAC;AAExK,0CAA0C;AAC1C,MAAM,CAAC,MAAM,aAAa,GAAG,yJAAyJ,CAAC;AAEvL,mEAAmE;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,8mBAA8mB,CAAC;AAErpB,0FAA0F;AAC1F,MAAM,CAAC,MAAM,kBAAkB,GAAG,2UAA2U,CAAC;AAE9W,+CAA+C;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,yiBAAyiB,CAAC;AAE5kB,mDAAmD;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,yVAAyV,CAAC;AAErX,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,mYAAmY,CAAC;AAEna,gGAAgG;AAChG,MAAM,CAAC,MAAM,aAAa,GAAG,+cAA+c,CAAC;AAE7e,sEAAsE;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAG,kaAAka,CAAC;AAE5c,sGAAsG;AACtG,MAAM,CAAC,MAAM,mBAAmB,GAAG,ijCAAijC,CAAC;AAErlC,oGAAoG;AACpG,MAAM,CAAC,MAAM,cAAc,GAAG,wkCAAwkC,CAAC"}
1
+ {"version":3,"file":"instruction-blocks.js","sourceRoot":"","sources":["../../../src/setup/generated/instruction-blocks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,cAAc,GAAG,giBAAgiB,CAAC;AAE/jB,8BAA8B;AAC9B,MAAM,CAAC,MAAM,YAAY,GAAG,iJAAiJ,CAAC;AAE9K,oDAAoD;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG,mJAAmJ,CAAC;AAEnL,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAG,4dAA4d,CAAC;AAErgB,sDAAsD;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,6WAA6W,CAAC;AAE5Y,mDAAmD;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,64BAA64B,CAAC;AAE56B,mCAAmC;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,4PAA4P,CAAC;AAE1R,wCAAwC;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,+IAA+I,CAAC;AAExK,0CAA0C;AAC1C,MAAM,CAAC,MAAM,aAAa,GAAG,yJAAyJ,CAAC;AAEvL,mEAAmE;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,iuBAAiuB,CAAC;AAExwB,0FAA0F;AAC1F,MAAM,CAAC,MAAM,kBAAkB,GAAG,2UAA2U,CAAC;AAE9W,+CAA+C;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,yiBAAyiB,CAAC;AAE5kB,mDAAmD;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,yVAAyV,CAAC;AAErX,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,mYAAmY,CAAC;AAEna,gGAAgG;AAChG,MAAM,CAAC,MAAM,aAAa,GAAG,+cAA+c,CAAC;AAE7e,sEAAsE;AACtE,MAAM,CAAC,MAAM,yBAAyB,GAAG,kaAAka,CAAC;AAE5c,sGAAsG;AACtG,MAAM,CAAC,MAAM,mBAAmB,GAAG,ijCAAijC,CAAC;AAErlC,oGAAoG;AACpG,MAAM,CAAC,MAAM,cAAc,GAAG,wkCAAwkC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gramatr/mcp",
3
- "version": "0.13.55",
3
+ "version": "0.13.57",
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": {