@lemoncat7/dsh-partner 1.9.2 → 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.
Files changed (136) hide show
  1. package/README.md +12 -1
  2. package/docs/architecture.md +14 -0
  3. package/lib/agent-runtime.d.ts +3 -2
  4. package/lib/agent-runtime.d.ts.map +1 -1
  5. package/lib/agent-runtime.js +24 -66
  6. package/lib/agent-runtime.js.map +1 -1
  7. package/lib/api/features/workspace-api.d.ts +2 -0
  8. package/lib/api/features/workspace-api.d.ts.map +1 -1
  9. package/lib/api/features/workspace-api.js +49 -2
  10. package/lib/api/features/workspace-api.js.map +1 -1
  11. package/lib/api.d.ts +2 -0
  12. package/lib/api.d.ts.map +1 -1
  13. package/lib/api.js.map +1 -1
  14. package/lib/channels/delivery-policy.d.ts +7 -0
  15. package/lib/channels/delivery-policy.d.ts.map +1 -1
  16. package/lib/channels/delivery-policy.js +44 -9
  17. package/lib/channels/delivery-policy.js.map +1 -1
  18. package/lib/channels/manager.d.ts +2 -0
  19. package/lib/channels/manager.d.ts.map +1 -1
  20. package/lib/channels/manager.js +36 -9
  21. package/lib/channels/manager.js.map +1 -1
  22. package/lib/channels/outbound-media.d.ts +6 -0
  23. package/lib/channels/outbound-media.d.ts.map +1 -0
  24. package/lib/channels/outbound-media.js +118 -0
  25. package/lib/channels/outbound-media.js.map +1 -0
  26. package/lib/client-api.d.ts +3 -0
  27. package/lib/client-api.d.ts.map +1 -1
  28. package/lib/client-api.js.map +1 -1
  29. package/lib/client.d.ts.map +1 -1
  30. package/lib/client.js +1424 -1067
  31. package/lib/client.js.map +4 -4
  32. package/lib/collaboration/composition.d.ts +3 -1
  33. package/lib/collaboration/composition.d.ts.map +1 -1
  34. package/lib/collaboration/composition.js +30 -13
  35. package/lib/collaboration/composition.js.map +1 -1
  36. package/lib/collaboration/service.d.ts +3 -0
  37. package/lib/collaboration/service.d.ts.map +1 -1
  38. package/lib/collaboration/service.js +46 -10
  39. package/lib/collaboration/service.js.map +1 -1
  40. package/lib/domain.d.ts +2 -0
  41. package/lib/domain.d.ts.map +1 -1
  42. package/lib/domain.js.map +1 -1
  43. package/lib/execution/agent-support.d.ts.map +1 -1
  44. package/lib/execution/agent-support.js +27 -3
  45. package/lib/execution/agent-support.js.map +1 -1
  46. package/lib/execution/service.d.ts +1 -0
  47. package/lib/execution/service.d.ts.map +1 -1
  48. package/lib/execution/service.js +8 -0
  49. package/lib/execution/service.js.map +1 -1
  50. package/lib/index.d.ts.map +1 -1
  51. package/lib/index.js +19 -3
  52. package/lib/index.js.map +1 -1
  53. package/lib/pendant/renderer.d.ts +1 -0
  54. package/lib/pendant/renderer.d.ts.map +1 -1
  55. package/lib/pendant/renderer.js +4 -0
  56. package/lib/pendant/renderer.js.map +1 -1
  57. package/lib/pendant/widget.js +3 -1
  58. package/lib/pendant/widget.js.map +1 -1
  59. package/lib/pendant-renderer.js +6 -6
  60. package/lib/requirements/archive.d.ts +4 -0
  61. package/lib/requirements/archive.d.ts.map +1 -0
  62. package/lib/requirements/archive.js +14 -0
  63. package/lib/requirements/archive.js.map +1 -0
  64. package/lib/requirements/consolidation.d.ts +11 -0
  65. package/lib/requirements/consolidation.d.ts.map +1 -0
  66. package/lib/requirements/consolidation.js +50 -0
  67. package/lib/requirements/consolidation.js.map +1 -0
  68. package/lib/requirements/domain.d.ts +41 -0
  69. package/lib/requirements/domain.d.ts.map +1 -0
  70. package/lib/requirements/domain.js +2 -0
  71. package/lib/requirements/domain.js.map +1 -0
  72. package/lib/requirements/progress.d.ts +7 -0
  73. package/lib/requirements/progress.d.ts.map +1 -0
  74. package/lib/requirements/progress.js +17 -0
  75. package/lib/requirements/progress.js.map +1 -0
  76. package/lib/requirements/service.d.ts +23 -0
  77. package/lib/requirements/service.d.ts.map +1 -0
  78. package/lib/requirements/service.js +163 -0
  79. package/lib/requirements/service.js.map +1 -0
  80. package/lib/requirements/tool.d.ts +5 -0
  81. package/lib/requirements/tool.d.ts.map +1 -0
  82. package/lib/requirements/tool.js +49 -0
  83. package/lib/requirements/tool.js.map +1 -0
  84. package/lib/requirements/worker.d.ts +30 -0
  85. package/lib/requirements/worker.d.ts.map +1 -0
  86. package/lib/requirements/worker.js +164 -0
  87. package/lib/requirements/worker.js.map +1 -0
  88. package/lib/skills/builtin.js +2 -2
  89. package/lib/skills/builtin.js.map +1 -1
  90. package/lib/skills/task-planning.d.ts +3 -1
  91. package/lib/skills/task-planning.d.ts.map +1 -1
  92. package/lib/skills/task-planning.js +29 -13
  93. package/lib/skills/task-planning.js.map +1 -1
  94. package/lib/store.js +2 -0
  95. package/lib/store.js.map +1 -1
  96. package/lib/tasks/context.d.ts +8 -0
  97. package/lib/tasks/context.d.ts.map +1 -0
  98. package/lib/tasks/context.js +48 -0
  99. package/lib/tasks/context.js.map +1 -0
  100. package/lib/tasks/domain.d.ts +10 -0
  101. package/lib/tasks/domain.d.ts.map +1 -1
  102. package/lib/tasks/removal.d.ts +5 -0
  103. package/lib/tasks/removal.d.ts.map +1 -0
  104. package/lib/tasks/removal.js +44 -0
  105. package/lib/tasks/removal.js.map +1 -0
  106. package/lib/tasks/requirement-link.d.ts +4 -0
  107. package/lib/tasks/requirement-link.d.ts.map +1 -0
  108. package/lib/tasks/requirement-link.js +11 -0
  109. package/lib/tasks/requirement-link.js.map +1 -0
  110. package/lib/tasks/service.d.ts +13 -5
  111. package/lib/tasks/service.d.ts.map +1 -1
  112. package/lib/tasks/service.js +91 -27
  113. package/lib/tasks/service.js.map +1 -1
  114. package/lib/ui/board-refresh.d.ts +3 -0
  115. package/lib/ui/board-refresh.d.ts.map +1 -0
  116. package/lib/ui/board-refresh.js +42 -0
  117. package/lib/ui/board-refresh.js.map +1 -0
  118. package/lib/ui/requirement-board.d.ts +5 -0
  119. package/lib/ui/requirement-board.d.ts.map +1 -0
  120. package/lib/ui/requirement-board.js +47 -0
  121. package/lib/ui/requirement-board.js.map +1 -0
  122. package/lib/ui/requirement-dialog.d.ts +15 -0
  123. package/lib/ui/requirement-dialog.d.ts.map +1 -0
  124. package/lib/ui/requirement-dialog.js +53 -0
  125. package/lib/ui/requirement-dialog.js.map +1 -0
  126. package/lib/ui/requirement-tasks-panel.d.ts +8 -0
  127. package/lib/ui/requirement-tasks-panel.d.ts.map +1 -0
  128. package/lib/ui/requirement-tasks-panel.js +269 -0
  129. package/lib/ui/requirement-tasks-panel.js.map +1 -0
  130. package/lib/ui/task-board-panel.d.ts +2 -4
  131. package/lib/ui/task-board-panel.d.ts.map +1 -1
  132. package/lib/ui/task-board-panel.js +2 -288
  133. package/lib/ui/task-board-panel.js.map +1 -1
  134. package/lib/ui/workspace-components.js +1 -1
  135. package/lib/ui/workspace-components.js.map +1 -1
  136. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement-dialog.d.ts","sourceRoot":"","sources":["../../src/ui/requirement-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,aAAa,EAAE,KAAK,yBAAyB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGhH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAG/D;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAAE,SAAS,EAAE,yBAAyB,EAAE,CAAC;IAAC,KAAK,IAAI,IAAI,CAAC;IAAC,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAcpL;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,SAAS,EAAE,yBAAyB,EAAE,CAAC;IAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAuB7N"}
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { IconTrashOutline16 } from '@deepseek-ai/dsh-client-ui-primitives';
4
+ import { api } from '../client-api.js';
5
+ import { WorkspaceNotice, errorMessage } from './workspace-components.js';
6
+ export function requirementStatus(item) {
7
+ if (item.lastError)
8
+ return item.status === 'done' ? '已归档 · 通知待重试' : '收尾待重试';
9
+ return { planning: '规划中', active: '推进中', review: '汇总中', done: '已归档' }[item.status];
10
+ }
11
+ export function RequirementForm({ directory, close, created }) {
12
+ const [busy, setBusy] = useState(false), [error, setError] = useState();
13
+ const submit = async (event) => {
14
+ event.preventDefault();
15
+ const data = new FormData(event.currentTarget);
16
+ setBusy(true);
17
+ setError(undefined);
18
+ try {
19
+ const item = await api('/requirements', { method: 'POST', body: JSON.stringify({ title: data.get('title'), description: data.get('description'), ownerCompanionId: data.get('owner') || undefined }) });
20
+ await created(item);
21
+ }
22
+ catch (reason) {
23
+ setError(errorMessage(reason));
24
+ }
25
+ finally {
26
+ setBusy(false);
27
+ }
28
+ };
29
+ return _jsxs("form", { className: "dsh-partner-task-form", "aria-busy": busy, onSubmit: event => { void submit(event); }, children: [error && _jsx(WorkspaceNotice, { children: error }), _jsxs("label", { className: "is-wide", children: [_jsx("span", { children: "\u9700\u6C42\u540D\u79F0" }), _jsx("input", { name: "title", autoFocus: true, required: true, maxLength: 200, placeholder: "\u8FD9\u6B21\u5E0C\u671B\u5B8C\u6210\u4EC0\u4E48" })] }), _jsxs("label", { className: "is-wide", children: [_jsx("span", { children: "\u4EA4\u4ED8\u76EE\u6807" }), _jsx("textarea", { name: "description", rows: 5, maxLength: 8000, placeholder: "\u80CC\u666F\u3001\u9884\u671F\u6210\u679C\u4E0E\u6574\u4F53\u5B8C\u6210\u6807\u51C6" })] }), _jsxs("label", { className: "is-wide", children: [_jsx("span", { children: "\u6536\u5C3E\u8D1F\u8D23\u4EBA" }), _jsxs("select", { name: "owner", defaultValue: "", children: [_jsx("option", { value: "", children: "\u4EBA\u5DE5\u6C47\u603B" }), directory.map(c => _jsxs("option", { value: c.id, children: ["@", c.name] }, c.id))] }), _jsx("small", { children: "\u5B50\u4EFB\u52A1\u5168\u90E8\u901A\u8FC7\u9A8C\u6536\u540E\uFF0C\u7531\u8BE5\u4F19\u4F34\u603B\u7ED3\u5E76\u901A\u8FC7\u9700\u6C42\u6765\u6E90\u6E20\u9053\u901A\u77E5\u3002" })] }), _jsxs("footer", { children: [_jsx("button", { type: "button", onClick: close, disabled: busy, children: "\u53D6\u6D88" }), _jsx("button", { type: "submit", className: "is-primary", disabled: busy, children: busy ? '创建中…' : '创建并安排任务' })] })] });
30
+ }
31
+ export function RequirementDetail({ item, tasks, directory, changed, close }) {
32
+ const [busy, setBusy] = useState(false), [error, setError] = useState(), [confirming, setConfirming] = useState(false), [summary, setSummary] = useState('');
33
+ const done = tasks.filter(t => t.status === 'done').length, ready = tasks.length > 0 && done === tasks.length && item.status !== 'planning';
34
+ const act = async (action, body = {}) => {
35
+ setBusy(true);
36
+ setError(undefined);
37
+ try {
38
+ await api(`/requirements/${item.id}${action === 'remove' ? '' : `/${action}`}`, { method: action === 'remove' ? 'DELETE' : 'POST', body: JSON.stringify({ expectedRevision: item.revision, ...body }) });
39
+ if (action === 'remove')
40
+ close();
41
+ await changed();
42
+ }
43
+ catch (reason) {
44
+ await changed();
45
+ setError(errorMessage(reason));
46
+ }
47
+ finally {
48
+ setBusy(false);
49
+ }
50
+ };
51
+ return _jsxs("div", { className: "dsh-partner-task-detail dsh-partner-requirement-detail", "aria-busy": busy, children: [error && _jsx(WorkspaceNotice, { children: error }), _jsxs("section", { className: "dsh-partner-task-description", children: [_jsx("strong", { children: "\u4EA4\u4ED8\u76EE\u6807" }), _jsx("p", { children: item.description || '未补充交付目标' })] }), _jsxs("div", { className: "dsh-partner-requirement-facts", children: [_jsxs("span", { children: ["\u6536\u5C3E\u8D1F\u8D23\u4EBA", _jsx("b", { children: directory.find(c => c.id === item.ownerCompanionId)?.name ?? '人工汇总' })] }), _jsxs("span", { children: ["\u5B50\u4EFB\u52A1\u9A8C\u6536", _jsx("b", { children: item.status === 'done' ? `${item.results?.length ?? done} 项已归档` : `${done} / ${tasks.length}` })] }), _jsxs("span", { children: ["\u901A\u77E5\u65B9\u5F0F", _jsx("b", { children: item.creatorSessionId ? '需求来源会话 / 渠道' : '看板内查看结果' })] })] }), item.lastError && _jsxs(WorkspaceNotice, { children: [item.lastError, " \u00B7 \u7CFB\u7EDF\u4F1A\u81EA\u52A8\u91CD\u8BD5\uFF0C\u4E5F\u53EF\u7ACB\u5373\u91CD\u8BD5\u3002", _jsx("button", { type: "button", disabled: busy, onClick: () => { void act('retry'); }, children: "\u7ACB\u5373\u91CD\u8BD5" })] }), item.summary && _jsxs("section", { className: "dsh-partner-task-result", children: [_jsx("strong", { children: "\u6700\u7EC8\u7ED3\u8BBA" }), _jsx("p", { children: item.summary })] }), !!item.results?.length && _jsxs("details", { className: "dsh-partner-requirement-disclosure", children: [_jsxs("summary", { children: ["\u4EA4\u4ED8\u8BB0\u5F55 \u00B7 ", item.results.length, " \u9879"] }), item.results.map(result => _jsxs("section", { className: "dsh-partner-task-result", children: [_jsx("strong", { children: result.title }), _jsx("p", { children: result.resultSummary || result.resultAbstract || '未提供结果正文' })] }, result.id))] }), item.status !== 'done' && _jsxs(_Fragment, { children: [_jsxs("label", { className: "dsh-partner-requirement-owner", children: [_jsx("span", { children: "\u8C03\u6574\u6536\u5C3E\u8D1F\u8D23\u4EBA" }), _jsxs("select", { "aria-label": "\u6536\u5C3E\u8D1F\u8D23\u4EBA", value: item.ownerCompanionId ?? '', disabled: busy, onChange: event => { void act('owner', { ownerCompanionId: event.target.value }); }, children: [_jsx("option", { value: "", children: "\u4EBA\u5DE5\u6C47\u603B" }), item.ownerCompanionId && !directory.some(c => c.id === item.ownerCompanionId) && _jsx("option", { value: item.ownerCompanionId, children: "\u539F\u8D1F\u8D23\u4EBA\u5DF2\u5220\u9664" }), directory.map(c => _jsxs("option", { value: c.id, children: ["@", c.name] }, c.id))] })] }), _jsx(WorkspaceNotice, { kind: "warning", children: item.status === 'planning' ? '全部子任务安排好后,提交本次规划;删除子任务会重新打开规划,需确认新的交付范围。' : '子任务的执行和验收只在内部流转,全部完成后才汇总需求结果。' }), ready && _jsxs("details", { className: "dsh-partner-requirement-disclosure", children: [_jsx("summary", { children: "\u4EBA\u5DE5\u5B8C\u6210\u6536\u5C3E" }), _jsxs("label", { children: [_jsx("span", { children: "\u6700\u7EC8\u7ED3\u8BBA" }), _jsx("textarea", { rows: 5, maxLength: 12000, value: summary, onChange: event => setSummary(event.target.value), placeholder: "\u786E\u8BA4\u5B9E\u9645\u4EA4\u4ED8\u5185\u5BB9\u3001\u7ED3\u8BBA\u53CA\u9650\u5236" })] }), _jsx("button", { type: "button", disabled: busy || !summary.trim(), onClick: () => { void act('finish', { summary }); }, children: "\u4FDD\u5B58\u603B\u7ED3\u5E76\u5F52\u6863" })] })] }), _jsxs("details", { className: "dsh-partner-requirement-disclosure", children: [_jsx("summary", { children: "\u7BA1\u7406\u9700\u6C42" }), _jsx("p", { children: "\u5220\u9664\u9700\u6C42\u4F1A\u540C\u65F6\u79FB\u9664\u5B50\u4EFB\u52A1\uFF0C\u5E76\u53D6\u6D88\u5173\u8054\u6267\u884C\u3002\u4E0D\u80FD\u64A4\u9500\uFF0C\u4E0D\u4F1A\u5220\u9664\u5DF2\u751F\u6210\u7684\u4EA4\u4ED8\u6587\u4EF6\u3002" }), confirming ? _jsxs("div", { className: "dsh-partner-requirement-actions", children: [_jsx("button", { type: "button", disabled: busy, onClick: () => setConfirming(false), children: "\u4FDD\u7559\u9700\u6C42" }), _jsxs("button", { type: "button", className: "is-danger", disabled: busy, onClick: () => { void act('remove'); }, children: ["\u786E\u8BA4\u5220\u9664\u9700\u6C42\u548C ", tasks.length, " \u4E2A\u4EFB\u52A1"] })] }) : _jsxs("button", { type: "button", className: "is-danger", onClick: () => setConfirming(true), children: [_jsx(IconTrashOutline16, { size: 14 }), "\u5220\u9664\u9700\u6C42"] })] }), _jsxs("footer", { children: [_jsx("button", { type: "button", onClick: close, disabled: busy, children: "\u5173\u95ED" }), item.status !== 'done' && _jsx("button", { type: "button", className: "is-primary", disabled: busy || (item.status === 'planning' && !tasks.length), onClick: () => { void act(item.status === 'planning' ? 'submit' : 'reopen'); }, children: busy ? '处理中…' : item.status === 'planning' ? '提交规划' : '调整任务范围' })] })] });
52
+ }
53
+ //# sourceMappingURL=requirement-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement-dialog.js","sourceRoot":"","sources":["../../src/ui/requirement-dialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function RequirementTasksPanel({ initialTaskId, openRequest, requirementId, back, detailOnly }?: {
2
+ initialTaskId?: string | undefined;
3
+ openRequest?: object | undefined;
4
+ requirementId?: string;
5
+ back?(): void;
6
+ detailOnly?: boolean;
7
+ }): JSX.Element;
8
+ //# sourceMappingURL=requirement-tasks-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement-tasks-panel.d.ts","sourceRoot":"","sources":["../../src/ui/requirement-tasks-panel.tsx"],"names":[],"mappings":"AAcA,wBAAgB,qBAAqB,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,UAAkB,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,GAAG,CAAC,OAAO,CA4HtQ"}
@@ -0,0 +1,269 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useDeferredValue, useEffect, useMemo, useState } from 'react';
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
+ import { TaskBoardStage } from './task-board-stage.js';
7
+ import { useBoardRefresh } from './board-refresh.js';
8
+ import { RequirementDetail, requirementStatus } from './requirement-dialog.js';
9
+ const COLUMNS = [
10
+ { id: 'backlog', label: '收集箱' }, { id: 'ready', label: '待开始' }, { id: 'doing', label: '进行中' },
11
+ { id: 'review', label: '待验收' }, { id: 'blocked', label: '受阻' }, { id: 'done', label: '已完成' },
12
+ ];
13
+ export function RequirementTasksPanel({ initialTaskId, openRequest, requirementId, back, detailOnly = false } = {}) {
14
+ const [board, setBoard] = useState({ tasks: [], activities: [] });
15
+ const [directory, setDirectory] = useState([]);
16
+ const [delegations, setDelegations] = useState([]);
17
+ const [creating, setCreating] = useState(false);
18
+ const [requirementDetail, setRequirementDetail] = useState(false);
19
+ const [selectedTaskId, setSelectedTaskId] = useState(initialTaskId);
20
+ useEffect(() => { if (initialTaskId)
21
+ setSelectedTaskId(initialTaskId); }, [initialTaskId, openRequest]);
22
+ const [busy, setBusy] = useState();
23
+ const [loading, setLoading] = useState(true);
24
+ const [error, setError] = useState();
25
+ const [syncedAt, setSyncedAt] = useState();
26
+ const [query, setQuery] = useState('');
27
+ const [statusFilter, setStatusFilter] = useState('all');
28
+ const [assigneeFilter, setAssigneeFilter] = useState('all');
29
+ const deferredQuery = useDeferredValue(query.trim().toLocaleLowerCase());
30
+ const tasksById = useMemo(() => new Map(board.tasks.map(item => [item.id, item])), [board.tasks]);
31
+ const directoryById = useMemo(() => new Map(directory.map(item => [item.id, item])), [directory]);
32
+ const activeDelegationByTaskId = useMemo(() => {
33
+ const result = new Map();
34
+ for (const delegation of delegations) {
35
+ if ((delegation.status === 'queued' || delegation.status === 'running') && !result.has(delegation.taskId))
36
+ result.set(delegation.taskId, delegation);
37
+ }
38
+ return result;
39
+ }, [delegations]);
40
+ const selectedTask = selectedTaskId ? tasksById.get(selectedTaskId) : undefined;
41
+ const requirement = board.requirements?.find(item => item.id === requirementId);
42
+ const requirementTasks = useMemo(() => board.tasks.filter(task => !requirementId || (requirementId === 'legacy' ? !task.requirementId : task.requirementId === requirementId)), [board.tasks, requirementId]);
43
+ const dependentsById = useMemo(() => {
44
+ const result = new Map();
45
+ for (const task of board.tasks)
46
+ for (const dependencyId of task.dependencyTaskIds)
47
+ result.set(dependencyId, (result.get(dependencyId) ?? 0) + 1);
48
+ return result;
49
+ }, [board.tasks]);
50
+ const scopedTasks = useMemo(() => requirementTasks.filter(task => {
51
+ if (assigneeFilter !== 'all' && (task.assigneeCompanionId ?? 'unassigned') !== assigneeFilter)
52
+ return false;
53
+ if (!deferredQuery)
54
+ return true;
55
+ const dependencies = task.dependencyTaskIds.map(id => tasksById.get(id)?.title ?? '');
56
+ return [task.title, task.description, task.resultAbstract, task.resultSummary, directoryById.get(task.assigneeCompanionId ?? '')?.name, ...dependencies]
57
+ .some(value => value?.toLocaleLowerCase().includes(deferredQuery));
58
+ }), [assigneeFilter, requirementTasks, deferredQuery, directoryById, tasksById]);
59
+ const statusCounts = useMemo(() => {
60
+ const result = new Map(COLUMNS.map(column => [column.id, 0]));
61
+ for (const task of scopedTasks)
62
+ result.set(task.status, (result.get(task.status) ?? 0) + 1);
63
+ return result;
64
+ }, [scopedTasks]);
65
+ const visibleColumns = statusFilter === 'all' ? COLUMNS.filter(column => (statusCounts.get(column.id) ?? 0) > 0) : COLUMNS.filter(column => column.id === statusFilter);
66
+ const tasksByStatus = useMemo(() => {
67
+ const priorityRank = { urgent: 3, high: 2, normal: 1, low: 0 };
68
+ const result = new Map(COLUMNS.map(column => [column.id, []]));
69
+ for (const task of scopedTasks) {
70
+ if (statusFilter !== 'all' && task.status !== statusFilter)
71
+ continue;
72
+ result.get(task.status)?.push(task);
73
+ }
74
+ for (const tasks of result.values())
75
+ tasks.sort((left, right) => priorityRank[right.priority] - priorityRank[left.priority] || right.updatedAt - left.updatedAt);
76
+ return result;
77
+ }, [scopedTasks, statusFilter]);
78
+ const visibleTaskCount = statusFilter === 'all' ? scopedTasks.length : (statusCounts.get(statusFilter) ?? 0);
79
+ const load = useBoardRefresh(async () => {
80
+ const [next, collaboration] = await Promise.all([api('/tasks'), api('/collaboration')]);
81
+ return () => { setBoard(next); setDirectory(collaboration.companions); setDelegations(collaboration.delegations); setSyncedAt(Date.now()); setLoading(false); setSelectedTaskId(id => next.tasks.some(t => t.id === id) ? id : undefined); };
82
+ }, reason => { setError(errorMessage(reason)); setLoading(false); });
83
+ const update = async (task, change) => {
84
+ setBusy(task.id);
85
+ setError(undefined);
86
+ try {
87
+ await api(`/tasks/${task.id}`, { method: 'PUT', body: JSON.stringify({ expectedRevision: task.revision, ...change }) });
88
+ await load();
89
+ }
90
+ catch (reason) {
91
+ await load();
92
+ setError(errorMessage(reason));
93
+ }
94
+ finally {
95
+ setBusy(undefined);
96
+ }
97
+ };
98
+ const delegate = async (task) => {
99
+ if (!task.assigneeCompanionId)
100
+ return;
101
+ setBusy(task.id);
102
+ setError(undefined);
103
+ try {
104
+ await api(`/tasks/${task.id}/delegate`, { method: 'POST', body: JSON.stringify({ to: task.assigneeCompanionId, request: task.description || `完成任务:${task.title}` }) });
105
+ await load();
106
+ }
107
+ catch (reason) {
108
+ setError(errorMessage(reason));
109
+ }
110
+ finally {
111
+ setBusy(undefined);
112
+ }
113
+ };
114
+ const review = async (task) => {
115
+ if (!task.reviewerCompanionId)
116
+ return;
117
+ setBusy(task.id);
118
+ setError(undefined);
119
+ try {
120
+ await api(`/tasks/${task.id}/review`, { method: 'POST', body: JSON.stringify({ to: task.reviewerCompanionId }) });
121
+ await load();
122
+ }
123
+ catch (reason) {
124
+ setError(errorMessage(reason));
125
+ }
126
+ finally {
127
+ setBusy(undefined);
128
+ }
129
+ };
130
+ const accept = async (task) => {
131
+ setBusy(task.id);
132
+ setError(undefined);
133
+ try {
134
+ await api(`/tasks/${task.id}/accept`, { method: 'POST', body: JSON.stringify({ expectedRevision: task.revision }) });
135
+ await load();
136
+ }
137
+ catch (reason) {
138
+ setError(errorMessage(reason));
139
+ }
140
+ finally {
141
+ setBusy(undefined);
142
+ }
143
+ };
144
+ const reject = async (task, reason) => {
145
+ if (!reason)
146
+ return;
147
+ setBusy(task.id);
148
+ setError(undefined);
149
+ try {
150
+ await api(`/tasks/${task.id}/reject`, { method: 'POST', body: JSON.stringify({ reason, expectedRevision: task.revision }) });
151
+ await load();
152
+ }
153
+ catch (cause) {
154
+ setError(errorMessage(cause));
155
+ }
156
+ finally {
157
+ setBusy(undefined);
158
+ }
159
+ };
160
+ const remove = async (task) => {
161
+ setBusy(task.id);
162
+ setError(undefined);
163
+ try {
164
+ await api(`/tasks/${task.id}`, { method: 'DELETE' });
165
+ if (selectedTaskId === task.id)
166
+ setSelectedTaskId(undefined);
167
+ await load();
168
+ }
169
+ catch (reason) {
170
+ setError(errorMessage(reason));
171
+ }
172
+ finally {
173
+ setBusy(undefined);
174
+ }
175
+ };
176
+ return _jsxs("div", { className: "dsh-partner-feature-page is-board", children: [!detailOnly && _jsxs(_Fragment, { children: [back && _jsxs("nav", { className: "dsh-partner-requirement-breadcrumb", children: [_jsx("button", { type: "button", onClick: back, children: "\u9700\u6C42\u770B\u677F" }), _jsx(IconChevronRightOutline14, { size: 14 }), _jsx("span", { children: requirement?.title ?? '未归类旧任务' })] }), _jsx(WorkspaceHero, { eyebrow: requirement ? requirementStatus(requirement) : '旧任务', title: requirement?.title ?? '未归类旧任务', detail: requirement?.description || '任务按阶段展示,点击查看交付、依赖和执行状态。', actions: _jsxs(_Fragment, { children: [_jsxs("span", { className: "dsh-partner-board-live", title: syncedAt ? `最近同步 ${new Date(syncedAt).toLocaleTimeString()}` : '正在连接', children: [_jsx("i", {}), "\u5B9E\u65F6\u540C\u6B65"] }), requirement && _jsx("button", { type: "button", onClick: () => setRequirementDetail(true), children: "\u9700\u6C42\u8BE6\u60C5" }), requirement?.status === 'planning' && _jsxs("button", { type: "button", onClick: () => setCreating(true), children: [_jsx(IconPlusOutline16, { size: 15 }), "\u65B0\u4EFB\u52A1"] })] }) })] }), error && _jsx(WorkspaceNotice, { children: error }), requirementDetail && requirement && _jsx(WorkspaceDialog, { eyebrow: "\u9700\u6C42\u8BE6\u60C5", title: requirement.title, detail: requirementStatus(requirement), close: () => setRequirementDetail(false), width: "wide", children: _jsx(RequirementDetail, { item: requirement, tasks: requirementTasks, directory: directory, changed: load, close: () => setRequirementDetail(false) }, requirement.id) }), creating && requirement && _jsx(WorkspaceDialog, { title: "\u65B0\u5EFA\u5B50\u4EFB\u52A1", detail: `所属需求:${requirement.title}`, close: () => setCreating(false), width: "wide", children: _jsx(TaskForm, { requirementId: requirement.id, companions: directory, tasks: requirementTasks, close: () => setCreating(false), changed: load }) }), selectedTask && _jsxs(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), error && _jsx(WorkspaceNotice, { children: error })] }), !detailOnly && (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("label", { className: "dsh-partner-board-assignee is-mobile-stage", children: [_jsx("span", { className: "sr-only", children: "\u6309\u4EFB\u52A1\u9636\u6BB5\u7B5B\u9009" }), _jsxs("select", { value: statusFilter, onChange: event => setStatusFilter(event.target.value), children: [_jsxs("option", { value: "all", children: ["\u5168\u90E8\u9636\u6BB5 \u00B7 ", scopedTasks.length] }), COLUMNS.map(column => _jsxs("option", { value: column.id, children: [column.label, " \u00B7 ", statusCounts.get(column.id) ?? 0] }, column.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 => {
177
+ const tasks = tasksByStatus.get(column.id) ?? [];
178
+ return _jsx(TaskBoardStage, { id: column.id, label: column.label, tasks: tasks, focused: statusFilter !== 'all', filtered: Boolean(query || assigneeFilter !== 'all'), renderTask: 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) }, column.id);
179
+ }) }), !scopedTasks.length && _jsxs("div", { className: "dsh-partner-collection-empty", children: [_jsx("strong", { children: query || assigneeFilter !== 'all' ? '没有匹配的任务' : '还没有子任务' }), _jsx("p", { children: requirement?.status === 'planning' ? '添加子任务并安排负责人,完成分工后在需求详情中提交规划。' : '可返回需求看板查看其他需求。' })] })] }))] });
180
+ }
181
+ function TaskCard({ task, tasksById, directoryById, dependentCount, execution, open }) {
182
+ const dependencies = task.dependencyTaskIds.map(id => tasksById.get(id)).filter((item) => item !== undefined);
183
+ const blockers = dependencies.filter(item => item.status !== 'done');
184
+ const completedDependencies = dependencies.length - blockers.length;
185
+ const assignee = directoryById.get(task.assigneeCompanionId ?? '');
186
+ const executionState = execution ? delegationState(execution, blockers.length) : task.autoRun && task.status === 'ready' ? { label: blockers.length ? '等待前置完成' : '等待调度' } : undefined;
187
+ 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 })] }) });
188
+ }
189
+ function TaskDetail({ task, tasks, activities, directory, execution, busy, update, delegate, review, accept, reject, remove }) {
190
+ const [rejecting, setRejecting] = useState(false);
191
+ const [rejectReason, setRejectReason] = useState('');
192
+ const [confirmingDelete, setConfirmingDelete] = useState(false);
193
+ const byId = useMemo(() => new Map(tasks.map(item => [item.id, item])), [tasks]);
194
+ const dependencies = task.dependencyTaskIds.map(id => byId.get(id)).filter((item) => item !== undefined);
195
+ const blockers = dependencies.filter(item => item.status !== 'done');
196
+ const assignee = directory.find(item => item.id === task.assigneeCompanionId);
197
+ const reviewer = directory.find(item => item.id === task.reviewerCompanionId);
198
+ const dependencyCandidates = tasks.filter(item => item.id !== task.id && !task.dependencyTaskIds.includes(item.id) && !dependsOn(item.id, task.id, byId));
199
+ const canExecute = Boolean(task.assigneeCompanionId) && !execution && !['doing', 'review', 'done'].includes(task.status);
200
+ const recentActivities = [...activities].sort((left, right) => right.at - left.at).slice(0, 6);
201
+ const executionState = execution ? delegationState(execution, blockers.length) : undefined;
202
+ 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)
203
+ 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("details", { className: "dsh-partner-task-activity dsh-partner-requirement-disclosure", children: [_jsxs("summary", { children: ["\u6700\u8FD1\u6D3B\u52A8 \u00B7 ", recentActivities.length] }), _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)
204
+ 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\u4F1A\u53D6\u6D88\u5173\u8054\u6267\u884C\uFF0C\u4F9D\u8D56\u5B83\u7684\u672A\u5B8C\u6210\u4EFB\u52A1\u5C06\u6682\u505C\u3002\u9700\u6C42\u9700\u91CD\u65B0\u786E\u8BA4\u8303\u56F4\uFF1B\u4E0D\u80FD\u64A4\u9500\u3002" }), _jsxs("div", { children: [_jsx("button", { type: "button", onClick: () => setConfirmingDelete(false), children: "\u4FDD\u7559\u4EFB\u52A1" }), _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 ? '执行中…' : execution?.status === 'queued' ? '已提交,等待执行' : 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 }) })] })] })] });
205
+ }
206
+ function ResultBlock({ label, value }) {
207
+ return _jsxs("section", { className: "dsh-partner-task-result", children: [_jsx("strong", { children: label }), _jsx("p", { children: value })] });
208
+ }
209
+ function TaskForm({ requirementId, companions, tasks, close, changed }) {
210
+ const [error, setError] = useState();
211
+ const [busy, setBusy] = useState(false);
212
+ const dependencyOptions = tasks.filter(item => item.status !== 'done');
213
+ const submit = async (event) => {
214
+ event.preventDefault();
215
+ const data = new FormData(event.currentTarget);
216
+ setBusy(true);
217
+ setError(undefined);
218
+ try {
219
+ await api('/tasks', { method: 'POST', body: JSON.stringify({
220
+ requirementId,
221
+ title: data.get('title'), description: data.get('description'), priority: data.get('priority'),
222
+ autoRun: data.get('submission') === 'run' && Boolean(data.get('assignee')),
223
+ assigneeCompanionId: data.get('assignee') || undefined, reviewerCompanionId: data.get('reviewer') || undefined,
224
+ dependencyTaskIds: data.getAll('dependencyTaskId'),
225
+ }) });
226
+ await changed();
227
+ close();
228
+ }
229
+ catch (reason) {
230
+ setError(errorMessage(reason));
231
+ }
232
+ finally {
233
+ setBusy(false);
234
+ }
235
+ };
236
+ 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" })] }), _jsxs("label", { className: "is-wide", children: [_jsx("span", { children: "\u521B\u5EFA\u540E\u6267\u884C" }), _jsxs("select", { name: "submission", defaultValue: "run", children: [_jsx("option", { value: "run", children: "\u5DF2\u6307\u5B9A\u8D1F\u8D23\u4EBA\u5219\u81EA\u52A8\u6392\u961F\uFF0C\u7B49\u5F85\u4F9D\u8D56\u5B8C\u6210\u540E\u6267\u884C" }), _jsx("option", { value: "plan", children: "\u4EC5\u89C4\u5212\uFF0C\u7A0D\u540E\u624B\u52A8\u63D0\u4EA4" })] })] }), 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 ? '创建中…' : '创建任务'] })] })] });
237
+ }
238
+ function dependsOn(candidateId, targetId, tasks, visited = new Set()) {
239
+ if (candidateId === targetId)
240
+ return true;
241
+ if (visited.has(candidateId))
242
+ return false;
243
+ visited.add(candidateId);
244
+ return (tasks.get(candidateId)?.dependencyTaskIds ?? []).some(id => dependsOn(id, targetId, tasks, visited));
245
+ }
246
+ function statusLabel(value) { return COLUMNS.find(item => item.id === value)?.label ?? value; }
247
+ function taskDialogSummary(task, directory) {
248
+ const assignee = directory.find(item => item.id === task.assigneeCompanionId);
249
+ return `${statusLabel(task.status)} · ${assignee ? `负责人 @${assignee.name}` : '尚未指派负责人'} · ${priorityLabel(task.priority)}`;
250
+ }
251
+ function priorityLabel(value) { return ({ low: '低优先级', normal: '普通优先级', high: '高优先级', urgent: '紧急' })[value]; }
252
+ function delegationState(value, blockers = 0) {
253
+ const review = value.kind === 'review';
254
+ if (value.status === 'queued') {
255
+ if ((value.attempts ?? 0) === 0)
256
+ return blockers
257
+ ? { label: '等待前置完成', title: '任务已提交,等待依赖', detail: `还有 ${blockers} 个前置任务未通过验收;全部完成后自动执行,无需再次指派。` }
258
+ : { label: '排队中', title: '任务已提交', detail: '正在等待可用执行名额,无需再次指派。' };
259
+ const at = value.nextAttemptAt ? new Date(value.nextAttemptAt).toLocaleString() : '稍后';
260
+ return { label: '等待自动恢复', title: review ? '验收将在连接恢复后继续' : '任务将在连接恢复后继续', detail: `${at} 自动重试${value.error ? ` · ${value.error}` : ''}` };
261
+ }
262
+ const recovered = (value.attempts ?? 1) > 1;
263
+ return {
264
+ label: recovered ? `第 ${value.attempts} 次恢复中` : review ? '伙伴验收中' : '伙伴执行中',
265
+ title: recovered ? (review ? '正在恢复伙伴验收' : '正在恢复伙伴任务') : review ? '伙伴正在核验结果' : '伙伴正在执行任务',
266
+ detail: recovered ? '会先检查已有产出,避免重复写入或重复发布。' : '执行状态会自动同步,无需手动刷新。',
267
+ };
268
+ }
269
+ //# sourceMappingURL=requirement-tasks-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement-tasks-panel.js","sourceRoot":"","sources":["../../src/ui/requirement-tasks-panel.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- export declare function TaskBoardPanel({ initialTaskId, openRequest }?: {
2
- initialTaskId?: string | undefined;
3
- openRequest?: object | undefined;
4
- }): JSX.Element;
1
+ /** Stable workspace entry; requirement navigation owns the board hierarchy. */
2
+ export { RequirementBoard as TaskBoardPanel } from './requirement-board.js';
5
3
  //# sourceMappingURL=task-board-panel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-board-panel.d.ts","sourceRoot":"","sources":["../../src/ui/task-board-panel.tsx"],"names":[],"mappings":"AAaA,wBAAgB,cAAc,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAO,GAAG,GAAG,CAAC,OAAO,CAoIzJ"}
1
+ {"version":3,"file":"task-board-panel.d.ts","sourceRoot":"","sources":["../../src/ui/task-board-panel.tsx"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAA"}