Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ version = "0.1.0"
rust-version = "1.94"
edition = "2024"

[workspace.lints.clippy]
# #[async_trait] generates methods returning Pin<Box<dyn Future>> with an
# implicit #[must_use]; newer clippy nightlies flag this as double_must_use.
double_must_use = "allow"

[profile.release]
lto = true
codegen-units = 1
Expand Down
3 changes: 3 additions & 0 deletions crates/forge_api/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,6 @@ forge_config.workspace = true
tokio = { workspace = true }



[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_app/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,6 @@ insta.workspace = true
tokio-stream.workspace = true
fake = { version = "5.1.0", features = ["derive"] }
forge_domain = { path = "../forge_domain" }

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_ci/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@ derive_setters.workspace = true

[dev-dependencies]


[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_config/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,6 @@ is_ci.workspace = true
pretty_assertions.workspace = true
serde_json.workspace = true
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_display/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ two-face = "0.5.1"
insta.workspace = true
pretty_assertions.workspace = true
strip-ansi-escapes.workspace = true

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_domain/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,6 @@ insta = { workspace = true, features = ["yaml"] }
pretty_assertions.workspace = true
is_ci.workspace = true
fake = { version = "5.1.0", features = ["derive"] }

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_embed/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ rust-version.workspace = true
include_dir.workspace = true
handlebars.workspace = true
anyhow.workspace = true

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_eventsource/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
futures-retry = "0.6"
pin-utils = "0.1"
rocket = "0.5.0"

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_eventsource_stream/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ http = "1.0"
reqwest = { version = "0.11", features = ["stream"] }
tokio = { version = "1.0", features = ["macros", "rt"] }
url = "2.2"

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_fs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ forge_domain.workspace = true
[dev-dependencies]
tempfile = "3.27.0"
pretty_assertions = "1.4.0"

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_infra/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,6 @@ serial_test = "4.0"
fake = { version = "5.1.0", features = ["derive"] }
pretty_assertions.workspace = true
forge_domain = { path = "../forge_domain" }

[lints]
workspace = true
4 changes: 3 additions & 1 deletion crates/forge_json_repair/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ schemars = { workspace = true }
serde_json5 = "0.2.1"

[dev-dependencies]
pretty_assertions = { workspace = true }
pretty_assertions = { workspace = true }
[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_main/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,6 @@ pretty_assertions.workspace = true
serial_test = "4.0"
fake = { version = "5.1.0", features = ["derive"] }
forge_domain = { path = "../forge_domain" }

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_markdown_stream/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,6 @@ terminal-colorsaurus = "1.0.3"
insta.workspace = true
strip-ansi-escapes.workspace = true
pretty_assertions.workspace = true

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_repo/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,6 @@ fake = { version = "5.1.0", features = ["derive"] }
derive_setters.workspace = true
mockito = { workspace = true }
regex = { workspace = true }

[lints]
workspace = true
10 changes: 10 additions & 0 deletions crates/forge_repo/src/provider/provider.json
Original file line number Diff line number Diff line change
Expand Up @@ -4465,6 +4465,16 @@
"supports_parallel_tool_calls": true,
"supports_reasoning": true,
"input_modalities": ["text", "image"]
},
{
"id": "muse-spark-1.2",
"name": "Muse Spark 1.2",
"description": "Meta's latest multimodal model for agentic tool calling, coding, structured output, image and video understanding, and long-context reasoning",
"context_length": 1048576,
"tools_supported": true,
"supports_parallel_tool_calls": true,
"supports_reasoning": true,
"input_modalities": ["text", "image"]
}
],
"auth_methods": ["api_key"]
Expand Down
65 changes: 37 additions & 28 deletions crates/forge_repo/src/provider/provider_repo.rs
Original file line number Diff line number Diff line change
Expand Up @@ -982,35 +982,44 @@ mod tests {

match config.models.as_ref().expect("models should be present") {
Models::Hardcoded(models) => {
let model = models
.iter()
.find(|m| m.id.as_str() == "muse-spark-1.1")
.expect("muse-spark-1.1 should be present in hardcoded models");
assert_eq!(
model.context_length,
Some(1048576),
"muse-spark-1.1 should have 1048576 context length"
);
assert_eq!(
model.tools_supported,
Some(true),
"muse-spark-1.1 should support tools"
);
assert_eq!(
model.supports_parallel_tool_calls,
Some(true),
"muse-spark-1.1 should support parallel tool calls"
);
for expected_id in ["muse-spark-1.1", "muse-spark-1.2"] {
let model = models
.iter()
.find(|m| m.id.as_str() == expected_id)
.unwrap_or_else(|| {
panic!("{expected_id} should be present in hardcoded models")
});
assert_eq!(
model.context_length,
Some(1048576),
"{expected_id} should have 1048576 context length"
);
assert_eq!(
model.tools_supported,
Some(true),
"{expected_id} should support tools"
);
assert_eq!(
model.supports_parallel_tool_calls,
Some(true),
"{expected_id} should support parallel tool calls"
);
assert_eq!(
model.supports_reasoning,
Some(true),
"{expected_id} should support reasoning"
);
assert!(
model
.input_modalities
.contains(&forge_app::domain::InputModality::Image),
"{expected_id} should support image input"
);
}
assert_eq!(
model.supports_reasoning,
Some(true),
"muse-spark-1.1 should support reasoning"
);
assert!(
model
.input_modalities
.contains(&forge_app::domain::InputModality::Image),
"muse-spark-1.1 should support image input"
models.len(),
2,
"meta provider should expose exactly 2 hardcoded models"
);
}
other => panic!("expected hardcoded models, got {other:?}"),
Expand Down
3 changes: 3 additions & 0 deletions crates/forge_select/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ tracing.workspace = true

[dev-dependencies]
pretty_assertions.workspace = true

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_services/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,6 @@ fake = { version = "5.1.0", features = ["derive"] }
forge_test_kit.workspace = true



[lints]
workspace = true
4 changes: 3 additions & 1 deletion crates/forge_snaps/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,6 @@ forge_domain.workspace = true

[dev-dependencies]
tokio = { workspace = true, features = ["macros", "rt", "time", "test-util"] }
tempfile.workspace = true
tempfile.workspace = true
[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_spinner/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ rand = "0.10.0"
[dev-dependencies]
pretty_assertions.workspace = true
tokio = { workspace = true, features = ["test-util"] }

[lints]
workspace = true
4 changes: 3 additions & 1 deletion crates/forge_stream/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ futures.workspace = true
tokio.workspace = true

[dev-dependencies]
tokio = { workspace = true, features = ["macros", "rt", "time", "test-util"] }
tokio = { workspace = true, features = ["macros", "rt", "time", "test-util"] }
[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_template/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ html-escape = "0.2.13"

[dev-dependencies]
pretty_assertions.workspace = true

[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_test_kit/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ json = ["serde", "serde_json"]

[lib]
doctest = false

[lints]
workspace = true
4 changes: 3 additions & 1 deletion crates/forge_tool_macros/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ proc-macro = true
[dependencies]
syn.workspace = true
quote.workspace = true
proc-macro2.workspace = true
proc-macro2.workspace = true
[lints]
workspace = true
3 changes: 3 additions & 0 deletions crates/forge_tracker/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,6 @@ uuid.workspace = true
tokio = { workspace = true, features = ["macros", "rt", "time", "test-util"] }
lazy_static.workspace = true
pretty_assertions.workspace = true

[lints]
workspace = true
4 changes: 3 additions & 1 deletion crates/forge_walker/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ derive_setters.workspace = true

[dev-dependencies]
pretty_assertions.workspace = true
tempfile.workspace = true
tempfile.workspace = true
[lints]
workspace = true
Loading