@parhelia/core 0.1.12241 → 0.1.12259

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 (137) hide show
  1. package/dist/agents-view/AgentsWorkspaceView.js +9 -1
  2. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  3. package/dist/components/MarkdownDisplay.d.ts +10 -0
  4. package/dist/components/MarkdownDisplay.js +197 -0
  5. package/dist/components/MarkdownDisplay.js.map +1 -0
  6. package/dist/config/config.js +4 -1
  7. package/dist/config/config.js.map +1 -1
  8. package/dist/config/notificationRoutes.d.ts +2 -0
  9. package/dist/config/notificationRoutes.js +195 -0
  10. package/dist/config/notificationRoutes.js.map +1 -0
  11. package/dist/config/types.d.ts +7 -0
  12. package/dist/config/types.js.map +1 -1
  13. package/dist/editor/ContentTree.d.ts +2 -1
  14. package/dist/editor/ContentTree.js +11 -3
  15. package/dist/editor/ContentTree.js.map +1 -1
  16. package/dist/editor/Editor.js +12 -3
  17. package/dist/editor/Editor.js.map +1 -1
  18. package/dist/editor/GlobalMenuBar.js +29 -1
  19. package/dist/editor/GlobalMenuBar.js.map +1 -1
  20. package/dist/editor/ai/AgentTerminal.d.ts +9 -1
  21. package/dist/editor/ai/AgentTerminal.js +233 -53
  22. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  23. package/dist/editor/ai/dialogs/AgentDialogHandler.js +5 -0
  24. package/dist/editor/ai/dialogs/AgentDialogHandler.js.map +1 -1
  25. package/dist/editor/ai/dialogs/QuestionnaireInline.d.ts +3 -1
  26. package/dist/editor/ai/dialogs/QuestionnaireInline.js +5 -5
  27. package/dist/editor/ai/dialogs/QuestionnaireInline.js.map +1 -1
  28. package/dist/editor/client/EditorShell.js +5 -1
  29. package/dist/editor/client/EditorShell.js.map +1 -1
  30. package/dist/editor/client/editContext.d.ts +4 -1
  31. package/dist/editor/client/editContext.js.map +1 -1
  32. package/dist/editor/client/hooks/useEditorWebSocket.js +36 -4
  33. package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
  34. package/dist/editor/client/hooks/useSocketMessageHandler.js +2 -0
  35. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  36. package/dist/editor/client/operations.d.ts +2 -1
  37. package/dist/editor/client/operations.js +8 -0
  38. package/dist/editor/client/operations.js.map +1 -1
  39. package/dist/editor/commands/itemCommands.d.ts +1 -0
  40. package/dist/editor/commands/itemCommands.js +23 -1
  41. package/dist/editor/commands/itemCommands.js.map +1 -1
  42. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +2 -134
  43. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  44. package/dist/editor/notifications/NotificationCenter.d.ts +1 -0
  45. package/dist/editor/notifications/NotificationCenter.js +69 -0
  46. package/dist/editor/notifications/NotificationCenter.js.map +1 -0
  47. package/dist/editor/notifications/NotificationItem.d.ts +14 -0
  48. package/dist/editor/notifications/NotificationItem.js +40 -0
  49. package/dist/editor/notifications/NotificationItem.js.map +1 -0
  50. package/dist/editor/notifications/WatchButton.d.ts +7 -0
  51. package/dist/editor/notifications/WatchButton.js +191 -0
  52. package/dist/editor/notifications/WatchButton.js.map +1 -0
  53. package/dist/editor/notifications/notificationListState.d.ts +25 -0
  54. package/dist/editor/notifications/notificationListState.js +38 -0
  55. package/dist/editor/notifications/notificationListState.js.map +1 -0
  56. package/dist/editor/notifications/notificationRoutes.d.ts +15 -0
  57. package/dist/editor/notifications/notificationRoutes.js +58 -0
  58. package/dist/editor/notifications/notificationRoutes.js.map +1 -0
  59. package/dist/editor/notifications/useNotificationSubscriptions.d.ts +14 -0
  60. package/dist/editor/notifications/useNotificationSubscriptions.js +88 -0
  61. package/dist/editor/notifications/useNotificationSubscriptions.js.map +1 -0
  62. package/dist/editor/notifications/useNotifications.d.ts +28 -0
  63. package/dist/editor/notifications/useNotifications.js +166 -0
  64. package/dist/editor/notifications/useNotifications.js.map +1 -0
  65. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  66. package/dist/editor/reviews/CreateReviewConfirmStep.d.ts +2 -1
  67. package/dist/editor/reviews/CreateReviewConfirmStep.js +3 -3
  68. package/dist/editor/reviews/CreateReviewConfirmStep.js.map +1 -1
  69. package/dist/editor/reviews/CreateReviewDialog.js +24 -9
  70. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  71. package/dist/editor/reviews/ReviewDetail.js +2 -1
  72. package/dist/editor/reviews/ReviewDetail.js.map +1 -1
  73. package/dist/editor/services/agentService.d.ts +6 -0
  74. package/dist/editor/services/agentService.js +32 -10
  75. package/dist/editor/services/agentService.js.map +1 -1
  76. package/dist/editor/services/contentService.d.ts +1 -0
  77. package/dist/editor/services/contentService.js +3 -0
  78. package/dist/editor/services/contentService.js.map +1 -1
  79. package/dist/editor/services/notificationService.d.ts +73 -0
  80. package/dist/editor/services/notificationService.js +72 -0
  81. package/dist/editor/services/notificationService.js.map +1 -0
  82. package/dist/editor/ui/PublishItemDialog.d.ts +8 -0
  83. package/dist/editor/ui/PublishItemDialog.js +193 -0
  84. package/dist/editor/ui/PublishItemDialog.js.map +1 -0
  85. package/dist/editor/ui/PublishRestrictionsDialog.js +165 -75
  86. package/dist/editor/ui/PublishRestrictionsDialog.js.map +1 -1
  87. package/dist/editor/ui/TreeListSelector.d.ts +2 -1
  88. package/dist/editor/ui/TreeListSelector.js +2 -2
  89. package/dist/editor/ui/TreeListSelector.js.map +1 -1
  90. package/dist/revision.d.ts +2 -2
  91. package/dist/revision.js +2 -2
  92. package/dist/splash-screen/ParheliaAssistantChat.js +9 -9
  93. package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
  94. package/dist/task-board/TaskBoardWorkspace.js +716 -402
  95. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  96. package/dist/task-board/components/AssignAgentDialog.js +2 -3
  97. package/dist/task-board/components/AssignAgentDialog.js.map +1 -1
  98. package/dist/task-board/components/CreateProjectDialog.d.ts +4 -1
  99. package/dist/task-board/components/CreateProjectDialog.js +23 -8
  100. package/dist/task-board/components/CreateProjectDialog.js.map +1 -1
  101. package/dist/task-board/components/TaskAgentPanel.js +10 -6
  102. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  103. package/dist/task-board/components/TaskBoardMyTasksSidebar.js +48 -2
  104. package/dist/task-board/components/TaskBoardMyTasksSidebar.js.map +1 -1
  105. package/dist/task-board/components/TaskBoardTitlebar.js +4 -4
  106. package/dist/task-board/components/TaskBoardTitlebar.js.map +1 -1
  107. package/dist/task-board/components/TaskDetailPanel.js +2 -1
  108. package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
  109. package/dist/task-board/components/TaskReviewActions.d.ts +8 -0
  110. package/dist/task-board/components/TaskReviewActions.js +110 -0
  111. package/dist/task-board/components/TaskReviewActions.js.map +1 -0
  112. package/dist/task-board/components/TaskRow.js +1 -1
  113. package/dist/task-board/components/TaskRow.js.map +1 -1
  114. package/dist/task-board/components/WizardCommunicationCenter.d.ts +30 -0
  115. package/dist/task-board/components/WizardCommunicationCenter.js +185 -0
  116. package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -0
  117. package/dist/task-board/taskAgentConfig.d.ts +1 -3
  118. package/dist/task-board/taskAgentConfig.js +5 -15
  119. package/dist/task-board/taskAgentConfig.js.map +1 -1
  120. package/dist/task-board/taskAgentLink.js +4 -2
  121. package/dist/task-board/taskAgentLink.js.map +1 -1
  122. package/dist/task-board/taskBoardNavStore.d.ts +0 -1
  123. package/dist/task-board/taskBoardNavStore.js +0 -1
  124. package/dist/task-board/taskBoardNavStore.js.map +1 -1
  125. package/dist/task-board/taskExecutionStatus.js +13 -3
  126. package/dist/task-board/taskExecutionStatus.js.map +1 -1
  127. package/dist/task-board/types.d.ts +2 -0
  128. package/dist/task-board/views/KanbanView.js +3 -0
  129. package/dist/task-board/views/KanbanView.js.map +1 -1
  130. package/dist/task-board/views/ListView.js +3 -0
  131. package/dist/task-board/views/ListView.js.map +1 -1
  132. package/dist/task-board/views/WizardView.d.ts +9 -7
  133. package/dist/task-board/views/WizardView.js +164 -39
  134. package/dist/task-board/views/WizardView.js.map +1 -1
  135. package/dist/types.d.ts +19 -1
  136. package/package.json +1 -2
  137. package/styles.css +6 -10
@@ -1,16 +1,71 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useMemo } from "react";
3
- import { Circle, Copy, Loader2, Send, Sparkles, TerminalSquare } from "lucide-react";
2
+ import { useEffect, useMemo, useState } from "react";
3
+ import { Bot, ChevronDown, Circle, Loader2, User } from "lucide-react";
4
4
  import { normalizeTaskStatus } from "../taskStatus";
5
+ import { getLinkedAgentId } from "../taskAgentLink";
5
6
  import { ProjectPropertiesPanel } from "../components/ProjectPropertiesPanel";
7
+ function normalizeAgentStatus(status) {
8
+ if (status === undefined || status === null)
9
+ return undefined;
10
+ if (typeof status === "number")
11
+ return status;
12
+ const normalized = String(status)
13
+ .trim()
14
+ .replace(/[^a-z0-9]/gi, "")
15
+ .toLowerCase();
16
+ switch (normalized) {
17
+ case "running":
18
+ return "running";
19
+ case "waitingforapproval":
20
+ return "waitingForApproval";
21
+ case "waitingforinput":
22
+ return "waitingForInput";
23
+ case "costlimitreached":
24
+ return "costLimitReached";
25
+ case "error":
26
+ return "error";
27
+ case "idle":
28
+ return "idle";
29
+ case "completed":
30
+ return "completed";
31
+ case "closed":
32
+ return "closed";
33
+ case "cancelled":
34
+ return "cancelled";
35
+ case "new":
36
+ return "new";
37
+ default:
38
+ return status;
39
+ }
40
+ }
41
+ function getBlockedTaskIds(taskList, blockersByTaskId, taskById) {
42
+ const ids = new Set();
43
+ for (const task of taskList) {
44
+ if (normalizeTaskStatus(task.status, task.executionStatus) === "Done") {
45
+ continue;
46
+ }
47
+ const blockerIds = blockersByTaskId.get(task.taskId) || [];
48
+ const isBlocked = blockerIds.some((blockerId) => {
49
+ const blockerTask = taskById.get(blockerId);
50
+ if (!blockerTask)
51
+ return true;
52
+ return (normalizeTaskStatus(blockerTask.status, blockerTask.executionStatus) !== "Done");
53
+ });
54
+ if (isBlocked) {
55
+ ids.add(task.taskId);
56
+ }
57
+ }
58
+ return ids;
59
+ }
6
60
  export function WizardView(props) {
7
- const { tasks, dependencies, selectedTaskId, onSelectTask, embeddedAgentPanel, guidance, guidanceLoading = false, actionInFlightId = null, onRunGuidanceAction, onOpenAgentTerminal, projectId, canEditProperties = false, } = props;
61
+ const { tasks, projectTasksLoading = false, dependencies, subprojectTaskLists, subprojectTasksLoading = false, selectedTaskId, onSelectTask, agentStatusesById, communicationPanel, projectId, canEditProperties = false, } = props;
62
+ const allVisibleTasks = useMemo(() => [...tasks, ...subprojectTaskLists.flatMap((subproject) => subproject.tasks)], [tasks, subprojectTaskLists]);
8
63
  const taskById = useMemo(() => {
9
64
  const map = new Map();
10
- for (const task of tasks)
65
+ for (const task of allVisibleTasks)
11
66
  map.set(task.taskId, task);
12
67
  return map;
13
- }, [tasks]);
68
+ }, [allVisibleTasks]);
14
69
  const blockersByTaskId = useMemo(() => {
15
70
  const map = new Map();
16
71
  for (const dependency of dependencies) {
@@ -38,41 +93,111 @@ export function WizardView(props) {
38
93
  }
39
94
  return ids;
40
95
  }, [tasks]);
41
- const openTasks = useMemo(() => sortedTasks.filter((task) => normalizeTaskStatus(task.status, task.executionStatus) !== "Done"), [sortedTasks]);
96
+ const orderedTasks = sortedTasks;
42
97
  const blockedTaskIds = useMemo(() => {
43
- const ids = new Set();
44
- for (const task of openTasks) {
45
- const blockerIds = blockersByTaskId.get(task.taskId) || [];
46
- const isBlocked = blockerIds.some((blockerId) => {
47
- const blockerTask = taskById.get(blockerId);
48
- if (!blockerTask)
49
- return true;
50
- return normalizeTaskStatus(blockerTask.status, blockerTask.executionStatus) !== "Done";
51
- });
52
- if (isBlocked)
53
- ids.add(task.taskId);
54
- }
55
- return ids;
56
- }, [openTasks, blockersByTaskId, taskById]);
57
- const selectedTask = selectedTaskId ? taskById.get(selectedTaskId) || null : null;
98
+ return getBlockedTaskIds(sortedTasks, blockersByTaskId, taskById);
99
+ }, [sortedTasks, blockersByTaskId, taskById]);
100
+ const selectedTask = selectedTaskId
101
+ ? taskById.get(selectedTaskId) || null
102
+ : null;
58
103
  const completedCount = doneTaskIds.size;
59
- const totalCount = tasks.length;
60
- const progressPercent = totalCount > 0 ? Math.round((completedCount / totalCount) * 100) : 0;
61
- const recommendedActions = guidance?.guidance?.recommendedActions || [];
62
- const guidanceCard = (_jsxs("div", { className: "rounded-xl border bg-white p-4", children: [_jsxs("div", { className: "mb-3 flex items-center gap-2 text-sm font-semibold text-slate-800", children: [_jsx(Sparkles, { className: "h-4 w-4 text-blue-600" }), "Guidance"] }), _jsxs("button", { type: "button", className: "mb-3 inline-flex items-center gap-2 rounded-md border border-slate-300 bg-white px-3 py-1.5 text-xs font-medium text-slate-700 hover:bg-slate-50", onClick: onOpenAgentTerminal, children: [_jsx(TerminalSquare, { className: "h-3.5 w-3.5" }), "Open Task Agent"] }), guidanceLoading ? (_jsxs("div", { className: "flex items-center gap-2 rounded-lg border border-sky-200 bg-sky-50 p-3 text-sm text-sky-900", children: [_jsx(Loader2, { className: "h-4 w-4 animate-spin" }), "Generating guidance..."] })) : guidance?.status !== "success" || !guidance?.guidance ? (_jsx("div", { className: "rounded-lg border border-amber-200 bg-amber-50 p-3 text-sm text-amber-900", children: guidance?.error || "Wizard guidance is currently unavailable." })) : (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "rounded-lg border border-sky-200 bg-sky-50 p-3 text-sky-900", children: [_jsx("div", { className: "text-xs uppercase tracking-wide", children: "Do this next" }), _jsx("div", { className: "mt-1 text-sm font-semibold", children: guidance.guidance.primaryInstruction }), guidance.guidance.whyThisMatters ? (_jsx("div", { className: "mt-2 text-xs text-sky-800", children: guidance.guidance.whyThisMatters })) : null] }), recommendedActions.length > 0 ? (_jsx("div", { className: "grid gap-2", children: recommendedActions.map((action) => {
63
- const isPrimary = action.style === "primary";
64
- const actionKey = action.actionId ||
65
- `${action.type}-${action.taskId || "none"}-${action.agentId || "none"}`;
66
- const isSending = actionInFlightId === actionKey;
67
- return (_jsxs("button", { type: "button", disabled: isSending, onClick: () => void onRunGuidanceAction?.(action), className: `inline-flex items-center justify-center gap-2 rounded-md px-3 py-2 text-sm font-medium ${isPrimary
68
- ? "bg-blue-600 text-white hover:bg-blue-700"
69
- : "border border-slate-300 bg-white text-slate-800 hover:bg-slate-50"} ${isSending ? "opacity-70" : ""}`, children: [isSending ? (_jsx(Loader2, { className: "h-4 w-4 animate-spin" })) : action.type === "copy_reply" ? (_jsx(Copy, { className: "h-4 w-4" })) : action.type === "send_prompt_to_agent" ? (_jsx(Send, { className: "h-4 w-4" })) : null, isSending ? "Sending..." : action.label] }, actionKey));
70
- }) })) : null] }))] }));
71
- const openTasksCard = (_jsxs("div", { className: "rounded-xl border bg-white p-4", children: [_jsxs("div", { className: "mb-2 flex items-center justify-between gap-2", children: [_jsxs("span", { className: "text-sm font-semibold text-slate-800", children: ["Open Tasks (", openTasks.length, ")"] }), _jsxs("span", { className: "rounded-md bg-slate-100 px-2 py-0.5 text-xs font-semibold text-slate-700", children: [completedCount, "/", totalCount, " done"] })] }), _jsx("div", { className: "mb-3", children: _jsx("div", { className: "h-1.5 overflow-hidden rounded-full bg-slate-100", children: _jsx("div", { className: "h-full rounded-full bg-emerald-500 transition-all", style: { width: `${progressPercent}%` } }) }) }), _jsx("div", { className: "space-y-1", children: openTasks.length === 0 ? (_jsx("div", { className: "text-xs text-slate-500", children: "No open tasks." })) : (openTasks.slice(0, 8).map((task) => {
72
- const isSelected = selectedTask?.taskId === task.taskId;
73
- const isBlocked = blockedTaskIds.has(task.taskId);
74
- return (_jsxs("button", { type: "button", onClick: () => onSelectTask(task.taskId), className: `flex w-full items-center justify-between rounded-md px-2 py-2 text-left text-sm ${isSelected ? "bg-blue-50 text-blue-900" : "hover:bg-slate-50"}`, children: [_jsx("span", { className: "truncate", children: task.title }), isBlocked ? (_jsx(Circle, { className: "h-3.5 w-3.5 text-amber-500", "aria-label": "Blocked by dependencies" })) : (_jsx(Circle, { className: "h-3.5 w-3.5 text-emerald-500", "aria-label": "Ready to work on" }))] }, task.taskId));
75
- })) })] }));
76
- return (_jsxs("div", { className: `flex h-full min-h-0 flex-col gap-3 p-4 ${embeddedAgentPanel ? "overflow-hidden" : "overflow-y-auto"}`, children: [_jsx("div", { className: "shrink-0", children: _jsx(ProjectPropertiesPanel, { projectId: projectId, canEdit: canEditProperties }) }), embeddedAgentPanel ? (_jsxs("div", { className: "grid min-h-0 flex-1 gap-3 overflow-hidden xl:grid-cols-[1.1fr_1fr]", children: [_jsxs("div", { className: "min-h-0 space-y-3 overflow-y-auto", children: [guidanceCard, openTasksCard] }), _jsx("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border bg-white", children: embeddedAgentPanel })] })) : (_jsxs("div", { className: "grid items-start gap-3 lg:grid-cols-2", children: [guidanceCard, openTasksCard] }))] }));
104
+ const [collapsedProjectIds, setCollapsedProjectIds] = useState({});
105
+ useEffect(() => {
106
+ setCollapsedProjectIds((previous) => {
107
+ const next = {};
108
+ for (const subproject of subprojectTaskLists) {
109
+ next[subproject.projectId] = previous[subproject.projectId] ?? false;
110
+ }
111
+ return next;
112
+ });
113
+ }, [subprojectTaskLists]);
114
+ const renderTaskRows = (orderedTaskList, blockedIds, groupProjectId, loading = false) => {
115
+ if (orderedTaskList.length === 0) {
116
+ if (loading) {
117
+ return (_jsxs("div", { className: "flex items-center gap-2 text-xs text-slate-500", children: [_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" }), _jsx("span", { children: "Loading tasks..." })] }));
118
+ }
119
+ return _jsx("div", { className: "text-xs text-slate-500", children: "No tasks yet." });
120
+ }
121
+ return orderedTaskList.map((task) => {
122
+ const isSelected = selectedTask?.taskId === task.taskId;
123
+ const taskStatus = normalizeTaskStatus(task.status, task.executionStatus);
124
+ const linkedAgentId = getLinkedAgentId(task);
125
+ const agentStatus = (linkedAgentId ? agentStatusesById[linkedAgentId.toLowerCase()] : undefined) ??
126
+ normalizeAgentStatus(task.agentStatus);
127
+ const isAgentRunning = agentStatus === "running";
128
+ const isWaitingForInput = agentStatus === "waitingForInput";
129
+ const isWaitingForApproval = agentStatus === "waitingForApproval";
130
+ const isReview = taskStatus === "Review";
131
+ const isDone = taskStatus === "Done";
132
+ const isBlocked = blockedIds.has(task.taskId);
133
+ const statusLabel = isBlocked
134
+ ? null
135
+ : isAgentRunning
136
+ ? "Running"
137
+ : isWaitingForApproval || isReview
138
+ ? "Awaiting approval"
139
+ : isWaitingForInput
140
+ ? "Waiting for input"
141
+ : isDone
142
+ ? "Done"
143
+ : null;
144
+ const isPlanTask = String(task.taskType ?? "").toLowerCase() === "plan" ||
145
+ task.title === "Project Plan";
146
+ const assigneeValue = task.assigneeDisplayName ||
147
+ task.assigneeId ||
148
+ (task.assigneeType === "Agent" && isPlanTask
149
+ ? "Project Planner"
150
+ : "Unassigned");
151
+ return (_jsxs("button", { type: "button", onClick: () => onSelectTask(task.taskId), "data-testid": groupProjectId
152
+ ? `taskboard-wizard-task-${groupProjectId}-${task.taskId}`
153
+ : undefined, className: `flex w-full items-center justify-between gap-3 rounded-md px-2 py-2 text-left text-sm transition-colors duration-200 ${isSelected ? "bg-blue-50 text-blue-900" : "hover:bg-slate-50"}`, children: [_jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "block truncate", children: task.title }), _jsxs("span", { className: "mt-0.5 flex items-center gap-1 text-[11px] text-slate-500", children: [task.assigneeType === "Agent" ? (_jsx(Bot, { className: "h-3 w-3 shrink-0" })) : (_jsx(User, { className: "h-3 w-3 shrink-0" })), _jsx("span", { className: "truncate", "data-testid": `taskboard-wizard-task-assignee-${task.taskId}`, title: assigneeValue, children: assigneeValue })] })] }), _jsxs("span", { className: "flex shrink-0 items-center gap-2", children: [statusLabel ? (_jsx("span", { className: `rounded-full px-2 py-0.5 text-[11px] font-medium ${isAgentRunning
154
+ ? "bg-sky-100 text-sky-700"
155
+ : isWaitingForApproval || isReview
156
+ ? "bg-amber-100 text-amber-700"
157
+ : isWaitingForInput
158
+ ? "bg-amber-100 text-amber-700"
159
+ : isDone
160
+ ? "bg-emerald-100 text-emerald-700"
161
+ : "bg-slate-100 text-slate-700"}`, children: statusLabel })) : null, isAgentRunning ? (_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin text-sky-600", "aria-label": "Agent running" })) : isWaitingForApproval || isReview ? (_jsx(Circle, { className: "h-3.5 w-3.5 text-amber-500", "aria-label": "Awaiting approval" })) : isWaitingForInput ? (_jsx(Circle, { className: "h-3.5 w-3.5 text-amber-500", "aria-label": "Waiting for input" })) : isDone ? (_jsx(Circle, { className: "h-3.5 w-3.5 fill-emerald-500 text-emerald-500", "aria-label": "Completed" })) : isBlocked ? (_jsx(Circle, { className: "h-3.5 w-3.5 text-amber-500", "aria-label": "Blocked by dependencies" })) : (_jsx(Circle, { className: "h-3.5 w-3.5 text-slate-300", "aria-label": "Not started" }))] })] }, task.taskId));
162
+ });
163
+ };
164
+ const renderTaskPanel = (options) => {
165
+ const { projectId: panelProjectId, title, taskList, completedTaskCount: panelCompletedTaskCount, blockedIds, collapsible = false, collapsed = false, } = options;
166
+ const panelTotalCount = taskList.length;
167
+ const panelProgressPercent = panelTotalCount > 0
168
+ ? Math.round((panelCompletedTaskCount / panelTotalCount) * 100)
169
+ : 0;
170
+ return (_jsxs("div", { className: "rounded-xl border bg-white p-4", "data-testid": `taskboard-wizard-task-panel-${panelProjectId}`, children: [_jsxs("div", { className: "mb-2 flex items-center justify-between gap-2", children: [_jsx("div", { className: "min-w-0", children: collapsible ? (_jsxs("button", { type: "button", onClick: () => setCollapsedProjectIds((previous) => ({
171
+ ...previous,
172
+ [panelProjectId]: !collapsed,
173
+ })), "data-testid": `taskboard-wizard-task-panel-toggle-${panelProjectId}`, className: "flex items-center gap-2 text-left text-sm font-semibold text-slate-800", children: [_jsx(ChevronDown, { className: `h-4 w-4 transition-transform ${collapsed ? "-rotate-90" : "rotate-0"}` }), _jsx("span", { className: "truncate", children: title })] })) : (_jsx("span", { className: "text-sm font-semibold text-slate-800", children: title })) }), _jsxs("span", { className: "rounded-md bg-slate-100 px-2 py-0.5 text-xs font-semibold text-slate-700", children: [panelCompletedTaskCount, "/", panelTotalCount, " done"] })] }), _jsx("div", { className: "mb-3", children: _jsx("div", { className: "h-1.5 overflow-hidden rounded-full bg-slate-100", children: _jsx("div", { className: "h-full rounded-full bg-emerald-500 transition-all", style: { width: `${panelProgressPercent}%` } }) }) }), collapsed ? null : (_jsx("div", { className: "space-y-1", children: renderTaskRows(taskList, blockedIds, panelProjectId, panelProjectId === projectId
174
+ ? projectTasksLoading
175
+ : subprojectTasksLoading) }))] }, panelProjectId));
176
+ };
177
+ const allTasksCard = (_jsxs("div", { className: "space-y-3", children: [renderTaskPanel({
178
+ projectId,
179
+ title: `${props.projectTitle} Tasks`,
180
+ taskList: orderedTasks,
181
+ completedTaskCount: completedCount,
182
+ blockedIds: blockedTaskIds,
183
+ }), subprojectTaskLists.map((subproject) => {
184
+ const orderedSubprojectTasks = [...subproject.tasks].sort((a, b) => {
185
+ if (a.sortOrder !== b.sortOrder)
186
+ return a.sortOrder - b.sortOrder;
187
+ return a.createdAt.localeCompare(b.createdAt);
188
+ });
189
+ const subprojectBlockedTaskIds = getBlockedTaskIds(orderedSubprojectTasks, blockersByTaskId, taskById);
190
+ const subprojectCompletedCount = orderedSubprojectTasks.filter((task) => normalizeTaskStatus(task.status, task.executionStatus) === "Done").length;
191
+ return renderTaskPanel({
192
+ projectId: subproject.projectId,
193
+ title: `${subproject.title} (${orderedSubprojectTasks.length})`,
194
+ taskList: orderedSubprojectTasks,
195
+ completedTaskCount: subprojectCompletedCount,
196
+ blockedIds: subprojectBlockedTaskIds,
197
+ collapsible: true,
198
+ collapsed: collapsedProjectIds[subproject.projectId] ?? false,
199
+ });
200
+ })] }));
201
+ return (_jsxs("div", { className: `flex h-full min-h-0 flex-col gap-3 p-4 ${communicationPanel ? "overflow-hidden" : "overflow-y-auto"}`, children: [_jsx("div", { className: "shrink-0", children: _jsx(ProjectPropertiesPanel, { projectId: projectId, canEdit: canEditProperties }) }), communicationPanel ? (_jsxs("div", { className: "grid min-h-0 flex-1 gap-3 overflow-hidden xl:grid-cols-[minmax(320px,0.95fr)_minmax(0,1.35fr)]", children: [_jsx("div", { className: "min-h-0 overflow-y-auto", children: allTasksCard }), _jsx("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm", children: communicationPanel })] })) : (allTasksCard)] }));
77
202
  }
78
203
  //# sourceMappingURL=WizardView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WizardView.js","sourceRoot":"","sources":["../../../src/task-board/views/WizardView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WizardView.js","sourceRoot":"","sources":["../../../src/task-board/views/WizardView.tsx"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -56,7 +56,7 @@ export type EditSession = {
56
56
  color: string;
57
57
  };
58
58
  export type EditOperation = {
59
- type: "edit-field" | "remove-component" | "move-component" | "add-component" | "synchronize-components" | "link-component" | "duplicate-components" | "rename-item" | "change-template" | "create-item" | "delete-items" | "add-version" | "remove-version" | "move-items" | "copy-items" | "import-items" | "convert-to-shared";
59
+ type: "edit-field" | "remove-component" | "move-component" | "add-component" | "synchronize-components" | "link-component" | "duplicate-components" | "rename-item" | "change-template" | "create-item" | "delete-items" | "add-version" | "remove-version" | "move-items" | "copy-items" | "import-items" | "publish-item" | "convert-to-shared";
60
60
  date: string;
61
61
  id: string;
62
62
  user?: User;
@@ -183,6 +183,18 @@ export type ImportItemsOperation = EditOperation & {
183
183
  failureCount?: number;
184
184
  summary?: string;
185
185
  };
186
+ export type PublishMode = "smart" | "republish";
187
+ export type PublishItemOperation = EditOperation & {
188
+ type: "publish-item";
189
+ item: ItemDescriptor;
190
+ targetDatabases: string[];
191
+ languages: string[];
192
+ publishMode: PublishMode;
193
+ includeSubitems: boolean;
194
+ publishRelatedItems: boolean;
195
+ publishedTargets?: string[];
196
+ publishedLanguages?: string[];
197
+ };
186
198
  export type AddVersionOperation = EditOperation & {
187
199
  type: "add-version";
188
200
  item: ItemDescriptor;
@@ -353,6 +365,12 @@ export type LanguagesAndVersions = {
353
365
  unpublish?: string | null;
354
366
  unpublishFieldId?: string | null;
355
367
  };
368
+ publishingTargets?: {
369
+ name: string;
370
+ targetDatabase: string;
371
+ status: string;
372
+ message: string;
373
+ }[];
356
374
  };
357
375
  export type IndexStatus = {
358
376
  numberOfIndexedItems: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parhelia/core",
3
- "version": "0.1.12241",
3
+ "version": "0.1.12259",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -58,7 +58,6 @@
58
58
  "@radix-ui/react-tooltip": "^1.2.7",
59
59
  "@types/diff": "^7.0.2",
60
60
  "@types/lodash": "^4.17.16",
61
- "@uiw/react-md-editor": "^4.0.5",
62
61
  "@uiw/react-textarea-code-editor": "^3.1.1",
63
62
  "axios": "^1.6.7",
64
63
  "class-variance-authority": "^0.7.1",
package/styles.css CHANGED
@@ -966,23 +966,19 @@ body {
966
966
  animation-name: slide-in-from-left;
967
967
  }
968
968
 
969
- /* ViewTransition animations for Parhelia Assistant Chat */
970
- ::view-transition-old(.slide-fade-in) {
971
- animation: 200ms cubic-bezier(0.4, 0, 0.2, 1) both fade-out;
969
+ /* View slide-in animation */
970
+ .animate-view-slide-in {
971
+ animation: 400ms cubic-bezier(0.16, 1, 0.3, 1) both view-slide-in;
972
972
  }
973
973
 
974
- ::view-transition-new(.slide-fade-in) {
975
- animation: 400ms cubic-bezier(0.4, 0, 0.2, 1) both slide-fade-in-animation;
976
- }
977
-
978
- @keyframes slide-fade-in-animation {
974
+ @keyframes view-slide-in {
979
975
  from {
980
976
  opacity: 0;
981
- transform: translateY(20px);
977
+ transform: translateX(20px);
982
978
  }
983
979
  to {
984
980
  opacity: 1;
985
- transform: translateY(0);
981
+ transform: translateX(0);
986
982
  }
987
983
  }
988
984