Skip to content

Supported CLI paths ​

The path and control tables are generated by node scripts/supported-path-matrix.mjs --write. Set CARVE_RS_BIN to the matching Rust binary when automatic discovery finds another build. Each path checks a marked strong span and an empty input control. yes means both commands exit successfully and the target retains the marker with its expected form. partial means a command runs but an assertion fails; no means a command fails. The inventory, known gaps and focused check counts are audit notes recorded at the pinned commits.

Engine commits: JavaScript 94fd3bb1, PHP 162f1c69, Rust bf67f3c6. The script checks each engine artifact against the hashes in the growth data and refuses other commits until the controls and known gaps are reviewed. The Rust growth measurements used a debug build.

Tracked checkout status: JavaScript M spec, PHP M tests/spec, Rust M tests/spec. Only spec submodule checkouts differ from their pinned gitlinks.

SourceTargetJavaScriptPHPRust
carvehtmlyesyesyes
carvemarkdownyesyesyes
carveplainyesyesyes
carveansiyesyesyes
carvecarveyesyesyes
carvejsonyesyesyes
htmlhtmlyesyesyes
htmlmarkdownyesyesyes
htmlplainyesyesyes
htmlansiyesyesyes
htmlcarveyesyesyes
htmljsonyesyesyes
markdownhtmlyesyesyes
markdownmarkdownyesyesyes
markdownplainyesyesyes
markdownansiyesyesyes
markdowncarveyesyesyes
markdownjsonyesyesyes
djothtmlyesyesyes
djotmarkdownyesyesyes
djotplainyesyesyes
djotansiyesyesyes
djotcarveyesyesyes
djotjsonyesyesyes
bbcodehtmlyesyesyes
bbcodemarkdownyesyesyes
bbcodeplainyesyesyes
bbcodeansiyesyesyes
bbcodecarveyesyesyes
bbcodejsonyesyesyes
ast-jsonhtmlyesyesyes
ast-jsonmarkdownyesyesyes
ast-jsonplainyesyesyes
ast-jsonansiyesyesyes
ast-jsoncarveyesyesyes
ast-jsonjsonyesyesyes

Failing controls ​

None.

Render loss control ​

A raw HTML block renders in HTML, reports raw-format-dropped in plain text, and is refused by strict plain text rendering.

ControlJavaScriptPHPRust
Raw block and strict loss gateyesyesyes

AST controls ​

ControlJavaScriptPHPRust
Heading and paragraph source linesyesyesyes
Malformed AST refusal without outputyesyesyes
Excess AST depth refused without outputyesyesyes

Formatter control ​

A heading and a malformed link both reach a stable canonical form on the second pass.

ControlJavaScriptPHPRust
Canonical fixed pointyesyesyes

Import confidence controls ​

A plain Markdown literal reports exact confidence. A marked BBCode construct reports the unsupported assessment as fallback. The shared report schema calls the middle confidence level inferred.

ControlJavaScriptPHPRust
Exact and fallback report statesyesyesyes

Roundtrip export controls ​

A star bullet is exported and imported again. HTML must carry its marker. Empty input is the negative control.

TargetJavaScriptPHPRust
HTMLyesyesyes
Markdownyesyesyes

Render feature controls ​

Each feature uses a Carve document carrying the marker. The negative control is empty input. These checks establish that the marked content reaches each target; they do not assert target-specific structure.

FeatureTargetJavaScriptPHPRust
tablehtmlyesyesyes
tablemarkdownyesyesyes
tableplainyesyesyes
tableansiyesyesyes
tablecarveyesyesyes
tablejsonyesyesyes
captionhtmlyesyesyes
captionmarkdownyesyesyes
captionplainyesyesyes
captionansiyesyesyes
captioncarveyesyesyes
captionjsonyesyesyes
abbreviationhtmlyesyesyes
abbreviationmarkdownyesyesyes
abbreviationplainyesyesyes
abbreviationansiyesyesyes
abbreviationcarveyesyesyes
abbreviationjsonyesyesyes
mathhtmlyesyesyes
mathmarkdownyesyesyes
mathplainyesyesyes
mathansiyesyesyes
mathcarveyesyesyes
mathjsonyesyesyes
literalhtmlyesyesyes
literalmarkdownyesyesyes
literalplainyesyesyes
literalansiyesyesyes
literalcarveyesyesyes
literaljsonyesyesyes

Import feature controls ​

Each case imports the marked source and renders the result to HTML. Empty input is its negative control. A yes checks retained text and the relevant attribute, table, quote or denied URL shape. The focused contract checks cover detailed reports.

ControlJavaScriptPHPRust
HTML attributesyesyesyes
HTML denied URLyesyesyes
HTML empty markyesyesyes
HTML tableyesyesyes
HTML nested containersyesyesyes
BBCode URL attributeyesyesyes
BBCode URL render denialyesyesyes
BBCode empty markyesyesyes
BBCode tableyesyesyes
BBCode nested quoteyesyesyes

Public path inventory ​

Path or optionJavaScriptPHPRust
CLI import: HTML, Markdown, Djot, BBCodeyesyesyes
CLI input: Carve, AST JSONyesyesyes
CLI output: HTML, Markdown, plain, ANSI, Carve, AST JSONyesyesyes
HTML import modes: safe, semantic, roundtripyesyesyes
Import fidelity report and loss gateyesyespartial (source path)
Render loss report, strict gate and roundtrip exportpartialpartialpartial
Canonical formatteryesyespartial at pin (fixed after pin)
Library AST ingest and serializationpartialpartialpartial
Library callbacks and streaming renderpartialpartialpartial
WASM entry pointno (none advertised)no (none advertised)no (none advertised)

A partial inventory cell means an entry point is exposed but these probes cover only part of its contract. The CLI grid above checks every source and target pair; focused checks cover the listed behaviors.

Construct gaps at the audited commits ​

ControlJavaScriptPHPRust
128 Markdown native destinations128/12867/128, fixed after pin78/128
Canonical formatter fixturespassedpassed4 table cases differ, fixed after pin
Markdown literal report locationpassedpassedmissing line:1

Focused checks at these commits ​

  • The import report comparison passed 82 cases across the three engines, including HTML modes and reported loss rows.
  • Seven degradation claims passed across the engines for interactive content, captions and math.
  • AST ingest compared 2,618 documents across the engines with no observed difference.
  • The canonical formatter check passed 88 of 92 fixtures across all three pinned engines. The four Rust table disagreements were fixed after the pin.
  • Focused streaming, source position and AST depth suites passed: JavaScript 25 tests, PHP 33 tests and Rust streaming 7 tests.
  • The AST and formatter controls above cover one position pair, a malformed root, excess depth and a malformed link.
  • Library callbacks and WASM host behavior remain outside the CLI grid. Streaming is covered by the focused suites.

Released under the MIT License.