@opengeni/react 0.41.0 → 0.44.1
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/dist/{chunk-SJKT4TKW.js → chunk-23EJ676W.js} +3 -1
- package/dist/chunk-23EJ676W.js.map +1 -0
- package/dist/{chunk-OMCFRWHL.js → chunk-KC27K42G.js} +1443 -101
- package/dist/chunk-KC27K42G.js.map +1 -0
- package/dist/{chunk-KR2SK5GJ.js → chunk-KG5F2OKE.js} +260 -93
- package/dist/chunk-KG5F2OKE.js.map +1 -0
- package/dist/{chunk-4IJCL7YO.js → chunk-LWR4MXSS.js} +4 -1
- package/dist/chunk-LWR4MXSS.js.map +1 -0
- package/dist/{chunk-JALF5FI3.js → chunk-SRFUT2ZU.js} +2 -2
- package/dist/{chunk-WZT5G5OR.js → chunk-U6K24XQD.js} +5 -4
- package/dist/{chunk-WZT5G5OR.js.map → chunk-U6K24XQD.js.map} +1 -1
- package/dist/components/chat-composer.d.ts +5 -1
- package/dist/components/composer-transcription-control.d.ts +16 -1
- package/dist/components/composer.d.ts +6 -4
- package/dist/components/session-chrome.d.ts +1 -1
- package/dist/composer.d.ts +3 -1
- package/dist/composer.js +29 -3
- package/dist/hooks/use-voice-input.d.ts +25 -4
- package/dist/index.d.ts +4 -2
- package/dist/index.js +95 -20
- package/dist/index.js.map +1 -1
- package/dist/model-policy.d.ts +2 -0
- package/dist/model-policy.js +1 -1
- package/dist/realtime/realtime-control.d.ts +29 -1
- package/dist/realtime.d.ts +1 -1
- package/dist/realtime.js +269 -151
- package/dist/realtime.js.map +1 -1
- package/dist/session-ui.js +2 -2
- package/dist/session.js +2 -2
- package/dist/timeline/index.d.ts +1 -1
- package/dist/timeline/parsers.d.ts +13 -8
- package/dist/voice-recording-owner.d.ts +12 -0
- package/dist/voice-recording-store.d.ts +124 -0
- package/package.json +2 -2
- package/src/components/chat-composer.tsx +58 -19
- package/src/components/composer-transcription-control.tsx +258 -117
- package/src/components/composer.tsx +78 -14
- package/src/components/model-policy-picker.tsx +7 -2
- package/src/components/session-chrome.tsx +89 -78
- package/src/composer.ts +30 -1
- package/src/hooks/use-voice-input.ts +893 -67
- package/src/index.ts +32 -1
- package/src/model-policy.ts +4 -0
- package/src/realtime/realtime-control.tsx +307 -137
- package/src/realtime.ts +1 -0
- package/src/timeline/index.ts +2 -0
- package/src/timeline/parsers.ts +201 -19
- package/src/timeline/projection.ts +11 -0
- package/src/timeline/tool-renderers.tsx +7 -5
- package/src/timeline/turn-summary.tsx +7 -2
- package/src/voice-recording-owner.ts +251 -0
- package/src/voice-recording-store.ts +528 -0
- package/styles/tokens.css +8 -5
- package/dist/chunk-4IJCL7YO.js.map +0 -1
- package/dist/chunk-KR2SK5GJ.js.map +0 -1
- package/dist/chunk-OMCFRWHL.js.map +0 -1
- package/dist/chunk-SJKT4TKW.js.map +0 -1
- /package/dist/{chunk-JALF5FI3.js.map → chunk-SRFUT2ZU.js.map} +0 -0
package/dist/composer.js
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
Frame,
|
|
11
11
|
Help,
|
|
12
12
|
Hint,
|
|
13
|
+
IndexedDbVoiceRecordingStore,
|
|
13
14
|
Input,
|
|
14
15
|
ModelPicker2 as ModelPicker,
|
|
15
16
|
OPEN_WORKSTREAM_CONTROL_EVENT,
|
|
@@ -20,11 +21,23 @@ import {
|
|
|
20
21
|
SendButton,
|
|
21
22
|
Status,
|
|
22
23
|
Surface,
|
|
24
|
+
VOICE_RECORDING_CLIENT_MAX_DURATION_SECONDS,
|
|
25
|
+
VOICE_RECORDING_OWNER_HEARTBEAT_MILLISECONDS,
|
|
26
|
+
VOICE_RECORDING_OWNER_STALE_MILLISECONDS,
|
|
27
|
+
VOICE_RECORDING_TIMESLICE_MILLISECONDS,
|
|
28
|
+
VoiceRecordingChunkConflictError,
|
|
29
|
+
VoiceRecordingChunkSequenceError,
|
|
30
|
+
VoiceRecordingNotFoundError,
|
|
31
|
+
VoiceRecordingOwnedError,
|
|
32
|
+
VoiceRecordingStorageUnavailableError,
|
|
33
|
+
createVoiceRecordingManifest,
|
|
23
34
|
defaultChatComposerMessages,
|
|
35
|
+
planVoiceRecordingChunkCommit,
|
|
36
|
+
prepareVoiceRecordingChunk,
|
|
24
37
|
useChatComposer,
|
|
25
38
|
useChatComposerController,
|
|
26
39
|
useVoiceInput
|
|
27
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-KC27K42G.js";
|
|
28
41
|
import "./chunk-Q2NCKWTK.js";
|
|
29
42
|
import "./chunk-EB67J347.js";
|
|
30
43
|
import {
|
|
@@ -35,9 +48,9 @@ import {
|
|
|
35
48
|
PickerBackHeader,
|
|
36
49
|
PickerNavRow,
|
|
37
50
|
defaultModelPolicyPickerMessages
|
|
38
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-U6K24XQD.js";
|
|
39
52
|
import "./chunk-EKZH6IDG.js";
|
|
40
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-23EJ676W.js";
|
|
41
54
|
import "./chunk-ATSTR5P3.js";
|
|
42
55
|
import "./chunk-LAKLF4PA.js";
|
|
43
56
|
import "./chunk-TK7G6XLT.js";
|
|
@@ -54,6 +67,7 @@ export {
|
|
|
54
67
|
Frame,
|
|
55
68
|
Help,
|
|
56
69
|
Hint,
|
|
70
|
+
IndexedDbVoiceRecordingStore,
|
|
57
71
|
Input,
|
|
58
72
|
ModelPicker,
|
|
59
73
|
ModelPolicyPicker,
|
|
@@ -69,8 +83,20 @@ export {
|
|
|
69
83
|
SendButton,
|
|
70
84
|
Status,
|
|
71
85
|
Surface,
|
|
86
|
+
VOICE_RECORDING_CLIENT_MAX_DURATION_SECONDS,
|
|
87
|
+
VOICE_RECORDING_OWNER_HEARTBEAT_MILLISECONDS,
|
|
88
|
+
VOICE_RECORDING_OWNER_STALE_MILLISECONDS,
|
|
89
|
+
VOICE_RECORDING_TIMESLICE_MILLISECONDS,
|
|
90
|
+
VoiceRecordingChunkConflictError,
|
|
91
|
+
VoiceRecordingChunkSequenceError,
|
|
92
|
+
VoiceRecordingNotFoundError,
|
|
93
|
+
VoiceRecordingOwnedError,
|
|
94
|
+
VoiceRecordingStorageUnavailableError,
|
|
95
|
+
createVoiceRecordingManifest,
|
|
72
96
|
defaultChatComposerMessages,
|
|
73
97
|
defaultModelPolicyPickerMessages,
|
|
98
|
+
planVoiceRecordingChunkCommit,
|
|
99
|
+
prepareVoiceRecordingChunk,
|
|
74
100
|
useChatComposer,
|
|
75
101
|
useChatComposerController,
|
|
76
102
|
useVoiceInput
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ClientVoiceInputConfig, OpenGeniClient } from "@opengeni/sdk";
|
|
2
|
-
|
|
2
|
+
import { type VoiceRecordingStore } from "../voice-recording-store";
|
|
3
|
+
export type VoiceInputStatus = "idle" | "requesting-permission" | "recording" | "saving" | "transcribing" | "recovered" | "transcript-ready" | "error";
|
|
3
4
|
export type UseVoiceInputOptions = {
|
|
4
5
|
client: Pick<OpenGeniClient, "transcribeAudio"> | null;
|
|
5
6
|
workspaceId: string;
|
|
@@ -9,6 +10,11 @@ export type UseVoiceInputOptions = {
|
|
|
9
10
|
setValue: (value: string) => void;
|
|
10
11
|
focusInput: () => void;
|
|
11
12
|
disabled?: boolean | undefined;
|
|
13
|
+
/** Test/embed seam. Production defaults to the origin-scoped IndexedDB store. */
|
|
14
|
+
createRecordingStore?: (() => VoiceRecordingStore) | undefined;
|
|
15
|
+
createRecordingId?: (() => string) | undefined;
|
|
16
|
+
createOwnerId?: (() => string) | undefined;
|
|
17
|
+
now?: (() => Date) | undefined;
|
|
12
18
|
};
|
|
13
19
|
export type UseVoiceInputResult = {
|
|
14
20
|
status: VoiceInputStatus;
|
|
@@ -16,10 +22,25 @@ export type UseVoiceInputResult = {
|
|
|
16
22
|
available: boolean;
|
|
17
23
|
/** Live mic stream while recording; null once stopped/cancelled. */
|
|
18
24
|
stream: MediaStream | null;
|
|
25
|
+
recordingId: string | null;
|
|
26
|
+
durationSeconds: number;
|
|
27
|
+
locallySaved: boolean;
|
|
28
|
+
hasRecoverableRecording: boolean;
|
|
29
|
+
savedTranscript: string | null;
|
|
19
30
|
start: () => Promise<boolean>;
|
|
20
|
-
/** Stop capture
|
|
31
|
+
/** Stop capture, durably settle the final chunk, then transcribe into the draft. */
|
|
21
32
|
stop: () => void;
|
|
22
|
-
/**
|
|
33
|
+
/** Retry finalization/transcription from the already-persisted recording. */
|
|
34
|
+
retry: () => void;
|
|
35
|
+
/** Explicitly insert a durably saved transcript whose prior handoff may be uncertain. */
|
|
36
|
+
insertSavedTranscript: () => Promise<void>;
|
|
37
|
+
/** Cancel active work. A stopped/transcribing recording remains recoverable. */
|
|
23
38
|
cancel: () => void;
|
|
39
|
+
/** Intentionally delete the current durable recording. */
|
|
40
|
+
discard: () => Promise<void>;
|
|
24
41
|
};
|
|
25
|
-
export declare
|
|
42
|
+
export declare const VOICE_RECORDING_TIMESLICE_MILLISECONDS = 5000;
|
|
43
|
+
export declare const VOICE_RECORDING_OWNER_HEARTBEAT_MILLISECONDS = 5000;
|
|
44
|
+
export declare const VOICE_RECORDING_OWNER_STALE_MILLISECONDS = 30000;
|
|
45
|
+
export declare const VOICE_RECORDING_CLIENT_MAX_DURATION_SECONDS = 600;
|
|
46
|
+
export declare function useVoiceInput({ client, workspaceId, capability, enabled, value, setValue, focusInput, disabled, createRecordingStore, createRecordingId, createOwnerId, now, }: UseVoiceInputOptions): UseVoiceInputResult;
|
package/dist/index.d.ts
CHANGED
|
@@ -9,8 +9,10 @@ export { SESSION_EVENT_BROWSER_MAX_BYTES, SESSION_EVENT_BROWSER_MAX_COUNT, SESSI
|
|
|
9
9
|
export type { BrowserSessionEventWindow, SessionEventsConnectionState, UseSessionEventsOptions, UseSessionEventsResult, } from "./hooks/use-session-events";
|
|
10
10
|
export { useComposer, composeSendInput, shouldSteerOnKey, shouldSubmitOnKey, FILE_ONLY_MESSAGE_TEXT, } from "./hooks/use-composer";
|
|
11
11
|
export type { ComposerSendExtras, ComposerState, UseComposerOptions } from "./hooks/use-composer";
|
|
12
|
-
export { useVoiceInput } from "./hooks/use-voice-input";
|
|
12
|
+
export { VOICE_RECORDING_CLIENT_MAX_DURATION_SECONDS, VOICE_RECORDING_OWNER_HEARTBEAT_MILLISECONDS, VOICE_RECORDING_OWNER_STALE_MILLISECONDS, VOICE_RECORDING_TIMESLICE_MILLISECONDS, useVoiceInput, } from "./hooks/use-voice-input";
|
|
13
13
|
export type { UseVoiceInputOptions, UseVoiceInputResult, VoiceInputStatus, } from "./hooks/use-voice-input";
|
|
14
|
+
export { IndexedDbVoiceRecordingStore, VoiceRecordingChunkConflictError, VoiceRecordingChunkSequenceError, VoiceRecordingNotFoundError, VoiceRecordingOwnedError, VoiceRecordingStorageUnavailableError, createVoiceRecordingManifest, planVoiceRecordingChunkCommit, prepareVoiceRecordingChunk, } from "./voice-recording-store";
|
|
15
|
+
export type { PersistVoiceRecordingChunkInput, PersistVoiceRecordingChunkResult, VoiceRecordingCaptureState, VoiceRecordingChunk, VoiceRecordingChunkUploadState, VoiceRecordingFinalizationState, VoiceRecordingManifest, VoiceRecordingStore, VoiceRecordingTranscriptionState, VoiceRecordingUploadState, } from "./voice-recording-store";
|
|
14
16
|
export { COMPOSER_PAYMENT_REQUIRED_MESSAGE, composerSubmissionErrorMessage } from "./lib/format";
|
|
15
17
|
export { INITIAL_TRANSCRIPTION_CONTROL_STATE, appendFinalTranscript, transitionTranscriptionControl, useTranscription, } from "./hooks/use-transcription";
|
|
16
18
|
export type { TranscriptionControlAction, TranscriptionControlState, TranscriptionControlTransition, UseTranscriptionOptions, UseTranscriptionResult, } from "./hooks/use-transcription";
|
|
@@ -88,7 +90,7 @@ export { createDefaultToolRegistry, createToolRegistry, defaultToolRegistry, raw
|
|
|
88
90
|
export type { CreateToolRegistryOptions, ToolRegistry, ToolRegistryEntry, ToolRenderer, ToolRendererProps, } from "./timeline";
|
|
89
91
|
export { ActivityDisclosure, ActivityRail, BodyNote, DisclosureDefaultsProvider, LightboxProvider, MediaEmpty, MediaSkeleton, PayloadBlock, ScreenshotFigure, TermBlock, Thumbnail, TurnSummary, BUILT_IN_TURN_SUMMARY_FACET_IDS, useLightbox, useLightboxOptional, } from "./timeline";
|
|
90
92
|
export type { ActivityDisclosureProps, ActivityRailProps, DisclosureChip, BuiltInTurnSummaryFacetId, TurnOutcome, TurnSummaryContext, TurnSummaryFacet, TurnSummaryFacetConfiguration, TurnSummaryFacetResult, TurnSummaryOptions, TurnSummaryProps, } from "./timeline";
|
|
91
|
-
export { applyPatchOps, controlCaret, execTruncated, isApplyPatch, isExecSessionLostBanner, looksBinary, parseExecBannerSessionId, parseToolArgs, redactSecrets, sandboxCommandExitCode, stripExecBanner, tailPeek, unwrapMcpOutput, v4aToGitFileDiff, } from "./timeline";
|
|
93
|
+
export { applyPatchOps, applyPatchOpsFromToolItem, controlCaret, execTruncated, isApplyPatch, isExecSessionLostBanner, looksBinary, parseExecBannerSessionId, parseFreeformApplyPatch, parseToolArgs, redactSecrets, sandboxCommandExitCode, stripExecBanner, tailPeek, unwrapMcpOutput, v4aToGitFileDiff, } from "./timeline";
|
|
92
94
|
export type { ApplyPatchOperation } from "./timeline";
|
|
93
95
|
export { argHint, defaultCommands, filterCommands, firstMissingRequiredArg, hasPermission, matchCommand, parseCommandLine, } from "./commands/registry";
|
|
94
96
|
export type { ParsedCommandLine } from "./commands/registry";
|
package/dist/index.js
CHANGED
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
useSessionLineage,
|
|
53
53
|
useSessionMcpApprovalPolicy,
|
|
54
54
|
useTurnQueue
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-SRFUT2ZU.js";
|
|
56
56
|
import {
|
|
57
57
|
ActivityDisclosure,
|
|
58
58
|
ActivityRail,
|
|
@@ -82,6 +82,7 @@ import {
|
|
|
82
82
|
TurnSummary,
|
|
83
83
|
answersFromDrafts,
|
|
84
84
|
applyPatchOps,
|
|
85
|
+
applyPatchOpsFromToolItem,
|
|
85
86
|
controlCaret,
|
|
86
87
|
copyTextToClipboard,
|
|
87
88
|
createDefaultToolRegistry,
|
|
@@ -94,6 +95,7 @@ import {
|
|
|
94
95
|
isExecSessionLostBanner,
|
|
95
96
|
looksBinary,
|
|
96
97
|
parseExecBannerSessionId,
|
|
98
|
+
parseFreeformApplyPatch,
|
|
97
99
|
parseToolArgs,
|
|
98
100
|
rawTypeOf,
|
|
99
101
|
redactSecrets,
|
|
@@ -107,7 +109,7 @@ import {
|
|
|
107
109
|
useLightboxOptional,
|
|
108
110
|
useThemeType,
|
|
109
111
|
v4aToGitFileDiff
|
|
110
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-KG5F2OKE.js";
|
|
111
113
|
import "./chunk-YDNWMKXO.js";
|
|
112
114
|
import {
|
|
113
115
|
buildTimeline,
|
|
@@ -116,7 +118,7 @@ import {
|
|
|
116
118
|
groupTimeline,
|
|
117
119
|
sessionStatusFromEvents,
|
|
118
120
|
toolDisplayName
|
|
119
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-LWR4MXSS.js";
|
|
120
122
|
import {
|
|
121
123
|
Actions,
|
|
122
124
|
AttachButton,
|
|
@@ -131,6 +133,7 @@ import {
|
|
|
131
133
|
Help,
|
|
132
134
|
Hint,
|
|
133
135
|
INITIAL_TRANSCRIPTION_CONTROL_STATE,
|
|
136
|
+
IndexedDbVoiceRecordingStore,
|
|
134
137
|
Input,
|
|
135
138
|
ModelPicker,
|
|
136
139
|
ModelPicker2,
|
|
@@ -142,8 +145,18 @@ import {
|
|
|
142
145
|
SendButton,
|
|
143
146
|
Status,
|
|
144
147
|
Surface,
|
|
148
|
+
VOICE_RECORDING_CLIENT_MAX_DURATION_SECONDS,
|
|
149
|
+
VOICE_RECORDING_OWNER_HEARTBEAT_MILLISECONDS,
|
|
150
|
+
VOICE_RECORDING_OWNER_STALE_MILLISECONDS,
|
|
151
|
+
VOICE_RECORDING_TIMESLICE_MILLISECONDS,
|
|
152
|
+
VoiceRecordingChunkConflictError,
|
|
153
|
+
VoiceRecordingChunkSequenceError,
|
|
154
|
+
VoiceRecordingNotFoundError,
|
|
155
|
+
VoiceRecordingOwnedError,
|
|
156
|
+
VoiceRecordingStorageUnavailableError,
|
|
145
157
|
appendFinalTranscript,
|
|
146
158
|
argHint,
|
|
159
|
+
createVoiceRecordingManifest,
|
|
147
160
|
defaultChatComposerMessages,
|
|
148
161
|
defaultCommands,
|
|
149
162
|
filterCommands,
|
|
@@ -151,12 +164,14 @@ import {
|
|
|
151
164
|
hasPermission,
|
|
152
165
|
matchCommand,
|
|
153
166
|
parseCommandLine,
|
|
167
|
+
planVoiceRecordingChunkCommit,
|
|
168
|
+
prepareVoiceRecordingChunk,
|
|
154
169
|
transitionTranscriptionControl,
|
|
155
170
|
useChatComposerController,
|
|
156
171
|
useSlashCommands,
|
|
157
172
|
useTranscription,
|
|
158
173
|
useVoiceInput
|
|
159
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-KC27K42G.js";
|
|
160
175
|
import {
|
|
161
176
|
FILE_ONLY_MESSAGE_TEXT,
|
|
162
177
|
composeSendInput,
|
|
@@ -177,7 +192,7 @@ import {
|
|
|
177
192
|
PickerBackHeader,
|
|
178
193
|
PickerNavRow,
|
|
179
194
|
defaultModelPolicyPickerMessages
|
|
180
|
-
} from "./chunk-
|
|
195
|
+
} from "./chunk-U6K24XQD.js";
|
|
181
196
|
import {
|
|
182
197
|
useOpenGeni,
|
|
183
198
|
useOpenGeniClient
|
|
@@ -199,7 +214,7 @@ import {
|
|
|
199
214
|
projectPickerRows,
|
|
200
215
|
runnableLatencyModesForModel,
|
|
201
216
|
sortPickerRows
|
|
202
|
-
} from "./chunk-
|
|
217
|
+
} from "./chunk-23EJ676W.js";
|
|
203
218
|
import {
|
|
204
219
|
Tooltip,
|
|
205
220
|
TooltipContent,
|
|
@@ -3327,6 +3342,7 @@ function ApprovalSurface({
|
|
|
3327
3342
|
}
|
|
3328
3343
|
|
|
3329
3344
|
// src/components/chat-composer.tsx
|
|
3345
|
+
import { LayoutGroup, motion } from "motion/react";
|
|
3330
3346
|
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
3331
3347
|
function ChatComposer({
|
|
3332
3348
|
composer,
|
|
@@ -3343,6 +3359,8 @@ function ChatComposer({
|
|
|
3343
3359
|
actionsStart,
|
|
3344
3360
|
attachButtonClassName,
|
|
3345
3361
|
transcription,
|
|
3362
|
+
transcriptionClassName,
|
|
3363
|
+
transcriptionSuppressed = false,
|
|
3346
3364
|
header,
|
|
3347
3365
|
onPaste,
|
|
3348
3366
|
attachments,
|
|
@@ -3384,20 +3402,62 @@ function ChatComposer({
|
|
|
3384
3402
|
/* @__PURE__ */ jsx2(Attachments, {}),
|
|
3385
3403
|
header,
|
|
3386
3404
|
/* @__PURE__ */ jsx2(Input, { placeholder, autoFocus }),
|
|
3387
|
-
controller.confirmState ? /* @__PURE__ */ jsx2(Confirmation, {}) : /* @__PURE__ */
|
|
3388
|
-
hasControls ? /* @__PURE__ */ jsxs2(
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3405
|
+
controller.confirmState ? /* @__PURE__ */ jsx2(Confirmation, {}) : /* @__PURE__ */ jsx2(Footer, { className: stackActions ? "max-sm:flex-nowrap sm:flex-wrap" : void 0, children: /* @__PURE__ */ jsxs2(LayoutGroup, { id: "og-composer-footer", children: [
|
|
3406
|
+
hasControls ? /* @__PURE__ */ jsxs2(
|
|
3407
|
+
Controls,
|
|
3408
|
+
{
|
|
3409
|
+
className: stackActions ? "min-w-0 max-sm:flex-1 sm:w-auto" : void 0,
|
|
3410
|
+
children: [
|
|
3411
|
+
controlsLeading,
|
|
3412
|
+
/* @__PURE__ */ jsx2(AttachButton, { className: attachButtonClassName }),
|
|
3413
|
+
transcription ? /* @__PURE__ */ jsx2(
|
|
3414
|
+
ComposerTranscriptionControl,
|
|
3415
|
+
{
|
|
3416
|
+
...transcription,
|
|
3417
|
+
suppressed: transcriptionSuppressed,
|
|
3418
|
+
className: [transcription.className, transcriptionClassName].filter(Boolean).join(" ")
|
|
3419
|
+
}
|
|
3420
|
+
) : null,
|
|
3421
|
+
models ? /* @__PURE__ */ jsx2(
|
|
3422
|
+
motion.span,
|
|
3423
|
+
{
|
|
3424
|
+
layout: true,
|
|
3425
|
+
transition: { duration: 0.36, ease: [0.22, 1, 0.36, 1] },
|
|
3426
|
+
className: "inline-flex min-w-0",
|
|
3427
|
+
children: /* @__PURE__ */ jsx2(
|
|
3428
|
+
ModelPicker2,
|
|
3429
|
+
{
|
|
3430
|
+
models,
|
|
3431
|
+
value: selectedModel,
|
|
3432
|
+
onChange: onSelectModel
|
|
3433
|
+
}
|
|
3434
|
+
)
|
|
3435
|
+
}
|
|
3436
|
+
) : null,
|
|
3437
|
+
controlsStart ? /* @__PURE__ */ jsx2(
|
|
3438
|
+
motion.span,
|
|
3439
|
+
{
|
|
3440
|
+
layout: true,
|
|
3441
|
+
transition: { duration: 0.36, ease: [0.22, 1, 0.36, 1] },
|
|
3442
|
+
className: "inline-flex min-w-0 items-center gap-1.5",
|
|
3443
|
+
children: controlsStart
|
|
3444
|
+
}
|
|
3445
|
+
) : null
|
|
3446
|
+
]
|
|
3447
|
+
}
|
|
3448
|
+
) : /* @__PURE__ */ jsx2(Hint, { children: hint }),
|
|
3449
|
+
/* @__PURE__ */ jsxs2(
|
|
3450
|
+
Actions,
|
|
3451
|
+
{
|
|
3452
|
+
className: stackActions ? "max-sm:shrink-0 sm:w-auto sm:justify-end" : void 0,
|
|
3453
|
+
children: [
|
|
3454
|
+
actionsStart,
|
|
3455
|
+
/* @__PURE__ */ jsx2(PauseButton, {}),
|
|
3456
|
+
/* @__PURE__ */ jsx2(SendButton, {})
|
|
3457
|
+
]
|
|
3458
|
+
}
|
|
3459
|
+
)
|
|
3460
|
+
] }) })
|
|
3401
3461
|
] })
|
|
3402
3462
|
] }),
|
|
3403
3463
|
/* @__PURE__ */ jsx2(Help, {}),
|
|
@@ -8423,6 +8483,7 @@ export {
|
|
|
8423
8483
|
HumanInputForm,
|
|
8424
8484
|
HumanInputSurface,
|
|
8425
8485
|
INITIAL_TRANSCRIPTION_CONTROL_STATE,
|
|
8486
|
+
IndexedDbVoiceRecordingStore,
|
|
8426
8487
|
LightboxProvider,
|
|
8427
8488
|
MACHINE_STATE_BADGE_META,
|
|
8428
8489
|
METRICS,
|
|
@@ -8474,6 +8535,15 @@ export {
|
|
|
8474
8535
|
TooltipProvider,
|
|
8475
8536
|
TooltipTrigger,
|
|
8476
8537
|
TurnSummary,
|
|
8538
|
+
VOICE_RECORDING_CLIENT_MAX_DURATION_SECONDS,
|
|
8539
|
+
VOICE_RECORDING_OWNER_HEARTBEAT_MILLISECONDS,
|
|
8540
|
+
VOICE_RECORDING_OWNER_STALE_MILLISECONDS,
|
|
8541
|
+
VOICE_RECORDING_TIMESLICE_MILLISECONDS,
|
|
8542
|
+
VoiceRecordingChunkConflictError,
|
|
8543
|
+
VoiceRecordingChunkSequenceError,
|
|
8544
|
+
VoiceRecordingNotFoundError,
|
|
8545
|
+
VoiceRecordingOwnedError,
|
|
8546
|
+
VoiceRecordingStorageUnavailableError,
|
|
8477
8547
|
WINDOW_LABEL,
|
|
8478
8548
|
WORKBENCH_SURFACES,
|
|
8479
8549
|
WORKBENCH_TAB_CHANGES,
|
|
@@ -8486,6 +8556,7 @@ export {
|
|
|
8486
8556
|
answersFromDrafts,
|
|
8487
8557
|
appendFinalTranscript,
|
|
8488
8558
|
applyPatchOps,
|
|
8559
|
+
applyPatchOpsFromToolItem,
|
|
8489
8560
|
approvalsFromRequiresAction,
|
|
8490
8561
|
argHint,
|
|
8491
8562
|
availabilityReasonLabel,
|
|
@@ -8502,6 +8573,7 @@ export {
|
|
|
8502
8573
|
copyTextToClipboard,
|
|
8503
8574
|
createDefaultToolRegistry,
|
|
8504
8575
|
createToolRegistry,
|
|
8576
|
+
createVoiceRecordingManifest,
|
|
8505
8577
|
creditExhaustedFromEvents,
|
|
8506
8578
|
defaultApprovalSurfaceMessages,
|
|
8507
8579
|
defaultChatComposerMessages,
|
|
@@ -8548,9 +8620,12 @@ export {
|
|
|
8548
8620
|
matchCommand,
|
|
8549
8621
|
parseCommandLine,
|
|
8550
8622
|
parseExecBannerSessionId,
|
|
8623
|
+
parseFreeformApplyPatch,
|
|
8551
8624
|
parseToolArgs,
|
|
8552
8625
|
payerSummaryForModel,
|
|
8626
|
+
planVoiceRecordingChunkCommit,
|
|
8553
8627
|
pointsFor,
|
|
8628
|
+
prepareVoiceRecordingChunk,
|
|
8554
8629
|
projectClientModelRows,
|
|
8555
8630
|
projectPendingApprovals,
|
|
8556
8631
|
projectPendingHumanInputRequests,
|