@useago/sdk 1.5.0 → 1.5.3

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 (46) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/AgoClient-BGkFSNZF.cjs +8 -0
  3. package/dist/AgoClient-CW-BLT1_.js +1542 -0
  4. package/dist/angular.cjs +1 -1
  5. package/dist/angular.d.cts +390 -2
  6. package/dist/angular.d.ts +390 -2
  7. package/dist/angular.js +1 -1
  8. package/dist/createConversationSession-BCb0D6bt.cjs +1 -0
  9. package/dist/{createConversationSession-DCSWShaW.js → createConversationSession-C7cnnWKW.js} +3 -3
  10. package/dist/createFormCollector-iCDwAwYJ.js +279 -0
  11. package/dist/createFormCollector-t_fGyuTD.cjs +1 -0
  12. package/dist/createMockClient-Br0TWgLO.js +97 -0
  13. package/dist/createMockClient-BwNLPjeT.cjs +1 -0
  14. package/dist/devtools.d.cts +390 -2
  15. package/dist/devtools.d.ts +390 -2
  16. package/dist/helpers.d.cts +5 -0
  17. package/dist/helpers.d.ts +5 -0
  18. package/dist/index.cjs +1 -1
  19. package/dist/index.d.cts +605 -4
  20. package/dist/index.d.ts +605 -4
  21. package/dist/index.js +95 -90
  22. package/dist/react.cjs +3 -3
  23. package/dist/react.d.cts +561 -4
  24. package/dist/react.d.ts +561 -4
  25. package/dist/react.js +849 -517
  26. package/dist/testing.cjs +1 -1
  27. package/dist/testing.d.cts +390 -2
  28. package/dist/testing.d.ts +390 -2
  29. package/dist/testing.js +1 -1
  30. package/dist/vue.cjs +1 -1
  31. package/dist/vue.d.cts +411 -2
  32. package/dist/vue.d.ts +411 -2
  33. package/dist/vue.js +133 -110
  34. package/dist/widget.cjs +4 -4
  35. package/dist/widget.d.cts +387 -2
  36. package/dist/widget.d.ts +387 -2
  37. package/dist/widget.js +437 -423
  38. package/llms-full.txt +74 -2
  39. package/package.json +1 -1
  40. package/dist/AgoClient-q39FIjSC.js +0 -912
  41. package/dist/AgoClient-wcPRaIMs.cjs +0 -8
  42. package/dist/createConversationSession-BBYfQLLS.cjs +0 -1
  43. package/dist/createFormCollector-eimwwWEi.cjs +0 -1
  44. package/dist/createFormCollector-sB6rMccD.js +0 -299
  45. package/dist/createMockClient-BUc9PSbo.js +0 -79
  46. package/dist/createMockClient-CjdCqixj.cjs +0 -1
package/dist/vue.js CHANGED
@@ -1,45 +1,45 @@
1
- import { t as A } from "./AgoClient-q39FIjSC.js";
2
- import { computed as L, inject as M, onMounted as f, onScopeDispose as F, onUnmounted as h, ref as c, shallowRef as S } from "vue";
3
- var N = /* @__PURE__ */ Symbol("ago-client"), b = { install(t, n) {
4
- const e = new A(n);
5
- t.provide(N, e);
1
+ import { t as E } from "./AgoClient-CW-BLT1_.js";
2
+ import { computed as M, inject as F, onMounted as d, onScopeDispose as S, onUnmounted as m, ref as l, shallowRef as A } from "vue";
3
+ var N = /* @__PURE__ */ Symbol("ago-client"), b = { install(t, e) {
4
+ const n = new E(e);
5
+ t.provide(N, n);
6
6
  } };
7
- function g(t) {
8
- if (t) return new A(t);
9
- const n = M(N);
10
- if (!n) throw new Error("useAgo(): no AgoClient found. Either pass config or install AgoPlugin.");
11
- return n;
7
+ function f(t) {
8
+ if (t) return new E(t);
9
+ const e = F(N);
10
+ if (!e) throw new Error("useAgo(): no AgoClient found. Either pass config or install AgoPlugin.");
11
+ return e;
12
12
  }
13
- function x(t = {}) {
14
- const n = t.client ?? g(), e = c([]), s = c(t.conversationId), r = c(!1), a = c(null), l = (o) => {
15
- s.value || (s.value = o.conversationId);
16
- }, m = (o) => {
17
- const i = e.value.findIndex((v) => v.id === o.messageId);
18
- i >= 0 && (e.value[i] = {
19
- ...e.value[i],
20
- content: e.value[i].content + o.content
13
+ function R(t = {}) {
14
+ const e = t.client ?? f(), n = l([]), s = l(t.conversationId), o = l(!1), r = l(null), c = (a) => {
15
+ s.value || (s.value = a.conversationId);
16
+ }, p = (a) => {
17
+ const i = n.value.findIndex((v) => v.id === a.messageId);
18
+ i >= 0 && (n.value[i] = {
19
+ ...n.value[i],
20
+ content: n.value[i].content + a.content
21
21
  });
22
- }, C = (o) => {
23
- const i = e.value.findIndex((v) => v.id === o.id);
24
- i >= 0 ? e.value[i] = o : e.value.push(o), r.value = !1;
25
- }, p = (o) => {
26
- a.value = new Error(o.error), r.value = !1;
22
+ }, h = (a) => {
23
+ const i = n.value.findIndex((v) => v.id === a.id);
24
+ i >= 0 ? n.value[i] = a : n.value.push(a), o.value = !1;
25
+ }, C = (a) => {
26
+ r.value = new Error(a.error), o.value = !1;
27
27
  };
28
- f(() => {
29
- n.on("message:start", l), n.on("message:chunk", m), n.on("message:complete", C), n.on("message:error", p);
30
- }), h(() => {
31
- n.off("message:start", l), n.off("message:chunk", m), n.off("message:complete", C), n.off("message:error", p);
28
+ d(() => {
29
+ e.on("message:start", c), e.on("message:chunk", p), e.on("message:complete", h), e.on("message:error", C);
30
+ }), m(() => {
31
+ e.off("message:start", c), e.off("message:chunk", p), e.off("message:complete", h), e.off("message:error", C);
32
32
  });
33
- async function d(o, i) {
34
- r.value = !0, a.value = null;
33
+ async function g(a, i) {
34
+ o.value = !0, r.value = null;
35
35
  const v = {
36
36
  id: `temp-${Date.now()}`,
37
37
  conversationId: s.value || "",
38
- content: o,
38
+ content: a,
39
39
  role: "user",
40
40
  status: "DONE",
41
41
  createdAt: /* @__PURE__ */ new Date()
42
- }, y = {
42
+ }, L = {
43
43
  id: `temp-assistant-${Date.now()}`,
44
44
  conversationId: s.value || "",
45
45
  content: "",
@@ -47,141 +47,163 @@ function x(t = {}) {
47
47
  status: "IN_PROGRESS",
48
48
  createdAt: /* @__PURE__ */ new Date()
49
49
  };
50
- e.value.push(v, y);
50
+ n.value.push(v, L);
51
51
  try {
52
- const u = await n.sendMessage(o, {
52
+ const u = await e.sendMessage(a, {
53
53
  conversationId: s.value,
54
54
  files: i
55
55
  });
56
- u.conversationId && !s.value && (s.value = u.conversationId), e.value = e.value.filter((E) => !E.id.startsWith("temp-"));
56
+ u.conversationId && !s.value && (s.value = u.conversationId), n.value = n.value.filter((y) => !y.id.startsWith("temp-"));
57
57
  const I = {
58
58
  ...v,
59
59
  id: v.id.replace("temp-", "user-"),
60
60
  conversationId: u.conversationId
61
61
  };
62
- return e.value.some((E) => E.id === u.id) ? e.value.push(I) : e.value.push(I, u), u;
62
+ return n.value.some((y) => y.id === u.id) ? n.value.push(I) : n.value.push(I, u), u;
63
63
  } catch (u) {
64
- return a.value = u instanceof Error ? u : /* @__PURE__ */ new Error("Failed to send"), r.value = !1, e.value = e.value.filter((I) => !I.id.startsWith("temp-")), null;
64
+ return r.value = u instanceof Error ? u : /* @__PURE__ */ new Error("Failed to send"), o.value = !1, n.value = n.value.filter((I) => !I.id.startsWith("temp-")), null;
65
65
  }
66
66
  }
67
67
  function w() {
68
- e.value = [], s.value = void 0, a.value = null;
68
+ n.value = [], s.value = void 0, r.value = null;
69
69
  }
70
70
  return {
71
- messages: e,
72
- isLoading: r,
73
- error: a,
71
+ messages: n,
72
+ isLoading: o,
73
+ error: r,
74
74
  conversationId: s,
75
- sendMessage: d,
75
+ sendMessage: g,
76
76
  clearMessages: w
77
77
  };
78
78
  }
79
79
  function P(t = {}) {
80
- const n = t.client ?? g(), e = t.autoLoad ?? !0, s = c([]), r = c(null), a = c(!1), l = c(null);
81
- async function m() {
82
- a.value = !0, l.value = null;
80
+ const e = t.client ?? f(), n = t.autoLoad ?? !0, s = l([]), o = l(null), r = l(!1), c = l(null);
81
+ async function p() {
82
+ r.value = !0, c.value = null;
83
83
  try {
84
- s.value = await n.getConversations();
85
- } catch (d) {
86
- l.value = d instanceof Error ? d : /* @__PURE__ */ new Error("Failed to load conversations");
84
+ s.value = await e.getConversations();
85
+ } catch (g) {
86
+ c.value = g instanceof Error ? g : /* @__PURE__ */ new Error("Failed to load conversations");
87
87
  } finally {
88
- a.value = !1;
88
+ r.value = !1;
89
89
  }
90
90
  }
91
- async function C(d) {
92
- a.value = !0, l.value = null;
91
+ async function h(g) {
92
+ r.value = !0, c.value = null;
93
93
  try {
94
- r.value = await n.getConversation(d);
94
+ o.value = await e.getConversation(g);
95
95
  } catch (w) {
96
- l.value = w instanceof Error ? w : /* @__PURE__ */ new Error("Failed to load conversation");
96
+ c.value = w instanceof Error ? w : /* @__PURE__ */ new Error("Failed to load conversation");
97
97
  } finally {
98
- a.value = !1;
98
+ r.value = !1;
99
99
  }
100
100
  }
101
- function p() {
102
- r.value = null;
101
+ function C() {
102
+ o.value = null;
103
103
  }
104
- return f(() => {
105
- e && m();
104
+ return d(() => {
105
+ n && p();
106
106
  }), {
107
107
  conversations: s,
108
- currentConversation: r,
109
- isLoading: a,
110
- error: l,
111
- selectConversation: C,
112
- startNewConversation: p,
113
- refreshConversations: m
108
+ currentConversation: o,
109
+ isLoading: r,
110
+ error: c,
111
+ selectConversation: h,
112
+ startNewConversation: C,
113
+ refreshConversations: p
114
114
  };
115
115
  }
116
116
  function k(t = {}) {
117
- const n = x({
117
+ const e = R({
118
118
  client: t.client,
119
119
  conversationId: t.conversationId
120
- }), e = P({
120
+ }), n = P({
121
121
  client: t.client,
122
122
  autoLoad: t.autoLoad
123
- }), s = L(() => n.error.value || e.error.value);
123
+ }), s = M(() => e.error.value || n.error.value);
124
124
  return {
125
- messages: n.messages,
126
- isLoading: n.isLoading,
125
+ messages: e.messages,
126
+ isLoading: e.isLoading,
127
127
  error: s,
128
- sendMessage: n.sendMessage,
129
- clearMessages: n.clearMessages,
130
- conversationId: n.conversationId,
131
- conversations: e.conversations,
132
- currentConversation: e.currentConversation,
133
- isConversationsLoading: e.isLoading,
134
- selectConversation: e.selectConversation,
135
- startNewConversation: e.startNewConversation,
136
- refreshConversations: e.refreshConversations
128
+ sendMessage: e.sendMessage,
129
+ clearMessages: e.clearMessages,
130
+ conversationId: e.conversationId,
131
+ conversations: n.conversations,
132
+ currentConversation: n.currentConversation,
133
+ isConversationsLoading: n.isLoading,
134
+ selectConversation: n.selectConversation,
135
+ startNewConversation: n.startNewConversation,
136
+ refreshConversations: n.refreshConversations
137
137
  };
138
138
  }
139
- function O(t, n) {
140
- const e = g();
141
- f(() => {
142
- e.registerFunction(t, n.handler, {
143
- description: n.description,
144
- parameters: n.parameters,
145
- maxResultBytes: n.maxResultBytes
139
+ function O(t, e) {
140
+ const n = f();
141
+ d(() => {
142
+ n.registerFunction(t, e.handler, {
143
+ description: e.description,
144
+ parameters: e.parameters,
145
+ maxResultBytes: e.maxResultBytes
146
146
  });
147
- }), h(() => {
148
- e.unregisterFunction(t);
147
+ }), m(() => {
148
+ n.unregisterFunction(t);
149
149
  });
150
150
  }
151
- function _(t, n) {
152
- const e = g();
153
- f(() => {
154
- e.registerNavigationFunction(t, n);
155
- }), h(() => {
156
- e.unregisterNavigationFunction();
151
+ function _(t, e) {
152
+ const n = f();
153
+ d(() => {
154
+ n.registerNavigationFunction(t, e);
155
+ }), m(() => {
156
+ n.unregisterNavigationFunction();
157
157
  });
158
158
  }
159
- function B(t, n) {
160
- const e = g(), s = n?.functionName ?? "setPageState";
161
- f(() => {
162
- e.registerPageStateFunction(t, { functionName: s });
163
- }), h(() => {
164
- e.unregisterPageStateFunction(s);
159
+ function B(t, e) {
160
+ const n = f(), s = e?.functionName ?? "setPageState";
161
+ d(() => {
162
+ n.registerPageStateFunction(t, { functionName: s });
163
+ }), m(() => {
164
+ n.unregisterPageStateFunction(s);
165
165
  });
166
166
  }
167
- function G(t, n) {
168
- const e = g();
169
- f(() => {
170
- e.on(t, n);
171
- }), h(() => {
172
- e.off(t, n);
167
+ function G(t, e) {
168
+ const n = f();
169
+ d(() => {
170
+ n.on(t, e);
171
+ }), m(() => {
172
+ n.off(t, e);
173
173
  });
174
174
  }
175
175
  function U(t) {
176
- const n = S(t.get());
177
- return F(t.subscribe((e) => {
178
- n.value = e;
179
- })), n;
176
+ const e = A(t.get());
177
+ return S(t.subscribe((n) => {
178
+ e.value = n;
179
+ })), e;
180
+ }
181
+ function W() {
182
+ const t = f(), e = A(null), n = (o) => {
183
+ e.value = o, t.proactive?.shown(o);
184
+ }, s = ({ nudge: o }) => {
185
+ e.value?.id === o.id && (e.value = null);
186
+ };
187
+ return d(() => {
188
+ t.on("nudge:ready", n), t.on("nudge:accepted", s), t.on("nudge:dismissed", s);
189
+ }), m(() => {
190
+ t.off("nudge:ready", n), t.off("nudge:accepted", s), t.off("nudge:dismissed", s);
191
+ }), {
192
+ nudge: e,
193
+ accept: async () => {
194
+ const o = e.value;
195
+ o && (e.value = null, await t.proactive?.accept(o));
196
+ },
197
+ dismiss: () => {
198
+ const o = e.value;
199
+ o && (e.value = null, t.proactive?.dismiss(o));
200
+ }
201
+ };
180
202
  }
181
203
  export {
182
204
  N as AGO_CLIENT_KEY,
183
205
  b as AgoPlugin,
184
- g as useAgo,
206
+ f as useAgo,
185
207
  G as useAgoEvents,
186
208
  O as useAgoFunction,
187
209
  _ as useAgoNavigation,
@@ -189,5 +211,6 @@ export {
189
211
  U as useAgoStore,
190
212
  k as useChat,
191
213
  P as useConversation,
192
- x as useMessages
214
+ R as useMessages,
215
+ W as useProactiveNudge
193
216
  };
package/dist/widget.cjs CHANGED
@@ -1,5 +1,5 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const se=require("./AgoClient-wcPRaIMs.cjs"),ct=require("./createFormCollector-eimwwWEi.cjs"),Gt=require("./createConversationSession-BBYfQLLS.cjs");var jt='"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',Re=`var(--ago-font, ${jt})`,pt={font:"--ago-font",radius:"--ago-radius",messageRadius:"--ago-message-radius",brand:"--ago-brand-color",brandText:"--ago-brand-text-color",headerBg:"--ago-header-background",headerText:"--ago-header-text-color",panelBg:"--ago-panel-background",messagesBg:"--ago-messages-background",text:"--ago-text-color",mutedText:"--ago-muted-text-color",border:"--ago-border-color",accent:"--ago-accent-color",agentBubbleBg:"--ago-agent-bubble-background"},Ae="var(--ago-brand-color, #03182f)",_e="var(--ago-brand-text-color, #fff)",Vt="var(--ago-header-background, var(--ago-brand-color, #03182f))",ft="var(--ago-header-text-color, #e8f0fe)",ee="var(--ago-panel-background, #fff)",xt="var(--ago-messages-background, #fbfbfb)",J="var(--ago-text-color, #30373e)",bt="var(--ago-muted-text-color, #6b6d6f)",L="var(--ago-border-color, #dee3e8)",De="var(--ago-accent-color, #1b5fc4)",ut="var(--ago-agent-bubble-background, #f1f3f5)",qt="var(--ago-radius, 16px)",ze="var(--ago-message-radius, 16px)",Kt="var(--ago-message-radius, 20px)";function Xt(n,o){if(o)for(const i of Object.keys(pt)){const r=o[i];r!=null&&n.style.setProperty(pt[i],r)}}function v(n,o){Object.assign(n.style,o)}function h(n={}){const o=document.createElement("div");return v(o,n),o}var mt="ago-chat-widget-keyframes";function Qt(){if(typeof document>"u"||document.getElementById(mt))return;const n=document.createElement("style");n.id=mt,n.textContent="@keyframes ago-pulse { 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); } 40% { opacity: 1; transform: scale(1); } }@keyframes ago-spin { to { transform: rotate(360deg); } }",document.head.appendChild(n)}function Yt(n){let o=[];const i=document.createElement("form");v(i,{display:"flex",flexDirection:"column",gap:"8px",padding:"12px",borderTop:`1px solid ${L}`,backgroundColor:ee}),i.className="ago-chat-input";const r=h({display:"flex",flexWrap:"wrap",gap:"6px"}),b=h({display:"flex",gap:"8px",alignItems:"flex-end"}),a=document.createElement("textarea");a.placeholder=n.placeholder,a.setAttribute("aria-label",n.placeholder),a.rows=1,v(a,{flex:"1",resize:"none",boxSizing:"border-box",padding:"10px 12px",border:`1px solid ${L}`,borderRadius:"12px",fontSize:"16px",fontFamily:Re,lineHeight:"1.4",maxHeight:"110px",overflowY:"hidden"});const C=()=>{a.style.height="auto";const c=Math.min(a.scrollHeight+2,110);a.style.height=`${c}px`,a.style.overflowY=a.scrollHeight+2>110?"auto":"hidden"};a.addEventListener("input",()=>{C(),A()});const m='<svg width="18" height="18" viewBox="0 -960 960 960" fill="currentColor" aria-hidden="true"><path d="M440-160v-487L216-423l-56-57 320-320 320 320-56 57-224-224v487h-80Z"/></svg>',x='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true" style="animation: ago-spin 0.8s linear infinite"><path d="M21 12a9 9 0 1 1-6.219-8.56"/></svg>',p=document.createElement("button");p.type="submit",p.setAttribute("aria-label","Send"),p.innerHTML=m,v(p,{flexShrink:"0",width:"40px",height:"40px",padding:"0",border:"none",borderRadius:"50%",backgroundColor:Ae,color:_e,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer"});let f=!1;const A=()=>{const s=a.value.trim()!==""||o.length>0,c=f||!s;p.disabled=c,p.innerHTML=f?x:m,p.style.opacity=c&&!f?"0.5":"1",p.style.cursor=c?"default":"pointer"};let R=null,_=null;n.allowFiles&&(R=document.createElement("input"),R.type="file",R.multiple=!0,v(R,{display:"none"}),_=document.createElement("button"),_.type="button",_.setAttribute("aria-label","Attach file"),_.textContent="📎",v(_,{padding:"10px 12px",border:`1px solid ${L}`,borderRadius:"12px",backgroundColor:ee,cursor:"pointer",fontSize:"14px"}),_.addEventListener("click",()=>R?.click()),R.addEventListener("change",()=>{o=[...o,...Array.from(R?.files??[])],Y()}));function Y(){r.replaceChildren(),o.forEach((s,c)=>{const w=h({display:"flex",alignItems:"center",gap:"4px",padding:"4px 8px",backgroundColor:"#f0f4ff",border:`1px solid ${L}`,borderRadius:"8px",fontSize:"12px"}),$=document.createElement("span");$.textContent=s.name;const I=document.createElement("button");I.type="button",I.setAttribute("aria-label",`Remove ${s.name}`),I.textContent="×",v(I,{border:"none",background:"transparent",cursor:"pointer",fontSize:"14px",lineHeight:"1"}),I.addEventListener("click",()=>{o=o.filter((j,V)=>V!==c),Y()}),w.append($,I),r.appendChild(w)}),A()}const D=()=>{const s=a.value,c=o;return a.value="",C(),o=[],Y(),{content:s,files:c}},g=()=>{const{content:s,files:c}=D();(s.trim()||c.length>0)&&n.onSend(s.trim(),c.length>0?c:void 0)};return i.addEventListener("submit",s=>{s.preventDefault(),g()}),a.addEventListener("keydown",s=>{s.key==="Enter"&&!s.shiftKey&&(s.preventDefault(),g())}),_&&b.appendChild(_),b.append(a,p),R&&i.appendChild(R),i.append(r,b),A(),{inputRow:i,getValueAndClear:D,setDisabled:s=>{a.disabled=s,f=s,A()},focus:()=>a.focus()}}var Zt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function ae(n){return n.replace(/[&<>"']/g,o=>Zt[o])}function gt(n){const o=n.trim();return/^(https?:|mailto:|tel:|#|\/|\.\/|\.\.\/)/i.test(o)||!/^[a-z][a-z0-9+.-]*:/i.test(o)?o:null}var vt='"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace',Se="";function te(n){const o=[],i=b=>(o.push(b),`${Se}${o.length-1}${Se}`);let r=n;return r=r.replace(/`([^`]+)`/g,(b,a)=>i(`<code style="background:#f0f2f5;padding:2px 5px;border-radius:4px;font-size:13px;font-family:${vt}">${ae(a)}</code>`)),r=r.replace(/!\[([^\]]*)\]\(([^)\s]+)\)/g,(b,a,C)=>{const m=gt(C);return m?i(`<img alt="${ae(a)}" src="${ae(m)}" style="max-width:100%;border-radius:8px;margin:4px 0" />`):b}),r=r.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(b,a,C)=>{const m=gt(C);return m?i(`<a href="${ae(m)}" target="_blank" rel="noopener noreferrer" style="color:#1b5fc4;text-decoration:underline">${te(a)}</a>`):b}),r=ae(r),r=r.replace(/\*\*([^*]+?)\*\*/g,"<strong>$1</strong>").replace(/__([^_]+?)__/g,"<strong>$1</strong>").replace(/~~([^~]+?)~~/g,"<del>$1</del>").replace(/(^|[^*])\*(?!\s)([^*]+?)\*/g,"$1<em>$2</em>").replace(/(^|[^\w_])_(?!\s)([^_]+?)_/g,"$1<em>$2</em>"),r=r.replace(new RegExp(`${Se}(\\d+)${Se}`,"g"),(b,a)=>o[Number(a)]),r}function B(n,o,i){const r=document.createElement(n);return Object.assign(r.style,o),i!==void 0&&(r.innerHTML=i),r}var yt=/^ {0,3}([-*_])( *\1){2,} *$/,wt=/^ {0,3}(#{1,6})\s+(.*?)\s*#*\s*$/,Ct=/^ {0,3}(```+|~~~+)/,Ie=/^ {0,3}>\s?/,le=/^(\s*)([-*+]|\d+[.)])\s+(.*)$/,Jt=["20px","18px","16px","15px","14px","13px"],Fe=n=>n.match(/^\s*/)?.[0].length??0;function en(n){return n.trim()===""||yt.test(n)||wt.test(n)||Ct.test(n)||Ie.test(n)||le.test(n)}function Et(n){const o=n[0].match(le),i=o[1].length,r=/\d/.test(o[2]),b=B(r?"ol":"ul",{margin:"0 0 8px 0",paddingLeft:"20px",listStyleType:r?"decimal":"disc",listStylePosition:"outside"});let a=0;for(;a<n.length;){const C=n[a].match(le),m=[];for(a++;a<n.length&&Fe(n[a])>i;)m.push(n[a]),a++;const x=B("li",{display:"list-item",margin:"2px 0",lineHeight:"1.6"}),p=C[3].match(/^\[([ xX])\]\s+(.*)$/);p?(x.style.listStyleType="none",x.style.marginLeft="-20px",x.innerHTML=`<span style="margin-right:6px">${p[1].toLowerCase()==="x"?"☑":"☐"}</span>${te(p[2])}`):x.innerHTML=te(C[3]),m.filter(f=>le.test(f)).length>0&&x.appendChild(Et(m.filter(f=>f.trim()!==""))),b.appendChild(x)}return b}function tn(n){const o=m=>m.replace(/^\s*\|?/,"").replace(/\|?\s*$/,"").split("|").map(x=>x.trim()),i=B("div",{overflowX:"auto",margin:"0 0 8px 0"}),r=B("table",{borderCollapse:"collapse",width:"100%",fontSize:"13px"}),b=document.createElement("thead"),a=document.createElement("tr");for(const m of o(n[0]))a.appendChild(B("th",{border:"1px solid #dee3e8",padding:"6px 10px",textAlign:"left",backgroundColor:"#f5f7fa",fontWeight:"600"},te(m)));b.appendChild(a),r.appendChild(b);const C=document.createElement("tbody");for(const m of n.slice(2)){const x=document.createElement("tr");for(const p of o(m))x.appendChild(B("td",{border:"1px solid #dee3e8",padding:"6px 10px"},te(p)));C.appendChild(x)}return r.appendChild(C),i.appendChild(r),i}var nn=n=>!!n&&/^\s*\|?\s*:?-{1,}:?\s*(\|\s*:?-{1,}:?\s*)*\|?\s*$/.test(n);function ke(n){const o=document.createDocumentFragment(),i=n.replace(/\r\n?/g,`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const se=require("./AgoClient-BGkFSNZF.cjs"),Xt=require("./createConversationSession-BCb0D6bt.cjs"),mt=require("./createFormCollector-t_fGyuTD.cjs");var Yt='"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',Ie=`var(--ago-font, ${Yt})`,gt={font:"--ago-font",radius:"--ago-radius",messageRadius:"--ago-message-radius",brand:"--ago-brand-color",brandText:"--ago-brand-text-color",headerBg:"--ago-header-background",headerText:"--ago-header-text-color",panelBg:"--ago-panel-background",messagesBg:"--ago-messages-background",text:"--ago-text-color",mutedText:"--ago-muted-text-color",border:"--ago-border-color",accent:"--ago-accent-color",agentBubbleBg:"--ago-agent-bubble-background"},_e="var(--ago-brand-color, #03182f)",Le="var(--ago-brand-text-color, #fff)",Qt="var(--ago-header-background, var(--ago-brand-color, #03182f))",ht="var(--ago-header-text-color, #e8f0fe)",te="var(--ago-panel-background, #fff)",Ct="var(--ago-messages-background, #fbfbfb)",ee="var(--ago-text-color, #30373e)",Et="var(--ago-muted-text-color, #6b6d6f)",N="var(--ago-border-color, #dee3e8)",Fe="var(--ago-accent-color, #1b5fc4)",xt="var(--ago-agent-bubble-background, #f1f3f5)",Zt="var(--ago-radius, 16px)",Pe="var(--ago-message-radius, 16px)",Jt="var(--ago-message-radius, 20px)";function en(t,o){if(o)for(const i of Object.keys(gt)){const r=o[i];r!=null&&t.style.setProperty(gt[i],r)}}function v(t,o){Object.assign(t.style,o)}function h(t={}){const o=document.createElement("div");return v(o,t),o}var bt="ago-chat-widget-keyframes";function tn(){if(typeof document>"u"||document.getElementById(bt))return;const t=document.createElement("style");t.id=bt,t.textContent="@keyframes ago-pulse { 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); } 40% { opacity: 1; transform: scale(1); } }@keyframes ago-spin { to { transform: rotate(360deg); } }",document.head.appendChild(t)}function nn(t){let o=[];const i=document.createElement("form");v(i,{display:"flex",flexDirection:"column",gap:"8px",padding:"12px",borderTop:`1px solid ${N}`,backgroundColor:te}),i.className="ago-chat-input";const r=h({display:"flex",flexWrap:"wrap",gap:"6px"}),b=h({display:"flex",gap:"8px",alignItems:"flex-end"}),a=document.createElement("textarea");a.placeholder=t.placeholder,a.setAttribute("aria-label",t.placeholder),a.rows=1,v(a,{flex:"1",resize:"none",boxSizing:"border-box",padding:"10px 12px",border:`1px solid ${N}`,borderRadius:"12px",fontSize:"16px",fontFamily:Ie,lineHeight:"1.4",maxHeight:"110px",overflowY:"hidden"});const C=()=>{a.style.height="auto";const c=Math.min(a.scrollHeight+2,110);a.style.height=`${c}px`,a.style.overflowY=a.scrollHeight+2>110?"auto":"hidden"};a.addEventListener("input",()=>{C(),I()});const m='<svg width="18" height="18" viewBox="0 -960 960 960" fill="currentColor" aria-hidden="true"><path d="M440-160v-487L216-423l-56-57 320-320 320 320-56 57-224-224v487h-80Z"/></svg>',x='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true" style="animation: ago-spin 0.8s linear infinite"><path d="M21 12a9 9 0 1 1-6.219-8.56"/></svg>',p=document.createElement("button");p.type="submit",p.setAttribute("aria-label","Send"),p.innerHTML=m,v(p,{flexShrink:"0",width:"40px",height:"40px",padding:"0",border:"none",borderRadius:"50%",backgroundColor:_e,color:Le,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer"});let f=!1;const I=()=>{const l=a.value.trim()!==""||o.length>0,c=f||!l;p.disabled=c,p.innerHTML=f?x:m,p.style.opacity=c&&!f?"0.5":"1",p.style.cursor=c?"default":"pointer"};let R=null,A=null;t.allowFiles&&(R=document.createElement("input"),R.type="file",R.multiple=!0,v(R,{display:"none"}),A=document.createElement("button"),A.type="button",A.setAttribute("aria-label","Attach file"),A.textContent="📎",v(A,{padding:"10px 12px",border:`1px solid ${N}`,borderRadius:"12px",backgroundColor:te,cursor:"pointer",fontSize:"14px"}),A.addEventListener("click",()=>R?.click()),R.addEventListener("change",()=>{o=[...o,...Array.from(R?.files??[])],Q()}));function Q(){r.replaceChildren(),o.forEach((l,c)=>{const w=h({display:"flex",alignItems:"center",gap:"4px",padding:"4px 8px",backgroundColor:"#f0f4ff",border:`1px solid ${N}`,borderRadius:"8px",fontSize:"12px"}),B=document.createElement("span");B.textContent=l.name;const k=document.createElement("button");k.type="button",k.setAttribute("aria-label",`Remove ${l.name}`),k.textContent="×",v(k,{border:"none",background:"transparent",cursor:"pointer",fontSize:"14px",lineHeight:"1"}),k.addEventListener("click",()=>{o=o.filter((j,V)=>V!==c),Q()}),w.append(B,k),r.appendChild(w)}),I()}const D=()=>{const l=a.value,c=o;return a.value="",C(),o=[],Q(),{content:l,files:c}},g=()=>{const{content:l,files:c}=D();(l.trim()||c.length>0)&&t.onSend(l.trim(),c.length>0?c:void 0)};return i.addEventListener("submit",l=>{l.preventDefault(),g()}),a.addEventListener("keydown",l=>{l.key==="Enter"&&!l.shiftKey&&(l.preventDefault(),g())}),A&&b.appendChild(A),b.append(a,p),R&&i.appendChild(R),i.append(r,b),I(),{inputRow:i,getValueAndClear:D,setDisabled:l=>{a.disabled=l,f=l,I()},focus:()=>a.focus()}}var on={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function ae(t){return t.replace(/[&<>"']/g,o=>on[o])}function vt(t){const o=t.trim();return/^(https?:|mailto:|tel:|#|\/|\.\/|\.\.\/)/i.test(o)||!/^[a-z][a-z0-9+.-]*:/i.test(o)?o:null}var St='"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace',Re="";function ne(t){const o=[],i=b=>(o.push(b),`${Re}${o.length-1}${Re}`);let r=t;return r=r.replace(/`([^`]+)`/g,(b,a)=>i(`<code style="background:#f0f2f5;padding:2px 5px;border-radius:4px;font-size:13px;font-family:${St}">${ae(a)}</code>`)),r=r.replace(/!\[([^\]]*)\]\(([^)\s]+)\)/g,(b,a,C)=>{const m=vt(C);return m?i(`<img alt="${ae(a)}" src="${ae(m)}" style="max-width:100%;border-radius:8px;margin:4px 0" />`):b}),r=r.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(b,a,C)=>{const m=vt(C);return m?i(`<a href="${ae(m)}" target="_blank" rel="noopener noreferrer" style="color:#1b5fc4;text-decoration:underline">${ne(a)}</a>`):b}),r=ae(r),r=r.replace(/\*\*([^*]+?)\*\*/g,"<strong>$1</strong>").replace(/__([^_]+?)__/g,"<strong>$1</strong>").replace(/~~([^~]+?)~~/g,"<del>$1</del>").replace(/(^|[^*])\*(?!\s)([^*]+?)\*/g,"$1<em>$2</em>").replace(/(^|[^\w_])_(?!\s)([^_]+?)_/g,"$1<em>$2</em>"),r=r.replace(new RegExp(`${Re}(\\d+)${Re}`,"g"),(b,a)=>o[Number(a)]),r}function O(t,o,i){const r=document.createElement(t);return Object.assign(r.style,o),i!==void 0&&(r.innerHTML=i),r}var Rt=/^ {0,3}([-*_])( *\1){2,} *$/,kt=/^ {0,3}(#{1,6})\s+(.*?)\s*#*\s*$/,It=/^ {0,3}(```+|~~~+)/,Ae=/^ {0,3}>\s?/,le=/^(\s*)([-*+]|\d+[.)])\s+(.*)$/,rn=["20px","18px","16px","15px","14px","13px"],He=t=>t.match(/^\s*/)?.[0].length??0;function an(t){return t.trim()===""||Rt.test(t)||kt.test(t)||It.test(t)||Ae.test(t)||le.test(t)}function At(t){const o=t[0].match(le),i=o[1].length,r=/\d/.test(o[2]),b=O(r?"ol":"ul",{margin:"0 0 8px 0",paddingLeft:"20px",listStyleType:r?"decimal":"disc",listStylePosition:"outside"});let a=0;for(;a<t.length;){const C=t[a].match(le),m=[];for(a++;a<t.length&&He(t[a])>i;)m.push(t[a]),a++;const x=O("li",{display:"list-item",margin:"2px 0",lineHeight:"1.6"}),p=C[3].match(/^\[([ xX])\]\s+(.*)$/);p?(x.style.listStyleType="none",x.style.marginLeft="-20px",x.innerHTML=`<span style="margin-right:6px">${p[1].toLowerCase()==="x"?"☑":"☐"}</span>${ne(p[2])}`):x.innerHTML=ne(C[3]),m.filter(f=>le.test(f)).length>0&&x.appendChild(At(m.filter(f=>f.trim()!==""))),b.appendChild(x)}return b}function sn(t){const o=m=>m.replace(/^\s*\|?/,"").replace(/\|?\s*$/,"").split("|").map(x=>x.trim()),i=O("div",{overflowX:"auto",margin:"0 0 8px 0"}),r=O("table",{borderCollapse:"collapse",width:"100%",fontSize:"13px"}),b=document.createElement("thead"),a=document.createElement("tr");for(const m of o(t[0]))a.appendChild(O("th",{border:"1px solid #dee3e8",padding:"6px 10px",textAlign:"left",backgroundColor:"#f5f7fa",fontWeight:"600"},ne(m)));b.appendChild(a),r.appendChild(b);const C=document.createElement("tbody");for(const m of t.slice(2)){const x=document.createElement("tr");for(const p of o(m))x.appendChild(O("td",{border:"1px solid #dee3e8",padding:"6px 10px"},ne(p)));C.appendChild(x)}return r.appendChild(C),i.appendChild(r),i}var ln=t=>!!t&&/^\s*\|?\s*:?-{1,}:?\s*(\|\s*:?-{1,}:?\s*)*\|?\s*$/.test(t);function Ne(t){const o=document.createDocumentFragment(),i=t.replace(/\r\n?/g,`
2
2
  `).split(`
3
- `);let r=0;for(;r<i.length;){const a=i[r];if(a.trim()===""){r++;continue}const C=a.match(Ct);if(C){const p=C[1][0],f=[];for(r++;r<i.length&&!new RegExp(`^ {0,3}${p==="`"?"`{3,}":"~{3,}"}\\s*$`).test(i[r]);)f.push(i[r]),r++;r++;const A=B("pre",{margin:"0 0 8px 0"});A.appendChild(B("code",{display:"block",background:"#f5f5f5",padding:"8px 12px",borderRadius:"6px",fontSize:"13px",overflowX:"auto",fontFamily:vt,whiteSpace:"pre"},ae(f.join(`
4
- `)))),o.appendChild(A);continue}if(yt.test(a)){o.appendChild(B("hr",{border:"none",borderTop:"1px solid #dee3e8",margin:"12px 0"})),r++;continue}const m=a.match(wt);if(m){const p=m[1].length;o.appendChild(B(`h${p}`,{margin:"16px 0 8px 0",fontSize:Jt[p-1],fontWeight:"600",lineHeight:"1.3"},te(m[2]))),r++;continue}if(Ie.test(a)){const p=[];for(;r<i.length&&Ie.test(i[r]);)p.push(i[r].replace(Ie,"")),r++;const f=B("blockquote",{borderLeft:"4px solid #dee3e8",paddingLeft:"12px",margin:"0 0 8px 0",fontStyle:"italic",color:"#6b6d6f"});f.appendChild(ke(p.join(`
5
- `))),o.appendChild(f);continue}if(a.includes("|")&&nn(i[r+1])){const p=[a,i[r+1]];for(r+=2;r<i.length&&i[r].includes("|")&&i[r].trim();)p.push(i[r]),r++;o.appendChild(tn(p));continue}if(le.test(a)){const p=[],f=Fe(a);for(;r<i.length&&i[r].trim()!=="";)if(le.test(i[r])||Fe(i[r])>f)p.push(i[r]),r++;else break;o.appendChild(Et(p));continue}const x=[a];for(r++;r<i.length&&!en(i[r]);)x.push(i[r]),r++;o.appendChild(B("p",{margin:"0 0 8px 0",lineHeight:"1.6"},x.map(p=>te(p)).join("<br>")))}const b=o.lastElementChild;return b&&(b.style.marginBottom="0"),o}function on(n,o){const{isLast:i,isLastOfBlock:r,bubbleStyle:b,showAgentName:a,agentBubble:C,followUpEnabled:m,followUpHandler:x,isMobile:p}=o,f=n.role==="user",A=b==="imessage",R=h({display:"flex",flexDirection:"column",alignItems:f?"flex-end":"flex-start",marginBottom:A&&!r?"2px":"16px"});if(R.className=`ago-message ago-message--${n.role}`,!f&&a&&n.agent){const g=h({fontSize:"13px",fontWeight:"500",color:J,marginBottom:"6px",padding:"0 4px"});g.className="ago-message__agent",g.textContent=n.agent.displayName||n.agent.name,R.appendChild(g)}if(!f&&n.sources&&n.sources.length>0){const g=h({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"6px",marginBottom:"10px",width:"100%",maxWidth:"85%"});g.className="ago-message__sources",n.sources.forEach((s,c)=>{const w=s.url?document.createElement("a"):document.createElement("div");s.url&&w instanceof HTMLAnchorElement&&(w.href=s.url,w.target="_blank",w.rel="noopener noreferrer"),v(w,{display:"flex",alignItems:"center",gap:"8px",padding:"8px 10px",border:`1px solid ${L}`,borderRadius:"8px",backgroundColor:ee,textDecoration:"none",color:J,fontSize:"12px",overflow:"hidden"});const $=h({flexShrink:"0",width:"18px",height:"18px",borderRadius:"3px",border:`1px solid ${De}`,color:De,fontSize:"11px",fontWeight:"500",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f0f4ff"});$.textContent=String(c+1);const I=h({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});I.textContent=s.title,I.title=s.title,w.append($,I),g.appendChild(w)}),R.appendChild(g)}if(n.attachments&&n.attachments.length>0){const g=h({display:"flex",flexWrap:"wrap",gap:"6px",marginBottom:"6px",justifyContent:f?"flex-end":"flex-start",maxWidth:"75%"});g.className="ago-message__attachments";for(const s of n.attachments){const c=se.safeAttachmentUrl(s.url);if(se.canInlineImage(s)&&c){const M=document.createElement("a");M.href=c,M.target="_blank",M.rel="noopener noreferrer",v(M,{display:"inline-block",textDecoration:"none"});const q=document.createElement("img");q.src=c,q.alt=s.name,q.loading="lazy",v(q,{maxWidth:"180px",maxHeight:"160px",objectFit:"cover",borderRadius:"10px",border:`1px solid ${L}`,display:"block"}),M.appendChild(q),g.appendChild(M);continue}const w=c?document.createElement("a"):document.createElement("div");c&&w instanceof HTMLAnchorElement&&(w.href=c,w.target="_blank",w.rel="noopener noreferrer"),v(w,{display:"inline-flex",alignItems:"center",gap:"8px",padding:"8px 12px",borderRadius:"10px",border:`1px solid ${L}`,backgroundColor:f?"rgba(255,255,255,0.12)":ee,color:f?_e:J,fontSize:"13px",textDecoration:"none",maxWidth:"220px"});const $=document.createElement("span");$.textContent="📄",$.setAttribute("aria-hidden","true"),v($,{fontSize:"16px",lineHeight:"1",flexShrink:"0"});const I=h({display:"flex",flexDirection:"column",minWidth:"0"}),j=h({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"160px"});j.textContent=s.name,j.title=s.name,I.appendChild(j);const V=se.formatFileSize(s.fileSize);if(V){const M=h({fontSize:"11px",color:bt});M.textContent=V,I.appendChild(M)}w.append($,I),g.appendChild(w)}R.appendChild(g)}const _=f||C||A,Y=!!n.content||n.status==="IN_PROGRESS"||n.status==="WAITING_CLIENT",D=h({maxWidth:_?A||f?p?"88%":"75%":p?"92%":"85%":"100%",padding:_?"10px 14px":"2px 8px",borderRadius:A?Kt:_?ze:"0",backgroundColor:f?Ae:_?ut:"transparent",color:f?_e:J,overflowWrap:"break-word",textWrap:"pretty",fontSize:"16px",lineHeight:"1.6"});if(D.className="ago-message__content",A&&r){D.style.position="relative";const g=h({position:"absolute",zIndex:"0",bottom:"-2px",width:"20px",height:"20px",background:f?Ae:ut});g.className="ago-message__tail";const s=h({position:"absolute",zIndex:"1",bottom:"-2px",width:"10px",height:"20px",background:xt});s.className="ago-message__tail-mask",f?(g.style.right="-8px",g.style.borderBottomLeftRadius="16px 14px",s.style.right="-10px",s.style.borderBottomLeftRadius="10px"):(g.style.left="-7px",g.style.borderBottomRightRadius="16px 14px",s.style.left="-10px",s.style.borderBottomRightRadius="10px"),D.append(g,s)}if(n.content?D.appendChild(ke(n.content)):(n.status==="IN_PROGRESS"||n.status==="WAITING_CLIENT")&&D.appendChild(an()),Y&&R.appendChild(D),i&&n.followUpReplies&&n.followUpReplies.length>0){const g=h({display:"flex",flexWrap:"wrap",gap:"8px",marginTop:"10px"});g.className="ago-message__followups";for(const s of n.followUpReplies){const c=document.createElement("button");c.type="button",c.className="ago-message__followup-btn",c.textContent=s,c.disabled=!m,v(c,{minHeight:"36px",padding:"6px 14px",fontSize:"14px",borderRadius:ze,border:`1px solid ${L}`,backgroundColor:ee,color:J,cursor:m?"pointer":"default",transition:"border-color 0.15s"}),x&&c.addEventListener("click",()=>x(s)),c.addEventListener("mouseenter",()=>{c.style.borderColor=De}),c.addEventListener("mouseleave",()=>{c.style.borderColor=L}),g.appendChild(c)}R.appendChild(g)}return R}function rn(n){const o=h({display:"flex",alignItems:"center",gap:"8px",padding:"10px 14px",backgroundColor:"#f0fdf4",color:"#15803d",borderRadius:ze,marginTop:"8px",fontSize:"13px",border:"1px solid #bbf7d0"});o.className="ago-form-notice",o.setAttribute("role","status");const i=document.createElement("span");i.textContent="✓",i.setAttribute("aria-hidden","true"),v(i,{fontWeight:"700"});const r=document.createElement("span");return r.textContent=n,o.append(i,r),o}function an(){const n=h({display:"flex",gap:"4px",padding:"4px 0"});for(let o=0;o<3;o++){const i=h({width:"6px",height:"6px",borderRadius:"50%",backgroundColor:"#b5bfc8",animation:"ago-pulse 1.2s ease-in-out infinite",animationDelay:`${o*.2}s`});n.appendChild(i)}return n}function sn(){const n="http://www.w3.org/2000/svg",o=document.createElementNS(n,"svg");o.setAttribute("width","26"),o.setAttribute("height","26"),o.setAttribute("viewBox","0 0 24 24"),o.setAttribute("fill","none");const i=document.createElementNS(n,"path");return i.setAttribute("d","M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.5 8.5 0 0 1-3.8-.9L3 21l1.9-5.7a8.5 8.5 0 0 1-.9-3.8 8.38 8.38 0 0 1 8.5-8.5 8.38 8.38 0 0 1 8.5 8.5z"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","2"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-linejoin","round"),o.appendChild(i),o}var ht="Form submitted.";function ln(n){if(typeof n=="string")return n||null;if(!n||typeof n!="object")return null;const o=n;if(typeof o.message=="string"&&o.message)return o.message;const i=o.result;if(typeof i=="string"&&i)return i;if(i&&typeof i=="object"){const r=i.message;if(typeof r=="string"&&r)return r}return null}var dn=0;function cn(n){const o=typeof n=="string"?document.querySelector(n):n;if(!o)throw new Error(`mountChatWidget: target "${String(n)}" not found.`);return o}function pn(n,o){const{title:i="Chat",welcomeMessage:r="Hello! How can I help you today?",placeholder:b="Type a message...",allowFiles:a=!1,height:C=500,placement:m="inline",width:x=400,defaultOpen:p=!1,logoUrl:f,showAgentName:A=!1,agentBubble:R=!1,bubbleStyle:_="default",showHeader:Y=!0,theme:D,loadThreads:g=!1,forms:s,formSubmittedMessage:c=ht,onFollowUpClick:w,onMessageSent:$,onMessageReceived:I,onFormSubmitted:j,onFormError:V,onOpen:M,onClose:q}=o,ne=typeof r=="string"?{message:r,mode:"static"}:r,He=ne.message,Pe=ne.mode??"static",St="speed"in ne&&ne.speed||45,We="followUpReplies"in ne&&ne.followUpReplies||void 0;if(!o.client&&!o.config?.baseUrl)throw new se.AgoError("mountChatWidget requires either `client` or `config` (with a baseUrl).","config_missing_base_url");const E=o.client??new se.AgoClient(o.config),Ue=cn(n),z=m==="left"||m==="right",Rt=z&&(o.launcher??!0);let oe=z?p:!0;const It=o.mobile?.breakpoint??768,Ne=o.mobile?.trigger??"tap",Ge=typeof window<"u"&&!!window.matchMedia,O=Ge?window.matchMedia(`(max-width: ${It}px)`):void 0,At=Ge?window.matchMedia("(prefers-reduced-motion: reduce)"):void 0,re=!z&&!!O,Le=o.persistConversation,ge=Le?Gt.createConversationSession(Le===!0?{}:Le):void 0;let P=o.conversationId??ge?.getLastActiveThread()??void 0,u=[],Z=!1,de=null,K;const je=[];function _t(e){if(typeof c=="function"){const l=c(e);if(typeof l=="string"&&l)return l}const t=ln(e);return t||(typeof c=="string"?c:ht)}const he=[],d=h({display:"flex",flexDirection:"column",height:z?"100%":typeof C=="number"?`${C}px`:C,border:`1px solid ${L}`,borderRadius:qt,overflow:"hidden",backgroundColor:ee,fontFamily:Re,textAlign:"left",boxShadow:"rgba(15, 15, 15, 0.08) 0px 2px 16px 0px"});d.className="ago-chat-widget",Xt(d,D);let F;if(Y){if(F=h({padding:"14px 16px",borderBottom:`1px solid ${L}`,backgroundColor:Vt,color:ft,display:"flex",alignItems:"center",gap:"10px"}),F.className="ago-chat-widget__header",f){const t=document.createElement("img");t.src=f,t.alt="Logo",v(t,{height:"24px",width:"auto"}),F.appendChild(t)}const e=document.createElement("h3");if(e.textContent=i,v(e,{margin:"0",fontSize:"15px",fontWeight:"600"}),F.appendChild(e),z){const t=document.createElement("button");t.type="button",t.className="ago-chat-widget__close",t.setAttribute("aria-label","Close"),t.textContent="×",v(t,{marginLeft:"auto",background:"transparent",border:"none",color:ft,fontSize:"22px",lineHeight:"1",cursor:"pointer",padding:"0 2px"}),t.addEventListener("click",()=>Be()),F.appendChild(t)}}const k=h({flex:"1",overflow:"auto",padding:"16px",backgroundColor:xt});k.className="ago-chat-widget__messages",k.setAttribute("role","log"),k.setAttribute("aria-live","polite"),k.setAttribute("aria-relevant","additions text"),k.setAttribute("aria-atomic","false");const{inputRow:Te,setDisabled:kt,focus:xe}=Yt({placeholder:b,allowFiles:a,onSend:(e,t)=>{we(e,t)}});Qt(),d.append(...F?[F]:[],k,Te);let be=d,W,T;const ve=m==="left"?"left":"right";if(z&&(W=h({position:"fixed",top:"0",bottom:"0",[ve]:"0",width:typeof x=="number"?`${x}px`:x,maxWidth:"100vw",display:"flex",zIndex:"2147483000",transition:"transform 0.3s ease",boxShadow:"rgba(15, 15, 15, 0.18) 0px 0px 24px 0px"}),W.className="ago-chat-widget-panel",v(d,{height:"100%",width:"100%",borderRadius:"0",border:"none",boxShadow:"none",[ve==="left"?"borderRight":"borderLeft"]:`1px solid ${L}`}),W.appendChild(d),be=W),Rt){if(T=document.createElement("button"),T.type="button",T.className="ago-chat-widget-launcher",T.setAttribute("aria-label",`Open ${i}`),v(T,{position:"fixed",bottom:"20px",[ve]:"20px",width:"56px",height:"56px",borderRadius:"50%",border:"none",backgroundColor:Ae,color:_e,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",zIndex:"2147483000",boxShadow:"rgba(15, 15, 15, 0.2) 0px 4px 14px 0px",fontFamily:Re}),f){const e=document.createElement("img");e.src=f,e.alt="",v(e,{width:"26px",height:"26px",objectFit:"contain"}),T.appendChild(e)}else T.appendChild(sn());T.addEventListener("click",()=>Oe())}const ce=re?`ago-vt-${++dn}`:"",Ve=52;let U=!1,pe=0,ie=0,H,fe,X;const ye={height:d.style.height,border:d.style.border,borderRadius:d.style.borderRadius,boxShadow:d.style.boxShadow};Ue.appendChild(be),T&&Ue.appendChild(T),Ce(),re&&(H=Pt(),d.insertBefore(H,d.firstChild),fe=document.createElement("style"),fe.id=ce,fe.textContent=`::view-transition-group(${ce}),::view-transition-group(${ce}-bar){animation-duration:0.3s;animation-timing-function:cubic-bezier(0.4,0,0.2,1)}`,document.head.appendChild(fe),(Ne==="focus"||Ne==="tap")&&(d.addEventListener("pointerdown",e=>{if(U||!O?.matches)return;const t=Te.contains(e.target);if(Ne==="tap"){if((e.target instanceof Element?e.target:null)?.closest("button,a[href],[role='button']"))return}else if(!t)return;t&&e.preventDefault(),ue()},!0),d.addEventListener("focusin",e=>{O?.matches&&Te.contains(e.target)&&ue()})),document.addEventListener("keydown",nt)),O&&O.addEventListener("change",ot);const Nt=w!==!1,Lt=w===!1?void 0:w??(e=>{re&&O?.matches&&!U?ue().then(()=>we(e)):we(e)});function N(){if(k.replaceChildren(),u.length===0){if(Pe==="static"){const t=h({textAlign:"center",color:bt,padding:"24px 16px",fontSize:"16px",lineHeight:"1.5"});t.appendChild(ke(He)),k.appendChild(t)}}else u.forEach((t,l)=>{const S=l===u.length-1||u[l+1].role!==t.role;k.appendChild(on(t,{isLast:l===u.length-1,isLastOfBlock:S,bubbleStyle:_,showAgentName:A,agentBubble:R,followUpEnabled:Nt,followUpHandler:Lt,isMobile:!!O?.matches}))});for(const t of je)k.appendChild(rn(t));if(de){const t=h({padding:"10px 14px",backgroundColor:"#fef2f2",color:"#dc2626",borderRadius:"12px",marginTop:"8px",fontSize:"13px",border:"1px solid #fecaca"});t.setAttribute("role","alert"),t.textContent=de,k.appendChild(t)}k.scrollTop=k.scrollHeight;const e=u[u.length-1];kt(Z&&e?.role==="assistant"&&(e.status==="IN_PROGRESS"||e.status==="WAITING_CLIENT"))}function Tt(){for(let e=u.length-1;e>=0;e--){const t=u[e];if(t.role==="assistant"&&(t.status==="IN_PROGRESS"||t.status==="WAITING_CLIENT"))return t}}const qe=e=>{P||(P=e.conversationId)},Ke=e=>{const t=Tt();t&&(t.content+=e.content,N())},Xe=e=>{const t=u.findIndex(l=>l.id===e.id||l.role==="assistant"&&l.status==="IN_PROGRESS");t>=0?u[t]=e:u.push(e),N(),xe()},Qe=e=>{const t=u.findIndex(l=>l.id===e.id||l.role==="assistant"&&l.status==="IN_PROGRESS");t>=0?u[t]=e:u.push(e),Z=!1,N(),e.status==="DONE"&&I?.({id:e.id,content:e.content})},Ye=e=>{de=e.error,Z=!1,u=u.filter(t=>!t.id.startsWith("temp-")),N()};function $t(e){const t={id:`ago-intro-${Date.now()}`,conversationId:"",content:"",role:"assistant",status:"IN_PROGRESS",createdAt:new Date};u.push(t),N();const l=e.match(/\S+\s*/g)??[e];let S=0;K=setInterval(()=>{if(S>=l.length){clearInterval(K),K=void 0,t.status="DONE",We&&(t.followUpReplies=We),N();return}t.content+=l[S],S++,N()},St)}E.on("message:start",qe),E.on("message:chunk",Ke),E.on("message:answer-complete",Xe),E.on("message:complete",Qe),E.on("message:error",Ye);const Ze=e=>j?.(e),Je=e=>V?.(e);j&&E.on("form:submitted",Ze),V&&E.on("form:error",Je);const $e=[];let et=!1;const tt=e=>{if(et)return;$e.push(e.install(E));let t=e.store.get().submitted;const l=e.store.subscribe(S=>{S.submitted&&!t&&(je.push(_t(S.submitResult)),N()),t=S.submitted});$e.push(l)};for(const e of s??[])e.schema!=null?tt(ct.createFormCollector(e)):ct.loadFormCollector(E,e).then(t=>tt(t)).catch(()=>{});async function we(e,t){const l=e.trim();if(!l&&!t?.length||Z)return;if($?.(l),Z=!0,de=null,K){clearInterval(K),K=void 0;const y=u.find(G=>G.id.startsWith("ago-intro-"));y&&!y.content?u=u.filter(G=>G!==y):y&&(y.status="DONE")}const S=Date.now();u.push({id:`temp-user-${S}`,conversationId:P||"",content:l,role:"user",status:"DONE",attachments:t&&t.length>0?se.attachmentsFromFiles(t):void 0,createdAt:new Date}),u.push({id:`temp-assistant-${S}`,conversationId:P||"",content:"",role:"assistant",status:"IN_PROGRESS",createdAt:new Date}),N();try{const y=await E.sendMessage(l,{conversationId:P,files:t});y.conversationId&&(P||(P=y.conversationId),ge?.setActiveThread(y.conversationId,y.createdAt));const G=u.find(Q=>Q.id===`temp-user-${S}`);if(G&&(G.id=`user-${S}`,G.conversationId=y.conversationId),!u.some(Q=>Q.id===y.id)){const Q=u.findIndex(Ut=>Ut.id===`temp-assistant-${S}`);Q>=0?u[Q]=y:u.push(y)}u=u.filter(Q=>!Q.id.startsWith("temp-")),y.status!=="WAITING_CLIENT"&&(Z=!1),N(),g&&Me()}catch(y){de=y instanceof Error?y.message:"Failed to send message",Z=!1,u=u.filter(G=>!G.id.startsWith("temp-")),N()}}async function Me(){try{const e=await E.getConversations();he.splice(0,he.length,...e)}catch{}return he}async function Mt(e){try{const t=(await E.getConversation(e))?.messages??[];t.length>0&&u.length===0&&(u=t,N())}catch{u.length===0&&(ge?.clear(),P=void 0)}}return N(),re&&O?.matches||xe(),P?Mt(P):Pe==="streaming"&&$t(He),g&&Me(),{client:E,element:be,sendMessage:we,...z||re?{open:Bt,close:Dt,toggle:zt}:{},session:ge,threads:he,refreshThreads:Me,destroy(){K&&clearInterval(K),E.off("message:start",qe),E.off("message:chunk",Ke),E.off("message:answer-complete",Xe),E.off("message:complete",Qe),E.off("message:error",Ye),j&&E.off("form:submitted",Ze),V&&E.off("form:error",Je),et=!0,$e.forEach(e=>e()),be.remove(),T?.remove(),H?.remove(),fe?.remove(),X?.remove(),O?.removeEventListener("change",ot),re&&(document.removeEventListener("keydown",nt),at(),document.documentElement.style.removeProperty("overflow")),o.client||E.destroy()}};function Ce(){if(!W)return;{const t=ve==="left"?"border-right":"border-left";O?.matches?(W.style.width="100%",d.style.borderRadius="0",d.style.removeProperty(t)):(W.style.width=typeof x=="number"?`${x}px`:x,d.style.setProperty(t,`1px solid ${L}`))}const e=m==="left"?"translateX(-100%)":"translateX(100%)";W.style.transform=oe?"translateX(0)":e,W.setAttribute("aria-hidden",oe?"false":"true"),T&&(T.style.display=oe?"none":"flex")}function Oe(){oe=!0,Ce(),xe(),M?.()}function Be(){oe=!1,Ce(),q?.()}function Ot(){oe?Be():Oe()}function Bt(){z?Oe():ue()}function Dt(){z?Be():me()}function zt(){z?Ot():U?me():ue()}function Ft(){return Array.from(d.querySelectorAll('a[href],button:not([disabled]),textarea:not([disabled]),input:not([disabled]),select:not([disabled]),[tabindex]:not([tabindex="-1"])')).filter(e=>e.getClientRects().length>0)}function nt(e){if(!U)return;if(e.key==="Escape"){me();return}if(e.key!=="Tab")return;const t=Ft();if(t.length===0){e.preventDefault();return}const l=t[0],S=t[t.length-1],y=document.activeElement;e.shiftKey&&(y===l||!d.contains(y))?(e.preventDefault(),S.focus()):!e.shiftKey&&(y===S||!d.contains(y))&&(e.preventDefault(),l.focus())}function ot(e){z?Ce():!e.matches&&U&&me(),N()}function rt(){return window.visualViewport?.height??window.innerHeight}function it(){const e=window.visualViewport,t=e?.offsetTop??0,l=e?.height??pe,S=Math.min(0,t+l-pe);d.style.top=`${S}px`,H&&(H.style.top=`${t}px`)}function Ee(){ie||(ie=requestAnimationFrame(()=>{ie=0,it()}))}function Ht(){window.visualViewport?.addEventListener("resize",Ee),window.visualViewport?.addEventListener("scroll",Ee)}function at(){window.visualViewport?.removeEventListener("resize",Ee),window.visualViewport?.removeEventListener("scroll",Ee),ie&&(cancelAnimationFrame(ie),ie=0)}function st(){k.scrollTop=k.scrollHeight}function Pt(){const e=h({position:"fixed",top:"0",left:"0",right:"0",height:`calc(${Ve}px + env(safe-area-inset-top))`,display:"none",alignItems:"center",justifyContent:"space-between",padding:"env(safe-area-inset-top) 14px 0",backgroundColor:ee,borderBottom:`1px solid ${L}`,zIndex:"2147483001",fontFamily:Re});if(e.className="ago-chat-widget-mobile-bar",f){const l=document.createElement("img");l.src=f,l.alt="",v(l,{height:"28px",width:"auto"}),e.appendChild(l)}else if(i){const l=document.createElement("span");l.textContent=i,v(l,{fontSize:"15px",fontWeight:"600",color:J,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),e.appendChild(l)}else e.appendChild(h({}));const t=document.createElement("button");return t.type="button",t.setAttribute("aria-label","Close"),t.textContent="×",v(t,{border:"none",background:"transparent",fontSize:"26px",lineHeight:"1",color:J,cursor:"pointer",padding:"4px 8px"}),t.addEventListener("click",()=>{me()}),e.appendChild(t),e}function Wt(){return typeof document.startViewTransition=="function"&&!At?.matches&&!!O?.matches}function lt(e){const t=document;if(Wt()&&t.startViewTransition){d.style.setProperty("view-transition-name",ce),H?.style.setProperty("view-transition-name",`${ce}-bar`);const l=()=>{d.style.removeProperty("view-transition-name"),H?.style.removeProperty("view-transition-name")};return t.startViewTransition(e).finished.then(l,l)}return e(),Promise.resolve()}function dt(e){if(e)X&&d.parentElement?.insertBefore(X,d),v(d,{position:"fixed",top:"0",left:"0",right:"0",bottom:"0",height:"var(--ago-vh, 100dvh)",zIndex:"2147483000",border:"none",borderRadius:"0",boxShadow:"none",paddingTop:`calc(${Ve}px + env(safe-area-inset-top))`,paddingBottom:"env(safe-area-inset-bottom)"}),d.setAttribute("role","dialog"),d.setAttribute("aria-modal","true"),d.setAttribute("aria-label",i),document.documentElement.style.overflow="hidden",F&&(F.style.display="none"),H&&(H.style.display="flex");else{X?.remove(),X=void 0;for(const t of["position","top","left","right","bottom","z-index","padding-top","padding-bottom"])d.style.removeProperty(t);d.style.height=ye.height,d.style.border=ye.border,d.style.borderRadius=ye.borderRadius,d.style.boxShadow=ye.boxShadow,d.removeAttribute("role"),d.removeAttribute("aria-modal"),d.removeAttribute("aria-label"),document.documentElement.style.removeProperty("overflow"),F&&(F.style.display="flex"),H&&(H.style.display="none")}}function ue(){if(U||!O?.matches)return Promise.resolve();const e=d.getBoundingClientRect();if(e.height>=rt()*.8)return Promise.resolve();U=!0,X=h({width:`${e.width}px`,height:`${e.height}px`}),X.className="ago-chat-widget-spacer",X.setAttribute("aria-hidden","true"),pe=rt(),d.style.setProperty("--ago-vh",`${pe}px`),it(),Ht();const t=lt(()=>dt(!0));return t.then(()=>{st(),xe()}),st(),M?.(),t}function me(){if(!U)return Promise.resolve();U=!1,at(),d.querySelector("textarea")?.blur();const e=lt(()=>dt(!1));return e.then(()=>d.style.removeProperty("--ago-vh")),pe=0,q?.(),e}}exports.mountChatWidget=pn;exports.renderMarkdown=ke;
3
+ `);let r=0;for(;r<i.length;){const a=i[r];if(a.trim()===""){r++;continue}const C=a.match(It);if(C){const p=C[1][0],f=[];for(r++;r<i.length&&!new RegExp(`^ {0,3}${p==="`"?"`{3,}":"~{3,}"}\\s*$`).test(i[r]);)f.push(i[r]),r++;r++;const I=O("pre",{margin:"0 0 8px 0"});I.appendChild(O("code",{display:"block",background:"#f5f5f5",padding:"8px 12px",borderRadius:"6px",fontSize:"13px",overflowX:"auto",fontFamily:St,whiteSpace:"pre"},ae(f.join(`
4
+ `)))),o.appendChild(I);continue}if(Rt.test(a)){o.appendChild(O("hr",{border:"none",borderTop:"1px solid #dee3e8",margin:"12px 0"})),r++;continue}const m=a.match(kt);if(m){const p=m[1].length;o.appendChild(O(`h${p}`,{margin:"16px 0 8px 0",fontSize:rn[p-1],fontWeight:"600",lineHeight:"1.3"},ne(m[2]))),r++;continue}if(Ae.test(a)){const p=[];for(;r<i.length&&Ae.test(i[r]);)p.push(i[r].replace(Ae,"")),r++;const f=O("blockquote",{borderLeft:"4px solid #dee3e8",paddingLeft:"12px",margin:"0 0 8px 0",fontStyle:"italic",color:"#6b6d6f"});f.appendChild(Ne(p.join(`
5
+ `))),o.appendChild(f);continue}if(a.includes("|")&&ln(i[r+1])){const p=[a,i[r+1]];for(r+=2;r<i.length&&i[r].includes("|")&&i[r].trim();)p.push(i[r]),r++;o.appendChild(sn(p));continue}if(le.test(a)){const p=[],f=He(a);for(;r<i.length&&i[r].trim()!=="";)if(le.test(i[r])||He(i[r])>f)p.push(i[r]),r++;else break;o.appendChild(At(p));continue}const x=[a];for(r++;r<i.length&&!an(i[r]);)x.push(i[r]),r++;o.appendChild(O("p",{margin:"0 0 8px 0",lineHeight:"1.6"},x.map(p=>ne(p)).join("<br>")))}const b=o.lastElementChild;return b&&(b.style.marginBottom="0"),o}function dn(t,o){const{isLast:i,isLastOfBlock:r,bubbleStyle:b,showAgentName:a,agentBubble:C,followUpEnabled:m,followUpHandler:x,isMobile:p}=o,f=t.role==="user",I=b==="imessage",R=h({display:"flex",flexDirection:"column",alignItems:f?"flex-end":"flex-start",marginBottom:I&&!r?"2px":"16px"});if(R.className=`ago-message ago-message--${t.role}`,!f&&a&&t.agent){const g=h({fontSize:"13px",fontWeight:"500",color:ee,marginBottom:"6px",padding:"0 4px"});g.className="ago-message__agent",g.textContent=t.agent.displayName||t.agent.name,R.appendChild(g)}if(!f&&t.sources&&t.sources.length>0){const g=h({display:"grid",gridTemplateColumns:"1fr 1fr",gap:"6px",marginBottom:"10px",width:"100%",maxWidth:"85%"});g.className="ago-message__sources",t.sources.forEach((l,c)=>{const w=l.url?document.createElement("a"):document.createElement("div");l.url&&w instanceof HTMLAnchorElement&&(w.href=l.url,w.target="_blank",w.rel="noopener noreferrer"),v(w,{display:"flex",alignItems:"center",gap:"8px",padding:"8px 10px",border:`1px solid ${N}`,borderRadius:"8px",backgroundColor:te,textDecoration:"none",color:ee,fontSize:"12px",overflow:"hidden"});const B=h({flexShrink:"0",width:"18px",height:"18px",borderRadius:"3px",border:`1px solid ${Fe}`,color:Fe,fontSize:"11px",fontWeight:"500",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#f0f4ff"});B.textContent=String(c+1);const k=h({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});k.textContent=l.title,k.title=l.title,w.append(B,k),g.appendChild(w)}),R.appendChild(g)}if(t.attachments&&t.attachments.length>0){const g=h({display:"flex",flexWrap:"wrap",gap:"6px",marginBottom:"6px",justifyContent:f?"flex-end":"flex-start",maxWidth:"75%"});g.className="ago-message__attachments";for(const l of t.attachments){const c=se.safeAttachmentUrl(l.url);if(se.canInlineImage(l)&&c){const M=document.createElement("a");M.href=c,M.target="_blank",M.rel="noopener noreferrer",v(M,{display:"inline-block",textDecoration:"none"});const q=document.createElement("img");q.src=c,q.alt=l.name,q.loading="lazy",v(q,{maxWidth:"180px",maxHeight:"160px",objectFit:"cover",borderRadius:"10px",border:`1px solid ${N}`,display:"block"}),M.appendChild(q),g.appendChild(M);continue}const w=c?document.createElement("a"):document.createElement("div");c&&w instanceof HTMLAnchorElement&&(w.href=c,w.target="_blank",w.rel="noopener noreferrer"),v(w,{display:"inline-flex",alignItems:"center",gap:"8px",padding:"8px 12px",borderRadius:"10px",border:`1px solid ${N}`,backgroundColor:f?"rgba(255,255,255,0.12)":te,color:f?Le:ee,fontSize:"13px",textDecoration:"none",maxWidth:"220px"});const B=document.createElement("span");B.textContent="📄",B.setAttribute("aria-hidden","true"),v(B,{fontSize:"16px",lineHeight:"1",flexShrink:"0"});const k=h({display:"flex",flexDirection:"column",minWidth:"0"}),j=h({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"160px"});j.textContent=l.name,j.title=l.name,k.appendChild(j);const V=se.formatFileSize(l.fileSize);if(V){const M=h({fontSize:"11px",color:Et});M.textContent=V,k.appendChild(M)}w.append(B,k),g.appendChild(w)}R.appendChild(g)}const A=f||C||I,Q=!!t.content||t.status==="IN_PROGRESS"||t.status==="WAITING_CLIENT",D=h({maxWidth:A?I||f?p?"88%":"75%":p?"92%":"85%":"100%",padding:A?"10px 14px":"2px 8px",borderRadius:I?Jt:A?Pe:"0",backgroundColor:f?_e:A?xt:"transparent",color:f?Le:ee,overflowWrap:"break-word",textWrap:"pretty",fontSize:"16px",lineHeight:"1.6"});if(D.className="ago-message__content",I&&r){D.style.position="relative";const g=h({position:"absolute",zIndex:"0",bottom:"-2px",width:"20px",height:"20px",background:f?_e:xt});g.className="ago-message__tail";const l=h({position:"absolute",zIndex:"1",bottom:"-2px",width:"10px",height:"20px",background:Ct});l.className="ago-message__tail-mask",f?(g.style.right="-8px",g.style.borderBottomLeftRadius="16px 14px",l.style.right="-10px",l.style.borderBottomLeftRadius="10px"):(g.style.left="-7px",g.style.borderBottomRightRadius="16px 14px",l.style.left="-10px",l.style.borderBottomRightRadius="10px"),D.append(g,l)}if(t.content?D.appendChild(Ne(t.content)):(t.status==="IN_PROGRESS"||t.status==="WAITING_CLIENT")&&D.appendChild(pn()),Q&&R.appendChild(D),i&&t.followUpReplies&&t.followUpReplies.length>0){const g=h({display:"flex",flexWrap:"wrap",gap:"8px",marginTop:"10px"});g.className="ago-message__followups";for(const l of t.followUpReplies){const c=document.createElement("button");c.type="button",c.className="ago-message__followup-btn",c.textContent=l,c.disabled=!m,v(c,{minHeight:"36px",padding:"6px 14px",fontSize:"14px",borderRadius:Pe,border:`1px solid ${N}`,backgroundColor:te,color:ee,cursor:m?"pointer":"default",transition:"border-color 0.15s"}),x&&c.addEventListener("click",()=>x(l)),c.addEventListener("mouseenter",()=>{c.style.borderColor=Fe}),c.addEventListener("mouseleave",()=>{c.style.borderColor=N}),g.appendChild(c)}R.appendChild(g)}return R}function cn(t){const o=h({display:"flex",alignItems:"center",gap:"8px",padding:"10px 14px",backgroundColor:"#f0fdf4",color:"#15803d",borderRadius:Pe,marginTop:"8px",fontSize:"13px",border:"1px solid #bbf7d0"});o.className="ago-form-notice",o.setAttribute("role","status");const i=document.createElement("span");i.textContent="✓",i.setAttribute("aria-hidden","true"),v(i,{fontWeight:"700"});const r=document.createElement("span");return r.textContent=t,o.append(i,r),o}function pn(){const t=h({display:"flex",gap:"4px",padding:"4px 0"});for(let o=0;o<3;o++){const i=h({width:"6px",height:"6px",borderRadius:"50%",backgroundColor:"#b5bfc8",animation:"ago-pulse 1.2s ease-in-out infinite",animationDelay:`${o*.2}s`});t.appendChild(i)}return t}function fn(){const t="http://www.w3.org/2000/svg",o=document.createElementNS(t,"svg");o.setAttribute("width","26"),o.setAttribute("height","26"),o.setAttribute("viewBox","0 0 24 24"),o.setAttribute("fill","none");const i=document.createElementNS(t,"path");return i.setAttribute("d","M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.5 8.5 0 0 1-3.8-.9L3 21l1.9-5.7a8.5 8.5 0 0 1-.9-3.8 8.38 8.38 0 0 1 8.5-8.5 8.38 8.38 0 0 1 8.5 8.5z"),i.setAttribute("stroke","currentColor"),i.setAttribute("stroke-width","2"),i.setAttribute("stroke-linecap","round"),i.setAttribute("stroke-linejoin","round"),o.appendChild(i),o}var yt="Form submitted.";function un(t){if(typeof t=="string")return t||null;if(!t||typeof t!="object")return null;const o=t;if(typeof o.message=="string"&&o.message)return o.message;const i=o.result;if(typeof i=="string"&&i)return i;if(i&&typeof i=="object"){const r=i.message;if(typeof r=="string"&&r)return r}return null}var mn=0,We=0,Ue=0;function wt(){if(We++>0)return;Ue=window.scrollY;const{style:t}=document.body;t.position="fixed",t.top=`-${Ue}px`,t.left="0",t.right="0",t.width="100%",document.documentElement.style.overflow="hidden"}function ke(){if(We===0||--We>0)return;const{style:t}=document.body;t.removeProperty("position"),t.removeProperty("top"),t.removeProperty("left"),t.removeProperty("right"),t.removeProperty("width"),document.documentElement.style.removeProperty("overflow"),window.scrollTo(0,Ue)}function gn(t){const o=typeof t=="string"?document.querySelector(t):t;if(!o)throw new Error(`mountChatWidget: target "${String(t)}" not found.`);return o}function hn(t,o){const{title:i="Chat",welcomeMessage:r="Hello! How can I help you today?",placeholder:b="Type a message...",allowFiles:a=!1,height:C=500,placement:m="inline",width:x=400,defaultOpen:p=!1,logoUrl:f,showAgentName:I=!1,agentBubble:R=!1,bubbleStyle:A="default",showHeader:Q=!0,theme:D,loadThreads:g=!1,forms:l,formSubmittedMessage:c=yt,onFollowUpClick:w,onMessageSent:B,onMessageReceived:k,onFormSubmitted:j,onFormError:V,onOpen:M,onClose:q}=o,oe=typeof r=="string"?{message:r,mode:"static"}:r,Ge=oe.message,je=oe.mode??"static",_t="speed"in oe&&oe.speed||45,Ve="followUpReplies"in oe&&oe.followUpReplies||void 0;if(!o.client&&!o.config?.baseUrl)throw new se.AgoError("mountChatWidget requires either `client` or `config` (with a baseUrl).","config_missing_base_url");const E=o.client??new se.AgoClient(o.config),qe=gn(t),z=m==="left"||m==="right",Lt=z&&(o.launcher??!0);let Z=z?p:!0,ge=!1;const Nt=o.mobile?.breakpoint??768,Te=o.mobile?.trigger??"tap",Ke=typeof window<"u"&&!!window.matchMedia,T=Ke?window.matchMedia(`(max-width: ${Nt}px)`):void 0,Tt=Ke?window.matchMedia("(prefers-reduced-motion: reduce)"):void 0,re=!z&&!!T,$e=o.persistConversation,he=$e?Xt.createConversationSession($e===!0?{}:$e):void 0;let H=o.conversationId??he?.getLastActiveThread()??void 0,u=[],J=!1,de=null,K;const Xe=[];function $t(e){if(typeof c=="function"){const s=c(e);if(typeof s=="string"&&s)return s}const n=un(e);return n||(typeof c=="string"?c:yt)}const xe=[],d=h({display:"flex",flexDirection:"column",height:z?"100%":typeof C=="number"?`${C}px`:C,border:`1px solid ${N}`,borderRadius:Zt,overflow:"hidden",backgroundColor:te,fontFamily:Ie,textAlign:"left",boxShadow:"rgba(15, 15, 15, 0.08) 0px 2px 16px 0px"});d.className="ago-chat-widget",en(d,D);let F;if(Q){if(F=h({padding:"14px 16px",borderBottom:`1px solid ${N}`,backgroundColor:Qt,color:ht,display:"flex",alignItems:"center",gap:"10px"}),F.className="ago-chat-widget__header",f){const n=document.createElement("img");n.src=f,n.alt="Logo",v(n,{height:"24px",width:"auto"}),F.appendChild(n)}const e=document.createElement("h3");if(e.textContent=i,v(e,{margin:"0",fontSize:"15px",fontWeight:"600"}),F.appendChild(e),z){const n=document.createElement("button");n.type="button",n.className="ago-chat-widget__close",n.setAttribute("aria-label","Close"),n.textContent="×",v(n,{marginLeft:"auto",background:"transparent",border:"none",color:ht,fontSize:"22px",lineHeight:"1",cursor:"pointer",padding:"0 2px"}),n.addEventListener("click",()=>ze()),F.appendChild(n)}}const _=h({flex:"1",overflow:"auto",overscrollBehavior:"contain",padding:"16px",backgroundColor:Ct});_.className="ago-chat-widget__messages",_.setAttribute("role","log"),_.setAttribute("aria-live","polite"),_.setAttribute("aria-relevant","additions text"),_.setAttribute("aria-atomic","false");const{inputRow:Be,setDisabled:Bt,focus:be}=nn({placeholder:b,allowFiles:a,onSend:(e,n)=>{Ce(e,n)}});tn(),d.append(...F?[F]:[],_,Be);let ve=d,U,$;const ye=m==="left"?"left":"right";if(z&&(U=h({position:"fixed",top:"0",bottom:"0",[ye]:"0",width:typeof x=="number"?`${x}px`:x,maxWidth:"100vw",display:"flex",zIndex:"2147483000",transition:"transform 0.3s ease",boxShadow:"rgba(15, 15, 15, 0.18) 0px 0px 24px 0px"}),U.className="ago-chat-widget-panel",v(d,{height:"100%",width:"100%",borderRadius:"0",border:"none",boxShadow:"none",[ye==="left"?"borderRight":"borderLeft"]:`1px solid ${N}`}),U.appendChild(d),ve=U),Lt){if($=document.createElement("button"),$.type="button",$.className="ago-chat-widget-launcher",$.setAttribute("aria-label",`Open ${i}`),v($,{position:"fixed",bottom:"20px",[ye]:"20px",width:"56px",height:"56px",borderRadius:"50%",border:"none",backgroundColor:_e,color:Le,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",zIndex:"2147483000",boxShadow:"rgba(15, 15, 15, 0.2) 0px 4px 14px 0px",fontFamily:Ie}),f){const e=document.createElement("img");e.src=f,e.alt="",v(e,{width:"26px",height:"26px",objectFit:"contain"}),$.appendChild(e)}else $.appendChild(fn());$.addEventListener("click",()=>De())}const ce=re?`ago-vt-${++mn}`:"",Ye=52;let W=!1,pe=0,ie=0,P,fe,X;const we={height:d.style.height,border:d.style.border,borderRadius:d.style.borderRadius,boxShadow:d.style.boxShadow};qe.appendChild(ve),$&&qe.appendChild($),Ee(),re&&(P=Vt(),d.insertBefore(P,d.firstChild),fe=document.createElement("style"),fe.id=ce,fe.textContent=`::view-transition-group(${ce}),::view-transition-group(${ce}-bar){animation-duration:0.3s;animation-timing-function:cubic-bezier(0.4,0,0.2,1)}`,document.head.appendChild(fe),(Te==="focus"||Te==="tap")&&(d.addEventListener("pointerdown",e=>{if(W||!T?.matches)return;const n=Be.contains(e.target);if(Te==="tap"){if((e.target instanceof Element?e.target:null)?.closest("button,a[href],[role='button']"))return}else if(!n)return;n&&e.preventDefault(),ue()},!0),d.addEventListener("focusin",e=>{T?.matches&&Be.contains(e.target)&&ue()})),document.addEventListener("keydown",at)),T&&T.addEventListener("change",st);const Mt=w!==!1,Ot=w===!1?void 0:w??(e=>{re&&T?.matches&&!W?ue().then(()=>Ce(e)):Ce(e)});function L(){if(_.replaceChildren(),u.length===0){if(je==="static"){const n=h({textAlign:"center",color:Et,padding:"24px 16px",fontSize:"16px",lineHeight:"1.5"});n.appendChild(Ne(Ge)),_.appendChild(n)}}else u.forEach((n,s)=>{const S=s===u.length-1||u[s+1].role!==n.role;_.appendChild(dn(n,{isLast:s===u.length-1,isLastOfBlock:S,bubbleStyle:A,showAgentName:I,agentBubble:R,followUpEnabled:Mt,followUpHandler:Ot,isMobile:!!T?.matches}))});for(const n of Xe)_.appendChild(cn(n));if(de){const n=h({padding:"10px 14px",backgroundColor:"#fef2f2",color:"#dc2626",borderRadius:"12px",marginTop:"8px",fontSize:"13px",border:"1px solid #fecaca"});n.setAttribute("role","alert"),n.textContent=de,_.appendChild(n)}_.scrollTop=_.scrollHeight;const e=u[u.length-1];Bt(J&&e?.role==="assistant"&&(e.status==="IN_PROGRESS"||e.status==="WAITING_CLIENT"))}function Dt(){for(let e=u.length-1;e>=0;e--){const n=u[e];if(n.role==="assistant"&&(n.status==="IN_PROGRESS"||n.status==="WAITING_CLIENT"))return n}}const Qe=e=>{H||(H=e.conversationId)},Ze=e=>{const n=Dt();n&&(n.content+=e.content,L())},Je=e=>{const n=u.findIndex(s=>s.id===e.id||s.role==="assistant"&&s.status==="IN_PROGRESS");n>=0?u[n]=e:u.push(e),L(),be()},et=e=>{const n=u.findIndex(s=>s.id===e.id||s.role==="assistant"&&s.status==="IN_PROGRESS");n>=0?u[n]=e:u.push(e),J=!1,L(),e.status==="DONE"&&k?.({id:e.id,content:e.content})},tt=e=>{de=e.error,J=!1,u=u.filter(n=>!n.id.startsWith("temp-")),L()};function zt(e){const n={id:`ago-intro-${Date.now()}`,conversationId:"",content:"",role:"assistant",status:"IN_PROGRESS",createdAt:new Date};u.push(n),L();const s=e.match(/\S+\s*/g)??[e];let S=0;K=setInterval(()=>{if(S>=s.length){clearInterval(K),K=void 0,n.status="DONE",Ve&&(n.followUpReplies=Ve),L();return}n.content+=s[S],S++,L()},_t)}E.on("message:start",Qe),E.on("message:chunk",Ze),E.on("message:answer-complete",Je),E.on("message:complete",et),E.on("message:error",tt);const nt=e=>j?.(e),ot=e=>V?.(e);j&&E.on("form:submitted",nt),V&&E.on("form:error",ot);const Me=[];let rt=!1;const it=e=>{if(rt)return;Me.push(e.install(E));let n=e.store.get().submitted;const s=e.store.subscribe(S=>{S.submitted&&!n&&(Xe.push($t(S.submitResult)),L()),n=S.submitted});Me.push(s)};for(const e of l??[])e.schema!=null?it(mt.createFormCollector(e)):mt.loadFormCollector(E,e).then(n=>it(n)).catch(()=>{});async function Ce(e,n){const s=e.trim();if(!s&&!n?.length||J)return;if(B?.(s),J=!0,de=null,K){clearInterval(K),K=void 0;const y=u.find(G=>G.id.startsWith("ago-intro-"));y&&!y.content?u=u.filter(G=>G!==y):y&&(y.status="DONE")}const S=Date.now();u.push({id:`temp-user-${S}`,conversationId:H||"",content:s,role:"user",status:"DONE",attachments:n&&n.length>0?se.attachmentsFromFiles(n):void 0,createdAt:new Date}),u.push({id:`temp-assistant-${S}`,conversationId:H||"",content:"",role:"assistant",status:"IN_PROGRESS",createdAt:new Date}),L();try{const y=await E.sendMessage(s,{conversationId:H,files:n});y.conversationId&&(H||(H=y.conversationId),he?.setActiveThread(y.conversationId,y.createdAt));const G=u.find(Y=>Y.id===`temp-user-${S}`);if(G&&(G.id=`user-${S}`,G.conversationId=y.conversationId),!u.some(Y=>Y.id===y.id)){const Y=u.findIndex(Kt=>Kt.id===`temp-assistant-${S}`);Y>=0?u[Y]=y:u.push(y)}u=u.filter(Y=>!Y.id.startsWith("temp-")),y.status!=="WAITING_CLIENT"&&(J=!1),L(),g&&Oe()}catch(y){de=y instanceof Error?y.message:"Failed to send message",J=!1,u=u.filter(G=>!G.id.startsWith("temp-")),L()}}async function Oe(){try{const e=await E.getConversations();xe.splice(0,xe.length,...e)}catch{}return xe}async function Ft(e){try{const n=(await E.getConversation(e))?.messages??[];n.length>0&&u.length===0&&(u=n,L())}catch{u.length===0&&(he?.clear(),H=void 0)}}return L(),re&&T?.matches||be(),H?Ft(H):je==="streaming"&&zt(Ge),g&&Oe(),{client:E,element:ve,sendMessage:Ce,...z||re?{open:Ht,close:Wt,toggle:Ut}:{},session:he,threads:xe,refreshThreads:Oe,destroy(){K&&clearInterval(K),E.off("message:start",Qe),E.off("message:chunk",Ze),E.off("message:answer-complete",Je),E.off("message:complete",et),E.off("message:error",tt),j&&E.off("form:submitted",nt),V&&E.off("form:error",ot),rt=!0,Me.forEach(e=>e()),ve.remove(),$?.remove(),P?.remove(),fe?.remove(),X?.remove(),T?.removeEventListener("change",st),re&&(document.removeEventListener("keydown",at),ct(),W&&ke()),ge&&(ge=!1,ke()),o.client||E.destroy()}};function Ee(){if(!U)return;{const s=ye==="left"?"border-right":"border-left";T?.matches?(U.style.width="100%",d.style.borderRadius="0",d.style.removeProperty(s)):(U.style.width=typeof x=="number"?`${x}px`:x,d.style.setProperty(s,`1px solid ${N}`))}const e=m==="left"?"translateX(-100%)":"translateX(100%)";U.style.transform=Z?"translateX(0)":e,U.setAttribute("aria-hidden",Z?"false":"true"),$&&($.style.display=Z?"none":"flex");const n=Z&&!!T?.matches;n!==ge&&(ge=n,n?wt():ke())}function De(){Z=!0,Ee(),be(),M?.()}function ze(){Z=!1,Ee(),q?.()}function Pt(){Z?ze():De()}function Ht(){z?De():ue()}function Wt(){z?ze():me()}function Ut(){z?Pt():W?me():ue()}function Gt(){return Array.from(d.querySelectorAll('a[href],button:not([disabled]),textarea:not([disabled]),input:not([disabled]),select:not([disabled]),[tabindex]:not([tabindex="-1"])')).filter(e=>e.getClientRects().length>0)}function at(e){if(!W)return;if(e.key==="Escape"){me();return}if(e.key!=="Tab")return;const n=Gt();if(n.length===0){e.preventDefault();return}const s=n[0],S=n[n.length-1],y=document.activeElement;e.shiftKey&&(y===s||!d.contains(y))?(e.preventDefault(),S.focus()):!e.shiftKey&&(y===S||!d.contains(y))&&(e.preventDefault(),s.focus())}function st(e){z?Ee():!e.matches&&W&&me(),L()}function lt(){return window.visualViewport?.height??window.innerHeight}function dt(){const e=window.visualViewport,n=e?.offsetTop??0,s=e?.height??pe,S=Math.min(0,n+s-pe);d.style.top=`${S}px`,P&&(P.style.top=`${n}px`)}function Se(){ie||(ie=requestAnimationFrame(()=>{ie=0,dt()}))}function jt(){window.visualViewport?.addEventListener("resize",Se),window.visualViewport?.addEventListener("scroll",Se)}function ct(){window.visualViewport?.removeEventListener("resize",Se),window.visualViewport?.removeEventListener("scroll",Se),ie&&(cancelAnimationFrame(ie),ie=0)}function pt(){_.scrollTop=_.scrollHeight}function Vt(){const e=h({position:"fixed",top:"0",left:"0",right:"0",height:`calc(${Ye}px + env(safe-area-inset-top))`,display:"none",alignItems:"center",justifyContent:"space-between",padding:"env(safe-area-inset-top) 14px 0",backgroundColor:te,borderBottom:`1px solid ${N}`,zIndex:"2147483001",fontFamily:Ie});if(e.className="ago-chat-widget-mobile-bar",f){const s=document.createElement("img");s.src=f,s.alt="",v(s,{height:"28px",width:"auto"}),e.appendChild(s)}else if(i){const s=document.createElement("span");s.textContent=i,v(s,{fontSize:"15px",fontWeight:"600",color:ee,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),e.appendChild(s)}else e.appendChild(h({}));const n=document.createElement("button");return n.type="button",n.setAttribute("aria-label","Close"),n.textContent="×",v(n,{border:"none",background:"transparent",fontSize:"26px",lineHeight:"1",color:ee,cursor:"pointer",padding:"4px 8px"}),n.addEventListener("click",()=>{me()}),e.appendChild(n),e}function qt(){return typeof document.startViewTransition=="function"&&!Tt?.matches&&!!T?.matches}function ft(e){const n=document;if(qt()&&n.startViewTransition){d.style.setProperty("view-transition-name",ce),P?.style.setProperty("view-transition-name",`${ce}-bar`);const s=()=>{d.style.removeProperty("view-transition-name"),P?.style.removeProperty("view-transition-name")};return n.startViewTransition(e).finished.then(s,s)}return e(),Promise.resolve()}function ut(e){if(e)X&&d.parentElement?.insertBefore(X,d),v(d,{position:"fixed",top:"0",left:"0",right:"0",bottom:"0",height:"var(--ago-vh, 100dvh)",zIndex:"2147483000",border:"none",borderRadius:"0",boxShadow:"none",paddingTop:`calc(${Ye}px + env(safe-area-inset-top))`,paddingBottom:"env(safe-area-inset-bottom)"}),d.setAttribute("role","dialog"),d.setAttribute("aria-modal","true"),d.setAttribute("aria-label",i),wt(),F&&(F.style.display="none"),P&&(P.style.display="flex");else{X?.remove(),X=void 0;for(const n of["position","top","left","right","bottom","z-index","padding-top","padding-bottom"])d.style.removeProperty(n);d.style.height=we.height,d.style.border=we.border,d.style.borderRadius=we.borderRadius,d.style.boxShadow=we.boxShadow,d.removeAttribute("role"),d.removeAttribute("aria-modal"),d.removeAttribute("aria-label"),ke(),F&&(F.style.display="flex"),P&&(P.style.display="none")}}function ue(){if(W||!T?.matches)return Promise.resolve();const e=d.getBoundingClientRect();if(e.height>=lt()*.8)return Promise.resolve();W=!0,X=h({width:`${e.width}px`,height:`${e.height}px`}),X.className="ago-chat-widget-spacer",X.setAttribute("aria-hidden","true"),pe=lt(),d.style.setProperty("--ago-vh",`${pe}px`),dt(),jt();const n=ft(()=>ut(!0));return n.then(()=>{pt(),be()}),pt(),M?.(),n}function me(){if(!W)return Promise.resolve();W=!1,ct(),d.querySelector("textarea")?.blur();const e=ft(()=>ut(!1));return e.then(()=>d.style.removeProperty("--ago-vh")),pe=0,q?.(),e}}exports.mountChatWidget=hn;exports.renderMarkdown=Ne;