@mnemonik/cursor-hooks 0.7.24 → 0.7.25
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/install.js +33 -5
- package/dist/install.js.map +1 -1
- package/dist/lib/behavior.d.ts +19 -1
- package/dist/lib/behavior.js +19 -1
- package/dist/lib/behavior.js.map +1 -1
- package/package.json +2 -2
package/dist/install.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { existsSync, realpathSync } from 'node:fs';
|
|
3
3
|
import { dirname, join, resolve } from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
|
-
import { MNEMONIK_TOOL_MATCHER } from './lib/mnemonikTool.js';
|
|
6
5
|
import { isRetiredMnemonikManagedRule } from './lib/retiredCursorRule.js';
|
|
7
6
|
import { atomicWriteTransaction, buildManagedCommand, canonicalizeConfigTargets, installerConfigLockPath, installDurableRuntime, isManagedCommand, parseManagedCommand, readTextIfExists, resolvePackageRoot, resolveRuntimeParent, withFileLocks, } from './lib/installerSupport.js';
|
|
8
7
|
const HOOK_TAG = 'mnemonik-cursor-hooks';
|
|
@@ -163,10 +162,39 @@ async function main(argv) {
|
|
|
163
162
|
const entry = () => buildHookEntry(installedDispatcher);
|
|
164
163
|
hooks.sessionStart = patchEventEntries(hooks.sessionStart, entry());
|
|
165
164
|
hooks.beforeSubmitPrompt = patchEventEntries(hooks.beforeSubmitPrompt, entry());
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
165
|
+
// ── TOOL MATCHERS: EVERY TOOL ACTION, NOT AN ALLOWLIST ───────────────
|
|
166
|
+
//
|
|
167
|
+
// The accepted reflex-recall design is "all tool actions from day one …
|
|
168
|
+
// Noise controls are budget, per-session dedup, and cue dedup, not a
|
|
169
|
+
// trigger list" (docs/development/memory-adoption.plan.md, "Decisions
|
|
170
|
+
// taken" #1). The old `Write|StrReplace|EditNotebook|Delete` allowlist
|
|
171
|
+
// made the first EDIT the first server-visible event, so recall could
|
|
172
|
+
// fire before a mutation but never during the reading that formed the
|
|
173
|
+
// plan — and Cursor DOES emit `Read` as a preToolUse tool type.
|
|
174
|
+
//
|
|
175
|
+
// HOW WE EXPRESS IT, AND WHAT IS ACTUALLY DOCUMENTED. Cursor documents
|
|
176
|
+
// that a hook "fires for all tools" and that matchers exist "to filter",
|
|
177
|
+
// and it lists the per-hook field a matcher is tested against (tool type
|
|
178
|
+
// for pre/postToolUse) — but it documents NO wildcard value, and it never
|
|
179
|
+
// states in so many words that an omitted matcher runs the hook for every
|
|
180
|
+
// value (https://cursor.com/docs/hooks). **INFERRED, NOT DOCUMENTED:** we
|
|
181
|
+
// take "fires for all tools, filtered by matcher" to mean no matcher = no
|
|
182
|
+
// filter. It is the only form available, it is what this package already
|
|
183
|
+
// relies on for sessionStart / beforeShellExecution / afterFileEdit and
|
|
184
|
+
// the rest, and it is a strict superset of any narrower reading — so the
|
|
185
|
+
// inference cannot lose coverage even if it is wrong about the mechanism.
|
|
186
|
+
//
|
|
187
|
+
// Omitting also removes the one place where our own MCP calls depended on
|
|
188
|
+
// a `.*mnemonik.*` fragment being read as a REGEX, which Cursor's
|
|
189
|
+
// documented matcher semantics (pipe-separated values) do not promise.
|
|
190
|
+
//
|
|
191
|
+
// NOT REGISTERED, WORTH REVISITING: Cursor also has a dedicated
|
|
192
|
+
// `beforeReadFile` hook carrying `file_path`, the file content and its
|
|
193
|
+
// attachments. For read-cued recall that is arguably the better surface
|
|
194
|
+
// than inferring a read from `preToolUse` — it is unregistered today and
|
|
195
|
+
// is deliberately out of scope for this change.
|
|
196
|
+
hooks.preToolUse = patchEventEntries(hooks.preToolUse, buildHookEntry(installedDispatcher));
|
|
197
|
+
hooks.postToolUse = patchEventEntries(hooks.postToolUse, buildHookEntry(installedDispatcher));
|
|
170
198
|
hooks.beforeShellExecution = patchEventEntries(hooks.beforeShellExecution, entry());
|
|
171
199
|
hooks.beforeMCPExecution = patchEventEntries(hooks.beforeMCPExecution, entry());
|
|
172
200
|
hooks.afterMCPExecution = patchEventEntries(hooks.afterMCPExecution, entry());
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/behavior.d.ts
CHANGED
|
@@ -27,7 +27,25 @@ export type SoftMode = 'advisory' | 'off';
|
|
|
27
27
|
* of codex-hooks PROMPT_CONTEXT and claude-code-hooks userPromptContext).
|
|
28
28
|
*/
|
|
29
29
|
export declare const PROMPT_CONTEXT: SoftMode;
|
|
30
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* preToolUse gate.
|
|
32
|
+
*
|
|
33
|
+
* ITS BLAST RADIUS GREW — READ BEFORE FLIPPING IT. This used to say "the
|
|
34
|
+
* installer wires Write, StrReplace, EditNotebook, and Delete", and that is no
|
|
35
|
+
* longer true: the installer registers `preToolUse` with NO matcher, so EVERY
|
|
36
|
+
* tool type Cursor emits — `Read` included — now reaches `handlePreToolUse`.
|
|
37
|
+
*
|
|
38
|
+
* `'advisory'` is therefore the only thing standing between a read-class tool
|
|
39
|
+
* and this handler's deny path. The deny is currently unreachable twice over:
|
|
40
|
+
* the handler short-circuits to allow whenever `mode === 'advisory'`, and the
|
|
41
|
+
* server only emits `file_context_required` for edit-class tools. Both of those
|
|
42
|
+
* are conditions elsewhere, not guarantees of this constant.
|
|
43
|
+
*
|
|
44
|
+
* Flipping this to `'enforce'` would arm a blocking gate over reads, and is a
|
|
45
|
+
* change to make deliberately with the server-side emitter allowlist in view —
|
|
46
|
+
* not a routine maturity flip. `reflex trigger scope` in tests/install.test.ts
|
|
47
|
+
* pins the read-class allow so the regression is loud.
|
|
48
|
+
*/
|
|
31
49
|
export declare const PRE_EDIT_GATE: GateMode;
|
|
32
50
|
/** Auto-fetch file_context from the server in PreEdit advisory mode. */
|
|
33
51
|
export declare const PRE_EDIT_ADVISORY_AUTO_FETCH = true;
|
package/dist/lib/behavior.js
CHANGED
|
@@ -25,7 +25,25 @@
|
|
|
25
25
|
* of codex-hooks PROMPT_CONTEXT and claude-code-hooks userPromptContext).
|
|
26
26
|
*/
|
|
27
27
|
export const PROMPT_CONTEXT = 'advisory';
|
|
28
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* preToolUse gate.
|
|
30
|
+
*
|
|
31
|
+
* ITS BLAST RADIUS GREW — READ BEFORE FLIPPING IT. This used to say "the
|
|
32
|
+
* installer wires Write, StrReplace, EditNotebook, and Delete", and that is no
|
|
33
|
+
* longer true: the installer registers `preToolUse` with NO matcher, so EVERY
|
|
34
|
+
* tool type Cursor emits — `Read` included — now reaches `handlePreToolUse`.
|
|
35
|
+
*
|
|
36
|
+
* `'advisory'` is therefore the only thing standing between a read-class tool
|
|
37
|
+
* and this handler's deny path. The deny is currently unreachable twice over:
|
|
38
|
+
* the handler short-circuits to allow whenever `mode === 'advisory'`, and the
|
|
39
|
+
* server only emits `file_context_required` for edit-class tools. Both of those
|
|
40
|
+
* are conditions elsewhere, not guarantees of this constant.
|
|
41
|
+
*
|
|
42
|
+
* Flipping this to `'enforce'` would arm a blocking gate over reads, and is a
|
|
43
|
+
* change to make deliberately with the server-side emitter allowlist in view —
|
|
44
|
+
* not a routine maturity flip. `reflex trigger scope` in tests/install.test.ts
|
|
45
|
+
* pins the read-class allow so the regression is loud.
|
|
46
|
+
*/
|
|
29
47
|
export const PRE_EDIT_GATE = 'advisory';
|
|
30
48
|
/** Auto-fetch file_context from the server in PreEdit advisory mode. */
|
|
31
49
|
export const PRE_EDIT_ADVISORY_AUTO_FETCH = true;
|
package/dist/lib/behavior.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"behavior.js","sourceRoot":"","sources":["../../src/lib/behavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAa,UAAU,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"behavior.js","sourceRoot":"","sources":["../../src/lib/behavior.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAa,UAAU,CAAC;AAEnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAa,UAAU,CAAC;AAElD,wEAAwE;AACxE,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAEjD,iFAAiF;AACjF,MAAM,CAAC,MAAM,aAAa,GAAa,UAAU,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAa,UAAU,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAa,UAAU,CAAC;AAExD,kDAAkD;AAClD,MAAM,CAAC,MAAM,cAAc,GAAa,UAAU,CAAC;AAEnD,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAa,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnemonik/cursor-hooks",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.25",
|
|
4
4
|
"description": "Cursor IDE hooks for Mnemonik memory awareness and host-side grounding gates. Hooks only: does not install skills, rules, AGENTS.md, .mnemonik.json, or MCP config.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
],
|
|
34
34
|
"license": "SEE LICENSE IN LICENSE",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@mnemonik/shared": "^7.
|
|
36
|
+
"@mnemonik/shared": "^7.49.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/node": "^20.19.43",
|