cua-s1.js weights
Browser-ready ONNX exports of Cua's cua-s1 form-filling decision models, for @ai-ecoverse/cua-s1.js and onnxruntime-web. The model, its training data and the planning rules are Cua's work (MIT); this repo only holds the converted checkpoint.
import * as ort from "onnxruntime-web/wasm";
import { loadCuaS1, extractEntities } from "@ai-ecoverse/cua-s1.js";
const model = await loadCuaS1("https://huggingface.co/ai-ecoverse/cua-s1.js/resolve/main/cua-s1-forms", { ort });
const plan = await model.plan("Northwind Clinic - New Patient Registration",
[{ role: "Edit", label: "Phone number", value: "", token: "phone" }],
extractEntities("Tel: (503) 555-0142\nWork phone: (503) 555-0110"));
Contents
| Folder | Source checkpoint | ONNX | Max |Δp| vs PyTorch |
|---|---|---|---|
cua-s1-forms |
cua-ai/cua-s1-forms @ f54adbf |
3.3 MB | 3.2e-06 over 1048 decisions |
Each folder has a manifest.json naming its source commit, the ONNX graph's SHA-256 (checked by the loader) and
the parity measured at export time. The graph and Cua's original JSON sidecar (checkpoint.json: architecture,
tensor signature, training metadata) live under r-<commit>/, so publishing a new checkpoint never changes a file
an older manifest points at.
Conversion
The checkpoint is loaded with cua_s1.model.load_checkpoint, which validates the SHA-256 tensor signature. It is
exported unmodified with the torch.export-based ONNX exporter (opset 18, dynamic batch, context, option and
option-token axes). It takes the byte tensors cua_s1's ByteCollator produces and returns per-option logits and
probabilities. onnxruntime matches PyTorch to within the max |Δp| in the table, on 1,048 decisions from Cua's own
synthetic episode generator, with no argmax flips.
cua-s1 is a research checkpoint trained on synthetic forms. Read Cua's model card and SECURITY.md before relying on it.
Model tree for ai-ecoverse/cua-s1.js
Base model
cua-ai/cua-s1-forms