@tacuchi/agent-workflow-cli 8.0.0 → 9.1.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/self/install-skill.d.ts +2 -0
- package/dist/application/self/install-skill.d.ts.map +1 -1
- package/dist/application/self/install-skill.js +75 -3
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/uninstall.d.ts.map +1 -1
- package/dist/application/self/uninstall.js +37 -1
- package/dist/application/self/uninstall.js.map +1 -1
- package/dist/cli/main.js +0 -0
- package/dist/cli/tui/app.d.ts.map +1 -1
- package/dist/cli/tui/app.js +149 -72
- package/dist/cli/tui/app.js.map +1 -1
- package/dist/cli/tui/components/activity-feed.d.ts +16 -0
- package/dist/cli/tui/components/activity-feed.d.ts.map +1 -0
- package/dist/cli/tui/components/activity-feed.js +35 -0
- package/dist/cli/tui/components/activity-feed.js.map +1 -0
- package/dist/cli/tui/components/command-palette.d.ts +1 -1
- package/dist/cli/tui/components/command-palette.d.ts.map +1 -1
- package/dist/cli/tui/components/command-palette.js +5 -5
- package/dist/cli/tui/components/command-palette.js.map +1 -1
- package/dist/cli/tui/components/confirm-banner.d.ts +10 -0
- package/dist/cli/tui/components/confirm-banner.d.ts.map +1 -0
- package/dist/cli/tui/components/confirm-banner.js +11 -0
- package/dist/cli/tui/components/confirm-banner.js.map +1 -0
- package/dist/cli/tui/components/detail-panel.d.ts +34 -0
- package/dist/cli/tui/components/detail-panel.d.ts.map +1 -0
- package/dist/cli/tui/components/detail-panel.js +83 -0
- package/dist/cli/tui/components/detail-panel.js.map +1 -0
- package/dist/cli/tui/components/family-card.d.ts +5 -1
- package/dist/cli/tui/components/family-card.d.ts.map +1 -1
- package/dist/cli/tui/components/family-card.js +35 -4
- package/dist/cli/tui/components/family-card.js.map +1 -1
- package/dist/cli/tui/components/home-footer.d.ts +6 -0
- package/dist/cli/tui/components/home-footer.d.ts.map +1 -0
- package/dist/cli/tui/components/home-footer.js +22 -0
- package/dist/cli/tui/components/home-footer.js.map +1 -0
- package/dist/cli/tui/components/home-header.d.ts +9 -0
- package/dist/cli/tui/components/home-header.d.ts.map +1 -0
- package/dist/cli/tui/components/home-header.js +9 -0
- package/dist/cli/tui/components/home-header.js.map +1 -0
- package/dist/cli/tui/components/inline-wizard.d.ts +19 -0
- package/dist/cli/tui/components/inline-wizard.d.ts.map +1 -0
- package/dist/cli/tui/components/inline-wizard.js +16 -0
- package/dist/cli/tui/components/inline-wizard.js.map +1 -0
- package/dist/cli/tui/components/list-row.d.ts +11 -3
- package/dist/cli/tui/components/list-row.d.ts.map +1 -1
- package/dist/cli/tui/components/list-row.js +71 -13
- package/dist/cli/tui/components/list-row.js.map +1 -1
- package/dist/cli/tui/components/page-head.d.ts +8 -16
- package/dist/cli/tui/components/page-head.d.ts.map +1 -1
- package/dist/cli/tui/components/page-head.js +21 -14
- package/dist/cli/tui/components/page-head.js.map +1 -1
- package/dist/cli/tui/components/phase-card.d.ts +2 -1
- package/dist/cli/tui/components/phase-card.d.ts.map +1 -1
- package/dist/cli/tui/components/phase-card.js +9 -4
- package/dist/cli/tui/components/phase-card.js.map +1 -1
- package/dist/cli/tui/components/quick-actions.d.ts +9 -0
- package/dist/cli/tui/components/quick-actions.d.ts.map +1 -0
- package/dist/cli/tui/components/quick-actions.js +9 -0
- package/dist/cli/tui/components/quick-actions.js.map +1 -0
- package/dist/cli/tui/components/section-head.d.ts +10 -0
- package/dist/cli/tui/components/section-head.d.ts.map +1 -0
- package/dist/cli/tui/components/section-head.js +8 -0
- package/dist/cli/tui/components/section-head.js.map +1 -0
- package/dist/cli/tui/components/sidebar.d.ts +27 -0
- package/dist/cli/tui/components/sidebar.d.ts.map +1 -0
- package/dist/cli/tui/components/sidebar.js +37 -0
- package/dist/cli/tui/components/sidebar.js.map +1 -0
- package/dist/cli/tui/components/stat-tile.d.ts +4 -2
- package/dist/cli/tui/components/stat-tile.d.ts.map +1 -1
- package/dist/cli/tui/components/stat-tile.js +9 -8
- package/dist/cli/tui/components/stat-tile.js.map +1 -1
- package/dist/cli/tui/components/tabs-config.d.ts +18 -0
- package/dist/cli/tui/components/tabs-config.d.ts.map +1 -0
- package/dist/cli/tui/components/tabs-config.js +7 -0
- package/dist/cli/tui/components/tabs-config.js.map +1 -0
- package/dist/cli/tui/components/toast-stack.d.ts +3 -3
- package/dist/cli/tui/components/toast-stack.js +3 -3
- package/dist/cli/tui/data/activity.d.ts +21 -0
- package/dist/cli/tui/data/activity.d.ts.map +1 -0
- package/dist/cli/tui/data/activity.js +83 -0
- package/dist/cli/tui/data/activity.js.map +1 -0
- package/dist/cli/tui/tabs/mcp-tab.d.ts +3 -11
- package/dist/cli/tui/tabs/mcp-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/mcp-tab.js +112 -85
- package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
- package/dist/cli/tui/tabs/project-tab.d.ts +0 -11
- package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/project-tab.js +38 -78
- package/dist/cli/tui/tabs/project-tab.js.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.d.ts +1 -21
- package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.js +65 -85
- package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
- package/dist/cli/tui/tabs/status-tab.d.ts +4 -1
- package/dist/cli/tui/tabs/status-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/status-tab.js +50 -11
- package/dist/cli/tui/tabs/status-tab.js.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.d.ts +3 -1
- package/dist/cli/tui/tabs/workflow-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.js +31 -15
- package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
- package/dist/cli/tui/theme.d.ts +75 -55
- package/dist/cli/tui/theme.d.ts.map +1 -1
- package/dist/cli/tui/theme.js +75 -50
- package/dist/cli/tui/theme.js.map +1 -1
- package/dist/domain/harnesses.d.ts.map +1 -1
- package/dist/domain/harnesses.js +6 -1
- package/dist/domain/harnesses.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli/commands/orchestration.d.ts +0 -5
- package/dist/cli/commands/orchestration.d.ts.map +0 -1
- package/dist/cli/commands/orchestration.js +0 -84
- package/dist/cli/commands/orchestration.js.map +0 -1
- package/dist/cli/commands/wave2-extras.d.ts +0 -7
- package/dist/cli/commands/wave2-extras.d.ts.map +0 -1
- package/dist/cli/commands/wave2-extras.js +0 -87
- package/dist/cli/commands/wave2-extras.js.map +0 -1
- package/dist/cli/commands/wave2-final.d.ts +0 -8
- package/dist/cli/commands/wave2-final.d.ts.map +0 -1
- package/dist/cli/commands/wave2-final.js +0 -134
- package/dist/cli/commands/wave2-final.js.map +0 -1
- package/dist/cli/commands/wave4d-simple.d.ts +0 -6
- package/dist/cli/commands/wave4d-simple.d.ts.map +0 -1
- package/dist/cli/commands/wave4d-simple.js +0 -138
- package/dist/cli/commands/wave4d-simple.js.map +0 -1
- package/dist/cli/tui/components/action-modal.d.ts +0 -33
- package/dist/cli/tui/components/action-modal.d.ts.map +0 -1
- package/dist/cli/tui/components/action-modal.js +0 -41
- package/dist/cli/tui/components/action-modal.js.map +0 -1
- package/dist/cli/tui/components/confirm-modal.d.ts +0 -12
- package/dist/cli/tui/components/confirm-modal.d.ts.map +0 -1
- package/dist/cli/tui/components/confirm-modal.js +0 -18
- package/dist/cli/tui/components/confirm-modal.js.map +0 -1
- package/dist/cli/tui/components/connections-grid.d.ts +0 -8
- package/dist/cli/tui/components/connections-grid.d.ts.map +0 -1
- package/dist/cli/tui/components/connections-grid.js +0 -55
- package/dist/cli/tui/components/connections-grid.js.map +0 -1
- package/dist/cli/tui/components/connections-table.d.ts +0 -5
- package/dist/cli/tui/components/connections-table.d.ts.map +0 -1
- package/dist/cli/tui/components/connections-table.js +0 -11
- package/dist/cli/tui/components/connections-table.js.map +0 -1
- package/dist/cli/tui/components/footer.d.ts +0 -4
- package/dist/cli/tui/components/footer.d.ts.map +0 -1
- package/dist/cli/tui/components/footer.js +0 -6
- package/dist/cli/tui/components/footer.js.map +0 -1
- package/dist/cli/tui/components/frame-box.d.ts +0 -10
- package/dist/cli/tui/components/frame-box.d.ts.map +0 -1
- package/dist/cli/tui/components/frame-box.js +0 -9
- package/dist/cli/tui/components/frame-box.js.map +0 -1
- package/dist/cli/tui/components/header.d.ts +0 -14
- package/dist/cli/tui/components/header.d.ts.map +0 -1
- package/dist/cli/tui/components/header.js +0 -21
- package/dist/cli/tui/components/header.js.map +0 -1
- package/dist/cli/tui/components/host-chip.d.ts +0 -28
- package/dist/cli/tui/components/host-chip.d.ts.map +0 -1
- package/dist/cli/tui/components/host-chip.js +0 -35
- package/dist/cli/tui/components/host-chip.js.map +0 -1
- package/dist/cli/tui/components/keymap-bar.d.ts +0 -17
- package/dist/cli/tui/components/keymap-bar.d.ts.map +0 -1
- package/dist/cli/tui/components/keymap-bar.js +0 -13
- package/dist/cli/tui/components/keymap-bar.js.map +0 -1
- package/dist/cli/tui/components/pill.d.ts +0 -16
- package/dist/cli/tui/components/pill.d.ts.map +0 -1
- package/dist/cli/tui/components/pill.js +0 -24
- package/dist/cli/tui/components/pill.js.map +0 -1
- package/dist/cli/tui/components/sectioned-menu.d.ts +0 -24
- package/dist/cli/tui/components/sectioned-menu.d.ts.map +0 -1
- package/dist/cli/tui/components/sectioned-menu.js +0 -72
- package/dist/cli/tui/components/sectioned-menu.js.map +0 -1
- package/dist/cli/tui/components/tab-bar.d.ts +0 -23
- package/dist/cli/tui/components/tab-bar.d.ts.map +0 -1
- package/dist/cli/tui/components/tab-bar.js +0 -17
- package/dist/cli/tui/components/tab-bar.js.map +0 -1
- package/dist/cli/tui/screens/main-menu.d.ts +0 -8
- package/dist/cli/tui/screens/main-menu.d.ts.map +0 -1
- package/dist/cli/tui/screens/main-menu.js +0 -24
- package/dist/cli/tui/screens/main-menu.js.map +0 -1
- package/dist/cli/tui/screens/mcp-done.d.ts +0 -10
- package/dist/cli/tui/screens/mcp-done.d.ts.map +0 -1
- package/dist/cli/tui/screens/mcp-done.js +0 -24
- package/dist/cli/tui/screens/mcp-done.js.map +0 -1
- package/dist/cli/tui/screens/mcp-wizard.d.ts +0 -10
- package/dist/cli/tui/screens/mcp-wizard.d.ts.map +0 -1
- package/dist/cli/tui/screens/mcp-wizard.js +0 -97
- package/dist/cli/tui/screens/mcp-wizard.js.map +0 -1
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from "ink";
|
|
3
|
-
import { colors } from "../theme.js";
|
|
4
|
-
const TONE_TO_BORDER = {
|
|
5
|
-
warning: colors.warning,
|
|
6
|
-
danger: colors.error,
|
|
7
|
-
info: colors.info,
|
|
8
|
-
};
|
|
9
|
-
const TONE_TO_ICON = {
|
|
10
|
-
warning: "⚠",
|
|
11
|
-
danger: "⚠",
|
|
12
|
-
info: "ⓘ",
|
|
13
|
-
};
|
|
14
|
-
export function ConfirmModal({ tone, title, body, confirmKey, cancelKey, confirmLabel, cancelLabel, }) {
|
|
15
|
-
const lines = Array.isArray(body) ? body : [body];
|
|
16
|
-
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: TONE_TO_BORDER[tone], paddingX: 2, paddingY: 1, children: [_jsx(Box, { children: _jsxs(Text, { color: TONE_TO_BORDER[tone], bold: true, children: [TONE_TO_ICON[tone], " ", title] }) }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: lines.map((line) => (_jsx(Text, { color: colors.fg, children: line }, line))) }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { color: TONE_TO_BORDER[tone], bold: true, children: confirmKey }), _jsx(Text, { color: colors.fgMoreSubtle, children: " " }), _jsx(Text, { color: colors.fg, children: confirmLabel })] }), _jsxs(Box, { children: [_jsx(Text, { color: colors.fgSubtle, bold: true, children: cancelKey }), _jsx(Text, { color: colors.fgMoreSubtle, children: " " }), _jsx(Text, { color: colors.fgSubtle, children: cancelLabel })] })] })] }));
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=confirm-modal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"confirm-modal.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/confirm-modal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,MAAM,cAAc,GAAgC;IAClD,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC,IAAI;CAClB,CAAC;AAEF,MAAM,YAAY,GAAgC;IAChD,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,IAAI,EAAE,GAAG;CACV,CAAC;AAYF,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,GACO;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,EACjC,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,aAEX,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,mBACpC,YAAY,CAAC,IAAI,CAAC,OAAG,KAAK,IACtB,GACH,EACN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,YACtC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,IAAI,IAAY,KAAK,EAAE,MAAM,CAAC,EAAE,YAC9B,IAAI,IADI,IAAI,CAER,CACR,CAAC,GACE,EACN,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACvC,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,kBACpC,UAAU,GACN,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,kBAAU,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,EAAE,YAAG,YAAY,GAAQ,IACzC,EACN,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,kBAC/B,SAAS,GACL,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,kBAAU,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,YAAG,WAAW,GAAQ,IAC9C,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { SelfMcpConnectionView } from "../../../application/self/mcp-config.js";
|
|
2
|
-
export interface ConnectionsGridProps {
|
|
3
|
-
connections: SelfMcpConnectionView[];
|
|
4
|
-
cursor: number;
|
|
5
|
-
isActive: boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare function ConnectionsGrid({ connections, cursor, isActive }: ConnectionsGridProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
//# sourceMappingURL=connections-grid.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connections-grid.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/connections-grid.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAerF,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CA+DtF"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from "ink";
|
|
3
|
-
import { colors, icons } from "../theme.js";
|
|
4
|
-
const STATUS_ICON = {
|
|
5
|
-
si: icons.check,
|
|
6
|
-
no: "–",
|
|
7
|
-
drift: "!",
|
|
8
|
-
};
|
|
9
|
-
const STATUS_COLOR = {
|
|
10
|
-
si: colors.success,
|
|
11
|
-
no: colors.fgMoreSubtle,
|
|
12
|
-
drift: colors.warning,
|
|
13
|
-
};
|
|
14
|
-
export function ConnectionsGrid({ connections, cursor, isActive }) {
|
|
15
|
-
if (connections.length === 0) {
|
|
16
|
-
return (_jsx(Box, { children: _jsxs(Text, { color: colors.fgMoreSubtle, italic: true, children: ["(no registered connections \u2014 press", " ", _jsx(Text, { color: colors.accent, bold: true, children: "n" }), " ", "to create one)"] }) }));
|
|
17
|
-
}
|
|
18
|
-
const widths = computeColumnWidths(connections);
|
|
19
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { color: colors.fgMoreSubtle, children: " " }), _jsx(ColumnHeader, { text: "name", width: widths.name }), _jsx(Spacer, {}), _jsx(ColumnHeader, { text: "DSN var", width: widths.dsn }), _jsx(Spacer, {}), _jsx(ColumnHeader, { text: "Claude", width: widths.claude }), _jsx(Spacer, {}), _jsx(ColumnHeader, { text: "Codex", width: widths.codex }), _jsx(Spacer, {}), _jsx(ColumnHeader, { text: "Warp", width: widths.warp })] }), _jsxs(Box, { children: [_jsx(Text, { color: colors.fgMoreSubtle, children: " " }), _jsx(Text, { color: colors.fgMoreSubtle, children: "─".repeat(widths.name + widths.dsn + widths.claude + widths.codex + widths.warp + 8) })] }), connections.map((c, i) => {
|
|
20
|
-
const focused = isActive && i === cursor;
|
|
21
|
-
const labelColor = focused ? colors.fg : colors.fgSubtle;
|
|
22
|
-
return (_jsxs(Box, { children: [_jsx(Text, { color: focused ? colors.primary : colors.fgMoreSubtle, bold: focused, children: focused ? icons.focusBullet : " " }), _jsx(Text, { color: labelColor, ...(focused ? { bold: true } : {}), children: pad(c.nombre, widths.name) }), _jsx(Spacer, {}), _jsx(Text, { color: colors.fgSubtle, children: pad(c.dsn_var, widths.dsn) }), _jsx(Spacer, {}), _jsx(StatusCell, { status: c.instalado.claude_code, width: widths.claude }), _jsx(Spacer, {}), _jsx(StatusCell, { status: c.instalado.codex, width: widths.codex }), _jsx(Spacer, {}), _jsx(StatusCell, { status: c.instalado.warp, width: widths.warp })] }, c.nombre));
|
|
23
|
-
})] }));
|
|
24
|
-
}
|
|
25
|
-
function ColumnHeader({ text, width }) {
|
|
26
|
-
return (_jsx(Text, { color: colors.fgMoreSubtle, bold: true, children: pad(text, width) }));
|
|
27
|
-
}
|
|
28
|
-
function StatusCell({ status, width, }) {
|
|
29
|
-
const icon = STATUS_ICON[status];
|
|
30
|
-
const color = STATUS_COLOR[status];
|
|
31
|
-
const padded = centerPad(icon, width);
|
|
32
|
-
return (_jsx(Text, { color: color, bold: status === "si", children: padded }));
|
|
33
|
-
}
|
|
34
|
-
function Spacer() {
|
|
35
|
-
return _jsx(Text, { children: " " });
|
|
36
|
-
}
|
|
37
|
-
function pad(text, width) {
|
|
38
|
-
if (text.length >= width)
|
|
39
|
-
return text;
|
|
40
|
-
return text + " ".repeat(width - text.length);
|
|
41
|
-
}
|
|
42
|
-
function centerPad(text, width) {
|
|
43
|
-
if (text.length >= width)
|
|
44
|
-
return text;
|
|
45
|
-
const total = width - text.length;
|
|
46
|
-
const left = Math.floor(total / 2);
|
|
47
|
-
const right = total - left;
|
|
48
|
-
return " ".repeat(left) + text + " ".repeat(right);
|
|
49
|
-
}
|
|
50
|
-
function computeColumnWidths(connections) {
|
|
51
|
-
const name = Math.max("name".length, ...connections.map((c) => c.nombre.length));
|
|
52
|
-
const dsn = Math.max("DSN var".length, ...connections.map((c) => c.dsn_var.length));
|
|
53
|
-
return { name, dsn, claude: "Claude".length, codex: "Codex".length, warp: "Warp".length };
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=connections-grid.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connections-grid.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/connections-grid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { type SelfMcpConnectionView } from "../../../application/self/mcp-config.js";
|
|
2
|
-
export declare function ConnectionsTable({ connections }: {
|
|
3
|
-
connections: SelfMcpConnectionView[];
|
|
4
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
5
|
-
//# sourceMappingURL=connections-table.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connections-table.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/connections-table.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,yCAAyC,CAAC;AAGjD,wBAAgB,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,qBAAqB,EAAE,CAAA;CAAE,2CAWzF"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from "ink";
|
|
3
|
-
import { formatConnectionsTable, } from "../../../application/self/mcp-config.js";
|
|
4
|
-
import { colors } from "../theme.js";
|
|
5
|
-
export function ConnectionsTable({ connections }) {
|
|
6
|
-
if (connections.length === 0) {
|
|
7
|
-
return (_jsx(Box, { children: _jsx(Text, { color: colors.fgMoreSubtle, italic: true, children: "(no registered connections)" }) }));
|
|
8
|
-
}
|
|
9
|
-
return _jsx(Text, { color: colors.fgSubtle, children: formatConnectionsTable(connections) });
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=connections-table.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connections-table.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/connections-table.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAEL,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,gBAAgB,CAAC,EAAE,WAAW,EAA4C;IACxF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CACL,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,kDAEjC,GACH,CACP,CAAC;IACJ,CAAC;IACD,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,YAAG,sBAAsB,CAAC,WAAW,CAAC,GAAQ,CAAC;AACpF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/footer.tsx"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,2CAMhD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/footer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,MAAM,UAAU,MAAM,CAAC,EAAE,IAAI,EAAoB;IAC/C,OAAO,CACL,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,IAAI,GAAQ,GAC5B,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
2
|
-
export interface FrameBoxProps {
|
|
3
|
-
title?: string;
|
|
4
|
-
accent?: boolean;
|
|
5
|
-
dim?: boolean;
|
|
6
|
-
children: ReactNode;
|
|
7
|
-
marginBottom?: number;
|
|
8
|
-
}
|
|
9
|
-
export declare function FrameBox({ title, accent, dim, children, marginBottom, }: FrameBoxProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
//# sourceMappingURL=frame-box.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frame-box.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/frame-box.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,MAAc,EACd,GAAW,EACX,QAAQ,EACR,YAAgB,GACjB,EAAE,aAAa,2CAgBf"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from "ink";
|
|
3
|
-
import { colors } from "../theme.js";
|
|
4
|
-
export function FrameBox({ title, accent = false, dim = false, children, marginBottom = 1, }) {
|
|
5
|
-
const borderColor = accent ? colors.borderActive : dim ? colors.borderFaint : colors.border;
|
|
6
|
-
const titleColor = accent ? colors.accent : colors.fgMoreSubtle;
|
|
7
|
-
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: borderColor, paddingX: 1, marginBottom: marginBottom, children: [title ? _jsx(Text, { color: titleColor, children: title.toUpperCase() }) : null, _jsx(Box, { flexDirection: "column", children: children })] }));
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=frame-box.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frame-box.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/frame-box.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrC,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,MAAM,GAAG,KAAK,EACd,GAAG,GAAG,KAAK,EACX,QAAQ,EACR,YAAY,GAAG,CAAC,GACF;IACd,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5F,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;IAEhE,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,EACX,YAAY,EAAE,YAAY,aAEzB,KAAK,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,YAAG,KAAK,CAAC,WAAW,EAAE,GAAQ,CAAC,CAAC,CAAC,IAAI,EACrE,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YAAE,QAAQ,GAAO,IACxC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export interface HeaderProps {
|
|
2
|
-
version: string;
|
|
3
|
-
cwd?: string;
|
|
4
|
-
homeDir?: string;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Header — minimal chrome superior.
|
|
8
|
-
*
|
|
9
|
-
* Izquierda: diamante + name + version. Derecha: path corto.
|
|
10
|
-
* Sin "live indicator" — ruido innecesario.
|
|
11
|
-
*/
|
|
12
|
-
export declare function Header({ version, cwd, homeDir }: HeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export declare function prettyPath(cwd: string, homeDir?: string): string;
|
|
14
|
-
//# sourceMappingURL=header.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,21 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from "ink";
|
|
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
|
-
*/
|
|
10
|
-
export function Header({ version, cwd, homeDir }) {
|
|
11
|
-
const path = cwd ? prettyPath(cwd, homeDir) : undefined;
|
|
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] }));
|
|
13
|
-
}
|
|
14
|
-
export function prettyPath(cwd, homeDir) {
|
|
15
|
-
if (homeDir && cwd.startsWith(homeDir)) {
|
|
16
|
-
const rest = cwd.slice(homeDir.length);
|
|
17
|
-
return `~${rest}`;
|
|
18
|
-
}
|
|
19
|
-
return cwd;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=header.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export interface KeymapEntry {
|
|
2
|
-
key: string;
|
|
3
|
-
action: string;
|
|
4
|
-
/** Si true, el key se renderiza en accent bold (para Ctrl+K, Enter, etc) */
|
|
5
|
-
accent?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export interface KeymapBarProps {
|
|
8
|
-
entries: KeymapEntry[];
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* KeymapBar — footer minimal con los atajos del tab activo.
|
|
12
|
-
*
|
|
13
|
-
* Una sola línea: `key label · key label · …`. Sin palette hint a la derecha
|
|
14
|
-
* (la entry de Ctrl+K va en la lista normal cuando aplica).
|
|
15
|
-
*/
|
|
16
|
-
export declare function KeymapBar({ entries }: KeymapBarProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
-
//# sourceMappingURL=keymap-bar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keymap-bar.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/keymap-bar.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,cAAc,2CAiBpD"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from "ink";
|
|
3
|
-
import { colors } from "../theme.js";
|
|
4
|
-
/**
|
|
5
|
-
* KeymapBar — footer minimal con los atajos del tab activo.
|
|
6
|
-
*
|
|
7
|
-
* Una sola línea: `key label · key label · …`. Sin palette hint a la derecha
|
|
8
|
-
* (la entry de Ctrl+K va en la lista normal cuando aplica).
|
|
9
|
-
*/
|
|
10
|
-
export function KeymapBar({ entries }) {
|
|
11
|
-
return (_jsx(Box, { marginTop: 1, children: entries.map((entry, idx) => (_jsxs(Box, { children: [idx > 0 ? _jsx(Text, { color: colors.fgFaint, children: " \u00B7 " }) : null, _jsx(Text, { color: entry.accent ? colors.accent : colors.fgSubtle, ...(entry.accent ? { bold: true } : {}), children: entry.key }), _jsxs(Text, { color: colors.fgMoreSubtle, children: [" ", entry.action] })] }, `${entry.key}-${entry.action}`))) }));
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=keymap-bar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keymap-bar.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/keymap-bar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAarC;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,OAAO,EAAkB;IACnD,OAAO,CACL,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACd,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3B,MAAC,GAAG,eACD,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,yBAAY,CAAC,CAAC,CAAC,IAAI,EACzD,KAAC,IAAI,IACH,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KACjD,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAEvC,KAAK,CAAC,GAAG,GACL,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,kBAAI,KAAK,CAAC,MAAM,IAAQ,KARhD,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CASlC,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export type PillTone = "ok" | "warn" | "err" | "info" | "muted" | "accent";
|
|
2
|
-
export interface PillProps {
|
|
3
|
-
tone?: PillTone;
|
|
4
|
-
children: string;
|
|
5
|
-
/** Si true, mantiene case del texto; default lo deja en lowercase. */
|
|
6
|
-
preserveCase?: boolean;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Pill — etiqueta corta tipo `[label]` con tono de color.
|
|
10
|
-
*
|
|
11
|
-
* Ink no permite `border-radius` ni `background-color` arbitrario en todos los
|
|
12
|
-
* terminales — usamos paréntesis cuadrados y color de texto para señalizar el
|
|
13
|
-
* tono. Mantiene la legibilidad y respeta la paleta sobria.
|
|
14
|
-
*/
|
|
15
|
-
export declare function Pill({ tone, children, preserveCase }: PillProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
//# sourceMappingURL=pill.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pill.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/pill.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3E,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,EAAE,IAAc,EAAE,QAAQ,EAAE,YAAoB,EAAE,EAAE,SAAS,2CAUjF"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Text } from "ink";
|
|
3
|
-
import { colors } from "../theme.js";
|
|
4
|
-
/**
|
|
5
|
-
* Pill — etiqueta corta tipo `[label]` con tono de color.
|
|
6
|
-
*
|
|
7
|
-
* Ink no permite `border-radius` ni `background-color` arbitrario en todos los
|
|
8
|
-
* terminales — usamos paréntesis cuadrados y color de texto para señalizar el
|
|
9
|
-
* tono. Mantiene la legibilidad y respeta la paleta sobria.
|
|
10
|
-
*/
|
|
11
|
-
export function Pill({ tone = "muted", children, preserveCase = false }) {
|
|
12
|
-
const color = TONE_COLOR[tone];
|
|
13
|
-
const text = preserveCase ? children : children.toLowerCase();
|
|
14
|
-
return (_jsxs(Text, { color: color, children: ["[", text, "]"] }));
|
|
15
|
-
}
|
|
16
|
-
const TONE_COLOR = {
|
|
17
|
-
ok: colors.success,
|
|
18
|
-
warn: colors.warning,
|
|
19
|
-
err: colors.error,
|
|
20
|
-
info: colors.info,
|
|
21
|
-
muted: colors.fgMoreSubtle,
|
|
22
|
-
accent: colors.accent,
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=pill.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pill.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/pill.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAWrC;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,QAAQ,EAAE,YAAY,GAAG,KAAK,EAAa;IAChF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC9D,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,aACf,GAAG,EACH,IAAI,EACJ,GAAG,IACC,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAA6B;IAC3C,EAAE,EAAE,MAAM,CAAC,OAAO;IAClB,IAAI,EAAE,MAAM,CAAC,OAAO;IACpB,GAAG,EAAE,MAAM,CAAC,KAAK;IACjB,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,KAAK,EAAE,MAAM,CAAC,YAAY;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { type ColorName } from "../theme.js";
|
|
2
|
-
export interface MenuItemTrailing {
|
|
3
|
-
icon: string;
|
|
4
|
-
color: ColorName;
|
|
5
|
-
text?: string;
|
|
6
|
-
}
|
|
7
|
-
export type MenuItem<T extends string> = {
|
|
8
|
-
kind: "item";
|
|
9
|
-
label: string;
|
|
10
|
-
value: T;
|
|
11
|
-
description?: string;
|
|
12
|
-
trailing?: MenuItemTrailing;
|
|
13
|
-
} | {
|
|
14
|
-
kind: "section";
|
|
15
|
-
label?: string;
|
|
16
|
-
};
|
|
17
|
-
export interface SectionedMenuProps<T extends string> {
|
|
18
|
-
items: MenuItem<T>[];
|
|
19
|
-
onSelect: (value: T) => void;
|
|
20
|
-
isActive?: boolean;
|
|
21
|
-
defaultValue?: T;
|
|
22
|
-
}
|
|
23
|
-
export declare function SectionedMenu<T extends string>(props: SectionedMenuProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
24
|
-
//# sourceMappingURL=sectioned-menu.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sectioned-menu.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/sectioned-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,aAAa,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,IACjC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM;IAClD,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,2CAyD3E"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text, useInput } from "ink";
|
|
3
|
-
import { useEffect, useState } from "react";
|
|
4
|
-
import { colors, icons } from "../theme.js";
|
|
5
|
-
export function SectionedMenu(props) {
|
|
6
|
-
const { items, onSelect, isActive = true, defaultValue } = props;
|
|
7
|
-
const selectables = items
|
|
8
|
-
.map((item, index) => ({ item, index }))
|
|
9
|
-
.filter((entry) => {
|
|
10
|
-
return entry.item.kind === "item";
|
|
11
|
-
});
|
|
12
|
-
const initialFocus = (() => {
|
|
13
|
-
if (defaultValue === undefined)
|
|
14
|
-
return 0;
|
|
15
|
-
const found = selectables.findIndex((entry) => entry.item.value === defaultValue);
|
|
16
|
-
return found >= 0 ? found : 0;
|
|
17
|
-
})();
|
|
18
|
-
const [focused, setFocused] = useState(initialFocus);
|
|
19
|
-
// Clamp defensivo: si los items cambian y el focus queda fuera de rango,
|
|
20
|
-
// re-anclar al último seleccionable. Cubre menus dinámicos.
|
|
21
|
-
useEffect(() => {
|
|
22
|
-
if (selectables.length === 0)
|
|
23
|
-
return;
|
|
24
|
-
if (focused >= selectables.length) {
|
|
25
|
-
setFocused(selectables.length - 1);
|
|
26
|
-
}
|
|
27
|
-
}, [selectables.length, focused]);
|
|
28
|
-
useInput((_, key) => {
|
|
29
|
-
if (selectables.length === 0)
|
|
30
|
-
return;
|
|
31
|
-
if (key.upArrow) {
|
|
32
|
-
setFocused((current) => (current - 1 + selectables.length) % selectables.length);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (key.downArrow) {
|
|
36
|
-
setFocused((current) => (current + 1) % selectables.length);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (key.return) {
|
|
40
|
-
const target = selectables[focused];
|
|
41
|
-
if (target)
|
|
42
|
-
onSelect(target.item.value);
|
|
43
|
-
}
|
|
44
|
-
}, { isActive });
|
|
45
|
-
const keyedItems = computeStableKeys(items);
|
|
46
|
-
const focusedIndex = selectables[focused]?.index;
|
|
47
|
-
return (_jsx(Box, { flexDirection: "column", children: keyedItems.map(({ item, index, key }) => {
|
|
48
|
-
if (item.kind === "section") {
|
|
49
|
-
return _jsx(SectionRow, { label: item.label }, key);
|
|
50
|
-
}
|
|
51
|
-
return _jsx(ItemRow, { item: item, isFocused: index === focusedIndex }, key);
|
|
52
|
-
}) }));
|
|
53
|
-
}
|
|
54
|
-
function SectionRow({ label }) {
|
|
55
|
-
if (!label)
|
|
56
|
-
return _jsx(Text, { children: " " });
|
|
57
|
-
return (_jsxs(Box, { marginTop: 1, children: [_jsxs(Text, { color: colors.fgMoreSubtle, children: [icons.section.repeat(2), " "] }), _jsx(Text, { color: colors.accent, bold: true, children: label })] }));
|
|
58
|
-
}
|
|
59
|
-
function ItemRow({ item, isFocused, }) {
|
|
60
|
-
const trailing = item.trailing;
|
|
61
|
-
return (_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Box, { children: [_jsx(Text, { color: isFocused ? colors.primary : colors.fgMoreSubtle, bold: isFocused, children: isFocused ? `${icons.focusBullet} ` : `${icons.dimBullet} ` }), _jsx(Text, { ...(isFocused ? { color: colors.fg, bold: true } : { color: colors.fgSubtle }), children: item.label })] }), trailing ? (_jsxs(Text, { color: trailing.color, children: [trailing.icon, trailing.text ? ` ${trailing.text}` : ""] })) : null] }));
|
|
62
|
-
}
|
|
63
|
-
function computeStableKeys(items) {
|
|
64
|
-
const counters = new Map();
|
|
65
|
-
return items.map((item, index) => {
|
|
66
|
-
const base = item.kind === "item" ? `i:${item.value}` : `s:${item.label ?? "blank"}`;
|
|
67
|
-
const seen = counters.get(base) ?? 0;
|
|
68
|
-
counters.set(base, seen + 1);
|
|
69
|
-
return { item, index, key: seen === 0 ? base : `${base}#${seen}` };
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=sectioned-menu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sectioned-menu.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/sectioned-menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface TabDescriptor<T extends string> {
|
|
2
|
-
id: T;
|
|
3
|
-
label: string;
|
|
4
|
-
/** Atajo numérico (1-6). Se renderiza dim antes del label. */
|
|
5
|
-
key?: string;
|
|
6
|
-
/** Texto del badge — solo se muestra cuando es relevante. */
|
|
7
|
-
badge?: string;
|
|
8
|
-
/** Dot alert al final del label si hay novedades. */
|
|
9
|
-
alert?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export interface TabBarProps<T extends string> {
|
|
12
|
-
tabs: TabDescriptor<T>[];
|
|
13
|
-
activeId: T;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* TabBar minimal — `key label` por tab.
|
|
17
|
-
*
|
|
18
|
-
* Active = label inverse (fondo accent + texto bg) — destaca como un chip.
|
|
19
|
-
* Inactive = label mute + key faint.
|
|
20
|
-
* Badge dim opcional. Alert dot rojo opcional.
|
|
21
|
-
*/
|
|
22
|
-
export declare function TabBar<T extends string>({ tabs, activeId }: TabBarProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
//# sourceMappingURL=tab-bar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tab-bar.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/components/tab-bar.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM;IAC7C,EAAE,EAAE,CAAC,CAAC;IACN,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC3C,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC;CACb;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,2CAuB1E"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from "ink";
|
|
3
|
-
import { colors } from "../theme.js";
|
|
4
|
-
/**
|
|
5
|
-
* TabBar minimal — `key label` por tab.
|
|
6
|
-
*
|
|
7
|
-
* Active = label inverse (fondo accent + texto bg) — destaca como un chip.
|
|
8
|
-
* Inactive = label mute + key faint.
|
|
9
|
-
* Badge dim opcional. Alert dot rojo opcional.
|
|
10
|
-
*/
|
|
11
|
-
export function TabBar({ tabs, activeId }) {
|
|
12
|
-
return (_jsx(Box, { marginBottom: 1, children: tabs.map((tab, idx) => {
|
|
13
|
-
const isActive = tab.id === activeId;
|
|
14
|
-
return (_jsxs(Box, { marginLeft: idx === 0 ? 0 : 2, children: [tab.key ? (_jsxs(Text, { color: isActive ? colors.accent : colors.fgFaint, children: [tab.key, " "] })) : null, _jsx(Text, { color: isActive ? colors.accent : colors.fgSubtle, ...(isActive ? { bold: true, inverse: true } : {}), children: isActive ? ` ${tab.label} ` : tab.label }), tab.badge !== undefined ? _jsxs(Text, { color: colors.fgFaint, children: [" ", tab.badge] }) : null, tab.alert ? _jsx(Text, { color: colors.error, children: " \u2022" }) : null] }, tab.id));
|
|
15
|
-
}) }));
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=tab-bar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tab-bar.js","sourceRoot":"","sources":["../../../../src/cli/tui/components/tab-bar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAkBrC;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAmB,EAAE,IAAI,EAAE,QAAQ,EAAkB;IACzE,OAAO,CACL,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC;YACrC,OAAO,CACL,MAAC,GAAG,IAAc,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAC5C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CACT,MAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,aAAG,GAAG,CAAC,GAAG,SAAS,CAC1E,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAC7C,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAElD,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GACnC,EACN,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,kBAAI,GAAG,CAAC,KAAK,IAAQ,CAAC,CAAC,CAAC,IAAI,EACjF,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,wBAAW,CAAC,CAAC,CAAC,IAAI,KAXhD,GAAG,CAAC,EAAE,CAYV,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { MenuAction } from "../../interactive-menu.js";
|
|
2
|
-
export interface MainMenuProps {
|
|
3
|
-
version: string;
|
|
4
|
-
onSelect: (action: MenuAction) => void;
|
|
5
|
-
isActive?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare function MainMenu({ version, onSelect, isActive }: MainMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
//# sourceMappingURL=main-menu.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main-menu.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/screens/main-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAkB5D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAe,EAAE,EAAE,aAAa,2CAc7E"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Header } from "../components/header.js";
|
|
3
|
-
import { KeymapBar } from "../components/keymap-bar.js";
|
|
4
|
-
import { ScreenFrame } from "../components/screen-frame.js";
|
|
5
|
-
import { SectionedMenu } from "../components/sectioned-menu.js";
|
|
6
|
-
const MENU_ITEMS = [
|
|
7
|
-
{ kind: "section", label: "Verificar / configurar" },
|
|
8
|
-
{ kind: "item", label: "Doctor (verificar instalación)", value: "doctor" },
|
|
9
|
-
{ kind: "item", label: "Install / Update skill (manager bundled)", value: "install-skill" },
|
|
10
|
-
{ kind: "item", label: "Configurar MCP database (dbhub)", value: "mcp" },
|
|
11
|
-
{ kind: "section", label: "Mantenimiento" },
|
|
12
|
-
{ kind: "item", label: "Update CLI (npm i -g @tacuchi/agent-workflow-cli)", value: "update" },
|
|
13
|
-
{ kind: "item", label: "Help (lista de comandos)", value: "help" },
|
|
14
|
-
{ kind: "section" },
|
|
15
|
-
{ kind: "item", label: "Salir", value: "exit" },
|
|
16
|
-
];
|
|
17
|
-
export function MainMenu({ version, onSelect, isActive = true }) {
|
|
18
|
-
return (_jsxs(ScreenFrame, { children: [_jsx(Header, { version: version, subtitle: "Men\u00FA principal" }), _jsx(SectionedMenu, { items: MENU_ITEMS, onSelect: onSelect, isActive: isActive }), _jsx(KeymapBar, { entries: [
|
|
19
|
-
{ key: "↑↓", action: "navegar" },
|
|
20
|
-
{ key: "⏎", action: "seleccionar" },
|
|
21
|
-
{ key: "^C", action: "salir" },
|
|
22
|
-
] })] }));
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=main-menu.js.map
|