@inkeep/agents-ui 0.15.6 → 0.15.8

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.
@@ -1,3 +1,3 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Y=require("@ai-sdk/react"),Z=require("ai"),s=require("react"),ee=require("../../providers/config-provider.cjs"),te=require("../../hooks/use-media-query.cjs"),k=require("../../utils/generate-uid.cjs"),se=require("../../providers/base-events-provider.cjs"),ne=require("../../providers/chat-form-provider.cjs"),re=require("../../providers/widget-provider.cjs"),ae=require("@radix-ui/react-use-controllable-state"),oe=require("../../hooks/use-streaming-events.cjs"),A=`Hmm..
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const X=require("@ai-sdk/react"),Y=require("ai"),n=require("react"),ee=require("../../providers/config-provider.cjs"),te=require("../../hooks/use-media-query.cjs"),R=require("../../utils/generate-uid.cjs"),se=require("../../providers/base-events-provider.cjs"),ne=require("../../providers/chat-form-provider.cjs"),re=require("../../providers/widget-provider.cjs"),oe=require("@radix-ui/react-use-controllable-state"),ae=require("../../hooks/use-streaming-events.cjs"),P=`Hmm..
2
2
 
3
- It seems I might be having some issues right now. Please clear the chat and try again.`,ie=()=>{const{baseSettings:C,aiChatSettings:o}=ee.useInkeepConfig(),[n="",b]=ae.useControllableState({prop:o.conversationId,defaultProp:o.conversationId??""}),{logEvent:i}=se.useBaseEvents(),{setConversationId:D,emitToParent:u}=oe.useStreamingEvents(),[a,l]=s.useState(""),N=e=>l(e.target.value),{filters:y}=C,{onInputMessageChange:U,filters:I,agentUrl:M,context:d,headers:g,apiKey:p}=o,T=e=>{switch(e.code){case 400:return e.message;case 403:return`There seems to be a configuration error. Please contact ${C.organizationDisplayName??"Administrator"}`;default:return A}},[O,m]=s.useState([]),[H,w]=s.useState(null),K=s.useMemo(()=>new Z.DefaultChatTransport({api:M,headers:{...p?{Authorization:`Bearer ${p}`}:{},...g},body:{requestContext:d}}),[M,p,g,d]),{messages:h,sendMessage:L,status:q,setMessages:_,stop:W,error:f}=Y.useChat({transport:K,onData(e){u(e.type,e.data)},async onFinish(){u("completion",{conversationId:n}),await i({eventName:"assistant_message_received",properties:{conversationId:n}}),i({eventName:"assistant_answer_displayed",properties:{conversationId:n}})},onError(e){console.log("onError",e.message),_(c=>{const r=[...c],t=r[r.length-1];if(t){const P=T(e);t.role==="user"?r.push({id:k.generateUid(16),role:"assistant",parts:[{type:"text",text:P}]}):t.parts=[{type:"text",text:P}]}return r})}}),x=q==="submitted",$=q==="streaming",z=h.length===0,v=!a.trim()||x,B=te.useMediaQuery("(max-width: 768px)"),[G,E]=s.useState(null);s.useEffect(()=>{f&&E(f)},[f]);const Q=()=>E(null),F=s.useRef(null);s.useEffect(()=>{U?.(a)},[a]);const j=e=>{e.key==="Enter"&&!e.shiftKey&&!v&&!e.nativeEvent.isComposing&&(e.preventDefault(),S())},S=async(e=a)=>{if(v&&(!e||e.trim().length===0))return;m([]),l(""),await i({eventName:"user_message_submitted",properties:{conversationId:n}});const c=y||I?JSON.stringify({...y,...I}):void 0,r={...g};c&&(r["inkeep-filters"]=c);let t=n;t||(t=`conv_${k.generateUid(16)}`,b(t)),D(t),L({text:e},{headers:r,body:{conversationId:t,requestContext:d}})},J=()=>{W().then(()=>{u("aborted",{conversationId:n})})},R=()=>{Q(),_([]),b(""),m([]),w(null),i({eventName:"chat_clear_button_clicked",properties:{conversationId:n}})},{openForm:V}=ne.useChatForm(),X=re.useWidget();return s.useImperativeHandle(o.chatFunctionsRef,()=>({submitMessage:S,updateInputMessage(e){l(e)},clearChat:R,openForm:e=>{X?.setView("chat"),V(e,void 0)},focusInput:()=>{F.current?.focus()}})),{messages:h,isLoading:x,isStreaming:$,error:G,setError:E,isSubmitDisabled:v,input:a,handleInputChange:N,handleInputKeyDown:j,handleSubmit:S,stop:J,clear:R,isEmpty:h.length===0,inputRef:F,isMobile:B,messageAttachments:O,setMessageAttachments:m,selectedWorkflow:H,setSelectedWorkflow:w,isNewChat:z,conversationId:n}};exports.DEFAULT_ERROR_MESSAGE=A;exports.useInkeepChat=ie;
3
+ It seems I might be having some issues right now. Please clear the chat and try again.`,ie=()=>{const{baseSettings:I,aiChatSettings:i}=ee.useInkeepConfig(),[t="",C]=oe.useControllableState({prop:i.conversationId,defaultProp:i.conversationId??""}),{logEvent:o}=se.useBaseEvents(),{setConversationId:A,emitToParent:u}=ae.useStreamingEvents(),[a,l]=n.useState(""),N=e=>l(e.target.value),{filters:b}=I,{onInputMessageChange:O,filters:y,agentUrl:w,context:m,headers:p,apiKey:d}=i,T=e=>{switch(e.code){case 400:return e.message;case 403:return`There seems to be a configuration error. Please contact ${I.organizationDisplayName??"Administrator"}`;default:return P}},[U,g]=n.useState([]),[z,M]=n.useState(null),H=n.useMemo(()=>new Y.DefaultChatTransport({api:w,headers:{...d?{Authorization:`Bearer ${d}`}:{},"x-inkeep-client-timezone":Intl.DateTimeFormat().resolvedOptions().timeZone,"x-inkeep-client-timestamp":new Date().toISOString(),...p},body:{requestContext:m}}),[w,d,p,m]),{messages:h,sendMessage:K,status:_,setMessages:q,stop:L,error:f}=X.useChat({transport:H,onData(e){u(e.type,e.data)},async onFinish(){u("completion",{conversationId:t}),await o({eventName:"assistant_message_received",properties:{conversationId:t}}),o({eventName:"assistant_answer_displayed",properties:{conversationId:t}})},onError(e){console.log("onError",e.message),o({eventName:"chat_error",properties:{conversationId:t,error:e.message}}),q(c=>{const r=[...c],s=r[r.length-1];if(s){const F=T(e);s.role==="user"?r.push({id:R.generateUid(16),role:"assistant",parts:[{type:"text",text:F}]}):s.parts=[{type:"text",text:F}]}return r})}}),x=_==="submitted",W=_==="streaming",$=h.length===0,v=!a.trim()||x,B=te.useMediaQuery("(max-width: 768px)"),[G,S]=n.useState(null);n.useEffect(()=>{f&&S(f)},[f]);const Q=()=>S(null),k=n.useRef(null);n.useEffect(()=>{O?.(a)},[a]);const Z=e=>{e.key==="Enter"&&!e.shiftKey&&!v&&!e.nativeEvent.isComposing&&(e.preventDefault(),E())},E=async(e=a)=>{if(v&&(!e||e.trim().length===0))return;g([]),l(""),await o({eventName:"user_message_submitted",properties:{conversationId:t}});const c=b||y?JSON.stringify({...b,...y}):void 0,r={...p};c&&(r["inkeep-filters"]=c);let s=t;s||(s=`conv_${R.generateUid(16)}`,C(s)),A(s),K({text:e},{headers:{"x-inkeep-client-timezone":Intl.DateTimeFormat().resolvedOptions().timeZone,"x-inkeep-client-timestamp":new Date().toISOString(),...r},body:{conversationId:s,requestContext:m}})},j=()=>{L().then(()=>{u("aborted",{conversationId:t})})},D=()=>{Q(),q([]),C(""),g([]),M(null),o({eventName:"chat_clear_button_clicked",properties:{conversationId:t}})},{openForm:J}=ne.useChatForm(),V=re.useWidget();return n.useImperativeHandle(i.chatFunctionsRef,()=>({submitMessage:E,updateInputMessage(e){l(e)},clearChat:D,openForm:e=>{V?.setView("chat"),J(e,void 0)},focusInput:()=>{k.current?.focus()}})),{messages:h,isLoading:x,isStreaming:W,error:G,setError:S,isSubmitDisabled:v,input:a,handleInputChange:N,handleInputKeyDown:Z,handleSubmit:E,stop:j,clear:D,isEmpty:h.length===0,inputRef:k,isMobile:B,messageAttachments:U,setMessageAttachments:g,selectedWorkflow:z,setSelectedWorkflow:M,isNewChat:$,conversationId:t}};exports.DEFAULT_ERROR_MESSAGE=P;exports.useInkeepChat=ie;
@@ -1,179 +1,191 @@
1
1
  "use client";
2
- import { useChat as Y } from "@ai-sdk/react";
3
- import { DefaultChatTransport as Z } from "ai";
4
- import { useState as c, useMemo as ee, useEffect as A, useRef as te, useImperativeHandle as se } from "react";
2
+ import { useChat as X } from "@ai-sdk/react";
3
+ import { DefaultChatTransport as Y } from "ai";
4
+ import { useState as m, useMemo as ee, useEffect as A, useRef as te, useImperativeHandle as se } from "react";
5
5
  import { useInkeepConfig as ne } from "../../providers/config-provider.js";
6
6
  import { useMediaQuery as oe } from "../../hooks/use-media-query.js";
7
- import { generateUid as R } from "../../utils/generate-uid.js";
7
+ import { generateUid as O } from "../../utils/generate-uid.js";
8
8
  import { useBaseEvents as re } from "../../providers/base-events-provider.js";
9
9
  import { useChatForm as ae } from "../../providers/chat-form-provider.js";
10
10
  import { useWidget as ie } from "../../providers/widget-provider.js";
11
- import { useControllableState as ce } from "@radix-ui/react-use-controllable-state";
12
- import { useStreamingEvents as me } from "../../hooks/use-streaming-events.js";
13
- const ue = `Hmm..
11
+ import { useControllableState as me } from "@radix-ui/react-use-controllable-state";
12
+ import { useStreamingEvents as ce } from "../../hooks/use-streaming-events.js";
13
+ const le = `Hmm..
14
14
 
15
- It seems I might be having some issues right now. Please clear the chat and try again.`, be = () => {
16
- const { baseSettings: y, aiChatSettings: r } = ne(), [s = "", E] = ce({
17
- prop: r.conversationId,
18
- defaultProp: r.conversationId ?? ""
19
- }), { logEvent: a } = re(), { setConversationId: P, emitToParent: m } = me(), [o, u] = c(""), T = (e) => u(e.target.value), {
15
+ It seems I might be having some issues right now. Please clear the chat and try again.`, Ee = () => {
16
+ const { baseSettings: S, aiChatSettings: a } = ne(), [t = "", y] = me({
17
+ prop: a.conversationId,
18
+ defaultProp: a.conversationId ?? ""
19
+ }), { logEvent: o } = re(), { setConversationId: R, emitToParent: c } = ce(), [r, l] = m(""), T = (e) => l(e.target.value), {
20
20
  /* shouldBypassCaptcha, */
21
- filters: b
22
- } = y, {
23
- onInputMessageChange: q,
24
- filters: w,
25
- agentUrl: S,
26
- context: l,
27
- headers: p,
21
+ filters: E
22
+ } = S, {
23
+ onInputMessageChange: z,
24
+ filters: b,
25
+ agentUrl: w,
26
+ context: p,
27
+ headers: u,
28
28
  apiKey: g
29
- } = r, H = (e) => {
29
+ } = a, P = (e) => {
30
30
  switch (e.code) {
31
31
  case 400:
32
32
  return e.message;
33
33
  case 403:
34
- return `There seems to be a configuration error. Please contact ${y.organizationDisplayName ?? "Administrator"}`;
34
+ return `There seems to be a configuration error. Please contact ${S.organizationDisplayName ?? "Administrator"}`;
35
35
  default:
36
- return ue;
36
+ return le;
37
37
  }
38
- }, [K, d] = c([]), [U, M] = c(null), W = ee(
39
- () => new Z({
40
- api: S,
38
+ }, [q, d] = m([]), [H, x] = m(null), K = ee(
39
+ () => new Y({
40
+ api: w,
41
41
  headers: {
42
42
  ...g ? { Authorization: `Bearer ${g}` } : {},
43
- ...p
43
+ "x-inkeep-client-timezone": Intl.DateTimeFormat().resolvedOptions().timeZone,
44
+ "x-inkeep-client-timestamp": (/* @__PURE__ */ new Date()).toISOString(),
45
+ ...u
44
46
  },
45
47
  body: {
46
- requestContext: l
48
+ requestContext: p
47
49
  }
48
50
  }),
49
- [S, g, p, l]
51
+ [w, g, u, p]
50
52
  ), {
51
53
  messages: h,
52
- sendMessage: $,
53
- status: _,
54
- setMessages: x,
55
- stop: z,
54
+ sendMessage: U,
55
+ status: M,
56
+ setMessages: _,
57
+ stop: W,
56
58
  error: f
57
- } = Y({
58
- transport: W,
59
+ } = X({
60
+ transport: K,
59
61
  onData(e) {
60
- m(e.type, e.data);
62
+ c(e.type, e.data);
61
63
  },
62
64
  async onFinish() {
63
- m("completion", { conversationId: s }), await a({
65
+ c("completion", { conversationId: t }), await o({
64
66
  eventName: "assistant_message_received",
65
67
  properties: {
66
- conversationId: s
68
+ conversationId: t
67
69
  }
68
- }), a({
70
+ }), o({
69
71
  eventName: "assistant_answer_displayed",
70
72
  properties: {
71
- conversationId: s
73
+ conversationId: t
72
74
  }
73
75
  });
74
76
  },
75
77
  onError(e) {
76
- console.log("onError", e.message), x((i) => {
77
- const n = [...i], t = n[n.length - 1];
78
- if (t) {
79
- const N = H(e);
80
- t.role === "user" ? n.push({
81
- id: R(16),
78
+ console.log("onError", e.message), o({
79
+ eventName: "chat_error",
80
+ properties: {
81
+ conversationId: t,
82
+ error: e.message
83
+ }
84
+ }), _((i) => {
85
+ const n = [...i], s = n[n.length - 1];
86
+ if (s) {
87
+ const N = P(e);
88
+ s.role === "user" ? n.push({
89
+ id: O(16),
82
90
  role: "assistant",
83
91
  parts: [{ type: "text", text: N }]
84
- }) : t.parts = [{ type: "text", text: N }];
92
+ }) : s.parts = [{ type: "text", text: N }];
85
93
  }
86
94
  return n;
87
95
  });
88
96
  }
89
- }), F = _ === "submitted", B = _ === "streaming", L = h.length === 0, v = !o.trim() || F, O = oe("(max-width: 768px)"), [G, C] = c(null);
97
+ }), k = M === "submitted", $ = M === "streaming", B = h.length === 0, v = !r.trim() || k, L = oe("(max-width: 768px)"), [Z, I] = m(null);
90
98
  A(() => {
91
- f && C(f);
99
+ f && I(f);
92
100
  }, [f]);
93
- const J = () => C(null), k = te(null);
101
+ const G = () => I(null), D = te(null);
94
102
  A(() => {
95
- q?.(o);
96
- }, [o]);
97
- const Q = (e) => {
98
- e.key === "Enter" && !e.shiftKey && !v && !e.nativeEvent.isComposing && (e.preventDefault(), I());
99
- }, I = async (e = o) => {
103
+ z?.(r);
104
+ }, [r]);
105
+ const J = (e) => {
106
+ e.key === "Enter" && !e.shiftKey && !v && !e.nativeEvent.isComposing && (e.preventDefault(), C());
107
+ }, C = async (e = r) => {
100
108
  if (v && (!e || e.trim().length === 0)) return;
101
- d([]), u(""), await a({
109
+ d([]), l(""), await o({
102
110
  eventName: "user_message_submitted",
103
111
  properties: {
104
- conversationId: s
112
+ conversationId: t
105
113
  }
106
114
  });
107
- const i = b || w ? JSON.stringify({
108
- ...b,
109
- ...w
115
+ const i = E || b ? JSON.stringify({
116
+ ...E,
117
+ ...b
110
118
  }) : void 0, n = {
111
- ...p
119
+ ...u
112
120
  };
113
121
  i && (n["inkeep-filters"] = i);
114
- let t = s;
115
- t || (t = `conv_${R(16)}`, E(t)), P(t), $(
122
+ let s = t;
123
+ s || (s = `conv_${O(16)}`, y(s)), R(s), U(
116
124
  {
117
125
  text: e
118
126
  },
119
127
  {
120
- headers: n,
128
+ headers: {
129
+ "x-inkeep-client-timezone": Intl.DateTimeFormat().resolvedOptions().timeZone,
130
+ "x-inkeep-client-timestamp": (/* @__PURE__ */ new Date()).toISOString(),
131
+ ...n
132
+ },
121
133
  body: {
122
- conversationId: t,
123
- requestContext: l
134
+ conversationId: s,
135
+ requestContext: p
124
136
  }
125
137
  }
126
138
  );
127
- }, V = () => {
128
- z().then(() => {
129
- m("aborted", { conversationId: s });
139
+ }, Q = () => {
140
+ W().then(() => {
141
+ c("aborted", { conversationId: t });
130
142
  });
131
- }, D = () => {
132
- J(), x([]), E(""), d([]), M(null), a({
143
+ }, F = () => {
144
+ G(), _([]), y(""), d([]), x(null), o({
133
145
  eventName: "chat_clear_button_clicked",
134
146
  properties: {
135
- conversationId: s
147
+ conversationId: t
136
148
  }
137
149
  });
138
- }, { openForm: j } = ae(), X = ie();
139
- return se(r.chatFunctionsRef, () => ({
140
- submitMessage: I,
150
+ }, { openForm: V } = ae(), j = ie();
151
+ return se(a.chatFunctionsRef, () => ({
152
+ submitMessage: C,
141
153
  updateInputMessage(e) {
142
- u(e);
154
+ l(e);
143
155
  },
144
- clearChat: D,
156
+ clearChat: F,
145
157
  openForm: (e) => {
146
- X?.setView("chat"), j(e, void 0);
158
+ j?.setView("chat"), V(e, void 0);
147
159
  },
148
160
  focusInput: () => {
149
- k.current?.focus();
161
+ D.current?.focus();
150
162
  }
151
163
  })), {
152
164
  messages: h,
153
- isLoading: F,
154
- isStreaming: B,
155
- error: G,
156
- setError: C,
165
+ isLoading: k,
166
+ isStreaming: $,
167
+ error: Z,
168
+ setError: I,
157
169
  isSubmitDisabled: v,
158
- input: o,
170
+ input: r,
159
171
  handleInputChange: T,
160
- handleInputKeyDown: Q,
161
- handleSubmit: I,
162
- stop: V,
163
- clear: D,
172
+ handleInputKeyDown: J,
173
+ handleSubmit: C,
174
+ stop: Q,
175
+ clear: F,
164
176
  isEmpty: h.length === 0,
165
- inputRef: k,
166
- isMobile: O,
177
+ inputRef: D,
178
+ isMobile: L,
167
179
  // Additional state for attachments and workflow
168
- messageAttachments: K,
180
+ messageAttachments: q,
169
181
  setMessageAttachments: d,
170
- selectedWorkflow: U,
171
- setSelectedWorkflow: M,
172
- isNewChat: L,
173
- conversationId: s
182
+ selectedWorkflow: H,
183
+ setSelectedWorkflow: x,
184
+ isNewChat: B,
185
+ conversationId: t
174
186
  };
175
187
  };
176
188
  export {
177
- ue as DEFAULT_ERROR_MESSAGE,
178
- be as useInkeepChat
189
+ le as DEFAULT_ERROR_MESSAGE,
190
+ Ee as useInkeepChat
179
191
  };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("react/jsx-runtime"),t=require("react"),l=require("./config-provider.cjs"),a=t.createContext(void 0),p=({children:e})=>{const{baseSettings:s,componentType:n}=l.useInkeepConfig(),{tags:o,analyticsProperties:r}=s,i=t.useMemo(()=>({widgetLibraryVersion:"0.15.5",componentType:n,tags:o}),[n,o]),u={logEvent:t.useCallback(async c=>{const v={...i,...c.properties,...r},d={eventName:c.eventName,properties:v};return s.onEvent?.(d)},[s,i,r])};return E.jsx(a.Provider,{value:u,children:e})},g=()=>{const e=t.useContext(a);if(!e)throw new Error("useBaseEvents must be used within a BaseEventsProvider");return e};exports.BaseEventsProvider=p;exports.useBaseEvents=g;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("react/jsx-runtime"),t=require("react"),l=require("./config-provider.cjs"),a=t.createContext(void 0),p=({children:e})=>{const{baseSettings:s,componentType:n}=l.useInkeepConfig(),{tags:o,analyticsProperties:r}=s,i=t.useMemo(()=>({widgetLibraryVersion:"0.15.7",componentType:n,tags:o}),[n,o]),u={logEvent:t.useCallback(async c=>{const v={...i,...c.properties,...r},d={eventName:c.eventName,properties:v};return s.onEvent?.(d)},[s,i,r])};return E.jsx(a.Provider,{value:u,children:e})},g=()=>{const e=t.useContext(a);if(!e)throw new Error("useBaseEvents must be used within a BaseEventsProvider");return e};exports.BaseEventsProvider=p;exports.useBaseEvents=g;
@@ -5,7 +5,7 @@ import { useInkeepConfig as g } from "./config-provider.js";
5
5
  const a = d(void 0), P = ({ children: e }) => {
6
6
  const { baseSettings: t, componentType: o } = g(), { tags: s, analyticsProperties: n } = t, r = u(
7
7
  () => ({
8
- widgetLibraryVersion: "0.15.5",
8
+ widgetLibraryVersion: "0.15.7",
9
9
  componentType: o,
10
10
  tags: s
11
11
  }),
@@ -43,7 +43,7 @@ type ExtendPropertiesWithCommon<T> = T extends {
43
43
  export type InkeepEventWithCommon = ExtendPropertiesWithCommon<InkeepEvent>;
44
44
  export type InkeepCallbackEvent = InkeepEventWithCommon;
45
45
  export type SearchEvent = SearchQueryResponseReceivedEvent | SearchQuerySubmittedEvent | SearchResultClickedEvent;
46
- export type ChatEvent = AssistantMessageReceivedEvent | AssistantAnswerDisplayedEvent | UserMessageSubmittedEvent | UserEscalationIndicatedEvent | SharedChatLoadedEvent | AssistantPositiveFeedbackSubmittedEvent | AssistantNegativeFeedbackSubmittedEvent | ChatClearButtonClickedEvent | AssistantMessageCopiedEvent | GetHelpOptionClickedEvent | ChatShareButtonClickedEvent | AssistantSourceItemClickedEvent | AssistantMessageLinkOpenedEvent | AssistantCodeBlockCopiedEvent;
46
+ export type ChatEvent = AssistantMessageReceivedEvent | AssistantAnswerDisplayedEvent | UserMessageSubmittedEvent | UserEscalationIndicatedEvent | SharedChatLoadedEvent | AssistantPositiveFeedbackSubmittedEvent | AssistantNegativeFeedbackSubmittedEvent | ChatClearButtonClickedEvent | AssistantMessageCopiedEvent | GetHelpOptionClickedEvent | ChatShareButtonClickedEvent | AssistantSourceItemClickedEvent | AssistantMessageLinkOpenedEvent | AssistantCodeBlockCopiedEvent | ChatErrorEvent;
47
47
  export type WidgetEvent = ModalOpenedEvent | ModalClosedEvent | ChatBubbleOpenedEvent | ChatBubbleClosedEvent;
48
48
  export type InkeepEvent = SearchEvent | ChatEvent | WidgetEvent;
49
49
  export interface AssistantMessageReceivedEvent {
@@ -141,6 +141,13 @@ export interface AssistantMessageLinkOpenedEvent {
141
141
  url?: string;
142
142
  };
143
143
  }
144
+ export interface ChatErrorEvent {
145
+ eventName: 'chat_error';
146
+ properties: {
147
+ conversationId: string;
148
+ error?: string;
149
+ };
150
+ }
144
151
  export interface SearchResultClickedEvent {
145
152
  eventName: 'search_result_clicked';
146
153
  properties: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/agents-ui",
3
- "version": "0.15.6",
3
+ "version": "0.15.8",
4
4
  "description": "",
5
5
  "homepage": "",
6
6
  "repository": {