feat: edit coding agent profiles (#453)
* edit profiles.json * move default crate configuration to a default_profiles.json button to open mcp config in editor initialse empty mcp config files fix test new JSON structure remove editor buttons fmt and types * feat: add profile field to follow-up attempt (#442) * move default crate configuration to a default_profiles.json * new JSON structure * feat: add profile field to follow-up attempt; fix follow ups using wrong session id at 2nd+ follow up fmt Profile selection (vibe-kanban cf714482) Right now in the frontend, when viewing a task card, we show the base_coding_agent from the task attempt. We should also show the currently selected profile there in the same way feat: add watchkill support to CommandBuilder and integrate with Claude executor feat: refactor profile handling to use ProfileVariant across executors and requests feat: restructure command modes in default_profiles.json for clarity and consistency update profile handling to use ProfileVariant across components and add mode selection fmt feat: refactor profile handling to use variants instead of modes across components and update related structures Fix frontend * Refactor coding agent representation in task and task attempt models - Changed `base_coding_agent` field to `profile` in `TaskWithAttemptStatus` and `TaskAttempt` structs. - Updated SQL queries and data handling to reflect the new `profile` field. - Modified related API endpoints and request/response structures to use `profile` instead of `base_coding_agent`. - Adjusted frontend API calls and components to align with the updated data structure. - Removed unused `BaseCodingAgent` enum and related type guards from the frontend. - Enhanced MCP server configuration handling to utilize the new profile-based approach. feat: Introduce MCP configuration management - Added `McpConfig` struct for managing MCP server configurations. - Implemented reading and writing of agent config files in JSON and TOML formats. - Refactored MCP server handling in the `McpServers` component to utilize the new configuration structure. - Removed deprecated `agent_config.rs` and updated related imports. - Enhanced error handling for MCP server operations. - Updated frontend strategies to accommodate the new MCP configuration structure. feat: Introduce MCP configuration management - Added `McpConfig` struct for managing MCP server configurations. - Implemented reading and writing of agent config files in JSON and TOML formats. - Refactored MCP server handling in the `McpServers` component to utilize the new configuration structure. - Removed deprecated `agent_config.rs` and updated related imports. - Enhanced error handling for MCP server operations. - Updated frontend strategies to accommodate the new MCP configuration structure. Best effort migration; add missing feature flag feat: refactor execution process handling and introduce profile variant extraction feat: add default follow-up variant handling in task details context feat: enhance profile variant selection with dropdown menus in onboarding and task sections fmt, types * refactor: rename ProfileVariant to ProfileVariantLabel; Modified AgentProfile to wrap AgentProfileVariant Fmt, clippy * Fix rebase issues * refactor: replace OnceLock with RwLock for AgentProfiles caching; update profile retrieval in executors and routes --------- Co-authored-by: Gabriel Gordon-Hall <ggordonhall@gmail.com> Fmt Fix tests refactor: clean up unused imports and default implementations in executor modules Move profiles to profiles.rs * rename profile to profile_variant_label for readability rename AgentProfile to ProfileConfig, AgentProfileVariant to VariantAgentConfig * remove duplicated profile state * Amp yolo --------- Co-authored-by: Alex Netsch <alex@bloop.ai>
This commit is contained in:
committed by
GitHub
parent
2e07aa1a49
commit
9b4ca9dc45
138
crates/executors/default_profiles.json
Normal file
138
crates/executors/default_profiles.json
Normal file
@@ -0,0 +1,138 @@
|
||||
{
|
||||
"profiles": [
|
||||
{
|
||||
"label": "claude-code",
|
||||
"mcp_config_path": null,
|
||||
"CLAUDE_CODE": {
|
||||
"command": {
|
||||
"base": "npx -y @anthropic-ai/claude-code@latest",
|
||||
"params": [
|
||||
"-p",
|
||||
"--dangerously-skip-permissions",
|
||||
"--verbose",
|
||||
"--output-format=stream-json"
|
||||
]
|
||||
},
|
||||
"plan": false
|
||||
},
|
||||
"variants": [
|
||||
{
|
||||
"label": "plan",
|
||||
"mcp_config_path": null,
|
||||
"CLAUDE_CODE": {
|
||||
"command": {
|
||||
"base": "npx -y @anthropic-ai/claude-code@latest",
|
||||
"params": [
|
||||
"-p",
|
||||
"--permission-mode=plan",
|
||||
"--verbose",
|
||||
"--output-format=stream-json"
|
||||
]
|
||||
},
|
||||
"plan": true
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "claude-code-router",
|
||||
"mcp_config_path": null,
|
||||
"CLAUDE_CODE": {
|
||||
"command": {
|
||||
"base": "npx -y @musistudio/claude-code-router code",
|
||||
"params": [
|
||||
"-p",
|
||||
"--dangerously-skip-permissions",
|
||||
"--verbose",
|
||||
"--output-format=stream-json"
|
||||
]
|
||||
},
|
||||
"plan": false
|
||||
},
|
||||
"variants": []
|
||||
},
|
||||
{
|
||||
"label": "amp",
|
||||
"mcp_config_path": null,
|
||||
"AMP": {
|
||||
"command": {
|
||||
"base": "npx -y @sourcegraph/amp@0.0.1752148945-gd8844f",
|
||||
"params": [
|
||||
"--format=jsonl",
|
||||
"--dangerously-allow-all"
|
||||
]
|
||||
}
|
||||
},
|
||||
"variants": []
|
||||
},
|
||||
{
|
||||
"label": "gemini",
|
||||
"mcp_config_path": null,
|
||||
"GEMINI": {
|
||||
"command": {
|
||||
"base": "npx -y @google/gemini-cli@latest",
|
||||
"params": [
|
||||
"--yolo"
|
||||
]
|
||||
}
|
||||
},
|
||||
"variants": []
|
||||
},
|
||||
{
|
||||
"label": "codex",
|
||||
"mcp_config_path": null,
|
||||
"CODEX": {
|
||||
"command": {
|
||||
"base": "npx -y @openai/codex exec",
|
||||
"params": [
|
||||
"--json",
|
||||
"--dangerously-bypass-approvals-and-sandbox",
|
||||
"--skip-git-repo-check"
|
||||
]
|
||||
}
|
||||
},
|
||||
"variants": []
|
||||
},
|
||||
{
|
||||
"label": "opencode",
|
||||
"mcp_config_path": null,
|
||||
"OPENCODE": {
|
||||
"command": {
|
||||
"base": "npx -y opencode-ai@latest run",
|
||||
"params": [
|
||||
"--print-logs"
|
||||
]
|
||||
}
|
||||
},
|
||||
"variants": []
|
||||
},
|
||||
{
|
||||
"label": "qwen-code",
|
||||
"mcp_config_path": "~/.qwen/settings.json",
|
||||
"GEMINI": {
|
||||
"command": {
|
||||
"base": "npx -y @qwen-code/qwen-code@latest",
|
||||
"params": [
|
||||
"--yolo"
|
||||
]
|
||||
}
|
||||
},
|
||||
"variants": []
|
||||
},
|
||||
{
|
||||
"label": "cursor",
|
||||
"mcp_config_path": null,
|
||||
"CURSOR": {
|
||||
"command": {
|
||||
"base": "cursor-agent",
|
||||
"params": [
|
||||
"-p",
|
||||
"--output-format=stream-json",
|
||||
"--force"
|
||||
]
|
||||
}
|
||||
},
|
||||
"variants": []
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user