executable-stories-formatters 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { C as CIInfo, T as TestRunResult, a as TestCaseResult, S as StoryStep, D as DocEntry, b as TestStatus$1, N as NormalizedTicket, A as Attachment, c as DocPhase, O as OtelSpan, d as StepResult, e as CIProvider, R as RawStatus, f as RawAttachment, g as RawRun, h as RawCIInfo, i as adaptJestRun, j as adaptPlaywrightRun, k as adaptVitestRun } from './index-it3Pkmqv.cjs';
2
- export { l as CIInfo, m as CoverageSummary, J as JestAdapterOptions, n as JestAggregatedResult, o as JestFileResult, p as JestTestResult, q as OtelAttributeValue, P as PlaywrightAdapterOptions, r as PlaywrightAnnotation, s as PlaywrightAttachment, t as PlaywrightError, u as PlaywrightLocation, v as PlaywrightStatus, w as PlaywrightTestCase, x as PlaywrightTestResult, y as RawStepEvent, z as RawTestCase, B as STORY_META_KEY, E as StepKeyword, F as StepMode, G as StoryFileReport, H as StoryMeta, I as TestCaseAttempt, K as TestCaseEvidence, V as VitestAdapterOptions, L as VitestSerializedError, M as VitestState, Q as VitestTestCase, U as VitestTestModule, W as VitestTestResult, X as toCIInfo, Y as toRawCIInfo } from './index-it3Pkmqv.cjs';
1
+ import { C as CIInfo, T as TestRunResult, a as TestCaseResult, S as StoryStep, D as DocEntry, b as TestStatus$1, N as NormalizedTicket, A as Attachment, c as DocPhase, O as OtelSpan, d as StepResult, e as CIProvider, R as RawStatus, f as RawAttachment, g as RawRun, h as RawCIInfo, i as adaptJestRun, j as adaptPlaywrightRun, k as adaptVitestRun } from './index-DF16Xl5i.cjs';
2
+ export { l as CIInfo, m as CoverageSummary, J as JestAdapterOptions, n as JestAggregatedResult, o as JestFileResult, p as JestTestResult, q as OtelAttributeValue, P as PlaywrightAdapterOptions, r as PlaywrightAnnotation, s as PlaywrightAttachment, t as PlaywrightError, u as PlaywrightLocation, v as PlaywrightStatus, w as PlaywrightTestCase, x as PlaywrightTestResult, y as RawStepEvent, z as RawTestCase, B as STORY_META_KEY, E as StepKeyword, F as StepMode, G as StoryFileReport, H as StoryMeta, I as TestCaseAttempt, K as TestCaseEvidence, V as VitestAdapterOptions, L as VitestSerializedError, M as VitestState, Q as VitestTestCase, U as VitestTestModule, W as VitestTestResult, X as toCIInfo, Y as toRawCIInfo } from './index-DF16Xl5i.cjs';
3
3
 
4
4
  /**
5
5
  * Notification types for webhook integrations (Slack, Teams).
@@ -150,13 +150,19 @@ interface CanonicalizeOptions {
150
150
  };
151
151
  }
152
152
  /** Output format for report generation */
153
- type OutputFormat = "astro" | "confluence" | "cucumber-json" | "cucumber-messages" | "cucumber-html" | "html" | "junit" | "markdown" | "story-report-json";
153
+ type OutputFormat = "astro" | "behavior-manifest-json" | "confluence" | "cucumber-json" | "cucumber-messages" | "cucumber-html" | "html" | "junit" | "markdown" | "scenario-index-json" | "story-report-json";
154
154
  /** Sort order for test cases in reports (deterministic for diff-friendly output) */
155
155
  type SortTestCasesMode = "id" | "source" | "none";
156
156
  /** Output mode for report routing */
157
157
  type OutputMode = "aggregated" | "colocated";
158
- /** Colocated output style */
159
- type ColocatedStyle = "mirrored" | "adjacent";
158
+ /**
159
+ * Colocated output style:
160
+ * - `mirrored` — preserve the source directory tree under outputDir (default)
161
+ * - `adjacent` — write next to each source file (ignores outputDir)
162
+ * - `flat` — one page per file directly under outputDir, named by its clean
163
+ * stem (e.g. `convert-currency.md`); best for a browsable docs nav
164
+ */
165
+ type ColocatedStyle = "mirrored" | "adjacent" | "flat";
160
166
  /** Output rule for routing reports based on source file patterns */
161
167
  interface OutputRule {
162
168
  /** Glob pattern to match sourceFile (uses micromatch, forward slashes) */
@@ -221,6 +227,16 @@ interface FormatterOptions {
221
227
  /** Pretty-print JSON output. Default: true */
222
228
  pretty?: boolean;
223
229
  };
230
+ /** Scenario index JSON specific options */
231
+ scenarioIndexJson?: {
232
+ /** Pretty-print JSON output. Default: true */
233
+ pretty?: boolean;
234
+ };
235
+ /** Behavior manifest JSON specific options */
236
+ behaviorManifestJson?: {
237
+ /** Pretty-print JSON output. Default: true */
238
+ pretty?: boolean;
239
+ };
224
240
  /** HTML specific options */
225
241
  html?: {
226
242
  /** Report title. Default: "Test Results" */
@@ -387,6 +403,12 @@ interface ResolvedFormatterOptions {
387
403
  storyReportJson: {
388
404
  pretty: boolean;
389
405
  };
406
+ scenarioIndexJson: {
407
+ pretty: boolean;
408
+ };
409
+ behaviorManifestJson: {
410
+ pretty: boolean;
411
+ };
390
412
  cucumberMessages: {
391
413
  uriStrategy: "sourceFile" | "virtual";
392
414
  includeSynthetics: boolean;
@@ -690,7 +712,7 @@ interface ReportCoverageSummary {
690
712
  functionsPct?: number;
691
713
  statementsPct?: number;
692
714
  }
693
- type ReportDocEntry = ReportDocNote | ReportDocTag | ReportDocKv | ReportDocCode | ReportDocTable | ReportDocLink | ReportDocSection | ReportDocMermaid | ReportDocScreenshot | ReportDocCustom;
715
+ type ReportDocEntry = ReportDocNote | ReportDocTag | ReportDocKv | ReportDocCode | ReportDocTable | ReportDocLink | ReportDocSection | ReportDocMermaid | ReportDocScreenshot | ReportDocVideo | ReportDocCustom;
694
716
  interface ReportDocNote {
695
717
  kind: "note";
696
718
  text: string;
@@ -754,6 +776,14 @@ interface ReportDocScreenshot {
754
776
  phase: DocPhase;
755
777
  children?: ReportDocEntry[];
756
778
  }
779
+ interface ReportDocVideo {
780
+ kind: "video";
781
+ path: string;
782
+ caption?: string;
783
+ poster?: string;
784
+ phase: DocPhase;
785
+ children?: ReportDocEntry[];
786
+ }
757
787
  interface ReportDocCustom {
758
788
  kind: "custom";
759
789
  type: string;
@@ -779,6 +809,8 @@ interface ReportScenario {
779
809
  durationMs: number;
780
810
  tags: string[];
781
811
  tickets?: ReportTicket[];
812
+ /** Product-code paths/globs this scenario exercises (project-root-relative). */
813
+ covers?: string[];
782
814
  sourceLine?: number;
783
815
  errorMessage?: string;
784
816
  errorStack?: string;
@@ -1523,6 +1555,185 @@ declare class StoryReportJsonFormatter {
1523
1555
  format(run: TestRunResult): string;
1524
1556
  }
1525
1557
 
1558
+ interface ScenarioIndex {
1559
+ schemaVersion: "1.0";
1560
+ runId: string;
1561
+ generatedAtMs: number;
1562
+ summary: StoryReport["summary"];
1563
+ scenarios: ScenarioIndexItem[];
1564
+ }
1565
+ interface ScenarioIndexItem {
1566
+ id: string;
1567
+ title: string;
1568
+ status: TestStatus;
1569
+ feature: string;
1570
+ sourceFile: string;
1571
+ sourceLine?: number;
1572
+ tags: string[];
1573
+ tickets: Array<{
1574
+ id: string;
1575
+ url?: string;
1576
+ }>;
1577
+ covers: string[];
1578
+ durationMs: number;
1579
+ steps: ScenarioIndexStep[];
1580
+ docKinds: string[];
1581
+ error?: {
1582
+ message: string;
1583
+ stack?: string;
1584
+ };
1585
+ }
1586
+ interface ScenarioIndexStep {
1587
+ id: string;
1588
+ index: number;
1589
+ keyword: ReportStep["keyword"];
1590
+ text: string;
1591
+ status: TestStatus;
1592
+ durationMs: number;
1593
+ errorMessage?: string;
1594
+ docKinds: string[];
1595
+ }
1596
+ interface ScenarioIndexFilters {
1597
+ statuses?: TestStatus[];
1598
+ tags?: string[];
1599
+ sourceFiles?: string[];
1600
+ }
1601
+ interface ScenarioIndexJsonOptions {
1602
+ pretty?: boolean;
1603
+ filters?: ScenarioIndexFilters;
1604
+ }
1605
+ declare class ScenarioIndexJsonFormatter {
1606
+ private options;
1607
+ constructor(options?: ScenarioIndexJsonOptions);
1608
+ toIndex(run: TestRunResult): ScenarioIndex;
1609
+ format(run: TestRunResult): string;
1610
+ }
1611
+ declare function toScenarioIndex(report: StoryReport, filters?: ScenarioIndexFilters): ScenarioIndex;
1612
+
1613
+ interface BehaviorManifest {
1614
+ schemaVersion: "1.0";
1615
+ runId: string;
1616
+ generatedAtMs: number;
1617
+ summary: ScenarioIndex["summary"];
1618
+ sourceFiles: BehaviorSourceFile[];
1619
+ tags: BehaviorTag[];
1620
+ docCoverage: {
1621
+ scenariosWithDocs: number;
1622
+ scenariosWithoutDocs: number;
1623
+ docKinds: string[];
1624
+ };
1625
+ debugger: BehaviorDebuggerIssue[];
1626
+ }
1627
+ interface BehaviorSourceFile {
1628
+ path: string;
1629
+ scenarioCount: number;
1630
+ failed: number;
1631
+ tags: string[];
1632
+ }
1633
+ interface BehaviorTag {
1634
+ name: string;
1635
+ scenarioCount: number;
1636
+ }
1637
+ interface BehaviorDebuggerIssue {
1638
+ severity: "warning";
1639
+ code: "missing-docs" | "missing-tags" | "missing-covers" | "missing-source-line";
1640
+ scenarioId: string;
1641
+ title: string;
1642
+ message: string;
1643
+ }
1644
+ interface BehaviorManifestJsonOptions {
1645
+ pretty?: boolean;
1646
+ }
1647
+ declare class BehaviorManifestJsonFormatter {
1648
+ private pretty;
1649
+ constructor(options?: BehaviorManifestJsonOptions);
1650
+ toManifest(run: TestRunResult): BehaviorManifest;
1651
+ format(run: TestRunResult): string;
1652
+ }
1653
+ declare function toBehaviorManifest(report: StoryReport): BehaviorManifest;
1654
+
1655
+ /**
1656
+ * Return scenarios whose declared `covers` globs match any of the given paths.
1657
+ * Accepts many paths so callers can pass a whole changed-file list (e.g. a git diff).
1658
+ * Results are deduped (filter preserves index order, so each scenario appears once).
1659
+ */
1660
+ declare function scenariosCoveringPaths(index: ScenarioIndex, paths: string[]): ScenarioIndexItem[];
1661
+
1662
+ interface WatchOptions {
1663
+ /** Path to the raw-run (or canonical) JSON the framework adapter writes. */
1664
+ input: string;
1665
+ outputDir: string;
1666
+ outputName: string;
1667
+ formats: OutputFormat[];
1668
+ /** Input is "raw" (default) or already-canonical "canonical". */
1669
+ inputType?: "raw" | "canonical";
1670
+ /** Synthesize story metadata for plain tests (raw input only). Default true. */
1671
+ synthesize?: boolean;
1672
+ /** Coalesce rapid change events. Default 150ms. */
1673
+ debounceMs?: number;
1674
+ }
1675
+ interface RegenerateDeps {
1676
+ readFile?: (filePath: string) => string;
1677
+ }
1678
+ /**
1679
+ * Read a raw-run (or canonical) file and regenerate the requested agent
1680
+ * artifacts via the canonical {@link ReportGenerator}. Returns the written
1681
+ * file paths. This is the unit of work the watcher repeats; it is also useful
1682
+ * standalone for a one-shot regenerate.
1683
+ */
1684
+ declare function regenerateArtifacts(options: WatchOptions, deps?: RegenerateDeps): Promise<string[]>;
1685
+ interface WatchDeps extends RegenerateDeps {
1686
+ /** Watch a path, calling the listener on every change. Injectable for tests. */
1687
+ watch?: (filePath: string, listener: () => void) => {
1688
+ close: () => void;
1689
+ };
1690
+ /** Override the regenerate step (tests). */
1691
+ regenerate?: (input: string) => Promise<string[]>;
1692
+ log?: (message: string) => void;
1693
+ }
1694
+ interface WatchHandle {
1695
+ close: () => void;
1696
+ }
1697
+ /**
1698
+ * Keep the agent artifacts fresh: regenerate them whenever the framework
1699
+ * rewrites its raw-run file. Language-agnostic — any adapter that emits a
1700
+ * raw-run drives it. Pair with the host framework's own `--watch` to get a
1701
+ * behavior index that tracks the code.
1702
+ */
1703
+ declare function startWatch(options: WatchOptions, deps?: WatchDeps): WatchHandle;
1704
+
1705
+ interface BehaviorDiffEntry {
1706
+ id: string;
1707
+ title: string;
1708
+ sourceFile: string;
1709
+ kind: ScenarioChangeKind;
1710
+ baselineStatus?: TestStatus;
1711
+ currentStatus?: TestStatus;
1712
+ }
1713
+ interface BehaviorDiff {
1714
+ schemaVersion: "1.0";
1715
+ summary: {
1716
+ added: number;
1717
+ removed: number;
1718
+ regressed: number;
1719
+ fixed: number;
1720
+ changed: number;
1721
+ unchanged: number;
1722
+ };
1723
+ scenarios: BehaviorDiffEntry[];
1724
+ }
1725
+ /**
1726
+ * Classify a single scenario's status transition between two runs.
1727
+ * Shares the `ScenarioChangeKind` vocabulary with the full compare engine.
1728
+ */
1729
+ declare function classifyStatusChange(baseline: TestStatus | undefined, current: TestStatus | undefined): ScenarioChangeKind;
1730
+ /**
1731
+ * Scenario-level diff of two StoryReports, keyed by scenario id. Reports status
1732
+ * transitions (the agent triage signal), not the full field-by-field diff that
1733
+ * the human-facing compare engine produces.
1734
+ */
1735
+ declare function diffStoryReports(baseline: StoryReport, current: StoryReport): BehaviorDiff;
1736
+
1526
1737
  /**
1527
1738
  * toStoryReport — convert a canonical TestRunResult into the public
1528
1739
  * StoryReport shape consumed by UI renderers.
@@ -1790,13 +2001,27 @@ interface StarlightBadge {
1790
2001
  }
1791
2002
  interface AstroFormatterOptions {
1792
2003
  assetsBaseUrl?: string;
2004
+ /**
2005
+ * Title each page by its own suite/file rather than the configured title.
2006
+ * Set by colocated mode (one page per file) so the docs nav reads with
2007
+ * distinct, meaningful labels.
2008
+ */
2009
+ perFileTitle?: boolean;
1793
2010
  markdown?: Omit<MarkdownOptions, "includeFrontMatter" | "includeSummaryTable" | "includeMetadata" | "stepStyle">;
1794
2011
  }
1795
2012
  declare class AstroFormatter {
1796
2013
  private markdownFormatter;
1797
2014
  private title;
2015
+ private perFileTitle;
1798
2016
  constructor(options?: AstroFormatterOptions);
1799
2017
  format(run: TestRunResult): string;
2018
+ /**
2019
+ * Title for the page. A per-file page (one source file — i.e. colocated mode)
2020
+ * is titled by its suite/describe name, falling back to a humanized filename,
2021
+ * so the docs nav reads "Convert Currency" not "User Stories" six times over.
2022
+ * Multi-file (aggregated) pages keep the configured title.
2023
+ */
2024
+ private deriveTitle;
1800
2025
  private buildFrontmatter;
1801
2026
  static computeBadge(testCases: Pick<TestCaseResult, "status">[]): StarlightBadge;
1802
2027
  }
@@ -2841,6 +3066,14 @@ interface GenerateCompareResult {
2841
3066
  files: string[];
2842
3067
  diff: RunDiffResult;
2843
3068
  }
3069
+ /**
3070
+ * Join an output name with a format extension, collapsing a stutter when the
3071
+ * chosen name already carries the format's tag. With the default name "index",
3072
+ * `story-report-json` writes `index.story-report.json`; but if the caller names
3073
+ * the file `story-report`, this yields `story-report.json`, not
3074
+ * `story-report.story-report.json`.
3075
+ */
3076
+ declare function joinNameAndExt(name: string, ext: string): string;
2844
3077
  /**
2845
3078
  * High-level report generator that combines multiple formatters.
2846
3079
  *
@@ -2910,4 +3143,4 @@ declare function normalizeVitestResults(testModules: Parameters<typeof adaptVite
2910
3143
  */
2911
3144
  declare function normalizePlaywrightResults(testResults: Parameters<typeof adaptPlaywrightRun>[0], adapterOptions?: Parameters<typeof adaptPlaywrightRun>[1], canonicalizeOptions?: CanonicalizeOptions): TestRunResult;
2912
3145
 
2913
- export { type AstroAssetResult, AstroFormatter, type AstroFormatterOptions as AstroFormatterOpts, Attachment, type BundleOptions, type BundleResult, CIProvider, type CanonicalizeOptions, type ChangeType, type ChangedFile, type ChangedFileReview, type ColocatedStyle, type CompareFormat, type CompareFormatterOptions, type ConfluenceAuth, ConfluenceFormatter, type ConfluenceFormatterOptions as ConfluenceFormatterOpts, type CopyMarkdownAssetsOptions, CucumberHtmlFormatter, type CucumberHtmlOptions, CucumberJsonFormatter, type CucumberJsonOptions, CucumberMessagesFormatter, type CucumberMessagesOptions, DocEntry, DocPhase, ES_THEME_TOKENS_CSS, ES_THEME_TOKEN_VALUES, type EvidenceStrength, type ExecutableStoriesConfig, type FetchFn, type FileChangeKind, type FlakinessLevel, type Formatter, type FormatterOptions, type GenerateArgs, type GenerateCompareResult, type GenerateDeps, type GenerateResult, type GenericWebhookNotifierOptions, type HistoryEntry, type HistoryStore, HtmlFormatter, type HtmlOptions, type HtmlTheme, type HtmlThemeName, type IJsonDataTable, type IJsonDocString, type IJsonEmbedding, type IJsonFeature, type IJsonScenario, type IJsonStep, type IJsonStepArgument, type IJsonStepResult, type IJsonTableRow, type IJsonTag, JUnitFormatter, type JUnitOptions, type JiraAuth, type JiraPublishMode, type ListScenariosArgs, type ListScenariosDeps, type Logger, MIN_FLAKINESS_SAMPLES, MIN_METRIC_SAMPLES, MIN_PERF_SAMPLES, MarkdownFormatter, type MarkdownFormatterOptions, type MarkdownOptions, type MarkdownRenderers, NormalizedTicket, type NotificationSummary, type NotifyCondition, OtelSpan, type OtelTraceContext, type OutputConfig, type OutputFormat, type OutputMode, type OutputRule, type PerformanceTrend, type PublishConfluenceArgs, type PublishConfluenceDeps, type PublishConfluenceResult, type PublishJiraArgs, type PublishJiraDeps, type PublishJiraResult, RawAttachment, RawCIInfo, RawRun, RawStatus, type ReportAttachment, type ReportCIInfo, type ReportCoverageSummary, type ReportDocCode, type ReportDocCustom, type ReportDocEntry, type ReportDocKv, type ReportDocLink, type ReportDocMermaid, type ReportDocNote, type ReportDocScreenshot, type ReportDocSection, type ReportDocTable, type ReportDocTag, type ReportFeature, ReportGenerator, type ReportScenario, type ReportStep, type ReportSummary, type ReportTicket, type ResolvedFormatterOptions, type ReviewAudience, type ReviewBand, type ReviewClaim, type ReviewContext, ReviewHtmlFormatter, type ReviewHtmlOptions, ReviewMarkdownFormatter, type ReviewMarkdownOptions, type ReviewResult, type ReviewSummary, RunDiffHtmlFormatter, type RunDiffHtmlOptions, RunDiffMarkdownFormatter, type RunDiffMarkdownOptions, type RunDiffResult, type RunDiffSummary, STORY_REPORT_SCHEMA_MAJOR, STORY_REPORT_SCHEMA_VERSION, type ScenarioChangeFlags, type ScenarioChangeKind, type ScenarioDiff, type ScenarioSnapshot, type SortTestCasesMode, type StabilityGrade, type StarlightBadge, StepResult, type StoryReport, StoryReportJsonFormatter, type StoryReportJsonOptions, type StoryReportSchemaVersion, StoryStep, TestCaseResult, type TestHistory, type TestMetrics, TestRunResult, TestStatus$1 as TestStatus, CIInfo as TypedCIInfo, type ValidationResult, type WebhookPayload, type WebhookSignerHmac, type WriteFile, adaptJestRun, adaptPlaywrightRun, adaptVitestRun, assertValidRun, buildReview, bundleAssets, calculateFlakiness, calculateStability, canonicalizeRun, clearVersionCache, computeTestMetrics, copyMarkdownAssets, createPrCommentSummary, createReportGenerator, deriveAudience, deriveChangeType, deriveStepResults, detectCI, detectPerformanceTrend, diffRuns, findGitDir, formatDuration, generateRunComparison, generateRunId, generateTestCaseId, getAvailableThemes, getCssOnlyThemes, gradeEvidence, hasSufficientHistory, isReviewableSource, isTestFile, listScenarios, loadHistory, mergeStepResults, msToNanoseconds, nanosecondsToMs, normalizeJestResults, normalizePlaywrightResults, normalizeStatus, normalizeVitestResults, parseEnvelopes, parseNdjson, publishConfluencePage, publishJiraIssue, readBranchName, readGitSha, readPackageVersion, resolveAttachment, resolveAttachments, resolveTheme, resolveTraceUrl, rewriteAssetPaths, saveHistory, sendNotifications, sendSlackNotification, sendTeamsNotification, sendWebhookNotification, signBody, slugify, stripAnsi, toStoryReport, tryGetActiveOtelContext, updateHistory, validateCanonicalRun };
3146
+ export { type AstroAssetResult, AstroFormatter, type AstroFormatterOptions as AstroFormatterOpts, Attachment, type BehaviorDebuggerIssue, type BehaviorDiff, type BehaviorDiffEntry, type BehaviorManifest, BehaviorManifestJsonFormatter, type BehaviorManifestJsonOptions, type BehaviorSourceFile, type BehaviorTag, type BundleOptions, type BundleResult, CIProvider, type CanonicalizeOptions, type ChangeType, type ChangedFile, type ChangedFileReview, type ColocatedStyle, type CompareFormat, type CompareFormatterOptions, type ConfluenceAuth, ConfluenceFormatter, type ConfluenceFormatterOptions as ConfluenceFormatterOpts, type CopyMarkdownAssetsOptions, CucumberHtmlFormatter, type CucumberHtmlOptions, CucumberJsonFormatter, type CucumberJsonOptions, CucumberMessagesFormatter, type CucumberMessagesOptions, DocEntry, DocPhase, ES_THEME_TOKENS_CSS, ES_THEME_TOKEN_VALUES, type EvidenceStrength, type ExecutableStoriesConfig, type FetchFn, type FileChangeKind, type FlakinessLevel, type Formatter, type FormatterOptions, type GenerateArgs, type GenerateCompareResult, type GenerateDeps, type GenerateResult, type GenericWebhookNotifierOptions, type HistoryEntry, type HistoryStore, HtmlFormatter, type HtmlOptions, type HtmlTheme, type HtmlThemeName, type IJsonDataTable, type IJsonDocString, type IJsonEmbedding, type IJsonFeature, type IJsonScenario, type IJsonStep, type IJsonStepArgument, type IJsonStepResult, type IJsonTableRow, type IJsonTag, JUnitFormatter, type JUnitOptions, type JiraAuth, type JiraPublishMode, type ListScenariosArgs, type ListScenariosDeps, type Logger, MIN_FLAKINESS_SAMPLES, MIN_METRIC_SAMPLES, MIN_PERF_SAMPLES, MarkdownFormatter, type MarkdownFormatterOptions, type MarkdownOptions, type MarkdownRenderers, NormalizedTicket, type NotificationSummary, type NotifyCondition, OtelSpan, type OtelTraceContext, type OutputConfig, type OutputFormat, type OutputMode, type OutputRule, type PerformanceTrend, type PublishConfluenceArgs, type PublishConfluenceDeps, type PublishConfluenceResult, type PublishJiraArgs, type PublishJiraDeps, type PublishJiraResult, RawAttachment, RawCIInfo, RawRun, RawStatus, type ReportAttachment, type ReportCIInfo, type ReportCoverageSummary, type ReportDocCode, type ReportDocCustom, type ReportDocEntry, type ReportDocKv, type ReportDocLink, type ReportDocMermaid, type ReportDocNote, type ReportDocScreenshot, type ReportDocSection, type ReportDocTable, type ReportDocTag, type ReportFeature, ReportGenerator, type ReportScenario, type ReportStep, type ReportSummary, type ReportTicket, type ResolvedFormatterOptions, type ReviewAudience, type ReviewBand, type ReviewClaim, type ReviewContext, ReviewHtmlFormatter, type ReviewHtmlOptions, ReviewMarkdownFormatter, type ReviewMarkdownOptions, type ReviewResult, type ReviewSummary, RunDiffHtmlFormatter, type RunDiffHtmlOptions, RunDiffMarkdownFormatter, type RunDiffMarkdownOptions, type RunDiffResult, type RunDiffSummary, STORY_REPORT_SCHEMA_MAJOR, STORY_REPORT_SCHEMA_VERSION, type ScenarioChangeFlags, type ScenarioChangeKind, type ScenarioDiff, type ScenarioIndex, type ScenarioIndexFilters, type ScenarioIndexItem, ScenarioIndexJsonFormatter, type ScenarioIndexJsonOptions, type ScenarioIndexStep, type ScenarioSnapshot, type SortTestCasesMode, type StabilityGrade, type StarlightBadge, StepResult, type StoryReport, StoryReportJsonFormatter, type StoryReportJsonOptions, type StoryReportSchemaVersion, StoryStep, TestCaseResult, type TestHistory, type TestMetrics, TestRunResult, TestStatus$1 as TestStatus, CIInfo as TypedCIInfo, type ValidationResult, type WatchDeps, type WatchHandle, type WatchOptions, type WebhookPayload, type WebhookSignerHmac, type WriteFile, adaptJestRun, adaptPlaywrightRun, adaptVitestRun, assertValidRun, buildReview, bundleAssets, calculateFlakiness, calculateStability, canonicalizeRun, classifyStatusChange, clearVersionCache, computeTestMetrics, copyMarkdownAssets, createPrCommentSummary, createReportGenerator, deriveAudience, deriveChangeType, deriveStepResults, detectCI, detectPerformanceTrend, diffRuns, diffStoryReports, findGitDir, formatDuration, generateRunComparison, generateRunId, generateTestCaseId, getAvailableThemes, getCssOnlyThemes, gradeEvidence, hasSufficientHistory, isReviewableSource, isTestFile, joinNameAndExt, listScenarios, loadHistory, mergeStepResults, msToNanoseconds, nanosecondsToMs, normalizeJestResults, normalizePlaywrightResults, normalizeStatus, normalizeVitestResults, parseEnvelopes, parseNdjson, publishConfluencePage, publishJiraIssue, readBranchName, readGitSha, readPackageVersion, regenerateArtifacts, resolveAttachment, resolveAttachments, resolveTheme, resolveTraceUrl, rewriteAssetPaths, saveHistory, scenariosCoveringPaths, sendNotifications, sendSlackNotification, sendTeamsNotification, sendWebhookNotification, signBody, slugify, startWatch, stripAnsi, toBehaviorManifest, toScenarioIndex, toStoryReport, tryGetActiveOtelContext, updateHistory, validateCanonicalRun };