@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
package/dist/desktop.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import {
|
|
2
3
|
DesktopViewer,
|
|
3
4
|
useDesktopStream
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-IMSUVYQB.js";
|
|
6
|
+
import "./chunk-ZUWF4NF7.js";
|
|
7
|
+
import "./chunk-TNEZNMSN.js";
|
|
7
8
|
import {
|
|
8
9
|
registerDesktopViewer
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-5I4VRWBB.js";
|
|
11
|
+
import "./chunk-TXS65BB2.js";
|
|
11
12
|
|
|
12
13
|
// src/desktop.ts
|
|
13
14
|
async function loadDesktop() {
|
package/dist/desktop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/desktop.ts"],"sourcesContent":["import type { DesktopRfbFactory, DesktopRfbLike } from \"@opengeni/sdk\";\nimport { registerDesktopViewer } from \"./lib/workbench-peers\";\n\nexport { DesktopViewer } from \"./components/desktop-viewer\";\nexport type { DesktopViewerProps } from \"./components/desktop-viewer\";\nexport { useDesktopStream } from \"./hooks/use-desktop-stream\";\nexport type { UseDesktopStreamOptions, UseDesktopStreamResult } from \"./hooks/use-desktop-stream\";\nexport { registerDesktopViewer } from \"./lib/workbench-peers\";\n\nasync function loadDesktop(): Promise<DesktopRfbFactory> {\n const mod = (await import(\"@novnc/novnc\")) as unknown as {\n default: new (\n target: HTMLElement,\n url: string,\n options: Parameters<DesktopRfbFactory>[2],\n ) => DesktopRfbLike;\n };\n return (target, url, options) => new mod.default(target, url, options);\n}\n\n/** Opt in once on a VNC route; relay-frame viewers need no noVNC peer. */\nexport function enableDesktopViewer(): void {\n registerDesktopViewer(loadDesktop);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/desktop.ts"],"sourcesContent":["import type { DesktopRfbFactory, DesktopRfbLike } from \"@opengeni/sdk\";\nimport { registerDesktopViewer } from \"./lib/workbench-peers\";\n\nexport { DesktopViewer } from \"./components/desktop-viewer\";\nexport type { DesktopViewerProps } from \"./components/desktop-viewer\";\nexport { useDesktopStream } from \"./hooks/use-desktop-stream\";\nexport type { UseDesktopStreamOptions, UseDesktopStreamResult } from \"./hooks/use-desktop-stream\";\nexport { registerDesktopViewer } from \"./lib/workbench-peers\";\n\nasync function loadDesktop(): Promise<DesktopRfbFactory> {\n const mod = (await import(\"@novnc/novnc\")) as unknown as {\n default: new (\n target: HTMLElement,\n url: string,\n options: Parameters<DesktopRfbFactory>[2],\n ) => DesktopRfbLike;\n };\n return (target, url, options) => new mod.default(target, url, options);\n}\n\n/** Opt in once on a VNC route; relay-frame viewers need no noVNC peer. */\nexport function enableDesktopViewer(): void {\n registerDesktopViewer(loadDesktop);\n}\n"],"mappings":";;;;;;;;;;;;;AASA,eAAe,cAA0C;AACvD,QAAM,MAAO,MAAM,OAAO,cAAc;AAOxC,SAAO,CAAC,QAAQ,KAAK,YAAY,IAAI,IAAI,QAAQ,QAAQ,KAAK,OAAO;AACvE;AAGO,SAAS,sBAA4B;AAC1C,wBAAsB,WAAW;AACnC;","names":[]}
|
package/dist/diffs.js
CHANGED
package/dist/diffs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/diffs.ts"],"sourcesContent":["import { registerPierreDiffs } from \"./lib/pierre-diffs-loader\";\n\nexport { registerPierreDiffs, type PierreDiffsLoader } from \"./lib/pierre-diffs-loader\";\n\n/**\n * Enable Shiki-highlighted diffs and file views from the optional\n * `@pierre/diffs` peer. Call once at startup, only when the host installs it.\n * This is the only module in the package that names the peer, so hosts that\n * skip it build without `@pierre/diffs` and render plain-text diffs.\n */\nexport function enablePierreDiffs(): void {\n registerPierreDiffs(loadPierreDiffsModule);\n}\n\n// One stable loader identity, so repeated enable calls are no-ops.\nconst loadPierreDiffsModule = () => import(\"@pierre/diffs/react\");\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/diffs.ts"],"sourcesContent":["import { registerPierreDiffs } from \"./lib/pierre-diffs-loader\";\n\nexport { registerPierreDiffs, type PierreDiffsLoader } from \"./lib/pierre-diffs-loader\";\n\n/**\n * Enable Shiki-highlighted diffs and file views from the optional\n * `@pierre/diffs` peer. Call once at startup, only when the host installs it.\n * This is the only module in the package that names the peer, so hosts that\n * skip it build without `@pierre/diffs` and render plain-text diffs.\n */\nexport function enablePierreDiffs(): void {\n registerPierreDiffs(loadPierreDiffsModule);\n}\n\n// One stable loader identity, so repeated enable calls are no-ops.\nconst loadPierreDiffsModule = () => import(\"@pierre/diffs/react\");\n"],"mappings":";;;;;;AAUO,SAAS,oBAA0B;AACxC,sBAAoB,qBAAqB;AAC3C;AAGA,IAAM,wBAAwB,MAAM,OAAO,qBAAqB;","names":[]}
|
package/dist/editor.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import {
|
|
2
3
|
CodeEditor,
|
|
3
4
|
languageForPath
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LSW2OJVV.js";
|
|
5
6
|
import {
|
|
6
7
|
registerCodeEditor
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-5I4VRWBB.js";
|
|
9
|
+
import "./chunk-TXS65BB2.js";
|
|
9
10
|
|
|
10
11
|
// src/editor.ts
|
|
11
12
|
var loadEditor = async () => ({ module: await import("@uiw/react-codemirror") });
|
package/dist/editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/editor.ts"],"sourcesContent":["import { registerCodeEditor, type CodeEditorLanguages } from \"./lib/workbench-peers\";\n\nexport { CodeEditor, languageForPath } from \"./components/code-editor\";\nexport type { CodeEditorProps } from \"./components/code-editor\";\nexport { registerCodeEditor } from \"./lib/workbench-peers\";\nexport type { CodeEditorLanguage, CodeEditorLanguages } from \"./lib/workbench-peers\";\n\nconst loadEditor = async () => ({ module: await import(\"@uiw/react-codemirror\") });\n\n/** Only name installed grammar peers in host-supplied language loaders. */\nexport function enableCodeEditor(languages?: CodeEditorLanguages): void {\n registerCodeEditor(languages ? async () => ({ ...(await loadEditor()), languages }) : loadEditor);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/editor.ts"],"sourcesContent":["import { registerCodeEditor, type CodeEditorLanguages } from \"./lib/workbench-peers\";\n\nexport { CodeEditor, languageForPath } from \"./components/code-editor\";\nexport type { CodeEditorProps } from \"./components/code-editor\";\nexport { registerCodeEditor } from \"./lib/workbench-peers\";\nexport type { CodeEditorLanguage, CodeEditorLanguages } from \"./lib/workbench-peers\";\n\nconst loadEditor = async () => ({ module: await import(\"@uiw/react-codemirror\") });\n\n/** Only name installed grammar peers in host-supplied language loaders. */\nexport function enableCodeEditor(languages?: CodeEditorLanguages): void {\n registerCodeEditor(languages ? async () => ({ ...(await loadEditor()), languages }) : loadEditor);\n}\n"],"mappings":";;;;;;;;;;;AAOA,IAAM,aAAa,aAAa,EAAE,QAAQ,MAAM,OAAO,uBAAuB,EAAE;AAGzE,SAAS,iBAAiB,WAAuC;AACtE,qBAAmB,YAAY,aAAa,EAAE,GAAI,MAAM,WAAW,GAAI,UAAU,KAAK,UAAU;AAClG;","names":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
RealtimeVoiceControl,
|
|
4
|
+
useSessionRealtime
|
|
5
|
+
} from "./chunk-YVFRBXST.js";
|
|
6
|
+
import "./chunk-NX4ADH73.js";
|
|
7
|
+
import "./chunk-L2J3PU7A.js";
|
|
8
|
+
import "./chunk-PMV53IMM.js";
|
|
9
|
+
import "./chunk-XS67YG5R.js";
|
|
10
|
+
import "./chunk-XEA5BCMA.js";
|
|
11
|
+
import "./chunk-XTD7TZHW.js";
|
|
12
|
+
import "./chunk-TXS65BB2.js";
|
|
13
|
+
|
|
14
|
+
// src/realtime/embedded-voice.tsx
|
|
15
|
+
import { projectSessionRealtimeLifecycle } from "@opengeni/sdk/realtime";
|
|
16
|
+
import { useEffect, useMemo, useState } from "react";
|
|
17
|
+
import { jsx } from "react/jsx-runtime";
|
|
18
|
+
function EmbeddedRealtimeVoice(props) {
|
|
19
|
+
const lifecycle = useMemo(() => projectSessionRealtimeLifecycle(props.events), [props.events]);
|
|
20
|
+
const activeModel = lifecycle?.state === "active" && !(Date.parse(lifecycle.leaseExpiresAt) <= Date.now()) ? lifecycle.model : null;
|
|
21
|
+
const [chosen, setChosen] = useState(null);
|
|
22
|
+
const fallback = props.models.find((model) => model.recommended) ?? props.models[0];
|
|
23
|
+
const selected = props.models.find((model) => model.id === (activeModel ?? chosen)) ?? (activeModel ? { ...fallback, id: activeModel } : fallback);
|
|
24
|
+
const realtime = useSessionRealtime({
|
|
25
|
+
client: props.client,
|
|
26
|
+
workspaceId: props.workspaceId,
|
|
27
|
+
sessionId: props.sessionId,
|
|
28
|
+
sessionStatus: props.sessionStatus,
|
|
29
|
+
effectiveControl: props.effectiveControl,
|
|
30
|
+
events: props.events,
|
|
31
|
+
eventsReady: props.eventsReady,
|
|
32
|
+
codexConnected: false,
|
|
33
|
+
model: selected.id,
|
|
34
|
+
modelAvailable: selected.available,
|
|
35
|
+
modelUnavailableReason: selected.unavailableReason
|
|
36
|
+
});
|
|
37
|
+
const voiceActive = realtime.snapshot.mode?.state === "active";
|
|
38
|
+
const onVoiceActiveChange = props.onVoiceActiveChange;
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
onVoiceActiveChange?.(voiceActive);
|
|
41
|
+
}, [onVoiceActiveChange, voiceActive]);
|
|
42
|
+
useEffect(() => () => onVoiceActiveChange?.(false), [onVoiceActiveChange]);
|
|
43
|
+
return /* @__PURE__ */ jsx(
|
|
44
|
+
RealtimeVoiceControl,
|
|
45
|
+
{
|
|
46
|
+
snapshot: realtime.snapshot,
|
|
47
|
+
canStart: realtime.canStart,
|
|
48
|
+
admissionBlocker: realtime.admissionBlocker,
|
|
49
|
+
modelAvailable: selected.available,
|
|
50
|
+
menuSide: "top",
|
|
51
|
+
modelMenu: "split",
|
|
52
|
+
showDiagnostics: false,
|
|
53
|
+
audioRef: realtime.audioRef,
|
|
54
|
+
selectedModel: selected,
|
|
55
|
+
models: props.models,
|
|
56
|
+
onSelectModel: realtime.lifecycleActive ? void 0 : setChosen,
|
|
57
|
+
onStart: realtime.start,
|
|
58
|
+
onStop: realtime.stop,
|
|
59
|
+
onRetry: realtime.retry,
|
|
60
|
+
onRetryAudibleOutput: realtime.retryAudibleOutput,
|
|
61
|
+
onSetInputMuted: realtime.setInputMuted,
|
|
62
|
+
onSetOutputMuted: realtime.setOutputMuted
|
|
63
|
+
}
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
export {
|
|
67
|
+
EmbeddedRealtimeVoice as default
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=embedded-voice-NIL4RDX3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/realtime/embedded-voice.tsx"],"sourcesContent":["import type { EffectiveSessionControl, SessionEvent, SessionStatus } from \"@opengeni/sdk\";\nimport { projectSessionRealtimeLifecycle } from \"@opengeni/sdk/realtime\";\nimport { useEffect, useMemo, useState } from \"react\";\n\nimport {\n RealtimeVoiceControl,\n useSessionRealtime,\n type RealtimeModelOption,\n} from \"./realtime-control\";\n\n/**\n * The stock conversation's live voice button (lazy chunk). The conversation\n * mounts it only when the workspace catalog offers an available voice model;\n * this owns choosing among those models and the call itself.\n */\nexport default function EmbeddedRealtimeVoice(props: {\n /** The conversation's client, which serves the realtime routes (or a proxy of them). */\n client: unknown;\n workspaceId: string;\n /** Available voice models, already filtered by the conversation. */\n models: readonly RealtimeModelOption[];\n sessionId: string;\n sessionStatus: SessionStatus;\n effectiveControl: EffectiveSessionControl;\n events: SessionEvent[];\n eventsReady: boolean;\n onVoiceActiveChange?: ((active: boolean) => void) | undefined;\n}) {\n const lifecycle = useMemo(() => projectSessionRealtimeLifecycle(props.events), [props.events]);\n // A call already running (this browser after reload, or another one) fixes the model.\n const activeModel =\n lifecycle?.state === \"active\" && !(Date.parse(lifecycle.leaseExpiresAt) <= Date.now())\n ? lifecycle.model\n : null;\n const [chosen, setChosen] = useState<string | null>(null);\n const fallback = props.models.find((model) => model.recommended) ?? props.models[0]!;\n const selected =\n props.models.find((model) => model.id === (activeModel ?? chosen)) ??\n (activeModel ? { ...fallback, id: activeModel } : fallback);\n const realtime = useSessionRealtime({\n client: props.client as Parameters<typeof useSessionRealtime>[0][\"client\"],\n workspaceId: props.workspaceId,\n sessionId: props.sessionId,\n sessionStatus: props.sessionStatus,\n effectiveControl: props.effectiveControl,\n events: props.events,\n eventsReady: props.eventsReady,\n codexConnected: false,\n model: selected.id,\n modelAvailable: selected.available,\n modelUnavailableReason: selected.unavailableReason,\n });\n const voiceActive = realtime.snapshot.mode?.state === \"active\";\n const onVoiceActiveChange = props.onVoiceActiveChange;\n useEffect(() => {\n onVoiceActiveChange?.(voiceActive);\n }, [onVoiceActiveChange, voiceActive]);\n useEffect(() => () => onVoiceActiveChange?.(false), [onVoiceActiveChange]);\n\n return (\n <RealtimeVoiceControl\n snapshot={realtime.snapshot}\n canStart={realtime.canStart}\n admissionBlocker={realtime.admissionBlocker}\n modelAvailable={selected.available}\n menuSide=\"top\"\n modelMenu=\"split\"\n showDiagnostics={false}\n audioRef={realtime.audioRef}\n selectedModel={selected}\n models={props.models}\n onSelectModel={realtime.lifecycleActive ? undefined : setChosen}\n onStart={realtime.start}\n onStop={realtime.stop}\n onRetry={realtime.retry}\n onRetryAudibleOutput={realtime.retryAudibleOutput}\n onSetInputMuted={realtime.setInputMuted}\n onSetOutputMuted={realtime.setOutputMuted}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AACA,SAAS,uCAAuC;AAChD,SAAS,WAAW,SAAS,gBAAgB;AA0DzC;AA7CW,SAAR,sBAAuC,OAY3C;AACD,QAAM,YAAY,QAAQ,MAAM,gCAAgC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;AAE7F,QAAM,cACJ,WAAW,UAAU,YAAY,EAAE,KAAK,MAAM,UAAU,cAAc,KAAK,KAAK,IAAI,KAChF,UAAU,QACV;AACN,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAwB,IAAI;AACxD,QAAM,WAAW,MAAM,OAAO,KAAK,CAAC,UAAU,MAAM,WAAW,KAAK,MAAM,OAAO,CAAC;AAClF,QAAM,WACJ,MAAM,OAAO,KAAK,CAAC,UAAU,MAAM,QAAQ,eAAe,OAAO,MAChE,cAAc,EAAE,GAAG,UAAU,IAAI,YAAY,IAAI;AACpD,QAAM,WAAW,mBAAmB;AAAA,IAClC,QAAQ,MAAM;AAAA,IACd,aAAa,MAAM;AAAA,IACnB,WAAW,MAAM;AAAA,IACjB,eAAe,MAAM;AAAA,IACrB,kBAAkB,MAAM;AAAA,IACxB,QAAQ,MAAM;AAAA,IACd,aAAa,MAAM;AAAA,IACnB,gBAAgB;AAAA,IAChB,OAAO,SAAS;AAAA,IAChB,gBAAgB,SAAS;AAAA,IACzB,wBAAwB,SAAS;AAAA,EACnC,CAAC;AACD,QAAM,cAAc,SAAS,SAAS,MAAM,UAAU;AACtD,QAAM,sBAAsB,MAAM;AAClC,YAAU,MAAM;AACd,0BAAsB,WAAW;AAAA,EACnC,GAAG,CAAC,qBAAqB,WAAW,CAAC;AACrC,YAAU,MAAM,MAAM,sBAAsB,KAAK,GAAG,CAAC,mBAAmB,CAAC;AAEzE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,SAAS;AAAA,MACnB,UAAU,SAAS;AAAA,MACnB,kBAAkB,SAAS;AAAA,MAC3B,gBAAgB,SAAS;AAAA,MACzB,UAAS;AAAA,MACT,WAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,UAAU,SAAS;AAAA,MACnB,eAAe;AAAA,MACf,QAAQ,MAAM;AAAA,MACd,eAAe,SAAS,kBAAkB,SAAY;AAAA,MACtD,SAAS,SAAS;AAAA,MAClB,QAAQ,SAAS;AAAA,MACjB,SAAS,SAAS;AAAA,MAClB,sBAAsB,SAAS;AAAA,MAC/B,iBAAiB,SAAS;AAAA,MAC1B,kBAAkB,SAAS;AAAA;AAAA,EAC7B;AAEJ;","names":[]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
// src/timeline/fleet-decision-row.tsx
|
|
2
4
|
function GaugeMark({ className, j, s }) {
|
|
3
5
|
return s("svg", {
|
|
@@ -349,4 +351,4 @@ function formatFleetScore(value) {
|
|
|
349
351
|
export {
|
|
350
352
|
FleetDecisionRow as default
|
|
351
353
|
};
|
|
352
|
-
//# sourceMappingURL=fleet-decision-row-
|
|
354
|
+
//# sourceMappingURL=fleet-decision-row-SI63O5V4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/timeline/fleet-decision-row.tsx"],"sourcesContent":["import type { FleetDecisionItem } from \"./types\";\n\ntype RowJsx = typeof import(\"react/jsx-runtime\").jsx;\ntype RowJsxs = typeof import(\"react/jsx-runtime\").jsxs;\n\nfunction GaugeMark({ className, j, s }: { className: string; j: RowJsx; s: RowJsxs }) {\n return s(\"svg\", {\n \"aria-hidden\": \"true\",\n className,\n fill: \"none\",\n height: \"24\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"2\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n children: [\n j(\"path\", { d: \"m 12 14 4-4\" }, \"needle\"),\n j(\"path\", { d: \"M3.34 19a10 10 0 1 1 17.32 0\" }, \"arc\"),\n ],\n });\n}\n\nconst FLEET_ACTUAL_REASON_LABEL: Record<FleetDecisionItem[\"actualReason\"], string> = {\n lease_reused: \"Reused the fenced lease\",\n pin: \"Kept the session pin\",\n rotation: \"Rotated for capacity\",\n active: \"Used the active subscription\",\n all_capped: \"All observed subscriptions were capped\",\n allocator_disabled: \"The policy-selected subscription was disabled for new allocations\",\n none: \"No production candidate was selected\",\n};\n\nconst FLEET_SHADOW_REASON_LABEL: Record<FleetDecisionItem[\"shadowReason\"], string> = {\n fenced_in_flight: \"Kept the fenced in-flight assignment\",\n fenced_candidate_missing: \"The fenced assignment was missing from the snapshot\",\n admission_paced: \"Admission would have been paced\",\n no_eligible_candidate: \"No candidate passed the policy checks\",\n overlay_isolated_empty: \"Explicit isolation left no eligible candidate\",\n best_score: \"Selected the lowest-pressure candidate\",\n affinity_best: \"Session affinity was already best\",\n hysteresis_hold: \"Hysteresis avoided a low-value switch\",\n};\n\nconst FLEET_COMPARISON_LABEL: Record<FleetDecisionItem[\"comparison\"], string> = {\n match: \"Production and shadow matched\",\n different_candidate: \"Shadow preferred another candidate\",\n different_outcome: \"Production and shadow outcomes differed\",\n not_comparable_truncated: \"Comparison limited by bounded candidate data\",\n};\n\nconst FLEET_ADMISSION_REASON_LABEL: Record<FleetDecisionItem[\"admissionReason\"], string> = {\n fenced_in_flight: \"In-flight assignment was fenced\",\n pacing_disabled: \"Admission pacing was disabled\",\n capacity_unknown: \"Capacity was unknown, so work remained admissible\",\n capacity_available: \"Observed capacity was available\",\n work_conserving_borrow: \"Idle capacity was borrowed for standard work\",\n manager_priority: \"Standard work was paced for queued manager demand\",\n standard_starvation_bound: \"The standard-work starvation bound was reached\",\n capacity_saturated: \"Observed dynamic capacity was saturated\",\n emergency_fuse: \"The emergency fuse blocked new work\",\n};\n\nconst FLEET_REJECTION_LABEL: Record<\n Exclude<FleetDecisionItem[\"scores\"][number][\"rejectionReason\"], null>,\n string\n> = {\n allocator_disabled: \"Allocator disabled\",\n unavailable: \"Unavailable\",\n cooling: \"Cooling down\",\n quota_ceiling: \"Quota ceiling reached\",\n overlay_isolation: \"Outside explicit isolation\",\n};\n\nconst FLEET_CONFIDENCE_LABEL: Record<FleetDecisionItem[\"confidence\"], string> = {\n unknown: \"Unknown confidence\",\n low: \"Low confidence\",\n medium: \"Medium confidence\",\n high: \"High confidence\",\n};\n\nexport default function FleetDecisionRow({\n item,\n d: ActivityDisclosure,\n b: BodyNote,\n j,\n s,\n}: {\n item: FleetDecisionItem;\n d: typeof import(\"./shared\").ActivityDisclosure;\n b: typeof import(\"./shared\").BodyNote;\n j: RowJsx;\n s: RowJsxs;\n}) {\n const scoreRowsHidden = item.scoreRowsTruncatedCount > 0;\n const scores =\n item.scores.length > 0\n ? j(\n \"div\",\n {\n className: \"min-w-0\",\n children: [\n j(\n \"h4\",\n {\n className: \"text-og-sm font-medium text-og-fg\",\n children: \"Bounded candidate scores\",\n },\n \"heading\",\n ),\n j(\n \"p\",\n {\n className: \"mt-0.5 text-og-xs leading-5 text-og-fg-subtle\",\n children:\n \"Lower scores rank first. Candidate aliases are temporary and local to this event.\",\n },\n \"description\",\n ),\n j(\n \"ul\",\n {\n className: \"mt-2 flex min-w-0 flex-col gap-1.5\",\n \"aria-label\": \"Candidate scores\",\n children: item.scores.map((score) =>\n s(\n \"li\",\n {\n className:\n \"flex min-w-0 flex-col gap-1 rounded-og-sm bg-og-surface-1 px-2.5 py-2 text-og-sm sm:flex-row sm:items-center sm:gap-3\",\n children: [\n j(\n \"span\",\n {\n className: \"font-og-mono text-og-fg\",\n children: score.candidateKey,\n },\n \"candidate\",\n ),\n j(\n \"span\",\n {\n className: \"min-w-0 text-og-fg-muted sm:flex-1\",\n children: score.eligible\n ? \"Eligible\"\n : score.rejectionReason\n ? FLEET_REJECTION_LABEL[score.rejectionReason]\n : \"Unavailable\",\n },\n \"eligibility\",\n ),\n s(\n \"span\",\n {\n className: \"font-og-mono text-og-fg-subtle\",\n children: [\n \"score \",\n formatFleetScore(score.total),\n \" ·\",\n \" \",\n FLEET_CONFIDENCE_LABEL[score.confidence],\n ],\n },\n \"score\",\n ),\n ],\n },\n score.candidateKey,\n ),\n ),\n },\n \"rows\",\n ),\n ],\n },\n \"score-list\",\n )\n : null;\n const truncated =\n item.truncatedCandidateCount > 0\n ? j(\n BodyNote,\n {\n tone: \"muted\",\n children: [\n item.truncatedCandidateCount,\n \" additional \",\n item.truncatedCandidateCount === 1 ? \"candidate was\" : \"candidates were\",\n \" excluded from this bounded replay record.\",\n ],\n },\n \"truncated\",\n )\n : null;\n const hidden = scoreRowsHidden\n ? j(\n BodyNote,\n {\n tone: \"muted\",\n children: [\n item.scoreRowsTruncatedCount,\n \" additional \",\n item.scoreRowsTruncatedCount === 1 ? \"score row was\" : \"score rows were\",\n \" hidden by this view’s safety limit.\",\n ],\n },\n \"hidden\",\n )\n : null;\n return j(ActivityDisclosure, {\n icon: j(GaugeMark, { className: \"size-3.5\", j, s }),\n iconTone: \"muted\",\n title: \"Fleet policy shadow\",\n preview: FLEET_COMPARISON_LABEL[item.comparison],\n chip: {\n tone: \"muted\",\n text:\n item.comparison === \"match\"\n ? \"matched\"\n : item.comparison === \"not_comparable_truncated\"\n ? \"limited\"\n : \"different\",\n },\n children: s(\"section\", {\n \"aria-label\": \"Fleet policy shadow details\",\n className: \"flex min-w-0 flex-col gap-3\",\n children: [\n j(\n BodyNote,\n {\n tone: \"muted\",\n children:\n \"Shadow observation only — it did not change the subscription serving this turn.\",\n },\n \"observation\",\n ),\n j(\n \"dl\",\n {\n className: \"grid min-w-0 grid-cols-1 gap-x-5 gap-y-3 sm:grid-cols-2\",\n children: [\n j(\n FleetDetail,\n {\n term: \"Production\",\n value: fleetOutcomeLabel(item.actualOutcome, item.actualCandidateKey),\n note: FLEET_ACTUAL_REASON_LABEL[item.actualReason],\n j,\n s,\n },\n \"production\",\n ),\n j(\n FleetDetail,\n {\n term: \"Shadow policy\",\n value: fleetOutcomeLabel(item.shadowOutcome, item.shadowCandidateKey),\n note: FLEET_SHADOW_REASON_LABEL[item.shadowReason],\n j,\n s,\n },\n \"shadow\",\n ),\n j(\n FleetDetail,\n {\n term: \"Comparison\",\n value: FLEET_COMPARISON_LABEL[item.comparison],\n j,\n s,\n },\n \"comparison\",\n ),\n j(\n FleetDetail,\n {\n term: \"Decision confidence\",\n value: FLEET_CONFIDENCE_LABEL[item.confidence],\n j,\n s,\n },\n \"confidence\",\n ),\n j(\n FleetDetail,\n {\n term: \"Admission\",\n value:\n item.admissionOutcome === \"admit\"\n ? \"Would admit new work\"\n : \"Would pace new work\",\n note: FLEET_ADMISSION_REASON_LABEL[item.admissionReason],\n j,\n s,\n },\n \"admission\",\n ),\n j(\n FleetDetail,\n {\n term: \"Observed candidates\",\n value: `${item.candidateCount} in the bounded replay`,\n j,\n s,\n },\n \"candidate-count\",\n ),\n j(\n FleetDetail,\n {\n term: \"Idle-capacity borrowing\",\n value: item.borrowedIdleCapacity ? \"Borrowed for standard work\" : \"Not borrowed\",\n j,\n s,\n },\n \"idle-capacity\",\n ),\n j(\n FleetDetail,\n {\n term: \"Named-policy borrowing\",\n value: item.borrowedOverlayCapacity\n ? \"Borrowed outside the preferred group\"\n : \"Not borrowed\",\n j,\n s,\n },\n \"named-policy\",\n ),\n j(\n FleetDetail,\n {\n term: \"Stranded capacity\",\n value:\n item.strandedEligibleCount === 0\n ? \"None\"\n : `${item.strandedEligibleCount} eligible ${item.strandedEligibleCount === 1 ? \"candidate\" : \"candidates\"}`,\n note:\n item.strandedEligibleCount > 0\n ? \"Capacity excluded by explicit isolation; existing fenced turns are unchanged.\"\n : undefined,\n j,\n s,\n },\n \"stranded-capacity\",\n ),\n ],\n },\n \"details\",\n ),\n scores,\n truncated,\n hidden,\n ],\n }),\n });\n}\n\nfunction FleetDetail({\n term,\n value,\n note,\n j,\n s,\n}: {\n term: string;\n value: string;\n note?: string | undefined;\n j: RowJsx;\n s: RowJsxs;\n}) {\n return j(\"div\", {\n className: \"min-w-0\",\n children: [\n j(\n \"dt\",\n {\n className: \"text-og-xs font-medium uppercase tracking-wide text-og-fg-subtle\",\n children: term,\n },\n \"term\",\n ),\n s(\n \"dd\",\n {\n className: \"mt-0.5 break-words text-og-sm text-og-fg-muted\",\n children: [\n j(\"span\", { className: \"text-og-fg\", children: value }, \"value\"),\n note\n ? j(\"span\", { className: \"mt-0.5 block leading-5\", children: note }, \"note\")\n : null,\n ],\n },\n \"description\",\n ),\n ],\n });\n}\n\nfunction fleetOutcomeLabel(\n outcome: FleetDecisionItem[\"actualOutcome\"] | FleetDecisionItem[\"shadowOutcome\"],\n candidateKey: string | null,\n): string {\n if (outcome === \"selected\" && candidateKey) return `Selected ${candidateKey}`;\n if (outcome === \"waiting\") return \"Waiting for capacity\";\n if (outcome === \"paced\") return \"Paced before placement\";\n return \"No candidate selected\";\n}\n\nfunction formatFleetScore(value: number): string {\n return new Intl.NumberFormat(\"en-US\", { maximumFractionDigits: 2 }).format(value);\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/timeline/fleet-decision-row.tsx"],"sourcesContent":["import type { FleetDecisionItem } from \"./types\";\n\ntype RowJsx = typeof import(\"react/jsx-runtime\").jsx;\ntype RowJsxs = typeof import(\"react/jsx-runtime\").jsxs;\n\nfunction GaugeMark({ className, j, s }: { className: string; j: RowJsx; s: RowJsxs }) {\n return s(\"svg\", {\n \"aria-hidden\": \"true\",\n className,\n fill: \"none\",\n height: \"24\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"2\",\n viewBox: \"0 0 24 24\",\n width: \"24\",\n children: [\n j(\"path\", { d: \"m 12 14 4-4\" }, \"needle\"),\n j(\"path\", { d: \"M3.34 19a10 10 0 1 1 17.32 0\" }, \"arc\"),\n ],\n });\n}\n\nconst FLEET_ACTUAL_REASON_LABEL: Record<FleetDecisionItem[\"actualReason\"], string> = {\n lease_reused: \"Reused the fenced lease\",\n pin: \"Kept the session pin\",\n rotation: \"Rotated for capacity\",\n active: \"Used the active subscription\",\n all_capped: \"All observed subscriptions were capped\",\n allocator_disabled: \"The policy-selected subscription was disabled for new allocations\",\n none: \"No production candidate was selected\",\n};\n\nconst FLEET_SHADOW_REASON_LABEL: Record<FleetDecisionItem[\"shadowReason\"], string> = {\n fenced_in_flight: \"Kept the fenced in-flight assignment\",\n fenced_candidate_missing: \"The fenced assignment was missing from the snapshot\",\n admission_paced: \"Admission would have been paced\",\n no_eligible_candidate: \"No candidate passed the policy checks\",\n overlay_isolated_empty: \"Explicit isolation left no eligible candidate\",\n best_score: \"Selected the lowest-pressure candidate\",\n affinity_best: \"Session affinity was already best\",\n hysteresis_hold: \"Hysteresis avoided a low-value switch\",\n};\n\nconst FLEET_COMPARISON_LABEL: Record<FleetDecisionItem[\"comparison\"], string> = {\n match: \"Production and shadow matched\",\n different_candidate: \"Shadow preferred another candidate\",\n different_outcome: \"Production and shadow outcomes differed\",\n not_comparable_truncated: \"Comparison limited by bounded candidate data\",\n};\n\nconst FLEET_ADMISSION_REASON_LABEL: Record<FleetDecisionItem[\"admissionReason\"], string> = {\n fenced_in_flight: \"In-flight assignment was fenced\",\n pacing_disabled: \"Admission pacing was disabled\",\n capacity_unknown: \"Capacity was unknown, so work remained admissible\",\n capacity_available: \"Observed capacity was available\",\n work_conserving_borrow: \"Idle capacity was borrowed for standard work\",\n manager_priority: \"Standard work was paced for queued manager demand\",\n standard_starvation_bound: \"The standard-work starvation bound was reached\",\n capacity_saturated: \"Observed dynamic capacity was saturated\",\n emergency_fuse: \"The emergency fuse blocked new work\",\n};\n\nconst FLEET_REJECTION_LABEL: Record<\n Exclude<FleetDecisionItem[\"scores\"][number][\"rejectionReason\"], null>,\n string\n> = {\n allocator_disabled: \"Allocator disabled\",\n unavailable: \"Unavailable\",\n cooling: \"Cooling down\",\n quota_ceiling: \"Quota ceiling reached\",\n overlay_isolation: \"Outside explicit isolation\",\n};\n\nconst FLEET_CONFIDENCE_LABEL: Record<FleetDecisionItem[\"confidence\"], string> = {\n unknown: \"Unknown confidence\",\n low: \"Low confidence\",\n medium: \"Medium confidence\",\n high: \"High confidence\",\n};\n\nexport default function FleetDecisionRow({\n item,\n d: ActivityDisclosure,\n b: BodyNote,\n j,\n s,\n}: {\n item: FleetDecisionItem;\n d: typeof import(\"./shared\").ActivityDisclosure;\n b: typeof import(\"./shared\").BodyNote;\n j: RowJsx;\n s: RowJsxs;\n}) {\n const scoreRowsHidden = item.scoreRowsTruncatedCount > 0;\n const scores =\n item.scores.length > 0\n ? j(\n \"div\",\n {\n className: \"min-w-0\",\n children: [\n j(\n \"h4\",\n {\n className: \"text-og-sm font-medium text-og-fg\",\n children: \"Bounded candidate scores\",\n },\n \"heading\",\n ),\n j(\n \"p\",\n {\n className: \"mt-0.5 text-og-xs leading-5 text-og-fg-subtle\",\n children:\n \"Lower scores rank first. Candidate aliases are temporary and local to this event.\",\n },\n \"description\",\n ),\n j(\n \"ul\",\n {\n className: \"mt-2 flex min-w-0 flex-col gap-1.5\",\n \"aria-label\": \"Candidate scores\",\n children: item.scores.map((score) =>\n s(\n \"li\",\n {\n className:\n \"flex min-w-0 flex-col gap-1 rounded-og-sm bg-og-surface-1 px-2.5 py-2 text-og-sm sm:flex-row sm:items-center sm:gap-3\",\n children: [\n j(\n \"span\",\n {\n className: \"font-og-mono text-og-fg\",\n children: score.candidateKey,\n },\n \"candidate\",\n ),\n j(\n \"span\",\n {\n className: \"min-w-0 text-og-fg-muted sm:flex-1\",\n children: score.eligible\n ? \"Eligible\"\n : score.rejectionReason\n ? FLEET_REJECTION_LABEL[score.rejectionReason]\n : \"Unavailable\",\n },\n \"eligibility\",\n ),\n s(\n \"span\",\n {\n className: \"font-og-mono text-og-fg-subtle\",\n children: [\n \"score \",\n formatFleetScore(score.total),\n \" ·\",\n \" \",\n FLEET_CONFIDENCE_LABEL[score.confidence],\n ],\n },\n \"score\",\n ),\n ],\n },\n score.candidateKey,\n ),\n ),\n },\n \"rows\",\n ),\n ],\n },\n \"score-list\",\n )\n : null;\n const truncated =\n item.truncatedCandidateCount > 0\n ? j(\n BodyNote,\n {\n tone: \"muted\",\n children: [\n item.truncatedCandidateCount,\n \" additional \",\n item.truncatedCandidateCount === 1 ? \"candidate was\" : \"candidates were\",\n \" excluded from this bounded replay record.\",\n ],\n },\n \"truncated\",\n )\n : null;\n const hidden = scoreRowsHidden\n ? j(\n BodyNote,\n {\n tone: \"muted\",\n children: [\n item.scoreRowsTruncatedCount,\n \" additional \",\n item.scoreRowsTruncatedCount === 1 ? \"score row was\" : \"score rows were\",\n \" hidden by this view’s safety limit.\",\n ],\n },\n \"hidden\",\n )\n : null;\n return j(ActivityDisclosure, {\n icon: j(GaugeMark, { className: \"size-3.5\", j, s }),\n iconTone: \"muted\",\n title: \"Fleet policy shadow\",\n preview: FLEET_COMPARISON_LABEL[item.comparison],\n chip: {\n tone: \"muted\",\n text:\n item.comparison === \"match\"\n ? \"matched\"\n : item.comparison === \"not_comparable_truncated\"\n ? \"limited\"\n : \"different\",\n },\n children: s(\"section\", {\n \"aria-label\": \"Fleet policy shadow details\",\n className: \"flex min-w-0 flex-col gap-3\",\n children: [\n j(\n BodyNote,\n {\n tone: \"muted\",\n children:\n \"Shadow observation only — it did not change the subscription serving this turn.\",\n },\n \"observation\",\n ),\n j(\n \"dl\",\n {\n className: \"grid min-w-0 grid-cols-1 gap-x-5 gap-y-3 sm:grid-cols-2\",\n children: [\n j(\n FleetDetail,\n {\n term: \"Production\",\n value: fleetOutcomeLabel(item.actualOutcome, item.actualCandidateKey),\n note: FLEET_ACTUAL_REASON_LABEL[item.actualReason],\n j,\n s,\n },\n \"production\",\n ),\n j(\n FleetDetail,\n {\n term: \"Shadow policy\",\n value: fleetOutcomeLabel(item.shadowOutcome, item.shadowCandidateKey),\n note: FLEET_SHADOW_REASON_LABEL[item.shadowReason],\n j,\n s,\n },\n \"shadow\",\n ),\n j(\n FleetDetail,\n {\n term: \"Comparison\",\n value: FLEET_COMPARISON_LABEL[item.comparison],\n j,\n s,\n },\n \"comparison\",\n ),\n j(\n FleetDetail,\n {\n term: \"Decision confidence\",\n value: FLEET_CONFIDENCE_LABEL[item.confidence],\n j,\n s,\n },\n \"confidence\",\n ),\n j(\n FleetDetail,\n {\n term: \"Admission\",\n value:\n item.admissionOutcome === \"admit\"\n ? \"Would admit new work\"\n : \"Would pace new work\",\n note: FLEET_ADMISSION_REASON_LABEL[item.admissionReason],\n j,\n s,\n },\n \"admission\",\n ),\n j(\n FleetDetail,\n {\n term: \"Observed candidates\",\n value: `${item.candidateCount} in the bounded replay`,\n j,\n s,\n },\n \"candidate-count\",\n ),\n j(\n FleetDetail,\n {\n term: \"Idle-capacity borrowing\",\n value: item.borrowedIdleCapacity ? \"Borrowed for standard work\" : \"Not borrowed\",\n j,\n s,\n },\n \"idle-capacity\",\n ),\n j(\n FleetDetail,\n {\n term: \"Named-policy borrowing\",\n value: item.borrowedOverlayCapacity\n ? \"Borrowed outside the preferred group\"\n : \"Not borrowed\",\n j,\n s,\n },\n \"named-policy\",\n ),\n j(\n FleetDetail,\n {\n term: \"Stranded capacity\",\n value:\n item.strandedEligibleCount === 0\n ? \"None\"\n : `${item.strandedEligibleCount} eligible ${item.strandedEligibleCount === 1 ? \"candidate\" : \"candidates\"}`,\n note:\n item.strandedEligibleCount > 0\n ? \"Capacity excluded by explicit isolation; existing fenced turns are unchanged.\"\n : undefined,\n j,\n s,\n },\n \"stranded-capacity\",\n ),\n ],\n },\n \"details\",\n ),\n scores,\n truncated,\n hidden,\n ],\n }),\n });\n}\n\nfunction FleetDetail({\n term,\n value,\n note,\n j,\n s,\n}: {\n term: string;\n value: string;\n note?: string | undefined;\n j: RowJsx;\n s: RowJsxs;\n}) {\n return j(\"div\", {\n className: \"min-w-0\",\n children: [\n j(\n \"dt\",\n {\n className: \"text-og-xs font-medium uppercase tracking-wide text-og-fg-subtle\",\n children: term,\n },\n \"term\",\n ),\n s(\n \"dd\",\n {\n className: \"mt-0.5 break-words text-og-sm text-og-fg-muted\",\n children: [\n j(\"span\", { className: \"text-og-fg\", children: value }, \"value\"),\n note\n ? j(\"span\", { className: \"mt-0.5 block leading-5\", children: note }, \"note\")\n : null,\n ],\n },\n \"description\",\n ),\n ],\n });\n}\n\nfunction fleetOutcomeLabel(\n outcome: FleetDecisionItem[\"actualOutcome\"] | FleetDecisionItem[\"shadowOutcome\"],\n candidateKey: string | null,\n): string {\n if (outcome === \"selected\" && candidateKey) return `Selected ${candidateKey}`;\n if (outcome === \"waiting\") return \"Waiting for capacity\";\n if (outcome === \"paced\") return \"Paced before placement\";\n return \"No candidate selected\";\n}\n\nfunction formatFleetScore(value: number): string {\n return new Intl.NumberFormat(\"en-US\", { maximumFractionDigits: 2 }).format(value);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -12,6 +12,7 @@ export type ClientConfigFlagsSource = {
|
|
|
12
12
|
sessionCreation?: boolean | undefined;
|
|
13
13
|
archive?: boolean | undefined;
|
|
14
14
|
voiceInput?: ClientVoiceInputConfig | undefined;
|
|
15
|
+
realtimeVoice?: boolean | undefined;
|
|
15
16
|
}>;
|
|
16
17
|
};
|
|
17
18
|
export type ClientConfigFlags = {
|
|
@@ -32,6 +33,11 @@ export type ClientConfigFlags = {
|
|
|
32
33
|
archive: boolean;
|
|
33
34
|
/** Native voice input when the deployment can transcribe, else null. */
|
|
34
35
|
voiceInput: ClientVoiceInputConfig | null;
|
|
36
|
+
/**
|
|
37
|
+
* Live voice. `false` until the config loads and when a session proxy turns
|
|
38
|
+
* it off; availability otherwise comes from the realtime model catalog.
|
|
39
|
+
*/
|
|
40
|
+
realtimeVoice: boolean;
|
|
35
41
|
};
|
|
36
42
|
/** Deployment and session-proxy capabilities from the client config. */
|
|
37
43
|
export declare function useClientConfigFlags(client: Partial<ClientConfigFlagsSource> | ClientConfigFlagsSource): ClientConfigFlags;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { WorkspaceRealtimeModelCatalogResponse } from "@opengeni/sdk";
|
|
2
|
+
type AvailableVoiceModels = WorkspaceRealtimeModelCatalogResponse["models"];
|
|
3
|
+
/**
|
|
4
|
+
* Voice models this user can start right now in the workspace, or an empty
|
|
5
|
+
* list while unknown, disabled, unsupported (older API or proxy), or failed.
|
|
6
|
+
* Availability is advisory; Opengeni still admits and meters every call.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useRealtimeVoiceModels(client: unknown, workspaceId: string, enabled: boolean): AvailableVoiceModels;
|
|
9
|
+
export {};
|
|
@@ -28,6 +28,10 @@ export type UseVoiceInputResult = {
|
|
|
28
28
|
stream: MediaStream | null;
|
|
29
29
|
recordingId: string | null;
|
|
30
30
|
durationSeconds: number;
|
|
31
|
+
/** Wall-clock start of the current capture (epoch ms), or null when not recording. */
|
|
32
|
+
recordingStartedAt: number | null;
|
|
33
|
+
/** Capture stops and transcribes automatically after this many seconds. */
|
|
34
|
+
maxRecordingSeconds: number | null;
|
|
31
35
|
locallySaved: boolean;
|
|
32
36
|
hasRecoverableRecording: boolean;
|
|
33
37
|
savedTranscript: string | null;
|
|
@@ -38,7 +42,10 @@ export type UseVoiceInputResult = {
|
|
|
38
42
|
retry: () => void;
|
|
39
43
|
/** Explicitly insert a durably saved transcript whose prior handoff may be uncertain. */
|
|
40
44
|
insertSavedTranscript: () => Promise<void>;
|
|
41
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Cancel active work without losing speech: a recording longer than a few
|
|
47
|
+
* seconds and any stopped/transcribing recording stay locally recoverable.
|
|
48
|
+
*/
|
|
42
49
|
cancel: () => void;
|
|
43
50
|
/** Intentionally delete the current durable recording. */
|
|
44
51
|
discard: () => Promise<void>;
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import {
|
|
2
3
|
CapturedFileUnavailableError,
|
|
3
4
|
FileBrowser,
|
|
@@ -8,14 +9,14 @@ import {
|
|
|
8
9
|
useSandboxFiles,
|
|
9
10
|
useUnicodeFallbackFonts,
|
|
10
11
|
visibleFileTree
|
|
11
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-C5BF4L26.js";
|
|
12
13
|
import {
|
|
13
14
|
createEmbeddedSessionClient,
|
|
14
15
|
isLineageRefreshEvent,
|
|
15
16
|
isSessionMcpApprovalPolicyEvent,
|
|
16
17
|
useSessionLineage,
|
|
17
18
|
useSessionMcpApprovalPolicy
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-UDPH5SLV.js";
|
|
19
20
|
import {
|
|
20
21
|
CONNECTION_STATUS_META,
|
|
21
22
|
ConnectionDot,
|
|
@@ -46,7 +47,7 @@ import {
|
|
|
46
47
|
healthPulses,
|
|
47
48
|
pointsFor,
|
|
48
49
|
useMachines
|
|
49
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-JHTIMBOL.js";
|
|
50
51
|
import {
|
|
51
52
|
ActivityRail,
|
|
52
53
|
ApprovalSurface,
|
|
@@ -111,18 +112,18 @@ import {
|
|
|
111
112
|
useWorkspaceSessions,
|
|
112
113
|
userMessageLikelyNeedsDisclosure,
|
|
113
114
|
v4aToGitFileDiff
|
|
114
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-CREMJMVN.js";
|
|
115
116
|
import {
|
|
116
117
|
useThemeType
|
|
117
|
-
} from "./chunk-
|
|
118
|
-
import "./chunk-
|
|
119
|
-
import "./chunk-
|
|
120
|
-
import "./chunk-
|
|
121
|
-
import "./chunk-
|
|
118
|
+
} from "./chunk-B27E3V37.js";
|
|
119
|
+
import "./chunk-JH7V627O.js";
|
|
120
|
+
import "./chunk-2HVLQ26H.js";
|
|
121
|
+
import "./chunk-LJUMYUBO.js";
|
|
122
|
+
import "./chunk-HXYOSSQO.js";
|
|
122
123
|
import {
|
|
123
124
|
ArtifactLabelsProvider,
|
|
124
125
|
DEFAULT_ARTIFACT_LABELS
|
|
125
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-45NUOSXQ.js";
|
|
126
127
|
import {
|
|
127
128
|
SESSION_EVENT_BROWSER_MAX_BYTES,
|
|
128
129
|
SESSION_EVENT_BROWSER_MAX_COUNT,
|
|
@@ -146,20 +147,20 @@ import {
|
|
|
146
147
|
useSessionControl,
|
|
147
148
|
useSessionEvents,
|
|
148
149
|
useTurnQueue
|
|
149
|
-
} from "./chunk-
|
|
150
|
+
} from "./chunk-G6YRCIYJ.js";
|
|
150
151
|
import {
|
|
151
152
|
buildTimeline,
|
|
152
153
|
creditExhaustedFromEvents,
|
|
153
154
|
extractSessionRef,
|
|
154
155
|
groupTimeline,
|
|
155
156
|
sessionStatusFromEvents
|
|
156
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-QMMCJGFI.js";
|
|
157
158
|
import {
|
|
158
159
|
toolDisplayName
|
|
159
|
-
} from "./chunk-
|
|
160
|
+
} from "./chunk-T46QZH3E.js";
|
|
160
161
|
import {
|
|
161
162
|
OpenGeniProvider
|
|
162
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-PKCAYHDC.js";
|
|
163
164
|
import {
|
|
164
165
|
McpConnectionCard,
|
|
165
166
|
SessionCapabilityFrame,
|
|
@@ -168,7 +169,7 @@ import {
|
|
|
168
169
|
attachSessionCapability,
|
|
169
170
|
completeSessionCapabilityOAuth,
|
|
170
171
|
prepareSessionCapabilityAccess
|
|
171
|
-
} from "./chunk-
|
|
172
|
+
} from "./chunk-55DXD22O.js";
|
|
172
173
|
import {
|
|
173
174
|
ActivityDisclosure,
|
|
174
175
|
BodyNote,
|
|
@@ -185,32 +186,32 @@ import {
|
|
|
185
186
|
retainedImageId,
|
|
186
187
|
sandboxFileLocationFromHref,
|
|
187
188
|
sandboxFilePathFromHref
|
|
188
|
-
} from "./chunk-
|
|
189
|
-
import "./chunk-
|
|
190
|
-
import "./chunk-
|
|
189
|
+
} from "./chunk-PHBFJCEU.js";
|
|
190
|
+
import "./chunk-OYQQJL3J.js";
|
|
191
|
+
import "./chunk-S2QH6EZ5.js";
|
|
191
192
|
import {
|
|
192
193
|
OpenGeniLinkProvider,
|
|
193
194
|
chainLinkResolvers,
|
|
194
195
|
sessionLinkResolver,
|
|
195
196
|
useOpenGeniLinkResolver,
|
|
196
197
|
viewerLinkResolver
|
|
197
|
-
} from "./chunk-
|
|
198
|
+
} from "./chunk-OGTTUYNT.js";
|
|
198
199
|
import {
|
|
199
200
|
registerPierreDiffs
|
|
200
|
-
} from "./chunk-
|
|
201
|
+
} from "./chunk-YSRBFJMQ.js";
|
|
201
202
|
import {
|
|
202
203
|
copyTextToClipboard,
|
|
203
204
|
tableElementToTsv
|
|
204
|
-
} from "./chunk-
|
|
205
|
+
} from "./chunk-CVYCLFMH.js";
|
|
205
206
|
import {
|
|
206
207
|
DesktopViewer,
|
|
207
208
|
useDesktopStream,
|
|
208
209
|
useRelayFrameStream
|
|
209
|
-
} from "./chunk-
|
|
210
|
-
import "./chunk-
|
|
210
|
+
} from "./chunk-IMSUVYQB.js";
|
|
211
|
+
import "./chunk-ZUWF4NF7.js";
|
|
211
212
|
import {
|
|
212
213
|
ModelPolicyPickerMenu
|
|
213
|
-
} from "./chunk-
|
|
214
|
+
} from "./chunk-IYQCWGU5.js";
|
|
214
215
|
import {
|
|
215
216
|
CommandPalette,
|
|
216
217
|
ComposerTranscriptionControl,
|
|
@@ -243,14 +244,14 @@ import {
|
|
|
243
244
|
useSlashCommands,
|
|
244
245
|
useTranscription,
|
|
245
246
|
useVoiceInput
|
|
246
|
-
} from "./chunk-
|
|
247
|
+
} from "./chunk-IUHHPMAX.js";
|
|
247
248
|
import {
|
|
248
249
|
FILE_ONLY_MESSAGE_TEXT,
|
|
249
250
|
composeSendInput,
|
|
250
251
|
shouldSteerOnKey,
|
|
251
252
|
shouldSubmitOnKey,
|
|
252
253
|
useComposer
|
|
253
|
-
} from "./chunk-
|
|
254
|
+
} from "./chunk-PBCZL4JP.js";
|
|
254
255
|
import {
|
|
255
256
|
LightboxProvider,
|
|
256
257
|
Tooltip,
|
|
@@ -259,7 +260,8 @@ import {
|
|
|
259
260
|
TooltipTrigger,
|
|
260
261
|
useLightbox,
|
|
261
262
|
useLightboxOptional
|
|
262
|
-
} from "./chunk-
|
|
263
|
+
} from "./chunk-IEE7WCLN.js";
|
|
264
|
+
import "./chunk-NX4ADH73.js";
|
|
263
265
|
import {
|
|
264
266
|
BillingClassMark,
|
|
265
267
|
ChatGptMark,
|
|
@@ -273,8 +275,8 @@ import {
|
|
|
273
275
|
PickerNavRow,
|
|
274
276
|
defaultModelPolicyPickerMessages,
|
|
275
277
|
modelHasMark
|
|
276
|
-
} from "./chunk-
|
|
277
|
-
import "./chunk-
|
|
278
|
+
} from "./chunk-L2J3PU7A.js";
|
|
279
|
+
import "./chunk-PMV53IMM.js";
|
|
278
280
|
import {
|
|
279
281
|
advancedSourceSummary,
|
|
280
282
|
availabilityReasonLabel,
|
|
@@ -293,8 +295,8 @@ import {
|
|
|
293
295
|
projectPickerRows,
|
|
294
296
|
runnableLatencyModesForModel,
|
|
295
297
|
sortPickerRows
|
|
296
|
-
} from "./chunk-
|
|
297
|
-
import "./chunk-
|
|
298
|
+
} from "./chunk-XS67YG5R.js";
|
|
299
|
+
import "./chunk-XEA5BCMA.js";
|
|
298
300
|
import {
|
|
299
301
|
COMPOSER_MODEL_UNAVAILABLE_MESSAGE,
|
|
300
302
|
COMPOSER_PAYMENT_REQUIRED_MESSAGE,
|
|
@@ -310,43 +312,43 @@ import {
|
|
|
310
312
|
stringifyPayload,
|
|
311
313
|
truncate,
|
|
312
314
|
tryParseJson
|
|
313
|
-
} from "./chunk-
|
|
315
|
+
} from "./chunk-LVS3MH5T.js";
|
|
314
316
|
import {
|
|
315
317
|
SandboxTerminal,
|
|
316
318
|
terminalCanAcquirePty,
|
|
317
319
|
useTerminalStream,
|
|
318
320
|
xtermThemeFromTokens
|
|
319
|
-
} from "./chunk-
|
|
321
|
+
} from "./chunk-MEQM4LI3.js";
|
|
320
322
|
import {
|
|
321
323
|
sandboxAcceptsLiveIo
|
|
322
|
-
} from "./chunk-
|
|
323
|
-
import "./chunk-
|
|
324
|
-
import "./chunk-
|
|
324
|
+
} from "./chunk-QV3DJVRZ.js";
|
|
325
|
+
import "./chunk-TNEZNMSN.js";
|
|
326
|
+
import "./chunk-GC3PH6N7.js";
|
|
325
327
|
import {
|
|
326
328
|
useMutationRunner,
|
|
327
329
|
usePageLiveActivity,
|
|
328
330
|
usePolledValue,
|
|
329
331
|
useSessionEventTrigger
|
|
330
|
-
} from "./chunk-
|
|
332
|
+
} from "./chunk-QHUE7E4N.js";
|
|
331
333
|
import {
|
|
332
334
|
normalizeError
|
|
333
|
-
} from "./chunk-
|
|
335
|
+
} from "./chunk-CM7LVUKC.js";
|
|
334
336
|
import {
|
|
335
337
|
useOpenGeni,
|
|
336
338
|
useOpenGeniClient
|
|
337
|
-
} from "./chunk-
|
|
339
|
+
} from "./chunk-XTD7TZHW.js";
|
|
338
340
|
import {
|
|
339
341
|
CodeEditor,
|
|
340
342
|
languageForPath
|
|
341
|
-
} from "./chunk-
|
|
343
|
+
} from "./chunk-LSW2OJVV.js";
|
|
342
344
|
import {
|
|
343
345
|
registerCodeEditor,
|
|
344
346
|
registerDesktopViewer,
|
|
345
347
|
registerSandboxTerminal
|
|
346
|
-
} from "./chunk-
|
|
348
|
+
} from "./chunk-5I4VRWBB.js";
|
|
347
349
|
import {
|
|
348
350
|
cn
|
|
349
|
-
} from "./chunk-
|
|
351
|
+
} from "./chunk-TXS65BB2.js";
|
|
350
352
|
|
|
351
353
|
// src/session-auth-recommendation.ts
|
|
352
354
|
function sessionAuthRecommendation(item, catalog) {
|
|
@@ -3766,7 +3768,7 @@ import {
|
|
|
3766
3768
|
} from "lucide-react";
|
|
3767
3769
|
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
3768
3770
|
var LazySandboxFiles = lazy(
|
|
3769
|
-
() => import("./sandbox-files-
|
|
3771
|
+
() => import("./sandbox-files-34CJJNOY.js").then(({ SandboxFiles: SandboxFiles2 }) => ({ default: SandboxFiles2 })).catch(() => ({ default: FilesLoadFailed }))
|
|
3770
3772
|
);
|
|
3771
3773
|
function FilesLoadFailed() {
|
|
3772
3774
|
return /* @__PURE__ */ jsxs5(CenteredState, { tone: "danger", icon: /* @__PURE__ */ jsx6(TriangleAlertIcon, { className: "size-5", "aria-hidden": true }), children: [
|
|
@@ -3781,11 +3783,11 @@ function FilesTabBody(props) {
|
|
|
3781
3783
|
return /* @__PURE__ */ jsx6(Suspense, { fallback: /* @__PURE__ */ jsx6(WorkbenchSurfaceLoading, { name: "Files" }), children: /* @__PURE__ */ jsx6(LazySandboxFiles, { ...props }) });
|
|
3782
3784
|
}
|
|
3783
3785
|
var LazyBrowserViewer = lazy(async () => {
|
|
3784
|
-
const { BrowserViewer } = await import("./browser-viewer-
|
|
3786
|
+
const { BrowserViewer } = await import("./browser-viewer-WGJ43YGI.js");
|
|
3785
3787
|
return { default: BrowserViewer };
|
|
3786
3788
|
});
|
|
3787
3789
|
var LazyComputerViewer = lazy(async () => {
|
|
3788
|
-
const { ComputerViewer } = await import("./computer-viewer-
|
|
3790
|
+
const { ComputerViewer } = await import("./computer-viewer-46UIN7F3.js");
|
|
3789
3791
|
return { default: ComputerViewer };
|
|
3790
3792
|
});
|
|
3791
3793
|
var WORKBENCH_TAB_CHANGES = "changes";
|