@grackle-ai/web-components 0.114.0 → 0.115.0
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/.rush/temp/{b1a36bcc314d65fbd843fcff6d3127ebdf827e06.tar.log → 2cba8bf698d83f55d8c7bde4c1f1ab17c9392271.tar.log} +13 -13
- package/.rush/temp/{989dfd9dfc66be6288052dccbf2952ddad9066c6.untar.log → 2cba8bf698d83f55d8c7bde4c1f1ab17c9392271.untar.log} +2 -2
- package/.rush/temp/chunked-rush-logs/web-components._phase_build.chunks.jsonl +4 -4
- package/.rush/temp/chunked-rush-logs/web-components._phase_test.chunks.jsonl +21 -21
- package/.rush/temp/{989dfd9dfc66be6288052dccbf2952ddad9066c6.tar.log → f7dc40a6d2b535279358eddd5c0cd5f4e522416c.tar.log} +2 -2
- package/.rush/temp/{b1a36bcc314d65fbd843fcff6d3127ebdf827e06.untar.log → f7dc40a6d2b535279358eddd5c0cd5f4e522416c.untar.log} +2 -2
- package/.rush/temp/operation/_phase_build/all.log +4 -4
- package/.rush/temp/operation/_phase_build/log-chunks.jsonl +4 -4
- package/.rush/temp/operation/_phase_build/state.json +1 -1
- package/.rush/temp/operation/_phase_test/all.log +21 -21
- package/.rush/temp/operation/_phase_test/log-chunks.jsonl +21 -21
- package/.rush/temp/operation/_phase_test/state.json +1 -1
- package/README.md +1 -1
- package/dist/index.js +2 -2
- package/package.json +2 -2
- package/rush-logs/web-components._phase_build.cache.log +1 -1
- package/rush-logs/web-components._phase_build.log +4 -4
- package/rush-logs/web-components._phase_test.cache.log +1 -1
- package/rush-logs/web-components._phase_test.log +21 -21
- package/src/components/display/EventRenderer.stories.tsx +44 -0
- package/src/components/display/EventRenderer.tsx +8 -2
- package/temp/build/lint/_eslint-5eVG3S6w.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
Start time: Sat May 23 2026
|
|
2
|
-
Invoking "/usr/bin/tar -c -f /home/runner/work/grackle/grackle/common/temp/build-cache/
|
|
1
|
+
Start time: Sat May 23 2026 13:22:09 GMT+0000 (Coordinated Universal Time)
|
|
2
|
+
Invoking "/usr/bin/tar -c -f /home/runner/work/grackle/grackle/common/temp/build-cache/2cba8bf698d83f55d8c7bde4c1f1ab17c9392271-46ef21115686b207.temp -z --files-from=-"
|
|
3
3
|
|
|
4
4
|
======= BEGIN PROCESS INPUT ======
|
|
5
5
|
.rush/temp/operation/_phase_build/all.log
|
|
@@ -27,7 +27,7 @@ storybook-static/assets/Callout-D5tFovqB.css
|
|
|
27
27
|
storybook-static/assets/Callout.stories-BBFu9Kut.js
|
|
28
28
|
storybook-static/assets/ChatInput-Ci5SZXgq.css
|
|
29
29
|
storybook-static/assets/ChatInput.stories--4BDWKcJ.js
|
|
30
|
-
storybook-static/assets/Color-YHDXOIA2-
|
|
30
|
+
storybook-static/assets/Color-YHDXOIA2-CB5Lh7DF.js
|
|
31
31
|
storybook-static/assets/ConfirmDialog-B_iVdIL1.js
|
|
32
32
|
storybook-static/assets/ConfirmDialog-Jqq4bffz.css
|
|
33
33
|
storybook-static/assets/ConfirmDialog.stories-D8W6DL7L.js
|
|
@@ -41,7 +41,7 @@ storybook-static/assets/DagView-BZV40eAE.css
|
|
|
41
41
|
storybook-static/assets/DagView.stories-CgBF-Yag.js
|
|
42
42
|
storybook-static/assets/DemoBanner-DVSwhfpb.css
|
|
43
43
|
storybook-static/assets/DemoBanner.stories-vCkrb_NA.js
|
|
44
|
-
storybook-static/assets/DocsRenderer-CFRXHY34-
|
|
44
|
+
storybook-static/assets/DocsRenderer-CFRXHY34-DNRHYEVt.js
|
|
45
45
|
storybook-static/assets/EditableCheckbox.stories-B8S2-OOA.js
|
|
46
46
|
storybook-static/assets/EditableField-C3Qf3r87.css
|
|
47
47
|
storybook-static/assets/EditableField.module-B3_EXsWq.js
|
|
@@ -57,11 +57,11 @@ storybook-static/assets/EnvironmentSelect.stories-BWBea2nK.js
|
|
|
57
57
|
storybook-static/assets/EventHoverRow-CxddGRVu.css
|
|
58
58
|
storybook-static/assets/EventHoverRow-ImV92zZd.js
|
|
59
59
|
storybook-static/assets/EventHoverRow.stories-BK7zYoTs.js
|
|
60
|
-
storybook-static/assets/EventRenderer-BOzqBM9b.js
|
|
61
60
|
storybook-static/assets/EventRenderer-BlNCdNZc.css
|
|
62
|
-
storybook-static/assets/EventRenderer
|
|
61
|
+
storybook-static/assets/EventRenderer-Duck86gJ.js
|
|
62
|
+
storybook-static/assets/EventRenderer.stories-B6E5gUrT.js
|
|
63
63
|
storybook-static/assets/EventStream-CfWRUqli.css
|
|
64
|
-
storybook-static/assets/EventStream.stories-
|
|
64
|
+
storybook-static/assets/EventStream.stories-C0enYms_.js
|
|
65
65
|
storybook-static/assets/FileEditCard-HLGBsCbP.js
|
|
66
66
|
storybook-static/assets/FileEditCard.stories-DtAmBgWl.js
|
|
67
67
|
storybook-static/assets/FileReadCard-C_-HjDj_.js
|
|
@@ -90,7 +90,7 @@ storybook-static/assets/KnowledgeNav.stories-CBOlv9hr.js
|
|
|
90
90
|
storybook-static/assets/McpAppWidget-4flrrwkF.js
|
|
91
91
|
storybook-static/assets/McpAppWidget.stories-DHwsaddN.js
|
|
92
92
|
storybook-static/assets/McpToolSelector-Aen78-OR.css
|
|
93
|
-
storybook-static/assets/McpToolSelector.stories-
|
|
93
|
+
storybook-static/assets/McpToolSelector.stories-3kqEOdOF.js
|
|
94
94
|
storybook-static/assets/MetadataCard-DjQjUuXl.js
|
|
95
95
|
storybook-static/assets/MetadataCard.stories-qKuIZAhH.js
|
|
96
96
|
storybook-static/assets/PersonaManager-By6uQtUH.css
|
|
@@ -132,7 +132,7 @@ storybook-static/assets/TaskCard.stories-Gw2iralM.js
|
|
|
132
132
|
storybook-static/assets/TaskEditPanel-Cr1utkBZ.css
|
|
133
133
|
storybook-static/assets/TaskEditPanel.stories-alkHhj59.js
|
|
134
134
|
storybook-static/assets/TaskList-BuDIJ0ee.css
|
|
135
|
-
storybook-static/assets/TaskList.stories-
|
|
135
|
+
storybook-static/assets/TaskList.stories-Dy52qfB3.js
|
|
136
136
|
storybook-static/assets/TaskNode-C5aJky5a.css
|
|
137
137
|
storybook-static/assets/TaskNode-DbPTDYLn.js
|
|
138
138
|
storybook-static/assets/TaskNode.stories-B-aK2Fhu.js
|
|
@@ -173,12 +173,12 @@ storybook-static/assets/chunk-XP5HYGXS-BHXC9YeQ.js
|
|
|
173
173
|
storybook-static/assets/circle-BkTGUnbi.js
|
|
174
174
|
storybook-static/assets/classifyTool-DKAAIUjq.js
|
|
175
175
|
storybook-static/assets/clipboard-oRmom8BR.js
|
|
176
|
-
storybook-static/assets/entry-preview-
|
|
176
|
+
storybook-static/assets/entry-preview-CkSA9dtH.js
|
|
177
177
|
storybook-static/assets/entry-preview-docs-CAgjVEX9.js
|
|
178
|
-
storybook-static/assets/enum-converters-
|
|
178
|
+
storybook-static/assets/enum-converters-CR7wmqUG.js
|
|
179
179
|
storybook-static/assets/format-cBZDFpLA.js
|
|
180
180
|
storybook-static/assets/iconSize-Dmuhx6ZO.js
|
|
181
|
-
storybook-static/assets/iframe-
|
|
181
|
+
storybook-static/assets/iframe-szrxTAQm.js
|
|
182
182
|
storybook-static/assets/index-B2V9nFGU.js
|
|
183
183
|
storybook-static/assets/index-BPftEo5x.js
|
|
184
184
|
storybook-static/assets/index-C5DSJyK4.js
|
|
@@ -192,7 +192,7 @@ storybook-static/assets/mockData-2f2DEnLz.js
|
|
|
192
192
|
storybook-static/assets/navigation-CgBzMAFl.js
|
|
193
193
|
storybook-static/assets/preview-DAVcJ_De.css
|
|
194
194
|
storybook-static/assets/preview-DitdPczW.js
|
|
195
|
-
storybook-static/assets/preview-
|
|
195
|
+
storybook-static/assets/preview-fG0AcpYZ.js
|
|
196
196
|
storybook-static/assets/proxy-YSrA_aH7.js
|
|
197
197
|
storybook-static/assets/react-18-ChRu7atC.js
|
|
198
198
|
storybook-static/assets/search-ELdqPLK3.js
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
Start time: Sat May 23 2026
|
|
2
|
-
Invoking "/usr/bin/tar -x -m -f /home/runner/work/grackle/grackle/common/temp/build-cache/
|
|
1
|
+
Start time: Sat May 23 2026 13:25:16 GMT+0000 (Coordinated Universal Time)
|
|
2
|
+
Invoking "/usr/bin/tar -x -m -f /home/runner/work/grackle/grackle/common/temp/build-cache/2cba8bf698d83f55d8c7bde4c1f1ab17c9392271"
|
|
3
3
|
|
|
4
4
|
======= BEGIN PROCESS INPUT ======
|
|
5
5
|
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
{"kind":"O","text":"computing gzip size...\n"}
|
|
13
13
|
{"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[35mindex.css \u001b[39m\u001b[1m\u001b[2m 159.65 kB\u001b[22m\u001b[1m\u001b[22m\u001b[2m │ gzip: 20.78 kB\u001b[22m\n"}
|
|
14
14
|
{"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[36mMcpAppWidget-CSX2W2Vb.js \u001b[39m\u001b[1m\u001b[2m 205.28 kB\u001b[22m\u001b[1m\u001b[22m\u001b[2m │ gzip: 47.19 kB\u001b[22m\n"}
|
|
15
|
-
{"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[36mindex.js \u001b[39m\u001b[1m\u001b[33m1,392.
|
|
16
|
-
{"kind":"O","text":"\u001b[32m✓ built in 5.
|
|
15
|
+
{"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[36mindex.js \u001b[39m\u001b[1m\u001b[33m1,392.84 kB\u001b[39m\u001b[22m\u001b[2m │ gzip: 356.12 kB\u001b[22m\n"}
|
|
16
|
+
{"kind":"O","text":"\u001b[32m✓ built in 5.78s\u001b[39m\n"}
|
|
17
17
|
{"kind":"O","text":"[build:vite-build] Vite build completed.\n"}
|
|
18
|
-
{"kind":"O","text":" ---- build finished (75.
|
|
19
|
-
{"kind":"O","text":"-------------------- Finished (75.
|
|
18
|
+
{"kind":"O","text":" ---- build finished (75.689s) ---- \n"}
|
|
19
|
+
{"kind":"O","text":"-------------------- Finished (75.692s) --------------------\n"}
|
|
@@ -5,31 +5,31 @@
|
|
|
5
5
|
{"kind":"O","text":"\n"}
|
|
6
6
|
{"kind":"O","text":"\u001b[1m\u001b[46m RUN \u001b[49m\u001b[22m \u001b[36mv3.2.4 \u001b[39m\u001b[90m/home/runner/work/grackle/grackle/packages/web-components\u001b[39m\n"}
|
|
7
7
|
{"kind":"O","text":"\n"}
|
|
8
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/
|
|
9
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/
|
|
10
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/dashboard.test.ts \u001b[2m(\u001b[22m\u001b[2m4 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
11
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/route-config.test.ts \u001b[2m(\u001b[22m\u001b[2m23 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
8
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/eventContent.test.ts \u001b[2m(\u001b[22m\u001b[2m38 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 39\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
9
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/sessionEvents.test.ts \u001b[2m(\u001b[22m\u001b[2m14 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 48\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
10
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/dashboard.test.ts \u001b[2m(\u001b[22m\u001b[2m4 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 26\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
11
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/route-config.test.ts \u001b[2m(\u001b[22m\u001b[2m23 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 48\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
12
12
|
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/streamCoordination.test.ts \u001b[2m(\u001b[22m\u001b[2m10 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 29\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
13
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/breadcrumbs.test.ts \u001b[2m(\u001b[22m\u001b[2m18 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
14
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/scrollUtils.test.ts \u001b[2m(\u001b[22m\u001b[2m11 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
15
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/tools/classifyTool.test.ts \u001b[2m(\u001b[22m\u001b[2m6 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
16
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/
|
|
17
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/
|
|
18
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/display/extractText.test.tsx \u001b[2m(\u001b[22m\u001b[2m8 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
19
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/
|
|
20
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/
|
|
21
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/
|
|
22
|
-
{"kind":"O","text":"
|
|
23
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/
|
|
24
|
-
{"kind":"O","text":"
|
|
13
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/breadcrumbs.test.ts \u001b[2m(\u001b[22m\u001b[2m18 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 70\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
14
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/scrollUtils.test.ts \u001b[2m(\u001b[22m\u001b[2m11 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 42\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
15
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/tools/classifyTool.test.ts \u001b[2m(\u001b[22m\u001b[2m6 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 7\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
16
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/assetUrl.test.ts \u001b[2m(\u001b[22m\u001b[2m3 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 16\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
17
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/tools/toolCardHelpers.test.ts \u001b[2m(\u001b[22m\u001b[2m10 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 26\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
18
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/display/extractText.test.tsx \u001b[2m(\u001b[22m\u001b[2m8 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 7\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
19
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/editable/useEditableField.test.tsx \u001b[2m(\u001b[22m\u001b[2m17 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 140\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
20
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/hooks/useEventSelection.test.ts \u001b[2m(\u001b[22m\u001b[2m13 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 185\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
21
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/display/McpAppWidget.test.tsx \u001b[2m(\u001b[22m\u001b[2m3 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[33m 635\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
22
|
+
{"kind":"O","text":" \u001b[33m\u001b[2m✓\u001b[22m\u001b[39m McpAppWidget\u001b[2m > \u001b[22mmounts an iframe host for the widget \u001b[33m 401\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
23
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/notifications/UpdateBanner.test.tsx \u001b[2m(\u001b[22m\u001b[2m4 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 152\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
24
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/grackleHostStyleVariables.test.ts \u001b[2m(\u001b[22m\u001b[2m2 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[33m 300\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
25
25
|
{"kind":"O","text":"\n"}
|
|
26
26
|
{"kind":"O","text":"\u001b[2m Test Files \u001b[22m \u001b[1m\u001b[32m16 passed\u001b[39m\u001b[22m\u001b[90m (16)\u001b[39m\n"}
|
|
27
27
|
{"kind":"O","text":"\u001b[2m Tests \u001b[22m \u001b[1m\u001b[32m184 passed\u001b[39m\u001b[22m\u001b[90m (184)\u001b[39m\n"}
|
|
28
|
-
{"kind":"O","text":"\u001b[2m Start at \u001b[22m
|
|
29
|
-
{"kind":"O","text":"\u001b[2m Duration \u001b[22m
|
|
28
|
+
{"kind":"O","text":"\u001b[2m Start at \u001b[22m 13:23:17\n"}
|
|
29
|
+
{"kind":"O","text":"\u001b[2m Duration \u001b[22m 16.16s\u001b[2m (transform 2.79s, setup 0ms, collect 18.18s, tests 1.77s, environment 12.06s, prepare 6.31s)\u001b[22m\n"}
|
|
30
30
|
{"kind":"O","text":"\n"}
|
|
31
31
|
{"kind":"O","text":"[test:vitest] Vitest completed.\n"}
|
|
32
|
-
{"kind":"O","text":"[test:storybook-test] Starting Storybook static server on port
|
|
32
|
+
{"kind":"O","text":"[test:storybook-test] Starting Storybook static server on port 35329...\n"}
|
|
33
33
|
{"kind":"O","text":"[test:storybook-test] Storybook server ready. Running interaction tests...\n"}
|
|
34
34
|
{"kind":"O","text":"jest-haste-map: duplicate manual mock found: adapter-manager\n"}
|
|
35
35
|
{"kind":"O","text":" The following files share their name; please delete one of them:\n"}
|
|
@@ -122,5 +122,5 @@
|
|
|
122
122
|
{"kind":"O","text":" * <rootDir>/packages/server/src/__mocks__/utils/network.ts\n"}
|
|
123
123
|
{"kind":"O","text":"\n"}
|
|
124
124
|
{"kind":"O","text":"[test:storybook-test] Storybook interaction tests completed.\n"}
|
|
125
|
-
{"kind":"O","text":" ---- test finished (
|
|
126
|
-
{"kind":"O","text":"-------------------- Finished (
|
|
125
|
+
{"kind":"O","text":" ---- test finished (113.095s) ---- \n"}
|
|
126
|
+
{"kind":"O","text":"-------------------- Finished (113.1s) --------------------\n"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
Start time: Sat May 23 2026
|
|
2
|
-
Invoking "/usr/bin/tar -c -f /home/runner/work/grackle/grackle/common/temp/build-cache/
|
|
1
|
+
Start time: Sat May 23 2026 13:25:10 GMT+0000 (Coordinated Universal Time)
|
|
2
|
+
Invoking "/usr/bin/tar -c -f /home/runner/work/grackle/grackle/common/temp/build-cache/f7dc40a6d2b535279358eddd5c0cd5f4e522416c-b3d71769d4024e16.temp -z --files-from=-"
|
|
3
3
|
|
|
4
4
|
======= BEGIN PROCESS INPUT ======
|
|
5
5
|
.rush/temp/operation/_phase_test/all.log
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
Start time: Sat May 23 2026
|
|
2
|
-
Invoking "/usr/bin/tar -x -m -f /home/runner/work/grackle/grackle/common/temp/build-cache/
|
|
1
|
+
Start time: Sat May 23 2026 13:25:16 GMT+0000 (Coordinated Universal Time)
|
|
2
|
+
Invoking "/usr/bin/tar -x -m -f /home/runner/work/grackle/grackle/common/temp/build-cache/f7dc40a6d2b535279358eddd5c0cd5f4e522416c"
|
|
3
3
|
|
|
4
4
|
======= BEGIN PROCESS INPUT ======
|
|
5
5
|
|
|
@@ -12,8 +12,8 @@ rendering chunks...
|
|
|
12
12
|
computing gzip size...
|
|
13
13
|
dist/index.css 159.65 kB │ gzip: 20.78 kB
|
|
14
14
|
dist/McpAppWidget-CSX2W2Vb.js 205.28 kB │ gzip: 47.19 kB
|
|
15
|
-
dist/index.js 1,392.
|
|
16
|
-
✓ built in 5.
|
|
15
|
+
dist/index.js 1,392.84 kB │ gzip: 356.12 kB
|
|
16
|
+
✓ built in 5.78s
|
|
17
17
|
[build:vite-build] Vite build completed.
|
|
18
|
-
---- build finished (75.
|
|
19
|
-
-------------------- Finished (75.
|
|
18
|
+
---- build finished (75.689s) ----
|
|
19
|
+
-------------------- Finished (75.692s) --------------------
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
{"kind":"O","text":"computing gzip size...\n"}
|
|
13
13
|
{"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[35mindex.css \u001b[39m\u001b[1m\u001b[2m 159.65 kB\u001b[22m\u001b[1m\u001b[22m\u001b[2m │ gzip: 20.78 kB\u001b[22m\n"}
|
|
14
14
|
{"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[36mMcpAppWidget-CSX2W2Vb.js \u001b[39m\u001b[1m\u001b[2m 205.28 kB\u001b[22m\u001b[1m\u001b[22m\u001b[2m │ gzip: 47.19 kB\u001b[22m\n"}
|
|
15
|
-
{"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[36mindex.js \u001b[39m\u001b[1m\u001b[33m1,392.
|
|
16
|
-
{"kind":"O","text":"\u001b[32m✓ built in 5.
|
|
15
|
+
{"kind":"O","text":"\u001b[2mdist/\u001b[22m\u001b[36mindex.js \u001b[39m\u001b[1m\u001b[33m1,392.84 kB\u001b[39m\u001b[22m\u001b[2m │ gzip: 356.12 kB\u001b[22m\n"}
|
|
16
|
+
{"kind":"O","text":"\u001b[32m✓ built in 5.78s\u001b[39m\n"}
|
|
17
17
|
{"kind":"O","text":"[build:vite-build] Vite build completed.\n"}
|
|
18
|
-
{"kind":"O","text":" ---- build finished (75.
|
|
19
|
-
{"kind":"O","text":"-------------------- Finished (75.
|
|
18
|
+
{"kind":"O","text":" ---- build finished (75.689s) ---- \n"}
|
|
19
|
+
{"kind":"O","text":"-------------------- Finished (75.692s) --------------------\n"}
|
|
@@ -5,31 +5,31 @@ The provided list of phases does not contain all phase dependencies. You may nee
|
|
|
5
5
|
|
|
6
6
|
RUN v3.2.4 /home/runner/work/grackle/grackle/packages/web-components
|
|
7
7
|
|
|
8
|
-
✓ src/utils/
|
|
9
|
-
✓ src/utils/
|
|
10
|
-
✓ src/utils/dashboard.test.ts (4 tests)
|
|
11
|
-
✓ src/utils/route-config.test.ts (23 tests)
|
|
8
|
+
✓ src/utils/eventContent.test.ts (38 tests) 39ms
|
|
9
|
+
✓ src/utils/sessionEvents.test.ts (14 tests) 48ms
|
|
10
|
+
✓ src/utils/dashboard.test.ts (4 tests) 26ms
|
|
11
|
+
✓ src/utils/route-config.test.ts (23 tests) 48ms
|
|
12
12
|
✓ src/utils/streamCoordination.test.ts (10 tests) 29ms
|
|
13
|
-
✓ src/utils/breadcrumbs.test.ts (18 tests)
|
|
14
|
-
✓ src/utils/scrollUtils.test.ts (11 tests)
|
|
15
|
-
✓ src/components/tools/classifyTool.test.ts (6 tests)
|
|
16
|
-
✓ src/
|
|
17
|
-
✓ src/
|
|
18
|
-
✓ src/components/display/extractText.test.tsx (8 tests)
|
|
19
|
-
✓ src/
|
|
20
|
-
✓ src/
|
|
21
|
-
✓ src/components/
|
|
22
|
-
|
|
23
|
-
✓ src/
|
|
24
|
-
|
|
13
|
+
✓ src/utils/breadcrumbs.test.ts (18 tests) 70ms
|
|
14
|
+
✓ src/utils/scrollUtils.test.ts (11 tests) 42ms
|
|
15
|
+
✓ src/components/tools/classifyTool.test.ts (6 tests) 7ms
|
|
16
|
+
✓ src/utils/assetUrl.test.ts (3 tests) 16ms
|
|
17
|
+
✓ src/components/tools/toolCardHelpers.test.ts (10 tests) 26ms
|
|
18
|
+
✓ src/components/display/extractText.test.tsx (8 tests) 7ms
|
|
19
|
+
✓ src/components/editable/useEditableField.test.tsx (17 tests) 140ms
|
|
20
|
+
✓ src/hooks/useEventSelection.test.ts (13 tests) 185ms
|
|
21
|
+
✓ src/components/display/McpAppWidget.test.tsx (3 tests) 635ms
|
|
22
|
+
✓ McpAppWidget > mounts an iframe host for the widget 401ms
|
|
23
|
+
✓ src/components/notifications/UpdateBanner.test.tsx (4 tests) 152ms
|
|
24
|
+
✓ src/utils/grackleHostStyleVariables.test.ts (2 tests) 300ms
|
|
25
25
|
|
|
26
26
|
Test Files 16 passed (16)
|
|
27
27
|
Tests 184 passed (184)
|
|
28
|
-
Start at
|
|
29
|
-
Duration
|
|
28
|
+
Start at 13:23:17
|
|
29
|
+
Duration 16.16s (transform 2.79s, setup 0ms, collect 18.18s, tests 1.77s, environment 12.06s, prepare 6.31s)
|
|
30
30
|
|
|
31
31
|
[test:vitest] Vitest completed.
|
|
32
|
-
[test:storybook-test] Starting Storybook static server on port
|
|
32
|
+
[test:storybook-test] Starting Storybook static server on port 35329...
|
|
33
33
|
[test:storybook-test] Storybook server ready. Running interaction tests...
|
|
34
34
|
jest-haste-map: duplicate manual mock found: adapter-manager
|
|
35
35
|
The following files share their name; please delete one of them:
|
|
@@ -122,5 +122,5 @@ jest-haste-map: duplicate manual mock found: utils/network
|
|
|
122
122
|
* <rootDir>/packages/server/src/__mocks__/utils/network.ts
|
|
123
123
|
|
|
124
124
|
[test:storybook-test] Storybook interaction tests completed.
|
|
125
|
-
---- test finished (
|
|
126
|
-
-------------------- Finished (
|
|
125
|
+
---- test finished (113.095s) ----
|
|
126
|
+
-------------------- Finished (113.1s) --------------------
|
|
@@ -5,31 +5,31 @@
|
|
|
5
5
|
{"kind":"O","text":"\n"}
|
|
6
6
|
{"kind":"O","text":"\u001b[1m\u001b[46m RUN \u001b[49m\u001b[22m \u001b[36mv3.2.4 \u001b[39m\u001b[90m/home/runner/work/grackle/grackle/packages/web-components\u001b[39m\n"}
|
|
7
7
|
{"kind":"O","text":"\n"}
|
|
8
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/
|
|
9
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/
|
|
10
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/dashboard.test.ts \u001b[2m(\u001b[22m\u001b[2m4 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
11
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/route-config.test.ts \u001b[2m(\u001b[22m\u001b[2m23 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
8
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/eventContent.test.ts \u001b[2m(\u001b[22m\u001b[2m38 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 39\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
9
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/sessionEvents.test.ts \u001b[2m(\u001b[22m\u001b[2m14 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 48\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
10
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/dashboard.test.ts \u001b[2m(\u001b[22m\u001b[2m4 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 26\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
11
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/route-config.test.ts \u001b[2m(\u001b[22m\u001b[2m23 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 48\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
12
12
|
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/streamCoordination.test.ts \u001b[2m(\u001b[22m\u001b[2m10 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 29\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
13
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/breadcrumbs.test.ts \u001b[2m(\u001b[22m\u001b[2m18 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
14
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/scrollUtils.test.ts \u001b[2m(\u001b[22m\u001b[2m11 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
15
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/tools/classifyTool.test.ts \u001b[2m(\u001b[22m\u001b[2m6 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
16
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/
|
|
17
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/
|
|
18
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/display/extractText.test.tsx \u001b[2m(\u001b[22m\u001b[2m8 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m
|
|
19
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/
|
|
20
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/
|
|
21
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/
|
|
22
|
-
{"kind":"O","text":"
|
|
23
|
-
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/
|
|
24
|
-
{"kind":"O","text":"
|
|
13
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/breadcrumbs.test.ts \u001b[2m(\u001b[22m\u001b[2m18 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 70\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
14
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/scrollUtils.test.ts \u001b[2m(\u001b[22m\u001b[2m11 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 42\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
15
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/tools/classifyTool.test.ts \u001b[2m(\u001b[22m\u001b[2m6 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 7\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
16
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/assetUrl.test.ts \u001b[2m(\u001b[22m\u001b[2m3 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 16\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
17
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/tools/toolCardHelpers.test.ts \u001b[2m(\u001b[22m\u001b[2m10 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 26\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
18
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/display/extractText.test.tsx \u001b[2m(\u001b[22m\u001b[2m8 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 7\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
19
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/editable/useEditableField.test.tsx \u001b[2m(\u001b[22m\u001b[2m17 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 140\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
20
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/hooks/useEventSelection.test.ts \u001b[2m(\u001b[22m\u001b[2m13 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 185\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
21
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/display/McpAppWidget.test.tsx \u001b[2m(\u001b[22m\u001b[2m3 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[33m 635\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
22
|
+
{"kind":"O","text":" \u001b[33m\u001b[2m✓\u001b[22m\u001b[39m McpAppWidget\u001b[2m > \u001b[22mmounts an iframe host for the widget \u001b[33m 401\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
23
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/components/notifications/UpdateBanner.test.tsx \u001b[2m(\u001b[22m\u001b[2m4 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[32m 152\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
24
|
+
{"kind":"O","text":" \u001b[32m✓\u001b[39m src/utils/grackleHostStyleVariables.test.ts \u001b[2m(\u001b[22m\u001b[2m2 tests\u001b[22m\u001b[2m)\u001b[22m\u001b[33m 300\u001b[2mms\u001b[22m\u001b[39m\n"}
|
|
25
25
|
{"kind":"O","text":"\n"}
|
|
26
26
|
{"kind":"O","text":"\u001b[2m Test Files \u001b[22m \u001b[1m\u001b[32m16 passed\u001b[39m\u001b[22m\u001b[90m (16)\u001b[39m\n"}
|
|
27
27
|
{"kind":"O","text":"\u001b[2m Tests \u001b[22m \u001b[1m\u001b[32m184 passed\u001b[39m\u001b[22m\u001b[90m (184)\u001b[39m\n"}
|
|
28
|
-
{"kind":"O","text":"\u001b[2m Start at \u001b[22m
|
|
29
|
-
{"kind":"O","text":"\u001b[2m Duration \u001b[22m
|
|
28
|
+
{"kind":"O","text":"\u001b[2m Start at \u001b[22m 13:23:17\n"}
|
|
29
|
+
{"kind":"O","text":"\u001b[2m Duration \u001b[22m 16.16s\u001b[2m (transform 2.79s, setup 0ms, collect 18.18s, tests 1.77s, environment 12.06s, prepare 6.31s)\u001b[22m\n"}
|
|
30
30
|
{"kind":"O","text":"\n"}
|
|
31
31
|
{"kind":"O","text":"[test:vitest] Vitest completed.\n"}
|
|
32
|
-
{"kind":"O","text":"[test:storybook-test] Starting Storybook static server on port
|
|
32
|
+
{"kind":"O","text":"[test:storybook-test] Starting Storybook static server on port 35329...\n"}
|
|
33
33
|
{"kind":"O","text":"[test:storybook-test] Storybook server ready. Running interaction tests...\n"}
|
|
34
34
|
{"kind":"O","text":"jest-haste-map: duplicate manual mock found: adapter-manager\n"}
|
|
35
35
|
{"kind":"O","text":" The following files share their name; please delete one of them:\n"}
|
|
@@ -122,5 +122,5 @@
|
|
|
122
122
|
{"kind":"O","text":" * <rootDir>/packages/server/src/__mocks__/utils/network.ts\n"}
|
|
123
123
|
{"kind":"O","text":"\n"}
|
|
124
124
|
{"kind":"O","text":"[test:storybook-test] Storybook interaction tests completed.\n"}
|
|
125
|
-
{"kind":"O","text":" ---- test finished (
|
|
126
|
-
{"kind":"O","text":"-------------------- Finished (
|
|
125
|
+
{"kind":"O","text":" ---- test finished (113.095s) ---- \n"}
|
|
126
|
+
{"kind":"O","text":"-------------------- Finished (113.1s) --------------------\n"}
|
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ Components are grouped by area under `src/components/`:
|
|
|
34
34
|
|----------|----------|
|
|
35
35
|
| **Display primitives** | `Button`, `SplitButton`, `CopyButton`, `Tooltip`, `Breadcrumbs`, `ConfirmDialog`, `Skeleton`, `Spinner`, `SplashScreen`, `FloatingActionBar` |
|
|
36
36
|
| **Event stream** | `EventStream`, `EventRenderer`, `EventHoverRow`, `SessionPicker`, `SessionAttemptSelector` |
|
|
37
|
-
| **MCP Apps widgets** | `widget` events render in a sandboxed iframe via `EventRenderer`/`EventStream` — pass `sandboxProxyUrl`. The host renderer `McpAppWidget` is loaded internally (lazy/code-split) and is **not** a value export; only its prop types (`McpAppWidgetProps`) and `grackleHostStyleVariables` are exported. |
|
|
37
|
+
| **MCP Apps widgets** | `widget` events render in a sandboxed iframe via `EventRenderer`/`EventStream` — pass `sandboxProxyUrl`. `EventRenderer` dispatches on the event's `rendererKind` (v1: `mcp-app-html` → `McpAppWidget`; unknown kinds fall back to the default card), so declarative renderers can be added without changing the contract. The host renderer `McpAppWidget` is loaded internally (lazy/code-split) and is **not** a value export; only its prop types (`McpAppWidgetProps`) and `grackleHostStyleVariables` are exported. |
|
|
38
38
|
| **Tool cards** | `ToolCard`, `FileEditCard`, `FileReadCard`, `ShellCard`, `SearchCard`, `TodoCard`, `MetadataCard`, `AgentToolCard`, `GenericToolCard` |
|
|
39
39
|
| **Layout** | `AppNav`, `Sidebar`, `StatusBar`, `BottomStatusBar` |
|
|
40
40
|
| **Lists** | `TaskList`, `EnvironmentNav`, `FindingsNav` |
|
package/dist/index.js
CHANGED
|
@@ -24386,7 +24386,7 @@ function x4({ event: e, toolUseCtx: t, settled: n, sandboxProxyUrl: r }) {
|
|
|
24386
24386
|
s = JSON.parse(e.content);
|
|
24387
24387
|
} catch {
|
|
24388
24388
|
}
|
|
24389
|
-
return s.html ? /* @__PURE__ */ m(r_, { fallback: /* @__PURE__ */ m(Ro, { content: "Loading widget..." }), children: /* @__PURE__ */ m(
|
|
24389
|
+
return (s.rendererKind ?? "mcp-app-html") !== "mcp-app-html" || !s.html ? /* @__PURE__ */ m(Ro, { content: e.content }) : /* @__PURE__ */ m(r_, { fallback: /* @__PURE__ */ m(Ro, { content: "Loading widget..." }), children: /* @__PURE__ */ m(
|
|
24390
24390
|
f4,
|
|
24391
24391
|
{
|
|
24392
24392
|
widgetHtml: s.html,
|
|
@@ -24395,7 +24395,7 @@ function x4({ event: e, toolUseCtx: t, settled: n, sandboxProxyUrl: r }) {
|
|
|
24395
24395
|
toolInput: s.toolInput,
|
|
24396
24396
|
toolResult: s.toolResult
|
|
24397
24397
|
}
|
|
24398
|
-
) })
|
|
24398
|
+
) });
|
|
24399
24399
|
}
|
|
24400
24400
|
case "system": {
|
|
24401
24401
|
if (e.raw)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grackle-ai/web-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.115.0",
|
|
4
4
|
"description": "Presentational React component library for the Grackle web UI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"sideEffects": [
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"remark-gfm": "^4.0.0",
|
|
47
47
|
"lucide-react": "~0.474.0",
|
|
48
48
|
"react-router": "^7.0.0",
|
|
49
|
-
"@grackle-ai/common": "0.
|
|
49
|
+
"@grackle-ai/common": "0.115.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@rushstack/heft": "1.2.7",
|
|
@@ -12,8 +12,8 @@ rendering chunks...
|
|
|
12
12
|
computing gzip size...
|
|
13
13
|
dist/index.css 159.65 kB │ gzip: 20.78 kB
|
|
14
14
|
dist/McpAppWidget-CSX2W2Vb.js 205.28 kB │ gzip: 47.19 kB
|
|
15
|
-
dist/index.js 1,392.
|
|
16
|
-
✓ built in 5.
|
|
15
|
+
dist/index.js 1,392.84 kB │ gzip: 356.12 kB
|
|
16
|
+
✓ built in 5.78s
|
|
17
17
|
[build:vite-build] Vite build completed.
|
|
18
|
-
---- build finished (75.
|
|
19
|
-
-------------------- Finished (75.
|
|
18
|
+
---- build finished (75.689s) ----
|
|
19
|
+
-------------------- Finished (75.692s) --------------------
|
|
@@ -5,31 +5,31 @@ The provided list of phases does not contain all phase dependencies. You may nee
|
|
|
5
5
|
|
|
6
6
|
RUN v3.2.4 /home/runner/work/grackle/grackle/packages/web-components
|
|
7
7
|
|
|
8
|
-
✓ src/utils/
|
|
9
|
-
✓ src/utils/
|
|
10
|
-
✓ src/utils/dashboard.test.ts (4 tests)
|
|
11
|
-
✓ src/utils/route-config.test.ts (23 tests)
|
|
8
|
+
✓ src/utils/eventContent.test.ts (38 tests) 39ms
|
|
9
|
+
✓ src/utils/sessionEvents.test.ts (14 tests) 48ms
|
|
10
|
+
✓ src/utils/dashboard.test.ts (4 tests) 26ms
|
|
11
|
+
✓ src/utils/route-config.test.ts (23 tests) 48ms
|
|
12
12
|
✓ src/utils/streamCoordination.test.ts (10 tests) 29ms
|
|
13
|
-
✓ src/utils/breadcrumbs.test.ts (18 tests)
|
|
14
|
-
✓ src/utils/scrollUtils.test.ts (11 tests)
|
|
15
|
-
✓ src/components/tools/classifyTool.test.ts (6 tests)
|
|
16
|
-
✓ src/
|
|
17
|
-
✓ src/
|
|
18
|
-
✓ src/components/display/extractText.test.tsx (8 tests)
|
|
19
|
-
✓ src/
|
|
20
|
-
✓ src/
|
|
21
|
-
✓ src/components/
|
|
22
|
-
|
|
23
|
-
✓ src/
|
|
24
|
-
|
|
13
|
+
✓ src/utils/breadcrumbs.test.ts (18 tests) 70ms
|
|
14
|
+
✓ src/utils/scrollUtils.test.ts (11 tests) 42ms
|
|
15
|
+
✓ src/components/tools/classifyTool.test.ts (6 tests) 7ms
|
|
16
|
+
✓ src/utils/assetUrl.test.ts (3 tests) 16ms
|
|
17
|
+
✓ src/components/tools/toolCardHelpers.test.ts (10 tests) 26ms
|
|
18
|
+
✓ src/components/display/extractText.test.tsx (8 tests) 7ms
|
|
19
|
+
✓ src/components/editable/useEditableField.test.tsx (17 tests) 140ms
|
|
20
|
+
✓ src/hooks/useEventSelection.test.ts (13 tests) 185ms
|
|
21
|
+
✓ src/components/display/McpAppWidget.test.tsx (3 tests) 635ms
|
|
22
|
+
✓ McpAppWidget > mounts an iframe host for the widget 401ms
|
|
23
|
+
✓ src/components/notifications/UpdateBanner.test.tsx (4 tests) 152ms
|
|
24
|
+
✓ src/utils/grackleHostStyleVariables.test.ts (2 tests) 300ms
|
|
25
25
|
|
|
26
26
|
Test Files 16 passed (16)
|
|
27
27
|
Tests 184 passed (184)
|
|
28
|
-
Start at
|
|
29
|
-
Duration
|
|
28
|
+
Start at 13:23:17
|
|
29
|
+
Duration 16.16s (transform 2.79s, setup 0ms, collect 18.18s, tests 1.77s, environment 12.06s, prepare 6.31s)
|
|
30
30
|
|
|
31
31
|
[test:vitest] Vitest completed.
|
|
32
|
-
[test:storybook-test] Starting Storybook static server on port
|
|
32
|
+
[test:storybook-test] Starting Storybook static server on port 35329...
|
|
33
33
|
[test:storybook-test] Storybook server ready. Running interaction tests...
|
|
34
34
|
jest-haste-map: duplicate manual mock found: adapter-manager
|
|
35
35
|
The following files share their name; please delete one of them:
|
|
@@ -122,5 +122,5 @@ jest-haste-map: duplicate manual mock found: utils/network
|
|
|
122
122
|
* <rootDir>/packages/server/src/__mocks__/utils/network.ts
|
|
123
123
|
|
|
124
124
|
[test:storybook-test] Storybook interaction tests completed.
|
|
125
|
-
---- test finished (
|
|
126
|
-
-------------------- Finished (
|
|
125
|
+
---- test finished (113.095s) ----
|
|
126
|
+
-------------------- Finished (113.1s) --------------------
|
|
@@ -192,6 +192,50 @@ export const WidgetEvent: Story = {
|
|
|
192
192
|
},
|
|
193
193
|
};
|
|
194
194
|
|
|
195
|
+
/** Agent-authored widget (#1239): dynamic rendererKind + inline-script body + props. */
|
|
196
|
+
export const AgentWidgetEvent: Story = {
|
|
197
|
+
args: {
|
|
198
|
+
event: makeEvent({
|
|
199
|
+
eventType: "widget",
|
|
200
|
+
content: JSON.stringify({
|
|
201
|
+
resourceUri: "ui://grackle/abc123",
|
|
202
|
+
toolName: "widget_render",
|
|
203
|
+
rendererKind: "mcp-app-html",
|
|
204
|
+
widgetId: "abc123",
|
|
205
|
+
version: 2,
|
|
206
|
+
html: "<!doctype html><html><body><div class=\"card\">agent widget</div><script>void 0;</script></body></html>",
|
|
207
|
+
csp: { resourceDomains: ["http://localhost:6007"], connectDomains: ["http://localhost:6007"], allowInlineScripts: true },
|
|
208
|
+
toolInput: { count: 3 },
|
|
209
|
+
toolResult: { content: [{ type: "text", text: "ok" }] },
|
|
210
|
+
}),
|
|
211
|
+
}),
|
|
212
|
+
sandboxProxyUrl: "http://localhost:6007/sandbox.html",
|
|
213
|
+
},
|
|
214
|
+
play: async ({ canvas }) => {
|
|
215
|
+
await expect(await canvas.findByTestId("mcp-app-widget")).toBeInTheDocument();
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
/** An unknown rendererKind falls back to the default event card (no crash). */
|
|
220
|
+
export const UnknownRendererKindWidget: Story = {
|
|
221
|
+
args: {
|
|
222
|
+
event: makeEvent({
|
|
223
|
+
eventType: "widget",
|
|
224
|
+
content: JSON.stringify({
|
|
225
|
+
resourceUri: "",
|
|
226
|
+
toolName: "widget_show",
|
|
227
|
+
rendererKind: "adaptive-card",
|
|
228
|
+
html: "<div>future</div>",
|
|
229
|
+
}),
|
|
230
|
+
}),
|
|
231
|
+
sandboxProxyUrl: "http://localhost:6007/sandbox.html",
|
|
232
|
+
},
|
|
233
|
+
play: async ({ canvas }) => {
|
|
234
|
+
// Unsupported renderer: McpAppWidget is NOT mounted; the raw content shows instead.
|
|
235
|
+
await expect(canvas.queryByTestId("mcp-app-widget")).toBeNull();
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
|
|
195
239
|
/** User input events render as markdown (bold, lists, inline code) inside the bubble. */
|
|
196
240
|
export const UserMessageMarkdown: Story = {
|
|
197
241
|
args: {
|
|
@@ -225,14 +225,20 @@ export function EventRenderer({ event, toolUseCtx, settled, sandboxProxyUrl }: P
|
|
|
225
225
|
}
|
|
226
226
|
let payload: {
|
|
227
227
|
html?: string;
|
|
228
|
-
|
|
228
|
+
rendererKind?: string;
|
|
229
|
+
// `allowInlineScripts` is a Grackle extension to the upstream CSP type
|
|
230
|
+
// (agent-authored widgets, #1239); it is forwarded verbatim to the sandbox.
|
|
231
|
+
csp?: McpUiResourceCsp & { allowInlineScripts?: boolean };
|
|
229
232
|
toolInput?: Record<string, unknown>;
|
|
230
233
|
toolResult?: CallToolResult;
|
|
231
234
|
} = {};
|
|
232
235
|
try {
|
|
233
236
|
payload = JSON.parse(event.content) as typeof payload;
|
|
234
237
|
} catch { /* malformed widget payload — fall back */ }
|
|
235
|
-
|
|
238
|
+
// Dispatch on rendererKind (default "mcp-app-html" for back-compat). This
|
|
239
|
+
// switch is the seam for future declarative renderers (e.g. adaptive-card).
|
|
240
|
+
const rendererKind: string = payload.rendererKind ?? "mcp-app-html";
|
|
241
|
+
if (rendererKind !== "mcp-app-html" || !payload.html) {
|
|
236
242
|
return <DefaultEvent content={event.content} />;
|
|
237
243
|
}
|
|
238
244
|
return (
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
],
|
|
156
156
|
[
|
|
157
157
|
"components/display/EventRenderer.tsx",
|
|
158
|
-
"
|
|
158
|
+
"gezM0fuun/x3AxO8ftjhNIYySUI=_7W3TvvwZxl0TGST6/dyQa8DKDDc="
|
|
159
159
|
],
|
|
160
160
|
[
|
|
161
161
|
"components/display/ConfirmDialog.tsx",
|
|
@@ -535,7 +535,7 @@
|
|
|
535
535
|
],
|
|
536
536
|
[
|
|
537
537
|
"components/display/EventRenderer.stories.tsx",
|
|
538
|
-
"
|
|
538
|
+
"IHG2XMzYHwhC8ZSq4jhuqyExkIM=_7W3TvvwZxl0TGST6/dyQa8DKDDc="
|
|
539
539
|
],
|
|
540
540
|
[
|
|
541
541
|
"components/display/EventStream.stories.tsx",
|