@guanlin4924/devflow-pi 0.1.88 → 0.1.91
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/package.json
CHANGED
|
@@ -414,7 +414,7 @@ export function isRequirementDraftToolAllowed(toolName: string, input: unknown,
|
|
|
414
414
|
return normalized === "task" && taskAgents.length > 0 && taskAgents.every(agent => PLANNING_AGENTS.has(agent));
|
|
415
415
|
}
|
|
416
416
|
|
|
417
|
-
type InternalDevflowControlResource = "contract" | "state" | "mainflow" | "requirement_graph" | "requirement_coverage" | "project_context" | "skill_script";
|
|
417
|
+
type InternalDevflowControlResource = "contract" | "state" | "mainflow" | "requirement_graph" | "requirement_coverage" | "project_context" | "skill_script" | "code_index" | "review_preflight" | "review_run" | "review_submit";
|
|
418
418
|
|
|
419
419
|
/** Resolve an xdev target only when all supplied target aliases agree.
|
|
420
420
|
* A direct/eval caller can otherwise provide `path` for a real file plus an
|
|
@@ -443,6 +443,10 @@ export function internalDevflowControlResource(toolName: string, input: unknown)
|
|
|
443
443
|
if (target === "xd://devflow_requirement_coverage") return "requirement_coverage";
|
|
444
444
|
if (target === "xd://devflow_project_context") return "project_context";
|
|
445
445
|
if (target === "xd://devflow_skill_script") return "skill_script";
|
|
446
|
+
if (target === "xd://devflow_code_index") return "code_index";
|
|
447
|
+
if (target === "xd://devflow_review_preflight") return "review_preflight";
|
|
448
|
+
if (target === "xd://devflow_review_run") return "review_run";
|
|
449
|
+
if (target === "xd://devflow_review_submit") return "review_submit";
|
|
446
450
|
return undefined;
|
|
447
451
|
}
|
|
448
452
|
|
|
@@ -101,6 +101,22 @@ begin
|
|
|
101
101
|
CheckerRegistry.validate!(checker_ids)
|
|
102
102
|
CheckerRegistry.validate_executable!(checker_ids)
|
|
103
103
|
paths = (Array(step["outputs"]).map { |output| output["path"] } + [step.dig("meta_output", "path")]).compact.map { |value| interpolate(value, state) }.uniq
|
|
104
|
+
# Execute contracts must authorize the production files declared by the
|
|
105
|
+
# approved change plan. Workflow outputs only contain progress artifacts;
|
|
106
|
+
# omitting production_paths strands implementation workers in a contract
|
|
107
|
+
# that can write summaries but never code.
|
|
108
|
+
if options[:step] == "execute"
|
|
109
|
+
binding_path = File.join(root, ".planning/features", options[:feature], "test-bindings.json")
|
|
110
|
+
if File.file?(binding_path)
|
|
111
|
+
bindings = JSON.parse(File.read(binding_path))
|
|
112
|
+
Array(bindings["tasks"]).each do |task|
|
|
113
|
+
Array(task["production_paths"]).each do |production_path|
|
|
114
|
+
paths << interpolate(production_path.to_s, state) unless production_path.to_s.empty?
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
paths = paths.uniq
|
|
104
120
|
contract = {
|
|
105
121
|
"schema_version" => 2, "origin" => "core_execution_contract", "feature" => options[:feature], "step" => options[:step],
|
|
106
122
|
"state_revision" => state["revision"], "graph_revision" => graph["revision"], "workflow_path" => workflow_relative,
|
|
@@ -110,7 +126,7 @@ begin
|
|
|
110
126
|
# part of the frozen contract. The tool layer still applies per-tool
|
|
111
127
|
# mutation ownership and the step's allowed paths.
|
|
112
128
|
"allowed_tools" => %w[
|
|
113
|
-
read grep find glob lsp search write edit apply_patch bash shell exec_command task
|
|
129
|
+
read grep find glob lsp search write edit apply_patch bash shell exec_command task todo
|
|
114
130
|
devflow_api_test_matrix devflow_tdd_evidence devflow_run_acceptance_tests devflow_mainflow
|
|
115
131
|
devflow_requirement_graph devflow_static_runtime_context
|
|
116
132
|
devflow_architecture_constraint devflow_architecture_feasibility devflow_architecture_brief
|
package/src/constants.ts
CHANGED