@cms.ai/brand_brain 0.0.1 → 0.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/types.ts","../../src/GuideClient.ts","../../src/react/useGuide.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/types.ts","../../src/GuideClient.ts","../../src/skill-state.ts","../../src/react/useGuide.ts"],"mappings":"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"}
@@ -1386,7 +1386,11 @@ const SSEMessageType = {
1386
1386
  TextMessageEnd: "TEXT_MESSAGE_END",
1387
1387
  Custom: "CUSTOM"
1388
1388
  };
1389
- /** The `name` on `CUSTOM` guide events (skill payloads). */
1389
+ /**
1390
+ * The `name` on `CUSTOM` guide events (skill payloads). `SkillGate` and
1391
+ * `SkillError` never surface as `skill` stream events — the SDK re-maps them to
1392
+ * the dedicated `gate` / `error` {@link GuideStreamEvent} variants.
1393
+ */
1390
1394
  const GuideEvent = {
1391
1395
  SkillStart: "skill_start",
1392
1396
  SkillContent: "skill_content",
@@ -1406,8 +1410,17 @@ const GuideEvent = {
1406
1410
  SkillSolutionDesignDiagram: "skill_solutiondesign_diagram",
1407
1411
  SkillEnd: "skill_end",
1408
1412
  SkillError: "skill_error",
1409
- SkillGate: "skill_gate",
1410
- InputSuggestions: "input_suggestions"
1413
+ SkillGate: "skill_gate"
1414
+ };
1415
+ /** The guide skill types. `answer` is always on; the rest are enabled per-guide. */
1416
+ const SkillResponseType = {
1417
+ Answer: "answer",
1418
+ HowTo: "howto",
1419
+ Diagnose: "diagnose",
1420
+ Recommend: "recommend",
1421
+ Playlist: "playlist",
1422
+ BusinessCase: "businesscase",
1423
+ SolutionDesign: "solutiondesign"
1411
1424
  };
1412
1425
  /** Analytics events fired by the SDK bootstrap. */
1413
1426
  const EmbedTrackingEvent = {
@@ -1444,7 +1457,13 @@ async function* streamConversation(params) {
1444
1457
  body: JSON.stringify(body),
1445
1458
  signal
1446
1459
  });
1447
- if (!response.ok || !response.body) throw new Error(`[brand_brain] Conversation request failed with status ${response.status}`);
1460
+ if (!response.ok || !response.body) {
1461
+ let detail = "";
1462
+ try {
1463
+ detail = (await response.text()).trim();
1464
+ } catch {}
1465
+ throw new Error(`[brand_brain] Conversation request failed with status ${response.status}${detail ? `: ${detail}` : ""}`);
1466
+ }
1448
1467
  const reader = response.body.getReader();
1449
1468
  const decoder = new TextDecoder();
1450
1469
  let buffer = "";
@@ -1503,6 +1522,13 @@ function mapFrame(frame) {
1503
1522
  default: return null;
1504
1523
  }
1505
1524
  }
1525
+ /**
1526
+ * Names that surface as typed `skill` events. `SkillGate`/`SkillError` are
1527
+ * re-mapped to the `gate`/`error` variants below, so they are excluded here;
1528
+ * any name outside this set is a server event this SDK version predates and
1529
+ * flows through as `skill-unknown`.
1530
+ */
1531
+ const SKILL_EVENT_NAMES = new Set(Object.values(GuideEvent).filter((name) => name !== GuideEvent.SkillGate && name !== GuideEvent.SkillError));
1506
1532
  function mapCustomFrame(frame) {
1507
1533
  if (!frame.name) return null;
1508
1534
  const value = frame.value ?? {};
@@ -1515,20 +1541,42 @@ function mapCustomFrame(frame) {
1515
1541
  if (frame.name === GuideEvent.SkillError) return {
1516
1542
  type: "error",
1517
1543
  message: value.message ?? "Skill error",
1518
- code: value.errorType
1544
+ code: value.errorType,
1545
+ retryable: value.retryable,
1546
+ retryHint: value.retryHint
1519
1547
  };
1520
- return {
1548
+ if (SKILL_EVENT_NAMES.has(frame.name)) return {
1521
1549
  type: "skill",
1522
1550
  name: frame.name,
1523
1551
  value
1524
1552
  };
1553
+ return {
1554
+ type: "skill-unknown",
1555
+ name: frame.name,
1556
+ value
1557
+ };
1525
1558
  }
1526
1559
  //#endregion
1527
1560
  //#region src/GuideClient.ts
1561
+ /**
1562
+ * The account is resolved by the branded host the SDK talks to, and that host
1563
+ * must be same-site with `baseUrl` for the visitor cookies to attach — so the
1564
+ * `baseUrl` hostname IS the registered account domain. Derive it from there
1565
+ * rather than the host page's `window.location`, which is an unrelated origin
1566
+ * for cross-site embeds and produces a "Domain not found" 404 on resolve.
1567
+ */
1528
1568
  function resolveDomain(config) {
1529
1569
  if (config.domain) return config.domain;
1530
- if (typeof window !== "undefined") return window.location.hostname;
1531
- throw new Error("[brand_brain] `domain` is required when running without a browser `window`.");
1570
+ return hostnameFromBaseUrl(config.baseUrl);
1571
+ }
1572
+ /**
1573
+ * Normalize `baseUrl` to the bare host the server stores: lowercased, no port,
1574
+ * no leading `www.` (the domain write-path strips it, so a `www.` host can
1575
+ * never match). Accepts a bare host too, in case `baseUrl` omits the protocol.
1576
+ */
1577
+ function hostnameFromBaseUrl(baseUrl) {
1578
+ const withProtocol = /^[a-z][a-z0-9+.-]*:\/\//i.test(baseUrl) ? baseUrl : `https://${baseUrl}`;
1579
+ return new URL(withProtocol).hostname.toLowerCase().replace(/^www\./, "");
1532
1580
  }
1533
1581
  /**
1534
1582
  * The client returned by {@link initGuide}. Holds the resolved guide, the
@@ -1582,7 +1630,9 @@ var GuideClient = class GuideClient {
1582
1630
  this.#api = createApiClient(this.apiBaseUrl, this.fetchImpl);
1583
1631
  }
1584
1632
  static async init(config) {
1585
- const fetchImpl = config.fetch ?? globalThis.fetch.bind(globalThis);
1633
+ const globalFetch = typeof globalThis.fetch === "function" ? globalThis.fetch.bind(globalThis) : void 0;
1634
+ const fetchImpl = config.fetch ?? globalFetch;
1635
+ if (!fetchImpl) throw new Error("[brand_brain] No `fetch` is available — pass `config.fetch` when running without a global fetch.");
1586
1636
  const apiBaseUrl = toApiBaseUrl(config.baseUrl);
1587
1637
  const domain = resolveDomain(config);
1588
1638
  const guide = await createApiClient(apiBaseUrl, fetchImpl).guides.resolve({
@@ -1721,26 +1771,181 @@ async function initGuide(config) {
1721
1771
  return GuideClient.init(config);
1722
1772
  }
1723
1773
  //#endregion
1774
+ //#region src/skill-state.ts
1775
+ /** A fresh, empty turn state. */
1776
+ function createSkillTurn() {
1777
+ return {
1778
+ skill: null,
1779
+ status: "streaming",
1780
+ messageId: null,
1781
+ diagnoseSubtype: null,
1782
+ followUpSkill: null,
1783
+ content: "",
1784
+ documents: [],
1785
+ contentRecommendations: [],
1786
+ followUpRecommendations: [],
1787
+ ctas: [],
1788
+ diagnoseHeader: null,
1789
+ diagnoseQuestions: [],
1790
+ playlistHeader: null,
1791
+ playlistItems: [],
1792
+ howToOutline: null,
1793
+ howToSteps: [],
1794
+ businessCaseFormats: [],
1795
+ businessCaseDrafts: {},
1796
+ businessCaseContent: {},
1797
+ solutionDesignHeader: null,
1798
+ solutionDesignNodes: [],
1799
+ solutionDesignEdges: [],
1800
+ skillInstanceId: null
1801
+ };
1802
+ }
1803
+ /** A recommendations payload is content cards iff its entries carry `targetSkill`. */
1804
+ function isContentRecommendations(recommendations) {
1805
+ return recommendations.length > 0 && "targetSkill" in recommendations[0];
1806
+ }
1807
+ /**
1808
+ * Fold one `skill` stream event into the turn state. Pure and immutable — the
1809
+ * returned object is a new reference whenever anything changed, so the result
1810
+ * can back React state directly:
1811
+ *
1812
+ * ```ts
1813
+ * let turn = createSkillTurn();
1814
+ * for await (const event of client.ask(message)) {
1815
+ * if (event.type === "skill") turn = reduceSkillEvent(turn, event);
1816
+ * }
1817
+ * ```
1818
+ */
1819
+ function reduceSkillEvent(turn, event) {
1820
+ switch (event.name) {
1821
+ case GuideEvent.SkillStart: return {
1822
+ ...event.value.skill === SkillResponseType.BusinessCase && turn.skill === SkillResponseType.BusinessCase ? {
1823
+ ...createSkillTurn(),
1824
+ businessCaseFormats: turn.businessCaseFormats,
1825
+ businessCaseDrafts: turn.businessCaseDrafts,
1826
+ businessCaseContent: turn.businessCaseContent
1827
+ } : createSkillTurn(),
1828
+ skill: event.value.skill,
1829
+ messageId: event.value.messageId,
1830
+ diagnoseSubtype: event.value.diagnoseSubtype ?? null,
1831
+ followUpSkill: event.value.followUpSkill ?? null
1832
+ };
1833
+ case GuideEvent.SkillContent: return {
1834
+ ...turn,
1835
+ content: turn.content + event.value.delta
1836
+ };
1837
+ case GuideEvent.SkillDocuments: return {
1838
+ ...turn,
1839
+ documents: event.value.documents
1840
+ };
1841
+ case GuideEvent.SkillRecommendations: return isContentRecommendations(event.value.recommendations) ? {
1842
+ ...turn,
1843
+ contentRecommendations: event.value.recommendations
1844
+ } : {
1845
+ ...turn,
1846
+ followUpRecommendations: event.value.recommendations
1847
+ };
1848
+ case GuideEvent.SkillCTAs: return {
1849
+ ...turn,
1850
+ ctas: event.value.ctas
1851
+ };
1852
+ case GuideEvent.SkillDiagnoseHeader: return {
1853
+ ...turn,
1854
+ diagnoseHeader: event.value.header
1855
+ };
1856
+ case GuideEvent.SkillDiagnoseQuestion: return {
1857
+ ...turn,
1858
+ diagnoseQuestions: [...turn.diagnoseQuestions, event.value.question]
1859
+ };
1860
+ case GuideEvent.SkillPlaylistHeader: return {
1861
+ ...turn,
1862
+ playlistHeader: event.value.header
1863
+ };
1864
+ case GuideEvent.SkillPlaylistItems: return {
1865
+ ...turn,
1866
+ playlistItems: event.value.items
1867
+ };
1868
+ case GuideEvent.SkillPlaylistRationale: return {
1869
+ ...turn,
1870
+ playlistItems: turn.playlistItems.map((item) => item.id === event.value.itemId ? {
1871
+ ...item,
1872
+ rationale: event.value.rationale
1873
+ } : item)
1874
+ };
1875
+ case GuideEvent.SkillHowToOutline: return {
1876
+ ...turn,
1877
+ howToOutline: event.value.outline,
1878
+ skillInstanceId: event.value.skillInstanceId ?? turn.skillInstanceId
1879
+ };
1880
+ case GuideEvent.SkillHowToSteps: return {
1881
+ ...turn,
1882
+ howToSteps: event.value.steps
1883
+ };
1884
+ case GuideEvent.SkillBusinessCaseChooser: return {
1885
+ ...turn,
1886
+ businessCaseFormats: event.value.formats,
1887
+ businessCaseDrafts: event.value.drafts
1888
+ };
1889
+ case GuideEvent.SkillBusinessCaseDelta: {
1890
+ const existing = turn.businessCaseContent[event.value.subType] ?? "";
1891
+ return {
1892
+ ...turn,
1893
+ businessCaseContent: {
1894
+ ...turn.businessCaseContent,
1895
+ [event.value.subType]: existing + event.value.delta
1896
+ }
1897
+ };
1898
+ }
1899
+ case GuideEvent.SkillSolutionDesignHeader: return {
1900
+ ...turn,
1901
+ solutionDesignHeader: event.value.header
1902
+ };
1903
+ case GuideEvent.SkillSolutionDesignDiagram: return {
1904
+ ...turn,
1905
+ solutionDesignNodes: event.value.nodes,
1906
+ solutionDesignEdges: event.value.edges
1907
+ };
1908
+ case GuideEvent.SkillEnd: return {
1909
+ ...turn,
1910
+ status: "complete",
1911
+ skillInstanceId: event.value.skillInstanceId ?? event.value.skillResponseId ?? turn.skillInstanceId
1912
+ };
1913
+ default: return event;
1914
+ }
1915
+ }
1916
+ //#endregion
1724
1917
  //#region src/react/useGuide.ts
1725
1918
  /**
1726
1919
  * React binding over {@link initGuide}. Bootstraps once per `baseUrl`+`slug`,
1727
- * mirrors the streamed reply into state, and ends the session on unmount —
1920
+ * mirrors the streamed reply into `messages`, folds structured skill events
1921
+ * into `skillTurn`, surfaces email gates, and ends the session on unmount —
1728
1922
  * encapsulating the streaming/cleanup patterns so generated UIs stay correct.
1729
1923
  */
1730
1924
  function useGuide(config) {
1731
1925
  const [client, setClient] = useState(null);
1732
1926
  const [messages, setMessages] = useState([]);
1927
+ const [skillTurn, setSkillTurn] = useState(null);
1928
+ const [gate, setGate] = useState(null);
1733
1929
  const [isStreaming, setIsStreaming] = useState(false);
1734
1930
  const [error, setError] = useState(null);
1735
1931
  const { baseUrl, slug } = config;
1736
1932
  const configRef = useRef(config);
1737
1933
  configRef.current = config;
1934
+ const turnRef = useRef(null);
1935
+ const lastAskRef = useRef(null);
1738
1936
  useEffect(() => {
1739
1937
  let active = true;
1740
1938
  let created = null;
1939
+ setClient(null);
1940
+ setMessages([]);
1941
+ setSkillTurn(null);
1942
+ setGate(null);
1943
+ setError(null);
1944
+ turnRef.current = null;
1945
+ lastAskRef.current = null;
1741
1946
  initGuide(configRef.current).then((instance) => {
1742
1947
  if (!active) {
1743
- instance.endSession();
1948
+ instance.endSession().catch(() => {});
1744
1949
  return;
1745
1950
  }
1746
1951
  created = instance;
@@ -1751,15 +1956,32 @@ function useGuide(config) {
1751
1956
  });
1752
1957
  return () => {
1753
1958
  active = false;
1754
- created?.endSession();
1959
+ created?.endSession().catch(() => {});
1755
1960
  };
1756
1961
  }, [baseUrl, slug]);
1757
1962
  const ask = useCallback(async (message, options) => {
1758
1963
  if (!client) return;
1964
+ lastAskRef.current = {
1965
+ message,
1966
+ options
1967
+ };
1759
1968
  setIsStreaming(true);
1760
1969
  setError(null);
1970
+ setGate(null);
1761
1971
  try {
1762
- for await (const event of client.ask(message, options)) if (event.type === "text" || event.type === "message-start") setMessages([...client.messages]);
1972
+ for await (const event of client.ask(message, options)) {
1973
+ configRef.current.onEvent?.(event);
1974
+ if (event.type === "text" || event.type === "message-start") setMessages([...client.messages]);
1975
+ else if (event.type === "skill") {
1976
+ turnRef.current = reduceSkillEvent(turnRef.current ?? createSkillTurn(), event);
1977
+ setSkillTurn(turnRef.current);
1978
+ } else if (event.type === "gate") setGate({
1979
+ skill: event.skill,
1980
+ prompt: event.prompt,
1981
+ skillInstanceId: event.skillInstanceId
1982
+ });
1983
+ else if (event.type === "error") setError(new Error(event.message));
1984
+ }
1763
1985
  setMessages([...client.messages]);
1764
1986
  } catch (err) {
1765
1987
  setError(err instanceof Error ? err : new Error(String(err)));
@@ -1767,18 +1989,44 @@ function useGuide(config) {
1767
1989
  setIsStreaming(false);
1768
1990
  }
1769
1991
  }, [client]);
1992
+ const submitGate = useCallback(async (email, options) => {
1993
+ if (!client) throw new Error("[brand_brain] Guide is not ready yet — wait for isReady before submitting the gate.");
1994
+ const pending = gate;
1995
+ const result = await client.submitGate(email, {
1996
+ ...pending && {
1997
+ skill: pending.skill,
1998
+ prompt: pending.prompt,
1999
+ skillInstanceId: pending.skillInstanceId
2000
+ },
2001
+ ...options
2002
+ });
2003
+ if (result.success) setGate(null);
2004
+ return result;
2005
+ }, [client, gate]);
2006
+ const retryLastAsk = useCallback(async () => {
2007
+ const last = lastAskRef.current;
2008
+ if (last) await ask(last.message, last.options);
2009
+ }, [ask]);
1770
2010
  const reset = useCallback(() => {
1771
2011
  client?.reset();
1772
2012
  setMessages([]);
2013
+ setSkillTurn(null);
2014
+ setGate(null);
2015
+ turnRef.current = null;
2016
+ lastAskRef.current = null;
1773
2017
  }, [client]);
1774
2018
  return {
1775
2019
  client,
1776
2020
  guide: client?.guide ?? null,
1777
2021
  messages,
2022
+ skillTurn,
2023
+ gate,
1778
2024
  isReady: client !== null,
1779
2025
  isStreaming,
1780
2026
  error,
1781
2027
  ask,
2028
+ submitGate,
2029
+ retryLastAsk,
1782
2030
  reset
1783
2031
  };
1784
2032
  }