s-app-scoder-agent 0.8.7 → 0.8.19
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/tui/app.js +1 -1
- package/dist/tui/input.js +1 -1
- package/package.json +1 -1
package/dist/tui/app.js
CHANGED
|
@@ -598,7 +598,7 @@ export function TuiApp({ config, initialTask }) {
|
|
|
598
598
|
// flexShrink={0}: pinned chrome must never be squeezed when the chat
|
|
599
599
|
// content overflows — Ink defaults every box to flexShrink:1, which
|
|
600
600
|
// shrank the input bar to zero rows once the log outgrew the terminal.
|
|
601
|
-
_jsxs(Box, { flexDirection: "column", height: rows || 24, flexShrink: 0, children: [_jsx(BuildRail, { state: state, config: config }), _jsxs(Box, { flexDirection: "row", flexGrow: 1, flexShrink: 1, minHeight: 0, children: [_jsx(Box, { ref: viewportRef, flexDirection: "column", flexGrow: 1, flexShrink: 1, minHeight: 0, overflow: "hidden", contentOffsetY: scrollTop, children: _jsxs(Box, { ref: contentRef, flexDirection: "column", paddingX: 1, flexShrink: 0, children: [state.items.length === 0 ? (_jsxs(Box, { flexDirection: "column", alignItems: "center", justifyContent: "center", flexGrow: 1, children: [_jsx(Text, { bold: true, color: theme.brand, children: "\u2691 SCoder" }), _jsx(Text, { dimColor: true, children: `autonomous coding agent · v${getVersion()}` }), _jsx(Text, {}), _jsx(Text, { dimColor: true, children: "type a task to start \u2014 agent plans, edits, and builds" }), _jsx(Text, {}), _jsxs(Text, { dimColor: true, children: ["\u23CE send \u00B7 ", _jsx(Text, { bold: true, children: "ctrl+s" }), " sessions \u00B7 tab complete \u00B7 /help \u00B7 /skills"] })] })) : (state.items.map((item, i) => _jsx(ChatItemView, { item: item }, i))), lastSummary && (_jsx(Box, { marginTop: 1, children: state.status === "success" ? (_jsxs(Text, { color: "green", bold: true, children: ["\u2714 ", lastSummary] })) : state.status === "aborted" ? (_jsxs(Text, { color: "yellow", bold: true, children: ["\u23F9 ", lastSummary] })) : (_jsxs(Text, { color: "red", bold: true, children: ["\u2718 ", lastSummary] })) }))] }) }), showSidebar && _jsx(Sidebar, { state: state, config: config })] }), sessionPickerOpen && (_jsx(SessionPicker, { workdir: config.workdir, onSelect: handleSessionSelect, onClose: () => setSessionPickerOpen(false) })), permPrompt && _jsx(PermissionModal, { prompt: permPrompt }), _jsx(Box, { paddingX: 1, flexShrink: 0, children: _jsx(Input, { valueRef: inputRef, value: input, onChange: writeInput, onSubmit: (v) => void submit(v), historyRef: historyRef, skillNames: skillNames, agentRef: agentRef, config: config, atSources: atSources, modalRef: permPromptRef }) }), _jsx(StatusBar, { state: state, scroll: scrollOffset > 0 ? `↑ ${Math.min(scrollOffset, maxScroll)}/${maxScroll}` : null })] }));
|
|
601
|
+
_jsxs(Box, { flexDirection: "column", height: rows || 24, flexShrink: 0, children: [_jsx(BuildRail, { state: state, config: config }), _jsxs(Box, { flexDirection: "row", flexGrow: 1, flexShrink: 1, minHeight: 0, children: [_jsx(Box, { ref: viewportRef, flexDirection: "column", flexGrow: 1, flexShrink: 1, minHeight: 0, overflow: "hidden", contentOffsetY: scrollTop, children: _jsxs(Box, { ref: contentRef, flexDirection: "column", paddingX: 1, flexShrink: 0, children: [state.items.length === 0 ? (_jsxs(Box, { flexDirection: "column", alignItems: "center", justifyContent: "center", flexGrow: 1, children: [_jsx(Text, { bold: true, color: theme.brand, children: "\u2691 SCoder" }), _jsx(Text, { dimColor: true, children: `autonomous coding agent · v${getVersion()}` }), _jsx(Text, {}), _jsx(Text, { dimColor: true, children: "type a task to start \u2014 agent plans, edits, and builds" }), _jsx(Text, {}), _jsxs(Text, { dimColor: true, children: ["\u23CE send \u00B7 ", _jsx(Text, { bold: true, children: "ctrl+s" }), " sessions \u00B7 tab complete \u00B7 /help \u00B7 /skills"] })] })) : (state.items.map((item, i) => _jsx(ChatItemView, { item: item }, i))), lastSummary && (_jsx(Box, { marginTop: 1, children: state.status === "success" ? (_jsxs(Text, { color: "green", bold: true, children: ["\u2714 ", lastSummary] })) : state.status === "aborted" ? (_jsxs(Text, { color: "yellow", bold: true, children: ["\u23F9 ", lastSummary] })) : (_jsxs(Text, { color: "red", bold: true, children: ["\u2718 ", lastSummary] })) }))] }) }), showSidebar && _jsx(Sidebar, { state: state, config: config })] }), sessionPickerOpen && (_jsx(SessionPicker, { workdir: config.workdir, onSelect: handleSessionSelect, onClose: () => setSessionPickerOpen(false) })), permPrompt && _jsx(PermissionModal, { prompt: permPrompt }), _jsx(Box, { paddingX: 1, paddingTop: 1, paddingBottom: 1, flexShrink: 0, alignSelf: "stretch", children: _jsx(Input, { valueRef: inputRef, value: input, onChange: writeInput, onSubmit: (v) => void submit(v), historyRef: historyRef, skillNames: skillNames, agentRef: agentRef, config: config, atSources: atSources, modalRef: permPromptRef }) }), _jsx(StatusBar, { state: state, scroll: scrollOffset > 0 ? `↑ ${Math.min(scrollOffset, maxScroll)}/${maxScroll}` : null })] }));
|
|
602
602
|
}
|
|
603
603
|
/** Mount the TUI (called from the `scoder tui` subcommand). */
|
|
604
604
|
export async function runTui(config, initialTask) {
|
package/dist/tui/input.js
CHANGED
|
@@ -210,5 +210,5 @@ export function Input({ valueRef, value, onChange, onSubmit, historyRef, skillNa
|
|
|
210
210
|
const ghost = useMemo(() => (atState ? null : ghostText(value, providers)), [value, providers, atState]);
|
|
211
211
|
const ghostRef = useRef(ghost);
|
|
212
212
|
ghostRef.current = ghost;
|
|
213
|
-
return (_jsxs(Box, { flexDirection: "column", children: [at && (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, children: [at.suggestions.map((s, i) => (_jsxs(Text, { color: i === at.idx ? theme.brand : undefined, bold: i === at.idx, children: [i === at.idx ? "▸ " : " ", s] }, s))), _jsx(Text, { dimColor: true, children: " \u2191/\u2193 select \u00B7 tab/enter accept \u00B7 esc close" })] })), _jsxs(Box, { children: [_jsxs(Text, { color: theme.brand, bold: true, children: ["\u276F", " "] }), vimMode === "normal" && cursor !== null ? (_jsxs(_Fragment, { children: [_jsx(Text, { children: value.slice(0, cursor) }), _jsx(Text, { backgroundColor: "gray", color: "black", children: value[cursor] ?? " " }), _jsx(Text, { children: value.slice(cursor + 1) })] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { children: value }), ghost && _jsx(Text, { dimColor: true, children: ghost.rest }), _jsx(Text, { dimColor: true, children: "\u258C" })] }))] }), candidates && _jsxs(Text, { dimColor: true, children: [" ", candidates, " (tab completes)"] }), vimMode === "normal" && _jsx(Text, { dimColor: true, children: " -- NORMAL -- h/l/w/b/e \u00B7 x \u00B7 i/a/A insert \u00B7 \u23CE send" })] }));
|
|
213
|
+
return (_jsxs(Box, { flexDirection: "column", children: [at && (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, children: [at.suggestions.map((s, i) => (_jsxs(Text, { color: i === at.idx ? theme.brand : undefined, bold: i === at.idx, children: [i === at.idx ? "▸ " : " ", s] }, s))), _jsx(Text, { dimColor: true, children: " \u2191/\u2193 select \u00B7 tab/enter accept \u00B7 esc close" })] })), _jsxs(Box, { children: [_jsxs(Text, { color: theme.brand, bold: true, children: ["\u276F", " "] }), vimMode === "normal" && cursor !== null ? (_jsxs(_Fragment, { children: [_jsx(Text, { children: value.slice(0, cursor) }), _jsx(Text, { backgroundColor: "gray", color: "black", children: value[cursor] ?? " " }), _jsx(Text, { children: value.slice(cursor + 1) })] })) : value.length === 0 ? (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: "type a message\u2026" }), _jsx(Text, { dimColor: true, children: "\u258C" })] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { children: value }), ghost && _jsx(Text, { dimColor: true, children: ghost.rest }), _jsx(Text, { dimColor: true, children: "\u258C" })] }))] }), candidates && _jsxs(Text, { dimColor: true, children: [" ", candidates, " (tab completes)"] }), vimMode === "normal" && _jsx(Text, { dimColor: true, children: " -- NORMAL -- h/l/w/b/e \u00B7 x \u00B7 i/a/A insert \u00B7 \u23CE send" })] }));
|
|
214
214
|
}
|
package/package.json
CHANGED