mirror of
https://github.com/langgenius/dify.git
synced 2026-10-04 13:47:55 +08:00
Project rename across api/ + web/: modules, symbols, routes (/console/api/dify-builder/*), feature flag (DIFY_BUILDER_ENABLED), Celery queue/tasks, the 7 DB tables (via migration df1b0114de40), and regenerated contract artifacts. Behavior unchanged; 430 tests green, ruff clean. Branch renamed feat/copilot-py-backend → dify-builder. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
"""Factory for the dify_builder's DifyBuilderAgent, the OSS↔enterprise split point.
|
|
|
|
OSS returns the canned PlaceholderAgent. Enterprise calls
|
|
``set_dify_builder_agent_factory`` at startup to inject a licensed ProAgent behind
|
|
the same ``core.dify_builder.ports.DifyBuilderAgent`` Protocol. The Celery
|
|
advance task calls ``build_dify_builder_agent()`` per run.
|
|
"""
|
|
|
|
from collections.abc import Callable
|
|
|
|
from core.dify_builder.placeholder_agent import PlaceholderAgent
|
|
from core.dify_builder.ports import DifyBuilderAgent
|
|
|
|
__all__ = ["build_dify_builder_agent", "set_dify_builder_agent_factory"]
|
|
|
|
_factory: Callable[[], DifyBuilderAgent] | None = None
|
|
|
|
|
|
def set_dify_builder_agent_factory(factory: Callable[[], DifyBuilderAgent] | None) -> None:
|
|
"""Install an override factory (enterprise ProAgent), or ``None`` to reset."""
|
|
global _factory
|
|
_factory = factory
|
|
|
|
|
|
def build_dify_builder_agent() -> DifyBuilderAgent:
|
|
"""Return the agent for one advance. Default: the OSS PlaceholderAgent."""
|
|
if _factory is not None:
|
|
return _factory()
|
|
return PlaceholderAgent()
|