shared_tools 0.3.1 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -16
  3. data/README.md +257 -262
  4. data/lib/shared_tools/browser_tool.rb +5 -0
  5. data/lib/shared_tools/calculator_tool.rb +4 -0
  6. data/lib/shared_tools/clipboard_tool.rb +4 -0
  7. data/lib/shared_tools/composite_analysis_tool.rb +4 -0
  8. data/lib/shared_tools/computer_tool.rb +5 -0
  9. data/lib/shared_tools/cron_tool.rb +4 -0
  10. data/lib/shared_tools/current_date_time_tool.rb +4 -0
  11. data/lib/shared_tools/data_science_kit.rb +4 -0
  12. data/lib/shared_tools/database.rb +4 -0
  13. data/lib/shared_tools/database_query_tool.rb +4 -0
  14. data/lib/shared_tools/database_tool.rb +5 -0
  15. data/lib/shared_tools/disk_tool.rb +5 -0
  16. data/lib/shared_tools/dns_tool.rb +4 -0
  17. data/lib/shared_tools/doc_tool.rb +5 -0
  18. data/lib/shared_tools/error_handling_tool.rb +4 -0
  19. data/lib/shared_tools/eval_tool.rb +5 -0
  20. data/lib/shared_tools/mcp/brave_search_client.rb +37 -0
  21. data/lib/shared_tools/mcp/chart_client.rb +32 -0
  22. data/lib/shared_tools/mcp/github_client.rb +38 -0
  23. data/lib/shared_tools/mcp/hugging_face_client.rb +43 -0
  24. data/lib/shared_tools/mcp/memory_client.rb +33 -0
  25. data/lib/shared_tools/mcp/notion_client.rb +40 -0
  26. data/lib/shared_tools/mcp/sequential_thinking_client.rb +33 -0
  27. data/lib/shared_tools/mcp/slack_client.rb +54 -0
  28. data/lib/shared_tools/mcp/streamable_http_patch.rb +42 -0
  29. data/lib/shared_tools/mcp/tavily_client.rb +41 -0
  30. data/lib/shared_tools/mcp.rb +45 -16
  31. data/lib/shared_tools/system_info_tool.rb +4 -0
  32. data/lib/shared_tools/tools/browser/base_tool.rb +8 -12
  33. data/lib/shared_tools/tools/browser/click_tool.rb +4 -2
  34. data/lib/shared_tools/tools/browser/ferrum_driver.rb +119 -0
  35. data/lib/shared_tools/tools/browser/inspect_tool.rb +4 -2
  36. data/lib/shared_tools/tools/browser/page_inspect_tool.rb +4 -2
  37. data/lib/shared_tools/tools/browser/page_screenshot_tool.rb +19 -7
  38. data/lib/shared_tools/tools/browser/selector_inspect_tool.rb +4 -2
  39. data/lib/shared_tools/tools/browser/text_field_area_set_tool.rb +4 -2
  40. data/lib/shared_tools/tools/browser/visit_tool.rb +4 -2
  41. data/lib/shared_tools/tools/browser.rb +31 -2
  42. data/lib/shared_tools/tools/browser_tool.rb +6 -0
  43. data/lib/shared_tools/tools/clipboard_tool.rb +69 -144
  44. data/lib/shared_tools/tools/composite_analysis_tool.rb +60 -4
  45. data/lib/shared_tools/tools/computer/mac_driver.rb +37 -4
  46. data/lib/shared_tools/tools/cron_tool.rb +237 -379
  47. data/lib/shared_tools/tools/current_date_time_tool.rb +54 -120
  48. data/lib/shared_tools/tools/data_science_kit.rb +63 -13
  49. data/lib/shared_tools/tools/dns_tool.rb +335 -269
  50. data/lib/shared_tools/tools/doc/docx_reader_tool.rb +107 -0
  51. data/lib/shared_tools/tools/doc/spreadsheet_reader_tool.rb +171 -0
  52. data/lib/shared_tools/tools/doc/text_reader_tool.rb +57 -0
  53. data/lib/shared_tools/tools/doc.rb +3 -0
  54. data/lib/shared_tools/tools/doc_tool.rb +101 -6
  55. data/lib/shared_tools/tools/docker/compose_run_tool.rb +1 -1
  56. data/lib/shared_tools/tools/enabler.rb +42 -0
  57. data/lib/shared_tools/tools/error_handling_tool.rb +3 -1
  58. data/lib/shared_tools/tools/notification/base_driver.rb +51 -0
  59. data/lib/shared_tools/tools/notification/linux_driver.rb +115 -0
  60. data/lib/shared_tools/tools/notification/mac_driver.rb +66 -0
  61. data/lib/shared_tools/tools/notification/null_driver.rb +29 -0
  62. data/lib/shared_tools/tools/notification.rb +12 -0
  63. data/lib/shared_tools/tools/notification_tool.rb +99 -0
  64. data/lib/shared_tools/tools/system_info_tool.rb +130 -343
  65. data/lib/shared_tools/tools/workflow_manager_tool.rb +32 -0
  66. data/lib/shared_tools/utilities.rb +193 -0
  67. data/lib/shared_tools/version.rb +1 -1
  68. data/lib/shared_tools/weather_tool.rb +4 -0
  69. data/lib/shared_tools/workflow_manager_tool.rb +4 -0
  70. data/lib/shared_tools.rb +28 -38
  71. metadata +74 -9
  72. data/lib/shared_tools/mcp/github_mcp_server.rb +0 -58
  73. data/lib/shared_tools/mcp/imcp.rb +0 -28
  74. data/lib/shared_tools/mcp/tavily_mcp_server.rb +0 -44
  75. data/lib/shared_tools/tools/devops_toolkit.rb +0 -420
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e5775624c9ae2d7f0fb1a47c515b2dbe7316faaee9de7bc62823e0d602274a0a
4
- data.tar.gz: 480df1266dc12f1bd4104ef3f80a78b895ac22ebf149b9090f0bcf679bcb8a99
3
+ metadata.gz: 77d4fd4712e3a0eff81653da54bafa994746c6334780e95862379a943c3b5274
4
+ data.tar.gz: fd504802d298371efe604e341e9a339fef42acecf2ff47148d70007efe901c44
5
5
  SHA512:
6
- metadata.gz: 00a01f1113bb7e728b00aa196f998850c66246d4e5e26d7e1db16d0314bf3f2993f1632dafe964ea347690a6a03a9e9c04440ed47ef1f1870c858c1f2eda3aed
7
- data.tar.gz: 613fbbae8478fa3b805d368102e31cf9c9709e16f954f87a8fea10aa8f148550147f884b68956714eb817cd6288b1f4213b3612ea887ad502e8be8d13973db74
6
+ metadata.gz: f14ebee5d9ceb6fadfafa19af5bfc18c0ece33ba4d2d6894f2c4192e5ffe9abf41e8f3f4f8a109f2ab646b0ac076b9b3f530839af1dd4f979a7ba3c88b19cab0
7
+ data.tar.gz: '0428dda46694b2f0eebb6112884a45f1d33e3a43dd23938598c1b4e3ca9163446b4033c8f1273c6f782047dc4d3c62d6d4b3ffdaff7173cacbfbe4f212a194dd'
data/CHANGELOG.md CHANGED
@@ -1,22 +1,52 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
4
-
5
3
  ## Released
6
- ### [0.3.1] 2025-12-17
7
-
8
- - added ClipboardTool for cross-platform clipboard read/write operations
9
- - added CronTool for cron expression parsing and scheduling
10
- - added CurrentDateTimeTool for date/time retrieval with timezone support
11
- - added DnsTool for DNS lookups and resolution
12
- - added SystemInfoTool for system information retrieval
13
- - updated gem dependencies and Zeitwerk configuration
14
- - improved BrowserTool, ComputerTool, and DatabaseTool implementations
15
- - updated GitHub Pages deployment workflow
16
- - fixed a problem with eager loading when used with the `aia` gem
17
-
18
- ### [0.3.0] 2025-11-08
19
- - changed focus of shared_tools to only support the ruby_llm and ruby_llm-mcp ecosystem
4
+
5
+ ### [0.4.1] - 2026-03-26
6
+
7
+ #### MCP Clients
8
+ - Added `SharedTools.mcp_status` prints a formatted table of loaded vs. skipped clients
9
+ - Added `SharedTools.mcp_loaded` returns array of successfully loaded client names
10
+ - Added `SharedTools.mcp_failed` returns hash of skipped client names mapped to their error messages
11
+ - Added `SharedTools.record_mcp_result` thread-safe internal method used by `mcp.rb` to record each client's load outcome
12
+ - Fixed `mcp.rb` thread exception handling: changed `rescue => e` to `rescue Exception => e` so `LoadError` (a `ScriptError`, not a `StandardError`) is caught and the thread does not terminate with an unhandled exception
13
+ - Added SSE line-ending normalization patch (`mcp/streamable_http_patch.rb`) for MCP servers that mix `\n` and `\r\n` line endings in SSE responses (e.g. Tavily), fixing a 30-second `tools/list` timeout
14
+ - Added brew-installed MCP clients: Notion (`notion_client.rb`), Slack (`slack_client.rb`), Hugging Face (`hugging_face_client.rb`)
15
+ - All `package_install` methods now raise `LoadError` on failure (consistent with `verify_envars`)
16
+ - Added demo scripts: `examples/mcp/notion_demo.rb`, `examples/mcp/slack_demo.rb`, `examples/mcp/hugging_face_demo.rb`
17
+
18
+ #### Tests
19
+ - Added `test/shared_tools/utilities_test.rb` — 28 tests covering `verify_envars`, `brew_install`, `npm_install`, `gem_install`, `package_install`, and MCP load tracking methods
20
+ - Added `test/shared_tools/mcp/streamable_http_patch_test.rb` — 15 tests covering SSE buffer normalization for all line-ending variants (`\n\n`, `\r\n\r\n`, mixed `\n\r\n`, bare `\r`)
21
+
22
+ #### Documentation
23
+ - Updated `README.md` with MCP Clients section covering all three transport categories
24
+ - Updated `examples/README.md` with entries for all 10 `examples/mcp/` demos and expanded environment variables table
25
+ - Updated `docs/getting-started/installation.md` with MCP client setup section
26
+ - Updated `docs/index.md` and `lib/shared_tools/mcp/README.md` with Notion, Slack, and Hugging Face client details
27
+
28
+ ### [0.4.0] - 2026-03-25
29
+
30
+ #### MCP Clients
31
+ - Added Tavily MCP client (`mcp/tavily_client.rb`) — AI-optimized web search via remote HTTP transport
32
+ - Added GitHub MCP client (`mcp/github_client.rb`) — repos, issues, PRs, code search via brew-installed binary
33
+ - Added Memory MCP client (`mcp/memory_client.rb`) — persistent knowledge graph via npx
34
+ - Added Sequential Thinking MCP client (`mcp/sequential_thinking_client.rb`) — chain-of-thought reasoning via npx
35
+ - Added Chart MCP client (`mcp/chart_client.rb`) — chart generation via npx
36
+ - Added Brave Search MCP client (`mcp/brave_search_client.rb`) — web/news search via npx
37
+ - Added `mcp.rb` bulk loader — requires all available clients concurrently in parallel threads; missing-key clients silently skipped
38
+ - Added `SharedTools.verify_envars` — raises `LoadError` listing missing environment variable names
39
+ - Added `SharedTools.package_install`, `brew_install`, `apt_install`, `dnf_install`, `npm_install`, `gem_install` in `utilities.rb`
40
+
41
+ #### Tools
42
+ - Added `NotificationTool` — cross-platform desktop notifications (`notify`), modal alert dialogs (`alert`), and text-to-speech (`speak`) for macOS and Linux
43
+ - Added screenshot capability to `BrowserTool`
44
+ - Added array argument support to `Docker::ComposeRunTool`
45
+
46
+ #### Examples
47
+ - Added `examples/mcp/` subdirectory with individual demo scripts for each MCP client
48
+ - Added `examples/mcp/common.rb` shared helper for MCP demos
49
+
20
50
 
21
51
  ### [0.2.1] 2025-07-03
22
52
  - iMCP server app for MacOS is noisy logger so redirect stderr to /dev/null