ReadonlyidUnique tracer ID, e.g. 'js:klve' or 'txt:chars' — used as cache-invalidation key
ReadonlylangsSupported file extensions (without leading dot), e.g. ['js', 'mjs', 'cjs'].
Use Object.freeze([...]) when defining. Use [] for universal tracers.
Optional ReadonlyoptionsJSON Schema for tracer-specific options (omit if tracer has no options)
ReadonlyrecordThe tracing function — receives code + fully resolved config, returns steps
Optional ReadonlyverifySemantic validation for cross-field constraints — called after schema validation.
Throw OptionsSemanticInvalidError if constraints are violated.
Omit if no cross-field constraints exist.
The object every tracer package must export. Pass this to
tracing(tracerModule)to get the four pre-bound API wrappers.Example
Remarks
idis the cache-invalidation key — used to detect when a tracer has changed in chainable APIs (embody,embodify). Must be unique across your tracer ecosystem.langsdeclares which file extensions this tracer supports. Chainable APIs use it to decide whether to keep or discard the current code when switching tracers:[]= universal tracer — compatible with any language