@planweave-ai/runtime 0.1.1 → 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.
- package/dist/autoRun/claudeCodeIntegration.d.ts +3 -0
- package/dist/autoRun/claudeCodeIntegration.d.ts.map +1 -0
- package/dist/autoRun/claudeCodeIntegration.js +36 -0
- package/dist/autoRun/claudeCodeIntegration.js.map +1 -0
- package/dist/autoRun/codexExecutor.d.ts.map +1 -1
- package/dist/autoRun/codexExecutor.js +7 -4
- package/dist/autoRun/codexExecutor.js.map +1 -1
- package/dist/autoRun/codexIntegration.d.ts +3 -0
- package/dist/autoRun/codexIntegration.d.ts.map +1 -0
- package/dist/autoRun/codexIntegration.js +37 -0
- package/dist/autoRun/codexIntegration.js.map +1 -0
- package/dist/autoRun/executorIntegration.d.ts +29 -0
- package/dist/autoRun/executorIntegration.d.ts.map +1 -0
- package/dist/autoRun/executorIntegration.js +4 -0
- package/dist/autoRun/executorIntegration.js.map +1 -0
- package/dist/autoRun/executorPreflightTypes.d.ts +21 -0
- package/dist/autoRun/executorPreflightTypes.d.ts.map +1 -0
- package/dist/autoRun/executorPreflightTypes.js +2 -0
- package/dist/autoRun/executorPreflightTypes.js.map +1 -0
- package/dist/autoRun/executorShared.d.ts +1 -1
- package/dist/autoRun/executorShared.js +1 -1
- package/dist/autoRun/executors.d.ts +17 -11
- package/dist/autoRun/executors.d.ts.map +1 -1
- package/dist/autoRun/executors.js +234 -100
- package/dist/autoRun/executors.js.map +1 -1
- package/dist/autoRun/localReviewExecutor.d.ts.map +1 -1
- package/dist/autoRun/localReviewExecutor.js +6 -3
- package/dist/autoRun/localReviewExecutor.js.map +1 -1
- package/dist/autoRun/localReviewIntegration.d.ts +3 -0
- package/dist/autoRun/localReviewIntegration.d.ts.map +1 -0
- package/dist/autoRun/localReviewIntegration.js +34 -0
- package/dist/autoRun/localReviewIntegration.js.map +1 -0
- package/dist/autoRun/manualExecutor.d.ts +3 -0
- package/dist/autoRun/manualExecutor.d.ts.map +1 -0
- package/dist/autoRun/manualExecutor.js +80 -0
- package/dist/autoRun/manualExecutor.js.map +1 -0
- package/dist/autoRun/opencodeExecutor.d.ts.map +1 -1
- package/dist/autoRun/opencodeExecutor.js +6 -3
- package/dist/autoRun/opencodeExecutor.js.map +1 -1
- package/dist/autoRun/opencodeIntegration.d.ts +3 -0
- package/dist/autoRun/opencodeIntegration.d.ts.map +1 -0
- package/dist/autoRun/opencodeIntegration.js +34 -0
- package/dist/autoRun/opencodeIntegration.js.map +1 -0
- package/dist/autoRun/piIntegration.d.ts +3 -0
- package/dist/autoRun/piIntegration.d.ts.map +1 -0
- package/dist/autoRun/piIntegration.js +36 -0
- package/dist/autoRun/piIntegration.js.map +1 -0
- package/dist/autoRun/terminalAgentExecutor.d.ts +22 -0
- package/dist/autoRun/terminalAgentExecutor.d.ts.map +1 -0
- package/dist/autoRun/terminalAgentExecutor.js +132 -0
- package/dist/autoRun/terminalAgentExecutor.js.map +1 -0
- package/dist/desktop/canvasApi.d.ts.map +1 -1
- package/dist/desktop/canvasApi.js +45 -15
- package/dist/desktop/canvasApi.js.map +1 -1
- package/dist/desktop/canvasGraphApi.d.ts.map +1 -1
- package/dist/desktop/canvasGraphApi.js +8 -4
- package/dist/desktop/canvasGraphApi.js.map +1 -1
- package/dist/desktop/fileSyncApi.d.ts.map +1 -1
- package/dist/desktop/fileSyncApi.js +5 -0
- package/dist/desktop/fileSyncApi.js.map +1 -1
- package/dist/desktop/graph/canvasHealthModel.d.ts +4 -0
- package/dist/desktop/graph/canvasHealthModel.d.ts.map +1 -0
- package/dist/desktop/graph/canvasHealthModel.js +181 -0
- package/dist/desktop/graph/canvasHealthModel.js.map +1 -0
- package/dist/desktop/graph/desktopDiagnostics.d.ts +15 -0
- package/dist/desktop/graph/desktopDiagnostics.d.ts.map +1 -0
- package/dist/desktop/graph/desktopDiagnostics.js +77 -0
- package/dist/desktop/graph/desktopDiagnostics.js.map +1 -0
- package/dist/desktop/graph/editModel.d.ts.map +1 -1
- package/dist/desktop/graph/editModel.js +27 -10
- package/dist/desktop/graph/editModel.js.map +1 -1
- package/dist/desktop/graph/projectCanvasAggregation.d.ts +6 -3
- package/dist/desktop/graph/projectCanvasAggregation.d.ts.map +1 -1
- package/dist/desktop/graph/projectCanvasAggregation.js +16 -8
- package/dist/desktop/graph/projectCanvasAggregation.js.map +1 -1
- package/dist/desktop/graph/projectProjectionModel.d.ts +16 -0
- package/dist/desktop/graph/projectProjectionModel.d.ts.map +1 -0
- package/dist/desktop/graph/projectProjectionModel.js +185 -0
- package/dist/desktop/graph/projectProjectionModel.js.map +1 -0
- package/dist/desktop/graph/projectSnapshotModel.d.ts +3 -0
- package/dist/desktop/graph/projectSnapshotModel.d.ts.map +1 -0
- package/dist/desktop/graph/projectSnapshotModel.js +108 -0
- package/dist/desktop/graph/projectSnapshotModel.js.map +1 -0
- package/dist/desktop/graph/readModel.d.ts +9 -0
- package/dist/desktop/graph/readModel.d.ts.map +1 -1
- package/dist/desktop/graph/readModel.js +20 -9
- package/dist/desktop/graph/readModel.js.map +1 -1
- package/dist/desktop/graph/resultsFileIndex.d.ts +28 -0
- package/dist/desktop/graph/resultsFileIndex.d.ts.map +1 -0
- package/dist/desktop/graph/resultsFileIndex.js +150 -0
- package/dist/desktop/graph/resultsFileIndex.js.map +1 -0
- package/dist/desktop/graph/searchIndexModel.d.ts +22 -0
- package/dist/desktop/graph/searchIndexModel.d.ts.map +1 -0
- package/dist/desktop/graph/searchIndexModel.js +142 -0
- package/dist/desktop/graph/searchIndexModel.js.map +1 -0
- package/dist/desktop/graph/searchModel.d.ts +6 -0
- package/dist/desktop/graph/searchModel.d.ts.map +1 -1
- package/dist/desktop/graph/searchModel.js +15 -123
- package/dist/desktop/graph/searchModel.js.map +1 -1
- package/dist/desktop/graph/statisticsIndexModel.d.ts +10 -0
- package/dist/desktop/graph/statisticsIndexModel.d.ts.map +1 -0
- package/dist/desktop/graph/statisticsIndexModel.js +109 -0
- package/dist/desktop/graph/statisticsIndexModel.js.map +1 -0
- package/dist/desktop/graph/statisticsModel.d.ts +7 -0
- package/dist/desktop/graph/statisticsModel.d.ts.map +1 -1
- package/dist/desktop/graph/statisticsModel.js +10 -116
- package/dist/desktop/graph/statisticsModel.js.map +1 -1
- package/dist/desktop/graph/todoModel.d.ts +21 -0
- package/dist/desktop/graph/todoModel.d.ts.map +1 -1
- package/dist/desktop/graph/todoModel.js +70 -54
- package/dist/desktop/graph/todoModel.js.map +1 -1
- package/dist/desktop/graphApi.d.ts +3 -2
- package/dist/desktop/graphApi.d.ts.map +1 -1
- package/dist/desktop/graphApi.js +3 -2
- package/dist/desktop/graphApi.js.map +1 -1
- package/dist/desktop/graphEditResult.d.ts +4 -0
- package/dist/desktop/graphEditResult.d.ts.map +1 -0
- package/dist/desktop/graphEditResult.js +5 -0
- package/dist/desktop/graphEditResult.js.map +1 -0
- package/dist/desktop/index.d.ts +3 -2
- package/dist/desktop/index.d.ts.map +1 -1
- package/dist/desktop/index.js +3 -2
- package/dist/desktop/index.js.map +1 -1
- package/dist/desktop/layoutApi.d.ts +1 -0
- package/dist/desktop/layoutApi.d.ts.map +1 -1
- package/dist/desktop/layoutApi.js +3 -0
- package/dist/desktop/layoutApi.js.map +1 -1
- package/dist/desktop/recordsApi.js +1 -1
- package/dist/desktop/recordsApi.js.map +1 -1
- package/dist/desktop/reviewPipelineApi.d.ts.map +1 -1
- package/dist/desktop/reviewPipelineApi.js +15 -44
- package/dist/desktop/reviewPipelineApi.js.map +1 -1
- package/dist/desktop/runApi.d.ts +2 -1
- package/dist/desktop/runApi.d.ts.map +1 -1
- package/dist/desktop/runApi.js +95 -11
- package/dist/desktop/runApi.js.map +1 -1
- package/dist/desktop/runRecovery.d.ts +7 -0
- package/dist/desktop/runRecovery.d.ts.map +1 -0
- package/dist/desktop/runRecovery.js +184 -0
- package/dist/desktop/runRecovery.js.map +1 -0
- package/dist/desktop/runStateRepository.d.ts +13 -0
- package/dist/desktop/runStateRepository.d.ts.map +1 -0
- package/dist/desktop/runStateRepository.js +169 -0
- package/dist/desktop/runStateRepository.js.map +1 -0
- package/dist/desktop/runStateStore.d.ts +2 -2
- package/dist/desktop/runStateStore.d.ts.map +1 -1
- package/dist/desktop/runStateStore.js +21 -5
- package/dist/desktop/runStateStore.js.map +1 -1
- package/dist/desktop/runStepState.d.ts.map +1 -1
- package/dist/desktop/runStepState.js +3 -4
- package/dist/desktop/runStepState.js.map +1 -1
- package/dist/desktop/types/bridgeTypes.d.ts +5 -3
- package/dist/desktop/types/bridgeTypes.d.ts.map +1 -1
- package/dist/desktop/types/graphTypes.d.ts +65 -0
- package/dist/desktop/types/graphTypes.d.ts.map +1 -1
- package/dist/desktop/types/runTypes.d.ts +15 -0
- package/dist/desktop/types/runTypes.d.ts.map +1 -1
- package/dist/graph/affectedTasks.d.ts +3 -0
- package/dist/graph/affectedTasks.d.ts.map +1 -0
- package/dist/graph/affectedTasks.js +70 -0
- package/dist/graph/affectedTasks.js.map +1 -0
- package/dist/graph/editGraph.d.ts.map +1 -1
- package/dist/graph/editGraph.js +1 -78
- package/dist/graph/editGraph.js.map +1 -1
- package/dist/graph/fieldEditMutation.d.ts +1 -1
- package/dist/graph/fieldEditMutation.d.ts.map +1 -1
- package/dist/graph/fieldEditMutation.js +11 -11
- package/dist/graph/fieldEditMutation.js.map +1 -1
- package/dist/graph/mutation.d.ts +6 -0
- package/dist/graph/mutation.d.ts.map +1 -1
- package/dist/graph/mutation.js +44 -63
- package/dist/graph/mutation.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/projectGraph/runtimeAggregation.d.ts +7 -2
- package/dist/projectGraph/runtimeAggregation.d.ts.map +1 -1
- package/dist/projectGraph/runtimeAggregation.js +11 -8
- package/dist/projectGraph/runtimeAggregation.js.map +1 -1
- package/dist/schema/manifest.d.ts +10 -0
- package/dist/schema/manifest.d.ts.map +1 -1
- package/dist/schema/manifest.js +17 -1
- package/dist/schema/manifest.js.map +1 -1
- package/dist/taskManager/autoRun.d.ts +6 -1
- package/dist/taskManager/autoRun.d.ts.map +1 -1
- package/dist/taskManager/autoRun.js +240 -1
- package/dist/taskManager/autoRun.js.map +1 -1
- package/dist/taskManager/claimHints.d.ts.map +1 -1
- package/dist/taskManager/claimHints.js +3 -1
- package/dist/taskManager/claimHints.js.map +1 -1
- package/dist/taskManager/claimReadiness.d.ts +34 -1
- package/dist/taskManager/claimReadiness.d.ts.map +1 -1
- package/dist/taskManager/claimReadiness.js +85 -1
- package/dist/taskManager/claimReadiness.js.map +1 -1
- package/dist/taskManager/claimReadinessRules.d.ts +1 -0
- package/dist/taskManager/claimReadinessRules.d.ts.map +1 -1
- package/dist/taskManager/claimReadinessRules.js +4 -0
- package/dist/taskManager/claimReadinessRules.js.map +1 -1
- package/dist/taskManager/claimScheduler.d.ts.map +1 -1
- package/dist/taskManager/claimScheduler.js +17 -69
- package/dist/taskManager/claimScheduler.js.map +1 -1
- package/dist/taskManager/executionStatus.d.ts +9 -3
- package/dist/taskManager/executionStatus.d.ts.map +1 -1
- package/dist/taskManager/executionStatus.js +5 -3
- package/dist/taskManager/executionStatus.js.map +1 -1
- package/dist/taskManager/projectGraphClaimGuard.d.ts +3 -0
- package/dist/taskManager/projectGraphClaimGuard.d.ts.map +1 -1
- package/dist/taskManager/projectGraphClaimGuard.js +9 -4
- package/dist/taskManager/projectGraphClaimGuard.js.map +1 -1
- package/dist/types.d.ts +90 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,8 @@ import { access, mkdir, rm } from "node:fs/promises";
|
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { readProject, resolveProjectWorkspace } from "../project.js";
|
|
5
5
|
import { readJsonFile, writeJsonFile } from "../json.js";
|
|
6
|
-
import {
|
|
6
|
+
import { buildCanvasHealth } from "./graph/canvasHealthModel.js";
|
|
7
|
+
import { readDesktopProjectProjection } from "./graph/projectProjectionModel.js";
|
|
7
8
|
async function exists(path) {
|
|
8
9
|
try {
|
|
9
10
|
await access(path, constants.R_OK);
|
|
@@ -81,7 +82,8 @@ async function projectTitle(projectRoot, fallback) {
|
|
|
81
82
|
return (await readProject(projectRoot))?.name ?? fallback;
|
|
82
83
|
}
|
|
83
84
|
async function canvasIdsForProject(projectRoot) {
|
|
84
|
-
const {
|
|
85
|
+
const { todoContext } = await readDesktopProjectProjection(projectRoot);
|
|
86
|
+
const { loaded, graph } = todoContext.aggregation;
|
|
85
87
|
return {
|
|
86
88
|
workspace: loaded.workspace,
|
|
87
89
|
projectId: loaded.workspace.id,
|
|
@@ -89,7 +91,8 @@ async function canvasIdsForProject(projectRoot) {
|
|
|
89
91
|
};
|
|
90
92
|
}
|
|
91
93
|
export async function getCanvasGraphViewModel(projectRoot) {
|
|
92
|
-
const {
|
|
94
|
+
const { todoContext } = await readDesktopProjectProjection(projectRoot);
|
|
95
|
+
const { loaded, graph, canvasesById } = todoContext.aggregation;
|
|
93
96
|
const diagnostics = [...graph.diagnostics.errors, ...graph.diagnostics.warnings];
|
|
94
97
|
const canvases = await Promise.all(graph.canvasIdsInOrder.map(async (canvasId) => {
|
|
95
98
|
const canvas = canvasesById.get(canvasId);
|
|
@@ -109,7 +112,8 @@ export async function getCanvasGraphViewModel(projectRoot) {
|
|
|
109
112
|
canvases,
|
|
110
113
|
edges: graph.manifest.edges.map((edge) => ({ from: edge.from, to: edge.to, type: edge.type })),
|
|
111
114
|
crossTaskEdges: graph.crossTaskEdges.map((edge) => ({ from: edge.from, to: edge.to, type: edge.type })),
|
|
112
|
-
diagnostics
|
|
115
|
+
diagnostics,
|
|
116
|
+
health: buildCanvasHealth(todoContext)
|
|
113
117
|
};
|
|
114
118
|
}
|
|
115
119
|
export async function getCanvasMapLayout(projectRoot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvasGraphApi.js","sourceRoot":"","sources":["../../src/desktop/canvasGraphApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"canvasGraphApi.js","sourceRoot":"","sources":["../../src/desktop/canvasGraphApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAOjF,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,SAA2B;IACtD,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAiB,EAAE,SAAmB;IACpE,OAAO;QACL,OAAO,EAAE,8BAA8B;QACvC,SAAS;QACT,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,QAAQ;YACR,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG;YACzB,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG;SACpC,CAAC,CAAC;QACH,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAc;IAClD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACxG,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc,EAAE,SAAiB,EAAE,SAAmB;IACtF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACpC,CAAC,CAAC,GAAG,CAAC,KAAK;aACN,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,UAAU,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;YACtD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjI,OAAO;QACL,OAAO,EAAE,8BAA8B;QACvC,SAAS;QACT,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,aAAa,CAAC;QACnC,SAAS,EAAE,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;KACjH,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,WAA8B;IAC5E,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACvC,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CACL,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;YAC5C,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,IAAI,CAAC;YAC5C,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC,CAC7C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,QAAgB;IAC/D,OAAO,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,IAAI,QAAQ,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IACpD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,4BAA4B,CAAC,WAAW,CAAC,CAAC;IACxE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC;IAClD,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;QAC9B,SAAS,EAAE,KAAK,CAAC,gBAAgB;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,WAAmB;IAC/D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,4BAA4B,CAAC,WAAW,CAAC,CAAC;IACxE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC;IAChE,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,mBAAmB,CAAC,CAAC;QAClE,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU;YAC3C,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;SACnG,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACF,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;QAC9B,YAAY,EAAE,MAAM,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACxF,QAAQ;QACR,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9F,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvG,WAAW;QACX,MAAM,EAAE,iBAAiB,CAAC,WAAW,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IAC1D,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,wBAAwB,CAAC,MAAM,YAAY,CAAU,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,MAA8B;IAC3F,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACnF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,IAAI,GAA2B;QACnC,OAAO,EAAE,8BAA8B;QACvC,SAAS;QACT,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IAC5D,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACxE,OAAO,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSyncApi.d.ts","sourceRoot":"","sources":["../../src/desktop/fileSyncApi.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"fileSyncApi.d.ts","sourceRoot":"","sources":["../../src/desktop/fileSyncApi.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AA0F9F,wBAAsB,gCAAgC,CAAC,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAQ/H;AAED,wBAAsB,+BAA+B,CACnD,WAAW,EAAE,mBAAmB,EAChC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,4BAA4B,CAAC,CA0BvC;AAED,wBAAsB,mCAAmC,CACvD,WAAW,EAAE,mBAAmB,EAChC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GACzB,OAAO,CAAC,4BAA4B,CAAC,CAwCvC;AAED,wBAAsB,yBAAyB,CAAC,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAwCvH;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE5F"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createPackageFileSnapshot as createRuntimePackageFileSnapshot, detectPackageFileChanges as detectRuntimePackageFileChanges, refreshChangedPackagePrompts as refreshRuntimeChangedPackagePrompts } from "../package/fileChanges.js";
|
|
2
2
|
import { resolvePackageWorkspace } from "../package/loadPackage.js";
|
|
3
|
+
import { invalidateDesktopProjectProjection } from "./graph/projectProjectionModel.js";
|
|
3
4
|
const snapshots = new Map();
|
|
4
5
|
const snapshotsById = new Map();
|
|
5
6
|
const dirtyRefsByProject = new Map();
|
|
@@ -68,6 +69,7 @@ function syncResult(options) {
|
|
|
68
69
|
};
|
|
69
70
|
}
|
|
70
71
|
export async function createDesktopPackageFileSnapshot(projectRoot) {
|
|
72
|
+
invalidateDesktopProjectProjection(projectRoot);
|
|
71
73
|
const projectKey = await snapshotKey(projectRoot);
|
|
72
74
|
const displayProjectRoot = typeof projectRoot === "string" ? projectRoot : projectRoot.rootPath;
|
|
73
75
|
const snapshot = await createRuntimePackageFileSnapshot(projectRoot);
|
|
@@ -76,6 +78,7 @@ export async function createDesktopPackageFileSnapshot(projectRoot) {
|
|
|
76
78
|
return snapshotRef(displayProjectRoot, snapshot);
|
|
77
79
|
}
|
|
78
80
|
export async function detectDesktopPackageFileChanges(projectRoot, snapshotId) {
|
|
81
|
+
invalidateDesktopProjectProjection(projectRoot);
|
|
79
82
|
const projectKey = await snapshotKey(projectRoot);
|
|
80
83
|
const previous = previousSnapshot(projectKey, snapshotId);
|
|
81
84
|
if (!previous) {
|
|
@@ -102,6 +105,7 @@ export async function detectDesktopPackageFileChanges(projectRoot, snapshotId) {
|
|
|
102
105
|
return detected;
|
|
103
106
|
}
|
|
104
107
|
export async function refreshChangedDesktopPackagePrompts(projectRoot, snapshotId) {
|
|
108
|
+
invalidateDesktopProjectProjection(projectRoot);
|
|
105
109
|
const projectKey = await snapshotKey(projectRoot);
|
|
106
110
|
const previous = previousSnapshot(projectKey, snapshotId);
|
|
107
111
|
if (!previous) {
|
|
@@ -142,6 +146,7 @@ export async function refreshChangedDesktopPackagePrompts(projectRoot, snapshotI
|
|
|
142
146
|
return refreshed;
|
|
143
147
|
}
|
|
144
148
|
export async function refreshPackageFileChanges(projectRoot) {
|
|
149
|
+
invalidateDesktopProjectProjection(projectRoot);
|
|
145
150
|
const projectKey = await snapshotKey(projectRoot);
|
|
146
151
|
const previous = snapshots.get(projectKey);
|
|
147
152
|
if (!previous) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSyncApi.js","sourceRoot":"","sources":["../../src/desktop/fileSyncApi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,IAAI,gCAAgC,EAC7D,wBAAwB,IAAI,+BAA+B,EAC3D,4BAA4B,IAAI,mCAAmC,EACpE,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"fileSyncApi.js","sourceRoot":"","sources":["../../src/desktop/fileSyncApi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,IAAI,gCAAgC,EAC7D,wBAAwB,IAAI,+BAA+B,EAC3D,4BAA4B,IAAI,mCAAmC,EACpE,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAQpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAC;AAEvF,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;AACzD,MAAM,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;AAC7D,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAoB,CAAC;AACvD,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAE3B,SAAS,cAAc;IACrB,OAAO,gBAAgB,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,OAAO,CAAC,IAAiC,EAAE,KAAkC;IACpF,OAAO,IAAI,EAAE,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,OAAO,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,KAA6B,EAAE,KAAe;IACxE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,QAA6B,EAAE,IAAyB;IAC/E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAChG,OAAO,kBAAkB,CACvB,IAAI,CAAC,KAAK,EACV,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CACzF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,WAAgC;IACzD,OAAO,CAAC,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;AACpE,CAAC;AAED,SAAS,WAAW,CAAC,WAAmB,EAAE,QAA6B;IACrE,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO;QACL,UAAU;QACV,WAAW;QACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB,EAAE,UAA0B;IACtE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAC3C,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,mBAAmB,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,OAQnB;IACC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QACpF,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,WAAgC;IACrF,kCAAkC,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,kBAAkB,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;IAChG,MAAM,QAAQ,GAAG,MAAM,gCAAgC,CAAC,WAAW,CAAC,CAAC;IACrE,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACpC,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACvC,OAAO,WAAW,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,WAAgC,EAChC,UAA0B;IAE1B,kCAAkC,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,gCAAgC,CAAC,WAAW,CAAC,CAAC;QACpD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,UAAU,CAAC;QAC1B,QAAQ;QACR,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;QACpB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;QACtC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;QAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;KACvC,CAAC,CAAC;IACH,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC7D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,WAAgC,EAChC,UAA0B;IAE1B,kCAAkC,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,gCAAgC,CAAC,WAAW,CAAC,CAAC;QACpD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAChF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,QAAQ;YACR,IAAI,EAAE,IAAI;YACV,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;YACpB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;YACtC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;YAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;SACvC,CAAC,CAAC;QACH,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC;QAC3B,QAAQ;QACR,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;QACpB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;QACtC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;QAC1C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;KACvC,CAAC,CAAC;IACH,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,WAAgC;IAC9E,kCAAkC,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,gCAAgC,CAAC,WAAW,CAAC,CAAC;QACpD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAChF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;YACpB,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;YACtC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;YAC1C,eAAe,EAAE,EAAE;YACnB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;SACvC,CAAC;IACJ,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,wBAAwB,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5E,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAC7D,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;QACpB,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;QACtC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa;QAC1C,eAAe,EAAE,wBAAwB;QACzC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAgC;IACvE,OAAO,kBAAkB,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvasHealthModel.d.ts","sourceRoot":"","sources":["../../../src/desktop/graph/canvasHealthModel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EAMpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AA0LzD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,CA+BlF"}
|
|
@@ -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":"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"}
|
|
@@ -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":"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;
|
|
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"}
|
|
@@ -4,6 +4,7 @@ import { buildPlanPackageBlockFieldEditMutation, buildPlanPackageTaskFieldEditMu
|
|
|
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
9
|
return value?.trim() || undefined;
|
|
9
10
|
}
|
|
@@ -75,17 +76,21 @@ function graphEditResult(manifest, affectedTasks = []) {
|
|
|
75
76
|
}
|
|
76
77
|
async function commitTaskEdit(projectRoot, input) {
|
|
77
78
|
const { manifest } = await loadPackage(projectRoot);
|
|
78
|
-
|
|
79
|
+
const result = await commitPlanPackageGraphMutation({
|
|
79
80
|
projectRoot,
|
|
80
81
|
mutation: buildPlanPackageTaskFieldEditMutation(manifest, input)
|
|
81
82
|
});
|
|
83
|
+
invalidateDesktopProjectProjection(projectRoot);
|
|
84
|
+
return result;
|
|
82
85
|
}
|
|
83
86
|
async function commitBlockEdit(projectRoot, input) {
|
|
84
87
|
const { manifest } = await loadPackage(projectRoot);
|
|
85
|
-
|
|
88
|
+
const result = await commitPlanPackageGraphMutation({
|
|
86
89
|
projectRoot,
|
|
87
90
|
mutation: buildPlanPackageBlockFieldEditMutation(manifest, input)
|
|
88
91
|
});
|
|
92
|
+
invalidateDesktopProjectProjection(projectRoot);
|
|
93
|
+
return result;
|
|
89
94
|
}
|
|
90
95
|
export async function addTaskNode(projectRoot, input) {
|
|
91
96
|
const { manifest } = await loadPackage(projectRoot);
|
|
@@ -113,7 +118,7 @@ export async function addTaskNode(projectRoot, input) {
|
|
|
113
118
|
acceptance: input.acceptance?.length ? input.acceptance : ["Task is implemented."],
|
|
114
119
|
blocks
|
|
115
120
|
};
|
|
116
|
-
|
|
121
|
+
const result = await commitPlanPackageGraphMutation({
|
|
117
122
|
projectRoot,
|
|
118
123
|
mutation: buildPlanPackageGraphMutation(manifest, {
|
|
119
124
|
kind: "addTaskNode",
|
|
@@ -122,6 +127,8 @@ export async function addTaskNode(projectRoot, input) {
|
|
|
122
127
|
blockPromptMarkdown: blocks.map((block) => ({ blockId: block.id, markdown: promptFileMarkdown(`# ${block.title}\n\n${input.promptMarkdown}`) }))
|
|
123
128
|
})
|
|
124
129
|
});
|
|
130
|
+
invalidateDesktopProjectProjection(projectRoot);
|
|
131
|
+
return result;
|
|
125
132
|
}
|
|
126
133
|
export async function addBlock(projectRoot, input) {
|
|
127
134
|
const { manifest } = await loadPackage(projectRoot);
|
|
@@ -137,7 +144,7 @@ export async function addBlock(projectRoot, input) {
|
|
|
137
144
|
executor: normalizeOptionalText(input.executor ?? null),
|
|
138
145
|
maxFeedbackCycles: manifest.review.maxFeedbackCycles
|
|
139
146
|
});
|
|
140
|
-
|
|
147
|
+
const result = await commitPlanPackageGraphMutation({
|
|
141
148
|
projectRoot,
|
|
142
149
|
mutation: buildPlanPackageGraphMutation(manifest, {
|
|
143
150
|
kind: "addBlock",
|
|
@@ -146,21 +153,27 @@ export async function addBlock(projectRoot, input) {
|
|
|
146
153
|
promptMarkdown: promptFileMarkdown(input.promptMarkdown)
|
|
147
154
|
})
|
|
148
155
|
});
|
|
156
|
+
invalidateDesktopProjectProjection(projectRoot);
|
|
157
|
+
return result;
|
|
149
158
|
}
|
|
150
159
|
export async function removeTaskNode(projectRoot, taskId) {
|
|
151
160
|
const { manifest } = await loadPackage(projectRoot);
|
|
152
161
|
getTask(compileTaskGraph(manifest), taskId);
|
|
153
|
-
|
|
162
|
+
const result = await commitPlanPackageGraphMutation({
|
|
154
163
|
projectRoot,
|
|
155
164
|
mutation: buildPlanPackageGraphMutation(manifest, { kind: "removeNode", nodeId: taskId, removeTaskDirectory: true })
|
|
156
165
|
});
|
|
166
|
+
invalidateDesktopProjectProjection(projectRoot);
|
|
167
|
+
return result;
|
|
157
168
|
}
|
|
158
169
|
export async function removeBlock(projectRoot, ref) {
|
|
159
170
|
const { manifest } = await loadPackage(projectRoot);
|
|
160
|
-
|
|
171
|
+
const result = await commitPlanPackageGraphMutation({
|
|
161
172
|
projectRoot,
|
|
162
173
|
mutation: buildPlanPackageGraphMutation(manifest, { kind: "removeBlock", blockRef: ref })
|
|
163
174
|
});
|
|
175
|
+
invalidateDesktopProjectProjection(projectRoot);
|
|
176
|
+
return result;
|
|
164
177
|
}
|
|
165
178
|
export async function validateGraphEdit(projectRoot, input) {
|
|
166
179
|
const { manifest } = await loadPackage(projectRoot);
|
|
@@ -203,10 +216,14 @@ export async function updateTaskExecutor(projectRoot, taskId, executorName) {
|
|
|
203
216
|
export async function updateBlockExecutor(projectRoot, ref, executorName) {
|
|
204
217
|
return commitBlockEdit(projectRoot, { blockRef: ref, executor: executorName });
|
|
205
218
|
}
|
|
206
|
-
export function addDependencyEdge(projectRoot, fromTaskId, toTaskId) {
|
|
207
|
-
|
|
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;
|
|
208
223
|
}
|
|
209
|
-
export function removeDependencyEdge(projectRoot, fromTaskId, toTaskId) {
|
|
210
|
-
|
|
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;
|
|
211
228
|
}
|
|
212
229
|
//# sourceMappingURL=editModel.js.map
|