The REPL was using block_on() inside an already running tokio runtime,
which caused a panic. Changed run() to be async and await directly.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Features:
- Multiple OpenAI instances (e.g., OpenAI + local AI proxy)
- Multiple Ollama instances (e.g., local + remote)
- API key not required if at least one provider works without it
- Provider instances can have optional names for reference
Config format (TOML arrays):
[[providers.openai]]
name = "openai-main"
api_key = "sk-..."
base_url = "https://api.openai.com/v1"
[[providers.openai]]
name = "local-ai"
base_url = "http://localhost:8080/v1"
[[providers.ollama]]
name = "local"
base_url = "http://localhost:11434"
[[providers.ollama]]
name = "remote"
base_url = "http://192.168.1.100:11434"
bearer_token = "token"
Changes:
- config/types.rs: Changed providers from Option<T> to Vec<T>
- config/loader.rs: Updated merge logic for provider arrays
- providers/registry.rs: Register all provider instances, skip those without API keys if alternatives exist
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Features:
- Local config at .svibe/config.toml overrides global config
- New 'svibe init --local' command creates project-specific config
- Config merging: global -> local -> environment variables
- Added .svibe to .gitignore (project configs typically not shared)
Changes:
- config/loader.rs: Added local config detection and merging logic
- cli/commands.rs: Added --local flag to init command
- main.rs: Updated init command handling
- QWEN.md: Updated documentation with local config info
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The init command was being processed after attempting to load config,
causing it to fail when no config existed. Now init is handled first
so users can create the initial configuration.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>