@burdenoff/website-sdk 2026.922.4 → 2026.922.5

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.
@@ -146,6 +146,8 @@ declare function summariseReferences(references: readonly ExploreReference[], or
146
146
  * listed right next to the button that copied this.
147
147
  * - **Emphasis, headings, blockquote and rule markers go**, because `**` and `###` are
148
148
  * instructions to a renderer, not words.
149
+ * - **A table keeps its pipes.** Pasted into a README, an issue or a chat it is a table
150
+ * again; flattened into sentences it is not.
149
151
  * - **Fenced code is verbatim**, fences included, minus nothing but the fence lines
150
152
  * themselves: stripping `*` or `_` inside a code block would corrupt the code.
151
153
  *
@@ -153,6 +155,26 @@ declare function summariseReferences(references: readonly ExploreReference[], or
153
155
  * would fold every paragraph, list item and table cell into one run-on line.
154
156
  */
155
157
  declare function answerPlainText(markdown: string): string;
158
+ /**
159
+ * The same answer as something to SAY, for read-aloud.
160
+ *
161
+ * It shares every rule above but the two that are right for a paste and wrong for a voice:
162
+ *
163
+ * - **A link is its label.** The clipboard keeps `label (https://…)` because a pasted answer
164
+ * loses the page otherwise. Spoken, that is a URL spelled out character by character in
165
+ * the middle of a sentence — and the prompt asks for two to five links in every answer, so
166
+ * it is not an edge case. The sources are listed under the answer either way.
167
+ * - **A table is read as rows, not as pipes.** `| --- | --- |` is a line of punctuation and
168
+ * the pipes are column rules, neither of which is a word. Each row is read with its cells
169
+ * under their own column headings — the phone layout, out loud — so a plan list still says
170
+ * which number is the price. Comparisons and plan lists are exactly the answers the
171
+ * feature was built for (CONTRACT.md §7), which is what makes this worth a second mode.
172
+ *
173
+ * Everything else stays deliberately identical, including citation markers: they are the
174
+ * answer's own attribution in both, and a listener hearing "two" after a claim is hearing
175
+ * the same thing a reader sees.
176
+ */
177
+ declare function answerSpeechText(markdown: string): string;
156
178
  declare function ExplorePage({ seo, productSlug, examplePrompts, className, heightMode, viewportOffset, onNavigate, onSend, welcomeTitle, welcomeBody, locale, }: ExplorePageProps): react.JSX.Element;
157
179
 
158
- export { ExplorePage, type ExplorePageProps, type ExploreProvenance, type ExploreReferenceKind, answerPlainText, inlineImageOrigins, isInlineImageAllowed, logoUrlOf, productNamesByOrigin, referenceKindOf, summariseReferences };
180
+ export { ExplorePage, type ExplorePageProps, type ExploreProvenance, type ExploreReferenceKind, answerPlainText, answerSpeechText, inlineImageOrigins, isInlineImageAllowed, logoUrlOf, productNamesByOrigin, referenceKindOf, summariseReferences };
@@ -146,6 +146,8 @@ declare function summariseReferences(references: readonly ExploreReference[], or
146
146
  * listed right next to the button that copied this.
147
147
  * - **Emphasis, headings, blockquote and rule markers go**, because `**` and `###` are
148
148
  * instructions to a renderer, not words.
149
+ * - **A table keeps its pipes.** Pasted into a README, an issue or a chat it is a table
150
+ * again; flattened into sentences it is not.
149
151
  * - **Fenced code is verbatim**, fences included, minus nothing but the fence lines
150
152
  * themselves: stripping `*` or `_` inside a code block would corrupt the code.
151
153
  *
@@ -153,6 +155,26 @@ declare function summariseReferences(references: readonly ExploreReference[], or
153
155
  * would fold every paragraph, list item and table cell into one run-on line.
154
156
  */
155
157
  declare function answerPlainText(markdown: string): string;
158
+ /**
159
+ * The same answer as something to SAY, for read-aloud.
160
+ *
161
+ * It shares every rule above but the two that are right for a paste and wrong for a voice:
162
+ *
163
+ * - **A link is its label.** The clipboard keeps `label (https://…)` because a pasted answer
164
+ * loses the page otherwise. Spoken, that is a URL spelled out character by character in
165
+ * the middle of a sentence — and the prompt asks for two to five links in every answer, so
166
+ * it is not an edge case. The sources are listed under the answer either way.
167
+ * - **A table is read as rows, not as pipes.** `| --- | --- |` is a line of punctuation and
168
+ * the pipes are column rules, neither of which is a word. Each row is read with its cells
169
+ * under their own column headings — the phone layout, out loud — so a plan list still says
170
+ * which number is the price. Comparisons and plan lists are exactly the answers the
171
+ * feature was built for (CONTRACT.md §7), which is what makes this worth a second mode.
172
+ *
173
+ * Everything else stays deliberately identical, including citation markers: they are the
174
+ * answer's own attribution in both, and a listener hearing "two" after a claim is hearing
175
+ * the same thing a reader sees.
176
+ */
177
+ declare function answerSpeechText(markdown: string): string;
156
178
  declare function ExplorePage({ seo, productSlug, examplePrompts, className, heightMode, viewportOffset, onNavigate, onSend, welcomeTitle, welcomeBody, locale, }: ExplorePageProps): react.JSX.Element;
157
179
 
158
- export { ExplorePage, type ExplorePageProps, type ExploreProvenance, type ExploreReferenceKind, answerPlainText, inlineImageOrigins, isInlineImageAllowed, logoUrlOf, productNamesByOrigin, referenceKindOf, summariseReferences };
180
+ export { ExplorePage, type ExplorePageProps, type ExploreProvenance, type ExploreReferenceKind, answerPlainText, answerSpeechText, inlineImageOrigins, isInlineImageAllowed, logoUrlOf, productNamesByOrigin, referenceKindOf, summariseReferences };