have a feature flag to decide if we should disable user_goal_check (#1192)
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
import { MultiSelect } from "@/components/ui/multi-select";
|
||||||
|
import { useWorkflowParametersState } from "../../useWorkflowParametersState";
|
||||||
|
import { HelpTooltip } from "@/components/HelpTooltip";
|
||||||
|
import { helpTooltipContent } from "./types";
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
availableOutputParameters: Array<string>;
|
||||||
|
parameters: Array<string>;
|
||||||
|
onParametersChange: (parameters: Array<string>) => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
function TaskNodeParametersPanel({
|
||||||
|
availableOutputParameters,
|
||||||
|
parameters,
|
||||||
|
onParametersChange,
|
||||||
|
}: Props) {
|
||||||
|
const [workflowParameters] = useWorkflowParametersState();
|
||||||
|
const keys = workflowParameters
|
||||||
|
.map((parameter) => parameter.key)
|
||||||
|
.concat(availableOutputParameters);
|
||||||
|
|
||||||
|
const options = keys.map((key) => {
|
||||||
|
return {
|
||||||
|
label: key,
|
||||||
|
value: key,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="space-y-2">
|
||||||
|
<header className="flex gap-2">
|
||||||
|
<h1 className="text-xs text-slate-300">Parameters</h1>
|
||||||
|
<HelpTooltip content={helpTooltipContent["parameters"]} />
|
||||||
|
</header>
|
||||||
|
<MultiSelect
|
||||||
|
value={parameters}
|
||||||
|
onValueChange={onParametersChange}
|
||||||
|
options={options}
|
||||||
|
maxCount={50}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export { TaskNodeParametersPanel };
|
||||||
@@ -859,26 +859,32 @@ class ForgeAgent:
|
|||||||
|
|
||||||
task_completes_on_download = task_block and task_block.complete_on_download and task.workflow_run_id
|
task_completes_on_download = task_block and task_block.complete_on_download and task.workflow_run_id
|
||||||
if not has_decisive_action and not task_completes_on_download:
|
if not has_decisive_action and not task_completes_on_download:
|
||||||
working_page = await browser_state.must_get_working_page()
|
disable_user_goal_check = app.EXPERIMENTATION_PROVIDER.is_feature_enabled_cached(
|
||||||
complete_action = await self.check_user_goal_complete(
|
"DISABLE_USER_GOAL_CHECK",
|
||||||
page=working_page,
|
task.task_id,
|
||||||
scraped_page=scraped_page,
|
properties={"task_url": task.url, "organization_id": task.organization_id},
|
||||||
task=task,
|
|
||||||
step=step,
|
|
||||||
)
|
)
|
||||||
if complete_action is not None:
|
if not disable_user_goal_check:
|
||||||
LOG.info("User goal achieved, executing complete action")
|
working_page = await browser_state.must_get_working_page()
|
||||||
complete_action.organization_id = task.organization_id
|
complete_action = await self.check_user_goal_complete(
|
||||||
complete_action.workflow_run_id = task.workflow_run_id
|
page=working_page,
|
||||||
complete_action.task_id = task.task_id
|
scraped_page=scraped_page,
|
||||||
complete_action.step_id = step.step_id
|
task=task,
|
||||||
complete_action.step_order = step.order
|
step=step,
|
||||||
complete_action.action_order = len(detailed_agent_step_output.actions_and_results)
|
|
||||||
complete_results = await ActionHandler.handle_action(
|
|
||||||
scraped_page, task, step, working_page, complete_action
|
|
||||||
)
|
)
|
||||||
detailed_agent_step_output.actions_and_results.append((complete_action, complete_results))
|
if complete_action is not None:
|
||||||
await self.record_artifacts_after_action(task, step, browser_state)
|
LOG.info("User goal achieved, executing complete action")
|
||||||
|
complete_action.organization_id = task.organization_id
|
||||||
|
complete_action.workflow_run_id = task.workflow_run_id
|
||||||
|
complete_action.task_id = task.task_id
|
||||||
|
complete_action.step_id = step.step_id
|
||||||
|
complete_action.step_order = step.order
|
||||||
|
complete_action.action_order = len(detailed_agent_step_output.actions_and_results)
|
||||||
|
complete_results = await ActionHandler.handle_action(
|
||||||
|
scraped_page, task, step, working_page, complete_action
|
||||||
|
)
|
||||||
|
detailed_agent_step_output.actions_and_results.append((complete_action, complete_results))
|
||||||
|
await self.record_artifacts_after_action(task, step, browser_state)
|
||||||
# If no action errors return the agent state and output
|
# If no action errors return the agent state and output
|
||||||
completed_step = await self.update_step(
|
completed_step = await self.update_step(
|
||||||
step=step,
|
step=step,
|
||||||
|
|||||||
Reference in New Issue
Block a user