executable-stories-formatters 0.7.15 → 0.9.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,125 +1,5 @@
1
- import { S as StoryMeta, R as RawStatus, C as CIInfo$1, a as StoryStep, D as DocEntry, N as NormalizedTicket, b as DocPhase, O as OtelSpan, c as CIProvider, d as RawAttachment, e as RawRun, f as RawCIInfo, g as adaptJestRun, h as adaptPlaywrightRun, i as adaptVitestRun } from './index-BiAYcEiz.cjs';
2
- export { J as JestAdapterOptions, j as JestAggregatedResult, k as JestFileResult, l as JestTestResult, m as OtelAttributeValue, P as PlaywrightAdapterOptions, n as PlaywrightAnnotation, o as PlaywrightAttachment, p as PlaywrightError, q as PlaywrightLocation, r as PlaywrightStatus, s as PlaywrightTestCase, t as PlaywrightTestResult, u as RawStepEvent, v as RawTestCase, w as STORY_META_KEY, x as StepKeyword, y as StepMode, z as StoryFileReport, V as VitestAdapterOptions, A as VitestSerializedError, B as VitestState, E as VitestTestCase, F as VitestTestModule, G as VitestTestResult, H as toCIInfo, I as toRawCIInfo } from './index-BiAYcEiz.cjs';
3
-
4
- /** Canonical test status (Cucumber-compatible) */
5
- type TestStatus$1 = "passed" | "failed" | "skipped" | "pending";
6
- /** Step result with status and timing */
7
- interface StepResult {
8
- /** Step index (0-based) */
9
- index: number;
10
- /** Stable step ID when available */
11
- stepId?: string;
12
- /** Step status */
13
- status: TestStatus$1;
14
- /** Duration in milliseconds (default 0) */
15
- durationMs: number;
16
- /** Error message if step failed */
17
- errorMessage?: string;
18
- }
19
- /** Resolved attachment (always has body) */
20
- interface Attachment {
21
- /** Attachment name */
22
- name: string;
23
- /** MIME type */
24
- mediaType: string;
25
- /** Content (base64-encoded or URL) */
26
- body: string;
27
- /** Content encoding */
28
- contentEncoding: "BASE64" | "IDENTITY";
29
- }
30
- /** Single test attempt for retry tracking */
31
- interface TestCaseAttempt {
32
- /** Attempt number (0-based) */
33
- attempt: number;
34
- /** Status of this attempt */
35
- status: TestStatus$1;
36
- /** Duration of this attempt in milliseconds */
37
- durationMs: number;
38
- /** Error message if this attempt failed */
39
- errorMessage?: string;
40
- /** Error stack trace if this attempt failed */
41
- errorStack?: string;
42
- }
43
- /** Canonical test case result */
44
- interface TestCaseResult {
45
- /** Unique deterministic ID */
46
- id: string;
47
- /** Story metadata (required) */
48
- story: StoryMeta;
49
- /** Source file path (required) */
50
- sourceFile: string;
51
- /** Source line number (required, default 1) */
52
- sourceLine: number;
53
- /** Test status (required) */
54
- status: TestStatus$1;
55
- /** Original adapter/framework status (preserved for diagnostics). */
56
- rawStatus?: RawStatus;
57
- /** Duration in milliseconds (required, default 0) */
58
- durationMs: number;
59
- /** Error message if failed */
60
- errorMessage?: string;
61
- /** Error stack trace if failed */
62
- errorStack?: string;
63
- /** Attachments (required, empty array if none) */
64
- attachments: Attachment[];
65
- /** Step results (required, always populated via fallback rules) */
66
- stepResults: StepResult[];
67
- /** Full title path from suite/describe blocks (required, empty array if none) */
68
- titlePath: string[];
69
- /** Playwright project name (optional) */
70
- projectName?: string;
71
- /** Retry attempt number (required, default 0) */
72
- retry: number;
73
- /** Total retries configured (required, default 0) */
74
- retries: number;
75
- /** Normalized tags from story (required, empty array if none) */
76
- tags: string[];
77
- /** All retry attempts (optional, includes details per attempt) */
78
- attempts?: TestCaseAttempt[];
79
- }
80
- /** CI environment info */
81
- interface CIInfo {
82
- name: string;
83
- url?: string;
84
- buildNumber?: string;
85
- branch?: string;
86
- commitSha?: string;
87
- prNumber?: string;
88
- }
89
- /** Coverage summary for the test run */
90
- interface CoverageSummary {
91
- /** Line coverage percentage (0-100) */
92
- linesPct?: number;
93
- /** Branch coverage percentage (0-100) */
94
- branchesPct?: number;
95
- /** Function coverage percentage (0-100) */
96
- functionsPct?: number;
97
- /** Statement coverage percentage (0-100) */
98
- statementsPct?: number;
99
- }
100
- /** Canonical test run result */
101
- interface TestRunResult {
102
- /** All test case results */
103
- testCases: TestCaseResult[];
104
- /** Run start time (epoch ms, required) */
105
- startedAtMs: number;
106
- /** Run finish time (epoch ms, required) */
107
- finishedAtMs: number;
108
- /** Total duration in milliseconds (required) */
109
- durationMs: number;
110
- /** Project root directory (required) */
111
- projectRoot: string;
112
- /** Unique run ID (required, generated) */
113
- runId: string;
114
- /** Package version */
115
- packageVersion?: string;
116
- /** Git commit SHA */
117
- gitSha?: string;
118
- /** CI environment info */
119
- ci?: CIInfo;
120
- /** Coverage summary for the run */
121
- coverage?: CoverageSummary;
122
- }
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';
123
3
 
124
4
  /**
125
5
  * Notification types for webhook integrations (Slack, Teams).
@@ -137,7 +17,7 @@ interface NotificationSummary {
137
17
  name: string;
138
18
  error?: string;
139
19
  }>;
140
- ci?: CIInfo$1;
20
+ ci?: CIInfo;
141
21
  reportUrl?: string;
142
22
  }
143
23
  /** When to send notifications. */
@@ -319,7 +199,7 @@ interface FormatterOptions {
319
199
  includeTags?: string[];
320
200
  /** Tags to exclude test cases (any match). Applied after includeTags. */
321
201
  excludeTags?: string[];
322
- /** Output formats to generate. Default: ["cucumber-json"] */
202
+ /** Output formats to generate. Default: ["html"] */
323
203
  formats?: OutputFormat[];
324
204
  /** Output directory for generated reports. Default: "reports" */
325
205
  outputDir?: string;
@@ -932,6 +812,118 @@ interface StoryReport {
932
812
  declare const STORY_REPORT_SCHEMA_VERSION: StoryReportSchemaVersion;
933
813
  declare const STORY_REPORT_SCHEMA_MAJOR: 1;
934
814
 
815
+ /**
816
+ * Review types — the model behind the Evidence-Driven Review report.
817
+ *
818
+ * The review report reframes a test run as "communication with evidence" for
819
+ * reviewing AI-authored changes: intent, approach, proof, outcome — where the
820
+ * proof is that the test passes, graded by how credible that proof actually is.
821
+ *
822
+ * `buildReview(run, context)` mirrors `diffRuns(baseline, current)`:
823
+ * a pure function that produces a {@link ReviewResult} which the review
824
+ * formatters render. Diff context ({@link ReviewContext}) enters at the
825
+ * CLI/Action layer — adapters stay diff-blind.
826
+ */
827
+
828
+ /** Who a claim is addressed to. Derived from file convention (override via `audience:` tag). */
829
+ type ReviewAudience = "stakeholder" | "engineer";
830
+ /** The kind of change a claim documents. Declared via a `change:*` tag. */
831
+ type ChangeType = "feature" | "bugfix" | "refactor" | "perf" | "deps" | "unknown";
832
+ /**
833
+ * How credible a claim's proof is, worst → best.
834
+ * - `none`: the test isn't passing, so it proves nothing about the change.
835
+ * - `weak`: a passing self-authored unit assertion with no corroborating signal.
836
+ * - `moderate`: integration-level, or corroborated by coverage / a screenshot / a trace.
837
+ * - `strong`: tamper-resistant or constraint-proving — failing-first verified, high
838
+ * mutation score, or a stakeholder e2e claim backed by screenshot + trace.
839
+ */
840
+ type EvidenceStrength = "none" | "weak" | "moderate" | "strong";
841
+ /** Which evidence band a changed source file falls into. */
842
+ type ReviewBand = "uncovered" | "weak" | "covered";
843
+ /** Change kind for a file in the diff. */
844
+ type FileChangeKind = "added" | "modified" | "deleted" | "renamed";
845
+ /** A single changed file from the diff, fed in at the CLI/Action layer. */
846
+ interface ChangedFile {
847
+ /** Repo-relative path. */
848
+ path: string;
849
+ /** How the file changed. */
850
+ changeKind: FileChangeKind;
851
+ /** Added/modified line numbers in the new file (best-effort; enables finer correlation). */
852
+ changedLines?: number[];
853
+ }
854
+ /**
855
+ * Diff/PR context for a review. Supplied by the Action (`git diff`) or CLI —
856
+ * NEVER by framework adapters. Optional so the report degrades to "claims only"
857
+ * when no diff is available.
858
+ */
859
+ interface ReviewContext {
860
+ /** Files changed in the PR/diff. */
861
+ changedFiles: ChangedFile[];
862
+ /** Base ref/sha the diff is against (informational). */
863
+ baseRef?: string;
864
+ /** Head ref/sha (informational). */
865
+ headRef?: string;
866
+ }
867
+ /** One reviewable claim = one story/test case, enriched for review. */
868
+ interface ReviewClaim {
869
+ /** Canonical test case id. */
870
+ id: string;
871
+ /** Scenario title (the claim being made). */
872
+ scenario: string;
873
+ sourceFile: string;
874
+ sourceLine: number;
875
+ /** Test outcome. */
876
+ status: TestStatus$1;
877
+ /** Derived from file convention / `audience:` tag. */
878
+ audience: ReviewAudience;
879
+ /** Declared via `change:*` tag (defaults to `unknown`). */
880
+ changeType: ChangeType;
881
+ /** Graded credibility of this claim's proof. */
882
+ strength: EvidenceStrength;
883
+ /** Human-readable reasons the strength was assigned (what corroborated / what was missing). */
884
+ strengthReasons: string[];
885
+ /** Intent/approach narrative pulled from a "Why"/intent section or note, if present. */
886
+ intent?: string;
887
+ /** Changed source files this claim plausibly covers (colocated-filename correlation in v1). */
888
+ coversFiles: string[];
889
+ /** The underlying canonical test case (for formatters needing full detail). */
890
+ testCase: TestCaseResult;
891
+ }
892
+ /** A changed source file correlated against the claims that touch it. */
893
+ interface ChangedFileReview {
894
+ path: string;
895
+ changeKind: FileChangeKind;
896
+ /** Evidence band: uncovered (🔴), weak (🟡), covered (🟢). */
897
+ band: ReviewBand;
898
+ /** Claims correlated to this file, with their strength. */
899
+ claims: Array<{
900
+ id: string;
901
+ scenario: string;
902
+ strength: EvidenceStrength;
903
+ }>;
904
+ }
905
+ /** Roll-up counts for the review. */
906
+ interface ReviewSummary {
907
+ totalClaims: number;
908
+ byAudience: Record<ReviewAudience, number>;
909
+ byStrength: Record<EvidenceStrength, number>;
910
+ /** Number of changed source files considered (test/config files excluded). */
911
+ changedSourceFiles: number;
912
+ uncovered: number;
913
+ weaklyCovered: number;
914
+ covered: number;
915
+ }
916
+ /** The full review model the formatters render. */
917
+ interface ReviewResult {
918
+ run: TestRunResult;
919
+ context: ReviewContext;
920
+ summary: ReviewSummary;
921
+ /** Claims, sorted stakeholder-first then by strength (weakest first, to surface risk). */
922
+ claims: ReviewClaim[];
923
+ /** Changed source files, sorted uncovered → weak → covered. */
924
+ changedFiles: ChangedFileReview[];
925
+ }
926
+
935
927
  /**
936
928
  * Render an OTel trace waterfall (fn(args, deps)).
937
929
  */
@@ -2448,7 +2440,7 @@ interface SendNotificationsDeps {
2448
2440
  logger: {
2449
2441
  warn(msg: string): void;
2450
2442
  };
2451
- toCIInfo: (raw?: RawCIInfo) => CIInfo$1 | undefined;
2443
+ toCIInfo: (raw?: RawCIInfo) => CIInfo | undefined;
2452
2444
  env?: Record<string, string | undefined>;
2453
2445
  }
2454
2446
  /**
@@ -2701,6 +2693,104 @@ declare function createPrCommentSummary(diff: RunDiffResult, maxScenarios?: numb
2701
2693
 
2702
2694
  declare function diffRuns(baseline: TestRunResult, current: TestRunResult): RunDiffResult;
2703
2695
 
2696
+ /**
2697
+ * Review domain — `buildReview(run, context)` mirrors `diffRuns(baseline, current)`.
2698
+ *
2699
+ * A pure function that enriches a canonical run into a {@link ReviewResult}:
2700
+ * each test case becomes a graded claim, and (when diff context is supplied)
2701
+ * changed source files are correlated to claims and banded
2702
+ * uncovered → weak → covered. The review formatters render the result.
2703
+ */
2704
+
2705
+ /**
2706
+ * Grade how credible a claim's proof is.
2707
+ *
2708
+ * A passing self-authored test is the weakest evidence. Strength climbs as
2709
+ * tamper-resistant or constraint-proving signals appear: a screenshot/trace, a
2710
+ * decent mutation score, and — strongest — failing-first verification.
2711
+ */
2712
+ declare function gradeEvidence(testCase: TestCaseResult, audience: ReviewAudience): {
2713
+ strength: EvidenceStrength;
2714
+ reasons: string[];
2715
+ };
2716
+ /**
2717
+ * Build the review model from a canonical run and optional diff context.
2718
+ *
2719
+ * With no `changedFiles`, the report degrades gracefully to "claims only"
2720
+ * (no banding). With diff context, changed source files are correlated and
2721
+ * banded — the 🔴 uncovered band being the reviewer's first stop.
2722
+ */
2723
+ declare function buildReview(run: ReviewResult["run"], context?: ReviewContext): ReviewResult;
2724
+
2725
+ /**
2726
+ * Convention-based derivation for the review report.
2727
+ *
2728
+ * Audience and change-type are derived with ZERO authoring burden: audience
2729
+ * from the test file's name/location, change-type from a `change:*` tag. This
2730
+ * keeps the review capability a formatter concern — no new story API, no
2731
+ * adapter changes (see the Evidence-Driven Review design).
2732
+ */
2733
+
2734
+ /**
2735
+ * Derive the audience for a claim.
2736
+ *
2737
+ * An explicit `audience:<value>` tag always wins; otherwise the file convention
2738
+ * decides (e2e/spec → stakeholder, everything else → engineer).
2739
+ */
2740
+ declare function deriveAudience(sourceFile: string, tags: string[]): ReviewAudience;
2741
+ /** Derive the change-type from a `change:*` tag (defaults to `unknown`). */
2742
+ declare function deriveChangeType(tags: string[]): ChangeType;
2743
+ /** Whether a path looks like a test file. */
2744
+ declare function isTestFile(path: string): boolean;
2745
+ /**
2746
+ * Whether a changed file is reviewable application code — i.e. code we expect a
2747
+ * claim to back. Excludes test files, type decls, and non-code (docs, config,
2748
+ * locks). Only these files are eligible for the 🔴 uncovered alarm.
2749
+ */
2750
+ declare function isReviewableSource(path: string): boolean;
2751
+
2752
+ /**
2753
+ * Review markdown formatter — renders a {@link ReviewResult} as a PR-comment-friendly
2754
+ * review of AI-authored changes.
2755
+ *
2756
+ * Reading order matches reviewer attention: the 🔴 uncovered-change band first
2757
+ * (what changed with no evidence), then 🟡 weak evidence, then claims grouped by
2758
+ * audience (stakeholder behaviour, then engineer detail), each showing graded
2759
+ * proof. Mirrors {@link RunDiffMarkdownFormatter}.
2760
+ */
2761
+
2762
+ interface ReviewMarkdownOptions {
2763
+ title?: string;
2764
+ }
2765
+ declare class ReviewMarkdownFormatter {
2766
+ private title;
2767
+ constructor(options?: ReviewMarkdownOptions);
2768
+ format(review: ReviewResult): string;
2769
+ }
2770
+
2771
+ /**
2772
+ * Review HTML formatter — the audience-segmented deep-dive artifact for an
2773
+ * Evidence Review. Standalone themed HTML (mirrors {@link RunDiffHtmlFormatter}):
2774
+ * a banded changed-files list (uncovered → weak → covered), then claim cards
2775
+ * grouped by audience with graded evidence, intent, inline screenshots, and a
2776
+ * filter toolbar. No CDN dependencies required.
2777
+ */
2778
+
2779
+ interface ReviewHtmlOptions {
2780
+ title?: string;
2781
+ /** Theme name or custom theme object. Default: "default" */
2782
+ theme?: string | HtmlTheme;
2783
+ /** Enable dark mode toggle. Default: true */
2784
+ darkMode?: boolean;
2785
+ }
2786
+ declare class ReviewHtmlFormatter {
2787
+ private title;
2788
+ private theme;
2789
+ private darkMode;
2790
+ constructor(options?: ReviewHtmlOptions);
2791
+ format(review: ReviewResult): string;
2792
+ }
2793
+
2704
2794
  interface BundleOptions {
2705
2795
  /** If true, warn about missing assets instead of throwing. Default: false. */
2706
2796
  allowMissing?: boolean;
@@ -2820,4 +2910,4 @@ declare function normalizeVitestResults(testModules: Parameters<typeof adaptVite
2820
2910
  */
2821
2911
  declare function normalizePlaywrightResults(testResults: Parameters<typeof adaptPlaywrightRun>[0], adapterOptions?: Parameters<typeof adaptPlaywrightRun>[1], canonicalizeOptions?: CanonicalizeOptions): TestRunResult;
2822
2912
 
2823
- export { type AstroAssetResult, AstroFormatter, type AstroFormatterOptions as AstroFormatterOpts, type Attachment, type BundleOptions, type BundleResult, type CIInfo, CIProvider, type CanonicalizeOptions, type ColocatedStyle, type CompareFormat, type CompareFormatterOptions, type ConfluenceAuth, ConfluenceFormatter, type ConfluenceFormatterOptions as ConfluenceFormatterOpts, type CopyMarkdownAssetsOptions, type CoverageSummary, CucumberHtmlFormatter, type CucumberHtmlOptions, CucumberJsonFormatter, type CucumberJsonOptions, CucumberMessagesFormatter, type CucumberMessagesOptions, DocEntry, DocPhase, ES_THEME_TOKENS_CSS, ES_THEME_TOKEN_VALUES, type ExecutableStoriesConfig, type FetchFn, 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, 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, type StepResult, StoryMeta, type StoryReport, StoryReportJsonFormatter, type StoryReportJsonOptions, type StoryReportSchemaVersion, StoryStep, type TestCaseAttempt, type TestCaseResult, type TestHistory, type TestMetrics, type TestRunResult, type TestStatus$1 as TestStatus, CIInfo$1 as TypedCIInfo, type ValidationResult, type WebhookPayload, type WebhookSignerHmac, type WriteFile, adaptJestRun, adaptPlaywrightRun, adaptVitestRun, assertValidRun, bundleAssets, calculateFlakiness, calculateStability, canonicalizeRun, clearVersionCache, computeTestMetrics, copyMarkdownAssets, createPrCommentSummary, createReportGenerator, deriveStepResults, detectCI, detectPerformanceTrend, diffRuns, findGitDir, formatDuration, generateRunComparison, generateRunId, generateTestCaseId, getAvailableThemes, getCssOnlyThemes, hasSufficientHistory, 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 };
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 };