code-analysis-client 1.6.263__tar.gz → 1.6.264__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.263 → code_analysis_client-1.6.264}/PKG-INFO +1 -1
  2. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/client.py +2 -1
  3. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/queue_wait.py +14 -5
  4. code_analysis_client-1.6.264/code_analysis_client/version.txt +1 -0
  5. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client.egg-info/PKG-INFO +1 -1
  6. code_analysis_client-1.6.263/code_analysis_client/version.txt +0 -1
  7. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/README.md +0 -0
  8. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/__init__.py +0 -0
  9. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/check_chain.py +0 -0
  10. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/commands_proxy.py +0 -0
  11. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/config.py +0 -0
  12. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/exceptions.py +0 -0
  13. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/file_session.py +0 -0
  14. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/py.typed +0 -0
  15. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/responses.py +0 -0
  16. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/schema_disk_cache.py +0 -0
  17. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/server_api.py +0 -0
  18. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/server_schema.py +0 -0
  19. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/symbol_tree.py +0 -0
  20. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/universal_file.py +0 -0
  21. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/validation.py +0 -0
  22. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/vectorizer_state.py +0 -0
  23. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client/worktree.py +0 -0
  24. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client.egg-info/SOURCES.txt +0 -0
  25. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client.egg-info/dependency_links.txt +0 -0
  26. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client.egg-info/requires.txt +0 -0
  27. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/code_analysis_client.egg-info/top_level.txt +0 -0
  28. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/pyproject.toml +0 -0
  29. {code_analysis_client-1.6.263 → code_analysis_client-1.6.264}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-analysis-client
3
- Version: 1.6.263
3
+ Version: 1.6.264
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
@@ -40,6 +40,7 @@ from code_analysis_client.queue_wait import (
40
40
  invalid_params_error,
41
41
  map_adapter_error,
42
42
  result_from_unified,
43
+ validation_error_code_for_command,
43
44
  )
44
45
  from code_analysis_client.universal_file import UniversalFileClient
45
46
  from code_analysis_client.schema_disk_cache import (
@@ -77,7 +78,7 @@ def _remote_invalid_params_as_client_validation(
77
78
 
78
79
  # Generic commands retain the long-standing client API code. symbol_tree
79
80
  # is the mapped exception: its public contract exposes the JSON-RPC code.
80
- code = -32602 if command == "symbol_tree" else "VALIDATION_ERROR"
81
+ code = validation_error_code_for_command(command)
81
82
  return invalid_params_error(str(error), details.get("data"), code=code)
82
83
 
83
84
 
@@ -104,8 +104,8 @@ def invalid_params_error(
104
104
  The single constructor for the top-level -32602 refusal (``client.py``), a -32602 carried by a
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
- is the server's error ``data`` object, ``field`` its ``field`` entry (else ``"command"``),
108
- ``code`` retains JSON-RPC ``-32602`` unless the server named its own code.
107
+ is the server's error ``data`` object and ``field`` its ``field`` entry (else ``"command"``).
108
+ Callers select the public code according to the command contract.
109
109
  """
110
110
  payload = data if isinstance(data, dict) else {}
111
111
  field = payload.get("field")
@@ -117,6 +117,11 @@ def invalid_params_error(
117
117
  )
118
118
 
119
119
 
120
+ def validation_error_code_for_command(command: Optional[str]) -> str | int:
121
+ """Return the command's public code for a remote invalid-parameter response."""
122
+ return -32602 if command in (None, "symbol_tree") else "VALIDATION_ERROR"
123
+
124
+
120
125
  def command_failed(
121
126
  command: Optional[str], job_id: Optional[str], inner: Dict[str, Any]
122
127
  ) -> CommandFailedError:
@@ -131,6 +136,8 @@ def job_failure(
131
136
  job_id: Optional[str],
132
137
  status_data: Optional[Dict[str, Any]],
133
138
  terminal_event: Optional[Dict[str, Any]] = None,
139
+ *,
140
+ command: Optional[str] = None,
134
141
  ) -> Union[JobFailedError, ClientValidationError]:
135
142
  """Build the error for a job that ended failed / stopped / cancelled.
136
143
 
@@ -156,7 +163,9 @@ def job_failure(
156
163
  error = {"message": str(error) if error else f"job {status}", "status": status}
157
164
  if error.get("code") == -32602:
158
165
  return invalid_params_error(
159
- remote_error_text(error.get("message"), -32602), error.get("data")
166
+ remote_error_text(error.get("message"), -32602),
167
+ error.get("data"),
168
+ code=validation_error_code_for_command(command),
160
169
  )
161
170
  return JobFailedError(job_id, error, status=status)
162
171
 
@@ -167,7 +176,7 @@ def result_from_job_status(
167
176
  """Turn a terminal job status payload into the call result, or raise the matching error."""
168
177
  status = str(status_data.get("status") or "").strip().lower()
169
178
  if status in _FAILED_JOB_STATUSES or status_data.get("error"):
170
- raise job_failure(job_id, status_data)
179
+ raise job_failure(job_id, status_data, command=command)
171
180
  inner = inner_command_result(status_data.get("result"))
172
181
  flagged = (
173
182
  status_data.get("command_success") is False
@@ -237,7 +246,7 @@ def map_adapter_error(
237
246
  status_data = details.get("result_status")
238
247
  if job_id is None and isinstance(status_data, dict):
239
248
  job_id = status_data.get("job_id")
240
- return job_failure(job_id, status_data, terminal)
249
+ return job_failure(job_id, status_data, terminal, command=command)
241
250
  code = details.get("code")
242
251
  if isinstance(code, int) and not isinstance(code, bool):
243
252
  return ClientRemoteResponseError(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-analysis-client
3
- Version: 1.6.263
3
+ Version: 1.6.264
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