Bundle
dsh-sympy-calculate
A DeepSeek Harness bundle: the minimal agent preset plus one stateless SymPy tool.
- Source
- 11350613
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 4 days ago
Readme
# SymPy-Calculate
A DeepSeek Harness agent preset based on `minimal`. It adds one stateless
tool, `sympy_calculate`, which runs a complete Python script in a fresh
process against a local SymPy development checkout.
> **Security:** `sympy_calculate` executes arbitrary Python with the current
> user's permissions and inherited environment. It is not sandboxed. Enable
> it only in sessions whose model and permission policy you trust.
## Highlights
- Each call is bounded by a 120-second timeout; stdout and stderr are each capped at 2,000,000 characters.
## Requirements
| Requirement | Version / notes |
| --- | --- |
| DeepSeek Harness | `0.2.0-rc.2` |
| Node.js | `^22.19.0` or `>=24.0.0` |
| pnpm | `11.7.0`; install with `npm install -g pnpm@11.7.0` if missing |
| git | Needed for the SymPy checkout; optional for the HTTPS install |
| Python | 3.x with `venv` and `pip` available |
| SymPy | Local checkout; default root `~/sympy-dev/sympy` |
| Platform | Tested on Ubuntu 24.04.4 LTS only |
Among shipped profiles, install into `web` only. The preset needs the
`agent-preset-registry` service supplied by the web bundle; in `headless`,
`sdk`, `sdk-minimal`, or `acp` it will not be selectable. A custom profile
can use it if that profile supplies `agent-preset-registry`.
## Set up SymPy
The tool uses this checkout root and interpreter candidates:
```text
~/sympy-dev/sympy
~/sympy-dev/sympy/venv/bin/python
~/sympy-dev/sympy/venv/bin/python3
```
On Ubuntu, install the venv tooling first if it is missing:
```sh
sudo apt install -y python3-venv python3-pip
```
Then create the checkout:
```sh
mkdir -p ~/sympy-dev
git clone https://github.com/sympy/sympy.git ~/sympy-dev/sympy
# Optional: use the exact tested SymPy revision.
git -C ~/sympy-dev/sympy checkout 6aabf6ac9eddd1c5141ff9a3a35dcb53a7b02228
python3 -m venv ~/sympy-dev/sympy/venv
~/sympy-dev/sympy/venv/bin/python -m pip install -e ~/sympy-dev/sympy
echo 'venv/' >> ~/sympy-dev/sympy/.git/info/exclude
```
The editable install also installs SymPy's external `mpmath` dependency.
Confirm the checkout before installing the plugin:
```sh
~/sympy-dev/sympy/venv/bin/python -c "import sympy; print(sympy.__version__)"
```
To use another checkout or interpreter, set both variables in the
environment that starts DeepSeek Harness:
| Variable | Default | Meaning |
| --- | --- | --- |
| `SYMPY_ROOT` | `~/sympy-dev/sympy` | Checkout root; also the `PYTHONPATH` |
| `SYMPY_PYTHON` | `<root>/venv/bin/python`, then `python3` | Python interpreter |
## Install
Install into the `web` profile. The commands pin `v1.0.4`, the tested
plugin revision. If `dsh` is already on your `PATH`, replace the
`npx --yes @deepseek-ai/dsh@0.2.0-rc.2` prefix with `dsh`.
HTTPS tarball, recommended because it needs no GitHub SSH key:
```sh
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web add \
https://codeload.github.com/11350613/SymPy-Calculate/tar.gz/v1.0.4
```
<details>
<summary>Alternative installs: GitHub shorthand or a DeepSeek Harness source checkout</summary>
Git shorthand, when GitHub SSH access is already configured:
```sh
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web add \
github:11350613/SymPy-Calculate#v1.0.4
```
From a source checkout, use `pnpm dsh` and prefer the tarball form:
```sh
pnpm dsh plugin --profile web add \
https://codeload.github.com/11350613/SymPy-Calculate/tar.gz/v1.0.4
```
</details>
Start or restart the web profile, then select **SymPy Calculate** when
creating a session.
## Verify
Check that the bundle and preset are in the composed config:
```sh
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 --profile web --dump-config \
| grep "SymPy Calculate"
```
Then start the UI and confirm that **SymPy Calculate** appears in the preset
picker without an error marker:
```sh
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 --profile web --no-open
```
## Usage
`sympy_calculate` expects one complete script:
```json
{
"code": "from sympy import *\n\nx = symbols('x')\nprint(integrate(x**2 / (1 + x**4), (x, -oo, oo)))\n"
}
```
Output:
```text
sqrt(2)*pi/2
```
Because every call starts a fresh interpreter and pays the SymPy import
cost, batch related computations into one script instead of making many
small calls. stdout and stderr are combined; a non-zero exit is returned as
a tool error.
## Troubleshooting
| Symptom | Fix |
| --- | --- |
| `sympy_calculate: no Python interpreter under ...` | Run the SymPy setup above, or export `SYMPY_ROOT` / `SYMPY_PYTHON` before starting `dsh`. |
| Remove the plugin | `npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web remove dsh-sympy-calculate` |
## Tested on
- SymPy-Calculate release: `v1.0.4`
- Ubuntu 24.04.4 LTS
- DeepSeek Harness commit: [deepseek-ai/deepseek-harness@639ed01](https://github.com/deepseek-ai/deepseek-harness/commit/639ed015397290b3745d163aafe02ffee4aa3f84)
- SymPy commit: [sympy/sympy@6aabf6a](https://github.com/sympy/sympy/commit/6aabf6ac9eddd1c5141ff9a3a35dcb53a7b02228)
## Issues
Bug reports and feature requests: <https://github.com/11350613/SymPy-Calculate/issues>
## License
MIT. See [LICENSE](LICENSE).
Install
dsh plugin --profile web add github:11350613/SymPy-Calculate
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-sympy-calculate from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.