@jini-ai/chat 0.3.2 → 0.3.3

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.
Files changed (32) hide show
  1. package/README.md +1 -1
  2. package/dist/react/components/Composer.d.ts +36 -1
  3. package/dist/react/components/Composer.d.ts.map +1 -1
  4. package/dist/react/components/Composer.js +57 -7
  5. package/dist/react/components/Composer.js.map +1 -1
  6. package/dist/react/components/MessageList.d.ts +14 -1
  7. package/dist/react/components/MessageList.d.ts.map +1 -1
  8. package/dist/react/components/MessageList.js +10 -8
  9. package/dist/react/components/MessageList.js.map +1 -1
  10. package/dist/react/features/chat-pane/components/AgentRuntimePicker.d.ts.map +1 -1
  11. package/dist/react/features/chat-pane/components/AgentRuntimePicker.js +1 -1
  12. package/dist/react/features/chat-pane/components/AgentRuntimePicker.js.map +1 -1
  13. package/dist/react/features/chat-pane/components/ChatPane.d.ts +1 -1
  14. package/dist/react/features/chat-pane/components/ChatPane.d.ts.map +1 -1
  15. package/dist/react/features/chat-pane/components/ChatPane.js +87 -12
  16. package/dist/react/features/chat-pane/components/ChatPane.js.map +1 -1
  17. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.d.ts +15 -0
  18. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.d.ts.map +1 -1
  19. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js +46 -5
  20. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js.map +1 -1
  21. package/dist/react/features/chat-pane/rules.d.ts +14 -0
  22. package/dist/react/features/chat-pane/rules.d.ts.map +1 -1
  23. package/dist/react/features/chat-pane/rules.js +16 -0
  24. package/dist/react/features/chat-pane/rules.js.map +1 -1
  25. package/dist/react/features/chat-pane/styles.d.ts +1 -1
  26. package/dist/react/features/chat-pane/styles.d.ts.map +1 -1
  27. package/dist/react/features/chat-pane/styles.js +144 -0
  28. package/dist/react/features/chat-pane/styles.js.map +1 -1
  29. package/dist/react/features/chat-pane/types.d.ts +25 -0
  30. package/dist/react/features/chat-pane/types.d.ts.map +1 -1
  31. package/dist/react/styles/reference.css +15 -0
  32. package/package.json +4 -4
@@ -42,18 +42,52 @@ function ChatPaneSuggestionsRow({ suggestions, onSelect, t }) {
42
42
  return null;
43
43
  return (_jsx("div", { className: "jini-chat-pane__suggestions", "aria-label": t('Example prompts'), children: suggestions.map((suggestion) => (_jsx("button", { type: "button", className: "jini-chat-pane__suggestion", onClick: () => onSelect(suggestion), children: suggestion }, suggestion))) }));
44
44
  }
45
+ /**
46
+ * The `unavailable` banner's copy and, where reachable, its actual fix — distinguishing three
47
+ * CLI-less states so a pointer at BYOK is never shown as an option that would not actually help:
48
+ *
49
+ * - `executionMode === 'local'` with BYOK available: switching mode is a real fix. When the host
50
+ * wired `onExecutionModeChange` (the same callback the runtime picker's own mode buttons already
51
+ * call — see `AgentRuntimePicker.tsx`), this renders as a button that performs the switch
52
+ * directly rather than prose telling the operator to go hunting for the control themselves. A
53
+ * host that reports `apiModeAvailable` without wiring the callback still gets an honest, if
54
+ * inert, pointer as plain copy.
55
+ * - `executionMode === 'local'` with BYOK NOT available: switching would not help — offering it
56
+ * anyway would be a lie — so this falls back to the original, unconditional message.
57
+ * - `executionMode === 'api'` already: the operator is already on the one path that could work,
58
+ * so a "switch to BYOK" pointer would be nonsensical here; whatever is still missing (e.g. no
59
+ * model chosen) is `RuntimeByokDetails`' own job to explain inside the runtime picker, not this
60
+ * banner's.
61
+ */
62
+ function ChatPaneNoUsableCliMessage({ executionMode, apiModeAvailable, onExecutionModeChange, t, }) {
63
+ const byokIsARealFix = executionMode === 'local' && apiModeAvailable;
64
+ if (!byokIsARealFix) {
65
+ return _jsx("div", { className: "jini-chat-pane__error", role: "alert", children: t('No usable CLI is selected.') });
66
+ }
67
+ if (!onExecutionModeChange) {
68
+ return (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: t('No usable CLI is selected — switch to BYOK to use your own API key.') }));
69
+ }
70
+ return (_jsxs("div", { className: "jini-chat-pane__error", role: "alert", children: [t('No usable CLI is selected.'), ' ', _jsx("button", { type: "button", className: "jini-chat-pane__error-action", onClick: () => onExecutionModeChange('api'), children: t('Switch to BYOK') })] }));
71
+ }
45
72
  /** The pane's stack of mutually-independent error/status banners — each condition is its own
46
73
  * source of truth, so they are rendered as siblings rather than folded into one derived state. */
47
- function ChatPaneStatusMessages({ unavailable, scanningAgents, conversationError, attachmentError, dropReadError, workingDirectoryError, workingDirectoryPending, workingDirectoryInvalid, runtimeInventoryError, t, }) {
48
- return (_jsxs(_Fragment, { children: [unavailable && scanningAgents ? (_jsx("div", { className: "jini-chat-pane__status", role: "status", children: t('Loading available CLIs') })) : unavailable ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: t('No usable CLI is selected.') })) : null, conversationError ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: conversationError.message })) : null, attachmentError ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: attachmentError.message })) : null, dropReadError ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: dropReadError })) : null, workingDirectoryError ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: workingDirectoryError.message })) : null, workingDirectoryPending ? (_jsx("div", { className: "jini-chat-pane__status", role: "status", children: t('Checking working directory…') })) : workingDirectoryInvalid ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: t('Working directory is unavailable.') })) : null, runtimeInventoryError ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: runtimeInventoryError.message })) : null] }));
74
+ function ChatPaneStatusMessages({ unavailable, scanningAgents, executionMode, apiModeAvailable, onExecutionModeChange, conversationError, attachmentError, dropReadError, workingDirectoryError, workingDirectoryPending, workingDirectoryInvalid, runtimeInventoryError, t, }) {
75
+ return (_jsxs(_Fragment, { children: [unavailable && scanningAgents ? (_jsx("div", { className: "jini-chat-pane__status", role: "status", children: t('Loading available CLIs') })) : unavailable ? (_jsx(ChatPaneNoUsableCliMessage, { executionMode: executionMode, apiModeAvailable: apiModeAvailable, onExecutionModeChange: onExecutionModeChange, t: t })) : null, conversationError ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: conversationError.message })) : null, attachmentError ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: attachmentError.message })) : null, dropReadError ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: dropReadError })) : null, workingDirectoryError ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: workingDirectoryError.message })) : null, workingDirectoryPending ? (_jsx("div", { className: "jini-chat-pane__status", role: "status", children: t('Checking working directory…') })) : workingDirectoryInvalid ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: t('Working directory is unavailable.') })) : null, runtimeInventoryError ? (_jsx("div", { className: "jini-chat-pane__error", role: "alert", children: runtimeInventoryError.message })) : null] }));
49
76
  }
50
- function ChatPaneWorkingDirectoryBlock({ workingDirectoryAccess, pane, t, }) {
51
- if (workingDirectoryAccess) {
77
+ function ChatPaneWorkingDirectoryBlock({ workingDirectoryAccess, workingDirectoryControlPlacement, pane, t, }) {
78
+ if (workingDirectoryAccess && workingDirectoryControlPlacement === 'below') {
52
79
  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') } }) }));
53
80
  }
54
- if (pane.workingDirectory) {
55
- return (_jsxs("div", { className: "jini-chat-pane__workdir", children: [_jsx("strong", { children: t('Working directory') }), _jsx("code", { children: pane.workingDirectory })] }));
56
- }
81
+ // Two cases render nothing here, for different reasons:
82
+ // - No native `workingDirectoryAccess`: the static text line this replaced is gone entirely —
83
+ // see `ChatPaneComposerArea` below, which threads `pane.workingDirectory` and
84
+ // `pane.selectRecentDirectory` into `Composer`'s own folder-icon (popover) trigger instead.
85
+ // - `workingDirectoryAccess` present but `workingDirectoryControlPlacement === 'composer'`: the
86
+ // host asked for the control next to "+" instead — `resolveComposerWorkingDirectory` wires
87
+ // `Composer`'s trigger straight to `pane.pickWorkingDirectory` in that case, so rendering this
88
+ // block too would put up a second, competing control below the composer.
89
+ // Either way, the trigger this defers to already covers both "nothing set yet" and "a value is
90
+ // set", so this block has nothing left to render.
57
91
  return null;
58
92
  }
59
93
  /** `uploadAttachments === undefined` gates BOTH of these — a temporarily-disabled composer still
@@ -75,13 +109,54 @@ function resolveComposerAttachmentPicker(uploadAttachments, pane, attachmentAcce
75
109
  }),
76
110
  };
77
111
  }
112
+ /**
113
+ * Resolves which of `Composer`'s two mutually-exclusive working-directory props (if either) this
114
+ * render should supply, mirroring `ChatPaneWorkingDirectoryBlock`'s own three-way branch above so
115
+ * the two never disagree about which control owns the composer's folder-icon slot:
116
+ *
117
+ * - No `workingDirectoryAccess`: the composer's lightweight text-input popover, via
118
+ * `onChangeWorkingDirectory`. `pane.selectRecentDirectory` is reused as the plain setter here
119
+ * rather than inventing one — `useChatPaneWorkingDirectory`'s own doc confirms it already writes
120
+ * the value directly (no native validation) whenever `access` is absent, which is exactly this
121
+ * case.
122
+ * - `workingDirectoryAccess` present and `workingDirectoryControlPlacement === 'composer'`: the
123
+ * SAME folder-icon trigger, but wired to `onPickWorkingDirectory` instead — clicking it invokes
124
+ * the native OS dialog (`pane.pickWorkingDirectory`) directly, with no popover in between.
125
+ * - `workingDirectoryAccess` present and placement is (default) `'below'`: neither prop — the
126
+ * composer renders no folder icon at all, and `ChatPaneWorkingDirectoryBlock` renders the richer
127
+ * `WorkingDirPicker` below instead, unchanged from every host's prior behavior.
128
+ */
129
+ function resolveComposerWorkingDirectory(workingDirectoryAccess, workingDirectoryControlPlacement, pane) {
130
+ if (!workingDirectoryAccess) {
131
+ return {
132
+ workingDirectory: pane.workingDirectory,
133
+ onChangeWorkingDirectory: (directory) => void pane.selectRecentDirectory(directory),
134
+ };
135
+ }
136
+ if (workingDirectoryControlPlacement === 'composer') {
137
+ return {
138
+ workingDirectory: pane.workingDirectory,
139
+ onPickWorkingDirectory: () => void pane.pickWorkingDirectory(),
140
+ };
141
+ }
142
+ return {};
143
+ }
78
144
  /** The drop target, composer, and working-directory block — everything below the status banners
79
145
  * that reads/writes the live pane. Cancelling an in-flight run is not a separate control here: it
80
146
  * lives in the composer's own trailing button, which swaps from send to stop while streaming (see
81
147
  * `Composer`'s `running`/`onCancel` props) — the same control an operator's attention is already
82
- * on, rather than a second affordance elsewhere in the pane they'd have to go find. */
83
- function ChatPaneComposerArea({ fileDrop, uploadAttachments, pane, disabled, unavailable, placeholder, slots, attachmentAccept, workingDirectoryAccess, t, }) {
84
- return (_jsxs("div", { className: `jini-chat-pane__drop-target${fileDrop.draggingFiles ? ' is-dragging-files' : ''}`, "data-testid": "chat-pane-file-drop-target", "data-dragging-files": fileDrop.draggingFiles ? 'true' : 'false', ...resolveDropTargetProps(uploadAttachments, fileDrop), children: [fileDrop.draggingFiles ? (_jsx("span", { className: "jini-chat-pane__drop-announcement", role: "status", children: t('Drop files to attach') })) : null, _jsx(Composer, { composer: pane.composer, onSend: () => void pane.send(), disabled: disabled || unavailable || pane.conversation.isStreaming, sendDisabled: !pane.canSend, running: pane.conversation.isStreaming, onCancel: pane.conversation.cancel, ...definedProps({ placeholder }), slots: slots, ...resolveComposerAttachmentPicker(uploadAttachments, pane, attachmentAccept) }), _jsx(ChatPaneWorkingDirectoryBlock, { workingDirectoryAccess: workingDirectoryAccess, pane: pane, t: t })] }));
148
+ * on, rather than a second affordance elsewhere in the pane they'd have to go find.
149
+ *
150
+ * The pending-turn strip previously lived here (a banner bolted above the composer). It now
151
+ * renders inside `<MessageList>` itself, as the newest transcript entry — see that component's
152
+ * `pendingPrompt` prop and this component's own call site below. */
153
+ function ChatPaneComposerArea({ fileDrop, uploadAttachments, pane, disabled, unavailable, placeholder, slots, attachmentAccept, workingDirectoryAccess, workingDirectoryControlPlacement, t, }) {
154
+ return (_jsxs("div", { className: `jini-chat-pane__drop-target${fileDrop.draggingFiles ? ' is-dragging-files' : ''}`, "data-testid": "chat-pane-file-drop-target", "data-dragging-files": fileDrop.draggingFiles ? 'true' : 'false', ...resolveDropTargetProps(uploadAttachments, fileDrop), children: [fileDrop.draggingFiles ? (_jsx("span", { className: "jini-chat-pane__drop-announcement", role: "status", children: t('Drop files to attach') })) : null, _jsx(Composer, { composer: pane.composer, onSend: () => void pane.send(),
155
+ // Streaming no longer locks the textarea: `pane.send()` queues a turn typed during a run
156
+ // rather than refusing it, so the operator can keep writing while the agent thinks.
157
+ disabled: disabled || unavailable,
158
+ // The one blocker `send()` handles itself. Every other refusal still greys out the button.
159
+ sendDisabled: !pane.canSend && pane.sendBlocker !== 'streaming', running: pane.conversation.isStreaming, onCancel: pane.conversation.cancel, onInterrupt: pane.interruptSend, ...definedProps({ placeholder }), slots: slots, ...resolveComposerAttachmentPicker(uploadAttachments, pane, attachmentAccept), ...resolveComposerWorkingDirectory(workingDirectoryAccess, workingDirectoryControlPlacement, pane) }), _jsx(ChatPaneWorkingDirectoryBlock, { workingDirectoryAccess: workingDirectoryAccess, workingDirectoryControlPlacement: workingDirectoryControlPlacement, pane: pane, t: t })] }));
85
160
  }
86
161
  /**
87
162
  * Renders the self-contained chat-pane composition, including runtime and
@@ -90,7 +165,7 @@ function ChatPaneComposerArea({ fileDrop, uploadAttachments, pane, disabled, una
90
165
  * @complexity Time/space: O(n) in rendered messages, agents, and suggestions.
91
166
  * @overallScore 100/100
92
167
  */
93
- 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, projectFileNames, uploadAttachments, attachmentAccept, disabled = false, runtimePickerPlacement = 'up', composerSlots, header, leadingAccessory, footer, className, style, }) {
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, }) {
94
169
  const t = useT();
95
170
  const inventory = useChatPaneRuntimeInventory(definedProps({
96
171
  access: runtimeAccess,
@@ -171,6 +246,6 @@ export function ChatPane({ transport, agents: injectedAgents = EMPTY_AGENTS, run
171
246
  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 }) })),
172
247
  });
173
248
  const { rootRef, controlsRef } = useChatPaneControlsHeight();
174
- 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, ...(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, 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: placeholder, slots: slots, attachmentAccept: attachmentAccept, workingDirectoryAccess: workingDirectoryAccess, t: t })] })] }), footer] }));
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: placeholder, slots: slots, attachmentAccept: attachmentAccept, workingDirectoryAccess: workingDirectoryAccess, workingDirectoryControlPlacement: workingDirectoryControlPlacement, t: t })] })] }), footer] }));
175
250
  }
176
251
  //# 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":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAQ9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,WAAW,EAA0B,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EACL,mBAAmB,GAGpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,2BAA2B,GAE5B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,YAAY,GAAyC,EAAE,CAAC;AAE9D,SAAS,aAAa,CACpB,KAAyB,EACzB,OAAmB,EACnB,CAA0B;IAE1B,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAM,SAAS,EAAC,yBAAyB,YAAE,CAAC,CAAC,gBAAgB,CAAC,GAAQ,EACtE,aAAI,SAAS,EAAC,uBAAuB,YAAE,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,GAAM,IAC3D,EACN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,4BAA4B,EAAC,OAAO,EAAE,OAAO,YAC1E,CAAC,CAAC,YAAY,CAAC,GACT,IACL,CACP,CAAC;AACJ,CAAC;AAED;wDACwD;AACxD,SAAS,qBAAqB,CAC5B,MAA6B,EAC7B,KAAyB,EACzB,OAAmB,EACnB,CAA0B;IAE1B,OAAO,MAAM,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAwB,EAAE,SAA6B;IAChF,OAAO,kCAAkC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACxF,CAAC;AAWD,SAAS,wBAAwB,CAC/B,aAAgD,EAChD,cAAwC,EACxC,cAAuB,EACvB,YAAqB,EACrB,cAAwC,EACxC,SAA4C;IAE5C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;IAChG,CAAC;IACD,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC,YAAY,EAAE;KAClD,CAAC;AACJ,CAAC;AAQD,SAAS,sBAAsB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAA+B;IACvF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,CACL,cAAK,SAAS,EAAC,6BAA6B,gBAAa,CAAC,CAAC,iBAAiB,CAAC,YAC1E,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAC/B,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,4BAA4B,EAEtC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,YAElC,UAAU,IAHN,UAAU,CAIR,CACV,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,0BAA0B,CAAC,EAClC,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,CAAC,GAMF;IACC,MAAM,cAAc,GAAG,aAAa,KAAK,OAAO,IAAI,gBAAgB,CAAC;IACrE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,cAAK,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,YAAE,CAAC,CAAC,4BAA4B,CAAC,GAAO,CAAC;IACrG,CAAC;IACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,OAAO,CACL,cAAK,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,YAChD,CAAC,CAAC,qEAAqE,CAAC,GACrE,CACP,CAAC;IACJ,CAAC;IACD,OAAO,CACL,eAAK,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,aAChD,CAAC,CAAC,4BAA4B,CAAC,EAAE,GAAG,EACrC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8BAA8B,EACxC,OAAO,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,YAE1C,CAAC,CAAC,gBAAgB,CAAC,GACb,IACL,CACP,CAAC;AACJ,CAAC;AAkBD;kGACkG;AAClG,SAAS,sBAAsB,CAAC,EAC9B,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,CAAC,GAC2B;IAC5B,OAAO,CACL,8BAMG,WAAW,IAAI,cAAc,CAAC,CAAC,CAAC,CAC/B,cAAK,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAC,QAAQ,YAClD,CAAC,CAAC,wBAAwB,CAAC,GACxB,CACP,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAChB,KAAC,0BAA0B,IACzB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,CAAC,EAAE,CAAC,GACJ,CACH,CAAC,CAAC,CAAC,IAAI,EACP,iBAAiB,CAAC,CAAC,CAAC,CACnB,cAAK,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,YAAE,iBAAiB,CAAC,OAAO,GAAO,CACtF,CAAC,CAAC,CAAC,IAAI,EACP,eAAe,CAAC,CAAC,CAAC,CACjB,cAAK,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,YAAE,eAAe,CAAC,OAAO,GAAO,CACpF,CAAC,CAAC,CAAC,IAAI,EACP,aAAa,CAAC,CAAC,CAAC,CACf,cAAK,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,YAAE,aAAa,GAAO,CAC1E,CAAC,CAAC,CAAC,IAAI,EACP,qBAAqB,CAAC,CAAC,CAAC,CACvB,cAAK,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,YAAE,qBAAqB,CAAC,OAAO,GAAO,CAC1F,CAAC,CAAC,CAAC,IAAI,EACP,uBAAuB,CAAC,CAAC,CAAC,CACzB,cAAK,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAC,QAAQ,YAClD,CAAC,CAAC,6BAA6B,CAAC,GAC7B,CACP,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAC5B,cAAK,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,YAChD,CAAC,CAAC,mCAAmC,CAAC,GACnC,CACP,CAAC,CAAC,CAAC,IAAI,EACP,qBAAqB,CAAC,CAAC,CAAC,CACvB,cAAK,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,OAAO,YAChD,qBAAqB,CAAC,OAAO,GAC1B,CACP,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;AACJ,CAAC;AASD,SAAS,6BAA6B,CAAC,EACrC,sBAAsB,EACtB,gCAAgC,EAChC,IAAI,EACJ,CAAC,GACkC;IACnC,IAAI,sBAAsB,IAAI,gCAAgC,KAAK,OAAO,EAAE,CAAC;QAC3E,OAAO,CACL,cAAK,SAAS,EAAC,yBAAyB,YACtC,KAAC,gBAAgB,IACf,UAAU,EAAE,IAAI,CAAC,gBAAgB,EACjC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,EACvC,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE,EACvD,cAAc,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EACzE,SAAS,EAAC,IAAI,EACd,OAAO,EAAE,IAAI,CAAC,qBAAqB,EACnC,OAAO,EAAE,IAAI,CAAC,uBAAuB,EACrC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,0BAA0B,EAAE,EACpD,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,0BAA0B,CAAC,EAAE,GAClD,GACE,CACP,CAAC;IACJ,CAAC;IACD,wDAAwD;IACxD,8FAA8F;IAC9F,gFAAgF;IAChF,8FAA8F;IAC9F,gGAAgG;IAChG,6FAA6F;IAC7F,iGAAiG;IACjG,2EAA2E;IAC3E,+FAA+F;IAC/F,kDAAkD;IAClD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;sCAIsC;AACtC,SAAS,sBAAsB,CAC7B,iBAAqD,EACrD,QAAmC;IAEnC,OAAO,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;AACrE,CAAC;AAED,SAAS,+BAA+B,CACtC,iBAAqD,EACrD,IAAuB,EACvB,gBAAmD;IAEnD,IAAI,iBAAiB,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC/C,OAAO;QACL,gBAAgB,EAAE,YAAY,CAAC;YAC7B,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,SAAS,EAAE,IAAI,CAAC,sBAAsB;YACtC,MAAM,EAAE,gBAAgB;SACzB,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,+BAA+B,CACtC,sBAAkE,EAClE,gCAAsD,EACtD,IAAuB;IAMvB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,wBAAwB,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;SAC5F,CAAC;IACJ,CAAC;IACD,IAAI,gCAAgC,KAAK,UAAU,EAAE,CAAC;QACpD,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,sBAAsB,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE;SAC/D,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAgBD;;;;;;;;oEAQoE;AACpE,SAAS,oBAAoB,CAAC,EAC5B,QAAQ,EACR,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gCAAgC,EAChC,CAAC,GACyB;IAC1B,OAAO,CACL,eACE,SAAS,EAAE,8BAA8B,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,iBACjF,4BAA4B,yBACnB,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAC1D,sBAAsB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,aAEtD,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CACxB,eAAM,SAAS,EAAC,mCAAmC,EAAC,IAAI,EAAC,QAAQ,YAC9D,CAAC,CAAC,sBAAsB,CAAC,GACrB,CACR,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,QAAQ,IACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC9B,yFAAyF;gBACzF,oFAAoF;gBACpF,QAAQ,EAAE,QAAQ,IAAI,WAAW;gBACjC,2FAA2F;gBAC3F,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,EAC/D,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EACtC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAClC,WAAW,EAAE,IAAI,CAAC,aAAa,KAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,EACjC,KAAK,EAAE,KAAK,KACR,+BAA+B,CAAC,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAC1E,+BAA+B,CAAC,sBAAsB,EAAE,gCAAgC,EAAE,IAAI,CAAC,GACnG,EACF,KAAC,6BAA6B,IAC5B,sBAAsB,EAAE,sBAAsB,EAC9C,gCAAgC,EAAE,gCAAgC,EAClE,IAAI,EAAE,IAAI,EACV,CAAC,EAAE,CAAC,GACJ,IACE,CACP,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,SAAS,EACT,MAAM,EAAE,cAAc,GAAG,YAAY,EACrC,aAAa,EACb,mBAAmB,GAAG,KAAK,EAC3B,KAAK,EACL,OAAO,GAAG,WAAW,EACrB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,GAAG,KAAK,EACtB,YAAY,GAAG,IAAI,EACnB,aAAa,GAAG,OAAO,EACvB,gBAAgB,GAAG,KAAK,EACxB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,GAAG,EAAE,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,gCAAgC,GAAG,OAAO,EAC1C,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,GAAG,KAAK,EAChB,sBAAsB,GAAG,IAAI,EAC7B,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,KAAK,GACS;IACd,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,SAAS,GAAG,2BAA2B,CAAC,YAAY,CAAC;QACzD,MAAM,EAAE,aAAa;QACrB,aAAa,EAAE,cAAc;QAC7B,cAAc,EAAE,mBAAmB;KACpC,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,GAAG,wBAAwB,CAC1C,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,SAAS,CACV,CAAC;IACF,wFAAwF;IACxF,sFAAsF;IACtF,qEAAqE;IACrE,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,CAAC;IACxG,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,CAAC;QACpC,SAAS;QACT,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,eAAe;QACf,cAAc;QACd,gBAAgB;QAChB,SAAS,EAAE,mBAAmB;QAC9B,iBAAiB;QACjB,UAAU;QACV,YAAY;QACZ,iBAAiB;QACjB,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,uBAAuB;QACvB,wBAAwB;QACxB,sBAAsB;QACtB,iBAAiB;KAClB,CAAC,CAAC,CAAC;IACJ,8FAA8F;IAC9F,iGAAiG;IACjG,gGAAgG;IAChG,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC/C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,cAAc;YAAE,OAAO;QAC5B,cAAc,CAAC,OAAO,GAAG;YACvB,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAClF,CAAC;SACF,CAAC;QACF,OAAO,GAAG,EAAE;YACV,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC;QACF,+FAA+F;QAC/F,6FAA6F;QAC7F,uFAAuF;QACvF,iFAAiF;IACnF,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpC,iGAAiG;IACjG,8FAA8F;IAC9F,mFAAmF;IACnF,uBAAuB,CAAC,IAAI,EAAE,YAAY,CAAC;QACzC,OAAO,EAAE,YAAY,EAAE,OAAO,IAAI,KAAK;QACvC,YAAY,EAAE,YAAY,EAAE,YAAY;KACzC,CAAC,CAAC,CAAC;IACJ,+FAA+F;IAC/F,iGAAiG;IACjG,uEAAuE;IACvE,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC;IAC3E,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,OAAO,EAAE,iBAAiB,KAAK,SAAS;eACnC,CAAC,QAAQ;eACT,CAAC,WAAW;eACZ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW;eAC9B,CAAC,IAAI,CAAC,sBAAsB;QACjC,OAAO,EAAE,IAAI,CAAC,cAAc;KAC7B,CAAC,CAAC;IACH,yFAAyF;IACzF,+FAA+F;IAC/F,6DAA6D;IAC7D,MAAM,KAAK,GAAkB,YAAY,CAAC;QACxC,GAAG,aAAa;QAChB,kBAAkB,EAAE,gBAAgB;QACpC,iBAAiB,EAAE,CACjB,KAAC,kBAAkB,IACjB,MAAM,EAAE,WAAW,CAAC,MAAM,EAC1B,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,QAAQ,EAAE,IAAI,CAAC,YAAY,KACvB,YAAY,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,EACxD,QAAQ,EAAE,WAAW,CAAC,cAAc,EACpC,YAAY,EAAE,WAAW,CAAC,YAAY,EACtC,SAAS,EAAE,sBAAsB,EACjC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,KAC9B,YAAY,CAAC,EAAE,qBAAqB,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,GAC3E,CACH;KACF,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,yBAAyB,EAAE,CAAC;IAE7D,OAAO,CACL,mBACE,SAAS,EAAE,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,EAChD,KAAK,EAAE,KAAK,mBACG,IAAI,CAAC,QAAQ,EAC5B,GAAG,EAAE,OAAO,aAEZ,8CAAkC,MAAM,YAAE,gBAAgB,GAAS,EAClE,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EACpD,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,WAAW,IACV,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EACpC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EAC1C,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,EAC5C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAC/C,aAAa,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,KACvG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAC3F,EACF,eAAK,SAAS,EAAC,0BAA0B,EAAC,GAAG,EAAE,WAAW,aACxD,KAAC,sBAAsB,IAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAI,EAC5F,KAAC,sBAAsB,IACrB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,WAAW,CAAC,cAAc,EAC1C,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAC1C,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,aAAa,EAAE,QAAQ,CAAC,aAAa,EACrC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EACjD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EACrD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EACrD,qBAAqB,EAAE,SAAS,CAAC,qBAAqB,EACtD,CAAC,EAAE,CAAC,GACJ,EACF,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,sBAAsB,EAAE,sBAAsB,EAC9C,gCAAgC,EAAE,gCAAgC,EAClE,CAAC,EAAE,CAAC,GACJ,IACE,IACF,EACL,MAAM,IACC,CACX,CAAC;AACJ,CAAC"}
@@ -66,6 +66,21 @@ export interface UseChatPaneResult extends UseChatPaneWorkingDirectoryResult {
66
66
  * silent no-op.
67
67
  */
68
68
  sendPrompt: (prompt: string) => Promise<void>;
69
+ /**
70
+ * The prompt waiting for the in-flight run to finish, or `null` when nothing is queued. Exposed
71
+ * so the pane can SHOW it — a queued turn that is invisible is indistinguishable from one that
72
+ * was silently swallowed.
73
+ */
74
+ queuedPrompt: string | null;
75
+ /** Drops the queued prompt without ever sending it. */
76
+ cancelQueued: () => void;
77
+ /**
78
+ * Cancels the run in flight and sends the composer draft as soon as it stops — the modifier-key
79
+ * counterpart to {@link send}, which queues behind the run instead of ending it. Implemented as
80
+ * queue-then-cancel rather than cancel-then-send so both paths share one flush, and so a cancel
81
+ * that never lands cannot strand the prompt.
82
+ */
83
+ interruptSend: () => void;
69
84
  reset: () => void;
70
85
  }
71
86
  export declare function useChatPane(options: UseChatPaneOptions): UseChatPaneResult;
@@ -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,EAIL,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;AAExD,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,wCAAwC,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,aAAa,CAAC;IACzB,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IACjC,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,CAAC,EAAE,+BAA+B,KACtC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IACrD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,wBAAwB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACrE,sBAAsB,CAAC,EAAE,8BAA8B,CAAC;IACxD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAkB,SAAQ,iCAAiC;IAC1E,YAAY,EAAE,qBAAqB,CAAC;IACpC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,sBAAsB,CAAC;IAClC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC;;;;;;;;OAQG;IACH,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IACjC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxC,sBAAsB,EAAE,OAAO,CAAC;IAChC,eAAe,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;;;;;;OAQG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AA+CD,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CAmM1E"}
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,9 +1,18 @@
1
1
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
- import { describeChatPaneSendBlocker, findChatPaneSendBlocker, resolveChatPaneSelection, } from '../rules.js';
2
+ import { describeChatPaneSendBlocker, findChatPaneSendBlocker, isChatPaneQueueableBlocker, resolveChatPaneSelection, } from '../rules.js';
3
3
  import { definedProps } from '../../../util/defined-props.js';
4
4
  import { useComposer } from '../../../hooks/useComposer.js';
5
5
  import { useConversation, } from '../../../hooks/useConversation.js';
6
6
  import { useChatPaneWorkingDirectory, } from './useChatPaneWorkingDirectory.hooks.js';
7
+ /**
8
+ * The prompt a composer-driven send would carry: the trimmed draft, or a stand-in when only
9
+ * attachments are staged. Module scope so `send()` and `interruptSend()` cannot drift apart on
10
+ * what counts as sendable.
11
+ */
12
+ function composerPrompt(composer) {
13
+ return composer.draft.trim()
14
+ || (composer.attachments.length > 0 ? 'Review the attached file(s).' : '');
15
+ }
7
16
  function createAttachmentBatchId() {
8
17
  return globalThis.crypto?.randomUUID?.()
9
18
  ?? `chat-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
@@ -43,6 +52,7 @@ async function uploadAttachmentBatch(files, effects) {
43
52
  export function useChatPane(options) {
44
53
  const [activeUploadCount, setActiveUploadCount] = useState(0);
45
54
  const [attachmentError, setAttachmentError] = useState(null);
55
+ const [queuedPrompt, setQueuedPrompt] = useState(null);
46
56
  const mountedRef = useRef(true);
47
57
  const attachmentGenerationRef = useRef(0);
48
58
  const attachmentBatchIdRef = useRef(createAttachmentBatchId());
@@ -189,12 +199,40 @@ export function useChatPane(options) {
189
199
  workingDirectoryState.workingDirectory,
190
200
  ]);
191
201
  const send = useCallback(async () => {
192
- const prompt = composer.draft.trim()
193
- || (composer.attachments.length > 0 ? 'Review the attached file(s).' : '');
194
- if (!prompt || !canSend)
202
+ const prompt = composerPrompt(composer);
203
+ if (!prompt)
204
+ return;
205
+ // Queue instead of no-op'ing. `setDraft('')` and NOT `composer.reset()`: reset also discards
206
+ // staged attachments, which this turn still needs when it finally goes out.
207
+ if (isChatPaneQueueableBlocker(sendBlocker)) {
208
+ setQueuedPrompt(prompt);
209
+ composer.setDraft('');
210
+ return;
211
+ }
212
+ if (!canSend)
195
213
  return;
196
214
  await sendPrompt(prompt);
197
- }, [canSend, composer, sendPrompt]);
215
+ }, [canSend, composer, sendBlocker, sendPrompt]);
216
+ const interruptSend = useCallback(() => {
217
+ const prompt = composerPrompt(composer);
218
+ if (!prompt)
219
+ return;
220
+ setQueuedPrompt(prompt);
221
+ composer.setDraft('');
222
+ conversation.cancel();
223
+ }, [composer, conversation]);
224
+ const cancelQueued = useCallback(() => {
225
+ setQueuedPrompt(null);
226
+ }, []);
227
+ // Flush on a FULLY clear blocker, not merely on streaming ending — see
228
+ // `isChatPaneQueueableBlocker`'s note about `findChatPaneSendBlocker`'s ordering. Clearing the
229
+ // queue slot BEFORE awaiting keeps a re-render from double-sending the same prompt.
230
+ useEffect(() => {
231
+ if (queuedPrompt === null || sendBlocker !== null)
232
+ return;
233
+ setQueuedPrompt(null);
234
+ void sendPrompt(queuedPrompt);
235
+ }, [queuedPrompt, sendBlocker, sendPrompt]);
198
236
  const reset = useCallback(() => {
199
237
  attachmentGenerationRef.current += 1;
200
238
  attachmentBatchIdRef.current = createAttachmentBatchId();
@@ -223,6 +261,9 @@ export function useChatPane(options) {
223
261
  addAttachments,
224
262
  send,
225
263
  sendPrompt,
264
+ queuedPrompt,
265
+ cancelQueued,
266
+ interruptSend,
226
267
  reset,
227
268
  };
228
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useChatPane.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPane.hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useChatPane.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPane.hooks.ts"],"names":[],"mappings":"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"}
@@ -50,5 +50,19 @@ export declare function isChatPaneApiModeConfigured({ executionMode, apiModeAvai
50
50
  export declare function findChatPaneSendBlocker(state: ChatPaneSendability): ChatPaneSendBlocker | null;
51
51
  /** Human/model-readable reason for a blocker, so a refused agent send explains itself. */
52
52
  export declare function describeChatPaneSendBlocker(blocker: ChatPaneSendBlocker): string;
53
+ /**
54
+ * Whether a refused send should be QUEUED and retried rather than dropped on the floor.
55
+ *
56
+ * Only `streaming` qualifies: it is the one blocker guaranteed to clear on its own, from a run
57
+ * that is already underway. Every other blocker needs an operator action — pick an agent, wait for
58
+ * uploads, fix the working directory — so queueing behind one would hold a prompt indefinitely
59
+ * against a condition nothing is going to change.
60
+ *
61
+ * Note the ordering dependency in {@link findChatPaneSendBlocker}: `streaming` is reported AHEAD of
62
+ * `uploads-pending` and the working-directory blockers, so a `streaming` verdict does not prove
63
+ * those are clear. A flush path must therefore wait for a fully `null` blocker before sending,
64
+ * not merely for streaming to end.
65
+ */
66
+ export declare function isChatPaneQueueableBlocker(blocker: ChatPaneSendBlocker | null): boolean;
53
67
  export declare function orderChatPaneAgents(agents: readonly ChatPaneAgent[]): ChatPaneAgent[];
54
68
  //# sourceMappingURL=rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAiB5F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,sBAAsB,CAQrF;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,SAAS,EAAE,sBAAsB,GAChC,sBAAsB,CAsBxB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAC3B,mBAAmB,GACnB,mBAAmB,GACnB,WAAW,GACX,iBAAiB,GACjB,2BAA2B,GAC3B,2BAA2B,GAC3B,yBAAyB,CAAC;AAE9B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,aAAa,EACb,gBAAgB,EAChB,WAAW,GACZ,EAAE;IACD,QAAQ,CAAC,aAAa,EAAE,OAAO,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACtD,GAAG,OAAO,CAEV;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,IAAI,CAY9F;AAYD,0FAA0F;AAC1F,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAEhF;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,aAAa,EAAE,GAC/B,aAAa,EAAE,CAOjB"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAiB5F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,sBAAsB,CAQrF;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,SAAS,EAAE,sBAAsB,GAChC,sBAAsB,CAsBxB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAC3B,mBAAmB,GACnB,mBAAmB,GACnB,WAAW,GACX,iBAAiB,GACjB,2BAA2B,GAC3B,2BAA2B,GAC3B,yBAAyB,CAAC;AAE9B,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,aAAa,EACb,gBAAgB,EAChB,WAAW,GACZ,EAAE;IACD,QAAQ,CAAC,aAAa,EAAE,OAAO,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACtD,GAAG,OAAO,CAEV;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,IAAI,CAY9F;AAYD,0FAA0F;AAC1F,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAEhF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,GAAG,OAAO,CAEvF;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,aAAa,EAAE,GAC/B,aAAa,EAAE,CAOjB"}
@@ -89,6 +89,22 @@ const SEND_BLOCKER_MESSAGES = {
89
89
  export function describeChatPaneSendBlocker(blocker) {
90
90
  return SEND_BLOCKER_MESSAGES[blocker];
91
91
  }
92
+ /**
93
+ * Whether a refused send should be QUEUED and retried rather than dropped on the floor.
94
+ *
95
+ * Only `streaming` qualifies: it is the one blocker guaranteed to clear on its own, from a run
96
+ * that is already underway. Every other blocker needs an operator action — pick an agent, wait for
97
+ * uploads, fix the working directory — so queueing behind one would hold a prompt indefinitely
98
+ * against a condition nothing is going to change.
99
+ *
100
+ * Note the ordering dependency in {@link findChatPaneSendBlocker}: `streaming` is reported AHEAD of
101
+ * `uploads-pending` and the working-directory blockers, so a `streaming` verdict does not prove
102
+ * those are clear. A flush path must therefore wait for a fully `null` blocker before sending,
103
+ * not merely for streaming to end.
104
+ */
105
+ export function isChatPaneQueueableBlocker(blocker) {
106
+ return blocker === 'streaming';
107
+ }
92
108
  export function orderChatPaneAgents(agents) {
93
109
  return [...agents].sort((left, right) => {
94
110
  const availability = Number(left.available === false) - Number(right.available === false);
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/rules.ts"],"names":[],"mappings":"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"}