@mnemonik/codex-hooks 0.6.2 → 0.7.1
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/hook.js +92 -112
- package/dist/hook.js.map +1 -1
- package/dist/install.js +0 -0
- package/dist/lib/http.d.ts +25 -13
- package/dist/lib/http.js +43 -17
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/identity.d.ts +30 -0
- package/dist/lib/identity.js +60 -0
- package/dist/lib/identity.js.map +1 -0
- package/dist/lib/types.d.ts +17 -8
- package/dist/lib/types.js.map +1 -1
- package/package.json +1 -1
package/dist/hook.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
3
|
import { stdout, stderr, stdin, exit } from 'node:process';
|
|
4
|
-
import { relative } from 'node:path';
|
|
5
4
|
import { extractToolFileTargets } from './lib/applyPatch.js';
|
|
6
|
-
import { additionalContext,
|
|
5
|
+
import { additionalContext, denyPreToolUse, systemMessage, trimContext, } from './lib/codexOutput.js';
|
|
7
6
|
import { isNonInteractive, parseBypass, resolveConfig } from './lib/env.js';
|
|
8
|
-
import { PROMPT_CONTEXT, PRE_EDIT_GATE, PRE_MCP_GATE,
|
|
9
|
-
import {
|
|
7
|
+
import { PROMPT_CONTEXT, PRE_EDIT_GATE, PRE_MCP_GATE, } from './lib/behavior.js';
|
|
8
|
+
import { fetchInjections, fetchJit, fetchMcpPrecheck, reportBypass, reportGateFired, trackIdeEdit, } from './lib/http.js';
|
|
10
9
|
import { matchIrreducibleDeny } from './lib/shellTokens.js';
|
|
10
|
+
import { findProjectIdentity } from './lib/identity.js';
|
|
11
11
|
async function readStdin() {
|
|
12
12
|
return new Promise((res) => {
|
|
13
13
|
let buf = '';
|
|
@@ -43,10 +43,6 @@ function writeOutput(output) {
|
|
|
43
43
|
function writeAllow() {
|
|
44
44
|
exit(0);
|
|
45
45
|
}
|
|
46
|
-
function warnAndAllow(message) {
|
|
47
|
-
stderr.write(`mnemonik-codex-hook: ${message}\n`);
|
|
48
|
-
exit(0);
|
|
49
|
-
}
|
|
50
46
|
function sessionId(input) {
|
|
51
47
|
return input.session_id ?? input.turn_id ?? 'codex-unknown-session';
|
|
52
48
|
}
|
|
@@ -55,61 +51,42 @@ async function emitGateFired(input, config, tool, mode, outcome) {
|
|
|
55
51
|
server: config.server,
|
|
56
52
|
apiKey: config.apiKey,
|
|
57
53
|
cwd: input.cwd,
|
|
54
|
+
projectId: (await findProjectIdentity(input.cwd))?.projectId,
|
|
58
55
|
codexSessionId: sessionId(input),
|
|
59
56
|
tool,
|
|
60
57
|
mode,
|
|
61
58
|
outcome,
|
|
62
59
|
});
|
|
63
60
|
}
|
|
64
|
-
function covered(snapshot, cwd, absolutePath) {
|
|
65
|
-
const rel = relative(cwd, absolutePath);
|
|
66
|
-
return snapshot.coveredFiles.includes(absolutePath) || snapshot.coveredFiles.includes(rel);
|
|
67
|
-
}
|
|
68
|
-
async function getSnapshotOrFailOpen(input, config, tool, mode) {
|
|
69
|
-
if (!config.apiKey) {
|
|
70
|
-
warnAndAllow('MNEMONIK_API_KEY missing - fail-open. Run mnemonik-codex-hooks install.');
|
|
71
|
-
}
|
|
72
|
-
const snapshot = await fetchSnapshot({
|
|
73
|
-
server: config.server,
|
|
74
|
-
apiKey: config.apiKey,
|
|
75
|
-
cwd: input.cwd,
|
|
76
|
-
codexSessionId: sessionId(input),
|
|
77
|
-
});
|
|
78
|
-
if (!snapshot) {
|
|
79
|
-
await emitGateFired(input, config, tool, mode, 'unreachable');
|
|
80
|
-
warnAndAllow('mnemonik server unreachable - fail-open.');
|
|
81
|
-
}
|
|
82
|
-
if (!snapshot.ok && snapshot.reason !== 'no_active_session') {
|
|
83
|
-
await emitGateFired(input, config, tool, mode, snapshot.reason ?? 'snapshot_not_ok');
|
|
84
|
-
writeAllow();
|
|
85
|
-
}
|
|
86
|
-
return snapshot;
|
|
87
|
-
}
|
|
88
61
|
async function handleContextEvent(input, config) {
|
|
89
62
|
if (PROMPT_CONTEXT === 'off')
|
|
90
63
|
writeAllow();
|
|
91
64
|
if (!config.apiKey)
|
|
92
65
|
writeAllow();
|
|
93
|
-
// Fetch
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
//
|
|
97
|
-
//
|
|
98
|
-
//
|
|
99
|
-
|
|
100
|
-
|
|
66
|
+
// Fetch bus-driven injections. The bus has already applied dedup +
|
|
67
|
+
// work-state hold + per-signal kill switches server-side; this dispatcher
|
|
68
|
+
// is a thin renderer. Legacy /hooks/context action prose is deliberately
|
|
69
|
+
// not merged here, so InjectionBus is the single owner of action guidance
|
|
70
|
+
// at prompt/session boundaries.
|
|
71
|
+
// JIT only fires on UserPromptSubmit (needs the user prompt to run the
|
|
72
|
+
// ghost-disagreement gate). Soft-fail by contract; null on any error.
|
|
73
|
+
const isPromptSubmit = input.hook_event_name === 'UserPromptSubmit';
|
|
74
|
+
const jitPromise = isPromptSubmit && input.prompt
|
|
75
|
+
? fetchJit({
|
|
101
76
|
server: config.server,
|
|
102
77
|
apiKey: config.apiKey,
|
|
103
78
|
cwd: input.cwd,
|
|
79
|
+
projectId: (await findProjectIdentity(input.cwd))?.projectId,
|
|
104
80
|
codexSessionId: sessionId(input),
|
|
105
|
-
event: input.hook_event_name,
|
|
106
81
|
prompt: input.prompt,
|
|
107
|
-
|
|
108
|
-
|
|
82
|
+
})
|
|
83
|
+
: Promise.resolve(null);
|
|
84
|
+
const [injectionsResp, jitResp] = await Promise.all([
|
|
109
85
|
fetchInjections({
|
|
110
86
|
server: config.server,
|
|
111
87
|
apiKey: config.apiKey,
|
|
112
88
|
cwd: input.cwd,
|
|
89
|
+
projectId: (await findProjectIdentity(input.cwd))?.projectId,
|
|
113
90
|
codexSessionId: sessionId(input),
|
|
114
91
|
event: input.hook_event_name === 'UserPromptSubmit'
|
|
115
92
|
? 'UserPromptSubmit'
|
|
@@ -121,11 +98,14 @@ async function handleContextEvent(input, config) {
|
|
|
121
98
|
prompt: input.prompt,
|
|
122
99
|
toolName: input.tool_name,
|
|
123
100
|
}),
|
|
101
|
+
jitPromise,
|
|
124
102
|
]);
|
|
125
103
|
const additionalPieces = [];
|
|
126
104
|
const systemPieces = [];
|
|
127
|
-
|
|
128
|
-
|
|
105
|
+
// JIT directive comes before passive nudges — the authoritative surfaced
|
|
106
|
+
// fact anchors before any advisory recall the agent reads top-down.
|
|
107
|
+
if (jitResp && jitResp.envelope) {
|
|
108
|
+
additionalPieces.push(jitResp.envelope);
|
|
129
109
|
}
|
|
130
110
|
if (injectionsResp && injectionsResp.ok) {
|
|
131
111
|
for (const inj of injectionsResp.injections) {
|
|
@@ -164,30 +144,43 @@ async function handlePreEdit(input, config) {
|
|
|
164
144
|
await emitGateFired(input, config, tool, mode, 'new_or_no_file');
|
|
165
145
|
writeAllow();
|
|
166
146
|
}
|
|
167
|
-
|
|
168
|
-
|
|
147
|
+
if (!config.apiKey) {
|
|
148
|
+
await emitGateFired(input, config, tool, mode, 'no_api_key');
|
|
149
|
+
stderr.write('mnemonik-codex-hook: MNEMONIK_API_KEY missing - fail-open. Run mnemonik-codex-hooks install.\n');
|
|
150
|
+
writeAllow();
|
|
151
|
+
}
|
|
152
|
+
// Bus-owned coverage check. Server consults Redis + SessionState and
|
|
153
|
+
// returns file_context_required directives for uncovered files (with
|
|
154
|
+
// per-file subKey so multiple files can co-emit in the same response).
|
|
155
|
+
const injectionsResult = await fetchInjections({
|
|
156
|
+
server: config.server,
|
|
157
|
+
apiKey: config.apiKey,
|
|
158
|
+
cwd: input.cwd,
|
|
159
|
+
projectId: (await findProjectIdentity(input.cwd))?.projectId,
|
|
160
|
+
codexSessionId: sessionId(input),
|
|
161
|
+
event: 'PreToolUse',
|
|
162
|
+
toolName: input.tool_name ?? '',
|
|
163
|
+
toolArgs: input.tool_input,
|
|
164
|
+
filePaths: existingTargets.map((t) => t.path),
|
|
165
|
+
});
|
|
166
|
+
if (!injectionsResult?.ok) {
|
|
167
|
+
await emitGateFired(input, config, tool, mode, injectionsResult ? 'no_active_session' : 'unreachable');
|
|
169
168
|
writeAllow();
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
}
|
|
170
|
+
const requiredInjections = injectionsResult.injections.filter((inj) => inj.signal === 'file_context_required');
|
|
171
|
+
if (requiredInjections.length === 0) {
|
|
172
172
|
await emitGateFired(input, config, tool, mode, 'covered');
|
|
173
173
|
writeAllow();
|
|
174
174
|
}
|
|
175
|
-
const
|
|
175
|
+
const combined = requiredInjections.map((inj) => trimContext(inj.envelope, 4_000)).join('\n\n');
|
|
176
176
|
if (mode === 'advisory') {
|
|
177
177
|
await emitGateFired(input, config, tool, mode, 'nudge');
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
'Recommended: call mnemonik.file_context({ filePaths: [...] }) before editing existing files.',
|
|
182
|
-
].join(' ')));
|
|
178
|
+
// Codex PreToolUse cannot inject additionalContext reliably, so use
|
|
179
|
+
// systemMessage as the advisory surface (same rule as before).
|
|
180
|
+
writeOutput(systemMessage(combined));
|
|
183
181
|
}
|
|
184
182
|
await emitGateFired(input, config, tool, mode, 'deny');
|
|
185
|
-
writeOutput(denyPreToolUse(
|
|
186
|
-
'MNEMONIK_FILE_CONTEXT_REQUIRED',
|
|
187
|
-
`Edit blocked: file_context has not been called for ${files.map((f) => `"${f}"`).join(', ')} in this session.`,
|
|
188
|
-
'Fix: call mnemonik.file_context({ filePaths: [...] }) first.',
|
|
189
|
-
'Bypass: MNEMONIK_BYPASS_HOOKS=1 MNEMONIK_BYPASS_TYPE=<typo|formatting|regenerated|already_grounded|other>.',
|
|
190
|
-
].join('\n')));
|
|
183
|
+
writeOutput(denyPreToolUse(combined));
|
|
191
184
|
}
|
|
192
185
|
/**
|
|
193
186
|
* PreToolUse Bash gate (phase 3 simplification, 0.4.x line).
|
|
@@ -219,41 +212,49 @@ async function handlePreBash(input, config) {
|
|
|
219
212
|
'Bypass for legitimate one-off use: MNEMONIK_BYPASS_HOOKS=1 + MNEMONIK_BYPASS_TYPE=other + MNEMONIK_BYPASS_DETAIL 50-200 chars.',
|
|
220
213
|
].join('\n')));
|
|
221
214
|
}
|
|
222
|
-
// Layer 2:
|
|
215
|
+
// Layer 2: bus-owned policy + checkpoint reminders. Server runs
|
|
216
|
+
// PolicyManager.findApplicable + the pre-handoff checkpoint predicate
|
|
217
|
+
// and returns directives (checkpoint_required, policy_check_required)
|
|
218
|
+
// plus per-policy nudges (policy_reminder). Soft-fail on missing key /
|
|
219
|
+
// unreachable server.
|
|
223
220
|
if (!config.apiKey) {
|
|
224
221
|
await emitGateFired(input, config, 'Bash', 'advisory', 'no_api_key');
|
|
225
222
|
writeAllow();
|
|
226
223
|
}
|
|
227
|
-
const
|
|
224
|
+
const injectionsResp = await fetchInjections({
|
|
228
225
|
server: config.server,
|
|
229
226
|
apiKey: config.apiKey,
|
|
230
227
|
cwd: input.cwd,
|
|
228
|
+
projectId: (await findProjectIdentity(input.cwd))?.projectId,
|
|
231
229
|
codexSessionId: sessionId(input),
|
|
232
|
-
|
|
233
|
-
|
|
230
|
+
event: 'PreToolUse',
|
|
231
|
+
toolName: input.tool_name ?? 'Bash',
|
|
232
|
+
toolArgs: input.tool_input,
|
|
234
233
|
});
|
|
235
|
-
if (!
|
|
236
|
-
await emitGateFired(input, config, 'Bash', 'advisory',
|
|
234
|
+
if (!injectionsResp?.ok) {
|
|
235
|
+
await emitGateFired(input, config, 'Bash', 'advisory', injectionsResp ? 'no_match' : 'unreachable');
|
|
237
236
|
writeAllow();
|
|
238
237
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
const actionClass = reminder.policies.filter((p) => p.kind === 'mustConfirm' || p.kind === 'forbiddenCommand');
|
|
244
|
-
if (actionClass.length === 0) {
|
|
238
|
+
const checkpointInjection = injectionsResp.injections.find((inj) => inj.signal === 'checkpoint_required');
|
|
239
|
+
const policyCheck = injectionsResp.injections.find((inj) => inj.signal === 'policy_check_required');
|
|
240
|
+
const policyNudges = injectionsResp.injections.filter((inj) => inj.signal === 'policy_reminder');
|
|
241
|
+
if (!checkpointInjection && !policyCheck && policyNudges.length === 0) {
|
|
245
242
|
await emitGateFired(input, config, 'Bash', 'advisory', 'default_mode_only');
|
|
246
243
|
writeAllow();
|
|
247
244
|
}
|
|
248
|
-
const lines = [
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
lines.push(
|
|
245
|
+
const lines = [];
|
|
246
|
+
if (checkpointInjection)
|
|
247
|
+
lines.push(trimContext(checkpointInjection.envelope, 4_000));
|
|
248
|
+
if (policyCheck)
|
|
249
|
+
lines.push(trimContext(policyCheck.envelope, 4_000));
|
|
250
|
+
for (const nudge of policyNudges)
|
|
251
|
+
lines.push(trimContext(nudge.envelope, 2_000));
|
|
252
|
+
if (checkpointInjection || policyCheck) {
|
|
253
|
+
const outcome = checkpointInjection ? 'checkpoint_required' : 'policy_check_required';
|
|
254
|
+
await emitGateFired(input, config, 'Bash', 'enforce', outcome);
|
|
255
|
+
writeOutput(denyPreToolUse(lines.join('\n')));
|
|
255
256
|
}
|
|
256
|
-
await emitGateFired(input, config, 'Bash', 'advisory', `policy_match_${
|
|
257
|
+
await emitGateFired(input, config, 'Bash', 'advisory', `policy_match_${policyNudges.length}`);
|
|
257
258
|
writeOutput(systemMessage(lines.join('\n')));
|
|
258
259
|
}
|
|
259
260
|
// ─── PreToolUse MCP precheck: rule-engine verdict for mcp__mnemonik__.* ────
|
|
@@ -290,6 +291,7 @@ async function handlePreMcp(input, config) {
|
|
|
290
291
|
server: config.server,
|
|
291
292
|
apiKey: config.apiKey,
|
|
292
293
|
cwd: input.cwd,
|
|
294
|
+
projectId: (await findProjectIdentity(input.cwd))?.projectId,
|
|
293
295
|
codexSessionId: sessionId(input),
|
|
294
296
|
tool,
|
|
295
297
|
args,
|
|
@@ -328,38 +330,15 @@ async function handlePostTool(input, config) {
|
|
|
328
330
|
filePath: target.path,
|
|
329
331
|
});
|
|
330
332
|
}
|
|
331
|
-
|
|
332
|
-
writeAllow();
|
|
333
|
-
const ctx = await fetchHookContext({
|
|
334
|
-
server: config.server,
|
|
335
|
-
apiKey: config.apiKey,
|
|
336
|
-
cwd: input.cwd,
|
|
337
|
-
codexSessionId: sessionId(input),
|
|
338
|
-
event: 'PostToolUse',
|
|
339
|
-
toolName: tool,
|
|
340
|
-
filePaths: targets.map((t) => t.path),
|
|
341
|
-
});
|
|
342
|
-
if (!ctx?.ok || !ctx.additionalContext)
|
|
343
|
-
writeAllow();
|
|
344
|
-
writeOutput(additionalContext('PostToolUse', trimContext(ctx.additionalContext, 8_000)));
|
|
333
|
+
writeAllow();
|
|
345
334
|
}
|
|
346
|
-
async function handleStop(
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
server: config.server,
|
|
354
|
-
apiKey: config.apiKey,
|
|
355
|
-
cwd: input.cwd,
|
|
356
|
-
codexSessionId: sessionId(input),
|
|
357
|
-
event: 'Stop',
|
|
358
|
-
lastAssistantMessage: input.last_assistant_message,
|
|
359
|
-
});
|
|
360
|
-
if (!ctx?.ok || !ctx.continuationReason)
|
|
361
|
-
writeAllow();
|
|
362
|
-
writeOutput(continueStop(trimContext(ctx.continuationReason, 4_000)));
|
|
335
|
+
async function handleStop(_input, _config) {
|
|
336
|
+
// Stop-checkpoint enforcement was removed in favour of broader
|
|
337
|
+
// `checkpoint_required` triggers (handoff + post-compaction + volume).
|
|
338
|
+
// The Stop event itself is no longer a checkpoint pressure surface;
|
|
339
|
+
// by the time the agent reaches Stop, they've already been prompted
|
|
340
|
+
// during work, so re-emitting here is redundant.
|
|
341
|
+
writeAllow();
|
|
363
342
|
}
|
|
364
343
|
async function dispatch(input) {
|
|
365
344
|
if (isNonInteractive())
|
|
@@ -374,6 +353,7 @@ async function dispatch(input) {
|
|
|
374
353
|
server: config.server,
|
|
375
354
|
apiKey: config.apiKey,
|
|
376
355
|
cwd: input.cwd,
|
|
356
|
+
projectId: (await findProjectIdentity(input.cwd))?.projectId,
|
|
377
357
|
codexSessionId: sessionId(input),
|
|
378
358
|
tool: input.tool_name ?? input.hook_event_name,
|
|
379
359
|
bypassType: bypass.type ?? 'unknown',
|
package/dist/hook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
|
package/dist/install.js
CHANGED
|
File without changes
|
package/dist/lib/http.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { InjectionsResponse, JitResponse, McpPrecheckResponse, PolicyReminderResponse, SnapshotResponse } from './types.js';
|
|
2
2
|
export interface FetchSnapshotInput {
|
|
3
3
|
server: string;
|
|
4
4
|
apiKey: string;
|
|
5
5
|
cwd: string;
|
|
6
|
+
projectId?: string;
|
|
6
7
|
codexSessionId: string;
|
|
7
8
|
}
|
|
8
9
|
export declare function fetchSnapshot(input: FetchSnapshotInput): Promise<SnapshotResponse | null>;
|
|
@@ -14,6 +15,7 @@ export interface FetchPolicyReminderInput {
|
|
|
14
15
|
server: string;
|
|
15
16
|
apiKey: string;
|
|
16
17
|
cwd: string;
|
|
18
|
+
projectId?: string;
|
|
17
19
|
codexSessionId: string;
|
|
18
20
|
tool: string;
|
|
19
21
|
context: string;
|
|
@@ -29,24 +31,13 @@ export interface FetchMcpPrecheckInput {
|
|
|
29
31
|
server: string;
|
|
30
32
|
apiKey: string;
|
|
31
33
|
cwd: string;
|
|
34
|
+
projectId?: string;
|
|
32
35
|
codexSessionId: string;
|
|
33
36
|
tool: string;
|
|
34
37
|
args: Record<string, unknown>;
|
|
35
38
|
model?: string;
|
|
36
39
|
}
|
|
37
40
|
export declare function fetchMcpPrecheck(input: FetchMcpPrecheckInput): Promise<McpPrecheckResponse | null>;
|
|
38
|
-
export interface FetchHookContextInput {
|
|
39
|
-
server: string;
|
|
40
|
-
apiKey: string;
|
|
41
|
-
cwd: string;
|
|
42
|
-
codexSessionId: string;
|
|
43
|
-
event: string;
|
|
44
|
-
prompt?: string;
|
|
45
|
-
toolName?: string;
|
|
46
|
-
filePaths?: string[];
|
|
47
|
-
lastAssistantMessage?: string | null;
|
|
48
|
-
}
|
|
49
|
-
export declare function fetchHookContext(input: FetchHookContextInput): Promise<HookContextResponse | null>;
|
|
50
41
|
/**
|
|
51
42
|
* Server-driven injection lookup — POST /api/v1/hooks/injections (PR H).
|
|
52
43
|
*
|
|
@@ -59,17 +50,37 @@ export interface FetchInjectionsInput {
|
|
|
59
50
|
server: string;
|
|
60
51
|
apiKey: string;
|
|
61
52
|
cwd: string;
|
|
53
|
+
projectId?: string;
|
|
62
54
|
codexSessionId: string;
|
|
63
55
|
event: 'PreToolUse' | 'PostToolUse' | 'UserPromptSubmit' | 'SessionStart' | 'Stop';
|
|
64
56
|
prompt?: string;
|
|
65
57
|
toolName?: string;
|
|
66
58
|
toolArgs?: Record<string, unknown>;
|
|
59
|
+
/** Edit-style PreToolUse: absolute paths the host is about to write to. */
|
|
60
|
+
filePaths?: string[];
|
|
67
61
|
}
|
|
68
62
|
export declare function fetchInjections(input: FetchInjectionsInput): Promise<InjectionsResponse | null>;
|
|
63
|
+
/**
|
|
64
|
+
* JIT Knowledge Injector — Ph3 hook-side caller. Posts the user prompt
|
|
65
|
+
* to /api/v1/hooks/jit. Soft-fails (returns null) on timeout / network /
|
|
66
|
+
* 4xx so the dispatcher never blocks the agent's turn. source rides into
|
|
67
|
+
* auth_events.jit_delivered metadata for Ph6 host-compliance pivoting.
|
|
68
|
+
*/
|
|
69
|
+
export interface FetchJitInput {
|
|
70
|
+
server: string;
|
|
71
|
+
apiKey: string;
|
|
72
|
+
cwd: string;
|
|
73
|
+
projectId?: string;
|
|
74
|
+
codexSessionId: string;
|
|
75
|
+
prompt: string;
|
|
76
|
+
recentMemoryIds?: string[];
|
|
77
|
+
}
|
|
78
|
+
export declare function fetchJit(input: FetchJitInput): Promise<JitResponse | null>;
|
|
69
79
|
export interface ReportGateFiredInput {
|
|
70
80
|
server: string;
|
|
71
81
|
apiKey: string | null;
|
|
72
82
|
cwd: string;
|
|
83
|
+
projectId?: string;
|
|
73
84
|
codexSessionId: string;
|
|
74
85
|
tool: string;
|
|
75
86
|
mode: 'advisory' | 'enforce' | 'off';
|
|
@@ -80,6 +91,7 @@ export interface ReportBypassInput {
|
|
|
80
91
|
server: string;
|
|
81
92
|
apiKey: string | null;
|
|
82
93
|
cwd: string;
|
|
94
|
+
projectId?: string;
|
|
83
95
|
codexSessionId: string;
|
|
84
96
|
tool: string;
|
|
85
97
|
bypassType: string;
|
package/dist/lib/http.js
CHANGED
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
// Timeout budgets + AbortSignal helper extracted to @mnemonik/shared
|
|
2
2
|
// (audit Finding #7 cross-cutting cleanup).
|
|
3
3
|
import { FETCH_TIMEOUT_MS, TELEMETRY_TIMEOUT_MS, POST_TOOL_TIMEOUT_MS, MCP_PRECHECK_TIMEOUT_MS, withHookTimeout as withTimeout, } from '@mnemonik/shared';
|
|
4
|
+
import { stderr } from 'node:process';
|
|
4
5
|
const HOST = 'codex';
|
|
6
|
+
/**
|
|
7
|
+
* Inline surface for the server's `identity_mismatch` reason. See the
|
|
8
|
+
* matching helper in claude-code-hooks/src/lib/http.ts for the rationale —
|
|
9
|
+
* each hook package keeps its own copy rather than coupling on the
|
|
10
|
+
* published @mnemonik/shared version cadence.
|
|
11
|
+
*/
|
|
12
|
+
let _mismatchEmitted = false;
|
|
13
|
+
async function parseAndCheckMismatch(res) {
|
|
14
|
+
const body = (await res.json());
|
|
15
|
+
if (!_mismatchEmitted) {
|
|
16
|
+
const b = body;
|
|
17
|
+
if (b && b.ok === false && b.reason === 'identity_mismatch') {
|
|
18
|
+
stderr.write('mnemonik-hook: project identity mismatch — .mnemonik.json points to one project, ' +
|
|
19
|
+
'but this directory is registered to a different one on the server. ' +
|
|
20
|
+
'Fix .mnemonik.json (delete it and let session_bootstrap rewrite it) or cd to the correct project root.\n');
|
|
21
|
+
_mismatchEmitted = true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return body;
|
|
25
|
+
}
|
|
5
26
|
export async function fetchSnapshot(input) {
|
|
6
27
|
const url = `${input.server.replace(/\/$/, '')}/api/v1/hooks/snapshot`;
|
|
7
28
|
const { signal, cleanup } = withTimeout(FETCH_TIMEOUT_MS);
|
|
@@ -14,6 +35,7 @@ export async function fetchSnapshot(input) {
|
|
|
14
35
|
},
|
|
15
36
|
body: JSON.stringify({
|
|
16
37
|
cwd: input.cwd,
|
|
38
|
+
projectId: input.projectId,
|
|
17
39
|
claudeSessionId: input.codexSessionId,
|
|
18
40
|
host: 'codex',
|
|
19
41
|
}),
|
|
@@ -21,7 +43,7 @@ export async function fetchSnapshot(input) {
|
|
|
21
43
|
});
|
|
22
44
|
if (!res.ok)
|
|
23
45
|
return null;
|
|
24
|
-
return (
|
|
46
|
+
return parseAndCheckMismatch(res);
|
|
25
47
|
}
|
|
26
48
|
catch {
|
|
27
49
|
return null;
|
|
@@ -44,6 +66,7 @@ export async function fetchPolicyReminder(input) {
|
|
|
44
66
|
},
|
|
45
67
|
body: JSON.stringify({
|
|
46
68
|
cwd: input.cwd,
|
|
69
|
+
projectId: input.projectId,
|
|
47
70
|
claudeSessionId: input.codexSessionId,
|
|
48
71
|
tool: input.tool,
|
|
49
72
|
context: input.context,
|
|
@@ -52,7 +75,7 @@ export async function fetchPolicyReminder(input) {
|
|
|
52
75
|
});
|
|
53
76
|
if (!res.ok)
|
|
54
77
|
return null;
|
|
55
|
-
return (
|
|
78
|
+
return parseAndCheckMismatch(res);
|
|
56
79
|
}
|
|
57
80
|
catch {
|
|
58
81
|
return null;
|
|
@@ -73,6 +96,7 @@ export async function fetchMcpPrecheck(input) {
|
|
|
73
96
|
},
|
|
74
97
|
body: JSON.stringify({
|
|
75
98
|
cwd: input.cwd,
|
|
99
|
+
projectId: input.projectId,
|
|
76
100
|
// Server-side schema field is `cursorSessionId` (historical name from
|
|
77
101
|
// Phase 1); the regex accepts any session-id-shaped string regardless
|
|
78
102
|
// of host. We pass the Codex session_id verbatim.
|
|
@@ -86,7 +110,7 @@ export async function fetchMcpPrecheck(input) {
|
|
|
86
110
|
});
|
|
87
111
|
if (!res.ok)
|
|
88
112
|
return null;
|
|
89
|
-
return (
|
|
113
|
+
return parseAndCheckMismatch(res);
|
|
90
114
|
}
|
|
91
115
|
catch {
|
|
92
116
|
return null;
|
|
@@ -95,8 +119,8 @@ export async function fetchMcpPrecheck(input) {
|
|
|
95
119
|
cleanup();
|
|
96
120
|
}
|
|
97
121
|
}
|
|
98
|
-
export async function
|
|
99
|
-
const url = `${input.server.replace(/\/$/, '')}/api/v1/hooks/
|
|
122
|
+
export async function fetchInjections(input) {
|
|
123
|
+
const url = `${input.server.replace(/\/$/, '')}/api/v1/hooks/injections`;
|
|
100
124
|
const { signal, cleanup } = withTimeout(FETCH_TIMEOUT_MS);
|
|
101
125
|
try {
|
|
102
126
|
const res = await fetch(url, {
|
|
@@ -106,20 +130,21 @@ export async function fetchHookContext(input) {
|
|
|
106
130
|
authorization: `Bearer ${input.apiKey}`,
|
|
107
131
|
},
|
|
108
132
|
body: JSON.stringify({
|
|
109
|
-
host: 'codex',
|
|
110
|
-
event: input.event,
|
|
111
133
|
cwd: input.cwd,
|
|
134
|
+
projectId: input.projectId,
|
|
112
135
|
sessionId: input.codexSessionId,
|
|
136
|
+
event: input.event,
|
|
137
|
+
host: HOST,
|
|
113
138
|
prompt: input.prompt,
|
|
114
139
|
toolName: input.toolName,
|
|
140
|
+
toolArgs: input.toolArgs,
|
|
115
141
|
filePaths: input.filePaths,
|
|
116
|
-
lastAssistantMessage: input.lastAssistantMessage,
|
|
117
142
|
}),
|
|
118
143
|
signal,
|
|
119
144
|
});
|
|
120
145
|
if (!res.ok)
|
|
121
146
|
return null;
|
|
122
|
-
return (
|
|
147
|
+
return parseAndCheckMismatch(res);
|
|
123
148
|
}
|
|
124
149
|
catch {
|
|
125
150
|
return null;
|
|
@@ -128,8 +153,8 @@ export async function fetchHookContext(input) {
|
|
|
128
153
|
cleanup();
|
|
129
154
|
}
|
|
130
155
|
}
|
|
131
|
-
export async function
|
|
132
|
-
const url = `${input.server.replace(/\/$/, '')}/api/v1/hooks/
|
|
156
|
+
export async function fetchJit(input) {
|
|
157
|
+
const url = `${input.server.replace(/\/$/, '')}/api/v1/hooks/jit`;
|
|
133
158
|
const { signal, cleanup } = withTimeout(FETCH_TIMEOUT_MS);
|
|
134
159
|
try {
|
|
135
160
|
const res = await fetch(url, {
|
|
@@ -140,18 +165,17 @@ export async function fetchInjections(input) {
|
|
|
140
165
|
},
|
|
141
166
|
body: JSON.stringify({
|
|
142
167
|
cwd: input.cwd,
|
|
168
|
+
projectId: input.projectId,
|
|
143
169
|
sessionId: input.codexSessionId,
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
toolName: input.toolName,
|
|
148
|
-
toolArgs: input.toolArgs,
|
|
170
|
+
userPromptText: input.prompt,
|
|
171
|
+
recentMemoryIds: input.recentMemoryIds,
|
|
172
|
+
source: 'codex_hook',
|
|
149
173
|
}),
|
|
150
174
|
signal,
|
|
151
175
|
});
|
|
152
176
|
if (!res.ok)
|
|
153
177
|
return null;
|
|
154
|
-
return (
|
|
178
|
+
return parseAndCheckMismatch(res);
|
|
155
179
|
}
|
|
156
180
|
catch {
|
|
157
181
|
return null;
|
|
@@ -174,6 +198,7 @@ export async function reportGateFired(input) {
|
|
|
174
198
|
},
|
|
175
199
|
body: JSON.stringify({
|
|
176
200
|
cwd: input.cwd,
|
|
201
|
+
projectId: input.projectId,
|
|
177
202
|
host: 'codex',
|
|
178
203
|
codexSessionId: input.codexSessionId,
|
|
179
204
|
tool: input.tool,
|
|
@@ -204,6 +229,7 @@ export async function reportBypass(input) {
|
|
|
204
229
|
},
|
|
205
230
|
body: JSON.stringify({
|
|
206
231
|
cwd: input.cwd,
|
|
232
|
+
projectId: input.projectId,
|
|
207
233
|
host: 'codex',
|
|
208
234
|
codexSessionId: input.codexSessionId,
|
|
209
235
|
tool: input.tool,
|
package/dist/lib/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"AAQA,qEAAqE;AACrE,4CAA4C;AAC5C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,IAAI,WAAW,GAC/B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project identity for the Claude Code hooks dispatcher.
|
|
3
|
+
*
|
|
4
|
+
* Walks up from the hook's input cwd looking for `.mnemonik.json`. The file
|
|
5
|
+
* carries `{ projectId, projectName }` and is the canonical project
|
|
6
|
+
* identifier per the worktree-identity migration — passing `projectId` in
|
|
7
|
+
* every hook HTTP body lets the server route by UUID rather than by an
|
|
8
|
+
* exact-match path lookup, so worktrees, subfolders, and renamed paths
|
|
9
|
+
* resolve to the correct project without depending on Redis cache state.
|
|
10
|
+
*
|
|
11
|
+
* Per-process cache: cwd is stable for the lifetime of a hook invocation
|
|
12
|
+
* (one hook = one short-lived subprocess), so the first walk is the only
|
|
13
|
+
* filesystem hit.
|
|
14
|
+
*
|
|
15
|
+
* Fail-open: any error returns null; the dispatcher falls back to the
|
|
16
|
+
* cwd-only payload it sent before this migration.
|
|
17
|
+
*
|
|
18
|
+
* Each hook package keeps its own copy of this module rather than sharing
|
|
19
|
+
* one via `@mnemonik/shared`. The shared package is published independently
|
|
20
|
+
* and pinning a bumped version across all three host packages on every
|
|
21
|
+
* release is a worse coupling than duplicating ~50 lines.
|
|
22
|
+
*/
|
|
23
|
+
export interface ProjectIdentity {
|
|
24
|
+
projectId?: string;
|
|
25
|
+
projectName?: string;
|
|
26
|
+
projectRoot: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function findProjectIdentity(startCwd: string, opts?: {
|
|
29
|
+
maxDepth?: number;
|
|
30
|
+
}): Promise<ProjectIdentity | null>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project identity for the Claude Code hooks dispatcher.
|
|
3
|
+
*
|
|
4
|
+
* Walks up from the hook's input cwd looking for `.mnemonik.json`. The file
|
|
5
|
+
* carries `{ projectId, projectName }` and is the canonical project
|
|
6
|
+
* identifier per the worktree-identity migration — passing `projectId` in
|
|
7
|
+
* every hook HTTP body lets the server route by UUID rather than by an
|
|
8
|
+
* exact-match path lookup, so worktrees, subfolders, and renamed paths
|
|
9
|
+
* resolve to the correct project without depending on Redis cache state.
|
|
10
|
+
*
|
|
11
|
+
* Per-process cache: cwd is stable for the lifetime of a hook invocation
|
|
12
|
+
* (one hook = one short-lived subprocess), so the first walk is the only
|
|
13
|
+
* filesystem hit.
|
|
14
|
+
*
|
|
15
|
+
* Fail-open: any error returns null; the dispatcher falls back to the
|
|
16
|
+
* cwd-only payload it sent before this migration.
|
|
17
|
+
*
|
|
18
|
+
* Each hook package keeps its own copy of this module rather than sharing
|
|
19
|
+
* one via `@mnemonik/shared`. The shared package is published independently
|
|
20
|
+
* and pinning a bumped version across all three host packages on every
|
|
21
|
+
* release is a worse coupling than duplicating ~50 lines.
|
|
22
|
+
*/
|
|
23
|
+
import { readFile } from 'fs/promises';
|
|
24
|
+
import { dirname, join, isAbsolute, resolve as resolvePath } from 'path';
|
|
25
|
+
const DEFAULT_MAX_DEPTH = 10;
|
|
26
|
+
const cache = new Map();
|
|
27
|
+
export async function findProjectIdentity(startCwd, opts = {}) {
|
|
28
|
+
if (!startCwd)
|
|
29
|
+
return null;
|
|
30
|
+
if (cache.has(startCwd))
|
|
31
|
+
return cache.get(startCwd);
|
|
32
|
+
const maxDepth = opts.maxDepth ?? DEFAULT_MAX_DEPTH;
|
|
33
|
+
let dir = isAbsolute(startCwd) ? startCwd : resolvePath(startCwd);
|
|
34
|
+
for (let depth = 0; depth <= maxDepth; depth++) {
|
|
35
|
+
const configPath = join(dir, '.mnemonik.json');
|
|
36
|
+
try {
|
|
37
|
+
const raw = await readFile(configPath, 'utf-8');
|
|
38
|
+
const parsed = JSON.parse(raw);
|
|
39
|
+
if (typeof parsed.projectId === 'string' && parsed.projectId.length > 0) {
|
|
40
|
+
const result = {
|
|
41
|
+
projectId: parsed.projectId,
|
|
42
|
+
projectName: typeof parsed.projectName === 'string' ? parsed.projectName : undefined,
|
|
43
|
+
projectRoot: dir,
|
|
44
|
+
};
|
|
45
|
+
cache.set(startCwd, result);
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Not present, unreadable, or malformed — walk up.
|
|
51
|
+
}
|
|
52
|
+
const parent = dirname(dir);
|
|
53
|
+
if (parent === dir)
|
|
54
|
+
break;
|
|
55
|
+
dir = parent;
|
|
56
|
+
}
|
|
57
|
+
cache.set(startCwd, null);
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/lib/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,MAAM,CAAC;AAEzE,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAQ7B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkC,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,OAA8B,EAAE;IAEhC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IAEpD,IAAI,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;YAC1D,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxE,MAAM,MAAM,GAAoB;oBAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;oBACpF,WAAW,EAAE,GAAG;iBACjB,CAAC;gBACF,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC5B,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -96,14 +96,6 @@ export interface McpPrecheckResponse {
|
|
|
96
96
|
ttlSeconds: number;
|
|
97
97
|
} | null;
|
|
98
98
|
}
|
|
99
|
-
export interface HookContextResponse {
|
|
100
|
-
ok: boolean;
|
|
101
|
-
reason?: 'unauthorized' | 'no_project' | 'invalid' | 'unavailable';
|
|
102
|
-
additionalContext?: string;
|
|
103
|
-
systemMessage?: string;
|
|
104
|
-
continuationReason?: string;
|
|
105
|
-
contextBytes?: number;
|
|
106
|
-
}
|
|
107
99
|
/**
|
|
108
100
|
* Server response from /api/v1/hooks/injections (plan §7.3 / PR H).
|
|
109
101
|
* Each entry is an already-rendered envelope. Codex renders
|
|
@@ -121,6 +113,23 @@ export interface InjectionsResponse {
|
|
|
121
113
|
preToolDecision: 'allow' | 'deny' | null;
|
|
122
114
|
preToolDenyReason: string | null;
|
|
123
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Server response from /api/v1/hooks/jit — JIT Knowledge Injector gate
|
|
118
|
+
* result. Per docs/development/jit-knowledge-injector.md §2.4, the envelope
|
|
119
|
+
* is a `<mnemonik:directive signal="jit_required">` block (or null when
|
|
120
|
+
* the gate didn't fire), memoryIds lets the caller dedup against
|
|
121
|
+
* already-surfaced memories on subsequent calls, and verdicts carries the
|
|
122
|
+
* per-memory classification for telemetry.
|
|
123
|
+
*/
|
|
124
|
+
export interface JitResponse {
|
|
125
|
+
envelope: string | null;
|
|
126
|
+
memoryIds: string[];
|
|
127
|
+
verdicts: Array<{
|
|
128
|
+
id: string;
|
|
129
|
+
verdict: string;
|
|
130
|
+
reason: string;
|
|
131
|
+
}>;
|
|
132
|
+
}
|
|
124
133
|
/**
|
|
125
134
|
* Minimal config — apiKey + server only. Gate enforcement modes are
|
|
126
135
|
* package-level constants in `behavior.ts`, NOT user config. See that
|
package/dist/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAiJA,MAAM,CAAC,MAAM,cAAc,GAAG,0BAA0B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnemonik/codex-hooks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Codex lifecycle 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
|
"type": "module",
|
|
6
6
|
"bin": {
|