@ackuity/inline-proxy 0.7.4 → 0.7.7

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
@@ -279,4 +279,4 @@ src/
279
279
 
280
280
  ## Logging
281
281
 
282
- All MCP traffic is logged to `proxy_traffic.txt` in the working directory. Status messages are written to stderr with a `[PROXY]` prefix.
282
+ All MCP traffic is logged to `proxy_logs/proxy_traffic.txt` in the working directory. Status messages are written to stderr with a `[PROXY]` prefix.
package/dist/common.js CHANGED
@@ -26,7 +26,8 @@ export class ProxyProcessArguments {
26
26
  }
27
27
  }
28
28
  // --- Traffic logging ---
29
- const logFile = fs.createWriteStream("proxy_traffic.txt", { flags: "a" });
29
+ fs.mkdirSync("proxy_logs", { recursive: true });
30
+ const logFile = fs.createWriteStream("proxy_logs/proxy_traffic.txt", { flags: "a" });
30
31
  export function logTraffic(direction, msg) {
31
32
  const timestamp = new Date().toISOString();
32
33
  const pretty = JSON.stringify(msg, null, 2);
package/dist/main.js CHANGED
@@ -1,6 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import "dotenv/config";
3
- import { logToStderr, ProxyProcessArguments } from "./common.js";
3
+ import { formatError, logToStderr, ProxyProcessArguments } from "./common.js";
4
+ process.on("uncaughtException", (err) => {
5
+ if (err.name === "AbortError")
6
+ return;
7
+ logToStderr(`uncaught exception: ${formatError(err)}`);
8
+ });
9
+ process.on("unhandledRejection", (err) => {
10
+ if (err instanceof Error && err.name === "AbortError")
11
+ return;
12
+ logToStderr(`unhandled rejection: ${formatError(err)}`);
13
+ });
4
14
  import { modes } from "./config.js";
5
15
  import { setToolName } from "./inline_engine.js";
6
16
  const programArgs = new ProxyProcessArguments([
package/dist/mode.js CHANGED
@@ -53,33 +53,69 @@ async function startProxy(agentTransport, serverTransport, onClose) {
53
53
  return;
54
54
  closing = true;
55
55
  logToStderr(reason);
56
- agentTransport.close();
57
- serverTransport.close();
56
+ try {
57
+ agentTransport.close();
58
+ }
59
+ catch (_) {
60
+ /* already closed */
61
+ }
62
+ try {
63
+ serverTransport.close();
64
+ }
65
+ catch (_) {
66
+ /* already closed */
67
+ }
58
68
  onClose?.();
59
69
  };
60
70
  agentTransport.onmessage = async (msg) => {
61
71
  const allowed = await inspectRequest(msg);
62
72
  if (allowed) {
63
- await serverTransport.send(allowed);
73
+ try {
74
+ await serverTransport.send(allowed);
75
+ }
76
+ catch (_) {
77
+ /* server transport closed or aborted */
78
+ }
64
79
  }
65
80
  else {
66
81
  if ("id" in msg && msg.id !== undefined) {
67
- await agentTransport.send({
68
- jsonrpc: "2.0",
69
- id: msg.id,
70
- error: { code: -32001, message: "Blocked by security policy" },
71
- });
82
+ try {
83
+ await agentTransport.send({
84
+ jsonrpc: "2.0",
85
+ id: msg.id,
86
+ result: {
87
+ content: [{ type: "text", text: "Blocked by security policy" }],
88
+ isError: true,
89
+ },
90
+ });
91
+ }
92
+ catch (_) {
93
+ /* client already disconnected */
94
+ }
72
95
  }
73
96
  }
74
97
  };
75
98
  serverTransport.onmessage = async (msg) => {
76
99
  const allowed = inspectResponse(msg);
77
100
  if (allowed) {
78
- await agentTransport.send(allowed);
101
+ try {
102
+ await agentTransport.send(allowed);
103
+ }
104
+ catch (_) {
105
+ /* agent transport closed or aborted */
106
+ }
79
107
  }
80
108
  };
81
- agentTransport.onerror = (err) => logToStderr(`agent error: ${err}`);
82
- serverTransport.onerror = (err) => logToStderr(`server error: ${err}`);
109
+ agentTransport.onerror = (err) => {
110
+ if (err.name === "AbortError")
111
+ return;
112
+ logToStderr(`agent error: ${err}`);
113
+ };
114
+ serverTransport.onerror = (err) => {
115
+ if (err.name === "AbortError")
116
+ return;
117
+ logToStderr(`server error: ${err}`);
118
+ };
83
119
  agentTransport.onclose = () => closeSession("agent closed");
84
120
  serverTransport.onclose = () => closeSession("server closed");
85
121
  await serverTransport.start();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ackuity/inline-proxy",
3
- "version": "0.7.4",
3
+ "version": "0.7.7",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",