agkan 3.15.2 → 3.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.ja.md +14 -0
  2. package/README.md +14 -0
  3. package/dist/cli/commands/board.d.ts.map +1 -1
  4. package/dist/cli/commands/board.js +25 -10
  5. package/dist/cli/commands/board.js.map +1 -1
  6. package/dist/cli/commands/context.js +1 -1
  7. package/dist/cli/commands/task/add-helpers.d.ts +5 -4
  8. package/dist/cli/commands/task/add-helpers.d.ts.map +1 -1
  9. package/dist/cli/commands/task/add-helpers.js +29 -2
  10. package/dist/cli/commands/task/add-helpers.js.map +1 -1
  11. package/dist/cli/commands/task/add.d.ts.map +1 -1
  12. package/dist/cli/commands/task/add.js +52 -17
  13. package/dist/cli/commands/task/add.js.map +1 -1
  14. package/dist/cli/commands/task/archive.d.ts.map +1 -1
  15. package/dist/cli/commands/task/archive.js +9 -110
  16. package/dist/cli/commands/task/archive.js.map +1 -1
  17. package/dist/cli/commands/task/find.d.ts.map +1 -1
  18. package/dist/cli/commands/task/find.js +3 -2
  19. package/dist/cli/commands/task/find.js.map +1 -1
  20. package/dist/cli/commands/task/get.d.ts.map +1 -1
  21. package/dist/cli/commands/task/get.js +19 -2
  22. package/dist/cli/commands/task/get.js.map +1 -1
  23. package/dist/cli/commands/task/list.d.ts.map +1 -1
  24. package/dist/cli/commands/task/list.js +69 -7
  25. package/dist/cli/commands/task/list.js.map +1 -1
  26. package/dist/cli/commands/task/purge-archive-helpers.d.ts +26 -0
  27. package/dist/cli/commands/task/purge-archive-helpers.d.ts.map +1 -0
  28. package/dist/cli/commands/task/purge-archive-helpers.js +133 -0
  29. package/dist/cli/commands/task/purge-archive-helpers.js.map +1 -0
  30. package/dist/cli/commands/task/purge.d.ts.map +1 -1
  31. package/dist/cli/commands/task/purge.js +9 -121
  32. package/dist/cli/commands/task/purge.js.map +1 -1
  33. package/dist/cli/commands/task/update.js +1 -1
  34. package/dist/cli/commands/task/update.js.map +1 -1
  35. package/dist/cli/utils/board-daemon.d.ts +8 -1
  36. package/dist/cli/utils/board-daemon.d.ts.map +1 -1
  37. package/dist/cli/utils/board-daemon.js +39 -4
  38. package/dist/cli/utils/board-daemon.js.map +1 -1
  39. package/dist/hooks/hook-attention.mjs +2 -1
  40. package/dist/hooks/hook-session-start.mjs +3 -1
  41. package/dist/hooks/hook-stop.mjs +10 -4
  42. package/dist/hooks/session-marker.mjs +6 -0
  43. package/dist/services/TaskService.d.ts +3 -1
  44. package/dist/services/TaskService.d.ts.map +1 -1
  45. package/dist/services/TaskService.js +5 -3
  46. package/dist/services/TaskService.js.map +1 -1
  47. package/dist/terminal/PtySessionService.d.ts +1 -0
  48. package/dist/terminal/PtySessionService.d.ts.map +1 -1
  49. package/dist/terminal/PtySessionService.js +49 -2
  50. package/dist/terminal/PtySessionService.js.map +1 -1
  51. package/package.json +1 -1
package/README.ja.md CHANGED
@@ -90,6 +90,11 @@ Markdownファイルからタスク作成:
90
90
  agkan task add "設計書レビュー" --file ./design-doc.md --status backlog
91
91
  ```
92
92
 
93
+ タグ付きでタスク作成(カンマ区切りのタグ名またはID、同じコマンドで付与):
94
+ ```bash
95
+ agkan task add "ログイン機能の実装" --tag "frontend,urgent"
96
+ ```
97
+
93
98
  ### タスク一覧の表示
94
99
 
95
100
  全タスクを表示:
@@ -237,6 +242,11 @@ agkan tag delete "frontend"
237
242
  agkan tag attach 1 "frontend"
238
243
  ```
239
244
 
245
+ または `task add --tag` でタスク作成と同時にタグを付与(`tag attach` を別途実行する必要がない):
246
+ ```bash
247
+ agkan task add "ログイン画面の実装" --tag "frontend,urgent"
248
+ ```
249
+
240
250
  タスクからタグを削除:
241
251
  ```bash
242
252
  agkan tag detach 1 "frontend"
@@ -800,6 +810,10 @@ agkan task add "API開発"
800
810
 
801
811
  agkan tag attach 2 "backend"
802
812
 
813
+ # --tag を使えば同じコマンドでタグを付与できる
814
+ agkan task add "決済フローのバグ修正" --tag "backend,urgent"
815
+ # 出力: Task created with ID: 3
816
+
803
817
  # タグでフィルタリング
804
818
  agkan task list --tag "frontend"
805
819
  # 出力:
package/README.md CHANGED
@@ -91,6 +91,11 @@ Create from Markdown file:
91
91
  agkan task add "Design review" --file ./design-doc.md --status backlog
92
92
  ```
93
93
 
94
+ Create with tags (comma-separated names or IDs, attached in the same command):
95
+ ```bash
96
+ agkan task add "Implement login feature" --tag "frontend,urgent"
97
+ ```
98
+
94
99
  JSON output format:
95
100
  ```bash
96
101
  agkan task add "Fix bug in login" --json
@@ -421,6 +426,11 @@ Attach a tag to a task:
421
426
  agkan tag attach 1 "frontend"
422
427
  ```
423
428
 
429
+ Or attach tags at creation time with `task add --tag`, instead of a separate `tag attach` call:
430
+ ```bash
431
+ agkan task add "Implement login screen" --tag "frontend,urgent"
432
+ ```
433
+
424
434
  Remove a tag from a task:
425
435
  ```bash
426
436
  agkan tag detach 1 "frontend"
@@ -801,6 +811,10 @@ agkan task add "API development"
801
811
 
802
812
  agkan tag attach 2 "backend"
803
813
 
814
+ # Or attach tags in the same command with --tag
815
+ agkan task add "Bug fix in payment flow" --tag "backend,urgent"
816
+ # Output: Task created with ID: 3
817
+
804
818
  # Filter by tag
805
819
  agkan task list --tag "frontend"
806
820
  # Output:
@@ -1 +1 @@
1
- {"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/board.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6MpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsBxD"}
1
+ {"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/board.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmOpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsBxD"}
@@ -23,7 +23,7 @@ function buildDaemonArgs(port, title) {
23
23
  args.push('--title', title);
24
24
  return args;
25
25
  }
26
- function handleStart(options) {
26
+ async function handleStart(options) {
27
27
  if ((0, board_daemon_1.isBoardRunning)()) {
28
28
  console.log('Board server is already running');
29
29
  return;
@@ -35,7 +35,14 @@ function handleStart(options) {
35
35
  process.exit(1);
36
36
  return;
37
37
  }
38
- const pid = (0, board_daemon_1.spawnBoardDaemon)(buildDaemonArgs(port, options.title ?? config.board?.title));
38
+ const pid = (0, board_daemon_1.spawnBoardDaemon)(buildDaemonArgs(port, options.title ?? config.board?.title), port);
39
+ const ready = await (0, board_daemon_1.waitForBoardReady)(port);
40
+ if (!ready) {
41
+ console.error(`Board server failed to start on port ${port}`);
42
+ (0, board_daemon_1.killBoardProcess)();
43
+ process.exit(1);
44
+ return;
45
+ }
39
46
  console.log(`Board server started (PID: ${pid}) on http://localhost:${port}`);
40
47
  }
41
48
  function handleStop() {
@@ -51,7 +58,7 @@ function handleStop() {
51
58
  process.exit(1);
52
59
  }
53
60
  }
54
- function handleRestart(options) {
61
+ async function handleRestart(options) {
55
62
  (0, board_daemon_1.killBoardProcess)();
56
63
  const config = (0, config_1.loadConfig)();
57
64
  const port = resolvePort(options.port, config.board?.port);
@@ -60,7 +67,14 @@ function handleRestart(options) {
60
67
  process.exit(1);
61
68
  return;
62
69
  }
63
- const pid = (0, board_daemon_1.spawnBoardDaemon)(buildDaemonArgs(port, options.title ?? config.board?.title));
70
+ const pid = (0, board_daemon_1.spawnBoardDaemon)(buildDaemonArgs(port, options.title ?? config.board?.title), port);
71
+ const ready = await (0, board_daemon_1.waitForBoardReady)(port);
72
+ if (!ready) {
73
+ console.error(`Board server failed to start on port ${port}`);
74
+ (0, board_daemon_1.killBoardProcess)();
75
+ process.exit(1);
76
+ return;
77
+ }
64
78
  console.log(`Board server restarted (PID: ${pid}) on http://localhost:${port}`);
65
79
  }
66
80
  function printTaskSummary() {
@@ -86,8 +100,8 @@ function printTaskSummary() {
86
100
  }
87
101
  async function handleStatus(options) {
88
102
  const config = (0, config_1.loadConfig)();
89
- const port = resolvePort(options.port, config.board?.port);
90
- if (port === null) {
103
+ const resolvedPort = resolvePort(options.port, config.board?.port);
104
+ if (resolvedPort === null) {
91
105
  console.error('Invalid port number');
92
106
  process.exit(1);
93
107
  return;
@@ -97,6 +111,7 @@ async function handleStatus(options) {
97
111
  // Check server status
98
112
  const isRunning = (0, board_daemon_1.isBoardRunning)();
99
113
  const pid = (0, board_daemon_1.readBoardPid)();
114
+ const port = (0, board_daemon_1.readBoardPort)() ?? resolvedPort;
100
115
  if (isRunning && pid) {
101
116
  console.log(chalk_1.default.green(`✓ Server: RUNNING (PID: ${pid})`));
102
117
  console.log(` Port: ${port}`);
@@ -142,10 +157,10 @@ function registerStartSubcommand(boardCommand) {
142
157
  .description('Start board server as a daemon')
143
158
  .option('-p, --port <number>', 'Port to listen on')
144
159
  .option('-t, --title <text>', 'Board title to display in the header')
145
- .action((options, command) => {
160
+ .action(async (options, command) => {
146
161
  try {
147
162
  const mergedOptions = mergeOptions(options, command);
148
- handleStart(mergedOptions);
163
+ await handleStart(mergedOptions);
149
164
  }
150
165
  catch (error) {
151
166
  (0, error_handler_1.handleError)(error, {});
@@ -171,10 +186,10 @@ function registerRestartSubcommand(boardCommand) {
171
186
  .description('Restart the board server daemon')
172
187
  .option('-p, --port <number>', 'Port to listen on')
173
188
  .option('-t, --title <text>', 'Board title to display in the header')
174
- .action((options, command) => {
189
+ .action(async (options, command) => {
175
190
  try {
176
191
  const mergedOptions = mergeOptions(options, command);
177
- handleRestart(mergedOptions);
192
+ await handleRestart(mergedOptions);
178
193
  }
179
194
  catch (error) {
180
195
  (0, error_handler_1.handleError)(error, {});
@@ -1 +1 @@
1
- {"version":3,"file":"board.js","sourceRoot":"","sources":["../../../src/cli/commands/board.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"board.js","sourceRoot":"","sources":["../../../src/cli/commands/board.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ This project uses agkan (Agent Kanban) for task management.
15
15
  Common commands:
16
16
  - agkan task list [--status <s>] [--tag <id>] [--tree]
17
17
  - agkan task get <id>
18
- - agkan task add "<title>" [--status <s>] [--parent <id>] [--file <path>]
18
+ - agkan task add "<title>" [--status <s>] [--parent <id>] [--file <path>] [--tag <names-or-ids>]
19
19
  - agkan task update <id> --status <s>
20
20
  - agkan task find "<keyword>"
21
21
  - agkan task block add <blocker-id> <blocked-id>
@@ -2,16 +2,17 @@
2
2
  * Helper functions for task add command
3
3
  * Separated concerns: file reading, block ID parsing, relationship setup, output formatting
4
4
  */
5
- import { TaskBlockService, TaskService } from '../../../services';
6
- import { Task } from '../../../models';
5
+ import { TaskBlockService, TaskService, TagService } from '../../../services';
6
+ import { Task, Tag } from '../../../models';
7
7
  export declare function readBodyFromFile(filePath: string): string;
8
8
  export declare function parseBlockIds(value: string | undefined, label: string): number[];
9
+ export declare function resolveTagIds(tagService: TagService, value: string | undefined): number[];
9
10
  export declare function addBlockRelationships(taskBlockService: TaskBlockService, taskId: number, blockedByIds: number[], blocksIds: number[]): void;
10
11
  export declare function fetchRelatedTasks(taskService: TaskService, task: Task, blockedByIds: number[], blocksIds: number[]): {
11
12
  parentTask: Task | null;
12
13
  blockerTasks: Task[];
13
14
  blockedTasks: Task[];
14
15
  };
15
- export declare function buildTaskJsonData(task: Task, parentTask: Task | null, blockerTasks: Task[], blockedTasks: Task[]): object;
16
- export declare function printTaskCreated(task: Task, parentTask: Task | null, blockerTasks: Task[], blockedTasks: Task[]): void;
16
+ export declare function buildTaskJsonData(task: Task, parentTask: Task | null, blockerTasks: Task[], blockedTasks: Task[], tags?: Tag[]): object;
17
+ export declare function printTaskCreated(task: Task, parentTask: Task | null, blockerTasks: Task[], blockedTasks: Task[], tags?: Tag[]): void;
17
18
  //# sourceMappingURL=add-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-helpers.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/add-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAOhF;AAED,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB,IAAI,CAuBN;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB;IAAE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IAAC,YAAY,EAAE,IAAI,EAAE,CAAA;CAAE,CAKzE;AAkBD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,IAAI,GAAG,IAAI,EACvB,YAAY,EAAE,IAAI,EAAE,EACpB,YAAY,EAAE,IAAI,EAAE,GACnB,MAAM,CAQR;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,IAAI,GAAG,IAAI,EACvB,YAAY,EAAE,IAAI,EAAE,EACpB,YAAY,EAAE,IAAI,EAAE,GACnB,IAAI,CAwCN"}
1
+ {"version":3,"file":"add-helpers.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/add-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAe,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAM5C,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQzD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAOhF;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAkBzF;AAED,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB,IAAI,CAuBN;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB;IAAE,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IAAC,YAAY,EAAE,IAAI,EAAE,CAAA;CAAE,CAKzE;AAkBD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,IAAI,GAAG,IAAI,EACvB,YAAY,EAAE,IAAI,EAAE,EACpB,YAAY,EAAE,IAAI,EAAE,EACpB,IAAI,GAAE,GAAG,EAAO,GACf,MAAM,CASR;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,IAAI,GAAG,IAAI,EACvB,YAAY,EAAE,IAAI,EAAE,EACpB,YAAY,EAAE,IAAI,EAAE,EACpB,IAAI,GAAE,GAAG,EAAO,GACf,IAAI,CA+CN"}
@@ -9,6 +9,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.readBodyFromFile = readBodyFromFile;
11
11
  exports.parseBlockIds = parseBlockIds;
12
+ exports.resolveTagIds = resolveTagIds;
12
13
  exports.addBlockRelationships = addBlockRelationships;
13
14
  exports.fetchRelatedTasks = fetchRelatedTasks;
14
15
  exports.buildTaskJsonData = buildTaskJsonData;
@@ -18,6 +19,7 @@ const services_1 = require("../../../services");
18
19
  const error_handler_1 = require("../../utils/error-handler");
19
20
  const format_1 = require("../../../utils/format");
20
21
  const array_utils_1 = require("../../utils/array-utils");
22
+ const tag_resolver_1 = require("../../utils/tag-resolver");
21
23
  function readBodyFromFile(filePath) {
22
24
  const fileService = new services_1.FileService();
23
25
  try {
@@ -37,6 +39,24 @@ function parseBlockIds(value, label) {
37
39
  }
38
40
  return ids;
39
41
  }
42
+ function resolveTagIds(tagService, value) {
43
+ if (!value)
44
+ return [];
45
+ const parts = value
46
+ .split(',')
47
+ .map((s) => s.trim())
48
+ .filter((s) => s !== '');
49
+ const tagIds = new Set();
50
+ for (const part of parts) {
51
+ const { tag, byId } = (0, tag_resolver_1.resolveTag)(tagService, part);
52
+ if (!tag) {
53
+ const message = byId ? `Tag with ID "${part}" not found` : `Tag with name "${part}" not found`;
54
+ throw new Error(message);
55
+ }
56
+ tagIds.add(tag.id);
57
+ }
58
+ return Array.from(tagIds);
59
+ }
40
60
  function addBlockRelationships(taskBlockService, taskId, blockedByIds, blocksIds) {
41
61
  for (const blockerId of blockedByIds) {
42
62
  try {
@@ -82,16 +102,17 @@ function taskToJson(task) {
82
102
  updated_at: task.updated_at,
83
103
  };
84
104
  }
85
- function buildTaskJsonData(task, parentTask, blockerTasks, blockedTasks) {
105
+ function buildTaskJsonData(task, parentTask, blockerTasks, blockedTasks, tags = []) {
86
106
  return {
87
107
  success: true,
88
108
  task: taskToJson(task),
89
109
  parent: parentTask ? taskToJson(parentTask) : null,
90
110
  blockedBy: blockerTasks.map(taskToJson),
91
111
  blocking: blockedTasks.map(taskToJson),
112
+ tags: tags.map((tag) => ({ id: tag.id, name: tag.name })),
92
113
  };
93
114
  }
94
- function printTaskCreated(task, parentTask, blockerTasks, blockedTasks) {
115
+ function printTaskCreated(task, parentTask, blockerTasks, blockedTasks, tags = []) {
95
116
  console.log(chalk_1.default.green('\n✓ Task created successfully\n'));
96
117
  console.log(`${chalk_1.default.bold('ID:')} ${task.id}`);
97
118
  console.log(`${chalk_1.default.bold('Title:')} ${task.title}`);
@@ -123,6 +144,12 @@ function printTaskCreated(task, parentTask, blockerTasks, blockedTasks) {
123
144
  `${chalk_1.default[blockedStatusColor](`(${blocked.status})`)}`);
124
145
  });
125
146
  }
147
+ if (tags.length > 0) {
148
+ console.log(`${chalk_1.default.bold('Tags:')}`);
149
+ tags.forEach((tag) => {
150
+ console.log(` ${chalk_1.default.cyan('•')} ${chalk_1.default.cyan(`[${tag.id}]`)} ${tag.name}`);
151
+ });
152
+ }
126
153
  console.log();
127
154
  }
128
155
  //# sourceMappingURL=add-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-helpers.js","sourceRoot":"","sources":["../../../../src/cli/commands/task/add-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-helpers.js","sourceRoot":"","sources":["../../../../src/cli/commands/task/add-helpers.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAUH,4CAQC;AAED,sCAOC;AAED,sCAkBC;AAED,sDA4BC;AAED,8CAUC;AAkBD,8CAeC;AAED,4CAqDC;AA/KD,kDAA0B;AAC1B,gDAA2F;AAE3F,6DAA8D;AAC9D,kDAAmE;AACnE,yDAAwD;AACxD,2DAAsD;AAEtD,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,WAAW,GAAG,IAAI,sBAAW,EAAE,CAAC;IACtC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,KAAyB,EAAE,KAAa;IACpE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,GAAG,GAAG,IAAA,iCAAiB,EAAC,KAAK,CAAC,CAAC;IACrC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,4BAA4B,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,aAAa,CAAC,UAAsB,EAAE,KAAyB;IAC7E,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,KAAK,GAAG,KAAK;SAChB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAE3B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAA,yBAAU,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,aAAa,CAAC,CAAC,CAAC,kBAAkB,IAAI,aAAa,CAAC;YAC/F,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,qBAAqB,CACnC,gBAAkC,EAClC,MAAc,EACd,YAAsB,EACtB,SAAmB;IAEnB,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,gBAAgB,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GACP,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,mDAAmD,SAAS,KAAK,KAAK,CAAC,OAAO,EAAE;gBAClF,CAAC,CAAC,mDAAmD,SAAS,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,gBAAgB,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GACP,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,+CAA+C,SAAS,KAAK,KAAK,CAAC,OAAO,EAAE;gBAC9E,CAAC,CAAC,+CAA+C,SAAS,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAC/B,WAAwB,EACxB,IAAU,EACV,YAAsB,EACtB,SAAmB;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,2BAAa,CAAC,CAAC;IAC7F,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,2BAAa,CAAC,CAAC;IAC1F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,UAAU,CAAC,IAAU;IAC5B,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;AACJ,CAAC;AAED,SAAgB,iBAAiB,CAC/B,IAAU,EACV,UAAuB,EACvB,YAAoB,EACpB,YAAoB,EACpB,OAAc,EAAE;IAEhB,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;QACtB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;QAClD,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;QACvC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;QACtC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAC9B,IAAU,EACV,UAAuB,EACvB,YAAoB,EACpB,YAAoB,EACpB,OAAc,EAAE;IAEhB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,IAAA,uBAAc,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,eAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,EAAE,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAA,mBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAExE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,MAAM,UAAU,CAAC,CAAC;QAC3E,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,MAAM,kBAAkB,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CACT,KAAK,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG;gBACtE,GAAG,eAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CACxD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,MAAM,UAAU,CAAC,CAAC;QACzE,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,MAAM,kBAAkB,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CACT,KAAK,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG;gBACzE,GAAG,eAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CACxD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/add.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0J1D"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/add.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4L1D"}
@@ -14,7 +14,11 @@ const validators_1 = require("../../utils/validators");
14
14
  const input_validators_1 = require("../../../utils/input-validators");
15
15
  const output_formatter_1 = require("../../utils/output-formatter");
16
16
  const service_container_1 = require("../../utils/service-container");
17
+ const connection_1 = require("../../../db/connection");
17
18
  const add_helpers_1 = require("./add-helpers");
19
+ /** Marker error used to distinguish block-relationship failures from other errors thrown within the transaction */
20
+ class BlockRelationshipError extends Error {
21
+ }
18
22
  function setupTaskAddCommand(program) {
19
23
  const taskCommand = program.commands.find((cmd) => cmd.name() === 'task');
20
24
  if (!taskCommand) {
@@ -27,12 +31,13 @@ function setupTaskAddCommand(program) {
27
31
  .option('-a, --author <author>', 'Task author')
28
32
  .option('--assignees <assignees>', 'Task assignees (comma-separated)')
29
33
  .option('-s, --status <status>', 'Task status (icebox, backlog, ready, in_progress, review, done, closed)', 'backlog')
30
- .option('--priority <priority>', 'Task priority (critical, high, medium, low)', 'medium')
31
- .option('-p, --parent <id>', 'Parent task ID')
34
+ .option('-p, --priority <priority>', 'Task priority (critical, high, medium, low)', 'medium')
35
+ .option('--parent <id>', 'Parent task ID')
32
36
  .option('--file <path>', 'Read body from markdown file')
33
37
  .option('--branch <branch>', 'Git branch name for the task')
34
38
  .option('--blocked-by <ids>', 'Comma-separated task IDs that block this task')
35
39
  .option('--blocks <ids>', 'Comma-separated task IDs that this task blocks')
40
+ .option('--tag <names-or-ids>', 'Comma-separated tag names or IDs to attach')
36
41
  .option('--json', 'Output in JSON format')
37
42
  .description('Add a new task')
38
43
  .action(async (title, body, options) => {
@@ -115,30 +120,60 @@ function setupTaskAddCommand(program) {
115
120
  process.exit(1);
116
121
  return;
117
122
  }
118
- const { taskService, taskBlockService } = (0, service_container_1.getServiceContainer)();
119
- const task = taskService.createTask({
120
- title,
121
- body: taskBody,
122
- author: options.author,
123
- assignees: options.assignees,
124
- status: options.status,
125
- priority: options.priority ? options.priority : undefined,
126
- parent_id: parentId,
127
- branch: options.branch ?? null,
128
- });
123
+ const { taskService, taskBlockService, taskTagService, tagService } = (0, service_container_1.getServiceContainer)();
124
+ let tagIds = [];
129
125
  try {
130
- (0, add_helpers_1.addBlockRelationships)(taskBlockService, task.id, blockedByIds, blocksIds);
126
+ tagIds = (0, add_helpers_1.resolveTagIds)(tagService, options.tag);
131
127
  }
132
128
  catch (error) {
133
- const msg = error instanceof Error ? error.message : 'Error adding block relationships';
129
+ const msg = error instanceof Error ? error.message : 'Invalid tag';
134
130
  formatter.error(msg, () => {
135
- console.error(chalk_1.default.red(`\n✗ ${msg}\n`));
131
+ console.error(chalk_1.default.red(`\nError: ${msg}\n`));
136
132
  });
137
133
  process.exit(1);
138
134
  return;
139
135
  }
136
+ const backend = (0, connection_1.getStorageBackend)();
137
+ // Wrap task creation and block relationship setup in a single transaction
138
+ // so a failure in addBlockRelationships rolls back the created task instead
139
+ // of leaving an orphaned task behind.
140
+ let task;
141
+ try {
142
+ task = backend.transaction(() => {
143
+ const created = taskService.createTask({
144
+ title,
145
+ body: taskBody,
146
+ author: options.author,
147
+ assignees: options.assignees,
148
+ status: options.status,
149
+ priority: options.priority ? options.priority : undefined,
150
+ parent_id: parentId,
151
+ branch: options.branch ?? null,
152
+ tagIds,
153
+ });
154
+ try {
155
+ (0, add_helpers_1.addBlockRelationships)(taskBlockService, created.id, blockedByIds, blocksIds);
156
+ }
157
+ catch (error) {
158
+ throw new BlockRelationshipError(error instanceof Error ? error.message : 'Error adding block relationships');
159
+ }
160
+ return created;
161
+ });
162
+ }
163
+ catch (error) {
164
+ if (error instanceof BlockRelationshipError) {
165
+ const msg = error.message;
166
+ formatter.error(msg, () => {
167
+ console.error(chalk_1.default.red(`\n✗ ${msg}\n`));
168
+ });
169
+ process.exit(1);
170
+ return;
171
+ }
172
+ throw error;
173
+ }
140
174
  const { parentTask, blockerTasks, blockedTasks } = (0, add_helpers_1.fetchRelatedTasks)(taskService, task, blockedByIds, blocksIds);
141
- formatter.output(() => (0, add_helpers_1.buildTaskJsonData)(task, parentTask, blockerTasks, blockedTasks), () => (0, add_helpers_1.printTaskCreated)(task, parentTask, blockerTasks, blockedTasks));
175
+ const tags = taskTagService.getTagsForTask(task.id);
176
+ formatter.output(() => (0, add_helpers_1.buildTaskJsonData)(task, parentTask, blockerTasks, blockedTasks, tags), () => (0, add_helpers_1.printTaskCreated)(task, parentTask, blockerTasks, blockedTasks, tags));
142
177
  }
143
178
  catch (error) {
144
179
  if (error instanceof Error) {
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/cli/commands/task/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/cli/commands/task/add.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/archive.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkEpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiE9D"}
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/task/archive.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAW9D"}
@@ -2,119 +2,18 @@
2
2
  /**
3
3
  * Task archive command handler
4
4
  */
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
5
  Object.defineProperty(exports, "__esModule", { value: true });
9
6
  exports.setupTaskArchiveCommand = setupTaskArchiveCommand;
10
- const chalk_1 = __importDefault(require("chalk"));
11
- const service_container_1 = require("../../utils/service-container");
12
- const error_handler_1 = require("../../utils/error-handler");
13
- const validators_1 = require("../../utils/validators");
14
- const output_formatter_1 = require("../../utils/output-formatter");
15
- const format_1 = require("../../../utils/format");
16
- const date_1 = require("../../../utils/date");
17
- /** Default number of days before which tasks are eligible for archive */
18
- const DEFAULT_DAYS_BEFORE = 3;
19
- function resolveBeforeDate(before) {
20
- if (!before) {
21
- return { date: (0, date_1.daysAgoIso)(DEFAULT_DAYS_BEFORE) };
22
- }
23
- const parsed = new Date(before);
24
- if (isNaN(parsed.getTime())) {
25
- return { error: `Invalid date: ${before}. Use ISO 8601 format, e.g. 2026-01-01` };
26
- }
27
- return { date: parsed.toISOString() };
28
- }
29
- function resolveStatuses(statusOption) {
30
- const parts = statusOption
31
- .split(',')
32
- .map((s) => s.trim())
33
- .filter((s) => s !== '');
34
- if (parts.length === 0) {
35
- return { error: 'No statuses specified. Provide at least one status.' };
36
- }
37
- for (const s of parts) {
38
- if (!(0, validators_1.validateTaskStatus)(s)) {
39
- return {
40
- error: `Invalid status: ${s}. Valid statuses: icebox, backlog, ready, in_progress, review, done, closed`,
41
- };
42
- }
43
- }
44
- return { statuses: parts };
45
- }
46
- function printArchiveResult(tasks, beforeDate, dryRun) {
47
- if (tasks.length === 0) {
48
- console.log(chalk_1.default.yellow('\nNo tasks matched the archive criteria.\n'));
49
- return;
50
- }
51
- if (dryRun) {
52
- console.log(chalk_1.default.bold(`\n[Dry Run] ${tasks.length} task(s) would be archived (updated before ${beforeDate}):\n`));
53
- }
54
- else {
55
- console.log(chalk_1.default.green(`\n✓ Archived ${tasks.length} task(s) (updated before ${beforeDate}):\n`));
56
- }
57
- for (const t of tasks) {
58
- console.log(` ${chalk_1.default.bold.cyan(`[${t.id}]`)} ${chalk_1.default.bold(t.title)} ` +
59
- `${chalk_1.default.gray(`(${t.status})`)} ${chalk_1.default.gray('updated:')} ${(0, format_1.formatDate)(t.updated_at)}`);
60
- }
61
- console.log('');
62
- }
7
+ const purge_archive_helpers_1 = require("./purge-archive-helpers");
63
8
  function setupTaskArchiveCommand(program) {
64
- const taskCommand = program.commands.find((cmd) => cmd.name() === 'task');
65
- if (!taskCommand) {
66
- throw new Error('Task command not found');
67
- }
68
- taskCommand
69
- .command('archive')
70
- .option('--before <date>', 'Archive tasks last updated before this date (ISO 8601, e.g. 2026-01-01). Defaults to 3 days ago.')
71
- .option('--status <statuses>', 'Comma-separated list of statuses to target (default: done,closed)', 'done,closed')
72
- .option('--dry-run', 'Preview tasks that would be archived without modifying them')
73
- .option('--json', 'Output in JSON format')
74
- .description('Archive done/closed tasks older than a given date (sets is_archived flag)')
75
- .action(async (options) => {
76
- const formatter = (0, output_formatter_1.createFormatter)(options);
77
- try {
78
- const { taskService } = (0, service_container_1.getServiceContainer)();
79
- const beforeResult = resolveBeforeDate(options.before);
80
- if ('error' in beforeResult) {
81
- formatter.error(beforeResult.error, () => {
82
- console.error(chalk_1.default.red(`\nError: ${beforeResult.error}\n`));
83
- });
84
- process.exit(1);
85
- return;
86
- }
87
- const beforeDate = beforeResult.date;
88
- const statusResult = resolveStatuses(options.status);
89
- if ('error' in statusResult) {
90
- formatter.error(statusResult.error, () => {
91
- console.error(chalk_1.default.red(`\nError: ${statusResult.error}\n`));
92
- });
93
- process.exit(1);
94
- return;
95
- }
96
- const statuses = statusResult.statuses;
97
- const dryRun = !!options.dryRun;
98
- const tasks = taskService.archiveTasksBefore(beforeDate, statuses, dryRun);
99
- formatter.output(() => ({
100
- dryRun,
101
- beforeDate,
102
- statuses,
103
- count: tasks.length,
104
- tasks: tasks.map((t) => ({ id: t.id, title: t.title, status: t.status, updated_at: t.updated_at })),
105
- }), () => printArchiveResult(tasks, beforeDate, dryRun));
106
- }
107
- catch (error) {
108
- if (error instanceof Error) {
109
- (0, error_handler_1.handleError)(error, options);
110
- }
111
- else {
112
- formatter.error('An unknown error occurred', () => {
113
- console.error(chalk_1.default.red('\n✗ An unknown error occurred\n'));
114
- });
115
- }
116
- process.exit(1);
117
- }
9
+ (0, purge_archive_helpers_1.setupPurgeArchiveCommand)(program, {
10
+ commandName: 'archive',
11
+ verb: 'archive',
12
+ pastVerb: 'Archived',
13
+ description: 'Archive done/closed tasks older than a given date (sets is_archived flag)',
14
+ beforeHelp: 'Archive tasks last updated before this date (ISO 8601, e.g. 2026-01-01). Defaults to 3 days ago.',
15
+ dryRunHelp: 'Preview tasks that would be archived without modifying them',
16
+ serviceMethod: (taskService, beforeDate, statuses, dryRun) => taskService.archiveTasksBefore(beforeDate, statuses, dryRun),
118
17
  });
119
18
  }
120
19
  //# sourceMappingURL=archive.js.map