mavis_session_abort
Abort a running session to immediately stop its ongoing tasks and free system resources.
Instructions
Abort a running session.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID to abort |
Implementation Reference
- src/index.js:32-53 (handler)The execMavis function is the actual handler that spawns the mavis CLI process with the args built by mavis_session_abort's buildArgs. It runs 'mavis session abort <sessionId>' and returns the raw stdout output.
function execMavis(args, input = '') { return new Promise((resolve, reject) => { const SESSION_COMMANDS = new Set(['communication', 'session', 'spawn']); const sessionId = process.env.__MAVIS_PARENT_SESSION_ID; const subcmd = args[0]; const needsSession = SESSION_COMMANDS.has(subcmd) && sessionId; const finalArgs = needsSession ? [...args, '--session', sessionId] : args; const proc = spawn(MAVIS_BIN, finalArgs, { stdio: ['pipe', 'pipe', 'pipe'] }); let stdout = ''; let stderr = ''; proc.stdout.on('data', d => stdout += d.toString()); proc.stderr.on('data', d => stderr += d.toString()); proc.on('close', code => { if (code === 0) resolve(stdout.trim()); else reject(new Error(stderr.split('\n')[0] || `exit code ${code}`)); }); proc.on('error', reject); if (input) proc.stdin.write(input), proc.stdin.end(); }); } - src/index.js:164-166 (schema)Input schema for mavis_session_abort: requires a single string field 'sessionId'.
inputSchema: z.object({ sessionId: z.string().describe('Session ID to abort') }), - src/index.js:161-170 (registration)Tool registration for mavis_session_abort. It's defined as an entry in the 'tools' array with 'execFn: execMavis', 'outputMode: OUTPUT_RAW', and a buildArgs function that constructs ['session', 'abort', sessionId].
{ name: 'mavis_session_abort', description: 'Abort a running session.', inputSchema: z.object({ sessionId: z.string().describe('Session ID to abort') }), execFn: execMavis, outputMode: OUTPUT_RAW, buildArgs: ({ sessionId }) => ['session', 'abort', sessionId] }, - src/index.js:77-92 (helper)The runTool helper orchestrates tool execution. It calls buildArgs to get the CLI args, then invokes execMavis (since mavis_session_abort specifies execFn), and returns the raw output string.
function runTool(spec, parsedArgs) { const { execFn, outputMode, stdin, buildArgs } = spec; const args = buildArgs(parsedArgs); const input = typeof stdin === 'function' ? stdin(parsedArgs) : stdin; const execPromise = execFn ? execMavis(args, input || '') : execMavisJSON(args); return execPromise.then(result => { const text = outputMode === OUTPUT_RAW ? (result || '') : JSON.stringify(result, null, 2); return [{ type: 'text', text }]; }); }