37 lines
2.2 KiB
Markdown
37 lines
2.2 KiB
Markdown
# 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.
|