Properly separates UI display concern from core library: - fixed_filter_json module now lives in g3-cli (UI layer) - UiWriter trait gains filter_json_tool_calls() and reset_json_filter() methods - g3-core delegates filtering to UI layer via trait methods - Different UiWriter implementations can choose their own filtering behavior - ConsoleUiWriter filters JSON tool calls for clean terminal display - MachineUiWriter/NullUiWriter use default pass-through Benefits: - Proper separation of concerns - Core stays clean without display-specific logic - Testability - filter can be tested independently in g3-cli
34 lines
862 B
TOML
34 lines
862 B
TOML
[package]
|
|
name = "g3-cli"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "CLI interface for G3 AI coding agent"
|
|
|
|
[dependencies]
|
|
g3-core = { path = "../g3-core" }
|
|
g3-config = { path = "../g3-config" }
|
|
g3-planner = { path = "../g3-planner" }
|
|
g3-providers = { path = "../g3-providers" }
|
|
clap = { workspace = true }
|
|
g3-ensembles = { path = "../g3-ensembles" }
|
|
tokio = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true, features = ["env-filter"] }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = { workspace = true }
|
|
rustyline = "17.0.1"
|
|
dirs = "5.0"
|
|
tokio-util = "0.7"
|
|
sha2 = "0.10"
|
|
hex = "0.4"
|
|
indicatif = "0.17"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
crossterm = "0.29.0"
|
|
ratatui = "0.29"
|
|
termimad = "0.34.0"
|
|
regex = "1.10"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3.8"
|