@sentientui/mcp 0.17.0 → 0.17.2

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.
@@ -1671,9 +1671,15 @@ function registerTestBriefTools(server, client) {
1671
1671
  import { z as z13 } from "zod";
1672
1672
  var GUIDE = `# SentientUI integration guide \u2014 the adaptive ladder
1673
1673
 
1674
- SentientUI adapts a site per visitor type (personas: buyer, researcher, deal_seeker, browser,
1675
- unknown), learning from real conversions. Decisions are locked per session: Visit 1 learns,
1676
- Visit 2 converts. Integrate one rung at a time.
1674
+ SentientUI adapts a site per visitor type (personas), learning from real conversions. Each
1675
+ project has its own persona vocabulary (dashboard -> Settings -> Personas; the default is
1676
+ buyer, researcher, deal_seeker, browser + unknown). Personas are inferred from behavior \u2014 or
1677
+ DECLARED by the app when it already knows the visitor's role: init({ persona: 'admin' }) /
1678
+ <AdaptiveProvider persona=...> / window.sentient.persona. Declared beats inferred and serves
1679
+ at full confidence; unrecognized values are ignored server-side and surfaced in the dashboard
1680
+ so the operator can add them. Keep persona a low-cardinality role slug \u2014 never a user id.
1681
+ Decisions are locked per session: Visit 1 learns, Visit 2 converts. Integrate one rung at a
1682
+ time.
1677
1683
 
1678
1684
  ## Setup (60 seconds, no account)
1679
1685
 
@@ -1691,7 +1697,8 @@ Visit 2 converts. Integrate one rung at a time.
1691
1697
 
1692
1698
  ## Rung 1 \u2014 Style (CSS only)
1693
1699
 
1694
- Persona attributes on <html> (zero declaration):
1700
+ Persona attributes on <html> (zero declaration; the attribute carries the project's own
1701
+ vocabulary keys \u2014 declared or inferred):
1695
1702
 
1696
1703
  html[data-sentient-persona='deal_seeker'] .discount-banner { display: block; }
1697
1704
  html[data-sentient-confidence='low'] .discount-banner { display: none; }
@@ -1728,7 +1735,9 @@ form; <AdaptiveText> swaps dashboard-managed text.
1728
1735
  </AdaptiveGroup>
1729
1736
 
1730
1737
  Declared orders of keyed children only. Page-level: sections={[...]} on AdaptiveRoot +
1731
- useLayoutOrder().
1738
+ useLayoutOrder(). Non-React sites: sections: ['#hero', '#pricing', '#faq'] (CSS selectors in
1739
+ the theme's natural order) in window.sentient \u2014 the snippet reorders those elements within
1740
+ their shared parent, and applies nothing if any selector drifts.
1732
1741
 
1733
1742
  ## Testing the integration
1734
1743
 
@@ -1886,7 +1895,7 @@ function registerAgentTrafficTools(server, client) {
1886
1895
  }
1887
1896
 
1888
1897
  // src/server.ts
1889
- var PKG_VERSION = true ? "0.17.0" : "0.0.0-dev";
1898
+ var PKG_VERSION = true ? "0.17.2" : "0.0.0-dev";
1890
1899
  function createMcpServer(client) {
1891
1900
  const server = new McpServer(
1892
1901
  {
package/dist/index.cjs CHANGED
@@ -1677,9 +1677,15 @@ function registerTestBriefTools(server, client) {
1677
1677
  var import_zod13 = require("zod");
1678
1678
  var GUIDE = `# SentientUI integration guide \u2014 the adaptive ladder
1679
1679
 
1680
- SentientUI adapts a site per visitor type (personas: buyer, researcher, deal_seeker, browser,
1681
- unknown), learning from real conversions. Decisions are locked per session: Visit 1 learns,
1682
- Visit 2 converts. Integrate one rung at a time.
1680
+ SentientUI adapts a site per visitor type (personas), learning from real conversions. Each
1681
+ project has its own persona vocabulary (dashboard -> Settings -> Personas; the default is
1682
+ buyer, researcher, deal_seeker, browser + unknown). Personas are inferred from behavior \u2014 or
1683
+ DECLARED by the app when it already knows the visitor's role: init({ persona: 'admin' }) /
1684
+ <AdaptiveProvider persona=...> / window.sentient.persona. Declared beats inferred and serves
1685
+ at full confidence; unrecognized values are ignored server-side and surfaced in the dashboard
1686
+ so the operator can add them. Keep persona a low-cardinality role slug \u2014 never a user id.
1687
+ Decisions are locked per session: Visit 1 learns, Visit 2 converts. Integrate one rung at a
1688
+ time.
1683
1689
 
1684
1690
  ## Setup (60 seconds, no account)
1685
1691
 
@@ -1697,7 +1703,8 @@ Visit 2 converts. Integrate one rung at a time.
1697
1703
 
1698
1704
  ## Rung 1 \u2014 Style (CSS only)
1699
1705
 
1700
- Persona attributes on <html> (zero declaration):
1706
+ Persona attributes on <html> (zero declaration; the attribute carries the project's own
1707
+ vocabulary keys \u2014 declared or inferred):
1701
1708
 
1702
1709
  html[data-sentient-persona='deal_seeker'] .discount-banner { display: block; }
1703
1710
  html[data-sentient-confidence='low'] .discount-banner { display: none; }
@@ -1734,7 +1741,9 @@ form; <AdaptiveText> swaps dashboard-managed text.
1734
1741
  </AdaptiveGroup>
1735
1742
 
1736
1743
  Declared orders of keyed children only. Page-level: sections={[...]} on AdaptiveRoot +
1737
- useLayoutOrder().
1744
+ useLayoutOrder(). Non-React sites: sections: ['#hero', '#pricing', '#faq'] (CSS selectors in
1745
+ the theme's natural order) in window.sentient \u2014 the snippet reorders those elements within
1746
+ their shared parent, and applies nothing if any selector drifts.
1738
1747
 
1739
1748
  ## Testing the integration
1740
1749
 
@@ -1892,7 +1901,7 @@ function registerAgentTrafficTools(server, client) {
1892
1901
  }
1893
1902
 
1894
1903
  // src/server.ts
1895
- var PKG_VERSION = true ? "0.17.0" : "0.0.0-dev";
1904
+ var PKG_VERSION = true ? "0.17.2" : "0.0.0-dev";
1896
1905
  function createMcpServer(client) {
1897
1906
  const server = new import_mcp.McpServer(
1898
1907
  {
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  ApiClient,
4
4
  createMcpServer
5
- } from "./chunk-2E5M5ESK.js";
5
+ } from "./chunk-PHUP47GG.js";
6
6
 
7
7
  // src/index.ts
8
8
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
package/dist/lib.cjs CHANGED
@@ -1701,9 +1701,15 @@ function registerTestBriefTools(server, client) {
1701
1701
  var import_zod13 = require("zod");
1702
1702
  var GUIDE = `# SentientUI integration guide \u2014 the adaptive ladder
1703
1703
 
1704
- SentientUI adapts a site per visitor type (personas: buyer, researcher, deal_seeker, browser,
1705
- unknown), learning from real conversions. Decisions are locked per session: Visit 1 learns,
1706
- Visit 2 converts. Integrate one rung at a time.
1704
+ SentientUI adapts a site per visitor type (personas), learning from real conversions. Each
1705
+ project has its own persona vocabulary (dashboard -> Settings -> Personas; the default is
1706
+ buyer, researcher, deal_seeker, browser + unknown). Personas are inferred from behavior \u2014 or
1707
+ DECLARED by the app when it already knows the visitor's role: init({ persona: 'admin' }) /
1708
+ <AdaptiveProvider persona=...> / window.sentient.persona. Declared beats inferred and serves
1709
+ at full confidence; unrecognized values are ignored server-side and surfaced in the dashboard
1710
+ so the operator can add them. Keep persona a low-cardinality role slug \u2014 never a user id.
1711
+ Decisions are locked per session: Visit 1 learns, Visit 2 converts. Integrate one rung at a
1712
+ time.
1707
1713
 
1708
1714
  ## Setup (60 seconds, no account)
1709
1715
 
@@ -1721,7 +1727,8 @@ Visit 2 converts. Integrate one rung at a time.
1721
1727
 
1722
1728
  ## Rung 1 \u2014 Style (CSS only)
1723
1729
 
1724
- Persona attributes on <html> (zero declaration):
1730
+ Persona attributes on <html> (zero declaration; the attribute carries the project's own
1731
+ vocabulary keys \u2014 declared or inferred):
1725
1732
 
1726
1733
  html[data-sentient-persona='deal_seeker'] .discount-banner { display: block; }
1727
1734
  html[data-sentient-confidence='low'] .discount-banner { display: none; }
@@ -1758,7 +1765,9 @@ form; <AdaptiveText> swaps dashboard-managed text.
1758
1765
  </AdaptiveGroup>
1759
1766
 
1760
1767
  Declared orders of keyed children only. Page-level: sections={[...]} on AdaptiveRoot +
1761
- useLayoutOrder().
1768
+ useLayoutOrder(). Non-React sites: sections: ['#hero', '#pricing', '#faq'] (CSS selectors in
1769
+ the theme's natural order) in window.sentient \u2014 the snippet reorders those elements within
1770
+ their shared parent, and applies nothing if any selector drifts.
1762
1771
 
1763
1772
  ## Testing the integration
1764
1773
 
@@ -1916,7 +1925,7 @@ function registerAgentTrafficTools(server, client) {
1916
1925
  }
1917
1926
 
1918
1927
  // src/server.ts
1919
- var PKG_VERSION = true ? "0.17.0" : "0.0.0-dev";
1928
+ var PKG_VERSION = true ? "0.17.2" : "0.0.0-dev";
1920
1929
  function createMcpServer(client) {
1921
1930
  const server = new import_mcp.McpServer(
1922
1931
  {
package/dist/lib.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  ApiError,
5
5
  PUBLIC_UI_RESOURCE_URIS,
6
6
  createMcpServer
7
- } from "./chunk-2E5M5ESK.js";
7
+ } from "./chunk-PHUP47GG.js";
8
8
  export {
9
9
  ApiClient,
10
10
  ApiError,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentientui/mcp",
3
- "version": "0.17.0",
3
+ "version": "0.17.2",
4
4
  "description": "MCP server for SentientUI — exposes project data and actions to AI agents",
5
5
  "license": "MIT",
6
6
  "homepage": "https://sentient-ui.com",