compatibility-layer-adapters.md 4.5 KB

Lookup: Compatibility Layer Adapters

Purpose: Quick reference for implemented adapter details

Last Updated: 2026-02-05


Adapter Summary

Adapter Lines Tests Coverage Status
ClaudeAdapter 600 80 96% ✅ Complete
CursorAdapter 554 78 99% ✅ Complete
WindsurfAdapter 514 78 99% ✅ Complete

Total: 1,858 lines of TypeScript, 236 tests


ClaudeAdapter

Format: .claude/config.json (primary), .claude/agents/*.md (subagents)

Capabilities:

  • ✅ Multiple agents
  • ✅ Skills system
  • ✅ Hooks (5 types: PreToolUse, PostToolUse, PermissionRequest, AgentStart, AgentEnd)
  • ⚠️ Binary permissions (granular → degraded)
  • ❌ Temperature not supported

Key Mappings:

  • Model: claude-sonnet-4claude-sonnet-4-20250514
  • Permissions: Granular OAC → permissionMode (default/acceptEdits/dontAsk/bypassPermissions)
  • Contexts → Skills system

Tests: 80 tests covering toOAC(), fromOAC(), roundtrip, error handling


CursorAdapter

Format: .cursorrules (single file in project root)

Capabilities:

  • ❌ Single agent only (multi-agent → merged)
  • ❌ No Skills system (contexts → inlined)
  • ❌ No Hooks
  • ⚠️ Binary permissions only
  • ✅ Temperature support (limited)

Key Features:

  • mergeAgents() method for multi-agent → single-file conversion
  • Optional YAML frontmatter
  • Context inlining with references

Key Mappings:

  • Model: claude-sonnet-4claude-3-sonnet (fallback to v3)
  • Multiple agents → Merged with section headers

Tests: 78 tests covering toOAC(), fromOAC(), merging, error handling


WindsurfAdapter

Format: .windsurf/config.json, .windsurf/agents/*.json

Capabilities:

  • ✅ Multiple agents (.windsurf/agents/)
  • ⚠️ Partial Skills (→ context references)
  • ❌ No Hooks
  • ⚠️ Binary permissions only
  • ✅ Temperature via creativity setting

Key Mappings:

  • Model: claude-sonnet-4claude-4-sonnet
  • Temperature ↔ Creativity: ≤0.4 → low, ≤0.8 → medium, >0.8 → high
  • Priority: critical/high → high, medium/low → low
  • Skills → Context file references in .windsurf/context/

Tests: 78 tests covering toOAC(), fromOAC(), creativity mapping, error handling


Mappers (Phase 3 ✅)

All mappers are pure functions used by adapters and TranslationEngine:

Mapper Lines Tests Coverage Purpose
ToolMapper 308 34 100% Tool name mapping (bash↔terminal, etc.)
PermissionMapper 354 37 98% Granular↔binary permissions
ModelMapper 413 37 99% Model ID mapping with fallbacks
ContextMapper 384 51 97% Context path mapping between platforms

Core Services (Phase 3 ✅)

Service Lines Tests Coverage Purpose
CapabilityMatrix 559 43 99% Feature compatibility analysis
TranslationEngine 453 47 99% Orchestrates all mappers

Common Patterns

Bidirectional Conversion

All 3 adapters support:

  • toOAC(): Tool format → OpenAgent
  • fromOAC(): OpenAgent → Tool format

Graceful Degradation

All adapters warn when features are lost:

  • Granular permissions → Binary on/off
  • Unsupported features → Warning messages
  • Feature loss → Clear user notifications

Type Safety

  • All extend BaseAdapter
  • Full TypeScript strict mode
  • Zod schema validation
  • 0 compilation errors

Feature Parity Matrix

Feature OAC Claude Cursor Windsurf
Multiple Agents
Granular Permissions
Ask Permissions
Hooks
Skills ⚠️
External Context
Context Priority
Temperature ⚠️
Model Selection
Task Delegation ⚠️

Legend: ✅ Full support, ⚠️ Partial support, ❌ Not supported


Reference

Implementation: packages/compatibility-layer/src/adapters/ Issue: https://github.com/darrenhinde/OpenAgentsControl/issues/141

Related:

  • lookup/compatibility-layer-progress.md
  • lookup/compatibility-layer-structure.md
  • guides/compatibility-layer-workflow.md