mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-09 03:20:56 +00:00
PR #651 stopped `fabro validate` and `fabro create` from judging model and provider availability locally, but left the `fabro_run_create` tool path doing exactly that. Both of its callers build a *client-side* catalog and then POST the manifest to the server, so an agent naming a server-owned model got `Model selection failed: unknown model provider '...'` while the same workflow succeeded through the CLI. - `build_run_tool_manifest` now validates structurally, matching the CLI. It no longer takes a catalog at all. - The MCP builder drops its `load_llm_catalog_settings` + `Catalog::from_builtin_with_overrides` pair, and `WorkerRunManifestBuilder` drops its catalog field, becoming a unit struct. - `validate_manifest_with_catalog` had no callers left, so it is gone. `validate_manifest` documents why every remaining caller is catalog-free. The new test fails with the pre-fix client-side check, reproducing the reported error exactly. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
19 lines
537 B
Rust
19 lines
537 B
Rust
use std::path::Path;
|
|
|
|
use fabro_api::types;
|
|
use fabro_server::run_tool_manifest;
|
|
use fabro_tool::{RunManifestBuilder, ToolResult, ValidatedCreateRunSpec};
|
|
|
|
#[derive(Default)]
|
|
pub(crate) struct McpRunManifestBuilder;
|
|
|
|
impl RunManifestBuilder for McpRunManifestBuilder {
|
|
fn build_run_manifest(
|
|
&self,
|
|
spec: &ValidatedCreateRunSpec,
|
|
cwd: &Path,
|
|
user_settings_path: &Path,
|
|
) -> ToolResult<types::RunManifest> {
|
|
run_tool_manifest::build_run_tool_manifest(spec, cwd, user_settings_path)
|
|
}
|
|
}
|