2.2 KiB
2.2 KiB
Project Overview
lda-workflow-as-struct is a Python 3.14 prototype for lda.chat: an AI-assisted workflow system where an LLM plans structured workflows and a deterministic executor validates/runs them.
Main packages live under src/:
wf_core: workflow model, validation, runtime semantics, frames, trace, interrupts, foreach, async execution.wf_authoring: ergonomic authoring layer including@node,NodeSpec,WorkflowBuilder, conditions, paths, and subgraph wrapping.wf_mcp: MCP broker/proxy layer for managing multiple backend MCP connections, transparent FastMCP proxying, live config/admin tools, hot reload, tool introspection, discovery/catalog snapshots, and eventual workflow build/run integration.
Important docs:
readme.md: running design notes and architecture.authoring_sketch.md: authoring API direction.wf_mcp_plan.md: MCP proxy/broker/workflow integration plan.scratchpad.md: rough design history.
Current MCP direction:
- Transparent proxy mode is the main product path.
- Old broker mode remains useful for debugging/admin/catalog operations.
- Protocol-native FastMCP proxying exposes upstream tools/resources/prompts as first-class MCP capabilities.
- Current configured live connections have included
context7.default,serena.default, andeverything.default; treatwf_mcp.config.jsonas user-owned live state. - Direct Serena is configured outside
wf_mcpand should be preferred for code navigation/editing because it does not reset whenwf-mcphot-reloads.
Recent wf_mcp capabilities:
- Pydantic config boundary in
config_models.py. - Config mutation boundary in
config_manager.py. - Proxy validation in
proxy_validation.py. - Transparent proxy runtime and manual hot reload in
transparent_proxy.py. - Explicit name mapping in
names.py. - Opaque cursor pagination helpers in
pagination.py. - Admin tools under
wf.mcp_*: list/get config, add/update/enable/disable/remove connection, reload config, list/get proxy tools. wf.mcp_list_proxy_toolssupportsconnection_id,query,limit, andcursor; returns{tools, nextCursor, total}.wf.mcp_get_proxy_toolreturns one detailed proxied tool row with schema where available.