@brainfile/cli 0.11.2 → 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 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
@@ -15,13 +15,15 @@ const patch_1 = require("./commands/patch");
15
15
  const delete_1 = require("./commands/delete");
16
16
  const archive_1 = require("./commands/archive");
17
17
  const restore_1 = require("./commands/restore");
18
+ const auth_1 = require("./commands/auth");
18
19
  const subtask_1 = require("./commands/subtask");
19
20
  const mcp_1 = require("./commands/mcp");
20
21
  const hooks_1 = require("./commands/hooks");
22
+ const config_1 = require("./commands/config");
21
23
  // Read version from package.json
22
24
  const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'package.json'), 'utf8'));
23
25
  // Known subcommands to distinguish from file paths
24
- const SUBCOMMANDS = ['init', 'list', 'add', 'move', 'patch', 'delete', 'archive', 'restore', 'subtask', 'template', 'lint', 'tui', 'hooks', 'mcp', 'help'];
26
+ const SUBCOMMANDS = ['init', 'list', 'add', 'move', 'patch', 'delete', 'archive', 'restore', 'subtask', 'template', 'lint', 'tui', 'hooks', 'mcp', 'auth', 'config', 'help'];
25
27
  // Check if first arg looks like a file path (not a subcommand or flag)
26
28
  function shouldLaunchTUI() {
27
29
  const args = process.argv.slice(2);
@@ -112,9 +114,12 @@ else {
112
114
  .action(delete_1.deleteCommand);
113
115
  program
114
116
  .command('archive')
115
- .description('Move a task to the archive')
117
+ .description('Archive a task (locally or to GitHub/Linear)')
116
118
  .option('-f, --file <path>', 'Path to brainfile.md file', 'brainfile.md')
117
- .option('-t, --task <id>', 'Task ID to archive (required)')
119
+ .option('-t, --task <id>', 'Task ID to archive')
120
+ .option('--to <destination>', 'Archive destination: local, github, or linear')
121
+ .option('--all', 'Archive all tasks from local archive to external service')
122
+ .option('--dry-run', 'Preview what would be created without making changes')
118
123
  .action(archive_1.archiveCommand);
119
124
  program
120
125
  .command('restore')
@@ -193,6 +198,49 @@ else {
193
198
  .command('list [tool]')
194
199
  .description('List installed brainfile hooks')
195
200
  .action((tool) => (0, hooks_1.listCommand)({ tool }));
201
+ // Add auth command group
202
+ const authCommand = program
203
+ .command('auth')
204
+ .description('Manage authentication for external services (GitHub, Linear)');
205
+ authCommand
206
+ .command('github')
207
+ .description('Authenticate with GitHub')
208
+ .option('--token <token>', 'Personal Access Token (or use OAuth device flow)')
209
+ .action(auth_1.githubAuthCommand);
210
+ authCommand
211
+ .command('linear')
212
+ .description('Authenticate with Linear')
213
+ .option('--token <token>', 'Linear API key (required)')
214
+ .action(auth_1.linearAuthCommand);
215
+ authCommand
216
+ .command('status')
217
+ .description('Show authentication status for all providers')
218
+ .action(auth_1.authStatusCommand);
219
+ authCommand
220
+ .command('logout [provider]')
221
+ .description('Log out from a provider (github, linear, or --all)')
222
+ .option('--all', 'Log out from all providers')
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', {}));
196
244
  program
197
245
  .command('mcp')
198
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":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,20 @@
1
+ /**
2
+ * Archive command for Brainfile CLI
3
+ *
4
+ * Supports archiving to:
5
+ * - local: Move to local archive section (default)
6
+ * - github: Create closed GitHub Issue
7
+ * - linear: Create completed Linear issue
8
+ *
9
+ * @packageDocumentation
10
+ */
1
11
  interface ArchiveOptions {
2
12
  file: string;
3
- task: string;
13
+ task?: string;
14
+ to?: 'local' | 'github' | 'linear';
15
+ all?: boolean;
16
+ dryRun?: boolean;
4
17
  }
5
- export declare function archiveCommand(options: ArchiveOptions): void;
18
+ export declare function archiveCommand(options: ArchiveOptions): Promise<void>;
6
19
  export {};
7
20
  //# sourceMappingURL=archive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":"AAaA,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,QAwDrD"}
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA+BH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACnC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAQD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,iBA0D3D"}
@@ -1,4 +1,14 @@
1
1
  "use strict";
2
+ /**
3
+ * Archive command for Brainfile CLI
4
+ *
5
+ * Supports archiving to:
6
+ * - local: Move to local archive section (default)
7
+ * - github: Create closed GitHub Issue
8
+ * - linear: Create completed Linear issue
9
+ *
10
+ * @packageDocumentation
11
+ */
2
12
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
13
  if (k2 === undefined) k2 = k;
4
14
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -42,11 +52,17 @@ const path = __importStar(require("path"));
42
52
  const core_1 = require("@brainfile/core");
43
53
  const chalk_1 = __importDefault(require("chalk"));
44
54
  const errorHandler_1 = require("../utils/errorHandler");
45
- function archiveCommand(options) {
55
+ const config_1 = require("../utils/config");
56
+ const github_auth_1 = require("../utils/github-auth");
57
+ const linear_auth_1 = require("../utils/linear-auth");
58
+ // ============================================================================
59
+ // Main Command
60
+ // ============================================================================
61
+ async function archiveCommand(options) {
46
62
  try {
47
- // Validate required options
48
- if (!options.task) {
49
- (0, errorHandler_1.missingRequiredError)('--task', 'brainfile archive --task <task-id>');
63
+ // Validate: need either --task or --all
64
+ if (!options.task && !options.all) {
65
+ (0, errorHandler_1.missingRequiredError)('--task or --all', 'brainfile archive --task <task-id>');
50
66
  }
51
67
  // Resolve file path
52
68
  const filePath = path.resolve(options.file);
@@ -61,31 +77,343 @@ function archiveCommand(options) {
61
77
  (0, errorHandler_1.parseError)(result.error);
62
78
  }
63
79
  const board = result.board;
64
- // Find the task
65
- const taskInfo = (0, core_1.findTaskById)(board, options.task);
66
- if (!taskInfo) {
67
- (0, errorHandler_1.taskNotFoundError)(options.task, board);
80
+ // Determine destination
81
+ const brainfileDestination = board.archive?.destination;
82
+ const destination = options.to ||
83
+ (0, config_1.getEffectiveArchiveDestination)(brainfileDestination);
84
+ // Validate destination auth if needed
85
+ if (destination === 'github' && !(await (0, github_auth_1.isGitHubAuthenticated)())) {
86
+ console.log(chalk_1.default.red('✗') + ' Not authenticated with GitHub.');
87
+ console.log('');
88
+ console.log('Run: ' + chalk_1.default.cyan('brainfile auth github'));
89
+ process.exit(1);
68
90
  }
69
- const { task, column } = taskInfo;
70
- // Archive task using core operation
71
- const archiveResult = (0, core_1.archiveTask)(board, column.id, options.task);
72
- if (!archiveResult.success) {
73
- (0, errorHandler_1.operationError)(archiveResult.error);
91
+ if (destination === 'linear' && !(await (0, linear_auth_1.isLinearAuthenticated)())) {
92
+ console.log(chalk_1.default.red('✗') + ' Not authenticated with Linear.');
93
+ console.log('');
94
+ console.log('Run: ' + chalk_1.default.cyan('brainfile auth linear --token <api-key>'));
95
+ process.exit(1);
74
96
  }
75
- // Serialize and write back
76
- const updatedContent = core_1.Brainfile.serialize(archiveResult.board);
97
+ // Handle --all flag (archive all from local archive to external)
98
+ if (options.all) {
99
+ await archiveAllToExternal(filePath, board, destination, options.dryRun);
100
+ return;
101
+ }
102
+ // Single task archive
103
+ if (options.task) {
104
+ await archiveSingleTask(filePath, board, options.task, destination, options.dryRun);
105
+ }
106
+ }
107
+ catch (error) {
108
+ (0, errorHandler_1.handleError)(error);
109
+ }
110
+ }
111
+ // ============================================================================
112
+ // Single Task Archive
113
+ // ============================================================================
114
+ async function archiveSingleTask(filePath, board, taskId, destination, dryRun) {
115
+ // Find the task
116
+ const taskInfo = (0, core_1.findTaskById)(board, taskId);
117
+ if (!taskInfo) {
118
+ (0, errorHandler_1.taskNotFoundError)(taskId, board);
119
+ return;
120
+ }
121
+ const { task, column } = taskInfo;
122
+ if (dryRun) {
123
+ console.log(chalk_1.default.yellow('DRY RUN') + ' - No changes will be made');
124
+ console.log('');
125
+ }
126
+ // Archive based on destination
127
+ if (destination === 'local') {
128
+ await archiveToLocal(filePath, board, task, column.id, column.title, dryRun);
129
+ }
130
+ else if (destination === 'github') {
131
+ await archiveToGitHub(filePath, board, task, column.id, column.title, dryRun);
132
+ }
133
+ else if (destination === 'linear') {
134
+ await archiveToLinear(filePath, board, task, column.id, column.title, dryRun);
135
+ }
136
+ }
137
+ // ============================================================================
138
+ // Local Archive
139
+ // ============================================================================
140
+ async function archiveToLocal(filePath, board, task, columnId, columnTitle, dryRun) {
141
+ if (dryRun) {
142
+ console.log(`Would archive task ${chalk_1.default.cyan(task.id)} to local archive`);
143
+ return;
144
+ }
145
+ const archiveResult = (0, core_1.archiveTask)(board, columnId, task.id);
146
+ if (!archiveResult.success) {
147
+ (0, errorHandler_1.operationError)(archiveResult.error);
148
+ return;
149
+ }
150
+ // Write back
151
+ const updatedContent = core_1.Brainfile.serialize(archiveResult.board);
152
+ fs.writeFileSync(filePath, updatedContent, 'utf-8');
153
+ // Success message
154
+ console.log(chalk_1.default.green('✓') + ' Task archived locally');
155
+ console.log('');
156
+ console.log(chalk_1.default.gray(` Task: ${task.id} - ${task.title}`));
157
+ console.log(chalk_1.default.gray(` From: ${columnTitle}`));
158
+ console.log(chalk_1.default.gray(` To: Local Archive`));
159
+ console.log('');
160
+ console.log(chalk_1.default.gray('Use "brainfile restore" to restore this task.'));
161
+ }
162
+ // ============================================================================
163
+ // GitHub Archive
164
+ // ============================================================================
165
+ async function archiveToGitHub(filePath, board, task, columnId, columnTitle, dryRun) {
166
+ const config = (0, config_1.getArchiveConfig)();
167
+ const github = config.github;
168
+ if (!github?.owner || !github?.repo) {
169
+ console.log(chalk_1.default.red('✗') + ' GitHub owner/repo not configured.');
170
+ console.log('');
171
+ console.log('Set up GitHub config:');
172
+ console.log(chalk_1.default.cyan(' brainfile config set archive.github.owner <owner>'));
173
+ console.log(chalk_1.default.cyan(' brainfile config set archive.github.repo <repo>'));
174
+ console.log('');
175
+ console.log('Or add to ~/.config/brainfile/config.json:');
176
+ console.log(chalk_1.default.gray(JSON.stringify({ archive: { github: { owner: 'myorg', repo: 'myrepo' } } }, null, 2)));
177
+ process.exit(1);
178
+ }
179
+ // Format task for GitHub
180
+ const payload = (0, core_1.formatTaskForGitHub)(task, {
181
+ includeMeta: true,
182
+ includeSubtasks: true,
183
+ includeRelatedFiles: true,
184
+ boardTitle: board.title,
185
+ fromColumn: columnTitle,
186
+ extraLabels: github.labels,
187
+ });
188
+ if (dryRun) {
189
+ console.log(`Would create GitHub Issue in ${chalk_1.default.cyan(`${github.owner}/${github.repo}`)}:`);
190
+ console.log('');
191
+ console.log(chalk_1.default.bold('Title:'), payload.title);
192
+ console.log(chalk_1.default.bold('Labels:'), payload.labels?.join(', ') || 'none');
193
+ console.log(chalk_1.default.bold('State:'), payload.state);
194
+ console.log('');
195
+ console.log(chalk_1.default.bold('Body:'));
196
+ console.log(chalk_1.default.gray(payload.body.substring(0, 500) + (payload.body.length > 500 ? '...' : '')));
197
+ return;
198
+ }
199
+ console.log(`Creating GitHub Issue in ${chalk_1.default.cyan(`${github.owner}/${github.repo}`)}...`);
200
+ const result = await (0, github_auth_1.createGitHubIssue)({
201
+ owner: github.owner,
202
+ repo: github.repo,
203
+ title: payload.title,
204
+ body: payload.body,
205
+ labels: payload.labels,
206
+ state: payload.state,
207
+ });
208
+ if (!result.success) {
209
+ console.log(chalk_1.default.red('✗') + ` Failed to create issue: ${result.error}`);
210
+ process.exit(1);
211
+ }
212
+ // Remove task from board (delete, not archive locally)
213
+ const deleteResult = (0, core_1.deleteTask)(board, columnId, task.id);
214
+ if (deleteResult.success) {
215
+ const updatedContent = core_1.Brainfile.serialize(deleteResult.board);
77
216
  fs.writeFileSync(filePath, updatedContent, 'utf-8');
78
- // Success message
79
- console.log(chalk_1.default.green('Task archived successfully!'));
217
+ }
218
+ // Success message
219
+ console.log('');
220
+ console.log(chalk_1.default.green('✓') + ` Created GitHub Issue #${result.issueNumber} (closed)`);
221
+ console.log('');
222
+ console.log(chalk_1.default.gray(` Task: ${task.id} - ${task.title}`));
223
+ console.log(chalk_1.default.gray(` From: ${columnTitle}`));
224
+ console.log(chalk_1.default.gray(` To: ${result.issueUrl}`));
225
+ console.log('');
226
+ console.log(`View: ${chalk_1.default.underline(result.issueUrl)}`);
227
+ }
228
+ // ============================================================================
229
+ // Linear Archive
230
+ // ============================================================================
231
+ async function archiveToLinear(filePath, board, task, columnId, columnTitle, dryRun) {
232
+ const config = (0, config_1.getArchiveConfig)();
233
+ let teamId = config.linear?.teamId;
234
+ // If no teamId configured, try to get it interactively
235
+ if (!teamId) {
236
+ const teams = await (0, linear_auth_1.getLinearTeams)();
237
+ if (teams.length === 0) {
238
+ console.log(chalk_1.default.red('✗') + ' No Linear teams found or not authenticated.');
239
+ process.exit(1);
240
+ }
241
+ if (teams.length === 1) {
242
+ teamId = teams[0].id;
243
+ console.log(chalk_1.default.gray(`Using team: ${teams[0].name}`));
244
+ }
245
+ else {
246
+ console.log(chalk_1.default.red('✗') + ' Multiple Linear teams found. Please configure a default:');
247
+ console.log('');
248
+ console.log('Available teams:');
249
+ teams.forEach((t) => console.log(` ${t.key}: ${t.name} (${t.id})`));
250
+ console.log('');
251
+ console.log('Set the default team:');
252
+ console.log(chalk_1.default.cyan(` brainfile config set archive.linear.teamId <team-id>`));
253
+ process.exit(1);
254
+ }
255
+ }
256
+ // Format task for Linear
257
+ const payload = (0, core_1.formatTaskForLinear)(task, {
258
+ includeMeta: true,
259
+ includeSubtasks: true,
260
+ includeRelatedFiles: true,
261
+ boardTitle: board.title,
262
+ fromColumn: columnTitle,
263
+ stateName: 'Done',
264
+ });
265
+ if (dryRun) {
266
+ console.log(`Would create Linear Issue in team ${chalk_1.default.cyan(teamId)}:`);
80
267
  console.log('');
81
- console.log(chalk_1.default.gray(` Task: ${task.id} - ${task.title}`));
82
- console.log(chalk_1.default.gray(` From: ${column.title}`));
83
- console.log(chalk_1.default.gray(` To: Archive`));
268
+ console.log(chalk_1.default.bold('Title:'), payload.title);
269
+ console.log(chalk_1.default.bold('Priority:'), payload.priority || 'none');
270
+ console.log(chalk_1.default.bold('Labels:'), payload.labelNames?.join(', ') || 'none');
271
+ console.log(chalk_1.default.bold('State:'), payload.stateName);
84
272
  console.log('');
85
- console.log(chalk_1.default.gray('Use "brainfile restore" to restore this task.'));
273
+ console.log(chalk_1.default.bold('Description:'));
274
+ console.log(chalk_1.default.gray(payload.description.substring(0, 500) + (payload.description.length > 500 ? '...' : '')));
275
+ return;
86
276
  }
87
- catch (error) {
88
- (0, errorHandler_1.handleError)(error);
277
+ console.log('Creating Linear Issue...');
278
+ const result = await (0, linear_auth_1.createLinearIssue)({
279
+ teamId,
280
+ title: payload.title,
281
+ description: payload.description,
282
+ priority: payload.priority,
283
+ labelNames: payload.labelNames,
284
+ stateName: payload.stateName,
285
+ });
286
+ if (!result.success) {
287
+ console.log(chalk_1.default.red('✗') + ` Failed to create issue: ${result.error}`);
288
+ process.exit(1);
289
+ }
290
+ // Remove task from board
291
+ const deleteResult = (0, core_1.deleteTask)(board, columnId, task.id);
292
+ if (deleteResult.success) {
293
+ const updatedContent = core_1.Brainfile.serialize(deleteResult.board);
294
+ fs.writeFileSync(filePath, updatedContent, 'utf-8');
295
+ }
296
+ // Success message
297
+ console.log('');
298
+ console.log(chalk_1.default.green('✓') + ` Created Linear Issue ${result.issueId} (Done)`);
299
+ console.log('');
300
+ console.log(chalk_1.default.gray(` Task: ${task.id} - ${task.title}`));
301
+ console.log(chalk_1.default.gray(` From: ${columnTitle}`));
302
+ console.log(chalk_1.default.gray(` To: ${result.issueUrl}`));
303
+ console.log('');
304
+ console.log(`View: ${chalk_1.default.underline(result.issueUrl)}`);
305
+ }
306
+ // ============================================================================
307
+ // Archive All (from local archive to external)
308
+ // ============================================================================
309
+ async function archiveAllToExternal(filePath, board, destination, dryRun) {
310
+ if (destination === 'local') {
311
+ console.log(chalk_1.default.yellow('Note:') + ' --all with --to=local has no effect (tasks are already archived)');
312
+ return;
313
+ }
314
+ const archivedTasks = board.archive || [];
315
+ if (archivedTasks.length === 0) {
316
+ console.log('No tasks in local archive to export.');
317
+ return;
318
+ }
319
+ console.log(`Found ${archivedTasks.length} task(s) in local archive.`);
320
+ console.log('');
321
+ if (dryRun) {
322
+ console.log(chalk_1.default.yellow('DRY RUN') + ' - No changes will be made');
323
+ console.log('');
324
+ for (const task of archivedTasks) {
325
+ console.log(` Would archive: ${task.id} - ${task.title}`);
326
+ }
327
+ return;
328
+ }
329
+ let successCount = 0;
330
+ let failCount = 0;
331
+ let updatedBoard = board;
332
+ for (const task of archivedTasks) {
333
+ console.log(`Archiving ${task.id}...`);
334
+ try {
335
+ if (destination === 'github') {
336
+ const config = (0, config_1.getArchiveConfig)();
337
+ const github = config.github;
338
+ if (!github?.owner || !github?.repo) {
339
+ console.log(chalk_1.default.red('✗') + ' GitHub not configured');
340
+ failCount++;
341
+ continue;
342
+ }
343
+ const payload = (0, core_1.formatTaskForGitHub)(task, {
344
+ includeMeta: true,
345
+ boardTitle: board.title,
346
+ fromColumn: 'Archive',
347
+ });
348
+ const result = await (0, github_auth_1.createGitHubIssue)({
349
+ owner: github.owner,
350
+ repo: github.repo,
351
+ title: payload.title,
352
+ body: payload.body,
353
+ labels: payload.labels,
354
+ state: 'closed',
355
+ });
356
+ if (result.success) {
357
+ // Remove from archive
358
+ updatedBoard = {
359
+ ...updatedBoard,
360
+ archive: updatedBoard.archive?.filter((t) => t.id !== task.id),
361
+ };
362
+ console.log(chalk_1.default.green(' ✓') + ` Created #${result.issueNumber}`);
363
+ successCount++;
364
+ }
365
+ else {
366
+ console.log(chalk_1.default.red(' ✗') + ` Failed: ${result.error}`);
367
+ failCount++;
368
+ }
369
+ }
370
+ else if (destination === 'linear') {
371
+ const config = (0, config_1.getArchiveConfig)();
372
+ const teamId = config.linear?.teamId;
373
+ if (!teamId) {
374
+ console.log(chalk_1.default.red('✗') + ' Linear teamId not configured');
375
+ failCount++;
376
+ continue;
377
+ }
378
+ const payload = (0, core_1.formatTaskForLinear)(task, {
379
+ includeMeta: true,
380
+ boardTitle: board.title,
381
+ fromColumn: 'Archive',
382
+ stateName: 'Done',
383
+ });
384
+ const result = await (0, linear_auth_1.createLinearIssue)({
385
+ teamId,
386
+ title: payload.title,
387
+ description: payload.description,
388
+ priority: payload.priority,
389
+ stateName: 'Done',
390
+ });
391
+ if (result.success) {
392
+ // Remove from archive
393
+ updatedBoard = {
394
+ ...updatedBoard,
395
+ archive: updatedBoard.archive?.filter((t) => t.id !== task.id),
396
+ };
397
+ console.log(chalk_1.default.green(' ✓') + ` Created ${result.issueId}`);
398
+ successCount++;
399
+ }
400
+ else {
401
+ console.log(chalk_1.default.red(' ✗') + ` Failed: ${result.error}`);
402
+ failCount++;
403
+ }
404
+ }
405
+ }
406
+ catch (error) {
407
+ console.log(chalk_1.default.red(' ✗') + ` Error: ${error}`);
408
+ failCount++;
409
+ }
410
+ }
411
+ // Write updated board
412
+ if (successCount > 0) {
413
+ const updatedContent = core_1.Brainfile.serialize(updatedBoard);
414
+ fs.writeFileSync(filePath, updatedContent, 'utf-8');
89
415
  }
416
+ console.log('');
417
+ console.log(`Done: ${chalk_1.default.green(successCount + ' succeeded')}, ${chalk_1.default.red(failCount + ' failed')}`);
90
418
  }
91
419
  //# sourceMappingURL=archive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,wCAwDC;AA1ED,uCAAyB;AACzB,2CAA6B;AAC7B,0CAAuE;AACvE,kDAA0B;AAC1B,wDAO+B;AAO/B,SAAgB,cAAc,CAAC,OAAuB;IACpD,IAAI,CAAC;QACH,4BAA4B;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,IAAA,mCAAoB,EAAC,QAAQ,EAAE,oCAAoC,CAAC,CAAC;QACvE,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE5C,uBAAuB;QACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,IAAA,gCAAiB,EAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAED,0BAA0B;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,gBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,IAAA,yBAAU,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE3B,gBAAgB;QAChB,MAAM,QAAQ,GAAG,IAAA,mBAAY,EAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAA,gCAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAElC,oCAAoC;QACpC,MAAM,aAAa,GAAG,IAAA,kBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAElE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAA,6BAAc,EAAC,aAAa,CAAC,KAAM,CAAC,CAAC;QACvC,CAAC;QAED,2BAA2B;QAC3B,MAAM,cAAc,GAAG,gBAAS,CAAC,SAAS,CAAC,aAAa,CAAC,KAAM,CAAC,CAAC;QACjE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAEpD,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAE3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Authentication commands for Brainfile CLI
3
+ *
4
+ * Commands:
5
+ * - brainfile auth github [--token <token>]
6
+ * - brainfile auth linear --token <token>
7
+ * - brainfile auth status
8
+ * - brainfile auth logout <provider>
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ interface GitHubAuthOptions {
13
+ token?: string;
14
+ }
15
+ export declare function githubAuthCommand(options: GitHubAuthOptions): Promise<void>;
16
+ interface LinearAuthOptions {
17
+ token?: string;
18
+ }
19
+ export declare function linearAuthCommand(options: LinearAuthOptions): Promise<void>;
20
+ export declare function authStatusCommand(): Promise<void>;
21
+ interface LogoutOptions {
22
+ all?: boolean;
23
+ }
24
+ export declare function authLogoutCommand(provider?: string, options?: LogoutOptions): Promise<void>;
25
+ export {};
26
+ //# sourceMappingURL=auth.d.ts.map