[workspace] members = ["crates/phone-opus"] resolver = "3" [workspace.package] categories = ["development-tools", "command-line-utilities"] description = "Consultative Claude Code MCP with a durable host, disposable worker, and read-only tool posture." edition = "2024" keywords = ["mcp", "claude", "consultation", "ai", "tooling"] license = "MIT" readme = "README.md" repository = "https://git.swarm.moe/phone_opus.git" rust-version = "1.94" version = "0.1.0" [workspace.dependencies] clap = { version = "4.5", features = ["derive"] } dirs = "6" libmcp = { git = "https://git.swarm.moe/libmcp.git", rev = "e325cd23f19378f543981071673c1d03be438fa5" } libmcp-testkit = { git = "https://git.swarm.moe/libmcp.git", rev = "e325cd23f19378f543981071673c1d03be438fa5", package = "libmcp-testkit" } serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.145" thiserror = "2.0.17" users = "0.11" uuid = { version = "1.18.1", features = ["serde", "v4"] } [workspace.lints.rust] elided_lifetimes_in_paths = "deny" unexpected_cfgs = "deny" unsafe_code = "deny" unused_crate_dependencies = "warn" unused_lifetimes = "deny" unused_qualifications = "deny" unused_results = "deny" [workspace.lints.rustdoc] bare_urls = "deny" broken_intra_doc_links = "deny" [workspace.lints.clippy] all = { level = "deny", priority = -2 } pedantic = { level = "deny", priority = -1 } cargo = { level = "warn", priority = -3 } dbg_macro = "deny" expect_used = "deny" panic = "deny" todo = "deny" unimplemented = "deny" unwrap_used = "deny" allow_attributes_without_reason = "deny" cargo_common_metadata = "allow" missing_errors_doc = "allow" missing_panics_doc = "allow" multiple_crate_versions = "allow" items_after_statements = "allow" many_single_char_names = "allow" match_same_arms = "allow" module_name_repetitions = "allow" similar_names = "allow" struct_field_names = "allow" too_many_arguments = "allow" too_many_lines = "allow" unnested_or_patterns = "allow" cast_lossless = "allow" cast_possible_truncation = "allow" cast_possible_wrap = "allow" cast_precision_loss = "allow" cast_sign_loss = "allow" float_cmp = "allow" implicit_hasher = "allow" manual_let_else = "allow" map_unwrap_or = "allow" uninlined_format_args = "allow" ignored_unit_patterns = "allow" must_use_candidate = "allow" needless_pass_by_value = "allow" no_effect_underscore_binding = "allow" redundant_closure_for_method_calls = "allow" ref_option = "allow" return_self_not_must_use = "allow" trivially_copy_pass_by_ref = "allow" unused_async = "allow" used_underscore_binding = "allow" [workspace.metadata.rust-starter] format_command = ["cargo", "fmt", "--all", "--check"] clippy_command = [ "cargo", "clippy", "--workspace", "--all-targets", "--all-features", "--", "-D", "warnings", ] test_command = ["cargo", "test", "--workspace", "--all-targets", "--all-features"] doc_command = ["cargo", "doc", "--workspace", "--all-features", "--no-deps"] fix_command = [ "cargo", "clippy", "--fix", "--workspace", "--all-targets", "--all-features", "--allow-dirty", "--allow-staged", ] [workspace.metadata.rust-starter.source_files] max_lines = 2500 include = ["*.rs", "**/*.rs"] exclude = []