@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.
Files changed (97) hide show
  1. package/dist/client/ChatClient.d.ts +76 -0
  2. package/dist/client/ChatClient.d.ts.map +1 -0
  3. package/dist/client/ChatStream.d.ts +63 -0
  4. package/dist/client/ChatStream.d.ts.map +1 -0
  5. package/dist/client/EventEmitter.d.ts +16 -0
  6. package/dist/client/EventEmitter.d.ts.map +1 -0
  7. package/dist/client/chat-api.d.ts +80 -0
  8. package/dist/client/chat-api.d.ts.map +1 -0
  9. package/dist/client/index.d.ts +7 -0
  10. package/dist/client/index.d.ts.map +1 -1
  11. package/dist/client.js +437 -123
  12. package/dist/client.js.map +1 -1
  13. package/dist/event-bus-h26clqbZ.js +297 -0
  14. package/dist/event-bus-h26clqbZ.js.map +1 -0
  15. package/dist/events/entity-extractor.d.ts +7 -0
  16. package/dist/events/entity-extractor.d.ts.map +1 -0
  17. package/dist/events/event-bus.d.ts +27 -0
  18. package/dist/events/event-bus.d.ts.map +1 -0
  19. package/dist/events/index.d.ts +9 -0
  20. package/dist/events/index.d.ts.map +1 -0
  21. package/dist/events/types.d.ts +72 -0
  22. package/dist/events/types.d.ts.map +1 -0
  23. package/dist/hooks/useAmodalChat.d.ts.map +1 -1
  24. package/dist/hooks/useChat.d.ts +52 -0
  25. package/dist/hooks/useChat.d.ts.map +1 -0
  26. package/dist/hooks/useSessionHistory.d.ts +17 -0
  27. package/dist/hooks/useSessionHistory.d.ts.map +1 -0
  28. package/dist/hooks/useWidgetEvents.d.ts +17 -0
  29. package/dist/hooks/useWidgetEvents.d.ts.map +1 -0
  30. package/dist/index.d.ts +17 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/react.css +5 -0
  33. package/dist/react.js +245 -222
  34. package/dist/react.js.map +1 -1
  35. package/dist/theme-BaBR_tym.js +691 -0
  36. package/dist/theme-BaBR_tym.js.map +1 -0
  37. package/dist/theme.d.ts +11 -0
  38. package/dist/theme.d.ts.map +1 -0
  39. package/dist/types.d.ts +106 -8
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/umd-entry.d.ts +21 -0
  42. package/dist/umd-entry.d.ts.map +1 -0
  43. package/dist/widget/AskUserCard.d.ts +8 -0
  44. package/dist/widget/AskUserCard.d.ts.map +1 -0
  45. package/dist/widget/ChatWidget.d.ts +9 -0
  46. package/dist/widget/ChatWidget.d.ts.map +1 -0
  47. package/dist/widget/FormattedText.d.ts +12 -0
  48. package/dist/widget/FormattedText.d.ts.map +1 -0
  49. package/dist/widget/InputBar.d.ts +15 -0
  50. package/dist/widget/InputBar.d.ts.map +1 -0
  51. package/dist/widget/KBProposalCard.d.ts +7 -0
  52. package/dist/widget/KBProposalCard.d.ts.map +1 -0
  53. package/dist/widget/MessageList.d.ts +15 -0
  54. package/dist/widget/MessageList.d.ts.map +1 -0
  55. package/dist/widget/SessionHistory.d.ts +12 -0
  56. package/dist/widget/SessionHistory.d.ts.map +1 -0
  57. package/dist/widget/SkillPill.d.ts +11 -0
  58. package/dist/widget/SkillPill.d.ts.map +1 -0
  59. package/dist/widget/StreamingIndicator.d.ts +7 -0
  60. package/dist/widget/StreamingIndicator.d.ts.map +1 -0
  61. package/dist/widget/TagEditor.d.ts +11 -0
  62. package/dist/widget/TagEditor.d.ts.map +1 -0
  63. package/dist/widget/ToolCallCard.d.ts +7 -0
  64. package/dist/widget/ToolCallCard.d.ts.map +1 -0
  65. package/dist/widget/index.d.ts +33 -0
  66. package/dist/widget/index.d.ts.map +1 -0
  67. package/dist/widget/widgets/AlertCard.d.ts +3 -0
  68. package/dist/widget/widgets/AlertCard.d.ts.map +1 -0
  69. package/dist/widget/widgets/Comparison.d.ts +3 -0
  70. package/dist/widget/widgets/Comparison.d.ts.map +1 -0
  71. package/dist/widget/widgets/CredentialInput.d.ts +3 -0
  72. package/dist/widget/widgets/CredentialInput.d.ts.map +1 -0
  73. package/dist/widget/widgets/DataTable.d.ts +3 -0
  74. package/dist/widget/widgets/DataTable.d.ts.map +1 -0
  75. package/dist/widget/widgets/DocumentPreview.d.ts +3 -0
  76. package/dist/widget/widgets/DocumentPreview.d.ts.map +1 -0
  77. package/dist/widget/widgets/EntityCard.d.ts +3 -0
  78. package/dist/widget/widgets/EntityCard.d.ts.map +1 -0
  79. package/dist/widget/widgets/EntityList.d.ts +3 -0
  80. package/dist/widget/widgets/EntityList.d.ts.map +1 -0
  81. package/dist/widget/widgets/InfoCard.d.ts +3 -0
  82. package/dist/widget/widgets/InfoCard.d.ts.map +1 -0
  83. package/dist/widget/widgets/Metric.d.ts +3 -0
  84. package/dist/widget/widgets/Metric.d.ts.map +1 -0
  85. package/dist/widget/widgets/ScopeMap.d.ts +3 -0
  86. package/dist/widget/widgets/ScopeMap.d.ts.map +1 -0
  87. package/dist/widget/widgets/ScoreBreakdown.d.ts +3 -0
  88. package/dist/widget/widgets/ScoreBreakdown.d.ts.map +1 -0
  89. package/dist/widget/widgets/StatusBoard.d.ts +3 -0
  90. package/dist/widget/widgets/StatusBoard.d.ts.map +1 -0
  91. package/dist/widget/widgets/Timeline.d.ts +3 -0
  92. package/dist/widget/widgets/Timeline.d.ts.map +1 -0
  93. package/dist/widget/widgets/WidgetRenderer.d.ts +28 -0
  94. package/dist/widget/widgets/WidgetRenderer.d.ts.map +1 -0
  95. package/dist/widget.js +1668 -0
  96. package/dist/widget.js.map +1 -0
  97. 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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"}
@@ -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?: string;
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
- skill_name: string;
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: string;
59
- scope: string;
58
+ proposal_id?: string;
59
+ scope: 'org' | 'segment';
60
60
  title: string;
61
61
  reasoning: string;
62
- status: string;
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?: string;
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?: string;
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
  };
@@ -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,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export declare function StreamingIndicator(): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=StreamingIndicator.d.ts.map
@@ -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"}