@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.
- package/dist/hooks/lib/install-detect.d.ts +46 -0
- package/dist/hooks/lib/install-detect.d.ts.map +1 -0
- package/dist/hooks/lib/install-detect.js +113 -0
- package/dist/hooks/lib/install-detect.js.map +1 -0
- package/dist/hooks/lib/version-check.d.ts +28 -10
- package/dist/hooks/lib/version-check.d.ts.map +1 -1
- package/dist/hooks/lib/version-check.js +95 -59
- package/dist/hooks/lib/version-check.js.map +1 -1
- package/dist/hooks/session-start.d.ts.map +1 -1
- package/dist/hooks/session-start.js +38 -29
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/setup/generated/instruction-blocks.d.ts +2 -2
- package/dist/setup/generated/instruction-blocks.d.ts.map +1 -1
- package/dist/setup/generated/instruction-blocks.js +2 -2
- package/dist/setup/generated/instruction-blocks.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
*
|
|
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
|
-
*
|
|
73
|
-
*
|
|
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
|
-
* -
|
|
77
|
-
* -
|
|
78
|
-
* -
|
|
79
|
-
* -
|
|
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;
|
|
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 {
|
|
15
|
-
import {
|
|
16
|
-
import { homedir } from
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
|
|
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(
|
|
31
|
-
const pb = b.split(
|
|
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,
|
|
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,
|
|
51
|
+
const raw = readFileSync(path, "utf8");
|
|
51
52
|
const parsed = JSON.parse(raw);
|
|
52
|
-
if (typeof parsed.latestVersion !==
|
|
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) +
|
|
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:
|
|
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 !==
|
|
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 =
|
|
159
|
+
const bar = "\u2501".repeat(60);
|
|
159
160
|
return [
|
|
160
161
|
bar,
|
|
161
|
-
|
|
162
|
-
|
|
162
|
+
" gramatr update available",
|
|
163
|
+
"",
|
|
163
164
|
` Installed: ${installed}`,
|
|
164
165
|
` Latest: ${latest}`,
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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
|
-
|
|
174
|
+
" session start. New hook code requires a fresh session.",
|
|
174
175
|
bar,
|
|
175
|
-
|
|
176
|
-
].join(
|
|
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,
|
|
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,
|
|
210
|
+
const raw = readFileSync(lockPath, "utf8");
|
|
210
211
|
const lock = JSON.parse(raw);
|
|
211
|
-
if (typeof lock.startedAt !==
|
|
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() }) +
|
|
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
|
-
*
|
|
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
|
-
*
|
|
237
|
-
*
|
|
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
|
-
* -
|
|
241
|
-
* -
|
|
242
|
-
* -
|
|
243
|
-
* -
|
|
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 {
|
|
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 ===
|
|
254
|
-
const child = spawn(npxBin, [
|
|
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:
|
|
257
|
-
env: { ...process.env, GRAMATR_AUTO_UPGRADE:
|
|
287
|
+
stdio: "ignore",
|
|
288
|
+
env: { ...process.env, GRAMATR_AUTO_UPGRADE: "1" },
|
|
258
289
|
});
|
|
259
290
|
child.unref();
|
|
260
|
-
const bar =
|
|
291
|
+
const bar = "━".repeat(60);
|
|
261
292
|
stream.write([
|
|
262
|
-
|
|
293
|
+
"",
|
|
263
294
|
bar,
|
|
264
295
|
` gramatr upgrading: v${latestVersion} — getting smarter`,
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
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(
|
|
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 {
|
|
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":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,
|
|
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;
|
|
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(
|
|
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[
|
|
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(
|
|
173
|
-
const serverMinor = parseInt(serverVersion.split(
|
|
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(),
|
|
198
|
+
const claudeJsonPath = join(getHomeDir(), ".claude.json");
|
|
198
199
|
if (!existsSync(claudeJsonPath))
|
|
199
200
|
return;
|
|
200
|
-
const raw = readFileSync(claudeJsonPath,
|
|
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[
|
|
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[
|
|
215
|
+
if (projectEntry["lastGracefulShutdown"] !== false)
|
|
215
216
|
return;
|
|
216
|
-
const lastSessionId = projectEntry[
|
|
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(),
|
|
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[
|
|
226
|
-
projectEntry[
|
|
226
|
+
projectEntry["lastGracefulShutdown"] = true;
|
|
227
|
+
projectEntry["lastSessionId"] = null;
|
|
227
228
|
try {
|
|
228
|
-
writeFileSync(claudeJsonPath, JSON.stringify(config, null, 2),
|
|
229
|
-
log(
|
|
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(
|
|
376
|
+
const { isDaemonRunning, launchDaemon, waitForSocket } = await import("../daemon/startup.js");
|
|
376
377
|
if (!isDaemonRunning()) {
|
|
377
378
|
const result = launchDaemon();
|
|
378
|
-
if (result ===
|
|
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(
|
|
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 +
|
|
662
|
-
// 1.
|
|
663
|
-
// 2.
|
|
664
|
-
//
|
|
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-
|
|
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,
|
|
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-
|
|
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,
|
|
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.
|
|
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": {
|