sunpeak 0.20.36 → 0.20.42
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/README.md +4 -2
- package/bin/commands/inspect.mjs +225 -34
- package/bin/commands/test-init.mjs +4 -0
- package/bin/lib/eval/eval-runner.mjs +49 -1
- package/bin/lib/eval/eval-types.d.mts +27 -0
- package/bin/lib/eval/model-registry.mjs +6 -3
- package/dist/chatgpt/index.cjs +1 -1
- package/dist/chatgpt/index.js +1 -1
- package/dist/claude/index.cjs +1 -1
- package/dist/claude/index.js +1 -1
- package/dist/embed.css +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/inspector/index.cjs +1 -1
- package/dist/inspector/index.js +1 -1
- package/dist/inspector/inspector.d.ts +7 -0
- package/dist/inspector/use-inspector-state.d.ts +28 -0
- package/dist/{inspector-CiuT_2yA.js → inspector-C6n8zap3.js} +172 -57
- package/dist/{inspector-CiuT_2yA.js.map → inspector-C6n8zap3.js.map} +1 -1
- package/dist/{inspector-BNWla95w.cjs → inspector-DOmiG64-.cjs} +172 -57
- package/dist/{inspector-BNWla95w.cjs.map → inspector-DOmiG64-.cjs.map} +1 -1
- package/dist/style.css +22 -0
- package/package.json +1 -1
- package/template/dist/albums/albums.html +1 -1
- package/template/dist/albums/albums.json +1 -1
- package/template/dist/carousel/carousel.html +1 -1
- package/template/dist/carousel/carousel.json +1 -1
- package/template/dist/map/map.html +1 -1
- package/template/dist/map/map.json +1 -1
- package/template/dist/review/review.html +1 -1
- package/template/dist/review/review.json +1 -1
- package/template/tests/e2e/visual.spec.ts-snapshots/albums-fullscreen-chatgpt-linux.png +0 -0
- package/template/tests/e2e/visual.spec.ts-snapshots/albums-fullscreen-claude-linux.png +0 -0
|
@@ -6538,6 +6538,9 @@ var VALID_SCREEN_WIDTHS = new Set([
|
|
|
6538
6538
|
"tablet",
|
|
6539
6539
|
"full"
|
|
6540
6540
|
]);
|
|
6541
|
+
function isSafeStoredString(value) {
|
|
6542
|
+
return typeof value === "string" && value.length <= 200 && !/[\u0000-\u001f\u007f]/.test(value);
|
|
6543
|
+
}
|
|
6541
6544
|
function sanitizeStoredPrefs(raw) {
|
|
6542
6545
|
if (!raw || typeof raw !== "object") return {};
|
|
6543
6546
|
const obj = raw;
|
|
@@ -6545,6 +6548,8 @@ function sanitizeStoredPrefs(raw) {
|
|
|
6545
6548
|
if (typeof obj.theme === "string" && VALID_THEMES.has(obj.theme)) prefs.theme = obj.theme;
|
|
6546
6549
|
if (typeof obj.locale === "string") prefs.locale = obj.locale;
|
|
6547
6550
|
if (typeof obj.displayMode === "string" && VALID_DISPLAY_MODES.has(obj.displayMode)) prefs.displayMode = obj.displayMode;
|
|
6551
|
+
if (typeof obj.containerHeight === "number" && Number.isFinite(obj.containerHeight)) prefs.containerHeight = obj.containerHeight;
|
|
6552
|
+
if (typeof obj.containerWidth === "number" && Number.isFinite(obj.containerWidth)) prefs.containerWidth = obj.containerWidth;
|
|
6548
6553
|
if (typeof obj.containerMaxHeight === "number" && Number.isFinite(obj.containerMaxHeight)) prefs.containerMaxHeight = obj.containerMaxHeight;
|
|
6549
6554
|
if (typeof obj.containerMaxWidth === "number" && Number.isFinite(obj.containerMaxWidth)) prefs.containerMaxWidth = obj.containerMaxWidth;
|
|
6550
6555
|
if (obj.safeAreaInsets && typeof obj.safeAreaInsets === "object") {
|
|
@@ -6563,6 +6568,10 @@ function sanitizeStoredPrefs(raw) {
|
|
|
6563
6568
|
if (typeof obj.screenWidth === "string" && VALID_SCREEN_WIDTHS.has(obj.screenWidth)) prefs.screenWidth = obj.screenWidth;
|
|
6564
6569
|
if (typeof obj.sidebarWidth === "number" && Number.isFinite(obj.sidebarWidth)) prefs.sidebarWidth = Math.max(DEFAULT_SIDEBAR_WIDTH$1, Math.round(obj.sidebarWidth));
|
|
6565
6570
|
if (typeof obj.rightSidebarWidth === "number" && Number.isFinite(obj.rightSidebarWidth)) prefs.rightSidebarWidth = Math.max(DEFAULT_SIDEBAR_WIDTH$1, Math.round(obj.rightSidebarWidth));
|
|
6571
|
+
if (typeof obj.timeZone === "string") prefs.timeZone = obj.timeZone;
|
|
6572
|
+
if (typeof obj.prodResources === "boolean") prefs.prodResources = obj.prodResources;
|
|
6573
|
+
if (isSafeStoredString(obj.modelProvider)) prefs.modelProvider = obj.modelProvider;
|
|
6574
|
+
if (isSafeStoredString(obj.modelId)) prefs.modelId = obj.modelId;
|
|
6566
6575
|
return prefs;
|
|
6567
6576
|
}
|
|
6568
6577
|
function readStoredPrefs() {
|
|
@@ -6575,6 +6584,12 @@ function readStoredPrefs() {
|
|
|
6575
6584
|
return {};
|
|
6576
6585
|
}
|
|
6577
6586
|
}
|
|
6587
|
+
function writeStoredPrefs(prefs) {
|
|
6588
|
+
if (typeof window === "undefined") return;
|
|
6589
|
+
try {
|
|
6590
|
+
localStorage.setItem(PREFS_KEY, JSON.stringify(prefs));
|
|
6591
|
+
} catch {}
|
|
6592
|
+
}
|
|
6578
6593
|
function deriveContainerDimensions({ displayMode, containerHeight, containerWidth, containerMaxHeight, containerMaxWidth, measuredContentWidth, viewportHeight = 800, viewportWidth = 1280 }) {
|
|
6579
6594
|
if (containerHeight != null || containerWidth != null || containerMaxHeight != null || containerMaxWidth != null) return {
|
|
6580
6595
|
...containerHeight != null ? { height: containerHeight } : {},
|
|
@@ -6623,8 +6638,8 @@ function useInspectorState({ simulations, defaultHost = "chatgpt", preserveToolD
|
|
|
6623
6638
|
const [theme, setTheme] = useState(urlParams.theme ?? storedPrefs.theme ?? DEFAULT_THEME);
|
|
6624
6639
|
const [displayMode, _setDisplayMode] = useState(urlParams.displayMode ?? storedPrefs.displayMode ?? DEFAULT_DISPLAY_MODE);
|
|
6625
6640
|
const [locale, setLocale] = useState(urlParams.locale ?? storedPrefs.locale ?? "en-US");
|
|
6626
|
-
const [containerHeight, setContainerHeight] = useState(
|
|
6627
|
-
const [containerWidth, setContainerWidth] = useState(
|
|
6641
|
+
const [containerHeight, setContainerHeight] = useState(storedPrefs.containerHeight);
|
|
6642
|
+
const [containerWidth, setContainerWidth] = useState(storedPrefs.containerWidth);
|
|
6628
6643
|
const [containerMaxHeight, setContainerMaxHeight] = useState(urlParams.containerMaxHeight ?? storedPrefs.containerMaxHeight);
|
|
6629
6644
|
const [containerMaxWidth, setContainerMaxWidth] = useState(urlParams.containerMaxWidth ?? storedPrefs.containerMaxWidth);
|
|
6630
6645
|
const [platform, setPlatform] = useState(urlParams.platform ?? storedPrefs.platform ?? DEFAULT_PLATFORM);
|
|
@@ -6636,7 +6651,7 @@ function useInspectorState({ simulations, defaultHost = "chatgpt", preserveToolD
|
|
|
6636
6651
|
left: 0,
|
|
6637
6652
|
right: 0
|
|
6638
6653
|
});
|
|
6639
|
-
const [timeZone, setTimeZone] = useState(() => Intl.DateTimeFormat().resolvedOptions().timeZone);
|
|
6654
|
+
const [timeZone, setTimeZone] = useState(() => storedPrefs.timeZone ?? Intl.DateTimeFormat().resolvedOptions().timeZone);
|
|
6640
6655
|
const isFirstRender = useRef(true);
|
|
6641
6656
|
useEffect(() => {
|
|
6642
6657
|
if (isFirstRender.current) {
|
|
@@ -6644,29 +6659,32 @@ function useInspectorState({ simulations, defaultHost = "chatgpt", preserveToolD
|
|
|
6644
6659
|
return;
|
|
6645
6660
|
}
|
|
6646
6661
|
if (autoRun) return;
|
|
6647
|
-
|
|
6648
|
-
|
|
6649
|
-
|
|
6650
|
-
|
|
6651
|
-
|
|
6652
|
-
|
|
6653
|
-
|
|
6654
|
-
|
|
6655
|
-
|
|
6656
|
-
|
|
6657
|
-
|
|
6658
|
-
|
|
6659
|
-
|
|
6660
|
-
|
|
6661
|
-
|
|
6662
|
-
|
|
6663
|
-
|
|
6664
|
-
|
|
6662
|
+
writeStoredPrefs({
|
|
6663
|
+
...readStoredPrefs(),
|
|
6664
|
+
theme,
|
|
6665
|
+
locale,
|
|
6666
|
+
displayMode,
|
|
6667
|
+
containerHeight,
|
|
6668
|
+
containerWidth,
|
|
6669
|
+
containerMaxHeight,
|
|
6670
|
+
containerMaxWidth,
|
|
6671
|
+
safeAreaInsets,
|
|
6672
|
+
activeHost,
|
|
6673
|
+
platform,
|
|
6674
|
+
hover,
|
|
6675
|
+
touch,
|
|
6676
|
+
screenWidth,
|
|
6677
|
+
sidebarWidth,
|
|
6678
|
+
rightSidebarWidth,
|
|
6679
|
+
timeZone
|
|
6680
|
+
});
|
|
6665
6681
|
}, [
|
|
6666
6682
|
autoRun,
|
|
6667
6683
|
theme,
|
|
6668
6684
|
locale,
|
|
6669
6685
|
displayMode,
|
|
6686
|
+
containerHeight,
|
|
6687
|
+
containerWidth,
|
|
6670
6688
|
containerMaxHeight,
|
|
6671
6689
|
containerMaxWidth,
|
|
6672
6690
|
safeAreaInsets,
|
|
@@ -6676,7 +6694,8 @@ function useInspectorState({ simulations, defaultHost = "chatgpt", preserveToolD
|
|
|
6676
6694
|
touch,
|
|
6677
6695
|
screenWidth,
|
|
6678
6696
|
sidebarWidth,
|
|
6679
|
-
rightSidebarWidth
|
|
6697
|
+
rightSidebarWidth,
|
|
6698
|
+
timeZone
|
|
6680
6699
|
]);
|
|
6681
6700
|
const [measuredContentWidth, setMeasuredContentWidth] = useState(void 0);
|
|
6682
6701
|
const handleContentWidthChange = useCallback((width) => {
|
|
@@ -7589,12 +7608,16 @@ var DOCS_BASE_URL = "https://sunpeak.ai/docs";
|
|
|
7589
7608
|
var DEFAULT_MODEL_PROVIDERS = [{
|
|
7590
7609
|
id: "openai",
|
|
7591
7610
|
label: "OpenAI",
|
|
7592
|
-
defaultModel: "gpt-
|
|
7611
|
+
defaultModel: "gpt-5.5"
|
|
7593
7612
|
}, {
|
|
7594
7613
|
id: "anthropic",
|
|
7595
7614
|
label: "Anthropic",
|
|
7596
|
-
defaultModel: "claude-
|
|
7615
|
+
defaultModel: "claude-sonnet-4-20250514"
|
|
7597
7616
|
}];
|
|
7617
|
+
function createModelConversationId() {
|
|
7618
|
+
const random = typeof crypto !== "undefined" && typeof crypto.randomUUID === "function" ? crypto.randomUUID() : Math.random().toString(36).slice(2);
|
|
7619
|
+
return `model-chat-${Date.now()}-${random}`;
|
|
7620
|
+
}
|
|
7598
7621
|
function splitCssArgs(value) {
|
|
7599
7622
|
const args = [];
|
|
7600
7623
|
let depth = 0;
|
|
@@ -7687,6 +7710,7 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
7687
7710
|
autoRun: params.get("autoRun") === "true"
|
|
7688
7711
|
};
|
|
7689
7712
|
}, []);
|
|
7713
|
+
const storedPrefs = React.useMemo(() => initUrlParams.autoRun ? {} : readStoredPrefs(), [initUrlParams.autoRun]);
|
|
7690
7714
|
const [selectedToolName, setSelectedToolName] = React.useState(() => {
|
|
7691
7715
|
if (initUrlParams.tool && toolMap.has(initUrlParams.tool)) return initUrlParams.tool;
|
|
7692
7716
|
if (initUrlParams.simulation) {
|
|
@@ -7736,7 +7760,7 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
7736
7760
|
const [oauthStatus, setOauthStatus] = React.useState("none");
|
|
7737
7761
|
const [oauthError, setOauthError] = React.useState();
|
|
7738
7762
|
const connection = useMcpConnection(isEmbedded ? void 0 : mcpServerUrl || void 0, inspectorApiBaseUrl);
|
|
7739
|
-
const [prodResources, setProdResources] = React.useState(state.urlProdResources ?? defaultProdResources);
|
|
7763
|
+
const [prodResources, setProdResources] = React.useState(state.urlProdResources ?? storedPrefs.prodResources ?? defaultProdResources);
|
|
7740
7764
|
const showSidebar = state.urlSidebar !== false;
|
|
7741
7765
|
const showDevOverlay = state.urlDevOverlay !== false;
|
|
7742
7766
|
const [isRunning, setIsRunning] = React.useState(false);
|
|
@@ -7758,6 +7782,15 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
7758
7782
|
if (requested && modelProviderOptions.some((provider) => provider.id === requested)) return requested;
|
|
7759
7783
|
return modelProviderOptions[0]?.id ?? "openai";
|
|
7760
7784
|
}, [modelChat?.defaultProvider, modelProviderOptions]);
|
|
7785
|
+
const initialModelProvider = React.useMemo(() => {
|
|
7786
|
+
const stored = storedPrefs.modelProvider;
|
|
7787
|
+
if (stored && modelProviderOptions.some((provider) => provider.id === stored)) return stored;
|
|
7788
|
+
return defaultModelProvider;
|
|
7789
|
+
}, [
|
|
7790
|
+
defaultModelProvider,
|
|
7791
|
+
modelProviderOptions,
|
|
7792
|
+
storedPrefs.modelProvider
|
|
7793
|
+
]);
|
|
7761
7794
|
const getDefaultModelId = React.useCallback((provider) => {
|
|
7762
7795
|
const option = modelProviderOptions.find((item) => item.id === provider);
|
|
7763
7796
|
const candidates = [
|
|
@@ -7769,8 +7802,20 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
7769
7802
|
if (providerModels.length === 0) return candidates.find(Boolean) ?? "";
|
|
7770
7803
|
return candidates.find((model) => model && providerModels.includes(model)) ?? providerModels[0];
|
|
7771
7804
|
}, [modelChat?.defaultModel, modelProviderOptions]);
|
|
7772
|
-
const
|
|
7773
|
-
|
|
7805
|
+
const getInitialModelId = React.useCallback((provider) => {
|
|
7806
|
+
const stored = storedPrefs.modelId;
|
|
7807
|
+
if (storedPrefs.modelProvider && storedPrefs.modelProvider !== provider) return getDefaultModelId(provider);
|
|
7808
|
+
const providerModels = modelProviderOptions.find((item) => item.id === provider)?.models ?? [];
|
|
7809
|
+
if (stored && (providerModels.length === 0 || providerModels.includes(stored))) return stored;
|
|
7810
|
+
return getDefaultModelId(provider);
|
|
7811
|
+
}, [
|
|
7812
|
+
getDefaultModelId,
|
|
7813
|
+
modelProviderOptions,
|
|
7814
|
+
storedPrefs.modelId,
|
|
7815
|
+
storedPrefs.modelProvider
|
|
7816
|
+
]);
|
|
7817
|
+
const [modelProvider, setModelProvider] = React.useState(initialModelProvider);
|
|
7818
|
+
const [modelId, setModelId] = React.useState(() => getInitialModelId(initialModelProvider));
|
|
7774
7819
|
const [apiKeyDraft, setApiKeyDraft] = React.useState("");
|
|
7775
7820
|
const [keyStatus, setKeyStatus] = React.useState({ hasKey: false });
|
|
7776
7821
|
const [isKeyStatusLoading, setIsKeyStatusLoading] = React.useState(usesApiKeyUi);
|
|
@@ -7779,6 +7824,7 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
7779
7824
|
const [chatInput, setChatInput] = React.useState("");
|
|
7780
7825
|
const [isChatting, setIsChatting] = React.useState(false);
|
|
7781
7826
|
const [chatStatus, setChatStatus] = React.useState("");
|
|
7827
|
+
const modelConversationIdRef = React.useRef(createModelConversationId());
|
|
7782
7828
|
const currentModelProvider = React.useMemo(() => modelProviderOptions.find((provider) => provider.id === modelProvider), [modelProvider, modelProviderOptions]);
|
|
7783
7829
|
const selectedProviderModelOptions = React.useMemo(() => currentModelProvider?.models ?? [], [currentModelProvider?.models]);
|
|
7784
7830
|
const modelCallableTools = React.useMemo(() => {
|
|
@@ -7789,6 +7835,25 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
7789
7835
|
}
|
|
7790
7836
|
return Array.from(map.values());
|
|
7791
7837
|
}, [simulations]);
|
|
7838
|
+
const isFirstInspectorPrefsRender = React.useRef(true);
|
|
7839
|
+
React.useEffect(() => {
|
|
7840
|
+
if (isFirstInspectorPrefsRender.current) {
|
|
7841
|
+
isFirstInspectorPrefsRender.current = false;
|
|
7842
|
+
return;
|
|
7843
|
+
}
|
|
7844
|
+
if (initUrlParams.autoRun) return;
|
|
7845
|
+
writeStoredPrefs({
|
|
7846
|
+
...readStoredPrefs(),
|
|
7847
|
+
prodResources,
|
|
7848
|
+
modelProvider,
|
|
7849
|
+
modelId
|
|
7850
|
+
});
|
|
7851
|
+
}, [
|
|
7852
|
+
initUrlParams.autoRun,
|
|
7853
|
+
modelId,
|
|
7854
|
+
modelProvider,
|
|
7855
|
+
prodResources
|
|
7856
|
+
]);
|
|
7792
7857
|
React.useEffect(() => {
|
|
7793
7858
|
setServerUrl(mcpServerUrl ?? "");
|
|
7794
7859
|
}, [mcpServerUrl]);
|
|
@@ -7898,6 +7963,13 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
7898
7963
|
usesApiKeyUi,
|
|
7899
7964
|
usesLocalModelEndpoints
|
|
7900
7965
|
]);
|
|
7966
|
+
const handleResetModelConversation = React.useCallback(() => {
|
|
7967
|
+
modelConversationIdRef.current = createModelConversationId();
|
|
7968
|
+
setChatMessages([]);
|
|
7969
|
+
setChatInput("");
|
|
7970
|
+
setChatStatus("");
|
|
7971
|
+
setIsChatting(false);
|
|
7972
|
+
}, []);
|
|
7901
7973
|
React.useEffect(() => {
|
|
7902
7974
|
state.setSelectedSimulationName(effectiveSimulationName);
|
|
7903
7975
|
}, [effectiveSimulationName]);
|
|
@@ -8158,15 +8230,18 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
8158
8230
|
state.setToolResultJson("");
|
|
8159
8231
|
state.setToolResultError("");
|
|
8160
8232
|
setHasRun(false);
|
|
8233
|
+
const requestConversationId = modelConversationIdRef.current;
|
|
8161
8234
|
try {
|
|
8162
8235
|
const messages = nextMessages.map((message) => ({
|
|
8163
8236
|
role: message.role,
|
|
8164
|
-
content: message.content
|
|
8165
|
-
}));
|
|
8237
|
+
content: message.content.trim()
|
|
8238
|
+
})).filter((message) => message.content.length > 0);
|
|
8166
8239
|
let data;
|
|
8167
8240
|
if (modelChatHandler) data = await modelChatHandler({
|
|
8241
|
+
conversationId: requestConversationId,
|
|
8168
8242
|
provider: modelProvider,
|
|
8169
8243
|
modelId,
|
|
8244
|
+
host: state.activeHost,
|
|
8170
8245
|
messages,
|
|
8171
8246
|
tools: modelCallableTools,
|
|
8172
8247
|
appContext: state.modelAppContext ?? void 0
|
|
@@ -8177,8 +8252,10 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
8177
8252
|
method: "POST",
|
|
8178
8253
|
headers: { "Content-Type": "application/json" },
|
|
8179
8254
|
body: JSON.stringify({
|
|
8255
|
+
conversationId: requestConversationId,
|
|
8180
8256
|
provider: modelProvider,
|
|
8181
8257
|
modelId,
|
|
8258
|
+
host: state.activeHost,
|
|
8182
8259
|
messages,
|
|
8183
8260
|
appContext: state.modelAppContext ?? void 0
|
|
8184
8261
|
})
|
|
@@ -8187,6 +8264,7 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
8187
8264
|
if (!res.ok || data.error) throw new Error(data.error ?? `Model request failed (${res.status})`);
|
|
8188
8265
|
}
|
|
8189
8266
|
if (data.error) throw new Error(data.error);
|
|
8267
|
+
if (requestConversationId !== modelConversationIdRef.current) return;
|
|
8190
8268
|
let rendersApp = false;
|
|
8191
8269
|
const toolCalls = data.toolCalls ?? [];
|
|
8192
8270
|
for (let index = toolCalls.length - 1; index >= 0; index--) {
|
|
@@ -8224,6 +8302,7 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
8224
8302
|
});
|
|
8225
8303
|
setChatStatus("");
|
|
8226
8304
|
} catch (err) {
|
|
8305
|
+
if (requestConversationId !== modelConversationIdRef.current) return;
|
|
8227
8306
|
const message = err instanceof Error ? err.message : String(err);
|
|
8228
8307
|
setChatMessages((messages) => [...messages, {
|
|
8229
8308
|
id: `assistant-error-${Date.now()}`,
|
|
@@ -8232,7 +8311,7 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
8232
8311
|
}]);
|
|
8233
8312
|
setChatStatus(message);
|
|
8234
8313
|
} finally {
|
|
8235
|
-
setIsChatting(false);
|
|
8314
|
+
if (requestConversationId === modelConversationIdRef.current) setIsChatting(false);
|
|
8236
8315
|
}
|
|
8237
8316
|
}, [
|
|
8238
8317
|
canUseModelChat,
|
|
@@ -8846,33 +8925,69 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
8846
8925
|
children: /* @__PURE__ */ jsxs("div", {
|
|
8847
8926
|
className: "space-y-1",
|
|
8848
8927
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
8849
|
-
className: "grid grid-cols-
|
|
8850
|
-
children: [
|
|
8851
|
-
|
|
8852
|
-
|
|
8853
|
-
|
|
8854
|
-
|
|
8855
|
-
|
|
8856
|
-
|
|
8857
|
-
|
|
8858
|
-
|
|
8859
|
-
|
|
8860
|
-
|
|
8861
|
-
|
|
8862
|
-
|
|
8863
|
-
|
|
8864
|
-
|
|
8865
|
-
|
|
8866
|
-
|
|
8867
|
-
|
|
8868
|
-
|
|
8869
|
-
|
|
8870
|
-
|
|
8871
|
-
|
|
8872
|
-
|
|
8873
|
-
|
|
8928
|
+
className: "grid grid-cols-[0.7fr_minmax(0,1fr)_1.75rem] items-end gap-2",
|
|
8929
|
+
children: [
|
|
8930
|
+
/* @__PURE__ */ jsx(SidebarControl, {
|
|
8931
|
+
label: "Provider",
|
|
8932
|
+
children: /* @__PURE__ */ jsx(SidebarSelect, {
|
|
8933
|
+
value: modelProvider,
|
|
8934
|
+
onChange: handleModelProviderChange,
|
|
8935
|
+
options: modelProviderOptions.map((provider) => ({
|
|
8936
|
+
value: provider.id,
|
|
8937
|
+
label: provider.label ?? provider.id
|
|
8938
|
+
}))
|
|
8939
|
+
})
|
|
8940
|
+
}),
|
|
8941
|
+
/* @__PURE__ */ jsx(SidebarControl, {
|
|
8942
|
+
label: "Model",
|
|
8943
|
+
children: selectedProviderModelOptions.length > 0 ? /* @__PURE__ */ jsx(SidebarSelect, {
|
|
8944
|
+
value: modelId,
|
|
8945
|
+
onChange: setModelId,
|
|
8946
|
+
options: selectedProviderModelOptions.map((model) => ({
|
|
8947
|
+
value: model,
|
|
8948
|
+
label: model
|
|
8949
|
+
}))
|
|
8950
|
+
}) : /* @__PURE__ */ jsx(SidebarInput, {
|
|
8951
|
+
value: modelId,
|
|
8952
|
+
onChange: setModelId,
|
|
8953
|
+
applyOnBlur: true,
|
|
8954
|
+
placeholder: getDefaultModelId(modelProvider)
|
|
8955
|
+
})
|
|
8956
|
+
}),
|
|
8957
|
+
/* @__PURE__ */ jsxs("div", {
|
|
8958
|
+
className: "group relative flex h-7 items-center self-end",
|
|
8959
|
+
children: [/* @__PURE__ */ jsx("button", {
|
|
8960
|
+
type: "button",
|
|
8961
|
+
onClick: handleResetModelConversation,
|
|
8962
|
+
disabled: chatMessages.length === 0 && !isChatting && !chatStatus,
|
|
8963
|
+
"aria-label": "Reset model conversation",
|
|
8964
|
+
"aria-describedby": "reset-model-conversation-tooltip",
|
|
8965
|
+
title: "Reset conversation",
|
|
8966
|
+
className: "flex h-7 w-7 cursor-pointer items-center justify-center rounded-full transition-colors disabled:cursor-not-allowed disabled:opacity-40",
|
|
8967
|
+
style: {
|
|
8968
|
+
backgroundColor: "var(--color-background-primary)",
|
|
8969
|
+
color: "var(--color-text-primary)"
|
|
8970
|
+
},
|
|
8971
|
+
children: /* @__PURE__ */ jsx("svg", {
|
|
8972
|
+
width: "18",
|
|
8973
|
+
height: "18",
|
|
8974
|
+
viewBox: "0 0 24 24",
|
|
8975
|
+
fill: "currentColor",
|
|
8976
|
+
"aria-hidden": "true",
|
|
8977
|
+
children: /* @__PURE__ */ jsx("path", { d: "M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-8 3.58-8 8s3.58 8 8 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h8V3z" })
|
|
8978
|
+
})
|
|
8979
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
8980
|
+
id: "reset-model-conversation-tooltip",
|
|
8981
|
+
role: "tooltip",
|
|
8982
|
+
className: "pointer-events-none absolute right-0 top-full z-[1000] mt-1 hidden whitespace-nowrap rounded px-2 py-1 text-[11px] font-normal leading-tight group-focus-within:block group-hover:block",
|
|
8983
|
+
style: {
|
|
8984
|
+
backgroundColor: "var(--color-text-primary)",
|
|
8985
|
+
color: "var(--color-background-primary)"
|
|
8986
|
+
},
|
|
8987
|
+
children: "Reset conversation"
|
|
8988
|
+
})]
|
|
8874
8989
|
})
|
|
8875
|
-
|
|
8990
|
+
]
|
|
8876
8991
|
}), usesApiKeyUi && /* @__PURE__ */ jsxs(SidebarControl, {
|
|
8877
8992
|
label: "API Key",
|
|
8878
8993
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
@@ -9260,4 +9375,4 @@ function Inspector({ children, app, simulations: initialSimulationsProp = EMPTY_
|
|
|
9260
9375
|
//#endregion
|
|
9261
9376
|
export { cn as C, registerHostShell as S, extractResourceCSP as _, SidebarCollapsibleControl as a, getHostShell as b, SidebarSelect as c, SimpleSidebar as d, ThemeProvider as f, IframeResource as g, useInspectorState as h, SidebarCheckbox as i, SidebarTextarea as l, useMcpConnection as m, flattenAppToSimulations as n, SidebarControl as o, useThemeContext as p, resolveServerToolResult as r, SidebarInput as s, Inspector as t, SidebarToggle as u, McpAppHost as v, DEFAULT_STYLE_VARIABLES as w, getRegisteredHosts as x, SCREEN_WIDTHS as y };
|
|
9262
9377
|
|
|
9263
|
-
//# sourceMappingURL=inspector-
|
|
9378
|
+
//# sourceMappingURL=inspector-C6n8zap3.js.map
|