stata-code 0.12.0__tar.gz → 0.12.1__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.
- {stata_code-0.12.0 → stata_code-0.12.1}/CHANGELOG.md +16 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/PKG-INFO +3 -3
- {stata_code-0.12.0 → stata_code-0.12.1}/pyproject.toml +8 -2
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/__init__.py +1 -1
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/mcp/server.py +1 -1
- {stata_code-0.12.0 → stata_code-0.12.1}/.gitignore +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/LICENSE +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/LICENSE-POLICY.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/PUBLISHING.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/README.en.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/README.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/SCHEMA.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/docs/competitive-landscape.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/docs/design/hard_timeout.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/docs/industry-leader-roadmap.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/docs/quickstart.zh.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/examples/01-basic-regression.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/examples/02-did-card-krueger.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/examples/03-graphs.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/examples/04-multi-session.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/examples/05-large-matrix.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/examples/06-cross-stack-parity-audit.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/examples/07-data-mcp-handoff.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/examples/README.md +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/schema/run_result.schema.json +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/scripts/build_skill_zip.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/scripts/build_standalone.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/scripts/check_github_actions.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/scripts/check_versions.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/scripts/export_schema.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/__main__.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/cli.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/__init__.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/_pool.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/_refs.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/_runtime.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/console.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/daemon.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/errors.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/estimation.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/handoff.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/jobs.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/lint.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/log_artifacts.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/notebook.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/policy.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/provenance.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/run_index.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/runner.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/core/schema.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/doctor.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/kernel/__init__.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/kernel/__main__.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/kernel/assets/logo-32x32.png +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/kernel/assets/logo-64x64.png +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/kernel/assets/logo-svg.svg +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/kernel/kernel.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/mcp/__init__.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/mcp/__main__.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/stata_code/mcp_setup.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/__init__.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/conftest.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/fixtures/.gitkeep +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_agent_ergonomics.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_benchmark.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_bugfix_regressions.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_cancel.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_cli.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_console.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_daemon.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_doctor.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_errors.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_estimation.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_github_actions.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_handoff.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_kernel.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_lint.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_lint_mcp.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_log_artifacts.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_mcp.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_mcp_kernel_extra.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_mcp_transport.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_method_prompts.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_new_tools.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_notebook.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_notebook_phase2.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_policy.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_pool.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_pool_refs_extra.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_provenance.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_public_api.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_real_stata.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_release_versions.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_run_index.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_runner.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_runner_helpers.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_runtime_discovery.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_schema.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_schema_artifact.py +0 -0
- {stata_code-0.12.0 → stata_code-0.12.1}/tests/test_skill_package.py +0 -0
|
@@ -6,6 +6,22 @@ to semver-major.minor for the result schema (see `SCHEMA.md` §6).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## 0.12.1 — 2026-07-28
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **`pip install "stata-code[mcp]"` resolved a broken MCP server.** The extra
|
|
14
|
+
declared `mcp>=1.27` with no upper bound, and the upstream SDK has since
|
|
15
|
+
released 2.0 — a breaking rewrite in which `Server` no longer exposes the
|
|
16
|
+
`list_tools` / `call_tool` decorators this server registers through, and
|
|
17
|
+
`Tool` / `ToolAnnotations` renamed every camelCase field (`inputSchema` →
|
|
18
|
+
`input_schema`, `readOnlyHint` → `read_only_hint`, …). A fresh install
|
|
19
|
+
therefore pulled mcp 2.x and `stata-code-mcp` failed at import. The extra is
|
|
20
|
+
now `mcp>=1.27,<2`; the ceiling comes off together with the 2.x port.
|
|
21
|
+
|
|
22
|
+
Existing installs pinned to mcp 1.x were unaffected. **0.12.0 carries the
|
|
23
|
+
unbounded requirement and should be avoided** — install 0.12.1 or later.
|
|
24
|
+
|
|
9
25
|
## 0.12.0 — 2026-07-28
|
|
10
26
|
|
|
11
27
|
Adds a resident session daemon so the CLI can keep data in memory across
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: stata-code
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.1
|
|
4
4
|
Summary: Agent-native Stata bridge — one core, multiple frontends (MCP, Jupyter, VSCode)
|
|
5
5
|
Project-URL: Homepage, https://github.com/brycewang-stanford/stata-code
|
|
6
6
|
Project-URL: Repository, https://github.com/brycewang-stanford/stata-code
|
|
@@ -25,7 +25,7 @@ Requires-Python: >=3.10
|
|
|
25
25
|
Requires-Dist: pydantic>=2.0
|
|
26
26
|
Provides-Extra: all
|
|
27
27
|
Requires-Dist: ipykernel>=6.0; extra == 'all'
|
|
28
|
-
Requires-Dist: mcp
|
|
28
|
+
Requires-Dist: mcp<2,>=1.27; extra == 'all'
|
|
29
29
|
Provides-Extra: dev
|
|
30
30
|
Requires-Dist: mypy>=1.8; extra == 'dev'
|
|
31
31
|
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
|
|
@@ -34,7 +34,7 @@ Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
|
34
34
|
Provides-Extra: kernel
|
|
35
35
|
Requires-Dist: ipykernel>=6.0; extra == 'kernel'
|
|
36
36
|
Provides-Extra: mcp
|
|
37
|
-
Requires-Dist: mcp
|
|
37
|
+
Requires-Dist: mcp<2,>=1.27; extra == 'mcp'
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
39
39
|
|
|
40
40
|
<p align="center">
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "stata-code"
|
|
7
|
-
version = "0.12.
|
|
7
|
+
version = "0.12.1"
|
|
8
8
|
description = "Agent-native Stata bridge — one core, multiple frontends (MCP, Jupyter, VSCode)"
|
|
9
9
|
# The repo default README (README.md) is Chinese; keep the PyPI long description
|
|
10
10
|
# English by pointing at README.en.md.
|
|
@@ -44,7 +44,13 @@ dev = [
|
|
|
44
44
|
"ruff>=0.4.0",
|
|
45
45
|
"mypy>=1.8",
|
|
46
46
|
]
|
|
47
|
-
|
|
47
|
+
# Upper-bounded deliberately. mcp 2.0 is a breaking rewrite: `Server` dropped
|
|
48
|
+
# the `list_tools` / `call_tool` decorators this server registers through, and
|
|
49
|
+
# `Tool` / `ToolAnnotations` renamed every camelCase field (`inputSchema` →
|
|
50
|
+
# `input_schema`, `readOnlyHint` → `read_only_hint`, ...). Without the ceiling,
|
|
51
|
+
# a fresh `pip install "stata-code[mcp]"` resolves mcp 2.x and the server fails
|
|
52
|
+
# at import. Lift this only together with the 2.x port.
|
|
53
|
+
mcp = ["mcp>=1.27,<2"]
|
|
48
54
|
kernel = ["ipykernel>=6.0"]
|
|
49
55
|
all = ["stata-code[mcp,kernel]"]
|
|
50
56
|
|
|
@@ -102,7 +102,7 @@ from stata_code.core.runner import (
|
|
|
102
102
|
)
|
|
103
103
|
from stata_code.core.schema import RunResult
|
|
104
104
|
|
|
105
|
-
__version__ = "0.12.
|
|
105
|
+
__version__ = "0.12.1"
|
|
106
106
|
|
|
107
107
|
SERVER_INSTRUCTIONS = (
|
|
108
108
|
"Use stata-code for running and inspecting Stata code. Prefer structuredContent "
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|