Interface: ArtifactParser
Defined in: packages/core/src/application/ports/artifact-parser.ts:322
Domain port that abstracts all file-type-specific parsing, delta application, and serialization. Each supported file format has a corresponding infrastructure adapter implementing this port.
Injected at the application layer — domain services never reference concrete parsers directly.
Properties
fileExtensions
readonlyfileExtensions: readonlystring[]
Defined in: packages/core/src/application/ports/artifact-parser.ts:324
File extensions this adapter handles, e.g. ['.md'] or ['.json'].
Methods
apply()
apply(
ast,delta):DeltaApplicationResult
Defined in: packages/core/src/application/ports/artifact-parser.ts:335
Applies a sequence of delta entries to an AST. All selectors are resolved before any operation is applied — if any selector fails to resolve (no match or ambiguous match), the entire application is rejected with DeltaApplicationError.
Parameters
ast
delta
readonly DeltaEntry[]
Returns
deltaInstructions()
deltaInstructions():
string
Defined in: packages/core/src/application/ports/artifact-parser.ts:368
Returns a format-specific static text block that CompileContext injects
verbatim when delta: true is active for the artifact.
Returns
string
nodeTypes()
nodeTypes(): readonly
NodeTypeDescriptor[]
Defined in: packages/core/src/application/ports/artifact-parser.ts:348
Returns a static description of all addressable node types for this format.
Returns
readonly NodeTypeDescriptor[]
outline()
outline(
ast,options?): readonlyOutlineEntry[]
Defined in: packages/core/src/application/ports/artifact-parser.ts:354
Returns a simplified navigable summary of the artifact's addressable nodes.
CompileContext injects this outline when asking the LLM to generate a delta.
Parameters
ast
options?
OutlineOptions
Returns
readonly OutlineEntry[]
parse()
parse(
content):ArtifactAST
Defined in: packages/core/src/application/ports/artifact-parser.ts:327
Parses artifact content into a normalized AST.
Parameters
content
string
Returns
parseDelta()
parseDelta(
content): readonlyDeltaEntry[]
Defined in: packages/core/src/application/ports/artifact-parser.ts:378
Parses a YAML delta file's raw content into a typed array of delta entries.
Called by ValidateArtifacts on the YAML adapter to convert the raw delta
file into DeltaEntry[] before passing them to apply(). Only the YAML
adapter is expected to return a non-empty result — other adapters may return
an empty array.
Parameters
content
string
Returns
readonly DeltaEntry[]
renderSubtree()
renderSubtree(
node):string
Defined in: packages/core/src/application/ports/artifact-parser.ts:345
Serializes a single AST node and all its descendants back to the artifact's
native format string. Used by ValidateArtifacts to evaluate contentMatches
and by the metadata extraction engine to extract spec content.
Parameters
node
Returns
string
selectorHints()
selectorHints(
outline):Readonly<Record<string,SelectorHintPlaceholders>>
Defined in: packages/core/src/application/ports/artifact-parser.ts:360
Returns root-level selector hint placeholders keyed by node type for the
outline entries returned by outline(...).
Parameters
outline
readonly OutlineEntry[]
Returns
Readonly<Record<string, SelectorHintPlaceholders>>
serialize()
serialize(
ast):string
Defined in: packages/core/src/application/ports/artifact-parser.ts:338
Serializes an AST back to the artifact's native format string.
Parameters
ast
Returns
string