sunpeak 0.9.3 → 0.9.6

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.
@@ -8,10 +8,13 @@ import type * as React from 'react';
8
8
  /**
9
9
  * A simulation packages a component with its example data and metadata.
10
10
  * Each simulation represents a complete tool experience in the simulator.
11
+ *
12
+ * Specify either `resourceComponent` (React component) or `resourceScript` (URL to built .js file).
11
13
  */
12
14
  export interface Simulation {
13
15
  name: string;
14
- resourceComponent: React.ComponentType;
16
+ resourceComponent?: React.ComponentType;
17
+ resourceScript?: string;
15
18
  userMessage?: string;
16
19
  tool: Tool;
17
20
  resource: Resource;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sunpeak",
3
- "version": "0.9.3",
3
+ "version": "0.9.6",
4
4
  "description": "The ChatGPT App framework. Quickstart, build, & test your ChatGPT App locally!",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -100,8 +100,8 @@ Each `.json` file is a copy of each of your resource MCP metadata files `src/res
100
100
 
101
101
  To add a new UI (MCP Resource), simply create the following files:
102
102
 
103
- - `src/resource/NAME-resource.tsx`
104
- - `src/resource/NAME-resource.json`
103
+ - `src/resources/NAME-resource.tsx`
104
+ - `src/resources/NAME-resource.json`
105
105
  - `src/simulations/NAME-TOOLNAME-simulation.json`
106
106
 
107
107
  Only the resource files are required to generate a production build and ship a UI. Create the simulation file if you want to preview your resource in `sunpeak dev` or `sunpeak mcp`.
@@ -12,5 +12,5 @@
12
12
  ]
13
13
  }
14
14
  },
15
- "uri": "ui://albums-mk2r7n4q"
15
+ "uri": "ui://albums-mk8u79b0"
16
16
  }
@@ -12,5 +12,5 @@
12
12
  ]
13
13
  }
14
14
  },
15
- "uri": "ui://carousel-mk2r7n4q"
15
+ "uri": "ui://carousel-mk8u79b0"
16
16
  }
@@ -18,5 +18,5 @@
18
18
  ]
19
19
  }
20
20
  },
21
- "uri": "ui://map-mk2r7n4q"
21
+ "uri": "ui://map-mk8u79b0"
22
22
  }
@@ -12,5 +12,5 @@
12
12
  ]
13
13
  }
14
14
  },
15
- "uri": "ui://review-mk2r7n4q"
15
+ "uri": "ui://review-mk8u79b0"
16
16
  }
@@ -7,115 +7,115 @@
7
7
  "react": {
8
8
  "src": "../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/index.js",
9
9
  "file": "react.js",
10
- "fileHash": "16fe6b1d",
10
+ "fileHash": "5dce5a83",
11
11
  "needsInterop": true
12
12
  },
13
13
  "react-dom": {
14
14
  "src": "../../../../node_modules/.pnpm/react-dom@19.2.3_react@19.2.3/node_modules/react-dom/index.js",
15
15
  "file": "react-dom.js",
16
- "fileHash": "51aae1bd",
16
+ "fileHash": "f1f9ceb7",
17
17
  "needsInterop": true
18
18
  },
19
19
  "react/jsx-dev-runtime": {
20
20
  "src": "../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-dev-runtime.js",
21
21
  "file": "react_jsx-dev-runtime.js",
22
- "fileHash": "ff5a7570",
22
+ "fileHash": "6d41e9e9",
23
23
  "needsInterop": true
24
24
  },
25
25
  "react/jsx-runtime": {
26
26
  "src": "../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-runtime.js",
27
27
  "file": "react_jsx-runtime.js",
28
- "fileHash": "3beaa8db",
28
+ "fileHash": "76d0ee1e",
29
29
  "needsInterop": true
30
30
  },
31
31
  "@openai/apps-sdk-ui/components/Avatar": {
32
32
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Avatar/index.js",
33
33
  "file": "@openai_apps-sdk-ui_components_Avatar.js",
34
- "fileHash": "45ef3fc1",
34
+ "fileHash": "cc1e3682",
35
35
  "needsInterop": false
36
36
  },
37
37
  "@openai/apps-sdk-ui/components/Button": {
38
38
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Button/index.js",
39
39
  "file": "@openai_apps-sdk-ui_components_Button.js",
40
- "fileHash": "45a08a33",
40
+ "fileHash": "ae4fe364",
41
41
  "needsInterop": false
42
42
  },
43
43
  "@openai/apps-sdk-ui/components/Checkbox": {
44
44
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Checkbox/index.js",
45
45
  "file": "@openai_apps-sdk-ui_components_Checkbox.js",
46
- "fileHash": "d5dd2181",
46
+ "fileHash": "1db3db7f",
47
47
  "needsInterop": false
48
48
  },
49
49
  "@openai/apps-sdk-ui/components/Icon": {
50
50
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Icon/index.js",
51
51
  "file": "@openai_apps-sdk-ui_components_Icon.js",
52
- "fileHash": "e1858071",
52
+ "fileHash": "837c2737",
53
53
  "needsInterop": false
54
54
  },
55
55
  "@openai/apps-sdk-ui/components/Input": {
56
56
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Input/index.js",
57
57
  "file": "@openai_apps-sdk-ui_components_Input.js",
58
- "fileHash": "336a28c8",
58
+ "fileHash": "062e2a54",
59
59
  "needsInterop": false
60
60
  },
61
61
  "@openai/apps-sdk-ui/components/SegmentedControl": {
62
62
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/SegmentedControl/index.js",
63
63
  "file": "@openai_apps-sdk-ui_components_SegmentedControl.js",
64
- "fileHash": "18dac619",
64
+ "fileHash": "6e036e2c",
65
65
  "needsInterop": false
66
66
  },
67
67
  "@openai/apps-sdk-ui/components/Select": {
68
68
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Select/index.js",
69
69
  "file": "@openai_apps-sdk-ui_components_Select.js",
70
- "fileHash": "bebc362b",
70
+ "fileHash": "6ca9ce17",
71
71
  "needsInterop": false
72
72
  },
73
73
  "@openai/apps-sdk-ui/components/Textarea": {
74
74
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Textarea/index.js",
75
75
  "file": "@openai_apps-sdk-ui_components_Textarea.js",
76
- "fileHash": "d96e1cd8",
76
+ "fileHash": "6bbf0e0f",
77
77
  "needsInterop": false
78
78
  },
79
79
  "@openai/apps-sdk-ui/theme": {
80
80
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/lib/theme.js",
81
81
  "file": "@openai_apps-sdk-ui_theme.js",
82
- "fileHash": "b92ead18",
82
+ "fileHash": "125dd763",
83
83
  "needsInterop": false
84
84
  },
85
85
  "clsx": {
86
86
  "src": "../../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs",
87
87
  "file": "clsx.js",
88
- "fileHash": "5cf92f9f",
88
+ "fileHash": "adae7188",
89
89
  "needsInterop": false
90
90
  },
91
91
  "embla-carousel-react": {
92
92
  "src": "../../../../node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.3/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js",
93
93
  "file": "embla-carousel-react.js",
94
- "fileHash": "b5425b87",
94
+ "fileHash": "27e70439",
95
95
  "needsInterop": false
96
96
  },
97
97
  "embla-carousel-wheel-gestures": {
98
98
  "src": "../../../../node_modules/.pnpm/embla-carousel-wheel-gestures@8.1.0_embla-carousel@8.6.0/node_modules/embla-carousel-wheel-gestures/dist/embla-carousel-wheel-gestures.esm.js",
99
99
  "file": "embla-carousel-wheel-gestures.js",
100
- "fileHash": "333b6f95",
100
+ "fileHash": "03d5e96c",
101
101
  "needsInterop": false
102
102
  },
103
103
  "mapbox-gl": {
104
104
  "src": "../../../../node_modules/.pnpm/mapbox-gl@3.17.0/node_modules/mapbox-gl/dist/mapbox-gl.js",
105
105
  "file": "mapbox-gl.js",
106
- "fileHash": "4a0aa065",
106
+ "fileHash": "af8061a4",
107
107
  "needsInterop": true
108
108
  },
109
109
  "react-dom/client": {
110
110
  "src": "../../../../node_modules/.pnpm/react-dom@19.2.3_react@19.2.3/node_modules/react-dom/client.js",
111
111
  "file": "react-dom_client.js",
112
- "fileHash": "9ec14e81",
112
+ "fileHash": "9add8d51",
113
113
  "needsInterop": true
114
114
  },
115
115
  "tailwind-merge": {
116
116
  "src": "../../../../node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs",
117
117
  "file": "tailwind-merge.js",
118
- "fileHash": "29cd9aec",
118
+ "fileHash": "eaf80d9a",
119
119
  "needsInterop": false
120
120
  }
121
121
  },
@@ -1 +1 @@
1
- {"version":"4.0.16","results":[[":src/resources/carousel-resource.test.tsx",{"duration":204.00628299999994,"failed":false}],[":src/components/album/albums.test.tsx",{"duration":354.172869,"failed":false}],[":src/resources/review-resource.test.tsx",{"duration":595.9101029999999,"failed":false}],[":src/components/map/map-view.test.tsx",{"duration":105.68071299999997,"failed":false}],[":src/components/map/place-inspector.test.tsx",{"duration":435.9108799999999,"failed":false}],[":src/components/album/fullscreen-viewer.test.tsx",{"duration":261.4708179999998,"failed":false}],[":src/components/map/place-list.test.tsx",{"duration":150.6326839999997,"failed":false}],[":src/components/map/place-card.test.tsx",{"duration":322.1624179999999,"failed":false}],[":src/components/map/place-carousel.test.tsx",{"duration":473.4562349999999,"failed":false}],[":src/components/album/album-carousel.test.tsx",{"duration":95.72953800000005,"failed":false}],[":src/components/carousel/carousel.test.tsx",{"duration":81.29822799999988,"failed":false}],[":src/resources/map-resource.test.tsx",{"duration":292.5989340000001,"failed":false}],[":src/resources/albums-resource.test.tsx",{"duration":276.86686799999984,"failed":false}],[":src/components/album/film-strip.test.tsx",{"duration":446.0441739999999,"failed":false}],[":src/components/album/album-card.test.tsx",{"duration":288.73790800000006,"failed":false}],[":src/components/carousel/card.test.tsx",{"duration":92.50694299999986,"failed":false}]]}
1
+ {"version":"4.0.16","results":[[":src/resources/review-resource.test.tsx",{"duration":559.5211790000001,"failed":false}],[":src/resources/carousel-resource.test.tsx",{"duration":274.45098800000005,"failed":false}],[":src/components/album/albums.test.tsx",{"duration":293.8420480000002,"failed":false}],[":src/components/map/place-inspector.test.tsx",{"duration":419.9698040000003,"failed":false}],[":src/components/map/map-view.test.tsx",{"duration":74.87890800000014,"failed":false}],[":src/components/album/fullscreen-viewer.test.tsx",{"duration":268.03875199999993,"failed":false}],[":src/components/map/place-list.test.tsx",{"duration":144.34349999999995,"failed":false}],[":src/components/map/place-card.test.tsx",{"duration":357.63647600000013,"failed":false}],[":src/components/map/place-carousel.test.tsx",{"duration":430.33475,"failed":false}],[":src/components/album/album-carousel.test.tsx",{"duration":88.78069400000004,"failed":false}],[":src/components/carousel/carousel.test.tsx",{"duration":88.54834000000005,"failed":false}],[":src/resources/map-resource.test.tsx",{"duration":280.1168210000001,"failed":false}],[":src/resources/albums-resource.test.tsx",{"duration":286.3251439999999,"failed":false}],[":src/components/album/film-strip.test.tsx",{"duration":479.77164000000016,"failed":false}],[":src/components/album/album-card.test.tsx",{"duration":331.31021499999997,"failed":false}],[":src/components/carousel/card.test.tsx",{"duration":85.36528099999987,"failed":false}]]}