sunpeak 0.20.62 → 0.20.67
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 +3 -0
- package/bin/commands/dev.mjs +88 -46
- package/bin/commands/inspect.mjs +8 -6
- package/bin/lib/inspect/inspect-config.mjs +6 -6
- package/bin/lib/live/chatgpt-page.mjs +40 -25
- package/bin/lib/live/global-setup.mjs +2 -2
- package/bin/lib/live/host-page.mjs +30 -24
- package/bin/lib/live/live-config.mjs +8 -6
- package/bin/lib/test/test-config.mjs +7 -10
- package/bin/lib/test/test-fixtures.mjs +12 -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 +2 -2
- package/dist/host/chatgpt/index.cjs +1 -1
- package/dist/host/chatgpt/index.js +1 -1
- package/dist/index.cjs +14 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +12 -7
- package/dist/index.js.map +1 -1
- package/dist/inspector/index.cjs +1 -1
- package/dist/inspector/index.js +1 -1
- package/dist/{inspector-DPJeSQAd.js → inspector-BQx_pKAK.js} +31 -15
- package/dist/{inspector-DPJeSQAd.js.map → inspector-BQx_pKAK.js.map} +1 -1
- package/dist/{inspector-Cl5w_7yQ.cjs → inspector-wz-9eEPo.cjs} +33 -16
- package/dist/{inspector-Cl5w_7yQ.cjs.map → inspector-wz-9eEPo.cjs.map} +1 -1
- package/dist/mcp/index.cjs +14 -7
- package/dist/mcp/index.cjs.map +1 -1
- package/dist/mcp/index.js +12 -6
- package/dist/mcp/index.js.map +1 -1
- package/dist/style.css +7 -6
- package/dist/{use-app-D7-OtXBl.js → use-app-BUrAWLg8.js} +76 -28
- package/dist/{use-app-D7-OtXBl.js.map → use-app-BUrAWLg8.js.map} +1 -1
- package/dist/{use-app-BcSuulay.cjs → use-app-QDHDymli.cjs} +78 -29
- package/dist/{use-app-BcSuulay.cjs.map → use-app-QDHDymli.cjs.map} +1 -1
- package/package.json +16 -16
- package/template/README.md +12 -4
- package/template/dist/albums/albums.html +2 -2
- package/template/dist/albums/albums.json +1 -1
- package/template/dist/carousel/carousel.html +2 -2
- package/template/dist/carousel/carousel.json +1 -1
- package/template/dist/map/map.html +755 -750
- 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/vite +2 -2
- package/template/node_modules/.bin/vitest +2 -2
- package/template/node_modules/.vite/deps/_metadata.json +4 -4
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps.js +82 -30
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps.js.map +1 -1
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_app-bridge.js +82 -30
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_app-bridge.js.map +1 -1
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_react.js +82 -30
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_react.js.map +1 -1
- package/template/node_modules/.vite-mcp/deps/@testing-library_react.js.map +1 -1
- package/template/node_modules/.vite-mcp/deps/_metadata.json +24 -24
- package/template/node_modules/.vite-mcp/deps/{dist-CO4R4Zw4.js → dist-Bd8a6mlN.js} +17 -5
- package/template/node_modules/.vite-mcp/deps/{dist-CO4R4Zw4.js.map → dist-Bd8a6mlN.js.map} +1 -1
- package/template/node_modules/.vite-mcp/deps/embla-carousel-react.js.map +1 -1
- package/template/node_modules/.vite-mcp/deps/mapbox-gl.js +14765 -13820
- package/template/node_modules/.vite-mcp/deps/mapbox-gl.js.map +1 -1
- package/template/node_modules/.vite-mcp/deps/vitest.js +57 -36
- package/template/node_modules/.vite-mcp/deps/vitest.js.map +1 -1
- package/template/package.json +6 -6
- 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-darwin.png +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sunpeak",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.67",
|
|
4
4
|
"description": "App framework, testing framework, and inspector for MCP Apps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"author": "Sunpeak AI",
|
|
150
150
|
"license": "MIT",
|
|
151
151
|
"peerDependencies": {
|
|
152
|
-
"@ai-sdk/google": "^4.0.
|
|
152
|
+
"@ai-sdk/google": "^4.0.16",
|
|
153
153
|
"react": "^18.0.0 || ^19.0.0",
|
|
154
154
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
155
155
|
},
|
|
@@ -159,46 +159,46 @@
|
|
|
159
159
|
}
|
|
160
160
|
},
|
|
161
161
|
"dependencies": {
|
|
162
|
-
"@ai-sdk/anthropic": "^4.0.
|
|
163
|
-
"@ai-sdk/openai": "^4.0.
|
|
162
|
+
"@ai-sdk/anthropic": "^4.0.16",
|
|
163
|
+
"@ai-sdk/openai": "^4.0.16",
|
|
164
164
|
"@clack/prompts": "^1.7.0",
|
|
165
165
|
"@modelcontextprotocol/ext-apps": "^1.7.4",
|
|
166
166
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
167
167
|
"@vitejs/plugin-react": "^6.0.3",
|
|
168
|
-
"ai": "^7.0.
|
|
168
|
+
"ai": "^7.0.31",
|
|
169
169
|
"clsx": "^2.1.1",
|
|
170
170
|
"esbuild": "^0.28.1",
|
|
171
171
|
"tailwind-merge": "^3.6.0",
|
|
172
|
-
"vite": "8.1.
|
|
172
|
+
"vite": "8.1.5",
|
|
173
173
|
"zod": "^4.4.3"
|
|
174
174
|
},
|
|
175
175
|
"devDependencies": {
|
|
176
176
|
"@playwright/test": "1.61.1",
|
|
177
177
|
"@rolldown/pluginutils": "^1.0.1",
|
|
178
|
-
"@tailwindcss/cli": "^4.3.
|
|
179
|
-
"@tailwindcss/vite": "^4.3.
|
|
178
|
+
"@tailwindcss/cli": "^4.3.3",
|
|
179
|
+
"@tailwindcss/vite": "^4.3.3",
|
|
180
180
|
"@testing-library/jest-dom": "^6.9.1",
|
|
181
181
|
"@testing-library/react": "^16.3.2",
|
|
182
182
|
"@testing-library/user-event": "^14.6.1",
|
|
183
|
-
"@types/node": "^26.1.
|
|
183
|
+
"@types/node": "^26.1.1",
|
|
184
184
|
"@types/react": "^19.2.17",
|
|
185
185
|
"@types/react-dom": "^19.2.3",
|
|
186
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
187
|
-
"@typescript-eslint/parser": "^8.
|
|
188
|
-
"eslint": "^9.39.
|
|
186
|
+
"@typescript-eslint/eslint-plugin": "^8.64.0",
|
|
187
|
+
"@typescript-eslint/parser": "^8.64.0",
|
|
188
|
+
"eslint": "^9.39.5",
|
|
189
189
|
"eslint-config-prettier": "^10.1.8",
|
|
190
190
|
"eslint-plugin-react": "^7.37.5",
|
|
191
191
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
192
192
|
"happy-dom": "^20.10.6",
|
|
193
|
-
"prettier": "^3.9.
|
|
193
|
+
"prettier": "^3.9.5",
|
|
194
194
|
"react": "^19.2.7",
|
|
195
195
|
"react-dom": "^19.2.7",
|
|
196
|
-
"tailwindcss": "^4.3.
|
|
196
|
+
"tailwindcss": "^4.3.3",
|
|
197
197
|
"ts-node": "^10.9.2",
|
|
198
|
-
"tsx": "^4.23.
|
|
198
|
+
"tsx": "^4.23.1",
|
|
199
199
|
"typescript": "^6.0.3",
|
|
200
200
|
"vite-plugin-dts": "5.0.3",
|
|
201
|
-
"vitest": "^4.1.
|
|
201
|
+
"vitest": "^4.1.10"
|
|
202
202
|
},
|
|
203
203
|
"repository": {
|
|
204
204
|
"type": "git",
|
package/template/README.md
CHANGED
|
@@ -76,7 +76,11 @@ pnpm dev
|
|
|
76
76
|
ngrok http 8000
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
If Developer mode is not already enabled, click your user menu in the bottom-left corner and select `Settings > Security and login > Developer mode`.
|
|
80
|
+
|
|
81
|
+
Then return to the ChatGPT homepage and click `Plugins` in the sidebar. Open your app if it is already there, or select the `+` button and connect the tunnel forwarding URL at the `/mcp` path.
|
|
82
|
+
|
|
83
|
+
ChatGPT creates a developer-mode app backed by your MCP server. It appears under `Plugins`, but its MCP App UI and runtime do not change.
|
|
80
84
|
|
|
81
85
|
Once your app is connected, send the name of the app and a tool, like `/sunpeak show review`, to ChatGPT.
|
|
82
86
|
|
|
@@ -86,8 +90,9 @@ Run automated tests against real ChatGPT with `pnpm test:live`. This opens your
|
|
|
86
90
|
|
|
87
91
|
**One-time setup:**
|
|
88
92
|
|
|
89
|
-
1.
|
|
90
|
-
2.
|
|
93
|
+
1. If Developer mode is not already enabled, click your user menu in the bottom-left corner and select `Settings > Security and login > Developer mode`
|
|
94
|
+
2. Return to the ChatGPT homepage and click `Plugins` in the sidebar
|
|
95
|
+
3. Open your app if it is already there, or select `+` and add your tunnel URL at `/mcp`
|
|
91
96
|
|
|
92
97
|
**Run live tests:**
|
|
93
98
|
|
|
@@ -133,6 +138,8 @@ pnpm start -- --json-logs # Structured JSON logging for production
|
|
|
133
138
|
|
|
134
139
|
The server includes a `/health` endpoint for load balancer probes and monitoring. See the [Deployment Guide](https://sunpeak.ai/docs/app-framework/guides/deployment) for production operations details (reverse proxy, process management, Docker).
|
|
135
140
|
|
|
141
|
+
ChatGPT apps are submitted and published as plugins. Deploy this MCP server first, then create a `With MCP` submission in the [OpenAI Platform plugin portal](https://platform.openai.com/plugins). Submit the MCP server URL directly, not an existing ChatGPT app ID. See the [sunpeak publishing guide](https://sunpeak.ai/docs/app-framework/guides/deployment#publish-to-chatgpt) and OpenAI's [plugin submission guide](https://learn.chatgpt.com/docs/submit-plugins).
|
|
142
|
+
|
|
136
143
|
## Add a new UI (Resource)
|
|
137
144
|
|
|
138
145
|
To add a new UI ([MCP Resource](https://sunpeak.ai/docs/mcp-apps/mcp/resources)), create a new directory under `src/resources/` with the following files:
|
|
@@ -162,7 +169,7 @@ If your app doesn't render in ChatGPT or Claude:
|
|
|
162
169
|
|
|
163
170
|
1. **Check your tunnel** is running and pointing to the correct port
|
|
164
171
|
2. **Restart `pnpm dev`** to clear stale connections
|
|
165
|
-
3. **Refresh or re-add the MCP server**
|
|
172
|
+
3. **Refresh or re-add the MCP server** from the host's app or plugin management page
|
|
166
173
|
4. **Hard refresh** the host page (`Cmd+Shift+R` / `Ctrl+Shift+R`)
|
|
167
174
|
5. **Open a new chat** in the host (cached iframes persist per-conversation)
|
|
168
175
|
|
|
@@ -175,3 +182,4 @@ Full guide: [sunpeak.ai/docs/app-framework/guides/troubleshooting](https://sunpe
|
|
|
175
182
|
- [MCP Overview](https://sunpeak.ai/docs/mcp-apps/mcp/overview) · [Tools](https://sunpeak.ai/docs/mcp-apps/mcp/tools) · [Resources](https://sunpeak.ai/docs/mcp-apps/mcp/resources)
|
|
176
183
|
- [MCP Apps SDK](https://github.com/modelcontextprotocol/ext-apps)
|
|
177
184
|
- [ChatGPT Apps SDK Design Guidelines](https://developers.openai.com/apps-sdk/concepts/design-guidelines)
|
|
185
|
+
- [Build ChatGPT Plugins](https://learn.chatgpt.com/docs/build-plugins) · [Submit ChatGPT Plugins](https://learn.chatgpt.com/docs/submit-plugins)
|