@sascha384/tic 1.7.0 → 1.8.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/.claude-plugin/marketplace.json +14 -0
- package/.claude-plugin/plugin.json +15 -0
- package/.mcp.json +6 -0
- package/README.md +15 -50
- package/dist/components/BulkMenu.d.ts +10 -0
- package/dist/components/BulkMenu.js +49 -0
- package/dist/components/BulkMenu.js.map +1 -0
- package/dist/components/CardLayout.d.ts +2 -1
- package/dist/components/CardLayout.js +3 -2
- package/dist/components/CardLayout.js.map +1 -1
- package/dist/components/HelpScreen.js +16 -1
- package/dist/components/HelpScreen.js.map +1 -1
- package/dist/components/PriorityPicker.d.ts +6 -0
- package/dist/components/PriorityPicker.js +18 -0
- package/dist/components/PriorityPicker.js.map +1 -0
- package/dist/components/StatusPicker.d.ts +7 -0
- package/dist/components/StatusPicker.js +16 -0
- package/dist/components/StatusPicker.js.map +1 -0
- package/dist/components/TableLayout.d.ts +2 -1
- package/dist/components/TableLayout.js +3 -2
- package/dist/components/TableLayout.js.map +1 -1
- package/dist/components/TypePicker.d.ts +7 -0
- package/dist/components/TypePicker.js +16 -0
- package/dist/components/TypePicker.js.map +1 -0
- package/dist/components/WorkItemList.d.ts +3 -0
- package/dist/components/WorkItemList.js +238 -15
- package/dist/components/WorkItemList.js.map +1 -1
- package/package.json +22 -2
- package/skills/tic-config/SKILL.md +59 -0
- package/skills/tic-items/SKILL.md +92 -0
- package/skills/tic-relationships/SKILL.md +76 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tic",
|
|
3
|
+
"description": "Issue tracking skills for Claude Code",
|
|
4
|
+
"version": "1.8.0",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Sascha Krug"
|
|
7
|
+
},
|
|
8
|
+
"repository": "https://github.com/fa-krug/tic",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"keywords": [
|
|
11
|
+
"issue-tracking",
|
|
12
|
+
"work-items",
|
|
13
|
+
"mcp"
|
|
14
|
+
]
|
|
15
|
+
}
|
package/.mcp.json
ADDED
package/README.md
CHANGED
|
@@ -156,66 +156,31 @@ next_id: 1
|
|
|
156
156
|
|
|
157
157
|
You can edit these files directly — they're plain text. Customize types, statuses, and iterations by editing `config.yml`.
|
|
158
158
|
|
|
159
|
-
##
|
|
160
|
-
|
|
161
|
-
tic includes a built-in [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server that exposes your work items to AI assistants like Claude. This lets AI tools read, create, update, and manage your issues without leaving the conversation.
|
|
162
|
-
|
|
163
|
-
### Starting the Server
|
|
159
|
+
## Claude Code Integration
|
|
164
160
|
|
|
165
161
|
```bash
|
|
166
|
-
|
|
162
|
+
claude plugin marketplace add fa-krug/tic
|
|
163
|
+
claude plugin install tic
|
|
167
164
|
```
|
|
168
165
|
|
|
169
|
-
The
|
|
170
|
-
|
|
171
|
-
### Connecting to Claude Code
|
|
166
|
+
That's it. The plugin installs tic automatically on first use.
|
|
172
167
|
|
|
173
|
-
|
|
168
|
+
### What Claude Can Do
|
|
174
169
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
170
|
+
- List, search, create, update, and delete work items
|
|
171
|
+
- Navigate parent-child hierarchies and dependencies
|
|
172
|
+
- Add comments and manage iterations
|
|
173
|
+
- Initialize tic in new projects
|
|
178
174
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
```json
|
|
182
|
-
{
|
|
183
|
-
"mcpServers": {
|
|
184
|
-
"tic": {
|
|
185
|
-
"type": "stdio",
|
|
186
|
-
"command": "npx",
|
|
187
|
-
"args": ["tic", "mcp", "serve"]
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
```
|
|
175
|
+
The plugin auto-detects your backend (GitHub, GitLab, Azure DevOps, or local) and adapts to its capabilities.
|
|
192
176
|
|
|
193
|
-
###
|
|
177
|
+
### Updating
|
|
194
178
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|------|-------------|
|
|
199
|
-
| `init_project` | Initialize a new tic project (creates `.tic/` directory) |
|
|
200
|
-
| `get_config` | Get project configuration (statuses, types, iterations) |
|
|
201
|
-
| `list_items` | List work items with optional filters by type, status, or iteration |
|
|
202
|
-
| `show_item` | Show full details of a single work item |
|
|
203
|
-
| `create_item` | Create a new work item with title, type, status, priority, and more |
|
|
204
|
-
| `update_item` | Update any field on an existing work item |
|
|
205
|
-
| `delete_item` | Preview deleting a work item (shows affected children and dependents) |
|
|
206
|
-
| `confirm_delete` | Confirm and execute a previously previewed deletion |
|
|
207
|
-
| `add_comment` | Add a timestamped comment to a work item |
|
|
208
|
-
| `set_iteration` | Set the current active iteration |
|
|
209
|
-
| `search_items` | Search work items by text query across titles and descriptions |
|
|
210
|
-
| `get_children` | Get child items of a specific work item |
|
|
211
|
-
| `get_dependents` | Get items that depend on a specific work item |
|
|
212
|
-
| `get_item_tree` | Get work items as a hierarchical tree structure |
|
|
213
|
-
|
|
214
|
-
### Safety
|
|
215
|
-
|
|
216
|
-
Deletion is a two-step process: `delete_item` returns a preview of what will be affected (children that will be unparented, dependents that will lose a dependency), and `confirm_delete` must be called separately to actually remove the item. This prevents accidental data loss when AI tools are managing your issues.
|
|
179
|
+
```bash
|
|
180
|
+
claude plugin update tic
|
|
181
|
+
```
|
|
217
182
|
|
|
218
|
-
|
|
183
|
+
Or enable auto-updates for the tic marketplace in Claude Code settings.
|
|
219
184
|
|
|
220
185
|
## CLI Commands
|
|
221
186
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BackendCapabilities } from '../backends/types.js';
|
|
2
|
+
export type BulkAction = 'status' | 'iteration' | 'parent' | 'type' | 'priority' | 'assignee' | 'labels' | 'delete';
|
|
3
|
+
interface BulkMenuProps {
|
|
4
|
+
itemCount: number;
|
|
5
|
+
capabilities: BackendCapabilities;
|
|
6
|
+
onSelect: (action: BulkAction) => void;
|
|
7
|
+
onCancel: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function BulkMenu({ itemCount, capabilities, onSelect, onCancel, }: BulkMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text, useInput } from 'ink';
|
|
3
|
+
import SelectInput from 'ink-select-input';
|
|
4
|
+
export function BulkMenu({ itemCount, capabilities, onSelect, onCancel, }) {
|
|
5
|
+
useInput((input, key) => {
|
|
6
|
+
if (key.escape) {
|
|
7
|
+
onCancel();
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
// Shortcut keys
|
|
11
|
+
const shortcuts = {
|
|
12
|
+
s: 'status',
|
|
13
|
+
i: 'iteration',
|
|
14
|
+
p: 'parent',
|
|
15
|
+
t: 'type',
|
|
16
|
+
P: 'priority',
|
|
17
|
+
a: 'assignee',
|
|
18
|
+
l: 'labels',
|
|
19
|
+
d: 'delete',
|
|
20
|
+
};
|
|
21
|
+
const action = shortcuts[input];
|
|
22
|
+
if (action) {
|
|
23
|
+
onSelect(action);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
const items = [];
|
|
27
|
+
items.push({ label: 'Set status... (s)', value: 'status' });
|
|
28
|
+
if (capabilities.iterations) {
|
|
29
|
+
items.push({ label: 'Set iteration... (i)', value: 'iteration' });
|
|
30
|
+
}
|
|
31
|
+
if (capabilities.fields.parent) {
|
|
32
|
+
items.push({ label: 'Set parent... (p)', value: 'parent' });
|
|
33
|
+
}
|
|
34
|
+
if (capabilities.customTypes) {
|
|
35
|
+
items.push({ label: 'Set type... (t)', value: 'type' });
|
|
36
|
+
}
|
|
37
|
+
if (capabilities.fields.priority) {
|
|
38
|
+
items.push({ label: 'Set priority... (P)', value: 'priority' });
|
|
39
|
+
}
|
|
40
|
+
if (capabilities.fields.assignee) {
|
|
41
|
+
items.push({ label: 'Set assignee... (a)', value: 'assignee' });
|
|
42
|
+
}
|
|
43
|
+
if (capabilities.fields.labels) {
|
|
44
|
+
items.push({ label: 'Set labels... (l)', value: 'labels' });
|
|
45
|
+
}
|
|
46
|
+
items.push({ label: 'Delete (d)', value: 'delete' });
|
|
47
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", paddingX: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { bold: true, color: "cyan", children: ["Bulk Actions (", itemCount, " ", itemCount === 1 ? 'item' : 'items', ")"] }) }), _jsx(SelectInput, { items: items, onSelect: (item) => onSelect(item.value) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: '↑↓ navigate enter select esc cancel' }) })] }));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=BulkMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BulkMenu.js","sourceRoot":"","sources":["../../src/components/BulkMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,9 @@ interface CardLayoutProps {
|
|
|
5
5
|
cursor: number;
|
|
6
6
|
capabilities: BackendCapabilities;
|
|
7
7
|
collapsedIds: Set<string>;
|
|
8
|
+
markedIds: Set<string>;
|
|
8
9
|
}
|
|
9
10
|
export declare function formatPriority(priority: string | undefined): string;
|
|
10
11
|
export declare function formatAssignee(assignee: string | undefined): string;
|
|
11
|
-
export declare function CardLayout({ treeItems, cursor, capabilities, collapsedIds, }: CardLayoutProps): import("react/jsx-runtime").JSX.Element | null;
|
|
12
|
+
export declare function CardLayout({ treeItems, cursor, capabilities, collapsedIds, markedIds, }: CardLayoutProps): import("react/jsx-runtime").JSX.Element | null;
|
|
12
13
|
export {};
|
|
@@ -27,12 +27,13 @@ function statusColor(status) {
|
|
|
27
27
|
return 'red';
|
|
28
28
|
return 'blue';
|
|
29
29
|
}
|
|
30
|
-
export function CardLayout({ treeItems, cursor, capabilities, collapsedIds, }) {
|
|
30
|
+
export function CardLayout({ treeItems, cursor, capabilities, collapsedIds, markedIds, }) {
|
|
31
31
|
if (treeItems.length === 0)
|
|
32
32
|
return null;
|
|
33
33
|
return (_jsx(Box, { flexDirection: "column", children: treeItems.map((treeItem, idx) => {
|
|
34
34
|
const { item, depth, isCrossType, hasChildren } = treeItem;
|
|
35
35
|
const selected = idx === cursor;
|
|
36
|
+
const marked = markedIds.has(item.id);
|
|
36
37
|
const indent = ' '.repeat(depth);
|
|
37
38
|
const marker = selected ? '>' : ' ';
|
|
38
39
|
const hasDeps = capabilities.fields.dependsOn && item.dependsOn.length > 0;
|
|
@@ -47,7 +48,7 @@ export function CardLayout({ treeItems, cursor, capabilities, collapsedIds, }) {
|
|
|
47
48
|
// Indent for meta line: align with title start
|
|
48
49
|
// marker(1) + indent + collapseIndicator(2) + '#'(1) + id + ' '(1) = offset
|
|
49
50
|
const metaIndent = ' ' + indent + ' ' + ' '.repeat(item.id.length + 2);
|
|
50
|
-
return (_jsxs(Box, { flexDirection: "column", marginBottom: idx < treeItems.length - 1 ? 1 : 0, children: [_jsx(Box, { children: _jsxs(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, children: [marker, indent, collapseIndicator, "#", item.id, " ", item.title, typeLabel, depIndicator] }) }), _jsxs(Box, { children: [_jsx(Text, { color: selected ? 'cyan' : undefined, dimColor: dimmed, children: metaIndent }), _jsx(Text, { color: statusColor(item.status), children: "\u25CF" }), _jsxs(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, children: [' ', item.status, capabilities.fields.priority && formatPriority(item.priority)
|
|
51
|
+
return (_jsxs(Box, { flexDirection: "column", marginBottom: idx < treeItems.length - 1 ? 1 : 0, ...(marked && !selected ? { backgroundColor: 'cyan' } : {}), children: [_jsx(Box, { children: _jsxs(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, children: [marker, indent, collapseIndicator, "#", item.id, " ", item.title, typeLabel, depIndicator] }) }), _jsxs(Box, { children: [_jsx(Text, { color: selected ? 'cyan' : undefined, dimColor: dimmed, children: metaIndent }), _jsx(Text, { color: statusColor(item.status), children: "\u25CF" }), _jsxs(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, children: [' ', item.status, capabilities.fields.priority && formatPriority(item.priority)
|
|
51
52
|
? ' ' + formatPriority(item.priority)
|
|
52
53
|
: '', capabilities.fields.assignee && formatAssignee(item.assignee)
|
|
53
54
|
? ' ' + formatAssignee(item.assignee)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardLayout.js","sourceRoot":"","sources":["../../src/components/CardLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"CardLayout.js","sourceRoot":"","sources":["../../src/components/CardLayout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,21 @@ export function getShortcuts(screen, capabilities, gitAvailable, hasSyncManager)
|
|
|
31
31
|
if (capabilities.fields.parent) {
|
|
32
32
|
actions.push({ key: 'p', description: 'Set parent' });
|
|
33
33
|
}
|
|
34
|
+
actions.push({ key: 'm', description: 'Toggle mark' });
|
|
35
|
+
actions.push({ key: 'M', description: 'Clear all marks' });
|
|
36
|
+
actions.push({ key: 'b', description: 'Bulk actions menu' });
|
|
37
|
+
if (capabilities.customTypes) {
|
|
38
|
+
actions.push({ key: 't', description: 'Set type' });
|
|
39
|
+
}
|
|
40
|
+
if (capabilities.fields.priority) {
|
|
41
|
+
actions.push({ key: 'P', description: 'Set priority' });
|
|
42
|
+
}
|
|
43
|
+
if (capabilities.fields.assignee) {
|
|
44
|
+
actions.push({ key: 'a', description: 'Set assignee' });
|
|
45
|
+
}
|
|
46
|
+
if (capabilities.fields.labels) {
|
|
47
|
+
actions.push({ key: 'l', description: 'Set labels' });
|
|
48
|
+
}
|
|
34
49
|
const switching = [];
|
|
35
50
|
if (capabilities.customTypes) {
|
|
36
51
|
switching.push({ key: 'tab', description: 'Cycle work item type' });
|
|
@@ -44,7 +59,7 @@ export function getShortcuts(screen, capabilities, gitAvailable, hasSyncManager)
|
|
|
44
59
|
other.push({ key: 'r', description: 'Sync' });
|
|
45
60
|
}
|
|
46
61
|
if (gitAvailable) {
|
|
47
|
-
other.push({ key: '
|
|
62
|
+
other.push({ key: 'B', description: 'Branch / worktree' });
|
|
48
63
|
}
|
|
49
64
|
other.push({ key: 'q', description: 'Quit' });
|
|
50
65
|
const groups = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpScreen.js","sourceRoot":"","sources":["../../src/components/HelpScreen.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HelpScreen.js","sourceRoot":"","sources":["../../src/components/HelpScreen.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAatC,MAAM,aAAa,GAA2B;IAC5C,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,kBAAkB,EAAE,kBAAkB;IACtC,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,UAAU,YAAY,CAC1B,MAAc,EACd,YAAiC,EACjC,YAAqB,EACrB,cAAuB;IAEvB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAoB;gBAC3B,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE;aACxD,CAAC;YACF,IAAI,YAAY,CAAC,aAAa,EAAE,CAAC;gBAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,CAAC;gBACvE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,OAAO,GAAoB;gBAC/B,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE;gBAC1C,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBAC5C,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE;gBACxC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBAC5C,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,eAAe,EAAE;aAC3C,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;YACxD,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC7D,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,SAAS,GAAoB,EAAE,CAAC;YACtC,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC5B,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAoB,EAAE,CAAC;YAClC,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YAE9C,MAAM,MAAM,GAAoB;gBAC9B,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE;gBACvC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;aACzC,CAAC;YACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO;gBACL;oBACE,KAAK,EAAE,YAAY;oBACnB,SAAS,EAAE;wBACT,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE;qBAC7D;iBACF;gBACD;oBACE,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE;wBACT;4BACE,GAAG,EAAE,OAAO;4BACZ,WAAW,EAAE,gCAAgC;yBAC9C;wBACD;4BACE,GAAG,EAAE,KAAK;4BACV,WAAW,EAAE,wCAAwC;yBACtD;qBACF;iBACF;gBACD;oBACE,KAAK,EAAE,MAAM;oBACb,SAAS,EAAE;wBACT;4BACE,GAAG,EAAE,KAAK;4BACV,WAAW,EAAE,uCAAuC;yBACrD;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,OAAO;gBACL;oBACE,KAAK,EAAE,YAAY;oBACnB,SAAS,EAAE;wBACT,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE;wBAC5D,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE;qBAClD;iBACF;aACF,CAAC;QACJ,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,OAAO;gBACL;oBACE,KAAK,EAAE,YAAY;oBACnB,SAAS,EAAE;wBACT,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE;wBACzD,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE;wBAC/C,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE;qBACzC;iBACF;gBACD;oBACE,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE;wBACT,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE;wBAChD,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE;qBAC7C;iBACF;aACF,CAAC;QACJ,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO;gBACL;oBACE,KAAK,EAAE,YAAY;oBACnB,SAAS,EAAE;wBACT,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE;wBACtD,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE;qBACzC;iBACF;aACF,CAAC;QACJ,CAAC;QAED;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAE,YAAY,EAA4B;IACnE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAAG,WAAW,EAAE,CAAC;IACrE,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAG,YAAY,CACzB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,KAAK,IAAI,CACrB,CAAC;IAEF,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,oBAAoB,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC;IAEpD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,2CACC,KAAK,IACtB,GACH,EAEL,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,MAAC,GAAG,IAAmB,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aAC3D,MAAC,IAAI,IAAC,IAAI,mBAAE,KAAK,CAAC,KAAK,SAAS,EAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,MAAC,GAAG,IAAoB,UAAU,EAAE,CAAC,aACnC,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACZ,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,QAAQ,CAAC,GAAG,GAAQ,GACpC,EACN,KAAC,IAAI,cAAE,QAAQ,CAAC,WAAW,GAAQ,KAJ3B,QAAQ,CAAC,GAAG,CAKhB,CACP,CAAC,KATM,KAAK,CAAC,KAAK,CAUf,CACP,CAAC,EAEF,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,QAAQ,gCAAiB,GAC3B,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface PriorityPickerProps {
|
|
2
|
+
onSelect: (priority: 'low' | 'medium' | 'high' | 'critical') => void;
|
|
3
|
+
onCancel: () => void;
|
|
4
|
+
}
|
|
5
|
+
export declare function PriorityPicker({ onSelect, onCancel }: PriorityPickerProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text, useInput } from 'ink';
|
|
3
|
+
import SelectInput from 'ink-select-input';
|
|
4
|
+
const PRIORITIES = [
|
|
5
|
+
{ label: 'Critical', value: 'critical' },
|
|
6
|
+
{ label: 'High', value: 'high' },
|
|
7
|
+
{ label: 'Medium', value: 'medium' },
|
|
8
|
+
{ label: 'Low', value: 'low' },
|
|
9
|
+
];
|
|
10
|
+
export function PriorityPicker({ onSelect, onCancel }) {
|
|
11
|
+
useInput((_input, key) => {
|
|
12
|
+
if (key.escape) {
|
|
13
|
+
onCancel();
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: "Set Priority" }) }), _jsx(SelectInput, { items: PRIORITIES, onSelect: (item) => onSelect(item.value) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: '↑↓ navigate enter select esc cancel' }) })] }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=PriorityPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PriorityPicker.js","sourceRoot":"","sources":["../../src/components/PriorityPicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAO3C,MAAM,UAAU,GAGX;IACH,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;CAC/B,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAuB;IACxE,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,IAAI,mCAAoB,GAC1B,EACN,KAAC,WAAW,IACV,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GACxC,EACF,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,QAAQ,kBAAE,uCAAuC,GAAQ,GAC3D,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text, useInput } from 'ink';
|
|
3
|
+
import SelectInput from 'ink-select-input';
|
|
4
|
+
export function StatusPicker({ statuses, onSelect, onCancel, }) {
|
|
5
|
+
useInput((_input, key) => {
|
|
6
|
+
if (key.escape) {
|
|
7
|
+
onCancel();
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
const items = statuses.map((s) => ({
|
|
11
|
+
label: s,
|
|
12
|
+
value: s,
|
|
13
|
+
}));
|
|
14
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: "Set Status" }) }), _jsx(SelectInput, { items: items, onSelect: (item) => onSelect(item.value) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: '↑↓ navigate enter select esc cancel' }) })] }));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=StatusPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusPicker.js","sourceRoot":"","sources":["../../src/components/StatusPicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAQ3C,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAQ,EACR,QAAQ,GACU;IAClB,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;KACT,CAAC,CAAC,CAAC;IAEJ,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,IAAI,iCAAkB,GACxB,EACN,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAI,EACvE,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,QAAQ,kBAAE,uCAAuC,GAAQ,GAC3D,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -5,6 +5,7 @@ interface TableLayoutProps {
|
|
|
5
5
|
cursor: number;
|
|
6
6
|
capabilities: BackendCapabilities;
|
|
7
7
|
collapsedIds: Set<string>;
|
|
8
|
+
markedIds: Set<string>;
|
|
8
9
|
}
|
|
9
|
-
export declare function TableLayout({ treeItems, cursor, capabilities, collapsedIds, }: TableLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function TableLayout({ treeItems, cursor, capabilities, collapsedIds, markedIds, }: TableLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
10
11
|
export {};
|
|
@@ -5,7 +5,7 @@ const colStatus = 14;
|
|
|
5
5
|
const colPriority = 10;
|
|
6
6
|
const colAssignee = 12;
|
|
7
7
|
const gap = 2;
|
|
8
|
-
export function TableLayout({ treeItems, cursor, capabilities, collapsedIds, }) {
|
|
8
|
+
export function TableLayout({ treeItems, cursor, capabilities, collapsedIds, markedIds, }) {
|
|
9
9
|
const colId = useMemo(() => {
|
|
10
10
|
const maxLen = treeItems.reduce((max, { item }) => Math.max(max, item.id.length), 2);
|
|
11
11
|
return maxLen + gap;
|
|
@@ -13,6 +13,7 @@ export function TableLayout({ treeItems, cursor, capabilities, collapsedIds, })
|
|
|
13
13
|
return (_jsxs(_Fragment, { children: [_jsxs(Box, { children: [_jsx(Box, { width: 2, children: _jsx(Text, { children: " " }) }), _jsx(Box, { width: colId, children: _jsx(Text, { bold: true, underline: true, children: "ID" }) }), _jsx(Box, { flexGrow: 1, marginRight: gap, children: _jsx(Text, { bold: true, underline: true, children: "Title" }) }), _jsx(Box, { width: colStatus, marginRight: gap, children: _jsx(Text, { bold: true, underline: true, children: "Status" }) }), capabilities.fields.priority && (_jsx(Box, { width: colPriority, marginRight: gap, children: _jsx(Text, { bold: true, underline: true, children: "Priority" }) })), capabilities.fields.assignee && (_jsx(Box, { width: colAssignee, children: _jsx(Text, { bold: true, underline: true, children: "Assignee" }) }))] }), treeItems.map((treeItem, idx) => {
|
|
14
14
|
const { item, prefix, isCrossType, hasChildren } = treeItem;
|
|
15
15
|
const selected = idx === cursor;
|
|
16
|
+
const marked = markedIds.has(item.id);
|
|
16
17
|
const hasUnresolvedDeps = item.dependsOn.length > 0;
|
|
17
18
|
const collapseIndicator = hasChildren
|
|
18
19
|
? collapsedIds.has(item.id)
|
|
@@ -21,7 +22,7 @@ export function TableLayout({ treeItems, cursor, capabilities, collapsedIds, })
|
|
|
21
22
|
: ' ';
|
|
22
23
|
const typeLabel = isCrossType ? ` (${item.type})` : '';
|
|
23
24
|
const dimmed = isCrossType && !selected;
|
|
24
|
-
return (_jsxs(Box, { children: [_jsx(Box, { width: 2, children: _jsx(Text, { color: "cyan", children: selected ? '>' : ' ' }) }), _jsx(Box, { width: colId, overflowX: "hidden", children: _jsx(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, children: item.id }) }), _jsx(Box, { flexGrow: 1, marginRight: gap, overflowX: "hidden", children: _jsxs(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, wrap: "truncate", children: [capabilities.relationships ? prefix : '', collapseIndicator, item.title, typeLabel] }) }), _jsx(Box, { width: colStatus, marginRight: gap, overflowX: "hidden", children: _jsxs(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, children: [capabilities.fields.dependsOn && hasUnresolvedDeps ? '⧗ ' : '', item.status] }) }), capabilities.fields.priority && (_jsx(Box, { width: colPriority, marginRight: gap, overflowX: "hidden", children: _jsx(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, children: item.priority }) })), capabilities.fields.assignee && (_jsx(Box, { width: colAssignee, overflowX: "hidden", children: _jsx(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, wrap: "truncate", children: item.assignee }) }))] }, `${item.id}-${item.type}`));
|
|
25
|
+
return (_jsxs(Box, { ...(marked && !selected ? { backgroundColor: 'cyan' } : {}), children: [_jsx(Box, { width: 2, children: _jsx(Text, { color: "cyan", children: selected ? '>' : ' ' }) }), _jsx(Box, { width: colId, overflowX: "hidden", children: _jsx(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, children: item.id }) }), _jsx(Box, { flexGrow: 1, marginRight: gap, overflowX: "hidden", children: _jsxs(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, wrap: "truncate", children: [capabilities.relationships ? prefix : '', collapseIndicator, item.title, typeLabel] }) }), _jsx(Box, { width: colStatus, marginRight: gap, overflowX: "hidden", children: _jsxs(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, children: [capabilities.fields.dependsOn && hasUnresolvedDeps ? '⧗ ' : '', item.status] }) }), capabilities.fields.priority && (_jsx(Box, { width: colPriority, marginRight: gap, overflowX: "hidden", children: _jsx(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, children: item.priority }) })), capabilities.fields.assignee && (_jsx(Box, { width: colAssignee, overflowX: "hidden", children: _jsx(Text, { color: selected ? 'cyan' : undefined, bold: selected, dimColor: dimmed, wrap: "truncate", children: item.assignee }) }))] }, `${item.id}-${item.type}`));
|
|
25
26
|
})] }));
|
|
26
27
|
}
|
|
27
28
|
//# sourceMappingURL=TableLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableLayout.js","sourceRoot":"","sources":["../../src/components/TableLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"TableLayout.js","sourceRoot":"","sources":["../../src/components/TableLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAYhC,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,GAAG,GAAG,CAAC,CAAC;AAEd,MAAM,UAAU,WAAW,CAAC,EAC1B,SAAS,EACT,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,SAAS,GACQ;IACjB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAChD,CAAC,CACF,CAAC;QACF,OAAO,MAAM,GAAG,GAAG,CAAC;IACtB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,CACL,8BACE,MAAC,GAAG,eACF,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,YACX,KAAC,IAAI,oBAAS,GACV,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,KAAK,YACf,KAAC,IAAI,IAAC,IAAI,QAAC,SAAS,yBAEb,GACH,EACN,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,YAChC,KAAC,IAAI,IAAC,IAAI,QAAC,SAAS,4BAEb,GACH,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,YACrC,KAAC,IAAI,IAAC,IAAI,QAAC,SAAS,6BAEb,GACH,EACL,YAAY,CAAC,MAAM,CAAC,QAAQ,IAAI,CAC/B,KAAC,GAAG,IAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,YACvC,KAAC,IAAI,IAAC,IAAI,QAAC,SAAS,+BAEb,GACH,CACP,EACA,YAAY,CAAC,MAAM,CAAC,QAAQ,IAAI,CAC/B,KAAC,GAAG,IAAC,KAAK,EAAE,WAAW,YACrB,KAAC,IAAI,IAAC,IAAI,QAAC,SAAS,+BAEb,GACH,CACP,IACG,EAEL,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;gBAC/B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;gBAC5D,MAAM,QAAQ,GAAG,GAAG,KAAK,MAAM,CAAC;gBAChC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpD,MAAM,iBAAiB,GAAG,WAAW;oBACnC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBACzB,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,IAAI;oBACR,CAAC,CAAC,IAAI,CAAC;gBACT,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,WAAW,IAAI,CAAC,QAAQ,CAAC;gBACxC,OAAO,CACL,MAAC,GAAG,OAEE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAE5D,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,YACX,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAQ,GAC5C,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,QAAQ,YACnC,KAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACpC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,YAEf,IAAI,CAAC,EAAE,GACH,GACH,EACN,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAC,QAAQ,YACpD,MAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACpC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAC,UAAU,aAEd,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACxC,iBAAiB,EACjB,IAAI,CAAC,KAAK,EACV,SAAS,IACL,GACH,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAC,QAAQ,YACzD,MAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACpC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,aAEf,YAAY,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAC9D,IAAI,CAAC,MAAM,IACP,GACH,EACL,YAAY,CAAC,MAAM,CAAC,QAAQ,IAAI,CAC/B,KAAC,GAAG,IAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAC,QAAQ,YAC3D,KAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACpC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,YAEf,IAAI,CAAC,QAAQ,GACT,GACH,CACP,EACA,YAAY,CAAC,MAAM,CAAC,QAAQ,IAAI,CAC/B,KAAC,GAAG,IAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAC,QAAQ,YACzC,KAAC,IAAI,IACH,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACpC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAC,UAAU,YAEd,IAAI,CAAC,QAAQ,GACT,GACH,CACP,KA5DI,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CA6D1B,CACP,CAAC;YACJ,CAAC,CAAC,IACD,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text, useInput } from 'ink';
|
|
3
|
+
import SelectInput from 'ink-select-input';
|
|
4
|
+
export function TypePicker({ types, onSelect, onCancel }) {
|
|
5
|
+
useInput((_input, key) => {
|
|
6
|
+
if (key.escape) {
|
|
7
|
+
onCancel();
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
const items = types.map((t) => ({
|
|
11
|
+
label: t.charAt(0).toUpperCase() + t.slice(1),
|
|
12
|
+
value: t,
|
|
13
|
+
}));
|
|
14
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, children: "Set Type" }) }), _jsx(SelectInput, { items: items, onSelect: (item) => onSelect(item.value) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: '↑↓ navigate enter select esc cancel' }) })] }));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=TypePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypePicker.js","sourceRoot":"","sources":["../../src/components/TypePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAQ3C,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAmB;IACvE,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,KAAK,EAAE,CAAC;KACT,CAAC,CAAC,CAAC;IAEJ,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,IAAI,+BAAgB,GACtB,EACN,KAAC,WAAW,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAI,EACvE,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,IAAI,IAAC,QAAQ,kBAAE,uCAAuC,GAAQ,GAC3D,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -15,6 +15,16 @@ import { useBackendData } from '../hooks/useBackendData.js';
|
|
|
15
15
|
import { SyncQueueStore } from '../sync/queue.js';
|
|
16
16
|
import { buildTree } from './buildTree.js';
|
|
17
17
|
import { SearchOverlay } from './SearchOverlay.js';
|
|
18
|
+
import { BulkMenu } from './BulkMenu.js';
|
|
19
|
+
import { PriorityPicker } from './PriorityPicker.js';
|
|
20
|
+
import { TypePicker } from './TypePicker.js';
|
|
21
|
+
import { StatusPicker } from './StatusPicker.js';
|
|
22
|
+
export function getTargetIds(markedIds, cursorItem) {
|
|
23
|
+
if (markedIds.size > 0) {
|
|
24
|
+
return [...markedIds];
|
|
25
|
+
}
|
|
26
|
+
return cursorItem ? [cursorItem.id] : [];
|
|
27
|
+
}
|
|
18
28
|
export function WorkItemList() {
|
|
19
29
|
const { backend, syncManager, navigate, navigateToHelp, selectWorkItem, activeType, setActiveType, } = useAppState();
|
|
20
30
|
const { exit } = useApp();
|
|
@@ -25,8 +35,23 @@ export function WorkItemList() {
|
|
|
25
35
|
const [parentInput, setParentInput] = useState('');
|
|
26
36
|
const [isSearching, setIsSearching] = useState(false);
|
|
27
37
|
const [allSearchItems, setAllSearchItems] = useState([]);
|
|
38
|
+
// Marked items state for bulk operations
|
|
39
|
+
const [markedIds, setMarkedIds] = useState(() => new Set());
|
|
40
|
+
const [deleteTargetIds, setDeleteTargetIds] = useState([]);
|
|
41
|
+
const [parentTargetIds, setParentTargetIds] = useState([]);
|
|
42
|
+
const [showBulkMenu, setShowBulkMenu] = useState(false);
|
|
43
|
+
const [showStatusPicker, setShowStatusPicker] = useState(false);
|
|
44
|
+
const [showTypePicker, setShowTypePicker] = useState(false);
|
|
45
|
+
const [showPriorityPicker, setShowPriorityPicker] = useState(false);
|
|
46
|
+
const [settingAssignee, setSettingAssignee] = useState(false);
|
|
47
|
+
const [assigneeInput, setAssigneeInput] = useState('');
|
|
48
|
+
const [settingLabels, setSettingLabels] = useState(false);
|
|
49
|
+
const [labelsInput, setLabelsInput] = useState('');
|
|
50
|
+
const [bulkTargetIds, setBulkTargetIds] = useState([]);
|
|
51
|
+
// Marked count for header display
|
|
52
|
+
const markedCount = markedIds.size;
|
|
28
53
|
const [syncStatus, setSyncStatus] = useState(syncManager?.getStatus() ?? null);
|
|
29
|
-
const { capabilities, types, currentIteration: iteration, items: allItems, loading, refresh: refreshData, } = useBackendData(backend);
|
|
54
|
+
const { capabilities, types, statuses, currentIteration: iteration, items: allItems, loading, refresh: refreshData, } = useBackendData(backend);
|
|
30
55
|
useEffect(() => {
|
|
31
56
|
if (!syncManager)
|
|
32
57
|
return;
|
|
@@ -116,20 +141,47 @@ export function WorkItemList() {
|
|
|
116
141
|
}
|
|
117
142
|
return;
|
|
118
143
|
}
|
|
144
|
+
if (showBulkMenu)
|
|
145
|
+
return;
|
|
146
|
+
if (settingAssignee) {
|
|
147
|
+
if (key.escape) {
|
|
148
|
+
setSettingAssignee(false);
|
|
149
|
+
setBulkTargetIds([]);
|
|
150
|
+
}
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (settingLabels) {
|
|
154
|
+
if (key.escape) {
|
|
155
|
+
setSettingLabels(false);
|
|
156
|
+
setBulkTargetIds([]);
|
|
157
|
+
}
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
119
160
|
if (isSearching)
|
|
120
161
|
return;
|
|
121
162
|
if (confirmDelete) {
|
|
122
163
|
if (input === 'y' || input === 'Y') {
|
|
123
164
|
void (async () => {
|
|
124
|
-
|
|
125
|
-
|
|
165
|
+
for (const id of deleteTargetIds) {
|
|
166
|
+
await backend.cachedDeleteWorkItem(id);
|
|
167
|
+
await queueWrite('delete', id);
|
|
168
|
+
}
|
|
126
169
|
setConfirmDelete(false);
|
|
170
|
+
setDeleteTargetIds([]);
|
|
171
|
+
setMarkedIds((prev) => {
|
|
172
|
+
const next = new Set(prev);
|
|
173
|
+
for (const id of deleteTargetIds) {
|
|
174
|
+
next.delete(id);
|
|
175
|
+
}
|
|
176
|
+
return next;
|
|
177
|
+
});
|
|
127
178
|
setCursor((c) => Math.max(0, c - 1));
|
|
128
179
|
refreshData();
|
|
129
180
|
})();
|
|
130
181
|
}
|
|
131
182
|
else {
|
|
132
183
|
setConfirmDelete(false);
|
|
184
|
+
setDeleteTargetIds([]);
|
|
133
185
|
}
|
|
134
186
|
return;
|
|
135
187
|
}
|
|
@@ -187,7 +239,11 @@ export function WorkItemList() {
|
|
|
187
239
|
navigate('form');
|
|
188
240
|
}
|
|
189
241
|
if (input === 'd' && treeItems.length > 0) {
|
|
190
|
-
|
|
242
|
+
const targetIds = getTargetIds(markedIds, treeItems[cursor]?.item);
|
|
243
|
+
if (targetIds.length > 0) {
|
|
244
|
+
setDeleteTargetIds(targetIds);
|
|
245
|
+
setConfirmDelete(true);
|
|
246
|
+
}
|
|
191
247
|
}
|
|
192
248
|
if (input === 'o' && treeItems.length > 0) {
|
|
193
249
|
void (async () => {
|
|
@@ -195,7 +251,7 @@ export function WorkItemList() {
|
|
|
195
251
|
refreshData();
|
|
196
252
|
})();
|
|
197
253
|
}
|
|
198
|
-
if (input === '
|
|
254
|
+
if (input === 'B' && gitAvailable && treeItems.length > 0) {
|
|
199
255
|
const item = treeItems[cursor].item;
|
|
200
256
|
const comments = item.comments;
|
|
201
257
|
const config = readConfigSync(process.cwd());
|
|
@@ -217,9 +273,19 @@ export function WorkItemList() {
|
|
|
217
273
|
capabilities.fields.parent &&
|
|
218
274
|
treeItems.length > 0 &&
|
|
219
275
|
!settingParent) {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
276
|
+
const targetIds = getTargetIds(markedIds, treeItems[cursor]?.item);
|
|
277
|
+
if (targetIds.length > 0) {
|
|
278
|
+
setParentTargetIds(targetIds);
|
|
279
|
+
setSettingParent(true);
|
|
280
|
+
// For single item, prefill current parent
|
|
281
|
+
if (targetIds.length === 1) {
|
|
282
|
+
const item = treeItems.find((t) => t.item.id === targetIds[0]);
|
|
283
|
+
setParentInput(item?.item.parent ?? '');
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
setParentInput('');
|
|
287
|
+
}
|
|
288
|
+
}
|
|
223
289
|
}
|
|
224
290
|
if (key.tab && capabilities.customTypes && types.length > 0) {
|
|
225
291
|
const currentIdx = types.indexOf(activeType ?? '');
|
|
@@ -233,6 +299,55 @@ export function WorkItemList() {
|
|
|
233
299
|
refreshData();
|
|
234
300
|
});
|
|
235
301
|
}
|
|
302
|
+
if (input === 'm' && treeItems.length > 0) {
|
|
303
|
+
const itemId = treeItems[cursor].item.id;
|
|
304
|
+
setMarkedIds((prev) => {
|
|
305
|
+
const next = new Set(prev);
|
|
306
|
+
if (next.has(itemId)) {
|
|
307
|
+
next.delete(itemId);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
next.add(itemId);
|
|
311
|
+
}
|
|
312
|
+
return next;
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
if (input === 'M') {
|
|
316
|
+
setMarkedIds(new Set());
|
|
317
|
+
}
|
|
318
|
+
if (input === 'b' && treeItems.length > 0) {
|
|
319
|
+
setShowBulkMenu(true);
|
|
320
|
+
}
|
|
321
|
+
if (input === 'P' && capabilities.fields.priority && treeItems.length > 0) {
|
|
322
|
+
const targetIds = getTargetIds(markedIds, treeItems[cursor]?.item);
|
|
323
|
+
if (targetIds.length > 0) {
|
|
324
|
+
setBulkTargetIds(targetIds);
|
|
325
|
+
setShowPriorityPicker(true);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (input === 'a' && capabilities.fields.assignee && treeItems.length > 0) {
|
|
329
|
+
const targetIds = getTargetIds(markedIds, treeItems[cursor]?.item);
|
|
330
|
+
if (targetIds.length > 0) {
|
|
331
|
+
setBulkTargetIds(targetIds);
|
|
332
|
+
setSettingAssignee(true);
|
|
333
|
+
setAssigneeInput('');
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
if (input === 'l' && capabilities.fields.labels && treeItems.length > 0) {
|
|
337
|
+
const targetIds = getTargetIds(markedIds, treeItems[cursor]?.item);
|
|
338
|
+
if (targetIds.length > 0) {
|
|
339
|
+
setBulkTargetIds(targetIds);
|
|
340
|
+
setSettingLabels(true);
|
|
341
|
+
setLabelsInput('');
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
if (input === 't' && capabilities.customTypes && treeItems.length > 0) {
|
|
345
|
+
const targetIds = getTargetIds(markedIds, treeItems[cursor]?.item);
|
|
346
|
+
if (targetIds.length > 0) {
|
|
347
|
+
setBulkTargetIds(targetIds);
|
|
348
|
+
setShowTypePicker(true);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
236
351
|
});
|
|
237
352
|
const handleSearchSelect = (item) => {
|
|
238
353
|
setIsSearching(false);
|
|
@@ -242,6 +357,43 @@ export function WorkItemList() {
|
|
|
242
357
|
const handleSearchCancel = () => {
|
|
243
358
|
setIsSearching(false);
|
|
244
359
|
};
|
|
360
|
+
const handleBulkAction = (action) => {
|
|
361
|
+
const targetIds = getTargetIds(markedIds, treeItems[cursor]?.item);
|
|
362
|
+
if (targetIds.length === 0)
|
|
363
|
+
return;
|
|
364
|
+
setBulkTargetIds(targetIds);
|
|
365
|
+
switch (action) {
|
|
366
|
+
case 'status':
|
|
367
|
+
setShowStatusPicker(true);
|
|
368
|
+
break;
|
|
369
|
+
case 'iteration':
|
|
370
|
+
navigate('iteration-picker');
|
|
371
|
+
break;
|
|
372
|
+
case 'parent':
|
|
373
|
+
setParentTargetIds(targetIds);
|
|
374
|
+
setSettingParent(true);
|
|
375
|
+
setParentInput('');
|
|
376
|
+
break;
|
|
377
|
+
case 'type':
|
|
378
|
+
setShowTypePicker(true);
|
|
379
|
+
break;
|
|
380
|
+
case 'priority':
|
|
381
|
+
setShowPriorityPicker(true);
|
|
382
|
+
break;
|
|
383
|
+
case 'assignee':
|
|
384
|
+
setSettingAssignee(true);
|
|
385
|
+
setAssigneeInput('');
|
|
386
|
+
break;
|
|
387
|
+
case 'labels':
|
|
388
|
+
setSettingLabels(true);
|
|
389
|
+
setLabelsInput('');
|
|
390
|
+
break;
|
|
391
|
+
case 'delete':
|
|
392
|
+
setDeleteTargetIds(targetIds);
|
|
393
|
+
setConfirmDelete(true);
|
|
394
|
+
break;
|
|
395
|
+
}
|
|
396
|
+
};
|
|
245
397
|
const typeLabel = activeType
|
|
246
398
|
? activeType.charAt(0).toUpperCase() + activeType.slice(1) + 's'
|
|
247
399
|
: '';
|
|
@@ -257,15 +409,58 @@ export function WorkItemList() {
|
|
|
257
409
|
if (loading) {
|
|
258
410
|
return (_jsx(Box, { children: _jsx(Text, { dimColor: true, children: "Loading..." }) }));
|
|
259
411
|
}
|
|
260
|
-
return (_jsxs(Box, { flexDirection: "column", children: [isSearching && (_jsx(SearchOverlay, { items: allSearchItems, currentIteration: iteration, onSelect: handleSearchSelect, onCancel: handleSearchCancel })), !isSearching && (_jsxs(_Fragment, { children: [
|
|
412
|
+
return (_jsxs(Box, { flexDirection: "column", children: [isSearching && (_jsx(SearchOverlay, { items: allSearchItems, currentIteration: iteration, onSelect: handleSearchSelect, onCancel: handleSearchCancel })), !isSearching && (_jsxs(_Fragment, { children: [showBulkMenu && (_jsx(BulkMenu, { itemCount: markedIds.size > 0 ? markedIds.size : 1, capabilities: capabilities, onSelect: (action) => {
|
|
413
|
+
setShowBulkMenu(false);
|
|
414
|
+
handleBulkAction(action);
|
|
415
|
+
}, onCancel: () => setShowBulkMenu(false) })), showStatusPicker && (_jsx(StatusPicker, { statuses: statuses, onSelect: (status) => {
|
|
416
|
+
void (async () => {
|
|
417
|
+
setShowStatusPicker(false);
|
|
418
|
+
for (const id of bulkTargetIds) {
|
|
419
|
+
await backend.cachedUpdateWorkItem(id, { status });
|
|
420
|
+
await queueWrite('update', id);
|
|
421
|
+
}
|
|
422
|
+
setBulkTargetIds([]);
|
|
423
|
+
refreshData();
|
|
424
|
+
})();
|
|
425
|
+
}, onCancel: () => {
|
|
426
|
+
setShowStatusPicker(false);
|
|
427
|
+
setBulkTargetIds([]);
|
|
428
|
+
} })), showTypePicker && (_jsx(TypePicker, { types: types, onSelect: (type) => {
|
|
429
|
+
void (async () => {
|
|
430
|
+
setShowTypePicker(false);
|
|
431
|
+
for (const id of bulkTargetIds) {
|
|
432
|
+
await backend.cachedUpdateWorkItem(id, { type });
|
|
433
|
+
await queueWrite('update', id);
|
|
434
|
+
}
|
|
435
|
+
setBulkTargetIds([]);
|
|
436
|
+
refreshData();
|
|
437
|
+
})();
|
|
438
|
+
}, onCancel: () => {
|
|
439
|
+
setShowTypePicker(false);
|
|
440
|
+
setBulkTargetIds([]);
|
|
441
|
+
} })), showPriorityPicker && (_jsx(PriorityPicker, { onSelect: (priority) => {
|
|
442
|
+
void (async () => {
|
|
443
|
+
setShowPriorityPicker(false);
|
|
444
|
+
for (const id of bulkTargetIds) {
|
|
445
|
+
await backend.cachedUpdateWorkItem(id, { priority });
|
|
446
|
+
await queueWrite('update', id);
|
|
447
|
+
}
|
|
448
|
+
setBulkTargetIds([]);
|
|
449
|
+
refreshData();
|
|
450
|
+
})();
|
|
451
|
+
}, onCancel: () => {
|
|
452
|
+
setShowPriorityPicker(false);
|
|
453
|
+
setBulkTargetIds([]);
|
|
454
|
+
} })), _jsxs(Box, { marginBottom: 1, children: [_jsxs(Text, { wrap: "truncate", children: [_jsxs(Text, { bold: true, color: "cyan", children: [typeLabel, " \u2014 ", iteration] }), _jsx(Text, { dimColor: true, children: ` (${items.length} items)` })] }), syncStatus && syncStatus.state === 'syncing' ? (_jsxs(Box, { marginLeft: 1, children: [_jsx(Text, { color: "yellow", children: _jsx(Spinner, { type: "dots" }) }), _jsx(Text, { dimColor: true, children: " Syncing..." })] })) : syncStatus && syncStatus.state === 'error' ? (_jsx(Text, { dimColor: true, children: ` ⚠ Sync failed (${syncStatus.errors.length} errors)` })) : syncStatus && syncStatus.pendingCount > 0 ? (_jsx(Text, { dimColor: true, children: ` ↑ ${syncStatus.pendingCount} pending` })) : syncStatus ? (_jsx(Text, { dimColor: true, children: " \u2713 Synced" })) : null, markedCount > 0 && (_jsx(Text, { color: "magenta", children: ` ● ${markedCount} marked` }))] }), terminalWidth >= 80 ? (_jsx(TableLayout, { treeItems: visibleTreeItems, cursor: viewport.visibleCursor, capabilities: capabilities, collapsedIds: collapsedIds, markedIds: markedIds })) : (_jsx(CardLayout, { treeItems: visibleTreeItems, cursor: viewport.visibleCursor, capabilities: capabilities, collapsedIds: collapsedIds, markedIds: markedIds })), treeItems.length === 0 && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { dimColor: true, children: ["No ", activeType, "s in this iteration."] }) })), _jsx(Box, { marginTop: 1, children: capabilities.fields.parent && settingParent ? (_jsxs(Box, { children: [_jsxs(Text, { color: "cyan", children: ["Set parent for ", parentTargetIds.length, " item", parentTargetIds.length > 1 ? 's' : '', " (empty to clear):", ' '] }), _jsx(TextInput, { value: parentInput, onChange: setParentInput, focus: true, onSubmit: (value) => {
|
|
261
455
|
void (async () => {
|
|
262
|
-
const item = treeItems[cursor].item;
|
|
263
456
|
const newParent = value.trim() === '' ? null : value.trim();
|
|
264
457
|
try {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
458
|
+
for (const id of parentTargetIds) {
|
|
459
|
+
await backend.cachedUpdateWorkItem(id, {
|
|
460
|
+
parent: newParent,
|
|
461
|
+
});
|
|
462
|
+
await queueWrite('update', id);
|
|
463
|
+
}
|
|
269
464
|
setWarning('');
|
|
270
465
|
}
|
|
271
466
|
catch (e) {
|
|
@@ -273,8 +468,36 @@ export function WorkItemList() {
|
|
|
273
468
|
}
|
|
274
469
|
setSettingParent(false);
|
|
275
470
|
setParentInput('');
|
|
471
|
+
setParentTargetIds([]);
|
|
472
|
+
refreshData();
|
|
473
|
+
})();
|
|
474
|
+
} })] })) : settingAssignee ? (_jsxs(Box, { children: [_jsxs(Text, { color: "cyan", children: ["Set assignee for ", bulkTargetIds.length, " item", bulkTargetIds.length > 1 ? 's' : '', ":", ' '] }), _jsx(TextInput, { value: assigneeInput, onChange: setAssigneeInput, focus: true, onSubmit: (value) => {
|
|
475
|
+
void (async () => {
|
|
476
|
+
const assignee = value.trim();
|
|
477
|
+
for (const id of bulkTargetIds) {
|
|
478
|
+
await backend.cachedUpdateWorkItem(id, { assignee });
|
|
479
|
+
await queueWrite('update', id);
|
|
480
|
+
}
|
|
481
|
+
setSettingAssignee(false);
|
|
482
|
+
setAssigneeInput('');
|
|
483
|
+
setBulkTargetIds([]);
|
|
484
|
+
refreshData();
|
|
485
|
+
})();
|
|
486
|
+
} })] })) : settingLabels ? (_jsxs(Box, { children: [_jsxs(Text, { color: "cyan", children: ["Set labels for ", bulkTargetIds.length, " item", bulkTargetIds.length > 1 ? 's' : '', " (comma-separated):", ' '] }), _jsx(TextInput, { value: labelsInput, onChange: setLabelsInput, focus: true, onSubmit: (value) => {
|
|
487
|
+
void (async () => {
|
|
488
|
+
const labels = value
|
|
489
|
+
.split(',')
|
|
490
|
+
.map((l) => l.trim())
|
|
491
|
+
.filter(Boolean);
|
|
492
|
+
for (const id of bulkTargetIds) {
|
|
493
|
+
await backend.cachedUpdateWorkItem(id, { labels });
|
|
494
|
+
await queueWrite('update', id);
|
|
495
|
+
}
|
|
496
|
+
setSettingLabels(false);
|
|
497
|
+
setLabelsInput('');
|
|
498
|
+
setBulkTargetIds([]);
|
|
276
499
|
refreshData();
|
|
277
500
|
})();
|
|
278
|
-
} })] })) : confirmDelete ? (_jsxs(Text, { color: "red", children: ["Delete
|
|
501
|
+
} })] })) : confirmDelete ? (_jsxs(Text, { color: "red", children: ["Delete ", deleteTargetIds.length, " item", deleteTargetIds.length > 1 ? 's' : '', "? (y/n)"] })) : (_jsx(Text, { dimColor: true, children: helpText })) }), warning && (_jsx(Box, { children: _jsxs(Text, { color: "yellow", children: ["\u26A0 ", warning] }) }))] }))] }));
|
|
279
502
|
}
|
|
280
503
|
//# sourceMappingURL=WorkItemList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkItemList.js","sourceRoot":"","sources":["../../src/components/WorkItemList.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkItemList.js","sourceRoot":"","sources":["../../src/components/WorkItemList.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sascha384/tic",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "Terminal UI for issue tracking",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
|
11
|
-
"README.md"
|
|
11
|
+
"README.md",
|
|
12
|
+
".claude-plugin",
|
|
13
|
+
".mcp.json",
|
|
14
|
+
"skills"
|
|
12
15
|
],
|
|
13
16
|
"scripts": {
|
|
14
17
|
"build": "tsc -p tsconfig.build.json",
|
|
@@ -45,6 +48,8 @@
|
|
|
45
48
|
},
|
|
46
49
|
"devDependencies": {
|
|
47
50
|
"@eslint/js": "^9.39.2",
|
|
51
|
+
"@semantic-release/exec": "^7.1.0",
|
|
52
|
+
"@semantic-release/git": "^10.0.1",
|
|
48
53
|
"@sindresorhus/tsconfig": "^8.1.0",
|
|
49
54
|
"@types/node": "^25.1.0",
|
|
50
55
|
"@types/react": "^19.2.10",
|
|
@@ -65,7 +70,22 @@
|
|
|
65
70
|
"plugins": [
|
|
66
71
|
"@semantic-release/commit-analyzer",
|
|
67
72
|
"@semantic-release/release-notes-generator",
|
|
73
|
+
[
|
|
74
|
+
"@semantic-release/exec",
|
|
75
|
+
{
|
|
76
|
+
"prepareCmd": "node scripts/sync-plugin-version.js ${nextRelease.version}"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
68
79
|
"@semantic-release/npm",
|
|
80
|
+
[
|
|
81
|
+
"@semantic-release/git",
|
|
82
|
+
{
|
|
83
|
+
"assets": [
|
|
84
|
+
".claude-plugin/plugin.json"
|
|
85
|
+
],
|
|
86
|
+
"message": "chore(release): sync plugin version to ${nextRelease.version} [skip ci]"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
69
89
|
"@semantic-release/github"
|
|
70
90
|
]
|
|
71
91
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tic-config
|
|
3
|
+
description: Use when initializing projects, checking configuration, or changing backends/iterations
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# tic Configuration
|
|
7
|
+
|
|
8
|
+
Use these tools to initialize and configure tic projects.
|
|
9
|
+
|
|
10
|
+
## Tools
|
|
11
|
+
|
|
12
|
+
### init_project
|
|
13
|
+
|
|
14
|
+
Creates a `.tic/` directory in the current project. Call this first if other tools fail with "Not a tic project".
|
|
15
|
+
|
|
16
|
+
### get_config
|
|
17
|
+
|
|
18
|
+
Returns project configuration:
|
|
19
|
+
- `backend` — current backend type (local, github, gitlab, azure, jira)
|
|
20
|
+
- `statuses` — available status values
|
|
21
|
+
- `types` — available work item types
|
|
22
|
+
- `iterations` — configured iterations
|
|
23
|
+
- `currentIteration` — active iteration filter
|
|
24
|
+
- `capabilities` — what the backend supports
|
|
25
|
+
|
|
26
|
+
**Always call this first** to understand what types, statuses, and iterations are available before creating or updating items.
|
|
27
|
+
|
|
28
|
+
### set_backend
|
|
29
|
+
|
|
30
|
+
Switch between backends: `local`, `github`, `gitlab`, `azure`, `jira`.
|
|
31
|
+
|
|
32
|
+
The backend is auto-detected from git remotes, but can be overridden.
|
|
33
|
+
|
|
34
|
+
### set_iteration
|
|
35
|
+
|
|
36
|
+
Set the current iteration filter. This affects which items appear in `list_items` and `search_items` unless `all: true` is passed.
|
|
37
|
+
|
|
38
|
+
## Capabilities
|
|
39
|
+
|
|
40
|
+
The `capabilities` object from `get_config` tells you what the backend supports:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"relationships": true, // parent/child, dependencies
|
|
45
|
+
"customTypes": true, // configurable work item types
|
|
46
|
+
"customStatuses": true, // configurable statuses
|
|
47
|
+
"iterations": true, // iteration/sprint support
|
|
48
|
+
"comments": true, // commenting on items
|
|
49
|
+
"fields": {
|
|
50
|
+
"priority": true,
|
|
51
|
+
"assignee": true,
|
|
52
|
+
"labels": true,
|
|
53
|
+
"parent": true,
|
|
54
|
+
"dependsOn": true
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Check capabilities before using optional fields — not all backends support all features.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tic-items
|
|
3
|
+
description: Use when creating, updating, listing, searching, or deleting work items
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# tic Work Items
|
|
7
|
+
|
|
8
|
+
Use these tools to manage work items across any backend.
|
|
9
|
+
|
|
10
|
+
## Before You Start
|
|
11
|
+
|
|
12
|
+
Call `get_config` first to understand:
|
|
13
|
+
- Available `types` (e.g., epic, issue, task)
|
|
14
|
+
- Available `statuses` (e.g., backlog, todo, in-progress, done)
|
|
15
|
+
- Available `iterations`
|
|
16
|
+
- Backend `capabilities` (which fields are supported)
|
|
17
|
+
|
|
18
|
+
## Tools
|
|
19
|
+
|
|
20
|
+
### list_items
|
|
21
|
+
|
|
22
|
+
List work items with optional filters:
|
|
23
|
+
- `type` — filter by work item type
|
|
24
|
+
- `status` — filter by status
|
|
25
|
+
- `iteration` — filter by iteration
|
|
26
|
+
- `all` — show all iterations (ignores current iteration filter)
|
|
27
|
+
|
|
28
|
+
Use filters rather than fetching all and filtering locally.
|
|
29
|
+
|
|
30
|
+
### show_item
|
|
31
|
+
|
|
32
|
+
Get full details of a work item by ID. Returns all fields including description, comments, and a `url` for opening in browser/editor.
|
|
33
|
+
|
|
34
|
+
### search_items
|
|
35
|
+
|
|
36
|
+
Text search across title and description. Supports the same filters as `list_items`.
|
|
37
|
+
|
|
38
|
+
### create_item
|
|
39
|
+
|
|
40
|
+
Create a new work item. Required field:
|
|
41
|
+
- `title` — work item title
|
|
42
|
+
|
|
43
|
+
Optional fields (check capabilities first):
|
|
44
|
+
- `type` — defaults to first available type
|
|
45
|
+
- `status` — defaults to first available status
|
|
46
|
+
- `priority` — low, medium, high, critical
|
|
47
|
+
- `assignee` — who owns this
|
|
48
|
+
- `labels` — comma-separated tags
|
|
49
|
+
- `iteration` — which sprint/milestone
|
|
50
|
+
- `parent` — ID of parent item
|
|
51
|
+
- `depends_on` — array of IDs this item depends on
|
|
52
|
+
- `description` — full details
|
|
53
|
+
|
|
54
|
+
### update_item
|
|
55
|
+
|
|
56
|
+
Update an existing work item. Required field:
|
|
57
|
+
- `id` — work item ID
|
|
58
|
+
|
|
59
|
+
All other fields are optional — only pass what you want to change.
|
|
60
|
+
|
|
61
|
+
To clear a parent relationship, pass `parent: null`.
|
|
62
|
+
|
|
63
|
+
### delete_item / confirm_delete
|
|
64
|
+
|
|
65
|
+
**Two-step deletion for safety:**
|
|
66
|
+
|
|
67
|
+
1. Call `delete_item` with the ID — returns a preview showing:
|
|
68
|
+
- The item being deleted
|
|
69
|
+
- Children that will be unparented
|
|
70
|
+
- Dependents that will lose this dependency
|
|
71
|
+
|
|
72
|
+
2. Call `confirm_delete` with the same ID to execute
|
|
73
|
+
|
|
74
|
+
This prevents accidental data loss. Always preview before confirming.
|
|
75
|
+
|
|
76
|
+
### add_comment
|
|
77
|
+
|
|
78
|
+
Add a timestamped comment to a work item. Only available if backend supports comments (check `capabilities.comments`).
|
|
79
|
+
|
|
80
|
+
- `id` — work item ID
|
|
81
|
+
- `text` — comment content
|
|
82
|
+
- `author` — optional, defaults to system
|
|
83
|
+
|
|
84
|
+
## Example Workflow
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
1. get_config → understand available types/statuses
|
|
88
|
+
2. list_items with type: "task", status: "todo" → see open tasks
|
|
89
|
+
3. create_item with title, type, priority → create new item
|
|
90
|
+
4. update_item with id, status: "in-progress" → update status
|
|
91
|
+
5. add_comment with id, text → add progress note
|
|
92
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tic-relationships
|
|
3
|
+
description: Use when working with parent-child hierarchies or dependencies between items
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# tic Relationships
|
|
7
|
+
|
|
8
|
+
Use these tools to navigate and manage work item hierarchies and dependencies.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
Check `capabilities.relationships` from `get_config` — not all backends support relationships.
|
|
13
|
+
|
|
14
|
+
## Tools
|
|
15
|
+
|
|
16
|
+
### get_item_tree
|
|
17
|
+
|
|
18
|
+
Get all work items as a hierarchical tree structure. Children are nested under their parents.
|
|
19
|
+
|
|
20
|
+
Best for understanding overall project structure. Supports same filters as `list_items`:
|
|
21
|
+
- `type`, `status`, `iteration`, `all`
|
|
22
|
+
|
|
23
|
+
### get_children
|
|
24
|
+
|
|
25
|
+
Get direct children of a specific work item.
|
|
26
|
+
|
|
27
|
+
- `id` — parent work item ID
|
|
28
|
+
|
|
29
|
+
Returns array of child work items.
|
|
30
|
+
|
|
31
|
+
### get_dependents
|
|
32
|
+
|
|
33
|
+
Get items that depend on (are blocked by) a specific work item.
|
|
34
|
+
|
|
35
|
+
- `id` — work item ID
|
|
36
|
+
|
|
37
|
+
Returns array of dependent work items. Useful for understanding impact before completing or deleting an item.
|
|
38
|
+
|
|
39
|
+
## Setting Relationships
|
|
40
|
+
|
|
41
|
+
### Parent-Child
|
|
42
|
+
|
|
43
|
+
Set during `create_item` or `update_item`:
|
|
44
|
+
- `parent: "123"` — set parent to item 123
|
|
45
|
+
- `parent: null` — clear parent (make root-level)
|
|
46
|
+
|
|
47
|
+
Children appear indented under their parent in tree views.
|
|
48
|
+
|
|
49
|
+
### Dependencies
|
|
50
|
+
|
|
51
|
+
Set during `create_item` or `update_item`:
|
|
52
|
+
- `depends_on: ["123", "456"]` — this item is blocked by items 123 and 456
|
|
53
|
+
|
|
54
|
+
Dependencies indicate work that must complete before this item can proceed.
|
|
55
|
+
|
|
56
|
+
## Validation
|
|
57
|
+
|
|
58
|
+
The backend enforces:
|
|
59
|
+
- **No circular parents** — item cannot be its own ancestor
|
|
60
|
+
- **Referential integrity** — referenced items must exist
|
|
61
|
+
|
|
62
|
+
## Cleanup on Delete
|
|
63
|
+
|
|
64
|
+
When an item is deleted:
|
|
65
|
+
- Children have their `parent` cleared (become root-level)
|
|
66
|
+
- The item is removed from other items' `depends_on` lists
|
|
67
|
+
|
|
68
|
+
The `delete_item` preview shows these affected items before you confirm.
|
|
69
|
+
|
|
70
|
+
## Warnings
|
|
71
|
+
|
|
72
|
+
When completing an item (`status: "done"`), tic warns if:
|
|
73
|
+
- Item has open children
|
|
74
|
+
- Item has unresolved dependencies
|
|
75
|
+
|
|
76
|
+
These are warnings, not blockers — you can proceed if appropriate.
|