Skip to content

Commit dd0856e

Browse files
authored
Merge pull request #28 from Coding-Autopilot-System/chore/ecosystem-sync-183759943
chore: ecosystem-wide sync of uncommitted changes
2 parents 2d6297e + 99c04e9 commit dd0856e

24 files changed

Lines changed: 2138 additions & 0 deletions

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,9 @@ state/
1313
.coverage
1414
coverage.xml
1515
htmlcov/
16+
17+
.tmp-gh-*.ps1
18+
19+
.tmp-venv*/
20+
21+
TestResults/

Dockerfile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
FROM python:3.12-slim
2+
3+
WORKDIR /app
4+
5+
COPY requirements.txt .
6+
RUN pip install --no-cache-dir -r requirements.txt
7+
8+
# Install chromadb dependencies
9+
RUN pip install --no-cache-dir chromadb win11toast
10+
11+
COPY . .
12+
13+
# Expose FastAPI Dashboard
14+
EXPOSE 8000
15+
16+
# Run the watchdog daemon by default
17+
CMD ["python", "scripts/watchdog.py"]

Modelfile-16k

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FROM llama3.2
2+
PARAMETER num_ctx 16384
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 6208345c01721c58a6644007cd276c81adbbbd9f

WIKI/API_Reference.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# API Reference
2+
3+
The Dashboard runs on FastAPI and exposes the following controls:
4+
5+
* \POST /api/processes/{name}/start\: Boots the process (daemon/proxy)
6+
* \POST /api/processes/{name}/stop\: Hard kills the process

WIKI/Architecture.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Architecture
2+
3+
Autogen utilizes a dynamic Graph-of-Agents approach managed by a Meta-Manager.
4+
5+
## Swarm Orchestration Flow
6+
7+
\\\mermaid
8+
graph TD;
9+
User[User Prompt] --> Meta[Meta-Manager]
10+
Meta -->|Spawns Swarm| Planner[Planner Agent]
11+
Planner --> Researcher[Researcher Agent]
12+
Researcher --> Implementer[Implementer Agent]
13+
Implementer --> Reviewer[Reviewer Agent]
14+
Reviewer -->|MCTS Execution| Sandbox[Simulation Sandbox]
15+
Sandbox -->|Winning Path| MainBranch[Main Branch]
16+
17+
Watchdog[Autonomous Watchdog] -.->|Monitors Health| Meta
18+
Watchdog -->|Failure| TestGen[Generates pytest]
19+
\\\
20+
21+
## Memory Subsystem
22+
The system utilizes **ChromaDB** for hyper-dimensional vector embeddings, allowing it to retrieve lessons learned from past runs instantaneously.

WIKI/Home.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Autogen Wiki Home
2+
3+
Welcome to the internal documentation for Autogen.
4+
5+
## Table of Contents
6+
1. [Architecture & Flow](Architecture.md)
7+
2. [API Reference](API_Reference.md)

add_humans.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import json
2+
3+
with open("C:\\PersonalRepo\\portfolio\\autogen\\autogen_dashboard\\blueprints.py", "r", encoding="utf-8") as f:
4+
content = f.read()
5+
6+
# We need to add the human-operator node to each phase, and link it to the first meta node.
7+
# e.g., Phase 1: 1.1 Intent Translation
8+
# Phase 2: 2.1 Feature Impl
9+
# Phase 3: 3.1 Auto Test Gen
10+
# Phase 4: 4.1 Auto Patching
11+
# Phase 5: 5.1 PR Review
12+
# Phase 6: 6.1 Continuous Tech Debt
13+
14+
import re
15+
16+
for i in range(1, 7):
17+
node_str = f' {{"id": "human-operator", "label": "Human Operator (You)", "type": "customNode", "status": "System Prompt", "instructions": "You govern the entire OS.", "parentId": f"p{i}-group"}},'
18+
edge_str = f' {{"type": "edge_created", "data": {{"id": f"p{i}-e0", "source": "human-operator", "target": f"{i}.1", "label": "Triggers Phase"}}}},'
19+
20+
# Add node
21+
search_node = f'phase{i}_nodes = [\n {{"id": "p{i}-group"'
22+
replace_node = f'phase{i}_nodes = [\n {{"id": "p{i}-group"...\n{node_str}'
23+
content = re.sub(
24+
rf'phase{i}_nodes = \[\n {{"id": "p{i}-group"(.*?)\]',
25+
lambda m: f'phase{i}_nodes = [\n {{"id": "p{i}-group"{m.group(1).split(",")[0] + "," + m.group(1).split(",", 1)[1]}\n{node_str}',
26+
content,
27+
flags=re.DOTALL
28+
)
29+
# The regex approach is messy, let's just do simple splits.
30+
31+
def add_human(phase_num):
32+
global content
33+
34+
# Add node
35+
target_node = f'{{"id": "p{phase_num}-group"'
36+
idx = content.find(target_node)
37+
end_of_line = content.find('\n', idx)
38+
node_str = f'\n {{"id": "human-operator", "label": "Human Operator (You)", "type": "customNode", "status": "System Prompt", "instructions": "You govern the entire OS.", "parentId": "p{phase_num}-group"}},'
39+
content = content[:end_of_line] + node_str + content[end_of_line:]
40+
41+
# Add edge
42+
target_edge = f'phase{phase_num}_edges = ['
43+
idx = content.find(target_edge)
44+
end_of_line = content.find('\n', idx)
45+
edge_str = f'\n {{"type": "edge_created", "data": {{"id": "p{phase_num}-e0", "source": "human-operator", "target": "{phase_num}.1", "label": "Triggers Phase"}}}},'
46+
content = content[:end_of_line] + edge_str + content[end_of_line:]
47+
48+
with open("C:\\PersonalRepo\\portfolio\\autogen\\autogen_dashboard\\blueprints.py", "r", encoding="utf-8") as f:
49+
content = f.read()
50+
51+
for i in range(1, 7):
52+
add_human(i)
53+
54+
with open("C:\\PersonalRepo\\portfolio\\autogen\\autogen_dashboard\\blueprints.py", "w", encoding="utf-8") as f:
55+
f.write(content)

autogen_dashboard/blueprints.py

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
import json
2+
3+
def generate_blueprint_event(nodes, edges):
4+
return [
5+
{
6+
"type": "snapshot",
7+
"nodes": nodes,
8+
"edges": edges
9+
}
10+
]
11+
12+
# PHASE 1: Planning and Architecture
13+
phase1_nodes = [
14+
{"id": "p1-group", "label": "Phase 1: Planning & Architecture", "type": "phaseGroup", "status": "Active Pipeline", "style": {"width": 1600, "height": 600}},
15+
{"id": "human-operator", "label": "Human Operator (You)", "type": "customNode", "status": "System Prompt", "instructions": "You govern the entire OS.", "parentId": "p1-group"},
16+
{"id": "1.1", "label": "Intent Translation", "type": "meta", "status": "Active", "instructions": "Translating user stories to verifyable endpoints.", "parentId": "p1-group"},
17+
{"id": "1.2", "label": "Rev-Eng SRS", "type": "agent", "status": "Idle", "instructions": "Mining commits for Requirements.", "parentId": "p1-group"},
18+
{"id": "1.3", "label": "Dependency Mapping", "type": "agent", "status": "Idle", "instructions": "Traversing enterprise architecture via MCP.", "parentId": "p1-group"},
19+
{"id": "1.4", "label": "IaC Planning", "type": "agent", "status": "Idle", "instructions": "Drafting Terraform configs.", "parentId": "p1-group"},
20+
{"id": "1.5", "label": "Work Breakdown", "type": "agent", "status": "Idle", "instructions": "Splitting epics into atomic tasks.", "parentId": "p1-group"},
21+
{"id": "1.6", "label": "API Contract", "type": "agent", "status": "Idle", "instructions": "Negotiating OpenAPI specifications.", "parentId": "p1-group"},
22+
{"id": "1.7", "label": "Threat Modeling", "type": "agent", "status": "Idle", "instructions": "Analyzing against OWASP Top 10.", "parentId": "p1-group"}
23+
]
24+
phase1_edges = [
25+
{"type": "edge_created", "data": {"id": "p1-e0", "source": "human-operator", "target": "1.1", "label": "Triggers Phase"}},
26+
{"type": "edge_created", "data": {"id": "p1-e1", "source": "1.1", "target": "1.5", "label": "Provides specs"}},
27+
{"type": "edge_created", "data": {"id": "p1-e2", "source": "1.2", "target": "1.1", "label": "Feeds into"}},
28+
{"type": "edge_created", "data": {"id": "p1-e3", "source": "1.5", "target": "1.6", "label": "Spawns API work"}},
29+
{"type": "edge_created", "data": {"id": "p1-e4", "source": "1.5", "target": "1.3", "label": "Maps deps"}},
30+
{"type": "edge_created", "data": {"id": "p1-e5", "source": "1.3", "target": "1.4", "label": "Plans IaC"}},
31+
{"type": "edge_created", "data": {"id": "p1-e6", "source": "1.4", "target": "1.7", "label": "Secures IaC"}}
32+
]
33+
PHASE1_BLUEPRINT = generate_blueprint_event(phase1_nodes, phase1_edges)
34+
35+
# PHASE 2: Development and Generation
36+
phase2_nodes = [
37+
{"id": "p2-group", "label": "Phase 2: Development & Generation", "type": "phaseGroup", "status": "Active Pipeline", "style": {"width": 1600, "height": 600}},
38+
{"id": "human-operator", "label": "Human Operator (You)", "type": "customNode", "status": "System Prompt", "instructions": "You govern the entire OS.", "parentId": "p2-group"},
39+
{"id": "2.1", "label": "Feature Impl (GSD)", "type": "meta", "status": "Active", "instructions": "Writing code in isolated workspaces.", "parentId": "p2-group"},
40+
{"id": "2.2", "label": "Cross-File Refactor", "type": "agent", "status": "Idle", "instructions": "Optimizing structure and fixing compiler errors.", "parentId": "p2-group"},
41+
{"id": "2.3", "label": "Scaffold Gen", "type": "agent", "status": "Idle", "instructions": "Generating project architecture.", "parentId": "p2-group"},
42+
{"id": "2.4", "label": "API Endpoint", "type": "agent", "status": "Idle", "instructions": "Synthesizing backend logic.", "parentId": "p2-group"},
43+
{"id": "2.5", "label": "UI Component", "type": "agent", "status": "Idle", "instructions": "Iterating DOM and CSS.", "parentId": "p2-group"},
44+
{"id": "2.6", "label": "Legacy Translation", "type": "agent", "status": "Idle", "instructions": "Translating legacy services.", "parentId": "p2-group"},
45+
{"id": "2.7", "label": "Code Documentation", "type": "agent", "status": "Idle", "instructions": "Generating inline comments and READMEs.", "parentId": "p2-group"}
46+
]
47+
phase2_edges = [
48+
{"type": "edge_created", "data": {"id": "p2-e0", "source": "human-operator", "target": "2.1", "label": "Triggers Phase"}},
49+
{"type": "edge_created", "data": {"id": "p2-e1", "source": "2.3", "target": "2.1", "label": "Scaffolds"}},
50+
{"type": "edge_created", "data": {"id": "p2-e2", "source": "2.1", "target": "2.4", "label": "Builds backend"}},
51+
{"type": "edge_created", "data": {"id": "p2-e3", "source": "2.1", "target": "2.5", "label": "Builds frontend"}},
52+
{"type": "edge_created", "data": {"id": "p2-e4", "source": "2.6", "target": "2.2", "label": "Refactors"}},
53+
{"type": "edge_created", "data": {"id": "p2-e5", "source": "2.1", "target": "2.7", "label": "Documents"}}
54+
]
55+
PHASE2_BLUEPRINT = generate_blueprint_event(phase2_nodes, phase2_edges)
56+
57+
# PHASE 3: Testing and QA
58+
phase3_nodes = [
59+
{"id": "p3-group", "label": "Phase 3: Testing & Quality Assurance", "type": "phaseGroup", "status": "Active Pipeline", "style": {"width": 1600, "height": 600}},
60+
{"id": "human-operator", "label": "Human Operator (You)", "type": "customNode", "status": "System Prompt", "instructions": "You govern the entire OS.", "parentId": "p3-group"},
61+
{"id": "3.1", "label": "Auto Test Gen", "type": "agent", "status": "Active", "instructions": "Evaluating codebase and writing missing tests.", "parentId": "p3-group"},
62+
{"id": "3.2", "label": "Flaky Test Res", "type": "agent", "status": "Idle", "instructions": "Fixing brittle UI locators.", "parentId": "p3-group"},
63+
{"id": "3.3", "label": "F2P Validation", "type": "sandbox", "status": "Running", "instructions": "Re-running tests until green.", "parentId": "p3-group"},
64+
{"id": "3.4", "label": "Performance Bench", "type": "agent", "status": "Idle", "instructions": "Executing A/B load tests.", "parentId": "p3-group"},
65+
{"id": "3.5", "label": "Edge Case Fuzzing", "type": "agent", "status": "Idle", "instructions": "Generating hostile inputs.", "parentId": "p3-group"},
66+
{"id": "3.6", "label": "Mobile Cert", "type": "sandbox", "status": "Idle", "instructions": "Live screen hierarchy inspection.", "parentId": "p3-group"},
67+
{"id": "3.7", "label": "Pipeline Sim", "type": "meta", "status": "Idle", "instructions": "Simulating all microservices locally.", "parentId": "p3-group"}
68+
]
69+
phase3_edges = [
70+
{"type": "edge_created", "data": {"id": "p3-e0", "source": "human-operator", "target": "3.1", "label": "Triggers Phase"}},
71+
{"type": "edge_created", "data": {"id": "p3-e1", "source": "3.1", "target": "3.3", "label": "Feeds tests"}},
72+
{"type": "edge_created", "data": {"id": "p3-e2", "source": "3.5", "target": "3.3", "label": "Breaks tests"}},
73+
{"type": "edge_created", "data": {"id": "p3-e3", "source": "3.3", "target": "3.7", "label": "Triggers Pipeline"}},
74+
{"type": "edge_created", "data": {"id": "p3-e4", "source": "3.7", "target": "3.4", "label": "Profiles"}},
75+
{"type": "edge_created", "data": {"id": "p3-e5", "source": "3.7", "target": "3.6", "label": "Runs on Device"}},
76+
{"type": "edge_created", "data": {"id": "p3-e6", "source": "3.2", "target": "3.7", "label": "Stabilizes"}}
77+
]
78+
PHASE3_BLUEPRINT = generate_blueprint_event(phase3_nodes, phase3_edges)
79+
80+
# PHASE 4: Security and DevSecOps
81+
phase4_nodes = [
82+
{"id": "p4-group", "label": "Phase 4: Security & DevSecOps", "type": "phaseGroup", "status": "Active Pipeline", "style": {"width": 1600, "height": 600}},
83+
{"id": "human-operator", "label": "Human Operator (You)", "type": "customNode", "status": "System Prompt", "instructions": "You govern the entire OS.", "parentId": "p4-group"},
84+
{"id": "4.1", "label": "Auto Patching", "type": "agent", "status": "Active", "instructions": "Rewriting code safely to clear SAST alerts.", "parentId": "p4-group"},
85+
{"id": "4.2", "label": "Dep Upgrade", "type": "agent", "status": "Idle", "instructions": "Identifying and swapping outdated libraries.", "parentId": "p4-group"},
86+
{"id": "4.3", "label": "False-Pos Triage", "type": "agent", "status": "Idle", "instructions": "Evaluating ASTs for reachability.", "parentId": "p4-group"},
87+
{"id": "4.4", "label": "Guardrail Enforce", "type": "sandbox", "status": "Active", "instructions": "Blocking operations violating boundaries.", "parentId": "p4-group"},
88+
{"id": "4.5", "label": "Secrets Detection", "type": "agent", "status": "Idle", "instructions": "Scrubbing repo history of API keys.", "parentId": "p4-group"},
89+
{"id": "4.6", "label": "Compliance Audit", "type": "meta", "status": "Idle", "instructions": "Gathering immutability logs for audits.", "parentId": "p4-group"},
90+
{"id": "4.7", "label": "Attack Modeling", "type": "agent", "status": "Idle", "instructions": "Simulating external breaches.", "parentId": "p4-group"}
91+
]
92+
phase4_edges = [
93+
{"type": "edge_created", "data": {"id": "p4-e0", "source": "human-operator", "target": "4.1", "label": "Triggers Phase"}},
94+
{"type": "edge_created", "data": {"id": "p4-e1", "source": "4.7", "target": "4.1", "label": "Finds path"}},
95+
{"type": "edge_created", "data": {"id": "p4-e2", "source": "4.1", "target": "4.3", "label": "Triages"}},
96+
{"type": "edge_created", "data": {"id": "p4-e3", "source": "4.4", "target": "4.6", "label": "Logs"}},
97+
{"type": "edge_created", "data": {"id": "p4-e4", "source": "4.5", "target": "4.4", "label": "Blocks push"}},
98+
{"type": "edge_created", "data": {"id": "p4-e5", "source": "4.2", "target": "4.4", "label": "Scans dep"}}
99+
]
100+
PHASE4_BLUEPRINT = generate_blueprint_event(phase4_nodes, phase4_edges)
101+
102+
# PHASE 5: Deployment and SRE
103+
phase5_nodes = [
104+
{"id": "p5-group", "label": "Phase 5: Deployment & SRE", "type": "phaseGroup", "status": "Active Pipeline", "style": {"width": 1600, "height": 600}},
105+
{"id": "human-operator", "label": "Human Operator (You)", "type": "customNode", "status": "System Prompt", "instructions": "You govern the entire OS.", "parentId": "p5-group"},
106+
{"id": "5.1", "label": "PR Review", "type": "meta", "status": "Active", "instructions": "Executing final merge upon policy satisfaction.", "parentId": "p5-group"},
107+
{"id": "5.2", "label": "Auto Rollback", "type": "agent", "status": "Idle", "instructions": "Reverting system state on anomaly.", "parentId": "p5-group"},
108+
{"id": "5.3", "label": "Root Cause Analysis", "type": "agent", "status": "Idle", "instructions": "Deduplicating remediation plans.", "parentId": "p5-group"},
109+
{"id": "5.4", "label": "Self-Healing Infra", "type": "sandbox", "status": "Running", "instructions": "Restarting pods to restore health.", "parentId": "p5-group"},
110+
{"id": "5.5", "label": "SOP Extraction", "type": "agent", "status": "Idle", "instructions": "Generating wiki SOPs.", "parentId": "p5-group"},
111+
{"id": "5.6", "label": "Sandbox Lifecycle", "type": "meta", "status": "Idle", "instructions": "Provisioning secure ephemeral containers.", "parentId": "p5-group"},
112+
{"id": "5.7", "label": "Multi-Region Orchestration", "type": "agent", "status": "Idle", "instructions": "Staged global rollout.", "parentId": "p5-group"}
113+
]
114+
phase5_edges = [
115+
{"type": "edge_created", "data": {"id": "p5-e0", "source": "human-operator", "target": "5.1", "label": "Triggers Phase"}},
116+
{"type": "edge_created", "data": {"id": "p5-e1", "source": "5.1", "target": "5.6", "label": "Spawns sandbox"}},
117+
{"type": "edge_created", "data": {"id": "p5-e2", "source": "5.6", "target": "5.7", "label": "Deploys"}},
118+
{"type": "edge_created", "data": {"id": "p5-e3", "source": "5.7", "target": "5.2", "label": "Monitors", "style": {"stroke": "red", "strokeDasharray": "5,5"}}},
119+
{"type": "edge_created", "data": {"id": "p5-e4", "source": "5.2", "target": "5.3", "label": "Triggers RCA"}},
120+
{"type": "edge_created", "data": {"id": "p5-e5", "source": "5.3", "target": "5.5", "label": "Writes SOP"}},
121+
{"type": "edge_created", "data": {"id": "p5-e6", "source": "5.4", "target": "5.7", "label": "Heals nodes"}}
122+
]
123+
PHASE5_BLUEPRINT = generate_blueprint_event(phase5_nodes, phase5_edges)
124+
125+
# PHASE 6: Maintenance and Knowledge
126+
phase6_nodes = [
127+
{"id": "p6-group", "label": "Phase 6: Maintenance & Knowledge", "type": "phaseGroup", "status": "Active Pipeline", "style": {"width": 1600, "height": 600}},
128+
{"id": "human-operator", "label": "Human Operator (You)", "type": "customNode", "status": "System Prompt", "instructions": "You govern the entire OS.", "parentId": "p6-group"},
129+
{"id": "6.1", "label": "Continuous Tech Debt", "type": "agent", "status": "Active", "instructions": "Refactoring overgrown god-files.", "parentId": "p6-group"},
130+
{"id": "6.2", "label": "Memory Sync", "type": "agent", "status": "Idle", "instructions": "Distilling behavioral history to vectors.", "parentId": "p6-group"},
131+
{"id": "6.3", "label": "Ruleset Updating", "type": "agent", "status": "Idle", "instructions": "Updating AGENTS.md dynamically.", "parentId": "p6-group"},
132+
{"id": "6.4", "label": "Multi-Repo Triage", "type": "meta", "status": "Running", "instructions": "Scanning global issue trackers.", "parentId": "p6-group"},
133+
{"id": "6.5", "label": "Stale Deprecation", "type": "agent", "status": "Idle", "instructions": "Removing dead API code.", "parentId": "p6-group"},
134+
{"id": "6.6", "label": "DB Schema Migration", "type": "agent", "status": "Idle", "instructions": "Drafting zero-downtime migrations.", "parentId": "p6-group"},
135+
{"id": "6.7", "label": "Knowledge Deduplication", "type": "agent", "status": "Idle", "instructions": "Resolving wiki discrepancies.", "parentId": "p6-group"}
136+
]
137+
phase6_edges = [
138+
{"type": "edge_created", "data": {"id": "p6-e0", "source": "human-operator", "target": "6.1", "label": "Triggers Phase"}},
139+
{"type": "edge_created", "data": {"id": "p6-e1", "source": "6.4", "target": "6.1", "label": "Finds debt"}},
140+
{"type": "edge_created", "data": {"id": "p6-e2", "source": "6.1", "target": "6.2", "label": "Saves state"}},
141+
{"type": "edge_created", "data": {"id": "p6-e3", "source": "6.4", "target": "6.3", "label": "Finds pattern"}},
142+
{"type": "edge_created", "data": {"id": "p6-e4", "source": "6.4", "target": "6.5", "label": "Finds stale"}},
143+
{"type": "edge_created", "data": {"id": "p6-e5", "source": "6.5", "target": "6.6", "label": "Cleans DB"}},
144+
{"type": "edge_created", "data": {"id": "p6-e6", "source": "6.3", "target": "6.7", "label": "Updates docs"}}
145+
]
146+
PHASE6_BLUEPRINT = generate_blueprint_event(phase6_nodes, phase6_edges)

autogen_dashboard/context.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# AutoGen Dashboard & Starter Context
2+
3+
## Technology Stack
4+
- **Language**: JavaScript (legacy dashboard UI in `app.js`), HTML/CSS (`index.html`, `styles.css`), Python.
5+
- **Framework**: FastAPI/Uvicorn (`autogen_dashboard/app.py`), AutoGen AgentChat.
6+
- **Dependencies**: `fastapi`, `uvicorn`, Pydantic (`schemas.py`).
7+
8+
## Conventions
9+
- **Naming**: `snake_case.py` for Python modules. `PascalCase` for dataclasses and schema types (e.g., `SessionDetail`).
10+
- **Error Handling**: `HTTPException` boundary translation in `app.py`. Custom provider configuration errors exist in the legacy AutoGen path.
11+
- **Function Design**: The legacy `autogen_dashboard/session_runner.py` is substantially larger and more stateful than modern MAF components.
12+
13+
## Architecture Layers
14+
- **Purpose**: Preserve the older AutoGen dashboard and provider/session architecture.
15+
- **Data Flow**: Legacy AutoGen state is file-based under `state/team_state.json` and `state/sessions/*`.
16+
- **Entry Points**: `autogen_starter/cli.py` triggers the legacy `dashboard` command path to launch `autogen_dashboard.app`.
17+
18+
## Practical Rule For New Work
19+
- Treat `autogen_dashboard/` and `autogen_starter/` as **legacy paths** unless intentionally maintaining them. New shared behavior should go to `maf_starter/`.

0 commit comments

Comments
 (0)