SEIF Docs

seif-ls

bin/seif-ls speaks LSP 3.17 over stdio (Content-Length framing). Logs never share stdout with protocol messages. Open a workspace containing seif.yaml or legacy context-project.json. Full document synchronization evaluates unsaved configuration without saving it. External edits invalidate cached sections and diagnostics.

Capabilities: code lenses, hover, diagnostics, quick fixes, seif.resolve command. The notifications seif/contextWindow and seif/sections expose the exact same context-lab.v1 facts used by the native app. Client decorations show selected, cut-by-rule, excluded, not-applicable and UNKNOWN with reasons. Lenses show estimated tokens (ceil(chars/4)), referring tests and selection frequency among locally retained traces; absent traces are UNKNOWN, never 0%.

CodeMeaning
SEIF-W142Currentness exclusion lacks a forbid test
SEIF-W143No profile permits selecting the section
SEIF-W145Broken or escaping local link
SEIF-W146Out of date: older than its area's freshness rule (quick fixes: mark as reviewed today, forbid)
SEIF-W147No review date under a freshness rule that needs one (quick fix: mark as reviewed today)
SEIF-I148Saved but not in use yet: the file is read from Git at a commit (commit the change)
SEIF-E201Token budget cannot contain the context
SEIF-E202Invalid project/frontmatter YAML
SEIF-E203Credential detected
SEIF-E204Internal material reaches an unrestricted consumer

Quick fixes return standard WorkspaceEdits: Add forbid test, Move to archive/ (whole file), Pin as required (layer). The editor shows and applies edits. Forbid expectations address material locators and are evaluated by the same engine test assertions.

Install adapters/vscode as a development extension (npm ci, then launch VS Code or Cursor with --extensionDevelopmentPath=<absolute adapters/vscode>). Set seif.runtimeDirectory to the runtime folder if the extension is copied elsewhere. Commands: SEIF: Resolve Query, Context Window, Open REPL. The webview uses a restrictive CSP and inserts all project content as text. No extension marketplace publication is required. The native app uses the shared API directly and labels that connection.