Interface: VcsAdapter
Defined in: packages/core/src/application/ports/vcs-adapter.ts:16
Port for querying version-control system state.
Provides technology-neutral VCS operations that use cases and CLI commands need — repository root for path resolution, current branch for context, working-tree cleanliness as a safety guard, current revision reference, and file content retrieval at a given revision.
Implementations exist for git, hg, svn, and a null fallback for environments with no VCS.
Unlike the repository ports, VcsAdapter has no invariant constructor
arguments shared across all implementations, so it is declared as an
interface rather than an abstract class.
Methods
branch()
branch():
Promise<string>
Defined in: packages/core/src/application/ports/vcs-adapter.ts:36
Returns the name of the currently checked-out branch.
Returns "HEAD" (git) or an equivalent in detached/unknown state.
Returns
Promise<string>
Current branch name
Throws
When the current working directory is not inside a VCS repository
isClean()
isClean():
Promise<boolean>
Defined in: packages/core/src/application/ports/vcs-adapter.ts:44
Returns true when the working tree has no uncommitted changes.
Returns
Promise<boolean>
true if working tree is clean, false if there are uncommitted changes
Throws
When the current working directory is not inside a VCS repository
ref()
ref():
Promise<string|null>
Defined in: packages/core/src/application/ports/vcs-adapter.ts:53
Returns the short revision identifier for the current commit/changeset.
Returns null when VCS is unavailable or the repository has no commits.
Returns
Promise<string | null>
Short revision hash/id, or null
rootDir()
rootDir():
Promise<string>
Defined in: packages/core/src/application/ports/vcs-adapter.ts:26
Returns the absolute path to the root of the current repository.
Useful for resolving all other project-relative paths (specs, changes, archive, schemas).
Returns
Promise<string>
Absolute path to the repository root
Throws
When the current working directory is not inside a VCS repository
show()
show(
ref,filePath):Promise<string|null>
Defined in: packages/core/src/application/ports/vcs-adapter.ts:64
Returns the content of a file at a given revision.
Returns null when the revision or file path does not exist.
Parameters
ref
string
Revision identifier (e.g. commit hash, branch name)
filePath
string
Repository-relative path to the file
Returns
Promise<string | null>
File content as a string, or null