mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-07-28 17:06:05 +00:00
* feat: emit structured runtime metadata * fix: avoid subagent import cycle in replay gateway * fix: preserve legacy subtask result parsing * refactor: tighten runtime metadata contracts * fix(middleware): keep recovery hint on task exception wrapper content The structured-metadata stamp overwrote the wrapper text with the bare task-failure message, dropping the model-facing 'Continue with available context, or choose an alternative tool.' guidance that every other tool exception keeps. Append the shared hint after the formatted message. * fix(subagents): require lowercase hex for result_sha256 reader Length-only validation accepted any 64-char string; a faulty serializer or relaying wrapper could store a non-digest value in the delegation ledger. Enforce the producer's hexdigest shape with a fullmatch. --------- Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
25 lines
704 B
Python
25 lines
704 B
Python
from .config import SubagentConfig
|
|
from .registry import get_available_subagent_names, get_subagent_config, list_subagents
|
|
|
|
__all__ = [
|
|
"SubagentConfig",
|
|
"SubagentExecutor",
|
|
"SubagentResult",
|
|
"get_available_subagent_names",
|
|
"get_subagent_config",
|
|
"list_subagents",
|
|
]
|
|
|
|
|
|
def __getattr__(name: str):
|
|
if name in {"SubagentExecutor", "SubagentResult"}:
|
|
from .executor import SubagentExecutor, SubagentResult
|
|
|
|
exports = {
|
|
"SubagentExecutor": SubagentExecutor,
|
|
"SubagentResult": SubagentResult,
|
|
}
|
|
globals().update(exports)
|
|
return exports[name]
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|