···22import * as fs from "node:fs";
33import { execFileSync } from "node:child_process";
44import * as pty from "node-pty";
55-// @xterm packages are CJS-only. Named imports fail under Node's native ESM
66-// loader (Node v24+), so we use default imports + separate type imports.
55+// @xterm/headless is CJS-only, so keep its default import. The serialize addon
66+// ships native ESM with named exports, so import its runtime namespace.
77import type { Terminal } from "@xterm/headless";
88import type { SerializeAddon } from "@xterm/addon-serialize";
99import xterm from "@xterm/headless";
1010-import xtermSerialize from "@xterm/addon-serialize";
1010+import * as xtermSerialize from "@xterm/addon-serialize";
1111import {
1212 MessageType,
1313 PacketReader,
+1-1
src/testing/session.ts
···22import type { Terminal } from "@xterm/headless";
33import type { SerializeAddon } from "@xterm/addon-serialize";
44import xterm from "@xterm/headless";
55-import xtermSerialize from "@xterm/addon-serialize";
55+import * as xtermSerialize from "@xterm/addon-serialize";
66import * as pty from "node-pty";
77import { PtyServer, type ServerOptions as PtyServerOptions } from "../server.ts";
88import {