Adds the headless agent architecture for Sprint 9 Phase 9a: - ASTUtils.h: pure AST utilities extracted from EditorUtils.h - HeadlessEditorState.h: GUI-free state with buffer management - HeadlessAgentRPCHandler.h: full RPC dispatch (20+ methods) - step245_test.cpp: 20 tests all passing Also fixes test compilation errors (NotificationSystem API changes, AgentRole permissions, DependencyPanel missing include) and adds SDL2 system library detection fix in CMakeLists.txt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
26 lines
1.3 KiB
Markdown
26 lines
1.3 KiB
Markdown
# Sprint 9 Progress — Agent-First Tooling
|
|
|
|
## Phase 9a: Standalone MCP Server
|
|
|
|
### Step 245: HeadlessEditorState (no ImGui dependency)
|
|
**Status:** PASS (20/20 tests)
|
|
|
|
Created the headless agent API surface — same method interface as EditorState
|
|
but with zero GUI dependencies (no ImGui, no SDL, no WebSocket).
|
|
|
|
**Files created:**
|
|
- `editor/src/ASTUtils.h` — Pure AST utility functions extracted from EditorUtils.h
|
|
(cloneModule, isAnnotationNode, countAnnotationNodes, findNodeById, findNodeAtPosition)
|
|
- `editor/src/HeadlessEditorState.h` — Lightweight state: HeadlessAgentState,
|
|
HeadlessLibraryState, HeadlessBufferState, buffer management, orchestrator sync
|
|
- `editor/src/HeadlessAgentRPCHandler.h` — Full RPC dispatch mirroring
|
|
AgentRPCHandler.h (20+ methods: getAST, parseSource, runPipeline, applyMutation,
|
|
applyBatch, projectLanguage, generateCode, workflow recording, etc.)
|
|
- `editor/tests/step245_test.cpp` — 20 test cases covering construction, buffer
|
|
management, RPC dispatch, permission enforcement, pipeline execution
|
|
|
|
**Key design decisions:**
|
|
- JSON roundtrip cloning (matching EditorUtils.h) instead of manual deep copy
|
|
- Separate HeadlessAgentState (no AgentMarketplace/WebSocket dependency chain)
|
|
- All files under 600-line architecture limit
|