sunpeak 0.19.4 → 0.19.12
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 +6 -4
- package/bin/commands/dev.mjs +1 -1
- package/bin/commands/inspect.mjs +1 -1
- package/bin/commands/new.mjs +92 -10
- package/bin/commands/start.mjs +3 -1
- package/bin/commands/test-init.mjs +548 -76
- package/bin/commands/test.mjs +401 -4
- package/bin/lib/eval/eval-providers.mjs +34 -0
- package/bin/lib/eval/eval-reporter.mjs +105 -0
- package/bin/lib/eval/eval-runner.mjs +362 -0
- package/bin/lib/eval/eval-types.d.mts +168 -0
- package/bin/lib/eval/eval-vitest-plugin.mjs +147 -0
- package/bin/lib/eval/model-registry.mjs +73 -0
- package/bin/lib/inspect/inspect-config.mjs +1 -1
- package/bin/lib/sandbox-server.mjs +5 -2
- package/bin/lib/test/test-config.mjs +1 -1
- package/bin/sunpeak.js +1 -0
- 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/host/chatgpt/index.cjs +1 -1
- package/dist/host/chatgpt/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/dist/inspector/index.cjs +1 -1
- package/dist/inspector/index.js +1 -1
- package/dist/{inspector-Bp9jrHIu.js → inspector-D5DckQuU.js} +19 -19
- package/dist/{inspector-Bp9jrHIu.js.map → inspector-D5DckQuU.js.map} +1 -1
- package/dist/{inspector-Cvq3yjNL.cjs → inspector-jY9O18z9.cjs} +19 -19
- package/dist/{inspector-Cvq3yjNL.cjs.map → inspector-jY9O18z9.cjs.map} +1 -1
- package/dist/mcp/index.cjs +2 -2
- package/dist/mcp/index.cjs.map +1 -1
- package/dist/mcp/index.js +2 -2
- package/dist/mcp/index.js.map +1 -1
- package/dist/{use-app-Ck5kR1Sf.js → use-app-Bfargfa3.js} +2 -2
- package/dist/{use-app-Ck5kR1Sf.js.map → use-app-Bfargfa3.js.map} +1 -1
- package/dist/{use-app-DHYiev3D.cjs → use-app-CbsBEmwv.cjs} +2 -2
- package/dist/{use-app-DHYiev3D.cjs.map → use-app-CbsBEmwv.cjs.map} +1 -1
- package/package.json +32 -2
- package/template/README.md +17 -7
- package/template/_gitignore +2 -0
- 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/node_modules/.bin/vitest +2 -2
- package/template/node_modules/.vite/deps/_metadata.json +3 -3
- package/template/node_modules/.vite-mcp/deps/_metadata.json +20 -20
- package/template/node_modules/.vite-mcp/deps/vitest.js +7 -7
- package/template/node_modules/.vite-mcp/deps/vitest.js.map +1 -1
- package/template/tests/evals/_env.example +5 -0
- package/template/tests/evals/albums.eval.ts +31 -0
- package/template/tests/evals/carousel.eval.ts +16 -0
- package/template/tests/evals/eval.config.ts +26 -0
- package/template/tests/evals/map.eval.ts +16 -0
- package/template/tests/evals/review.eval.ts +53 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model registry — maps model ID strings to AI SDK provider instances.
|
|
3
|
+
*
|
|
4
|
+
* Provider packages are dynamically imported so users only need to install
|
|
5
|
+
* the providers they actually use.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {{ modelId: string, providerPackage: string }} ModelMapping
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Detect which provider package a model ID belongs to.
|
|
14
|
+
* @param {string} modelId
|
|
15
|
+
* @returns {string} Provider package name
|
|
16
|
+
*/
|
|
17
|
+
function getProviderPackage(modelId) {
|
|
18
|
+
if (/^(gpt-|o[134]-|o[134]$|chatgpt-)/.test(modelId)) return '@ai-sdk/openai';
|
|
19
|
+
if (/^claude-/.test(modelId)) return '@ai-sdk/anthropic';
|
|
20
|
+
if (/^(gemini-|models\/gemini-)/.test(modelId)) return '@ai-sdk/google';
|
|
21
|
+
throw new Error(
|
|
22
|
+
`Unknown model: "${modelId}". Expected a recognized prefix (gpt-, claude-, gemini-, o1-, o3-, o4-).`
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Resolve a model ID string to an AI SDK LanguageModel instance.
|
|
28
|
+
* @param {string} modelId - e.g., 'gpt-4o', 'claude-sonnet-4-20250514', 'gemini-2.0-flash'
|
|
29
|
+
* @returns {Promise<import('ai').LanguageModel>}
|
|
30
|
+
*/
|
|
31
|
+
export async function resolveModel(modelId) {
|
|
32
|
+
const pkg = getProviderPackage(modelId);
|
|
33
|
+
|
|
34
|
+
let provider;
|
|
35
|
+
try {
|
|
36
|
+
provider = await import(pkg);
|
|
37
|
+
} catch {
|
|
38
|
+
throw new Error(
|
|
39
|
+
`Provider package "${pkg}" is not installed. Install it to use ${modelId}:\n\n pnpm add -D ${pkg}\n`
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Each provider package exports a default function or named function
|
|
44
|
+
// that creates model instances: openai('gpt-4o'), anthropic('claude-...'), google('gemini-...')
|
|
45
|
+
if (pkg === '@ai-sdk/openai') {
|
|
46
|
+
const { openai } = provider;
|
|
47
|
+
return openai(modelId);
|
|
48
|
+
}
|
|
49
|
+
if (pkg === '@ai-sdk/anthropic') {
|
|
50
|
+
const { anthropic } = provider;
|
|
51
|
+
return anthropic(modelId);
|
|
52
|
+
}
|
|
53
|
+
if (pkg === '@ai-sdk/google') {
|
|
54
|
+
const { google } = provider;
|
|
55
|
+
return google(modelId);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
throw new Error(`No provider factory found for ${pkg}`);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Check that the `ai` core package is installed.
|
|
63
|
+
* @returns {Promise<void>}
|
|
64
|
+
*/
|
|
65
|
+
export async function checkAiSdkInstalled() {
|
|
66
|
+
try {
|
|
67
|
+
await import('ai');
|
|
68
|
+
} catch {
|
|
69
|
+
throw new Error(
|
|
70
|
+
'The "ai" package is not installed. Install it to use evals:\n\n pnpm add -D ai\n'
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -49,7 +49,7 @@ export function defineInspectConfig(options) {
|
|
|
49
49
|
const serverArg = server.includes(' ') ? `"${server}"` : server;
|
|
50
50
|
const command = [
|
|
51
51
|
`SUNPEAK_SANDBOX_PORT=${sandboxPort}`,
|
|
52
|
-
'
|
|
52
|
+
'sunpeak inspect',
|
|
53
53
|
`--server ${serverArg}`,
|
|
54
54
|
...(simulationsDir ? [`--simulations ${simulationsDir}`] : []),
|
|
55
55
|
`--port ${port}`,
|
|
@@ -65,12 +65,15 @@ export async function startSandboxServer({ preferredPort = 24680 } = {}) {
|
|
|
65
65
|
} else if (
|
|
66
66
|
err.code === 'HPE_INVALID_METHOD' &&
|
|
67
67
|
err.rawPacket instanceof Buffer &&
|
|
68
|
-
err.rawPacket[0]
|
|
68
|
+
err.rawPacket[0] >= 0x14 &&
|
|
69
|
+
err.rawPacket[0] <= 0x18
|
|
69
70
|
) {
|
|
70
71
|
console.error(
|
|
71
72
|
'Received HTTPS request on sandbox server (port ' + port + '). ' +
|
|
72
73
|
'If you\'re using ngrok, make sure the upstream is http:// (not https://). ' +
|
|
73
|
-
'Example: ngrok http 8000'
|
|
74
|
+
'Example: ngrok http 8000\n' +
|
|
75
|
+
'If this only happens in Safari, use Chrome for `sunpeak dev` instead. ' +
|
|
76
|
+
'Safari is not compatible with the dev server. Production deploys (`sunpeak start`) work in all browsers.'
|
|
74
77
|
);
|
|
75
78
|
} else {
|
|
76
79
|
console.error('Sandbox server client error', err);
|
package/bin/sunpeak.js
CHANGED
|
@@ -115,6 +115,7 @@ Testing (works with any MCP server):
|
|
|
115
115
|
init Scaffold test infrastructure into a project
|
|
116
116
|
--unit Run unit tests (vitest)
|
|
117
117
|
--live Run live tests against real hosts
|
|
118
|
+
--eval Run evals against LLM models
|
|
118
119
|
|
|
119
120
|
App framework (for sunpeak projects):
|
|
120
121
|
sunpeak new [name] [resources] Create a new project
|
package/dist/chatgpt/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("../chunk-9hOWP6kD.cjs");
|
|
3
|
-
const require_inspector = require("../inspector-
|
|
3
|
+
const require_inspector = require("../inspector-jY9O18z9.cjs");
|
|
4
4
|
const require_inspector_url = require("../inspector-url-C3LTKgXt.cjs");
|
|
5
5
|
const require_discovery = require("../discovery-Clu4uHp1.cjs");
|
|
6
6
|
//#region src/chatgpt/index.ts
|
package/dist/chatgpt/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as __exportAll } from "../chunk-D6g4UhsZ.js";
|
|
2
|
-
import { _ as McpAppHost, d as ThemeProvider, f as useThemeContext, g as extractResourceCSP, h as IframeResource, n as resolveServerToolResult, t as Inspector, v as SCREEN_WIDTHS } from "../inspector-
|
|
2
|
+
import { _ as McpAppHost, d as ThemeProvider, f as useThemeContext, g as extractResourceCSP, h as IframeResource, n as resolveServerToolResult, t as Inspector, v as SCREEN_WIDTHS } from "../inspector-D5DckQuU.js";
|
|
3
3
|
import { t as createInspectorUrl } from "../inspector-url-CyQcuBI9.js";
|
|
4
4
|
import { c as toPascalCase, i as findResourceKey, n as extractSimulationKey, r as findResourceDirs, s as getComponentName, t as extractResourceKey } from "../discovery-Cgoegt62.js";
|
|
5
5
|
//#region src/chatgpt/index.ts
|
package/dist/claude/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../chunk-9hOWP6kD.cjs");
|
|
3
|
-
const require_inspector = require("../inspector-
|
|
3
|
+
const require_inspector = require("../inspector-jY9O18z9.cjs");
|
|
4
4
|
exports.Inspector = require_inspector.Inspector;
|
package/dist/claude/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Inspector } from "../inspector-
|
|
1
|
+
import { t as Inspector } from "../inspector-D5DckQuU.js";
|
|
2
2
|
export { Inspector };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../chunk-9hOWP6kD.cjs");
|
|
3
|
-
const require_use_app = require("../../use-app-
|
|
3
|
+
const require_use_app = require("../../use-app-CbsBEmwv.cjs");
|
|
4
4
|
let react = require("react");
|
|
5
5
|
//#region src/host/chatgpt/openai-types.ts
|
|
6
6
|
/**
|
package/dist/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("./chunk-9hOWP6kD.cjs");
|
|
3
3
|
const require_protocol = require("./protocol-C8pFDmcy.cjs");
|
|
4
|
-
const require_use_app = require("./use-app-
|
|
5
|
-
const require_inspector = require("./inspector-
|
|
4
|
+
const require_use_app = require("./use-app-CbsBEmwv.cjs");
|
|
5
|
+
const require_inspector = require("./inspector-jY9O18z9.cjs");
|
|
6
6
|
const require_host_index = require("./host/index.cjs");
|
|
7
7
|
const require_inspector_index = require("./inspector/index.cjs");
|
|
8
8
|
const require_chatgpt_index = require("./chatgpt/index.cjs");
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { C as EmbeddedResourceSchema, D as ImplementationSchema, J as RequestIdSchema, Y as ResourceLinkSchema, _ as ContentBlockSchema, ct as array, dt as number, et as ToolSchema, ft as object, gt as unknown, h as CallToolResultSchema, ht as union, lt as boolean, mt as string, pt as record, st as _undefined, ut as literal } from "./protocol-CRqiPTLT.js";
|
|
2
|
-
import { $ as u, A as W, B as h, C as P, D as T, E as S, F as c, G as n, H as jQ, I as d, J as q, K as o, L as e, M as _, N as _Q, O as TQ, P as a, Q as t, R as g, S as OQ, T as R, U as k, V as j, W as l, X as r, Y as qQ, Z as s, _ as M, a as B, at as z, b as NQ, c as E, d as FQ, et as v, f as GQ, g as LQ, h as K, i as AQ, it as y, j as WQ, k as U, l as EQ, m as I, n as AppProvider, nt as wQ, o as BQ, ot as zQ, p as H, q as p, r as A, rt as x, s as CX, t as useApp, tt as w, u as F, v as MX, w as PQ, x as O, y as N, z as gQ } from "./use-app-
|
|
3
|
-
import { S as DEFAULT_STYLE_VARIABLES } from "./inspector-
|
|
2
|
+
import { $ as u, A as W, B as h, C as P, D as T, E as S, F as c, G as n, H as jQ, I as d, J as q, K as o, L as e, M as _, N as _Q, O as TQ, P as a, Q as t, R as g, S as OQ, T as R, U as k, V as j, W as l, X as r, Y as qQ, Z as s, _ as M, a as B, at as z, b as NQ, c as E, d as FQ, et as v, f as GQ, g as LQ, h as K, i as AQ, it as y, j as WQ, k as U, l as EQ, m as I, n as AppProvider, nt as wQ, o as BQ, ot as zQ, p as H, q as p, r as A, rt as x, s as CX, t as useApp, tt as w, u as F, v as MX, w as PQ, x as O, y as N, z as gQ } from "./use-app-Bfargfa3.js";
|
|
3
|
+
import { S as DEFAULT_STYLE_VARIABLES } from "./inspector-D5DckQuU.js";
|
|
4
4
|
import { detectHost, isChatGPT, isClaude } from "./host/index.js";
|
|
5
5
|
import { t as inspector_exports } from "./inspector/index.js";
|
|
6
6
|
import { t as chatgpt_exports } from "./chatgpt/index.js";
|
package/dist/inspector/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("../chunk-9hOWP6kD.cjs");
|
|
3
|
-
const require_inspector = require("../inspector-
|
|
3
|
+
const require_inspector = require("../inspector-jY9O18z9.cjs");
|
|
4
4
|
const require_inspector_url = require("../inspector-url-C3LTKgXt.cjs");
|
|
5
5
|
const require_discovery = require("../discovery-Clu4uHp1.cjs");
|
|
6
6
|
//#region src/inspector/index.ts
|
package/dist/inspector/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as __exportAll } from "../chunk-D6g4UhsZ.js";
|
|
2
|
-
import { _ as McpAppHost, a as SidebarControl, b as getRegisteredHosts, c as SidebarTextarea, d as ThemeProvider, f as useThemeContext, g as extractResourceCSP, h as IframeResource, i as SidebarCollapsibleControl, l as SidebarToggle, m as useInspectorState, n as resolveServerToolResult, o as SidebarInput, p as useMcpConnection, r as SidebarCheckbox, s as SidebarSelect, t as Inspector, u as SimpleSidebar, v as SCREEN_WIDTHS, x as registerHostShell, y as getHostShell } from "../inspector-
|
|
2
|
+
import { _ as McpAppHost, a as SidebarControl, b as getRegisteredHosts, c as SidebarTextarea, d as ThemeProvider, f as useThemeContext, g as extractResourceCSP, h as IframeResource, i as SidebarCollapsibleControl, l as SidebarToggle, m as useInspectorState, n as resolveServerToolResult, o as SidebarInput, p as useMcpConnection, r as SidebarCheckbox, s as SidebarSelect, t as Inspector, u as SimpleSidebar, v as SCREEN_WIDTHS, x as registerHostShell, y as getHostShell } from "../inspector-D5DckQuU.js";
|
|
3
3
|
import { t as createInspectorUrl } from "../inspector-url-CyQcuBI9.js";
|
|
4
4
|
import { c as toPascalCase, i as findResourceKey, n as extractSimulationKey, r as findResourceDirs, s as getComponentName, t as extractResourceKey } from "../discovery-Cgoegt62.js";
|
|
5
5
|
//#region src/inspector/index.ts
|
|
@@ -3995,7 +3995,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
3995
3995
|
onChange: setProdResources,
|
|
3996
3996
|
label: "Prod Resources",
|
|
3997
3997
|
tooltip: "Load resources from dist/ builds instead of HMR",
|
|
3998
|
-
docsPath: "
|
|
3998
|
+
docsPath: "app-framework/cli/dev#prod-tools-and-prod-resources-flags"
|
|
3999
3999
|
}),
|
|
4000
4000
|
hasTools && /* @__PURE__ */ jsxs("div", {
|
|
4001
4001
|
className: "grid grid-cols-2 gap-2",
|
|
@@ -4003,7 +4003,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4003
4003
|
children: [/* @__PURE__ */ jsx(SidebarControl, {
|
|
4004
4004
|
label: "Tool",
|
|
4005
4005
|
tooltip: "Tool to inspect",
|
|
4006
|
-
docsPath: "
|
|
4006
|
+
docsPath: "app-framework/cli/dev",
|
|
4007
4007
|
"data-testid": "tool-selector",
|
|
4008
4008
|
children: /* @__PURE__ */ jsx(SidebarSelect, {
|
|
4009
4009
|
value: selectedToolName,
|
|
@@ -4017,7 +4017,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4017
4017
|
})
|
|
4018
4018
|
}), /* @__PURE__ */ jsx(SidebarControl, {
|
|
4019
4019
|
label: selectedToolInfo && selectedToolInfo.fixtureSimNames.length > 0 ? "Simulation" : /* @__PURE__ */ jsx("a", {
|
|
4020
|
-
href: `${DOCS_BASE_URL}/
|
|
4020
|
+
href: `${DOCS_BASE_URL}/testing/simulations`,
|
|
4021
4021
|
target: "_blank",
|
|
4022
4022
|
rel: "noopener noreferrer",
|
|
4023
4023
|
className: "no-underline transition-colors",
|
|
@@ -4031,7 +4031,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4031
4031
|
children: "Simulation"
|
|
4032
4032
|
}),
|
|
4033
4033
|
tooltip: selectedToolInfo && selectedToolInfo.fixtureSimNames.length > 0 ? "Test fixture with mock data" : "Create simulations for faster testing",
|
|
4034
|
-
docsPath: "
|
|
4034
|
+
docsPath: "testing/simulations",
|
|
4035
4035
|
"data-testid": "simulation-selector",
|
|
4036
4036
|
children: /* @__PURE__ */ jsx(SidebarSelect, {
|
|
4037
4037
|
value: activeSimulationName ?? "__none__",
|
|
@@ -4051,7 +4051,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4051
4051
|
children: [registeredHosts.length > 1 && /* @__PURE__ */ jsx(SidebarControl, {
|
|
4052
4052
|
label: "Host",
|
|
4053
4053
|
tooltip: "Host runtime to simulate",
|
|
4054
|
-
docsPath: "
|
|
4054
|
+
docsPath: "app-framework/functions/host-detection",
|
|
4055
4055
|
children: /* @__PURE__ */ jsx(SidebarSelect, {
|
|
4056
4056
|
value: state.activeHost,
|
|
4057
4057
|
onChange: (value) => state.setActiveHost(value),
|
|
@@ -4063,7 +4063,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4063
4063
|
}), /* @__PURE__ */ jsx(SidebarControl, {
|
|
4064
4064
|
label: "Width",
|
|
4065
4065
|
tooltip: "Chat width",
|
|
4066
|
-
docsPath: "
|
|
4066
|
+
docsPath: "testing/inspector",
|
|
4067
4067
|
children: /* @__PURE__ */ jsx(SidebarSelect, {
|
|
4068
4068
|
value: state.screenWidth,
|
|
4069
4069
|
onChange: (value) => state.setScreenWidth(value),
|
|
@@ -4092,7 +4092,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4092
4092
|
label: "Host Context",
|
|
4093
4093
|
defaultCollapsed: false,
|
|
4094
4094
|
tooltip: "Host-provided environment",
|
|
4095
|
-
docsPath: "
|
|
4095
|
+
docsPath: "app-framework/hooks/use-host-context",
|
|
4096
4096
|
children: /* @__PURE__ */ jsxs("div", {
|
|
4097
4097
|
className: "space-y-1",
|
|
4098
4098
|
children: [
|
|
@@ -4101,7 +4101,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4101
4101
|
children: [/* @__PURE__ */ jsx(SidebarControl, {
|
|
4102
4102
|
label: "Theme",
|
|
4103
4103
|
tooltip: "Host color theme",
|
|
4104
|
-
docsPath: "
|
|
4104
|
+
docsPath: "app-framework/hooks/use-theme",
|
|
4105
4105
|
children: /* @__PURE__ */ jsx(SidebarToggle, {
|
|
4106
4106
|
value: state.theme,
|
|
4107
4107
|
onChange: (value) => state.setTheme(value),
|
|
@@ -4116,7 +4116,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4116
4116
|
}), /* @__PURE__ */ jsx(SidebarControl, {
|
|
4117
4117
|
label: "Locale",
|
|
4118
4118
|
tooltip: "BCP 47 language tag",
|
|
4119
|
-
docsPath: "
|
|
4119
|
+
docsPath: "app-framework/hooks/use-locale",
|
|
4120
4120
|
children: /* @__PURE__ */ jsx(SidebarInput, {
|
|
4121
4121
|
applyOnBlur: true,
|
|
4122
4122
|
value: state.locale,
|
|
@@ -4128,7 +4128,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4128
4128
|
/* @__PURE__ */ jsx(SidebarControl, {
|
|
4129
4129
|
label: "Display Mode",
|
|
4130
4130
|
tooltip: "Host resource rendering paradigm",
|
|
4131
|
-
docsPath: "
|
|
4131
|
+
docsPath: "app-framework/hooks/use-display-mode",
|
|
4132
4132
|
children: /* @__PURE__ */ jsx(SidebarToggle, {
|
|
4133
4133
|
value: state.displayMode,
|
|
4134
4134
|
onChange: (value) => state.setDisplayMode(value),
|
|
@@ -4155,7 +4155,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4155
4155
|
children: /* @__PURE__ */ jsx(SidebarControl, {
|
|
4156
4156
|
label: "Platform",
|
|
4157
4157
|
tooltip: "End user device platform",
|
|
4158
|
-
docsPath: "
|
|
4158
|
+
docsPath: "app-framework/hooks/use-platform",
|
|
4159
4159
|
children: /* @__PURE__ */ jsx(SidebarSelect, {
|
|
4160
4160
|
value: state.platform,
|
|
4161
4161
|
onChange: (value) => {
|
|
@@ -4193,7 +4193,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4193
4193
|
children: /* @__PURE__ */ jsx(SidebarControl, {
|
|
4194
4194
|
label: "Capabilities",
|
|
4195
4195
|
tooltip: "End user device capabilities",
|
|
4196
|
-
docsPath: "
|
|
4196
|
+
docsPath: "app-framework/hooks/use-device-capabilities",
|
|
4197
4197
|
children: /* @__PURE__ */ jsxs("div", {
|
|
4198
4198
|
className: "flex gap-2",
|
|
4199
4199
|
children: [/* @__PURE__ */ jsx(SidebarCheckbox, {
|
|
@@ -4212,7 +4212,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4212
4212
|
/* @__PURE__ */ jsx(SidebarControl, {
|
|
4213
4213
|
label: "Time Zone",
|
|
4214
4214
|
tooltip: "End user IANA time zone",
|
|
4215
|
-
docsPath: "
|
|
4215
|
+
docsPath: "app-framework/hooks/use-time-zone",
|
|
4216
4216
|
children: /* @__PURE__ */ jsx(SidebarInput, {
|
|
4217
4217
|
applyOnBlur: true,
|
|
4218
4218
|
value: state.timeZone,
|
|
@@ -4223,7 +4223,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4223
4223
|
/* @__PURE__ */ jsx(SidebarControl, {
|
|
4224
4224
|
label: "Container Dimensions",
|
|
4225
4225
|
tooltip: "Host-enforced size constraints (px)",
|
|
4226
|
-
docsPath: "
|
|
4226
|
+
docsPath: "app-framework/hooks/use-viewport",
|
|
4227
4227
|
children: /* @__PURE__ */ jsxs("div", {
|
|
4228
4228
|
className: "grid grid-cols-4 gap-1",
|
|
4229
4229
|
children: [
|
|
@@ -4273,7 +4273,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4273
4273
|
/* @__PURE__ */ jsx(SidebarControl, {
|
|
4274
4274
|
label: "Safe Area Insets",
|
|
4275
4275
|
tooltip: "Device safe area padding (px)",
|
|
4276
|
-
docsPath: "
|
|
4276
|
+
docsPath: "app-framework/hooks/use-safe-area",
|
|
4277
4277
|
children: /* @__PURE__ */ jsxs("div", {
|
|
4278
4278
|
className: "grid grid-cols-4 gap-1",
|
|
4279
4279
|
children: [
|
|
@@ -4355,7 +4355,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4355
4355
|
label: "App Context",
|
|
4356
4356
|
defaultCollapsed: true,
|
|
4357
4357
|
tooltip: "App-provided context shared with the model",
|
|
4358
|
-
docsPath: "
|
|
4358
|
+
docsPath: "app-framework/hooks/use-app-state",
|
|
4359
4359
|
children: /* @__PURE__ */ jsx(SidebarTextarea, {
|
|
4360
4360
|
value: state.modelContextJson,
|
|
4361
4361
|
onChange: (json) => state.validateJSON(json, state.setModelContextJson, state.setModelContextError),
|
|
@@ -4371,7 +4371,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4371
4371
|
label: "Tool Input (JSON)",
|
|
4372
4372
|
defaultCollapsed: false,
|
|
4373
4373
|
tooltip: "Arguments passed to the tool",
|
|
4374
|
-
docsPath: "
|
|
4374
|
+
docsPath: "app-framework/hooks/use-tool-data",
|
|
4375
4375
|
children: /* @__PURE__ */ jsx(SidebarTextarea, {
|
|
4376
4376
|
value: state.toolInputJson,
|
|
4377
4377
|
onChange: (json) => state.validateJSON(json, state.setToolInputJson, state.setToolInputError),
|
|
@@ -4385,7 +4385,7 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4385
4385
|
label: "Tool Result (JSON)",
|
|
4386
4386
|
defaultCollapsed: false,
|
|
4387
4387
|
tooltip: "Structured content returned by the tool",
|
|
4388
|
-
docsPath: "
|
|
4388
|
+
docsPath: "app-framework/hooks/use-tool-data",
|
|
4389
4389
|
"data-testid": "tool-result-section",
|
|
4390
4390
|
children: /* @__PURE__ */ jsx(SidebarTextarea, {
|
|
4391
4391
|
value: state.toolResultJson,
|
|
@@ -4416,4 +4416,4 @@ function Inspector({ children, simulations: initialSimulations = {}, appName = "
|
|
|
4416
4416
|
//#endregion
|
|
4417
4417
|
export { DEFAULT_STYLE_VARIABLES as S, McpAppHost as _, SidebarControl as a, getRegisteredHosts as b, SidebarTextarea as c, ThemeProvider as d, useThemeContext as f, extractResourceCSP as g, IframeResource as h, SidebarCollapsibleControl as i, SidebarToggle as l, useInspectorState as m, resolveServerToolResult as n, SidebarInput as o, useMcpConnection as p, SidebarCheckbox as r, SidebarSelect as s, Inspector as t, SimpleSidebar as u, SCREEN_WIDTHS as v, registerHostShell as x, getHostShell as y };
|
|
4418
4418
|
|
|
4419
|
-
//# sourceMappingURL=inspector-
|
|
4419
|
+
//# sourceMappingURL=inspector-D5DckQuU.js.map
|