@tagit/ai-client-react 1.7.0-beta.53.1 → 1.7.0-beta.56.2

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 CHANGED
@@ -1,12 +1,20 @@
1
1
  # @tagit/ai-client-react
2
2
 
3
- React integration layer for tagIt AI.
3
+ React integration layer for Knotiv AI.
4
4
 
5
5
  Use this package when you want a self-contained chat experience in a React app. It builds on `@tagit/ai-client-core`, which owns the client engine, orchestrator transport, state, and collector emission. The core package README is the source of truth for those engine details.
6
6
 
7
- ## What Is tagIt?
7
+ ## What Is Knotiv?
8
8
 
9
- tagIt is the platform for building governed AI experiences. It gives teams a way to define AI use cases, connect models, optionally attach MCP servers, and shape the orchestration logic that drives the overall experience.
9
+ Knotiv is the platform for building governed AI experiences. It gives teams a way to define AI use cases, connect models, optionally attach MCP servers, and shape the orchestration logic that drives the overall experience.
10
+
11
+ ## Browser security boundary
12
+
13
+ Use the package from browser code only through a same-origin application route.
14
+ That server-side route holds the Knotiv API key, authenticates the application's
15
+ user, authorizes the Agent and accepted runtime context, and proxies the normal
16
+ or streamed response. Do not put an Orchestrator API key in browser code,
17
+ public environment variables, or a mobile bundle.
10
18
 
11
19
  ## What Is the AI Orchestrator?
12
20
 
@@ -14,11 +22,11 @@ The AI Orchestrator is the runtime layer that executes a use case. It combines t
14
22
 
15
23
  ## Why These Packages Exist
16
24
 
17
- The `@tagit/ai-client-core` and `@tagit/ai-client-react` packages are the client-side pieces of that system. They connect your app to a tagIt account and a configured orchestrator so you can embed AI experiences in a product or website.
25
+ The `@tagit/ai-client-core` and `@tagit/ai-client-react` packages are the client-side pieces of that system. They connect your app to a Knotiv account and a configured Orchestrator so you can embed AI experiences in a product or website.
18
26
 
19
- You need a tagIt account and at least one configured use case before these packages can drive a real experience. MCP servers are optional, but they can extend the orchestrator with tools and external capabilities.
27
+ You need a Knotiv account and at least one configured Agent before these packages can drive a real experience. MCP servers are optional, but they can extend the Orchestrator with tools and external capabilities.
20
28
 
21
- To learn more, visit [tagit.live](https://tagit.live).
29
+ To learn more, visit [knotiv.com](https://knotiv.com).
22
30
 
23
31
  This README is the source of truth for integrating the React package.
24
32
 
@@ -80,7 +88,7 @@ import { AIClientProvider, ChatWidget } from '@tagit/ai-client-react';
80
88
  import '@tagit/ai-client-react/chat-widget.css';
81
89
 
82
90
  const client = new AIClient(
83
- createDefaultConfig('your-use-case-id', 'https://your-orchestrator.example.com', {
91
+ createDefaultConfig('your-use-case-id', window.location.origin, {
84
92
  user: {
85
93
  entityId: 'anonymous-or-authenticated-user-id',
86
94
  entityidType: 'internal_user_id',
@@ -107,13 +115,57 @@ export default function App() {
107
115
  }
108
116
  ```
109
117
 
110
- If that exact example does not render the default empty state and footer, verify the package install and runtime config before customizing anything.
118
+ This example calls your application's same-origin `POST /v2/chat` route. That
119
+ route adds the server-only Knotiv credential before forwarding the request.
120
+ If the example does not render the default empty state and footer, verify the
121
+ package install, the route, and its server-side authorization before customizing
122
+ anything.
123
+
124
+ ### Pass current page context
125
+
126
+ `resolveRequestOptions` runs before each send. Keep the `AIClient` instance
127
+ stable for the conversation while reading the latest React state through a ref:
128
+
129
+ ```tsx
130
+ import { useMemo, useRef } from 'react';
131
+ import { AIClient, createDefaultConfig } from '@tagit/ai-client-core';
132
+
133
+ export function useAssistantClient(userId: string, pagePath: string, draftTitle: string) {
134
+ const current = useRef({ pagePath, draftTitle });
135
+ current.current = { pagePath, draftTitle };
136
+
137
+ return useMemo(() => new AIClient(
138
+ createDefaultConfig('your-use-case-id', window.location.origin, {
139
+ user: { entityId: userId, userId },
140
+ resolveRequestOptions() {
141
+ return {
142
+ surface: current.current.pagePath,
143
+ runtimeVariables: {
144
+ 'page.path': current.current.pagePath,
145
+ 'draft.title': current.current.draftTitle,
146
+ },
147
+ };
148
+ },
149
+ }),
150
+ ), [userId]);
151
+ }
152
+ ```
153
+
154
+ Pass the router's current path as `pagePath`. The application server still
155
+ validates accepted runtime values and derives the authorized Agent and user
156
+ identity from its own configuration and session. For a production server route
157
+ example, see the [AI Client guide](https://knotiv.gitbook.io/knotiv/embed-and-integrate/ai-client).
158
+
159
+ Use `ChatWidget` for the full launcher, panel, and built-in conversation UI.
160
+ Use `ChatConversation` when your application supplies the surrounding panel or
161
+ page shell. Use `useConversation()` when you render the messages and actions
162
+ yourself.
111
163
 
112
164
  ## Focused AI Actions
113
165
 
114
166
  Use `AIActionClient` when a button or page event should run an agent workflow without opening a persistent chat. The component starts the configured request, shows progress, presents human checkpoints only when the workflow asks for input, continues the same workflow, and renders the final Markdown result with copy and download actions.
115
167
 
116
- Give the action a dedicated `AIClient` instance. In production apps, use a custom core transport when requests must pass through an authenticated server proxy.
168
+ Give the action a dedicated `AIClient` instance. The default transport works with the same-origin server route shown above.
117
169
 
118
170
  ```tsx
119
171
  import { useMemo, useState } from 'react';
@@ -126,7 +178,7 @@ export function GeneratePackageAction() {
126
178
  const client = useMemo(
127
179
  () => new AIClient(createDefaultConfig(
128
180
  'your-use-case-id',
129
- 'https://your-orchestrator.example.com',
181
+ window.location.origin,
130
182
  )),
131
183
  [],
132
184
  );
@@ -245,7 +297,7 @@ The host application owns:
245
297
  <ChatWidget
246
298
  presentation="overlay"
247
299
  side="right"
248
- title="tagIt Assistant"
300
+ title="Knotiv Assistant"
249
301
  showBackdrop
250
302
  closeOnOutsideClick
251
303
  />
@@ -460,21 +512,78 @@ const isMobile = useMediaQuery('(max-width: 768px)');
460
512
 
461
513
  The `useConversation()` hook exposes `sendMessage()`, `retry()`, `cancel()`, `clearHistory()`, and `reEditMessage()`. The request option bag belongs to the core client and is documented in [`@tagit/ai-client-core`](../ai-client-core/README.md).
462
514
 
515
+ ## Private Resources And Attachments
516
+
517
+ When `resources.enabled` and an authenticated resource transport are supplied,
518
+ the stock conversation UI adds:
519
+
520
+ - private TXT, Markdown, CSV, JSON, and PDF upload
521
+ - a recent private resource picker
522
+ - removable conversation attachment chips
523
+ - resource cards on the user messages that referenced them
524
+
525
+ On wider layouts, the picker opens as a sidecar immediately inside the chat:
526
+ to the left of a right-edge chat and to the right of a left-edge chat. It stays
527
+ inline above the composer on compact layouts or whenever less than 300px is
528
+ available beside the chat panel.
529
+
530
+ The host owns authentication and Workspace selection. The SDK sends only
531
+ governed resource IDs to the orchestrator; it does not send storage paths or
532
+ browser-provided account scope.
533
+
534
+ ```tsx
535
+ import {
536
+ AIClient,
537
+ FetchConversationResourceTransport,
538
+ createDefaultConfig,
539
+ } from '@tagit/ai-client-core';
540
+
541
+ const resourceTransport = new FetchConversationResourceTransport({
542
+ baseUrl: 'https://beta.knotiv.com',
543
+ accountId,
544
+ contextId: workspaceId,
545
+ headers: async () => ({
546
+ Authorization: `Bearer ${await currentUser.getIdToken()}`,
547
+ }),
548
+ });
549
+
550
+ const client = new AIClient(
551
+ createDefaultConfig(useCaseId, orchestratorUrl, {
552
+ user: { entityId: currentUser.uid, userId: currentUser.uid },
553
+ resources: {
554
+ enabled: true,
555
+ transport: resourceTransport,
556
+ allowUpload: true,
557
+ allowPicker: true,
558
+ },
559
+ }),
560
+ );
561
+ ```
562
+
563
+ Custom shells can use `useConversationResources()` for the same list, upload,
564
+ attach, detach, loading, and error state.
565
+
463
566
  ## Conversation History UI
464
567
 
465
568
  When `conversationHistory.enabled` is configured on the core client, the stock React UI adds first-class history controls:
466
569
 
570
+ Add authenticated same-origin `/v2/conversations` routes before enabling this
571
+ option; a `/v2/chat` route alone cannot serve history requests.
572
+
467
573
  - the widget header shows a conversation history button
468
574
  - the empty state shows up to five recent conversations
469
575
  - users can load a previous conversation
470
576
  - users can rename conversations
471
577
  - users can archive conversations
578
+ - users can review archived and deleted conversations
579
+ - users can restore archived conversations or cancel deletion during the configured grace period
580
+ - delete requires inline confirmation and remains reversible during that grace period
472
581
  - the New Chat button starts a new durable conversation instead of only clearing local state
473
582
  - after New Chat, the empty-state recent conversation list refreshes from the configured history transport
474
583
 
475
584
  ```tsx
476
585
  const client = new AIClient(
477
- createDefaultConfig('uc-platform-assistant-v2', 'https://ai.tagit.live', {
586
+ createDefaultConfig('uc-platform-assistant-v2', window.location.origin, {
478
587
  user: {
479
588
  entityId: currentUser.uid,
480
589
  userId: currentUser.uid,
@@ -497,6 +606,8 @@ const history = useConversationHistory({ limit: 5 });
497
606
  await history.loadConversation(conversationId);
498
607
  await history.renameConversation(conversationId, 'Campaign planning');
499
608
  await history.archiveConversation(conversationId);
609
+ await history.deleteConversation(conversationId);
610
+ await history.restoreConversation(conversationId);
500
611
  await history.startNewConversation('New chat');
501
612
  ```
502
613
 
@@ -517,7 +628,7 @@ The host app owns the agent list, default selection, route/page/global policy, a
517
628
 
518
629
  ```tsx
519
630
  const client = new AIClient(
520
- createDefaultConfig('uc-platform-help', 'https://ai.tagit.live', {
631
+ createDefaultConfig('uc-platform-help', window.location.origin, {
521
632
  user: { entityId: currentUser.uid, userId: currentUser.uid },
522
633
  conversationHistory: { enabled: true, surface: window.location.pathname },
523
634
  agents: [
@@ -563,7 +674,7 @@ Use `ChatWidget` when you want the full built-in shell, header, tab, and sizing
563
674
  Only pass `children` to `ChatWidget` if you intentionally want to replace the built-in conversation body.
564
675
 
565
676
  ```tsx
566
- <ChatWidget mode="overlay" side="right" title="tagIt Assistant">
677
+ <ChatWidget mode="overlay" side="right" title="Knotiv Assistant">
567
678
  <CustomConversation />
568
679
  </ChatWidget>
569
680
  ```
@@ -668,6 +779,12 @@ Use `useConversation()` when the host app wants to render its own shell and only
668
779
  | No styling | CSS not imported | verify `@tagit/ai-client-react/chat-widget.css` import |
669
780
  | Missing body after passing custom JSX | `children` overrides stock body | remove `children` to restore the stock widget |
670
781
  | No messages sent | invalid orchestrator config | verify `orchestrator.baseUrl` and `useCaseId`, confirm `baseUrl` does not include `/v2/chat` |
782
+ | Browser reports CORS | request bypasses the same-origin route | point `baseUrl` at `window.location.origin`; confirm the browser requests your own `/v2/chat` route |
783
+ | Same-origin request returns 404 | application route or local proxy is missing | add `POST /v2/chat` to the production server or configure the Vite development proxy |
784
+ | Same-origin request returns 401 or 403 | application authentication or Agent authorization failed | check the signed-in session and the server's allowed Agent mapping; keep the Knotiv key on the server |
785
+ | Runtime variables do not appear in a Run | resolver or server filtering omitted them | inspect `resolveRequestOptions` and the server's accepted runtime fields |
786
+ | Response appears only at the end | proxy buffered the stream or changed its content type | forward the response body and `text/event-stream` content type without buffering |
787
+ | Conversation history fails while chat works | only the chat route is implemented | add authenticated `/v2/conversations` routes before enabling history |
671
788
  | V2 request is rejected for missing user | missing shared identity | set `user.entityId`; optionally set `user.userId` when it should differ from the entity id |
672
789
  | Runtime import error | unsupported import path | use only documented public exports |
673
790
  | Collector events do not appear | collector config incomplete or disabled | confirm `collector.enabled`, `collector.baseUrl`, and `collector.tagId` |
@@ -1 +1 @@
1
- {"version":3,"file":"chat-conversation.d.ts","sourceRoot":"","sources":["../src/chat-conversation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAwDlG,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AA4CD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,qBAAqB,qBAigBvB"}
1
+ {"version":3,"file":"chat-conversation.d.ts","sourceRoot":"","sources":["../src/chat-conversation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAgElG,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAyED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,qBAAqB,qBA2qBvB"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
3
- import { Check, Copy, MessageSquare, Pencil, RotateCcw, } from 'lucide-react';
4
- import { useConversation, useConversationHistory } from './provider.js';
3
+ import { createPortal } from 'react-dom';
4
+ import { Check, Copy, FileText, MessageSquare, Paperclip, Pencil, RefreshCw, RotateCcw, Upload, X, } from 'lucide-react';
5
+ import { useConversation, useConversationHistory, useConversationResources } from './provider.js';
5
6
  import { ChatTooltip } from './chat-tooltip.js';
6
7
  import { ConversationTransitionDialog, useConversationBoundary, } from './conversation-boundary.js';
7
8
  import { buildCheckpointContinuationOptions, isWorkflowAwaitingInput, } from './ai-action-state.js';
@@ -44,6 +45,16 @@ function ConversationPreview({ conversation, onLoad, }) {
44
45
  const timestamp = formatConversationTimestamp(conversation);
45
46
  return (_jsxs("button", { type: "button", className: "tagIt-chat-recent-conversation", onClick: () => onLoad(conversation.conversationId), children: [_jsx("span", { className: "tagIt-chat-recent-icon", "aria-hidden": true, children: _jsx(MessageSquare, { size: 15 }) }), _jsxs("span", { className: "tagIt-chat-recent-main", children: [_jsx("span", { className: "tagIt-chat-recent-title", children: label }), preview ? _jsx("span", { className: "tagIt-chat-recent-preview", children: preview }) : null] }), timestamp ? _jsx("span", { className: "tagIt-chat-recent-time", children: timestamp }) : null] }));
46
47
  }
48
+ function resourceTitle(reference, resources) {
49
+ return reference.resource?.title ||
50
+ resources.find((resource) => resource.resourceId === reference.resourceId)?.title ||
51
+ reference.resourceId;
52
+ }
53
+ function ResourceCards({ references, resources, }) {
54
+ if (!references?.length)
55
+ return null;
56
+ return (_jsx("div", { className: "tagIt-chat-message-resources", "aria-label": "Attached resources", children: references.map((reference) => (_jsxs("span", { className: "tagIt-chat-message-resource", children: [_jsx(FileText, { size: 14, "aria-hidden": true }), _jsx("span", { children: resourceTitle(reference, resources) })] }, reference.resourceId))) }));
57
+ }
47
58
  /**
48
59
  * Fully self-contained chat surface for the TagIt AI client.
49
60
  * This renders the default welcome state, message list, streaming indicator,
@@ -52,6 +63,7 @@ function ConversationPreview({ conversation, onLoad, }) {
52
63
  export function ChatConversation({ className, scrollToMessageId, highlightMessageId, }) {
53
64
  const { messages, sendMessage, cancel, retry, reEditMessage, isLoading, isStreaming, error, lastError, workflowId, workflowStatus, workflowRevision, checkpointPrompt, } = useConversation();
54
65
  const conversationHistory = useConversationHistory({ limit: 5 });
66
+ const conversationResources = useConversationResources();
55
67
  const conversationBoundary = useConversationBoundary();
56
68
  const [inputValue, setInputValue] = useState('');
57
69
  const inputValueRef = useRef('');
@@ -59,13 +71,17 @@ export function ChatConversation({ className, scrollToMessageId, highlightMessag
59
71
  const checkpointAnswerRef = useRef('');
60
72
  const [isReEditMode, setIsReEditMode] = useState(false);
61
73
  const [showNoPreviousConversations, setShowNoPreviousConversations] = useState(false);
74
+ const [resourcePickerOpen, setResourcePickerOpen] = useState(false);
75
+ const [resourceSidecarHost, setResourceSidecarHost] = useState(null);
76
+ const [resourceSidecarEnabled, setResourceSidecarEnabled] = useState(false);
77
+ const conversationRootRef = useRef(null);
62
78
  const textareaRef = useRef(null);
79
+ const resourceFileRef = useRef(null);
63
80
  const [isAtBottom, setIsAtBottom] = useState(true);
64
81
  const wasLoadingRef = useRef(false);
65
82
  const messagesAreaRef = useRef(null);
66
83
  const scrollEndRef = useRef(null);
67
84
  const lastUserMsgRef = useRef(null);
68
- const shouldAutoScrollRef = useRef(true);
69
85
  const prevMessageCountRef = useRef(messages.length);
70
86
  const highlightedMessageIds = useMemo(() => {
71
87
  if (!highlightMessageId)
@@ -92,6 +108,29 @@ export function ChatConversation({ className, scrollToMessageId, highlightMessag
92
108
  useEffect(() => {
93
109
  checkpointAnswerRef.current = checkpointAnswer;
94
110
  }, [checkpointAnswer]);
111
+ useLayoutEffect(() => {
112
+ setResourceSidecarHost(conversationRootRef.current?.closest('.tagIt-chat-widget') ?? null);
113
+ }, []);
114
+ useEffect(() => {
115
+ if (typeof window === 'undefined' || !resourceSidecarHost) {
116
+ setResourceSidecarEnabled(false);
117
+ return;
118
+ }
119
+ const panel = resourceSidecarHost.querySelector('.tagIt-chat-panel');
120
+ const update = () => {
121
+ const panelWidth = panel?.getBoundingClientRect().width ?? 0;
122
+ setResourceSidecarEnabled(window.innerWidth >= 900 && window.innerWidth - panelWidth >= 300);
123
+ };
124
+ update();
125
+ window.addEventListener('resize', update);
126
+ const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(update);
127
+ if (panel)
128
+ observer?.observe(panel);
129
+ return () => {
130
+ window.removeEventListener('resize', update);
131
+ observer?.disconnect();
132
+ };
133
+ }, [resourceSidecarHost]);
95
134
  useEffect(() => conversationBoundary.registerComposer({
96
135
  getDraft: () => inputValueRef.current || checkpointAnswerRef.current,
97
136
  clearDraft: () => {
@@ -110,18 +149,7 @@ export function ChatConversation({ className, scrollToMessageId, highlightMessag
110
149
  return;
111
150
  const atBottom = el.scrollHeight - el.scrollTop - el.clientHeight < 60;
112
151
  setIsAtBottom(atBottom);
113
- shouldAutoScrollRef.current = atBottom;
114
152
  }, []);
115
- useLayoutEffect(() => {
116
- if (!shouldAutoScrollRef.current)
117
- return;
118
- const el = messagesAreaRef.current;
119
- if (!el)
120
- return;
121
- if (el.scrollHeight - el.scrollTop - el.clientHeight > 5) {
122
- el.scrollTop = el.scrollHeight;
123
- }
124
- });
125
153
  useEffect(() => {
126
154
  const currCount = messages.length;
127
155
  const prevCount = prevMessageCountRef.current;
@@ -131,7 +159,6 @@ export function ChatConversation({ className, scrollToMessageId, highlightMessag
131
159
  if (lastMsg?.role === 'user') {
132
160
  requestAnimationFrame(() => {
133
161
  lastUserMsgRef.current?.scrollIntoView({ behavior: 'smooth', block: 'start' });
134
- shouldAutoScrollRef.current = true;
135
162
  });
136
163
  }
137
164
  }
@@ -142,19 +169,17 @@ export function ChatConversation({ className, scrollToMessageId, highlightMessag
142
169
  const target = Array.from(messagesAreaRef.current?.querySelectorAll('[data-message-id]') ?? []).find((element) => element.dataset.messageId === scrollToMessageId);
143
170
  if (!target)
144
171
  return;
145
- shouldAutoScrollRef.current = false;
146
172
  target.scrollIntoView({ behavior: 'smooth', block: 'start' });
147
173
  }, [messages.length, scrollToMessageId]);
148
174
  const scrollToBottom = () => {
149
175
  scrollEndRef.current?.scrollIntoView({ behavior: 'smooth' });
150
- shouldAutoScrollRef.current = true;
151
176
  setIsAtBottom(true);
152
177
  };
153
178
  const handleSubmit = (event) => {
154
179
  event.preventDefault();
155
180
  const trimmed = inputValue.trim();
156
181
  if (trimmed && !isLoading) {
157
- sendMessage(trimmed);
182
+ sendMessage(trimmed, { resourceReferences: conversationResources.attachments });
158
183
  setInputValue('');
159
184
  setIsReEditMode(false);
160
185
  if (textareaRef.current)
@@ -187,7 +212,7 @@ export function ChatConversation({ className, scrollToMessageId, highlightMessag
187
212
  event.preventDefault();
188
213
  const trimmed = inputValue.trim();
189
214
  if (trimmed && !isLoading) {
190
- sendMessage(trimmed);
215
+ sendMessage(trimmed, { resourceReferences: conversationResources.attachments });
191
216
  setInputValue('');
192
217
  setIsReEditMode(false);
193
218
  if (textareaRef.current)
@@ -284,7 +309,14 @@ export function ChatConversation({ className, scrollToMessageId, highlightMessag
284
309
  conversationHistory.loadingConversationId,
285
310
  isEmpty,
286
311
  ]);
287
- return (_jsxs("div", { className: ['tagIt-chat-conversation', className || ''].join(' ').trim(), children: [_jsxs("div", { className: "tagIt-chat-viewport", ref: messagesAreaRef, onScroll: handleScroll, role: "log", "aria-label": "Conversation", "aria-live": "polite", children: [isEmpty && (_jsxs("div", { className: "tagIt-chat-empty", children: [_jsx("div", { className: "tagIt-chat-empty-icon", "aria-hidden": "true", children: "Chat" }), _jsx("h2", { className: "tagIt-chat-empty-title", children: "How can I help?" }), _jsx("p", { className: "tagIt-chat-empty-subtitle", children: "Ask me anything to get started." }), showRecentConversations ? (_jsxs("div", { className: "tagIt-chat-recent-list", "aria-label": "Recent conversations", children: [_jsx("div", { className: "tagIt-chat-recent-heading", children: "Previous Chats" }), conversationHistory.conversations.slice(0, 5).map((conversation) => (_jsx(ConversationPreview, { conversation: conversation, onLoad: (conversationId) => {
312
+ const renderResourcePicker = (sidecar) => (_jsx("div", { className: sidecar ? 'tagIt-chat-resource-sidecar' : undefined, children: _jsxs("div", { className: "tagIt-chat-resource-picker", children: [_jsxs("div", { className: "tagIt-chat-resource-picker-header", children: [_jsx("div", { children: _jsx("strong", { children: "My Files" }) }), _jsxs("div", { className: "tagIt-chat-resource-picker-actions", children: [_jsx(ChatTooltip, { label: "Refresh resources", children: _jsx("button", { type: "button", "aria-label": "Refresh resources", onClick: () => void conversationResources.refresh(), children: _jsx(RefreshCw, { size: 16 }) }) }), conversationResources.allowUpload ? (_jsx(ChatTooltip, { label: "Upload file", children: _jsx("button", { type: "button", "aria-label": "Upload file", onClick: () => resourceFileRef.current?.click(), children: _jsx(Upload, { size: 16 }) }) })) : null, sidecar ? (_jsx(ChatTooltip, { label: "Close resources", children: _jsx("button", { type: "button", "aria-label": "Close resources", onClick: () => setResourcePickerOpen(false), children: _jsx(X, { size: 16 }) }) })) : null] })] }), conversationResources.error ? (_jsx("div", { className: "tagIt-chat-resource-error", role: "alert", children: conversationResources.error })) : null, _jsx("div", { className: "tagIt-chat-resource-list", children: conversationResources.isLoading ? (_jsx("div", { className: "tagIt-chat-resource-empty", children: "Loading resources..." })) : conversationResources.resources.length === 0 ? (_jsx("div", { className: "tagIt-chat-resource-empty", children: "No private resources yet." })) : (conversationResources.resources.map((resource) => {
313
+ const selected = conversationResources.attachments.some((reference) => reference.resourceId === resource.resourceId);
314
+ return (_jsxs("button", { type: "button", className: "tagIt-chat-resource-option", "data-selected": selected ? '' : undefined, onClick: () => void (selected
315
+ ? conversationResources.detach(resource.resourceId)
316
+ : conversationResources.attach(resource.resourceId)), children: [_jsx(FileText, { size: 17, "aria-hidden": true }), _jsxs("span", { children: [_jsx("strong", { children: resource.title }), _jsx("small", { children: resource.storage?.mimeType || resource.resourceType })] }), selected ? _jsx(Check, { size: 16, "aria-label": "Attached" }) : null] }, resource.resourceId));
317
+ })) })] }) }));
318
+ const showResourceSidecar = Boolean(resourceSidecarHost && resourceSidecarEnabled);
319
+ return (_jsxs("div", { ref: conversationRootRef, className: ['tagIt-chat-conversation', className || ''].join(' ').trim(), children: [_jsxs("div", { className: "tagIt-chat-viewport", ref: messagesAreaRef, onScroll: handleScroll, role: "log", "aria-label": "Conversation", "aria-live": "polite", children: [isEmpty && (_jsxs("div", { className: "tagIt-chat-empty", children: [_jsx("div", { className: "tagIt-chat-empty-icon", "aria-hidden": "true", children: "Chat" }), _jsx("h2", { className: "tagIt-chat-empty-title", children: "How can I help?" }), _jsx("p", { className: "tagIt-chat-empty-subtitle", children: "Ask me anything to get started." }), showRecentConversations ? (_jsxs("div", { className: "tagIt-chat-recent-list", "aria-label": "Recent conversations", children: [_jsx("div", { className: "tagIt-chat-recent-heading", children: "Previous Chats" }), conversationHistory.conversations.slice(0, 5).map((conversation) => (_jsx(ConversationPreview, { conversation: conversation, onLoad: (conversationId) => {
288
320
  const selected = conversationHistory.conversations.find((conversation) => conversation.conversationId === conversationId);
289
321
  void conversationBoundary.requestTransition({
290
322
  kind: 'history',
@@ -297,10 +329,28 @@ export function ChatConversation({ className, scrollToMessageId, highlightMessag
297
329
  return (_jsx("div", { ref: isLastUserMsg ? (el) => { lastUserMsgRef.current = el; } : undefined, className: [
298
330
  'tagIt-chat-message',
299
331
  highlightedMessageIds.has(message.id) ? 'tagIt-chat-message--activity-highlight' : '',
300
- ].filter(Boolean).join(' '), "data-message-id": message.id, "data-role": message.role, children: _jsx("div", { className: "tagIt-chat-message-body", children: message.role === 'user' ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "tagIt-chat-message-bubble", children: _jsx(ContentBlockRenderer, { role: message.role, content: message.content }) }), !isLoading && (_jsxs("div", { className: "tagIt-chat-message-actions", children: [_jsx(MessageCopyButton, { text: message.content }), _jsx(ChatTooltip, { label: "Edit", children: _jsx("button", { type: "button", className: "tagIt-chat-message-action-btn", onClick: () => handleReEdit(message.id), "aria-label": "Edit this message", children: _jsx(Pencil, { size: 16 }) }) })] }))] })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "tagIt-chat-assistant-content", children: _jsx(ContentBlockRenderer, { role: message.role, content: message.content, showStreamingCursor: isStreaming && isLastMsg && message.content.trim().length > 0 }) }), !isLoading && !isStreaming && (_jsxs("div", { className: "tagIt-chat-message-actions", children: [_jsx(MessageCopyButton, { text: message.content }), isLastMsg && (_jsx(ChatTooltip, { label: "Regenerate", children: _jsx("button", { type: "button", className: "tagIt-chat-message-action-btn", onClick: handleRetry, "aria-label": "Regenerate response", children: _jsx(RotateCcw, { size: 16 }) }) }))] }))] })) }) }, message.id));
332
+ ].filter(Boolean).join(' '), "data-message-id": message.id, "data-role": message.role, children: _jsx("div", { className: "tagIt-chat-message-body", children: message.role === 'user' ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "tagIt-chat-message-bubble", children: _jsx(ContentBlockRenderer, { role: message.role, content: message.content }) }), _jsx(ResourceCards, { references: message.resourceReferences, resources: conversationResources.resources }), !isLoading && (_jsxs("div", { className: "tagIt-chat-message-actions", children: [_jsx(MessageCopyButton, { text: message.content }), _jsx(ChatTooltip, { label: "Edit", children: _jsx("button", { type: "button", className: "tagIt-chat-message-action-btn", onClick: () => handleReEdit(message.id), "aria-label": "Edit this message", children: _jsx(Pencil, { size: 16 }) }) })] }))] })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "tagIt-chat-assistant-content", children: _jsx(ContentBlockRenderer, { role: message.role, content: message.content, showStreamingCursor: isStreaming && isLastMsg && message.content.trim().length > 0 }) }), !isLoading && !isStreaming && (_jsxs("div", { className: "tagIt-chat-message-actions", children: [_jsx(MessageCopyButton, { text: message.content }), isLastMsg && (_jsx(ChatTooltip, { label: "Regenerate", children: _jsx("button", { type: "button", className: "tagIt-chat-message-action-btn", onClick: handleRetry, "aria-label": "Regenerate response", children: _jsx(RotateCcw, { size: 16 }) }) }))] }))] })) }) }, message.id));
301
333
  }), showTypingIndicator && (_jsx("div", { className: "tagIt-chat-message", "data-role": "assistant", "aria-label": "Assistant is typing", children: _jsx("div", { className: "tagIt-chat-message-body", children: _jsxs("div", { className: "tagIt-chat-typing-indicator", "aria-hidden": "true", children: [_jsx("span", {}), _jsx("span", {}), _jsx("span", {})] }) }) })), showError && (_jsxs("div", { className: "tagIt-chat-error-row", role: "alert", children: [_jsx("span", { className: "tagIt-chat-error-text", children: "Something went wrong - please try again." }), _jsx("button", { type: "button", className: "tagIt-chat-error-retry", onClick: handleRetry, children: "Retry" })] })), messages.length > 0 && _jsx("div", { className: "tagIt-chat-viewport-slack", "aria-hidden": "true" }), _jsx("div", { ref: scrollEndRef })] }), _jsx("div", { className: "tagIt-chat-scroll-to-bottom-anchor", children: _jsx("div", { className: "tagIt-chat-scroll-to-bottom-wrap", "data-visible": !isAtBottom ? '' : undefined, "aria-hidden": isAtBottom, children: _jsx("button", { type: "button", className: "tagIt-chat-scroll-to-bottom", onClick: scrollToBottom, "aria-label": "Scroll to bottom", tabIndex: isAtBottom ? -1 : 0, children: "v" }) }) }), _jsxs("form", { onSubmit: isWaitingAtCheckpoint ? (event) => {
302
334
  event.preventDefault();
303
335
  handleCheckpointSubmit();
304
- } : handleSubmit, className: "tagIt-chat-input-form", children: [isWaitingAtCheckpoint ? (_jsx("div", { className: "tagIt-chat-checkpoint-prompt", role: "status", children: _jsx("p", { children: checkpointPrompt }) })) : null, _jsxs("div", { className: "tagIt-chat-input-wrap", children: [_jsx("textarea", { ref: textareaRef, value: isWaitingAtCheckpoint ? checkpointAnswer : inputValue, onChange: isWaitingAtCheckpoint ? handleCheckpointInputChange : handleInputChange, onKeyDown: isWaitingAtCheckpoint ? handleCheckpointKeyDown : handleKeyDown, placeholder: isWaitingAtCheckpoint ? 'Reply to the agent...' : 'Type your message...', disabled: isLoading, className: "tagIt-chat-input", rows: 3, autoFocus: true }), _jsx("div", { className: "tagIt-chat-input-actions", children: isLoading ? (_jsx("button", { type: "button", onClick: () => cancel(), className: "tagIt-chat-stop-button", "aria-label": "Stop generating", children: "Stop" })) : (_jsx("button", { type: "submit", disabled: !(isWaitingAtCheckpoint ? checkpointAnswer : inputValue).trim(), className: "tagIt-chat-send-button", "aria-label": isWaitingAtCheckpoint ? 'Send reply' : 'Send message', children: "Send" })) })] })] }), _jsx(ConversationTransitionDialog, {})] }));
336
+ } : handleSubmit, className: "tagIt-chat-input-form", children: [isWaitingAtCheckpoint ? (_jsx("div", { className: "tagIt-chat-checkpoint-prompt", role: "status", children: _jsx("p", { children: checkpointPrompt }) })) : null, conversationResources.enabled && conversationResources.attachments.length > 0 ? (_jsx("div", { className: "tagIt-chat-resource-chips", "aria-label": "Conversation attachments", children: conversationResources.attachments.map((reference) => (_jsxs("span", { className: "tagIt-chat-resource-chip", children: [_jsx(FileText, { size: 14, "aria-hidden": true }), _jsx("span", { children: resourceTitle(reference, conversationResources.resources) }), _jsx("button", { type: "button", onClick: () => void conversationResources.detach(reference.resourceId), "aria-label": `Remove ${resourceTitle(reference, conversationResources.resources)}`, children: _jsx(X, { size: 13 }) })] }, reference.resourceId))) })) : null, conversationResources.enabled && resourcePickerOpen && !showResourceSidecar
337
+ ? renderResourcePicker(false)
338
+ : null, _jsxs("div", { className: "tagIt-chat-input-wrap", children: [_jsx("textarea", { ref: textareaRef, value: isWaitingAtCheckpoint ? checkpointAnswer : inputValue, onChange: isWaitingAtCheckpoint ? handleCheckpointInputChange : handleInputChange, onKeyDown: isWaitingAtCheckpoint ? handleCheckpointKeyDown : handleKeyDown, placeholder: isWaitingAtCheckpoint ? 'Reply to the agent...' : 'Type your message...', disabled: isLoading, className: "tagIt-chat-input", rows: 3, autoFocus: true }), _jsxs("div", { className: "tagIt-chat-input-actions", children: [conversationResources.enabled &&
339
+ (conversationResources.allowPicker || conversationResources.allowUpload) &&
340
+ !isWaitingAtCheckpoint ? (_jsx(ChatTooltip, { label: conversationResources.allowPicker ? 'Add files' : 'Upload file', side: "right", children: _jsxs("button", { type: "button", className: "tagIt-chat-resource-button", "data-active": resourcePickerOpen ? '' : undefined, onClick: () => {
341
+ if (conversationResources.allowPicker) {
342
+ setResourcePickerOpen((open) => !open);
343
+ }
344
+ else {
345
+ resourceFileRef.current?.click();
346
+ }
347
+ }, "aria-label": conversationResources.allowPicker ? 'Add files' : 'Upload file', children: [_jsx(Paperclip, { size: 17 }), conversationResources.attachments.length > 0 ? (_jsx("span", { children: conversationResources.attachments.length })) : null] }) })) : _jsx("span", {}), isLoading ? (_jsx("button", { type: "button", onClick: () => cancel(), className: "tagIt-chat-stop-button", "aria-label": "Stop generating", children: "Stop" })) : (_jsx("button", { type: "submit", disabled: !(isWaitingAtCheckpoint ? checkpointAnswer : inputValue).trim(), className: "tagIt-chat-send-button", "aria-label": isWaitingAtCheckpoint ? 'Send reply' : 'Send message', children: "Send" }))] })] }), conversationResources.enabled && conversationResources.allowUpload ? (_jsx("input", { ref: resourceFileRef, className: "tagIt-chat-resource-file-input", type: "file", accept: conversationResources.acceptedMimeTypes, disabled: conversationResources.isUploading, onChange: (event) => {
348
+ const file = event.currentTarget.files?.[0];
349
+ if (file)
350
+ void conversationResources.upload(file);
351
+ event.currentTarget.value = '';
352
+ } })) : null] }), _jsx(ConversationTransitionDialog, {}), conversationResources.enabled && resourcePickerOpen && showResourceSidecar
353
+ ? createPortal(renderResourcePicker(true), resourceSidecarHost)
354
+ : null] }));
305
355
  }
306
356
  //# sourceMappingURL=chat-conversation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-conversation.js","sourceRoot":"","sources":["../src/chat-conversation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-conversation.js","sourceRoot":"","sources":["../src/chat-conversation.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-history.d.ts","sourceRoot":"","sources":["../src/chat-history.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AA2HxC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE,qBAAqB,qBA8FlE"}
1
+ {"version":3,"file":"chat-history.d.ts","sourceRoot":"","sources":["../src/chat-history.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAmNxC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE,qBAAqB,qBA+HlE"}