dyson-swarm-cli 1.0.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.
- package/dist/__tests__/help.test.d.ts +2 -0
- package/dist/__tests__/help.test.d.ts.map +1 -0
- package/dist/__tests__/help.test.js +42 -0
- package/dist/__tests__/help.test.js.map +1 -0
- package/dist/commands/__tests__/assign.test.d.ts +2 -0
- package/dist/commands/__tests__/assign.test.d.ts.map +1 -0
- package/dist/commands/__tests__/assign.test.js +47 -0
- package/dist/commands/__tests__/assign.test.js.map +1 -0
- package/dist/commands/__tests__/create.test.d.ts +2 -0
- package/dist/commands/__tests__/create.test.d.ts.map +1 -0
- package/dist/commands/__tests__/create.test.js +98 -0
- package/dist/commands/__tests__/create.test.js.map +1 -0
- package/dist/commands/__tests__/delete.test.d.ts +2 -0
- package/dist/commands/__tests__/delete.test.d.ts.map +1 -0
- package/dist/commands/__tests__/delete.test.js +46 -0
- package/dist/commands/__tests__/delete.test.js.map +1 -0
- package/dist/commands/__tests__/get.test.d.ts +2 -0
- package/dist/commands/__tests__/get.test.d.ts.map +1 -0
- package/dist/commands/__tests__/get.test.js +67 -0
- package/dist/commands/__tests__/get.test.js.map +1 -0
- package/dist/commands/__tests__/list.test.d.ts +2 -0
- package/dist/commands/__tests__/list.test.d.ts.map +1 -0
- package/dist/commands/__tests__/list.test.js +74 -0
- package/dist/commands/__tests__/list.test.js.map +1 -0
- package/dist/commands/__tests__/status.test.d.ts +2 -0
- package/dist/commands/__tests__/status.test.d.ts.map +1 -0
- package/dist/commands/__tests__/status.test.js +71 -0
- package/dist/commands/__tests__/status.test.js.map +1 -0
- package/dist/commands/__tests__/unassign.test.d.ts +2 -0
- package/dist/commands/__tests__/unassign.test.d.ts.map +1 -0
- package/dist/commands/__tests__/unassign.test.js +47 -0
- package/dist/commands/__tests__/unassign.test.js.map +1 -0
- package/dist/commands/__tests__/update.test.d.ts +2 -0
- package/dist/commands/__tests__/update.test.d.ts.map +1 -0
- package/dist/commands/__tests__/update.test.js +88 -0
- package/dist/commands/__tests__/update.test.js.map +1 -0
- package/dist/commands/assign.d.ts +3 -0
- package/dist/commands/assign.d.ts.map +1 -0
- package/dist/commands/assign.js +26 -0
- package/dist/commands/assign.js.map +1 -0
- package/dist/commands/create.d.ts +3 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +38 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/delete.d.ts +3 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +29 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/get.d.ts +3 -0
- package/dist/commands/get.d.ts.map +1 -0
- package/dist/commands/get.js +39 -0
- package/dist/commands/get.js.map +1 -0
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +51 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +29 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/unassign.d.ts +3 -0
- package/dist/commands/unassign.d.ts.map +1 -0
- package/dist/commands/unassign.js +25 -0
- package/dist/commands/unassign.js.map +1 -0
- package/dist/commands/update.d.ts +3 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +42 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/help.d.ts +2 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +38 -0
- package/dist/help.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
2
|
+
import { updateAction } from '../update.js';
|
|
3
|
+
// Mock the TaskManager
|
|
4
|
+
const mockUpdateTask = vi.fn();
|
|
5
|
+
vi.mock("dyson-swarm", () => ({
|
|
6
|
+
TaskManager: vi.fn().mockImplementation(() => ({
|
|
7
|
+
updateTask: mockUpdateTask,
|
|
8
|
+
})),
|
|
9
|
+
}));
|
|
10
|
+
// Mock console
|
|
11
|
+
const mockConsoleLog = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
12
|
+
const mockConsoleError = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
13
|
+
// Mock process.exit
|
|
14
|
+
const mockExit = vi.spyOn(process, 'exit').mockImplementation(() => {
|
|
15
|
+
throw new Error('process.exit called');
|
|
16
|
+
});
|
|
17
|
+
describe('update command', () => {
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
vi.clearAllMocks();
|
|
20
|
+
});
|
|
21
|
+
it('should update task title', async () => {
|
|
22
|
+
const mockTask = {
|
|
23
|
+
id: 'task-1',
|
|
24
|
+
frontmatter: { title: 'New Title' },
|
|
25
|
+
status: 'open',
|
|
26
|
+
};
|
|
27
|
+
mockUpdateTask.mockResolvedValue(mockTask);
|
|
28
|
+
await updateAction('task-1', { title: 'New Title' });
|
|
29
|
+
expect(mockUpdateTask).toHaveBeenCalledWith('task-1', { title: 'New Title' });
|
|
30
|
+
expect(mockConsoleLog).toHaveBeenCalledWith('Updated task: task-1');
|
|
31
|
+
expect(mockConsoleLog).toHaveBeenCalledWith('Title: New Title');
|
|
32
|
+
});
|
|
33
|
+
it('should update task description', async () => {
|
|
34
|
+
const mockTask = {
|
|
35
|
+
id: 'task-1',
|
|
36
|
+
frontmatter: { title: 'Task' },
|
|
37
|
+
status: 'open',
|
|
38
|
+
description: 'New description',
|
|
39
|
+
};
|
|
40
|
+
mockUpdateTask.mockResolvedValue(mockTask);
|
|
41
|
+
await updateAction('task-1', { description: 'New description' });
|
|
42
|
+
expect(mockUpdateTask).toHaveBeenCalledWith('task-1', { description: 'New description' });
|
|
43
|
+
});
|
|
44
|
+
it('should update task assignee', async () => {
|
|
45
|
+
const mockTask = {
|
|
46
|
+
id: 'task-1',
|
|
47
|
+
frontmatter: { title: 'Task', assignee: 'jane.doe' },
|
|
48
|
+
status: 'in-progress',
|
|
49
|
+
};
|
|
50
|
+
mockUpdateTask.mockResolvedValue(mockTask);
|
|
51
|
+
await updateAction('task-1', { assignee: 'jane.doe' });
|
|
52
|
+
expect(mockUpdateTask).toHaveBeenCalledWith('task-1', { assignee: 'jane.doe' });
|
|
53
|
+
expect(mockConsoleLog).toHaveBeenCalledWith('Assignee: jane.doe');
|
|
54
|
+
});
|
|
55
|
+
it('should update multiple fields', async () => {
|
|
56
|
+
const mockTask = {
|
|
57
|
+
id: 'task-1',
|
|
58
|
+
frontmatter: { title: 'New Title', assignee: 'john.doe' },
|
|
59
|
+
status: 'in-progress',
|
|
60
|
+
description: 'New description',
|
|
61
|
+
};
|
|
62
|
+
mockUpdateTask.mockResolvedValue(mockTask);
|
|
63
|
+
await updateAction('task-1', { title: 'New Title', description: 'New description', assignee: 'john.doe' });
|
|
64
|
+
expect(mockUpdateTask).toHaveBeenCalledWith('task-1', {
|
|
65
|
+
title: 'New Title',
|
|
66
|
+
description: 'New description',
|
|
67
|
+
assignee: 'john.doe',
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
it('should reject when no updates specified', async () => {
|
|
71
|
+
await expect(updateAction('task-1', {})).rejects.toThrow('process.exit called');
|
|
72
|
+
expect(mockConsoleError).toHaveBeenCalledWith('No updates specified. Use --title, --description, or --assignee.');
|
|
73
|
+
expect(mockExit).toHaveBeenCalledWith(1);
|
|
74
|
+
});
|
|
75
|
+
it('should handle task not found', async () => {
|
|
76
|
+
mockUpdateTask.mockResolvedValue(null);
|
|
77
|
+
await expect(updateAction('task-1', { title: 'New Title' })).rejects.toThrow('process.exit called');
|
|
78
|
+
expect(mockConsoleError).toHaveBeenCalledWith('Task not found: task-1');
|
|
79
|
+
expect(mockExit).toHaveBeenCalledWith(1);
|
|
80
|
+
});
|
|
81
|
+
it('should handle errors', async () => {
|
|
82
|
+
mockUpdateTask.mockRejectedValue(new Error('Database error'));
|
|
83
|
+
await expect(updateAction('task-1', { title: 'New Title' })).rejects.toThrow('process.exit called');
|
|
84
|
+
expect(mockConsoleError).toHaveBeenCalledWith('Failed to update task:', 'Database error');
|
|
85
|
+
expect(mockExit).toHaveBeenCalledWith(1);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=update.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.test.js","sourceRoot":"","sources":["../../../src/commands/__tests__/update.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assign.d.ts","sourceRoot":"","sources":["../../src/commands/assign.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAkBlE;AAED,eAAO,MAAM,aAAa,EAAE,GAKwE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Command } from "@cliffy/command";
|
|
2
|
+
import { TaskManager } from "dyson-swarm";
|
|
3
|
+
export async function assignAction(taskId, assignee) {
|
|
4
|
+
const taskManager = new TaskManager();
|
|
5
|
+
try {
|
|
6
|
+
const task = await taskManager.assignTask(taskId, assignee);
|
|
7
|
+
if (!task) {
|
|
8
|
+
console.error(`Task not found: ${taskId}`);
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
console.log(`Assigned task ${task.id} to: ${task.frontmatter.assignee}`);
|
|
12
|
+
console.log(`Title: ${task.frontmatter.title}`);
|
|
13
|
+
console.log(`Status: ${task.status}`);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.error("Failed to assign task:", error instanceof Error ? error.message : error);
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export const assignCommand = new Command()
|
|
21
|
+
.name("assign")
|
|
22
|
+
.description("Assign a task to someone.")
|
|
23
|
+
.argument("<taskId>", "The id of the task to add an assignee to.")
|
|
24
|
+
.argument("<assignee>", "The assignee to assign the task to.")
|
|
25
|
+
.action(async (_options, taskId, assignee) => assignAction(taskId, assignee));
|
|
26
|
+
//# sourceMappingURL=assign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assign.js","sourceRoot":"","sources":["../../src/commands/assign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,QAAgB;IACjE,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAQ,IAAI,OAAO,EAAE;KAC5C,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,2BAA2B,CAAC;KACxC,QAAQ,CAAC,UAAU,EAAE,2CAA2C,CAAC;KACjE,QAAQ,CAAC,YAAY,EAAE,qCAAqC,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,QAAa,EAAE,MAAc,EAAE,QAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,OAAO,EAAE,GAAG,iBA4B9C;AAED,eAAO,MAAM,aAAa,EAAE,GAML,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Command } from "@cliffy/command";
|
|
2
|
+
import { TaskManager } from "dyson-swarm";
|
|
3
|
+
export async function createAction(options) {
|
|
4
|
+
const taskManager = new TaskManager();
|
|
5
|
+
const subtasks = options.subtasks?.map((title) => ({
|
|
6
|
+
title,
|
|
7
|
+
description: "",
|
|
8
|
+
}));
|
|
9
|
+
try {
|
|
10
|
+
const task = await taskManager.createTask({
|
|
11
|
+
title: options.title,
|
|
12
|
+
description: options.description,
|
|
13
|
+
assignee: options.assignee,
|
|
14
|
+
subtasks,
|
|
15
|
+
});
|
|
16
|
+
console.log(`Created task: ${task.id}`);
|
|
17
|
+
console.log(`Title: ${task.frontmatter.title}`);
|
|
18
|
+
console.log(`Status: ${task.status}`);
|
|
19
|
+
if (task.frontmatter.assignee) {
|
|
20
|
+
console.log(`Assignee: ${task.frontmatter.assignee}`);
|
|
21
|
+
}
|
|
22
|
+
if (task.subtasks && task.subtasks.length > 0) {
|
|
23
|
+
console.log(`Subtasks: ${task.subtasks.length}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.error("Failed to create task:", error instanceof Error ? error.message : error);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export const createCommand = new Command()
|
|
32
|
+
.description("Create a new task.")
|
|
33
|
+
.option("-t, --title <title>", "Task title.", { required: true })
|
|
34
|
+
.option("-d, --description <description>", "Task description.", { required: true })
|
|
35
|
+
.option("-a, --assignee <assignee>", "Assignee username.")
|
|
36
|
+
.option("-s, --subtasks <subtasks...>", "Subtask titles, can be specified multiple times.")
|
|
37
|
+
.action(createAction);
|
|
38
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAY;IAC7C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;QACzD,KAAK;QACL,WAAW,EAAE,EAAE;KAChB,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;YACxC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAQ,IAAI,OAAO,EAAE;KAC5C,WAAW,CAAC,oBAAoB,CAAC;KACjC,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAChE,MAAM,CAAC,iCAAiC,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAClF,MAAM,CAAC,2BAA2B,EAAE,oBAAoB,CAAC;KACzD,MAAM,CAAC,8BAA8B,EAAE,kDAAkD,CAAC;KAC1F,MAAM,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAsB9D;AAED,eAAO,MAAM,aAAa,EAAE,GAKoD,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Command } from "@cliffy/command";
|
|
2
|
+
import { TaskManager } from "dyson-swarm";
|
|
3
|
+
export async function deleteAction(taskId, options) {
|
|
4
|
+
const taskManager = new TaskManager();
|
|
5
|
+
if (!options.force) {
|
|
6
|
+
console.log(`Are you sure you want to delete task ${taskId}?`);
|
|
7
|
+
console.log("Use --force to skip this confirmation.");
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
try {
|
|
11
|
+
const deleted = await taskManager.deleteTask(taskId);
|
|
12
|
+
if (!deleted) {
|
|
13
|
+
console.error(`Task not found: ${taskId}`);
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
console.log(`Deleted task: ${taskId}`);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error("Failed to delete task:", error instanceof Error ? error.message : error);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const deleteCommand = new Command()
|
|
24
|
+
.name("delete")
|
|
25
|
+
.description("Delete a task.")
|
|
26
|
+
.argument("<taskId>", "The id of the task to delete.")
|
|
27
|
+
.option("-f, --force", "Force deletion without confirmation.")
|
|
28
|
+
.action(async (options, taskId) => deleteAction(taskId, options));
|
|
29
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,OAAY;IAC7D,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,wCAAwC,MAAM,GAAG,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAQ,IAAI,OAAO,EAAE;KAC5C,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,gBAAgB,CAAC;KAC7B,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;KACrD,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,MAAc,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/commands/get.ts"],"names":[],"mappings":"AAGA,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,iBAiC7C;AAED,eAAO,MAAM,UAAU,EAAE,GAI4C,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Command } from "@cliffy/command";
|
|
2
|
+
import { TaskManager } from "dyson-swarm";
|
|
3
|
+
export async function getAction(taskId) {
|
|
4
|
+
const taskManager = new TaskManager();
|
|
5
|
+
try {
|
|
6
|
+
const task = await taskManager.getTask(taskId);
|
|
7
|
+
if (!task) {
|
|
8
|
+
console.error(`Task not found: ${taskId}`);
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
console.log(`ID: ${task.id}`);
|
|
12
|
+
console.log(`Title: ${task.frontmatter.title}`);
|
|
13
|
+
console.log(`Status: ${task.status}`);
|
|
14
|
+
if (task.frontmatter.assignee) {
|
|
15
|
+
console.log(`Assignee: ${task.frontmatter.assignee}`);
|
|
16
|
+
}
|
|
17
|
+
console.log(`\nDescription:`);
|
|
18
|
+
console.log(task.description);
|
|
19
|
+
if (task.subtasks && task.subtasks.length > 0) {
|
|
20
|
+
console.log(`\nSubtasks:`);
|
|
21
|
+
for (const subtask of task.subtasks) {
|
|
22
|
+
console.log(` - ${subtask.frontmatter.title} (${subtask.status})`);
|
|
23
|
+
if (subtask.description) {
|
|
24
|
+
console.log(` ${subtask.description}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.error("Failed to get task:", error instanceof Error ? error.message : error);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export const getCommand = new Command()
|
|
35
|
+
.name("get")
|
|
36
|
+
.description("Get a specific task by ID.")
|
|
37
|
+
.argument("<taskId>", "The id of the task to get.")
|
|
38
|
+
.action(async (_options, taskId) => getAction(taskId));
|
|
39
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/commands/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAQ,IAAI,OAAO,EAAE;KACzC,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,4BAA4B,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;KAClD,MAAM,CAAC,KAAK,EAAE,QAAa,EAAE,MAAc,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAGA,wBAAsB,UAAU,CAAC,OAAO,EAAE,GAAG,iBA+C5C;AAED,eAAO,MAAM,WAAW,EAAE,GAML,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Command } from "@cliffy/command";
|
|
2
|
+
import { TaskManager } from "dyson-swarm";
|
|
3
|
+
export async function listAction(options) {
|
|
4
|
+
const taskManager = new TaskManager();
|
|
5
|
+
try {
|
|
6
|
+
const filter = {};
|
|
7
|
+
if (options.status) {
|
|
8
|
+
if (!["open", "in-progress", "closed"].includes(options.status)) {
|
|
9
|
+
console.error("Invalid status. Must be one of: open, in-progress, closed");
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
filter.status = options.status;
|
|
13
|
+
}
|
|
14
|
+
if (options.assignee) {
|
|
15
|
+
filter.assignee = options.assignee;
|
|
16
|
+
}
|
|
17
|
+
if (options.hasSubtasks !== undefined) {
|
|
18
|
+
filter.hasSubtasks = options.hasSubtasks;
|
|
19
|
+
}
|
|
20
|
+
const tasks = await taskManager.listTasks(filter);
|
|
21
|
+
if (tasks.length === 0) {
|
|
22
|
+
console.log("No tasks found.");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
console.log(`Found ${tasks.length} task(s):\n`);
|
|
26
|
+
for (const task of tasks) {
|
|
27
|
+
console.log(`ID: ${task.id}`);
|
|
28
|
+
console.log(`Title: ${task.frontmatter.title}`);
|
|
29
|
+
console.log(`Status: ${task.status}`);
|
|
30
|
+
if (task.frontmatter.assignee) {
|
|
31
|
+
console.log(`Assignee: ${task.frontmatter.assignee}`);
|
|
32
|
+
}
|
|
33
|
+
if (task.subtasks && task.subtasks.length > 0) {
|
|
34
|
+
console.log(`Subtasks: ${task.subtasks.length}`);
|
|
35
|
+
}
|
|
36
|
+
console.log("---");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.error("Failed to list tasks:", error instanceof Error ? error.message : error);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export const listCommand = new Command()
|
|
45
|
+
.description("List tasks with optional filters.")
|
|
46
|
+
.option("-s, --status <status>", "Filter by status (open, in-progress, closed).")
|
|
47
|
+
.option("-a, --assignee <assignee>", "Filter by assignee.")
|
|
48
|
+
.option("--has-subtasks", "Filter tasks that have subtasks.")
|
|
49
|
+
.option("--no-subtasks", "Filter tasks that have no subtasks.")
|
|
50
|
+
.action(listAction);
|
|
51
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAY;IAC3C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAQ,EAAE,CAAC;QAEvB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;gBAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrC,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC3C,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAElD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,MAAM,aAAa,CAAC,CAAC;QAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAQ,IAAI,OAAO,EAAE;KAC1C,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,uBAAuB,EAAE,+CAA+C,CAAC;KAChF,MAAM,CAAC,2BAA2B,EAAE,qBAAqB,CAAC;KAC1D,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC;KAC9D,MAAM,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAsBhE;AAED,eAAO,MAAM,aAAa,EAAE,GAKoE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Command } from "@cliffy/command";
|
|
2
|
+
import { TaskManager } from "dyson-swarm";
|
|
3
|
+
export async function statusAction(taskId, status) {
|
|
4
|
+
const taskManager = new TaskManager();
|
|
5
|
+
if (!["open", "in-progress", "closed"].includes(status)) {
|
|
6
|
+
console.error("Invalid status. Must be one of: open, in-progress, closed");
|
|
7
|
+
process.exit(1);
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
const task = await taskManager.changeTaskStatus(taskId, status);
|
|
11
|
+
if (!task) {
|
|
12
|
+
console.error(`Task not found: ${taskId}`);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
console.log(`Changed status of task ${task.id} to: ${task.status}`);
|
|
16
|
+
console.log(`Title: ${task.frontmatter.title}`);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error("Failed to change task status:", error instanceof Error ? error.message : error);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const statusCommand = new Command()
|
|
24
|
+
.name("status")
|
|
25
|
+
.description("Change the status of a task.")
|
|
26
|
+
.argument("<taskId>", "The id of the task to update.")
|
|
27
|
+
.argument("<status>", "The new status (open, in-progress, or closed).")
|
|
28
|
+
.action(async (_options, taskId, status) => statusAction(taskId, status));
|
|
29
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,MAAc;IAC/D,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAA2C,CAAC,CAAC;QAErG,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAQ,IAAI,OAAO,EAAE;KAC5C,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,8BAA8B,CAAC;KAC3C,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;KACrD,QAAQ,CAAC,UAAU,EAAE,gDAAgD,CAAC;KACtE,MAAM,CAAC,KAAK,EAAE,QAAa,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unassign.d.ts","sourceRoot":"","sources":["../../src/commands/unassign.ts"],"names":[],"mappings":"AAGA,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,iBAkBlD;AAED,eAAO,MAAM,eAAe,EAAE,GAI4C,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Command } from "@cliffy/command";
|
|
2
|
+
import { TaskManager } from "dyson-swarm";
|
|
3
|
+
export async function unassignAction(taskId) {
|
|
4
|
+
const taskManager = new TaskManager();
|
|
5
|
+
try {
|
|
6
|
+
const task = await taskManager.unassignTask(taskId);
|
|
7
|
+
if (!task) {
|
|
8
|
+
console.error(`Task not found: ${taskId}`);
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
console.log(`Unassigned task: ${task.id}`);
|
|
12
|
+
console.log(`Title: ${task.frontmatter.title}`);
|
|
13
|
+
console.log(`Status: ${task.status}`);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.error("Failed to unassign task:", error instanceof Error ? error.message : error);
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export const unassignCommand = new Command()
|
|
21
|
+
.name("unassign")
|
|
22
|
+
.description("Unassign a task.")
|
|
23
|
+
.argument("<taskId>", "The id of the task to unassign.")
|
|
24
|
+
.action(async (_options, taskId) => unassignAction(taskId));
|
|
25
|
+
//# sourceMappingURL=unassign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unassign.js","sourceRoot":"","sources":["../../src/commands/unassign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAQ,IAAI,OAAO,EAAE;KAC9C,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,QAAQ,CAAC,UAAU,EAAE,iCAAiC,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,QAAa,EAAE,MAAc,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAgC9D;AAED,eAAO,MAAM,aAAa,EAAE,GAOoD,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Command } from "@cliffy/command";
|
|
2
|
+
import { TaskManager } from "dyson-swarm";
|
|
3
|
+
export async function updateAction(taskId, options) {
|
|
4
|
+
const taskManager = new TaskManager();
|
|
5
|
+
try {
|
|
6
|
+
const updateOptions = {};
|
|
7
|
+
if (options.title)
|
|
8
|
+
updateOptions.title = options.title;
|
|
9
|
+
if (options.description)
|
|
10
|
+
updateOptions.description = options.description;
|
|
11
|
+
if (options.assignee)
|
|
12
|
+
updateOptions.assignee = options.assignee;
|
|
13
|
+
if (Object.keys(updateOptions).length === 0) {
|
|
14
|
+
console.error("No updates specified. Use --title, --description, or --assignee.");
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const task = await taskManager.updateTask(taskId, updateOptions);
|
|
18
|
+
if (!task) {
|
|
19
|
+
console.error(`Task not found: ${taskId}`);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
console.log(`Updated task: ${task.id}`);
|
|
23
|
+
console.log(`Title: ${task.frontmatter.title}`);
|
|
24
|
+
console.log(`Status: ${task.status}`);
|
|
25
|
+
if (task.frontmatter.assignee) {
|
|
26
|
+
console.log(`Assignee: ${task.frontmatter.assignee}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.error("Failed to update task:", error instanceof Error ? error.message : error);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export const updateCommand = new Command()
|
|
35
|
+
.name("update")
|
|
36
|
+
.description("Update a task.")
|
|
37
|
+
.argument("<taskId>", "The id of the task to update.")
|
|
38
|
+
.option("-t, --title <title>", "New title.")
|
|
39
|
+
.option("-d, --description <description>", "New description.")
|
|
40
|
+
.option("-a, --assignee <assignee>", "New assignee.")
|
|
41
|
+
.action(async (options, taskId) => updateAction(taskId, options));
|
|
42
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,OAAY;IAC7D,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,aAAa,GAAQ,EAAE,CAAC;QAE9B,IAAI,OAAO,CAAC,KAAK;YAAE,aAAa,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACvD,IAAI,OAAO,CAAC,WAAW;YAAE,aAAa,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACzE,IAAI,OAAO,CAAC,QAAQ;YAAE,aAAa,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEhE,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAEjE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAQ,IAAI,OAAO,EAAE;KAC5C,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,gBAAgB,CAAC;KAC7B,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;KACrD,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC;KAC3C,MAAM,CAAC,iCAAiC,EAAE,kBAAkB,CAAC;KAC7D,MAAM,CAAC,2BAA2B,EAAE,eAAe,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,MAAc,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC"}
|
package/dist/help.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CA2CjD"}
|
package/dist/help.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Table } from "@cliffy/table";
|
|
2
|
+
export function generateHelp(command) {
|
|
3
|
+
const lines = [];
|
|
4
|
+
lines.push(`Usage: ${command.getName()} [options] [command]`);
|
|
5
|
+
lines.push("");
|
|
6
|
+
lines.push(command.getDescription() || "");
|
|
7
|
+
const allCommands = command.getCommands();
|
|
8
|
+
if (allCommands.length > 0) {
|
|
9
|
+
lines.push("");
|
|
10
|
+
lines.push("Commands:");
|
|
11
|
+
const cmdRows = [];
|
|
12
|
+
for (const cmd of allCommands) {
|
|
13
|
+
const name = cmd.getName();
|
|
14
|
+
const args = cmd.getArguments()
|
|
15
|
+
.map((arg) => arg.optional ? `[${arg.name}]` : `<${arg.name}>`)
|
|
16
|
+
.join(" ");
|
|
17
|
+
cmdRows.push([` ${name} ${args}`, cmd.getDescription()]);
|
|
18
|
+
const arguments_ = cmd.getArguments();
|
|
19
|
+
for (const arg of arguments_) {
|
|
20
|
+
const argStr = arg.optional ? `[${arg.name}]` : `<${arg.name}>`;
|
|
21
|
+
const description = arg.description ? ` ${arg.description}` : "";
|
|
22
|
+
const requiredText = arg.optional ? "(Optional)" : "(Required)";
|
|
23
|
+
cmdRows.push([` ${argStr}`, requiredText + (description || "")]);
|
|
24
|
+
}
|
|
25
|
+
const opts = cmd.getOptions();
|
|
26
|
+
for (const opt of opts) {
|
|
27
|
+
const flags = Array.isArray(opt.flags) ? opt.flags.join(", ") : (opt.flags || "");
|
|
28
|
+
const desc = opt.description || "";
|
|
29
|
+
cmdRows.push([` ${flags}`, desc]);
|
|
30
|
+
}
|
|
31
|
+
cmdRows.push(["", ""]);
|
|
32
|
+
}
|
|
33
|
+
cmdRows.pop();
|
|
34
|
+
lines.push(Table.from(cmdRows).padding(1).toString());
|
|
35
|
+
}
|
|
36
|
+
return lines.join("\n");
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=help.js.map
|
package/dist/help.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "@cliffy/command";
|
|
3
|
+
import { createCommand } from "./commands/create.js";
|
|
4
|
+
import { listCommand } from "./commands/list.js";
|
|
5
|
+
import { getCommand } from "./commands/get.js";
|
|
6
|
+
import { updateCommand } from "./commands/update.js";
|
|
7
|
+
import { statusCommand } from "./commands/status.js";
|
|
8
|
+
import { assignCommand } from "./commands/assign.js";
|
|
9
|
+
import { unassignCommand } from "./commands/unassign.js";
|
|
10
|
+
import { deleteCommand } from "./commands/delete.js";
|
|
11
|
+
import { generateHelp } from "./help.js";
|
|
12
|
+
await new Command()
|
|
13
|
+
.help(function () {
|
|
14
|
+
return generateHelp(this);
|
|
15
|
+
})
|
|
16
|
+
.name("swarm")
|
|
17
|
+
.action(function () {
|
|
18
|
+
this.showHelp();
|
|
19
|
+
})
|
|
20
|
+
.description("A markdown-based issue tracking system CLI")
|
|
21
|
+
.version("1.0.0")
|
|
22
|
+
.command("create", createCommand)
|
|
23
|
+
.command("list", listCommand)
|
|
24
|
+
.command("get", getCommand)
|
|
25
|
+
.command("update", updateCommand)
|
|
26
|
+
.command("status", statusCommand)
|
|
27
|
+
.command("assign", assignCommand)
|
|
28
|
+
.command("unassign", unassignCommand)
|
|
29
|
+
.command("delete", deleteCommand)
|
|
30
|
+
.parse();
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,IAAI,OAAO,EAAE;KAChB,IAAI,CAAC;IACJ,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC;KACD,IAAI,CAAC,OAAO,CAAC;KACb,MAAM,CAAC;IACN,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,CAAC,CAAC;KACD,WAAW,CAAC,4CAA4C,CAAC;KACzD,OAAO,CAAC,OAAO,CAAC;KAChB,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC;KAChC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC;KAC5B,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC;KAC1B,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC;KAChC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC;KAChC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC;KAChC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC;KACpC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC;KAChC,KAAK,EAAE,CAAC"}
|