@tacuchi/agent-workflow-cli 7.2.1 → 7.3.0
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.
- package/dist/application/project-tab-data.d.ts +119 -0
- package/dist/application/project-tab-data.d.ts.map +1 -0
- package/dist/application/project-tab-data.js +320 -0
- package/dist/application/project-tab-data.js.map +1 -0
- package/dist/cli/interactive-menu.d.ts +1 -1
- package/dist/cli/interactive-menu.d.ts.map +1 -1
- package/dist/cli/main.js +6 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/tui/app.d.ts.map +1 -1
- package/dist/cli/tui/app.js +116 -102
- package/dist/cli/tui/app.js.map +1 -1
- package/dist/cli/tui/components/command-palette.d.ts +39 -0
- package/dist/cli/tui/components/command-palette.d.ts.map +1 -0
- package/dist/cli/tui/components/command-palette.js +116 -0
- package/dist/cli/tui/components/command-palette.js.map +1 -0
- package/dist/cli/tui/components/header.d.ts +6 -0
- package/dist/cli/tui/components/header.d.ts.map +1 -1
- package/dist/cli/tui/components/header.js +8 -2
- package/dist/cli/tui/components/header.js.map +1 -1
- package/dist/cli/tui/components/host-chip.d.ts +28 -0
- package/dist/cli/tui/components/host-chip.d.ts.map +1 -0
- package/dist/cli/tui/components/host-chip.js +35 -0
- package/dist/cli/tui/components/host-chip.js.map +1 -0
- package/dist/cli/tui/components/keymap-bar.d.ts +8 -0
- package/dist/cli/tui/components/keymap-bar.d.ts.map +1 -1
- package/dist/cli/tui/components/keymap-bar.js +7 -1
- package/dist/cli/tui/components/keymap-bar.js.map +1 -1
- package/dist/cli/tui/components/page-head.d.ts +18 -0
- package/dist/cli/tui/components/page-head.d.ts.map +1 -0
- package/dist/cli/tui/components/page-head.js +14 -0
- package/dist/cli/tui/components/page-head.js.map +1 -0
- package/dist/cli/tui/components/pill.d.ts +16 -0
- package/dist/cli/tui/components/pill.d.ts.map +1 -0
- package/dist/cli/tui/components/pill.js +24 -0
- package/dist/cli/tui/components/pill.js.map +1 -0
- package/dist/cli/tui/components/tab-bar.d.ts +12 -0
- package/dist/cli/tui/components/tab-bar.d.ts.map +1 -1
- package/dist/cli/tui/components/tab-bar.js +11 -5
- package/dist/cli/tui/components/tab-bar.js.map +1 -1
- package/dist/cli/tui/components/toast-stack.d.ts +41 -0
- package/dist/cli/tui/components/toast-stack.d.ts.map +1 -0
- package/dist/cli/tui/components/toast-stack.js +61 -0
- package/dist/cli/tui/components/toast-stack.js.map +1 -0
- package/dist/cli/tui/hosts.d.ts +16 -0
- package/dist/cli/tui/hosts.d.ts.map +1 -0
- package/dist/cli/tui/hosts.js +31 -0
- package/dist/cli/tui/hosts.js.map +1 -0
- package/dist/cli/tui/tabs/mcp-tab.d.ts +22 -1
- package/dist/cli/tui/tabs/mcp-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/mcp-tab.js +165 -129
- package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
- package/dist/cli/tui/tabs/plugins-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/plugins-tab.js +78 -19
- package/dist/cli/tui/tabs/plugins-tab.js.map +1 -1
- package/dist/cli/tui/tabs/project-tab.d.ts +19 -0
- package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -0
- package/dist/cli/tui/tabs/project-tab.js +188 -0
- package/dist/cli/tui/tabs/project-tab.js.map +1 -0
- package/dist/cli/tui/tabs/skills-tab.d.ts +17 -1
- package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.js +127 -224
- package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
- package/dist/cli/tui/tabs/status-tab.d.ts +13 -0
- package/dist/cli/tui/tabs/status-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/status-tab.js +52 -66
- package/dist/cli/tui/tabs/status-tab.js.map +1 -1
- package/dist/cli/tui/tabs/update-tab.d.ts +12 -1
- package/dist/cli/tui/tabs/update-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/update-tab.js +54 -49
- package/dist/cli/tui/tabs/update-tab.js.map +1 -1
- package/dist/cli/tui/theme.d.ts +84 -12
- package/dist/cli/tui/theme.d.ts.map +1 -1
- package/dist/cli/tui/theme.js +100 -16
- package/dist/cli/tui/theme.js.map +1 -1
- package/dist/cli/tui/tui-prefs.d.ts +15 -0
- package/dist/cli/tui/tui-prefs.d.ts.map +1 -0
- package/dist/cli/tui/tui-prefs.js +45 -0
- package/dist/cli/tui/tui-prefs.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,83 +1,69 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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 [
|
|
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
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"status-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/status-tab.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAyB,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAGxE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAc5C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,GAAG,EAAkB;IAC/C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,CAAC,OAAO;YAAE,OAAO;QAC/B,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7E,MAAM,GAAG,GAA4B,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAChF,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CACL,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,aAAG,KAAK,CAAC,OAAO,8BAAyB,GACjE,CACP,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IACzF,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;IAEhE,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,QAAQ,IACP,KAAK,EAAC,QAAQ,EACd,KAAK,EAAE;oBACL,KAAK,EAAE,GAAG,cAAc,IAAI,cAAc,EAAE;oBAC5C,IAAI,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;iBAC1C,GACD,EAEF,MAAC,YAAY,IAAC,KAAK,EAAC,KAAK,aACvB,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,wBAC9B,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,GAAG,IAC5B,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,yBAAY,EACvC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,IAAI,GAAG,GAAQ,IAC9D,EAEf,KAAC,YAAY,IAAC,KAAK,EAAC,KAAK,YACtB,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,mDAAsC,CAClE,CAAC,CAAC,CAAC,CACF,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC/B,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,uBAAU,EACpC,KAAC,IAAI,oBAAS,EACd,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,YAAG,CAAC,CAAC,MAAM,GAAQ,EAC/C,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,kBAAU,EACrC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAG,CAAC,CAAC,OAAO,GAAQ,KALpC,CAAC,CAAC,MAAM,CAMZ,CACP,CAAC,GACE,CACP,GACY,EAEf,MAAC,YAAY,IAAC,KAAK,EAAC,QAAQ,aAC1B,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,YAAG,cAAc,GAAQ,EACrD,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,kBAAI,gBAAgB,IAAI,cAAc,IAAQ,EACzE,KAAC,IAAI,oBAAS,EACd,KAAC,YAAY,IAAC,KAAK,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAI,IACxE,IACX,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAgD;IACrF,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,QAAQ,EAAE,CAAC,EACX,YAAY,EAAE,CAAC,aAEf,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,YAAG,KAAK,CAAC,WAAW,EAAE,GAAQ,EAC9D,KAAC,GAAG,cAAE,QAAQ,GAAO,IACjB,CACP,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,KAAK,EAAqB;IAChD,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACnE,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,YAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAQ,EACvD,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAQ,IAC5D,CACP,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO;QACL,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,MAAM,EAAE,IAAI,GAAG,EAAE;QACjB,WAAW,EAAE,IAAI,GAAG,EAAE;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -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
|
-
|
|
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;
|
|
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,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
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 (
|
|
68
|
-
|
|
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
|
-
},
|
|
71
|
-
|
|
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
|
|
75
|
-
const
|
|
76
|
-
|
|
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":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"update-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/update-tab.tsx"],"names":[],"mappings":"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"}
|
package/dist/cli/tui/theme.d.ts
CHANGED
|
@@ -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: "
|
|
3
|
-
readonly accent: "
|
|
4
|
-
readonly
|
|
5
|
-
readonly
|
|
6
|
-
readonly
|
|
7
|
-
readonly
|
|
8
|
-
readonly
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
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":"
|
|
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"}
|
package/dist/cli/tui/theme.js
CHANGED
|
@@ -1,20 +1,73 @@
|
|
|
1
|
-
// Paleta
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
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:
|
|
7
|
-
accent:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/cli/tui/theme.ts"],"names":[],"mappings":"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"}
|