@jini-ai/chat 0.3.3 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react/components/AttachmentPreviewModal.d.ts +7 -0
- package/dist/react/components/AttachmentPreviewModal.d.ts.map +1 -0
- package/dist/react/components/AttachmentPreviewModal.hooks.d.ts +70 -0
- package/dist/react/components/AttachmentPreviewModal.hooks.d.ts.map +1 -0
- package/dist/react/components/AttachmentPreviewModal.hooks.js +200 -0
- package/dist/react/components/AttachmentPreviewModal.hooks.js.map +1 -0
- package/dist/react/components/AttachmentPreviewModal.js +18 -0
- package/dist/react/components/AttachmentPreviewModal.js.map +1 -0
- package/dist/react/components/Composer.d.ts.map +1 -1
- package/dist/react/components/Composer.js +1 -1
- package/dist/react/components/Composer.js.map +1 -1
- package/dist/react/components/MessageRow.d.ts +8 -0
- package/dist/react/components/MessageRow.d.ts.map +1 -1
- package/dist/react/components/MessageRow.js +38 -4
- package/dist/react/components/MessageRow.js.map +1 -1
- package/dist/react/components/composer-discovery.js +1 -1
- package/dist/react/features/chat-pane/components/ChatPane.d.ts +1 -1
- package/dist/react/features/chat-pane/components/ChatPane.d.ts.map +1 -1
- package/dist/react/features/chat-pane/components/ChatPane.js +19 -6
- package/dist/react/features/chat-pane/components/ChatPane.js.map +1 -1
- package/dist/react/features/chat-pane/hooks/useChatPane.hooks.d.ts.map +1 -1
- package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js +43 -6
- package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js.map +1 -1
- package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.d.ts +10 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.d.ts.map +1 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.js +66 -0
- package/dist/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.js.map +1 -0
- package/dist/react/features/chat-pane/styles.d.ts +1 -1
- package/dist/react/features/chat-pane/styles.d.ts.map +1 -1
- package/dist/react/features/chat-pane/styles.js +139 -3
- package/dist/react/features/chat-pane/styles.js.map +1 -1
- package/dist/react/features/chat-pane/types.d.ts +13 -1
- package/dist/react/features/chat-pane/types.d.ts.map +1 -1
- package/dist/react/hooks/attachment-preview-cache.d.ts +47 -0
- package/dist/react/hooks/attachment-preview-cache.d.ts.map +1 -0
- package/dist/react/hooks/attachment-preview-cache.js +59 -0
- package/dist/react/hooks/attachment-preview-cache.js.map +1 -0
- package/dist/react/hooks/useComposer.d.ts.map +1 -1
- package/dist/react/hooks/useComposer.js +12 -0
- package/dist/react/hooks/useComposer.js.map +1 -1
- package/dist/react/poc-mcp-ui-official/create-poc-resource.d.ts +1 -1
- package/dist/react/poc-mcp-ui-official/create-poc-resource.js +1 -1
- package/dist/react/slots.d.ts +8 -0
- package/dist/react/slots.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -6,5 +6,5 @@ import type { ChatPaneProps } from '../types.js';
|
|
|
6
6
|
* @complexity Time/space: O(n) in rendered messages, agents, and suggestions.
|
|
7
7
|
* @overallScore 100/100
|
|
8
8
|
*/
|
|
9
|
-
export declare function ChatPane({ transport, agents: injectedAgents, runtimeAccess, runtimeStatusPollMs, title, variant, initialMessages, conversationId, initialSelection, selection: controlledSelection, onSelectionChange, runContext, agentControl, onActivityChange, onMessagesChange, onRescanAgents, scanningAgents, daemonOnline, executionMode, apiModeAvailable, onExecutionModeChange, byokRuntime, onByokModelChange, initialDraft, composerHandle, placeholder, suggestions, workingDirectory, initialWorkingDirectory, onChangeWorkingDirectory, workingDirectoryAccess, workingDirectoryControlPlacement, projectFileNames, uploadAttachments, attachmentAccept, disabled, runtimePickerPlacement, composerSlots, header, leadingAccessory, footer, className, style, }: ChatPaneProps): import("react").JSX.Element;
|
|
9
|
+
export declare function ChatPane({ transport, agents: injectedAgents, runtimeAccess, runtimeStatusPollMs, title, variant, initialMessages, conversationId, initialSelection, selection: controlledSelection, onSelectionChange, runContext, agentControl, onActivityChange, onMessagesChange, onRescanAgents, scanningAgents, daemonOnline, executionMode, apiModeAvailable, onExecutionModeChange, byokRuntime, onByokModelChange, initialDraft, composerHandle, placeholder, placeholders, suggestions, workingDirectory, initialWorkingDirectory, onChangeWorkingDirectory, workingDirectoryAccess, workingDirectoryControlPlacement, projectFileNames, uploadAttachments, attachmentAccept, disabled, runtimePickerPlacement, composerSlots, header, leadingAccessory, footer, className, style, }: ChatPaneProps): import("react").JSX.Element;
|
|
10
10
|
//# sourceMappingURL=ChatPane.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPane.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/components/ChatPane.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,aAAa,EAId,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatPane.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/components/ChatPane.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,aAAa,EAId,MAAM,aAAa,CAAC;AAobrB;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,MAAM,EAAE,cAA6B,EACrC,aAAa,EACb,mBAA2B,EAC3B,KAAK,EACL,OAAqB,EACrB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAsB,EACtB,YAAmB,EACnB,aAAuB,EACvB,gBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,gCAA0C,EAC1C,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,QAAgB,EAChB,sBAA6B,EAC7B,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,aAAa,+BA4Jf"}
|
|
@@ -9,6 +9,7 @@ import { definedProps } from '../../../util/defined-props.js';
|
|
|
9
9
|
import { isChatPaneApiModeConfigured } from '../rules.js';
|
|
10
10
|
import { useChatPane } from '../hooks/useChatPane.hooks.js';
|
|
11
11
|
import { useChatPaneAgentControl } from '../hooks/useChatPaneAgentControl.hooks.js';
|
|
12
|
+
import { useChatPaneComposerPlaceholder } from '../hooks/useChatPaneComposerPlaceholder.hooks.js';
|
|
12
13
|
import { useChatPaneControlsHeight } from '../hooks/useChatPaneControlsHeight.hooks.js';
|
|
13
14
|
import { useChatPaneFileDrop, } from '../hooks/useChatPaneFileDrop.hooks.js';
|
|
14
15
|
import { useChatPaneRuntimeInventory, } from '../hooks/useChatPaneRuntimeInventory.hooks.js';
|
|
@@ -78,7 +79,7 @@ function ChatPaneWorkingDirectoryBlock({ workingDirectoryAccess, workingDirector
|
|
|
78
79
|
if (workingDirectoryAccess && workingDirectoryControlPlacement === 'below') {
|
|
79
80
|
return (_jsx("div", { className: "jini-chat-pane__workdir", children: _jsx(WorkingDirPicker, { workingDir: pane.workingDirectory, recentDirs: [...pane.recentDirectories], onPickDirectory: () => void pane.pickWorkingDirectory(), onSelectRecent: (directory) => void pane.selectRecentDirectory(directory), placement: "up", onClear: pane.clearWorkingDirectory, invalid: pane.workingDirectoryInvalid, onOpen: () => void pane.openWorkingDirectoryPicker(), labels: { trigger: t('Select working directory') } }) }));
|
|
80
81
|
}
|
|
81
|
-
//
|
|
82
|
+
// Three cases render nothing here, for different reasons:
|
|
82
83
|
// - No native `workingDirectoryAccess`: the static text line this replaced is gone entirely —
|
|
83
84
|
// see `ChatPaneComposerArea` below, which threads `pane.workingDirectory` and
|
|
84
85
|
// `pane.selectRecentDirectory` into `Composer`'s own folder-icon (popover) trigger instead.
|
|
@@ -86,8 +87,12 @@ function ChatPaneWorkingDirectoryBlock({ workingDirectoryAccess, workingDirector
|
|
|
86
87
|
// host asked for the control next to "+" instead — `resolveComposerWorkingDirectory` wires
|
|
87
88
|
// `Composer`'s trigger straight to `pane.pickWorkingDirectory` in that case, so rendering this
|
|
88
89
|
// block too would put up a second, competing control below the composer.
|
|
89
|
-
//
|
|
90
|
-
//
|
|
90
|
+
// - `workingDirectoryControlPlacement === 'none'`: the host asked for no working-directory
|
|
91
|
+
// control anywhere — `resolveComposerWorkingDirectory` supplies neither composer handler in
|
|
92
|
+
// this case either, so `Composer`'s own folder-icon gate (`onChangeWorkingDirectory ||
|
|
93
|
+
// onPickWorkingDirectory`) renders nothing too. Nothing here has a trigger to defer to.
|
|
94
|
+
// In every case but `'none'`, the trigger this defers to already covers both "nothing set yet"
|
|
95
|
+
// and "a value is set", so this block has nothing left to render.
|
|
91
96
|
return null;
|
|
92
97
|
}
|
|
93
98
|
/** `uploadAttachments === undefined` gates BOTH of these — a temporarily-disabled composer still
|
|
@@ -111,9 +116,13 @@ function resolveComposerAttachmentPicker(uploadAttachments, pane, attachmentAcce
|
|
|
111
116
|
}
|
|
112
117
|
/**
|
|
113
118
|
* Resolves which of `Composer`'s two mutually-exclusive working-directory props (if either) this
|
|
114
|
-
* render should supply, mirroring `ChatPaneWorkingDirectoryBlock`'s own
|
|
119
|
+
* render should supply, mirroring `ChatPaneWorkingDirectoryBlock`'s own four-way branch above so
|
|
115
120
|
* the two never disagree about which control owns the composer's folder-icon slot:
|
|
116
121
|
*
|
|
122
|
+
* - `workingDirectoryControlPlacement === 'none'`: neither prop, regardless of whether
|
|
123
|
+
* `workingDirectoryAccess` is present — the host asked for no working-directory control
|
|
124
|
+
* anywhere, so `Composer`'s own gate (`onChangeWorkingDirectory || onPickWorkingDirectory`)
|
|
125
|
+
* renders nothing. Checked first because it overrides both cases below.
|
|
117
126
|
* - No `workingDirectoryAccess`: the composer's lightweight text-input popover, via
|
|
118
127
|
* `onChangeWorkingDirectory`. `pane.selectRecentDirectory` is reused as the plain setter here
|
|
119
128
|
* rather than inventing one — `useChatPaneWorkingDirectory`'s own doc confirms it already writes
|
|
@@ -127,6 +136,9 @@ function resolveComposerAttachmentPicker(uploadAttachments, pane, attachmentAcce
|
|
|
127
136
|
* `WorkingDirPicker` below instead, unchanged from every host's prior behavior.
|
|
128
137
|
*/
|
|
129
138
|
function resolveComposerWorkingDirectory(workingDirectoryAccess, workingDirectoryControlPlacement, pane) {
|
|
139
|
+
if (workingDirectoryControlPlacement === 'none') {
|
|
140
|
+
return {};
|
|
141
|
+
}
|
|
130
142
|
if (!workingDirectoryAccess) {
|
|
131
143
|
return {
|
|
132
144
|
workingDirectory: pane.workingDirectory,
|
|
@@ -165,8 +177,9 @@ function ChatPaneComposerArea({ fileDrop, uploadAttachments, pane, disabled, una
|
|
|
165
177
|
* @complexity Time/space: O(n) in rendered messages, agents, and suggestions.
|
|
166
178
|
* @overallScore 100/100
|
|
167
179
|
*/
|
|
168
|
-
export function ChatPane({ transport, agents: injectedAgents = EMPTY_AGENTS, runtimeAccess, runtimeStatusPollMs = 5_000, title, variant = 'workspace', initialMessages, conversationId, initialSelection, selection: controlledSelection, onSelectionChange, runContext, agentControl, onActivityChange, onMessagesChange, onRescanAgents, scanningAgents = false, daemonOnline = true, executionMode = 'local', apiModeAvailable = false, onExecutionModeChange, byokRuntime, onByokModelChange, initialDraft, composerHandle, placeholder, suggestions = [], workingDirectory, initialWorkingDirectory, onChangeWorkingDirectory, workingDirectoryAccess, workingDirectoryControlPlacement = 'below', projectFileNames, uploadAttachments, attachmentAccept, disabled = false, runtimePickerPlacement = 'up', composerSlots, header, leadingAccessory, footer, className, style, }) {
|
|
180
|
+
export function ChatPane({ transport, agents: injectedAgents = EMPTY_AGENTS, runtimeAccess, runtimeStatusPollMs = 5_000, title, variant = 'workspace', initialMessages, conversationId, initialSelection, selection: controlledSelection, onSelectionChange, runContext, agentControl, onActivityChange, onMessagesChange, onRescanAgents, scanningAgents = false, daemonOnline = true, executionMode = 'local', apiModeAvailable = false, onExecutionModeChange, byokRuntime, onByokModelChange, initialDraft, composerHandle, placeholder, placeholders, suggestions = [], workingDirectory, initialWorkingDirectory, onChangeWorkingDirectory, workingDirectoryAccess, workingDirectoryControlPlacement = 'below', projectFileNames, uploadAttachments, attachmentAccept, disabled = false, runtimePickerPlacement = 'up', composerSlots, header, leadingAccessory, footer, className, style, }) {
|
|
169
181
|
const t = useT();
|
|
182
|
+
const composerPlaceholder = useChatPaneComposerPlaceholder(placeholder, placeholders);
|
|
170
183
|
const inventory = useChatPaneRuntimeInventory(definedProps({
|
|
171
184
|
access: runtimeAccess,
|
|
172
185
|
initialAgents: injectedAgents,
|
|
@@ -246,6 +259,6 @@ export function ChatPane({ transport, agents: injectedAgents = EMPTY_AGENTS, run
|
|
|
246
259
|
footerAccessories: (_jsx(AgentRuntimePicker, { agents: runtimeView.agents, value: pane.selection, onChange: pane.setSelection, ...definedProps({ onRescan: runtimeView.rescanAgents }), scanning: runtimeView.scanningAgents, daemonOnline: runtimeView.daemonOnline, placement: runtimePickerPlacement, executionMode: executionMode, apiModeAvailable: apiModeAvailable, ...definedProps({ onExecutionModeChange, byokRuntime, onByokModelChange }) })),
|
|
247
260
|
});
|
|
248
261
|
const { rootRef, controlsRef } = useChatPaneControlsHeight();
|
|
249
|
-
return (_jsxs("section", { className: chatPaneClassName(variant, className), style: style, "data-activity": pane.activity, ref: rootRef, children: [_jsx("style", { "data-jini-chat-pane-styles": "true", children: CHAT_PANE_STYLES }), resolveChatPaneHeader(header, title, pane.reset, t), _jsxs("div", { className: "jini-chat-pane__body", children: [_jsx(MessageList, { messages: pane.conversation.messages, isStreaming: pane.conversation.isStreaming, scrollIntent: pane.conversation.scrollIntent, onScrolled: pane.conversation.acknowledgeScroll, pendingPrompt: pane.queuedPrompt === null ? null : { text: pane.queuedPrompt, onCancel: pane.cancelQueued }, ...(projectFileNames === undefined ? {} : { projectFileNames: new Set(projectFileNames) }) }), _jsxs("div", { className: "jini-chat-pane__controls", ref: controlsRef, children: [_jsx(ChatPaneSuggestionsRow, { suggestions: suggestions, onSelect: pane.composer.setDraft, t: t }), _jsx(ChatPaneStatusMessages, { unavailable: unavailable, scanningAgents: runtimeView.scanningAgents, executionMode: executionMode, apiModeAvailable: apiModeAvailable, onExecutionModeChange: onExecutionModeChange, conversationError: pane.conversation.error, attachmentError: pane.attachmentError, dropReadError: fileDrop.dropReadError, workingDirectoryError: pane.workingDirectoryError, workingDirectoryPending: pane.workingDirectoryPending, workingDirectoryInvalid: pane.workingDirectoryInvalid, runtimeInventoryError: inventory.runtimeInventoryError, t: t }), _jsx(ChatPaneComposerArea, { fileDrop: fileDrop, uploadAttachments: uploadAttachments, pane: pane, disabled: disabled, unavailable: unavailable, placeholder:
|
|
262
|
+
return (_jsxs("section", { className: chatPaneClassName(variant, className), style: style, "data-activity": pane.activity, ref: rootRef, children: [_jsx("style", { "data-jini-chat-pane-styles": "true", children: CHAT_PANE_STYLES }), resolveChatPaneHeader(header, title, pane.reset, t), _jsxs("div", { className: "jini-chat-pane__body", children: [_jsx(MessageList, { messages: pane.conversation.messages, isStreaming: pane.conversation.isStreaming, scrollIntent: pane.conversation.scrollIntent, onScrolled: pane.conversation.acknowledgeScroll, pendingPrompt: pane.queuedPrompt === null ? null : { text: pane.queuedPrompt, onCancel: pane.cancelQueued }, ...(projectFileNames === undefined ? {} : { projectFileNames: new Set(projectFileNames) }) }), _jsxs("div", { className: "jini-chat-pane__controls", ref: controlsRef, children: [_jsx(ChatPaneSuggestionsRow, { suggestions: suggestions, onSelect: pane.composer.setDraft, t: t }), _jsx(ChatPaneStatusMessages, { unavailable: unavailable, scanningAgents: runtimeView.scanningAgents, executionMode: executionMode, apiModeAvailable: apiModeAvailable, onExecutionModeChange: onExecutionModeChange, conversationError: pane.conversation.error, attachmentError: pane.attachmentError, dropReadError: fileDrop.dropReadError, workingDirectoryError: pane.workingDirectoryError, workingDirectoryPending: pane.workingDirectoryPending, workingDirectoryInvalid: pane.workingDirectoryInvalid, runtimeInventoryError: inventory.runtimeInventoryError, t: t }), _jsx(ChatPaneComposerArea, { fileDrop: fileDrop, uploadAttachments: uploadAttachments, pane: pane, disabled: disabled, unavailable: unavailable, placeholder: composerPlaceholder, slots: slots, attachmentAccept: attachmentAccept, workingDirectoryAccess: workingDirectoryAccess, workingDirectoryControlPlacement: workingDirectoryControlPlacement, t: t })] })] }), footer] }));
|
|
250
263
|
}
|
|
251
264
|
//# sourceMappingURL=ChatPane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPane.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/components/ChatPane.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChatPane.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/components/ChatPane.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatPane.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPane.hooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,+BAA+B,EAC/B,sBAAsB,EACtB,kBAAkB,EAClB,8BAA8B,EAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"useChatPane.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPane.hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
2
2
|
import { describeChatPaneSendBlocker, findChatPaneSendBlocker, isChatPaneQueueableBlocker, resolveChatPaneSelection, } from '../rules.js';
|
|
3
3
|
import { definedProps } from '../../../util/defined-props.js';
|
|
4
|
+
import { cacheAttachmentPreviewSource } from '../../../hooks/attachment-preview-cache.js';
|
|
4
5
|
import { useComposer } from '../../../hooks/useComposer.js';
|
|
5
6
|
import { useConversation, } from '../../../hooks/useConversation.js';
|
|
6
7
|
import { useChatPaneWorkingDirectory, } from './useChatPaneWorkingDirectory.hooks.js';
|
|
@@ -34,14 +35,21 @@ function resolveChatPaneActivity(selectedAgent, conversation) {
|
|
|
34
35
|
* {@link useLatestOperation}'s latest-wins model, several batches may be in flight at once
|
|
35
36
|
* (`addAttachments`'s `activeUploadsRef` is a `Set`, not a single slot) — so this takes an explicit
|
|
36
37
|
* `stillWanted()` check per attempt rather than a shared generation token.
|
|
38
|
+
*
|
|
39
|
+
* Zips each resolved `ChatAttachment` back to the `File` at its same index before calling
|
|
40
|
+
* `onAttachment`, same assumption `useComposer.ts`'s own `addAttachments` documents ("resolves 1:1
|
|
41
|
+
* with files, in order, on success") — `effects.upload`'s one shipped implementation
|
|
42
|
+
* (`create-daemon-attachment-uploader.ts`) either returns one attachment per input file or throws,
|
|
43
|
+
* so the arrays are always the same length on the success path this runs. `file` is passed through
|
|
44
|
+
* as possibly `undefined` rather than asserted, so a non-conforming custom `uploadAttachments` host
|
|
45
|
+
* prop degrades to "attachment staged, preview not cached" instead of throwing.
|
|
37
46
|
*/
|
|
38
47
|
async function uploadAttachmentBatch(files, effects) {
|
|
39
48
|
try {
|
|
40
49
|
const uploaded = await effects.upload(files, { signal: effects.signal, batchId: effects.batchId });
|
|
41
50
|
if (!effects.stillWanted())
|
|
42
51
|
return;
|
|
43
|
-
|
|
44
|
-
effects.onAttachment(attachment);
|
|
52
|
+
uploaded.forEach((attachment, index) => effects.onAttachment(attachment, files[index]));
|
|
45
53
|
}
|
|
46
54
|
catch (error) {
|
|
47
55
|
if (!effects.stillWanted())
|
|
@@ -53,6 +61,10 @@ export function useChatPane(options) {
|
|
|
53
61
|
const [activeUploadCount, setActiveUploadCount] = useState(0);
|
|
54
62
|
const [attachmentError, setAttachmentError] = useState(null);
|
|
55
63
|
const [queuedPrompt, setQueuedPrompt] = useState(null);
|
|
64
|
+
// The conversation `queuedPrompt` was queued against. Compared with `options.conversationId` at
|
|
65
|
+
// flush time so a prompt queued behind a streaming run in one conversation can never be posted
|
|
66
|
+
// into a different one the caller switched to before that run finished.
|
|
67
|
+
const queuedConversationIdRef = useRef(undefined);
|
|
56
68
|
const mountedRef = useRef(true);
|
|
57
69
|
const attachmentGenerationRef = useRef(0);
|
|
58
70
|
const attachmentBatchIdRef = useRef(createAttachmentBatchId());
|
|
@@ -153,7 +165,16 @@ export function useChatPane(options) {
|
|
|
153
165
|
stillWanted: () => mountedRef.current
|
|
154
166
|
&& !controller.signal.aborted
|
|
155
167
|
&& generation === attachmentGenerationRef.current,
|
|
156
|
-
|
|
168
|
+
// Caches the original `File` right here, at the one point this closure has both it and the
|
|
169
|
+
// resulting `ChatAttachment` paired — mirrors `useComposer.ts`'s own `addAttachments`, which
|
|
170
|
+
// does the same pairing for its (separate, currently unused-in-production) upload path. See
|
|
171
|
+
// `attachment-preview-cache.ts`'s module doc for why this is the only place that copy can
|
|
172
|
+
// ever be captured.
|
|
173
|
+
onAttachment: (attachment, file) => {
|
|
174
|
+
composer.addAttachment(attachment);
|
|
175
|
+
if (file)
|
|
176
|
+
cacheAttachmentPreviewSource(attachment.path, file);
|
|
177
|
+
},
|
|
157
178
|
onError: setAttachmentError,
|
|
158
179
|
});
|
|
159
180
|
}
|
|
@@ -205,6 +226,7 @@ export function useChatPane(options) {
|
|
|
205
226
|
// Queue instead of no-op'ing. `setDraft('')` and NOT `composer.reset()`: reset also discards
|
|
206
227
|
// staged attachments, which this turn still needs when it finally goes out.
|
|
207
228
|
if (isChatPaneQueueableBlocker(sendBlocker)) {
|
|
229
|
+
queuedConversationIdRef.current = options.conversationId;
|
|
208
230
|
setQueuedPrompt(prompt);
|
|
209
231
|
composer.setDraft('');
|
|
210
232
|
return;
|
|
@@ -212,16 +234,18 @@ export function useChatPane(options) {
|
|
|
212
234
|
if (!canSend)
|
|
213
235
|
return;
|
|
214
236
|
await sendPrompt(prompt);
|
|
215
|
-
}, [canSend, composer, sendBlocker, sendPrompt]);
|
|
237
|
+
}, [canSend, composer, options.conversationId, sendBlocker, sendPrompt]);
|
|
216
238
|
const interruptSend = useCallback(() => {
|
|
217
239
|
const prompt = composerPrompt(composer);
|
|
218
240
|
if (!prompt)
|
|
219
241
|
return;
|
|
242
|
+
queuedConversationIdRef.current = options.conversationId;
|
|
220
243
|
setQueuedPrompt(prompt);
|
|
221
244
|
composer.setDraft('');
|
|
222
245
|
conversation.cancel();
|
|
223
|
-
}, [composer, conversation]);
|
|
246
|
+
}, [composer, conversation, options.conversationId]);
|
|
224
247
|
const cancelQueued = useCallback(() => {
|
|
248
|
+
queuedConversationIdRef.current = undefined;
|
|
225
249
|
setQueuedPrompt(null);
|
|
226
250
|
}, []);
|
|
227
251
|
// Flush on a FULLY clear blocker, not merely on streaming ending — see
|
|
@@ -230,9 +254,17 @@ export function useChatPane(options) {
|
|
|
230
254
|
useEffect(() => {
|
|
231
255
|
if (queuedPrompt === null || sendBlocker !== null)
|
|
232
256
|
return;
|
|
257
|
+
if (queuedConversationIdRef.current !== options.conversationId) {
|
|
258
|
+
// The conversation changed while this prompt waited behind a streaming run — sending it now
|
|
259
|
+
// would post it into a conversation the user never saw it queued against. Drop it instead
|
|
260
|
+
// (same as `cancelQueued`) rather than misrouting it.
|
|
261
|
+
queuedConversationIdRef.current = undefined;
|
|
262
|
+
setQueuedPrompt(null);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
233
265
|
setQueuedPrompt(null);
|
|
234
266
|
void sendPrompt(queuedPrompt);
|
|
235
|
-
}, [queuedPrompt, sendBlocker, sendPrompt]);
|
|
267
|
+
}, [options.conversationId, queuedPrompt, sendBlocker, sendPrompt]);
|
|
236
268
|
const reset = useCallback(() => {
|
|
237
269
|
attachmentGenerationRef.current += 1;
|
|
238
270
|
attachmentBatchIdRef.current = createAttachmentBatchId();
|
|
@@ -244,6 +276,11 @@ export function useChatPane(options) {
|
|
|
244
276
|
conversation.setMessages(options.initialMessages ?? []);
|
|
245
277
|
composer.reset();
|
|
246
278
|
setAttachmentError(null);
|
|
279
|
+
// Without this, a prompt queued behind a streaming run survives `reset()` and — once
|
|
280
|
+
// `conversation.cancel()` above clears the streaming blocker — the flush effect fires it into
|
|
281
|
+
// the just-reset conversation instead of discarding it like the rest of this turn's state.
|
|
282
|
+
queuedConversationIdRef.current = undefined;
|
|
283
|
+
setQueuedPrompt(null);
|
|
247
284
|
}, [composer, conversation, options.initialMessages]);
|
|
248
285
|
return {
|
|
249
286
|
conversation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatPane.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPane.hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,GAEzB,MAAM,aAAa,CAAC;AAWrB,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAA0B,MAAM,+BAA+B,CAAC;AACpF,OAAO,EACL,eAAe,GAEhB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,2BAA2B,GAE5B,MAAM,wCAAwC,CAAC;AAqFhD;;;;GAIG;AACH,SAAS,cAAc,CAAC,QAA2B;IACjD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;WACvB,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;WACnC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC;AAED;8DAC8D;AAC9D,SAAS,uBAAuB,CAC9B,aAAwC,EACxC,YAAmC;IAEnC,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IACtD,IAAI,YAAY,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IACxC,IAAI,YAAY,CAAC,WAAW;QAAE,OAAO,WAAW,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"useChatPane.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPane.hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param placeholder - `ChatPaneProps.placeholder`. Returned unchanged whenever `placeholders` is
|
|
3
|
+
* absent or empty.
|
|
4
|
+
* @param placeholders - `ChatPaneProps.placeholders`. Takes over from `placeholder` whenever it has
|
|
5
|
+
* at least one entry.
|
|
6
|
+
* @complexity Time/space: O(1) per render; the rotation timer is a single `setInterval`.
|
|
7
|
+
* @overallScore 100/100
|
|
8
|
+
*/
|
|
9
|
+
export declare function useChatPaneComposerPlaceholder(placeholder: string | undefined, placeholders: readonly string[] | undefined): string | undefined;
|
|
10
|
+
//# sourceMappingURL=useChatPaneComposerPlaceholder.hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatPaneComposerPlaceholder.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.ts"],"names":[],"mappings":"AAsCA;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAC1C,MAAM,GAAG,SAAS,CAyBpB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module useChatPaneComposerPlaceholder
|
|
3
|
+
*
|
|
4
|
+
* Resolves `ChatPaneProps.placeholder`/`placeholders` down to the single string `Composer`
|
|
5
|
+
* actually renders — `Composer` itself never learns a plural exists. `placeholders` (when supplied
|
|
6
|
+
* with two or more entries) rotates on a timer; a single-entry list collapses to that one entry
|
|
7
|
+
* with no rotation, and so does `prefers-reduced-motion: reduce` — a placeholder that changes
|
|
8
|
+
* under the cursor is a motion effect whether or not anything moves on screen. `placeholder` keeps
|
|
9
|
+
* resolving exactly as it always has when `placeholders` is omitted or empty, so every existing
|
|
10
|
+
* host is unaffected.
|
|
11
|
+
*/
|
|
12
|
+
import { useEffect, useState } from 'react';
|
|
13
|
+
const ROTATE_INTERVAL_MS = 4_000;
|
|
14
|
+
/**
|
|
15
|
+
* A live read of `(prefers-reduced-motion: reduce)`, not a load-time snapshot — an operator who
|
|
16
|
+
* flips the OS setting mid-session should not have to remount the pane for the composer to notice.
|
|
17
|
+
* `window.matchMedia` is absent in SSR/non-browser test environments, so both the initial value and
|
|
18
|
+
* the subscription fall back to "no preference" rather than throwing.
|
|
19
|
+
*/
|
|
20
|
+
function usePrefersReducedMotion() {
|
|
21
|
+
const hasMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';
|
|
22
|
+
const [reduced, setReduced] = useState(() => hasMatchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (!hasMatchMedia)
|
|
25
|
+
return undefined;
|
|
26
|
+
const query = window.matchMedia('(prefers-reduced-motion: reduce)');
|
|
27
|
+
const onChange = () => setReduced(query.matches);
|
|
28
|
+
query.addEventListener('change', onChange);
|
|
29
|
+
return () => query.removeEventListener('change', onChange);
|
|
30
|
+
}, [hasMatchMedia]);
|
|
31
|
+
return reduced;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @param placeholder - `ChatPaneProps.placeholder`. Returned unchanged whenever `placeholders` is
|
|
35
|
+
* absent or empty.
|
|
36
|
+
* @param placeholders - `ChatPaneProps.placeholders`. Takes over from `placeholder` whenever it has
|
|
37
|
+
* at least one entry.
|
|
38
|
+
* @complexity Time/space: O(1) per render; the rotation timer is a single `setInterval`.
|
|
39
|
+
* @overallScore 100/100
|
|
40
|
+
*/
|
|
41
|
+
export function useChatPaneComposerPlaceholder(placeholder, placeholders) {
|
|
42
|
+
const reducedMotion = usePrefersReducedMotion();
|
|
43
|
+
const [index, setIndex] = useState(0);
|
|
44
|
+
// A joined key, not the array reference: a host writing `placeholders={['a', 'b']}` inline
|
|
45
|
+
// supplies a new array on every one of ITS OWN renders, and restarting the rotation on every one
|
|
46
|
+
// of those (rather than only when the actual suggestions change) is the opposite of gentle.
|
|
47
|
+
const key = placeholders?.join('␟') ?? '';
|
|
48
|
+
// A changed suggestion set starts over at its own first entry rather than wherever the old
|
|
49
|
+
// index happened to land — `placeholders[index % placeholders.length]` below would already be
|
|
50
|
+
// safe either way, but restarting reads as a fresh cycle instead of a mid-cycle jump.
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
setIndex(0);
|
|
53
|
+
}, [key]);
|
|
54
|
+
const rotating = !reducedMotion && (placeholders?.length ?? 0) > 1;
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (!rotating)
|
|
57
|
+
return undefined;
|
|
58
|
+
const id = window.setInterval(() => setIndex((current) => current + 1), ROTATE_INTERVAL_MS);
|
|
59
|
+
return () => window.clearInterval(id);
|
|
60
|
+
// `key`, not `placeholders` — see above.
|
|
61
|
+
}, [rotating, key]);
|
|
62
|
+
if (!placeholders || placeholders.length === 0)
|
|
63
|
+
return placeholder;
|
|
64
|
+
return placeholders[index % placeholders.length];
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=useChatPaneComposerPlaceholder.hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatPaneComposerPlaceholder.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneComposerPlaceholder.hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC;;;;;GAKG;AACH,SAAS,uBAAuB;IAC9B,MAAM,aAAa,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC;IAC/F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CACpC,GAAG,EAAE,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,OAAO,CACrF,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjD,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,8BAA8B,CAC5C,WAA+B,EAC/B,YAA2C;IAE3C,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,2FAA2F;IAC3F,iGAAiG;IACjG,4FAA4F;IAC5F,MAAM,GAAG,GAAG,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAE1C,2FAA2F;IAC3F,8FAA8F;IAC9F,sFAAsF;IACtF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,QAAQ,GAAG,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAC5F,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtC,yCAAyC;IAC3C,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IACnE,OAAO,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC"}
|