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.
Files changed (67) hide show
  1. package/README.md +3 -0
  2. package/bin/commands/dev.mjs +88 -46
  3. package/bin/commands/inspect.mjs +8 -6
  4. package/bin/lib/inspect/inspect-config.mjs +6 -6
  5. package/bin/lib/live/chatgpt-page.mjs +40 -25
  6. package/bin/lib/live/global-setup.mjs +2 -2
  7. package/bin/lib/live/host-page.mjs +30 -24
  8. package/bin/lib/live/live-config.mjs +8 -6
  9. package/bin/lib/test/test-config.mjs +7 -10
  10. package/bin/lib/test/test-fixtures.mjs +12 -3
  11. package/dist/chatgpt/index.cjs +1 -1
  12. package/dist/chatgpt/index.js +1 -1
  13. package/dist/claude/index.cjs +1 -1
  14. package/dist/claude/index.js +1 -1
  15. package/dist/embed.css +2 -2
  16. package/dist/host/chatgpt/index.cjs +1 -1
  17. package/dist/host/chatgpt/index.js +1 -1
  18. package/dist/index.cjs +14 -8
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.js +12 -7
  21. package/dist/index.js.map +1 -1
  22. package/dist/inspector/index.cjs +1 -1
  23. package/dist/inspector/index.js +1 -1
  24. package/dist/{inspector-DPJeSQAd.js → inspector-BQx_pKAK.js} +31 -15
  25. package/dist/{inspector-DPJeSQAd.js.map → inspector-BQx_pKAK.js.map} +1 -1
  26. package/dist/{inspector-Cl5w_7yQ.cjs → inspector-wz-9eEPo.cjs} +33 -16
  27. package/dist/{inspector-Cl5w_7yQ.cjs.map → inspector-wz-9eEPo.cjs.map} +1 -1
  28. package/dist/mcp/index.cjs +14 -7
  29. package/dist/mcp/index.cjs.map +1 -1
  30. package/dist/mcp/index.js +12 -6
  31. package/dist/mcp/index.js.map +1 -1
  32. package/dist/style.css +7 -6
  33. package/dist/{use-app-D7-OtXBl.js → use-app-BUrAWLg8.js} +76 -28
  34. package/dist/{use-app-D7-OtXBl.js.map → use-app-BUrAWLg8.js.map} +1 -1
  35. package/dist/{use-app-BcSuulay.cjs → use-app-QDHDymli.cjs} +78 -29
  36. package/dist/{use-app-BcSuulay.cjs.map → use-app-QDHDymli.cjs.map} +1 -1
  37. package/package.json +16 -16
  38. package/template/README.md +12 -4
  39. package/template/dist/albums/albums.html +2 -2
  40. package/template/dist/albums/albums.json +1 -1
  41. package/template/dist/carousel/carousel.html +2 -2
  42. package/template/dist/carousel/carousel.json +1 -1
  43. package/template/dist/map/map.html +755 -750
  44. package/template/dist/map/map.json +1 -1
  45. package/template/dist/review/review.html +1 -1
  46. package/template/dist/review/review.json +1 -1
  47. package/template/node_modules/.bin/vite +2 -2
  48. package/template/node_modules/.bin/vitest +2 -2
  49. package/template/node_modules/.vite/deps/_metadata.json +4 -4
  50. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps.js +82 -30
  51. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps.js.map +1 -1
  52. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_app-bridge.js +82 -30
  53. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_app-bridge.js.map +1 -1
  54. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_react.js +82 -30
  55. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_react.js.map +1 -1
  56. package/template/node_modules/.vite-mcp/deps/@testing-library_react.js.map +1 -1
  57. package/template/node_modules/.vite-mcp/deps/_metadata.json +24 -24
  58. package/template/node_modules/.vite-mcp/deps/{dist-CO4R4Zw4.js → dist-Bd8a6mlN.js} +17 -5
  59. package/template/node_modules/.vite-mcp/deps/{dist-CO4R4Zw4.js.map → dist-Bd8a6mlN.js.map} +1 -1
  60. package/template/node_modules/.vite-mcp/deps/embla-carousel-react.js.map +1 -1
  61. package/template/node_modules/.vite-mcp/deps/mapbox-gl.js +14765 -13820
  62. package/template/node_modules/.vite-mcp/deps/mapbox-gl.js.map +1 -1
  63. package/template/node_modules/.vite-mcp/deps/vitest.js +57 -36
  64. package/template/node_modules/.vite-mcp/deps/vitest.js.map +1 -1
  65. package/template/package.json +6 -6
  66. package/template/tests/e2e/visual.spec.ts-snapshots/albums-fullscreen-chatgpt-linux.png +0 -0
  67. 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.62",
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.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.8",
163
- "@ai-sdk/openai": "^4.0.7",
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.15",
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.3",
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.2",
179
- "@tailwindcss/vite": "^4.3.2",
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.0",
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.62.1",
187
- "@typescript-eslint/parser": "^8.62.1",
188
- "eslint": "^9.39.4",
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.4",
193
+ "prettier": "^3.9.5",
194
194
  "react": "^19.2.7",
195
195
  "react-dom": "^19.2.7",
196
- "tailwindcss": "^4.3.2",
196
+ "tailwindcss": "^4.3.3",
197
197
  "ts-node": "^10.9.2",
198
- "tsx": "^4.23.0",
198
+ "tsx": "^4.23.1",
199
199
  "typescript": "^6.0.3",
200
200
  "vite-plugin-dts": "5.0.3",
201
- "vitest": "^4.1.9"
201
+ "vitest": "^4.1.10"
202
202
  },
203
203
  "repository": {
204
204
  "type": "git",
@@ -76,7 +76,11 @@ pnpm dev
76
76
  ngrok http 8000
77
77
  ```
78
78
 
79
- You can then connect to the tunnel forwarding URL at the `/mcp` path from ChatGPT **in developer mode** to see your UI in action: `User > Settings > Apps > Create`
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. Log into [chatgpt.com](https://chatgpt.com) in your browser (Chrome, Arc, Brave, or Edge)
90
- 2. Add your MCP server in ChatGPT settings: `Settings > Apps > Create` with your tunnel URL at `/mcp`
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** in the host's settings (Settings > MCP Servers)
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)