code-analysis-client 1.6.261__tar.gz → 1.6.263__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.261 → code_analysis_client-1.6.263}/PKG-INFO +1 -1
  2. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/client.py +8 -3
  3. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/exceptions.py +2 -2
  4. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/queue_wait.py +2 -2
  5. code_analysis_client-1.6.263/code_analysis_client/version.txt +1 -0
  6. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client.egg-info/PKG-INFO +1 -1
  7. code_analysis_client-1.6.261/code_analysis_client/version.txt +0 -1
  8. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/README.md +0 -0
  9. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/__init__.py +0 -0
  10. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/check_chain.py +0 -0
  11. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/commands_proxy.py +0 -0
  12. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/config.py +0 -0
  13. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/file_session.py +0 -0
  14. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/py.typed +0 -0
  15. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/responses.py +0 -0
  16. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/schema_disk_cache.py +0 -0
  17. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/server_api.py +0 -0
  18. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/server_schema.py +0 -0
  19. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/symbol_tree.py +0 -0
  20. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/universal_file.py +0 -0
  21. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/validation.py +0 -0
  22. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/vectorizer_state.py +0 -0
  23. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client/worktree.py +0 -0
  24. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client.egg-info/SOURCES.txt +0 -0
  25. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client.egg-info/dependency_links.txt +0 -0
  26. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client.egg-info/requires.txt +0 -0
  27. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/code_analysis_client.egg-info/top_level.txt +0 -0
  28. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/pyproject.toml +0 -0
  29. {code_analysis_client-1.6.261 → code_analysis_client-1.6.263}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-analysis-client
3
- Version: 1.6.261
3
+ Version: 1.6.263
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
@@ -59,7 +59,7 @@ _SYMBOL_TREE_OMITTED: Any = object()
59
59
 
60
60
 
61
61
  def _remote_invalid_params_as_client_validation(
62
- error: ClientRemoteResponseError,
62
+ error: ClientRemoteResponseError, command: str,
63
63
  ) -> ClientValidationError | None:
64
64
  """Convert the adapter's JSON-RPC invalid-params response for client callers.
65
65
 
@@ -75,7 +75,10 @@ def _remote_invalid_params_as_client_validation(
75
75
  if details.get("code") != -32602:
76
76
  return None
77
77
 
78
- return invalid_params_error(str(error), details.get("data"))
78
+ # Generic commands retain the long-standing client API code. symbol_tree
79
+ # is the mapped exception: its public contract exposes the JSON-RPC code.
80
+ code = -32602 if command == "symbol_tree" else "VALIDATION_ERROR"
81
+ return invalid_params_error(str(error), details.get("data"), code=code)
79
82
 
80
83
 
81
84
  class CodeAnalysisAsyncClient:
@@ -325,7 +328,9 @@ class CodeAnalysisAsyncClient:
325
328
  mapped = map_adapter_error(exc, command, timeout)
326
329
  error: BaseException = exc if mapped is None else mapped
327
330
  if isinstance(error, ClientRemoteResponseError):
328
- validation_error = _remote_invalid_params_as_client_validation(error)
331
+ validation_error = _remote_invalid_params_as_client_validation(
332
+ error, command
333
+ )
329
334
  if validation_error is not None:
330
335
  raise validation_error from exc
331
336
  if error is exc:
@@ -20,7 +20,7 @@ class ClientValidationError(ValueError):
20
20
  ``SESSION_OPEN_IN_EDITOR``) and ``details`` is the server's error details object.
21
21
  """
22
22
 
23
- code = "VALIDATION_ERROR"
23
+ code: str | int = "VALIDATION_ERROR"
24
24
 
25
25
  def __init__(
26
26
  self,
@@ -28,7 +28,7 @@ class ClientValidationError(ValueError):
28
28
  *,
29
29
  field: Optional[str] = None,
30
30
  details: Optional[Dict[str, Any]] = None,
31
- code: Optional[str] = None,
31
+ code: str | int | None = None,
32
32
  ) -> None:
33
33
  """Initialize with optional field, details payload and the server error code."""
34
34
  super().__init__(message)
@@ -97,7 +97,7 @@ def remote_error_text(message: Any, code: Any) -> str:
97
97
 
98
98
 
99
99
  def invalid_params_error(
100
- message: str, data: Any, *, code: Optional[str] = None
100
+ message: str, data: Any, *, code: str | int = -32602
101
101
  ) -> ClientValidationError:
102
102
  """Build the :class:`ClientValidationError` for a server refusal of a command's parameters.
103
103
 
@@ -105,7 +105,7 @@ def invalid_params_error(
105
105
  failed job (``job_failure``) and a refused command-session open with the server's own error
106
106
  code (``map_adapter_error``), so ``code`` / ``field`` / ``details`` have one shape: ``details``
107
107
  is the server's error ``data`` object, ``field`` its ``field`` entry (else ``"command"``),
108
- ``code`` ``VALIDATION_ERROR`` unless the server named its own code.
108
+ ``code`` retains JSON-RPC ``-32602`` unless the server named its own code.
109
109
  """
110
110
  payload = data if isinstance(data, dict) else {}
111
111
  field = payload.get("field")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-analysis-client
3
- Version: 1.6.261
3
+ Version: 1.6.263
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