ChangeX HTTP/REST API: a thin FastAPI wrapper over the changex-core spine so any app or model — local/offline LLMs, or a ChatGPT custom GPT Action consuming /openapi.json — can open, edit, save, and review tracked Word documents over HTTP.
Project description
changex-api
A thin HTTP/REST API over the ChangeX
core spine, so any app or model can drive provenance-first tracked editing of
Word documents over plain HTTP — a local/offline LLM with no function-calling, a
curl script, or a ChatGPT custom GPT Action that imports the
auto-generated OpenAPI schema.
It wraps changex-core and reuses the exact MCP tool semantics
(changex-mcp): an op discriminator selects one small intent, the exact
before substring is always carried so blind overwrites are refused, and an
oversized op is rejected so the model splits the change.
Run
# install (workspace) and launch on 127.0.0.1:8000
uv sync
changex-api # or: python -m changex_api
# custom bind / port:
changex-api --host 0.0.0.0 --port 9000 # non-local host REQUIRES a token:
CHANGEX_API_TOKEN=secret changex-api --host 0.0.0.0
Bind is 127.0.0.1 by default. A non-local host is refused unless
CHANGEX_API_TOKEN is set; when it is, every non-/healthz route requires
Authorization: Bearer <token>.
Endpoints
| Method & path | Purpose |
|---|---|
POST /sessions |
Open a .docx for tracked editing (returns a handle). |
GET /sessions/{handle}/outline |
Bounded, paginated paragraph outline (discover node_ids). |
POST /sessions/{handle}/edit |
One small, intent-named tracked edit. |
POST /sessions/{handle}/save |
Write the native-revisions .docx + .changex journal. |
GET /sessions/{handle}/changes |
The structured provenance journal. |
POST /open |
Passive (no-tool-calling) capture: snapshot a docx. |
POST /seal |
Diff the edited docx vs the baseline; append passive ops. |
POST /report |
Render an HTML/markdown redline (by handle or .changex path). |
GET /healthz |
Liveness probe (never requires auth). |
OpenAPI / function-calling schemas
FastAPI serves the schema at /openapi.json — that file IS the ChatGPT
custom GPT Action schema; point a GPT's Action import at it. Static copies plus
OpenAI/Gemini function-calling schemas live in the repo's integrations/:
integrations/openapi.json— the dumped OpenAPI 3.1 schema (ChatGPT Actions).integrations/openai-functions.json— OpenAItoolsformat.integrations/gemini-functions.json— GeminifunctionDeclarationsformat.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file changex_api-0.1.0.tar.gz.
File metadata
- Download URL: changex_api-0.1.0.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b4ebe354b1e54158c62310d749db13b10fead1b07ee1d6dbfbacc8311a5da42
|
|
| MD5 |
9c88656e0907bd90ace039cead788381
|
|
| BLAKE2b-256 |
3d24ad1fa6bb9b1fbf3453fd1680f7fe08d8819b9646748ddd200436326c4509
|
File details
Details for the file changex_api-0.1.0-py3-none-any.whl.
File metadata
- Download URL: changex_api-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e7d498b3bde193c05fe31fe3201ceaa7689217d706438a20b38aabc5de83210
|
|
| MD5 |
820b39aa06a3bb2e0c0d20e277c6bb97
|
|
| BLAKE2b-256 |
630b097df6dd67a1c5f55c5bd1c6c27a64ca487c43586796c550d429ce913ffa
|