@brainfile/cli 0.4.1 → 0.4.3
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 +22 -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 +33 -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 +121 -0
- package/dist/utils/hook-settings.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -19,6 +19,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
19
19
|
|
|
20
20
|
### Security
|
|
21
21
|
|
|
22
|
+
## [0.4.3] - 2025-11-21
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
- **Cline Hooks Hanging Issue** - Fixed hook scripts hanging on startup
|
|
26
|
+
- Added 2-second timeout to stdin read using `read -t 2`
|
|
27
|
+
- Hooks now gracefully handle missing stdin data by using empty JSON object
|
|
28
|
+
- Prevents indefinite blocking when Cline doesn't provide stdin properly
|
|
29
|
+
- All three hooks (PostToolUse, UserPromptSubmit, TaskStart) updated
|
|
30
|
+
|
|
31
|
+
## [0.4.2] - 2025-11-21
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
- **Cline Hooks Support** - Added support for Cline VS Code extension
|
|
35
|
+
- `brainfile hooks install cline` - Install hooks for Cline
|
|
36
|
+
- `brainfile hooks uninstall cline` - Remove Cline hooks
|
|
37
|
+
- `brainfile hooks list cline` - View Cline hook status
|
|
38
|
+
- Creates executable hook scripts: PostToolUse, UserPromptSubmit, TaskStart
|
|
39
|
+
- Hooks return JSON with `cancel` and `contextModification` fields
|
|
40
|
+
- User scope: `~/Documents/Cline/Rules/Hooks/`
|
|
41
|
+
- Project scope: `.clinerules/hooks/`
|
|
42
|
+
- Full test coverage for Cline integration
|
|
43
|
+
|
|
22
44
|
## [0.4.0] - 2025-11-21
|
|
23
45
|
|
|
24
46
|
### 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;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,
|
|
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
|
@@ -183,15 +183,15 @@ function installCommand(options) {
|
|
|
183
183
|
try {
|
|
184
184
|
const tool = options.tool;
|
|
185
185
|
// Validate tool
|
|
186
|
-
if (tool !== 'claude-code' && tool !== 'cursor') {
|
|
186
|
+
if (tool !== 'claude-code' && tool !== 'cursor' && tool !== 'cline') {
|
|
187
187
|
console.error(chalk_1.default.red(`Error: Unknown tool '${options.tool}'`));
|
|
188
|
-
console.log(chalk_1.default.gray('Supported tools: claude-code, cursor'));
|
|
188
|
+
console.log(chalk_1.default.gray('Supported tools: claude-code, cursor, cline'));
|
|
189
189
|
process.exit(1);
|
|
190
190
|
}
|
|
191
191
|
// Install hooks
|
|
192
192
|
(0, hook_settings_1.installBrainfileHooks)(tool, options.scope);
|
|
193
193
|
const settingsPath = (0, hook_settings_1.getSettingsPath)(tool, options.scope);
|
|
194
|
-
const toolName = tool === 'claude-code' ? 'Claude Code' : 'Cursor';
|
|
194
|
+
const toolName = tool === 'claude-code' ? 'Claude Code' : tool === 'cursor' ? 'Cursor' : 'Cline';
|
|
195
195
|
console.log(chalk_1.default.green(`✅ Brainfile hooks installed for ${toolName}!`));
|
|
196
196
|
console.log(chalk_1.default.gray(` Settings: ${settingsPath}`));
|
|
197
197
|
console.log(chalk_1.default.gray(` Scope: ${options.scope}`));
|
|
@@ -202,11 +202,16 @@ function installCommand(options) {
|
|
|
202
202
|
console.log(chalk_1.default.gray(' • UserPromptSubmit → brainfile hooks before-prompt'));
|
|
203
203
|
console.log(chalk_1.default.gray(' • SessionStart → brainfile hooks session-start'));
|
|
204
204
|
}
|
|
205
|
-
else {
|
|
205
|
+
else if (tool === 'cursor') {
|
|
206
206
|
console.log(chalk_1.default.gray(' • afterFileEdit → brainfile hooks after-edit'));
|
|
207
207
|
console.log(chalk_1.default.gray(' • beforeSubmitPrompt → brainfile hooks before-prompt'));
|
|
208
208
|
console.log(chalk_1.default.gray(' • stop → brainfile hooks session-start'));
|
|
209
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
|
+
}
|
|
210
215
|
console.log('');
|
|
211
216
|
console.log(chalk_1.default.gray('Next steps:'));
|
|
212
217
|
console.log(chalk_1.default.gray(` 1. Restart ${toolName} to activate hooks`));
|
|
@@ -225,9 +230,9 @@ function uninstallCommand(options) {
|
|
|
225
230
|
try {
|
|
226
231
|
const tool = options.tool;
|
|
227
232
|
// Validate tool
|
|
228
|
-
if (tool !== 'claude-code' && tool !== 'cursor') {
|
|
233
|
+
if (tool !== 'claude-code' && tool !== 'cursor' && tool !== 'cline') {
|
|
229
234
|
console.error(chalk_1.default.red(`Error: Unknown tool '${options.tool}'`));
|
|
230
|
-
console.log(chalk_1.default.gray('Supported tools: claude-code, cursor'));
|
|
235
|
+
console.log(chalk_1.default.gray('Supported tools: claude-code, cursor, cline'));
|
|
231
236
|
process.exit(1);
|
|
232
237
|
}
|
|
233
238
|
const scopes = options.scope === 'all'
|
|
@@ -259,19 +264,26 @@ function listCommand(options) {
|
|
|
259
264
|
try {
|
|
260
265
|
const tools = options.tool
|
|
261
266
|
? [options.tool]
|
|
262
|
-
: ['claude-code', 'cursor'];
|
|
267
|
+
: ['claude-code', 'cursor', 'cline'];
|
|
263
268
|
console.log(chalk_1.default.bold.white('\nBrainfile Hooks Status\n'));
|
|
264
269
|
for (const tool of tools) {
|
|
265
|
-
const toolName = tool === 'claude-code' ? 'Claude Code' : 'Cursor';
|
|
270
|
+
const toolName = tool === 'claude-code' ? 'Claude Code' : tool === 'cursor' ? 'Cursor' : 'Cline';
|
|
266
271
|
console.log(chalk_1.default.cyan(toolName + ':'));
|
|
267
272
|
// Check user scope
|
|
268
273
|
const userInstalled = (0, hook_settings_1.areBrainfileHooksInstalled)(tool, 'user');
|
|
269
274
|
const userPath = (0, hook_settings_1.getSettingsPath)(tool, 'user');
|
|
270
275
|
console.log(chalk_1.default.white(` User scope (${userPath}):`));
|
|
271
276
|
if (userInstalled) {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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
|
+
}
|
|
275
287
|
}
|
|
276
288
|
else {
|
|
277
289
|
console.log(chalk_1.default.gray(' ✗ Not installed'));
|
|
@@ -281,9 +293,16 @@ function listCommand(options) {
|
|
|
281
293
|
const projectPath = (0, hook_settings_1.getSettingsPath)(tool, 'project');
|
|
282
294
|
console.log(chalk_1.default.white(` Project scope (${projectPath}):`));
|
|
283
295
|
if (projectInstalled) {
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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
|
+
}
|
|
287
306
|
}
|
|
288
307
|
else {
|
|
289
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,4CAgCC;AAKD,kDA8CC;AAKD,kDAqBC;AAKD,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,4CAgCC;AAKD,kDA8CC;AAKD,kDAqBC;AAKD,wCA+CC;AAKD,4CAoCC;AAKD,kCAyDC;AAxTD,mDAAqC;AACrC,kDAA0B;AAC1B,0DAOgC;AAChC,gEAA6E;AAC7E,oDAA4D;AAC5D,sDAAwE;AAExE;;GAEG;AACH,KAAK,UAAU,SAAS;IACtB,+EAA+E;IAC/E,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,IAAI,IAAI,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,KAAK,CAAC,CAAC;QAErC,uBAAuB;QACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,mCAAmC;QACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,4BAA4B;QAC5B,MAAM,aAAa,GAAG,IAAA,gCAAa,GAAE,CAAC;QACtC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAElD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,IAAA,8BAAgB,EAAC,KAAK,CAAC,CAAC;QAE3C,iBAAiB;QACjB,MAAM,aAAa,GAAG,IAAA,gCAAa,GAAE,CAAC;QACtC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAA,oCAAiB,EAAC,aAAa,CAAC,CAAC;QACpD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,sDAAsD;QACtD,MAAM,UAAU,GAAG,MAAM,IAAA,kCAAqB,EAAC,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;QAElF,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qDAAqD;QACrD,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,IAAI,IAAA,8BAAgB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAC,CAAC,yCAAyC;QAE5D,iBAAiB;QACjB,MAAM,aAAa,GAAG,IAAA,gCAAa,GAAE,CAAC;QACtC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAE3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,OAA+C;IAC5E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAqB,CAAC;QAE3C,gBAAgB;QAChB,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACpE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,gBAAgB;QAChB,IAAA,qCAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAE3C,MAAM,YAAY,GAAG,IAAA,+BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QAEjG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mCAAmC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAE9C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC9E,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,oBAAoB,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC,CAAC;IAEtF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,OAAuD;IACtF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAqB,CAAC;QAE3C,gBAAgB;QAChB,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACpE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAoB,OAAO,CAAC,KAAK,KAAK,KAAK;YACrD,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC;YACrB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAsB,CAAC,CAAC;QAErC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,IAAA,0CAA0B,EAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC5C,IAAA,uCAAuB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrC,OAAO,GAAG,IAAI,CAAC;gBAEf,MAAM,YAAY,GAAG,IAAA,+BAAe,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,KAAK,WAAW,CAAC,CAAC,CAAC;gBAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAClE,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,OAA0B;IACpD,IAAI,CAAC;QACH,MAAM,KAAK,GAAoB,OAAO,CAAC,IAAI;YACzC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAqB,CAAC;YACjC,CAAC,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAE5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YACjG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;YAExC,mBAAmB;YACnB,MAAM,aAAa,GAAG,IAAA,0CAA0B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,IAAA,+BAAe,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAE/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iBAAiB,QAAQ,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;oBAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;oBACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC,CAAC;oBACzF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC,CAAC;oBACtG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,sBAAsB;YACtB,MAAM,gBAAgB,GAAG,IAAA,0CAA0B,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACrE,MAAM,WAAW,GAAG,IAAA,+BAAe,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAErD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,WAAW,IAAI,CAAC,CAAC,CAAC;YAC9D,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;oBAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;oBACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC,CAAC;oBACzF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC,CAAC;oBACtG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -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;AAoDD;;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,79 @@ 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 with 2 second timeout
|
|
131
|
+
# If stdin is not ready within 2 seconds, use empty JSON
|
|
132
|
+
if read -t 2 -r first_line; then
|
|
133
|
+
input="$first_line"
|
|
134
|
+
while IFS= read -r line; do
|
|
135
|
+
input="$input"$'\\n'"$line"
|
|
136
|
+
done
|
|
137
|
+
else
|
|
138
|
+
# Timeout or no input - use empty object
|
|
139
|
+
input="{}"
|
|
140
|
+
fi
|
|
141
|
+
|
|
142
|
+
# Run brainfile command and capture output
|
|
143
|
+
output=$(echo "$input" | brainfile hooks ${command} 2>&1)
|
|
144
|
+
|
|
145
|
+
# For Cline, we need to return JSON with cancel and contextModification fields
|
|
146
|
+
# The brainfile command outputs text, so we wrap it in contextModification
|
|
147
|
+
if [ $? -eq 0 ]; then
|
|
148
|
+
# Success - wrap output in JSON
|
|
149
|
+
if [ -n "$output" ]; then
|
|
150
|
+
# Use jq to properly escape the output as JSON string
|
|
151
|
+
echo "$output" | jq -Rs '{cancel: false, contextModification: .}'
|
|
152
|
+
else
|
|
153
|
+
# No output, just return success
|
|
154
|
+
echo '{"cancel": false}'
|
|
155
|
+
fi
|
|
156
|
+
else
|
|
157
|
+
# Command failed - still allow continuation
|
|
158
|
+
echo '{"cancel": false}'
|
|
159
|
+
fi
|
|
160
|
+
`;
|
|
161
|
+
}
|
|
96
162
|
/**
|
|
97
163
|
* Add brainfile hooks to tool settings
|
|
98
164
|
*/
|
|
99
165
|
function installBrainfileHooks(tool, scope) {
|
|
100
166
|
const settings = readToolSettings(tool, scope);
|
|
167
|
+
if (tool === 'cline') {
|
|
168
|
+
// Cline uses individual hook script files
|
|
169
|
+
const hooksDir = getSettingsPath(tool, scope);
|
|
170
|
+
// Create hooks directory if it doesn't exist
|
|
171
|
+
if (!fs.existsSync(hooksDir)) {
|
|
172
|
+
fs.mkdirSync(hooksDir, { recursive: true });
|
|
173
|
+
}
|
|
174
|
+
// Create hook scripts
|
|
175
|
+
const hookTypes = [
|
|
176
|
+
'PostToolUse',
|
|
177
|
+
'UserPromptSubmit',
|
|
178
|
+
'TaskStart'
|
|
179
|
+
];
|
|
180
|
+
for (const hookType of hookTypes) {
|
|
181
|
+
const hookPath = path.join(hooksDir, hookType);
|
|
182
|
+
const scriptContent = createClineHookScript(hookType);
|
|
183
|
+
// Write the hook script
|
|
184
|
+
fs.writeFileSync(hookPath, scriptContent, { mode: 0o755 });
|
|
185
|
+
}
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
101
188
|
if (tool === 'claude-code') {
|
|
102
189
|
if (!settings.hooks) {
|
|
103
190
|
settings.hooks = {};
|
|
@@ -180,6 +267,26 @@ function installBrainfileHooks(tool, scope) {
|
|
|
180
267
|
* Remove brainfile hooks from tool settings
|
|
181
268
|
*/
|
|
182
269
|
function uninstallBrainfileHooks(tool, scope) {
|
|
270
|
+
if (tool === 'cline') {
|
|
271
|
+
// Cline uses individual hook script files
|
|
272
|
+
const hooksDir = getSettingsPath(tool, scope);
|
|
273
|
+
if (!fs.existsSync(hooksDir)) {
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
// Remove hook scripts
|
|
277
|
+
const hookFiles = ['PostToolUse', 'UserPromptSubmit', 'TaskStart'];
|
|
278
|
+
for (const hookFile of hookFiles) {
|
|
279
|
+
const hookPath = path.join(hooksDir, hookFile);
|
|
280
|
+
if (fs.existsSync(hookPath)) {
|
|
281
|
+
// Check if it's a brainfile hook before deleting
|
|
282
|
+
const content = fs.readFileSync(hookPath, 'utf-8');
|
|
283
|
+
if (content.includes('brainfile hooks')) {
|
|
284
|
+
fs.unlinkSync(hookPath);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
183
290
|
const settings = readToolSettings(tool, scope);
|
|
184
291
|
if (!settings.hooks) {
|
|
185
292
|
return;
|
|
@@ -218,6 +325,20 @@ function areBrainfileHooksInstalled(tool, scope) {
|
|
|
218
325
|
if (!fs.existsSync(settingsPath)) {
|
|
219
326
|
return false;
|
|
220
327
|
}
|
|
328
|
+
if (tool === 'cline') {
|
|
329
|
+
// Check if any brainfile hook scripts exist
|
|
330
|
+
const hookFiles = ['PostToolUse', 'UserPromptSubmit', 'TaskStart'];
|
|
331
|
+
for (const hookFile of hookFiles) {
|
|
332
|
+
const hookPath = path.join(settingsPath, hookFile);
|
|
333
|
+
if (fs.existsSync(hookPath)) {
|
|
334
|
+
const content = fs.readFileSync(hookPath, 'utf-8');
|
|
335
|
+
if (content.includes('brainfile hooks')) {
|
|
336
|
+
return true;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
return false;
|
|
341
|
+
}
|
|
221
342
|
const settings = readToolSettings(tool, scope);
|
|
222
343
|
if (!settings.hooks) {
|
|
223
344
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,0CAuBC;AAKD,4CAgCC;AAKD,8CAUC;AAuDD,sDAqIC;AAKD,0DAyEC;AAKD,gEA6DC;AAjaD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAKzB;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAmB,EAAE,KAAoB;IACvE,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAE7B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YACxD,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACrD,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gBAAgB;QAChB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YAC9D,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YAC3D,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,IAAmB,EAAE,KAAoB;IACxE,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAElD,6DAA6D;IAC7D,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAEnE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACnD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAAmB,EAAE,KAAoB,EAAE,QAAa;IACxF,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/C,uCAAuC;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,QAA0D;IACvF,MAAM,UAAU,GAAG;QACjB,aAAa,EAAE,YAAY;QAC3B,kBAAkB,EAAE,eAAe;QACnC,WAAW,EAAE,eAAe;KAC7B,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAErC,OAAO;;+BAEsB,QAAQ;;;;;;;;;;;;;;;;2CAgBI,OAAO;;;;;;;;;;;;;;;;;CAiBjD,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAAmB,EAAE,KAAoB;IAC7E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE9C,6CAA6C;QAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,sBAAsB;QACtB,MAAM,SAAS,GAA4D;YACzE,aAAa;YACb,kBAAkB;YAClB,WAAW;SACZ,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAEtD,wBAAwB;YACxB,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACpB,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;QACtB,CAAC;QAED,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAC9D,QAAQ,CAAC,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;QACxE,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;QAEhE,8CAA8C;QAC9C,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAChE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CACnF,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;gBAC9B,OAAO,EAAE,mBAAmB;gBAC5B,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,4BAA4B;qBACtC;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,mDAAmD;QACnD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAC1E,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CACtF,CAAC;QAEF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,+BAA+B;qBACzC;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,+CAA+C;QAC/C,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAClE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CACtF,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC/B,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,+BAA+B;qBACzC;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACpB,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;QACtB,CAAC;QAED,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;QAClE,QAAQ,CAAC,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC;QAC5E,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAEhD,gDAAgD;QAChD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CACpE,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAClD,CAAC;QAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;gBAChC,OAAO,EAAE,4BAA4B;aACtC,CAAC,CAAC;QACL,CAAC;QAED,qDAAqD;QACrD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAC9E,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC,CACrD,CAAC;QAEF,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBACrC,OAAO,EAAE,+BAA+B;aACzC,CAAC,CAAC;QACL,CAAC;QAED,uCAAuC;QACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAClD,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC,CACrD,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvB,OAAO,EAAE,+BAA+B;aACzC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,IAAmB,EAAE,KAAoB;IAC/E,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAEnE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,iDAAiD;gBACjD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACxC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,8CAA8C;QAC9C,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC/B,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CACxE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CACzE,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACpC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAClF,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CACzE,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAChC,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAC1E,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,8CAA8C;QAC9C,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACjC,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAC5E,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CACxC,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACtC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CACtF,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CACxC,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxB,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAC1D,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CAAC,IAAmB,EAAE,KAAoB;IAClF,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,4CAA4C;QAC5C,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAEnE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACnD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACnD,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACxC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CACjE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CACnF,IAAI,KAAK,CAAC;QAEX,MAAM,mBAAmB,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAC3E,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CACtF,IAAI,KAAK,CAAC;QAEX,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CACnE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CACtF,IAAI,KAAK,CAAC;QAEX,OAAO,cAAc,IAAI,mBAAmB,IAAI,eAAe,CAAC;IAClE,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CACrE,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAClD,IAAI,KAAK,CAAC;QAEX,MAAM,qBAAqB,GAAG,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAC/E,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC,CACrD,IAAI,KAAK,CAAC;QAEX,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CACnD,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC,CACrD,IAAI,KAAK,CAAC;QAEX,OAAO,gBAAgB,IAAI,qBAAqB,IAAI,OAAO,CAAC;IAC9D,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|