# AGENTS.md — amduat-api This repo hosts the **API/daemon surface** for Amduat. ## Scope - `vendor/amduat/` is the **core C substrate** (ASL/PEL/TGK libs, codecs, adapters, reference CLIs). - This repo should keep `amduatd` **thin**: HTTP transport, request parsing, auth, and mapping to core library calls. - Do **not** re-implement substrate semantics here; add features to the core repo and call into it. ## Build - Configure: `cmake -S . -B build` - Build: `cmake --build build -j` ## Run (local Unix socket) - Prepare store root (from core tools): `vendor/amduat/build/amduat-asl init --root .amduat-asl` - Start daemon: `./build/amduatd --root .amduat-asl --sock amduatd.sock` ## Submodule workflow - Update core to recorded commit: `git submodule update --init --recursive` - Bump core commit: - `git -C vendor/amduat fetch` - `git -C vendor/amduat checkout ` - `git add vendor/amduat && git commit -m "Bump amduat core"` ## API principles - Single daemon instance = single ASL store root. - Local auth = filesystem permissions on the socket (no extra auth yet). - Prefer streaming/batching endpoints (`missing`/`pack`) before adding complex higher-level APIs. - Keep the on-wire contract versioned (`/v1/...`) and additive.