docs(phase6): add Advanced Context Curation guide and C/C++ AST tools
This commit is contained in:
@@ -88,6 +88,38 @@ These use `file_cache.ASTParser` (tree-sitter) or stdlib `ast` for structural co
|
||||
| `py_get_hierarchy` | `path`, `class_name` | Scans directory for subclasses of a given class. |
|
||||
| `py_get_docstring` | `path`, `name` | Extracts docstring for module, class, or function. |
|
||||
|
||||
### C/C++ AST Tools
|
||||
|
||||
These use `tree_sitter` via `src/mcp_client.py` for structural analysis of C and C++ codebases. Phase 6 added these tools to support the Granular AST Control feature.
|
||||
|
||||
| Tool | Parameters | Description |
|
||||
|---|---|---|
|
||||
| `ts_c_get_skeleton` | `path` | C/C++ function signatures and struct definitions, bodies replaced with `...`. |
|
||||
| `ts_cpp_get_skeleton` | `path` | C++ class/struct signatures, method signatures, and inheritance info. |
|
||||
| `ts_c_get_code_outline` | `path` | Hierarchical C outline: `[Struct] Name (Lines X-Y)` with nested members. |
|
||||
| `ts_cpp_get_code_outline` | `path` | Hierarchical C++ outline with classes, methods, inheritance hierarchy. |
|
||||
| `ts_c_get_definition` | `path`, `name` | Full source of a specific C struct or function. |
|
||||
| `ts_cpp_get_definition` | `path`, `name` | Full source of a specific C++ class, struct, or method. Supports `ClassName::method` notation. |
|
||||
| `ts_c_update_definition` | `path`, `name`, `new_content` | Surgical replacement for C definitions. |
|
||||
| `ts_cpp_update_definition` | `path`, `name`, `new_content` | Surgical replacement for C++ definitions. |
|
||||
| `ts_c_get_signature` | `path`, `name` | Only the function/struct declaration line. |
|
||||
| `ts_cpp_get_signature` | `path`, `name` | Only the method/function declaration line. |
|
||||
|
||||
**Usage for Context Curation:**
|
||||
|
||||
```python
|
||||
# Fetch outline for AST inspection modal
|
||||
outline = mcp_client.ts_cpp_get_code_outline("path/to/file.hpp")
|
||||
|
||||
# Fetch specific definition for masked inclusion
|
||||
defn = mcp_client.ts_cpp_get_definition("path/to/file.hpp", "MyClass::init")
|
||||
|
||||
# Apply per-symbol masking via FuzzyAnchor
|
||||
from src.fuzzy_anchor import FuzzyAnchor
|
||||
slice_data = FuzzyAnchor.create_slice(content, start_line, end_line)
|
||||
resolved = FuzzyAnchor.resolve_slice(modified_content, slice_data)
|
||||
```
|
||||
|
||||
### Analysis Tools
|
||||
|
||||
| Tool | Parameters | Description |
|
||||
|
||||
Reference in New Issue
Block a user