@getmarrow/mcp 3.9.74 → 3.9.75
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/README.md +10 -6
- package/dist/cli.js +11 -9
- package/dist/cli.js.map +1 -1
- package/dist/control-state.d.ts +25 -0
- package/dist/control-state.d.ts.map +1 -0
- package/dist/control-state.js +112 -0
- package/dist/control-state.js.map +1 -0
- package/dist/hook-context.d.ts.map +1 -1
- package/dist/hook-context.js +13 -0
- package/dist/hook-context.js.map +1 -1
- package/dist/hook-contract.d.ts +18 -3
- package/dist/hook-contract.d.ts.map +1 -1
- package/dist/hook-contract.js +305 -26
- package/dist/hook-contract.js.map +1 -1
- package/dist/hook-pre-action.d.ts +19 -3
- package/dist/hook-pre-action.d.ts.map +1 -1
- package/dist/hook-pre-action.js +191 -53
- package/dist/hook-pre-action.js.map +1 -1
- package/dist/hook-session.d.ts.map +1 -1
- package/dist/hook-session.js +85 -38
- package/dist/hook-session.js.map +1 -1
- package/dist/hook-tool-policy.d.ts +2 -0
- package/dist/hook-tool-policy.d.ts.map +1 -1
- package/dist/hook-tool-policy.js +23 -2
- package/dist/hook-tool-policy.js.map +1 -1
- package/dist/hook.d.ts +13 -1
- package/dist/hook.d.ts.map +1 -1
- package/dist/hook.js +48 -24
- package/dist/hook.js.map +1 -1
- package/dist/host-capability.js +2 -2
- package/dist/host-capability.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
package/dist/hook-tool-policy.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizeHookToolName = normalizeHookToolName;
|
|
4
4
|
exports.isOfficialMarrowMcpTool = isOfficialMarrowMcpTool;
|
|
5
|
+
exports.isOfficialMarrowMcpEvent = isOfficialMarrowMcpEvent;
|
|
6
|
+
exports.isMcpHookTool = isMcpHookTool;
|
|
5
7
|
exports.isProtectedShellMutation = isProtectedShellMutation;
|
|
6
8
|
exports.hookToolCommand = hookToolCommand;
|
|
7
9
|
exports.isReadOnlyToolEvent = isReadOnlyToolEvent;
|
|
@@ -82,10 +84,29 @@ function stringValue(value) {
|
|
|
82
84
|
return typeof value === 'string' && value.trim() ? value.trim() : undefined;
|
|
83
85
|
}
|
|
84
86
|
function normalizeHookToolName(value) {
|
|
85
|
-
return String(value || '').replace(/^mcp__/, '').trim().toLowerCase();
|
|
87
|
+
return String(value || '').replace(/^mcp__/, '').replace(/^MCP:/i, '').trim().toLowerCase();
|
|
86
88
|
}
|
|
87
89
|
function isOfficialMarrowMcpTool(value) {
|
|
88
|
-
|
|
90
|
+
const tool = String(value || '').trim();
|
|
91
|
+
return /^mcp__marrow__marrow_[a-z0-9_]+$/i.test(tool)
|
|
92
|
+
|| /^MCP:(?:marrow:)?marrow_[a-z0-9_]+$/i.test(tool)
|
|
93
|
+
|| /^mcp_marrow_marrow_[a-z0-9_]+$/i.test(tool);
|
|
94
|
+
}
|
|
95
|
+
function isOfficialMarrowMcpEvent(event) {
|
|
96
|
+
if (isOfficialMarrowMcpTool(event.tool_name))
|
|
97
|
+
return true;
|
|
98
|
+
const tool = String(event.tool_name || '').trim().toLowerCase();
|
|
99
|
+
if (!['use_mcp_tool', 'use_tool', 'mcp', 'mcp_tool'].includes(tool))
|
|
100
|
+
return false;
|
|
101
|
+
const input = asRecord(event.tool_input);
|
|
102
|
+
if (!input)
|
|
103
|
+
return false;
|
|
104
|
+
const server = String(input.serverName ?? input.server_name ?? '').trim().toLowerCase();
|
|
105
|
+
const name = String(input.toolName ?? input.tool_name ?? '').trim();
|
|
106
|
+
return server === 'marrow' && /^marrow_[a-z0-9_]+$/i.test(name);
|
|
107
|
+
}
|
|
108
|
+
function isMcpHookTool(value) {
|
|
109
|
+
return /^(?:mcp__|mcp_|MCP:)/i.test(String(value || '').trim());
|
|
89
110
|
}
|
|
90
111
|
function isProtectedShellMutation(command) {
|
|
91
112
|
const raw = String(command || '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-tool-policy.js","sourceRoot":"","sources":["../src/hook-tool-policy.ts"],"names":[],"mappings":";;AAuFA,sDAEC;AAED,
|
|
1
|
+
{"version":3,"file":"hook-tool-policy.js","sourceRoot":"","sources":["../src/hook-tool-policy.ts"],"names":[],"mappings":"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"}
|
package/dist/hook.d.ts
CHANGED
|
@@ -2,13 +2,21 @@ export declare const AUTO_HOOK_COMMAND: string;
|
|
|
2
2
|
export declare const AUTO_HOOK_MATCHER = "Bash|Edit|Write|MultiEdit|mcp__(?!marrow__marrow_).*";
|
|
3
3
|
interface HookEvent {
|
|
4
4
|
session_id?: string;
|
|
5
|
+
conversation_id?: string;
|
|
6
|
+
generation_id?: string;
|
|
7
|
+
task_id?: string;
|
|
5
8
|
hook_event_name?: string;
|
|
6
9
|
tool_use_id?: string;
|
|
7
10
|
tool_name?: string;
|
|
8
11
|
tool_input?: unknown;
|
|
9
12
|
tool_response?: unknown;
|
|
10
13
|
tool_result?: unknown;
|
|
14
|
+
tool_output?: unknown;
|
|
11
15
|
error?: unknown;
|
|
16
|
+
error_message?: unknown;
|
|
17
|
+
failure_type?: unknown;
|
|
18
|
+
duration_ms?: unknown;
|
|
19
|
+
success?: unknown;
|
|
12
20
|
is_interrupt?: boolean;
|
|
13
21
|
}
|
|
14
22
|
interface HookInstallResult {
|
|
@@ -17,7 +25,11 @@ interface HookInstallResult {
|
|
|
17
25
|
}
|
|
18
26
|
export declare function shouldSkipAutoLog(event: HookEvent): boolean;
|
|
19
27
|
export declare function deriveAction(event: HookEvent): string | null;
|
|
28
|
+
export declare function deriveToolOutcome(event: HookEvent): {
|
|
29
|
+
success: boolean;
|
|
30
|
+
duration_ms?: number;
|
|
31
|
+
};
|
|
20
32
|
export declare function installPostToolUseHook(startDir?: string): HookInstallResult;
|
|
21
|
-
export declare function runHookCommand(): Promise<void>;
|
|
33
|
+
export declare function runHookCommand(input?: unknown): Promise<void>;
|
|
22
34
|
export {};
|
|
23
35
|
//# sourceMappingURL=hook.d.ts.map
|
package/dist/hook.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,iBAAiB,yDAAsB,CAAC;AAOrD,UAAU,SAAS;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,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;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAoB9F;AAWD,wBAAgB,sBAAsB,CAAC,QAAQ,GAAE,MAAsB,GAAG,iBAAiB,CAwB1F;AAED,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA8FnE"}
|
package/dist/hook.js
CHANGED
|
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AUTO_HOOK_MATCHER = exports.AUTO_HOOK_COMMAND = void 0;
|
|
4
4
|
exports.shouldSkipAutoLog = shouldSkipAutoLog;
|
|
5
5
|
exports.deriveAction = deriveAction;
|
|
6
|
+
exports.deriveToolOutcome = deriveToolOutcome;
|
|
6
7
|
exports.installPostToolUseHook = installPostToolUseHook;
|
|
7
8
|
exports.runHookCommand = runHookCommand;
|
|
8
9
|
const index_1 = require("./index");
|
|
9
10
|
const habit_loop_copy_1 = require("./habit-loop-copy");
|
|
10
11
|
const lifecycle_spool_1 = require("./lifecycle-spool");
|
|
11
12
|
const hook_pre_action_1 = require("./hook-pre-action");
|
|
13
|
+
const control_state_1 = require("./control-state");
|
|
12
14
|
const hook_tool_policy_1 = require("./hook-tool-policy");
|
|
13
15
|
const hook_contract_1 = require("./hook-contract");
|
|
14
16
|
exports.AUTO_HOOK_COMMAND = hook_contract_1.ACTION_RESULT_HOOK_COMMAND;
|
|
@@ -36,22 +38,28 @@ function deriveAction(event) {
|
|
|
36
38
|
const toolName = getString(event.tool_name);
|
|
37
39
|
if (!toolName || shouldSkipAutoLog(event))
|
|
38
40
|
return null;
|
|
39
|
-
if ((0, hook_tool_policy_1.
|
|
41
|
+
if ((0, hook_tool_policy_1.isOfficialMarrowMcpEvent)(event))
|
|
40
42
|
return null;
|
|
41
43
|
return (0, hook_pre_action_1.classifyTool)(event).action;
|
|
42
44
|
}
|
|
43
|
-
function
|
|
44
|
-
const response = event.tool_response ?? event.tool_result;
|
|
45
|
+
function deriveToolOutcome(event) {
|
|
46
|
+
const response = event.tool_output ?? event.tool_response ?? event.tool_result;
|
|
45
47
|
const responseRecord = asRecord(response);
|
|
46
48
|
const errorValue = responseRecord?.error;
|
|
47
49
|
const failed = event.hook_event_name === 'PostToolUseFailure'
|
|
48
50
|
|| event.error != null
|
|
51
|
+
|| event.error_message != null
|
|
52
|
+
|| event.failure_type != null
|
|
53
|
+
|| event.success === false
|
|
49
54
|
|| errorValue !== undefined && errorValue !== null
|
|
50
55
|
|| responseRecord?.is_error === true
|
|
51
56
|
|| responseRecord?.success === false
|
|
52
57
|
|| (typeof responseRecord?.exit_code === 'number' && responseRecord.exit_code !== 0)
|
|
53
58
|
|| /^(?:failed|error|blocked)$/i.test(String(responseRecord?.status || ''));
|
|
54
|
-
|
|
59
|
+
const duration = typeof event.duration_ms === 'number' && Number.isFinite(event.duration_ms)
|
|
60
|
+
? Math.max(0, Math.min(300_000, Math.round(event.duration_ms)))
|
|
61
|
+
: undefined;
|
|
62
|
+
return { success: !failed, ...(duration === undefined ? {} : { duration_ms: duration }) };
|
|
55
63
|
}
|
|
56
64
|
async function readStdin() {
|
|
57
65
|
const chunks = [];
|
|
@@ -81,49 +89,61 @@ function installPostToolUseHook(startDir = process.cwd()) {
|
|
|
81
89
|
installed: success.changed || failure.changed,
|
|
82
90
|
};
|
|
83
91
|
}
|
|
84
|
-
async function runHookCommand() {
|
|
92
|
+
async function runHookCommand(input) {
|
|
93
|
+
const identity = (0, hook_contract_1.resolveNativeHookIdentity)(process.argv[2]);
|
|
85
94
|
if (process.env.MARROW_AUTO_HOOK === 'false') {
|
|
86
|
-
|
|
95
|
+
if (identity.harness === 'gemini')
|
|
96
|
+
process.stdout.write('{}');
|
|
87
97
|
return;
|
|
88
98
|
}
|
|
89
99
|
try {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
100
|
+
if (!(0, control_state_1.readLocalControlState)().enabled) {
|
|
101
|
+
if (identity.harness === 'gemini')
|
|
102
|
+
process.stdout.write('{}');
|
|
93
103
|
return;
|
|
94
104
|
}
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
if (identity.harness === 'gemini')
|
|
108
|
+
process.stdout.write('{}');
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
95
112
|
let event;
|
|
96
|
-
|
|
97
|
-
|
|
113
|
+
if (input === undefined) {
|
|
114
|
+
const raw = (await readStdin()).trim();
|
|
115
|
+
if (!raw)
|
|
116
|
+
return;
|
|
117
|
+
try {
|
|
118
|
+
event = (0, hook_contract_1.normalizeHookEventPayload)(JSON.parse(raw));
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
debug('[marrow-hook] skipped invalid JSON');
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
98
124
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
process.exit(0);
|
|
102
|
-
return;
|
|
125
|
+
else {
|
|
126
|
+
event = (0, hook_contract_1.normalizeHookEventPayload)(input);
|
|
103
127
|
}
|
|
104
128
|
if (shouldSkipAutoLog(event)) {
|
|
105
129
|
debug('[marrow-hook] skipped read-only tool');
|
|
106
|
-
process.exit(0);
|
|
107
130
|
return;
|
|
108
131
|
}
|
|
109
132
|
const classified = (0, hook_pre_action_1.classifyTool)(event);
|
|
110
133
|
const action = deriveAction(event);
|
|
111
134
|
if (!action) {
|
|
112
|
-
process.exit(0);
|
|
113
135
|
return;
|
|
114
136
|
}
|
|
115
|
-
const identity = (0, hook_contract_1.resolveNativeHookIdentity)(process.argv[2]);
|
|
116
137
|
const resolvedEnv = identity.environment;
|
|
117
138
|
const apiKey = resolvedEnv.apiKey || '';
|
|
118
139
|
if (!apiKey) {
|
|
119
140
|
debug(`[marrow-hook] skipped missing MARROW_API_KEY. ${resolvedEnv.exactFix}`);
|
|
120
|
-
process.exit(0);
|
|
121
141
|
return;
|
|
122
142
|
}
|
|
123
143
|
const baseUrl = (0, index_1.validateBaseUrl)(resolvedEnv.baseUrl || 'https://api.getmarrow.ai');
|
|
124
|
-
const sessionId = resolvedEnv.sessionId || getString(event.session_id);
|
|
144
|
+
const sessionId = resolvedEnv.sessionId || getString(event.session_id) || getString(event.conversation_id) || getString(event.task_id);
|
|
125
145
|
const agentId = identity.agent_id;
|
|
126
|
-
const success =
|
|
146
|
+
const { success } = deriveToolOutcome(event);
|
|
127
147
|
const toolName = normalizeToolName(getString(event.tool_name) || 'tool');
|
|
128
148
|
const eventType = toolName === 'bash'
|
|
129
149
|
? success ? 'command_completed' : 'command_failed'
|
|
@@ -137,7 +157,7 @@ async function runHookCommand() {
|
|
|
137
157
|
event_type: eventType,
|
|
138
158
|
...(0, hook_contract_1.clientReportedHookLifecycleIdentity)(identity),
|
|
139
159
|
session_id: sessionId,
|
|
140
|
-
workflow_id: (0, hook_contract_1.stableSessionWorkflowId)(sessionId, event.tool_use_id),
|
|
160
|
+
workflow_id: (0, hook_contract_1.stableSessionWorkflowId)(sessionId, event.generation_id || event.tool_use_id || event.task_id),
|
|
141
161
|
correlation_id: lifecycleCorrelation,
|
|
142
162
|
action,
|
|
143
163
|
target: classified.target,
|
|
@@ -147,9 +167,10 @@ async function runHookCommand() {
|
|
|
147
167
|
outcome_state: 'pending',
|
|
148
168
|
},
|
|
149
169
|
});
|
|
150
|
-
if (process.env.MARROW_PASSIVE_TOKEN_USAGE !== 'false') {
|
|
170
|
+
if (identity.harness !== 'grok' && process.env.MARROW_PASSIVE_TOKEN_USAGE !== 'false') {
|
|
151
171
|
const usage = (0, habit_loop_copy_1.extractModelUsageFromUnknown)(event.tool_response)
|
|
152
172
|
|| (0, habit_loop_copy_1.extractModelUsageFromUnknown)(event.tool_result)
|
|
173
|
+
|| (0, habit_loop_copy_1.extractModelUsageFromUnknown)(event.tool_output)
|
|
153
174
|
|| (0, habit_loop_copy_1.extractModelUsageFromUnknown)(event);
|
|
154
175
|
if (usage && (usage.input_tokens || usage.output_tokens || usage.total_tokens || usage.cached_tokens)) {
|
|
155
176
|
await (0, index_1.marrowModelUsage)(apiKey, baseUrl, {
|
|
@@ -166,6 +187,9 @@ async function runHookCommand() {
|
|
|
166
187
|
const message = err instanceof Error ? err.message : String(err);
|
|
167
188
|
debug(`[marrow-hook] ${message}`);
|
|
168
189
|
}
|
|
169
|
-
|
|
190
|
+
finally {
|
|
191
|
+
if (identity.harness === 'gemini')
|
|
192
|
+
process.stdout.write('{}');
|
|
193
|
+
}
|
|
170
194
|
}
|
|
171
195
|
//# sourceMappingURL=hook.js.map
|
package/dist/hook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
|
package/dist/host-capability.js
CHANGED
|
@@ -89,9 +89,9 @@ function resolveHostCapability(input = {}) {
|
|
|
89
89
|
function hostCapabilityInstructions(capability) {
|
|
90
90
|
return [
|
|
91
91
|
`Current coverage: ${capability.current_mode} (${capability.coverage_scope}).`,
|
|
92
|
-
'MCP tools are on demand. Configured native hooks provide cooperative
|
|
92
|
+
'MCP tools are on demand. Configured native hooks provide cooperative client-reported control and lifecycle evidence only; createPassiveRuntime().install() is limited to its owned Node process; the governed wrapper is limited to its wrapped command; a custom host needs a bounded event adapter.',
|
|
93
93
|
'A model name, host label, API key, public hook entrypoint, installed configuration, detected hook file, or client-self-reported lifecycle activity never certifies coverage or enforcement.',
|
|
94
|
-
'
|
|
94
|
+
'Codex, Grok, and Gemini use configured native hooks only after restart and host hook review. The governed wrapper remains an explicit bounded fallback: npx @getmarrow/install run --agent <agent-id> -- -- <command>.',
|
|
95
95
|
capability.exact_next_action,
|
|
96
96
|
].join(' ');
|
|
97
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-capability.js","sourceRoot":"","sources":["../src/host-capability.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"host-capability.js","sourceRoot":"","sources":["../src/host-capability.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/getmarrow/marrow-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "3.9.
|
|
9
|
+
"version": "3.9.75",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@getmarrow/mcp",
|
|
14
|
-
"version": "3.9.
|
|
14
|
+
"version": "3.9.75",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|