Provider: Mintlify ChromaFs¶
Informative adapter note. Not part of the normative spec.
- System: ChromaFs (Mintlify internal; not open-source at time of writing)
- Backing store: Chroma vector database (docs already indexed for search)
- Native transport: In-process via
just-bashIFileSysteminterface - Conformance target: Level 2 (search)
- Auth: per-user capability token; path tree is pruned per session
Manifest¶
{
"afi_version": "0.1",
"provider": "chromafs",
"provider_version": "1.x",
"profile": 2,
"capabilities": ["stat", "list", "read", "search"],
"search": {
"modes": ["exact", "regex", "semantic"],
"max_results": 100
},
"path": { "case_sensitive": true, "max_length": 512 },
"auth": { "required": true, "methods": ["capability"] }
}
Operation mapping¶
| AFI | ChromaFs |
|---|---|
| bootstrap | Fetch __path_tree__ gzipped JSON document, decompress into in-memory Set<path> and Map<dir, children> |
stat(path) |
Membership check in the in-memory path set + tree metadata |
list(path) |
In-memory Map<dir, children[]> lookup (no network) |
read(path) |
collection.get(ids=[path]) → assemble chunks in order |
search(str) |
Chroma query with where_document={"$contains": str} |
search({semantic}) |
Chroma similarity query on the docs collection |
Access control¶
ChromaFs prunes the path tree by capability before building it, so
unauthorized entries never appear. This matches AFI's
cloaking rule exactly:
not_found is returned uniformly for missing and unauthorized paths.
This pre-pruning pattern is the reference implementation for AFI access control on providers with a per-session capability model.
Notes¶
- ChromaFs is the origin case for the AFI shape — everything AFI standardizes matches ChromaFs's operational surface.
- Because docs are read-only, ChromaFs targets Level 2, not Level 3.
- The in-memory bootstrap makes
list/statsub-millisecond; onlyreadandsearchhit Chroma. - ChromaFs's per-session bootstrap took ChromaFs's session creation time from ~46 seconds (sandbox-based approach) to ~100 milliseconds. AFI providers with similar workloads should follow the same pattern.