@orderful/droid 0.16.0 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/CLAUDE.md +3 -43
- package/AGENTS.md +75 -0
- package/CHANGELOG.md +12 -0
- package/dist/bin/droid.js +3064 -54
- package/dist/index.js +952 -6
- package/package.json +2 -2
- package/scripts/build.ts +78 -0
- package/dist/bin/droid.js.map +0 -1
- package/dist/commands/config.js +0 -67
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/install.js +0 -45
- package/dist/commands/install.js.map +0 -1
- package/dist/commands/setup.js +0 -269
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/skills.js +0 -144
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/tui/components/Badge.js +0 -29
- package/dist/commands/tui/components/Badge.js.map +0 -1
- package/dist/commands/tui/components/Markdown.js +0 -42
- package/dist/commands/tui/components/Markdown.js.map +0 -1
- package/dist/commands/tui/components/SettingsDetails.js +0 -11
- package/dist/commands/tui/components/SettingsDetails.js.map +0 -1
- package/dist/commands/tui/components/TabBar.js +0 -7
- package/dist/commands/tui/components/TabBar.js.map +0 -1
- package/dist/commands/tui/components/ToolDetails.js +0 -35
- package/dist/commands/tui/components/ToolDetails.js.map +0 -1
- package/dist/commands/tui/components/ToolItem.js +0 -11
- package/dist/commands/tui/components/ToolItem.js.map +0 -1
- package/dist/commands/tui/constants.js +0 -17
- package/dist/commands/tui/constants.js.map +0 -1
- package/dist/commands/tui/hooks/useAppUpdate.js +0 -52
- package/dist/commands/tui/hooks/useAppUpdate.js.map +0 -1
- package/dist/commands/tui/hooks/useToolUpdates.js +0 -77
- package/dist/commands/tui/hooks/useToolUpdates.js.map +0 -1
- package/dist/commands/tui/types.js +0 -2
- package/dist/commands/tui/types.js.map +0 -1
- package/dist/commands/tui/views/ReadmeViewer.js +0 -56
- package/dist/commands/tui/views/ReadmeViewer.js.map +0 -1
- package/dist/commands/tui/views/SetupScreen.js +0 -114
- package/dist/commands/tui/views/SetupScreen.js.map +0 -1
- package/dist/commands/tui/views/SkillConfigScreen.js +0 -148
- package/dist/commands/tui/views/SkillConfigScreen.js.map +0 -1
- package/dist/commands/tui/views/ToolExplorer.js +0 -86
- package/dist/commands/tui/views/ToolExplorer.js.map +0 -1
- package/dist/commands/tui/views/ToolUpdatePrompt.js +0 -38
- package/dist/commands/tui/views/ToolUpdatePrompt.js.map +0 -1
- package/dist/commands/tui/views/WelcomeScreen.js +0 -46
- package/dist/commands/tui/views/WelcomeScreen.js.map +0 -1
- package/dist/commands/tui.js +0 -307
- package/dist/commands/tui.js.map +0 -1
- package/dist/commands/uninstall.js +0 -26
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/commands/update.js +0 -45
- package/dist/commands/update.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/agents.js +0 -248
- package/dist/lib/agents.js.map +0 -1
- package/dist/lib/config.js +0 -196
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/platforms.js +0 -52
- package/dist/lib/platforms.js.map +0 -1
- package/dist/lib/quotes.js +0 -24
- package/dist/lib/quotes.js.map +0 -1
- package/dist/lib/skill-config.js +0 -80
- package/dist/lib/skill-config.js.map +0 -1
- package/dist/lib/skills.js +0 -582
- package/dist/lib/skills.js.map +0 -1
- package/dist/lib/tools.js +0 -145
- package/dist/lib/tools.js.map +0 -1
- package/dist/lib/types.js +0 -50
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/version.js +0 -100
- package/dist/lib/version.js.map +0 -1
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { colors } from '../constants';
|
|
4
|
-
export function Badge({ type, label, isSelected = false, dimmed = false, }) {
|
|
5
|
-
const color = colors[type];
|
|
6
|
-
const displayLabel = label || type.charAt(0).toUpperCase() + type.slice(1);
|
|
7
|
-
if (dimmed) {
|
|
8
|
-
return (_jsx(Text, { color: colors.textDim, children: displayLabel }));
|
|
9
|
-
}
|
|
10
|
-
return (_jsx(Text, { backgroundColor: isSelected ? color : undefined, color: isSelected ? '#000000' : color, bold: isSelected, children: isSelected ? ` ${displayLabel} ` : displayLabel }));
|
|
11
|
-
}
|
|
12
|
-
export function ComponentBadges({ tool, compact = false }) {
|
|
13
|
-
const hasSkills = tool.includes.skills.length > 0;
|
|
14
|
-
const hasCommands = tool.includes.commands.length > 0;
|
|
15
|
-
const hasAgents = tool.includes.agents.length > 0;
|
|
16
|
-
if (compact) {
|
|
17
|
-
// Show colored squares for list view (single char with spacing)
|
|
18
|
-
const parts = [];
|
|
19
|
-
if (hasSkills)
|
|
20
|
-
parts.push('skill');
|
|
21
|
-
if (hasCommands)
|
|
22
|
-
parts.push('command');
|
|
23
|
-
if (hasAgents)
|
|
24
|
-
parts.push('agent');
|
|
25
|
-
return (_jsx(Box, { flexDirection: "row", children: parts.map((type, i) => (_jsxs(Text, { children: [_jsx(Text, { backgroundColor: colors[type], children: " " }), i < parts.length - 1 && ' '] }, type))) }));
|
|
26
|
-
}
|
|
27
|
-
return (_jsxs(Box, { flexDirection: "row", children: [hasSkills && (_jsx(Box, { marginRight: 1, children: _jsx(Text, { backgroundColor: colors.skill, color: "#000000", bold: true, children: ` ${tool.includes.skills.length} skill${tool.includes.skills.length > 1 ? 's' : ''} ` }) })), hasCommands && (_jsx(Box, { marginRight: 1, children: _jsx(Text, { backgroundColor: colors.command, color: "#000000", bold: true, children: ` ${tool.includes.commands.length} cmd${tool.includes.commands.length > 1 ? 's' : ''} ` }) })), hasAgents && (_jsx(Box, { marginRight: 1, children: _jsx(Text, { backgroundColor: colors.agent, color: "#000000", bold: true, children: ` ${tool.includes.agents.length} agent${tool.includes.agents.length > 1 ? 's' : ''} ` }) }))] }));
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=Badge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../../src/commands/tui/components/Badge.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Text } from 'ink';
|
|
3
|
-
import { colors } from '../constants';
|
|
4
|
-
export function MarkdownLine({ line, inCodeBlock }) {
|
|
5
|
-
// Code block content
|
|
6
|
-
if (inCodeBlock) {
|
|
7
|
-
return _jsx(Text, { color: "#a5d6ff", children: line || ' ' });
|
|
8
|
-
}
|
|
9
|
-
// Code block delimiter
|
|
10
|
-
if (line.startsWith('```')) {
|
|
11
|
-
return _jsx(Text, { color: colors.textDim, children: line });
|
|
12
|
-
}
|
|
13
|
-
// Headers
|
|
14
|
-
if (line.startsWith('# ')) {
|
|
15
|
-
return _jsx(Text, { color: colors.text, bold: true, children: line.slice(2) });
|
|
16
|
-
}
|
|
17
|
-
if (line.startsWith('## ')) {
|
|
18
|
-
return _jsx(Text, { color: colors.text, bold: true, children: line.slice(3) });
|
|
19
|
-
}
|
|
20
|
-
if (line.startsWith('### ')) {
|
|
21
|
-
return _jsx(Text, { color: "#c9d1d9", bold: true, children: line.slice(4) });
|
|
22
|
-
}
|
|
23
|
-
// YAML frontmatter delimiter
|
|
24
|
-
if (line === '---') {
|
|
25
|
-
return _jsx(Text, { color: colors.textDim, children: line });
|
|
26
|
-
}
|
|
27
|
-
// List items
|
|
28
|
-
if (line.match(/^[\s]*[-*]\s/)) {
|
|
29
|
-
return _jsx(Text, { color: colors.textMuted, children: line });
|
|
30
|
-
}
|
|
31
|
-
// Blockquotes
|
|
32
|
-
if (line.startsWith('>')) {
|
|
33
|
-
return _jsx(Text, { color: "#8b949e", italic: true, children: line });
|
|
34
|
-
}
|
|
35
|
-
// Table rows
|
|
36
|
-
if (line.includes('|')) {
|
|
37
|
-
return _jsx(Text, { color: colors.textMuted, children: line });
|
|
38
|
-
}
|
|
39
|
-
// Default
|
|
40
|
-
return _jsx(Text, { color: colors.textMuted, children: line || ' ' });
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=Markdown.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../../src/commands/tui/components/Markdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,WAAW,EAA0C;IACxF,qBAAqB;IACrB,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAE,IAAI,IAAI,GAAG,GAAQ,CAAC;IACpD,CAAC;IAED,uBAAuB;IACvB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAG,IAAI,GAAQ,CAAC;IACpD,CAAC;IAED,UAAU;IACV,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,kBAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAQ,CAAC;IAC/D,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,kBAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAQ,CAAC;IAC/D,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,kBAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAQ,CAAC;IAC3D,CAAC;IAED,6BAA6B;IAC7B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAG,IAAI,GAAQ,CAAC;IACpD,CAAC;IAED,aAAa;IACb,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,YAAG,IAAI,GAAQ,CAAC;IACtD,CAAC;IAED,cAAc;IACd,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,MAAM,kBAAE,IAAI,GAAQ,CAAC;IACpD,CAAC;IAED,aAAa;IACb,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,YAAG,IAAI,GAAQ,CAAC;IACtD,CAAC;IAED,UAAU;IACV,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,YAAG,IAAI,IAAI,GAAG,GAAQ,CAAC;AAC7D,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { loadConfig, getAutoUpdateConfig } from '../../../lib/config';
|
|
4
|
-
import { Platform } from '../../../lib/types';
|
|
5
|
-
import { colors } from '../constants';
|
|
6
|
-
export function SettingsDetails({ isFocused, }) {
|
|
7
|
-
const config = loadConfig();
|
|
8
|
-
const autoUpdateConfig = getAutoUpdateConfig();
|
|
9
|
-
return (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, flexGrow: 1, children: [_jsx(Text, { color: colors.text, bold: true, children: "Settings" }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { children: [_jsx(Text, { color: colors.textDim, children: "Platform: " }), _jsx(Text, { color: colors.text, children: config.platform === Platform.ClaudeCode ? 'Claude Code' : 'OpenCode' })] }), _jsxs(Text, { children: [_jsx(Text, { color: colors.textDim, children: "Your @mention: " }), _jsx(Text, { color: colors.text, children: config.user_mention })] }), _jsxs(Text, { children: [_jsx(Text, { color: colors.textDim, children: "Auto-update tools: " }), _jsx(Text, { color: colors.text, children: autoUpdateConfig.tools ? 'enabled' : 'disabled' })] }), _jsxs(Text, { children: [_jsx(Text, { color: colors.textDim, children: "Auto-update app: " }), _jsx(Text, { color: colors.text, children: autoUpdateConfig.app ? 'enabled' : 'disabled' })] })] }), _jsx(Box, { marginTop: 2, children: _jsx(Text, { color: colors.textDim, children: "Config: ~/.droid/config.yaml" }) }), isFocused && (_jsx(Box, { marginTop: 2, children: _jsxs(Text, { backgroundColor: colors.primary, color: "#ffffff", bold: true, children: [' ', "Edit", ' '] }) })), isFocused && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.textDim, children: "enter edit \u00B7 esc back" }) })), !isFocused && (_jsx(Box, { marginTop: 2, children: _jsx(Text, { color: colors.textDim, children: "press enter to edit" }) }))] }));
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=SettingsDetails.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsDetails.js","sourceRoot":"","sources":["../../../../src/commands/tui/components/SettingsDetails.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC,MAAM,UAAU,eAAe,CAAC,EAC9B,SAAS,GACY;IACrB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAE/C,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,aACrD,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,+BAAgB,EAE9C,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,qCAA6B,EACxD,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YACrB,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,GAChE,IACF,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,qCAA6B,EACxD,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAG,MAAM,CAAC,YAAY,GAAQ,IACjD,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,qCAA6B,EACxD,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAQ,IAC7E,EACP,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,qCAA6B,EACxD,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAQ,IAC3E,IACH,EAEN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,6CAAqC,GAC5D,EAEL,SAAS,IAAI,CACZ,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,MAAC,IAAI,IACH,eAAe,EAAE,MAAM,CAAC,OAAO,EAC/B,KAAK,EAAC,SAAS,EACf,IAAI,mBAEH,GAAG,UAAM,GAAG,IACR,GACH,CACP,EAEA,SAAS,IAAI,CACZ,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,2CAA8B,GACrD,CACP,EAEA,CAAC,SAAS,IAAI,CACb,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,oCAA4B,GACnD,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { colors } from '../constants';
|
|
4
|
-
export function TabBar({ tabs, activeTab }) {
|
|
5
|
-
return (_jsx(Box, { flexDirection: "row", flexWrap: "wrap", children: tabs.map((tab) => (_jsxs(Text, { backgroundColor: tab.id === activeTab ? colors.primary : undefined, color: tab.id === activeTab ? '#ffffff' : colors.textMuted, bold: tab.id === activeTab, wrap: "truncate", children: [' ', tab.label, ' '] }, tab.id))) }));
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=TabBar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TabBar.js","sourceRoot":"","sources":["../../../../src/commands/tui/components/TabBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAOtC,MAAM,UAAU,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAe;IACrD,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,KAAK,EAAC,QAAQ,EAAC,MAAM,YACrC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,MAAC,IAAI,IAEH,eAAe,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAClE,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAC1D,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,EAC1B,IAAI,EAAC,UAAU,aAEd,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,KANf,GAAG,CAAC,EAAE,CAON,CACR,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { isToolInstalled, getInstalledToolVersion, getToolUpdateStatus } from '../../../lib/tools';
|
|
4
|
-
import { colors } from '../constants';
|
|
5
|
-
import { ComponentBadges } from './Badge';
|
|
6
|
-
export function ToolDetails({ tool, isFocused, selectedAction, }) {
|
|
7
|
-
if (!tool) {
|
|
8
|
-
return (_jsx(Box, { paddingLeft: 2, flexGrow: 1, children: _jsx(Text, { color: colors.textDim, children: "Select a tool" }) }));
|
|
9
|
-
}
|
|
10
|
-
const installed = isToolInstalled(tool.name);
|
|
11
|
-
const installedVersion = getInstalledToolVersion(tool.name);
|
|
12
|
-
const updateStatus = getToolUpdateStatus(tool.name);
|
|
13
|
-
const isSystemTool = tool.system === true;
|
|
14
|
-
const actions = installed
|
|
15
|
-
? [
|
|
16
|
-
{ id: 'explore', label: 'Explore', variant: 'default' },
|
|
17
|
-
...(updateStatus.hasUpdate
|
|
18
|
-
? [{ id: 'update', label: `Update (${updateStatus.bundledVersion})`, variant: 'primary' }]
|
|
19
|
-
: []),
|
|
20
|
-
{ id: 'configure', label: 'Configure', variant: 'default' },
|
|
21
|
-
// System tools can't be uninstalled
|
|
22
|
-
...(!isSystemTool ? [{ id: 'uninstall', label: 'Uninstall', variant: 'danger' }] : []),
|
|
23
|
-
]
|
|
24
|
-
: [
|
|
25
|
-
{ id: 'explore', label: 'Explore', variant: 'default' },
|
|
26
|
-
// System tools auto-install, but show Install for manual trigger if needed
|
|
27
|
-
{ id: 'install', label: 'Install', variant: 'primary' },
|
|
28
|
-
];
|
|
29
|
-
return (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, flexGrow: 1, children: [_jsx(Text, { color: colors.text, bold: true, children: tool.name }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.textDim, children: [tool.version, tool.status && ` · ${tool.status}`, installed && _jsx(Text, { color: colors.success, children: " \u00B7 installed" }), updateStatus.hasUpdate && (_jsxs(Text, { color: colors.primary, children: [" \u00B7 update (", installedVersion, " \u2192 ", updateStatus.bundledVersion, ")"] }))] }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.textMuted, children: tool.description }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: colors.textDim, children: "Includes:" }), _jsx(Box, { marginTop: 1, children: _jsx(ComponentBadges, { tool: tool }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, marginLeft: 1, children: [tool.includes.skills.length > 0 && (_jsxs(Text, { children: [_jsx(Text, { color: colors.skill, children: "Skills: " }), _jsx(Text, { color: colors.textMuted, children: tool.includes.skills.map(s => s.name).join(', ') })] })), tool.includes.commands.length > 0 && (_jsxs(Text, { children: [_jsx(Text, { color: colors.command, children: "Commands: " }), _jsx(Text, { color: colors.textMuted, children: tool.includes.commands.map(c => `/${c}`).join(', ') })] })), tool.includes.agents.length > 0 && (_jsxs(Text, { children: [_jsx(Text, { color: colors.agent, children: "Agents: " }), _jsx(Text, { color: colors.textMuted, children: tool.includes.agents.join(', ') })] }))] })] }), isFocused && (_jsx(Box, { flexDirection: "row", marginTop: 1, children: actions.map((action, index) => (_jsxs(Text, { backgroundColor: selectedAction === index
|
|
30
|
-
? action.variant === 'danger'
|
|
31
|
-
? colors.error
|
|
32
|
-
: colors.primary
|
|
33
|
-
: colors.bgSelected, color: selectedAction === index ? '#ffffff' : colors.textMuted, bold: selectedAction === index, children: [' ', action.label, ' '] }, action.id))) }))] }));
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=ToolDetails.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolDetails.js","sourceRoot":"","sources":["../../../../src/commands/tui/components/ToolDetails.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { isToolInstalled, getInstalledToolVersion, getToolUpdateStatus } from '../../../lib/tools';
|
|
4
|
-
import { colors } from '../constants';
|
|
5
|
-
export function ToolItem({ tool, isSelected, isActive, wasAutoUpdated, }) {
|
|
6
|
-
const installed = isToolInstalled(tool.name);
|
|
7
|
-
const installedVersion = getInstalledToolVersion(tool.name);
|
|
8
|
-
const updateStatus = getToolUpdateStatus(tool.name);
|
|
9
|
-
return (_jsx(Box, { paddingX: 1, backgroundColor: isActive ? colors.bgSelected : undefined, children: _jsxs(Text, { wrap: "truncate", children: [_jsxs(Text, { color: colors.textDim, children: [isSelected ? '>' : ' ', " "] }), _jsx(Text, { color: isSelected || isActive ? colors.text : colors.textMuted, children: tool.name }), installed && installedVersion && _jsxs(Text, { color: colors.textDim, children: [" v", installedVersion] }), installed && _jsx(Text, { color: colors.success, children: " \u2713" }), wasAutoUpdated && _jsx(Text, { color: colors.success, children: " \u2191" }), updateStatus.hasUpdate && !wasAutoUpdated && _jsx(Text, { color: colors.primary, children: " \u2191" }), _jsx(Text, { children: " " }), tool.includes.skills.length > 0 && _jsx(Text, { color: colors.skill, children: "\u25CF " }), tool.includes.commands.length > 0 && _jsx(Text, { color: colors.command, children: "\u25CF " }), tool.includes.agents.length > 0 && _jsx(Text, { color: colors.agent, children: "\u25CF" })] }) }));
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=ToolItem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolItem.js","sourceRoot":"","sources":["../../../../src/commands/tui/components/ToolItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAStC,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,cAAc,GACA;IACd,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,OAAO,CACL,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,YACzE,MAAC,IAAI,IAAC,IAAI,EAAC,UAAU,aACnB,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,aAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,EAC7D,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,YAAG,IAAI,CAAC,IAAI,GAAQ,EACvF,SAAS,IAAI,gBAAgB,IAAI,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,mBAAK,gBAAgB,IAAQ,EACzF,SAAS,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,wBAAW,EACnD,cAAc,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,wBAAW,EACxD,YAAY,CAAC,SAAS,IAAI,CAAC,cAAc,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,wBAAW,EACpF,KAAC,IAAI,oBAAS,EACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,wBAAW,EACvE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,wBAAW,EAC3E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,uBAAU,IAClE,GACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export const colors = {
|
|
2
|
-
primary: '#6366f1',
|
|
3
|
-
bgSelected: '#2d2d2d',
|
|
4
|
-
border: '#3a3a3a',
|
|
5
|
-
text: '#e8e8e8',
|
|
6
|
-
textMuted: '#999999',
|
|
7
|
-
textDim: '#6a6a6a',
|
|
8
|
-
success: '#4ade80',
|
|
9
|
-
error: '#f87171',
|
|
10
|
-
// Component type badges
|
|
11
|
-
skill: '#ec4899', // pink/magenta
|
|
12
|
-
command: '#22d3ee', // cyan
|
|
13
|
-
agent: '#fbbf24', // yellow/amber
|
|
14
|
-
};
|
|
15
|
-
export const MAX_VISIBLE_ITEMS = 6;
|
|
16
|
-
export const MAX_VISIBLE_CONFIG_ITEMS = 4; // Each config item takes ~3 lines
|
|
17
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/commands/tui/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,wBAAwB;IACxB,KAAK,EAAE,SAAS,EAAM,eAAe;IACrC,OAAO,EAAE,SAAS,EAAI,OAAO;IAC7B,KAAK,EAAE,SAAS,EAAM,eAAe;CAC7B,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,CAAC,kCAAkC"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { useState, useMemo } from 'react';
|
|
2
|
-
import { useApp } from 'ink';
|
|
3
|
-
import { getUpdateInfo, runUpdate } from '../../../lib/version';
|
|
4
|
-
import { setAutoUpdateConfig } from '../../../lib/config';
|
|
5
|
-
export function useAppUpdate({ onUpdateSuccess, onUpdateFailure }) {
|
|
6
|
-
const { exit } = useApp();
|
|
7
|
-
const [isUpdating, setIsUpdating] = useState(false);
|
|
8
|
-
const updateInfo = useMemo(() => getUpdateInfo(), []);
|
|
9
|
-
const handleUpdate = () => {
|
|
10
|
-
setIsUpdating(true);
|
|
11
|
-
// Run update in next tick to allow UI to show "Updating..."
|
|
12
|
-
setTimeout(() => {
|
|
13
|
-
const result = runUpdate();
|
|
14
|
-
if (result.success) {
|
|
15
|
-
// Build exit message with ANSI colors
|
|
16
|
-
const blue = '\x1b[38;2;99;102;241m'; // #6366f1
|
|
17
|
-
const dim = '\x1b[38;2;106;106;106m';
|
|
18
|
-
const reset = '\x1b[0m';
|
|
19
|
-
const message = `
|
|
20
|
-
${dim}────────────────────────────────────────────────────────${reset}
|
|
21
|
-
|
|
22
|
-
${dim}╔═════╗${reset}
|
|
23
|
-
${dim}║${reset} ${blue}●${reset} ${blue}●${reset} ${dim}║${reset} ${blue}"It's quite possible this system${reset}
|
|
24
|
-
${dim}╚═╦═╦═╝${reset} ${blue}is now fully operational."${reset}
|
|
25
|
-
|
|
26
|
-
Run ${blue}droid${reset} to start the new version.
|
|
27
|
-
|
|
28
|
-
${dim}────────────────────────────────────────────────────────${reset}
|
|
29
|
-
`;
|
|
30
|
-
onUpdateSuccess(message);
|
|
31
|
-
exit();
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
setIsUpdating(false);
|
|
35
|
-
onUpdateFailure(result.message);
|
|
36
|
-
}
|
|
37
|
-
}, 100);
|
|
38
|
-
};
|
|
39
|
-
const handleAlwaysUpdate = () => {
|
|
40
|
-
// Enable auto-update for app in config
|
|
41
|
-
setAutoUpdateConfig({ app: true });
|
|
42
|
-
// Then run the update
|
|
43
|
-
handleUpdate();
|
|
44
|
-
};
|
|
45
|
-
return {
|
|
46
|
-
updateInfo,
|
|
47
|
-
isUpdating,
|
|
48
|
-
handleUpdate,
|
|
49
|
-
handleAlwaysUpdate,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=useAppUpdate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAppUpdate.js","sourceRoot":"","sources":["../../../../src/commands/tui/hooks/useAppUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAc1D,MAAM,UAAU,YAAY,CAAC,EAAE,eAAe,EAAE,eAAe,EAAuB;IACpF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,4DAA4D;QAC5D,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,sCAAsC;gBACtC,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAC,UAAU;gBAChD,MAAM,GAAG,GAAG,wBAAwB,CAAC;gBACrC,MAAM,KAAK,GAAG,SAAS,CAAC;gBACxB,MAAM,OAAO,GAAG;EACtB,GAAG,2DAA2D,KAAK;;MAE/D,GAAG,UAAU,KAAK;MAClB,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,MAAM,IAAI,mCAAmC,KAAK;MAChH,GAAG,UAAU,KAAK,OAAO,IAAI,6BAA6B,KAAK;;mBAElD,IAAI,QAAQ,KAAK;;EAElC,GAAG,2DAA2D,KAAK;CACpE,CAAC;gBACM,eAAe,CAAC,OAAO,CAAC,CAAC;gBACzB,IAAI,EAAE,CAAC;YACT,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,uCAAuC;QACvC,mBAAmB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,sBAAsB;QACtB,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO;QACL,UAAU;QACV,UAAU;QACV,YAAY;QACZ,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { useState, useCallback } from 'react';
|
|
2
|
-
import { getBundledTools, isToolInstalled, getToolUpdateStatus, getToolsWithUpdates, } from '../../../lib/tools';
|
|
3
|
-
import { installSkill, updateSkill } from '../../../lib/skills';
|
|
4
|
-
import { getAutoUpdateConfig, setAutoUpdateConfig } from '../../../lib/config';
|
|
5
|
-
export function useToolUpdates({ onUpdateComplete }) {
|
|
6
|
-
const [toolUpdates, setToolUpdates] = useState([]);
|
|
7
|
-
const [isUpdatingTools, setIsUpdatingTools] = useState(false);
|
|
8
|
-
const [autoUpdatedTools, setAutoUpdatedTools] = useState([]);
|
|
9
|
-
const tools = getBundledTools();
|
|
10
|
-
// Ensure system tools are installed/updated (bypasses auto-update settings)
|
|
11
|
-
const ensureSystemTools = useCallback(() => {
|
|
12
|
-
const systemTools = tools.filter(t => t.system === true);
|
|
13
|
-
for (const systemTool of systemTools) {
|
|
14
|
-
const installed = isToolInstalled(systemTool.name);
|
|
15
|
-
const updateStatus = getToolUpdateStatus(systemTool.name);
|
|
16
|
-
if (!installed || updateStatus.hasUpdate) {
|
|
17
|
-
const primarySkill = systemTool.includes.skills.find(s => s.required)?.name || systemTool.name;
|
|
18
|
-
installSkill(primarySkill);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}, [tools]);
|
|
22
|
-
// Check for updates, returns info for caller to decide what to do
|
|
23
|
-
const checkForUpdates = useCallback(() => {
|
|
24
|
-
ensureSystemTools();
|
|
25
|
-
const updates = getToolsWithUpdates();
|
|
26
|
-
setToolUpdates(updates);
|
|
27
|
-
const autoUpdateConfig = getAutoUpdateConfig();
|
|
28
|
-
return {
|
|
29
|
-
updates,
|
|
30
|
-
shouldAutoUpdate: autoUpdateConfig.tools && updates.length > 0,
|
|
31
|
-
};
|
|
32
|
-
}, [ensureSystemTools]);
|
|
33
|
-
// Update all tools
|
|
34
|
-
const updateAllTools = useCallback((updates = toolUpdates, silent = false) => {
|
|
35
|
-
if (!silent) {
|
|
36
|
-
setIsUpdatingTools(true);
|
|
37
|
-
}
|
|
38
|
-
setTimeout(() => {
|
|
39
|
-
let successCount = 0;
|
|
40
|
-
let failCount = 0;
|
|
41
|
-
const updatedNames = [];
|
|
42
|
-
for (const tool of updates) {
|
|
43
|
-
const toolManifest = tools.find(t => t.name === tool.name);
|
|
44
|
-
if (toolManifest) {
|
|
45
|
-
const primarySkill = toolManifest.includes.skills.find(s => s.required)?.name || toolManifest.name;
|
|
46
|
-
const result = updateSkill(primarySkill);
|
|
47
|
-
if (result.success) {
|
|
48
|
-
successCount++;
|
|
49
|
-
updatedNames.push(tool.name);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
failCount++;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
setIsUpdatingTools(false);
|
|
57
|
-
if (silent && updatedNames.length > 0) {
|
|
58
|
-
setAutoUpdatedTools(updatedNames);
|
|
59
|
-
}
|
|
60
|
-
onUpdateComplete({ successCount, failCount, updatedNames, silent });
|
|
61
|
-
}, 100);
|
|
62
|
-
}, [toolUpdates, tools, onUpdateComplete]);
|
|
63
|
-
// Enable auto-update and run updates
|
|
64
|
-
const enableAutoUpdateAndUpdate = useCallback(() => {
|
|
65
|
-
setAutoUpdateConfig({ tools: true });
|
|
66
|
-
updateAllTools();
|
|
67
|
-
}, [updateAllTools]);
|
|
68
|
-
return {
|
|
69
|
-
toolUpdates,
|
|
70
|
-
isUpdatingTools,
|
|
71
|
-
autoUpdatedTools,
|
|
72
|
-
checkForUpdates,
|
|
73
|
-
updateAllTools,
|
|
74
|
-
enableAutoUpdateAndUpdate,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=useToolUpdates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useToolUpdates.js","sourceRoot":"","sources":["../../../../src/commands/tui/hooks/useToolUpdates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAgB/E,MAAM,UAAU,cAAc,CAAC,EAAE,gBAAgB,EAAyB;IACxE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,4EAA4E;IAC5E,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACzC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAyC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QAElG,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAE1D,IAAI,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC;gBAC/F,YAAY,CAAC,YAAY,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,kEAAkE;IAClE,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,iBAAiB,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;QACtC,cAAc,CAAC,OAAO,CAAC,CAAC;QAExB,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;QAC/C,OAAO;YACL,OAAO;YACP,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;SAC/D,CAAC;IACJ,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,mBAAmB;IACnB,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,UAA4B,WAAW,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE;QAC7F,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,MAAM,YAAY,GAAa,EAAE,CAAC;YAElC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC;oBACnG,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;oBACzC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,YAAY,EAAE,CAAC;wBACf,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACN,SAAS,EAAE,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAED,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAE1B,IAAI,MAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YACpC,CAAC;YAED,gBAAgB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE3C,qCAAqC;IACrC,MAAM,yBAAyB,GAAG,WAAW,CAAC,GAAG,EAAE;QACjD,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,cAAc,EAAE,CAAC;IACnB,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO;QACL,WAAW;QACX,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,cAAc;QACd,yBAAyB;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/tui/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text, useInput } from 'ink';
|
|
3
|
-
import { useState, useMemo } from 'react';
|
|
4
|
-
import { colors } from '../constants';
|
|
5
|
-
import { MarkdownLine } from '../components/Markdown';
|
|
6
|
-
export function ReadmeViewer({ title, content, onClose }) {
|
|
7
|
-
const [scrollOffset, setScrollOffset] = useState(0);
|
|
8
|
-
const lines = useMemo(() => content.split('\n'), [content]);
|
|
9
|
-
const maxVisible = 20;
|
|
10
|
-
// Pre-compute code block state for each line
|
|
11
|
-
const lineStates = useMemo(() => {
|
|
12
|
-
const states = [];
|
|
13
|
-
let inCode = false;
|
|
14
|
-
for (const line of lines) {
|
|
15
|
-
if (line.startsWith('```')) {
|
|
16
|
-
states.push(false); // Delimiter itself is not "in" code block for styling
|
|
17
|
-
inCode = !inCode;
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
states.push(inCode);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return states;
|
|
24
|
-
}, [lines]);
|
|
25
|
-
// Max offset: when at end, we have top indicator + (maxVisible-1) content lines
|
|
26
|
-
// So max offset is lines.length - (maxVisible - 1) = lines.length - maxVisible + 1
|
|
27
|
-
const maxOffset = Math.max(0, lines.length - maxVisible + 1);
|
|
28
|
-
useInput((input, key) => {
|
|
29
|
-
if (key.escape) {
|
|
30
|
-
onClose();
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
if (key.upArrow) {
|
|
34
|
-
setScrollOffset((prev) => Math.max(0, prev - 1));
|
|
35
|
-
}
|
|
36
|
-
if (key.downArrow) {
|
|
37
|
-
setScrollOffset((prev) => Math.min(maxOffset, prev + 1));
|
|
38
|
-
}
|
|
39
|
-
if (key.pageDown || input === ' ') {
|
|
40
|
-
setScrollOffset((prev) => Math.min(maxOffset, prev + maxVisible));
|
|
41
|
-
}
|
|
42
|
-
if (key.pageUp) {
|
|
43
|
-
setScrollOffset((prev) => Math.max(0, prev - maxVisible));
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
// Adjust visible lines based on whether indicators are shown
|
|
47
|
-
const showTopIndicator = scrollOffset > 0;
|
|
48
|
-
// Reserve space for bottom indicator if not at end
|
|
49
|
-
const contentLines = maxVisible - (showTopIndicator ? 1 : 0);
|
|
50
|
-
const endIndex = Math.min(scrollOffset + contentLines, lines.length);
|
|
51
|
-
const showBottomIndicator = endIndex < lines.length;
|
|
52
|
-
const actualContentLines = contentLines - (showBottomIndicator ? 1 : 0);
|
|
53
|
-
const visibleLines = lines.slice(scrollOffset, scrollOffset + actualContentLines);
|
|
54
|
-
return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { color: colors.text, bold: true, children: title }), _jsxs(Text, { color: colors.textDim, children: [" \u00B7 ", lines.length, " lines"] })] }), _jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: colors.border, paddingX: 1, children: [showTopIndicator && (_jsxs(Text, { color: colors.textDim, children: ["\u2191 ", scrollOffset, " more lines"] })), visibleLines.map((line, i) => (_jsx(MarkdownLine, { line: line, inCodeBlock: lineStates[scrollOffset + i] }, scrollOffset + i))), showBottomIndicator && (_jsxs(Text, { color: colors.textDim, children: ["\u2193 ", lines.length - scrollOffset - actualContentLines, " more lines"] }))] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.textDim, children: "\u2191\u2193 scroll \u00B7 space/pgdn page \u00B7 esc back" }) })] }));
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=ReadmeViewer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReadmeViewer.js","sourceRoot":"","sources":["../../../../src/commands/tui/views/ReadmeViewer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text, useInput } from 'ink';
|
|
3
|
-
import TextInput from 'ink-text-input';
|
|
4
|
-
import { useState } from 'react';
|
|
5
|
-
import { colors } from '../constants';
|
|
6
|
-
import { Platform, BuiltInOutput } from '../../../lib/types';
|
|
7
|
-
import { loadConfig, saveConfig, getAutoUpdateConfig, setAutoUpdateConfig } from '../../../lib/config';
|
|
8
|
-
import { configurePlatformPermissions } from '../../setup';
|
|
9
|
-
const platformOptions = [
|
|
10
|
-
{ label: 'Claude Code', value: Platform.ClaudeCode },
|
|
11
|
-
{ label: 'OpenCode', value: Platform.OpenCode },
|
|
12
|
-
];
|
|
13
|
-
export function SetupScreen({ onComplete, onSkip, initialConfig }) {
|
|
14
|
-
const [step, setStep] = useState('platform');
|
|
15
|
-
const [platform, setPlatform] = useState(initialConfig?.platform || Platform.ClaudeCode);
|
|
16
|
-
const [userMention, setUserMention] = useState(initialConfig?.user_mention || '@user');
|
|
17
|
-
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
18
|
-
const [error, setError] = useState(null);
|
|
19
|
-
// Auto-update state
|
|
20
|
-
const existingAutoUpdate = getAutoUpdateConfig();
|
|
21
|
-
const [autoUpdateTools, setAutoUpdateTools] = useState(existingAutoUpdate.tools);
|
|
22
|
-
const [autoUpdateApp, setAutoUpdateApp] = useState(existingAutoUpdate.app);
|
|
23
|
-
const [autoUpdateSelectedIndex, setAutoUpdateSelectedIndex] = useState(0);
|
|
24
|
-
const steps = ['platform', 'user_mention', 'auto_update', 'confirm'];
|
|
25
|
-
const stepIndex = steps.indexOf(step);
|
|
26
|
-
const totalSteps = steps.length - 1; // Don't count confirm as a step
|
|
27
|
-
const handleUserMentionSubmit = () => {
|
|
28
|
-
// Auto-add @ prefix if missing
|
|
29
|
-
const mention = userMention.startsWith('@') ? userMention : `@${userMention}`;
|
|
30
|
-
setUserMention(mention);
|
|
31
|
-
setError(null);
|
|
32
|
-
setStep('auto_update');
|
|
33
|
-
setAutoUpdateSelectedIndex(0);
|
|
34
|
-
};
|
|
35
|
-
// Handle escape during text input (only intercept escape, nothing else)
|
|
36
|
-
useInput((input, key) => {
|
|
37
|
-
if (key.escape) {
|
|
38
|
-
setStep('platform');
|
|
39
|
-
setSelectedIndex(0);
|
|
40
|
-
}
|
|
41
|
-
}, { isActive: step === 'user_mention' });
|
|
42
|
-
// Handle all input for non-text-input steps
|
|
43
|
-
useInput((input, key) => {
|
|
44
|
-
if (key.escape) {
|
|
45
|
-
if (step === 'platform') {
|
|
46
|
-
onSkip();
|
|
47
|
-
}
|
|
48
|
-
else if (step === 'auto_update') {
|
|
49
|
-
setStep('user_mention');
|
|
50
|
-
}
|
|
51
|
-
else if (step === 'confirm') {
|
|
52
|
-
setStep('auto_update');
|
|
53
|
-
setAutoUpdateSelectedIndex(0);
|
|
54
|
-
}
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
if (step === 'platform') {
|
|
58
|
-
if (key.upArrow)
|
|
59
|
-
setSelectedIndex((prev) => Math.max(0, prev - 1));
|
|
60
|
-
if (key.downArrow)
|
|
61
|
-
setSelectedIndex((prev) => Math.min(platformOptions.length - 1, prev + 1));
|
|
62
|
-
if (key.return) {
|
|
63
|
-
setPlatform(platformOptions[selectedIndex].value);
|
|
64
|
-
setStep('user_mention');
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
else if (step === 'auto_update') {
|
|
68
|
-
// 0 = auto-update tools, 1 = auto-update app, 2 = next button
|
|
69
|
-
if (key.upArrow)
|
|
70
|
-
setAutoUpdateSelectedIndex((prev) => Math.max(0, prev - 1));
|
|
71
|
-
if (key.downArrow)
|
|
72
|
-
setAutoUpdateSelectedIndex((prev) => Math.min(2, prev + 1));
|
|
73
|
-
if (key.return) {
|
|
74
|
-
if (autoUpdateSelectedIndex === 0) {
|
|
75
|
-
setAutoUpdateTools(!autoUpdateTools);
|
|
76
|
-
}
|
|
77
|
-
else if (autoUpdateSelectedIndex === 1) {
|
|
78
|
-
setAutoUpdateApp(!autoUpdateApp);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
setStep('confirm');
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
else if (step === 'confirm') {
|
|
86
|
-
if (key.return) {
|
|
87
|
-
const existingConfig = loadConfig();
|
|
88
|
-
const config = {
|
|
89
|
-
...existingConfig,
|
|
90
|
-
platform: platform,
|
|
91
|
-
user_mention: userMention,
|
|
92
|
-
output_preference: BuiltInOutput.Terminal, // Default to terminal
|
|
93
|
-
};
|
|
94
|
-
saveConfig(config);
|
|
95
|
-
setAutoUpdateConfig({ tools: autoUpdateTools, app: autoUpdateApp });
|
|
96
|
-
configurePlatformPermissions(platform);
|
|
97
|
-
onComplete();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}, { isActive: step !== 'user_mention' });
|
|
101
|
-
const renderHeader = () => (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: _jsxs(Text, { children: [_jsx(Text, { color: colors.textDim, children: "[" }), _jsx(Text, { color: colors.primary, children: "\u25CF" }), _jsx(Text, { color: colors.textDim, children: " " }), _jsx(Text, { color: colors.primary, children: "\u25CF" }), _jsx(Text, { color: colors.textDim, children: "] " }), _jsx(Text, { color: colors.text, bold: true, children: "droid setup" }), _jsxs(Text, { color: colors.textDim, children: [" \u00B7 Step ", Math.min(stepIndex + 1, totalSteps), " of ", totalSteps] })] }) }));
|
|
102
|
-
if (step === 'platform') {
|
|
103
|
-
return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [renderHeader(), _jsx(Text, { color: colors.text, children: "Which platform are you using?" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: platformOptions.map((option, index) => (_jsxs(Text, { children: [_jsxs(Text, { color: colors.textDim, children: [index === selectedIndex ? '>' : ' ', " "] }), _jsx(Text, { color: index === selectedIndex ? colors.text : colors.textMuted, children: option.label })] }, option.value))) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.textDim, children: "\u2191\u2193 select \u00B7 enter next \u00B7 esc skip" }) })] }));
|
|
104
|
-
}
|
|
105
|
-
if (step === 'user_mention') {
|
|
106
|
-
return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [renderHeader(), _jsx(Text, { color: colors.text, children: "What @mention should be used for you?" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: colors.textDim, children: '> ' }), _jsx(TextInput, { value: userMention, onChange: setUserMention, onSubmit: handleUserMentionSubmit, placeholder: "@user" })] }), error && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.error, children: error }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.textDim, children: "enter next \u00B7 esc back" }) })] }));
|
|
107
|
-
}
|
|
108
|
-
if (step === 'auto_update') {
|
|
109
|
-
return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [renderHeader(), _jsx(Text, { color: colors.text, children: "Configure auto-update behaviour" }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Box, { children: _jsxs(Text, { children: [_jsxs(Text, { color: colors.textDim, children: [autoUpdateSelectedIndex === 0 ? '>' : ' ', " "] }), _jsxs(Text, { color: autoUpdateSelectedIndex === 0 ? colors.text : colors.textMuted, children: ["[", autoUpdateTools ? 'x' : ' ', "] Auto-update tools"] })] }) }), _jsx(Text, { color: colors.textDim, children: " Update tools automatically when droid starts" }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: [_jsxs(Text, { color: colors.textDim, children: [autoUpdateSelectedIndex === 1 ? '>' : ' ', " "] }), _jsxs(Text, { color: autoUpdateSelectedIndex === 1 ? colors.text : colors.textMuted, children: ["[", autoUpdateApp ? 'x' : ' ', "] Auto-update app"] })] }) }), _jsx(Text, { color: colors.textDim, children: " Update droid automatically when a new version is available" })] }), _jsx(Box, { marginTop: 2, children: _jsxs(Text, { backgroundColor: autoUpdateSelectedIndex === 2 ? colors.primary : colors.bgSelected, color: autoUpdateSelectedIndex === 2 ? '#ffffff' : colors.textMuted, bold: autoUpdateSelectedIndex === 2, children: [' ', "Next", ' '] }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.textDim, children: "\u2191\u2193 select \u00B7 enter toggle/next \u00B7 esc back" }) })] }));
|
|
110
|
-
}
|
|
111
|
-
// Confirm step
|
|
112
|
-
return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [renderHeader(), _jsx(Text, { color: colors.text, bold: true, children: "Review your settings" }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { children: [_jsx(Text, { color: colors.textDim, children: "Platform: " }), _jsx(Text, { color: colors.text, children: platform === Platform.ClaudeCode ? 'Claude Code' : 'OpenCode' })] }), _jsxs(Text, { children: [_jsx(Text, { color: colors.textDim, children: "Your @mention: " }), _jsx(Text, { color: colors.text, children: userMention })] }), _jsxs(Text, { children: [_jsx(Text, { color: colors.textDim, children: "Auto-update tools: " }), _jsx(Text, { color: colors.text, children: autoUpdateTools ? 'enabled' : 'disabled' })] }), _jsxs(Text, { children: [_jsx(Text, { color: colors.textDim, children: "Auto-update app: " }), _jsx(Text, { color: colors.text, children: autoUpdateApp ? 'enabled' : 'disabled' })] })] }), _jsx(Box, { marginTop: 2, children: _jsxs(Text, { backgroundColor: colors.primary, color: "#ffffff", bold: true, children: [' ', "Save", ' '] }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.textDim, children: "enter save \u00B7 esc back" }) })] }));
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=SetupScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SetupScreen.js","sourceRoot":"","sources":["../../../../src/commands/tui/views/SetupScreen.tsx"],"names":[],"mappings":"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"}
|