@parhelia/core 0.3.12816 → 0.3.12818

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 (48) hide show
  1. package/dist/editor/ContentTree.d.ts +1 -1
  2. package/dist/editor/ContentTree.js +25 -3
  3. package/dist/editor/ContentTree.js.map +1 -1
  4. package/dist/editor/ai/terminal/useAgentStopCommand.js +16 -14
  5. package/dist/editor/ai/terminal/useAgentStopCommand.js.map +1 -1
  6. package/dist/editor/client/operations.js +12 -3
  7. package/dist/editor/client/operations.js.map +1 -1
  8. package/dist/editor/media-selector/Thumbnails.js +23 -10
  9. package/dist/editor/media-selector/Thumbnails.js.map +1 -1
  10. package/dist/editor/media-selector/mediaItemDrag.d.ts +22 -5
  11. package/dist/editor/media-selector/mediaItemDrag.js +108 -10
  12. package/dist/editor/media-selector/mediaItemDrag.js.map +1 -1
  13. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +45 -1
  14. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  15. package/dist/revision.d.ts +2 -2
  16. package/dist/revision.js +2 -2
  17. package/dist/task-board/TaskBoardWorkspace.js +186 -7
  18. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  19. package/dist/task-board/components/CreateTaskDialog.d.ts +2 -0
  20. package/dist/task-board/components/CreateTaskDialog.js +6 -3
  21. package/dist/task-board/components/CreateTaskDialog.js.map +1 -1
  22. package/dist/task-board/components/GoalCoverageBar.d.ts +4 -0
  23. package/dist/task-board/components/GoalCoverageBar.js +22 -0
  24. package/dist/task-board/components/GoalCoverageBar.js.map +1 -0
  25. package/dist/task-board/components/GoalDataView.d.ts +39 -0
  26. package/dist/task-board/components/GoalDataView.js +385 -0
  27. package/dist/task-board/components/GoalDataView.js.map +1 -0
  28. package/dist/task-board/components/GoalsMatrix.d.ts +16 -0
  29. package/dist/task-board/components/GoalsMatrix.js +129 -0
  30. package/dist/task-board/components/GoalsMatrix.js.map +1 -0
  31. package/dist/task-board/components/ProjectDashboard.d.ts +1 -1
  32. package/dist/task-board/components/ProjectGoalsPanel.d.ts +16 -0
  33. package/dist/task-board/components/ProjectGoalsPanel.js +74 -113
  34. package/dist/task-board/components/ProjectGoalsPanel.js.map +1 -1
  35. package/dist/task-board/components/SubgoalStatusIcon.d.ts +4 -0
  36. package/dist/task-board/components/SubgoalStatusIcon.js +19 -0
  37. package/dist/task-board/components/SubgoalStatusIcon.js.map +1 -0
  38. package/dist/task-board/components/goalDisplaySpec.d.ts +19 -0
  39. package/dist/task-board/components/goalDisplaySpec.js +72 -0
  40. package/dist/task-board/components/goalDisplaySpec.js.map +1 -0
  41. package/dist/task-board/goalRefreshState.d.ts +6 -0
  42. package/dist/task-board/goalRefreshState.js +11 -0
  43. package/dist/task-board/goalRefreshState.js.map +1 -0
  44. package/dist/task-board/goalTaskNavigationState.d.ts +43 -0
  45. package/dist/task-board/goalTaskNavigationState.js +65 -0
  46. package/dist/task-board/goalTaskNavigationState.js.map +1 -0
  47. package/dist/task-board/types.d.ts +6 -0
  48. package/package.json +1 -1
@@ -0,0 +1,65 @@
1
+ export const initialGoalTaskNavigationState = {
2
+ pending: null,
3
+ outcome: { kind: "none" },
4
+ };
5
+ function sameId(left, right) {
6
+ return left?.toLowerCase() === right.toLowerCase();
7
+ }
8
+ export function reduceGoalTaskNavigation(state, action) {
9
+ switch (action.type) {
10
+ case "request": {
11
+ const isCurrentProject = sameId(action.currentProjectId, action.projectId);
12
+ const existingTask = isCurrentProject
13
+ ? action.currentTaskIds.find((taskId) => sameId(taskId, action.taskId))
14
+ : undefined;
15
+ if (existingTask) {
16
+ return {
17
+ pending: null,
18
+ outcome: { kind: "select", taskId: existingTask },
19
+ };
20
+ }
21
+ if (isCurrentProject &&
22
+ action.inFlightGeneration === undefined &&
23
+ action.latestIssuedGeneration > 0) {
24
+ return { pending: null, outcome: { kind: "missing" } };
25
+ }
26
+ return {
27
+ pending: {
28
+ projectId: action.projectId,
29
+ taskId: action.taskId,
30
+ requiredGeneration: action.inFlightGeneration ?? action.latestIssuedGeneration + 1,
31
+ },
32
+ outcome: {
33
+ kind: "load",
34
+ projectId: action.projectId,
35
+ switchProject: !isCurrentProject,
36
+ refresh: isCurrentProject && action.inFlightGeneration === undefined,
37
+ },
38
+ };
39
+ }
40
+ case "projectSelected":
41
+ return {
42
+ pending: state.pending && sameId(action.projectId, state.pending.projectId)
43
+ ? state.pending
44
+ : null,
45
+ outcome: { kind: "none" },
46
+ };
47
+ case "tasksLoaded": {
48
+ if (!state.pending ||
49
+ !sameId(action.projectId, state.pending.projectId) ||
50
+ action.generation < state.pending.requiredGeneration) {
51
+ return { ...state, outcome: { kind: "none" } };
52
+ }
53
+ const matchedTask = action.taskIds.find((taskId) => sameId(taskId, state.pending.taskId));
54
+ return {
55
+ pending: null,
56
+ outcome: matchedTask
57
+ ? { kind: "select", taskId: matchedTask }
58
+ : { kind: "missing" },
59
+ };
60
+ }
61
+ case "cancel":
62
+ return initialGoalTaskNavigationState;
63
+ }
64
+ }
65
+ //# sourceMappingURL=goalTaskNavigationState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goalTaskNavigationState.js","sourceRoot":"","sources":["../../src/task-board/goalTaskNavigationState.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,9 @@ export type GoalData = unknown;
65
65
  export type GoalCoverage = {
66
66
  total: number;
67
67
  done: number;
68
+ inProgress: number;
69
+ failed: number;
70
+ pending: number;
68
71
  skipped: number;
69
72
  hasMeasurableSubgoals: boolean;
70
73
  percent?: number | null;
@@ -115,12 +118,15 @@ export type GoalDefinition = {
115
118
  sortOrder?: number;
116
119
  defaultScopeJson?: string | null;
117
120
  dataShape?: string | null;
121
+ displaySpec?: string | null;
118
122
  };
119
123
  export type ProjectGoalsResponse = {
120
124
  projectId: string;
121
125
  includeDescendants: boolean;
122
126
  goals: Goal[];
123
127
  catalog: GoalDefinition[];
128
+ /** Raw Display Spec JSON keyed by source goal-definition id, including disabled definitions. */
129
+ displaySpecs?: Record<string, string>;
124
130
  /** Effective permission per project id in scope (row-by-row edit gating). */
125
131
  permissions: Record<string, ProjectPermission | string>;
126
132
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parhelia/core",
3
- "version": "0.3.12816",
3
+ "version": "0.3.12818",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },