@parhelia/core 0.1.12221 → 0.1.12241

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 (77) hide show
  1. package/dist/components/ui/button.d.ts +1 -1
  2. package/dist/components/ui/dialog.js +2 -1
  3. package/dist/components/ui/dialog.js.map +1 -1
  4. package/dist/editor/ConfirmationDialog.js +1 -1
  5. package/dist/editor/ConfirmationDialog.js.map +1 -1
  6. package/dist/editor/ContentTree.js.map +1 -1
  7. package/dist/editor/FieldListField.js +1 -1
  8. package/dist/editor/FieldListField.js.map +1 -1
  9. package/dist/editor/GlobalMenuBar.js +1 -2
  10. package/dist/editor/GlobalMenuBar.js.map +1 -1
  11. package/dist/editor/ai/AgentTerminal.js +187 -109
  12. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  13. package/dist/editor/ai/dialogs/AgentDialogHandler.js +3 -7
  14. package/dist/editor/ai/dialogs/AgentDialogHandler.js.map +1 -1
  15. package/dist/editor/ai/dialogs/QuestionnaireInline.js +21 -5
  16. package/dist/editor/ai/dialogs/QuestionnaireInline.js.map +1 -1
  17. package/dist/editor/client/EditorShell.js +2 -1
  18. package/dist/editor/client/EditorShell.js.map +1 -1
  19. package/dist/editor/client/editContext.d.ts +1 -1
  20. package/dist/editor/client/operations.d.ts +1 -1
  21. package/dist/editor/client/operations.js +1 -0
  22. package/dist/editor/client/operations.js.map +1 -1
  23. package/dist/editor/commands/itemCommands.js +7 -4
  24. package/dist/editor/commands/itemCommands.js.map +1 -1
  25. package/dist/editor/context-menu/InsertMenu.js +2 -1
  26. package/dist/editor/context-menu/InsertMenu.js.map +1 -1
  27. package/dist/editor/page-editor-chrome/InlineEditor.js +20 -7
  28. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -1
  29. package/dist/editor/page-viewer/MiniMap.d.ts +3 -1
  30. package/dist/editor/page-viewer/MiniMap.js +13 -57
  31. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  32. package/dist/editor/page-viewer/PageViewerFrame.js +1 -1
  33. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  34. package/dist/editor/services/agentService.d.ts +12 -0
  35. package/dist/editor/services/agentService.js +20 -0
  36. package/dist/editor/services/agentService.js.map +1 -1
  37. package/dist/editor/sidebar/WorkspaceRail.js +2 -1
  38. package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
  39. package/dist/editor/views/EditView.js +1 -1
  40. package/dist/editor/views/EditView.js.map +1 -1
  41. package/dist/editor/views/EditorSlot.js +17 -24
  42. package/dist/editor/views/EditorSlot.js.map +1 -1
  43. package/dist/revision.d.ts +2 -2
  44. package/dist/revision.js +2 -2
  45. package/dist/task-board/TaskBoardWorkspace.js +159 -27
  46. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  47. package/dist/task-board/components/CreateProjectDialog.js +18 -9
  48. package/dist/task-board/components/CreateProjectDialog.js.map +1 -1
  49. package/dist/task-board/components/ProjectDashboard.js +0 -1
  50. package/dist/task-board/components/ProjectDashboard.js.map +1 -1
  51. package/dist/task-board/components/ProjectSelector.d.ts +1 -0
  52. package/dist/task-board/components/ProjectSelector.js +2 -2
  53. package/dist/task-board/components/ProjectSelector.js.map +1 -1
  54. package/dist/task-board/components/ProjectSettingsDialog.js +0 -1
  55. package/dist/task-board/components/ProjectSettingsDialog.js.map +1 -1
  56. package/dist/task-board/components/TaskAgentPanel.d.ts +3 -0
  57. package/dist/task-board/components/TaskAgentPanel.js +13 -4
  58. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  59. package/dist/task-board/components/TaskBoardTitlebar.js +3 -3
  60. package/dist/task-board/components/TaskBoardTitlebar.js.map +1 -1
  61. package/dist/task-board/components/TaskCard.d.ts +2 -1
  62. package/dist/task-board/components/TaskCard.js.map +1 -1
  63. package/dist/task-board/taskBoardNavStore.d.ts +1 -0
  64. package/dist/task-board/taskBoardNavStore.js +1 -0
  65. package/dist/task-board/taskBoardNavStore.js.map +1 -1
  66. package/dist/task-board/taskExecutionStatus.js +34 -8
  67. package/dist/task-board/taskExecutionStatus.js.map +1 -1
  68. package/dist/task-board/types.d.ts +1 -1
  69. package/dist/task-board/views/KanbanView.d.ts +2 -0
  70. package/dist/task-board/views/KanbanView.js +177 -37
  71. package/dist/task-board/views/KanbanView.js.map +1 -1
  72. package/dist/task-board/views/ListView.d.ts +2 -0
  73. package/dist/task-board/views/ListView.js +4 -3
  74. package/dist/task-board/views/ListView.js.map +1 -1
  75. package/dist/task-board/views/PlanningView.js +1 -1
  76. package/dist/task-board/views/PlanningView.js.map +1 -1
  77. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectSettingsDialog.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectSettingsDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectSettingsDialog.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectSettingsDialog.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { AgentStatus } from "../../editor/services/agentService";
1
2
  export type TaskAgentPanelMode = "no-task-selected" | "no-agent" | "agent";
2
3
  export declare function TaskAgentPanel(props: {
3
4
  agentId: string | null;
@@ -12,4 +13,6 @@ export declare function TaskAgentPanel(props: {
12
13
  canRunAssignedAgent?: boolean;
13
14
  runAssignedAgentDisabledReason?: string;
14
15
  onStartPlanning?: () => void | Promise<void>;
16
+ assignedAgentStatus?: AgentStatus;
17
+ onReopenTask?: () => void;
15
18
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,11 +1,19 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useState } from "react";
3
- import { Bot, Play, UserPlus } from "lucide-react";
3
+ import { Bot, CheckCircle2, Play, UserPlus } from "lucide-react";
4
4
  import { Button } from "../../components/ui/button";
5
5
  import { AgentTerminal } from "../../editor/ai/AgentTerminal";
6
6
  import { loadAiProfiles } from "../../editor/services/aiService";
7
+ function isAgentClosed(status) {
8
+ if (status === undefined || status === null)
9
+ return false;
10
+ if (typeof status === "number")
11
+ return status === 5;
12
+ const s = String(status).replace(/[^a-z0-9]/gi, "").toLowerCase();
13
+ return s === "closed";
14
+ }
7
15
  export function TaskAgentPanel(props) {
8
- const { agentId, mode, label, onAssignAgent, onRunAssignedAgent, hasAssignedAgentProfile = false, assignedAgentProfileName, canAssignAgent = true, assignAgentDisabledReason, canRunAssignedAgent = true, runAssignedAgentDisabledReason, onStartPlanning, } = props;
16
+ const { agentId, mode, label, onAssignAgent, onRunAssignedAgent, hasAssignedAgentProfile = false, assignedAgentProfileName, canAssignAgent = true, assignAgentDisabledReason, canRunAssignedAgent = true, runAssignedAgentDisabledReason, onStartPlanning, assignedAgentStatus, onReopenTask, } = props;
9
17
  const [profiles, setProfiles] = useState([]);
10
18
  useEffect(() => {
11
19
  let cancelled = false;
@@ -43,6 +51,7 @@ export function TaskAgentPanel(props) {
43
51
  : "This task does not have an agent assigned yet." }), !canPerformPrimaryAction && primaryActionDisabledReason && (_jsx("div", { className: "text-xs text-amber-600", children: primaryActionDisabledReason }))] }), onStartPlanning && (_jsxs(Button, { variant: "default", size: "sm", onClick: onStartPlanning, children: [_jsx(Play, { className: "mr-1 h-4 w-4" }), "Start Planning"] }))] })] }));
44
52
  }
45
53
  // ── agent terminal ──
46
- return (_jsx("div", { className: "flex h-full min-h-0 flex-col border-l bg-white", children: _jsx(AgentTerminal, { agentStub: agentStub, profiles: profiles, isActive: true, compact: true, hideGreeting: true }) }));
54
+ const agentClosed = isAgentClosed(assignedAgentStatus);
55
+ return (_jsx("div", { className: "flex h-full min-h-0 flex-col border-l bg-white", children: agentClosed ? (_jsxs(_Fragment, { children: [_jsx(AgentTerminal, { agentStub: agentStub, profiles: profiles, isActive: true, compact: true, hideGreeting: true, hideBottomControls: true }), _jsxs("div", { className: "border-t border-green-200 bg-green-50 px-4 py-3", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-green-800", children: [_jsx(CheckCircle2, { className: "h-4 w-4 shrink-0" }), _jsx("span", { children: "This task's agent has finished." })] }), _jsxs("p", { className: "mt-1 text-xs text-green-700", children: ["To continue working on this task, move it back to ", _jsx("strong", { children: "Open" }), "."] }), onReopenTask && (_jsx(Button, { variant: "outline", size: "sm", className: "mt-2 border-green-300 text-green-800 hover:bg-green-100", onClick: onReopenTask, children: "Move to Open" }))] })] })) : (_jsx(AgentTerminal, { agentStub: agentStub, profiles: profiles, isActive: true, compact: true, hideGreeting: true })) }));
47
56
  }
48
57
  //# sourceMappingURL=TaskAgentPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskAgentPanel.js","sourceRoot":"","sources":["../../../src/task-board/components/TaskAgentPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskAgentPanel.js","sourceRoot":"","sources":["../../../src/task-board/components/TaskAgentPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useSyncExternalStore } from "react";
3
3
  import { Button } from "../../components/ui/button";
4
- import { Loader2, Play, Plus, RefreshCw, Settings, SquarePen, } from "lucide-react";
4
+ import { RefreshCw, Settings, SquarePen, } from "lucide-react";
5
5
  import { subscribeTaskBoardNav, getTaskBoardNavSnapshot, } from "../taskBoardNavStore";
6
6
  import { useEditContext } from "../../editor/client/editContext";
7
7
  import { SimpleIconButton } from "../../editor/ui/SimpleIconButton";
@@ -10,7 +10,7 @@ export function TaskBoardTitlebar() {
10
10
  const editContext = useEditContext();
11
11
  const nav = useSyncExternalStore(subscribeTaskBoardNav, getTaskBoardNavSnapshot, getTaskBoardNavSnapshot);
12
12
  const showEditorPanel = editContext?.showAgentsWorkspaceEditor ?? true;
13
- return (_jsxs("div", { className: "flex w-full items-center justify-between gap-4 pr-2", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx(ProjectSelector, { nav: nav }), nav.hasSelectedProject ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "mx-1 h-8 w-px bg-slate-200" }), _jsxs(Button, { size: "sm", onClick: () => nav.onCreateTask?.(), disabled: !nav.canCreateTask, className: "h-8 px-3", "data-testid": "taskboard-create-task-button", children: [_jsx(Plus, { className: "h-4 w-4 sm:mr-1.5" }), _jsx("span", { className: "hidden sm:inline", children: "New Task" })] }), _jsxs(Button, { size: "sm", variant: "outline", onClick: () => nav.onRunOrchestrator?.(), disabled: !nav.canRunOrchestrator || nav.runningOrchestrator, className: "h-8 px-3", title: "Run orchestrator to launch queued agent tasks", "data-testid": "taskboard-run-tasks-button", children: [nav.runningOrchestrator ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin sm:mr-1.5" })) : (_jsx(Play, { className: "h-4 w-4 sm:mr-1.5" })), _jsx("span", { className: "hidden sm:inline", children: "Run Tasks" })] }), _jsx(Button, { variant: "outline", size: "icon", onClick: () => nav.onRefresh?.(), className: "h-8 w-8", title: "Refresh tasks", "data-testid": "taskboard-refresh-button", children: _jsx(RefreshCw, { className: "h-4 w-4 text-slate-500" }) }), _jsx(Button, { variant: "outline", size: "icon", onClick: () => {
13
+ return (_jsxs("div", { className: "flex w-full items-center justify-between gap-4 pr-2", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx(ProjectSelector, { nav: nav }), nav.hasSelectedProject ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "mx-1 h-8 w-px bg-slate-200" }), _jsx(Button, { variant: "outline", size: "icon", onClick: () => nav.onRefresh?.(), className: "h-8 w-8", title: "Refresh tasks", "data-testid": "taskboard-refresh-button", children: _jsx(RefreshCw, { className: "h-4 w-4 text-slate-500" }) }), _jsx(Button, { variant: "outline", size: "icon", onClick: () => {
14
14
  if (nav.selectedProjectId) {
15
15
  nav.onOpenProjectSettings?.(nav.selectedProjectId);
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TaskBoardTitlebar.js","sourceRoot":"","sources":["../../../src/task-board/components/TaskBoardTitlebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskBoardTitlebar.js","sourceRoot":"","sources":["../../../src/task-board/components/TaskBoardTitlebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,UAAU,iBAAiB;IAC/B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,oBAAoB,CAC9B,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,CACxB,CAAC;IACF,MAAM,eAAe,GAAG,WAAW,EAAE,yBAAyB,IAAI,IAAI,CAAC;IAEvE,OAAO,CACL,eAAK,SAAS,EAAC,qDAAqD,aAClE,eAAK,SAAS,EAAC,iCAAiC,aAC9C,KAAC,eAAe,IAAC,GAAG,EAAE,GAAG,GAAI,EAC5B,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CACxB,8BACE,cAAK,SAAS,EAAC,4BAA4B,GAAG,EAC9C,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,EAChC,SAAS,EAAC,SAAS,EACnB,KAAK,EAAC,eAAe,iBACT,0BAA0B,YAEtC,KAAC,SAAS,IAAC,SAAS,EAAC,wBAAwB,GAAG,GACzC,EACT,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,GAAG,EAAE;oCACZ,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;wCAC1B,GAAG,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;oCACrD,CAAC;gCACH,CAAC,EACD,QAAQ,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAC/B,SAAS,EAAC,SAAS,EACnB,KAAK,EAAC,kBAAkB,iBACZ,mCAAmC,YAE/C,KAAC,QAAQ,IAAC,SAAS,EAAC,wBAAwB,GAAG,GACxC,IACR,CACJ,CAAC,CAAC,CAAC,IAAI,IACJ,EACL,CAAC,WAAW,EAAE,QAAQ,IAAI,CACzB,KAAC,gBAAgB,IACf,IAAI,EAAE,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,GAAI,EACvD,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EACtD,IAAI,EAAC,OAAO,iBACA,+BAA+B,EAC3C,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,GAAG,EAAE,CACZ,WAAW,EAAE,4BAA4B,CAAC,CAAC,eAAe,CAAC,GAE7D,CACH,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -1,9 +1,10 @@
1
+ import type { MouseEventHandler } from "react";
1
2
  import type { TaskItem } from "../types";
2
3
  import type { AgentStatus } from "../../editor/services/agentService";
3
4
  export declare function TaskCard(props: {
4
5
  task: TaskItem;
5
6
  selected: boolean;
6
- onClick: () => void;
7
+ onClick: MouseEventHandler<HTMLButtonElement>;
7
8
  dependencyTaskIds?: string[];
8
9
  assignedAgentStatus?: AgentStatus;
9
10
  showDoneCheckmark?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskCard.js","sourceRoot":"","sources":["../../../src/task-board/components/TaskCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskCard.js","sourceRoot":"","sources":["../../../src/task-board/components/TaskCard.tsx"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ type TaskBoardNavState = {
24
24
  isWizardMode: boolean;
25
25
  isAdministrator: boolean;
26
26
  showAllProjects: boolean;
27
+ isProjectsLoading: boolean;
27
28
  selectedProjectId: string | null;
28
29
  selectedTaskId: string | null;
29
30
  projectOptions: TaskBoardProjectOption[];
@@ -6,6 +6,7 @@ const defaultState = {
6
6
  isWizardMode: false,
7
7
  isAdministrator: false,
8
8
  showAllProjects: false,
9
+ isProjectsLoading: false,
9
10
  selectedProjectId: null,
10
11
  selectedTaskId: null,
11
12
  projectOptions: [],
@@ -1 +1 @@
1
- {"version":3,"file":"taskBoardNavStore.js","sourceRoot":"","sources":["../../src/task-board/taskBoardNavStore.ts"],"names":[],"mappings":"AAmDA,MAAM,YAAY,GAAsB;IACtC,YAAY,EAAE,OAAO;IACrB,eAAe,EAAE,iCAAiC;IAClD,eAAe,EAAE,qBAAqB;IACtC,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,EAAE;IAClB,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,KAAK;IACpB,kBAAkB,EAAE,KAAK;IACzB,mBAAmB,EAAE,KAAK;IAC1B,gBAAgB,EAAE,KAAK;IACvB,OAAO,EAAE,EAAE;IACX,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,SAAS;IAC1B,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,eAAe,EAAE,SAAS;IAC1B,qBAAqB,EAAE,SAAS;IAChC,eAAe,EAAE,SAAS;IAC1B,uBAAuB,EAAE,SAAS;IAClC,kBAAkB,EAAE,SAAS;IAC7B,YAAY,EAAE,SAAS;IACvB,iBAAiB,EAAE,SAAS;IAC5B,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF,IAAI,KAAK,GAAsB,YAAY,CAAC;AAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;AAExC,SAAS,IAAI;IACX,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAoB;IACxD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAmC;IACtE,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;IACjC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,KAAK,GAAG,YAAY,CAAC;IACrB,IAAI,EAAE,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"taskBoardNavStore.js","sourceRoot":"","sources":["../../src/task-board/taskBoardNavStore.ts"],"names":[],"mappings":"AAoDA,MAAM,YAAY,GAAsB;IACtC,YAAY,EAAE,OAAO;IACrB,eAAe,EAAE,iCAAiC;IAClD,eAAe,EAAE,qBAAqB;IACtC,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,EAAE;IAClB,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,KAAK;IACpB,kBAAkB,EAAE,KAAK;IACzB,mBAAmB,EAAE,KAAK;IAC1B,gBAAgB,EAAE,KAAK;IACvB,OAAO,EAAE,EAAE;IACX,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,SAAS;IAC1B,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,eAAe,EAAE,SAAS;IAC1B,qBAAqB,EAAE,SAAS;IAChC,eAAe,EAAE,SAAS;IAC1B,uBAAuB,EAAE,SAAS;IAClC,kBAAkB,EAAE,SAAS;IAC7B,YAAY,EAAE,SAAS;IACvB,iBAAiB,EAAE,SAAS;IAC5B,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF,IAAI,KAAK,GAAsB,YAAY,CAAC;AAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;AAExC,SAAS,IAAI;IACX,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAoB;IACxD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAmC;IACtE,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;IACjC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,KAAK,GAAG,YAAY,CAAC;IACrB,IAAI,EAAE,CAAC;AACT,CAAC"}
@@ -25,7 +25,30 @@ function normalizeAgentStatus(status) {
25
25
  return String(status);
26
26
  }
27
27
  }
28
- return String(status);
28
+ const rawStatus = String(status).trim();
29
+ const normalized = rawStatus.replace(/[^a-z0-9]/gi, "").toLowerCase();
30
+ switch (normalized) {
31
+ case "new":
32
+ return "new";
33
+ case "running":
34
+ return "running";
35
+ case "waitingforapproval":
36
+ return "waitingForApproval";
37
+ case "waitingforinput":
38
+ return "waitingForInput";
39
+ case "completed":
40
+ return "completed";
41
+ case "error":
42
+ return "error";
43
+ case "closed":
44
+ return "closed";
45
+ case "idle":
46
+ return "idle";
47
+ case "costlimitreached":
48
+ return "costLimitReached";
49
+ default:
50
+ return rawStatus;
51
+ }
29
52
  }
30
53
  export function getTaskExecutionDisplay(executionStatus, assignedAgentStatus, taskStatus) {
31
54
  if (String(taskStatus ?? "").toLowerCase() === "done") {
@@ -73,13 +96,16 @@ export function getTaskExecutionDisplay(executionStatus, assignedAgentStatus, ta
73
96
  needsAttention: true,
74
97
  };
75
98
  case "completed":
76
- return {
77
- label: "Completed",
78
- variant: "outline",
79
- className: "border-green-300 bg-green-50 text-green-700",
80
- showSpinner: false,
81
- needsAttention: false,
82
- };
99
+ if (executionStatus === "Running") {
100
+ return {
101
+ label: "Waiting for feedback",
102
+ variant: "outline",
103
+ className: "border-amber-300 bg-amber-50 text-amber-700",
104
+ showSpinner: false,
105
+ needsAttention: true,
106
+ };
107
+ }
108
+ break;
83
109
  case "closed":
84
110
  return {
85
111
  label: "Closed",
@@ -1 +1 @@
1
- {"version":3,"file":"taskExecutionStatus.js","sourceRoot":"","sources":["../../src/task-board/taskExecutionStatus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taskExecutionStatus.js","sourceRoot":"","sources":["../../src/task-board/taskExecutionStatus.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type ProjectStatus = "Planning" | "PlanPending" | "Active" | "Finished" | "Archived";
1
+ export type ProjectStatus = "Planning" | "Active" | "Finished" | "Archived";
2
2
  export type ProjectPermission = "Owner" | "Editor" | "Viewer";
3
3
  export type ProjectMemberType = "User" | "Role";
4
4
  export type TaskStatus = "Todo" | "InProgress" | "Review" | "Done";
@@ -11,4 +11,6 @@ export declare function KanbanView(props: {
11
11
  agentStatusesById?: Record<string, AgentStatus>;
12
12
  activeTab: number;
13
13
  onSetActiveTab: (index: number) => void;
14
+ canCreateTask: boolean;
15
+ onCreateTask: () => void;
14
16
  }): import("react/jsx-runtime").JSX.Element;
@@ -2,14 +2,16 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { TaskCard } from "../components/TaskCard";
3
3
  import { deleteTask, updateTask } from "../services/taskService";
4
4
  import { toast } from "sonner";
5
- import { useMemo, useState } from "react";
6
- import { Circle, PlayCircle, Eye, CheckCircle2, LayoutGrid, Trash2 } from "lucide-react";
5
+ import { useEffect, useMemo, useState } from "react";
6
+ import { Circle, PlayCircle, Eye, CheckCircle2, LayoutGrid, Trash2, Plus, } from "lucide-react";
7
7
  import { cn } from "../../lib/utils";
8
8
  import { useEditContext } from "../../editor/client/editContext";
9
9
  import { normalizeTaskStatus, getTaskStatusLabel } from "../taskStatus";
10
10
  import { getLinkedAgentId } from "../taskAgentLink";
11
11
  import { FilterInput } from "../../components/FilterInput";
12
12
  import { SimpleTabs } from "../../editor/ui/SimpleTabs";
13
+ import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger, } from "../../components/ui/context-menu";
14
+ import { Button } from "../../components/ui/button";
13
15
  const viewTabs = [
14
16
  { id: "kanban", label: "Kanban", content: null },
15
17
  { id: "list", label: "List", content: null },
@@ -21,10 +23,12 @@ const columns = [
21
23
  { status: "Done", title: "Done", icon: CheckCircle2, color: "text-green-500" },
22
24
  ];
23
25
  export function KanbanView(props) {
24
- const { tasks, dependencies, selectedTaskId, onSelectTask, onTasksChanged, projectId, permission, agentStatusesById = {}, activeTab, onSetActiveTab, } = props;
26
+ const { tasks, dependencies, selectedTaskId, onSelectTask, onTasksChanged, projectId, permission, agentStatusesById = {}, activeTab, onSetActiveTab, canCreateTask, onCreateTask, } = props;
25
27
  const editContext = useEditContext();
26
28
  const [dragOver, setDragOver] = useState(null);
27
29
  const [filter, setFilter] = useState("");
30
+ const [selectedTaskIds, setSelectedTaskIds] = useState(() => selectedTaskId ? new Set([selectedTaskId]) : new Set());
31
+ const [selectionAnchorTaskId, setSelectionAnchorTaskId] = useState(selectedTaskId);
28
32
  const canEdit = permission === "Owner" || permission === "Editor";
29
33
  const getStatusForTask = (task) => {
30
34
  const linkedAgentId = getLinkedAgentId(task);
@@ -36,19 +40,6 @@ export function KanbanView(props) {
36
40
  map.set(t.taskId, t);
37
41
  return map;
38
42
  }, [tasks]);
39
- const moveTask = async (taskId, status) => {
40
- const task = taskById.get(taskId);
41
- if (!task)
42
- return;
43
- if (task.status === status)
44
- return;
45
- const result = await updateTask({ taskId, status });
46
- if (result.type !== "success") {
47
- toast.error(result.summary || "Failed to move task");
48
- return;
49
- }
50
- await onTasksChanged();
51
- };
52
43
  const dependencyTaskIdsByTask = useMemo(() => {
53
44
  const map = new Map();
54
45
  const toDisplayId = (taskId) => {
@@ -76,6 +67,101 @@ export function KanbanView(props) {
76
67
  (task.assigneeId || "").toLowerCase().includes(query));
77
68
  });
78
69
  }, [filter, tasks]);
70
+ const orderedFilteredTasks = useMemo(() => {
71
+ return [...filteredTasks].sort((a, b) => {
72
+ if (a.sortOrder !== b.sortOrder)
73
+ return a.sortOrder - b.sortOrder;
74
+ return a.createdAt.localeCompare(b.createdAt);
75
+ });
76
+ }, [filteredTasks]);
77
+ const filteredTaskIds = useMemo(() => orderedFilteredTasks.map((task) => task.taskId), [orderedFilteredTasks]);
78
+ useEffect(() => {
79
+ const taskIds = new Set(tasks.map((task) => task.taskId));
80
+ setSelectedTaskIds((previous) => {
81
+ const next = new Set();
82
+ previous.forEach((taskId) => {
83
+ if (taskIds.has(taskId))
84
+ next.add(taskId);
85
+ });
86
+ if (next.size === 0 && selectedTaskId && taskIds.has(selectedTaskId)) {
87
+ next.add(selectedTaskId);
88
+ }
89
+ return next;
90
+ });
91
+ if (selectionAnchorTaskId && !taskIds.has(selectionAnchorTaskId)) {
92
+ setSelectionAnchorTaskId(selectedTaskId);
93
+ }
94
+ }, [tasks, selectedTaskId, selectionAnchorTaskId]);
95
+ const selectedCount = selectedTaskIds.size;
96
+ const moveTaskIdsToStatus = async (taskIds, status) => {
97
+ const uniqueTaskIds = [...new Set(taskIds)];
98
+ if (uniqueTaskIds.length === 0)
99
+ return;
100
+ const moveCandidates = uniqueTaskIds.filter((taskId) => {
101
+ const task = taskById.get(taskId);
102
+ return task && task.status !== status;
103
+ });
104
+ if (moveCandidates.length === 0)
105
+ return;
106
+ const results = await Promise.all(moveCandidates.map((taskId) => updateTask({ taskId, status })));
107
+ const failed = results.filter((result) => result.type !== "success");
108
+ if (failed.length > 0) {
109
+ toast.error(failed[0]?.summary ||
110
+ `Failed to move ${failed.length === moveCandidates.length ? "tasks" : "some tasks"}`);
111
+ return;
112
+ }
113
+ if (moveCandidates.length > 1) {
114
+ toast.success(`Moved ${moveCandidates.length} tasks to ${getTaskStatusLabel(status)}`);
115
+ }
116
+ await onTasksChanged();
117
+ };
118
+ const handleTaskCardClick = (taskId, event) => {
119
+ const isToggleSelect = event.ctrlKey || event.metaKey;
120
+ const isRangeSelect = event.shiftKey;
121
+ const anchor = selectionAnchorTaskId || selectedTaskId || taskId;
122
+ if (isRangeSelect) {
123
+ const anchorIndex = filteredTaskIds.indexOf(anchor);
124
+ const clickedIndex = filteredTaskIds.indexOf(taskId);
125
+ if (anchorIndex === -1 || clickedIndex === -1) {
126
+ setSelectedTaskIds(new Set([taskId]));
127
+ }
128
+ else {
129
+ const [start, end] = anchorIndex <= clickedIndex
130
+ ? [anchorIndex, clickedIndex]
131
+ : [clickedIndex, anchorIndex];
132
+ const rangeSelection = new Set(filteredTaskIds.slice(start, end + 1));
133
+ if (isToggleSelect) {
134
+ setSelectedTaskIds((previous) => {
135
+ const next = new Set(previous);
136
+ rangeSelection.forEach((id) => next.add(id));
137
+ return next;
138
+ });
139
+ }
140
+ else {
141
+ setSelectedTaskIds(rangeSelection);
142
+ }
143
+ }
144
+ onSelectTask(taskId);
145
+ return;
146
+ }
147
+ if (isToggleSelect) {
148
+ setSelectedTaskIds((previous) => {
149
+ const next = new Set(previous);
150
+ if (next.has(taskId) && next.size > 1) {
151
+ next.delete(taskId);
152
+ return next;
153
+ }
154
+ next.add(taskId);
155
+ return next;
156
+ });
157
+ setSelectionAnchorTaskId(taskId);
158
+ onSelectTask(taskId);
159
+ return;
160
+ }
161
+ setSelectedTaskIds(new Set([taskId]));
162
+ setSelectionAnchorTaskId(taskId);
163
+ onSelectTask(taskId);
164
+ };
79
165
  const handleDeleteTask = (task) => {
80
166
  const runDelete = async () => {
81
167
  const result = await deleteTask(task.taskId);
@@ -100,8 +186,54 @@ export function KanbanView(props) {
100
186
  }
101
187
  void runDelete();
102
188
  };
103
- return (_jsxs("div", { className: "flex h-full min-w-0 flex-col select-none", children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(LayoutGrid, { className: "h-4 w-4 text-slate-600" }), _jsx("h2", { className: "text-base font-semibold tracking-tight", children: "Board" }), _jsx("div", { className: "rounded-full bg-secondary px-2.5 py-0.5 text-xs font-semibold text-secondary-foreground", children: filteredTasks.length })] }), _jsx(SimpleTabs, { tabs: viewTabs, activeTab: activeTab, setActiveTab: onSetActiveTab, hideContent: true, className: "rounded-lg border-0 bg-slate-100/50 p-1" })] }), _jsx("div", { className: "mb-4", children: _jsx(FilterInput, { value: filter, onChange: setFilter, placeholder: "Search or filter tasks...", className: "w-[320px]" }) }), _jsx("div", { className: "flex min-h-0 w-full min-w-0 flex-1 gap-3 overflow-x-auto pb-3", children: columns.map((col) => {
104
- const colTasks = filteredTasks.filter((t) => normalizeTaskStatus(t.status, t.executionStatus) === col.status);
189
+ const handleDeleteSelectedTasks = () => {
190
+ const taskIds = [...selectedTaskIds];
191
+ if (taskIds.length === 0)
192
+ return;
193
+ const singleTask = taskIds.length === 1 ? taskById.get(taskIds[0]) : undefined;
194
+ const runDelete = async () => {
195
+ const results = await Promise.all(taskIds.map((taskId) => deleteTask(taskId)));
196
+ const failed = results.filter((result) => result.type !== "success");
197
+ if (failed.length > 0) {
198
+ toast.error(failed[0]?.summary ||
199
+ `Failed to delete ${failed.length === taskIds.length ? "tasks" : "some tasks"}`);
200
+ }
201
+ else if (taskIds.length === 1) {
202
+ toast.success("Task deleted");
203
+ }
204
+ else {
205
+ toast.success(`Deleted ${taskIds.length} tasks`);
206
+ }
207
+ if (taskIds.length - failed.length > 0) {
208
+ setSelectedTaskIds(new Set());
209
+ }
210
+ await onTasksChanged();
211
+ };
212
+ if (editContext?.confirm) {
213
+ editContext.confirm({
214
+ header: taskIds.length === 1 ? "Delete task" : "Delete tasks",
215
+ message: taskIds.length === 1
216
+ ? `Are you sure you want to delete "${singleTask?.title || "this task"}"?\n\nThis action cannot be undone.`
217
+ : `Are you sure you want to delete ${taskIds.length} selected tasks?\n\nThis action cannot be undone.`,
218
+ acceptLabel: "Delete",
219
+ showCancel: true,
220
+ accept: () => {
221
+ void runDelete();
222
+ },
223
+ });
224
+ return;
225
+ }
226
+ void runDelete();
227
+ };
228
+ const handleTaskContextMenu = (taskId) => {
229
+ if (selectedTaskIds.has(taskId))
230
+ return;
231
+ setSelectedTaskIds(new Set([taskId]));
232
+ setSelectionAnchorTaskId(taskId);
233
+ onSelectTask(taskId);
234
+ };
235
+ return (_jsxs("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col select-none", children: [_jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(LayoutGrid, { className: "h-4 w-4 text-slate-600" }), _jsx("h2", { className: "text-base font-semibold tracking-tight", children: "Board" }), _jsx("div", { className: "rounded-full bg-secondary px-2.5 py-0.5 text-xs font-semibold text-secondary-foreground", children: filteredTasks.length })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(SimpleTabs, { tabs: viewTabs, activeTab: activeTab, setActiveTab: onSetActiveTab, hideContent: true, className: "rounded-lg border-0 bg-slate-100/50 p-1" }), _jsxs(Button, { size: "sm", onClick: onCreateTask, disabled: !canCreateTask, className: "h-8 px-3", "data-testid": "taskboard-create-task-button", children: [_jsx(Plus, { className: "h-4 w-4 sm:mr-1.5" }), _jsx("span", { className: "hidden sm:inline", children: "New Task" })] })] })] }), _jsx("div", { className: "mb-4", children: _jsx(FilterInput, { value: filter, onChange: setFilter, placeholder: "Search or filter tasks...", className: "w-full sm:w-[320px]" }) }), _jsx("div", { className: "flex min-h-0 w-full min-w-0 flex-1 gap-3 overflow-x-auto pb-3", children: columns.map((col) => {
236
+ const colTasks = orderedFilteredTasks.filter((t) => normalizeTaskStatus(t.status, t.executionStatus) === col.status);
105
237
  const Icon = col.icon;
106
238
  return (_jsxs("div", { className: cn("flex flex-col w-68 shrink-0 rounded-xl bg-slate-50/50 border transition-colors", dragOver === col.status ? "bg-primary/5 border-primary/20 ring-1 ring-primary/20" : "border-transparent"), onDragOver: (e) => {
107
239
  e.preventDefault();
@@ -112,25 +244,33 @@ export function KanbanView(props) {
112
244
  setDragOver(null);
113
245
  if (!taskId)
114
246
  return;
115
- await moveTask(taskId, col.status);
116
- }, children: [_jsx("div", { className: "flex items-center justify-between p-2.5 pb-1.5", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Icon, { className: cn("h-4 w-4", col.color) }), _jsx("span", { className: "text-xs font-semibold uppercase tracking-wider text-slate-600", children: getTaskStatusLabel(col.status) }), _jsx("span", { className: "ml-1 text-xs font-medium text-slate-400", children: colTasks.length })] }) }), _jsx("div", { className: "flex-1 flex flex-col gap-2 p-2 min-h-0 overflow-y-auto scrollbar-thin scrollbar-thumb-slate-200", children: colTasks.length === 0 ? (_jsx("div", { className: "flex flex-col items-center justify-center py-6 rounded-lg border border-dashed border-slate-200 bg-white/50", children: _jsx("div", { className: "text-[10px] font-medium text-slate-400 uppercase tracking-widest", children: "No tasks" }) })) : (colTasks.map((t) => (_jsxs("div", { draggable: true, className: "group relative cursor-grab active:cursor-grabbing", onDragStart: (e) => {
117
- e.dataTransfer.setData("text/plain", t.taskId);
118
- e.dataTransfer.effectAllowed = "move";
119
- // Create a preview image or style for dragging
120
- if (e.currentTarget instanceof HTMLElement) {
121
- e.currentTarget.style.opacity = "0.5";
122
- }
123
- }, onDragEnd: (e) => {
124
- if (e.currentTarget instanceof HTMLElement) {
125
- e.currentTarget.style.opacity = "1";
126
- }
127
- }, children: [canEdit && (_jsx("button", { type: "button", className: "absolute right-2 top-2 z-10 rounded-md p-1 text-slate-400 opacity-0 transition-opacity hover:bg-destructive/10 hover:text-destructive group-hover:opacity-100", title: "Delete task", onMouseDown: (e) => {
128
- e.stopPropagation();
129
- e.preventDefault();
130
- }, onClick: (e) => {
131
- e.stopPropagation();
132
- handleDeleteTask(t);
133
- }, children: _jsx(Trash2, { className: "h-3.5 w-3.5" }) })), _jsx(TaskCard, { task: t, selected: t.taskId === selectedTaskId, onClick: () => onSelectTask(t.taskId), dependencyTaskIds: dependencyTaskIdsByTask.get(t.taskId) || [], assignedAgentStatus: getStatusForTask(t) })] }, t.taskId)))) })] }, col.status));
247
+ const taskIdsToMove = selectedTaskIds.has(taskId)
248
+ ? [...selectedTaskIds]
249
+ : [taskId];
250
+ await moveTaskIdsToStatus(taskIdsToMove, col.status);
251
+ }, children: [_jsx("div", { className: "flex items-center justify-between p-2.5 pb-1.5", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Icon, { className: cn("h-4 w-4", col.color) }), _jsx("span", { className: "text-xs font-semibold uppercase tracking-wider text-slate-600", children: getTaskStatusLabel(col.status) }), _jsx("span", { className: "ml-1 text-xs font-medium text-slate-400", children: colTasks.length })] }) }), _jsx("div", { className: "flex-1 flex flex-col gap-2 p-2 min-h-0 overflow-y-auto scrollbar-thin scrollbar-thumb-slate-200", children: colTasks.length === 0 ? (_jsx("div", { className: "flex flex-col items-center justify-center py-6 rounded-lg border border-dashed border-slate-200 bg-white/50", children: _jsx("div", { className: "text-[10px] font-medium text-slate-400 uppercase tracking-widest", children: "No tasks" }) })) : (colTasks.map((t) => {
252
+ const card = (_jsxs("div", { draggable: true, className: "group relative cursor-grab active:cursor-grabbing", onContextMenu: () => handleTaskContextMenu(t.taskId), onDragStart: (e) => {
253
+ e.dataTransfer.setData("text/plain", t.taskId);
254
+ e.dataTransfer.effectAllowed = "move";
255
+ // Create a preview image or style for dragging
256
+ if (e.currentTarget instanceof HTMLElement) {
257
+ e.currentTarget.style.opacity = "0.5";
258
+ }
259
+ }, onDragEnd: (e) => {
260
+ if (e.currentTarget instanceof HTMLElement) {
261
+ e.currentTarget.style.opacity = "1";
262
+ }
263
+ }, children: [canEdit && (_jsx("button", { type: "button", className: "absolute right-2 top-2 z-10 rounded-md p-1 text-slate-400 opacity-0 transition-opacity hover:bg-destructive/10 hover:text-destructive group-hover:opacity-100", title: "Delete task", onMouseDown: (e) => {
264
+ e.stopPropagation();
265
+ e.preventDefault();
266
+ }, onClick: (e) => {
267
+ e.stopPropagation();
268
+ handleDeleteTask(t);
269
+ }, children: _jsx(Trash2, { className: "h-3.5 w-3.5" }) })), _jsx(TaskCard, { task: t, selected: selectedTaskIds.has(t.taskId), onClick: (event) => handleTaskCardClick(t.taskId, event), dependencyTaskIds: dependencyTaskIdsByTask.get(t.taskId) || [], assignedAgentStatus: getStatusForTask(t) })] }, t.taskId));
270
+ if (!canEdit)
271
+ return card;
272
+ return (_jsxs(ContextMenu, { children: [_jsx(ContextMenuTrigger, { asChild: true, children: card }), _jsx(ContextMenuContent, { className: "w-44", children: _jsxs(ContextMenuItem, { variant: "destructive", onSelect: handleDeleteSelectedTasks, "data-testid": "taskboard-kanban-context-delete-selected", children: [_jsx(Trash2, { className: "h-3.5 w-3.5" }), selectedCount > 1 ? `Delete selected (${selectedCount})` : "Delete task"] }) })] }, `menu-${t.taskId}`));
273
+ })) })] }, col.status));
134
274
  }) })] }));
135
275
  }
136
276
  //# sourceMappingURL=KanbanView.js.map