@paretools/process 0.8.4 → 0.9.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.
@@ -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,10 @@ export interface ProcessRunCompact {
9
9
  exitCode: number;
10
10
  duration: number;
11
11
  timedOut: boolean;
12
+ truncated?: boolean;
12
13
  signal?: string;
14
+ stdoutTruncatedLines?: number;
15
+ stderrTruncatedLines?: number;
13
16
  }
14
17
  export declare function compactRunMap(data: ProcessRunResult): ProcessRunCompact;
15
18
  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,CA0BxD;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,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAYvE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAkBhE"}
@@ -11,10 +11,19 @@ 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.stdoutTruncatedLines) {
20
+ lines.push(` ... ${data.stdoutTruncatedLines} stdout lines truncated`);
21
+ }
16
22
  if (data.stderr)
17
23
  lines.push(data.stderr);
24
+ if (data.stderrTruncatedLines) {
25
+ lines.push(` ... ${data.stderrTruncatedLines} stderr lines truncated`);
26
+ }
18
27
  return lines.join("\n");
19
28
  }
20
29
  export function compactRunMap(data) {
@@ -24,15 +33,26 @@ export function compactRunMap(data) {
24
33
  exitCode: data.exitCode,
25
34
  duration: data.duration,
26
35
  timedOut: data.timedOut,
36
+ truncated: data.truncated,
27
37
  signal: data.signal,
38
+ stdoutTruncatedLines: data.stdoutTruncatedLines,
39
+ stderrTruncatedLines: data.stderrTruncatedLines,
28
40
  };
29
41
  }
30
42
  export function formatRunCompact(data) {
43
+ const parts = [];
31
44
  if (data.timedOut) {
32
- return `${data.command}: timed out after ${data.duration}ms${data.signal ? ` (${data.signal})` : ""}.`;
45
+ parts.push(`${data.command}: timed out after ${data.duration}ms${data.signal ? ` (${data.signal})` : ""}.`);
46
+ }
47
+ else if (data.success) {
48
+ parts.push(`${data.command}: success (${data.duration}ms).`);
49
+ }
50
+ else {
51
+ parts.push(`${data.command}: exit code ${data.exitCode} (${data.duration}ms).`);
52
+ }
53
+ if (data.truncated) {
54
+ parts.push(" [output truncated: maxBuffer exceeded]");
33
55
  }
34
- if (data.success)
35
- return `${data.command}: success (${data.duration}ms).`;
36
- return `${data.command}: exit code ${data.exitCode} (${data.duration}ms).`;
56
+ return parts.join("\n");
37
57
  }
38
58
  //# 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): 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,GAClB,gBAAgB,CAgClB"}
@@ -1,16 +1,47 @@
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) {
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,
12
40
  timedOut,
41
+ truncated: truncated || undefined,
13
42
  signal: signal || undefined,
43
+ stdoutTruncatedLines,
44
+ stderrTruncatedLines,
14
45
  };
15
46
  }
16
47
  //# 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;IAEnB,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,QAAQ;QACR,SAAS,EAAE,SAAS,IAAI,SAAS;QACjC,MAAM,EAAE,MAAM,IAAI,SAAS;QAC3B,oBAAoB;QACpB,oBAAoB;KACrB,CAAC;AACJ,CAAC"}
@@ -8,7 +8,10 @@ export declare const ProcessRunResultSchema: z.ZodObject<{
8
8
  stderr: z.ZodOptional<z.ZodString>;
9
9
  duration: z.ZodNumber;
10
10
  timedOut: z.ZodBoolean;
11
+ truncated: z.ZodOptional<z.ZodBoolean>;
11
12
  signal: z.ZodOptional<z.ZodString>;
13
+ stdoutTruncatedLines: z.ZodOptional<z.ZodNumber>;
14
+ stderrTruncatedLines: z.ZodOptional<z.ZodNumber>;
12
15
  }, z.core.$strip>;
13
16
  export type ProcessRunResult = z.infer<typeof ProcessRunResultSchema>;
14
17
  //# 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;;;;;;;;;;;;iBAYjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -8,6 +8,9 @@ export const ProcessRunResultSchema = z.object({
8
8
  stderr: z.string().optional(),
9
9
  duration: z.number(),
10
10
  timedOut: z.boolean(),
11
+ truncated: z.boolean().optional(),
11
12
  signal: z.string().optional(),
13
+ stdoutTruncatedLines: z.number().optional(),
14
+ stderrTruncatedLines: z.number().optional(),
12
15
  });
13
16
  //# 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,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,QAiNhD"}
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). Use instead of running commands directly in the terminal.\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()
@@ -36,28 +63,90 @@ export function registerRunTool(server) {
36
63
  .record(z.string(), z.string().max(INPUT_LIMITS.STRING_MAX))
37
64
  .optional()
38
65
  .describe("Additional environment variables as key-value pairs"),
66
+ stdin: z
67
+ .string()
68
+ .max(1_000_000)
69
+ .optional()
70
+ .describe("Input data to write to the command's stdin (e.g., for piping to jq, grep)"),
71
+ maxBuffer: z
72
+ .number()
73
+ .int()
74
+ .min(1024)
75
+ .max(100 * 1024 * 1024)
76
+ .optional()
77
+ .describe("Maximum combined stdout+stderr buffer size in bytes (default: 10MB, max: 100MB)"),
78
+ killSignal: z
79
+ .enum(VALID_KILL_SIGNALS)
80
+ .optional()
81
+ .describe("Signal sent to the process on timeout (default: SIGTERM)"),
82
+ maxOutputLines: z
83
+ .number()
84
+ .int()
85
+ .min(1)
86
+ .max(100_000)
87
+ .optional()
88
+ .describe("Truncate stdout/stderr to this many lines (more agent-friendly than byte-based maxBuffer)"),
89
+ encoding: z
90
+ .enum(VALID_ENCODINGS)
91
+ .optional()
92
+ .describe("Output encoding for commands that produce non-UTF-8 output (default: utf-8)"),
39
93
  compact: z
40
94
  .boolean()
41
95
  .optional()
42
96
  .default(true)
43
97
  .describe("Auto-compact when structured output exceeds raw CLI tokens. Set false to always get full schema."),
98
+ shell: z
99
+ .boolean()
100
+ .optional()
101
+ .default(false)
102
+ .describe("Run the command through the system shell (enables glob expansion, piping, variable substitution). " +
103
+ "WARNING: shell=true exposes the command to shell injection risks. Only use when you trust the input."),
104
+ stripEnv: z
105
+ .boolean()
106
+ .optional()
107
+ .default(false)
108
+ .describe("Run with a minimal environment (only PATH + explicit env vars). " +
109
+ "Prevents leaking sensitive parent environment variables to the child process."),
44
110
  },
45
111
  outputSchema: ProcessRunResultSchema,
46
- }, async ({ command, args, cwd, timeout, env, compact }) => {
112
+ }, async ({ command, args, cwd, timeout, env, stdin, maxBuffer, killSignal, maxOutputLines, encoding, compact, shell, stripEnv, }) => {
47
113
  assertAllowedByPolicy(command, "process");
48
114
  const workDir = cwd || process.cwd();
49
115
  assertAllowedRoot(workDir, "process");
50
116
  const timeoutMs = timeout ?? 60_000;
51
117
  const start = Date.now();
52
118
  let timedOut = false;
119
+ let truncated = false;
53
120
  let signal;
54
121
  let result;
122
+ // Build the environment for the child process
123
+ let childEnv;
124
+ if (stripEnv) {
125
+ // Minimal environment: only PATH + user-provided env vars
126
+ const minimalEnv = {};
127
+ if (process.env.PATH) {
128
+ minimalEnv.PATH = process.env.PATH;
129
+ }
130
+ if (env) {
131
+ Object.assign(minimalEnv, env);
132
+ }
133
+ childEnv = minimalEnv;
134
+ }
135
+ else if (env) {
136
+ childEnv = { ...process.env, ...env };
137
+ }
138
+ // Build run options
139
+ const runOpts = {
140
+ cwd: workDir,
141
+ timeout: timeoutMs,
142
+ env: childEnv,
143
+ stdin: stdin || undefined,
144
+ maxBuffer: maxBuffer || undefined,
145
+ shell: shell || undefined,
146
+ replaceEnv: stripEnv || undefined,
147
+ };
55
148
  try {
56
- result = await run(command, args ?? [], {
57
- cwd: workDir,
58
- timeout: timeoutMs,
59
- env: env ? { ...process.env, ...env } : undefined,
60
- });
149
+ result = await run(command, args ?? [], runOpts);
61
150
  }
62
151
  catch (err) {
63
152
  const errMsg = err instanceof Error ? err.message : String(err);
@@ -66,20 +155,34 @@ export function registerRunTool(server) {
66
155
  timedOut = true;
67
156
  // Extract signal from message like "...was killed (SIGTERM)."
68
157
  const sigMatch = errMsg.match(/\((\w+)\)/);
69
- signal = sigMatch?.[1];
158
+ signal = sigMatch?.[1] ?? killSignal;
70
159
  result = {
71
160
  exitCode: 124, // Standard timeout exit code
72
161
  stdout: "",
73
162
  stderr: errMsg,
74
163
  };
75
164
  }
165
+ else if (errMsg.includes("maxBuffer")) {
166
+ // Buffer exceeded — return partial result with truncated flag
167
+ truncated = true;
168
+ result = {
169
+ exitCode: 1,
170
+ stdout: "",
171
+ stderr: errMsg,
172
+ };
173
+ }
76
174
  else {
77
175
  // Re-throw non-timeout errors (command not found, permission denied, etc.)
78
176
  throw err;
79
177
  }
80
178
  }
81
179
  const duration = Date.now() - start;
82
- const data = parseRunOutput(command, result.stdout, result.stderr, result.exitCode, duration, timedOut, signal);
180
+ // Handle encoding conversion if non-default specified
181
+ // The shared runner always returns utf-8 strings; encoding param documents
182
+ // the expected encoding for agent awareness. The Node.js runner handles
183
+ // binary-to-string conversion automatically.
184
+ void encoding;
185
+ const data = parseRunOutput(command, result.stdout, result.stderr, result.exitCode, duration, timedOut, signal, maxOutputLines, truncated);
83
186
  const rawOutput = (result.stdout + "\n" + result.stderr).trim();
84
187
  return compactDualOutput(data, rawOutput, formatRun, compactRunMap, formatRunCompact, compact === false);
85
188
  });
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/tools/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,GAAG,EACH,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,KAAK,EACL;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EACT,+JAA+J;QACjK,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC;iBAClC,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,IAAI,EAAE,CAAC;iBACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;iBAC9C,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;iBAC3B,QAAQ,EAAE;iBACV,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CAAC,kCAAkC,CAAC;YAC/C,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,OAAO,CAAC;iBACZ,QAAQ,EAAE;iBACV,OAAO,CAAC,MAAM,CAAC;iBACf,QAAQ,CAAC,uDAAuD,CAAC;YACpE,GAAG,EAAE,CAAC;iBACH,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;iBAC3D,QAAQ,EAAE;iBACV,QAAQ,CAAC,qDAAqD,CAAC;YAClE,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CACP,kGAAkG,CACnG;SACJ;QACD,YAAY,EAAE,sBAAsB;KACrC,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;QACtD,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACrC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,IAAI,MAAM,CAAC;QAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,MAA0B,CAAC;QAC/B,IAAI,MAA4D,CAAC;QAEjE,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE;gBACtC,GAAG,EAAE,OAAO;gBACZ,OAAO,EAAE,SAAS;gBAClB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAA6B,CAAC,CAAC,CAAC,SAAS;aAC9E,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEhE,+CAA+C;YAC/C,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,QAAQ,GAAG,IAAI,CAAC;gBAChB,8DAA8D;gBAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC3C,MAAM,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,GAAG;oBACP,QAAQ,EAAE,GAAG,EAAE,6BAA6B;oBAC5C,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,MAAM;iBACf,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,2EAA2E;gBAC3E,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAEpC,MAAM,IAAI,GAAG,cAAc,CACzB,OAAO,EACP,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,QAAQ,EACR,QAAQ,EACR,MAAM,CACP,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,iBAAiB,CACtB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,OAAO,KAAK,KAAK,CAClB,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
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.4",
3
+ "version": "0.9.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.3"
54
+ "@paretools/shared": "0.9.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/node": "^25.2.3",