sunpeak 0.8.5 → 0.8.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.
Files changed (21) hide show
  1. package/bin/sunpeak.js +6 -6
  2. package/package.json +1 -1
  3. package/template/dist/albums.json +1 -1
  4. package/template/dist/carousel.json +1 -1
  5. package/template/dist/counter.json +1 -1
  6. package/template/dist/map.json +1 -1
  7. package/template/dist/{confirmation.js → review.js} +2 -2
  8. package/template/dist/{confirmation.json → review.json} +4 -4
  9. package/template/node_modules/.vite/deps/@openai_apps-sdk-ui_components_Button.js +3 -3
  10. package/template/node_modules/.vite/deps/@openai_apps-sdk-ui_components_SegmentedControl.js +4 -4
  11. package/template/node_modules/.vite/deps/@openai_apps-sdk-ui_components_Select.js +20 -20
  12. package/template/node_modules/.vite/deps/@openai_apps-sdk-ui_components_Textarea.js +3 -3
  13. package/template/node_modules/.vite/deps/_metadata.json +35 -35
  14. package/template/node_modules/.vite/deps/{chunk-N6DVYEXK.js → chunk-SPYXUHEY.js} +8 -8
  15. package/template/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  16. package/template/src/resources/{confirmation-resource.json → review-resource.json} +3 -3
  17. package/template/src/resources/{confirmation-resource.tsx → review-resource.tsx} +20 -20
  18. package/template/src/simulations/{confirmation-diff-simulation.json → review-diff-simulation.json} +4 -4
  19. package/template/src/simulations/{confirmation-post-simulation.json → review-post-simulation.json} +4 -4
  20. package/template/src/simulations/{confirmation-purchase-simulation.json → review-purchase-simulation.json} +4 -4
  21. /package/template/node_modules/.vite/deps/{chunk-N6DVYEXK.js.map → chunk-SPYXUHEY.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
- "name": "confirmation",
3
- "title": "Confirmation",
4
- "description": "Visualize and confirm a proposed set of changes or actions",
2
+ "name": "review",
3
+ "title": "Review",
4
+ "description": "Visualize and review a proposed set of changes or actions",
5
5
  "mimeType": "text/html+skybridge",
6
6
  "_meta": {
7
7
  "openai/widgetDomain": "https://sunpeak.ai",
@@ -12,5 +12,5 @@
12
12
  ]
13
13
  }
14
14
  },
15
- "uri": "ui://confirmation-mjt16aw5"
15
+ "uri": "ui://review-mjt2f5f3"
16
16
  }
@@ -2,13 +2,13 @@ import {
2
2
  Button,
3
3
  ButtonLink,
4
4
  CopyButton
5
- } from "./chunk-N6DVYEXK.js";
5
+ } from "./chunk-SPYXUHEY.js";
6
+ import "./chunk-UM3ZGDFR.js";
6
7
  import "./chunk-JAGHY6H6.js";
7
- import "./chunk-QPJAV452.js";
8
8
  import "./chunk-DYQDWJMS.js";
9
+ import "./chunk-QPJAV452.js";
9
10
  import "./chunk-EGRHWZRV.js";
10
11
  import "./chunk-CNYJBM5F.js";
11
- import "./chunk-UM3ZGDFR.js";
12
12
  import "./chunk-JGVISENQ.js";
13
13
  import "./chunk-BUOVMFCD.js";
14
14
  import "./chunk-ILHRZGIS.js";
@@ -1,3 +1,7 @@
1
+ import {
2
+ dist_exports4 as dist_exports
3
+ } from "./chunk-TSEQUROC.js";
4
+ import "./chunk-XZTIOEPG.js";
1
5
  import {
2
6
  useResizeObserver
3
7
  } from "./chunk-JAGHY6H6.js";
@@ -6,10 +10,6 @@ import {
6
10
  waitForAnimationFrame
7
11
  } from "./chunk-DYQDWJMS.js";
8
12
  import "./chunk-EGRHWZRV.js";
9
- import {
10
- dist_exports4 as dist_exports
11
- } from "./chunk-TSEQUROC.js";
12
- import "./chunk-XZTIOEPG.js";
13
13
  import {
14
14
  clsx_default
15
15
  } from "./chunk-CNYJBM5F.js";
@@ -1,41 +1,41 @@
1
1
  import {
2
- Input
3
- } from "./chunk-2DZGWGIP.js";
2
+ dist_exports,
3
+ dist_exports3 as dist_exports2,
4
+ dist_exports5 as dist_exports3
5
+ } from "./chunk-TSEQUROC.js";
6
+ import "./chunk-XZTIOEPG.js";
4
7
  import {
5
8
  Button,
6
9
  LoadingIndicator,
7
10
  TransitionGroup
8
- } from "./chunk-N6DVYEXK.js";
11
+ } from "./chunk-SPYXUHEY.js";
12
+ import {
13
+ Check_default,
14
+ ChevronDownVector_default,
15
+ DropdownVector_default,
16
+ Info_default,
17
+ Search_default,
18
+ X_default
19
+ } from "./chunk-UM3ZGDFR.js";
9
20
  import {
10
21
  useTimeout
11
22
  } from "./chunk-JAGHY6H6.js";
12
- import {
13
- o
14
- } from "./chunk-QPJAV452.js";
15
23
  import {
16
24
  handlePressableMouseEnter,
17
25
  preventDefaultHandler,
18
26
  toCssVariables,
19
27
  waitForAnimationFrame
20
28
  } from "./chunk-DYQDWJMS.js";
21
- import "./chunk-EGRHWZRV.js";
22
29
  import {
23
- dist_exports,
24
- dist_exports3 as dist_exports2,
25
- dist_exports5 as dist_exports3
26
- } from "./chunk-TSEQUROC.js";
27
- import "./chunk-XZTIOEPG.js";
30
+ Input
31
+ } from "./chunk-2DZGWGIP.js";
32
+ import {
33
+ o
34
+ } from "./chunk-QPJAV452.js";
35
+ import "./chunk-EGRHWZRV.js";
28
36
  import {
29
37
  clsx_default
30
38
  } from "./chunk-CNYJBM5F.js";
31
- import {
32
- Check_default,
33
- ChevronDownVector_default,
34
- DropdownVector_default,
35
- Info_default,
36
- Search_default,
37
- X_default
38
- } from "./chunk-UM3ZGDFR.js";
39
39
  import {
40
40
  require_jsx_runtime
41
41
  } from "./chunk-JGVISENQ.js";
@@ -1,9 +1,9 @@
1
- import {
2
- o
3
- } from "./chunk-QPJAV452.js";
4
1
  import {
5
2
  toCssVariables
6
3
  } from "./chunk-DYQDWJMS.js";
4
+ import {
5
+ o
6
+ } from "./chunk-QPJAV452.js";
7
7
  import "./chunk-EGRHWZRV.js";
8
8
  import {
9
9
  clsx_default
@@ -7,149 +7,149 @@
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": "0e51fec8",
10
+ "fileHash": "c4294f84",
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": "4b45983a",
16
+ "fileHash": "146a1adb",
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": "8699c450",
22
+ "fileHash": "fcc76c2e",
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": "651d9e7f",
28
+ "fileHash": "dff7cd13",
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": "33128183",
34
+ "fileHash": "90549264",
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": "b929b5a5",
40
+ "fileHash": "1682d230",
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": "097d6898",
46
+ "fileHash": "29d0dea7",
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": "d4c227fa",
52
+ "fileHash": "95e0a6a4",
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": "e4e68712",
58
+ "fileHash": "2ee1f0e9",
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": "b2d42700",
64
+ "fileHash": "dc2c1206",
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": "2f773d0d",
70
+ "fileHash": "a47ecdc0",
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": "c4149e45",
76
+ "fileHash": "f4d46402",
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": "e55a818f",
82
+ "fileHash": "dcdfa91c",
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": "7928d437",
88
+ "fileHash": "0fcca76e",
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": "1bb217b3",
94
+ "fileHash": "067c2552",
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": "e5d1e192",
100
+ "fileHash": "e04a6e93",
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": "0dca694e",
106
+ "fileHash": "d775d38f",
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": "36decb8e",
112
+ "fileHash": "f7f59ced",
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": "0aa9c93c",
118
+ "fileHash": "7c57bcda",
119
119
  "needsInterop": false
120
120
  }
121
121
  },
122
122
  "chunks": {
123
- "chunk-2DZGWGIP": {
124
- "file": "chunk-2DZGWGIP.js"
123
+ "chunk-TSEQUROC": {
124
+ "file": "chunk-TSEQUROC.js"
125
+ },
126
+ "chunk-XZTIOEPG": {
127
+ "file": "chunk-XZTIOEPG.js"
125
128
  },
126
- "chunk-N6DVYEXK": {
127
- "file": "chunk-N6DVYEXK.js"
129
+ "chunk-SPYXUHEY": {
130
+ "file": "chunk-SPYXUHEY.js"
131
+ },
132
+ "chunk-UM3ZGDFR": {
133
+ "file": "chunk-UM3ZGDFR.js"
128
134
  },
129
135
  "chunk-JAGHY6H6": {
130
136
  "file": "chunk-JAGHY6H6.js"
131
137
  },
132
- "chunk-QPJAV452": {
133
- "file": "chunk-QPJAV452.js"
134
- },
135
138
  "chunk-DYQDWJMS": {
136
139
  "file": "chunk-DYQDWJMS.js"
137
140
  },
138
- "chunk-EGRHWZRV": {
139
- "file": "chunk-EGRHWZRV.js"
141
+ "chunk-2DZGWGIP": {
142
+ "file": "chunk-2DZGWGIP.js"
140
143
  },
141
- "chunk-TSEQUROC": {
142
- "file": "chunk-TSEQUROC.js"
144
+ "chunk-QPJAV452": {
145
+ "file": "chunk-QPJAV452.js"
143
146
  },
144
- "chunk-XZTIOEPG": {
145
- "file": "chunk-XZTIOEPG.js"
147
+ "chunk-EGRHWZRV": {
148
+ "file": "chunk-EGRHWZRV.js"
146
149
  },
147
150
  "chunk-CNYJBM5F": {
148
151
  "file": "chunk-CNYJBM5F.js"
149
152
  },
150
- "chunk-UM3ZGDFR": {
151
- "file": "chunk-UM3ZGDFR.js"
152
- },
153
153
  "chunk-JGVISENQ": {
154
154
  "file": "chunk-JGVISENQ.js"
155
155
  },
@@ -1,9 +1,10 @@
1
+ import {
2
+ Check_default,
3
+ Copy_default
4
+ } from "./chunk-UM3ZGDFR.js";
1
5
  import {
2
6
  useTimeout
3
7
  } from "./chunk-JAGHY6H6.js";
4
- import {
5
- o
6
- } from "./chunk-QPJAV452.js";
7
8
  import {
8
9
  handlePressableMouseEnter,
9
10
  isDev,
@@ -15,13 +16,12 @@ import {
15
16
  toTransformProperty,
16
17
  waitForAnimationFrame
17
18
  } from "./chunk-DYQDWJMS.js";
19
+ import {
20
+ o
21
+ } from "./chunk-QPJAV452.js";
18
22
  import {
19
23
  clsx_default
20
24
  } from "./chunk-CNYJBM5F.js";
21
- import {
22
- Check_default,
23
- Copy_default
24
- } from "./chunk-UM3ZGDFR.js";
25
25
  import {
26
26
  require_jsx_runtime
27
27
  } from "./chunk-JGVISENQ.js";
@@ -625,4 +625,4 @@ export {
625
625
  ButtonLink,
626
626
  CopyButton
627
627
  };
628
- //# sourceMappingURL=chunk-N6DVYEXK.js.map
628
+ //# sourceMappingURL=chunk-SPYXUHEY.js.map
@@ -1 +1 @@
1
- {"version":"4.0.16","results":[[":src/components/album/albums.test.tsx",{"duration":326.520274,"failed":false}],[":src/resources/carousel-resource.test.tsx",{"duration":261.3222820000001,"failed":false}],[":src/resources/counter-resource.test.tsx",{"duration":342.0812799999994,"failed":false}],[":src/components/map/map-view.test.tsx",{"duration":73.70137100000011,"failed":false}],[":src/components/map/place-inspector.test.tsx",{"duration":432.93000200000006,"failed":false}],[":src/components/album/fullscreen-viewer.test.tsx",{"duration":253.5347079999999,"failed":false}],[":src/components/map/place-list.test.tsx",{"duration":161.95495300000016,"failed":false}],[":src/components/map/place-card.test.tsx",{"duration":370.12367099999983,"failed":false}],[":src/components/map/place-carousel.test.tsx",{"duration":403.4559099999999,"failed":false}],[":src/components/album/album-carousel.test.tsx",{"duration":85.3357390000001,"failed":false}],[":src/components/carousel/carousel.test.tsx",{"duration":95.43344399999978,"failed":false}],[":src/resources/albums-resource.test.tsx",{"duration":250.54613099999983,"failed":false}],[":src/components/album/film-strip.test.tsx",{"duration":484.06368499999985,"failed":false}],[":src/components/album/album-card.test.tsx",{"duration":324.16230099999984,"failed":false}],[":src/components/carousel/card.test.tsx",{"duration":84.68081699999993,"failed":false}]]}
1
+ {"version":"4.0.16","results":[[":src/resources/carousel-resource.test.tsx",{"duration":296.55490899999995,"failed":false}],[":src/components/album/albums.test.tsx",{"duration":458.741951,"failed":false}],[":src/resources/counter-resource.test.tsx",{"duration":277.258836,"failed":false}],[":src/components/map/map-view.test.tsx",{"duration":81.79789200000005,"failed":false}],[":src/components/map/place-inspector.test.tsx",{"duration":410.6831910000001,"failed":false}],[":src/components/album/fullscreen-viewer.test.tsx",{"duration":288.4420110000001,"failed":false}],[":src/components/map/place-list.test.tsx",{"duration":146.148862,"failed":false}],[":src/components/map/place-card.test.tsx",{"duration":344.8966650000002,"failed":false}],[":src/components/map/place-carousel.test.tsx",{"duration":427.75209400000017,"failed":false}],[":src/components/album/album-carousel.test.tsx",{"duration":73.333216,"failed":false}],[":src/components/carousel/carousel.test.tsx",{"duration":69.63533200000006,"failed":false}],[":src/resources/albums-resource.test.tsx",{"duration":241.26836400000002,"failed":false}],[":src/components/album/film-strip.test.tsx",{"duration":446.91730400000006,"failed":false}],[":src/components/album/album-card.test.tsx",{"duration":284.9094,"failed":false}],[":src/components/carousel/card.test.tsx",{"duration":71.40019499999994,"failed":false}]]}
@@ -1,7 +1,7 @@
1
1
  {
2
- "name": "confirmation",
3
- "title": "Confirmation",
4
- "description": "Visualize and confirm a proposed set of changes or actions",
2
+ "name": "review",
3
+ "title": "Review",
4
+ "description": "Visualize and review a proposed set of changes or actions",
5
5
  "mimeType": "text/html+skybridge",
6
6
  "_meta": {
7
7
  "openai/widgetDomain": "https://sunpeak.ai",
@@ -12,14 +12,14 @@ import { Button } from '@openai/apps-sdk-ui/components/Button';
12
12
  import { ExpandLg } from '@openai/apps-sdk-ui/components/Icon';
13
13
 
14
14
  /**
15
- * Production-ready Confirmation Resource
15
+ * Production-ready Review Resource
16
16
  *
17
- * A flexible confirmation dialog that adapts to various use cases:
18
- * - Purchase confirmations (items, totals, payment)
19
- * - Code change confirmations (file changes with diffs)
20
- * - Social media post confirmations (content preview)
21
- * - Booking confirmations (details, dates, prices)
22
- * - Generic action confirmations (simple approve/reject)
17
+ * A flexible review dialog that adapts to various use cases:
18
+ * - Purchase reviews (items, totals, payment)
19
+ * - Code change reviews (file changes with diffs)
20
+ * - Social media post reviews (content preview)
21
+ * - Booking reviews (details, dates, prices)
22
+ * - Generic action reviews (simple approve/reject)
23
23
  */
24
24
 
25
25
  // ============================================================================
@@ -75,15 +75,15 @@ interface Section {
75
75
  content: Detail[] | Item[] | Change[] | string;
76
76
  }
77
77
 
78
- /** Tool call configuration for domain-specific confirmation actions */
79
- interface ConfirmationTool {
78
+ /** Tool call configuration for domain-specific review actions */
79
+ interface ReviewTool {
80
80
  /** Tool name to call (e.g., "complete_purchase", "publish_post") */
81
81
  name: string;
82
82
  /** Additional arguments to pass to the tool */
83
83
  arguments?: Record<string, unknown>;
84
84
  }
85
85
 
86
- interface ConfirmationData extends Record<string, unknown> {
86
+ interface ReviewData extends Record<string, unknown> {
87
87
  /** Main title */
88
88
  title: string;
89
89
  /** Optional description below title */
@@ -102,11 +102,11 @@ interface ConfirmationData extends Record<string, unknown> {
102
102
  acceptedMessage?: string;
103
103
  /** Message shown after rejecting */
104
104
  rejectedMessage?: string;
105
- /** Domain-specific tool to call on confirmation */
106
- confirmationTool?: ConfirmationTool;
105
+ /** Domain-specific tool to call on review */
106
+ reviewTool?: ReviewTool;
107
107
  }
108
108
 
109
- interface ConfirmationState extends Record<string, unknown> {
109
+ interface ReviewState extends Record<string, unknown> {
110
110
  decision?: 'accepted' | 'rejected' | null;
111
111
  decidedAt?: string | null;
112
112
  }
@@ -306,13 +306,13 @@ function AlertBanner({ alert }: { alert: Alert }) {
306
306
  // Main Component
307
307
  // ============================================================================
308
308
 
309
- export const ConfirmationResource = React.forwardRef<HTMLDivElement>((_props, ref) => {
310
- const data = useWidgetProps<ConfirmationData>(() => ({
311
- title: 'Confirm',
309
+ export const ReviewResource = React.forwardRef<HTMLDivElement>((_props, ref) => {
310
+ const data = useWidgetProps<ReviewData>(() => ({
311
+ title: 'Review',
312
312
  sections: [],
313
313
  }));
314
314
 
315
- const [widgetState, setWidgetState] = useWidgetState<ConfirmationState>(() => ({
315
+ const [widgetState, setWidgetState] = useWidgetState<ReviewState>(() => ({
316
316
  decision: null,
317
317
  decidedAt: null,
318
318
  }));
@@ -338,7 +338,7 @@ export const ConfirmationResource = React.forwardRef<HTMLDivElement>((_props, re
338
338
  decidedAt,
339
339
  });
340
340
 
341
- const tool = data.confirmationTool;
341
+ const tool = data.reviewTool;
342
342
  if (tool) {
343
343
  console.log('callTool', {
344
344
  name: tool.name,
@@ -358,7 +358,7 @@ export const ConfirmationResource = React.forwardRef<HTMLDivElement>((_props, re
358
358
  decidedAt,
359
359
  });
360
360
 
361
- const tool = data.confirmationTool;
361
+ const tool = data.reviewTool;
362
362
  if (tool) {
363
363
  console.log('callTool', {
364
364
  name: tool.name,
@@ -476,4 +476,4 @@ export const ConfirmationResource = React.forwardRef<HTMLDivElement>((_props, re
476
476
  </div>
477
477
  );
478
478
  });
479
- ConfirmationResource.displayName = 'ConfirmationResource';
479
+ ReviewResource.displayName = 'ReviewResource';
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "userMessage": "I'd like to refactor the authentication module",
3
3
  "tool": {
4
- "name": "diff-confirmation",
5
- "description": "Show a confirmation dialog for a proposed code diff",
4
+ "name": "diff-review",
5
+ "description": "Show a review dialog for a proposed code diff",
6
6
  "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
7
- "title": "Diff Confirmation",
7
+ "title": "Diff Review",
8
8
  "annotations": { "readOnlyHint": false },
9
9
  "_meta": {
10
10
  "openai/toolInvocation/invoking": "Preparing changes",
@@ -62,7 +62,7 @@
62
62
  "rejectLabel": "Cancel",
63
63
  "acceptedMessage": "Changes applied",
64
64
  "rejectedMessage": "Changes cancelled",
65
- "confirmationTool": {
65
+ "reviewTool": {
66
66
  "name": "apply_changes",
67
67
  "arguments": {
68
68
  "changesetId": "cs_789",
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "userMessage": "Post this to my social media",
3
3
  "tool": {
4
- "name": "confirm-post",
5
- "description": "Confirm a social media post before publishing",
4
+ "name": "review-post",
5
+ "description": "Review a social media post before publishing",
6
6
  "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
7
- "title": "Confirm Post",
7
+ "title": "Review Post",
8
8
  "annotations": { "readOnlyHint": false },
9
9
  "_meta": {
10
10
  "openai/toolInvocation/invoking": "Preparing post",
@@ -43,7 +43,7 @@
43
43
  "rejectLabel": "Cancel",
44
44
  "acceptedMessage": "Post published!",
45
45
  "rejectedMessage": "Post cancelled",
46
- "confirmationTool": {
46
+ "reviewTool": {
47
47
  "name": "publish_post",
48
48
  "arguments": {
49
49
  "postId": "draft_456",
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "userMessage": "I want to buy these items",
3
3
  "tool": {
4
- "name": "confirm-purchase",
5
- "description": "Confirm a purchase before completing the transaction",
4
+ "name": "review-purchase",
5
+ "description": "Review a purchase before completing the transaction",
6
6
  "inputSchema": { "type": "object", "properties": {}, "additionalProperties": false },
7
- "title": "Confirm Purchase",
7
+ "title": "Review Purchase",
8
8
  "annotations": { "readOnlyHint": false },
9
9
  "_meta": {
10
10
  "openai/toolInvocation/invoking": "Preparing order",
@@ -74,7 +74,7 @@
74
74
  "rejectLabel": "Cancel",
75
75
  "acceptedMessage": "Order placed!",
76
76
  "rejectedMessage": "Order cancelled",
77
- "confirmationTool": {
77
+ "reviewTool": {
78
78
  "name": "complete_purchase",
79
79
  "arguments": {
80
80
  "orderId": "order_123",