@talk2view/sdk 0.14.0 → 0.16.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/README.md +336 -69
- package/dist/assistant-ui/convert.d.ts +40 -0
- package/dist/assistant-ui/convert.d.ts.map +1 -0
- package/dist/assistant-ui/convert.js +113 -0
- package/dist/assistant-ui/convert.js.map +1 -0
- package/dist/assistant-ui/dictation.d.ts +39 -0
- package/dist/assistant-ui/dictation.d.ts.map +1 -0
- package/dist/assistant-ui/dictation.js +128 -0
- package/dist/assistant-ui/dictation.js.map +1 -0
- package/dist/assistant-ui/index.d.ts +43 -0
- package/dist/assistant-ui/index.d.ts.map +1 -0
- package/dist/assistant-ui/index.js +227 -0
- package/dist/assistant-ui/index.js.map +1 -0
- package/dist/auth.d.ts +38 -3
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +101 -16
- package/dist/auth.js.map +1 -1
- package/dist/chat/auth-gate.d.ts +42 -0
- package/dist/chat/auth-gate.d.ts.map +1 -0
- package/dist/chat/auth-gate.js +93 -0
- package/dist/chat/auth-gate.js.map +1 -0
- package/dist/chat/chat.d.ts +36 -0
- package/dist/chat/chat.d.ts.map +1 -0
- package/dist/chat/chat.js +124 -0
- package/dist/chat/chat.js.map +1 -0
- package/dist/chat/composer-extras.d.ts +23 -0
- package/dist/chat/composer-extras.d.ts.map +1 -0
- package/dist/chat/composer-extras.js +48 -0
- package/dist/chat/composer-extras.js.map +1 -0
- package/dist/chat/hooks/use-attachment-src.d.ts +2 -0
- package/dist/chat/hooks/use-attachment-src.d.ts.map +1 -0
- package/dist/chat/hooks/use-attachment-src.js +38 -0
- package/dist/chat/hooks/use-attachment-src.js.map +1 -0
- package/dist/chat/hooks/use-copy-to-clipboard.d.ts +8 -0
- package/dist/chat/hooks/use-copy-to-clipboard.d.ts.map +1 -0
- package/dist/chat/hooks/use-copy-to-clipboard.js +16 -0
- package/dist/chat/hooks/use-copy-to-clipboard.js.map +1 -0
- package/dist/chat/index.d.ts +32 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +35 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/inject-styles.d.ts +2 -0
- package/dist/chat/inject-styles.d.ts.map +1 -0
- package/dist/chat/inject-styles.js +23 -0
- package/dist/chat/inject-styles.js.map +1 -0
- package/dist/chat/launcher.d.ts +37 -0
- package/dist/chat/launcher.d.ts.map +1 -0
- package/dist/chat/launcher.js +343 -0
- package/dist/chat/launcher.js.map +1 -0
- package/dist/chat/lib/cn.d.ts +19 -0
- package/dist/chat/lib/cn.d.ts.map +1 -0
- package/dist/chat/lib/cn.js +20 -0
- package/dist/chat/lib/cn.js.map +1 -0
- package/dist/chat/lib/dictation-phase.d.ts +9 -0
- package/dist/chat/lib/dictation-phase.d.ts.map +1 -0
- package/dist/chat/lib/dictation-phase.js +33 -0
- package/dist/chat/lib/dictation-phase.js.map +1 -0
- package/dist/chat/lib/guard.d.ts +4 -0
- package/dist/chat/lib/guard.d.ts.map +1 -0
- package/dist/chat/lib/guard.js +41 -0
- package/dist/chat/lib/guard.js.map +1 -0
- package/dist/chat/lib/launcher-variant.d.ts +33 -0
- package/dist/chat/lib/launcher-variant.d.ts.map +1 -0
- package/dist/chat/lib/launcher-variant.js +109 -0
- package/dist/chat/lib/launcher-variant.js.map +1 -0
- package/dist/chat/lib/portal-host.d.ts +13 -0
- package/dist/chat/lib/portal-host.d.ts.map +1 -0
- package/dist/chat/lib/portal-host.js +58 -0
- package/dist/chat/lib/portal-host.js.map +1 -0
- package/dist/chat/markdown.d.ts +32 -0
- package/dist/chat/markdown.d.ts.map +1 -0
- package/dist/chat/markdown.js +18 -0
- package/dist/chat/markdown.js.map +1 -0
- package/dist/chat/provider.d.ts +113 -0
- package/dist/chat/provider.d.ts.map +1 -0
- package/dist/chat/provider.js +176 -0
- package/dist/chat/provider.js.map +1 -0
- package/dist/chat/tool-fallback.d.ts +39 -0
- package/dist/chat/tool-fallback.d.ts.map +1 -0
- package/dist/chat/tool-fallback.js +167 -0
- package/dist/chat/tool-fallback.js.map +1 -0
- package/dist/chat/ui/avatar.d.ts +12 -0
- package/dist/chat/ui/avatar.d.ts.map +1 -0
- package/dist/chat/ui/avatar.js +24 -0
- package/dist/chat/ui/avatar.js.map +1 -0
- package/dist/chat/ui/button.d.ts +9 -0
- package/dist/chat/ui/button.d.ts.map +1 -0
- package/dist/chat/ui/button.js +35 -0
- package/dist/chat/ui/button.js.map +1 -0
- package/dist/chat/ui/collapsible.d.ts +6 -0
- package/dist/chat/ui/collapsible.d.ts.map +1 -0
- package/dist/chat/ui/collapsible.js +13 -0
- package/dist/chat/ui/collapsible.js.map +1 -0
- package/dist/chat/ui/dialog.d.ts +18 -0
- package/dist/chat/ui/dialog.d.ts.map +1 -0
- package/dist/chat/ui/dialog.js +42 -0
- package/dist/chat/ui/dialog.js.map +1 -0
- package/dist/chat/ui/input.d.ts +4 -0
- package/dist/chat/ui/input.d.ts.map +1 -0
- package/dist/chat/ui/input.js +8 -0
- package/dist/chat/ui/input.js.map +1 -0
- package/dist/chat/ui/skeleton.d.ts +3 -0
- package/dist/chat/ui/skeleton.d.ts.map +1 -0
- package/dist/chat/ui/skeleton.js +7 -0
- package/dist/chat/ui/skeleton.js.map +1 -0
- package/dist/chat/ui/textarea.d.ts +4 -0
- package/dist/chat/ui/textarea.d.ts.map +1 -0
- package/dist/chat/ui/textarea.js +7 -0
- package/dist/chat/ui/textarea.js.map +1 -0
- package/dist/chat/ui/tooltip.d.ts +7 -0
- package/dist/chat/ui/tooltip.d.ts.map +1 -0
- package/dist/chat/ui/tooltip.js +22 -0
- package/dist/chat/ui/tooltip.js.map +1 -0
- package/dist/chat/vendor/attachment.aui.d.ts +5 -0
- package/dist/chat/vendor/attachment.aui.d.ts.map +1 -0
- package/dist/chat/vendor/attachment.aui.js +79 -0
- package/dist/chat/vendor/attachment.aui.js.map +1 -0
- package/dist/chat/vendor/file.d.ts +41 -0
- package/dist/chat/vendor/file.d.ts.map +1 -0
- package/dist/chat/vendor/file.js +137 -0
- package/dist/chat/vendor/file.js.map +1 -0
- package/dist/chat/vendor/follow-up-suggestions.aui.d.ts +3 -0
- package/dist/chat/vendor/follow-up-suggestions.aui.d.ts.map +1 -0
- package/dist/chat/vendor/follow-up-suggestions.aui.js +45 -0
- package/dist/chat/vendor/follow-up-suggestions.aui.js.map +1 -0
- package/dist/chat/vendor/image.d.ts +47 -0
- package/dist/chat/vendor/image.d.ts.map +1 -0
- package/dist/chat/vendor/image.js +258 -0
- package/dist/chat/vendor/image.js.map +1 -0
- package/dist/chat/vendor/markdown-text.d.ts +8 -0
- package/dist/chat/vendor/markdown-text.d.ts.map +1 -0
- package/dist/chat/vendor/markdown-text.js +73 -0
- package/dist/chat/vendor/markdown-text.js.map +1 -0
- package/dist/chat/vendor/reasoning.aui.d.ts +22 -0
- package/dist/chat/vendor/reasoning.aui.d.ts.map +1 -0
- package/dist/chat/vendor/reasoning.aui.js +56 -0
- package/dist/chat/vendor/reasoning.aui.js.map +1 -0
- package/dist/chat/vendor/reasoning.d.ts +35 -0
- package/dist/chat/vendor/reasoning.d.ts.map +1 -0
- package/dist/chat/vendor/reasoning.js +112 -0
- package/dist/chat/vendor/reasoning.js.map +1 -0
- package/dist/chat/vendor/thread-list.aui.d.ts +37 -0
- package/dist/chat/vendor/thread-list.aui.d.ts.map +1 -0
- package/dist/chat/vendor/thread-list.aui.js +154 -0
- package/dist/chat/vendor/thread-list.aui.js.map +1 -0
- package/dist/chat/vendor/thread.aui.d.ts +47 -0
- package/dist/chat/vendor/thread.aui.d.ts.map +1 -0
- package/dist/chat/vendor/thread.aui.js +176 -0
- package/dist/chat/vendor/thread.aui.js.map +1 -0
- package/dist/chat/vendor/tool-fallback.aui.d.ts +39 -0
- package/dist/chat/vendor/tool-fallback.aui.d.ts.map +1 -0
- package/dist/chat/vendor/tool-fallback.aui.js +251 -0
- package/dist/chat/vendor/tool-fallback.aui.js.map +1 -0
- package/dist/chat/vendor/tool-group.aui.d.ts +34 -0
- package/dist/chat/vendor/tool-group.aui.d.ts.map +1 -0
- package/dist/chat/vendor/tool-group.aui.js +60 -0
- package/dist/chat/vendor/tool-group.aui.js.map +1 -0
- package/dist/chat/vendor/tooltip-icon-button.d.ts +8 -0
- package/dist/chat/vendor/tooltip-icon-button.d.ts.map +1 -0
- package/dist/chat/vendor/tooltip-icon-button.js +11 -0
- package/dist/chat/vendor/tooltip-icon-button.js.map +1 -0
- package/dist/chat/views/account.d.ts +6 -0
- package/dist/chat/views/account.d.ts.map +1 -0
- package/dist/chat/views/account.js +128 -0
- package/dist/chat/views/account.js.map +1 -0
- package/dist/chat/views/settings.d.ts +2 -0
- package/dist/chat/views/settings.d.ts.map +1 -0
- package/dist/chat/views/settings.js +104 -0
- package/dist/chat/views/settings.js.map +1 -0
- package/dist/chat/views/thread-list.d.ts +10 -0
- package/dist/chat/views/thread-list.d.ts.map +1 -0
- package/dist/chat/views/thread-list.js +21 -0
- package/dist/chat/views/thread-list.js.map +1 -0
- package/dist/chat/welcome.d.ts +10 -0
- package/dist/chat/welcome.d.ts.map +1 -0
- package/dist/chat/welcome.js +9 -0
- package/dist/chat/welcome.js.map +1 -0
- package/dist/chat-css.d.ts +1 -0
- package/dist/chat-css.js +1 -0
- package/dist/chat.css +2 -0
- package/dist/chat.isolated.css +3819 -0
- package/dist/chat.raw.css +3829 -0
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -4
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +5 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +28 -6
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +68 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +236 -35
- package/dist/index.js.map +1 -1
- package/dist/react/T2VProvider.d.ts +2 -2
- package/dist/react/T2VProvider.d.ts.map +1 -1
- package/dist/react/T2VProvider.js +1 -1
- package/dist/react/T2VProvider.js.map +1 -1
- package/dist/react/index.d.ts +14 -14
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +7 -7
- package/dist/react/index.js.map +1 -1
- package/dist/react/usePartnerConfig.d.ts +1 -1
- package/dist/react/usePartnerConfig.d.ts.map +1 -1
- package/dist/react/usePartnerConfig.js +1 -1
- package/dist/react/usePartnerConfig.js.map +1 -1
- package/dist/react/useT2VAuth.d.ts +8 -1
- package/dist/react/useT2VAuth.d.ts.map +1 -1
- package/dist/react/useT2VAuth.js +25 -6
- package/dist/react/useT2VAuth.js.map +1 -1
- package/dist/react/useT2VChat.d.ts +3 -3
- package/dist/react/useT2VChat.d.ts.map +1 -1
- package/dist/react/useT2VChat.js +1 -1
- package/dist/react/useT2VChat.js.map +1 -1
- package/dist/react/useT2VTools.d.ts +1 -1
- package/dist/react/useT2VTools.d.ts.map +1 -1
- package/dist/react/useT2VTools.js +1 -1
- package/dist/react/useT2VTools.js.map +1 -1
- package/dist/react/useUserPreferences.d.ts +1 -1
- package/dist/react/useUserPreferences.d.ts.map +1 -1
- package/dist/react/useUserPreferences.js +1 -1
- package/dist/react/useUserPreferences.js.map +1 -1
- package/dist/sessions.d.ts +3 -3
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js +6 -2
- package/dist/sessions.js.map +1 -1
- package/dist/skills.d.ts +2 -2
- package/dist/skills.d.ts.map +1 -1
- package/dist/streaming.d.ts +1 -1
- package/dist/streaming.d.ts.map +1 -1
- package/dist/tools.d.ts +2 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/types.d.ts +119 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/components/ApprovalCard.d.ts +1 -1
- package/dist/ui/components/ApprovalCard.d.ts.map +1 -1
- package/dist/ui/components/ChatHeader.js +1 -1
- package/dist/ui/components/ChatHeader.js.map +1 -1
- package/dist/ui/components/ChatPanel.d.ts +1 -1
- package/dist/ui/components/ChatPanel.d.ts.map +1 -1
- package/dist/ui/components/ChatPanel.js +14 -13
- package/dist/ui/components/ChatPanel.js.map +1 -1
- package/dist/ui/components/ChatWidget.d.ts +1 -1
- package/dist/ui/components/ChatWidget.d.ts.map +1 -1
- package/dist/ui/components/ChatWidget.js +2 -2
- package/dist/ui/components/ChatWidget.js.map +1 -1
- package/dist/ui/components/Composer.d.ts.map +1 -1
- package/dist/ui/components/Composer.js +13 -6
- package/dist/ui/components/Composer.js.map +1 -1
- package/dist/ui/components/LoginForm.d.ts.map +1 -1
- package/dist/ui/components/LoginForm.js +19 -5
- package/dist/ui/components/LoginForm.js.map +1 -1
- package/dist/ui/components/MarkdownRenderer.d.ts +4 -0
- package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/ui/components/MarkdownRenderer.js +7 -35
- package/dist/ui/components/MarkdownRenderer.js.map +1 -1
- package/dist/ui/components/MessageActions.js +1 -1
- package/dist/ui/components/MessageActions.js.map +1 -1
- package/dist/ui/components/MessageBubble.d.ts +1 -1
- package/dist/ui/components/MessageBubble.d.ts.map +1 -1
- package/dist/ui/components/MessageBubble.js +9 -9
- package/dist/ui/components/MessageBubble.js.map +1 -1
- package/dist/ui/components/MessageList.js +2 -2
- package/dist/ui/components/MessageList.js.map +1 -1
- package/dist/ui/components/SettingsPanel.js +4 -4
- package/dist/ui/components/SettingsPanel.js.map +1 -1
- package/dist/ui/components/Talk2View.d.ts +1 -1
- package/dist/ui/components/Talk2View.d.ts.map +1 -1
- package/dist/ui/components/Talk2View.js +16 -12
- package/dist/ui/components/Talk2View.js.map +1 -1
- package/dist/ui/components/ThinkingBlock.js +2 -2
- package/dist/ui/components/ThinkingBlock.js.map +1 -1
- package/dist/ui/components/WelcomeScreen.js +2 -2
- package/dist/ui/components/WelcomeScreen.js.map +1 -1
- package/dist/ui/context.d.ts +4 -2
- package/dist/ui/context.d.ts.map +1 -1
- package/dist/ui/context.js.map +1 -1
- package/dist/ui/index.d.ts +27 -26
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +21 -20
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/safeMarkdown.d.ts +17 -0
- package/dist/ui/safeMarkdown.d.ts.map +1 -0
- package/dist/ui/safeMarkdown.js +196 -0
- package/dist/ui/safeMarkdown.js.map +1 -0
- package/dist/ui/theme.d.ts +1 -1
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/utils.d.ts +1 -1
- package/dist/ui/utils.d.ts.map +1 -1
- package/package.json +64 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsPanel.js","sourceRoot":"","sources":["../../../src/ui/components/SettingsPanel.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAc,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SettingsPanel.js","sourceRoot":"","sources":["../../../src/ui/components/SettingsPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { Talk2ViewTheme, ClientTool, ClientToolSchema } from '../../types';
|
|
2
|
+
import type { Talk2ViewTheme, ClientTool, ClientToolSchema } from '../../types.js';
|
|
3
3
|
export interface Talk2ViewProps {
|
|
4
4
|
partnerKey: string;
|
|
5
5
|
baseUrl?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Talk2View.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Talk2View.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAOzE,OAAO,KAAK,EAAc,cAAc,EAAkD,UAAU,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Talk2View.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Talk2View.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAOzE,OAAO,KAAK,EAAc,cAAc,EAAkD,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE/I,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAQpH"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useEffect, useMemo, useCallback } from 'react';
|
|
3
|
-
import { T2VProvider, useT2V } from '../../react/T2VProvider';
|
|
4
|
-
import { useUserPreferences } from '../../react/useUserPreferences';
|
|
5
|
-
import { usePartnerConfig } from '../../react/usePartnerConfig';
|
|
6
|
-
import { Talk2ViewContext, ChatContext } from '../context';
|
|
7
|
-
import { injectTheme, injectFonts } from '../theme';
|
|
8
|
-
import { injectComponentStyles } from '../styles';
|
|
3
|
+
import { T2VProvider, useT2V } from '../../react/T2VProvider.js';
|
|
4
|
+
import { useUserPreferences } from '../../react/useUserPreferences.js';
|
|
5
|
+
import { usePartnerConfig } from '../../react/usePartnerConfig.js';
|
|
6
|
+
import { Talk2ViewContext, ChatContext } from '../context.js';
|
|
7
|
+
import { injectTheme, injectFonts } from '../theme.js';
|
|
8
|
+
import { injectComponentStyles } from '../styles.js';
|
|
9
9
|
/**
|
|
10
10
|
* Root provider for Talk2View UI components.
|
|
11
11
|
*
|
|
@@ -53,6 +53,7 @@ function InnerProvider({ systemPrompt, tools, theme, children, }) {
|
|
|
53
53
|
const [alwaysAllowedTools, setAlwaysAllowedTools] = useState(t2v.alwaysAllowedTools);
|
|
54
54
|
const [isAnonymous, setIsAnonymous] = useState(() => t2v.auth.isAnonymous());
|
|
55
55
|
const [demoLimitReached, setDemoLimitReached] = useState(false);
|
|
56
|
+
const [anonymousUnavailable, setAnonymousUnavailable] = useState(false);
|
|
56
57
|
useEffect(() => {
|
|
57
58
|
const unsubs = [
|
|
58
59
|
t2v.on('messagesChange', setMessages),
|
|
@@ -63,28 +64,31 @@ function InnerProvider({ systemPrompt, tools, theme, children, }) {
|
|
|
63
64
|
t2v.on('threadIdChange', setThreadId),
|
|
64
65
|
t2v.on('alwaysAllowedChange', setAlwaysAllowedTools),
|
|
65
66
|
t2v.on('demoLimitReached', () => setDemoLimitReached(true)),
|
|
67
|
+
t2v.on('anonymousUnavailable', () => setAnonymousUnavailable(true)),
|
|
66
68
|
];
|
|
67
69
|
return () => unsubs.forEach((u) => u());
|
|
68
70
|
}, [t2v]);
|
|
69
71
|
// Recompute anonymity whenever auth changes. When the user signs in after the
|
|
70
|
-
// demo limit was hit, close the gate AND
|
|
71
|
-
//
|
|
72
|
-
// so the resend lands in a fresh
|
|
72
|
+
// demo limit was hit or anonymous sign-in was refused, close the gate AND
|
|
73
|
+
// auto-resume the interrupted task: the core has already reset the orphaned
|
|
74
|
+
// anonymous session on the identity change, so the resend lands in a fresh
|
|
75
|
+
// session owned by the now-authenticated user.
|
|
73
76
|
useEffect(() => {
|
|
74
77
|
const anon = t2v.auth.isAnonymous();
|
|
75
78
|
setIsAnonymous(anon);
|
|
76
|
-
if (user !== null && !anon && demoLimitReached) {
|
|
79
|
+
if (user !== null && !anon && (demoLimitReached || anonymousUnavailable)) {
|
|
77
80
|
setDemoLimitReached(false);
|
|
81
|
+
setAnonymousUnavailable(false);
|
|
78
82
|
void t2v.retryLastMessage();
|
|
79
83
|
}
|
|
80
|
-
}, [t2v, user, demoLimitReached]);
|
|
84
|
+
}, [t2v, user, demoLimitReached, anonymousUnavailable]);
|
|
81
85
|
const sendMessage = useCallback((content, options) => t2v.sendMessage(content, { systemPrompt, model: resolvedModel, ...options }), [t2v, systemPrompt, resolvedModel]);
|
|
82
86
|
const approveToolCall = useCallback((d) => t2v.approveToolCall(d), [t2v]);
|
|
83
87
|
const retryLastMessage = useCallback(() => t2v.retryLastMessage(), [t2v]);
|
|
84
88
|
const stop = useCallback(() => t2v.stop(), [t2v]);
|
|
85
89
|
const clearMessages = useCallback(() => t2v.clearMessages(), [t2v]);
|
|
86
90
|
const clearError = useCallback(() => t2v.clearError(), [t2v]);
|
|
87
|
-
const t2vValue = useMemo(() => ({ t2v, user, isAuthenticated, isAnonymous, demoLimitReached }), [t2v, user, isAuthenticated, isAnonymous, demoLimitReached]);
|
|
91
|
+
const t2vValue = useMemo(() => ({ t2v, user, isAuthenticated, isAnonymous, demoLimitReached, anonymousUnavailable }), [t2v, user, isAuthenticated, isAnonymous, demoLimitReached, anonymousUnavailable]);
|
|
88
92
|
const chatValue = useMemo(() => ({
|
|
89
93
|
messages, isLoading, error, pendingApproval, agentStatus, threadId, alwaysAllowedTools,
|
|
90
94
|
sendMessage, approveToolCall, retryLastMessage, stop, clearMessages, clearError,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Talk2View.js","sourceRoot":"","sources":["../../../src/ui/components/Talk2View.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Talk2View.js","sourceRoot":"","sources":["../../../src/ui/components/Talk2View.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useEffect, useRef } from 'react';
|
|
3
3
|
import { Brain, ChevronDown } from 'lucide-react';
|
|
4
|
-
import { Shimmer } from './Shimmer';
|
|
5
|
-
import { MarkdownRenderer } from './MarkdownRenderer';
|
|
4
|
+
import { Shimmer } from './Shimmer.js';
|
|
5
|
+
import { MarkdownRenderer } from './MarkdownRenderer.js';
|
|
6
6
|
export function ThinkingBlock({ content, isStreaming, startTime }) {
|
|
7
7
|
const [expanded, setExpanded] = useState(true);
|
|
8
8
|
const [duration, setDuration] = useState(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThinkingBlock.js","sourceRoot":"","sources":["../../../src/ui/components/ThinkingBlock.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ThinkingBlock.js","sourceRoot":"","sources":["../../../src/ui/components/ThinkingBlock.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useChat } from '../context';
|
|
3
|
-
import { LOGOS } from '../theme';
|
|
2
|
+
import { useChat } from '../context.js';
|
|
3
|
+
import { LOGOS } from '../theme.js';
|
|
4
4
|
export function WelcomeScreen({ heading, suggestions }) {
|
|
5
5
|
const { sendMessage } = useChat();
|
|
6
6
|
return (_jsxs("div", { style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WelcomeScreen.js","sourceRoot":"","sources":["../../../src/ui/components/WelcomeScreen.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"WelcomeScreen.js","sourceRoot":"","sources":["../../../src/ui/components/WelcomeScreen.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOpC,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,WAAW,EAAsB;IACxE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC;IAClC,OAAO,CACL,eAAK,KAAK,EAAE;YACV,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ;YACjD,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ;YAC9C,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ;SACvD,aACC,cAAK,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAI,EAC/E,aAAI,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,YACvH,OAAO,IAAI,qBAAqB,GAC9B,EACJ,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CACxC,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YACnG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACzB,iBAAgB,OAAO,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE;wBACnG,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,sBAAsB;wBAC1D,MAAM,EAAE,6BAA6B,EAAE,UAAU,EAAE,eAAe;wBAClE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM;wBAClE,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG;wBAClE,UAAU,EAAE,oBAAoB;qBACjC,YAAG,CAAC,IANQ,CAAC,CAMC,CAChB,CAAC,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
package/dist/ui/context.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import type { Talk2View as Talk2ViewClass } from '../index';
|
|
2
|
-
import type { Attachment, User, DisplayMessage, PendingApproval, HumanDecision } from '../types';
|
|
1
|
+
import type { Talk2View as Talk2ViewClass } from '../index.js';
|
|
2
|
+
import type { Attachment, User, DisplayMessage, PendingApproval, HumanDecision } from '../types.js';
|
|
3
3
|
export interface Talk2ViewContextValue {
|
|
4
4
|
t2v: Talk2ViewClass;
|
|
5
5
|
user: User | null;
|
|
6
6
|
isAuthenticated: boolean;
|
|
7
7
|
isAnonymous: boolean;
|
|
8
8
|
demoLimitReached: boolean;
|
|
9
|
+
/** True once anonymous sign-in was refused; the chat shows sign-in instead. */
|
|
10
|
+
anonymousUnavailable: boolean;
|
|
9
11
|
}
|
|
10
12
|
export interface ChatContextValue {
|
|
11
13
|
messages: DisplayMessage[];
|
package/dist/ui/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/ui/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/ui/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEpG,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,+EAA+E;IAC/E,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,eAAe,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,6EAA6E;IAC7E,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,uDAAoD,CAAC;AAClF,eAAO,MAAM,WAAW,kDAA+C,CAAC;AAExE,wBAAgB,YAAY,IAAI,qBAAqB,CAIpD;AAED,wBAAgB,OAAO,IAAI,gBAAgB,CAI1C"}
|
package/dist/ui/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/ui/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/ui/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA+BlD,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAA+B,IAAI,CAAC,CAAC;AAClF,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAExE,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC1E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
export { Talk2View } from './components/Talk2View';
|
|
2
|
-
export type { Talk2ViewProps } from './components/Talk2View';
|
|
3
|
-
export { ChatPanel } from './components/ChatPanel';
|
|
4
|
-
export type { ChatPanelProps } from './components/ChatPanel';
|
|
5
|
-
export { ChatWidget } from './components/ChatWidget';
|
|
6
|
-
export type { ChatWidgetProps } from './components/ChatWidget';
|
|
7
|
-
export { useChat, useTalk2View } from './context';
|
|
8
|
-
export type { ChatContextValue, Talk2ViewContextValue } from './context';
|
|
9
|
-
export { MessageList } from './components/MessageList';
|
|
10
|
-
export { MessageBubble } from './components/MessageBubble';
|
|
11
|
-
export { Composer } from './components/Composer';
|
|
12
|
-
export { WelcomeScreen } from './components/WelcomeScreen';
|
|
13
|
-
export { LoginForm } from './components/LoginForm';
|
|
14
|
-
export { ChatHeader } from './components/ChatHeader';
|
|
15
|
-
export { SettingsPanel } from './components/SettingsPanel';
|
|
16
|
-
export { ApprovalCard } from './components/ApprovalCard';
|
|
17
|
-
export { ToolDisplay, ToolStepGroup } from './components/ToolDisplay';
|
|
18
|
-
export type { ToolDisplayProps, ToolStepGroupProps } from './components/ToolDisplay';
|
|
19
|
-
export { MarkdownRenderer } from './components/MarkdownRenderer';
|
|
20
|
-
export { CodeBlock } from './components/CodeBlock';
|
|
21
|
-
export { ThinkingBlock } from './components/ThinkingBlock';
|
|
22
|
-
export { MessageActions } from './components/MessageActions';
|
|
23
|
-
export { Shimmer } from './components/Shimmer';
|
|
24
|
-
export { THEME_DEFAULTS, LOGOS } from './theme';
|
|
25
|
-
export { groupModelsByProvider, providerTitle, UNKNOWN_PROVIDER_KEY } from './utils';
|
|
26
|
-
export
|
|
1
|
+
export { Talk2View } from './components/Talk2View.js';
|
|
2
|
+
export type { Talk2ViewProps } from './components/Talk2View.js';
|
|
3
|
+
export { ChatPanel } from './components/ChatPanel.js';
|
|
4
|
+
export type { ChatPanelProps } from './components/ChatPanel.js';
|
|
5
|
+
export { ChatWidget } from './components/ChatWidget.js';
|
|
6
|
+
export type { ChatWidgetProps } from './components/ChatWidget.js';
|
|
7
|
+
export { useChat, useTalk2View } from './context.js';
|
|
8
|
+
export type { ChatContextValue, Talk2ViewContextValue } from './context.js';
|
|
9
|
+
export { MessageList } from './components/MessageList.js';
|
|
10
|
+
export { MessageBubble } from './components/MessageBubble.js';
|
|
11
|
+
export { Composer } from './components/Composer.js';
|
|
12
|
+
export { WelcomeScreen } from './components/WelcomeScreen.js';
|
|
13
|
+
export { LoginForm } from './components/LoginForm.js';
|
|
14
|
+
export { ChatHeader } from './components/ChatHeader.js';
|
|
15
|
+
export { SettingsPanel } from './components/SettingsPanel.js';
|
|
16
|
+
export { ApprovalCard } from './components/ApprovalCard.js';
|
|
17
|
+
export { ToolDisplay, ToolStepGroup } from './components/ToolDisplay.js';
|
|
18
|
+
export type { ToolDisplayProps, ToolStepGroupProps } from './components/ToolDisplay.js';
|
|
19
|
+
export { MarkdownRenderer } from './components/MarkdownRenderer.js';
|
|
20
|
+
export { CodeBlock } from './components/CodeBlock.js';
|
|
21
|
+
export { ThinkingBlock } from './components/ThinkingBlock.js';
|
|
22
|
+
export { MessageActions } from './components/MessageActions.js';
|
|
23
|
+
export { Shimmer } from './components/Shimmer.js';
|
|
24
|
+
export { THEME_DEFAULTS, LOGOS } from './theme.js';
|
|
25
|
+
export { groupModelsByProvider, providerTitle, UNKNOWN_PROVIDER_KEY } from './utils.js';
|
|
26
|
+
export { renderSafeMarkdown } from './safeMarkdown.js';
|
|
27
|
+
export type { ModelGroup } from './utils.js';
|
|
27
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG5E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/ui/index.js
CHANGED
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
// Components
|
|
2
|
-
export { Talk2View } from './components/Talk2View';
|
|
3
|
-
export { ChatPanel } from './components/ChatPanel';
|
|
4
|
-
export { ChatWidget } from './components/ChatWidget';
|
|
2
|
+
export { Talk2View } from './components/Talk2View.js';
|
|
3
|
+
export { ChatPanel } from './components/ChatPanel.js';
|
|
4
|
+
export { ChatWidget } from './components/ChatWidget.js';
|
|
5
5
|
// Context hooks (for advanced custom UI)
|
|
6
|
-
export { useChat, useTalk2View } from './context';
|
|
6
|
+
export { useChat, useTalk2View } from './context.js';
|
|
7
7
|
// Individual components (for composition)
|
|
8
|
-
export { MessageList } from './components/MessageList';
|
|
9
|
-
export { MessageBubble } from './components/MessageBubble';
|
|
10
|
-
export { Composer } from './components/Composer';
|
|
11
|
-
export { WelcomeScreen } from './components/WelcomeScreen';
|
|
12
|
-
export { LoginForm } from './components/LoginForm';
|
|
13
|
-
export { ChatHeader } from './components/ChatHeader';
|
|
14
|
-
export { SettingsPanel } from './components/SettingsPanel';
|
|
15
|
-
export { ApprovalCard } from './components/ApprovalCard';
|
|
16
|
-
export { ToolDisplay, ToolStepGroup } from './components/ToolDisplay';
|
|
17
|
-
export { MarkdownRenderer } from './components/MarkdownRenderer';
|
|
18
|
-
export { CodeBlock } from './components/CodeBlock';
|
|
19
|
-
export { ThinkingBlock } from './components/ThinkingBlock';
|
|
20
|
-
export { MessageActions } from './components/MessageActions';
|
|
21
|
-
export { Shimmer } from './components/Shimmer';
|
|
8
|
+
export { MessageList } from './components/MessageList.js';
|
|
9
|
+
export { MessageBubble } from './components/MessageBubble.js';
|
|
10
|
+
export { Composer } from './components/Composer.js';
|
|
11
|
+
export { WelcomeScreen } from './components/WelcomeScreen.js';
|
|
12
|
+
export { LoginForm } from './components/LoginForm.js';
|
|
13
|
+
export { ChatHeader } from './components/ChatHeader.js';
|
|
14
|
+
export { SettingsPanel } from './components/SettingsPanel.js';
|
|
15
|
+
export { ApprovalCard } from './components/ApprovalCard.js';
|
|
16
|
+
export { ToolDisplay, ToolStepGroup } from './components/ToolDisplay.js';
|
|
17
|
+
export { MarkdownRenderer } from './components/MarkdownRenderer.js';
|
|
18
|
+
export { CodeBlock } from './components/CodeBlock.js';
|
|
19
|
+
export { ThinkingBlock } from './components/ThinkingBlock.js';
|
|
20
|
+
export { MessageActions } from './components/MessageActions.js';
|
|
21
|
+
export { Shimmer } from './components/Shimmer.js';
|
|
22
22
|
// Theme
|
|
23
|
-
export { THEME_DEFAULTS, LOGOS } from './theme';
|
|
23
|
+
export { THEME_DEFAULTS, LOGOS } from './theme.js';
|
|
24
24
|
// Utilities
|
|
25
|
-
export { groupModelsByProvider, providerTitle, UNKNOWN_PROVIDER_KEY } from './utils';
|
|
25
|
+
export { groupModelsByProvider, providerTitle, UNKNOWN_PROVIDER_KEY } from './utils.js';
|
|
26
|
+
export { renderSafeMarkdown } from './safeMarkdown.js';
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
package/dist/ui/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGxD,yCAAyC;AACzC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGrD,0CAA0C;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,QAAQ;AACR,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnD,YAAY;AACZ,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run already-parsed HTML through the private sanitizer: a strict allow-list
|
|
3
|
+
* plus the hook above (the second line of defence — ADR 0009). Without a DOM
|
|
4
|
+
* (server rendering) it falls back to escaping the HTML as plain text, since
|
|
5
|
+
* the sanitizer can't run there.
|
|
6
|
+
*
|
|
7
|
+
* Exported for tests; partners use `renderSafeMarkdown`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function sanitizeReplyHtml(html: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Render an untrusted model reply as safe HTML: markdown only, no remote content
|
|
12
|
+
* loaded on its own. Use this for any custom chat UI; `<ChatPanel>` already does.
|
|
13
|
+
* Without a DOM (server rendering) the reply comes back as escaped plain text,
|
|
14
|
+
* because the sanitizer can't run there.
|
|
15
|
+
*/
|
|
16
|
+
export declare function renderSafeMarkdown(markdown: string): string;
|
|
17
|
+
//# sourceMappingURL=safeMarkdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeMarkdown.d.ts","sourceRoot":"","sources":["../../src/ui/safeMarkdown.ts"],"names":[],"mappings":"AAsKA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAStD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI3D"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import DOMPurify from 'dompurify';
|
|
2
|
+
import { Marked } from 'marked';
|
|
3
|
+
/**
|
|
4
|
+
* Model replies are untrusted: prompt injection through web search, a document,
|
|
5
|
+
* email content or a tool result can make the model write anything. A reply is
|
|
6
|
+
* therefore rendered as markdown only and never loads remote content on its own
|
|
7
|
+
* (docs/adr/0009-model-replies-render-as-markdown-only.md):
|
|
8
|
+
* - raw HTML in the reply is shown as text, never parsed;
|
|
9
|
+
* - an image becomes a link the end-user can choose to open;
|
|
10
|
+
* - links open in a new tab and must be http(s) or mailto;
|
|
11
|
+
* - the output then passes a strict allow-list sanitizer.
|
|
12
|
+
*/
|
|
13
|
+
const ALLOWED_TAGS = [
|
|
14
|
+
'p', 'br', 'strong', 'em', 'del', 'code', 'pre', 'blockquote',
|
|
15
|
+
'ul', 'ol', 'li', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'a',
|
|
16
|
+
'table', 'thead', 'tbody', 'tr', 'th', 'td', 'input',
|
|
17
|
+
];
|
|
18
|
+
const ALLOWED_ATTR = [
|
|
19
|
+
'href', 'title', 'target', 'rel', 'class', 'align', 'start', 'type', 'checked', 'disabled',
|
|
20
|
+
];
|
|
21
|
+
// Link targets a reply may keep. DOMPurify's default URI check still runs first
|
|
22
|
+
// (it strips javascript:, data: and the like). A custom ALLOWED_URI_REGEXP can't
|
|
23
|
+
// be used for this: DOMPurify applies it to every non-URI-safe attribute value,
|
|
24
|
+
// which would strip align="center", start="3" and type="checkbox".
|
|
25
|
+
const ALLOWED_HREF = /^(?:https?:|mailto:)/i;
|
|
26
|
+
const WEB_URI = /^https?:/i;
|
|
27
|
+
const LANGUAGE_CLASS = /^language-[\w+#.-]+$/;
|
|
28
|
+
const TABLE_ALIGN = new Set(['left', 'center', 'right']);
|
|
29
|
+
function escapeHtml(text) {
|
|
30
|
+
return text
|
|
31
|
+
.replace(/&/g, '&')
|
|
32
|
+
.replace(/</g, '<')
|
|
33
|
+
.replace(/>/g, '>')
|
|
34
|
+
.replace(/"/g, '"')
|
|
35
|
+
.replace(/'/g, ''');
|
|
36
|
+
}
|
|
37
|
+
function webHost(href) {
|
|
38
|
+
try {
|
|
39
|
+
const url = new URL(href);
|
|
40
|
+
return url.protocol === 'http:' || url.protocol === 'https:' ? url.host : null;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// A raw markdown href can carry HTML character references (e.g. `/`,
|
|
47
|
+
// `@`) that the browser decodes when the rendered HTML is parsed. Decode
|
|
48
|
+
// them here, once, so webHost() and the title fallback see the same string
|
|
49
|
+
// the href will actually resolve to. A detached <textarea> never runs
|
|
50
|
+
// anything it's given: its innerHTML setter only ever produces text nodes
|
|
51
|
+
// under it, and nothing reads or attaches this element beyond .value.
|
|
52
|
+
function decodeHtmlEntities(text) {
|
|
53
|
+
const textarea = document.createElement('textarea');
|
|
54
|
+
textarea.innerHTML = text;
|
|
55
|
+
return textarea.value;
|
|
56
|
+
}
|
|
57
|
+
const parser = new Marked({ gfm: true, breaks: true });
|
|
58
|
+
parser.use({
|
|
59
|
+
// marked 15 flips lexer.state.inRawBlock on an inline <pre>/<code>/<kbd>/
|
|
60
|
+
// <script> tag, even though our html() renderer below escapes the tag
|
|
61
|
+
// itself. While that state is on, the default text renderer emits
|
|
62
|
+
// following text tokens unescaped (marked treats them as already-safe raw
|
|
63
|
+
// HTML), and the state carries across paragraphs until a matching close
|
|
64
|
+
// tag. Raw HTML is never markup here, so always escape it.
|
|
65
|
+
walkTokens(token) {
|
|
66
|
+
if (token.type === 'text' && 'escaped' in token && token.escaped) {
|
|
67
|
+
token.escaped = false;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
renderer: {
|
|
71
|
+
// Raw HTML is shown as the text the model wrote, never parsed — except an
|
|
72
|
+
// exact <br>, the only way GFM lets a reply break a line inside a table
|
|
73
|
+
// cell (a cell can't hold a literal newline). It has no attributes to
|
|
74
|
+
// carry an event handler or style, and DOMPurify still runs on it.
|
|
75
|
+
html({ text }) {
|
|
76
|
+
if (/^<br\s*\/?>\s*$/i.test(text))
|
|
77
|
+
return '<br>';
|
|
78
|
+
return escapeHtml(text);
|
|
79
|
+
},
|
|
80
|
+
// Loading an image would send its URL, and anything packed into it, to
|
|
81
|
+
// whoever runs that server, with no click. Show a link instead.
|
|
82
|
+
image({ href, title, tokens }) {
|
|
83
|
+
const alt = this.parser.parseInline(tokens, this.parser.textRenderer);
|
|
84
|
+
const label = alt ? `Image: ${escapeHtml(alt)}` : 'Image';
|
|
85
|
+
const decodedHref = decodeHtmlEntities(href);
|
|
86
|
+
const host = webHost(decodedHref);
|
|
87
|
+
if (!host)
|
|
88
|
+
return label;
|
|
89
|
+
let safeHref;
|
|
90
|
+
try {
|
|
91
|
+
// Same encoding marked's own link renderer uses (cleanUrl), so an
|
|
92
|
+
// image link's href decodes the same way a markdown link's does.
|
|
93
|
+
safeHref = encodeURI(decodedHref).replace(/%25/g, '%');
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return label;
|
|
97
|
+
}
|
|
98
|
+
return `<a href="${escapeHtml(safeHref)}" title="${escapeHtml(title || decodedHref)}">${label} (${escapeHtml(host)})</a>`;
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
function hardenNode(node) {
|
|
103
|
+
if (node.nodeType !== 1)
|
|
104
|
+
return;
|
|
105
|
+
const element = node;
|
|
106
|
+
const tag = element.nodeName;
|
|
107
|
+
if (tag === 'A') {
|
|
108
|
+
const rawHref = element.getAttribute('href');
|
|
109
|
+
if (rawHref !== null && !ALLOWED_HREF.test(rawHref))
|
|
110
|
+
element.removeAttribute('href');
|
|
111
|
+
const href = element.getAttribute('href') ?? '';
|
|
112
|
+
if (WEB_URI.test(href)) {
|
|
113
|
+
element.setAttribute('target', '_blank');
|
|
114
|
+
element.setAttribute('rel', 'noopener noreferrer');
|
|
115
|
+
if (!element.getAttribute('title'))
|
|
116
|
+
element.setAttribute('title', href);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
element.removeAttribute('target');
|
|
120
|
+
element.removeAttribute('rel');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const className = element.getAttribute('class');
|
|
124
|
+
if (className !== null && !(tag === 'CODE' && LANGUAGE_CLASS.test(className))) {
|
|
125
|
+
element.removeAttribute('class');
|
|
126
|
+
}
|
|
127
|
+
const align = element.getAttribute('align');
|
|
128
|
+
if (align !== null && !((tag === 'TH' || tag === 'TD') && TABLE_ALIGN.has(align))) {
|
|
129
|
+
element.removeAttribute('align');
|
|
130
|
+
}
|
|
131
|
+
const start = element.getAttribute('start');
|
|
132
|
+
if (start !== null && !(tag === 'OL' && /^\d{1,9}$/.test(start))) {
|
|
133
|
+
element.removeAttribute('start');
|
|
134
|
+
}
|
|
135
|
+
if (tag === 'INPUT') {
|
|
136
|
+
// Only GFM task-list boxes reach here: always a disabled checkbox, never a field.
|
|
137
|
+
const checked = element.hasAttribute('checked');
|
|
138
|
+
for (const name of element.getAttributeNames())
|
|
139
|
+
element.removeAttribute(name);
|
|
140
|
+
element.setAttribute('type', 'checkbox');
|
|
141
|
+
element.setAttribute('disabled', '');
|
|
142
|
+
if (checked)
|
|
143
|
+
element.setAttribute('checked', '');
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
element.removeAttribute('type');
|
|
147
|
+
element.removeAttribute('checked');
|
|
148
|
+
element.removeAttribute('disabled');
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
let purifier = null;
|
|
152
|
+
// A private instance: hooks added here never reach the host app's own DOMPurify.
|
|
153
|
+
function getPurifier() {
|
|
154
|
+
if (purifier)
|
|
155
|
+
return purifier;
|
|
156
|
+
if (typeof window === 'undefined')
|
|
157
|
+
return null;
|
|
158
|
+
const instance = DOMPurify(window);
|
|
159
|
+
if (!instance.isSupported)
|
|
160
|
+
return null;
|
|
161
|
+
instance.addHook('afterSanitizeAttributes', hardenNode);
|
|
162
|
+
purifier = instance;
|
|
163
|
+
return purifier;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Run already-parsed HTML through the private sanitizer: a strict allow-list
|
|
167
|
+
* plus the hook above (the second line of defence — ADR 0009). Without a DOM
|
|
168
|
+
* (server rendering) it falls back to escaping the HTML as plain text, since
|
|
169
|
+
* the sanitizer can't run there.
|
|
170
|
+
*
|
|
171
|
+
* Exported for tests; partners use `renderSafeMarkdown`.
|
|
172
|
+
*/
|
|
173
|
+
export function sanitizeReplyHtml(html) {
|
|
174
|
+
const purify = getPurifier();
|
|
175
|
+
if (!purify)
|
|
176
|
+
return escapeHtml(html);
|
|
177
|
+
return purify.sanitize(html, {
|
|
178
|
+
ALLOWED_TAGS,
|
|
179
|
+
ALLOWED_ATTR,
|
|
180
|
+
ALLOW_DATA_ATTR: false,
|
|
181
|
+
ALLOW_ARIA_ATTR: false,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Render an untrusted model reply as safe HTML: markdown only, no remote content
|
|
186
|
+
* loaded on its own. Use this for any custom chat UI; `<ChatPanel>` already does.
|
|
187
|
+
* Without a DOM (server rendering) the reply comes back as escaped plain text,
|
|
188
|
+
* because the sanitizer can't run there.
|
|
189
|
+
*/
|
|
190
|
+
export function renderSafeMarkdown(markdown) {
|
|
191
|
+
if (!getPurifier())
|
|
192
|
+
return escapeHtml(markdown);
|
|
193
|
+
const html = parser.parse(markdown, { async: false });
|
|
194
|
+
return sanitizeReplyHtml(html);
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=safeMarkdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeMarkdown.js","sourceRoot":"","sources":["../../src/ui/safeMarkdown.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/theme.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Talk2ViewTheme } from '../types';
|
|
1
|
+
import type { Talk2ViewTheme } from '../types.js';
|
|
2
2
|
export declare const THEME_DEFAULTS: Required<Talk2ViewTheme>;
|
|
3
3
|
export declare function generateThemeCSS(theme: Talk2ViewTheme): string;
|
|
4
4
|
export declare function injectTheme(theme: Talk2ViewTheme): void;
|
package/dist/ui/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,cAAc,CAkBnD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAwB9D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAUvD;AAGD,wBAAgB,WAAW,IAAI,IAAI,CAUlC;AAGD,eAAO,MAAM,KAAK;;;;CAIR,CAAC"}
|