feat: move snippets, keybinding actions and macros out of core into plugins

This commit is contained in:
LukeGus committed 2026-09-29 11:39:14 -05:00
1 parent d9bba10612
commit e0c30a4e6f
262 files changed
+9091 -10744

No files matched your search

+4 -18
View File
@@ -61,11 +61,6 @@ export interface JumpHost {
hostId: number;
}
export interface QuickAction {
name: string;
snippetId: number;
}
export type Host = {
id: number;
name: string;
@@ -92,7 +87,6 @@ export type Host = {
overrideCredentialUsername?: boolean;
userId?: string;
jumpHosts?: JumpHost[];
quickActions?: QuickAction[];
statusCheckEnabled?: boolean;
/** Seconds between status checks; null follows the global setting. */
statusCheckInterval?: number | null;
@@ -176,11 +170,6 @@ export interface JumpHostData {
hostId: number;
}
export interface QuickActionData {
name: string;
snippetId: number;
}
export interface ProxyNode {
host: string;
port: number;
@@ -217,7 +206,6 @@ export interface HostData {
overrideCredentialUsername?: boolean;
forceKeyboardInteractive?: boolean;
jumpHosts?: JumpHostData[];
quickActions?: QuickActionData[];
statusCheckEnabled?: boolean;
/** Seconds between status checks; null follows the global setting. */
statusCheckInterval?: number | null;
@@ -357,13 +345,11 @@ export interface Tab {
// ============================================================================
/**
* What core still keeps in ssh_data.terminal_config. The terminal's look and
* behavior are the ssh-terminal plugin's host settings, and the connection
* options have their own column (sshOptions).
* What 2.8 kept in ssh_data.terminal_config. Core reads none of it any more:
* the terminal's look and behavior and the startup command are plugins' host
* settings, and the connection options have their own column (sshOptions).
*/
export interface HostTerminalConfig {
startupSnippetId?: number | null;
}
export type HostTerminalConfig = Record<string, unknown>;
export type { HostSshOptions } from "@termix/plugin-sdk/frontend";
+7 -14
View File
@@ -7,23 +7,16 @@ export interface KeyCombo {
meta: boolean;
}
export type KeybindingActionType =
| "copy"
| "paste"
| "sendControlCode"
| "sendText"
| "runSnippet"
| "nextTab"
| "previousTab"
| "openCommandPalette"
| "reconnectSession";
/**
* The shell's own actions (nextTab, previousTab, openCommandPalette,
* reconnectSession) or one a plugin declared in contributes.keybindingActions.
*/
export type KeybindingActionType = string;
/** A bound action: its type plus the parameters its declaration lists. */
export interface KeybindingAction {
type: KeybindingActionType;
text?: string;
controlCode?: string;
snippetId?: string;
appendEnter?: boolean;
[param: string]: unknown;
}
export interface CustomKeybinding {
-1
View File
@@ -135,7 +135,6 @@ const CORE_HIDEABLE_RAIL_VIEWS = [
"credentials",
"connections",
"quick-connect",
"macros",
];
const SIMPLE_HIDDEN_RAIL_TABS = CORE_HIDEABLE_RAIL_VIEWS.filter(
+2 -16
View File
@@ -75,7 +75,6 @@ export type Host = {
statusCheckEnabled?: boolean;
/** Seconds between status checks; null follows the global setting. */
statusCheckInterval?: number | null;
quickActions: { name: string; snippetId: string }[];
enableSsh: boolean;
@@ -158,8 +157,6 @@ type KnownTabType =
| "host-manager"
| "user-profile"
| "admin-settings"
// Rail panels that can also open full-width in the main area.
| "macros"
| "split-screen";
/**
@@ -255,8 +252,8 @@ export type UiFontId =
| "source-code-pro"
| "caskaydia-cove";
/** A tools panel view: core's own, or a rail panel a plugin registered. */
export type ToolsTab = "macros" | (string & {});
/** A tools panel view: a rail panel a plugin registered. */
export type ToolsTab = string & {};
/** "row" lays children side by side, "column" stacks them. */
export type SplitDirection = "row" | "column";
@@ -339,17 +336,6 @@ export type WorkspacePayload = {
};
};
export type Snippet = {
id: number;
name: string;
description?: string;
content: string;
folder: string | null;
order: number;
hostIds?: number[];
isNote?: boolean;
};
const FOLDER_ICONS = [
"folder",
"server",