Skip to main content

chunk_your_tools/
lib.rs

1//! Tool schema decomposition and recomposition for MCP tool definitions.
2#![allow(
3    clippy::pub_use,
4    clippy::module_name_repetitions,
5    clippy::multiple_crate_versions
6)]
7
8pub mod build;
9pub mod catalog_builder;
10pub mod catalog_io;
11pub mod json_util;
12pub mod paths;
13pub mod policies;
14pub mod retrieve;
15pub mod runtime_config;
16pub mod survivors;
17pub mod tool_entries;
18
19#[cfg(feature = "python")]
20pub mod python;
21
22#[cfg(feature = "node")]
23pub mod node;
24
25#[cfg(feature = "ffi")]
26pub mod bindings;
27
28#[cfg(feature = "ffi")]
29pub mod ffi;
30
31pub use build::{
32    CatalogIndex, build_catalog_index, catalog_tool_count, decompose_tool_schema, dedupe_enums,
33    tool_schema_metadata_from_files,
34};
35pub use catalog_builder::CatalogBuilder;
36pub use catalog_io::{load_catalog_index_from_dir, write_catalog_index};
37pub use paths::{
38    PathConfig, collect_enums, configure as configure_paths, get_root_tool_key,
39    is_catalog_decomposed_path, snapshot as path_snapshot, to_decomposed_key,
40    tool_id_from_decomposed_rel,
41};
42pub use policies::{
43    PolicyContext, ToolKind, ToolPolicy, anthropic_tool_is_mcp, anthropic_tool_is_system,
44    append_description_reinstate_entries, apply_per_tool_overrides, batch_tool_pass_through,
45    catalog_needs_partition, catalog_needs_pruned_recompose, chunk_tool_id,
46    direct_root_optional_chunks_for_tool, drop_recomposed_tools_with_empty_properties,
47    effective_policy, entries_for_policy, filter_recompose_json_entries, full_pass_through,
48    is_decomposed_optional_property_chunk, is_decomposed_tool_root_chunk, is_description_policy,
49    is_direct_root_optional_property_chunk, is_mcp_optional_chunk, is_mcp_root_chunk,
50    is_non_system_chunk, is_non_system_tool_id, is_system_chunk, is_system_optional_chunk,
51    is_system_root_chunk, is_system_tool_id, merge_catalog, merge_tools_preserving_order,
52    mitigate_empty_optional_properties, needs_description_reinstate,
53    needs_empty_optional_mitigation, needs_partition, needs_pruned_recompose,
54    optional_chunks_for_tool, optional_leaf_survived_rerank, parse_tool_kind, parse_tool_policy,
55    parse_tool_policy_pair, partition_catalog, per_tool_policies_from_value,
56    policy_context_from_values, request_pass_through, restore_mcp_tools, restore_system_tools,
57    root_chunk_properties_empty, root_tool_id_from_chunk, scoring_policy, split_anthropic_tools,
58    stash_mcp_tools, stash_system_tools, system_required_enum_values, system_tools_pass_through,
59    tool_id_had_empty_original_root_properties, tool_id_has_empty_decomposed_root,
60    tool_pass_through, tools_for_catalog, uses_pruned_recompose,
61};
62pub use retrieve::{
63    DecomposedCatalog, ProcessGroupsOptions, RemovedChunksOptions, RetrieveOptions,
64    apply_description_reinstate_to_data, build_process_groups_options, chunk_survivor_key,
65    climb_and_merge, deep_merge, extract_input_files, extract_scores, filter_and_sort_enums,
66    group_files, load_catalog_from_dir, parse_json_input, process_groups, removed_chunks,
67    resolve_build_catalog, retrieve_core, retrieve_tools_from_catalog,
68};
69pub use runtime_config::{
70    RuntimeConfig, configure as configure_runtime, decomposed_score, default_mcp_policy,
71    default_system_policy, empty_optional_fallback_k, enum_score, rerank_score,
72    snapshot as runtime_snapshot,
73};
74pub use survivors::{
75    NamedSurvivors, recompose_tools_from_index, recompose_tools_from_names,
76    resolve_survivors_from_names,
77};
78pub use tool_entries::{
79    anthropic_tool_to_catalog_entry, anthropic_tools_to_catalog_entries, build_catalog_from_tools,
80    is_catalog_tool_entry, normalize_tools_for_catalog, prepare_tool_entry, truncate_description,
81};