@brainfile/cli 0.4.0 → 0.4.2
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 +13 -0
- package/CLINE_INTEGRATION.md +188 -0
- package/README.md +25 -9
- package/dist/commands/hooks.d.ts.map +1 -1
- package/dist/commands/hooks.js +37 -14
- package/dist/commands/hooks.js.map +1 -1
- package/dist/utils/hook-parser.d.ts +2 -2
- package/dist/utils/hook-parser.d.ts.map +1 -1
- package/dist/utils/hook-parser.js +22 -1
- package/dist/utils/hook-parser.js.map +1 -1
- package/dist/utils/hook-settings.d.ts +1 -1
- package/dist/utils/hook-settings.d.ts.map +1 -1
- package/dist/utils/hook-settings.js +112 -0
- package/dist/utils/hook-settings.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -19,6 +19,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
19
19
|
|
|
20
20
|
### Security
|
|
21
21
|
|
|
22
|
+
## [0.4.2] - 2025-11-21
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
- **Cline Hooks Support** - Added support for Cline VS Code extension
|
|
26
|
+
- `brainfile hooks install cline` - Install hooks for Cline
|
|
27
|
+
- `brainfile hooks uninstall cline` - Remove Cline hooks
|
|
28
|
+
- `brainfile hooks list cline` - View Cline hook status
|
|
29
|
+
- Creates executable hook scripts: PostToolUse, UserPromptSubmit, TaskStart
|
|
30
|
+
- Hooks return JSON with `cancel` and `contextModification` fields
|
|
31
|
+
- User scope: `~/Documents/Cline/Rules/Hooks/`
|
|
32
|
+
- Project scope: `.clinerules/hooks/`
|
|
33
|
+
- Full test coverage for Cline integration
|
|
34
|
+
|
|
22
35
|
## [0.4.0] - 2025-11-21
|
|
23
36
|
|
|
24
37
|
### Added
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Cline Integration - Implementation Summary
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Successfully added Cline hooks support to @brainfile/cli, enabling automatic task status reminders during AI-assisted development with the Cline VS Code extension.
|
|
6
|
+
|
|
7
|
+
## Changes Made
|
|
8
|
+
|
|
9
|
+
### 1. Core Hook System (`src/utils/hook-settings.ts`)
|
|
10
|
+
|
|
11
|
+
**Added:**
|
|
12
|
+
- `'cline'` to `SupportedTool` type
|
|
13
|
+
- Cline-specific paths:
|
|
14
|
+
- User scope: `~/Documents/Cline/Rules/Hooks/`
|
|
15
|
+
- Project scope: `.clinerules/hooks/`
|
|
16
|
+
- `createClineHookScript()` function to generate executable bash scripts
|
|
17
|
+
- Cline support in `installBrainfileHooks()` - creates 3 executable hook files
|
|
18
|
+
- Cline support in `uninstallBrainfileHooks()` - removes hook scripts
|
|
19
|
+
- Cline support in `areBrainfileHooksInstalled()` - checks for hook scripts
|
|
20
|
+
- Cline support in `readToolSettings()` - reads hook file existence
|
|
21
|
+
|
|
22
|
+
**Hook Scripts Created:**
|
|
23
|
+
1. **PostToolUse** - Triggers after tool execution (file edits)
|
|
24
|
+
2. **UserPromptSubmit** - Triggers when user submits prompt
|
|
25
|
+
3. **TaskStart** - Triggers when new task starts
|
|
26
|
+
|
|
27
|
+
Each script:
|
|
28
|
+
- Has proper shebang (`#!/usr/bin/env bash`)
|
|
29
|
+
- Reads JSON from stdin
|
|
30
|
+
- Calls appropriate brainfile command
|
|
31
|
+
- Returns JSON with `cancel` and `contextModification` fields (Cline format)
|
|
32
|
+
- Uses `jq` for proper JSON escaping
|
|
33
|
+
|
|
34
|
+
### 2. Hook Commands (`src/commands/hooks.ts`)
|
|
35
|
+
|
|
36
|
+
**Updated:**
|
|
37
|
+
- `installCommand()` - Added Cline validation and installation
|
|
38
|
+
- `uninstallCommand()` - Added Cline validation and uninstallation
|
|
39
|
+
- `listCommand()` - Added Cline to tools list with proper hook names
|
|
40
|
+
- Error messages to include "cline" in supported tools list
|
|
41
|
+
|
|
42
|
+
### 3. Hook Parser (`src/utils/hook-parser.ts`)
|
|
43
|
+
|
|
44
|
+
**Updated:**
|
|
45
|
+
- `parseHookInput()` - Added Cline format detection
|
|
46
|
+
- Detects `clineVersion` and `hookName` fields
|
|
47
|
+
- Extracts file paths from `postToolUse.parameters`
|
|
48
|
+
- Extracts prompts from `userPromptSubmit.prompt`
|
|
49
|
+
- `shouldOutputJSON()` - Returns true for Cline hooks (they always need JSON)
|
|
50
|
+
|
|
51
|
+
### 4. Tests
|
|
52
|
+
|
|
53
|
+
**Added comprehensive test coverage:**
|
|
54
|
+
|
|
55
|
+
#### `hook-parser.test.ts` (3 new tests)
|
|
56
|
+
- ✓ Parse Cline PostToolUse format
|
|
57
|
+
- ✓ Parse Cline UserPromptSubmit format
|
|
58
|
+
- ✓ Parse Cline TaskStart format
|
|
59
|
+
- ✓ shouldOutputJSON returns true for Cline
|
|
60
|
+
|
|
61
|
+
#### `hook-settings.test.ts` (6 new tests)
|
|
62
|
+
- ✓ getSettingsPath returns correct paths for Cline
|
|
63
|
+
- ✓ readToolSettings returns empty hooks for Cline
|
|
64
|
+
- ✓ readToolSettings reads Cline hook scripts
|
|
65
|
+
- ✓ installBrainfileHooks creates executable scripts
|
|
66
|
+
- ✓ uninstallBrainfileHooks removes scripts
|
|
67
|
+
- ✓ areBrainfileHooksInstalled detects Cline hooks
|
|
68
|
+
|
|
69
|
+
#### `hooks.test.ts` (3 new tests)
|
|
70
|
+
- ✓ installCommand works for Cline
|
|
71
|
+
- ✓ listCommand shows Cline
|
|
72
|
+
- ✓ Cline appears in full tool list
|
|
73
|
+
|
|
74
|
+
**Test Results:** 12/12 Cline tests passing ✅
|
|
75
|
+
|
|
76
|
+
### 5. Documentation (`README.md`)
|
|
77
|
+
|
|
78
|
+
**Updated sections:**
|
|
79
|
+
- Added Cline to AI Agent Hooks introduction
|
|
80
|
+
- Added Cline to Supported AI Assistants list
|
|
81
|
+
- Added Cline installation examples
|
|
82
|
+
- Added Cline paths to Settings Locations
|
|
83
|
+
- Updated Hook Events table with Cline hook names
|
|
84
|
+
- Added Cline examples to Managing Hooks
|
|
85
|
+
- Updated Example Workflow to include Cline
|
|
86
|
+
- Updated Roadmap to reflect Cline support
|
|
87
|
+
|
|
88
|
+
## Usage
|
|
89
|
+
|
|
90
|
+
### Install Cline Hooks
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# User scope (recommended - applies to all projects)
|
|
94
|
+
brainfile hooks install cline --scope user
|
|
95
|
+
|
|
96
|
+
# Project scope (applies to current project only)
|
|
97
|
+
brainfile hooks install cline --scope project
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Verify Installation
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
brainfile hooks list cline
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Uninstall
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Remove from specific scope
|
|
110
|
+
brainfile hooks uninstall cline --scope user
|
|
111
|
+
|
|
112
|
+
# Remove from all scopes
|
|
113
|
+
brainfile hooks uninstall cline --scope all
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## How It Works
|
|
117
|
+
|
|
118
|
+
1. **Hook Scripts:** Created as executable bash files in Cline's hooks directory
|
|
119
|
+
2. **JSON Communication:** Scripts receive JSON via stdin, return JSON via stdout
|
|
120
|
+
3. **Output Format:** Uses Cline's expected format with `cancel` and `contextModification` fields
|
|
121
|
+
4. **Integration:** Hooks call existing `brainfile hooks` commands (after-edit, before-prompt, session-start)
|
|
122
|
+
5. **Error Handling:** Failures are silent - always returns `{"cancel": false}` to avoid blocking
|
|
123
|
+
|
|
124
|
+
## Cline Hook Flow
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
Cline Event → Hook Script → Read JSON → Execute brainfile command → Format output → Return JSON to Cline
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Example for PostToolUse:
|
|
131
|
+
```bash
|
|
132
|
+
# Input from Cline
|
|
133
|
+
{
|
|
134
|
+
"clineVersion": "3.0.0",
|
|
135
|
+
"hookName": "PostToolUse",
|
|
136
|
+
"postToolUse": {
|
|
137
|
+
"toolName": "write_to_file",
|
|
138
|
+
"parameters": { "target_file": "src/main.ts" }
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
# Hook script processes
|
|
143
|
+
brainfile hooks after-edit < input.json
|
|
144
|
+
|
|
145
|
+
# Output to Cline
|
|
146
|
+
{
|
|
147
|
+
"cancel": false,
|
|
148
|
+
"contextModification": "💡 Consider updating @brainfile.md"
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Files Modified
|
|
153
|
+
|
|
154
|
+
- `src/utils/hook-settings.ts` - Core hook system
|
|
155
|
+
- `src/utils/hook-parser.ts` - JSON parsing
|
|
156
|
+
- `src/commands/hooks.ts` - CLI commands
|
|
157
|
+
- `src/__tests__/hook-settings.test.ts` - Tests
|
|
158
|
+
- `src/__tests__/hook-parser.test.ts` - Tests
|
|
159
|
+
- `src/__tests__/hooks.test.ts` - Tests
|
|
160
|
+
- `README.md` - Documentation
|
|
161
|
+
|
|
162
|
+
## Compatibility
|
|
163
|
+
|
|
164
|
+
- **Cline Version:** 3.0.0+
|
|
165
|
+
- **Required Tools:** bash, jq (for JSON processing)
|
|
166
|
+
- **Platforms:** macOS, Linux (per Cline documentation)
|
|
167
|
+
- **Node.js:** Works with existing CLI requirements
|
|
168
|
+
|
|
169
|
+
## Testing
|
|
170
|
+
|
|
171
|
+
All Cline-related tests pass:
|
|
172
|
+
```bash
|
|
173
|
+
npm test -- hook
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Results:
|
|
177
|
+
- ✅ 12/12 Cline tests passing
|
|
178
|
+
- ✅ Hook script creation working
|
|
179
|
+
- ✅ Installation/uninstallation working
|
|
180
|
+
- ✅ List command showing Cline correctly
|
|
181
|
+
|
|
182
|
+
## Next Steps
|
|
183
|
+
|
|
184
|
+
1. Build and publish new version
|
|
185
|
+
2. Test with actual Cline extension in VS Code
|
|
186
|
+
3. Update CHANGELOG.md
|
|
187
|
+
4. Create release notes
|
|
188
|
+
|
package/README.md
CHANGED
|
@@ -253,7 +253,7 @@ brainfile template --use refactor \
|
|
|
253
253
|
|
|
254
254
|
### AI Agent Hooks
|
|
255
255
|
|
|
256
|
-
Integrate Brainfile with AI coding assistants (Claude Code, Cursor) to get automatic reminders to update task status during development:
|
|
256
|
+
Integrate Brainfile with AI coding assistants (Claude Code, Cursor, Cline) to get automatic reminders to update task status during development:
|
|
257
257
|
|
|
258
258
|
```bash
|
|
259
259
|
# Install hooks for Claude Code (user scope)
|
|
@@ -262,6 +262,9 @@ brainfile hooks install claude-code
|
|
|
262
262
|
# Install hooks for Cursor (project scope)
|
|
263
263
|
brainfile hooks install cursor --scope project
|
|
264
264
|
|
|
265
|
+
# Install hooks for Cline (user scope)
|
|
266
|
+
brainfile hooks install cline --scope user
|
|
267
|
+
|
|
265
268
|
# List installed hooks
|
|
266
269
|
brainfile hooks list
|
|
267
270
|
|
|
@@ -272,6 +275,7 @@ brainfile hooks uninstall claude-code --scope all
|
|
|
272
275
|
**Supported AI Assistants:**
|
|
273
276
|
- **Claude Code** - Anthropic's official CLI
|
|
274
277
|
- **Cursor** - AI-powered code editor
|
|
278
|
+
- **Cline** - VS Code extension for autonomous coding
|
|
275
279
|
|
|
276
280
|
**How it Works:**
|
|
277
281
|
|
|
@@ -299,9 +303,13 @@ brainfile hooks install claude-code --scope user
|
|
|
299
303
|
# Project scope (applies to current project only)
|
|
300
304
|
brainfile hooks install cursor --scope project
|
|
301
305
|
|
|
302
|
-
# Install for
|
|
306
|
+
# Install for Cline (user scope recommended)
|
|
307
|
+
brainfile hooks install cline --scope user
|
|
308
|
+
|
|
309
|
+
# Install for all tools
|
|
303
310
|
brainfile hooks install claude-code
|
|
304
311
|
brainfile hooks install cursor
|
|
312
|
+
brainfile hooks install cline
|
|
305
313
|
```
|
|
306
314
|
|
|
307
315
|
**Settings Locations:**
|
|
@@ -314,25 +322,33 @@ Cursor:
|
|
|
314
322
|
- User: `~/.cursor/hooks.json`
|
|
315
323
|
- Project: `.cursor/hooks.json`
|
|
316
324
|
|
|
325
|
+
Cline:
|
|
326
|
+
- User: `~/Documents/Cline/Rules/Hooks/`
|
|
327
|
+
- Project: `.clinerules/hooks/`
|
|
328
|
+
|
|
317
329
|
**Hook Events:**
|
|
318
330
|
|
|
319
331
|
| Event | Trigger | Behavior |
|
|
320
332
|
|-------|---------|----------|
|
|
321
|
-
| PostToolUse / afterFileEdit | After editing files | Gentle reminder to update brainfile |
|
|
322
|
-
| UserPromptSubmit / beforeSubmitPrompt | Before processing new prompts | Smart staleness check |
|
|
323
|
-
| SessionStart / stop | When session starts/ends | Welcome message if brainfile detected |
|
|
333
|
+
| PostToolUse / afterFileEdit / PostToolUse | After editing files | Gentle reminder to update brainfile |
|
|
334
|
+
| UserPromptSubmit / beforeSubmitPrompt / UserPromptSubmit | Before processing new prompts | Smart staleness check |
|
|
335
|
+
| SessionStart / stop / TaskStart | When session starts/ends | Welcome message if brainfile detected |
|
|
336
|
+
|
|
337
|
+
*Note: Hook names are shown as: Claude Code / Cursor / Cline*
|
|
324
338
|
|
|
325
339
|
**Managing Hooks:**
|
|
326
340
|
|
|
327
341
|
```bash
|
|
328
342
|
# List hooks for specific tool
|
|
329
343
|
brainfile hooks list claude-code
|
|
344
|
+
brainfile hooks list cline
|
|
330
345
|
|
|
331
346
|
# List all hooks
|
|
332
347
|
brainfile hooks list
|
|
333
348
|
|
|
334
349
|
# Uninstall from user scope
|
|
335
350
|
brainfile hooks uninstall claude-code --scope user
|
|
351
|
+
brainfile hooks uninstall cline --scope user
|
|
336
352
|
|
|
337
353
|
# Uninstall from all scopes
|
|
338
354
|
brainfile hooks uninstall cursor --scope all
|
|
@@ -350,10 +366,10 @@ brainfile hooks uninstall cursor --scope all
|
|
|
350
366
|
**Example Workflow:**
|
|
351
367
|
|
|
352
368
|
```bash
|
|
353
|
-
# 1. Install hooks
|
|
354
|
-
brainfile hooks install claude-code
|
|
369
|
+
# 1. Install hooks (choose your preferred AI assistant)
|
|
370
|
+
brainfile hooks install claude-code # or cursor, or cline
|
|
355
371
|
|
|
356
|
-
# 2. Start coding with
|
|
372
|
+
# 2. Start coding with your AI assistant
|
|
357
373
|
# - Edit a file → "💡 Consider updating @brainfile.md"
|
|
358
374
|
# - Update brainfile → Edit another file → Continue working
|
|
359
375
|
# - 6+ minutes pass → New prompt → "⚠️ Files modified but @brainfile.md hasn't been updated"
|
|
@@ -389,7 +405,7 @@ Task IDs are automatically generated with a timestamp and random string to ensur
|
|
|
389
405
|
- `brainfile move` - Move tasks between columns
|
|
390
406
|
- `brainfile template` - Template management
|
|
391
407
|
- `brainfile lint` - Validate and auto-fix syntax
|
|
392
|
-
- `brainfile hooks` - AI agent hooks integration (Claude Code, Cursor)
|
|
408
|
+
- `brainfile hooks` - AI agent hooks integration (Claude Code, Cursor, Cline)
|
|
393
409
|
- Colored output and pretty-printing
|
|
394
410
|
- Binary compilation for distribution
|
|
395
411
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,aAAa,EAKd,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,aAAa,EAKd,MAAM,wBAAwB,CAAC;AAoChC;;GAEG;AACH,wBAAsB,gBAAgB,kBAgCrC;AAED;;GAEG;AACH,wBAAsB,mBAAmB,kBA8CxC;AAED;;GAEG;AACH,wBAAsB,mBAAmB,kBAqBxC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,QA+C7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,GAAG,KAAK,CAAA;CAAE,QAoCvF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,QAyDrD"}
|
package/dist/commands/hooks.js
CHANGED
|
@@ -52,6 +52,10 @@ const hook_parser_1 = require("../utils/hook-parser");
|
|
|
52
52
|
* Read JSON from stdin
|
|
53
53
|
*/
|
|
54
54
|
async function readStdin() {
|
|
55
|
+
// If stdin is a TTY (terminal), no data is being piped, so return empty object
|
|
56
|
+
if (process.stdin.isTTY) {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
55
59
|
return new Promise((resolve) => {
|
|
56
60
|
let data = '';
|
|
57
61
|
const rl = readline.createInterface({
|
|
@@ -179,15 +183,15 @@ function installCommand(options) {
|
|
|
179
183
|
try {
|
|
180
184
|
const tool = options.tool;
|
|
181
185
|
// Validate tool
|
|
182
|
-
if (tool !== 'claude-code' && tool !== 'cursor') {
|
|
186
|
+
if (tool !== 'claude-code' && tool !== 'cursor' && tool !== 'cline') {
|
|
183
187
|
console.error(chalk_1.default.red(`Error: Unknown tool '${options.tool}'`));
|
|
184
|
-
console.log(chalk_1.default.gray('Supported tools: claude-code, cursor'));
|
|
188
|
+
console.log(chalk_1.default.gray('Supported tools: claude-code, cursor, cline'));
|
|
185
189
|
process.exit(1);
|
|
186
190
|
}
|
|
187
191
|
// Install hooks
|
|
188
192
|
(0, hook_settings_1.installBrainfileHooks)(tool, options.scope);
|
|
189
193
|
const settingsPath = (0, hook_settings_1.getSettingsPath)(tool, options.scope);
|
|
190
|
-
const toolName = tool === 'claude-code' ? 'Claude Code' : 'Cursor';
|
|
194
|
+
const toolName = tool === 'claude-code' ? 'Claude Code' : tool === 'cursor' ? 'Cursor' : 'Cline';
|
|
191
195
|
console.log(chalk_1.default.green(`✅ Brainfile hooks installed for ${toolName}!`));
|
|
192
196
|
console.log(chalk_1.default.gray(` Settings: ${settingsPath}`));
|
|
193
197
|
console.log(chalk_1.default.gray(` Scope: ${options.scope}`));
|
|
@@ -198,11 +202,16 @@ function installCommand(options) {
|
|
|
198
202
|
console.log(chalk_1.default.gray(' • UserPromptSubmit → brainfile hooks before-prompt'));
|
|
199
203
|
console.log(chalk_1.default.gray(' • SessionStart → brainfile hooks session-start'));
|
|
200
204
|
}
|
|
201
|
-
else {
|
|
205
|
+
else if (tool === 'cursor') {
|
|
202
206
|
console.log(chalk_1.default.gray(' • afterFileEdit → brainfile hooks after-edit'));
|
|
203
207
|
console.log(chalk_1.default.gray(' • beforeSubmitPrompt → brainfile hooks before-prompt'));
|
|
204
208
|
console.log(chalk_1.default.gray(' • stop → brainfile hooks session-start'));
|
|
205
209
|
}
|
|
210
|
+
else if (tool === 'cline') {
|
|
211
|
+
console.log(chalk_1.default.gray(' • PostToolUse → brainfile hooks after-edit'));
|
|
212
|
+
console.log(chalk_1.default.gray(' • UserPromptSubmit → brainfile hooks before-prompt'));
|
|
213
|
+
console.log(chalk_1.default.gray(' • TaskStart → brainfile hooks session-start'));
|
|
214
|
+
}
|
|
206
215
|
console.log('');
|
|
207
216
|
console.log(chalk_1.default.gray('Next steps:'));
|
|
208
217
|
console.log(chalk_1.default.gray(` 1. Restart ${toolName} to activate hooks`));
|
|
@@ -221,9 +230,9 @@ function uninstallCommand(options) {
|
|
|
221
230
|
try {
|
|
222
231
|
const tool = options.tool;
|
|
223
232
|
// Validate tool
|
|
224
|
-
if (tool !== 'claude-code' && tool !== 'cursor') {
|
|
233
|
+
if (tool !== 'claude-code' && tool !== 'cursor' && tool !== 'cline') {
|
|
225
234
|
console.error(chalk_1.default.red(`Error: Unknown tool '${options.tool}'`));
|
|
226
|
-
console.log(chalk_1.default.gray('Supported tools: claude-code, cursor'));
|
|
235
|
+
console.log(chalk_1.default.gray('Supported tools: claude-code, cursor, cline'));
|
|
227
236
|
process.exit(1);
|
|
228
237
|
}
|
|
229
238
|
const scopes = options.scope === 'all'
|
|
@@ -255,19 +264,26 @@ function listCommand(options) {
|
|
|
255
264
|
try {
|
|
256
265
|
const tools = options.tool
|
|
257
266
|
? [options.tool]
|
|
258
|
-
: ['claude-code', 'cursor'];
|
|
267
|
+
: ['claude-code', 'cursor', 'cline'];
|
|
259
268
|
console.log(chalk_1.default.bold.white('\nBrainfile Hooks Status\n'));
|
|
260
269
|
for (const tool of tools) {
|
|
261
|
-
const toolName = tool === 'claude-code' ? 'Claude Code' : 'Cursor';
|
|
270
|
+
const toolName = tool === 'claude-code' ? 'Claude Code' : tool === 'cursor' ? 'Cursor' : 'Cline';
|
|
262
271
|
console.log(chalk_1.default.cyan(toolName + ':'));
|
|
263
272
|
// Check user scope
|
|
264
273
|
const userInstalled = (0, hook_settings_1.areBrainfileHooksInstalled)(tool, 'user');
|
|
265
274
|
const userPath = (0, hook_settings_1.getSettingsPath)(tool, 'user');
|
|
266
275
|
console.log(chalk_1.default.white(` User scope (${userPath}):`));
|
|
267
276
|
if (userInstalled) {
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
277
|
+
if (tool === 'cline') {
|
|
278
|
+
console.log(chalk_1.default.green(' ✓ PostToolUse → brainfile hooks after-edit'));
|
|
279
|
+
console.log(chalk_1.default.green(' ✓ UserPromptSubmit → brainfile hooks before-prompt'));
|
|
280
|
+
console.log(chalk_1.default.green(' ✓ TaskStart → brainfile hooks session-start'));
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
console.log(chalk_1.default.green(' ✓ PostToolUse/afterFileEdit → brainfile hooks after-edit'));
|
|
284
|
+
console.log(chalk_1.default.green(' ✓ UserPromptSubmit/beforeSubmitPrompt → brainfile hooks before-prompt'));
|
|
285
|
+
console.log(chalk_1.default.green(' ✓ SessionStart/stop → brainfile hooks session-start'));
|
|
286
|
+
}
|
|
271
287
|
}
|
|
272
288
|
else {
|
|
273
289
|
console.log(chalk_1.default.gray(' ✗ Not installed'));
|
|
@@ -277,9 +293,16 @@ function listCommand(options) {
|
|
|
277
293
|
const projectPath = (0, hook_settings_1.getSettingsPath)(tool, 'project');
|
|
278
294
|
console.log(chalk_1.default.white(` Project scope (${projectPath}):`));
|
|
279
295
|
if (projectInstalled) {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
296
|
+
if (tool === 'cline') {
|
|
297
|
+
console.log(chalk_1.default.green(' ✓ PostToolUse → brainfile hooks after-edit'));
|
|
298
|
+
console.log(chalk_1.default.green(' ✓ UserPromptSubmit → brainfile hooks before-prompt'));
|
|
299
|
+
console.log(chalk_1.default.green(' ✓ TaskStart → brainfile hooks session-start'));
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
console.log(chalk_1.default.green(' ✓ PostToolUse/afterFileEdit → brainfile hooks after-edit'));
|
|
303
|
+
console.log(chalk_1.default.green(' ✓ UserPromptSubmit/beforeSubmitPrompt → brainfile hooks before-prompt'));
|
|
304
|
+
console.log(chalk_1.default.green(' ✓ SessionStart/stop → brainfile hooks session-start'));
|
|
305
|
+
}
|
|
283
306
|
}
|
|
284
307
|
else {
|
|
285
308
|
console.log(chalk_1.default.gray(' ✗ Not installed'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,10 @@ export declare function parseHookInput(input: any): {
|
|
|
6
6
|
filePath?: string;
|
|
7
7
|
command?: string;
|
|
8
8
|
prompt?: string;
|
|
9
|
-
tool?: 'claude-code' | 'cursor' | 'unknown';
|
|
9
|
+
tool?: 'claude-code' | 'cursor' | 'cline' | 'unknown';
|
|
10
10
|
};
|
|
11
11
|
/**
|
|
12
|
-
* Determine if we should output JSON for Cursor's beforeSubmitPrompt
|
|
12
|
+
* Determine if we should output JSON for Cursor's beforeSubmitPrompt or Cline hooks
|
|
13
13
|
*/
|
|
14
14
|
export declare function shouldOutputJSON(input: any): boolean;
|
|
15
15
|
//# sourceMappingURL=hook-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-parser.d.ts","sourceRoot":"","sources":["../../src/utils/hook-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"hook-parser.d.ts","sourceRoot":"","sources":["../../src/utils/hook-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;CACvD,CAsDA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAQpD"}
|
|
@@ -13,6 +13,22 @@ function parseHookInput(input) {
|
|
|
13
13
|
tool: 'unknown'
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
+
// Cline format - check for clineVersion and hookName
|
|
17
|
+
if (input.clineVersion && input.hookName) {
|
|
18
|
+
// Extract file path from postToolUse parameters if available
|
|
19
|
+
let filePath;
|
|
20
|
+
if (input.postToolUse?.parameters?.target_file) {
|
|
21
|
+
filePath = input.postToolUse.parameters.target_file;
|
|
22
|
+
}
|
|
23
|
+
else if (input.postToolUse?.parameters?.file_path) {
|
|
24
|
+
filePath = input.postToolUse.parameters.file_path;
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
filePath,
|
|
28
|
+
prompt: input.userPromptSubmit?.prompt,
|
|
29
|
+
tool: 'cline'
|
|
30
|
+
};
|
|
31
|
+
}
|
|
16
32
|
// Claude Code format
|
|
17
33
|
if (input.tool_input) {
|
|
18
34
|
return {
|
|
@@ -40,9 +56,14 @@ function parseHookInput(input) {
|
|
|
40
56
|
};
|
|
41
57
|
}
|
|
42
58
|
/**
|
|
43
|
-
* Determine if we should output JSON for Cursor's beforeSubmitPrompt
|
|
59
|
+
* Determine if we should output JSON for Cursor's beforeSubmitPrompt or Cline hooks
|
|
44
60
|
*/
|
|
45
61
|
function shouldOutputJSON(input) {
|
|
62
|
+
// Cline always expects JSON output
|
|
63
|
+
if (input && input.clineVersion && input.hookName) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
// Cursor's beforeSubmitPrompt expects JSON
|
|
46
67
|
return input.hook_event_name === 'beforeSubmitPrompt';
|
|
47
68
|
}
|
|
48
69
|
//# sourceMappingURL=hook-parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-parser.js","sourceRoot":"","sources":["../../src/utils/hook-parser.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"hook-parser.js","sourceRoot":"","sources":["../../src/utils/hook-parser.ts"],"names":[],"mappings":";;AAIA,wCA2DC;AAKD,4CAQC;AA5ED;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAU;IAMvC,iCAAiC;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzC,6DAA6D;QAC7D,IAAI,QAA4B,CAAC;QAEjC,IAAI,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;YAC/C,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC;QACtD,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;YACpD,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;QACpD,CAAC;QAED,OAAO;YACL,QAAQ;YACR,MAAM,EAAE,KAAK,CAAC,gBAAgB,EAAE,MAAM;YACtC,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS;YACpC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;YACjC,IAAI,EAAE,aAAa;SACpB,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa;SACvD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;KAChB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAU;IACzC,mCAAmC;IACnC,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAA2C;IAC3C,OAAO,KAAK,CAAC,eAAe,KAAK,oBAAoB,CAAC;AACxD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-settings.d.ts","sourceRoot":"","sources":["../../src/utils/hook-settings.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"hook-settings.d.ts","sourceRoot":"","sources":["../../src/utils/hook-settings.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/C;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAuBjF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,GAAG,CAgC/E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAUhG;AA2CD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAqIrF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAyEvF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CA6D7F"}
|
|
@@ -53,6 +53,8 @@ function getSettingsPath(tool, scope) {
|
|
|
53
53
|
return path.join(homeDir, '.claude', 'settings.json');
|
|
54
54
|
case 'cursor':
|
|
55
55
|
return path.join(homeDir, '.cursor', 'hooks.json');
|
|
56
|
+
case 'cline':
|
|
57
|
+
return path.join(homeDir, 'Documents', 'Cline', 'Rules', 'Hooks');
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
else {
|
|
@@ -62,6 +64,8 @@ function getSettingsPath(tool, scope) {
|
|
|
62
64
|
return path.join(process.cwd(), '.claude', 'settings.json');
|
|
63
65
|
case 'cursor':
|
|
64
66
|
return path.join(process.cwd(), '.cursor', 'hooks.json');
|
|
67
|
+
case 'cline':
|
|
68
|
+
return path.join(process.cwd(), '.clinerules', 'hooks');
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
}
|
|
@@ -70,6 +74,21 @@ function getSettingsPath(tool, scope) {
|
|
|
70
74
|
*/
|
|
71
75
|
function readToolSettings(tool, scope) {
|
|
72
76
|
const settingsPath = getSettingsPath(tool, scope);
|
|
77
|
+
// Cline uses individual hook script files, not a JSON config
|
|
78
|
+
if (tool === 'cline') {
|
|
79
|
+
if (!fs.existsSync(settingsPath)) {
|
|
80
|
+
return { hooks: {} };
|
|
81
|
+
}
|
|
82
|
+
const hooks = {};
|
|
83
|
+
const hookFiles = ['PostToolUse', 'UserPromptSubmit', 'TaskStart'];
|
|
84
|
+
for (const hookFile of hookFiles) {
|
|
85
|
+
const hookPath = path.join(settingsPath, hookFile);
|
|
86
|
+
if (fs.existsSync(hookPath)) {
|
|
87
|
+
hooks[hookFile] = true;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return { hooks };
|
|
91
|
+
}
|
|
73
92
|
if (!fs.existsSync(settingsPath)) {
|
|
74
93
|
return tool === 'cursor' ? { version: 1, hooks: {} } : {};
|
|
75
94
|
}
|
|
@@ -93,11 +112,70 @@ function writeToolSettings(tool, scope, settings) {
|
|
|
93
112
|
}
|
|
94
113
|
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf-8');
|
|
95
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Create Cline hook script content
|
|
117
|
+
*/
|
|
118
|
+
function createClineHookScript(hookType) {
|
|
119
|
+
const commandMap = {
|
|
120
|
+
'PostToolUse': 'after-edit',
|
|
121
|
+
'UserPromptSubmit': 'before-prompt',
|
|
122
|
+
'TaskStart': 'session-start'
|
|
123
|
+
};
|
|
124
|
+
const command = commandMap[hookType];
|
|
125
|
+
return `#!/usr/bin/env bash
|
|
126
|
+
|
|
127
|
+
# Brainfile hook for Cline - ${hookType}
|
|
128
|
+
# Automatically generated by @brainfile/cli
|
|
129
|
+
|
|
130
|
+
# Read JSON input from stdin
|
|
131
|
+
input=$(cat)
|
|
132
|
+
|
|
133
|
+
# Run brainfile command and capture output
|
|
134
|
+
output=$(echo "$input" | brainfile hooks ${command} 2>&1)
|
|
135
|
+
|
|
136
|
+
# For Cline, we need to return JSON with cancel and contextModification fields
|
|
137
|
+
# The brainfile command outputs text, so we wrap it in contextModification
|
|
138
|
+
if [ $? -eq 0 ]; then
|
|
139
|
+
# Success - wrap output in JSON
|
|
140
|
+
if [ -n "$output" ]; then
|
|
141
|
+
# Use jq to properly escape the output as JSON string
|
|
142
|
+
echo "$output" | jq -Rs '{cancel: false, contextModification: .}'
|
|
143
|
+
else
|
|
144
|
+
# No output, just return success
|
|
145
|
+
echo '{"cancel": false}'
|
|
146
|
+
fi
|
|
147
|
+
else
|
|
148
|
+
# Command failed - still allow continuation
|
|
149
|
+
echo '{"cancel": false}'
|
|
150
|
+
fi
|
|
151
|
+
`;
|
|
152
|
+
}
|
|
96
153
|
/**
|
|
97
154
|
* Add brainfile hooks to tool settings
|
|
98
155
|
*/
|
|
99
156
|
function installBrainfileHooks(tool, scope) {
|
|
100
157
|
const settings = readToolSettings(tool, scope);
|
|
158
|
+
if (tool === 'cline') {
|
|
159
|
+
// Cline uses individual hook script files
|
|
160
|
+
const hooksDir = getSettingsPath(tool, scope);
|
|
161
|
+
// Create hooks directory if it doesn't exist
|
|
162
|
+
if (!fs.existsSync(hooksDir)) {
|
|
163
|
+
fs.mkdirSync(hooksDir, { recursive: true });
|
|
164
|
+
}
|
|
165
|
+
// Create hook scripts
|
|
166
|
+
const hookTypes = [
|
|
167
|
+
'PostToolUse',
|
|
168
|
+
'UserPromptSubmit',
|
|
169
|
+
'TaskStart'
|
|
170
|
+
];
|
|
171
|
+
for (const hookType of hookTypes) {
|
|
172
|
+
const hookPath = path.join(hooksDir, hookType);
|
|
173
|
+
const scriptContent = createClineHookScript(hookType);
|
|
174
|
+
// Write the hook script
|
|
175
|
+
fs.writeFileSync(hookPath, scriptContent, { mode: 0o755 });
|
|
176
|
+
}
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
101
179
|
if (tool === 'claude-code') {
|
|
102
180
|
if (!settings.hooks) {
|
|
103
181
|
settings.hooks = {};
|
|
@@ -180,6 +258,26 @@ function installBrainfileHooks(tool, scope) {
|
|
|
180
258
|
* Remove brainfile hooks from tool settings
|
|
181
259
|
*/
|
|
182
260
|
function uninstallBrainfileHooks(tool, scope) {
|
|
261
|
+
if (tool === 'cline') {
|
|
262
|
+
// Cline uses individual hook script files
|
|
263
|
+
const hooksDir = getSettingsPath(tool, scope);
|
|
264
|
+
if (!fs.existsSync(hooksDir)) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
// Remove hook scripts
|
|
268
|
+
const hookFiles = ['PostToolUse', 'UserPromptSubmit', 'TaskStart'];
|
|
269
|
+
for (const hookFile of hookFiles) {
|
|
270
|
+
const hookPath = path.join(hooksDir, hookFile);
|
|
271
|
+
if (fs.existsSync(hookPath)) {
|
|
272
|
+
// Check if it's a brainfile hook before deleting
|
|
273
|
+
const content = fs.readFileSync(hookPath, 'utf-8');
|
|
274
|
+
if (content.includes('brainfile hooks')) {
|
|
275
|
+
fs.unlinkSync(hookPath);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
183
281
|
const settings = readToolSettings(tool, scope);
|
|
184
282
|
if (!settings.hooks) {
|
|
185
283
|
return;
|
|
@@ -218,6 +316,20 @@ function areBrainfileHooksInstalled(tool, scope) {
|
|
|
218
316
|
if (!fs.existsSync(settingsPath)) {
|
|
219
317
|
return false;
|
|
220
318
|
}
|
|
319
|
+
if (tool === 'cline') {
|
|
320
|
+
// Check if any brainfile hook scripts exist
|
|
321
|
+
const hookFiles = ['PostToolUse', 'UserPromptSubmit', 'TaskStart'];
|
|
322
|
+
for (const hookFile of hookFiles) {
|
|
323
|
+
const hookPath = path.join(settingsPath, hookFile);
|
|
324
|
+
if (fs.existsSync(hookPath)) {
|
|
325
|
+
const content = fs.readFileSync(hookPath, 'utf-8');
|
|
326
|
+
if (content.includes('brainfile hooks')) {
|
|
327
|
+
return true;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
return false;
|
|
332
|
+
}
|
|
221
333
|
const settings = readToolSettings(tool, scope);
|
|
222
334
|
if (!settings.hooks) {
|
|
223
335
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-settings.js","sourceRoot":"","sources":["../../src/utils/hook-settings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook-settings.js","sourceRoot":"","sources":["../../src/utils/hook-settings.ts"],"names":[],"mappings":"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"}
|