Migrate vide_core from claude_sdk to agent_sdk types#76
Merged
Norbert515 merged 4 commits intomainfrom Feb 22, 2026
Merged
Conversation
Decouple vide_core services from claude_sdk-specific types so the core business logic depends only on the provider-agnostic agent_sdk interface. Key changes: - vide_core services use AgentClient instead of ClaudeClient - Added bidirectional type mappers in claude_sdk bridge (toClaude/fromClaude) - Changed createForked interface from Object? to AgentConversation? - Removed ClaudeAgentClient cast from agent_lifecycle_service - Added typed tool invocation subclasses to agent_sdk (AgentFileOperationToolInvocation, AgentWriteToolInvocation, AgentEditToolInvocation) - Updated TUI renderers to use typed invocations instead of raw parameter map access - Replaced MockClaudeClient with MockAgentClient in vide_core tests
aa7871b to
8ddb0f2
Compare
- Fix Codex thinking tokens not rendering in TUI: forward ThinkingEvent in RemoteVideSession, map streaming reasoning deltas to ThinkingResponse, deduplicate completed reasoning events - Improve thinking token styling: bump opacity to 0.6, add spacing between thinking and response text, strip Codex bold markers - Make AgentClientFactory injectable via VideCoreConfig for Codex support - Add CodexAgentClient/CodexAgentClientFactory bridge (codex_sdk) - Add Codex backend toggle in settings UI
- Add sessionLogPath() to VideLogger for resolving log file paths - Add /logs slash command to open current session log in file viewer - Add Session Logs entry in Settings > Debug section - Make file preview text selectable (split gutter/content into two synced ListViews so only content is inside SelectionArea)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Object?parameter increateForked,ClaudeAgentClientcast inforkAgent, and raw parameter map access in TUI renderersAgentWriteToolInvocation,AgentEditToolInvocation,AgentFileOperationToolInvocation) to agent_sdk with factory dispatchMockClaudeClientwithMockAgentClientin all vide_core testsChanges by package
agent_sdk — New typed tool invocation hierarchy, permission models,
createTyped()factory,pathdependencyclaude_sdk — Reverse mappers (
toClaude) for conversation, message, response, permission types. New test suites for round-trip verificationvide_core — All services use
AgentClientinstead ofClaudeClient.createForkedtakesAgentConversation?instead ofObject?. RemovedClaudeAgentClientimport fromagent_lifecycle_service. Tests migrated toMockAgentClientTUI — Renderers use typed invocations (
is AgentWriteToolInvocation, etc.) instead of rawparameters['file_path']map accessTest plan
dart analyzeclean across all 4 packages (agent_sdk, claude_sdk, vide_core, root)dart test packages/agent_sdk— 37/37 new typed invocation testsdart test packages/claude_sdk— 759/759 (32 new reverse mapper tests)dart test packages/vide_core— 504/504 (all tests migrated to MockAgentClient)parameters['...']access in TUI renderers