From 0bb5870f667038bd03f5f615c17f58ab76dc58e0 Mon Sep 17 00:00:00 2001 From: Austin Schaefer Date: Fri, 14 Aug 2026 19:43:13 +0200 Subject: [PATCH] refactor: split into a Cargo workspace with per-project dependency sets deep_research and swear_cleanup were sharing one Cargo.toml, so every build compiled clap/indicatif/scraper/chrono (only needed by deep_research) even when just building swear_cleanup for its own course work, and vice versa. Moves each into its own workspace member crate (deep_research/, swear_cleanup/) with an independent Cargo.toml declaring only the deps it actually uses; common deps/versions are pinned once via [workspace.dependencies] so the two don't drift. Verified `cargo build -p swear_cleanup` alone no longer pulls in clap/indicatif/scraper/chrono (schemars still compiles for it, but that's a direct transitive dependency of rig itself, not something this split can avoid). Also verified the relocated deep_research binary still runs end-to-end against live Ollama with correct footnote citations and sources. Co-Authored-By: Claude Sonnet 5 --- Cargo.lock | 236 ++++++++++-------- Cargo.toml | 21 +- deep_research/Cargo.toml | 18 ++ deep_research/src/main.rs | 9 + .../src}/progress.rs | 0 .../src}/review.rs | 2 +- .../src}/starter.rs | 6 +- .../src}/tools.rs | 0 src/deep_research/mod.rs | 4 - src/main.rs | 12 - src/swear_cleanup/mod.rs | 5 - swear_cleanup/Cargo.toml | 14 ++ swear_cleanup/src/main.rs | 10 + .../src}/models.rs | 0 .../src}/prompts.rs | 2 +- .../src}/prompts.toml | 0 .../src}/revise.rs | 4 +- .../src}/server.rs | 0 .../src}/server.toml | 0 .../src}/starter.rs | 2 +- 20 files changed, 191 insertions(+), 154 deletions(-) create mode 100644 deep_research/Cargo.toml create mode 100644 deep_research/src/main.rs rename {src/deep_research => deep_research/src}/progress.rs (100%) rename {src/deep_research => deep_research/src}/review.rs (98%) rename {src/deep_research => deep_research/src}/starter.rs (98%) rename {src/deep_research => deep_research/src}/tools.rs (100%) delete mode 100644 src/deep_research/mod.rs delete mode 100644 src/main.rs delete mode 100644 src/swear_cleanup/mod.rs create mode 100644 swear_cleanup/Cargo.toml create mode 100644 swear_cleanup/src/main.rs rename {src/swear_cleanup => swear_cleanup/src}/models.rs (100%) rename {src/swear_cleanup => swear_cleanup/src}/prompts.rs (81%) rename {src/swear_cleanup => swear_cleanup/src}/prompts.toml (100%) rename {src/swear_cleanup => swear_cleanup/src}/revise.rs (99%) rename {src/swear_cleanup => swear_cleanup/src}/server.rs (100%) rename {src/swear_cleanup => swear_cleanup/src}/server.toml (100%) rename {src/swear_cleanup => swear_cleanup/src}/starter.rs (98%) diff --git a/Cargo.lock b/Cargo.lock index 59a5a13..82f2169 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -568,9 +568,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.17.3" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00bdb5da18dac48ca2cc7cd4a98e533e8635a58e2361d13a1a4ee3888e0d72f1" +checksum = "ce2b2dcc879c3bae0d371e77c99f2238400ef24ec001394befa67b6e543add9e" dependencies = [ "aws-lc-sys", "zeroize", @@ -578,9 +578,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43103168cc76fe62678a375e722fc9cb3a0146159ac5828bc4f0dfd755c2224c" +checksum = "f09fae7be8bb3174e05c6afdb34199e6dc0c7c04ba9fa237b1967adfbde27483" dependencies = [ "cc", "cmake", @@ -794,9 +794,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.4.0" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9" +checksum = "509591b7bcd67f4ef775afad7662703b4935daaa6ec0e5605cfb1090b32a2b6d" dependencies = [ "find-msvc-tools", "jobserver", @@ -1296,9 +1296,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" +checksum = "4583a4551df46e2792f82ceeac45e850d2e2d5debba0b91f102385cda5b11f06" [[package]] name = "datafusion" @@ -1915,6 +1915,24 @@ dependencies = [ "sqlparser", ] +[[package]] +name = "deep_research" +version = "0.1.0" +dependencies = [ + "anyhow", + "chrono", + "clap", + "indicatif", + "reqwest 0.13.4", + "rig", + "schemars 1.2.2", + "scraper", + "serde", + "tokio", + "tracing", + "tracing-subscriber", +] + [[package]] name = "deepsize" version = "0.2.0" @@ -2070,25 +2088,6 @@ dependencies = [ "syn 3.0.3", ] -[[package]] -name = "doubleo7" -version = "0.1.0" -dependencies = [ - "anyhow", - "chrono", - "clap", - "indicatif", - "reqwest 0.13.4", - "rig", - "schemars 1.2.2", - "scraper", - "serde", - "tokio", - "toml", - "tracing", - "tracing-subscriber", -] - [[package]] name = "dtoa" version = "1.0.11" @@ -2294,9 +2293,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" [[package]] name = "fixedbitset" @@ -2394,9 +2393,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88cf1f829d945f548cf8fec32c61b1f202b6d93b45848602fc02af4b12ad218" +checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3" dependencies = [ "futures-channel", "futures-core", @@ -2409,9 +2408,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" dependencies = [ "futures-core", "futures-sink", @@ -2419,15 +2418,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-executor" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458" +checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432" dependencies = [ "futures-core", "futures-task", @@ -2436,32 +2435,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed" [[package]] name = "futures-macro" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] name = "futures-sink" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d" [[package]] name = "futures-task" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-timer" @@ -2475,9 +2474,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-channel", "futures-core", @@ -2730,9 +2729,9 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2" +checksum = "23169fe34a5fbcdd3f3862e78fb9b6fccd5f02a6dc6f732547005d45631ce71c" dependencies = [ "bytes", "futures-core", @@ -2851,9 +2850,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" dependencies = [ "displaydoc", "potential_utf", @@ -2865,9 +2864,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" dependencies = [ "displaydoc", "litemap", @@ -2878,9 +2877,9 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -2892,16 +2891,17 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" +checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0" [[package]] name = "icu_properties" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" dependencies = [ + "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", @@ -2912,15 +2912,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" [[package]] name = "icu_provider" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +checksum = "92a7ed671a6aad807a8651a2e1782a6598fda9ce5185dd8158549e95a91c6428" dependencies = [ "displaydoc", "icu_locale_core", @@ -3058,9 +3058,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" +checksum = "6a756c3fac73139e83f14c2d742155dd2b78d3ee56597b419a0579b7bdd6dd78" [[package]] name = "is_terminal_polyfill" @@ -3228,9 +3228,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.103" +version = "0.3.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a" dependencies = [ "cfg-if", "futures-util", @@ -3929,9 +3929,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2026a5056764a10b2bf5d56488cba40da507f5493a6a429340e2004d9ed085fa" +checksum = "28d0a00925a9f930d679b6789b721e3a7f9ed110f41b86d2497caa780c3a070a" dependencies = [ "libc", ] @@ -3998,9 +3998,9 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" +checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" [[package]] name = "lock_api" @@ -4714,9 +4714,9 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" [[package]] name = "png" @@ -4748,9 +4748,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" dependencies = [ "zerovec", ] @@ -5280,9 +5280,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.17" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca71a6a1a566e01ad6b3b87edcbf9bd3374c27e31978c1b4e38c9fa6412557d2" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -5699,9 +5699,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.13" +version = "0.103.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +checksum = "0527518605e68109d875e248ea259b6758801cf165e4b2c2733ae3b51f12535a" dependencies = [ "aws-lc-rs", "ring", @@ -6299,6 +6299,20 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "swear_cleanup" +version = "0.1.0" +dependencies = [ + "anyhow", + "reqwest 0.13.4", + "rig", + "serde", + "tokio", + "toml", + "tracing", + "tracing-subscriber", +] + [[package]] name = "syn" version = "1.0.109" @@ -6411,18 +6425,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.19" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.19" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", @@ -6502,9 +6516,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" dependencies = [ "displaydoc", "zerovec", @@ -7044,9 +7058,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70" dependencies = [ "cfg-if", "once_cell", @@ -7057,9 +7071,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.76" +version = "0.4.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" +checksum = "6b7777d5cc23d0e91404e53ce2d5e8ec7acae3026b16233dba62cd3246457950" dependencies = [ "js-sys", "wasm-bindgen", @@ -7067,9 +7081,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7077,9 +7091,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284" dependencies = [ "bumpalo", "proc-macro2", @@ -7090,9 +7104,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf" dependencies = [ "unicode-ident", ] @@ -7125,9 +7139,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.103" +version = "0.3.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" +checksum = "c435338968042f4f59a557f690a253676d47ce13ceb55d70100e7facf6620a30" dependencies = [ "js-sys", "wasm-bindgen", @@ -7471,9 +7485,9 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "writeable" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "wyz" @@ -7521,18 +7535,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.55" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" +checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.55" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" +checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" dependencies = [ "proc-macro2", "quote", @@ -7568,9 +7582,9 @@ checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" [[package]] name = "zerotrie" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" dependencies = [ "displaydoc", "yoke", @@ -7579,9 +7593,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.6" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +checksum = "94b5c6b5976d66c1d703c4fd17d3f5e43c8cedaacf604961b171adc7130896d8" dependencies = [ "yoke", "zerofrom", @@ -7590,13 +7604,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +checksum = "47402523226a02bfe5230160dc3ccc089aa6f6f19e7fcbb4e6f824bbb1b4aa62" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 19c546a..ccf4643 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,19 +1,12 @@ -[package] -name = "doubleo7" -version = "0.1.0" -edition = "2024" +[workspace] +resolver = "2" +members = ["deep_research", "swear_cleanup"] -[dependencies] +[workspace.dependencies] anyhow = "1.0.104" -clap = { version = "4", features = ["derive"] } -indicatif = "0.17" -reqwest = { version = "0.13.4", features = ["query"] } -rig = { version = "0.41.0", features = ["test-utils"] } -schemars = "1" -scraper = "0.25" -serde = "1.0.229" +reqwest = "0.13.4" +rig = "0.41.0" +serde = { version = "1.0.229", features = ["derive"] } tokio = { version = "1.53.1", features = ["full"] } -toml = "1.1.4+spec-1.1.0" tracing = "0.1" tracing-subscriber = { version = "0.3.23", features = ["env-filter"] } -chrono = "0.4.45" diff --git a/deep_research/Cargo.toml b/deep_research/Cargo.toml new file mode 100644 index 0000000..016c13b --- /dev/null +++ b/deep_research/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "deep_research" +version = "0.1.0" +edition = "2024" + +[dependencies] +anyhow = { workspace = true } +chrono = "0.4.45" +clap = { version = "4", features = ["derive"] } +indicatif = "0.17" +reqwest = { workspace = true, features = ["query"] } +rig = { workspace = true } +schemars = "1" +scraper = "0.25" +serde = { workspace = true } +tokio = { workspace = true } +tracing = { workspace = true } +tracing-subscriber = { workspace = true } diff --git a/deep_research/src/main.rs b/deep_research/src/main.rs new file mode 100644 index 0000000..f139ad4 --- /dev/null +++ b/deep_research/src/main.rs @@ -0,0 +1,9 @@ +mod progress; +mod review; +mod starter; +mod tools; + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + starter::start().await +} diff --git a/src/deep_research/progress.rs b/deep_research/src/progress.rs similarity index 100% rename from src/deep_research/progress.rs rename to deep_research/src/progress.rs diff --git a/src/deep_research/review.rs b/deep_research/src/review.rs similarity index 98% rename from src/deep_research/review.rs rename to deep_research/src/review.rs index 7997011..e6e2296 100644 --- a/src/deep_research/review.rs +++ b/deep_research/src/review.rs @@ -3,7 +3,7 @@ use rig::providers::ollama; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use crate::deep_research::progress::Spinner; +use crate::progress::Spinner; /// Judging whether a conclusion actually follows from its cited sources is a /// bounded, single-shot classification task, not multi-step reasoning — so diff --git a/src/deep_research/starter.rs b/deep_research/src/starter.rs similarity index 98% rename from src/deep_research/starter.rs rename to deep_research/src/starter.rs index 5551e96..229c465 100644 --- a/src/deep_research/starter.rs +++ b/deep_research/src/starter.rs @@ -1,6 +1,6 @@ -use crate::deep_research::progress::Spinner; -use crate::deep_research::review::{self, Review}; -use crate::deep_research::tools::{FetchPage, SearchWeb}; +use crate::progress::Spinner; +use crate::review::{self, Review}; +use crate::tools::{FetchPage, SearchWeb}; use clap::Parser; use rig::client::{AgentClientExt, Nothing}; use rig::completion::Prompt; diff --git a/src/deep_research/tools.rs b/deep_research/src/tools.rs similarity index 100% rename from src/deep_research/tools.rs rename to deep_research/src/tools.rs diff --git a/src/deep_research/mod.rs b/src/deep_research/mod.rs deleted file mode 100644 index ec0cf83..0000000 --- a/src/deep_research/mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub mod starter; -mod progress; -mod review; -mod tools; diff --git a/src/main.rs b/src/main.rs deleted file mode 100644 index e1ba0de..0000000 --- a/src/main.rs +++ /dev/null @@ -1,12 +0,0 @@ -pub mod swear_cleanup; -pub mod deep_research; - -#[tokio::main] -pub async fn main() -> anyhow::Result<()> { - - // swear_cleanup::starter::run().await?; - - deep_research::starter::start().await?; - - Ok(()) -} diff --git a/src/swear_cleanup/mod.rs b/src/swear_cleanup/mod.rs deleted file mode 100644 index cf02ec5..0000000 --- a/src/swear_cleanup/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub(crate) mod starter; -mod server; -mod models; -mod revise; -pub mod prompts; diff --git a/swear_cleanup/Cargo.toml b/swear_cleanup/Cargo.toml new file mode 100644 index 0000000..77a33fc --- /dev/null +++ b/swear_cleanup/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "swear_cleanup" +version = "0.1.0" +edition = "2024" + +[dependencies] +anyhow = { workspace = true } +reqwest = { workspace = true } +rig = { workspace = true } +serde = { workspace = true } +tokio = { workspace = true } +toml = "1.1.4+spec-1.1.0" +tracing = { workspace = true } +tracing-subscriber = { workspace = true } diff --git a/swear_cleanup/src/main.rs b/swear_cleanup/src/main.rs new file mode 100644 index 0000000..04541dd --- /dev/null +++ b/swear_cleanup/src/main.rs @@ -0,0 +1,10 @@ +mod models; +mod prompts; +mod revise; +mod server; +mod starter; + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + starter::run().await +} diff --git a/src/swear_cleanup/models.rs b/swear_cleanup/src/models.rs similarity index 100% rename from src/swear_cleanup/models.rs rename to swear_cleanup/src/models.rs diff --git a/src/swear_cleanup/prompts.rs b/swear_cleanup/src/prompts.rs similarity index 81% rename from src/swear_cleanup/prompts.rs rename to swear_cleanup/src/prompts.rs index 68dbe77..258a64a 100644 --- a/src/swear_cleanup/prompts.rs +++ b/swear_cleanup/src/prompts.rs @@ -1,5 +1,5 @@ use std::sync::LazyLock; -use crate::swear_cleanup::models::Prompts; +use crate::models::Prompts; pub(crate) static PROMPTS: LazyLock = LazyLock::new(|| { toml::from_str(include_str!("prompts.toml")).expect("Could not parse prompts.toml") diff --git a/src/swear_cleanup/prompts.toml b/swear_cleanup/src/prompts.toml similarity index 100% rename from src/swear_cleanup/prompts.toml rename to swear_cleanup/src/prompts.toml diff --git a/src/swear_cleanup/revise.rs b/swear_cleanup/src/revise.rs similarity index 99% rename from src/swear_cleanup/revise.rs rename to swear_cleanup/src/revise.rs index b7b05a0..56a5bb3 100644 --- a/src/swear_cleanup/revise.rs +++ b/swear_cleanup/src/revise.rs @@ -7,8 +7,8 @@ use rig::providers::ollama; use rig::providers::openai::GenericCompletionModel; use rig::serde_json; use rig::serde_json::json; -use crate::swear_cleanup::models::ChatLogprobs; -use crate::swear_cleanup::prompts::PROMPTS; +use crate::models::ChatLogprobs; +use crate::prompts::PROMPTS; const SAFETY_THRESHOLD: f64 = 0.1; const MAX_REVISION_ITERATIONS: u32 = 5; diff --git a/src/swear_cleanup/server.rs b/swear_cleanup/src/server.rs similarity index 100% rename from src/swear_cleanup/server.rs rename to swear_cleanup/src/server.rs diff --git a/src/swear_cleanup/server.toml b/swear_cleanup/src/server.toml similarity index 100% rename from src/swear_cleanup/server.toml rename to swear_cleanup/src/server.toml diff --git a/src/swear_cleanup/starter.rs b/swear_cleanup/src/starter.rs similarity index 98% rename from src/swear_cleanup/starter.rs rename to swear_cleanup/src/starter.rs index ed2cce8..f04af9d 100644 --- a/src/swear_cleanup/starter.rs +++ b/swear_cleanup/src/starter.rs @@ -3,7 +3,7 @@ use rig::client::{CompletionClient, Nothing}; use rig::providers::llamafile::LlamafileExt; use rig::providers::openai::GenericCompletionModel; use rig::providers::{llamafile, ollama}; -use crate::swear_cleanup::{revise, server}; +use crate::{revise, server}; /// Respects RUST_LOG if the shell sets one (e.g. `RUST_LOG=debug cargo run`), /// otherwise defaults to "info" — the level Rig's own completion spans use.