@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.
- 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 -96
- 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 +177 -14
- package/dist/desktop/canvasApi.js.map +1 -1
- package/dist/desktop/canvasGraphApi.d.ts +6 -0
- package/dist/desktop/canvasGraphApi.d.ts.map +1 -0
- package/dist/desktop/canvasGraphApi.js +147 -0
- package/dist/desktop/canvasGraphApi.js.map +1 -0
- 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 +54 -98
- package/dist/desktop/graph/editModel.js.map +1 -1
- package/dist/desktop/graph/projectCanvasAggregation.d.ts +14 -1
- package/dist/desktop/graph/projectCanvasAggregation.d.ts.map +1 -1
- package/dist/desktop/graph/projectCanvasAggregation.js +61 -11
- 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 +110 -34
- 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 +4 -2
- package/dist/desktop/index.d.ts.map +1 -1
- package/dist/desktop/index.js +4 -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/projectApi.d.ts.map +1 -1
- package/dist/desktop/projectApi.js +5 -1
- package/dist/desktop/projectApi.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 +101 -13
- 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 +9 -3
- package/dist/desktop/types/bridgeTypes.d.ts.map +1 -1
- package/dist/desktop/types/graphTypes.d.ts +106 -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 +33 -0
- package/dist/graph/fieldEditMutation.d.ts.map +1 -0
- package/dist/graph/fieldEditMutation.js +157 -0
- package/dist/graph/fieldEditMutation.js.map +1 -0
- 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 +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/initWorkspace.d.ts +1 -0
- package/dist/initWorkspace.d.ts.map +1 -1
- package/dist/initWorkspace.js +3 -0
- package/dist/initWorkspace.js.map +1 -1
- package/dist/package/manifestEdit.d.ts.map +1 -1
- package/dist/package/manifestEdit.js +37 -191
- package/dist/package/manifestEdit.js.map +1 -1
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +17 -2
- package/dist/paths.js.map +1 -1
- package/dist/projectGraph/compileProjectGraph.d.ts +3 -0
- package/dist/projectGraph/compileProjectGraph.d.ts.map +1 -0
- package/dist/projectGraph/compileProjectGraph.js +184 -0
- package/dist/projectGraph/compileProjectGraph.js.map +1 -0
- package/dist/projectGraph/graphAlgorithms.d.ts +4 -0
- package/dist/projectGraph/graphAlgorithms.d.ts.map +1 -0
- package/dist/projectGraph/graphAlgorithms.js +63 -0
- package/dist/projectGraph/graphAlgorithms.js.map +1 -0
- package/dist/projectGraph/index.d.ts +11 -0
- package/dist/projectGraph/index.d.ts.map +1 -0
- package/dist/projectGraph/index.js +9 -0
- package/dist/projectGraph/index.js.map +1 -0
- package/dist/projectGraph/loadProjectGraph.d.ts +7 -0
- package/dist/projectGraph/loadProjectGraph.d.ts.map +1 -0
- package/dist/projectGraph/loadProjectGraph.js +102 -0
- package/dist/projectGraph/loadProjectGraph.js.map +1 -0
- package/dist/projectGraph/materializeProjectGraph.d.ts +9 -0
- package/dist/projectGraph/materializeProjectGraph.d.ts.map +1 -0
- package/dist/projectGraph/materializeProjectGraph.js +35 -0
- package/dist/projectGraph/materializeProjectGraph.js.map +1 -0
- package/dist/projectGraph/migration.d.ts +6 -0
- package/dist/projectGraph/migration.d.ts.map +1 -0
- package/dist/projectGraph/migration.js +41 -0
- package/dist/projectGraph/migration.js.map +1 -0
- package/dist/projectGraph/projectGraphKeys.d.ts +6 -0
- package/dist/projectGraph/projectGraphKeys.d.ts.map +1 -0
- package/dist/projectGraph/projectGraphKeys.js +20 -0
- package/dist/projectGraph/projectGraphKeys.js.map +1 -0
- package/dist/projectGraph/projectGraphWorkspace.d.ts +5 -0
- package/dist/projectGraph/projectGraphWorkspace.d.ts.map +1 -0
- package/dist/projectGraph/projectGraphWorkspace.js +38 -0
- package/dist/projectGraph/projectGraphWorkspace.js.map +1 -0
- package/dist/projectGraph/runtimeAggregation.d.ts +35 -0
- package/dist/projectGraph/runtimeAggregation.d.ts.map +1 -0
- package/dist/projectGraph/runtimeAggregation.js +131 -0
- package/dist/projectGraph/runtimeAggregation.js.map +1 -0
- package/dist/projectGraph/schema.d.ts +35 -0
- package/dist/projectGraph/schema.d.ts.map +1 -0
- package/dist/projectGraph/schema.js +46 -0
- package/dist/projectGraph/schema.js.map +1 -0
- package/dist/projectGraph/types.d.ts +68 -0
- package/dist/projectGraph/types.d.ts.map +1 -0
- package/dist/projectGraph/types.js +4 -0
- package/dist/projectGraph/types.js.map +1 -0
- 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/canvasCommandScope.d.ts +7 -0
- package/dist/taskManager/canvasCommandScope.d.ts.map +1 -0
- package/dist/taskManager/canvasCommandScope.js +34 -0
- package/dist/taskManager/canvasCommandScope.js.map +1 -0
- package/dist/taskManager/claimBlockDispatch.d.ts +7 -0
- package/dist/taskManager/claimBlockDispatch.d.ts.map +1 -0
- package/dist/taskManager/claimBlockDispatch.js +36 -0
- package/dist/taskManager/claimBlockDispatch.js.map +1 -0
- package/dist/taskManager/claimHints.d.ts +4 -0
- package/dist/taskManager/claimHints.d.ts.map +1 -0
- package/dist/taskManager/claimHints.js +88 -0
- package/dist/taskManager/claimHints.js.map +1 -0
- package/dist/taskManager/claimReadiness.d.ts +72 -0
- package/dist/taskManager/claimReadiness.d.ts.map +1 -0
- package/dist/taskManager/claimReadiness.js +186 -0
- package/dist/taskManager/claimReadiness.js.map +1 -0
- package/dist/taskManager/claimReadinessRules.d.ts +10 -0
- package/dist/taskManager/claimReadinessRules.d.ts.map +1 -0
- package/dist/taskManager/claimReadinessRules.js +51 -0
- package/dist/taskManager/claimReadinessRules.js.map +1 -0
- package/dist/taskManager/claimScheduler.d.ts.map +1 -1
- package/dist/taskManager/claimScheduler.js +47 -184
- package/dist/taskManager/claimScheduler.js.map +1 -1
- package/dist/taskManager/executionStatus.d.ts +12 -31
- package/dist/taskManager/executionStatus.d.ts.map +1 -1
- package/dist/taskManager/executionStatus.js +15 -109
- package/dist/taskManager/executionStatus.js.map +1 -1
- package/dist/taskManager/executorApi.d.ts.map +1 -1
- package/dist/taskManager/executorApi.js +12 -13
- package/dist/taskManager/executorApi.js.map +1 -1
- package/dist/taskManager/projectCanvasContext.d.ts +8 -0
- package/dist/taskManager/projectCanvasContext.d.ts.map +1 -0
- package/dist/taskManager/projectCanvasContext.js +66 -0
- package/dist/taskManager/projectCanvasContext.js.map +1 -0
- package/dist/taskManager/projectGraphClaimGuard.d.ts +9 -0
- package/dist/taskManager/projectGraphClaimGuard.d.ts.map +1 -0
- package/dist/taskManager/projectGraphClaimGuard.js +35 -0
- package/dist/taskManager/projectGraphClaimGuard.js.map +1 -0
- package/dist/taskManager/promptRenderer.d.ts +1 -1
- package/dist/taskManager/promptRenderer.d.ts.map +1 -1
- package/dist/taskManager/promptRenderer.js +16 -2
- package/dist/taskManager/promptRenderer.js.map +1 -1
- package/dist/types.d.ts +106 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validatePackage.d.ts.map +1 -1
- package/dist/validatePackage.js +35 -8
- package/dist/validatePackage.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { writeState } from "../state.js";
|
|
2
|
+
import { projectBlockerReason } from "./claimReadinessRules.js";
|
|
3
|
+
import { createProjectGraphClaimGuard } from "./projectGraphClaimGuard.js";
|
|
4
|
+
import { loadRuntime, refreshDerivedState } from "./runtimeContext.js";
|
|
5
|
+
import { canDispatchImplementationBlock, claimResultForBlock, validateClaimScope } from "./selectors.js";
|
|
6
|
+
function withCurrentRef(currentRefs, ref) {
|
|
7
|
+
return currentRefs.includes(ref) ? currentRefs : [...currentRefs, ref];
|
|
8
|
+
}
|
|
9
|
+
export async function claimDispatchedBlock(options) {
|
|
10
|
+
const context = await loadRuntime(options);
|
|
11
|
+
const { workspace, manifest, graph, state } = context;
|
|
12
|
+
const invalidScope = validateClaimScope({ kind: "block", blockRef: options.ref }, graph);
|
|
13
|
+
if (invalidScope) {
|
|
14
|
+
return invalidScope;
|
|
15
|
+
}
|
|
16
|
+
const block = graph.blocksByRef.get(options.ref);
|
|
17
|
+
if (block?.type !== "implementation") {
|
|
18
|
+
return { kind: "blocked", ref: options.ref, reason: "dispatch claims only support implementation blocks." };
|
|
19
|
+
}
|
|
20
|
+
const taskId = graph.blockTaskByRef.get(options.ref);
|
|
21
|
+
const projectBlocker = projectBlockerReason(await createProjectGraphClaimGuard(context), taskId);
|
|
22
|
+
if (projectBlocker) {
|
|
23
|
+
return { kind: "blocked", ref: options.ref, reason: projectBlocker };
|
|
24
|
+
}
|
|
25
|
+
if (!graph.parallelSafeByBlockRef.get(options.ref)) {
|
|
26
|
+
return { kind: "blocked", ref: options.ref, reason: `Block '${options.ref}' is not parallel-safe.` };
|
|
27
|
+
}
|
|
28
|
+
if (!canDispatchImplementationBlock(graph, state, options.ref)) {
|
|
29
|
+
return { kind: "blocked", ref: options.ref, reason: `Block '${options.ref}' is not dispatchable right now.` };
|
|
30
|
+
}
|
|
31
|
+
state.blocks[options.ref] = { ...state.blocks[options.ref], status: "in_progress" };
|
|
32
|
+
state.currentRefs = withCurrentRef(state.currentRefs, options.ref);
|
|
33
|
+
await writeState(workspace.stateFile, refreshDerivedState(manifest, state));
|
|
34
|
+
return claimResultForBlock(options.ref, graph, "dispatched");
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=claimBlockDispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimBlockDispatch.js","sourceRoot":"","sources":["../../src/taskManager/claimBlockDispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ClaimHint, CompiledExecutionGraph, RuntimeState } from "../types.js";
|
|
2
|
+
import type { ProjectGraphClaimGuard } from "./projectGraphClaimGuard.js";
|
|
3
|
+
export declare function buildClaimHints(graph: CompiledExecutionGraph, state: RuntimeState, projectGuard: ProjectGraphClaimGuard, defaultClaimLockReason: string | null): ClaimHint[];
|
|
4
|
+
//# sourceMappingURL=claimHints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimHints.d.ts","sourceRoot":"","sources":["../../src/taskManager/claimHints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,SAAS,EAAE,sBAAsB,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAC;AAC9G,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAgC1E,wBAAgB,eAAe,CAC7B,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,sBAAsB,EACpC,sBAAsB,EAAE,MAAM,GAAG,IAAI,GACpC,SAAS,EAAE,CA+Db"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { parseBlockRef } from "../graph/compileTaskGraph.js";
|
|
2
|
+
import { blockReadyWithoutProjectBlockers, projectBlockerReason, projectBlockers } from "./claimReadinessRules.js";
|
|
3
|
+
import { canDispatchImplementationBlock, requiredImplementationRefs } from "./selectors.js";
|
|
4
|
+
function statusReasonForBlock(blockState) {
|
|
5
|
+
if (blockState?.status === "blocked") {
|
|
6
|
+
return blockState.blockedReason ?? null;
|
|
7
|
+
}
|
|
8
|
+
if (blockState?.status === "diverged") {
|
|
9
|
+
return blockState.divergenceReason ?? null;
|
|
10
|
+
}
|
|
11
|
+
return blockState?.blockedReason ?? blockState?.divergenceReason ?? null;
|
|
12
|
+
}
|
|
13
|
+
function reviewGateUnlocksTasks(taskId, downstreamTasks, state, graph) {
|
|
14
|
+
return downstreamTasks.filter((downstreamTaskId) => (graph.taskDependenciesByTask.get(downstreamTaskId) ?? []).every((dependency) => dependency === taskId || state.tasks[dependency]?.status === "implemented"));
|
|
15
|
+
}
|
|
16
|
+
function dependencyBlockers(graph, state, ref, block, taskId) {
|
|
17
|
+
const blockedByTasks = taskId
|
|
18
|
+
? (graph.taskDependenciesByTask.get(taskId) ?? []).filter((dependency) => state.tasks[dependency]?.status !== "implemented")
|
|
19
|
+
: [];
|
|
20
|
+
const directBlockBlockers = (graph.blockDependenciesByRef.get(ref) ?? []).filter((dependency) => state.blocks[dependency]?.status !== "completed");
|
|
21
|
+
const reviewWorkBlockers = taskId && block?.type === "review"
|
|
22
|
+
? requiredImplementationRefs(graph, taskId).filter((dependency) => state.blocks[dependency]?.status !== "completed")
|
|
23
|
+
: [];
|
|
24
|
+
return { blockedByTasks, blockedByBlocks: Array.from(new Set([...directBlockBlockers, ...reviewWorkBlockers])) };
|
|
25
|
+
}
|
|
26
|
+
export function buildClaimHints(graph, state, projectGuard, defaultClaimLockReason) {
|
|
27
|
+
return graph.blockRefsInManifestOrder.map((ref) => {
|
|
28
|
+
const taskId = graph.blockTaskByRef.get(ref);
|
|
29
|
+
const block = graph.blocksByRef.get(ref);
|
|
30
|
+
const blockState = state.blocks[ref];
|
|
31
|
+
const { blockId } = parseBlockRef(ref);
|
|
32
|
+
const blockers = dependencyBlockers(graph, state, ref, block, taskId);
|
|
33
|
+
const baseReady = blockReadyWithoutProjectBlockers(graph, state, ref);
|
|
34
|
+
const projectBlocker = projectBlockerReason(projectGuard, taskId);
|
|
35
|
+
const blockedByProject = projectBlockers(projectGuard, taskId);
|
|
36
|
+
const ready = baseReady && defaultClaimLockReason === null && projectBlocker === null;
|
|
37
|
+
const parallelSafe = block?.type !== "review" && !!graph.parallelSafeByBlockRef.get(ref);
|
|
38
|
+
const dispatchable = projectBlocker === null && canDispatchImplementationBlock(graph, state, ref);
|
|
39
|
+
const downstreamTasks = taskId && block?.type === "review" ? (graph.taskDependentsByTask.get(taskId) ?? []) : [];
|
|
40
|
+
const reviewGate = taskId && block?.type === "review"
|
|
41
|
+
? {
|
|
42
|
+
isGate: true,
|
|
43
|
+
required: block.review.required,
|
|
44
|
+
requiredReason: block.review.required
|
|
45
|
+
? "Required review gate for task completion."
|
|
46
|
+
: "Optional review gate; not required for task completion.",
|
|
47
|
+
executorRole: "reviewer",
|
|
48
|
+
downstreamTasks,
|
|
49
|
+
unlocksTasks: reviewGateUnlocksTasks(taskId, downstreamTasks, state, graph),
|
|
50
|
+
needsChangesReturnsTo: requiredImplementationRefs(graph, taskId)
|
|
51
|
+
}
|
|
52
|
+
: null;
|
|
53
|
+
const readyReason = ready
|
|
54
|
+
? block?.type === "review"
|
|
55
|
+
? "Review gate is ready after required implementation blocks completed."
|
|
56
|
+
: parallelSafe
|
|
57
|
+
? "Block is ready and parallel-safe."
|
|
58
|
+
: "Block is ready for sequential claim."
|
|
59
|
+
: null;
|
|
60
|
+
const explicitStatusReason = statusReasonForBlock(blockState);
|
|
61
|
+
const statusReason = explicitStatusReason ??
|
|
62
|
+
(baseReady && defaultClaimLockReason ? defaultClaimLockReason : null) ??
|
|
63
|
+
(baseReady && projectBlocker ? projectBlocker : null) ??
|
|
64
|
+
(block?.type === "review" && !block.review.required
|
|
65
|
+
? "Optional review gate is not required and is not claimable; task can complete without it."
|
|
66
|
+
: null);
|
|
67
|
+
return {
|
|
68
|
+
ref,
|
|
69
|
+
taskId: taskId ?? "",
|
|
70
|
+
blockId,
|
|
71
|
+
blockType: block?.type ?? "implementation",
|
|
72
|
+
status: blockState?.status ?? "planned",
|
|
73
|
+
statusReason,
|
|
74
|
+
ready,
|
|
75
|
+
readyReason,
|
|
76
|
+
blockedByBlocks: blockers.blockedByBlocks,
|
|
77
|
+
blockedByTasks: blockers.blockedByTasks,
|
|
78
|
+
blockedByProject,
|
|
79
|
+
parallelSafe,
|
|
80
|
+
sequentialOnly: block?.type === "review" || !parallelSafe,
|
|
81
|
+
recommendedCommand: ready ? `planweave claim ${ref}` : null,
|
|
82
|
+
dispatchable,
|
|
83
|
+
dispatchCommand: dispatchable ? `planweave claim ${ref} --dispatch` : null,
|
|
84
|
+
reviewGate
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=claimHints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimHints.js","sourceRoot":"","sources":["../../src/taskManager/claimHints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { BlockType, ClaimHint, ClaimResult, ClaimScope, CompiledExecutionGraph, FeedbackEnvelopeState, PlanPackageManifest, RuntimeState, ValidationIssue } from "../types.js";
|
|
2
|
+
import type { ProjectGraphClaimGuard } from "./projectGraphClaimGuard.js";
|
|
3
|
+
export type ClaimCandidate = {
|
|
4
|
+
ref: string;
|
|
5
|
+
result: Extract<ClaimResult, {
|
|
6
|
+
kind: "block";
|
|
7
|
+
}>;
|
|
8
|
+
};
|
|
9
|
+
export type ClaimReadiness = {
|
|
10
|
+
scope: ClaimScope;
|
|
11
|
+
invalidScope: ClaimResult | null;
|
|
12
|
+
claimOrder: ClaimOrder;
|
|
13
|
+
defaultClaimLockReason: string | null;
|
|
14
|
+
claimHints: ClaimHint[];
|
|
15
|
+
nextClaimable: string[];
|
|
16
|
+
nextParallelClaimable: string[];
|
|
17
|
+
nextSequentialClaimable: string[];
|
|
18
|
+
nextParallelDispatchable: string[];
|
|
19
|
+
scopedNextSequentialClaimable: string[];
|
|
20
|
+
sequentialImplementationCandidates: ClaimCandidate[];
|
|
21
|
+
sequentialReviewCandidates: ClaimCandidate[];
|
|
22
|
+
parallelBatchRefs: string[];
|
|
23
|
+
firstProjectBlockedResult: Extract<ClaimResult, {
|
|
24
|
+
kind: "blocked";
|
|
25
|
+
}> | null;
|
|
26
|
+
firstBlockedResult: Extract<ClaimResult, {
|
|
27
|
+
kind: "blocked";
|
|
28
|
+
}> | null;
|
|
29
|
+
warnings: ValidationIssue[];
|
|
30
|
+
};
|
|
31
|
+
export type ClaimOrder = {
|
|
32
|
+
kind: "blocked";
|
|
33
|
+
result: Extract<ClaimResult, {
|
|
34
|
+
kind: "blocked";
|
|
35
|
+
}> | Extract<ClaimResult, {
|
|
36
|
+
kind: "none";
|
|
37
|
+
}>;
|
|
38
|
+
} | {
|
|
39
|
+
kind: "feedback";
|
|
40
|
+
feedbackId: string;
|
|
41
|
+
feedback: FeedbackEnvelopeState;
|
|
42
|
+
taskId: string;
|
|
43
|
+
result: Extract<ClaimResult, {
|
|
44
|
+
kind: "feedback";
|
|
45
|
+
}>;
|
|
46
|
+
} | {
|
|
47
|
+
kind: "currentReview";
|
|
48
|
+
ref: string;
|
|
49
|
+
reason: "current" | "feedback_resolved";
|
|
50
|
+
clearCurrentFeedback: boolean;
|
|
51
|
+
result: Extract<ClaimResult, {
|
|
52
|
+
kind: "block";
|
|
53
|
+
}>;
|
|
54
|
+
} | {
|
|
55
|
+
kind: "currentBlock";
|
|
56
|
+
ref: string;
|
|
57
|
+
result: Extract<ClaimResult, {
|
|
58
|
+
kind: "block";
|
|
59
|
+
}>;
|
|
60
|
+
} | {
|
|
61
|
+
kind: "ready";
|
|
62
|
+
};
|
|
63
|
+
export type BuildClaimReadinessInput = {
|
|
64
|
+
graph: CompiledExecutionGraph;
|
|
65
|
+
manifest: PlanPackageManifest;
|
|
66
|
+
state: RuntimeState;
|
|
67
|
+
scope?: ClaimScope;
|
|
68
|
+
blockType?: BlockType;
|
|
69
|
+
projectGuard?: ProjectGraphClaimGuard;
|
|
70
|
+
};
|
|
71
|
+
export declare function buildClaimReadiness(input: BuildClaimReadinessInput): ClaimReadiness;
|
|
72
|
+
//# sourceMappingURL=claimReadiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimReadiness.d.ts","sourceRoot":"","sources":["../../src/taskManager/claimReadiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAqB1E,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,6BAA6B,EAAE,MAAM,EAAE,CAAC;IACxC,kCAAkC,EAAE,cAAc,EAAE,CAAC;IACrD,0BAA0B,EAAE,cAAc,EAAE,CAAC;IAC7C,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,yBAAyB,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IAC5E,kBAAkB,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACrE,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAC/G;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;CACpD,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,GAAG,mBAAmB,CAAC;IACxC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACjD,GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACvC,CAAC;AA8KF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,cAAc,CA6CnF"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { buildClaimHints } from "./claimHints.js";
|
|
2
|
+
import { blockMatchesClaimFilter, blockReadyWithoutProjectBlockers, currentClaimLockReason, noProjectGraphBlockers, projectBlockerReason, reviewMaxCycleWarnings } from "./claimReadinessRules.js";
|
|
3
|
+
import { blockDependenciesCompleted, blockInScope, claimResultForBlock, activeOpenFeedback, feedbackInScope, normalizeClaimScope, taskDependenciesSatisfied, validateClaimScope } from "./selectors.js";
|
|
4
|
+
function claimCandidate(ref, graph, reason) {
|
|
5
|
+
const result = claimResultForBlock(ref, graph, reason);
|
|
6
|
+
if (result.kind !== "block") {
|
|
7
|
+
throw new Error(`Claim '${ref}' did not produce a block result.`);
|
|
8
|
+
}
|
|
9
|
+
return { ref, result };
|
|
10
|
+
}
|
|
11
|
+
function selectedParallelBatchRefs(graph, manifest, state, scope, blockType, projectGuard) {
|
|
12
|
+
const selected = [];
|
|
13
|
+
for (const ref of graph.blockRefsInManifestOrder) {
|
|
14
|
+
const taskId = graph.blockTaskByRef.get(ref);
|
|
15
|
+
const block = graph.blocksByRef.get(ref);
|
|
16
|
+
if (!blockMatchesClaimFilter(ref, graph, scope, blockType) || !taskId || !block || block.type === "review") {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
if (selected.length >= manifest.execution.parallel.maxConcurrent) {
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
if (!taskDependenciesSatisfied(graph, state, taskId) || projectBlockerReason(projectGuard, taskId) || !blockDependenciesCompleted(graph, state, ref)) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (!graph.parallelSafeByBlockRef.get(ref) || state.blocks[ref]?.status !== "ready") {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
const locks = new Set(graph.locksByBlockRef.get(ref) ?? []);
|
|
29
|
+
const conflicts = selected.some((selectedRef) => {
|
|
30
|
+
const selectedTaskId = graph.blockTaskByRef.get(selectedRef);
|
|
31
|
+
if (selectedTaskId && (graph.taskReachable(taskId, selectedTaskId) || graph.taskReachable(selectedTaskId, taskId))) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
return (graph.locksByBlockRef.get(selectedRef) ?? []).some((lock) => locks.has(lock));
|
|
35
|
+
});
|
|
36
|
+
if (!conflicts) {
|
|
37
|
+
selected.push(ref);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return selected;
|
|
41
|
+
}
|
|
42
|
+
function firstProjectBlockedResult(graph, state, scope, blockType, projectGuard) {
|
|
43
|
+
const ref = graph.blockRefsInManifestOrder.find((candidate) => {
|
|
44
|
+
if (!blockMatchesClaimFilter(candidate, graph, scope, blockType) || !blockReadyWithoutProjectBlockers(graph, state, candidate)) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
return Boolean(projectBlockerReason(projectGuard, graph.blockTaskByRef.get(candidate)));
|
|
48
|
+
});
|
|
49
|
+
return ref
|
|
50
|
+
? {
|
|
51
|
+
kind: "blocked",
|
|
52
|
+
ref,
|
|
53
|
+
reason: projectBlockerReason(projectGuard, graph.blockTaskByRef.get(ref)) ?? "Project graph blockers are not complete."
|
|
54
|
+
}
|
|
55
|
+
: null;
|
|
56
|
+
}
|
|
57
|
+
function firstBlockedResult(graph, state, scope) {
|
|
58
|
+
const ref = graph.blockRefsInManifestOrder.find((candidate) => blockInScope(candidate, graph, scope) && state.blocks[candidate]?.status === "blocked");
|
|
59
|
+
return ref ? { kind: "blocked", ref, reason: state.blocks[ref]?.blockedReason ?? `Block '${ref}' is blocked.` } : null;
|
|
60
|
+
}
|
|
61
|
+
function blockedByClaimType(ref, reason) {
|
|
62
|
+
return { kind: "blocked", result: { kind: "blocked", ref, reason } };
|
|
63
|
+
}
|
|
64
|
+
function buildClaimOrder(input) {
|
|
65
|
+
const openFeedback = activeOpenFeedback(input.state);
|
|
66
|
+
if (openFeedback.length > 1) {
|
|
67
|
+
return { kind: "blocked", result: { kind: "blocked", reason: "Multiple open feedback envelopes exist; resolve or dismiss one before continuing." } };
|
|
68
|
+
}
|
|
69
|
+
if (openFeedback.length === 1) {
|
|
70
|
+
const [feedbackId, feedback] = openFeedback[0];
|
|
71
|
+
if (!feedbackInScope(feedback, input.graph, input.scope)) {
|
|
72
|
+
return { kind: "blocked", result: { kind: "none", reason: "no_claimable_blocks_in_scope" } };
|
|
73
|
+
}
|
|
74
|
+
const taskId = input.graph.blockTaskByRef.get(feedback.sourceReviewBlockRef);
|
|
75
|
+
if (!taskId) {
|
|
76
|
+
throw new Error(`Feedback '${feedbackId}' points to an unknown review block.`);
|
|
77
|
+
}
|
|
78
|
+
const projectBlocker = projectBlockerReason(input.projectGuard, taskId);
|
|
79
|
+
if (projectBlocker) {
|
|
80
|
+
return { kind: "blocked", result: { kind: "blocked", ref: feedback.sourceReviewBlockRef, reason: projectBlocker } };
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
kind: "feedback",
|
|
84
|
+
feedbackId,
|
|
85
|
+
feedback,
|
|
86
|
+
taskId,
|
|
87
|
+
result: { kind: "feedback", feedbackId, sourceReviewBlockRef: feedback.sourceReviewBlockRef, taskId, content: feedback.content }
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const inProgressReview = input.graph.blockRefsInManifestOrder.find((ref) => {
|
|
91
|
+
const block = input.graph.blocksByRef.get(ref);
|
|
92
|
+
return block?.type === "review" && input.state.blocks[ref]?.status === "in_progress";
|
|
93
|
+
});
|
|
94
|
+
if (inProgressReview && input.state.currentFeedbackId) {
|
|
95
|
+
if (input.blockType && input.blockType !== "review") {
|
|
96
|
+
return blockedByClaimType(inProgressReview, "A review block is in progress outside the selected claim type.");
|
|
97
|
+
}
|
|
98
|
+
const currentFeedback = input.state.feedback[input.state.currentFeedbackId];
|
|
99
|
+
if (currentFeedback?.status === "resolved") {
|
|
100
|
+
if (!blockInScope(inProgressReview, input.graph, input.scope)) {
|
|
101
|
+
return { kind: "blocked", result: { kind: "blocked", ref: inProgressReview, reason: "A review block is in progress outside the selected Auto Run scope." } };
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
kind: "currentReview",
|
|
105
|
+
ref: inProgressReview,
|
|
106
|
+
reason: "feedback_resolved",
|
|
107
|
+
clearCurrentFeedback: true,
|
|
108
|
+
result: claimCandidate(inProgressReview, input.graph, "feedback_resolved").result
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (inProgressReview) {
|
|
113
|
+
if (input.blockType && input.blockType !== "review") {
|
|
114
|
+
return blockedByClaimType(inProgressReview, "A review block is in progress outside the selected claim type.");
|
|
115
|
+
}
|
|
116
|
+
if (!blockInScope(inProgressReview, input.graph, input.scope)) {
|
|
117
|
+
return { kind: "blocked", result: { kind: "blocked", ref: inProgressReview, reason: "A review block is in progress outside the selected Auto Run scope." } };
|
|
118
|
+
}
|
|
119
|
+
const reason = input.state.blocks[inProgressReview]?.pendingFeedbackId ? "feedback_resolved" : "current";
|
|
120
|
+
return {
|
|
121
|
+
kind: "currentReview",
|
|
122
|
+
ref: inProgressReview,
|
|
123
|
+
reason,
|
|
124
|
+
clearCurrentFeedback: false,
|
|
125
|
+
result: claimCandidate(inProgressReview, input.graph, reason).result
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
const current = input.graph.blockRefsInManifestOrder.find((ref) => {
|
|
129
|
+
const block = input.graph.blocksByRef.get(ref);
|
|
130
|
+
return input.state.blocks[ref]?.status === "in_progress" && block?.type !== "review";
|
|
131
|
+
});
|
|
132
|
+
if (current) {
|
|
133
|
+
const currentBlock = input.graph.blocksByRef.get(current);
|
|
134
|
+
if (input.blockType && currentBlock?.type !== input.blockType) {
|
|
135
|
+
return blockedByClaimType(current, "A block is in progress outside the selected claim type.");
|
|
136
|
+
}
|
|
137
|
+
if (!blockInScope(current, input.graph, input.scope)) {
|
|
138
|
+
return { kind: "blocked", result: { kind: "blocked", ref: current, reason: "A block is in progress outside the selected Auto Run scope." } };
|
|
139
|
+
}
|
|
140
|
+
return { kind: "currentBlock", ref: current, result: claimCandidate(current, input.graph, "current").result };
|
|
141
|
+
}
|
|
142
|
+
return { kind: "ready" };
|
|
143
|
+
}
|
|
144
|
+
export function buildClaimReadiness(input) {
|
|
145
|
+
const scope = normalizeClaimScope(input.scope);
|
|
146
|
+
const projectGuard = input.projectGuard ?? noProjectGraphBlockers;
|
|
147
|
+
const invalidScope = validateClaimScope(scope, input.graph);
|
|
148
|
+
const defaultClaimLockReason = currentClaimLockReason(input.graph, input.state);
|
|
149
|
+
const claimHints = buildClaimHints(input.graph, input.state, projectGuard, defaultClaimLockReason);
|
|
150
|
+
const scopedReadyRefs = input.graph.blockRefsInManifestOrder.filter((ref) => blockMatchesClaimFilter(ref, input.graph, scope, input.blockType) &&
|
|
151
|
+
blockReadyWithoutProjectBlockers(input.graph, input.state, ref) &&
|
|
152
|
+
!projectBlockerReason(projectGuard, input.graph.blockTaskByRef.get(ref)));
|
|
153
|
+
const sequentialImplementationCandidates = scopedReadyRefs
|
|
154
|
+
.filter((ref) => input.graph.blocksByRef.get(ref)?.type !== "review")
|
|
155
|
+
.map((ref) => claimCandidate(ref, input.graph, "claimed"));
|
|
156
|
+
const sequentialReviewCandidates = scopedReadyRefs
|
|
157
|
+
.filter((ref) => input.graph.blocksByRef.get(ref)?.type === "review")
|
|
158
|
+
.map((ref) => claimCandidate(ref, input.graph, "claimed"));
|
|
159
|
+
const nextClaimable = claimHints.filter((hint) => hint.ready).map((hint) => hint.ref);
|
|
160
|
+
const nextParallelClaimable = claimHints.filter((hint) => hint.ready && hint.parallelSafe).map((hint) => hint.ref);
|
|
161
|
+
const nextSequentialClaimable = claimHints.filter((hint) => hint.ready && !hint.parallelSafe).map((hint) => hint.ref);
|
|
162
|
+
const nextParallelDispatchable = claimHints.filter((hint) => hint.dispatchable).map((hint) => hint.ref);
|
|
163
|
+
const scopedNextSequentialClaimable = scopedReadyRefs.filter((ref) => {
|
|
164
|
+
const block = input.graph.blocksByRef.get(ref);
|
|
165
|
+
return block?.type === "review" || !input.graph.parallelSafeByBlockRef.get(ref);
|
|
166
|
+
});
|
|
167
|
+
return {
|
|
168
|
+
scope,
|
|
169
|
+
invalidScope,
|
|
170
|
+
claimOrder: buildClaimOrder({ graph: input.graph, state: input.state, scope, blockType: input.blockType, projectGuard }),
|
|
171
|
+
defaultClaimLockReason,
|
|
172
|
+
claimHints,
|
|
173
|
+
nextClaimable,
|
|
174
|
+
nextParallelClaimable,
|
|
175
|
+
nextSequentialClaimable,
|
|
176
|
+
nextParallelDispatchable,
|
|
177
|
+
scopedNextSequentialClaimable,
|
|
178
|
+
sequentialImplementationCandidates,
|
|
179
|
+
sequentialReviewCandidates,
|
|
180
|
+
parallelBatchRefs: selectedParallelBatchRefs(input.graph, input.manifest, input.state, scope, input.blockType, projectGuard),
|
|
181
|
+
firstProjectBlockedResult: firstProjectBlockedResult(input.graph, input.state, scope, input.blockType, projectGuard),
|
|
182
|
+
firstBlockedResult: firstBlockedResult(input.graph, input.state, scope),
|
|
183
|
+
warnings: reviewMaxCycleWarnings(input.graph, input.state)
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=claimReadiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimReadiness.js","sourceRoot":"","sources":["../../src/taskManager/claimReadiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BlockType, ClaimScope, CompiledExecutionGraph, RuntimeState, ValidationIssue } from "../types.js";
|
|
2
|
+
import type { ProjectGraphClaimGuard } from "./projectGraphClaimGuard.js";
|
|
3
|
+
export declare const noProjectGraphBlockers: ProjectGraphClaimGuard;
|
|
4
|
+
export declare function projectBlockerReason(projectGuard: ProjectGraphClaimGuard, taskId: string | undefined): string | null;
|
|
5
|
+
export declare function projectBlockers(projectGuard: ProjectGraphClaimGuard, taskId: string | undefined): string[];
|
|
6
|
+
export declare function currentClaimLockReason(graph: CompiledExecutionGraph, state: RuntimeState): string | null;
|
|
7
|
+
export declare function blockMatchesClaimFilter(ref: string, graph: CompiledExecutionGraph, scope: ClaimScope, blockType: BlockType | undefined): boolean;
|
|
8
|
+
export declare function blockReadyWithoutProjectBlockers(graph: CompiledExecutionGraph, state: RuntimeState, ref: string): boolean;
|
|
9
|
+
export declare function reviewMaxCycleWarnings(graph: CompiledExecutionGraph, state: RuntimeState): ValidationIssue[];
|
|
10
|
+
//# sourceMappingURL=claimReadinessRules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimReadinessRules.d.ts","sourceRoot":"","sources":["../../src/taskManager/claimReadinessRules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAS1E,eAAO,MAAM,sBAAsB,EAAE,sBAGpC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAEpH;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAE1G;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAiBxG;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAGhJ;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAOzH;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,GAAG,eAAe,EAAE,CAQ5G"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { blockDependenciesCompleted, blockInScope, canClaimReviewBlock, isActiveFeedbackStatus, taskDependenciesSatisfied } from "./selectors.js";
|
|
2
|
+
export const noProjectGraphBlockers = {
|
|
3
|
+
blockersForTask: () => [],
|
|
4
|
+
blockerReasonForTask: () => null
|
|
5
|
+
};
|
|
6
|
+
export function projectBlockerReason(projectGuard, taskId) {
|
|
7
|
+
return taskId ? projectGuard.blockerReasonForTask(taskId) : null;
|
|
8
|
+
}
|
|
9
|
+
export function projectBlockers(projectGuard, taskId) {
|
|
10
|
+
return taskId ? projectGuard.blockersForTask(taskId) : [];
|
|
11
|
+
}
|
|
12
|
+
export function currentClaimLockReason(graph, state) {
|
|
13
|
+
const activeFeedback = Object.entries(state.feedback).find(([, feedback]) => isActiveFeedbackStatus(feedback.status));
|
|
14
|
+
if (activeFeedback) {
|
|
15
|
+
return `Default claims are locked by current feedback '${activeFeedback[0]}'.`;
|
|
16
|
+
}
|
|
17
|
+
const inProgressReview = graph.blockRefsInManifestOrder.find((ref) => {
|
|
18
|
+
const block = graph.blocksByRef.get(ref);
|
|
19
|
+
return block?.type === "review" && state.blocks[ref]?.status === "in_progress";
|
|
20
|
+
});
|
|
21
|
+
if (inProgressReview) {
|
|
22
|
+
return `Default claims are locked by current review block '${inProgressReview}'.`;
|
|
23
|
+
}
|
|
24
|
+
const inProgressBlock = graph.blockRefsInManifestOrder.find((ref) => {
|
|
25
|
+
const block = graph.blocksByRef.get(ref);
|
|
26
|
+
return block?.type !== "review" && state.blocks[ref]?.status === "in_progress";
|
|
27
|
+
});
|
|
28
|
+
return inProgressBlock ? `Default claims are locked by current block '${inProgressBlock}'.` : null;
|
|
29
|
+
}
|
|
30
|
+
export function blockMatchesClaimFilter(ref, graph, scope, blockType) {
|
|
31
|
+
const block = graph.blocksByRef.get(ref);
|
|
32
|
+
return blockInScope(ref, graph, scope) && (!blockType || block?.type === blockType);
|
|
33
|
+
}
|
|
34
|
+
export function blockReadyWithoutProjectBlockers(graph, state, ref) {
|
|
35
|
+
const taskId = graph.blockTaskByRef.get(ref);
|
|
36
|
+
const block = graph.blocksByRef.get(ref);
|
|
37
|
+
if (!taskId || !block || state.blocks[ref]?.status !== "ready" || !taskDependenciesSatisfied(graph, state, taskId)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return block.type === "review" ? canClaimReviewBlock(graph, state, ref) : blockDependenciesCompleted(graph, state, ref);
|
|
41
|
+
}
|
|
42
|
+
export function reviewMaxCycleWarnings(graph, state) {
|
|
43
|
+
return graph.blockRefsInManifestOrder
|
|
44
|
+
.filter((ref) => state.blocks[ref]?.completionReason === "max_cycles_reached")
|
|
45
|
+
.map((ref) => ({
|
|
46
|
+
code: "review_max_cycles_reached",
|
|
47
|
+
message: `Review block '${ref}' reached max feedback cycles without passing.`,
|
|
48
|
+
path: ref
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=claimReadinessRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimReadinessRules.js","sourceRoot":"","sources":["../../src/taskManager/claimReadinessRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claimScheduler.d.ts","sourceRoot":"","sources":["../../src/taskManager/claimScheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"claimScheduler.d.ts","sourceRoot":"","sources":["../../src/taskManager/claimScheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAqBlH,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACvC,WAAW,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC,GAAG,OAAO,CAAC,WAAW,CAAC,CAoIvB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE;IACxC,WAAW,EAAE,mBAAmB,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC,GAAG,OAAO,CAAC,WAAW,CAAC,CAKvB;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACvC,WAAW,EAAE,mBAAmB,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC,GAAG,OAAO,CAAC,WAAW,CAAC,CAEvB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,WAAW,EAAE,mBAAmB,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC,GAAG,OAAO,CAAC,WAAW,CAAC,CAEvB"}
|