feat: add Avian coding assistant support#772
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
🚧 Files skipped from review as they are similar to previous changes (3)
📝 WalkthroughWalkthroughAdds Avian command-adapter integration, registers Avian in configuration and documentation, and extends adapter tests for paths and formatted command files. ChangesAvian adapter integration
Estimated code review effort: 2 (Simple) | ~15 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryAdds Avian as a supported AI coding tool following OpenSpec's adapter pattern, consistent with other tools like Crush and Claude Code.
Confidence Score: 5/5
Important Files Changed
Class Diagram%%{init: {'theme': 'neutral'}}%%
classDiagram
class ToolCommandAdapter {
<<interface>>
+string toolId
+getFilePath(commandId: string) string
+formatFile(content: CommandContent) string
}
class CommandAdapterRegistry {
-Map~string, ToolCommandAdapter~ adapters
+register(adapter: ToolCommandAdapter) void
+get(toolId: string) ToolCommandAdapter
+getAll() ToolCommandAdapter[]
+has(toolId: string) boolean
}
class avianAdapter {
+toolId: "avian"
+getFilePath(commandId)
+formatFile(content)
}
class claudeAdapter {
+toolId: "claude"
+getFilePath(commandId)
+formatFile(content)
}
class crushAdapter {
+toolId: "crush"
+getFilePath(commandId)
+formatFile(content)
}
ToolCommandAdapter <|.. avianAdapter : implements
ToolCommandAdapter <|.. claudeAdapter : implements
ToolCommandAdapter <|.. crushAdapter : implements
CommandAdapterRegistry o-- ToolCommandAdapter : registers
avianAdapter --> CommandAdapterRegistry : registered in static block
Last reviewed commit: 952533d |
Add Avian as a supported AI coding tool with skill and command generation. Follows the same adapter pattern as Claude Code and Crush with nested opsx command directories and YAML frontmatter.
952533d to
b899e0a
Compare
|
Friendly follow-up — this PR is still active and ready for review. Would appreciate a look when you get a chance! cc @TabishB |
|
Friendly follow-up — this PR is still active and ready for review. All feedback has been addressed. Would appreciate a look when you get a chance! cc @TabishB |
|
Hey @TabishB — friendly follow-up on this PR. Avian is an OpenAI-compatible inference provider that's already live and powering apps like ISEKAI ZERO. This is a lightweight integration (standard OpenAI-compatible endpoint) and we're happy to address any feedback or make adjustments. Would love to get this merged if you have a moment to review. Thanks! |
|
Resolved merge conflicts with latest upstream main. |
|
Resolved merge conflicts with latest upstream main. |
Summary
.avian/config directory with nestedcommands/opsx/<id>.mdcommand paths and YAML frontmatter (name, description, category, tags)Changes
src/core/config.ts— add Avian toAI_TOOLSarray (skillsDir:.avian)src/core/command-generation/adapters/avian.ts— new command adaptersrc/core/command-generation/adapters/index.ts— export adaptersrc/core/command-generation/registry.ts— register adapterdocs/supported-tools.md— add Avian to tool directory table and available tool IDstest/core/command-generation/adapters.test.ts— 5 new tests for adapter (all passing)Test plan
pnpm run buildcompiles successfullypnpm test— all 87 adapter tests pass (5 new Avian tests included)available-tools.test.tspassescc @TabishB
Summary by CodeRabbit
New Features
Documentation
Tests