@cyanheads/mcp-ts-core 0.12.2 → 0.12.3

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.
Files changed (39) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/README.md +1 -1
  4. package/changelog/0.12.x/0.12.3.md +26 -0
  5. package/dist/core/app.d.ts.map +1 -1
  6. package/dist/core/app.js +34 -1
  7. package/dist/core/app.js.map +1 -1
  8. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  9. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +19 -12
  10. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  11. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  12. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +43 -35
  13. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  14. package/dist/mcp-server/transports/http/httpServer.d.ts.map +1 -1
  15. package/dist/mcp-server/transports/http/httpServer.js +97 -14
  16. package/dist/mcp-server/transports/http/httpServer.js.map +1 -1
  17. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +29 -0
  18. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -1
  19. package/dist/mcp-server/transports/stdio/stdioTransport.js +33 -0
  20. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -1
  21. package/dist/utils/internal/logger.d.ts +12 -0
  22. package/dist/utils/internal/logger.d.ts.map +1 -1
  23. package/dist/utils/internal/logger.js +39 -6
  24. package/dist/utils/internal/logger.js.map +1 -1
  25. package/dist/utils/internal/performance.d.ts +18 -9
  26. package/dist/utils/internal/performance.d.ts.map +1 -1
  27. package/dist/utils/internal/performance.js +66 -14
  28. package/dist/utils/internal/performance.js.map +1 -1
  29. package/package.json +3 -3
  30. package/skills/api-config/SKILL.md +10 -2
  31. package/skills/api-telemetry/SKILL.md +35 -3
  32. package/skills/git-wrapup/SKILL.md +4 -2
  33. package/skills/polish-docs-meta/references/package-meta.md +1 -1
  34. package/skills/release-and-publish/SKILL.md +9 -2
  35. package/templates/Dockerfile +2 -2
  36. package/templates/package.json +1 -1
  37. package/dist/logs/combined.log +0 -10
  38. package/dist/logs/error.log +0 -6
  39. package/dist/logs/interactions.log +0 -0
@@ -12,6 +12,13 @@ import { createHttpApp } from '../../../mcp-server/transports/http/httpTransport
12
12
  import { logger } from '../../../utils/internal/logger.js';
13
13
  import { withExtra } from '../../../utils/internal/requestContext.js';
14
14
  import { logStartupBanner } from '../../../utils/internal/startupBanner.js';
15
+ /**
16
+ * Cheap pre-check for an occupied port. It is a TOCTOU probe and nothing more:
17
+ * the socket it opens is closed before the real bind, another process can claim
18
+ * the port in between, and any failure other than `EADDRINUSE` (e.g. `EACCES` on
19
+ * a privileged port) reports the port as free. The real `serve()` call therefore
20
+ * observes its own bind outcome rather than trusting this answer.
21
+ */
15
22
  function isPortInUse(port, host, parentContext) {
16
23
  const context = withExtra({ ...parentContext, operation: 'isPortInUse' }, { port, host });
17
24
  logger.debug(`Checking if port ${port} is in use...`, context);
@@ -23,6 +30,26 @@ function isPortInUse(port, host, parentContext) {
23
30
  .listen(port, host);
24
31
  });
25
32
  }
33
+ /**
34
+ * Bind failures that no later rung of the ladder can clear.
35
+ *
36
+ * Each rung only changes the port, so a failure tied to privileges or to the
37
+ * host address fails identically on port+1: walking 81, 82, 83 as a non-root
38
+ * user burns the whole ladder on a condition that will never clear. `EACCES`
39
+ * (privileged port, or blocked by policy) and `EADDRNOTAVAIL` (host address not
40
+ * local to this machine) therefore reject immediately; every other failure —
41
+ * `EADDRINUSE` above all — retries.
42
+ *
43
+ * Runtime split: Node reports a permission-denied bind as `EACCES`, while Bun
44
+ * reports it as `EADDRINUSE` ("Is port 80 in use?"). Nothing can tell Bun's
45
+ * relabeled permission error from a genuine collision, so on Bun a privileged
46
+ * port reads as a collision and walks the ladder before failing.
47
+ */
48
+ const NON_RETRYABLE_BIND_CODES = new Set(['EACCES', 'EADDRNOTAVAIL']);
49
+ function isRetryableBindError(err) {
50
+ const code = err?.code;
51
+ return code === undefined || !NON_RETRYABLE_BIND_CODES.has(code);
52
+ }
26
53
  function startHttpServerWithRetry(app, initialPort, host, maxRetries, parentContext) {
27
54
  const startContext = {
28
55
  ...parentContext,
@@ -30,9 +57,76 @@ function startHttpServerWithRetry(app, initialPort, host, maxRetries, parentCont
30
57
  };
31
58
  logger.info(`Attempting to start HTTP server on port ${initialPort} with ${maxRetries} retries.`, startContext);
32
59
  const { promise, resolve, reject } = Promise.withResolvers();
60
+ let lastBindError;
61
+ const scheduleRetry = (port, attempt) => setTimeout(() => tryBind(port + 1, attempt + 1), config.mcpHttpPortRetryDelayMs);
62
+ /** Routes one attempt's bind failure: reject with the cause, or take the next rung. */
63
+ const handleBindFailure = (err, port, attempt) => {
64
+ lastBindError = err;
65
+ if (!isRetryableBindError(err)) {
66
+ const error = new Error(`Failed to bind HTTP server to ${host}:${port}.`, { cause: err });
67
+ logger.fatal(error.message, withExtra(startContext, { port, attempt, error: String(err) }));
68
+ reject(error);
69
+ return;
70
+ }
71
+ logger.warning(`Binding attempt failed for port ${port}, retrying...`, withExtra(startContext, { port, attempt, error: String(err) }));
72
+ scheduleRetry(port, attempt);
73
+ };
74
+ /**
75
+ * Runs one bind attempt and settles it exactly once.
76
+ *
77
+ * `serve()` returns the `node:http` server synchronously without attaching an
78
+ * `'error'` listener of its own, so this listener is the only thing that
79
+ * observes a bind failure surfacing after that return (a TOCTOU collision the
80
+ * probe could not see, among others). Without it the failure escapes to the
81
+ * process-wide `uncaughtException` handler — after startup has already been
82
+ * reported successful.
83
+ *
84
+ * Whichever of `'listening'` / `'error'` lands first wins: the loser is
85
+ * ignored, and the listener is detached on success so a later runtime error on
86
+ * the handed-over server is not silently absorbed here.
87
+ */
88
+ const bind = (port, attempt) => {
89
+ let settled = false;
90
+ let listening = false;
91
+ let instance;
92
+ const onError = (err) => {
93
+ if (settled)
94
+ return;
95
+ settled = true;
96
+ handleBindFailure(err, port, attempt);
97
+ };
98
+ // Resolve only once the server has confirmed it is listening AND `serve()`
99
+ // has handed back the instance; the callback runs asynchronously on a real
100
+ // bind, but nothing guarantees it runs after `serve()` returns.
101
+ const settleListening = () => {
102
+ if (settled || !listening || !instance)
103
+ return;
104
+ settled = true;
105
+ instance.off('error', onError);
106
+ resolve(instance);
107
+ };
108
+ try {
109
+ const serverInstance = serve({ fetch: app.fetch, port, hostname: host }, (info) => {
110
+ if (settled)
111
+ return;
112
+ listening = true;
113
+ const serverAddress = `http://${info.address}:${info.port}${config.mcpHttpEndpointPath}`;
114
+ logger.info(`HTTP transport listening at ${serverAddress}`, withExtra(startContext, { port, address: serverAddress }));
115
+ logStartupBanner(`\n🚀 MCP Server running at: ${serverAddress}`, 'http');
116
+ settleListening();
117
+ });
118
+ instance = serverInstance;
119
+ serverInstance.once('error', onError);
120
+ settleListening();
121
+ }
122
+ catch (err) {
123
+ // A synchronous throw from serve() routes through the same settle guard.
124
+ onError(err);
125
+ }
126
+ };
33
127
  const tryBind = (port, attempt) => {
34
128
  if (attempt > maxRetries + 1) {
35
- const error = new Error(`Failed to bind to any port after ${maxRetries} retries.`);
129
+ const error = new Error(`Failed to bind to any port after ${maxRetries} retries.`, lastBindError === undefined ? undefined : { cause: lastBindError });
36
130
  logger.fatal(error.message, withExtra(startContext, { port, attempt }));
37
131
  return reject(error);
38
132
  }
@@ -40,21 +134,10 @@ function startHttpServerWithRetry(app, initialPort, host, maxRetries, parentCont
40
134
  .then((inUse) => {
41
135
  if (inUse) {
42
136
  logger.warning(`Port ${port} is in use, retrying...`, withExtra(startContext, { port, attempt }));
43
- setTimeout(() => tryBind(port + 1, attempt + 1), config.mcpHttpPortRetryDelayMs);
137
+ scheduleRetry(port, attempt);
44
138
  return;
45
139
  }
46
- try {
47
- const serverInstance = serve({ fetch: app.fetch, port, hostname: host }, (info) => {
48
- const serverAddress = `http://${info.address}:${info.port}${config.mcpHttpEndpointPath}`;
49
- logger.info(`HTTP transport listening at ${serverAddress}`, withExtra(startContext, { port, address: serverAddress }));
50
- logStartupBanner(`\n🚀 MCP Server running at: ${serverAddress}`, 'http');
51
- });
52
- resolve(serverInstance);
53
- }
54
- catch (err) {
55
- logger.warning(`Binding attempt failed for port ${port}, retrying...`, withExtra(startContext, { port, attempt, error: String(err) }));
56
- setTimeout(() => tryBind(port + 1, attempt + 1), config.mcpHttpPortRetryDelayMs);
57
- }
140
+ bind(port, attempt);
58
141
  })
59
142
  .catch((err) => reject(err instanceof Error ? err : new Error(String(err))));
60
143
  };
@@ -1 +1 @@
1
- {"version":3,"file":"httpServer.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpServer.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpServer.ts"],"names":[],"mappings":"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"}
@@ -33,5 +33,34 @@ import { type RequestContext } from '../../../utils/internal/requestContext.js';
33
33
  * @throws {Error} If the connection fails during setup.
34
34
  */
35
35
  export declare function startStdioTransport(serverFactory: McpServerFactory, parentContext: RequestContext): StdioServerHandle;
36
+ /** The slice of a readable stream {@link observeStdinEof} binds. */
37
+ export interface StdinEofSource {
38
+ off(event: 'close' | 'end', listener: () => void): unknown;
39
+ on(event: 'close' | 'end', listener: () => void): unknown;
40
+ }
41
+ /** Options for {@link observeStdinEof}. */
42
+ export interface ObserveStdinEofOptions {
43
+ /** Runs once, on the first of `end` / `close`. */
44
+ onEof: () => void;
45
+ /** Stream to watch. Defaults to `process.stdin`. */
46
+ stream?: StdinEofSource;
47
+ }
48
+ /**
49
+ * Reports the client closing the stdin pipe — the only observable signal that a
50
+ * stdio host has disconnected.
51
+ *
52
+ * `StdioServerTransport` registers `data` and `error` on stdin and nothing else,
53
+ * and `serveStdio` overwrites the transport's `onclose`, so the disconnect never
54
+ * reaches the caller through the SDK handle. Watching the stream directly is
55
+ * what makes EOF reachable by the shutdown path (#322).
56
+ *
57
+ * Both `end` and `close` are bound because a torn-down pipe can emit either
58
+ * first; `onEof` still runs at most once, and the listeners come off before it
59
+ * does so nothing can re-enter.
60
+ *
61
+ * @param options - The EOF callback and, for tests, the stream to watch.
62
+ * @returns Disposer removing both listeners. Safe to call more than once.
63
+ */
64
+ export declare function observeStdinEof({ onEof, stream, }: ObserveStdinEofOptions): () => void;
36
65
  export declare function stopStdioTransport(handle: StdioServerHandle, parentContext: RequestContext): Promise<void>;
37
66
  //# sourceMappingURL=stdioTransport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stdioTransport.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/stdio/stdioTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,KAAK,iBAAiB,EAAc,MAAM,oCAAoC,CAAC;AAIxF,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,oCAAoC,CAAC;AAGpF;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,gBAAgB,EAC/B,aAAa,EAAE,cAAc,GAC5B,iBAAiB,CA0BnB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,cAAc,GAC5B,OAAO,CAAC,IAAI,CAAC,CAQf"}
1
+ {"version":3,"file":"stdioTransport.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/stdio/stdioTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,KAAK,iBAAiB,EAAc,MAAM,oCAAoC,CAAC;AAIxF,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,oCAAoC,CAAC;AAGpF;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,gBAAgB,EAC/B,aAAa,EAAE,cAAc,GAC5B,iBAAiB,CA0BnB;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;IAC3D,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;CAC3D;AAED,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,oDAAoD;IACpD,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,MAAsB,GACvB,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAiBrC;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,cAAc,GAC5B,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -39,6 +39,39 @@ export function startStdioTransport(serverFactory, parentContext) {
39
39
  });
40
40
  }
41
41
  }
42
+ /**
43
+ * Reports the client closing the stdin pipe — the only observable signal that a
44
+ * stdio host has disconnected.
45
+ *
46
+ * `StdioServerTransport` registers `data` and `error` on stdin and nothing else,
47
+ * and `serveStdio` overwrites the transport's `onclose`, so the disconnect never
48
+ * reaches the caller through the SDK handle. Watching the stream directly is
49
+ * what makes EOF reachable by the shutdown path (#322).
50
+ *
51
+ * Both `end` and `close` are bound because a torn-down pipe can emit either
52
+ * first; `onEof` still runs at most once, and the listeners come off before it
53
+ * does so nothing can re-enter.
54
+ *
55
+ * @param options - The EOF callback and, for tests, the stream to watch.
56
+ * @returns Disposer removing both listeners. Safe to call more than once.
57
+ */
58
+ export function observeStdinEof({ onEof, stream = process.stdin, }) {
59
+ const dispose = () => {
60
+ stream.off('end', handleEof);
61
+ stream.off('close', handleEof);
62
+ };
63
+ let reported = false;
64
+ function handleEof() {
65
+ if (reported)
66
+ return;
67
+ reported = true;
68
+ dispose();
69
+ onEof();
70
+ }
71
+ stream.on('end', handleEof);
72
+ stream.on('close', handleEof);
73
+ return dispose;
74
+ }
42
75
  export async function stopStdioTransport(handle, parentContext) {
43
76
  const operationContext = withExtra({ ...parentContext, operation: 'stopStdioTransport' }, { transportType: 'Stdio' });
44
77
  logger.info('Attempting to stop stdio transport...', operationContext);
@@ -1 +1 @@
1
- {"version":3,"file":"stdioTransport.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/stdio/stdioTransport.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA0B,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAuB,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,aAA+B,EAC/B,aAA6B;IAE7B,MAAM,gBAAgB,GAAG,SAAS,CAChC,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,uBAAuB,EAAE,EACxD,EAAE,aAAa,EAAE,OAAO,EAAE,CAC3B,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,gBAAgB,CAAC,CAAC;IAE1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE;YACvC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAC/E,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,yDAAyD,EAAE,gBAAgB,CAAC,CAAC;QACzF,gBAAgB,CAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qEAAqE;QACrE,MAAM,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE;YAClC,SAAS,EAAE,uBAAuB;YAClC,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAyB,EACzB,aAA6B;IAE7B,MAAM,gBAAgB,GAAG,SAAS,CAChC,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,oBAAoB,EAAE,EACrD,EAAE,aAAa,EAAE,OAAO,EAAE,CAC3B,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,gBAAgB,CAAC,CAAC;IACvE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,gBAAgB,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"stdioTransport.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/stdio/stdioTransport.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA0B,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAuB,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,aAA+B,EAC/B,aAA6B;IAE7B,MAAM,gBAAgB,GAAG,SAAS,CAChC,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,uBAAuB,EAAE,EACxD,EAAE,aAAa,EAAE,OAAO,EAAE,CAC3B,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,gBAAgB,CAAC,CAAC;IAE1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE;YACvC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAC/E,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,yDAAyD,EAAE,gBAAgB,CAAC,CAAC;QACzF,gBAAgB,CAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qEAAqE;QACrE,MAAM,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE;YAClC,SAAS,EAAE,uBAAuB;YAClC,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAgBD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,MAAM,GAAG,OAAO,CAAC,KAAK,GACC;IACvB,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,SAAS,SAAS;QAChB,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAyB,EACzB,aAA6B;IAE7B,MAAM,gBAAgB,GAAG,SAAS,CAChC,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,oBAAoB,EAAE,EACrD,EAAE,aAAa,EAAE,OAAO,EAAE,CAC3B,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,gBAAgB,CAAC,CAAC;IACvE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,gBAAgB,CAAC,CAAC;AACzE,CAAC"}
@@ -110,6 +110,14 @@ export declare class Logger {
110
110
  * @returns Promise that resolves when all transports have been flushed and closed.
111
111
  */
112
112
  [Symbol.asyncDispose](): Promise<void>;
113
+ /**
114
+ * Reports a drain problem on the only channel available while the logger is
115
+ * shutting down — and only an interactive one. In stdio mode stderr carries
116
+ * the server's log stream, so a bare console line there is noise a host has
117
+ * to filter; the pino instance that would normally carry it is the thing that
118
+ * just failed.
119
+ */
120
+ private reportFlushProblem;
113
121
  /**
114
122
  * Flushes all pending log entries and shuts down transports gracefully.
115
123
  *
@@ -118,6 +126,10 @@ export declare class Logger {
118
126
  * before resolving. Safe to call multiple times — subsequent calls on an
119
127
  * already-closed logger resolve immediately.
120
128
  *
129
+ * Each drain is bounded. A completing flush callback is awaited in full; a
130
+ * runtime whose pino instance never calls back (workerd — #342) releases the
131
+ * shutdown path after {@link FLUSH_DRAIN_TIMEOUT_MS} instead of hanging it.
132
+ *
121
133
  * @returns Promise that resolves when all writes have completed.
122
134
  * @example
123
135
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/logger.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,16 @@ const MAX_SANITIZE_DEPTH = 4;
59
59
  * high-cardinality burst grow the map without bound inside a single window.
60
60
  */
61
61
  const MAX_TRACKED_LOG_KEYS = 1000;
62
+ /**
63
+ * How long {@link Logger.close} waits on one pino instance's drain.
64
+ *
65
+ * `flush(cb)` is unbounded by contract, and under workerd the callback never
66
+ * arrives at all — an unbounded await there hangs every shutdown path that
67
+ * reaches the logger (#342). Node and Bun call back in milliseconds, so this
68
+ * window is orders of magnitude past a real drain: it ends a hang, it never
69
+ * truncates a flush that is going to complete.
70
+ */
71
+ const FLUSH_DRAIN_TIMEOUT_MS = 2_000;
62
72
  /**
63
73
  * Recursively sanitizes a value for pino consumption. Returns a JSON-safe
64
74
  * replacement, or `undefined` when the value is unsafe and should be dropped.
@@ -346,6 +356,23 @@ export class Logger {
346
356
  async [Symbol.asyncDispose]() {
347
357
  return await this.close();
348
358
  }
359
+ /**
360
+ * Reports a drain problem on the only channel available while the logger is
361
+ * shutting down — and only an interactive one. In stdio mode stderr carries
362
+ * the server's log stream, so a bare console line there is noise a host has
363
+ * to filter; the pino instance that would normally carry it is the thing that
364
+ * just failed.
365
+ */
366
+ reportFlushProblem(message, detail) {
367
+ if (typeof process === 'undefined')
368
+ return;
369
+ if (!process.stderr?.isTTY || this.transportType === 'stdio')
370
+ return;
371
+ if (detail === undefined)
372
+ console.error(message);
373
+ else
374
+ console.error(message, detail);
375
+ }
349
376
  /**
350
377
  * Flushes all pending log entries and shuts down transports gracefully.
351
378
  *
@@ -354,6 +381,10 @@ export class Logger {
354
381
  * before resolving. Safe to call multiple times — subsequent calls on an
355
382
  * already-closed logger resolve immediately.
356
383
  *
384
+ * Each drain is bounded. A completing flush callback is awaited in full; a
385
+ * runtime whose pino instance never calls back (workerd — #342) releases the
386
+ * shutdown path after {@link FLUSH_DRAIN_TIMEOUT_MS} instead of hanging it.
387
+ *
357
388
  * @returns Promise that resolves when all writes have completed.
358
389
  * @example
359
390
  * ```ts
@@ -365,16 +396,18 @@ export class Logger {
365
396
  return Promise.resolve();
366
397
  this.info('Logger shutting down.', requestContextService.createRequestContext({ operation: 'loggerClose' }));
367
398
  this.flushSuppressedMessages();
368
- // Wait for all pending writes to complete
399
+ // Wait for pending writes, but never longer than the drain window.
369
400
  const flushPino = (pinoInstance, label) => {
370
401
  const { promise, resolve } = Promise.withResolvers();
371
402
  if (pinoInstance != null) {
403
+ const drainTimeout = setTimeout(() => {
404
+ this.reportFlushProblem(`Timed out flushing ${label} after ${FLUSH_DRAIN_TIMEOUT_MS}ms; continuing shutdown.`);
405
+ resolve();
406
+ }, FLUSH_DRAIN_TIMEOUT_MS);
372
407
  pinoInstance.flush((err) => {
373
- // Only log to console if TTY AND not in STDIO mode
374
- // In STDIO mode, stdout is reserved for MCP JSON-RPC, so avoid polluting stderr with shutdown noise
375
- if (err && process.stderr?.isTTY && this.transportType !== 'stdio') {
376
- console.error(`Error flushing ${label}:`, err);
377
- }
408
+ clearTimeout(drainTimeout);
409
+ if (err)
410
+ this.reportFlushProblem(`Error flushing ${label}:`, err);
378
411
  resolve();
379
412
  });
380
413
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/internal/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/internal/logger.ts"],"names":[],"mappings":"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"}
@@ -48,12 +48,17 @@ export declare const nowMs: () => number;
48
48
  * On success the resolved value is passed through transparently.
49
49
  * On failure the error is re-thrown after being recorded on the span and metrics;
50
50
  * `McpError` instances surface their numeric `code` as the error code attribute.
51
+ * A failure anywhere in the callback — handler or response pipeline — is
52
+ * recorded, and no output-size histogram is emitted for it.
51
53
  *
52
54
  * @template T - The resolved type of the tool's return value.
53
- * @param toolLogicFn - Async function containing the tool's business logic. Receives
54
- * `context` re-bound to the execution span this function opens, so a handler
55
- * context built from it correlates to the span the handler actually runs in
56
- * rather than to the enclosing request span.
55
+ * @param toolLogicFn - Async function containing the tool's business logic and
56
+ * the response assembly that follows it. Receives `context` re-bound to the
57
+ * execution span this function opens, so a handler context built from it
58
+ * correlates to the span the handler actually runs in rather than to the
59
+ * enclosing request span, plus `recordOutput` — call it with the handler's
60
+ * domain value to designate what `mcp.tool.output_bytes` and partial-success
61
+ * detection measure. Without a call, the callback's return value is measured.
57
62
  * @param context - Request context extended with `toolName`; used for span/log correlation.
58
63
  * @param inputPayload - The raw input object passed to the tool, serialized to compute byte size.
59
64
  * @param successAttributes - Optional thunk evaluated after a successful run; its
@@ -64,23 +69,27 @@ export declare const nowMs: () => number;
64
69
  */
65
70
  export declare function measureToolExecution<T>(toolLogicFn: (spanContext: RequestContext & {
66
71
  toolName: string;
67
- }) => Promise<T>, context: RequestContext & {
72
+ }, recordOutput: (payload: unknown) => void) => Promise<T>, context: RequestContext & {
68
73
  toolName: string;
69
74
  }, inputPayload: unknown, successAttributes?: () => Record<string, boolean | number | string>): Promise<T>;
70
75
  /**
71
76
  * Wraps a resource handler with observability: OTel span, metric counters/histogram,
72
- * and a structured log. Mirrors {@link measureToolExecution} but tuned for resource reads.
77
+ * and a structured log. Mirrors {@link measureToolExecution} but tuned for resource reads,
78
+ * including the measured-region semantics documented there.
73
79
  *
74
80
  * @template T - The resolved type of the resource handler's return value.
75
- * @param resourceLogicFn - Async function containing the resource handler. Receives
76
- * `context` re-bound to the execution span this function opens.
81
+ * @param resourceLogicFn - Async function containing the resource handler and the
82
+ * response assembly that follows it. Receives `context` re-bound to the execution
83
+ * span this function opens, plus `recordOutput` — call it with the handler's domain
84
+ * value to designate what `mcp.resource.output_bytes` measures. Without a call, the
85
+ * callback's return value is measured.
77
86
  * @param context - Request context extended with `resourceName`; used for span/log correlation.
78
87
  * @param meta - Resource metadata: URI and MIME type for span attributes.
79
88
  * @returns A promise that resolves with the handler's return value or rejects with the original error.
80
89
  */
81
90
  export declare function measureResourceExecution<T>(resourceLogicFn: (spanContext: RequestContext & {
82
91
  resourceName: string;
83
- }) => Promise<T>, context: RequestContext & {
92
+ }, recordOutput: (payload: unknown) => void) => Promise<T>, context: RequestContext & {
84
93
  resourceName: string;
85
94
  }, meta: {
86
95
  uri: string;
@@ -1 +1 @@
1
- {"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/performance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,KAAK,cAAc,EAA6B,MAAM,oCAAoC,CAAC;AAkEpG,kGAAkG;AAClG,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAWD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC;IACvC,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC;CACpC,CAAC,CAID;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,OAAO,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlF;AAED;;;;;;;;;GASG;AAGH,eAAO,MAAM,KAAK,QAAO,MAA2B,CAAC;AAuFrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,WAAW,EAAE,CAAC,WAAW,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/E,OAAO,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC9C,YAAY,EAAE,OAAO,EACrB,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAClE,OAAO,CAAC,CAAC,CAAC,CA+IZ;AAoCD;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,eAAe,EAAE,CAAC,WAAW,EAAE,cAAc,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EACvF,OAAO,EAAE,cAAc,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,EAClD,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAkGZ;AAkDD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,cAAc,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAChD,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,CAAC,CAAC,CAwHZ"}
1
+ {"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/performance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,KAAK,cAAc,EAA6B,MAAM,oCAAoC,CAAC;AAkEpG,kGAAkG;AAClG,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAWD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC;IACvC,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC;CACpC,CAAC,CAID;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,OAAO,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlF;AAED;;;;;;;;;GASG;AAGH,eAAO,MAAM,KAAK,QAAO,MAA2B,CAAC;AAqHrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,WAAW,EAAE,CACX,WAAW,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAClD,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KACrC,OAAO,CAAC,CAAC,CAAC,EACf,OAAO,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC9C,YAAY,EAAE,OAAO,EACrB,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAClE,OAAO,CAAC,CAAC,CAAC,CA2JZ;AAoCD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,eAAe,EAAE,CACf,WAAW,EAAE,cAAc,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,EACtD,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,KACrC,OAAO,CAAC,CAAC,CAAC,EACf,OAAO,EAAE,cAAc,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,EAClD,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAyGZ;AAkDD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,cAAc,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAChD,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,CAAC,CAAC,CAwHZ"}