Metadata-Version: 2.4
Name: atomli-tako-ci
Version: 0.2.3
Summary: Tako Code Interpreter runtime with a minimal, git-distributable slice of the calculation WASM cores and model checkpoints.
Author: Tako
License: Copyright (c) Tako.
        
        Permission to use, copy, and distribute this package and its bundled runtime
        files (tako_ci.py, run.mjs) is granted for the purpose of running Tako
        calculations. The runtime files are distributed under the same terms as the
        Tako project.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
        FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
        COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
        AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
        WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        
        --------------------------------------------------------------------------------
        THIRD-PARTY MODEL CHECKPOINTS
        
        This package bundles the following pre-trained model checkpoints under
        tako_ci/assets/. Each is the property of its respective authors and is governed
        by that model's own upstream license and citation requirements:
        
          - skala-1.1        (Skala exchange-correlation functional)
          - nequix-mp-1      (Nequix, Materials Project training set)
          - nequix-mp-1-pft
          - nequip-s         (NequIP)
        
        Consult the upstream projects for the terms that apply to each checkpoint before
        redistribution or commercial use. The compiled WASM cores (tb_core, mlip_core,
        qc_core) are build artifacts of the Tako calculation engines.
        
Project-URL: Homepage, https://github.com/itsuwari/tako-assets
Project-URL: Source, https://github.com/itsuwari/tako-assets
Keywords: tako,chemistry,wasm,code-interpreter,mlip,dft
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Intended Audience :: Science/Research
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# atomli-tako-ci

The Tako Code Interpreter runtime, packaged for PyPI, with a minimal slice of
the calculation WASM cores and model checkpoints bundled inside the wheel.

It is the `pip` sibling of the npm package `@atomli/tako-ci`. Sandboxes such as
ChatGPT Code Interpreter cannot fetch arbitrary URLs — the only inbound channel
is the package proxy — so Tako delivers its runtime and the assets it needs as an
installable package instead of an over-the-wire download.

## Install

```sh
pip install atomli-tako-ci
```

## Run a job

```sh
python3 -m tako_ci job.json --manifest runtime-manifest.json --output result.tako.zip
```

`job.json` and `runtime-manifest.json` are produced by Tako's `prepare_tako_script`
tool. The runner loads the WASM core (and, for MLIP/Skala jobs, the model
checkpoint), executes the calculation on a Node-compatible host (`node` or
`bun`), and writes a `result.tako.zip` bundle.

## What ships in the wheel

The runner (`tako_ci/tako_ci.py`) resolves every asset named in the runtime
manifest by first looking for a bundled copy under `tako_ci/assets/`, verifying
its SHA-256, and only falling back to a signed network download when the asset is
not present locally.

To stay within a git- and PyPI-friendly size (~35 MB), all three WASM cores plus
the small checkpoints are bundled, while the large model weights are left out:

| Asset | Kind | Size | Runs |
| --- | --- | --- | --- |
| `tb_core` | WASM core | 6.4 MB | GFN2 / g-xTB tight-binding (no model file) |
| `mlip_core` | WASM core | 3.0 MB | NequIP / Nequix models |
| `qc_core` | WASM core | 13 MB | DFT — GGA / mGGA functionals and the Skala functional |
| `nequix-mp-1` | model | 2.8 MB | MLIP |
| `nequix-mp-1-pft` | model | 2.8 MB | MLIP |
| `nequip-s` | model | 5.6 MB | MLIP |
| `skala-1.1` | model | 2.4 MB | QC (DFT surrogate) |

Only the large model weights are left out — the `nequip-l` checkpoint (72 MB)
and the `equiformer` / `equiformer-gradient` checkpoints (486–560 MB). Jobs that
need them fetch them over the network in hosts that allow it; in fetch-restricted
sandboxes those jobs run in the full Tako application instead.

Bundled digests are pinned in `tako_ci/manifest.json`.
