AI Agents SDE Task Viewer
      • Pr description
  1. Home
  2. AgentSDE
  3. agent-core
  4. gh-346
  5. changes
  6. pr_description.md
pr_description.md(1.2 KB)· Apr 8, 2026· 1 min read
  • Problem
  • Task / Link
  • Changes
  • Notes
  • Testing

Problem#

The <promise> signal protocol is deeply coupled to the core pipeline. Introducing a second LLM backend requires a provider abstraction to isolate these Claude-specific details.

Task / Link#

Closes #346 MT-2: LLMProvider abstraction — Phase 1 foundation for multi-tenant

Changes#

  • Add PhaseResult type and LLMProvider interface (src/llm/llm-provider.interface.ts)
  • Add LLM_PROVIDER injection token (Symbol('LLM_PROVIDER'))
  • Implement ClaudeCLIProvider wrapping ClaudeInvocationService with SignalResult → PhaseResult mapping (src/llm/claude/claude-cli.provider.ts)
  • Create LLMModule providing and exporting LLM_PROVIDER token (src/llm/llm.module.ts)
  • Add unit tests covering all 7 signal mapping scenarios (src/llm/claude/claude-cli.provider.spec.ts)

Notes#

  • partial and none signal types map to blocked:transient — matches existing toSignalKind() behavior in PhaseRouterService
  • No existing files were modified; this is a purely additive change

Testing#

  • 7 unit tests covering: complete, blocked:transient, blocked:persistent, blocked:conflict (with conflictMetadata), skip, none, and invoke-throws
  • npx tsc --noEmit passes with zero errors
  • npm run lint passes with zero warnings
PrdAgent-runner