@planweave-ai/runtime 0.1.0 → 0.1.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 (291) hide show
  1. package/dist/autoRun/claudeCodeIntegration.d.ts +3 -0
  2. package/dist/autoRun/claudeCodeIntegration.d.ts.map +1 -0
  3. package/dist/autoRun/claudeCodeIntegration.js +36 -0
  4. package/dist/autoRun/claudeCodeIntegration.js.map +1 -0
  5. package/dist/autoRun/codexExecutor.d.ts.map +1 -1
  6. package/dist/autoRun/codexExecutor.js +7 -4
  7. package/dist/autoRun/codexExecutor.js.map +1 -1
  8. package/dist/autoRun/codexIntegration.d.ts +3 -0
  9. package/dist/autoRun/codexIntegration.d.ts.map +1 -0
  10. package/dist/autoRun/codexIntegration.js +37 -0
  11. package/dist/autoRun/codexIntegration.js.map +1 -0
  12. package/dist/autoRun/executorIntegration.d.ts +29 -0
  13. package/dist/autoRun/executorIntegration.d.ts.map +1 -0
  14. package/dist/autoRun/executorIntegration.js +4 -0
  15. package/dist/autoRun/executorIntegration.js.map +1 -0
  16. package/dist/autoRun/executorPreflightTypes.d.ts +21 -0
  17. package/dist/autoRun/executorPreflightTypes.d.ts.map +1 -0
  18. package/dist/autoRun/executorPreflightTypes.js +2 -0
  19. package/dist/autoRun/executorPreflightTypes.js.map +1 -0
  20. package/dist/autoRun/executorShared.d.ts +1 -1
  21. package/dist/autoRun/executorShared.js +1 -1
  22. package/dist/autoRun/executors.d.ts +17 -11
  23. package/dist/autoRun/executors.d.ts.map +1 -1
  24. package/dist/autoRun/executors.js +234 -96
  25. package/dist/autoRun/executors.js.map +1 -1
  26. package/dist/autoRun/localReviewExecutor.d.ts.map +1 -1
  27. package/dist/autoRun/localReviewExecutor.js +6 -3
  28. package/dist/autoRun/localReviewExecutor.js.map +1 -1
  29. package/dist/autoRun/localReviewIntegration.d.ts +3 -0
  30. package/dist/autoRun/localReviewIntegration.d.ts.map +1 -0
  31. package/dist/autoRun/localReviewIntegration.js +34 -0
  32. package/dist/autoRun/localReviewIntegration.js.map +1 -0
  33. package/dist/autoRun/manualExecutor.d.ts +3 -0
  34. package/dist/autoRun/manualExecutor.d.ts.map +1 -0
  35. package/dist/autoRun/manualExecutor.js +80 -0
  36. package/dist/autoRun/manualExecutor.js.map +1 -0
  37. package/dist/autoRun/opencodeExecutor.d.ts.map +1 -1
  38. package/dist/autoRun/opencodeExecutor.js +6 -3
  39. package/dist/autoRun/opencodeExecutor.js.map +1 -1
  40. package/dist/autoRun/opencodeIntegration.d.ts +3 -0
  41. package/dist/autoRun/opencodeIntegration.d.ts.map +1 -0
  42. package/dist/autoRun/opencodeIntegration.js +34 -0
  43. package/dist/autoRun/opencodeIntegration.js.map +1 -0
  44. package/dist/autoRun/piIntegration.d.ts +3 -0
  45. package/dist/autoRun/piIntegration.d.ts.map +1 -0
  46. package/dist/autoRun/piIntegration.js +36 -0
  47. package/dist/autoRun/piIntegration.js.map +1 -0
  48. package/dist/autoRun/terminalAgentExecutor.d.ts +22 -0
  49. package/dist/autoRun/terminalAgentExecutor.d.ts.map +1 -0
  50. package/dist/autoRun/terminalAgentExecutor.js +132 -0
  51. package/dist/autoRun/terminalAgentExecutor.js.map +1 -0
  52. package/dist/desktop/canvasApi.d.ts.map +1 -1
  53. package/dist/desktop/canvasApi.js +177 -14
  54. package/dist/desktop/canvasApi.js.map +1 -1
  55. package/dist/desktop/canvasGraphApi.d.ts +6 -0
  56. package/dist/desktop/canvasGraphApi.d.ts.map +1 -0
  57. package/dist/desktop/canvasGraphApi.js +147 -0
  58. package/dist/desktop/canvasGraphApi.js.map +1 -0
  59. package/dist/desktop/fileSyncApi.d.ts.map +1 -1
  60. package/dist/desktop/fileSyncApi.js +5 -0
  61. package/dist/desktop/fileSyncApi.js.map +1 -1
  62. package/dist/desktop/graph/canvasHealthModel.d.ts +4 -0
  63. package/dist/desktop/graph/canvasHealthModel.d.ts.map +1 -0
  64. package/dist/desktop/graph/canvasHealthModel.js +181 -0
  65. package/dist/desktop/graph/canvasHealthModel.js.map +1 -0
  66. package/dist/desktop/graph/desktopDiagnostics.d.ts +15 -0
  67. package/dist/desktop/graph/desktopDiagnostics.d.ts.map +1 -0
  68. package/dist/desktop/graph/desktopDiagnostics.js +77 -0
  69. package/dist/desktop/graph/desktopDiagnostics.js.map +1 -0
  70. package/dist/desktop/graph/editModel.d.ts.map +1 -1
  71. package/dist/desktop/graph/editModel.js +54 -98
  72. package/dist/desktop/graph/editModel.js.map +1 -1
  73. package/dist/desktop/graph/projectCanvasAggregation.d.ts +14 -1
  74. package/dist/desktop/graph/projectCanvasAggregation.d.ts.map +1 -1
  75. package/dist/desktop/graph/projectCanvasAggregation.js +61 -11
  76. package/dist/desktop/graph/projectCanvasAggregation.js.map +1 -1
  77. package/dist/desktop/graph/projectProjectionModel.d.ts +16 -0
  78. package/dist/desktop/graph/projectProjectionModel.d.ts.map +1 -0
  79. package/dist/desktop/graph/projectProjectionModel.js +185 -0
  80. package/dist/desktop/graph/projectProjectionModel.js.map +1 -0
  81. package/dist/desktop/graph/projectSnapshotModel.d.ts +3 -0
  82. package/dist/desktop/graph/projectSnapshotModel.d.ts.map +1 -0
  83. package/dist/desktop/graph/projectSnapshotModel.js +108 -0
  84. package/dist/desktop/graph/projectSnapshotModel.js.map +1 -0
  85. package/dist/desktop/graph/readModel.d.ts +9 -0
  86. package/dist/desktop/graph/readModel.d.ts.map +1 -1
  87. package/dist/desktop/graph/readModel.js +20 -9
  88. package/dist/desktop/graph/readModel.js.map +1 -1
  89. package/dist/desktop/graph/resultsFileIndex.d.ts +28 -0
  90. package/dist/desktop/graph/resultsFileIndex.d.ts.map +1 -0
  91. package/dist/desktop/graph/resultsFileIndex.js +150 -0
  92. package/dist/desktop/graph/resultsFileIndex.js.map +1 -0
  93. package/dist/desktop/graph/searchIndexModel.d.ts +22 -0
  94. package/dist/desktop/graph/searchIndexModel.d.ts.map +1 -0
  95. package/dist/desktop/graph/searchIndexModel.js +142 -0
  96. package/dist/desktop/graph/searchIndexModel.js.map +1 -0
  97. package/dist/desktop/graph/searchModel.d.ts +6 -0
  98. package/dist/desktop/graph/searchModel.d.ts.map +1 -1
  99. package/dist/desktop/graph/searchModel.js +15 -123
  100. package/dist/desktop/graph/searchModel.js.map +1 -1
  101. package/dist/desktop/graph/statisticsIndexModel.d.ts +10 -0
  102. package/dist/desktop/graph/statisticsIndexModel.d.ts.map +1 -0
  103. package/dist/desktop/graph/statisticsIndexModel.js +109 -0
  104. package/dist/desktop/graph/statisticsIndexModel.js.map +1 -0
  105. package/dist/desktop/graph/statisticsModel.d.ts +7 -0
  106. package/dist/desktop/graph/statisticsModel.d.ts.map +1 -1
  107. package/dist/desktop/graph/statisticsModel.js +10 -116
  108. package/dist/desktop/graph/statisticsModel.js.map +1 -1
  109. package/dist/desktop/graph/todoModel.d.ts +21 -0
  110. package/dist/desktop/graph/todoModel.d.ts.map +1 -1
  111. package/dist/desktop/graph/todoModel.js +110 -34
  112. package/dist/desktop/graph/todoModel.js.map +1 -1
  113. package/dist/desktop/graphApi.d.ts +3 -2
  114. package/dist/desktop/graphApi.d.ts.map +1 -1
  115. package/dist/desktop/graphApi.js +3 -2
  116. package/dist/desktop/graphApi.js.map +1 -1
  117. package/dist/desktop/graphEditResult.d.ts +4 -0
  118. package/dist/desktop/graphEditResult.d.ts.map +1 -0
  119. package/dist/desktop/graphEditResult.js +5 -0
  120. package/dist/desktop/graphEditResult.js.map +1 -0
  121. package/dist/desktop/index.d.ts +4 -2
  122. package/dist/desktop/index.d.ts.map +1 -1
  123. package/dist/desktop/index.js +4 -2
  124. package/dist/desktop/index.js.map +1 -1
  125. package/dist/desktop/layoutApi.d.ts +1 -0
  126. package/dist/desktop/layoutApi.d.ts.map +1 -1
  127. package/dist/desktop/layoutApi.js +3 -0
  128. package/dist/desktop/layoutApi.js.map +1 -1
  129. package/dist/desktop/projectApi.d.ts.map +1 -1
  130. package/dist/desktop/projectApi.js +5 -1
  131. package/dist/desktop/projectApi.js.map +1 -1
  132. package/dist/desktop/recordsApi.js +1 -1
  133. package/dist/desktop/recordsApi.js.map +1 -1
  134. package/dist/desktop/reviewPipelineApi.d.ts.map +1 -1
  135. package/dist/desktop/reviewPipelineApi.js +15 -44
  136. package/dist/desktop/reviewPipelineApi.js.map +1 -1
  137. package/dist/desktop/runApi.d.ts +2 -1
  138. package/dist/desktop/runApi.d.ts.map +1 -1
  139. package/dist/desktop/runApi.js +101 -13
  140. package/dist/desktop/runApi.js.map +1 -1
  141. package/dist/desktop/runRecovery.d.ts +7 -0
  142. package/dist/desktop/runRecovery.d.ts.map +1 -0
  143. package/dist/desktop/runRecovery.js +184 -0
  144. package/dist/desktop/runRecovery.js.map +1 -0
  145. package/dist/desktop/runStateRepository.d.ts +13 -0
  146. package/dist/desktop/runStateRepository.d.ts.map +1 -0
  147. package/dist/desktop/runStateRepository.js +169 -0
  148. package/dist/desktop/runStateRepository.js.map +1 -0
  149. package/dist/desktop/runStateStore.d.ts +2 -2
  150. package/dist/desktop/runStateStore.d.ts.map +1 -1
  151. package/dist/desktop/runStateStore.js +21 -5
  152. package/dist/desktop/runStateStore.js.map +1 -1
  153. package/dist/desktop/runStepState.d.ts.map +1 -1
  154. package/dist/desktop/runStepState.js +3 -4
  155. package/dist/desktop/runStepState.js.map +1 -1
  156. package/dist/desktop/types/bridgeTypes.d.ts +9 -3
  157. package/dist/desktop/types/bridgeTypes.d.ts.map +1 -1
  158. package/dist/desktop/types/graphTypes.d.ts +106 -0
  159. package/dist/desktop/types/graphTypes.d.ts.map +1 -1
  160. package/dist/desktop/types/runTypes.d.ts +15 -0
  161. package/dist/desktop/types/runTypes.d.ts.map +1 -1
  162. package/dist/graph/affectedTasks.d.ts +3 -0
  163. package/dist/graph/affectedTasks.d.ts.map +1 -0
  164. package/dist/graph/affectedTasks.js +70 -0
  165. package/dist/graph/affectedTasks.js.map +1 -0
  166. package/dist/graph/editGraph.d.ts.map +1 -1
  167. package/dist/graph/editGraph.js +1 -78
  168. package/dist/graph/editGraph.js.map +1 -1
  169. package/dist/graph/fieldEditMutation.d.ts +33 -0
  170. package/dist/graph/fieldEditMutation.d.ts.map +1 -0
  171. package/dist/graph/fieldEditMutation.js +157 -0
  172. package/dist/graph/fieldEditMutation.js.map +1 -0
  173. package/dist/graph/mutation.d.ts +6 -0
  174. package/dist/graph/mutation.d.ts.map +1 -1
  175. package/dist/graph/mutation.js +44 -63
  176. package/dist/graph/mutation.js.map +1 -1
  177. package/dist/index.d.ts +6 -2
  178. package/dist/index.d.ts.map +1 -1
  179. package/dist/index.js +4 -2
  180. package/dist/index.js.map +1 -1
  181. package/dist/initWorkspace.d.ts +1 -0
  182. package/dist/initWorkspace.d.ts.map +1 -1
  183. package/dist/initWorkspace.js +3 -0
  184. package/dist/initWorkspace.js.map +1 -1
  185. package/dist/package/manifestEdit.d.ts.map +1 -1
  186. package/dist/package/manifestEdit.js +37 -191
  187. package/dist/package/manifestEdit.js.map +1 -1
  188. package/dist/paths.d.ts.map +1 -1
  189. package/dist/paths.js +17 -2
  190. package/dist/paths.js.map +1 -1
  191. package/dist/projectGraph/compileProjectGraph.d.ts +3 -0
  192. package/dist/projectGraph/compileProjectGraph.d.ts.map +1 -0
  193. package/dist/projectGraph/compileProjectGraph.js +184 -0
  194. package/dist/projectGraph/compileProjectGraph.js.map +1 -0
  195. package/dist/projectGraph/graphAlgorithms.d.ts +4 -0
  196. package/dist/projectGraph/graphAlgorithms.d.ts.map +1 -0
  197. package/dist/projectGraph/graphAlgorithms.js +63 -0
  198. package/dist/projectGraph/graphAlgorithms.js.map +1 -0
  199. package/dist/projectGraph/index.d.ts +11 -0
  200. package/dist/projectGraph/index.d.ts.map +1 -0
  201. package/dist/projectGraph/index.js +9 -0
  202. package/dist/projectGraph/index.js.map +1 -0
  203. package/dist/projectGraph/loadProjectGraph.d.ts +7 -0
  204. package/dist/projectGraph/loadProjectGraph.d.ts.map +1 -0
  205. package/dist/projectGraph/loadProjectGraph.js +102 -0
  206. package/dist/projectGraph/loadProjectGraph.js.map +1 -0
  207. package/dist/projectGraph/materializeProjectGraph.d.ts +9 -0
  208. package/dist/projectGraph/materializeProjectGraph.d.ts.map +1 -0
  209. package/dist/projectGraph/materializeProjectGraph.js +35 -0
  210. package/dist/projectGraph/materializeProjectGraph.js.map +1 -0
  211. package/dist/projectGraph/migration.d.ts +6 -0
  212. package/dist/projectGraph/migration.d.ts.map +1 -0
  213. package/dist/projectGraph/migration.js +41 -0
  214. package/dist/projectGraph/migration.js.map +1 -0
  215. package/dist/projectGraph/projectGraphKeys.d.ts +6 -0
  216. package/dist/projectGraph/projectGraphKeys.d.ts.map +1 -0
  217. package/dist/projectGraph/projectGraphKeys.js +20 -0
  218. package/dist/projectGraph/projectGraphKeys.js.map +1 -0
  219. package/dist/projectGraph/projectGraphWorkspace.d.ts +5 -0
  220. package/dist/projectGraph/projectGraphWorkspace.d.ts.map +1 -0
  221. package/dist/projectGraph/projectGraphWorkspace.js +38 -0
  222. package/dist/projectGraph/projectGraphWorkspace.js.map +1 -0
  223. package/dist/projectGraph/runtimeAggregation.d.ts +35 -0
  224. package/dist/projectGraph/runtimeAggregation.d.ts.map +1 -0
  225. package/dist/projectGraph/runtimeAggregation.js +131 -0
  226. package/dist/projectGraph/runtimeAggregation.js.map +1 -0
  227. package/dist/projectGraph/schema.d.ts +35 -0
  228. package/dist/projectGraph/schema.d.ts.map +1 -0
  229. package/dist/projectGraph/schema.js +46 -0
  230. package/dist/projectGraph/schema.js.map +1 -0
  231. package/dist/projectGraph/types.d.ts +68 -0
  232. package/dist/projectGraph/types.d.ts.map +1 -0
  233. package/dist/projectGraph/types.js +4 -0
  234. package/dist/projectGraph/types.js.map +1 -0
  235. package/dist/schema/manifest.d.ts +10 -0
  236. package/dist/schema/manifest.d.ts.map +1 -1
  237. package/dist/schema/manifest.js +17 -1
  238. package/dist/schema/manifest.js.map +1 -1
  239. package/dist/taskManager/autoRun.d.ts +6 -1
  240. package/dist/taskManager/autoRun.d.ts.map +1 -1
  241. package/dist/taskManager/autoRun.js +240 -1
  242. package/dist/taskManager/autoRun.js.map +1 -1
  243. package/dist/taskManager/canvasCommandScope.d.ts +7 -0
  244. package/dist/taskManager/canvasCommandScope.d.ts.map +1 -0
  245. package/dist/taskManager/canvasCommandScope.js +34 -0
  246. package/dist/taskManager/canvasCommandScope.js.map +1 -0
  247. package/dist/taskManager/claimBlockDispatch.d.ts +7 -0
  248. package/dist/taskManager/claimBlockDispatch.d.ts.map +1 -0
  249. package/dist/taskManager/claimBlockDispatch.js +36 -0
  250. package/dist/taskManager/claimBlockDispatch.js.map +1 -0
  251. package/dist/taskManager/claimHints.d.ts +4 -0
  252. package/dist/taskManager/claimHints.d.ts.map +1 -0
  253. package/dist/taskManager/claimHints.js +88 -0
  254. package/dist/taskManager/claimHints.js.map +1 -0
  255. package/dist/taskManager/claimReadiness.d.ts +72 -0
  256. package/dist/taskManager/claimReadiness.d.ts.map +1 -0
  257. package/dist/taskManager/claimReadiness.js +186 -0
  258. package/dist/taskManager/claimReadiness.js.map +1 -0
  259. package/dist/taskManager/claimReadinessRules.d.ts +10 -0
  260. package/dist/taskManager/claimReadinessRules.d.ts.map +1 -0
  261. package/dist/taskManager/claimReadinessRules.js +51 -0
  262. package/dist/taskManager/claimReadinessRules.js.map +1 -0
  263. package/dist/taskManager/claimScheduler.d.ts.map +1 -1
  264. package/dist/taskManager/claimScheduler.js +47 -184
  265. package/dist/taskManager/claimScheduler.js.map +1 -1
  266. package/dist/taskManager/executionStatus.d.ts +12 -31
  267. package/dist/taskManager/executionStatus.d.ts.map +1 -1
  268. package/dist/taskManager/executionStatus.js +15 -109
  269. package/dist/taskManager/executionStatus.js.map +1 -1
  270. package/dist/taskManager/executorApi.d.ts.map +1 -1
  271. package/dist/taskManager/executorApi.js +12 -13
  272. package/dist/taskManager/executorApi.js.map +1 -1
  273. package/dist/taskManager/projectCanvasContext.d.ts +8 -0
  274. package/dist/taskManager/projectCanvasContext.d.ts.map +1 -0
  275. package/dist/taskManager/projectCanvasContext.js +66 -0
  276. package/dist/taskManager/projectCanvasContext.js.map +1 -0
  277. package/dist/taskManager/projectGraphClaimGuard.d.ts +9 -0
  278. package/dist/taskManager/projectGraphClaimGuard.d.ts.map +1 -0
  279. package/dist/taskManager/projectGraphClaimGuard.js +35 -0
  280. package/dist/taskManager/projectGraphClaimGuard.js.map +1 -0
  281. package/dist/taskManager/promptRenderer.d.ts +1 -1
  282. package/dist/taskManager/promptRenderer.d.ts.map +1 -1
  283. package/dist/taskManager/promptRenderer.js +16 -2
  284. package/dist/taskManager/promptRenderer.js.map +1 -1
  285. package/dist/types.d.ts +106 -5
  286. package/dist/types.d.ts.map +1 -1
  287. package/dist/types.js.map +1 -1
  288. package/dist/validatePackage.d.ts.map +1 -1
  289. package/dist/validatePackage.js +35 -8
  290. package/dist/validatePackage.js.map +1 -1
  291. package/package.json +1 -1
@@ -0,0 +1,181 @@
1
+ function diagnosticKey(diagnostic) {
2
+ return [diagnostic.code, diagnostic.path ?? "", diagnostic.message].join("\u001f");
3
+ }
4
+ function uniqueDiagnostics(diagnostics) {
5
+ const seen = new Set();
6
+ return diagnostics.filter((diagnostic) => {
7
+ const key = diagnosticKey(diagnostic);
8
+ if (seen.has(key)) {
9
+ return false;
10
+ }
11
+ seen.add(key);
12
+ return true;
13
+ });
14
+ }
15
+ function diagnosticMentionsCanvas(diagnostic, canvasId) {
16
+ if (diagnostic.path === canvasId) {
17
+ return true;
18
+ }
19
+ return (diagnostic.message.includes(`'${canvasId}'`) ||
20
+ diagnostic.message.includes(`${canvasId}::`) ||
21
+ diagnostic.message.includes(`::${canvasId}`) ||
22
+ diagnostic.message.includes(`canvas '${canvasId}'`));
23
+ }
24
+ function diagnosticLevel(diagnostic, errorKeys) {
25
+ return errorKeys.has(diagnosticKey(diagnostic)) ? "error" : "warning";
26
+ }
27
+ function maxSeverity(current, next) {
28
+ if (current === "error" || next === "error") {
29
+ return "error";
30
+ }
31
+ if (current === "warning" || next === "warning") {
32
+ return "warning";
33
+ }
34
+ return "ok";
35
+ }
36
+ function splitProjectBlockerRef(ref) {
37
+ if (ref.startsWith("canvas:")) {
38
+ const canvasId = ref.slice("canvas:".length);
39
+ return canvasId ? { kind: "canvas", canvasId } : null;
40
+ }
41
+ const separatorIndex = ref.indexOf(":");
42
+ if (separatorIndex <= 0 || separatorIndex === ref.length - 1) {
43
+ return null;
44
+ }
45
+ return {
46
+ kind: "task",
47
+ canvasId: ref.slice(0, separatorIndex),
48
+ taskId: ref.slice(separatorIndex + 1)
49
+ };
50
+ }
51
+ function taskTitle(context, canvasId, taskId) {
52
+ return context.snapshotsByCanvas.get(canvasId)?.runtime?.graph.tasksById.get(taskId)?.title ?? taskId;
53
+ }
54
+ function taskStatus(context, canvasId, taskId) {
55
+ return context.aggregation.runtimeSnapshotsByCanvas.get(canvasId)?.taskStatusById.get(taskId) ?? "planned";
56
+ }
57
+ function canvasTitle(context, canvasId) {
58
+ return context.aggregation.canvasesById.get(canvasId)?.canvasName ?? canvasId;
59
+ }
60
+ function projectBlockerFromRef(context, rawRef) {
61
+ const parsed = splitProjectBlockerRef(rawRef);
62
+ if (!parsed) {
63
+ return null;
64
+ }
65
+ if (parsed.kind === "canvas") {
66
+ return {
67
+ kind: "canvas",
68
+ canvasId: parsed.canvasId,
69
+ canvasTitle: canvasTitle(context, parsed.canvasId)
70
+ };
71
+ }
72
+ return {
73
+ kind: "task",
74
+ canvasId: parsed.canvasId,
75
+ canvasTitle: canvasTitle(context, parsed.canvasId),
76
+ taskId: parsed.taskId,
77
+ taskTitle: taskTitle(context, parsed.canvasId, parsed.taskId),
78
+ status: taskStatus(context, parsed.canvasId, parsed.taskId)
79
+ };
80
+ }
81
+ function blockedBlocks(context) {
82
+ const result = [];
83
+ for (const canvasId of context.aggregation.orderedCanvasIds) {
84
+ const snapshot = context.snapshotsByCanvas.get(canvasId);
85
+ if (!snapshot?.status || !snapshot.runtime) {
86
+ continue;
87
+ }
88
+ const blockStatusByRef = new Map(snapshot.status.blocks.map((block) => [block.ref, block.status]));
89
+ for (const hint of snapshot.status.claimHints) {
90
+ const status = blockStatusByRef.get(hint.ref);
91
+ if (hint.blockedByProject.length === 0 || status !== "ready") {
92
+ continue;
93
+ }
94
+ const block = snapshot.runtime.graph.blocksByRef.get(hint.ref);
95
+ const blockers = hint.blockedByProject.flatMap((rawRef) => {
96
+ const blocker = projectBlockerFromRef(context, rawRef);
97
+ return blocker ? [blocker] : [];
98
+ });
99
+ if (blockers.length === 0) {
100
+ continue;
101
+ }
102
+ result.push({
103
+ blocked: {
104
+ canvasId,
105
+ canvasTitle: canvasTitle(context, canvasId),
106
+ taskId: hint.taskId,
107
+ taskTitle: taskTitle(context, canvasId, hint.taskId),
108
+ blockRef: hint.ref,
109
+ blockId: hint.blockId,
110
+ blockTitle: block?.title ?? hint.ref,
111
+ status
112
+ },
113
+ blockers,
114
+ reason: hint.statusReason ?? `Project graph blockers are not complete: ${hint.blockedByProject.join(", ")}.`
115
+ });
116
+ }
117
+ }
118
+ return result;
119
+ }
120
+ function canvasSummaries(context, diagnostics, errorKeys, blocked) {
121
+ return context.aggregation.graph.canvasIdsInOrder.map((canvasId) => {
122
+ const diagnosticCount = (context.aggregation.canvasesById.get(canvasId)?.canvas.diagnostics.length ?? 0) +
123
+ diagnostics.filter((diagnostic) => diagnosticMentionsCanvas(diagnostic, canvasId)).length;
124
+ const blockerCount = blocked.filter((item) => item.blocked.canvasId === canvasId).length;
125
+ const hasError = diagnostics.some((diagnostic) => diagnosticMentionsCanvas(diagnostic, canvasId) && diagnosticLevel(diagnostic, errorKeys) === "error");
126
+ return {
127
+ canvasId,
128
+ severity: hasError ? "error" : diagnosticCount > 0 || blockerCount > 0 ? "warning" : "ok",
129
+ blockerCount,
130
+ diagnosticCount
131
+ };
132
+ });
133
+ }
134
+ function edgeKey(from, to, type) {
135
+ return `${from}\u001f${to}\u001f${type}`;
136
+ }
137
+ function edgeSummaries(context, diagnostics, errorKeys, blocked) {
138
+ return context.aggregation.graph.manifest.edges.map((edge) => {
139
+ const edgeDiagnostics = diagnostics.filter((diagnostic) => diagnostic.path === "edges" && diagnostic.message.includes(edge.from) && diagnostic.message.includes(edge.to));
140
+ const blockerCount = blocked.filter((item) => item.blocked.canvasId === edge.from && item.blockers.some((blocker) => blocker.canvasId === edge.to)).length;
141
+ const hasError = edgeDiagnostics.some((diagnostic) => diagnosticLevel(diagnostic, errorKeys) === "error");
142
+ return {
143
+ from: edge.from,
144
+ to: edge.to,
145
+ type: edge.type,
146
+ severity: hasError ? "error" : edgeDiagnostics.length > 0 || blockerCount > 0 ? "warning" : "ok",
147
+ blockerCount,
148
+ diagnosticCount: edgeDiagnostics.length
149
+ };
150
+ });
151
+ }
152
+ export function buildCanvasHealth(context) {
153
+ const errorDiagnostics = context.aggregation.graph.diagnostics.errors;
154
+ const warningDiagnostics = context.aggregation.graph.diagnostics.warnings;
155
+ const diagnostics = uniqueDiagnostics([
156
+ ...errorDiagnostics,
157
+ ...warningDiagnostics,
158
+ ...context.diagnostics
159
+ ]);
160
+ const errorKeys = new Set([...errorDiagnostics, ...context.diagnostics].map(diagnosticKey));
161
+ const blocked = blockedBlocks(context);
162
+ const canvases = canvasSummaries(context, diagnostics, errorKeys, blocked);
163
+ const edgeSummaryByKey = new Map(edgeSummaries(context, diagnostics, errorKeys, blocked).map((edge) => [edgeKey(edge.from, edge.to, edge.type), edge]));
164
+ const edges = context.aggregation.graph.manifest.edges.map((edge) => {
165
+ const summary = edgeSummaryByKey.get(edgeKey(edge.from, edge.to, edge.type));
166
+ if (!summary) {
167
+ throw new Error(`Canvas health edge summary missing for '${edge.from}' -> '${edge.to}'.`);
168
+ }
169
+ return summary;
170
+ });
171
+ const diagnosticSeverity = diagnostics.reduce((severity, diagnostic) => maxSeverity(severity, diagnosticLevel(diagnostic, errorKeys) === "error" ? "error" : "warning"), "ok");
172
+ const blockerSeverity = blocked.length > 0 ? "warning" : "ok";
173
+ return {
174
+ severity: maxSeverity(diagnosticSeverity, blockerSeverity),
175
+ canvases,
176
+ edges,
177
+ blockedBlocks: blocked,
178
+ diagnostics
179
+ };
180
+ }
181
+ //# sourceMappingURL=canvasHealthModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvasHealthModel.js","sourceRoot":"","sources":["../../../src/desktop/graph/canvasHealthModel.ts"],"names":[],"mappings":"AAaA,SAAS,aAAa,CAAC,UAA2B;IAChD,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,iBAAiB,CAAC,WAA8B;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,UAA2B,EAAE,QAAgB;IAC7E,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAC5C,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,IAAI,CAAC;QAC5C,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5C,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,QAAQ,GAAG,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,UAA2B,EAAE,SAAsB;IAC1E,OAAO,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,SAAS,WAAW,CAAC,OAAoC,EAAE,IAAiC;IAC1F,IAAI,OAAO,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAW;IACzC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC;IACD,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,cAAc,IAAI,CAAC,IAAI,cAAc,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;QACtC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,OAA2B,EAAE,QAAgB,EAAE,MAAc;IAC9E,OAAO,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC;AACxG,CAAC;AAED,SAAS,UAAU,CAAC,OAA2B,EAAE,QAAgB,EAAE,MAAc;IAC/E,OAAO,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;AAC7G,CAAC;AAED,SAAS,WAAW,CAAC,OAA2B,EAAE,QAAgB;IAChE,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,IAAI,QAAQ,CAAC;AAChF,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA2B,EAAE,MAAc;IACxE,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;SACnD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;QAClD,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7D,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAA2B;IAChD,MAAM,MAAM,GAAsC,EAAE,CAAC;IACrD,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC3C,SAAS;QACX,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnG,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC7D,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxD,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACvD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,CAAC,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE;oBACP,QAAQ;oBACR,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;oBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;oBACpD,QAAQ,EAAE,IAAI,CAAC,GAAG;oBAClB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,UAAU,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG;oBACpC,MAAM;iBACP;gBACD,QAAQ;gBACR,MAAM,EAAE,IAAI,CAAC,YAAY,IAAI,4CAA4C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC7G,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CACtB,OAA2B,EAC3B,WAA8B,EAC9B,SAAsB,EACtB,OAA0C;IAE1C,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjE,MAAM,eAAe,GACnB,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;YAChF,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5F,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QACzF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,OAAO,CAAC,CAAC;QACxJ,OAAO;YACL,QAAQ;YACR,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACzF,YAAY;YACZ,eAAe;SAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,EAAU,EAAE,IAAkB;IAC3D,OAAO,GAAG,IAAI,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CACpB,OAA2B,EAC3B,WAA8B,EAC9B,SAAsB,EACtB,OAA0C;IAE1C,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3D,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CACxC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAC9H,CAAC;QACF,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3C,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,CACrG,CAAC,MAAM,CAAC;QACT,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,OAAO,CAAC,CAAC;QAC1G,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAChG,YAAY;YACZ,eAAe,EAAE,eAAe,CAAC,MAAM;SACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;IACtE,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC1E,MAAM,WAAW,GAAG,iBAAiB,CAAC;QACpC,GAAG,gBAAgB;QACnB,GAAG,kBAAkB;QACrB,GAAG,OAAO,CAAC,WAAW;KACvB,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACxJ,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClE,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAC3C,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EACzH,IAAI,CACL,CAAC;IACF,MAAM,eAAe,GAAgC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,OAAO;QACL,QAAQ,EAAE,WAAW,CAAC,kBAAkB,EAAE,eAAe,CAAC;QAC1D,QAAQ;QACR,KAAK;QACL,aAAa,EAAE,OAAO;QACtB,WAAW;KACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ValidationIssue } from "../../types.js";
2
+ export declare function errorMessage(caught: unknown): string;
3
+ export declare function desktopDiagnostic(code: string, message: string, path?: string): ValidationIssue;
4
+ export declare function appendDesktopDiagnostic(diagnostics: ValidationIssue[], diagnostic: ValidationIssue): void;
5
+ export declare function appendDesktopDiagnostics(diagnostics: ValidationIssue[], nextDiagnostics: ValidationIssue[]): void;
6
+ export declare function formatDesktopDiagnostic(diagnostic: ValidationIssue): string;
7
+ export declare function listResultFilesWithDiagnostics(resultsDir: string): Promise<{
8
+ files: string[];
9
+ diagnostics: ValidationIssue[];
10
+ }>;
11
+ export declare function readJsonObjectWithDiagnostics(path: string, resultsDir: string): Promise<{
12
+ value: Record<string, unknown> | null;
13
+ diagnostics: ValidationIssue[];
14
+ }>;
15
+ //# sourceMappingURL=desktopDiagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desktopDiagnostics.d.ts","sourceRoot":"","sources":["../../../src/desktop/graph/desktopDiagnostics.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAE/F;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI,CAKzG;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,IAAI,CAIjH;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAE3E;AAmCD,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,CAKrI;AAED,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,CAuBpF"}
@@ -0,0 +1,77 @@
1
+ import { readdir, readFile } from "node:fs/promises";
2
+ import { join, relative } from "node:path";
3
+ export function errorMessage(caught) {
4
+ return caught instanceof Error ? caught.message : String(caught);
5
+ }
6
+ export function desktopDiagnostic(code, message, path) {
7
+ return { code, message, path };
8
+ }
9
+ export function appendDesktopDiagnostic(diagnostics, diagnostic) {
10
+ if (diagnostics.some((item) => item.code === diagnostic.code && item.path === diagnostic.path && item.message === diagnostic.message)) {
11
+ return;
12
+ }
13
+ diagnostics.push(diagnostic);
14
+ }
15
+ export function appendDesktopDiagnostics(diagnostics, nextDiagnostics) {
16
+ for (const diagnostic of nextDiagnostics) {
17
+ appendDesktopDiagnostic(diagnostics, diagnostic);
18
+ }
19
+ }
20
+ export function formatDesktopDiagnostic(diagnostic) {
21
+ return diagnostic.path ? `${diagnostic.path}: ${diagnostic.message}` : `${diagnostic.code}: ${diagnostic.message}`;
22
+ }
23
+ function toPosixPath(path) {
24
+ return path.split("\\").join("/");
25
+ }
26
+ function resultPath(resultsDir, path) {
27
+ const resultRelativePath = toPosixPath(relative(resultsDir, path));
28
+ return resultRelativePath ? `results/${resultRelativePath}` : "results";
29
+ }
30
+ async function collectResultFiles(resultsDir, root, diagnostics, files) {
31
+ try {
32
+ const entries = await readdir(root, { withFileTypes: true });
33
+ for (const entry of entries) {
34
+ const path = join(root, entry.name);
35
+ if (entry.isDirectory()) {
36
+ await collectResultFiles(resultsDir, path, diagnostics, files);
37
+ }
38
+ else if (entry.isFile() && /\.(md|json|log|txt)$/.test(entry.name)) {
39
+ files.push(path);
40
+ }
41
+ }
42
+ }
43
+ catch (caught) {
44
+ appendDesktopDiagnostic(diagnostics, desktopDiagnostic("desktop_results_read_failed", `Result files could not be listed: ${errorMessage(caught)}`, resultPath(resultsDir, root)));
45
+ return;
46
+ }
47
+ }
48
+ export async function listResultFilesWithDiagnostics(resultsDir) {
49
+ const diagnostics = [];
50
+ const files = [];
51
+ await collectResultFiles(resultsDir, resultsDir, diagnostics, files);
52
+ return { files, diagnostics };
53
+ }
54
+ export async function readJsonObjectWithDiagnostics(path, resultsDir) {
55
+ let parsed;
56
+ try {
57
+ parsed = JSON.parse(await readFile(path, "utf8"));
58
+ }
59
+ catch (caught) {
60
+ return {
61
+ value: null,
62
+ diagnostics: [
63
+ desktopDiagnostic("desktop_result_metadata_read_failed", `Result metadata could not be read or parsed: ${errorMessage(caught)}`, resultPath(resultsDir, path))
64
+ ]
65
+ };
66
+ }
67
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
68
+ return { value: parsed, diagnostics: [] };
69
+ }
70
+ return {
71
+ value: null,
72
+ diagnostics: [
73
+ desktopDiagnostic("desktop_result_metadata_invalid", "Result metadata must be a JSON object.", resultPath(resultsDir, path))
74
+ ]
75
+ };
76
+ }
77
+ //# sourceMappingURL=desktopDiagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desktopDiagnostics.js","sourceRoot":"","sources":["../../../src/desktop/graph/desktopDiagnostics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"editModel.d.ts","sourceRoot":"","sources":["../../../src/desktop/graph/editModel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAa,eAAe,EAAmC,mBAAmB,EAAuB,MAAM,gBAAgB,CAAC;AAC5I,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAkH9G,wBAAsB,WAAW,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAwCxH;AAED,wBAAsB,QAAQ,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuBtH;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAO/G;AAED,wBAAsB,WAAW,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAMzG;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,eAAe,CAAC,CAsB1I;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAK/H;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAMnI;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAe7H;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAMjI;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAYhJ;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAgB9I;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAElI;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAErI"}
1
+ {"version":3,"file":"editModel.d.ts","sourceRoot":"","sources":["../../../src/desktop/graph/editModel.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAa,eAAe,EAAmC,mBAAmB,EAAuB,MAAM,gBAAgB,CAAC;AAC5I,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AA6G9G,wBAAsB,WAAW,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuCxH;AAED,wBAAsB,QAAQ,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAyBtH;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAS/G;AAED,wBAAsB,WAAW,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAQzG;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,eAAe,CAAC,CAsB1I;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAE/H;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAEnI;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAE7H;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAEjI;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAEhJ;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAE9I;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAIxI;AAED,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAI3I"}
@@ -1,16 +1,16 @@
1
- import { parseBlockRef } from "../../graph/compileTaskGraph.js";
2
1
  import { compileTaskGraph } from "../../graph/compileTaskGraph.js";
3
- import { addEdge, commitPlanPackageGraphMutation, removeEdge, updateNode } from "../../graph/editGraph.js";
2
+ import { addEdge, commitPlanPackageGraphMutation, removeEdge } from "../../graph/editGraph.js";
3
+ import { buildPlanPackageBlockFieldEditMutation, buildPlanPackageTaskFieldEditMutation } from "../../graph/fieldEditMutation.js";
4
4
  import { buildPlanPackageGraphMutation } from "../../graph/mutation.js";
5
5
  import { loadPackage } from "../../package/loadPackage.js";
6
6
  import { getTask } from "./graphHelpers.js";
7
+ import { invalidateDesktopProjectProjection } from "./projectProjectionModel.js";
7
8
  function normalizeOptionalText(value) {
8
- const trimmed = value?.trim() ?? "";
9
- return trimmed.length > 0 ? trimmed : undefined;
9
+ return value?.trim() || undefined;
10
10
  }
11
11
  function requireNonEmptyTitle(title) {
12
12
  const trimmed = title.trim();
13
- if (trimmed.length === 0) {
13
+ if (!trimmed) {
14
14
  throw new Error("Title must not be empty.");
15
15
  }
16
16
  return trimmed;
@@ -38,14 +38,8 @@ function nextTaskId(manifest, title) {
38
38
  }
39
39
  return `T-${String(index).padStart(3, "0")}`;
40
40
  }
41
- function blockPrefix(type) {
42
- if (type === "review") {
43
- return "R";
44
- }
45
- return "B";
46
- }
47
41
  function nextBlockId(task, type) {
48
- const prefix = blockPrefix(type);
42
+ const prefix = type === "review" ? "R" : "B";
49
43
  const existing = new Set(task.blocks.map((block) => block.id));
50
44
  let index = task.blocks.filter((block) => block.id.startsWith(`${prefix}-`)).length + 1;
51
45
  while (existing.has(`${prefix}-${String(index).padStart(3, "0")}`)) {
@@ -53,12 +47,6 @@ function nextBlockId(task, type) {
53
47
  }
54
48
  return `${prefix}-${String(index).padStart(3, "0")}`;
55
49
  }
56
- function defaultBlockTitle(type) {
57
- if (type === "review") {
58
- return "Review work";
59
- }
60
- return "Implement work";
61
- }
62
50
  function createBlock(options) {
63
51
  const common = {
64
52
  id: options.blockId,
@@ -72,21 +60,10 @@ function createBlock(options) {
72
60
  return {
73
61
  ...common,
74
62
  type: "review",
75
- review: {
76
- required: true,
77
- maxFeedbackCycles: options.maxFeedbackCycles,
78
- hook: null
79
- }
63
+ review: { required: true, maxFeedbackCycles: options.maxFeedbackCycles, hook: null }
80
64
  };
81
65
  }
82
- return {
83
- ...common,
84
- type: options.type,
85
- parallel: {
86
- safe: false,
87
- locks: []
88
- }
89
- };
66
+ return { ...common, type: options.type, parallel: { safe: false, locks: [] } };
90
67
  }
91
68
  function graphEditResult(manifest, affectedTasks = []) {
92
69
  const graph = compileTaskGraph(manifest);
@@ -97,6 +74,24 @@ function graphEditResult(manifest, affectedTasks = []) {
97
74
  graph
98
75
  };
99
76
  }
77
+ async function commitTaskEdit(projectRoot, input) {
78
+ const { manifest } = await loadPackage(projectRoot);
79
+ const result = await commitPlanPackageGraphMutation({
80
+ projectRoot,
81
+ mutation: buildPlanPackageTaskFieldEditMutation(manifest, input)
82
+ });
83
+ invalidateDesktopProjectProjection(projectRoot);
84
+ return result;
85
+ }
86
+ async function commitBlockEdit(projectRoot, input) {
87
+ const { manifest } = await loadPackage(projectRoot);
88
+ const result = await commitPlanPackageGraphMutation({
89
+ projectRoot,
90
+ mutation: buildPlanPackageBlockFieldEditMutation(manifest, input)
91
+ });
92
+ invalidateDesktopProjectProjection(projectRoot);
93
+ return result;
94
+ }
100
95
  export async function addTaskNode(projectRoot, input) {
101
96
  const { manifest } = await loadPackage(projectRoot);
102
97
  const title = requireNonEmptyTitle(input.title);
@@ -109,7 +104,7 @@ export async function addTaskNode(projectRoot, input) {
109
104
  taskId,
110
105
  blockId,
111
106
  type,
112
- title: defaultBlockTitle(type),
107
+ title: type === "review" ? "Review work" : "Implement work",
113
108
  dependsOn: blocks.length > 0 ? [blocks[blocks.length - 1].id] : [],
114
109
  maxFeedbackCycles: manifest.review.maxFeedbackCycles
115
110
  }));
@@ -123,18 +118,17 @@ export async function addTaskNode(projectRoot, input) {
123
118
  acceptance: input.acceptance?.length ? input.acceptance : ["Task is implemented."],
124
119
  blocks
125
120
  };
126
- return commitPlanPackageGraphMutation({
121
+ const result = await commitPlanPackageGraphMutation({
127
122
  projectRoot,
128
123
  mutation: buildPlanPackageGraphMutation(manifest, {
129
124
  kind: "addTaskNode",
130
125
  node,
131
126
  taskPromptMarkdown: input.promptMarkdown,
132
- blockPromptMarkdown: blocks.map((block) => ({
133
- blockId: block.id,
134
- markdown: promptFileMarkdown(`# ${block.title}\n\n${input.promptMarkdown}`)
135
- }))
127
+ blockPromptMarkdown: blocks.map((block) => ({ blockId: block.id, markdown: promptFileMarkdown(`# ${block.title}\n\n${input.promptMarkdown}`) }))
136
128
  })
137
129
  });
130
+ invalidateDesktopProjectProjection(projectRoot);
131
+ return result;
138
132
  }
139
133
  export async function addBlock(projectRoot, input) {
140
134
  const { manifest } = await loadPackage(projectRoot);
@@ -150,7 +144,7 @@ export async function addBlock(projectRoot, input) {
150
144
  executor: normalizeOptionalText(input.executor ?? null),
151
145
  maxFeedbackCycles: manifest.review.maxFeedbackCycles
152
146
  });
153
- return commitPlanPackageGraphMutation({
147
+ const result = await commitPlanPackageGraphMutation({
154
148
  projectRoot,
155
149
  mutation: buildPlanPackageGraphMutation(manifest, {
156
150
  kind: "addBlock",
@@ -159,21 +153,27 @@ export async function addBlock(projectRoot, input) {
159
153
  promptMarkdown: promptFileMarkdown(input.promptMarkdown)
160
154
  })
161
155
  });
156
+ invalidateDesktopProjectProjection(projectRoot);
157
+ return result;
162
158
  }
163
159
  export async function removeTaskNode(projectRoot, taskId) {
164
160
  const { manifest } = await loadPackage(projectRoot);
165
161
  getTask(compileTaskGraph(manifest), taskId);
166
- return commitPlanPackageGraphMutation({
162
+ const result = await commitPlanPackageGraphMutation({
167
163
  projectRoot,
168
164
  mutation: buildPlanPackageGraphMutation(manifest, { kind: "removeNode", nodeId: taskId, removeTaskDirectory: true })
169
165
  });
166
+ invalidateDesktopProjectProjection(projectRoot);
167
+ return result;
170
168
  }
171
169
  export async function removeBlock(projectRoot, ref) {
172
170
  const { manifest } = await loadPackage(projectRoot);
173
- return commitPlanPackageGraphMutation({
171
+ const result = await commitPlanPackageGraphMutation({
174
172
  projectRoot,
175
173
  mutation: buildPlanPackageGraphMutation(manifest, { kind: "removeBlock", blockRef: ref })
176
174
  });
175
+ invalidateDesktopProjectProjection(projectRoot);
176
+ return result;
177
177
  }
178
178
  export async function validateGraphEdit(projectRoot, input) {
179
179
  const { manifest } = await loadPackage(projectRoot);
@@ -199,75 +199,31 @@ export async function validateGraphEdit(projectRoot, input) {
199
199
  return graphEditResult(mutation.nextManifest, mutation.affectedTasks);
200
200
  }
201
201
  export async function updateTaskTitle(projectRoot, taskId, title) {
202
- const { manifest } = await loadPackage(projectRoot);
203
- const graph = compileTaskGraph(manifest);
204
- const task = getTask(graph, taskId);
205
- return updateNode({ projectRoot, node: { ...task, title: requireNonEmptyTitle(title) } });
202
+ return commitTaskEdit(projectRoot, { taskId, title: requireNonEmptyTitle(title) });
206
203
  }
207
204
  export async function updateTaskPrompt(projectRoot, taskId, markdown) {
208
- const { manifest } = await loadPackage(projectRoot);
209
- return commitPlanPackageGraphMutation({
210
- projectRoot,
211
- mutation: buildPlanPackageGraphMutation(manifest, { kind: "writeTaskPrompt", taskId, markdown })
212
- });
205
+ return commitTaskEdit(projectRoot, { taskId, promptMarkdown: markdown });
213
206
  }
214
207
  export async function updateBlockTitle(projectRoot, ref, title) {
215
- const { manifest } = await loadPackage(projectRoot);
216
- const graph = compileTaskGraph(manifest);
217
- const { taskId, blockId } = parseBlockRef(ref);
218
- const task = getTask(graph, taskId);
219
- if (!task.blocks.some((block) => block.id === blockId)) {
220
- throw new Error(`Block '${ref}' does not exist.`);
221
- }
222
- return updateNode({
223
- projectRoot,
224
- node: {
225
- ...task,
226
- blocks: task.blocks.map((block) => (block.id === blockId ? { ...block, title: requireNonEmptyTitle(title) } : block))
227
- }
228
- });
208
+ return commitBlockEdit(projectRoot, { blockRef: ref, title: requireNonEmptyTitle(title) });
229
209
  }
230
210
  export async function updateBlockPrompt(projectRoot, ref, markdown) {
231
- const { manifest } = await loadPackage(projectRoot);
232
- return commitPlanPackageGraphMutation({
233
- projectRoot,
234
- mutation: buildPlanPackageGraphMutation(manifest, { kind: "writeBlockPrompt", blockRef: ref, markdown })
235
- });
211
+ return commitBlockEdit(projectRoot, { blockRef: ref, promptMarkdown: markdown });
236
212
  }
237
213
  export async function updateTaskExecutor(projectRoot, taskId, executorName) {
238
- const { manifest } = await loadPackage(projectRoot);
239
- const graph = compileTaskGraph(manifest);
240
- const task = getTask(graph, taskId);
241
- const executor = normalizeOptionalText(executorName);
242
- return updateNode({
243
- projectRoot,
244
- node: {
245
- ...(executor === undefined ? { ...task, executor: undefined } : { ...task, executor }),
246
- blocks: task.blocks.map((block) => ({ ...block, executor: undefined }))
247
- }
248
- });
214
+ return commitTaskEdit(projectRoot, { taskId, executor: executorName });
249
215
  }
250
216
  export async function updateBlockExecutor(projectRoot, ref, executorName) {
251
- const { manifest } = await loadPackage(projectRoot);
252
- const graph = compileTaskGraph(manifest);
253
- const { taskId, blockId } = parseBlockRef(ref);
254
- const task = getTask(graph, taskId);
255
- if (!task.blocks.some((block) => block.id === blockId)) {
256
- throw new Error(`Block '${ref}' does not exist.`);
257
- }
258
- const executor = normalizeOptionalText(executorName);
259
- return updateNode({
260
- projectRoot,
261
- node: {
262
- ...task,
263
- blocks: task.blocks.map((block) => (block.id === blockId ? { ...block, executor } : block))
264
- }
265
- });
217
+ return commitBlockEdit(projectRoot, { blockRef: ref, executor: executorName });
266
218
  }
267
- export function addDependencyEdge(projectRoot, fromTaskId, toTaskId) {
268
- return addEdge({ projectRoot, edge: { from: fromTaskId, to: toTaskId, type: "depends_on" } });
219
+ export async function addDependencyEdge(projectRoot, fromTaskId, toTaskId) {
220
+ const result = await addEdge({ projectRoot, edge: { from: fromTaskId, to: toTaskId, type: "depends_on" } });
221
+ invalidateDesktopProjectProjection(projectRoot);
222
+ return result;
269
223
  }
270
- export function removeDependencyEdge(projectRoot, fromTaskId, toTaskId) {
271
- return removeEdge({ projectRoot, edge: { from: fromTaskId, to: toTaskId, type: "depends_on" } });
224
+ export async function removeDependencyEdge(projectRoot, fromTaskId, toTaskId) {
225
+ const result = await removeEdge({ projectRoot, edge: { from: fromTaskId, to: toTaskId, type: "depends_on" } });
226
+ invalidateDesktopProjectProjection(projectRoot);
227
+ return result;
272
228
  }
273
229
  //# sourceMappingURL=editModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editModel.js","sourceRoot":"","sources":["../../../src/desktop/graph/editModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editModel.js","sourceRoot":"","sources":["../../../src/desktop/graph/editModel.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,23 @@
1
+ import { projectBlockersForTask, runtimeSnapshotFromGraphState, type ProjectCanvasRuntimeAggregationContext, type ProjectCanvasRuntimeContext, type ProjectCanvasRuntimeSnapshot } from "../../projectGraph/runtimeAggregation.js";
2
+ import type { ProjectWorkspace, ValidationIssue } from "../../types.js";
1
3
  import type { DesktopTaskCanvasSummary } from "../types.js";
2
- import type { ProjectWorkspace } from "../../types.js";
3
4
  export type ProjectTaskCanvasContext = {
4
5
  canvasId: string;
5
6
  canvasName: string;
6
7
  canvas: DesktopTaskCanvasSummary;
7
8
  workspace: ProjectWorkspace;
8
9
  };
10
+ export type ProjectCanvasAggregationCanvas = ProjectTaskCanvasContext & ProjectCanvasRuntimeContext;
11
+ export type ProjectCanvasAggregationContext = Omit<ProjectCanvasRuntimeAggregationContext, "canvases" | "canvasesById"> & {
12
+ canvases: ProjectCanvasAggregationCanvas[];
13
+ canvasesById: Map<string, ProjectCanvasAggregationCanvas>;
14
+ };
15
+ export type { ProjectCanvasRuntimeSnapshot };
16
+ export { projectBlockersForTask, runtimeSnapshotFromGraphState };
17
+ type ProjectCanvasAggregationOptions = {
18
+ loadRuntimeSnapshot?: (workspace: ProjectWorkspace, canvasId: string) => Promise<ProjectCanvasRuntimeSnapshot>;
19
+ };
20
+ export declare function projectCanvasDiagnosticNote(diagnostic: ValidationIssue): string;
21
+ export declare function loadProjectCanvasAggregation(projectRootOrWorkspace: string | ProjectWorkspace, options?: ProjectCanvasAggregationOptions): Promise<ProjectCanvasAggregationContext>;
9
22
  export declare function mapProjectTaskCanvases<T>(projectRoot: string, mapper: (context: ProjectTaskCanvasContext, index: number) => Promise<T>): Promise<T[]>;
10
23
  //# sourceMappingURL=projectCanvasAggregation.d.ts.map