@brainfile/cli 0.4.2 → 0.5.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/CHANGELOG.md CHANGED
@@ -19,6 +19,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
19
 
20
20
  ### Security
21
21
 
22
+ ## [0.5.0] - 2025-11-22
23
+
24
+ ### Added
25
+ - **Terminal UI (TUI)** - Interactive split-terminal friendly task board
26
+ - `brainfile` or `brainfile tui` launches the TUI
27
+ - `brainfile <file>` opens TUI with a specific brainfile
28
+ - Real-time file watching with auto-refresh on changes
29
+ - Column navigation with TAB key
30
+ - Task navigation with j/k or arrow keys
31
+ - Expand/collapse task details with Enter
32
+ - Search/filter with `/` key
33
+ - Help overlay with `?` key
34
+ - Progress bar showing completion percentage
35
+ - Column ordering by `order` property (matches VSCode extension)
36
+ - True black dark mode color scheme
37
+ - Inverse selection highlighting for clarity
38
+ - Responsive layout that adapts to terminal size
39
+
40
+ ### Changed
41
+ - Updated @brainfile/core to ^0.4.1 for column ordering support
42
+
43
+ ### Dependencies
44
+ - Added ink ^3.2.0 for React-based terminal UI
45
+ - Added chokidar ^4.0.3 for file watching
46
+ - Added react ^17.0.2 for ink compatibility
47
+
48
+ ## [0.4.3] - 2025-11-21
49
+
50
+ ### Fixed
51
+ - **Cline Hooks Hanging Issue** - Fixed hook scripts hanging on startup
52
+ - Added 2-second timeout to stdin read using `read -t 2`
53
+ - Hooks now gracefully handle missing stdin data by using empty JSON object
54
+ - Prevents indefinite blocking when Cline doesn't provide stdin properly
55
+ - All three hooks (PostToolUse, UserPromptSubmit, TaskStart) updated
56
+
22
57
  ## [0.4.2] - 2025-11-21
23
58
 
24
59
  ### Added
package/README.md CHANGED
@@ -55,23 +55,52 @@ npx @brainfile/cli add --title "New task"
55
55
 
56
56
  2. **Create a brainfile.md** in your project (or use an existing one)
57
57
 
58
- 3. **List your tasks:**
58
+ 3. **Launch the TUI:**
59
59
  ```bash
60
- brainfile list
60
+ brainfile
61
61
  ```
62
62
 
63
- 4. **Add a new task:**
63
+ 4. **Or use CLI commands:**
64
64
  ```bash
65
- brainfile add --title "My first task" --priority high
66
- ```
67
-
68
- 5. **Move a task:**
69
- ```bash
70
- brainfile move --task task-123 --column done
65
+ brainfile list # List tasks
66
+ brainfile add --title "My first task" # Add a task
67
+ brainfile move --task task-123 --column done # Move a task
71
68
  ```
72
69
 
73
70
  ## Usage
74
71
 
72
+ ### Terminal UI (TUI)
73
+
74
+ Launch an interactive task board in your terminal:
75
+
76
+ ```bash
77
+ # Open TUI with default brainfile.md
78
+ brainfile
79
+
80
+ # Open TUI with a specific file
81
+ brainfile ./project/brainfile.md
82
+
83
+ # Or use the explicit command
84
+ brainfile tui --file brainfile.md
85
+ ```
86
+
87
+ **Keyboard Controls:**
88
+ - `TAB` / `Shift+TAB` - Navigate between columns
89
+ - `j` / `k` or `↑` / `↓` - Navigate tasks
90
+ - `Enter` - Expand/collapse task details
91
+ - `/` - Search/filter tasks
92
+ - `?` - Show help overlay
93
+ - `r` - Refresh from file
94
+ - `q` or `Ctrl+C` - Exit
95
+
96
+ **Features:**
97
+ - Real-time file watching with auto-refresh
98
+ - Progress bar showing completion percentage
99
+ - Column ordering by `order` property
100
+ - Subtask progress indicators
101
+ - Related files display
102
+ - True black dark mode color scheme
103
+
75
104
  ### List Tasks
76
105
 
77
106
  Display all tasks from your brainfile.md file with colored output:
@@ -400,6 +429,7 @@ Task IDs are automatically generated with a timestamp and random string to ensur
400
429
  ## Roadmap
401
430
 
402
431
  ### Completed ✓
432
+ - `brainfile` / `brainfile tui` - Interactive terminal UI
403
433
  - `brainfile list` - List and filter tasks
404
434
  - `brainfile add` - Create new tasks
405
435
  - `brainfile move` - Move tasks between columns
@@ -412,7 +442,7 @@ Task IDs are automatically generated with a timestamp and random string to ensur
412
442
  ### Future Enhancements
413
443
  - `brainfile update` - Update existing tasks
414
444
  - `brainfile delete` - Remove tasks
415
- - Interactive mode for task creation (see `task-5` in brainfile.md)
445
+ - TUI write mode (edit tasks directly in TUI)
416
446
  - Advanced filtering and search
417
447
  - Task completion tracking
418
448
  - Subtask management
package/brainfile.md ADDED
@@ -0,0 +1,25 @@
1
+ ---
2
+ schema: https://brainfile.md/v1
3
+ title: Brainfile CLI Project
4
+ agent:
5
+ instructions:
6
+ - Modify only the YAML frontmatter
7
+ - Preserve all IDs
8
+ - Keep ordering
9
+ - Make minimal changes
10
+ columns:
11
+ - id: todo
12
+ title: To Do
13
+ tasks:
14
+ - id: task-1
15
+ title: Test
16
+ description: "Working on the CLI project"
17
+ priority: medium
18
+ tags: []
19
+ - id: in-progress
20
+ title: In Progress
21
+ tasks: []
22
+ - id: done
23
+ title: Done
24
+ tasks: []
25
+ ---
package/dist/cli.js CHANGED
@@ -10,91 +10,132 @@ const move_1 = require("./commands/move");
10
10
  const template_1 = require("./commands/template");
11
11
  const lint_1 = require("./commands/lint");
12
12
  const init_1 = require("./commands/init");
13
+ const tui_1 = require("./commands/tui");
13
14
  const hooks_1 = require("./commands/hooks");
14
15
  // Read version from package.json
15
16
  const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'package.json'), 'utf8'));
16
- const program = new commander_1.Command();
17
- program
18
- .name('brainfile')
19
- .description('Command-line interface for Brainfile task management')
20
- .version(packageJson.version);
21
- // Register commands
22
- program
23
- .command('init')
24
- .description('Initialize a new brainfile.md in the current directory')
25
- .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
26
- .option('--force', 'Overwrite existing file')
27
- .action(init_1.initCommand);
28
- program
29
- .command('list')
30
- .description('List all tasks from brainfile.md')
31
- .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
32
- .option('-c, --column <name>', 'Filter by column')
33
- .option('-t, --tag <name>', 'Filter by tag')
34
- .action(list_1.listCommand);
35
- program
36
- .command('add')
37
- .description('Add a new task')
38
- .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
39
- .option('-c, --column <name>', 'Column to add task to', 'todo')
40
- .option('-t, --title <text>', 'Task title (required)')
41
- .option('-d, --description <text>', 'Task description')
42
- .option('-p, --priority <level>', 'Priority level (low, medium, high)')
43
- .option('--tags <tags>', 'Comma-separated tags')
44
- .action(add_1.addCommand);
45
- program
46
- .command('move')
47
- .description('Move a task to a different column')
48
- .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
49
- .option('-t, --task <id>', 'Task ID to move (required)')
50
- .option('-c, --column <name>', 'Target column name or ID (required)')
51
- .action(move_1.moveCommand);
52
- program
53
- .command('template')
54
- .description('Manage and use task templates')
55
- .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
56
- .option('-l, --list', 'List all available templates')
57
- .option('-u, --use <template-id>', 'Create task from template')
58
- .option('--title <text>', 'Task title (for template usage)')
59
- .option('--description <text>', 'Task description (for template usage)')
60
- .option('-c, --column <name>', 'Column to add task to', 'todo')
61
- .action(template_1.templateCommand);
62
- program
63
- .command('lint')
64
- .description('Validate and auto-fix brainfile.md syntax')
65
- .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
66
- .option('--fix', 'Automatically fix issues when possible')
67
- .option('--check', 'Exit with error code if issues found (for CI/CD)')
68
- .action(lint_1.lintCommand);
69
- // Add hooks command group
70
- const hooksCommand = program
71
- .command('hooks')
72
- .description('Manage AI agent hooks integration');
73
- hooksCommand
74
- .command('after-edit')
75
- .description('Handle post-edit hook event (internal use by AI assistants)')
76
- .action(hooks_1.afterEditCommand);
77
- hooksCommand
78
- .command('before-prompt')
79
- .description('Handle pre-prompt hook event (internal use by AI assistants)')
80
- .action(hooks_1.beforePromptCommand);
81
- hooksCommand
82
- .command('session-start')
83
- .description('Handle session-start hook event (internal use by AI assistants)')
84
- .action(hooks_1.sessionStartCommand);
85
- hooksCommand
86
- .command('install <tool>')
87
- .description('Install brainfile hooks for an AI coding assistant')
88
- .option('--scope <scope>', 'Installation scope: user or project', 'user')
89
- .action((tool, options) => (0, hooks_1.installCommand)({ tool, scope: options.scope }));
90
- hooksCommand
91
- .command('uninstall <tool>')
92
- .description('Uninstall brainfile hooks for an AI coding assistant')
93
- .option('--scope <scope>', 'Scope to uninstall from: user, project, or all', 'user')
94
- .action((tool, options) => (0, hooks_1.uninstallCommand)({ tool, scope: options.scope }));
95
- hooksCommand
96
- .command('list [tool]')
97
- .description('List installed brainfile hooks')
98
- .action((tool) => (0, hooks_1.listCommand)({ tool }));
99
- program.parse();
17
+ // Known subcommands to distinguish from file paths
18
+ const SUBCOMMANDS = ['init', 'list', 'add', 'move', 'template', 'lint', 'tui', 'hooks', 'help'];
19
+ // Check if first arg looks like a file path (not a subcommand or flag)
20
+ function shouldLaunchTUI() {
21
+ const args = process.argv.slice(2);
22
+ // No args → TUI with default file
23
+ if (args.length === 0) {
24
+ return { launch: true, file: 'brainfile.md' };
25
+ }
26
+ const firstArg = args[0];
27
+ // If first arg is a flag, let commander handle it
28
+ if (firstArg.startsWith('-')) {
29
+ // Handle -f/--file flag for TUI
30
+ if (args.length >= 2 && (firstArg === '-f' || firstArg === '--file')) {
31
+ return { launch: true, file: args[1] };
32
+ }
33
+ return { launch: false, file: '' };
34
+ }
35
+ // If first arg is a known subcommand, don't launch TUI
36
+ if (SUBCOMMANDS.includes(firstArg)) {
37
+ return { launch: false, file: '' };
38
+ }
39
+ // If first arg looks like a file path (contains . or / or exists), launch TUI with it
40
+ if (firstArg.includes('.') || firstArg.includes('/') || (0, fs_1.existsSync)(firstArg)) {
41
+ return { launch: true, file: firstArg };
42
+ }
43
+ // Otherwise let commander handle it (will show help for unknown command)
44
+ return { launch: false, file: '' };
45
+ }
46
+ const tuiCheck = shouldLaunchTUI();
47
+ if (tuiCheck.launch) {
48
+ (0, tui_1.tuiCommand)({ file: tuiCheck.file });
49
+ }
50
+ else {
51
+ const program = new commander_1.Command();
52
+ program
53
+ .name('brainfile')
54
+ .description('Command-line interface for Brainfile task management\n\nUsage:\n brainfile [file] Open TUI (default: brainfile.md)\n brainfile <command> Run CLI command')
55
+ .version(packageJson.version);
56
+ // Register commands
57
+ program
58
+ .command('init')
59
+ .description('Initialize a new brainfile.md in the current directory')
60
+ .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
61
+ .option('--force', 'Overwrite existing file')
62
+ .action(init_1.initCommand);
63
+ program
64
+ .command('list')
65
+ .description('List all tasks from brainfile.md')
66
+ .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
67
+ .option('-c, --column <name>', 'Filter by column')
68
+ .option('-t, --tag <name>', 'Filter by tag')
69
+ .action(list_1.listCommand);
70
+ program
71
+ .command('add')
72
+ .description('Add a new task')
73
+ .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
74
+ .option('-c, --column <name>', 'Column to add task to', 'todo')
75
+ .option('-t, --title <text>', 'Task title (required)')
76
+ .option('-d, --description <text>', 'Task description')
77
+ .option('-p, --priority <level>', 'Priority level (low, medium, high)')
78
+ .option('--tags <tags>', 'Comma-separated tags')
79
+ .action(add_1.addCommand);
80
+ program
81
+ .command('move')
82
+ .description('Move a task to a different column')
83
+ .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
84
+ .option('-t, --task <id>', 'Task ID to move (required)')
85
+ .option('-c, --column <name>', 'Target column name or ID (required)')
86
+ .action(move_1.moveCommand);
87
+ program
88
+ .command('template')
89
+ .description('Manage and use task templates')
90
+ .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
91
+ .option('-l, --list', 'List all available templates')
92
+ .option('-u, --use <template-id>', 'Create task from template')
93
+ .option('--title <text>', 'Task title (for template usage)')
94
+ .option('--description <text>', 'Task description (for template usage)')
95
+ .option('-c, --column <name>', 'Column to add task to', 'todo')
96
+ .action(template_1.templateCommand);
97
+ program
98
+ .command('lint')
99
+ .description('Validate and auto-fix brainfile.md syntax')
100
+ .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
101
+ .option('--fix', 'Automatically fix issues when possible')
102
+ .option('--check', 'Exit with error code if issues found (for CI/CD)')
103
+ .action(lint_1.lintCommand);
104
+ program
105
+ .command('tui')
106
+ .description('Launch interactive Terminal UI for task management')
107
+ .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
108
+ .action(tui_1.tuiCommand);
109
+ // Add hooks command group
110
+ const hooksCommand = program
111
+ .command('hooks')
112
+ .description('Manage AI agent hooks integration');
113
+ hooksCommand
114
+ .command('after-edit')
115
+ .description('Handle post-edit hook event (internal use by AI assistants)')
116
+ .action(hooks_1.afterEditCommand);
117
+ hooksCommand
118
+ .command('before-prompt')
119
+ .description('Handle pre-prompt hook event (internal use by AI assistants)')
120
+ .action(hooks_1.beforePromptCommand);
121
+ hooksCommand
122
+ .command('session-start')
123
+ .description('Handle session-start hook event (internal use by AI assistants)')
124
+ .action(hooks_1.sessionStartCommand);
125
+ hooksCommand
126
+ .command('install <tool>')
127
+ .description('Install brainfile hooks for an AI coding assistant')
128
+ .option('--scope <scope>', 'Installation scope: user or project', 'user')
129
+ .action((tool, options) => (0, hooks_1.installCommand)({ tool, scope: options.scope }));
130
+ hooksCommand
131
+ .command('uninstall <tool>')
132
+ .description('Uninstall brainfile hooks for an AI coding assistant')
133
+ .option('--scope <scope>', 'Scope to uninstall from: user, project, or all', 'user')
134
+ .action((tool, options) => (0, hooks_1.uninstallCommand)({ tool, scope: options.scope }));
135
+ hooksCommand
136
+ .command('list [tool]')
137
+ .description('List installed brainfile hooks')
138
+ .action((tool) => (0, hooks_1.listCommand)({ tool }));
139
+ program.parse();
140
+ } // end else block for CLI commands
100
141
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ interface TuiOptions {
2
+ file: string;
3
+ }
4
+ export declare function tuiCommand(options: TuiOptions): void;
5
+ export {};
6
+ //# sourceMappingURL=tui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/commands/tui.tsx"],"names":[],"mappings":"AAi5BA,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,QAoB7C"}