From 025eebbdf37e5f8a525ec3529846ba26a9ccb5fd Mon Sep 17 00:00:00 2001 From: Cole Hurwitz Date: Tue, 15 Sep 2026 17:07:43 +0000 Subject: [PATCH] fix: change ProjectState imports from factory.models to factory.workflow.primitives MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After PR #1500 decoupled the graph language from the runtime, Workflow.trigger's type signature references primitives.ProjectState, but 23 workflow/test files still imported from factory.models — creating 68 mypy arg-type errors. This changes all 23 files to import ProjectState from factory.workflow.primitives, which is the correct source for the workflow subsystem per the decoupling design. Files changed: - 3 core workflow modules (research, deep_research, deep_qa) - 11 contributed benchmark workflows - 9 contributed benchmark test files Verification: - mypy factory/ | grep arg-type → 0 results - pytest factory/workflow/contributed/ → 257 passed - ruff check → all passed Co-Authored-By: Claude Opus 4.6 (1M context) --- factory/workflow/contributed/devopsgym/test_workflow.py | 2 +- factory/workflow/contributed/devopsgym/workflow.py | 2 +- factory/workflow/contributed/featurebench/test_workflow.py | 2 +- factory/workflow/contributed/featurebench/workflow.py | 2 +- factory/workflow/contributed/legacybench/test_workflow.py | 2 +- factory/workflow/contributed/legacybench/workflow.py | 2 +- factory/workflow/contributed/mini_swebench/workflow.py | 2 +- factory/workflow/contributed/outer_loop/workflow.py | 2 +- factory/workflow/contributed/programbench/test_workflow.py | 2 +- factory/workflow/contributed/programbench/workflow.py | 2 +- factory/workflow/contributed/salitrap/test_workflow.py | 2 +- factory/workflow/contributed/salitrap/workflow.py | 2 +- factory/workflow/contributed/swebench/test_workflow.py | 2 +- factory/workflow/contributed/swebench/workflow.py | 2 +- factory/workflow/contributed/swebenchifyhard/test_workflow.py | 2 +- factory/workflow/contributed/swebenchifyhard/workflow.py | 2 +- factory/workflow/contributed/terminalbench/test_workflow.py | 2 +- factory/workflow/contributed/terminalbench/workflow.py | 2 +- factory/workflow/contributed/tomswe/test_workflow.py | 2 +- factory/workflow/contributed/tomswe/workflow.py | 2 +- factory/workflow/deep_qa.py | 3 +-- factory/workflow/deep_research.py | 2 +- factory/workflow/research.py | 3 +-- 23 files changed, 23 insertions(+), 25 deletions(-) diff --git a/factory/workflow/contributed/devopsgym/test_workflow.py b/factory/workflow/contributed/devopsgym/test_workflow.py index a11ae65b7..6161ef5b2 100644 --- a/factory/workflow/contributed/devopsgym/test_workflow.py +++ b/factory/workflow/contributed/devopsgym/test_workflow.py @@ -2,7 +2,6 @@ from __future__ import annotations -from factory.models import ProjectState from factory.workflow.contributed.devopsgym import meta, workflow from factory.workflow.definitions import register_all from factory.workflow.primitives import ( @@ -10,6 +9,7 @@ AgentRole, FnNode, GateNode, + ProjectState, VerdictType, ) diff --git a/factory/workflow/contributed/devopsgym/workflow.py b/factory/workflow/contributed/devopsgym/workflow.py index a6a70747a..c380d265b 100644 --- a/factory/workflow/contributed/devopsgym/workflow.py +++ b/factory/workflow/contributed/devopsgym/workflow.py @@ -13,13 +13,13 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( AgentNode, AgentRole, Edge, FnNode, GateNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/contributed/featurebench/test_workflow.py b/factory/workflow/contributed/featurebench/test_workflow.py index b1dcbde56..0ae2d7ea2 100644 --- a/factory/workflow/contributed/featurebench/test_workflow.py +++ b/factory/workflow/contributed/featurebench/test_workflow.py @@ -2,7 +2,6 @@ from __future__ import annotations -from factory.models import ProjectState from factory.workflow.contributed.featurebench import meta, workflow from factory.workflow.definitions import register_all from factory.workflow.primitives import ( @@ -10,6 +9,7 @@ AgentRole, FnNode, GateNode, + ProjectState, VerdictType, ) diff --git a/factory/workflow/contributed/featurebench/workflow.py b/factory/workflow/contributed/featurebench/workflow.py index 0df98ca12..a2aec2515 100644 --- a/factory/workflow/contributed/featurebench/workflow.py +++ b/factory/workflow/contributed/featurebench/workflow.py @@ -15,13 +15,13 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( AgentNode, AgentRole, Edge, FnNode, GateNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/contributed/legacybench/test_workflow.py b/factory/workflow/contributed/legacybench/test_workflow.py index 52cca20ce..a4d90395f 100644 --- a/factory/workflow/contributed/legacybench/test_workflow.py +++ b/factory/workflow/contributed/legacybench/test_workflow.py @@ -2,7 +2,6 @@ from __future__ import annotations -from factory.models import ProjectState from factory.workflow.contributed.legacybench import meta, workflow from factory.workflow.definitions import register_all from factory.workflow.primitives import ( @@ -10,6 +9,7 @@ AgentRole, FnNode, GateNode, + ProjectState, VerdictType, ) diff --git a/factory/workflow/contributed/legacybench/workflow.py b/factory/workflow/contributed/legacybench/workflow.py index 756195b94..023eaad1c 100644 --- a/factory/workflow/contributed/legacybench/workflow.py +++ b/factory/workflow/contributed/legacybench/workflow.py @@ -14,13 +14,13 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( AgentNode, AgentRole, Edge, FnNode, GateNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/contributed/mini_swebench/workflow.py b/factory/workflow/contributed/mini_swebench/workflow.py index e97447a85..f01f143e5 100644 --- a/factory/workflow/contributed/mini_swebench/workflow.py +++ b/factory/workflow/contributed/mini_swebench/workflow.py @@ -11,13 +11,13 @@ import os from typing import Any, Literal -from factory.models import ProjectState from factory.workflow.llm_tools import BASH_TOOL from factory.workflow.primitives import ( Edge, FnNode, GateNode, LLMNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/contributed/outer_loop/workflow.py b/factory/workflow/contributed/outer_loop/workflow.py index 5f5631779..813174d4a 100644 --- a/factory/workflow/contributed/outer_loop/workflow.py +++ b/factory/workflow/contributed/outer_loop/workflow.py @@ -11,11 +11,11 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( Edge, FnNode, GateNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/contributed/programbench/test_workflow.py b/factory/workflow/contributed/programbench/test_workflow.py index 13611d5b3..c412c9e9d 100644 --- a/factory/workflow/contributed/programbench/test_workflow.py +++ b/factory/workflow/contributed/programbench/test_workflow.py @@ -2,7 +2,6 @@ from __future__ import annotations -from factory.models import ProjectState from factory.workflow.contributed.programbench import meta, workflow from factory.workflow.definitions import register_all from factory.workflow.primitives import ( @@ -10,6 +9,7 @@ AgentRole, FnNode, GateNode, + ProjectState, VerdictType, ) diff --git a/factory/workflow/contributed/programbench/workflow.py b/factory/workflow/contributed/programbench/workflow.py index f193752c0..8aa2d62f6 100644 --- a/factory/workflow/contributed/programbench/workflow.py +++ b/factory/workflow/contributed/programbench/workflow.py @@ -15,13 +15,13 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( AgentNode, AgentRole, Edge, FnNode, GateNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/contributed/salitrap/test_workflow.py b/factory/workflow/contributed/salitrap/test_workflow.py index b67b42ec1..daa7913ac 100644 --- a/factory/workflow/contributed/salitrap/test_workflow.py +++ b/factory/workflow/contributed/salitrap/test_workflow.py @@ -2,7 +2,6 @@ from __future__ import annotations -from factory.models import ProjectState from factory.workflow.contributed.salitrap import meta, workflow from factory.workflow.definitions import register_all from factory.workflow.primitives import ( @@ -10,6 +9,7 @@ AgentRole, FnNode, GateNode, + ProjectState, VerdictType, ) diff --git a/factory/workflow/contributed/salitrap/workflow.py b/factory/workflow/contributed/salitrap/workflow.py index fe2316b05..9c8b8d477 100644 --- a/factory/workflow/contributed/salitrap/workflow.py +++ b/factory/workflow/contributed/salitrap/workflow.py @@ -14,13 +14,13 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( AgentNode, AgentRole, Edge, FnNode, GateNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/contributed/swebench/test_workflow.py b/factory/workflow/contributed/swebench/test_workflow.py index 8f18f8c93..64bc5328d 100644 --- a/factory/workflow/contributed/swebench/test_workflow.py +++ b/factory/workflow/contributed/swebench/test_workflow.py @@ -2,7 +2,6 @@ from __future__ import annotations -from factory.models import ProjectState from factory.workflow.contributed.swebench import meta, workflow from factory.workflow.definitions import register_all from factory.workflow.primitives import ( @@ -10,6 +9,7 @@ AgentRole, FnNode, GateNode, + ProjectState, VerdictType, ) diff --git a/factory/workflow/contributed/swebench/workflow.py b/factory/workflow/contributed/swebench/workflow.py index c9b1f3a98..bd732ca4a 100644 --- a/factory/workflow/contributed/swebench/workflow.py +++ b/factory/workflow/contributed/swebench/workflow.py @@ -12,13 +12,13 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( AgentNode, AgentRole, Edge, FnNode, GateNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/contributed/swebenchifyhard/test_workflow.py b/factory/workflow/contributed/swebenchifyhard/test_workflow.py index d28fd61cf..ca0c2e257 100644 --- a/factory/workflow/contributed/swebenchifyhard/test_workflow.py +++ b/factory/workflow/contributed/swebenchifyhard/test_workflow.py @@ -2,7 +2,6 @@ from __future__ import annotations -from factory.models import ProjectState from factory.workflow.contributed.swebenchifyhard import meta, workflow from factory.workflow.definitions import register_all from factory.workflow.primitives import ( @@ -10,6 +9,7 @@ AgentRole, FnNode, GateNode, + ProjectState, VerdictType, ) diff --git a/factory/workflow/contributed/swebenchifyhard/workflow.py b/factory/workflow/contributed/swebenchifyhard/workflow.py index fdb5511a7..98b3c9fb4 100644 --- a/factory/workflow/contributed/swebenchifyhard/workflow.py +++ b/factory/workflow/contributed/swebenchifyhard/workflow.py @@ -12,13 +12,13 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( AgentNode, AgentRole, Edge, FnNode, GateNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/contributed/terminalbench/test_workflow.py b/factory/workflow/contributed/terminalbench/test_workflow.py index 0932b6ecd..44d3a35a9 100644 --- a/factory/workflow/contributed/terminalbench/test_workflow.py +++ b/factory/workflow/contributed/terminalbench/test_workflow.py @@ -2,7 +2,6 @@ from __future__ import annotations -from factory.models import ProjectState from factory.workflow.contributed.terminalbench import meta, workflow from factory.workflow.definitions import register_all from factory.workflow.primitives import ( @@ -10,6 +9,7 @@ AgentRole, FnNode, GateNode, + ProjectState, VerdictType, ) diff --git a/factory/workflow/contributed/terminalbench/workflow.py b/factory/workflow/contributed/terminalbench/workflow.py index 2a3f2aec1..41bef1a87 100644 --- a/factory/workflow/contributed/terminalbench/workflow.py +++ b/factory/workflow/contributed/terminalbench/workflow.py @@ -16,13 +16,13 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( AgentNode, AgentRole, Edge, FnNode, GateNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/contributed/tomswe/test_workflow.py b/factory/workflow/contributed/tomswe/test_workflow.py index 8d064a7c5..8b0cfe12e 100644 --- a/factory/workflow/contributed/tomswe/test_workflow.py +++ b/factory/workflow/contributed/tomswe/test_workflow.py @@ -2,7 +2,6 @@ from __future__ import annotations -from factory.models import ProjectState from factory.workflow.contributed.tomswe import meta, workflow from factory.workflow.definitions import register_all from factory.workflow.primitives import ( @@ -10,6 +9,7 @@ AgentRole, FnNode, GateNode, + ProjectState, VerdictType, ) diff --git a/factory/workflow/contributed/tomswe/workflow.py b/factory/workflow/contributed/tomswe/workflow.py index 13eb81812..1747804ea 100644 --- a/factory/workflow/contributed/tomswe/workflow.py +++ b/factory/workflow/contributed/tomswe/workflow.py @@ -14,13 +14,13 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( AgentNode, AgentRole, Edge, FnNode, GateNode, + ProjectState, VerdictType, Workflow, ) diff --git a/factory/workflow/deep_qa.py b/factory/workflow/deep_qa.py index bb237a505..ae8766bc3 100644 --- a/factory/workflow/deep_qa.py +++ b/factory/workflow/deep_qa.py @@ -7,9 +7,8 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.definitions import _deep_qa_subgraph -from factory.workflow.primitives import AgentNode, Edge, FnNode, GateNode, VerdictType, Workflow +from factory.workflow.primitives import AgentNode, Edge, FnNode, GateNode, ProjectState, VerdictType, Workflow meta = { "name": "deep-qa", diff --git a/factory/workflow/deep_research.py b/factory/workflow/deep_research.py index d69539ede..45f2512b4 100644 --- a/factory/workflow/deep_research.py +++ b/factory/workflow/deep_research.py @@ -9,13 +9,13 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.primitives import ( AgentNode, AgentRole, ArtifactCheck, Edge, GateNode, + ProjectState, Study, VerdictType, Workflow, diff --git a/factory/workflow/research.py b/factory/workflow/research.py index 5eb90f419..65bd263bf 100644 --- a/factory/workflow/research.py +++ b/factory/workflow/research.py @@ -7,9 +7,8 @@ from typing import Any -from factory.models import ProjectState from factory.workflow.definitions import ResearcherConfig, _research_subgraph -from factory.workflow.primitives import AgentNode, Edge, Workflow +from factory.workflow.primitives import AgentNode, Edge, ProjectState, Workflow meta = { "name": "research-standalone",