@amodalai/react 0.1.0 → 0.1.1
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/client/ChatClient.d.ts +76 -0
- package/dist/client/ChatClient.d.ts.map +1 -0
- package/dist/client/ChatStream.d.ts +63 -0
- package/dist/client/ChatStream.d.ts.map +1 -0
- package/dist/client/EventEmitter.d.ts +16 -0
- package/dist/client/EventEmitter.d.ts.map +1 -0
- package/dist/client/chat-api.d.ts +80 -0
- package/dist/client/chat-api.d.ts.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client.js +437 -123
- package/dist/client.js.map +1 -1
- package/dist/event-bus-h26clqbZ.js +297 -0
- package/dist/event-bus-h26clqbZ.js.map +1 -0
- package/dist/events/entity-extractor.d.ts +7 -0
- package/dist/events/entity-extractor.d.ts.map +1 -0
- package/dist/events/event-bus.d.ts +27 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/index.d.ts +9 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/types.d.ts +72 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/hooks/useAmodalChat.d.ts.map +1 -1
- package/dist/hooks/useChat.d.ts +52 -0
- package/dist/hooks/useChat.d.ts.map +1 -0
- package/dist/hooks/useSessionHistory.d.ts +17 -0
- package/dist/hooks/useSessionHistory.d.ts.map +1 -0
- package/dist/hooks/useWidgetEvents.d.ts +17 -0
- package/dist/hooks/useWidgetEvents.d.ts.map +1 -0
- package/dist/index.d.ts +17 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/react.css +5 -0
- package/dist/react.js +245 -222
- package/dist/react.js.map +1 -1
- package/dist/theme-BaBR_tym.js +691 -0
- package/dist/theme-BaBR_tym.js.map +1 -0
- package/dist/theme.d.ts +11 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/types.d.ts +106 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/umd-entry.d.ts +21 -0
- package/dist/umd-entry.d.ts.map +1 -0
- package/dist/widget/AskUserCard.d.ts +8 -0
- package/dist/widget/AskUserCard.d.ts.map +1 -0
- package/dist/widget/ChatWidget.d.ts +9 -0
- package/dist/widget/ChatWidget.d.ts.map +1 -0
- package/dist/widget/FormattedText.d.ts +12 -0
- package/dist/widget/FormattedText.d.ts.map +1 -0
- package/dist/widget/InputBar.d.ts +15 -0
- package/dist/widget/InputBar.d.ts.map +1 -0
- package/dist/widget/KBProposalCard.d.ts +7 -0
- package/dist/widget/KBProposalCard.d.ts.map +1 -0
- package/dist/widget/MessageList.d.ts +15 -0
- package/dist/widget/MessageList.d.ts.map +1 -0
- package/dist/widget/SessionHistory.d.ts +12 -0
- package/dist/widget/SessionHistory.d.ts.map +1 -0
- package/dist/widget/SkillPill.d.ts +11 -0
- package/dist/widget/SkillPill.d.ts.map +1 -0
- package/dist/widget/StreamingIndicator.d.ts +7 -0
- package/dist/widget/StreamingIndicator.d.ts.map +1 -0
- package/dist/widget/TagEditor.d.ts +11 -0
- package/dist/widget/TagEditor.d.ts.map +1 -0
- package/dist/widget/ToolCallCard.d.ts +7 -0
- package/dist/widget/ToolCallCard.d.ts.map +1 -0
- package/dist/widget/index.d.ts +33 -0
- package/dist/widget/index.d.ts.map +1 -0
- package/dist/widget/widgets/AlertCard.d.ts +3 -0
- package/dist/widget/widgets/AlertCard.d.ts.map +1 -0
- package/dist/widget/widgets/Comparison.d.ts +3 -0
- package/dist/widget/widgets/Comparison.d.ts.map +1 -0
- package/dist/widget/widgets/CredentialInput.d.ts +3 -0
- package/dist/widget/widgets/CredentialInput.d.ts.map +1 -0
- package/dist/widget/widgets/DataTable.d.ts +3 -0
- package/dist/widget/widgets/DataTable.d.ts.map +1 -0
- package/dist/widget/widgets/DocumentPreview.d.ts +3 -0
- package/dist/widget/widgets/DocumentPreview.d.ts.map +1 -0
- package/dist/widget/widgets/EntityCard.d.ts +3 -0
- package/dist/widget/widgets/EntityCard.d.ts.map +1 -0
- package/dist/widget/widgets/EntityList.d.ts +3 -0
- package/dist/widget/widgets/EntityList.d.ts.map +1 -0
- package/dist/widget/widgets/InfoCard.d.ts +3 -0
- package/dist/widget/widgets/InfoCard.d.ts.map +1 -0
- package/dist/widget/widgets/Metric.d.ts +3 -0
- package/dist/widget/widgets/Metric.d.ts.map +1 -0
- package/dist/widget/widgets/ScopeMap.d.ts +3 -0
- package/dist/widget/widgets/ScopeMap.d.ts.map +1 -0
- package/dist/widget/widgets/ScoreBreakdown.d.ts +3 -0
- package/dist/widget/widgets/ScoreBreakdown.d.ts.map +1 -0
- package/dist/widget/widgets/StatusBoard.d.ts +3 -0
- package/dist/widget/widgets/StatusBoard.d.ts.map +1 -0
- package/dist/widget/widgets/Timeline.d.ts +3 -0
- package/dist/widget/widgets/Timeline.d.ts.map +1 -0
- package/dist/widget/widgets/WidgetRenderer.d.ts +28 -0
- package/dist/widget/widgets/WidgetRenderer.d.ts.map +1 -0
- package/dist/widget.js +1668 -0
- package/dist/widget.js.map +1 -0
- package/package.json +8 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-BaBR_tym.js","sources":["../src/hooks/useChat.ts","../src/hooks/useWidgetEvents.ts","../src/hooks/useSessionHistory.ts","../src/theme.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2025 Amodal Labs, Inc.\n * SPDX-License-Identifier: MIT\n */\n\nimport { useCallback, useEffect, useReducer, useRef } from 'react';\nimport type {\n ChatState,\n ChatAction,\n ChatMessage,\n AssistantTextMessage,\n ToolCallInfo,\n KBProposalInfo,\n WidgetInfo,\n ContentBlock,\n ChatUser,\n} from '../types';\nimport { streamChat, getSessionHistory } from '../client/chat-api';\nimport { WidgetEventBus } from '../events/event-bus';\nimport type { WidgetEvent, EntityExtractor } from '../events/types';\n\nconst initialState: ChatState = {\n messages: [],\n sessionId: null,\n isStreaming: false,\n error: null,\n activeToolCalls: [],\n isHistorical: false,\n};\n\nlet messageCounter = 0;\n\nfunction createMessageId(): string {\n messageCounter++;\n return `msg-${Date.now()}-${String(messageCounter)}`;\n}\n\nexport function chatReducer(state: ChatState, action: ChatAction): ChatState {\n switch (action.type) {\n case 'SEND_MESSAGE': {\n const userMessage: ChatMessage = {\n type: 'user',\n id: createMessageId(),\n text: action.text,\n timestamp: new Date().toISOString(),\n };\n const assistantMessage: AssistantTextMessage = {\n type: 'assistant_text',\n id: createMessageId(),\n text: '',\n toolCalls: [],\n confirmations: [],\n skillActivations: [],\n kbProposals: [],\n widgets: [],\n contentBlocks: [],\n timestamp: new Date().toISOString(),\n };\n return {\n ...state,\n messages: [...state.messages, userMessage, assistantMessage],\n isStreaming: true,\n error: null,\n activeToolCalls: [],\n isHistorical: false,\n };\n }\n case 'STREAM_INIT':\n return { ...state, sessionId: action.sessionId };\n case 'STREAM_TEXT_DELTA': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n if (last && last.type === 'assistant_text') {\n // Append to content blocks: merge into last text block or create new one\n const blocks = [...last.contentBlocks];\n const lastBlock = blocks[blocks.length - 1];\n if (lastBlock && lastBlock.type === 'text') {\n blocks[blocks.length - 1] = { type: 'text', text: lastBlock.text + action.content };\n } else {\n blocks.push({ type: 'text', text: action.content });\n }\n msgs[msgs.length - 1] = { ...last, text: last.text + action.content, contentBlocks: blocks };\n }\n return { ...state, messages: msgs };\n }\n case 'STREAM_TOOL_CALL_START': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n const toolCall: ToolCallInfo = {\n toolId: action.toolId,\n toolName: action.toolName,\n parameters: action.parameters,\n status: 'running',\n };\n if (last && last.type === 'assistant_text') {\n // Add to flat toolCalls array (backwards compat)\n const updatedToolCalls = [...last.toolCalls, toolCall];\n // Add to contentBlocks: append to existing tool_calls block or create new one\n const blocks = [...last.contentBlocks];\n const lastBlock = blocks[blocks.length - 1];\n if (lastBlock && lastBlock.type === 'tool_calls') {\n blocks[blocks.length - 1] = { type: 'tool_calls', calls: [...lastBlock.calls, toolCall] };\n } else {\n blocks.push({ type: 'tool_calls', calls: [toolCall] });\n }\n msgs[msgs.length - 1] = { ...last, toolCalls: updatedToolCalls, contentBlocks: blocks };\n }\n return {\n ...state,\n messages: msgs,\n activeToolCalls: [...state.activeToolCalls, toolCall],\n };\n }\n case 'STREAM_TOOL_CALL_RESULT': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n if (last && last.type === 'assistant_text') {\n const updateCall = (tc: ToolCallInfo): ToolCallInfo =>\n tc.toolId === action.toolId\n ? {\n ...tc,\n status: action.status,\n result: action.result,\n duration_ms: action.duration_ms,\n error: action.error,\n }\n : tc;\n const updatedCalls = last.toolCalls.map(updateCall);\n // Also update inside contentBlocks\n const blocks = last.contentBlocks.map((block): ContentBlock =>\n block.type === 'tool_calls'\n ? { ...block, calls: block.calls.map(updateCall) }\n : block,\n );\n msgs[msgs.length - 1] = { ...last, toolCalls: updatedCalls, contentBlocks: blocks };\n }\n const activeToolCalls = state.activeToolCalls.filter(\n (tc) => tc.toolId !== action.toolId,\n );\n return { ...state, messages: msgs, activeToolCalls };\n }\n case 'STREAM_SUBAGENT_EVENT': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n if (last && last.type === 'assistant_text') {\n const appendEvent = (tc: ToolCallInfo): ToolCallInfo =>\n tc.toolId === action.parentToolId\n ? { ...tc, subagentEvents: [...(tc.subagentEvents ?? []), action.event] }\n : tc;\n const updatedCalls = last.toolCalls.map(appendEvent);\n const blocks = last.contentBlocks.map((block) =>\n block.type === 'tool_calls'\n ? { ...block, calls: block.calls.map(appendEvent) }\n : block,\n );\n msgs[msgs.length - 1] = { ...last, toolCalls: updatedCalls, contentBlocks: blocks };\n }\n return { ...state, messages: msgs };\n }\n case 'STREAM_SKILL_ACTIVATED': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n if (last && last.type === 'assistant_text') {\n msgs[msgs.length - 1] = {\n ...last,\n skillActivations: [...last.skillActivations, action.skill],\n };\n }\n return { ...state, messages: msgs };\n }\n case 'STREAM_KB_PROPOSAL': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n const proposal: KBProposalInfo = {\n scope: action.scope,\n title: action.title,\n reasoning: action.reasoning,\n };\n if (last && last.type === 'assistant_text') {\n msgs[msgs.length - 1] = {\n ...last,\n kbProposals: [...last.kbProposals, proposal],\n };\n }\n return { ...state, messages: msgs };\n }\n case 'STREAM_WIDGET': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n if (last && last.type === 'assistant_text') {\n const widget: WidgetInfo = {\n widgetType: action.widgetType,\n data: action.data,\n };\n const block: ContentBlock = {\n type: 'widget',\n widgetType: action.widgetType,\n data: action.data,\n };\n msgs[msgs.length - 1] = {\n ...last,\n widgets: [...last.widgets, widget],\n contentBlocks: [...last.contentBlocks, block],\n };\n }\n return { ...state, messages: msgs };\n }\n case 'STREAM_ASK_USER': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n if (last && last.type === 'assistant_text') {\n const block: ContentBlock = {\n type: 'ask_user',\n askId: action.askId,\n questions: action.questions,\n status: 'pending',\n };\n msgs[msgs.length - 1] = {\n ...last,\n contentBlocks: [...last.contentBlocks, block],\n };\n }\n return { ...state, messages: msgs };\n }\n case 'ASK_USER_SUBMITTED': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n if (last && last.type === 'assistant_text') {\n const blocks = last.contentBlocks.map((block) =>\n block.type === 'ask_user' && block.askId === action.askId\n ? { ...block, status: 'submitted' as const, answers: action.answers }\n : block,\n );\n msgs[msgs.length - 1] = { ...last, contentBlocks: blocks };\n }\n return { ...state, messages: msgs };\n }\n case 'STREAM_CONFIRMATION_REQUIRED': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n if (last && last.type === 'assistant_text') {\n const block: ContentBlock = {\n type: 'confirmation',\n confirmation: action.confirmation,\n };\n msgs[msgs.length - 1] = {\n ...last,\n confirmations: [...last.confirmations, action.confirmation],\n contentBlocks: [...last.contentBlocks, block],\n };\n }\n return { ...state, messages: msgs };\n }\n case 'CONFIRMATION_RESPONDED': {\n const msgs = [...state.messages];\n const last = msgs[msgs.length - 1];\n if (last && last.type === 'assistant_text') {\n const updatedConfirmations = last.confirmations.map((c) =>\n c.correlationId === action.correlationId\n ? { ...c, status: (action.approved ? 'approved' : 'denied') as import('../types').ConfirmationInfo['status'] }\n : c,\n );\n const blocks = last.contentBlocks.map((block) =>\n block.type === 'confirmation' && block.confirmation.correlationId === action.correlationId\n ? { ...block, confirmation: { ...block.confirmation, status: (action.approved ? 'approved' : 'denied') as import('../types').ConfirmationInfo['status'] } }\n : block,\n );\n msgs[msgs.length - 1] = { ...last, confirmations: updatedConfirmations, contentBlocks: blocks };\n }\n return { ...state, messages: msgs };\n }\n case 'STREAM_CREDENTIAL_SAVED':\n case 'STREAM_APPROVED':\n // These events are tracked but don't modify message state currently\n return state;\n case 'STREAM_ERROR':\n return { ...state, isStreaming: false, error: action.message, activeToolCalls: [] };\n case 'STREAM_DONE': {\n // Mark any still-running tool calls as stopped\n const doneMessages = [...state.messages];\n const lastMsg = doneMessages[doneMessages.length - 1];\n if (lastMsg && lastMsg.type === 'assistant_text') {\n const stopRunning = (tc: ToolCallInfo): ToolCallInfo =>\n tc.status === 'running' ? { ...tc, status: 'error', error: 'Stopped' } : tc;\n const stoppedCalls = lastMsg.toolCalls.map(stopRunning);\n const stoppedBlocks = lastMsg.contentBlocks.map((block) =>\n block.type === 'tool_calls'\n ? { ...block, calls: block.calls.map(stopRunning) }\n : block,\n );\n doneMessages[doneMessages.length - 1] = { ...lastMsg, toolCalls: stoppedCalls, contentBlocks: stoppedBlocks };\n }\n return { ...state, messages: doneMessages, isStreaming: false, activeToolCalls: [] };\n }\n case 'LOAD_HISTORY':\n return {\n ...initialState,\n messages: action.messages,\n sessionId: action.sessionId,\n isHistorical: true,\n };\n case 'RESET':\n return { ...initialState };\n default:\n return state;\n }\n}\n\nexport interface UseChatOptions {\n serverUrl: string;\n user: ChatUser;\n /** Return a Bearer token (API key or JWT) for authenticated requests. */\n getToken?: () => string | null | undefined;\n onToolCall?: (call: ToolCallInfo) => void;\n onKBProposal?: (proposal: KBProposalInfo) => void;\n /** Callback for all widget events (agent-driven + interaction). */\n onEvent?: (event: WidgetEvent) => void;\n /** Custom entity extractors. If provided, replaces the default extractor. */\n entityExtractors?: EntityExtractor[];\n /** Session type — controls which skills, tools, KB docs load into this session. */\n sessionType?: string;\n /** Specific deployment ID to load instead of the active deployment. */\n deployId?: string;\n /** Auto-send this message when the hook mounts. Sent exactly once via ref guard. */\n initialMessage?: string;\n /** Load an existing session on mount (read-only history view). Takes precedence over initialMessage. */\n resumeSessionId?: string;\n /** Called when the SSE stream ends (agent finishes responding). */\n onStreamEnd?: () => void;\n /** Called when a session ID is received from the server (first stream init). */\n onSessionCreated?: (sessionId: string) => void;\n}\n\nexport interface UseChatReturn {\n messages: ChatMessage[];\n send: (text: string) => void;\n /** Stop the current stream without clearing history. */\n stop: () => void;\n isStreaming: boolean;\n activeToolCalls: ToolCallInfo[];\n session: { id: string | null; role?: string };\n error: string | null;\n reset: () => void;\n /** Event bus for subscribing to widget events. */\n eventBus: WidgetEventBus;\n /** Submit answers to a pending ask_user prompt. */\n submitAskUserResponse: (askId: string, answers: Record<string, string>) => void;\n /** Load a historical session for read-only viewing. */\n loadSession: (sessionId: string) => void;\n /** True when viewing a loaded historical session. */\n isHistorical: boolean;\n}\n\nexport function useChat(options: UseChatOptions): UseChatReturn {\n const { serverUrl, user, getToken, onToolCall, onKBProposal, onEvent, entityExtractors, sessionType, deployId, initialMessage, resumeSessionId, onStreamEnd, onSessionCreated } = options;\n const [state, dispatch] = useReducer(chatReducer, initialState);\n const sessionIdRef = useRef<string | null>(null);\n const abortControllerRef = useRef<AbortController | null>(null);\n const callbacksRef = useRef({ onToolCall, onKBProposal, getToken, onEvent, onStreamEnd, onSessionCreated });\n callbacksRef.current = { onToolCall, onKBProposal, getToken, onEvent, onStreamEnd, onSessionCreated };\n\n // Create event bus once, configure extractors\n const eventBusRef = useRef<WidgetEventBus | null>(null);\n if (!eventBusRef.current) {\n eventBusRef.current = new WidgetEventBus();\n if (entityExtractors) {\n eventBusRef.current.setExtractors(entityExtractors);\n }\n }\n const eventBus = eventBusRef.current;\n\n // Forward entity_referenced events to onEvent callback\n const entityRefHandlerRef = useRef<((e: WidgetEvent) => void) | null>(null);\n if (!entityRefHandlerRef.current) {\n entityRefHandlerRef.current = (e: WidgetEvent) => {\n callbacksRef.current.onEvent?.(e);\n };\n eventBus.on('entity_referenced', entityRefHandlerRef.current);\n }\n\n // Track pending tool calls for name/param lookup on result\n const pendingToolCallsRef = useRef<Map<string, { toolName: string; parameters: Record<string, unknown> }>>(new Map());\n\n // Keep ref in sync\n sessionIdRef.current = state.sessionId;\n\n const send = useCallback(\n (text: string) => {\n if (state.isStreaming) return;\n\n dispatch({ type: 'SEND_MESSAGE', text });\n\n const controller = new AbortController();\n abortControllerRef.current = controller;\n\n const runStream = async () => {\n let receivedDone = false;\n try {\n const token = callbacksRef.current.getToken?.() ?? undefined;\n const stream = streamChat(\n serverUrl,\n {\n message: text,\n session_id: sessionIdRef.current ?? undefined,\n role: user.role,\n session_type: sessionType,\n deploy_id: deployId,\n },\n controller.signal,\n token,\n );\n\n for await (const event of stream) {\n switch (event.type) {\n case 'init':\n dispatch({ type: 'STREAM_INIT', sessionId: event.session_id });\n callbacksRef.current.onSessionCreated?.(event.session_id);\n break;\n case 'text_delta':\n dispatch({ type: 'STREAM_TEXT_DELTA', content: event.content });\n break;\n case 'tool_call_start':\n dispatch({\n type: 'STREAM_TOOL_CALL_START',\n toolId: event.tool_id,\n toolName: event.tool_name,\n parameters: event.parameters,\n });\n pendingToolCallsRef.current.set(event.tool_id, {\n toolName: event.tool_name,\n parameters: event.parameters,\n });\n break;\n case 'tool_call_result': {\n const pending = pendingToolCallsRef.current.get(event.tool_id);\n const toolCallResult: ToolCallInfo = {\n toolId: event.tool_id,\n toolName: pending?.toolName ?? '',\n parameters: pending?.parameters ?? {},\n status: event.status,\n result: event.result,\n duration_ms: event.duration_ms,\n error: event.error,\n };\n pendingToolCallsRef.current.delete(event.tool_id);\n dispatch({\n type: 'STREAM_TOOL_CALL_RESULT',\n toolId: event.tool_id,\n status: event.status,\n result: event.result,\n duration_ms: event.duration_ms,\n error: event.error,\n });\n callbacksRef.current.onToolCall?.(toolCallResult);\n\n // Emit tool_executed event\n const toolEvent: WidgetEvent = {\n type: 'tool_executed',\n toolName: toolCallResult.toolName,\n toolId: toolCallResult.toolId,\n parameters: toolCallResult.parameters,\n status: event.status,\n result: event.result,\n duration_ms: event.duration_ms,\n error: event.error,\n timestamp: event.timestamp,\n };\n eventBus.processEvent(toolEvent);\n callbacksRef.current.onEvent?.(toolEvent);\n break;\n }\n case 'subagent_event':\n dispatch({\n type: 'STREAM_SUBAGENT_EVENT',\n parentToolId: event.parent_tool_id,\n event: {\n agentName: event.agent_name,\n eventType: event.event_type,\n toolName: event.tool_name,\n toolArgs: event.tool_args,\n result: event.result,\n text: event.text,\n error: event.error,\n timestamp: event.timestamp,\n },\n });\n break;\n case 'skill_activated': {\n dispatch({ type: 'STREAM_SKILL_ACTIVATED', skill: event.skill });\n const skillEvent: WidgetEvent = {\n type: 'skill_activated',\n skill: event.skill,\n timestamp: event.timestamp,\n };\n eventBus.processEvent(skillEvent);\n callbacksRef.current.onEvent?.(skillEvent);\n break;\n }\n case 'kb_proposal': {\n const proposal = {\n scope: event.scope,\n title: event.title,\n reasoning: event.reasoning,\n };\n dispatch({\n type: 'STREAM_KB_PROPOSAL',\n scope: event.scope,\n title: event.title,\n reasoning: event.reasoning,\n });\n callbacksRef.current.onKBProposal?.(proposal);\n\n const kbEvent: WidgetEvent = {\n type: 'kb_proposal',\n proposal,\n timestamp: event.timestamp,\n };\n eventBus.processEvent(kbEvent);\n callbacksRef.current.onEvent?.(kbEvent);\n break;\n }\n case 'widget': {\n dispatch({\n type: 'STREAM_WIDGET',\n widgetType: event.widget_type,\n data: event.data,\n });\n const widgetEvent: WidgetEvent = {\n type: 'widget_rendered',\n widgetType: event.widget_type,\n data: event.data,\n timestamp: event.timestamp,\n };\n eventBus.processEvent(widgetEvent);\n callbacksRef.current.onEvent?.(widgetEvent);\n break;\n }\n case 'ask_user':\n dispatch({\n type: 'STREAM_ASK_USER',\n askId: event.ask_id,\n questions: event.questions,\n });\n break;\n case 'credential_saved':\n dispatch({ type: 'STREAM_CREDENTIAL_SAVED', connectionName: event.connection_name });\n break;\n case 'approved':\n dispatch({ type: 'STREAM_APPROVED', resourceType: event.resource_type, previewId: event.preview_id });\n break;\n case 'error':\n dispatch({ type: 'STREAM_ERROR', message: event.message });\n break;\n case 'done':\n receivedDone = true;\n dispatch({ type: 'STREAM_DONE' });\n callbacksRef.current.onStreamEnd?.();\n break;\n default:\n break;\n }\n }\n } catch (err) {\n if (!(err instanceof DOMException && err.name === 'AbortError')) {\n dispatch({\n type: 'STREAM_ERROR',\n message: err instanceof Error ? err.message : 'Unknown error',\n });\n }\n } finally {\n abortControllerRef.current = null;\n // Safety net: if the stream ended without a 'done' event\n // (e.g., error path, network drop), still fire onStreamEnd\n if (!receivedDone && !controller.signal.aborted) {\n dispatch({ type: 'STREAM_DONE' });\n callbacksRef.current.onStreamEnd?.();\n }\n }\n };\n\n void runStream();\n },\n [serverUrl, user.role, state.isStreaming, eventBus, sessionType, deployId],\n );\n\n // Resume an existing session on mount (takes precedence over initialMessage).\n const resumeLoadedRef = useRef(false);\n useEffect(() => {\n if (!resumeSessionId || resumeLoadedRef.current) return;\n resumeLoadedRef.current = true;\n // Mark initial message as delivered so it never fires after session load\n initialMessageDeliveredRef.current = true;\n loadSession(resumeSessionId);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [resumeSessionId]);\n\n // Auto-send initialMessage once on mount. Uses two refs:\n // - `sent`: flips true once send() is called — prevents re-sends on re-renders\n // caused by dependency changes (e.g. `send` changing when isStreaming toggles).\n // - `delivered`: flips true when the stream completes without abort — prevents\n // re-sends after successful delivery. Stays false if the stream was aborted\n // (React StrictMode unmount), allowing retry on remount.\n const initialMessageSentRef = useRef(false);\n const initialMessageDeliveredRef = useRef(false);\n useEffect(() => {\n // Skip if resuming an existing session (prop-based or history-loaded)\n if (resumeSessionId) return;\n if (state.isHistorical) return;\n if (!initialMessage || initialMessageDeliveredRef.current) return;\n // Reset the sent guard — this effect re-runs on StrictMode remount\n // after the previous stream was aborted by cleanup.\n initialMessageSentRef.current = false;\n\n // Use a microtask to let React finish its synchronous StrictMode\n // unmount/remount cycle before starting the fetch.\n const timer = setTimeout(() => {\n if (!initialMessageSentRef.current && !initialMessageDeliveredRef.current) {\n initialMessageSentRef.current = true;\n send(initialMessage);\n }\n }, 0);\n\n return () => {\n clearTimeout(timer);\n };\n // Only depend on initialMessage — send is stable enough via ref pattern,\n // and we don't want dependency changes to re-trigger the initial send.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialMessage, state.isHistorical]);\n\n // Track successful delivery so re-renders never re-send.\n useEffect(() => {\n if (initialMessage && initialMessageSentRef.current && !state.isStreaming && state.messages.length > 0) {\n initialMessageDeliveredRef.current = true;\n }\n }, [initialMessage, state.isStreaming, state.messages.length]);\n\n const stop = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n abortControllerRef.current = null;\n }\n dispatch({ type: 'STREAM_DONE' });\n }, []);\n\n const reset = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n abortControllerRef.current = null;\n }\n dispatch({ type: 'RESET' });\n }, []);\n\n const submitAskUserResponse = useCallback(\n (askId: string, answers: Record<string, string>) => {\n const sid = sessionIdRef.current;\n if (!sid) return;\n\n dispatch({ type: 'ASK_USER_SUBMITTED', askId, answers });\n\n const doSubmit = async () => {\n try {\n const token = callbacksRef.current.getToken?.() ?? undefined;\n const headers: Record<string, string> = { 'Content-Type': 'application/json' };\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n await fetch(\n `${serverUrl}/chat/sessions/${sid}/ask-user-response`,\n {\n method: 'POST',\n headers,\n body: JSON.stringify({ ask_id: askId, answers }),\n },\n );\n } catch {\n // Non-critical: if this fails the server will time out the ask_user\n }\n };\n\n void doSubmit();\n },\n [serverUrl],\n );\n\n const loadSession = useCallback(\n (sessionId: string) => {\n // Suppress initial message when loading a previous session\n initialMessageDeliveredRef.current = true;\n const doLoad = async () => {\n try {\n const token = callbacksRef.current.getToken?.() ?? undefined;\n const detail = await getSessionHistory(serverUrl, sessionId, token);\n // Convert stored messages to ChatMessage format\n const chatMessages: ChatMessage[] = detail.messages.map((m) => {\n if (m.type === 'assistant_text') {\n // Map stored tool calls to ToolCallInfo (args -> parameters)\n const toolCalls: ToolCallInfo[] = (m.toolCalls ?? []).map((tc) => ({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored tool call from DB\n toolId: tc['toolId'] as string ?? '',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored tool call from DB\n toolName: tc['toolName'] as string ?? '',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored args from DB\n parameters: (tc['args'] as Record<string, unknown>) ?? {},\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored tool call from DB\n status: (tc['status'] as ToolCallInfo['status']) ?? 'success',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored tool call from DB\n duration_ms: tc['duration_ms'] as number | undefined,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored tool call from DB\n error: tc['error'] as string | undefined,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored tool call from DB\n result: tc['result'] as string | undefined,\n }));\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored widgets from DB\n const widgets = (m.widgets ?? []) as unknown as Array<import('../types').WidgetInfo>;\n\n // Rebuild content blocks from stored data.\n // If the server saved ordered contentBlocks, use them to preserve\n // the original interleave of text / tool_calls / widgets.\n const storedBlocks = m.contentBlocks;\n const contentBlocks: Array<import('../types').ContentBlock> = [];\n if (storedBlocks && storedBlocks.length > 0) {\n // Build a lookup from toolId -> ToolCallInfo\n const toolCallById = new Map(toolCalls.map((tc) => [tc.toolId, tc]));\n for (const block of storedBlocks) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored block from DB\n const blockType = block['type'] as string;\n if (blockType === 'text') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored block from DB\n const text = block['text'] as string;\n if (text.length > 0) {\n contentBlocks.push({ type: 'text', text });\n }\n } else if (blockType === 'tool_calls') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored block from DB\n const callIds = block['callIds'] as string[] | undefined;\n const calls = callIds\n ? callIds.map((id) => toolCallById.get(id)).filter(\n (tc): tc is import('../types').ToolCallInfo => tc != null,\n )\n : toolCalls;\n if (calls.length > 0) {\n contentBlocks.push({ type: 'tool_calls', calls });\n }\n } else if (blockType === 'widget') {\n contentBlocks.push({\n type: 'widget',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored block from DB\n widgetType: block['widgetType'] as string,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- stored widget data from DB\n data: (block['data'] as Record<string, unknown>) ?? {},\n });\n }\n }\n } else {\n // Fallback: legacy messages without stored contentBlocks\n if (toolCalls.length > 0) {\n contentBlocks.push({ type: 'tool_calls', calls: toolCalls });\n }\n if (m.text.length > 0) {\n contentBlocks.push({ type: 'text', text: m.text });\n }\n for (const w of widgets) {\n contentBlocks.push({ type: 'widget', widgetType: w.widgetType, data: w.data });\n }\n }\n\n return {\n type: 'assistant_text' as const,\n id: m.id,\n text: m.text,\n toolCalls,\n confirmations: [],\n skillActivations: m.skillActivations ?? [],\n kbProposals: [],\n widgets,\n contentBlocks,\n timestamp: m.timestamp,\n };\n }\n if (m.type === 'error') {\n return {\n type: 'error' as const,\n id: m.id,\n message: m.text,\n timestamp: m.timestamp,\n };\n }\n return {\n type: 'user' as const,\n id: m.id,\n text: m.text,\n timestamp: m.timestamp,\n };\n });\n dispatch({ type: 'LOAD_HISTORY', sessionId, messages: chatMessages });\n } catch (err) {\n dispatch({\n type: 'STREAM_ERROR',\n message: err instanceof Error ? err.message : 'Failed to load session',\n });\n }\n };\n void doLoad();\n },\n [serverUrl],\n );\n\n // Abort on unmount\n useEffect(\n () => () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n },\n [],\n );\n\n return {\n messages: state.messages,\n send,\n stop,\n isStreaming: state.isStreaming,\n activeToolCalls: state.activeToolCalls,\n session: { id: state.sessionId, role: user.role },\n error: state.error,\n reset,\n eventBus,\n submitAskUserResponse,\n loadSession,\n isHistorical: state.isHistorical,\n };\n}\n","/**\n * @license\n * Copyright 2025 Amodal Labs, Inc.\n * SPDX-License-Identifier: MIT\n */\n\nimport { useEffect, useRef, useCallback } from 'react';\nimport type { WidgetEventBus } from '../events/event-bus';\nimport type { WidgetEventMap, WidgetEvent } from '../events/types';\n\ntype Unsubscribe = () => void;\n\nexport interface UseWidgetEventsReturn {\n /** Subscribe to a specific event type. Returns unsubscribe function. */\n on: <K extends keyof WidgetEventMap>(\n event: K,\n listener: (data: WidgetEventMap[K]) => void,\n ) => Unsubscribe;\n /** Subscribe to all events. Returns unsubscribe function. */\n onAny: (listener: (data: WidgetEvent) => void) => Unsubscribe;\n}\n\n/**\n * React hook for subscribing to widget events with automatic cleanup on unmount.\n * Subscriptions created via `on` / `onAny` are tracked and removed when the\n * component unmounts.\n */\nexport function useWidgetEvents(eventBus: WidgetEventBus | null | undefined): UseWidgetEventsReturn {\n // Track all active subscriptions for cleanup\n const subscriptions = useRef<Array<() => void>>([]);\n\n // Cleanup on unmount\n useEffect(\n () => () => {\n for (const unsub of subscriptions.current) {\n unsub();\n }\n subscriptions.current = [];\n },\n [],\n );\n\n const on = useCallback(\n <K extends keyof WidgetEventMap>(\n event: K,\n listener: (data: WidgetEventMap[K]) => void,\n ): Unsubscribe => {\n if (!eventBus) {\n return () => {};\n }\n eventBus.on(event, listener);\n const unsub = () => {\n eventBus.off(event, listener);\n };\n subscriptions.current.push(unsub);\n return unsub;\n },\n [eventBus],\n );\n\n const onAny = useCallback(\n (listener: (data: WidgetEvent) => void): Unsubscribe => {\n if (!eventBus) {\n return () => {};\n }\n eventBus.on('*', listener);\n const unsub = () => {\n eventBus.off('*', listener);\n };\n subscriptions.current.push(unsub);\n return unsub;\n },\n [eventBus],\n );\n\n return { on, onAny };\n}\n","/**\n * @license\n * Copyright 2025 Amodal Labs, Inc.\n * SPDX-License-Identifier: MIT\n */\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { listSessions, updateSession } from '../client/chat-api';\nimport type { SessionHistoryItem } from '../client/chat-api';\n\nexport interface UseSessionHistoryOptions {\n serverUrl: string;\n getToken?: () => string | null | undefined;\n enabled: boolean;\n}\n\nexport interface UseSessionHistoryReturn {\n sessions: SessionHistoryItem[];\n isLoading: boolean;\n error: string | null;\n refresh: () => void;\n updateTags: (sessionId: string, tags: string[]) => void;\n updateTitle: (sessionId: string, title: string) => void;\n allTags: string[];\n}\n\nexport function useSessionHistory(options: UseSessionHistoryOptions): UseSessionHistoryReturn {\n const { serverUrl, getToken, enabled } = options;\n const [sessions, setSessions] = useState<SessionHistoryItem[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const getTokenRef = useRef(getToken);\n getTokenRef.current = getToken;\n\n const refresh = useCallback(() => {\n if (!enabled) return;\n setIsLoading(true);\n setError(null);\n\n const doFetch = async () => {\n try {\n const token = getTokenRef.current?.() ?? undefined;\n const result = await listSessions(serverUrl, token);\n setSessions(result);\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load sessions');\n } finally {\n setIsLoading(false);\n }\n };\n void doFetch();\n }, [serverUrl, enabled]);\n\n const updateTags = useCallback(\n (sessionId: string, tags: string[]) => {\n const doUpdate = async () => {\n try {\n const token = getTokenRef.current?.() ?? undefined;\n await updateSession(serverUrl, sessionId, { tags }, token);\n setSessions((prev) =>\n prev.map((s) => (s.id === sessionId ? { ...s, tags } : s)),\n );\n } catch {\n // Non-critical\n }\n };\n void doUpdate();\n },\n [serverUrl],\n );\n\n const updateTitle = useCallback(\n (sessionId: string, title: string) => {\n const doUpdate = async () => {\n try {\n const token = getTokenRef.current?.() ?? undefined;\n await updateSession(serverUrl, sessionId, { title }, token);\n setSessions((prev) =>\n prev.map((s) => (s.id === sessionId ? { ...s, title } : s)),\n );\n } catch {\n // Non-critical\n }\n };\n void doUpdate();\n },\n [serverUrl],\n );\n\n // Collect all unique tags across sessions\n const allTags = [...new Set(sessions.flatMap((s) => s.tags))].sort();\n\n // Auto-fetch on mount if enabled\n useEffect(() => {\n if (enabled) {\n refresh();\n }\n }, [enabled, refresh]);\n\n return { sessions, isLoading, error, refresh, updateTags, updateTitle, allTags };\n}\n","/**\n * @license\n * Copyright 2025 Amodal Labs, Inc.\n * SPDX-License-Identifier: MIT\n */\n\nimport type { ChatTheme } from './types';\n\nexport const defaultTheme: ChatTheme = {\n primaryColor: '#1e40af',\n backgroundColor: '#ffffff',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n fontSize: '14px',\n borderRadius: '8px',\n userBubbleColor: '#1e40af',\n agentBubbleColor: '#f3f4f6',\n toolCallColor: '#f9fafb',\n headerText: 'AI Assistant',\n placeholder: 'Type a message...',\n emptyStateText: 'Send a message to start a conversation.',\n};\n\nconst themeToCSS: Record<keyof ChatTheme, string> = {\n primaryColor: '--pcw-primary',\n backgroundColor: '--pcw-bg',\n fontFamily: '--pcw-font',\n fontSize: '--pcw-font-size',\n borderRadius: '--pcw-radius',\n userBubbleColor: '--pcw-user-bubble',\n agentBubbleColor: '--pcw-agent-bubble',\n toolCallColor: '--pcw-tool-call-bg',\n headerText: '--pcw-header-text',\n placeholder: '--pcw-placeholder',\n emptyStateText: '--pcw-empty-state-text',\n};\n\n/**\n * Apply theme values as CSS custom properties on a DOM element.\n */\nexport function applyTheme(element: HTMLElement, theme: ChatTheme): void {\n const merged = { ...defaultTheme, ...theme };\n for (const [key, cssVar] of Object.entries(themeToCSS)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Known theme keys\n const value = merged[key as keyof ChatTheme];\n if (value !== undefined) {\n element.style.setProperty(cssVar, value);\n }\n }\n}\n\n/**\n * Get the merged theme with defaults filled in.\n */\nexport function mergeTheme(theme?: ChatTheme): Required<ChatTheme> {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- All defaults provided\n return { ...defaultTheme, ...theme } as Required<ChatTheme>;\n}\n"],"names":["initialState","messageCounter","createMessageId","chatReducer","state","action","userMessage","assistantMessage","msgs","last","blocks","lastBlock","toolCall","updatedToolCalls","updateCall","tc","updatedCalls","block","activeToolCalls","appendEvent","proposal","widget","updatedConfirmations","c","doneMessages","lastMsg","stopRunning","stoppedCalls","stoppedBlocks","useChat","options","serverUrl","user","getToken","onToolCall","onKBProposal","onEvent","entityExtractors","sessionType","deployId","initialMessage","resumeSessionId","onStreamEnd","onSessionCreated","dispatch","useReducer","sessionIdRef","useRef","abortControllerRef","callbacksRef","eventBusRef","WidgetEventBus","eventBus","entityRefHandlerRef","e","_b","_a","pendingToolCallsRef","send","useCallback","text","controller","receivedDone","token","stream","streamChat","event","_d","_c","pending","toolCallResult","_f","_e","toolEvent","_h","_g","skillEvent","_j","_i","_l","_k","kbEvent","_n","_m","widgetEvent","_p","_o","_r","_q","err","_t","_s","resumeLoadedRef","useEffect","initialMessageDeliveredRef","loadSession","initialMessageSentRef","timer","stop","reset","submitAskUserResponse","askId","answers","sid","headers","sessionId","chatMessages","getSessionHistory","m","toolCalls","widgets","storedBlocks","contentBlocks","toolCallById","blockType","callIds","calls","id","w","useWidgetEvents","subscriptions","unsub","on","listener","onAny","useSessionHistory","enabled","sessions","setSessions","useState","isLoading","setIsLoading","error","setError","getTokenRef","refresh","result","listSessions","updateTags","tags","updateSession","prev","s","updateTitle","title","allTags","defaultTheme","themeToCSS","applyTheme","element","theme","merged","key","cssVar","value","mergeTheme"],"mappings":"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"}
|
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChatTheme } from './types';
|
|
2
|
+
export declare const defaultTheme: ChatTheme;
|
|
3
|
+
/**
|
|
4
|
+
* Apply theme values as CSS custom properties on a DOM element.
|
|
5
|
+
*/
|
|
6
|
+
export declare function applyTheme(element: HTMLElement, theme: ChatTheme): void;
|
|
7
|
+
/**
|
|
8
|
+
* Get the merged theme with defaults filled in.
|
|
9
|
+
*/
|
|
10
|
+
export declare function mergeTheme(theme?: ChatTheme): Required<ChatTheme>;
|
|
11
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,YAAY,EAAE,SAY1B,CAAC;AAgBF;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CASvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAGjE"}
|
package/dist/types.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export interface SSEToolCallResultEvent {
|
|
|
25
25
|
type: 'tool_call_result';
|
|
26
26
|
tool_id: string;
|
|
27
27
|
status: 'success' | 'error';
|
|
28
|
-
result?:
|
|
28
|
+
result?: unknown;
|
|
29
29
|
duration_ms?: number;
|
|
30
30
|
error?: string;
|
|
31
31
|
timestamp: string;
|
|
@@ -44,7 +44,7 @@ export interface SSESubagentEvent {
|
|
|
44
44
|
}
|
|
45
45
|
export interface SSESkillActivatedEvent {
|
|
46
46
|
type: 'skill_activated';
|
|
47
|
-
|
|
47
|
+
skill: string;
|
|
48
48
|
timestamp: string;
|
|
49
49
|
}
|
|
50
50
|
export interface SSEWidgetEvent {
|
|
@@ -55,11 +55,11 @@ export interface SSEWidgetEvent {
|
|
|
55
55
|
}
|
|
56
56
|
export interface SSEKBProposalEvent {
|
|
57
57
|
type: 'kb_proposal';
|
|
58
|
-
proposal_id
|
|
59
|
-
scope:
|
|
58
|
+
proposal_id?: string;
|
|
59
|
+
scope: 'org' | 'segment';
|
|
60
60
|
title: string;
|
|
61
61
|
reasoning: string;
|
|
62
|
-
status
|
|
62
|
+
status?: string;
|
|
63
63
|
timestamp: string;
|
|
64
64
|
}
|
|
65
65
|
export interface SSECredentialSavedEvent {
|
|
@@ -152,7 +152,7 @@ export interface ToolCallInfo {
|
|
|
152
152
|
toolName: string;
|
|
153
153
|
parameters: Record<string, unknown>;
|
|
154
154
|
status: ToolCallStatus;
|
|
155
|
-
result?:
|
|
155
|
+
result?: unknown;
|
|
156
156
|
duration_ms?: number;
|
|
157
157
|
error?: string;
|
|
158
158
|
subagentEvents?: SubagentEventInfo[];
|
|
@@ -167,6 +167,23 @@ export interface ConfirmationInfo {
|
|
|
167
167
|
correlationId?: string;
|
|
168
168
|
status: 'pending' | 'approved' | 'denied';
|
|
169
169
|
}
|
|
170
|
+
export interface KBProposalInfo {
|
|
171
|
+
scope: 'org' | 'segment';
|
|
172
|
+
title: string;
|
|
173
|
+
reasoning: string;
|
|
174
|
+
}
|
|
175
|
+
export interface WidgetInfo {
|
|
176
|
+
widgetType: string;
|
|
177
|
+
data: Record<string, unknown>;
|
|
178
|
+
}
|
|
179
|
+
export type AskUserStatus = 'pending' | 'submitted';
|
|
180
|
+
export interface AskUserBlock {
|
|
181
|
+
type: 'ask_user';
|
|
182
|
+
askId: string;
|
|
183
|
+
questions: AskUserQuestion[];
|
|
184
|
+
status: AskUserStatus;
|
|
185
|
+
answers?: Record<string, string>;
|
|
186
|
+
}
|
|
170
187
|
export interface UserMessage {
|
|
171
188
|
type: 'user';
|
|
172
189
|
id: string;
|
|
@@ -179,6 +196,9 @@ export interface AssistantTextMessage {
|
|
|
179
196
|
text: string;
|
|
180
197
|
toolCalls: ToolCallInfo[];
|
|
181
198
|
confirmations: ConfirmationInfo[];
|
|
199
|
+
skillActivations: string[];
|
|
200
|
+
kbProposals: KBProposalInfo[];
|
|
201
|
+
widgets: WidgetInfo[];
|
|
182
202
|
contentBlocks: ContentBlock[];
|
|
183
203
|
timestamp: string;
|
|
184
204
|
}
|
|
@@ -202,13 +222,64 @@ export type ContentBlock = {
|
|
|
202
222
|
} | {
|
|
203
223
|
type: 'confirmation';
|
|
204
224
|
confirmation: ConfirmationInfo;
|
|
205
|
-
};
|
|
225
|
+
} | AskUserBlock;
|
|
226
|
+
export interface ChatUser {
|
|
227
|
+
id: string;
|
|
228
|
+
role?: string;
|
|
229
|
+
}
|
|
230
|
+
export interface ChatTheme {
|
|
231
|
+
primaryColor?: string;
|
|
232
|
+
backgroundColor?: string;
|
|
233
|
+
fontFamily?: string;
|
|
234
|
+
fontSize?: string;
|
|
235
|
+
borderRadius?: string;
|
|
236
|
+
userBubbleColor?: string;
|
|
237
|
+
agentBubbleColor?: string;
|
|
238
|
+
toolCallColor?: string;
|
|
239
|
+
headerText?: string;
|
|
240
|
+
placeholder?: string;
|
|
241
|
+
emptyStateText?: string;
|
|
242
|
+
}
|
|
243
|
+
export type WidgetPosition = 'right' | 'bottom' | 'floating' | 'inline';
|
|
244
|
+
export interface WidgetConfig {
|
|
245
|
+
serverUrl: string;
|
|
246
|
+
user: ChatUser;
|
|
247
|
+
/** Return a Bearer token (API key or JWT) for authenticated requests. */
|
|
248
|
+
getToken?: () => string | null | undefined;
|
|
249
|
+
theme?: ChatTheme;
|
|
250
|
+
position?: WidgetPosition;
|
|
251
|
+
defaultOpen?: boolean;
|
|
252
|
+
onToolCall?: (call: ToolCallInfo) => void;
|
|
253
|
+
onKBProposal?: (proposal: KBProposalInfo) => void;
|
|
254
|
+
/** Callback for all widget events (agent-driven + interaction). */
|
|
255
|
+
onEvent?: (event: import('./events/types').WidgetEvent) => void;
|
|
256
|
+
/** Custom entity extractors. If provided, replaces the default extractor. */
|
|
257
|
+
entityExtractors?: Array<import('./events/types').EntityExtractor>;
|
|
258
|
+
/** Enable session history drawer. */
|
|
259
|
+
historyEnabled?: boolean;
|
|
260
|
+
/** Show the message input bar. Defaults to true. */
|
|
261
|
+
showInput?: boolean;
|
|
262
|
+
/** Session type — controls which skills, tools, KB docs load into this session. */
|
|
263
|
+
sessionType?: string;
|
|
264
|
+
/** Specific deployment ID to load instead of the active deployment. */
|
|
265
|
+
deployId?: string;
|
|
266
|
+
/** Auto-send this message when the widget mounts. Sent exactly once. */
|
|
267
|
+
initialMessage?: string;
|
|
268
|
+
/** Load an existing session on mount (read-only history view). Takes precedence over initialMessage. */
|
|
269
|
+
resumeSessionId?: string;
|
|
270
|
+
/** Called when the SSE stream ends (agent finishes responding). */
|
|
271
|
+
onStreamEnd?: () => void;
|
|
272
|
+
/** Called when a session ID is received from the server (first stream init). */
|
|
273
|
+
onSessionCreated?: (sessionId: string) => void;
|
|
274
|
+
}
|
|
206
275
|
export interface ChatState {
|
|
207
276
|
messages: ChatMessage[];
|
|
208
277
|
sessionId: string | null;
|
|
209
278
|
isStreaming: boolean;
|
|
210
279
|
error: string | null;
|
|
211
280
|
activeToolCalls: ToolCallInfo[];
|
|
281
|
+
/** True when viewing a loaded historical session (read-only) */
|
|
282
|
+
isHistorical: boolean;
|
|
212
283
|
}
|
|
213
284
|
export type ChatAction = {
|
|
214
285
|
type: 'SEND_MESSAGE';
|
|
@@ -228,17 +299,40 @@ export type ChatAction = {
|
|
|
228
299
|
type: 'STREAM_TOOL_CALL_RESULT';
|
|
229
300
|
toolId: string;
|
|
230
301
|
status: 'success' | 'error';
|
|
231
|
-
result?:
|
|
302
|
+
result?: unknown;
|
|
232
303
|
duration_ms?: number;
|
|
233
304
|
error?: string;
|
|
234
305
|
} | {
|
|
235
306
|
type: 'STREAM_SUBAGENT_EVENT';
|
|
236
307
|
parentToolId: string;
|
|
237
308
|
event: SubagentEventInfo;
|
|
309
|
+
} | {
|
|
310
|
+
type: 'STREAM_SKILL_ACTIVATED';
|
|
311
|
+
skill: string;
|
|
312
|
+
} | {
|
|
313
|
+
type: 'STREAM_KB_PROPOSAL';
|
|
314
|
+
scope: 'org' | 'segment';
|
|
315
|
+
title: string;
|
|
316
|
+
reasoning: string;
|
|
238
317
|
} | {
|
|
239
318
|
type: 'STREAM_WIDGET';
|
|
240
319
|
widgetType: string;
|
|
241
320
|
data: Record<string, unknown>;
|
|
321
|
+
} | {
|
|
322
|
+
type: 'STREAM_CREDENTIAL_SAVED';
|
|
323
|
+
connectionName: string;
|
|
324
|
+
} | {
|
|
325
|
+
type: 'STREAM_APPROVED';
|
|
326
|
+
resourceType: string;
|
|
327
|
+
previewId: string;
|
|
328
|
+
} | {
|
|
329
|
+
type: 'STREAM_ASK_USER';
|
|
330
|
+
askId: string;
|
|
331
|
+
questions: AskUserQuestion[];
|
|
332
|
+
} | {
|
|
333
|
+
type: 'ASK_USER_SUBMITTED';
|
|
334
|
+
askId: string;
|
|
335
|
+
answers: Record<string, string>;
|
|
242
336
|
} | {
|
|
243
337
|
type: 'STREAM_CONFIRMATION_REQUIRED';
|
|
244
338
|
confirmation: ConfirmationInfo;
|
|
@@ -251,6 +345,10 @@ export type ChatAction = {
|
|
|
251
345
|
message: string;
|
|
252
346
|
} | {
|
|
253
347
|
type: 'STREAM_DONE';
|
|
348
|
+
} | {
|
|
349
|
+
type: 'LOAD_HISTORY';
|
|
350
|
+
sessionId: string;
|
|
351
|
+
messages: ChatMessage[];
|
|
254
352
|
} | {
|
|
255
353
|
type: 'RESET';
|
|
256
354
|
};
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { WidgetConfig } from './types';
|
|
2
|
+
import { ChatClient } from './client/ChatClient';
|
|
3
|
+
/**
|
|
4
|
+
* Initialize the chat widget in a non-React environment.
|
|
5
|
+
* Call PlatformChat.init(config) or PlatformChat.mount(config) to render the widget.
|
|
6
|
+
*/
|
|
7
|
+
declare function init(config: WidgetConfig & {
|
|
8
|
+
container?: string;
|
|
9
|
+
}): void;
|
|
10
|
+
/**
|
|
11
|
+
* Destroy the chat widget and clean up.
|
|
12
|
+
*/
|
|
13
|
+
declare function destroy(): void;
|
|
14
|
+
export declare const PlatformChat: {
|
|
15
|
+
init: typeof init;
|
|
16
|
+
mount: typeof init;
|
|
17
|
+
destroy: typeof destroy;
|
|
18
|
+
ChatClient: typeof ChatClient;
|
|
19
|
+
};
|
|
20
|
+
export default PlatformChat;
|
|
21
|
+
//# sourceMappingURL=umd-entry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"umd-entry.d.ts","sourceRoot":"","sources":["../src/umd-entry.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AASjD;;;GAGG;AACH,iBAAS,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsBjE;AAED;;GAEG;AACH,iBAAS,OAAO,IAAI,IAAI,CAOvB;AAED,eAAO,MAAM,YAAY;;;;;CAA6C,CAAC;AACvE,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AskUserBlock } from '../types';
|
|
2
|
+
interface AskUserCardProps {
|
|
3
|
+
block: AskUserBlock;
|
|
4
|
+
onSubmit: (askId: string, answers: Record<string, string>) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function AskUserCard({ block, onSubmit }: AskUserCardProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=AskUserCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AskUserCard.d.ts","sourceRoot":"","sources":["../../src/widget/AskUserCard.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,UAAU,CAAC;AAE9D,UAAU,gBAAgB;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CACpE;AAqID,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CA+ChE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { WidgetConfig } from '../types';
|
|
2
|
+
import { WidgetRegistry } from './widgets/WidgetRenderer';
|
|
3
|
+
export type ChatWidgetProps = WidgetConfig & {
|
|
4
|
+
widgets?: WidgetRegistry;
|
|
5
|
+
/** Enable session history drawer. */
|
|
6
|
+
historyEnabled?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare function ChatWidget({ serverUrl, user, getToken, theme, position, defaultOpen, onToolCall, onKBProposal, onEvent, entityExtractors, widgets: customWidgets, historyEnabled, showInput, sessionType, deployId, initialMessage, resumeSessionId, onStreamEnd, onSessionCreated, }: ChatWidgetProps): import("react/jsx-runtime").JSX.Element | null;
|
|
9
|
+
//# sourceMappingURL=ChatWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatWidget.d.ts","sourceRoot":"","sources":["../../src/widget/ChatWidget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAO/D,OAAO,cAAc,CAAC;AAmBtB,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IAC3C,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,qCAAqC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,QAAqB,EACrB,WAAmB,EACnB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,OAAO,EAAE,aAAa,EACtB,cAAsB,EACtB,SAAgB,EAChB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,eAAe,EACf,WAAW,EACX,gBAAgB,GACjB,EAAE,eAAe,kDAmJjB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
interface FormattedTextProps {
|
|
7
|
+
text: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function FormattedText({ text, className }: FormattedTextProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=FormattedText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormattedText.d.ts","sourceRoot":"","sources":["../../src/widget/FormattedText.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AA0GH,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,kBAAkB,2CAQpE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
interface InputBarProps {
|
|
7
|
+
onSend: (text: string) => void;
|
|
8
|
+
onStop?: () => void;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
isStreaming?: boolean;
|
|
11
|
+
placeholder: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function InputBar({ onSend, onStop, disabled, isStreaming, placeholder }: InputBarProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=InputBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputBar.d.ts","sourceRoot":"","sources":["../../src/widget/InputBar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,UAAU,aAAa;IACrB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAmBD,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,aAAa,2CAkE7F"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { KBProposalInfo } from '../types';
|
|
2
|
+
interface KBProposalCardProps {
|
|
3
|
+
proposal: KBProposalInfo;
|
|
4
|
+
}
|
|
5
|
+
export declare function KBProposalCard({ proposal }: KBProposalCardProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=KBProposalCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KBProposalCard.d.ts","sourceRoot":"","sources":["../../src/widget/KBProposalCard.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CAW/D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ChatMessage } from '../types';
|
|
2
|
+
import { InteractionEvent } from '../events/types';
|
|
3
|
+
import { WidgetRegistry } from './widgets/WidgetRenderer';
|
|
4
|
+
interface MessageListProps {
|
|
5
|
+
messages: ChatMessage[];
|
|
6
|
+
isStreaming: boolean;
|
|
7
|
+
sendMessage?: (text: string) => void;
|
|
8
|
+
customWidgets?: WidgetRegistry;
|
|
9
|
+
onInteraction?: (event: InteractionEvent) => void;
|
|
10
|
+
onAskUserSubmit?: (askId: string, answers: Record<string, string>) => void;
|
|
11
|
+
emptyStateText?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function MessageList({ messages, isStreaming, sendMessage, customWidgets, onInteraction, onAskUserSubmit, emptyStateText }: MessageListProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=MessageList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../src/widget/MessageList.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,UAAU,gBAAgB;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAmGD,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,gBAAgB,2CAkElJ"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SessionHistoryItem } from '../client/chat-api';
|
|
2
|
+
export interface SessionHistoryProps {
|
|
3
|
+
sessions: SessionHistoryItem[];
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
allTags: string[];
|
|
6
|
+
onSelectSession: (sessionId: string) => void;
|
|
7
|
+
onNewChat: () => void;
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
onUpdateTags: (sessionId: string, tags: string[]) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function SessionHistory({ sessions, isLoading, allTags, onSelectSession, onNewChat, onClose, onUpdateTags, }: SessionHistoryProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=SessionHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionHistory.d.ts","sourceRoot":"","sources":["../../src/widget/SessionHistory.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3D;AAeD,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,OAAO,EACP,eAAe,EACf,SAAS,EACT,OAAO,EACP,YAAY,GACb,EAAE,mBAAmB,2CA2HrB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
interface SkillPillProps {
|
|
7
|
+
skill: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function SkillPill({ skill }: SkillPillProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=SkillPill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillPill.d.ts","sourceRoot":"","sources":["../../src/widget/SkillPill.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,2CAElD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingIndicator.d.ts","sourceRoot":"","sources":["../../src/widget/StreamingIndicator.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,kBAAkB,4CAQjC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Amodal Labs, Inc.
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
export interface TagEditorProps {
|
|
7
|
+
tags: string[];
|
|
8
|
+
onSave: (tags: string[]) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function TagEditor({ tags, onSave }: TagEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=TagEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagEditor.d.ts","sourceRoot":"","sources":["../../src/widget/TagEditor.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAClC;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,cAAc,2CAuEzD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ToolCallInfo } from '../types';
|
|
2
|
+
interface ToolCallCardProps {
|
|
3
|
+
toolCall: ToolCallInfo;
|
|
4
|
+
}
|
|
5
|
+
export declare function ToolCallCard({ toolCall }: ToolCallCardProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=ToolCallCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolCallCard.d.ts","sourceRoot":"","sources":["../../src/widget/ToolCallCard.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,UAAU,CAAC;AAGhE,UAAU,iBAAiB;IACzB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAqND,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAgC3D"}
|