@stack-spot/ai-chat-widget 0.6.0 → 0.7.0
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/StackspotAIWidget.d.ts.map +1 -1
- package/dist/StackspotAIWidget.js +3 -2
- package/dist/StackspotAIWidget.js.map +1 -1
- package/dist/features.d.ts +1 -1
- package/dist/features.d.ts.map +1 -1
- package/dist/features.js +1 -0
- package/dist/features.js.map +1 -1
- package/dist/state/ChatEntry.d.ts +1 -1
- package/dist/state/ChatEntry.d.ts.map +1 -1
- package/dist/state/ChatEntry.js +2 -2
- package/dist/state/ChatEntry.js.map +1 -1
- package/dist/state/ChatState.d.ts +12 -0
- package/dist/state/ChatState.d.ts.map +1 -1
- package/dist/state/ChatState.js.map +1 -1
- package/dist/state/WidgetState.d.ts +0 -4
- package/dist/state/WidgetState.d.ts.map +1 -1
- package/dist/state/WidgetState.js.map +1 -1
- package/dist/utils/chat.d.ts.map +1 -1
- package/dist/utils/chat.js +1 -2
- package/dist/utils/chat.js.map +1 -1
- package/dist/utils/programming-languages.d.ts +6 -0
- package/dist/utils/programming-languages.d.ts.map +1 -0
- package/dist/utils/programming-languages.js +463 -0
- package/dist/utils/programming-languages.js.map +1 -0
- package/dist/views/Agents.js +1 -3
- package/dist/views/Agents.js.map +1 -1
- package/dist/views/Chat/ChatMessage.d.ts.map +1 -1
- package/dist/views/Chat/ChatMessage.js +5 -3
- package/dist/views/Chat/ChatMessage.js.map +1 -1
- package/dist/views/Chat/styled.d.ts.map +1 -1
- package/dist/views/Chat/styled.js +8 -0
- package/dist/views/Chat/styled.js.map +1 -1
- package/dist/views/ChatHistory/HistoryItem.js +1 -1
- package/dist/views/ChatHistory/HistoryItem.js.map +1 -1
- package/dist/views/Editor.d.ts.map +1 -1
- package/dist/views/Editor.js +87 -1
- package/dist/views/Editor.js.map +1 -1
- package/dist/views/MessageInput/ButtonGroup.d.ts.map +1 -1
- package/dist/views/MessageInput/ButtonGroup.js +2 -2
- package/dist/views/MessageInput/ButtonGroup.js.map +1 -1
- package/dist/views/MessageInput/InfoBar.d.ts.map +1 -1
- package/dist/views/MessageInput/InfoBar.js +9 -2
- package/dist/views/MessageInput/InfoBar.js.map +1 -1
- package/dist/views/MessageInput/dictionary.d.ts +1 -1
- package/dist/views/MessageInput/dictionary.d.ts.map +1 -1
- package/dist/views/MessageInput/dictionary.js +4 -0
- package/dist/views/MessageInput/dictionary.js.map +1 -1
- package/dist/views/MessageInput/index.d.ts.map +1 -1
- package/dist/views/MessageInput/index.js +4 -1
- package/dist/views/MessageInput/index.js.map +1 -1
- package/package.json +3 -1
- package/src/StackspotAIWidget.tsx +3 -1
- package/src/chat-interceptors/send-message.ts +1 -1
- package/src/features.ts +2 -1
- package/src/state/ChatEntry.ts +2 -2
- package/src/state/ChatState.ts +12 -0
- package/src/state/WidgetState.ts +0 -4
- package/src/utils/chat.ts +1 -2
- package/src/utils/programming-languages.ts +462 -0
- package/src/views/Agents.tsx +1 -3
- package/src/views/Chat/ChatMessage.tsx +16 -7
- package/src/views/Chat/styled.ts +8 -0
- package/src/views/ChatHistory/HistoryItem.tsx +1 -1
- package/src/views/Editor.tsx +126 -1
- package/src/views/MessageInput/ButtonGroup.tsx +6 -1
- package/src/views/MessageInput/InfoBar.tsx +14 -1
- package/src/views/MessageInput/dictionary.ts +4 -0
- package/src/views/MessageInput/index.tsx +4 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Times, TimesMini } from '@citric/icons'
|
|
2
2
|
import { Badge, IconButton } from '@citric/ui'
|
|
3
|
+
import { loader } from '@monaco-editor/react'
|
|
3
4
|
import { ColorPaletteName, listToClass } from '@stack-spot/portal-theme'
|
|
4
5
|
import { useCallback, useMemo } from 'react'
|
|
5
6
|
import { FadingOverflow } from '../../components/FadingOverflow'
|
|
@@ -26,7 +27,8 @@ export const InfoBar = () => {
|
|
|
26
27
|
const currentStack = useCurrentChatState('stack')
|
|
27
28
|
const currentWorkspace = useCurrentChatState('workspace')
|
|
28
29
|
const currentKnowledgeSources = useCurrentChatState('knowledgeSources')
|
|
29
|
-
const
|
|
30
|
+
const currentSelection = useCurrentChatState('codeSelection')
|
|
31
|
+
const visible = !!(currentStack || currentWorkspace || currentKnowledgeSources?.length || currentSelection)
|
|
30
32
|
const ksToRender = useMemo(() => currentKnowledgeSources?.map(ks => {
|
|
31
33
|
const onDismiss = () => chat.set('knowledgeSources', currentKnowledgeSources.filter(({ id }) => id !== ks.id))
|
|
32
34
|
return <li key={ks.id}><InfoBadge label={ks.label} dismiss={t.removeKS} color="teal" onDismiss={onDismiss} /></li>
|
|
@@ -36,6 +38,12 @@ export const InfoBar = () => {
|
|
|
36
38
|
chat.set('knowledgeSources', [])
|
|
37
39
|
chat.set('stack', undefined)
|
|
38
40
|
chat.set('workspace', undefined)
|
|
41
|
+
removeCodeSelection()
|
|
42
|
+
}, [])
|
|
43
|
+
|
|
44
|
+
const removeCodeSelection = useCallback(() => {
|
|
45
|
+
const editor = loader.__getMonacoInstance()?.editor
|
|
46
|
+
editor?.getEditors()[0].setSelection({ startLineNumber: 0, endLineNumber: 0, endColumn: 0, startColumn: 0 })
|
|
39
47
|
}, [])
|
|
40
48
|
|
|
41
49
|
return (
|
|
@@ -45,6 +53,11 @@ export const InfoBar = () => {
|
|
|
45
53
|
<IconButton aria-label={t.removeConfig} title={t.removeConfig} onClick={removeAll}><Times /></IconButton>
|
|
46
54
|
<FadingOverflow className="list-overflow" scroll="arrows" enableHorizontalScrollWithVerticalWheel>
|
|
47
55
|
<ul>
|
|
56
|
+
{currentSelection && (
|
|
57
|
+
<li>
|
|
58
|
+
<InfoBadge label={t.selected} dismiss={t.removeSelection} color="blue" onDismiss={removeCodeSelection} />
|
|
59
|
+
</li>
|
|
60
|
+
)}
|
|
48
61
|
{currentStack && (
|
|
49
62
|
<li>
|
|
50
63
|
<InfoBadge label={currentStack.label} dismiss={t.removeStack} color="cyan" onDismiss={() => chat.set('stack', undefined)} />
|
|
@@ -15,6 +15,8 @@ const dictionary = {
|
|
|
15
15
|
removeStack: 'Stop using the current stack',
|
|
16
16
|
removeWorkspace: 'Stop using the current workspace',
|
|
17
17
|
removeKS: 'Stop using this knowledge source',
|
|
18
|
+
selected: 'Selected',
|
|
19
|
+
removeSelection: 'Remove current code selection',
|
|
18
20
|
},
|
|
19
21
|
pt: {
|
|
20
22
|
stack: 'Selecionar stack',
|
|
@@ -30,6 +32,8 @@ const dictionary = {
|
|
|
30
32
|
removeStack: 'Parar de usar a stack atual',
|
|
31
33
|
removeWorkspace: 'Parar de usar o workspace atual',
|
|
32
34
|
removeKS: 'Parar de usar este knowledge source',
|
|
35
|
+
selected: 'Selecionado',
|
|
36
|
+
removeSelection: 'Desfazer seleção de código',
|
|
33
37
|
},
|
|
34
38
|
} satisfies Dictionary
|
|
35
39
|
|
|
@@ -28,7 +28,10 @@ export const MessageInput = ({ features }: Props) => {
|
|
|
28
28
|
const onSend = useCallback(async () => {
|
|
29
29
|
const message = chat.get('nextMessage')
|
|
30
30
|
if (!message) return
|
|
31
|
-
chat.
|
|
31
|
+
const code = chat.get('codeSelection')
|
|
32
|
+
const language = chat.get('codeLanguage')
|
|
33
|
+
const prompt = code ? `${message}\n\`\`\`${language}\n${code}\n\`\`\`` : message
|
|
34
|
+
chat.pushMessage(ChatEntry.createUserEntry(prompt, true))
|
|
32
35
|
chat.set('nextMessage', '')
|
|
33
36
|
setFocused(false)
|
|
34
37
|
}, [chat])
|