@legdev/tkxr 1.1.11

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 (101) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +477 -0
  3. package/dist/cli/commands/comments.d.ts +10 -0
  4. package/dist/cli/commands/comments.d.ts.map +1 -0
  5. package/dist/cli/commands/comments.js +81 -0
  6. package/dist/cli/commands/comments.js.map +1 -0
  7. package/dist/cli/commands/create.d.ts +11 -0
  8. package/dist/cli/commands/create.d.ts.map +1 -0
  9. package/dist/cli/commands/create.js +74 -0
  10. package/dist/cli/commands/create.js.map +1 -0
  11. package/dist/cli/commands/delete.d.ts +7 -0
  12. package/dist/cli/commands/delete.d.ts.map +1 -0
  13. package/dist/cli/commands/delete.js +61 -0
  14. package/dist/cli/commands/delete.js.map +1 -0
  15. package/dist/cli/commands/list.d.ts +16 -0
  16. package/dist/cli/commands/list.d.ts.map +1 -0
  17. package/dist/cli/commands/list.js +239 -0
  18. package/dist/cli/commands/list.js.map +1 -0
  19. package/dist/cli/commands/mcp.d.ts +8 -0
  20. package/dist/cli/commands/mcp.d.ts.map +1 -0
  21. package/dist/cli/commands/mcp.js +52 -0
  22. package/dist/cli/commands/mcp.js.map +1 -0
  23. package/dist/cli/commands/serve.d.ts +8 -0
  24. package/dist/cli/commands/serve.d.ts.map +1 -0
  25. package/dist/cli/commands/serve.js +505 -0
  26. package/dist/cli/commands/serve.js.map +1 -0
  27. package/dist/cli/commands/show.d.ts +7 -0
  28. package/dist/cli/commands/show.d.ts.map +1 -0
  29. package/dist/cli/commands/show.js +84 -0
  30. package/dist/cli/commands/show.js.map +1 -0
  31. package/dist/cli/commands/sprint.d.ts +11 -0
  32. package/dist/cli/commands/sprint.d.ts.map +1 -0
  33. package/dist/cli/commands/sprint.js +114 -0
  34. package/dist/cli/commands/sprint.js.map +1 -0
  35. package/dist/cli/commands/sprints.d.ts +10 -0
  36. package/dist/cli/commands/sprints.d.ts.map +1 -0
  37. package/dist/cli/commands/sprints.js +64 -0
  38. package/dist/cli/commands/sprints.js.map +1 -0
  39. package/dist/cli/commands/status.d.ts +6 -0
  40. package/dist/cli/commands/status.d.ts.map +1 -0
  41. package/dist/cli/commands/status.js +48 -0
  42. package/dist/cli/commands/status.js.map +1 -0
  43. package/dist/cli/commands/user.d.ts +8 -0
  44. package/dist/cli/commands/user.d.ts.map +1 -0
  45. package/dist/cli/commands/user.js +61 -0
  46. package/dist/cli/commands/user.js.map +1 -0
  47. package/dist/cli/commands/users.d.ts +7 -0
  48. package/dist/cli/commands/users.d.ts.map +1 -0
  49. package/dist/cli/commands/users.js +28 -0
  50. package/dist/cli/commands/users.js.map +1 -0
  51. package/dist/cli/commands/version.d.ts +7 -0
  52. package/dist/cli/commands/version.d.ts.map +1 -0
  53. package/dist/cli/commands/version.js +94 -0
  54. package/dist/cli/commands/version.js.map +1 -0
  55. package/dist/cli/index.d.ts +3 -0
  56. package/dist/cli/index.d.ts.map +1 -0
  57. package/dist/cli/index.js +146 -0
  58. package/dist/cli/index.js.map +1 -0
  59. package/dist/core/notifier.d.ts +51 -0
  60. package/dist/core/notifier.d.ts.map +1 -0
  61. package/dist/core/notifier.js +118 -0
  62. package/dist/core/notifier.js.map +1 -0
  63. package/dist/core/storage.d.ts +41 -0
  64. package/dist/core/storage.d.ts.map +1 -0
  65. package/dist/core/storage.js +383 -0
  66. package/dist/core/storage.js.map +1 -0
  67. package/dist/core/test_getAllTickets.d.ts +2 -0
  68. package/dist/core/test_getAllTickets.d.ts.map +1 -0
  69. package/dist/core/test_getAllTickets.js +7 -0
  70. package/dist/core/test_getAllTickets.js.map +1 -0
  71. package/dist/core/types.d.ts +67 -0
  72. package/dist/core/types.d.ts.map +1 -0
  73. package/dist/core/types.js +2 -0
  74. package/dist/core/types.js.map +1 -0
  75. package/dist/index.d.ts +3 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +3 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/mcp/server.d.ts +25 -0
  80. package/dist/mcp/server.d.ts.map +1 -0
  81. package/dist/mcp/server.js +489 -0
  82. package/dist/mcp/server.js.map +1 -0
  83. package/dist/web/_app/immutable/assets/0.47dd68fd.css +1 -0
  84. package/dist/web/_app/immutable/assets/2.3f11c9a4.css +1 -0
  85. package/dist/web/_app/immutable/assets/_layout.47e0a118.css +1 -0
  86. package/dist/web/_app/immutable/assets/_page.3f11c9a4.css +1 -0
  87. package/dist/web/_app/immutable/chunks/index.23b89654.js +1 -0
  88. package/dist/web/_app/immutable/chunks/index.f094d695.js +1 -0
  89. package/dist/web/_app/immutable/chunks/scheduler.81694808.js +1 -0
  90. package/dist/web/_app/immutable/chunks/singletons.9c246a72.js +1 -0
  91. package/dist/web/_app/immutable/chunks/stores.48058fce.js +1 -0
  92. package/dist/web/_app/immutable/entry/app.fea83d45.js +1 -0
  93. package/dist/web/_app/immutable/entry/start.3fd90366.js +3 -0
  94. package/dist/web/_app/immutable/nodes/0.e605bf9a.js +1 -0
  95. package/dist/web/_app/immutable/nodes/1.e3ce54f6.js +1 -0
  96. package/dist/web/_app/immutable/nodes/2.04dfac64.js +13 -0
  97. package/dist/web/_app/version.json +1 -0
  98. package/dist/web/favicon.png +3 -0
  99. package/dist/web/favicon.svg +10 -0
  100. package/dist/web/index.html +37 -0
  101. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cli/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUlD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAgB;IACjD,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAErC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC;YACZ,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAwB,EAAE,KAAK,EAAE;oBACzE,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAe;oBAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC9D,CAAC,CAAC;gBAEH,gBAAgB;gBAChB,MAAM,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAE3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,UAAU,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1C,IAAI,MAAM,CAAC,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnE,IAAI,MAAM,CAAC,MAAM;oBAAE,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7D,IAAI,MAAM,CAAC,QAAQ;oBAAE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnE,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE;oBAC/C,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;gBAEH,gBAAgB;gBAChB,MAAM,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBAE3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1C,IAAI,MAAM,CAAC,WAAW;oBAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC5E,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,qCAAqC;gBACrC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;gBAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAE1D,gBAAgB;gBAChB,MAAM,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAEvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnD,MAAM;YACR,CAAC;YAED;gBACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,UAAU,GAAG,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,UAAU,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IACtH,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type minimist from 'minimist';
2
+ interface DeleteArgs extends minimist.ParsedArgs {
3
+ force?: boolean;
4
+ }
5
+ export declare function deleteTicket(args: DeleteArgs): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/delete.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAIrC,UAAU,UAAW,SAAQ,QAAQ,CAAC,UAAU;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DlE"}
@@ -0,0 +1,61 @@
1
+ import chalk from 'chalk';
2
+ import { createStorage } from '../../core/storage.js';
3
+ import { notifier } from '../../core/notifier.js';
4
+ export async function deleteTicket(args) {
5
+ const [, id] = args._;
6
+ if (!id) {
7
+ console.log(chalk.red('Error: Ticket ID is required'));
8
+ console.log('Usage: tkxr delete <id>');
9
+ return;
10
+ }
11
+ const storage = await createStorage();
12
+ try {
13
+ // Try to find and load the entity first to show what we're deleting
14
+ const result = await storage.findEntity(id);
15
+ if (!result) {
16
+ console.log(chalk.red(`Error: No entity found with ID "${id}"`));
17
+ return;
18
+ }
19
+ const { entity, type: entityType } = result;
20
+ // Show what will be deleted
21
+ console.log(chalk.yellow(`About to delete ${entityType.slice(0, -1)}: ${id}`));
22
+ if (entity && typeof entity === 'object' && 'title' in entity) {
23
+ console.log(` Title: ${entity.title}`);
24
+ }
25
+ else if (entity && typeof entity === 'object' && 'name' in entity) {
26
+ console.log(` Name: ${entity.name}`);
27
+ }
28
+ else if (entity && typeof entity === 'object' && 'username' in entity) {
29
+ console.log(` Username: ${entity.username}`);
30
+ }
31
+ // Confirm deletion unless --force is specified
32
+ if (!args.force) {
33
+ console.log(chalk.red('Use --force to confirm deletion'));
34
+ return;
35
+ }
36
+ // Perform deletion
37
+ if (entityType === 'tasks' || entityType === 'bugs') {
38
+ // For tickets, first delete all associated comments
39
+ const comments = await storage.getComments(id);
40
+ for (const comment of comments) {
41
+ await storage.deleteComment(comment.id);
42
+ }
43
+ console.log(chalk.dim(` Deleted ${comments.length} associated comment(s)...`));
44
+ }
45
+ const deleted = await storage.deleteEntity(entityType, id);
46
+ if (deleted) {
47
+ // Notify web UI if it's a ticket (task or bug)
48
+ if (entityType === 'tasks' || entityType === 'bugs') {
49
+ await notifier.notifyTicketDeleted(id);
50
+ }
51
+ console.log(chalk.green(`✓ Deleted ${entityType.slice(0, -1)}: ${id}`));
52
+ }
53
+ else {
54
+ console.log(chalk.red(`Error: Failed to delete ${id}`));
55
+ }
56
+ }
57
+ catch (error) {
58
+ console.log(chalk.red(`Error deleting ${id}: ${error instanceof Error ? error.message : 'Unknown error'}`));
59
+ }
60
+ }
61
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/cli/commands/delete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type minimist from 'minimist';
2
+ interface ListArgs extends minimist.ParsedArgs {
3
+ status?: string;
4
+ assignee?: string;
5
+ sprint?: string;
6
+ format?: 'table' | 'json';
7
+ search?: string;
8
+ s?: string;
9
+ 'sort-by'?: 'title' | 'status' | 'priority' | 'created' | 'updated';
10
+ order?: 'asc' | 'desc';
11
+ verbose?: boolean;
12
+ v?: boolean;
13
+ }
14
+ export declare function listTickets(args: ListArgs): Promise<void>;
15
+ export {};
16
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAIrC,UAAU,QAAS,SAAQ,QAAQ,CAAC,UAAU;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACpE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,CAAC,EAAE,OAAO,CAAC;CACb;AAuDD,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAqJ/D"}
@@ -0,0 +1,239 @@
1
+ import chalk from 'chalk';
2
+ import { createStorage } from '../../core/storage.js';
3
+ function formatTicket(ticket, verbose = false, users = [], sprints = []) {
4
+ const statusColors = {
5
+ todo: chalk.gray,
6
+ progress: chalk.yellow,
7
+ done: chalk.green,
8
+ };
9
+ const prioritySymbols = {
10
+ low: '◦',
11
+ medium: '●',
12
+ high: '◉',
13
+ critical: '🔴',
14
+ };
15
+ const statusColor = statusColors[ticket.status] || chalk.white;
16
+ const prioritySymbol = ticket.priority ? prioritySymbols[ticket.priority] : '●';
17
+ let result = `${chalk.blue(ticket.id)} ${statusColor(ticket.status.padEnd(8))} ${prioritySymbol} ${ticket.title}`;
18
+ if (verbose) {
19
+ const assigneeDisplay = ticket.assignee
20
+ ? users.find(u => u.id === ticket.assignee)?.displayName || ticket.assignee
21
+ : '';
22
+ const sprintDisplay = ticket.sprint
23
+ ? sprints.find(s => s.id === ticket.sprint)?.name || ticket.sprint
24
+ : '';
25
+ if (assigneeDisplay || sprintDisplay) {
26
+ const details = [];
27
+ if (assigneeDisplay)
28
+ details.push(chalk.dim(`@${assigneeDisplay}`));
29
+ if (sprintDisplay)
30
+ details.push(chalk.dim(`[${sprintDisplay}]`));
31
+ result += ` ${details.join(' ')}`;
32
+ }
33
+ }
34
+ return result;
35
+ }
36
+ function formatSprint(sprint) {
37
+ const statusColors = {
38
+ planning: chalk.gray,
39
+ active: chalk.green,
40
+ completed: chalk.blue,
41
+ };
42
+ const statusColor = statusColors[sprint.status] || chalk.white;
43
+ return `${chalk.blue(sprint.id)} ${statusColor(sprint.status.padEnd(10))} ${sprint.name}`;
44
+ }
45
+ function formatUser(user) {
46
+ return `${chalk.blue(user.id)} ${chalk.green(user.username.padEnd(15))} ${user.displayName}`;
47
+ }
48
+ export async function listTickets(args) {
49
+ const [, entityType] = args._;
50
+ const storage = await createStorage();
51
+ const verbose = args.verbose || args.v || false;
52
+ // Load user and sprint data if verbose mode is enabled
53
+ let users = [];
54
+ let sprints = [];
55
+ if (verbose) {
56
+ try {
57
+ users = await storage.getUsers();
58
+ sprints = await storage.getSprints();
59
+ }
60
+ catch (error) {
61
+ // Continue without verbose data if it fails to load
62
+ console.log(chalk.dim('Warning: Could not load user/sprint data for verbose mode'));
63
+ }
64
+ }
65
+ try {
66
+ switch (entityType) {
67
+ case 'tasks':
68
+ case 'task': {
69
+ const tickets = await storage.getTicketsByType('task');
70
+ const filteredTickets = sortTickets(filterTickets(tickets, args), args);
71
+ if (filteredTickets.length === 0) {
72
+ console.log(chalk.yellow('No tasks found'));
73
+ return;
74
+ }
75
+ console.log(chalk.bold(`\n📋 Tasks (${filteredTickets.length})`));
76
+ console.log(chalk.dim('ID'.padEnd(12) + 'STATUS'.padEnd(10) + 'PRI TITLE'));
77
+ console.log(chalk.dim('─'.repeat(60)));
78
+ filteredTickets.forEach(ticket => {
79
+ console.log(formatTicket(ticket, verbose, users, sprints));
80
+ });
81
+ break;
82
+ }
83
+ case 'bugs':
84
+ case 'bug': {
85
+ const tickets = await storage.getTicketsByType('bug');
86
+ const filteredTickets = sortTickets(filterTickets(tickets, args), args);
87
+ if (filteredTickets.length === 0) {
88
+ console.log(chalk.yellow('No bugs found'));
89
+ return;
90
+ }
91
+ console.log(chalk.bold(`\n🐛 Bugs (${filteredTickets.length})`));
92
+ console.log(chalk.dim('ID'.padEnd(12) + 'STATUS'.padEnd(10) + 'PRI TITLE'));
93
+ console.log(chalk.dim('─'.repeat(60)));
94
+ filteredTickets.forEach(ticket => {
95
+ console.log(formatTicket(ticket, verbose, users, sprints));
96
+ });
97
+ break;
98
+ }
99
+ case 'sprints':
100
+ case 'sprint': {
101
+ const sprints = await storage.getSprints();
102
+ if (sprints.length === 0) {
103
+ console.log(chalk.yellow('No sprints found'));
104
+ return;
105
+ }
106
+ console.log(chalk.bold(`\n🏃 Sprints (${sprints.length})`));
107
+ console.log(chalk.dim('ID'.padEnd(12) + 'STATUS'.padEnd(12) + 'NAME'));
108
+ console.log(chalk.dim('─'.repeat(50)));
109
+ sprints.forEach((sprint) => {
110
+ console.log(formatSprint(sprint));
111
+ });
112
+ break;
113
+ }
114
+ case 'users':
115
+ case 'user': {
116
+ const users = await storage.getUsers();
117
+ if (users.length === 0) {
118
+ console.log(chalk.yellow('No users found'));
119
+ return;
120
+ }
121
+ console.log(chalk.bold(`\n👥 Users (${users.length})`));
122
+ console.log(chalk.dim('ID'.padEnd(12) + 'USERNAME'.padEnd(17) + 'DISPLAY NAME'));
123
+ console.log(chalk.dim('─'.repeat(50)));
124
+ users.forEach((user) => {
125
+ console.log(formatUser(user));
126
+ });
127
+ break;
128
+ }
129
+ default: {
130
+ // List all tickets if no type specified
131
+ const tasks = await storage.getTicketsByType('task');
132
+ const bugs = await storage.getTicketsByType('bug');
133
+ const allTickets = [...tasks, ...bugs];
134
+ const filteredTickets = sortTickets(filterTickets(allTickets, args), args);
135
+ if (filteredTickets.length === 0) {
136
+ console.log(chalk.yellow('No tickets found'));
137
+ return;
138
+ }
139
+ const sortBy = args['sort-by'] || 'updated';
140
+ // When sorting by priority, show unified list to maintain priority order
141
+ if (sortBy === 'priority') {
142
+ console.log(chalk.bold(`\n🎯 All Tickets by Priority (${filteredTickets.length})`));
143
+ console.log(chalk.dim('ID'.padEnd(12) + 'STATUS'.padEnd(10) + 'PRI TITLE'));
144
+ console.log(chalk.dim('─'.repeat(60)));
145
+ filteredTickets.forEach(ticket => {
146
+ console.log(formatTicket(ticket, verbose, users, sprints));
147
+ });
148
+ }
149
+ else {
150
+ // Group by type for other sorts
151
+ const taskTickets = filteredTickets.filter(t => t.type === 'task');
152
+ const bugTickets = filteredTickets.filter(t => t.type === 'bug');
153
+ if (taskTickets.length > 0) {
154
+ console.log(chalk.bold(`\n📋 Tasks (${taskTickets.length})`));
155
+ console.log(chalk.dim('ID'.padEnd(12) + 'STATUS'.padEnd(10) + 'PRI TITLE'));
156
+ console.log(chalk.dim('─'.repeat(60)));
157
+ taskTickets.forEach(ticket => console.log(formatTicket(ticket, verbose, users, sprints)));
158
+ }
159
+ if (bugTickets.length > 0) {
160
+ console.log(chalk.bold(`\n🐛 Bugs (${bugTickets.length})`));
161
+ console.log(chalk.dim('ID'.padEnd(12) + 'STATUS'.padEnd(10) + 'PRI TITLE'));
162
+ console.log(chalk.dim('─'.repeat(60)));
163
+ bugTickets.forEach(ticket => console.log(formatTicket(ticket, verbose, users, sprints)));
164
+ }
165
+ }
166
+ break;
167
+ }
168
+ }
169
+ console.log(); // Extra newline for spacing
170
+ }
171
+ catch (error) {
172
+ console.log(chalk.red(`Error listing ${entityType || 'tickets'}: ${error instanceof Error ? error.message : 'Unknown error'}`));
173
+ }
174
+ }
175
+ function filterTickets(tickets, args) {
176
+ return tickets.filter(ticket => {
177
+ if (args.status && ticket.status !== args.status) {
178
+ return false;
179
+ }
180
+ if (args.assignee && ticket.assignee !== args.assignee) {
181
+ return false;
182
+ }
183
+ if (args.sprint && ticket.sprint !== args.sprint) {
184
+ return false;
185
+ }
186
+ // Search functionality
187
+ const searchTerm = args.search || args.s;
188
+ if (searchTerm) {
189
+ const term = searchTerm.toLowerCase();
190
+ const searchableText = `${ticket.title} ${ticket.description || ''} ${ticket.id}`.toLowerCase();
191
+ if (!searchableText.includes(term)) {
192
+ return false;
193
+ }
194
+ }
195
+ return true;
196
+ });
197
+ }
198
+ function sortTickets(tickets, args) {
199
+ const sortBy = args['sort-by'] || 'updated';
200
+ const order = args.order || 'desc';
201
+ return tickets.sort((a, b) => {
202
+ let compareValue = 0;
203
+ switch (sortBy) {
204
+ case 'title':
205
+ compareValue = a.title.localeCompare(b.title);
206
+ break;
207
+ case 'status':
208
+ const statusOrder = { todo: 0, progress: 1, done: 2 };
209
+ compareValue = statusOrder[a.status] - statusOrder[b.status];
210
+ break;
211
+ case 'priority':
212
+ const priorityOrder = { low: 0, medium: 1, high: 2, critical: 3 };
213
+ const aPriority = a.priority || 'medium';
214
+ const bPriority = b.priority || 'medium';
215
+ const aPriorityValue = priorityOrder[aPriority] ?? 1;
216
+ const bPriorityValue = priorityOrder[bPriority] ?? 1;
217
+ compareValue = aPriorityValue - bPriorityValue; // Low to high (ascending base)
218
+ // If priorities are equal, sort bugs before tasks
219
+ if (compareValue === 0) {
220
+ if (a.type === 'bug' && b.type === 'task') {
221
+ compareValue = -1; // bug comes first
222
+ }
223
+ else if (a.type === 'task' && b.type === 'bug') {
224
+ compareValue = 1; // task comes second
225
+ }
226
+ }
227
+ break;
228
+ case 'created':
229
+ compareValue = new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime();
230
+ break;
231
+ case 'updated':
232
+ default:
233
+ compareValue = new Date(a.updatedAt).getTime() - new Date(b.updatedAt).getTime();
234
+ break;
235
+ }
236
+ return order === 'desc' ? -compareValue : compareValue;
237
+ });
238
+ }
239
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type minimist from 'minimist';
2
+ interface McpArgs extends minimist.ParsedArgs {
3
+ _: string[];
4
+ help?: boolean;
5
+ }
6
+ export declare function startMCPServer(args: McpArgs): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAGrC,UAAU,OAAQ,SAAQ,QAAQ,CAAC,UAAU;IAC3C,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBjE"}
@@ -0,0 +1,52 @@
1
+ import chalk from 'chalk';
2
+ import { TKXRMCPServer } from '../../mcp/server.js';
3
+ export async function startMCPServer(args) {
4
+ if (args.help) {
5
+ showMCPHelp();
6
+ return;
7
+ }
8
+ try {
9
+ console.log(chalk.blue.bold('Starting TKXR MCP Server...'));
10
+ console.log(chalk.gray('MCP server allows AI assistants to manage tickets through CLI commands'));
11
+ console.log();
12
+ const server = new TKXRMCPServer();
13
+ await server.run();
14
+ // This line should never be reached since MCP servers run indefinitely
15
+ console.log(chalk.green('MCP server started successfully'));
16
+ }
17
+ catch (error) {
18
+ console.error(chalk.red('Failed to start MCP server:'), error instanceof Error ? error.message : String(error));
19
+ process.exit(1);
20
+ }
21
+ }
22
+ function showMCPHelp() {
23
+ console.log(chalk.blue.bold('TKXR MCP Server'));
24
+ console.log();
25
+ console.log(chalk.green('Usage:'));
26
+ console.log(' tkxr mcp');
27
+ console.log();
28
+ console.log(chalk.green('Description:'));
29
+ console.log(' Starts a Model Context Protocol (MCP) server that allows AI assistants');
30
+ console.log(' to manage tickets, users, and sprints through standardized tool calls.');
31
+ console.log();
32
+ console.log(chalk.green('Available MCP Tools:'));
33
+ console.log(' • list_tickets - List all tickets in the repository');
34
+ console.log(' • create_ticket - Create a new ticket (task or bug)');
35
+ console.log(' • update_ticket_status - Update the status of a ticket');
36
+ console.log(' • delete_ticket - Delete a ticket from the repository');
37
+ console.log(' • list_users - List all users in the repository');
38
+ console.log(' • create_user - Create a new user');
39
+ console.log(' • list_sprints - List all sprints in the repository');
40
+ console.log(' • create_sprint - Create a new sprint');
41
+ console.log(' • update_sprint_status - Update the status of a sprint');
42
+ console.log();
43
+ console.log(chalk.green('Usage with AI:'));
44
+ console.log(' Configure your AI assistant to connect to this MCP server to enable');
45
+ console.log(' ticket management capabilities. The server communicates via stdio.');
46
+ console.log();
47
+ console.log(chalk.green('Examples:'));
48
+ console.log(' tkxr mcp # Start MCP server');
49
+ console.log();
50
+ console.log(chalk.yellow('Note: MCP server runs until manually stopped (Ctrl+C)'));
51
+ }
52
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAa;IAChD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC,CAAC;QAClG,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;QAEnB,uEAAuE;QACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;IACxF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;AACrF,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type minimist from 'minimist';
2
+ interface ServeArgs extends minimist.ParsedArgs {
3
+ port?: number;
4
+ host?: string;
5
+ }
6
+ export declare function startServer(args: ServeArgs): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AASrC,UAAU,SAAU,SAAQ,QAAQ,CAAC,UAAU;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA6iBhE"}