A Sherpa world is a registered document folder. When you register a folder, Sherpa scans its contents, builds a document ledger, and (if an LLM is configured) extracts a knowledge graph into Neo4j and indexes documents into Elasticsearch. All world management endpoints require admin access. Destructive operations (delete, rebind) are fail-closed: they write an audit event before executing and abort if the audit write fails.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/tudoumono/Sherpa/llms.txt
Use this file to discover all available pages before exploring further.
GET /worlds
GET/worlds
List all registered worlds. Admin only.
Response
Array of world records.
POST /worlds
POST/worlds
Register a new folder as a world and trigger an initial ingest. If the folder is already registered, Sherpa checks for changes and re-ingests only if content has changed (idempotent). Admin only.
Windows paths (e.g.
C:\projects\payroll) are automatically converted to their WSL /mnt/c/... equivalents. Symlink roots and paths that overlap the personal workspace directory are rejected.Request body
Absolute path to the folder to register. May be a Windows path or a
/mnt/... WSL path.Display name for the world. Defaults to the folder’s base name.
Internal identifier. Auto-generated from the label if omitted. Must match
^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$.Response
true on success."registered" for a new world, "reran" if the world existed and content changed, "unchanged" if the world existed and no changes were detected.World metadata (
world_id, label, root_path, storage_mode).Ingest run status.
Number of documents in the ledger after ingest.
Whether content changed since the last ingest.
Any warning flags emitted during ingest (e.g. unsupported file types).
Ingest summary:
graph_nodes, graph_edges, es_chunks, plus counts from the scan report.GET /worlds//status
GET/worlds/{wid}/status
Get the current ingest status and statistics for a world. Admin only.
Path parameters
World identifier.
Response
true if the world is accessible.World identifier.
Display name.
Registered root directory path.
ISO 8601 timestamp of the most recent successful sync, or
null.Number of nodes currently in the world’s knowledge graph.
Number of edges currently in the world’s knowledge graph.
Number of document chunks indexed in Elasticsearch.
POST /worlds//refresh
POST/worlds/{wid}/refresh
Re-ingest a world on demand. Sherpa compares the current folder contents to the last-known manifest and re-ingests only if changes are detected (change detection / live-mirror). Admin only.
Path parameters
World identifier.
Response
true on success.World identifier.
Whether any documents changed during this refresh.
Ingest run status.
Number of documents in the ledger after refresh.
Warning flags emitted during ingest.
Updated ingest summary (graph_nodes, graph_edges, es_chunks, etc.).
Human-readable outcome message.
DELETE /worlds/
DELETE/worlds/{wid}
Permanently delete a world — removes derived data (Neo4j graph partition, Elasticsearch index, derived Markdown copies) and the registry entry. The original source folder on disk is not touched. Admin only.
Path parameters
World identifier.
Response
true on success.The deleted world’s identifier.
POST /worlds//rebind
POST/worlds/{wid}/rebind
Change the root directory of an existing world. The old world is completely deleted and rebuilt from the new path. Other worlds are unaffected. Admin only.
Path parameters
World identifier to rebind.
Request body
New absolute directory path (Windows or WSL format).
Optional new display label.
Response
true on success.Updated world metadata.
Ingest run status.
Number of documents after ingest.
Warning flags.
Updated ingest summary.
Human-readable confirmation message.
POST /worlds/diff
POST/worlds/diff
Compare a folder’s current contents against the last ingest manifest without making any changes. If the folder is not yet registered, all files appear as additions (useful for previewing a new registration). Read-only. Admin only.
Request body
Absolute path to the folder to compare (Windows or WSL format).
Response
Containsok, registered (boolean), world_id (if registered), label, root_path, and diff counters (additions, deletions, modifications).
GET /worlds//diff
GET/worlds/{wid}/diff
Show changes between the current folder contents and the last ingest for a registered world. Use this before triggering a refresh to understand what would change. Read-only. Admin only.
Path parameters
World identifier.
Response
Containsok, registered: true, world_id, label, root_path, and diff counters.
POST /worlds//extract
POST/worlds/{wid}/extract
Run LLM-based knowledge extraction on a world’s documents and rebuild the graph. Requires an LLM provider to be configured in settings. Uses a diff cache so re-running on unchanged documents is fast. Admin only.
Path parameters
World identifier.
Request body
Restrict extraction to specific subfolder prefixes. Omit to extract the entire world.
Response
Returnsok, extraction status, graph_nodes, graph_edges, and a full summary object.
POST /worlds//concepts/propose
POST/worlds/{wid}/concepts/propose
Ask the AI to propose business-term ↔ code-item mappings (concept bridges) for human review. Only proposals backed by real DataItem nodes in the graph are returned. No graph changes are made until concepts are confirmed. Admin only.
Path parameters
World identifier.
Request body
Restrict proposals to a specific subfolder. Omit for the entire world.
Response
Returnsok and a proposals list with suggested concept mappings awaiting human approval.
POST /worlds//concepts/confirm
POST/worlds/{wid}/concepts/confirm
Persist approved concept proposals to concepts.json and rebuild the graph to activate the concept bridges. Admin only.
Path parameters
World identifier.
Request body
The subset of proposals (from
POST /worlds/{wid}/concepts/propose) that the reviewer has approved.Response
Returnsok, the number of accepted concepts written, updated graph_nodes, graph_edges, and a full summary.
POST /worlds//concepts/disable
POST/worlds/{wid}/concepts/disable
Add an incorrect auto-generated concept bridge to the deny list and rebuild the graph. Once disabled, the bridge will not reappear on future re-ingests. Admin only.
Path parameters
World identifier.
Request body
The business-term label to disable (e.g.
"消費税率").The code-item node to disassociate. Must contain
parent (module/copybook name) and name (data item name).Response
Returnsok, the disabled entry, updated graph_nodes, graph_edges, and a full summary.
GET /ingest/runs
GET/ingest/runs
List the ingest run history, optionally filtered by world. Admin only.
Query parameters
World identifier to filter by. Omit to list runs for all worlds.
Response
Filter applied, or
null for all worlds.List of ingest run records. Each run includes
world_id, status, created_at, ledger, and flags.POST /ingest/rerun
POST/ingest/rerun
Force a full clean rebuild of a world’s ledger and knowledge graph, ignoring the change-detection manifest. Use this to recover from a corrupted state. Admin only.
Request body
World identifier to rebuild.
Response
World identifier.
Ingest run outcome.
Number of documents after rebuild.
Warning flags emitted during the run.
Confirmation message.