Files
Termix/plugins/ssh-terminal/frontend/index.mjs
T
LukeGus c94a453f1e feat: ship the ssh terminal as a first-party in-process plugin
Adds a hardcoded process:transport-owner tier so the terminal can own its
WebSocket server and ssh2 clients, which cannot cross the worker boundary.
2026-09-21 08:28:50 -05:00

42 lines
1.0 KiB
JavaScript

/**
* Frontend half of the ssh-terminal plugin.
*
* Registers the existing Terminal component through the extension seams that
* already exist in the shell (registerRailItem / registerTabComponent). The
* component itself is unchanged and still lives in src/ui/features/terminal -
* this only controls whether the shell knows about it.
*
* register() is called when the plugin is enabled, unregister() when it is
* disabled, so the tab and rail entry appear and disappear with the plugin.
*/
export const id = "ssh-terminal";
export const tabId = "terminal";
export async function register({
registerRailItem,
registerTabComponent,
icons,
}) {
registerTabComponent(tabId, () =>
import("@/features/terminal/Terminal").then((m) => ({
default: m.Terminal,
})),
);
registerRailItem({
id: tabId,
icon: icons.SquareTerminal,
labelKey: "nav.terminal",
kind: "tab",
});
}
export async function unregister({
unregisterRailItem,
unregisterTabComponent,
}) {
unregisterRailItem(tabId);
unregisterTabComponent(tabId);
}