Files
lda-wf/.serena/memories/project_overview.md
T

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, and everything.default; treat wf_mcp.config.json as user-owned live state.
  • Direct Serena is configured outside wf_mcp and should be preferred for code navigation/editing because it does not reset when wf-mcp hot-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_tools supports connection_id, query, limit, and cursor; returns {tools, nextCursor, total}.
  • wf.mcp_get_proxy_tool returns one detailed proxied tool row with schema where available.