feat(agent): ACP-Client für strukturierte Agent-Ausgaben in TUI und UI #17
No reviewers
Labels
No labels
agent:done
agent:ready
agent:working
enhancement
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
frank/forgecli!17
Loading…
Reference in a new issue
No description provided.
Delete branch "agent/issue-14-acp-strukturierte-agent-ausgaben-im-agen"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
cursor-agent,opencodeund Adapter-Pfade fürcodex/claude/pisession/update-Events (Messages, Tool-Calls, Plans, Thinking) werden im TUI-Agent-Window und im Web-Dashboard (--ui) live angezeigtsession/request_permission; bei ACP-Startfehler Fallback auf Raw-Subprocess; README mit Plattform-MatrixTest plan
go test ./internal/agent/...(Mock-ACP-Agent, Event-Rendering, UI-Status-API)go test ./...undgo vet ./...forge agent watch --tui --agent cursor-agentmit ACP-fähigem Agentforge agent watch --uiund Live-Output-Panel prüfenÄnderungen im Überblick
Neue Dateien:
acp_client.go,acp_events.go,acp_runners.go+ TestsKernlogik:
RunAgentversucht zuerst ACP (initialize→session/new→session/prompt), sonst Raw-ModusWatchStatusspeichert typisierteRunEvents nebenrunLogrun_events/run_outputim Status-API-PollingPR_TITLE,TODO_DONE:)Abhängigkeit:
github.com/coder/acp-go-sdk@v0.13.5(vendored)Commit:
1f9c805auf Branchagent/issue-14-acp-strukturierte-agent-ausgaben-im-agenCloses #14
🔗 Linked to issue #14. Babysitting CI until green…
✅ forge agent finished implementation
feat(agent): ACP client for structured agent output in TUI and UIAgent output (tail)
☑️ ToDos checked off
--uizeigt Live-Agent-Output (mindestens Messages + Tool-Calls).@agent build fixen und konflikte beheben.
die acp von codex etc müssen nicht integrationsgetestet werden, bleibe bei klaren unittests
🔴 Watch: CI failed — prioritizing repair…
⚠️ Merge conflict detected (attempt 1/3)
Re-running coding agent to merge/rebase and resolve conflicts…
🛠️ Pushed merge-conflict fix (attempt 1/3). Re-checking mergeability…
Merge-Konflikte für PR #17 sind behoben und als Commit
3de354fgespeichert (nicht gepusht).Konfliktdateien
internal/agent/status.go— ACP-Felder (runEvents,runACP) aus dem PR-Branch beibehalten.internal/agent/runners.go— Beide Seiten zusammengeführt:sessionID,EnsureSessionID) ausmainRunAgent(..., sessionID string, errW io.Writer, status *WatchStatus)internal/agent/pipeline.go— Agent-Aufrufe überp.runAgent()zentralisiert (Session-Persistenz ausmain), mitagentErrW()undStatusfür TUI/ACP-Logging.Tests
go test ./internal/agent/...— bestanden.Der Forge-Agent-Watcher kann pushen und die Mergeability erneut prüfen.
⚠️ Merge conflict detected (attempt 2/3)
Re-running coding agent to merge/rebase and resolve conflicts…
🛠️ Pushed merge-conflict fix (attempt 2/3). Re-checking mergeability…
3de354f— Merge origin/main into agent/issue-14 and resolve agent conflicts.origin/mainist vollständig eingemergt (Already up to date)main: ohne Konfliktego test ./internal/agent/...war zuvor grünAuflösung (kurz)
status.gorunEvents,runACP) beibehaltenrunners.gopipeline.gop.runAgent()mit TUI-Logging🔴 CI still failing (attempt 3/3)
Re-running coding agent…
🛠️ Pushed CI fix (attempt 3/3). Waiting for CI again…
CI-Fehler behoben — Commit
4fe60c5(nicht gepusht).Ursache
TestACPCommandForRunnerininternal/agent/acp_test.goerwartete, dasscursor-agent,opencodeundnpxim Host-PATH liegen. Lokal war das der Fall, auf dem Forgejo-CI-Runner nicht — der Test schlug deshalb nach ~11 Sekunden fehl.Fix
PATHdarauf — reine Unit-Tests ohne echte Agent-CLIs (wie in den PR-Kommentaren gewünscht).github.com/coder/acp-go-sdkingo.modals direkte Dependency eingetragen (wird direkt importiert).Verifikation
Beides grün. Der Forge-Agent-Watcher kann pushen und CI erneut prüfen.