Skip to main content

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 — OpenAI tools format.
  • integrations/gemini-functions.json — Gemini functionDeclarations format.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

changex_api-0.1.7.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

changex_api-0.1.7-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file changex_api-0.1.7.tar.gz.

File metadata

  • Download URL: changex_api-0.1.7.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for changex_api-0.1.7.tar.gz
Algorithm Hash digest
SHA256 67af0f78adb7902012f5c9d9fa1da46b94d1b0c0702921029e7666b0e677f491
MD5 5d3f3bc5c97d8a281ce33dcf5f829512
BLAKE2b-256 5c03e3c6e7f6682ee7c162d143bfa1491f4045c90a8b7f9fc0365fa675cf7c15

See more details on using hashes here.

File details

Details for the file changex_api-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: changex_api-0.1.7-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

Hashes for changex_api-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b5b7c67b6b996193fb7cf03a74649810202bcb4e5577076b16ebb58880d9638a
MD5 6802602911205fd0447d9f5820009e0c
BLAKE2b-256 06ba94cb95e8856b64bdfd4ac9ec7eeaaed2a5fb6bd67a3cfaa77b383cf7999a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page