@brainfile/cli 0.12.0 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/cli.js +22 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/config.d.ts +29 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +210 -0
- package/dist/commands/config.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.12.1] - 2025-11-27
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **config command** - Manage CLI configuration
|
|
14
|
+
- `brainfile config list` - Show all config values
|
|
15
|
+
- `brainfile config get <key>` - Get a specific value
|
|
16
|
+
- `brainfile config set <key> <value>` - Set a value
|
|
17
|
+
- `brainfile config path` - Show config file path
|
|
18
|
+
- Configuration stored at `~/.config/brainfile/config.json`
|
|
19
|
+
|
|
20
|
+
## [0.12.0] - 2025-11-27
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
- **External archive destinations** - Archive completed tasks to GitHub Issues or Linear
|
|
24
|
+
- `brainfile archive --task task-1 --to=github` - Create closed GitHub Issue
|
|
25
|
+
- `brainfile archive --task task-1 --to=linear` - Create completed Linear issue
|
|
26
|
+
- `brainfile archive --all --to=github` - Batch archive entire local archive
|
|
27
|
+
- `brainfile archive --dry-run` - Preview without creating
|
|
28
|
+
- Reads `archive.destination` from brainfile.md for project-level defaults
|
|
29
|
+
- Reads `~/.config/brainfile/config.json` for user-level defaults
|
|
30
|
+
- **auth command** - Authenticate with external services
|
|
31
|
+
- `brainfile auth github` - OAuth device flow (opens browser) or detects gh CLI
|
|
32
|
+
- `brainfile auth github --token <PAT>` - Manual Personal Access Token
|
|
33
|
+
- `brainfile auth linear --token <API_KEY>` - Linear API key authentication
|
|
34
|
+
- `brainfile auth status` - Show authentication status for all providers
|
|
35
|
+
- `brainfile auth logout [provider]` - Clear stored credentials
|
|
36
|
+
- `brainfile auth logout --all` - Clear all credentials
|
|
37
|
+
- Secure token storage in `~/.config/brainfile/auth.json`
|
|
38
|
+
- Automatic gh CLI detection (piggybacks on existing auth)
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
- Upgraded to @brainfile/core@^0.9.0 with task formatter functions
|
|
42
|
+
|
|
10
43
|
## [0.11.1] - 2025-11-27
|
|
11
44
|
|
|
12
45
|
### Fixed
|
package/dist/cli.js
CHANGED
|
@@ -19,10 +19,11 @@ const auth_1 = require("./commands/auth");
|
|
|
19
19
|
const subtask_1 = require("./commands/subtask");
|
|
20
20
|
const mcp_1 = require("./commands/mcp");
|
|
21
21
|
const hooks_1 = require("./commands/hooks");
|
|
22
|
+
const config_1 = require("./commands/config");
|
|
22
23
|
// Read version from package.json
|
|
23
24
|
const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'package.json'), 'utf8'));
|
|
24
25
|
// Known subcommands to distinguish from file paths
|
|
25
|
-
const SUBCOMMANDS = ['init', 'list', 'add', 'move', 'patch', 'delete', 'archive', 'restore', 'subtask', 'template', 'lint', 'tui', 'hooks', 'mcp', 'auth', 'help'];
|
|
26
|
+
const SUBCOMMANDS = ['init', 'list', 'add', 'move', 'patch', 'delete', 'archive', 'restore', 'subtask', 'template', 'lint', 'tui', 'hooks', 'mcp', 'auth', 'config', 'help'];
|
|
26
27
|
// Check if first arg looks like a file path (not a subcommand or flag)
|
|
27
28
|
function shouldLaunchTUI() {
|
|
28
29
|
const args = process.argv.slice(2);
|
|
@@ -220,6 +221,26 @@ else {
|
|
|
220
221
|
.description('Log out from a provider (github, linear, or --all)')
|
|
221
222
|
.option('--all', 'Log out from all providers')
|
|
222
223
|
.action(auth_1.authLogoutCommand);
|
|
224
|
+
// Add config command group
|
|
225
|
+
const configCmd = program
|
|
226
|
+
.command('config')
|
|
227
|
+
.description('Manage user configuration (~/.config/brainfile/config.json)');
|
|
228
|
+
configCmd
|
|
229
|
+
.command('list')
|
|
230
|
+
.description('Show all config values')
|
|
231
|
+
.action(() => (0, config_1.configCommand)('list', {}));
|
|
232
|
+
configCmd
|
|
233
|
+
.command('get <key>')
|
|
234
|
+
.description('Get a specific config value')
|
|
235
|
+
.action((key) => (0, config_1.configCommand)('get', { key }));
|
|
236
|
+
configCmd
|
|
237
|
+
.command('set <key> <value>')
|
|
238
|
+
.description('Set a config value')
|
|
239
|
+
.action((key, value) => (0, config_1.configCommand)('set', { key, value }));
|
|
240
|
+
configCmd
|
|
241
|
+
.command('path')
|
|
242
|
+
.description('Show config file path')
|
|
243
|
+
.action(() => (0, config_1.configCommand)('path', {}));
|
|
223
244
|
program
|
|
224
245
|
.command('mcp')
|
|
225
246
|
.description('Start MCP server for AI assistant integration')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,2BAA8C;AAC9C,+BAA4B;AAC5B,0CAA8C;AAC9C,wCAA4C;AAC5C,0CAA8C;AAC9C,kDAAsD;AACtD,0CAA8C;AAC9C,0CAA8C;AAC9C,wCAA4C;AAC5C,4CAAgD;AAChD,8CAAkD;AAClD,gDAAoD;AACpD,gDAAoD;AACpD,0CAKyB;AACzB,gDAAoD;AACpD,wCAA4C;AAC5C,4CAO0B;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config command for Brainfile CLI
|
|
3
|
+
*
|
|
4
|
+
* Manage user configuration stored in ~/.config/brainfile/config.json
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* brainfile config list # Show all config values
|
|
8
|
+
* brainfile config get <key> # Get a specific value
|
|
9
|
+
* brainfile config set <key> <value> # Set a value
|
|
10
|
+
* brainfile config path # Show config file path
|
|
11
|
+
*
|
|
12
|
+
* Keys use dot notation:
|
|
13
|
+
* archive.default - Default archive destination (local, github, linear)
|
|
14
|
+
* archive.github.owner - GitHub repository owner
|
|
15
|
+
* archive.github.repo - GitHub repository name
|
|
16
|
+
* archive.github.labels - Comma-separated labels for GitHub issues
|
|
17
|
+
* archive.linear.teamId - Linear team ID
|
|
18
|
+
* archive.linear.projectId - Linear project ID
|
|
19
|
+
*
|
|
20
|
+
* @packageDocumentation
|
|
21
|
+
*/
|
|
22
|
+
interface ConfigOptions {
|
|
23
|
+
key?: string;
|
|
24
|
+
value?: string;
|
|
25
|
+
}
|
|
26
|
+
type ConfigAction = 'list' | 'get' | 'set' | 'path';
|
|
27
|
+
export declare function configCommand(action: ConfigAction, options: ConfigOptions): void;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAcH,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAMpD,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,QAoCzE"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Config command for Brainfile CLI
|
|
4
|
+
*
|
|
5
|
+
* Manage user configuration stored in ~/.config/brainfile/config.json
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* brainfile config list # Show all config values
|
|
9
|
+
* brainfile config get <key> # Get a specific value
|
|
10
|
+
* brainfile config set <key> <value> # Set a value
|
|
11
|
+
* brainfile config path # Show config file path
|
|
12
|
+
*
|
|
13
|
+
* Keys use dot notation:
|
|
14
|
+
* archive.default - Default archive destination (local, github, linear)
|
|
15
|
+
* archive.github.owner - GitHub repository owner
|
|
16
|
+
* archive.github.repo - GitHub repository name
|
|
17
|
+
* archive.github.labels - Comma-separated labels for GitHub issues
|
|
18
|
+
* archive.linear.teamId - Linear team ID
|
|
19
|
+
* archive.linear.projectId - Linear project ID
|
|
20
|
+
*
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
24
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.configCommand = configCommand;
|
|
28
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
29
|
+
const config_1 = require("../utils/config");
|
|
30
|
+
// ============================================================================
|
|
31
|
+
// Main Command
|
|
32
|
+
// ============================================================================
|
|
33
|
+
function configCommand(action, options) {
|
|
34
|
+
switch (action) {
|
|
35
|
+
case 'list':
|
|
36
|
+
listConfig();
|
|
37
|
+
break;
|
|
38
|
+
case 'get':
|
|
39
|
+
if (!options.key) {
|
|
40
|
+
console.log(chalk_1.default.red('Error:') + ' Missing key. Usage: brainfile config get <key>');
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
getConfigValue(options.key);
|
|
44
|
+
break;
|
|
45
|
+
case 'set':
|
|
46
|
+
if (!options.key) {
|
|
47
|
+
console.log(chalk_1.default.red('Error:') + ' Missing key. Usage: brainfile config set <key> <value>');
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
if (options.value === undefined) {
|
|
51
|
+
console.log(chalk_1.default.red('Error:') + ' Missing value. Usage: brainfile config set <key> <value>');
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
setConfigValue(options.key, options.value);
|
|
55
|
+
break;
|
|
56
|
+
case 'path':
|
|
57
|
+
showConfigPath();
|
|
58
|
+
break;
|
|
59
|
+
default:
|
|
60
|
+
console.log(chalk_1.default.red('Error:') + ` Unknown action: ${action}`);
|
|
61
|
+
console.log('');
|
|
62
|
+
console.log('Available actions:');
|
|
63
|
+
console.log(' list Show all config values');
|
|
64
|
+
console.log(' get <key> Get a specific value');
|
|
65
|
+
console.log(' set <key> <value> Set a value');
|
|
66
|
+
console.log(' path Show config file path');
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// ============================================================================
|
|
71
|
+
// Actions
|
|
72
|
+
// ============================================================================
|
|
73
|
+
function listConfig() {
|
|
74
|
+
const config = (0, config_1.loadConfig)();
|
|
75
|
+
if (Object.keys(config).length === 0) {
|
|
76
|
+
console.log(chalk_1.default.gray('No configuration set.'));
|
|
77
|
+
console.log('');
|
|
78
|
+
console.log('Use ' + chalk_1.default.cyan('brainfile config set <key> <value>') + ' to set values.');
|
|
79
|
+
console.log('');
|
|
80
|
+
showAvailableKeys();
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
console.log(chalk_1.default.bold('Brainfile Configuration'));
|
|
84
|
+
console.log('');
|
|
85
|
+
const flattened = flattenConfig(config);
|
|
86
|
+
const maxKeyLen = Math.max(...Object.keys(flattened).map((k) => k.length));
|
|
87
|
+
for (const [key, value] of Object.entries(flattened)) {
|
|
88
|
+
const displayValue = Array.isArray(value) ? value.join(', ') : String(value);
|
|
89
|
+
console.log(` ${chalk_1.default.cyan(key.padEnd(maxKeyLen))} ${displayValue}`);
|
|
90
|
+
}
|
|
91
|
+
console.log('');
|
|
92
|
+
console.log(chalk_1.default.gray(`Config file: ${(0, config_1.getConfigPath)()}`));
|
|
93
|
+
}
|
|
94
|
+
function getConfigValue(key) {
|
|
95
|
+
const config = (0, config_1.loadConfig)();
|
|
96
|
+
const value = getNestedValue(config, key);
|
|
97
|
+
if (value === undefined) {
|
|
98
|
+
console.log(chalk_1.default.gray('(not set)'));
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (Array.isArray(value)) {
|
|
102
|
+
console.log(value.join(', '));
|
|
103
|
+
}
|
|
104
|
+
else if (typeof value === 'object') {
|
|
105
|
+
console.log(JSON.stringify(value, null, 2));
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
console.log(String(value));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function setConfigValue(key, value) {
|
|
112
|
+
const config = (0, config_1.loadConfig)();
|
|
113
|
+
// Validate key
|
|
114
|
+
if (!isValidKey(key)) {
|
|
115
|
+
console.log(chalk_1.default.red('Error:') + ` Invalid key: ${key}`);
|
|
116
|
+
console.log('');
|
|
117
|
+
showAvailableKeys();
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
// Parse value based on key
|
|
121
|
+
const parsedValue = parseValue(key, value);
|
|
122
|
+
// Set the value
|
|
123
|
+
setNestedValue(config, key, parsedValue);
|
|
124
|
+
(0, config_1.saveConfig)(config);
|
|
125
|
+
console.log(chalk_1.default.green('') + ` Set ${chalk_1.default.cyan(key)} = ${formatValue(parsedValue)}`);
|
|
126
|
+
}
|
|
127
|
+
function showConfigPath() {
|
|
128
|
+
console.log((0, config_1.getConfigPath)());
|
|
129
|
+
}
|
|
130
|
+
// ============================================================================
|
|
131
|
+
// Helpers
|
|
132
|
+
// ============================================================================
|
|
133
|
+
const VALID_KEYS = [
|
|
134
|
+
'archive.default',
|
|
135
|
+
'archive.github.owner',
|
|
136
|
+
'archive.github.repo',
|
|
137
|
+
'archive.github.labels',
|
|
138
|
+
'archive.linear.teamId',
|
|
139
|
+
'archive.linear.projectId',
|
|
140
|
+
];
|
|
141
|
+
function isValidKey(key) {
|
|
142
|
+
return VALID_KEYS.includes(key);
|
|
143
|
+
}
|
|
144
|
+
function showAvailableKeys() {
|
|
145
|
+
console.log('Available keys:');
|
|
146
|
+
console.log(' ' + chalk_1.default.cyan('archive.default') + ' Default archive destination (local, github, linear)');
|
|
147
|
+
console.log(' ' + chalk_1.default.cyan('archive.github.owner') + ' GitHub repository owner');
|
|
148
|
+
console.log(' ' + chalk_1.default.cyan('archive.github.repo') + ' GitHub repository name');
|
|
149
|
+
console.log(' ' + chalk_1.default.cyan('archive.github.labels') + ' Comma-separated labels for GitHub issues');
|
|
150
|
+
console.log(' ' + chalk_1.default.cyan('archive.linear.teamId') + ' Linear team ID');
|
|
151
|
+
console.log(' ' + chalk_1.default.cyan('archive.linear.projectId') + ' Linear project ID');
|
|
152
|
+
}
|
|
153
|
+
function parseValue(key, value) {
|
|
154
|
+
// Handle array values (labels)
|
|
155
|
+
if (key === 'archive.github.labels') {
|
|
156
|
+
return value.split(',').map((s) => s.trim()).filter(Boolean);
|
|
157
|
+
}
|
|
158
|
+
// Validate archive.default
|
|
159
|
+
if (key === 'archive.default') {
|
|
160
|
+
const valid = ['local', 'github', 'linear'];
|
|
161
|
+
if (!valid.includes(value)) {
|
|
162
|
+
console.log(chalk_1.default.red('Error:') + ` Invalid value for archive.default. Must be one of: ${valid.join(', ')}`);
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return value;
|
|
167
|
+
}
|
|
168
|
+
function formatValue(value) {
|
|
169
|
+
if (Array.isArray(value)) {
|
|
170
|
+
return value.join(', ');
|
|
171
|
+
}
|
|
172
|
+
return value;
|
|
173
|
+
}
|
|
174
|
+
function getNestedValue(obj, path) {
|
|
175
|
+
const parts = path.split('.');
|
|
176
|
+
let current = obj;
|
|
177
|
+
for (const part of parts) {
|
|
178
|
+
if (current === undefined || current === null) {
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
current = current[part];
|
|
182
|
+
}
|
|
183
|
+
return current;
|
|
184
|
+
}
|
|
185
|
+
function setNestedValue(obj, path, value) {
|
|
186
|
+
const parts = path.split('.');
|
|
187
|
+
let current = obj;
|
|
188
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
189
|
+
const part = parts[i];
|
|
190
|
+
if (current[part] === undefined) {
|
|
191
|
+
current[part] = {};
|
|
192
|
+
}
|
|
193
|
+
current = current[part];
|
|
194
|
+
}
|
|
195
|
+
current[parts[parts.length - 1]] = value;
|
|
196
|
+
}
|
|
197
|
+
function flattenConfig(obj, prefix = '') {
|
|
198
|
+
const result = {};
|
|
199
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
200
|
+
const fullKey = prefix ? `${prefix}.${key}` : key;
|
|
201
|
+
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
202
|
+
Object.assign(result, flattenConfig(value, fullKey));
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
result[fullKey] = value;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return result;
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|