@ai-ecoverse/mcpcat 0.14.4 → 0.14.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -22,7 +22,7 @@ Or via npm:
22
22
  npm install -g @ai-ecoverse/mcpcat
23
23
  ```
24
24
 
25
- mcpcat runs natively on macOS, Linux and Windows (Node ≥ 24), and inside Sliccy Seven as a kernel program, with the same flags, the same output and the same config file in both places. Orphan-free shutdown of stdio server trees in the kernel needs slicc-kernel ≥ 1.74.0; on older kernels only the direct child is signalled.
25
+ mcpcat runs natively on macOS, Linux and Windows (Node ≥ 24), and inside Sliccy Seven as a kernel program, with the same flags, the same output and the same config file in both places. Orphan-free shutdown of stdio server trees in the kernel needs slicc-kernel ≥ 1.74.0; on older kernels only the direct child is signalled. When the kernel sends SIGKILL to mcpcat's process group, no handler can run and the server tree survives; a kernel "parent death signal" spawn option (like Linux `PR_SET_PDEATHSIG`) would cover that case.
26
26
 
27
27
  ## Quick start
28
28
 
@@ -15393,6 +15393,8 @@ async function dispatchMultiTarget(platform2, parsed, version) {
15393
15393
  return 5;
15394
15394
  } finally {
15395
15395
  await cleanup();
15396
+ await killAllStdio().catch(() => {
15397
+ });
15396
15398
  }
15397
15399
  }
15398
15400
  if (parsed.verb === "grep") {
@@ -15417,6 +15419,8 @@ async function dispatchMultiTarget(platform2, parsed, version) {
15417
15419
  });
15418
15420
  } finally {
15419
15421
  await cleanup();
15422
+ await killAllStdio().catch(() => {
15423
+ });
15420
15424
  }
15421
15425
  }
15422
15426
  if (parsed.verb === "describe" && parsed.showTs) {
@@ -15433,6 +15437,8 @@ async function dispatchMultiTarget(platform2, parsed, version) {
15433
15437
  return await runDescribeTs(platform2, targets, parsed.tsBudget);
15434
15438
  } finally {
15435
15439
  await cleanup();
15440
+ await killAllStdio().catch(() => {
15441
+ });
15436
15442
  }
15437
15443
  }
15438
15444
  return 2;
@@ -15805,10 +15811,17 @@ async function runClientVerb(platform2, version, parsed) {
15805
15811
  await writeErrRedacted(platform2, parsed.jsonOutput, e.kind, e.msg, redact2);
15806
15812
  return e.code;
15807
15813
  } finally {
15808
- try {
15809
- await conn.close();
15810
- } catch {
15811
- }
15814
+ await closeAndKillStdio(conn);
15815
+ }
15816
+ }
15817
+ async function closeAndKillStdio(conn) {
15818
+ try {
15819
+ await conn.close();
15820
+ } catch {
15821
+ }
15822
+ try {
15823
+ await killAllStdio();
15824
+ } catch {
15812
15825
  }
15813
15826
  }
15814
15827
  async function writeErr(p, json, kind, msg) {
@@ -16082,5 +16095,5 @@ try {
16082
16095
  });
16083
16096
  } catch {
16084
16097
  }
16085
- var code = await run(platform, "0.14.4", args);
16098
+ var code = await run(platform, "0.14.5", args);
16086
16099
  process.exit(code);
@@ -15014,6 +15014,8 @@ async function dispatchMultiTarget(platform2, parsed, version) {
15014
15014
  return 5;
15015
15015
  } finally {
15016
15016
  await cleanup();
15017
+ await killAllStdio().catch(() => {
15018
+ });
15017
15019
  }
15018
15020
  }
15019
15021
  if (parsed.verb === "grep") {
@@ -15038,6 +15040,8 @@ async function dispatchMultiTarget(platform2, parsed, version) {
15038
15040
  });
15039
15041
  } finally {
15040
15042
  await cleanup();
15043
+ await killAllStdio().catch(() => {
15044
+ });
15041
15045
  }
15042
15046
  }
15043
15047
  if (parsed.verb === "describe" && parsed.showTs) {
@@ -15054,6 +15058,8 @@ async function dispatchMultiTarget(platform2, parsed, version) {
15054
15058
  return await runDescribeTs(platform2, targets, parsed.tsBudget);
15055
15059
  } finally {
15056
15060
  await cleanup();
15061
+ await killAllStdio().catch(() => {
15062
+ });
15057
15063
  }
15058
15064
  }
15059
15065
  return 2;
@@ -15426,10 +15432,17 @@ async function runClientVerb(platform2, version, parsed) {
15426
15432
  await writeErrRedacted(platform2, parsed.jsonOutput, e.kind, e.msg, redact2);
15427
15433
  return e.code;
15428
15434
  } finally {
15429
- try {
15430
- await conn.close();
15431
- } catch {
15432
- }
15435
+ await closeAndKillStdio(conn);
15436
+ }
15437
+ }
15438
+ async function closeAndKillStdio(conn) {
15439
+ try {
15440
+ await conn.close();
15441
+ } catch {
15442
+ }
15443
+ try {
15444
+ await killAllStdio();
15445
+ } catch {
15433
15446
  }
15434
15447
  }
15435
15448
  async function writeErr(p, json, kind, msg) {
@@ -15746,7 +15759,7 @@ async function main(ctx) {
15746
15759
  packageDir: "/node_modules/@ai-ecoverse/mcpcat"
15747
15760
  });
15748
15761
  const args = ctx.argv.slice(1);
15749
- return run(platform2, "0.14.4", args);
15762
+ return run(platform2, "0.14.5", args);
15750
15763
  }
15751
15764
  export {
15752
15765
  main as default
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/mcpcat",
3
- "version": "0.14.4",
3
+ "version": "0.14.5",
4
4
  "description": "A curl for the Model Context Protocol",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",