@tacuchi/agent-workflow-cli 7.2.1 → 7.3.1

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 (79) hide show
  1. package/dist/application/project-tab-data.d.ts +119 -0
  2. package/dist/application/project-tab-data.d.ts.map +1 -0
  3. package/dist/application/project-tab-data.js +320 -0
  4. package/dist/application/project-tab-data.js.map +1 -0
  5. package/dist/cli/interactive-menu.d.ts +1 -1
  6. package/dist/cli/interactive-menu.d.ts.map +1 -1
  7. package/dist/cli/main.js +6 -0
  8. package/dist/cli/main.js.map +1 -1
  9. package/dist/cli/tui/app.d.ts.map +1 -1
  10. package/dist/cli/tui/app.js +115 -102
  11. package/dist/cli/tui/app.js.map +1 -1
  12. package/dist/cli/tui/components/command-palette.d.ts +39 -0
  13. package/dist/cli/tui/components/command-palette.d.ts.map +1 -0
  14. package/dist/cli/tui/components/command-palette.js +116 -0
  15. package/dist/cli/tui/components/command-palette.js.map +1 -0
  16. package/dist/cli/tui/components/header.d.ts +6 -0
  17. package/dist/cli/tui/components/header.d.ts.map +1 -1
  18. package/dist/cli/tui/components/header.js +8 -2
  19. package/dist/cli/tui/components/header.js.map +1 -1
  20. package/dist/cli/tui/components/host-chip.d.ts +28 -0
  21. package/dist/cli/tui/components/host-chip.d.ts.map +1 -0
  22. package/dist/cli/tui/components/host-chip.js +35 -0
  23. package/dist/cli/tui/components/host-chip.js.map +1 -0
  24. package/dist/cli/tui/components/keymap-bar.d.ts +8 -0
  25. package/dist/cli/tui/components/keymap-bar.d.ts.map +1 -1
  26. package/dist/cli/tui/components/keymap-bar.js +7 -1
  27. package/dist/cli/tui/components/keymap-bar.js.map +1 -1
  28. package/dist/cli/tui/components/page-head.d.ts +18 -0
  29. package/dist/cli/tui/components/page-head.d.ts.map +1 -0
  30. package/dist/cli/tui/components/page-head.js +14 -0
  31. package/dist/cli/tui/components/page-head.js.map +1 -0
  32. package/dist/cli/tui/components/pill.d.ts +16 -0
  33. package/dist/cli/tui/components/pill.d.ts.map +1 -0
  34. package/dist/cli/tui/components/pill.js +24 -0
  35. package/dist/cli/tui/components/pill.js.map +1 -0
  36. package/dist/cli/tui/components/tab-bar.d.ts +12 -0
  37. package/dist/cli/tui/components/tab-bar.d.ts.map +1 -1
  38. package/dist/cli/tui/components/tab-bar.js +11 -5
  39. package/dist/cli/tui/components/tab-bar.js.map +1 -1
  40. package/dist/cli/tui/components/toast-stack.d.ts +41 -0
  41. package/dist/cli/tui/components/toast-stack.d.ts.map +1 -0
  42. package/dist/cli/tui/components/toast-stack.js +61 -0
  43. package/dist/cli/tui/components/toast-stack.js.map +1 -0
  44. package/dist/cli/tui/hosts.d.ts +16 -0
  45. package/dist/cli/tui/hosts.d.ts.map +1 -0
  46. package/dist/cli/tui/hosts.js +31 -0
  47. package/dist/cli/tui/hosts.js.map +1 -0
  48. package/dist/cli/tui/tabs/mcp-tab.d.ts +21 -1
  49. package/dist/cli/tui/tabs/mcp-tab.d.ts.map +1 -1
  50. package/dist/cli/tui/tabs/mcp-tab.js +234 -139
  51. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  52. package/dist/cli/tui/tabs/plugins-tab.d.ts.map +1 -1
  53. package/dist/cli/tui/tabs/plugins-tab.js +78 -19
  54. package/dist/cli/tui/tabs/plugins-tab.js.map +1 -1
  55. package/dist/cli/tui/tabs/project-tab.d.ts +19 -0
  56. package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -0
  57. package/dist/cli/tui/tabs/project-tab.js +188 -0
  58. package/dist/cli/tui/tabs/project-tab.js.map +1 -0
  59. package/dist/cli/tui/tabs/skills-tab.d.ts +17 -1
  60. package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
  61. package/dist/cli/tui/tabs/skills-tab.js +131 -224
  62. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  63. package/dist/cli/tui/tabs/status-tab.d.ts +13 -0
  64. package/dist/cli/tui/tabs/status-tab.d.ts.map +1 -1
  65. package/dist/cli/tui/tabs/status-tab.js +52 -66
  66. package/dist/cli/tui/tabs/status-tab.js.map +1 -1
  67. package/dist/cli/tui/tabs/update-tab.d.ts +12 -1
  68. package/dist/cli/tui/tabs/update-tab.d.ts.map +1 -1
  69. package/dist/cli/tui/tabs/update-tab.js +54 -49
  70. package/dist/cli/tui/tabs/update-tab.js.map +1 -1
  71. package/dist/cli/tui/theme.d.ts +84 -12
  72. package/dist/cli/tui/theme.d.ts.map +1 -1
  73. package/dist/cli/tui/theme.js +100 -16
  74. package/dist/cli/tui/theme.js.map +1 -1
  75. package/dist/cli/tui/tui-prefs.d.ts +15 -0
  76. package/dist/cli/tui/tui-prefs.d.ts.map +1 -0
  77. package/dist/cli/tui/tui-prefs.js +45 -0
  78. package/dist/cli/tui/tui-prefs.js.map +1 -0
  79. package/package.json +1 -1
@@ -1,96 +1,143 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text, useApp, useInput } from "ink";
3
- import { useMemo, useState } from "react";
2
+ import { Box, useApp, useInput } from "ink";
3
+ import { useCallback, useEffect, useMemo, useState } from "react";
4
4
  import { Header } from "./components/header.js";
5
5
  import { KeymapBar } from "./components/keymap-bar.js";
6
6
  import { ScreenFrame } from "./components/screen-frame.js";
7
7
  import { TabBar } from "./components/tab-bar.js";
8
+ import { ToastStack, useToasts } from "./components/toast-stack.js";
8
9
  import { InputLockProvider, useInputLock } from "./input-lock.js";
9
10
  import { McpTab } from "./tabs/mcp-tab.js";
10
11
  import { PluginsTab } from "./tabs/plugins-tab.js";
12
+ import { ProjectTab } from "./tabs/project-tab.js";
11
13
  import { SkillsTab } from "./tabs/skills-tab.js";
12
14
  import { StatusTab } from "./tabs/status-tab.js";
13
15
  import { UpdateTab } from "./tabs/update-tab.js";
14
- import { colors } from "./theme.js";
15
- const TAB_ORDER = ["status", "mcp", "skills", "plugins", "update"];
16
- const TABS = [
17
- { id: "status", label: "Status" },
18
- { id: "mcp", label: "MCP" },
19
- { id: "skills", label: "Skills" },
20
- { id: "plugins", label: "Plugins" },
21
- { id: "update", label: "Update" },
16
+ import { TuiPrefsService } from "./tui-prefs.js";
17
+ const TAB_ORDER = [
18
+ "status",
19
+ "project",
20
+ "mcp",
21
+ "skills",
22
+ "plugins",
23
+ "update",
22
24
  ];
25
+ // Atajo numérico → tab id.
26
+ const TAB_BY_KEY = {
27
+ "1": "status",
28
+ "2": "project",
29
+ "3": "mcp",
30
+ "4": "skills",
31
+ "5": "plugins",
32
+ "6": "update",
33
+ };
34
+ const QUIT_HINT = { key: "q", action: "salir" };
35
+ const TAB_HINT = { key: "Tab", action: "siguiente" };
36
+ const KEYS_BY_TAB = {
37
+ status: [TAB_HINT, QUIT_HINT],
38
+ project: [
39
+ { key: "↑↓", action: "navegar" },
40
+ { key: "⏎", action: "aplicar", accent: true },
41
+ QUIT_HINT,
42
+ ],
43
+ mcp: [
44
+ { key: "↑↓", action: "navegar" },
45
+ { key: "⏎", action: "acciones", accent: true },
46
+ QUIT_HINT,
47
+ ],
48
+ skills: [
49
+ { key: "↑↓", action: "navegar" },
50
+ { key: "⏎", action: "acciones", accent: true },
51
+ QUIT_HINT,
52
+ ],
53
+ plugins: [
54
+ { key: "↑↓", action: "navegar" },
55
+ { key: "/", action: "buscar" },
56
+ { key: "f", action: "filtros" },
57
+ QUIT_HINT,
58
+ ],
59
+ update: [
60
+ { key: "i", action: "aplicar", accent: true },
61
+ { key: "r", action: "buscar" },
62
+ QUIT_HINT,
63
+ ],
64
+ };
23
65
  export function App(props) {
24
66
  return (_jsx(InputLockProvider, { children: _jsx(AppShell, { ...props }) }));
25
67
  }
26
68
  function AppShell({ version, ctx, onResult }) {
27
69
  const [activeTab, setActiveTab] = useState("status");
28
- const [helpOpen, setHelpOpen] = useState(false);
70
+ const [density, setDensity] = useState("comfortable");
29
71
  const { exit } = useApp();
30
72
  const { locked: inputLocked } = useInputLock();
73
+ const { toasts, push: pushToast } = useToasts();
74
+ const prefsSvc = useMemo(() => new TuiPrefsService(ctx.fs, ctx.paths), [ctx.fs, ctx.paths]);
75
+ useEffect(() => {
76
+ void (async () => {
77
+ const prefs = await prefsSvc.load();
78
+ setDensity(prefs.density);
79
+ })();
80
+ }, [prefsSvc]);
81
+ /**
82
+ * Despacha acciones provenientes de las tabs (Proyecto landing, Update, etc).
83
+ * Las acciones que requieren ejecutar un comando CLI con stdin (init, update)
84
+ * salen del TUI primero y se manejan en `dispatchMenuAction` del main.
85
+ */
86
+ const runAction = useCallback((id, _payload) => {
87
+ if (id === "project-init") {
88
+ onResult({ kind: "menu-action", action: "project-init" });
89
+ exit();
90
+ return;
91
+ }
92
+ if (id === "hub-init") {
93
+ onResult({ kind: "menu-action", action: "hub-init" });
94
+ exit();
95
+ return;
96
+ }
97
+ if (id === "quit") {
98
+ onResult({ kind: "exit", exitCode: 0 });
99
+ exit();
100
+ return;
101
+ }
102
+ if (id === "git:status") {
103
+ pushToast({
104
+ tone: "info",
105
+ title: "git status",
106
+ body: "Abrí tu terminal para ver el detalle.",
107
+ });
108
+ return;
109
+ }
110
+ pushToast({ tone: "info", title: id });
111
+ }, [pushToast, onResult, exit]);
31
112
  useInput((input, key) => {
32
- if (helpOpen) {
33
- handleHelpKey(input, key, setHelpOpen);
113
+ if (inputLocked)
114
+ return;
115
+ if (input === "q" || input === "Q") {
116
+ onResult({ kind: "exit", exitCode: 0 });
117
+ exit();
34
118
  return;
35
119
  }
36
- handleAppKey(input, key, {
37
- setActiveTab,
38
- setHelpOpen,
39
- onExit: () => {
40
- onResult({ kind: "exit", exitCode: 0 });
41
- exit();
42
- },
43
- });
44
- }, { isActive: !inputLocked });
45
- const keymap = useMemo(() => {
46
- if (inputLocked) {
47
- return [
48
- { key: "⏎", action: "aceptar" },
49
- { key: "Esc", action: "cancelar" },
50
- ];
120
+ if (key.tab) {
121
+ setActiveTab((t) => cycleTab(t, key.shift === true));
122
+ return;
51
123
  }
52
- const tabKeys = keymapForTab(activeTab);
53
- return [
54
- ...tabKeys,
55
- { key: "Tab", action: "cambiar tab" },
56
- { key: "?", action: "ayuda" },
57
- { key: "q", action: "salir" },
58
- ];
59
- }, [activeTab, inputLocked]);
60
- const tabContentActive = !helpOpen;
61
- return (_jsxs(ScreenFrame, { children: [_jsx(Header, { version: version, cwd: ctx.env.cwd(), homeDir: ctx.env.homeDir() }), _jsx(TabBar, { tabs: TABS, activeId: activeTab }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [activeTab === "status" ? _jsx(StatusTab, { ctx: ctx, isActive: tabContentActive }) : null, activeTab === "mcp" ? _jsx(McpTab, { ctx: ctx, isActive: tabContentActive }) : null, activeTab === "skills" ? _jsx(SkillsTab, { ctx: ctx, isActive: tabContentActive }) : null, activeTab === "update" ? (_jsx(UpdateTab, { ctx: ctx, version: version, isActive: tabContentActive, onRequestUpdate: () => {
124
+ const target = TAB_BY_KEY[input];
125
+ if (target)
126
+ setActiveTab(target);
127
+ }, { isActive: true });
128
+ const tabs = [
129
+ { id: "status", label: "Status", key: "1" },
130
+ { id: "project", label: "Proyecto", key: "2" },
131
+ { id: "mcp", label: "MCP", key: "3" },
132
+ { id: "skills", label: "Skills", key: "4" },
133
+ { id: "plugins", label: "Plugins", key: "5" },
134
+ { id: "update", label: "Update", key: "6", alert: true },
135
+ ];
136
+ const keymap = KEYS_BY_TAB[activeTab] ?? [];
137
+ return (_jsxs(ScreenFrame, { children: [_jsx(Header, { version: version, cwd: ctx.env.cwd(), homeDir: ctx.env.homeDir() }), _jsx(TabBar, { tabs: tabs, activeId: activeTab }), _jsxs(Box, { marginTop: density === "compact" ? 0 : 1, flexDirection: "column", children: [activeTab === "status" ? _jsx(StatusTab, { ctx: ctx, isActive: true }) : null, activeTab === "project" ? (_jsx(ProjectTab, { ctx: ctx, isActive: true, onRunAction: runAction })) : null, activeTab === "mcp" ? _jsx(McpTab, { ctx: ctx, isActive: true, onToast: pushToast }) : null, activeTab === "skills" ? (_jsx(SkillsTab, { ctx: ctx, isActive: true, onToast: pushToast })) : null, activeTab === "update" ? (_jsx(UpdateTab, { ctx: ctx, version: version, isActive: true, onToast: pushToast, onRequestUpdate: () => {
62
138
  onResult({ kind: "menu-action", action: "update" });
63
139
  exit();
64
- } })) : null, activeTab === "plugins" ? _jsx(PluginsTab, { ctx: ctx, isActive: tabContentActive }) : null] }), helpOpen ? _jsx(HelpOverlay, {}) : _jsx(KeymapBar, { entries: keymap })] }));
65
- }
66
- function handleHelpKey(input, key, setHelpOpen) {
67
- if (key.escape || input === "?" || input === "q" || input === "Q") {
68
- setHelpOpen(false);
69
- }
70
- }
71
- function handleAppKey(input, key, handlers) {
72
- if (input === "q" || input === "Q") {
73
- handlers.onExit();
74
- return;
75
- }
76
- if (input === "?") {
77
- handlers.setHelpOpen(true);
78
- return;
79
- }
80
- if (key.tab) {
81
- handlers.setActiveTab((t) => cycleTab(t, key.shift === true));
82
- return;
83
- }
84
- const byNumber = {
85
- "1": "status",
86
- "2": "mcp",
87
- "3": "skills",
88
- "4": "plugins",
89
- "5": "update",
90
- };
91
- const target = byNumber[input];
92
- if (target)
93
- handlers.setActiveTab(target);
140
+ } })) : null, activeTab === "plugins" ? _jsx(PluginsTab, { ctx: ctx, isActive: true }) : null] }), _jsx(ToastStack, { toasts: toasts }), _jsx(KeymapBar, { entries: keymap })] }));
94
141
  }
95
142
  function cycleTab(current, reverse) {
96
143
  const idx = TAB_ORDER.indexOf(current);
@@ -99,38 +146,4 @@ function cycleTab(current, reverse) {
99
146
  : (idx + 1) % TAB_ORDER.length;
100
147
  return TAB_ORDER[next] ?? "status";
101
148
  }
102
- function keymapForTab(tab) {
103
- switch (tab) {
104
- case "mcp":
105
- return [
106
- { key: "↑↓", action: "navegar" },
107
- { key: "⏎", action: "acciones" },
108
- { key: "n", action: "nueva" },
109
- ];
110
- case "skills":
111
- return [
112
- { key: "↑↓", action: "navegar" },
113
- { key: "⏎", action: "acciones" },
114
- ];
115
- case "update":
116
- return [
117
- { key: "↑↓", action: "navegar" },
118
- { key: "⏎", action: "seleccionar" },
119
- ];
120
- case "plugins":
121
- return [
122
- { key: "↑↓", action: "navegar" },
123
- { key: "⏎", action: "acciones" },
124
- { key: "n", action: "nuevo" },
125
- ];
126
- case "status":
127
- return [];
128
- }
129
- }
130
- function HelpOverlay() {
131
- return (_jsxs(Box, { flexDirection: "column", marginTop: 1, borderStyle: "round", borderColor: colors.accent, paddingX: 2, paddingY: 1, children: [_jsx(Text, { color: colors.fg, bold: true, children: "Ayuda" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Help, { label: "Tab / \u21E7Tab", desc: "cambiar tab" }), _jsx(Help, { label: "1 .. 5", desc: "ir a tab por n\u00FAmero" }), _jsx(Help, { label: "?", desc: "abrir/cerrar esta ayuda" }), _jsx(Help, { label: "q", desc: "salir del TUI" })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.fgSubtle, bold: true, children: "MCP" }), _jsx(Help, { label: "\u2191\u2193", desc: "navegar conexiones" }), _jsx(Help, { label: "\u23CE", desc: "abrir men\u00FA de acciones de la conexi\u00F3n" }), _jsx(Help, { label: "\u2191\u2193 \u23CE", desc: "navegar el men\u00FA y aplicar" }), _jsx(Help, { label: "Esc", desc: "cerrar men\u00FA sin aplicar" }), _jsx(Help, { label: "n", desc: "registrar nueva conexi\u00F3n" })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.fgSubtle, bold: true, children: "Skills" }), _jsx(Help, { label: "\u2191\u2193", desc: "navegar targets (Claude / Codex / Warp)" }), _jsx(Help, { label: "\u23CE", desc: "abrir men\u00FA de acciones del target" }), _jsx(Help, { label: "\u2191\u2193 \u23CE", desc: "navegar el men\u00FA y aplicar (instalar / desinstalar)" }), _jsx(Help, { label: "Esc", desc: "cerrar men\u00FA sin aplicar" })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.fgSubtle, bold: true, children: "Plugins" }), _jsx(Help, { label: "\u2191\u2193", desc: "navegar plugins" }), _jsx(Help, { label: "\u23CE", desc: "abrir men\u00FA de acciones (clear / reload / install por host)" }), _jsx(Help, { label: "\u2191\u2193 \u23CE", desc: "navegar el men\u00FA y aplicar" }), _jsx(Help, { label: "Esc", desc: "cerrar men\u00FA sin aplicar" }), _jsx(Help, { label: "n", desc: "agregar nuevo plugin desde URL git (Warp/Agents)" })] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.fgMoreSubtle, children: "Esc cierra esta ventana." }) })] }));
132
- }
133
- function Help({ label, desc }) {
134
- return (_jsxs(Box, { children: [_jsx(Text, { color: colors.accent, bold: true, children: label }), _jsx(Text, { color: colors.fgMoreSubtle, children: " " }), _jsx(Text, { color: colors.fgSubtle, children: desc })] }));
135
- }
136
149
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/cli/tui/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/cli/tui/app.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export interface CommandEntry {
2
+ id: string;
3
+ label: string;
4
+ /** Categoría (navegación / acción / proyecto / vista / sesión) */
5
+ ctx: string;
6
+ /** Glyph corto a la izquierda del label */
7
+ glyph: string;
8
+ }
9
+ export interface CommandPaletteProps {
10
+ /** Comandos disponibles para filtrar */
11
+ commands: readonly CommandEntry[];
12
+ /** Callback al ejecutar — recibe el `id` del comando seleccionado */
13
+ onRun: (id: string) => void;
14
+ /** Cierra el palette sin ejecutar */
15
+ onClose: () => void;
16
+ /** Si false, no consume input (cuando hay otro modal por encima) */
17
+ isActive?: boolean;
18
+ }
19
+ /**
20
+ * CommandPalette — overlay tipo Ctrl+K.
21
+ *
22
+ * - TextInput de `@inkjs/ui` para filtrar (case-insensitive en `label` + `ctx`).
23
+ * - Lista filtrada con cursor; `↑↓` mueve, `⏎` ejecuta, `Esc` cierra.
24
+ * - Footer con hint de navegación y conteo de resultados.
25
+ *
26
+ * En TTY no hay backdrop translúcido — el componente se renderiza en el área
27
+ * de contenido en lugar de la tab activa cuando está abierto (app.tsx maneja
28
+ * esa conmutación).
29
+ */
30
+ export declare function CommandPalette({ commands, onRun, onClose, isActive }: CommandPaletteProps): import("react/jsx-runtime").JSX.Element;
31
+ /**
32
+ * Catálogo canónico de comandos del TUI.
33
+ *
34
+ * Stable IDs porque app.tsx + hooks externos hacen pattern match contra ellos.
35
+ * Cuando un comando no aplica al contexto actual el handler debe responder
36
+ * con un toast (no romper).
37
+ */
38
+ export declare const PALETTE_COMMANDS: readonly CommandEntry[];
39
+ //# sourceMappingURL=command-palette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-palette.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/command-palette.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,qEAAqE;IACrE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,qCAAqC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAe,EAAE,EAAE,mBAAmB,2CA2EhG;AAoBD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,YAAY,EAiDnD,CAAC"}
@@ -0,0 +1,116 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { TextInput } from "@inkjs/ui";
3
+ import { Box, Text, useInput } from "ink";
4
+ import { useMemo, useState } from "react";
5
+ import { colors, icons } from "../theme.js";
6
+ /**
7
+ * CommandPalette — overlay tipo Ctrl+K.
8
+ *
9
+ * - TextInput de `@inkjs/ui` para filtrar (case-insensitive en `label` + `ctx`).
10
+ * - Lista filtrada con cursor; `↑↓` mueve, `⏎` ejecuta, `Esc` cierra.
11
+ * - Footer con hint de navegación y conteo de resultados.
12
+ *
13
+ * En TTY no hay backdrop translúcido — el componente se renderiza en el área
14
+ * de contenido en lugar de la tab activa cuando está abierto (app.tsx maneja
15
+ * esa conmutación).
16
+ */
17
+ export function CommandPalette({ commands, onRun, onClose, isActive = true }) {
18
+ const [query, setQuery] = useState("");
19
+ const [cursor, setCursor] = useState(0);
20
+ const filtered = useMemo(() => {
21
+ if (!query)
22
+ return commands;
23
+ const q = query.toLowerCase();
24
+ return commands.filter((c) => c.label.toLowerCase().includes(q) || c.ctx.toLowerCase().includes(q));
25
+ }, [query, commands]);
26
+ // Reset cursor cuando cambia el filtro — derivado, no necesita useEffect.
27
+ // (El cursor se ajusta al límite cuando `filtered.length` cambia.)
28
+ useInput((_input, key) => {
29
+ if (key.upArrow) {
30
+ setCursor((c) => Math.max(0, c - 1));
31
+ return;
32
+ }
33
+ if (key.downArrow) {
34
+ setCursor((c) => Math.min(filtered.length - 1, c + 1));
35
+ return;
36
+ }
37
+ if (key.escape) {
38
+ onClose();
39
+ return;
40
+ }
41
+ if (key.return) {
42
+ const target = filtered[cursor];
43
+ if (target) {
44
+ onRun(target.id);
45
+ onClose();
46
+ }
47
+ }
48
+ }, { isActive });
49
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsxs(Text, { color: colors.accent, bold: true, children: [icons.promptMark, " "] }), _jsx(Box, { flexGrow: 1, children: _jsx(TextInput, { isDisabled: !isActive, placeholder: "Buscar acci\u00F3n\u2026", onChange: (v) => {
50
+ setQuery(v);
51
+ setCursor(0);
52
+ }, onSubmit: () => {
53
+ const target = filtered[cursor];
54
+ if (target) {
55
+ onRun(target.id);
56
+ onClose();
57
+ }
58
+ } }) }), _jsx(Text, { color: colors.fgFaint, children: "esc" })] }), _jsx(Box, { flexDirection: "column", children: filtered.length === 0 ? (_jsx(Text, { color: colors.fgFaint, children: "(sin coincidencias)" })) : (filtered.map((c, i) => _jsx(CommandRow, { cmd: c, active: i === cursor }, c.id))) })] }));
59
+ }
60
+ function CommandRow({ cmd, active }) {
61
+ return (_jsxs(Box, { children: [_jsxs(Text, { color: active ? colors.accent : colors.fgFaint, bold: active, children: [active ? "› " : " ", cmd.glyph] }), _jsx(Text, { children: " " }), _jsx(Box, { flexGrow: 1, children: _jsx(Text, { color: active ? colors.fgBright : colors.fgSubtle, bold: active, children: cmd.label }) }), _jsx(Text, { color: colors.fgFaint, children: cmd.ctx })] }));
62
+ }
63
+ /**
64
+ * Catálogo canónico de comandos del TUI.
65
+ *
66
+ * Stable IDs porque app.tsx + hooks externos hacen pattern match contra ellos.
67
+ * Cuando un comando no aplica al contexto actual el handler debe responder
68
+ * con un toast (no romper).
69
+ */
70
+ export const PALETTE_COMMANDS = [
71
+ // navegación
72
+ { id: "goto:status", label: "Ir a Status", ctx: "navegación", glyph: "›" },
73
+ { id: "goto:project", label: "Ir a Proyecto", ctx: "navegación", glyph: "›" },
74
+ { id: "goto:mcp", label: "Ir a MCP", ctx: "navegación", glyph: "›" },
75
+ { id: "goto:skills", label: "Ir a Skills", ctx: "navegación", glyph: "›" },
76
+ { id: "goto:plugins", label: "Ir a Plugins", ctx: "navegación", glyph: "›" },
77
+ { id: "goto:update", label: "Ir a Update", ctx: "navegación", glyph: "›" },
78
+ // proyecto
79
+ { id: "git:status", label: "Git status", ctx: "proyecto", glyph: "◆" },
80
+ { id: "sessions:open", label: "Abrir sesión más reciente", ctx: "proyecto", glyph: "▸" },
81
+ { id: "pending:next", label: "Saltar al próximo pendiente", ctx: "proyecto", glyph: "→" },
82
+ // acción (install/update/maintenance)
83
+ { id: "install:all", label: "Install completa en todos los hosts", ctx: "acción", glyph: "↓" },
84
+ {
85
+ id: "uninstall:all",
86
+ label: "Uninstall completo en todos los hosts",
87
+ ctx: "acción",
88
+ glyph: "×",
89
+ },
90
+ {
91
+ id: "clean:cache",
92
+ label: "Limpiar cache de plugins (todos los hosts)",
93
+ ctx: "acción",
94
+ glyph: "⊘",
95
+ },
96
+ {
97
+ id: "legacy:clean",
98
+ label: "Limpiar skills legacy (qtc-*, agent-workflow-manager)",
99
+ ctx: "acción",
100
+ glyph: "⚒",
101
+ },
102
+ { id: "update:check", label: "Buscar actualización del CLI", ctx: "acción", glyph: "↻" },
103
+ { id: "mcp:new", label: "Nueva conexión MCP", ctx: "acción", glyph: "+" },
104
+ { id: "mcp:test-all", label: "Probar todas las conexiones MCP", ctx: "acción", glyph: "▸" },
105
+ { id: "plugins:refresh", label: "Refrescar lista de plugins", ctx: "acción", glyph: "↻" },
106
+ // vista
107
+ {
108
+ id: "toggle:density",
109
+ label: "Alternar densidad (cómodo ↔ compacto)",
110
+ ctx: "vista",
111
+ glyph: "↔",
112
+ },
113
+ // sesión
114
+ { id: "quit", label: "Salir del TUI", ctx: "sesión", glyph: "⎋" },
115
+ ];
116
+ //# sourceMappingURL=command-palette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-palette.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/command-palette.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAsB5C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,EAAuB;IAC/F,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,IAAI,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC;QAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC5E,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtB,0EAA0E;IAC1E,mEAAmE;IAEnE,QAAQ,CACN,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACd,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACjB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,CACb,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,mBAC7B,KAAK,CAAC,UAAU,EAAE,GAAG,IACjB,EACP,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,KAAC,SAAS,IACR,UAAU,EAAE,CAAC,QAAQ,EACrB,WAAW,EAAC,0BAAgB,EAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gCACd,QAAQ,CAAC,CAAC,CAAC,CAAC;gCACZ,SAAS,CAAC,CAAC,CAAC,CAAC;4BACf,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;gCACb,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;gCAChC,IAAI,MAAM,EAAE,CAAC;oCACX,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oCACjB,OAAO,EAAE,CAAC;gCACZ,CAAC;4BACH,CAAC,GACD,GACE,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,oBAAY,IACnC,EAEN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,oCAA4B,CACxD,CAAC,CAAC,CAAC,CACF,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAC,UAAU,IAAY,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,MAAM,IAAlC,CAAC,CAAC,EAAE,CAAkC,CAAC,CAChF,GACG,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,EAA0C;IACzE,OAAO,CACL,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,aAC/D,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACpB,GAAG,CAAC,KAAK,IACL,EACP,KAAC,IAAI,oBAAS,EACd,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,YAClE,GAAG,CAAC,KAAK,GACL,GACH,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAG,GAAG,CAAC,GAAG,GAAQ,IACzC,CACP,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA4B;IACvD,aAAa;IACb,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;IAC1E,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;IAC7E,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;IACpE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;IAC1E,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;IAC5E,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;IAE1E,WAAW;IACX,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;IACtE,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,2BAA2B,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;IACxF,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,6BAA6B,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;IAEzF,sCAAsC;IACtC,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,qCAAqC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9F;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,uCAAuC;QAC9C,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,GAAG;KACX;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,4CAA4C;QACnD,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,GAAG;KACX;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,uDAAuD;QAC9D,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,GAAG;KACX;IACD,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,8BAA8B,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;IACxF,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;IACzE,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,iCAAiC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;IAC3F,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,4BAA4B,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;IAEzF,QAAQ;IACR;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,uCAAuC;QAC9C,GAAG,EAAE,OAAO;QACZ,KAAK,EAAE,GAAG;KACX;IAED,SAAS;IACT,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;CAClE,CAAC"}
@@ -3,6 +3,12 @@ export interface HeaderProps {
3
3
  cwd?: string;
4
4
  homeDir?: string;
5
5
  }
6
+ /**
7
+ * Header — minimal chrome superior.
8
+ *
9
+ * Izquierda: diamante + name + version. Derecha: path corto.
10
+ * Sin "live indicator" — ruido innecesario.
11
+ */
6
12
  export declare function Header({ version, cwd, homeDir }: HeaderProps): import("react/jsx-runtime").JSX.Element;
7
13
  export declare function prettyPath(cwd: string, homeDir?: string): string;
8
14
  //# sourceMappingURL=header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/header.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,WAAW,2CAkB5D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAMhE"}
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/header.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,WAAW,2CAe5D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAMhE"}
@@ -1,9 +1,15 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from "ink";
3
3
  import { colors, icons } from "../theme.js";
4
+ /**
5
+ * Header — minimal chrome superior.
6
+ *
7
+ * Izquierda: diamante + name + version. Derecha: path corto.
8
+ * Sin "live indicator" — ruido innecesario.
9
+ */
4
10
  export function Header({ version, cwd, homeDir }) {
5
11
  const path = cwd ? prettyPath(cwd, homeDir) : undefined;
6
- return (_jsxs(Box, { justifyContent: "space-between", marginBottom: 1, children: [_jsxs(Box, { children: [_jsxs(Text, { color: colors.primary, bold: true, children: [icons.brand, " agent-workflow"] }), _jsx(Text, { color: colors.fgMoreSubtle, children: " \u00B7 " }), _jsxs(Text, { color: colors.fgSubtle, children: ["v", version] })] }), path ? (_jsx(Box, { children: _jsx(Text, { color: colors.fgMoreSubtle, children: path }) })) : null] }));
12
+ return (_jsxs(Box, { justifyContent: "space-between", marginBottom: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: colors.accent, children: icons.brand }), _jsx(Text, { children: " " }), _jsx(Text, { color: colors.fgBright, bold: true, children: "agent-workflow" }), _jsxs(Text, { color: colors.fgFaint, children: [" v", version] })] }), path ? _jsx(Text, { color: colors.fgMoreSubtle, children: path }) : null] }));
7
13
  }
8
14
  export function prettyPath(cwd, homeDir) {
9
15
  if (homeDir && cwd.startsWith(homeDir)) {
@@ -1 +1 @@
1
- {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAQ5C,MAAM,UAAU,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAe;IAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,OAAO,CACL,MAAC,GAAG,IAAC,cAAc,EAAC,eAAe,EAAC,YAAY,EAAE,CAAC,aACjD,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,mBAC9B,KAAK,CAAC,KAAK,uBACP,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,yBAAY,EAC5C,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,kBAAI,OAAO,IAAQ,IAC3C,EACL,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,YAAG,IAAI,GAAQ,GAC3C,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,OAAgB;IACtD,IAAI,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAQ5C;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAe;IAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,OAAO,CACL,MAAC,GAAG,IAAC,cAAc,EAAC,eAAe,EAAC,YAAY,EAAE,CAAC,aACjD,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,YAAG,KAAK,CAAC,KAAK,GAAQ,EAChD,KAAC,IAAI,oBAAS,EACd,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,qCAE3B,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,mBAAK,OAAO,IAAQ,IAC3C,EACL,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,YAAG,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,IAC1D,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,OAAgB;IACtD,IAAI,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { type HostMeta } from "../hosts.js";
2
+ export interface HostChipProps {
3
+ /** id del host del registry */
4
+ id: string;
5
+ /** true = host instalado / activo */
6
+ on?: boolean;
7
+ /** override de display (overrides host.glyph) */
8
+ glyph?: string;
9
+ /** sólo "sm" por defecto en TTY; "md" agrega padding lateral */
10
+ size?: "xs" | "sm" | "md";
11
+ }
12
+ /**
13
+ * HostChip — glyph compacto de 1 letra que indica un host.
14
+ * En TTY no hay fondos arbitrarios; usamos `backgroundColor` de Ink (que el
15
+ * renderer adapta al terminal) y color de letra. Cuando `on=false` el chip
16
+ * pierde el fill verde y vuelve a hueso (muted).
17
+ */
18
+ export declare function HostChip({ id, on, glyph, size }: HostChipProps): import("react/jsx-runtime").JSX.Element;
19
+ /**
20
+ * HostChipStrip — todos los hosts del registry como chips, en línea.
21
+ * Los `active` reciben color de "on", el resto queda en "off".
22
+ */
23
+ export declare function HostChipStrip({ active, size, hosts, }: {
24
+ active: readonly string[];
25
+ size?: "xs" | "sm" | "md";
26
+ hosts?: readonly HostMeta[];
27
+ }): import("react/jsx-runtime").JSX.Element;
28
+ //# sourceMappingURL=host-chip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-chip.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/host-chip.tsx"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,QAAQ,EAAY,MAAM,aAAa,CAAC;AAG7D,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAS,EAAE,KAAK,EAAE,IAAW,EAAE,EAAE,aAAa,2CAe5E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,IAAW,EACX,KAAa,GACd,EAAE;IACD,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CAC7B,2CAWA"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { HOSTS, hostMeta } from "../hosts.js";
4
+ import { colors } from "../theme.js";
5
+ /**
6
+ * HostChip — glyph compacto de 1 letra que indica un host.
7
+ * En TTY no hay fondos arbitrarios; usamos `backgroundColor` de Ink (que el
8
+ * renderer adapta al terminal) y color de letra. Cuando `on=false` el chip
9
+ * pierde el fill verde y vuelve a hueso (muted).
10
+ */
11
+ export function HostChip({ id, on = true, glyph, size = "sm" }) {
12
+ const meta = hostMeta(id);
13
+ const ch = glyph ?? meta.glyph;
14
+ if (on) {
15
+ return (_jsx(Text, { color: colors.success, bold: true, children: wrap(ch, size) }));
16
+ }
17
+ return (_jsx(Text, { color: colors.fgFaint, dimColor: true, children: wrap(ch, size) }));
18
+ }
19
+ /**
20
+ * HostChipStrip — todos los hosts del registry como chips, en línea.
21
+ * Los `active` reciben color de "on", el resto queda en "off".
22
+ */
23
+ export function HostChipStrip({ active, size = "sm", hosts = HOSTS, }) {
24
+ const onSet = new Set(active);
25
+ return (_jsx(Box, { children: hosts.map((h, idx) => (_jsx(Box, { marginLeft: idx === 0 ? 0 : 1, children: _jsx(HostChip, { id: h.id, on: onSet.has(h.id), size: size }) }, h.id))) }));
26
+ }
27
+ /**
28
+ * Render del chip — en TTY usamos `[X]` para md, `X` solo para sm/xs.
29
+ */
30
+ function wrap(ch, size) {
31
+ if (size === "md")
32
+ return `[${ch}]`;
33
+ return ch;
34
+ }
35
+ //# sourceMappingURL=host-chip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-chip.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/host-chip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAiB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAarC;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAiB;IAC3E,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IAC/B,IAAI,EAAE,EAAE,CAAC;QACP,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,kBAC9B,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GACV,CACR,CAAC;IACJ,CAAC;IACD,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,kBAClC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GACV,CACR,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,KAAK,GAKd;IACC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,CACL,KAAC,GAAG,cACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CACrB,KAAC,GAAG,IAAY,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAC3C,KAAC,QAAQ,IAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAI,IAD/C,CAAC,CAAC,EAAE,CAER,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,IAAI,CAAC,EAAU,EAAE,IAAwB;IAChD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,EAAE,GAAG,CAAC;IACpC,OAAO,EAAE,CAAC;AACZ,CAAC"}