@brainfile/cli 0.8.1 → 0.9.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/CHANGELOG.md +30 -0
- package/README.md +14 -0
- package/dist/commands/tui.d.ts.map +1 -1
- package/dist/commands/tui.js +6 -701
- package/dist/commands/tui.js.map +1 -1
- package/dist/tui/BrainfileTUI.d.ts +4 -0
- package/dist/tui/BrainfileTUI.d.ts.map +1 -0
- package/dist/tui/BrainfileTUI.js +198 -0
- package/dist/tui/BrainfileTUI.js.map +1 -0
- package/dist/tui/actions.d.ts +49 -0
- package/dist/tui/actions.d.ts.map +1 -0
- package/dist/tui/actions.js +569 -0
- package/dist/tui/actions.js.map +1 -0
- package/dist/tui/components/ColumnTabs.d.ts +9 -0
- package/dist/tui/components/ColumnTabs.d.ts.map +1 -0
- package/dist/tui/components/ColumnTabs.js +30 -0
- package/dist/tui/components/ColumnTabs.js.map +1 -0
- package/dist/tui/components/Header.d.ts +12 -0
- package/dist/tui/components/Header.d.ts.map +1 -0
- package/dist/tui/components/Header.js +24 -0
- package/dist/tui/components/Header.js.map +1 -0
- package/dist/tui/components/HelpOverlay.d.ts +7 -0
- package/dist/tui/components/HelpOverlay.d.ts.map +1 -0
- package/dist/tui/components/HelpOverlay.js +56 -0
- package/dist/tui/components/HelpOverlay.js.map +1 -0
- package/dist/tui/components/Overlays.d.ts +41 -0
- package/dist/tui/components/Overlays.d.ts.map +1 -0
- package/dist/tui/components/Overlays.js +127 -0
- package/dist/tui/components/Overlays.js.map +1 -0
- package/dist/tui/components/ProgressBar.d.ts +8 -0
- package/dist/tui/components/ProgressBar.d.ts.map +1 -0
- package/dist/tui/components/ProgressBar.js +35 -0
- package/dist/tui/components/ProgressBar.js.map +1 -0
- package/dist/tui/components/SearchBar.d.ts +7 -0
- package/dist/tui/components/SearchBar.d.ts.map +1 -0
- package/dist/tui/components/SearchBar.js +22 -0
- package/dist/tui/components/SearchBar.js.map +1 -0
- package/dist/tui/components/StatusBar.d.ts +12 -0
- package/dist/tui/components/StatusBar.d.ts.map +1 -0
- package/dist/tui/components/StatusBar.js +37 -0
- package/dist/tui/components/StatusBar.js.map +1 -0
- package/dist/tui/components/TaskCard.d.ts +19 -0
- package/dist/tui/components/TaskCard.d.ts.map +1 -0
- package/dist/tui/components/TaskCard.js +105 -0
- package/dist/tui/components/TaskCard.js.map +1 -0
- package/dist/tui/components/TaskList.d.ts +11 -0
- package/dist/tui/components/TaskList.d.ts.map +1 -0
- package/dist/tui/components/TaskList.js +56 -0
- package/dist/tui/components/TaskList.js.map +1 -0
- package/dist/tui/components/index.d.ts +19 -0
- package/dist/tui/components/index.d.ts.map +1 -0
- package/dist/tui/components/index.js +26 -0
- package/dist/tui/components/index.js.map +1 -0
- package/dist/tui/hooks/index.d.ts +3 -0
- package/dist/tui/hooks/index.d.ts.map +1 -0
- package/dist/tui/hooks/index.js +8 -0
- package/dist/tui/hooks/index.js.map +1 -0
- package/dist/tui/hooks/useBrainfileLoader.d.ts +5 -0
- package/dist/tui/hooks/useBrainfileLoader.d.ts.map +1 -0
- package/dist/tui/hooks/useBrainfileLoader.js +171 -0
- package/dist/tui/hooks/useBrainfileLoader.js.map +1 -0
- package/dist/tui/hooks/useKeyboardNavigation.d.ts +16 -0
- package/dist/tui/hooks/useKeyboardNavigation.d.ts.map +1 -0
- package/dist/tui/hooks/useKeyboardNavigation.js +434 -0
- package/dist/tui/hooks/useKeyboardNavigation.js.map +1 -0
- package/dist/tui/index.d.ts +9 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +36 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/theme.d.ts +113 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +132 -0
- package/dist/tui/theme.js.map +1 -0
- package/dist/tui/types.d.ts +30 -0
- package/dist/tui/types.d.ts.map +1 -0
- package/dist/tui/types.js +6 -0
- package/dist/tui/types.js.map +1 -0
- package/dist/tui/utils.d.ts +3 -0
- package/dist/tui/utils.d.ts.map +1 -0
- package/dist/tui/utils.js +31 -0
- package/dist/tui/utils.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Brainfile TUI Theme
|
|
4
|
+
*
|
|
5
|
+
* Design principles (aligned with VSCode extension aesthetic):
|
|
6
|
+
* 1. True black background (#000) for maximum contrast
|
|
7
|
+
* 2. Muted grays for secondary content
|
|
8
|
+
* 3. Vibrant accent colors used sparingly
|
|
9
|
+
* 4. Rounded borders for modern feel
|
|
10
|
+
* 5. Generous spacing for readability
|
|
11
|
+
*
|
|
12
|
+
* VSCode extension colors reference:
|
|
13
|
+
* - critical: #d64933, high: #867530, medium: #37505C, low: #bac1b8
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.ICONS = exports.SPACING = exports.BORDERS = exports.BOX = exports.PALETTE = void 0;
|
|
17
|
+
// Main color palette with hex values for True Color terminals
|
|
18
|
+
exports.PALETTE = {
|
|
19
|
+
// Backgrounds
|
|
20
|
+
bg: '#000000',
|
|
21
|
+
bgSubtle: '#0a0a0a',
|
|
22
|
+
bgMuted: '#1a1a1a',
|
|
23
|
+
bgHighlight: '#2a2a2a',
|
|
24
|
+
panel: '#1e1e1e',
|
|
25
|
+
// Text hierarchy
|
|
26
|
+
text: '#ffffff',
|
|
27
|
+
textSecondary: '#a0a0a0',
|
|
28
|
+
textMuted: '#606060',
|
|
29
|
+
textDim: '#404040',
|
|
30
|
+
// Borders
|
|
31
|
+
border: '#333333',
|
|
32
|
+
borderFocus: '#505050',
|
|
33
|
+
borderAccent: '#7c3aed',
|
|
34
|
+
// Priority colors (TUI-optimized, inspired by VSCode extension)
|
|
35
|
+
critical: '#ef4444',
|
|
36
|
+
high: '#f59e0b',
|
|
37
|
+
medium: '#3b82f6',
|
|
38
|
+
low: '#6b7280',
|
|
39
|
+
giga: '#a855f7', // Purple for custom priority
|
|
40
|
+
// Semantic colors
|
|
41
|
+
success: '#22c55e',
|
|
42
|
+
warning: '#eab308',
|
|
43
|
+
error: '#ef4444',
|
|
44
|
+
info: '#3b82f6',
|
|
45
|
+
// UI accents
|
|
46
|
+
progress: '#3b82f6',
|
|
47
|
+
accent: '#7c3aed',
|
|
48
|
+
accentAlt: '#06b6d4',
|
|
49
|
+
selected: '#ffffff',
|
|
50
|
+
};
|
|
51
|
+
// Box drawing characters - default to rounded for modern feel
|
|
52
|
+
exports.BOX = {
|
|
53
|
+
topLeft: '╭',
|
|
54
|
+
topRight: '╮',
|
|
55
|
+
bottomLeft: '╰',
|
|
56
|
+
bottomRight: '╯',
|
|
57
|
+
horizontal: '─',
|
|
58
|
+
vertical: '│',
|
|
59
|
+
teeRight: '├',
|
|
60
|
+
teeLeft: '┤',
|
|
61
|
+
};
|
|
62
|
+
// Alternative border styles
|
|
63
|
+
exports.BORDERS = {
|
|
64
|
+
round: {
|
|
65
|
+
topLeft: '╭',
|
|
66
|
+
topRight: '╮',
|
|
67
|
+
bottomLeft: '╰',
|
|
68
|
+
bottomRight: '╯',
|
|
69
|
+
horizontal: '─',
|
|
70
|
+
vertical: '│',
|
|
71
|
+
},
|
|
72
|
+
single: {
|
|
73
|
+
topLeft: '┌',
|
|
74
|
+
topRight: '┐',
|
|
75
|
+
bottomLeft: '└',
|
|
76
|
+
bottomRight: '┘',
|
|
77
|
+
horizontal: '─',
|
|
78
|
+
vertical: '│',
|
|
79
|
+
},
|
|
80
|
+
double: {
|
|
81
|
+
topLeft: '╔',
|
|
82
|
+
topRight: '╗',
|
|
83
|
+
bottomLeft: '╚',
|
|
84
|
+
bottomRight: '╝',
|
|
85
|
+
horizontal: '═',
|
|
86
|
+
vertical: '║',
|
|
87
|
+
},
|
|
88
|
+
bold: {
|
|
89
|
+
topLeft: '┏',
|
|
90
|
+
topRight: '┓',
|
|
91
|
+
bottomLeft: '┗',
|
|
92
|
+
bottomRight: '┛',
|
|
93
|
+
horizontal: '━',
|
|
94
|
+
vertical: '┃',
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
// Spacing scale
|
|
98
|
+
exports.SPACING = {
|
|
99
|
+
none: 0,
|
|
100
|
+
xs: 1,
|
|
101
|
+
sm: 2,
|
|
102
|
+
md: 3,
|
|
103
|
+
lg: 4,
|
|
104
|
+
xl: 6,
|
|
105
|
+
};
|
|
106
|
+
// Icons/glyphs for consistent visual language
|
|
107
|
+
exports.ICONS = {
|
|
108
|
+
// Status
|
|
109
|
+
success: '✓',
|
|
110
|
+
error: '✗',
|
|
111
|
+
warning: '⚠',
|
|
112
|
+
info: 'ℹ',
|
|
113
|
+
// Navigation
|
|
114
|
+
expanded: '▼',
|
|
115
|
+
collapsed: '▶',
|
|
116
|
+
bullet: '•',
|
|
117
|
+
arrow: '→',
|
|
118
|
+
// Objects
|
|
119
|
+
file: '📄',
|
|
120
|
+
folder: '📁',
|
|
121
|
+
task: '☐',
|
|
122
|
+
taskDone: '☑',
|
|
123
|
+
// Progress
|
|
124
|
+
progressFilled: '█',
|
|
125
|
+
progressEmpty: '░',
|
|
126
|
+
progressPartial: '▓',
|
|
127
|
+
// Misc
|
|
128
|
+
reload: '↻',
|
|
129
|
+
live: '●',
|
|
130
|
+
search: '🔍',
|
|
131
|
+
};
|
|
132
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/tui/theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Board } from '@brainfile/core';
|
|
2
|
+
export type BoardColumn = Board['columns'][number];
|
|
3
|
+
export type ViewMode = 'browse' | 'search' | 'help' | 'move' | 'delete-confirm' | 'subtask' | 'new-task';
|
|
4
|
+
export interface StatusMessage {
|
|
5
|
+
text: string;
|
|
6
|
+
type: 'success' | 'error' | 'info';
|
|
7
|
+
timestamp: number;
|
|
8
|
+
}
|
|
9
|
+
export interface AppState {
|
|
10
|
+
board: Board | null;
|
|
11
|
+
error: string | null;
|
|
12
|
+
lastUpdated: Date;
|
|
13
|
+
activeColumnIndex: number;
|
|
14
|
+
selectedTaskIndex: number;
|
|
15
|
+
mode: ViewMode;
|
|
16
|
+
searchQuery: string;
|
|
17
|
+
expandedTaskIds: Set<string>;
|
|
18
|
+
reloadFlash: boolean;
|
|
19
|
+
lastContentHash: string | null;
|
|
20
|
+
statusMessage: StatusMessage | null;
|
|
21
|
+
moveTargetIndex: number;
|
|
22
|
+
selectedSubtaskIndex: number;
|
|
23
|
+
newTaskTitle: string;
|
|
24
|
+
}
|
|
25
|
+
export interface TUIProps {
|
|
26
|
+
filePath: string;
|
|
27
|
+
}
|
|
28
|
+
export declare const HEADER_ROWS = 7;
|
|
29
|
+
export declare const FOOTER_ROWS = 3;
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEzG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,IAAI,CAAC;IAGlB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAG1B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IAGpB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IAGrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAG/B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IAGpC,eAAe,EAAE,MAAM,CAAC;IAGxB,oBAAoB,EAAE,MAAM,CAAC;IAG7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,IAAI,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FOOTER_ROWS = exports.HEADER_ROWS = void 0;
|
|
4
|
+
exports.HEADER_ROWS = 7; // title(1) + progress(3: padTop+content+padBottom) + tabs(2: marginTop+content) + separator(1)
|
|
5
|
+
exports.FOOTER_ROWS = 3; // separator + status bar (2 rows: content + bottom padding)
|
|
6
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tui/types.ts"],"names":[],"mappings":";;;AAiDa,QAAA,WAAW,GAAG,CAAC,CAAC,CAAC,+FAA+F;AAChH,QAAA,WAAW,GAAG,CAAC,CAAC,CAAC,4DAA4D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tui/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKjE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAe1D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.truncate = truncate;
|
|
4
|
+
exports.getPriorityColor = getPriorityColor;
|
|
5
|
+
const theme_js_1 = require("./theme.js");
|
|
6
|
+
function truncate(value, maxLength) {
|
|
7
|
+
if (!value)
|
|
8
|
+
return ' '; // Return space instead of empty string for Ink compatibility
|
|
9
|
+
if (maxLength <= 0)
|
|
10
|
+
return ' ';
|
|
11
|
+
if (value.length <= maxLength)
|
|
12
|
+
return value;
|
|
13
|
+
return `${value.slice(0, Math.max(1, maxLength - 1))}…`;
|
|
14
|
+
}
|
|
15
|
+
function getPriorityColor(priority) {
|
|
16
|
+
switch (priority?.toLowerCase()) {
|
|
17
|
+
case 'critical':
|
|
18
|
+
return theme_js_1.PALETTE.critical;
|
|
19
|
+
case 'giga':
|
|
20
|
+
return theme_js_1.PALETTE.giga;
|
|
21
|
+
case 'high':
|
|
22
|
+
return theme_js_1.PALETTE.high;
|
|
23
|
+
case 'medium':
|
|
24
|
+
return theme_js_1.PALETTE.medium;
|
|
25
|
+
case 'low':
|
|
26
|
+
return theme_js_1.PALETTE.low;
|
|
27
|
+
default:
|
|
28
|
+
return theme_js_1.PALETTE.border;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tui/utils.ts"],"names":[],"mappings":";;AAEA,4BAKC;AAED,4CAeC;AAxBD,yCAAqC;AAErC,SAAgB,QAAQ,CAAC,KAAa,EAAE,SAAiB;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,CAAC,6DAA6D;IACrF,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1D,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAiB;IAChD,QAAQ,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;QAChC,KAAK,UAAU;YACb,OAAO,kBAAO,CAAC,QAAQ,CAAC;QAC1B,KAAK,MAAM;YACT,OAAO,kBAAO,CAAC,IAAI,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,kBAAO,CAAC,IAAI,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,kBAAO,CAAC,MAAM,CAAC;QACxB,KAAK,KAAK;YACR,OAAO,kBAAO,CAAC,GAAG,CAAC;QACrB;YACE,OAAO,kBAAO,CAAC,MAAM,CAAC;IAC1B,CAAC;AACH,CAAC"}
|