@lemoncat7/dsh-partner 1.8.3 → 1.10.2
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/README.md +36 -1
- package/docs/architecture.md +101 -1
- package/lib/agent-runtime.d.ts +11 -2
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +91 -66
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api/features/workspace-api.d.ts +2 -0
- package/lib/api/features/workspace-api.d.ts.map +1 -1
- package/lib/api/features/workspace-api.js +49 -2
- package/lib/api/features/workspace-api.js.map +1 -1
- package/lib/api.d.ts +2 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +13 -31
- package/lib/api.js.map +1 -1
- package/lib/channels/delivery-policy.d.ts +14 -0
- package/lib/channels/delivery-policy.d.ts.map +1 -0
- package/lib/channels/delivery-policy.js +82 -0
- package/lib/channels/delivery-policy.js.map +1 -0
- package/lib/channels/manager.d.ts +3 -2
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +40 -17
- package/lib/channels/manager.js.map +1 -1
- package/lib/channels/outbound-media.d.ts +6 -0
- package/lib/channels/outbound-media.d.ts.map +1 -0
- package/lib/channels/outbound-media.js +118 -0
- package/lib/channels/outbound-media.js.map +1 -0
- package/lib/client-api.d.ts +4 -0
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +1572 -1109
- package/lib/client.js.map +4 -4
- package/lib/collaboration/composition.d.ts +3 -1
- package/lib/collaboration/composition.d.ts.map +1 -1
- package/lib/collaboration/composition.js +47 -14
- package/lib/collaboration/composition.js.map +1 -1
- package/lib/collaboration/service.d.ts +7 -0
- package/lib/collaboration/service.d.ts.map +1 -1
- package/lib/collaboration/service.js +154 -44
- package/lib/collaboration/service.js.map +1 -1
- package/lib/collaboration/task-dispatch.d.ts +18 -0
- package/lib/collaboration/task-dispatch.d.ts.map +1 -0
- package/lib/collaboration/task-dispatch.js +44 -0
- package/lib/collaboration/task-dispatch.js.map +1 -0
- package/lib/collaboration/task-recovery.d.ts +8 -0
- package/lib/collaboration/task-recovery.d.ts.map +1 -0
- package/lib/collaboration/task-recovery.js +30 -0
- package/lib/collaboration/task-recovery.js.map +1 -0
- package/lib/companions/directory-cleanup.d.ts +4 -0
- package/lib/companions/directory-cleanup.d.ts.map +1 -0
- package/lib/companions/directory-cleanup.js +77 -0
- package/lib/companions/directory-cleanup.js.map +1 -0
- package/lib/companions/removal.d.ts +20 -0
- package/lib/companions/removal.d.ts.map +1 -0
- package/lib/companions/removal.js +84 -0
- package/lib/companions/removal.js.map +1 -0
- package/lib/companions/service.d.ts +3 -0
- package/lib/companions/service.d.ts.map +1 -1
- package/lib/companions/service.js +4 -0
- package/lib/companions/service.js.map +1 -1
- package/lib/companions/session-configuration.js +1 -1
- package/lib/companions/session-configuration.js.map +1 -1
- package/lib/companions/workspace-cleanup.d.ts +4 -0
- package/lib/companions/workspace-cleanup.d.ts.map +1 -0
- package/lib/companions/workspace-cleanup.js +37 -0
- package/lib/companions/workspace-cleanup.js.map +1 -0
- package/lib/daily-review.d.ts +1 -0
- package/lib/daily-review.d.ts.map +1 -1
- package/lib/daily-review.js +3 -0
- package/lib/daily-review.js.map +1 -1
- package/lib/domain.d.ts +2 -0
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js.map +1 -1
- package/lib/execution/agent-support.d.ts.map +1 -1
- package/lib/execution/agent-support.js +27 -3
- package/lib/execution/agent-support.js.map +1 -1
- package/lib/execution/service.d.ts +1 -0
- package/lib/execution/service.d.ts.map +1 -1
- package/lib/execution/service.js +10 -0
- package/lib/execution/service.js.map +1 -1
- package/lib/heartbeat.d.ts +1 -0
- package/lib/heartbeat.d.ts.map +1 -1
- package/lib/heartbeat.js +3 -0
- package/lib/heartbeat.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +22 -11
- package/lib/index.js.map +1 -1
- package/lib/pendant/renderer.d.ts +1 -0
- package/lib/pendant/renderer.d.ts.map +1 -1
- package/lib/pendant/renderer.js +4 -0
- package/lib/pendant/renderer.js.map +1 -1
- package/lib/pendant/widget.js +3 -1
- package/lib/pendant/widget.js.map +1 -1
- package/lib/pendant-renderer.js +6 -6
- package/lib/requirements/archive.d.ts +4 -0
- package/lib/requirements/archive.d.ts.map +1 -0
- package/lib/requirements/archive.js +14 -0
- package/lib/requirements/archive.js.map +1 -0
- package/lib/requirements/consolidation.d.ts +11 -0
- package/lib/requirements/consolidation.d.ts.map +1 -0
- package/lib/requirements/consolidation.js +50 -0
- package/lib/requirements/consolidation.js.map +1 -0
- package/lib/requirements/domain.d.ts +41 -0
- package/lib/requirements/domain.d.ts.map +1 -0
- package/lib/requirements/domain.js +2 -0
- package/lib/requirements/domain.js.map +1 -0
- package/lib/requirements/progress.d.ts +7 -0
- package/lib/requirements/progress.d.ts.map +1 -0
- package/lib/requirements/progress.js +17 -0
- package/lib/requirements/progress.js.map +1 -0
- package/lib/requirements/service.d.ts +23 -0
- package/lib/requirements/service.d.ts.map +1 -0
- package/lib/requirements/service.js +163 -0
- package/lib/requirements/service.js.map +1 -0
- package/lib/requirements/tool.d.ts +5 -0
- package/lib/requirements/tool.d.ts.map +1 -0
- package/lib/requirements/tool.js +49 -0
- package/lib/requirements/tool.js.map +1 -0
- package/lib/requirements/worker.d.ts +30 -0
- package/lib/requirements/worker.d.ts.map +1 -0
- package/lib/requirements/worker.js +164 -0
- package/lib/requirements/worker.js.map +1 -0
- package/lib/skills/builtin.d.ts.map +1 -1
- package/lib/skills/builtin.js +3 -2
- package/lib/skills/builtin.js.map +1 -1
- package/lib/skills/service.js +1 -1
- package/lib/skills/service.js.map +1 -1
- package/lib/skills/task-planning.d.ts +5 -0
- package/lib/skills/task-planning.d.ts.map +1 -0
- package/lib/skills/task-planning.js +47 -0
- package/lib/skills/task-planning.js.map +1 -0
- package/lib/store.d.ts +3 -0
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +10 -0
- package/lib/store.js.map +1 -1
- package/lib/tasks/context.d.ts +8 -0
- package/lib/tasks/context.d.ts.map +1 -0
- package/lib/tasks/context.js +48 -0
- package/lib/tasks/context.js.map +1 -0
- package/lib/tasks/domain.d.ts +12 -0
- package/lib/tasks/domain.d.ts.map +1 -1
- package/lib/tasks/progress-notifier.d.ts +4 -0
- package/lib/tasks/progress-notifier.d.ts.map +1 -0
- package/lib/tasks/progress-notifier.js +20 -0
- package/lib/tasks/progress-notifier.js.map +1 -0
- package/lib/tasks/removal.d.ts +5 -0
- package/lib/tasks/removal.d.ts.map +1 -0
- package/lib/tasks/removal.js +44 -0
- package/lib/tasks/removal.js.map +1 -0
- package/lib/tasks/requirement-link.d.ts +4 -0
- package/lib/tasks/requirement-link.d.ts.map +1 -0
- package/lib/tasks/requirement-link.js +11 -0
- package/lib/tasks/requirement-link.js.map +1 -0
- package/lib/tasks/service.d.ts +13 -5
- package/lib/tasks/service.d.ts.map +1 -1
- package/lib/tasks/service.js +113 -29
- package/lib/tasks/service.js.map +1 -1
- package/lib/ui/board-refresh.d.ts +3 -0
- package/lib/ui/board-refresh.d.ts.map +1 -0
- package/lib/ui/board-refresh.js +42 -0
- package/lib/ui/board-refresh.js.map +1 -0
- package/lib/ui/identity-editor.d.ts +11 -0
- package/lib/ui/identity-editor.d.ts.map +1 -0
- package/lib/ui/identity-editor.js +78 -0
- package/lib/ui/identity-editor.js.map +1 -0
- package/lib/ui/requirement-board.d.ts +5 -0
- package/lib/ui/requirement-board.d.ts.map +1 -0
- package/lib/ui/requirement-board.js +47 -0
- package/lib/ui/requirement-board.js.map +1 -0
- package/lib/ui/requirement-dialog.d.ts +15 -0
- package/lib/ui/requirement-dialog.d.ts.map +1 -0
- package/lib/ui/requirement-dialog.js +53 -0
- package/lib/ui/requirement-dialog.js.map +1 -0
- package/lib/ui/requirement-tasks-panel.d.ts +8 -0
- package/lib/ui/requirement-tasks-panel.d.ts.map +1 -0
- package/lib/ui/requirement-tasks-panel.js +269 -0
- package/lib/ui/requirement-tasks-panel.js.map +1 -0
- package/lib/ui/task-board-panel.d.ts +2 -4
- package/lib/ui/task-board-panel.d.ts.map +1 -1
- package/lib/ui/task-board-panel.js +2 -283
- package/lib/ui/task-board-panel.js.map +1 -1
- package/lib/ui/task-board-stage.d.ts +12 -0
- package/lib/ui/task-board-stage.d.ts.map +1 -0
- package/lib/ui/task-board-stage.js +13 -0
- package/lib/ui/task-board-stage.js.map +1 -0
- package/lib/ui/workspace-components.js +1 -1
- package/lib/ui/workspace-components.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,284 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { IconCheckOutline16, IconChevronRightOutline14, IconCloseOutline16, IconPlusOutline16, IconSearchOutline16, IconTrashOutline16 } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
|
-
import { api } from '../client-api.js';
|
|
5
|
-
import { CollectionSkeleton, WorkspaceDialog, WorkspaceHero, WorkspaceNotice, errorMessage } from './workspace-components.js';
|
|
6
|
-
const COLUMNS = [
|
|
7
|
-
{ id: 'backlog', label: '收集箱' }, { id: 'ready', label: '待开始' }, { id: 'doing', label: '进行中' },
|
|
8
|
-
{ id: 'review', label: '待验收' }, { id: 'blocked', label: '受阻' }, { id: 'done', label: '已完成' },
|
|
9
|
-
];
|
|
10
|
-
const LIVE_REFRESH_MS = 4_000;
|
|
11
|
-
export function TaskBoardPanel({ initialTaskId, openRequest } = {}) {
|
|
12
|
-
const [board, setBoard] = useState({ tasks: [], activities: [] });
|
|
13
|
-
const [directory, setDirectory] = useState([]);
|
|
14
|
-
const [delegations, setDelegations] = useState([]);
|
|
15
|
-
const [creating, setCreating] = useState(false);
|
|
16
|
-
const [selectedTaskId, setSelectedTaskId] = useState(initialTaskId);
|
|
17
|
-
useEffect(() => { if (initialTaskId)
|
|
18
|
-
setSelectedTaskId(initialTaskId); }, [initialTaskId, openRequest]);
|
|
19
|
-
const [busy, setBusy] = useState();
|
|
20
|
-
const [loading, setLoading] = useState(true);
|
|
21
|
-
const [error, setError] = useState();
|
|
22
|
-
const [syncedAt, setSyncedAt] = useState();
|
|
23
|
-
const [query, setQuery] = useState('');
|
|
24
|
-
const [statusFilter, setStatusFilter] = useState('all');
|
|
25
|
-
const [assigneeFilter, setAssigneeFilter] = useState('all');
|
|
26
|
-
const deferredQuery = useDeferredValue(query.trim().toLocaleLowerCase());
|
|
27
|
-
const tasksById = useMemo(() => new Map(board.tasks.map(item => [item.id, item])), [board.tasks]);
|
|
28
|
-
const directoryById = useMemo(() => new Map(directory.map(item => [item.id, item])), [directory]);
|
|
29
|
-
const activeDelegationByTaskId = useMemo(() => {
|
|
30
|
-
const result = new Map();
|
|
31
|
-
for (const delegation of delegations) {
|
|
32
|
-
if ((delegation.status === 'queued' || delegation.status === 'running') && !result.has(delegation.taskId))
|
|
33
|
-
result.set(delegation.taskId, delegation);
|
|
34
|
-
}
|
|
35
|
-
return result;
|
|
36
|
-
}, [delegations]);
|
|
37
|
-
const selectedTask = selectedTaskId ? tasksById.get(selectedTaskId) : undefined;
|
|
38
|
-
const dependentsById = useMemo(() => {
|
|
39
|
-
const result = new Map();
|
|
40
|
-
for (const task of board.tasks)
|
|
41
|
-
for (const dependencyId of task.dependencyTaskIds)
|
|
42
|
-
result.set(dependencyId, (result.get(dependencyId) ?? 0) + 1);
|
|
43
|
-
return result;
|
|
44
|
-
}, [board.tasks]);
|
|
45
|
-
const scopedTasks = useMemo(() => board.tasks.filter(task => {
|
|
46
|
-
if (assigneeFilter !== 'all' && (task.assigneeCompanionId ?? 'unassigned') !== assigneeFilter)
|
|
47
|
-
return false;
|
|
48
|
-
if (!deferredQuery)
|
|
49
|
-
return true;
|
|
50
|
-
const dependencies = task.dependencyTaskIds.map(id => tasksById.get(id)?.title ?? '');
|
|
51
|
-
return [task.title, task.description, task.resultAbstract, task.resultSummary, directoryById.get(task.assigneeCompanionId ?? '')?.name, ...dependencies]
|
|
52
|
-
.some(value => value?.toLocaleLowerCase().includes(deferredQuery));
|
|
53
|
-
}), [assigneeFilter, board.tasks, deferredQuery, directoryById, tasksById]);
|
|
54
|
-
const statusCounts = useMemo(() => {
|
|
55
|
-
const result = new Map(COLUMNS.map(column => [column.id, 0]));
|
|
56
|
-
for (const task of scopedTasks)
|
|
57
|
-
result.set(task.status, (result.get(task.status) ?? 0) + 1);
|
|
58
|
-
return result;
|
|
59
|
-
}, [scopedTasks]);
|
|
60
|
-
const visibleColumns = statusFilter === 'all' ? COLUMNS : COLUMNS.filter(column => column.id === statusFilter);
|
|
61
|
-
const tasksByStatus = useMemo(() => {
|
|
62
|
-
const priorityRank = { urgent: 3, high: 2, normal: 1, low: 0 };
|
|
63
|
-
const result = new Map(COLUMNS.map(column => [column.id, []]));
|
|
64
|
-
for (const task of scopedTasks) {
|
|
65
|
-
if (statusFilter !== 'all' && task.status !== statusFilter)
|
|
66
|
-
continue;
|
|
67
|
-
result.get(task.status)?.push(task);
|
|
68
|
-
}
|
|
69
|
-
for (const tasks of result.values())
|
|
70
|
-
tasks.sort((left, right) => priorityRank[right.priority] - priorityRank[left.priority] || right.updatedAt - left.updatedAt);
|
|
71
|
-
return result;
|
|
72
|
-
}, [scopedTasks, statusFilter]);
|
|
73
|
-
const visibleTaskCount = statusFilter === 'all' ? scopedTasks.length : (statusCounts.get(statusFilter) ?? 0);
|
|
74
|
-
const loadingRef = useRef(false);
|
|
75
|
-
const load = useCallback(async () => {
|
|
76
|
-
if (loadingRef.current)
|
|
77
|
-
return;
|
|
78
|
-
loadingRef.current = true;
|
|
79
|
-
try {
|
|
80
|
-
const [next, collaboration] = await Promise.all([api('/tasks'), api('/collaboration')]);
|
|
81
|
-
setBoard(next);
|
|
82
|
-
setDirectory(collaboration.companions);
|
|
83
|
-
setDelegations(collaboration.delegations);
|
|
84
|
-
setSyncedAt(Date.now());
|
|
85
|
-
setError(undefined);
|
|
86
|
-
}
|
|
87
|
-
catch (reason) {
|
|
88
|
-
setError(errorMessage(reason));
|
|
89
|
-
}
|
|
90
|
-
finally {
|
|
91
|
-
loadingRef.current = false;
|
|
92
|
-
setLoading(false);
|
|
93
|
-
}
|
|
94
|
-
}, []);
|
|
95
|
-
useEffect(() => {
|
|
96
|
-
void load();
|
|
97
|
-
const timer = window.setInterval(() => { if (document.visibilityState === 'visible')
|
|
98
|
-
void load(); }, LIVE_REFRESH_MS);
|
|
99
|
-
const visible = () => { if (document.visibilityState === 'visible')
|
|
100
|
-
void load(); };
|
|
101
|
-
document.addEventListener('visibilitychange', visible);
|
|
102
|
-
return () => { window.clearInterval(timer); document.removeEventListener('visibilitychange', visible); };
|
|
103
|
-
}, [load]);
|
|
104
|
-
const update = async (task, change) => {
|
|
105
|
-
setBusy(task.id);
|
|
106
|
-
setError(undefined);
|
|
107
|
-
try {
|
|
108
|
-
await api(`/tasks/${task.id}`, { method: 'PUT', body: JSON.stringify({ expectedRevision: task.revision, ...change }) });
|
|
109
|
-
await load();
|
|
110
|
-
}
|
|
111
|
-
catch (reason) {
|
|
112
|
-
setError(errorMessage(reason));
|
|
113
|
-
}
|
|
114
|
-
finally {
|
|
115
|
-
setBusy(undefined);
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
const delegate = async (task) => {
|
|
119
|
-
if (!task.assigneeCompanionId)
|
|
120
|
-
return;
|
|
121
|
-
setBusy(task.id);
|
|
122
|
-
setError(undefined);
|
|
123
|
-
try {
|
|
124
|
-
await api(`/tasks/${task.id}/delegate`, { method: 'POST', body: JSON.stringify({ to: task.assigneeCompanionId, request: task.description || `完成任务:${task.title}` }) });
|
|
125
|
-
await load();
|
|
126
|
-
}
|
|
127
|
-
catch (reason) {
|
|
128
|
-
setError(errorMessage(reason));
|
|
129
|
-
}
|
|
130
|
-
finally {
|
|
131
|
-
setBusy(undefined);
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
const review = async (task) => {
|
|
135
|
-
if (!task.reviewerCompanionId)
|
|
136
|
-
return;
|
|
137
|
-
setBusy(task.id);
|
|
138
|
-
setError(undefined);
|
|
139
|
-
try {
|
|
140
|
-
await api(`/tasks/${task.id}/review`, { method: 'POST', body: JSON.stringify({ to: task.reviewerCompanionId }) });
|
|
141
|
-
await load();
|
|
142
|
-
}
|
|
143
|
-
catch (reason) {
|
|
144
|
-
setError(errorMessage(reason));
|
|
145
|
-
}
|
|
146
|
-
finally {
|
|
147
|
-
setBusy(undefined);
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
const accept = async (task) => {
|
|
151
|
-
setBusy(task.id);
|
|
152
|
-
setError(undefined);
|
|
153
|
-
try {
|
|
154
|
-
await api(`/tasks/${task.id}/accept`, { method: 'POST' });
|
|
155
|
-
await load();
|
|
156
|
-
}
|
|
157
|
-
catch (reason) {
|
|
158
|
-
setError(errorMessage(reason));
|
|
159
|
-
}
|
|
160
|
-
finally {
|
|
161
|
-
setBusy(undefined);
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
const reject = async (task, reason) => {
|
|
165
|
-
if (!reason)
|
|
166
|
-
return;
|
|
167
|
-
setBusy(task.id);
|
|
168
|
-
setError(undefined);
|
|
169
|
-
try {
|
|
170
|
-
await api(`/tasks/${task.id}/reject`, { method: 'POST', body: JSON.stringify({ reason }) });
|
|
171
|
-
await load();
|
|
172
|
-
}
|
|
173
|
-
catch (cause) {
|
|
174
|
-
setError(errorMessage(cause));
|
|
175
|
-
}
|
|
176
|
-
finally {
|
|
177
|
-
setBusy(undefined);
|
|
178
|
-
}
|
|
179
|
-
};
|
|
180
|
-
const remove = async (task) => {
|
|
181
|
-
setBusy(task.id);
|
|
182
|
-
setError(undefined);
|
|
183
|
-
try {
|
|
184
|
-
await api(`/tasks/${task.id}`, { method: 'DELETE' });
|
|
185
|
-
if (selectedTaskId === task.id)
|
|
186
|
-
setSelectedTaskId(undefined);
|
|
187
|
-
await load();
|
|
188
|
-
}
|
|
189
|
-
catch (reason) {
|
|
190
|
-
setError(errorMessage(reason));
|
|
191
|
-
}
|
|
192
|
-
finally {
|
|
193
|
-
setBusy(undefined);
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
|
-
return _jsxs("div", { className: "dsh-partner-feature-page is-board", children: [_jsx(WorkspaceHero, { eyebrow: "Shared workspace", title: "\u4F19\u4F34\u4EFB\u52A1\u770B\u677F", detail: "\u627F\u63A5\u591A\u6B65\u3001\u4F9D\u8D56\u548C\u8DE8\u4F19\u4F34\u5DE5\u4F5C\u3002\u524D\u7F6E\u4EFB\u52A1\u5B8C\u6210\u540E\u624D\u80FD\u6267\u884C\uFF0C\u7ED3\u679C\u9A8C\u6536\u901A\u8FC7\u540E\u624D\u4F1A\u89E3\u9501\u540E\u7EED\u4EFB\u52A1\u3002", actions: _jsxs(_Fragment, { children: [_jsxs("span", { className: "dsh-partner-board-live", title: syncedAt ? `最近同步 ${new Date(syncedAt).toLocaleTimeString()}` : '正在连接', children: [_jsx("i", {}), "\u5B9E\u65F6\u540C\u6B65"] }), _jsxs("button", { type: "button", onClick: () => setCreating(true), children: [_jsx(IconPlusOutline16, { size: 15 }), "\u65B0\u4EFB\u52A1"] })] }) }), error && _jsx(WorkspaceNotice, { children: error }), creating && _jsx(WorkspaceDialog, { title: "\u65B0\u5EFA\u4EFB\u52A1", detail: "\u5199\u6E05\u76EE\u6807\u3001\u8D1F\u8D23\u4EBA\u548C\u9A8C\u6536\u8FB9\u754C\uFF1B\u53EA\u6709\u771F\u6B63\u5B58\u5728\u524D\u7F6E\u5173\u7CFB\u65F6\u624D\u6DFB\u52A0\u4F9D\u8D56\u3002", close: () => setCreating(false), width: "wide", children: _jsx(TaskForm, { companions: directory, tasks: board.tasks, close: () => setCreating(false), changed: load }) }), selectedTask && _jsx(WorkspaceDialog, { eyebrow: "TASK DETAIL", title: selectedTask.title, detail: taskDialogSummary(selectedTask, directory), close: () => setSelectedTaskId(undefined), width: "wide", children: _jsx(TaskDetail, { task: selectedTask, tasks: board.tasks, activities: board.activities.filter(item => item.taskId === selectedTask.id), directory: directory, execution: activeDelegationByTaskId.get(selectedTask.id), busy: busy === selectedTask.id, update: change => { void update(selectedTask, change); }, delegate: () => { void delegate(selectedTask); }, review: () => { void review(selectedTask); }, accept: () => { void accept(selectedTask); }, reject: reason => { void reject(selectedTask, reason); }, remove: () => { void remove(selectedTask); } }, selectedTask.id) }), loading ? _jsx(CollectionSkeleton, { rows: 6 }) : _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-partner-board-tools", children: [_jsxs("label", { className: "dsh-partner-board-search", children: [_jsx("span", { className: "sr-only", children: "\u641C\u7D22\u4EFB\u52A1" }), _jsx("span", { "aria-hidden": "true", children: _jsx(IconSearchOutline16, { size: 16 }) }), _jsx("input", { value: query, onChange: event => setQuery(event.target.value), placeholder: "\u641C\u7D22\u4EFB\u52A1\u3001\u8D1F\u8D23\u4EBA\u6216\u524D\u7F6E\u4EFB\u52A1" }), query && _jsx("button", { type: "button", onClick: () => setQuery(''), "aria-label": "\u6E05\u9664\u4EFB\u52A1\u641C\u7D22", children: _jsx(IconCloseOutline16, { size: 14 }) })] }), _jsxs("label", { className: "dsh-partner-board-assignee", children: [_jsx("span", { className: "sr-only", children: "\u6309\u8D1F\u8D23\u4EBA\u7B5B\u9009" }), _jsxs("select", { value: assigneeFilter, onChange: event => setAssigneeFilter(event.target.value), children: [_jsx("option", { value: "all", children: "\u5168\u90E8\u4F19\u4F34" }), _jsx("option", { value: "unassigned", children: "\u672A\u6307\u6D3E" }), directory.map(item => _jsxs("option", { value: item.id, children: ["@", item.name] }, item.id))] })] }), _jsxs("small", { "aria-live": "polite", children: ["\u663E\u793A ", visibleTaskCount, " / ", board.tasks.length] })] }), _jsxs("nav", { className: "dsh-partner-board-statuses", "aria-label": "\u6309\u4EFB\u52A1\u72B6\u6001\u7B5B\u9009", children: [_jsxs("button", { type: "button", className: statusFilter === 'all' ? 'is-active' : '', "aria-pressed": statusFilter === 'all', onClick: () => setStatusFilter('all'), children: [_jsx("span", { children: "\u5168\u90E8" }), _jsx("b", { children: scopedTasks.length })] }), COLUMNS.map(column => _jsxs("button", { type: "button", className: statusFilter === column.id ? 'is-active' : '', "aria-pressed": statusFilter === column.id, onClick: () => setStatusFilter(column.id), children: [_jsx("span", { children: column.label }), _jsx("b", { children: statusCounts.get(column.id) ?? 0 })] }, column.id))] }), _jsx("div", { className: "dsh-partner-board", "data-focused": statusFilter !== 'all', "aria-label": "\u4EFB\u52A1\u770B\u677F", children: visibleColumns.map(column => {
|
|
197
|
-
const tasks = tasksByStatus.get(column.id) ?? [];
|
|
198
|
-
const columnTitleId = `dsh-partner-board-${column.id}`;
|
|
199
|
-
return _jsxs("section", { "data-status": column.id, "data-empty": tasks.length === 0, "aria-labelledby": columnTitleId, children: [_jsxs("header", { children: [_jsx("strong", { id: columnTitleId, children: column.label }), _jsx("b", { children: tasks.length })] }), tasks.length > 0 ? _jsx("div", { className: "dsh-partner-board-column-list", children: tasks.map(task => _jsx(TaskCard, { task: task, tasksById: tasksById, directoryById: directoryById, dependentCount: dependentsById.get(task.id) ?? 0, execution: activeDelegationByTaskId.get(task.id), open: () => setSelectedTaskId(task.id) }, task.id)) }) : _jsx("p", { children: query || assigneeFilter !== 'all' ? '没有匹配任务' : '暂无任务' })] }, column.id);
|
|
200
|
-
}) })] })] });
|
|
201
|
-
}
|
|
202
|
-
function TaskCard({ task, tasksById, directoryById, dependentCount, execution, open }) {
|
|
203
|
-
const dependencies = task.dependencyTaskIds.map(id => tasksById.get(id)).filter((item) => item !== undefined);
|
|
204
|
-
const blockers = dependencies.filter(item => item.status !== 'done');
|
|
205
|
-
const completedDependencies = dependencies.length - blockers.length;
|
|
206
|
-
const assignee = directoryById.get(task.assigneeCompanionId ?? '');
|
|
207
|
-
const executionState = execution ? delegationState(execution) : undefined;
|
|
208
|
-
return _jsx("article", { className: "dsh-partner-task-card", "data-blocked": blockers.length > 0, "data-priority": task.priority, children: _jsxs("button", { type: "button", className: "dsh-partner-task-summary", "aria-haspopup": "dialog", onClick: open, children: [_jsxs("span", { children: [_jsxs("span", { className: "dsh-partner-task-card-title", children: [_jsx("strong", { title: task.title, children: task.title }), _jsx("em", { children: priorityLabel(task.priority) })] }), _jsxs("small", { className: "dsh-partner-task-card-owner", children: [assignee ? `@${assignee.name}` : '未指派', task.resultSummary ? ' · 已有结果' : '', executionState ? ` · ${executionState.label}` : ''] }), (dependencies.length > 0 || dependentCount > 0) && _jsxs("span", { className: "dsh-partner-task-relations", children: [dependencies.length > 0 && _jsxs("small", { "data-blocked": blockers.length > 0, children: ["\u524D\u7F6E ", completedDependencies, "/", dependencies.length] }), dependentCount > 0 && _jsxs("small", { children: ["\u5B8C\u6210\u540E\u89E3\u9501 ", dependentCount] })] })] }), _jsx(IconChevronRightOutline14, { size: 14 })] }) });
|
|
209
|
-
}
|
|
210
|
-
function TaskDetail({ task, tasks, activities, directory, execution, busy, update, delegate, review, accept, reject, remove }) {
|
|
211
|
-
const [rejecting, setRejecting] = useState(false);
|
|
212
|
-
const [rejectReason, setRejectReason] = useState('');
|
|
213
|
-
const [confirmingDelete, setConfirmingDelete] = useState(false);
|
|
214
|
-
const byId = useMemo(() => new Map(tasks.map(item => [item.id, item])), [tasks]);
|
|
215
|
-
const dependencies = task.dependencyTaskIds.map(id => byId.get(id)).filter((item) => item !== undefined);
|
|
216
|
-
const blockers = dependencies.filter(item => item.status !== 'done');
|
|
217
|
-
const assignee = directory.find(item => item.id === task.assigneeCompanionId);
|
|
218
|
-
const reviewer = directory.find(item => item.id === task.reviewerCompanionId);
|
|
219
|
-
const dependencyCandidates = tasks.filter(item => item.id !== task.id && !task.dependencyTaskIds.includes(item.id) && !dependsOn(item.id, task.id, byId));
|
|
220
|
-
const canExecute = Boolean(task.assigneeCompanionId) && blockers.length === 0 && !['doing', 'review', 'done'].includes(task.status);
|
|
221
|
-
const recentActivities = [...activities].sort((left, right) => right.at - left.at).slice(0, 6);
|
|
222
|
-
const executionState = execution ? delegationState(execution) : undefined;
|
|
223
|
-
return _jsxs("div", { className: "dsh-partner-task-detail", children: [_jsxs("section", { className: "dsh-partner-task-description", children: [_jsx("strong", { children: "\u4EFB\u52A1\u8BF4\u660E" }), _jsx("p", { children: task.description || '没有补充说明' })] }), _jsxs("div", { className: "dsh-partner-task-fields", children: [_jsxs("label", { children: [_jsx("span", { children: "\u72B6\u6001" }), _jsx("select", { value: task.status, disabled: busy, onChange: event => update({ status: event.target.value }), children: COLUMNS.map(item => _jsx("option", { value: item.id, disabled: (item.id === 'doing' || item.id === 'review' || item.id === 'done') && blockers.length > 0 || item.id === 'done' && task.status !== 'review' && task.status !== 'done', children: item.label }, item.id)) })] }), _jsxs("label", { children: [_jsx("span", { children: "\u8D1F\u8D23\u4EBA" }), _jsxs("select", { value: task.assigneeCompanionId ?? '', disabled: busy || task.status === 'doing', onChange: event => update({ assigneeCompanionId: event.target.value }), children: [_jsx("option", { value: "", children: "\u672A\u6307\u6D3E" }), directory.map(item => _jsxs("option", { value: item.id, children: ["@", item.name, " \u00B7 ", item.availability === 'busy' ? '忙碌' : '可用'] }, item.id))] })] }), _jsxs("label", { children: [_jsx("span", { children: "\u9A8C\u6536\u4F19\u4F34" }), _jsxs("select", { value: task.reviewerCompanionId ?? '', disabled: busy, onChange: event => update({ reviewerCompanionId: event.target.value }), children: [_jsx("option", { value: "", children: "\u7559\u7A7A \u00B7 \u4EBA\u5DE5\u9A8C\u6536" }), directory.map(item => _jsxs("option", { value: item.id, children: ["@", item.name] }, item.id))] })] })] }), executionState && _jsxs("section", { className: "dsh-partner-task-execution", "data-state": execution?.status, children: [_jsx("i", {}), _jsxs("span", { children: [_jsx("strong", { children: executionState.title }), _jsx("small", { children: executionState.detail })] })] }), _jsxs("section", { className: "dsh-partner-task-dependency", children: [_jsxs("header", { children: [_jsx("strong", { children: "\u524D\u7F6E\u4EFB\u52A1" }), _jsx("small", { children: blockers.length ? `${blockers.length} 项未完成,当前任务不能启动` : dependencies.length ? '已全部完成,可以启动' : '没有前置依赖' })] }), dependencies.length > 0 && _jsx("div", { children: dependencies.map(item => _jsxs("span", { "data-done": item.status === 'done', children: [_jsx("i", { children: item.status === 'done' ? _jsx(IconCheckOutline16, { size: 12 }) : '' }), _jsx("b", { children: item.title }), _jsx("button", { type: "button", disabled: busy || ['doing', 'review', 'done'].includes(task.status), "aria-label": `移除前置任务 ${item.title}`, onClick: () => update({ dependencyTaskIds: task.dependencyTaskIds.filter(id => id !== item.id) }), children: "\u79FB\u9664" })] }, item.id)) }), dependencyCandidates.length > 0 && _jsxs("label", { children: [_jsx("span", { className: "sr-only", children: "\u589E\u52A0\u524D\u7F6E\u4EFB\u52A1" }), _jsxs("select", { defaultValue: "", disabled: busy || ['doing', 'review', 'done'].includes(task.status), onChange: event => { const id = event.currentTarget.value; if (id)
|
|
224
|
-
update({ dependencyTaskIds: [...task.dependencyTaskIds, id] }); event.currentTarget.value = ''; }, children: [_jsx("option", { value: "", children: "\u589E\u52A0\u524D\u7F6E\u4EFB\u52A1\u2026" }), dependencyCandidates.map(item => _jsxs("option", { value: item.id, children: [item.title, " \u00B7 ", statusLabel(item.status)] }, item.id))] })] })] }), task.resultSummary && _jsx(ResultBlock, { label: "\u6267\u884C\u7ED3\u679C", value: task.resultSummary }), task.reviewSummary && _jsx(ResultBlock, { label: `核验意见${reviewer ? ` · @${reviewer.name}` : ''}`, value: task.reviewSummary }), recentActivities.length > 0 && _jsxs("section", { className: "dsh-partner-task-activity", children: [_jsx("strong", { children: "\u6700\u8FD1\u6D3B\u52A8" }), _jsx("ol", { children: recentActivities.map(item => _jsxs("li", { children: [_jsx("span", { children: item.message }), _jsx("time", { children: new Date(item.at).toLocaleString() })] }, item.id)) })] }), rejecting && _jsxs("form", { className: "dsh-partner-task-reject", onSubmit: event => { event.preventDefault(); const reason = rejectReason.trim(); if (!reason)
|
|
225
|
-
return; reject(reason); setRejecting(false); setRejectReason(''); }, children: [_jsxs("label", { children: [_jsx("span", { children: "\u6253\u56DE\u539F\u56E0" }), _jsx("textarea", { autoFocus: true, value: rejectReason, onChange: event => setRejectReason(event.target.value), rows: 3, maxLength: 1200, placeholder: "\u8BF4\u660E\u9700\u8981\u91CD\u505A\u6216\u8865\u5145\u7684\u5185\u5BB9" })] }), _jsxs("div", { children: [_jsx("button", { type: "button", onClick: () => { setRejecting(false); setRejectReason(''); }, children: "\u53D6\u6D88" }), _jsx("button", { type: "submit", className: "is-primary", disabled: busy || !rejectReason.trim(), children: "\u786E\u8BA4\u6253\u56DE" })] })] }), confirmingDelete && _jsxs("div", { className: "dsh-partner-task-delete-confirm", role: "alert", children: [_jsx("span", { children: "\u5220\u9664\u540E\uFF0C\u4F9D\u8D56\u5B83\u7684\u4EFB\u52A1\u4F1A\u89E3\u9664\u8FD9\u6761\u524D\u7F6E\u5173\u7CFB\u3002" }), _jsxs("div", { children: [_jsx("button", { type: "button", onClick: () => setConfirmingDelete(false), children: "\u53D6\u6D88" }), _jsx("button", { type: "button", className: "is-danger", disabled: busy, onClick: remove, children: "\u786E\u8BA4\u5220\u9664" })] })] }), _jsxs("footer", { className: "dsh-partner-task-actions", children: [_jsxs("small", { children: ["r", task.revision, " \u00B7 ", new Date(task.updatedAt).toLocaleString()] }), _jsxs("span", { children: [task.status === 'review' ? _jsxs(_Fragment, { children: [task.reviewerCompanionId && _jsx("button", { type: "button", disabled: busy, onClick: review, children: busy ? '核验中…' : `交给 @${reviewer?.name ?? '伙伴'} 核验` }), _jsx("button", { type: "button", disabled: busy, onClick: () => setRejecting(true), children: "\u6253\u56DE\u91CD\u505A" }), _jsx("button", { type: "button", className: "is-primary", disabled: busy, onClick: accept, children: "\u9A8C\u6536\u901A\u8FC7" })] }) : _jsx("button", { type: "button", disabled: busy || !canExecute, title: blockers.length ? '前置任务尚未完成' : !task.assigneeCompanionId ? '请先选择负责人' : undefined, onClick: delegate, children: busy ? '执行中…' : task.status === 'doing' ? '正在执行' : task.status === 'done' ? '已经完成' : `交给 @${assignee?.name ?? '伙伴'}` }), _jsx("button", { type: "button", className: "is-icon", "aria-label": `删除 ${task.title}`, "aria-expanded": confirmingDelete, disabled: busy, onClick: () => setConfirmingDelete(true), children: _jsx(IconTrashOutline16, { size: 14 }) })] })] })] });
|
|
226
|
-
}
|
|
227
|
-
function ResultBlock({ label, value }) {
|
|
228
|
-
return _jsxs("section", { className: "dsh-partner-task-result", children: [_jsx("strong", { children: label }), _jsx("p", { children: value })] });
|
|
229
|
-
}
|
|
230
|
-
function TaskForm({ companions, tasks, close, changed }) {
|
|
231
|
-
const [error, setError] = useState();
|
|
232
|
-
const [busy, setBusy] = useState(false);
|
|
233
|
-
const dependencyOptions = tasks.filter(item => item.status !== 'done');
|
|
234
|
-
const submit = async (event) => {
|
|
235
|
-
event.preventDefault();
|
|
236
|
-
const data = new FormData(event.currentTarget);
|
|
237
|
-
setBusy(true);
|
|
238
|
-
setError(undefined);
|
|
239
|
-
try {
|
|
240
|
-
await api('/tasks', { method: 'POST', body: JSON.stringify({
|
|
241
|
-
title: data.get('title'), description: data.get('description'), priority: data.get('priority'), status: 'backlog',
|
|
242
|
-
assigneeCompanionId: data.get('assignee') || undefined, reviewerCompanionId: data.get('reviewer') || undefined,
|
|
243
|
-
dependencyTaskIds: data.getAll('dependencyTaskId'),
|
|
244
|
-
}) });
|
|
245
|
-
await changed();
|
|
246
|
-
close();
|
|
247
|
-
}
|
|
248
|
-
catch (reason) {
|
|
249
|
-
setError(errorMessage(reason));
|
|
250
|
-
}
|
|
251
|
-
finally {
|
|
252
|
-
setBusy(false);
|
|
253
|
-
}
|
|
254
|
-
};
|
|
255
|
-
return _jsxs("form", { className: "dsh-partner-task-form", "aria-busy": busy, onSubmit: event => { void submit(event); }, children: [_jsxs("label", { children: [_jsx("span", { children: "\u4EFB\u52A1\u540D\u79F0" }), _jsx("input", { name: "title", maxLength: 200, required: true, autoFocus: true, placeholder: "\u4E00\u53E5\u8BDD\u8BF4\u660E\u4EA4\u4ED8\u76EE\u6807" })] }), _jsxs("label", { children: [_jsx("span", { children: "\u8D1F\u8D23\u4EBA" }), _jsxs("select", { name: "assignee", defaultValue: "", children: [_jsx("option", { value: "", children: "\u672A\u6307\u6D3E" }), companions.map(item => _jsxs("option", { value: item.id, children: ["@", item.name] }, item.id))] })] }), _jsxs("label", { className: "is-wide", children: [_jsx("span", { children: "\u4EFB\u52A1\u8BF4\u660E" }), _jsx("textarea", { name: "description", maxLength: 8000, rows: 5, placeholder: "\u8865\u5145\u80CC\u666F\u3001\u4EA4\u4ED8\u7269\u548C\u5B8C\u6210\u6761\u4EF6" })] }), _jsxs("label", { children: [_jsx("span", { children: "\u4F18\u5148\u7EA7" }), _jsxs("select", { name: "priority", defaultValue: "normal", children: [_jsx("option", { value: "low", children: "\u4F4E" }), _jsx("option", { value: "normal", children: "\u666E\u901A" }), _jsx("option", { value: "high", children: "\u9AD8" }), _jsx("option", { value: "urgent", children: "\u7D27\u6025" })] })] }), _jsxs("label", { children: [_jsx("span", { children: "\u9A8C\u6536\u4F19\u4F34" }), _jsxs("select", { name: "reviewer", defaultValue: "", children: [_jsx("option", { value: "", children: "\u7559\u7A7A \u00B7 \u4EBA\u5DE5\u9A8C\u6536" }), companions.map(item => _jsxs("option", { value: item.id, children: ["@", item.name] }, item.id))] })] }), _jsxs("div", { className: "dsh-partner-task-form-dependencies is-wide", children: [_jsxs("span", { children: ["\u4F9D\u8D56\u4EFB\u52A1 ", _jsx("small", { children: "\u53EF\u9009" })] }), dependencyOptions.length > 0 ? _jsx("div", { children: dependencyOptions.map(item => _jsxs("label", { children: [_jsx("input", { type: "checkbox", name: "dependencyTaskId", value: item.id }), _jsx("i", {}), _jsx("span", { children: item.title }), _jsx("small", { children: statusLabel(item.status) })] }, item.id)) }) : _jsx("p", { children: "\u5F53\u524D\u6CA1\u6709\u53EF\u9009\u7684\u672A\u5B8C\u6210\u4EFB\u52A1" }), _jsx("small", { children: "\u53EF\u4EE5\u9009\u62E9\u591A\u4E2A\uFF1B\u7559\u7A7A\u8868\u793A\u8BE5\u4EFB\u52A1\u4E0D\u4F9D\u8D56\u5176\u4ED6\u4EFB\u52A1\u3002" })] }), error && _jsx(WorkspaceNotice, { children: error }), _jsxs("footer", { children: [_jsx("button", { type: "button", disabled: busy, onClick: close, children: "\u53D6\u6D88" }), _jsxs("button", { type: "submit", className: "is-primary", disabled: busy, children: [_jsx(IconPlusOutline16, { size: 14 }), busy ? '创建中…' : '创建任务'] })] })] });
|
|
256
|
-
}
|
|
257
|
-
function dependsOn(candidateId, targetId, tasks, visited = new Set()) {
|
|
258
|
-
if (candidateId === targetId)
|
|
259
|
-
return true;
|
|
260
|
-
if (visited.has(candidateId))
|
|
261
|
-
return false;
|
|
262
|
-
visited.add(candidateId);
|
|
263
|
-
return (tasks.get(candidateId)?.dependencyTaskIds ?? []).some(id => dependsOn(id, targetId, tasks, visited));
|
|
264
|
-
}
|
|
265
|
-
function statusLabel(value) { return COLUMNS.find(item => item.id === value)?.label ?? value; }
|
|
266
|
-
function taskDialogSummary(task, directory) {
|
|
267
|
-
const assignee = directory.find(item => item.id === task.assigneeCompanionId);
|
|
268
|
-
return `${statusLabel(task.status)} · ${assignee ? `负责人 @${assignee.name}` : '尚未指派负责人'} · ${priorityLabel(task.priority)}`;
|
|
269
|
-
}
|
|
270
|
-
function priorityLabel(value) { return ({ low: '低优先级', normal: '普通优先级', high: '高优先级', urgent: '紧急' })[value]; }
|
|
271
|
-
function delegationState(value) {
|
|
272
|
-
const review = value.kind === 'review';
|
|
273
|
-
if (value.status === 'queued') {
|
|
274
|
-
const at = value.nextAttemptAt ? new Date(value.nextAttemptAt).toLocaleString() : '稍后';
|
|
275
|
-
return { label: '等待自动恢复', title: review ? '验收将在连接恢复后继续' : '任务将在连接恢复后继续', detail: `${at} 自动重试${value.error ? ` · ${value.error}` : ''}` };
|
|
276
|
-
}
|
|
277
|
-
const recovered = (value.attempts ?? 1) > 1;
|
|
278
|
-
return {
|
|
279
|
-
label: recovered ? `第 ${value.attempts} 次恢复中` : review ? '伙伴验收中' : '伙伴执行中',
|
|
280
|
-
title: recovered ? (review ? '正在恢复伙伴验收' : '正在恢复伙伴任务') : review ? '伙伴正在核验结果' : '伙伴正在执行任务',
|
|
281
|
-
detail: recovered ? '会先检查已有产出,避免重复写入或重复发布。' : '执行状态会自动同步,无需手动刷新。',
|
|
282
|
-
};
|
|
283
|
-
}
|
|
1
|
+
/** Stable workspace entry; requirement navigation owns the board hierarchy. */
|
|
2
|
+
export { RequirementBoard as TaskBoardPanel } from './requirement-board.js';
|
|
284
3
|
//# sourceMappingURL=task-board-panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-board-panel.js","sourceRoot":"","sources":["../../src/ui/task-board-panel.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-board-panel.js","sourceRoot":"","sources":["../../src/ui/task-board-panel.tsx"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { BoardTaskStatusView, BoardTaskView } from '../client-api.js';
|
|
3
|
+
/** Bounded progressive disclosure; a single page scroll, no tiny inner scroll box. */
|
|
4
|
+
export declare function TaskBoardStage({ id, label, tasks, focused, filtered, renderTask }: {
|
|
5
|
+
id: BoardTaskStatusView;
|
|
6
|
+
label: string;
|
|
7
|
+
tasks: BoardTaskView[];
|
|
8
|
+
focused: boolean;
|
|
9
|
+
filtered: boolean;
|
|
10
|
+
renderTask(task: BoardTaskView): ReactNode;
|
|
11
|
+
}): JSX.Element;
|
|
12
|
+
//# sourceMappingURL=task-board-stage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-board-stage.d.ts","sourceRoot":"","sources":["../../src/ui/task-board-stage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAE1E,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE;IAClF,EAAE,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;IACnG,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAAA;CAC3C,GAAG,GAAG,CAAC,OAAO,CAiBd"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { IconChevronRightOutline14 } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
|
+
/** Bounded progressive disclosure; a single page scroll, no tiny inner scroll box. */
|
|
5
|
+
export function TaskBoardStage({ id, label, tasks, focused, filtered, renderTask }) {
|
|
6
|
+
const [collapsed, setCollapsed] = useState(false);
|
|
7
|
+
const [limit, setLimit] = useState(6);
|
|
8
|
+
const count = Math.max(limit, focused ? 12 : 6);
|
|
9
|
+
const titleId = `dsh-partner-board-${id}`, listId = `${titleId}-list`;
|
|
10
|
+
const expanded = !collapsed;
|
|
11
|
+
return _jsxs("section", { "data-status": id, "data-empty": tasks.length === 0, "aria-labelledby": titleId, children: [_jsx("header", { children: _jsxs("button", { type: "button", className: "dsh-partner-board-stage-toggle", "aria-expanded": expanded, "aria-controls": listId, onClick: () => setCollapsed(value => !value), children: [_jsx(IconChevronRightOutline14, { size: 14 }), _jsx("strong", { id: titleId, children: label }), _jsx("b", { children: tasks.length })] }) }), _jsx("div", { id: listId, hidden: !expanded, children: tasks.length > 0 ? _jsxs(_Fragment, { children: [_jsx("div", { className: "dsh-partner-board-column-list", children: tasks.slice(0, count).map(renderTask) }), tasks.length > count && _jsxs("button", { type: "button", className: "dsh-partner-board-more", onClick: () => setLimit(count + 12), children: ["\u5C55\u5F00\u66F4\u591A \u00B7 \u8FD8\u6709 ", tasks.length - count, " \u9879"] })] }) : _jsx("p", { className: "dsh-partner-board-empty", children: filtered ? '没有匹配任务' : '暂无任务' }) })] });
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=task-board-stage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-board-stage.js","sourceRoot":"","sources":["../../src/ui/task-board-stage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAGjF,sFAAsF;AACtF,MAAM,UAAU,cAAc,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAG/E;IACC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,qBAAqB,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,OAAO,OAAO,CAAA;IACrE,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAA;IAC3B,OAAO,kCAAsB,EAAE,gBAAc,KAAK,CAAC,MAAM,KAAK,CAAC,qBAAmB,OAAO,aACvF,2BAAQ,kBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,gCAAgC,mBAAgB,QAAQ,mBAAiB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,aACnK,KAAC,yBAAyB,IAAC,IAAI,EAAE,EAAE,GAAI,EAAA,iBAAQ,EAAE,EAAE,OAAO,YAAG,KAAK,GAAU,EAAA,sBAAI,KAAK,CAAC,MAAM,GAAK,IAC1F,GAAS,EAClB,cAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,QAAQ,YAC/B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,8BAClB,cAAK,SAAS,EAAC,+BAA+B,YAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAO,EAC3F,KAAK,CAAC,MAAM,GAAG,KAAK,IAAI,kBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,wBAAwB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,8DAAa,KAAK,CAAC,MAAM,GAAG,KAAK,eAAY,IACjK,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,yBAAyB,YAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAK,GAC3E,IACE,CAAA;AACZ,CAAC"}
|
|
@@ -28,7 +28,7 @@ export function WorkspaceDialog({ eyebrow = 'CREATE & CONFIGURE', title, detail,
|
|
|
28
28
|
}
|
|
29
29
|
if (event.key !== 'Tab')
|
|
30
30
|
return;
|
|
31
|
-
const focusable = [...(panelRef.current?.querySelectorAll('button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])') ?? [])];
|
|
31
|
+
const focusable = [...(panelRef.current?.querySelectorAll('button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), summary, [tabindex]:not([tabindex="-1"])') ?? [])].filter(node => node.getClientRects().length > 0);
|
|
32
32
|
if (focusable.length === 0)
|
|
33
33
|
return;
|
|
34
34
|
const first = focusable[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-components.js","sourceRoot":"","sources":["../../src/ui/workspace-components.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAsC,MAAM,OAAO,CAAA;AACpF,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAEpG,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAA2E;IACxI,OAAO,kBAAQ,SAAS,EAAC,0BAA0B,aACjD,2BAAM,0BAAQ,OAAO,GAAS,EAAA,uBAAK,KAAK,GAAM,EAAA,sBAAI,MAAM,GAAK,IAAO,EACnE,OAAO,IAAI,cAAK,SAAS,EAAC,kCAAkC,YAAE,OAAO,GAAO,IACtE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAoG;IACnL,OAAO,mBAAS,SAAS,EAAE,4BAA4B,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,aACvF,6BAAQ,2BAAM,2BAAS,KAAK,GAAU,EAAC,MAAM,IAAI,0BAAQ,MAAM,GAAS,IAAQ,EAAC,OAAO,IAAI,wBAAM,OAAO,GAAO,IAAU,EACzH,QAAQ,IACD,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,GAAG,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,EAAuH;IACxO,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IACvB,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;IACxB,MAAM,QAAQ,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAChD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,YAAY,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE;YACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAA;YAC9B,MAAM,MAAM,GAAG,KAAK,EAAE,aAAa,CAAc,aAAa,CAAC,IAAI,KAAK,EAAE,aAAa,CAAc,iCAAiC,CAAC,CAAA;YACvI,MAAM,EAAE,KAAK,EAAE,CAAA;QACjB,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAA,CAAC,CAAC,CAAA;IACjE,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,MAAM,OAAO,GAAG,CAAC,KAAiC,EAAQ,EAAE;QAC1D,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAAC,KAAK,EAAE,CAAC;YAAC,OAAM;QAAC,CAAC;QACvE,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;YAAE,OAAM;QAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAc,
|
|
1
|
+
{"version":3,"file":"workspace-components.js","sourceRoot":"","sources":["../../src/ui/workspace-components.tsx"],"names":[],"mappings":"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"}
|