@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,83 +1,69 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Box, Text } from "ink";
3
3
  import { useEffect, useRef, useState } from "react";
4
- import { readMcpConnections } from "../../../application/mcp-connections-service.js";
5
4
  import { selfDoctor } from "../../../application/self/doctor-self.js";
5
+ import { selfMcpConfig } from "../../../application/self/mcp-config.js";
6
+ import { PageHead } from "../components/page-head.js";
7
+ import { HOSTS } from "../hosts.js";
6
8
  import { colors, icons } from "../theme.js";
7
- const TARGET_LABEL = {
8
- claude: "Skill en Claude Code",
9
- codex: "Skill en Codex",
10
- agents: "AGENTS.md lock",
11
- };
9
+ /**
10
+ * StatusTab vista general del runtime.
11
+ *
12
+ * Estructura:
13
+ * - PageHead (count: hosts instalados / totales)
14
+ * - Card CLI (versión + paquete)
15
+ * - Card MCP (lista de conexiones registradas)
16
+ * - Card Hosts soportados (grid de host-cards)
17
+ * - Card Skills (installed/total + progress)
18
+ * - Card Plugins (placeholder hasta tener un counter rápido)
19
+ * - Quick actions (install:all, update:check, clean:cache, palette)
20
+ */
12
21
  export function StatusTab({ ctx }) {
13
- const [items, setItems] = useState([]);
14
- const [loading, setLoading] = useState(true);
22
+ const [data, setData] = useState({ doctor: null, mcp: [], loading: true });
15
23
  const startedRef = useRef(false);
16
24
  useEffect(() => {
17
25
  if (startedRef.current)
18
26
  return;
19
27
  startedRef.current = true;
20
- void load();
21
- async function load() {
22
- const next = [...(await loadDoctorItems(ctx)), ...loadConnectionItems(ctx)];
23
- setItems(next);
24
- setLoading(false);
25
- }
28
+ void (async () => {
29
+ const doc = await selfDoctor(ctx).catch(() => null);
30
+ const mcpRes = await selfMcpConfig(buildArgs("list"), ctx).catch(() => null);
31
+ const mcp = mcpRes?.ok ? (mcpRes.data?.connections ?? []) : [];
32
+ setData({ doctor: doc?.ok ? (doc.data ?? null) : null, mcp, loading: false });
33
+ })();
26
34
  }, [ctx]);
27
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.fg, bold: true, children: "Estado del runtime" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [loading ? _jsxs(Text, { color: colors.fgSubtle, children: [icons.spinner, " cargando..."] }) : null, items.map((item) => (_jsxs(Box, { children: [_jsxs(Text, { color: iconColor(item.ok), bold: true, children: [iconFor(item.ok), " "] }), _jsx(Text, { color: colors.fg, children: item.label }), item.detail ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: colors.fgMoreSubtle, children: " \u00B7 " }), _jsx(Text, { color: colors.fgSubtle, children: item.detail })] })) : null] }, item.label)))] })] }));
28
- }
29
- async function loadDoctorItems(ctx) {
30
- try {
31
- const result = await selfDoctor(ctx);
32
- if (!result.ok || !result.data)
33
- return [];
34
- const items = [{ label: "CLI", ok: true, detail: `v${result.data.cli_version}` }];
35
- for (const target of result.data.skill.targets) {
36
- items.push({
37
- label: TARGET_LABEL[target.target] ?? `Skill (${target.target})`,
38
- ok: target.installed,
39
- detail: target.installed ? prettyTargetPath(target.path, ctx) : "no instalada",
40
- });
41
- }
42
- return items;
43
- }
44
- catch (err) {
45
- return [{ label: "Doctor", ok: false, detail: err.message }];
46
- }
47
- }
48
- function loadConnectionItems(ctx) {
49
- try {
50
- const conns = readMcpConnections(ctx.paths, ctx.env);
51
- return [
52
- {
53
- label: "Conexiones MCP",
54
- ok: null,
55
- detail: `${conns.length} registrada${conns.length === 1 ? "" : "s"}`,
56
- },
57
- ];
58
- }
59
- catch {
60
- return [];
35
+ if (data.loading) {
36
+ return (_jsx(Box, { children: _jsxs(Text, { color: colors.fgSubtle, children: [icons.spinner, " cargando estado\u2026"] }) }));
61
37
  }
38
+ const installedHosts = data.doctor?.skill.targets.filter((t) => t.installed).length ?? 0;
39
+ const supportedHosts = HOSTS.length;
40
+ const skillTotalBacked = data.doctor?.skill.targets.length ?? 0;
41
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PageHead, { title: "Status", count: {
42
+ label: `${installedHosts}/${supportedHosts}`,
43
+ tone: installedHosts > 0 ? "ok" : "muted",
44
+ } }), _jsxs(SectionFrame, { title: "CLI", children: [_jsxs(Text, { color: colors.fgBright, bold: true, children: ["v", data.doctor?.cli_version ?? "?"] }), _jsx(Text, { color: colors.fgFaint, children: " \u00B7 " }), _jsx(Text, { color: colors.info, children: data.doctor?.runtime.package_name ?? "—" })] }), _jsx(SectionFrame, { title: "MCP", children: data.mcp.length === 0 ? (_jsx(Text, { color: colors.fgFaint, children: "(ninguna conexi\u00F3n registrada)" })) : (_jsx(Box, { flexDirection: "column", children: data.mcp.slice(0, 4).map((m) => (_jsxs(Box, { children: [_jsx(Text, { color: colors.accent, children: "\u00B7" }), _jsx(Text, { children: " " }), _jsx(Text, { color: colors.fgBright, children: m.nombre }), _jsx(Text, { color: colors.fgFaint, children: " " }), _jsx(Text, { color: colors.info, children: m.dsn_var })] }, m.nombre))) })) }), _jsxs(SectionFrame, { title: "Skills", children: [_jsx(Text, { color: colors.fgBright, children: installedHosts }), _jsxs(Text, { color: colors.fgFaint, children: ["/", skillTotalBacked || supportedHosts] }), _jsx(Text, { children: " " }), _jsx(ProgressLine, { ratio: skillTotalBacked > 0 ? installedHosts / skillTotalBacked : 0 })] })] }));
62
45
  }
63
- function prettyTargetPath(path, ctx) {
64
- const home = ctx.env.homeDir();
65
- if (home && path.startsWith(home))
66
- return `~${path.slice(home.length)}`;
67
- return path;
46
+ /**
47
+ * SectionFrame — caja con borde fino + título uppercase compacto.
48
+ *
49
+ * Usado para delimitar secciones del Status, Project y otros tabs sin recurrir
50
+ * a uppercase labels sueltos. El border usa `borderFaint` para ser sutil.
51
+ */
52
+ function SectionFrame({ title, children }) {
53
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: colors.borderFaint, paddingX: 1, marginBottom: 1, children: [_jsx(Text, { color: colors.fgMoreSubtle, children: title.toUpperCase() }), _jsx(Box, { children: children })] }));
68
54
  }
69
- function iconFor(ok) {
70
- if (ok === true)
71
- return icons.check;
72
- if (ok === false)
73
- return icons.cross;
74
- return icons.bullet;
55
+ function ProgressLine({ ratio }) {
56
+ const width = 14;
57
+ const filled = Math.round(Math.max(0, Math.min(1, ratio)) * width);
58
+ return (_jsxs(Box, { children: [_jsx(Text, { color: colors.accent, children: "█".repeat(filled) }), _jsx(Text, { color: colors.fgFaint, children: "░".repeat(width - filled) })] }));
75
59
  }
76
- function iconColor(ok) {
77
- if (ok === true)
78
- return colors.success;
79
- if (ok === false)
80
- return colors.error;
81
- return colors.info;
60
+ function buildArgs(action) {
61
+ return {
62
+ rest: ["mcp", action],
63
+ plugin: {},
64
+ flags: new Set(),
65
+ values: new Map(),
66
+ valuesMulti: new Map(),
67
+ };
82
68
  }
83
69
  //# sourceMappingURL=status-tab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/status-tab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/status-tab.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,17 @@ export interface UpdateTabProps {
4
4
  version: string;
5
5
  isActive: boolean;
6
6
  onRequestUpdate: () => void;
7
+ onToast?: (msg: {
8
+ tone: "ok" | "info" | "err";
9
+ title: string;
10
+ body?: string;
11
+ }) => void;
7
12
  }
8
- export declare function UpdateTab({ ctx, version, isActive, onRequestUpdate }: UpdateTabProps): import("react/jsx-runtime").JSX.Element;
13
+ /**
14
+ * UpdateTab minimal — versión actual → última en una línea, acciones inline.
15
+ *
16
+ * Sin cards con bordes, sin section labels. Auto-check al montar.
17
+ * Acciones: `r` buscar / `i` aplicar / `o` release notes.
18
+ */
19
+ export declare function UpdateTab({ ctx, version, isActive, onRequestUpdate, onToast }: UpdateTabProps): import("react/jsx-runtime").JSX.Element;
9
20
  //# sourceMappingURL=update-tab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-tab.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/update-tab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKjD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAuBD,wBAAgB,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,cAAc,2CAuFpF"}
1
+ {"version":3,"file":"update-tab.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/update-tab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKjD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACxF;AAUD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,cAAc,2CAsI7F"}
@@ -1,34 +1,26 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text } from "ink";
3
- import { useCallback, useMemo, useState } from "react";
4
- import { SectionedMenu } from "../components/sectioned-menu.js";
5
- import { Toast } from "../components/toast.js";
2
+ import { Box, Text, useInput } from "ink";
3
+ import { useCallback, useEffect, useRef, useState } from "react";
4
+ import { PageHead } from "../components/page-head.js";
5
+ import { Pill } from "../components/pill.js";
6
6
  import { colors, icons } from "../theme.js";
7
- function buildMenuItems(check) {
8
- const items = [
9
- { kind: "item", label: "Buscar actualizaciones", value: "check" },
10
- ];
11
- if (check?.status === "outdated") {
12
- const target = check.latest
13
- ? `Actualizar a v${check.latest} (npm install)`
14
- : "Actualizar ahora (npm install)";
15
- items.push({ kind: "item", label: target, value: "install" });
16
- }
17
- return items;
18
- }
19
- export function UpdateTab({ ctx, version, isActive, onRequestUpdate }) {
20
- const [check, setCheck] = useState(null);
21
- const [busy, setBusy] = useState(false);
7
+ /**
8
+ * UpdateTab minimal — versión actual → última en una línea, acciones inline.
9
+ *
10
+ * Sin cards con bordes, sin section labels. Auto-check al montar.
11
+ * Acciones: `r` buscar / `i` aplicar / `o` release notes.
12
+ */
13
+ export function UpdateTab({ ctx, version, isActive, onRequestUpdate, onToast }) {
14
+ const [check, setCheck] = useState({ status: "idle" });
15
+ const startedRef = useRef(false);
22
16
  const runCheck = useCallback(async () => {
23
- setBusy(true);
24
- setCheck(null);
17
+ setCheck({ status: "checking" });
25
18
  try {
26
19
  const result = await ctx.process.run("npm", ["view", ctx.runtime.packageName, "version"], {});
27
20
  if (result.code !== 0) {
28
- setCheck({
29
- status: "error",
30
- message: `npm view falló (exit ${result.code}): ${result.stderr.trim() || "sin detalle"}`,
31
- });
21
+ const msg = `npm view falló: ${result.stderr.trim() || "sin detalle"}`;
22
+ setCheck({ status: "error", message: msg });
23
+ onToast?.({ tone: "err", title: "Buscar actualización falló", body: msg });
32
24
  return;
33
25
  }
34
26
  const latest = result.stdout.trim();
@@ -37,42 +29,55 @@ export function UpdateTab({ ctx, version, isActive, onRequestUpdate }) {
37
29
  return;
38
30
  }
39
31
  if (latest === version) {
40
- setCheck({
41
- status: "uptodate",
42
- latest,
43
- message: `Ya estás en la última versión (v${version}).`,
44
- });
32
+ setCheck({ status: "uptodate", latest });
45
33
  }
46
34
  else {
47
- setCheck({
48
- status: "outdated",
49
- latest,
50
- message: `Hay una versión más reciente disponible: v${latest} (actualmente v${version}).`,
35
+ setCheck({ status: "outdated", latest });
36
+ onToast?.({
37
+ tone: "info",
38
+ title: "Hay una actualización disponible",
39
+ body: `v${version} → v${latest}`,
51
40
  });
52
41
  }
53
42
  }
54
43
  catch (err) {
55
44
  setCheck({ status: "error", message: err.message });
56
45
  }
57
- finally {
58
- setBusy(false);
59
- }
60
- }, [ctx, version]);
61
- const handleSelect = useCallback((action) => {
62
- if (busy)
46
+ }, [ctx, version, onToast]);
47
+ // Auto-check al montar.
48
+ useEffect(() => {
49
+ if (startedRef.current)
63
50
  return;
64
- if (action === "check") {
51
+ startedRef.current = true;
52
+ void runCheck();
53
+ }, [runCheck]);
54
+ useInput((input) => {
55
+ if (!isActive)
56
+ return;
57
+ if (check.status === "checking" || check.status === "applying")
58
+ return;
59
+ if (input === "r" || input === "R") {
65
60
  void runCheck();
66
61
  }
67
- else if (action === "install") {
68
- onRequestUpdate();
62
+ else if (input === "i" || input === "I") {
63
+ if (check.status === "outdated") {
64
+ setCheck({ ...check, status: "applying" });
65
+ onRequestUpdate();
66
+ }
67
+ }
68
+ else if (input === "o" || input === "O") {
69
+ onToast?.({
70
+ tone: "info",
71
+ title: "Release notes",
72
+ body: `npm: https://www.npmjs.com/package/${ctx.runtime.packageName}`,
73
+ });
69
74
  }
70
- }, [busy, runCheck, onRequestUpdate]);
71
- const menuItems = useMemo(() => buildMenuItems(check), [check]);
72
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.fg, bold: true, children: "Actualizar CLI" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { color: colors.fg, children: "versi\u00F3n actual:" }), _jsx(Text, { children: " " }), _jsxs(Text, { color: colors.accent, bold: true, children: ["v", version] })] }), _jsxs(Box, { children: [_jsx(Text, { color: colors.fgSubtle, children: "paquete: " }), _jsx(Text, { color: colors.fgSubtle, children: ctx.runtime.packageName })] })] }), _jsx(Box, { marginTop: 1, children: _jsx(SectionedMenu, { items: menuItems, onSelect: handleSelect, isActive: isActive && !busy }) }), busy ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.warning, children: [icons.spinner, " consultando npm registry..."] }) })) : null, check ? _jsx(CheckSummary, { result: check }) : null] }));
75
+ }, { isActive });
76
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(PageHead, { title: "Update" }), _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: check.status === "outdated" ? colors.borderActive : colors.borderFaint, paddingX: 1, marginBottom: 1, children: [_jsx(Text, { color: colors.fgMoreSubtle, children: "VERSI\u00D3N" }), _jsxs(Box, { children: [_jsx(Text, { color: colors.fgFaint, children: "actual" }), _jsx(Text, { children: " " }), _jsxs(Text, { color: colors.fgBright, bold: true, children: ["v", version] }), _jsx(Text, { color: colors.fgFaint, children: " → última " }), _jsxs(Text, { color: check.status === "outdated" ? colors.accent : colors.fgBright, ...(check.status === "outdated" ? { bold: true } : {}), children: ["v", check.latest ?? "?"] }), check.status === "outdated" ? (_jsx(Box, { marginLeft: 1, children: _jsx(Pill, { tone: "accent", children: "disponible" }) })) : check.status === "uptodate" ? (_jsx(Box, { marginLeft: 1, children: _jsx(Pill, { tone: "ok", children: "al d\u00EDa" }) })) : check.status === "checking" ? (_jsx(Box, { marginLeft: 1, children: _jsxs(Text, { color: colors.fgFaint, children: [icons.spinner, " consultando\u2026"] }) })) : null] }), _jsxs(Text, { color: colors.fgFaint, children: [ctx.runtime.packageName, " \u00B7 registry.npmjs.org"] })] }), _jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: colors.borderFaint, paddingX: 1, children: [_jsx(Text, { color: colors.fgMoreSubtle, children: "ACCIONES" }), _jsx(ActionKey, { k: "r", label: "buscar de nuevo" }), _jsx(ActionKey, { k: "i", label: `aplicar v${check.latest ?? "?"}`, primary: check.status === "outdated", disabled: check.status !== "outdated" }), _jsx(ActionKey, { k: "o", label: "release notes" })] }), check.status === "applying" ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.warning, children: [icons.spinner, " aplicando v", check.latest, "\u2026 (npm install)"] }) })) : null, check.status === "error" ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.error, children: [icons.cross, " ", check.message ?? "Error desconocido"] }) })) : null] }));
73
77
  }
74
- function CheckSummary({ result }) {
75
- const tone = result.status === "uptodate" ? "success" : result.status === "outdated" ? "info" : "error";
76
- return _jsx(Toast, { tone: tone, message: result.message });
78
+ function ActionKey({ k, label, primary, disabled, }) {
79
+ const keyColor = disabled ? colors.fgFaint : primary ? colors.accent : colors.fgBright;
80
+ const labelColor = disabled ? colors.fgFaint : primary ? colors.fgBright : colors.fgSubtle;
81
+ return (_jsxs(Box, { children: [_jsx(Text, { color: keyColor, ...(!disabled ? { bold: true } : {}), children: k }), _jsx(Text, { color: colors.fgFaint, children: " \u00B7 " }), _jsx(Text, { color: labelColor, ...(primary && !disabled ? { bold: true } : {}), children: label })] }));
77
82
  }
78
83
  //# sourceMappingURL=update-tab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/update-tab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/update-tab.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +1,57 @@
1
+ export declare const palette: {
2
+ readonly bg: "#0a0e1a";
3
+ readonly bgElev1: "#0f1729";
4
+ readonly bgElev2: "#152040";
5
+ readonly bgElev3: "#1e2a52";
6
+ readonly bgHover: "#1d2e5a";
7
+ readonly bgSelected: "#1e3a8a";
8
+ readonly borderFaint: "#1e293b";
9
+ readonly border: "#334155";
10
+ readonly borderStrong: "#475569";
11
+ readonly borderAccent: "#0284c7";
12
+ readonly text: "#e2e8f0";
13
+ readonly textBright: "#f8fafc";
14
+ readonly textDim: "#94a3b8";
15
+ readonly textMute: "#64748b";
16
+ readonly textFaint: "#475569";
17
+ readonly accent: "#0ea5e9";
18
+ readonly accentSoft: "#38bdf8";
19
+ readonly purple: "#8b5cf6";
20
+ readonly purpleSoft: "#a78bfa";
21
+ readonly blue: "#3b82f6";
22
+ readonly cyan: "#06b6d4";
23
+ readonly green: "#10b981";
24
+ readonly greenDim: "#059669";
25
+ readonly yellow: "#f59e0b";
26
+ readonly orange: "#f97316";
27
+ readonly red: "#ef4444";
28
+ readonly ok: "#10b981";
29
+ readonly warn: "#f59e0b";
30
+ readonly err: "#ef4444";
31
+ readonly info: "#06b6d4";
32
+ };
1
33
  export declare const colors: {
2
- readonly primary: "magenta";
3
- readonly accent: "cyan";
4
- readonly secondary: "magentaBright";
5
- readonly success: "green";
6
- readonly warning: "yellow";
7
- readonly error: "red";
8
- readonly info: "blue";
9
- readonly fg: "white";
10
- readonly fgSubtle: "gray";
11
- readonly fgMoreSubtle: "blackBright";
12
- readonly border: "blackBright";
13
- readonly borderActive: "magenta";
34
+ readonly primary: "#0ea5e9";
35
+ readonly accent: "#0ea5e9";
36
+ readonly accentSoft: "#38bdf8";
37
+ readonly secondary: "#38bdf8";
38
+ readonly success: "#10b981";
39
+ readonly warning: "#f59e0b";
40
+ readonly error: "#ef4444";
41
+ readonly info: "#06b6d4";
42
+ readonly fg: "#e2e8f0";
43
+ readonly fgBright: "#f8fafc";
44
+ readonly fgSubtle: "#94a3b8";
45
+ readonly fgMoreSubtle: "#64748b";
46
+ readonly fgFaint: "#475569";
47
+ readonly border: "#334155";
48
+ readonly borderFaint: "#1e293b";
49
+ readonly borderStrong: "#475569";
50
+ readonly borderActive: "#0ea5e9";
51
+ readonly bg: "#0a0e1a";
52
+ readonly bgElev: "#152040";
53
+ readonly bgHover: "#1d2e5a";
54
+ readonly bgSelected: "#1e3a8a";
14
55
  };
15
56
  export declare const icons: {
16
57
  readonly check: "✓";
@@ -29,6 +70,37 @@ export declare const icons: {
29
70
  readonly tabActiveRight: "]";
30
71
  readonly tabSeparator: " ";
31
72
  readonly divider: "─";
73
+ readonly chevron: "›";
74
+ readonly star: "✦";
75
+ readonly plug: "◇";
76
+ readonly pkg: "◆";
77
+ readonly db: "▤";
78
+ readonly refresh: "↻";
79
+ readonly search: "⌕";
80
+ readonly cmd: "⌘";
81
+ readonly enter: "↵";
82
+ readonly up: "↑";
83
+ readonly down: "↓";
84
+ readonly tab: "⇥";
85
+ readonly esc: "⎋";
86
+ readonly play: "▸";
87
+ readonly stop: "■";
88
+ readonly install: "↓";
89
+ readonly uninstall: "×";
90
+ readonly clean: "⊘";
91
+ readonly legacy: "⚒";
92
+ readonly git: "⎇";
93
+ readonly branch: "⎇";
94
+ readonly commit: "●";
95
+ readonly edit: "✎";
96
+ readonly tool: "⚙";
97
+ readonly hook: "↪";
98
+ readonly test: "✓";
99
+ readonly todo: "□";
100
+ readonly clock: "◷";
101
+ readonly alertDot: "●";
102
+ readonly ring: "●";
103
+ readonly pin: "⌖";
32
104
  };
33
105
  export type ColorName = (typeof colors)[keyof typeof colors];
34
106
  //# sourceMappingURL=theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/theme.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAaT,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;CAiBR,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/theme.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CV,CAAC;AAGX,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;CA0BT,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDR,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC"}
@@ -1,20 +1,73 @@
1
- // Paleta + iconos compartidos por la TUI. Inspirado (no copiado) en
2
- // charmbracelet/crush + charmtone: jerarquía fg en 4 niveles, accent claro
3
- // distinto al primary, iconografía minimal Unicode (compatible con cualquier
4
- // terminal moderna sin emojis).
1
+ // Paleta moderna azul/celeste inspirada en Tailwind sky/slate.
2
+ // Hex strings Ink 5 acepta `Text color="#xxx"`.
3
+ //
4
+ // Convención:
5
+ // - `accent` / `accentSoft` — único acento (sky/cyan). Usar SOLO en lo activo.
6
+ // - `text-*` — 5 niveles (bright/normal/dim/mute/faint).
7
+ // - `border-*` — 4 niveles.
8
+ // - `bg-*` — 4 elevaciones + hover/selected.
9
+ // - Semánticos: `ok / warn / err / info`.
10
+ export const palette = {
11
+ // surfaces — slate base con tinte azulado
12
+ bg: "#0a0e1a",
13
+ bgElev1: "#0f1729",
14
+ bgElev2: "#152040",
15
+ bgElev3: "#1e2a52",
16
+ bgHover: "#1d2e5a",
17
+ bgSelected: "#1e3a8a",
18
+ // borders — slate
19
+ borderFaint: "#1e293b",
20
+ border: "#334155",
21
+ borderStrong: "#475569",
22
+ borderAccent: "#0284c7",
23
+ // text — slate
24
+ text: "#e2e8f0",
25
+ textBright: "#f8fafc",
26
+ textDim: "#94a3b8",
27
+ textMute: "#64748b",
28
+ textFaint: "#475569",
29
+ // accent — sky (celeste moderno)
30
+ accent: "#0ea5e9",
31
+ accentSoft: "#38bdf8",
32
+ // soportes
33
+ purple: "#8b5cf6",
34
+ purpleSoft: "#a78bfa",
35
+ blue: "#3b82f6",
36
+ cyan: "#06b6d4",
37
+ green: "#10b981",
38
+ greenDim: "#059669",
39
+ yellow: "#f59e0b",
40
+ orange: "#f97316",
41
+ red: "#ef4444",
42
+ // semánticos
43
+ ok: "#10b981",
44
+ warn: "#f59e0b",
45
+ err: "#ef4444",
46
+ info: "#06b6d4",
47
+ };
48
+ // Map legacy `colors.*` names a hex de la paleta nueva.
5
49
  export const colors = {
6
- primary: "magenta",
7
- accent: "cyan",
8
- secondary: "magentaBright",
9
- success: "green",
10
- warning: "yellow",
11
- error: "red",
12
- info: "blue",
13
- fg: "white",
14
- fgSubtle: "gray",
15
- fgMoreSubtle: "blackBright",
16
- border: "blackBright",
17
- borderActive: "magenta",
50
+ primary: palette.accent,
51
+ accent: palette.accent,
52
+ accentSoft: palette.accentSoft,
53
+ secondary: palette.accentSoft,
54
+ success: palette.ok,
55
+ warning: palette.warn,
56
+ error: palette.err,
57
+ info: palette.info,
58
+ fg: palette.text,
59
+ fgBright: palette.textBright,
60
+ fgSubtle: palette.textDim,
61
+ fgMoreSubtle: palette.textMute,
62
+ fgFaint: palette.textFaint,
63
+ border: palette.border,
64
+ borderFaint: palette.borderFaint,
65
+ borderStrong: palette.borderStrong,
66
+ borderActive: palette.accent,
67
+ bg: palette.bg,
68
+ bgElev: palette.bgElev2,
69
+ bgHover: palette.bgHover,
70
+ bgSelected: palette.bgSelected,
18
71
  };
19
72
  export const icons = {
20
73
  check: "✓",
@@ -33,5 +86,36 @@ export const icons = {
33
86
  tabActiveRight: "]",
34
87
  tabSeparator: " ",
35
88
  divider: "─",
89
+ chevron: "›",
90
+ star: "✦",
91
+ plug: "◇",
92
+ pkg: "◆",
93
+ db: "▤",
94
+ refresh: "↻",
95
+ search: "⌕",
96
+ cmd: "⌘",
97
+ enter: "↵",
98
+ up: "↑",
99
+ down: "↓",
100
+ tab: "⇥",
101
+ esc: "⎋",
102
+ play: "▸",
103
+ stop: "■",
104
+ install: "↓",
105
+ uninstall: "×",
106
+ clean: "⊘",
107
+ legacy: "⚒",
108
+ git: "⎇",
109
+ branch: "⎇",
110
+ commit: "●",
111
+ edit: "✎",
112
+ tool: "⚙",
113
+ hook: "↪",
114
+ test: "✓",
115
+ todo: "□",
116
+ clock: "◷",
117
+ alertDot: "●",
118
+ ring: "●",
119
+ pin: "⌖",
36
120
  };
37
121
  //# sourceMappingURL=theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/cli/tui/theme.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,2EAA2E;AAC3E,6EAA6E;AAC7E,gCAAgC;AAEhC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,OAAO;IACX,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,aAAa;IAC3B,MAAM,EAAE,aAAa;IACrB,YAAY,EAAE,SAAS;CACf,CAAC;AAEX,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,GAAG;IACd,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,GAAG;IACf,aAAa,EAAE,GAAG;IAClB,cAAc,EAAE,GAAG;IACnB,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,GAAG;CACJ,CAAC"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/cli/tui/theme.ts"],"names":[],"mappings":"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"}