Stringly typed config (#5463)
This commit is contained in:
@@ -12,7 +12,7 @@ use axum::{
|
||||
use goose::config::PermissionManager;
|
||||
|
||||
use goose::agents::ExtensionConfig;
|
||||
use goose::config::Config;
|
||||
use goose::config::{Config, GooseMode};
|
||||
use goose::model::ModelConfig;
|
||||
use goose::prompt_template::render_global_file;
|
||||
use goose::providers::{create, create_with_named_model};
|
||||
@@ -211,15 +211,12 @@ async fn resume_agent(
|
||||
let config = Config::global();
|
||||
|
||||
let provider_result = async {
|
||||
let provider_name: String =
|
||||
config
|
||||
.get_param("GOOSE_PROVIDER")
|
||||
.map_err(|_| ErrorResponse {
|
||||
message: "Could not configure agent: missing provider".into(),
|
||||
status: StatusCode::INTERNAL_SERVER_ERROR,
|
||||
})?;
|
||||
let provider_name: String = config.get_goose_provider().map_err(|_| ErrorResponse {
|
||||
message: "Could not configure agent: missing provider".into(),
|
||||
status: StatusCode::INTERNAL_SERVER_ERROR,
|
||||
})?;
|
||||
|
||||
let model: String = config.get_param("GOOSE_MODEL").map_err(|_| ErrorResponse {
|
||||
let model: String = config.get_goose_model().map_err(|_| ErrorResponse {
|
||||
message: "Could not configure agent: missing model".into(),
|
||||
status: StatusCode::INTERNAL_SERVER_ERROR,
|
||||
})?;
|
||||
@@ -348,7 +345,7 @@ async fn get_tools(
|
||||
Query(query): Query<GetToolsQuery>,
|
||||
) -> Result<Json<Vec<ToolInfo>>, StatusCode> {
|
||||
let config = Config::global();
|
||||
let goose_mode = config.get_param("GOOSE_MODE").unwrap_or("auto".to_string());
|
||||
let goose_mode = config.get_goose_mode().unwrap_or(GooseMode::Auto);
|
||||
let agent = state.get_agent_for_route(query.session_id).await?;
|
||||
let permission_manager = PermissionManager::default();
|
||||
|
||||
@@ -360,9 +357,9 @@ async fn get_tools(
|
||||
let permission = permission_manager
|
||||
.get_user_permission(&tool.name)
|
||||
.or_else(|| {
|
||||
if goose_mode == "smart_approve" {
|
||||
if goose_mode == GooseMode::SmartApprove {
|
||||
permission_manager.get_smart_approve_permission(&tool.name)
|
||||
} else if goose_mode == "approve" {
|
||||
} else if goose_mode == GooseMode::Approve {
|
||||
Some(PermissionLevel::AskBefore)
|
||||
} else {
|
||||
None
|
||||
@@ -406,10 +403,7 @@ async fn update_agent_provider(
|
||||
.await?;
|
||||
|
||||
let config = Config::global();
|
||||
let model = match payload
|
||||
.model
|
||||
.or_else(|| config.get_param("GOOSE_MODEL").ok())
|
||||
{
|
||||
let model = match payload.model.or_else(|| config.get_goose_model().ok()) {
|
||||
Some(m) => m,
|
||||
None => {
|
||||
tracing::error!("No model specified");
|
||||
|
||||
@@ -251,7 +251,7 @@ async fn transcribe_elevenlabs_handler(
|
||||
// Migrate to secret storage
|
||||
if let Err(e) = config.set(
|
||||
"ELEVENLABS_API_KEY",
|
||||
serde_json::Value::String(key.clone()),
|
||||
&serde_json::Value::String(key.clone()),
|
||||
true,
|
||||
) {
|
||||
tracing::error!("Failed to migrate ElevenLabs API key: {:?}", e);
|
||||
|
||||
@@ -101,7 +101,7 @@ pub async fn upsert_config(
|
||||
Json(query): Json<UpsertConfigQuery>,
|
||||
) -> Result<Json<Value>, StatusCode> {
|
||||
let config = Config::global();
|
||||
let result = config.set(&query.key, query.value, query.is_secret);
|
||||
let result = config.set(&query.key, &query.value, query.is_secret);
|
||||
|
||||
match result {
|
||||
Ok(_) => Ok(Json(Value::String(format!("Upserted key {}", query.key)))),
|
||||
|
||||
Reference in New Issue
Block a user