@getmarrow/mcp 3.9.73 → 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.
Files changed (46) hide show
  1. package/README.md +28 -19
  2. package/dist/cli.js +31 -27
  3. package/dist/cli.js.map +1 -1
  4. package/dist/control-state.d.ts +25 -0
  5. package/dist/control-state.d.ts.map +1 -0
  6. package/dist/control-state.js +112 -0
  7. package/dist/control-state.js.map +1 -0
  8. package/dist/hook-context.d.ts +1 -1
  9. package/dist/hook-context.d.ts.map +1 -1
  10. package/dist/hook-context.js +18 -9
  11. package/dist/hook-context.js.map +1 -1
  12. package/dist/hook-contract.d.ts +43 -15
  13. package/dist/hook-contract.d.ts.map +1 -1
  14. package/dist/hook-contract.js +358 -44
  15. package/dist/hook-contract.js.map +1 -1
  16. package/dist/hook-pre-action.d.ts +19 -1
  17. package/dist/hook-pre-action.d.ts.map +1 -1
  18. package/dist/hook-pre-action.js +208 -30
  19. package/dist/hook-pre-action.js.map +1 -1
  20. package/dist/hook-session.d.ts +1 -1
  21. package/dist/hook-session.d.ts.map +1 -1
  22. package/dist/hook-session.js +86 -41
  23. package/dist/hook-session.js.map +1 -1
  24. package/dist/hook-tool-policy.d.ts +2 -0
  25. package/dist/hook-tool-policy.d.ts.map +1 -1
  26. package/dist/hook-tool-policy.js +23 -2
  27. package/dist/hook-tool-policy.js.map +1 -1
  28. package/dist/hook.d.ts +14 -2
  29. package/dist/hook.d.ts.map +1 -1
  30. package/dist/hook.js +51 -29
  31. package/dist/hook.js.map +1 -1
  32. package/dist/host-capability.d.ts +23 -16
  33. package/dist/host-capability.d.ts.map +1 -1
  34. package/dist/host-capability.js +41 -61
  35. package/dist/host-capability.js.map +1 -1
  36. package/dist/index.d.ts +6 -2
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +167 -120
  39. package/dist/index.js.map +1 -1
  40. package/dist/lifecycle-spool.d.ts +1 -5
  41. package/dist/lifecycle-spool.d.ts.map +1 -1
  42. package/dist/lifecycle-spool.js +11 -28
  43. package/dist/lifecycle-spool.js.map +1 -1
  44. package/package.json +1 -1
  45. package/scripts/control-path-canary.cjs +28 -2
  46. package/server.json +2 -2
@@ -1 +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;AAoFF,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,CAiBnE"}
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;AAoFF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK/D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CASxE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;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,CAiBnE"}
@@ -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
- return /^mcp__marrow__marrow_[a-z0-9_]+$/i.test(String(value || '').trim());
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":"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"}
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
@@ -1,14 +1,22 @@
1
- export declare const AUTO_HOOK_COMMAND = "npx -y --package=@getmarrow/mcp@3.9.73 marrow-mcp hook";
1
+ 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
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,iBAAiB,2DAA6B,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,CA+FpD"}
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,13 +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
- const env_1 = require("./env");
11
11
  const lifecycle_spool_1 = require("./lifecycle-spool");
12
12
  const hook_pre_action_1 = require("./hook-pre-action");
13
+ const control_state_1 = require("./control-state");
13
14
  const hook_tool_policy_1 = require("./hook-tool-policy");
14
15
  const hook_contract_1 = require("./hook-contract");
15
16
  exports.AUTO_HOOK_COMMAND = hook_contract_1.ACTION_RESULT_HOOK_COMMAND;
@@ -37,22 +38,28 @@ function deriveAction(event) {
37
38
  const toolName = getString(event.tool_name);
38
39
  if (!toolName || shouldSkipAutoLog(event))
39
40
  return null;
40
- if ((0, hook_tool_policy_1.isOfficialMarrowMcpTool)(toolName))
41
+ if ((0, hook_tool_policy_1.isOfficialMarrowMcpEvent)(event))
41
42
  return null;
42
43
  return (0, hook_pre_action_1.classifyTool)(event).action;
43
44
  }
44
- function deriveToolSuccess(event) {
45
- const response = event.tool_response ?? event.tool_result;
45
+ function deriveToolOutcome(event) {
46
+ const response = event.tool_output ?? event.tool_response ?? event.tool_result;
46
47
  const responseRecord = asRecord(response);
47
48
  const errorValue = responseRecord?.error;
48
49
  const failed = event.hook_event_name === 'PostToolUseFailure'
49
50
  || event.error != null
51
+ || event.error_message != null
52
+ || event.failure_type != null
53
+ || event.success === false
50
54
  || errorValue !== undefined && errorValue !== null
51
55
  || responseRecord?.is_error === true
52
56
  || responseRecord?.success === false
53
57
  || (typeof responseRecord?.exit_code === 'number' && responseRecord.exit_code !== 0)
54
58
  || /^(?:failed|error|blocked)$/i.test(String(responseRecord?.status || ''));
55
- return !failed;
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 }) };
56
63
  }
57
64
  async function readStdin() {
58
65
  const chunks = [];
@@ -82,48 +89,61 @@ function installPostToolUseHook(startDir = process.cwd()) {
82
89
  installed: success.changed || failure.changed,
83
90
  };
84
91
  }
85
- async function runHookCommand() {
92
+ async function runHookCommand(input) {
93
+ const identity = (0, hook_contract_1.resolveNativeHookIdentity)(process.argv[2]);
86
94
  if (process.env.MARROW_AUTO_HOOK === 'false') {
87
- process.exit(0);
95
+ if (identity.harness === 'gemini')
96
+ process.stdout.write('{}');
88
97
  return;
89
98
  }
90
99
  try {
91
- const raw = (await readStdin()).trim();
92
- if (!raw) {
93
- process.exit(0);
100
+ if (!(0, control_state_1.readLocalControlState)().enabled) {
101
+ if (identity.harness === 'gemini')
102
+ process.stdout.write('{}');
94
103
  return;
95
104
  }
105
+ }
106
+ catch {
107
+ if (identity.harness === 'gemini')
108
+ process.stdout.write('{}');
109
+ return;
110
+ }
111
+ try {
96
112
  let event;
97
- try {
98
- event = (0, hook_contract_1.normalizeHookEventPayload)(JSON.parse(raw));
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
+ }
99
124
  }
100
- catch {
101
- debug('[marrow-hook] skipped invalid JSON');
102
- process.exit(0);
103
- return;
125
+ else {
126
+ event = (0, hook_contract_1.normalizeHookEventPayload)(input);
104
127
  }
105
128
  if (shouldSkipAutoLog(event)) {
106
129
  debug('[marrow-hook] skipped read-only tool');
107
- process.exit(0);
108
130
  return;
109
131
  }
110
132
  const classified = (0, hook_pre_action_1.classifyTool)(event);
111
133
  const action = deriveAction(event);
112
134
  if (!action) {
113
- process.exit(0);
114
135
  return;
115
136
  }
116
- const resolvedEnv = (0, env_1.resolveMarrowEnv)();
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);
125
- const agentId = resolvedEnv.agentId || undefined;
126
- const success = deriveToolSuccess(event);
144
+ const sessionId = resolvedEnv.sessionId || getString(event.session_id) || getString(event.conversation_id) || getString(event.task_id);
145
+ const agentId = identity.agent_id;
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'
@@ -135,12 +155,10 @@ async function runHookCommand() {
135
155
  event: {
136
156
  event_id: `posttool-${lifecycleCorrelation}`,
137
157
  event_type: eventType,
138
- harness: 'claude-code',
139
- agent_id: agentId,
158
+ ...(0, hook_contract_1.clientReportedHookLifecycleIdentity)(identity),
140
159
  session_id: sessionId,
141
- 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),
142
161
  correlation_id: lifecycleCorrelation,
143
- ...(0, hook_contract_1.nativeHookEvidence)('action_result'),
144
162
  action,
145
163
  target: classified.target,
146
164
  surfaces: classified.surfaces,
@@ -149,9 +167,10 @@ async function runHookCommand() {
149
167
  outcome_state: 'pending',
150
168
  },
151
169
  });
152
- if (process.env.MARROW_PASSIVE_TOKEN_USAGE !== 'false') {
170
+ if (identity.harness !== 'grok' && process.env.MARROW_PASSIVE_TOKEN_USAGE !== 'false') {
153
171
  const usage = (0, habit_loop_copy_1.extractModelUsageFromUnknown)(event.tool_response)
154
172
  || (0, habit_loop_copy_1.extractModelUsageFromUnknown)(event.tool_result)
173
+ || (0, habit_loop_copy_1.extractModelUsageFromUnknown)(event.tool_output)
155
174
  || (0, habit_loop_copy_1.extractModelUsageFromUnknown)(event);
156
175
  if (usage && (usage.input_tokens || usage.output_tokens || usage.total_tokens || usage.cached_tokens)) {
157
176
  await (0, index_1.marrowModelUsage)(apiKey, baseUrl, {
@@ -168,6 +187,9 @@ async function runHookCommand() {
168
187
  const message = err instanceof Error ? err.message : String(err);
169
188
  debug(`[marrow-hook] ${message}`);
170
189
  }
171
- process.exit(0);
190
+ finally {
191
+ if (identity.harness === 'gemini')
192
+ process.stdout.write('{}');
193
+ }
172
194
  }
173
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":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":";;;AAkEA,8CAEC;AAED,oCAKC;AAED,8CAoBC;AAWD,wDAwBC;AAED,wCA8FC;AApOD,mCAA4D;AAC5D,uDAAiE;AACjE,uDAAyD;AACzD,uDAAiD;AACjD,mDAAwD;AACxD,yDAA0G;AAC1G,mDAWyB;AAEZ,QAAA,iBAAiB,GAAG,0CAA0B,CAAC;AAC/C,QAAA,iBAAiB,GAAG,mCAAmB,CAAC;AACrD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;AAE5D,SAAS,KAAK,CAAC,GAAW;IACxB,IAAI,UAAU;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;AACnD,CAAC;AA2BD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,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,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAO,IAAA,wCAAqB,EAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAgB;IAChD,OAAO,IAAA,sCAAmB,EAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,YAAY,CAAC,KAAgB;IAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,IAAA,2CAAwB,EAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,OAAO,IAAA,8BAAY,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AACpC,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAgB;IAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,CAAC;IAC/E,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,cAAc,EAAE,KAAK,CAAC;IAEzC,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,KAAK,oBAAoB;WACxD,KAAK,CAAC,KAAK,IAAI,IAAI;WACnB,KAAK,CAAC,aAAa,IAAI,IAAI;WAC3B,KAAK,CAAC,YAAY,IAAI,IAAI;WAC1B,KAAK,CAAC,OAAO,KAAK,KAAK;WACvB,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;WAC/C,cAAc,EAAE,QAAQ,KAAK,IAAI;WACjC,cAAc,EAAE,OAAO,KAAK,KAAK;WACjC,CAAC,OAAO,cAAc,EAAE,SAAS,KAAK,QAAQ,IAAI,cAAc,CAAC,SAAS,KAAK,CAAC,CAAC;WACjF,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IAE9E,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;QAC1F,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,sBAAsB,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IACrE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAwB,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAA0B,CAAC;IAEtD,MAAM,YAAY,GAAG,IAAA,oCAAoB,EAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAA,0CAA0B,EAAC,QAAQ,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAA,0CAA0B,EAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,yBAAiB,EAAE,yBAAiB,CAAC,CAAC;IAClH,MAAM,OAAO,GAAG,IAAA,0CAA0B,EAAC,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,yBAAiB,EAAE,yBAAiB,CAAC,CAAC;IAEzH,QAAQ,CAAC,KAAK,GAAG;QACf,GAAG,KAAK;QACR,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,kBAAkB,EAAE,OAAO,CAAC,OAAO;KACpC,CAAC;IAEF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEzE,OAAO;QACL,YAAY;QACZ,SAAS,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;KAC9C,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,KAAe;IAClD,MAAM,QAAQ,GAAG,IAAA,yCAAyB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;QAC7C,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QAAC,IAAI,CAAC,IAAA,qCAAqB,GAAE,CAAC,OAAO,EAAE,CAAC;YAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;IAAC,CAAC;IACxH,MAAM,CAAC;QAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAEhF,IAAI,CAAC;QACH,IAAI,KAAgB,CAAC;QACrB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,IAAI,CAAC;gBACH,KAAK,GAAG,IAAA,yCAAyB,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAc,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAA,yCAAyB,EAAC,KAAK,CAAc,CAAC;QACxD,CAAC;QAED,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,8BAAY,EAAC,KAAK,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,KAAK,CAAC,iDAAiD,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,WAAW,CAAC,OAAO,IAAI,0BAA0B,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvI,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,QAAQ,KAAK,MAAM;YACnC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB;YAClD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;QAC/C,MAAM,oBAAoB,GAAG,IAAA,qCAAqB,EAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QACxF,MAAM,IAAA,sCAAoB,EAAC;YACzB,MAAM;YACN,OAAO;YACP,KAAK,EAAE;gBACL,QAAQ,EAAE,YAAY,oBAAoB,EAAE;gBAC5C,UAAU,EAAE,SAAS;gBACrB,GAAG,IAAA,mDAAmC,EAAC,QAAQ,CAAC;gBAChD,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,IAAA,uCAAuB,EAAC,SAAS,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC;gBAC1G,cAAc,EAAE,oBAAoB;gBACpC,MAAM;gBACN,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,OAAO;gBACP,aAAa,EAAE,SAAS;aACzB;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,OAAO,EAAE,CAAC;YACtF,MAAM,KAAK,GAAG,IAAA,8CAA4B,EAAC,KAAK,CAAC,aAAa,CAAC;mBAC1D,IAAA,8CAA4B,EAAC,KAAK,CAAC,WAAW,CAAC;mBAC/C,IAAA,8CAA4B,EAAC,KAAK,CAAC,WAAW,CAAC;mBAC/C,IAAA,8CAA4B,EAAC,KAAK,CAAC,CAAC;YACzC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBACtG,MAAM,IAAA,wBAAgB,EAAC,MAAM,EAAE,OAAO,EAAE;oBACtC,GAAG,KAAK;oBACR,MAAM,EAAE,mBAAmB;oBAC3B,mBAAmB,EAAE,6BAA6B;oBAClD,OAAO;oBACP,WAAW,EAAE,UAAU,CAAC,IAAI,IAAI,MAAM;iBACvC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IAEH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;YAAS,CAAC;QACT,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
@@ -1,10 +1,10 @@
1
- export declare const NATIVE_HOOK_RECEIPTS: readonly ["native_hooks:prompt", "native_hooks:pre_action", "native_hooks:action_result", "native_hooks:session_end"];
2
- export type MarrowCoverageMode = 'tools_only_on_demand' | 'verified_native_hooks' | 'owned_sdk_process' | 'governed_wrapped_command' | 'custom_event_adapter';
1
+ export declare const NATIVE_HOOK_ACTIVITY: readonly ["native_hooks:prompt", "native_hooks:pre_action", "native_hooks:action_result", "native_hooks:session_end"];
2
+ export type MarrowCoverageMode = 'tools_only_on_demand';
3
3
  export interface HostCapabilityInput {
4
4
  /** Display-only hint supplied at the adapter edge. It never grants coverage. */
5
5
  hostLabel?: string;
6
- /** Trusted receipts observed by Marrow. Configuration or model detection is not evidence. */
7
- observedReceipts?: readonly string[];
6
+ /** Unattested client activity. It is useful telemetry and never grants coverage. */
7
+ clientSelfReportedActivity?: readonly string[];
8
8
  }
9
9
  export interface MarrowHostCapability {
10
10
  contract_version: '2026-08-16';
@@ -18,17 +18,24 @@ export interface MarrowHostCapability {
18
18
  coverage_verified: boolean;
19
19
  coverage_scope: string;
20
20
  certification: {
21
- source: 'observed_receipts_only';
21
+ source: 'independent_authority_required';
22
22
  model_name_is_evidence: false;
23
23
  configuration_detection_is_evidence: false;
24
- observed_receipts: string[];
24
+ client_self_reports_certify_control: false;
25
+ certified_receipts: string[];
26
+ };
27
+ activity: {
28
+ source: 'client_self_reported';
29
+ reported: string[];
30
+ complete_native_hook_lifecycle_reported: boolean;
31
+ certifies_control: false;
25
32
  };
26
33
  passive_hooks: {
27
34
  provided_by_mcp_transport: false;
28
- external_host_hook_state: 'unverified' | 'verified';
35
+ external_host_hook_state: 'unverified' | 'client_activity_reported';
29
36
  observed_by_this_process: false;
30
- observed_by_marrow: boolean;
31
- required_receipts: string[];
37
+ certified_by_marrow: false;
38
+ client_activity_stages: string[];
32
39
  };
33
40
  capability_modes: {
34
41
  tools_only: {
@@ -36,23 +43,23 @@ export interface MarrowHostCapability {
36
43
  scope: 'explicit_mcp_tool_calls';
37
44
  };
38
45
  native_hooks: {
39
- state: 'unverified' | 'verified';
40
- scope: 'observed_hook_lifecycle_only';
46
+ state: 'unverified' | 'activity_reported';
47
+ scope: 'client_self_reported_lifecycle_only';
41
48
  };
42
49
  sdk_passive_runtime: {
43
- state: 'unverified' | 'verified';
50
+ state: 'unverified' | 'activity_reported';
44
51
  scope: 'owned_node_process_while_installed';
45
52
  };
46
53
  governed_runner: {
47
- state: 'unverified' | 'verified';
54
+ state: 'unverified' | 'activity_reported';
48
55
  scope: 'wrapped_command_only';
49
56
  };
50
57
  custom_host: {
51
- state: 'adapter_required' | 'verified';
52
- scope: 'observed_event_adapter_lifecycle_only';
58
+ state: 'adapter_required' | 'activity_reported';
59
+ scope: 'client_self_reported_event_lifecycle_only';
53
60
  };
54
61
  };
55
- always_on_state: 'not_verified' | 'verified_passive' | 'bounded_process' | 'bounded_command' | 'bounded_event_adapter';
62
+ always_on_state: 'not_verified';
56
63
  exact_next_action: string;
57
64
  }
58
65
  export declare function resolveHostCapability(input?: HostCapabilityInput): MarrowHostCapability;
@@ -1 +1 @@
1
- {"version":3,"file":"host-capability.d.ts","sourceRoot":"","sources":["../src/host-capability.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,uHAKvB,CAAC;AAwBX,MAAM,MAAM,kBAAkB,GAC1B,sBAAsB,GACtB,uBAAuB,GACvB,mBAAmB,GACnB,0BAA0B,GAC1B,sBAAsB,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,YAAY,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,cAAc,GAAG,kBAAkB,CAAC;IAC1D,8BAA8B,EAAE,KAAK,CAAC;IACtC,eAAe,EAAE,IAAI,CAAC;IACtB,eAAe,EAAE,WAAW,CAAC;IAC7B,YAAY,EAAE,kBAAkB,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE;QACb,MAAM,EAAE,wBAAwB,CAAC;QACjC,sBAAsB,EAAE,KAAK,CAAC;QAC9B,mCAAmC,EAAE,KAAK,CAAC;QAC3C,iBAAiB,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;IACF,aAAa,EAAE;QACb,yBAAyB,EAAE,KAAK,CAAC;QACjC,wBAAwB,EAAE,YAAY,GAAG,UAAU,CAAC;QACpD,wBAAwB,EAAE,KAAK,CAAC;QAChC,kBAAkB,EAAE,OAAO,CAAC;QAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;IACF,gBAAgB,EAAE;QAChB,UAAU,EAAE;YAAE,KAAK,EAAE,WAAW,CAAC;YAAC,KAAK,EAAE,yBAAyB,CAAA;SAAE,CAAC;QACrE,YAAY,EAAE;YAAE,KAAK,EAAE,YAAY,GAAG,UAAU,CAAC;YAAC,KAAK,EAAE,8BAA8B,CAAA;SAAE,CAAC;QAC1F,mBAAmB,EAAE;YAAE,KAAK,EAAE,YAAY,GAAG,UAAU,CAAC;YAAC,KAAK,EAAE,oCAAoC,CAAA;SAAE,CAAC;QACvG,eAAe,EAAE;YAAE,KAAK,EAAE,YAAY,GAAG,UAAU,CAAC;YAAC,KAAK,EAAE,sBAAsB,CAAA;SAAE,CAAC;QACrF,WAAW,EAAE;YAAE,KAAK,EAAE,kBAAkB,GAAG,UAAU,CAAC;YAAC,KAAK,EAAE,uCAAuC,CAAA;SAAE,CAAC;KACzG,CAAC;IACF,eAAe,EAAE,cAAc,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;IACvH,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AASD,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,mBAAwB,GAAG,oBAAoB,CAuE3F;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAOnF"}
1
+ {"version":3,"file":"host-capability.d.ts","sourceRoot":"","sources":["../src/host-capability.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,uHAKvB,CAAC;AAwBX,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,0BAA0B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,YAAY,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,cAAc,GAAG,kBAAkB,CAAC;IAC1D,8BAA8B,EAAE,KAAK,CAAC;IACtC,eAAe,EAAE,IAAI,CAAC;IACtB,eAAe,EAAE,WAAW,CAAC;IAC7B,YAAY,EAAE,kBAAkB,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE;QACb,MAAM,EAAE,gCAAgC,CAAC;QACzC,sBAAsB,EAAE,KAAK,CAAC;QAC9B,mCAAmC,EAAE,KAAK,CAAC;QAC3C,mCAAmC,EAAE,KAAK,CAAC;QAC3C,kBAAkB,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,sBAAsB,CAAC;QAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,uCAAuC,EAAE,OAAO,CAAC;QACjD,iBAAiB,EAAE,KAAK,CAAC;KAC1B,CAAC;IACF,aAAa,EAAE;QACb,yBAAyB,EAAE,KAAK,CAAC;QACjC,wBAAwB,EAAE,YAAY,GAAG,0BAA0B,CAAC;QACpE,wBAAwB,EAAE,KAAK,CAAC;QAChC,mBAAmB,EAAE,KAAK,CAAC;QAC3B,sBAAsB,EAAE,MAAM,EAAE,CAAC;KAClC,CAAC;IACF,gBAAgB,EAAE;QAChB,UAAU,EAAE;YAAE,KAAK,EAAE,WAAW,CAAC;YAAC,KAAK,EAAE,yBAAyB,CAAA;SAAE,CAAC;QACrE,YAAY,EAAE;YAAE,KAAK,EAAE,YAAY,GAAG,mBAAmB,CAAC;YAAC,KAAK,EAAE,qCAAqC,CAAA;SAAE,CAAC;QAC1G,mBAAmB,EAAE;YAAE,KAAK,EAAE,YAAY,GAAG,mBAAmB,CAAC;YAAC,KAAK,EAAE,oCAAoC,CAAA;SAAE,CAAC;QAChH,eAAe,EAAE;YAAE,KAAK,EAAE,YAAY,GAAG,mBAAmB,CAAC;YAAC,KAAK,EAAE,sBAAsB,CAAA;SAAE,CAAC;QAC9F,WAAW,EAAE;YAAE,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAAC;YAAC,KAAK,EAAE,2CAA2C,CAAA;SAAE,CAAC;KACtH,CAAC;IACF,eAAe,EAAE,cAAc,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AASD,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,mBAAwB,GAAG,oBAAoB,CAmD3F;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAQnF"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NATIVE_HOOK_RECEIPTS = void 0;
3
+ exports.NATIVE_HOOK_ACTIVITY = void 0;
4
4
  exports.resolveHostCapability = resolveHostCapability;
5
5
  exports.hostCapabilityInstructions = hostCapabilityInstructions;
6
- exports.NATIVE_HOOK_RECEIPTS = [
6
+ exports.NATIVE_HOOK_ACTIVITY = [
7
7
  'native_hooks:prompt',
8
8
  'native_hooks:pre_action',
9
9
  'native_hooks:action_result',
@@ -20,14 +20,14 @@ const KNOWN_HOST_LABELS = new Set([
20
20
  'qwen',
21
21
  'deepseek',
22
22
  ]);
23
- const SDK_ACTIVE_RECEIPT = 'sdk_passive_runtime:active';
24
- const GOVERNED_RUNNER_RECEIPT = 'governed_runner:wrapped_command';
25
- const EVENT_ADAPTER_RECEIPT = 'event_adapter:lifecycle';
26
- const KNOWN_CAPABILITY_RECEIPTS = new Set([
27
- ...exports.NATIVE_HOOK_RECEIPTS,
28
- SDK_ACTIVE_RECEIPT,
29
- GOVERNED_RUNNER_RECEIPT,
30
- EVENT_ADAPTER_RECEIPT,
23
+ const SDK_ACTIVE_ACTIVITY = 'sdk_passive_runtime:active';
24
+ const GOVERNED_RUNNER_ACTIVITY = 'governed_runner:wrapped_command';
25
+ const EVENT_ADAPTER_ACTIVITY = 'event_adapter:lifecycle';
26
+ const KNOWN_CLIENT_ACTIVITY = new Set([
27
+ ...exports.NATIVE_HOOK_ACTIVITY,
28
+ SDK_ACTIVE_ACTIVITY,
29
+ GOVERNED_RUNNER_ACTIVITY,
30
+ EVENT_ADAPTER_ACTIVITY,
31
31
  ]);
32
32
  function normalizeHostLabel(value) {
33
33
  const normalized = String(value || '').trim().toLowerCase();
@@ -37,41 +37,13 @@ function normalizeHostLabel(value) {
37
37
  }
38
38
  function resolveHostCapability(input = {}) {
39
39
  const identity = normalizeHostLabel(input.hostLabel);
40
- const observed = [...new Set(input.observedReceipts || [])]
41
- .filter((receipt) => typeof receipt === 'string' && KNOWN_CAPABILITY_RECEIPTS.has(receipt));
42
- const has = (receipt) => observed.includes(receipt);
43
- const nativeHooksVerified = exports.NATIVE_HOOK_RECEIPTS.every(has);
44
- const sdkVerified = has(SDK_ACTIVE_RECEIPT);
45
- const runnerVerified = has(GOVERNED_RUNNER_RECEIPT);
46
- const adapterVerified = has(EVENT_ADAPTER_RECEIPT);
47
- let currentMode = 'tools_only_on_demand';
48
- let coverageScope = 'explicit_mcp_tool_calls';
49
- let alwaysOnState = 'not_verified';
50
- let exactNextAction = 'Use Marrow MCP tools on demand. A custom host needs a bounded event adapter for passive lifecycle coverage; claim coverage only after Marrow observes its receipts.';
51
- if (nativeHooksVerified) {
52
- currentMode = 'verified_native_hooks';
53
- coverageScope = 'observed_hook_lifecycle_only';
54
- alwaysOnState = 'verified_passive';
55
- exactNextAction = 'Keep native hooks enabled and monitor observed prompt, pre-action, action-result, and session-end receipts.';
56
- }
57
- else if (sdkVerified) {
58
- currentMode = 'owned_sdk_process';
59
- coverageScope = 'owned_node_process_while_installed';
60
- alwaysOnState = 'bounded_process';
61
- exactNextAction = 'Treat passive coverage as limited to this owned Node process while createPassiveRuntime().install() remains active.';
62
- }
63
- else if (runnerVerified) {
64
- currentMode = 'governed_wrapped_command';
65
- coverageScope = 'wrapped_command_only';
66
- alwaysOnState = 'bounded_command';
67
- exactNextAction = 'Treat governance coverage as limited to the command launched through the governed runner.';
68
- }
69
- else if (adapterVerified) {
70
- currentMode = 'custom_event_adapter';
71
- coverageScope = 'observed_event_adapter_lifecycle_only';
72
- alwaysOnState = 'bounded_event_adapter';
73
- exactNextAction = 'Treat coverage as limited to lifecycle events emitted by the verified custom event adapter.';
74
- }
40
+ const reported = [...new Set(input.clientSelfReportedActivity || [])]
41
+ .filter((activity) => typeof activity === 'string' && KNOWN_CLIENT_ACTIVITY.has(activity));
42
+ const has = (activity) => reported.includes(activity);
43
+ const completeNativeHookActivity = exports.NATIVE_HOOK_ACTIVITY.every(has);
44
+ const sdkActivity = has(SDK_ACTIVE_ACTIVITY);
45
+ const runnerActivity = has(GOVERNED_RUNNER_ACTIVITY);
46
+ const adapterActivity = has(EVENT_ADAPTER_ACTIVITY);
75
47
  return {
76
48
  contract_version: '2026-08-16',
77
49
  transport: 'mcp_stdio',
@@ -80,38 +52,46 @@ function resolveHostCapability(input = {}) {
80
52
  host_identity_affects_coverage: false,
81
53
  tools_available: true,
82
54
  tool_invocation: 'on_demand',
83
- current_mode: currentMode,
84
- coverage_verified: currentMode !== 'tools_only_on_demand',
85
- coverage_scope: coverageScope,
55
+ current_mode: 'tools_only_on_demand',
56
+ coverage_verified: false,
57
+ coverage_scope: 'explicit_mcp_tool_calls',
86
58
  certification: {
87
- source: 'observed_receipts_only',
59
+ source: 'independent_authority_required',
88
60
  model_name_is_evidence: false,
89
61
  configuration_detection_is_evidence: false,
90
- observed_receipts: observed,
62
+ client_self_reports_certify_control: false,
63
+ certified_receipts: [],
64
+ },
65
+ activity: {
66
+ source: 'client_self_reported',
67
+ reported,
68
+ complete_native_hook_lifecycle_reported: completeNativeHookActivity,
69
+ certifies_control: false,
91
70
  },
92
71
  passive_hooks: {
93
72
  provided_by_mcp_transport: false,
94
- external_host_hook_state: nativeHooksVerified ? 'verified' : 'unverified',
73
+ external_host_hook_state: completeNativeHookActivity ? 'client_activity_reported' : 'unverified',
95
74
  observed_by_this_process: false,
96
- observed_by_marrow: nativeHooksVerified,
97
- required_receipts: [...exports.NATIVE_HOOK_RECEIPTS],
75
+ certified_by_marrow: false,
76
+ client_activity_stages: [...exports.NATIVE_HOOK_ACTIVITY],
98
77
  },
99
78
  capability_modes: {
100
79
  tools_only: { state: 'available', scope: 'explicit_mcp_tool_calls' },
101
- native_hooks: { state: nativeHooksVerified ? 'verified' : 'unverified', scope: 'observed_hook_lifecycle_only' },
102
- sdk_passive_runtime: { state: sdkVerified ? 'verified' : 'unverified', scope: 'owned_node_process_while_installed' },
103
- governed_runner: { state: runnerVerified ? 'verified' : 'unverified', scope: 'wrapped_command_only' },
104
- custom_host: { state: adapterVerified ? 'verified' : 'adapter_required', scope: 'observed_event_adapter_lifecycle_only' },
80
+ native_hooks: { state: completeNativeHookActivity ? 'activity_reported' : 'unverified', scope: 'client_self_reported_lifecycle_only' },
81
+ sdk_passive_runtime: { state: sdkActivity ? 'activity_reported' : 'unverified', scope: 'owned_node_process_while_installed' },
82
+ governed_runner: { state: runnerActivity ? 'activity_reported' : 'unverified', scope: 'wrapped_command_only' },
83
+ custom_host: { state: adapterActivity ? 'activity_reported' : 'adapter_required', scope: 'client_self_reported_event_lifecycle_only' },
105
84
  },
106
- always_on_state: alwaysOnState,
107
- exact_next_action: exactNextAction,
85
+ always_on_state: 'not_verified',
86
+ exact_next_action: 'Use MCP tools on demand. For consequential CLI actions, use the governed wrapper: npx @getmarrow/install run --agent <agent-id> -- -- <command>. Custom hosts need a bounded event adapter; client activity alone does not certify control.',
108
87
  };
109
88
  }
110
89
  function hostCapabilityInstructions(capability) {
111
90
  return [
112
91
  `Current coverage: ${capability.current_mode} (${capability.coverage_scope}).`,
113
- 'MCP tools are on demand. Capability boundaries: MCP tools-only is on demand; verified native hooks are passive only for observed hook lifecycle receipts; createPassiveRuntime().install() covers only its owned Node process while installed; a governed runner covers only its wrapped command; a custom host needs a bounded event adapter.',
114
- 'A model name, host label, installed configuration, or detected hook file never certifies coverage. Only observed Marrow receipts do.',
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
+ '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
+ '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>.',
115
95
  capability.exact_next_action,
116
96
  ].join(' ');
117
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/dist/index.d.ts CHANGED
@@ -72,6 +72,7 @@ export declare function marrowCommit(apiKey: string, baseUrl: string, params: {
72
72
  runtime_gate?: MarrowAgentRuntimeResult | null;
73
73
  }>;
74
74
  export declare function marrowModelUsage(apiKey: string, baseUrl: string, input: MarrowModelUsageInput, sessionId?: string, agentId?: string): Promise<MarrowModelUsageResult>;
75
+ export declare const MARROW_AUTO_RESPONSE_BUDGET_MAX_MS = 8000;
75
76
  export type MarrowAutoResult = {
76
77
  operation_id: string;
77
78
  decision_id: string | null;
@@ -88,8 +89,11 @@ export type MarrowAutoResult = {
88
89
  };
89
90
  };
90
91
  /**
91
- * Fire-and-forget style logging helper for tool hooks and simple integrations.
92
- * Logs intent, and when outcome is supplied, immediately commits it.
92
+ * Bounded outcome logging helper for tool hooks and simple integrations.
93
+ * One outer invocation logs intent and, when an outcome is supplied, continues
94
+ * resumable server phases so the outcome normally closes in-band. If the
95
+ * caller's deadline is reached, the same operation ID resumes without opening
96
+ * another decision.
93
97
  */
94
98
  export declare function marrowAuto(apiKey: string, baseUrl: string, params: {
95
99
  action: string;