@paretools/process 0.8.5 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { registerAllTools } from "./tools/index.js";
5
5
  const server = new McpServer({ name: "@paretools/process", version: "0.8.1" }, {
6
- instructions: "Structured process execution (run). Runs commands with timeout, environment, and signal support. Returns typed JSON with exit code, stdout, stderr, duration, and timeout status. Use instead of running arbitrary commands in the terminal.",
6
+ instructions: "Structured process execution (run). Runs commands with timeout, environment, and signal support. Returns typed JSON with exit code, stdout, stderr, duration, and timeout status.",
7
7
  });
8
8
  registerAllTools(server);
9
9
  const transport = new StdioServerTransport();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,EAAE,EAChD;IACE,YAAY,EACV,8OAA8O;CACjP,CACF,CAAC;AAEF,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEzB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,EAAE,EAChD;IACE,YAAY,EACV,mLAAmL;CACtL,CACF,CAAC;AAEF,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEzB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { ProcessRunResult } from "../schemas/index.js";
2
2
  /** Formats structured run results into a human-readable output summary. */
3
3
  export declare function formatRun(data: ProcessRunResult): string;
4
- /** Compact run: command, exitCode, success, duration, timedOut, signal. Drop stdout/stderr. */
4
+ /** Compact run: command, exitCode, success, duration, timedOut, signal, truncated. Drop stdout/stderr. */
5
5
  export interface ProcessRunCompact {
6
6
  [key: string]: unknown;
7
7
  command: string;
@@ -9,7 +9,12 @@ export interface ProcessRunCompact {
9
9
  exitCode: number;
10
10
  duration: number;
11
11
  timedOut: boolean;
12
+ truncated?: boolean;
12
13
  signal?: string;
14
+ userCpuTimeMs?: number;
15
+ systemCpuTimeMs?: number;
16
+ stdoutTruncatedLines?: number;
17
+ stderrTruncatedLines?: number;
13
18
  }
14
19
  export declare function compactRunMap(data: ProcessRunResult): ProcessRunCompact;
15
20
  export declare function formatRunCompact(data: ProcessRunCompact): string;
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAgBxD;AAID,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CASvE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAMhE"}
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAgCxD;AAID,0GAA0G;AAC1G,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAcvE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAwBhE"}
@@ -11,10 +11,24 @@ export function formatRun(data) {
11
11
  else {
12
12
  lines.push(`${data.command}: exit code ${data.exitCode} (${data.duration}ms).`);
13
13
  }
14
+ if (data.truncated) {
15
+ lines.push(" [output truncated: maxBuffer exceeded]");
16
+ }
14
17
  if (data.stdout)
15
18
  lines.push(data.stdout);
19
+ if (data.userCpuTimeMs !== undefined || data.systemCpuTimeMs !== undefined) {
20
+ const user = data.userCpuTimeMs !== undefined ? `${data.userCpuTimeMs.toFixed(2)}ms` : "n/a";
21
+ const system = data.systemCpuTimeMs !== undefined ? `${data.systemCpuTimeMs.toFixed(2)}ms` : "n/a";
22
+ lines.push(` cpu: user=${user}, system=${system}`);
23
+ }
24
+ if (data.stdoutTruncatedLines) {
25
+ lines.push(` ... ${data.stdoutTruncatedLines} stdout lines truncated`);
26
+ }
16
27
  if (data.stderr)
17
28
  lines.push(data.stderr);
29
+ if (data.stderrTruncatedLines) {
30
+ lines.push(` ... ${data.stderrTruncatedLines} stderr lines truncated`);
31
+ }
18
32
  return lines.join("\n");
19
33
  }
20
34
  export function compactRunMap(data) {
@@ -24,15 +38,33 @@ export function compactRunMap(data) {
24
38
  exitCode: data.exitCode,
25
39
  duration: data.duration,
26
40
  timedOut: data.timedOut,
41
+ truncated: data.truncated,
27
42
  signal: data.signal,
43
+ userCpuTimeMs: data.userCpuTimeMs,
44
+ systemCpuTimeMs: data.systemCpuTimeMs,
45
+ stdoutTruncatedLines: data.stdoutTruncatedLines,
46
+ stderrTruncatedLines: data.stderrTruncatedLines,
28
47
  };
29
48
  }
30
49
  export function formatRunCompact(data) {
50
+ const parts = [];
31
51
  if (data.timedOut) {
32
- return `${data.command}: timed out after ${data.duration}ms${data.signal ? ` (${data.signal})` : ""}.`;
52
+ parts.push(`${data.command}: timed out after ${data.duration}ms${data.signal ? ` (${data.signal})` : ""}.`);
53
+ }
54
+ else if (data.success) {
55
+ parts.push(`${data.command}: success (${data.duration}ms).`);
56
+ }
57
+ else {
58
+ parts.push(`${data.command}: exit code ${data.exitCode} (${data.duration}ms).`);
59
+ }
60
+ if (data.truncated) {
61
+ parts.push(" [output truncated: maxBuffer exceeded]");
62
+ }
63
+ if (data.userCpuTimeMs !== undefined || data.systemCpuTimeMs !== undefined) {
64
+ const user = data.userCpuTimeMs !== undefined ? `${data.userCpuTimeMs.toFixed(2)}ms` : "n/a";
65
+ const system = data.systemCpuTimeMs !== undefined ? `${data.systemCpuTimeMs.toFixed(2)}ms` : "n/a";
66
+ parts.push(` cpu: user=${user}, system=${system}`);
33
67
  }
34
- if (data.success)
35
- return `${data.command}: success (${data.duration}ms).`;
36
- return `${data.command}: exit code ${data.exitCode} (${data.duration}ms).`;
68
+ return parts.join("\n");
37
69
  }
38
70
  //# sourceMappingURL=formatters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAEA,wEAAwE;AAExE,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,IAAsB;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,OAAO,qBAAqB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAChG,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,eAAe,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,IAAI,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAeD,MAAM,UAAU,aAAa,CAAC,IAAsB;IAClD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAuB;IACtD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,GAAG,IAAI,CAAC,OAAO,qBAAqB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IACzG,CAAC;IACD,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,QAAQ,MAAM,CAAC;IAC1E,OAAO,GAAG,IAAI,CAAC,OAAO,eAAe,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,MAAM,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@ import type { ProcessRunResult } from "../schemas/index.js";
2
2
  /**
3
3
  * Parses the output of a process run into structured result data.
4
4
  */
5
- export declare function parseRunOutput(command: string, stdout: string, stderr: string, exitCode: number, duration: number, timedOut: boolean, signal?: string): ProcessRunResult;
5
+ export declare function parseRunOutput(command: string, stdout: string, stderr: string, exitCode: number, duration: number, timedOut: boolean, signal?: string, maxOutputLines?: number, truncated?: boolean, userCpuTimeMicros?: number, systemCpuTimeMicros?: number): ProcessRunResult;
6
6
  //# sourceMappingURL=parsers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,gBAAgB,CAWlB"}
1
+ {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAe5D;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,OAAO,EACnB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,mBAAmB,CAAC,EAAE,MAAM,GAC3B,gBAAgB,CAkClB"}
@@ -1,16 +1,49 @@
1
+ /**
2
+ * Truncates a string to a maximum number of lines.
3
+ * Returns the truncated string and the number of lines dropped.
4
+ */
5
+ function truncateLines(text, maxLines) {
6
+ const lines = text.split("\n");
7
+ if (lines.length <= maxLines) {
8
+ return { text, dropped: 0 };
9
+ }
10
+ const dropped = lines.length - maxLines;
11
+ return { text: lines.slice(0, maxLines).join("\n"), dropped };
12
+ }
1
13
  /**
2
14
  * Parses the output of a process run into structured result data.
3
15
  */
4
- export function parseRunOutput(command, stdout, stderr, exitCode, duration, timedOut, signal) {
16
+ export function parseRunOutput(command, stdout, stderr, exitCode, duration, timedOut, signal, maxOutputLines, truncated, userCpuTimeMicros, systemCpuTimeMicros) {
17
+ let finalStdout = stdout.trimEnd() || undefined;
18
+ let finalStderr = stderr.trimEnd() || undefined;
19
+ let stdoutTruncatedLines;
20
+ let stderrTruncatedLines;
21
+ if (maxOutputLines != null && maxOutputLines > 0) {
22
+ if (finalStdout) {
23
+ const result = truncateLines(finalStdout, maxOutputLines);
24
+ finalStdout = result.text || undefined;
25
+ stdoutTruncatedLines = result.dropped > 0 ? result.dropped : undefined;
26
+ }
27
+ if (finalStderr) {
28
+ const result = truncateLines(finalStderr, maxOutputLines);
29
+ finalStderr = result.text || undefined;
30
+ stderrTruncatedLines = result.dropped > 0 ? result.dropped : undefined;
31
+ }
32
+ }
5
33
  return {
6
34
  command,
7
35
  success: exitCode === 0 && !timedOut,
8
36
  exitCode,
9
- stdout: stdout.trimEnd() || undefined,
10
- stderr: stderr.trimEnd() || undefined,
37
+ stdout: finalStdout,
38
+ stderr: finalStderr,
11
39
  duration,
40
+ userCpuTimeMs: userCpuTimeMicros !== undefined ? userCpuTimeMicros / 1000 : undefined,
41
+ systemCpuTimeMs: systemCpuTimeMicros !== undefined ? systemCpuTimeMicros / 1000 : undefined,
12
42
  timedOut,
43
+ truncated: truncated || undefined,
13
44
  signal: signal || undefined,
45
+ stdoutTruncatedLines,
46
+ stderrTruncatedLines,
14
47
  };
15
48
  }
16
49
  //# sourceMappingURL=parsers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,MAAc,EACd,MAAc,EACd,QAAgB,EAChB,QAAgB,EAChB,QAAiB,EACjB,MAAe;IAEf,OAAO;QACL,OAAO;QACP,OAAO,EAAE,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ;QACpC,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS;QACrC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS;QACrC,QAAQ;QACR,QAAQ;QACR,MAAM,EAAE,MAAM,IAAI,SAAS;KAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/lib/parsers.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,SAAS,aAAa,CAAC,IAAY,EAAE,QAAgB;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;IACxC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,MAAc,EACd,MAAc,EACd,QAAgB,EAChB,QAAgB,EAChB,QAAiB,EACjB,MAAe,EACf,cAAuB,EACvB,SAAmB,EACnB,iBAA0B,EAC1B,mBAA4B;IAE5B,IAAI,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC;IAChD,IAAI,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC;IAChD,IAAI,oBAAwC,CAAC;IAC7C,IAAI,oBAAwC,CAAC;IAE7C,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAC1D,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;YACvC,oBAAoB,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAC1D,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;YACvC,oBAAoB,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;QACP,OAAO,EAAE,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ;QACpC,QAAQ;QACR,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,WAAW;QACnB,QAAQ;QACR,aAAa,EAAE,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;QACrF,eAAe,EAAE,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3F,QAAQ;QACR,SAAS,EAAE,SAAS,IAAI,SAAS;QACjC,MAAM,EAAE,MAAM,IAAI,SAAS;QAC3B,oBAAoB;QACpB,oBAAoB;KACrB,CAAC;AACJ,CAAC"}
@@ -7,8 +7,13 @@ export declare const ProcessRunResultSchema: z.ZodObject<{
7
7
  stdout: z.ZodOptional<z.ZodString>;
8
8
  stderr: z.ZodOptional<z.ZodString>;
9
9
  duration: z.ZodNumber;
10
+ userCpuTimeMs: z.ZodOptional<z.ZodNumber>;
11
+ systemCpuTimeMs: z.ZodOptional<z.ZodNumber>;
10
12
  timedOut: z.ZodBoolean;
13
+ truncated: z.ZodOptional<z.ZodBoolean>;
11
14
  signal: z.ZodOptional<z.ZodString>;
15
+ stdoutTruncatedLines: z.ZodOptional<z.ZodNumber>;
16
+ stderrTruncatedLines: z.ZodOptional<z.ZodNumber>;
12
17
  }, z.core.$strip>;
13
18
  export type ProcessRunResult = z.infer<typeof ProcessRunResultSchema>;
14
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sHAAsH;AACtH,eAAO,MAAM,sBAAsB;;;;;;;;;iBASjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sHAAsH;AACtH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;iBAcjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -7,7 +7,12 @@ export const ProcessRunResultSchema = z.object({
7
7
  stdout: z.string().optional(),
8
8
  stderr: z.string().optional(),
9
9
  duration: z.number(),
10
+ userCpuTimeMs: z.number().optional(),
11
+ systemCpuTimeMs: z.number().optional(),
10
12
  timedOut: z.boolean(),
13
+ truncated: z.boolean().optional(),
11
14
  signal: z.string().optional(),
15
+ stdoutTruncatedLines: z.number().optional(),
16
+ stderrTruncatedLines: z.number().optional(),
12
17
  });
13
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sHAAsH;AACtH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sHAAsH;AACtH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAuGhD"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoCzE,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QA+MhD"}
package/dist/tools/run.js CHANGED
@@ -3,11 +3,38 @@ import { compactDualOutput, INPUT_LIMITS, run, assertAllowedByPolicy, assertAllo
3
3
  import { parseRunOutput } from "../lib/parsers.js";
4
4
  import { formatRun, compactRunMap, formatRunCompact } from "../lib/formatters.js";
5
5
  import { ProcessRunResultSchema } from "../schemas/index.js";
6
+ const VALID_KILL_SIGNALS = [
7
+ "SIGTERM",
8
+ "SIGKILL",
9
+ "SIGINT",
10
+ "SIGHUP",
11
+ "SIGQUIT",
12
+ "SIGABRT",
13
+ "SIGUSR1",
14
+ "SIGUSR2",
15
+ ];
16
+ const VALID_ENCODINGS = [
17
+ "utf-8",
18
+ "utf8",
19
+ "ascii",
20
+ "latin1",
21
+ "binary",
22
+ "hex",
23
+ "base64",
24
+ "utf16le",
25
+ "ucs-2",
26
+ "ucs2",
27
+ ];
6
28
  /** Registers the `run` tool on the given MCP server. */
7
29
  export function registerRunTool(server) {
8
30
  server.registerTool("run", {
9
31
  title: "Process Run",
10
- description: "Runs a command and returns structured output (stdout, stderr, exit code, duration, timeout status). Use instead of running commands directly in the terminal.",
32
+ description: "Runs a command and returns structured output (stdout, stderr, exit code, duration, timeout status).\n\n" +
33
+ "**Security note**: The `shell` parameter enables shell-mode execution. " +
34
+ "When shell=true, the command string is passed through the system shell " +
35
+ "(e.g., /bin/sh or cmd.exe), enabling features like glob expansion, piping, " +
36
+ "and variable substitution — but also exposing the command to shell injection risks. " +
37
+ "Only use shell=true when you trust the input and need shell features.",
11
38
  inputSchema: {
12
39
  command: z
13
40
  .string()
@@ -19,11 +46,7 @@ export function registerRunTool(server) {
19
46
  .optional()
20
47
  .default([])
21
48
  .describe("Arguments to pass to the command"),
22
- cwd: z
23
- .string()
24
- .max(INPUT_LIMITS.PATH_MAX)
25
- .optional()
26
- .describe("Working directory (default: cwd)"),
49
+ cwd: z.string().max(INPUT_LIMITS.PATH_MAX).optional().describe("Working directory"),
27
50
  timeout: z
28
51
  .number()
29
52
  .int()
@@ -36,28 +59,86 @@ export function registerRunTool(server) {
36
59
  .record(z.string(), z.string().max(INPUT_LIMITS.STRING_MAX))
37
60
  .optional()
38
61
  .describe("Additional environment variables as key-value pairs"),
39
- compact: z
62
+ stdin: z
63
+ .string()
64
+ .max(1_000_000)
65
+ .optional()
66
+ .describe("Input data to write to the command's stdin (e.g., for piping to jq, grep)"),
67
+ maxBuffer: z
68
+ .number()
69
+ .int()
70
+ .min(1024)
71
+ .max(100 * 1024 * 1024)
72
+ .optional()
73
+ .describe("Maximum combined stdout+stderr buffer size in bytes (default: 10MB, max: 100MB)"),
74
+ killSignal: z
75
+ .enum(VALID_KILL_SIGNALS)
76
+ .optional()
77
+ .describe("Signal sent to the process on timeout (default: SIGTERM)"),
78
+ maxOutputLines: z
79
+ .number()
80
+ .int()
81
+ .min(1)
82
+ .max(100_000)
83
+ .optional()
84
+ .describe("Truncate stdout/stderr to this many lines (more agent-friendly than byte-based maxBuffer)"),
85
+ encoding: z
86
+ .enum(VALID_ENCODINGS)
87
+ .optional()
88
+ .describe("Output encoding for commands that produce non-UTF-8 output (default: utf-8)"),
89
+ compact: z.boolean().optional().default(true).describe("Prefer compact output"),
90
+ shell: z
91
+ .boolean()
92
+ .optional()
93
+ .default(false)
94
+ .describe("Run the command through the system shell (enables glob expansion, piping, variable substitution). " +
95
+ "WARNING: shell=true exposes the command to shell injection risks. Only use when you trust the input."),
96
+ stripEnv: z
40
97
  .boolean()
41
98
  .optional()
42
- .default(true)
43
- .describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
99
+ .default(false)
100
+ .describe("Run with a minimal environment (only PATH + explicit env vars). " +
101
+ "Prevents leaking sensitive parent environment variables to the child process."),
44
102
  },
45
103
  outputSchema: ProcessRunResultSchema,
46
- }, async ({ command, args, cwd, timeout, env, compact }) => {
104
+ }, async ({ command, args, cwd, timeout, env, stdin, maxBuffer, killSignal, maxOutputLines, encoding, compact, shell, stripEnv, }) => {
47
105
  assertAllowedByPolicy(command, "process");
48
106
  const workDir = cwd || process.cwd();
49
107
  assertAllowedRoot(workDir, "process");
50
108
  const timeoutMs = timeout ?? 60_000;
51
109
  const start = Date.now();
52
110
  let timedOut = false;
111
+ let truncated = false;
53
112
  let signal;
54
113
  let result;
114
+ // Build the environment for the child process
115
+ let childEnv;
116
+ if (stripEnv) {
117
+ // Minimal environment: only PATH + user-provided env vars
118
+ const minimalEnv = {};
119
+ if (process.env.PATH) {
120
+ minimalEnv.PATH = process.env.PATH;
121
+ }
122
+ if (env) {
123
+ Object.assign(minimalEnv, env);
124
+ }
125
+ childEnv = minimalEnv;
126
+ }
127
+ else if (env) {
128
+ childEnv = { ...process.env, ...env };
129
+ }
130
+ // Build run options
131
+ const runOpts = {
132
+ cwd: workDir,
133
+ timeout: timeoutMs,
134
+ env: childEnv,
135
+ stdin: stdin || undefined,
136
+ maxBuffer: maxBuffer || undefined,
137
+ shell: shell || undefined,
138
+ replaceEnv: stripEnv || undefined,
139
+ };
55
140
  try {
56
- result = await run(command, args ?? [], {
57
- cwd: workDir,
58
- timeout: timeoutMs,
59
- env: env ? { ...process.env, ...env } : undefined,
60
- });
141
+ result = await run(command, args ?? [], runOpts);
61
142
  }
62
143
  catch (err) {
63
144
  const errMsg = err instanceof Error ? err.message : String(err);
@@ -66,20 +147,34 @@ export function registerRunTool(server) {
66
147
  timedOut = true;
67
148
  // Extract signal from message like "...was killed (SIGTERM)."
68
149
  const sigMatch = errMsg.match(/\((\w+)\)/);
69
- signal = sigMatch?.[1];
150
+ signal = sigMatch?.[1] ?? killSignal;
70
151
  result = {
71
152
  exitCode: 124, // Standard timeout exit code
72
153
  stdout: "",
73
154
  stderr: errMsg,
74
155
  };
75
156
  }
157
+ else if (errMsg.includes("maxBuffer")) {
158
+ // Buffer exceeded — return partial result with truncated flag
159
+ truncated = true;
160
+ result = {
161
+ exitCode: 1,
162
+ stdout: "",
163
+ stderr: errMsg,
164
+ };
165
+ }
76
166
  else {
77
167
  // Re-throw non-timeout errors (command not found, permission denied, etc.)
78
168
  throw err;
79
169
  }
80
170
  }
81
171
  const duration = Date.now() - start;
82
- const data = parseRunOutput(command, result.stdout, result.stderr, result.exitCode, duration, timedOut, signal);
172
+ // Handle encoding conversion if non-default specified
173
+ // The shared runner always returns utf-8 strings; encoding param documents
174
+ // the expected encoding for agent awareness. The Node.js runner handles
175
+ // binary-to-string conversion automatically.
176
+ void encoding;
177
+ const data = parseRunOutput(command, result.stdout, result.stderr, result.exitCode, duration, timedOut, signal, maxOutputLines, truncated, result.userCpuTimeMicros, result.systemCpuTimeMicros);
83
178
  const rawOutput = (result.stdout + "\n" + result.stderr).trim();
84
179
  return compactDualOutput(data, rawOutput, formatRun, compactRunMap, formatRunCompact, compact === false);
85
180
  });
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paretools/process",
3
- "version": "0.8.5",
3
+ "version": "0.10.0",
4
4
  "mcpName": "io.github.Dave-London/pare-process",
5
5
  "description": "MCP server for running commands with structured output, timeout, and signal support",
6
6
  "license": "MIT",
@@ -51,7 +51,7 @@
51
51
  "dependencies": {
52
52
  "@modelcontextprotocol/sdk": "^1.26.0",
53
53
  "zod": "^4.3.6",
54
- "@paretools/shared": "0.8.5"
54
+ "@paretools/shared": "0.10.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/node": "^25.2.3",