From 209ba45477f0d17498a5758daa6e9ee0a5129361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=9D=E5=A4=95?= Date: Wed, 6 May 2026 15:05:47 +0800 Subject: [PATCH] refactor(core): decouple actors and remove workflow templates (#67) Removes the deprecated `workflow_template` concept entirely across both backend API routers, internal logic handling within the `supervisory_node` and `consciousness_node`, and front-end components. Enables `consciousness_node` to work autonomously. Also refactors core package structure to enforce the "one python package, one Ray Actor" architectural rule. `GlobalWorkflowManager`, `WorkflowRunningEngine`, `PostgresDatabase`, and `WorkerCluster` have been moved to their own top-level decoupled package directories with properly exported `__init__.py` modules. Test suites have been relocated and import paths updated across the system. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: zhaoxi826 <198742034+zhaoxi826@users.noreply.github.com> --- .../src/components/Plugin/PluginLayout.tsx | 10 - .../Plugin/WorkflowTemplateSettings.tsx | 163 ------------- main.py | 62 ++--- pretor/adapter/model_adapter/agent_factory.py | 72 +++--- .../model_adapter/deepseek_reasoner.py | 90 ++++--- pretor/api/__init__.py | 41 +++- pretor/api/agent.py | 134 +++++++---- pretor/api/auth.py | 70 ++++-- pretor/api/cluster.py | 2 +- pretor/api/platform/__init__.py | 1 + pretor/api/platform/event.py | 34 ++- pretor/api/platform/frontend.py | 42 ++-- pretor/api/provider.py | 47 ++-- pretor/api/resource.py | 85 +++---- pretor/api/workflow.py | 50 ++-- pretor/core/database/database_exception.py | 13 +- pretor/core/database/module/event.py | 1 + pretor/core/database/module/individual.py | 38 ++- pretor/core/database/module/provider.py | 29 ++- pretor/core/database/module/system_node.py | 37 ++- pretor/core/database/module/user.py | 27 ++- pretor/core/database/table/__init__.py | 1 + pretor/core/database/table/event.py | 5 +- pretor/core/database/table/individual.py | 14 +- pretor/core/database/table/provider.py | 6 +- pretor/core/database/table/system_node.py | 4 +- pretor/core/database/table/user.py | 11 +- pretor/core/global_state_machine/__init__.py | 15 +- .../global_state_machine.py | 89 +++---- .../individual_manager.py | 33 ++- .../model_provider/__init__.py | 26 +- .../model_provider/base_provider.py | 22 +- .../model_provider/claude_provider.py | 44 ++-- .../model_provider/deepseek_provider.py | 53 ++-- .../model_provider/openai_provider.py | 53 ++-- .../global_state_machine/provider_manager.py | 82 +++++-- .../global_state_machine/skill_manager.py | 26 +- .../core/global_state_machine/tool_manager.py | 13 +- .../core/global_workflow_manager/__init__.py | 5 + .../global_workflow_manager.py | 73 ++++-- .../individual/consciousness_node/__init__.py | 1 + .../consciousness_node/consciousness_node.py | 103 +++++--- .../individual/consciousness_node/template.py | 31 ++- .../core/individual/control_node/__init__.py | 1 + .../individual/control_node/control_node.py | 62 +++-- .../core/individual/control_node/template.py | 18 +- .../individual/supervisory_node/__init__.py | 1 + .../supervisory_node/supervisory_node.py | 83 ++++--- .../individual/supervisory_node/template.py | 29 ++- pretor/core/postgres_database/__init__.py | 3 + .../postgres.py | 85 ++++--- pretor/core/workflow/workflow.py | 65 +++-- .../workflow_template_generator/__init__.py | 14 -- .../workflow_template.py | 46 ---- .../workflow_template_generator.py | 32 --- .../workflow/workflow_template_manager.py | 76 ------ .../core/workflow_running_engine/__init__.py | 3 + .../workflow_runner.py | 226 +++++++++++------- pretor/plugin/tool_plugin/__init__.py | 2 +- .../plugin/tool_plugin/approval/__init__.py | 1 + .../plugin/tool_plugin/approval/approval.py | 18 +- pretor/plugin/tool_plugin/base_tool.py | 17 +- .../tool_plugin/file_reader/file_reader.py | 7 +- pretor/utils/access.py | 36 ++- pretor/utils/agent_model.py | 14 +- pretor/utils/banner.py | 6 +- pretor/utils/check_user/role_check.py | 38 +-- pretor/utils/error.py | 42 +++- pretor/utils/get_tool.py | 21 +- pretor/utils/logger.py | 19 +- pretor/utils/pickle.py | 6 +- pretor/utils/ray_hook.py | 18 +- pretor/utils/retry.py | 20 +- pretor/worker_cluster/__init__.py | 3 + .../worker_cluster.py | 48 ++-- pretor/worker_individual/base_individual.py | 42 ++-- .../worker_individual/ordinary_individual.py | 19 +- pretor/worker_individual/skill_individual.py | 42 +++- .../worker_individual/special_individual.py | 19 +- .../model_adapter/agent_factory_test.py | 18 +- .../core/database/database_exception_test.py | 12 + tests/core/database/module/user_test.py | 10 + .../database/table/table_provider_test.py | 5 +- tests/core/database/table/table_user_test.py | 3 +- .../global_state_machine_test.py | 15 +- .../model_provider/base_provider_test.py | 13 +- .../model_provider/claude_provider_test.py | 21 +- .../model_provider/openai_provider_test.py | 45 +++- .../provider_manager_test.py | 8 +- .../global_state_machine/tool_manager_test.py | 1 + .../postgres_test.py | 33 ++- .../workflow_template_generator_test.py | 43 ---- .../workflow_template_test.py | 36 --- .../workflow_template_manager_test.py | 57 ----- tests/core/workflow/workflow_test.py | 51 +++- .../workflow_runner_test.py | 48 +++- tests/utils/access_test.py | 11 +- 97 files changed, 1872 insertions(+), 1498 deletions(-) delete mode 100644 frontend/src/components/Plugin/WorkflowTemplateSettings.tsx create mode 100644 pretor/core/global_workflow_manager/__init__.py rename pretor/core/{global_state_machine => global_workflow_manager}/global_workflow_manager.py (77%) create mode 100644 pretor/core/postgres_database/__init__.py rename pretor/core/{database => postgres_database}/postgres.py (87%) delete mode 100644 pretor/core/workflow/workflow_template_generator/__init__.py delete mode 100644 pretor/core/workflow/workflow_template_generator/workflow_template.py delete mode 100644 pretor/core/workflow/workflow_template_generator/workflow_template_generator.py delete mode 100644 pretor/core/workflow/workflow_template_manager.py create mode 100644 pretor/core/workflow_running_engine/__init__.py rename pretor/core/{workflow => workflow_running_engine}/workflow_runner.py (70%) create mode 100644 pretor/worker_cluster/__init__.py rename pretor/{worker_individual => worker_cluster}/worker_cluster.py (84%) rename tests/core/{database => postgres_database}/postgres_test.py (69%) delete mode 100644 tests/core/workflow/workflow_template_generator/workflow_template_generator_test.py delete mode 100644 tests/core/workflow/workflow_template_generator/workflow_template_test.py delete mode 100644 tests/core/workflow/workflow_template_manager_test.py rename tests/core/{workflow => workflow_running_engine}/workflow_runner_test.py (80%) diff --git a/frontend/src/components/Plugin/PluginLayout.tsx b/frontend/src/components/Plugin/PluginLayout.tsx index afcb8fe..223b7da 100644 --- a/frontend/src/components/Plugin/PluginLayout.tsx +++ b/frontend/src/components/Plugin/PluginLayout.tsx @@ -1,6 +1,5 @@ import { SkillSettings } from './SkillSettings'; import { ToolSettings } from './ToolSettings'; -import { WorkflowTemplateSettings } from './WorkflowTemplateSettings'; interface PluginLayoutProps { resourceTab: string; @@ -20,14 +19,6 @@ export function PluginLayout({ resourceTab, setResourceTab }: PluginLayoutProps) > Skills -