SEIF Docs

Connecting sources

A source is information an agent may receive. Connecting one never grants authority: the Workstation and runtime only read it.

TypeIdentity / revisionNotes
Foldersha256: digest over (locator, content digest) of every included itemHidden files, .git and node_modules are skipped.
Git repositorygit:<commit> of HEADRead directly from the repository — no git executable needed (loose objects, packs and deltas). The committed tree is pinned. Uncommitted changes are reported as WORKTREE_MODIFIED and listed; they are never silently included. A sub-folder of a repository may be connected.
Filecontent digestOne UTF-8 text file.
Inline textcontent digestStored in the project file (secret-scanned).
HTTP / JSONContent digest; optional upstream ETag observationAuthenticated text/document feeds; limits and setup.
MCP resourcesText-resource snapshot digestStreamable HTTP JSON resource discovery/read; supported subset.

Filesystem items are text files only, bounded to 2,000 files, 512 KiB per file and 32 MiB per source; beyond a bound the observation is DEGRADED and declared incomplete. Item identity is source + locator + content digest.

Status is explicit: AVAILABLE, EMPTY, DEGRADED, or UNAVAILABLE with a code (SOURCE_MISSING, NOT_A_GIT_REPOSITORY, SOURCE_NOT_TEXT, GIT_FORMAT_UNSUPPORTED …). A missing source is never treated as empty.

One source, several layers. Bind the source to a layer with optional path patterns, then Feed a layer… in the source Inspector for more (e.g. one support repository → Product documentation docs/**, Pricing pricing/**, Internal notes internal/**).

Pinned vs live. Pinned (default) sources are embedded in each Build: reproducible and portable. A live folder/file source is read by the runtime at request time from the location given in its config.json (liveSources); Builds declare it under unpinned dependencies and its currentness depends on that location.

URL/web sources are not included in this version.