From e03e3c60371aab85dba6b20da9fc1d51cfca7eca Mon Sep 17 00:00:00 2001 From: Michael Neale Date: Wed, 5 Mar 2025 16:12:18 +1100 Subject: [PATCH] feat: goose to read PDFs (#1522) --- Cargo.lock | 107 +++++ crates/goose-mcp/Cargo.toml | 1 + .../goose-mcp/src/computercontroller/mod.rs | 45 ++ .../src/computercontroller/pdf_tool.rs | 422 ++++++++++++++++++ .../computercontroller/tests/data/test.pdf | Bin 0 -> 82188 bytes .../tests/data/test_image.pdf | Bin 0 -> 28636 bytes crates/goose-mcp/src/lib.rs | 2 +- 7 files changed, 576 insertions(+), 1 deletion(-) create mode 100644 crates/goose-mcp/src/computercontroller/pdf_tool.rs create mode 100644 crates/goose-mcp/src/computercontroller/tests/data/test.pdf create mode 100644 crates/goose-mcp/src/computercontroller/tests/data/test_image.pdf diff --git a/Cargo.lock b/Cargo.lock index 2f3c59dd..9982d5ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,6 +17,17 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + [[package]] name = "ahash" version = "0.8.11" @@ -896,6 +907,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + [[package]] name = "brotli" version = "7.0.0" @@ -951,6 +971,12 @@ version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +[[package]] +name = "bytecount" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" + [[package]] name = "bytemuck" version = "1.22.0" @@ -997,6 +1023,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + [[package]] name = "cc" version = "1.2.16" @@ -1087,6 +1122,16 @@ dependencies = [ "half", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "clang-sys" version = "1.8.1" @@ -2205,6 +2250,7 @@ dependencies = [ "indoc", "kill_tree", "lazy_static", + "lopdf", "mcp-core", "mcp-server", "once_cell", @@ -2860,6 +2906,16 @@ version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "block-padding", + "generic-array", +] + [[package]] name = "interpolate_name" version = "0.2.4" @@ -3171,6 +3227,30 @@ dependencies = [ "imgref", ] +[[package]] +name = "lopdf" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7c1d3350d071cb86987a6bcb205c7019a0eb70dcad92b454fec722cca8d68b" +dependencies = [ + "aes", + "cbc", + "chrono", + "encoding_rs", + "flate2", + "indexmap 2.7.1", + "itoa", + "log", + "md-5", + "nom", + "nom_locate", + "rangemap", + "rayon", + "thiserror 2.0.11", + "time", + "weezl", +] + [[package]] name = "macro_rules_attribute" version = "0.2.0" @@ -3303,6 +3383,16 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + [[package]] name = "memchr" version = "2.7.4" @@ -3461,6 +3551,17 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nom_locate" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e3c83c053b0713da60c5b8de47fe8e494fe3ece5267b2f23090a07a053ba8f3" +dependencies = [ + "bytecount", + "memchr", + "nom", +] + [[package]] name = "noop_proc_macro" version = "0.3.0" @@ -4152,6 +4253,12 @@ dependencies = [ "getrandom 0.2.15", ] +[[package]] +name = "rangemap" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" + [[package]] name = "rav1e" version = "0.7.1" diff --git a/crates/goose-mcp/Cargo.toml b/crates/goose-mcp/Cargo.toml index 864ff82b..7286774c 100644 --- a/crates/goose-mcp/Cargo.toml +++ b/crates/goose-mcp/Cargo.toml @@ -39,6 +39,7 @@ regex = "1.11.1" once_cell = "1.20.2" ignore = "0.4" temp-env = "0.3" +lopdf = "0.35.0" [dev-dependencies] serial_test = "3.0.0" diff --git a/crates/goose-mcp/src/computercontroller/mod.rs b/crates/goose-mcp/src/computercontroller/mod.rs index 832814b6..6a1688df 100644 --- a/crates/goose-mcp/src/computercontroller/mod.rs +++ b/crates/goose-mcp/src/computercontroller/mod.rs @@ -19,6 +19,8 @@ use mcp_core::{ use mcp_server::router::CapabilitiesBuilder; use mcp_server::Router; +mod pdf_tool; + mod platform; use platform::{create_system_automation, SystemAutomation}; @@ -232,6 +234,33 @@ impl ComputerControllerRouter { }), ); + let pdf_tool = Tool::new( + "pdf_tool", + indoc! {r#" + Process PDF files to extract text and images. + Supports operations: + - extract_text: Extract all text content from the PDF + - extract_images: Extract and save embedded images to PNG files + + Use this when there is a .pdf file or files that need to be processed. + "#}, + json!({ + "type": "object", + "required": ["path", "operation"], + "properties": { + "path": { + "type": "string", + "description": "Path to the PDF file" + }, + "operation": { + "type": "string", + "enum": ["extract_text", "extract_images"], + "description": "Operation to perform on the PDF" + } + } + }), + ); + // choose_app_strategy().cache_dir() // - macOS/Linux: ~/.cache/goose/computer_controller/ // - Windows: ~\AppData\Local\Block\goose\cache\computer_controller\ @@ -359,6 +388,7 @@ impl ComputerControllerRouter { quick_script_tool, computer_control_tool, cache_tool, + pdf_tool, ], cache_dir, active_resources: Arc::new(Mutex::new(HashMap::new())), @@ -653,6 +683,20 @@ impl ComputerControllerRouter { } // Implement cache tool functionality + async fn pdf_tool(&self, params: Value) -> Result, ToolError> { + let path = params + .get("path") + .and_then(|v| v.as_str()) + .ok_or_else(|| ToolError::InvalidParameters("Missing 'path' parameter".into()))?; + + let operation = params + .get("operation") + .and_then(|v| v.as_str()) + .ok_or_else(|| ToolError::InvalidParameters("Missing 'operation' parameter".into()))?; + + crate::computercontroller::pdf_tool::pdf_tool(path, operation, &self.cache_dir).await + } + async fn cache(&self, params: Value) -> Result, ToolError> { let command = params .get("command") @@ -764,6 +808,7 @@ impl Router for ComputerControllerRouter { "automation_script" => this.quick_script(arguments).await, "computer_control" => this.computer_control(arguments).await, "cache" => this.cache(arguments).await, + "pdf_tool" => this.pdf_tool(arguments).await, _ => Err(ToolError::NotFound(format!("Tool {} not found", tool_name))), } }) diff --git a/crates/goose-mcp/src/computercontroller/pdf_tool.rs b/crates/goose-mcp/src/computercontroller/pdf_tool.rs new file mode 100644 index 00000000..f25dde64 --- /dev/null +++ b/crates/goose-mcp/src/computercontroller/pdf_tool.rs @@ -0,0 +1,422 @@ +use lopdf::{content::Content as PdfContent, Document, Object}; +use mcp_core::{Content, ToolError}; +use std::{fs, path::Path}; + +pub async fn pdf_tool( + path: &str, + operation: &str, + cache_dir: &Path, +) -> Result, ToolError> { + // Open and parse the PDF file + let doc = Document::load(path) + .map_err(|e| ToolError::ExecutionError(format!("Failed to open PDF file: {}", e)))?; + + let result = match operation { + "extract_text" => { + let mut text = String::new(); + + // Iterate over each page in the document + for (page_num, page_id) in doc.get_pages() { + text.push_str(&format!("Page {}:\n", page_num)); + + // Try to get text from page contents + if let Ok(page_obj) = doc.get_object(page_id) { + if let Ok(page_dict) = page_obj.as_dict() { + // Try to get text from Contents stream + if let Ok(contents) = + page_dict.get(b"Contents").and_then(|c| c.as_reference()) + { + if let Ok(content_obj) = doc.get_object(contents) { + if let Ok(stream) = content_obj.as_stream() { + if let Ok(content_data) = stream.get_plain_content() { + if let Ok(content) = PdfContent::decode(&content_data) { + // Process each operation in the content stream + for operation in content.operations { + match operation.operator.as_ref() { + // "Tj" operator: show text + "Tj" => { + for operand in operation.operands { + if let Object::String(ref bytes, _) = + operand + { + if let Ok(s) = + std::str::from_utf8(bytes) + { + text.push_str(s); + } + } + } + text.push(' '); + } + // "TJ" operator: show text with positioning + "TJ" => { + if let Some(Object::Array(ref arr)) = + operation.operands.first() + { + let mut last_was_text = false; + for element in arr { + match element { + Object::String( + ref bytes, + _, + ) => { + if let Ok(s) = + std::str::from_utf8( + bytes, + ) + { + if last_was_text { + text.push(' '); + } + text.push_str(s); + last_was_text = true; + } + } + Object::Integer(offset) => { + // Large negative offsets often indicate word spacing + if *offset < -100 { + text.push(' '); + last_was_text = false; + } + } + Object::Real(offset) => { + if *offset < -100.0 { + text.push(' '); + last_was_text = false; + } + } + _ => {} + } + } + text.push(' '); + } + } + _ => (), // Ignore other operators + } + } + } + } + } + } + } + } + } + text.push('\n'); + } + + if text.trim().is_empty() { + "No text found in PDF".to_string() + } else { + format!("Extracted text from PDF:\n\n{}", text) + } + } + + "extract_images" => { + let cache_dir = cache_dir.join("pdf_images"); + fs::create_dir_all(&cache_dir).map_err(|e| { + ToolError::ExecutionError(format!("Failed to create image cache directory: {}", e)) + })?; + + let mut images = Vec::new(); + let mut image_count = 0; + + // Helper function to determine file extension based on stream dict + fn get_image_extension(dict: &lopdf::Dictionary) -> &'static str { + if let Ok(filter) = dict.get(b"Filter") { + match filter { + Object::Name(name) => { + match name.as_slice() { + b"DCTDecode" => ".jpg", + b"JBIG2Decode" => ".jbig2", + b"JPXDecode" => ".jp2", + b"CCITTFaxDecode" => ".tiff", + b"FlateDecode" => { + // PNG-like images often use FlateDecode + // Check color space to confirm + if let Ok(cs) = dict.get(b"ColorSpace") { + if let Ok(name) = cs.as_name() { + if name == b"DeviceRGB" || name == b"DeviceGray" { + return ".png"; + } + } + } + ".raw" + } + _ => ".raw", + } + } + Object::Array(filters) => { + // If multiple filters, check the last one + if let Some(Object::Name(name)) = filters.last() { + match name.as_slice() { + b"DCTDecode" => return ".jpg", + b"JPXDecode" => return ".jp2", + _ => {} + } + } + ".raw" + } + _ => ".raw", + } + } else { + ".raw" + } + } + + // Process each page + for (page_num, page_id) in doc.get_pages() { + let page = doc.get_object(page_id).map_err(|e| { + ToolError::ExecutionError(format!("Failed to get page {}: {}", page_num, e)) + })?; + + let page_dict = page.as_dict().map_err(|e| { + ToolError::ExecutionError(format!( + "Failed to get page dict {}: {}", + page_num, e + )) + })?; + + // Get page resources - handle both direct dict and reference + let resources = match page_dict.get(b"Resources") { + Ok(res) => match res { + Object::Dictionary(dict) => Ok(dict), + Object::Reference(id) => doc + .get_object(*id) + .map_err(|e| { + ToolError::ExecutionError(format!( + "Failed to get resource reference: {}", + e + )) + }) + .and_then(|obj| { + obj.as_dict().map_err(|e| { + ToolError::ExecutionError(format!( + "Resource reference is not a dictionary: {}", + e + )) + }) + }), + _ => Err(ToolError::ExecutionError( + "Resources is neither dictionary nor reference".to_string(), + )), + }, + Err(e) => Err(ToolError::ExecutionError(format!( + "Failed to get Resources: {}", + e + ))), + }?; + + // Look for XObject dictionary - handle both direct dict and reference + let xobjects = match resources.get(b"XObject") { + Ok(xobj) => match xobj { + Object::Dictionary(dict) => Ok(dict), + Object::Reference(id) => doc + .get_object(*id) + .map_err(|e| { + ToolError::ExecutionError(format!( + "Failed to get XObject reference: {}", + e + )) + }) + .and_then(|obj| { + obj.as_dict().map_err(|e| { + ToolError::ExecutionError(format!( + "XObject reference is not a dictionary: {}", + e + )) + }) + }), + _ => Err(ToolError::ExecutionError( + "XObject is neither dictionary nor reference".to_string(), + )), + }, + Err(e) => Err(ToolError::ExecutionError(format!( + "Failed to get XObject: {}", + e + ))), + }; + + if let Ok(xobjects) = xobjects { + for (name, xobject) in xobjects.iter() { + let xobject_id = xobject.as_reference().map_err(|_| { + ToolError::ExecutionError("Failed to get XObject reference".to_string()) + })?; + + let xobject = doc.get_object(xobject_id).map_err(|e| { + ToolError::ExecutionError(format!("Failed to get XObject: {}", e)) + })?; + + if let Ok(stream) = xobject.as_stream() { + // Check if it's an image + if let Ok(subtype) = + stream.dict.get(b"Subtype").and_then(|s| s.as_name()) + { + if subtype == b"Image" { + let extension = get_image_extension(&stream.dict); + + // Get image metadata + let width = stream + .dict + .get(b"Width") + .and_then(|w| w.as_i64()) + .unwrap_or(0); + let height = stream + .dict + .get(b"Height") + .and_then(|h| h.as_i64()) + .unwrap_or(0); + let bpc = stream + .dict + .get(b"BitsPerComponent") + .and_then(|b| b.as_i64()) + .unwrap_or(0); + + // Get the image data + if let Ok(data) = stream.get_plain_content() { + let image_path = cache_dir.join(format!( + "page{}_obj{}_{}{}", + page_num, + xobject_id.0, + String::from_utf8_lossy(name), + extension + )); + + fs::write(&image_path, &data).map_err(|e| { + ToolError::ExecutionError(format!( + "Failed to write image: {}", + e + )) + })?; + + images.push(format!( + "Saved image to: {} ({}x{}, {} bits per component)", + image_path.display(), + width, + height, + bpc + )); + image_count += 1; + } + } + } + } + } + } + } + + if images.is_empty() { + "No images found in PDF".to_string() + } else { + format!("Found {} images:\n{}", image_count, images.join("\n")) + } + } + + _ => { + return Err(ToolError::InvalidParameters(format!( + "Invalid operation: {}. Valid operations are: 'extract_text', 'extract_images'", + operation + ))) + } + }; + + Ok(vec![Content::text(result)]) +} + +#[cfg(test)] +mod tests { + use super::*; + use std::path::PathBuf; + + #[tokio::test] + async fn test_pdf_text_extraction() { + let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .join("src/computercontroller/tests/data/test.pdf"); + let cache_dir = tempfile::tempdir().unwrap().into_path(); + + println!("Testing text extraction from: {}", test_pdf_path.display()); + + let result = pdf_tool(test_pdf_path.to_str().unwrap(), "extract_text", &cache_dir).await; + + assert!(result.is_ok(), "PDF text extraction should succeed"); + let content = result.unwrap(); + assert!(!content.is_empty(), "Extracted text should not be empty"); + let text = content[0].as_text().unwrap(); + println!("Extracted text:\n{}", text); + assert!(text.contains("Page 1"), "Should contain page marker"); + assert!( + text.contains("This is a test PDF"), + "Should contain expected test content" + ); + } + + #[tokio::test] + async fn test_pdf_image_extraction() { + let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .join("src/computercontroller/tests/data/test_image.pdf"); + let cache_dir = tempfile::tempdir().unwrap().into_path(); + + println!("Testing image extraction from: {}", test_pdf_path.display()); + + // Now try image extraction + let result = pdf_tool( + test_pdf_path.to_str().unwrap(), + "extract_images", + &cache_dir, + ) + .await; + + println!("Image extraction result: {:?}", result); + assert!(result.is_ok(), "PDF image extraction should succeed"); + let content = result.unwrap(); + assert!( + !content.is_empty(), + "Image extraction result should not be empty" + ); + let text = content[0].as_text().unwrap(); + println!("Extracted content: {}", text); + + // Should either find images or explicitly state none were found + assert!( + text.contains("Saved image to:") || text.contains("No images found"), + "Should either save images or report none found" + ); + + // If we found images, verify they exist + if text.contains("Saved image to:") { + // Extract the file path from the output + let file_path = text + .lines() + .find(|line| line.contains("Saved image to:")) + .and_then(|line| line.split(": ").nth(1)) + .and_then(|path| path.split(" (").next()) + .expect("Should have a valid file path"); + + println!("Verifying image file exists: {}", file_path); + assert!(PathBuf::from(file_path).exists(), "Image file should exist"); + } + } + + #[tokio::test] + async fn test_pdf_invalid_path() { + let cache_dir = tempfile::tempdir().unwrap().into_path(); + let result = pdf_tool("nonexistent.pdf", "extract_text", &cache_dir).await; + + assert!(result.is_err(), "Should fail with invalid path"); + } + + #[tokio::test] + async fn test_pdf_invalid_operation() { + let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .join("src/computercontroller/tests/data/test.pdf"); + let cache_dir = tempfile::tempdir().unwrap().into_path(); + + let result = pdf_tool( + test_pdf_path.to_str().unwrap(), + "invalid_operation", + &cache_dir, + ) + .await; + + assert!(result.is_err(), "Should fail with invalid operation"); + } +} diff --git a/crates/goose-mcp/src/computercontroller/tests/data/test.pdf b/crates/goose-mcp/src/computercontroller/tests/data/test.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e52e762702d6d762dc106558d71d51625365480f GIT binary patch literal 82188 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ട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 literal 0 HcmV?d00001 diff --git a/crates/goose-mcp/src/lib.rs b/crates/goose-mcp/src/lib.rs index 991159f8..1345d2dd 100644 --- a/crates/goose-mcp/src/lib.rs +++ b/crates/goose-mcp/src/lib.rs @@ -7,7 +7,7 @@ pub static APP_STRATEGY: Lazy = Lazy::new(|| AppStrategyArgs { app_name: "goose".to_string(), }); -mod computercontroller; +pub mod computercontroller; mod developer; mod google_drive; mod jetbrains;