@opengeni/react 1.4.0 → 1.4.2
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 +8 -0
- package/dist/accounts.js +2 -0
- package/dist/accounts.js.map +1 -1
- package/dist/artifacts-document.js +5 -4
- package/dist/artifacts-presentation.js +5 -4
- package/dist/artifacts-spreadsheet.js +4 -3
- package/dist/artifacts.js +14 -13
- package/dist/artifacts.js.map +1 -1
- package/dist/browser-viewer-WGJ43YGI.js +17 -0
- package/dist/chat-interactive-block-ZFHOKTMS.js +12 -0
- package/dist/{chunk-WEHMPOXK.js → chunk-2DDJ6YH6.js} +3 -1
- package/dist/{chunk-WEHMPOXK.js.map → chunk-2DDJ6YH6.js.map} +1 -1
- package/dist/{chunk-C5X5AJXK.js → chunk-2HVLQ26H.js} +5 -4
- package/dist/{chunk-C5X5AJXK.js.map → chunk-2HVLQ26H.js.map} +1 -1
- package/dist/{chunk-A4UJB2MM.js → chunk-32CGLXW2.js} +4 -3
- package/dist/{chunk-A4UJB2MM.js.map → chunk-32CGLXW2.js.map} +1 -1
- package/dist/{chunk-5CVXZA3Y.js → chunk-45NUOSXQ.js} +3 -2
- package/dist/{chunk-5CVXZA3Y.js.map → chunk-45NUOSXQ.js.map} +1 -1
- package/dist/{chunk-WUISZ3WU.js → chunk-53KJBGPZ.js} +5 -4
- package/dist/{chunk-WUISZ3WU.js.map → chunk-53KJBGPZ.js.map} +1 -1
- package/dist/{chunk-MBMPHOMA.js → chunk-55DXD22O.js} +3 -2
- package/dist/{chunk-MBMPHOMA.js.map → chunk-55DXD22O.js.map} +1 -1
- package/dist/{chunk-JT4JW7BC.js → chunk-5I4VRWBB.js} +3 -1
- package/dist/{chunk-JT4JW7BC.js.map → chunk-5I4VRWBB.js.map} +1 -1
- package/dist/{chunk-UK4TINKT.js → chunk-B27E3V37.js} +3 -1
- package/dist/{chunk-UK4TINKT.js.map → chunk-B27E3V37.js.map} +1 -1
- package/dist/{chunk-J6DBS4T3.js → chunk-BNKV5ZLF.js} +5 -4
- package/dist/{chunk-J6DBS4T3.js.map → chunk-BNKV5ZLF.js.map} +1 -1
- package/dist/{chunk-YM2DE7BQ.js → chunk-C5BF4L26.js} +13 -12
- package/dist/{chunk-YM2DE7BQ.js.map → chunk-C5BF4L26.js.map} +1 -1
- package/dist/{chunk-YBXQDQFX.js → chunk-C7CMD56T.js} +6 -5
- package/dist/{chunk-YBXQDQFX.js.map → chunk-C7CMD56T.js.map} +1 -1
- package/dist/{chunk-UGLEYEMP.js → chunk-CM7LVUKC.js} +3 -1
- package/dist/{chunk-UGLEYEMP.js.map → chunk-CM7LVUKC.js.map} +1 -1
- package/dist/{chunk-LJ2UTJJE.js → chunk-CREMJMVN.js} +181 -96
- package/dist/chunk-CREMJMVN.js.map +1 -0
- package/dist/{chunk-JVYQRRC4.js → chunk-CVYCLFMH.js} +3 -1
- package/dist/{chunk-JVYQRRC4.js.map → chunk-CVYCLFMH.js.map} +1 -1
- package/dist/{chunk-Y2PRMYLC.js → chunk-G3U2A6GS.js} +3 -2
- package/dist/{chunk-Y2PRMYLC.js.map → chunk-G3U2A6GS.js.map} +1 -1
- package/dist/{chunk-WZMYFJD3.js → chunk-G6YRCIYJ.js} +16 -7
- package/dist/{chunk-WZMYFJD3.js.map → chunk-G6YRCIYJ.js.map} +1 -1
- package/dist/{chunk-B3V6TG77.js → chunk-GC3PH6N7.js} +3 -1
- package/dist/{chunk-B3V6TG77.js.map → chunk-GC3PH6N7.js.map} +1 -1
- package/dist/{chunk-CJUO7J5Z.js → chunk-HXYOSSQO.js} +3 -2
- package/dist/{chunk-CJUO7J5Z.js.map → chunk-HXYOSSQO.js.map} +1 -1
- package/dist/{chunk-BRM6FVZA.js → chunk-IEE7WCLN.js} +4 -3
- package/dist/{chunk-BRM6FVZA.js.map → chunk-IEE7WCLN.js.map} +1 -1
- package/dist/{chunk-DYWBUX5Q.js → chunk-IMSUVYQB.js} +6 -5
- package/dist/{chunk-DYWBUX5Q.js.map → chunk-IMSUVYQB.js.map} +1 -1
- package/dist/{chunk-LN6TCXD3.js → chunk-IUHHPMAX.js} +184 -48
- package/dist/chunk-IUHHPMAX.js.map +1 -0
- package/dist/{chunk-SGKD2OCN.js → chunk-IYQCWGU5.js} +6 -5
- package/dist/{chunk-SGKD2OCN.js.map → chunk-IYQCWGU5.js.map} +1 -1
- package/dist/{chunk-J2QWVSQY.js → chunk-JH7V627O.js} +8 -7
- package/dist/{chunk-J2QWVSQY.js.map → chunk-JH7V627O.js.map} +1 -1
- package/dist/{chunk-EESD3PY3.js → chunk-JHTIMBOL.js} +6 -5
- package/dist/{chunk-EESD3PY3.js.map → chunk-JHTIMBOL.js.map} +1 -1
- package/dist/{chunk-LNIRAOA3.js → chunk-L2J3PU7A.js} +7 -6
- package/dist/{chunk-LNIRAOA3.js.map → chunk-L2J3PU7A.js.map} +1 -1
- package/dist/{chunk-ZYRGEKWS.js → chunk-LJUMYUBO.js} +3 -1
- package/dist/{chunk-ZYRGEKWS.js.map → chunk-LJUMYUBO.js.map} +1 -1
- package/dist/{chunk-4RVYOY4O.js → chunk-LSW2OJVV.js} +4 -3
- package/dist/{chunk-4RVYOY4O.js.map → chunk-LSW2OJVV.js.map} +1 -1
- package/dist/{chunk-UTRTG6LH.js → chunk-LVS3MH5T.js} +3 -1
- package/dist/{chunk-UTRTG6LH.js.map → chunk-LVS3MH5T.js.map} +1 -1
- package/dist/chunk-M357MHH3.js +2 -0
- package/dist/{chunk-GYVRFZDY.js → chunk-MDIXFKA3.js} +9 -8
- package/dist/{chunk-GYVRFZDY.js.map → chunk-MDIXFKA3.js.map} +1 -1
- package/dist/{chunk-WRHIZYZF.js → chunk-MEQM4LI3.js} +6 -5
- package/dist/{chunk-WRHIZYZF.js.map → chunk-MEQM4LI3.js.map} +1 -1
- package/dist/chunk-NX4ADH73.js +14 -0
- package/dist/chunk-NX4ADH73.js.map +1 -0
- package/dist/{chunk-XCHWDJ22.js → chunk-OGTTUYNT.js} +3 -1
- package/dist/{chunk-XCHWDJ22.js.map → chunk-OGTTUYNT.js.map} +1 -1
- package/dist/{chunk-GIMRELBW.js → chunk-OYQQJL3J.js} +3 -1
- package/dist/{chunk-GIMRELBW.js.map → chunk-OYQQJL3J.js.map} +1 -1
- package/dist/{chunk-RSI7XYXL.js → chunk-PBCZL4JP.js} +6 -5
- package/dist/{chunk-RSI7XYXL.js.map → chunk-PBCZL4JP.js.map} +1 -1
- package/dist/{chunk-I7IWRQLN.js → chunk-PHBFJCEU.js} +17 -11
- package/dist/chunk-PHBFJCEU.js.map +1 -0
- package/dist/{chunk-3CTRFMAK.js → chunk-PKCAYHDC.js} +5 -4
- package/dist/{chunk-3CTRFMAK.js.map → chunk-PKCAYHDC.js.map} +1 -1
- package/dist/{chunk-K3HQAKQX.js → chunk-PMV53IMM.js} +3 -1
- package/dist/{chunk-K3HQAKQX.js.map → chunk-PMV53IMM.js.map} +1 -1
- package/dist/{chunk-YQEAA6LT.js → chunk-QHUE7E4N.js} +3 -2
- package/dist/{chunk-YQEAA6LT.js.map → chunk-QHUE7E4N.js.map} +1 -1
- package/dist/{chunk-OA6HFRQP.js → chunk-QMMCJGFI.js} +4 -3
- package/dist/{chunk-OA6HFRQP.js.map → chunk-QMMCJGFI.js.map} +1 -1
- package/dist/{chunk-YV4L3ILF.js → chunk-QV3DJVRZ.js} +3 -1
- package/dist/{chunk-YV4L3ILF.js.map → chunk-QV3DJVRZ.js.map} +1 -1
- package/dist/{chunk-447JLCBU.js → chunk-S2QH6EZ5.js} +3 -1
- package/dist/{chunk-447JLCBU.js.map → chunk-S2QH6EZ5.js.map} +1 -1
- package/dist/{chunk-PNY3JKBJ.js → chunk-SFH43JT2.js} +5 -4
- package/dist/{chunk-PNY3JKBJ.js.map → chunk-SFH43JT2.js.map} +1 -1
- package/dist/{chunk-AWZLIMKX.js → chunk-T46QZH3E.js} +3 -1
- package/dist/{chunk-AWZLIMKX.js.map → chunk-T46QZH3E.js.map} +1 -1
- package/dist/{chunk-5J4FOW6Q.js → chunk-TNEZNMSN.js} +3 -1
- package/dist/{chunk-5J4FOW6Q.js.map → chunk-TNEZNMSN.js.map} +1 -1
- package/dist/{chunk-22KP6LR5.js → chunk-TXS65BB2.js} +3 -1
- package/dist/{chunk-22KP6LR5.js.map → chunk-TXS65BB2.js.map} +1 -1
- package/dist/{chunk-H5X55XH7.js → chunk-UDPH5SLV.js} +4 -3
- package/dist/{chunk-H5X55XH7.js.map → chunk-UDPH5SLV.js.map} +1 -1
- package/dist/{chunk-HDJWDK7W.js → chunk-VCSERYXH.js} +10 -9
- package/dist/{chunk-HDJWDK7W.js.map → chunk-VCSERYXH.js.map} +1 -1
- package/dist/{chunk-VZTQ73XT.js → chunk-XEA5BCMA.js} +3 -1
- package/dist/{chunk-VZTQ73XT.js.map → chunk-XEA5BCMA.js.map} +1 -1
- package/dist/{chunk-5F4WR7X7.js → chunk-XS67YG5R.js} +3 -1
- package/dist/{chunk-5F4WR7X7.js.map → chunk-XS67YG5R.js.map} +1 -1
- package/dist/{chunk-TKOTKRWY.js → chunk-XTD7TZHW.js} +3 -1
- package/dist/{chunk-TKOTKRWY.js.map → chunk-XTD7TZHW.js.map} +1 -1
- package/dist/{chunk-A2PI6UMY.js → chunk-YSRBFJMQ.js} +3 -1
- package/dist/{chunk-A2PI6UMY.js.map → chunk-YSRBFJMQ.js.map} +1 -1
- package/dist/chunk-YVFRBXST.js +1420 -0
- package/dist/chunk-YVFRBXST.js.map +1 -0
- package/dist/{chunk-SCOTPE2I.js → chunk-YYLBXXTE.js} +3 -1
- package/dist/{chunk-SCOTPE2I.js.map → chunk-YYLBXXTE.js.map} +1 -1
- package/dist/{chunk-RHREZ7BO.js → chunk-ZUWF4NF7.js} +3 -1
- package/dist/{chunk-RHREZ7BO.js.map → chunk-ZUWF4NF7.js.map} +1 -1
- package/dist/clipboard.js +3 -2
- package/dist/components/composer-transcription-control.d.ts +4 -0
- package/dist/components/session-conversation.d.ts +6 -0
- package/dist/composer-voice-events.d.ts +8 -0
- package/dist/composer.js +15 -13
- package/dist/computer-viewer-46UIN7F3.js +20 -0
- package/dist/connect.js +15 -12
- package/dist/connect.js.map +1 -1
- package/dist/desktop.js +6 -5
- package/dist/desktop.js.map +1 -1
- package/dist/diffs.js +2 -1
- package/dist/diffs.js.map +1 -1
- package/dist/editor.js +4 -3
- package/dist/editor.js.map +1 -1
- package/dist/embedded-voice-NIL4RDX3.js +69 -0
- package/dist/embedded-voice-NIL4RDX3.js.map +1 -0
- package/dist/{fleet-decision-row-YZ3ZKWMM.js → fleet-decision-row-SI63O5V4.js} +3 -1
- package/dist/{fleet-decision-row-YZ3ZKWMM.js.map → fleet-decision-row-SI63O5V4.js.map} +1 -1
- package/dist/hooks/use-client-config-flags.d.ts +6 -0
- package/dist/hooks/use-realtime-voice-models.d.ts +9 -0
- package/dist/hooks/use-voice-input.d.ts +8 -1
- package/dist/index.js +47 -45
- package/dist/index.js.map +1 -1
- package/dist/interaction.js +14 -13
- package/dist/interaction.js.map +1 -1
- package/dist/{latest-question-GPYM2JNU.js → latest-question-2POFPYNB.js} +5 -4
- package/dist/{latest-question-GPYM2JNU.js.map → latest-question-2POFPYNB.js.map} +1 -1
- package/dist/machines.js +8 -7
- package/dist/{markdown-table-layout-QXSLK4BY.js → markdown-table-layout-DQ4DRNVT.js} +3 -1
- package/dist/{markdown-table-layout-QXSLK4BY.js.map → markdown-table-layout-DQ4DRNVT.js.map} +1 -1
- package/dist/model-policy-picker-menu-WRNSRFQC.js +15 -0
- package/dist/model-policy.js +2 -1
- package/dist/{noto-sans-arabic-loader-IA2T4X2A.js → noto-sans-arabic-loader-XSH2KYWJ.js} +3 -1
- package/dist/{noto-sans-arabic-loader-IA2T4X2A.js.map → noto-sans-arabic-loader-XSH2KYWJ.js.map} +1 -1
- package/dist/{noto-sans-jp-loader.generated-HFGLYBR3.js → noto-sans-jp-loader.generated-MR5L6V7K.js} +3 -1
- package/dist/{noto-sans-jp-loader.generated-HFGLYBR3.js.map → noto-sans-jp-loader.generated-MR5L6V7K.js.map} +1 -1
- package/dist/{platform-activity-row-627BFZ46.js → platform-activity-row-PJJVATTZ.js} +3 -1
- package/dist/{platform-activity-row-627BFZ46.js.map → platform-activity-row-PJJVATTZ.js.map} +1 -1
- package/dist/{queue-surface-implementation-ZHFI5JBP.js → queue-surface-implementation-67FS7FUI.js} +10 -9
- package/dist/{queue-surface-implementation-ZHFI5JBP.js.map → queue-surface-implementation-67FS7FUI.js.map} +1 -1
- package/dist/realtime/embedded-voice.d.ts +20 -0
- package/dist/realtime.js +22 -1353
- package/dist/realtime.js.map +1 -1
- package/dist/sandbox-files-34CJJNOY.js +21 -0
- package/dist/session-ui.js +32 -30
- package/dist/session-ui.js.map +1 -1
- package/dist/session.js +10 -9
- package/dist/sites.js +2 -1
- package/dist/terminal.js +6 -5
- package/dist/terminal.js.map +1 -1
- package/dist/{timeline-annotation-markers-GNDHTGBD.js → timeline-annotation-markers-U3G66KUD.js} +5 -4
- package/dist/{timeline-annotation-markers-GNDHTGBD.js.map → timeline-annotation-markers-U3G66KUD.js.map} +1 -1
- package/dist/{timeline-annotation-selection-DMLMM2TX.js → timeline-annotation-selection-BI7QTPTZ.js} +4 -3
- package/dist/{timeline-annotation-selection-DMLMM2TX.js.map → timeline-annotation-selection-BI7QTPTZ.js.map} +1 -1
- package/dist/{timeline-annotations-dialog-ELRDBHTS.js → timeline-annotations-dialog-FOMHSDTE.js} +7 -6
- package/dist/{timeline-annotations-dialog-ELRDBHTS.js.map → timeline-annotations-dialog-FOMHSDTE.js.map} +1 -1
- package/dist/usage.js +6 -5
- package/dist/usage.js.map +1 -1
- package/dist/voice-recording-owner.d.ts +7 -0
- package/package.json +3 -3
- package/src/components/composer-transcription-control.tsx +109 -27
- package/src/components/markdown.tsx +7 -2
- package/src/components/message-timeline.tsx +10 -1
- package/src/components/session-conversation.tsx +44 -0
- package/src/components/session-proxy-scope.tsx +26 -5
- package/src/composer-voice-events.ts +12 -0
- package/src/connection-discovery.tsx +4 -1
- package/src/hooks/use-client-config-flags.ts +8 -0
- package/src/hooks/use-goal.ts +12 -1
- package/src/hooks/use-realtime-voice-models.ts +67 -0
- package/src/hooks/use-voice-input.ts +109 -18
- package/src/realtime/embedded-voice.tsx +81 -0
- package/src/realtime/realtime-control.tsx +82 -17
- package/src/voice-recording-owner.ts +22 -0
- package/styles/compiled.css +72 -18
- package/styles/index.css +49 -0
- package/styles/responsive.css +61 -4
- package/styles/session-capability.css +1 -1
- package/dist/browser-viewer-SHYKQRNX.js +0 -16
- package/dist/chat-interactive-block-UGBTNB3L.js +0 -11
- package/dist/chunk-I7IWRQLN.js.map +0 -1
- package/dist/chunk-IWIDV7SB.js +0 -1
- package/dist/chunk-LJ2UTJJE.js.map +0 -1
- package/dist/chunk-LN6TCXD3.js.map +0 -1
- package/dist/computer-viewer-6SRGWRUX.js +0 -19
- package/dist/model-policy-picker-menu-DXHUL73H.js +0 -14
- package/dist/sandbox-files-GORZOUUJ.js +0 -20
- /package/dist/{browser-viewer-SHYKQRNX.js.map → browser-viewer-WGJ43YGI.js.map} +0 -0
- /package/dist/{chat-interactive-block-UGBTNB3L.js.map → chat-interactive-block-ZFHOKTMS.js.map} +0 -0
- /package/dist/{chunk-IWIDV7SB.js.map → chunk-M357MHH3.js.map} +0 -0
- /package/dist/{computer-viewer-6SRGWRUX.js.map → computer-viewer-46UIN7F3.js.map} +0 -0
- /package/dist/{model-policy-picker-menu-DXHUL73H.js.map → model-policy-picker-menu-WRNSRFQC.js.map} +0 -0
- /package/dist/{sandbox-files-GORZOUUJ.js.map → sandbox-files-34CJJNOY.js.map} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import {
|
|
2
3
|
useThemeType
|
|
3
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-B27E3V37.js";
|
|
4
5
|
import {
|
|
5
6
|
EmptyQueueStateSurface,
|
|
6
7
|
QUEUE_ITEM_CONTENT_UNAVAILABLE,
|
|
@@ -8,15 +9,15 @@ import {
|
|
|
8
9
|
TimelineAnnotationsChip,
|
|
9
10
|
queueItemContent,
|
|
10
11
|
requestQueueDraftEdit
|
|
11
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JH7V627O.js";
|
|
12
13
|
import {
|
|
13
14
|
TimelineAnnotationSourceRootContext
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2HVLQ26H.js";
|
|
15
16
|
import {
|
|
16
17
|
isRetainedImageContentType,
|
|
17
18
|
timelineGroupContainsPresentedImage,
|
|
18
19
|
useRetainedImageObjectUrl
|
|
19
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-HXYOSSQO.js";
|
|
20
21
|
import {
|
|
21
22
|
approvalsFromRequiresAction,
|
|
22
23
|
conversationTimeline,
|
|
@@ -30,18 +31,18 @@ import {
|
|
|
30
31
|
useSessionControl,
|
|
31
32
|
useSessionEvents,
|
|
32
33
|
useTurnQueue
|
|
33
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-G6YRCIYJ.js";
|
|
34
35
|
import {
|
|
35
36
|
buildTimeline,
|
|
36
37
|
groupTimeline
|
|
37
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-QMMCJGFI.js";
|
|
38
39
|
import {
|
|
39
40
|
mcpToolLeaf,
|
|
40
41
|
toolDisplayName
|
|
41
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-T46QZH3E.js";
|
|
42
43
|
import {
|
|
43
44
|
OpenGeniProvider
|
|
44
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-PKCAYHDC.js";
|
|
45
46
|
import {
|
|
46
47
|
ActivityDisclosure,
|
|
47
48
|
BodyNote,
|
|
@@ -62,22 +63,22 @@ import {
|
|
|
62
63
|
useForcedDefaultOpen,
|
|
63
64
|
useTimelineSearchNavigation,
|
|
64
65
|
useTimelineSearchReveal
|
|
65
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-PHBFJCEU.js";
|
|
66
67
|
import {
|
|
67
68
|
prefersReducedMotion
|
|
68
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-OYQQJL3J.js";
|
|
69
70
|
import {
|
|
70
71
|
OpenGeniLinkProvider,
|
|
71
72
|
chainLinkResolvers,
|
|
72
73
|
sessionLinkResolver,
|
|
73
74
|
useOpenGeniLinkResolver,
|
|
74
75
|
viewerLinkResolver
|
|
75
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-OGTTUYNT.js";
|
|
76
77
|
import {
|
|
77
78
|
loadPierreDiffs,
|
|
78
79
|
pierreDiffsRevision,
|
|
79
80
|
subscribePierreDiffs
|
|
80
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-YSRBFJMQ.js";
|
|
81
82
|
import {
|
|
82
83
|
Actions,
|
|
83
84
|
AttachButton,
|
|
@@ -101,25 +102,25 @@ import {
|
|
|
101
102
|
StopButton,
|
|
102
103
|
Surface,
|
|
103
104
|
useChatComposerController
|
|
104
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-IUHHPMAX.js";
|
|
105
106
|
import {
|
|
106
107
|
FILE_ONLY_MESSAGE_TEXT,
|
|
107
108
|
useComposer
|
|
108
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-PBCZL4JP.js";
|
|
109
110
|
import {
|
|
110
111
|
LightboxProvider,
|
|
111
112
|
Tooltip,
|
|
112
113
|
TooltipContent,
|
|
113
114
|
TooltipProvider,
|
|
114
115
|
TooltipTrigger
|
|
115
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-IEE7WCLN.js";
|
|
116
117
|
import {
|
|
117
118
|
ModelPolicyPicker
|
|
118
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-L2J3PU7A.js";
|
|
119
120
|
import {
|
|
120
121
|
projectPickerRows,
|
|
121
122
|
sortPickerRows
|
|
122
|
-
} from "./chunk-
|
|
123
|
+
} from "./chunk-XS67YG5R.js";
|
|
123
124
|
import {
|
|
124
125
|
formatBytes,
|
|
125
126
|
formatClockTime,
|
|
@@ -127,25 +128,25 @@ import {
|
|
|
127
128
|
stringifyPayload,
|
|
128
129
|
truncate,
|
|
129
130
|
tryParseJson
|
|
130
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-LVS3MH5T.js";
|
|
131
132
|
import {
|
|
132
133
|
allowanceLabels,
|
|
133
134
|
allowanceResetSentence,
|
|
134
135
|
formatAllowanceInstant
|
|
135
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-GC3PH6N7.js";
|
|
136
137
|
import {
|
|
137
138
|
usePolledValue
|
|
138
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-QHUE7E4N.js";
|
|
139
140
|
import {
|
|
140
141
|
useErrorMessage
|
|
141
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-CM7LVUKC.js";
|
|
142
143
|
import {
|
|
143
144
|
useOpenGeni,
|
|
144
145
|
useOpenGeniClient
|
|
145
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-XTD7TZHW.js";
|
|
146
147
|
import {
|
|
147
148
|
cn
|
|
148
|
-
} from "./chunk-
|
|
149
|
+
} from "./chunk-TXS65BB2.js";
|
|
149
150
|
|
|
150
151
|
// src/components/human-input-form.tsx
|
|
151
152
|
import { ChevronDownIcon, ChevronUpIcon, MessageCircleQuestionIcon } from "lucide-react";
|
|
@@ -1350,7 +1351,7 @@ function ToolActionReviewCard({
|
|
|
1350
1351
|
function ToolActionReviewDetails({
|
|
1351
1352
|
review,
|
|
1352
1353
|
path: initialPath = "",
|
|
1353
|
-
load,
|
|
1354
|
+
load: load2,
|
|
1354
1355
|
onBack,
|
|
1355
1356
|
manageFocus = true
|
|
1356
1357
|
}) {
|
|
@@ -1373,7 +1374,7 @@ function ToolActionReviewDetails({
|
|
|
1373
1374
|
let active = true;
|
|
1374
1375
|
setPage(null);
|
|
1375
1376
|
setError(false);
|
|
1376
|
-
void
|
|
1377
|
+
void load2(review, path, offset).then(
|
|
1377
1378
|
(value) => {
|
|
1378
1379
|
if (!active) return;
|
|
1379
1380
|
if (value.actionDigest !== review.actionDigest || value.id !== review.id || value.path !== path) {
|
|
@@ -1389,7 +1390,7 @@ function ToolActionReviewDetails({
|
|
|
1389
1390
|
return () => {
|
|
1390
1391
|
active = false;
|
|
1391
1392
|
};
|
|
1392
|
-
}, [review, path, offset,
|
|
1393
|
+
}, [review, path, offset, load2, retry]);
|
|
1393
1394
|
const open = (next, label) => {
|
|
1394
1395
|
setTrail((value) => [...value, { path, label }]);
|
|
1395
1396
|
setPath(next);
|
|
@@ -1966,7 +1967,7 @@ import { jsx as jsx6 } from "react/jsx-runtime";
|
|
|
1966
1967
|
var History = createContext2(null);
|
|
1967
1968
|
function ToolReviewHistoryProvider({
|
|
1968
1969
|
events,
|
|
1969
|
-
load,
|
|
1970
|
+
load: load2,
|
|
1970
1971
|
onViewDetails,
|
|
1971
1972
|
children
|
|
1972
1973
|
}) {
|
|
@@ -1980,10 +1981,10 @@ function ToolReviewHistoryProvider({
|
|
|
1980
1981
|
revision: [...events].reverse().find(
|
|
1981
1982
|
(event) => event.type === "session.requiresAction" || event.type === "agent.toolCall.output" || event.type.startsWith("turn.") || event.type === "user.approvalDecision" || event.type.startsWith("session.control.")
|
|
1982
1983
|
)?.sequence ?? 0,
|
|
1983
|
-
load,
|
|
1984
|
+
load: load2,
|
|
1984
1985
|
onViewDetails
|
|
1985
1986
|
}),
|
|
1986
|
-
[events,
|
|
1987
|
+
[events, load2, onViewDetails]
|
|
1987
1988
|
);
|
|
1988
1989
|
return /* @__PURE__ */ jsx6(History.Provider, { value, children });
|
|
1989
1990
|
}
|
|
@@ -1994,12 +1995,12 @@ function useHasToolReview(approvalId) {
|
|
|
1994
1995
|
function useRecordedToolReview(approvalId) {
|
|
1995
1996
|
const history = useContext2(History);
|
|
1996
1997
|
const [review, setReview] = useState5(null);
|
|
1997
|
-
const
|
|
1998
|
+
const load2 = history?.load;
|
|
1998
1999
|
const revision = history?.revision;
|
|
1999
2000
|
useEffect5(() => {
|
|
2000
|
-
if (!
|
|
2001
|
+
if (!load2 || !approvalId) return;
|
|
2001
2002
|
let active = true;
|
|
2002
|
-
void
|
|
2003
|
+
void load2(approvalId).then(
|
|
2003
2004
|
(value) => {
|
|
2004
2005
|
if (active && value.id === approvalId) setReview(value);
|
|
2005
2006
|
},
|
|
@@ -2008,7 +2009,7 @@ function useRecordedToolReview(approvalId) {
|
|
|
2008
2009
|
return () => {
|
|
2009
2010
|
active = false;
|
|
2010
2011
|
};
|
|
2011
|
-
}, [approvalId,
|
|
2012
|
+
}, [approvalId, load2, revision]);
|
|
2012
2013
|
const onViewDetails = history?.onViewDetails;
|
|
2013
2014
|
return {
|
|
2014
2015
|
review: review && review.id === approvalId ? review : null,
|
|
@@ -3408,7 +3409,7 @@ function RetainedSessionImageDisclosure(props) {
|
|
|
3408
3409
|
}
|
|
3409
3410
|
function LoadedRetainedSessionImageDisclosure({
|
|
3410
3411
|
artifact,
|
|
3411
|
-
load,
|
|
3412
|
+
load: load2,
|
|
3412
3413
|
title,
|
|
3413
3414
|
caption,
|
|
3414
3415
|
noun,
|
|
@@ -3421,7 +3422,7 @@ function LoadedRetainedSessionImageDisclosure({
|
|
|
3421
3422
|
defaultOpen,
|
|
3422
3423
|
children
|
|
3423
3424
|
}) {
|
|
3424
|
-
const state = useRetainedImageObjectUrl(artifact,
|
|
3425
|
+
const state = useRetainedImageObjectUrl(artifact, load2);
|
|
3425
3426
|
const downloadFilename = filename ?? retainedImageFilename(artifact);
|
|
3426
3427
|
const figure = {
|
|
3427
3428
|
src: state.kind === "ready" ? state.url : "",
|
|
@@ -3752,12 +3753,12 @@ function SiteArtifactRenderer({ item }) {
|
|
|
3752
3753
|
}
|
|
3753
3754
|
function GeneratedImageDisclosure({
|
|
3754
3755
|
receipt,
|
|
3755
|
-
load,
|
|
3756
|
+
load: load2,
|
|
3756
3757
|
prompt,
|
|
3757
3758
|
failed,
|
|
3758
3759
|
cancelled
|
|
3759
3760
|
}) {
|
|
3760
|
-
const state = useRetainedImageObjectUrl(receipt.artifact,
|
|
3761
|
+
const state = useRetainedImageObjectUrl(receipt.artifact, load2);
|
|
3761
3762
|
const dimensions = receipt.artifact.dimensions;
|
|
3762
3763
|
const title = failed ? "Image generation failed" : "Generated image";
|
|
3763
3764
|
const caption = prompt || `Generated image \xB7 ${dimensions.width}\xD7${dimensions.height}`;
|
|
@@ -5044,8 +5045,8 @@ function useSeenActivityIds() {
|
|
|
5044
5045
|
|
|
5045
5046
|
// src/timeline/activity-rail.tsx
|
|
5046
5047
|
import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
5047
|
-
var LazyFleetDecisionRow = lazy2(() => import("./fleet-decision-row-
|
|
5048
|
-
var LazyPlatformActivityRow = lazy2(() => import("./platform-activity-row-
|
|
5048
|
+
var LazyFleetDecisionRow = lazy2(() => import("./fleet-decision-row-SI63O5V4.js"));
|
|
5049
|
+
var LazyPlatformActivityRow = lazy2(() => import("./platform-activity-row-PJJVATTZ.js"));
|
|
5049
5050
|
function familyOf(item) {
|
|
5050
5051
|
if (item.kind === "tool-call") {
|
|
5051
5052
|
return item.name === "exec_command" || item.name === "write_stdin" ? "terminal" : item.name;
|
|
@@ -7288,8 +7289,8 @@ function AllowanceExhaustedRow({ refusal }) {
|
|
|
7288
7289
|
|
|
7289
7290
|
// src/components/message-timeline.tsx
|
|
7290
7291
|
import { Fragment as Fragment6, jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
7291
|
-
var TimelineAnnotationSelection = lazy3(() => import("./timeline-annotation-selection-
|
|
7292
|
-
var TimelineAnnotationMarkers = lazy3(() => import("./timeline-annotation-markers-
|
|
7292
|
+
var TimelineAnnotationSelection = lazy3(() => import("./timeline-annotation-selection-BI7QTPTZ.js"));
|
|
7293
|
+
var TimelineAnnotationMarkers = lazy3(() => import("./timeline-annotation-markers-U3G66KUD.js"));
|
|
7293
7294
|
var PIN_THRESHOLD_PX = 48;
|
|
7294
7295
|
var JUMP_TO_LATEST_CATCHUP_DEBT_PX = 240;
|
|
7295
7296
|
var QUESTION_NAV_MARGIN_PX = 12;
|
|
@@ -7310,10 +7311,10 @@ var LIVE_NOTE_FOLD_MS = 220;
|
|
|
7310
7311
|
var LIVE_NOTE_GAP_PX = 20;
|
|
7311
7312
|
var LIVE_NOTE_RESERVE_MS = 700;
|
|
7312
7313
|
var LiveNoteFoldContext = createContext12(null);
|
|
7313
|
-
function invokeOlderLoad(
|
|
7314
|
+
function invokeOlderLoad(load2, noProgress, attempt, preserveTail = false) {
|
|
7314
7315
|
try {
|
|
7315
7316
|
const result = invokeOlderHistoryLoaderWithReceiptCapture(
|
|
7316
|
-
|
|
7317
|
+
load2,
|
|
7317
7318
|
(receipt2) => {
|
|
7318
7319
|
attempt[2] = receipt2;
|
|
7319
7320
|
},
|
|
@@ -8770,6 +8771,12 @@ function MessageTimeline({
|
|
|
8770
8771
|
}
|
|
8771
8772
|
releasePinAfterScrollSettled(node);
|
|
8772
8773
|
};
|
|
8774
|
+
useEffect12(() => {
|
|
8775
|
+
const node = scrollRef.current;
|
|
8776
|
+
if (!node) return;
|
|
8777
|
+
node.addEventListener("scrollend", onScrollEnd);
|
|
8778
|
+
return () => node.removeEventListener("scrollend", onScrollEnd);
|
|
8779
|
+
});
|
|
8773
8780
|
const timeline = /* @__PURE__ */ jsx21(
|
|
8774
8781
|
AllowancePresentationProvider,
|
|
8775
8782
|
{
|
|
@@ -8797,7 +8804,6 @@ function MessageTimeline({
|
|
|
8797
8804
|
"data-og-bottom-follow": autoFollow && pinned && !hasNewer ? "true" : "false",
|
|
8798
8805
|
tabIndex: -1,
|
|
8799
8806
|
onScroll,
|
|
8800
|
-
onScrollEnd,
|
|
8801
8807
|
onWheel,
|
|
8802
8808
|
onTouchStart: (event) => {
|
|
8803
8809
|
stopSettlement();
|
|
@@ -10715,7 +10721,7 @@ function authReasonLine(reason) {
|
|
|
10715
10721
|
import { Loader2Icon } from "lucide-react";
|
|
10716
10722
|
import { lazy as lazy4, Suspense as Suspense5 } from "react";
|
|
10717
10723
|
import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
10718
|
-
var loadQueueSurface = () => import("./queue-surface-implementation-
|
|
10724
|
+
var loadQueueSurface = () => import("./queue-surface-implementation-67FS7FUI.js");
|
|
10719
10725
|
var QueueSurface = createQueueSurface(loadQueueSurface);
|
|
10720
10726
|
function createQueueSurface(loadImplementation) {
|
|
10721
10727
|
const LazyQueueSurface = lazy4(async () => ({
|
|
@@ -10756,11 +10762,11 @@ function QueueSurfaceFallback() {
|
|
|
10756
10762
|
import { useCallback as useCallback5 } from "react";
|
|
10757
10763
|
function useAvailableModels(options = {}) {
|
|
10758
10764
|
const client = useOpenGeniClient(options);
|
|
10759
|
-
const
|
|
10765
|
+
const load2 = useCallback5(
|
|
10760
10766
|
async (signal) => await client.getClientConfig({ signal }),
|
|
10761
10767
|
[client]
|
|
10762
10768
|
);
|
|
10763
|
-
const state = usePolledValue(
|
|
10769
|
+
const state = usePolledValue(load2, {
|
|
10764
10770
|
pollIntervalMs: options.pollIntervalMs,
|
|
10765
10771
|
enabled: options.enabled
|
|
10766
10772
|
});
|
|
@@ -10774,7 +10780,7 @@ function useAvailableModels(options = {}) {
|
|
|
10774
10780
|
}
|
|
10775
10781
|
function useWorkspaceModelCatalog(options) {
|
|
10776
10782
|
const client = useOpenGeniClient(options);
|
|
10777
|
-
const
|
|
10783
|
+
const load2 = useCallback5(
|
|
10778
10784
|
async (signal) => {
|
|
10779
10785
|
if (!options.workspaceId) {
|
|
10780
10786
|
return { models: [], defaultModel: null };
|
|
@@ -10790,7 +10796,7 @@ function useWorkspaceModelCatalog(options) {
|
|
|
10790
10796
|
},
|
|
10791
10797
|
[client, options.workspaceId]
|
|
10792
10798
|
);
|
|
10793
|
-
const state = usePolledValue(
|
|
10799
|
+
const state = usePolledValue(load2, {
|
|
10794
10800
|
pollIntervalMs: options.pollIntervalMs,
|
|
10795
10801
|
enabled: options.enabled !== false && Boolean(options.workspaceId)
|
|
10796
10802
|
});
|
|
@@ -12328,10 +12334,10 @@ import {
|
|
|
12328
12334
|
lazy as lazy5,
|
|
12329
12335
|
Suspense as Suspense6,
|
|
12330
12336
|
useCallback as useCallback6,
|
|
12331
|
-
useEffect as
|
|
12337
|
+
useEffect as useEffect18,
|
|
12332
12338
|
useMemo as useMemo10,
|
|
12333
12339
|
useRef as useRef13,
|
|
12334
|
-
useState as
|
|
12340
|
+
useState as useState23
|
|
12335
12341
|
} from "react";
|
|
12336
12342
|
|
|
12337
12343
|
// src/hooks/use-client-config-flags.ts
|
|
@@ -12345,7 +12351,8 @@ var INITIAL_FLAGS = {
|
|
|
12345
12351
|
artifacts: true,
|
|
12346
12352
|
sessionCreation: true,
|
|
12347
12353
|
archive: true,
|
|
12348
|
-
voiceInput: null
|
|
12354
|
+
voiceInput: null,
|
|
12355
|
+
realtimeVoice: false
|
|
12349
12356
|
};
|
|
12350
12357
|
var configReads = /* @__PURE__ */ new WeakMap();
|
|
12351
12358
|
function readClientConfig(client) {
|
|
@@ -12377,7 +12384,8 @@ function useClientConfigFlags(client) {
|
|
|
12377
12384
|
artifacts: config.artifacts !== false,
|
|
12378
12385
|
sessionCreation: config.sessionCreation !== false,
|
|
12379
12386
|
archive: config.archive !== false,
|
|
12380
|
-
voiceInput: config.voiceInput?.available === true ? config.voiceInput : null
|
|
12387
|
+
voiceInput: config.voiceInput?.available === true ? config.voiceInput : null,
|
|
12388
|
+
realtimeVoice: config.realtimeVoice !== false
|
|
12381
12389
|
});
|
|
12382
12390
|
}
|
|
12383
12391
|
},
|
|
@@ -12390,10 +12398,62 @@ function useClientConfigFlags(client) {
|
|
|
12390
12398
|
return flags;
|
|
12391
12399
|
}
|
|
12392
12400
|
|
|
12401
|
+
// src/hooks/use-realtime-voice-models.ts
|
|
12402
|
+
import { useEffect as useEffect15, useState as useState20 } from "react";
|
|
12403
|
+
var CACHE_TTL_MS = 6e4;
|
|
12404
|
+
var cache = /* @__PURE__ */ new WeakMap();
|
|
12405
|
+
function load(client, workspaceId) {
|
|
12406
|
+
let byWorkspace = cache.get(client);
|
|
12407
|
+
if (!byWorkspace) {
|
|
12408
|
+
byWorkspace = /* @__PURE__ */ new Map();
|
|
12409
|
+
cache.set(client, byWorkspace);
|
|
12410
|
+
}
|
|
12411
|
+
const hit = byWorkspace.get(workspaceId);
|
|
12412
|
+
if (hit && hit.expiresAt > Date.now()) return hit.models;
|
|
12413
|
+
const models = Promise.resolve().then(() => client.getWorkspaceRealtimeModelCatalog(workspaceId)).then((catalog) => catalog.models.filter((model) => model.available));
|
|
12414
|
+
const entry = { models, expiresAt: Date.now() + CACHE_TTL_MS };
|
|
12415
|
+
byWorkspace.set(workspaceId, entry);
|
|
12416
|
+
models.catch(() => {
|
|
12417
|
+
if (byWorkspace.get(workspaceId) === entry) byWorkspace.delete(workspaceId);
|
|
12418
|
+
});
|
|
12419
|
+
return models;
|
|
12420
|
+
}
|
|
12421
|
+
function useRealtimeVoiceModels(client, workspaceId, enabled) {
|
|
12422
|
+
const [models, setModels] = useState20([]);
|
|
12423
|
+
useEffect15(() => {
|
|
12424
|
+
setModels([]);
|
|
12425
|
+
const catalogClient = client;
|
|
12426
|
+
if (!enabled || !workspaceId) return;
|
|
12427
|
+
if (typeof catalogClient.getWorkspaceRealtimeModelCatalog !== "function") return;
|
|
12428
|
+
let live = true;
|
|
12429
|
+
load(catalogClient, workspaceId).then(
|
|
12430
|
+
(available) => {
|
|
12431
|
+
if (live) setModels(available);
|
|
12432
|
+
},
|
|
12433
|
+
() => void 0
|
|
12434
|
+
);
|
|
12435
|
+
return () => {
|
|
12436
|
+
live = false;
|
|
12437
|
+
};
|
|
12438
|
+
}, [client, workspaceId, enabled]);
|
|
12439
|
+
return models;
|
|
12440
|
+
}
|
|
12441
|
+
|
|
12393
12442
|
// src/components/session-proxy-scope.tsx
|
|
12394
|
-
import {
|
|
12395
|
-
|
|
12443
|
+
import {
|
|
12444
|
+
formatErrorMessage,
|
|
12445
|
+
OpenGeniApiError as OpenGeniApiError2,
|
|
12446
|
+
OpenGeniBrowserClient
|
|
12447
|
+
} from "@opengeni/sdk/browser";
|
|
12448
|
+
import { useEffect as useEffect16, useMemo as useMemo9, useRef as useRef12, useState as useState21 } from "react";
|
|
12396
12449
|
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
12450
|
+
function proxyLoadErrorMessage(error) {
|
|
12451
|
+
if (error instanceof OpenGeniApiError2 && error.status === 401 && error.code === "unauthenticated") {
|
|
12452
|
+
const message = "Chat is unavailable right now. Ask an administrator for help.";
|
|
12453
|
+
return error.correlationId ? `${message} Reference: ${error.correlationId}.` : message;
|
|
12454
|
+
}
|
|
12455
|
+
return formatErrorMessage(error, "Could not load the conversation.");
|
|
12456
|
+
}
|
|
12397
12457
|
function SessionProxyScope({
|
|
12398
12458
|
baseUrl,
|
|
12399
12459
|
workspaceId,
|
|
@@ -12425,10 +12485,10 @@ function SessionProxyScope({
|
|
|
12425
12485
|
[baseUrl, hasFetch]
|
|
12426
12486
|
);
|
|
12427
12487
|
const client = suppliedClient ?? ownClient;
|
|
12428
|
-
const [state, setState] =
|
|
12488
|
+
const [state, setState] = useState21(
|
|
12429
12489
|
workspaceId ? { status: "ready", workspaceId } : { status: "loading" }
|
|
12430
12490
|
);
|
|
12431
|
-
|
|
12491
|
+
useEffect16(() => {
|
|
12432
12492
|
if (workspaceId) {
|
|
12433
12493
|
setState({ status: "ready", workspaceId });
|
|
12434
12494
|
return;
|
|
@@ -12447,10 +12507,7 @@ function SessionProxyScope({
|
|
|
12447
12507
|
},
|
|
12448
12508
|
(error) => {
|
|
12449
12509
|
if (!active) return;
|
|
12450
|
-
setState({
|
|
12451
|
-
status: "error",
|
|
12452
|
-
message: error instanceof Error ? error.message : "Could not load the conversation."
|
|
12453
|
-
});
|
|
12510
|
+
setState({ status: "error", message: proxyLoadErrorMessage(error) });
|
|
12454
12511
|
}
|
|
12455
12512
|
);
|
|
12456
12513
|
return () => {
|
|
@@ -12467,7 +12524,7 @@ function SessionProxyScope({
|
|
|
12467
12524
|
}
|
|
12468
12525
|
|
|
12469
12526
|
// src/lib/host-theme.ts
|
|
12470
|
-
import { useLayoutEffect as useLayoutEffect6, useEffect as
|
|
12527
|
+
import { useLayoutEffect as useLayoutEffect6, useEffect as useEffect17, useState as useState22 } from "react";
|
|
12471
12528
|
var HOST_THEME_ROOT_ATTRIBUTE = "data-og-host-theme";
|
|
12472
12529
|
var HOST_THEME_ATTRIBUTES = [
|
|
12473
12530
|
"data-theme",
|
|
@@ -12695,7 +12752,7 @@ function hostSurfaceStyle(theme, background) {
|
|
|
12695
12752
|
}
|
|
12696
12753
|
return style;
|
|
12697
12754
|
}
|
|
12698
|
-
var useIsomorphicLayoutEffect = typeof window === "undefined" ?
|
|
12755
|
+
var useIsomorphicLayoutEffect = typeof window === "undefined" ? useEffect17 : useLayoutEffect6;
|
|
12699
12756
|
function designedTheme(overrides) {
|
|
12700
12757
|
for (const token of ["--og-color-fg", "--og-color-bg", "--og-color-canvas"]) {
|
|
12701
12758
|
const value = overrides[token];
|
|
@@ -12745,7 +12802,7 @@ function resolveHostThemeState(element, preference, surface) {
|
|
|
12745
12802
|
function useHostTheme(ref, options) {
|
|
12746
12803
|
const preference = options.theme ?? "auto";
|
|
12747
12804
|
const surface = options.surface ?? "host";
|
|
12748
|
-
const [state, setState] =
|
|
12805
|
+
const [state, setState] = useState22({ theme: preference === "auto" ? void 0 : preference, inherited: false, style: null });
|
|
12749
12806
|
useIsomorphicLayoutEffect(() => {
|
|
12750
12807
|
const element = ref.current;
|
|
12751
12808
|
if (!element || typeof window === "undefined") return;
|
|
@@ -12834,7 +12891,7 @@ function SessionConversation({
|
|
|
12834
12891
|
);
|
|
12835
12892
|
}
|
|
12836
12893
|
function RetryingConversation(props) {
|
|
12837
|
-
const [attempt, setAttempt] =
|
|
12894
|
+
const [attempt, setAttempt] = useState23(0);
|
|
12838
12895
|
return /* @__PURE__ */ jsx26(
|
|
12839
12896
|
Conversation,
|
|
12840
12897
|
{
|
|
@@ -12856,6 +12913,7 @@ function Conversation({
|
|
|
12856
12913
|
allowanceExhaustedLabels,
|
|
12857
12914
|
attachments: attachmentsRequested = true,
|
|
12858
12915
|
voiceInput: voiceInputRequested = true,
|
|
12916
|
+
realtimeVoice: realtimeVoiceRequested = true,
|
|
12859
12917
|
modelPicker,
|
|
12860
12918
|
modelPickerProps,
|
|
12861
12919
|
userMessageDisclosureLabels,
|
|
@@ -12956,6 +13014,27 @@ function Conversation({
|
|
|
12956
13014
|
if (feed.error) void feed.jumpToLatest();
|
|
12957
13015
|
};
|
|
12958
13016
|
const running = status === "running" || status === "recovering" || status === "waiting_capacity";
|
|
13017
|
+
const voiceModels = useRealtimeVoiceModels(
|
|
13018
|
+
context.client,
|
|
13019
|
+
context.workspaceId,
|
|
13020
|
+
realtimeVoiceRequested && config.realtimeVoice && !importedArchive
|
|
13021
|
+
);
|
|
13022
|
+
const [voiceActive, setVoiceActive] = useState23(false);
|
|
13023
|
+
const voiceControl = composer.effectiveControl ?? queue.effectiveControl ?? detail.session?.effectiveControl;
|
|
13024
|
+
const voice = voiceModels.length > 0 && status && !terminal && voiceControl ? /* @__PURE__ */ jsx26(Suspense6, { fallback: null, children: /* @__PURE__ */ jsx26(
|
|
13025
|
+
LazyEmbeddedRealtimeVoice,
|
|
13026
|
+
{
|
|
13027
|
+
client: context.client,
|
|
13028
|
+
workspaceId: context.workspaceId,
|
|
13029
|
+
models: voiceModels,
|
|
13030
|
+
sessionId,
|
|
13031
|
+
sessionStatus: status,
|
|
13032
|
+
effectiveControl: voiceControl,
|
|
13033
|
+
events: feed.events,
|
|
13034
|
+
eventsReady: !feed.initialLoading,
|
|
13035
|
+
onVoiceActiveChange: setVoiceActive
|
|
13036
|
+
}
|
|
13037
|
+
) }) : null;
|
|
12959
13038
|
return /* @__PURE__ */ jsxs19(
|
|
12960
13039
|
"div",
|
|
12961
13040
|
{
|
|
@@ -13108,6 +13187,11 @@ function Conversation({
|
|
|
13108
13187
|
running,
|
|
13109
13188
|
...composerProps,
|
|
13110
13189
|
...transcription && composerProps?.transcription === void 0 ? { transcription } : {},
|
|
13190
|
+
actionsStart: voice ? /* @__PURE__ */ jsxs19(Fragment9, { children: [
|
|
13191
|
+
composerProps?.actionsStart,
|
|
13192
|
+
voice
|
|
13193
|
+
] }) : composerProps?.actionsStart,
|
|
13194
|
+
transcriptionSuppressed: composerProps?.transcriptionSuppressed ?? voiceActive,
|
|
13111
13195
|
composer,
|
|
13112
13196
|
attachments: uploadsEnabled ? files : void 0,
|
|
13113
13197
|
disabled: terminal || composerProps?.disabled,
|
|
@@ -13157,8 +13241,9 @@ function GoalChrome({ sessionId, client, workspaceId, events, chrome }) {
|
|
|
13157
13241
|
});
|
|
13158
13242
|
return /* @__PURE__ */ jsx26(SessionChrome, { ...chrome, goal });
|
|
13159
13243
|
}
|
|
13244
|
+
var LazyEmbeddedRealtimeVoice = lazy5(() => import("./embedded-voice-NIL4RDX3.js"));
|
|
13160
13245
|
var LazyChatInteractiveBlock = lazy5(
|
|
13161
|
-
() => import("./chat-interactive-block-
|
|
13246
|
+
() => import("./chat-interactive-block-ZFHOKTMS.js").then((module) => ({
|
|
13162
13247
|
default: module.ChatInteractiveBlock
|
|
13163
13248
|
}))
|
|
13164
13249
|
);
|
|
@@ -13225,10 +13310,10 @@ function useRetainedLoaders(client, workspaceId, sessionId) {
|
|
|
13225
13310
|
}, [client, workspaceId, sessionId]);
|
|
13226
13311
|
}
|
|
13227
13312
|
function useComposerTranscription(client, workspaceId, capability) {
|
|
13228
|
-
const [workspaceEnabled, setWorkspaceEnabled] =
|
|
13313
|
+
const [workspaceEnabled, setWorkspaceEnabled] = useState23(null);
|
|
13229
13314
|
const reader = client;
|
|
13230
13315
|
const supported = capability !== null && typeof reader.transcribeAudio === "function";
|
|
13231
|
-
|
|
13316
|
+
useEffect18(() => {
|
|
13232
13317
|
if (!supported) return;
|
|
13233
13318
|
let live = true;
|
|
13234
13319
|
const key = workspaceId;
|
|
@@ -13264,7 +13349,7 @@ function useComposerTranscription(client, workspaceId, capability) {
|
|
|
13264
13349
|
}
|
|
13265
13350
|
|
|
13266
13351
|
// src/hooks/use-workspace-sessions.ts
|
|
13267
|
-
import { useCallback as useCallback7, useEffect as
|
|
13352
|
+
import { useCallback as useCallback7, useEffect as useEffect19, useRef as useRef14 } from "react";
|
|
13268
13353
|
function useWorkspaceSessions(options = {}) {
|
|
13269
13354
|
const { client, workspaceId } = useOpenGeni(options);
|
|
13270
13355
|
const projection = options.projection;
|
|
@@ -13300,10 +13385,10 @@ function useWorkspaceSessions(options = {}) {
|
|
|
13300
13385
|
].join("\0");
|
|
13301
13386
|
const previousQueryKey = useRef14(queryKey);
|
|
13302
13387
|
const queryKeyTransition = previousQueryKey.current !== queryKey;
|
|
13303
|
-
|
|
13388
|
+
useEffect19(() => {
|
|
13304
13389
|
previousQueryKey.current = queryKey;
|
|
13305
13390
|
}, [queryKey]);
|
|
13306
|
-
const
|
|
13391
|
+
const load2 = useCallback7(
|
|
13307
13392
|
async (signal) => {
|
|
13308
13393
|
const readGeneration = beginRead?.() ?? ++nextReadGeneration.current;
|
|
13309
13394
|
const query = {
|
|
@@ -13354,7 +13439,7 @@ function useWorkspaceSessions(options = {}) {
|
|
|
13354
13439
|
queryKey
|
|
13355
13440
|
]
|
|
13356
13441
|
);
|
|
13357
|
-
const state = usePolledValue(
|
|
13442
|
+
const state = usePolledValue(load2, {
|
|
13358
13443
|
pollIntervalMs: options.pollIntervalMs,
|
|
13359
13444
|
enabled
|
|
13360
13445
|
});
|
|
@@ -13385,7 +13470,7 @@ function useWorkspaceSessions(options = {}) {
|
|
|
13385
13470
|
// src/components/session-list.tsx
|
|
13386
13471
|
import { deriveSessionDisplayTitle } from "@opengeni/sdk";
|
|
13387
13472
|
import { ArchiveIcon, PencilIcon as PencilIcon2, PlusIcon } from "lucide-react";
|
|
13388
|
-
import { useEffect as
|
|
13473
|
+
import { useEffect as useEffect20, useRef as useRef15, useState as useState24 } from "react";
|
|
13389
13474
|
import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
13390
13475
|
var DEFAULT_LABELS = {
|
|
13391
13476
|
heading: "Chats",
|
|
@@ -13415,7 +13500,7 @@ function SessionList({
|
|
|
13415
13500
|
const labels = { ...DEFAULT_LABELS, ...labelOverrides };
|
|
13416
13501
|
const scope = { client, workspaceId };
|
|
13417
13502
|
const context = useOpenGeni(scope);
|
|
13418
|
-
const [limit, setLimit] =
|
|
13503
|
+
const [limit, setLimit] = useState24(pageSize);
|
|
13419
13504
|
const list = useWorkspaceSessions({
|
|
13420
13505
|
...scope,
|
|
13421
13506
|
parentSessionId: null,
|
|
@@ -13425,14 +13510,14 @@ function SessionList({
|
|
|
13425
13510
|
});
|
|
13426
13511
|
const refresh = list.refresh;
|
|
13427
13512
|
const firstRefreshKey = useRef15(refreshKey);
|
|
13428
|
-
|
|
13513
|
+
useEffect20(() => {
|
|
13429
13514
|
if (Object.is(refreshKey, firstRefreshKey.current)) return;
|
|
13430
13515
|
firstRefreshKey.current = refreshKey;
|
|
13431
13516
|
void refresh();
|
|
13432
13517
|
}, [refresh, refreshKey]);
|
|
13433
|
-
const [editing, setEditing] =
|
|
13434
|
-
const [busy, setBusy] =
|
|
13435
|
-
const [error, setError] =
|
|
13518
|
+
const [editing, setEditing] = useState24(null);
|
|
13519
|
+
const [busy, setBusy] = useState24(null);
|
|
13520
|
+
const [error, setError] = useState24(null);
|
|
13436
13521
|
const formatError = useErrorMessage();
|
|
13437
13522
|
const archiveClient = context.client;
|
|
13438
13523
|
const config = useClientConfigFlags(context.client);
|
|
@@ -13584,10 +13669,10 @@ function SessionList({
|
|
|
13584
13669
|
|
|
13585
13670
|
// src/components/open-geni-chat.tsx
|
|
13586
13671
|
import {
|
|
13587
|
-
OpenGeniApiError as
|
|
13672
|
+
OpenGeniApiError as OpenGeniApiError3
|
|
13588
13673
|
} from "@opengeni/sdk";
|
|
13589
13674
|
import { MenuIcon, XIcon as XIcon2 } from "lucide-react";
|
|
13590
|
-
import { useCallback as useCallback8, useRef as useRef16, useState as
|
|
13675
|
+
import { useCallback as useCallback8, useRef as useRef16, useState as useState25 } from "react";
|
|
13591
13676
|
import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
13592
13677
|
var DEFAULT_LABELS2 = {
|
|
13593
13678
|
openChats: "Open chats",
|
|
@@ -13631,10 +13716,10 @@ function Chat({
|
|
|
13631
13716
|
const labels = { ...DEFAULT_LABELS2, ...labelOverrides };
|
|
13632
13717
|
const scope = { client, workspaceId };
|
|
13633
13718
|
const context = useOpenGeni(scope);
|
|
13634
|
-
const [uncontrolled, setUncontrolled] =
|
|
13719
|
+
const [uncontrolled, setUncontrolled] = useState25(defaultSessionId);
|
|
13635
13720
|
const selected = controlledSessionId !== void 0 ? controlledSessionId : uncontrolled;
|
|
13636
|
-
const [drawerOpen, setDrawerOpen] =
|
|
13637
|
-
const [listRevision, setListRevision] =
|
|
13721
|
+
const [drawerOpen, setDrawerOpen] = useState25(false);
|
|
13722
|
+
const [listRevision, setListRevision] = useState25(0);
|
|
13638
13723
|
const root = useRef16(null);
|
|
13639
13724
|
const hostTheme = useHostTheme(root, { theme, surface });
|
|
13640
13725
|
const config = useClientConfigFlags(context.client);
|
|
@@ -13660,7 +13745,7 @@ function Chat({
|
|
|
13660
13745
|
});
|
|
13661
13746
|
return created.id;
|
|
13662
13747
|
} catch (error) {
|
|
13663
|
-
if (error instanceof
|
|
13748
|
+
if (error instanceof OpenGeniApiError3 && error.code === "route_not_allowed") {
|
|
13664
13749
|
throw new Error(labels.newChatUnavailable, { cause: error });
|
|
13665
13750
|
}
|
|
13666
13751
|
throw error;
|
|
@@ -13802,10 +13887,10 @@ function NewChat({
|
|
|
13802
13887
|
context.workspaceId,
|
|
13803
13888
|
(conversationProps?.voiceInput ?? true) && available ? config.voiceInput : null
|
|
13804
13889
|
);
|
|
13805
|
-
const [text, setText] =
|
|
13806
|
-
const [sending, setSending] =
|
|
13807
|
-
const [error, setError] =
|
|
13808
|
-
const [choice, setChoice] =
|
|
13890
|
+
const [text, setText] = useState25("");
|
|
13891
|
+
const [sending, setSending] = useState25(false);
|
|
13892
|
+
const [error, setError] = useState25(null);
|
|
13893
|
+
const [choice, setChoice] = useState25({});
|
|
13809
13894
|
const formatError = useErrorMessage();
|
|
13810
13895
|
const attempt = useRef16(null);
|
|
13811
13896
|
const resources = uploadsEnabled ? files.readyResources : [];
|
|
@@ -13941,15 +14026,15 @@ function NewChat({
|
|
|
13941
14026
|
|
|
13942
14027
|
// src/components/session-commands-panel.tsx
|
|
13943
14028
|
import { ChevronRightIcon as ChevronRightIcon5, Loader2Icon as Loader2Icon3, SquareIcon } from "lucide-react";
|
|
13944
|
-
import { useState as
|
|
14029
|
+
import { useState as useState26 } from "react";
|
|
13945
14030
|
import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
13946
14031
|
function SessionCommandsPanel({
|
|
13947
14032
|
commands: state,
|
|
13948
14033
|
readOnly = false
|
|
13949
14034
|
}) {
|
|
13950
14035
|
const formatError = useErrorMessage();
|
|
13951
|
-
const [pending, setPending] =
|
|
13952
|
-
const [error, setError] =
|
|
14036
|
+
const [pending, setPending] = useState26(null);
|
|
14037
|
+
const [error, setError] = useState26(null);
|
|
13953
14038
|
const active = state.commands.filter(
|
|
13954
14039
|
(command) => command.state === "running" || command.state === "stopping"
|
|
13955
14040
|
);
|
|
@@ -14038,11 +14123,11 @@ function SessionCommandsPanel({
|
|
|
14038
14123
|
}
|
|
14039
14124
|
|
|
14040
14125
|
// src/hooks/use-session-background-commands.ts
|
|
14041
|
-
import { useCallback as useCallback9, useEffect as
|
|
14126
|
+
import { useCallback as useCallback9, useEffect as useEffect21, useRef as useRef17 } from "react";
|
|
14042
14127
|
function useSessionBackgroundCommands(sessionId, options = {}) {
|
|
14043
14128
|
const { client, workspaceId } = useOpenGeni(options);
|
|
14044
14129
|
const enabled = (options.enabled ?? true) && Boolean(sessionId);
|
|
14045
|
-
const
|
|
14130
|
+
const load2 = useCallback9(
|
|
14046
14131
|
async (signal) => {
|
|
14047
14132
|
if (!sessionId) return { commands: [] };
|
|
14048
14133
|
if (!client.listSessionBackgroundCommands) {
|
|
@@ -14052,13 +14137,13 @@ function useSessionBackgroundCommands(sessionId, options = {}) {
|
|
|
14052
14137
|
},
|
|
14053
14138
|
[client, workspaceId, sessionId]
|
|
14054
14139
|
);
|
|
14055
|
-
const state = usePolledValue(
|
|
14140
|
+
const state = usePolledValue(load2, {
|
|
14056
14141
|
enabled,
|
|
14057
14142
|
pollIntervalMs: options.pollIntervalMs
|
|
14058
14143
|
});
|
|
14059
14144
|
const refresh = state.refresh;
|
|
14060
14145
|
const generation = useRef17(0);
|
|
14061
|
-
|
|
14146
|
+
useEffect21(() => {
|
|
14062
14147
|
generation.current += 1;
|
|
14063
14148
|
return () => {
|
|
14064
14149
|
generation.current += 1;
|
|
@@ -14268,4 +14353,4 @@ export {
|
|
|
14268
14353
|
SessionCommands,
|
|
14269
14354
|
StartupTimings
|
|
14270
14355
|
};
|
|
14271
|
-
//# sourceMappingURL=chunk-
|
|
14356
|
+
//# sourceMappingURL=chunk-CREMJMVN.js.map
|