code-analysis-client 1.6.259__tar.gz → 1.6.261__tar.gz

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 (29) hide show
  1. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/PKG-INFO +1 -1
  2. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/__init__.py +2 -0
  3. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/client.py +36 -0
  4. code_analysis_client-1.6.261/code_analysis_client/symbol_tree.py +13 -0
  5. code_analysis_client-1.6.261/code_analysis_client/version.txt +1 -0
  6. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client.egg-info/PKG-INFO +1 -1
  7. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client.egg-info/SOURCES.txt +1 -0
  8. code_analysis_client-1.6.259/code_analysis_client/version.txt +0 -1
  9. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/README.md +0 -0
  10. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/check_chain.py +0 -0
  11. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/commands_proxy.py +0 -0
  12. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/config.py +0 -0
  13. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/exceptions.py +0 -0
  14. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/file_session.py +0 -0
  15. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/py.typed +0 -0
  16. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/queue_wait.py +0 -0
  17. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/responses.py +0 -0
  18. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/schema_disk_cache.py +0 -0
  19. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/server_api.py +0 -0
  20. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/server_schema.py +0 -0
  21. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/universal_file.py +0 -0
  22. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/validation.py +0 -0
  23. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/vectorizer_state.py +0 -0
  24. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client/worktree.py +0 -0
  25. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client.egg-info/dependency_links.txt +0 -0
  26. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client.egg-info/requires.txt +0 -0
  27. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/code_analysis_client.egg-info/top_level.txt +0 -0
  28. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/pyproject.toml +0 -0
  29. {code_analysis_client-1.6.259 → code_analysis_client-1.6.261}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-analysis-client
3
- Version: 1.6.259
3
+ Version: 1.6.261
4
4
  Summary: Async JSON-RPC client for the code-analysis MCP server (mcp-proxy-adapter JsonRpcClient)
5
5
  Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
6
6
  Requires-Python: >=3.10
@@ -10,6 +10,7 @@ from __future__ import annotations
10
10
  from pathlib import Path
11
11
 
12
12
  from code_analysis_client.client import CodeAnalysisAsyncClient
13
+ from code_analysis_client.symbol_tree import SymbolTreeNode
13
14
  from code_analysis_client.commands_proxy import ValidatedCommandsProxy
14
15
  from code_analysis_client.config import (
15
16
  DEFAULT_CLIENT_ADAPTER_CONFIG,
@@ -76,6 +77,7 @@ __all__ = [
76
77
  "CST_REMOVED_COMMANDS",
77
78
  "ClientValidationError",
78
79
  "CodeAnalysisAsyncClient",
80
+ "SymbolTreeNode",
79
81
  "CommandFailedError",
80
82
  "FILE_SESSION_COMMANDS",
81
83
  "FILE_SESSION_FACADE_METHODS",
@@ -49,11 +49,14 @@ from code_analysis_client.schema_disk_cache import (
49
49
  )
50
50
  from code_analysis_client.server_schema import fetch_command_schema_from_server
51
51
  from code_analysis_client.exceptions import ClientValidationError
52
+ from code_analysis_client.symbol_tree import SymbolTreeNode
52
53
  from code_analysis_client.validation import (
53
54
  prepare_params_for_schema,
54
55
  validate_params_against_schema,
55
56
  )
56
57
 
58
+ _SYMBOL_TREE_OMITTED: Any = object()
59
+
57
60
 
58
61
  def _remote_invalid_params_as_client_validation(
59
62
  error: ClientRemoteResponseError,
@@ -182,6 +185,39 @@ class CodeAnalysisAsyncClient:
182
185
  self._command_schema_cache.clear()
183
186
  clear_cached_schemas(self._rpc.base_url)
184
187
 
188
+ async def symbol_tree(
189
+ self,
190
+ *,
191
+ project_id: str,
192
+ file_path: str | None = _SYMBOL_TREE_OMITTED,
193
+ source: str | None = _SYMBOL_TREE_OMITTED,
194
+ source_name: str | None = _SYMBOL_TREE_OMITTED,
195
+ worktree_name: str | None = _SYMBOL_TREE_OMITTED,
196
+ options: dict[str, object] | None = _SYMBOL_TREE_OMITTED,
197
+ ) -> list[SymbolTreeNode]:
198
+ """Read declarations without saving raw source or changing project state.
199
+
200
+ Select exactly one of ``file_path`` and ``source``. Raw source requires
201
+ ``source_name``; its extension selects the plugin. Domain failures retain
202
+ the normal ``CommandFailedError`` result; validation uses
203
+ ``ClientValidationError``.
204
+ """
205
+ params: dict[str, Any] = {"project_id": project_id}
206
+ for key, value in (
207
+ ("file_path", file_path),
208
+ ("source", source),
209
+ ("source_name", source_name),
210
+ ("worktree_name", worktree_name),
211
+ ("options", options),
212
+ ):
213
+ if value is not _SYMBOL_TREE_OMITTED:
214
+ params[key] = value
215
+ result = await self.call("symbol_tree", params)
216
+ data = result.get("data")
217
+ if not isinstance(data, list):
218
+ raise RuntimeError("symbol_tree returned a non-list result")
219
+ return data
220
+
185
221
  @property
186
222
  def file_sessions(self) -> FileSessionClient:
187
223
  """Session workflow: ``session_*``, ``subordinate_session_*``, transfer, advisory locks."""
@@ -0,0 +1,13 @@
1
+ """The uniform recursive declaration-tree result."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TypedDict
6
+
7
+
8
+ class SymbolTreeNode(TypedDict):
9
+ """One declaration; kinds belong to language plugins."""
10
+
11
+ name: str
12
+ kind: str
13
+ children: list[SymbolTreeNode]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-analysis-client
3
- Version: 1.6.259
3
+ Version: 1.6.261
4
4
  Summary: Async JSON-RPC client for the code-analysis MCP server (mcp-proxy-adapter JsonRpcClient)
5
5
  Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
6
6
  Requires-Python: >=3.10
@@ -13,6 +13,7 @@ code_analysis_client/responses.py
13
13
  code_analysis_client/schema_disk_cache.py
14
14
  code_analysis_client/server_api.py
15
15
  code_analysis_client/server_schema.py
16
+ code_analysis_client/symbol_tree.py
16
17
  code_analysis_client/universal_file.py
17
18
  code_analysis_client/validation.py
18
19
  code_analysis_client/vectorizer_state.py