@seed-ship/mcp-ui-solid 6.5.0 → 6.6.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/CHANGELOG.md +130 -0
- package/README.md +37 -0
- package/dist/adapters/connector.cjs +112 -0
- package/dist/adapters/connector.cjs.map +1 -0
- package/dist/adapters/connector.d.ts +71 -0
- package/dist/adapters/connector.d.ts.map +1 -0
- package/dist/adapters/connector.js +112 -0
- package/dist/adapters/connector.js.map +1 -0
- package/dist/adapters/index.d.ts +18 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters.cjs +6 -0
- package/dist/adapters.cjs.map +1 -0
- package/dist/adapters.d.cts +18 -0
- package/dist/adapters.d.ts +18 -0
- package/dist/adapters.js +6 -0
- package/dist/adapters.js.map +1 -0
- package/dist/components/ExpandableWrapper.cjs +24 -6
- package/dist/components/ExpandableWrapper.cjs.map +1 -1
- package/dist/components/ExpandableWrapper.d.ts.map +1 -1
- package/dist/components/ExpandableWrapper.js +24 -6
- package/dist/components/ExpandableWrapper.js.map +1 -1
- package/dist/components/FeedbackInline.cjs +6 -2
- package/dist/components/FeedbackInline.cjs.map +1 -1
- package/dist/components/FeedbackInline.d.ts +2 -2
- package/dist/components/FeedbackInline.d.ts.map +1 -1
- package/dist/components/FeedbackInline.js +7 -3
- package/dist/components/FeedbackInline.js.map +1 -1
- package/dist/components/PresentationFeedback.cjs +207 -0
- package/dist/components/PresentationFeedback.cjs.map +1 -0
- package/dist/components/PresentationFeedback.d.ts +113 -0
- package/dist/components/PresentationFeedback.d.ts.map +1 -0
- package/dist/components/PresentationFeedback.js +207 -0
- package/dist/components/PresentationFeedback.js.map +1 -0
- package/dist/components/StreamingUIRenderer.cjs +82 -195
- package/dist/components/StreamingUIRenderer.cjs.map +1 -1
- package/dist/components/StreamingUIRenderer.d.ts +25 -5
- package/dist/components/StreamingUIRenderer.d.ts.map +1 -1
- package/dist/components/StreamingUIRenderer.js +84 -197
- package/dist/components/StreamingUIRenderer.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components.cjs +3 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.cts +2 -0
- package/dist/components.d.ts +2 -0
- package/dist/components.js +3 -0
- package/dist/components.js.map +1 -1
- package/dist/context/MCPUIStringsContext.cjs +38 -0
- package/dist/context/MCPUIStringsContext.cjs.map +1 -0
- package/dist/context/MCPUIStringsContext.d.ts +95 -0
- package/dist/context/MCPUIStringsContext.d.ts.map +1 -0
- package/dist/context/MCPUIStringsContext.js +38 -0
- package/dist/context/MCPUIStringsContext.js.map +1 -0
- package/dist/index.cjs +8 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-ui-spec/dist/schemas.cjs +103 -0
- package/dist/mcp-ui-spec/dist/schemas.cjs.map +1 -1
- package/dist/mcp-ui-spec/dist/schemas.js +103 -0
- package/dist/mcp-ui-spec/dist/schemas.js.map +1 -1
- package/docs/briefs/ROADMAP-opendata-macro-mcpui.md +912 -0
- package/package.json +17 -5
- package/src/adapters/connector.test.ts +165 -0
- package/src/adapters/connector.ts +234 -0
- package/src/adapters/index.ts +24 -0
- package/src/components/ExpandableWrapper.test.tsx +5 -2
- package/src/components/ExpandableWrapper.tsx +8 -6
- package/src/components/FeedbackInline.test.tsx +6 -3
- package/src/components/FeedbackInline.tsx +8 -6
- package/src/components/PresentationFeedback.test.tsx +163 -0
- package/src/components/PresentationFeedback.tsx +326 -0
- package/src/components/StreamingUIRenderer.parity.test.tsx +158 -0
- package/src/components/StreamingUIRenderer.tsx +42 -166
- package/src/components/index.ts +10 -0
- package/src/context/MCPUIStringsContext.test.tsx +116 -0
- package/src/context/MCPUIStringsContext.tsx +128 -0
- package/src/index.ts +27 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/vite.config.ts +1 -0
package/dist/components.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { UIResourceRenderer, UIResourceRenderer as UIResourceRenderer2 } from "./components/UIResourceRenderer.js";
|
|
2
2
|
import { StreamingUIRenderer } from "./components/StreamingUIRenderer.js";
|
|
3
|
+
import { DEFAULT_PRESENTATION_FEEDBACK_LABELS, PresentationFeedback } from "./components/PresentationFeedback.js";
|
|
3
4
|
import { GenerativeUIErrorBoundary } from "./components/GenerativeUIErrorBoundary.js";
|
|
4
5
|
import { FooterRenderer } from "./components/FooterRenderer.js";
|
|
5
6
|
import { ActionRenderer } from "./components/ActionRenderer.js";
|
|
@@ -36,6 +37,7 @@ export {
|
|
|
36
37
|
CarouselRenderer,
|
|
37
38
|
ChartJSRenderer,
|
|
38
39
|
CodeBlockRenderer,
|
|
40
|
+
DEFAULT_PRESENTATION_FEEDBACK_LABELS,
|
|
39
41
|
DataPreviewSection,
|
|
40
42
|
ElicitationForm,
|
|
41
43
|
FooterRenderer,
|
|
@@ -48,6 +50,7 @@ export {
|
|
|
48
50
|
MapRenderer,
|
|
49
51
|
ModalRenderer,
|
|
50
52
|
PortalDropdownMenu,
|
|
53
|
+
PresentationFeedback,
|
|
51
54
|
RenderContext,
|
|
52
55
|
RenderProvider,
|
|
53
56
|
SplitStepper,
|
package/dist/components.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const web = require("solid-js/web");
|
|
4
|
+
const solidJs = require("solid-js");
|
|
5
|
+
const DEFAULT_MCPUI_STRINGS = {
|
|
6
|
+
expand: "Expand",
|
|
7
|
+
expandedView: "Expanded view",
|
|
8
|
+
copyToClipboard: "Copy to clipboard",
|
|
9
|
+
closeExpandedView: "Close expanded view",
|
|
10
|
+
feedbackUseful: "Useful",
|
|
11
|
+
feedbackNotUseful: "Not useful",
|
|
12
|
+
feedbackPositiveAck: "Thanks!",
|
|
13
|
+
feedbackNegativeAck: "Noted — we'll improve",
|
|
14
|
+
retry: "Retry"
|
|
15
|
+
};
|
|
16
|
+
const MCPUIStringsContext = solidJs.createContext(DEFAULT_MCPUI_STRINGS);
|
|
17
|
+
function useMCPUIStrings() {
|
|
18
|
+
return solidJs.useContext(MCPUIStringsContext);
|
|
19
|
+
}
|
|
20
|
+
function MCPUIStringsProvider(props) {
|
|
21
|
+
const value = () => ({
|
|
22
|
+
...DEFAULT_MCPUI_STRINGS,
|
|
23
|
+
...props.strings
|
|
24
|
+
});
|
|
25
|
+
return web.createComponent(MCPUIStringsContext.Provider, {
|
|
26
|
+
get value() {
|
|
27
|
+
return value();
|
|
28
|
+
},
|
|
29
|
+
get children() {
|
|
30
|
+
return props.children;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
exports.DEFAULT_MCPUI_STRINGS = DEFAULT_MCPUI_STRINGS;
|
|
35
|
+
exports.MCPUIStringsContext = MCPUIStringsContext;
|
|
36
|
+
exports.MCPUIStringsProvider = MCPUIStringsProvider;
|
|
37
|
+
exports.useMCPUIStrings = useMCPUIStrings;
|
|
38
|
+
//# sourceMappingURL=MCPUIStringsContext.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MCPUIStringsContext.cjs","sources":["../../src/context/MCPUIStringsContext.tsx"],"sourcesContent":["/**\n * MCPUIStringsContext — i18n for the library's own \"chrome\" strings.\n *\n * @since v6.6.0 (D2 / R4 of ROADMAP-opendata-macro-mcpui)\n *\n * ## Scope — chrome only, NOT content\n *\n * MCP-UI renders two kinds of text :\n *\n * - **Content** — table headers, chart titles, action labels, prompt\n * questions. These come from the payload and are ALREADY localized by\n * whoever produced the payload (the connector / MCP server). MCP-UI\n * renders them verbatim and this context never touches them.\n * - **Chrome** — the handful of strings the library itself hardcodes :\n * the expand-button tooltip, the feedback acknowledgements, etc. THIS\n * is what `MCPUIStrings` covers.\n *\n * There is deliberately no full i18n framework here : no per-renderer\n * `locale` prop, no message catalogue, no ICU. A flat string map behind a\n * context is enough — the chrome surface is small and static.\n *\n * ## Defaults are English\n *\n * `DEFAULT_MCPUI_STRINGS` is English. A published library should not ship\n * hardcoded French. Consumers that want another language wrap their tree\n * in `<MCPUIStringsProvider strings={...}>` with a partial override.\n *\n * Component props that already carry a label (e.g. `FeedbackInline`'s\n * `positiveAck`, `ExpandableWrapper`'s `copyLabel`) keep priority over the\n * provider — the provider only fills the gap when no explicit prop is set.\n *\n * @example\n * ```tsx\n * import { MCPUIStringsProvider } from '@seed-ship/mcp-ui-solid'\n *\n * <MCPUIStringsProvider strings={{ expand: 'Agrandir', feedbackUseful: 'Utile' }}>\n * <App />\n * </MCPUIStringsProvider>\n * ```\n */\n\nimport { createContext, useContext, type JSX } from 'solid-js'\n\n/**\n * The library's own chrome strings. Flat map, no interpolation.\n *\n * Marked exhaustive as of v6.6.0 ; new chrome strings added by later\n * renderers extend this interface (the `MCPUIStringsProvider` merge keeps\n * older consumers working — any unset key falls back to the EN default).\n */\nexport interface MCPUIStrings {\n // ── ExpandableWrapper toolbar ──────────────────────────────\n /** `title` of the expand-to-fullscreen button. */\n expand: string\n /** Heading + `aria-label` of the fullscreen modal when no title is given. */\n expandedView: string\n /** Default tooltip of the copy button (overridden by `copyLabel` prop). */\n copyToClipboard: string\n /** `aria-label` of the close button in the fullscreen modal. */\n closeExpandedView: string\n\n // ── FeedbackInline (response-quality feedback) ─────────────\n /** `title` of the thumb-up button. */\n feedbackUseful: string\n /** `title` of the thumb-down button. */\n feedbackNotUseful: string\n /** Acknowledgement shown after a positive rating (overridden by `positiveAck`). */\n feedbackPositiveAck: string\n /** Acknowledgement shown after a negative rating (overridden by `negativeAck`). */\n feedbackNegativeAck: string\n\n // ── Generic chrome ────────────────────────────────────────\n /** Label of the streaming retry button. */\n retry: string\n}\n\n/**\n * English defaults. A published library ships no hardcoded non-English\n * chrome — consumers localize via `<MCPUIStringsProvider>`.\n */\nexport const DEFAULT_MCPUI_STRINGS: MCPUIStrings = {\n expand: 'Expand',\n expandedView: 'Expanded view',\n copyToClipboard: 'Copy to clipboard',\n closeExpandedView: 'Close expanded view',\n feedbackUseful: 'Useful',\n feedbackNotUseful: 'Not useful',\n feedbackPositiveAck: 'Thanks!',\n feedbackNegativeAck: \"Noted — we'll improve\",\n retry: 'Retry',\n}\n\nexport const MCPUIStringsContext = createContext<MCPUIStrings>(DEFAULT_MCPUI_STRINGS)\n\n/**\n * Reads the active chrome strings. Returns `DEFAULT_MCPUI_STRINGS` when no\n * `<MCPUIStringsProvider>` is mounted above — every renderer works\n * standalone with English chrome.\n */\nexport function useMCPUIStrings(): MCPUIStrings {\n return useContext(MCPUIStringsContext)\n}\n\nexport interface MCPUIStringsProviderProps {\n /**\n * Partial override of the chrome strings. Any key left unset falls back\n * to the English `DEFAULT_MCPUI_STRINGS` — so a consumer can localize\n * just the strings they care about.\n */\n strings?: Partial<MCPUIStrings>\n children: JSX.Element\n}\n\n/**\n * Provides localized chrome strings to every MCP-UI renderer below it.\n * Merges the partial `strings` override over the English defaults.\n */\nexport function MCPUIStringsProvider(props: MCPUIStringsProviderProps): JSX.Element {\n // `props.strings` is read inside the getter so a reactive override\n // (signal-backed) re-propagates ; for the common static case it is read\n // once at mount.\n const value = (): MCPUIStrings => ({ ...DEFAULT_MCPUI_STRINGS, ...props.strings })\n return (\n <MCPUIStringsContext.Provider value={value()}>\n {props.children}\n </MCPUIStringsContext.Provider>\n )\n}\n"],"names":["DEFAULT_MCPUI_STRINGS","expand","expandedView","copyToClipboard","closeExpandedView","feedbackUseful","feedbackNotUseful","feedbackPositiveAck","feedbackNegativeAck","retry","MCPUIStringsContext","createContext","useMCPUIStrings","useContext","MCPUIStringsProvider","props","value","strings","_$createComponent","Provider","children"],"mappings":";;;;AAgFO,MAAMA,wBAAsC;AAAA,EACjDC,QAAQ;AAAA,EACRC,cAAc;AAAA,EACdC,iBAAiB;AAAA,EACjBC,mBAAmB;AAAA,EACnBC,gBAAgB;AAAA,EAChBC,mBAAmB;AAAA,EACnBC,qBAAqB;AAAA,EACrBC,qBAAqB;AAAA,EACrBC,OAAO;AACT;AAEO,MAAMC,sBAAsBC,QAAAA,cAA4BX,qBAAqB;AAO7E,SAASY,kBAAgC;AAC9C,SAAOC,QAAAA,WAAWH,mBAAmB;AACvC;AAgBO,SAASI,qBAAqBC,OAA+C;AAIlF,QAAMC,QAAQA,OAAqB;AAAA,IAAE,GAAGhB;AAAAA,IAAuB,GAAGe,MAAME;AAAAA,EAAAA;AACxE,SAAAC,IAAAA,gBACGR,oBAAoBS,UAAQ;AAAA,IAAA,IAACH,QAAK;AAAA,aAAEA,MAAAA;AAAAA,IAAO;AAAA,IAAA,IAAAI,WAAA;AAAA,aACzCL,MAAMK;AAAAA,IAAQ;AAAA,EAAA,CAAA;AAGrB;;;;;"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCPUIStringsContext — i18n for the library's own "chrome" strings.
|
|
3
|
+
*
|
|
4
|
+
* @since v6.6.0 (D2 / R4 of ROADMAP-opendata-macro-mcpui)
|
|
5
|
+
*
|
|
6
|
+
* ## Scope — chrome only, NOT content
|
|
7
|
+
*
|
|
8
|
+
* MCP-UI renders two kinds of text :
|
|
9
|
+
*
|
|
10
|
+
* - **Content** — table headers, chart titles, action labels, prompt
|
|
11
|
+
* questions. These come from the payload and are ALREADY localized by
|
|
12
|
+
* whoever produced the payload (the connector / MCP server). MCP-UI
|
|
13
|
+
* renders them verbatim and this context never touches them.
|
|
14
|
+
* - **Chrome** — the handful of strings the library itself hardcodes :
|
|
15
|
+
* the expand-button tooltip, the feedback acknowledgements, etc. THIS
|
|
16
|
+
* is what `MCPUIStrings` covers.
|
|
17
|
+
*
|
|
18
|
+
* There is deliberately no full i18n framework here : no per-renderer
|
|
19
|
+
* `locale` prop, no message catalogue, no ICU. A flat string map behind a
|
|
20
|
+
* context is enough — the chrome surface is small and static.
|
|
21
|
+
*
|
|
22
|
+
* ## Defaults are English
|
|
23
|
+
*
|
|
24
|
+
* `DEFAULT_MCPUI_STRINGS` is English. A published library should not ship
|
|
25
|
+
* hardcoded French. Consumers that want another language wrap their tree
|
|
26
|
+
* in `<MCPUIStringsProvider strings={...}>` with a partial override.
|
|
27
|
+
*
|
|
28
|
+
* Component props that already carry a label (e.g. `FeedbackInline`'s
|
|
29
|
+
* `positiveAck`, `ExpandableWrapper`'s `copyLabel`) keep priority over the
|
|
30
|
+
* provider — the provider only fills the gap when no explicit prop is set.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* import { MCPUIStringsProvider } from '@seed-ship/mcp-ui-solid'
|
|
35
|
+
*
|
|
36
|
+
* <MCPUIStringsProvider strings={{ expand: 'Agrandir', feedbackUseful: 'Utile' }}>
|
|
37
|
+
* <App />
|
|
38
|
+
* </MCPUIStringsProvider>
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
import { type JSX } from 'solid-js';
|
|
42
|
+
/**
|
|
43
|
+
* The library's own chrome strings. Flat map, no interpolation.
|
|
44
|
+
*
|
|
45
|
+
* Marked exhaustive as of v6.6.0 ; new chrome strings added by later
|
|
46
|
+
* renderers extend this interface (the `MCPUIStringsProvider` merge keeps
|
|
47
|
+
* older consumers working — any unset key falls back to the EN default).
|
|
48
|
+
*/
|
|
49
|
+
export interface MCPUIStrings {
|
|
50
|
+
/** `title` of the expand-to-fullscreen button. */
|
|
51
|
+
expand: string;
|
|
52
|
+
/** Heading + `aria-label` of the fullscreen modal when no title is given. */
|
|
53
|
+
expandedView: string;
|
|
54
|
+
/** Default tooltip of the copy button (overridden by `copyLabel` prop). */
|
|
55
|
+
copyToClipboard: string;
|
|
56
|
+
/** `aria-label` of the close button in the fullscreen modal. */
|
|
57
|
+
closeExpandedView: string;
|
|
58
|
+
/** `title` of the thumb-up button. */
|
|
59
|
+
feedbackUseful: string;
|
|
60
|
+
/** `title` of the thumb-down button. */
|
|
61
|
+
feedbackNotUseful: string;
|
|
62
|
+
/** Acknowledgement shown after a positive rating (overridden by `positiveAck`). */
|
|
63
|
+
feedbackPositiveAck: string;
|
|
64
|
+
/** Acknowledgement shown after a negative rating (overridden by `negativeAck`). */
|
|
65
|
+
feedbackNegativeAck: string;
|
|
66
|
+
/** Label of the streaming retry button. */
|
|
67
|
+
retry: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* English defaults. A published library ships no hardcoded non-English
|
|
71
|
+
* chrome — consumers localize via `<MCPUIStringsProvider>`.
|
|
72
|
+
*/
|
|
73
|
+
export declare const DEFAULT_MCPUI_STRINGS: MCPUIStrings;
|
|
74
|
+
export declare const MCPUIStringsContext: import("solid-js").Context<MCPUIStrings>;
|
|
75
|
+
/**
|
|
76
|
+
* Reads the active chrome strings. Returns `DEFAULT_MCPUI_STRINGS` when no
|
|
77
|
+
* `<MCPUIStringsProvider>` is mounted above — every renderer works
|
|
78
|
+
* standalone with English chrome.
|
|
79
|
+
*/
|
|
80
|
+
export declare function useMCPUIStrings(): MCPUIStrings;
|
|
81
|
+
export interface MCPUIStringsProviderProps {
|
|
82
|
+
/**
|
|
83
|
+
* Partial override of the chrome strings. Any key left unset falls back
|
|
84
|
+
* to the English `DEFAULT_MCPUI_STRINGS` — so a consumer can localize
|
|
85
|
+
* just the strings they care about.
|
|
86
|
+
*/
|
|
87
|
+
strings?: Partial<MCPUIStrings>;
|
|
88
|
+
children: JSX.Element;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Provides localized chrome strings to every MCP-UI renderer below it.
|
|
92
|
+
* Merges the partial `strings` override over the English defaults.
|
|
93
|
+
*/
|
|
94
|
+
export declare function MCPUIStringsProvider(props: MCPUIStringsProviderProps): JSX.Element;
|
|
95
|
+
//# sourceMappingURL=MCPUIStringsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MCPUIStringsContext.d.ts","sourceRoot":"","sources":["../../src/context/MCPUIStringsContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAA6B,KAAK,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9D;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAE3B,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAA;IACpB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAA;IACvB,gEAAgE;IAChE,iBAAiB,EAAE,MAAM,CAAA;IAGzB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,wCAAwC;IACxC,iBAAiB,EAAE,MAAM,CAAA;IACzB,mFAAmF;IACnF,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mFAAmF;IACnF,mBAAmB,EAAE,MAAM,CAAA;IAG3B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAUnC,CAAA;AAED,eAAO,MAAM,mBAAmB,0CAAqD,CAAA;AAErF;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAC/B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;CACtB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,GAAG,CAAC,OAAO,CAUlF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createComponent } from "solid-js/web";
|
|
2
|
+
import { createContext, useContext } from "solid-js";
|
|
3
|
+
const DEFAULT_MCPUI_STRINGS = {
|
|
4
|
+
expand: "Expand",
|
|
5
|
+
expandedView: "Expanded view",
|
|
6
|
+
copyToClipboard: "Copy to clipboard",
|
|
7
|
+
closeExpandedView: "Close expanded view",
|
|
8
|
+
feedbackUseful: "Useful",
|
|
9
|
+
feedbackNotUseful: "Not useful",
|
|
10
|
+
feedbackPositiveAck: "Thanks!",
|
|
11
|
+
feedbackNegativeAck: "Noted — we'll improve",
|
|
12
|
+
retry: "Retry"
|
|
13
|
+
};
|
|
14
|
+
const MCPUIStringsContext = createContext(DEFAULT_MCPUI_STRINGS);
|
|
15
|
+
function useMCPUIStrings() {
|
|
16
|
+
return useContext(MCPUIStringsContext);
|
|
17
|
+
}
|
|
18
|
+
function MCPUIStringsProvider(props) {
|
|
19
|
+
const value = () => ({
|
|
20
|
+
...DEFAULT_MCPUI_STRINGS,
|
|
21
|
+
...props.strings
|
|
22
|
+
});
|
|
23
|
+
return createComponent(MCPUIStringsContext.Provider, {
|
|
24
|
+
get value() {
|
|
25
|
+
return value();
|
|
26
|
+
},
|
|
27
|
+
get children() {
|
|
28
|
+
return props.children;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
DEFAULT_MCPUI_STRINGS,
|
|
34
|
+
MCPUIStringsContext,
|
|
35
|
+
MCPUIStringsProvider,
|
|
36
|
+
useMCPUIStrings
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=MCPUIStringsContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MCPUIStringsContext.js","sources":["../../src/context/MCPUIStringsContext.tsx"],"sourcesContent":["/**\n * MCPUIStringsContext — i18n for the library's own \"chrome\" strings.\n *\n * @since v6.6.0 (D2 / R4 of ROADMAP-opendata-macro-mcpui)\n *\n * ## Scope — chrome only, NOT content\n *\n * MCP-UI renders two kinds of text :\n *\n * - **Content** — table headers, chart titles, action labels, prompt\n * questions. These come from the payload and are ALREADY localized by\n * whoever produced the payload (the connector / MCP server). MCP-UI\n * renders them verbatim and this context never touches them.\n * - **Chrome** — the handful of strings the library itself hardcodes :\n * the expand-button tooltip, the feedback acknowledgements, etc. THIS\n * is what `MCPUIStrings` covers.\n *\n * There is deliberately no full i18n framework here : no per-renderer\n * `locale` prop, no message catalogue, no ICU. A flat string map behind a\n * context is enough — the chrome surface is small and static.\n *\n * ## Defaults are English\n *\n * `DEFAULT_MCPUI_STRINGS` is English. A published library should not ship\n * hardcoded French. Consumers that want another language wrap their tree\n * in `<MCPUIStringsProvider strings={...}>` with a partial override.\n *\n * Component props that already carry a label (e.g. `FeedbackInline`'s\n * `positiveAck`, `ExpandableWrapper`'s `copyLabel`) keep priority over the\n * provider — the provider only fills the gap when no explicit prop is set.\n *\n * @example\n * ```tsx\n * import { MCPUIStringsProvider } from '@seed-ship/mcp-ui-solid'\n *\n * <MCPUIStringsProvider strings={{ expand: 'Agrandir', feedbackUseful: 'Utile' }}>\n * <App />\n * </MCPUIStringsProvider>\n * ```\n */\n\nimport { createContext, useContext, type JSX } from 'solid-js'\n\n/**\n * The library's own chrome strings. Flat map, no interpolation.\n *\n * Marked exhaustive as of v6.6.0 ; new chrome strings added by later\n * renderers extend this interface (the `MCPUIStringsProvider` merge keeps\n * older consumers working — any unset key falls back to the EN default).\n */\nexport interface MCPUIStrings {\n // ── ExpandableWrapper toolbar ──────────────────────────────\n /** `title` of the expand-to-fullscreen button. */\n expand: string\n /** Heading + `aria-label` of the fullscreen modal when no title is given. */\n expandedView: string\n /** Default tooltip of the copy button (overridden by `copyLabel` prop). */\n copyToClipboard: string\n /** `aria-label` of the close button in the fullscreen modal. */\n closeExpandedView: string\n\n // ── FeedbackInline (response-quality feedback) ─────────────\n /** `title` of the thumb-up button. */\n feedbackUseful: string\n /** `title` of the thumb-down button. */\n feedbackNotUseful: string\n /** Acknowledgement shown after a positive rating (overridden by `positiveAck`). */\n feedbackPositiveAck: string\n /** Acknowledgement shown after a negative rating (overridden by `negativeAck`). */\n feedbackNegativeAck: string\n\n // ── Generic chrome ────────────────────────────────────────\n /** Label of the streaming retry button. */\n retry: string\n}\n\n/**\n * English defaults. A published library ships no hardcoded non-English\n * chrome — consumers localize via `<MCPUIStringsProvider>`.\n */\nexport const DEFAULT_MCPUI_STRINGS: MCPUIStrings = {\n expand: 'Expand',\n expandedView: 'Expanded view',\n copyToClipboard: 'Copy to clipboard',\n closeExpandedView: 'Close expanded view',\n feedbackUseful: 'Useful',\n feedbackNotUseful: 'Not useful',\n feedbackPositiveAck: 'Thanks!',\n feedbackNegativeAck: \"Noted — we'll improve\",\n retry: 'Retry',\n}\n\nexport const MCPUIStringsContext = createContext<MCPUIStrings>(DEFAULT_MCPUI_STRINGS)\n\n/**\n * Reads the active chrome strings. Returns `DEFAULT_MCPUI_STRINGS` when no\n * `<MCPUIStringsProvider>` is mounted above — every renderer works\n * standalone with English chrome.\n */\nexport function useMCPUIStrings(): MCPUIStrings {\n return useContext(MCPUIStringsContext)\n}\n\nexport interface MCPUIStringsProviderProps {\n /**\n * Partial override of the chrome strings. Any key left unset falls back\n * to the English `DEFAULT_MCPUI_STRINGS` — so a consumer can localize\n * just the strings they care about.\n */\n strings?: Partial<MCPUIStrings>\n children: JSX.Element\n}\n\n/**\n * Provides localized chrome strings to every MCP-UI renderer below it.\n * Merges the partial `strings` override over the English defaults.\n */\nexport function MCPUIStringsProvider(props: MCPUIStringsProviderProps): JSX.Element {\n // `props.strings` is read inside the getter so a reactive override\n // (signal-backed) re-propagates ; for the common static case it is read\n // once at mount.\n const value = (): MCPUIStrings => ({ ...DEFAULT_MCPUI_STRINGS, ...props.strings })\n return (\n <MCPUIStringsContext.Provider value={value()}>\n {props.children}\n </MCPUIStringsContext.Provider>\n )\n}\n"],"names":["DEFAULT_MCPUI_STRINGS","expand","expandedView","copyToClipboard","closeExpandedView","feedbackUseful","feedbackNotUseful","feedbackPositiveAck","feedbackNegativeAck","retry","MCPUIStringsContext","createContext","useMCPUIStrings","useContext","MCPUIStringsProvider","props","value","strings","_$createComponent","Provider","children"],"mappings":";;AAgFO,MAAMA,wBAAsC;AAAA,EACjDC,QAAQ;AAAA,EACRC,cAAc;AAAA,EACdC,iBAAiB;AAAA,EACjBC,mBAAmB;AAAA,EACnBC,gBAAgB;AAAA,EAChBC,mBAAmB;AAAA,EACnBC,qBAAqB;AAAA,EACrBC,qBAAqB;AAAA,EACrBC,OAAO;AACT;AAEO,MAAMC,sBAAsBC,cAA4BX,qBAAqB;AAO7E,SAASY,kBAAgC;AAC9C,SAAOC,WAAWH,mBAAmB;AACvC;AAgBO,SAASI,qBAAqBC,OAA+C;AAIlF,QAAMC,QAAQA,OAAqB;AAAA,IAAE,GAAGhB;AAAAA,IAAuB,GAAGe,MAAME;AAAAA,EAAAA;AACxE,SAAAC,gBACGR,oBAAoBS,UAAQ;AAAA,IAAA,IAACH,QAAK;AAAA,aAAEA,MAAAA;AAAAA,IAAO;AAAA,IAAA,IAAAI,WAAA;AAAA,aACzCL,MAAMK;AAAAA,IAAQ;AAAA,EAAA,CAAA;AAGrB;"}
|
package/dist/index.cjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const UIResourceRenderer = require("./components/UIResourceRenderer.cjs");
|
|
4
4
|
const StreamingUIRenderer = require("./components/StreamingUIRenderer.cjs");
|
|
5
|
+
const PresentationFeedback = require("./components/PresentationFeedback.cjs");
|
|
5
6
|
const GenerativeUIErrorBoundary = require("./components/GenerativeUIErrorBoundary.cjs");
|
|
6
7
|
require("solid-js/web");
|
|
7
8
|
require("solid-js");
|
|
@@ -43,6 +44,7 @@ const logger = require("./utils/logger.cjs");
|
|
|
43
44
|
const perf = require("./utils/perf.cjs");
|
|
44
45
|
const stableKey = require("./utils/stable-key.cjs");
|
|
45
46
|
const duplicateMountRegistry = require("./utils/duplicate-mount-registry.cjs");
|
|
47
|
+
const MCPUIStringsContext = require("./context/MCPUIStringsContext.cjs");
|
|
46
48
|
const MCPUITelemetryContext = require("./context/MCPUITelemetryContext.cjs");
|
|
47
49
|
const telemetry = require("./services/telemetry.cjs");
|
|
48
50
|
const useStreamingUI = require("./hooks/useStreamingUI.cjs");
|
|
@@ -68,6 +70,8 @@ const index = require("./testing/index.cjs");
|
|
|
68
70
|
exports.UIResourceRenderer = UIResourceRenderer.UIResourceRenderer;
|
|
69
71
|
exports.renderCellValue = UIResourceRenderer.renderCellValue;
|
|
70
72
|
exports.StreamingUIRenderer = StreamingUIRenderer.StreamingUIRenderer;
|
|
73
|
+
exports.DEFAULT_PRESENTATION_FEEDBACK_LABELS = PresentationFeedback.DEFAULT_PRESENTATION_FEEDBACK_LABELS;
|
|
74
|
+
exports.PresentationFeedback = PresentationFeedback.PresentationFeedback;
|
|
71
75
|
exports.GenerativeUIErrorBoundary = GenerativeUIErrorBoundary.GenerativeUIErrorBoundary;
|
|
72
76
|
exports.ExpandableWrapper = ExpandableWrapper.ExpandableWrapper;
|
|
73
77
|
exports.useExpanded = ExpandableWrapper.useExpanded;
|
|
@@ -114,6 +118,10 @@ exports.markRenderEnd = perf.markRenderEnd;
|
|
|
114
118
|
exports.markRenderStart = perf.markRenderStart;
|
|
115
119
|
exports.getUiResourceStableKey = stableKey.getUiResourceStableKey;
|
|
116
120
|
exports.setDuplicateMountReporter = duplicateMountRegistry.setDuplicateMountReporter;
|
|
121
|
+
exports.DEFAULT_MCPUI_STRINGS = MCPUIStringsContext.DEFAULT_MCPUI_STRINGS;
|
|
122
|
+
exports.MCPUIStringsContext = MCPUIStringsContext.MCPUIStringsContext;
|
|
123
|
+
exports.MCPUIStringsProvider = MCPUIStringsContext.MCPUIStringsProvider;
|
|
124
|
+
exports.useMCPUIStrings = MCPUIStringsContext.useMCPUIStrings;
|
|
117
125
|
exports.MCPUITelemetryContext = MCPUITelemetryContext.MCPUITelemetryContext;
|
|
118
126
|
exports.MCPUITelemetryProvider = MCPUITelemetryContext.MCPUITelemetryProvider;
|
|
119
127
|
exports.useTelemetry = MCPUITelemetryContext.useTelemetry;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.d.cts
CHANGED
|
@@ -35,6 +35,9 @@ export { ExpandableWrapper, useExpanded } from './components/ExpandableWrapper';
|
|
|
35
35
|
export { ComponentToolbar } from './components/ComponentToolbar';
|
|
36
36
|
export { FeedbackInline } from './components/FeedbackInline';
|
|
37
37
|
export type { FeedbackInlineProps, FeedbackInlineContext } from './components/FeedbackInline';
|
|
38
|
+
export { PresentationFeedback, DEFAULT_PRESENTATION_FEEDBACK_LABELS, } from './components/PresentationFeedback';
|
|
39
|
+
export type { PresentationFeedbackProps, PresentationFeedbackLabels, } from './components/PresentationFeedback';
|
|
40
|
+
export type { ConnectorRenderFeedback, ConnectorRenderProblem, ConnectorPreferredLayout, } from '@seed-ship/mcp-ui-spec';
|
|
38
41
|
export { ChatBusProvider, useChatBus } from './hooks/useChatBus';
|
|
39
42
|
export { ChatPrompt } from './components/ChatPrompt';
|
|
40
43
|
export { ElicitationForm } from './components/ElicitationForm';
|
|
@@ -64,6 +67,8 @@ export { markRenderStart, markRenderEnd, PERF_PREFIX } from './utils/perf';
|
|
|
64
67
|
export { getUiResourceStableKey } from './utils/stable-key';
|
|
65
68
|
export { setDuplicateMountReporter } from './utils/duplicate-mount-registry';
|
|
66
69
|
export type { DuplicateMountInfo, DuplicateMountReporter, } from './utils/duplicate-mount-registry';
|
|
70
|
+
export { MCPUIStringsProvider, MCPUIStringsContext, useMCPUIStrings, DEFAULT_MCPUI_STRINGS, } from './context/MCPUIStringsContext';
|
|
71
|
+
export type { MCPUIStrings, MCPUIStringsProviderProps, } from './context/MCPUIStringsContext';
|
|
67
72
|
export { MCPUITelemetryProvider, MCPUITelemetryContext, useTelemetry, } from './context/MCPUITelemetryContext';
|
|
68
73
|
export type { MCPUITelemetryProviderProps } from './context/MCPUITelemetryContext';
|
|
69
74
|
export { createTelemetryDispatcher } from './services/telemetry';
|
package/dist/index.d.ts
CHANGED
|
@@ -35,6 +35,9 @@ export { ExpandableWrapper, useExpanded } from './components/ExpandableWrapper';
|
|
|
35
35
|
export { ComponentToolbar } from './components/ComponentToolbar';
|
|
36
36
|
export { FeedbackInline } from './components/FeedbackInline';
|
|
37
37
|
export type { FeedbackInlineProps, FeedbackInlineContext } from './components/FeedbackInline';
|
|
38
|
+
export { PresentationFeedback, DEFAULT_PRESENTATION_FEEDBACK_LABELS, } from './components/PresentationFeedback';
|
|
39
|
+
export type { PresentationFeedbackProps, PresentationFeedbackLabels, } from './components/PresentationFeedback';
|
|
40
|
+
export type { ConnectorRenderFeedback, ConnectorRenderProblem, ConnectorPreferredLayout, } from '@seed-ship/mcp-ui-spec';
|
|
38
41
|
export { ChatBusProvider, useChatBus } from './hooks/useChatBus';
|
|
39
42
|
export { ChatPrompt } from './components/ChatPrompt';
|
|
40
43
|
export { ElicitationForm } from './components/ElicitationForm';
|
|
@@ -64,6 +67,8 @@ export { markRenderStart, markRenderEnd, PERF_PREFIX } from './utils/perf';
|
|
|
64
67
|
export { getUiResourceStableKey } from './utils/stable-key';
|
|
65
68
|
export { setDuplicateMountReporter } from './utils/duplicate-mount-registry';
|
|
66
69
|
export type { DuplicateMountInfo, DuplicateMountReporter, } from './utils/duplicate-mount-registry';
|
|
70
|
+
export { MCPUIStringsProvider, MCPUIStringsContext, useMCPUIStrings, DEFAULT_MCPUI_STRINGS, } from './context/MCPUIStringsContext';
|
|
71
|
+
export type { MCPUIStrings, MCPUIStringsProviderProps, } from './context/MCPUIStringsContext';
|
|
67
72
|
export { MCPUITelemetryProvider, MCPUITelemetryContext, useTelemetry, } from './context/MCPUITelemetryContext';
|
|
68
73
|
export type { MCPUITelemetryProviderProps } from './context/MCPUITelemetryContext';
|
|
69
74
|
export { createTelemetryDispatcher } from './services/telemetry';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { UIResourceRenderer, renderCellValue } from "./components/UIResourceRenderer.js";
|
|
2
2
|
import { StreamingUIRenderer } from "./components/StreamingUIRenderer.js";
|
|
3
|
+
import { DEFAULT_PRESENTATION_FEEDBACK_LABELS, PresentationFeedback } from "./components/PresentationFeedback.js";
|
|
3
4
|
import { GenerativeUIErrorBoundary } from "./components/GenerativeUIErrorBoundary.js";
|
|
4
5
|
import "solid-js/web";
|
|
5
6
|
import "solid-js";
|
|
@@ -41,6 +42,7 @@ import { isDebugEnabled, setDebugMode } from "./utils/logger.js";
|
|
|
41
42
|
import { PERF_PREFIX, markRenderEnd, markRenderStart } from "./utils/perf.js";
|
|
42
43
|
import { getUiResourceStableKey } from "./utils/stable-key.js";
|
|
43
44
|
import { setDuplicateMountReporter } from "./utils/duplicate-mount-registry.js";
|
|
45
|
+
import { DEFAULT_MCPUI_STRINGS, MCPUIStringsContext, MCPUIStringsProvider, useMCPUIStrings } from "./context/MCPUIStringsContext.js";
|
|
44
46
|
import { MCPUITelemetryContext, MCPUITelemetryProvider, useTelemetry } from "./context/MCPUITelemetryContext.js";
|
|
45
47
|
import { createTelemetryDispatcher } from "./services/telemetry.js";
|
|
46
48
|
import { useStreamingUI } from "./hooks/useStreamingUI.js";
|
|
@@ -76,6 +78,8 @@ export {
|
|
|
76
78
|
ComponentRegistry,
|
|
77
79
|
ComponentToolbar,
|
|
78
80
|
DEFAULT_IFRAME_DOMAINS,
|
|
81
|
+
DEFAULT_MCPUI_STRINGS,
|
|
82
|
+
DEFAULT_PRESENTATION_FEEDBACK_LABELS,
|
|
79
83
|
DEFAULT_RESOURCE_LIMITS,
|
|
80
84
|
DataPreviewSection,
|
|
81
85
|
DraggableGridItem,
|
|
@@ -89,10 +93,13 @@ export {
|
|
|
89
93
|
GraphRenderer,
|
|
90
94
|
MCPActionContext,
|
|
91
95
|
MCPActionProvider,
|
|
96
|
+
MCPUIStringsContext,
|
|
97
|
+
MCPUIStringsProvider,
|
|
92
98
|
MCPUITelemetryContext,
|
|
93
99
|
MCPUITelemetryProvider,
|
|
94
100
|
PERF_PREFIX,
|
|
95
101
|
PortalDropdownMenu,
|
|
102
|
+
PresentationFeedback,
|
|
96
103
|
PromptReplacedError,
|
|
97
104
|
ResizeHandle,
|
|
98
105
|
ScratchpadPanel,
|
|
@@ -146,6 +153,7 @@ export {
|
|
|
146
153
|
useFormPersistence,
|
|
147
154
|
useMCPAction,
|
|
148
155
|
useMCPActionSafe,
|
|
156
|
+
useMCPUIStrings,
|
|
149
157
|
useModal,
|
|
150
158
|
useResize,
|
|
151
159
|
useScratchpadState,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -545,11 +545,108 @@ types.object({
|
|
|
545
545
|
metadata: RegistryMetadataSchema.optional(),
|
|
546
546
|
components: types.array(ComponentSchema).min(1)
|
|
547
547
|
});
|
|
548
|
+
const ConnectorFollowupSchema = types.object({
|
|
549
|
+
/** Display text of the suggestion. */
|
|
550
|
+
label: types.string().min(1),
|
|
551
|
+
/** The follow-up query to run when the suggestion is picked. */
|
|
552
|
+
query: types.string().optional(),
|
|
553
|
+
/** Normalized intent of the follow-up query. */
|
|
554
|
+
intent: types.string().optional(),
|
|
555
|
+
/** What kind of follow-up this is — drives grouping / iconography. */
|
|
556
|
+
kind: types.enum(["refine", "compare", "expand", "clarify"]).optional()
|
|
557
|
+
});
|
|
558
|
+
const ConnectorActionSchema = ActionParamsSchema;
|
|
559
|
+
const ConnectorPreferredLayoutSchema = types.enum([
|
|
560
|
+
"table",
|
|
561
|
+
"cards",
|
|
562
|
+
"bar",
|
|
563
|
+
"line",
|
|
564
|
+
"doughnut",
|
|
565
|
+
"map",
|
|
566
|
+
"metric"
|
|
567
|
+
]);
|
|
568
|
+
const ConnectorRenderHintsSchema = types.object({
|
|
569
|
+
/** Preferred top-level layout for `primary`. */
|
|
570
|
+
preferredLayout: ConnectorPreferredLayoutSchema.optional(),
|
|
571
|
+
/** Data domain — drives presets/examples, NOT the same axis as `intent`. */
|
|
572
|
+
domain: types.enum(["real_estate", "dpe", "pollution", "employment", "education", "health", "generic"]).optional(),
|
|
573
|
+
/** Connector's confidence in the result, 0..1. */
|
|
574
|
+
confidence: types.number().min(0).max(1).optional()
|
|
575
|
+
});
|
|
576
|
+
const CONNECTOR_DYNAMIC_RESULT_V1 = "connector-dynamic-result/v1";
|
|
577
|
+
const ConnectorDynamicResultV1Schema = types.object({
|
|
578
|
+
/** Version discriminant — REQUIRED. */
|
|
579
|
+
schemaVersion: types.literal(CONNECTOR_DYNAMIC_RESULT_V1),
|
|
580
|
+
/** Stable id of the connector that produced this result. */
|
|
581
|
+
connectorId: types.string().min(1),
|
|
582
|
+
/** MCP tool that was invoked. */
|
|
583
|
+
toolName: types.string().min(1),
|
|
584
|
+
/** The raw user query. */
|
|
585
|
+
query: types.string(),
|
|
586
|
+
/**
|
|
587
|
+
* Stable key for storing / retrieving persisted presentation feedback.
|
|
588
|
+
* Optional in the payload, but REQUIRED once a feedback entry is
|
|
589
|
+
* persisted against this result. Recommended derivation :
|
|
590
|
+
* `hash(connectorId + toolName + normalizedIntent)` — NOT the raw query,
|
|
591
|
+
* so two close phrasings of the same ask share the key.
|
|
592
|
+
*/
|
|
593
|
+
queryHash: types.string().optional(),
|
|
594
|
+
/** Normalized user intent (e.g. `real_estate_city`, `dpe_city`). */
|
|
595
|
+
intent: types.string().optional(),
|
|
596
|
+
/** Primary result — a `UIComponent` or `UILayout` (passthrough, see header). */
|
|
597
|
+
primary: types.record(types.unknown()),
|
|
598
|
+
/** Supplemental components — related datasets, source cards, etc. */
|
|
599
|
+
supplemental: types.array(types.record(types.unknown())).optional(),
|
|
600
|
+
/** Follow-up actions (tool calls / links) the user can trigger. */
|
|
601
|
+
actions: types.array(ConnectorActionSchema).optional(),
|
|
602
|
+
/** Suggested follow-up queries. */
|
|
603
|
+
followups: types.array(ConnectorFollowupSchema).optional(),
|
|
604
|
+
/** Non-binding rendering hints. */
|
|
605
|
+
renderHints: ConnectorRenderHintsSchema.optional()
|
|
606
|
+
});
|
|
607
|
+
const ConnectorRenderProblemSchema = types.enum([
|
|
608
|
+
"too_raw",
|
|
609
|
+
"wrong_columns",
|
|
610
|
+
"wrong_chart",
|
|
611
|
+
"missing_context",
|
|
612
|
+
"wrong_unit",
|
|
613
|
+
"bad_grouping",
|
|
614
|
+
"missing_dataset_context"
|
|
615
|
+
]);
|
|
616
|
+
types.object({
|
|
617
|
+
/** Connector whose result is being rated. */
|
|
618
|
+
connectorId: types.string().min(1),
|
|
619
|
+
/** Tool that produced the result. */
|
|
620
|
+
toolName: types.string().min(1),
|
|
621
|
+
/** Stable key tying this feedback to a `ConnectorDynamicResultV1.queryHash`. */
|
|
622
|
+
queryHash: types.string().optional(),
|
|
623
|
+
/** What was rated (e.g. `'primary'`, `'supplemental'`). */
|
|
624
|
+
renderKind: types.string().optional(),
|
|
625
|
+
/** The layout type that was shown (e.g. `'table'`, `'bar'`). */
|
|
626
|
+
layoutType: types.string().optional(),
|
|
627
|
+
/** Overall judgement — REQUIRED. */
|
|
628
|
+
verdict: types.enum(["readable", "not_readable"]),
|
|
629
|
+
/** Zero or more precise problems (refines a `not_readable` verdict). */
|
|
630
|
+
problems: types.array(ConnectorRenderProblemSchema).optional(),
|
|
631
|
+
/** Layout the user would prefer instead. */
|
|
632
|
+
preferredLayout: ConnectorPreferredLayoutSchema.optional(),
|
|
633
|
+
/** Fields the user says are missing from the render. */
|
|
634
|
+
missingFields: types.array(types.string()).optional(),
|
|
635
|
+
/** Columns the user wishes were shown. */
|
|
636
|
+
selectedColumns: types.array(types.string()).optional(),
|
|
637
|
+
/** A unit the user flags as wrong. */
|
|
638
|
+
wrongUnit: types.string().optional(),
|
|
639
|
+
/** A grouping the user flags as wrong. */
|
|
640
|
+
wrongGrouping: types.string().optional(),
|
|
641
|
+
/** Free-text comment. */
|
|
642
|
+
comment: types.string().optional()
|
|
643
|
+
});
|
|
548
644
|
exports.ActionGroupGapSchema = ActionGroupGapSchema;
|
|
549
645
|
exports.ActionGroupLayoutSchema = ActionGroupLayoutSchema;
|
|
550
646
|
exports.ActionGroupParamsSchema = ActionGroupParamsSchema;
|
|
551
647
|
exports.ActionParamsSchema = ActionParamsSchema;
|
|
552
648
|
exports.ArtifactComponentParamsSchema = ArtifactComponentParamsSchema;
|
|
649
|
+
exports.CONNECTOR_DYNAMIC_RESULT_V1 = CONNECTOR_DYNAMIC_RESULT_V1;
|
|
553
650
|
exports.CarouselComponentParamsSchema = CarouselComponentParamsSchema;
|
|
554
651
|
exports.ChartDatasetSchema = ChartDatasetSchema;
|
|
555
652
|
exports.ChartTimeAxisSchema = ChartTimeAxisSchema;
|
|
@@ -560,6 +657,12 @@ exports.ComponentExampleSchema = ComponentExampleSchema;
|
|
|
560
657
|
exports.ComponentSchema = ComponentSchema;
|
|
561
658
|
exports.ComponentSchemaSchema = ComponentSchemaSchema;
|
|
562
659
|
exports.ComponentTypeSchema = ComponentTypeSchema;
|
|
660
|
+
exports.ConnectorActionSchema = ConnectorActionSchema;
|
|
661
|
+
exports.ConnectorDynamicResultV1Schema = ConnectorDynamicResultV1Schema;
|
|
662
|
+
exports.ConnectorFollowupSchema = ConnectorFollowupSchema;
|
|
663
|
+
exports.ConnectorPreferredLayoutSchema = ConnectorPreferredLayoutSchema;
|
|
664
|
+
exports.ConnectorRenderHintsSchema = ConnectorRenderHintsSchema;
|
|
665
|
+
exports.ConnectorRenderProblemSchema = ConnectorRenderProblemSchema;
|
|
563
666
|
exports.FormComponentParamsSchema = FormComponentParamsSchema;
|
|
564
667
|
exports.FormFieldOptionSchema = FormFieldOptionSchema;
|
|
565
668
|
exports.FormFieldSchema = FormFieldSchema;
|