76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
/**
|
|
* Workflow Tools — required native tool contracts for guided and autonomous units.
|
|
*
|
|
* Purpose: keep workflow dispatch validation tied to native SF agent tools while
|
|
* preserving the explicit "no workflow MCP transport" boundary.
|
|
*
|
|
* Consumer: guided-flow, auto dispatch, auto phases, and model selection checks.
|
|
*/
|
|
export function getRequiredWorkflowToolsForGuidedUnit(unitType) {
|
|
switch (unitType) {
|
|
case "discuss-milestone":
|
|
return ["sf_summary_save", "sf_plan_milestone"];
|
|
case "discuss-slice":
|
|
return ["sf_summary_save"];
|
|
case "research-milestone":
|
|
case "research-slice":
|
|
return ["sf_summary_save"];
|
|
case "plan-milestone":
|
|
return ["sf_plan_milestone"];
|
|
case "plan-slice":
|
|
return ["sf_plan_slice"];
|
|
case "execute-task":
|
|
return ["sf_task_complete"];
|
|
case "complete-slice":
|
|
return ["sf_slice_complete"];
|
|
default:
|
|
return [];
|
|
}
|
|
}
|
|
export function getRequiredWorkflowToolsForAutoUnit(unitType) {
|
|
switch (unitType) {
|
|
case "discuss-milestone":
|
|
return ["sf_summary_save", "sf_plan_milestone"];
|
|
case "research-milestone":
|
|
case "research-slice":
|
|
case "run-uat":
|
|
return ["sf_summary_save"];
|
|
case "plan-milestone":
|
|
return ["sf_plan_milestone"];
|
|
case "plan-slice":
|
|
return ["sf_plan_slice"];
|
|
case "execute-task":
|
|
case "execute-task-simple":
|
|
case "reactive-execute":
|
|
return ["sf_task_complete"];
|
|
case "complete-slice":
|
|
return ["sf_slice_complete"];
|
|
case "replan-slice":
|
|
return ["sf_replan_slice"];
|
|
case "reassess-roadmap":
|
|
return ["sf_milestone_status", "sf_reassess_roadmap"];
|
|
case "gate-evaluate":
|
|
return ["sf_save_gate_result"];
|
|
case "validate-milestone":
|
|
return ["sf_milestone_status", "sf_validate_milestone"];
|
|
case "complete-milestone":
|
|
return ["sf_milestone_status", "sf_complete_milestone"];
|
|
default:
|
|
return [];
|
|
}
|
|
}
|
|
export function supportsStructuredQuestions(activeTools, options = {}) {
|
|
void options;
|
|
if (!activeTools.includes("ask_user_questions")) return false;
|
|
return true;
|
|
}
|
|
export function getWorkflowTransportSupportError(
|
|
provider,
|
|
requiredTools,
|
|
options = {},
|
|
) {
|
|
void provider;
|
|
void requiredTools;
|
|
void options;
|
|
return null;
|
|
}
|