@getmarrow/mcp 3.9.50 → 3.9.52

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.
@@ -1,14 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.classifyTool = classifyTool;
3
4
  exports.preActionHookOutput = preActionHookOutput;
4
5
  exports.installPreActionHook = installPreActionHook;
5
6
  exports.runPreActionHookCommand = runPreActionHookCommand;
6
7
  const index_1 = require("./index");
7
8
  const env_1 = require("./env");
8
9
  const lifecycle_spool_1 = require("./lifecycle-spool");
10
+ const hook_tool_policy_1 = require("./hook-tool-policy");
9
11
  const hook_contract_1 = require("./hook-contract");
10
12
  const MAX_INPUT_BYTES = 64 * 1024;
11
- const RUNTIME_TIMEOUT_MS = 900;
13
+ const RUNTIME_TIMEOUT_MS = 3000;
12
14
  function asRecord(value) {
13
15
  return value && typeof value === 'object' && !Array.isArray(value)
14
16
  ? value
@@ -28,32 +30,67 @@ async function readStdin() {
28
30
  }
29
31
  function classifyTool(event) {
30
32
  const tool = String(event.tool_name || 'tool').slice(0, 64);
31
- const input = JSON.stringify(event.tool_input || {}).toLowerCase();
33
+ const normalizedTool = (0, hook_tool_policy_1.normalizeHookToolName)(tool);
34
+ const command = (0, hook_tool_policy_1.hookToolCommand)(event);
35
+ const input = `${normalizedTool} ${command} ${JSON.stringify(event.tool_input || {})}`.toLowerCase();
36
+ const readOnly = (0, hook_tool_policy_1.isReadOnlyToolEvent)(event);
37
+ const protectedShellCommand = (0, hook_tool_policy_1.isProtectedShellMutation)(command);
38
+ const infrastructureDeployment = /\b(?:kubectl|terraform|pulumi|helm)\b/.test(command.toLowerCase())
39
+ && protectedShellCommand;
32
40
  let type = 'process';
33
- if (/\b(?:deploy|release|publish|wrangler)\b/.test(input))
41
+ if (/\b(?:publish|unpublish|deprecate)\b/.test(input))
42
+ type = 'publish';
43
+ else if (/\b(?:deploy|release|wrangler)\b/.test(input) || infrastructureDeployment)
34
44
  type = 'deploy';
35
- else if (/\b(?:merge|pull request|git push)\b/.test(input))
45
+ else if (/\b(?:merge|pull request|git push)\b/.test(input) || /\bgit\b[^\n;&|]{0,240}\bpush\b/.test(command.toLowerCase()))
36
46
  type = 'review';
37
47
  else if (/\b(?:migration|schema|database|d1)\b/.test(input))
38
48
  type = 'migration';
39
49
  else if (/\b(?:secret|credential|token|key|permission)\b/.test(input))
40
50
  type = 'audit';
51
+ else if (/\b(?:payment|refund|charge|invoice|stripe|financial)\b/.test(input))
52
+ type = 'financial';
41
53
  const surfaces = [
42
- /\b(?:deploy|release|production|prod|wrangler)\b/.test(input) ? 'production' : '',
54
+ /\b(?:deploy|release|production|prod|wrangler)\b/.test(input) || infrastructureDeployment ? 'production' : '',
43
55
  /\b(?:git|github|merge|pull request|push)\b/.test(input) ? 'github' : '',
44
56
  /\b(?:npm|package|publish)\b/.test(input) ? 'npm' : '',
45
57
  /\b(?:secret|credential|token|key)\b/.test(input) ? 'secrets' : '',
58
+ /\b(?:migration|schema|database|d1)\b/.test(input) ? 'database' : '',
59
+ /\b(?:payment|refund|charge|invoice|stripe|financial)\b/.test(input) ? 'financial' : '',
46
60
  ].filter(Boolean);
47
- const risk = surfaces.includes('production') || surfaces.includes('secrets') ? 'high' : 'medium';
61
+ const protectedAction = !readOnly && (/\b(?:deploy|release|publish|git\s+push|git\s+merge|gh\s+pr\s+merge|migration|migrate|secret|credential|rotate|revoke|payment|refund|charge|invoice|production|prod)\b/.test(input)
62
+ || protectedShellCommand
63
+ || (String(event.tool_name || '').startsWith('mcp__') && !(0, hook_tool_policy_1.isOfficialMarrowMcpTool)(event.tool_name)));
64
+ const risk = readOnly ? 'low' : protectedAction ? 'high' : 'medium';
65
+ const target = surfaces.includes('npm') ? `npm:${type}`
66
+ : surfaces.includes('github') ? `github:${type}`
67
+ : surfaces.includes('production') ? `production:${type}`
68
+ : surfaces.includes('database') ? `database:${type}`
69
+ : surfaces.includes('financial') ? `financial:${type}`
70
+ : surfaces.includes('secrets') ? `secrets:${type}`
71
+ : `workspace:${type}`;
48
72
  return {
49
73
  action: `classified ${tool} action: ${type} on ${surfaces.join(', ') || 'workspace'}`,
74
+ target,
50
75
  type,
51
- role: ['deploy', 'review', 'migration', 'audit'].includes(type) ? type : 'general',
76
+ role: type === 'publish' ? 'deploy' : ['deploy', 'review', 'migration', 'audit'].includes(type) ? type : 'general',
52
77
  surfaces: surfaces.length ? surfaces : ['workspace'],
53
78
  risk,
79
+ protected: protectedAction,
80
+ readOnly,
54
81
  };
55
82
  }
56
- function preActionHookOutput(runtime) {
83
+ function preActionHookOutput(result) {
84
+ const { runtime, permit, protectedRisk } = result;
85
+ if (protectedRisk && (!runtime || !permit?.verified)) {
86
+ return {
87
+ hookSpecificOutput: {
88
+ hookEventName: 'PreToolUse',
89
+ permissionDecision: 'deny',
90
+ permissionDecisionReason: result.enforcementError || 'Marrow could not verify the required action permit. Retry after governance is available.',
91
+ },
92
+ };
93
+ }
57
94
  if (!runtime?.risk_gate) {
58
95
  return {};
59
96
  }
@@ -70,12 +107,17 @@ function preActionHookOutput(runtime) {
70
107
  hookSpecificOutput: {
71
108
  hookEventName: 'PreToolUse',
72
109
  ...(permissionDecision ? { permissionDecision, permissionDecisionReason: reason } : {}),
73
- ...(runtime.before_you_act ? { additionalContext: runtime.before_you_act } : {}),
110
+ ...(runtime.before_you_act || permit?.permit_id ? {
111
+ additionalContext: [
112
+ runtime.before_you_act,
113
+ permit?.permit_id ? `Marrow action permit verified: ${permit.permit_id}. Evidence and outcome closure remain required.` : null,
114
+ ].filter(Boolean).join('\n'),
115
+ } : {}),
74
116
  },
75
117
  };
76
118
  }
77
- function emitDecision(runtime) {
78
- process.stdout.write(JSON.stringify(preActionHookOutput(runtime)));
119
+ function emitDecision(result) {
120
+ process.stdout.write(JSON.stringify(preActionHookOutput(result)));
79
121
  }
80
122
  async function withTimeout(operation) {
81
123
  const controller = new AbortController();
@@ -120,25 +162,47 @@ async function runPreActionHookCommand(input) {
120
162
  event = raw ? JSON.parse(raw) : {};
121
163
  }
122
164
  catch {
123
- process.stdout.write('{}');
165
+ emitDecision({ runtime: null, permit: null, protectedRisk: true, enforcementError: 'Marrow rejected malformed or oversized pre-action input.' });
124
166
  return;
125
167
  }
126
168
  }
127
169
  const source = asRecord(event);
128
170
  if (!source?.tool_name) {
171
+ emitDecision({ runtime: null, permit: null, protectedRisk: true, enforcementError: 'Marrow could not classify this mutation-capable tool request.' });
172
+ return;
173
+ }
174
+ const classified = classifyTool(source);
175
+ if (classified.readOnly) {
129
176
  process.stdout.write('{}');
130
177
  return;
131
178
  }
132
- const resolved = (0, env_1.resolveMarrowEnv)();
179
+ let resolved;
180
+ let baseUrl;
181
+ try {
182
+ resolved = (0, env_1.resolveMarrowEnv)({ trustedOnly: true });
183
+ baseUrl = (0, index_1.validateBaseUrl)(resolved.baseUrl || 'https://api.getmarrow.ai');
184
+ }
185
+ catch {
186
+ emitDecision({
187
+ runtime: null,
188
+ permit: null,
189
+ protectedRisk: classified.protected,
190
+ enforcementError: 'Marrow enforcement configuration is unavailable. Restore the trusted configuration before retrying this protected action.',
191
+ });
192
+ return;
193
+ }
133
194
  if (!resolved.apiKey) {
134
- process.stdout.write('{}');
195
+ emitDecision({
196
+ runtime: null,
197
+ permit: null,
198
+ protectedRisk: classified.protected,
199
+ enforcementError: 'Marrow credentials are unavailable for this protected action. Restore the configured agent key before retrying.',
200
+ });
135
201
  return;
136
202
  }
137
- const baseUrl = (0, index_1.validateBaseUrl)(resolved.baseUrl || 'https://api.getmarrow.ai');
138
203
  const sessionId = resolved.sessionId || source.session_id;
139
204
  const agentId = resolved.agentId || undefined;
140
205
  const correlation = (0, hook_contract_1.stableToolCorrelation)({ ...source, session_id: sessionId });
141
- const classified = classifyTool(source);
142
206
  const lifecycle = (0, lifecycle_spool_1.recordLifecycleEvent)({
143
207
  apiKey: resolved.apiKey,
144
208
  baseUrl,
@@ -152,17 +216,73 @@ async function runPreActionHookCommand(input) {
152
216
  correlation_id: correlation,
153
217
  ...(0, hook_contract_1.nativeHookEvidence)('pre_action'),
154
218
  action: classified.action,
219
+ target: classified.target,
220
+ surfaces: classified.surfaces,
155
221
  risk_level: classified.risk,
156
222
  outcome_state: 'pending',
157
223
  },
158
224
  }).catch(() => null);
159
- const runtime = (signal) => (0, index_1.marrowAgentRuntime)(resolved.apiKey, baseUrl, {
160
- action: classified.action,
161
- type: classified.type,
162
- role: classified.role,
163
- surfaces: classified.surfaces,
164
- }, sessionId, agentId, signal);
165
- const [result] = await Promise.all([withTimeout(runtime), lifecycle]);
166
- emitDecision(result);
225
+ const control = async (signal) => {
226
+ const runtime = await (0, index_1.marrowAgentRuntime)(resolved.apiKey, baseUrl, {
227
+ action: classified.action,
228
+ target: classified.target,
229
+ type: classified.type,
230
+ role: classified.role,
231
+ surfaces: classified.surfaces,
232
+ }, sessionId, agentId, signal);
233
+ const decision = await (0, index_1.marrowThink)(resolved.apiKey, baseUrl, {
234
+ action: classified.action,
235
+ target: classified.target,
236
+ surfaces: classified.surfaces,
237
+ type: classified.type,
238
+ source_kind: 'integration',
239
+ source_meta: {
240
+ harness: 'claude-code',
241
+ correlation_id: correlation,
242
+ gate_receipt_id: runtime.gate_receipt?.id || runtime.gate_receipt_id || null,
243
+ },
244
+ }, sessionId, agentId, signal);
245
+ const issued = await (0, index_1.marrowEnforcement)(resolved.apiKey, baseUrl, {
246
+ operation: 'issue',
247
+ action: classified.action,
248
+ action_type: classified.type,
249
+ target: classified.target,
250
+ correlation_id: correlation,
251
+ harness: 'claude-code',
252
+ decision_id: decision.decision_id,
253
+ gate_receipt_id: runtime.gate_receipt?.id || runtime.gate_receipt_id || null,
254
+ proof_requirements: runtime.proof_pack?.fields || [],
255
+ surfaces: classified.surfaces,
256
+ }, sessionId, agentId, signal);
257
+ const issuedPermitId = typeof issued.permit_id === 'string' ? issued.permit_id.trim() : '';
258
+ if (!issued.permit || !issuedPermitId) {
259
+ return { runtime, permit: { ...issued, verified: false }, protectedRisk: classified.protected, enforcementError: 'Marrow did not issue a complete action permit.' };
260
+ }
261
+ const verified = await (0, index_1.marrowEnforcement)(resolved.apiKey, baseUrl, {
262
+ operation: 'verify',
263
+ permit: issued.permit,
264
+ action: classified.action,
265
+ action_type: classified.type,
266
+ target: classified.target,
267
+ surfaces: classified.surfaces,
268
+ correlation_id: correlation,
269
+ harness: 'claude-code',
270
+ }, sessionId, agentId, signal);
271
+ const verifiedPermitId = typeof verified.permit_id === 'string' ? verified.permit_id.trim() : '';
272
+ const verifiedExactly = verified.verified === true && verifiedPermitId === issuedPermitId;
273
+ return {
274
+ runtime,
275
+ permit: { ...issued, ...verified, permit_id: issuedPermitId, permit: undefined, verified: verifiedExactly },
276
+ protectedRisk: classified.protected,
277
+ ...(verifiedExactly ? {} : { enforcementError: 'Marrow permit verification did not match the issued permit.' }),
278
+ };
279
+ };
280
+ const [result] = await Promise.all([withTimeout(control), lifecycle]);
281
+ emitDecision(result || {
282
+ runtime: null,
283
+ permit: null,
284
+ protectedRisk: classified.protected,
285
+ enforcementError: 'Marrow governance timed out before this protected action. Retry instead of bypassing the gate.',
286
+ });
167
287
  }
168
288
  //# sourceMappingURL=hook-pre-action.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook-pre-action.js","sourceRoot":"","sources":["../src/hook-pre-action.ts"],"names":[],"mappings":";;AAyEA,kDAoBC;AA0BD,oDAgBC;AAED,0DAoDC;AA7LD,mCAA8D;AAC9D,+BAAyC;AACzC,uDAAyD;AACzD,mDASyB;AAEzB,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC;AAClC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAU/B,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAC,KAAgC;QAClC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,KAAK,GAAG,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACzF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,YAAY,CAAC,KAAsB;IAO1C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACnE,IAAI,IAAI,GAAG,SAAS,CAAC;IACrB,IAAI,yCAAyC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,QAAQ,CAAC;SACtE,IAAI,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,QAAQ,CAAC;SACvE,IAAI,sCAAsC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,WAAW,CAAC;SAC3E,IAAI,gDAAgD,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,OAAO,CAAC;IACtF,MAAM,QAAQ,GAAG;QACf,iDAAiD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;QACjF,4CAA4C,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACxE,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtD,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;KACnE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjG,OAAO;QACL,MAAM,EAAE,cAAc,IAAI,YAAY,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE;QACrF,IAAI;QACJ,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAClF,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACpD,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAA8D;IAChG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB;WACnC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO;WAC1B,yEAAyE,CAAC;IAC/E,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,KAAK,iBAAiB;QAC5D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;YACnD,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,IAAI,CAAC;IACT,OAAO;QACL,kBAAkB,EAAE;YAClB,aAAa,EAAE,YAAY;YAC3B,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAA8D;IAClF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,KAAK,UAAU,WAAW,CAAI,SAA8C;IAC1E,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5B,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC5B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,UAAU,CAAC,KAAK,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACzB,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;IAC3D,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAA6B,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAA,oCAAoB,EAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAA,0CAA0B,EAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAA,0CAA0B,EAC3C,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,uCAAuB,EACvB,mCAAmB,CACpB,CAAC;IACF,QAAQ,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;IAC9D,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACjE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;AAC/D,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,KAAe;IAC3D,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO;QAAE,OAAO;IACrD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAA2B,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,IAAA,sBAAgB,GAAE,CAAC;IACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,QAAQ,CAAC,OAAO,IAAI,0BAA0B,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;IAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,SAAS,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAA,qCAAqB,EAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAA,sCAAoB,EAAC;QACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO;QACP,KAAK,EAAE;YACL,QAAQ,EAAE,WAAW,WAAW,EAAE;YAClC,UAAU,EAAE,oBAAoB;YAChC,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,IAAA,uCAAuB,EAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;YACnE,cAAc,EAAE,WAAW;YAC3B,GAAG,IAAA,kCAAkB,EAAC,YAAY,CAAC;YACnC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,aAAa,EAAE,SAAS;SACzB;KACF,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,CAAC,MAAmB,EAAE,EAAE,CAAC,IAAA,0BAAkB,EAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;QACpF,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACtE,YAAY,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"hook-pre-action.js","sourceRoot":"","sources":["../src/hook-pre-action.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const SESSION_HOOK_COMMAND = "npx -y @getmarrow/mcp@3.9.50 session-hook";
1
+ export declare const SESSION_HOOK_COMMAND = "npx -y @getmarrow/mcp@3.9.52 session-hook";
2
2
  export declare function installSessionEndHook(startDir?: string): {
3
3
  settingsPath: string;
4
4
  installed: boolean;
@@ -0,0 +1,11 @@
1
+ type ToolPolicyEvent = {
2
+ tool_name?: string;
3
+ tool_input?: unknown;
4
+ };
5
+ export declare function normalizeHookToolName(value: unknown): string;
6
+ export declare function isOfficialMarrowMcpTool(value: unknown): boolean;
7
+ export declare function isProtectedShellMutation(command: string): boolean;
8
+ export declare function hookToolCommand(event: ToolPolicyEvent): string;
9
+ export declare function isReadOnlyToolEvent(event: ToolPolicyEvent): boolean;
10
+ export {};
11
+ //# sourceMappingURL=hook-tool-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-tool-policy.d.ts","sourceRoot":"","sources":["../src/hook-tool-policy.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AA8EF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAKjE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAa9D;AAsBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAgBnE"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeHookToolName = normalizeHookToolName;
4
+ exports.isOfficialMarrowMcpTool = isOfficialMarrowMcpTool;
5
+ exports.isProtectedShellMutation = isProtectedShellMutation;
6
+ exports.hookToolCommand = hookToolCommand;
7
+ exports.isReadOnlyToolEvent = isReadOnlyToolEvent;
8
+ const READ_ONLY_TOOLS = new Set([
9
+ 'read',
10
+ 'grep',
11
+ 'glob',
12
+ 'ls',
13
+ 'notebookread',
14
+ 'todoread',
15
+ 'tasklist',
16
+ 'taskget',
17
+ 'sessions_list',
18
+ 'sessions_history',
19
+ 'session_status',
20
+ 'marrow_list_memories',
21
+ 'marrow_retrieve_memories',
22
+ 'marrow_get_memory',
23
+ 'marrow_dashboard',
24
+ 'marrow_digest',
25
+ 'marrow_status',
26
+ 'marrow_orient',
27
+ 'marrow_ask',
28
+ ]);
29
+ const READ_ONLY_BASH_COMMANDS = new Set([
30
+ 'read', 'grep', 'rg', 'ls', 'cat', 'find', 'tail', 'head', 'wc', 'file',
31
+ 'stat', 'which', 'type', 'echo', 'printf', 'pwd', 'date', 'env', 'printenv',
32
+ 'whoami', 'uname',
33
+ ]);
34
+ const MUTATION_TOOL_VERB = /(?:^|__|_)(?:create|update|delete|remove|write|edit|send|post|put|patch|execute|run|deploy|publish|merge|push|commit|revoke|rotate|charge|refund|cancel|approve)(?:_|$)/;
35
+ const READ_ONLY_TOOL_VERB = /(?:^|__|_)(?:get|list|read|search|find|fetch|status|inspect|query)(?:_|$)/;
36
+ const PROTECTED_SHELL_MUTATION_FAMILIES = [
37
+ /\b(?:npm|pnpm|yarn)(?:\s+npm)?\b[\s\S]{0,8192}\b(?:publish|unpublish|deprecate|access|owner|team|token|login|logout|profile\s+(?:set|enable-2fa|disable-2fa)|org\s+(?:set|rm|remove)|dist-tag|tag\s+(?:add|remove))\b/i,
38
+ /\b(?:cargo\s+(?:publish|yank|owner)|twine\s+upload|gem\s+(?:push|yank|owner)|(?:dotnet\s+nuget|nuget)\s+(?:push|delete))\b/i,
39
+ /\bgit\b[\s\S]{0,8192}\b(?:push|commit|merge|rebase|reset|tag|clean|rm|update-ref|cherry-pick|revert|worktree\s+(?:add|move|remove|prune|repair|lock|unlock)|branch\s+(?:-[dDmM]|--delete|--move)|remote\s+(?:add|remove|rename|set-url|set-head|prune|update)|checkout\s+-[bB]|switch\s+-[cC])\b/i,
40
+ /\bgh\b[\s\S]{0,8192}\b(?:auth\s+logout|pr\s+(?:merge|close|reopen|edit|review|comment)|issue\s+(?:create|close|reopen|edit|comment)|run\s+(?:cancel|delete|rerun)|release\s+(?:create|delete|edit|upload)|repo\s+(?:archive|delete|edit|fork|rename|transfer)|workflow\s+run|secret\s+(?:set|delete)|variable\s+(?:set|delete))\b/i,
41
+ /\bgh\s+api\b[\s\S]{0,8192}(?:(?:--method|-X)(?:=|\s+)(?:POST|PUT|PATCH|DELETE)\b|(?:-f|-F|--field|--raw-field|--input)(?:=|\s+))/i,
42
+ /\b(?:kubectl|oc)\b[\s\S]{0,8192}\b(?:apply|create|delete|edit|patch|replace|rollout|scale|set|drain|cordon|uncordon|taint|exec|cp|run|expose|autoscale|label|annotate|reconcile|certificate\s+(?:approve|deny))\b/i,
43
+ /\b(?:terraform|terragrunt|tofu)\b[\s\S]{0,8192}\b(?:apply|destroy|import|taint|untaint|force-unlock|state\s+(?:mv|rm|push|replace-provider)|workspace\s+(?:new|delete))\b/i,
44
+ /\bpulumi\b[\s\S]{0,8192}\b(?:up|destroy|import|refresh|stack\s+rm|config\s+(?:set|rm))\b/i,
45
+ /\bhelm\b[\s\S]{0,8192}\b(?:install|upgrade|uninstall|rollback|push)\b/i,
46
+ /\bflux\b[\s\S]{0,8192}\b(?:bootstrap|create|delete|install|reconcile|resume|suspend|tag|uninstall)\b/i,
47
+ /\bnomad\b[\s\S]{0,8192}\b(?:job\s+(?:dispatch|plan|promote|run|scale|stop)|alloc\s+stop|deployment\s+(?:fail|promote)|node\s+drain|acl\s+(?:bootstrap|policy|role|token))\b/i,
48
+ /\bcdk\b[\s\S]{0,8192}\b(?:bootstrap|deploy|destroy|import|rollback|watch)\b/i,
49
+ /\bansible-playbook\b/i,
50
+ /\bansible\b[\s\S]{0,8192}(?:(?:-m|--module-name)(?:=|\s+)(?:shell|command|raw|script)\b|(?:-a|--args)(?:=|\s+))/i,
51
+ /\b(?:docker|podman)\b[\s\S]{0,8192}\b(?:push|buildx\s+build\b[\s\S]*--push)\b/i,
52
+ /\bwrangler\b[\s\S]{0,8192}\b(?:deploy|delete|rollback|execute|apply|put|bulk|secret|publish)\b/i,
53
+ /\bcurl\b[\s\S]{0,8192}(?:(?:-X\s*|--request(?:=|\s+))(?:POST|PUT|PATCH|DELETE)\b|--(?:json|data(?:-ascii|-raw|-binary|-urlencode)?)(?:=|\s+)|-[dF](?:\s+|[^A-Za-z])|--form(?:-string)?(?:=|\s+)|(?:-T|--upload-file|-K|--config)(?:=|\s+))/i,
54
+ /\b(?:http|xh)\b[\s\S]{0,8192}(?:\b(?:POST|PUT|PATCH|DELETE)\b|(?:--form|--raw|-f)\b|\s[^\s=:@]+(?::=|=|@))/i,
55
+ /\bwget\b[\s\S]{0,8192}(?:--post-data|--post-file|--body-data|--body-file|--method(?:=|\s+)(?:POST|PUT|PATCH|DELETE))\b/i,
56
+ /\b(?:psql|mysql|sqlite3|duckdb)\b[\s\S]{0,8192}(?:\b(?:drop|delete|update|insert|replace|alter|truncate|create|grant|revoke|call|do)\b|(?:-f|--file|\.read|source)(?:=|\s+)|\s<\s*[^\s])/i,
57
+ /\bredis-cli\b[\s\S]{0,8192}(?:--pipe\b|\b(?:set|setex|psetex|mset|del|unlink|getdel|incr|decr|append|expire|persist|rename|move|flushall|flushdb|shutdown|eval|evalsha|fcall|fcall_ro|function|script\s+(?:load|flush|kill)|config\s+set|acl\s+setuser|hset|hdel|lpush|rpush|lpop|rpop|sadd|srem|zadd|zrem|xadd|xdel|publish|restore|migrate)\b)/i,
58
+ /\baws\b[\s\S]{0,8192}\b(?:create|update|delete|put|attach|detach|associate|disassociate|terminate|stop|start|reboot|modify|restore|rotate|tag|untag|deploy|sync|s3\s+(?:cp|mv|rm)|s3api\s+put-object|ssm\s+(?:put-parameter|delete-parameter|delete-parameters))\b/i,
59
+ /\bgcloud\b[\s\S]{0,8192}\b(?:create|update|delete|deploy|add|remove|set|destroy|disable|restore|storage\s+(?:cp|mv|rm|rsync)|pubsub\s+(?:topics|subscriptions)\s+(?:create|delete|update))\b/i,
60
+ /\baz\b[\s\S]{0,8192}\b(?:create|update|delete|set|deploy|start|stop|restart|restore|storage\s+blob\s+(?:upload|delete|copy)|group\s+(?:create|delete|update))\b/i,
61
+ /\brclone\b[\s\S]{0,8192}\b(?:copy|copyto|sync|move|moveto|delete|deletefile|purge|mkdir|rmdir|bisync)\b/i,
62
+ /\bgsutil\b[\s\S]{0,8192}\b(?:cp|mv|rm|rsync|setacl|setmeta|web)\b/i,
63
+ /(?:^|[;&|]\s*|\bsudo\s+|\benv\s+)mc\b[\s\S]{0,8192}\b(?:cp|mv|rm|mirror|mb|rb|anonymous|admin)\b/i,
64
+ /\boci\b[\s\S]{0,8192}\bos\b[\s\S]{0,8192}\b(?:put|upload|bulk-upload|delete|rename|restore|reencrypt)\b/i,
65
+ /\b(?:vault|op)\b[\s\S]{0,8192}\b(?:write|put|patch|delete|edit|create|move|rotate|revoke|destroy|share|operator\s+(?:init|rekey|generate-root|seal|unseal))\b/i,
66
+ /\bpass\b[\s\S]{0,8192}\b(?:insert|edit|generate|rm|remove|mv|cp|init|git)\b/i,
67
+ /(?:^|[\s;&|]|\bsudo\s+|\benv\s+)(?:(?:\/[^\s/]+)*\/)?(?:rm\b|unlink\b|shred\b|truncate\b|dd\b[\s\S]{0,8192}\bof=|find\b[\s\S]{0,8192}\s-delete\b|xargs\b[\s\S]{0,8192}(?:(?:\/[^\s/]+)*\/)?rm\b)/i,
68
+ /(?:^|[\s;&|])["']\/(?:[^\/"']+\/)*(?:rm|unlink|shred|truncate)["'](?:\s|$)/i,
69
+ ];
70
+ function asRecord(value) {
71
+ return value && typeof value === 'object' && !Array.isArray(value)
72
+ ? value
73
+ : null;
74
+ }
75
+ function stringValue(value) {
76
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
77
+ }
78
+ function normalizeHookToolName(value) {
79
+ return String(value || '').replace(/^mcp__/, '').trim().toLowerCase();
80
+ }
81
+ function isOfficialMarrowMcpTool(value) {
82
+ return /^mcp__marrow__marrow_[a-z0-9_]+$/i.test(String(value || '').trim());
83
+ }
84
+ function isProtectedShellMutation(command) {
85
+ const raw = String(command || '');
86
+ if (raw.length > 8192)
87
+ return true;
88
+ const bounded = raw.slice(0, 8192);
89
+ return PROTECTED_SHELL_MUTATION_FAMILIES.some((pattern) => pattern.test(bounded));
90
+ }
91
+ function hookToolCommand(event) {
92
+ if (typeof event.tool_input === 'string')
93
+ return event.tool_input.trim();
94
+ const input = asRecord(event.tool_input);
95
+ if (!input)
96
+ return '';
97
+ for (const key of ['command', 'description', 'query', 'path', 'file_path', 'url', 'name']) {
98
+ const value = stringValue(input[key]);
99
+ if (value)
100
+ return value;
101
+ }
102
+ try {
103
+ return JSON.stringify(input).slice(0, 4096);
104
+ }
105
+ catch {
106
+ return '';
107
+ }
108
+ }
109
+ function hasWriteLikeShellSyntax(command) {
110
+ return /(^|[^>])>(?!>)|>>|\b(?:tee|touch|mkdir|rm|mv|cp|install|uninstall|publish|deploy|release)\b|\bsed\s+-i\b|\bperl\s+-i\b/i.test(command)
111
+ || /\b(?:curl|wget|nc|ncat|netcat|scp|rsync|ssh|ftp|tftp)\b/i.test(command)
112
+ || /\bgit\s+(?:push|merge|commit|rebase|reset|checkout|switch|tag)\b/i.test(command)
113
+ || isProtectedShellMutation(command);
114
+ }
115
+ function hasCompoundShellSyntax(command) {
116
+ return /[|;&`\n\r]|\$\(|\$\{/.test(command);
117
+ }
118
+ function pathOnlyInput(value) {
119
+ const input = asRecord(value);
120
+ if (!input)
121
+ return false;
122
+ const keys = Object.keys(input);
123
+ return keys.length > 0
124
+ && keys.every((key) => ['path', 'file_path', 'filename', 'target_file'].includes(key))
125
+ && Object.values(input).every((item) => typeof item === 'string' && item.trim().length > 0);
126
+ }
127
+ function isReadOnlyToolEvent(event) {
128
+ const tool = normalizeHookToolName(event.tool_name);
129
+ if (!tool)
130
+ return false;
131
+ if (READ_ONLY_TOOLS.has(tool))
132
+ return true;
133
+ if (MUTATION_TOOL_VERB.test(tool))
134
+ return false;
135
+ if (READ_ONLY_TOOL_VERB.test(tool))
136
+ return true;
137
+ const command = hookToolCommand(event).replace(/\s+/g, ' ').trim();
138
+ if (tool === 'bash' && command && !hasCompoundShellSyntax(command) && !hasWriteLikeShellSyntax(command)) {
139
+ if (/^(?:node|npm)\s+(?:-v|--version)$/i.test(command))
140
+ return true;
141
+ if (/^git\s+(?:status|diff|show|log|branch|rev-parse|ls-files|ls-remote)(?:\s|$)/i.test(command))
142
+ return true;
143
+ const firstToken = command.split(/[\s|;&]+/, 1)[0]?.toLowerCase();
144
+ if (firstToken && READ_ONLY_BASH_COMMANDS.has(firstToken))
145
+ return true;
146
+ }
147
+ return !['edit', 'write', 'multiedit'].includes(tool) && pathOnlyInput(event.tool_input);
148
+ }
149
+ //# sourceMappingURL=hook-tool-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-tool-policy.js","sourceRoot":"","sources":["../src/hook-tool-policy.ts"],"names":[],"mappings":";;AAiFA,sDAEC;AAED,0DAEC;AAED,4DAKC;AAED,0CAaC;AAsBD,kDAgBC;AA9ID,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,cAAc;IACd,UAAU;IACV,UAAU;IACV,SAAS;IACT,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,sBAAsB;IACtB,0BAA0B;IAC1B,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;IACf,eAAe;IACf,eAAe;IACf,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IACvE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAC3E,QAAQ,EAAE,OAAO;CAClB,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,yKAAyK,CAAC;AACrM,MAAM,mBAAmB,GAAG,2EAA2E,CAAC;AAExG,MAAM,iCAAiC,GAAG;IACxC,wNAAwN;IACxN,6HAA6H;IAC7H,mSAAmS;IACnS,oUAAoU;IACpU,mIAAmI;IACnI,oNAAoN;IACpN,4KAA4K;IAC5K,2FAA2F;IAC3F,wEAAwE;IACxE,uGAAuG;IACvG,8KAA8K;IAC9K,8EAA8E;IAC9E,uBAAuB;IACvB,kHAAkH;IAClH,gFAAgF;IAChF,iGAAiG;IACjG,6OAA6O;IAC7O,6GAA6G;IAC7G,yHAAyH;IACzH,2LAA2L;IAC3L,mVAAmV;IACnV,qQAAqQ;IACrQ,+LAA+L;IAC/L,kKAAkK;IAClK,0GAA0G;IAC1G,oEAAoE;IACpE,mGAAmG;IACnG,0GAA0G;IAC1G,gKAAgK;IAChK,8EAA8E;IAC9E,mMAAmM;IACnM,6EAA6E;CAC9E,CAAC;AAEF,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAC,KAAgC;QAClC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAAc;IAClD,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACxE,CAAC;AAED,SAAgB,uBAAuB,CAAC,KAAc;IACpD,OAAO,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAgB,wBAAwB,CAAC,OAAe;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACnC,OAAO,iCAAiC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAgB,eAAe,CAAC,KAAsB;IACpD,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC1F,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC9C,OAAO,yHAAyH,CAAC,IAAI,CAAC,OAAO,CAAC;WACzI,0DAA0D,CAAC,IAAI,CAAC,OAAO,CAAC;WACxE,mEAAmE,CAAC,IAAI,CAAC,OAAO,CAAC;WACjF,wBAAwB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC7C,OAAO,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC;WACjB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;WACnF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,SAAgB,mBAAmB,CAAC,KAAsB;IACxD,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;QACxG,IAAI,oCAAoC,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACpE,IAAI,8EAA8E,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9G,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAClE,IAAI,UAAU,IAAI,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;IACzE,CAAC;IAED,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAC3F,CAAC"}
package/dist/hook.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export declare const AUTO_HOOK_COMMAND = "npx -y @getmarrow/mcp@3.9.50 hook";
2
- export declare const AUTO_HOOK_MATCHER = "Bash|Edit|Write|MultiEdit|mcp__(?!marrow_).*";
1
+ export declare const AUTO_HOOK_COMMAND = "npx -y @getmarrow/mcp@3.9.52 hook";
2
+ export declare const AUTO_HOOK_MATCHER = "Bash|Edit|Write|MultiEdit|mcp__(?!marrow__marrow_).*";
3
3
  interface HookEvent {
4
4
  session_id?: string;
5
5
  hook_event_name?: string;
@@ -16,6 +16,7 @@ interface HookInstallResult {
16
16
  installed: boolean;
17
17
  }
18
18
  export declare function shouldSkipAutoLog(event: HookEvent): boolean;
19
+ export declare function deriveAction(event: HookEvent): string | null;
19
20
  export declare function installPostToolUseHook(startDir?: string): HookInstallResult;
20
21
  export declare function runHookCommand(): Promise<void>;
21
22
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAyDA,eAAO,MAAM,iBAAiB,sCAA6B,CAAC;AAC5D,eAAO,MAAM,iBAAiB,iDAAsB,CAAC;AAOrD,UAAU,SAAS;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AA0ED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAqB3D;AA2ED,wBAAgB,sBAAsB,CAAC,QAAQ,GAAE,MAAsB,GAAG,iBAAiB,CAwB1F;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA4EpD"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,iBAAiB,sCAA6B,CAAC;AAC5D,eAAO,MAAM,iBAAiB,yDAAsB,CAAC;AAOrD,UAAU,SAAS;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAgBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE3D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAK5D;AA2BD,wBAAgB,sBAAsB,CAAC,QAAQ,GAAE,MAAsB,GAAG,iBAAiB,CAwB1F;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAgFpD"}